Sei sulla pagina 1di 63

Arquitetura

de Computadores
Prof. Alexandro Baldassin
1o semestre/2014

Estgio de busca com predio


PC

Memria
de
Instruo

instruo

prximo PC
4

PC + 4

endereo alvo

BTB

Preditor

BTB vlida

tomado ou no
tomado

Arquitetura de Computadores

1 0

Tipos de predio
Predio estIca
Predio de salto determinada uma vez e manIda constante
Alteraes mais modestas no hardware (ou nenhuma)
Pode requerer suporte do ISA (e compilador)

Acerto de predio relaIvamente baixo: 60-70%

Predio dinmica
Determinada em tempo de execuo
Requer hardware mais complexo
Acerto de predio alto: mais que 80%

Arquitetura de Computadores

Acurcia de alguns preditores

Arquitetura de Computadores

Tipos de saltos
Tipo

Nmero de
Quando o endereo da
Direo no
prximos endereos prxima instruo
momento da busca
possveis?
resolvido?

Condicional

Desconhecido

Execuo (depende de
registrador)

Incondicional

Sempre tomado

Decodicao (PC+oset)

Chamada
Sempre tomado
procedimento

Decodicao (PC+oset)

Retorno de
Sempre tomado
procedimento

Muitos

Execuo (depende de
registrador)

Indireto

Muitos

Execuo (depende de
registrador)

Sempre tomado

Diferentes Ipos de saltos podem ser tratados de maneiras diferentes


Tcnicas vistas so empregadas para saltos condicionais
Arquitetura de Computadores

Predies para saltos diretos e retorno


Saltos diretos so simples de serem preditos
Sempre tomados, alvo nico
BTB prov endereo alvo no estgio IF

Saltos indiretos so mais complicados


Para retorno de chamadas possvel usar uma pilha para
predizer endereos de retorno (Return Address Stack)
Uma instruo de chamada empilha prximo endereo na RAS
Uma instruo de retorno desempilha e usa endereo como
predio
Boa acurcia: 95%
Arquitetura de Computadores

Saltos indiretos
No h necessidade de predizer a direo
Sempre tomado

Abordagem 1: Predizer o lImo endereo resolvido


como o prximo
BTB pode ser usada para armazenar endereo alvo
Baixa acurcia (50%)

Abordagem 2: Usar predio baseada em histria


Indexar a BTB com GHR e o endereo do salto indireto
Maior acurcia
Um salto indireto mapeia para muitas posies na BTB
Conita com outros saltos (diretos e indiretos)
Arquitetura de Computadores

Relembrando
for (i=0; i<N; i++)!
vector[i] = rand() % N;!
!
sort(vector);!
!
for (i=0; i<N; i++)
// para cada valor entre 0..N-1!
for (j=0; j<N; j++) // percorre vetor e conta todos os elementos <= que ele!
if (vector[j] <= i) !
menor_igual[i]++;!

A insero da ordenao pode melhorar o desempenho


do cdigo! Para N=65536, at 2x em uma mquina Intel i5

Arquitetura de Computadores

Como resolver conitos de controle


crIco manter o pipeline cheio com a sequncia correta de
instrues
Instrues de desvios no pipeline adicionam incerteza com relao
prxima instruo a ser buscada

Solues

Parar o pipeline at sabermos o endereo da prxima instruo


Usar salto tardio (branch delay slot)
Adivinhar prximo endereo (predio de desvios)
Fazer outra coisa (ne-grained mul9threading)
Eliminar instrues de desvio (execuo com predicados)
Buscar instrues de ambos caminhos possveis
Arquitetura de Computadores

Eliminando instrues de desvio


Predica9on (Predicao)
Compilador transforma dependncia de controle em
dependncia de dados

Ideia
Cada instruo possui bits de predicado, setados de acordo
com a computao do predicado
Somente as instrues com o predicado VERDADEIRO afetam
o estado arquitetural
As outras so transformadas em NOPs

Arquitetura de Computadores

10

Exemplo de predicao
Trecho de cdigo
(pseudo-cdigo)

Sequncia usando
instrues de salto

if (condicao)
A = 0;
else
A = 1;

X = A+1;

r1 <= condicao
beq r1, r0, FALSO
add A, r0, r0
j FIM
FALSO:
addi A, r0, 1
FIM:
addi X, A, 1
Arquitetura de Computadores

Sequncia usando
predicao

p1 <= condicao

(p1) add A, r0, r0
(!p1) addi A, r0, 1

add X, A, 1

11

Exemplo IA64
Condi9onal move instruo CMOVcc
Checa o estado de uma ou mais ags de status (registrador
EFLAGS)
CF, OF, PF, SZ e ZF

Um cdigo de condio (cc) associado a cada instruo


Se condio no saIsfeita, um MOV no realizado

if (b == c)
b = 1;
else
c = 2;

CMP EBX, ECX


CMOVE EBX, 1
CMOVNE ECX, 2
Arquitetura de Computadores

12

Arquitetura de Computadores

13

Arquitetura de Computadores

14

ARM condiIonal execuIon


Todas as instrues contm um campo de condio que
determina se a CPU a executar ou no
Note que uma instruo que no for executada toma 1 ciclo

Por exemplo:
ADD r1, r2, r3

Para execut-la somente se a ag de zero esIver setada:


ADDEQ r1, r2, r3

Arquitetura de Computadores

15

Predicao Tradeos
Vantagens
Para saltos dixceis de serem previstos pode ter ganho
substancial
Bom se custo de mispredio > trabalho inIl devido a predicao

Possibilita mais espao para oImizao pelo compilador


Instrues podem ser reordenadas com mais facilidade

Desvantagens
Causa trabalho inIl para saltos fceis de serem previstos
Reduz desempenho se custo de mispredio < trabalho inIl

Hardware adicional + suporte ISA


Arquitetura de Computadores

16

EXCEES E INTERRUPES
Excees precisas e imprecisas

P&H: 4.9
H&P (quanItaIve): C.4
Arquitetura de Computadores

17

Excees
Excees so eventos inesperados que alteram o uxo
de execuo
Lidar com excees sem sacricar desempenho dixcil

Terminologia no uniforme
Exceo: eventos que ocorrem dentro da CPU
Interrupo: eventos externos
Tipo de evento

De onde

Terminologia usada

Requisio de disposiIvo de I/O Externo

Interrupo

Invocar SO do modo usurio

Interno

Exceo

Overow aritmIco

Interno

Exceo

Opcode invlido

Interno

Exceo

Arquitetura de Computadores

18

Tratamento de excees
Quando tratar?
Excees: quando detectadas
Interrupes: quando conveniente (depende da prioridade)

Aps uma exceo ser gerada, processador deve:


Salvar o endereo da instruo que gerou a exceo (ou que
foi interrompida)
MIPS: registrador EPC (Excep9on Program Counter)

Salvar a causa da exceo/interrupo


MIPS: registrador de status chamado Cause

Transferir controle para o sistema operacional


MIPS: PC salta para 0x80000180
Arquitetura de Computadores

19

Aes tomadas
O sistema operacional responsvel por tomar as
devidas aes de acordo com a causa da exceo
Se reinicivel
Tratar a exceo de acordo com sua causa (MIPS: Cause)
Devolver controle aplicao usando endereo de retorno
salvo (MIPS: EPC)

Caso contrrio
Terminar a aplicao e reportar erro ao usurio
Arquitetura de Computadores

20

Excees em um pipeline
Excees podem ser tratadas como uma outra forma de
conito de controle
Ex: se um overow aritmIco for gerado por uma instruo
ADD, todas as instrues mais novas no pipeline devem ser
descartadas (ushed)

O mesmo mecanismo usado para corrigir falhas de


predio de saltos pode ser usado
Muito do mesmo hardware usado (esvaziamento)

Qual a principal diferena entre excees e falhas de


predio?
Frequncia que ocorrem
Arquitetura de Computadores

21

Excees por estgio no MIPS


Estgio no pipeline

Possveis excees

IF

Falha de pgina na busca da instruo; Acesso


desalinhado memria; Violao de proteo da
memria

ID

Opcode no denido ou ilegal

EX

Exceo aritmIca (diviso por zero, overow, )

MEM
WB

Mesmo que IF
Nenhuma

Arquitetura de Computadores

22

Funcionamento
Considere que uma exceo de overow aritmIco foi gerada
para a instruo
add $1, $2, $1
Pipeline deve

Completar as instrues anteriores (que vem antes, na ordem do


programa) ao ADD
Descartar instrues ADD e subsequentes
Setar registradores EPC e Cause
Transferir controle para tratador de exceo

Cuidado!

O hardware no deve permiIr que o registrador $1 da instruo ADD seja


alterado (por qu?)
Do contrrio, um dos valores originais que causou a exceo ($1) perdido
sistema no ver valor original
Arquitetura de Computadores

23

Pipeline com suporte para excees

Arquitetura de Computadores

24

Problemas no tratamento de excees


Considere uma instruo LW qualquer, seguida de uma ADD
no pipeline abaixo
LW

ADD

IF

ID

EX

M WB

IF

ID

EX

M WB

Duas excees podem ser geradas no mesmo ciclo


LW (estgio M) e ADD (estgio EX)

Excees devem ser tratadas na ordem do programa


Mesmo que a instruo ADD tenha alguma falha no estgio IF, uma
possvel falha de LW no estgio M deve ser tratada primeiro
(mesmo tendo acontecido temporalmente aps a exceo de ADD)
Arquitetura de Computadores

25

Exemplo (1)
Exceo na instruo add abaixo
40
44
48
4C
50
54

sub
and
or
add
slt
lw

$11,
$12,
$13,
$1,
$15,
$16,

$2, $4
$2, $5
$2, $6
$2, $1
$6, $7
50($7)

Cdigo do tratador de excees


80000180
80000184

sw
sw

$25, 1000($0)
$26, 1004($0)
Arquitetura de Computadores

26

Exemplo (2)

Arquitetura de Computadores

27

Exemplo (3)

Arquitetura de Computadores

28

Excees imprecisas
Por que no simplicar o hardware e no salvar 0x58 no
EPC (ao invs de 0x50 no lImo exemplo)?
Nesse caso o estado arquitetural no seria consistente
Dizemos que neste caso a exceo imprecisa

Excees imprecisas
Simplica hardware, mas deixa para o sistema operacional a
tarefa de determinar qual instruo causou a exceo
No vivel em processadores superescalares atuais

Arquitetura de Computadores

29

Excees precisas
Um processador prov exceo precisa se:
Todas as instrues antes da que causou a exceo so
completadas normalmente
A instruo que causou a exceo e todas depois dela so
descartadas
O valor do PC salvo o da instruo que sofreu exceo

Por que queremos excees precisas?


Faz parte do modelo Von Neumann
Facilita depurao
Mais fcil de se recuperar de excees e reiniciar execuo
Arquitetura de Computadores

30

Leitura recomendada
Disponvel no TelEduc
Implemen9ng Precise Interrupts in Pipelined Processors,
James Smith & Andrew Pleszkun IEEE TransacUons on
Computers, 1988.

Arquitetura de Computadores

31

PIPELINES AVANADOS
MlIplas unidades funcionais
Reorder Buer (ROB)

H&P (quanItaIve): C.5


Baer: Captulo 3
Arquitetura de Computadores

32

Operaes mulIciclo
O pipeline que vimos at agora considerado de primeira
gerao (simples e um pouco irrealista)
O que acontece se quisermos realizar operaes aritmIcas mais
lentas (como diviso) ou operaes de ponto utuante?

Em processadores modernos nem todas as instrues levam


o mesmo tempo para serem executadas
Estgio de execuo (EX) possui diversas unidades funcionais
com nmero de ciclos diferentes
Podem ser implementadas usando a tcnica de pipeline ou no
Instrues independentes podem comear a execuo em uma
unidade funcional diferente antes de uma mais lenta terminar
Arquitetura de Computadores

33

Unidades funcionais mulIciclo

Quatro diferentes unidades funcionais no estgio de execuo:


1.

unidade inteira (clculo endereo de memria, operaes inteiras na ALU e saltos)

Arquitetura de Computadores

34

Unidades funcionais mulIciclo

Quatro diferentes unidades funcionais no estgio de execuo:


1.
2.

unidade inteira (clculo endereo de memria, operaes inteiras na ALU e saltos)


mulIplicador inteiro ou ponto utuante (pipelined, 7 estgios)

Arquitetura de Computadores

35

Unidades funcionais mulIciclo

Quatro diferentes unidades funcionais no estgio de execuo:


1.
2.
3.

unidade inteira (clculo endereo de memria, operaes inteiras na ALU e saltos)


mulIplicador inteiro ou ponto utuante (pipelined, 7 estgios)
somador para ponto utuante (pipelined, 4 estgios)

Arquitetura de Computadores

36

Unidades funcionais mulIciclo

Quatro diferentes unidades funcionais no estgio de execuo:


1.
2.
3.
4.

unidade inteira (clculo endereo de memria, operaes inteiras na ALU e saltos)


mulIplicador inteiro ou ponto utuante (pipelined, 7 estgios)
somador para ponto utuante (pipelined, 4 estgios)
divisor inteiro ou ponto utuante (no pipelined, 24 ciclos)
Arquitetura de Computadores

37

Hardware extra
Para o novo pipeline mostrado, precisamos:
Banco de registradores para valores em ponto utuante
F0, F1, F2, , F31

Novos registradores de pipeline


E.g. A1/A2, A2/A3, A3/A4

O anIgo registrador de pipeline ID/EX precisa ser estendido


para conectar o estgio ID com EX, M1, A1 e DIV

Instruc9on dispatching (despacho de instruo)


Processo de permiIr que uma instruo passe do estgio de
decodicao (ID) para o de execuo (EX)
Arquitetura de Computadores

38

Exemplo de execuo
Exemplo mostra quatro instrues independentes no
pipeline
Suxo .d usado p/ instrues com operaes ponto utuante
mul.d
add.d
l.d
s.d

IF

ID

M1 M2 M3 M4 M5 M6 M7

IF

ID

A1

A2

A3

A4

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

MEM

MEM

WB

WB

WB

XX

Estgio no qual os registradores fontes so necessrios

XXXX

Estgio no qual o resultado ca pronto


Arquitetura de Computadores

39

Conitos
Note que no exemplo anterior:
Instrues foram despachadas em ordem
Mas foram completadas fora de ordem

Aspectos na deteco de conitos no novo pipeline


Divisor no pipelined, provocando conitos estruturais
Instrues tem latncias diferentes, podendo fazer com que
mais de um registrador precise ser escrito no mesmo ciclo
Conitos WAW so possveis agora, mas no WAR (por qu?)
Instrues podem ser completadas fora de ordem, gerando
problemas com excees precisas
Paradas por conitos RAW so mais frequentes (por qu)?
Arquitetura de Computadores

40

Paradas mais frequentes


Ciclos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

l.d f4, 0(r2)


mul.d f0, f4, f6
add.d f2, f0, f8
s.d f2, 0(r20)

IF ID EX MEM WB
IF ID M1 M2 M3 M4 M5 M6 M7
IF ID
IF

MEM WB

A1 A2 A3 A4

MEM WB

ID EX

MEM

Assumindo que lgica de adiantamento esteja implementada.

Arquitetura de Computadores

41

MlIplas escritas no mesmo ciclo


Trs escritas simultneas no banco de registradores de
ponto utuante
Ciclos
1 2 3 4 5 6 7 8 9 10 11

mul.d f0, f4, f6


. . .
. . .
add.d f2, f4, f6
. . .
. . .

IF ID M1 M2 M3 M4 M5 M6 M7

s.d f2, 0(r2)

IF ID EX

MEM WB

IF ID EX MEM WB
IF ID EX MEM WB
IF ID A1 A2 A3 A4

MEM WB

IF ID EX MEM WB
IF ID EX MEM WB

Arquitetura de Computadores

MEM WB

42

Conitos WAW
Ciclos
1 2 3 4 5 6 7 8 9 10 11

sub.d f0, f4, f6


. . .
. . .
add.d f2, f4, f6
. . .
l.d f2, 0(r2)

IF ID A1 A2 A3 A4

MEM WB

IF ID EX MEM WB
IF ID EX MEM WB
IF ID A1 A2 A3 A4
IF ID EX

MEM WB

IF ID EX

Arquitetura de Computadores

MEM WB

MEM WB

43

Uma soluo para resolver os conitos


No estgio ID, antes dos despacho da instruo, checar:
Conitos estruturais
Esperar at que a unidade funcional necessria no esteja ocupada;
CerIcar que a porta de escrita esteja disponvel quando necessrio;

Conitos RAW
Esperar at que registradores fontes estejam disponveis ou possam ser
adiantados (mesma lgica que usamos no projeto do pipeline
convencional, porm um pouco mais complexa)

Conitos WAW
Vericar se alguma instruo em A1, , A4, D, M1, , M7 tem o mesmo
registrador desIno da instruo a ser despachada. Nesse caso, parar a
instruo no estgio ID.
Arquitetura de Computadores

44

Mantendo as excees precisas


A soluo apontada mantm as excees precisas?
tempo

div.d f0, f2, f4


add r10, r10, r8


sub.d f12, f12, f14

IF

ID
IF

+15 ciclos D

D
ID

EX

MEM

IF

ID

M1 M2 M3 M4

MEM

WB

WB
MEM

WB

E se sub.d gerar uma exceo aritmIca nesse ponto?


Valor de r10 j foi computado
Note que o valor anIgo de r10 j foi perdido impossvel de
recuper-lo at mesmo com ajuda de soware
Teremos exceo imprecisa
Arquitetura de Computadores

45

Problemas com as excees


O problema surge porque as instrues esto sendo
completadas fora da ordem que foram despachadas
Solues
Usar excees imprecisas
Usado na dcada de 60 e incio da 70
No mais facvel devido memria virtual e padro IEEE de ponto
utuante, os quais requerem excees precisas

Reorder buer
History buer
Future register le

Para detalhes veja o seguinte arIgo no TelEduc:


James E. Smith and Andrew R. Pleszkun.


ImplemenUng precise interrupts in pipelined processors.
IEEE TransacIons on Computers, 1988.
Arquitetura de Computadores

46

Reorder buer (ROB)


Ideia: completar as instrues fora de ordem, mas
reorden-las antes de efeIvar (commit) os resultados
no estado arquitetural
Viso geral dos passos
Quando uma instruo decodicada, ela reserva uma
entrada no ROB
Quando uma instruo completada, o valor produzido
escrito na respecIva entrada no ROB
Quando a instruo for a mais anIga no ROB, e completou
sem gerar excees, o resultado escrito no banco de
registradores ou memria
Arquitetura de Computadores

47

ROB
O ROB uma la circular
valid

Did

PC

Dval

Gex

15

110

0x10008000

10

????

0x10009020

head
tail

valid idenIca se a entrada vlida (valor j foi produzido)


Did idenIcador do registrador de desIno
Dval valor a ser escrito no registrador de desIno
Gex idenIca se alguma exceo foi gerada para aquela instruo (+ a causa)
Arquitetura de Computadores

48

Pipeline com ROB


Unidade
Funcional 1
Memria
Instruo

Banco de
Registradores

Unidade
Funcional 2
Unidade
Funcional 3

ROB

Arquitetura de Computadores

49

Operao do ROB
No estgio ID, uma nova entrada no ROB alocada
Registrador de desIno no banco de registradores renomeado e
aponta para a respecIva entrada no ROB
Caso no haja espao no ROB, pipeline parado

Os registradores fontes da instruo so consultados no


banco de registradores
Se esIverem disponveis no prprio banco, instruo prossegue
Caso contrrio ele foi renomeado para uma entrada no ROB que
produzir o valor do registrador

(opcional) ROB acessado para apanhar valor do registrador


Se valor ainda no esIver pronto, instruo parada (RAW)
Arquitetura de Computadores

50

Eliminao de WAR e WAW


Note que a renomeao dos registradores arquiteturais
para entradas no ROB elimina dependncias de nome
valid

RF

f1

f2

f3

f4

f5

f6

PC

Dval

Did

Gex

head
tail

ROB

Estado inicial: ROB vazio, RF completamente vlido

Arquitetura de Computadores

add.d f1, f4, f6


sub.d f6, f2, f3
mul.d f6, f5, f2
add.d f2, f1, f4
51

Eliminao de WAR e WAW


Note que a renomeao dos registradores arquiteturais
para entradas no ROB elimina dependncias de nome
valid

RF

f1

ROB0

f2

f3

f4

f5

f6

PC

Dval

Did

Gex

f1

???

0x100

head

tail

ROB

Instruo add.d decodicada:


. entrada no ROB alocada
. registrador f1 renomeado
. registradores f4 e f6 lidos normalmente

Arquitetura de Computadores

0x100

add.d f1, f4, f6


sub.d f6, f2, f3
mul.d f6, f5, f2
add.d f2, f1, f4
52

Eliminao de WAR e WAW


Note que a renomeao dos registradores arquiteturais
para entradas no ROB elimina dependncias de nome
valid

RF

f1

ROB0

f2

f3

f4

f5

f6

ROB1

PC

Dval

Did

Gex

f1

???

0x100

f6

???

0x104

head
tail

ROB

Instruo sub.d decodicada:


. entrada no ROB alocada
. registrador f6 renomeado (WAR eliminado) 0x104
. registradores f2 e f3 lidos normalmente
Arquitetura de Computadores

add.d f1, f4, f6


sub.d f6, f2, f3
mul.d f6, f5, f2
add.d f2, f1, f4
53

Eliminao de WAR e WAW


Note que a renomeao dos registradores arquiteturais
para entradas no ROB elimina dependncias de nome
valid

RF

f1

ROB0

f2

f3

f4

f5

f6

ROB2

PC

Dval

Did

Gex

f1

???

0x100

f6

???

0x104

f6

???

0x108

head

tail

ROB

Instruo mul.d decodicada:


. entrada no ROB alocada
. registrador f6 renomeado (WAW eliminado)
0x108
. registradores f5 e f2 lidos normalmente
Arquitetura de Computadores

add.d f1, f4, f6


sub.d f6, f2, f3
mul.d f6, f5, f2
add.d f2, f1, f4
54

Eliminao de WAR e WAW


Note que a renomeao dos registradores arquiteturais
para entradas no ROB elimina dependncias de nome
valid

RF

f1

ROB0

f2

f3

f4

f5

f6

ROB2

PC

Dval

Did

Gex

f1

???

0x100

f6

???

0x104

f6

???

0x108

head

tail

ROB

Instruo add.d decodicada:


. registrador fonte f1 no vlido no RF
. entrada ROB0 diz que no est pronto
. instruo parada at que f1 seja produzido
Arquitetura de Computadores

0x10C

add.d f1, f4, f6


sub.d f6, f2, f3
mul.d f6, f5, f2
add.d f2, f1, f4
55

ROB e excees precisas


Como o ROB garante excees precisas?
Lembre-se que as instrues so completadas fora de
ordem, mas so aposentadas (re9red) em ordem
Quando a instruo est sendo reIrada, checar bit de
exceo
Se esIver setado, todos os resultados posteriores no ROB so
descartados e pipeline limpo
Nenhuma instruo que produziu valor depois que a exceo
surgiu efeIvada
Campo PC no ROB indica o endereo preciso da exceo
Arquitetura de Computadores

56

Operaes em memria
A discusso at agora focou em registradores
Instrues de memria completadas fora de ordem
podem ser problema
Desfazer a escrita em memria mais dixcil do que a escrita
em registradores (por qu?)
Memria pode ser comparIlhada (outras threads), enquanto
registradores no so

Store buer
Ideia similar ao ROB, mas somente para instrues store
Arquitetura de Computadores

57

EXECUO FORA DE ORDEM (OOO)


Escalonamento estIco versus dinmico
Arquitetura para execuo fora de ordem e exemplo baseado no
algoritmo de Tomasulo
Explorando ILP
P&H: 4.10 (simplicado)
H&H: 7.8
H&P (quanItaIve): Captulo 3 - Baer: Captulo 3
Arquitetura de Computadores

58

Terminologia
conveniente alterar a terminologia vista at agora
quando se trata de processadores modernos
Front-end
Busca e decodicao das instrues (IF + ID)

Back-end
Execuo e escrita do resultado (EX + MEM + WB)

Arquitetura de Computadores

59

Tipos de processadores
Existem dois principais Ipos de processadores
Em ordem ou estUcos (in-order / sta/c)
Organizao que vimos at o momento
As instrues saem do front-end na ordem do programa e somente
quando todas as dependncias de dados forem resolvidas
Se h dependncias, o pipeline parado e nenhuma instruo aps a
que parou pode conInuar

Fora de ordem ou dinmicos (out-of-order [OOO] / dynamic)


Instrues so ainda despachadas na ordem do programa, mas podem
comear a executar fora de ordem
Caso haja dependncias, uma instruo aguarda em um buer
(chamado reserva9on sta9on) antes de iniciar execuo
Arquitetura de Computadores

60

Em ordem versus Fora de ordem


Inicialmente, a facilidade de implementao dos
processadores em ordem permiIu que fossem fabricados
com ciclo de relgio mais curto
At o meado dos anos 90, o desempenho dos processadores
em ordem dominou o dos fora de ordem
A situao se invertou a parIr de ento, quando o nmero
disponvel de transistores (Lei de Moore) permiIu a
implementao de mais funcionalidades no chip
esImado que, para o mesmo nmero de unidades funcionais,
processadores OOO requeiram 30% a mais de lgica, o que tambm
leva a um maior tempo de projeto e fabricao (9me to market)
Arquitetura de Computadores

61

Problemas com execuo em ordem


O que as duas sequncias tm em comum quando executadas em
processadores em ordem?
(i1) mul r4, r0, r2
(i2) add r6, r4, r8
(i3) sub r3, r2, r12
(i4) mul r7, r14, r16

(i1) lw r4, 0(r2)


(i2) add r6, r4, r8
(i3) sub r3, r2, r12
(i4) mul r7, r14, r16

Instruo ADD no pode ser despachada porque registrador fonte


R4 no est disponvel (RAW)
Instrues a seguir (3 e 4) tambm no podem ser despachadas, mesmo
sendo independentes

Em que as sequncias anteriores so diferentes?

Latncia da instruo lw varivel (desconhecida at execuo)


Compilador teria diculdades para esconder a latncia atravs de
reordenamento estIco de instrues
Arquitetura de Computadores

62

Execuo fora de ordem


A principal ideia Irar as instrues com dependncias
do caminho das independentes
Instrues aguardam seus operandos carem prontos nas
estaes de reserva (reserva9on sta9ons)

Valores dos operandos so monitorados nas estaes


Assim que o resultado de um registrador produzido, um
broadcast feito com seu valor

Quando os operandos esIverem prontos, a instruo


colocada para execuo (issued)
Arquitetura de Computadores

63

Potrebbero piacerti anche