CPUとキャッシュメモリ 〜1秒に30億回指示書をめくる鬼バイトと、胸ポケットの付箋〜
1. 素朴な疑問:「CPU=頭脳」って、中で何を考えているの?
パソコンやスマホのカタログを開くと、必ず「Core i7」「Ryzen」「3.2GHz」「8コア」といった謎の呪文が並んでいます。 店員さんに聞くと、決まって**「CPUはパソコンの頭脳ですから、ここが良いと頭の回転が速いですよ」**と説明されます。
しかし、ここに初心者をつまずかせる最大の誤解があります。 CPUは、アインシュタインのように「深く物事を考えている」わけではありません。 むしろ中身は、「右の箱の数字と左の箱の数字を足せ」「この数字をあっちの箱に動かせ」という、小学生でもできる単純作業しかできない機械です。
では、なぜそんな単純作業しかできない部品が、リアルタイムで3Dゲームを動かし、動画を編集できるのでしょうか? 理由はたった1つ、**「人間の想像を絶するスピードで、その単純作業をこなしているから」**です。
2. 概念の芯:1秒に30億回ハンコを押す「超高速の鬼バイト」
第1話で、コンピュータの中身をオフィスに例えました。
- CPU = 机の前に座る**「作業員(あなた)」**
- メモリ = 目の前の**「作業机」**
- ストレージ = 部屋の奥にある**「書類棚」**
この作業員(CPU)がやっている仕事は、驚くほど機械的で、たった3つの動作の繰り返しです。
- 取り出し(Fetch):机(メモリ)の上に並んでいる指示書(プログラム)から、次の1行を手に取る。
- 解読(Decode):「えーと、『Aに1を足せ』だな」と指示の意味を理解する。
- 実行(Execute):電卓を叩いて計算し、結果を机に置く。
「3.2GHz(ギガヘルツ)」とは何の数字なのか?
カタログにある「3.2GHz」という数字は、この作業員の手元で鳴っている**「メトロノーム(クロック)のテンポ」**です。
- 1Hz(ヘルツ) = 1秒間に「カチッ」と1回鳴る。
- 1GHz(ギガヘルツ) = 1秒間に「カチッ」と10億回鳴る。
- 3.2GHz = 1秒間に32億回鳴る!
つまりCPUとは、賢い学者などではなく、**「1秒間に32億回鳴り響く狂気のメトロノームに合わせて、1拍ごとに指示書をめくってハンコを押し続けている超人的な鬼バイト」**なのです。 どんなに難しいプログラムも、32億分割された超単純な計算の連続として猛スピードで片付けているから、あたかも「賢い頭脳」のように見えています。
3. 本題:作業机(メモリ)すら「遅すぎて待てない」CPUのイライラ
ここで、第1話の話を思い出してください。 第1話では、「メモリは電気で記録するから、書類棚(SSD)に比べて1,000倍も速い超高速な作業机だ」と説明しました。
ところが、1秒間に30億回も動くCPUの視点に立つと、まったく別の地獄が見えてきます。 なんと、**CPUから見ると、あの超高速なはずのメモリ(机)すら「遅すぎてイライラする存在」**なのです。
時間の感覚を「人間のスケール」に引き伸ばしてみる
CPUの1回の拍手(1クロック=約0.3ナノ秒)を、人間の感覚の**「1秒」**に引き伸ばしてみましょう。
| 部品 | 実際のアクセス時間 | 人間の感覚に引き伸ばすと…(CPUが感じる体感時間) |
|---|---|---|
| CPUの計算(レジスタ) | 約0.3ナノ秒 | 「1秒」(手元でペンを走らせる一瞬) |
| 作業机(メインメモリ) | 約30ナノ秒 | 「約1分40秒」の待ちぼうけ! |
| 書類棚(SSDストレージ) | 約30マイクロ秒 | 「約1日以上」部屋の外で待たされる! |
CPUが手元の計算を1秒で終わらせて「よし、次の指示書をくれ!」と机(メモリ)に手を伸ばしても、データが届くまでに体感で1分40秒も待たされます。 1秒に30億回動ける人間が、次の指示書が来るたびに1分以上も腕組みをしてぼーっと待っている……。これは猛烈な時間の無駄です。
触って試す:待ち時間の体感演習
⏱️ アクセス時間の体感演習
読み出し先のボタンを押すと、CPUがどれだけ待たされるかを「実時間」と「人間のスケールに引き伸ばした体感時間」で表示します。速い順は レジスタ > L1キャッシュ > メモリ > SSD です。
まずはボタンを押してみてください。
解決策:胸ポケットの付箋「キャッシュメモリ」
この「机まで手を伸ばす時間すら惜しい」という極限のワガママを解決するために作られたのが、**「キャッシュメモリ(SRAM)」**です。
技術者たちは、CPUのチップ(作業員の体)の中に、ごくわずかな容量だけ**「超ウルトラ高速なメモ用紙」を直接埋め込みました。作業員の服に例えるなら、「胸ポケットに入れた付箋」**です。
- 作業机(メモリ)から書類を持ってくるとき、「どうせ次もこのあたりのページを使うだろう」という数行分を先回りして胸ポケット(キャッシュ)にコピーしておく。
- 次の計算をするとき、CPUは机を見ずに、まず胸ポケットを探す。
- ポケットにデータがあれば(キャッシュヒット)、机まで行かずに0.001秒で作業を続ける。
現在のパソコンは、このキャッシュが優秀なおかげで、作業の約90〜95%は胸ポケット(キャッシュ)の中だけで完結しています。机(メモリ)まで書類を取りに行く回数を極限まで減らしているからこそ、CPUはその狂気じみたスピードを維持できているのです。
4. なぜ今は「8コア」「16スレッド」と人数を増やすのか?
最後に、カタログによく書いてある「コア数」の謎を解いておきましょう。
「1秒間に30億回(3GHz)動けるなら、メトロノームをもっと速くして、1秒間に100億回(10GHz)にすればもっと速くなるのでは?」と思いますよね。 実は、2000年代半ばに世界中のエンジニアがそれに挑戦して、物理の壁にぶち当たりました。
メトロノームの針をこれ以上速く振ると、CPUがすさまじい摩擦熱を発して、文字通り「フライパンのように目玉焼きが焼ける温度」になってチップが溶けてしまうのです。これを「熱の壁(消費電力の限界)」と呼びます。
そこで人類は、発想を切り替えました。 「1人の足の速さを上げるのはもう限界だ。これからは、作業員(コア)の『人数』を増やそう!」
- シングルコア = 足の速い作業員が**「1人」**
- 8コア(マルチコア) = 1つのチップの中に、作業員が**「8人」**同居している!
1人で「動画の再生」も「裏でのダウンロード」も「LINEの通知」もこなそうとするとパンクしますが、8人の作業員がいれば「お前は動画、お前は通信、お前はウイルススキャン」と仕事を分担できます。 パソコンのカタログに書いてある「8コア」とは、熱で溶けないギリギリの速度で動く鬼バイトが、1つの部屋に8人並んで座っている状態のことだったのです。
📝 3行で頭に入る「試験・実務の要点まとめ」
- CPUの命令実行サイクル:「命令の取り出し(フェッチ)→ 命令の解読(デコード)→ 実行」を繰り返す。そのテンポを刻む信号の速さがクロック周波数(GHz)。
- 記憶のピラミッド(速度差):CPU内部のレジスタ > キャッシュメモリ(SRAM) > 主記憶(DRAM/メモリ) > 補助記憶(SSD/HDD) の順に速く、高価で、容量が小さい。
- キャッシュメモリの役割:CPUと低速な主記憶(メモリ)の速度差を埋めるため、直近で使うデータを一時保存する超高速メモリ。データが見つかる確率をキャッシュヒット率と呼ぶ。