多源操作数指令的调度方法、装置、处理器、设备及介质与流程

文档序号:36314340发布日期:2023-12-07 21:21阅读:36来源:国知局
多源操作数指令的调度方法与流程

本技术涉及计算机技术,尤其涉及一种多源操作数指令的调度方法、装置、处理器、设备及介质。


背景技术:

1、在计算机处理器指令集中,大多都包含了多源操作数指令。多源操作数指令,指该指令的操作数多于2个。操作数一般是存放在物理寄存器堆(physical register file,prf),在指令调度单元(instruction schedule unit,isu)调度发射指令时,通常有一个时钟周期用于去物理寄存器堆prf读取源操作数,在下一个时钟周期发射源操作数和微指令到对应的执行单元。

2、由于多源操作数指令要求指令调度单元isu同时准备好多个操作数,这就要求isu同时从prf读取多个源操作数,因此需要prf支持多口读写功能。但是,prf要支持多口读写功能,不管是依赖存储颗粒实现还是寄存器实现,都需要更大的资源开销(某些情况甚至多于1倍),时序上也会更差。此外,多源操作数指令的发射也需要增加执行单元和调度单元之间的数据总线通路,进一步增加了物理开销。


技术实现思路

1、本技术提供一种多源操作数指令的调度方法、装置、处理器、设备及介质,用以解决现有技术中存在寄存器堆的访问冲突或者数据总线的拥塞,物理资源开销大,增加指令调度的时间的问题,以更稳定地在处理器中传输多源操作数指令和多个源操作数,节省数据总线等资源开销,提高多源操作数指令的执行速度和并行度的技术效果。

2、一方面,本技术提供一种多源操作数指令的调度方法,所述方法包括:

3、在向执行单元发送指令的第一个时钟周期,指令调度单元分别从寄存器堆中读取多个源操作数中的第一源操作数和第二源操作数;

4、在向执行单元发送指令的第二个时钟周期,所述指令调度单元发送多源操作数指令、所述第一源操作数、所述第二源操作数至执行单元,并同步从所述寄存器堆中读取多个源操作数中的第三源操作数;

5、在向执行单元发送指令的第三个时钟周期,指令调度单元通过复用所述第一源操作数的数据总线,发送所述第三源操作数至所述执行单元,以使得所述执行单元对所述多个源操作数执行与所述多源操作数指令对应的运算操作,得到指令操作结果。

6、一种可选的实施方式中,所述指令调度单元分别从寄存器堆中读取多个源操作数中的第一源操作数和第二源操作数,包括:

7、从所述寄存器堆中多个源操作数寄存器的源操作数信息区,获取多个源操作数信息;

8、根据所述多个源操作数信息,从第一源操作数寄存器中的操作数存储区读取所述第一源操作数,以及从第二源操作数寄存器中的操作数存储区读取所述第二源操作数;

9、从所述寄存器堆中读取多个源操作数中的第三源操作数,包括:

10、根据所述多个源操作数信息,从第三源操作数寄存器中的操作数存储区读取所述第三源操作数。

11、一种可选的实施方式中,所述多源操作数指令中包含:指令类型标志、操作码,所述指令类型标志用于标识所述多源操作数指令的类型,所述操作码用于标识所述多源操作数指令对应的运算操作的类型;

12、所述执行单元是基于所述指令类型标志和操作码,对所述多个源操作数执行与所述多源操作数指令对应的运算操作,得到所述指令操作结果。

13、一种可选的实施方式中,所述指令调度单元和所述执行单元均包括在通用微处理器的内核中,以使得所述指令调度单元在所述通用微处理器的内核中调度所述多源操作数指令,所述执行单元在所述通用微处理器的内核中对所述多个源操作数执行与所述多源操作数指令对应的运算操作。

14、一种可选的实施方式中,所述多源操作数指令对应的运算操作包括如下至少之一:融合乘加运算、三操作数加法运算。

15、一种可选的实施方式中,所述方法还包括:

16、在向所述执行单元发送指令的第二个时钟周期,所述指令调度单元还从所述寄存器堆中读取多个源操作数中的第四源操作数;

17、在向所述执行单元发送指令的第四个时钟周期,所述指令调度单元通过复用所述第二源操作数的数据总线,发送所述第四源操作数至所述执行单元,以使得所述执行单元对所述多个源操作数执行与所述多源操作数指令对应的运算操作,得到所述指令操作结果。

18、另一方面,本技术提供一种处理器,包括:

19、指令调度单元,用于在向执行单元发送指令的第一个时钟周期,分别从寄存器堆中读取多个源操作数中的第一源操作数和第二源操作数;在向执行单元发送指令的第二个时钟周期,发送多源操作数指令、所述第一源操作数、所述第二源操作数至执行单元,并同步从所述寄存器堆中读取多个源操作数中的第三源操作数;在向执行单元发送指令的第三个时钟周期,通过复用所述第一源操作数的数据总线,发送所述第三源操作数至所述执行单元;

20、所述执行单元,用于对所述多个源操作数执行与所述多源操作数指令对应的运算操作,得到指令操作结果。

21、一种可选的实施方式中,所述指令调度单元,还用于从所述寄存器堆中多个源操作数寄存器的源操作数信息区,获取多个源操作数信息;并根据所述多个源操作数信息,从第一源操作数寄存器中的操作数存储区读取所述第一源操作数,以及从第二源操作数寄存器中的操作数存储区读取所述第二源操作数;以及根据所述多个源操作数信息,从第三源操作数寄存器中的操作数存储区读取所述第三源操作数。

22、一种可选的实施方式中,所述多源操作数指令中包含:指令类型标志、操作码,所述指令类型标志用于标识所述多源操作数指令的类型,所述操作码用于标识所述多源操作数指令对应的运算操作的类型;

23、所述执行单元,还用于基于所述指令类型标志和操作码,对所述多个源操作数执行与所述多源操作数指令对应的运算操作,得到所述指令操作结果。

24、另一方面,本技术提供一种多源操作数指令的调度装置,所述装置包括:

25、读取模块,用于在向执行单元发送指令的第一个时钟周期,指令调度单元分别从寄存器堆中读取多个源操作数中的第一源操作数和第二源操作数;

26、第一发送模块,用于在向执行单元发送指令的第二个时钟周期,所述指令调度单元发送多源操作数指令、所述第一源操作数、所述第二源操作数至执行单元,并同步从所述寄存器堆中读取多个源操作数中的第三源操作数;

27、第二发送模块,用于在向执行单元发送指令的第三个时钟周期,指令调度单元通过复用所述第一源操作数的数据总线,发送所述第三源操作数至所述执行单元,以使得所述执行单元对所述多个源操作数执行与所述多源操作数指令对应的运算操作,得到指令操作结果。

28、另一方面,本技术提供一种电子设备,包括:处理器,以及与上述处理器连接的存储器;上述存储器存储计算机执行指令;上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。

29、另一方面,本技术提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。

30、另一方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现任一项上述的方法。

31、本技术提供的多源操作数指令的调度方法、装置、处理器、设备及介质,通过在向执行单元发送指令的第一个时钟周期,指令调度单元分别从寄存器堆中读取多个源操作数中的第一源操作数和第二源操作数;在向执行单元发送指令的第二个时钟周期,指令调度单元发送多源操作数指令、第一源操作数、第二源操作数至执行单元,并同步从寄存器堆中读取多个源操作数中的第三源操作数;在向执行单元发送指令的第三个时钟周期,指令调度单元通过复用第一源操作数的数据总线,发送第三源操作数至执行单元,以使得执行单元对多个源操作数执行与多源操作数指令对应的运算操作,得到指令操作结果。

32、在不增加额外资源开销的情况下,对于多源操作数指令,可以在第一时钟周期读取第一和第二源操作数,在第二个时钟周期开始发送指令、第一和第二源操作数,并同步读取第三个源操作数,再在第三个时钟周期将该第三源操作数发送给执行单元。同时第三源操作数可以复用第一源操作数的数据总线,进一步节省了物理资源开销。由此,可以解决现有技术中存在寄存器堆的访问冲突或者数据总线的拥塞,物理资源开销大,增加指令调度的时间的问题,以更稳定地在处理器中传输多源操作数指令和多个源操作数,节省数据总线等资源开销,提高多源操作数指令的执行速度和并行度的技术效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1