#キャッシュ
レジスタとメモリ、メモリとハードディスクの間には大きな速度がある
その差を埋めるのが__キャッシュ__
レジスタとメモリの間に設けるのがキャッシュメモリ
メモリとハードディスクの間に設けるのがディスクキャッシュ
キャッシュメモリにはSRAMがよく用いられる
##プログラムの局所参照性
局所参照性という考え方がどうしてもわからない。。。
定義としては「参照の局所性とは、資源への参照やアクセスが一部分に偏ったり集中すること。また、その度合いとのこと」
情報工学的な考え方
###時間的局所性
最近使われたデータほど再度アクセスされる可能性が高い
キャッシュは時間的局所性を利用している
###空間的局所性
使われたデータの近くにあるデータは再度アクセスされる可能性がある
ペーシング方式は空間的局所性を利用している
###逐次的局所性
使われたデータの隣は逐次アクセス(シーケンシャルアクセス)される可能性が高い
#キャッシュメモリの割り当て方法
主記憶上のデータはブロックという一定長の単位毎にキャッシュメモリへの割り当てが行われる。
ブロックをどの場所(ロケーション)に格納するか管理する方式として3つある
##ダイレクトマッピング方式
ハッシュ演算によってキャッシュ内の単一のロケーションを求め、データを格納
衝突による入れ替えが発生し、ヒット率は低下する
##フルアソシイアティブ方式
任意のロケーションを割てる方式
管理が複雑になる
読み出すたびに全体を検索する必要があり、速度的にも難がある
##セットアソシアティブ方式
メモリブロックをキャッシュ内の2つ以上の配置可能なロケーションに割り当てる方式
キャッシュメモリを2ブロック以上のセットに分け、そのセット内ならどこでも空いてるところを使用する事ができる
ダイレクトマッピング方式とフルアソシアティブ方式の折衷案
現在一般的にこの方法が使用されている
セット内にN個のブロックを持つとき、Nウェイセットアソシアティブと呼ぶ
例)2ウェイセットアソシイアティブ
##メモリインターブ
主記憶装置へのアクセスを高速化するための方法として、キャッシュメモリ以外にあげられるもの
主記憶装置内を複数のバンクに分ける