Unidad de generación de direcciones
[1] 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]- Portal:Tecnología. Contenido relacionado con Tecnología.
- Unidad aritmética lógica
- Bulldozer (microarquitectura)
- Renombre de registros
Referencias
[editar]- ↑ a b 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.
- ↑ a b c «Chapter 4: Address Generation Unit (DSP56300 Family Manual)» (PDF). ecee.colorado.edu. 1999-09-16 de mdy. Archivado desde el original el 29 de marzo de 2018. Consultado el 2014-12-08 de mdy.
- ↑ 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.
- ↑ David Kanter (2010-09-25 de mdy). «Intel’s Sandy Bridge Microarchitecture: Memory Subsystem». realworldtech.com. Consultado el 2014-12-08 de mdy.
- ↑ David Kanter (2012-11-13 de mdy). «Intel’s Haswell CPU Microarchitecture: Haswell Memory Hierarchy». realworldtech.com. Consultado el 2014-12-08 de mdy.
- ↑ Per Hammarlund (agosto de 2013). «Fourth-Generation Intel Core Processor, codenamed Haswell» (PDF). hotchips.org. p. 25. Archivado desde el original el 5 de julio de 2016. Consultado el 2014-12-08 de mdy.
Enlaces externos
[editar]- Wikimedia Commons alberga una categoría multimedia sobre Unidad de generación de direcciones.
- Address generation unit in the Motorola DSP56K family, June 2003, Motorola
- A new approach to design of an AGU in a DSP processor, November 2011, by Kabiraj Sethi and Rutuparna Panda
- Address generation unit in DSP applications, September 2013, by Andreas Ehliar
- Computer Science from the Bottom Up, Chapter 3. Computer Architecture, September 2013, by Ian Wienand