按字寻址和按字节寻址以及内存编码、地址总线与数据总线的理解

内存编制和关于按字寻址和按字节寻址的理解:

在很多书上都看到32位地址线的寻址空间是4G,我的理解是32位不就是32bit吗,2^32Bit=4GB/8=0.5GB,为什么会是4G呢?这里其实设计到一个概念,就是内存编址的问题。

32位地址线的寻址范围为什么是4G?

2^30B = 1GB

2^32B = 4GB

这里的计算方法,默认计算机是【内存地址是以字节为单位的,一个内存单元的大小就是1B】

若计算机中内存地址是以字为单位的,4G内存,对应的寻址范围是多少?

 4GB=2^32B

 1字= 32bit = 4B

 2^32/ 4B = 2^30

 所以,若以字为寻址单位,则至少需要30跟地址线才能完成对4GB空间的编码。

综上,计算机中内存地址是以字节为单位的,一个内存单元大小就是1KB。


数据总线与地址总线:

地址总线的位数决定CPU的寻址范围;数据总线的位数决定CPU单次能交换的信息总量。总线的速度决定CPU和外设互换信息的速度。

CPU的位数指的是数据总线的位数,而决定最大支持内存的则是地址总线位数。

一般来说,数据总线与地址总线的位数是相同的(也有不同的,比喻51单片机)。

32位操作系统,其地址总线与数据总线位数均为32,若其内存为4G,2^32B=4G,则刚好4G内存都可以寻址得到,内存可以充分被利用。

你可能感兴趣的:(ARM)