内存编制和关于按字寻址和按字节寻址的理解:
在很多书上都看到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内存都可以寻址得到,内存可以充分被利用。