Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Aula 8: Pipelining (parte 5 – Hazards de dados e Stalls) Professor: Leandro Marzulo Arquiteturas Avançadas de Computadores Problema com o LW Load Word pode causar um hazard, mesmo com forwarding: Logo após um lw, uma instrução tenta ler o registrador que foi escrito pelo lw 2 lw $2, 20($1) and $4, $2, $5 or $8, $2, $6 add $9, $4, $2 Slt $1, $6, $7 Problema com o LW 3 R e g I M R e g R e g I M C C 1 C C 2 C C 3 C C 4 C C 5 C C 6 T i m e ( i n c l o c k c y c l e s ) l w $ 2 , 2 0 ( $ 1 ) P r o g r a m e x e c u t i o n o r d e r ( i n i n s t r u c t i o n s ) a n d $ 4 , $ 2 , $ 5 I M R e g D M R e g I M D M R e g I M D M R e g C C 7 C C 8 C C 9 o r $ 8 , $ 2 , $ 6 a d d $ 9 , $ 4 , $ 2 s l t $ 1 , $ 6 , $ 7 D M R e g R e g R e g D M Não podemos “voltar no tempo” para fazer o encaminhamento. Precisamos de uma unidade de detecção de hardware para comandar um stall no pipe! Lógica da Unidade de Detecção de Hazards if ( ID/EX.MemRead // se a instrução que está no estágio EX é um load… and ( ( ID/EX.RegisterRt = IF/ID.RegisterRs ) // e o registrador destino or ( ID/EX.RegisterRt = IF/ID.RegisterRt ) ) ) // coincide com algum de orígem da instrução que está no estágio anterior STALL! 4 Como funciona o stall? Se a condição anterior for verdadeira, o pipe precisa de um stall por apenas 1 ciclo de clock depois do load. Depois disso, a unidade de forwarding consegue resolver a dependência O que o Hardware faz para paralizar o pipe por 1 ciclo de clock: Não permite a alteração do registrador de pipe IF/ID (desabilita a escrita) – isso fará com que o estágio ID se repita, isto é, um stall Sendo assim, a instrução anterior (no estágio IF) precisa também de um stall para que o HW não altere o PC (desabilitar a escrita!). Õ estágio IF será repetido. Alterações nos campos de controle de EX, MEM e WB no registrador de pipe ID/EX para 0, para que a instrução que vem depois do load se torne um nop – Dizemos que uma bolha foi inserida no pipe. Note que não podemos transformar a instrução em um nop zerando os bits da instrução em sí – nop = 00…0 (32 bits) – pois a instrução já foi decodificada e os sinais de controle já foram gerados. 5 Unidade de Detecção de Hazard P C I n s t r u c t i o n m e m o r y R e g i s t e r s M u x M u x M u x C o n t r o l A L U E X M W B M W B W B I D / E X E X / M E M M E M / W B D a t a m e m o r y M u x H a z a r d d e t e c t i o n u n i t F o r w a r d i n g u n i t 0 M u x I F / I D I n s t r u c t i o n I D / E X . M e m R e a d I F / I D W r i t e P C W r i t e I D / E X . R e g i s t e r R t I F / I D . R e g i s t e r R d I F / I D . R e g i s t e r R t I F / I D . R e g i s t e r R t I F / I D . R e g i s t e r R s R t R s R d R t E X / M E M . R e g i s t e r R d M E M / W B . R e g i s t e r R d 6 Exemplo lw $2, 20($1) and $4, $2, $5 or $8, $2, $6 add $9, $4, $2 Slt $1, $6, $7 7 Exemplo l w $ 2 , 2 0 ( $ 1 ) P r o g r a m e x e c u t i o n o r d e r ( i n i n s t r u c t i o n s ) a n d $ 4 , $ 2 , $ 5 o r $ 8 , $ 2 , $ 6 a d d $ 9 , $ 4 , $ 2 s l t $ 1 , $ 6 , $ 7 R e g I M R e g R e g I M D M C C 1 C C 2 C C 3 C C 4 C C 5 C C 6 T i m e ( i n c l o c k c y c l e s ) I M R e g D M R e g I M I M D M R e g I M D M R e g C C 7 C C 8 C C 9 C C 1 0 D M R e g R e g R e g R e g b u b b l e 8 Exemplo H a z a r d d e t e c t i o n u n i t 0 M u x I F / I D W r i t e P C W r i t e I D / E X . R e g i s t e r R t I D / E X . M e m R e a d M W B $ 1 $ X X 1 2 b e f o r e < 3 > P C I n s t r u c t i o n m e m o r y R e g i s t e r s M u x M u x M u x E X W B D a t a m e m o r y M u x F o r w a r d i n g u n i t I n s t r u c t i o n I F / I D I D / E X E X / M E M M E M / W B a n d $ 4 , $ 2 , $ 5 l w $ 2 , 2 0 ( $ 1 ) b e f o r e < 1 > b e f o r e < 2 > C l o c k 2 1 1 X X 1 1 C o n t r o l A L U M W B 9 Exemplo H a z a r d d e t e c t i o n u n i t 0 M u x I F / I D W r i t e P C W r i t e I D / E X . R e g i s t e r R t l w $ 2 , 2 0 ( $ 1 ) P C I n s t r u c t i o n m e m o r y R e g i s t e r s M u x M u x M u x E X M W B W B D a t a m e m o r y M u x F o r w a r d i n g u n i t I n s t r u c t i o n I F / I D a n d $ 4 , $ 2 , $ 5 I D / E X b e f o r e < 1 > E X / M E M b e f o r e < 2 > M E M / W B o r $ 4 , $ 4 , $ 2 C l o c k 3 2 5 2 5 0 0 1 1 $ 2 $ 5 5 2 4 $ 1 $ X X 1 2 C o n t r o l A L U M W B I D / E X . M e m R e a d 10 Exemplo $ 2 $ 5 5 2 2 4 W B H a z a r d d e t e c t i o n u n i t 0 M u x I F / I D W r i t e P C W r i t e I D / E X . R e g i s t e r R t P C I n s t r u c t i o n m e m o r y R e g i s t e r s M u x M u x M u x E X M W B D a t a m e m o r y M u x I n s t r u c t i o n I F / I D a n d $ 4 , $ 2 , $ 5 b u b b l e I D / E X l w $ 2 , . . . E X / M E M b e f o r e < 1 > M E M / W B C l o c k 4 2 2 5 5 1 0 1 1 0 0 $ 2 $ 5 5 2 4 C o n t r o l A L U M W B F o r w a r d i n g u n i t I D / E X . M e m R e a d o r $ 4 , $ 4 , $ 2 11 Exemplo H a z a r d d e t e c t i o n u n i t 0 M u x I F / I D W r i t e P C W r i t e I D / E X . R e g i s t e r R t 2 b u b b l e l w $ 2 , . . . P C I n s t r u c t i o n m e m o r y R e g i s t e r s M u x M u x M u x E X M W B M W B D a t a m e m o r y M u x F o r w a r d i n g u n i t I n s t r u c t i o n I F / I D a n d $ 4 , $ 2 , $ 5 I D / E X E X / M E M M E M / W B a d d $ 9 , $ 4 , $ 2 C l o c k 5 2 2 1 0 1 0 1 1 $ 4 $ 2 2 4 4 4 2 4 $ 2 $ 5 5 2 4 C o n t r o l A L U 0 W B I D / E X . M e m R e a d o r $ 4 , $ 4 , $ 2 12 Exemplo P C I n s t r u c t i o n m e m o r y H a z a r d d e t e c t i o n u n i t 0 M u x I F / I D W r i t e P C W r i t e I D / E X . R e g i s t e r R t b u b b l e R e g i s t e r s M u x M u x E X M W B M W B D a t a m e m o r y M u x I n s t r u c t i o n I F / I D a d d $ 9 , $ 4 , $ 2 I D / E X a n d $ 4 , . . . E X / M E M M E M / W B C l o c k 6 4 4 2 2 1 0 1 0 $ 4 $ 2 2 4 4 9 $ 2 2 C o n t r o l A L U 1 0 W B 0 a f t e r < 1 > F o r w a r d i n g u n i t $ 4 4 4 o r $ 4 , $ 4 , $ 2 I D / E X . M e m R e a d M u x 13 Exemplo R e g i s t e r s I n s t r u c t i o n I D / E X 4 C o n t r o l P C I n s t r u c t i o n m e m o r y I F / I D W r i t e P C W r i t e a d d $ 9 , $ 4 , $ 2 o r $ 4 , . . . a n d $ 4 , . . . a f t e r < 2 > a f t e r < 1 > C l o c k 7 M u x M u x M u x E X M W B M W B D a t a m e m o r y M u x F o r w a r d i n g u n i t E X / M E M M E M / W B 1 0 1 0 $ 4 $ 2 2 4 9 A L U 1 0 W B 4 4 1 H a z a r d d e t e c t i o n u n i t 0 M u x I D / E X . R e g i s t e r R t I D / E X . M e m R e a d I F / I D 14