我了解到:
更快的访问时间>更昂贵的
较慢的访问时间>更便宜的
我还理解寄存器是层次结构的顶端,并且具有最快的访问时间。我很难研究的是它为什么这么贵?据我所知,寄存器实际上是直接建立在ALU中的电路。如果它们实际上是内置在CPU中的(特别是ALU ),那么到底是什么使得它最昂贵呢?
是大小吗(当然,寄存器是最小的)?
发布于 2014-09-26 09:04:21
寄存器非常非常昂贵,因为它们必须非常、非常快,并且需要从许多地方同时访问。
例如,如果有语句a=a+ x;b=b+ x;c=c+ x;则有三个指令,它们都希望读取相同的寄存器。所以寄存器不仅仅是记忆。还有所有的数据路径都需要在处理器中,所以来自保持x的寄存器中的相同数据可以同时发送到三个指令。这些数据可以传播到很多地方。如果您编写了double a= x;并且x是一个整数,那么必须有一个数据路径将寄存器x发送到浮点单元。或者是向量单位。诸若此类。
然后,您不仅需要存储数据,而且还必须确保数据是可用的。如果您编写了x=y+ z;a=a+ x;当第一条指令运行时,必须跟踪保存x的寄存器在存储结果之前是无效的,并停止第二次添加的运行。太贵了。
因此,建立一个寄存器不仅仅是增加一点内存,还需要付费。寄存器对于处理器的速度是非常重要的,所以使用最昂贵和最快的技术来构建它们。
https://stackoverflow.com/questions/26055452
复制相似问题