对于寻址范围我一直都不太懂,于是问同学+查阅资料,最后终于懂了一些,整理给自己复习看。
CPU的最大寻址范围。寻找的地址是内存单元的地址。
比如:一个地址总线由6根地址线组成,那么他的地址线的最大寻址范围是2的6次方,也就是64个内存单元。超出了这个范围的内存单元则访问不到,需要增加地址线才可以访问的到。
假设CPU有20根地址线,32根数据线,试问按字节和字寻址,寻址范围分别是多少?
!!!默认情况下,地址线的位数对应的都是按字节寻址,但是如果题目中数据线只有四根,就不可能是字节寻址。因为数据线才四根,一次读写只有4bit,不可能做到按照字节寻址。本题是32根数据线,因此可以按照字节寻址。
!!!如果是按字寻址的话,需要拿出地址线做字内字节寻址。因为一个字有多个字节,我们需要拿出地址线来选择字节索引到相应的字节。通过数据线的个数可以判断出一个字有多少字节,从而决定分配多少地址线给字进行字节字节寻址。
解答:
按字节寻址;20根地址线,寻址范围就是2*20bit=1M
按字寻址:因为数据线有32位,即一个字有四个字节。4个字节则需要两根地址线字内寻址确定具体哪个字节。因此寻址范围为2 * (20-2) = 2 *18bit=256K
个人理解,如有错误,请纠正!