本文へ移動

アキュムレータ(CPUレジスタ)

算術・論理演算の中間結果を保持するCPUレジスタ。命令では暗黙的に指定されることが多く、初期コンピュータの設計に影響を与え、現在もマイクロコントローラや特定用途の命令で使われている。

アキュムレータは、中央処理装置(CPU)内にある中心的なレジスタであり、算術演算および論理演算の中間結果を保持するために用いられる。多くの命令セットでは、演算の一方のオペランドまたは演算結果の格納先がアキュムレータとして暗黙的に定められているため、明示的に指定する必要がない。アキュムレータの幅は、たとえば8、16、32、64ビットであり、プロセッサのデータパス幅に対応し、多くの場合、算術演算における自然な処理単位を決定する。

典型的な特性

  • 算術・論理演算の結果を保持し、暗黙的な入力元または格納先として機能することが多い。
  • 演算後に、ゼロ、キャリー、負/符号、オーバーフローなどのプロセッサ状態フラグを更新する。
  • 名称はアーキテクチャに依存する。例として、x86のAX/EAX、多くのマイクロコントローラのAまたはACC、MOS 6502および類似する8ビットCPUのAがある。
  • アキュムレータ型アーキテクチャでは唯一または主要なレジスタとなる場合があり、現代のCPUでは多数ある汎用レジスタの一つとなる場合もある。

歴史とアーキテクチャ上の役割

初期のコンピュータや単純なマイクロプロセッサでは、制御論理と命令符号化を簡素化するため、単一のアキュムレータがよく使用された。「アキュムレータ・アーキテクチャ」では、多くの命令がその単一レジスタを暗黙的に操作するため、柔軟性を犠牲にしてオペコードのサイズを削減できる。コンパイラと高性能設計の発展に伴い、アーキテクチャは複数の汎用レジスタへ移行した。これにより、より多くの独立した値を同時に保持でき、パイプライン処理とレジスタ割り当てが改善された。

用途と例

アキュムレータは、通常の算術演算、ループ内での合計、ALU段階間の一時記憶に使用される。一般的なアセンブリ構文の例では、x86(16ビット)で即値をアキュムレータに加えるにはADD AX, 3と記述できる。一部の8ビット・マイクロコントローラでは、同様の形式はADD A, #3である。MOS 6502ファミリーでは、アキュムレータは多くの命令で暗黙的なオペランドとなる。たとえばADC #$03は、キャリー付きで即値をAに加算する。

現代における重要性と区別

現代のRISC CPUは専用アキュムレータよりも多数の汎用レジスタを重視するが、アキュムレータに似た動作は今も見られる。特定の命令が暗黙的なアキュムレータを使用することがあり、デジタル信号プロセッサは乗算累積ループ用の専用累積レジスタを備え、マイクロコントローラはコンパクトなコードのために名前付きアキュムレータを維持している。デジタル回路においては、この語は算術論理演算装置(ALU)へフィードバックされ、複数サイクルにわたり結果を累積するレジスタも指す。

関連項目

著者

AlegsaOnline.com アキュムレータ(CPUレジスタ)

URL: https://ja.alegsaonline.com/art/657

共有