• ベストアンサー

メモリアドレスのバイトオフセット

キャッシュについて勉強しています。メモリアドレスの最後の部分にバイトオフセットというものがあるのですがこれはいったい何のために存在しているのでしょうか?どなたかお答えしていただけたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • 10451198
  • ベストアンサー率61% (77/126)
回答No.1

ちょっと用語違うかも知れません。 物理アドレスを3つにわけて、上位から タグアドレス、ラインアドレス、バイトオフセット、 とされているのでしょうか? であれば、回答は以下のとおりです。 キャッシュのデータはライン単位で管理します。一般にラインの大きさは16-64バイトぐらいです。仮にラインサイズを4バイトとすると、物理アドレス最下位2ビットはライン単位の管理には不要です。(ラインの存在とか、MESIのステートとか) 一方、CPUが1バイトのデータを書込むばあい、ラインの中の、どこに書くかを示す必要があるので、バイトオフセットを使います。 ちょっと乱暴な言い方をすれば、バイトオフセットはタグRAMには格納されないアドレスである、というくくり方も正しいかと。

すると、全ての回答が全文表示されます。

関連するQ&A