上層記憶區
上層記憶區(upper memory area,簡稱UMA)是在DOS記憶體管理中的詞語,是指IBM PC(或相容電腦)中,定址空間在640 KB和1024 KB之間 (0xA0000–0xFFFFF)的電腦記憶體。IBM將8088中央處理器1024 KB定址空間中最高的384 KB,保留作BIOS唯讀記憶體(或是某些UEFI韌體的CSM)、顯示卡BIOS、擴充唯讀記憶體、video RAM, 存储器映射输入输出,以及已不使用的IBM BASIC。
不過,就算有RAM、ROM BIOS、Video BIOS、擴充唯讀記憶體以及存储器映射输入输出,上層記憶體區仍有許多空間是可使用的。隨著程式的變大,640 KB記憶體的限制變成阻礙,因此有發展技術用RAM來填補上層記憶區的空間,此區域就稱為上層記憶區塊(upper memory blocks,簡稱UMB)。
用途
在DOS以後,在作業系統上的演進就是使用上層記憶區塊(UMB)以及高層記憶體空間(HMA)。這是在1990年DR-DOS 5.0時出現的技術[1]。DR DOS有內建記憶體管理軟體EMM386.EXE,可以進行QEMM(當時流行的記憶體管理軟體)以及相近軟體中,大部份的基本功能。
DR DOS 5.0比以往DOS加上QEMM的效果還要好,DR DOS將其核心及大部份的資料結構都放在上層記憶區,留下大部份常規記憶體,可以讓使用者組態,在640k常規記憶體中,最多可以空出620k的空間。
上述的組態不是自動的,需要人工識別空的UMB,再手動加入,讓CONFIG.SYS載入EMM386,驅動程式以及其他資料也要人工從CONFIG.SYS及AUTOEXEC.BAT設定,以載入UMB。這些組態不太簡單。隨著QEMM安裝後,上述的程序自動化,此軟體也可以在市場上存活,此軟體配合DR DOS自身的HMA及UMB機能,也運作的很好,是PC銷售量最高的軟體之一。
微軟複製了此機能,用在1991年6月推出的MS-DOS 5.0[1],最終,越來越多的DOS資料結構移出了常規記憶體,640 KB中最多可以空出631 KB。從MS-DOS 6.0開始,微軟提供了一個叫做MEMMAKER的程式,自動將终止及常驻程式搬到上層記憶區,以最佳化常規記憶體的空間。
參考資料
- Dryfoos, Mike (编). (PDF) (mail as court document). Microsoft: 10. 1991-09-18 [1991-07-19] [2019-07-22]. MS-PCA1179169 (MS-PCA1179159-MS-PCA1179191). MS7020988 (MS7020978-MS7021010). Depo. Ex. 1109. Comes v Microsoft Plaintiff's Exhibit 3473. CA.No.2:96CV645B Plaintiff's Exhibit 477. (原始内容存档 (PDF)于2019-04-02).
[…] One of the most important stimulanta for adding features was competitive pressure from DRDOS 5.0, which we first learnt of in the spring of 1990. The DRDOS feature set led us to add UMB support, task swapping, and Undelete. […] Considerable amounts of the team's management attention was diverted to new features such as file transfer software, undelete and network installation […] Eventually this situation reached a crisis point at the end of July 1990, and, led by BradS, the team's management spent an arduous series of meetings nailing down a schedule and process for closing the project down […]
(1+32 pages)