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

一种程序运行方法及装置制造方法及图纸

技术编号:39960819 阅读:10 留言:0更新日期:2024-01-09 00:01
一种程序运行方法及装置,用于解决现有处理设备配置计算资源为默认配置参数,计算资源采用该默认配置参数运行多种不同类型的程序,不能适用于各类程序的运行特征的问题。在本申请中,方法可由处理设备或处理设备中的计算资源执行,具体的,在确定计算资源中正在运行的程序中包括多段相似的子程序时,获取多段相似的子程序中已运行或者当前运行的子程序的运行特征,其中,多段相似的子程序为运行特征的相似度大于或等于第一预设值的多段子程序。根据运行特征确定计算资源的配置参数,进而使用计算资源的配置参数来配置该计算资源。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种程序运行方法及装置


技术介绍

1、处理设备中包括计算资源,计算资源可用于运行多种不同类型的程序,计算资源比如是中央处理器(central processing unit,cpu),或者cpu中的核。为了实现处理设备中计算资源的通用性,处理设备可配置计算资源为默认配置参数。以计算资源是cpu为例,cpu厂商在设计制造阶段,可设置cpu处于不同的配置参数下,然后对该处于不同配置参数下的cpu进行测试,以选取出最优的配置参数作为cpu的默认配置参数,如此,保证cpu的默认配置参数可用于cpu顺利运行各种不同类型的程序。

2、但是,处理设备中的计算资源采用默认配置参数来运行多种不同类型的程序,不能适用于各类程序的运行特征,即无法最大化利用计算资源的计算能力。


技术实现思路

1、本申请提供一种程序运行方法及装置,用于识别计算资源中运行的程序中子程序的运行特征,根据识别出的运行特征,调整计算资源的配置参数,有助于提高计算资源运行程序的执行效率,最大化利用计算资源的计算能力。

2、第一方面,本申请提供一种运行程序的方法,该方法可以由处理设备执行,或由处理设备中的计算资源执行,其中,计算资源具体可以是处理设备中的处理器或者处理设备中的处理器的核。方法包括:在确定处理设备中的计算资源正在运行的程序中包括多段相似的子程序时,获取多段相似的子程序中已运行或者当前运行的子程序的运行特征,其中,多段相似的子程序为运行特征的相似度大于或等于第一预设值的多段子程序。根据运行特征确定计算资源的配置参数,进而使用该确定出的配置参数来配置计算资源。

3、上述技术方案中,在确定计算资源中正在运行的程序中包括多段相似的子程序时,可根据已运行或者当前运行的子程序的运行特征,确定计算资源的配置参数,将计算资源的配置参数配置于计算资源中,有助于使得计算资源在执行该程序中其他相似的子程序时,提高执行效率,进而提高整个程序的执行效率。

4、在一种可能的实现方式中,多段相似的子程序为程序中的被多次执行的循环程序,每一段子程序对应于循环程序的一次或多次循环。上述技术方案中,识别计算资源运行的程序中存在循环程序,基于循环程序在一次或多次循环中的运行特征,确定运行该循环程序所采用的计算资源的配置参数,有助于计算资源更高效的执行该循环程序。

5、在一种可能的实现方式中,循环程序的指令数大于第二预设值。如此,避免较为频繁地配置计算资源中的参数,减少计算功耗(代价,overhead)。

6、在一种可能的实现方式中,在确定计算资源中正在运行的程序中包括多段相似的子程序时,具体可以是,当程序中的第一子程序被重复执行的次数大于第三预设值时,确定第一子程序为循环程序。如此,提供一种确定程序中包括循环程序的方式,提高识别出循环程序的准确率。

7、在一种可能的实现方式中,在执行完成第一子程序并执行条件跳转指令之后,确定是否存在条件跳转指令的记录信息;若确定存在条件跳转指令的记录信息,则根据条件跳转指令的记录信息,确定第一子程序被重复执行的次数是否大于第三预设值;若确定尚未存在条件跳转指令的记录信息,则增加该条件跳转指令的记录信息。上述技术方案中,在执行完成第一子程序之后执行条件跳转指令,根据条件跳转指令的记录信息确定第一子程序是否为循环程序,有助于提高识别循环程序的准确率。

8、在一种可能的实现方式中,在执行条件跳转指令之后,先确定条件跳转指令是否指向小循环,其中,小循环指的是单次循环执行的指令数小于第二预设值的循环。若该条件跳转指令指向小循环,则将该条件跳转指令过滤掉;若该条件跳转指令未指向小循环,则进一步确定是否存在条件跳转指令的记录信息。

9、在一种可能的实现方式中,记录信息记录在计算资源的预设的一段缓存(buffer)中。如此,能够在缓存中迅速读取记录信息,提高识别循环程序的速度。

10、在一种可能的实现方式中,确定是否存在条件跳转指令的记录信息,具体可以是,根据该条件跳转指令的标识信息确定跳转标识,其中,跳转标识是条件跳转指令的标识信息,或者是条件跳转指令的标识信息的哈希。遍历缓存中的多条记录信息,若确定某条记录信息中包括该跳转标识,则确定缓存中包括该条件跳转指令的记录信息;若确定缓存中的多条记录信息中均未包括有该跳转标识,则确定缓存中不包括该条件跳转指令的记录信息。

11、在一种可能的实现方式中,条件跳转指令的标识信息是从分支记录模块中获取的。标识信息中包括起始位置和/或目标位置,或者,包括起始位置和/或目标位置的哈希。

12、在一种可能的实现方式中,在根据记录信息,确定第一子程序被重复执行的次数是否大于第三预设值时,具体可以是,根据记录信息中的指令数和执行长度,确定第一子程序被重复执行的次数是否大于第三预设值,其中,记录信息中指令数用于指示程序在上一次执行条件跳转指令时,程序累计执行的指令数;记录信息中执行长度是程序分别在前两次执行条件跳转指令时,程序累计执行的指令数的差值。

13、上述技术方案中,根据条件跳转指令的记录信息中的指令数和执行长度,确定第一子程序是否为循环程序,有助于提高识别循环程序的准确率。

14、在一种可能的实现方式中,第三预设值等于2,在根据记录信息中的指令数和执行长度,确定第一子程序被重复执行的次数大于第三预设值时,具体可以是,将执行该条件跳转指令时程序执行的指令数作为第一指令数,以及将第一指令数和记录信息中指令数的差值作为第一执行长度。若记录信息中的执行长度不为0,且第一执行长度与记录信息中的执行长度之间的差值小于差值阈值,则确定第一子程序被重复执行的次数大于2。上述技术方案有助于提高识别循环程序的准确率。

15、在一种可能的实现方式中,在确定第一子程序被重复执行的次数大于第三预设值之后,还包括:根据第一指令数和第一执行长度更新记录信息。

16、在一种可能的实现方式中,在确定第一子程序为循环程序之后,还根据更新之后的记录信息中的第一指令数和预设执行长度,确定指令数阈值,示例性的,将第一指令数和预设执行长度的加和作为指令数阈值,其中预设执行长度是预先设置的执行长度,或者是第一执行长度,或者是更新之前的记录信息中的执行长度等。当程序执行指令的指令数达到指令数阈值时,若尚未再次执行该条件跳转指令,则确定循环程序已退出;确定计算资源的配置参数为默认配置参数。如此,能够准确识别出程序是否退出循环,从而及时地调整计算资源的配置参数为默认配置参数。

17、在一种可能的实现方式中,在根据记录信息,确定第一子程序被重复执行的次数是否大于第三预设值时,具体还可以是,根据记录信息中的条件跳转指令的执行次数,确定条件跳转指令的执行次数是否大于第三预设值。在一种可能的实现方式中,在根据记录信息,确定第一子程序被重复执行的次数是否大于第三预设值时,具体可以是,先更新记录信息中条件跳转指令的执行次数;根据更新之后的条件跳转指令的执行次数,确定第本文档来自技高网...

【技术保护点】

1.一种运行程序的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述多段相似的子程序为所述程序中的被所述计算资源多次执行的循环程序,每一段子程序对应于所述循环程序的一次循环。

3.如权利要求2所述的方法,其特征在于,所述循环程序的指令数大于第二预设值。

4.如权利要求2所述的方法,其特征在于,所述确定处理设备中的计算资源正在运行的程序中包括多段相似的子程序,包括:

5.如权利要求4所述的方法,其特征在于,所述确定所述第一子程序为所述循环程序之前,还包括:

6.如权利要求5所述的方法,其特征在于,所述根据所述记录信息,确定所述第一子程序被重复执行的次数是否大于所述第三预设值,包括:

7.如权利要求5所述的方法,其特征在于,所述根据所述记录信息,确定所述第一子程序被重复执行的次数是否大于所述第三预设值,包括:

8.如权利要求7所述的方法,其特征在于,所述第三预设值等于2;

9.如权利要求7所述的方法,其特征在于,所述确定所述第一子程序为所述循环程序之后,还包括:

10.如权利要求5所述的方法,其特征在于,所述记录信息记录在所述计算资源的预设的一段缓存中。

11.如权利要求1所述的方法,其特征在于,所述根据所述运行特征确定所述计算资源的配置参数,包括:

12.如权利要求1-11中任一项所述的方法,其特征在于,所述运行特征至少包括如下中任一项或多项:处理器核每一时钟周期内所执行的指令数、指令转换后备缓冲区的丢失率、缓存丢失率、预取命中率。

13.一种运行程序的装置,其特征在于,包括:

14.如权利要求13所述的装置,其特征在于,所述多段相似的子程序为所述程序中的被所述计算资源多次执行的循环程序,每一段子程序对应于所述循环程序的一次循环。

15.如权利要求14所述的装置,其特征在于,所述循环程序的指令数大于第二预设值。

16.如权利要求14所述的装置,其特征在于,还包括:检测模块;

17.如权利要求16所述的装置,其特征在于,所述检测模块在确定所述第一子程序为所述循环程序之前,还用于:

18.如权利要求17所述的装置,其特征在于,所述检测模块在根据所述记录信息,确定所述第一子程序被重复执行的次数是否大于所述第三预设值时,具体用于:

19.如权利要求18所述的装置,其特征在于,所述检测模块在根据所述记录信息,确定所述第一子程序被重复执行的次数是否大于所述第三预设值时,具体用于:

20.如权利要求19所述的装置,其特征在于,所述第三预设值等于2;

21.如权利要求19所述的装置,其特征在于,

22.如权利要求17所述的装置,其特征在于,所述记录信息记录在所述计算资源的预设的一段缓存中。

23.如权利要求13所述的装置,其特征在于,所述参数确定模块在根据所述运行特征确定所述计算资源的配置参数时,具体用于:

24.如权利要求13-23中任一项所述的装置,其特征在于,所述运行特征至少包括如下中任一项或多项:处理器核每一时钟周期内所执行的指令数、指令转换后备缓冲区的丢失率、缓存丢失率、预取命中率。

25.一种处理设备,其特征在于,包括计算资源及与所述计算资源连接的存储器,所述存储器用于存储计算机程序,所述计算资源用于执行所述存储器中存储的计算机程序,以使得所述计算资源执行如权利要求1至12中任一项所述的方法。

26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,处理设备中的计算资源运行所述计算机程序或指令以执行如权利要求1至12中任一项所述的方法。

27.一种处理芯片,其特征在于,包括至少一个处理器核和接口;

...

【技术特征摘要】

1.一种运行程序的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述多段相似的子程序为所述程序中的被所述计算资源多次执行的循环程序,每一段子程序对应于所述循环程序的一次循环。

3.如权利要求2所述的方法,其特征在于,所述循环程序的指令数大于第二预设值。

4.如权利要求2所述的方法,其特征在于,所述确定处理设备中的计算资源正在运行的程序中包括多段相似的子程序,包括:

5.如权利要求4所述的方法,其特征在于,所述确定所述第一子程序为所述循环程序之前,还包括:

6.如权利要求5所述的方法,其特征在于,所述根据所述记录信息,确定所述第一子程序被重复执行的次数是否大于所述第三预设值,包括:

7.如权利要求5所述的方法,其特征在于,所述根据所述记录信息,确定所述第一子程序被重复执行的次数是否大于所述第三预设值,包括:

8.如权利要求7所述的方法,其特征在于,所述第三预设值等于2;

9.如权利要求7所述的方法,其特征在于,所述确定所述第一子程序为所述循环程序之后,还包括:

10.如权利要求5所述的方法,其特征在于,所述记录信息记录在所述计算资源的预设的一段缓存中。

11.如权利要求1所述的方法,其特征在于,所述根据所述运行特征确定所述计算资源的配置参数,包括:

12.如权利要求1-11中任一项所述的方法,其特征在于,所述运行特征至少包括如下中任一项或多项:处理器核每一时钟周期内所执行的指令数、指令转换后备缓冲区的丢失率、缓存丢失率、预取命中率。

13.一种运行程序的装置,其特征在于,包括:

14.如权利要求13所述的装置,其特征在于,所述多段相似的子程序为所述程序中的被所述计算资源多次执行的循环程序,每一段子程序对应于所述循环程序的一次循环。

15.如权利要...

【专利技术属性】
技术研发人员:许中虎王淑倩徐建荣
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1