Vous êtes sur la page 1sur 57

Arquitetura

de Computadores
Prof. Alexandro Baldassin
1o semestre/2014

MICROARQUITETURA
Conceitos
Ciclo de execuo de instrues

P&H 4.1, 4.2


H&H 7.1
Arquitetura de Computadores

Recordando

ISA (parte visvel ao


programador)

Problema

Raz quadrada de N?

Algoritmo

Sequncia
de passos

Software

Programas

Sistema
Operacional

Device
drivers

Arquitetura

Instrues
Registradores

Microarquitetura

Caminho de dados
Controle

Lgica

Somadores
Memrias

Circuitos

Portas AND e
OR

Dispositivos

Transistores
Diodos

Fsica

Eltrons

Arquitetura de Computadores

Recordando

Implementao
especca de um ISA
(hardware)

Problema

Raz quadrada de N?

Algoritmo

Sequncia
de passos

Software

Programas

Sistema
Operacional

Device
drivers

Arquitetura

Instrues
Registradores

Microarquitetura

Caminho de dados
Controle

Lgica

Somadores
Memrias

Circuitos

Portas AND e
OR

Dispositivos

Transistores
Diodos

Fsica

Eltrons

Arquitetura de Computadores

Como uma mquina processa instrues?


O que signica processar uma instruo?
E = estado arquitetural (visvel ao programador)
antes da instruo ser processada
Processamento da instruo

E = estado arquitetural (visvel ao programador)


depois da instruo ser processada

Processamento de uma instruo: transformao de E


em E, de acordo com a especicao do ISA
Arquitetura de Computadores

Processamento de instrues
O ISA especica o que E deve ser, dado uma instruo e
E
Pode ser modelado como uma mquina de estado nita
Do ponto de vista do ISA, no h estados intermedirios entre
E e E

Microarquitetura implementa como E transformado


em E
H muitas opes
Estados temporrios (invisveis ao programador) podem ser
introduzidos
Arquitetura de Computadores

Ciclo de execuo de instruo


Em geral, organizamos a execuo em uma sequncia
de passos comum a todas instrues
Cinco passos clssicos em mquinas RISC
1.
2.
3.
4.
5.

Busca da instruo (e incremento de PC)


Decodicao da instruo e leitura de operandos
Execuo (lgica/aritm`ca) ou clculo de endereo
Acesso memria
Escrita em registrador

Nota: uma instruo no necessariamente passa por


todos os estgios
Arquitetura de Computadores

1. Busca da instruo
Instruo buscada na memria
PC aponta para instruo a ser executada


Neste estgio tambm comum incrementar o PC para
que este possa apontar para prxima instruo a ser
executada
Todas as instrues requerem este passo

Arquitetura de Computadores

2. Decodicao da instruo e leitura


Campos da instruo so decodicados (lembre-se que
toda instruo possui um formato)
MIPS
1. campo OP determina `po da instruo (R, I ou J) e tamanho
dos campos restantes
2. dados so lidos dos registradores necessrios
add l dois registradores
addi l um registrador
j nenhum registrador precisa ser lido

Arquitetura de Computadores

3. Execuo
A classe da instruo determina o que deve ser feito
neste estgio
em geral, uma unidade aritm`ca lgica (ALU) usada

Instrues aritm`cas e lgicas (add, or, slt, ...)


ALU computa resultado da operao (executa instruo)

E instrues de leitura e escrita (lw, sw, ...)?


ALU usada para clculo do endereo efe`vo

Arquitetura de Computadores

10

4. Acesso memria
Somente instrues de leitura e escrita efe`vamente
necessitam deste estgio
Outras instrues simplesmente no fazem nada
Instrues de leitura
dado con`do no endereo de memria computado no estgio
anterior lido

Instrues de escrita
dado con`do no registrador fonte escrito no endereo de
memria computado no estgio anterior
Arquitetura de Computadores

11

5. Escrita em registrador
Executada pelas instrues que precisam escrever
resultado da operao em registrador des`no
Exemplos
instrues aritm`cas e lgicas
instruo de leitura

E quanto s instrues de desvio e escrita em memria?


no necessitam deste estgio

Arquitetura de Computadores

12

Exemplo de execuo
0x012A4020

0x00
op

0x09

0x0A

0x08

0x00

0x20

rs

rt

rd

shamt

funct

add
Estgio 1

$8, $9, $10

instruo buscada, PC incrementado

Estgio 2

decodica e encontra instruo ADD, e ento l


registradores $9 e $10

Estgio 3

adiciona registradores lidos no estgio anterior

Estgio 4

no usado

Estgio 5

escreve resultado do estgio 3 no registrador $8

Arquitetura de Computadores

13

Mais um exemplo
lw $3, 16($1)

Estgio 1

instruo buscada, PC incrementado

Estgio 2

decodica e encontra instruo LW, e ento l registrador $1

Estgio 3

adiciona 16 ao contedo do registrador lido no estgio


anterior, calculando o endereo efe`vo de memria

Estgio 4

l contedo da memria no endereo calculado no estgio 3

Estgio 5

escreve contedo lido no estgio 4 no registrador $3

Arquitetura de Computadores

14

Componentes de um processador
Caminho de dados
componente responsvel pela manipulao dos dados
(armazenamento, aritm`ca, mul`plexao...)
composto de blocos funcionais

Unidade de controle
componente responsvel por informar ao caminho de dados o
que necessita ser feito (como executar uma determinada
instruo)
composta por sinais de controle
Arquitetura de Computadores

15

Como projetar um processador?


1. Analisar conjunto de instrues (ISA)
Register Transfer Language (RTL) geralmente usada

2. Selecionar os componentes do caminho de dados e


estabelecer uma metodologia de temporizao
3. Construir o caminho de dados de acordo com os
requerimentos
4. Analisar a implementao de cada instruo para
determinar os sinais de controle que realizam a
transferncia dos dados
5. Construir a unidade de controle
Arquitetura de Computadores

16

Projeto do processador MIPS


Vamos explorar algumas implementaes para o MIPS,
usando um subconjunto de instrues
add, sub, and, or, slt (`po-R)
lw, sw (acesso memria)
beq (desvio condicional)

Primeiramente, construiremos o caminho de dados


A seguir, projetaremos a unidade de controle

Arquitetura de Computadores

17

Anlise do ISA RTL


Para cada instruo,
analisar os componentes
combinacionais e
sequenciais (de estado)
necessrios
A RTL (Register Transfer
Language) usada
como uma abreviao
do que acontece no
hardware

Arquitetura de Computadores

18

Seleo de componentes
PC
Implcito -> arquitetura Von Neumann

Memria (instruo e dados)


Banco de registradores (32)
ALU
Soma, subtrao, AND, comparao, ...

Outros
Hardware para estender sinal/zero
Hardware para somar 4 ao PC (usar ALU?)
Mul`plexadores (seleo de dados)
Arquitetura de Computadores

19

PC (Program Counter)

endereo
prxima instruo

endereo
instruo corrente

nmero de bits

Arquitetura de Computadores

20

Memria

Smbolo

Signicado

endereo

RD

dado lido

WD

dado a ser escrito

WE

controla quando dado em WD escrito em A (0 ou 1)


Arquitetura de Computadores

21

Banco de registradores
controla quando dado em WD3
escrito no registrador des`no (0 ou 1)

registradores fonte

valores lidos dos


registradores fonte

registrador des`no
dado a ser escrito no
registrador des`no

Arquitetura de Computadores

22

ALU (Arithme`c Logic Unit)


operao (controle)

operandos
resultado

Arquitetura de Computadores

23

Mul`plexador
seletor

I1 ou I2 ... ou In

Arquitetura de Computadores

24

Temporizao
Clock determina quando os sinais de controle tero
efeito
metodologia sensvel transio do clock (borda de subida)

Implementaes possveis:
Monociclo
todos estgios executados em um nico ciclo de clock

Mul`ciclo
cada estgio executado em um ciclo de clock

Pipeline
mul`ciclo com execuo sobreposta das instrues
Arquitetura de Computadores

25

IMPLEMENTAO MONOCICLO
Caminho de dados e controle
Anlise de compromissos

P&H 4.3, 4.4


H&H 7.3
Arquitetura de Computadores

26

Implementao monociclo
Ciclo de clock deve ser longo suciente para permi`r a
execuo de todos os estgios sem interrupo

1. busca de instruo

3. execuo
2. decodicao

5. escrita registrador
4. memria

clock

Arquitetura de Computadores

27

Caminho de dados
Implementando a instruo lw

Passo 1

busca instruo, incrementa PC

Passo 2

instruo LW l registrador fonte

Passo 3

adiciona imediato (com sinal estendido) ao contedo do


registrador lido no estgio anterior, calculando o endereo

Passo 4

l contedo do endereo de memria calculado no estgio 3

Passo 5

escreve contedo lido no estgio 4 no registrador des`no

Arquitetura de Computadores

28

Caminho de dados

Arquitetura de Computadores

29

Caminho de dados
Passo 1

busca instruo, incrementa PC

Arquitetura de Computadores

30

Caminho de dados
Passo 1

busca instruo, incrementa PC

Arquitetura de Computadores

31

Caminho de dados
Passo 2

instruo LW l registrador fonte

Arquitetura de Computadores

32

Caminho de dados
Passo 2

instruo LW l registrador fonte

Neste estgio, tambm devemos estender o sinal do imediato para soma


com registrador base no prximo estgio (clculo do endereo efe]vo)

Arquitetura de Computadores

33

Caminho de dados
Passo 3

adiciona imediato (com sinal estendido) ao contedo do


registrador lido no estgio anterior, calculando o endereo

Arquitetura de Computadores

34

Caminho de dados
Passo 4

l contedo do endereo de memria calculado no estgio 3

Arquitetura de Computadores

35

Caminho de dados
Passo 4

l contedo do endereo de memria calculado no estgio 3

Passo 5

escreve contedo lido no estgio 4 no registrador des]no

Arquitetura de Computadores

36

Caminho de dados
Adicionar instruo sw
o que precisamos adicionar no caminho de dados?
ao invs de escrever no registrador, escrevemos seu contedo
na memria

Arquitetura de Computadores

37

Caminho de dados
Modicaes necessrias para instrues do `po R

Arquitetura de Computadores

38

Caminho de dados
Modicaes necessrias para instrues do `po R
os dois operandos da ALU so registradores
mux adicionado para selecionar entre RD2 e SignImm

Arquitetura de Computadores

39

Caminho de dados
Modicaes necessrias para instrues do `po R
resultado da ALU deve ser escrito no registrador des`no
mux adicionado para selecionar entre ALUResult e ReadData

Arquitetura de Computadores

40

Caminho de dados
Modicaes necessrias para instrues do `po R
ndice do registrador de des`no depende da instruo
mux adicionado para selecionar entre campos RT e RD

Arquitetura de Computadores

41

Caminho de dados
Caminho de dados atual suporta as instrues:
add, sub, or, and, stl
lw, sw

Necessrio ainda estender caminho de dados para


suportar beq
beq $1, $2, label
if (R[rs] == R[rt]) then
PC = PC+4 + sign_ext(imm) << 2;
else
PC = PC+4

op

rs

6 bits

5 bits

Arquitetura de Computadores

rt
5 bits

imm
16 bits

42

Caminho de dados
Alterao no caminho de dados para suportar a
instruo beq

Arquitetura de Computadores

43

Caminho de dados nal

Arquitetura de Computadores

44

Unidade de controle
Unidade de controle em um projeto monociclo um
circuito combinacional
Determinar as entradas e sadas atravs de uma tabela
verdade
entradas: campos op e funct da instruo
sadas: sinal para muxes e elementos de estado

Para facilitar o projeto, o controle da ALU fatorado


qual tamanho da tabela verdade se no fatorarmos?
Arquitetura de Computadores

45

Unidade de controle
Fatorao

ALUOp

Signicado

00

adicione (lw/sw)

01

subtraia (branch)

10

olhe no campo funct

11

no usado

ALUOp

Funct

ALUControl

00

010 (add)

X1

110 (sub)

1X

100000

010 (add)

1X

100010

110 (sub)

1X

100100

000 (and)

1X

100101

001 (or)

1X

101010

111 (slt)

Arquitetura de Computadores

46

Unidade de controle
Tabela verdade do decodicador principal
Instruo

RegWrite

RegDst

ALUSrc

Branch

MemWrite

MemtoReg

ALUOp

`po-R

10

lw

00

sw

00

beq

01

Como preench-la?
ALUOp: olhar tabela anterior
outros sinais: olhar caminho de dados para cada instruo e
determinar quando sinal deve estar a`vo
Arquitetura de Computadores

47

Unidade de controle
Controle: instruo or
0

Arquitetura de Computadores

48

Unidade de controle
Tabela verdade do decodicador principal

Instruo

RegWrite

RegDst

ALUSrc

Branch

MemWrite

`po-R

10

lw

00

sw

00

beq

01

Arquitetura de Computadores

MemtoReg

ALUOp

49

Microarquitetura monociclo
uma boa ideia/bom projeto?
Quando um bom projeto?
Quando um mau projeto?
Como projetar uma microarquitetura melhor?

Arquitetura de Computadores

50

Monociclo: Anlise
Lembrem-se da equao de desempenho!

TempoCPU = # instrues CPI PeriodoClock


Toda instruo
leva 1 ciclo

Como
determinar?

1. busca de instruo

3. execuo
2. decodicao

5. escrita registrador
4. memria

clock

Determinado pelo tempo que a instruo mais lenta leva para ser executada,
mesmo que alguma outra no necessite de todo esse tempo!
Arquitetura de Computadores

51

Qual a instruo mais lenta?


Todos os estgios levam o mesmo tempo?
Assuma

Memria (leitura/escrita): 200ps


ALU e somadores: 100ps
Banco de registradores (leitura/escrita): 50ps
Outros elementos combinacionais: 0ps

Estgios/
Recursos

IF /
ID /
Memria Banco reg

EX /
ALU

caminho cr]co

MEM /
WB /
Memria Banco reg

]po R

200

50

100

50

400

lw

200

50

100

200

50

600

sw

200

50

100

200

550

branch

200

50

100

350

Arquitetura de Computadores

Atraso

52

Visualizando o caminho cr`co `po R

200 ps

250 ps

350 ps

400 ps

Arquitetura de Computadores

53

Visualizando o caminho cr`co LW

200 ps

250 ps
600 ps

Arquitetura de Computadores

350 ps

550 ps

54

Discusso
Como a unidade de controle pode afetar o caminho
cr`co?
A unidade de controle pode estar no caminho cr`co?
Memria no mgica
E se a memria s vezes demorar 100ms?
Faz sen`do fazer uma instruo do `po R levar 100ms+?
Problema ainda maior se a memria for acessada mais de
uma vez (em quais instrues isso acontece?)
Arquitetura de Computadores

55

Microarquitetura monociclo
Ineciente
Todas as instrues so to lentas quanto a mais lenta
Um recurso precisa ser replicado se for usado mais de uma
vez pela mesma instruo
Atrasos nos acessos memria exige um perodo de ciclo alto,
afetando at instrues que operam em registradores

No necessariamente a implementao mais simples


Como implementar uma instruo complexa?

Di~cil de o`mizar/melhorar o desempenho


Necessrio o`mizar o pior caso o tempo todo (que no
necessariamente o mais comum!)
Arquitetura de Computadores

56

Princpios de projeto: microarquitetura


Projeto do caminho cr]co
Encontre o maior atraso da lgica combinacional e o diminua

Projeto do caso mais comum


Gaste recursos e tempo onde importante
Melhore o que a mquina realmente foi projetada para fazer

Projeto balanceado
Balanceie o uxo dos dados e controle atravs do hardware
Balanceie o hardware necessrio para completar a tarefa
Arquitetura de Computadores

57

Vous aimerez peut-être aussi