CN101273356B - 基于集成电路内的差错传播的差错检测电路的插入 - Google Patents

基于集成电路内的差错传播的差错检测电路的插入 Download PDF

Info

Publication number
CN101273356B
CN101273356B CN2005800516512A CN200580051651A CN101273356B CN 101273356 B CN101273356 B CN 101273356B CN 2005800516512 A CN2005800516512 A CN 2005800516512A CN 200580051651 A CN200580051651 A CN 200580051651A CN 101273356 B CN101273356 B CN 101273356B
Authority
CN
China
Prior art keywords
circuit unit
integrated circuit
mistake
error
state
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.)
Expired - Fee Related
Application number
CN2005800516512A
Other languages
English (en)
Other versions
CN101273356A (zh
Inventor
J·A·布洛姆
K·弗劳特纳
D·W·布拉德利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN101273356A publication Critical patent/CN101273356A/zh
Application granted granted Critical
Publication of CN101273356B publication Critical patent/CN101273356B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Air Bags (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种在集成电路内选择应当放置差错检测电路(20)的位置的方法,所述方法使用参考和测试设计的仿真,并且差错被注入到测试设计并且然后根据注入的差错执行扇出分析以确定差错传播特性。因此,可以识别寄存器(12),在所述寄存器处传播的差错很可能表现出它们自己或者所述寄存器保护关键体系结构状态,或者所述寄存器保护在其它情况不被保护的状态,并且由此获得差错检测机制的有效部署。在集成电路(68)内,根据检测到的集成电路的当前状态,来自不起作用电路元件的输出信号可能经受隔离门(92、94、96、98、100)。由此,出现软差错的不起作用电路元件具有不适当的输出信号;从到达集成电路的其余部分被选通并由此减少错误操作。

Description

基于集成电路内的差错传播的差错检测电路的插入
技术领域
本发明涉及集成电路领域。更具体地说,本发明涉及差错传播的控制,例如在集成电路内由辐射粒子撞击引起的差错。 
背景技术
装置向减小特征尺寸、增加集成和降低电压电平的按比例缩小的趋势一般通过降低引起位反转所必需的最小电荷数量并且也通过增加易受潜在粒子撞击影响的靶的数量增加了微处理器和集成电路内的软差错率(非永久的差错,例如由辐射撞击引起的那些差错)。这些趋势已经使得可靠性成为多种不同集成电路市场中日益重大的设计限制。 
尽管严格的可靠性限制通常专用于航空和高端服务器市场,但是对多种新兴领域例如汽车和保健产业中嵌入式微处理器需求的增加已经产生了对可靠的嵌入式设计的要求。用来报告装置可靠性的标准机制是在时间中的失效数或FIT比率,其中一个FIT的比率意味着差错发生的平均时间是十亿装置小时。作为对嵌入式装置中可靠性要求增加的实例,汽车产业中集成扩展的情形是典型的。由于使用中的汽车和那些汽车内的嵌入式微处理器的多个实例的数量很大,这表明,利用当前的技术,在任何特定的时间将会发生由于软差错引起的多个装置失效。这是不能接受的。 
对该问题起作用的另一个重要因素是,在与高性能设计比较的典型嵌入式装置中,趋向于采用更长的时钟周期时间。在嵌入式设计中的该更长的周期时间通常导致时序状态元件之间的逻辑深度更大。这些大逻辑深度的影响是双重的。首先,大的逻辑深度使组合逻辑消耗的芯片相对面积增加,使组合逻辑更容易受软差错(例如粒子撞击)的影响。例如,组合逻辑消耗由英国剑桥的ARM Limited设计的ARM926EJS芯的总单元面积的58%。第二,更大的逻辑深度通常意味着更宽的信号扇出,因而增加了可能锁存由单个软差错引起的错误值的潜在靶的数目。软差错比率在时序逻辑例如锁存和寄存器中也增加, 并且在这些点的软差错也传播到扇出网络。 
提供用来检测和校正在存储系统例如SRAM中的软差错的机制是已知的。由于期望实现高的密度,所以存储装置通常使用小的几何结构。这些小的几何结构比先前在集成电路例如微处理器内的组合或其它逻辑中通常使用的大电路元件更容易受到攻击。在存储系统之内,已经采用差错检测机制例如ECC码、奇偶检验位等力图处理该软差错问题。尽管这些技术在高密度存储系统有效存储纯状态数据的情况下起作用,但是它们不适于防止遭受在更通用的集成电路中的组合逻辑等之内动态出现的软差错。 
可以对全部集成电路设计引入差错检测和差错校正机制以基本保护该设计内的全部节点。然而,这种方法是不切实际的,因为由于为设计内的几乎每一个元件部署差错检测和差错校正机制将会使门数大大增加。 
发明内容
从一个方面考虑,本发明提供在集成电路内选择一个或多个位置放置相应的差错检测电路的方法,所述方法包括的步骤为: 
分析所述集成电路以为所述集成电路之内的多个位置确定相应的扇出特性用于在那些位置出现的信号差错;以及 
根据所述扇出特性为所述的差错检测电路选择位置。 
本技术认识到,通过分析扇出特性(可能包括状态相关的掩蔽作用)用于在集成电路设计内的这些位置出现的信号差错可以更有效地在集成电路内部署差错检测电路。这样,用于差错检测电路的电路资源可以整体上以集成电路内的这些点作为目标,在所述点处将会最有益,例如在所述点处它们最可能检测差错或在所述点处它们能够保护关键结构体系、或其它原因。此外,分析扇出特性的该低级方法适于综合设计中的应用,其中电路的实际门布局和电路元件的设置是机器产生的。以得到改善平衡的方式并且利用可能检测的差错的类型和比例,设计者可以使用扇出分析来折衷差错覆盖和检测器消耗的电路面积。覆盖费用和检测精度可以彼此折衷。 
可以通过仿真集成电路的操作同时在研究的位置注入一个或多个信号差错来方便地执行分析步骤。仿真集成电路的操作已经是集成电 路设计的测试和确认中通常使用的方法,并且因此执行这种仿真的基础结构发展得很好并且是现有的。这种基础结构可以被便利地再利用来根据本发明方法分析所注入的差错的扇出特性。 
实现该分析的一个特别便利的方法是运行设计的两个实例的仿真,一个有并且一个没有所注入的差错,并且然后观察所得到的状态中的差别,这些差别表现出传播的信号差错。 
多个通用集成电路可以被认为是由可用来存储信号值并且通过执行一个或多个数据处理操作和处理控制操作的逻辑电路互连的寄存器电路形成。互连该寄存器的逻辑电路可以包括组合逻辑,除了利用本方法,关于它的软差错,所述组合逻辑通常难以分析。本方法也可以被用来检测其它电路元件中的差错,例如寄存器和锁存器。 
在这种寄存器电路和互连的逻辑电路结构之内,可以在存储在寄存器电路中的信号值中检测信号差错,并且信号差错可以被注入在与寄存器电路或互连那些寄存器电路的逻辑电路对应的位置。 
可以以多种不同的方式为依赖于检测的扇出特性的差错检测电路执行位置选择。一个方法是利用变化的计时和位置统计分析在多个差错注入期间的扇出特性以确定集成电路内最可能检测到信号差错的那些位置。因此,可以在根据软差错检测比率和面积覆盖放置差错检测电路产生好的回答的地方确定用于差错检测的“甜蜜点(sweet spot)”。 
在这种分析中所注入的差错在测试中方便在检测电路内的位置中变化,并且相对于它们与装置的电路时钟和其它计时特性比较的相关计时而变化。 
从另一方面考虑,本发明提供一种集成电路,所述集成电路包括:可用来存储信号值的多个寄存器, 
互连所述多个寄存器并且可用来执行一个或多个数据处理操作和处理控制操作的多个逻辑电路,其中 
在所述集成电路内的至少一个差错源位置处的信号差错具有相关的扇出特性使得所述差错传播到在所述集成电路内的多个另外的点,并且差错检测电路被放置在所述多个另外的点中的选择的另外的点处,所述选择的另外的点是以下点中的一个或多个: 
(i)差错从所述集成电路之内的多个差错源位置所传播到的点,以及 
(ii)在所述多个寄存器内的点,在所述点处检测从所述差错源位置传播的差错在统计上是最可能的。 
差错检测电路它们自己以多种不同的方式运行,诸如例如在两个时间距离间隔处采样信号并且在表现出差错时检测差别。另一个实例是在表现出差错时对信号中的变化进行响应的差错检测电路。 
CALDWELL D W等人的“A minimalist hardware architecture forusing commercial microcontrollers in space”(26 October 1997(1997-10-26),DIGITAL AVIONICS SYSTEMS CONFERENCE,1997.16TMDASC.,AIAAIIEEE IRVINE,CA,USA 26-30 OCT.1997,NEW YORK,NY,USA,IEEE,US,PAGE(S)52-26,XP010256067 ISBN:0-7803-4150-3)讨论了在空间应用中使用商业上的微控制器的硬件考虑。描述了启动商业上的装置的动机和与其使用相关联的关注点。讨论了软件相对于硬件表决方案的优点以减轻单个事件效应。提出了用于改善I/O鲁棒性的过程间通信方法和方案。 
从另一方面考虑,本发明提供一种集成电路,所述集成电路包括: 
可用来执行各自数据处理操作的多个电路单元; 
多个差错隔离门,所述多个差错隔离门被设置以控制电路单元之间的信号路径并且可以操作在闭合状态以阻止在电路单元之间通过的相应信号中的变化以及可以操作在断开状态以允许在电路单元之间通过的相应信号中的变化;以及 
隔离门控制器,所述隔离门控制器对所述集成电路的当前状态进行响应以将所述多个差错隔离门中的相应的差错隔离门控制为所述闭合状态或所述断开状态,其中所述隔离门控制器控制所述差错隔离门使得至少一个电路单元是被驱动在所述当前状态并且在所述当前状态中没有被用来执行数据处理操作以确定来自所述差错隔离电路单元的一个或多个输出信号的差错隔离电路单元,所述差错隔离电路单元被处于所述闭合状态的差错隔离门包围以便阻止出现在所述差错隔离电路单元内的信号差错传播到其它电路单元。 
本发明认识到,出现在集成电路内的差错在所讨论的集成电路上有随机分布的趋势。然而,并不是集成电路的所有部分在任何给定的时间都是运行的。集成电路的一些部分可以在时间的特定点被下电以节约能量。在这种被下电区域内的差错不太可能引起问题。然而,在集成电路内的其它区域可以被驱动,但是由于当前数据处理操作和/或所讨论的集成电路情形而在特定时间仍然不运行。然而,尽管在时间的该特定点没有被使用,但是这些没有被使用的区域内出现的差错可以传播到那些没有被使用的区域之外并且总体上在集成电路中引起差错或失效。本方法提供位于电路单元之间的控制信号路径的差错隔离门以便被闭合或断开。隔离门控制器对集成电路的当前状态做出响应来控制这些隔离门使得被驱动但是在该当前状态中没有被用来执行数据处理操作来确定一个或多个来自那些被隔离的电路单元的输出信号的电路元件以便阻止在被隔离的电路单元内出现的信号差错被传播到 其它电路单元。被隔离电路单元可以自发地从已经发生的差错恢复,或所述差错可以被提前检测并且差错恢复机制启动。到再次需要被隔离的电路单元参与集成电路的处理操作时,它可能已经从其差错恢复使得处理可以不受阻碍地继续进行。如果被隔离的电路单元仍没有被恢复,那么差错恢复结构可以以受控的方式来启动。 
本方法特别有效地预防的信号差错是瞬时差错,例如由粒子撞击引起的差错。 
被隔离门控制器用来确定哪些电路单元是运行的以及哪些是不运行的以便适当地隔离不运行的电路单元的集成电路的当前状态可以包括包含一个或多个当前正处理的程序指令和集成电路的当前处理模式的多个输入。 
差错隔离门可以以多种不同的方式运行,但是特别优选的方式包括:锁存隔离的电路单元的输出以便如果内部信号由于该被隔离的电路单元内的差错而变化它将不会相应变化,以及控制多路复用器的选择输出以便来自不运行的电路单元的输出将不会被错误地选择为集成电路的指定当前状态。 
本方法可特别适用的被隔离的电路单元的实例包括不能运行在操作的当前模式的指令解码器、不能运行在操作的当前模式的调试电路(debug circuit)、以及不能用于当前被处理的任何程序指令的数据路径的一部分。也可以根据本方法隔离其它电路单元。 
从另一方面考虑,本发明提供一种减少集成电路内的差错传播的方法,所述方法包括以下步骤: 
利用多个电路单元执行相应的数据处理操作; 
利用多个差错隔离门控制信号路径,所述多个差错隔离门位于电路单元之间并且可操作在闭合状态以阻止通过电路单元之间的相应信号中的变化以及可操作在断开状态以允许通过电路单元之间的相应信号中的变化;以及 
响应于所述集成电路的当前状态控制所述多个差错隔离门中的相应的差错隔离门为所述闭合状态或所述断开状态,其中 
所述差错隔离门被控制使得至少一个电路单元是被驱动在所述当前状态并且在所述当前状态中没有被用来执行数据处理操作以确定来自所述差错隔离电路单元的一个或多个输出信号的差错隔离电路单 元,所述差错隔离电路单元被处于所述闭合状态的差错隔离门包围以便阻止出现在所述差错隔离电路单元内的信号差错传播到其它电路单元。 
附图说明
现在仅借助实例参考附图描述本发明的实施例,其中: 
图1示出显示形成时序逻辑并且被组合逻辑互连的寄存器的集成电路的一部分; 
图2示出差错注入和分析框架的高级概观; 
图3是示意性示出实施差错注入和分析的流程图; 
图4是示意性示出怎样利用扇出特性选择差错检测电路位置的流程图;以及 
图5是示意性地示出并入由隔离门控制器根据集成电路的当前状态控制的隔离门的集成电路的图示。 
具体实施方式
图1示出在特定时钟沿存储信号值的第一组寄存器2。然后这些信号值在信号处理操作的结果被捕捉并且被存储在另一组寄存器6内之前在组合逻辑4内经受那些信号处理操作。一部分集成电路的该提取(abstraction)一般可应用于多种集成电路设计内的控制和通用处理电路。组合逻辑4根据时钟频率可以具有大的深度,并且除了利用自动工具之外,所述组合逻辑4的行为分析通常非常复杂和困难。 
图1示出被注入到组合逻辑节点8内的该部分电路的操作仿真的意外变化(unexpected change)。这种意外变化仿真例如由于粒子撞击、或一些其它瞬间差错引起的软差错的出现。由该注入的差错引起的意外变化传播到所示的组合逻辑4内的其它节点。该传播以来自源的特征扇出模式进行,其可能总体上取决于系统设计内的其它信号的当前状态。例如,在该实例中节点10被示为用来掩蔽在节点8处插入的差错,但是在不同时间被仿真的集成电路的另一状态中节点10可以使该差错通过(pass that error)。扇出特性的这种复杂和状态相关的性质是为什么期望在多个集成电路状态上的仿真差错注入的一个原因。此外,可能期望在仿真实际应用代码的执行时仿真差错注入,因 为在仿真应用代码执行时集成电路将处于的状态趋向于更好地与集成电路的使用中将实际出现的那些状态相互关联。 
正如从图1所见的,注入在节点8处的差错随后被锁存在寄存器12和14中。然后另一个差错被仿真为注入在节点16处。该另一个差错然后根据它自己的扇出特性传播,以及类似地在多个点经受掩蔽或非掩蔽并且最后被锁存在寄存器12和18中。 
在该高度简化的实例中,将会看到,注入在节点8和16处的差错导致差错被锁存在寄存器12中,并且因此与寄存器12相关联地部署差错检测电路20是有效的,因为这能检测来自该多个源的差错。其它位置也可以,取决于逻辑功能和有关节点。将要理解的是,实际集成电路设计的复杂性和它可能占据的大量不同状态导致成千上万所注入的差错的仿真以便统计分析所得到的差错最可能出现并且检测来自多个源的差错的寄存器。差错检测器20也可以被设置在已知的表示关键结构状态的位置或被设置在这样的位置:在所述位置差错它们自己可以出现,并且所述位置不被即使那些差错很少的其它位置的差错检测器检测,因为可能期望实现特别彻底的差错覆盖。由本方法提供的另一可能性是将检测电路安置在逻辑路径的更上游并且不必在寄存的边缘处。这将在中间提供更高的覆盖;可能的缺点是这些差错中的一些由于随后的掩蔽可能被消除,但是可以改善总的检测覆盖。此外,可以获得覆盖中的目标置信度。 
在进一步讨论的实例中,使用ARM926EJS微处理器的Verilog模型。该微处理器是32位嵌入式结构的微处理器并且具有包括读取、解码、执行、存储和写入阶段的五阶段流水线。在该分析中使用的执行具有三十七个被结构定义的寄存器(三十一个通用寄存器和六个状态寄存器)、4KB的指令高速缓存和4KB的数据高速缓存。在利用130nm工艺的地方利用扫描链插入和用于测试的设计方法综合Verilog模型。 
形成测试向量(test bench),所述测试向量包括由以上得到的综合的网表,即参考设计和在测试中的设计。利用在综合和布局阶段由综合和布局工具收集的计时信息注释该两个网表。测试向量也包括行为存储模型,所述行为存储模型被用来在仿真初始化时加载基准(benchmark)。 
软差错注入和分析框架由一组在仿真开始时被调用的Verilog编 程接口库构成。在被调用时,框架探索所述设计以便在测试中导出单元内的所有时序状态元件和网络的组。 
基于应用的分析和随机状态的分析都被支持。通过运行在仿真初始化时被加载到行为存储模式中的基准代码执行基于应用的分析。在这种情况下,框架例如将在仿真开始后的2500和5000周期之间的时间中选择随机点以进行它的第一故障注入。如果进行的实验打算包括暂时掩蔽,则故障注入时间被随机地以皮秒选择,故障持续时间被随机选择,例如在区间(0.25*CLK,CLK)上。前面所述的仅是实例计时,并且将能够使用其它或随机的计时。另外,故障注入时间将在时钟信号的某个将来的上升沿被预定并且将适用于一个时钟周期的持续时间。当进行随机状态分析时,通过将机器设置为随机产生的状态、注入故障、观察在随后周期中故障的影响、并且进行重复,框架被用来驱动实验。基于实验的随机状态意味着驱动差错的逻辑掩蔽的独立于应用的测量。 
在故障注入时间,根据被仿真的注入实验的类型(在组合逻辑中的软差错、在时序状态中的软差错、或两者),从测试中的单元为故障注入选择随机的设计元件。如果故障打算被注入到逻辑元件,则选择设计中的随机网络并且呈现在线上的值被反转,仿真在驱动所述线的逻辑门处的反转。类似地,当仿真寄存器中的故障时,选择随机的寄存器并且它的输出被反转。当故障被注入设计中时,框架记录故障位置、注入时间、以及脉冲持续时间。 
在故障已经被注入到系统中后,在每一个随后出现的时钟沿处,在测试中的单元中的每个微结构寄存器与它在参考设计中的对偶(dual)进行比较。此外,检测设计上的所有顶层输出端口(I/O总线、协处理器接口、测试设备)和到高速缓存的输出以确保没有错误值从芯数据路径逃逸(escape)。如果在故障注入后的第一个周期,没有出现寄存器、高速缓存或顶层端口的失配,则注入的故障没有影响系统,并且因而为另一个故障注入实验选择新的随机时间例如往后的至少100个周期。如果确实出现了任何寄存器、高速缓存或端口的失配,则故障分析框架记录差错的相关周期和位置用于稍后的分析。故障分析框架然后在故障注入时间之后在整个系统跟踪差错的进展达100个周期。如果在100个周期之后没有差错出现,并且没有差错传播到高 速缓存或顶层端口,则系统是干净的(clean)并且故障被成功地掩蔽了,然后选择用于故障注入的新的随机时间。如果顶层端口或高速缓存差错没有出现,则仿真停止并且为后处理写入差错记录以分析传播行为和结构状态影响。 
图2示出差错注入和分析框架的高级概观。在测试向量系统200内仿真参考设计实例202和测试设计实例204。这些仿真并行地运行相同的应用代码206或由相同的随机状态开始而继续进行下去。信号差错通过故障注入调度程序208注入测试设计204。随后的信号值的差别通过差错检测和记录代码被检测和记录并且表现出差错信号传播。当注入和分析框架212已经收集足够统计有效的数据时,这被用来为检测电路产生报告和建议的节点位置。 
图3是示出分析操作的流程图。在步骤22,将被分析的集成电路设计被综合。在步骤24执行该设计的计时分析,并且然后该计时信息在步骤26被注释到所述设计的网表使得可以执行计时精确仿真(该步骤是优选的,但是可以省略)。在步骤28,两个测试中的设计实例被插入图2的分析框架,即参考设计和测试设计。在步骤30,确定关于是否利用应用代码或随机状态执行分析。如果将使用应用代码,则步骤32至少在仿真中对参考和测试设计执行该代码,并且步骤34为差错选择随机的注入时间。如果不打算利用应用代码执行分析,则处理进入步骤36,在步骤36参考和测试设计被设置到相同的随机状态。 
在步骤38选择测试设计内的随机节点,差错将在该随机节点被注入。该节点可以是寄存器或一块组合逻辑或某一其它元件。在步骤40,为差错选择随机持续时间。步骤42然后为参考和测试设计计时到选择的注入时间之前的周期(很可能在应用代码分析实例中),并且然后在步骤44在达到持续时间D的周期期间的时间T并且在位置N注入信号差错。然后步骤46继续对参考和测试设计计时使得差错可以在测试设计内传播。步骤48读取参考和测试设计的状态并且这些在步骤50被比较以检测任何差别。所检测的差别被用来更新记录由差错插入引起的差错统计分布的数据,所述数据正被收集用于分析。如果需要另外的统计,则步骤54使处理回到步骤30并且重复差错注入仿真。 
图4是示意性地示出分析扇出特性以确定差错检测器位置的流程图。在步骤56,比较来自多个差错注入实验的数据。在步骤58分析设 计中的每个时序元件(寄存器)以为用于该时序元件的相关逻辑锥(logic cone)内的注入差错确定传播到该时序元件的差错的频率。这样,可以识别当在它们的相关逻辑锥中的一个之内发生差错时很可能检测到差错的时序逻辑元件,因为这些是被用作差错检测器位置的良好候选者。 
在步骤60,测试每个注入差错的位置以确定存储由此引起的差错的时序元件的扇出、数目和位置。这样,扇出特性可以被用来识别为注入在多个位置的差错提供宽的差错检测覆盖的时序逻辑元件(寄存器)。此外,可以识别在差错检测覆盖中缺少的差错注入位置以产生期望的或广泛的差错覆盖水平,并且此外也能够识别可以影响关键结构状态的差错注入点。 
在步骤62,例如通过根据预定的标准进行等级评定来分析在步骤58和60中抽取的差错传播数据(扇出数据)以识别应当增加差错检测电路的适当位置组。然后可以将这些差错检测电路增加到设计并且重复所述测试以检查覆盖是正如所料的(差错检测电路的插入本身可以改变差错传播行为)。这些重复和综合的步骤在图4的步骤64和66中被示出。 
图5示意性地示出其中可能出现软差错(例如由粒子撞击引起)的集成电路68。在该集成电路中被示意性地示出的是包括寄存器组(register bank)70、乘法器72、移位器74和加法器76的数据路径。数据路径70、72、74、76在被加载到指令流水线78并且被相应的指令组解码器80、82、84解码的程序指令的控制下执行数据处理操作。在特定的时间仅这些指令组解码器80、82、84中的一个是运行的,取决于存储在状态寄存器86内的集成电路68的当前处理模式。指令解码器80、82、84产生控制信号以控制数据路径70、72、74、76的各元件。 
在图5中还示出调试控制单元88,其可以被用来从集成电路68抽取调试数据并且将调试数据施加到集成电路68。这种调试控制器88通常仅在例如被状态寄存器86内的调试控制位控制的集成电路68的调试模式中运行。 
隔离门90、92、94、96、98、100被示出在集成电路68内的不同点处。这些隔离门被隔离门控制器102控制以选择性地处于闭合状态 或断开状态。在闭合状态,它们用来阻止在与它们相关的电路单元的输出信号中出现任何变化,而在断开状态它们忽略(pass)这样的变化。隔离门控制器102对集成电路68的当前状态进行响应以产生选通控制信号来控制隔离门90、92、94、96、98、100,集成电路68的当前状态包括从状态寄存器8检测的当前处理模式和从流水线78检测的当前执行的程序指令。例如,在任何特定的时间仅这些指令解码器80、82、84中的一个是运行的,并且因此来自其它解码器的输出信号将会被在隔离门控制器102控制下的隔离门90、92、94所隔离使得如果在不运行的指令解码器80、82、84内出现任何软差错则这些将不产生向外传播到其余集成电路的差错信号并且在集成电路的操作中引起差错。作为另一个实例,来自移位器74的输出可以受到隔离门98的控制以便如果集成电路68的特定处理状态是不包括任何移位操作的处理状态,则来自移位器74的输出可以被隔离使得它对任何随后的处理没有不适当的影响。 
来自调试控制器88的调试控制信号经受隔离门控制,因为如果在调试控制器88内确实出现软差错,则调试控制信号能对集成电路68的操作有特别大的影响并且引起大规模的差错。 
作为隔离门控制的另一个实例,利用可以受隔离门108、110支配的选择信号来控制被用来在寄存器组70内选择主寄存器或影子寄存器(shadow register)(取决于处理模式)的乘法器104和106。因此,如果处理模式是其中已知影子寄存器不运行的处理模式,则到乘法器104、106的选择信号可以经受隔离使得软差错不会使它们不适当地改变选择的寄存器并且因而产生错误的处理操作。 

Claims (8)

1.一种集成电路,包括:
可用来执行各自数据处理操作的多个电路单元;
多个差错隔离门,所述多个差错隔离门被设置以控制电路单元之间的信号路径并且可以操作在闭合状态以阻止在电路单元之间通过的相应信号中的变化以及可以操作在断开状态以允许在电路单元之间通过的相应信号中的变化;以及
隔离门控制器,所述隔离门控制器对所述集成电路的当前状态进行响应以将所述多个差错隔离门中的相应的差错隔离门控制为所述闭合状态或所述断开状态,其中
所述隔离门控制器控制所述差错隔离门使得至少一个电路单元是差错隔离电路单元,所述差错隔离电路单元被驱动在所述当前状态并且在所述当前状态中没有被用来执行数据处理操作以确定来自所述差错隔离电路单元的一个或多个输出信号,所述差错隔离电路单元被处于所述闭合状态的差错隔离门包围以便阻止出现在所述差错隔离电路单元内的信号差错传播到其它电路单元。
2.如权利要求1所述的集成电路,其中所述信号差错是瞬时差错。
3.如权利要求1或2中的任何一个所述的集成电路,其中所述当前状态取决于当前正被处理的一个或多个程序指令。
4.如权利要求1或2中的任何一个所述的集成电路,其中当前状态取决于所述集成电路的当前处理模式。
5.如权利要求1或2中的任何一个所述的集成电路,其中所述差错隔离门中的至少一个可用来控制多路复用器的选择输入使得所述多路复用器不选择传送来自所述差错隔离电路单元的输出信号。
6.如权利要求1或2中的任何一个所述的集成电路,其中所述差错隔离门中的至少一个可用来锁存来自所述差错隔离电路单元的输出信号。
7.如权利要求1或2中的任何一个所述的集成电路,其中所述差错隔离电路单元是:
(i)不能运行在操作的当前模式的指令解码器;
(ii)不能运行在操作的当前模式的调试电路;或
(iii)不能用于当前正被处理的任何程序指令的数据路径的一部分。
8.一种减少集成电路内的差错传播的方法,所述方法包括的步骤为:
利用多个电路单元执行相应的数据处理操作;
利用多个差错隔离门控制信号路径,所述多个差错隔离门位于电路单元之间并且可操作在闭合状态以阻止通过电路单元之间的相应信号中的变化以及可操作在断开状态以允许通过电路单元之间的相应信号中的变化;以及
响应于所述集成电路的当前状态控制所述多个差错隔离门中的相应的差错隔离门为所述闭合状态或所述断开状态,其中
所述差错隔离门被控制使得至少一个电路单元是差错隔离电路单元,所述差错隔离电路单元被驱动在所述当前状态并且在所述当前状态中没有被用来执行数据处理操作以确定来自所述差错隔离电路单元的一个或多个输出信号,所述差错隔离电路单元被处于所述闭合状态的差错隔离门包围以便阻止出现在所述差错隔离电路单元内的信号差错传播到其它电路单元。
CN2005800516512A 2005-09-22 2005-10-03 基于集成电路内的差错传播的差错检测电路的插入 Expired - Fee Related CN101273356B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0519363.6 2005-09-22
GBGB0519363.6A GB0519363D0 (en) 2005-09-22 2005-09-22 Error propagation in integrated circuits
PCT/GB2005/003800 WO2007034128A1 (en) 2005-09-22 2005-10-03 Insertion of error detection circuits based on error propagation within integrated circuits

Publications (2)

Publication Number Publication Date
CN101273356A CN101273356A (zh) 2008-09-24
CN101273356B true CN101273356B (zh) 2012-03-07

Family

ID=35335286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800516512A Expired - Fee Related CN101273356B (zh) 2005-09-22 2005-10-03 基于集成电路内的差错传播的差错检测电路的插入

Country Status (5)

Country Link
US (1) US7926021B2 (zh)
JP (1) JP4943427B2 (zh)
CN (1) CN101273356B (zh)
GB (2) GB0519363D0 (zh)
WO (1) WO2007034128A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7701240B2 (en) * 2005-03-04 2010-04-20 Arm Limited Integrated circuit with error correction mechanisms to offset narrow tolerancing
US8339155B2 (en) * 2009-11-25 2012-12-25 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for detecting soft-fails
CN102073007B (zh) * 2009-11-25 2013-06-26 台湾积体电路制造股份有限公司 用于检测轻错误的系统和方法
US8516356B2 (en) * 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
US8384430B2 (en) 2010-08-16 2013-02-26 Taiwan Semiconductor Manufacturing Company, Ltd. RC delay detectors with high sensitivity for through substrate vias
US8453082B2 (en) * 2010-09-08 2013-05-28 International Business Machines Corporation Soft error verification in hardware designs
WO2012066636A1 (ja) * 2010-11-16 2012-05-24 富士通株式会社 情報処理装置、送信装置及び情報処理装置の制御方法
WO2014052936A1 (en) * 2012-09-28 2014-04-03 Arteris SAS Automatic safety logic insertion
US20150220667A1 (en) * 2014-02-06 2015-08-06 Infineon Technologies Ag Application-based verification coverage using metamodels
US9430599B2 (en) * 2014-02-18 2016-08-30 Optima Design Automation Ltd Determining soft error infliction probability
US11816410B2 (en) 2017-06-19 2023-11-14 Siemens Electronic Design Automation Gmbh System and method for formal fault propagation analysis
JP7145942B2 (ja) * 2017-06-19 2022-10-03 ワンスピン ソリューションズ ゲゼルシャフト ミット ベシュレンクテル ハフツング フォーマルフォールト伝搬分析のためのシステム及び方法
US11520963B2 (en) * 2017-06-19 2022-12-06 Onespin Solutions Gmbh System and method for formal fault propagation analysis
LU100321B1 (en) * 2017-06-19 2018-12-19 Onespin Solutions Gmbh Method for formal circuit verification
CN110377924B (zh) * 2018-04-12 2024-05-14 奥普蒂马设计自动化有限公司 硬错误模拟及其使用
US10839877B1 (en) * 2019-04-23 2020-11-17 Nxp Usa, Inc. Register protection circuit for hardware IP modules
US20220198023A1 (en) * 2020-12-22 2022-06-23 Intel Corporation Simulation state to detect transient execution attack
CN112580282B (zh) * 2020-12-23 2023-04-07 海光信息技术股份有限公司 用于集成电路设计验证的方法、装置、设备以及存储介质
US11797373B2 (en) * 2021-12-13 2023-10-24 Nxp B.V. System and method for managing faults in integrated circuits

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936867A (en) * 1996-03-14 1999-08-10 Intel Corporation Method for locating critical speed paths in integrated circuits
US6393594B1 (en) * 1999-08-11 2002-05-21 International Business Machines Corporation Method and system for performing pseudo-random testing of an integrated circuit
CN1542459A (zh) * 2003-05-01 2004-11-03 中兴通讯股份有限公司 一种集成电路边界扫描测试装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0529551A (ja) * 1991-07-19 1993-02-05 Fujitsu Ltd 半導体集積回路
US6178532B1 (en) * 1998-06-11 2001-01-23 Micron Technology, Inc. On-chip circuit and method for testing memory devices
JP3609805B2 (ja) * 2002-07-11 2005-01-12 松下電器産業株式会社 ブロック間インタフェース回路およびシステムlsi
JP4450279B2 (ja) * 2004-04-20 2010-04-14 株式会社ルネサステクノロジ 半導体集積回路装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936867A (en) * 1996-03-14 1999-08-10 Intel Corporation Method for locating critical speed paths in integrated circuits
US6393594B1 (en) * 1999-08-11 2002-05-21 International Business Machines Corporation Method and system for performing pseudo-random testing of an integrated circuit
CN1542459A (zh) * 2003-05-01 2004-11-03 中兴通讯股份有限公司 一种集成电路边界扫描测试装置

Also Published As

Publication number Publication date
JP4943427B2 (ja) 2012-05-30
US7926021B2 (en) 2011-04-12
WO2007034128A1 (en) 2007-03-29
JP2009502037A (ja) 2009-01-22
CN101273356A (zh) 2008-09-24
GB2439854A (en) 2008-01-09
GB0519363D0 (en) 2005-11-02
GB2439854B (en) 2010-12-01
US20090049331A1 (en) 2009-02-19
GB0718193D0 (en) 2007-10-31

Similar Documents

Publication Publication Date Title
CN101273356B (zh) 基于集成电路内的差错传播的差错检测电路的插入
Hulgaard et al. Testing asynchronous circuits: A survey
Zhang et al. Sequential element design with built-in soft error resilience
Park et al. Post-silicon bug localization in processors using instruction footprint recording and analysis (IFRA)
Saggese et al. An experimental study of soft errors in microprocessors
Massengill et al. Analysis of single-event effects in combinational logic-simulation of the AM2901 bitslice processor
US9316691B2 (en) Method and apparatus for fault injection
Monnet et al. Designing resistant circuits against malicious faults injection using asynchronous logic
Huang et al. Statistical diagnosis for intermittent scan chain hold-time fault
Cannon et al. Improving the effectiveness of TMR designs on FPGAs with SEU-aware incremental placement
Hamad et al. Characterizing, modeling, and analyzing soft error propagation in asynchronous and synchronous digital circuits
US20030192023A1 (en) Apparatus and method for handling of multi-level circuit design data
Kuentzer et al. Soft error detection and correction architecture for asynchronous bundled data designs
Rahbaran et al. Is asynchronous logic more robust than synchronous logic?
Blome et al. A microarchitectural analysis of soft error propagation in a production-level embedded microprocessor
Liu et al. On multiplexed signal tracing for post-silicon validation
Valadimas et al. Timing error tolerance in small core designs for SoC applications
Evans et al. Heavy-ion micro beam and simulation study of a flash-based fpga microcontroller implementation
Nowosielski et al. FLINT: Layout-oriented FPGA-based methodology for fault tolerant ASIC design
Wali Circuit and system fault tolerance techniques
Huang On speeding up extended finite state machines using catalyst circuitry
Floros et al. The time dilation scan architecture for timing error detection and correction
Yanagawa et al. Scan-architecture-based evaluation technique of SET and SEU soft-error rates at each flip-flop in logic VLSI systems
Zhang Analysis and design of soft-error tolerant circuits
Rozanov et al. Redundant hardware components for ASIC. RTL model and synthesys

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120307

Termination date: 20161003