System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及半导体,具体地,涉及一种指令执行时间一致性测试方法、系统、设备及存储介质。
技术介绍
1、对于处理器而言,如果没有特殊干预,不同种类指令之间的执行时间会有相对固定的差异,同一类指令的执行时间有其明显特点。通过分析不同指令的执行时间特征,可以对处理器进行时序攻击。尤其是跳转指令,其执行时间受到操作数的影响明显,更容易遭受攻击。为了抵御这类攻击,处理器实现了指令执行时间一致的功能。
2、在现有技术中,一般使用计数器在固定跳转指令时间功能开启与关闭的情况下,分别计算设定次数的跳转指令的执行时钟数;根据固定跳转指令时间增加的时钟数,判断是否在原先不固定跳转指令时间的基础上增加相应的倍数;多次执行所述设定次数的固定次数的跳转指令,判断多次执行时间的一致性。
3、但现有技术中存在以下缺陷:
4、1、存在分支预测带来的误差,会影响测试结果的准确性;
5、2、未考虑到程序编译时指令的长度以及指令的位置,当取指的长度确定时,指令的长度和位置将影响指令的执行时间;
6、3、不支持执行载体为缓存时的测试,测试能否进行受限于处理器的配置。
技术实现思路
1、为了解决上述技术缺陷之一,本申请实施例中提供了一种指令执行时间一致性测试方法、系统、设备及存储介质。
2、根据本申请实施例的第一个方面,提供了一种指令执行时间一致性测试方法,该方法包括:
3、设定第一指令组和第二指令组,第一指令组均为确定不跳转的条件跳转指令,
4、分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行第一指令组和第二指令组,并逐次增加第一指令组和第二指令组中的指令数,记录在基于指令执行时间一致性和不基于指令执行时间一致性情况下第一指令组和第二指令组的执行所需时钟数;
5、根据第一指令组和第二指令组的执行所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过。
6、在本申请一个可选的实施例中,根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
7、基于指令执行时间一致性情况下,根据第一指令组和第二指令组的执行所需时钟数,判断执行时间一致次数是否满足比例阈值;若满足,则认定指令执行时间一致性操作有效;若不满足,则认定指令执行时间一致性操作无效。
8、在本申请一个可选的实施例中,根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
9、基于指令执行时间一致性情况下,判断第一指令组和第二指令组的执行所需时钟数是否均符合线性增加;若符合,则认定指令执行时间一致性操作有效;若不符合,则认定指令执行时间一致性操作无效。
10、在本申请一个可选的实施例中,根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
11、不基于指令执行时间一致性情况下,获取第一指令组和第二指令组中的执行所需时钟数较多的参照指令组;
12、判断参照指令组的执行所需时钟数,与基于指令执行时间一致性情况下第一指令组和第二指令组的执行所需时钟数的一致次数是否满足比例阈值;若满足,则认定指令执行时间一致性操作有效;若不满足,则认定指令执行时间一致性操作无效。
13、在本申请一个可选的实施例中,分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行第一指令组和第二指令组的步骤还包括:
14、通过汇编语言,并通过平铺展开方式实现对第一指令组和第二指令组的执行。
15、在本申请一个可选的实施例中,分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行第一指令组和第二指令组的步骤还包括:
16、对第一指令组和第二指令组进行编译后,保持每条指令长度一致,且每条指令的操作码所在存储单元的首地址为均对齐或均不对齐。
17、在本申请一个可选的实施例中,分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行第一指令组和第二指令组的步骤还包括:
18、判断执行第一指令组和第二指令组的存储载体;
19、若存储载体为缓存,则将用以执行第一指令组和第二指令组的代码锁入缓存后执行;
20、若存储载体不为缓存,则将用以执行第一指令组和第二指令组的代码预载后执行。
21、根据本申请实施例的第二个方面,提供了一种指令执行时间一致性测试系统,该系统包括:
22、指令组设定模块,用于设定第一指令组和第二指令组,第一指令组均为确定不跳转的条件跳转指令,第二指令组均为确定跳转的条件跳转指令,第一指令组和第二指令组中指令数相同;
23、指令组执行模块,用于分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行第一指令组和第二指令组,并逐次增加第一指令组和第二指令组中的指令数,记录在基于指令执行时间一致性和不基于指令执行时间一致性情况下第一指令组和第二指令组的执行所需时钟数;
24、测试判断模块,用于根据第一指令组和第二指令组的执行所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过。
25、根据本申请实施例的第三个方面,提供了一种计算机设备,包括:存储器;
26、处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
27、根据本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
28、采用本申请实施例中提供的指令执行时间一致性测试方法,具有以下有益效果:
29、通过本申请中设定的均为确定不跳转的条件跳转指令的第一指令组和均为确定跳转的条件跳转指令的第二指令组,可以保证条件跳转指令指令每次都预测正确或者每次都预测错误,能够测试固定执行时间,消除了分支预测带来的误差。
本文档来自技高网...【技术保护点】
1.一种指令执行时间一致性测试方法,其特征在于,包括:
2.根据权利要求1所述的指令执行时间一致性测试方法,其特征在于,所述根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
3.根据权利要求1所述的指令执行时间一致性测试方法,其特征在于,所述根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
4.根据权利要求1所述的指令执行时间一致性测试方法,其特征在于,所述根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
5.根据权利要求1-4任一项所述的指令执行时间一致性测试方法,其特征在于,所述分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行所述第一指令组和所述第二指令组的步骤还包括:
6.根据权利要求5所述的指令执行时间一致性测试方法,其特征在于,所述分别在基于指令执行时间一致性和不基
7.根据权利要求6所述的指令执行时间一致性测试方法,其特征在于,所述分别在基于指令执行时间一致性和不基于指令执行时间一致性情况下,多次执行所述第一指令组和所述第二指令组的步骤还包括:
8.一种指令执行时间一致性测试系统,其特征在于,包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-7任一项所述的方法。
...【技术特征摘要】
1.一种指令执行时间一致性测试方法,其特征在于,包括:
2.根据权利要求1所述的指令执行时间一致性测试方法,其特征在于,所述根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
3.根据权利要求1所述的指令执行时间一致性测试方法,其特征在于,所述根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
4.根据权利要求1所述的指令执行时间一致性测试方法,其特征在于,所述根据所需时钟数,并基于预设规则,判断指令执行时间一致性操作是否有效;若是,认定测试通过;若否,则认定测试不通过的步骤还包括:
5.根据权利要求1-4任一项所述的指令执行时间一致性测试方法,其特征在于,所述分别...
【专利技术属性】
技术研发人员:胡振波,彭剑英,梁智兵,伍迎,
申请(专利权)人:芯来智融半导体科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。