情報処理試験を勉強していると、「アキュムレータってレジスタの一種?汎用レジスタと何が違うの?」と混乱しがちです。この記事ではアキュムレータの意味と役割を、日常の例え話と図解で端的に整理します。

対象試験と出題頻度

アキュムレータは、基本情報技術者・応用情報技術者で出題されるテーマです。

CPUのレジスタに関する問題の選択肢として登場するのが定番パターンで、プログラムカウンタ命令レジスタとの役割の違いを正確に区別できるかが問われます。

詳細をクリックして確認
対象試験:
基本情報技術者
応用情報技術者
出題頻度:
★★★☆☆
ランクC(応用)余裕があれば覚える

用語の定義

アキュムレータ(Accumulator)とは、一言で言うと

 「CPU内部の演算装置(ALU)が出した計算結果を一時的に保持する専用レジスタ

のことです。

イメージとしては、電卓の表示画面です。

電卓で「3 + 5 =」と操作すると、画面に「8」が表示されます。続けて「× 2 =」と押すと画面は「16」に変わります。

この「直前の計算結果を表示し、次の計算にそのまま使い回す画面」がアキュムレータの役割そのものです。

📊 アキュムレータの基本情報

項目 内容
英語名 Accumulator
分類 CPU内部のレジスタ(演算装置側に属する専用レジスタ)
主な役割 演算結果の一時保持、次の演算へのデータ引き渡し
語源 accumulate(蓄積する)=演算結果を蓄えるレジスタ

解説

CPUは「命令の取り出し → 解読 → 実行 → 結果の書き戻し」という命令実行サイクルを高速に繰り返しています。

この「実行」フェーズでALU(算術論理演算装置)が加減乗除や論理演算を行いますが、その計算結果をどこかに置かなければ次のステップで使えません。

この「計算結果の置き場」として用意されたのがアキュムレータです。

CPU内部でのアキュムレータの位置づけ

CPU内部のレジスタは、大きく制御装置側と演算装置側に分かれます。

アキュムレータは演算装置側に属し、ALUと密接に連携して動作します。

CPU内部の構成とアキュムレータの位置

制御装置

プログラムカウンタ
次の命令アドレスを保持
命令レジスタ
取り出した命令を保持
命令デコーダ
命令を解読し制御信号を生成

演算装置(ALU)

⭐ アキュムレータ
演算結果を一時保持
汎用レジスタ
データやアドレスを汎用的に保持
フラグレジスタ
演算結果の状態を保持

▲ アキュムレータは演算装置(ALU)側に属する専用レジスタ

他の主要レジスタとの比較

レジスタの問題では「どのレジスタが何を保持するか」の区別が求められます。

以下の対比を押さえておけば、選択肢の切り分けに困ることはありません。

レジスタ名 保持する内容 所属
アキュムレータ 演算結果(計算の答え) 演算装置
プログラムカウンタ 次に実行する命令のメモリアドレス 制御装置
命令レジスタ メモリから取り出した命令そのもの 制御装置
汎用レジスタ データ・アドレスなど多目的に利用 演算装置
フラグレジスタ 演算結果の状態(ゼロ・桁あふれ・正負など) 演算装置
何となくで覚えたい人向け:ざっくり整理

アキュムレータ → 「計算結果の置き場」。電卓の表示画面。

プログラムカウンタ → 「次にやること番号のメモ」。料理レシピの何番目かを指す指。

命令レジスタ → 「いま読んでいる指示書」。今開いているレシピのページ。

汎用レジスタ → 「何でも置ける作業台」。まな板やボウルのような一時置き場。

フラグレジスタ → 「結果のメモ」。答えがゼロだったか、あふれたかの記録。

では、この用語が試験でどのように出題されるか見ていきましょう。

💡 アキュムレータの核心を2行で

・ALUの演算結果を一時保持し、次の演算にそのまま引き渡す専用レジスタ
・制御装置側のプログラムカウンタ・命令レジスタとは役割がまったく異なる


試験ではこう出る!

アキュムレータは、FE・APの午前問題でレジスタの役割分類を問う問題の選択肢として繰り返し登場しています。単独で正解になるパターンよりも、「不正解の選択肢」として登場し、他のレジスタとの区別を試すパターンが多いのが特徴です。

📊 過去問での出題実績

試験回 出題内容 アキュムレータの扱い
FE H16春
問29
プロセッサの制御機構に分類されるものを選ぶ問題。 不正解の選択肢として登場。「演算途中の結果を一時的に保持するレジスタ」=演算機構側であり、制御機構ではない。
FE H19春
問26
上記H16春 問29の同一構成問題(流用)。 同様に不正解の選択肢。FEでは同一論点の流用が定番。
FE H30春
問9
命令フェッチ後の格納先レジスタを問う問題。 不正解の選択肢。フェッチした命令を格納するのは命令レジスタであり、アキュムレータではない。
AP R1秋
問9
プログラムカウンタの役割を問う問題。 解説内で「条件付き分岐命令の実行のため、演算結果の状態を保持する」がフラグレジスタの説明と区別される文脈で言及。

📝 IPA試験での出題パターン

パターン1:「制御機構か演算機構かを分類させる」
プロセッサの構成要素をリストアップし、制御機構に該当するものを選ばせる形式。アキュムレータは演算機構側なので不正解。正解は「命令デコーダ」。ひっかけとして「メモリアドレスレジスタ」も演算機構側であることを覚えておくと安全。

 

パターン2:「レジスタの役割を選ばせる」
各レジスタの説明文を並べ、特定のレジスタに該当するものを選ぶ形式。アキュムレータの説明文は「演算結果を一時保持」。これをプログラムカウンタや命令レジスタの説明と混同しないことがカギ。

 

試験ではここまででOKです。アキュムレータ方式とスタック方式といったアーキテクチャの分類まで深追いする必要はありません。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. CPUの内部構成において、アキュムレータの役割として最も適切なものはどれでしょうか?

  • A. 次に実行すべき命令が格納されている主記憶上のアドレスを保持する。
  • B. メモリから読み出した命令を一時的に保持し、命令デコーダへ引き渡す。
  • C. 演算装置(ALU)が実行した演算の結果を一時的に保持し、次の演算に引き渡す。

正解と解説を見る

正解:C

解説:
アキュムレータは、ALUによる演算結果を一時的に蓄えて次の計算にそのまま使えるようにする専用レジスタです。

選択肢Aはプログラムカウンタの説明です。プログラムカウンタは命令のアドレスを管理するものであり、演算結果とは関係がありません。選択肢Bは命令レジスタの説明です。命令レジスタはメモリからフェッチした命令を保持する制御装置側のレジスタであり、演算データを扱うアキュムレータとは役割が異なります。


よくある質問(FAQ)

Q. アキュムレータと汎用レジスタは何が違いますか?

アキュムレータは「演算結果の保持」に特化した専用レジスタです。一方、汎用レジスタは名前の通り、データの一時保持、アドレス計算、関数の引数受け渡しなど多目的に使えます。古いCPU(初期のマイコンなど)ではアキュムレータが1つだけ存在し、すべての演算がこのレジスタを経由する「アキュムレータ方式」が主流でした。現代のCPUでは汎用レジスタが多数搭載され、アキュムレータ専用のレジスタを持たない設計が一般的です。

Q. フラグレジスタとアキュムレータの違いを一言で言うと?

アキュムレータが保持するのは「演算結果の数値そのもの」です。フラグレジスタが保持するのは「演算結果の状態(ゼロかどうか、桁あふれが起きたか、結果が負かなど)」です。つまり、アキュムレータが「答え」を持ち、フラグレジスタが「答えの性質」を持つ、という関係です。条件分岐命令はフラグレジスタの値を参照して分岐先を決定します。

Q. 実務やプログラミングでアキュムレータを意識する場面はありますか?

高水準言語(Java、Pythonなど)で開発する場合、アキュムレータを直接意識することはほぼありません。ただし、アセンブリ言語やCASL IIの学習では「ACC(アキュムレータ)に値をロードして演算する」という命令の流れを追う場面があります。また、組み込みシステムの開発で古い8ビットマイコン(Intel 8080やZ80など)を扱う場合は、アキュムレータを中心とした命令セットで記述するため、実務レベルで理解が必要になります。

Q. IPAシラバスでのアキュムレータの位置づけは?

IPAの「情報処理技術者試験 シラバス(レベル1~3)用語例集」において、アキュムレータは「プロセッサ」の分野の用語例として掲載されています。同じカテゴリにある補数器・乗算器・積和演算器・命令アドレスレジスタなどと並んで、CPUの内部構成を理解するための基礎用語に位置づけられています。