地址視窗擴展

地址視窗擴展(英語:Address Windowing Extensions,縮寫AWE)是一項Microsoft Windows應用程式接口,它允許32位套用軟體訪問超出其虛擬地址空間限制(4GB)的物理記憶體。在地址視窗擴展下將應用程式的虛擬地址空間映射到物理記憶體的過程被稱為“加窗”(windowing),並類似其他環境的覆蓋概念。AWE對於需要操作極大數據集的數據密集型應用程式(例如資料庫管理系統,科學和工程學軟體)有益。

簡介

應用程式保留虛擬地址空間的區域或“視窗”,並分配物理記憶體的一個或多個區域。使用地址視窗擴展API,套用可以將虛擬視窗映射到任何一個物理區域。應用程式可以保留多個虛擬地址空間,並將其映射到物理記憶體的任何分配區域,只需虛擬地址空間中保留的位元組數與物理記憶體區域相匹配。應用程式必須有“鎖定記憶體頁”的特權才能使用地址視窗擴展。

當保留記憶體超過4GB時,地址視窗擴展依賴於物理地址擴展的支持。地址視窗擴展在Windows 2000中作為一個取代PSE36方法的新API被引入。PSE36方法自Windows NT 4.0企業版引入,用於訪問超過4GB記憶體,在Windows 2000中已不支持。第一批使用地址視窗擴展的應用程式是Oracle8.1.6和Microsoft SQL Server2000。

如果/3GB引導標識被使用以重新分配32位虛擬空間(2GB核心空間和2GB用戶空間改為3GB用戶空間),地址視窗擴展將只能訪問16GB物理記憶體。此限制是因為只有1GB記憶體保留給核心,而沒有足夠的記憶體用於映射超過16GB記憶體的頁表項。通過地址視窗擴展可定址的最大記憶體量也因Windows許可方案而額外限制。例如,Windows 2000 Advanced Server限制為8GB,Windows 2000 Data Center Server則支持64GB。

2004年在Dr. Dobb's Journal發布的一篇文章稱注意到使用地址視窗擴展分配的記憶體將不會被寫入頁面檔案,並建議AWE區域因此可作為保護敏感的應用程式數據(如加密密鑰)的一種方式。

擴展存儲器

擴展存儲器(英語: 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 的單位。

早期可以購買存儲器擴充卡來插在ISA bus插槽上,之後,一些Intel 80286的主機版的晶片組實現了 expanded memory scheme, 就不用再買擴充卡,而用軟體設定就可以決定多少存儲器被用做擴展存儲器,多少存儲器被用做延伸存儲器

1987年開始,內置存儲器管理功能的Intel 80386 處理器讓在傳統實模式下的程式,可以有不受限的 定址空間,硬體解決方案就變得沒有必要。這時擴展存儲器只能用軟體來模擬了。

在80286與之後的處理器,一個更有效率的方法訪問640KB以後的存儲器, 就是用DOS Proteced Mode Interface.DOS extenders 是一個使程式可以在保護模式下運行的驅動程式。與其用banking技巧訪問更多存儲器,這個驅動程式可以讓應用程式在保護模式與實模式間切換, (在需要MS-DOS服務時回到實模式)這樣就使用應用程式可以直接訪問延伸存儲器。

物理地址擴展

物理地址擴展Physical Address Extension,縮寫為 PAE),又釋 實體位置延伸,是x86處理器的一個功能,讓中央處理器在32位作業系統下存取超過4GB的實體記憶體。

PAE為IntelPentium Pro及以上級別的CPU(包括除了匯流排頻率為400MHz的這個版本的奔騰M之外的所有新型號奔騰系列處理器)所支持,其他兼容的處理器,如速龍(Athlon)和AMD的較新型號的CPU也支持PAE。

x86的處理器增加了額外的地址線以選擇那些增加了的記憶體,所以實體記憶體的大小從32位增加到了36位。最大的實體記憶體由4GB增加到了64GB。

32位的虛擬地址(線性地址)則沒有變,所以一般的套用軟體可以繼續使用地址為32位的指令;如果用平面記憶體模式的話,這些軟體的地址空間也被限制為4GB。作業系統用頁表將這4GB的地址空間映射到大小為64GB的實體記憶體,而這個映射對各個進程一般是不一樣的。這樣一來,即使不能為單單一個程式所用,那些增加了的物理記憶體仍然可以發揮作用。

對於需要超過4GB記憶體的套用軟體來說,除了一般的PAE支持,還需要作業系統提供另外的特殊的技術。在Windows上,這種技術叫做Address Windowing Extensions(AWE)。而在類Unix的系統上則有多種技術在使用,例如使用mmap()按需要把一部分檔案映射到地址空間;但是,這還沒有成為一個標準。

相關詞條

熱門詞條

聯絡我們