CPUとコンピュータの構成をやさしく図解 — 五大装置・命令実行・パイプライン
「CPUって結局なにをしているの?」「クロック周波数が高いと速いのはなぜ?」——コンピュータは5つの装置が役割分担して動いています。この記事では、五大装置の関係から、CPU内部のしくみ、命令が実行される手順、クロック、パイプラインまでを図解します。CPUの中で計算を担う論理回路は 論理回路シミュレータ で触れられます。
コンピュータの五大装置
コンピュータは、次の5つの装置(五大装置)で構成されます。それぞれが役割を分担し、データと制御の信号をやり取りしながら動きます。
| 装置 | 役割 | 例 |
|---|---|---|
| 制御装置 | 命令を解読し、各装置に指示を出す(司令塔) | CPU内 |
| 演算装置 | 四則演算・比較・論理演算を行う | CPU内(ALU) |
| 記憶装置 | データや命令を記憶する | メモリ・ストレージ |
| 入力装置 | データを取り込む | キーボード・マウス |
| 出力装置 | 結果を外に出す | ディスプレイ・プリンタ |
このうち制御装置と演算装置を合わせたものが CPU(中央処理装置)です。CPUがコンピュータの「頭脳」と呼ばれるのはこのためです。
CPUの中身 — レジスタとALU
CPUの内部には、ごく小容量 but 超高速の記憶場所レジスタがあります。計算対象の値や、次に実行する命令の位置などを一時的に置く場所です。代表的なものに、プログラムカウンタ(次の命令のアドレスを保持)、命令レジスタ(実行中の命令を保持)、演算対象を置くアキュムレータなどがあります。実際の計算はALU(算術論理演算装置)が行い、その中身は 論理演算 のAND・OR・XORなどの論理回路でできています。
命令が実行される手順(命令サイクル)
CPUは、1つの命令を次の手順で処理し、これを高速に繰り返します。この1周を命令サイクルと呼びます。
クロックと処理速度
CPUはクロックという一定の拍子(チクタク)に合わせて動作します。1秒間の拍数がクロック周波数で、単位はHz(3GHzなら1秒間に約30億回)。周波数が高いほど1秒あたりの処理ステップが増えます。ただし、1命令に必要なクロック数(CPI:Cycles Per Instruction)もあるため、実際の速さは「周波数 ÷ CPI」で効いてきます。「クロックが2倍でも、1命令に必要なクロックが2倍なら差し引きゼロ」というわけです。
1クロックの時間は周波数の逆数です。例:クロック周波数が 2GHz なら、1クロック= 1 ÷ (2×10⁹) 秒 = 0.5ナノ秒。この手の計算は試験で頻出です。
パイプライン処理 — 命令を重ねて流す
命令サイクルを「1つ終わってから次」ではなく、各段階を少しずつずらして同時並行で流すのがパイプラインです。工場のベルトコンベアで、ある製品を塗装している間に次の製品を組み立てるイメージ。全体のスループット(単位時間の処理数)が大きく向上します。
ただし、条件分岐で「次にどの命令を流すか」が確定しないと、先読みが無駄になり流れが乱れます(分岐ハザード)。これを緩和する分岐予測などの工夫もあります。
🔌 CPUの計算を支える論理回路を触るなら:演算装置(ALU)の中身であるAND・OR・XORゲートや、足し算を行う半加算器の動きは、論理回路シミュレータで入力0/1をクリックしながら確かめられます。数の表し方は 2進数と基数変換 もどうぞ。
基本情報技術者試験ではこう出る
「五大装置の役割」「制御装置と演算装置=CPU」「命令実行の順序(フェッチ→デコード→実行)」「クロック周波数から1クロックの時間を求める」「CPIから処理時間を計算」「パイプラインの効果とハザード」が定番です。とくに1クロック=1÷周波数、命令の処理時間=命令数 × CPI × クロック周期の計算は押さえましょう。記憶の階層(レジスタ→キャッシュ→メモリ)は 記憶階層とキャッシュメモリ で詳しく扱います。
よくある質問
Q. ノイマン型コンピュータとは?
A. プログラム(命令)もデータと同じようにメモリに記憶し、順に取り出して実行する方式で、現在のコンピュータの基本です(プログラム内蔵方式)。命令とデータが同じメモリにあるため、プログラムを差し替えるだけで別の処理ができます。
Q. コア数とクロック、どちらが速さに効く?
A. 両方効きますが役割が違います。クロックは1つの処理を速くする方向、コア数は複数の処理を同時に走らせる方向です。並列化できる処理はコアが多いほど速く、逐次的な処理はクロックが効きます。近年はクロックを上げにくいため、コアを増やす方向(マルチコア)が主流です。
Q. 32ビットCPU・64ビットCPUの「ビット」とは?
A. CPUが一度に扱えるデータの幅(レジスタやデータバスの幅)の目安です。64ビットなら一度に扱える数の範囲が広く、扱えるメモリ量も大きくなります。ビットの基礎は 2進数 の理解と直結します。
まとめ
コンピュータは五大装置(制御・演算・記憶・入力・出力)で構成され、制御装置+演算装置=CPU。CPUはフェッチ→デコード→実行の命令サイクルを、クロックに合わせて高速に繰り返し、パイプラインで命令を重ねて効率を上げます。計算問題(1クロックの時間・処理時間)とセットで押さえておきましょう。
関連ページ: 記憶階層とキャッシュメモリ / 論理回路シミュレータ / 2進数と基数変換 / 記事一覧