OSとハードウェア
ページサイズが4 KBのとき、仮想アドレスのうちページ内の位置(オフセット)を表すのは何ビットか。
- A4ビット
- B12ビット
- C22ビット
答えと解説を見る
正解:B. 12ビット
4 KB = 4096バイト = 2¹²バイトなので、ページ内の各バイトを区別するには12ビットが必要です。仮想アドレスの下位12ビットはページ内の位置としてそのまま物理アドレスに使われ、残りの上位ビットがページ番号としてページテーブルやTLBで変換されます。4ビットは「4 KB」の4に引きずられた誤り、22ビットは4 MBのページの場合の値です。下位12ビットが変換されないことは、キャッシュの設計にも利用されています。
- A. 4ビットでは16バイトしか区別できません。
- B. 正しい。4096 = 2¹² なので12ビットです。
- C. 22ビットは4 MBのページの場合の値です。