`
lqwforever
  • 浏览: 32324 次
  • 性别: 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,会影响稳定性
分享到:
评论

相关推荐

    Windows 2000内存结构

    而另一方面,实际上没有几台机器的RAM能达到4GB,更不必说让每个进程都独享4GB内存了。Windows在幕后将虚拟内存 (virtual memory,VM) 地址映射到了各进程的物理内存地址上。而所谓物理内存是指计算机的RAM和由...

    实验五、Windows 2000内存结构.doc

    实验五、Windows2000...而另一方面,实际上没有几台机器的RAM能达到4GB,更不必说让每个进程都独享4GB内存了。显然,Windows在幕后将虚拟内存(virtualmemory,VM)地址映射到了各进程的物理内存地址上。而所谓物理内存

    微机原理与接口技术 习题参考答案

    拥有32条地址线,内存寻址范围为4GB,使用二级存储器管理方式,支持带有存储器保护的虚拟存储机制,虚拟存储空间高达264GB。Intel 80386时钟主频在16MHz以上,80486工作主频提高到了50MHz以上。 5) 第五代微处理器 ...

    大一计算机应用基础习题与答案.doc

    第一代电子计算机的特点是 :硬 件电子逻辑元件为电子管,软件只能支持机器语言;第二代电子计算机的特点是: 硬件 电子逻辑元件是晶体管,软件高级语言诞生;第三代电子计算机的特点是:硬件电 子逻 辑元件为中小...

    simple-Linux-NAS:基于带有ZFS的Ubuntu Linux Server的NAS的简单管理

    简单(便宜吗?)Linux NAS 我使用这个项目来管理我的家庭NAS,该NAS用于少量的Time ... 我当前的NAS硬件是较旧的Thinkpad,具有4GB内存,Core 2 Duo CPU和通过USB 2.0连接的4TB外部驱动器单元。 与商业替代产品相比,

    会计理论考试题

    A、直接拖至 B、Ctrl十拖至 C、Alt十拖至 D、单击 24.Windows98中的磁盘的根文件夹是___B___。 A、在“文件”菜单中选择“新建”命令产生 B、格式化磁盘时,系统自动产生 C、在桌面上单击右键,再选择“新建”命令...

    计算机组装基础知识.doc

    衡量内存性能主要包括: 内存容量〔4GB、 3GB、2GB2、1GB〕 工作频率(MHz)〔1600、1333、1066、800、667、533、400、333 〕 内存类型 〔DDR、DDR2、DDR3〕目前比较知名的品牌有Hyundai(现代原厂〕、Kingstone(金仕顿...

    PassMark BurnInTest Pro v9.0.1016.0.zip

    PassMark BurnInTest Pro不仅可以检测出包括操作系统、内存、显卡、硬盘、光驱等电脑系统的硬件详细信息,且还可以同时对系统所有的子系统进行稳定性的测试,通过软件的帮助用户可以在很短的时间内对硬件进行全面的...

    windows用户称拦截api

    其中0x00000000--0x7fffffff是属于用户层的空间.0x80000000--0xffffffff则属于共享内核方式分区,主要是操作系统的线程调度,内存管理,文件系统支持,网络支持和所有设备驱动程序。对于用户层的进程,这些地址空间...

    MATLAB时间代码顺序-Sequence-Models-on-Stanford-Treebank:斯坦福树上的序列模型

    在GPU机器(K40)上,估计运行时间为15-20分钟,在CPU机器上为10-14小时。 matlab> = 2014年 内存> = 4GB 资料夹 Bi_LSTM:双向LSTM序列模型。 根文件:BiLSTM.m。 文件“ lr001”包含10次不同尝试的存储结果。 您...

    matlab用代码实现公式-opencv-dlco:OpenCVDLCO(使用凸优化的描述符学习)

    培训过程的最低硬件要求是至少16Gb内存和具有至少4Gb内存的具有CUDA功能的GPU卡。 训练过程中涉及的矩阵高达13Gb,某些验证矩阵在GPU卡上使用高达2.5G的内存,以优化就地计算。 进度条指示培训过程中任何时刻或部分...

    mysql数据库my.cnf配置文件

    # 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制, # 所以不要设置的太高. innodb_write_io_threads = 4 innodb_read_io_threads = 4 # innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,...

    Toad 使用快速入门

     内存:Windows 9x/Me:16M 内存;Windows NT/2000: Min 32M]  Tuning模块需要额外的25M空间 服务器端: Oracle 7.3 或者更高,在任何硬件平台上。  需要一个DBA用户帐号 三.安装: 1. 三种安装方式...

Global site tag (gtag.js) - Google Analytics