一种解决处理器数据冲突及低功耗执行的处理器及方法

文档序号:41366641发布日期:2025-03-21 15:21阅读:19来源:国知局
一种解决处理器数据冲突及低功耗执行的处理器及方法

本发明属于处理器,具体涉及一种解决处理器数据冲突及低功耗执行的处理器及方法。


背景技术:

1、在现代处理器技术领域中,处理器的性能对于整个计算机系统的运行效率和功能实现起着至关重要的作用。其中,译码和执行阶段是处理器指令处理流程中的关键环节。

2、随着信息技术的飞速发展,计算机系统所处理的任务日益复杂多样,对处理器性能的要求也不断提高。传统的处理器译码阶段在面对复杂指令集以及多种数据类型和操作模式时,容易存在数据冒险风险。

3、在传统的处理器架构和指令执行流程中,数据冒险现象频繁出现。数据冒险主要源于指令之间的数据相关性,当一条指令依赖于尚未完成执行的前一条指令所产生的数据时,就会产生数据冲突。例如,在流水线式处理器中,由于指令的重叠执行,如果后续指令在数据准备好之前就开始执行,可能会读取到错误的数据,这将导致指令执行结果错误,严重影响处理器的准确性和可靠性。当前解决数据冲突的方法存在一定的局限性,部分方案虽然能够在一定程度上缓解数据冒险,但会引入额外的硬件开销或时间延迟,降低了处理器的性能。

4、同时,随着电子设备的广泛应用,低功耗需求日益凸显。无论是移动设备、物联网节点还是其他对功耗敏感的应用场景,处理器的功耗成为了制约设备续航能力和使用效率的关键因素。传统的处理器执行方法往往在追求高性能的同时,忽视了功耗问题,导致大量的能源浪费。例如,在一些简单指令的执行过程中,可能会消耗与复杂指令相同甚至更多的能量,这对于以电池供电的设备来说是极为不利的。而且,现有的低功耗技术在与解决数据冲突问题的方法结合时,往往难以达到理想的平衡,无法同时满足高性能和低功耗的需求。

5、因此,迫切需要一种新的能够有效解决处理器数据冲突问题并且实现低功耗执行的方法及处理器核,以突破现有技术的局限,提高处理器在不同应用场景下的性能和能效比,满足现代计算机系统对处理器日益增长的复杂需求。


技术实现思路

1、为了解决现有技术中所存在的上述问题,本发明提供了一种解决处理器数据冲突及低功耗执行的处理器及方法。

2、本发明要解决的技术问题通过以下技术方案实现:

3、本发明提供一种解决处理器数据冲突及低功耗执行的处理器,包括:

4、译码器模块,用于获取当前指令并对所述当前指令进行译码,以及判断所述当前指令是否为普通指令或长指令;

5、oitf模块,用于根据译码后的当前指令中的目标信息和自身的表项中当前已存储的目标信息,判断所述当前指令是否与已派遣的前序指令存在数据冲突,若否,则向所述译码器模块返回表征不冲突的判断结果;若是,则在预设时间之后继续判断,直至判断出所述当前指令与所述前序指令不存在数据冲突时,向所述译码器模块返回表征不冲突的判断结果;以及在所述当前指令为长指令时,将所述译码后的当前指令存储在自身的表项中,并在每次写回一个长指令时,从自身的表项中删除每次写回的一个长指令;

6、所述译码器模块,还用于在接收到所述表征不冲突的判断结果时,将所述译码后的当前指令派遣至alu模块;

7、所述alu模块,具有共享的数据运算子模块,用于基于所述共享的数据运算子模块对所述译码后的当前指令进行处理,得到处理结果。

8、本发明提供一种解决处理器数据冲突及低功耗执行的方法,应用于上述的处理器,所述方法包括:

9、获取当前指令并对所述当前指令进行译码,以及判断所述当前指令是否为普通指令或长指令;

10、根据译码后的当前指令中的目标信息和当前已存储的目标信息,判断所述当前指令是否与已派遣的前序指令存在数据冲突;

11、若否,并且,所述当前指令为普通指令时,进行所述译码后的当前指令的派遣;

12、若否,并且,所述当前指令为长指令时,存储所述译码后的当前指令,并进行所述译码后的当前指令的派遣;

13、若是,则在预设时间之后继续判断,直至判断出所述当前指令与所述前序指令不存在数据冲突,并且,所述当前指令为普通指令时,进行所述译码后的当前指令的派遣;

14、若是,则在预设时间之后继续判断,直至判断出所述当前指令与所述前序指令不存在数据冲突,并且,所述当前指令为长指令时,存储所述译码后的当前指令,并进行所述译码后的当前指令的派遣;

15、执行派遣的所述译码后的当前指令;

16、在每次写回一个长指令时,将已存储的每次写回的一个长指令删除。

17、与现有技术相比,本发明的有益效果:

18、本发明在指令派遣时,每派遣一条长指令时将其记录到oitf的表项当中去,在指令写回时每写回一条长指令,就将此指令在oitf的表项中去除;所以oitf中表项存储的就是已经派遣但尚未写回的长指令;在派遣每条指令时,都会将指令的目标信息和oitf中的各个表项中的目标信息进行比对,从而判断指令是否与已经派遣且尚未写回的长指令产生数据冲突,并当处理器中存在数据冲突,则处理器在派遣点阻塞流水线,当数据冲突解除后才会继续进行派遣,如此,能够有效解决处理器运行中产生的数据冲突,降低处理器执行阶段的功耗和面积。此外,本发明通过设计共享的数据运算子模块,可以大量减少加法器减法器移位寄存器等电路在不同的指令执行模块中重复出现,从而能够降低alu模块电路面积,有效降低处理器功耗。也就是说,本发明不仅能够有效解决处理器运行中产生的数据冲突,降低处理器执行阶段的功耗和面积,还能够优化处理器性能,并且,处理器的功耗低、面积小、解决数据冲突方法结构简单,具有良好的工程实用性。

19、以下将结合附图及具体实施方式对本发明做进一步详细说明。



技术特征:

1.一种解决处理器数据冲突及低功耗执行的处理器,其特征在于,包括:

2.根据权利要求1所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述普通指令是单周期指令,并且是指在执行阶段需要一个指令周期完成指令执行并交付的指令;所述长指令为多周期指令,并且是指在执行阶段需要多个周期完成指令执行并交付的指令。

3.根据权利要求1所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述译码器模块,还用于当根据所述译码后的当前指令中的部分译码信息确定所述当前指令为load类型指令、store类型指令、乘法类型指令和除法类型指令这四种类型指令中的任意一种类型指令时,则确定所述当前指令为长指令,并当根据所述部分译码信息确定所述当前指令不属于所述四种类型指令中的任意一种类型指令时,则确定所述当前指令为普通指令。

4.根据权利要求3所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述译码器模块,还用于对所述当前指令进行分段译码,并根据译码得到的opcode段和func3段识别所述当前指令是否为load类型指令或store类型指令,以及根据译码得到的opcode段和func7段识别所述当前指令是否为乘法类型指令或除法类型指令。

5.根据权利要求1所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述目标信息为源寄存器索引值和结果寄存器索引值;

6.根据权利要求5所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述oitf模块,还用于当所述译码后的当前指令中的一个源寄存器索引值与所述oitf模块中的表项中当前已存储的一个结果寄存器索引值相等时,则表示所述当前指令与前序指令之间存在数据冲突,并且数据冲突类型为raw相关性;当所述译码后的当前指令中的结果寄存器索引值与所述oitf模块中的表项中当前已存储的结果寄存器索引值相等时,则表示所述当前指令与前序指令之间存在数据冲突,并且数据冲突类型为waw相关性。

7.根据权利要求1所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述alu模块包括:多个用于处理不同类型指令的子模块,以及共享的数据计算子模块,其中,所述共享的数据计算子模块用于根据所述多个用于处理不同类型指令的子模块中的部分子模块的请求进行数据计算,并返回计算结果。

8.根据权利要求7所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,对于alu模块,所述译码后的当前指令属于普通alu指令、load/store类型指令、分支与跳转指令、csr读写指令、乘/除法类型指令这五种类型的指令中的一种指令,所述普通alu指令是除了load/store类型指令、分支与跳转指令、csr读写指令、乘/除法类型指令这四种类型的指令之外的指令;

9.根据权利要求1所述的解决处理器数据冲突及低功耗执行的处理器,其特征在于,所述oitf模块中的每个表项中用于存储一个译码后的长指令。

10.一种解决处理器数据冲突及低功耗执行的方法,其特征在于,应用于上述权利要求1~9任意一项所述的处理器,所述方法包括:


技术总结
本发明公开了一种解决处理器数据冲突及低功耗执行的处理器及方法。通过在指令派遣时每派遣一条长指令时将其记录到OITF的表项当中,在每写回一条长指令,就将此指令在OITF的表项中去除;所以OITF中表项存储的是已经派遣但尚未写回的长指令;在派遣每条指令时,都会将指令的目标信息和OITF中的各个表项中的目标信息进行比对,从而判断指令是否与已派遣且尚未写回的长指令产生数据冲突,并当产生数据冲突时在派遣点阻塞流水线,当数据冲突解除后才会继续进行派遣,并且,在执行派遣的指令时,通过共享的数据运算子模块进行不同类型的指令的数据运算。本发明能有效解决处理器运行中产生的数据冲突,降低处理器执行阶段的功耗和面积。

技术研发人员:胡辉勇,孟庆哲,王利明
受保护的技术使用者:西安电子科技大学
技术研发日:
技术公布日:2025/3/20
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1