正文内容 评论(0

32位CPU不支持4GB+内存?终于搞懂了
2018-03-28 16:12:45  出处:超能网  作者:thesea 编辑:上方文Q     评论(0)点击可以复制本篇文章的标题和链接

本文经超能网授权转载,其它媒体转载请经超能网同意

今天给大家科普一个,那就是内存寻址能力与CPU的位宽有关系吗?

答案是没有关系。

这个问题以讹传讹了很多人,传了很久,确实有必要说说。

CPU的寻址能力与它的地址总线位宽有关,而我们通常说的CPU位宽指的是数据总线位宽,它和地址总线位宽半毛钱关系也没有,自然也与寻址能力无关。

32位CPU不支持4+GB内存?终于搞懂了

简单的说,CPU位宽指的是一个时钟周期内CPU能处理的二进制位数,如8086 CPU是16位的,可以一次处理2个字节(16个bit),80386 CPU是32位,能一次处理4个字节,目前的CPU基本上64位的了,一次能处理8个字节。

我们的Windows操作系统也分为32位和64位,主要是针对上面CPU的位宽做了些优化,比如32位的CPU就不能用64位的Windows(因为CPU一次只能处理32bit,而操作系统给你的指令是要处理64bit),但64位的CPU就可以运行32位的Windows,也能运行64位Windows。

那CPU的地址总线位宽到底是个什么鬼?

32位CPU不支持4+GB内存?终于搞懂了

32位CPU不支持4+GB内存?终于搞懂了

Intel的解释是Physical Address Extensions (PAE) is a feature that allows 32-bit processors to access a physical address space larger than 4 gigabytes.

上面图片是Intel Xeon E5-2698 v3的截图,专门就扩展物理地址作了说明,大意就是说这个是为了让32位的处理器能使用超过4GB的内存。

这个PAE就是CPU的地址总线位宽。在8086这个16位CPU上,它的地址总线位宽是20位,正好能寻址1MB,80286它的PAE是24位,在Pentium II(32位CPU)时这个PAE变成了36位,可以支持64GB的寻址。

64位CPU出现之后,其地址总线位宽一般采用的是36位或者40位,它们寻址的物理地址空间为64GB或者1T。

那地址总线和数据总线有什么关系?可以这么理解,地址总线用来定位,数据总线用来传输,也就是当CPU需要从内存读取数据或向内存写入数据时,它使用地址总线来指定其需要访问的存储器块的物理地址,然后通过数据总线发送数据。

所以说,CPU的位宽和寻址能力是没有关系的,16位CPU的地址总线位宽可以是20位,32位CPU的地址总线可以是36位,64位CPU的地址总线位宽可以是40位。所以你下次一定不要说32位的CPU只能寻址2^32(4GB)了,大错特错。

那操作系统的位宽和寻址能力有什么关系吗,这个其实还是有的。我们在使用计算机时,操纵的其实是逻辑地址,32位操作系统的逻辑地址寻址范围只有2^32=4GB。

所以,不管你用什么样的CPU,它最多也只支持4GB的内存容量,但这是操作系统的锅,并不是说32位CPU只能寻址4GB空间。可能是在这儿容易引起错觉,一定要还CPU一个清白。

32位CPU不支持4+GB内存?终于搞懂了

责任编辑:文章纠错

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#CPU处理器#内存

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...