System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 存储顺序违例处理方法、装置、电子设备及介质制造方法及图纸_技高网

存储顺序违例处理方法、装置、电子设备及介质制造方法及图纸

技术编号:43581411 阅读:10 留言:0更新日期:2024-12-06 17:46
本申请提供一种存储顺序违例处理方法、装置、电子设备及介质。方法包括:在针对待执行程序进行指令乱序执行的过程中,针对每个当前的待执行指令,根据加载指令重排序队列,确定该待执行指令关联的所有违例指令;从待执行指令关联的所有违例指令中确定在待执行程序中处于最靠前的第一违例指令;其中,第一违例指令为加载指令;加载指令重排序列包括多个项,不同的项对应不同的已发射的加载指令,每个项存储有该项对应的加载指令的加载地址、该项对应的加载指令所在的线程信息、执行状态、snooped值以及顺序标识;对待执行程序中第一违例指令及其之后的程序进行指令乱序执行。本申请的方法,用以在存储顺序违例处理时降低功耗浪费,提高处理器的性能。

【技术实现步骤摘要】

本申请涉及计算机技术,尤其涉及一种存储顺序违例处理方法、装置、电子设备及介质


技术介绍

1、处理器执行方式分为两种:顺序执行和乱序执行。顺序执行,即按照指令计数器(program counter,pc)的取指顺序执行。但在顺序执行的情况下,一旦遇到指令依赖的情况就会发生停滞,造成资源的浪费。因此现代处理器常采用乱序执行方式来开发程序中的指令级并行,从而提升处理器性能。乱序执行允许不相干的指令越过长延迟的事件,从而提升指令吞吐。乱序执行存在发生存储顺序违例(memory order violation)的可能。举例来说,假设程序中一前一后访问相同地址的存储(store)指令和加载(load)指令,由于指令乱序执行,加载指令在存储指令写入数据之前拿到了比较旧的内存值之后,存储指令才执行成功并写入了新的值,此时依赖于加载指令其他指令已经拿了旧值去执行指令,这样便会引起存储顺序违例,导致指令乱序执行的结果和指令按照程序顺序执行的结果不一致。

2、现有技术中,仍如上述示例,检测到发生存储顺序违例时,会从程序中该存储指令的下一条指令开始重新进行乱序执行。但是乱序执行过程中的该存储指令与加载指令之间指令间距会增大,意味着直接从程序中该存储指令的下一条指令开始执行,会浪费该存储指令与加载指令之间已经正确执行完成的指令,造成功耗浪费,影响处理器的性能。


技术实现思路

1、本申请提供一种存储顺序违例处理方法、装置、电子设备及介质,用以在存储顺序违例处理时降低功耗浪费,提高处理器的性能。</p>

2、一方面,本申请提供一种存储顺序违例处理方法,包括:

3、在针对待执行程序进行指令乱序执行的过程中,针对每个当前的待执行指令,根据加载指令重排序队列,确定该待执行指令关联的所有违例指令;

4、从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令;其中,所述第一违例指令为加载指令;所述加载指令重排序列包括多个项,不同的项对应不同的已发射的加载指令,每个项存储有该项对应的加载指令的加载地址、该项对应的加载指令所在的线程信息、该项对应的加载指令的执行状态、该项对应的加载指令的snooped值以及该项对应的加载指令的顺序标识;

5、对所述待执行程序中所述第一违例指令及其之后的程序进行指令乱序执行;

6、其中,所述根据加载指令重排序队列,确定该待执行指令关联的所有违例指令,包括:根据所述待执行指令的指令类型,确定所述待执行指令对应的违例条件;以及,根据所述违例条件以及所述加载指令重排序队列,确定该待执行指令关联的所有违例指令。

7、可选的,所述根据加载指令重排序队列,确定该待执行指令关联的所有违例指令,包括:

8、若所述待执行指令为存储指令,则将所述加载指令重排序队列中满足第一违例条件的指令作为所述待执行指令关联的违例指令;所述第一违例条件包括线程信息与所述待执行指令所在的线程信息相同,且加载地址与所述待执行指令的存储地址相同,且执行状态表征已执行完成,且顺序标识大于所述待执行指令对应的顺序标识;

9、若所述待执行指令为加载指令,则将所述加载指令重排序队列中满足第二违例条件的指令作为所述待执行指令关联的违例指令;所述第二违例条件包括线程信息与所述待执行指令所在的线程信息相同,且加载地址与所述待执行指令的加载地址相同,且执行状态表征已执行完成,且顺序标识大于所述待执行指令对应的顺序标识;且snooped值为1;

10、若所述待执行指令为同步指令,则将所述加载指令重排序队列中满足第三违例条件的指令作为所述待执行指令关联的违例指令;所述第三违例条件包括线程信息与所述待执行指令所在的线程信息相同,且所述待执行指令关联的所有违例指令的执行状态表征已执行完成,且顺序标识大于所述待执行指令对应的顺序标识;且snooped值为1。

11、可选的,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令,包括:

12、若所述待执行指令关联的违例指令的数量为一个,则将该违例指令作为所述第一违例指令;

13、若所述待执行指令关联的违例指令的数量为多个,则根据所述待执行指令关联的所有违例指令的顺序标识,将顺序标识最小的违例指令作为所述第一违例指令。

14、可选的,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令之前,还包括:

15、若所述待执行指令关联的违例指令的数量为多个,则生成该待执行指令对应的检查请求,所述待执行指令对应的检查请求包括该待执行指令的指令标识以及该待执行指令关联的所有违例指令的顺序标识;将所述待执行指令对应的检查请求加入检查请求队列;

16、所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令,包括:

17、针对所述检查请求队列中的首个检查请求所对应的待执行指令,从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令。

18、可选的,所述对所述待执行程序中所述第一违例指令及其之后的程序进行指令乱序执行,包括:

19、结束本次的指令乱序执行,并获取所述第一违例指令的指令标识;以及,根据所述第一违例指令的指令标识,从指令重排序缓冲中读取所述第一违例指令对应的程序计数器数值;

20、根据所述第一违例指令对应的程序计数器数值,对所述待执行程序中指令地址为该第一违例指令对应的程序计数器数值的指令及其之后的程序进行指令乱序执行。

21、可选的,所述结束本次的指令乱序执行之后,还包括:

22、在所述检查请求队列中确定第二检查请求,所述第二检查请求中的指令标识大于所述第一违例指令的指令标识;

23、将所述第二检查请求从所述检查请求队列中清除。

24、可选的,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令,包括:

25、根据所述待执行指令关联的所有违例指令,生成该待执行指令对应的违例信号,所述违例信号包括多个比特,所述违例信号的各个比特与所述加载指令重排序队列的各个项一一对应,其中,所述比特为第一值表征该比特对应的加载指令为所述待执行指令关联的违例指令,所述比特为第二值表征该比特对应的加载指令不为所述待执行指令关联的违例指令;

26、将所述违例信号输入检查单元,得到所述检查单元输出的顺序标识,并将所述加载指令重排序队列中该顺序标识对应的加载指令,作为所述第一违例指令。

27、可选的,所述检查单元包括所述加载指令重排序队列中的每个项对应的选择器以及二叉树比较器;所述将所述违例信号输入检查单元,得到所述检查单元输出的顺序标识,包括:

28、将所述待执行指令对应的违例信号的每个比特作为使能信号,输入到对应的项所对应的选择器的使能端;其中,每个项对应的选择本文档来自技高网...

【技术保护点】

1.一种存储顺序违例处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述根据加载指令重排序队列,确定该待执行指令关联的所有违例指令,包括:

3.根据权利要求1所述的方法,其特征在于,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令,包括:

4.根据权利要求1所述的方法,其特征在于,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令之前,还包括:

5.根据权利要求4所述的方法,其特征在于,所述对所述待执行程序中所述第一违例指令及其之后的程序进行指令乱序执行,包括:

6.根据权利要求5所述的方法,其特征在于,所述结束本次的指令乱序执行之后,还包括:

7.根据权利要求1-6任一项所述的方法,其特征在于,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令,包括:

8.根据权利要求7所述的方法,其特征在于,所述检查单元包括所述加载指令重排序队列中的每个项对应的选择器以及二叉树比较器;所述将所述违例信号输入检查单元,得到所述检查单元输出的顺序标识,包括:

9.一种存储顺序违例处理装置,其特征在于,包括:

10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;

...

【技术特征摘要】

1.一种存储顺序违例处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述根据加载指令重排序队列,确定该待执行指令关联的所有违例指令,包括:

3.根据权利要求1所述的方法,其特征在于,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令,包括:

4.根据权利要求1所述的方法,其特征在于,所述从所述待执行指令关联的所有违例指令中确定在所述待执行程序中处于最靠前的第一违例指令之前,还包括:

5.根据权利要求4所述的方法,其特征在于,所述对所述待执行程序中所述第一违例指令及其之后的程序进行指令乱序执行,包括:<...

【专利技术属性】
技术研发人员:翟少敏
申请(专利权)人:上海合芯数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1