# Unitat de generació d'adreces

La unitat de generació d'adreces (AGU), de vegades també anomenada unitat de càlcul d'adreces (ACU), és una unitat d'execució dins de les unitats centrals de processament (CPU) que calcula les adreces utilitzades per la CPU per accedir a la memòria principal. Si els càlculs d'adreces es gestionen mitjançant circuits separats que funcionen en paral·lel amb la resta de la CPU, es pot reduir el nombre de cicles de CPU necessaris per executar diverses instruccions de la màquina, aportant millores de rendiment.
Mentre realitzen diverses operacions, les CPU han de calcular les adreces de memòria necessàries per obtenir dades de la memòria; per exemple, les posicions a la memòria dels elements de la matriu s'han de calcular abans que la CPU pugui obtenir les dades de les ubicacions reals de la memòria. Aquests càlculs de generació d'adreces impliquen diferents operacions aritmètiques de nombres enters, com ara sumes, restes, operacions de mòdul o desplaçaments de bits. Sovint, el càlcul d'una adreça de memòria implica més d'una instrucció de màquina de propòsit general, que no necessàriament es descodifiquen i s'executen ràpidament. En incorporar una AGU en un disseny de CPU, juntament amb la introducció d'instruccions especialitzades que utilitzen l'AGU, es poden descarregar diversos càlculs de generació d'adreces de la resta de la CPU i sovint es poden executar ràpidament en un sol cicle de CPU. Les capacitats d'una AGU depenen d'una CPU particular i de la seva arquitectura. Així, alguns AGU implementen i exposen més operacions de càlcul d'adreces, mentre que alguns també inclouen instruccions especialitzades més avançades que poden operar en diversos operands alhora. A més, algunes arquitectures de CPU inclouen múltiples AGU, de manera que es pot executar més d'una operació de càlcul d'adreces simultàniament, aportant més millores de rendiment aprofitant la naturalesa superescalar dels dissenys avançats de CPU. Per exemple, Intel incorpora múltiples AGU a les seves microarquitectures Sandy Bridge i Haswell, que augmenten l'amplada de banda del subsistema de memòria de la CPU permetent que s'executin múltiples instruccions d'accés a la memòria en paral·lel.

## Referències

* ↑ Cornelis Van Berkel. «Address generation unit for a processor (US 2006010255 A1 patent application)» (en anglès). google.com, 12-01-2006. [Consulta: 8 desembre 2014].
* ↑ «Chapter 4: Address Generation Unit (DSP56300 Family Manual)» (en anglès). ecee.colorado.edu, 16-09-1999. Arxivat de l'original el 29 març 2018. [Consulta: 8 desembre 2014].
* ↑ Darek Mihocka. «Pentium 4: Round 1 – Intel blows the lead» (en anglès). emulators.com, 27-12-2000. [Consulta: 8 desembre 2014].
* ↑ «Chapter 4: Address Generation Unit (DSP56300 Family Manual)» (en anglès). ecee.colorado.edu, 16-09-1999. Arxivat de l'original el 29 març 2018. [Consulta: 8 desembre 2014].
* ↑ Darek Mihocka. «Pentium 4: Round 1 – Intel blows the lead» (en anglès). emulators.com, 27-12-2000. [Consulta: 8 desembre 2014].
* ↑ «Chapter 4: Address Generation Unit (DSP56300 Family Manual)» (en anglès). ecee.colorado.edu, 16-09-1999. Arxivat de l'original el 29 març 2018. [Consulta: 8 desembre 2014].
* ↑ Darek Mihocka. «Pentium 4: Round 1 – Intel blows the lead» (en anglès). emulators.com, 27-12-2000. [Consulta: 8 desembre 2014].
* ↑ David Kanter. «Intel's Sandy Bridge Microarchitecture: Memory Subsystem» (en anglès). realworldtech.com, 25-09-2010. [Consulta: 8 desembre 2014].
* ↑ David Kanter. «Intel's Haswell CPU Microarchitecture: Haswell Memory Hierarchy» (en anglès). realworldtech.com, 13-11-2012. [Consulta: 8 desembre 2014].
* ↑ Per Hammarlund. «Fourth-Generation Intel Core Processor, codenamed Haswell» (en anglès). hotchips.org, 01-08-2013. Arxivat de l'original el 5 juliol 2016. [Consulta: 8 desembre 2014].