CN103226500B - 通过签名分析计算的系统和方法 - Google Patents
通过签名分析计算的系统和方法 Download PDFInfo
- Publication number
- CN103226500B CN103226500B CN201310039511.XA CN201310039511A CN103226500B CN 103226500 B CN103226500 B CN 103226500B CN 201310039511 A CN201310039511 A CN 201310039511A CN 103226500 B CN103226500 B CN 103226500B
- Authority
- CN
- China
- Prior art keywords
- signature
- address
- microcontroller
- data
- input data
- 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/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
- G06F11/1645—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及通过签名分析计算的系统和方法,公开了一种用于与具有处理单元的微控制器一起使用来处理数据的系统和方法,其提供了将输入数据地址发送至存储器作为对存储在存储器中的输入数据的读请求的一部分;从存储器接收输入数据;生成多个跟踪信号;基于多个跟踪信号生成第一多个签名;从第二微控制器接收第二多个相应签名;将第一多个签名中的每个签名与第二多个相应签名中的每个相应签名相比较;若该比较产生至少一个不匹配,则生成第一错误信号;以及利用第一错误信号来生成用于禁用在微控制器的控制下的一个或多个装置的工作的一个或多个禁用信号。
Description
技术领域
本发明的某些实施方式涉及在计算系统和方法中提供诊断覆盖。更具体地,本发明的某些实施方式涉及在执行计算时的诊断签名(signature)生成,包括作为用于检测短暂和持续的错误的再生地址签名的数据地址的再生。
背景技术
通常,用在安全相关系统中的处理单元经由内部总线系统连接至内部子系统,诸如存储器和外围设备。用于保护总线的数据和地址信号免受通信干扰的常规解决方案是通过增加提供纠错和检测能力的额外的通信线路而在系统中设置冗余。然而,部分由于一些“总线”结构物理上不再可识别和/或容易访问常规纠错和检测能力的应用的“技术水平”设计方法学,对通信信道的错误可能性的估计可能在计算上紧张和不准确。在典型系统中,位于处理单元寻址接口后面的逻辑(诸如与地址解码器和存储器内部的地址总线以及处理单元外部的外围设备相关联的逻辑)未被常规纠错和检测能力保护。
此外,常规冗余和/或算法分集为处理单元的寻址安全失效操作提供了典型解决方案。例如,处理信道可以是时分多路复用的,以执行两个(或更多个)不同算法,定期交叉检查其结果的一致性和/或合理性。可选地,可采用对两个(或更多个)处理信道的时间分离来执行单个算法,也定期交叉检查其结果的一致性和/或合理性。
然而,若使用单个处理信道的时分多路复用技术,则应用开发人员必须建立几个不同算法,对各组结果定义合适的“通过”限制,以及监控时分多路复用的调度。此外,系统的失效反应时间被限制为完整计算各种算法所需的时间。
若使用单个算法的双处理技术,则每条处理信道必须独立,从而最小化普通原因造成的失效,且一条信道中的失效不会影响其他信道。此外,由计算所用的数据必须被保护以防损坏,且软件和软件开发过程必须保证质量。
将期望提供全面、有效的对与计算系统内处理单元的操作相关联的计算错误的诊断覆盖,包括与计算系统的外围设备和存储器的内部子系统内的数据通信和存储相关联的错误覆盖。
发明内容
根据本发明的实施方式,一种微控制器包括处理单元,适于生成多个跟踪信号;签名分析单元,耦接至处理单元和经由签名管道(pipe)耦接至第二处理单元的第二签名分析单元;以及端口逻辑单元,耦接至签名分析单元。在一种实施方式中,多个跟踪信号包括输入数据、输入数据地址、处理单元的一个或多个内部状态、输出数据和输出数据地址。签名分析单元适于基于多个跟踪信号中的一个或多个跟踪信号生成第一多个签名,经由签名管道接收第二多个相应签名,将第一多个签名中的每个签名与第二多个相应签名中的每个相应签名相比较,以及若比较产生至少一个不匹配,则生成第一错误信号。端口逻辑单元适于基于第一错误信号生成装置禁用信号。
根据本发明的另一实施方式,用于与微控制器的处理单元和一个或多个其他微控制器的一个或多个其他处理单元一起使用的签名分析单元包括签名生成单元,适于从处理单元接收多个跟踪信号并基于接收到的多个跟踪信号中的一个或多个跟踪信号生成第一多个签名;第一FIFO缓冲器,适于接收第一多个签名;第二FIFO缓冲器,适于接收基于由一个或多个其他处理单元生成的多个相应跟踪信号的多个相应签名;以及签名比较器,适于接收第一多个签名和多个相应签名,将第一多个签名中的每个签名与多个相应签名中的每个相应签名相比较,以及若比较产生至少一个不匹配,则生成第一错误信号。
在本发明的另一实施方式中,一种系统包括微控制器,其包括处理单元,适于生成多个跟踪信号,以及签名分析单元,耦接至处理单元和经由签名管道耦接至第二处理单元的第二签名分析单元;以及存储器,耦接至微控制器。签名分析单元适于基于多个跟踪信号中的一个或多个跟踪信号生成第一多个签名,经由签名管道接收第二多个相应签名,将第一多个签名中的每个签名与第二多个相应签名中的每个相应签名相比较,以及若比较产生至少一个不匹配,则生成第一错误信号。在一种实施方式中,第一多个签名包括输入数据签名、输入地址签名、处理状态签名、输出数据签名和输出地址签名。
此外,存储器包括地址解码器,适于接收与对存储在存储器中的输入数据的读请求相关联的输入数据地址,以及地址再生单元,适于基于当从存储器读取输入数据时驱动的位线和字线生成再生地址签名。签名分析单元还适于接收再生地址签名,并将输入地址签名(基于输入数据地址)与再生地址签名相比较,且若比较产生不匹配,则生成第二错误信号。
根据本发明的又一实施方式,一种用于通过具有处理单元的微控制器处理数据的方法包括:将输入数据地址发送至存储器作为对存储在存储器中的输入数据的读请求的一部分;从存储器接收输入数据;生成多个跟踪信号,其中,多个跟踪信号中的一个或多个基于输入数据、输入数据地址、处理单元的一个或多个内部处理状态、输出数据和输出数据地址;基于多个跟踪信号生成第一多个签名;从第二微控制器接收第二多个相应签名;将第一多个签名中的每个签名与第二多个相应签名中的每个相应签名相比较;若比较产生至少一个不匹配,则生成第一错误信号;以及利用第一错误信号来生成用于禁用在微控制器的控制下的一个或多个装置的工作的一个或多个禁用信号。
根据以下描述和附图,将更充分理解本发明的这些和其他优势、方面及新特征以及其示例性的实施方式的细节。
附图说明
图1是根据本发明实施方式的计算机处理系统的示意图;
图2是根据本发明实施方式的图1所示程序存储器的示意图;
图3是根据本发明实施方式的图1所示微控制器的签名分析单元的示意图;
图4是示出根据本发明实施方式的集成在单个芯片(die)上的两个微控制器的示意图;
图5是示出根据本发明实施方式的集成在分离芯片上的两个微控制器的示意图;
图6是示出根据本发明实施方式的集成在分离芯片上的交叉耦接的微控制器的示意图。
具体实施方式
图1是根据本发明实施方式的计算机处理系统100的示意图。计算机处理系统100的部件包括微控制器105、程序存储器110和/或数据存储器115和/或一个或多个外围存储器120。如图所示,微控制器105、程序存储器110、数据存储器115和一个或多个外围存储器120设置在分离的芯片(或分离的微芯片)上。然而,本发明的范围覆盖任何数量的提供计算机处理系统100的部件的各种组合的芯片(或微芯片)。
微控制器105包括一个或多个数据缓冲器125,其可经由系统总线(未示出)耦接至一个或多个内部存储器(未示出),以及经由系统总线耦接至一个或多个片外存储器(未示出),以及耦接至一个或多个存储器控制器和/或I/O接口(未示出)。内部存储器和外部存储器可包括用于存储例如操作系统(OS)和嵌入式和/或非嵌入式程序应用的易失性随机存取存储器(RAM)和非易失性只读存储器(ROM)的任何组合。
微控制器105还包括一个或多个地址生成器130、处理单元135、签名分析单元140、重取/反向查找单元145和端口逻辑单元150。处理单元135例如可以是微处理器、中央处理单元或本领域技术人员已知的任何其他类型的处理系统,其可被配置为接收输入数据(即,读取数据)、输入数据的相应存储器地址(即,输入数据地址)和程序应用指令,执行程序应用指令,以及生成输出数据(写入数据)和输出数据的相应存储器地址(即,输出数据地址)。地址、数据以及对应于处理单元135的一个或多个内部状态的信息中的一些或全部可作为跟踪信号155而从处理单元135发送至签名分析单元140。在一种实施方式中,该跟踪信号155由处理单元135的处理管线160生成。例如,对应于内部状态的信息可以是对应于处理单元135内部操作的信息,诸如操作码、标志、分支、中断状态以及其他状态信息。
如本领域技术人员已知,通过定位和纠正发送错误,纠错码(ECC)被用于校验数据和数据地址的发送。ECC确保对应于分别从数据缓冲器125和地址生成器130发送至程序存储器110、数据存储器115和一个或多个外围存储器120的数据的数据和地址(即数据地址)被接收而无发送错误。例如,若ECC指示在数据和/或数据地址发送中的错误,则数据和/或数据地址可能需要重新发送,或者程序存储器110、数据存储器115和/或外围存储器120适于使用接收到的ECC来实时纠正相应数据和/或数据地址发送错误,或者微控制器105可生成禁用信号,该禁用信号禁用由微控制器105控制的一个或多个装置或子系统的工作。
此外,处理单元135可从数据缓冲器125接收输入(即,读取)数据,以及向数据缓冲器125发送输出(即,写入)数据(即,例如由处理单元生成的数据)。处理单元135还可经由地址生成器130来接收输入(即,读取)数据地址,且可将对应于所生成的数据(即,输出数据或写入数据)的地址信息发送至地址生成器130以转换成输出数据地址。
在操作中,签名分析单元140从处理单元135的管线160接收跟踪信号155,并基于当访问存储在外部存储器中的输入数据时在外部存储器中被驱动的位线和字线,从程序存储器110、数据存储器115和外围存储器120(即,统称为外部存储器)中的一个或多个接收再生地址签名。以下将结合图2更充分地讨论该再生地址签名。
签名分析单元140适于对如由跟踪信号发送的输入数据、输出数据、处理单元135的内部状态、输入数据地址和输出数据地址中的一个或多个(即,处理诊断变量)执行诊断,以及利用再生地址签名来确定关于生成、通信(例如,经由程序存储器110、数据存储器115、外围存储器120和/或微控制器105内部的系统总线)和/或任何处理诊断变量的存储是否已发生短暂的或永久的错误,以及从存储器110、115和/或120为读取数据提供地址验证。对处理诊断变量的分析提供了校验处理单元135的无错误工作的手段。
若检测到一个或多个错误,则微控制器105可实施一个或多个动作,包括但不限于经由重取/反向查找单元145从程序存储器110、数据存储器115或一个或多个外围存储器120重取数据,和/或经由端口逻辑单元150应用合适的端口逻辑来禁用由微控制器105控制的一个或多个装置或子系统的工作。以下将结合图3进一步更详细地讨论签名分析单元140。
图2是根据本发明实施方式的图1的程序存储器110的示意图。如图所示,程序存储器包括存储器阵列202(其包括多个由字线235和位线240选址(即,访问)的存储单元)、数据ECC检查/生成单元205、存储器数据缓冲器210、地址ECC检查单元215、地址解码器220、用于生成并可选地对再生地址签名编码的地址再生单元225和地址签名缓冲器230。程序存储器110还可包括位于程序存储器110内部部件之间且提供地址、数据、ECC和再生地址签名以及任何偏置和控制信号的通信的内部总线(未示出)。
存储器数据缓冲器210被配置为从微控制器105的数据缓冲器125接收写数据,且数据ECC检查/生成单元205被配置为接收已被应用到写数据的ECCd(也称为写数据的ECCd)。地址解码器220被配置为接收对应于接收到的写数据的写数据地址,以及地址ECC检查单元215被配置为接收已被应用到相应的写数据地址的ECCa(也称为写数据地址的ECCa)。
在操作中,数据ECC检查/生成单元205在微控制器105与程序存储器110之间提供通信接口,且被配置为针对发送错误利用相应的接收到的写数据的ECCd来检查接收到的写数据,并根据通过由地址解码器220接收并解码的相应的写数据地址驱动的位线和字线来将接收到的写数据和相应的ECCd发送至特定存储单元。数据ECC检查/生成单元205还被配置为基于通过地址解码器220从微控制器105接收(并解码)的读数据地址,从存储器阵列202中的特定单元接收读数据和该读数据的相应ECCd,针对发送错误利用相应的读数据的ECCd来检查接收到的读数据,以及将接收到的读数据和该读数据的相应ECCd发送至微控制器105。
如上所述,针对发送错误,ECC检查/生成单元205利用接收到的写或读数据的相应的ECCd来检查从微控制器105接收到的写数据或从特定存储器存储单元接收到的读数据。在一种实施方式中,在发现一个或多个发送错误后,ECC检查/生成单元205纠正数据中的错误,且能使数据和该数据的相应ECCd发送到合适的目的地(即,微控制器105或存储单元)。在另一实施方式中,在发现一个或多个发送错误后,ECC检查/生成单元205纠正数据中的错误,生成新的正确数据的ECCd,以及能使数据和该数据的相应的新的ECCd发送至合适的目的地。
基于在从存储器阵列202中读出存储数据时驱动的特定位线和字线,地址再生单元225生成再生地址签名,并经由地址签名缓冲器230将再生地址签名发送至微控制器105。例如,程序存储器110可从微控制器105接收数据读取请求,和/或地址解码器220可接收被请求数据的读数据地址,以及地址ECC检查单元215可接收读数据地址的ECCa。在地址ECC检查单元215利用接收到的读数据地址的ECCa对接收到的读数据地址执行任何必要的纠错之后,根据依照接收到的读数据地址来驱动的特定位线和字线,从存储器阵列202中读出被请求的读数据和被请求的读数据的相应ECCd。微控制器105接收被请求的读数据(即,也称为输入数据)和被请求的读数据的ECCd。基于在从存储器阵列202访问被请求的读数据时驱动的特定位线和字线,地址再生单元225生成再生地址签名,并经由地址签名缓冲器230将再生地址签名发送至微控制器105的签名分析单元140。
在一种实施方式中,再生地址签名是再生地址的无损编码。在另一实施方式中,再生地址签名是无压缩再生地址。然而,本发明的范围包括被具体化为在对存储器阵列202的每次访问后实际驱动的位线和字线的任何电子化表示的再生地址签名。
再生地址签名在被发送至微控制器105之前可存储在地址签名缓冲器230中。在一种实施方式中,在对存储器阵列202的每次读和/或写访问后,再生地址签名被发送至微控制器105。当诸如数据包的数据被读或写到存储器阵列202时发生存储器访问。如以下结合图3进一步讨论,微控制器105的签名分析单元140被配置为接收再生地址签名并检查地址的一致性。例如,在一种实施方式中,签名分析单元140将再生地址签名与由签名分析单元140基于读数据地址生成的地址签名相比较。由于接收输入数据和输入数据地址的处理单元135位于与地址解码器和用于控制存储器阵列202的驱动器相距一定的距离处,所以签名分析单元140可诊断通常跨接程序存储器110的任何内部导线的状态。另外,在一种实施方式中,处理单元135可用慢速技术或者用较长的建立保持时序要求来建立,使得若地址生成器单元的预期时序比预期慢,则签名生成将更易受比存储器更慢的时序影响,因此,在存储器产生错误数据之前会产生不正确的签名。这保证了在时序违规的情况下总是首先触发签名机制。
在本发明的其他示例性实施方式中,数据存储器115和一个或多个外围存储器120具有带有与程序存储器110相同的附图标记的相同部件,并以相同方式生成再生地址签名。
图3是根据本发明实施方式的图1所示的微控制器105的签名分析单元140的示意图。签名分析单元140包括签名生成单元305、两个签名先入先出(FIFO)缓冲器310a-310b和签名比较器315。签名生成单元305被配置为从处理单元135的管线160接收跟踪信号155,处理跟踪信号以生成签名312,以及将签名312发送至签名FIFO缓冲器310a-310b中的一个或多个以用于后处理。
如图所示,签名分析单元140包括两个签名FIFO缓冲器310a-310b,其用于存储和对准由处理单元135的两个不同处理线程生成的签名312,和/或用于存储和对准源自两个不同处理单元的签名。然而,为了能实现存储并对准由每个处理单元的任何数量的处理线程生成的签名和/或源自任何数量的不同处理单元的签名,本发明的范围还包括含有任何数量的FIFO结构的签名分析单元140。
在一种实施方式中,签名可包括一个或多个签名域。签名比较器315被配置为接收并比较存储在第一FIFO缓冲器310a中的签名的签名域与存储在第二FIFO缓冲器310b中的签名的对准的(即,相应的)签名域。尽管本发明的范围覆盖对准两个或更多个签名的任何技术,例如,每一个签名可具有由一个或多个被用作用于对准两个或更多个签名的标记的唯一索引组成的一个或多个签名域。在一种实施方式中,若签名比较器315确定在任何一个或多个被比较的签名域之间存在差异(即,不匹配),则签名比较器315可触发“系统事件”。例如,签名比较器315可触发禁用一个或多个由微控制器105控制的装置(未示出)的硬件陷阱和/或管脚切换。在另一实施方式中,签名比较器315可能生成错误信号,其能使软件或固件发出控制信号和/或指令,以从程序存储器110和/或数据存储器115和/或外围存储器120重取数据,和/或使处理单元135重复一个或多个导致错误信号产生的程序应用执行步骤。
如图所示,签名生成单元305包括输入数据跟踪处理块320a,其用于根据一个或多个跟踪信号155生成输入数据签名;输入地址跟踪处理块320b,其用于根据一个或多个跟踪信号155生成输入地址签名;CPU(也称为处理单元)状态跟踪处理块320c,其用于根据一个或多个跟踪信号155生成CPU状态签名;输出数据跟踪处理块320d,其用于根据一个或多个跟踪信号155生成输出数据签名;以及输出地址跟踪处理块320e,其用于根据一个或多个跟踪信号155生成输出地址签名。
在一种实施方式中,跟踪处理块320a-320e是五个循环冗余校验(CRC)多项式算法单元。CRC多项式算法块可基于由处理单元135对每条程序指令的执行来生成新的一组签名。根据另一实施方式,为了限制所生成的签名的总数,CRC多项式算法块仅基于一个或多个特定代码指令或特定代码顺序(连续的或非连续的)的执行而适于(或受控)生成新的一组签名。在一种实施方式中,由处理单元135执行的软件或在处理单元135外部执行的软件可实现包括CRC多项式算法块的变量和/或常量的修改,且软件可使这些变量和/或常量中的任何一个被用户观察到。
可选地,签名生成单元305可包括输入数据寄存器(未示出),其用于存储由输入数据跟踪处理块320a生成的输入数据签名;输入地址寄存器(未示出),其用于存储由输入地址跟踪处理块320b生成的输入地址签名;CPU状态寄存器(未示出),其用于存储由CPU状态跟踪处理块320c生成的CPU状态签名;输出数据寄存器(未示出),其用于存储由输出数据跟踪处理块320d生成的输出数据签名;以及输出地址寄存器(未示出),其用于存储由输出地址跟踪处理块320e生成的输出地址签名。
尽管签名生成单元305包括五个跟踪处理块320a-320e且可选地,可包括五个相应的签名寄存器,但本发明的范围涵盖任何数量的跟踪处理块和任何数量的相应的签名寄存器。
如图所示,第一FIFO缓冲器310a包括第一输入数据签名缓冲器330a,其被配置为存储从签名生成单元305接收到的第一输入数据签名;第一输入地址签名缓冲器330b,其被配置为存储从签名生成单元305接收到的第一输入地址签名;第一CPU状态签名缓冲器330c,其被配置为存储从签名生成单元305接收到的第一CPU状态签名;第一输出数据签名缓冲器330d,其被配置为存储从签名生成单元305接收到的第一输出数据签名;以及第一输出地址签名缓冲器330e,其被配置为存储从签名生成单元305接收到的第一输出地址签名。
第二FIFO缓冲器310b包括第二输入数据签名缓冲器335a,其被配置为存储经由签名管道340从第二处理单元(未示出)的第二签名生成单元(未示出)接收到的第二输入数据签名;第二输入地址签名缓冲器335b,其被配置为存储经由签名管道340接收到的第二输入地址签名和/或存储经由耦接至程序存储器110的再生地址签名缓冲器230的总线345接收到的再生地址签名;第二CPU状态签名缓冲器335c,其被配置为存储经由签名管道340接收到的第二CPU状态签名;第二输出数据签名缓冲器335d,其被配置为存储经由签名管道340接收到的第二输出数据签名;以及第二输出地址签名缓冲器335e,其被配置为存储经由签名管道340接收到的第二输出地址签名。
在另一实施方式中,经由签名管道340接收到的签名并不由第二处理单元(未示出)的第二签名生成单元(未示出)生成,而是基准签名。例如,基准签名是由执行预定代码顺序的处理单元135产生的已知的预期签名。
尽管如图所示,签名分析单元140包括作为两个FIFO缓冲器实施的两个签名缓冲器310a-310b,但本发明的范围涵盖适于缓冲从签名生成单元、签名管道和/或总线接收到的签名的任何存储缓冲器,诸如循环缓冲器、随机存取缓冲器、链表缓冲器或存储结构的组合。
在一种实施方式中,第一比较窗口350a内的一个或多个第一签名和第二比较窗口350b内的一个或多个第二签名被周期性发送至签名比较器315。
本发明的范围包括处理单元135和第二处理单元(未示出)被集成到与微控制器105相同或不同的芯片上的实施方式。在另一实施方式中,微控制器105的签名分析单元140包括三个或更多个签名FIFO缓冲器,其中,每个FIFO缓冲器耦接至与不同的处理单元耦接的不同签名生成单元。
如图所示,签名比较器315包括输入数据签名处理块355a、输入地址签名处理块355b、CPU状态签名处理块355c、输出数据签名处理块355d和输出地址签名处理块355e。在操作中,处理块355a-355e中的每一个将接收到的第一和第二签名相比较,且若一个或多个处理块确定接收到的第一和第二签名不匹配(即,存在差异或不匹配),则处理块355a-355e中的一个或多个生成错误信号。
在正常(即无差错)的工作条件下(即,当签名分析单元140未生成任何错误信号时),端口逻辑单元150生成能使其他装置和/或在微控制器105外部的子系统工作的系统使能信号。在一种实施方式中,当端口逻辑单元150接收由签名比较器315生成的错误信号E1时,部分基于错误信号是否是由输入数据签名处理块355a和/或输入地址签名处理块355b和/或CPU状态签名处理块355c和/或输出数据签名处理块355d和/或输出地址签名处理块355e生成,端口逻辑块150生成禁用一个或多个装置或子系统工作的一个或多个系统禁用信号。
在另一实施方式中,若由于再生地址签名(经由第二签名管道345通过第二输入地址缓冲器335b从程序存储器110、数据存储器115和/或外围存储器120接收)与经由第一输入地址缓冲器330b从签名生成单元305接收到的相应的第一输入地址签名之间不匹配,签名比较器315生成错误信号E2,这意味着被请求从存储器110、115和/或120读取的输入数据与实际从存储器读取的数据不同,则重取/反向查找单元145在接收到错误信号E2后,发送用于从存储器110、115和/或120读取输入数据的第二请求。表示与对输入数据的读请求相关联的在存储器110、115和/或120中访问的实际地址的再生地址签名与从签名生成单元305接收到的表示所请求的输入数据的地址(即,从一个或多个地址生成器130发送至存储器110、115和/或120的输入数据地址)的输入地址签名之间的比较为地址验证提供了一种系统和方法。
图4是示出根据本发明实施方式的集成在单个芯片410上的两个微控制器405a和405b的示意图。微控制器405a和405b可与图1所示的微控制器105相同。如图4所示,芯片410(即,微控制器芯片)包括第一微控制器405a,其包括耦接至与第一端口逻辑单元425a和第一重取/反向查找单元430a耦接的第一签名分析单元420a的第一处理单元415a;以及第二微控制器405b,其包括耦接至与第二端口逻辑单元425b和第二重取/反向查找单元430b耦接的第二签名分析单元420b的第二处理单元415b。
第一签名FIFO缓冲器440a从第一签名生成器445a接收第一签名,以及经由第二签名管道450从第二签名生成器445b接收第二签名。第二签名FIFO缓冲器440b从第二签名生成器445b接收第二签名,以及经由第一签名管道455从第一签名生成器445a接收第一签名。在一种实施方式中,第一微控制器405a经由片内隔离机制与第二微控制器405b电隔离和热隔离。本发明的范围涵盖对于本领域技术人员已知的单独实施或结合实施的其他隔离机制。
在本发明的另一实施方式中,与典型的片内连接的带宽相比,签名管道450和455是窄带宽管道。窄带宽管道的使用允许唯一的电源网络和时钟系统被用于签名管道的实施。
图5是示出根据本发明实施方式的集成在分离的芯片上的两个微控制器的示意图。如图所示,第一微控制器505a集成在第一芯片510a上,第二微控制器505b集成在第二芯片510b上,以及第一和第二微控制器通过串行接口通信式耦接。在一种实施方式中,第一微控制器505a包括第一双串行外围接口(第一双SPI)515a,其用于经由第二管道520从第二签名分析单元530b的第二签名生成器525b接收第二签名,且将由第一签名分析单元530a的第一签名生成单元525a生成的第一签名经由第一管线540发送至第二签名FIFO535b。第二微控制器505b包括第二双SPI515b,其用于经由第一管线540从第一签名分析单元530a的第一签名生成器525a接收第一签名,并将由第二签名分析单元530b的第二签名生成单元525b生成的第二签名经由第二管线520发送至第一签名FIFO535a。
图6是示出根据本发明实施方式的集成在分离的芯片上的交叉耦接的微控制器的示意图。如图所示,第一微控制器605a集成在第一芯片610a上,第二微控制器605b集成在第二芯片610b上,第三微控制器605c集成在第三芯片610c上,以及微控制器对通过双SPI通信式耦接。
在一种实施方式中,第一微控制器605a包括第一双SPI615a,其用于经由第三管线620从第三签名分析单元630c的第三签名生成单元625c接收第三签名,并将由第一签名分析单元630a的第一签名生成单元625a生成的第一签名经由第一管线640发送至第二签名FIFO635b。第二微控制器605b包括第二双SPI615b,其用于经由第一管线640从第一签名分析单元630a的第一签名生成单元625a接收第一签名,并将由第二签名分析单元630b的第二签名生成单元625b生成的第二签名经由第三管线645发送至第三签名FIFO635c。第三微控制器605c包括第三双SPI615c,其用于经由第三管线645从第二签名分析单元630b的第二签名生成单元625b接收第二签名,并将由第三签名分析单元630c的第三签名生成单元625c生成的第三签名经由第三管线620发送至第一签名FIFO635a。
尽管图6示出了位于分离的芯片上的交叉耦接的微控制器,但当多个微控制器位于单个芯片上时或者当微控制器中的一些位于单个芯片上且其他微控制器位于分离的芯片上(即,混合系统)时,本发明的范围涵盖类似的交叉耦接的连接架构。生成本地签名并与由其他处理单元生成的签名相比的非对称特性允许实时比较任何数量的处理核,允许构造多核、多处理器和混合系统。此外,尽管图5和图6示出了包括双SPI的微控制器,本发明的范围涵盖包括所有类型的串行和并行通信总线的微控制器。
尽管本发明已参照特定实施方式来描述,但本领域技术人员将理解,可进行各种更改且可用等同物代替而不脱离本发明的范围。此外,可进行多种修改使特定的情况或材料适于本发明的教导而不脱离其范围。因此,其目的在于本发明不限于所公开的特定实施方式,而是指本发明将包括落在所附权利要求范围内的所有实施方式。
Claims (22)
1.一种微控制器,包括:
处理单元,适于生成多个跟踪信号,所述多个跟踪信号中的一个或多个跟踪信号包括输入数据、输入数据地址、所述处理单元的一个或多个内部状态、输出数据和输出数据地址;
签名分析单元,耦接至所述处理单元和经由签名管道耦接至第二处理单元的第二签名分析单元,所述签名分析单元适于:
基于所述多个跟踪信号中的一个或多个跟踪信号生成包括输入地址签名的第一多个签名,
经由所述签名管道接收第二多个签名,
将所述第一多个签名中的每个签名与所述第二多个签名中的每个相应签名相比较,以及
若所述比较产生至少一个不匹配,则生成第一错误信号;
从外部存储器接收再生地址签名,以及将所述输入地址签名与所述再生地址签名相比较,且若所述比较产生不匹配,则生成第二错误信号;以及
端口逻辑单元,耦接至所述签名分析单元,所述端口逻辑单元适于基于所述第一错误信号生成装置禁用信号。
2.根据权利要求1所述的微控制器,其中,所述签名分析单元包括:
签名生成单元,包括多个跟踪处理块,所述多个跟踪处理块适于接收所述多个跟踪信号,并基于所述多个跟踪信号中的所述一个或多个跟踪信号生成所述第一多个签名;
第一存储器缓冲器,适于接收所述第一多个签名;
第二存储器缓冲器,适于接收所述第二多个签名;以及
签名比较器,包括多个签名处理块,所述多个签名处理块适于接收所述第一多个签名和所述第二多个签名,将所述第一多个签名中的每个签名与所述第二多个签名中的每个相应签名相比较,以及若所述比较产生所述至少一个不匹配,则生成所述第一错误信号。
3.根据权利要求2所述的微控制器,其中,所述第一多个签名包括输入数据签名、处理状态签名、输出数据签名和输出地址签名。
4.根据权利要求3所述的微控制器,其中,所述第二存储器缓冲器还适于从外部存储器接收再生地址签名,以及所述签名比较器还适于将所述输入地址签名与所述再生地址签名相比较,且若所述比较产生不匹配,则生成第二错误信号,其中,所述再生地址签名基于当访问存储在所述外部存储器中的所述输入数据时在所述外部存储器中驱动的位线和字线,并且所述输入地址签名基于当请求所述输入数据时发送至所述外部存储器的所述输入数据地址。
5.根据权利要求4所述的微控制器,其中,所述外部存储器是程序存储器、数据存储器或外部装置的存储器。
6.根据权利要求4所述的微控制器,还包括重取/反向查找单元,其耦接至所述签名比较器,所述重取/反向查找单元适于在接收到所述第二错误信号后重复对来自所述外部存储器的所述输入数据的所述请求。
7.根据权利要求6所述的微控制器,其中,所述重取/反向查找单元还适于仅在接收到小于或等于预定最大数量的所述第二错误信号后,重复对来自所述外部存储器的所述输入数据的所述请求。
8.根据权利要求1所述的微控制器,其中,所述端口逻辑单元还适于将所述装置禁用信号发送至由所述微控制器控制的装置。
9.根据权利要求1所述的微控制器,其中,所述微控制器被形成在第一芯片上。
10.根据权利要求9所述的微控制器,其中,所述第二签名分析单元和所述第二处理单元是形成在所述第一芯片上的第二微控制器的部件。
11.根据权利要求9所述的微控制器,其中,所述第二签名分析单元和所述第二处理单元是形成在第二芯片上的第二微控制器的部件。
12.一种用于与微控制器中的处理单元和一个或多个其他微控制器中的一个或多个其他处理单元一起使用的签名分析单元,其中,所述微控制器中的所述处理单元生成多个跟踪信号,所述多个跟踪信号包括输入数据、输入数据地址、所述处理单元的一个或多个内部状态、输出数据和输出数据地址,且所述一个或多个其他处理单元中的每一个生成多个相应跟踪信号,所述签名分析单元包括:
签名生成单元,适于接收所述多个跟踪信号并基于接收到的所述多个跟踪信号中的一个或多个跟踪信号生成包括输入地址签名的第一多个签名;
第一存储器缓冲器,适于接收所述第一多个签名;
第二存储器缓冲器,适于接收基于由所述一个或多个其他处理单元中的一个其他处理单元生成的所述多个相应跟踪信号的多个相应签名,并且从外部存储器接收再生地址签名;以及
签名比较器,适于接收所述第一多个签名和所述多个相应签名,将所述第一多个签名中的每个签名与所述多个相应签名中的每个相应签名相比较,并且若所述比较产生至少一个不匹配,则生成第一错误信号;以及所述签名比较器还适于将所述输入地址签名与所述再生地址签名相比较,且若所述比较产生不匹配,则生成第二错误信号。
13.根据权利要求12所述的签名分析单元,其中,所述第一多个签名包括输入数据签名、处理状态签名、输出数据签名和输出地址签名。
14.根据权利要求13所述的签名分析单元,其中,所述再生地址签名基于当所述处理单元在对存储在外部存储器中的所述输入数据的读请求中将所述输入数据地址发送至所述外部存储器时、在所述外部存储器中驱动的位线和字线,并且所述输入地址签名基于所述输入数据地址。
15.一种处理系统,包括:
微控制器,包括:
处理单元,适于生成多个跟踪信号,所述多个跟踪信号中的一个或多个跟踪信号包括输入数据、输入数据地址、所述处理单元的一个或多个内部状态、输出数据和输出数据地址;
签名分析单元,耦接至所述处理单元和经由签名管道耦接至第二处理单元的第二签名分析单元,所述签名分析单元适于:
基于所述多个跟踪信号中的一个或多个跟踪信号生成第一多个签名,其中,所述第一多个签名包括输入数据签名、输入地址签名、处理状态签名、输出数据签名和输出地址签名,
经由所述签名管道接收第二多个签名,
将所述第一多个签名中的每个签名与所述第二多个签名中的每个相应签名相比较,以及
若所述比较产生至少一个不匹配,则生成第一错误信号;以及
存储器,耦接至所述微控制器,所述存储器包括:
地址解码器,适于接收与对存储在所述存储器中的所述输入数据的读请求相关联的所述输入数据地址,以及
地址再生单元,适于基于当从所述存储器读取所述输入数据时驱动的位线和字线生成再生地址签名,其中,
所述签名分析单元还适于接收所述再生地址签名,并将所述输入地址签名与所述再生地址签名相比较,且若所述比较产生不匹配,则生成第二错误信号,其中,所述输入地址签名基于所述输入数据地址。
16.根据权利要求15所述的系统,还包括耦接至所述签名分析单元的端口逻辑单元,所述端口逻辑单元适于基于所述第一错误信号生成装置禁用信号。
17.根据权利要求15所述的系统,还包括耦接至所述签名分析单元的重取/反向查找单元,所述重取/反向查找单元适于基于所述第二错误信号,重复对存储在所述存储器中的所述输入数据的所述读请求。
18.一种用于通过微控制器处理数据的方法,所述微控制器具有处理单元,所述方法包括:
将输入数据地址发送至存储器作为对存储在所述存储器中的输入数据的读请求的一部分;
从所述存储器接收所述输入数据;
生成多个跟踪信号,其中,所述多个跟踪信号中的一个或多个基于所述输入数据、所述输入数据地址、所述处理单元的一个或多个内部处理状态、输出数据和输出数据地址;
基于所述多个跟踪信号生成包括输入地址签名的第一多个签名;
从第二微控制器接收第二多个签名;
将所述第一多个签名中的每个签名与所述第二多个签名中的每个相应签名相比较;
若所述比较产生至少一个不匹配,则生成第一错误信号;
从所述存储器接收再生地址签名,以及将所述输入地址签名与所述再生地址签名相比较,且若所述比较产生不匹配,则生成第二错误信号;以及
利用所述第一错误信号来生成用于禁用在所述微控制器的控制下的一个或多个装置的工作的一个或多个禁用信号。
19.根据权利要求18所述的方法,其中,所述第一多个签名包括输入数据签名、处理状态签名、输出数据签名和输出地址签名。
20.根据权利要求19所述的方法,还包括:利用所述第二错误信号来重复将所述输入数据地址发送至所述存储器作为对存储在所述存储器中的所述输入数据的第二读请求的一部分,
其中,所述再生地址签名基于当从所述存储器读取所述输入数据时在所述存储器中驱动的位线和字线。
21.一种用于通过微控制器处理数据的系统,所述微控制器具有处理单元,所述系统包括:
用于将输入数据地址发送至存储器作为对存储在所述存储器中的输入数据的读请求的一部分的装置;
用于从所述存储器接收所述输入数据的装置;
用于生成多个跟踪信号的装置,其中,所述多个跟踪信号中的一个或多个基于所述输入数据、所述输入数据地址、所述处理单元的一个或多个内部处理状态、输出数据和输出数据地址;
用于基于所述多个跟踪信号生成包括输入地址签名的第一多个签名的装置,其中,所述第一多个签名包括输入数据签名、输入地址签名、处理状态签名、输出数据签名和输出地址签名;
用于从第二微控制器接收第二多个签名的装置;
用于将所述第一多个签名中的每个签名与所述第二多个签名中的每个相应签名相比较的装置;
用于在所述比较产生至少一个不匹配时生成第一错误信号的装置;
用于利用所述第一错误信号来生成用于禁用在所述微控制器的控制下的一个或多个装置的工作的一个或多个禁用信号的装置;
用于从所述存储器接收再生地址签名的装置;
用于将所述再生地址签名与所述输入地址签名相比较的装置;以及
用于在所述比较产生不匹配时生成第二错误信号的装置。
22.根据权利要求21所述的系统,还包括:用于利用所述第二错误信号来重复将所述输入数据地址发送至所述存储器作为对存储在所述存储器中的所述输入数据的第二读请求的一部分的装置,其中,
所述再生地址签名基于当从所述存储器读取所述输入数据时在所述存储器中驱动的位线和字线。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/362,433 | 2012-01-31 | ||
US13/362,433 US8880961B2 (en) | 2012-01-31 | 2012-01-31 | System and method of computation by signature analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103226500A CN103226500A (zh) | 2013-07-31 |
CN103226500B true CN103226500B (zh) | 2016-08-10 |
Family
ID=48794721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310039511.XA Active CN103226500B (zh) | 2012-01-31 | 2013-01-31 | 通过签名分析计算的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8880961B2 (zh) |
CN (1) | CN103226500B (zh) |
DE (1) | DE102013001627B4 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856406B2 (en) * | 2011-09-14 | 2014-10-07 | Microchip Technology Incorporated | Peripheral trigger generator |
US9378049B1 (en) | 2015-02-12 | 2016-06-28 | Amazon Technologies, Inc. | Servicing I/O requests in an I/O adapter device |
US10049001B1 (en) * | 2015-03-27 | 2018-08-14 | Amazon Technologies, Inc. | Dynamic error correction configuration |
US9886405B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Low latency write requests over a network using a pipelined I/O adapter device |
US9940284B1 (en) | 2015-03-30 | 2018-04-10 | Amazon Technologies, Inc. | Streaming interconnect architecture |
US9864538B1 (en) | 2015-06-25 | 2018-01-09 | Amazon Technologies, Inc. | Data size reduction |
US11055403B2 (en) * | 2017-01-06 | 2021-07-06 | International Business Machines Corporation | Method, system, and computer program product for application identification in a cloud platform |
IT201800005506A1 (it) * | 2018-05-18 | 2019-11-18 | Sistema di elaborazione, relativo circuito integrato e procedimento | |
GB2579591B (en) * | 2018-12-04 | 2022-10-26 | Imagination Tech Ltd | Buffer checker |
CN110309082A (zh) * | 2019-04-23 | 2019-10-08 | 深圳市全智芯科技有限公司 | 数据存储方法、存储系统及微控制器 |
US11645134B2 (en) * | 2019-08-20 | 2023-05-09 | Micron Technology, Inc. | Apparatuses and methods for fuse error detection |
GB202019527D0 (en) * | 2020-12-10 | 2021-01-27 | Imagination Tech Ltd | Processing tasks in a processing system |
US11561857B2 (en) * | 2021-05-11 | 2023-01-24 | Robert Bosch Gmbh | Method for the secured storing of a data element to be stored by a computer program in an external memory |
US11573921B1 (en) * | 2021-08-02 | 2023-02-07 | Nvidia Corporation | Built-in self-test for a programmable vision accelerator of a system on a chip |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073977A (zh) * | 2010-12-13 | 2011-05-25 | 中国联合网络通信集团有限公司 | 数字签名的生成和验证方法、设备及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604754A (en) * | 1995-02-27 | 1997-02-18 | International Business Machines Corporation | Validating the synchronization of lock step operated circuits |
US5799022A (en) * | 1996-07-01 | 1998-08-25 | Sun Microsystems, Inc. | Faulty module location in a fault tolerant computer system |
JP4422022B2 (ja) * | 2002-08-21 | 2010-02-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データリンクを監視する方法 |
US8024708B2 (en) * | 2006-06-20 | 2011-09-20 | Google Inc. | Systems and methods for debugging an application running on a parallel-processing computer system |
US7853848B2 (en) * | 2007-10-22 | 2010-12-14 | International Business Machines Corporation | System and method for signature-based systematic condition detection and analysis |
US8171328B2 (en) * | 2008-12-31 | 2012-05-01 | Intel Corporation | State history storage for synchronizing redundant processors |
US8583971B2 (en) * | 2010-12-23 | 2013-11-12 | Advanced Micro Devices, Inc. | Error detection in FIFO queues using signature bits |
-
2012
- 2012-01-31 US US13/362,433 patent/US8880961B2/en active Active
-
2013
- 2013-01-30 DE DE102013001627.4A patent/DE102013001627B4/de active Active
- 2013-01-31 CN CN201310039511.XA patent/CN103226500B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073977A (zh) * | 2010-12-13 | 2011-05-25 | 中国联合网络通信集团有限公司 | 数字签名的生成和验证方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
DE102013001627B4 (de) | 2019-11-21 |
CN103226500A (zh) | 2013-07-31 |
US8880961B2 (en) | 2014-11-04 |
US20130198571A1 (en) | 2013-08-01 |
DE102013001627A1 (de) | 2013-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103226500B (zh) | 通过签名分析计算的系统和方法 | |
Wang et al. | Dramdig: A knowledge-assisted tool to uncover dram address mapping | |
US11874900B2 (en) | Cluster interlayer safety mechanism in an artificial neural network processor | |
US11237894B1 (en) | Layer control unit instruction addressing safety mechanism in an artificial neural network processor | |
CN103140841A (zh) | 保护存储器的部分的方法和装置 | |
US20200226065A1 (en) | Preparing a key block in a memory system | |
CN105138903A (zh) | 一种基于ret指令与jmp指令的rop攻击检测方法 | |
CN105190536A (zh) | 将不同大小的代码更改作业集合提供至验证器 | |
US20220103186A1 (en) | Weights Safety Mechanism In An Artificial Neural Network Processor | |
US20090249034A1 (en) | Processor and signature generation method, and multiple system and multiple execution verification method | |
US6415436B1 (en) | Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler | |
US20090089758A1 (en) | Testing and debugging of dynamic binary translation | |
CN103942083B (zh) | 一种面向可变参函数的编译实现方法 | |
Kaur et al. | Work-in-progress: Dram-MaUT: Dram address mapping unveiling tool for ARM devices | |
CN116541268A (zh) | 上下文感知依赖引导的内核模糊测试用例变异方法与系统 | |
CN110737509B (zh) | 热迁移处理方法及装置、存储介质和电子设备 | |
CN108108263A (zh) | 一种固态硬盘的数据处理方法及装置 | |
CN107609427A (zh) | 一种eeprom数据的存储方法及系统 | |
CN105279043A (zh) | 一种对单片机软件错误进行恢复的方法及系统 | |
WO2006107380A2 (en) | System for intergrated data integrity verification and method thereof | |
US20220101043A1 (en) | Cluster Intralayer Safety Mechanism In An Artificial Neural Network Processor | |
Li et al. | The paxos register | |
CN112416687A (zh) | 验证访存操作的方法与系统以及验证设备和存储介质 | |
CN114238035B (zh) | 一种通过运行状态指纹进行错误检测方法及系统 | |
Pfähler et al. | Crash-safe refinement for a verified flash file 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 |