Procesadores Superescalares
TIPOS
PowerPC 601
Nombre original de la arquitectura de computadoras de tipo RISC.
PowerPC 604
6 unidades de ejecución independientes (1 unidad
de procesamiento de saltos.
1 unidad de carga almacenamiento.
3 unidades de enteros.
1 unidad de punto flotante. Emisión en orden. Renombrado de registros.
Pentium
Emisión en orden y 3 unidades de ejecución
independientes.
2 unidades de enteros, 1 unidad de punto
flotante.
Pentium II
Es un microprocesador diseñado por Intel.
Arquitectura x86.
MIPS R10000 y UltraSPARC-II
Eliminados en la
6ta. ed
Ver Stallings
Paper IEEE
MIPS R10000.
Alpha 21164.
AMD K5 (x86).
Topic principal
CARACTERÍSTICAS
Límites de la Segmentación
y Supersegmentación
La supersegmentación consiste en dividir las etapas de un cauce un sub etapas.
Aumenta el número de instrucciones en el cauce en un determinado instante.
Divide cada etapa en dos y utilizando un reloj interno del doble
de frecuencia.
La solución superescalar es una forma de aumentar las prestaciones por encima de este límite.
task
Paralelismo
Paralelismo a nivel de las
instrucciones (ILP)
Las dependencias de datos son críticas en este contexto.
Paralelismo a nivel de la
máquina (MLP)
Es una medida de la capacidad del procesador para sacar partido
del ILP.
Ciclo de instrucción
CAPTACION (fetch)
Múltiples instrucciones son captadas simultáneamente.
Utilizan técnicas de predicción de saltos y ejecución especulativa.
DECODIFICACION (decode)
Predecodificación entre la memoria y el cache para identificación de saltos.
Determinación de la operación, localización de operandos y
localización del resultado.
VENTANA DE EJECUCION = ENCOLADO (dispatch) y EMISION
(issue)
Identificación de las instrucciones de la cola que están listas para comenzar su ejecución.
EJECUCION (execute)
En paralelo.
En diferentes unidades
funcionales.
FINALIZACION (commit)
El resultado es confirmado en su destino.
Limitaciones
Conflictos en los recursos
Similares a los riesgos estructurales de
los cauces.
Duplicación de recursos.
Dependencia de control
Predicción estática (PowerPC 601) o dinámica (PowerPC 620).
El salto retardado es eficiente en RISC pero no en superescalares CISC, ya que hay que insertar varias instrucciones en la ventana.
Dependencia de datos
La verificación de la dependencia de datos hace crecer mucho la
complejidad del dispatcher, limitando la implementación a un máximo
de 4.
Existe cuando dos instrucciones utilizan el
mismo registro.
Impiden que las instrucciones puedan reordenarse.
Clasificación de las
dependencias de datos
Dependencias verdaderas
Son intrínsecas del programa y no pueden
eliminarse. RAW. Tracking.
Dependencias artificiales
Conflictos de almacenamiento
que pueden solucionarse con más registros (internos de la CPU,
usualmente x2) (Register renaming):
Técnicas de optimización
Duplicación de recursos
Política de emisión desordenada de instrucciones con
ventana de ejecución
Finalización desordenada.
Emisión desordenada (implica la anterior).
Renombrado de registros
APLICACIÓN
Multi-Threading
Históricamente ayudaban al scheduler del SO a realizar el time slice (en el caso de un monoprocesador) o a distribuir la carga (multiprocesadores).
Multi-Threading (cont)
Evitar que el procesador quede detenido ante un
cache-miss: continúa ejecutando el otro thread.
-INTEL HyperThreading (Pentium 4 HTT). Según Intel mejora 30%.
-Simultaneus Multithreading (SMT) Power, SPARC.
-P4x2 (S=1.3), Power5 x2, SPARC x4 (x8).
MIPS R10000
Obtiene y decodifica cuatro instrucciones por ciclo y las envía de forma dinámica a cinco unidades de ejecución de baja latencia y canalización completa.
Sistema de memoria jerárquico y sin bloqueos.
MIPS R10000: Pipeline
Sin depender necesariamente en gran medida de la reingeniería de compiladores y del código ensamblador ajustado a mano.
IBM RISC System RS/6000
La unidad entera es de cuatro etapas.
Un sistema RS/6000 de 62,5 MHz ejecutó el benchmark LINPACK (Gaussian
eliminación) a una tasa de 104 MFLOPS y tiene un pico teórico
rendimiento de 125 MFLOPS.
La estación de trabajo HP 9000/735 tiene una frecuencia de 99 MHz.
Procesador superescalar HP-PA.
Esta máquina ejecuta el LINPACK
punto de referencia en 107 MFLOPS, con un rendimiento máximo teórico de 198
MFLOPS.