CN110716823A - 用于连续验证器件状态完整性的系统和方法 - Google Patents
用于连续验证器件状态完整性的系统和方法 Download PDFInfo
- Publication number
- CN110716823A CN110716823A CN201910630122.1A CN201910630122A CN110716823A CN 110716823 A CN110716823 A CN 110716823A CN 201910630122 A CN201910630122 A CN 201910630122A CN 110716823 A CN110716823 A CN 110716823A
- Authority
- CN
- China
- Prior art keywords
- value
- state
- semiconductor device
- crc
- integrity
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 61
- 239000004065 semiconductor Substances 0.000 claims abstract description 63
- 238000004364 calculation method Methods 0.000 claims abstract description 31
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 5
- 230000008859 change Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- RDTRHBCZFDCUPW-KWICJJCGSA-N 2-[(4r,7s,10s,13s,19s,22s,25s,28s,31s,34r)-4-[[(2s,3r)-1-amino-3-hydroxy-1-oxobutan-2-yl]carbamoyl]-34-[[(2s,3s)-2-amino-3-methylpentanoyl]amino]-25-(3-amino-3-oxopropyl)-7-[3-(diaminomethylideneamino)propyl]-10,13-bis(1h-imidazol-5-ylmethyl)-19-(1h-indol Chemical compound C([C@H]1C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CSSC[C@@H](C(N[C@H](C(=O)N[C@H](C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(O)=O)C(=O)N[C@@H](CC=2C3=CC=CC=C3NC=2)C(=O)NCC(=O)N[C@@H](CC=2NC=NC=2)C(=O)N1)C(C)C)C(C)C)=O)NC(=O)[C@@H](N)[C@@H](C)CC)C(=O)N[C@@H]([C@@H](C)O)C(N)=O)C1=CN=CN1 RDTRHBCZFDCUPW-KWICJJCGSA-N 0.000 description 1
- 206010009944 Colon cancer Diseases 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 108010027437 compstatin Proteins 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Detection And Correction Of Errors (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明的各种实施例涉及连续地验证半导体器件的状态完整性。组合计数器以形成所述半导体器件内的控制寄存器的循环冗余校验(CRC)计算的一部分。所述计数器被初始化为零,并且在预定数量的周期之后被重置。将计数器值添加到当前计算的CRC值以得到组合CRC值。每次为寄存器组计算CRC值时,计数器值都会更新,例如递增。如果CRC计算重复足够的次数,则计数器值将达到其最大值,并且然后滚动到其初始值零。如果寄存器组中未发生错误,则滚动点处的组合CRC值将与初始组合CRC值相匹配。组合CRC值的这种重复模式可以用于连续地监测控制寄存器的完整性。
Description
相关申请的交叉引用
本申请根据35 USC§119(e)要求发明人帕斯卡尔·康斯坦丁·汉斯·迈耶的于2018年7月12日提交的名称为“SYSTEM AND METHOD FOR CONTINUOUSLY VERIFYING DEVICESTATE INTEGRITY(用于连续验证器件状态完整性的系统和方法)”的美国临时专利申请号62/697,111的优先权权益,所述美国临时申请通过引用以其全文结合在此。
技术领域
本披露总体上涉及用于验证器件状态完整性的系统和方法,并且更具体地涉及连续地验证器件状态完整性。
背景技术
半导体器件由寄存器控制,所述寄存器也可以被称为控制寄存器或CR。CR存储在半导体器件内部以定义所述器件预期如何操作。CR组通常称为控制寄存器组。通常在器件被上电之后,通过各种方式对这些寄存器进行编程,以启用或禁用所述器件的各种能力。一旦已经设置了这些寄存器,CR就有可能被损坏,例如由于由宇宙射线、或由导致位的值发生改变的器件故障所引起的错误。
为了确保寄存器损坏不会在操作期间将器件置于不期望的状态,应当周期性地检查这些寄存器。然而,外部监测器读取器件中的每个寄存器并验证其值可能是耗时的。
将期望具有一种系统和方法,用于连续且高效地验证器件状态完整性,以提高系统可靠性。
发明内容
本发明涉及用于连续且高效地验证器件状态完整性的方法。验证方法的应用使得电子器件的性能和可靠性得以改善。
本发明的各种实施例涉及连续地验证半导体器件的状态完整性。组合计数器以形成所述半导体器件内的控制寄存器的循环冗余校验(CRC)计算的一部分。所述计数器被初始化为零,并且在预定数量的周期之后被重置。将计数器值添加到当前计算的CRC值以得到组合CRC值。每次为寄存器组计算CRC值时,计数器值都会更新,例如递增。如果CRC计算重复足够的次数,则计数器值将达到其最大值,并且然后滚动到其初始值零。如果寄存器组中未发生错误,则滚动点处的组合CRC值将与初始组合CRC值相匹配。组合CRC值的这种重复模式可以用于连续地监测控制寄存器的完整性。
在一个或多个实施例中,计数器可以被实施为硬件计数器、软件计数器或其组合。计数器可以结合在半导体器件内或外部监测器内。可以在半导体器件内或外部监测器内实施组合算法(所计算的CRC值结合计数器值)。当在半导体器件中实施组合算法时,外部监测器经由通信链路直接从半导体读取组合CRC值。可替代地,外部监测器可以经由通信链路从半导体读取所计算的CRC值,并且然后使用计数器值和所读取的CRC值来实施组合操作。
在一个或多个实施例中,披露了用于周期性地检查半导体器件的控制寄存器的过程。外部监测器读取半导体器件内的控制寄存器组的初始CRC值。在读取初始CRC值之后读取CRC值序列。在每次CRC读取时,所读取的值可以保留先前的值或者可以移动到新值。在连续的CRC读取之后,所读取的值必须在固定的时间间隔内移动到新值。如果连续读取继续保留CRC值超过固定的时间间隔,则指示错误。所计算的CRC值也可以保存在外部监测器内以备将来参考。
本领域技术人员将认识到,所披露的用于验证器件状态完整性的系统和方法实施例可以适用于各种应用,以提供对器件状态的可靠验证。这些应用包括但不限于控制寄存器验证、处理器寄存器验证等,所有这些在本发明的范围内可能有用并且应当落入本发明的范围内。
附图说明
将参照本发明的在附图中展示的示例性实施例。这些附图旨在为说明性的,而并非限制性的。尽管总体上在这些实施例的上下文中描述了本发明,但通过这样做不旨在将本发明的范围限制成所描绘或所描述的实施例的具体特征。
图1是根据本发明的各种实施例的结合有控制单元和一组控制寄存器的半导体器件的框图。
图2是使用外部监测器通过通信链路来读取半导体器件的寄存器组的典型系统。
图3是根据本发明的各种实施例的通过通信链路来读取半导体器件的寄存器组的框图。
图4示出了根据本发明的各种实施例的用于周期性地检查控制寄存器的过程。
图5示出了根据本发明的各种实施例的用于周期性地检查控制寄存器的替代性过程。
本领域技术人员将认识到可以根据说明书来实践本发明的各实施方式和实施例。所有这些实施方式和实施例都旨在被包括在本发明的范围内。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对本发明的理解。然而,本发明可以在不具有这些细节中的一些或全部的情况下进行实践。以下描述的本发明的实施例可以并入多个不同的电子部件、电路、器件和系统。在框图中示出的结构和器件是本发明的示例性实施例的展示,并不是用作由其模糊本发明的广泛教导的托辞。在图内的部件之间的连接不旨在局限于直接连接。而是,在部件之间的连接可以被中间部件修改、重新格式化或以其他方式改变。
当本说明书参照“一个实施例”或参照“实施例”时,旨在意味着,结合所讨论的实施例描述的具体特征、结构、特性或功能被包括在本发明的至少一个设想的实施例中。因此,短语“在一个实施例中”在本说明书中的不同地方出现并不构成对本发明的单个实施例的多个引用。
此外,附图内的部件或系统之间的连接不旨在局限于直接连接。相反,这些部件之间的数据或信号可以通过中间部件进行修改、重新格式化或以其他方式改变。而且,可以使用附加的连接或更少的连接。还应注意的是,术语“耦合(coupled)”、“连接(connected)”或“通信地耦合(communicatively coupled)”应被理解为包括直接连接、通过一个或多个中间装置的间接连接、以及无线连接。
图1是包括一个或多个控制寄存器112的示例性半导体器件100的框图,所述一个或多个控制寄存器用于以位为单位存储状态信息从而定义或控制半导体器件(例如,CPU、微控制器(MCU)等)的一般行为。半导体器件100可以包括:控制单元110;算术逻辑单元(ALU)120,用于执行算术和逐位运算;以及高速缓存130,用作半导体器件内用于日期/地址信息存储的较小但可快速访问的存储装置。控制单元110可以经由控制总线140耦合到ALU120和高速缓存130。控制单元110可以进一步耦合到时钟电路150以接收用于调节操作速率的时钟信号。控制单元110引导半导体器件的操作,调节ALU 120和其他部件如何对程序的指令进行响应等。控制单元110可以结合有一个或多个控制寄存器112,所述一个或多个控制寄存器包含指令序列以使控制单元110能够执行诸如中断控制、切换寻址模式、寻呼控制、协处理器控制等任务。在一个或多个实施例中,半导体器件100可以包括另外的部件,例如I/O接口、数据总线、地址总线等。通常在半导体器件被上电之后,可以通过各种方式对这些CR进行编程,以启用或禁用所述器件的各种能力。
在半导体器件的操作期间,CR可能被损坏,例如由于宇宙射线、或由器件故障导致的状态改变所引起的错误。CR的损坏或状态变化可能导致严重的后果,包括安全问题。为了确保寄存器损坏不会在操作期间将器件置于不期望的状态,期望周期性地检查这些CR。在某些应用中,诸如在采用符合ISO 26262的功能安全措施的汽车应用中,甚至需要技术来对半导体器件进行恒定的周期性监测。
图2示出了包括半导体器件210和外部监测器220的典型系统,所述外部监测器负责通过通信链路230来与器件的寄存器组212通信。外部监测器220可以被配置用于编程、启动或读取半导体器件210内的CR组212。外部监测器220读取器件210中的每个寄存器并验证其值的过程可能是耗时的。为了高效地判定CR组212是否已经改变,可以为所有寄存器创建唯一的“签名”。在一个或多个实施例中,签名是使用所有寄存器的内部值计算出的计算值。所述计算应当被实施为使得当寄存器组中的这些位被损坏时,可以检测到至少某个最小数量的位错误。已经提出了各种技术来执行这个任务,包括CRC方法。
在一种典型的通用CRC方法中,首先将CRC寄存器初始化为默认值(通常为0xFFFF_FFFF_....,这取决于CR的大小)。所述默认值与第一寄存器进行组合以生成CRC值,然后将所述CRC值存储回CRC寄存器中。对所有后续寄存器分别重复此计算,以得到结合有组中所有寄存器的值的最终CRC值。所计算的最终CRC可以作为所存储的CRC值而存储在器件中。为了判定寄存器是否在稍后被损坏,第二次计算最终CRC值以得到第二CRC值,然后将所述第二CRC值与所存储的CRC值进行比较。如果存在失配,则应当指示CR错误。
然而,所存储的CRC可能本身已经损坏,或者可能已经发生第二CRC计算机器中的错误。在这些情况下,尽管寄存器组可能没有经历过故障,但仍将指示错误。这样的错误表明错误检查流程不可信。
可以周期性地进行第二CRC的计算,以重复检查寄存器在半导体器件的长期操作期间是否已经损坏。当CRC检查机制(通过错误)无法更新第二CRC时,也可能出现问题。当发生这种情况时,这两个CRC之间的最终比较将指示匹配结果。在这种情况下,将无法检测到寄存器的损坏。
为了解决上述问题,在本发明文档中披露了各种程序和方法。
在一个或多个实施例中,除了计算寄存器组上的CRC之外,还组合了计数器以形成CRC计算的一部分。所述计数器在预定数量的周期之后可以对其自身进行重置。例如,将计数器值添加到当前计算的CRC值以得到组合CRC值。将计数器初始化为预定的默认值,例如零。每次为寄存器组计算CRC值时,计数器值都会更新,例如递增。因此,当下次计算CRC计算时,所得到的组合CRC值将不同。如果CRC计算重复足够的次数,计数器值将达到其最大值,并且随后的CRC计算周期将使得计数器滚动到零值。如果寄存器组中未发生错误,则此时利用此零计数器值计算的组合CRC值将与初始组合CRC值相匹配,所述初始组合CRC值是在计数器被初始化为零时计算的。所有后续组合CRC值将遵循与先前计算的相同的序列或模式。组合CRC值的这种重复模式可以用于连续地监测控制寄存器的完整性。
图3示出了根据本发明的一个或多个实施例的通过通信链路来读取半导体器件的寄存器组的系统框图。外部监测器320通过通信链路330与半导体310通信以便读取器件的寄存器组312。外部监测器320可以被配置用于编程、启动或读取半导体器件310内的CR组312。与图2相比,图3所示的系统结合有至少一个计数器以实施上述CRC值组合操作。计数器可以被实施为硬件计数器、软件计数器或其组合。计数器可以结合在半导体器件(计数器314)内或外部监测器(诸如计数器324)内。可以在半导体器件内或外部监测器内实施组合算法(所计算的CRC值结合计数器值)。当在半导体器件中实施组合算法时,外部监测器310经由通信链路330直接从半导体310读取组合CRC值。可替代地,外部监测器310经由通信链路330从半导体310读取所计算的CRC值,并使用来自计数器324的计数器值在外部监测器内实施组合操作。
本领域技术人员应当理解,可以应用用于计算控制寄存器的CRC值的各种方法。本领域技术人员还应当理解,还可以实施计算CRC值与计数器值之间的各种组合以获得重复序列或模式。所述组合可以是任何期望的操作,包括但不限于加法、减法或乘法等。
使用涉及结合计数器值的上述机制,外部监测器可以周期性地读取CRC值并确定所计算或组合的CRC值是正确的。在利用针对16位CRC寄存器计算的CRC值与来自2位计数器的计数器值之间的加法组合的示例性实施例中,计数器值在4次CRC计算之后滚动,并且因此组合CRC值也相应地重复。在CRC计算的时段设置为60ms、并且外部监测器每20ms读取一次CRC值的情况下,由监测器读出CRC值(组合CRC值)可能具有这样的序列(下面的CRC编号表示典型值):
0x5d8a...(20ms)...0x5d8a...(20ms)...0x5d8a...(20ms)...
0x12ff...(20ms)...0x12ff...(20ms)...0x12ff...(20ms)...
0x76be...(20ms)...0x76be...(20ms)...0x76be...(20ms)...
0xda43...(20ms)...0xda43...(20ms)...0xda43...(20ms)...
0x5d8a...(20ms)...0x5d8a...(20ms)...0x5d8a...(20ms)...
如上所示,示例性组合CRC值的读出在4个CRC计算周期之后具有重复模式。组合CRC值的这种重复模式可以用于连续地监测控制寄存器的完整性。如果读出不遵循所述模式,则可能发生寄存器组中的损坏。
图4示出了根据本发明的一个或多个实施例的用于周期性地检查半导体器件的控制寄存器的过程。在这个过程中,半导体器件内的寄存器组的CRC值对于外部监测器是已知的。例如,所述监测器是用于初始地编程寄存器组以设置器件操作的监测器。在这种情况下,监测器预先知道预期的CRC值、或者能够预先计算预期的CRC值,以便与所读取的CRC值进行比较。
在步骤405中,外部监测器初始地读取半导体器件内的控制寄存器组的CRC值。在步骤410中,由外部监测器将初始读取的CRC值保存为所存储的CRC值。在一个或多个实施例中,所存储的CRC值可以是所计算的仅涉及控制寄存器状态组的CRC值,或者是使用前述方法由所计算的CRC值与计数器值组合的组合CRC值。当存储初始CRC值时,在并行步骤中,外部监测器还将读取定时器重置为零,并以等于CRC计算间隔设置的超时间隔来启动读取定时器。这种超时间隔设置确保了每个CRC计算间隔内具有至少一次对CRC值的读取。在一个或多个实施例中,在每个CRC计算间隔内存在来自外部监测器的一个或多个读取动作,并且因此在CRC计算间隔内所读取的CRC值保持不变直到下一个CRC计算间隔为止。例如,如上述示例所示,CRC计算间隔设置为60ms,并且外部监测器每20ms读取一次CRC值。因此,在示例中,外部监测器在每个CRC计算间隔内读取CRC值三次,并且这三次所读取的CRC值相同。
在步骤420中,外部监测器再次读取CRC值,并在步骤425中验证新读取的CRC值是否改变以及读取定时器是否到期(是否达到超时间隔)。如果未检测到CRC值变化并且未达到超时间隔,则所述过程返回到步骤420以进行另一次CRC值读取。如果在达到超时间隔的同时未检测到CRC值变化,则所述过程前进到步骤430,在所述步骤中,外部监测器指示错误。如果新读取的CRC值与所存储的CRC值不同并且定时器未到期,则所述过程前进到步骤435,在所述步骤中,将新读取的CRC值与预测的CRC值进行比较。在一个或多个实施例中,所述监测器是用于初始地编程寄存器组以设置器件操作的监测器。因此,所述监测器能够预先计算与当前CRC读取时间相对应的预测CRC值。如果在预测的CRC值与新读取的CRC值之间识别出失配,则在步骤440中,监测器发送错误消息。如果未识别出失配,则所述过程返回到步骤410,在所述步骤中,将新读取的CRC值记录为“所存储的CRC值”。虽然图4示出了步骤425中的用于验证新读取的CRC值是否改变以及读取定时器是否到期的一个过程,但是本领域技术人员可以理解,这个步骤可以以多个步骤顺序地或并行地实施。这些变型应仍落在本发明的范围内。
在监测器不知道寄存器值的情况下,CRC计算是周期性的并且被连续地重新计算。因此,对照先前计算的一个相应值来检查读取值就足够了。在启动时,要比较的所存储的CRC值最初是未知的,并且不能利用上文针对第一组CRC计算描述的方案来进行比较。可以通过初始迭代简单地运行系统来创建和存储CRC值,而无需执行比较。但是,这会引入240ms没有连续检查系统的时段。解决这种情况的方法是首先将CRC计算重复运行一定次数(对于2位计数器的示例进行4次迭代)以建立值,而不在CRC计算之间暂停。CRC计算通常可以在1ms的量级上执行,因此这将简单地添加约4ms到启动阶段,在此期间不存在连续检查。此附加时间通常是可接受的。
图5示出了根据本发明的一个或多个实施例的用于周期性地检查控制寄存器的替代性过程。在步骤505中,外部监测器初始地读取半导体器件内的控制寄存器组的CRC值。在步骤510中,由外部监测器将初始读取的CRC值保存为所存储的CRC值。当存储初始CRC值时,在并行步骤中,外部监测器将读取定时器重置为零,并以等于CRC计算间隔设置的超时间隔来启动读取定时器。这种超时间隔设置确保了每个CRC计算间隔内具有至少一次对CRC值的读取。当外部监测器和半导体器件彼此连接时,CRC计算间隔的参数以及计数器重置周期数可以通过预设的通信协议可用于外部监测器。
在步骤520中,外部监测器再次读取CRC值,并在步骤530中验证新读取的CRC值是否改变以及读取定时器是否到期(是否达到超时间隔)。如果未检测到CRC值变化并且未达到超时间隔,则所述过程返回到步骤520以进行另一次CRC值读取。如果在达到超时间隔的同时未检测到CRC值变化,则所述过程前进到步骤535,在所述步骤中,外部监测器指示错误。如果新读取的CRC值与所存储的CRC值不同并且定时器未到期,则所述过程前进到步骤540,在所述步骤中,将新读取的CRC值记录为新存储的CRC值。虽然图5示出了步骤530中的用于验证新读取的CRC值是否改变以及读取定时器是否到期的一个过程,但是本领域技术人员可以理解,这个步骤可以以多个步骤顺序地或并行地实施。这些变型应仍落在本发明的范围内。
每次将新读取的CRC值记录为新存储的CRC值时,在步骤545中,对照先前存储的自N个周期前的CRC值来检查新存储的CRC值,其中,N对应于计数器重置的CRC计算周期数。对于具有2位计数器的上述示例,N为4。
如果在步骤545中识别出新存储的CRC值与先前存储的自N个周期前的CRC值之间的失配,则所述过程前进到步骤560,在所述步骤中,指示错误并发送错误消息。响应于在步骤545中未找到失配,所述过程前进到步骤550,在所述步骤中,外部监测器发出消息以指示控制寄存器组未发生错误。
在一个或多个实施例中,在步骤550之后,所述过程可以返回到步骤510以进行连续监测,或者外部监测器可以休眠直到需要下一次CR验证为止。
使用CRC计算与循环计数值的组合的这种CR状态验证不仅有效地防止了对“误报”CR损坏的误检测,而且还防止了任何CR损坏未被检测到。
出于清晰和理解的目的,已经描述了对本发明的前述描述。对于本领域技术人员将理解的是,前述示例和实施例是示例性的并且不限于本披露的范围。意图是,在阅读本说明书和研究附图之后对本领域技术人员而言显而易见的所有排列、增强、等效物、组合以及对其的改进都包括在本披露的真实精神和范围内。还应注意的是,可以不同地安排任何权利要求中的元素,从而包括具有多种相关性、配置和组合。
Claims (20)
1.一种用于连续地验证器件状态完整性的方法,所述方法包括:
读取半导体器件以获得当前读取值,所述当前读取值是所述半导体器件的状态值与计数器值的组合,所述状态值是以预定时段循环计算的;
将所述当前值与存储值进行比较,所述存储值是先前在所述当前值之前的预定时间间隔内读取的;以及
至少基于所述比较来验证所述半导体器件的状态完整性。
2.如权利要求1所述的方法,其中,在计算所述状态值时更新所述计数器值,所述计数器值在预定的状态值计算周期之后被重置。
3.如权利要求2所述的方法,其中,所述半导体器件的所述状态值与所述半导体器件内的一个或多个控制寄存器的状态相关。
4.如权利要求2所述的方法,其中,所述状态值是使用循环冗余校验(CRC)方法计算的。
5.如权利要求1所述的方法,其中,所述预定时间间隔基于所述预定时段和所述预定周期。
6.如权利要求1所述的方法,进一步包括:响应于在所述当前值与所述存储值之间找到的失配,发送针对所述状态完整性的错误消息。
7.如权利要求1所述的方法,进一步包括:响应于在所述当前值与所述存储值之间未找到失配,发送指示所述状态完整性没有错误的消息。
8.一种用于连续地验证器件状态完整性的方法,所述方法包括:
在预定时间间隔内重复读取半导体器件以获得包括多个读取值的序列,每个读取值是所述半导体器件的状态值与计数器值的组合,所述状态值是以预定周期循环计算的;以及
至少基于所获得的序列来验证所述半导体器件的状态完整性。
9.如权利要求8所述的方法,进一步包括:
将所述所获得的序列与预期序列进行比较;
响应于在所述所获得的序列与所述预期序列之间找到的失配,发送针对所述状态完整性的错误消息;以及
响应于在所述所获得的序列与所述预期序列之间未找到失配,发送指示所述状态完整性没有错误的消息。
10.如权利要求8所述的方法,其中,在计算所述状态值时更新所述计数器值,所述计数器值在预定的状态值计算周期之后被重置。
11.如权利要求10所述的方法,其中,所述半导体器件的所述状态值与所述半导体器件内的一个或多个控制寄存器的状态相关。
12.如权利要求10所述的方法,其中,所述状态值是使用循环冗余校验(CRC)方法计算的。
13.如权利要求8所述的方法,其中,响应于所述所获得的序列未发生值变化,发送针对所述状态完整性的错误消息。
14.一种用于验证半导体器件的状态完整性的方法,所述方法包括:
初始地读取所述半导体器件以获得所述半导体器件的状态值,所述半导体器件的所述状态值是基于所述半导体器件内的一个或多个寄存器的状态以预定时段周期性计算的;
将在初始读取时获得的所述状态值与计数器值进行组合以获得初始组合值;
在预定时间间隔内至少再读取所述半导体器件一次以获得所述半导体器件的至少一个附加状态值,所述预定时间间隔大于所述预定时段,以便能够在所述预定时间间隔期间计算所述半导体器件的所述状态值至少一次;
将所述至少一个附加状态值与所述计数器值进行组合以获得至少一个附加组合值,在计算所述半导体器件的所述状态值时更新所述计数器值;
将所述至少一个附加组合值与所述初始组合值进行比较;以及
响应于在所述至少一个附加组合值与所述初始组合值之间未找到值变化,发送针对所述状态完整性的错误消息。
15.如权利要求14所述的方法,其中,所述初始状态值与所述计数器值的所述组合以及所述至少一个附加状态值与所述计数器值的所述组合是在所述半导体器件外部实施的。
16.如权利要求14所述的方法,进一步包括:
响应于在所述至少一个附加组合值与所述初始组合值之间找到的值变化,将变化值与预测值进行比较。
17.如权利要求16所述的方法,进一步包括:
响应于在所述变化值与所述预测值之间找到的失配,发送针对所述状态完整性的错误消息。
18.如权利要求16所述的方法,进一步包括:
响应于在所述变化值与所述预测值之间未找到失配,发送指示所述状态完整性没有错误的消息。
19.如权利要求14所述的方法,其中,所述一个或多个寄存器是所述半导体器件内的控制寄存器。
20.如权利要求16所述的方法,其中,所述半导体器件的所述状态值是使用循环冗余校验(CRC)方法计算的。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862697111P | 2018-07-12 | 2018-07-12 | |
US62/697,111 | 2018-07-12 | ||
US16/450,577 US11018693B2 (en) | 2018-07-12 | 2019-06-24 | System and method for continuously verifying device state integrity |
US16/450,577 | 2019-06-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716823A true CN110716823A (zh) | 2020-01-21 |
CN110716823B CN110716823B (zh) | 2024-07-30 |
Family
ID=69138264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910630122.1A Active CN110716823B (zh) | 2018-07-12 | 2019-07-12 | 用于连续验证器件状态完整性的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11018693B2 (zh) |
CN (1) | CN110716823B (zh) |
DE (1) | DE102019118703A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737734A (zh) * | 2020-12-30 | 2021-04-30 | 智车优行科技(北京)有限公司 | 一种校验信息生成方法、验证方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220391540A1 (en) * | 2021-06-03 | 2022-12-08 | Google Llc | Register File Protection |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840361A (zh) * | 2009-03-17 | 2010-09-22 | 恩益禧电子股份有限公司 | 程序验证装置及其方法 |
CA2730991A1 (en) * | 2010-02-26 | 2011-08-26 | Research In Motion Limited | Method and system for cyclic redundancy check |
CN108073762A (zh) * | 2016-11-17 | 2018-05-25 | 英特尔公司 | 用于利用经延迟的初始化来验证经重定时的电路的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071730A1 (en) * | 2003-09-30 | 2005-03-31 | Lattice Semiconductor Corporation | Continuous self-verify of configuration memory in programmable logic devices |
US7844886B1 (en) | 2006-05-16 | 2010-11-30 | Altera Corporation | Parallel processing error detection and location circuitry for configuration random-access memory |
US7634713B1 (en) * | 2006-05-16 | 2009-12-15 | Altera Corporation | Error detection and location circuitry for configuration random-access memory |
US8125243B1 (en) * | 2007-03-12 | 2012-02-28 | Cypress Semiconductor Corporation | Integrity checking of configurable data of programmable device |
JP6039276B2 (ja) * | 2012-07-09 | 2016-12-07 | キヤノン株式会社 | 画像形成装置 |
US9252778B2 (en) * | 2013-09-27 | 2016-02-02 | Scaleo Chip | Robust flexible logic unit |
EP2988141A1 (en) * | 2014-08-19 | 2016-02-24 | Nagravision S.A. | Aging control of a system on chip |
US10977384B2 (en) * | 2017-11-16 | 2021-04-13 | Microsoft Technoogy Licensing, LLC | Hardware protection for differential privacy |
-
2019
- 2019-06-24 US US16/450,577 patent/US11018693B2/en active Active
- 2019-07-10 DE DE102019118703.6A patent/DE102019118703A1/de active Pending
- 2019-07-12 CN CN201910630122.1A patent/CN110716823B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840361A (zh) * | 2009-03-17 | 2010-09-22 | 恩益禧电子股份有限公司 | 程序验证装置及其方法 |
CA2730991A1 (en) * | 2010-02-26 | 2011-08-26 | Research In Motion Limited | Method and system for cyclic redundancy check |
CN108073762A (zh) * | 2016-11-17 | 2018-05-25 | 英特尔公司 | 用于利用经延迟的初始化来验证经重定时的电路的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737734A (zh) * | 2020-12-30 | 2021-04-30 | 智车优行科技(北京)有限公司 | 一种校验信息生成方法、验证方法及装置 |
CN112737734B (zh) * | 2020-12-30 | 2023-10-20 | 智车优行科技(北京)有限公司 | 一种校验信息生成方法、验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110716823B (zh) | 2024-07-30 |
US11018693B2 (en) | 2021-05-25 |
DE102019118703A1 (de) | 2020-01-16 |
US20200021308A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120144244A1 (en) | Single-event-upset controller wrapper that facilitates fault injection | |
CN114328316B (zh) | Dma控制器、soc系统及基于dma控制器的数据搬运方法 | |
US10062451B2 (en) | Background memory test apparatus and methods | |
US11061783B2 (en) | Error detection circuit | |
JPS6095640A (ja) | 誤り訂正方法及び装置 | |
CN110716823B (zh) | 用于连续验证器件状态完整性的系统和方法 | |
CN111033470A (zh) | 确保双处理器架构中的校正程序序列 | |
US10372545B2 (en) | Safe reset techniques for microcontroller systems in safety related applications | |
JP2009129301A (ja) | 自己診断回路及び自己診断方法 | |
US7415654B2 (en) | Data integrity checking | |
EP3477478A1 (en) | Memory architecture including response manager for error correction circuit | |
EP2677429A1 (en) | Error correction | |
JP7379932B2 (ja) | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム | |
WO2018010084A1 (zh) | 应用于数字集成电路的esd检测装置、集成电路及方法 | |
US11023312B2 (en) | Serial management interface with improved reliability | |
JP4135413B2 (ja) | メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム | |
EP2352092B1 (en) | Processor, information processing apparatus, and method of controlling processor | |
CN117056149B (zh) | 一种内存测试方法、装置、计算设备及存储介质 | |
JP2011232910A (ja) | メモリ診断方式 | |
CN112148514B (zh) | 看门狗复位的方法、装置、存储介质和电子设备 | |
US11822425B2 (en) | Programmable device, and controller using the same | |
JP2009238168A (ja) | マイクロプロセッサ | |
CN105830162B (zh) | 用于识别至少一个存储器元件中的错误数据的方法和装置 | |
JP2009042855A (ja) | 回路間データ転送方法およびシステム | |
CN118427016A (zh) | 一种铁电数据双区备份及自恢复的方法、可读存储介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |