11 mayo 2010

Procesadores superescalares

El procesamiento superescalar es la ultima de una serie de innovaciones tendientes a producir procesadores cada vez mas rápidos. Explotando el paralelismo a nivel de instrucción, los superescalares son capaces de ejecutar mas de una instrucción por ciclo de reloj (dos, tres, cuatro, ocho ya es mucho!).
Los procesadores superescalares pueden iniciar la ejecución simultánea de varias instrucciones escalares en paralelo de manera que se pueden operar varios elementos de un vector dentro de una misma iteración.

Para ésto, es necesario que existan varias unidades aritmético-lógicas, de punto flotante y de control. El proceso que sigue el micro es transparente al programa, aunque el compilador puede ayudar analizando el código y generando un flujo de instrucciones optimizado.

Superescalar es el término utilizado para designar un tipo de microarquitectura capaz de ejecutar más de una instrucción por ciclo de reloj. El término se emplea por oposición a la microarquitectura escalar que sólo es capaz de ejecutar una instrucción por ciclo de reloj. En la clasificación de Flynn, un procesador superescalar es un procesador de tipo MIMD (multiple instruction multiple data). de procesador

La microarquitectura superescalar utiliza el paralelismo de instrucciones además del paralelismo de flujo, éste último gracias a la estructura en pipeline. La estructura típica de un procesador superescalar consta de un pipeline con las siguientes etapas:
-Lectura (fetch).
-Decodificación (decode).
-Lanzamiento (dispatch).
-Ejecución (execute).
-Escritura (writeback).
-Finalización (retirement).

En un procesador superescalar, el procesador maneja más de una instrucción en cada etapa. El número máximo de instrucciones en una etapa concreta del pipeline se denomina grado, así un procesador superescalar de grado 4 en lectura (fetch) es capaz de leer como máximo cuatro instrucciones por ciclo. El grado de la etapa de ejecución depende del número y del tipo de las unidades funcionales.

Un procesador superescalar suele tener unidades funcionales independientes de los tipos siguientes :
-Unidad aritmético lógica (ALU)
-Unidad de lectura/escritura en memoria (Load/Store Unit)
-Unidad de punto flotante (Floating Point Unit)
-Unidad de salto (Branch unit)

No hay comentarios:

Publicar un comentario