寄存器大小如何影响处理器性能?

时间:2015-04-08 20:21:48

标签: 64-bit ram cpu-registers processor addressing

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

引用:

  

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

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

此外,术语解决。因此,虽然64位处理器可以"地址" RAM中有2 ^ 64个不同的位置,32位处理器只能处理2 ^ 32。

问题2:
解决意味着什么?为什么解决更多地点的能力会更有帮助?

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

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

2 个答案:

答案 0 :(得分:1)

正如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拥有所有内存。

可寻址位置与内存大小

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


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

答案 1 :(得分:0)

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

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

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

CPU和RAM之间的总线宽度会显着影响性能。此宽度与CPU寄存器大小和RAM大小无关,可以节省吞吐量。

寻址范围和寄存器大小趋势相关联。寄存器更宽的单元通常具有更宽的地址范围。没有规则强制这两个是相同的。

建议审核CPU architecturesmicro controller以及理论Turing Machine