教你解開32位元作業系統4GB記憶體容量限制淺談記憶體的前世、今生、與來世

 

個人電腦的運算速度,隨著科技的日新月異、及製程與良率的提昇,運行效能有著飛躍性的成長。而當中記憶體技術的突破,伴隨著價格親民化與平價位,對於個人電腦的普及更是有著功不可沒的貢獻。此外,記憶體技術各領域的

應用,諸如:數位相機、隨身碟、手機等,皆對人類文明的發展,有著更上一層樓的突破。因此,筆者今天試為電腦DIY的讀者們,深入淺出地聊聊記憶體的發展史,及其相關運用。

 

 

■ 二進位的世界

每臺電腦的心中,至少都有一條記憶體默默在系統背後工作著。然而,許多人知其然而不知其所以然,對於記憶體的認識僅止於粗淺的概念,接著行人止步,一知半解。我們知道,絕大多數的電腦系統,運算作業都是二進位的世界,因此一直以來,科學家們不停找尋擁有「快速地開與關」物理特性的元件材料,加以模擬開發0與1兩種資料訊號,來作為電腦組件的一部份。

筆者這幾年來,不只一次被問到︰「人類在日常生活中,大多時候都使用十進位,為什麼電腦卻要設計成二進位呢?」這一切都要由西元1958年,創作出積體電路的基爾比與諾義斯兩人談起;一言蔽之,由於電腦是由一大堆的電路構成、運轉,因此人類利用電路上,電流的通過與否,這兩種相反的狀態來表示0與1,也就是不通電代表0,而通電代表1。自此,每一條電路,都可以記錄成0與1兩種狀態變化(Binary Digit),而摘自Binary的B結合Digit的it,我們就定義命名積體電路工作時的數據資料為Bit,也就是今天眾人耳熟能詳的位元。

 

圖 / 世界第一台電腦「Mark I」。有次電腦當機,眾人都找不到原因,經數小時的檢查,才發現原來有

一隻蛾停在Mark I的電路板上,因此造成當機,此後電腦出錯世人便稱之為Bug(蟲)。

 

 

■ 記憶體裡面住著滿滿的八位元資料

在數位資料的組成當中,最小單位是位元(bit),每個位元即代表0或1,對應到實體元件上,即為開與關;自此,硬體世界裡的開與關,和軟體園地裡的0與1,兩者之間開始有了一個完美的映射關係(Mapping)。

簡單來說,我們可以把位元想成電燈,有開與關兩種描述方式(0、1);但如果要讓以無數電路組成的電腦,摹擬出人類慣用的十進位數字規則(0 ~ 9),單只有一個位元是不夠的,必需要四個位元才足夠涵括,像0101和0001就是兩種不同的變化,因此四個位元總共有24種組合,也就是有0 ~ 15共計十六種變化。雖說四個位元已經超過了十進位中0到9,總計十種字元的需求,但資訊科學家卻也因此順水推舟,發展出一套十六進位的系統。

我們再深入一點討論,如果電腦想更進一步表示二十六個英文字母,再加上0~9共十個阿拉伯數字,則總共需要三十六個符號字元,那麼就至少需要六個位元,而六位元總共有六十四種變化,同時還可以表示英文字母的大寫與小寫與0 ~ 9十個數字。演變到最後,科學家們想將今日我們在鍵盤上所看到的各種符號,也就是所有電腦中會用到的字元,都給他一個對應的位元碼(像是英文字母大寫B,二進位表示即為01000010);這樣一來,只要使用者能把某件工作轉換成運算問題,並且以鍵盤組合出來的語言丟給電腦計算處理,那麼電腦就可以處理所有現實生活中,你能夠以鍵盤組合出來的各種問題。

而這些鍵盤中常用的各種符號字元接近兩百五十六種,因此,很自然地我們便以八位元(2的八次方等於二百五十六)當成一個組合,稱之為位元組(Byte),當成目前電腦中,資料傳輸的基本單位;而在記憶體內部,最小定址單位即為一個位元組,換句話說,你無法單獨存取1 bit的數據或者任意小於一個位元組的資訊。

 

圖 / 把八個位元想成八個電燈開關,每個電燈都有開與關(0與1)兩種狀態,因此總共有28種組合,

也就是256種狀態;其中00000000是第一種狀態,11111111是第兩百五十六種狀態。

 

 

 

■ 記憶體有分「揮發性」與「非揮發性」

多數常見的主機板皆具有二至八條記憶體插槽,通常緊鄰著處理器或北橋晶片組,隨著處理器的運算速度越來越快,傳輸的數據越來越多,只要記憶體儲放資料的空間夠大,實體位址足夠應付傳輸數據不被塞滿,作業的流暢度也就會更加行雲流水,因此將記憶體想像成電腦系統中的「最佳倉儲管理員」亦不為過。

我們方才提到,位元組(Byte)可以說是電腦當中最基本的傳輸單位,再往後則每乘以1024來增加一個單位量級,也就是說︰1KB(Kilo Byte)等於1024 個 Byte;1MB(Mage Byte)等於1024個KB;1GB(Giga Byte)等於1024 個 MB;1TB(Tera Byte)等於1024 個 GB;1PB(Peta Byte)等於1024 個 TB;1EB(Eksa Byte)等於1024 個 PB。

截至目前為止,記憶體製程與處理器之間的數據傳輸,在個人電腦領域走到GB級世代,除了我們一直提到的容量之外,依據資料儲存能力與電源存蓄關係,記憶體主要可以分為揮發性記憶體(Volatile memory)與非揮發性記憶體(Non-volatile memory)兩大類;前者指的是當電源供應中斷以後,實體位址所儲存的資料便會消失的記憶體;後者即使電源供應中斷,實體位址所儲存的資料並不會消失,再經供電之後,便能夠繼續讀取資料的記憶體。

 

圖 / 四種主要數字系統對照表,以十六進位常見的FFFF為例,即為十進位世界裡的65535。

 

 

 

■ 非揮發性記憶體(Non-volatile memory)

許多在電腦領域裡初窺門路的初學者,往往都會有一個誤解,認為所謂的記憶體,就單指插在主機板上的「動態隨機存取記憶體」(Dynamic random access memory),而事實上並不然。就前文將記憶體區分為兩大類而論,插在主機板上的隨機存取記憶體,屬於揮發性記憶體;而我們主機板上的BIOS,主要就是非揮發性記憶體的一種組成系統,由於每張主機板均有一套專屬的BIOS(基本輸入/輸出系統),作為載入主要作業系統之前,各項硬體元件的基本 I/O 控制程序之集合。

早期586時代多數主機板,其BIOS之軔體,就是寄存在EEPROM (Electrically Erasable Programmable Read Only Memory︰電子式可抹除可編程唯讀記憶體)之上,演變到現在,多數主機板已經進化到把BIOS軔體存放於Flash ROM上;與早期PROM、EPROM相比,EEPROM與Flash ROM具有可重複抹除覆寫的特性,方便BIOS進行軔體更新昇級,同時讓板廠與使用者雙方,都得到了更大的彈性。

此外,在非揮發性記憶體領域成就上,最值得一提的,莫過於現任中央研究院院士、手機四大發明者之一,同時也是前國家奈米元件實驗室主任的華人之光─施敏博士,其於西元一九六七年提出的記憶體浮動閘(floating gate)技術,直接促成了Flash Memory的誕生,現在我們常用的隨身碟、手機、數位相機、MP3等,無處不見Flash Memory的蹤跡,而施教授創造Flash Memory的發想來自一個有趣的靈感。

某日午餐過後,施教授看到同事點了一塊蛋糕當甜點,中間層塗了一層可口的奶油,此時大師腦中的蘋果突然掉下來,想到︰何不在MOSFET中間加一層很薄的金屬層(也就是所謂的浮動閘)!只要施加電壓,便可將電子導入浮動閘內並保存其中,此時意謂著電路的導通性發生改變!這層金屬浮動閘的上下兩側皆屬絶緣體,因此除非再度施加反向電壓,否則電子會一直保存在裡面,因此與DRAM相比,擁有即使斷電資料也不會消失的優點。

這個原理和前文所述一樣簡單明確,金屬層浮動閘內存有電子時,電路無法導通,可視為0,反之當電子衝出浮動閘時即形成電流,則視為1。自此,第一個「非揮發性記憶體」於焉誕生。

 

圖 / Flash Memory主要有NOR與NAND兩種;前者常見於主機板BIOS

,後者常見於一般消費性電子產品,諸如︰手機、隨身碟、 SSD等

。圖為台灣大廠希旺科技256GB固態硬碟。

 

 

 

■ 揮發性記憶體(Volatile memory)

在電腦萌芽發展的初期,記憶體元件是採用王安電腦研發的磁圈記憶體(Magnetic Core Memory),在當時這是一個劃時代的發明,這項創新徹底終結了電腦的真空管時代,進一步將電腦往半導體時代推進。隨後,施敏博士研發的快閃記憶體(Flash Memory)改善了磁圈記憶體巨大笨重的缺陷,有望取代磁圈記憶體的地位一躍而上;不過命運之神總愛開玩笑,有趣的是IBM隨後製定的DRAM卻在IT領域裡一炮而紅,而一直到二十年後,諾基亞、易利信在遍尋不著同時擁有輕薄、省電、具記憶性的通訊記憶體元件時,具備非揮發性特徵的快閃記憶體才一鳴驚人,被廣泛地推廣到各種領域,開發出不同應用層面的產品。

而幾乎與施敏博士在同一時間,科技巨擘IBM於西元一九六七年,提出DRAM(Dynamic random access memory,動態隨機存取記憶體)技術規格,意圖推翻王安電腦暮氣日深的磁圈記憶體,而其與Flash Memory最大的差異在於︰DRAM一個位元只使用一個電晶體,而電晶體僅能維持幾毫秒的帶電狀態,因此它必須不斷地充電,以保持記憶體內的資料不致流失,是故這是一種揮發性記憶體(Volatile memory)。另一種不可不提的揮發性記憶體,當屬SRAM(Static Random Access Memory,靜態隨機存取記憶體),我們在處理器上的Cache常常可以見到SRAM的蹤跡。

 

圖 / 筆電專用的短版記憶體,常稱之為SO-DIMM;現今主流DRAM SO-DIMM針腳為200Pin。

圖為 Apacer黑豹金品系列。

 

 

 

■ 靜態隨機存取記憶體(Static Random Access Memory)

一直以來,常有朋友問憨人胖達我說︰「既然處理器上的L1、L2 cache那麼快,為什麼電腦系統上的記憶體不用SRAM取代、提速就好?何必搞什麼DDR3、DDR4!」只能說這真是個大哉問。簡單來說,SRAM和DRAM一樣,都是由電晶體組成,通路代表1,斷路代表0,但是SRAM 對稱式的電路結構設計,使得每個記憶單元內所儲存的數值,都能夠以比 DRAM 還要快的速率被讀取。除此之外,由於 SRAM 多數都被設計成一次讀取所有的資料位元(Bit),比起DRAM在高低位址間的資料交互讀取,SRAM在工作效率上快上許多。

但所謂︰「金無足赤,人無完人」,這個道理在記憶體的世界裡似乎也亙循通用。除上述優點之外,另一方面,SRAM最大的問題在於︰每一個儲存位元通常需要六個電晶體;相較之下,DRAM的優勢在於結構簡單,每一個位元的資料都只需一個電晶體作動,因此除了反映成本上,SRAM理所當然遠比DRAM所費不貲之外,除非製程技術提昇,使得電晶體體積(Die Size)縮小,同樣尺寸大小的處理器才能塞進更多的電晶體,換句話說,SRAM的容量才有辦法拉高。

舉個實際的例子,約十年前AMD Athlon XP 1700+處理器採用0.18微米製程(Palomino核心),L1加上L2快取的容量才384KB;十年後的今天,AMD Phenom II 960T採用45奈米(45奈米等於0.045微米)製程,光是L1快取就有2×256KB、L2快取擁有2MB, 更不用說L3快取高達6MB!兩者的架構沿革相承一脈,但快取容量卻差距甚大,這一切都是製程昇級所帶來的進步。

因此每一世代,像是台積電等晶圓廠製程更加先進,處理器Cache容量也才能隨之受惠、提昇,是故總結而論,SRAM相對於DRAM來說,由於所需電晶體較多,因此體積也大上不少,同時成本也隨之居高難下,是以在不同元件的設計取向上,兩者各自發揮自我優勢,互擅勝場。

 

圖 / 摩爾定律是指同一個尺寸相同的晶圓上,所容納的電晶體數量,因製程技術的提升,每十八個月

會加倍,但售價相同;電晶體愈多則晶片執行運算的速度愈快,當然,所需要的生產技術也愈加高明。

 

 

 

■ DRAM(Dynamic random access memory,動態隨機存取記憶體)

我們在前文中提到,科技巨擘IBM在西元一九六七年,提出了DRAM(Dynamic random access memory,動態隨機存取記憶體),與施敏博士的目的同指王安電腦老舊笨重的磁圈記憶體,意圖取而代之。此外,因為DRAM必須周期性地不斷充電以保持資料的完整,所以才被稱為動態隨機存取記憶體,相較Flash Memory,DRAM存取時間較長,且不具有記憶性,但由於製造成本低廉,且IBM當時在業界擁有一鎚定音的影響力, 因此DRAM最後在這場競爭中脫穎而出,擊敗了施敏博士的Flash Memory,成為了電腦系統中記憶體規格的主流,之後不斷螁變、進化,演義迄今,為個人電腦及伺服器所廣泛使用。其作用主要用以儲存執行作業所須的暫時指令以及資料,使電腦的中央處理器能夠更快速讀取儲存在記憶體的指令及資料,確保電腦能以更短的時間來執行作業,而使工作能夠更迅速地完成。

依製作方式的不同,DRAM可分為SIMM(Single In-line Memory Module,單線記憶模組),及DIMM(Dual In-line Memory Module,雙線記憶模組);前者常見於早期的30 Pin或 72 Pin 的 DRAM,部份168 Pin的SDRAM亦為如此設計。SIMM特徵在於記憶體僅一面有IC與顆粒,而另一面則沒有,故又被稱為單面記憶體;而DIMM顧名思義則是兩面皆有IC與顆粒佈局其中,也是現今的主流設計。另一方面,一般在不討論特殊規格的情況下,比較普及的記憶體的種類大致可分為以下四大種類,分別是FP RAM (Fast Page RAM)、EDO DRAM(Extend Data Out Dynamic Random Access Memory)、RDRAM(RAMBus Dynamic Random Access Memory)、以及SDRAM(Synchronous Dynamic Random Access Memory)。

 

圖 / Intel H61晶片組,最多只能安裝兩條記憶體;就算是少數有四條

記憶體插槽的H61主機板,也只能安裝4條「單面」SIMM記憶體。

 

 

 

圖 / 四種常見主流動態隨機存取記憶體之pin腳數。

 

 

■ FP RAM(Fast Page Random Access Memory)

 

Fast Page DRAM,簡稱之為FP RAM,是被廣泛運用的一種改良型DRAM,主流區分為30pin與72pin兩種規格,工作電壓為5V,主流容量僅有1MB和2MB兩種可供消費者選擇。30pin FP RAM頻寬為8bit,常見於XT/AT 286、386和486電腦當中,一次至少需要安裝四條;72Pin FP RAM頻寬為32bit,需成對使用,常見於486電腦中,少數初期Pentium電腦也看得到72pin FP RAM的蹤跡,但並不常見。FPRAM在當讀取同一列資料時,可連續傳送行位址,不需再送列位址,即可讀出多筆資料,雖然在當時頗為先進,但在現在看來是非常沒有效率的工作方式。而FPRAM最大的問題在於時脈頻頸為66 MHz,跟不上中央處理器的工作速度,因此,隨著處理器的進化,FP RAM也隨著成為昨日黃花,消逝在歷史的洪流裡。

 

圖 / 這是特規4MB FPRAM,雖說已經是昨日黃花,但實際上今天在工業控制領域還是不難見到它的身影。

 

 

 

三種早期記憶體比較一覽表

架 構

Fast Page

FP /     EDO

SDRAM

種 類

30 pin

72 pin /   168 pin

168 pin

Bit數

8 bits

32 bits

64bits

接腳格式

SIMM

SIMM

SIMM/DIMM

486安裝單位

4 條

2 條

不支援

P5/P6
安裝單位

不支援

2 條

1 條

 

 

三種早期記憶體比較一覽表

架 構

Fast Page

FP/EDO

SDRAM

種 類

30 pin

72 pin / 168 pin

168 pin

Bit數

8 bits

32 bits

64bits

接腳格式

SIMM

SIMM

SIMM/DIMM

486安裝單位

4 條

2 條

不支援

P5/P6安裝單位

不支援

2 條

1 條

 

 

 

■ EDO RAM(Extend Data Out Dynamic Random Access Memory)

EDO RAM採用SIMM(Single In-line Memory Module)插槽,是美光(Micron)公司的專利技術;主要有72pin 和168pin之分,工作電壓為5V,頻寬32bit,由於自Pentium處理器以降,資料頻寬是以六十四位元運作,因此EDO RAM必需成對使用,只插單條無法運行。EDO RAM 是由傳統 FPRAM (Fast Page RAM) 中演化改善而來,在早期,資料傳輸運作上主要假設下一次的存取地址都是與上一次連續,系統運作前準備將資料妥善定址,這樣便能把記憶體資料吞吐量由前一代FPRAM 的最高 176MB/s 提升到 EDO RAM 的最高 264MB/s,因此,於1993 年後 EDO RAM 便開始取代FPRAM所扮演的角色,並常見於486及早期 Pentium 系列個人電腦,若家中還有十多年前的個人電腦,不妨可以拆開來一睹當年EDO RAM的風采。

EDO RAM當道時期,在x86領域裡Windows 95稱霸作業系統,這個時期主流Pentium處理器還只有三十二條定址線、晶片組沒有re-mapping技術,當然作業系統也就還沒有PAE功能,為什麼要提「定址線」、「re-mapping技術」、「PAE功能」?接著往下看我們會詳細解釋。

 

圖 / 這條單面 EDO RAM的容量多大?讀者不妨猜猜看…

 

 

 


■ SD RAM(Synchronous Dynamic Random Access Memory)

當時在 Intel Celeron 系列以及 AMD K6 處理器以及相關的主機板晶片組推出後,EDO DRAM 的性能再也無法滿足系統需求,記憶體技術必須徹底革新,才能滿足新一代 CPU架構的需求;此時記憶體開始進入極為經典的 SD RAM 時代。
SDRAM所插的插槽叫DIMM(Dual In-line Memory Module),因其兩側的金手指所傳的資料不一樣故得其名,本體雖說是168Pin,但是單面只有84Pin;又由於當時常見的筆記型電腦,其DIMM為144pin,比桌上型電腦的還短,因此又常稱168Pin的DIMM為Long DIMM。

第一代 SDRAM 記憶體工作頻率為66MHz(PC66),但很快由於Intel和AMD的頻率之爭,將CPU外頻拉高到100MHz,所以PC66記憶體很快就被PC100記憶體取代,接著133MHz外頻的PIII以及K7時代於焉來臨。此外,PC133規範也以相同的方式進一步提升SDRAM的整體性能,大幅將頻寬提高到1GB/sec以上的理論值。由於SDRAM 為六十四位元之規範 ,正好對應處理器六十四位元的資料頻寬,也因此它只需要單條記憶體便可穩定工作,方便性進一步提高。在性能方面,由於其輸入輸出信號保持與系統外頻同步,因此速度明顯超越EDO記憶體。

不可否認的是,雖然SDRAM由早期的66MHz,發展到後來的100MHz、133MHz ,儘管沒能徹底解決記憶體頻寬的瓶頸問題,但在這個時期「超頻」已經成為DIY用戶永恆的話題,不少玩家將某些知名大廠的PC100記憶體超頻到133MHz使用,為中央處理器的超頻取得更大的成功及效益。值得一提的是,當時為了方便一些超頻用戶需求,市場上出現了一些 PC150、PC166規格記憶體。儘管PC133記憶體在當時高達 1064MB/sec已是劃時代的突破,但此時 Intel已經開始著手Pentium 4的接班計劃,是故PC133 SD RAM已然無法滿足時代的需求,於是一場「誰是接班人」的好戲緊接而來,DDR RAM和RAMBUS的奪位大戰硝煙瀰漫、一觸即發。

 

圖 / 這是一對512MB PC133 SD RAM,剛推出時售價約兩萬元台幣。另外,前圖EDO RAM容量為4MB。

 

 

 

■ DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)

Double Date Rate SDRAM 簡稱 DDR SDRAM,顧名思義也就是「雙倍速率 SDRAM」的意思。DDR SDRAM可以說是SDRAM的升級版本。DDR SDRAM在時脈訊號上升端與下降端時各傳輸一次數據,這使得DDR SDRAM的資料傳輸速度為傳統SDRAM的兩倍, 由於只多添加了下降端訊號,因此並不會造成功耗上的增加,另一方面,在定址與控制信號部份,DDR SDRAM則與傳統 SDRAM相同,僅在時脈上升端傳輸,為當時x86架構的相容性與速度的提昇作了最好的折衷。

DDR可說是作為一種在性能與成本之間妥協的解決方案,其戰略是迅速建立起牢固的市場空間,繼而一步步在頻率上高歌猛進,最終彌補記憶體頻寬上的不足。第一代 DDR200規範並沒有得到普及,第二代PC266 DDR SDRAM(133MHz時脈×2倍數據傳輸=266MHz頻寬)是由 PC133 SDRAM記憶體所衍生出的,它將DDR記憶體帶向大眾市場第一個高潮,直到目前,還有少數老用戶家裡使用的賽揚和AMD K7處理器都採用DDR266規格的記憶體,到後來的DDR333 記憶體也只屬於一種過渡規格,在數年前DDR400記憶體成為800FSB處理器搭配的基本標準,隨後的 DDR533 規格,則成為超頻用戶的選擇對象;而DDR400記憶體最後也一統江湖,成為了當時平台之主流。

 

圖 / Kingston在這個時期累積了良好的口碑,佔有率大幅提昇;圖為512MB DDR400 SDRAM。

 

 

 

■ RDRAM(RAMBus Dynamic Random Access Memory)

RDRAM採用RIMM ( Rambus In-line Memory Module) 插槽,是由RAMBus與Intel共同提出,頻寬16bit,有184pin和168pin之分,工作電壓為2.5V,工作頻率達600、800、1066MHz,對應命名為PC600、PC800、PC1066規範。
RDRAM相對常見於Intel PIII、P4電腦。在當時原本很有發展潛力,在規格剛發表的同時,一時之間有和DDR SDRAM一決高下,取代SD RAM的趨勢;但由於製作成本過高,導致許多記憶體大廠興趣缺缺,而不巧屋漏偏逢連夜雨,當時Intel Pentium4處理器的效能又被AMD K7陣營壓著打,Intel陣營Pentium4處理器綁RAMBUS的作法,反應在零售價上,消費者也不願買單;一時之間,零售市場紛紛轉向AMD K7綁DDR SDRAM的高CP值組合,因此最終RDRAM在普及率上完敗給DDR SDRAM,因此市場上並不常見。

但值得一提的是,當年三大次世主機︰SONY的初代PS、SEGA的SS、與任天堂的N64的大戰之中,任天堂為了取得主機性能上的優勢,斷然採用了RDRAM這項高成本的產品,而SONY因見到RDRAM相較於其他規格記憶體上的優勢,在PS2主機上也使用了32MB的RD RAM。

 

圖 / 拆開任天堂64遊戲器,可以清楚發現RDRAM的身影躍然其上。

 

 

 

■ DDR二代目

隨著處理器性能不斷提高,眾人對記憶體性能的要求也愈加狂熱。因此JEDEC組織很早就開始醞釀DDR2標準,加上當時Intel首先發難,宣佈LGA775腳位的915/925平台開始對 DDR2記憶體的支持,於是DDR2記憶體便一路活躍記憶體領域迄今。

DDR2能夠在100MHz的頻率基礎上,提供至少400MB/s的頻寬,同時運作電壓僅1.8V,採用FBGA封裝,從而進一步降低電腦運作時所產生的廢熱,並拉高運行頻率。此外,DDR2融入CAS、OCD、ODT等新性能指標和中斷指令,提升記憶體頻寬的利用率。從JEDEC組織者闡述的DDR2標準來看,針對PC等市場的DDR2記憶體擁有400、533、667MHz等不同的時脈頻率,最後由於全球大廠的瘋狂競爭,一舉將DDR2記憶體的時脈標準拉高至800,甚至可見1000MHz等更高的頻率;時至今日,許多人正在使用的電腦上,主機版上正是插著DDR2 SDRAM。

圖 / 加入CAS、OCD、ODT技術規範的DDR2,相對元祖SDRAM與初代DDR,有更好的運作效率。

 

 

 

■ DDR三代目

DDR3 SDRAM是目前零售市場上,速度最快的記憶體種類。DDR3 SDRAM為了更省電、傳輸效率更快,使用了SSTL 15的傳輸介面,工作電壓是1.5V,採用CSP、FBGA方式封裝,除了延續DDR2 SDRAM的CAS、OCD、ODT、AL等控制方式外,另外新增了更為精進的CWD、Reset、ZQ、SRT、RASR技術規範。

CWD是作為寫入延遲之用,Reset提供了超省電功能的命令,可供DDR3 SDRAM記憶體,實行顆粒電路運作停止、進入超省電待命模式;新增了SRT,可程式化溫度控制記憶體時脈功能,SRT的加入讓記憶體顆粒在溫度、時脈和電源管理上比起DDR 2有了極大的進化,可說是在記憶體內,就做了電源管理的功能,同時,更讓記憶體顆粒的穩定度也更加提升,確保記憶體顆粒不會因工作時脈過高時,發生燒燬的情況。同時DDR3 SDRAM還加入RASR(Partial Array Self-Refresh)局部Bank刷新的功能,可以針對特定記憶體Bank做更有效率的資料讀寫,以達到更加省電的效果。值得一提的是,DDR3皆為RoHS規格,保證無毒無害,更為綠色環保盡了一份心力。

DDR3還新增了重置功能(Reset),重置是DDR3新增的一項重要功能,並為此特定準備了一個引腳。DRAM業界很早以前就要求增加這一功能,直到如今,才終於在DDR3身上實現。這一引腳使DDR3的初始化處理變得簡單。當重置命令執行時,DDR3記憶體可以停止所有操作,切換至最少活動量的狀態,可使DDR3達到最節省電力的目的。

 

圖 / 近期DDR3 SDRAM非常流行Kit包,也就是廠商挑選好同規格、同製程之同對同捆包,在超頻使用

上更加穩定可靠;在下一期,憨人胖達會有更加詳細的介紹。

 

 

 

■ 記憶體的未來展望

近日,IBM在公司成立百年的慶祝活動中,高調展示出Phase Change Memory(PCM),號稱「瞬間」記憶體,領先現行的隨機動態存取記憶之讀寫速度不可以道里計。

這種記憶體的原理,是運用一種特殊合金為開發基礎,其擁有結晶與不定形的兩種形態,這種合金在結晶時電阻低,導電性極佳;但在不定形狀態下電阻就變得很高。因此我們便可以利用通電來改變結晶或不定形,來重新訂義0與1的資料予以存取。這種方式在效果上類似憶阻器,和現行快閃記憶體相較之下,讀寫速度號稱可以快上近百倍,更驚人的是,可以穩定地使用數百萬個寫入循環,相對於現在流行的快閃記憶體約數幾千次壽命便宣告結束,可以說是讓人期待的新技術。除上述所言,IBM在PCM的基礎上,成功發展出一套方法,將原本在一個單位的電晶體上,僅能儲存1bit(0、1)兩種狀態,變成可以儲存2bit(00、01、10、11)四種狀態,如此一來,容量瞬間翻倍。胖達深信這項技術必將成為SSD未來的一道曙光,除了在速度上更有效率之外,對於容量加大、資料保存的可靠度,都將再踏入一個全新進化的領域。

 

圖 / IBM展出Phase Change Memory之原型,能否像DRAM一樣獨領風騷數十年

,就讓我們拭目以待。

 

 

 

■ 32位元作業系統與4GB記憶體的恩怨情仇

隨著世界各國大廠前仆後繼投入記憶體生產,近年來在消費性電子產業需求不振的現實情況下,過多的產能造成終端記憶體模組市場的大崩盤,許多朋友趁機進場撿便宜,以千元不到的代價購入4GB記憶體,但是一插之下才發現,原來家中的作業系統是32位元,原生不支援到4GB。

一時之間,各大網站論壇開始有許多似是而非的流言散布開來,還煞有其事地引經據典道︰「232= 4,294,967,296 Bytes = 4,194,304 Kilo Bytes(KB) = 4,096 Mega Bytes(MB)= 4 Giga Bytes(GB),因此32位元作業系統的極限只能到4 GB!」但事實上,代誌不是憨人想得那麼簡單,若上述邏輯為真,早在二十多年前的16位元DOS系統,應該只能支援到216 = 65,536 Bytes = 64 KB,但稍有接處的朋友都知道,DOS下能夠管理1MB(220 = 1,048,576 Bytes = 1024 KB = 1MB)的資源空間才是正解!由此矛盾可證得「32位元作業系統無法支援到4GB」完全是以訛傳訛的錯誤觀念,那到底真相為何?就讓我們一起往下看,走出撲朔迷離的桃花源外。

 

圖 / 由「工作管理員」與「系統內容」頁面都可以發現,測試平臺

32位元Win 7僅預設支援約3.5GB記憶體容量空間。

 

 

■ 定址線、資料線,傻傻分不清?

由於記憶體當中駐存的資料,主要皆由中央處理器所運算產生,因此我們必需稍微瞭解中央處理器是如何和記憶體傳輸溝通,簡單來說,主要透過三種傳輸匯流排加以完成。

首先,處理器透過位址匯流排(Address Bus Line︰俗稱定址線),指定接下來所要存取的記憶體(RAM或ROM),或I/O埠的位址,而定址線的多寡,則決定了記憶體所能設定的容量大小。舉例來說,早期Inte 80286處理器(就是俗稱的286)擁有20條定址線,每條可以傳送0或1的訊號,因此最大相容220 = 1MB的記憶體容量。此外,還有一個重要的觀念為︰定址線的訊號均由處理器發出,故為單向性流動,因此只能由處理器指定記憶體位址,無法逆向由記憶體來指定處理器位址。

另一方面,處理器與RAM、ROM或I/O埠之間,是透過資料匯流排(Data Bus Line︰俗稱資料線),彼此傳送資料,資料線的多寡代表每個週期能夠同時傳送資料的Byte數,舉例來說,64位元的處理器就有64條資料線,換句話說,擁有每次傳送64位元資料的能力。與定址線不同的是,資料線內的資料訊號係屬於雙向性,可以透過處理器丟出資料至RAM、ROM或I/O埠,亦可自RAM、ROM或I/O埠將資料回傳中央處理器。

從上述觀念可以知道,「232= 4GB得證32位元只支援到4GB記憶體」的錯誤說法,完全把處理器當中定址線與資料線的觀念混在一起變成撒尿牛丸,張冠李戴。

更重要的一點是,對於32位元作業系統當中,記憶體定址方面的問題,處理器巨擘英特爾早在十多年前便已先知先覺,在1995年時推出的Pentium Pro系列處理器當中,開始具有36條定址線,因此實體定址空間高達64GB(236),其後推出所有量產型之32位元處理器,也都至少搭載36條定址線;因此,我們可以得到第一個結論,在硬體方面,絕大多數使用者電腦裡的處理器,絕對擁有支援4GB記憶體的能力。

 

圖 / 「控制匯流排」指揮「定址匯流排」與「資料匯流排」,進行資料處理之簡易架構。

 

 

 

■ 作業系統讓定址更聰明 ─ 分頁功能(Paging)

電腦當中最基本的定址方式,主要有三種,分別是︰邏輯定址(Logical Address)、線性定址(Linear Address)、和實體定址(Physical Address)。

所謂的「實體定址」,就是指系統的記憶體的實體位址,其範圍由 00000000H 到 FFFFFFFFH,共有 4GB。絕大多數情況中,系統中的記憶體皆由00000000H起始定址(可視為底端),而ROM 則由 FFFFFFFFH起始定址(可視為最頂端)。這是因為電腦在RESET之後,處理器會從定址空間的頂端開始執行,所以把 ROM 定址在頂端(如開機後BIOS自我測試)才能讓處理器在RESET 後執行到開機用的程式。

另一方面,在不作調整的情況下,線性位址是直接映射到實體位址,換個角度看,線性位址等同於實體位址。然而,作業系統在開啟分頁功能(Paging)之後,一個線性位址便可能沒有相對應的實體位址,是因為其所對映之記憶體位址可能被空間置換(swap)到硬碟裡了。

所謂的分頁功能,是指把定址空間分割成許多頁,雖說實體記憶體或許無法容納這麼多頁,此時便可以把若干暫時沒有用到的分頁,暫存於硬碟之中,待需要用到的時候再取出使用。這個功能可以讓作業系統存取比實際容量還要大的記憶體。

而在這種情形下,一個線性位址所屬的頁面可能還在硬碟中,此時,若要存取這個位址,就要先把 swap 到硬碟中的資料取出,放到實體記憶體中的某個位置中,同時,可能有某些頁面就得讓開位置,又被 swap 到硬碟中,如此形成一個有效率的運作循環。

而邏輯定址(Logical Address)則和處理器中的Offset定址模式有關,早期對許多驅動程式及應用程式來說,為了效率,因此很常會用到邏輯定址;而線性位址和實體位址在大部分的情形中,只有作業系統會使用。

 

圖 / 現行x86處理器中,首先經過邏輯定址進行Segment(分段),再進行Paging(分頁)。

 

 

 

■ 晶片組的4GB危機 與 re-mapping技術

還記得西元2000年時發生的千禧年電腦溢位錯誤危機嗎?由於早期電腦工程師目光不夠遠慮周全,造成當時電腦從西元1999年跳到2000年時,爆發相當多的問題。同樣類似的問題在記憶體發展史上也是屢見不鮮,早期電腦工程師沒想到記憶體可以到4GB這麼大,想說只要把記憶體中3GB~4GB之間的位置經由BIOS溝通過之後,虛擬分配給常用裝置常駐使用,那就絕對不會發生裝置和實體運算資料,發生互搶記憶體造成效能低落、甚至當機的情況。

一直到後來,晶片廠發現個人電腦是有可能插超過4GB記憶體時,於是誕生了re-mapping技術,簡單來說,假設你插了8GB記憶體,這項技術可以將3GB~4GB間接映射至實體記憶體中4GB~5GB的位址,避免發生衝突。近年最明顯的例子則發生在筆記型電腦的演化上,英特爾在Napa晶片組不支援 re-mapping ,因此在這之前的筆記型電腦,就算在BIOS中也無法看到大於3GB的記憶體顯示,更遑論優化使用。因此即使像在華碩筆電一代銘機U5F上灌64位元作業系統,實際上並無太大意義,這個限制則在Napa的下一代Santa Rosa晶片組問世之後獲得解決。

 

圖 / 點選Windows裡的「裝置管理員」,隨便點選一個裝置,筆者

點選「顯示卡」為例,接著再點選「資源」頁面,可以看到筆者工

作用的顯示卡被定址在000A0000~000BFFFF這個區間上。

 

 

 

圖 / 若要改善筆電效能,昇級固態硬碟通常為最佳首選。

 

 

 

■ 實體位址延伸(PAE)

事實上兩大處理器廠早已注意到了這個問題。在早期,傳統的IA32 CPU確實只有32條地址線,所以定址能力就是232 = 4GB,後來在英特爾在Pentium PRO系統開始擴充到36條,足以定址64GB,到了Pentium4 Prescott之後,英特爾更擴充到40條定址線,理論上能夠定址到1TB實體位址;此外,AMD也不遑多讓,K8架構以後也都擴充到了40條定址線,還加碼搭載48 Bits虛擬定址技術,到了K10架構更加碼到了48條定址線,對於伺服器與大型運算系統而言可說是一大利多。

而在處理器與晶片組都解決了4GB定址問題之後,微軟也挹注了實體位址延伸(PAE)技術於作業系統內,支援間接定址至4GB以外的範圍,因此,我們終於知道,最後在處理器、晶片組、作業系統三者相互配合之下,才將問題圓滿解決。

那許多朋友一定會問,那為何家中微軟32位元作業系統已經搭載PAE技術,但是它還是抓不到4GB呢?簡單來說,這是微軟在32位元作業系統中作了相當的限制,與PAE技術無關。讀者看到這邊可別拍桌大罵微軟奸商云云,站在微軟的立場來想,一個好的作業系統應該是能夠海納百川,就算真的作不到隨插即用,至少也不要隨插即當。

然而,許多早期撰寫硬體驅動程式的工程師,習慣以MASM32撰寫組合語言,將重要硬體元件以Flat mode方式定址運作,虛擬定址空間上限則為4GB,是以只要re-mapping或是PAE到4GB以外的位址時,此時就會造成系統當機,這個問題,即使是64位元作業系統也無法倖免於難。就以三年前為例,當時的ATI在Vista 64發佈 Catalyst 8.12驅動程式,也發生了超過4GB就當機的問題,過了一陣子才發現這個歷史共業,加以修正更新,而Vista 32由於有4GB的限制,因此逃過一劫。憨人胖達推想,或許是微軟有鑑於此,除了希望能夠在32位元與64位元作業系統之間,有明顯的功能特色區隔之外,另一方面,也是希望維持32位元作業系統的相對穩定,因此就一直維持4GB的區間限制。

 

圖 / 當開啟PAE模式時,4KB/page 的存取架構,原理其實非常簡單,日後將擇期詳述。

 

 

 


■ 帶你打破32位元OS的4GB封印

行文至此,相信一定有許多讀者迫不及待躍躍欲問︰「我家的作業系統是32位元Win 7 / XP,有沒有辦法可以破解微軟的4GB限制封印呢?」答案是有的。恰好最近有位朋友,趁著記憶體跳樓大拍賣之際,昇級四條4GB高容量記憶體模組,於是將原本一對2GB記憶體贈予憨人胖達,胖達也就不客氣收下,馬上拿來為原本跑兩條1GB雙通道的測試平臺,昇級成四條總計6GB記憶體空間容量,之後順手將32位元Windows 7的4GB限制封印加以破解,全面發揮測試平臺實力。有興趣的讀者也可試試,首先,我們先到http://tinyurl.com/84q2wzm下載”ReadyFor4GB”這個小程式;完成下載後解壓縮,接著按照以下圖示與說明,一步一步接著作,不必砸大錢換購64位元作業系統,也能釋放被限制住的容量上限,享受高容量記憶體帶來的快感。不過,胖達在此要再特別提醒一點,破解過後若遇到某些情況像是前文所提到︰早期驅動程式的定址共業,則容易發生當機不穩的情況,而微軟也沒有責任修正破解後所遇到的Bug,這點讀者要特別注意!
 

 

電腦DIY測試平台

AMD處理器

AMD Phenom II X6 1100T @3.30GHz

主機板

GIGABYTE 990FXA-UD5

顯示卡

NVIDIA GeForce GT 430

記憶體

Kingston DDR3-1333 2GB ×2、1GB ×2

系統硬碟

Kingston SSDNow V+ 64GB

電源供應器

Seasonic X-460

作業系統

Windows 7 Ultimate 32bit SP1

 

 

 

 

圖 / 第一步,解壓縮後的資料夾有四個物件,首先如圖所示,請點擊ReadyFor4GB執行檔。

 

 

 

圖 / 第二步,進入ReadyFor4GB主頁面,接著我們點擊「套用」鍵。

 

 

圖 / 第三步,對話框要使用者確認是否修改ntkrlpa.exe,請點擊「是(Y)」。

 

 

 

圖 / 第四步,此時初步破解完成,程式顯示系統最高支援到128GB容量記憶體,

按下「確定」鍵後,進行下一步。

 

 

 

圖 / 第五步,回到一開始解壓縮出來的資料夾,請以滑鼠右鍵點選AddBootMenu檔案,切記選擇

「以系統管理員身份執行(A)」加以執行該檔案,此時會跳出一個類DOS視窗。

 

 

 

圖 / 第六步,按Y鍵同意破解4GB限制所需之改變,接著再按ENTER鍵。

 

 

 

圖 / 第七步,當操作順利完成,按任意鍵後請予以重新開機,接著你會發現…。

 

 

 

圖 / 最後,由「工作管理員」與「系統內容」頁面赫然發現,32

位元Win 7已完美支援6GB記憶體容量空間。(可對照未破解4GB

封閉之前圖)

 

 

 

■ 下期預告

事實上,我們現在使用的作業系統,基本上都已經預設開啟PAE模式了,在Windows XP系統當中,基本資訊頁面,只要看到「實體位置延伸」字樣,則表示XP已經處於PAE模式;另一方面,如果是Vista/Win 7使用環境,只要使用AIDA64這個工具軟體也可以確認「實體位置延伸」全版本皆已預設開啟。

俗話說得好︰「失之東隅,得之桑榆」,啟動PAE後,分頁表的查詢由兩層變三層,存取時多了一層分頁表的效能損失,但另一方面,由於電腦可以管理使用的記憶體可定址空間變多了,因此能夠減少存取硬碟中分頁檔的次數,將更多的程式保持在記憶體之中,而不swap到硬碟上,相較之下,利大於弊,分頁表的效能損失顯得相對較不重要。

另一方面,憨人胖達還有更加積極改善效能的作法,我們不需要多花錢,只要透過Ramdisk相關軟體,將部份記憶體拿來組建「類固態硬碟」的高速存取裝置,如此一來,所有的記憶體都能夠被充分利用,並且減少存取傳統速硬碟的機會,對整體效能的提昇可說立竿見影,馬上見效;而詳細實作,則在下一期雜誌的特別企畫中,詳加介紹。

在本期雜誌中,主要介紹了記憶體發展沿革,同時釐清了部份似是而非的錯誤觀念;而在下一期當中,憨人胖達則將主力放在記憶體模組的參數解讀,以及不同廠牌產品之間的橫向評測,最後我們會將表現優秀的產品,推薦給讀者們採買選購。對於愛好自行電腦DIY的玩家,下一期絕對是您平臺組裝時的參考指南,切莫錯過呦!

 

圖 / 在Windows XP中,當看到「實體位置延伸」斗大六字時,

則代表PAE功能已被開啟。

 

臉書留言