如:地址线20,数据线32,求的容量是2∧20*32=2MB;按字节寻址,范围是2MB/1B=2M.为什么不对?!
知道的说下,谢谢!
不是用4MB/8b吗,一字节是8b,为什么要除以4啊?
追答你的理解思路有问题。默认是按内存单元大小(4B)寻址;按字节寻址,一个内存单元4个字节,标识这四个字节需要占用原有地址额外的后两位(可以分别使用00,01,10,11标识这4个字节);举个例子,
按默认方式寻址地址单元0x004,按默认方式寻址的范围是2^20 = 1M 即为0~2^20-1
|--------- 20位 ----------------|
二进制表示为0000|0000 00000000 00000100
按字节寻址,与该内存单元中四个字节对应的地址分别为:
|---------- 20位 ---------------|
0000|0000 00000000 00000100 第一个字节对应的地址
0000|0000 00000000 00000101 第二个字节对应的地址
0000|0000 00000000 00000110 第三个字节对应的地址
0000|0000 00000000 00000111 第四个字节对应的地址
|---------- 18位 ------------|
注意后两位数字的变化,可以这样理解,前18位标识指向哪一个内存单元(注意每个内存单元大小为4字节),而后两位用来标识四个字节中的哪一个,20位均可以变化,估寻址范围仍为0~2^20-1(1M)。如果还有问题可以hi我