【问题标题】:data bus and memory unit addressing confusion [duplicate]数据总线和内存单元寻址混乱[重复]
【发布时间】: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


【解决方案1】:

确实,如果您没有 32 位数据,这告诉您内存可以保存 2^32 个内存地址。但是,对于每个内存,您拥有的是一个字节或 8 位,那么您将拥有大约 4 GiB = 4*2^30 字节 = 2^32 位。

【讨论】:

  • 4GiB 是 2^32 字节 而不是 2^32 位。
猜你喜欢
  • 1970-01-01
  • 2014-01-14
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
相关资源
最近更新 更多