3. Introducción
Enfoque Superescalar
Mejoran el desempeño de la ejecución de
instrucciones.
Ejecución de instrucciones de manera
independiente y concurrente.
En diferentes pipelines.
En un orden distinto al orden del programa.
5. Superpipelined
Ciertas fases del Pipeline requieren
menos de un ciclo de reloj.
Si duplicamos la velocidad de reloj interna
Se podrían realizar dos tareas en un ciclo de
reloj externo.
7. Limitaciones
El enfoque superscalar depende de la
posibilidad de ejecutar varias
instrucciones en paralelo.
Paralelismo a nivel de Instrucción: Grado
en que esto puede ser logrado.
Optimizaciones a nivel de compilador
Técnicas Hardware
9. Paralelismo de Máquina
Paralelismo de Instrucciones está definido
por:
Dependencia de datos/procedimentales
Paralelismo de máquina está definido por:
Número de pipelines paralelos
Instrucciones independientes
Un programa con niveles de paralelismo
bajos no puede aprovechar un procesador
con paralelismo de máquina alto
11. Políticas de ejecución
Políticas de ejecución de instrucciones
Identificar paralelismo de instrucciones.
Orquestar las diversas fases del Pipeline.
Las políticas pueden ser:
Ejecución en Orden/ Completamiento en
orden
Ejecución en Orden/ Completamiento fuera
de orden
Ejecución fuera de Orden/Completamiento
fuera de Orden
12. Un ejemplo
Obtener y decodificar dos instrucciones
3 unidades funcionales
2 Instancias para la fase Write-Back
Programa:
I1 requiere dos ciclos
I3 e I4 están en conflicto
I5 depende de un valor de I4
I5 e I6 están en conflicto
16. Ejecución Superescalar
1. Instruction Fetch
1. Se genera flujo de instrucciones
2. Se remueven dependencias artificiales
2. Window of execution
1. Se ejecutan en función a dependencias y
disponibilidad de hardware
3. Comitting
1. Los resultados pasan del almacenamiento
temporal y se hacen permanentes.
18. Pentium IV
1. Se obtienen las instrucciones de
memoria en el orden del programa
2. Cada operación es traducida a
instrucciones RISC
3. Se ejecutan estas operaciones en un
pipeline superescalar.
4. Los resultados son confirmados en los
registros en el orden del programa
original.
20. Pipeline Pentium IV
1. Generación de Micro-Ops
2. Selección de instrucciones del caché de
instrucciones.
3. Distribución de recursos para ejecución.
4. Renombramiento de registros.
5. Encolamiento de Micro-Ops.
6. Programación y envío de Micro-Ops.
7. Ejecución de Micro-Ops
22. ARM Cortex-A8
3 Unidades Funcionales
Política de ejecución de instrucciones: En
Orden
Minimizar requerimientos de energía
13 Etapas en el Pipeline
Posee una unidad SIMD separada
Pipeline de 10 etapas