首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALU与寄存器关系

ALU与寄存器关系
EN

Software Engineering用户
提问于 2021-01-27 20:10:19
回答 3查看 233关注 0票数 -3

ALU是否有自己的内存或寄存器来存储输入操作数等,还是只使用CPU寄存器(不只是专门用于ALU任务)?

EN

回答 3

Software Engineering用户

发布于 2021-01-27 22:24:00

ALU是CPU的一部分,所以你的问题措辞有点混乱。ALU寄存器定义为CPU寄存器。尽管如此,有些寄存器是命名的,对程序员来说是可见的,还有一些寄存器没有真正的名称,只在内部使用,尤其是在流水线处理器中。他们的价值观将类似于“EAX 3时钟周期以前的情况”。任何时候,一个价值都需要被记住一段时间。

票数 1
EN

Software Engineering用户

发布于 2021-01-28 01:47:55

在硬件方面,有两种布线方式:

  • 组合-组合电路从电流输入计算电流输出。计算从开始到完成在有向无环图的门。
  • 时序电路计算电流输入和过去输入的电流输出。顺序电路从一个周期到另一个周期记住事物。它们通过在电路中有反馈回路来实现这一点。

CPU寄存器是有效的时序电路,它们从一个周期到另一个周期记住数据值,以便根据正在执行的程序的指令对这些数据值进行操作,也就是说,尽管执行相同的指令(循环的主体),程序循环还是对不同的数据进行操作,因为寄存器是更新的。

一般说来,ALU是一个组合电路,它只根据输入提供计算结果,而不存储以前的操作。

以上是对现代处理器的严重过度简化。

多周期处理器将单个指令的执行扩展到多个周期,流水线处理器也是如此;两者都需要额外的状态来管理,所以使用附加的内部寄存器。

寄存器重命名和处理器的许多其他特性(分支预测、缓存等)还涉及到我们将考虑顺序电路的状态,即涉及寄存器或其他存储。

票数 1
EN

Software Engineering用户

发布于 2021-07-26 04:34:20

现代处理器使用两种类型的寄存器。

  • 体系结构寄存器(向程序员公开)
  • 硬件寄存器(在旁使用的)

X86/AArch64只有几个体系结构寄存器,这是对性能的巨大限制,因为只有有限数量的寄存器,指令需要等待寄存器的出现。

这就是为什么处理器使用Tomasulo算法来重命名寄存器,在运行时将架构寄存器分配给物理寄存器。例如,arm AArch64只有31个结构寄存器,但M1有600多个物理寄存器。结合一个用于无序执行的巨大窗口、超级标量资源和流水线,以相对较低的频率,与简单的顺序执行相比,仍然可以获得巨大的性能改进。

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

https://softwareengineering.stackexchange.com/questions/421555

复制
相关文章

相似问题

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