Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Contenido
• 1. Introducción
• 2. Renombrado registros físicos
• 3. Liberación de registros
• 4. Mecanismos de recuperación
– Bibliografía
• Jean-Loup Baer
Microprocessor Architecture: from simple pipelines to chip multiprocessors
Cambridge University Press, 2010
• J.P. Shen, and M.H. Lipasti,
Modern Processor Design: Fundamentals of Superscalar Processors,
McGraw Hill 2005
– Lectura:
AkkaryH. Akkary, R. Rajwar, and S. T. Srinivasan,
“Checkpoint processing and recovery: Towards scalable large instruction window processors,”
in Proceedings of the 36th International Symposium on Microarchitecture, December 2003.
(i1) lw R5,4(R10)!
(i2) sub R6,R5,R9!
(i3) add R5,R7,R8!
Ejemplo:!
add R5,R7,R8 ! la marca de R7 (por ej, a1)
se copia en la ER donde se envía la add!
Banco de registros
Writeback
tail head
Dispatch
(reserva entrada) Dispatch
(lectura operandos)
ROB
Renombrado
Cola de
B. Reg.
issue
BR físico
RAT Valor Busy
5 0 P8 0 3 1
6 1 4 1
1 1 P7 7
2 2 P5 2 6 1
5
3 P1 3 5 1
4 P9 4 1 1 1 Ready
… 5 11 1 0
31 6 9 1 1
7 12 0 1
…
63
a la IQ
Libres P2 P6 P13
head tail
IQueue
Banco de registros físico
suma
Valor Busy
Op Rdy (2 bits) 3 (11 en binario) 0 3 1
1 4 1
Dest 2 2 6 1
3 5 0
Src2 5 6 4 1 1 32
5 5 11 0 11
Src1 7 6 9 1
7 7 12 0 12
Entrada ROB 22 …
(tag) 63
AAV - Julio Sahuquillo -19-
Renombrado: etapa writeback
• Writeback: escritura en el banco de registros físico, busy=0
• Acceder al ROB para indicar que ha completado (WB=1)
• En las ER/IQ debe indicarse que el operando ya está listo (wakeup)
• Se añaden de 20 a 80 registros
– Realizan una tarea primaria del ROB, y determinan cuantas
instrucciones pueden haber en ejecución
(entre issue y commit)
! ! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 !
L.D F6,32(R2) !
L.D F2,48(R2) !
MULT.D F0,F2,F6 !
ADD.D F8,F6,F10!
ADD.D F4,F10,F10!
! ! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 !
L.D F6,32(R2) !
L.D F2,48(R2) !
MULT.D F0,F2,F6 !
ADD.D F8,F6,F10!
ADD.D F4,F10,F10!
• ¿Cuándo se restaura?
– En la etapa commit o writeback de la instrucción de salto.
• ¿Cómo?
– A partir de la información almacenada en el ROB
– Mediante checkpoints
• Estudiaremos:
– Recuperación en commit y writeback a partir del ROB
ROB
add r3,r5,r7 (P1) RAT
bnez r4, dest
add r3,r1,r2 (P2) add P2, P7, P5 0 P8
1 P7
Dest Lógico 3 2 P5
Map. previo 1 3 P2 P1
WB 1 4 P9
…
31
Libres P6 P13 P2
head tail
Front-end Retirement
RAT ROB
RAT
Dest lógico 2 2 2
2 14 Map. previo 12 … 10 … 8 2
Phy. mapp. 14 12 10
sub addi beqz add
tail head
¿cuál es el último mapping válido antes de la instrucción de salto?
¿qué valor debe contener la retirement RAT tras el commit de la ADD?
¿qué valor encontrará la add en la retirement RAT?
– Lectura:
• H. Akkary, R. Rajwar, and S. T. Srinivasan,
“Checkpoint processing and recovery: Towards scalable large instruction window
processors,”
Proc. of the 36th International Symposium on Microarchitecture, December 2003.
• Checkpoint:
– Copia de una estructura del procesador
– En caso de fallo se utiliza el checkpoint para recuperar el estado
– Muy utilizado en ejecución especulativa
– Checkpoint físico:
• Se copia el estado
– Checkpoint lógico:
• Se copia un estado lógico que permite recuperar el estado físico
• Menos costoso
• ¿Cómo se aplica a la RAT?
– Se hace un checkpoing de la RAT cuando se renombra una instrucción
de salto (o cualquiera que pueda generar una excepción)
– Problema:
• Pueden ser necesarios muchos checkpoints (coste espacial)
• Algunas soluciones proponen hacer checkpoints solo en los saltos con
mayor probabilidad de que falle la predicción
• Si no se hace un checkpoint y luego falla, se vuelve al salto anterior
• Características procesador
– Etapas: IF, ID, Rn (renombrado y dispatch), I, En ejecución, WB, C
– Suma/rest Latencia=2 (A1, A2) IR=1/2
RAT
– Mult/div. Latencia=2 (M1, M2) IR=1/2 0 0
– Salto. Latencia=1 (EX) IR=1 2 2
4 4
• Suponiendo que la predicción es no saltar y que
6 6
hay fallo de predicción, se pide 8 8
– Diagrama de instrucción/tiempo hasta el ciclo 11 10 10
– Evolución de la tabla de renombrado hasta el ciclo 11< 12 12
Asume que la liberación y asignación de registros es FIFO … …
! ! 1 2 3 4 5 6 7 8 9 10 11 !
ADD.D F6,F2,F3 !
MULT.D F4,F8,F4 !
BNEZ F4,DEST!
ADD.D F6,F2,F2 !
ADD.D F8,F2,F10 !
SUB.D F6,F6,F8 A2 WB C!
ADD.D F8,10,F8!
ADD.D F10,F12,F10 !
SUB.D F2,F12,F12!
!