首页 > 代码库 > pci hole -- 被吞噬的内存

pci hole -- 被吞噬的内存

参见wiki: http://en.wikipedia.org/wiki/PCI_hole

PCI 空洞

  pci 空洞是32位硬件和32位操作系统一个导致计算机显示的内存比实际安装的内存少的一个限制。这部分不可用的内存是由于设备需要地址空间来和cpu以及系统软件通信。32位的硬件一共只有4GB可寻址的地址空间,所以为了让设备有空间可以通信,一个装上了足够内存的机器上的一部分真实的物理内存不得不让位于设备地址空间(这个因机器而异,一般是在2.5至3.5GB之间的空间),这部分内存会被隐藏起来以便为安装上的设备提供空间。

  被隐藏起来的系统内存的数量根据使用的主板和芯片组,BIOS,物理内存的数量,显卡上video RAM的数量,和系统上安装的PCI卡的数量和类型而有很大差异。在32位系统上,安装了4GB物理内存和多张有大显存的3D显卡后,会有1GB以上的内存不可用;在一些主板上,空洞会至少有1GB,无论安装了什么pci卡。

Physical address extension

  PAE技术允许32位操作系统访问36位内存地址,即使单独的应用程序还是限制只能使用32位的地址空间。每一个程序有自己独立的4GB地址空间,而所有的应用程序加起来可以访问64GB的地址空间。

填充内存空洞

  在64位系统上在内存空洞之上和之下的内存上可用的,但是有500到1500MB的内存不可用因为设备请求使用这些地址空间。随着内存价格的下降,这不会是一个太大的问题,但是还是有方法来重新访问这些丢失的内存。

映射设备到4GB以上的地址

映射内存到4GB以上的地址

 

pci hole -- 被吞噬的内存