OSとハードウェア
TLBの各項目にASID(アドレス空間識別子)を付ける利点として正しいものはどれか。
- A切り替え時にTLBを全部消さずに、変換を区別できる
- B1つのプロセスが使える仮想アドレスの範囲を2倍にできる
- Cページテーブルが不要になり、すべての変換をTLBだけで行える
答えと解説を見る
正解:A. 切り替え時にTLBを全部消さずに、変換を区別できる
ASIDがないと、プロセスごとに同じ仮想アドレスが別の物理アドレスを指すため、プロセスを切り替えるたびにTLBを空にしなければならず、切り替え後にTLBミスが続きます。各項目にASIDを付ければ、どのプロセスの変換かを区別できるので、TLBを消さずに残しておけ、元のプロセスに戻ったときにも再利用できます。仮想アドレスの範囲は変わらず、TLBに入りきらない変換のためにページテーブルは引き続き必要です。
- A. 正しい。プロセスごとの変換を区別でき、切り替え時にTLBを消さずに済みます。
- B. 仮想アドレスの範囲は変わりません。
- C. TLBは一部の変換しか持てず、ページテーブルは必要です。