多核处理器软错误压力测试程序生成系统及方法

文档序号:6494100阅读:213来源:国知局
多核处理器软错误压力测试程序生成系统及方法
【专利摘要】本发明属于处理器【技术领域】,尤其涉及一种多核处理器软错误压力测试程序生成系统及方法。本发明的多核处理器软错误压力测试程序生成系统包括:代码产生器:根据控制参数产生多核处理器体系结构弱点因子极限测试程序;多核处理器模拟器:运行所述极限测试程序产生体系结构弱点因子值;仲裁模块:判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序是否符合要求;机器学习模块:用于运行遗传算法工具优化代码产生器的控制参数。本发明所设计的多核处理器软错误压力测试程序生成系统及方法产生的AVF极限测试程序能够最大限度的检测出某种体系结构中的软错误发生率的最大值,省去了查找、更改基准测试程序的工作。
【专利说明】多核处理器软错误压力测试程序生成系统及方法
【技术领域】
[0001]本发明属于处理器【技术领域】,尤其涉及一种多核处理器软错误压力测试程序生成系统及方法。
【背景技术】
[0002] 摩尔定律指出,当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。但每种新技术的产生,都会带来新的技术问题,阻碍新兴技术的推广与应用。“软错误”就是在制造工艺尺寸不断缩小的情况下产生的一种“瞬时错误”。这种错误使处理器的发展面临严峻的挑战,使处理器变得脆弱,更易受到环境的影响。
[0003]这种“瞬时错误”是由数字电路中的某一位的翻转所引起的,而翻转的发生则归咎于空间中存在的微小粒子,如宇宙射线的中子和包装材料中产生的α粒子。当这些粒子穿过半导体设备的时候会产生电子空洞,当产生的电子空洞达到一定数量后就会导致逻辑设备的状态发生翻转。这些逻辑设备包括寄存器,静态存储单元,逻辑门等。这种错误并不会导致设备的永久性失效,因此我们称之为“瞬时错误”,或者叫“软错误”(soft eiror)。
[0004]研究表明“软错误”的发生与宇宙粒子的流通密度和物理设备的几何尺寸相关。在不同的环境中宇宙粒子的流通密度不同从而会导致硬件设备的错误率出现差异,进而影响到软错误的发生率。与此同时,单个芯片上单位面积的晶体管数量的增加,虽然增加了设备的性能,但一定程度上增加了软错误的发生率。因为更小尺寸的晶体管更容易在上述粒子的轰击下翻转,在16纳米的工艺上,软错误的发生率是180纳米工艺上的100倍。
[0005]为了详细的研究、检测软错误产生的原因,使得处理器的能耗和性能达到一个合理的平衡,Shubhendu S.Mukherjee 等人提出一种 ArchitectedVulnerability Factor(AVF,体系结构弱点因子)模型分析方法。AVF指的是某个结构单元受宇宙射线影响出现错误,这种错误对程序的输出结果产生影响的可能性。
[0006]在微处理器的结构体单元中,并不是每一个软错误都会对程序的输出结果产生影响。因此,针对处理器的结构单元,我们称那些导致程序的输出结果产生错误的软错误发生的可能性为Architected Vulnerability Factor(AVF)0显然,不同的结构单元的中的AVF的大小不一样,基本范围是在0%-100%之间。
[0007]在AVF 值的计算中,引入 Architecturally Correct Execution(ACE,体系结构正确执行)概念,跟踪处理器所有结构中的状态位来计算AVF的值。其中ACE bits指的是处理器的结构单元中的某些数据位,当该存储单元发生软错误致使数据位发生改变时,会对程序的输出结果产生错误影响。而其他的数据位虽然会因为软错误的影响出现改变,但是不会对程序的输出结果产生影响,称之为un-ACE bits。对于AVF的值进行计算时,假定晶体管受宇宙射线影响发生翻转的概率一定,处理器结构单元的AVF值指的是具体某个时刻该存储单元中ACE bits所占有的比例大小。
[0008]由于确定某个数据位是否为ACE bits困难性很大,所以在计算某个结构单元的AVF值时,首先假定结构单元中所有的数据位均为ACE bits,然后通过分析得出的un-ACEbits所占有的比例,然后算得ACE bits所占有的比例值,也就是AVF的值。
[0009]在单核处理器领域,基于AVF的软错误的检测模型中,能准确的检测出某个具体测试程序发生软错误概率值的大小。但是,要想知道处理器发生软错误的概率范围值,必须检测多组测试程序,增加了测试的困难。而且,不同的处理器结构,所选择的测试程序也会不同。
[0010]从Christopher Weaver等人提出的减小软错误发生率的方法中,我们知道处理器结构中影响软错误发生率的因素,了解如何消除软错误检测机制中对软错误的误判。但是,该方法虽然实现对软错误率最大值的检测,但是其只是针对某个具体的结构单元而言,如指令队列、存储队列等。对于整个处理器的软错误的发生率,它只是简单的将所有单个单元测试的软错误发生率的值累加,这样得出的软错误发生率的最大值就会很片面,而且不能真实的反映某个时刻处理器软错误发生率的最大值。
[0011]为了能够高效的测出处理器出现软错误概率的上限值,Arun Arvind Nair利用一种新的技术自动生成能够检测出处理器最大软错误发生率的测试程序。该方法结合Christopher Weaver等人提出的影响软错误发生的影响因子,利用了 AVF模型中软错误的检测方法,产生软错误的极限测试程序。然而,该方法仅限于在单核处理器结构上使用。
[0012]综上所述,现有的软错误的检测、恢复方法主要针对单核处理器,另外,现有的软错误的检测、恢复方法要检测出某种体系结构类型处理器的软错误发生率的范围值,必须用到大量的不同的测试程序,并利用统计学的方法得出软错误发生率的范围值,需要耗费大量的时间进行测试和统计。

【发明内容】

[0013]本发明提供了一种多核处理器软错误压力测试程序生成系统及方法,旨在解决现有的软错误的检测、恢复方法要检测出某种体系结构类型处理器的软错误发生率的范围值,需要使用大量不同的测试程序,且受到体系结构类型限制的技术问题。
[0014]本发明提供的技术方案为:一种多核处理器软错误压力测试程序生成系统,其包括:
[0015]代码产生器:根据预设的控制参数自动产生多核处理器体系结构弱点因子极限测试程序;
[0016]多核处理器模拟器:接收代码产生器产生的多核处理器体系结构弱点因子极限测试程序,运行所述极限测试程序产生体系结构弱点因子值;
[0017]仲裁模块:根据多核处理器模拟器产生的体系结构弱点因子值,判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序是否符合要求;
[0018]机器学习模块:集成有遗传算法工具,用于在仲裁模块判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序不符合要求时,运行所述遗传算法工具,所述工具优化代码产生器的控制参数,使体系结构弱点因子值达到最大。
[0019]本发明的技术方案还包括:所述代码产生器能自动优化其控制参数以使多核处理器体系结构弱点因子值达到最大。
[0020]本发明的技术方案还包括:所述影响因子包括长延迟操作指令、指令并行处理和指令延迟、指令类型组合、前端指令缺失、缓存覆盖率和操作参数设定和共享存储器的一致性。
[0021]本发明的技术方案还包括:所述代码产生器加载控制参数产生多核处理器体系结构弱点因子极限测试程序,所述控制参数加载和产生在内存中完成,所述加载采用间隔性的指令加载技术。
[0022]本发明的技术方案还包括:所述代码产生器向其内存写入数据的循环程序的规模小于重排序缓存(ROB)大小的1.2倍。
[0023]本发明的技术方案还包括:所述遗传算法工具优化的控制参数包括指令组合、指令依赖距离、长延迟算法所占比重、关联指令链的平均长度、寄存器的使用、与二级缓存未命中相关的指令、随机种子、共享数据和代码产生器开关。
[0024]本发明提供的另一技术方案为:一种多核处理器软错误压力测试程序生成方法,包括:
[0025]步骤a:加载代码产生器预设的控制参数,使代码产生器产生多核处理器体系结构弱点因子极限测试程序;
[0026]步骤b:在多核处理器模拟器上运行多核处理器体系结构弱点因子极限测试程序,生成所测试的体系结构的弱点因子值;
[0027]步骤c:判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序是否符合要求,如果不符合要求,将测试程序方案反馈到机器学习模块,机器学习模块运行遗传算法工具来优化代码产生器的控制参数,并重新转入步骤a,如果符合要求,将本次生成的多核处理器体系结构弱点因子极限测试程序作为多核处理器极限测试程序。
[0028]本发明的技术方案还包括:在所述步骤a中,根据多核处理器体系结构弱点因子的影响因子确定预设的控制参数,所述影响因子包括长延迟操作指令、指令并行处理和指令延迟、指令类型组合、前端指令缺失、缓存覆盖率和操作参数设定和共享存储器的一致性。
[0029]本发明的技术方案还包括:所述控制参数加载和产生在内存中完成,所述加载采用间隔性的指令加载技术。
[0030]本发明的技术方案还包括:在所述步骤c中,所述遗传算法工具优化的控制参数包括指令组合、指令依赖距离、长延迟算法所占比重、关联指令链的平均长度、寄存器的使用、与二级缓存未命中相关的指令、随机种子、共享数据和代码产生器开关。
[0031]本发明的技术方案具有如下优点或有益效果:本发明实施例的多核处理器软错误压力测试程序生成系统及方法产生的AVF极限测试程序能够最大限度的检测出某种体系结构中的软错误发生率的最大值,省去了查找、更改基准测试程序的工作,而且能够快速的准确的知道软错误发生率的范围值,并且不受体系结构类型的限制。
【专利附图】

【附图说明】
[0032]附图1是本发明实施例的多核处理器软错误压力测试程序生成系统的结构示意图;
[0033]附图2是本发明实施例的多核处理器软错误压力测试程序生成系统的代码产生器产生AVF极限测试程序的流程示意图;[0034]附图3是本发明实施例的多核处理器软错误压力测试程序生成系统的应用在Intel处理器的示意图;
[0035]附图4是本发明实施例的多核处理器软错误压力测试程序生成方法的流程示意图。
【具体实施方式】
[0036]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0037]请参阅图1,为本发明实施例的多核处理器软错误压力测试程序生成系统的结构示意图。本发明实施例的多核处理器软错误压力测试程序生成系统包括依次相连的代码产生器、多核处理器模拟器、仲裁模块和机器学习模块。其中,连接包括物理连接、电气连接或者信号连接等。
[0038]代码产生器根据机器学习模块输出的控制参数产生AVF极限测试程序,产生的AVF极限测试程序在多核处理器模拟器上进行测试,并产生测试的Fitness值(适合值),该值主要用来反映测试程序对多核体系结构的软错误发生率的影响以及表征解决方案的合理程度。紧接着仲裁模块根据Fitness值,判定代码产生器产生的AVF极限测试程序是否符合要求,如果产生的适合值大于预设的适合值,则表明产生AVF极限测试程序以及达到了要求,对于不符合要求的测试,即产生的适合值小于预设的适合值,其结果将会被反馈到机器学习模块,机器学习模块上运行遗传算法(Genetic Algorithm)工具来优化代码产生器的控制参数,该过程不断的重复进行,直到产生符合要求的测试程序为止。本发明实施例的多核处理器软错误压力测试程序生成系统通过自动生成的AVF极限测试程序,可以使多核处理器结构单元中的AVF的值最大,因而可以获取最大的软错误发生率的最大值。
[0039]请参阅图2,为本发明实施例的多核处理器软错误压力测试程序生成系统的代码产生器产生AVF极限测试程序的流程示意图。代码产生器根据机器学习模块控制程序输出的控制参数,产生AVF极限测试程序。代码产生器产生AVF极限测试程序包括:代码产生器初始化内存空间,以分配足够的内存空间,用于存放内存缓冲区和数据转译查询缓冲区(DTLB)中的每一个数据;进行阵列分配,P=Array [p+i] ;i=i+stride ;通过执行ACE bits的加载和存储来使得每个内存缓冲区单元的ACE bits比例达到最大值,确保缓冲区拥有高AVF值,同样,DTLB的AVF值也是通过加载和存储ACE bits (体系结构正确执行位)的指令来保证的,对于利用到的共享数据单元,也是通过加载和存储AVE bits来保证AVF的最大值,在处理器之间的通信过程中,尽可能的将对结果产生影响的数据写入到共享存储单元;得到指令队列(IQ)中的依赖性指令的占有率,分析指令得到输出结果,并判断i的大小是否小于DTLB的大小,如果小于,则重新返回到阵列分配步骤,如果i的大小大于DTLB的大小,则进一步判断i是否小于最大迭代次数,如果小于,则重新返回到阵列分配步骤,如果大于,则生成测试文档。
[0040]代码产生器知道各个内存缓冲区、共享内存缓冲区和ROB (重排序缓存,ReorderBuffer)的大小以及微体系结构类型。在内部循环中,采用间隔性的指令加载技术,减小二级缓存的命中率。对于向共享单元中写入的数据类型,尽量是对程序的下一步执行长生影响的数据类型。这样即可以防止二级缓存未命中的情况下出现内存级的并行计算,又可以增加共享数据单元中AVF的值。从理论上来说,希望内部循环的大小和ROB的大小相同,并尽可能降低ROB中指令的二级缓存的缺失率,同时又要保证二级缓存的缺失率很高。由于循环程序的规模远大于ROB大小,所以只有小部分的指令不在二级缓存中。实现过程中,允许代码产生器自己决定循环的大小,但是必须小于ROB大小的1.2倍。由于多核处理器体系结构的特殊性,大部分的设定与单核处理器产生AVF极限测试程序的设定相同,但是多核处理器的共享结构单元参数的设定有其自身的特性,如对共享内存的读写顺序等。每一个控制参数值的加载和产生,都必须是在内存中,并保证指令和数据100%为ACE bits,而且程序在执行过程中应该保证存储单元写入的数据,在读取前不允许有新的数据写入。利用以上控制参数,对程序的执行结果进行控制,产生符合要求的程序代码。
[0041]代码产生器根据AVF影响因子确定参数设定,进而产生具有最大AVF值极限测试程序代码。其中,在程序的运行过程中,针对处理器的结构单元,称那些导致程序的输出结果产生错误的软错误发生的可能性为ArchitectedVulnerability Factor (AVF)。处理器结构单元AVF值大小与该存储单元中ACEbits所占有的比例大小成正比。请参阅图3,为本发明实施例的多核处理器软错误压力测试程序生成系统的应用在Intel处理器的示意图。下面将从ACEbits的角度,以Intel Core Duo处理器的结构为例,结合多核处理器的共享结构单元特性,讨论、分析哪些因素影响结构单元的AVF值,哪些指令类型有助于增加内核的AVF的值,产生最终的AVF极限测试程序。影响因子包括:
[0042]I)长延迟操作指令
[0043]长时间延迟的操作,如二级缓存或者DTLB未命中,double类型的除法等,都会导致处理器短时间的停滞。以二级缓存未命中为例,受此影响,ROB会被完全填满,所有的功能单元的操作都会被终止。指令队列中的指令数据也依赖于二级缓存的未命中情况。加载数据队列中的数据只有从内存中加载的数据才能保证是ACE bits。
[0044]2)指令并行处理和指令延迟
[0045]较低的指令集级并行和较高延迟性指令都会增加指令队列(IQ)中AVF的值。在IQ的容量较大的情况下,较高的指令延迟同样会增加R0B、LQ和SQ的AVF值。由于功能单元(FUs)的延迟固定,只有通过扩大IPC的值才能增加它的AVF值。
[0046]3)指令类型组合(Instruction Mix)
[0047]动态指令集分布在功能单元、加载指令队列、和存储队列中,任何一种指令的增加都会导致相应单元中AVF的增加,并使得其他单元中的AVF出现降低。操作位数也会对功能单元、加载队列、存储队列产生影响。
[0048]4)前端指令缺失(Front-End Misses)
[0049]指令缓存的未命中、指令逻辑转移表未命中、取指的低效性都会减少结构单元中可用指令占有率,从而降低所有结构单元AVF的值。当分支预测器发生错误预测时,所有已经取指的指令都将是un-ACE bits,所有的子程序管道都将通过刷新减少队列中的占有率。
[0050]5)缓存覆盖率和操作参数设定(Cache Coverage and Working Set)
[0051]缓存的AVF的值取决于包含有ACE bits的缓冲单元(cache lines)的数量。对缓存中少量cache lines进行访问时,会获得较高的命中率,但是AVF的值较小。相反,当命中率降低时,会获得较好的AVF的值。操作参数的设定取决于cache lines,不同的cachelines数量,对应的操作参数不同。
[0052]6 )共享存储器(共享Cache )的一致性
[0053]多级Cache又弓I发一致性问题。采用何种Cache —致性模型和机制都将对CMP整体性能产生重要影响。保证对共享Cache读写的一致性,是程序产生正确输出结果的必要条件。当处理器正执行保证共享Cache的一致性操作时,Cache某个单元发生了软错误,这样会影响下一阶段某段程序的执行,甚至会产生程序运行结果出错。
[0054]多核处理器结构中ACE bits的占有率(AVF的值)与发射的ACE指令所在的共享结构中的位置,指令执行所在的处理器私有结构单元中的调度过程相关,任何错误预测率、加载和存储比例很高的、缓存未命中率较高的程序都会有很高的占有率。
[0055]机器学习模块上运行遗传算法(Genetic Algorithm)工具来优化代码产生器的控制参数。其中,遗传算法(Genetic Algorithm)工具,简称为GA工具。遗传算法是一种渐进性的机器学习方法,该方法常被用于寻找复杂问题的最优解。形成的每个解决方案,都会计算出一个适合值(Fitness value),该值的大小用来表征解决方案的合理程度。其中,子方案的形成以上一个方案为依据。遗传算法中子方案的长生利用变换、交叉、移植等方法。变换涉及到参数方法的任意变化,交叉包括对已存在方法的交换、结合,移植主要是对参数数量的变更。当产生的子方法均在方法集中,遗传引入一种中断事件,完全的改变最佳方案的分布,防止出现局部最优解。遗传算法重复执行操作,直到子方法没有任何的改进为止。
[0056]遗传算法工具优化的控制参数包括:
[0057]I)指令组合:这些指令是加载、存储、算法指令的一部分,决定了加载队列、存储队列和函数功能单元的占有率。
[0058]2)指令依赖距离(Dependency distance):该参数控制两条相互依赖的指令间的指令数大小,影响着某个指令所处的位置。
[0059]3)长延迟算法所占比重:该参数控制者长延迟算法和短延迟算法指令的比重分布,这个影响到每个指令的平均延迟时长。
[0060]4)关联指令链的平均长度(Average Dependence Chain Length):该参数控制着相互依赖的指令链的平均长度,这些指令链取决于加载操作,并作用于存储操作,影响指令的并行执行。
[0061]5)寄存器的使用(Register Usage):该参数影响着指令存储寄存器占用率,一般的ACE bits决定着寄存器的数量。
[0062]6)与二级缓存未命中相关的指令(Instructions Dependent on L2Miss):该参数控制着受二级缓存未命中影响的IQ中原指令所占有的比例。
[0063]7)随机种子(Random seed):该参数产生一个随机数,用于决定指令代码中长延迟指令和短延迟指令的位置,有利于发现最佳代码表。
[0064]8)共享数据(Shared Data):该参数控制着共享存储单元中共享数据的数目,主要指的是程序在运行过程中,多个处理器之间的通信产生的共享数据。
[0065]9)代码产生器开关(Code Generator Switch):两种代码产生器切换时开关。
[0066]通过这些参数的设定,调整每一次的程序产生方案,子方案不能再优化为止。
[0067]请参阅图4,为本发明实施例的多核处理器软错误压力测试程序生成方法的流程图。本发明实施例的多核处理器软错误压力测试程序生成方法包括:[0068]步骤100:加载代码产生器的控制参数,使代码产生器产生AVF极限测试程序;
[0069]在步骤100中,代码产生器知道各个内存缓冲区、共享内存缓冲区和ROB的大小以及微体系结构类型。在内部循环中,采用间隔性的指令加载技术,减小二级缓存的命中率。每一个控制参数值的加载和产生,都必须是在内存中,并保证指令和数据100%为ACEbits,而且程序在执行过程中应该保证存储单元写入的数据。代码产生器根据AVF影响因子确定参数设定,进而产生具有最大AVF值极限测试程序代码,影响因子包括:
[0070]I)长延迟操作指令
[0071]长时间延迟的操作,如二级缓存或者DTLB未命中,double类型的除法等,都会导致处理器短时间的停滞。以二级缓存未命中为例,受此影响ROB会被完全填满,所有的功能单元的操作都会被终止。指令队列中的指令数据也依赖于二级缓存的未命中情况。加载数据队列中的数据只有从内存中加载的数据才能保证是ACE bits。
[0072]2)指令并行处理和指令延迟
[0073]较低的指令集级并行和较高延迟性指令都会增加指令队列(IQ)中AVF的值。在IQ的容量较大的情况下,较高的指令延迟同样会增加R0B、LQ和SQ的AVF值。由于功能单元(FUs)的延迟固定,只有通过扩大IPC的值才能增加它的AVF值。
[0074]3)指令类型组合(Instruction Mix)
[0075]动态指令集分布在功能单元、加载指令队列、和存储队列中,任何一种指令的增加都会导致相应单元中AVF的增加,并使得其他单元中的AVF出现降低。操作位数也会对功能单元、加载队列、存储队列产生影响。
[0076]4)前端指令缺失(Front-End Misses)
[0077]指令缓存的未命中、指令逻辑转移表未命中、取指的低效性都会减少结构单元中可用指令占有率,从而降低所有结构单元AVF的值。当分支预测器发生错误预测时,所有已经取指的指令都将是un-ACE bits,所有的子程序管道都将通过刷新减少队列中的占有率。
[0078]5)缓存覆盖率和操作参数设定(Cache Coverage and Working Set)
[0079]缓存的AVF的值取决于包含有ACE bits的缓冲单元(cache lines)的数量。对缓存中少量cache lines进行访问时,会获得较高的命中率,但是AVF的值较小。相反,当命中率降低时,会获得较好的AVF的值。操作参数的设定取决于cache lines,不同的cachelines数量,对应的操作参数不同。
[0080]6 )共享存储器(共享Cache )的一致性
[0081 ] 多级Cache又弓I发一致性问题。采用何种Cache —致性模型和机制都将对CMP整体性能产生重要影响。保证对共享Cache读写的一致性,是程序产生正确输出结果的必要条件。当处理器正执行保证共享Cache的一致性操作时,Cache某个单元发生了软错误,这样会影响下一阶段某段程序的执行,甚至会产生程序运行结果出错。
[0082]步骤200:在多核处理器模拟器上运行AVF极限测试程序,生成计算机测试程序的Fitness值(适合值);
[0083]在步骤200中,Fitness值主要用来反映测试程序的对多核体系结构的软错误发生率的影响以及表征解决方案的合理程度。
[0084]步骤300:判断Fitness值是否大于预设的值,如果小于预设值,则进入步骤400,如果大于预设值,则进入步骤500 ;[0085]步骤400:将测试程序方案反馈到机器学习模块,机器学习模块运行遗传算法(Genetic Algorithm)工具来优化代码产生器的控制参数,并重新转入步骤100 ;
[0086]在步骤400中,机器学习模块上运行遗传算法(Genetic Algorithm)工具来优化代码产生器的控制参数。其中,遗传算法(Genetic Algorithm)工具,简称为GA工具。遗传算法是一种渐进性的机器学习方法,该方法常被用于寻找复杂问题的最优解。形成的每个解决方案,都会计算出一个适合值(Fitness value),该值的大小用来表征解决方案的合理程度。其中,子方案的形成以上一个方案为依据。遗传算法中子方案的长生利用变换、交叉、移植等方法。变换涉及到参数方法的任意变化,交叉包括对已存在方法的交换、结合,移植主要是对参数数量的变更。当产生的子方法均在方法集中,遗传引入一种中断事件,完全的改变最佳方案的分布,防止出现局部最优解。遗传算法重复执行操作,直到子方法没有任何的改进为止。
[0087]步骤500:将本次生成的AVF极限测试程序作为多核处理器极限测试程序。
[0088]本发明实施例的多核处理器软错误压力测试程序生成系统及方法具有以下优点[0089]I)适用性强
[0090]不同的体系结构的处理器,相同的测试程序会出现不同的软错误发生率。要检测出某种体系结构类型处理器的软错误发生率的范围值,必须用到大量的不同的测试程序,并利用统计学的方法得出软错误发生率的范围值。本发明实施例的多核处理器软错误压力测试程序生成系统及方法产生的AVF极限测试程序能够最大限度的检测出某种体系结构中的软错误发生率的最大 值。这样不仅省去了查找、更改基准测试程序的工作,而且能够快速的准确的知道软错误发生率的范围值,并且不受体系结构类型的限制。
[0091]2)配置灵活性
[0092]不同的设计者对测试程序的要求不同,有些设计者比较看重缓存的软错误发生率,有些则看重某些寄存器的软错误的发生率,本发明实施例的多核处理器软错误压力测试程序生成系统及方法可以通过手动的设置代码生成器的控制参数,产生符合要求的AVF极限测试程序。
[0093]3)实现高效性
[0094]本发明实施例的多核处理器软错误压力测试程序生成系统及方法能直接针对某种多核体系结构的处理器产生AVF极限测试程序,通过多核体系结构的模拟器,直接检测出AVF极限测试程序的效果值,并可以直接用于真实的多核处理器,这样省去了大量测试程序检测工作。
[0095]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种多核处理器软错误压力测试程序生成系统,其特征在于,包括: 代码产生器:根据预设的控制参数自动产生多核处理器体系结构弱点因子极限测试程序; 多核处理器模拟器:接收代码产生器产生的多核处理器体系结构弱点因子极限测试程序,运行所述极限测试程序产生体系结构弱点因子值; 仲裁模块:根据多核处理器模拟器产生的体系结构弱点因子值,判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序是否符合要求; 机器学习模块:集成有遗传算法工具,用于在仲裁模块判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序不符合要求时,运行所述遗传算法工具,所述工具优化代码产生器的控制参数,使体系结构弱点因子值达到最大。
2.根据权利要求1所述的多核处理器软错误压力测试程序生成系统,其特征在于,所述代码产生器能自动优化其控制参数以使多核处理器体系结构弱点因子值达到最大。
3.根据权利要求2所述的多核处理器软错误压力测试程序生成系统,其特征在于,所述影响因子包括长 延迟操作指令、指令并行处理和指令延迟、指令类型组合、前端指令缺失、缓存覆盖率和操作参数设定,以及共享存储器的一致性。
4.根据权利要求1所述的多核处理器软错误压力测试程序生成系统,其特征在于,所述代码产生器加载控制参数产生多核处理器体系结构弱点因子极限测试程序,所述控制参数加载和产生在内存中完成,所述加载采用间隔性的指令加载技术。
5.根据权利要求4所述的多核处理器软错误压力测试程序生成系统,其特征在于,所述代码产生器向其内存写入数据的循环程序的规模小于重排序缓存(ROB)大小的1.2倍。
6.根据权利要求1所述的多核处理器软错误压力测试程序生成系统,其特征在于,所述遗传算法工具优化的控制参数包括指令组合、指令依赖距离、长延迟算法所占比重、关联指令链的平均长度、寄存器的使用、与二级缓存未命中相关的指令、随机种子、共享数据和代码产生器开关。
7.一种多核处理器软错误压力测试程序生成方法,包括: 步骤a:加载代码产生器预设的控制参数,使代码产生器产生多核处理器体系结构弱点因子极限测试程序; 步骤b:在多核处理器模拟器上运行多核处理器体系结构弱点因子极限测试程序,生成该体系结构弱点因子值; 步骤c:判断代码产生器产生的多核处理器体系结构弱点因子极限测试程序是否符合要求,如果不符合要求,将测试程序的方案反馈到机器学习模块,机器学习模块运行遗传算法工具来优化代码产生器的控制参数,并重新转入步骤a,如果符合要求,将本次生成的多核处理器体系结构弱点因子极限测试程序作为多核处理器极限测试程序。
8.根据权利要求7所述的多核处理器软错误压力测试程序生成方法,其特征在于,在所述步骤a中,根据多核处理器体系结构弱点因子的影响因子确定预设的控制参数,所述影响因子包括长延迟操作指令、指令并行处理和指令延迟、指令类型组合、前端指令缺失、缓存覆盖率和操作参数设定,以及共享存储器的一致性。
9.根据权利要求8所述的多核处理器软错误压力测试程序生成方法,其特征在于,所述控制参数加载和产生在内存中完成,所述加载采用间隔性的指令加载技术。
10.根据权利要求7所述的多核处理器软错误压力测试程序生成方法,其特征在于,在所述步骤c中,所述遗传算法工具优化的控制参数包括指令组合、指令依赖距离、长延迟算法所占比重、关联指令链的平均长度、寄存器的使用、与二级缓存未命中相关的指令、随机种子、共享数据和代 码产生器开关。
【文档编号】G06F11/36GK103902448SQ201210584290
【公开日】2014年7月2日 申请日期:2012年12月28日 优先权日:2012年12月28日
【发明者】喻之斌, 须成忠, 卓文伟 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1