私が取り組んでいる問題は次のとおりです:
問題:「高速ワークステーションには、バイト レベルでアドレス解決を行う 64 ビット ワードと 64 ビット アドレスがあります。8192 の 64 バイト ラインを持つダイレクト マップ キャッシュを想定すると、キャッシュの次の各アドレス フィールドにはいくつのビットがありますか? 1) バイト 2) インデックス 3) タグ?」
まず、この問題の用語を定義し、他のStack Overflow Direct Mapped Cacheの質問と私の他の質問を使用しました。キャッシング参考として(定義が間違っている場合は訂正してください)
- 64 ビットワード - プロセッサは一度に 64 ビットを処理できます
- 64 ビット アドレスとバイト レベルのアドレス指定 - RAM には 2^64 のメモリ位置があり、各メモリ位置には 1 バイトが格納されます。
- キャッシュ高速であり、キャッシュラインに分割されている
- 直接マップされたキャッシュRAMメモリブロックが1つのキャッシュラインにマップされる場所です(この意味はよく分かりませんが)
現在作業中ダイレクトマップキャッシュ参考として
- バイト - バイトラインは64バイトで構成されているため、バイトライン内の1バイトを識別するには6ビットが必要です。
- インデックス - バイト行は8192行あるため、各行を識別するには少なくとも10ビットが必要です。
さて、ここで私は行き詰まっています。役職「他のビットはすべてタグビットです」とこの講義では言いました役職「各行には、その行がコピーされた M 内のアドレスを示すタグがあります」と書かれています。M は RAM を意味していると思います。
したがって、他のすべてのビットは 64 - 6 - 10 = 48 ビットになります。しかし、キャッシュ内のデータが RAM 内のどのメモリ位置から来たのかを示すには、タグの 64 ビットすべてが必要ではないでしょうか? 誰か、私がここで抱えている混乱を解明してくれませんか?