Unidad de generación de direcciones

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
Intel's Nehalem microarchitecture contains multiple AGUs behind the CPU's reservation station.

La unidad de generación de direcciones (AGU), también conocida como unidad de computo de direcciones (ACU),[1]​ es una unidad de ejecución dentro de una unidad central de procesamiento (CPU) que calcula las direcciones usadas por la CPU para acceder a la memoria principal. Tendiendo los cálculos de direcciones manejados en circuitos separados que operan en paralelo con el resto de la CPU, el número de ciclos de CPU requeridos para ejecutar varias instrucciones, aumentando el desempeño.[2][3]

Mientras se ejecutan varias operaciones, las CPUs necesitan calcular direcciones de memoria requeridas para obtener datos de la memoria. Por ejemplo, las posiciones in-memory de elementos array tienen que calcularse antes de que la CPU pueda obtener datos desde las posiciones actuales en memoria. Estos cálculos de direcciones envuelven diferentes operaciones aritméticas sobre enteros, como la suma, resta, operación módulo, o bit shifts. Comúnmente, calcular una dirección de memoria conlleva más de una instrucción con propósito general, que no necesariamente se decodifica y ejecuta rápidamente. Para incorporar una AGU en un diseño de CPU, basta con introducir instrucciones especializadas para el uso de la AGU; varios cálculos de generación de direcciones pueden ser descargados desde el resto de la cpu, y pueden habitualmente ser ejecutadas en un único ciclo de CPU.[2][3]

Las capacidades de una AGU dependen particularmente de la CPU y su arquitectura. Entonces, algunas AGUs implementan más operaciones de cálculo de direcciones, mientras que otras incluyen instrucciones avanzadas especializadas que pueden operar a la vez.[2][3]​ Más aún, algunas arquitecturas de CPU incluyen múltiples AGUs, entonces más de una operación de cálculo de direcciones puede ser ejecutada simultáneamente, trayendo mejoras en el desempeño debido a la naturaleza superescalar del diseño avanzado de CPUs. Por ejemplo, Intel incorpora múltiples AGUs dentro de sus microarquitecturas Sandy Bridge y Haswell, que aumentan el ancho de banda del subsistema de memoria de la CPU, permitiendo múltiples instrucciones de acceso a memorias en paralelo.[4][5][6]

Véase también[editar]

Referencias[editar]

  1. Cornelis Van Berkel; Patrick Meuwissen (2006-01-12 de mdy). «Address generation unit for a processor (US 2006010255 A1 patent application)». google.com. Consultado el 2014-12-08 de mdy. 
  2. a b c «Chapter 4: Address Generation Unit (DSP56300 Family Manual)» (PDF). ecee.colorado.edu. 1999-09-16 de mdy. Consultado el 2014-12-08 de mdy. 
  3. a b c Darek Mihocka (2000-12-27 de mdy). «Pentium 4: Round 1 – Intel blows the lead». emulators.com. Consultado el 2014-12-08 de mdy. 
  4. David Kanter (2010-09-25 de mdy). «Intel’s Sandy Bridge Microarchitecture: Memory Subsystem». realworldtech.com. Consultado el 2014-12-08 de mdy. 
  5. David Kanter (2012-11-13 de mdy). «Intel’s Haswell CPU Microarchitecture: Haswell Memory Hierarchy». realworldtech.com. Consultado el 2014-12-08 de mdy. 
  6. Per Hammarlund (agosto de 2013). «Fourth-Generation Intel Core Processor, codenamed Haswell» (PDF). hotchips.org. p. 25. Consultado el 2014-12-08 de mdy. 

Enlaces externos[editar]