web-dev-qa-db-ja.com

32ビットWindowsが最大16TBのページファイルを持つことができるのはなぜですか?

Microsoft によると、64ビットと32ビットのWindowsのページファイルサイズはそれぞれ256TBと16TBです。

64ビットでは、仮想アドレスは次のようになります。

64-bit virtual address format

4レベルの9ビットメモリマッピングフィールドとページ内の12ビットオフセットにより、64ビットWindowsは最大2つをマッピングできます。9 + 9 + 9 + 9 + 12 バイト= 256TB。

32ビットでは、仮想アドレスは次のようになります。

32-bit virtual address format

2レベルの10ビットメモリマッピングフィールドとページ内の12ビットオフセットにより、32ビットWindowsは最大2つをマッピングできるはずです。10 + 10 + 12 バイト= 4GB?では、なぜ16TBなのですか?

2
Richard Chung

あなたの算術は正しいです:2の累乗32は4GBを与えます。

ただし、ファイルのサイズはブロック単位でカウントされます。

1つのブロックのサイズがNTFSの標準である4Kの場合、バイト単位の最大サイズは次のようになります。

4 GB x 4 K = 16 TB

3
harrymc

方程式でPAEを考慮しましたか?

here boot.iniファイルに/ PAE(または/ pae)引数を追加すると、32ビットWindowsで最大16TBのより大きなページファイルが可能になると書かれています。

0
user1019780