【发布时间】:2013-05-24 02:46:14
【问题描述】:
假设我有一台计算机,其地址寄存器大小为 16 位(例如,MAR)。这台计算机中最小的可寻址单元是一个字,每个字的大小为 2 个字节。这个系统可以支持的最大内存大小(以字节为单位)是多少?
我以为是 2^16 = 65536 字节,但是关于最小可寻址单元的部分暗示这不是解决它的方法。
提前致谢
【问题讨论】:
-
我在这方面的经验不是很丰富,但要建立在你所说的基础之上。 2^16 将是寄存器可以保存的唯一地址的数量,但是如果保存的每块内存是 2 个字节(16 位),这不是 2^16 x 2 个字节吗? 65536 个地址 x 2 个字节/地址 = 131,072 个字节的内存?
-
内存大小取决于地址总线大小,即 16 位或 32 位或 64 位。所以 2^16 或 2^32 或 2^64 是支持的最大主内存。
-
@ps2goat:棘手的部分是,“字节”可以(并且在某种程度上,已经被)定义为系统中最小的可寻址内存单元。拥有 16 位字节是完全合乎逻辑的;人们认为字节必须始终是 8 位的只是几乎无处不在的 8 位字节。
-
@GauthamKantharaju:告诉英特尔。 (16 位)8086 的限制为 1MB(2^20 字节)
-
是的,8088 有一个 20 位地址总线。 iapx286 有一个 24 位地址总线(对于 16 MiB 的限制)。不过,一般原则是正确的。您通常可以(无需某种地址扩展或存储库切换方案)寻址尽可能多的机器字,因为您的地址总线可以枚举。
标签: memory cpu-registers computer-architecture