地址生成单元

地址生成单元 (AGU),有时也称为地址计算单元 (ACU)[1] ,是一个中央处理器内的执行单元,其计算地址使CPU访问主存储器。通过独立的电路处理地址计算与CPU其他部分并行运行,以此减少执行各种机器指令所需的CPU周期数,从而提高性能。[2][3]

英特尔的Nehalem微架构CPU保留站后包含多个地址生成单元。

在执行各种操作时,CPU需要计算从内存中获取数据所需的内存地址。例如,必须先计算数组元素在内存中的位置,然后CPU才能从实际的内存位置获取数据。这些地址生成计算涉及不同的整数算术运算,例如加法、减法、模运算或位移。通常,计算内存地址涉及多个通用机器指令,这些指令不一定能快速解码和执行。通过将AGU集成到CPU微架构中,并引入使用AGU的专用指令,各种地址生成计算可以从CPU的其他操作中分流,这样通常使地址生成计算可以在单个CPU周期内快速执行。[2][3]

AGU的功能取决于特定的CPU及其体系结构。因此,一些AGU实现并公开了更多的地址计算操作,而另一些AGU还引入了可以同时对多个操作数进行操作的更高级的专用指令。[2][3]此外,一些CPU体系结构包括多个AGU,因此可以同时执行多个地址计算操作,从而利用高级CPU设计的超标量特性进一步获得性能改进。例如,英特尔将多个AGU合并到其Sandy Bridge和Haswell 微体系结构中,允许通过并行执行多个内存访问指令来增加CPU内存子系统的带宽。[4][5][6]

另见

参考文献

  1. ^ Cornelis Van Berkel; Patrick Meuwissen. Address generation unit for a processor (US 2006010255 A1 patent application). google.com. January 12, 2006 [December 8, 2014]. (原始内容存档于2016-04-18). 
  2. ^ 2.0 2.1 2.2 Chapter 4: Address Generation Unit (DSP56300 Family Manual) (PDF). ecee.colorado.edu. September 16, 1999 [December 8, 2014]. (原始内容存档 (PDF)于2018-03-29). 
  3. ^ 3.0 3.1 3.2 Darek Mihocka. Pentium 4: Round 1 – Intel blows the lead. emulators.com. December 27, 2000 [December 8, 2014]. (原始内容存档于2020-02-11). 
  4. ^ David Kanter. Intel’s Sandy Bridge Microarchitecture: Memory Subsystem. realworldtech.com. September 25, 2010 [December 8, 2014]. (原始内容存档于2020-05-26). 
  5. ^ David Kanter. Intel’s Haswell CPU Microarchitecture: Haswell Memory Hierarchy. realworldtech.com. November 13, 2012 [December 8, 2014]. (原始内容存档于2020-05-26). 
  6. ^ Per Hammarlund. Fourth-Generation Intel Core Processor, codenamed Haswell (PDF). hotchips.org: 25. August 2013 [December 8, 2014]. (原始内容存档 (PDF)于2016-07-05).