Arquitectura Superescalar DLX: Optimización del Rendimiento en Procesadores
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,02 KB
Introducción a la Arquitectura Superescalar DLX
Un método para disminuir el CPI (Ciclos Por Instrucción) de DLX es emitir más de una instrucción por ciclo de reloj. Esto permitirá que la frecuencia de ejecución de instrucciones exceda a la frecuencia de reloj.
Las máquinas que emiten múltiples instrucciones independientes por ciclo de reloj, cuando están planificadas adecuadamente por el compilador, se denominan máquinas superescalares.
En una máquina superescalar, el hardware puede emitir un pequeño número (por ejemplo, de 2 a 4) de instrucciones independientes en un solo ciclo.
Sin embargo, si las instrucciones del flujo de instrucciones son dependientes o no cumplen ciertos criterios, sólo se emitirá la primera instrucción de la secuencia.
Una máquina donde el compilador tenga completa responsabilidad para crear un paquete de instrucciones que se puedan emitir simultáneamente, y el hardware no tome dinámicamente decisiones sobre múltiples emisiones, probablemente deberá considerarse del tipo VLIW (palabra de instrucción muy larga, very long instruction word).
Implementación Superescalar en DLX
Consideraciones para la Implementación
¿Qué hacer para que la máquina DLX parezca un superescalar?
- Supongamos que se emiten dos instrucciones por ciclo de reloj.
- Una de las instrucciones podría ser de carga, almacenamiento, salto u operación entera de la ALU, y la otra podría ser cualquier operación de punto flotante.
Como veremos, emitir una operación entera en paralelo con una operación en punto flotante es mucho más simple y menos exigente que emitir dos instrucciones cualesquiera.
Emitir dos instrucciones por ciclo requerirá buscar y decodificar 64 bits de instrucciones.
Para lograr una decodificación sencilla, necesitaríamos que las instrucciones estuviesen emparejadas y alineadas sobre un límite de 64 bits, apareciendo primero la parte entera.
Segmentación Superescalar
Segmentación superescalar en operación. Las instrucciones enteras y de punto flotante se emiten a la vez, y cada una se ejecuta a su propio ritmo a través de la segmentación. Este esquema sólo mejorará el rendimiento de programas con una cantidad respetable de punto flotante.
Con segmentación, hemos aumentado sustancialmente la frecuencia a la cual se pueden emitir las instrucciones de punto flotante.
- Sin embargo, para hacer esto útil necesitamos unidades de punto flotante segmentadas o múltiples unidades independientes.
En cualquier otro caso, las instrucciones de punto flotante pueden sólo ser buscadas, y no emitidas, ya que todas las unidades de punto flotante estarán ocupadas.
Al emitir en paralelo una operación en punto flotante y otra entera, se minimiza la necesidad de hardware adicional, ya que las operaciones enteras y de punto flotante utilizan diferentes conjuntos de registros y unidades funcionales.