キャッシュを理解する

キャッシュはCPUが必要とするデータを近くに置き、主記憶待ちを減らす仕組みである。局所性、ヒット・ミス、階層、書込み方式の基本を押さえる。

この単元で学ぶこと

  • 時間的局所性の意味と役割を説明できる
  • 空間的局所性の意味と役割を説明できる
  • キャッシュヒットの意味と役割を説明できる
  • 局所性とキャッシュヒット率の関係を具体例で説明できる

本文解説

プログラムは直近のデータや近いアドレスを繰り返し参照しやすい。この時間的・空間的局所性を利用し、主記憶の一部を高速なキャッシュへ保持することで平均アクセス時間を短縮する。

時間的局所性 一度参照したデータや命令を近い将来再び参照しやすい性質。 ループ内の命令や頻繁に使う変数が例。

空間的局所性 あるアドレスを参照すると、その近傍アドレスも近い将来参照しやすい性質。 配列の連続走査などで現れる。

キャッシュヒット 要求データがキャッシュ内に存在する状態。 主記憶まで行かず高速に処理できる。

キャッシュミス 要求データがキャッシュ内に存在しない状態。 下位キャッシュや主記憶から取得する必要がある。

キャッシュライン キャッシュと主記憶間で転送・管理される一定サイズのデータブロック。 空間的局所性を利用して近傍データも一緒に持ってくる。

ループや同じ変数なら時間的局所性、配列の順次走査や隣接アドレスなら空間的局所性を疑う。ミス時はどの階層から取得するか、ヒット時より時間が長くなる点を確認する。

配列を先頭から順に処理すると、一つのキャッシュラインに複数要素が含まれるため、最初のミス後に後続要素がヒットしやすい。

図解

局所性とキャッシュ動作
CPU要求がヒットなら高速応答、ミスなら下位階層からキャッシュライン単位で取得する。

重要ポイント

  • 時間的局所性: 一度参照したデータや命令を近い将来再び参照しやすい性質。
  • 空間的局所性: あるアドレスを参照すると、その近傍アドレスも近い将来参照しやすい性質。
  • キャッシュヒット: 要求データがキャッシュ内に存在する状態。
  • キャッシュミス: 要求データがキャッシュ内に存在しない状態。
  • 時間的局所性=同じ場所の再利用、空間的局所性=近くの場所の利用。

間違えやすい点

  • キャッシュは主記憶の全内容を保持する必要はない。
  • ヒット率100%を常に保証するものではない。
  • キャッシュ容量を増やせば無条件に遅延がゼロになるわけではない。

用語解説

時間的局所性
一度参照したデータや命令を近い将来再び参照しやすい性質。
空間的局所性
あるアドレスを参照すると、その近傍アドレスも近い将来参照しやすい性質。
キャッシュヒット
要求データがキャッシュ内に存在する状態。
キャッシュミス
要求データがキャッシュ内に存在しない状態。
キャッシュライン
キャッシュと主記憶間で転送・管理される一定サイズのデータブロック。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。