La unidad de generación de direcciones ( AGU ), a veces también llamada unidad de cálculo de direcciones ( ACU ), [1] es una unidad de ejecución dentro de las unidades centrales de procesamiento (CPU) que calcula las direcciones utilizadas por la CPU para acceder a la memoria principal . Al tener los cálculos de direcciones manejados por circuitos separados que operan en paralelo con el resto de la CPU, el número de ciclos de CPU requeridos para ejecutar varias instrucciones de la máquina se puede reducir, lo que trae mejoras en el rendimiento. [2] [3]
Al realizar varias operaciones, las CPU necesitan calcular las direcciones de memoria necesarias para obtener datos de la memoria; por ejemplo, las posiciones en memoria de los elementos de la matriz deben calcularse antes de que la CPU pueda recuperar los datos de las ubicaciones reales de la memoria. Esos cálculos de generación de direcciones involucran diferentes operaciones aritméticas de enteros , como suma, resta, operaciones de módulo o cambios de bits . A menudo, el cálculo de una dirección de memoria implica más de una instrucción de máquina de propósito general, que no necesariamente se decodifica y ejecuta rápidamente. Al incorporar una AGU en un diseño de CPU, junto con la introducción de instrucciones especializadas que utilizan la AGU, se pueden descargar varios cálculos de generación de direcciones del resto de la CPU y, a menudo, se pueden ejecutar rápidamente en un solo ciclo de CPU. [2] [3]
Las capacidades de una AGU dependen de una CPU en particular y su arquitectura . Por lo tanto, algunas AGU implementan y exponen más operaciones de cálculo de direcciones, mientras que algunas también incluyen instrucciones especializadas más avanzadas que pueden operar en múltiples operandos a la vez. [2] [3] Además, algunas arquitecturas de CPU incluyen múltiples AGU, por lo que se puede ejecutar más de una operación de cálculo de direcciones simultáneamente, lo que trae mejoras de rendimiento adicionales al capitalizar la naturaleza superescalar de los diseños avanzados de CPU. Por ejemplo, Intel incorpora varias AGU en sus microarquitecturas Sandy Bridge y Haswell , que aumentan el ancho de banda del subsistema de memoria de la CPU al permitir que se ejecuten en paralelo varias instrucciones de acceso a la memoria. [4] [5] [6]
Ver también
- Unidad lógica aritmética (ALU): un circuito digital que realiza operaciones lógicas aritméticas y bit a bit en números binarios enteros.
- Unidad de coma flotante (FPU): lo mismo que ALU pero para números de coma flotante
- Unidad de carga y almacenamiento
- Bulldozer (microarquitectura) : otra microarquitectura de CPU que incluye múltiples AGU, desarrollada por AMD
- Cambio de nombre de registros : una técnica que reutiliza los registros de la CPU y evita la serialización innecesaria de las operaciones del programa.
- Estación de reserva : una función de la CPU que permite utilizar los resultados de varias operaciones sin pasar por los registros de la CPU.
- Unidad de ejecución
Referencias
- ^ Cornelis Van Berkel; Patrick Meuwissen (12 de enero de 2006). "Unidad de generación de direcciones para un procesador (solicitud de patente US 2006010255 A1)" . google.com . Consultado el 8 de diciembre de 2014 .
- ^ a b c "Capítulo 4: Unidad de generación de direcciones (Manual de la familia DSP56300)" (PDF) . ecee.colorado.edu . 16 de septiembre de 1999 . Consultado el 8 de diciembre de 2014 .
- ^ a b c Darek Mihocka (27 de diciembre de 2000). "Pentium 4: Round 1 - Intel lleva la delantera" . emulators.com . Consultado el 8 de diciembre de 2014 .
- ^ David Kanter (25 de septiembre de 2010). "Microarquitectura Sandy Bridge de Intel: subsistema de memoria" . realworldtech.com . Consultado el 8 de diciembre de 2014 .
- ^ David Kanter (13 de noviembre de 2012). "Microarquitectura de CPU Haswell de Intel: jerarquía de memoria Haswell" . realworldtech.com . Consultado el 8 de diciembre de 2014 .
- ^ Per Hammarlund (agosto de 2013). "Procesador Intel Core de cuarta generación, con nombre en código Haswell" (PDF) . hotchips.org . pag. 25 . Consultado el 8 de diciembre de 2014 .
enlaces externos
- Unidad de generación de direcciones de la familia Motorola DSP56K , junio de 2003, Motorola
- Unidad de generación de direcciones en aplicaciones DSP , septiembre de 2013, por Andreas Ehliar
- Computer Science from the Bottom Up, Capítulo 3. Arquitectura de la computadora , septiembre de 2013, por Ian Wienand