パソコンの性能を語るときに必ず登場する「キャッシュメモリ」。CPUのスペック表を眺めていると、L1キャッシュ・L2キャッシュ・L3キャッシュという表記が並んでいて、なんとなく重要そうな響きはするものの、「そもそもキャッシュメモリってどこにあるの?」と聞かれると、意外に答えに詰まる方も多いのではないでしょうか。
筆者も自作PCを組み始めたころは「メインメモリと何が違うのか」「物理的にどこに搭載されているのか」がいまいち腑に落ちず、ずいぶんと遠回りをした記憶があります。実はキャッシュメモリの「場所」さえ正しくイメージできれば、CPUの仕組みが拍子抜けするほどスッキリと理解できるようになります。
この記事では、キャッシュメモリがどこに配置されているのかという素朴な疑問を出発点に、L1・L2・L3の階層構造、メインメモリとの違い、そして自分のパソコンでキャッシュ容量を確認する具体的な方法まで、丁寧に整理して解説します。読み終えるころには、CPUのスペック表を眺めるのが少し楽しくなるはずです。

スマホやタブレット、ゲーム機などの修理費に備なえた「モバイル保険」
月額700円で最大3台まで補償でき、1台あたり約234円なので、携帯キャリアの補償やAppleCareよりも圧倒的に安く済みます。
年間最大10万円まで修理費をカバーでき、機種変更後も登録機器を変更すれば継続可能!
毎月の高額な保険代に悩んでいる人やモバイル保険に入ろうか悩んでいる人におすすめです。
\ Google Pixelの正規サービスプロバイダも参加 /
キャッシュメモリはどこにある?結論は「CPUの中」
結論から先にお伝えすると、現代のキャッシュメモリはCPUの内部に組み込まれています。より厳密に言うと、CPUという一枚のシリコンチップの上に、演算回路と並んでキャッシュメモリ用の回路が一緒に焼き込まれているという表現が近いです。
「内部」と聞くとマザーボードの中のどこか、というイメージを持つ方もいるかもしれませんが、そういう意味ではありません。CPUを物理的に分解してチップの中を覗くと、コア(演算ユニット)の周りにキャッシュ専用のエリアが確保されており、そこにL1・L2・L3と呼ばれる複数階層のメモリが詰め込まれている、という構造になっています。
昔は外付け、今はCPU内蔵が当たり前
少し古い世代のパソコンを触ったことがある方は、「キャッシュメモリってマザーボード上のチップじゃなかったっけ?」と感じるかもしれません。実際、1990年代までのパソコンでは、キャッシュメモリはCPUチップの外側、マザーボード上に独立した部品として搭載されていることがほとんどでした。当時のスペック表に「外部キャッシュ256KB搭載」といった記載が並んでいたのを覚えている方もいるのではないでしょうか。
しかし半導体の微細化技術が進み、より多くのトランジスタを1つのチップに詰め込めるようになると、キャッシュメモリはCPUと同じシリコンの上に統合されるようになりました。配線距離が短いほど信号の往復は速く、消費電力も抑えられるため、CPU内蔵化はパソコンの性能向上に大きく貢献しています。
つまり「キャッシュはどこにある?」という問いに対する現代的な答えは、迷わず「CPUのダイ(半導体チップ)の上」と言ってよいのです。ノートパソコンであれデスクトップであれ、スマートフォンであれゲーム機であれ、CPUを搭載しているデバイスには必ずキャッシュメモリも同居していると考えて差し支えありません。意外と知られていないことですが、最新のCPUではダイ面積のうち実に3〜4割をキャッシュ用回路が占めているケースもあり、現代のプロセッサは「演算の塊」というより「メモリの塊」という側面のほうが強くなりつつあるのです。

\ Google Pixelの正規サービスプロバイダも参加 /

L1・L2・L3キャッシュはCPUの中のどこに置かれているのか
キャッシュメモリは1種類だけではなく、CPU内部でも階層ごとに異なる場所に配置されています。よく耳にするL1・L2・L3という呼び方は、CPUコアに近い順に1番・2番・3番と番号を振ったもので、それぞれ役割と物理的な位置がはっきり分かれているのが特徴です。
L1キャッシュ|CPUコアに最も密着した最速エリア
L1キャッシュはCPUコアの内部、それも演算ユニットのすぐ隣に配置されています。距離が極端に短いため、アクセス速度は数クロック(数ナノ秒以下)と非常に高速で、CPUが「いま使いたいデータ」を瞬時に取り出せる場所として機能します。
容量は一般的に1コアあたり数十KB程度と小さく、典型的には命令用とデータ用に分かれた「分離キャッシュ」の構成が取られています。マルチコアCPUでは各コアが自分専用のL1キャッシュを持っているため、コア同士でデータを取り合うこともありません。たとえば命令キャッシュ32KB、データキャッシュ32KBで合計64KBという構成が長らく定番でしたが、最近の高性能CPUではこれが2倍近くまで拡張されてきています。
L1キャッシュの容量がなぜここまで小さいかというと、容量を増やすほど物理的な配線が長くなり、アクセス速度が落ちてしまうからです。L1は「とにかく速いこと」が至上命題なので、容量よりもスピードを優先した設計になっており、ここがCPUの体感性能を左右する心臓部だと考えてよいでしょう。
L2キャッシュ|各コアに付属する中規模の倉庫
L2キャッシュはL1キャッシュの少し外側、それでもまだコアの近くに置かれた階層です。アクセス速度はL1より少し遅くなりますが、その代わりに容量は256KB〜1MB程度と大きくなり、L1で取りこぼしたデータを補完する役割を果たします。
多くのCPUではL2もコアごとに専用で持つ設計が採られていますが、製品によっては複数コアで共有するタイプもあります。筆者の手元のノートPCでは、6コアCPUに対して各コア1.25MBずつのL2キャッシュが割り当てられており、まさに「コア専用の中規模倉庫」というイメージがしっくりきます。
L3キャッシュ|全コアで共有する最終防衛ライン
L3キャッシュはCPUダイの中でも、各コアの外側にある共有エリアに配置されます。L1・L2が各コアの「個人ロッカー」だとすれば、L3は社員全員で使う「共用倉庫」のような存在です。
容量は数MBから数十MBと大きく、最新のデスクトップ向けCPUでは64MBや96MBといった大容量を備えるモデルも増えてきました。アクセス速度はL1・L2より遅いものの、それでもメインメモリと比べれば桁違いに高速で、コア間でデータを共有したいときの最終防衛ラインとして重要な役割を担っています。

\ Google Pixelの正規サービスプロバイダも参加 /
なぜキャッシュメモリはCPUのすぐそばに置かれているのか
「速いメモリを使えばいい」というだけなら、メインメモリをすべてSRAMにしてしまえばよいはずです。ところが現実のパソコンは、わざわざキャッシュという小さな高速メモリをCPUの近くに置き、その外側に大容量のメインメモリを配置するという回りくどい設計を採用しています。これはなぜでしょうか。
理由はシンプルで、距離と速度のトレードオフです。電気信号は光速に近いとはいえ、CPU内部のクロック周波数が数GHzにもなると、1クロックの間に進める距離はたった数センチ程度しかありません。CPUコアから数十センチ離れたメインメモリにアクセスしようとすれば、その往復だけで何百クロックも消費してしまい、せっかくの演算性能が活かしきれないのです。
そこで、頻繁に使うデータだけはCPUのすぐ隣に置いておき、まずそこをのぞきに行く、という発想が生まれました。これがキャッシュメモリの本質です。CPUからの物理的な距離が近ければ近いほど、信号の往復に必要な時間が短くなり、結果として処理全体のスピードが上がります。L1がコアの中、L2がコアの脇、L3が全コアの外側、という配置はこの「距離の経済学」をそのまま反映したものなのです。
もう少し具体的な数字で見てみると、L1キャッシュへのアクセスはおおむね1〜4クロック、L2は10〜20クロック、L3は30〜70クロック程度で済むのに対し、メインメモリにアクセスすると100〜300クロックもかかると言われています。クロック数が1桁から3桁まで一気に跳ね上がるわけですから、いかにキャッシュをうまく使えるかがCPU性能を引き出すカギになっているか、お分かりいただけるのではないでしょうか。筆者は最初にこの数字を見たとき、「キャッシュを軽んじてはいけない」と素直に納得した記憶があります。

\ Google Pixelの正規サービスプロバイダも参加 /

キャッシュメモリとメインメモリは何が違うのか
キャッシュメモリと混同されやすいのが、いわゆるメインメモリ(DRAM)です。どちらも「データを一時的に置いておく場所」ですが、その役割と性質はかなり違います。両者の違いを整理すると、CPUとメモリの関係がぐっと立体的に見えてきます。
素材から違う|SRAMとDRAM
キャッシュメモリの中身はほぼすべてSRAM(Static RAM)と呼ばれる記憶素子で作られています。SRAMはトランジスタを4〜6個使って1ビットを保持する仕組みで、電源さえ流れていればデータが消えず、リフレッシュ動作も不要なため非常に高速です。
一方、メインメモリに使われているDRAM(Dynamic RAM)は、1ビットあたりトランジスタ1個とコンデンサ1個で構成されています。回路は単純で大容量化しやすい反面、コンデンサに溜めた電荷が時間とともに抜けていくため、定期的なリフレッシュが必要で、その分アクセス速度はSRAMに劣ります。
容量と価格、そして役割の違い
SRAMは速い代わりに、1ビットあたりに必要なトランジスタが多く、回路面積も大きくなりがちです。そのため容量あたりの単価は非常に高く、ギガバイト単位で搭載するのは現実的ではありません。これがキャッシュメモリの容量がMB単位にとどまる理由でもあります。
逆にDRAMは安価で大容量化が容易なため、16GBや32GBといった現代のメインメモリを構成するのに向いています。つまりキャッシュ(SRAM)とメインメモリ(DRAM)は競合関係ではなく、速さと量を分担する役割分担の関係なのです。CPU内蔵のキャッシュで瞬発力を稼ぎ、外部のメインメモリで容量を稼ぐ、という二段構えだと理解するとスッキリします。

\ Google Pixelの正規サービスプロバイダも参加 /
キャッシュメモリの仕組み|データはどう流れているのか
場所と役割がわかったところで、実際にデータがどう動いているのかを追ってみましょう。CPUが何らかの処理を行うとき、必要なデータを取りに行く順番は、おおまかに次のようになっています。
- CPUコアがまずL1キャッシュを探す
- L1にデータがなければL2キャッシュを探す
- L2にもなければL3キャッシュを探す
- L3にもなければメインメモリ(DRAM)まで取りに行く
- 取得したデータは、戻り道にL3・L2・L1へ順に書き込まれていく
キャッシュに目的のデータが入っていることを「キャッシュヒット」、入っていない状態を「キャッシュミス」と呼びます。プログラムの性能を語るとき「ヒット率」という指標がよく登場しますが、これはL1〜L3のどこかで目的のデータが見つかる割合のことです。ヒット率が高いほど、CPUは遠いメインメモリまで足を運ぶ必要が減り、結果として体感速度が大きく改善します。
なぜキャッシュにデータがある確率が高いのか
「そんなに小さなキャッシュで本当に間に合うの?」と疑問を持つ方もいるでしょう。実はこれ、プログラムが持つ局所性という性質に支えられています。プログラムは同じデータや、すぐ近くのメモリ領域を繰り返し使う傾向が強く、いったんキャッシュに載せたデータは短時間のうちに何度も再利用されることが多いのです。
この性質のおかげで、わずか数MBのキャッシュでも体感的には大きな効果を発揮します。実際、最新のCPUでもL1キャッシュのヒット率は90%を大きく超えることが珍しくなく、メインメモリまで取りに行く回数は意外なほど少なく抑えられています。
言い換えると、プログラムは「次に欲しいデータは、いま使ったデータのすぐ近くにある可能性が高い」という前提のもとに動いていて、CPUとキャッシュはその前提をうまく利用しているわけです。逆に、巨大な配列をランダムにアクセスするような処理ではキャッシュミスが多発し、CPUがどれだけ高速でもメインメモリ待ちで足踏みしてしまいます。プログラマがアルゴリズムを書くときに「メモリアクセスのパターン」を意識する場面が増えているのも、こうしたキャッシュの仕組みが背景にあるからです。

\ Google Pixelの正規サービスプロバイダも参加 /

自分のパソコンのキャッシュメモリを確認する方法
ここまでの話を踏まえて、「自分のパソコンのキャッシュメモリは実際にどのくらいあるのだろう?」と気になった方も多いはずです。せっかくなので、WindowsとMacそれぞれでキャッシュ容量を確認する方法を紹介します。意外と簡単にチェックできますので、ぜひ試してみてください。
Windowsの場合|タスクマネージャーとCPU-Z
最も手軽なのは、Windows標準のタスクマネージャーを使う方法です。タスクバーを右クリックして「タスクマネージャー」を起動し、上部のタブから「パフォーマンス」を選び、左側の「CPU」をクリックすると、画面右下あたりにL1・L2・L3キャッシュの容量が表示されます。
もっと詳しく確認したい場合は、無料ツールの「CPU-Z」がおすすめです。CPUの型番やコア数、クロック周波数だけでなく、L1命令キャッシュ・L1データキャッシュ・L2・L3それぞれの容量や構成(ウェイ数など)まで細かく表示してくれます。筆者は新しいパソコンを買ったときには必ずCPU-Zを入れて、スペックシート通りの構成になっているかをチェックする習慣にしています。
Macの場合|system_profilerコマンド
Macではグラフィカルなツールでキャッシュ情報を見る手段が限られていますが、ターミナルから簡単に確認できます。「ターミナル」アプリを開き、system_profiler SPHardwareDataType と入力してEnterを押すと、CPUモデル名やコア数、L2・L3キャッシュ容量などが一覧で表示されます。
Apple Silicon(M1以降)のMacは、CPU・GPU・メモリが1つのチップにまとまった独特なアーキテクチャを採用しており、キャッシュ構成もIntel機とは少し異なります。たとえば高性能コア用と高効率コア用でL1の容量が違っていたり、システム全体で巨大な「システムレベルキャッシュ」を別途持っていたりと、Intel系とは設計思想に独自色があるのが面白いところです。とはいえ「CPUの中にキャッシュが内蔵されている」という大前提は変わりませんので、安心して同じイメージで捉えて問題ありません。
ちなみに、Windowsでもより詳しい情報をコマンドで見たい場合は、PowerShellで Get-WmiObject Win32_Processor | Select-Object Name, L2CacheSize, L3CacheSize と実行すると、CPU名とL2・L3キャッシュ容量がサクッと取得できます。GUIに頼らずにスペックを把握しておきたいエンジニア気質の方には、こちらのほうがしっくりくるかもしれません。

\ Google Pixelの正規サービスプロバイダも参加 /

キャッシュメモリにまつわるよくある疑問
最後に、キャッシュメモリの場所や仕組みについて、読者からよく寄せられる疑問にまとめて答えておきます。あらかじめ整理しておくと、CPUの世界がより身近に感じられるはずです。
キャッシュメモリは増設できますか?
結論から言うと、キャッシュメモリはユーザーが後から増設することはできません。メインメモリのようにマザーボードに挿し込まれた独立部品ではなく、CPUのシリコンチップそのものに焼き付けられているからです。容量を変えたい場合は、より大容量のキャッシュを持つCPUに交換するしかありません。
ブラウザのキャッシュとは別物ですか?
はい、まったく別物です。ブラウザのキャッシュは閲覧したWebページの画像やHTMLをストレージ(SSDやHDD)に一時保存する仕組みで、CPU内蔵のキャッシュメモリとは置き場所も役割もまるで違います。同じ「キャッシュ」という言葉が使われているため混同されがちですが、ハードウェアとソフトウェアでまったく別のレイヤーの話だと覚えておくと安心です。
キャッシュメモリは多いほど速いですか?
基本的には大きいほど有利ですが、容量だけで処理速度が決まるわけではありません。CPUのコア数や動作周波数、メモリ帯域、用途との相性など、複数の要素が組み合わさって最終的な性能が決まります。とはいえゲームや動画編集など、扱うデータ量が多い処理ではL3キャッシュの容量が体感差につながりやすく、CPU選びの際に注目すべきスペックの1つであることは間違いありません。

\ Google Pixelの正規サービスプロバイダも参加 /
まとめ|キャッシュメモリはCPUの中、距離の近さが速さの正体
結論、キャッシュメモリはCPUのチップ内部に組み込まれており、L1・L2・L3という階層構造でコアの近くから順番に配置されています。距離が近いほど高速にデータをやり取りでき、その「近さ」こそがキャッシュメモリの存在意義そのものなのです。
メインメモリとの違いは、素材(SRAMかDRAMか)と役割の分担にあります。キャッシュが瞬発力を担い、メインメモリが容量を担うという二段構えで、現代のパソコンは絶妙なバランスを保っています。自分のPCのキャッシュ容量を一度確認してみると、CPUのスペック表が単なる数字の羅列ではなく、設計者の工夫が詰まった地図のように見えてくるはずです。

\ Google Pixelの正規サービスプロバイダも参加 /

