参照局所性
参照局所性とは
プログラムがアクセスするアドレスは一部あるいは特定の箇所に集中する。これを参照局所性という。
参照局所性は「空間的参照局所性」と「時間的参照局所性」の2種類に分けられる。
これだけではよくわからないので、それぞれを下にまとめてみます。
空間的参照局所性
空間的参照局所性とは、一度アクセスされたアドレスに近いアドレスは他に比べアクセスされる可能性が高いということです。
これはどういうことかというのを雑に作った図を用いて説明しようと思います。
図1
色合いが気持ち悪いのはスルーでお願いします。
ABCDと書かれている塊がメモリで、AやBはアドレスだと思ってください。
アドレスCにアクセスしていると仮定すると、水色に塗られた部分がCですがその前後がアクセスされやすいよ。ということが空間的参照局所性があるということになります。今回でしたら緑色に塗られた部分が対象になります。
言われてみると確かにそうかもという感じですね。
図2
こういうAという配列があった時に、使用しているのがA(0)なら次に使用する可能性が高いのはA(1)ですよね。
もちろんA(2)やA(4)を使うこともありますが、可能性が高いと言われたらA(1)です。
これをメモリに当てはめて考えれば空間的参照局所性も少しわかりやすいのかなと思います。
(まあ配列もメモリに塊で確保されますしね...(間違ってたらすいません))
時間的参照局所性
一度アクセスしたアドレスは再度アクセスされる可能性が高い。
まあ、これはそのままなので特に説明はないです。
関数なんかも作ったのであれば何回も使うと思いますし、そういうことだと思います。
まとめ
この参照局所性がメモリアレイ構成に繋がってきます。
また機会があればメモリアレイも勉強してまとめてみたいです。
他のアーキテクチャも同様。