③ キャッシュの間

CPUから見ると、メインメモリは遠い

CPUが1回の処理にかかる時間を「1歩」だとすると、L1キャッシュはすぐ隣、 メインメモリ(DRAM)は数十歩先です。この部屋では、その「遠さ」を 実測して見ていきます。

遅延の崖

作業セット(触るデータの大きさ)を4KBから64MBまで広げながら、 ポインタチェイス(次に読む場所がランダムに決まる、キャッシュを だませない読み方)で1回あたりの遅延を実測します。実機のL1d/L2/L3の 境界で、遅延が段差のように跳ね上がるはずです。

この実機の実構成

読み込み中…

キャッシュライン・セット・タグ

アドレスは「タグ」「セット番号」「ライン内オフセット」に分解されます。 16進アドレスを入れて、このマシンのL1d(実構成、上のスペック参照)では どこに収まるか見てください。

タグ
セット番号
オフセット

行列走査 — 同じ計算量でも並びで変わる

2048×2048のdouble行列(32MB、L3より大きい)を、行優先(メモリの並び通り)と 列優先(飛び飛び)でそれぞれ全要素1回ずつ読みます。実測時間と、 本物のキャッシュミス回数(perf実測)を比較します。

砂場: あなたの端末で計測する

同じ計測を、いまこのページを見ている あなたの端末のブラウザで実行できます。 上のグラフに重ねて表示するので、サーバの崖と見比べてみてください (端末やブラウザによっては崖がはっきり出ないこともあります)。

①②の間とのつながり

①回路の間で見た1つ1つのゲートが、 ②CPUの間で見た実クロックで動いています。 その計算がメモリの遅さに追いつかれないよう、CPUの中に用意された 「近道」がここで見たキャッシュです。