想问一下大家,为何32位CPU的寻址能力为4GB,而不是4Gb呢?

发布于2022-01-12 21:52:48
5个回答
admin
网友回答2022-01-12
2的32次方 是4G
admin
网友回答2022-01-12
4B是CPU的寄存器容量。4G是内存地址范围。是2个概念。
admin
网友回答2022-01-12
32位处理器,计算机中的位数指的是CPU一次能处理的最大位数。32位计算机的CPU一次最多能处理32位数据,例如它的EAX寄存器就是32位的,当然32位计算机通常也可以处理16位和8位数据。在Intel由16位的286升级到386的时候,为了和16位系统兼容,它先推出的是386SX,这种CPU内部预算为32位,外部数据传输为16位。直到386DX以后,所有的CPU在内部和外部都是32位的了。在计算机中,“位(bit)”和字节(Byte)、KB、MB以及TB的关系是:8位等于一字节,即8bit=1Byte,1KB=1024Byte(字节)=8*1024bit,1MB=1024KB,1GB=1024MB,1TB=1024GB 。32位处理器每次处理 4Byte(32bit),同理,64位处理器每次处理 8Byte(64bit) 。
与64位区别:
所谓64位的计算机,就是指这台计算机使用了64位的CPU,相比较32位的CPU来说,64位CPU最为明显的变化就是增加了8个64位的通用寄存器,内存寻址能力提高到64位,以及寄存器和指令指针升级到64位等。”
为了处理数据,暂时储存结果,或者做间接寻址等等动作,每个处理器都具备一些内建的内存,这些能够在不延迟的状态下存取的内存称为寄存器。 32位的处理器为什么会比64位处理器的性能差很多,这其实是一个受虚拟和实际内存尺寸的限制影响。
admin
网友回答2022-01-12
32位地址表示有2的32次方也就是4294967296个地址,
即从0到1111 1111 1111 1111, 1111 1111 1111 1111(转化为十进制4294967295)

每个地址访问一个字节。所以4294967296(即2的32次方)个地址访问2的32次方个字节,即4GB。

位说的是地址,而字节说的是寻址能力。是通过每个地址访问一个字节进行单位换算的,而不是直接将位化为字节。
admin
网友回答2022-01-12
所谓32位微处理器,指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为32位,32位指令集就是运行32位数据的指令,也就是说处理器一次可以运行32bit数据。

由于32位数据能够包含的地址有2^32=4294967296=4194304K=4096M=4G,所以说最大寻址空间为4GB,但由于指令代码中不可能只包含内存的地址信息,所以一般来说32bit的处理器能够寻得的地址只有不足4GB。

每个数只能定位一个字节,这样才能确保每个字节都节约下来。如果进程数为500,每个进程占用2字节,那么占用的总内存空间则为2*500=1000字节,但如果以4字节作为单位,则占用空间为4(只能以4字节为单位)*500=2000字节,这样就会造成大量数据的冗余,不利于内存的有效使用。

回到
顶部