domingo, 23 de enero de 2011

Procesador Superescalar

Un procesador superescalar utiliza paralelimo a nivel de instrucciones y de flujo para poder ejecutar más de una microinstrucción por ciclo de reloj. 


Como concepto, el procesador superescalar, se basa en dividir la ejecución de las microinstrucciones en diferentes etapas, dando lugar al conocido pipeline (o cadena de montaje en terminología Fordiana). Típicamente, y como ejemplo teórico, consideraremos las siguientes etapas para un pipepiline en un procesador superescalar:

  1. Lectura (instruction fetch).
  2. Decodificación (instruction decode).
  3. Ejecución (execute).
  4. Memoria (memory).
  5. Escritura (writeback).

Por tanto, y atendiendo a este esquema, es fácil ver que en una situación óptima (que no siempre se da por una serie de circunstancias como los riesgos, burbujas, etc.) un procesador superescalar podrá ejecutar tantas instrucciones por ciclo de reloj como etapas de profundidad tenga su pipeline. En el caso anterior, hasta 5 instrucciones por ciclo.

En la actualidad, un procesador superescalar como el Intel i7 cuenta con 14 etapas en su pipeline y prácticamente todos los procesadores de propósito general son superescalares. 

Para profundizar en la interesante ingeniería detrás del concepto de procesador superescalar, sin duda, la referencia recomendada es el libro Computer Architecture: A Quantitative Approach, de Hennesy & Patterson.