【发布时间】:2021-05-11 05:30:45
【问题描述】:
我有一个关于 (RAM) 内存单元的问题:
对于 x32 的 cpu 架构, 我们将有 32 位大小的 cpu 寄存器,以及到 32 线 ram 的数据总线和 32 线地址总线。 所以最大内存地址单元是2^32 = 4,294,967,296
换句话说,我们有 4,294,967,296 个内存单元,对于每个内存单元,数据总线 (32) 的大小应该是可写的,因此对于每个内存单元,它的大小应该是 32 位来处理数据总线
如果我的结论是正确的,我怀疑,(Ram) 总内存大小应该是 = 没有内存单元 * 每个大小 = 4,294,967,296 * 32 = 137,438,953,472 位。这不是真的
经过研究,我发现,rams 单元内存被标准化为每个内存单元 8 位, 那么如果是这样的话,单个内存单元(8bit)怎么能存储(32bit数据总线)?
【问题讨论】:
-
是的,
# memory units * size是对的,所以答案取决于您的机器是字可寻址还是字节可寻址(每个 32 位字相隔 4 个地址,由 4 个单独的字节组成字节加载指令可以单独访问)。此外,作为 32 位架构并不意味着数据或地址总线宽度,仅(通常)是寄存器宽度。例如P5 Pentium 有一个 64 位内存总线,而现实世界的地址总线通常不是 32 线。 (例如,DDR SDRAM 行/列地址在大约一半的线路上多路复用。)它只有 逻辑上 N 位宽。
标签: memory cpu-architecture memory-address address-bus