`
lqwforever
  • 浏览: 33179 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

32位CPU的机器只能支持4GB的内存吗

 
阅读更多
现在内存条都是白菜价的时代,很多人手中都是4G大内存了。但是普通的32位操作系统只能认3G多的内存,有很多都是给白白的浪费掉了。近来很多人说使用补丁,能使32位的系统支持4G大容量内存。事实果真如此吗?

一,cpu的寻址能力

一般的cpu厂商标示的多少位cpu,其实说cpu的运算位宽。而CPU的位宽一般是以 min{ALU位宽、通用寄存器位宽、数据总线位宽}决定的!也就是说CPU由ALU、通用寄存器、数据总线三者之中最少的位宽决定!所以cpu的寻址能力和位宽是不能挂钩的。

在AMD K8时代引入64位后,AMD的U寻址位就达到物理寻址40多位,而INTEL在p4 6系列之后物理寻址寻址能力亦达到40位,这大概是1TB,而如果是64位寻址应该是16EB,所以,以CPU位宽衡量CPU寻址能力是一个典型的错误!所以说,cpu是32位,所以支持内存为2^32=4G是错误的,传媒中说64位cpu的最大好处是支持更大的内存也是错误的。

事实上CPU寻址能力因每种CPU设计不同而不同!就正如说32位的X86CPU,其实就在PentiumII是引入了36位的扩展PAE机制(Physical Address Extention)地址位来支持64G内存(源于当时服务器的问题),正常情况下也是用32位寻址,但通过设置相应的寄存器(没记错是cr4)的相应位激活PAE就可以支持64位寻址了!

二、大内存需要主板的支持

大家知道,Intel x86平台中使用了名为内存映射I/O(MMIO)的技术。它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存一样。这样访问AGP/PCI-E显卡上的帧缓存,BIOS,PCI设备就可以使用读写内存一样的汇编指令完成,简化了程序设计的难度和接口的复杂性。

就像是一个大水缸,里面要装一些泥沙,一些油,还要装一些水。泥沙就是DOS兼容区,水就是系统各I/O设备,最上面的油就是可用的内存了。当配置一定的情况下,泥沙和水的比例也就一定了。那能加多少水呢?这个就要问问你的水缸有多大了。那怎么来看这个水缸的大小呢,就奥看主板芯片组的地址总线位数。例如 i945P芯片组只有32位地址总线,因此它对应的地址空间为4GB。表面上看似乎能够支持4GB容纳量的内存。但这4GB地址空间中,有1MB分配给了 DOS兼容存储区,1MB-2GB分配给了内存访问,而2GB-4GB的部分地址空间则优先分配给了显卡帧缓存,PCI/PCI-E设备和BIOS区域,而这一区域也被Intel称作内存映射I/O(MMIO)区域。

由于4GB芯片组地址空间的限制(32条地址线的限制),Intel 945系列及以前的芯片组、NVIDIA nForce Go C6100/C6510,ATI Xpress 1150M,这些芯片组无论如何都不能完全支持4GB内存。具体原因有三方面:其一是芯片组没有设计剩余地址总线来供操作系统来调配;其二是不支持Memory Remap技术,而物理内存的编址必须是连续的,不能被割断;其三是系统开机时必需先从4GB的顶端地址(FFFF_FFFFh)读取BIOS数据, 这是IA32架构和4GB地址空间的局限。

三、操作系统的支持

除了芯片组方面的原因外,不同版本的操作系统对内存容量的支持也不尽相同,这就是我们所提到的造成4GB内存缩水的软件原因。虽然Windows XP系统号称最大可支持4GB容量的内存,但实际上即使在主板打开内存重映射技术的前提下,Windows XP系统仍然不能完全识别4GB容量的内存。

很多方法可以打开Windows操作系统的PAE功能,但是微软为什么没有主动开启呢?

这个是有副作用的!通过PAE利用大内存32位服务器早做到了。但是如果某驱动程序无法正确处理4gb地址以上的内存,就会发生问题. 这也就是为什么ms要禁用pae的最初原因,因为桌面系统上确实存在不少有问题的驱动程序.

总上所述,32操作系统支持4G大容量内存是可行的,但是它受主板芯片组的制约,同时,开启PAE,会影响稳定性
分享到:
评论

相关推荐

    32位windowsXP开启大于4G内存支持补丁

    然而,随着计算机硬件的发展,许多用户可能会在他们的32位机器上配备更大的内存以提高系统性能。为了克服这一限制,就需要特定的补丁或调整来启用对超过4GB内存的支持。本文将详细介绍如何使用"32位windowsXP开启...

    在 4GB 物理内存的机器上,申请 8G 内存会怎么样?.doc

    现在我们可以回答这个问题了:在 32 位操作系统、4GB 物理内存的机器上,申请 8GB 内存,会怎么样?因为 32 位操作系统,进程最多只能申请 3GB 大小的虚拟内存空间,所以进程申请 8GB 内存的话,在申请虚拟内存阶段...

    ReadyFor4GB.zip

    描述中的“让你的机器内存变成4GB,win7变成4GB”进一步证实了这个压缩包的目的,即解决Windows 7 32位系统无法充分利用4GB内存的问题。这通常涉及到修改系统设置、使用特定的内存优化驱动程序或者升级到64位操作...

    基于MIPS的32位流水线CPU设计

    这允许它访问高达4GB的内存空间,并处理各种32位算术和逻辑运算。在MIPS体系中,指令通常也是32位宽,包含操作码、寄存器标识和立即数或操作数的地址。 二、五级流水线 五级流水线是CPU内部的五个主要阶段:取指...

    检测机器是否支持64工具

    1. **32位与64位的区别**:32位系统最多能寻址4GB内存,而64位系统可以寻址远超这个限制的内存,理论上可达16EB。64位系统能处理更大的数据量,更适用于大数据处理和高性能计算。 2. **CPU架构**:AMD64和EM64T是两...

    IBM小型机CPU、内存升级激活文档(图)[整理].pdf

    正确的安装顺序是,第一个CPU板上的2GB内存条插入2、7、4、9槽上,第二、三、四个CPU板上的4GB内存条插入2、7槽上。 三、激活过程 小型机开机后,我们需要在笔记本连接到HMC1上,然后在IE浏览器中打开...

    测试机器是否支持虚拟化 64位

    32位系统最大可寻址2^32个字节(4GB)的内存,而64位系统则可以寻址远超过这个限制的内存,理论上可达2^64个字节。这使得64位系统更适合处理大数据和需要大量内存的应用。 为了检测您的机器是否支持虚拟化,我们...

    32位虚拟机

    这是因为32位操作系统和应用程序的地址空间有限,最多只能寻址4GB内存。尽管如此,对于许多日常应用和测试场景,32位虚拟机仍然足够使用。 在给定的文件中,我们看到"setup.exe"可能是虚拟机软件的安装程序,这通常...

    C内存管理.PDF

    Intel架构的CPU(如x86、IA-64)支持分页与分段两种内存管理方式,这是理解Windows内存管理不可或缺的一部分。 - **分段**机制通过段寄存器和偏移量的组合来表示内存地址,形成逻辑地址。系统随后将逻辑地址转换为...

    64位系统环境下解析32位和64位PE文件

    在现代计算机系统中,64位操作系统已经成为主流,它可以支持更大的内存空间和更高效的处理能力。然而,我们仍然会遇到大量的32位应用程序,这些程序在64位系统下运行时,其内部结构需要被正确解析才能确保正常执行。...

    老机器安装64位操作系统初始设置

    然而,实现这一目标前,必须确保老机器满足一定的硬件要求,如支持64位架构的CPU、足够的RAM以及兼容的BIOS版本。 ### BIOS设置:开启64位世界的门户 BIOS(基本输入/输出系统)是连接硬件与操作系统的桥梁,其...

    python-3.6.7-32位

    - **内存限制**:32位系统通常只能访问约4GB的内存,这可能限制了大型数据处理或内存密集型应用的执行。 - **兼容性**:32位Python可以运行在32位和64位操作系统上,但不能使用超过4GB的内存空间。 - **库支持**...

    32位微机接口与实验 相关代码

    1. **32位微机接口**:32位接口意味着数据宽度为32位,允许一次性处理或传输32个二进制位。这种接口在现代计算机系统中广泛使用,因为它们能够提供更高的数据处理速度和更大的地址空间(约4GB)。32位接口通常用于...

    Linux内核分析与应用课件第2章(一)内存管理之内存寻址.pdf

    386是一个32位的CPU,其寻址能力达到4GB。 4. 保护模式下的寄存器 保护模式下的寄存器有很大的变化,一些寄存器是专门属于操作系统使用的,比如用于分页的控制寄存器CR0~CR3,一般用户不能使用,一些寄存器是系统...

    32位64位系统多用户同时远程登录

    32位系统基于x86架构,能够处理最大4GB的RAM,而64位系统(通常基于x64架构)则可以支持更大的内存,理论上可达16EB。64位系统不仅内存管理能力更强,还能处理更复杂的计算任务,因此在现代高性能计算中占据主导地位...

    16/32位微机原理

    16位系统一次处理16位二进制数据,而32位系统则可以处理32位数据,因此32位系统通常具有更高的性能和更大的内存寻址能力。 2. **微处理器**:核心组件,负责执行指令和控制计算机的其他部分。16位微处理器如Intel ...

    新编16_32位微型计算机原理及应用(李继灿主编)课件

    32位处理器如Intel的80386和后来的 Pentium系列,能够处理32个二进制位,这意味着更大的内存地址空间(最多4GB)和更高的数据处理速率。32位系统能够支持更复杂的操作系统和应用程序,例如Windows 95及后续版本。 ...

    联想g41 bios

    32位系统最大只能识别4GB的内存,而64位系统可以处理更大的内存,更适合现代软件的需求。如果尝试在联想G41上安装64位系统,可能会遇到无法启动或安装失败的问题。 解决这个问题的方法通常有以下几种: 1. **更新...

    python解释器64位

    如果你的程序主要依赖于CPU速度而非内存大小,或者你正在运行的系统资源有限,32位Python可能仍然是更好的选择,因为它通常需要较少的系统资源。 在安装Python 64位版本时,需要注意以下几点: - 确认你的操作系统...

    32_C++中的内存管理是怎样的1

    在32位系统中,CPU可以寻址4GB的线性地址空间。每个进程拥有独立的4GB逻辑地址,其中0~3GB为用户态空间,3~4GB为内核空间。在用户态空间中,各进程的逻辑地址虽然相同,但会映射到不同的物理地址,实现地址空间的...

Global site tag (gtag.js) - Google Analytics