3次キャッシュ(サンジキャッシュ)とは | 意味や読み方など丁寧でわかりやすい用語解説
3次キャッシュ(サンジキャッシュ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
三次キャッシュ (さんじキャッシュ)
英語表記
L3 cache (エルスリーキャッシュ)
用語解説
3次キャッシュとは、CPUがデータを処理する際に、メインメモリへのアクセス頻度を減らし、全体の処理速度を向上させるために設けられた高速なメモリ領域のことで、一般にL3キャッシュとも呼ばれる。CPUのキャッシュメモリ階層において、最もCPUから遠く、かつ最も容量の大きいキャッシュメモリに位置づけられる。これはL1キャッシュ、L2キャッシュに続く第3の階層であり、CPUコア群によって共有されることで、複数のコア間のデータ連携を効率化し、システム全体のパフォーマンスを支える重要な役割を担っている。
CPUは演算を行うための非常に高速な部品だが、そこから処理するデータが格納されているメインメモリは、CPUに比べて格段に動作が遅い。この速度差が大きすぎると、CPUがいくら高速に演算能力を持っていても、データが来るのを待つ時間が長くなり、その性能を十分に発揮できなくなってしまう。この速度のギャップを埋めるために考案されたのがキャッシュメモリである。キャッシュメモリは、メインメモリと比較して容量は小さいものの、はるかに高速に動作するメモリであり、CPUがこれから必要とする可能性のあるデータを一時的に保持することで、メインメモリへのアクセスを可能な限り減らそうとする。
CPUのキャッシュメモリは、その速度と容量、CPUからの距離に応じて階層化されているのが一般的である。最もCPUに近いのはL1キャッシュであり、これはCPUコアごとに独立して設けられ、命令キャッシュ(L1i)とデータキャッシュ(L1d)に分割されることが多い。L1キャッシュは非常に高速だが、容量は数KBから数十KB程度と極めて小さい。CPUが最も頻繁に利用するデータを保持することで、最速のデータアクセスを提供する。
L1キャッシュの次に位置するのがL2キャッシュである。L2キャッシュはL1キャッシュよりも容量が大きく、数百KBから数MB程度が一般的だ。L1キャッシュよりはアクセス速度が若干遅いが、メインメモリに比べれば圧倒的に高速である。L2キャッシュは、CPUコアごとに独立して設けられることもあれば、いくつかのCPUコアで共有されることもある。L1キャッシュでデータが見つからなかった場合に、次にL2キャッシュを探索する仕組みになっている。
そして、L2キャッシュのさらに下位に位置するのが、この3次キャッシュ、すなわちL3キャッシュである。L3キャッシュは、L1キャッシュやL2キャッシュに比べてさらに容量が大きく、数MBから数十MB、高性能なCPUではそれ以上の容量を持つものもある。その分、アクセス速度はL1やL2よりも遅くなるが、メインメモリへのアクセスと比較すれば、やはり非常に高速である。現代のマルチコアCPUでは、複数のCPUコアがこのL3キャッシュを共有する構造が主流となっている。L3キャッシュは、CPUダイ(半導体チップ)上に統合されていることが多く、メインメモリにアクセスする前の最終的なバッファとして機能する。
3次キャッシュの動作原理は、CPUがデータを要求するプロセスに沿って理解できる。まずCPUは、最も高速なL1キャッシュにそのデータがあるかを確認する。もしL1キャッシュに見つかれば(これを「ヒット」と呼ぶ)、即座にそのデータを取得して処理を続行する。もしL1キャッシュにデータがなければ(「ミス」)、次にL2キャッシュを探索する。L2キャッシュでもデータが見つかれば、L1キャッシュへと転送され、CPUが利用する。L1、L2キャッシュのどちらにもデータが見つからなかった場合、最後に3次キャッシュであるL3キャッシュを探索する。もしL3キャッシュにデータが見つかれば、そのデータはL2キャッシュ、そしてL1キャッシュへと転送され、CPUが利用できる状態になる。L3キャッシュにもデータがなかった場合、最終的にCPUはメインメモリからデータを取得することになる。メインメモリから取得されたデータは、L3キャッシュ、L2キャッシュ、そしてL1キャッシュにも書き込まれ、次回のアクセスに備える。
このように、3次キャッシュはメインメモリへのアクセス頻度を極力減らすことで、CPUの待ち時間を短縮し、システム全体のパフォーマンス向上に大きく貢献する。特に、複数のCPUコアが共通のL3キャッシュを共有する設計は、コア間で頻繁にデータがやり取りされるような処理において非常に有効である。各コアがそれぞれのL1、L2キャッシュに持つデータが、もし他のコアでも必要となった場合、メインメモリまでアクセスする代わりに、共有L3キャッシュから高速にデータを受け渡すことが可能になるため、効率的なデータ共有とコヒーレンシ(データの整合性)の維持に役立つ。これにより、データベース処理、仮想化技術、科学技術計算、ゲームなど、大量のデータを扱うアプリケーションの実行性能が向上する。
現代のCPUでは、3次キャッシュの容量や設計がCPUの総合的な性能に与える影響が大きく、大容量かつ低レイテンシ(遅延時間)の3次キャッシュは、高性能CPUの重要な要素の一つとなっている。メインメモリのアクセス速度の進化はCPUの進化に追いついていないため、より大きく高速なキャッシュメモリの存在は今後もその重要性を増していくだろう。