0% encontró este documento útil (0 votos)
23 vistas17 páginas

Introducción al Pipelining en MIPS

El Pipelining es una técnica que permite la superposición en la ejecución de instrucciones para aprovechar el paralelismo, buscando balancear la demora de cada etapa en un proceso. En el contexto de MIPS, se describen cinco etapas clave: IF, ID, EX, MEM y WB, y se abordan los riesgos asociados como estructurales, de datos y de control que pueden afectar la ejecución. La segmentación mejora el rendimiento general al incrementar el throughput de instrucciones, aunque introduce complejidades en el diseño del conjunto de instrucciones.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas17 páginas

Introducción al Pipelining en MIPS

El Pipelining es una técnica que permite la superposición en la ejecución de instrucciones para aprovechar el paralelismo, buscando balancear la demora de cada etapa en un proceso. En el contexto de MIPS, se describen cinco etapas clave: IF, ID, EX, MEM y WB, y se abordan los riesgos asociados como estructurales, de datos y de control que pueden afectar la ejecución. La segmentación mejora el rendimiento general al incrementar el throughput de instrucciones, aunque introduce complejidades en el diseño del conjunto de instrucciones.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

¿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 entre instrucciones sea =

Tiempo entre instrucciones en la máquina sin pipe


Número de etapas del pipe

2/9/15 Guillermo Aguirre 1

¿Qué es Pipelining?

2/9/15 Guillermo Aguirre 2


Etapas en las instrucciones MIPS
IF: Recuperación de instrucción desde memoria.

ID: Lectura de registros mientras se decodifica la


instrucción. Debido al formato regular.

EX: Ejecución de la operación o cálculo de la dirección.

MEM: Acceso a operandos en memoria de datos.

WB: Escritura del resultado en los registros

2/9/15 Guillermo Aguirre 3

Uni-ciclo vs segmentación.
Calcular el tiempo entre instrucciones

Tiempo total de cada instrucción se calcula a partir de la demora de cada componente

Se considera que los multiplexores, la unidad de control, el acceso al PC y la


extensión de signo no tienen demora.

2/9/15 Guillermo Aguirre 4


Uni-ciclo vs segmentación

2/9/15 Guillermo Aguirre 5

Aceleración de la segmentación
Para una aceleración máxima se requieren condiciones ideales.

Las etapas deben estar balanceadas.

La máxima aceleración es cercana al número de etapas.

No se refleja con pocas instrucciones.

Considerando condiciones ideales, se cumple que:


Tiempo entre instrucciones sin pipe
Tiempo entre instrucciones =
con pipe Número de etapas del pipe

Se mejora el rendimiento (throughput) de instrucciones y


no se reduce la ejecución individual de instrucciones.

2/9/15 Guillermo Aguirre 6


Conjunto de instrucciones para pipeline
• Igual longitud.
– Facilita la recuperación.
• Pocos formatos.
– Se leen registros y se decodifica en etapa 2
• Operandos en memoria solo en load y store.
– Las direcciones se calculan en la etapa 3
• Operandos alineados en memoria.
– Cada transferencia requiere un acceso.

2/9/15 Guillermo Aguirre 7

Problemas del pipe: los riesgos(hazards)


Riesgos estructurales. Una instrucción no puede ejecutar en el
ciclo previsto porque el hardware no soporta la combinación de
instrucciones dispuestas para ejecutar.

Riesgos de datos. Cuando una instrucción planificada no puede


ejecutar en el ciclo previsto porque los datos que necesita aun no
están disponibles.

Riesgos de control. Cuando la instrucción planificada no puede


ejecutar en el ciclo previsto porque la instrucción recuperada no
es la que se necesita.

2/9/15 Guillermo Aguirre 8


Riesgos estructurales

2/9/15 Guillermo Aguirre 9

Los riesgos de datos


add $s0, $t0, $t1
sub $t2, $s0, $t3

2/9/15 Guillermo Aguirre 10


Adelantamiento

2/9/15 Guillermo Aguirre 11

Riesgo load-use

2/9/15 Guillermo Aguirre 12


Reordenamiento de código
a = b + e;
c = b + f;
lw $t1, 0($t0) lw $t1, 0($t0)
lw $t2, 4($t0) lw $t2, 4($t0)
add $t3, $t1, $t2 lw $t4, 8($t0)
sw $t3, 12($t0) add $t3, $t1, $t2
lw $t4, 8($t0) sw $t3, 12($t0)
add $t5, $t1, $t4 add $t5, $t1, $t4
sw $t5, 16($t0) sw $t5, 16($t0)
2/9/15 Guillermo Aguirre 13

Riesgos de control (solución 1)

2/9/15 Guillermo Aguirre 14


Riesgos de control-Salto no tomado

Predición
correcta

Predición
incorrecta

2/9/15 Guillermo Aguirre 15

Predicción de saltos
• Estática
– En base al comportamiento típico del salto.
– Ejemplo: branch en loops y sentencias if
• Predecir los saltos hacia atrás como tomados.
• Predecir los saltos hacia adelante como no tomados
• Dinámica
– Se registra el comportamiento de cada branch
– La tendencia se mantendrá en el futuro

2/9/15 Guillermo Aguirre 16


Salto Demorado - MIPS
• Siempre se ejecuta la instrucción en secuencia
• El salto se hace después de la demora.
• En la demora van instrucciones neutrales.
• La demora es un ciclo.

2/9/15 Guillermo Aguirre 17

Nociones de segmentación: Resumen

• Con la segmentación se incrementa el rendimiento


de las instrucciones lo cual mejora el desempeño.
– Explota el paralelismo a nivel de instrucción.
– Cada instrucción tiene la misma latencia.
• Aparecen los riesgos
– Estructurales, de datos y de control
• El diseño del conjunto de instrucciones afecta la
complejidad de la implementación de la
segmentación

2/9/15 Guillermo Aguirre 18


Ejecución segmentada

2/9/15 Guillermo Aguirre 19

<<<

64 bits
97 bits
128 bits

64 bits <<<

2/9/15 Guillermo Aguirre


2/9/15 Guillermo Aguirre

2/9/15 Guillermo Aguirre


2/9/15 Guillermo Aguirre

2/9/15 Guillermo Aguirre


2/9/15 Guillermo Aguirre

2/9/15 Guillermo Aguirre


2/9/15 Guillermo Aguirre

2/9/15 Guillermo Aguirre 28


2/9/15 Guillermo Aguirre

Bits de control de la ALU

2/9/15 Guillermo Aguirre


Señales de control

2/9/15 Guillermo Aguirre

Señales de control de las tres etapas finales

2/9/15 Guillermo Aguirre


2/9/15 Guillermo Aguirre

También podría gustarte