CPUキャッシュ わかりやすく
CPUが計算するには、値がすぐそばにある必要があります。ところが、速い記憶は小さく、大きな記憶は遅いのです。そこでコンピュータは、手の届く机と離れた本棚のように、記憶をいくつもの層に分けています。
机の上と本棚
勉強するときを思い浮かべてください。
手の届く机の上には数冊しか置けませんが、すぐに取れます。
本棚にはたくさん並べられますが、立って取りに行かなければなりません。
記憶も同じで、近ければ速くて小さく、遠ければ大きくて遅いのです。
近い場所と遠い場所、何を得て何を手放すか。
両方は手に入りません。
速くて大きい記憶は、高すぎるか、作るのが難しいからです。
そこで、少しだけを速く置くか、たくさんを遅く置くかを選ぶ必要があります。
近い順に積み重ねる
だからコンピュータは、記憶を一種類だけにはしません。
CPUにいちばん近いとても小さくて速い記憶から、遠くて大きくて遅い記憶まで、何層にも積み重ねます。
上へ行くほど速くて小さく、下へ行くほど大きくて遅くなります。
上は速くて小さく、下は大きくて遅く。
第9回で見たメモリは、この層の一つです。
その上にはもっと速いキャッシュとレジスタがあり、下にはもっと大きくて遅い記憶装置があります。
よく使うものは上に、あまり使わないものは下に置くわけです。
机から取るか、本棚まで行くか
CPUが値を一つ必要とするとき、それが近くのキャッシュにあれば、あっという間に取ってこられます。
遠くのメモリまで行かなければならないと、そのぶん時間がかかります。
同じ値でも、どこにあるかで時間が大きく変わるのです。
近い場所 vs 遠い場所、取ってくるまでの時間。
そこでコンピュータは、いま使った値や、すぐにまた使いそうな値を近くのキャッシュに移しておきます。
次に必要になったとき、遠くまで行かなくてすむようにするためです。
小さな準備が、大きな時間の節約になります。
机の上にあるか、ないか
CPUが探す値がすでに近くのキャッシュにあれば「ヒット」で、すぐに取ってこられます。
なければ「ミス」で、遠くのメモリまで行って戻ってこなければなりません。
だから、よく使う値をキャッシュにうまく置いておくことが大切なのです。
探す値がキャッシュにあるかないかで、道が分かれます。
ヒットが多いほど、コンピュータは速くなります。
「よく使うものを近くに置く」という規則が記憶の扱いのかなめなのは、そのためです。
小さなキャッシュを賢く使うということです。
全部を速くできないの?
全部を速い記憶で埋めると、高すぎてたくさんは入りません。
全部を大きな記憶で埋めると、遅すぎます。
いくつもの層は、この二つのあいだの折り合いなのです。
下で三つを選び比べると、その理由がわかります。
全部速く・全部大きく・いくつもの層。
よく使うものは小さくて速い上の層に、あまり使わないものは大きくて遅い下の層に置きます。
この分け方のおかげで、コンピュータは速いうえにたくさんのことを覚えていられます。
次のレッスンでは、これらの部品すべてがどうつながって一台のコンピュータになるのかを見ていきます。