CN1761946A - 集成电路处理级内的错误检测和恢复 - Google Patents

集成电路处理级内的错误检测和恢复 Download PDF

Info

Publication number
CN1761946A
CN1761946A CNA2004800073384A CN200480007338A CN1761946A CN 1761946 A CN1761946 A CN 1761946A CN A2004800073384 A CNA2004800073384 A CN A2004800073384A CN 200480007338 A CN200480007338 A CN 200480007338A CN 1761946 A CN1761946 A CN 1761946A
Authority
CN
China
Prior art keywords
delay
processing
integrated circuit
length
level
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
Application number
CNA2004800073384A
Other languages
English (en)
Other versions
CN100401262C (zh
Inventor
K·弗劳特纳
T·M·奥斯丁
D·T·布劳夫
T·N·马奇
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
University of Michigan
Original Assignee
Advanced Risc Machines Ltd
University of Michigan
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, University of Michigan filed Critical Advanced Risc Machines Ltd
Publication of CN1761946A publication Critical patent/CN1761946A/zh
Application granted granted Critical
Publication of CN100401262C publication Critical patent/CN100401262C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Manipulation Of Pulses (AREA)
  • Advance Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Dram (AREA)
  • Logic Circuits (AREA)
  • Hardware Redundancy (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microcomputers (AREA)

Abstract

集成电路包括多个处理级,每个处理级包括处理逻辑(2)、无延迟锁存器(4)、延迟锁存器(8)和比较器(6)。无延迟锁存器(4)在无延迟捕获时间从处理逻辑(2)捕获输出。在以后的延迟捕获时间,延迟锁存器(8)也捕获来自处理逻辑(2)的值。比较器(6)比较这些值,并且如果它们不相等,则指示无延迟值捕获得太快,并且应该由延迟值代替。紧接着无延迟值的捕获,该无延迟值被传递到随后的处理级,并相应地使用错误恢复机制来抑制随后处理级已发生的错误处理,诸如在重新启动时钟之前选通时钟,并使正确信号值可通过随后的处理逻辑传播。调节集成电路的操作参数,诸如时钟频率、工作电压、体偏压、温度等,以便以增加总体性能的方式维持有限的非零出错率。

Description

集成电路处理级内的错误检测和恢复
本发明涉及集成电路领域。更具体地说,本发明涉及集成电路处理级内的处理错误的检测和这种处理错误的恢复。
众所周知,集成电路可看作由一系列串行连接的处理级(例如流水线电路)组成。每级之间是存储一个或多个信号值的锁存器。每个处理级的处理逻辑响应从前面处理级或别处接收的输入值,来产生要存储在相关输出锁存器中的输出信号值。处理逻辑完成其处理操作所用的时间确定了集成电路可操作的速度。如果所有级处理逻辑都能在短时间内完成其处理,那么通过引起高速处理的输出锁存器可快速增加信号值。系统增加级间信号不能比最慢的处理逻辑可执行其接收输入信号和产生适当输出信号的处理操作更快。这限制了系统的最大性能。
在某些情况下,需要尽可能快地处理数据并相应地驱动处理级,以便以尽可能快的速率提高其处理操作,直到最慢的处理级不能保持同步为止。在其它情况下,集成电路的功耗比处理速率更重要,并将降低集成电路的工作电压,以将功耗降到最慢的处理级不再能保持同步的那一点。
一种处理这些限制条件的方法是用处理时钟驱动集成电路,该处理时钟具有比考虑到不同集成电路、操作环境条件、正处理信号的数据相关性等之间最坏情况制造偏差的公差范围所允许的最小值小的已知频率。在电压电平方面,考虑到最坏情况制造偏差、环境条件、数据相关性等,通常以足够高于最小电压电平的电压电平来操作集成电路,以确保所有处理级能够保持同步。要理解到,在限制最大工作频率和最小工作电压以便考虑到最坏情况时,常规方法是谨慎的。
在其它已知系统中提供了这样的电路元件:用于测量特定集成电路是否超过其频率或电压要求而工作。这些已知机制包括嵌入在集成电路内的延迟线,沿这些延迟线可监控信号的传播,以确保信号到达延迟线末端或延迟线内某些其它预定点,这要求有足够的时间,以确保在已满足沿该延迟线传播的情况下,集成电路上最慢处理级也将完成其处理操作。延迟线设计成其延迟比任何处理级的最大延迟都大足够的余量,以将最坏情况制造偏差、环境条件、数据相关性等考虑进去。因此,这种技术以控制工作电压和频率的方式也是谨慎的。
从一个方面来看,本发明提供了一种执行数据处理的集成电路,所述集成电路包括:
错误检测器,可操作用于通过对所述集成电路内的数据信号值进行复式采样来检测所述集成电路操作中的错误,采样值间的差异表示错误;
错误修复逻辑,响应所述错误检测器,并可操作用于修复操作中的所述错误;以及
操作参数控制器,可操作用于控制所述集成电路的一个或多个性能控制操作参数;其中
所述操作参数控制器根据所述错误检测器检测的一个或多个错误特性来动态控制所述一个或多个性能控制参数中的至少一个,来维持操作中的非零出错率,所述错误修复逻辑修复操作中的所述错误,以使所述集成电路的数据处理继续。
本技术反直觉地并违背本领域中强烈的设计偏见,而故意地以维持非零出错率的方式来操作集成电路。与恢复检测错误相关联的时间和功率方面的成本,小于通过接近集成电路的操作限制运行而产生的节省。
最好,复式采样是在各个不同时间检测采样点的信号值。
优选实施例是这样的:所述操作参数控制器应用反馈控制,以根据所述错误检测器检测的所述一个或多个错误特性来调节所述一个或多个性能控制参数中的所述至少一个。
虽然可能有广泛的可能性,但优选实施例是这样的:所述错误检测器检测的所述一个或多个错误特性至少包括以下一项:
所述错误检测器检测的所述错误的错误率;以及
由所述错误检测器检测的所述错误的所述错误修复逻辑的修复产生的处理性能方面的降低。
虽然性能控制参数可采用各种不同的形式,但在优选实施例中,所述一个或多个性能控制参数至少包括以下一项:
工作电压;
工作频率;
集成电路体偏压;以及
温度。
本发明的优选实施例提供了一种执行数据处理的集成电路,所述集成电路包括:
多个处理级,来自至少一个处理级的处理级输出信号被作为处理级输入信号提供给后面的处理级,其中所述至少一个处理级包括:
处理逻辑,可操作用于对至少一个处理级输入值执行处理操作,以产生处理逻辑输出信号;
无延迟锁存器,可操作用于在无延迟捕获时间捕获所述处理逻辑输出信号的无延迟值,在所述无延迟捕获时间之后,所述无延迟值被作为所述处理级输出信号提供给所述后面的处理级;
延迟锁存器,可操作用于在迟于所述无延迟捕获时间的延迟捕获时间上捕获所述处理逻辑输出信号的延迟值;
比较器,可操作用于在所述无延迟捕获时间之后比较所述无延迟值和所述延迟值,以检测所述处理逻辑输出信号的改变,所述改变表示所述处理逻辑在所述无延迟捕获时间上没有完成所述处理操作;以及
错误恢复逻辑,可操作用于在所述比较器检测到所述改变时执行错误恢复操作,以抑制所述后面的处理级使用所述无延迟值。
这些优选实施例认确认可直接监控处理级自身的操作,以找到它们失效的限制条件。在发生实际故障时,则可纠正这些故障,以使整体上不产生错误操作。通过将本方法中直接观察故障点与先前方法中避免过度谨慎的性能范围相比较所获得的优点,多于在发生故障时对恢复系统所用的附加时间和功率的补偿。故意允许发生这种处理错误,以使关键路径无法满足其同步要求,在本领域中这是极其反直觉的,其中正常情况是努力确保所有关键路径总是满足其同步要求。处理级应该被广泛考虑并包含例如简单总线,其中在该总线中信号从一个锁存器传到下一个锁存器,无需经历和操作。
已检测到发生了错误,就有多种不同的方式可以纠正或补偿它。在一个优选型实施例中,错误恢复逻辑可操作用于以延迟值代替无延迟值作为处理级输出信号。强烈优选的是,用从延迟值采样中获得的正确值代替已知有缺陷的处理级输出信号,这是因为即使发生错误并需要补偿,也足以通过数据处理操作确保向前继续进行。
优选配置是这样的:其中错误恢复逻辑操作用于迫使延迟值存储在无延迟锁存器中代替无延迟值。
虽然本发明可适用于同步和异步数据处理电路,但本发明很适用于同步数据处理电路,在同步数据处理电路中无延迟时钟信号驱动处理级内的处理操作。
在无延迟时钟信号驱动处理级的系统的情况下,错误恢复逻辑可利用该信号,以通过选通无延迟时钟信号来促进恢复错误,以为后面的处理级提供足够的时间来恢复不正确的无延迟值的输入,并代替使用正确的延迟值。
在使用无延迟时钟信号的实施例的情况下,捕获时间可来自无延迟时钟信号中的预定相点,而延迟时钟信号可来自无延迟时钟信号。这两个时钟信号之间的相移可定义无延迟捕获和延迟捕获之间的延迟。
本技术特别适用于处理级是同步流水线内各个流水线级的实施例。
检测和恢复错误可用于各种不同情况中,但特别适用于希望根据这种错误的检测来动态控制集成电路操作参数的情况。反直觉地,本技术可用于控制操作参数,以使系统以作为目标速率维持的非零出错率运行,因为即使考虑了恢复发生的错误所需的措施,这也可对应于改进的总体性能,无论是速度方面还是功耗方面。
可改变的操作参数包括工作电压、工作频率、集成电路体偏压(其控制阈值电平)和其温度。
为了确保延迟锁存器中捕获的数据总是正确的,任一级处理逻辑中最大延迟的上限都是这样的:在工作点上任一级处理逻辑的延迟都不能超过时钟周期加上延迟捕获延迟的量的总和。作为任一处理延迟的下限有这样的要求:任一级处理逻辑的处理时间应超过延迟捕获接着无延迟捕获的时间,以确保沿短路径传播的后面数据不会不适当地破坏延迟捕获值。这可通过在需要时用一个或多个延迟元件加长短路径来保证。
本技术适用于多种不同类型的集成电路,诸如通用数字处理电路,但特别适用于处理级是数据处理器或微处理器一部分的系统。
为了便于使用控制操作参数的控制算法,优选实施例包括错误计数器电路,该电路可操作用于响应与无延迟值比较的延迟值中的改变而存储错误检测计数。该错误计数器可通过软件实现,以执行操作参数的控制。
要理解到,上面讨论的延迟锁存器和无延迟锁存器可具有多种不同的形式。具体地说,这些锁存器可看成是包括以触发器、D型锁存器、时序元件、存储单元、寄存器元件、其组合以及能够存储信号值的各种其它存储设备形式的实施例。
从另一方面来看,本发明提供了一种控制执行数据处理的集成电路的方法,所述方法包括如下步骤:
将来自多个处理级中至少一个处理级的处理级输出信号作为处理级输入信号提供给后面的处理级,所述至少一个处理级操作用于:
用数据处理逻辑对至少一个处理级输入值执行处理操作,以产生处理逻辑输出信号;
在无延迟捕获时间上捕获所述处理逻辑输出信号的无延迟值,在所述无延迟捕获时间之后,将所述无延迟值提供给所述后面的处理级作为所述处理级输出信号;
在迟于所述无延迟捕获时间的延迟捕获时间上,捕获所述处理逻辑输出信号的延迟值;
在所述无延迟捕获时间之后,比较所述无延迟值和所述延迟值以检测所述处理逻辑输出信号中的改变,所述改变表示所述处理逻辑在所述无延迟捕获时间没有完成所述处理操作;以及
在检测到所述改变时,执行错误恢复操作,该操作抑制所述后面的处理级使用所述无延迟值。
现将仅以示例方式参考附图来描述本发明的实施例,附图中:
图1示意性示出应用本技术的多个处理级;
图2是示意性示出用在本技术中的电路的电路框图;
图3是示意性示出无延迟锁存器和延迟锁存器以及相关比较器和错误恢复逻辑的电路图;
图4A和4B是示意性示出图1电路操作的流程图;
图5示意性示出包括快速读取机制和慢速读取机制的存储电路;
图6示出了图5电路一部分的备选电路配置;
图7是示意性示出图5存储电路操作的流程图;
图8示出了包括总线级之间无延迟锁存器和延迟锁存器的流水线总线;
图9是示意性示出图8流水线总线操作的流程图;
图10示意性示出用于控制微处理器的控制信号的产生,该控制信号受无延迟锁存和输出及延迟锁存和输出的控制;
图11是示意性示出图10电路一个操作示例的流程图;
图12示出了包括无延迟锁存器和延迟锁存器的处理流水线,在较低工作功率期间,这些延迟锁存器重用作数据保持锁存器;
图13是示意性示出图12电路操作的流程图;
图14示意性示出已应用纠错和延迟锁存器的多个处理级;
图15示意性示出通过通道进行数据传送的纠错,如果没出现错误,则仅将未改变的数据值从输入传到输出;
图16示意性示出了对于值改变逻辑元件(诸如加法器、乘法器或移位器)如何执行纠错;
图17是示意性示出图14电路操作的流程图;
图18示意性地示出了延迟锁存器和无延迟锁存器可如何用于控制处理流水线内的时钟信号相对相位;
图19和20示意性示出了在恢复错误过程中停止和磁泡插入的各自使用;以及
图21示出了用在处理级之间的无延迟和延迟锁存器,其中延迟锁存器重新用作串行扫描链锁存器。
图1示出了集成电路的一部分,其是处理器核(诸如英格兰剑桥的ARM有限公司生产的ARM处理器核)内的一部分同步流水线。同步流水线由多个相同处理级组成。第一级包括处理逻辑2、其后是以触发器形式的无延迟锁存器4、比较器6和延迟锁存器8。这里所用的术语锁存器,包括可操作用于不考虑触发、时钟和其它要求而存储信号值的任何电路元件。类似地构成随后的处理级。无延迟时钟信号10驱动所有处理级内的处理逻辑和无延迟锁存器4,以作为同步流水线的一部分同步工作。延迟时钟信号12被提供给各处理级的延迟锁存器8。延迟时钟信号12是无延迟时钟信号10的相移版本。相移程度控制在无延迟锁存器4执行的处理逻辑2的输出捕获和延迟锁存器8在随后时间执行的处理逻辑2的输出捕获之间的延迟周期。如果处理逻辑2在现有无延迟时钟信号频率、提供给集成电路的工作电压、体偏压、温度等给出的限制内工作,那么等到无延迟锁存器4被触发以捕获其值时,处理逻辑2将已经完成其处理操作。结果,在延迟锁存器8随后捕获处理逻辑2的输出时,该输出将具有与在无延迟锁存器4内捕获的值相同的值。相应地,比较器6在延迟周期期间将检测不到发生改变,且不会触发错误恢复操作。相反,如果集成电路的操作参数是这样的:等到无延迟锁存器4捕获其值时,处理逻辑2还没完成其处理操作,那么延迟锁存器8将捕获不同的值,并且这将被比较器6检测到,从而强制执行错误恢复操作。可以看出,错误恢复操作能代替无延迟锁存器4的输出,在跟随其捕获的时间期间,无延迟锁存器4的输出被提供给后面的处理级,其中延迟值存储在延迟锁存器8内。该延迟值还可被迫存储在无延迟锁存器4内,代替存储在此的之前错误捕获的值。
亚稳态检测器7用于检测无延迟锁存器4输出中的亚稳态(即,不处于明确定义的逻辑状态)。如果检测到这种亚稳态,则将其作为错误来处理,并改为使用延迟锁存器6的值。
一检测到错误,就可通过选通无延迟时钟信号10来使整个流水线停止达附加延迟周期的时间,为后面处理级中的处理逻辑提供足够的时间来正确响应提供给它的校正的输入信号值。备选地,可用根据标准流水线处理技术、使用逆流结构(见图2的磁泡和刷新锁存器)插入到流水线中的磁泡来停止上游处理级,其中允许随后的处理级继续操作。另一备选方案是,可用被迫进入每级无延迟锁存器的延迟锁存器值来复位整个处理流水线,并重新开始处理。取代错误值重新使用延迟锁存器值,而不是试图重新计算,确保了即使已出现错误但通过处理操作仍可实现向前继续进行。
存在有关处理级内处理逻辑所花的处理时间与无延迟捕获时间和延迟捕获时间之间的延迟之间关系的限制。具体地说,任何处理级的最小处理时间都不应小于该延迟,以确保捕获的延迟值不被从短延迟处理级输出的新数据破坏。可能要用额外的延迟元件来填充短延迟处理级,以确保它们不低于该最小处理时间。在其它极限上,需要确保在任何操作参数的任何操作点出现的处理级内的处理逻辑最大处理延迟都不大于正常无延迟工作时钟周期和延迟值的总和,以确保在延迟值锁存器中捕获的延迟值稳定且正确。
有多种可控制系统调谐功耗和性能的备选方式。根据一种配置,提供错误计数器电路(未示出)来计数比较器6产生的不等检测的数量。这个检测和恢复的错误的计数,可用于使用硬件实现或软件实现的算法来控制操作参数。该计数器可通过软件读取。通过用维持非零出错水平的参数来故意操作集成电路,可获得最佳总体性能,无论是最大速度方面还是最低功耗方面。在此情况下,来自操作非谨慎操作参数的增益,超过了恢复错误的需要所引起的惩罚。
根据备选配置,硬件计数器作为性能监控模块提供,并可操作用于跟踪有用的工作和错误恢复工作。具体地说,计数器保持用于进行正执行处理操作的有用指令数的计数,且还保持进行错误恢复所执行的指令和磁泡数的计数。软件可操作用于读取硬件计数器,并使用计数值适当地保持错误恢复的开销及其对系统性能的影响与通过以非零出错率运行集成电路所获得的降低功耗的平衡。
图2是示意性示出了本技术中所用电路的电路框图。图2的上部示出了在每个处理级内提供的电路元件,即无延迟锁存器4、延迟锁存器8和比较器6。亚稳态检测器7用于检测无延迟锁存器4输出中的亚稳态,并且这也引发了错误信号的产生。来自多个这种级的错误信号被提供给OR(或)门100的各个输入,其中如果在任一处理器级中检测到错误,则产生全局错误信号。全局错误信号可用于触发如图所示的刷新和磁泡插入信号。电路102检测错误信号自身是否是亚稳态。用正偏锁存器(参考较高电压)和负偏锁存器(参考较低电压)锁存错误信号。如果上述两个锁存器的锁存值不一致,则表示错误信号是亚稳态,并抽取应急(panic)信号。通过锁存错误信号,并在对错误信号采样之前等待整个时钟周期(即两个锁存器串联),可忽略处于亚稳态的应急信号的概率。重要的是,如果抽取应急信号,则可能由于错误信号的亚稳态而破坏来自延迟锁存器的恢复值。在此情况下,使指令无效,且不向前继续进行。由此,刷新流水线、重新启动指令并降低时钟频率,以确保在重试同一指令时错误信号不会处于亚稳态(否则会引起无限的重试循环)。
图3是详细示出无延迟锁存器、延迟锁存器、比较器和至少一部分错误恢复电路的电路图。无延迟锁存器4可看作以两个锁存器14、16提供的触发器的形式。延迟锁存器8以单个反馈元件的形式。XOR(异或)门18用作比较器。错误信号20出现在图3的电路中,并可提供给错误计数器电路(如前所述),或提供给调节电路或系统的其它操作参数。错误信号20用于切换多路复用器22,该多路复用器迫使存储在延迟锁存器8内的延迟值存储在无延迟锁存器4的锁存器14内。亚稳态检测电路24用于检测无延迟锁存器4内的亚稳态的出现,并还用这个引发错误信号,该错误信号会使错误的亚稳态值由存储在延迟锁存器8内的延迟值代替。
图4A和4B是示意性示出图1、2和3电路操作的流程图。
在步骤26,来自第i级的处理逻辑在时间Ti产生其输出信号。在步骤28,由无延迟锁存器捕获该输出信号,并形成无延迟值。在步骤30,来自无延迟锁存器的无延迟值开始被传递到后面的第i+1处理级,该处理级基于该值开始处理。如果检测到错误,则这个处理可能被证明是错误的,并将需要恢复。
步骤32使处理逻辑可以继续处理另一段时间周期(延迟时间),以在时间Ti+d产生输出信号。在步骤34,该输出信号被锁存在延迟锁存器中。在步骤36,比较延迟锁存器和无延迟锁存器内的值。在步骤37,如果它们相等,则没有发生错误,并继续正常处理。如果它们不等,则表示:当无延迟锁存器捕获其值并开始将该值提供给随后的第i+1处理级时,处理逻辑在时间Ti没有完成其处理操作。因此,出错条件已经产生,并将需要纠正。在步骤38,通过将流水线磁泡转发到第i级后的流水线级中来起动该纠正。在步骤40,停止所有前面级到第i+1级。这包括出现错误的第i级。在步骤42,第i+1级使用延迟锁存值作为其输入来重新执行其操作。在步骤44,可根据需要修改集成电路的操作参数。例如,可降低工作频率、增加工作电压、增加体偏压等。然后处理继续到步骤46。
如果检测到不足量的错误,则控制电路和算法的操作参数可故意调节操作参数,以便降低功耗并引起非零出错率。
图5示出了存储器100,其包含存储单元102的阵列。在该例中示出了单行存储单元,但如本领域技术人员所熟知的,这种存储单元阵列通常是包含数千个存储单元的大的二维阵列。根据正常的存储操作,解码器104用于接收要存取的存储地址,并将该存储地址解码,以激活一条字线106。该字线用于将线中的存储单元102耦合到各个位线对108。根据相关存储单元102内存储的位值,这将导致当前耦合到该存储单元的位线108中的电改变(例如电压和/或电流的改变),并且该改变由读出放大器110读出。在第一时间,读出放大器110的输出存储在无延迟锁存器112内,并且随后在延迟时间该输出被存储在延迟锁存器114内。在延迟值已存储在延迟锁存器114之前,存储在无延迟锁存器112内的无延迟值经多路复用器116直接传递到另一处理电路118。当在延迟锁存器114内已捕获了延迟值时,比较器120用于比较无延迟值和延迟值。如果它们不等,则多路复用器116将该延迟值切换为来自存储器100的相关特定位的输出值。还从比较器120向另一处理电路118发出抑制信号,以抑制另一处理电路118基于当前已代替的错误无延迟值进行处理。本例中的抑制采用控制提供给另一处理电路118的时钟信号CLK的形式,来扩展相关的时钟周期,并延迟锁存该另一处理电路的新结果,直到延迟值有机会通过相关处理电路传播到达该另一处理电路输出处的锁存器时的时间为止。
可以看出,读出放大器110和无延迟锁存器112组成快速读取机构的一部分。读出放大器110和延迟锁存器114组成慢速读取机构的一部分。在大多数情况下,无延迟锁存器112内锁存的快速读取结果将被纠正,且不需要任何纠正操作。在少数情况下,快速读取结果将不同于延迟锁存器114内锁存的慢速读取结果,并且在此情况下,慢速读取结果被认为是正确的,并用于以基于抑制的快速读取结果的处理来代替快速读取结果。与纠正错误的快速读取结果所需的相对不频繁相关联的惩罚,多于由通过接近其限制条件而运行存储器100所获得的增强性能(速度、低电压操作、低功耗和/或其它性能参数方面)所补偿的。
图6示出了图5电路一部分的变形。在该变形中,提供了两个读出放大器110’、110”。形成的这两个不同读出放大器110’、110”具有不同的操作速度,其中110’相对快但不可靠,另一个110”相对慢但较可靠。通过改变读出放大器110’、110”的参数,例如诸如晶体管大小、掺杂级、增益等的结构参数,可获得这些不同的特性。比较器120’用于比较两个输出。在慢速读出放大器110”的输出有效之前,通常经多路复用器116’传送来自快速读出放大器110’的输出。在慢速读出放大器110”的输出有效并且比较器120检测到该输出不等于快速读出放大器110’的输出时,它控制多路复用器116’,以将输出值切换为由慢读出放大器110”产生的输出值。比较器120还触发生成抑制信号,以抑制基于错误的快速读取结果的下游处理。
图7是示出图5电路操作的流程图。在步骤122,使用由字线传递的信号将地址解码,使各个存储单元耦合到其相邻位线。在步骤124,在选定存储单元内存储的位值及其补码被驱动到位线对上。这引起位线内的电流流动以及位线中的电压改变。读出放大器110响应检测到的电流和/或电压电平改变。
在步骤126,快速数据读取机构对当时从存储单元输出的值进行采样。在步骤128,当假设快速读取数据值正确时,该值被传递到随后的处理电路,用于进一步处理。在步骤130,慢速数据读取机构对慢速读取数据值采样。步骤132比较快速读取值和慢速读取值。如果它们相等,则在步骤134继续正常处理。然而,如果采样值不同,则步骤136用于向已传递了快速读取值的其它电路发出抑制信号,并还用于向那些其它电路发出慢速读取值取代快速读取值,以便可进行正确处理。
图8示出了在流水线总线140内使用本技术。流水线总线140包含用于存储沿总线传递的数据值的若干锁存器142。流水线总线140的一个例子是已知由英格兰剑桥的ARM有限公司设计的AXI总线。在该配置中,沿流水线总线140传递的数据值的目的地是数字信号处理电路144。该数字信号处理(DSP)电路144本身并不实现上述无延迟锁存和延迟锁存技术。在备选配置中,沿流水线总线传递的数据值的目的地可以是不同于DSP电路的设备,例如本身并不实现延迟和无延迟锁存技术的标准ARM处理器核。
与每个无延迟锁存器142相关联的是各个延迟锁存器146。这些延迟锁存器146用于对总线上的信号值采样,这发生在由它们对应的无延迟锁存器142对信号值进行采样和锁存时的晚些时间。这样,由于任何原因(例如所用的工作电压太低、时钟速度过快、来自相邻数据值的耦合效应等)沿总线传递的数据值中的延迟都会引起存储在无延迟锁存器142和延迟锁存器146内的值之间出现差异的可能性。流水线总线140上的末级示为包括比较器147,该比较器比较无延迟值与延迟值。如果它们不相等,则延迟值用于代替无延迟值,并抑制基于无延迟值的处理,以使纠正能生效(可延长总线时钟周期)。要理解到,沿流水线总线140在每个锁存级都将提供这些比较器和多路复用电路元件,但为了清楚起见,图8省略了这些元件。
由于DSP电路144自身并不支持具有其相关校正概率的无延迟和延迟锁存机制,因此重要的是,提供给DSP电路144的数据值已经受到任何必要校正的控制。由于这个原因,在流水线总线140的末端提供附加缓冲锁存器级148,以将数据值所需的任何纠正提供给该锁存器,并在DSP电路144对该数据值起作用之前,可执行附属DSP电路144。缓冲锁存器148可放在足够接近DSP电路144的位置,这样将没有使数据值中的错误从缓冲锁存器148传到DSP电路144的不足够可用的传播时间等的发出。
要理解到,各个无延迟锁存器142之间的总线连接可看作是只传递不变数据的处理逻辑形式。这样,对于本领域技术人员而言,图8流水线总线实施例和上述实施例(例如图1)之间的等效性将是显而易见的。
图9是示出图8操作的流程图。在步骤150,从总线线路捕获无延迟信号值。然后在步骤152将该无延迟值传到下一总线流水线级。在步骤154,相应的延迟锁存器146捕获延迟总线信号。在步骤156,比较器147比较延迟值与无延迟值。如果它们相等,则在步骤158继续正常处理。如果两个比较值不相等,则步骤160用于使用图8所示的多路复用器来延迟总线时钟,并周延迟值代替无延迟值。
图10示出了使用本技术的另一示例性实施例。在该示例性实施例中,来自处理器核内指令寄存器的指令被锁存在指令锁存器162内。从该指令锁存器162中,指令被传递到包括微编码ROM的解码器164,该微编码ROM用于产生适当的处理器控制信号集合,该集合存储在无延迟控制信号锁存器166中,并随后用于根据锁存在指令锁存器162内的指令来控制处理器核所执行的处理。在来自解码器164的控制信号输出被锁存在无延迟控制信号锁存器166内的晚些时间,它们还被锁存在延迟控制信号锁存器168内。然后可比较延迟控制信号值与无延迟控制信号值。如果它们不等,则表示有必要进行纠正操作。抑制操作通过这种差异的检测来触发,并用于根据不适当的锁存控制信号值来停止随后的处理。在某些情况下,可能唯一有效的恢复选项是整体上复位处理器。这可能是可接受的。在其它情况下,控制信号中的错误可能是不太激烈的抑制,并且恢复机制是合理的。作为一个例子,特定错误控制信号可能还没起作用,例如在多周期程序指令的情况下,其中一些处理操作直到多周期指令全部执行的后期才开始。这样的一个示例是累积乘法操作,在该操作中,在最终累积发生之前,乘法部分花了几个时钟周期。如果与累积相关联的控制信号中有错误,并且实际上不需要累积而只需纯的乘法,则有可能在加法器试图执行累积操作之前通过纠正施加到累积器的控制信号来抑制累积。
图11示出了图10电路的一个操作示例。在步骤170,从解码器164(微编码ROM)中读取累积乘法控制信号。在步骤172,该累积乘法控制信号被锁存在无延迟控制信号锁存器166内,并被输出到处理器核内的各个处理元件。在步骤174,从寄存器文件中读取乘法操作数,并开始乘法运算。在步骤176,延迟控制信号锁存器168对指令解码器164输出的控制信号进行重新采样。在步骤178,比较无延迟控制信号与延迟控制信号。如果它们相等,那么在步骤180继续正常处理。然而,如果它们不等,那么处理进入步骤182,在步骤182确定乘法运算是否已经完成。如果乘法运算已经完成,那么在步骤184将启动错误的累积操作,并且用于恢复的最佳选项是总体上复位系统。然而,如果乘法运算仍在进行,则步骤186可用在步骤188产生的期望的乘法运算输出结果来复位加法器,并取消累积操作,这是存储在指令锁存器162内的程序指令原来所期望的。
图12示出了图1所示电路的修改。在该实施例中,延迟锁存器190提供等待/休眠操作模式(低功耗模式)期间所用的数据保持(气球(balloon))锁存器的附加功能。正常处理操作期间延迟锁存器190的功能如上所述。然而,当休眠控制器192用于开始进入低功耗操作模式时,它停止无延迟时钟和延迟时钟,以使延迟锁存器190全部存储对应于其各自无延迟锁存器的数据值。在这点上,去掉提供给无延迟锁存器及相关处理电路的电压,以将它们断电,并使之失去其状态。但是,维持加到无延迟锁存器190的电压,以使它们保持相关处理电路的状态。当系统从低功耗模式退出时,再次使处理逻辑和无延迟锁存器上电,当比较器检测到无延迟锁存器和延迟锁存器190中值的差异时,它触发以相关延迟锁存器190内保存的正确值代替无延迟锁存器内的错误值。要理解的是,由于延迟锁存器190所受的严格定时要求的限制没有其无延迟锁存副本那么严格,因此可用如下方式形成这些延迟锁存器:在低功耗模式(例如高阈值电压导致较慢的切换,但具有降低的泄露电流)期间,它们可能具有较低的操作速度,但更适于低功耗。这样,在低功耗模式期间,可将在正常操作期间使用的纠错延迟锁存器重新用作数据保持锁存器,从而有利地降低相关电路的总门数。
图13是示意性示出图12电路操作的流程图。在步骤194,集成电路处于其正常操作处理模式。在步骤196,处理逻辑级在无延迟时间产生输出信号。在步骤198,无延迟锁存器捕获该输出信号。在步骤200,无延迟锁存器内的无延迟信号被传递到下一处理级。在步骤202,在延迟时间产生来自处理级的输出,并且该输出可用于由延迟锁存器捕获。在步骤204,触发集成电路采用低功耗模式,并且速度控制器192用于启动处理电路的断电,同时维持到延迟锁存器190的功率。在步骤206,延迟锁存器190捕获延迟信号值。有可能在步骤206延迟锁存器对延迟信号值的捕获发生在步骤204切换到低功率模式之前。在步骤208,使无延迟锁存器断电,并且其存储的值丢失。集成电路可保持这个状态很长时间。在需要时,步骤210触发休眠控制器192退出低功耗模式,并返回到操作模式。在步骤212,恢复对无延迟锁存器和相关处理逻辑的上电,其中延迟锁存器190内的延迟数据值用于在需要时重新填充到流水线级,以在进入低功耗模式之前恢复系统的状态。
图14示意性示出了已应用纠错控制和延迟锁存器的多个处理级。这些处理级组成集成电路的一部分,其可以是处理器核内同步流水线的一部分、通信总线的一部分或存储系统的一部分。第一处理级包括用于数据通信的通道或处理逻辑1014、无延迟锁存器1016、延迟锁存器1018、比较器1024,该比较器比较延迟锁存器与无延迟锁存器的输出,并将控制信号输出到多路复用器1020,以确定是延迟信号值还是无延迟信号值被作为输入提供给随后的处理级或通道1016。由无延迟时钟信号驱动通道/逻辑1014和无延迟锁存器1016,而由延迟时钟信号驱动延迟锁存器1019,该延迟时钟信号是无延迟时钟信号的相移版本。
如果比较器1024检测到无延迟信号值和延迟信号值之间的差异,则指示:在元件1014表示处理逻辑的情况下,在无延迟捕获时间处理操作没有完成,或在元件1014表示数据通道的情况下,来自先前流水线级的信号还没到达当前级。在实际检测到这种差异的情况下,存储在延迟锁存器1018中的值是更可靠的数据值,因为当处理操作可能已经完成或者来自先前级的数据更可能已经由数据通道到达时,随后捕获该数据值。通过将来自延迟锁存器的结果提供给下一处理级1030,并抑制随后处理级中无延迟值的使用,可以确保计算的向前继续进行。然而,在发生单个事件干扰并破坏了延迟值的情况下,可能损害延迟锁存器1018中存储的延迟信号值的可靠性。单个事件干扰实际上是脉冲,因此其可能被无延迟锁存器错过,而被延迟锁存器获得。这种单个事件干扰会使比较器检测到延迟值和无延迟值之间的差异,作为单个事件干扰的直接结果,并然后将破坏的延迟值传播到随后的处理级。破坏无延迟值的单个事件干扰不会有问题,因为它将导致抑制错误的无延迟值的使用,并将延迟值传播到随后级。
图14的配置通过提供数据完整性的交叉校验降低了破坏的延迟值通过计算前进的可能性,该数据完整性的交叉校验由错误检测模块1026、纠错模块1028和多路复用器1022提供,该多路复用器由错误检测模块1026控制,以将来自延迟锁存器的延迟值直接提供给比较器1024,或提供由纠错模块1028输出的纠错值。通道/逻辑单元1014的上游,8位数据有效负载被纠错编码,并且4个冗余位被加到数据有效负载上,以组成12位信号。该12位信号通过通道/逻辑单元1014,并且无延迟锁存器1016和延迟锁存器1018捕获其值。然而,来自延迟锁存器1018的信号延迟值还作为输入提供给错误检测模块1026,该模块根据12位纠错码信号确定是否已经出现了影响延迟值的任何错误。在备选配置中,可提供另一锁存器以将信号值提供给错误检测模块1018,该模块在稍迟于延迟锁存器1018的时间上捕获信号值。必须在与捕获延迟值相同或稍晚的时间上对捕获的值执行错误校验,以确保检测到无延迟值捕获与延迟值捕获之间出现的任何随机错误。
给定的纠错码能够检测预定数量的错误,并能够纠正给定数量的错误。因此,错误检测模块1026检测是否已经出现了任何错误,并且如果出现了,如果错误数足够小则它们都能被纠正。如果检测到可纠正的错误,则将信号值提供给纠错模块1028,在该模块使用纠错码纠正错误,并将纠正的延迟值提供给比较器1024。如果比较器1024确定纠正的延迟值和无延迟值不同,则启用错误恢复程序,以便在随后的处理级中抑制无延迟值的进一步传播,并用纠正的延迟值来代替执行操作。另一方面,如果比较器1024确定纠正的延迟值和延迟值相同,则存在进行计算的两种备选可能性。首先,还是可以启用错误恢复机制,以便在随后的处理级中抑制无延迟值,并用正确的延迟值代替。备选地,由于确定已纠正了无延迟值(如无延迟值和纠正的延迟值的相等所证实的),因此可抑制错误恢复机制(不管延迟值中的错误检测),从而使无延迟值可继续通过随后处理级前进。然而,如果错误检测模块1026检测到延迟值中不可纠正的错误,则提供控制信号来抑制破坏的延迟值的使用。在此情况下,不能获得计算的向前进行。应用的纠错编码的类型根据通道/处理逻辑1014的特性而不同。
处理逻辑可分类为传值或变值。传值处理逻辑的例子是存储器、寄存器和多路复用器。变值处理逻辑元件的例子是加法器、乘法器和移位器。用于变值处理逻辑元件的错误检测和纠正比用于传值处理逻辑元件的更复杂,因为即使在没出现错误时,逻辑级1014输出的值也可能与输入12位信号1013不同。
图15示意性示出了通过通道的数据纠错,其中如果没有出现错误,则只将未改变的数据值从输入传到输出。在这种传值处理逻辑的情况下,便于使用线性分组码,诸如用于纠错和检错的汉明码。线性分组码通常涉及形成码字,其中原始数据有效负载位在码字中保持不变,只添加一些奇偶校验位(或冗余位)。汉明码是简单的一位纠错码,并且对于(N,K)码而言,N是码字中的总位数,K是要编码的数据位数。通过对输出码字执行多个奇偶校验来检测错误的存在和位置。汉明码包括N-K个奇偶校验位,根据数据中不同的位组合来计算每个奇偶校验位。汉明码能够纠正一个错误或检测出两个错误。奇偶校验位(或所需冗余位)数由汉明规则K+p+1≤2p给定,其中p是奇偶校验位数,且N=K+p。
如图15所示,通道的输入是12位码字,其包括8个数据位和4个奇偶校验位或冗余位。错误检测/纠正模块1116对来自通道1114的输出执行奇偶校验。在错误检测/纠正模块1116输出码字之前,检测并纠正12位码字中的任一位错误。如果检测的错误是不可纠正的,则错误检测/纠正模块1116输出指示这种情况的信号。虽然已针对图11描述了用于传值处理逻辑的简单代码,诸如汉明码,但要理解到也可使用诸如卷积码的其它纠错码。
图16示意性地示出了对于变值逻辑元件(诸如加法器、乘法器或移位器)如何执行纠错。在变值处理逻辑的情况下,可使用算术代码,诸如AN码、剩余码、反剩余码或剩余数字码,来检测和纠正处理逻辑输出中的随机错误。
算术代码可用于校验算术运算符。其中表示要校验的运算符,必须满足如下关系:
Code(XY)=code Xcode Y
AN码是包括用常数因子乘以数据字的算术代码,例如,3N码可用于通过执行以下比较来校验加法运算的有效性:
3N(X)+3N(Y)?=3N(X+Y)
3X+3Y?=3(X+Y).
算术代码类的另一个例子是剩余码,其中将余数(除以常数的余数)加到数据位作为校验位,例如,3R码包括模(MOD)3操作,并且应用如下校验:
X MOD 3+Y MOD 3?=(X+Y)MOD 3
考虑X=14和Y=7的数字例子:
14 MOD 3=2(码字111010,后两位作为余数);
7 MOD 3=1(码字011101);
X+Y=21(10101);
且21 MOD 3=0;
余数的和MOD 3=(2+1)MOD 3=0=(X+Y)的余数。
图16示意性示出了用于校验图10的通道/逻辑单元1014中的加法运算的7R算术代码的使用。要校验的加法运算是X+Y,其中X和Y是8位数据字。每个数据字具有4个校验位,这4个校验位分别具有X MOD 7和Y MOD 7的值。X MOD 7和Y MOD 7作为操作数提供给第一加法器1210,并且该加法器的输出被提供给确定值(X MOD 7+Y MOD 7)MOD 7并将结果作为第一输入提供给比较器1250的逻辑。第二加法器1230执行加法(X+Y),将结果提供给逻辑单元1240,该单元计算(X+Y)MOD 7,并将结果作为第二输入提供给比较器1250。如果比较器检测到两个输入值之间的任何差异,则出现了错误。
图17是示意性示出包括延迟锁存值纠错控制的图14电路操作的流程图。在步骤1310,将12位纠错码信号值输入到通道/逻辑单元1014。下面在步骤1320,无延迟锁存器1016在时间Ti捕获来自通道/逻辑单元1014的输出,并在步骤1330将捕获值转到随后的i+1处理逻辑级。在步骤1340,延迟锁存器1018在时间Ti+d捕获输出信号。在步骤1350,错误检测逻辑在时间Ti+(d+δ)捕获来自通道/逻辑单元1014的输出。虽然在优选配置中δ是0,以使实际上错误校验由延迟值本身输出的值,但备选地可在延迟锁存器在Ti+d捕获输出信号之后的短时间捕获该输出。适当安排提供给错误检测电路的值的捕获,以可确保检测到延迟值中的任何随机错误。在步骤1360,错误检测模块1026使用冗余位来确定延迟的输出信号是否有错误。如果检测到错误,则在步骤1370确定该错误是否是可纠正的,这取决于有多少位受到影响。例如,汉明码仅可纠正1位错误。如果在步骤1370确定错误是可纠正的,那么过程进入步骤1390,在此纠正错误,并在多路复用器1022上选择纠正的延迟值,并将该值提供给比较器1024。但是,如果在步骤1370确定检测的错误不可纠正,则产生指示出现了不可纠正错误的控制信号。在此情况下,不能可靠地执行计算的向前继续进行。在步骤1392,比较器1024确定错误校验的延迟值是否等于无延迟值,并且如果等于,则继续计算的向前进行。否则执行针对图4B描述的一系列步骤的过程,包括抑制无延迟值,并由随后处理级中的延迟值代替该无延迟值。
图18示出了使用本技术动态调节处理级间的相对同步。众所周知,在流水线处理环境中,处理级可用不同时间来完成它们各自的操作。理想情况是,处理级都保持平衡以花相同时间,并且它们各自的时间随周围条件的改变以相同方式改变。然而,在许多情况下这是不实际的,并且有可能在一个工作电压或温度上平衡的处理级集在另一工作电压或温度上却不平衡。此外,制造偏差和其它特性也可能导致处理级同步之间的较大差异,这干扰了其间的设计平衡。在这些情况下,相对于最坏情况选择时钟频率和其它操作参数,使得处理级充分接近平衡,以便在所有情况下都是可操作的。
本技术允许采用更有选择性和真正动态的方法。流水线处理电路2000包括延迟锁存器2002,该延迟锁存器可用于检测由无延迟锁存器捕获的信号值中出现的错误。出现的这些错误被反馈回时钟相位控制电路204,该电路调节提供给主路径中各个锁存器(即无延迟锁存器)的时钟信号的相对相位。这样进行调节,借此时间被从一个处理级有效地借用,并分配给另一个处理级。这可通过利用来自传播基本时钟信号的延迟线内可选择位置的各个无延迟锁存器要使用的时钟信号来获得。
示出的例子,锁存器LA和LB之间的处理逻辑在操作上要比随后级中的处理逻辑慢。相应地,提供给无延迟锁存器LB的时钟信号可被移相,以便延迟时钟信号的上升沿(假设上升沿锁存器捕获),并从而扩展了可用于慢处理逻辑的时间。这减少了随后处理级内处理逻辑可用的时间,在此假设在与除锁存器LB之外的其它级元件相同的基本时钟信号上操作。
在电路进行操作期间,使用来自使用延迟锁存器检测的操作中的错误的反馈,来动态执行处理级间的同步平衡。备选地,在制造测试阶段期间或在集成电路的“黄金引导(golden boot)”期间,该平衡可执行为一次性操作。图18所示的延迟锁存器用于处理级之间的同步平衡,并且之后可用于如上针对图1描述的操作参数和纠错的控制。这样,提供延迟锁存器还用于控制相对的时钟同步。
图19示出了基于全局时钟选通的流水线错误恢复的简单方法。在任一级检测到错误的情况下,通过选通下一个全局时钟边沿,使整个流水线停止一个周期。附加时钟周期允许每一级使用延迟锁存器作为输入来重新计算其结果。因此,将用来自延迟锁存器的正确值代替任何先前转发的错误值。由于所有级都用延迟锁存器输入来重新评估其结果,因此在单个周期中可容忍任何数量的错误,并保证向前继续前进。如果所有级在每个周期都产生错误,则流水线将继续运行,但速度为正常速度的1/2。
重要的是,在比较器验证了错误的流水线结果之前,不将它写入结构状态。由于延迟值的验证花了两个附加周期(即,一个用于错误检测,一个用于应急检测),在上一延迟锁存器和回写(WB)级之间必须有两个非推测(non-speculative)级。在设计中,存储器对数据高速缓存的存取是非推测性的,因此,在回写(WB)之前只需一个标记为ST用于稳定的附加级。ST级引入寄存器旁路的附加电平。由于存储指令必须非推测性地执行,因此在流水线的WB级执行这些存储指令。
图19给出了在流水线EX级中失效的指令的流水线恢复的流水线时序图。第一失效级计算发生在第四周期,但只在MEM级已使用从EX级转发的错误值计算出错误结果之后。在检测到错误之后,在第六周期发生全局时钟停止,允许由MEM级来评估Razor阴影锁存器中的正确的EX结果。在第七周期,重新开始正常的流水线操作。
在积极的时钟设计中,不可能在不严重影响处理器周期时间的情况下实现全局时钟选通。因此,已实现了基于逆流、流水线技术的完全流水线错误恢复机制。图20所示的方法,以在几个周期上扩展流水线恢复为代价,在基线流水线设计上放置了可以忽略的同步限制。在检测到无延迟值错误时,必须执行两个特定操作。首先,必须使失效的无延迟锁存器之后的错误级计算无效。使用磁泡信号实现该操作,磁泡信号指示下一个及随后级的流水线槽是空的。其次,通过断言(assert)失效级的级ID来触发刷新串(train)。在随后的周期中,来自延迟锁存器数据的纠正值被注回流水线,使错误指令可以继续其正确输入。此外,存在逆流流水线,借此刷新串开始在指令的相反方向传播失效级的ID。在由有效刷新串访问的每一级上,用磁泡代替相应流水线级和前一级。(必须使两个级无效以占两倍的主流水线相对速度。)在刷新ID到达流水线的起点时,刷新控制逻辑重新启动错误指令之后指令处的流水线。当多级在同一周期发生错误时,所有都将开始恢复,但只有最接近回写(WB)的无延迟错误将完成。后面的会刷新较早的恢复。要注意的是,逆流流水线可以和前向流水线的长度不同,以使例如逆流流水线的刷新串可以是2个流水线级深,而前向流水线可以是12级深。
图20示出了在EX级中失效的指令的流水线恢复的流水线时序图。与先前的例子一样,当第二指令计算流水线EX级中的错误结果时,第一失效级计算发生在第四周期。在第五周期检测该错误,使得从MEM级传播磁泡和启动刷新串。分别在第六、第七和第八周期刷新EX、ID和IF级中的指令。最后,在第九周期在错误指令之后重新启动流水线,其后重新开始正常的流水线操作。
从以上图2的描述中可回想到,在电路102检测到错误信号中的亚稳态的情况下,断言应急信号。在此情况下,应重新执行当前指令(而不是下一指令)。在断言这种应急信号时,刷新所有流水线状态,并紧随最少指令回写之后,重新启动流水线。应急情况使得向前继续进行的保证复杂化,因为检测该情况过程中的延迟可能导致在延迟锁存器中重写正确结果。因此,在经历了应急之后,电源电压被复位到已知安全的工作电平,并重新启动流水线。一旦重新调谐,只要返回被禁止直到该指令完成后为止,错误指令就应该无错地完成。
流水线恢复控制的关键要求是,即使在最坏的工作条件下(例如低电压、高温和高加工差异)它也不失效。这个要求通过保守的设计方法来满足,该方法以最坏情况亚临界电压使错误恢复电路的同步有效。
图21示意性地示出了作为串行扫描链锁存器的延迟锁存器2100的再使用。这通过提供由扫描允许信号控制的多路复用器2102来实现,该扫描允许信号允许将串行扫描数据值写入延迟锁存器,或根据需要从延迟锁存器中串行地读取该值。此外,使用允许延迟锁存值取代无延迟锁存值的正常机制,将串行扫描链值插入操作路径中。

Claims (40)

1.一种用于执行数据处理的集成电路,所述集成电路包括:
错误检测器,可操作用于通过对所述集成电路内的数据信号值进行复式采样来检测所述集成电路操作中的错误,采样值间的差异表示错误;
错误修复逻辑,响应所述错误检测器,并可操作用于修复操作中的所述错误;以及
操作参数控制器,可操作用于控制所述集成电路的一个或多个性能控制操作参数;其中
所述操作参数控制器根据所述错误检测器检测的一个或多个错误特性来动态控制所述一个或多个性能控制参数中的至少一个,以维持操作中的非零出错率,所述错误修复逻辑修复操作中的所述错误,以使所述集成电路的数据处理继续。
2.如权利要求1所述的集成电路,其中所述复式采样是在各个不同的时间检测采样点上的信号值。
3.如权利要求1或2中任一项所述的集成电路,其中所述操作参数控制器应用反馈控制,以根据所述错误检测器检测的所述一个或多个错误特性来调节所述一个或多个性能控制参数中的所述至少一个。
4.如权利要求1、2或3中任一项所述的集成电路,其中所述错误检测器检测的所述一个或多个错误特性至少包括以下一项:
由所述错误检测器检测的所述错误的错误率;以及
由所述错误检测器检测的所述错误的所述错误修复逻辑的修复所引起的处理性能的下降。
5.如上述权利要求任一项所述的集成电路,其中所述一个或多个性能控制参数至少包括以下一项:
工作电压;
工作频率;
集成电路体偏压;以及
温度。
6.如上述权利要求任一项所述的集成电路,包括:
多个处理级,来自至少一个处理级的处理级输出信号被作为处理级输入信号提供给后面的处理级,其中所述至少一个处理级包括:
处理逻辑,可操作用于对至少一个处理级输入值执行处理操作,以产生处理逻辑输出信号;
无延迟锁存器,可操作用于在无延迟捕获时间捕获所述处理逻辑输出信号的无延迟值,在所述无延迟捕获时间之后,所述无延迟值被作为所述处理级输出信号提供给所述后面的处理级;以及
延迟锁存器,可操作用于在迟于所述无延迟捕获时间的延迟捕获时间上捕获所述处理逻辑输出信号的延迟值;其中
所述错误检测器包括比较器,所述比较器可操作用于在所述无延迟捕获时间之后比较所述无延迟值和所述延迟值,以检测所述处理逻辑输出信号中的改变,所述改变表示所述处理逻辑在所述无延迟捕获时间没有完成所述处理操作;并且
当所述比较器检测到所述改变时,所述错误修复逻辑可操作用于执行错误修复操作,所述错误修复操作抑制所述后面的处理级使用所述无延迟值。
7.如权利要求6所述的集成电路,包括亚稳态检测器,所述亚稳态检测器可操作用于检测所述无延迟值中的亚稳态,并在发现是亚稳态的情况下,触发所述错误修复逻辑,以抑制所述无延迟值的使用。
8.如权利要求6和7中任一项所述的集成电路,其中在所述比较器检测到所述改变时,所述错误修复逻辑可操作用于以所述延迟值代替所述无延迟值作为所述处理级输出信号。
9.如权利要求8所述的集成电路,其中所述延迟值提供给所述后面的处理级迫使通过处理操作向前继续进行。
10.如权利要求6-9中任一项所述的集成电路,其中当所述比较器检测到所述改变时,所述错误修复逻辑可操作用于迫使所述延迟值存储在所述无延迟锁存器中取代所述无延迟值。
11.如权利要求6-10中任一项所述的集成电路,其中无延迟时钟信号驱动所述处理级和所述后面的处理级内的处理操作。
12.如权利要求11所述的集成电路,其中当所述比较器检测到所述改变时,所述错误修复逻辑可操作用于选通所述无延迟时钟信号,以为所述后面的处理级提供时间来恢复所述无延迟值的输入,并代替使用所述延迟值。
13.如权利要求12所述的集成电路,其中所述无延迟捕获时间来自所述无延迟时钟信号的预定相点,所述无延迟时钟信号的相位延迟版本用作延迟时钟信号,并且所述延迟捕获时间来自所述延迟时钟信号的预定相点。
14.如权利要求6-13中任一项所述的集成电路,其中所述多个处理级是同步流水线内的各个流水线级。
15.如权利要求6-14中任一项所述的集成电路,其中所述处理操作所花的最小处理时间大于分离所述延迟捕获时间和所述无延迟捕获时间的时间,以使所述延迟值不受对不同输入值进行处理操作的影响。
16.如权利要求15所述的集成电路,其中所述处理逻辑包括一个或多个延迟元件,以确保超过所述最小处理时间。
17.如权利要求6-16中任一项所述的集成电路,其中所述处理操作所花的最大处理时间小于分离所述延迟捕获时间和所述无延迟捕获时间的时间与无延迟捕获时间之间的时间的总和,以使在所述延迟捕获时间内所述处理逻辑将完成所述处理操作。
18.如权利要求6-17中任一项所述的集成电路,其中所述处理级是数据处理器的一部分。
19.如权利要求6-18中任一项所述的集成电路,包括错误计数器电路,所述计数器电路可操作用于存储对应于所述改变的错误检测计数。
20.如权利要求19所述的集成电路,其中所述计数可通过软件读取。
21.一种用于控制执行数据处理的集成电路的方法,所述方法包括如下步骤:
通过对所述集成电路内的数据信号值进行复式采样来检测所述集成电路操作中的错误,采样值间的差异表示错误;
修复检测的操作中错误;并且
控制所述集成电路的一个或多个性能控制操作参数;其中
根据一个或多个检测错误特性来控制所述一个或多个性能控制参数中的至少一个,以维持操作中的非零出错率,修复操作中的所述错误,以使所述集成电路的数据处理继续。
22.如权利要求21所述的方法,其中所述复式采样是在各个不同的时间检测采样点上的信号值。
23.如权利要求21和22中任一项所述的方法,其中所述控制步骤应用反馈控制,以根据所述一个或多个检测错误特性来调节所述一个或多个性能控制参数中的所述至少一个。
24.如权利要求21、22和23中任一项所述的方法,其中所述一个或多个检测错误特性至少包括以下一项:
检测错误的错误率;以及
由检测错误的修复引起的处理性能的下降。
25.如权利要求21-24中任一项所述的方法,其中所述一个或多个性能控制参数至少包括以下一项:
工作电压;
工作频率;
集成电路体偏压;以及
温度。
26.如权利要求21-25中任一项所述的方法,包括如下步骤:
将来自多个处理级中至少一个处理级的处理级输出信号作为处理级输入信号提供给后面的处理级,所述至少一个处理级操作用于:
用数据处理逻辑对至少一个处理级输入值执行处理操作,以产生处理逻辑输出信号;
在无延迟捕获时间捕获所述处理逻辑输出信号的无延迟值,在所述无延迟捕获时间之后,所述无延迟值被作为所述处理级输出信号提供给所述后面的处理级;以及
在迟于所述无延迟捕获时间的延迟捕获时间上,捕获所述处理逻辑输出信号的延迟值;其中
检测错误包括在所述无延迟捕获时间之后比较所述无延迟值和所述延迟值,以检测所述处理逻辑输出信号中的改变,所述改变表示在所述无延迟捕获时间所述处理逻辑没完成所述处理操作;以及
所述修复检测错误的步骤包括抑制所述后面的处理级使用所述无延迟值。
27.如权利要求26所述的方法,包括检测所述无延迟值中的亚稳态,并在发现是亚稳态的情况下触发抑制所述无延迟值的使用。
28.如权利要求26和27中任一项所述的方法,其中在检测到所述改变时,用所述延迟值代替所述无延迟值作为所述处理级输出信号。
29.如权利要求26、27和28中任一项所述的方法,其中将所述延迟值提供给所述后面的处理级迫使通过处理操作向前继续进行。
30.如权利要求26-29中任一项所述的方法,其中在检测到所述改变时,迫使代替所述无延迟值而存储所述延迟值。
31.如权利要求26-30中任一项所述的方法,其中由无延迟时钟信号驱动所述处理级和所述后面的处理级内的处理操作。
32.如权利要求31所述的方法,其中当在所述比较步骤检测到改变时,所述错误修复操作包括选通所述无延迟时钟信号,以为所述后面的处理级提供时间来恢复所述无延迟值的输入,并代替使用所述延迟值。
33.如权利要求32所述的方法,其中所述无延迟捕获时间来自所述无延迟时钟信号的预定相点,所述无延迟时钟信号的相位延迟版本用作延迟时钟信号,并且所述延迟捕获时间来自所述延迟时钟信号的预定相点。
34.如权利要求26-33中任一项所述的方法,其中所述多个处理级是同步流水线内的各个流水线级。
35.如权利要求26-34中任一项所述的方法,其中所述处理操作所花的最小处理时间大于分离所述延迟捕获时间和所述无延迟捕获时间的时间,以使所述延迟值不受对不同输入值执行的处理操作的影响。
36.如权利要求35所述的方法,其中所述处理逻辑包括一个或多个延迟元件,以确保超过所述最小处理时间。
37.如权利要求26-36中任一项所述的方法,其中所述处理操作所花的最大处理时间小于分离所述延迟捕获时间和所述无延迟捕获时间的时间与无延迟捕获时间之间的时间的总和,以使所述处理逻辑在所述延迟捕获时间内将完成所述处理操作。
38.如权利要求26-37中任一项所述的方法,其中所述处理级是数据处理器的一部分。
39.如权利要求26-38中任一项所述的方法,包括存储对应于所述改变的错误检测计数的步骤。
40.如权利要求39所述的方法,其中所述计数可通过软件读取。
CNB2004800073384A 2003-03-20 2004-02-26 集成电路处理级内的错误检测和恢复 Expired - Lifetime CN100401262C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/392,382 2003-03-20
US10/392,382 US7278080B2 (en) 2003-03-20 2003-03-20 Error detection and recovery within processing stages of an integrated circuit

Publications (2)

Publication Number Publication Date
CN1761946A true CN1761946A (zh) 2006-04-19
CN100401262C CN100401262C (zh) 2008-07-09

Family

ID=33029690

Family Applications (4)

Application Number Title Priority Date Filing Date
CNB2004800073384A Expired - Lifetime CN100401262C (zh) 2003-03-20 2004-02-26 集成电路处理级内的错误检测和恢复
CNB2004800073967A Expired - Lifetime CN100449651C (zh) 2003-03-20 2004-03-17 具有快速和慢速数据读取机构的存储系统
CNB2004800073721A Expired - Lifetime CN100416507C (zh) 2003-03-20 2004-03-17 集成电路的处理级内的系统和随机差错检测及恢复
CNB2004800073971A Expired - Lifetime CN100468286C (zh) 2003-03-20 2004-03-17 具有多个处理级的集成电路及其操作方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CNB2004800073967A Expired - Lifetime CN100449651C (zh) 2003-03-20 2004-03-17 具有快速和慢速数据读取机构的存储系统
CNB2004800073721A Expired - Lifetime CN100416507C (zh) 2003-03-20 2004-03-17 集成电路的处理级内的系统和随机差错检测及恢复
CNB2004800073971A Expired - Lifetime CN100468286C (zh) 2003-03-20 2004-03-17 具有多个处理级的集成电路及其操作方法

Country Status (10)

Country Link
US (6) US7278080B2 (zh)
EP (1) EP1604282B1 (zh)
JP (1) JP4426571B2 (zh)
KR (1) KR100982461B1 (zh)
CN (4) CN100401262C (zh)
IL (3) IL168453A (zh)
MY (1) MY136842A (zh)
RU (1) RU2005129253A (zh)
TW (1) TWI309904B (zh)
WO (1) WO2004084072A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101975919A (zh) * 2010-09-19 2011-02-16 王振国 一种电路状态检测的方法和装置
CN103019876A (zh) * 2012-12-26 2013-04-03 东南大学 一种面向cpu流水线的错误恢复电路
CN103678017A (zh) * 2012-09-03 2014-03-26 江苏东大集成电路系统工程技术有限公司 一种基于片上监测的可切换错误恢复方式
TWI448712B (zh) * 2009-03-16 2014-08-11 Advanced Risc Mach Ltd 在預充電邏輯中的錯誤檢測

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260001B2 (en) 2003-03-20 2007-08-21 Arm Limited Memory system having fast and slow data reading mechanisms
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8185812B2 (en) * 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
US8650470B2 (en) * 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
KR100981999B1 (ko) * 2003-03-20 2010-09-13 유니버시티 오브 미시간 집적회로의 처리단 내에서의 시스템적이고 랜덤한 오류의검출 및 회복
JP2006527848A (ja) * 2003-06-16 2006-12-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ タイミング・クロージャ監視回路および方法
FR2869430A1 (fr) * 2004-04-27 2005-10-28 St Microelectronics Sa Controle de l'execution d'un algorithme par un circuit integre
US7373572B2 (en) * 2005-01-26 2008-05-13 Intel Corporation System pulse latch and shadow pulse latch coupled to output joining circuit
US7523371B2 (en) * 2004-06-30 2009-04-21 Intel Corporation System and shadow bistable circuits coupled to output joining circuit
US7188284B2 (en) * 2004-06-30 2007-03-06 Intel Corporation Error detecting circuit
US20060031733A1 (en) * 2004-08-03 2006-02-09 Xiaowei Zhu Power-saving retention mode
US20060184770A1 (en) * 2005-02-12 2006-08-17 International Business Machines Corporation Method of implementing precise, localized hardware-error workarounds under centralized control
US7701240B2 (en) * 2005-03-04 2010-04-20 Arm Limited Integrated circuit with error correction mechanisms to offset narrow tolerancing
FR2884080B1 (fr) * 2005-04-05 2007-05-25 Iroc Technologies Sa Ensemble de circuits electroniques protege contre des perturbations transitoires
CN100565465C (zh) * 2005-04-21 2009-12-02 Arm有限公司 集成电路处理级中的差错恢复
US20060288196A1 (en) * 2005-06-20 2006-12-21 Osman Unsal System and method for exploiting timing variability in a processor pipeline
US7447941B2 (en) * 2005-07-19 2008-11-04 Hewlett-Packard Development Company, L.P. Error recovery systems and methods for execution data paths
DE102005049232A1 (de) * 2005-10-14 2007-04-26 Infineon Technologies Ag Integrierter Schaltkreis und Verfahren zum Betreiben eines integrierten Schaltkreises
JP2007195076A (ja) * 2006-01-20 2007-08-02 Nec Corp 無線通信システムとその送信電力制御方法および装置
US7602874B2 (en) * 2006-01-26 2009-10-13 International Business Machines Corporation Providing accurate time-based counters for scaling operating frequencies of microprocessors
JP2009526286A (ja) * 2006-02-06 2009-07-16 ファイルズエックス・インク ディスクでの長期バックアップ
JP2007248379A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd 半導体装置及び半導体装置のテスト方法
JP5173216B2 (ja) * 2006-04-18 2013-04-03 パナソニック株式会社 半導体集積回路システム、半導体集積回路、オペレーティングシステム及び半導体集積回路の制御方法
WO2007148156A1 (en) * 2006-06-20 2007-12-27 Freescale Semiconductor, Inc. Device and method for hadling metastable signals
WO2008015495A1 (en) * 2006-08-03 2008-02-07 Freescale Semiconductor, Inc. Device and method for power management
US20090315601A1 (en) * 2006-08-03 2009-12-24 Freescale Semiconductor, Inc. Device and method for timing error management
JP4224094B2 (ja) * 2006-09-27 2009-02-12 株式会社東芝 半導体集積回路装置
US8020018B2 (en) * 2006-09-28 2011-09-13 Infineon Technologies Ag Circuit arrangement and method of operating a circuit arrangement
US8020038B2 (en) * 2006-09-28 2011-09-13 Hewlett-Packard Development Company, L.P. System and method for adjusting operating points of a processor based on detected processor errors
GB0619949D0 (en) 2006-10-09 2006-11-15 Advanced Risc Mach Ltd Integrated circuit
JP4343945B2 (ja) * 2006-12-28 2009-10-14 三菱電機株式会社 電子制御装置
US8705300B1 (en) * 2007-02-27 2014-04-22 Altera Corporation Memory array circuitry with stability enhancement features
GB2479090B (en) * 2007-04-03 2011-11-16 Advanced Risc Mach Ltd Error recovery following erroneous execution with an instruction processing pipeline
GB2448118B (en) * 2007-04-03 2011-08-24 Advanced Risc Mach Ltd Error recovery following erroneous execution with an instruction processing pipeline
US7865808B2 (en) 2007-05-09 2011-01-04 Harris Corporation Fast error detection system and related methods
GB0709911D0 (en) * 2007-05-23 2007-07-04 Advanced Risc Mach Ltd Data processing apparatus and method for controlling a transfer of payload data over a communication channel
US8050781B2 (en) * 2007-06-29 2011-11-01 Emulex Design & Manufacturing Corporation Systems and methods for ASIC power consumption reduction
US8230446B2 (en) * 2007-11-28 2012-07-24 International Business Machines Corporation Providing a computing system with real-time capabilities
GB2455344B (en) * 2007-12-06 2012-06-13 Advanced Risc Mach Ltd Recovering from control path errors
US7917793B2 (en) * 2008-02-11 2011-03-29 National Chung Cheng University Apparatus providing locally adaptive retiming pipeline with swing structure
JP2009200739A (ja) * 2008-02-20 2009-09-03 Panasonic Corp 半導体集積回路
GB2458260A (en) 2008-02-26 2009-09-16 Advanced Risc Mach Ltd Selectively disabling error repair circuitry in an integrated circuit
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US7795920B2 (en) * 2008-03-31 2010-09-14 Kabushiki Kaisha Toshiba Semiconductor integrated circuit
CN102084349A (zh) * 2008-04-04 2011-06-01 亚利桑那董事会,代表亚利桑那大学行事的亚利桑那州法人团体 用于片上网路的容错与容变能力以及面积优化链路
US7945811B2 (en) * 2008-05-12 2011-05-17 Arm Limited Low power, high reliability specific compound functional units
GB0813027D0 (en) * 2008-07-16 2008-08-20 Advanced Risc Mach Ltd Error detection
US7975172B2 (en) * 2008-08-14 2011-07-05 International Business Machines Corporation Redundant execution of instructions in multistage execution pipeline during unused execution cycles
GB2463278B (en) 2008-09-05 2012-05-16 Advanced Risc Mach Ltd Scheduling control within a data processing system
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US8407025B2 (en) * 2009-02-25 2013-03-26 Arm Limited Operating parameter control of an apparatus for processing data
US7900114B2 (en) * 2009-02-27 2011-03-01 Infineon Technologies Ag Error detection in an integrated circuit
US8352819B2 (en) * 2009-04-15 2013-01-08 Arm Limited State retention using a variable retention voltage
DE102009029784A1 (de) * 2009-06-18 2010-12-30 Atmel Automotive Gmbh Integrierter Schaltkreis und Standardzelle eines integrierten Schaltkreises
JP2011090448A (ja) * 2009-10-21 2011-05-06 Renesas Electronics Corp 半導体集積回路
CN102712242A (zh) * 2009-11-06 2012-10-03 万国卡车知识产权有限公司 用于具有混合电动系统的车辆上设备的控制系统
US8145669B2 (en) * 2009-12-11 2012-03-27 At&T Intellectual Property I, L.P. Methods and apparatus for representing probabilistic data using a probabilistic histogram
JP5373659B2 (ja) * 2010-02-18 2013-12-18 株式会社日立製作所 電子機器
US8555124B2 (en) 2010-06-07 2013-10-08 Arm Limited Apparatus and method for detecting an approaching error condition
WO2012007643A1 (en) * 2010-07-16 2012-01-19 Aalto University Foundation Sequential circuit with current mode error detection
US8615687B2 (en) 2010-07-23 2013-12-24 Arm Limited Data processing system and method for regulating a voltage supply to functional circuitry of the data processing system
KR101891362B1 (ko) * 2010-10-05 2018-08-23 고쿠리츠켄큐카이하츠호진 카가쿠기쥬츠신코키코 고장 검출 시스템, 취출 장치, 고장 검출 방법, 프로그램 및 기록 매체
JP5621566B2 (ja) * 2010-12-10 2014-11-12 日本電気株式会社 遅延時間測定装置および遅延時間測定方法
US8639987B2 (en) 2011-02-18 2014-01-28 Arm Limited Data processing apparatus and method using monitoring circuitry to control operating parameters
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets
US8862938B2 (en) 2011-04-18 2014-10-14 General Electric Company System, method, and apparatus for resolving errors in a system
US8732499B2 (en) 2011-05-27 2014-05-20 Arm Limited State retention circuit adapted to allow its state integrity to be verified
US8639960B2 (en) 2011-05-27 2014-01-28 Arm Limited Verifying state integrity in state retention circuits
ITTO20110485A1 (it) 2011-06-03 2012-12-04 Torino Politecnico Method and circuit for solving metastability conditions and recovering signal errors in digitalintegrated circuits
GB201114831D0 (en) 2011-08-26 2011-10-12 Univ Oxford Brookes Circuit with error correction
US8732523B2 (en) 2011-10-24 2014-05-20 Arm Limited Data processing apparatus and method for analysing transient faults occurring within storage elements of the data processing apparatus
US8599626B2 (en) 2011-12-07 2013-12-03 Arm Limited Memory device and a method of operating such a memory device in a speculative read mode
US8509015B2 (en) 2011-12-16 2013-08-13 Arm Limited Using a precharge characteristics of a node to validate a previous data/signal value represented by a discharge of said node
WO2013095633A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Characterization of within-die variations of many-core processors
US8624623B2 (en) * 2011-12-30 2014-01-07 Stmicroelectronics International N.V. Apparatus having error detection in sequential logic
US9047184B2 (en) 2012-07-13 2015-06-02 Arm Limited Processing error detection within pipeline circuitry
US9600382B2 (en) * 2012-09-03 2017-03-21 Southeast University Error recovery circuit oriented to CPU pipeline
JP6036089B2 (ja) * 2012-09-25 2016-11-30 日本電気株式会社 データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム
WO2014049395A1 (en) * 2012-09-27 2014-04-03 Freescale Semiconductor, Inc. Scan test system
US9304531B2 (en) * 2012-10-31 2016-04-05 Broadcom Corporation Dynamically scaling voltage/frequency
US9009545B2 (en) * 2013-06-14 2015-04-14 International Business Machines Corporation Pulsed-latch based razor with 1-cycle error recovery scheme
US9069736B2 (en) * 2013-07-09 2015-06-30 Xerox Corporation Error prediction with partial feedback
TWI553484B (zh) 2014-04-01 2016-10-11 Nat Univ Chung Cheng 前瞻臆測處理裝置及其處理方法
KR102175403B1 (ko) * 2014-07-21 2020-11-06 한국전자통신연구원 디지털 연산 회로의 기능 복구 장치 및 방법
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
US9244123B1 (en) 2014-11-25 2016-01-26 Freescale Semiconductor, Inc. Synchronous circuit, method of designing a synchronous circuit, and method of validating a synchronous circuit
TWI554042B (zh) 2014-12-08 2016-10-11 財團法人工業技術研究院 訊號比較裝置及其控制方法
US9645602B2 (en) 2015-09-23 2017-05-09 Qualcomm Incorporated Frequency sensor for side-channel attack
GB2545458A (en) * 2015-12-17 2017-06-21 Minima Processor Oy A system and a method for controlling operating voltage
US20170184664A1 (en) * 2015-12-28 2017-06-29 Michel Nicolaidis Highly efficient double-sampling architectures
DE102015122907B4 (de) * 2015-12-29 2019-07-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben einer Speichereinrichtung
CN105913868B (zh) * 2016-03-31 2018-09-21 华为技术有限公司 一种调整频率的方法、片上系统及终端
CN106027024B (zh) * 2016-05-16 2018-08-24 电子科技大学 一种带延迟检测的低功耗寄存器单元电路
EP3300254B1 (en) 2016-09-26 2021-07-07 HS Elektronik Systeme GmbH Control circuit for solid state power controller
CN107015627A (zh) * 2017-03-07 2017-08-04 记忆科技(深圳)有限公司 一种基于扫描链的cpu低功耗实现方法
US9927775B1 (en) * 2017-04-01 2018-03-27 Intel Corporation Binary stochastic time-to-digital converter and method
US10698610B2 (en) 2018-02-23 2020-06-30 Western Digital Technologies, Inc. Storage system and method for performing high-speed read and write operations
CN110660445B (zh) * 2018-06-29 2021-07-30 华邦电子股份有限公司 离群位修复方法和存储器装置
KR20210058566A (ko) 2019-11-14 2021-05-24 삼성전자주식회사 전자 시스템, 그것의 결함 검출 방법, 시스템 온 칩 및 버스 시스템
US11249883B2 (en) 2020-01-02 2022-02-15 Bank Of America Corporation Error repair tool using sentiment analysis
US11635465B2 (en) 2020-10-29 2023-04-25 Stmicroelectronics International N.V. Device and method for monitoring data and timing signals in integrated circuits
KR20220121632A (ko) * 2021-02-25 2022-09-01 삼성전자주식회사 집적회로 및 집적회로 동작 방법
FI130137B (en) 2021-04-22 2023-03-09 Univ Of Oulu A METHOD FOR INCREASING ENERGY EFFICIENCY USING ERROR-TOLERANT ALGORITHMS FOR UNDERVOLTAGE DIGITAL SYSTEMS
US11928475B2 (en) 2021-11-05 2024-03-12 Ceremorphic, Inc. Fast recovery for dual core lock step
CN115453849B (zh) * 2022-08-25 2023-05-26 灿芯半导体(天津)有限公司 一种高精度捕获电路及捕获方法

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
US3893070A (en) * 1974-01-07 1975-07-01 Ibm Error correction and detection circuit with modular coding unit
SU809350A1 (ru) 1979-05-31 1981-02-28 Московский Ордена Трудовогокрасного Знамени Текстильныйинститут Запоминающее устройство
US4339657A (en) * 1980-02-06 1982-07-13 International Business Machines Corporation Error logging for automatic apparatus
US4414669A (en) * 1981-07-23 1983-11-08 General Electric Company Self-testing pipeline processors
JPS6020398A (ja) 1983-07-14 1985-02-01 Nec Corp メモリ装置
FR2571566B1 (fr) 1984-10-09 1987-01-23 Labo Electronique Physique Dispositif de reception de donnees numeriques comportant un dispositif de recuperation adaptative de rythme
US4633465A (en) 1985-03-27 1986-12-30 At&T Bell Laboratories Eye violation detectors
JPS6224498A (ja) 1985-07-24 1987-02-02 Nippon Telegr & Teleph Corp <Ntt> メモリ読出し方式
US4756005A (en) * 1986-05-27 1988-07-05 American Telephone And Telegraph Company At&T Bell Laboratories Digital signal regenerator arranged for fault location
US5043990A (en) * 1987-12-04 1991-08-27 Hitachi, Ltd. Semiconductor integrated circuit device
GB2213684A (en) 1987-12-11 1989-08-16 Philips Electronic Associated Data demodulator baud clock phase locking
JP3076044B2 (ja) * 1988-07-27 2000-08-14 日本電気株式会社 パイプラインのエラー情報記憶方式
US4994993A (en) * 1988-10-26 1991-02-19 Advanced Micro Devices, Inc. System for detecting and correcting errors generated by arithmetic logic units
US4975930A (en) 1988-11-02 1990-12-04 Digital Equipment Corporation Digital phase locked loop
US4926374A (en) * 1988-11-23 1990-05-15 International Business Machines Corporation Residue checking apparatus for detecting errors in add, subtract, multiply, divide and square root operations
AU628971B2 (en) * 1989-05-22 1992-09-24 Tandem Computers Incorporated Sequential parity correction
JPH03142629A (ja) * 1989-10-30 1991-06-18 Toshiba Corp マイクロコントローラ
US5291496A (en) * 1990-10-18 1994-03-01 The United States Of America As Represented By The United States Department Of Energy Fault-tolerant corrector/detector chip for high-speed data processing
US5321705A (en) * 1990-11-21 1994-06-14 Motorola, Inc. Error detection system
US5203003A (en) * 1991-03-28 1993-04-13 Echelon Corporation Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline
US5313625A (en) * 1991-07-30 1994-05-17 Honeywell Inc. Fault recoverable computer system
US5276690A (en) * 1992-01-30 1994-01-04 Intel Corporation Apparatus utilizing dual compare logic for self checking of functional redundancy check (FRC) logic
US5402273A (en) 1992-10-01 1995-03-28 Conner Peripherals, Inc. Circuit for determining window margin for data transitions in a streaming data device
US5408200A (en) 1992-12-18 1995-04-18 Storage Technology Corporation Intelligent phase detector
US5376894A (en) 1992-12-31 1994-12-27 Pacific Communication Sciences, Inc. Phase estimation and synchronization using a PSK demodulator
JPH06216655A (ja) * 1993-01-13 1994-08-05 Nec Corp 復調回路
US5400370A (en) 1993-02-24 1995-03-21 Advanced Micro Devices Inc. All digital high speed algorithmic data recovery method and apparatus using locally generated compensated broad band time rulers and data edge position averaging
ES2183808T3 (es) * 1993-10-12 2003-04-01 Cit Alcatel Circuito sincronizador.
EP1168178B1 (en) * 1993-10-15 2004-01-02 Hitachi, Ltd. Logic circuit having error detection function
EP0653708B1 (en) * 1993-10-15 2000-08-16 Hitachi, Ltd. Logic circuit having error detection function, redundant resource management method, and fault tolerant system using it
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
US5553232A (en) * 1994-06-13 1996-09-03 Bull Hn Informations Systems Inc. Automated safestore stack generation and move in a fault tolerant central processor
JPH0863365A (ja) * 1994-08-23 1996-03-08 Fujitsu Ltd データ処理装置
US5463351A (en) 1994-09-29 1995-10-31 Motorola, Inc. Nested digital phase lock loop
US5734585A (en) * 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5737369A (en) * 1996-02-28 1998-04-07 Motorola, Inc. Apparatus and method for recovering data in the presence of error transients
US5870446A (en) * 1996-03-11 1999-02-09 Adtran, Inc. Mechanism for automatically adjusting the phase of a transmission strobe clock signal to correct for misalignment of transmission clock and data signals
JP3669796B2 (ja) * 1996-12-03 2005-07-13 富士通株式会社 ディジタルpll回路
US5741110A (en) * 1997-01-03 1998-04-21 Grinage, Jr.; Lloyd Front loading truck rack for wheeled loads
FR2759796B1 (fr) * 1997-02-19 2001-12-07 Bull Sa Dispositif et procede de detection d'erreurs sur un circuit integre comportant un port parallele serie
US6114880A (en) * 1997-03-14 2000-09-05 Philips Semiconductor Vlsi, Inc. Dynamic over frequency detection and protection circuitry
JP3494849B2 (ja) * 1997-05-29 2004-02-09 富士通株式会社 半導体記憶装置のデータ読み出し方法、半導体記憶装置及び半導体記憶装置の制御装置
CN1202530C (zh) * 1998-04-01 2005-05-18 三菱电机株式会社 在低电源电压下高速动作的静态型半导体存储装置
US6222660B1 (en) * 1998-06-09 2001-04-24 Tektronix, Inc. Adaptive power supply for avalanche photodiode
US6247151B1 (en) * 1998-06-30 2001-06-12 Intel Corporation Method and apparatus for verifying that data stored in a memory has not been corrupted
US6167526A (en) 1998-12-29 2000-12-26 Adaptec, Inc. Method and apparatus for synchronizing a decoder circuit with a phase-encoded data signal in a data storage device
US6977910B1 (en) * 1998-12-31 2005-12-20 Texas Instruments Incorporated Power control with space time transmit diversity
JP2000228094A (ja) * 1999-02-04 2000-08-15 Toshiba Corp 不揮発性半導体記憶装置
FR2790887B1 (fr) 1999-03-09 2003-01-03 Univ Joseph Fourier Circuit logique protege contre des perturbations transitoires
US6523201B1 (en) * 1999-05-04 2003-02-25 Eliza A. De Michele Sleep support system
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
US6834367B2 (en) * 1999-12-22 2004-12-21 International Business Machines Corporation Built-in self test system and method for high speed clock and data recovery circuit
WO2001046800A2 (en) 1999-12-23 2001-06-28 General Instrument Corporation Dual-mode processor
JP2001255356A (ja) * 2000-03-08 2001-09-21 Matsushita Electric Ind Co Ltd 半導体集積回路のテストパターン生成方法及びテスト方法
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
JP3688572B2 (ja) * 2000-09-28 2005-08-31 株式会社東芝 半導体集積回路
FR2815197B1 (fr) * 2000-10-06 2003-01-03 St Microelectronics Sa Circuit asynchrone pour la detection et la correction de l'erreur induite et procede de mise en oeuvre
CA2424572C (en) * 2000-10-23 2010-12-07 The Trustees Of Columbia University In The City Of New York Asynchronous pipeline with latch controllers
US6693985B2 (en) * 2000-10-27 2004-02-17 Silicon Image Clock and data recovery method and apparatus
GB0026614D0 (en) * 2000-10-31 2000-12-13 Lsi Logic Europ Ltd A method and apparatus for estimation of error in data recovery schemes
US6772388B2 (en) * 2000-12-06 2004-08-03 Motorola, Inc Apparatus and method for providing optimal adaptive forward error correction in data communications
US6711712B2 (en) * 2000-12-21 2004-03-23 Intel Corporation Method and apparatus for error detection/correction
JP4526194B2 (ja) * 2001-01-11 2010-08-18 ルネサスエレクトロニクス株式会社 オーバーサンプリングクロックリカバリ方法及び回路
US7116744B2 (en) * 2001-03-29 2006-10-03 Fujitsu Limited Clock recovery circuit and receiver circuit for improving the error rate of signal reproduction
US6708284B2 (en) * 2001-03-30 2004-03-16 Intel Corporation Method and apparatus for improving reliability in microprocessors
JP4054550B2 (ja) * 2001-06-29 2008-02-27 株式会社エヌ・ティ・ティ・ドコモ 送信電力制御方法及び装置
US6952123B2 (en) * 2002-03-22 2005-10-04 Rambus Inc. System with dual rail regulated locked loop
US6741110B2 (en) * 2002-05-28 2004-05-25 Lsi Logic Corporation Method and/or circuit for generating precision programmable multiple phase angle clocks
US7142623B2 (en) * 2002-05-31 2006-11-28 International Business Machines Corporation On-chip system and method for measuring jitter tolerance of a clock and data recovery circuit
US7043679B1 (en) * 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
US7085993B2 (en) * 2002-07-29 2006-08-01 International Business Machine Corporation System and method for correcting timing signals in integrated circuits
US7302592B2 (en) * 2002-12-02 2007-11-27 Silverbrook Research Pty Ltd Integrated circuit which disables writing circuitry to memory when the power drops below a power threshold predetermined and controlled by the processor
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
KR100981999B1 (ko) * 2003-03-20 2010-09-13 유니버시티 오브 미시간 집적회로의 처리단 내에서의 시스템적이고 랜덤한 오류의검출 및 회복

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI448712B (zh) * 2009-03-16 2014-08-11 Advanced Risc Mach Ltd 在預充電邏輯中的錯誤檢測
CN101975919A (zh) * 2010-09-19 2011-02-16 王振国 一种电路状态检测的方法和装置
CN103678017A (zh) * 2012-09-03 2014-03-26 江苏东大集成电路系统工程技术有限公司 一种基于片上监测的可切换错误恢复方式
CN103678017B (zh) * 2012-09-03 2018-05-15 江苏东大集成电路系统工程技术有限公司 一种基于片上监测的可切换错误恢复方法
CN103019876A (zh) * 2012-12-26 2013-04-03 东南大学 一种面向cpu流水线的错误恢复电路
CN103019876B (zh) * 2012-12-26 2015-07-01 东南大学 一种面向cpu流水线的错误恢复电路

Also Published As

Publication number Publication date
CN1761945A (zh) 2006-04-19
MY136842A (en) 2008-11-28
KR100982461B1 (ko) 2010-09-16
KR20050118185A (ko) 2005-12-15
US7278080B2 (en) 2007-10-02
WO2004084072A1 (en) 2004-09-30
CN100416507C (zh) 2008-09-03
CN100401262C (zh) 2008-07-09
US20050207521A1 (en) 2005-09-22
US7650551B2 (en) 2010-01-19
JP2006520952A (ja) 2006-09-14
EP1604282A1 (en) 2005-12-14
US20070288798A1 (en) 2007-12-13
JP4426571B2 (ja) 2010-03-03
IL169151A (en) 2010-05-31
US20040239397A1 (en) 2004-12-02
CN1761927A (zh) 2006-04-19
CN100449651C (zh) 2009-01-07
EP1604282B1 (en) 2018-08-22
TW200507396A (en) 2005-02-16
RU2005129253A (ru) 2006-04-10
CN100468286C (zh) 2009-03-11
IL168453A (en) 2010-05-31
US20040223386A1 (en) 2004-11-11
US20040199821A1 (en) 2004-10-07
US7162661B2 (en) 2007-01-09
US6944067B2 (en) 2005-09-13
TWI309904B (en) 2009-05-11
CN1762028A (zh) 2006-04-19
US20040243893A1 (en) 2004-12-02
US7310755B2 (en) 2007-12-18
IL169151A0 (en) 2007-07-04
IL168928A (en) 2010-05-31
US7401273B2 (en) 2008-07-15

Similar Documents

Publication Publication Date Title
CN1761946A (zh) 集成电路处理级内的错误检测和恢复
JP4317212B2 (ja) 集積回路の処理段における系統的及び確率的誤り検出及び復旧
US8407537B2 (en) Error recover within processing stages of an integrated circuit
US7072229B2 (en) Memory system having fast and slow data reading mechanisms
JP4335253B2 (ja) 集積回路内におけるデータ保持ラッチ提供

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
CX01 Expiry of patent term

Granted publication date: 20080709

CX01 Expiry of patent term