首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存层次结构-为什么寄存器是昂贵的?

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

Stack Overflow用户
提问于 2014-09-26 08:41:23
回答 1查看 4.8K关注 0票数 8

我了解到:

更快的访问时间>更昂贵的

较慢的访问时间>更便宜的

我还理解寄存器是层次结构的顶端,并且具有最快的访问时间。我很难研究的是它为什么这么贵?据我所知,寄存器实际上是直接建立在ALU中的电路。如果它们实际上是内置在CPU中的(特别是ALU ),那么到底是什么使得它最昂贵呢?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的寄存器在存储结果之前是无效的,并停止第二次添加的运行。太贵了。

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

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26055452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档