Shadow RAM——“影子”内存

Author: 宗琦 Date: 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)即可。