CPUにはキャッシュと呼ばれるCPU専用のメモリのようなものがあります。これは通常我々が目にするDIMM型のメモリモジュールとはまったく違うものです。しかしCPUキャッシュはCPUの性能を大きく左右する重要なメモリです。CPUのキャッシュとはどういうものなのかを説明したいと思います。
CPUキャッシュとは
CPUキャッシュとはCPUのキャッシュ用のメモリです。キャッシュとはデータの一時置き場のようなものです。CPUのコアは非常に高速な計算をします。その計算をするためには計算問題が必要です。その問題を置いておく場所と認識しておくとわかりやすいかもしれません。
CPUとメモリはマザーボード上の離れた場所にそれぞれ配置されています。CPUの処理能力は非常に早く、CPUは直接メモリからデータを受け取っていたのでは、持ってくるスピードが遅すぎてCPUの能力を活かすことができないのです。そこでCPUはプロセッサーユニットの中にキャッシュと呼ばれる一時記憶用のメモリを用意しました。キャッシュはCPUに直結された非常に高速な転送速度を持ちます。
キャッシュは通常のメモリに使われるDRAMではなく、SRAMと呼ばれる高速なメモリを使用します。HDDやSSDから見るとDRAMは非常に高速に見えますが、そんなDRAMよりもはるかに高速なSRAMを使用しなければ追い付かない速度が必要ということから、CPUの処理能力がどれほど高速なのかがわかります。
CPUキャッシュの種類
CPUキャッシュにはCPUにより近いものから順番にL1、L2と数字が上がっていきます。LはLevelの略でレベルワンキャッシュやエルワン、エルイチと呼んだりします。現在CPUによってL2までのものや、L4までのキャッシュを搭載しているものがあります。我々が普段使用するインテルのCore i7プロセッサーであればL1からL3キャッシュまでを持っています。
L1やL2、L3などのCPUキャッシュの違いは、しばしば自分のデスクと例えられます。
L1キャッシュは自分の机
L1キャッシュはCPUから一番近い場所にあるキャッシュです。これは自分の机の引き出しや、デスクトップ上の書類立てに例えられます。一番身近にあって手の届く場所にあるもっとも素早くアクセスできる場所です。しかしあまり広くはなく、大量の書類を置いておくには狭すぎるので、よく使う必要な書類を置いておくようになっています。
L2キャッシュは部屋の棚
L2キャッシュはCPUから2番目に近い場所にあるキャッシュです。常に使わないけれども、また使うかもしれない書類などを置いておく書類棚が部屋にあるようなものです。この棚の書類を取りに行くには席から立ちあがって部屋の棚の場所まで取りに行かなければいけません。机にある書類よりもアクセスするのに少し時間がかかってしまいます。
L3キャッシュは書庫や資料室
L3キャッシュはL2キャッシュよりもさらに離れた場所にあります。L3キャッシュは違う部屋の書庫や資料室に例えられます。席から立ちあがって部屋から出て取りに行くためさらに時間がかかります。
メモリは別の支店
ここまでいくとメモリは別棟の支店・支社くらい離れた場所になります。取りに行くのや持ってきてもらうのに時間がかかります。高速に感じるメモリでもCPUの速度からみるとこれくらい遅く感じるものかもしれませんね。
CPUキャッシュの容量
CPUキャッシュの容量はとても小さいものです。L1で32KB、L2で256KB、L3で8MBとメモリに比べると非常に小さいものです。SRAMはDRAMに比べて高速なぶん非常に単純な記憶素子です。DRAMは通常1つのコンデンサと1つのトランジスタから成りますが、SRAMは4つから6つのトランジスタから成ります。DRAMにくらべてSRAMのほうがより多くのトランジスタが必要になるのです。
そのため小さなCPUのユニットの中に配置できるトランジスタの数は限られてきます。がんばって配置を工夫してトランジスタの小型化をして配置してもメモリほどの多くの容量は組み込めないのです。
またアクセススピードの問題もあります。キャッシュが大きければ大きいほど、キャッシュの中のデータを検索する時間がかかってしまいます。人間にとっては非常に短い検索時間ですが、CPUにとってはその検索時間のロスが大きいのです。自分の机で書類を探すときに、120cm幅のデスクで1つの書類を探すのと、10m幅のデスクで1つの書類を探すのを想像するとわかりやすいかもしれませんね。
パソコンが生まれた当初はキャッシュも存在せず、CPUもメモリもそれほど高速ではありませんでした。そのためメモリから直接データをもらっていてもそれほどCPUの性能のロスにはならなかったのです。しかしCPUの性能が飛躍的に向上していくなか、メモリはCPUほど高速にはなりませんでしたが、その結果キャッシュという技術が生まれました。これからCPUの性能をチェックする際の比較要素としてキャッシュの差も加えてみてはいかがでしょうか。