1

我目前正在学习基本的 ccomputer 架构,需要帮助解决以下问题:

在以下情况下,寻址 4M x 16 主存储器需要多少位:

a) 内存是字节可寻址的吗?

b) 存储器是字可寻址的吗?

答案是,就像在教科书后面的大多数情况一样,但我想知道如何解决。

提前致谢!

4

4 回答 4

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 可能造成的任何混乱......

于 2014-10-30T08:19:18.787 回答
5

如果您正在研究 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 中的合理假设,特别是如果您查看前面的练习(第 4 号)。

4M * 16 = 2^2 * 2^20 * (2^4 / 2^4)(16位/16位是一个字)= 2^2 * 2^20 * 2^0 = 2^22 => 22位。

于 2014-12-08T11:25:27.287 回答
0

这是不正确的个别位不可寻址。诚然,记忆包含

4M * 16 bits = 2^22 * 2^4 = 2^26 bits 

但它是用于寻址的字节或字数。

于 2014-03-19T00:13:24.370 回答
-1

4M x 16 = 64Mb 内存 = 67108864 字节或 33554432 字(字通常为 2 字节)

这意味着内存中的最后一个字节将具有地址:0x3FFFFFF (67108864-1) = 26 bits

最后 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 位

于 2013-10-22T21:45:42.210 回答