Você está na página 1de 34

Universidade Federal de Pelotas

Centro de Desenvolvimento Tecnolgico


Bacharelado em Cincia da Computao Engenharia de Computao

Arquitetura e Organizao de Computadores I


Aula 2
Conceitos de Arquiteturas de Computadores: Linguagem de Mquina, Formatos de Instruo, Instrues com Vrios Operandos, Modos de Endereamento, Von Neuman x Harvard Prof. Luciano Volcan Agostini
agostini@inf.ufpel.edu.br

Conceitos de Arquitetura de Computadores


Modelo Bsico de Computador

Processa os dados e controla o sistema

UCP (CPU)

Memria

armazena instrues e dados

barramento do sistema auto-estrada para dados e instrues

perifricos
permite a entrada e a sada de dados

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 2

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Programa: definio de alto nvel
Um programa uma seqncia finita de comandos (em alguma linguagem de programao), com o propsito de resolver um problema especfico. Exemplo:
#include <stdio.h>

int mult(int *v, int cont) { int total=0; while( cont > 0 ){ total += *v; v++; cont--; } return total; }

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 3

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Programa: definio de baixo nvel
Um programa uma seqncia finita de instrues (de um dado processador), com o propsito de resolver um problema especfico. Exemplo:
LDR A #0 LDR X 129 LDR B 128 JZ 16 ADD A 0, X ADD X #1 SUB B #1 JMP 6 STR A, 130

HLT

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 4

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Fluxo de Desenvolvimento de um Programa
Problema computacional

algoritmo

Editor de texto

Linguagemde programao

Pascal, C etc

arquivo-fonte
.pas .c etc

TurboPascal, gcc, TurboC, BorlandC etc

compilador

Conjunto de Instrues

Processador-alvo (P4, PPC, MIPS, etc)

ComputaoUFPel Arquitetura e Organizao de Computadores I

arquivo binrio Slide 5 (executvel)

.exe (depende do S.O.)


Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Fluxo de Desenvolvimento de um Programa - 2
Nvel de abstrao baixo
Problema computacional

algoritmo

Editor de simblico

Conjunto de Processador-alvo Instrues (P4, PPC, MIPS, etc)

arquivo-simblico
.asm etc

montador

ComputaoUFPel Arquitetura e Organizao de Computadores I

arquivo binrio Slide 6 (executvel)

.exe (depende do S.O.)


Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Instruo de Mquina
Uma instruo de mquina uma operao bsica que um processador capaz de realizar. Um conjunto de instrues de mquina forma um programa em cdigo de mquina. A gerao do cdigo de mquina pode ser feita a partir de um programa em alto nvel ou de um programa em baixo nvel: Alto nvel: uma instruo traduzida em muitas instrues de mquina; Baixo nvel: a traduo praticamente um para um, ou seja, uma instruo de baixo nvel (assembly) para cada instruo de mquina.
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 7

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo
Cada instruo representada como um conjunto de bits Os bits so agrupados em campos, a fim de facilitar o projeto do bloco de controle Os campos definem o formato da instruo. Exemplo de formato:
identifica a instruo indica o modo como a memria acessada ou se o operando est num registrador endereo do operando (memria ou registrador)

opcode

modo

endereo

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 8

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Conjunto de Instrues
Cada processador (modelo ou famlia de processador) possui um conjunto de instrues prprio. Ex: NEANDER.
instruo
NOP STA end LDA end ADD end OR end AND end NOT JMP end

significado
Nenhuma operao Armazena acumulador (store) Carrega acumulador (load) Soma OU lgico E lgico Inverte (complementa) acumulador Desvio incondicional (jump)

JN end
JZ end HLT

Desvio condicional (jump on negative)


Desvio condicional (jump on zero) Trmino de execuo (halt)
Slide 9 Prof. Luciano Agostini

ComputaoUFPel Arquitetura e Organizao de Computadores I

Conceitos de Arquitetura de Computadores


Conjunto de Instrues
Tipos de instrues:
Instrues de transferncia de dados
load, store, move

Instrues aritmticas e lgicas


add, sub, mul, div, and, or, xor, not

Instrues de teste e de desvio (ou de controle de execuo)


jump, jump on negative (JN), jump on zero (JZ), branch on equal (beq)

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 10

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Endereamento: Nmero de Operandos
Muitas instrues realizam operaes sobre operandos. Exemplos: instrues aritmticas e lgicas Os operandos podem estar em qualquer posio da memria ou em qualquer registrador (entre os de propsito geral) Assim, instrues que definem uma operao sobre um operando precisam conter tambm o endereo do operando No caso de mais de um operando, cada operando pode ter um endereo diferente No caso de instrues de desvio, a instruo deve indicar para qual posio ou endereo de programa se quer desviar
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 11

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Endereamento: Nmero de Operandos
O nmero de campos de endereo no formato de instruo depende da organizao interna do processador e do seu nmero de registradores Tipos de organizao:
Organizao com acumulador Organizao com mltiplos registradores

Organizao de pilha

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 12

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Endereamento: Nmero de Operandos
Para analisar o impacto do nmero de campos de endereo de memria e do nmero de operandos na memria, consideremos que se deseje programar a seguinte equao:

X=(A+B)*(C+D)
onde X, A, B, C e D so endereos de memria. Consideremos tambm que tenhamos as seguintes instrues disponveis: ADD, SUB, MUL, MOVE (ou LOAD e STORE) e HALT (fim de programa)

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 13

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 4 Endereos
opcode end1 end2 end3 localizao do operando-destino end4 endereo da prxima instruo identifica a instruo localizao dos dois operandos-fonte

endereo
i1 i2 i3 i4

instruo
ADD A, B, Y, i2 ADD C, D, Z, i3 MUL Y, Z, X, i4 HALT

execuo
Mem[Y] Mem[A] + Mem[B], vai para i2 Mem[Z] Mem[C] + Mem[D], vai para i3 Mem[X] Mem[Y] + Mem[Z], vai para i4 Fim do programa

Vantagem: no h necessidade de instrues de desvio do fluxo de execuo (jump, branch) Desvantagem: os programas so seqenciais, i.e., na maior parte das vezes, a prxima instruo est no prximo endereo de memria
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 14

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 3 Endereos
opcode end1 end2 end3
localizao do operando-destino identifica a instruo localizao dos dois operandos-fonte

endereo i1 i2 i3 i4

instruo ADD A, B, Y ADD C, D, W MUL Y, W, X HALT

execuo Mem[Y] Mem[A] + Mem[B] Mem[W] Mem[C] + Mem[D] Mem[X] Mem[Y] * Mem[W] Fim do programa

Usa um registrador apontador de programa (PC), o qual incrementado para apontar para a prxima instruo a ser executada (exceto nos desvios) No conjunto de instrues deve haver instrues de desvio do fluxo de execuo (jump, branch)
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 15

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 2 Endereos
opcode end1 end2
localizao do outro operando-fonte que tambm destino identifica a instruo localizao de um operando-fonte

endereo

instruo

execuo

i1
i2 i3 i4

ADD B, A
ADD D, C MUL C, A MOVE A, X

Mem[A] Mem[A] + Mem[B]


Mem[C] Mem[C] + Mem[D] Mem[A] Mem[A] * Mem[C] Mem[X] Mem[A]

i5

HALT

Fim do programa

A e C so sobrescritos!
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 16

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 1 Endereo
opcode end1

identifica a instruo localizao de um operando-fonte

H um registrador chamado acumulador (abreviado por AC), que contm o segundo operando

O acumulador tambm o destino do resultado


As instrues de movimentao de dados so LOAD e STORE, as quais so definidas em relao ao acumulador (AC).

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 17

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 1 Endereo
endereo i1 instruo LOAD A execuo AC Mem[A]

i2
i3 i4 i5

ADD B
STORE Y LOAD C ADD D

AC AC + Mem[B]
Mem[Y] AC AC Mem[C] AC AC + Mem[D]

i6
i7 i8

MUL Y
STORE X HALT

AC AC * Mem[Y]
Mem[X] AC Fim do programa

Usa uma posio de memria (Y) para armazenamento temporrio!


ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 18

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 0 Endereo
identifica a instruo opcode

No existe referncia sobre a locializao dos operandos (memria ou registrador)

A localizao dos operandos se d de maneira implcita, quando a arquitetura foi definida


Uma possibilidade colocar os operandos em uma rea especfica da memria e fazer uso de um mecanismo especfico para alocalizao.

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 19

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 0 Endereo
Exempo: uma pilha
os operandos so sempre retirados do topo da pilha o resultado colocado no topo da pilha

PUSH (coloca no topo da pilha) POP (retira do topo da pilha)

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 20

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Formato de Instruo com 0 Endereo
endereo i1 i2 i3 i4 i5 i6 instruo PUSH A PUSH B ADD POP X PUSH C PUSH D topo Mem[A] topo Mem[B] topo (Mem[A] + Mem[B]) (A e B so retirados do topo da pilha) Mem[X] topo topo Mem[C] topo Mem[D] execuo

i7
i7 i8

ADD
PUSH X MUL

topo (Mem[C] + Mem[D]) (C e D so retirados do topo da pilha)


topo Mem[X] topo ((Mem[C] + Mem[D]) * (Mem[A] + Mem[B]))

i9
i10

POP X
HALT

Mem[X] topo
Fim do programa
Slide 21 Prof. Luciano Agostini

ComputaoUFPel Arquitetura e Organizao de Computadores I

Conceitos de Arquitetura de Computadores


Modos de Endereamento
Imediato

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 22

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modos de Endereamento
Direto

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 23

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modos de Endereamento
Indireto

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 24

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modos de Endereamento
Registrador

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 25

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modos de Endereamento
Registrador Indireto

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 26

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modos de Endereamento
Base + Deslocamento

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 27

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Arquitetura de Von Neumann
Arquitetura com programa armazenado em memria,

Antes, programas eram inseridos com chaves,


Base para a maioria dos computadores at a atualidade, Usa dados e instrues em memria, Programa pode se automodificar!!! Como assim???
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 28

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Arquitetura de Von Neumann
Proposto pela equipe de projeto do EDVAC (usado no projeto Manhatan)

A idia da arquitetura foi de J. Presper Eckert e John Mauchly, mas John von Neumann se voluntariou para escrever o relatrio, em 1945.
John von Neumann era um matemtico brilhante, mas com tica questionvel, No relatrio final, ele excluiu o nome dos verdadeiros autores da idia e, desde, ento este modelo arquitetural chamado de Von Neumann.

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 29

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Gargalo de Von Neumann
1000
CPU

Performance

Proc 60%/yr.

100 10 1

Processor-Memory Performance Gap: (grows 50% / year) DRAM DRAM 7%/yr.


1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
Slide 30 Prof. Luciano Agostini

ComputaoUFPel Arquitetura e Organizao de Computadores I

Conceitos de Arquitetura de Computadores


Gargalo de Von Neumann
Como podemos minimizar este problema? Mais registradores (para evitar acesso memria),

Reduzir (ou eliminar) o nmero de instrues que podem buscar operadores na memria,
Explorar reuso de dados e instrues com o uso de caches, Usar hierarquia de memria com vrios nveis, Ainda assim existem gargalos intransponveis (veremos melhor quando estudarmos o MIPS), Novo modelo arquitetural: Arquitetura Harvard

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 31

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Arquitetura de Harvard
Duas memrias, uma para dados e outra para instrues,

possvel ler uma instruo e ler ou escrever um dado ao mesmo tempo! Duplica a taxa de transferncia memria <=> processador,
Aumenta a eficincia da cache, Problemas?
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 32

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modelo Hbrido
mais usado atualmente, Memria RAM comum para dados e instrues (Von Neumann), Memrias caches separadas para dados e instrues (Harvard), Processadores atuais seguem este modelo. Pentium
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 33

Prof. Luciano Agostini

Conceitos de Arquitetura de Computadores


Modelo Hbrido
Core i7

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 34

Prof. Luciano Agostini