概要
CPU(Central Processing Unit)は、コンピュータの「脳」にあたる部品です。 メモリにある命令を取り出し、解読し、実行する、という流れを何億回も繰り返しています。 Apple のM2チップなども、このCPUの一種です。
命令はメモリの中にあり、CPUが取りに行く
下のデモでは、メモリの「枠の中」に命令があり、CPUがそこに取りに行く様子が一目でわかります。 ボタンで「次の命令を取りにいく」を押して、関係を体験してみよう。
メモリとCPUの関係
「命令1」を取りにいった
CPUは何をしている?(脳と体のイメージ)
コンピュータの仕組みは、「人の脳と体」に置き換えると理解しやすい。
CPU=脳。「考える」「判断する」「命令を実行する」ことを担う。SSD(やハードディスク)=体の中の倉庫。長期に覚えておく場所で、電源を切っても消えない。メモリ=今使う手元の机。「今考えている」ことだけ置いておく。電源を切ると消える。
まず「プログラム」「ハードディスク」「メモリ」が何かをおさえておくと、CPUの役割がわかりやすくなります。
プログラムは、「やることを書いた設計図」です。ゲームを動かす・文字を表示する・計算するなど、コンピュータにさせたいことを順番に書いたものです。
ハードディスク(やSSD)は、「体の中の倉庫」です。電源を切っても消えません。ゲームのデータ・アプリ・写真……まだ「使っていない」状態のプログラムが、ここに置いてあります。
メモリは、「今使うものを置く手元の机」です。電源を切ると消えます。CPUのすぐ近くにあります。プログラムは、ハードディスク → メモリにコピーされてから使われます。
ではCPUは? CPUは「脳」のようなものです。メモリにある命令を、1つ取りに行く → 実行する → また次を取りに行く、を繰り返します。CPUはハードディスクには直接行きません。必ずメモリから命令を取り出して実行します。
例えば Apple のM2チップ を搭載したMacBook Airにおいて、アプリを起動したときの流れは以下のようになっている。下のデモで「次へ」を押して体験してみよう。
脳と体のイメージ(M2チップの場合)
SSD(体の倉庫)
アプリのデータが長期に保存されている
メモリ(手元の机)
SSDからコピーされ、今使う分だけ置かれる
M2チップ(脳)
メモリから命令を取り出し実行する
アプリ起動前。まず「次へ」を押してみよう。
CPUの3ステップ:取り出し → 解読 → 実行
命令はメモリ(RAM)に置かれている。プログラムは起動時にハードディスク/SSDからメモリに読み込まれる。CPUは、そのメモリ上の命令を1本ずつ次のように処理する。
- Fetch(取り出し):メモリから「次に実行する命令」を1本取り出す。
- Decode(解読):取り出した命令が「何をさせる命令か」を解釈する。
- Execute(実行):解読した内容に従って計算したり、メモリや入出力にアクセスしたりする。
この一連の流れを、下のデモで「今どの段階か」を追いながら確認してみよう。
命令の流れを体験
メモリから「次に実行する命令」を1本取り出す
取り出した命令が「何をさせる命令か」を解釈する
解読した内容に従って計算したり、メモリにアクセスしたりする
タイミングを決める:クロック
クロックは、CPUが「次に進んでいいよ」と合図するリズムです。 プログラムは「何を」するかを決め、クロックは「いつ」進めるかを決めます。 クロック周波数(例:3GHz)が高いほど、1秒間に刻まれる回数は増えます。
同時に考えられる人数:コア
コアは、CPUのなかで「考えて実行する人」が何人分いるか、というイメージです。 1人で考える(シングルコア)、2人で考える(デュアルコア)、4人で考える(クアッドコア)などがあり、コアが多いほど複数の処理を同時に進められます。
すぐ取り出せる引き出し:キャッシュ
キャッシュは、メモリよりさらにCPUに近いところにある「引き出し」です。 よく使うデータや命令のコピーをここに置いておくので、毎回メモリまで探しに行かなくてすみ、速く動きます。
CPUの性能を決める3つの指標
CPUの「速さ」は、以下の3つで判断できる。
- クロック周波数(GHz):1秒間に「取り出し→解読→実行」のサイクルが何回回るか。高いほど単純な処理が速い。
- 1秒間に実行できる命令数:実際に何本の命令をこなせるか。クロック周波数だけでなく、命令の効率にも左右される。
- MIPSスコア:「1秒間に実行できる命令数」を百万単位で表した数字。基本情報技術者試験でも計算問題として出る。
この数字、いつ気にすればいいの?クロック周波数が高いと単純な処理が速くなりやすい。一方、低くてもキャッシュが効いていると体感は速い場合があります。スマホとPCでは省電力と性能のバランスが違うので、同じ数字でも「速い」の意味合いは変わります。
※ 次の「MIPS計算デモ」は、数字や式が少し難しめです。計算が苦手な人は飛ばして、次の「全体のイメージのまとめ」へ進んで大丈夫です。
- MIPS = クロック周波数 ÷ 平均命令実行クロック数
- 例:1GHz、1命令あたり平均8クロックなら、MIPS = 1,000,000,000 ÷ 8 = 125MIPS
下のデモで、クロック周波数と「命令ごとのクロック数・出現率」を変えると、平均クロック数とMIPSがどう変わるか確認できます。
MIPS計算デモ
命令Bの出現率は 40%(100 − 命令Aの出現率)として計算しています。
計算結果
平均クロック数 = 10×60% + 5×40% = 8 クロック/命令
MIPS = 1×1,000 ÷ 8.0 = 125 MIPS
1秒間に約 125百万 命令実行できるイメージです。
全体のイメージのまとめ
CPUは「メモリに並んだ命令」を、クロックに合わせて取り出し(Fetch)→ 解読(Decode)→ 実行(Execute)する。 この流れを、何コアかで並列に、キャッシュでメモリの遅さを補いながら繰り返している。クロックが活きるのは、キャッシュが効いているときだという感覚を持っておくとよい。