CPUの性能を語るうえで欠かせない要素の一つが「キャッシュメモリ」です。
スペック表を見ると「L2キャッシュ:256KB」「L3キャッシュ:8MB」などの記載を目にしますが、「L1・L2・L3とはどう違うのか」「なぜキャッシュが処理速度に影響するのか」と疑問に思う方も多いでしょう。
本記事では、L2キャッシュの意味と役割、L1・L3キャッシュとの違い、メモリ階層の構造、そして処理速度への影響をわかりやすく解説していきます。
L2キャッシュとは?CPUとメインメモリの橋渡し役
それではまず、L2キャッシュの基本的な役割と位置付けについて解説していきます。
L2キャッシュ(Level 2 Cache)とは、CPUコアとメインメモリ(RAM)の間に位置する第2階層のキャッシュメモリのことです。
CPUが計算処理を行う際、必要なデータをメインメモリから直接読み書きすると、速度差が大きすぎるためボトルネックが生じます。
そこでCPU内部や近傍に高速な小容量メモリ(キャッシュ)を配置し、よく使うデータを事前に保持することで処理速度を向上させる仕組みが採用されています。
L2キャッシュはL1キャッシュとL3キャッシュの中間に位置し、両者の特性をバランスよく持ち合わせた重要な存在です。
キャッシュメモリの基本原則は「局所性の原理」です。プログラムは直前に使ったデータや近いアドレスのデータを再び使う傾向があります(時間的局所性・空間的局所性)。この性質を利用してL2キャッシュがデータを保持することで、メインメモリへのアクセス頻度を大幅に減らせます。
L2キャッシュの容量は一般的にコアあたり256KB〜4MB程度であり、L1キャッシュより大きく、L3キャッシュより小さい構成が一般的です。
読み書き速度はメインメモリより格段に速く、アクセスレイテンシは数ナノ秒〜十数ナノ秒程度です。
L2キャッシュの物理的な配置
L2キャッシュの物理的な配置は、CPUのアーキテクチャによって異なります。
現代のマルチコアCPUでは、L2キャッシュはコアごとに独立して設けられるプライベートキャッシュとして実装されることが多いでしょう。
Intel Coreシリーズでは各コアにL1・L2キャッシュが配置され、L3キャッシュがコア間で共有される構成が一般的です。
AMD Ryzenシリーズでも同様に、コアごとのL1・L2とCCX(Core Complex)単位のL3という階層構造をとっています。
L2キャッシュはCPUダイ上に直接刻まれているため、SRAMを使用した非常に高速な動作が可能です。
キャッシュのヒット率と処理速度の関係
L2キャッシュの効果を左右するのが「キャッシュヒット率」です。
キャッシュヒット率とは、CPUがデータを要求した際にキャッシュ内で見つかる割合のことです。
ヒット率が高いほどメインメモリへのアクセスが減り、CPUが待機する時間(ストール)が少なくなるため処理速度が向上します。
一般的なワークロードでは、L1キャッシュのヒット率は90〜95%程度、L2キャッシュまで含めると98%以上に達することもあります。
L2キャッシュに目的のデータがない場合(キャッシュミス)はL3キャッシュ、さらにメインメモリへとアクセスが遡るため、ミスが多いと顕著な速度低下が生じます。
キャッシュの書き込みポリシー(ライトバック・ライトスルー)
L2キャッシュの書き込み動作には「ライトバック」と「ライトスルー」の2つのポリシーがあります。
ライトスルーではキャッシュへの書き込みと同時にメインメモリへも書き込むため、データの一貫性が保たれますが速度が低下します。
ライトバックではキャッシュにのみ書き込み、後でまとめてメインメモリに書き戻すため高速ですが、電源断時のデータ損失リスクが生じます。
現代のL2キャッシュではライトバックが標準的なポリシーとして採用されており、性能を優先した設計となっています。
マルチコアCPUでは複数コアのキャッシュ間でデータ一貫性を保つ「キャッシュコヒーレンス」の仕組みも重要で、MSIやMESIプロトコルが使われます。
L1・L2・L3キャッシュの違いを比較する
続いては、L1・L2・L3各キャッシュの特徴と違いを確認していきます。
3階層のキャッシュはそれぞれ容量・速度・役割が異なり、組み合わせることで効率的なデータ供給を実現しています。
| 種類 | 容量の目安 | アクセス速度 | 共有範囲 | 主な役割 |
|---|---|---|---|---|
| L1キャッシュ | 32KB〜64KB/コア | 1〜4サイクル | コア専用 | 最も頻繁に使うデータの高速供給 |
| L2キャッシュ | 256KB〜4MB/コア | 5〜15サイクル | コア専用が多い | L1ミス時のデータ供給・バッファ役 |
| L3キャッシュ | 8MB〜64MB以上 | 30〜70サイクル | 全コア共有 | コア間データ共有・大容量バッファ |
| メインメモリ(RAM) | GBオーダー | 100〜300サイクル | 全プロセス共有 | 全データの保持 |
L1キャッシュはCPUコアに最も近い位置にあり、最速・最小容量でCPUクロック1〜4サイクル以内でアクセスできます。
L2キャッシュはL1ミス時の第2バッファとして機能し、L1より大容量・低速ですがメインメモリよりはるかに高速です。
L3キャッシュは全コアが共有する最終バッファであり、マルチコア間のデータ交換にも活用されます。
L2キャッシュとL1キャッシュの違い
L1キャッシュとL2キャッシュは、どちらもコア専用のプライベートキャッシュとして機能しますが、設計思想に違いがあります。
L1キャッシュは命令キャッシュ(L1i)とデータキャッシュ(L1d)に分割された「ハーバードアーキテクチャ」を採用することが多く、命令フェッチとデータアクセスを同時並行で処理できます。
L2キャッシュは命令とデータを統合したユニファイドキャッシュ(統合型)が一般的であり、L1の補完役として柔軟にどちらのデータも保持します。
L1は究極の速度を、L2はバランスの取れた容量と速度を担当する役割分担といえるでしょう。
L1がミスするとL2を参照し、L2もミスするとL3、さらにメインメモリへとフォールバックする階層的なアクセス構造が採用されています。
L2キャッシュとL3キャッシュの違い
L2とL3の最大の違いは「共有範囲」と「容量」にあります。
L2キャッシュは基本的に各コアが専有するプライベートリソースであるため、他のコアからはアクセスできません。
L3キャッシュは全コアが共有する共有リソースであるため、あるコアが処理したデータを別のコアが再利用する際に高速なデータ交換が可能です。
マルチスレッド処理やマルチタスク環境においてL3キャッシュは特に重要であり、動画編集や3Dレンダリングなどの重い作業では大容量L3キャッシュが性能向上に直結します。
ゲームや軽い作業ではL2キャッシュの速度が体感性能を左右することも多く、用途に応じてキャッシュの特性を意識してCPUを選ぶと効果的です。
Victim CacheとInclusive・Exclusiveキャッシュ
キャッシュの設計には「インクルーシブ(Inclusive)」と「エクスクルーシブ(Exclusive)」という概念があります。
インクルーシブキャッシュはL2の内容がL3にも含まれる設計であり、キャッシュの無効化処理が簡単な反面、容量効率がやや低下します。
エクスクルーシブキャッシュはL1・L2・L3が重複なく別々のデータを保持する設計であり、全体として使用できるキャッシュ容量が最大化されます。
AMD Ryzenシリーズではエクスクルーシブ的なキャッシュ設計を採用しており、実効的なキャッシュ容量が大きくなるため、特定ワークロードで高い性能を発揮します。
Victim Cacheは小容量のバッファをL1とL2の間に設け、L1からあふれたデータを一時保持する仕組みで、キャッシュミス率を低減します。
L2キャッシュと処理速度・実際の性能への影響
続いては、L2キャッシュの容量と処理速度の関係、実際の性能への影響について確認していきます。
L2キャッシュの容量が大きいほど良いという単純な話ではなく、ワークロードの特性によってその恩恵は異なります。
L2キャッシュが大きいと何が変わるか
L2キャッシュの容量が増えると、キャッシュミス率が低下し、メインメモリへのアクセス頻度が減ります。
その結果、CPUがデータ待ちで停止するストールサイクルが減り、実効的なクロックあたりの処理量(IPC:Instructions Per Clock)が向上します。
特に効果が出やすいワークロードは、大量のデータを繰り返し参照するゲーム・データベース処理・数値シミュレーションなどです。
一方で、処理するデータセットがL2キャッシュに収まらないほど大きい場合は、L2容量の増加による恩恵は限定的になります。
ワーキングセット(同時に必要なデータの総量)がL2キャッシュに収まるかどうかが、性能向上の鍵となるでしょう。
ゲームとL2キャッシュの関係
近年のゲーミングCPU市場では、L2キャッシュが注目を集めています。
その背景にはAMDが2022年に発表した「3D V-Cache」技術があります。
Ryzen 7 5800X3Dなどに採用された3D V-CacheはL3キャッシュを三次元積層で大幅に増量する技術ですが、ゲームワークロードでL3のヒット率が向上することでパフォーマンスが大きく改善されることが実証されました。
ゲームのテクスチャや描画データはキャッシュに収まりやすいサイズのものが多く、大容量キャッシュの恩恵を受けやすい傾向があります。
Intelもゲーム向けCPUでL2・L3キャッシュ容量を増やす傾向にあり、キャッシュはゲーム性能の重要な指標の一つとして定着しています。
CPUを選ぶ際のL2キャッシュの見方
CPUのスペックを比較する際、L2キャッシュの数値をどう読むかを知っておくと選択の参考になります。
CPUスペック読み方の例
Intel Core i7-14700K:L2キャッシュ 28MB(P-core:2MB×8、E-core:2MB×4)
AMD Ryzen 9 7950X:L2キャッシュ 16MB(1MB×16コア)
コア数が多いほどL2合計容量は増えますが、1コアあたりのL2容量も性能に影響します。
クリエイティブ作業には大きなL3キャッシュが重要であり、ゲームではL2とL3の合計容量とクロック周波数のバランスを見ることが推奨されます。
モバイルCPUやノートPC向けCPUではL2容量が削減されることもあり、デスクトップ版と比較して性能差が生じる要因の一つとなっています。
まとめ
L2キャッシュは、CPUとメインメモリの間に位置する第2階層のキャッシュメモリであり、L1キャッシュのミス時に素早くデータを供給する橋渡し役を担っています。
L1キャッシュより容量が大きく、L3キャッシュより高速という中間的な特性を持ち、コアごとのプライベートリソースとして機能します。
キャッシュヒット率を高めることでCPUのストールを減らし、実効的な処理速度を向上させる効果があります。
特にゲームや繰り返しデータ参照が多いワークロードではL2・L3キャッシュ容量が性能に直結するため、CPU選定時にはキャッシュ容量も重要な指標として確認することをお勧めします。
L1・L2・L3それぞれの役割を理解することで、CPUスペックの読み方がより深まり、最適なハードウェア選択ができるようになるでしょう。