【问题标题】:Maximum memory size a system can support系统可以支持的最大内存大小
【发布时间】:2013-05-24 02:46:14
【问题描述】:

假设我有一台计算机,其地址寄存器大小为 16 位(例如,MAR)。这台计算机中最小的可寻址单元是一个字,每个字的大小为 2 个字节。这个系统可以支持的最大内存大小(以字节为单位)是多少?

我以为是 2^16 = 65536 字节,但是关于最小可寻址单元的部分暗示这不是解决它的方法。

提前致谢

【问题讨论】:

  • 我在这方面的经验不是很丰富,但要建立在你所说的基础之上。 2^16 将是寄存器可以保存的唯一地址的数量,但是如果保存的每块内存是 2 个字节(16 位),这不是 2^16 x 2 个字节吗? 65536 个地址 x 2 个字节/地址 = 131,072 个字节的内存?
  • 内存大小取决于地址总线大小,即 16 位或 32 位或 64 位。所以 2^16 或 2^32 或 2^64 是支持的最大主内存。
  • @ps2goat:棘手的部分是,“字节”可以(并且在某种程度上,已经被)定义为系统中最小的可寻址内存单元。拥有 16 位字节是完全合乎逻辑的;人们认为字节必须始终是 8 位的只是几乎无处不在的 8 位字节。
  • @GauthamKantharaju:告诉英特尔。 (16 位)8086 的限制为 1MB(2^20 字节)
  • 是的,8088 有一个 20 位地址总线。 iapx286 有一个 24 位地址总线(对于 16 MiB 的限制)。不过,一般原则是正确的。您通常可以(无需某种地址扩展或存储库切换方案)寻址尽可能多的机器字,因为您的地址总线可以枚举。

标签: memory cpu-registers computer-architecture


【解决方案1】:

与系统可以支持的最大内存量以及地址寄存器的大小没有直接关系。

30 年前的 16 位计算机可以很好地支持超过 64 KB。另一方面,现代 64 位处理器通常只有 52 位(或更少)的通道,但即便如此,典型的计算机也几乎无法支持 2^52 字节的内存。

今天的典型 64 位计算机可以在理论上解决 16 exibytes,但目前的 CPU 仅支持 4 PB 的物理内存和 256 TB 的每个进程虚拟内存。如果您购买额外昂贵的 DIMM,典型的台式机主板最大支持 128GiB。使用经济实惠的 DIMMS,您的内存限制只有大约一半(只有这么多插槽)。

操作系统通常只允许数百 GB 的主内存大小(例如,Windows 8 企业/专业版为 512 GiB,否则为 128GiB,或 Windows 7 Home Premium 低至 16GiB)

【讨论】:

    【解决方案2】:

    通常最小的可寻址大小是一个字节,正如您计算的那样,如果它是一个字节,它将是 2^16*1 = 65536 个字节。但是,因为在这个系统上每个地址有两个字节,实际上是 2^16*2 = 131072 字节。

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 2014-03-22
      • 1970-01-01
      • 2010-11-14
      • 2016-01-07
      • 2011-03-18
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多