具体的には:
1)各ブロックに8個の32ビットワードがある4096ブロック/ラインのダイレクトマップキャッシュ。32ビットアドレスを想定して、タグフィールドとインデックスフィールドには何ビットが必要ですか?
2)1)と同じ質問ですが、完全連想キャッシュについてですか?
私が間違っている場合、私を修正してください:
タグビット=アドレスビット長-インデックスの指数-オフセットの指数?
[オフセットは3 = 2 ^ 3 = 8ですか、それとも2 ^ 5 = 32から5ですか?]
具体的には:
1)各ブロックに8個の32ビットワードがある4096ブロック/ラインのダイレクトマップキャッシュ。32ビットアドレスを想定して、タグフィールドとインデックスフィールドには何ビットが必要ですか?
2)1)と同じ質問ですが、完全連想キャッシュについてですか?
私が間違っている場合、私を修正してください:
タグビット=アドレスビット長-インデックスの指数-オフセットの指数?
[オフセットは3 = 2 ^ 3 = 8ですか、それとも2 ^ 5 = 32から5ですか?]
回答:
述べられている質問はまったく答えられません。ワードは 32ビットであると定義されています。システムが「バイトアドレス指定可能」(8ビットのデータチャンクにアクセスできる)、「ワードアドレス指定可能」(アクセス可能な最小のチャンクは32ビット)、または「ハーフワードアドレス指定可能」(アクセスできるデータの最小チャンクは16ビットです。)アドレスの最下位ビットが何を伝えているかを知るには、これを知る必要があります。
次に、ボトムアップで作業します。システムがバイトアドレス指定可能であると仮定しましょう。
各キャッシュブロックには8ワード*(4バイト/ワード)= 32 = 2 5バイトが含まれるため、オフセットは5ビットです。
直接マップされたキャッシュのインデックスは、キャッシュ内のブロック数です(2 12 = 4096 であるため、この場合は12ビットです)。
その後、指定したとおり、タグは残っているすべてのビットです。
キャッシュの連想性は高まりますが、同じサイズのままであるため、インデックスビットが少なくなり、タグビットが増えます。
タグビットの式は正しいです。
オフセットが3ビットであるか5ビットであるかは、プロセッサがバイト(オクテット)アドレス指定とワードアドレス指定のどちらを使用するかによって異なります。DSP以外では、最近のプロセッサのほとんどがバイトアドレッシングを使用しているため、バイトアドレッシング(および5つのオフセットビット)を想定しても安全です。
対象のコンピューターシステムの最終試験のために学んでいますが、しばらくグーグルで調べて、この質問を見つけました。そして、質問のこの部分は混乱しています。「各ブロックには8つの32ビットワードがあります」。ワードは4バイト(または32ビット)なので、質問は「...各ブロックに8ワードがある」だけで十分です。
答えは-各ブロックは32バイト(8ワード)ですので、各ブロックのどのバイトを決定するために5オフセットビットが必要です-直接マッピング=>セット数=ブロック数= 4096 => 12インデックスビットが必要ですどのセットを決定する
=>タグビット= 32-12-5 = 15
完全連想の場合、セットの数は1 =>インデックスビットなし=>タグビット= 32-0-5 = 27
あなたが言うようにフルアソシエイトマッピングインデックスは0 b / sですので、set = 1ですのでindex =ベース2の1のログ= 0セットオフセット=バイトベース2のブロックサイズのログなので8 = 2 ^ 3または32 = 2 ^を使用します5直接インデックス= 2 ^ 12 = 12の場合、タグ= 32-0-5 = 27オフセット= 0ビットタグ= 32-12-0 = 20