ILP
description
Transcript of ILP
> ARQUITECTURA DE COMPUTADORES 1
INSTRUCTION-LEVEL PARALLELISM PROCESSING History and overview(B. RAMAKRISHNA RAU AND JOSEPH A.FISHER)
1. Introducción2. Historia ILP3. Arquitecturas ILP
3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución IPL
5. Conclusiones
ÍNDICE > ÍNDICE
ILP: HISTORY AND OVERVIEW
ARQUITECTURA DE COMPUTADORES 1
Técnica de diseño del procesador que permite la superposición de las operaciones individuales de la máquina.
Múltiples operaciones ejecutándose en paralelo.
Objetivo: Aumentar la rapidez de ejecución
Ejemplos:
load R1 R2 add R3 R3, “1”
add R3 R3, “1” add R4 R3, R2
add R4 R4, R2 store [R4] R0
> INTRODUCCIÓNARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 1
1.Introducción2. Historia ILP3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
> INTRODUCCIÓN
Ejecución simple de un procesador ILP
Functional UnitOperations Performed
Latency
Integer Unit 1
Integer ALU OperationsInteger multiplicationLoadsStores
1221
Integer Unit 2 / Branch Unit
Integer ALU OperationsInteger multiplicationLoadsStoresTest-and-branch
12211
Floating-point Unit 1Floating-point Unit 2
Floating-point operations
3
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 2
1.Introducción2. Historia ILP3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Ejecución secuencial vs procesador ILP
Ejecución secuencial Total: 37 ciclos
ILP: HISTORY AND OVERVIEW >> 3
> INTRODUCCIÓNARQUITECTURA DE COMPUTADORES 1
1.Introducción2. Historia ILP3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
> HISTORIA ILP
1940 1970El paralelismo a nivelde instrucción es considerado porlos diseñadores de máquinas1
94
0
Paralelismo (microcódigohorizontal) es usado enPilot ACE
19
46
Wilkes and Stringer:
“In some cases it may be possible fortwo or more micro-operations to takeplace at the sametime”
19
53
Equipos transistores:
-Más salidas para una CPU de propósito general.- ILP como lenguaje máquina.1
96
0
Control Data Corporation da luz al CDC 6600
- 10 unidades funcionales- Cualquier unidad puede comenzar la ejecución en un ciclo incluso si otras unidades procesaban datos de otras operaciones.
19
63
IBM delibera el 360/91
- Menos unidades funcionales que CDC 6600- Más agresivo en su intento de reorganizar el flujo de instrucciones para mantener las unidades funcionales ocupadas.
19
67
ILP: HISTORY AND OVERVIEW >> 4
ARQUITECTURA DE COMPUTADORES 1
> HISTORIA ILP
ILP: HISTORY AND OVERVIEW >> 5
ARQUITECTURA DE COMPUTADORES 1
1970 2000Equipos especializados en procesamiento de señales.- Microcódigo Horizontal- Otros algoritmos.
19
70
Diferencia mínima de velocidad entre escritura y lectura en memoria.
Desaparecen ventajas del almacenamiento de control de lectura.
19
80
Microprocesadores de propósito general toman el concepto de las RISC
19
82
Procesadores especializados de control de escritura dando a los usuarios acceso a ILP. Very Long Instruction Word (VLIW)
19
83
Más silicio del necesario en implementaciones de microprocesadores RISC1
99
0
Todos los diseños prácticamente deciden tomar las ventajas del ILP. Principalmente a su capacidad superescalar.1
99
5
CLASIFICACIÓN:
Arquitecturas Secuenciales: El programa no espera transmitir ninguna
información explícita sobre el paralelismo.
Arquitecturas DependientesEl programa indica de manera explícita las
dependencias entre las operaciones.
Arquitecturas IndependientesEl programa proporciona información sobre qué
operaciones son independientes unas de otras.
> ARQUITECTURAS ILPARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 6
1. Introducción2. Historia ILP
3.Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
> ARQUITECTURAS ILPARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 7
1. Introducción2. Historia ILP
3.Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Se deben determinar las siguientes funciones entre el compilador y el tiempo de ejecución del hardware:
Las dependencias entre operaciones.
Las operaciones que son independientes de cualquier otra operación que aún no se ha completado.
Se deben programar las operaciones independientes para ejecutarse en un momento determinado, en alguna unidad funcional específica, y asignarle un registro que puede ser el resultado.
> ARQUITECTURAS ILPARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 8
Responsabilidades entre el compilador y el hardware para las tres arquitecturas
1. Introducción2. Historia ILP
3.Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
> ARQUITECTURA SECUENCIALARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 9
1. Introducción2. Historia ILP
3. Arquitecturas ILP
3.1. Arquitectura
Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
El programa no contiene información explícita sobre las dependencias que existen entre las instrucciones.
Estas dependencias deben ser determinadas por el hardware.
Solo para determinar las dependencias de forma secuencial con las instrucciones anteriores que han sido emitidas pero aún no terminaron todavía
Compilador puede reorganizar las instrucciones para facilitar al hardware el paralelismo.
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 10
1. Introducción2. Historia ILP
3. Arquitecturas ILP
3.1. Arquitectura
Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Procesador superescalar es una implementación representativa ILP de este tipo de arquitectura.
Para todas las instrucciones emitidas por un procesador superescalar, el hardware debe comprobar si los operandos interfieren con los operandos de otras operaciones.
Ya en ejecución Han sido emitidos pero se esperan para la
realización de las instrucciones de interferencia que se han ejecutado anteriormente.
Se ejecutada simultáneamente, cuando debía haber sido ejecutada anteriormente.
> EJEMPLO – Superscalar processors
> EJEMPLO – Superscalar processorsARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 11
1. Introducción2. Historia ILP
3. Arquitecturas ILP
3.1. Arquitectura
Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Procesadores superescalares intentan emitir muchas instrucciones por ciclo.
Sin embargo, las dependencias esenciales son especificadas como secuenciales y deben ser procesadas en orden secuencial.
Supondrían un rendimiento muy costoso de mantener.
Alternativa para las múltiples instrucciones por ciclos está en la segmentación y emitir las instrucciones más rápido.
> ARQUITECTURA DEPENDIENTEARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 12
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial
3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
En este tipo de arquitectura:
1. El compilador(programa) identifica el paralelismo entre instrucciones y lo comunica al hardware (especificando las dependencias entre las operaciones)
2. El hardware debe entonces determinar en tiempo de ejecución cuando cada operación es independiente de las demás, y realiza la programación
No hay análisis del programa secuencial en el orden original para determinar las dependencias.
> EJEMPLO - Dataflow processorsARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 13
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial
3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Los procesadores de flujo de datos son un ejemplo de este tipo de arquitectura. (Dataflow Processors)
El objetivo es ejecutar la instrucción tan pronto como sea posible (sujetas a la disponibilidad de los operandos de entrada y unidades funcionales)
Para ello cuenta con el programa que proporciona información sobre las dependencias entre las instrucciones.
Se logra incluyendo en cada instrucción una lista instrucciones sucesoras
> EJEMPLO - Dataflow processorsARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 14
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial
3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Cuando una instrucción se completa, se crea una copia de su resultado para cada sucesora. En cuanto todos los operandos de entrada de una instrucción están disponibles, el equipo recupera la instrucción que especifica la operación a realizar y la lista de sucesoras.
Las instrucciones son ejecutadas tan pronto como la unidad funcional esta disponible.
Actualmente existen pocos procesadores de flujo de datos.
> VENTAJAS E INCONVENIENTES - Dataflow proc.ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 15
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial
3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP5. Conclusiones
Estos procesadores usan paralelismo de control solo para utilizar plenamente el FU.
Tienen mas éxito que otros al mirar mas lejos en el camino de ejecución del programa para encontrar el paralelismo de control
Cuando tiene éxito es mejor que la ejecución especulativa:
Cada instrucción que se ejecuta es útil.
El procesador no tiene que hacer frente a las condiciones de error debido a operaciones especulativas.
> ARQUITECTURA INDEPENDIENTEARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 16
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Se tiene información de las operaciones independientes.
El hardware no necesita chequear nada mas para determinar qué instrucciones se pueden emitir en el mismo ciclo.
El conjunto de operaciones independientes es mucho mayor que el de operaciones dependientes.
Sólo se especifican un subconjunto de operaciones independientes.
> ARQUITECTURA INDEPENDIENTEARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 17
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Además el compilador puede especificar en que unidad funcional y en que ciclo se puede ejecutar una operación.
El hardware no necesita tomar decisiones en tiempo de ejecución porque es el compilador el que se encarga de especificar el paralelismos directamente.
> EJEMPLO – VLIW processorsARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 18
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Un ejemplo de estos procesadores son los VLIW.
Especifica exactamente en que unidad funcional esta siendo ejecutada cada operación y cuando se esta emitiendo cada operación.
Las operaciones son independientes de otras operaciones emitidas al mismo tiempo, así como de aquellas que están en ejecución.
El compilador emula en tiempo de compilación el flujo de datos que el procesador hace en tiempo de ejecución.
> EJEMPLO – VLIW processorsARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 19
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Operaciones vs instrucciones: Operación: unidad de computación (add,
load, branch = instrucción en el contexto de arquitectura secuencial)
Instrucción: Conjunto de operaciones que son entendidas para ejecutarse al mismo tiempo.
El compilador decide que operaciones van en cada instrucción. (Programación- scheduling)
Todas las operaciones que se supone que empezaran a la vez, se empaquetan en una sola instrucción VLIW.
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 20
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Ventajas. No existe un hardware complejo,
simplemente se trata de una serie de unidades funcionales (sumas, restas, etc) conectadas por un bus, además de algunos registros y la cache.
Mas silicio para el procesamiento actual en lugar de gastarlo predicción de la traza.
Debe ir mas rápido, ya que el único límite es la latencia de las unidades de función en sí mismos.
Programación de un chip VLIW es muy parecido a escribir microcódigo.
> VENTAJAS E INCONVENIENTES - VLIW
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 21
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente
3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Inconvenientes. Es necesario un compilador muy potente.
Se incrementa el tamaño del código derivado de unas políticas de programación agresivas.
Se necesita mayor ancho de banda de memoria y de registros de archivo.
Limitaciones debido a:
la operación de bloqueo. la compatibilidad binaria entre las distintas
implementaciones con un número variable de unidades funcionales y latencias.
> VENTAJAS E INCONVENIENTES - VLIW
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 22
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Segmentación
Aumento de unidades funcionales
Instruction Issue Unit
Ejecución especualtiva
> TÉCNICAS HARDWARE EJECUCION ILP
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 23
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Ventajas
Relativamente bajo costo de implementación- requiere cierres sin unidades funcionales.
Con la segmentación ILP puede ser duplicada, triplicada, …
Desventajas
Añade retrasos en la ejecución de las operaciones individuales.
El aumento de la latencia finalmente contrarresta el aumento de la ILP
> SEGMENTACIÓN
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 24
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
> UNIDADES FUNCIONALES ADICIONALES
Ventajas
No se sufre el cuello de botella por el aumento de la latencia.
Desventajas
La cantidad de hardware de la unidad funcional es proporcional al grado de paralelismo.
La red de interconexión y el tamaño de los registros de archivo son proporcionales al cuadrado del numero de unidades funcionales.
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 25
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
> INSTRUCCIÓN ISSUE UNIT
Número de unidades de instrucción
Se debe tener cuidado con no emitir mas de una instrucción si otra instrucción de la que depende no ha terminado su ejecución.
Requiere una lógica de control compleja para los procesadores Superescalares.
Lógica de control prácticamente trivial en los procesadores VLIW.
Grandes ahorros en consumo energético
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 26
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
> EJECUCION ESPECULATIVA
Pocos ILP se encuentran propiamente en bloques básicos.
Una secuencia lineal de operaciones sin intención del flujo de control.
Múltiples bloques base deben ejecutarse en paralelo.
La ejecución puede continuar a través de múltiples rutas de acceso antes de que se conozca el camino por el que va a ser ejecutada
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 27
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Terminar el calculo especulativo innecesario una vez que la traza se ha resuelto.
Deshacer los efectos de operaciones ejecutadas especulativamente que no se deberían haber ejecutado.
Asegurarse que las excepciones no se presentan hasta que se sepa que la operación con excepción ha sido ejecutada.
Preservar el estado de ejecución lo suficiente para cada pto. de traza especulativa para permitir reanudarla por la ruta correcta si la ejecución especulativa no va bien.
> EJECUCION ESPECULATIVA: REQUISITOS
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 28
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Costosa en hardware.
Una alternativa es realizar movimientos de código especulativo en tiempo de compilación.
Mover las operaciones de los bloques siguientes hasta pasar la traza de operaciones en el procedimiento de bloques
> EJECUCION ESPECULATIVA
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 29
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente
4. Técnicas hardware para soportar la ejecución ILP
5. Conclusiones
Requiere menos demanda de hardware
Un mecanismo para garantizar que excepciones son causadas por la programación de operaciones especulativa es informar sí y solo sí el flujo de control es tal que podría haber sido ejecutado en una versión de código no especulativo.
Utilizar registros adicionales para mantener el estado de la ejecución especulativa.
> EJECUCION ESPECULATIVA
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 30
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP
5. Conclusiones
> CONCLUSIONES
Arquitectura Secuencial
Arquitectura Dependiente
Arquitectura independiente
Información adicional requerida en el programa
Ninguna Especificación de dependencia entre operaciones
Como mínimo, una lista parcial de las independencias. Una descripción completa de cuándo y dónde se ejecutará cada operación
Tipo típico de procesador ILP
Superescalar Flujo de datos VLIW
Análisis de dependencias
Realizado por HW
Realizado por compilador
Realizado por compilador
Análisis de independencias
Realizado por HW
Realizado por HW
Realizado por compilador
Programación – scheduling
Realizado por HW
Realizado por HW
Realizado por compilador
Rol del compilador
Reorganiza el código para hacer el análisis y la programación de HW más exitosa
Sustituye a un análisis HW
Sustituye a casi la totalidad de los análisis y la programación de HW
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 31
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP
5. Conclusiones
> CONCLUSIONES
En procesadores Superescalares
La arquitectura es “auto-dirigida”
en particular el análisis de la dependencia de la instrucción y la programación se hace por el hardware
En procesadores VLIW
El compilador gestiona los recursos hardware
La sinergia entre el compilador y el hardware es la clave.
ARQUITECTURA DE COMPUTADORES 1
ILP: HISTORY AND OVERVIEW >> 31
1. Introducción2. Historia ILP
3. Arquitecturas ILP3.1. Arquitectura Secuencial3.2. Arquitectura Dependiente3.3. Arquitectura Independiente4. Técnicas hardware para
soportar la ejecución ILP
5. Conclusiones
> CONCLUSIONES
VLIW: La tecnología de procesadores integrados
Arquitecturas VLIW son diseños más simples que ofrecen la posibilidad de reducir los requisitos de energía.
Arquitecturas VLIW permiten que el compilador programe estáticamente instrucciones.
> ARQUITECTURA DE COMPUTADORES 1
FIN DE LA PRESENTACION
María Dolores Martínez JuradoÁngel Rafael González Toro
ILP: HISTORY AND OVERVIEW ILP: HISTORY AND OVERVIEW