• 34

windows 7使用ram 最大還是3.2g?

yupog2003 wrote:
那為什麼微軟要讓XP...(恕刪)

SP1從頭到尾都不能支援超過4G 這是32位元系統的先天限制
因為32位元定址只能定到4G的位置 但是主機板上其他的零件也要位置
好比一輛飛機只有4096個位置 XP如果把4096都佔光了
那主機板其他人就沒位置做了 所以實際上32位元只能用到4096M=4G
但是因為XP要和其他人共享這4G 所以只能用到3.XG

至於有人一直說"XP SP1可以用到4G"這種論調哪裡來的我也沒頭緒
但是我可以很明確的說 不管系統顯是多少 目前的XP VISTA 7 32位元版本
就是只能用3.XG
其實最重要的是,
東西是它設計的,
我們能講什麼?
大不了就不要用~~~
之前在賣NB的時候,
就一堆客戶跟我說VISTA難用,
但是,大家還是非windows不用,
又不肯學其它的介面,
養肥了微軟,
就是等著讓他宰割而已,
很簡單的道理。
我的Blog zoomike.com
市面上主流的x86相容32-bit cpu都支援PAE mode(pentium pro之後),多一層page轉換,
但多4根定址線可用,所以最多可定址到64GB,只是MS把這個功能依OS等級劃分,把一般個人
版的Windows版本鎖在4GB以內。
之所以有人講XP SP1是因為XP SP1並沒有把這個功能鎖起來。
audiofan wrote:
市面上主流的x86相...(恕刪)


原來如此,這位大大才有解決到我的問題~
A.32位元:
2^32=4,294,967,296

B.以4G記憶體計算(理論):
4GB=2^2 x 1024 MB
=2^2 x 2^10 x 1024 KB
=2^2 x 2^10 x 2^10 x 1024 B
=2^2 x 2^10 x 2^10 x 2^10 B
=2^32 B
=4,294,967,296

理論計算A=B
得知32位元可支援約略4G

印象列出,如有錯誤,請前輩指正.
twu2 wrote:
另外去解決? 那不就是可以用嗎? 何來先天不行呢?
明明就有 32 位元使用超過 4G 的解決方案, 並非真的不能用, 但是... 為什麼 MS 只在 server 上頭去做呢?


這是產品定位的問題吧..

難不成你可以要求雷諾汽車, 在你用 100 萬台幣買的車子裡, 裝上 F1 的引擎嗎??
papagoing wrote:
A.32位元: ...(恕刪)

真是...請哪個理工科的把記憶體定址那一張PO出來好嗎?
32位元能定址4G...但4G都給XP用...那硬體用啥?
要XP顯示4G...簡單...我改BIOS改成64G也可以!!!
這只是看爽的...PAGE檔還是只能用到3.2左右啦!
為啥不用用到3.2以上!!!
你要冒著資料遺漏和溢位的風險....那我請微軟做一套你專用的系統吧
記憶體又不是越多真的越好...優化比較重要啦!
twu2請你去看一下數位邏輯好嗎.....
高職的知識了 不要這樣自己貶低自己ok!?

如果真的要在32位元系統下用到超過4G
你可以用Ramdisk下去把沒用到的部份拉出來
當作虛擬記憶體用啦~

我記得之前就有文章~
上頭你寫的那是我的論點? 那我覺得你的邏輯能力可能有點問題.

4G 如果真的是 32 位元 OS 的限制, 那就不應該出現有 32 位元 OS 可以使用超過 4G 的 RAM.
而事實上, 透過 PAE 不就可以使用到 64G 了嗎? 這樣還能說這是 32 位元 OS 的限制嗎?

http://en.wikipedia.org/wiki/Physical_Address_Extension
目前常見的 32 位元 OS 對 PAE 的支援, 能用超過 4G 的多? 還是有 4G 限制的多呢?

XP 推出時的確沒什麼人用會到 4G 或以上的 RAM.
不過... 現在是什麼時候呢? 為什麼 W7 也認為消費者不會有人用到 4G 或以上的 RAM 呢?

這不是技術上的問題, 而是 MS 自己決定不做導致的限制.
同樣是 MS 的產品, 2000 年的 server 就有能力用 PAE 來使用超過 4G 的 RAM, 而在將近十年後要推出的 W7 仍有這個限制. 這樣會是因為做不到嗎? 還是只是不想做呢?

我的論點不過就是, 4G 不是 32 位元的限制, 單純只是 MS 不想做而已.

PS. 還高職的常識? 貶低自己? 寫這句話的人該自己想想這些對誰說會比較合理吧.
這個問題...說真的...即使是正在念資訊科系的,不清楚相關理論跟實務背景資訊的,所在多有,絕對不要用2^N次方這種計概所學的基本二進位算數來解釋N位元作業系統能夠管理的實體記憶體的問題...廿幾年前的16位元DOS為何能夠管理1MB(2^20)的空間,而不是只有2^16=64KB?最早版本、基於(也是16位元)80286處理器的OS/2作業系統,為何能夠管理16MB(2^24)的實體記憶體?同樣是16位元處理器,為何在8086/8088之後,還要推出80286?

一些最常見關於32位元處理器/作業系統的誤解一定要先破除,錯誤觀念才不會一傳再傳:

32位元處理器並非一定只能有32條位址線
例:Pentium Pro(36條)、Motorola/Freescale PowerPC e500(36條)

32位元處理器並非一定只能有32條資料線
例:Pentium(64條)、80386SX(16條)、Motorola 68000(16條)

32位元作業系統並非一定只能管理2^32=4GB的實體記憶體/實體定址位址
例:32-bit的Linux、FreeBSD、Solaris、Win Server 2003/2008 Enterprise、以及移除封印後的Vista/Win7(都可到64GB)

32位元處理器/作業系統所提供的定址模式,並非一定只能讓32位元程式存取2^32=4GB的定址空間
例:透過IA-32的Selector:Offset定址模式,能提供予每個程式的虛擬定址空間上限是2*8192*4GB=64TB

2^32=4GB是IA-32作業系統在Flat定址模式每個執行中的process所能擁有的虛擬定址空間上限,拿來解釋IA-32作業系統能夠管理的實體記憶體總量?一整個張冠李戴....32位元Linux、FreeBSD、Solaris、Windows Server 2003/2008 enterprise版這些身心健全的IA-32作業系統,都可以管理到遠超過4GB、最高到64GB的實體記憶體,而且這些並非全部都是伺服器作業系統。

32-bit WinXP SP1雖然安全性極差,但純就能管理的記憶體來說,在啟動PAE以及Memory re-mapping的情形下,絕對可以管理超過4GB以上的實體定址位址,不信的人弄一版親自裝裝看作個實驗吧!從32位元WinXP SP2之後一直到最新的Win 7,才都被微軟加上了一道只能管理4GB實體位址的封印。

不少人似乎把PAE視為伺服器作業系統專用的模式,跟IA-32架構是分開來看的,但是從PAE作為IA-32架構的重要延伸被定義出來後一直到今天,早已經比從IA-32誕生到PAE被定義還來得久了(沒有PAE的80386/80486/Pentium/Pentium MMX,有PAE的Pentium Pro/Pentium II/Pentium !!!/Pentium M/Pentium 4/Pentium D/Core Duo/Core 2 Duo/Core 2 Quad/i3/i5/i7/Celeron/Xeon家族/Pentium Dual-Core),另外從AMD Athlon處理器也早早就提供了PAE模式,所以今天幾乎都不特別強調是"Intel" PAE mode了。

另一個常見的誤解是PAE不穩定...但在Intel 64/AMD 64誕生之前,許多用於各式各樣用途的伺服器,就已經是在PAE模式下運行Linux、Windows Server....等等32位元作業系統,並把記憶體加到上限64GB(特別是資料庫應用),何來不穩定之有?

還有一個常見誤解是認為今天的主流Windows作業系統還預設處在IA-32最原始的32條位址線實體定址、而啟用PAE模式是很稀有的事。事實上PAE模式的運用已經十來年了,在今天最普遍、絕大多數人在用的主流32位元XP/Vista/Win7系統上,PAE模式都已經預設被啟用了,這是因為目前所有的處理器幾乎都支援eXecute Disable(XD, Intel)/No eXecute(NX, AMD)功能,配合從XP SP2開始提供的Data Execution Prevention(DEP),提供軟硬體協同的防止緩衝溢位攻擊安全防護。

但是對於處理器跟作業系統來說,在32位元模式下要提供硬體XD/NX支援,處理器本身必須先被設定處於PAE模式。而從XP SP2以後到Vista SP2、Win 7,預設值都是啟動軟硬體協同DEP(安全性功能應該沒人不要吧!),因此除非您刻意從BIOS關閉處理器的XD功能(沒事不建議這樣玩,地球的網路是很危險的),不然作業系統都會預設先啟用PAE模式。您去看絕大多數人的Windows XP系統基本資訊那一頁,就算只有512MB記憶體,也幾乎都會看到"實體位置延伸"字樣,這表示XP已經處於PAE模式了,如果是Vista/Win 7,可以用Everest(已改名AIDA64)這個著名工具去確認。

參考資料:AMD 和 Intel 這兩家公司都已經定義並且生產了支援 DEP 的 Windows 相容架構。如果要使用這些處理器功能,處理器必須以「實體位址延伸」(PAE) 模式執行。不過,Windows 將會自動啟用 PAE 模式來支援 DEP。使用者不需使用 /PAE 開機參數個別啟用 PAE。

問題來了:既然PAE已經被預設啟動了,為何32位元XP/Vista/Win7還是定址不到4GB以上的實體位址?這是微軟自己本身刻意的技術性市場區隔,事實上處理器跟晶片組都已經被XP/Vista/Win7設定為能夠處理36條位址線實體定址的狀態(PAE啟動),只是XP/Vista/Win7卻又很彆扭的拒絕去處理任何定址在4GB以上的實體定址位址,前面才會有網友提到利用Gavotte RAMdisk這種自力救濟方案:既然處理器跟晶片組已經處於能夠處理36條位址線定址的狀態,但是XP/Vista卻關起門來鬧彆扭,那就讓Gavotte去存取那些XP/Vista/Win7拒絕承認、被定址在4GB以上實體位址的記憶體做成RAMdisk,以物盡其用。

Gavotte已經有很多網友快樂的使用中了,因此不用懷疑在32位元模式下絕對是可以存取到超過4GB的實體記憶體的。另一個範例是微軟幾乎刻意絕口不再提起的XP SP1,啟動PAE後,也是可以定址到4GB以上的實體位址。您想想看,XP SP1是哪一年推出的?另外一些知名的商業軟體SuperSpeed RAMdisk Plus以及VSuite RAMdisk,也早已經提供類似Gavotte的功能了。

參考資料:
Licensed Memory in 32-bit Windows Vista
Memory Limits for Windows Releases

因此問題出在微軟對於已經預設啟動PAE模式的消費性32位元XP/Vista/Win7、卻又加上一道額外的封印,並非PAE本身是什麼奇怪、非正規的模式。即使是64位元的Vista、理論上可以管理多到目前主機板上插不下的記憶體,其Basic版也被限制在"只能"用8GB的實體記憶體。而同樣充分支援PAE的32位元Windows Server作業系統,低階版本能夠管理的記憶體也被微軟刻意限制在4GB,而中高階版就可以管理到64GB的實體記憶體,這些都是市場區隔。

綜合上述,PAE早就是IA-32架構以及IA-32作業系統密不可分的一部份了,因此不用將IA-32跟PAE刻意分開來看

關於PAE啟動後的效能損失,也不用刻意去曲解放大它,因為如前面所提,PAE模式幾乎都是預設就會被Windows啟動的,不需要去改什麼boot.ini(XP)、或用bcdedit強制啟動(Vista/Win7),就算PAE有效能損失,微軟也已經幫你預設打開了。但是有所失必有所得,啟動PAE後存取多一層分頁表的效能損失(啟動PAE後,分頁表的查詢由兩層變三層,而64位元Vista/Win7的分頁表的查詢,原本便是三層,如果要講效能損失,PAE跟64位元一樣都是三層),透過如Gavotte Ramdisk這種應用方式,由於能夠被充分運用的記憶體變多了、因而少去存取硬碟這種相對慢很大的儲存媒體,絕對能夠將其彌補回來。已經很多網友將Page file、Temp folder、Internet temp files...指向Gavotte/SuperSpeed/VSuite作出的RAMdisk,用過的人絕大多數對效能改進都是滿意的。

參考資料:http://www.linux-cn.com/html/news/hot/20091231/59678.shtml

同理,如果32位元XP/Vista沒有被封印,能夠自力管理的記憶體因預設開啟PAE變多了、 因而能少去硬碟存取分頁檔、多將程式保持在記憶體中不要swap出去到硬碟、多一些記憶體作為SuperFetch的快取,也能夠將多存取一層分頁表的效能損失彌補回來。(3月更新:最近還真的有將32-bit Vista/Win 7的封印解除的方法出現,詳見257樓、219樓,XP不適用)

今天問題根源在於微軟的區隔,而非PAE有何原罪....
  • 34
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 34)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?