Shadow RAM——“影子”内存 宗琦 1994-03-04 Shadow RAM所使用的物理芯片仍然是CMOS DRAM(动态随机存取存储器)芯片。Shadow RAM占据了系统主存的一部分地址空间。其编址范围为C0000~FFFFF,即为1MB主存中的768KB~1024KB区域。这个区域通常也称为内存保留区,用户程序不能直接访问。 Shadow RAM的功能是用来存放各种ROM BIOS的内容。或者说Shadow RAM中的内容是ROM BIOS的拷贝。因此也把它称为ROM Shadow(即Shadow RAM的内容是ROM BIOS的“影子”)。 在机器上电时,将自动地把系统BIOS,显示BIOS及其它适配器的BIOS装载到Shadow RAM的指定区域中。由于Shadow RAM的物理编址与对应的ROM相同,所以当需要访问BIOS时,只需访问Shadow RAM即可,而不必再访问ROM。 通常访问ROM的时间在200ns左右,而访问DRAM的时间小于100ns(最新的DRAM芯片访问时间为60ns左右)。在系统运行的过程中,读取BIOS中的数据或调用BIOS中的程序模块是相当频繁的。显然,采用了Shadow技术后,将大大提高系统的工作效率。 在下图所示的1MB主存地址空间中,640KB以下的区域是常规内存。640KB~768KB区域保留为显示缓冲区。768KB~1024KB区域即为Shadow RAM区。在系统设置中,又把这个区域按16KB大小的尺寸分为块,由用户设定是否允许使用。 FFFFF 1024K ┌____________┐┐ ︱ 系 统 ROM BIOS Shadow ︱ ︱ F0000 960K ├____________┤ ︱ ︱ 其它适配器 ROM Shadow ︱ ├ Shadow RAM区 C8000 800K ├____________┤ ︱ ︱ 显示适配器 ROM Shadow ︱ ︱ C0000 768K ├____________┤ ┘ ︱ 显示缓冲区 ︱ A0000 640K ├____________┤ ︱ 常规内存 ︱ 0 0 ┕____________┘ 图中,C0000~C7FFF这两个16KB块(共32KB)通常用作显示卡的ROM BIOS的Shadow区。C8000~EFFFF这10个16KB块可作为其它适配器的ROM BIOS的Shadow区。F0000~FFFFF共64KB规定由系统ROM BIOS使用。 应该说明的是,只有当系统配置有640KB以上的内存时才有可能使用Shadow RAM。在系统内存大于640KB时,用户可在CMOS设置中按照ROM Shadow分块提示,把超过640KB以上的内存分别设置为“允许”(Enabled)即可。