PCパーツの選定時に一番ワクワクするのはやはりCPUでしょう。PCの頭脳とも言えるパーツであり、その性能はできるだけいいものの方がよいに決まっています。
そこでスペックシートなどを見ながら比較検討していくわけですが、CPUのスペックを表す指標に「L1」や「L2」といった項目が出てきて「???」となったことはありませんか。
そこで、「L1」「L2」の謎とCPUのキャッシュについて見ていきましょう。
キャッシュとは
まず、前提として、CPUの処理速度は他のどのパーツよりも早いです。SSDもメモリも目じゃないくらいに高速化されています。
CPUが計算を行うには計算する際のデータと計算結果をどこかに保存する必要があります。通常それにはメモリが使われ、永続化したいデータはSSDなどのストレージへとコピーされます。
ですが前述のようにメモリとCPUの速度差があるため、一々データの読み込みと書き込みでメモリを待っていたらせっかくの時間がもったいないことになります。
そこでメモリよりも更に高速なデータ保存場所を用意してそこを使うことで時間短縮につなげようと言うのがキャッシュの考え方です。CPUキャッシュメモリについては「CPUのキャッシュメモリとは」の記事で解説しています。
L1、L2って何?
CPUのキャッシュメモリにはいくつか方式があるのですが、考え方は同じです。すなわち、メモリからキャッシュメモリにデータを移し、できるだけキャッシュのデータを用いて計算することです。
しかし残念ながらキャッシュメモリはその性能の高さと同様に価格も高いものとなります。最近では大容量化が進んでいますが、それでも通常のメモリを置き換えるほどではありません。
また、CPUが高速化されますますメモリとの速度差が広がったため、キャッシュも多段構造にすることが多くなりました。これがすなわりL1、L2キャッシュなのです。
L1は「Level 1」のことで、CPUに一番近いキャッシュです。対してL2、L3…と数字が増える毎にメモリに近づいていき、通常は容量も増えていきます。これらは多くてもL4くらいまででしょう。
プリフェッチ
プリフェッチはその名の通り先読みをしておくようにCPUに指示する命令です。ストリーム動画の処理など、次に使うデータが予想しやすい場合に力を発揮します。
もちろん通常のキャッシュのアルゴリズムでもデータの使用頻度などに応じてキャッシュに格納していることが多いのですが、必ずヒットするわけではないので、予めわかっている場合はプリフェッチで明示的に指示したほうが高速になります。
まとめ
CPUの性能は演算速度を表すクロックだけでなく、これらキャッシュの大きさやプリフェッチ機能の有無などによっても変わってきます。
最近は大容量化が進んでいますが、その分CPUも高速になってきているのでイタチごっこのような気はしますが。