圖書館:擴展記憶體
{{noteTA
|G1=IT }}
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Expanded_memory.svg/220px-Expanded_memory.svg.png)
擴展記憶體({{lang-en|Expanded Memory}})是1985年4月24日,由Lotus、英特爾與微軟聯合發佈的一項DOS內存技術,可以提供MS-DOS程式更多的記憶體。
八十年代的個人計算機(IBM PC/AT)多半使用真實模式,只有1MB的定址空間,且640KB以上的定址空間不可被應用程式讀寫使用。
擴展記憶體的原理是使用1MB扣除640KB後剩下的384KB,稱作上端內存區(upper memory area), 這本來是用來跟外設溝通的空間, 給程序使用。把內存的定址窗口插入到上端內存區的外設定址空間,引入了bank switching (存儲體轉換)的技巧。 同一時間只有一部分的額外記憶體可以被存取。 使用64KB的memory windows做為bank switching 的單位。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/EmulexPersyst_4M_ISA.jpeg/220px-EmulexPersyst_4M_ISA.jpeg)
早期可以購買記憶體擴充卡來插在ISA bus插槽上. 之後,一些Intel 80286的主機版的晶片組實現了 expanded memory scheme, 就不用再買擴充卡,而用軟件設置就可以決定多少記憶體被用做擴展記憶體,多少記憶體被用做延伸記憶體
1987年開始,內建記憶體管理功能的Intel 80386 處理器讓在傳統真實模式下的程式,可以有不受限的 定址空間,硬件解決方案就變得沒有必要。這時擴展記憶體只能用軟件來模擬了.
在80286與之後的處理器,一個更有效率的方法存取640KB以後的記憶體, 就是用DOS Proteced Mode Interface.DOS extenders 是一個使程式可以在保護模式下執行的驅動程式. 與其用banking技巧存取更多記憶體,這個驅動程式可以讓應用程式在保護模式與真實模式間切換, (在需要MS-DOS服務時回到真實模式)這樣就使用應用程式可以直接存取延伸記憶體.
相關連結
編輯Category:X86內存管理 Category:DOS內存管理 Category:內存擴展
{{Compu-stub}}