【问题标题】:how long is a memory address typically in bits内存地址通常以位为单位多长时间
【发布时间】:2014-02-07 10:32:39
【问题描述】:

我对导师谈论的许多术语感到困惑,例如wordbyte addressingmemory location

我的印象是,对于32-bit processor, 它可以寻址到2^32 bits,即4.29 X 10^9 bits (NOT BYTES)

我现在的想法是:

memory 类似于 arraybuckets 中的每一个 1 byte length

当我们说byte addressing(我猜这是最常见的)时,每个char 都是1 byte 并从第一个存储桶中检索(例如)。 对于int,将下一个4 bytes 放在little-endian ordering 中以计算Integer 值。

所以每个内存,我认为是8 bits1 byte,最多可以放弃2^8 locations,这远远少于cpu 可以解决的问题。

我这里有一些非常基本的误解,如果一些专家可以简单地解释一个潜在的 CS 专业学生可以永远一次。

我已经阅读了包括on word在内的各种页面,而这里的unit of address resolution8b 表示ARM,这让我更加困惑。

【问题讨论】:

  • 字节地址能够,而不是字节地址ing。内存位置是 8 位,但指针是 32 位(或 64 位或其他),而不是 8 位。

标签: memory byte word cpu-architecture processor


【解决方案1】:

处理器使用 32 位来存储地址。使用 32 位,您可以存储 2^32 个不同的数字,范围从 0 到 2^32 - 1。“字节寻址”意味着内存中的每个字节都是可单独寻址的,即有一个地址 x它指向那个特定的字节。由于您可以将 2^32 个不同的数字放入 32 位地址中,因此我们最多可以寻址 2^32 个字节,即 4 GB。

听起来关键的误解是“字节寻址”的含义。这仅意味着每个单独的字节都有自己的地址。地址本身仍然由多个字节组成(在这种情况下是 4 个字节,因为四个 8 位字节被放在一起并被解释为一个 32 位数字)。

我的印象是,对于 32 位处理器,它最多可以寻址 2^32 位,即 4.29 X 10^9 位(NOT BYTES)。

通常情况并非如此——位级寻址非常罕见。字节寻址更为常见。不过,您可以设计一个以这种方式工作的 CPU。如您所说,在这种情况下,您最多可以寻址 2^32 位 = 2^29 字节 (512 MiB)。

【讨论】:

  • 我读了 3 次,每次我都更了解它。 word size 如何在这里发挥作用?
  • @eagertoLearn “字长”是处理器操作的数字的大小。当它(比如说)将两个数字相加时,字长就是这些数字的大小。字长通常但不总是与地址大小相同。
  • 使用字节寻址有什么好处。既然技术发展了这么多,为什么寻址没有上升?
  • @eagertoLearn 优势在于能够处理更多的总内存。缺点是任何需要处理单个字节的代码都变得更加复杂,因为它必须将字节与每个可寻址字分开。如今,64 位机器允许(当前)高达 2^44 = 16 TB(当前 64 位实现不使用所有地址位)和(最终)高达 2^64 = 16 EB,没有摆脱字节寻址的动机。
  • @ViníciusPJ 非常正确。很好发现-我已经编辑了答案。谢谢!
【解决方案2】:

对于一位,您将拥有 0 或 1,对于两位,您将拥有 00、01、10、11。对于 8 位,您将拥有 2^8,即 256 个地址值。地址和数据是单独的术语。地址是位置,数据是该位置的内容。数据宽度(内容)是您可以在一个内存单元地址中存储多少位。(就像一间带卧室的公寓——每间公寓在建筑物中有两间卧室)和数据深度(地址)是如何您将拥有许多地址(在一栋建筑物中,您将拥有 #1 到 #1400 等多少个公寓)。 CPU 寄存器中的一位可以引用内存中的单个字节,就像公寓编号中的一个数字可以引用一个公寓一样。 SIMM 模块 RAM 具有 32 位数据宽度,而 DIMM 模块具有 64 位数据宽度。这意味着在 DIMM 中的一个内存地址中,它存储 64 位数据。两条线可以多路复用多少个地址(两位处理),您可以制作4个地址。 (如果是 DIMM 模块,这些地址中的每一个都可以保存 64 位)。 32 位处理方式,32 线,2^32 地址选项。即使,64 位处理具有 64 位寄存器和内部总线(线路)为 64 位,http://www.tech-faq.com/address-bus.html,地址总线最大为 44 位。表示 Intel Super Server CPU Itanium 2 可以实现最大 2^44 寻址。

【讨论】:

  • 尽管 DIMM 本身可能只能字寻址,但您需要一个内存控制器来与它通信。内存控制器/缓存提供字节寻址能力。 (但 DDR DRAM 是否没有启用/禁用线,允许在内存控制器中没有读取-修改-写入周期的字节存储,用于不可缓存的存储?)
猜你喜欢
  • 2011-04-18
  • 1970-01-01
  • 2011-03-09
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多