【问题标题】:A memory with 32 address bits and 16 data bits has the capacity of?具有 32 个地址位和 16 个数据位的存储器的容量为?
【发布时间】:2018-10-22 23:39:03
【问题描述】:

a) 2G b) 16G c) 32 克 d) 64G

所以我发现我的答案是 8G。但根据老师的说法是 d) 64 G. 有人能解释一下吗?

我以为是 2^32 * 2,因为每个地址有 2 个字节,然后除以 2^30,因为 2^30 字节是 1 GB?

【问题讨论】:

  • 对不起 GiB 和 GB 有什么区别?我一直以为 10^9 只是 2^30 的近似值,而 GiB 和 GB 都是千兆字节
  • 未指定:我们不知道可寻址的存储单元是什么。 “16 位”可能只是意味着有一个 16 位数据总线。如果 32 位字是可寻址的,则加载和存储一个字需要两次传输。
  • “谁能解释一下”,你的老师为什么不解释?骗学生,不解释,一定是很不好的;吹毛求疵,你甚至可以说他所有的答案都是错误的,因为他没有给出任何单位。 64G ... 64G 什么?字?克?位?仪表?字节?

标签: assembly memory cpu-architecture


【解决方案1】:

64 千兆 (Gib) = 8 千兆字节 (GiB)。

问题是没有一个答案有单位,只有前缀,所以它们都适合合理选择单位。

显然,由于总线宽度以位为单位,他们想要以位为单位的内存容量。这是有道理的,但我仍然会说这个问题是模棱两可的问题。

这对我来说也是模棱两可的,因为他们没有告诉你每个字节是否有自己的地址,或者它是否只是字可寻址的。 (我们只知道正确答案是 64 Gib,它是可字寻址的)。除了一些 DSP 之外,现代 CPU 几乎都使用字节可寻址内存,即使(如早期的 DEC Alpha)它们不支持比字更窄的负载。正如@Kaz 指出的那样,它可能是具有 32 位字的字可寻址机器,其中一个字需要 2 个总线周期来传输,因此即使找到以位为单位的容量,问题也没有明确说明。


如果您要了解单位的技术,1 GB 是 10^9 字节,而 1 GiB 是 2^30 字节的 SI 单位。 https://en.wikipedia.org/wiki/Gibibyte.

(尽管如此,许多人和许多软件都不会使用 SI 单位,甚至在 2 的幂的情况下也使用 GB,它们的意思是 2^30。SI 解决歧义的尝试并没有完全流行起来, 也许是因为 SI 的 2 次方命名大声说出来是荒谬的。我从来没有听过任何人说或什至不讽刺地输入“gibibyte”而至少没有嘲笑这个名字,只使用缩写完全不-模棱两可,它们的意思是 2 单位的幂。)

请注意,硬盘供应商绝对是指硬盘大小为 10 GB 或 TB 的功率,因此他们可以在标签上标出更大的数字,但 4GB 的 DRAM 绝对是 4 GiB,因为 RAM 自然是功率-基于of-2。


从技术上讲,您不知道机器上一个字节的大小,所以实际上您只能说 8 giga-octets(或 64 Gib)。具有 9 位字节和 8 位以外的其他大小的机器曾经存在,但如果有人声称他们的机器有 16 位字节而不是像其他人那样称其为字可寻址机器,那么 IDK 就会存在。所以这并不是真正的模棱两可,除非你故意变得古怪。

【讨论】:

  • 对不起 GiB 和 GB 有什么区别?我一直以为 10^9 只是 2^30 的近似值,而 GiB 和 GB 都是千兆字节
  • @AznBoyStride:有时人们使用 GB 表示 2^30,但 SI 定义了 Gi / Mi / ki 前缀来解决歧义。用链接更新了我的答案。您也可以在gib vs gb 上搜索更多信息。
  • 您可能要指出,整个 GiB/GB 2^30 vs 10^9 本质上是 vim-vs-emacs 或 pepsi-vs-coke 风格的圣战,而不是真正的“事实”正如您所指出的(我在“让我们将 XiB 用于 2^X 方面,顺便说一句)。您的“SI 定义 Gi / Mi / ki 前缀来解决歧义”有点欺骗性:)。我读了因为“有这种歧义,但后来 SI 解决了它”,但事实是 SI 单位总是这样,并没有对此事做出特别决定,人们只是使用现有的 SI 名​​称作为GiB 风格的论据之一。
  • 在课堂上,你应该遵守老师使用的任何惯例,尤其是在考试中,这样的细节不容争辩。在多项选择题测试中,这不太可能成为问题,因为使用错误的风格可能不会改变你的答案足以更接近另一个选项(并且你没有得到确切答案的事实应该暗示你'至少在您班级的约定方面“做错了”)。
  • 老师故意漏掉了“8G”,好像是一道题。但这是一个糟糕的问题,因为(希望)在现实世界中没有人使用单位“G”。
【解决方案2】:

这是一个非常糟糕的问题,如果没有别的。

“字”的大小或数据位数无关紧要。地址总线是 - 从字面上看 - 32 根线,每根线可以是 1 或 0。这意味着地址的数量是 2^32,或大约 40 亿 |(我们称之为 4G)

16 个数据位是每个地址两个字节,因此可以说“内存的总大小”是 8 GB。这与 64 Gb 相同,因为每字节 8 个。

技巧问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多