L2キャッシュ: level 2 cache)はマルチレベルキャッシュ内の第2層キャッシュメモリである[1]。2次キャッシュ、セカンダリキャッシュとも呼ばれる。

キャッシュメモリには容量と速度のトレードオフが存在する。容量・速度の異なるキャッシュの階層構造をもつマルチレベルキャッシュの中で、2番目に容量が小さく2番目に速い階層がL2キャッシュである。最も小さく速い階層がL1キャッシュである。

L1キャッシュはCPUのアーキテクチャと密接に連動して動くため、高速だが容量を増やすことが難しい[要出典]。そのためメインメモリよりは高速で、L1キャッシュよりも容量を増やすことが容易なL2キャッシュがCPUの性能向上の手段として有効である。

歴史 編集

Intel486Intel Pentium初代ではL2キャッシュはCPUではなくマザーボードに任意として搭載されていた。当初はDRAMがシステムバスの速度と比べてわずかに遅かったために、メインメモリとの間に設置される高速アクセスを仲介するSRAMとして設置された。しかしクロックダブラー等でクロック速度が増加するにつれてマザーボードに搭載のL2キャッシュは搭載されることなく、CPUの中に搭載されることになる。[2]

Pentium IIなどのCPUでは、CPUダイと独立したSRAMをL2キャッシュとしてCPUボードに実装していたが、現在[いつ?]ではCPUのシリコンダイの上に演算回路と一緒に形成する手法が一般的である。

性能 編集

容量 編集

年を経るごとにL2キャッシュ容量は増加する傾向にある。

Table. デスクトップ向けCPU L2キャッシュサイズ[3]
メーカー μarch サイズ [KB/core] 登場年
Intel Nehalem ~ Comet Lake 256 2008 ~ 2019
Rocket Lake 512 2021
Alder Lake big 1250 / LITTLE shared 2000 2021
AMD Zen ~ Zen 3 512 2017 ~ 2020

レイテンシ 編集

L2キャッシュのレイテンシはメインメモリより短くL1キャッシュより長い。例えば Intel Xeon E5-2686(Broadwell, L1-32KB/L2-256KB/L3-46MB構成)では実測で約10サイクルである(main: 約208サイクル、L1: 約4サイクル)[4]

脚注 編集

  1. ^ "multi level caches ... recent processors have multiple levels of caches (L1, L2, . . . )" 田浦. (2018). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.
  2. ^ 後に同一ソケットにおいて動作するCPUの中にL2キャッシュが実装されると、L3キャッシュとして動作するようになる。
  3. ^ 出典:英語版wikipedia 各マイクロアーキテクチャ
  4. ^ "E5-2686 (32KB/256KB/46MB) ... latency (cycles) ... L1 4.02 ... L2 9.82 ... main 208.417" 田浦. (2016). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.