Professional Documents
Culture Documents
23/08/06
¿Qué es Pipelining?
23/08/06
1
El set de instrucciones
FI - DI - EX - MEM - WB
Otras instrucciones
Instrucciones de memoria
Instrucciones de branch
23/08/06
23/08/06
2
El RISC implementado como pipe
ciclos
1 2 3 4 5 6 7 8 9
Instrucción i IF ID EX MEM WB
23/08/06
23/08/06
3
El pipe clásico de 5 etapas
23/08/06
MEM/WB
IF/ID ID/EX
23/08/06
4
Desempeño en el pipe
Se incrementa el throughput de instrucciones.
23/08/06
23/08/06
5
Desempeño del pipe con stalls
Speedup por pipelining =
Tiempo promedio por instrucción sin pipe
Tiempo promedio por instrucción con pipe
Ganancia en el pipe:
Considerando el CPI.
23/08/06
Hazards estructurales
La ejecución solapada requiere:
Que las unidades estén pipelined, o
23/08/06
6
Conflicto por cada referencia a memoria
23/08/06
ciclos
1 2 3 4 5 6 7 8 9
Instrucción 1 IF ID EX MEM WB
Instrucción 2 IF ID EX MEM WB
Instrucción 4 IF ID EX MEM
23/08/06
7
Hazards de datos
Ocurren cuando el orden de acceso a los datos se ve alterado
por el solapamiento de las instrucciones en el pipe.
Ejemplo.
23/08/06
Hazards de datos
23/08/06
8
Adelantamiento simple
23/08/06
Adelantamiento simple
El resultado de la ALU que está en EX/MEM y MEM/WB
siempre se retorna a las entradas de la ALU.
23/08/06
9
Adelantamiento a memoria
23/08/06
Interlock
23/08/06
10
Interlock
ciclos
1 2 3 4 5 6 7 8 9
ld r1,0(r2) IF ID EX MEM WB
dsub r4,r1,r5 IF ID EX MEM WB
and r6,r1,r7 IF ID EX MEM WB
or r8,r1,r9 IF ID EX MEM WB
1 2 3 4 5 6 7 8 9
ld r1,0(r2) IF ID EX MEM WB
dsub r4,r1,r5 IF ID stall EX MEM WB
and r6,r1,r7 IF stall ID EX MEM WB
or r8,r1,r9 stall IF ID EX MEM WB
23/08/06
23/08/06
11
Penalidades por hazards de BRANCH
No comienza ninguna instrucción No finaliza ninguna instrucción
ciclos
1 2 3 4 5 6 7 8 9
23/08/06
Salto demorado:
Características del slot del salto demorado.
El compilador busca llenar el slot con una instrucción válida y útil.
23/08/06
12
Predicho como no tomado
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
23/08/06
Salto demorado
1 2 3 4 5 6 7 8 9
inst salto no tomado IF ID EX MEM WB
Inst de salto demorado (i + 1) IF ID EX MEM WB
inst i + 2 IF ID EX MEM WB
Inst i + 3 IF ID EX MEM WB
Inst i + 4 IF ID EX MEM WB
1 2 3 4 5 6 7 8 9
inst salto tomado IF ID EX MEM WB
inst de salto demorado (i + 1) IF ID EX MEM WB
destino del salto IF ID EX MEM WB
destino del salto + 1 IF ID EX MEM WB
destino del salto + 2 IF ID EX MEM WB
23/08/06
13
Planificación del slot de demora
23/08/06
23/08/06
14