System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于流水线式的指令执行方法及装置制造方法及图纸_技高网

一种基于流水线式的指令执行方法及装置制造方法及图纸

技术编号:40940913 阅读:2 留言:0更新日期:2024-04-18 14:58
本申请提供一种基于流水线式的指令执行方法及装置,包括:基于专用寄存器中存储的第一指示信息,确定是否使用处理器自控循环;若确定使用处理器自控循环,则确定所述专用寄存器中存储的第二指示信息是否不大于延迟槽的长度;所述第二指示信息用于指示循环体中剩余未执行指令的数量;若所述第二指示信息等于所述延迟槽的长度,则减小所述第三指示信息并设置所述第二指示信息为循环体中的指令总数;所述第三指示信息用于指示循环体中剩余循环次数;确定所述专用寄存器中的第三指示信息不满足循环结束条件,执行所述延迟槽中的指令并跳转至所述循环体的起始指令处。该方案,能够加速循环的执行,降低开销损耗。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种基于流水线式的指令执行方法及装置


技术介绍

1、对于需要多次执行的任务,使用循环可以提高代码的执行效率,帮助开发人员减少不必要的重复性工作。循环允许一组语句或代码块重复执行,从而减少了代码的冗余和重复性,提高了代码的可读性和可维护性,这样的一组语句或者代码块又叫做循环体。

2、事实上,如果循环轮数多而循环体短,则花费在轮数自减和条件分支上的开销比重会增大。

3、对于轮数自减,假设寄存器压力不大,也就是说参与循环体的所有变量可以一直存于寄存器中,那么轮数自减至少就需要一个时钟周期。如果循环体短,本身就花不了多少时钟周期,那么即使是一个时钟周期的额外开销,也不可忽视。假设寄存器压力大(比如循环体中有非常多其它变量的情况),则储存轮数的变量可能无法始终存留于寄存器中,而必须在循环体执行的过程中从寄存器中被腾挪出来(其值被存回了内存里,对应的寄存器分配给别的变量使用),因此,轮数自减至少需要先从内存中读回变量值,才能自减及提供给后面的条件跳转使用。因此,在每一轮循环中,轮数变量涉及到的操作就有写回内存(腾出寄存器)、从内存中取出、自减三步。这里进行了两次内存访问,由于访问内存比起访问寄存器需要更多的时钟周期(数倍到数百倍),这种情况下的开销可以相当大,即便是循环体长的情况,这样的开销都可能不可忽视。

4、对于条件分支,其用于在轮数减小到一个特定的值(通常是0)时,结束循环。条件分支本身就需要占用至少一条指令,因此也至少需要一个时钟周期,同样地,如果循环体短,本身就花不了多少时钟周期,那么即使是一个时钟周期的额外开销,也不可忽视。且,现代cpu为了优化条件分支的性能,采用了分支预测的技术。分支预测需要复杂而庞大的分支预测器电路,在带来高的设计和半导体制造成本的同时,也成为了cpu中相当耗电的一部分。进一步地,分支预测一旦预测失败,由于微架构层面的延迟槽中的所有指令已经被推测执行了,其产生的所有效应都需要被回滚、撤销,因而常常需要清空流水线以保证程序执行的正确性,导致花费更多时钟周期。

5、那么,如何加速循环的执行,降低开销损耗及节省电能,有待解决。


技术实现思路

1、本申请提供一种基于流水线式的指令执行方法及装置,能够加速循环的执行,降低开销损耗。

2、第一方面,本申请实施例提供一种基于流水线式的指令执行方法,该方法可以由基于流水线式的指令执行装置执行,该基于流水线式的指令执行装置可以是一个终端设备或用于终端设备的模块,或者是一个服务器或用于服务器的模块。本申请对该方法的执行主体不做限定。该方法包括:基于专用寄存器中存储的第一指示信息,确定是否使用处理器自控循环;若确定使用处理器自控循环,则确定所述专用寄存器中存储的第二指示信息是否不大于延迟槽的长度;所述第二指示信息用于指示循环体中剩余未执行指令的数量;若所述第二指示信息等于所述延迟槽的长度,则减小所述第三指示信息并设置所述第二指示信息为循环体中的指令总数;所述第三指示信息用于指示循环体中剩余循环次数;确定所述专用寄存器中的第三指示信息不满足循环结束条件,执行所述延迟槽中的指令并跳转至所述循环体的起始指令处。

3、上述方案,一方面,在cpu中添加专用寄存器,通过硬件上的特殊优化,加速了循环的执行,降低开销损耗;另一方面,专用寄存器可以储存循环总轮数和当前轮数的变量,循环过程中产生的临时数据在内存及寄存器上的存储压力随之减轻,很大程度上避免了寄存器不够用导致程序变慢的情况;再一方面,将循环引入硬件上的特殊优化可以固定程序行为,减少不必要的风险,使编写的程序更加健壮;再一方面,第二指示信息等于延迟槽的长度,可以让微架构层面的延迟槽里的所有指令都不被撤销,提高了流水线的利用率,避免了部分流水线的停顿,有助于提升循环性能;最后,通过上述方法,可以在循环体中关闭分支预测器,节省电能。

4、一种可能的实现方法中,若当前指令为循环指令,则根据所述循环指令指示的循环体中的指令总数设置所述专用寄存器中的第一指示信息和第二指示信息,根据所述循环指令指示的循环次数设置所述专用寄存器中的第三指示信息。

5、上述方案,一方面,在专用寄存器中设置第一指示信息、第二指示信息和第三指示信息,循环过程中产生的临时数据在内存及寄存器上的存储压力随之减轻,很大程度上避免了寄存器不够用导致程序变慢的情况;另一方面,通过第一指示信息、第二指示信息和第三指示信息的相互配合,可以在循环体中关闭分支预测器,节省电能。

6、一种可能的实现方法中,若所述循环指令未指示循环次数,则根据所述循环指令初始化所述第三指示信息为第一数值;其中,所述第一数值为正整数。

7、上述方案,若循环指令未指示循环次数,则根据循环指令初始化第三指示信息为第一数值,能够实现准确确定第三指示信息,进一步地,将第三指示信息存储在专用寄存器中,循环过程中产生的临时数据在内存及寄存器上的存储压力随之减轻,很大程度上避免了寄存器不够用导致程序变慢的情况。

8、一种可能的实现方法中,若所述循环指令指示了至少执行的次数,则初始化所述第三指示信息为所述至少执行的次数;或,若所述循环指令指示了至多执行的次数,则初始化所述第三指示信息为所述至多执行的次数;若所述循环指令指示了至少执行的次数和至多执行的次数,则初始化所述第三指示信息为所述至少执行的次数和所述至多执行的次数之间的任一数值。

9、上述方案,能够实现准确确定第三指示信息。

10、一种可能的实现方法中,根据外部条件动态增加或减小所述第三指示信息对应的数值。

11、上述方案,能够实现准确确定第三指示信息。

12、一种可能的实现方法中,根据外部条件确定处理器自控循环可以立即结束时,初始化所述专用寄存器中的第一指示信息为第二数值;所述第二数值用于指示不使用处理器自控循环。

13、上述方案,初始化所述专用寄存器中的第一指示信息为第二数值,也即立即关闭处理器自控循环,使得执行到循环体尾声时不再有任何特殊的操作,而继续向后执行而不是再执行下一轮循环;因此能够实现根据外部条件随时结束处理器自控循环。

14、一种可能的实现方法中,若所述第二指示信息大于所述延迟槽的长度,执行当前指令的下一条指令,所述当前指令为所述循环体中的指令;所述当前指令的下一条指令为所述循环体中的指令。

15、上述方案,说明还未执行到微架构层面的延迟槽,则执行当前指令的下一条指令。根据第二指示信息等于延迟槽的长度,可以让微架构层面的延迟槽里的所有指令都不被撤销,可以提高流水线的利用率,避免了部分流水线的停顿,有助于提升循环性能。

16、一种可能的实现方法中,若所述第二指示信息小于所述延迟槽的长度,则在所述延迟槽中插入流水线空泡,其中,所述流水线空泡的个数为所述延迟槽的长度减去所述第二指示信息对应的循环体中剩余未执行指令的数量。

17、上述方案,说明即将进入微架构层面的延迟槽,但是循环体本文档来自技高网...

【技术保护点】

1.一种基于流水线式的指令执行方法,其特征在于,包括 :

2.如权利要求1所述的方法,其特征在于,所述确定是否使用处理器自控循环,还包括:

3.如权利要求2所述的方法,其特征在于,还包括:

4.如权利要求3所述的方法,其特征在于,所述根据所述循环指令初始化所述第三指示信息为第一数值,包括:

5.如权利要求1所述的方法,其特征在于,所述方法还包括:

6.如权利要求1所述的方法,其特征在于,还包括:

7.如权利要求1所述的方法,其特征在于,还包括:

8.如权利要求1所述的方法,其特征在于,还包括:

9.如权利要求1所述的方法,其特征在于,还包括:

10.如权利要求1所述的方法,其特征在于,所述确定是否使用处理器自控循环之前,还包括:

11.如权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:

12.一种基于流水线式的指令执行装置,其特征在于,包括确定单元、计算单元和执行单元:

【技术特征摘要】

1.一种基于流水线式的指令执行方法,其特征在于,包括 :

2.如权利要求1所述的方法,其特征在于,所述确定是否使用处理器自控循环,还包括:

3.如权利要求2所述的方法,其特征在于,还包括:

4.如权利要求3所述的方法,其特征在于,所述根据所述循环指令初始化所述第三指示信息为第一数值,包括:

5.如权利要求1所述的方法,其特征在于,所述方法还包括:

6.如权利要求1所述的方法,其特征在于,还包括:

【专利技术属性】
技术研发人员:张荣李雨佳苏运强
申请(专利权)人:上海芯联芯智能科技有限公司
类型:发明
国别省市:

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

1