arm 为啥是 32位微处理器 所以ARM体系结构所支持的最大寻址空间为4GB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arm 为啥是 32位微处理器 所以ARM体系结构所支持的最大寻址空间为4GB相关的知识,希望对你有一定的参考价值。

所谓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字节,这样就会造成大量数据的冗余,不利于内存的有效使用。
参考技术A 所谓32位微处理器,指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为32位,32位指令集就是运行32位数据的指令,也就是说处理器一次可以运行32bit数据。
由于32位数据能够包含的地址有2^32=4294967296=4194304K=4096M=4G,所以说最大寻址空间为4GB,但由于指令代码中不可能只包含内存的地址信息,所以一般来说32bit的处理器能够寻得的地址只有不足4GB。追问

为什么是2的32次方而不是3. 6 .

追答

不知道你这个3.6是怎么来的。
32位指的是32位二进制数字, 所能够定位的位置也就是2^32个,就如同2位的十进制数字能够定位的位置为10^2=100个。

追问

想问的是能定位2^32种数,但每种数有32位即4个字节,所以支持的空间为2^32*4个字节为16GB??4GB

追答

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

本回答被提问者采纳

以上是关于arm 为啥是 32位微处理器 所以ARM体系结构所支持的最大寻址空间为4GB的主要内容,如果未能解决你的问题,请参考以下文章

为啥要使用thumb模式,与ARM相比较,Thumb代码的两大优势是啥?

arm为啥要分两种工作状态:arm和thumb

ARM - 使用 16 位数据总线获取 32 位数据

stm32的arm内核和cortex架构到底是啥意思?有啥区别?求指教!

指令,操作系统位数,32位与64位 x86 arm 处理器 ,概念概览

关于ARM架构的一些知识