Pipepling

Páginas: 7 (1602 palabras) Publicado: 29 de agosto de 2012
¿Qué es Pipelining?
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.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS