![]() |
||
Major Member
![]() 加入日期: Dec 2006
文章: 168
|
![]() 自己做的筆記 希望跟版上的高人們討論看看 確定自己思路對不對
--- 如果你的電腦裝了大量的記憶體 有可能會沒辦法完整利用到全部的記憶體 以今年西元2011年來說 通常指的為4GB以上 如果今年是1986年 那可能是指1MB以上 當年DOS存取大於640k記憶體的問題跟現在XP的3.XXG問題其實有蠻多相近之處的 而要完整利用到所有記憶體 大概牽涉到3個部份 CPU 晶片組 OS 1.CPU 早在1985年intel發表80386時 這顆號稱是完整32位元的處理器具有32位元的位置匯流排(address bus) 因此 80386可以定址到4GB的記憶體 所以32位元的CPU只能使用4GB的記憶體空間? 並不盡然 intel在1995年推出的Pentium Pro其位置匯流排的寬度為36位元 其定址能力為64GB 透過PAE的技術 32位元的作業系統能透過換頁的方式夠存取超過4GB的記憶體 也就是說把空間割成小格子 每個格子編好號 就可以用32位元的位址 (格子編號) 管理36位元的實體記憶體 幾乎所有之後的CPU都支援這個PAE (有例外 FSB 400Mhz 的Pentium M 不支援) 所以32位元的CPU存取超過4GB的記憶體基本上是沒問題的 而64位元的CPU 如果真的有64位元的位置匯流排 其定址能力為16EB (2^64≒1.8×10^19) 但聽說現在的CPU跟OS都沒實做完整的64位元定址 (只做到48位元?) 2.晶片組 在4GB的記憶體空間裡 高位的位址被分配給系統裝置 (PCI device VGA 等) 只要送資料到指定的位址 或從指定的位址取出資料 就是對該裝置進行的操作 這樣要存取裝置上的資料相當的方便 可是 當存放資料的記憶體空間大到超過分配給裝置的位址 那區的實體記憶體就會因為沒有位址而成為黑戶 這時候就需要adderss remapping 把超過位置的實體記憶體映射到4GB以上 這裡有個不錯的比喻 假設今天政府提供了4000個門牌號碼 但是規定其中3001~4000號是要留給政府機關用(PCI device VGA) 假使你今天蓋了4000間房子(插了4GB RAM) 你的門牌號碼最多只能領到1~3000號 也就是說你從3001~4000 一共1000間(1GB)的房子不會有門牌號碼 必須被放棄 如果政府今天新增了門牌號碼 4001~XXXX (晶片組有了remapping function) 為了民眾在跟政府機關往來時不會跑錯地方 政府機關還是使用同樣的號碼 3001~4000號 (為了相容性) 而你那原本被放棄的那1000間房子(1GB) 就可以從4001號領到5000號並繼續供人使用 所以 不支援remapping的晶片組 有可能在BIOS中看到 installed 跟 available 不一樣 回到實務上 intel在955以後的晶片組支援remapping 所以如果是945晶片組裝到4G的只有殘念了 3.OS 主要討論Windows 其他什麼Linux FreeBSD就算了 先看32位元的部份 有支援到4GB 看的到也用的到的 Windows 2000 Professional Windows 2000 Server Windows XP SP1之前 (不能SP2 SP3) Windows Server 2003 Standard Edition (不能SP1) 支援超過4G Windows 2000 Advanced Server 8 GB Windows 2000 Datacenter Server 32 GB Windows Server 2003 Enterprise Edition 32 GB Windows Server 2003 Datacenter Edition 64 GB Windows Server 2003 SP1 Enterprise Edition 64 GB Windows Server 2003 SP1 Datacenter Edition 128 GB 號稱有到4G但用不到4G的 Windows XP SP2以後 Windows Server 2003 Standard Edition SP1 Windows Vista Windows 7 附帶一提 Vista更新到SP1後會看的到4G 但還是用不到 64位元部份 Windows XP 128 GB Windows Vista Home Basic 8 GB Windows Vista Home Premium 16 GB Windows Vista Business 128 GB Windows Vista Enterprise 128 GB Windows Vista Ultimate 128 GB Windows 7 Home Basic 8 GB Windows 7 Home Premium 16 GB Windows 7 Professional 192 GB Windows 7 Enterprise 192 GB Windows 7 Ultimate 192 GB 2003的64位元版基本上支援非常大的記憶體 好 為什麼微軟在XP更新到SP2後關閉了以PAE支援大記憶體的支援 官方說法是 這種作法會造成系統不穩定 驅動程式不相容等 如 http://support.microsoft.com/kb/283296/zh-tw 所以為了不必要的麻煩 乾脆關掉 但XP還是支援PAE 可以在boot.ini加上/PAE以強迫開啟 但沒有增加記憶體的作用 如果CPU有啟用NX或XD XP也會自動啟動PAE以使用這些功能 另外 記憶體的支援大小基本上就是微軟的市場區隔 要大記憶體請買伺服器版本 (640k對於大部分的人來說夠用) 最後再補充 32位元的應用程式只能使用2GB的空間 要突破請在boot.ini 加上/3GB 把系統內核空間限制住 但如果記憶體超過16GB就不能開/3GB 因為系統內核需要超過1GB的空間來管理超過16G的記憶體 結論是 現在記憶體很便宜 網路上謠言很多
__________________
我的露天拍賣 有很多舊東西 ![]() |
|||||||
![]() |
![]() |
New Member
加入日期: Apr 2010
文章: 8
|
感謝大大的分享!
不過看完大大的文章後, 敝人心中還是有一個的疑問未能得解, 想提出來請教大大,或是版上的其他先進,謝謝... 問題是這樣的, 我打算待明年Intel的Ivy處理器推出後,組一台新的電腦, 若按現實電腦的主流的記憶體大小來推算, 屆時我所組的新電腦,所使用的記憶體想必會大於4G以上, 假設先不考慮其他的軟硬體的狀況, 單就記憶體與作業系統而言, 若在新的電腦上,運行32位元的XP SP3,可否會有問題? 依大大的文章來看,在32位元的XP上, 所謂 ”號稱有支援到4G,但實際上用不到”的情形, 是否意味著,在XP SP3運作時, 如果使用一條8G的記憶體, 那其中有一大半(即4G以上的記憶體空間), 是作業系統無論如何也使用不到的呢? |
||
![]() |
![]() |
Power Member
![]() ![]() 加入日期: May 2005
文章: 506
|
引用:
以Windos 7 32bit為例 使用2條2G記憶體時,作業實際可用的記憶體大約為3G 剩下的部分如果還要利用,就只能分享給顯示晶片,或是設定為RAMDISK |
|
![]() |
![]() |
Elite Member
加入日期: May 2002 您的住址: 地球的上面..
文章: 5,854
|
![]() Intel的chipset文件(datasheet)每次老調重提..
可以自行去翻閱.. |
![]() |
![]() |
Major Member
![]() 加入日期: Dec 2006
文章: 168
|
引用:
在新的電腦上 運行32位元的XP SP3 應該是不會有問題的 至於作業系統抓不到的空間部分只能使用RAMDISK來做利用了
__________________
我的露天拍賣 有很多舊東西 ![]() |
|
![]() |
![]() |
New Member
加入日期: Apr 2010
文章: 8
|
引用:
嗯...多謝以上幾位大大解惑,敝人受教了... |
|
![]() |
![]() |