32位操作系统最大支持4G内存

在计算为什么32位操作系统最大支持4G内存这个问题时,用到了2^32,为什么单位是字节而不是比特呢?谁能深入的解释一下,内存寻址是什么意思?

先声明:4G的内存,总的可用数据位是 2^32 *8 位,没错 ,就是4G *8bit ;
但这和总线一次调用多少没关系。总线是32根,一次调用最多就是2的32次方种变换。 1次最小的变换是调用1个字节,没听说过调用半个字节的。所有调用的变换都是8bit的倍数,即一次调用至少1个字节。 即32根总线,有2^32种字节调用,即有2^32*8次方的位调用。 由于调用最小单位是字节,所以最大支持4G
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-03
内存寻址是指CPU允许支持的内存大小,32位处理器一次只能处理32位,就是2^32=4G;
64位为 2^64=16777216TB...追问

2^32次方的单位是字节吧,为什么不是比特呢

追答

翻阅了大量资料...发现我开始的回答是错误的...
我更正一下,2^32(位)=4G内存寻址是个错误的算式...
----------分割一下------------
早在奔2时代,硬件设计人员为当时的CPU加入了一些东西,首先是32位的运算能力,然后是32位地址总线,还有MMU(分页单元),使得CPU对物理内存进行段页式管理!此时,CPU是采用二级分布制:页目录(在线性地址中占10位)->页表(10位)->内存页表页(12位),之后,再在页表项入边才是相应的空间!这样CPU就访问2^10*2^10*2^12=4GB的内存了
然后很快发现服务器上4G内存不给力,然后就加多一级页表项,并加入相应控制寄存器,对其进行访问控制!这样,就可以对前的架构进行兼容!这套机制到现时都还在用,比如酷睿系列基本上物理寻址都在40位左右,这也是为了向下兼容;
上面介绍的是硬件,下面改说操作系统了;
操作系统的原理基本上是照抄硬件设计,有个插曲就是:你肯定听说过什么什么补丁能让32位的操作系统支持4G以上的内存吧;
没错,这就是PAE(Physical Address Extention)技术;上面说到了目前的CPU物理寻址在40位左右,而操作系统却限制在32位上,为了突破这个限制,所以使用PAE技术,从OS里跟CPU联动使用CPU设计的32位以外的页表和,控制寄存器以达到访问超过4g内存的目的.

本回答被网友采纳
第2个回答  2013-12-25
BYTE 一个字节 8byte
2^8 = 256 那你能说 一字节有 256位吗? 2^8只是一个取值范围
所以这里的2^32 算出来的也是不带单位的 仅仅是一个取值范围
第3个回答  2012-06-02
2的32次方是4g,数据线就有32根,所以最大是4g,采用4g的话其他线分配时就得想想办法了,望采纳追问

32位操作系统的单位是位,你计算支持多大内存时,为什么把2的32次方的单位变成字节了呢?

第4个回答  2020-03-03
相似回答