開頭提到的問題,跟記憶體的定址技術有關,跟系統統籌分配記憶體數量也有關係。但在進入主題之前,不得不先講講XD,PAE,以及DEP的三角關係 … …
XD(Execute Disable Bit,不是大笑):Intel處理器的病毒防止技術;
PAE(Physical Accessing Extension):記憶體定址延伸;
DEP(Data Execute Protection):資料執行防止。
有拼錯請指正 = = 上述三者為以Intel處理器為首,三位一體的硬體防毒技術,主要為防止網路上為數眾多的蠕蟲攻擊,造成緩衝區溢位(Buffer Overflow)的問題。緩衝區溢位為網路駭客慣用的攻擊手法,特點在於"難抓",而且中毒以後將造成系統很大的負擔,並使系統不斷執行錯誤的程式,甚至掩蓋過主要程式的執行,接著被駭客開後門,搞一些有的沒的。原理在於想在系統處理的資料流中(程式受到保護的區塊)插入額外的程式碼必須擁有較高的權限,一但出問題,就表示駭客可以隨心所欲。而Intel的XD會將記憶體中的緩衝資料做分類,如果裡頭的資料被判斷為惡意程式,那就會將它停止執行。
DEP也是類似的原理,只是大致上DEP屬於軟體層級,而XD是硬體層級。而三者的關係在於,當您從BIOS設定打開XD技術的時候,會連動開啟PAE;而DEP是當您在Win XP升級到SP2的時候就會強制加入的功能,但啟動DEP的前提在於PAE必須是開啟的。
換句話說,DEP是從很久以前就有的,但當時的硬體架構沒有XD,將記憶體容量插到爆的人也不多,自然也很少人開PAE。而隨著時代進步,有錢人越來越多大家一不小心就買了支援XD技術的Intel處理器,一不小心就將BIOS設定中的XD給執行了,然後XD-PAE-DEP三位一體形成強大的防護網,一不小心就將自己正在跑的程式給擋了下來 … … Orz
如果您的程式常常被擋下來,那我想該程式大概是駭客的好目標 … … 不過反正大家膽子大,您只要到控制台/系統/進階/效能設定/資料執行防止下,將您常用(而且常被擋)的程式設定成例外,那也許可以解決。
-------------------------------------
關於系統抓不到4GB
屁話扯那麼多是為了抬昇PAE(記憶體定址延伸,以下略稱為PAE)的身價。接下來要講講為什麼記憶體裝了那麼多,但卻只能夠抓到3.xxGB,甚至連3GB都不到?
其實這跟32位元的作業系統有直接的關係,2^32byte就是4GB(根據呢?根據呢?)。以WinXP SP2來說,系統能夠直接控制分配的最大記憶體數量就是4GB。但事實上,同樣是32位元作業系統的Windows Server 2003就沒有這樣的限制。不過無論如何,只要您是用XP的32位元版本,怎麼就是會被限制在4GB。而這4GB裡頭,還包含了系統硬體的頻寬或是記體體需要定址。什麼硬體上頭會有記憶體呢?當然就是顯卡啦!一張比較正常的主機板上頭裝了一張PCI-E介面的顯卡,再裝上再正常不過的硬體設備,通常能夠抓到的記憶體大概只會有3.25GB。如果您把卡給拔了,換張PCI的無力卡上去,那大概可以救回來256MB左右吧。相反的,如果您是熱血玩家,給它來個雙卡SLi,系統可能會抓不到3GB的可用記憶體。三卡SLi或是Hyper CrossFire當然就更刺激啦!!!
換句話說,泥裝了8GB的記憶體,而系統需要768MB左右的定址空間,但是系統最多只能控制到4GB的空間。系統的特性是,先抓出自己的硬體所需要的 768MB,剩下的再給記憶體做定址,接著就是有4.75GB的記憶體沒有定址到,沒定址到就是抓不到,然後就白白的浪費了。
-------------------------------------
影響定址空間的關鍵
那 … … 是不是只要將系統換成"傳說中"的x64(64位元)作業系統,就可以順利抓到8GB的記憶體呢?
理論上來說,只要板子的說明提到可以安裝8GB的記憶體,安裝x64的作業系統後,這問題應該可以迎刃而解。它會變成另外一個問題,系統抓到的是7.25GB的容量 … … = =
沒錯,以Win XP x64來說,支援128GB的記憶體配置。但要安裝x64系統的關鍵在於,CPU是不是支援64位元的指令集,以及主機板上的其它匯流排是否支援64位元指令集的轉譯。另外就是安裝之後,硬體驅動程式的支援等等。如果全部過關,真正的關鍵在這裡:影響記憶體定址的主角是CPU以及主機板的北橋晶片 … …
-------------------------------------
CPU影響記憶體定址
支援64位元指令集跟支援64位元的記憶體定址空間是兩回事。但支援更多的記憶體定址就現在的CPU來說一點都不是難事,否則系統就不會動不動就能夠開啟PAE這玩意兒了。
很久以前的CPU確實只能定址32位元,也就是4GB的記憶體容量,但是Intel很早就發現這個問題,所以從Pentium Pro開始--聽說是比Pentium II還早一點--就將旗下CPU的記憶體定址能力提升到36位元,也就是64GB的大小。換句話說,如果我家的Pentium III 450Mhz的CPU還在的話,灌了XP也是可以開PAEㄚ!!!!!
一直到目前為止,CPU不算構成影響記憶體容量大小的關鍵。
-------------------------------------
北橋晶片影響記憶體定址
這就是真正的關鍵所在。雖然早在Pentium Pro的時代,CPU就足以定址64GB的記憶體空間,但仔細想一想,那個年代,一張主機板的說明書似乎都是那麼寫著,最多支援1GB,1.5GB,或是2GB的記憶體。
沒錯,主機板上的北橋晶片也扮演著影響記憶體定址空間的重要角色,以目前的硬體架構來說,系統能用多少記憶體,完全就看北橋晶片支援多大的記憶體--當然這是因為目前Intel架構的平台,記憶體控制器是在北橋晶片上頭,AMD的CPU內建記憶體控制器,應該是AMD CPU支援多大記憶體,板子就能裝多大的吧 = =
晶片廠商--其實也就還是那幾家 CPU,GPU的龍頭大廠--近年來才開始重視這個問題,以Intel平台來說,包含945在內的,更早以前的晶片組,都只支援到最大最大最大4GB, 32位元的定址空間;而從955開始,以後的晶片組,都開始支援到36位元的定址空間,也就是跟CPU一樣是64GB的大小啦!剩下的就是看主機板廠商怎麼去"閹割"啦 = =
-------------------------------------
還我768MB來!!!!!!
不過只要系統還是只能就4GB的記憶體作分配,那我們還是沒轍。大多數人還是使用32位元的作業系統,最重要的因素應該就是軟體相容性的問題。至少,小弟就沒聽過專為64位元系統打造的WOW … …
其實不用擔心啦,還是可以用32位元的相容模式下去跑程式啦,不過會比較不順喔 XD
總之呢,在硬體支援64GB記憶體的情況下,跑32位元的系統,就像是系統在一塊64GB的記憶體空間中,畫出4GB的大小,然後據地為王。這裡頭一樣包含768MB的硬體定址空間,3.25GB的實體記憶體,外頭還是有4.75GB的記憶體沒有定址,被白白地浪費掉。
這時候,只有Gavotte RamDisk這款軟體可以救我們!!只要您的硬體架構符合前一段所說的,北橋比945還要新!至少說明書跟你說,你的板子可以加裝8GB的記憶體,那把被吃掉的記憶體拿回來就不是難事!!
首先,自己去找Gavotte RamDisk這個軟體,要2008版的喔!!
首先要到BIOS中打開Memory (Hole) Remapping(記憶體映射)這個功能,如果您的北橋支援超過4GB的記憶體,通常會有這個選項。如果沒這個選項,那就看說明書有沒有載明,應該都是預設開啟。如果說明書沒寫,請先到官網繞一繞,也許能有些收穫。
然後系統要打開PAE喔!PAE也可以單獨打開,在C槽根目錄下有個隱藏的唯讀檔"boot.ini",在最後的最後字串後,加上" /PAE",就可以不開XD,單獨開啟PAE。PAE有成功開啟的話,在系統資訊最下方可以看到"實體定址延伸"的字樣。
(boot.ini隱藏許多祕技,例如可以讓應用程式存取超過2GB的記憶體的" /3GB"等,很妙!)
安裝Gavotte RamDisk,可以參考上頭的連結。安裝後先不要改磁碟代號以及容量大小,接著在相同資料夾中的ram4g.reg檔案上點右鍵,選擇合併,它就會自動在系統登錄檔中加入一個字串。意思好像是連RamDisk這玩意兒也得開PAE的樣子。
然後重開機,你就會發現系統中多了一個768MB的"RamDisk",再加上原本系統抓到的3.25GB實體記憶體,加起來不多不少正是4GB!等於間接地將32位元系統下所能統籌分配的記憶體全給用到了!!
等等!我裝的是8GB記憶體啊!怎麼這個該死的笨貓頭說只能出現768MB呢?客倌別急,如果您裝的是8GB,這樣那麼Ramdisk還會再自己長大 4GB,等於是4.75GB啊!這真是太美妙啦!!如果您還要繼續加大這個RamDisk,那它就會從實體記憶體中再畫一塊過來。
如果是小弟的話,大概就是2GB用做實體記憶體,然後6GB當成RamDisk跑。可以指定它做Photoshop,WinRAR,WinXP系統的暫存檔以"提高"系統作業的運行效率,也可以拿來做電驢的暫存資料夾--桌機不要這樣幹喔--關於RamDisk的優劣,可以參考小弟的舊文章(
一,
二)。
至於原本用作系統硬體的定址空間跑哪裡去了呢?我不曉得,這小弟真的不曉得,也許是透過HAL(Hardware Abstraction Layer,硬體抽象層)的運作,轉移到超過8GB,但仍限制在64GB內的其它區塊了吧 = =。RamDisk的PAE真是很抽象阿,聽說這部份是不能將記憶體定址當成是一種線性的概念… …
-------------------------------------
保留RamDisk的資料
RamDisk如果拿來當成瀏覽器的暫存空間,絕對可以提高瀏覽網頁的速度!不信?找個頁面掛上超多圖片的網頁跑一跑,用硬碟或是RamDisk當暫存碟的,流暢度一定不一樣!!至於如何改變瀏覽器的暫存檔存放空間,一樣可以參考上頭喬瑟夫先生的網誌。
另外,RamDisk的資料是一關機就會消失。好處!不用再清暫存檔啦;壞處:每次瀏覽看過的網頁,資料都要重新載入,浪費時間。這只需要做出兩個批次檔,讓系統在關機的時候,整塊地將RamDisk的暫存檔回存到硬碟,並在開機的時候整個寫回去,就O.K.啦!不過就是開關機的時候多花點時間啦!!
沒差啦,反正開關機就是要等的嘛!!
開記事本,將檔案加上".bat"就成了批次執行檔。
關機回存
xcopy x:\*.* d:\temp\*.* /e /y
"x:\"代表您的RamDisk磁區代號,"d:\temp"代表您準備存放RamDisk資料的資料夾,都是可以改的。
開機寫入
xcopy d:\temp\*.* x:\*.* /e /y
就是順序反過來囉!!
然後"執行""gpedit.mcs",開啟本機群組原則,然後選"本機電腦原則","電腦設定","Windows設定","指定碼 啟動/關機",再分別將檔案新增進開關機的指令碼中。
順帶一提,這個群組原則只存在於Win XP Professional以上,Home Edition 是沒有的,將檔案硬是拷貝過來也是沒用。
做完這個流程,巨大RamDisk的活用就算是完成啦!!拖一些音樂檔案進去,再用播放器來聽,就算聽到人掛掉,RamDisk也是分毫無損喔!!!
-------------------------------------
主題‧該死的4GB
案例一
某貓頭在兩年前,興高采烈地與某Cara從某處買回某牌NB,雖然科技日新月異,CPU製程已經從65nm走向45nm,NB的CPU代號已經從 T2xxx/5xxx/7xxx,走到現在的T8xxx/9xxx,在花錢買台新NB似乎比較划算的客觀環境下,某貓頭還是很熱中於提升這台兩年NB的性能。
其中,最容易升級的似乎就是記憶體部分了。雖然,硬碟應該買7200rpm 80GB左右的,然後開啟AHCI讓性能提升約30-40%(按轉速算,毫無根據);雖然,CPU應該一次就攻NAPA平台(按:第三代Centrino 平台的代號)的頂,T7600 2.33Ghz,FSB 667Mhz,L2=4MB。但換硬碟要曠日費時地安裝系統,換CPU要燒很多很多小朋友,還要做大工程(拆機),目前實在沒有那個心力。果然把RAM加到4GB是最容易的事情!!
然後就遇到Intel 945魔咒,這真的是魔咒,上頭那個終極Gavotte RamDisk也沒辦法將消失的"1GB"--對!不是768MB,因為NB上頭有兩個PCI-E匯流排,都有東西!!--給救回來!PAE, RamDisk一起開,就會沒辦法進入作業系統 … …
為什麼?因為系統硬體需要的定址空間沒有地方可以搬了 = =
鄉民阿!!如果您的系統架構不是在955以後的,想要4GB的記憶體真的是無解阿!換64位元的系統,事實還是不會變,最多就是像Vista SP1一樣,告訴泥泥有裝4GB的記憶體,但實際上能用的還是只有3GB上下阿!!!!!!!
案例二
某Cara最近為了WOW改版到v2.4.1而感到十分煩惱,因為用了N年的P4平台,在3DMark06上只能拿到700多一丁點的分數,跑起WOW十分的不夠力。於是斥資一些小朋友組了新主機。
新主機有三個主要特點:1)三位一體的病毒防護;2)可以把消失的768MB給討回來;3)以後跑WOW只會受限於頻寬了。
但近來跑WOW當機連連,最常見的情況就是莫名地重開機。WOW的錯誤報告上頭明顯指向是記憶體的問題。於是某人開始排除跟記憶體有關的問題… …
DEP,Clear … … 三位一體防毒破功,其實從P4時代就不存在了;
關掉3GB指令,Clear … … 大記憶體優勢消失;
Gavotte RamDisk,Clear … … 768MB再度消失;
增加系統槽的PageFile,Clear … … 這是個疏失,最好保留一些;
還是當個沒完 = =
最後,把XD跟PAE一起關了,這下子WOW才沒有繼續當。我猜是因為WOW的記憶體控制做得不好,PAE一開下去,記憶體不曉得給它尋址尋到什麼地方去了 … …
當然,也有可能是因為網路上駭客橫行,隨機的攻擊很多,剛好是因為玩WOW玩太久,被那些攻擊份子給隨機搜到,因而發動攻擊。同一瞬間,被E8200的XD給擋了下來!!
擋了下來,WOW也當掉了 = = 總之呢,為了維持跑WOW的高度相容性,現代主機的優點是一個也用不到。看來組新主機帶給人的困擾也是不少阿!我們是應該為了跑WOW而忍受駭客的無差別攻擊?亦或是為了保護電腦--畢竟是工作所需--而不玩WOW呢?這真是令人玩味阿 XD