FE EXAM

CPUの基本構成(制御装置・演算装置・レジスタ)

制御装置・演算装置・レジスタからなるコンピュータの中央処理装置

DIAGRAM
制御装置演算装置レジスタメモリ
CPU(中央処理装置)制御装置(Control Unit)命令デコーダ:命令を解読各装置へ制御信号を送出演算装置(ALU)(Arithmetic Logic Unit)四則演算(加減乗除)論理演算(AND/OR/NOT)レジスタ群CPU内の高速な一時記憶PCプログラムカウンタ次の命令の番地IR命令レジスタ実行中の命令ACCアキュムレータ演算の結果MARアドレスレジスタアクセス先番地MDRデータレジスタ読み書きデータFLAGフラグレジスタ演算の状態制御信号データ主記憶(MEMORY)[0]命令/データ[1]命令/データ[2]命令/データ[3]命令/データバス命令フェッチ・データ転送制御信号(制御装置 → 各装置)データの流れ(双方向)
解説

📌
CPUとは

CPU制御装置指令演算装置計算レジスタ記憶3つの要素が連携してプログラムを実行

CPU(Central Processing Unit=中央処理装置)とは、コンピュータの「頭脳」にあたる部品で、メモリから命令を取り出して解読し、計算や処理を実行する装置です。プロセッサとも呼ばれ、コンピュータの性能を最も大きく左右します。

身近な例で考えると、CPUは料理を作る一人のシェフのようなものです。レシピ(プログラム)を読んで(制御装置)、材料を切ったり混ぜたり計算したりして(演算装置)、途中の食材や計量結果を手元の作業台に置いておく(レジスタ)――この3つの役割を1つの部品の中でこなしています。

上の図解のとおり、CPUは大きく制御装置演算装置(ALU)レジスタ群の3つで構成され、外部の主記憶(メモリ)とバス(bus=データの通り道)でつながっています。

📌
内部構造の要素

CPUの内部は、おもに次の3つの要素から成り立っています。
制御装置(Control Unit):命令を解読し、各装置に「いつ・何をするか」の制御信号を送る司令塔
演算装置(ALU):加算・減算などの四則演算や、AND・ORなどの論理演算を実行する計算機
レジスタ群:CPU内にある最も高速な記憶場所。処理中のデータや命令を一時的に保持する

レジスタには用途ごとに種類があり、それぞれ名前と役割が対応しています。

レジスタ名称役割
PCプログラムカウンタ次に実行する命令のメモリ番地を保持
IR命令レジスタ現在実行中の命令を保持
ACCアキュムレータ演算の対象・結果を保持
MARアドレスレジスタアクセスするメモリ番地を保持
MDRデータレジスタメモリと読み書きするデータを保持
FLAGフラグレジスタ演算結果の状態(ゼロ・桁あふれ等)を保持

レジスタはメモリよりはるかに高速ですが、その分容量はごくわずか(数十バイト程度)です。これはシェフの手元の作業台のようなもので、いま使うものだけを置く狭くて速い場所、と考えると分かりやすいです。

📌
各要素の役割

制御装置が司令塔になって連携制御装置演算装置レジスタ指令指令

3つの要素は、制御装置を中心に連携して動きます。制御装置がメモリから取り出した命令を解読し、「演算装置よ加算せよ」「レジスタよこの値を保持せよ」と制御信号で指示を出すことで、1つの命令が実行されます。

具体的な役割分担は次のとおりです。
制御装置:命令を解読し、他の装置に動作のタイミングと内容を指示する(オーケストラの指揮者)
演算装置(ALU):制御装置の指示を受け、実際に足し算・引き算・論理演算を行う(演奏する楽器奏者)
レジスタ:演算の入力値・結果や次の命令番地を一時保管し、すぐ取り出せるようにする(手元の楽譜立て)

役割を整理すると、「制御装置=命令を解読し制御信号を出す」「演算装置=計算を実行する」「レジスタ=高速な一時記憶」となります。とくに「演算は演算装置、指示は制御装置」と切り分けて理解すると混同しません。

📌
命令実行サイクル(CPUが繰り返す4ステップ)

①フェッチメモリから命令を取得②デコード命令を解読③実行ALUが計算④書き戻し結果をレジスタへ次の命令へ繰り返す

CPUはプログラムを動かすために、4つのステップを高速に繰り返す仕組みになっています。この繰り返しを命令実行サイクル(フェッチ→デコード→実行→書き戻し)と呼びます。

4ステップの内容はそれぞれ次のとおりです。
①フェッチ(Fetch):プログラムカウンタ(PC)が示すメモリの番地から、次に実行する命令を取り出す
②デコード(Decode):取り出した命令を制御装置が解読し、「何をすればよいか」を理解する
③実行(Execute):解読した内容にしたがって演算装置が計算を行う
④書き戻し(Write-back):計算した結果をレジスタやメモリに保存する

なぜこのサイクルが大切かというと、すべてのプログラムの動作はこの4ステップの繰り返しで成り立っているからです。現代のCPUは1秒間に何億・何十億回とこのサイクルをこなしています。プログラムを「レシピ」に例えると、フェッチは「1行読む」、デコードは「意味を理解する」、実行は「実際に調理する」、書き戻しは「できた料理を皿に盛る」イメージです。

📌
CPUの性能を決める要素

クロック周波数1秒あたりの刻み回数 [Hz]コア数CPU1CPU2CPU3CPU4

CPUの処理速度は、大きく2つの要素で決まります。
クロック周波数(=CPUが1秒間に刻む「拍子」の回数):Hz(ヘルツ)という単位で表し、値が高いほど1秒あたりに実行できる命令が多くなる
コア数:CPUの中に独立した処理回路(コア)がいくつあるか。コアが複数あると、別々の仕事を同時にこなせる(並列処理)

なぜクロック周波数が重要かというと、命令実行サイクルのすべてのステップがクロックの刻みに合わせて動くからです。1 GHz(=10億 Hz)のCPUは、1秒間に最大10億回のクロックを刻みます。クロック周波数を2倍にすれば、理論上の処理速度も2倍になります。

身近な例でいうと、クロック周波数は作業者の手の速さコア数は作業者の人数に相当します。速い手の人が1人(高クロック・1コア)でも、普通の速さの人が4人(並列・4コア)でも、それぞれ得意な仕事があります。現代のCPUは両方を組み合わせ、高クロック+多コアで高性能を実現しています。

関連コンテンツ