記憶體



在選購電腦的時候﹐有一項條件是一定要知道的﹐就是記憶體有多大﹖

記憶體的作用

為什麼記憶體這麼重要呢﹖其實﹐電腦真正工作的場所是在記憶體上面﹐包括所有系統的驅動程式、作業系統、工作數據、成品/半成品等等﹐都必須先載入(load)到記憶體上面才能給CPU讀取。尤其對Windows或比較大型的程式﹐要求的記憶體也越多。而且﹐永遠也不會嫌多的﹐就像錢對於我來說 ^_^

如何計算記憶體的容量﹖

記憶體的最小單位是位元(bit)﹐每個位元可以代表0或1(開或關)﹐而8個位元則組成1字節(byte)﹐byte可以說是最基本的計算單位了﹐再往後則每乘以1024來增加單位﹐也就是說﹐1KB(Kilo Byte)等於1024個byte﹔1MB(Mage Byte)等於1024個KB﹔1GB(Giga Byte)等於1024個MB﹔以此類推...

其實電腦只認識0和1﹐任何程式語言要交由電腦運算﹐最終的還要換成0和1才能夠讓電腦讀得懂。我們在鍵盤上敲進一個字母'A'﹐真正傳給電腦的是01000001這個byte(8bit)﹐我們稱這種字母對應方法為ASCII(America Standard Code for Information Interchange)。通常我們以純文字所處理的文章﹐就是使用ASCII字母的了。

究竟記憶體的需求量怎樣計算出來的呢﹖如果以純文字來計算﹐一頁A4紙大約5000多字節(包括標點和空白)﹐即5KB﹐那麼1MB就有超過二百頁了。但如果要做出更漂亮的文字﹐每個字還需要更多的記憶體來儲存其字形、特殊效果、行段格式、等等﹐那麼1MB也只能儲存數十頁﹐有時更少。總之﹐越漂亮的文件﹐所需的記憶體也越多。

下面再拿一個比較實用的例子來算算記憶體的使用量﹕

我們在選購顯示卡(Video Adapter)的時候﹐常聽說此卡有多少多少RAM﹐究竟多少才夠用呢﹖

先拿一個單色顯示卡來說﹐假設它的解析度是640x480﹐也就是說螢幕上橫有640個顯示點﹐豎則有480個點﹐而每個點只有兩種變化﹕亮(白/黃/錄等單色)或不亮﹐這可用1個bit(2的1次方)的開關來表示。那麼640x480x1(bit)=307200(bit)/8=38400(byte)/1024=37.5(KB)/1024=0.036621(MB)。您看只需要很少的RAM就夠了。然而﹐採用的是彩色顯示卡的話﹐如果要顯示16色﹐每個點就需要4bit(2的4次方等於16)來顯示了﹐那麼就需要640x480x4(bit)=228800(bit)=153600(byte)=150KB=0.15MB﹔如果要顯示256(8bit)色﹐則需要840x480x8/8/1024/1024=0.29MB了。

假如您的顯示卡可以顯示1024x768的解析度和32bit顏色的話﹐您最少需要 1024x768x32/8/1024/1024=3MB的RAM。而現在市面上的顯示卡還可以有自己的程式處理功能﹐那麼則需要更多的RAM了。

不過要分清楚的是﹐這裡以Video RAM為例子﹐使用的RAM並不是電腦系統上面的記憶體﹐而是顯示卡本身的。這裡只作為一個計算例子而已﹐這也適合計算一個BMP圖像檔案的大小。

記憶體的管理

不同的作業系統﹐對記憶體的管理也不相同﹐下面以傳統的DOS來看看記憶體的分配情形。由於傳統設計的限制和向後兼容的考慮﹐DOS主要運用的是記憶體的前1MB。而且﹐真正用來工作的地區也只是前面的640K﹐然而今日的Windows已經打破了這個限制了。

0to
640K
to
768K
to
832K
to
896K
to
1M
to
16M/4G
Conventional
(Base)
Memory
Video
Memory
Adapter
ROM
EMS
Window
Mother-
board
ROM
BIOS
Extended Memory

離開了記憶體﹐電腦一點東西都做不到﹐但如果RAM給擾亂了或是超出了範圍﹐電腦也會不工作﹐通常電腦的當機就是這樣形成的。

一般來說﹐當一個程式被啟動的時候﹐所有其必須運用的資料都會先載入到RAM上面﹐當程式被關閉的時候﹐也將所佔用的空間騰空出來好給其它程式使用。但有些被稱為"駐留程式"的程式﹐即使是關閉了依然還會存留在RAM裡面﹐但為數不多且都是些經常要用到的一些程式。有些電腦病毒也是這樣躲在RAM裡面而將繼續開啟的檔案感染。

好的作業系統有較完善的記憶體管理﹐能避免因記憶體錯誤而當機的能力也比較好。通常我們在MS Windows 上面看到什麼'Illegal operation, protection error: 0x008800'之類的信息﹐就多是因為記憶體錯誤而引起的。幸運的話﹐用Ctrl+ALT+Del將受影響的程式結束掉﹐還可以繼續工作﹐然而大多數情況之下﹐除了關機就別無它途﹐更糟糕的是連錯誤信息都沒有就不動了。但相同的情形﹐如果在一個Unix(或Linux)系統上面﹐可以另外登入或從另外的機器telnet 進去然後將問題程式kill掉也還可以繼續工作﹐未必一定要關機的。

記憶體的分類

凡是能利用電子性能來作記錄的元件都可以稱為記憶體(Memory)﹐也分為唯讀記憶體即ROM(Read Only Memory)和隨機儲存記憶體:RAM(Random Access Memory)。

其實幾乎所有的主機板主機板和插卡及其他設備都有它們的ROM﹐主要是記錄一些控制程式和協議等﹐也有各自的RAM來儲存資料。

而我們通常說到的電腦記憶體就多指系統的RAM﹐早期的RAM都是直接焊接在主機板上面的﹐而現在RAM已經模組化成為SIMM(Single In-line Momory Module)﹐更靈活於擴充或更換。以前的SIMM有30腳(pin)和72腳之分﹐其數據BUS分別為8bit和32bit。假如您翻看前面CPU的敘述﹐也會看到不同年代的CPU其數據BUS也是不同的﹐這個值就直接決定一個記憶庫(Memory Bank)有多大﹐而電腦的RAM最低需要一個Memory Bank才可以運作。

這樣我們就明白了為什麼在486(32bit data bus)上面﹐要由4條30腳(8bit)RAM來組成一個bank﹐而使用72腳(32bit)的RAM一條就夠了。現在是Pentium CPU的年代﹐其數據BUS是64bit的﹐30腳的RAM根本用不上﹐72腳的也要2條才夠基本一個bank。不過﹐現在168腳的SDRAM(Synchronous Dynamic Random Access Memory)已經是64bit的了﹐這種module我們稱為DIMM(Dual In-line Memory Module)。而且在速度上也快很多﹐RAM的速度是以ns(nanoseconds﹐1ns相當於光線穿越11.72英寸所需的時間)做單位﹐以資料的儲存速度為標準﹐數值越低越快。以前的SIMM有些是70ns﹐有些則是60ns如EDO (Extended Data Out) RAM﹐現在的DIMM已經最快可以到10ns了。

ROM雖然說是唯讀的﹐但現在的主機板的ROM多數是可以refresh的﹐也就是通過程式可以對裡面的內容進行更新。不過﹐如果自己升級ROM就要非常小心了﹐尤其是在升級過程的一半斷電的話可就難堪了。比如前不久發作的CIH病毒﹐就可以進入到ROM裡面去改寫資料﹐以致機器動不起來。如果拿去修理﹐有些奸商會乘機叫您將主機板換掉﹐其實只要有適當設備﹐將資料重新寫進ROM就可以救回的了﹐再不然﹐買一個新的ROM換掉也可以。

然而﹐RAM有一共通特性﹐就是有電才能維持記憶﹐如果電源關掉了﹐所有的記憶都會回復到全部為正或負。如果打開機器蓋子去看看主機板的話﹐上面應該都有顆鈕釦電池﹐它就是用來維持主機板之CMOS(Complementary Metal-Oxide Semiconductor﹐用來儲存和維護一些機器的基本設定資料)的工作的了。一旦機器很久沒用﹐重新開機的時候或許會開不起來﹐可能就是CMOS的電池也跑光了﹐以前的設定也就消失掉﹐此時只能再進入BIOS(Basic Input Output System)在廠家預設的基礎上進行修改後才能讓機器回復工作。有時候如果忘記了CMOS的密碼﹐也可以通過取出電池或通過跳針將原有的設定清除掉﹐再重新設定過。

 

 


© 2000 Netman 網中人
Last Updated: March 28, 2000