这两天心血来潮想给我的工作笔记本升级内存于是乎找个些关于内存的资料 给大家分享一下 有关位操作系统内存G地址空间的局限 GB地址空间的局限首先我们还必须要先了解两个概念其一是物理内存大家常说的物理内存就是指安装在主板上的内存条其实不然 在计算机的系统中物理内存不仅包括装在主板上的内存条(RAM)还应该包括主板BIOS芯片的ROM显卡上的显存(RAM)和BIOS(ROM)以及各种PCIPCIE设备上的RAM和ROM其二是地址空间地址空间就是对物理内存编码(地址编码)的范围所谓编码就是对每一个物理存储单元(一个字节)分配一个唯一的地址号码这个过程又叫做编址或者地址映射这个过程就好像在日常生活中我们给每家每户分配 一个地址门牌号与编码相对应的是寻址过程分配一个地址号码给一个存储单元的目的是为了便于找到它完成数据的读写这就是寻址因 此地址空间有时候又被称作寻址空间系统不仅要给主板上的内存条编址还要给上述的其它物理内存编址它们都被编在同一个地址空间内编址后的物理内存就可以被系统资源使用或占用 从Pentium Pro处理器开始CPU的地址总线已经升级到位寻址能力达到GB按理说CPU支持GB的内存是没有问题的因此芯片组(北桥MCH) 地址总线的数量就成了决定物理内存地址空间大小的决定性因素在Intel 系列和以前的芯片组nForce 系列和以前的芯片组都只有条地址线为系统提供GB的地址空间即最高可以安装GB的内存条 虽然可以安装GB内存条但这GB的内存空间不能全部纷配给内存因为从GB空间的顶端地址(FFFF_FFFFh)开始向下要有MBGB的地址空间要分配给主板上的其他物理内存 我们可以看到GB的地址空间可以分为两大部分MB~物理内存顶端的地址分配给主板上安装的物理内存GB到物理内存顶端的地址分配给 BIOS(ROM)和PCI/PCIE设备的存储器 由于这些存储器基本上是用于系统的输入和输出所以Intel又把这段地址空间称之为MMIO(MemoryMapped I/OI/O存储器映射)当系统安装GB以下的内存时MMIO区域不会与物理内存条的地址空间相重叠操作系统可以访问几乎全部的物理内存而操作系统属性里显示的物理内存基本接近实际内存的容量! 而当系统安装上GB内存时问题出现了由于位于GB下面的部分地址空间要优先分配给MMIO内存条上对应的这段区间就得不到编址所以操作系统就不能使用严格意义上来说即使安装GB内存时操作系统也不可能使用到全部的内存容量诸如传统DOS的UMA区就有部分被占用的地址空间但因为被占用的容量相 比之下实在太少所以就被很多读者忽略了MMIO占用的地址空间在MB~GB之间这么大的浪费大家肯定不能熟视无睹 因为受GB芯片组地址空间的限制(条地址线的限制)Intel 系列及以前的芯片组NVIDIA nForce 及以前的芯片组都没有办法绕过这个限制具体原因有三方面 其一是芯片组没有剩余空间分配来供操作系统来调配其二是物理内存的编址必须是连续的不能被割断其三是系统开机时必需先从GB的顶端地址(FFFF_FFFFh)读取BIOS数据这是IA架构和GB地址空间的局限 所以建议使用这些芯片组主板的用户不要安装GB的内存这样会有部分内存容量不能被操作系统所使用而解决GB内存限制的唯一办法就是扩展地址空间 二支持大于GB内存的芯片组和内存重映射技术 面对原有芯片组GB内存的局限Intel和NVIDIA早就开始未雨绸缪他们对传统的位地址总线进行了调整将其升级到位并推出了一系列 可以突破GB内存限制的芯片组这就是Intel的系列以及系列NVIDIA的nForce /以及系列 注AMD的位Socket AM CPU把内存控制器放到CPU中提供bit的物理地址总线地址空间可达到GB具体支持的地址空间和内存量取决于芯片组及主板的总线设计 从上面的芯片组参数来看地址总线从位提升到位地址空间达到GB支持安装GB的物理内存但由于IA架构的规则是开机时必须从 GB的FFFF_FFFFh地址读取BIOS信息尽管芯片组支持的地址空间变大了且最大支持的物理内存容量也达到了GB(或以上)但从本质上来 说仍然不能解决MMIO地址占用GB内存编址的问题这要怎么办呢? 位地址总线最大可以支持GB的地址空间这就为移动MMIO地址区提供了条件 现在解决这个问题的办法就是内存重映射技术就是在IA 架构的基础上把BIOS(ROM)和PCI/PCIE设备占用的MMIO地址区段重新映射到内存条顶端地址以上(例如GB以上)的地址空间从而把IA架构规定的这一段操作系统不可使用的位于GB下面的MMIO地址空间回收给物理内存使用保证物理内存编址的连续性 三BIOS必须支持内存重映射 内存重映射技术必须通过BIOS完成所以BIOS必须具有支持内存重映射的功能模块以便根据用户安装的内存容量来确定是否需要启用内存重映射功能同时在BIOS的设置选单中也要有Memory ReMapping的设置选项使用GB或者GB以上内存的用户一定要将此项设置设为Enable 四解决GB内存问题还需要操作系统支持 我们常使用的桌面操作系统是位的支持GB的地址空间前面我们介绍了解决GB问题的芯片组是支持GB地址空间的在这样的芯片组主板上安装 位的操作系统就只能使用GB的地址空间因此安装GB内存不能使用仅支持GB地址空间的位的操作系统应该使用支持大于GB地址空间的 位操作系统或位的操作系统 五小结 由于iA架构要求BIOS(ROM)芯片的地址 PCIPCIE存储器地址APCI中断路由地址等必须占用从GB开始以下的MGB空间这段MMIO地址区不能分配给内存条GB的内存条有MBGB的容量不能编址而浪费 使用GB或者以上的内存条必须使用地址(编址)空间GB的芯片组主板 内存重映射就是把被MMIO占用的地址移到内存条容量以上的地址空间) BIOS应具有支持内存重映射功能设置项里有 Memory Remap Feature 选项并设置为Enable 必须安装寻址空间大于GB的操作系统比如Windows 高级服务器版以及位操作系统 所有地址空间为GB的芯片组(Intel和nForce之前的)和位操作系统均不能利用内存重映射技术解决GB内存问题 |