8

我明白那个:

更快的访问时间 >昂贵

访问时间较慢>便宜

我也知道寄存器是层次结构的顶部,并且具有最快的访问时间。我很难研究的是为什么它这么贵?据我所知,寄存器实际上是直接内置在 ALU 中的电路。如果它们确实内置在 CPU 中(尤其是 ALU),那么实际上是什么使它最昂贵?

是大小吗(当然,寄存器是最小的)?

4

1 回答 1

14

寄存器非常非常昂贵,因为它们必须非常非常快,并且需要同时从许多地方访问它们。

例如,如果您有语句 a = a + x; b = b + x; c = c + x; 你有三个指令都想读取同一个寄存器。所以寄存器不仅仅是内存。处理器中还需要所有数据路径,因此可以将保存 x 的寄存器中的相同数据同时发送到三个指令。数据可以去很多很多地方。如果你写 double a = x; 而x是一个整数,那么必须有一个数据路径将寄存器x发送到浮点单元。或向量单元。等等。

然后你会遇到一个问题,不仅你需要存储数据,你还必须确保它是可用的。如果你写 x = y + z; a = a + x; 当第一条指令运行时,有人必须跟踪保存 x 的寄存器现在是无效的,直到存储加法的结果,并停止运行第二条加法。那是超级贵的。

因此,构建寄存器不仅仅是增加一点内存,而且需要付费。寄存器对于处理器的速度是如此重要,以至于使用最昂贵和最快的技术来构建它们。

于 2014-09-26T09:04:21.923 回答