擴充記憶體規範

擴充記憶體規範

擴充記憶體規範(xms extended memory specification,簡稱EMS)。它只能由特別為擴充記憶體而設計的應用程式所訪問。當前,大多數專業性的商業軟體包支持擴充擴充記憶體,因而它成為一種事實上的工業標準,支持擴充記憶體的一些常用軟體有:Framework,Excel,Paradox,Symphony等。

基本介紹

  • 中文名:擴充記憶體規範
  • 外文名:xms extended memory specification
  • 簡稱:EMS
發展,初級的擴充記憶體管理,擴充記憶體規範,缺點,擴展記憶體與擴充記憶體的區別,

發展

1983年IBM宣布採用了Intel80286處理器的PC/AT。這種微處理器能以兩種方式運行。第一種是實地址方式。即DOS使用的方式,它允許直接訪問IBM記憶體,另一種是保護方式,這種方式能直接訪問16MB記憶體。
PC機中出現的硬體約束對記憶體的限制。再PC/AT機及其它新的80386PC機中同樣存在。因此,越過640kDOS壁壘的唯一方法是用擴充記憶體卡。
再Intel、Lotus和Microsoft宣布EMS規範後不就,AST與其他一些製造商發布了另一種稱為改進的擴充記憶體規範(EEMS)。EEMS是LIM-EMS的一種超集,它除了一些額外的可選功能外,支持全部EMS功能。大多數EMS程式可同樣在EMS和EEMS的記憶體卡上運行。不過少數軟體,包括Quarterdeck公司和Desq view和Digital Research公司的Concurrent DOS,用到了EEMS的額外功能。
1987年8月LIM宣布了EMS的一個新版本V4.0。此版本在原3.2版本上從兩個方面作了很大的改進。第一是它能支持32MB擴充記憶體,而不是以前版本的8MB。
第二是3.2版本只允許數據駐留在擴充記憶體中,而4.0版本允許數據和程式兩者都在擴充記憶體中運行,V3.2的程式在V4.0中正常運行,但新的程式,如Microsoft和Excel和Lotus1-2-3的第3版只能在V4.0版本上使用。
許多製造商向現有擴充記憶體卡的用戶免費提供新的擴充記憶體管理驅動程式,以便他們能使用EMSV4.0。AST及其支持者立即表示他們將放棄EEMS而支持新的LIM-EMS4.0版本。所以現在整個PC產業界已經取得一致。將來的軟體及硬體開發將支持工業標準EMS4.0版。

初級的擴充記憶體管理

在XMS出現之前,已出現了不少擴充記憶體的管理方法,最後都集中在兩種方法上:VDISK方法和Int 15H方法。
VDISK.SYS是個很常見的可安裝的RAMdisk設備驅動程式,從PC-DOS3.0版起IBM就提供了這個驅動程式。從一開始,VDISK就可用常規記憶體或擴充記憶體創建鍵盤。近期的版本也可以使用擴展記憶體創建虛盤。由於PC-DOS提供了VDISK的源碼,因此不少公司借鑑這種方法實現了自己的RAMdisk。
VDISK裝入後,占有了1M以上擴充記憶體,並將所占用的擴充記憶體數量的信息存放在兩個地方,一個是常規記憶體上的數據結構,可以用Int 19H取到;另一個是1M擴充記憶體邊界上的數據結構。如果再有新的VDISK要創建另外的RAMdisk,必須首先查看這兩個數據結構,得到可用的擴充記憶體,並根據新占用的擴充記憶體數量更新這兩個數據結構的內容。
用Int 15H方法管理擴充記憶體相對簡單一些。首先調用Int 15H功能得到當前可用的擴充記憶體的大小,然後改寫Int 15H使之以後每調用這個功能,都返回當前可用的擴充記憶體的帶下,其中除去了本程式正在使用的擴充記憶體。對Int 15H的其他功能扔調用原來的Int 15H。這樣,如果一個程式占用了一塊擴充記憶體,對後來的程式來說,這塊被占用的擴充記憶體好像不存在一樣,從而達到了擴充記憶體管理的目的。

擴充記憶體規範

前面說的VDISK方法和Int 15H方法管理擴充記憶體都有三個嚴重缺陷:
1、對那些轉入保護方式讀寫擴充記憶體、不理會其他已被使用擴充記憶體的程式無法管理。
2、這兩種方法都不是動態管理,都是先進後出方式分配擴充記憶體的,一旦有個程式不按順序中止了,它 所用的那塊擴充記憶體只能到它後面的程式全部釋放所擴充記憶體後才能再用。
3、MS-DOS不參與擴充記憶體管理,因此程式意外中斷時不能清理程式所用的擴充記憶體資源。
1988年提出了更高級的擴充記憶體管理方法XMS。XMS再80286/386/486機上定義一個軟體接口,使實方式下程式程式能以合作的、與硬體無關的方式使用擴充記憶體和一些MS-DOS管理不到的記憶體。
XMS實現下面三類的記憶體的管理:
1、640K-1024K之間的記憶體;
2、1024K-1088K之間的記憶體;
3、1088K以上的記憶體;
XMS還提供了與硬體無關的對CPU地址線A20的控制。

缺點

擴充記憶體的缺點是運行速度慢,明明有那么多的記憶體,卻要來回地用分頁框來代替。後來在386CPU出現後,就不再使用擴充記憶體卡了,而是通過採用增加CPU的地址匯流排(變32位)的方法,可使得DOS能夠訪問1MB以上的記憶體了。把插在記憶體槽上1MB以上的記憶體了。把插在記憶體槽上1MB以上的記憶體叫做擴展記憶體,用XMS表示。擴展記憶體的容量取決於安裝在記憶體槽上的RAM的個數多少,在DOS中擴展記憶體的管理程式為himem,sys。考慮到有時可能在386以上的機器運行需要擴充記憶體的軟體,DOS提供了emm386.exe記憶體管理程式,可將擴展記憶體仿真成擴充檔案。

擴展記憶體與擴充記憶體的區別

擴展記憶體與擴展記憶體的區別是:
1、安裝的位置不同。擴充記憶體是在插在主機板的擴充槽上,而擴展記憶體是插在記憶體槽上;
2、存在的機型不同。擴充記憶體僅在8088或8086機上才可能有,而在80836以上的機上不再使用擴充記憶體而是使用擴展記憶體;
3、運行速度不同。擴充記憶體的使用需要頁框,即換頁技術來實現,而擴展記憶體不需要。因而擴充記憶體(或用擴展記憶體仿真的擴充記憶體)的運行速度比擴展記憶體慢;
4、表示符號不同。再記憶體中,擴充記憶體用EMS表示,擴展記憶體用XMS表示;
5、管理程式不同。擴充記憶體的管理程式存在擴充記憶體卡上,由擴充記憶體製造商提供,而擴展記憶體管理程式由DOS提供。

相關詞條

熱門詞條

聯絡我們