2017-12-10 11 views
0

マップされたキャッシングを理解するためにいくつかの部分を理解することができません。私は2KBの直接マップされたキャッシュで64KBのメモリを持つバイトアドレス指定メモリシステムを持っています。キャッシュブロックは32バイトです。ダイレクトマップされたキャッシュビット

私が間違っていると私が理解してくれたことから、私は2048B/32B = 64のキャッシュブロックを持っています。私は各キャッシュエントリ(タグ、 "汚れた"ビットなど)に必要な合計ビット数を把握する必要があります。

と5オフセットビット(2^5 = 32(キャッシュブロックのサイズ))のインデックスビットが6個必要です(2^6 = 64(ブロック数)) 残りは必要です。

答えて

3

物理アドレスのビットは、「キャッシュブロック内のバイトのオフセット」を決定し、タグに格納する必要のない最下位ビットグループ、ビットの中間グループ「キャッシュ内のキャッシュブロックのインデックス」を決定し、タグに格納する必要はなく、キャッシュ内のデータが必要なデータであるかどうかを確認するために使用される最も重要なビットグループタグ内に

64 KiBの物理アドレス空間では、物理アドレスは16ビットです。キャッシュが2048バイトの場合(「直接マップ」の場合)、最下位ビットグループと中間ビットグループを合計して合計11ビットにする必要があります。これは、(タグに格納されなければならない)最も重要なビット群が5ビットである必要があることを意味する(16ビットから11ビット= 5ビットであるため)。

その他のビットについては、エントリが使用されているか空であるかを示すために何かが必要です。キャッシュが「ライトバック」の場合は、ダーティービットが必要ですが、キャッシュが「ライトスルー」の場合はそうではありません。複数のCPUとキャッシュコヒーレンシがある場合は、それ以上のビットが必要です(排他/共有など)。何らかのエラーの検出や修正がある場合は、それ以上のビット数が必要です(たとえば、「パリティビット」)。これは、合計タグサイズが少なくとも6ビットであることを意味します(ただし、それ以上の場合もあります)。

関連する問題