Arquitetura de Computadores - Instituto de Informática - UFG
Arquitetura de Computadores - Instituto de Informática - UFG
Arquitetura de Computadores - Instituto de Informática - UFG
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Arquitetura</strong> <strong>de</strong> <strong>Computadores</strong><br />
Prof. Fábio M. Costa<br />
<strong>Instituto</strong> <strong>de</strong> <strong>Informática</strong> – <strong>UFG</strong><br />
1o. Semestre / 2005<br />
Programa e Introdução
Assunto do curso<br />
“Atributos <strong>de</strong> um sistema [<strong>de</strong> computação]<br />
que são visíveis para o programador (...) e<br />
que têm impacto direto sobre a execução<br />
lógica <strong>de</strong> um programa”<br />
Tanenbaum, 1999<br />
Stallings, 2001
<strong>Arquitetura</strong> Vs. Organização<br />
<strong>Arquitetura</strong><br />
conjunto <strong>de</strong> instruções<br />
conjunto <strong>de</strong><br />
registradores<br />
representação <strong>de</strong><br />
dados<br />
mecanismos <strong>de</strong> E/S<br />
en<strong>de</strong>reçamento <strong>de</strong><br />
memória<br />
Organização: Especifica<br />
as unida<strong>de</strong>s operacionais<br />
e sua interconexão para<br />
implementação <strong>de</strong> uma<br />
<strong>de</strong>terminada arquitetura<br />
estrutura interna do<br />
processador<br />
barramentos internos<br />
tecnologia <strong>de</strong> memórias<br />
interface com sistema <strong>de</strong><br />
E/S
Roteiro do curso...<br />
Introdução<br />
<strong>Arquitetura</strong> vs. Organização <strong>de</strong> <strong>Computadores</strong><br />
Organização estruturada <strong>de</strong> computadores<br />
Interação com outras disciplinas
Roteiro do curso...<br />
Fundamentos<br />
Princípios <strong>de</strong> funcionamento <strong>de</strong> computadores<br />
Panorama das tecnologias atuais<br />
Tendências tecnológicas<br />
Princípios <strong>de</strong> projeto <strong>de</strong> computadores<br />
Análise do <strong>de</strong>sempenho <strong>de</strong> computadores<br />
Perspectiva histórica
Roteiro do curso...<br />
Representação <strong>de</strong> dados<br />
Números inteiros sinalizados e não-sinalizados<br />
Operações aritiméticas<br />
Operações lógicas<br />
Números <strong>de</strong> ponto flutuante
Roteiro do curso...<br />
<strong>Arquitetura</strong> <strong>de</strong> conjuntos <strong>de</strong> instruções<br />
Classificação <strong>de</strong> conjuntos <strong>de</strong> instruções<br />
En<strong>de</strong>reçamento <strong>de</strong> memória<br />
Tipos <strong>de</strong> operações<br />
Tipos <strong>de</strong> dados (operandos)<br />
Formatos <strong>de</strong> instruções<br />
Controle <strong>de</strong> fluxo (procedimentos e sub-rotinas,<br />
interrupções)
Roteiro do curso...<br />
Programação em Linguagem <strong>de</strong> Montagem<br />
Visão geral do mo<strong>de</strong>lo <strong>de</strong> programação<br />
<strong>Arquitetura</strong>s representativas (ênfase no 80x86)<br />
Exercícios <strong>de</strong> programação<br />
Outors aspectos da programação em Assembly:<br />
linkedição e carga <strong>de</strong> programas, macros, o<br />
processo <strong>de</strong> montagem, relocação <strong>de</strong> código
Roteiro do curso...<br />
Suporte ao Sistema Operacional<br />
Conceitos básicos <strong>de</strong> sistemas<br />
operacionais<br />
Escalonamento <strong>de</strong> processos<br />
Gerenciamento <strong>de</strong> memória
Roteiro do curso...<br />
Entrada e Saída<br />
Organização básica <strong>de</strong> entrada e saída<br />
Métodos <strong>de</strong> transferência <strong>de</strong> dados<br />
(polling, interrupções, DMA)<br />
Dispositivos <strong>de</strong> E/S
Interação com outras<br />
disciplinas<br />
Antes:<br />
Introdução à Computação<br />
Sistemas Digitais<br />
Depois:<br />
Organização <strong>de</strong> <strong>Computadores</strong><br />
Sistemas Operacionais<br />
Compiladores<br />
Disciplina básica do currículo <strong>de</strong> Computação
Ênfase do curso<br />
Enten<strong>de</strong>r o projeto <strong>de</strong> computadores<br />
existentes<br />
fundamentação conceitual, perspectiva<br />
histórica e atualida<strong>de</strong>s<br />
Dar subsídios para melhor utilizar<br />
(programar) a máquina<br />
Apren<strong>de</strong>r as técnicas básicas <strong>de</strong> projeto<br />
<strong>de</strong> computadores
Bibliografia<br />
STALLINGS, W.<br />
<strong>Arquitetura</strong> e Organização<br />
<strong>de</strong> <strong>Computadores</strong>,<br />
Tradução da 5ª Edição,<br />
Prentice-Hall, 2002.<br />
Trata tanto os aspectos<br />
<strong>de</strong> arquitetura quanto <strong>de</strong><br />
organização <strong>de</strong><br />
computadores, fazendo<br />
uma clara distinção entre<br />
eles<br />
Estudos <strong>de</strong> casos com<br />
duas arquiteturas reais:<br />
Pentium II e PowerPC
Bibliografia...<br />
PATTERSON, D.A.;<br />
HENNESSY, J.L. Projeto e<br />
Organização <strong>de</strong><br />
<strong>Computadores</strong>: A Interface<br />
Hardware / Software,<br />
Tradução da 2a Edição,<br />
LTC, 2000.<br />
Combina uma<br />
abordagem fortemente<br />
baseada em princípios<br />
com uma visão<br />
tecnológica<br />
Ponto <strong>de</strong> vista<br />
arquitetura = organização<br />
+ ISA
Bibliografia...<br />
TANENBAUM, A.S.<br />
Organização Estruturada <strong>de</strong><br />
<strong>Computadores</strong>, Tradução da<br />
4a Edição, LTC, 2001.<br />
Abordagem clássica da<br />
organização <strong>de</strong><br />
computadores em<br />
camadas<br />
Também trata dos<br />
aspectos <strong>de</strong> arquitetura<br />
e organização
Bibliografia...<br />
WEBER, R.F., Fundamentos <strong>de</strong><br />
<strong>Arquitetura</strong>s <strong>de</strong> <strong>Computadores</strong>,<br />
2ª Edição, Editora Sagra-<br />
Luzzatto, 2001.<br />
Roteiro básico para um curso<br />
introdutório <strong>de</strong> arquitetura <strong>de</strong><br />
computadores<br />
Abordagem evolutiva<br />
baseada em simuladores<br />
Precisa ser complementado<br />
com textos mais avançados
Bibliografia...<br />
HENNESSY, J.L. and<br />
PATTERSON, D.A. <strong>Arquitetura</strong><br />
<strong>de</strong> <strong>Computadores</strong>: Uma<br />
Abordagem Quantitativa,<br />
Tradução da 3ª. Edição,<br />
1996, Morgan Kaufmann.<br />
Abordagem <strong>de</strong> projeto guiada<br />
por análises <strong>de</strong> <strong>de</strong>sempenho<br />
Visão integrada <strong>de</strong> arquitetura<br />
e organização (ênfase em<br />
aspectos <strong>de</strong> arquitetura)<br />
Texto mais avançado, voltado<br />
para projetistas <strong>de</strong><br />
computadores
Avaliações<br />
02 AVALIAÇÕES EM SALA DE AULA:<br />
1ª. Avaliação (A1): 19/04/2005<br />
2ª. Avaliação (A2): 30/06/2005<br />
02 TRABALHOS (Grupos <strong>de</strong> 2 alunos):<br />
T1: Estudo <strong>de</strong> arquitetura <strong>de</strong> computadores<br />
atuais – entrega: 12/05/2005<br />
T2: Trabalho prático <strong>de</strong> programação – entrega/<br />
<strong>de</strong>monstração: 28/06 a 05/07/2005<br />
Composição da nota final<br />
Média(A1,A2) * 0,6 + Média(T1,T2) * 0,4
<strong>Arquitetura</strong> Vs. Organização<br />
<strong>Arquitetura</strong><br />
conjunto <strong>de</strong> instruções<br />
conjunto <strong>de</strong><br />
registradores<br />
representação <strong>de</strong><br />
dados<br />
mecanismos <strong>de</strong> E/S<br />
en<strong>de</strong>reçamento <strong>de</strong><br />
memória<br />
Organização: Especifica<br />
as unida<strong>de</strong>s operacionais<br />
e sua interconexão para<br />
implementação <strong>de</strong> uma<br />
<strong>de</strong>terminada arquitetura<br />
estrutura interna do<br />
processador<br />
barramentos internos<br />
tecnologia <strong>de</strong> memórias<br />
interface com sistema <strong>de</strong><br />
E/S<br />
(Segundo Semestre)
<strong>Arquitetura</strong> Vs. Organização<br />
Visões complementares<br />
<strong>Arquitetura</strong>: in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> implementação<br />
Organização: implementação específica<br />
Escolhas em uma área têm influência na outra<br />
Exemplo: Famílias <strong>de</strong> arquiteturas<br />
IBM System 360<br />
Intel 80x86<br />
Questão chave: compatibilida<strong>de</strong><br />
Implementação (organização) po<strong>de</strong> ser diferente
<strong>Arquitetura</strong> vs. Organização<br />
Exemplo atual: Pentium 4 vs. Celeron<br />
Mesma arquitetura<br />
Diferentes recursos <strong>de</strong> implementação<br />
Cache interna, unida<strong>de</strong>s <strong>de</strong> execução em paralelo, etc.<br />
Fator custo
Organização Estruturada <strong>de</strong><br />
<strong>Computadores</strong><br />
TANENBAUM:<br />
Um mo<strong>de</strong>lo <strong>de</strong> abstração para facilitar o projeto e<br />
implementação <strong>de</strong> arquiteturas <strong>de</strong> computadores<br />
Um computador é dividido em níveis ou camadas<br />
Em cada nível, o computador po<strong>de</strong> ser programado<br />
utilizando a linguagem e os recursos daquele nível<br />
Um nível po<strong>de</strong> ser visto como uma máquina virtual<br />
para execução <strong>de</strong> programas escritos no nível<br />
imediatamente superior
Organização Estruturada:<br />
<strong>Computadores</strong> multi-níveis<br />
[Tanenbaum, 1999]
°<br />
°<br />
Níveis <strong>de</strong> representação<br />
High Level Language<br />
Program<br />
Compiler<br />
Assembly Language<br />
Program<br />
Assembler<br />
Machine Language<br />
Program<br />
temp = v[k];<br />
v[k] = v[k+1];<br />
v[k+1] = temp;<br />
lw $15, 0($2)<br />
lw $16, 4($2)<br />
sw $16, 0($2)<br />
sw $15, 4($2)<br />
0000 1001 1100 0110 1010 1111 0101 1000<br />
1010 1111 0101 1000 0000 1001 1100 0110<br />
1100 0110 1010 1111 0101 1000 0000 1001<br />
0101 1000 0000 1001 1100 0110 1010 1111<br />
Machine Interpretation<br />
Control Signal<br />
Specification<br />
ALUOP[0:3]
O Limite Hardware / Software…<br />
Hardware: circuitos integrados, placas <strong>de</strong> circuito<br />
impresso, cabos, fontes <strong>de</strong> alimentação, memórias,<br />
dispositivos <strong>de</strong> entrada e saída (I/O).<br />
Software: algoritmos e sua representação<br />
computacional (programas).<br />
Equivalência entre hardware e software:<br />
funções tipicamente implementadas por software po<strong>de</strong>m<br />
ser realizadas diretamente em hardware<br />
funções tipicamente realizadas em hardware po<strong>de</strong>m ser<br />
implementadas (ou simuladas) por software<br />
➔ custo, velocida<strong>de</strong>, confiabilida<strong>de</strong>, freqüência <strong>de</strong> mudanças.
O Limite Hardware / Software..<br />
SOFTWARE
O Limite Hardware / Software<br />
software<br />
instruction set<br />
hardware
Exemplos <strong>de</strong> ISAs<br />
Digital Alpha (v1, v3) 1992-97<br />
HP PA-RISC (v1.1, v2.0) 1986-96<br />
Sun Sparc (v8, v9) 1987-95<br />
SGI MIPS (MIPS I, II, III, IV, V) 1986-96<br />
Intel (8086,80286,80386, 1978-96<br />
80486,Pentium, MMX, ...)
ISA – Um exemplo concreto:<br />
MIPS R3000<br />
Categorias <strong>de</strong> instruções<br />
Load/Store<br />
Computacionais<br />
Desvio<br />
Ponto flutuante<br />
co-processador<br />
Gerenciamento <strong>de</strong> memória<br />
Especiais<br />
Registradores<br />
R0 - R31<br />
PC<br />
HI<br />
LO<br />
3 Formatos <strong>de</strong> Instruções: todos com largura <strong>de</strong> 32 bits<br />
OP<br />
OP<br />
OP<br />
rs rt rd sa funct<br />
rs rt immediate<br />
jump target
Leitura Recomendada<br />
Tanenbaum, Cap. 1<br />
Patterson & Hennessy: Cap. 1