ScholarGate
Asistente

Microarquitectura del procesador

La microarquitectura del procesador es la organización interna del hardware que implementa una arquitectura de conjunto de instrucciones, abarcando la tubería (pipeline), las unidades de ejecución, la renominación de registros y la lógica de control que convierten un flujo de instrucciones en resultados computados lo más rápido posible.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La microarquitectura es la organización lógica concreta de un procesador —sus etapas de tubería, unidades funcionales, búferes y control— que materializa el comportamiento especificado por una arquitectura de conjunto de instrucciones, buscando al mismo tiempo un alto rendimiento y eficiencia.

Scope

Esta área cubre cómo se construye un procesador por debajo de la interfaz ISA: la ruta de datos y el control, el pipelining y los riesgos que lo limitan, las técnicas para extraer el paralelismo a nivel de instrucción, la predicción de bifurcaciones, la ejecución especulativa y fuera de orden, y las estructuras de planificación que mantienen ocupadas las unidades de ejecución. Excluye el conjunto de instrucciones visible en sí mismo (arquitectura del conjunto de instrucciones) y el subsistema de memoria más allá de los primeros niveles de caché (jerarquía de memoria y cachés), así como la organización multinúcleo (arquitectura paralela y multinúcleo).

Sub-topics

Core questions

  • ¿Cómo superpone el pipelining la ejecución de instrucciones y qué riesgos estructurales, de datos y de control lo limitan?
  • ¿Cuánto paralelismo a nivel de instrucción existe en un programa y cómo puede el hardware extraerlo?
  • ¿Cómo reduce la predicción de bifurcaciones el costo de los riesgos de control en tuberías profundas?
  • ¿Cómo exponen la ejecución fuera de orden y la renominación de registros el paralelismo mientras se preserva la semántica del programa?
  • ¿Cómo se equilibran el rendimiento, la potencia y la complejidad en el diseño microarquitectónico?

Key concepts

  • ruta de datos y control
  • tubería de instrucciones
  • riesgos estructurales, de datos y de control
  • reenvío y derivación
  • paralelismo a nivel de instrucción
  • predicción de bifurcaciones
  • ejecución especulativa
  • ejecución fuera de orden
  • renominación de registros
  • emisión superescalar

Key theories

Pipelining
La superposición de la ejecución de múltiples instrucciones en etapas aumenta el rendimiento de las instrucciones; la aceleración alcanzable está limitada por la profundidad de la tubería y las detenciones introducidas por los riesgos y las dependencias.
Planificación dinámica y renominación de registros
El algoritmo de Tomasulo planifica dinámicamente las instrucciones en las unidades de ejecución y renombra los registros a través de estaciones de reserva y un bus de datos común, permitiendo que las instrucciones se ejecuten fuera del orden del programa mientras se respetan las verdaderas dependencias de datos, lo que constituye la base de los procesadores modernos fuera de orden.

Mechanisms

Un procesador segmentado (pipelined) divide el procesamiento de instrucciones en etapas (captura, decodificación, ejecución, memoria, escritura) para que varias instrucciones estén en curso simultáneamente. Los riesgos —un resultado necesario aún no disponible, un recurso en disputa o una bifurcación no resuelta— se manejan mediante el reenvío, la detención, la predicción y la especulación. Los núcleos superescalares fuera de orden añaden estaciones de reserva, búferes de reordenamiento y renominación para que las instrucciones independientes se ejecuten tan pronto como sus operandos estén listos y los resultados se confirmen en el orden del programa.

Clinical relevance

La microarquitectura determina la velocidad y la eficiencia energética reales de los procesadores: el pipelining, la emisión superescalar y la ejecución fuera de orden son la base del rendimiento de casi todas las CPU modernas. El diseño microarquitectónico también tiene consecuencias de seguridad: los canales laterales de ejecución especulativa como Spectre y Meltdown surgen directamente de las características de rendimiento.

History

El pipelining y las múltiples unidades funcionales aparecieron en el IBM System/360 Modelo 91 y el CDC 6600 en la década de 1960, donde Tomasulo introdujo la planificación dinámica. Las microarquitecturas RISC de la década de 1980 hicieron que las tuberías profundas fueran comunes, y los diseños superescalares fuera de orden se volvieron dominantes en las CPU de alto rendimiento durante las décadas de 1990 y 2000. La especulación agresiva expuso más tarde los canales laterales microarquitectónicos que se hicieron públicos en 2018.

Debates

Especulación agresiva versus seguridad y eficiencia
La ejecución profunda especulativa fuera de orden aumenta el rendimiento de un solo hilo, pero incrementa el consumo de energía y ha permitido ataques de seguridad de ejecución transitoria, lo que provoca un debate sobre cuánta especulación es valiosa en relación con diseños más simples, eficientes o predecibles.

Key figures

  • Robert Tomasulo
  • John L. Hennessy
  • David A. Patterson
  • Yale Patt
  • James E. Smith

Related topics

Seminal works

  • hennessy2019
  • tomasulo1967
  • patterson2020

Frequently asked questions

¿Cuál es la diferencia entre la ejecución en orden y la ejecución fuera de orden?
Un procesador en orden ejecuta las instrucciones estrictamente en el orden del programa, deteniéndose cuando los operandos de una instrucción no están listos. Un procesador fuera de orden ejecuta cualquier instrucción cuyos operandos estén disponibles, utilizando búferes y renominación para reordenar la ejecución mientras sigue confirmando los resultados en el orden del programa.
¿Por qué es importante la predicción de bifurcaciones?
Las tuberías profundas capturan y comienzan a ejecutar instrucciones antes de que se conozca la dirección de una bifurcación. Una predicción precisa de bifurcaciones permite al procesador mantener la tubería llena a lo largo de la ruta probable; una predicción errónea desperdicia el trabajo especulativo e incurre en una penalización de múltiples ciclos.

Methods for this concept

Related concepts