检查微处理器或微控制器的计算机核心的方法

文档序号:6428184阅读:158来源:国知局
专利名称:检查微处理器或微控制器的计算机核心的方法
技术领域
本发明涉及检查微处理器或微控制器的计算机核心的按规定的功能的一种方法。该计算机核心包含多个分别具有各多个晶体管的门电路。在该方法中在计算机程序在微处理器或微控制器上的按规定执行期间周期性地进行自检。在自检的范围内检查计算机核心的门电路的规定的功能。
此外本发明涉及用于检查微处理器或微控制器的计算机核心的按规定的功能的一种自检。该计算机核心包含多个分别具有多个晶体管的门电路。在计算机程序在微处理器或微控制器上的按规定执行期间可以以周期的运行中实施该自检。对此该自检检查计算机核心的门电路的按规定的功能。
最后本发明涉及具有一个计算机核心的微处理器或微控制器,该计算机核心具有多个分别具有多个晶体管的门电路。在计算机核心上可以实施用于检查计算机核心的按规定的功能的自检。可以在计算机程序在微处理器或微控制器上的按规定执行期间以周期的运行实施该自检。对此该自检检查计算机核心的门电路的按规定的功能。
技术状况计算机核心的自检也称为内置自检(BIST)。不同的自检方法例如公开于DE 4305288 A1和Bhl.E及其他人发表于InternationalTest Conference,Paper24.1,567至577页,0-7803-4209-7/97,1997 IEEE的文章“The Fail-Stop Controller AEll”。本发明主要涉及该出版文献。
“计算机程序在微处理器或微控制器上的按规定执行”是指,例如在控制设备的微处理器或微控制器上执行控制程序,通过该控制程序才使微处理器或者控制设备能够实现其控制功能。微处理器或微控制器的计算机核心也称为中央处理器(CPU)或核心。
从汽车控制设备领域已知为了在控制设备的按规定运行期间检查控制设备的计算机核心的功能,预先规定具有相同计算性能的两个计算机。这也被称为冗余的计算机方案。在两个计算机上执行控制或者调节算法。两个计算机的控制或者调节算法的结果彼此不断比较。在结果彼此出现显著偏差的情况下在两个计算机中的一个计算机中有错误并且断开整个系统,以便避免错误的控制或者调节。
可是在这个从现技术状况中已知的、用于检查控制设备的微处理器或微控制器的计算机核心的按规定的功能的方法中缺点是,在控制设备的按规定运行中、也就是说在执行控制或者调节程序时才出现的错误导致在一个时刻断开控制设备,在该时刻控制或者调节功能可能是特别重要的。在对汽车的稳定调节中,例如如果汽车有滑向一旁的危险,那该调节是有用的。如果在这种情况下检测到控制设备的计算机核心发生错误并断开该控制设备,因此该调节不起作用,这可能导致危险的情况直至汽车滑向一旁。
为了消除这些缺点,研制了例如从DE 195 00 188 A1中公开的所谓分集计算机方案,在该方案中第一计算机、所谓的算法计算机性能高于第二计算机、所谓的监控计算机。在算法计算机上执行真正的控制或者调节算法和附加的校验计算。如同控制或调节算法,在同一微处理器或微控制器上、可是在不同的时间分段中实施校验计算。在每次调用校验计算时检查计算机核心的确定范围、也就是说确定的门电路的按规定的功能。如果该算法计算机没有按规定运行,也就是说没有执行控制或者调节程序,这时利用校验计算也可以识别算法计算机的计算机核心的错误。该校验计算可以被称为是一种自检。
在监控计算机上执行同样的校验计算。校验计算的结果被相互比较,在结果相互出现显著偏差的情况下在算法计算机的计算机核心内有错误并且断开该算法计算机,以便避免错误的控制或者调节。借助于该校验计算可以达到算法计算机的计算机核心的所有门电路的80%至85%的检测覆盖。
必须依然根据在监控计算机上控制或者调节算法的模拟和模拟的结果与算法计算机的实际结果的比较检查算法计算机的计算机核心的剩余15%至20%的门电路的按规定的功能。因此对于计算机核心的这15%至20%的门电路依然存在上述问题,也许在算法的按规定运行中、也就是说例如在执行控制或者调节程序时才可能出现并识别故障。此外在监控计算机中控制或者调节算法的模拟导致,在改变真正的控制或者调节算法时也必须改变模型。也就是有两组开发人员不断进行工作,以便一方面改进真正的控制或者调节算法并且另一方面改进模型。这意味着可观的人工费用和成本。
本发明的任务是,如此检查微处理器或微控制器的计算机核心的按规定的功能,以致避免上述缺点。尤其是该功能检查应也能及早检测在微处理器或微控制器的按规定运行中才出现的这种错误,并且尽可能放弃使用控制或者调节算法的模型。
为了解决该任务建议以开始提到的那种方法为出发点,在执行自检期间至少检查计算机核心的、其状态影响计算机程序在微处理器或微控制器上的按规定执行的那些门电路。
本发明的优点根据本发明已认识到,在计算机核心中存在一些门电路,其状态不影响计算机程序在微处理器或微控制器上的按规定执行。例如固定在0或固定在1的这些门电路错误因此绝对不影响计算机程序的执行并因此不影响微处理器或微控制器的按规定的功能。此外认识到,不必由自检检查这些门电路,以便可以确保微处理器的按规定的功能。
对于本发明重要的是,首先确定自检不包含的所有门电路,并且证明,这些门电路的状态是不重要的,也就是说不影响确定的计算机程序在微处理器或微控制器上的按规定执行。根据本发明虽然没有实现完全的计算机核心的所有门电路的检测覆盖,可是检查了所有重要的门电路。在本发明中可以放弃用于检查自检没有覆盖的门电路的、计算机程序的模拟、例如控制或者调节算法的模拟,因为这些门电路本来就不影响计算机程序的按规定执行。
根据本发明的有益的改进方案建议,通过-完成计算机核心的自检方案;-检查,计算机核心的自检方案在执行期间不检查的那个门电路的状态是否影响计算机程序在微处理器或微控制器上的按规定执行;-假如计算机核心的至少一个门电路的状态影响计算机程序在微处理器或微控制器上的按规定执行,自检方案在执行期间不检查该门电路,则通过如此扩展自检方案,以致附加地至少检查计算机核心的,自检方案没有检查的并且其状态影响计算机程序在微处理器或微控制器上的按规定执行的那些门电路,完成完善的自检;以及-假如自检方案在执行期间不检查的、计算机核心的门电路的状态不影响计算机程序在微处理器或微控制器上的按规定执行,则考虑该自检方案作为完善的自检。
根据本发明的优选实施形式建议,在这个检查之前,即计算机核心的、自检方案在执行期间不检查的这些个门电路的状态是否影响计算机程序在微处理器或微控制器上的按规定执行,确定,自检方案在执行期间不检查计算机核心的那些门电路。
有益地在一个仿真器上实施这个确定,即自检方案在执行期间不检查计算机核心的那些门电路,在该仿真器上至少部分模仿计算机核心的门电路结构。
优选地在一个仿真器上实施这个检查,即计算机核心的、自检方案在执行期间不检查的那些门电路的状态是否影响计算机程序在微处理器或微控制器上的按规定执行,在该仿真器上至少部分模仿计算机核心的门电路结构。
作为本发明任务的另外的解决方案,以开始提到的那种自检为出发点建议,自检在执行期间至少检查计算机核心的、其状态影响计算机程序在微处理器或微控制器上的按规定执行的那些门电路。
作为本发明任务的另外的解决方案,以开始提到的那种微处理器或微控制器为出发点建议,在微处理器或微控制器上包含的自检在执行期间至少检查计算机核心的、其状态影响计算机程序在微处理器或微控制器上的按规定执行的那些门电路。
附图从本发明的、在图中描述的实施例的下面说明中得出本发明的另外的特征、应用可能性和优点。在此所有被说明的或被描述的特征单独地或任意的组合、独立于在权利要求中对它们的概括或它们的反关系以及独立于在说明书中或者在图中的表达或图示形成本发明的对象。图指出

图1用于实现根据本发明的、检查微处理器按规定的功能的方法的分集计算机方案;图2用于实现从现技术状况中已知的、检查微处理器按规定的功能的方法的分集计算机方案;图3根据本发明的方法的流程图;和图4根据本发明的微处理器。
实施例的说明在图4中以具有参考符号30的整体表示根据本发明的微处理器。经过一个适当的数据传输连接35微控制器30与主存储器31并与一个输入/输出单元32连接。主存储器31用于存储计算量和计算机程序。通过输入/输出单元32从外围设备读入数据并向外围设备输出数据。
微处理器30具有一个计算机核心36,其也被称为中央处理器(CPU)或核心。微处理器30包含一个控制器33和运算单元34。控制器33承担在处理器30内部的过程控制以及控制主存储器31和输入/输出单元32。该控制器促使从主存储器31中读出计算机程序的指令、判读该指令并控制该指令的执行。从主存储器31中读出必须处理的运算数或该运算数经过输入/输出单元32被输入运算单元34中,结果被写入主存储器31中或经过输入/输出单元32被输出。对此运算单元34承担运算数和结果的中间存储并实施该运算数的逻辑与算术运算。
除了外部的主存储器31外,该微处理器30本身具有一些存储单元。其中一部分被预先规定用于在处理器30内部的特殊过程并且对于机器程序或者汇编编程不可以被直接支配。另外的部分象主存储器31的存贮单元一样可以被明确地调用并因此对程序员来说是可见的。
计算机核心36的电路主要由许多晶体管(没有示出)组成。多个晶体管可以结合成为门电路。门电路的输出端被称作节点。节点可以被描述为在每个时刻具有明确行为的计算机核心电路的点。一个计算机核心包含例如大约100000个分别具有大约10至100个晶体管的门电路。
从Bhl.E及其他人发表于International Test Conference,Paper 24.1,567至577页,0-7803-4209-7/97,1997 IEEE的文章“The Fail-Stop Controller AEll”中公开了一个微控制器,在该微控制器上同样可以实施根据本发明的方法。强调涉及该出版文献。
在图2中描述了一个分集的计算机方案,比如公开于DE 195 00 188A1的方案。强调涉及该出版文献。该计算机方案用于实施从现技术状况中已知的、用于检查汽车控制设备的微控制器30的计算机核心36的按规定的功能的方法。
在该分集计算机方案中预先规定两个计算机。第一计算机、所谓的算法计算机1性能高于第二计算机、所谓的监控计算机2。在算法计算机1上执行具有真正控制或者调节算法3的计算机程序。此外在算法计算机1上实施校验计算(CR)4。在校验计算4中在限定的范围内微处理器30执行检查程序,经过输出单元32截取并分析利用输出信号。由算法计算机1在时间分段内平行于真正的控制或者调节算法3的实施联机执行作为计算机程序的一部分、软件方式实现的校验计算4。当在时间分段内每次调用校验计算时检查计算机核心36的确定范围、也就是说确定的门电路的按规定的功能。对于校验计算4的完全运行在多个时间分段内调用校验计算。在运行校验计算之后不是所有的计算机核心36的门电路被检查到。通常在校验计算中达到算法计算机1的计算机核心36的所有门电路的大约80%至85%的检查覆盖。
在监控计算机2上同样实施校验计算(CR)5。对此检查模拟计算机2的计算机核心36的门电路的按规定的功能。在算法计算机1上实施的校验计算4的结果与在模拟计算机2上实施的校验计算5的结果彼此进行比较。在结果彼此出现显著偏差的情况下,在算法计算机1的计算机核心36中有错误并且断开该算法计算机,以便避免错误的控制或者调整。
如果算法计算机没有按规定运行、也就是说如果没有执行控制或者调整程序,那么利用校验计算也可以识别出算法计算机1的计算机核心36的错误。校验计算可以称为一种自检。
必须根据在监控计算机2上的计算机程序、例如控制或者调节算法3的模型6和监控计算机2的模拟结果与算法计算机1的实际结果的比较检查算法计算机1的计算机核心36的剩余15%至20%的、校验计算没有包含的门电路的按规定的功能。在监控计算机2上在模型6中模拟控制或者调节算法3。真正的控制或者调节算法3的结果与模拟的控制或者调节算法的结果彼此进行比较。在结果彼此出现显著偏差的情况下在算法计算机1的计算机核心36中有错误并断开该算法计算机。通过这种方式虽然可以检查校验计算没有覆盖到的、微处理器30的门电路的故障。可是对于这些算法计算机1的微处理器30的15%至20%的门电路存在这个问题,即也许在微处理器30的按规定运行中、也就是说在执行控制或者调节程序时才出现并可以识别故障。此外在监控计算机2中控制或者调节算法的模型6导致,在改变控制或者调节算法3的情况下也必须改变模型6。
因此根据本发明建议在图1中示出的分集计算机方案,在该方案中已知的校验计算扩展成为完全的自检7、8、所谓的内置自检(BIST)。作为BIST 7的基础可以动用由半导体生产商在生产计算机核心36的过程中使用的测试矢量。在BIST 7中由算法计算机1执行测试程序,生成的结果(签名)作为输出信号在微处理器30的输出端上被截取并被分析利用。
为了分析利用测试结果,该结果经过串行数据接口提供给监控计算机2使用。在监控计算机中算法计算机1的BIST 7的测试结果和监控计算机2的BIST 8的测试结果彼此进行比较。在检测到错误的情况下安全断开算法计算机1直到下一次接通电源电压(硬件复位)。代替分离的监控计算机2第二个独立的计算机元件也可以与算法计算机一起作为ASIC(Application Specific Integrated Circuit;专用集成电路)集成在一个公共的硬件组件上。
由算法计算机1在时间分段内平行于真正的控制或者调节算法3的实施联机执行作为在微处理器30上运行的计算机程序的一部分、软件方式实现的BIST 7。当在一个时间分段内每次调用BIST 7时检查计算机核心36的确定范围、也就是说确定门电路的按规定的功能。对于BIST 7的运行必须多次调用BIST。BIST的运行持续大约几毫秒(例如3ms)。在运行BIST之后达到算法计算机1的计算机核心36的所有门电路的大约90%至95%的检测覆盖。
对于BIST没有包含的、剩余的5%至10%门电路可以通过仿真验证,这些门电路的状态没有影响确定的计算机程序、特别是控制或者调节算法在微处理器30上的按规定执行。为了保证这5%至10%的门电路的按规定的功能也不必-象在现技术状况中一样-使用计算机程序的模型6。以根据本发明的方法可以实现应用独立地检查微处理器30的功能并同时实现完全检查计算机核心的所有重要门电路。
为了实现根据本发明的方法,首先必须确定,由BIST 7检查算法计算机1的计算机核心36的那些门电路的按规定的功能或者BIST 7不检测那些门电路。对于BIST 7不检测的门电路,于是必须为了在微处理器30上执行的确定计算机程序而确定,这些门电路的状态是否影响该计算机程序的按规定执行。
可以借助于模拟计算机、所谓的硅仿真器确定二者。在模拟计算机上以可编程的门电路(FPGAField Programmable Gate Arrays现场可编程门阵列)模拟计算机核心36的门电路结构。借助于来自计算机核心36的生产商并且说明计算机核心特性的网络表来编程模拟计算机。门电路处在由计算机、特别是由工作站控制并操作的仿真盒中。仿真盒与工作站形成模拟计算机。
通过故障仿真的方法验证BIST的有效性。仿真提供代表故障覆盖程度的、作为按百分比计算的量的特征数。在故障仿真时为指令测试在仿真计算机上运行具有算法计算机1的计算机核心36的无故障和有故障模型的指令测试程序。如果指令测试程序确定偏差,则识别出故障。所有指令测试程序的整体形成计算机核心36的BITS 7。BIST没有发现的每个单故障在另外的过程中是在下个步骤中执行的故障仿真的输入变量。
在模拟计算机的门电路模型上实施故障仿真,以便确定门电路的状态对计算机程序的按规定执行的影响。根据这个事实,即故障仿真器与算法计算机1的外围设备合作,可以确定通过BIST没有发现的故障对整个系统的影响。
如果在故障模拟和故障仿真的范围内发现算法计算机1的计算机核心36的一个门电路,其一方面不是由BIST检测并且其另一方面影响计算机程序的按规定执行,则可以这样相应扩展或改变BIST,使得该门电路也由BIST检测。因此在一个重复的过程中如此进一步扩展BIST 7,以致识别全部关键的剩余故障并因此保证系统安全。
在图3中示出了根据本发明的方法的流程图。在功能块10中开始该方法。在功能块11中完成算法计算机1的计算机核心36的BIST方案。可以独立于计算机程序(例如具有控制或者调节算法)完成该方案,以后应在微处理器30执行该程序。可是也可以设想,在BIST的方案中已经考虑以后应在微处理器30上执行的计算机程序。通常在计算机核心36的生产商处完成方案。
在功能块12中实施故障模拟,以便为IBST的方案确定方案的有效性,也就是说以便确定,该方案不检查那些门电路。然后在功能块13中实施故障仿真。故障模拟和故障仿真二者在计算机程序的设计者处在模拟计算机中实施,该计算机程序在微处理器30上执行。在故障仿真时分别为BIST的方案在执行期间不检查的门电路确定,该门电路的状态是否影响计算机程序在微处理器30上的按规定执行。如果影响,则从一个询问块14分支到功能块15,功能块15在一个故障存储器中存放当前门电路的标记。可是如果当前观察的门电路的状态没有影响计算机程序的执行,则分支到另一个询问块16,其检查,是否已检查所有的、BIST的方案不检测的门电路。如果不检查,则分支到功能块17,其选择下一个门电路作为当前门电路。从功能块15也分支到询问块16。
如果已检查所有的、BIST的方案不检测的门电路,则分支到功能块18,其读出故障存储器。在询问块19中检查故障存储器是否为空。如果为空,则分支到功能块20,其认为BIST的当前方案为完善的BIST7。在功能块21中结束根据本发明的方法。
可是如果计算机核心的至少一个门电路的状态影响计算机程序在微处理器30上的按规定执行(故障存储器不为空),BIST的方案在执行期间不检查该门电路,则从询问块19分支到功能块11,功能块11在考虑故障存储器内容的情况下再一次完成BIST的方案。
这种递推方法将一直执行,直到满足在询问块19中的条件(故障存储器为空)。因此根据本发明以一个递推方法确定对于各自的计算机程序最佳的BIST。
权利要求
1.检查微处理器(30)或微控制器的计算机核心(36)的按规定的功能的方法,其中计算机核心(36)包含多个分别具有多个晶体管的门电路,在该方法中在计算机程序(3)在微处理器(30)或微控制器上按规定执行期间周期地执行自检(7),并且在自检(7)的范围内检查计算机核心(36)的门电路的按规定的功能,其特征在于,在执行自检(7)期间至少检查计算机核心(36)的、其状态影响计算机程序(3)在微处理器(30)或微控制器上的按规定的那些执行这个门电路。
2.按照权利要求1的方法,其特征在于,完成自检(7)通过-完成计算机核心(36)的自检(7)方案(11);-检查,计算机核心(36)的、自检(7)的方案在执行期间没有检查的那些门电路(14)的状态是否影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行;-假如计算机核心的至少一个门电路的状态影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行,自检(7)的方案在执行期间不检查该门电路,则通过如此扩展自检(7)的方案,使得附加地至少检查计算机核心(36)的、自检(7)的方案没有检查过的并且其状态影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行的那个门电路,以完成完善的自检;以及-假如自检(7)的方案在执行期间不检查的、计算机核心(36)的门电路状态不影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行,则该自检方案作为完善的自检(7)考虑(20)。
3.按照权利要求2的方法,其特征在于,在检查计算机核心(36)的、自检(7)的方案在执行期间不检查的那些门电路的状态是否影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行之前,确定自检(7)的方案在执行期间不检查计算机核心(36)的那些门电路。
4.按照权利要求3的方法,其特征在于,在一个仿真器上实施这个确定(11),即自检(7)的方案在执行期间不检查计算机核心(36)的那些门电路,在该仿真器上至少部分模拟计算机核心(36)的门电路结构。
5.按照权利要求2至4之一的方法,其特征在于,在一个仿真器上实施该检查(14),即自检(7)的方案在执行期间不检查的、计算机核心(36)的那些门电路的状态是否影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行,在该仿真器上至少部分模拟计算机核心(36)的门电路结构。
6.用于检查微处理器(30)或微控制器的计算机核心(36)的按规定的功能的自检,其中该计算机核心(36)包含多个分别具有多个晶体管的门电路,在计算机程序(3)在微处理器(30)或微控制器上按规定执行期间可以以周期的运行实施自检(7)并且检查计算机核心(36)的门电路的按规定的功能,其特征在于,自检(7)在执行期间至少检查计算机核心(7)的、状态影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行的那些门电路。
7.具有一个计算机核心(36)并具有一个用于检查计算机核心(37)的按规定的功能的自检(7)的微处理器(30)或微控制器,该计算机核心具有多个分别具有多个晶体管的门电路,其中在计算机程序(3)在微处理器(30)或微控制器上按规定执行期间可以以周期的运行实施自检(7)并且检查计算机核心(36)的门电路的按规定的功能,其特征在于,自检(7)在执行期间至少检查计算机核心(36)的、其状态影响计算机程序(3)在微处理器(30)或微控制器上的按规定执行那些门电路。
全文摘要
本发明涉及检查微处理器(30)的按规定的功能的方法,其中微处理器(30)包含多个分别具有多个晶体管的门电路,在该方法中在计算机程序(3)在微处理器(30)上按规定的执行期间周期地实施自检(7),并且在自检(7)的范围内检查微处理器(30)的门电路的按规定的功能。为了如此检查微处理器(30)的按规定的功能,使得该功能检查也可以及早识别,在微处理器(30)的按规定运行中才出现的这些故障,并且为了尽可能放弃使用控制或者调节算法的模型(6),建议在自检(7)的执行期间至少检查微处理器(30)的、状态影响计算机程序(3)在微处理器(30)上的按规定执行那些门电路。
文档编号G06F15/76GK1561488SQ02819230
公开日2005年1月5日 申请日期2002年7月30日 优先权日2001年9月28日
发明者K·-P·马特恩, M·赫林, W·哈特 申请人:罗伯特-博希股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1