Friday, March 29, 2024

Windows 7/8/10各版本支持最大內存容量

Windows 7 中的物理內存限制

Windows 7有6個主要版本,分別是Windows 7 Starter(簡易版),Windows 7 Home Basic(家庭普通版),Windows 7 Home Premium(家庭高級版),Windows 7 Professional(專業版),Windows 7 Enterprise(企業版),Windows 7 Ultimate(旗艦版)。

通過撥打微軟中國客服電話(免費電話800-820-3800 付費電話400-820-3800)諮詢微軟客服人員和在微軟官網查詢,我們得知:

32位Windows 7的除了簡易版僅支持2GB內存外,其他版本均支持4GB內存,但32位的Windows 7實際可利用的最大內存只有3.25GB左右。

64位的Windows 7家庭普通版能支持8GB內存,家庭高級版能支持16GB內存,而64位的Windows 7專業版、企業版和旗艦版最高可支持192GB內存。

下表規定了不同 Windows 7 版本對物理內存的限制。

Version Limit on X86 Limit on X64
Windows 7 Ultimate 4 GB 192 GB
Windows 7 Enterprise 4 GB 192 GB
Windows 7 Professional 4 GB 192 GB
Windows 7 Home Premium 4 GB 16 GB
Windows 7 Home Basic 4 GB 8 GB
Windows 7 Starter 2 GB N/A

Windows 8 中的物理內存限制

Windows 8有3個主要版本,分別是Windows 8(標準版),Windows 8 Professional(專業版),Windows 8 Enterprise(企業版)。

32位Windows 8的所有版本均支持4GB內存,但32位的Windows 8實際可利用的最大內存只有3.25GB左右。

64位的Windows 8標準版能支持128GB內存,64位的Windows 7專業版和企業版可支持512GB內存。

下表規定了不同 Windows 8 版本對物理內存的限制。

Version Limit on X86 Limit on X64
Windows 8 Enterprise 4 GB 512 GB
Windows 8 Professional 4 GB 512 GB
Windows 8 4 GB 128 GB

Windows 10 中的物理內存限制

Windows 10有4個主要版本,分別是Windows 10 Home(家庭版),Windows 10 Pro(專業版),Windows 10 Education(教育版),Windows 10 Enterprise(企業版)。

32位Windows 10的所有版本均支持4GB內存,但32位的Windows 10實際可利用的最大內存只有3.25GB左右。

64位的Windows 10家庭版能支持128GB內存,64位的Windows 10專業版、教育版和企業版可支持2TB內存。

下表規定了不同 Windows 10 版本對物理內存的限制。

Version Limit on X86 Limit on X64
Windows 10 Enterprise 4 GB 2TB
Windows 10 Education 4 GB 2TB
Windows 10 Pro 4 GB 2TB
Windows 10 Home 4 GB 128GB

為什麼Windows 7/8/10的32位版不能支持4GB以上內存呢?

32位系統使用32位地址線的最大尋址空間為2的32次方bytes,計算後即4294967296 Bytes,也就是我們常說的4096MB,32位地址線的尋址空間封頂即為4GB。但是,雖然系統能夠識別4096MB,我們還是不能完全使用它,這是因為還有內存映像輸入/輸出(Memory-Mapped Input Output)作怪,我們的系統中除了CPU和內存佔據尋址空間外,還有顯卡也需佔用尋址空間,這就是為什麼32位系統不能全部調用內存的原因,32位Windows 7/8系統支持的最大內存事實上只有3.25GB左右。

這裡要糾正一個常識錯誤:32位系統不能使用大於4G的內存。早在16位系統上,系統可使用的內存就遠遠大於64KB(2的16次方bytes)了,這是因為採用了內存分段和20位地址線,最大尋址空間為2的20次方bytes,即1MB。那麼在32位系統上,32位CPU使用36位地址線的最大尋址空間為2的36次方bytes,也就是64GB。32位Linux系統早就直接支持4G以上的內存。Windows系統因為微軟的人為限制,不允許32位系統使用大於4G的內存。

如果啟用PAE(Physical Address Extension),32位Windows就可以使用超過4GB的內存,比如Windows Server 2003/2008 Enterprise/Datacenter X86(32bit)可以支持最大64GB內存(16 GB with 4GT)。所以在當前x86架構中,通過ReadyFor4G直接修改Windows內核(使用36位地址線),32位Windows最多可以使用64GB的內存。不過,這個方法也有很多限制,32位Windows的每個進程最大可用內存被限制在4GB之內,一些不規範的驅動程序不能支持大於4G的內存,會導致系統崩潰。

64位系統使用64位地址線的最大尋址空間為2的64次方bytes,計算後其可尋址空間達到了驚人的18446744073709551616 Bytes,即16384PB(PebiByte)=16777216TB(TebiByte),但是,很多64位CPU使用40位地址線,最大尋址空間僅為1TB,加之別的種種原因,目前Windows 7 64位版最大僅能使用192GB內存,Windows 8 64位版最大僅能使用512GB內存。

微軟官方文檔:《Windows 7 的物理內存限制》《Memory Limits for Windows Releases》

CPU的位數和地址線

所謂多少位CPU,最準確的定義是指CPU內部通用寄存器的位寬。

比如8088,16位通用寄存器,8位數據線,20位地址線,它是16位CPU;

8086,16位通用寄存器,16位數據線,20位地址線,它是16位CPU;

又比如Pentium Pro或者Pentium II,32位通用寄存器,64位浮點寄存器,64位數據線,36位地址線,它是32位CPU。

用比較少位數的寄存器確定較多位地址的時候會多一重轉換,稍微麻煩一點,也慢一點。

8086用16位尋址20位叫做分段尋址,要多一次移位加的操作;Pentium Pro/II/III/4 等32位尋址36位叫做PAE36尋址,更慢。

使用PAE40技術的Intel x86-64 CPU是40位地址線,使用PAE48或PAE52技術的AMD x86-64 CPU是48位或52位地址線。目前沒有64位地址線的CPU,原因很簡單,就是現在還用不着這麼多地址線(而且過大的虛擬地址空間需要更多級的分頁,這會導致硬件更複雜,尋址速度更慢)。

6 comments

  1. 應該是16384PB(PebiByte)。

  2. 2^64計算之後可不止16384GB吧?

  3. 通過各種破解方式使32位win系統支持4GB以上內存的方式會造成系統不穩定,個人不推薦。

  4. 據說有人在win7上成功運行支持pae的windows內核

  5. 其實32位x86芯片完全可以通過PAE技術支持大內存,windows2003,就可以支持32G內存,linux也一樣,因為x86硬件本身就支持的,但m$因為各種原因不允許工作站版的OS支持PAE,所以就造成了現在的現實。

  6. 所以正要配的機器,使用單根4G內存,直接上win7 64位,反正基本程序遊戲都能運行

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.