0

我今天一直在互联网上飞来飞去,试图围绕这个话题。所以这就是我到目前为止所理解的。那么寄存器大小越大,处理器可以处理的指令就越大?

引用:

寄存器的大小(有时称为字长)表示计算机在任何给定时间可以处理的数据量。

问题 1:
在处理 RAM 方面如何解释?在这种情况下,为什么 32 位处理器在处理信息方面不那么熟练或更慢?

此外,术语寻址。因此,虽然 64 位处理器可以“寻址” RAM 中的 2^64 个不同位置,但 32 位处理器只能处理 2^32。

问题2:
寻址是什么意思?为什么地址更多位置的能力会更有帮助?

问题 3:
这 2 点如何,1)可寻址位置的数量和 2)指令大小,相关?

我希望我的问题不会令人困惑。如果在解释中给出对 RAM 的引用和示例以及 32 位和 64 位之间的比较,那就太好了。

4

2 回答 2

2

正如chux 已经说过的,计算机系统中可能有很多不同的总线宽度。也就是说,我假设您在这里谈论的是通常的 PC 架构。现在,针对您的问题:

32 位和 64 位系统之间的性能差异

  • 硬件通常能够处理比 32 位系统更大的数字,因此它可以在一次操作中将两个 64 位数字相加,而 32 位系统至少需要两个(加上一些操作来组合结果)。这意味着在 64 位系统上执行大量大量操作的软件可能会更快,但不需要大量操作的软件不会更快
  • 64 位处理器通常比 32 位处理器从内存中获取更大的数据块。如果数据总线是 64 位而不是 32 位,它将获取比 32 位系统多一倍的字节数
  • 这实际上是 64 位系统中的一个缺点:由于您有更多的可寻址内存,因此您还需要更多的内存用于指针,因此 64 位应用程序也将比为 32 位系统编译的相同应用程序使用更多的内存。

内存寻址

内存地址是唯一标识内存中存储数据的位置的数字。使用 32 位数字,您可以寻址 2^32 个位置,大约是 4 GB。这就是为什么 32 位 PC 不能使用超过 4 GB 的内存(它们实际上可以,但有一些限制。请参阅PAE)。使用 64 位数字意味着计算机现在可以寻址 2^64 个位置,这意味着原则上它可以使用多达 16 exbibytes 的内存。实际上,其他限制会阻止 PC 拥有所有内存。

可寻址位置与内存大小

由于很多指令应该引用一个内存位置,这意味着它们中的一些必须更大,所以它们有内存地址的空间。更大的指令通常意味着更大的软件代码,但在大多数情况下这不是问题,因为差异并没有那么大,而且大多数软件大小通常由数据组成,而不是由代码组成。


免责声明:我所说的并非对每个软件/架构都有效。有很多细节对性能和内存使用的影响可能比我在这里写的要大。

于 2015-04-09T11:07:58.463 回答
1

处理器寄存器的位宽、寻址范围和处理器与 RAM 之间的处理器内部/外部总线宽度是独立的。

32 位处理器通常可以处理 32 位地址,但它可能只能处理 24 或 64。许多可能性已经发生。

寻址将是可以生成的唯一地址的最大范围从 0 到 N-1。如果真的有N个内存位置是另一回事。

CPU 和 RAM 之间的总线宽度会极大地影响性能。该宽度与 CPU reg 大小和 RAM 大小无关,会限制吞吐量。

寻址范围和电阻大小往往相关。具有较宽寄存器的单元通常具有较宽的地址范围。没有规则强制这两个相同。

建议复习CPU 架构微控制器和理论图灵机

于 2015-04-08T20:36:32.260 回答