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