12

「Modern Operating System」という本を読んでいます。そして、「ページサイズ」について混乱しています。

本の中で、著者は次のように述べています。

受信した 16 ビットの仮想アドレスは、4 ビットのページ番号と 12 ビットのオフセットに分割されます。ページ番号に 4 ビットを使用すると、16 ページを持つことができ、オフセットに 12 ビットを使用すると、ページ内の 4096バイトすべてをアドレス指定できます。

なぜ 4096 バイトなのですか? 12 ビットで、ページ内の4096エントリをアドレス指定できます。ただし、1 エントリはアドレスです (この場合、アドレス サイズ = 16 ビット)。したがって、4096(エントリ) * 16(ビット) = 4096(エントリ) * 2(バイト) = 8KB をアドレス指定できると思いますが、なぜ本は 4096 (バイト) をアドレス指定できると言っているのですか?

前もって感謝します!:)

4

5 に答える 5

12

これは、バイト アドレス指定メモリ (過去 30 年間に製造されたほぼすべてのマシンが使用) を想定しているため、各アドレスは、エントリやアドレス、またはその他の大きな値ではなく、バイトを参照します。16 ビット値を保持するには、2 つの連続したアドレス (2 バイト) が必要です。

30 年以上前、ご想像のとおり、ワードアドレスのマシンがありました。しかし、そのようなマシンは、バイト指向のデータ (ASCII 文字など) を処理するのに苦労したため、支持されなくなりました。今日では、バイト アドレス指定可能性、8 ビット バイト、および 2 の補数の整数などはほとんど想定されています。

于 2010-09-12T05:06:58.570 に答える
3

12 ビットはページ内のオフセットです。オフセットはアドレスではなくバイト単位です。2^12 は 4096 です。

于 2010-09-12T05:08:59.503 に答える
0

わかりましたので、16ビットの仮想アドレスを持っているので、それが何を意味するのか見てみましょう.2 ** 16 = 65536バイトがあることを意味します.

4 ビットのページ番号は、2^4=16 として 16 ページあることを意味します。ここで、ページに page1、page2...page16 という名前を付けます。

これで 12 ビットが残りました。12 ビットで 2**12=4096 バイトを表すことができるアドレスの数を見てみましょう。

65536 バイトは、4096*16=65536 としてそれぞれ 4096 バイトを含む 16 ページに分割することによっても達成できます。

于 2016-10-03T12:53:20.217 に答える
0

12 ビットを使用すると、2^12=4096スロットをアドレス指定できるためです。各スロットは、バイト アドレス指定可能メモリ内のサイズが 1 バイトのアドレスを表します。したがって、合計サイズは4096*1=4096 bytes = 4KB.

于 2020-04-27T17:07:27.923 に答える