今日はキャッシュの実装にあたっての整理メモ。
今回は簡単なキャッシュを実装して、確認したいので1つのモジュールに4つのキャッシュバッファを持つ。
1モジュールのキャッシュは1つのBRAMで行きたいので、2,048KByteとする。
なので、1バッファは512Byteとなる。
BRAMは32bit幅で設計するのでキャッシュの貯め方も32bit単位で行う。
キャッシュバッファはどれだけ古いかを示すカウンタを持っていて、0以外の時にヒットすると0に戻して、それ以外の3つのカウンタを+1する。
ヒットしなかった場合は4つのカウンタのうち、3になっているバッファを一番古いキャッシュとして、追い出す。
改めてキャッシュにロードできたら、カウンタを0にして、他のカウンタを+1する。
ひとまず、こんなところかな?
詳細にはメモリからキャッシュに読み書きする際に、バーストでやりたいがそれが可能かどうかというところかな?