locked
32/64位元作業系統能支援的最大記憶體麼迷思? RRS feed

  • 問題

  • 這個問題在 64bit 的作業系統問世前,從來也沒聽說,我也曾經在 P-III 的年代,將記憶體加到 4GB ,記得當年的 Windows2000 在「系統→內容」裡所顯示的也是完完整整的 4GB 啊,既然抓不到 3.25G 以上的記憶體,那怎麼能完整顯示 4GB 呢?

     

    自從 64bit 的硬體逐漸成氣候,然後 64bit 的作業系統(WinXP 64bit / Vista 64bit)問世後,網路上開始流傳著這個問題的討論,以下是這陣子爬文所得知的幾種說法:

    ˙32bit 作業系統只能到 3.25GB 的 RAM,要 64bit 系統才能支援到 4GB 以上的 RAM。

    ˙32bit 作業系統只能支援到 4GB 的 RAM , 3.25GB 的限制是 WinXP 本身的問題,

     如果是 Vista 的話就能支援到 4GB;但是 4GB 以上還是得要 64bit 作業系統才能支援。

    ˙是 WinXP 只能支援到 3.25GB,如果是 Vista 的話,管它 32bit 還是 64bit,就算加到 8GB 都能支援。

     

    以上是目前網路上盛傳的幾種說法,到底哪種才正確呢?還是說根本沒這回事?若是真的有這種限制的話,可否列出計算法證明,為何 32bit 作業系統只能支援到 3.25G(或4G)呢?

     

    另外,我臨時又想到的一個疑問:其實當年在還沒有 64bit 這玩意兒(包括軟/硬體)時的代時,早已有雙 CPU 的 Xeon 工作站/伺服器平台,而這些雙 Xeon 主機板也都做了滿滿滿的記憶體插槽,而規格中也都寫了能夠支援 8GB、16GB....(甚至更大)的記憶體,那如果說當年的作業系統根本不知原這麼大,那硬體做到這麼大幹嘛?是幌子嗎?

     

    .
    2008年5月4日 上午 10:53

解答

  • 分兩段,Windows Server 本來就支援 4GB 甚至以上,當然支援的狀態視版本而定。

    所以你的 Win2k 應該是 Server 吧~ 可透過 AWE 支援到 4 GB。

     

    Windows Client 支援比較低,因為原先認為單機 2 GB 就很夠用了,所以 Vista 32 bits 在 SP1 以前不行到 4GB ,到 SP1 以後才可以,而 Win64 記憶體定址本來就比 Win32 多,所以原先就可以直接定址到高容量,能到多高要看看有沒有在 OS 內設限,畢竟要保護 Server 銷售量,Windows Client 還是會做一定的限制。

     

    Windows 2003 Ent / Data Center 兩種版本記憶體可再上去,記憶體限制細節忘了,當初比較表有寫,印象中是 8GB / 32GB。

    但是 Xeon 本身出來時,Win64 就跟著上市了,只是當時沒有 64 bits 的 MUI 可灌,所以只有純英文的作業系統,比如說 2003 年底我去聽高速運算的研討會,廠商就用 WinXP 64 bits 跑一套視算軟體。當時反而 EM64T 還沒普級,大概是 2004 年 EM64T 的 CPU 才開始普及,然後才比較多人測試 Win64 。

    2008年5月4日 上午 11:09
  • 4GB 的問題,記得好像在 Windows NT 還是 Windows 2000 時代,就由作業系統內建的 PAE (Physical Address Extension) 功能來擴大 32 位元可支援的記憶體大小,在沒有啟用 PAE 的情況下,作業系統確實是抓不到 4GB 的記憶體。

     

    PAE:

    http://support.microsoft.com/kb/283037/zh-tw

    http://en.wikipedia.org/wiki/Physical_Address_Extension

     

    Server 的作業系統則比較沒這種問題,像 Windows Server 2003, Windows Server 2008 都可以直接抓取到 4GB 的 RAM,當然那種超大型記憶體支援的作業系統,一定都有支援的架構來延伸支援的記憶體數量,Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 有一種 Address Windowing Extension (AWE) 的能力,讓 Windows 作業系統可以擴大到 8GB, 16GB, 32GB 甚至 64GB。

     

    AWE:

    http://en.wikipedia.org/wiki/Address_Windowing_Extension

     

    2008年5月4日 上午 11:18

所有回覆

  • 分兩段,Windows Server 本來就支援 4GB 甚至以上,當然支援的狀態視版本而定。

    所以你的 Win2k 應該是 Server 吧~ 可透過 AWE 支援到 4 GB。

     

    Windows Client 支援比較低,因為原先認為單機 2 GB 就很夠用了,所以 Vista 32 bits 在 SP1 以前不行到 4GB ,到 SP1 以後才可以,而 Win64 記憶體定址本來就比 Win32 多,所以原先就可以直接定址到高容量,能到多高要看看有沒有在 OS 內設限,畢竟要保護 Server 銷售量,Windows Client 還是會做一定的限制。

     

    Windows 2003 Ent / Data Center 兩種版本記憶體可再上去,記憶體限制細節忘了,當初比較表有寫,印象中是 8GB / 32GB。

    但是 Xeon 本身出來時,Win64 就跟著上市了,只是當時沒有 64 bits 的 MUI 可灌,所以只有純英文的作業系統,比如說 2003 年底我去聽高速運算的研討會,廠商就用 WinXP 64 bits 跑一套視算軟體。當時反而 EM64T 還沒普級,大概是 2004 年 EM64T 的 CPU 才開始普及,然後才比較多人測試 Win64 。

    2008年5月4日 上午 11:09
  • 4GB 的問題,記得好像在 Windows NT 還是 Windows 2000 時代,就由作業系統內建的 PAE (Physical Address Extension) 功能來擴大 32 位元可支援的記憶體大小,在沒有啟用 PAE 的情況下,作業系統確實是抓不到 4GB 的記憶體。

     

    PAE:

    http://support.microsoft.com/kb/283037/zh-tw

    http://en.wikipedia.org/wiki/Physical_Address_Extension

     

    Server 的作業系統則比較沒這種問題,像 Windows Server 2003, Windows Server 2008 都可以直接抓取到 4GB 的 RAM,當然那種超大型記憶體支援的作業系統,一定都有支援的架構來延伸支援的記憶體數量,Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 有一種 Address Windowing Extension (AWE) 的能力,讓 Windows 作業系統可以擴大到 8GB, 16GB, 32GB 甚至 64GB。

     

    AWE:

    http://en.wikipedia.org/wiki/Address_Windowing_Extension

     

    2008年5月4日 上午 11:18
  • 嗯,當時用的是 Win2K Advanced Server 沒錯~

     

     

    所以說能支援到多少的 RAM ,除了與 32bit 的定址能力有關之外,主要還是看 OS 怎麼限制以及運用延伸支援的技術囉~

    這樣我知道了,感謝二位大大的解惑~

    2008年5月4日 上午 11:29