注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

【藏宝阁】

酒逢知己饮,诗向会人吟。相识满天下,知心能几人。

 
 
 

日志

 
 

微软网站关于32位系统识别4G内存问题的解释  

2009-04-30 09:24:27|  分类: 电脑教程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

微软网站关于32位系统识别4G内存问题的解释
如果计算机上安装了 4 GB RAM,则 Windows Vista 的“系统信息”对话框中报告的系统内存将小于预期值。


症状如果计算机上安装了 4 GB 随机存取内存 (RAM),则 Windows Vista 中的“系统信息”对话框中报告的系统内存将小于预期值。例如,如果某台计算机上安装了 4 GB (4,096 MB) 内存,但“系统信息”对话框可能报告系统内存为 3,120 MB。

注意:可按照下列方法访问“系统信息”对话框: ·单击“开始”,在“搜索”框中键入系统,然后单击“程序”下面的“系统”。
·双击控制面板中的“系统”。
·单击“开始”,右键单击“我的电脑”,然后单击“属性”。
·在“Windows Vista 欢迎中心”窗口中,单击“显示更多详细信息”。


原因这一行为是某些硬件和软件因素导致的预期结果。

典型计算机中的各种设备均需要内存映射访问。这称为内存映射 I/O (MMIO)。若要使 MMIO 空间可用于 32 位操作系统,MMIO 空间必须驻留在前 4 GB 地址空间内。

例如,如果您具有一个板载内存为 256 MB 的视频卡,此内存必须被映射到前 4 GB 地址空间内。如果已安装了 4 GB 系统内存,则图形内存映射必须保留部分此地址空间。此图形内存映射会覆盖一部分系统内存。这些情况降低了操作系统可用的系统内存总量。

可用系统内存的减少情况取决于计算机中安装的设备。不过,为避免潜在的驱动程序兼容性问题,Windows Vista 32 位版本将可用总内存限制为 3.12 GB。有关潜在驱动程序兼容性问题的信息,请参见“更多信息”一节。

如果计算机中安装了多台设备,则可用内存可能会减小到 3 GB 或更少。但是,在 Windows Vista 32 位版本中,最大可用内存通常为 3.12 GB。

替代方法如果要使 Windows Vista 使用安装有 4 GB 内存的计算机上的全部 4 GB 内存,则该计算机必须符合下列要求:
引用:

·芯片集必须至少支持 8 GB 地址空间。具有此功能的芯片集包括:
Intel 975X
Intel P965
采用 Socket 775 插槽的 Intel 955X
支持 AMD 处理器的芯片集,AMD 处理器采用 Socket F、Socket 940、Socket 939 或 Socket AM2 插槽。这些芯片集包括任意 AMD 插槽和 CPU 的组合,其中内存控制器位于 CPU 内。

·CPU 必须支持 x64 指令集。AMD64 CPU 和 Intel EM64T CPU 支持此指令集。

·BIOS 必须支持内存重新映射功能。利用内存重新映射功能,可以将先前被外围组件互连 (PCI) 配置空间覆盖的系统内存段重新映射到 4 GB 地址行以上。必须在计算机上的 BIOS 配置实用程序中启用该功能。有关如何启用此功能的说明,请查看计算机产品文档。大多数面向消费者的计算机可能不支持内存重新映射功能。在产品文档或 BIOS 配置实用程序中未使用与此功能有关的任何标准术语。因此,您可能必须阅读有关各种可用 BIOS 配置设置的说明,以确定是否有任何 BIOS 设置启用了内存重新映射功能。

·必须使用 Windows Vista x64(64 位)版本。请与计算机供应商联系以确定您的计算机是否符合上述要求。

注意:当计算机安装的物理 RAM 等于芯片集支持的地址空间时,操作系统可用的系统内存总和始终小于所安装的物理 RAM。我们以一台具有 Intel 975X 芯片集(支持 8 GB 地址空间)的计算机为例。如果安装 8 GB RAM,则 PCI 配置要求将减少操作系统可用的系统内存。在此情况下,PCI 配置要求会将操作系统的可用内存减少约 200 MB 至 1 GB,减少的数量取决于配置。

更多信息PAE 模式引发的驱动程序兼容性问题与数据执行保护 (DEP) 有关的驱动程序兼容性问题通常为物理地址扩展 (PAE) 模式引发的兼容性问题。

注意:仅在其处理器支持硬件强制 DEP 功能的计算机上,PAE 才是必需的。

对于执行代码生成或使用其他技术实时生成可执行代码的任意驱动程序,DEP 可能导致与该驱动程序的兼容性问题。出现上述问题的许多驱动程序均已得到修复。对 Windows 64 位版本上的驱动程序来说,由于 DEP 总是处于启用状态,因此这些驱动程序经常遇到兼容性问题。但是,并不保证所有驱动程序均已更新为可以修补 PAE 模式引发的兼容性问题。不过,很少有驱动程序使用这些技术。DEP 自己通常不会引起驱动程序兼容性问题。

在 32 位计算机上运行 PAE 模式时可能出现驱动程序兼容性问题,这是您可能遇到的主要驱动程序兼容性问题。PAE 模式使处理器使用 4 GB 以上内存。PAE 和非 PAE 内存分页方案的主要区别在于在 PAE 模式下需要附加级别分页。PAE 模式需要三个级别的分页而不是两个级别的分页。

如果启用了 PAE 模式,则某些驱动程序可能不会进行加载,因为设备可能无法执行 64 位寻址。或者,假设 PAE 模式需要 4 GB 以上内存,驱动程序可能会被写入。在写入此类驱动程序时,预计这些驱动程序在 PAE 模式下总是会收到 64 位地址,且此类驱动程序或相应设备无法解释该地址。

其他驱动程序可通过直接修改系统页表项 (PTE) 在 PAE 模式下进行加载,但这会导致系统不稳定。这些驱动程序需要 32 位页表项,但在 PAE 模式下它们收到的却是 64 位 PTE。

驱动程序的最常见 PAE 兼容性问题与直接内存访问 (DMA) 传输和映射寄存器分配有关。许多支持 DMA 的设备(通常是 32 位适配器)都无法进行 64 位物理寻址。当这些设备在 32 位模式下运行时,它们可以对所有物理地址空间进行寻址。在 PAE 模式下,数据可存在于超过 4 GB 的物理地址中。为了使具有这些约束条件的设备可以在此情况下工作,Microsoft Windows 2000 Server 和更高版本的 Windows 为 DMA 事务提供双缓冲功能。Windows 2000 Server 和更高版本的 Windows 通过提供由映射寄存器指示的 32 位地址来实现这一目的。该设备可对 32 位地址执行 DMA 事务。内核将内存复制到提供给此驱动程序的 64 位地址。当计算机在禁用 PAE 模式的情况下运行时,32 位设备的驱动程序不要求将系统内存分配到其映射寄存器。这意味着不需要双缓冲,因为所有设备和所有驱动程序均包含在 32 位地址空间内。在基于 64 位处理器的计算机上对 32 位设备的驱动程序进行测试的结果表明,经客户端测试的具有 DMA 功能的驱动程序通常需要无限的映射寄存器。

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。

原文出自:http://support.microsoft.com/?scid=kb%3Bzh-cn%3B929605&x=16&y=15

 

要在32位WINDOWS下正常识别4G或更大内存,目前唯一的解决方法是用WINDOWS 2003 SP2并在BOOT.INI里开启PAE开关


boot.ini参数:PAE

boot.ini参数:
大致格式如下:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003"
/fastdetect

解析:
[boot loader]:
timeout: 超时持续时间(s)
default: 默认启动系统

[oprating systmems]:
multi(A): 适配器序数
disk(B): B总为0, 因为multi使用INT 13调用, 不使用disk参数
rdisk(C): C表示连接到适配器的磁盘的序数(从0开始)
partion(D): D表示分区序号(从1开始)


常用开关选项:


?/basevideo 强制系统进入640x480/16色VGA模式
?/bootlog 将引导日志写入%SystemRoot%\Ntbtlog.txt中
?/fastdetect 不检查并行和串行端口, 让即插即用驱动程序完成这个任务
?/nodebug 禁用内核调试器, 可以加速引导过程, 但可能会导致蓝屏死机
?/noserialmice:comx 禁用对指定COM端口的鼠标端口检查

其他参数
/3GB
  这是SP3新引入的。这使得用户区和系统区分为3G比1G的比例。只有用户使用NT企业版,应用程序也支持3GB选项时,此选项才生效。
/BASEVIDEO
  使用标准VGA方式启动。这种方式主要用于显示驱动程序失效时。
/BAUDRATE
  指出用于调度的波特率,如果用户不设置,则使用默认的9600,而对于线缆modem则使用19200。
/BOOTLOG
  使W2K将日志写入 %SystemRoot%NTBTLOG.TXT
/BURNMEMORY=
  使NT在已知的内存上少使用指定的兆数,如果/burnmemory=64,则有64M内存NT不使用。
/CRASHDEBUG
  调度器在NT启动时启动,但只有在内核错误时才有用,如果系统经常会无故出错,这个选项就很有用了。
/DEBUG
  在启动NT时调入调度器,它可以在任何时间激活,在错误可以再次出现时使用它比较合适。
/DEBUGPORT= comx
  指定用于调度的端口,其它X就指端口号。
/FASTDETECT
  对于W2K启动时它使系统不检查串行口和并行口。
/HAL=
  允许用户不使用默认的HAL。
/INTAFFINITY
  设置多处理器HAL(HALMPS.DLL),使编号最大的处理器接收中断请求。如果不设置此选项,W2K会使所有处理器接收中断请求。
/KERNEL=
  与上面的功能相同,不过是针对SMP中的内核而言的。
/MAXMEM:n
  指定NT可以使用的最大内存数,如果一个内存片损坏,这个开关就十分有用了。
/NODEBUG
  不使用调试信息
/NOGUIBOOT
  指定此选项会使W2K不加载VGA驱动程序,也就不会显示启动过程和失败时的兰屏信息。
/NOSERIALMICE=[COMx | COMx,y,z...]
  在特定的COM中上禁止对串行鼠标的检测。如果用户有一个非鼠标设备接在COM口上,这个选项会十分有用。如果此开关未加参数,系统会禁止所有COM口。
/NUMPROC=n
  只允许前N个系统处理器工作
/ONECPU
  在多处理器中只使用一个处理器
/PCILOCK
  不让NT为PCI设置分配IO/IRQ资源,而启用BIOS设置。
/SAFEBOOT:
  安全启动,这个大家一定十分熟悉,W2K只启动HKLMSystemCurrentControlSetControlSafeBoot中的驱动程序和服务,其后跟三个参数MINIMAL,NETWORK或DSREPAIR之一。MINIMAL和NETWORK在允许网络下启动系统。而DSREPAIR要求系统从备份设备中调入活动目录的设置。还有一个选项是"(AlterNATESHELL)",它让系统调入由HKLMSystemCurrentControlSetSafeBootAlternateShell指定的SHELL程序,而不使用默认的Explorer。
/SOS
  在调入驱动程序名时显示它的名字,在因驱动问题而无法启动时使用比较好。
/WIN95
  在装有三个系统DOS,Win9x和Windows NT的系统上,让NTLDR直接调用Win9x启动文件BOOTSECT.W40
/WIN95DOS
  在装有三个系统DOS,Win9x和Windows NT的系统上,让NTLDR直接调用DOS启动文件BOOTSECT.DOS
/YEAR=
  使用指定的年份,如果设置为/YEAR=2005,那现在的时间就是2005年,此选项仅对NT4+SP4和W2K生效

注释:
[any text]

在[any text]下面的所有文本均会识别为注释. 如:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003"
/fastdetect
[any text]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows 2000 Server"
Windows 2000 Server将不会显示在选择菜单上.
相关文章
物理地址扩展 (PAE) :Windows Server 2003 和 Windows 2000 提供大内存支持Windows Server 2003 和 Windows 2000 提供大内存支持本文介绍物理地址扩展 (PAE) 和地址窗口化扩展 (AWE) 并解释它们如何协同工作。本文还将讨论超出 32 位操作系统所固有的 4 GB 范围的内存使用限制。
更多信息PAE 提高了 IA32 处理器处理大于 4 GB 的物理内存的能力。Microsoft Windows 2000 Advanced Server、Microsoft Windows 2000 Datacenter Server、Microsoft Windows Server 2003 Enterprise Edition 和 Microsoft Windows Server 2003 Datacenter Edition 可以使用 PAE 来利用超出 4GB 的物理内存。若要启用 PAE,需要在 Boot.ini 文件中使用 /PAE 参数。

注意:只有在服务器使用热添加内存设备时,Windows Server 2003 Enterprise Edition 和 Windows Server 2003 Datacenter Edition 才自动启用 PAE。在这种情况下,不需要在配置为使用热添加内存设备的系统上使用 /PAE 开关。在其他情况下,必须在 Boot.ini 文件中使用 /PAE 开关来利用大于 4GB 的内存。

典型情况是,在 Windows 2000 或 Windows Server 2003 下运行的进程最多可以访问 2 GB 的内存地址空间(假设未使用 /3GB 参数),其中一些内存是物理内存,另一些是虚拟内存。运行的程序越多(因而进程也越多),占用的内存地址空间也就越接近 2 GB 这一最大值。

当出现这种情况时,分页进程将显著增加并且会对性能产生负面影响。Windows 2000 和 Windows Server 2003 内存管理器使用 PAE 向程序提供更多的物理内存。这会降低对交换页面文件内存的需要,从而提高了性能。程序本身并不知道实际的内存大小。所有的内存管理和 PAE 内存分配都由内存管理器处理,与运行的程序无关。

当使用 /3GB 参数时,上述信息对于运行的程序有效。要求 3 GB 内存的程序更有可能让其所需的内存有更多部分在物理内存中,而不是在分页的虚拟内存中。这将增强那些能够使用 /3GB 参数的程序的性能。但例外情况是当 /3GB 参数与 /PAE 参数一起使用时。在这种情况下,操作系统将不使用任何超过 16 GB 的内存。此行为是由内核虚拟内存空间考虑导致的。因此,如果系统使用 Boot.ini 文件中的 /3GB 项重新启动,并且系统的物理内存超过 16 GB,则操作系统不使用额外的物理随机存取内存 (RAM)。重新启动计算机时如果不使用 /3GB 开关,将能够使用所有的物理内存。

AWE 是内存管理器功能的一套应用程序编程接口 (API),它使程序能够寻址更多内存 — 超过标准 32 位寻址的 4 GB 内存空间。AWE 使程序能够将物理内存保留为非分页内存,然后将非分页内存部分动态映射到程序的内存工作集。此过程使内存密集型程序(如大型数据库系统)能够为数据保留大量的物理内存,而不必交换分页文件以供使用。相反,数据在工作集中进行交换,并且保留的内存超过 4 GB 范围。此外,超出 4 GB 的内存范围对内存管理器是公开的,并且 AWE 通过 PAE 发挥作用。没有 PAE,AWE 就无法保留超出 4 GB 的内存。

以下是一个 Boot.ini 文件的示例,其中已添加了 PAE 开关:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE


警告:Boot.ini 文件的内容根据您的配置而异。
总之,PAE 是 Windows 2000 和 Windows Server 2003 内存管理器的一项功能,它为请求内存的程序提供了更多物理内存。程序并不知道它正使用的内存中有些在大于 4 GB 的范围内,正如程序不知道它请求的内存实际上是在页面文件中一样。


如果向系统添加更多内存,BIOS 可能会认出安装在服务器中的全部物理 RAM,而 Windows 将只能认出部分 RAM。如果服务器具有启用的冗余内存功能或内存镜像功能,则全部剩余内存可能对 Windows 都不可见。冗余内存在某个内存块故障时为系统提供一个故障转移的内存块。内存镜像将内存块拆分为一个镜像集。两种功能都在 BIOS 中启用或禁用,而无法通过 Windows 访问。要修改这些功能的设置,您可能必须参考系统用户手册或 OEM 网站。另外,您可能必须联系硬件供应商。

例如,如果正在运行的系统安装了 4GB 的 RAM,随后又添加了另外 4GB 的 RAM,Windows 可能只识别出 4GB 或 6GB 的物理内存,而不是全部的 8GB。冗余内存功能或内存镜像功能可能在您未知的情况下就在新内存块上启用。这些症状类似于未将 /PAE 开关添加到 Boot.ini 文件时的症状。

 

还是用64bit的xp吧:

xp不支持4G内存的原因
根据微软官方的回复是
XP/vista 32bit在安装4G内存后会分配其中部分内存作为设备保留的内存地址
因此系统属性中只能看到3G到3.5G不等的内存容量
剩余部分不是没用上而是被系统扣押了
用户无法直接使用
而且32bit的XP/Vista也不允许单个程序占用超过3G的内存
这是系统内核的特点
微软官方并没有提供相应的解决方案
唯一的建议是:更换为64bit的XP/Vista

至于网上那些在boot.ini之类的加参数达到完全支持的
微软似乎只承认在Windows Server 2003下可能有效,XP/Vista无效

  评论这张
 
阅读(2327)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017