28.11.2014 Views

Arquitetura de Computadores - Instituto de Informática - UFG

Arquitetura de Computadores - Instituto de Informática - UFG

Arquitetura de Computadores - Instituto de Informática - UFG

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!