首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

具有非侵入式自测试的处理器 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:德州仪器公司

摘要:本申请案涉及一种具有非侵入式自测试的处理器。一种处理器100包含中央处理单元CPU102和诊断监测电路112。所述诊断监测电路112耦合到所述CPU102。所述诊断监测电路112包含监测和循环冗余检查CRC计算单元106。所述监测和CRC计算单元106被配置成检测所述CPU102对诊断程序的执行,以及计算多个CRC值。在所述CPU102执行所述诊断程序时,所述CRC值中的每一个对应于从所述CPU102的给定寄存器或从将所述CPU102耦合到存储器和外围子系统108的总线检索的处理器值。

主权项:1.一种处理器,其包括:中央处理单元CPU,其包括第一寄存器和第二寄存器;和监测电路,其耦合到所述CPU并被配置成:检测所述CPU对自测试程序的执行,其中所述CPU对所述自测试程序的所述执行是在多个不连续执行时间间隔上进行的;从所述CPU的所述第一寄存器中检索第一处理器值;从所述CPU的所述第二寄存器中检索第二处理器值;组合所述第一处理器值和所述第二处理器值;和在所述多个不连续执行时间间隔期间基于经组合的所述第一处理器值和所述第二处理器值来计算循环冗余检查CRC值。

全文数据:具有非侵入式自测试的处理器相关申请案本申请案主张2017年8月3日提交的印度临时申请案第201741027612号的优先权,所述临时申请案以引用的方式并入本文中。技术领域本申请案涉及一种具有非侵入式自测试的处理器。背景技术微处理器、微控制器和类似电子装置用于各种应用中。各种状况和事件可致使此类装置失效,从而不利地影响装置操作。当发生失效的装置正在执行影响用户安全的关键任务的过程时,此类失效的后果通常是会造成更显著影响。为确保此类应用正确操作,连续评估装置的操作条件。所述装置可包含支持操作连续评估的自测试特征。发明内容本文中公开用于监测处理器操作的设备和方法。在一个实例中,一种处理器包含中央处理单元CPU和诊断监测电路。所述诊断监测电路耦合到CPU。所述诊断监测电路包含监测和循环冗余检查CRC计算单元。所述监测和CRC计算单元被配置成检测所述CPU对诊断程序的执行,以及计算多个CRC值。在所述CPU执行诊断程序时,CRC值中的每一个对应于从所述CPU的给定寄存器或从将所述CPU耦合到存储器和外围子系统的总线检索的处理器值。CRC值中的每一个对应于CPU的各个方面,例如寄存器、存储器总线或在诊断程序的执行期间的内部状态。在另一实例中,处理器诊断电路包含诊断监测电路。所述诊断监测电路包含监测和循环冗余检查CRC计算单元。所述监测和CRC计算单元被配置成检测中央处理单元CPU对诊断程序的执行,以及计算多个CRC值。在所述CPU执行诊断程序时,CRC值中的每一个对应于从所述CPU的给定寄存器或从将所述CPU耦合到存储器和外围子系统的总线检索的处理器值。CRC值中的每一个对应于CPU的各个方面,例如寄存器、存储器总线或在诊断程序的执行期间的内部状态。在另一实例中,用于监测处理器健康状态的方法包含通过处理器在不连续处理器空闲时间间隔期间执行诊断程序的指令。所述方法还包含通过诊断监测电路检测所述不连续空闲时间间隔中的所述诊断程序的执行。所述方法另外包含计算多个循环冗余检查CRC值,在所述处理器的中央处理单元CPU执行所述诊断程序时,CRC值中的每一个对应于从所述CPU的给定寄存器检索的处理器值。附图说明为了详细描述各种实例,现在参考随附图式,在随附图式中:图1示出根据各种实例的包含非侵入式自测试的处理器的框图;图2示出根据各种实例的用于非侵入式自测试的监测和循环冗余检查计算单元的框图;图3示出根据各种实例的包含非侵入式自测试的处理器中的自测试执行时间序列的实例;图4示出根据各种实例的用于非侵入式自测试的流水线抽取单元的框图;图5示出根据各种实例的用于执行非侵入式自测试的方法的流程图;和图6示出根据各种实例的用于非侵入式自测试的方法的流程图。具体实施方式在整个以下描述和权利要求中使用某些术语来指代特定系统组件。如所属领域的技术人员将了解,不同当事人可用不同名称来指代组件。本文并不意欲对名称不同而非功能不同的组件进行区分。在以下讨论中并且在权利要求书中,术语“包括”和“包含”以一种开放式方式使用,并且因此应解释为意指“包括但不限于……”。同样,术语“耦合”意欲表示间接或直接的有线或无线连接。因此,如果第一装置耦合到第二装置,那么所述连接可能是通过直接连接,或通过经由其它装置和连接的间接连接。叙述“基于”意指“至少部分基于”。因此,如果X是基于Y,那么X可随Y和任何数目个其它因数变化而变化。定期自测试在多种应用例如,一些嵌入式实时应用、任务关键应用等中是重要的或所需的。然而,用于自测试的常规技术可为侵入式或效率低下。举例来说,硬件内置式自测试BIST是侵入式的,因为当正在执行硬件BIST时,正被测试的中央处理单元CPU不可用以执行用户应用。替代地,仅基于软件的自测试也是效率低下的,因为必须执行大量指令以提供足够故障覆盖率。本公开的实例处理器包含非侵入式高效自测试。自测试可完全中断以提供嵌入式实时系统所需的快速响应时间。在一些实例中,可仅在CPU空闲时间期间执行自测试编程,因此应用程序时序通常不受自测试影响。所公开的处理器可包含从CPU、处理器总线、外围装置等检索寄存器和状态值的电路。在自测试程序执行期间,每一给定类型的检索值输入到循环冗余检查CRC电路,所述电路计算在自测试长度内的针对给定类型的检索值的CRC值。在完成自测试程序执行时,用自测试程序将CRC值与存储的预定正确CRC值进行比较,以确定CPU和关联系统是否正确地操作。图1示出根据各种实例的包含非侵入式自测试的处理器100的框图。处理器100可为通用微处理器、微控制器、数字信号处理器或其它指令执行装置。处理器100包含中央处理单元CPU102、存储器和外围子系统108,以及诊断监测电路112。CPU102包含执行从存储器检索的指令的电路。举例来说,CPU102可包含执行流水线,其包含提取单元、解码单元和执行单元。CPU102的一些实例可包含额外功能单元,例如数据和或指令高速缓存器、分支预测电路等。提取单元从指令存储器检索指令,以供处理器100执行。指令存储器可包含在处理器100中,或在处理器100外部。提取单元提供检索的指令给解码单元。解码单元检验从提取单元接收的指令,并且将每一指令转译成适用于操作执行单元、处理器寄存器和处理器的其它组件以执行实现所述指令的操作的控制。解码单元提供控制信号给执行单元和处理器100的其它单元,致使处理器100进行执行每一指令所需的操作。执行单元包含算术电路、移位器、倍增器、寄存器、逻辑运算电路等,其被布置成操控由解码单元产生的控制信号规定的数据值。处理器100的一些实施方案可包含多个执行单元,其包含相同或不同数据操纵能力。存储器和外围子系统108包含结合CPU102操作的各种电路。举例来说,存储器和外围子系统108可包含用于存储程序和数据的存储器、通信电路、中断控制电路、计时器电路、直接存储器存取控制电路,以及或提供服务到CPU102的各种其它电路。存储器和外围子系统108经由一或多个总线114以通信方式连接到CPU102。诊断监测电路112监测CPU102和或存储器和外围子系统108的操作,以确定处理器100是否正在正确地操作。诊断监测电路112耦合到CPU102、存储器和外围子系统108和或一或多个总线114,所述总线用于将关于CPU102和或存储器和外围子系统108的操作状态的信息传送到诊断监测电路112。诊断监测电路112包含流水线抽取单元104、监测和CRC计算单元106以及监控电路110。流水线抽取单元104耦合到CPU102。流水线抽取单元104从CPU102检索原本不可用于CPU102外部的电路的信息。举例来说,流水线抽取单元104可从CPU102获取指令寄存器内容、流水线状态信息、程序计数器值,以及或在CPU102内部产生的其它信息。流水线抽取单元104可组合从CPU102检索的一些信息,使得可减小提供给监测和CRC计算单元106的信息量。举例来说,流水线抽取单元104可同时从CPU102获取多个不同值并且使用异或函数组合多个值。多个值的异或可提供给监测和CRC计算单元106。监测和CRC计算单元106耦合到流水线抽取单元104、存储器和外围子系统108以及一或多个总线114。监测和CRC计算单元106捕获流水线抽取单元104、存储器和外围子系统108以及一或多个总线114提供的信息并且计算在处理器100执行自测试程序在本文中也称为诊断程序时所捕获的每一不同类型的信息的CRC值。举例来说,监测和CRC计算单元106可使用在自测试程序执行期间检索的程序计数器值计算第一CRC值,使用在自测试程序执行期间检索的指令寄存器值计算第二CRC值等。监测和CRC计算单元106分析从流水线抽取单元104、存储器和外围子系统108以及一或多个总线114接收的信息,以确定是否使用所接收的信息更新CRC值。因为基于自测试程序的执行更新CRC值,所以监测和CRC计算单元106的一些实施方案检验程序计数器值,以确定自测试程序是否正在执行。举例来说,自测试程序所存储在的地址值的范围可预编程到监测和CRC计算单元106中。如果程序计数器地址值处于地址值的范围,那么监测和CRC计算单元106可使用从流水线抽取单元104、存储器和外围子系统108以及一或多个总线114检索的信息更新CRC值。当自测试程序的执行完成时,可将监测和CRC计算单元106计算的CRC值与预定正确CRC值进行比较,以确定处理器100是通过还是未通过自测试。举例来说,预定期望CRC值可存储为自测试程序的部分,且计算的CRC值与预定正确CRC值的比较可由CPU102执行为自测试程序执行的部分,或由监测和CRC计算单元106执行。可存储自测试的结果以用于进一步处理和或提供给用户。监控电路110监测自测试,以确保自测试程序的执行是根据所建立的规范。举例来说,如果所建立的规范提供自测试程序应以预定时间间隔执行至少一第一量的时间,那么监控电路110可以预定时间间隔测量自测试的执行时间,并且调整处理器100的操作参数,以基于所测量的执行时间改变自程序的执行时间。调整可包含在用户程序抢先时强制执行用于自测试程序的最小执行时间。图2示出根据各种实例的监测和CRC计算单元106的框图。监测和CRC计算单元106包含CRC计算电路202、CRC控制电路204和CRC寄存器206。CRC寄存器206包含用于监测和CRC计算单元106计算的多个CRC值中的每一个的寄存器208。举例来说,CRC寄存器206可包含用于存储写入数据CRC值、写入地址CRC值、读取数据CRC值、读取地址CRC值、指令寄存器CRC值、程序计数器CRC值和内部节点CRC值中的每一个的寄存器208。提供于每一CRC寄存器208中的位数可在不同实施方案中为不同的。在一些实施方案中,CRC寄存器208可存储32位CRC值。CRC计算电路202耦合到CRC寄存器206、流水线抽取单元104、存储器和外围子系统108以及或总线114。CRC计算电路202包含评估相对于CRC寄存器208的当前值和从流水线抽取单元104、存储器和外围子系统108以及或总线114接收的新信息值的CRC多项式的电路。因此,CRC计算电路202从CRC寄存器206检索值,基于从CRC寄存器检索的值和新信息值而计算CRC值,并且将多项式评估的结果存储于CRC寄存器206中。CRC计算电路202的一些实施方案可包含用于每一CRC寄存器208的单独CRC评估电路。CRC控制电路204检验从流水线抽取单元104、存储器和外围子系统108以及或总线114接收的信息,以确定自测试是否正在执行,并且应基于从流水线抽取单元104、存储器和外围子系统108以及或总线114接收的信息,更新存储在CRC寄存器206中的CRC值。举例来说,CRC控制电路204可存储定义自测试程序存储在的地址值的范围的信息。如果从流水线抽取单元104接收的程序计数器地址值处于所述距离内,那么CRC控制电路204可确定自测试正在执行,并且又可选择对应于待更新的所接收的信息的CRC寄存器208,并且使得CRC计算电路202能够更新存储在选定CRC寄存器208中的CRC值。图3示出根据各种实例的处理器100中的自测试执行。在处理器100的实施方案中,自测试程序的执行与用户程序的执行穿插进行。在图3中,自测试304的执行于用户任务302的执行穿插进行。举例来说,处理器100可仅当不准备执行用户任务302时执行自测试304。也就是说,处理器100可仅当CPU102空闲时即,CPU空闲时间执行自测试304。因此,自测试304的执行不干扰用户任务302的执行时序。因为自测试304的执行自始至终是在任何数目个不连续执行时间间隔内执行,所以监测和CRC计算单元106识别自测试程序的执行。监测和CRC计算单元106在自测试程序的整个不连续执行内启用CRC寄存器206的更新,并且在用户任务302正在执行的情况下禁止CRC寄存器206的更新。图4示出根据各种实例的流水线抽取单元104的框图。如图1所示,流水线抽取单元104与CPU102介接。在图4中,流水线节点402、404、406、408和410可为寄存器或CPU102中的其它电路的输出。流水线抽取单元104将从流水线节点检索的一些信息在无修改的情况下传送到监测和CRC计算单元106。因此,流水线抽取单元104为监测和CRC计算单元106提供对在CPU102中产生的信息的直接存取。在图4中,从流水线节点410检索的信息无修改地传送到监测和CRC计算单元106作为原始输出416。流水线抽取单元104的实施方案可无修改地传送从CPU102的任何数目个流水线节点检索的信息。流水线抽取单元104还可包含处理或组合从CPU102的一些流水线节点检索的信息的电路。通过组合从CPU102的多个流水线节点检索的信息,流水线抽取单元104减少提供给监测和CRC计算单元106的不同数据值的数目,这又减少监测和CRC计算单元106维持的CRC值的数目。在图4的实例中,流水线抽取单元104包含异或电路412。异或电路412组合从流水线节点402、404、406和408检索的信息,以产生提供给监测和CRC计算单元106的复合输出414。流水线抽取单元104的实施方案可组合从CPU102的任何数目个流水线节点检索的信息,以产生复合输出,且实施方案可产生组合CPU102的不同流水线节点的任何数目个不同复合输出。图5示出根据各种实例的用于执行非侵入式自测试的方法的流程图。尽管为了方便起见依序描绘,但是所示出的至少一些动作可以不同次序执行和或并行地执行。另外,一些实施方案可仅执行所示动作中的一些。方法500的操作中的至少一些可由处理器100实施。在框502中,处理器100执行从程序存储装置检索的指令即,从存储器检索的指令。监测和CRC计算单元106从流水线抽取单元、存储器和外围子系统108以及或总线114接收信息。如果正执行的指令是用户程序即,用户任务302的部分,那么对程序执行的监测继续框502。另一方面,如果在框502中无用户程序正在执行即,无用户程序准备执行,那么在框504中,处理器100开始或重新开始自测试程序即,自测试304的指令的执行。在框506中,处理器100执行在框504中开始的自测试程序。处理器100确定用户程序是否准备执行。如果无用户程序准备执行,那么处理器100继续执行自测试程序。如果在框506中用户程序准备执行,那么在框508中,处理器100暂停自测试程序的执行并且开始重新开始用户程序的执行。因此,处理器100仅在无用户程序执行或准备执行的情况下执行自测试程序。以此方式,处理器100的实施方案提供对于用户程序的时序或功能性为非侵入式的自测试。图6示出根据各种实例的用于非侵入式自测试的方法的流程图。尽管为了方便起见依序描绘,但是所示出的至少一些动作可以不同次序执行和或并行地执行。另外,一些实施方案可仅执行所示动作中的一些。方法600的操作中的至少一些可由处理器100实施。在框602中,处理器100执行从程序存储装置检索的指令即,从存储器检索的指令。流水线抽取单元104从CPU102检索各种信息值。所述信息值可包含程序计数器值、指令值、读取地址值、读取数据值、写入地址值和或写入数据值,以及或提供于CPU102的寄存器中和或存在于CPU102的流水线节点中的各种状态数据值。在框604中,流水线抽取单元104组合从CPU102检索的信息值中的一些,以减少提供给监测和CRC计算单元106的值的数目。流水线抽取单元104的一些实施方案可应用异或函数,以产生从CPU102检索的多个值的复合值。在框606中,监测和CRC计算单元106评估从流水线执行单元104、存储器和外围子系统108和或总线114接收的信息,以确定CPU102当前是否正在执行自测试即,自测试304。举例来说,监测和CRC计算单元106可将经由流水线抽取单元104接收的执行指令的地址与存储自测试程序的地址范围进行比较,以确定自测试是否正在执行。如果自测试不正在执行,那么方法继续从CPU102检索额外信息的框602。如果在框606中,监测和CRC计算单元106确定自测试正在执行,那么在框608中,监测和CRC计算单元106计算从流水线抽取单元104、存储器和外围子系统108和或总线114接收的多个信息值中的每一个的CRC值。计算CRC值可包含从存储装置例如,寄存器208检索当前CRC值,并且将当前CRC值和从流水线抽取单元104、存储器和外围子系统108和或总线114接收的新信息值应用于预定多项式。在框610中,处理器100确定自测试执行是否完成。举例来说,自测试的执行可包含设置指定自测试完成的状态值。在各种实施方案中自测试完成的确定可由监控电路110、CPU102、监测和CRC计算单元106或处理器100的其它组件进行。如果自测试完成,那么在框616中,处理器100确定自测试失败还是通过。处理器100可将监测和CRC计算单元106在自测试执行期间计算的CRC值与预定正确CRC值进行比较。举例来说,对于监测和CRC计算单元106计算的每一CRC值,预定正确CRC值可存储在存储器中例如,作为自测试程序的部分。如果监测和CRC计算单元106在自测试执行期间计算的CRC值等于预定正确CRC值,那么处理器100在框618中认为通过的自测试。另一方面,如果监测和CRC计算单元106在自测试执行期间计算的CRC值不等于预定正确CRC值,那么处理器100在框620中认为自测试失败。如果在框610中,处理器100确定自测试的执行未完成,那么在框612中,监控电路110确定执行自测试的时间量是否最小。最小时间量可至少是在给定时间间隔内的预定测试执行时间例如,每秒中有10毫秒。如果用于自测试执行的时间为低例如,用户任务的执行时间允许太少用于自测试执行的时间,那么在框614中,监控电路110调整处理器100的操作,以确保自测试执行至少最小执行时间。举例来说,监控电路110可禁止用户任务抢先自测试达所选择的至少一时间,所述时间为自测试提供所需的最小执行时间。以上论述意在说明本发明的原理和各种实例。对于所属领域的技术人员来说,一旦完全了解以上公开内容,则许多变体和修改将变得显而易见。旨在将所附权利要求书解释为包涵所有此类变体和修改。

权利要求:1.一种处理器,其包括:中央处理单元CPU;和诊断监测电路,其耦合到所述CPU,所述诊断监测电路包括:监测和循环冗余检查CRC计算单元,其被配置成:检测所述CPU对诊断程序的执行;和计算多个CRC值,其中在所述CPU执行所述诊断程序时,所述CRC值中的每一个随从所述CPU的给定寄存器或从将所述CPU耦合到存储器和外围子系统的总线检索的处理器值而变。2.根据权利要求1所述的处理器,其中所述CPU被配置成仅在CPU空闲时间期间执行所述诊断程序。3.根据权利要求1所述的处理器,其中所述诊断监测电路另外包括流水线抽取单元,其被配置成:从所述CPU的寄存器检索处理器值,并且将所述处理器值提供给所述监测和CRC计算单元,以供在CRC计算时使用;和将从所述CPU检索的多个处理器值组合成单个值,并且将所述单个值提供给所述监测和CRC计算单元,以供在CRC计算时使用。4.根据权利要求3所述的处理器,其中所述流水线抽取单元被配置成通过将异或函数应用于所述处理器值,将所述处理器值组合成所述单个值。5.根据权利要求1所述的处理器,其中所述处理器值包括:程序计数器值;指令值;读取地址值;读取数据值;写入地址值;和写入数据值。6.根据权利要求1所述的处理器,其中所述监测和CRC计算单元被配置成:识别所述诊断程序的执行的完成;和响应于所述完成,将所述CRC值中的每一个与预定CRC值进行比较。7.根据权利要求1所述的处理器,其中所述诊断监测电路另外包括监控电路,其被配置成:监测所述诊断程序的执行;和基于所述诊断程序在预定时间间隔内执行的时间段小于最小预定诊断执行时间,增加分配给所述诊断程序的执行的时间。8.根据权利要求1所述的处理器,其中所述监测和CRC计算单元被配置成计算在所述诊断程序的多个不连续执行时间间隔内的所述CRC值中的每一个。9.一种处理器诊断电路,其包括:诊断监测电路,其包括:监测和循环冗余检查CRC计算单元,其被配置成:检测中央处理单元CPU对诊断程序的执行;和计算多个CRC值,其中在所述CPU执行所述诊断程序时,所述CRC值中的每一个随从所述CPU的给定寄存器或从将所述CPU耦合到存储器和外围子系统的总线检索的处理器值而变。10.根据权利要求9所述的处理器诊断电路,其中所述诊断监测电路另外包括流水线抽取单元,其被配置成:从所述CPU的寄存器检索处理器值,并且将所述处理器值提供给所述诊断监测电路,以供在CRC计算时使用;和将从所述CPU检索的多个处理器值组合成单个值,并且将所述单个值提供给所述诊断监测电路,以供在CRC计算时使用。11.根据权利要求10所述的处理器诊断电路,其中所述流水线抽取单元被配置成通过将异或函数应用于所述处理器值,将所述处理器值组合成所述单个值。12.根据权利要求9所述的处理器诊断电路,其中所述处理器值包括:程序计数器值;指令值;读取地址值;读取数据值;写入地址值;和写入数据值。13.根据权利要求9所述的处理器诊断电路,其中所述监测和CRC计算单元被配置成:识别所述诊断程序的执行的完成;和响应于所述完成,将所述CRC值中的每一个与对应的预定CRC值进行比较。14.根据权利要求9所述的处理器诊断电路,其另外包括监控电路,其被配置成:监测所述诊断程序的执行;和基于所述诊断程序在预定时间间隔内执行的时间段小于最小预定诊断执行时间,增加分配给所述诊断程序的执行的时间。15.根据权利要求9所述的处理器诊断电路,其中所述监测和CRC计算单元被配置成计算在所述诊断程序的多个不连续执行时间间隔内的所述CRC值中的每一个。16.一种用于监测处理器操作的方法,其包括:通过处理器在不连续处理器空闲时间间隔期间执行诊断程序的指令;通过诊断监测电路检测所述不连续空闲时间间隔中的所述诊断程序的执行;和计算多个循环冗余检查CRC值,在所述处理器的中央处理单元CPU执行所述诊断程序时,所计算的CRC值中的每一个随从所述CPU的给定寄存器检索的处理器值而变。17.根据权利要求16所述的方法,其另外包括:从所述CPU的寄存器检索处理器值,并且将所述处理器值提供给所述诊断监测电路,以供在CRC计算时使用;和将从所述CPU检索的多个处理器值组合成单个值,并且将所述单个值提供给所述诊断监测电路,以供在CRC计算时使用。18.根据权利要求17所述的方法,其另外包括将异或函数应用于所述处理器值以执行所述组合。19.根据权利要求17所述的方法,其另外包括:识别所述诊断程序的执行的完成;和响应于所述完成,将所述CRC值中的每一个与预定CRC值进行比较。20.根据权利要求17所述的方法,其另外包括:监测所述诊断程序的执行;和基于所述诊断程序在预定时间间隔内执行的时间段小于最小预定诊断执行时间,增加分配给所述诊断程序的执行的时间。

百度查询: 德州仪器公司 具有非侵入式自测试的处理器

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。