Address generation unit とは

アドレス計算ユニット(ACU)とも呼ばれるアドレス生成ユニット(AGU)は、中央処理装置(CPU)内の実行ユニットであり、CPUがメインメモリにアクセスするために使用するアドレスを計算します。 CPUの残りの部分と並列に動作する別個の回路によってアドレス計算を処理することにより、様々な機械命令を実行するのに必要なCPUサイクル数を減らすことができ、性能が改善される。
CPUは、さまざまな操作を実行しながら、メモリからデータを取得するために必要なメモリアドレスを計算する必要があります。例えば、配列要素のインメモリ位置は、CPUが実際のメモリ位置からデータをフェッチする前に計算されなければならない。これらのアドレス生成計算には、加算、減算、モジュロ演算、またはビットシフトなどの異なる整数算術演算が含まれます。多くの場合、メモリアドレスの計算には、必ずしもデコードして迅速に実行する必要のない複数の汎用マシン命令が関係します。 AGUを使用して特殊な命令を導入するとともに、AGUをCPU設計に組み込むことで、さまざまなアドレス生成計算を他のCPUからオフロードすることができ、しばしば単一のCPUサイクルで迅速に実行できます。
AGUの機能は、特定のCPUとそのアーキテクチャに依存します。したがって、いくつかのAGUは、より多くのアドレス計算オペレーションを実装し、公開する一方で、いくつかは、一度に複数のオペランドで動作できるより高度な特殊命令も含む。さらに、いくつかのCPUアーキテクチャには複数のAGUが含まれているため、複数のアドレス計算オペレーションを同時に実行することができ、高度なCPUデザインのスーパースカラの性質を利用してパフォーマンスをさらに向上させることができます。例えば、Intelは複数のAGUをSandy BridgeとHaswellのマイクロアーキテクチャに組み込み、複数のメモリアクセス命令を並行して実行できるようにしてCPUメモリサブシステムの帯域幅を広げます。