●物理存儲器和地址空間
物理存儲器和存儲地址空間是兩個不同的概念。但是由于這兩者有十分密切的關系,而且兩者都用B、KB、MB、GB來度量其容量大小,因此容易產生認識上的混淆。初學者弄清這兩個不同的概念,有助于進一步認識內存儲器和用好內存儲器。
內存
內存
物理存儲器是指實際存在的具體存儲器芯片。如主板上裝插的內存條和裝載有系統的BIOS的ROM芯片,顯示卡上的顯示RAM芯片和裝載顯示BIOS的ROM芯片,以及各種適配卡上的RAM芯片和ROM芯片都是物理存儲器。
存儲地址空間是指對存儲器編碼(編碼地址)的范圍。所謂編碼就是對每一個物理存儲單元(一個字節)分配一個號碼,通常叫作“編址”。分配一個號碼給一個存儲單元的目的是為了便于找到它,完成數據的讀寫,這就是所謂的“尋址”(所以,有人也把地址空間稱為尋址空間)。



地址空間的大小和物理存儲器的大小并不一定相等。舉個例子來說明這個問題:某層樓共有17個房間,其編號為801~817。這17個房間是物理的,而其地址空間采用了三位編碼,其范圍是800~899共100個地址,可見地址空間是大于實際房間數量的。
對于386以上檔次的微機,其地址總線為32位,因此地址空間可達2的32次方,即4GB。(雖然如此,但是我們一般使用的一些操作系統例如windows xp、卻最多只能識別或者使用3.25G的內存,64位的操作系統能識別并使用4G和4G以上的的內存,
好了,現在可以解釋為什么會產生諸如:常規內存、保留內存、上位內存、高端內存、擴充內存和擴展內存等不同內存類型。
分類
各種內存
這里需要明確的是,我們討論的不同內存的概念是建立在尋址空間上的。IBM推出的第一臺PC機采用的CPU是8088芯片,它只有20根地址線,也就是說,它的地址空間是1MB。
PC機的設計師將1MB中的低端640KB用作RAM,供DOS及應用程序使用,高端的384KB則保留給ROM、視頻適配卡等系統使用。從此,這個界限便被確定了下來并且沿用至今。低端的640KB就被稱為常規內存即PC機的基本RAM區。保留內存中的低128KB是顯示緩沖區,高64KB是系統BIOS(基本輸入/輸出系統)空間,其余192KB空間留用。從對應的物理存儲器來看,基本內存區只使用了512KB芯片,占用0000至7FFFF這512KB地址。顯示內存區雖有128KB空間,但對單色顯示器(MDA卡)只需4KB就足夠了,因此只安裝4KB的物理存儲器芯片,占用了B0000至B0FFF這4KB的空間,如果使用彩色顯示器(CGA卡)需要安裝16KB的物理存儲器,占用B8000至BBFFF這16KB的空間,可見實際使用的地址范圍都小于允許使用的地址空間。
在當時(1980年末至1981年初)這么“大”容量的內存對PC機使用者來說似乎已經足夠了,但是隨著程序的不斷增大,圖象和聲音的不斷豐富,以及能訪問更大內存空間的新型CPU相繼出現,最初的PC機和MS-DOS設計
內存
內存
的局限性變得越來越明顯。
內存
內存
擴充內存
到1984年,即286被普遍接受不久,人們越來越認識到640KB的限制已成為大型程序的障礙,這時,Intel和Lotus,這兩家硬、軟件的杰出代表,聯手制定了一個由硬件和軟件相結合的方案,此方法使所有PC機存取640KB以上RAM成為可能。而Microsoft剛推出Windows不久,對內存空間的要求也很高,因此它也及時加入了該行列。
在1985年初,Lotus、Intel和Microsoft三家共同定義了LIM-EMS,即擴充內存規范,通常稱EMS為擴充內存。當時,EMS需要一個安裝在I/O槽口的內存擴充卡和一個稱為EMS的擴充內存管理程序方可使用。但是I/O插槽的地址線只有24位(ISA總線),這對于386以上檔次的32位機是不能適應的。所以,現在已很少使用內存擴充卡。現在微機中的擴充內存通常是用軟件如DOS中的EMM386把擴展內存模擬或擴充內存來使用。所以,擴充內存和擴展內存的區別并不在于其物理存儲器的位置,而在于使用什么方法來讀寫它。下面將作進一步介紹。
前面已經說過擴充存儲器也可以由擴展存儲器模擬轉換而成。EMS的原理和XMS不同,它采用了頁幀方式。頁幀是在1MB空間中指定一塊64KB空間(通常在保留內存區內,但其物理存儲