CN102591761B - 用于安全相关的应用中的sw的编码执行的增强型可缩放cpu - Google Patents
用于安全相关的应用中的sw的编码执行的增强型可缩放cpu Download PDFInfo
- Publication number
- CN102591761B CN102591761B CN201110386661.9A CN201110386661A CN102591761B CN 102591761 B CN102591761 B CN 102591761B CN 201110386661 A CN201110386661 A CN 201110386661A CN 102591761 B CN102591761 B CN 102591761B
- Authority
- CN
- China
- Prior art keywords
- data
- data bits
- core
- coded
- process device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及用于安全相关的应用中的SW的编码执行的增强型可缩放CPU。本发明的一些实施例涉及被配置为包括可配置的硬件扩展的单处理器,所述硬件扩展被布置在被配置为选择性地提供编码数据或者原始数据的数据路径内,其允许两种操作模式。在高性能模式中,通过使用硬件扩展来处理扩展的数据(即,附加的原始数据),所述硬件扩展允许增加的处理带宽。在安全完整性模式中,通过处理自测试程序和自测试数据,所述硬件扩展允许与处理器执行SBST并发地进行编码数据的并行处理。因此,单通道处理器提供单核心***,其可以选择性地实现用于安全相关的应用的高安全完整性等级(例如,SIL3)或者用于非安全相关的应用的高性能。
Description
背景技术
计算机***越来越多地用于其中向它们委托人的生命可能所依赖的功能的应用中。该种安全相关的计算机***可以被实施在医疗装置、汽车中的防锁刹车***、核电站处的关闭***等中。安全相关的计算机***可以与传感器耦合,所述传感器被配置为感测***的操作并且以人的能力所不匹配的速度和可靠性来对可能的危险情况做出反应。因此,在安全相关的计算机***中,基于硬件的故障是不可接受的,并且任何该种故障的及时检测都是重要的。
国际电子技术委员会(IEC)管控安全相关的计算机***的完整性。计算机***处理器的完整性可以根据安全完整性等级(SIL)来测量。一般地,如IEC 61508所定义的,存在四种不同的安全完整性等级。安全完整性等级范围从最小的SIL 1到最大的SIL 4。具有各种安全重要性的装置被要求满足在对应的SIL中所阐述的标准。例如,飞机、核反应器等具有高的安全重要性,并且因此被要求使用满足最严格的安全标准SIL 4的计算机***。
为了实现给定的SIL,装置必须满足针对最大危险故障概率和最小安全故障系数(fraction)的目标。例如,SIL3装置(例如,用于汽车)具有1e-7到1e-8的每小时危险故障概率,并且必须检测到所有可能的危险故障中的大于99%故障。
附图说明
图1说明了可配置为高性能或者安全相关的应用的嵌入***的框图。
图2说明了具有用于编码处理的硬件扩展的单通道处理器的更详细示例性实施例的框图。
图3说明了被配置为包括用于编码处理的硬件扩展和基于软件的自测试(SBST)的单通道处理器的更详细框图。
图4A-4B说明了与安全完整性模式和高性能模式的每个分别相关联的数据路径。
图5说明了具有包括可配置子单元的硬件扩展的单通道核心处理器的框图,其中所述可配置子单元可以基于被提供到硬件扩展的数据来选择性地操作。
图6说明了用于操作嵌入***的示例性方法的流程图,其中所述嵌入***可配置为在安全完整性模式中或者在高性能模式中进行操作。
图7A说明了用于操作嵌入***的更详细方法的流程图,其中所述嵌入***可配置为在安全完整性模式中或者在高性能模式中进行操作。
图7B说明了用于在安全完整性模式中进行操作的示例性方法的流程图。
具体实施方式
现在参考附图,对所要求保护的主题进行描述,其中自始自终同样的参考标号被用于指代同样的元件。在以下的描述中,出于解释的目的,阐述了多种特定细节以便提供对所要求保护的主题的彻底理解。然而,可能明显的是,所要求保护的主题可以在不具有这些特定细节的情况下来实行。
如在此提供的,以下的术语旨在具有如下面所阐述的特定意思。术语数据指代数据。术语代码指代包括指令的集合的程序代码。术语指令指代单个指令(即,程序代码的原子实例)。术语编码数据指代原始数据以及冗余数据的M+N位联合体。术语原始数据或者信息位指代实际未编码数据的M位。
处理器故障的检测在安全相关的应用中是重要的,以确保计算机***的功能被一致地执行。处理器故障检测可以通过各种技术(例如,基于硬件的技术、基于软件的自测试等)来执行。例如,诸如空间冗余的基于硬件的技术可以采用多个冗余处理核心(例如,锁步CPU)以在多个核心上并行同步地执行相同软件程序代码的多个实例。冗余处理核心的结果被比较,并且在结果之间的分歧指示处理器中的错误。
可用于处理器故障检测的该种诊断覆盖技术能够保证一定的处理器完整性,然而通常为达到高的完整性等级,使用显著的资源(例如,芯片面积、功率消耗、开发成本等)。
发明人已认识到编码处理故障检测技术主要检测数据存储、处理、以及寻址中的故障,而基于软件的自测试(SBST)故障检测技术非常适合于检测在解码和程序流控制中的故障。因此,两种处理器故障检测技术在处理器操作的互补区域中检测故障。基于这一认识,发明人已意识到,通过使用基于软件的自测试(SBST)和编码处理两者,对单通道处理器的总体故障检测可以得以改善同时缩小实施每个单独方法的复杂度和成本(例如,实施成本、开发成本等)。
因此,在此提供了一种具有一个核心的单通道处理器,其被配置为使用用于编码处理的可配置的硬件扩展和基于软件的自测试(SBST)来实现高的安全完整性等级。单通道处理器进一步提供单核心***,其可以选择性地实现用于安全相关的应用的高安全完整性等级(例如,SIL3)或者用于非安全相关的应用的高性能。
具体地,单通道处理器被配置为包括:可配置的硬件扩展,被布置在被配置为选择性地提供编码数据(例如,包括冗余数据位)或者扩展的原始数据的数据路径内,其允许两种操作模式。在高性能模式中,通过使用硬件扩展来处理扩展的数据位(即,附加的信息位),硬件扩展允许增加的处理带宽。在安全完整性模式中,硬件扩展允许对原始数据位和冗余数据位(即,出于完整性目的而提供的冗余数据)两者的并行处理,其与处理器执行基于软件的自测试程序(SBST)交织。因此,单通道处理器允许多用途处理器核心,其可以以相对低的成本增加来提供高等级的安全完整性或者高等级的性能。
图1是说明如在此提供的、可配置用于高性能或者用于安全相关应用的示例性嵌入***100的框图。嵌入***100包括:单通道处理器核心102,具有被配置为处理通过一个或者多个处理器总线108从程序存储器104接收的代码和从数据存储器106接收的数据的硬件扩展。在一个实施例中,程序存储器104被配置为存储测试代码(其可以被用于实施基于软件的自测试)以及程序代码(用于一般的处理)。例如,嵌入***100也可以包括诸如***块110或者中断、时钟等112的其他组件。
当在安全完整性操作模式中进行操作时,在处理的正常过程中,程序代码被提供到单通道处理器核心102以对编码数据字起作用。编码数据字可以包括M+N编码数据位(例如,40位),其中M位(例如,32位)包括原始数据并且N位(例如,8位)包括冗余位。编码数据字可以通过在原始数据位和冗余数据位之间形成特定预定关系的编码公式来生成。
在单通道处理器核心102执行安全相关的功能时,其将执行与该功能相关联的、来自程序存储器104的一个或者多个指令以读取、处理、或者在数据存储器106中写入编码数据从而执行所述功能。单通道处理器核心102使用CPU核心和硬件扩展两者来处理编码数据字。在一个实施例中,单通道处理器核心102可以使用CPU核心来处理原始数据位,以及使用CPU核心的硬件扩展来处理冗余数据位。在处理之后,从处理的原始数据位和冗余数据位中产生的输出被检查以确定在单通道处理器核心102中是否存在处理器故障。如果在在原始数据位和冗余数据位之间的特定预定关系仍然存在,则在处理器核心102中不存在错误。
与执行安全相关的功能交织,处理器可以通过向单通道处理器核心102提供自测试程序来执行SBST程序。可以以时间上的规则间隔、以预定时间、或者响应于事件来向单通道处理器核心102提供自测试程序。处理器核心102启动自测试程序以对在数据存储器106中存储的自测试数据起作用。自测试程序作为单通道处理器核心102的后台任务来运行,由此与处理的正常过程(例如,与编码数据的处理)并发地操作以生成自测试程序响应,其可以被用于确定在单通道处理器核心中是否存在处理器故障。
因此,在安全完整性模式中,单通道处理器核心102被配置为执行在时间上重叠的两个互补处理器故障检测技术。单通道处理器被配置为:在处理的正常过程期间处理编码数据字(例如,包括原始数据位和冗余数据位,其中对原始数据位和冗余数据位之间的不匹配的固有校验用于识别处理器中存在的故障);并且与该处理交织在CPU的正常处理的后台中SBST程序的执行。分别解决互补安全风险的这两种方法的组合提供了不能够由任一单种方法合理实现的诊断覆盖。这两种方法的组合补偿每一单种方法的故障鲁棒性的不足,并且因此改善了***的总体安全完整性(例如,减小了危险故障的概率并且最大化安全故障系数)。
当在高性能操作模式中进行操作时,CPU处理器核心的硬件扩展可访问用于处理扩展的原始数据位(即,附加的信息位)。因此,在高性能模式中,用于处理信息位的CPU处理器核心的能力由于硬件扩展而得以增加。例如,在一个实施例中,单通道处理器核心102被配置为处理数据字的第一部分(例如,包括原始数据位),并且硬件扩展被配置为并行地处理数据字的剩余部分(例如,包括扩展的原始数据位)。此外,在高性能模式中,SBST可以被跳过(即,未被执行),由此减小了在单通道处理器核心102上的计算负荷。
图2说明了具有包括可操作用于编码处理的硬件扩展的单通道处理器核心的数据路径200的更详细示例性实施例的框图。
单通道处理器核心202包括CPU核心202a和硬件扩展202b,其中原始数据路径延伸到CPU核心202a并且数据路径扩展延伸到硬件扩展202b。硬件扩展202b被耦合到CPU核心202a并且被配置为包括硬件组件(例如,晶体管),其可以执行在硬件中(例如,不是在软件中)的编码数据字的本地(natively)编码处理以及扩展的或者多个原始数据位的处理。硬件扩展202b的大小可以根据在编码数据字中存在多少冗余数据位(即,所期望的安全完整性等级)而变化。例如,对于32位的核心处理器,具有32位的原始数据和8位的冗余数据的编码数据字将具有硬件扩展202b,其大致为CPU核心202a的大小的25%。在其他实施例中,可以通过在编码数据字内包括更多的冗余位而使用更大的硬件扩展(例如,16位或者32位)来确保更大的安全完整性等级。
虽然小的硬件扩展(例如,8位)一般不足以通过其自身来提供所要求的安全完整性等级(例如,SIL3),但是因为与SBST一起来执行编码处理,所以编码数据字的编码处理的范围可以被缩小,因此在此所提供的最小硬件扩展可以提供高的安全完整性等级。换言之,因为编码处理不必通过自身来实现整个诊断故障检测覆盖(例如,SIL3),所以可以使用最小硬件扩展。因此,硬件扩展202b可以提供利用最小硬件扩展(例如,CPU核心202a的大小的25%)来处理编码数据。这也与具有如下架构的多核心处理技术相反,其中所述架构不具有被配置为处理编码数据的格式的数据路径和/或不提供用于处理编码数据的本地硬件操作。
再次参考图2,在操作期间,包括原始数据位的数据字(例如32位数据字)可以被提供到编码块204。编码块204将对数据字执行编码操作以生成具有原始数据位和冗余数据位的编码数据字。具体地,编码操作可以包括对原始数据位(例如32位的原始数据)执行编码算法以形成冗余数据位(例如,8位的冗余数据),其中冗余数据位被形成为具有通过编码算法而定义的、与原始数据位的关系。在单通道处理器核心202的输入和输出处在冗余数据位和原始数据位之间的关系可以被用于辨别处理器故障。
程序代码被提供到单通道处理器核心202,使得CPU核心202a和硬件扩展202b执行对编码数据字的处理。例如,被提供到CPU核心202a和硬件扩展202b的具有32位的原始数据和8位的冗余数据的40位的编码数据字可以导致包括具有32位的原始数据和8位的冗余数据的40位的字的输出。
在一个实施例中,编码数据字可以包括在没有任何修改的情况下被嵌入到编码数据字中的M位的原始数据以及被嵌入到编码数据字中的N位的加密冗余数据。在该实施例中,CPU核心202a可以被配置为处理包括在编码数据字内的M位的原始数据,并且硬件扩展202b可以被配置为在硬件中本地处理包括在编码数据字内的N位的加密冗余数据,由此允许对原始数据和冗余数据的并行处理。在该实施例中,原始数据经历(通过CPU核心202a的)第一处理,而由于生成与原始数据具有特定关系的冗余数据的编码算法,冗余数据并发地经历(通过硬件扩展202b的)第二(有时更复杂)处理。例如,原始数据可能经历简单乘法,而冗余数据可能经历不是简单乘法的处理操作。
在从单通道处理器核心202中输出的编码数据字中,保持与原始数据位的关系的冗余数据位指示不存在处理器故障。例如,如果从单通道处理器核心202中输出的编码数据字具有如下的冗余数据位和原始数据位,其具有与输入到单通道处理器核心202的编码数据字中的冗余数据位和原始数据位相同的关系,则单通道处理器核心202不具有故障。相反,如果从单通道处理器核心202中输出的编码数据字具有如下的冗余数据位和原始数据位,其未保持与输入的编码数据字中的冗余数据位和原始数据位相同的关系,则在单通道处理器核心202中存在故障。
因此,如图2中所示,单通道处理器核心202被包括在扩展数据路径内,其允许对编码数据字的直接处理(即,与原始数据的处理并行的冗余数据的处理)。在一个实施例中,CPU核心202a和硬件扩展202b彼此不同之处在于,硬件扩展202b处于选择性地向硬件扩展202b提供编码数据字的冗余数据或者扩展的原始数据的数据路径内,而CPU核心202a处于提供原始数据位或者编码数据字的原始数据位的数据路径内。
将明白的是,在此描述的硬件扩展可以导致各种数据路径扩展。例如,到CPU核心的硬件扩展也可以具有相关联的总线扩展、存储器扩展等。此外,在各种实施例中,CPU核心可以包括微处理器核心或者微控制器核心。
图3说明包括被配置为执行与基于软件的自测试(SBST)的执行交织的编码处理的硬件扩展的计算机***300的更详细框图。在基于软件的自测试中,处理器本身控制测试数据流,使得不使用附加的电路。
如在图3中所示,程序存储器306被配置为包括自测试程序314和程序代码320。当在安全完整性模式中操作时,程序代码、编码数据字(例如,经由编码器/解码器322从数据字316中生成)、自测试代码314、以及自测试数据310经由处理器总线308而提供到单通道处理器302,以运行SBST作为编码数据字的编码处理的后台任务。当在高性能模式中操作时,数据字316经由总线308提供到单通道处理器302,并且不执行SBST。
更具体地,在安全完整性模式下,程序代码被提供到CPU 302。程序代码包括被用于处理编码字的单个指令集合。因此,程序代码包括单个指令集合(例如,单个指令),其与包含信息位和冗余数据的单个编码数据字一起工作以执行编码数据字的编码处理。
与编码处理交织,执行基于软件的自测试(SBST)。为了操作SBST,数据存储器304被配置为存储自测试数据310,并且程序存储器306被配置为存储自测试程序314。测试电路320(例如,CPU)被配置为访问处理器总线308并且启动自测试数据310和自测试程序314分别从数据存储器和程序存储器到CPU处理器的转移。自测试程序314使得处理器对自测试数据310操作以执行SBST。在各种实施例中,测试电路320可以包括多个机构(例如,外部测试器、CPU等),其可以被用于转移自测试程序和数据到CPU 302以供执行。
自测试程序314可以在开发阶段期间执行的测试代码生成步骤中进行开发并且可以包括测试在CPU中的门的子集(例如,90%的门)的二进制指令序列。在一个实施例中,自测试程序可以考虑***的结构架构而生成以包括软件程序,其包括测试在CPU中的门的子集(例如,90%的门)的指令序列。
SBST被配置为在正常计算机处理的后台中运行。在一个实施例中,SBST可以根据时间分片方法每几毫秒运行几个微秒。在接收到自测试程序314(例如,指令序列)时,单通道处理器302执行自测试程序314。包括自测试代码314的二进制指令序列可以通过在单通道处理器302中实施的逻辑功能来处理,从而导致包括二进制数据的处理序列的自测试响应。处理器核心对执行的自测试程序314的响应通过总线308而返回到数据存储器304,在其中存储所述响应((一个或多个)自测试响应312)。在一个实施例中,校验和算法(例如,循环冗余校验(CRC))被配置为对自测试响应312进行操作以根据响应生成结果值。结果值与从自测试数据310生成的预定义值进行比较。在结果值和预定义值之间的未预期变化指示在单通道处理器302中存在故障。
一般地,通过SBST测试的门的数目与开发和执行自测试程序的成本(例如,努力、时间等)成反比。这典型地导致了SBST代码的高开发成本,因为程序代码试图测试尽可能多的门。此外,CPU负荷由于为了实现高等级的诊断故障检测所进行的SBST的长执行时间而为高。然而,本发明允许测试软件程序的成本的减小,因为程序不必被开发以对最大数目的门进行寻址。换言之,因为编码处理也被用于实现高等级的诊断故障检测(例如,SIL3),所以可以使用对CPU门的子集进行训练的自测试程序。
如上所述,核心处理器的硬件扩展允许核心处理器在如下两种操作模式中进行操作:安全完整性模式和高性能模式。图4A和图4B说明了与安全完整性模式400和高性能模式406的每一个分别相关联的数据路径。在此提供的硬件扩展允许实施扩展的数据路径,使得在安全完整性模式中完成编码数据字的处理,而在高性能模式中支持更宽数据的处理或者单指令、多数据(SIMD)操作或者多指令、多数据(MIMD)操作以用于性能改善。将明白的是,虽然图4A和图4B不同地标记冗余处理硬件扩展404和额外的处理硬件扩展408,但是该种标记不是限制性的并且在一个实施例中硬件扩展404和408可以包括相同的硬件组件。
图4A说明了被配置为处理具有M+N数据位的编码数据字的CPU核心的更详细实施例,其中M位包括在没有任何修改的情况下被嵌入到编码数据字中的原始数据,以及N位包括利用加密而嵌入到编码数据字中的冗余数据。
参考图4A,在图4A中所示的安全完整性模式中,CPU核心402的冗余处理硬件扩展404被配置为处理编码数据字。在操作期间,原始数据位被映射到N冗余数据位(例如,通过使用修改的AN或者ANB代码的编码器电路)。包括具有带有特定预定关系的M正常二进制数据位和N冗余数据位(例如,出于安全相关目的而被有意复制的数据位)的扩展数据格式的编码数据字被形成。因此,出于故障检测目的,编码数据字将原始的M数据位以及附加的N冗余数据位保存在内。
编码数据字被提供到核心处理器以用于处理。在一个实施例中,使用具有用于直接处理编码数据字的冗余数据位的扩展的扩展数据路径来处理编码数据字。如图4A中所示,具有M原始数据位的编码数据字的第一部分被提供到CPU核心402以用于处理,而数据路径的扩展被配置为向用于编码处理的冗余处理硬件扩展404提供N冗余数据位,其中所述编码处理在硬件中本地执行。
例如,单通道处理器可以被配置为接收具有“0xA5A53F”的二进制序列的24位的编码数据字。编码数据字包括原始数据部分(前面的16个数据位)以及冗余数据部分(后面的8个数据位)。CPU核心402可以对前面的16个位(0xA5A5)进行操作而硬件扩展404可以对后面的8个位(0x3F)进行操作以提供输出的编码数据字。如果输出的编码字包含其间具有特定预定关系的处理的原始数据和处理的冗余数据,则在处理器中不存在故障。然而,如果输出的编码数据字包含其间不具有特定预定关系的处理的原始数据和处理的冗余数据,则在处理器中存在故障。
在图4B中所示的高性能模式中,额外的处理硬件扩展408可访问用于对扩展的原始数据位的处理。因此,在高性能模式中,由于额外的处理硬件扩展408,用于处理数据的单通道处理器的能力得以增加。如图4B中所示,在高性能模式中,具有M+N位的原始二进制数据的数据字可以被提供给单通道处理器。M位的原始数据可以被提供给CPU核心402,而N位的扩展的原始数据可以被提供给额外的处理硬件扩展408。因为提供给CPU核心402的数据位的数目增加(例如,与单独的CPU核心的处理负荷相比增加了N附加位),所以单通道处理器的性能得以改善。此外,在高性能模式中,SBST可以被跳过,由此减小了在CPU核心上的计算负荷。
例如,CPU核心402可以被配置为接收包括原始数据位的具有“0x3A57F1”的二进制序列的24位的数据字。CPU核心402可以对前面的16个原始数据位进行操作并且硬件扩展可以对后面的8个扩展的原始数据位进行操作以提供24位的输出。
在安全完整性模式和高性能模式之间的切换可以通过可配置的数据路径设计实施来支持。如上所述,由于在原始二进制数据位和冗余数据位之间形成特定预定关系的编码,原始数据经历第一处理,而编码数据字经历不同的处理。因此,为了适应选择性地向硬件扩展提供扩展的原始数据位或者编码数据的数据路径,硬件扩展被配置为执行与CPU核心类似的简单处理或者不同的处理,所述不同的处理本地执行冗余位的编码处理。
虽然相对于分离的编码字来描述图4A,其中M位的原始数据没有被加密并且N位的冗余数据被加密,但是将明白的是,在此提供的本发明也可以应用到如下的编码字,其中M位的原始数据与N位的冗余数据一起混杂以形成完整加密的M+N位宽的编码数据字。在该实施例中,例如可以在CPU核心中使用软件来处理加密数据。
在一个实施例中,在硬件扩展的计算逻辑中没有物理变化的情况下,硬件扩展可以包括可操作用于执行对原始数据位或者编码数据的处理的硬件。然而,编码处理的复杂性可能阻止实现该实施例,并且因此在图5中所示的替换实施例中,硬件扩展508可以包括可配置的子单元514和516,其可以基于被提供给硬件扩展508的数据(例如,编码数据、扩展的原始数据)而选择性地操作。换言之,在安全完整性模式中,子单元514可以执行在硬件扩展中的处理,而在高性能模式中,子单元516可以执行在硬件扩展中的处理。
如图5中所示,编码器502向硬件扩展508提供编码数据字,所述硬件扩展508包括一个或者多个切换单元512,其可以被配置为选择性地将逻辑子单元510耦合到子单元514或者子单元516以改***件扩展的配置。在一个实施例中,切换单元512可以包括被配置为基于在硬件扩展508中所期望的功能而在功能元件(例如,与门、或门等)之间切换的逻辑。
将明白的是,子单元包括硬件扩展的小部分并且在硬件扩展中的门的大部分被用于处理扩展的原始数据和编码数据两者。重新使用门的大部分来处理冗余数据和扩展的原始数据允许芯片面积的最小增加。例如,扩展的原始数据位可以使用乘法器而经历简单乘法,而编码数据位可以经历与乘法类似但不是简单乘法的处理操作。
因此,在此提供的硬件扩展被配置为本地执行编码处理(即,使用被特定配置为处理编码字的硬件来执行对编码冗余位的编码处理)。
图6说明了用于对可配置为在安全完整性模式中或者在高性能模式中操作的嵌入***进行操作的示例性方法600的流程图。
在602处,确定处理核心的操作模式。操作模式可以包括:安全相关的操作模式,其中与SBST的执行交织的编码处理在硬件扩展中本地执行;或者高性能操作模式,其中硬件扩展被用于扩展的原始数据的扩展处理。
在604处,基于操作模式来选择性地操作数据路径。对于安全相关的操作模式,编码数据被提供给单通道核心处理器的硬件扩展。在高性能操作模式中,扩展的原始数据被提供给单通道核心处理器的硬件扩展。
在606处,处理数据。在安全完整性模式中,编码数据的处理可以在硬件中本地执行(例如,在编码数据字内包括的冗余数据位可以与在编码数据字内包括的原始数据位并行地处理)。在高性能模式中,在核心处理器中的原始数据位的处理可以与在核心处理器的硬件扩展中的扩展的原始数据位的处理并行地执行。
图7A和图7B说明了用于操作嵌入***的更详细方法700的流程图,所述嵌入***可配置为在安全完整性模式中或者在高性能模式中操作。
虽然下面将方法700说明和描述为一系列动作或者事件,但是将明白的是,该动作或者事件的说明顺序不要以限制性的意义进行解释。例如,一些动作可以以不同的顺序发生和/或除在此说明和/或描述的动作或者事件之外的其他动作或事件并发地发生。此外,不是所有说明的动作可能被要求以实施在此公开内容的一个或者多个方面或者实施例。而且,在此描绘的一个或者多个动作可以以一个或者多个单独的动作和/或阶段来执行。
在702处,确定操作模式,并且基于此来选择数据路径。基于操作模式,判定框704选择向核心处理的硬件扩展提供编码数据或者扩展的原始二进制数据位的数据路径。累积地,步骤702和704允许方法涵盖两种操作模式:安全完整性模式,其中安全完整性是处理器的主要目标;和高性能模式,其中性能是处理器的主要目标。
在一个实施例中,数据路径可以包括对CPU核心的硬件扩展,其具有一个或者多个可配置的子单元,其中一个或者多个子单元可以被选择性地激活以使能安全完整性模式(例如,执行对编码数据的编码处理)或者高性能模式(例如,执行对扩展的或者多个原始数据的处理)。
如果高性能模式被选择,则方法行进到706,其中跳过基于软件的自测试。
在708处,数据字被提供给单通道处理器核心。数据字可以经由扩展的数据路径而提供给单通道处理器核心。扩展的数据路径允许数据字的不同部分被提供给被配置为并行地处理数据的单通道处理器核心(例如,CPU核心、硬件扩展)的不同部分。
在710处,单通道处理器核心被配置为处理数据字。在一个实施例中,单通道处理器核心并行地处理数据字的不同部分(例如,原始数据和扩展的原始数据)以用于性能改善。在替换实施例中,单指令、多数据(SIMD)或者多指令、多数据(MIMD)操作被支持以用于性能改善。因此,在高性能模式中,可以与在CPU核心中处理原始数据位并行地在硬件扩展中处理扩展的或者多个原始二进制数据。
如果安全完整性模式正被实施,则方法行进到712,其中利用硬件扩展来处理编码数据字,同时并行地执行基于软件的自测试(SBST)。图7B说明了用于使用可配置硬件扩展来进行编码处理和基于软件的自测试(SBST)以实现高安全相关的完整性等级的方法714的更详细实施例。
方法714包括可以在时间上并行地操作的两个过程。编码数据字的编码处理在第一过程734中执行。编码处理包括在处理的正常过程期间处理编码数据字,并且因此可以每当***执行处理时被执行。SBST程序在并发的过程736中被执行。SBST在后台中执行并且可以在时间上周期性地完成以测试处理器核心中的故障。
在716处,生成编码数据字。编码数据字由原始数据部分和冗余数据部分组成。编码数据字可以通过在原始数据和冗余数据之间形成特定预定关系的编码公式来生成。
在718处,编码数据字被提供给包括CPU核心和硬件扩展的单通道处理器核心。
在720处,处理编码数据字。在一个实施例中,编码数据字的原始数据部分通过CPU核心来处理,而硬件扩展在硬件中本地处理编码数据字的冗余数据部分(例如,基于硬件组件而不是依赖于软件代码来完成处理)。
在722处,评估处理的结果。从处理器输出的编码数据字的冗余和原始数据部分被比较以确定在CPU核心中是否存在处理器故障。在一个实施例中,如果从单通道处理器核心中输出的编码数据字具有的冗余数据部分和原始数据部分具有与向单通道处理器核心中输入的编码数据字相同的关系,则单通道处理器核心不具有故障。相反,如果从单通道处理器核心中输出的编码数据字具有冗余数据部分,其和原始数据部分不保持与输入的编码数据字相同的关系,则在单通道处理器核心中存在故障。
在724处,生成自测试程序。测试程序的开发可以在开发阶段期间执行。自测试程序可以考虑***的结构架构而被开发,以生成包括对单通道处理核心中的门的子集进行测试的指令序列的自测试程序。
在726处,自测试程序被提供给单通道处理核心。
在728处,自测试程序通过单通道处理核心来处理。通过由门的子集实施的逻辑功能来处理指令序列,以导致包括二进制数据的处理序列的自测试响应。
在730处,收集自测试程序的响应。通过总线,CPU核心对执行的自测试程序的响应被返回到数据存储器,它们被存储在数据存储器中。
在732处,评估测试程序响应的结果。在一个实施例中,校验和算法(例如,循环冗余校验(CRC))被配置为对自测试响应进行操作以从响应中生成预定义值。预定义值与从自测试数据中生成的预定义值进行比较。在两个预定义值之间的未预期变化指示在处理器中存在故障。
虽然关于一个或者多个实施方式示出和描述了本公开内容,但是基于对本说明书以及附图的阅读和理解,本领域的其他技术人员将想到等效的更改或者修改。本公开内容包括所有的这些修改和更改并且仅仅由所附的权利要求来限制。特别地关于由上述组件(例如,元件和/或资源)执行的各种功能,除非另外指示,否则用于描述该组件的术语旨在对应于执行所描述组件的指定功能的任何组件(例如,其是功能等效的),即使在结构上与执行在此说明的示例性公开内容实施方式中的功能的公开结构不等效。此外,虽然关于若干实施方式中的仅仅一个公开了本公开内容的特定特征,但是如针对任何给定或特定应用可能期望的或有利的,该特征可以与其他实施方式的一个或者多个其他特征来组合。此外,如在该申请和所附权利要求中使用的冠词“一”和“一个”要被解释为意指“一个或者多个”。
此外,就术语“包括”、“具有”、“带有”或其变型被用于详细描述或者权利要求中而言,该术语旨在与术语“包含”类似的方式是包括性的。
Claims (18)
1.一种具有单通道处理器核心的计算机处理器,包括:
CPU核心,被配置为处理在编码数据字内包括的原始二进制数据位;
硬件扩展,被配置为选择性地执行在编码数据字内的原始二进制数据位的处理并且在硬件中本地选择性地执行在编码数据字内的冗余数据位的编码处理;
原始数据路径,被配置为向CPU核心提供所述原始二进制数据位中的一个或多个;以及
扩展的数据路径,被配置为向所述硬件扩展提供所述冗余数据位、以及所述原始二进制数据位中的一个或多个。
2.根据权利要求1所述的计算机处理器,所述CPU核心进一步被配置为当所述硬件扩展正在执行冗余数据位的处理时通过在单通道处理器核心中执行自测试程序而选择性地执行基于软件的自测试(SBST)作为单通道处理器核心的后台任务。
3.根据权利要求2所述的计算机处理器,其中所述硬件扩展包括与所述CPU核心耦合的多个晶体管。
4.根据权利要求3所述的计算机处理器,其中所述单通道处理器核心被配置为选择性地在如下两种操作模式之一中进行操作:安全完整性模式,提供改善的安全完整性;或者高性能模式,提供改善的性能。
5.根据权利要求4所述的计算机处理器,其中在安全完整性模式中,所述CPU核心被配置为处理包括所述原始二进制数据位的编码数据字的第一部分,并且所述硬件扩展被配置为并行地处理包括所述冗余数据位的所述编码数据字的剩余部分。
6.根据权利要求4所述的计算机处理器,其中在所述高性能模式中,所述单通道处理器核心被配置为处理包括一个或多个原始数据位的编码数据字的第一部分,并且所述硬件扩展被配置为并行地处理包括一个或多个原始数据位的所述编码数据字的剩余部分。
7.根据权利要求4所述的计算机处理器,其中在所述高性能模式中,所述单通道处理器核心被配置为支持单指令、多数据(SIMD)操作以用于性能改善。
8.根据权利要求4所述的计算机处理器,其中在所述高性能模式中,所述单通道处理器核心被配置为支持多指令、多数据(MIMD)操作以用于性能改善。
9.根据权利要求4所述的计算机处理器,其中在所述安全完整性模式中,所述SBST被执行,并且其中在所述高性能模式中,所述SBST能够被跳过。
10.根据权利要求4所述的计算机处理器,其中所述硬件扩展包括:
多个子单元,可配置为执行在所述安全完整性模式中的编码数据字内的冗余数据位的编码处理以及在所述高性能模式中的原始二进制数据位的处理;以及
切换机构,被配置为根据操作模式来选择性地激活所述多个子单元中的一个或者多个。
11.一种具有单通道处理器核心的电子装置,包括:
编码块,被配置为对数据字执行编码操作以生成具有原始数据位和冗余数据位的编码数据字;
原始数据路径,被配置为从所述编码块接收所述原始数据位中的一个或多个;以及
扩展的数据路径,被配置为从所述编码块选择性地接收所述冗余数据位、以及所述原始数据位中的一个或多个;
硬件扩展,被配置为从扩展的数据路径选择性地接收所述冗余数据位或所述原始数据位并且选择性地执行在编码数据字内的原始数据位的处理并且在硬件中本地选择性地执行在编码数据字内的冗余数据位的编码处理;
CPU核心,被配置为从原始数据路径接收原始数据位且处理原始数据位并且当所述硬件扩展正在执行冗余数据位的处理时选择性地执行基于软件的自测试(SBST)作为后台任务。
12.根据权利要求11所述的装置,其中所述单通道处理器核心被配置为选择性地在如下两种操作模式之一中进行操作:安全完整性模式,提供改善的安全完整性;或者高性能模式,提供改善的性能。
13.根据权利要求12所述的装置,其中在所述高性能模式中,所述单通道处理器核心被配置为支持单指令、多数据(SIMD)操作,或者多指令、多数据(MIMD)操作被支持,以用于性能改善。
14.一种操作具有单通道处理器核心的嵌入式***的方法,所述单通道处理器核心包括硬件扩展和CPU核心,所述方法包括:
确定用于所述单通道处理器核心的操作模式;
基于操作模式,通过扩展的数据路径的方式向所述硬件扩展选择性地提供冗余数据位和原始数据位;
与在所述CPU核心中处理所述原始数据位并行地在安全完整性操作模式中在所述硬件扩展中本地处理所述冗余数据位;以及
与在CPU核心中处理原始数据位中的一个或多个并行地在高性能操作模式中在所述硬件扩展中处理原始数据位中的一个或多个,
其中所述安全完整性操作模式具有比所述高性能操作模式更大的安全完整性等级。
15.根据权利要求14所述的方法,还包括:
操作所述单通道处理器核心以通过以周期性的时间间隔在所述单通道处理器核心中执行自测试代码而选择性地执行基于软件的自测试(SBST)作为所述单通道处理器核心的后台任务。
16.根据权利要求14所述的方法,其中在所述高性能操作模式中,单指令、多数据(SIMD)操作或者多指令、多数据(MIMD)操作被支持以用于性能改善。
17.根据权利要求14所述的方法,还包括:
选择性地激活所述硬件扩展的一个或者多个可配置的子单元以执行在安全完整性操作模式中的编码数据的编码处理或者在所述高性能操作模式中的原始二进制数据的处理。
18.根据权利要求14所述的方法,其中在所述安全完整性操作模式中,所述SBST被执行,并且其中在所述高性能操作模式中,所述SBST能够被跳过。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/954,977 US8621273B2 (en) | 2010-11-29 | 2010-11-29 | Enhanced scalable CPU for coded execution of SW in high-dependable safety relevant applications |
US12/954977 | 2010-11-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591761A CN102591761A (zh) | 2012-07-18 |
CN102591761B true CN102591761B (zh) | 2015-09-30 |
Family
ID=46083149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110386661.9A Active CN102591761B (zh) | 2010-11-29 | 2011-11-29 | 用于安全相关的应用中的sw的编码执行的增强型可缩放cpu |
Country Status (3)
Country | Link |
---|---|
US (1) | US8621273B2 (zh) |
CN (1) | CN102591761B (zh) |
DE (1) | DE102011119585A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011072662A1 (de) * | 2009-12-18 | 2011-06-23 | Conti Temic Microelectronic Gmbh | Überwachungsrechner in einem steuergerät |
US9422917B2 (en) * | 2011-02-24 | 2016-08-23 | Vestas Wind Systems A/S | Safety system for a wind turbine |
CN107003912B (zh) * | 2014-08-04 | 2020-09-08 | 英特尔公司 | 电子***和在该电子***中执行程序的方法 |
ITUB20154590A1 (it) * | 2015-10-13 | 2017-04-13 | Yogitech S P A | Procedimento di esecuzione di programmi in un sistema elettronico per applicazioni in sicurezza funzionale comprendente una pluralita' di processori, relativo sistema e prodotto informatico |
KR20240063179A (ko) * | 2021-09-26 | 2024-05-13 | 세레모픽 인코포레이티드 | 제어 플로우 공격 검출 기능을 구비한 코어 프로세서 및 용장 브랜치 프로세서 |
US11921843B2 (en) | 2021-09-26 | 2024-03-05 | Ceremorphic, Inc. | Multi-threaded secure processor with control flow attack detection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416783A (en) * | 1993-08-09 | 1995-05-16 | Motorola, Inc. | Method and apparatus for generating pseudorandom numbers or for performing data compression in a data processor |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050188182A1 (en) * | 1999-12-30 | 2005-08-25 | Texas Instruments Incorporated | Microprocessor having a set of byte intermingling instructions |
US7233814B2 (en) * | 2003-01-14 | 2007-06-19 | Mack Trucks, Inc. | Communication system for vehicle management |
CN100481060C (zh) * | 2007-03-29 | 2009-04-22 | 中国人民解放军国防科学技术大学 | 一种流处理器中多核扩展的方法 |
US20080256419A1 (en) * | 2007-04-13 | 2008-10-16 | Microchip Technology Incorporated | Configurable Split Storage of Error Detecting and Correcting Codes |
US8239340B2 (en) * | 2008-04-11 | 2012-08-07 | Trevor Hanson | Message conduit systems with algorithmic data stream control and methods for processing thereof |
-
2010
- 2010-11-29 US US12/954,977 patent/US8621273B2/en active Active
-
2011
- 2011-11-28 DE DE102011119585A patent/DE102011119585A1/de active Pending
- 2011-11-29 CN CN201110386661.9A patent/CN102591761B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416783A (en) * | 1993-08-09 | 1995-05-16 | Motorola, Inc. | Method and apparatus for generating pseudorandom numbers or for performing data compression in a data processor |
Also Published As
Publication number | Publication date |
---|---|
DE102011119585A1 (de) | 2012-06-06 |
US20120137171A1 (en) | 2012-05-31 |
CN102591761A (zh) | 2012-07-18 |
US8621273B2 (en) | 2013-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591761B (zh) | 用于安全相关的应用中的sw的编码执行的增强型可缩放cpu | |
US5136704A (en) | Redundant microprocessor control system using locks and keys | |
US9361170B2 (en) | Method for checking data consistency in a system on chip | |
US8793533B2 (en) | Method and device for performing failsafe hardware-independent floating-point arithmetic | |
US11846923B2 (en) | Automation system for monitoring a safety-critical process | |
CN1950775B (zh) | 用于程序执行期间的入侵检测的方法,设备和计算机*** | |
CN107193249B (zh) | 程序开发辅助装置以及程序开发辅助方法 | |
CN115509831A (zh) | 寄存器故障检测器 | |
Thati et al. | Comparative study on data error detection techniques in embedded systems | |
CN102938046B (zh) | 一种基于静态加密存储动态解密运行的芯片存储体及代码保护方法 | |
CN104504336A (zh) | 防止嵌入式***被恶意在线调试的方法和装置 | |
CN117112318A (zh) | 基于risc-v架构的双核容错*** | |
Ghadhab et al. | A controller safety concept based on software-implemented fault tolerance for fail-operational automotive applications | |
CN104346306A (zh) | 高完整性dma操作的***和方法 | |
Jeppesen et al. | Enhancing functional safety in FPGA‐based motor drives | |
Lee et al. | Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants | |
US11982984B2 (en) | Automation system for monitoring a safety-critical process | |
EP3367242B1 (en) | Method of error detection in a microcontroller unit | |
Almukhaizim et al. | Cost-effective graceful degradation in speculative processor subsystems: The branch prediction case | |
Almukhaizim et al. | Compaction-based concurrent error detection for digital circuits | |
JPH09288150A (ja) | 誤り検出方法,論理回路およびフォールトトレラントシステム | |
US9772897B1 (en) | Methods and systems for improving safety of processor system | |
Keren et al. | Duplication based one-to-many coding for Trojan HW detection | |
CN117457583B (zh) | 微粒器件、芯片、电子设备、芯片防护方法、装置及介质 | |
Konakovsky | On safe information processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |