指令缓冲方法、装置、处理器、电子设备及可读存储介质与流程

文档序号:34023950发布日期:2023-05-05 06:13阅读:35来源:国知局
指令缓冲方法、装置、处理器、电子设备及可读存储介质与流程

本发明涉及计算机,尤其涉及一种指令缓冲方法、装置、处理器、电子设备及可读存储介质。


背景技术:

1、解耦合前端是一种较为通行的前端设计架构,其将分支预测与取指分离,有效降低了前端的时序设计压力。在软件中存在大量循环体结构,处理器通常使用一条跳转的分支指令指示控制流到循环体起始位置。面对这种结构,循环体每执行一次,都需要分支预测单元对其做出一次预测,并等待取指单元从指令缓存中取出指令数据,这样就引入了不必要的重复功耗。


技术实现思路

1、本发明实施例提供一种指令缓冲方法、装置、处理器、电子设备及可读存储介质,可以降低处理器在处理循环体结构过程中的功耗。

2、为了解决上述问题,本发明实施例公开了一种指令缓冲方法,应用于处理器,所述处理器包括循环缓存和指令队列;所述方法包括:

3、在待处理的第一预测块属于循环体结构的情况下,从所述循环缓存中获取所述第一预测块对应的目标指令数据;所述第一预测块用于指示取指请求的取指范围和分支指令信息;所述循环缓存中存储有历史取指请求对应的指令数据;

4、将所述目标指令数据存入所述指令队列;所述指令队列用于为处理器后端提供待执行指令。

5、可选地,所述方法还包括:

6、检测所述第一预测块是否满足预设缓冲条件;

7、若所述第一预测块满足所述预设缓冲条件,则确定所述第一预测块属于循环体结构;

8、其中,所述预设缓冲条件包括以下至少一项:

9、所述第一预测块对应的取指范围与第二预测块对应的取指范围相同;所述第二预测块为所述处理器在所述第一预测块之前执行完毕的预测块;

10、所述处理器在处理所述第一预测块之前,连续执行了至少两个取指范围相同的预测块对应的指令序列。

11、可选地,在待处理的第一预测块属于循环体结构的情况下,从所述循环缓存中获取所述第一预测块对应的目标指令数据之前,所述方法还包括:

12、若所述第一预测块满足所述预设缓冲条件,则从所述指令队列中获取与所述第一预测块相匹配的目标指令数据,并将所述目标指令数据存储至所述循环缓存中。

13、可选地,所述循环缓存包括第一缓存模块和第二缓存模块;所述在待处理的第一预测块属于循环体结构的情况下,从所述循环缓存中获取所述第一预测块对应的目标指令数据之前,所述方法还包括:

14、针对每一个预测块,从指令队列中获取所述预测块对应的指令数据,并将所述指令数据存储至所述第一缓存模块;

15、所述在待处理的第一预测块属于循环体结构的情况下,从所述循环缓存中获取所述第一预测块对应的目标指令数据,包括:

16、在待处理的第一预测块属于循环体结构的情况下,若所述第二缓存模块中不存在与所述第一预测块相匹配的目标指令数据,则从所述第一缓存模块中获取所述第一预测块对应的目标指令数据,并将所述目标指令数据存储至所述第二缓存模块;所述第二缓存模块用于在不满足循环退出条件的情况下,为所述指令队列提供目标指令数据;

17、若所述第二缓存模块中存在与所述第一预测块相匹配的目标指令数据,则从所述第二缓存模块中获取所述目标指令数据。

18、可选地,所述方法还包括:

19、在不满足循环退出条件的情况下,基于所述第一预测块生成第三预测块;所述第三预测块用于指示所述目标指令数据。

20、可选地,若所述第一预测块对应的取指范围小于第一存储容量,则所述第三预测块指示的指令数据包含n份所述目标指令数据;所述第一存储容量与n的乘积小于或等于所述循环缓存的最大存储容量。

21、可选地,所述处理器还包括分支预测单元;所述方法还包括:

22、对所述分支预测单元进行重定向处理,以使所述分支预测单元的预测地址指向所述第一预测块对应的循环退出位置;

23、将所述分支预测单元的状态调整为关闭状态,直至满足所述循环体结构的退出条件时将所述分支预测单元的状态恢复为开启状态。

24、另一方面,本发明实施例公开了一种指令缓冲装置,应用于处理器,所述处理器包括循环缓存和指令队列;所述装置包括:

25、第一模块,用于在待处理的第一预测块属于循环体结构的情况下,从所述循环缓存中获取所述第一预测块对应的目标指令数据;所述第一预测块用于指示取指请求的取指范围和分支指令信息;所述循环缓存中存储有历史取指请求对应的指令数据;

26、第二模块,用于将所述目标指令数据存入所述指令队列;所述指令队列用于为处理器后端提供待执行指令。

27、又一方面,本发明实施例还公开了一种处理器,所述处理器包括取指目标队列、循环缓存和指令队列;

28、所述取指目标队列,用于在待处理的第一预测块属于循环体结构的情况下,向所述循环缓存发送取指请求,所述取指请求中携带所述第一预测块;所述第一预测块用于指示所述取指请求的范围和分支指令信息;

29、所述循环缓存,用于根据所述取指请求确定目标指令数据,并将所述目标指令数据存入所述指令队列;所述循环缓存中存储有历史取指请求对应的指令数据;所述指令队列用于为处理器后端提供待执行指令。

30、可选地,所述取指目标队列还用于:

31、检测所述第一预测块是否满足预设缓冲条件;

32、若所述第一预测块满足所述预设缓冲条件,则确定所述第一预测块属于循环体结构;

33、其中,所述预设缓冲条件包括以下至少一项:

34、所述第一预测块对应的取指范围与第二预测块对应的取指范围相同;所述第二预测块为所述处理器在所述第一预测块之前执行完毕的预测块;

35、所述处理器在处理所述第一预测块之前,按照连续执行了至少两个取指范围相同的预测块对应的指令序列。

36、可选地,所述处理器还包括指令缓存;所述循环缓存还用于:

37、若所述第一预测块满足所述预设缓冲条件,则从所述指令队列中获取与所述第一预测块相匹配的目标指令数据并存储。

38、可选地,所述处理器还包括指令缓存;所述循环缓存包括第一缓存模块和第二缓存模块;

39、所述第一缓存模块,用于针对每一个预测块,从所述指令队列中获取所述预测块对应的指令数据并存储;

40、所述第二缓存模块,用于在待处理的第一预测块属于循环体结构的情况下,若所述第二缓存模块中不存在与所述第一预测块相匹配的目标指令数据,则从所述第一缓存模块中获取所述第一预测块对应的目标指令数据并存储,以便在不满足循环退出条件的情况下,为所述指令队列提供目标指令数据;若所述第二缓存模块中存在与所述第一预测块相匹配的目标指令数据,则将所述目标指令数据存入所述指令队列。

41、可选地,所述处理器还包括旁路模块,所述旁路模块用于:

42、在不满足循环退出条件的情况下,基于所述第一预测块生成第三预测块;所述第三预测块用于指示所述目标指令数据。

43、可选地,若所述第一预测块对应的取指范围小于第一存储容量,则所述第三预测块指示的指令数据包含n份所述目标指令数据;所述第一存储容量与n的乘积小于或等于所述循环缓存的最大存储容量。

44、可选地,所述处理器还包括分支预测单元;所述循环缓存还用于:

45、对所述分支预测单元进行重定向处理,以使所述分支预测单元的预测地址指向所述第一预测块对应的循环体的退出位置;

46、将所述分支预测单元的状态调整为关闭状态,直至满足所述循环体结构的退出条件时将所述分支预测单元的状态恢复为开启状态。

47、再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的指令缓冲方法。

48、本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的指令缓冲方法。

49、本发明实施例包括以下优点:

50、本发明实施例提供了一种指令缓冲方法,在待处理的第一预测块属于循环体结构的情况下,从循环缓存中获取所述第一预测块对应的目标指令数据并存入指令队列,取指目标队列无需再向去取指单元发送取指请求,也不需要等待取指单元从指令缓存中获取指令数据,能够有效降低处理器在处理循环体结构过程中的功耗,提升了循环指令的处理效率。

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