Pipepling
Páginas: 7 (1602 palabras)
Publicado: 29 de agosto de 2012
Es una técnica de implementación en la que se superpone la
ejecución de varias instrucciones.
Aprovecha el paralelismo entre instrucciones en una corriente
secuencial de instrucciones.
Se busca balancear la demora de cada etapa.
El caso ideal sería que el tiempo por instrucción sea =
Tiempo por instrucción en la máquina sin pipe
Número de etapas del pipe
2 3 /08 /0 6
¿Qué es Pipelining?
2 3 /0 8 /0 6
1
El set de instrucciones
Las operaciones de datos usan registros de 32 ó 64 bits.
Únicas operaciones sobre memoria: load y store.
Pocos formatos de instrucciones.
Las instrucciones se implementan a lo sumo en 5 ciclos:
FI - DI - EX - MEM - WB
O tr a s in s tr u c c io n e s
In s tr u c c io n e s d e m e m o r ia
In s tr u c c io ne s d e b r a n c h
2 3 /0 8 /0 6
E l R IS C i m p le m e n ta d o c o m o p ip e
Se inicia una instrucción en cada ciclo.
Cada ciclo se convierte en una etapa del pipe.
Cada instrucción toma 5 ciclos.
2 3 /0 8 /0 6
2
E l R IS C i m p le m e n ta d o c o m o p ip e
ciclos
1
Instrucción i
Instrucción i+1
Instrucción i+2
Instrucción i+3
Instrucción i+4
2
3
45
6
7
8
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
9
WB
2 3 /0 8 /0 6
Data paths desplazados en el tiempo
2 3 /0 8 /0 6
3
El pipe clásico de 5 etapas
Las unidades principales se usan en ciclos distintos.
Memorias para instrucciones y datos separadas.Archivo de registros de dos etapas.
Actualización del PC en cada ciclo.
2 3 /0 8 /0 6
Pipeline con registros entre etapas
EX/MEM
MEM/WB
IF/ID
ID/EX
2 3 /0 8 /0 6
4
Desempeño en el pipe
Se incrementa el throughput de instrucciones.
Cada instrucción individual se ejecuta en el mismo tiempo.
El programa corre más rápido.
Individualmente ninguna instrucción corre más rápido.Se introducen demoras por:
Por el uso de registros entre etapas.
Clock skew, diferencia de tiempo en percibir la señal de reloj
2 3 /0 8 /0 6
Problemas del pipe: los hazards
Los riesgos son situaciones que impiden a una instrucción
ejecutar en el ciclo designado. Reducen el desempeño.
Hazards estructurales. Conflictos de hard en el solapamiento
de instrucciones.
Hazards dedatos. Una instrucción depende de los
resultados de otra cuando están en el pipe
Hazards de control. Los branches dentro de un pipe.
Los riesgos a veces fuerzan stall (atasco) del pipe.
2 3 /0 8 /0 6
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.Considerando el tiempo de ciclo.
Bajo ciertas restricciones el Speedup es igual a la
profundidad del pipe
2 3 /0 8 /0 6
Hazards estructurales
La ejecución solapada requiere:
Que las unidades estén pipelined, o
La duplicación de recursos.
Si las instrucciones no se acomodan para usar los
recursos entonces hay un conflicto estructural.
Este hazard requiere un stall de lainstrucción hasta
que la unidad esté libre. (burbuja)
2 3 /0 8 /0 6
6
Conflicto por cada referencia a memoria
2 3 /0 8 /0 6
Hazard estructural superado con una burbuja
ciclos
1
Instrucción load
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
2
3
4
5
6
7
8
9
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WBs ta ll
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
2 3 /0 8 /0 6
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.
Se pueden reducir los stalls usando forwarding.
2 3 /0 8 /0 6
Hazards de datos
2 3 /0 8 /0 6
8
Adelantamiento simple
2 3 /0 8 /0 6...
Leer documento completo
Regístrate para leer el documento completo.