{{noteTA

|G1=IT }}

上端内存区(upper memory area)中的扩展内存块

扩展内存({{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 的单位。

Emulex Persyst 4 MiB ISA扩展内存卡

早期可以购买内存扩充卡来插在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}}