ダイレクトマップキャッシュの構成 例: メモリアドレス=32ビット キャッシュ容量C=256Kbyte C=B×A×S ブロックサイズ(ラインサイズ)B=32byte セット数(ブロック数、ライン数)S=8K アソシアティビティA=1 (ダイレクトマップは1) メモリアドレス=32ビット タグ 14ビット インデックス 13ビット オフセット 5ビット タグメモリ部 データメモリ部 タグ 14ビット VALID 1ビット キャッシュライン 32 byte タグ 14ビット VALID 1ビット キャッシュライン 32 byte タグ 14ビット VALID 1ビット キャッシュライン 32 byte 8K セット 13ビット 8K セット タグ 14ビット VALID 1ビット キャッシュライン 32 byte 32 byteデータ ‘1’か? 同じか? マルチプレクサ 5ビット キャッシュヒット 1byteデータ
TLB 仮想メモリアドレス=32ビット 例: メモリアドレス=32ビット ページサイズを64Kバイト 仮想ページ アドレス=16ビット ページ内 オフセット=16ビット VALID タグ 16ビット 物理ページ 16b VALID タグ 物理ページ VALID タグ 物理ページ TLB内のVALID=1であるすべて(フルアソシアティブの場合)のタグと仮想ページアドレスを比較して、一致(HIT)すれば、対応する物理アドレスを出力し、ページオフセットと連結して、物理アドレスを生成する。 物理ページ アドレス=16ビット ページ内 オフセット=16ビット 物理メモリアドレス=32ビット
直列型物理アドレスキャッシュ 並列型物理アドレスキャッシュ TLB TLB TAG DATA TAG DATA 比較 比較 HIT/MISS 仮想メモリアドレス=32ビット 仮想メモリアドレス=32ビット 仮想ページ アドレス=16ビット ページ内 オフセット=16ビット 仮想ページ アドレス=16ビット ページ内 オフセット=16ビット TLB TLB 物理ページ アドレス=16ビット ページ内 オフセット=16ビット 物理ページ アドレス=16ビット 物理メモリアドレス=32ビット タグ 14ビット インデックス 13ビット オフセット 5ビット タグ 17ビット インデックス 10ビット オフセット 5ビット TAG DATA TAG DATA 比較 マルチプレクサ 比較 マルチプレクサ HIT/MISS HIT/MISS