L1、L2、L3キャッシュの違いと役割

※当ページはアフィリエイトプログラムによる収益を得ています。

CPUのスペックでよく見かける言葉に「キャッシュ」があります。最近ではL3キャッシュの容量がどんどん増え、CPUの性能もそれに比例するように上がっています。

しかしこのキャッシュの役割を正確に理解できているでしょうか。私も初心者の頃は、正直よくわかっていませんでした。

そこで、キャッシュの役割について解説したいと思います。

CPUのキャッシュとはなに?

結論から言うと、「CPUの中に設けられた、高速アクセスが可能な記憶装置」のことです。

CPUが処理対象とするデータは、CPU内部(キャッシュ)とメモリ(RAM)に格納されますが、速度はキャッシュ>RAMです。

キャッシュメモリ内に処理対象のデータを補完しておくことで、いちいち低速なRAM(いわゆる普通のメモリ)にアクセスする必要がなくなり、その分だけ処理が高速になるわけです。

たとえば、「倉庫内のテーブルで小包を梱包し、本部の事務所にもっていく」という作業があるとしましょう。

このとき、「倉庫の中」はメモリ、「テーブル」はキャッシュです。作業ごとに倉庫の中から資材をもってくるよりも、テーブルの上に資材を置いたほうが作業しやすいですよね。

また、テーブル自体の広さも作業効率に関わってきます。広いほど作業しやすいですし、沢山の資材を手の届く範囲におけますから。

このように「実際に処理する部分に最も近いところにある作業領域」がキャッシュと考えれば良いでしょう。

キャッシュにもいろいろな種類がある

このキャッシュですが、「L1、L2、L3」というようにレベル分けされています。

L1のほうがCPUの処理部分に近く、L3は遠い、と考えていください。基本的な役割はどれも同じくデータの保管場所ですが、CPUの処理部分からの距離と容量によって階層が分かれています。

容量はL1<L2<L3の順で大きくなるのが通常です。ここで、「なぜ階層に分かれているのか?」と疑問に思う方がいるかもしれません。

厳密にはキャッシュは階層別に役割があり、前述の「倉庫」と「テーブル」のようにうまく使い分けられています。

容量が大きくなると、それだけデータの検索・抽出に時間がかかるため、全てのキャッシュをひとつにまとめると、メリットが薄れてしまうわけです。

例えば、同じテーブルでも、幅が1メールの作業机と5メートルの会議用テーブルでは、使い勝手が違いますよね。作業机は座ったままものがとれますが、会議用テーブルは立って移動しなくてはなりません。

そこで、頻繁に使う小さいものは作業机(L1キャッシュ)、比較的よく使うものでやや大きめのものは、机の隣の棚(L2キャッシュ)、もっと大きく束になった資料などは会議用テーブル(L3キャッシュ)に並べておくと、作業の効率が良くなります。

キャッシュが容量や階層で分かれているのは、こういった理由からなのです。

最近はL3キャッシュのみ表記が多い

ここ数年のCPUをみると、スペック表記の大半が「L3キャッシュのみ」となっています。特にIntelのCPUはL3のみ表記が一般的ですよね。

Intelではコアごとの専用キャッシュであるL1、L2キャッシュで足りない場合に、足りない分を動的に割り振る「スマートキャッシュ」を採用しており、これがL3に該当します。

キャッシュがCPU性能の全てを決めるわけではありませんが、CPU選びの参考になれば幸いです。