Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un...
Transcript of Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un...
![Page 1: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/1.jpg)
Paralelismo al nivel de instrucciones
Arquitectura de Computadoras
M. C. Felipe Santiago Espinosa
Mayo de 2018
![Page 2: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/2.jpg)
¿Qué es la segmentación o pipelining?
O Técnica para la generación de paralelismo en microprocesadores.
O Consiste en dividir la ejecución de una instrucción en etapas independientes, que pueden trabajar simultáneamente (se realiza un trabajo en cadena).
O En un instante determinado, el procesador está t rabajando sobre un número de instrucciones igual al número de etapas => paralelismo al nivel de instrucciones.
![Page 3: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/3.jpg)
Segmentación
![Page 4: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/4.jpg)
Tipos de caucesO Unifunción: ejecutan un único proceso.O Multifunción: pueden ejecutar varios procesos:
O Estáticos: en un instante determinado sólo pueden ejecutar uno.
O Dinámicos: pueden ejecutar simultáneamente varios procesos.
O Lineal: a cada etapa sólo le puede seguir otra etapa concreta.
O No lineal: se pueden establecer recorridos complejos de las etapas.
![Page 5: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/5.jpg)
Aplicación de la segmentación:O A operaciones aritméticas:
O Ejecutan una o varias operaciones de la ALU.O Pueden ser l ineales (sumas) o no l ineales
(división). Las operaciones son no lineales porque incluyen ciclos.
O Los procesadores actuales incluyen varias ALU’s segmentadas y cada una se puede ocupar de diferentes operaciones.
O A ejecución de instrucciones:O Suelen ser cauces lineales.O Alguna de sus fases puede a su vez sub-
segmentarse (uso de una ALU segmentada para la fase de ejecución).
![Page 6: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/6.jpg)
Cauce no-linealO Una tabla de reserva indica el orden en que trabajan
las etapas para cada tarea.
![Page 7: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/7.jpg)
LatenciaO Número de ciclos que separan el inicio de dos
operaciones (distancia entre las entradas de dos elementos al cauce).
Latencia prohibida: Latencia con la que s e p ro d u c en colisiones (en el ejemplo, 1 es una latencia prohibida)
Latencia permitida: Latencia con la que no se produce colisión (en el ejemplo, 2 es una latencia permitida)
![Page 8: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/8.jpg)
Ciclos de latenciaO Secuencia de latencias permitidas que se puede
repetir indefinidamente.O Ejemplo. Para la función B, se tiene que (1,4) es un ciclo
de latencia:
O ¿Cuál es el ciclo de latencia para la función A?
![Page 9: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/9.jpg)
Arquitectura DLXO El DLX es un microprocesador RISC diseñado
por John Hennessy y David A. Patterson, los diseñadores principales de la arquitectura MIPS.
O El DLX es básicamente un MIPS revisado y simpli f icado con una arquitectura carga-almacenamiento de 32 bits.
O DLX fue pensado principalmente para propósitos educativos
![Page 10: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/10.jpg)
Máquina básica
![Page 11: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/11.jpg)
Máquina segmentada
![Page 12: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/12.jpg)
Clasificaciones de dependenciasO Lectura después de Escritura (RAW, dependencia):
O Una instrucción genera un dato que otra posterior lee (la que se ha visto hasta ahora).
O Escritura después de Escritura (WAW, dependencia en salida):O Una instrucción escribe un dato que otra posterior ya
había escrito;O En una máquina segmentada simple ocurre sólo si se
permite que las instrucciones se adelanten unas a otras.
O Escritura después de Lectura (WAR, antidependencia):O Una instrucción modifica un valor antes de que lo lea
una instrucción anterior.O Tampoco ocurre en un cauce simple.
![Page 13: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/13.jpg)
Instrucciones de mayor complejidad
O Problema: Si el repertorio básico se amplía, habrá instrucciones que tarden más en ejecutarse.O Ejemplo: una multiplicación y un desplazamiento
lógico.O Si el ciclo de reloj se ajusta a la más lenta, con
las rápidas (y con las demás etapas del cauce) se está perdiendo tiempo.
O Si el ciclo de reloj se ajusta a la más rápida, a las lentas no es suficiente con un ciclo.
O Solución: Se segmenta también la fase de ejecución.
![Page 14: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/14.jpg)
Cauce multifuncional
![Page 15: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/15.jpg)
Nuevo flujo de instruccionesO El flujo de instrucciones ahora es:
O Las instrucciones pasan por las fases IF e ID.O A continuación, cada instrucción pasa a la unidad
funcional que le corresponda para su ejecución.O Las instrucciones terminan el recorrido por su
unidad funcional y pasan por las fases MEM y WB.O Es necesario modificar la máquina:
O Añadiendo la tches entre las fases de las unidades funcionales.
O Posibilitando el flujo desde ID hasta cualquier unidad funcional.
O El control se complica.
![Page 16: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/16.jpg)
Ejemplo de ocupaciónMULTD IF ID M1 M2 M3 M4 M5 M6 M7 MM WB
ADDD IF ID A1 A2 A3 A4 MM WB
LD IF ID EX MM WB
SD IF ID EX MM WB
O Se supone que las instrucciones no tienen dependencias entre sí.
O Las fases en cursiva indican cuándo se necesitan los datos.
O Las fases en negrita indican cuándo se generan los resultados.
![Page 17: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/17.jpg)
Complicaciones de la multifunción
O Aumentan las posibilidades de dependencia (y por lo tanto de detenciones).O Algunas unidades funcionales están segmentadas y
pueden tener varias instrucciones en ejecución.O Diferentes unidades funcionales pueden estar activas
simultáneamente.O Las detenciones serán más largas, puesto que el cauce
es más largo (dependiendo de la unidad funcional).O Las instrucciones no tienen por qué terminar en orden:
O Puede haber dependencias WAW.O Puede haber varias instrucciones en la fase WB a la vez
(hay riesgo de conflicto estructural).O La buena noticia es que las antidependencias WAR no
pueden darse.
![Page 18: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/18.jpg)
Ejecución multifuncional con dependencias
O Hay dependencias RAW de cada instrucción con la anterior. Esto implica detenciones (P : paro)
O Si sólo se tiene una memoria para instrucciones y datos, también hay dependencias estructurales.
![Page 19: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/19.jpg)
Paralelismo al nivel de instrucciones
O La meta es reducir el CPI
CPI Segmentado = CPI Ideal +detenciones estructurales +detenciones por dependencia de datos +detenciones por riesgos de control
O El paralelismo dentro de un bloque es limitadoO El tamaño típico de un bloque es de 3 a 6
instrucciones.O Debe optimizarse a través de brincosO La clave para mejorar el rendimiento consiste en
eliminar las detenciones (o parones)
![Page 20: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/20.jpg)
Técnicas a revisarO Planificación de instrucciones:
O Planificación estática: reordenación y desenrollo de bucles.
O Renombramiento de registros.O Planificación dinámica: Algoritmo de
Tomasulo.
O La predicción de saltos también ayuda a reducir los riesgos de control.
![Page 21: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/21.jpg)
Reordenación de códigoO Consiste en reordenar las instrucciones para
eliminar detenciones.O Se debe tener cuidado con las dependencias.O Ejemplo: un programa que suma un escalar a
cada elemento de un arreglo de 1000 números en punto flotante:
for (i = 0; i < 1000; i = i + 1)x[i] = x[i] + s;
O Son operaciones puntuales, es decir, no hay dependencias entre iteraciones.
![Page 22: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/22.jpg)
Reordenación de códigoO El código que correspondiente al bucle es:
bucle: ld f0,0(r1)addd f4,f0,f2sd 0(r1),f4subi r1,r1,8bnez r1,bucle
![Page 23: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/23.jpg)
Reordenación de códigoO Consideremos las siguientes latencias:
Productor Consumidor Latencia
FP ADD FP ALU 3 ciclos
FP ADD Store 2 ciclos
Load FP ALU 1 ciclo
Load Store 0 ciclos
Load INT ALU 1 ciclo
INT ALU INT ALU 0 ciclos
![Page 24: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/24.jpg)
O Con las latencias, la ejecución del bucle es:instrucción ciclo
bucle: ld f0,0(r1) 1detención 2addd f4,f0,f2 3detención 4detención 5sd 0(r1),f4 6subi r1,r1,8 7detención 8bnez r1,bucle 9retardo por brinco 10
O Tiempo de ejecución: 10 ciclos por iteración, 5 ciclos perdidos por riesgos (50%)
![Page 25: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/25.jpg)
O Un cambio de orden elimina dos detenciones:
instrucción ciclobucle: ld f0,0(r1) 1
detención 2addd f4,f0,f2 3subi r1,r1,8 4detención 5sd 8(r1),f4 6bnez r1,bucle 7retardo por brinco 8
O Tiempo de ejecución: 8 ciclos por iteración, 3 ciclos perdidos por riesgos (37.5%)
O La ejecución es 1.25 veces más rápida.
![Page 26: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/26.jpg)
Recargo por iteraciónO En cada iteración se debe:
O Leer un elemento del arregloO Sumar el escalarO Almacenar el resultado
O Al pasar de una iteración a otra se tiene un “costo” de 3 ciclos por recargo.O Incremento del contadorO Brinco
O El 37.5 % es el costo de tiempo por recargo en cada iteración
O Para reducir el costo por recargo es conveniente desenrollar el lazo.
![Page 27: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/27.jpg)
Desenrollado de buclesO Se copia el cuerpo del bucle n veces para
trabajar sobre n elementos del arreglo en cada iteración.
O Cada iteración del nuevo bucle incluye n iteraciones del bucle original.
![Page 28: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/28.jpg)
Bucle originalinstrucción ciclo
bucle: ld f0,0(r1) 1addd f4,f0,f2 3sd 0(r1),f4 6subi r1,r1,8 7bnez r1,bucle 9
![Page 29: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/29.jpg)
Desenrollando 4 vecesinstrucción ciclo
bucle: ld f0,0(r1) 1addd f4,f0,f2 3sd 0(r1),f4 6ld f6,-8(r1) 7addd f8,f6,f2 9sd -8(r1),f8 12ld f10,-16(r1) 13addd f12,f10,f2 15sd -16(r1),f12 18ld f14,-24(r1) 19addd f16,f14,f2 21sd -24(r1),f16 24subi r1,r1,32 25bnez r1,bucle 27riesgo por el brinco 28
![Page 30: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/30.jpg)
Mejora del rendimientoO Código original: 12 ciclos de reloj como un costo por
recargo en 4 iteraciones.
O Con el lazo desarrollado 4 veces: 3 ciclos de reloj como un costo por recargo.
O ¿Cuánto mejora la ejecución al desenrollar el lazo por 4 iteraciones sin emplear reordenamiento de instrucciones?
O Al tener más instrucciones en cada iteración, el reordenamiento ayuda a anular detenciones.
![Page 31: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/31.jpg)
instrucción ciclobucle: ld f0,0(r1) 1
ld f6,-8(r1) 2ld f10,-16(r1) 3ld f14,-24(r1) 4addd f4,f0,f2 5addd f8,f6,f2 6addd f12,f10,f2 7addd f16,f14,f2 8sd 0(r1),f4 9sd -8(r1),f8 10subi r1,r1,32 11sd 16(r1),f12 12 ; 16 – 32 = -16sd 8(r1),f16 13 ; 8 – 32 = -24bnez r1,bucle 14riesgo por el brinco 15
O ¿Cuánto mejoró el rendimiento al combinar las dos técnicas?
![Page 32: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/32.jpg)
Desenrollo de buclesO En el ejemplo anterior, el bucle sólo va a iterar
250 veces.O En general, el número de iteraciones del bucle
original (m) debe ser un múltiplo del factor de desenrollo (n).
O Si ‘m’ no es múltiplo de ‘n’, el bucle original se remplaza por dos consecutivos:O El primero, con cuerpo igual al original, se ejecuta
m mod n veces.O El segundo, con cuerpo desenrollado n veces, se
ejecuta m/n veces (división entera).
![Page 33: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/33.jpg)
Renombre de registros
O Se trata de una técnica para eliminar dependencias “falsas”.
O Básicamente consiste en utilizar más registros de los que el programador consideró.
O El renombre de registros puede ser un paso previo al reordenamiento.
![Page 34: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/34.jpg)
Renombre de registrosO En el siguiente código aparentemente hay
más dependencias de las reales:
1 or r5,r0, cte2 ld r6,0(r5)3 ld r8,8(r5)4 ld r9,16(r5)5 ld r7,24(r5)6 add r1,r8,r97 add r8,r9,r78 st 0(r8),r19 ld r8,0(r6)
![Page 35: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/35.jpg)
Renombre de registrosO En el siguiente código aparentemente hay
más dependencias de las reales:
1 or r5,r0, cte2 ld r6,0(r5)3 ld r8,8(r5)4 ld r9,16(r5)5 ld r7,24(r5)6 add r1,r8,r97 add r8,r9,r78 st 0(r8),r19 ld r8,0(r6)
![Page 36: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/36.jpg)
Renombre de registros
or r5,r0, cteld r6,0(r5)ld r8,8(r5)ld r9,16(r5)ld r7,24(r5)add r1,r8,r9add r8,r9,r7st 0(r8),r1ld r8,0(r6)
or f1,r0, cteld f2,0(f1)ld f3,8(f1)ld f4,16(f1)ld f5,24(f1)add f6,f3,f4add f7,f4,f5st 0(f7),f6ld f8,0(f2)
r5 f1
r6 f2
r8 f3
R9 f4
r7 f5
r1 f6
r8 f7
r8 f8
![Page 37: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/37.jpg)
Renombre de registros
1 or f1,r0, cte2 ld f2,0(f1)3 ld f3,8(f1)4 ld f4,16(f1)5 ld f5,24(f1)6 add f6,f3,f47 add f7,f4,f58 st 0(f7),f69 ld f8,0(f2)
![Page 38: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/38.jpg)
Renombre de registros
![Page 39: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/39.jpg)
Planeación dinámicaO El reordenamiento para la ejecución se realiza por
hardware.
O O b j e t i vo : e l i m i na r de tenc i o n e s i n n e c e s a r i a s . Consideremos el siguiente código:
divd f0,f2,f4addd f10,f0,f8subd f12,f8,f14
O La segunda instrucción no se puede ejecutar hasta que primera genere f0.
O Esto impide que se ejecute la tercera, aunque tenga todos sus datos preparados => detención innecesaria.
![Page 40: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/40.jpg)
Planeación dinámicaO Se pretende que una instrucción, con sus operandos
disponibles, no se quede paralizada si tiene la posibilidad de ejecutarse, aunque otra instrucción previa esté bloqueada.
O Para ello, la fase ID se divide en dos:O Lanzamien to : Decod i f i cac ión y comprobac ión de
dependencias estructurales (en orden del programa).O Lectura de operandos: Espera por operandos; cuando están
listos, se leen y se pasa a ejecutar (no necesariamente respetando el orden del programa)
O De esta forma, una instrucción puede adelantar a otra que esté bloqueada por dependencias.
O La idea es que el código se “reordena” solo, de forma dinámica y según la situación del cauce.
![Page 41: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/41.jpg)
Planeación dinámicaO Ventajas:
O La reordenación se realiza en forma dinámica.O El compilador es más sencillo.O Además, la reordenación en t iempo de
compilación sólo es válida para el cauce concreto con el que se trabaja: ahora es más general.
![Page 42: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/42.jpg)
Planeación dinámicaO Desventajas:
O El hardware es más complejo.O Ahora se pueden dar las dependencias WAR
y WAW.O Hay que tener cuidado con las excepciones
(interrupciones).
![Page 43: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/43.jpg)
Algoritmo de TomasuloO Robert Tomasulo IBM 360/91 (1967).O Características “malas” de la computadora IBM
360:O Sólo 4 registros de punto flotante en doble
precisión.O Accesos a memoria lentos.O Grandes atascos en punto flotante.
O Tomasulo diseñó un algoritmo para contrarrestar estas características “malas”.
![Page 44: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/44.jpg)
O El algoritmo de Tomasulo rastrea cuándo los operandos de una instrucción están listos para minimizar detenciones por dependencias RAW.
O Introduce el renombrado de registros para minimizar detenciones por dependencias WAW y WAR.
O La IBM 360/91 contaba con dos unidades de punto flotante: una para sumas y otra para multiplicaciones.
O En estaciones de reserva se mantiene a las instrucciones mientras esperan ingresar a la unidad de punto flotante que corresponda.O La del sumador de 2 niveles y la del multplicador
de 3 niveles.
![Page 45: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/45.jpg)
![Page 46: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/46.jpg)
O La distribución de los resultados se efectúa directamente por medio del bus común de datos (CDB), sin necesidad de pasar por los registros.
O Con la estructura de la máquina, las fases del cauce son:
O Lanzamiento.O Ejecución.O Almacenamiento.
Algoritmo de Tomasulo
![Page 47: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/47.jpg)
Lanzamiento:O Se toma una instrucción de la cola.O Si hay espacio en su estación de reserva, se coloca
ahí.O Si los operandos están en el banco de registros, se
envían a la estación de reserva.O Si no hay espacio en la estación de reserva se
produce una detención por riesgo estructural.O Si los operandos no están en el banco de registros,
se indican las unidades funcionales que los producen en Qj y Qk.O Esta operación introduce un renombramiento de
registros implícito.
![Page 48: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/48.jpg)
Ejecución:O Si falta algún operando, se vigila el CDB.O Cuando están listos los dos, se ejecuta la
operación.
Almacenamiento:O Cuando termina la ejecución, los resultados
se ponen en el CDB. De ahí van a los registros y a las UF que los esperen.
![Page 49: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/49.jpg)
Renombrado de registrosO El renombrado de registros queda implícito y oculto:
O Hay 11 fuentes de datos:O 6 entradas del buffer de cargas (loads),O 3 entradas en la estación de reserva de suma yO 2 entradas en la estación de reserva de multiplicación.
O A cada operando en la fase de lanzamiento se le da un identificador de 4 bits, que indica qué fuente proporciona el dato. O (0 si ya está listo)
O De esta manera se extiende el número de registros de 4 a 11.
![Page 50: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/50.jpg)
Estaciones de reservaO Cada entrada en las estaciones de reserva contiene
los siguientes campos:
O Op: operación que se tiene que ejecutar.O Qj,Qk: La estación de reserva que producen los
operandosO (0 si listo o no necesario).
O Vj,Vk: valor de los operandos.O Ocup: si la entrada está ocupada.
O Sólo es válida la información de Q o V (no ambas a la vez).
![Page 51: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/51.jpg)
Registros y buffers para almacenamiento
O Información que se almacena en cada registro y en los buffers de almacenamiento (stores):O Qi: estación de reserva que genera el valor
que se enviará a memoria.O V: valor que se enviará a memoria.
![Page 52: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/52.jpg)
Algoritmo de Tomasulo (Ejemplo)
O Se analizará la ejecución del siguiente código:Ld f6,34(r2)Ld f2,45(r3)Multd f0,f2,f4Subd f8,f6,f2Divd f10,f0,f6Addd f6,f8,f2
O Suponiendo las siguientes latencias:ld, sd: 3 ciclosaddd, subd: 2 ciclosmultd: 5 ciclosdivd: 19 ciclos
![Page 53: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/53.jpg)
Algoritmo de Tomasulo (Ejemplo)
O Punto de partida: el código se encuentra en esta situación:
¡Ojo! Esta información no se encuentra físicamente en ninguna tabla. Se muestra para facilitar la comprensión.
![Page 54: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/54.jpg)
Estado del procesador:O Estaciones de reserva:
O Estado de los registros:
![Page 55: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/55.jpg)
Avance en la ejecuciónO Cuando multd está lista para escribir:
O Note que hay una detención estructural del addd por almacenamiento simultáneo con el multd.
O La suma puede terminar adelantándose a la instrucción divd.
![Page 56: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/56.jpg)
Estado del procesador:O Estaciones de reserva:
O Estado de los registros:
![Page 57: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/57.jpg)
Algoritmo de Tomasulo:Un ejemplo basado en un lazo
O Para entender la capacidad del algoritmo de Tomasulo de eliminar riesgos WAW y WAR a través del renombrado dinámico de registros es conveniente analizar un programa con un lazo.
O La secuencia multiplica los elementos de un arreglo por un escalar en F2:
O Analice la ejecución del código y notará que con la predicción de brincos tomados el lazo será desenrrollado dinámicamente. (pág. 102 de Computer Architecture: A Quantitative Approach Fourth Edition)
![Page 58: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/58.jpg)
Tomasulo en procesadores actuales
O En general los micros con planificación dinámica son capaces de emitir y ejecutar varias instrucciones a la vez y su arquitectura es muy potente.
O Uno de los primeros microprocesadores con planif. dinámica fue el Motorola PowerPC 620 (1995). Es un ejemplo muy bueno: su cadena (4 fases: IF ID IS EX) y arquitectura es muy similar al algoritmo clásico Tomasulo. Poseía pocas estaciones de reserva (R.S., reserve stations) por cada UF.O Dos unidades enteras simples (1 ciclo).O Una unidad entera compleja (3 a 20 ciclos) para MULT y DIV
enteras.O Una unidad de carga-almacenamiento (1 ciclo si acierta en caché).O Una unidad de punto flotante (31 ciclos DIVFP, 2 ciclos ADDFP y
MULTFP).O Y una unidad de saltos, que actualiza una tabla en caso de fallo de
predicción.
![Page 59: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/59.jpg)
Power PC 620 (similar al Tomasulo clásico)
![Page 60: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/60.jpg)
O Pentium Pro (su parte INT es idéntica al P.II, P.III y similar al P4). Su cadena es de 11 fases. Posee 40 R.S. comunes a todas las UF:O Dos unidades enteras (1 ciclo). Una de ellas se
usan para saltos (actualiza BTB en caso de fallo de predicción). La otra se usa también para multiplicaciones y divisiones enteras.
O Dos unidades FP para multiplicaciones y divisiones de punto flotante. Realmente solo puede empezar en el mismo ciclo una de ellas.
O Una unidad de carga (1 ciclo).O Una unidad de almacenamiento más compleja.
![Page 61: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/61.jpg)
O MIPS R10000 (similar a los actuales). Posee 16 R.S. para INT, 16 para FP y 16 para Ld-St:O Dos unidades enteras (una también sirve para
saltos, y la otra para MULT INT).O Una unidad para cálculo de direcciones de acceso
a memoria (para carga-almacenamiento).O Una unidad de punto flotante simple (sólo para
ADD-FP).O Una unidad de punto flotante compleja (DIV, MULT,
SQRT-FP).O Las unidades funcionales suelen ser
segmentadas excepto en las divisiones.
![Page 62: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/62.jpg)
PLANIFICACIÓN ESTÁTICA VS. DINÁMICARESUMEN: PROS Y CONTRAS
PLANIFICACIÓN ESTÁTICA PLANIFICACIÓN DINÁMICA
Menos Hardware Complicación del hardware
Compilador más difícil El compilador no optimiza
El compilador debe conocer la arquitectura Transparente al usuario
Dependencia: compilación-rendimiento
El hardware extrae el rendimiento que puede
El tamaño del código puede crecer ⇒ más fallos de caché Tamaño de código no se toca
El compilador no puede conocer los valores de los registros (dir. acceso)
En tiempo de ejecución se conocen los valores de registros (dir. acceso)
Puede necesitar muchos registros de usuario
No necesita muchos registros de usuario (son internos, ocultos al usuario; ej. CISC)
![Page 63: Paralelismo al nivel de instrucciones - UTMfsantiag/ArqComputadoras/06_07... · O El DLX es un microprocesador RISC diseñado por John Hennessy y David A. Patterson, los diseñadores](https://reader034.fdocuments.mx/reader034/viewer/2022042321/5f0af24e7e708231d42e1e8e/html5/thumbnails/63.jpg)
ConclusiónO Dos Tendencias:
O Esta disyuntiva se está dando actualmente con microprocesadores avanzados, aunque cada vez se traspasa más funcionalidad al hardware.
Hw Simple y Compilador Complejo vs. Hw Complejo y
Compilador Simple