内存层次结构 - 为什么寄存器昂贵?

时间:2014-09-26 08:41:24

标签: memory cpu hierarchy cpu-registers alu

我理解:

更快访问时间> 更多昂贵

较慢访问时间> 昂贵

我也理解寄存器是层次结构的顶层,并且具有最快的访问时间。我正在努力研究的是为什么这么贵?据我所知,寄存器实际上是直接构建在ALU中的电路。如果他们真的内置在CPU(特别是ALU)中,那实际上是什么使它成为最昂贵的?

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

1 个答案:

答案 0 :(得分:5)

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

例如,如果你有陈述a = a + x; b = b + x; c = c + x;你有三条指令都想读同一个寄存器。所以寄存器不仅仅是内存。还需要处理器中的所有数据路径,因此来自寄存器x的相同数据可以同时发送到三个指令。数据可以发送到很多很多地方。如果你写双a = x;并且x是一个整数,那么必须有一个数据路径将寄存器x发送到浮点单元。或者矢量单位。等等。

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

因此,构建寄存器不仅仅是添加一点内存,还需要付出代价。寄存器对处理器的速度至关重要,使用最昂贵,最快速的技术来构建它们。