L2(エルツー)
英語表記: L2 Cache (Level 2 Cache)
概要
L2キャッシュとは、CPUの仕組みを支える記憶階層において、最も高速で容量の小さいL1キャッシュと、より大容量で低速なメインメモリ(またはL3キャッシュ)の間に位置する中間的な高速メモリのことです。これは、CPUコアがデータを要求した際に、L1キャッシュでデータが見つからなかった場合に次に参照される場所であり、メインメモリへのアクセス頻度を劇的に減らすことを目的としています。このL2キャッシュの存在こそが、CPUの処理速度、特に命令の実行効率(パイプライン処理の効率)を維持するための決定的な鍵を握っているのです。
詳細解説
L2キャッシュは、「レジスタとキャッシュ」という記憶階層の設計哲学を体現する、非常に重要なコンポーネントです。CPUが高速化するにつれて、CPUコアの処理速度とメインメモリのアクセス速度との間に大きなギャップ(ボトルネック)が生じました。この速度差を埋めるために導入されたのが、多段構造のキャッシュ階層であり、L2はその中心的な役割を担っています。
階層内での役割と位置づけ
L1キャッシュは、CPUコアに最も近く、非常に高速ですが、コストと物理的な制約から容量は数十KBから数百KB程度と非常に小さく抑えられています。そのため、L1だけでは頻繁に使用するすべてのデータを保持しきれません。
そこでL2キャッシュが登場します。L2はL1よりはアクセス速度がわずかに遅くなりますが、容量は数MBと大きく設定されているのが一般的です。これは、L1から溢れたデータや、次に使われる可能性が高いデータを一時的に保持するための「緩衝地帯」として機能します。L2にデータがあれば、CPUはメインメモリにアクセスするよりも遥かに高速に処理を継続できるため、パイプラインの停止(ストール)を防ぎ、全体のスループットを向上させることができます。
動作原理と構造
CPUがデータを要求する際の一般的な流れは次の通りです。
- L1参照: まずL1キャッシュを参照します。ヒットすれば最速で取得します。
- L2参照: L1でミスした場合、次にL2キャッシュを参照します。L2でヒットすれば、メインメモリアクセスに比べて数十倍速くデータを取得できます。
- L3/メモリ参照: L2でもミスした場合、L3キャッシュ(存在する場合)や、最終的にメインメモリを参照します。
L2キャッシュの内部構造には、非常に高速なSRAM(Static RAM)が用いられています。メインメモリに使われるDRAMに比べて高価ですが、電源が供給されている限りデータを保持し続け、アクセス速度が圧倒的に速いのが特徴です。
また、近年のマルチコアCPUの「CPUの仕組み」においては、L2キャッシュの配置も重要です。L2キャッシュが各CPUコア専用に設けられている場合(Private L2)もあれば、複数のコアで共有されている場合(Shared L2)もあります。共有L2はデータの一貫性(コヒーレンシ)の維持が容易になるメリットがありますが、アクセス競合が発生しやすいというトレードオフが存在するのも面白い点です。
パフォーマンスへの影響
L2キャッシュの性能(容量、レイテンシ、ヒット率)は、CPU全体の性能に直結します。L2のヒット率が高ければ高いほど、メインメモリへのアクセスが減少し、CPUの命令実行パイプラインが効率的に稼働し続けます。私は、このL2キャッシュの設計こそが、現代のCPUの高速化競争における隠れた主役だと感じています。
具体例・活用シーン
L2キャッシュがどのように機能しているかを理解するために、私は「専門図書館」の例を挙げるのが最も的確だと考えています。
メタファー:専門図書館の特設閲覧室
あなたは、特定の分野の研究に没頭している研究者(CPUコア)だと想像してください。この研究者にとって最も重要なのは、思考を中断せずに、必要な情報に即座にアクセスできることです。
- レジスタ(手元のノート): 今まさに書き込んでいる情報。アクセス速度はゼロ秒です。
- L1キャッシュ(特設閲覧室の小さな机上の引き出し): 今日、または今週中に使うことが確定している、超重要資料(10冊)が入っています。非常に容量が少ないですが、手を伸ばすだけで取れます。
- L2キャッシュ(特設閲覧室の壁一面の本棚): L1の引き出しには入らなかったけれど、研究の文脈上、関連性が高く、すぐに必要になる可能性が高い資料(数百冊)が整然と並んでいます。これがL2です。引き出し(L1)よりは少し時間がかかりますが、席を立って数歩移動するだけでアクセスできます。
- メインメモリ(図書館の巨大な地下書庫): すべての資料が収められています。ここから資料を取り出すには、カウンターで申請し、職員が遠い書庫まで行って探して戻ってくるのを待つ必要があります(これが非常に時間がかかる、つまり低速なアクセスです)。
研究者(CPU)は、まず引き出し(L1)を探します。もし資料がなかった場合、すぐに壁の本棚(L2)をチェックします。L2に資料があれば、研究者は地下書庫(メインメモリ)まで行くという「長い待ち時間」を完全に回避できます。
もしL2の容量が小さければ、多くの資料が地下書庫に戻ってしまい、研究者は頻繁に待たされてしまいます。逆にL2の容量が大きく、適切なデータが配置されていればいるほど、研究者の思考(命令実行)は途切れることなく、スムーズに進行するのです。L2は、L1とメインメモリという極端な速度差を持つ記憶域の間で、効率的なデータ供給を保証する「中間管理職」のような存在だと考えると、その重要性が理解できるでしょう。
資格試験向けチェックポイント
L2キャッシュは、CPUの仕組み(命令セット, パイプライン)という大分類の中でも、特に「レジスタとキャッシュ」の理解度を問う問題で頻出します。試験対策においては、L1との明確な違いを理解しておくことが合格への近道だと私は考えています。
- ITパスポート試験(初級):
- 出題傾向: キャッシュメモリの階層構造に関する基本的な知識が問われます。L1、L2、メインメモリの順に「容量は大きく、アクセス速度は遅くなる」というトレードオフの関係性を理解しているかを確認されます。
- 対策のヒント: L2はL1の次に高速、L3(あれば)やメインメモリよりは高速、という位置づけを確実に覚えましょう。
- 基本情報技術者試験(FE):
- 出題傾向: L2キャッシュのヒット率と、実効アクセス時間の計算に関する問題が頻繁に出題されます。L2ヒット率が向上することで、システム全体の性能がどれだけ改善するかを計算できる能力が求められます。
- 重要知識: L2は、一般的にL1よりも大容量であるため、L1ミスをカバーする能力が高いことを理解し、キャッシュ階層の設計思想を深く理解しましょう。
- 応用情報技術者試験(AP):
- 出題傾向: マルチコア環境におけるL2キャッシュの管理(共有型か専有型か)、データの一貫性(コヒーレンシ)維持プロトコル、およびパイプライン処理への影響を詳細に問う問題が出ます。
- 対策のヒント: L2でのキャッシュミスが「パイプラインのストール」を引き起こし、CPUの仕組み全体に大きな遅延を生じさせるという因果関係を、理論的に説明できるように準備することが重要です。
関連用語
- 情報不足