本发明专利技术提出一种控制运行时钟周期的处理器运行差错检测方法和系统,在程序段在顺序处理器核运行的时间与该程序段中的各种指令的数量呈一定的线性关系。因此本发明专利技术可将程序段中的指令进行分类,统计各类指令在检查核运行所需的时间。在主核运行的过程中,根据指令的种类和数量对程序段在检查核的运行时间进行预测,当预测的时间大于设定的值时,将其作为检查点划分程序段,控制检查核检查程序段的时间,减少差错检测的延时。减少差错检测的延时。减少差错检测的延时。
【技术实现步骤摘要】
控制运行时钟周期的处理器运行差错检测方法及系统
[0001]本专利技术属于微处理器可靠性设计领域,在复制寄存器过程中暂停物理寄存器释放,并预测程序段所需的运行时钟周期划分程序段,降低异构并行差错检测对主核性能的影响并降低差错检测的延时。
技术介绍
[0002]汽车半导体和车载信息产业革命以来,每辆汽车上的电子控制单元(ECU)越来越多,对汽车电子可靠性的要求也越来越高。但是汽车芯片面临着高温、高湿等严峻的工作环境,使得车载处理器与一般电子系统相比更加频繁地产生差错,使汽车芯片的可靠性面临严峻的考验。双核锁步通过两个处理器核运行相同的程序,并对两个核的输出进行比较来检测,有成倍的面积、功耗开销,由于其较高的差错检测速度和差错覆盖率能够满足汽车芯片可靠性的要求。异构并行差错检测通过使用一系列低性能的检查核并行重复运行高性能主核的程序段进行差错检测。为了提高性能,芯片的面积和功耗呈超线性增长,这些低性能核的面积、功耗之和小于高性能核,能够以较低的功耗、面积开销,实现与双核锁步近似的差错覆盖率。
[0003]每次复制寄存器状态需要暂停提交指令会影响主核性能。异构并行差错需要将高性能主核的程序划分为多个程序段,分配给检查核重复运行进行差错检测。因此在每个程序段的开始与结束都需要将主核当前状态复制给检查核,使得检查核能够以相同的状态开始运行,并在运行完之后比较寄存器状态实现差错检测。在复制寄存器堆状态时,由于面积功耗的开销,不能设置过多的读端口,因此需要主核暂停提交指令多个周期,将寄存器堆装填复制给检查核,主核暂停提交指令会影响它的性能。而程序段划分的粒度决定了主核暂停的频率,为了减小对主核的影响,通常需要设置较大的程序段,以减小主核暂停提交的频率,从而降低差错检测对主核性能的影响。与此同时,对于某些差错需要检查核将程序段执行完比较寄存器状态才能够将其检测出来,而由于检查核性能较低,较大的程序段需要较长的运行时间,将会带来较大的差错检测延时。
[0004]异构并行差错检测的实现还需要考虑如何划分程序段以设置合适的检查点。为了检查核能够重复运行程序段,主核会将加载(Load)/存储(Store)指令的数据与地址保存到日志中,对于加载指令,检查核直接从日志中获取数据作为输入,对于存储指令,将日志中的数据与地址进行比较进行差错检测。每当当前检查核的日志装满或者主核提交足够的指令,需要将当前状态作为检查点划分程序段。由于Load/Store的在程序段中出现的频率不同,装满日志时每个程序段的指令数量不同,并且程序段中的每条指令运行时间也不同,比如乘除法指令比普通的加法指令需要更多的执行周期,浮点运算指令则需要更多的执行周期。因此,不同的程序段,会由于其指令数量、指令种类的不同需要运行不同的时间。由于检查核的性能远低于主核,对于某些差错,需要检查核运行完整个程序段,最后对程序段结束时的寄存器状态进行比较才能够被检测出来,导致差错检测有过大的延时,无法满足关键系统的实时性需求。
技术实现思路
[0005]本专利技术为了降低异构并行差错检测对高性能主核性能的影响,减少差错检测的延时,提出了在复制寄存器时,暂停物理寄存器释放的方法,将检查点状态保存在物理寄存器堆中,从而无需主核暂停提交指令,允许设置更小的程序段,并根据预测的程序段运行时间划分程序段,使得差错检测的延时可控。
[0006]针对现有技术的不足,本专利技术提出一种控制运行时钟周期的处理器运行差错检测方法,其中包括:
[0007]步骤1、获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;
[0008]步骤2、当该主核运行待执行程序时,根据该主核提交的指令种类和数量对程序段在该检查核的运行时钟周期进行预测,当该运行时钟周期大于阈值,则将该主核当前的状态作为检查点划分程序段;
[0009]步骤3、将该主核开始运行该程序段时的状态复制给该检查核,使该检查核以与该主核相同的状态开始运行,在该检查核运行该程序段的过程中,对于加载指令,直接访问该加载存储日志,获取加载数据作为加载结果,并判断该加载结果的地址是否和该加载存储日志中加载地址相同,若不同则表示产生差错;当该检查核结束运行该程序段,判断该检查核结束运行该程序段时的状态是否和该主核结束运行该程序段时的状态相同,若不同则表示发生差错。
[0010]所述的控制运行时钟周期的处理器运行差错检测方法,其中该步骤2还包括:
[0011]每当提交加载指令,将该加载指令对应的加载地址与加载数据保存到当前该检查核对应的加载存储日志中,当写满该加载存储日志时,将主核当前状态作为检查点划分程序段。
[0012]所述的控制运行时钟周期的处理器运行差错检测方法,其中该主核的重命名部件中包括:当前状态表、检查点状态表、暂停队列;
[0013]其中该当前状态表,用于将记录当前逻辑寄存器所对应的物理寄存器;该检查点状态表,用于保存检查点的各个逻辑寄存器与物理寄存器的对应关系;该暂停队列,用于在将该主核状态复制给该检查核的过程中,暂停释放检查点状态中各物理寄存器,并将其保存在暂停队列中,直到复制结束再释放。
[0014]本专利技术还提出了一种控制运行时钟周期的处理器运行差错检测系统,其中包括:
[0015]初始模块,用于获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;
[0016]预测模块,用于在该主核运行待执行程序时,根据该主核提交的指令种类和数量对程序段在该检查核的运行时钟周期进行预测,当该运行时钟周期大于阈值,则将该主核当前的状态作为检查点划分程序段;
[0017]检测模块,用于将该主核开始运行该程序段时的状态复制给该检查核,使该检查核以与该主核相同的状态开始运行,在该检查核运行该程序段的过程中,对于加载指令,直接访问该加载存储日志,获取加载数据作为加载结果,并判断该加载结果的地址是否和该加载存储日志中加载地址相同,若不同则表示产生差错;当该检查核结束运行该程序段,判断该检查核结束运行该程序段时的状态是否和该主核结束运行该程序段时的状态相同,若
不同则表示发生差错。
[0018]所述的控制运行时钟周期的处理器运行差错检测系统,其中该预测模块还用于:
[0019]每当提交加载指令,将该加载指令对应的加载地址与加载数据保存到当前该检查核对应的加载存储日志中,当写满该加载存储日志时,将主核当前状态作为检查点划分程序段。
[0020]所述的控制运行时钟周期的处理器运行差错检测方法,其中该主核的重命名部件中包括:当前状态表、检查点状态表、暂停队列;
[0021]其中该当前状态表,用于将记录当前逻辑寄存器所对应的物理寄存器;该检查点状态表,用于保存检查点的各个逻辑寄存器与物理寄存器的对应关系;该暂停队列,用于在将该主核状态复制给该检查核的过程中,暂停释放检查点状态中各物理寄存器,并将其保存在暂停队列中,直到复制结束再释放。
[0022]本专利技术还提出了一种存储介质,用于存储执行所述任意一种控制运行时钟周期的处理本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种控制运行时钟周期的处理器运行差错检测方法,其特征在于,包括:步骤1、获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;步骤2、当该主核运行待执行程序时,根据该主核提交的指令种类和数量对程序段在该检查核的运行时钟周期进行预测,当该运行时钟周期大于阈值,则将该主核当前的状态作为检查点划分程序段;步骤3、将该主核开始运行该程序段时的状态复制给该检查核,使该检查核以与该主核相同的状态开始运行,在该检查核运行该程序段的过程中,对于加载指令,直接访问该加载存储日志,获取加载数据作为加载结果,并判断该加载结果的地址是否和该加载存储日志中加载地址相同,若不同则表示产生差错;当该检查核结束运行该程序段,判断该检查核结束运行该程序段时的状态是否和该主核结束运行该程序段时的状态相同,若不同则表示发生差错。2.如权利要求1所述的控制运行时钟周期的处理器运行差错检测方法,其特征在于,该步骤2还包括:每当提交加载指令,将该加载指令对应的加载地址与加载数据保存到当前该检查核对应的加载存储日志中,当写满该加载存储日志时,将主核当前状态作为检查点划分程序段。3.如权利要求1所述的控制运行时钟周期的处理器运行差错检测方法,其特征在于,该主核的重命名部件中包括:当前状态表、检查点状态表、暂停队列;其中该当前状态表,用于将记录当前逻辑寄存器所对应的物理寄存器;该检查点状态表,用于保存检查点的各个逻辑寄存器与物理寄存器的对应关系;该暂停队列,用于在将该主核状态复制给该检查核的过程中,暂停释放检查点状态中各物理寄存器,并将其保存在暂停队列中,直到复制结束再释放。4.一种控制运行时钟周期的处理器运行差错检测系统,其特征在于,包括:初始模块,用于获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;预测模块,用于在该主核运行待执行程序时,根据该主核提交的指令...
【专利技术属性】
技术研发人员:吕浙帆,王天成,李华伟,李晓维,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。