ホーム第2章: 論理回路からCPUへ
第2章 5節

CPUの設計図

トランジスタから論理ゲートを作り、論理ゲートから計算回路(加算器)と記憶回路(フリップフロップ)を作りました。ついに、これらすべての部品を統合して、コンピュータの頭脳である「CPU(中央処理装置)」を設計する準備が整いました。無数の単純なスイッチが、どのようにして有機的に結合し、自律的にプログラムを実行する巨大なシステムへと姿を変えるのか、その設計図を明らかにします。

1. CPUを構成する三大要素

CPU(Central Processing Unit:中央処理装置)は、コンピュータの「脳」に該当するLSI(大規模集積回路)です。その内部は、役割ごとに大きく次の3つのユニットに分類できます。

CPUの内部構造
  1. ALU(算術論理演算装置:Arithmetic Logic Unit):加算器などを内蔵し、実際の足し算や引き算、論理積(AND)や論理和(OR)などの「計算」を担当する実動部隊です。
  2. レジスタ(Register):フリップフロップを並べて作られた、極めて高速ですが容量の小さな「一時記憶場所」です。CPUが今まさに計算している最中のデータを保管します。
  3. 制御装置(Control Unit):メモリからプログラム(命令)を読み込み、それを解読して、ALUやレジスタに「計算せよ」「データを移動せよ」といった指示(電気信号)を出す司令塔です。

2. CPUとメモリの全体設計図

CPUは単体では動作しません。命令やデータが保存されているメモリ(主記憶装置)と、バス(Bus)と呼ばれる信号の高速道路で繋がっています。

CPU (中央処理装置) 制御装置 ALU (演算装置) レジスタ群 (PC, IR, 汎用レジスタ) メモリ (RAM) 命令 1 命令 2 データ A システムバス
図 2-8:CPUとメモリを繋ぐ簡略化システム構成図

3. 重要な特殊レジスタたち

CPU内のレジスタにはいくつかの種類がありますが、特に重要なのが以下の2つです。

  • プログラムカウンタ(PC:Program Counter):次にメモリのどのアドレスから命令を読み出すべきか、その「番地」を指し示し続けるレジスタです。1つ命令が実行されると、自動的に値が 1 増えて次の命令を指します。
  • 命令レジスタ(IR:Instruction Register):メモリから読み出した「現在実行中の命令」を一時的にコピーして保管しておくレジスタです。

4. 命令実行の3ステップ・ライフサイクル

CPUは、クロック信号が刻むメトロノームのリズムに合わせて、以下の3つの手順をただひたすらに、無限に繰り返しています。

1. フェッチ (命令の読み出し) 2. デコード (命令の解読) 3. 実行 (演算・データ転送)
図 2-9:CPUの命令実行サイクル

① 命令フェッチ(Fetch:取り出し)

プログラムカウンタ(PC)が指し示しているメモリの番地から、次の「命令」を読み出します。読み出された命令は、CPUの「命令レジスタ(IR)」に格納されます。取り込みが終わると、PCの値は自動的に次のアドレスに進みます。

② 命令デコード(Decode:解読)

制御装置が、命令レジスタ(IR)に格納された命令(単なる0と1の数字パターン)を読み解きます。例えば「0010 は足し算命令、それに続く 0110 はレジスタの番号である」といったルールに従い、ALUに対して「足し算せよ」という電気的な制御信号を送ります。

③ 実行(Execute)

ALUが制御信号を受け取り、指定されたレジスタから値を読み出して実際の加算を行い、その結果を別のレジスタへ書き戻します。これで1つの命令の実行が完了し、CPUは再び最初の「フェッチ」に戻り、次の命令を取り込みます。

5. コンピュータの自律性の本質

このフェッチ・デコード・実行のサイクルに、人間の介入は一切ありません。 メモリにプログラム(命令の羅列)をロードし、クロックの電気振動をONにした瞬間から、CPUはプログラムカウンタの指すままに、一秒間に数十億回というサイクルを自律的に高速で回り続けます。

これが、現代のあらゆるコンピュータシステムを支える「自動計算」の正体です。

第2章を通じて、物理的なトランジスタの単純なオン・オフから、命令を実行するCPUへとシステムが抽象化されていく過程を見てきました。 次の第3章では、このCPUに指示を出すための「プログラム(ソフトウェア)」が、メモリ上にどのように配置され、どのように翻訳されて動いているのかを深く掘り下げていきます。