基于主核控制流信息的处理器运行差错检测方法及系统技术方案

技术编号:36295739 阅读:16 留言:0更新日期:2023-01-13 10:10
本发明专利技术提出一种基于主核控制流信息的处理器运行差错检测方法及系统,包括:在主核运行的过程中将程序段的控制流信息以控制流表的形式保存下来,以在检查核运行的过程中,使用该控制流信息来指导检查核的分支预测,来提高检查核的运行效率。对于程序段,主核与检查核应该有相同的控制流,因此有使用主核控制流信息指导检查核分支预测有100%的分支预测准确率,能够消除分支预测失败的开销,从而提高检查核的性能。检查核的性能。检查核的性能。

【技术实现步骤摘要】
基于主核控制流信息的处理器运行差错检测方法及系统


[0001]本专利技术属于微处理器可靠性设计领域,使用主核的控制流信息指导检查核分支预测,提高检查核性能,降低差错检测延时。

技术介绍

[0002]汽车半导体和车载信息产业革命以来,每辆汽车上的电子控制单元(ECU)越来越多,对汽车电子可靠性的要求也越来越高。但是汽车芯片面临着高温、高湿等严峻复杂的工作环境,使得车载处理器与一般电子系统相比更加频繁地产生差错,使汽车芯片的可靠性面临严峻的考验。双核锁步通过两个处理器核运行相同的程序,并对两个核的输出进行比较来检测,有成倍的面积、功耗开销,由于其较高的差错检测速度和差错覆盖率能够满足汽车芯片可靠性的要求。相比于上述双核锁步同构的设计,异构并行差错检测通过使用一系列低性能的检查核并行重复运行高性能主核的程序段进行差错检测。为了提高性能,芯片的面积和功耗呈超线性增长,这些低性能核的面积、功耗之和小于高性能核,能够以较低的功耗、面积开销,实现与双核锁步近似的差错覆盖率。
[0003]使用多个低功耗的顺序核(检查核)并行运行高性能乱序核(主核)的程序段,来实现主核运行时的差错检测。该方法将主核运行的程序分为多个程序段,将各个程序段分配给不同的检查核重复运行。每个检查核均为小核,其性能低于主核性能,但由于多个检查核能够并行运行,其总体性能可以匹配主核的性能。在顺序处理器中,通常会使用简单的分支预测器,通常包括转移目标缓冲器(BTB)、模式历史表(PHT)、返回地址栈(RAS),分支预测器需要根据之前分支指令的分支结果来对分支目标进行预测。由于每个检查核每次分配的程序段之间都不是连续的,这将降低分支预测的准确性,高错误率的分支预测会降低检查核的性能。

技术实现思路

[0004]由于主核运行完程序段,检查核才开始运行,在检查核运行程序段之前实际已经可以知道程序段的控制流信息,因此可以使用主核的控制流信息来指导检查核的分支预测,加快差错检测,提高检查核运行的性能。
[0005]具体来说,本专利技术针对上述异构并行差错检测中检查核分支预测准确率低,从而降低检查核性能的问题,提出一种基于主核控制流信息的处理器运行差错检测方法,其中包括:
[0006]步骤1、获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;
[0007]步骤2、提取该主核运行程序段产生的加载存储日志和控制流,该加载存储日志包括加载指令对应的加载地址和加载数据,该控制流表包括控制流指令对应的目标地址和程序计数器值;
[0008]步骤3、程序段开始运行时将主核的状态复制给检查核,使该检查核以与该主核相
同的状态开始运行,在该检查核运行该程序段的过程中,对于加载指令,直接访问该加载存储日志,获取加载数据作为加载结果,并判断该加载结果的地址是否和该加载存储日志中加载地址相同,若不同则表示产生差错;对于分支预测,该检查核直接访问该控制流表,获取当前控制流指令的目标地址作为分支预测结果,并判断该分支预测结果是否和该控制流表中当前控制流指令对应的目标地址相同,若不同则表示发生差错;当该检查核结束运行该程序段,判断该检查核结束运行该程序段时的状态是否和该主核结束运行该程序段时的状态相同,若不同则表示发生差错。
[0009]所述的基于主核控制流信息的处理器运行差错检测方法,其中该步骤3中程序段的生成过程包括:当主核运行待执行程序时,每当提交加载指令,将加载地址与加载数据保存到当前检查核对应的该加载存储日志中,当加载存储日志装满时,则将主核当前状态作为检查点划分程序段;每当提交控制流指令时,则将控制流指令的程序计数器值和目标地址保存到该控制流表中,当该控制流表装满时,则将主核当前状态作为检查点划分程序段。
[0010]所述的基于主核控制流信息的处理器运行差错检测方法,其中该步骤3包括:
[0011]每当该主核提交控制流指令时,将其程序计数器与目标地址值加入对应的检查核的控制流指令目标队列;该检查核每次取指时,比较控制流指令目标队列的头指针所指项的程序计数器值与取值单元的程序计数器值,相等则将目标地址作为分支预测结果给取指单元,作为取指单元下一次取指的地址,将控制流指令目标队列的指针后移。
[0012]本专利技术还提出了一种基于主核控制流信息的处理器运行差错检测系统,其中包括:
[0013]初始模块,用于获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;
[0014]控制流提取模块,用于提取该主核运行程序段产生的加载存储日志和控制流,该加载存储日志包括加载指令对应的加载地址和加载数据,该控制流表包括控制流指令对应的目标地址和程序计数器值;
[0015]检测模块,用于在程序段开始运行时将主核的状态复制给检查核,使该检查核以与该主核相同的状态开始运行,在该检查核运行该程序段的过程中,对于加载指令,直接访问该加载存储日志,获取加载数据作为加载结果,并判断该加载结果的地址是否和该加载存储日志中加载地址相同,若不同则表示产生差错;对于分支预测,该检查核直接访问该控制流表,获取当前控制流指令的目标地址作为分支预测结果,并判断该分支预测结果是否和该控制流表中当前控制流指令对应的目标地址相同,若不同则表示发生差错;当该检查核结束运行该程序段,判断该检查核结束运行该程序段时的状态是否和该主核结束运行该程序段时的状态相同,若不同则表示发生差错。
[0016]所述的基于主核控制流信息的处理器运行差错检测系统,其中该检测模块中程序段的生成过程包括:当主核运行待执行程序时,每当提交加载指令,将加载地址与加载数据保存到当前检查核对应的该加载存储日志中,当加载存储日志装满时,则将主核当前状态作为检查点划分程序段;每当提交控制流指令时,则将控制流指令的程序计数器值和目标地址保存到该控制流表中,当该控制流表装满时,则将主核当前状态作为检查点划分程序段。
[0017]所述的基于主核控制流信息的处理器运行差错检测系统,其中该检测模块用于:
[0018]每当该主核提交控制流指令时,将其程序计数器与目标地址加入对应的检查核的控制流指令目标队列;该检查核每次取指时,比较控制流指令目标队列的头指针所指项的程序计数器值与取值单元的程序计数器值,相等则将目标地址作为分支预测结果给取指单元,作为取指单元下一次取指的地址,将控制流指令目标队列的指针后移。
[0019]本专利技术还提出了一种存储介质,用于存储执行所述任意一种基于主核控制流信息的处理器运行差错检测方法的程序。
[0020]本专利技术还提出了一种数据处理装置,包括存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,该数据处理装置执行共享主核控制流信息的异构并行差错检测。
[0021]本专利技术还提出了一种客户端,用于所述的任意一种基于主核控制流信息的处理器运行差错检测系统。
[0022]由以上方案可知,本专利技术的优点在于:
[0023]本专利技术提出的一种使用主核控制流信息指导检查核分支预本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于主核控制流信息的处理器运行差错检测方法,其特征在于,包括:步骤1、获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;步骤2、提取该主核运行程序段产生的加载存储日志和控制流,该加载存储日志包括加载指令对应的加载地址和加载数据,该控制流表包括控制流指令对应的目标地址和程序计数器值;步骤3、程序段开始运行时将主核的状态复制给检查核,使该检查核以与该主核相同的状态开始运行,在该检查核运行该程序段的过程中,对于加载指令,直接访问该加载存储日志,获取加载数据作为加载结果,并判断该加载结果的地址是否和该加载存储日志中加载地址相同,若不同则表示产生差错;对于分支预测,该检查核直接访问该控制流表,获取当前控制流指令的目标地址作为分支预测结果,并判断该分支预测结果是否和该控制流表中当前控制流指令对应的目标地址相同,若不同则表示发生差错;当该检查核结束运行该程序段,判断该检查核结束运行该程序段时的状态是否和该主核结束运行该程序段时的状态相同,若不同则表示发生差错。2.如权利要求1所述的基于主核控制流信息的处理器运行差错检测方法,其特征在于,该步骤3中程序段的生成过程包括:当主核运行待执行程序时,每当提交加载指令,将加载地址与加载数据保存到当前检查核对应的该加载存储日志中,当加载存储日志装满时,则将主核当前状态作为检查点划分程序段;每当提交控制流指令时,则将控制流指令的程序计数器值和目标地址保存到该控制流表中,当该控制流表装满时,则将主核当前状态作为检查点划分程序段。3.如权利要求1所述的基于主核控制流信息的处理器运行差错检测方法,其特征在于,该步骤3包括:每当该主核提交控制流指令时,将其程序计数器与目标地址加入对应的检查核的控制流指令目标队列;该检查核每次取指时,比较控制流指令目标队列的头指针所指项的程序计数器值与取值单元的程序计数器值,相等则将目标地址作为分支预测结果给取指单元,作为取指单元下一次取指的地址,将控制流指令目标队列的指针后移。4.一种基于主核控制流信息的处理器运行差错检测系统,其特征在于,包括:初始模块,用于获取具有主核以及检查核的处理系统,且该主核与该检查核有相同的指令集架构;控制流提取模块,用于提取该主核运行程序段产生的加载存储日志和控制流,...

【专利技术属性】
技术研发人员:吕浙帆王天成李华伟李晓维
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1