32位机32位最多支持多少内存能访问4g内存么?

帖子64&积分195&最后登录&
Win7等32位系统无法使用4G内存的原因及解决方法-理论篇
  前几天给笔记本加到了4G内存,虽然自带的WIN7 32位系统能认出4G,但实际只能用到2.99G,如下图:
(120.21 KB)
这不是浪费了足足1G内存?用GOOGLE搜了下,很多人说ReadyFor4GB这个软件可以破解Win7/Vista 无法支持4G内存的限制,但也有很多人持怀疑态度,粗略想下,同样的32位系统Win2008、Win2003 等系统不是能支持4G/4G以上的内存吗?Win7、Vista、XP又凭什么不明不白的吃掉了我们差不多1G的内存呢?现在让我们一起来讨论这个问题,解开32位系统无法支持4G之迷,测试ReadyFor4GB这个软件是否有效?以及其它的解决方法。
下面我们先看看微软对于这个问题的说法:
------------------------------------
发生原因:
這種行為是某些硬體和軟體因素的預期結果。
一般電腦中的多種裝置都需要進行記憶體對應存取。這就稱為記憶體對應 I/O (MMIO)。為了使 MMIO 空間可供 32 位元作業系統使用,MMIO 空間必須位於位址空間的最前面 4 GB 之內。
例如,如果您擁有具 256 MB 內建記憶體的視訊卡,該記憶體就必須對應至位址空間的最前面 4 GB 之內。如果已經安裝了 4 GB 的系統記憶體,該位址空間的一部分就必須保留給圖形記憶體對應。圖形記憶體對應會覆寫系統記憶體的一部分。這些情況會減少可供作業系統使用之系統記憶體的總量。
可用系統記憶體所減少的數量,會取決於電腦中所安裝的裝置。然而,為了避免發生驅動程式相容性的潛在問題,32 位元版本 Windows Vista 將可用的記憶體總量限制到 3.12 GB。如需有關驅動程式相容性潛在問題的資訊,請參閱<其他相關資訊>一節。
如果電腦具有許多已安裝的裝置,可用的記憶體數量就可能減少到 3 GB 或者更少。然而,32 位元版本 Windows Vista 的可用記憶體上限一般是 3.12 GB。
其它可能方案:
在安裝了 4 GB 記憶體的電腦上,若要讓 Windows Vista 使用所有 4 GB 的記憶體,該電腦就必須滿足下列需求:
晶片組必須能支援至少 8 GB 的位址空間。具有這項功能的晶片組包括下列:
Intel 975X
Intel P965
採用 Socket 775 插槽的 Intel 955X
支援採用 socket F、socket 940、socket 939 或 socket AM2 插槽之 AMD 處理器的晶片組。這些晶片組包括 AMD 插槽和 CPU 的任意組合,只要記憶體控制器位於 CPU 中。
CPU 必須支援 x64 指令集。AMD64 CPU 和 Intel EM64T CPU 都支援這個指令集。
BIOS 必須能支援記憶體重新對應的功能。記憶體重新對應功能,可讓先前由週邊元件連接 (Peripheral Component Interconnect,PCI) 設定空間覆寫的系統記憶體片段,重新對應到 4 GB 位址之上。這項功能必須在電腦上的 BIOS 設定公用程式中啟用。請參考您的電腦產品文件,以取得如何啟用這項功能的指示。許多消費者導向的電腦系統,可能不支援記憶體重新對應的功能。對於這項功能,在文件中或在 BIOS 設定公用程式中皆未使用標準術語。因此,您可能要閱讀各項可用 BIOS 設定的說明,來判斷該設定是否可啟用記憶體重新對應的功能。
必須使用 x64 (64 位元) 版本的 Windows Vista。
請連絡電腦廠商,來判斷您的電腦是否可滿足這些需要。
注意 如果安裝在電腦上的實體 RAM 等於晶片組所能支援的位址空間,可供作業系統使用的總系統記憶體,永遠會少於已安裝的實體 RAM。例如,以支援 8 GB 位址空間之 Intel 975X 晶片組的電腦為例。如果您安裝了 8 GB 的 RAM,可供作業系統使用的系統記憶體就會因 PCI 設定的需求而減少。在此案例中,PCI 設定的需求將會減少作業系統可用的記憶體大約 200 MB 至 1 GB 之間。減少的數量將取決於設定。
-----------------------------------
从微软的解释我们得知要32位系统支持4G、4G以上的内存首先要达到以下几点要求:
1.芯片组必须能支援至少 8 GB 的位址空间。
2.CPU 必须支持 x64 指令集。AMD64 CPU 和 Intel EM64T CPU 都支持这个指令集。
3.BIOS 必须能支持打开内存重映射的功能(Memory Remapping)。
(49.09 KB)
4.必须使用64位操作系统。
(但这点令人非常怀疑,因为Win2008 32位就能支持4G、4G以上的内存,后面我们会做实验证实。)
(64.74 KB)
主板芯片对内存大小的限制,不支持4G/4G以上内存的原因以及应对方法:
上面微软已经说过原因了,但说得比较令人难明白。我们来看以下这篇来自互联网的文章:
------------------------------------
认识4G地址空间的局限----MMIO内存映射的问题
首先我们还必须要先了解两个概念
其一是“物理内存”。大家常说的物理内存就是指安装在主板上的内存条,其实不然,在计算机的系统中,物理内存不仅包括装在主板上的内存条(RAM),还应该包括主板BIOS芯片的ROM,显卡上的显存(RAM)和BIOS(ROM),以及各种PCI、PCI-E设备上的RAM和ROM。
其二是“地址空间”。地址空间就是对物理内存编码(地址编码)的范围。
所谓编码就是对每一个物理存储单元(一个字节)分配一个唯一的地址号码,这个过程又叫做“编址”或者“地址映射”。这个过程就好像在日常生活中我们给每家每户分配一个地址门牌号。与编码相对应的是“寻址”过程——分配一个地址号码给一个存储单元的目的是为了便于找到它,完成数据的读写,这就是“寻址”,因此地址空间有时候又被称作“寻址空间”。系统不仅要给主板上的内存条编址,还要给上述的其它物理内存编址;它们都被编在同一个地址空间内,编址后的物理内存就可以被系统资源使用或占用。
从Pentium Pro处理器开始,CPU的地址总线已经升级到36位,寻址能力达到64GB,按理说CPU支持4GB的内存是没有问题的;因此,芯片组(北桥—MCH)地址总线的数量就成了决定物理内存地址空间大小的决定性因素。在Intel 945系列和945以前的芯片组,nForce 550系列和550以前的芯片组都只有32条地址线,为系统提供4GB的地址空间,即最高可以安装4GB的内存条。
虽然可以安装4GB内存条,但这4GB的内存空间不能全部纷配给内存,因为从4GB空间的顶端地址(FFFF_FFFFh)开始向下要有400MB-1GB的地址空间要分配给主板上的其他物理内存。
(25.62 KB)
我们可以看到4GB的地址空间可以分为两大部分,0MB~物理内存顶端的地址分配给主板上安装的物理内存,4GB到物理内存顶端的地址分配给BIOS(ROM)和PCI/PCI-E设备的存储器。由于这些存储器基本上是用于系统的输入和输出,所以Intel又把这段地址空间称之为“MMIO”(Memory-Mapped I/O—I/O存储器映射)。当系统安装3GB以下的内存时,MMIO区域不会与物理内存条的地址空间相重叠,操作系统可以访问几乎全部的物理内存,而操作系统属性里显示的物理内存基本接近实际内存的容量。
(98.83 KB)
而当系统安装上4GB内存时,问题出现了。由于位于4GB下面的部分地址空间要优先分配给MMIO,内存条上对应的这段区间就得不到编址,所以操作系统就不能使用。
严格意义上来说,即使安装2GB内存时操作系统也不可能使用到全部的内存容量,诸如传统DOS的UMA区就有部分被占用的地址空间,但因为被占用的容量相比之下实在太少,所以就被很多读者忽略了。MMIO占用的地址空间在256MB~1GB之间,这么大的“浪费”大家肯定不能“熟视无睹”。
& &因为受4GB芯片组地址空间的限制(32条地址线的限制),Intel 945系列及以前的芯片组、NVIDIA nForce 550及以前的芯片组都没有办法绕过这个限制。具体原因有三方面:其一是芯片组没有剩余空间分配来供操作系统来调配;其二是物理内存的编址必须是连续的,不能被割断;其三是系统开机时必需先从4GB的顶端地址(FFFF_FFFFh)读取BIOS数据, 这是IA32架构和4GB地址空间的局限.
所以建议使用这些芯片组主板的用户不要安装4GB的内存,这样会有部分内存容量不能被操作系统所使用。而解决4GB内存限制的唯一办法就是扩展地址空间。
支持大于4GB内存的芯片组和“内存重映射”技术
面对原有芯片组4GB内存的局限,Intel和NVIDIA早就开始未雨绸缪,他们对传统的32位地址总线进行了调整,将其升级到36位,并推出了一系列可以突破4GB内存限制的芯片组,这就是Intel的965系列以及975系列、NVIDIA的nForce 570/590以及680系列
注:AMD的64位Socket AM2 CPU把内存控制器放到CPU中,提供40bit的物理地址总线,地址空间可达到1000GB。具体支持的地址空间和内存量取决于芯片组及主板的总线设计。
& &从上面的芯片组参数来看,地址总线从32位提升到36位,地址空间达到64GB,支持安装8GB的物理内存。但由于IA32架构的规则是开机时必须从4GB的FFFF_FFFFh地址读取BIOS信息,尽管芯片组支持的地址空间变大了,且最大支持的物理内存容量也达到了8GB(或以上),但从本质上来说仍然不能解决MMIO地址占用4GB内存编址的问题。这要怎么办呢?
& &36位地址总线最大可以支持64GB的地址空间,这就为移动MMIO地址区提供了条件。现在解决这个问题的办法就是“内存重映射”技术——就是在IA32架构的基础上,把BIOS(ROM)和PCI/PCI-E设备占用的MMIO地址区段重新映射到内存条顶端地址以上 (例如4GB以上)的地址空间,从而把IA32架构规定的这一段操作系统不可使用的、位于4GB下面的MMIO地址空间回收给物理内存使用,保证物理内存编址的连续性。
BIOS必须支持“内存重映射”
“内存重映射”技术必须通过BIOS完成。所以BIOS必须具有支持内存重映射的功能模块,以便根据用户安装的内存容量来确定是否需要启用内存重映射功能。同时,在BIOS的设置选单中也要有“Memory Re-Mapping”的设置选项,使用4GB或者4GB以上内存的用户一定要将此项设置设为“Enable”
(91.88 KB)
由此我们知道:由于iA32架构要求BIOS(ROM)芯片的地址,PCI、PCI-E存储器地址、APCI中断路由地址等必须占用从4GB开始以下的256M-1GB空间,这段MMIO地址区不能分配给内存条,4GB的内存条有256MB-1GB的容量不能编址而浪费。使用4GB或者以上的内存条,必须使用地址(编址)空间64GB的芯片组主板,内存重映射就是把被MMIO占用的地址移到内存条容量以上的地址空间,BIOS具有支持“内存重映射”功能的,设置项里有 Memory Remap Feature 选项,应该设置为Enable,这样就可以解决MMIO地址区占用了内存地址的问题。
前面我们介绍了解决4GB问题的芯片组是支持64GB地址空间的,硬件芯片组上的限制解决了,但Win7/Vista/XP 等32bit操作系统还会受限于32位架构限制,即使是采用虚拟内存的方式,最多只能寻址到4GB。针对这个问题又有什么解决方法呢?
在早年的计算机中,地址的转换很单纯,有效地址就直接等于物理存储器的地址,这适合同一时间只有一个进程在运作。但Windows不会只有一个Window,多进程并存是现代计算机的基本情形。后来人们决定为每个进程划定一块专用内存区域,这样可以让多个进程同时运作。但这种分段方式会让内存在进程开开关关的过程中产生很多碎片,很多小块内存无法被利用。由于内存空间总是相对有限的,因此应用程序也不能疯狂的将所有东西直接塞进内存当中。同时我们也不能依赖硬盘这个缓慢的二级存储器去充当内存,那实在太慢了。为了调和这个矛盾,操作系统都引入了虚拟内存机制。
Windows的虚拟内存并非简单的指位于我们硬盘上的那个pagefile.sys文件,或者是在内存装不下的时候用于应急的“模拟内存”。在当代Windows系统中,任何一个进程都会被赋予其自己的虚拟地址空间,这是一种逻辑地址空间,并不存在实体,该虚拟地址空间可以覆盖了一个相当大的范围。对于一个32位进程,其可以拥有的虚拟地址空间为2^32=4GB,典型情况为2GB用户空间,2GB系统内核空间(最大可调整为3GB用户空间和1GB内核空间),这与安装了多少物理内存没有任何关系。每个进程的虚拟地址空间都会被标上各自的ID,这样两个进程之间的虚拟地址就不会互相干扰。虽然每一个32位进程可使用4GB的地址空间,但并不意味着每一个进程实际拥有4GB的物理地址空间或使用4GB物理内存,虚拟地址仅仅是一种逻辑地址。
应用程序自然不能总在看不见摸不着的虚拟地址里溜达,最终还是需要实实在在的物理存储器关联。应用程序会去为其虚拟地址申请物理存储空间,这个空间通常会小于应用程序的总虚拟空间。这里所说的物理存储器并不局限于计算机内存,还包括在磁盘空间上创建的页文件(pagefile.sys),其存储空间大小为计算机内存和页文件存储容量之和(所以Windows自动管理时的pagefile.sys是很大的)。由于通常情况下磁盘存储空间要远大于内存的存储空间,因此页文件的使用对于应用程序而言确实相当于透明的增加了其所能使用的内存容量,只是速度慢了点。有了虚拟内存的存在,程序本身就不用完全装入内存,或者完全存于硬盘,系统会将目前需要的部分读入内存处理,暂时不需要的就放在硬盘的页文件留作交换。不过CPU并不能直接去访问磁盘上的信息,每次磁盘访问都必须通过内存,所以若所需的内容在磁盘上的页文件中,就需要先加载到内存然后访问。
应用程序本身并不关心自己占用的内存大小,它只要求提交物理存储器,无论是磁盘还是内存。那么自然是尽量分配更多的高速的内存作为物理存储器最佳,所以我们也知道内存大的机器在大量应用程序启动时会快。当一个进程的虚拟内存提交的物理存储器是物理内存时,我们就可以省去从磁盘的页文件加载数据到物理内存的时间,程序的工作效率自然就会提高。尽管我们的内存超出了32bit系统的地址结构范围,但我们只要将4GB地址以上的物理内存为虚拟内存所用就不会浪费内存了。
物理地址扩展(Physical Address Extension,PAE)
物理地址扩展(PAE)是早在Pentium Pro时代就有的东东,它可以提高IA32处理器应对4GB以上内存的能力。当启用 PAE之后,Windows操作系统将从两级线性地址转换变为三层地址转换,额外的一层转换用于访问超过4GB地址的物理内存,可以将超出4GB地址的物理内存映射为应用程序进程的虚拟地址空间以提升虚拟内存性能。地址窗口扩展(AWE)更是可以将未分页的物理内存转换到进程的虚拟地址。通过PAE,我们可以完整的利用到被回收至4GB以上地址的那部分内存。
PAE内存分页和非PAE内存分页模式的主要区别是PAE模式要求的额外分页级别(3级而非2级)。PAE模式要求多于4GB的RAM。硬件驱动程序在PAE模式下应该始终接收64位地址,而一些旧驱动程序或硬件不能解释这种地址。就是因为一些旧硬件不支持 PAE X86,因此在PAE功能默认是不开启的,后面我会介绍Win7、Win2008如何开启PAE模式,XP、2003的开启方法网上遍地都是,我就略过了。
那么是不是开启了PAE模式,32位系统就能完美使用4G/4G以上的内存呢?
请继续阅读:
相关主题:
积分 + 3 点
积分 + 2 点
积分 + 3 点
积分 + 1 点
积分 + 1 点
积分 + 1 点
积分 + 1 点
积分 + 1 点
积分 + 1 点
积分 + 1 点
帖子97&积分265&最后登录&&
学习中 顶了。
帖子143&积分421&最后登录&
学习了 多谢楼主
帖子2&积分0&最后登录&
.......................
帖子2&积分0&最后登录&
......................................................................
帖子304&积分1294&最后登录&&
想你想的心都睡了
帖子16&积分224&最后登录&
学习了 多谢楼主
共同交流一下
帖子40&积分796&最后登录&
想当年,老子生意刚开张,三四个人来五六条枪...
帖子28&积分3&最后登录&
MZD桌面美化软件,超精简,仅1.08MMZD桌面美化软件,超精简,仅1.08MMZD桌面美化软件,超精简,仅1.08M
帖子243&积分413&最后登录&
& & 正在学习!!!
积分 + 1 点
积分 + 2 点
快速回复主题
[通过 QQ、MSN 分享给朋友]关于32位机器只支持4g内存的疑问
[问题点数:40分,结帖人power0811]
关于32位机器只支持4g内存的疑问
[问题点数:40分,结帖人power0811]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
2011年8月 C/C++大版内专家分月排行榜第二
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。如何让32位的WIN2003服务器使用4G以上内存的方法
字体:[ ] 类型:转载 时间:
很多朋友是为了使用4G以上的内存才安装了WINDOWS2003企业版,可是装好了之后却发现系统所使用的内存只有3G多,是不是WINDOWS2003企业版32位,不支持大于4G以上的内在?
其实不是!“newswan”发的帖子很好,对于英文不好的朋友,完全看明白还是有点难度的。下面,简单给大家提供一点参考,2003是支持4G以上的内存的,但是在默认的情况受32位的限制,不能使用4G以上的内存,要想完全使用4G以上内存就要靠PAE和AWE来解决32 位操作系统所固有的4G范围的内存使用限制。 PAE即物理地址扩展,Windows 2003 内存管理器使用 PAE 向程序提供更多的物理内存。程序本身并不知道实际的内存大小。所有的内存管理和 PAE 内存分配都由内存管理器处理,与运行的程序无关。 AWE即地址窗口化扩展,是内存管理器功能的一套应用程序编程接口 (API),它使程序能够寻址更多内存 — 超过标准 32 位寻址的 4 GB 内存空间。 对于PAE和AWE要注意的是:PAE即物理地址扩展是Windows 2003 内存管理器的一项功能,也就是说其是基于系统的,而AWE即地址窗口化扩展是一套应用程序编程接口 (API)。 在 Windows Server 2003 中,当服务器使用热插拔内存设备时,会自动启用 PAE。而对于我们普通人来说不可能会使用价格高昂的服务器机器,必须在 Boot.ini 文件中使用 /PAE 开关来利启用 PAE。使用大于 4GB 的内存。 以下是一个 Boot.ini 文件的示例,其中已添加了 PAE 开关: [/code] [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 [code]
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具不用补丁让32位win7系统支持4G以上内存你还不赶快收藏吗 - 辽宁沈阳数据处理信息
欢迎您,&|&&|&&|&&|&&|&
不用补丁让32位win7系统支持4G以上内存你还不赶快收藏吗
信息编号:8903494&发布时间: 18:59:11&
  1.打开CMD:开始→运行→输入CMD,确定。
  2.&在cmd中输入:&bcdedit&/set&pae&forceenable&这里的bceddit是关于命令行的启动配置编辑器。
  使用上面的命令,你能启用物理地址扩展(PAE),让支持的内存大于4GB;
  因为32位windows默认应用程序只能使用2G内存,剩下的都保留给系统内核了,所以还要开启3GB
  在cmd中输入:&bcdedit&/set&increaseuserva&3072&来使得windows把2G以上的内存也分配给应用
  Windows&7&下关闭PAE\3GB:
  进入CMD后输入:
  PAE:&bcdedit&/set&pae&forcedisable
  3GB:&bcdedit&/*value&IncreaseUserVa
  ·&要执行该过程,您必须是本地计算机上&Administrators&组的成员,或者您必须被委派了适当的权限。如果计算机已加入某个域,则&Domain&Admins&组的成员可能会执行该过程。作为安全性最佳操作,请考虑使用“运行方式”执行此过程。
文章来源先锋论坛:http://www.xfmhw.net
以下是“不用补丁让32位win7系统支持4G以上内存你还不赶快收藏吗”信息发布人联系方式:
提示:要求提前汇款或缴纳定金或保证金的均属诈骗,经网站核实的被举报信息,将在第一时间删除,构建一个安全的免费发布信息平台!
会员身份:高高兴兴
联 系 人:吴
单位名称:
联系电话:
所在城市:辽宁&>>&沈阳
联系邮箱:
联系我时请说明是从K518信息网看到的,这样我会给你最大的优惠!
沈阳数据处理相关分类

我要回帖

更多关于 4g内存装32位 的文章

 

随机推荐