Você está na página 1de 3

4.

6 Caminho de dados e controle usando pipeline - Load

Parte superior da Figura 4.36

1. Busca de instrues: a parte superior da Figura 4.36 mostra a instruo sendo lida da memria usando o endereo no PC e
depois colocada no registrador de pipeline IF/ID. O endereo do PC incrementado em 4 e depois escrito de volta ao PC, para que
fique pronto para o prximo ciclo de clock. Esse endereo incrementado tambm salvo no registrador de pipeline IF/ID caso seja
necessrio mais tarde para uma instruo, como beq. O computador no tem como saber que tipo de instruo est sendo buscada,
de modo que precisa se preparar para qualquer instruo, passando informaes potencialmente necessrias pelo pipeline.

Parte inferior da Figura 4.36

2. Decodificao de instrues e leitura do banco de registradores: a parte inferior da Figura 4.36 mostra a parte relativa
instruo do registrador de pipeline IF/ID, fornecendo o campo imediato de 16 bits, que tem seu sinal estendido para 32 bits, e os
nmeros dos dois registradores para leitura. Todos os trs valores so armazenados no registrador de pipeline ID/EX, assim como o
endereo no PC incrementado. Novamente, transferimos tudo o que possa ser necessrio por qualquer instruo durante um ciclo de
clock posterior.

Figura 4.37

3. Execuo ou clculo de endereo: a Figura 4.37 mostra que a instruo load l o contedo do registrador 1 e o imediato com o
sinal estendido do registrador de pipeline ID/EX e os soma usando a ALU. Essa soma colocada no registrador de pipeline
EX/MEM.

Parte superior da Figura 4.38

4. Acesso memria: a parte superior da Figura 4.38 mostra a instruo load lendo a memria de dados por meio do endereo
vindo do registrador de pipeline EX/MEM e carregando os dados no registrador de pipeline MEM/WB.

Parte inferior da Figura 4.38

5. Escrita do resultado: a parte inferior da Figura 4.38 mostra a etapa final: lendo os dados do registrador de pipeline MEM/WB e
escrevendo-os no banco de registradores, no meio da figura.
Agora, podemos descobrir um bug no projeto da instruo load. Voc conseguiu ver? Qual registrador alterado no estgio
final da leitura? Mais especificamente, qual instruo fornece o nmero do registrador de escrita? A instruo no registrador de
pipeline IF/ID fornece o nmero do registrador de escrita, embora essa instruo ocorra consideravelmente depois da instruo
load!
Logo, precisamos preservar o nmero do registrador de destino da instruo load. Assim como store passou o contedo do
registrador do ID/EX ao registrador de pipeline EX/MEM para uso no estgio MEM, load precisa passar o nmero do registrador
de ID/EX por EX/MEM ao registrador de pipeline MEM/WB, para uso no estgio WB. Outra maneira de pensar sobre a
passagem do nmero de registrador que, para compartilhar o caminho de dados em pipeline, precisvamos preservar a instruo
lida durante o estgio IF, de modo que cada registrador de pipeline contenha uma parte da instruo necessria para esse estgio e
para os estgios posteriores.