【发布时间】:2014-12-09 22:04:18
【问题描述】:
我正在尝试学习内存寻址(这是针对 Uni 的),但我不确定当我需要计算地址位数时字可寻址内存会产生什么影响。
我会先解释(我认为)我理解的内容。
要计算我使用的地址位数:log2(n) 其中 n 是内存的位数。即 1gb (1024mb * 1024 * 1024)= 1073741824 位,因此 log2(1073741824 ) = 30 含义1gb 内存需要 30 个地址位。我认为我理解正确。
我不确定的部分是字节可寻址存储器与字可寻址存储器以及它如何影响地址位数。
问题: 上面的示例是否仅适用于字节可寻址,例如,如果存储器是可字寻址的并且使用 16 位或 32 位字,那么所需的地址位数会更少(在这种情况下为 1/2 或 1/4 16 位和 32 位字)??
我的想法是,如果一个 cel 在字节可寻址机器中保存 8 位,那么字可寻址内存中的 cel 将保存 16 位或 32 位,因此所需的地址位应该更少。
进一步说明 - 我知道现在大多数内存都是字节可寻址的,并且计算机中的字长特定于处理器/总线,但我正在处理的问题没有提及,只是询问字节/字可寻址的效果会的。
我已经搜索了有关此问题的其他问题,但没有找到可以回答的问题(或我理解回答的问题)。例如 https://stackoverflow.com/questions/19528750/byte-word-addressable 实际上似乎在问类似的事情,但 OP 似乎通过指定内存为 4M x 16(而不是 4mb)错误地发布了问题x 16bit) 导致人们将内存计算为64mb。
【问题讨论】:
标签: memory computer-architecture