我目前正在学习基本的计算机架构,需要帮助解决以下问题:
如果出现以下情况,需要多少位来寻址4M x 16主存储器:
a)内存是字节可寻址的吗?
b)内存是可以字寻址的吗?
答案是,就像大多数情况下位于教科书后面一样,但我想知道如何解决这个问题。
提前致谢!
答案 0 :(得分:8)
尽管被错误地投票,但是Lashane是不正确的。我们谈论的是字节可寻址,而不是位可寻址。实际上,我们应该在字节可寻址系统上使用23位,在字可寻址系统上使用22位(假设字大小为16位宽):
字节可寻址:4M x 16 = 2 ^ 2(4)x 2 ^ 20(1m)x 2 ^ 1(2字节,或16位)= 2 ^ 23,或23位
字可寻址:4M x 16 = 2 ^ 2(4)x 2 ^ 20(1m)x 2 ^ 0(1字或16位)= 2 ^ 22,或22位
希望这可以解决Lashane可能造成的任何混乱......
答案 1 :(得分:4)
如果你正在研究Null和Lobur的第4章,第5章,这就是答案:
a)23位
4M * 16 = 2 ^ 2 * 2 ^ 20 *(2 ^ 4/2 ^ 3)(16位/ 8位是一个字节)= 2 ^ 2 * 2 ^ 20 * 2 ^ 1 = 2 ^ 23 => 23位。
b)22位
假设一个字长16位或2字节(Null和Lobur的合理假设,特别是如果你看一下上一个练习(No.4)。
4M * 16 = 2 ^ 2 * 2 ^ 20 *(2 ^ 4/2 ^ 4)(16位/ 16位是一个字)= 2 ^ 2 * 2 ^ 20 * 2 ^ 0 = 2 ^ 22 => 22位。
答案 2 :(得分:0)
这是不正确的个别位不可寻址。不可否认,内存包含
4M * 16 bits = 2^22 * 2^4 = 2^26 bits
但它是用于寻址的字节或字数。
答案 3 :(得分:-1)
4M x 16 = 64Mb内存= 67108864字节或33554432字(字通常为2字节)
这意味着内存中的最后一个字节将具有地址:0x3FFFFFF(67108864-1)= 26位
最后2个字节的字将有地址:0x1FFFFFF(67108864 / 2-1 = 33554432-1)= 25位
如果我们考虑4字节字 - 我们有最新地址0xFFFFFF(67108864 / 4-1)= 24位
更新:我错误地将4M乘以16,实际上16这里是位数,因此正确的计算将是:
4M x 16 = 4 194 304个单元,每个单元是16位= 2个字节
要解决每个字节,需要4 194 304 * 2,因此最后一个字节将具有地址(0x800000-1)= 7FFFFF,即23位
要寻址每个字(2个字节),需要4 194 304,所以最后一个字的地址为0x3FFFFF,即22位