CN100449651C - 具有快速和慢速数据读取机构的存储系统 - Google Patents

具有快速和慢速数据读取机构的存储系统 Download PDF

Info

Publication number
CN100449651C
CN100449651C CNB2004800073967A CN200480007396A CN100449651C CN 100449651 C CN100449651 C CN 100449651C CN B2004800073967 A CNB2004800073967 A CN B2004800073967A CN 200480007396 A CN200480007396 A CN 200480007396A CN 100449651 C CN100449651 C CN 100449651C
Authority
CN
China
Prior art keywords
result
reads
reading
delay
fast
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 - Lifetime
Application number
CNB2004800073967A
Other languages
English (en)
Other versions
CN1762028A (zh
Inventor
T·M·奥斯丁
D·T·布劳夫
T·N·马奇
K·弗劳特纳
D·M·西尔维斯特
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
ARM 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 ARM Ltd, University of Michigan filed Critical ARM Ltd
Publication of CN1762028A publication Critical patent/CN1762028A/zh
Application granted granted Critical
Publication of CN100449651C publication Critical patent/CN100449651C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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

Abstract

提供一种用于存储数据的存储器,包括:快速数据读取机构,可用于从所述存储器读取数据值,以便产生从所述存储器输出供进一步处理的快速读取结果;慢速数据读取机构,可用于从所述存储器读取所述数据值,以便产生在所述快速读取结果已被输出供进一步处理之后可用的慢速读取结果,所述慢速数据读取机构在读取所述数据值时比所述快速数据读取机构更不易出错;比较器,可用于比较所述快速读取结果与所述慢速读取结果,以便检测所述快速读取结果是否与所述慢速读取结果不同;以及差错修复逻辑,可用于在所述比较器检测到所述快速读取结果不同于所述慢速读取结果时抑制采用所述快速读取结果的所述进一步处理,输出所述慢速读取结果来取代所述快速读取结果,以及根据所述慢速读取结果重新开始所述进一步处理。

Description

具有快速和慢速数据读取机构的存储系统
技术领域
本发明涉及数据处理系统的领域。更具体来说,本发明涉及用于在数据处理系统内存储数据的存储器。
背景技术
在具有存储器各级的分级结构的数据处理系统内提供存储器是已知的。存储系统通常可制作成以本地高速缓冲存储器开始,并通过主固态存储器以及可能的非易失性永久存储装置、如硬盘驱动器向外扩展。存储器的一个重要工作特性是它们可被读取的速度。可从存储器中读取数据值的速度越快,则通常可实现的数据处理的最大速率越高(除存储器读取速度之外的因素也可能限制处理速度)。存储系统设计通常包括速度与诸如容量、功耗、成本、复杂度等其它参数之间的平衡。
在存储系统的上下文中,在可能实现的读取性能中还存在某种程度的制造或状态引起的变化。举例来说,与其它方面相同的存储器集成电路相比,在生产集成电路存储器过程中的制造差异可能产生可实现的不同最大读取速度。同样可能的是,可实现的最大读取性能会随系统的物理或逻辑状态、例如随环境温度而变化。
给定围绕与所涉及的存储系统关联的制造差异、环境状况等的最坏情况假设集合,为了确保正确的工作,存储系统设计人员通常操作存储系统以在为确保将从存储器中取出正确读取值选择的时间从中抽取读取值。存储系统设计人员将计算最慢的可能读取速度,然后当判定应当以什么速度操作存储器时对它添加某个安全余量。虽然这种方法在确保正确操作和数据完整性方面是安全的,但它可能明显地限制可实现的数据处理性能。
作为更特定的实例,可能希望以低功耗模式来操作存储器。在这种模式中,读取性能低于相应的高功耗模式,例如,与以更低电压工作相比,当以更高电压工作时,存储器集成电路可更快地被读取。在这些情况下,为了确保正确操作和数据完整性,系统设计人员通常被迫采取比采用所涉及特定存储器最终可能实现的更低的存储器读取性能和/或以比实现预期处理性能等级实际可能需要的更高的功耗状态工作。
发明内容
从一个方面来看,本发明提供一种用于存储数据的存储器,包括:
快速数据读取机构,可用于从所述存储器读取数据值,以便产生从所述存储器输出供进一步处理的快速读取结果;
慢速数据读取机构,可用于从所述存储器读取所述数据值,以便产生在所述快速读取结果已被输出供进一步处理之后可用的慢速读取结果,所述慢速数据读取机构在读取所述数据值时比所述快速数据读取机构更不容易出错;
比较器,可用于比较所述快速读取结果与所述慢速读取结果,以便检测所述快速读取结果是否与所述慢速读取结果不同;以及
差错修复逻辑,可用于如果所述比较器检测到所述快速读取结果不同于所述慢速读取结果,则抑制采用所述快速读取结果的所述进一步处理,输出所述慢速读取结果来取代所述快速读取结果,以及根据所述慢速读取结果重新开始所述进一步处理。
本发明认识到,存储器可采用一个以上读取机构来操作。可提供快速读取机构,它采用比较积极的性能假设集合。这种快速读取机构有时因性能假设过于积极、例如读取定时可能过快或者工作电压过低而将错误地从存储器读取数据。但是,本技术的存储器还配备了慢速数据读取机构,它在稍后时间从存储器读取数据值,但与快速数据读取机构相比,在读取那个数据值时更不容易出错。为了受益于与快速数据读取机构关联的积极性能假设,在慢速读取结果可用之前,快速读取结果在它可用时立即从存储器传递以供进一步处理。当慢速读取结果变为可用时,慢速读取结果与快速读取结果比较,以及如果检测到差异,则差错修复逻辑用于抑制采用快速读取结果的进一步处理,并输出慢速读取结果作为替代。假定慢速读取结果是正确的数据值,并且它将用于取代与快速读取结果关联的不正确处理。即使可能已经采用快速读取结果开始的进一步处理的抑制可能会导致明显的时间损失,但提供调用这种抑制的需要是非常少发生的,将会产生性能的整体提高(无论以处理速度、可用工作电压的低程度还是以其它方式来衡量)。
可以理解,以上所述的快速和慢速数据读取机构的技术可用于各种各样不同的存储器、例如盘驱动器,但特别很适合于通常包括经由一个或多个位线读取的存储单元阵列的固态集成电路存储器。
在这类集成电路存储器的上下文中,快速数据读取机构可设置成可用于在读取操作被发起之后的第一延迟时间对位线抽样,与此相比,慢速数据读取机构在第二稍后时间对位线抽样。用来读取集成电路存储器的位线在它们耦合到相干存储单元之后耗用有限量的时间被驱动到表明所涉及的数据值的适当值。位线采用所要求等级所需的这个时间可根据各种不同的因素而变化,诸如制造公差、工作电压、工作温度、存储器内保存的相邻数据值等等。快速数据读取机构早在正确的值通常存在但不是始终存在的时间对位线抽样。慢速数据读取机构在正确的数据值或多或少被确定为可用时的稍后时间对位线抽样。如果在提早和稍后读取值之间出现差异,则提早读取值的使用被抑制并由稍后读取值取代。
虽然一些存储器可采用单一位线,但本发明特别很适合于其中存储单元经由一对位线来读取的实施例,尤其是一个或多个电流或电压敏感差动读出放大器可用于从一对位线读取信号值的情况。
可以理解,虽然快速和慢速读取机构可能完全相互独立,但是,当它们共用至少一些公用电路元件时,例如在能够使用相同抽样硬件但具有快速触发信号和慢速触发信号来控制抽样时间时,电路面积、功耗等的有利减小能够被实现。
差错修复逻辑可按照各种不同的方式工作,但一般可用于向快速读取结果已经传递到其中供进一步处理的电路发出抑制信号。那些电路则根据所接收抑制信号行动,以适合其各自操作的各种不同方式抑制基于不正确值的处理。
虽然可能将快速读取机构配置成产生基本为零的差错率,但本发明的优选实施例控制存储器的一个或多个性能控制参数,以在快速读取结果中维持有限非零差错率。这样,为有限非零值的目标差错率在存储系统的上下文中是极为反直觉的,在该系统中维持基本为零的差错率通常是所要求的工作特性。
可改变以维持非零差错率的一个或多个性能控制参数包括工作电压、工作频率、体偏压和温度中的一项或多项。可以理解,其它性能控制参数可以改变,作为对上述参数中的一个或多个的补充或替代。另外,性能还可通过制造差异来控制,但这不是动态可调参数。
从另一个方面来看,本发明提供从存储器读取所存储数据的方法,所述方法包括以下步骤:
采用快速数据读取机构从所述存储器读取数据值,以便产生从所述存储器输出供进一步处理的快速读取结果;
采用慢速数据读取机构从所述存储器读取所述数据值,以便产生在所述快速读取结果已被输出供进一步处理之后可用的慢速读取结果,所述慢速数据读取机构在读取所述数据值时比所述快速数据读取机构更不容易出错;
比较所述快速读取结果与所述慢速读取结果,以便检测所述快速读取结果是否与所述慢速读取结果不同;以及
如果所述快速读取结果不同于所述慢速读取结果,则抑制采用所述快速读取结果的所述进一步处理,输出所述慢速读取结果来取代所述快速读取结果,以及根据所述慢速读取结果重新开始所述进一步处理。
附图说明
现在仅通过示例、参照附图来描述本发明的实施例,其中:
图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 limited ofCambridge,England制造的ARM处理器核心之类的处理器核心中的同步流水线的一部分。同步流水线由多个相似处理级组成。第一级包括处理逻辑2和其后跟随的触发器形式的不延迟锁存器4以及比较器6和延迟锁存器8。本文所用的术语“锁存器”包括可用于与触发、时钟及其它要求无关地存储信号值的任何电路元件。后续处理级以类似方式组成。不延迟时钟信号10驱动处理逻辑和所有处理级内的不延迟锁存器4作为同步流水线的组成部分同步工作。延迟时钟信号12提供给各个处理级的延迟锁存器8。延迟时钟信号12是不延迟时钟信号10的相移形式。相移的程度控制不延迟锁存器4对处理逻辑2的输出的捕捉与稍后由延迟锁存器8执行的处理逻辑2的输出的捕捉之间的延迟周期。如果处理逻辑2在给定现有不延迟时钟信号频率、提供给集成电路的工作电压、体偏压、温度等的限制内工作,则处理逻辑2到不延迟锁存器4被触发以捕捉其值时已经完成它的处理操作。因此,当延迟锁存器8稍后捕捉处理逻辑2的输出时,这将具有与在不延迟锁存器4内捕捉的值相同的值。因此,比较器6将检测到延迟周期中没有出现变化,以及差错恢复操作不会被触发。相反,如果集成电路的工作参数使得处理逻辑2到不延迟锁存器4捕捉其值时未完成它的处理操作,则延迟锁存器8将捕捉不同的值,这将由比较器6检测,从而迫使差错恢复操作被执行。将会看到,差错恢复操作可以是采用存储于延迟锁存器8内的延迟值取代不延迟锁存器4的输出,该输出在其捕捉之后的时间中被提供给后续处理级。这个延迟值还可能被迫存储在不延迟锁存器4中,取代其中存储的先前错误捕捉的值。
元稳定性检测器7用来检测不延迟锁存器4的输出中的元稳定性,即不是处于明确定义的逻辑状态。如果检测到这种元稳定性,则这被当作差错来处理,且采用延迟锁存器6的值来代替。
在检测到差错时,整个流水线可能通过在附加延迟周期里选通不延迟时钟信号10而被暂停,以便提供充分时间让后续处理级中的处理逻辑正确地响应提供给它的已校正输入信号值。或者,根据采用逆流体系结构的标准流水线处理技术,通过把空泡插入流水线,可以暂停上游处理级而允许后续处理级继续工作(参见图2的空泡和刷新锁存器)。另一个备选方案是,整个处理流水线可采用被推入各级的不延迟锁存器的延迟锁存器值来重置,以及处理被恢复。延迟锁存器值代替错误值来再用而不是尝试重新计算,这确保了即使已经出现差错,也会向前进行各个处理操作。
存在与处理级内处理逻辑耗用的处理时间与不延迟捕捉时间和延迟捕捉时间之间的延迟之间的关系相关的约束。具体来说,任何处理级的最小处理时间不应当小于此延迟,以便确保所捕捉的延迟值未被从短延迟处理级输出的新数据破坏。可能需要采用额外的延迟元件插入短延迟处理级来确保它们不小于这个最小处理时间。在另一个极端,需要确保在任何工作参数的任何工作点可能出现的处理级内处理逻辑的最大处理延迟不大于正常不延迟工作时钟周期与延迟值之和,以便确保在延迟值锁存器中捕捉的延迟值是稳定和正确的。
有多种备选方式可控制系统调整功耗和性能。根据一个配置,提供差错计数器电路(未示出)对比较器6进行的不相等检测的数量计数。这个所检测且从中恢复的差错的计数可用于利用硬件实现或软件实现的算法来控制工作参数。计数器是软件可读的。无论在最大速度还是最低功耗方面的最佳整体性能可通过有意采用保持差错的非零水平的参数操作集成电路来实现。来自在这类情况中操作不谨慎工作参数的增益超过了从差错中恢复的需要所导致的损失。
根据一个备选配置,硬件计数器作为性能监测模块提供,并且可用于跟踪有用的工作以及差错恢复工作。具体来说,计数器计算用来进行所执行的处理操作的有用指令的数目,并且还计算被运行以执行差错恢复的指令和空泡的数目。软件可用于读取硬件计数器,以及使用计数值适当地平衡差错恢复的开销以及它对系统性能的影响与通过以非零差错率运行集成电路所实现的降低的功耗。
图2是电路框图,示意说明用于本技术的电路。图2的上部说明各处理级中提供的电路元件,即,不延迟锁存器4、延迟锁存器8和比较器6。元稳定性检测器7用来检测不延迟锁存器4的输出中的元稳定性,并且这还触发差错信号的产生。来自多个这类级的差错信号提供给“或”门100的相应输入,在其中,如果在任何处理级检测到差错,则产生全局差错信号。全局差错信号可用来触发刷新和空泡插入信号,如图所示。电路102检测差错信号本身是否为元稳定的。差错信号采用以高电压表示的正偏斜锁存器以及以低电压表示的负偏斜锁存器来锁存。如果这两者的锁存值不符,则这表明差错信号是元稳定的,以及应急信号被取出。通过在抽样前对差错信号进行锁存以及等待整个时钟周期(即串联的两个锁存器),应急信号为元稳定的概率是可忽略的。重要的是,如果应急信号被取出,则来自延迟锁存器的恢复值可能因差错信号的元稳定性而受到破坏。在这种情况下,还使指令无效,并且没有向前进行。因此,刷新流水线重新启动指令以及降低时钟频率来确保差错信号在重试同一指令时不是元稳定的(否则可能导致重试的无限循环)。
图3是电路,更详细地说明不延迟锁存器、延迟锁存器、比较器以及差错恢复电路的至少一部分。可以看到,不延迟锁存器4为两个锁存器14、16所提供的触发器的形式。延迟锁存器8为单反馈元件的形式。“异或”门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说明包含存储单元阵列102的存储器100。在这个实例中,图解说明了单行存储单元,但本技术领域的人员熟悉,这类存储单元阵列通常是包含成千上万存储单元的大型二维阵列。根据常规存储器操作,解码器104用来接收待访问的存储地址,以及对这个存储地址解码,以便激活字线106之一。字线用于将那条线中的存储单元102耦合到相应的位线对108。根据所涉及的存储单元102中存储的位值,这将引起这时与它耦合的位线108中的电变化(例如电压和/或电流的变化),该变化由读出放大器110读出。读出放大器110的输出在第一时间存储于不延迟锁存器112内,并且随后在延迟时间存储于延迟锁存器114内。存储在不延迟锁存器112内的不延迟值经由复用器116在延迟值被存储到延迟锁存器114之前直接传递出去到另一个处理电路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’的输出通常在可用的慢速读出放大器110”的输出之前经由复用器116’传出。当慢速读出放大器110”的输出可用并且比较器120检测到这不等于快速读出放大器110’的输出时,它控制复用器116’将输出值转变成慢速读出放大器110”所产生的值。比较器120还触发抑制信号的产生,使得基于错误的快速读取结果的下游处理被抑制。
图7是流程图,说明图5的电路的工作。在步骤122,对地址解码,从而使相应的存储单元利用字线所传递的信号被耦合到其相邻的位线。在步骤124,所选存储单元中所存储的位值及其补码被驱动到位线对上。这产生位线中的电流以及位线的电压变化。读出放大器110响应所检测电流和/或电压电平变化。
在步骤126,快速数据读取机构对于在那个时间从存储单元输出的值进行抽样。在步骤128,这个快速读取数据值被传递给后续处理电路,以便在假定它是正确的情况下作进一步处理。在步骤130,慢速数据读取机构对慢速读取数据值进行抽样。步骤132比较快速读取值和慢速读取值。如果它们相同,则正常处理在步骤134继续进行。但是,如果抽样值不同,则步骤136用于向快速读取值已被传递到的其它电路发出抑制信号,并且还向那些其它电路发出慢速读取值取代快速读取值,使得校正的处理可以进行。
图8说明本技术在流水线总线140中的使用。流水线总线140包含多个锁存器142,它们用来存储沿总线传递的数据值。作为这种流水线总线140的一个实例,已知的是由ARM Limited of Cambridge,England设计的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,用于产生处理器控制信号的适当集合,这些处理器控制信号存储在不延迟控制信号锁存器166中,以及随后用来控制由处理器核心根据指令锁存器162中锁存的指令所执行的处理。从解码器164输出的控制信号也在它们被锁存在不延迟控制信号锁存器166中时稍后的时间被锁存在延迟控制信号锁存器168中。延迟控制信号值和不延迟控制信号值则可进行比较。如果它们不相等,则这表明需要校正动作。抑制操作通过检测到这种差异来触发,并用于根据不适当的锁存器控制信号值来暂停后续处理。可能是在某些情况下,唯一的有效恢复选项是总体上重置处理器。这可能是可接受的。在其它情况下,控制信号中的差错可能使得不太急剧的抑制和恢复机制是可行的。举例来说,可能仍然未对特定的错误控制信号起作用,例如在多周期程序指令的情况下,其中某些处理操作直到多周期指令的整体执行中的稍后时间才开始。这种情况的一个实例是乘法-累加运算,其中,在最终累加进行之前,乘法部分耗用若干时钟周期。如果在与累加关联的控制信号中存在差错,并且累加实际上并不需要,而只是纯乘法,则有可能通过在加法器设法执行累加运算之前校正应用于累加器的控制信号,来抑制累加。
图11说明图10的电路的工作的一个实例。在步骤170,乘法-累加控制信号从解码器164(微码ROM)中被读取。在步骤172,这个乘法-累加控制信号被锁存在不延迟控制信号锁存器166中,并输出到处理器核心中的各种处理元件。在步骤174,乘法操作数从寄存器文件中被读取,并开始乘法运算。在步骤176,由指令解码器164输出的控制信号由延迟控制信号锁存器168重新抽样。在步骤178,不延迟控制信号和延迟控制信号进行比较。如果它们相等,则正常处理在步骤180继续进行。但是,如果它们不相等,则处理进入步骤182,在其中确定乘法运算是否已经完成。如果乘法运算已经完成,则错误累加运算将已经开始,以及恢复的最佳选项是在步骤184在总体上重置系统。但是,如果乘法运算仍然在进行,则步骤186可用来重置加法器并取消累加运算,其中的预期乘法运算输出结果在步骤188产生,如指令锁存器162中所存储的程序指令最初预计的那样。
图12说明图1所示的电路的修改。在这个实施例中,延迟锁存器190用于数据保持(气球)锁存器的附加功能,供操作的待机/睡眠模式(低功耗模式)期间使用。在正常处理操作过程中,延迟锁存器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,比较器1024比较延迟锁存器和不延迟锁存器的输出并且向复用器1020输出控制信号,确定延迟信号值还是不延迟信号值作为输入提供给后续处理级或通道1016。通道/逻辑1014和不延迟锁存器1016由不延迟时钟信号驱动,而延迟锁存器1019则由作为不延迟时钟信号的相移形式的延迟时钟信号驱动。
如果比较器1024检测到不延迟信号值与延迟信号值之间的差值,则这表明在元件1014表示处理逻辑的情况下处理操作在不延迟捕捉时间未完成,或者表明在元件1014表示数据通道的情况下来自前一个流水线级的信号仍未到达当前级。如果实际上检测到这种差异,则延迟锁存器1018中所存储的值是更可靠的数据值,因为它在处理操作更可能已完成或者来自前一级的数据更可能已经通过数据通道到达时的稍后时间被捕捉。通过将结果从延迟锁存器提供到下一个处理级1030,以及抑制后续处理级中的不延迟值的使用,计算的向前进行可得到保证。但是,如果单事件干扰出现并损坏延迟值,则延迟锁存器1018中存储的延迟信号值的可靠性可能被折衷。单事件干扰实际上是脉冲,因此它可能刚好被不延迟锁存器遗漏,但被延迟锁存器拾取。作为单事件干扰的直接结果,这种单事件干扰将使比较器检测延迟与不延迟值之间的差异,并且将损坏的延迟值传播到后续处理级。损坏不延迟值的单事件干扰不会成为问题,因为它将引起抑制错误的不延迟值的使用并将延迟值传送到后续级。
通过提供检错模块1026、纠错模块1028以及由检错模块1026控制以便将延迟值从延迟锁存器直接提供给比较器1024或者提供纠错模块1028所输出的已纠错值的复用器1022来提供数据完整性的交叉校验,图14的配置减小了损坏的延迟值经过计算的可能性。在通道/逻辑单元1014的上游,八位数据净荷经过纠错编码,以及四个冗余位被添加到数据净荷,从而形成十二位信号。十二位信号经过通道/逻辑单元1014,以及它的值由不延迟锁存器1016以及延迟锁存器1018来捕捉。但是,从延迟锁存器1018得到的信号的延迟值还作为输入提供给检错模块1026,它从12位纠错编码信号确定是否已经出现影响延迟值的任何差错。在一个备选配置中,提供另一个锁存器以便将信号值提供给检错模块1018,该模块在略迟于延迟锁存器1018的时间捕捉信号值。差错校验必须在与延迟值被捕捉的相同时间或稍后时间对所捕捉的值来执行,以便确保检测到不延迟值的捕捉与延迟值的捕捉之间出现的任何随机差错。
给定的纠错码能够检测预定数量的差错以及纠正给定数量的差错。因此,检错模块1026检测是否已经出现任何差错,以及如果是,则确定差错的数量是否足够小,使得它们全部可纠正。如果检测到可纠正差错,则信号值提供给纠错模块1028,在其中利用纠错码来纠正差错,以及纠正的延迟值提供给比较器1024。如果比较器1024确定纠正的延迟值不同于不延迟值,则差错恢复程序被调用,使得不延迟值的进一步传播在后续处理级中被抑制,以及操作改用纠正的延迟值来进行。另一方面,如果比较器1024确定纠正的延迟值与延迟值相同,则对于进行计算存在两种备选可能性。首先,差错恢复机制仍然可被调用,使得不延迟值在后续处理级中被抑制,并由纠正的延迟值取代。或者,由于不延迟值被确定为正确(如通过不延迟值和纠正的延迟值的相等来证明),因此差错恢复机制可被抑制(尽管检测到延迟值中的差错),从而允许不延迟值继续通过后续处理级。但是,如果检错模块1026在延迟值中检测到不可纠正的差错,则提供控制信号来抑制损坏的延迟值的使用。在这种情况下,计算的向前进行无法实现。所应用的纠错编码类型根据通道/处理逻辑1014的性质而有所不同。
处理逻辑可分类为值传递或者值改变。属于值传递的处理逻辑的实例为存储器、寄存器和复用器。值改变处理逻辑元件的实例为加法器、乘法器和移位器。值改变处理逻辑元件的检错和纠错比值传递处理逻辑元件更为复杂,因为即使在没有出现差错时,逻辑级1014输出的值也可能不同于输入的十二位信号1013。
图15示意说明经过仅传递当没有出现差错时从输入到输出未改变的数据值的通道的数据的纠错。在这种值传递处理逻辑的情况下,将诸如汉明码等线性分组码用于纠错和检错是方便的。线性分组码通常涉及形成码字,其中原始数据净荷位在码字中保持不变,但添加一些奇偶校验位(或冗余位)。汉明码是简单的单位纠错码,以及对于(N,K)代码,N为码字中的位的总数,以及K为待编码的数据位的数量。差错的存在及位置通过对输出码字执行多个奇偶校验来检测。汉明码包括N-K奇偶校验位,其中每个从数据中的位的不同组合来计算。汉明码能够纠正一个差错或者检测两个差错。所需的奇偶校验位(或者冗余位)的数量由汉明规则K+p+1≤2P给出,其中,p为奇偶校验位的数量以及N=K+p。
如图15所示,对通道的输入为12位码字,其中包含八个数据位以及四个奇偶校验或冗余位。奇偶校验由检错/纠错模块1116对来自通道1114的输出执行。12位码字中的任何单位差错在检错/纠错模块1116进行的码字输出之前被检测和纠正。如果检测的差错是不可纠正的,则检错/纠错模块1116输出表明情况是这样的信号。虽然简单代码、如汉明码结合图11被描述成与值传递处理逻辑配合使用,但可以理解,或者还可使用其它纠错码、如卷积码。
图16示意说明如何对诸如加法器、乘法器或移位器之类的值改变逻辑元件执行纠错。在值改变处理逻辑的情况下,诸如AN码、剩余码、反剩余码或剩余数字码之类的算术码可用来检测和纠正处理逻辑的输出中的随机差错。
算术码可用来校验算术运算符。在
Figure C20048000739600221
表示待校验的运算符的情况下,必须满足下列关系:
Figure C20048000739600222
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为八位数据字。各数据字包含分别具有值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),将结果提供给计算(X+Y)MOD 7并将结果作为第二输入提供给比较器1250的逻辑单元1240。如果比较器检测到两个输入值之间的任何差异,则已经出现差错。
图17是流程图,示意说明包括延迟锁存器值的纠错控制的图14的电路的操作。在级1310,十二位纠错编码的信号值被输入通道/逻辑单元1014。接下来,在级1320,不延迟锁存器1016在时间Ti捕捉来自通道/逻辑单元1014的输出,以及捕捉值在级1330转发到后续处理逻辑级I+1。在级1340,延迟锁存器1018在时间Ti+d捕捉输出信号。在级1350,检错逻辑在时间Ti+(d+δ)捕捉来自通道/逻辑单元1014的输出。虽然在优选配置中δ为零,使得延迟值本身输出的值实际上经过差错校验,此输出或者可在延迟锁存器在时间Ti+d捕捉输出信号之后短时间里就捕捉。用于提供给检错电路的值的捕捉经过适当定时,从而确保延迟值中的任何随机差错被检测。在级1360,检错模块1026利用冗余位来确定延迟输出信号是否有差错。如果检测到差错,则在级1370确定差错是否可纠正,这将取决于多少位受到影响。例如,汉明码只能纠正单位差错。如果在级1370确定差错可纠正,则过程进入级1390,在此差错被纠正,以及纠正的延迟值在复用器1022被选取并提供给比较器1024。但是,如果在级1370确定所检测差错不是可纠正的,则产生控制信号,表明已经出现不可纠正的差错。在这种情况下,计算的向前进行无法可靠执行。在级1392,比较器1024确定差错校验的延迟值是否等于不延迟值,以及如果是,则计算的向前进行会继续。否则,执行对于图4B所述的步骤序列的过程,其中包括抑制不延迟值以及在后续处理级由延迟值取代。
图18说明使用本技术来动态调整处理级之间的相对定时。大家知道,在流水线处理环境中,处理级可耗用不同时间来完成它们相应的操作。在理论上,处理级全部经过平衡以耗用同样时间,以及对于它们各自的时间,以相同方式随周围条件的变化而改变。但是,这在许多情况下都不是可行的,情况可能是,在一个工作电压或温度上经过平衡的处理级的集合在另一个工作电压或温度上未经过平衡。此外,制造变化及其它特性可能导致处理级定时之间的相当大的差异,这干扰在其间所设计的平衡。在这些情况下,时钟频率和其它工作参数相对最坏情况来选取,使得处理级充分接近平衡,以便在所有条件下都是可工作的。
本技术允许采取更有选择性并且实际上是动态的方法。流水线处理电路2000包括延迟锁存器2002,它可用来检测由不延迟锁存器所捕捉的信号值中的差错的出现。这些差错的出现被反馈给时钟相位控制电路204,它用来调整提供给主通路中的各锁存器、即不延迟锁存器的时钟信号的相对相位。这样,可进行调整,从而有效地借用一个处理级的时间,并将它分配给另一个处理级。这可通过分接由来自基本时钟信号沿其中传播的延迟线中的可选位置的相应不延迟锁存器所使用的时钟信号来实现。
所述实例,即锁存器LA与锁存器LB之间的处理逻辑在操作上比后续级中的处理逻辑更慢。因此,提供给不延迟锁存器LB的时钟信号可经过相移,以便延迟那个时钟信号的上升沿(假定上升沿锁存器捕捉),从而延伸可用于慢速处理逻辑的时间。这减少了可用于后续处理级中的处理逻辑的时间,假定这以与除锁存器LB之外的其它级元件相同的基本时钟信号工作。
处理级之间的这种定时平衡可在电路的正进行操作期间利用来自使用延迟锁存器所检测的操作中的差错的反馈动态执行。或者,平衡可作为一次性操作在制造测试阶段或者在集成电路的“金靴”过程中执行。图18所示的延迟锁存器用于处理级之间的定时平衡,以及此后可用于工作参数和纠错的控制,如以上例如对于图1所述。这样,延迟锁存器的提供还进一步用来控制相对时钟定时。
图19说明基于全局时钟选通的流水线差错恢复的简单方法。如果任何级检测到差错,则通过对下一个全局时钟边沿进行选通,整个流水线暂停一个周期。附加时钟周期允许每一级利用延迟锁存器作为输入重新计算其结果。因此,任何先前转发的错误值将由来自延迟锁存器的正确值取代。由于所有级采用延迟锁存器输入重新评估其结果,因此,任何数量的差错在单周期中可能被容许,以及向前进行得到保证。如果所有级每个周期产生一个差错,则流水线将继续运行,但以正常速度的1/2进行。
重要的是,错误流水线结果在由比较器进行检验之前不写入体系结构化状态。由于延迟值的检验耗用两个附加周期(即一个用于检错以及一个用于应急检测),因此在最后的延迟锁存器与回写(WB)级之间必须存在两个非推测级。在我们的设计中,对数据高速缓存的存储访问是非推测的,因此,在回写(WB)之前只要求一个标记为ST用于稳定的附加级。ST级引入寄存器旁路的附加级。由于存储指令必须以非推测方式执行,因此它们在流水线的WB级执行。
图19给出在流水线的EX级失败的指令的流水线恢复的流水线时序图。第一次失败的级计算出现在第4周期,但仅在MEM级之后才利用从EX级转发的错误值计算不正确的结果。在检测到差错之后,全局时钟暂停出现在第6周期,允许Razor影子锁存器中的正确的EX结果由MEM级来评估。在第7周期,恢复正常的流水线操作。
在积极式定时设计中,不可能在没有明显影响处理器周期时间的情况下实现全局时钟选通。因此,已经实现基于逆流流水线技术的完全流水线差错恢复机制。图20中所示的方法以在几个周期上延长流水线恢复为代价对基线流水线设计施加了微不足道的定时约束。当检测到不延迟值差错时,必须采取两个特定动作。首先,出故障的不延迟锁存器之后的错误级计算必须被废弃。这个动作采用空泡信号来实现,它向下一个以及后续级表明流水线槽位为空。第二,刷新链通过断言故障级的级ID来触发。在随后的周期中,来自延迟锁存器数据的正确值重新注入流水线,允许错误指令对其正确输入继续进行。另外,还存在逆流流水线,刷新链由此开始以指令的相反方向传播故障级的ID。在激活的刷新链访问的各级,相应的流水线级和一个直接在前级由空泡取代。(两个级必须被废弃,以便考虑到主流水线的两倍相对速度。)当刷新ID到达流水线的开头时,刷新控制逻辑以错误指令之后的指令重新启动流水线。如果多级在同一个周期中遇到差错,则它们将全部开始恢复,但只有最接近回写(WB)的不延迟差错将完成。先前的恢复将被稍后的恢复刷新。注意,逆流流水线可能与前向流水线不是相同长度,使得例如逆流流水线的刷新链的深度可能为两个流水线级,而前向流水线的深度可能为十二级。
图20表示在EX级失败的指令的流水线恢复的流水线时序图。如前一个实例中那样,当第二指令计算流水线的EX级中的不正确结果时,第一个出故障的级计算出现在第4周期。这个差错在第5周期被检测,导致空泡从MEM级被传播出来以及刷新链的开始。EX、ID和IF级中的指令分别在第6、第7和第8周期被刷新。最后,流水线在错误指令之后、在周期9重新启动,此后恢复正常的流水线操作。
回忆以上图2的描述,如果电路102检测到差错信号中的元稳定性,则应急信号被断言。在这种情况下,当前指令(而不是下一个指令)应当重新运行。当这种应急信号被断言时,所有流水线状态被刷新,以及流水线在至少指令回写之后立即重新启动。应急情况使向前进行的保证复杂化,因为检测情况中的延迟可能导致正确的结果在延迟锁存器中被盖写。因此,在遇到紧急情况之后,电源电压重置到已知的安全工作电平,以及流水线重新启动。一旦重新调整,错误指令应当无误地完成,只要在这个指令完成之前禁止返回。
流水线恢复控制的主要要求在于,它即使在最坏工作条件(例如低电压、高温以及高过程变化)下也不会失败。这个要求通过保守的设计方法来满足,它确认最坏情况亚临界电压下的差错恢复电路的定时。
图21示意说明延迟锁存器2100再用作串行扫描链锁存器。这通过提供由允许串行扫描数据值根据需要被写入延迟锁存器或者从延迟锁存器顺序读取的扫描使能信号所控制的复用器2102来实现。此外,允许延迟锁存器值取代不延迟锁存器值的常规机制被利用以允许串行扫描链值被插入工作通路。

Claims (18)

1.一种用于存储数据的存储器,包括:
快速数据读取机构,可用于从所述存储器读取数据值,以便产生从所述存储器输出供进一步处理的快速读取结果;
慢速数据读取机构,可用于从所述存储器读取所述数据值,以便产生在所述快速读取结果已被输出供进一步处理之后可用的慢速读取结果,所述慢速数据读取机构在读取所述数据值时比所述快速数据读取机构更不容易出错;
比较器,可用于比较所述快速读取结果与所述慢速读取结果,以便检测所述快速读取结果是否与所述慢速读取结果不同;以及
差错修复逻辑,可用于如果所述比较器检测到所述快速读取结果不同于所述慢速读取结果,则抑制采用所述快速读取结果的所述进一步处理,输出所述慢速读取结果来取代所述快速读取结果,以及根据所述慢速读取结果重新开始所述进一步处理。
2.如权利要求1所述的存储器,其特征在于包括存储单元阵列,所述存储单元阵列内的存储单元中所存储的数据值经由一个或多个位线来读取。
3.如权利要求2所述的存储器,其特征在于,所述快速数据读取机构可用于在所述存储单元耦合到所述一个或多个位线之后第一延迟间隔的时间对所述一个或多个位线抽样,以及慢速数据读取机构可用于在所述存储单元耦合到所述一个或多个位线之后第二延迟间隔的时间对所述一个或多个位线抽样,所述第二延迟间隔大于所述第一延迟间隔。
4.如权利要求2和3中的任一项所述的存储器,其特征在于,所述存储单元经由一对位线来读取。
5.如权利要求4所述的存储器,其特征在于,一个或多个差动读出放大器可用于从所述位线对读取信号值。
6.如权利要求1-3中的任一项所述的存储器,其特征在于,所述快速读取机构和所述慢速读取机构共用一个或者多个公用电路元件。
7.如权利要求1-3中的任一项所述的存储器,其特征在于,所述差错修复逻辑可用于通过向所述快速读取结果已被传递到其中供进一步处理的电路发出抑制信号,抑制所述进一步处理。
8.如权利要求1-3中的任一项所述的存储器,其特征在于,所述存储器的一个或多个性能控制参数经过控制,从而在所述快速读取结果中保持非零差错率。
9.如权利要求8所述的存储器,其特征在于,所述一个或多个性能控制参数包括以下各项中的一项或多项:
工作电压;
工作频率;
体偏压;以及
温度。
10.一种从存储器中读取所存储数据的方法,所述方法包括以下步骤:
采用快速数据读取机构从所述存储器读取数据值,以便产生从所述存储器输出供进一步处理的快速读取结果;
采用慢速数据读取机构从所述存储器读取所述数据值,以便产生在所述快速读取结果已被输出供进一步处理之后可用的慢速读取结果,所述慢速数据读取机构在读取所述数据值时比所述快速数据读取机构更不容易出错;
比较所述快速读取结果与所述慢速读取结果,以便检测所述快速读取结果是否与所述慢速读取结果不同;以及
如果所述快速读取结果不同于所述慢速读取结果,则抑制采用所述快速读取结果的所述进一步处理,输出所述慢速读取结果来取代所述快速读取结果,以及根据所述慢速读取结果重新开始所述进一步处理。
11.如权利要求10所述的方法,其特征在于,所述存储器包括存储单元阵列,所述存储单元阵列内的存储单元中所存储的数据值经由一个或多个位线来读取。
12.如权利要求11所述的方法,其特征在于,所述快速数据读取机构可用于在所述存储单元耦合到所述一个或多个位线之后第一延迟间隔的时间对所述一个或多个位线抽样,以及慢速数据读取机构可用于在所述存储单元耦合到所述一个或多个位线之后第二延迟间隔的时间对所述一个或多个位线抽样,所述第二延迟间隔大于所述第一延迟间隔。
13.如权利要求11和12中的任一项所述的方法,其特征在于,所述存储单元经由一对位线来读取。
14.如权利要求13所述的方法,其特征在于,一个或多个差动读出放大器可用于从所述位线对读取信号值。
15.如权利要求10至12中的任一项所述的方法,其特征在于,所述快速读取机构和所述慢速读取机构共用一个或者多个公用电路元件。
16.如权利要求10至12中的任一项所述的方法,其特征在于,所述差错修复逻辑可用于通过向所述快速读取结果已被传递到其中供进一步处理的电路发出抑制信号,抑制所述进一步处理。
17.如权利要求10至12中的任一项所述的方法,其特征在于,所述存储器的一个或多个性能控制参数经过控制,从而在所述快速读取结果中保持非零差错率。
18.如权利要求17所述的方法,其特征在于,所述一个或多个性能控制参数包括以下各项中的一项或多项:
工作电压;
工作频率
体偏压;以及
温度。
CNB2004800073967A 2003-03-20 2004-03-17 具有快速和慢速数据读取机构的存储系统 Expired - Lifetime CN100449651C (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN1762028A CN1762028A (zh) 2006-04-19
CN100449651C true CN100449651C (zh) 2009-01-07

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 具有快速和慢速数据读取机构的存储系统
CNB2004800073971A Expired - Lifetime CN100468286C (zh) 2003-03-20 2004-03-17 具有多个处理级的集成电路及其操作方法
CNB2004800073721A Expired - Lifetime CN100416507C (zh) 2003-03-20 2004-03-17 集成电路的处理级内的系统和随机差错检测及恢复

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2004800073384A Expired - Lifetime CN100401262C (zh) 2003-03-20 2004-02-26 集成电路处理级内的错误检测和恢复

Family Applications After (2)

Application Number Title Priority Date Filing Date
CNB2004800073971A Expired - Lifetime CN100468286C (zh) 2003-03-20 2004-03-17 具有多个处理级的集成电路及其操作方法
CNB2004800073721A Expired - Lifetime CN100416507C (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)

Families Citing this family (110)

* 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
WO2004084070A1 (en) * 2003-03-20 2004-09-30 Arm Limited Systematic and random 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
EP1639379A1 (en) * 2003-06-16 2006-03-29 Koninklijke Philips Electronics N.V. Timing closure monitoring circuit and method
FR2869430A1 (fr) * 2004-04-27 2005-10-28 St Microelectronics Sa Controle de l'execution d'un algorithme par un circuit integre
US7188284B2 (en) * 2004-06-30 2007-03-06 Intel Corporation Error detecting circuit
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
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
JP4722994B2 (ja) * 2005-04-21 2011-07-13 アーム・リミテッド 集積回路の処理ステージ内のエラー回復
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 パナソニック株式会社 半導体集積回路システム、半導体集積回路、オペレーティングシステム及び半導体集積回路の制御方法
US7965119B2 (en) * 2006-06-20 2011-06-21 Freescale Semiconductor, Inc. Device and method for handling 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 株式会社東芝 半導体集積回路装置
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
US8020018B2 (en) * 2006-09-28 2011-09-13 Infineon Technologies Ag Circuit arrangement and method of operating a circuit arrangement
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
GB2448118B (en) 2007-04-03 2011-08-24 Advanced Risc Mach Ltd Error recovery following erroneous execution with an instruction processing pipeline
GB2479090B (en) * 2007-04-03 2011-11-16 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
WO2009146145A2 (en) * 2008-04-04 2009-12-03 Arizona Board Of Regents, A Body Corporate Of The State Of Arizona, Acting For And On Behalf Of The University Of Arizona Fault-and variation-tolerant energy-and area-efficient links for network-on-chips
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
US8006147B2 (en) * 2009-03-16 2011-08-23 Arm Limited Error detection in precharged logic
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
CN101975919B (zh) * 2010-09-19 2013-01-16 王振国 一种电路状态检测的方法和装置
US9075110B2 (en) * 2010-10-05 2015-07-07 Kyushu Institute Of Technology Fault detection system, acquisition apparatus, fault detection method, program, and non-transitory computer-readable medium
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
US8639960B2 (en) 2011-05-27 2014-01-28 Arm Limited Verifying state integrity in state retention circuits
US8732499B2 (en) 2011-05-27 2014-05-20 Arm Limited State retention circuit adapted to allow its state integrity to be verified
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
US9317342B2 (en) * 2011-12-23 2016-04-19 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
CN103678017B (zh) * 2012-09-03 2018-05-15 江苏东大集成电路系统工程技术有限公司 一种基于片上监测的可切换错误恢复方法
CN103019876B (zh) * 2012-12-26 2015-07-01 东南大学 一种面向cpu流水线的错误恢复电路
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 日本電気株式会社 データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム
US9903916B2 (en) * 2012-09-27 2018-02-27 Nxp Usa, Inc. Scan test system with a test interface having a clock control unit for stretching a power shift cycle
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 灿芯半导体(天津)有限公司 一种高精度捕获电路及捕获方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6224498A (ja) * 1985-07-24 1987-02-02 Nippon Telegr & Teleph Corp <Ntt> メモリ読出し方式
US6188610B1 (en) * 1999-02-04 2001-02-13 Kabushiki Kaisha Toshiba Electrically erasable and programmable nonvolatile semiconductor memory device having data holding function and data holding method
US20010016927A1 (en) * 1998-06-30 2001-08-23 Poisner David I. Method and apparatus for verifying that data stored in a memory has not been corrupted

Family Cites Families (74)

* 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
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
EP0648033B1 (en) 1993-10-12 2002-09-25 Alcatel Synchronizing circuit
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
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
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
AU2278601A (en) 1999-12-23 2001-07-03 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
US6958627B2 (en) 2000-10-23 2005-10-25 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
US7707621B2 (en) 2002-12-02 2010-04-27 Silverbrook Research Pty Ltd Creation and usage of mutually exclusive messages
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
WO2004084070A1 (en) * 2003-03-20 2004-09-30 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6224498A (ja) * 1985-07-24 1987-02-02 Nippon Telegr & Teleph Corp <Ntt> メモリ読出し方式
US20010016927A1 (en) * 1998-06-30 2001-08-23 Poisner David I. Method and apparatus for verifying that data stored in a memory has not been corrupted
US6188610B1 (en) * 1999-02-04 2001-02-13 Kabushiki Kaisha Toshiba Electrically erasable and programmable nonvolatile semiconductor memory device having data holding function and data holding method

Also Published As

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

Similar Documents

Publication Publication Date Title
CN100449651C (zh) 具有快速和慢速数据读取机构的存储系统
KR100981999B1 (ko) 집적회로의 처리단 내에서의 시스템적이고 랜덤한 오류의검출 및 회복
US10579463B2 (en) Error recovery within integrated circuit
US8060814B2 (en) Error recovery within processing stages of an integrated circuit
US7260001B2 (en) Memory system having fast and slow data reading mechanisms
US7072229B2 (en) Memory system having fast and slow data reading mechanisms
KR100994188B1 (ko) 집적회로내에서의 데이터 유지 래치 제공

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: 20090107