参照局所性とはなにか
こんにちは電脳ヨーグルト(@q0x2tv1)です。
今回はメモリアクセスにおける参照局所性とは何かについてざっくり書いていきます。
参照局所性とは
参照局所性ってなんですか?
参照局所性ってのは「あるプログラムがアクセスする命令やデータのアドレスは特定の場所に集中する」っていうことだ。洋服でもよく着るやつはクローゼットの手前の方にまとまってるだろ。
なるほど・・・じゃあ時間的とか空間的局所性っいうのはどういうものなんですか?
参照局所性には時間的局所性っていうのと空間的局所性ってのがあって、時間的局所性は「一度アクセスしたアドレスそのものは近いうちにまたアクセスする可能性が高い」ってことだ。
そして空間的局所性は「一度アクセスしたアドレスに近いアドレスは近いうちにアクセスする可能性が高い」ってことだぜ。
うーん、なんかもっと具体的な例とかないんですか?
時間的局所性の例としては、ループ処理や関数呼び出し、空間的局所性の例ではプログラムそのものや配列なんかが挙げられるな。
なるほど・・それで参照局所性を使うとなにかいいことがあるんですか?
仮想メモリやキャッシュメモリではこの参照局所性を最大限に生かすことで、高速と大容量を両立させようとしているんだよ。
よく使う道具はリュックの中に入れておくより、すぐに取り出せるようにポケットに入れておいた方が便利だろ?まあそういうことだ。
ありがとうございます。