首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么接收到ALU的输出?

什么接收到ALU的输出?
EN

Software Engineering用户
提问于 2018-02-11 23:00:32
回答 1查看 2K关注 0票数 2

我知道算术逻辑单元(处理器的ALU )执行算术(和位)操作,结果被存储为ALU的输出--但是哪些组件、设备或软件实际上正在访问/使用ALU的输出?如果说ALU返回一个操作的结果是有效的,还是说这是错误的?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2018-02-11 23:28:11

这在很大程度上取决于处理器的设计;但是,大体上我要说,来自请求的操作的ALU输出是暂时可用的,并且取决于正在执行的指令:

  • 将ALU输出捕获到累加器,或
  • 至某一登记册,或
  • 甚至发送到数据总线(例如,用于内存写入操作),或
  • 作为另一个操作的输入发送回ALU,或者,
  • 完全被忽视了!

最后,并非所有指令都向ALU提出请求--考虑一个分支指令,也许,它有自己的计算新pc值的方法,而不涉及ALU。但是,即使在不使用时,ALU仍然存在,并且仍然有输出行,只是捕获/转发机制被配置为不处理输出。

是的,所以让我们来讨论一种执行ADD r3,r1,r2的机器指令,其中r1 & r2是来自寄存器文件的源,而r3是寄存器文件中的目标。

寄存器r3将(在已知读取ALU结果的一个适当周期)切换到捕获模式,并将ALU输出提供给寄存器文件数据行。到下一个时钟,ALU输出将被捕获到r3中。

如果指令是"LOAD r3,“然后将发生相同的捕获启用,但是数据总线值将提供给寄存器文件数据行而不是ALU。

稍后,如果执行STORE r3,...r3中的值将被放置到数据总线上,用于内存写入。

注册文件被“移植”。它可以有多个读和/或写端口。每个端口允许在同一周期内访问寄存器文件。因此,两个读端口和一个写端口意味着两个不同的寄存器可以在同一个周期中读取,一个可以在同一个周期中写入。

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

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

复制
相关文章

相似问题

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