集成电路内的数据保持锁存器提供的制作方法

文档序号:6479526阅读:262来源:国知局
专利名称:集成电路内的数据保持锁存器提供的制作方法
技术领域
本发明涉及数据处理系统的领域。更具体来说,本发明涉及具有用于在待机模式中保持集成电路状态的数据保持锁存器的集成电路的领域,在所述待机模式期间集成电路不执行处理操作。
在集成电路内提供数据保持锁存器(有时称作气球锁存器)用于以操作的低功率待机模式保持状态数据是已知的。这些数据保持锁存器可制作成具有极适合它们的低功率待机模式类型的操作的电气特性,例如,它们可具有产生低泄漏电流损耗的高门限电压。这类低功率特性通常不适合用于在数据处理过程中必须高速转换的运算电路。但是,数据保持锁存器不需要高速工作,因此能够采用低功耗设计。当进入待机模式时,状态数据通常从操作锁存器传送到数据保持锁存器,然后操作锁存器断电。在退出待机模式时,保存在数据保持锁存器中的存储数据值从数据保持锁存器被迫进入操作锁存器,以及处理操作重新开始。这有利地提供了快速进入和退出待机模式而没有数据丢失。
与数据保持锁存器的这种方式的使用关联的一个问题是大量数据保持锁存器,它们通常需要设置在集成电路上以便充分保持其状态,使得在没有数据丢失的情况下停止和重新开始处理操作。这种大量数据保持锁存器耗用的电路面积是不利的开销。
有人提出,为了实现速度和/或能量消耗方面的更佳性能,集成电路内的操作锁存器应当与用于在稍后时间捕捉与操作锁存器相同的信号值的延迟锁存器关联。两个捕捉值则可进行比较,以及如果延迟捕捉值不同于先前的捕捉值,则可采取校正动作。这种配置允许电路更接近速度和/或电压等的极限程度进行工作。这种配置通常将控制工作参数,以便维持有限差错率,因为认识到从这类差错中恢复所关联的损失不及更接近集成电路的工作极限运行所实现的优点。
从一个方面来看,本发明提供一种集成电路,包括多个处理级,所述处理级中的至少一个具有处理逻辑,可用于对至少一个处理级输入值执行处理操作以产生处理逻辑输出信号;以及低功率模式控制器,可用于控制所述集成电路在其中所述集成电路执行所述处理操作的工作模式与其中所述集成电路保持信号值但不执行所述处理操作的待机模式之间转换;其中所述处理级中的所述至少一个具有不延迟锁存器,可用于在不延迟捕捉时间捕捉所述处理逻辑输出信号的不延迟值;以及延迟锁存器,可用于在所述工作模式期间在延迟捕捉时间捕捉所述处理逻辑输出信号的延迟值,所述延迟捕捉时间迟于所述不延迟捕捉时间,所述不延迟值在所述延迟捕捉时间之前作为处理级输入值传递给后续处理级,以及所述不延迟值与所述延迟值之间的差异表明在所述不延迟捕捉时间未完成所述处理操作;所述延迟锁存器可用于在所述待机模式期间当所述不延迟锁存器断电并且易受到所述不延迟值的丢失时保持所述延迟值;以及所述延迟锁存器制作成具有低静态功耗。
本发明认识到,根据上述技术提供的延迟锁存器可有利地再用作待机模式中的数据保持锁存器。延迟锁存器在其操作中不需要象不延迟锁存器那么快,因为它们的功能是在稍后时间捕捉信号值,因此它们能够以更少速度约束进行工作。因此,延迟锁存器可制作成具有数据保持锁存器的预期低功耗特性,并且仍然实现它们作为延迟锁存器的作用。在根据上述技术的数据保持锁存器与延迟锁存器的提供之间存在惊人的协同作用,它通过双重使用锁存器,同时充分避免这类锁存器执行它们任一作用的能力的折衷的任何需要,允许门计数/电路面积的有利减小。
虽然可以理解,延迟锁存器制作成具有低功耗并且这可在没有包括电路的整体工作速度的情况下来实现,但在许多实施例中,延迟锁存器的降低的工作速度是要进行的优选折衷,以便有助于低功耗。
在优选实施例中,在待机模式之后重新开始处理时,延迟锁存器中所存储的延迟值被传递给后续处理级作为处理级输入值。在一些实施例中,当处理重新开始时,延迟值还提供给不延迟锁存器。
在提供容错类型操作时不延迟锁存器和延迟锁存器的动作由可用于比较不延迟和延迟值的比较器以及可用于在比较表明捕捉值不相同时抑制不延迟值的使用的差错修复逻辑的动作来方便地提供。
优选的是,延迟值在处理级输出端用作不延迟值的替代。这有助于即使在出现差错时也确保处理操作向前进行。
系统还有利地包括元稳定性检测器,可用于检测不延迟值中的元稳定性,以及若发现为元稳定的,则触发差错修复逻辑来抑制不延迟值的使用。
当比较器检测到不延迟值中的差错时,延迟值可以可选地被迫进入不延迟锁存器来取代不延迟值。这种机制还可用于在重新开始处理操作之前将待机模式期间延迟锁存器中保存的值重新恢复到不延迟锁存器中。
延迟锁存器和不延迟锁存器最好由其间具有受控相位差的各个时钟信号来驱动,以便提供延迟时间。
可以理解,处理级可能是同步流水线内的各个流水线级,以及本技术很适合这类操作。还可以理解,处理级本身可能不执行处理操作,以及处理级可能对应于信号值必须沿其中通过的流水线总线的锁存器之间的简单连接/总线连接。还可以理解,术语“锁存器”应当广义地解释为包含用于存储数据值的任何电路元件而与其特定的定时和触发需要无关。
为了简化延迟锁存器与其流水线级之间的交互,优选的是,那个流水线级的处理操作所耗用的最小处理时间大于分开延迟捕捉时间与不延迟捕捉时间的时间,使得延迟值未受到对于产生不延迟值的那些值以外的不同输入值所执行的处理操作的影响。
为了实现适当的延迟,处理逻辑最好是可包括一个或多个延迟元件来确保适当地超过处理级中的最小处理时间。
虽然本技术可用于各种不同的情况,但它尤其很适合用作数据处理器的一部分。
由不延迟锁存器和延迟锁存器处理的差错率最好是被控制为对应于有限非零等级,从而在从差错中恢复相关联的开销与从能够更接近极限地工作得到的性能增益之间达到平衡。差错率可能希望采用差错计数电路来监测,它又可由软件读取,用于控制电路工作以及影响差错率的控制参数。
备选的优选实施例不是依靠差错计数电路来控制集成电路的参数,而是包括性能监测模块,它可用于监测工作数量,其中包括在进行处理操作时执行的有用工作的数量以及用于执行差错恢复操作的工作的数量。根据这些工作数量来控制集成电路参数。在优选实施例中,集成电路参数包括以下各项中的至少一项工作电压;工作频率;集成电路体偏压以及温度。从另一个方面来看,本发明提供操作具有多个处理级的集成电路的方法,所述处理级中的至少一个具有处理逻辑,可用于对至少一个处理级输入值执行处理操作以产生处理逻辑输出信号,所述方法包括以下步骤控制所述集成电路在其中所述集成电路执行所述处理操作的工作模式与其中所述集成电路保持信号值但不执行所述处理操作的待机模式之间转换;在所述处理级中的所述至少一个内在不延迟捕捉时间在不延迟锁存器中捕捉所述处理逻辑输出信号的不延迟值;以及在所述工作模式期间,在延迟捕捉时间在延迟锁存器中捕捉所述处理逻辑输出信号的延迟值,所述延迟捕捉时间迟于所述不延迟捕捉时间,所述不延迟值在所述延迟捕捉时间之前作为处理级输入值传递给后续处理级,以及所述不延迟值与所述延迟值之间的差异表明在所述不延迟捕捉时间未完成所述处理操作;以及在所述待机模式期间,当所述不延迟锁存器断电并且易受到所述不延迟值的丢失时在所述延迟锁存器中保持所述延迟值;其中所述延迟锁存器制作成具有比所述不延迟锁存器更低的功耗。
现在仅通过示例、参照附图来描述本发明的实施例,其中

图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码、剩余码、反剩余码或剩余数字码之类的算术码可用来检测和纠正处理逻辑的输出中的随机差错。
算术码可用来校验算术运算符。在表示待校验的运算符的情况下,必须满足下列关系代码(XY)=代码X代码YAN码是涉及将数据字与恒定因子相乘的算术码,例如3N码可用于通过执行以下比较来校验加法运算的有效性3N(X)+3N(Y)?=3N(X+Y)3X+3Y?=3(X+Y)。
算术码的类的另一个实例是剩余码,其中,余数(除以常数的余数)添加到数据位作为校验位,例如3R码涉及模(MOD)3运算,以及应用以下校验XMOD 3+YMOD 3?=(X+Y)MOD 3考虑X=14和Y=7的数值实例14MOD 3=2(码字111010,其中最后两位为余数);
7MOD 3=1(码字011101);X+Y=21(10101);以及21MOD 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来实现。此外,允许延迟锁存器值取代不延迟锁存器值的常规机制被利用以允许串行扫描链值被插入工作通路。
权利要求
1.一种集成电路,包括多个处理级,所述处理级中至少一个具有处理逻辑,可用于对至少一个处理级输入值执行处理操作以产生处理逻辑输出信号;以及低功率模式控制器,可用于控制所述集成电路在其中所述集成电路执行所述处理操作的工作模式与其中所述集成电路保持信号值但不执行所述处理操作的待机模式之间转换;其中所述处理级中所述至少一个具有不延迟锁存器,可用于在不延迟捕捉时间捕捉所述处理逻辑输出信号的不延迟值;以及延迟锁存器,可用于在所述工作模式期间在延迟捕捉时间捕捉所述处理逻辑输出信号的延迟值,所述延迟捕捉时间迟于所述不延迟捕捉时间,所述不延迟值在所述延迟捕捉时间之前作为处理级输入值传递给后续处理级,以及所述不延迟值与所述延迟值之间的差异表明在所述不延迟捕捉时间未完成所述处理操作;所述延迟锁存器可用于在所述待机模式期间当所述不延迟锁存器断电并且易受到所述不延迟值的损失时保持所述延迟值;以及所述延迟锁存器制作成具有低静态功耗。
2.如权利要求1所述的集成电路,其特征在于,所述延迟锁存器具有比所述不延迟锁存器更低的工作速度。
3.如权利要求1和2所述的集成电路,其特征在于,在从所述待机模式转换到所述工作模式时,所述延迟锁存器内存储的所述延迟值作为所述处理级输入值被传递给所述后续处理级。
4.如权利要求3所述的集成电路,其特征在于,在从所述待机模式转换到所述工作模式时,所述延迟值从所述延迟锁存器复制到所述不延迟锁存器。
5.如以上权利要求中的任一项所述的集成电路,其特征在于,所述处理级中的所述最后至少一个包括比较器,可用于比较所述不延迟值与所述延迟值以检测所述处理逻辑输出信号在所述不延迟捕捉时间之后的变化,所述变化表明所述处理逻辑在所述不延迟捕捉时间未完成所述处理操作;以及差错修复逻辑,可用于当所述比较器检测到所述变化时执行差错恢复操作,抑制所述后续处理级对所述不延迟值的使用。
6.如以上权利要求中的任一项所述的集成电路,其特征在于包括元稳定性检测器,可用于检测所述不延迟值中的元稳定性,以及若发现为元稳定的,则触发所述差错修复逻辑来抑制所述不延迟值的使用。
7.如以上权利要求中的任一项所述的集成电路,其特征在于,当所述比较器检测到所述变化时,所述差错修复逻辑可用于采用所述延迟值取代所述不延迟值作为所述处理级输出信号。
8.如权利要求7所述的集成电路,其特征在于,向所述后续处理级提供所述延迟值迫使处理操作向前进行。
9.如以上权利要求中的任一项所述的集成电路,其特征在于,当所述比较器检测到所述变化时,所述差错修复逻辑可用于迫使所述延迟值存储在所述不延迟锁存器中以取代所述不延迟值。
10.如以上权利要求中的任一项所述的集成电路,其特征在于,所述处理级和所述后续处理级内的处理操作由不延迟时钟信号驱动。
11.如权利要求10所述的集成电路,其特征在于,当所述比较器检测到所述变化时,所述差错恢复逻辑可用于选通所述不延迟时钟信号,以便提供时间让所述后续处理级从所述不延迟值的输入进行恢复,以及改为使用所述延迟值。
12.如权利要求11所述的集成电路,其特征在于,所述不延迟捕捉时间从所述不延迟时钟信号的预定相位点导出,所述不延迟时钟信号的相位延迟形式被用作延迟时钟信号,以及所述延迟捕捉时间从所述延迟时钟信号的预定相位点导出。
13.如以上权利要求中的任一项所述的集成电路,其特征在于,所述多个处理级是同步流水线内的各个流水线级。
14.如以上权利要求中的任一项所述的集成电路,其特征在于,所述处理操作耗用的最小处理时间大于分开所述延迟捕捉时间与所述不延迟捕捉时间的时间,使得所述延迟值没有受到对不同输入值执行的处理操作的影响。
15.如权利要求14所述的集成电路,其特征在于,所述处理逻辑包括一个或多个延迟元件以确保超过所述最小处理时间。
16.如以上权利要求中的任一项所述的集成电路,其特征在于,所述处理操作耗用的最大处理时间小于分开所述延迟捕捉时间与所述不延迟捕捉时间的时间以及不延迟捕捉时间之间的时间之和,使得所述处理逻辑到所述延迟捕捉时间已经完成所述处理操作。
17.如以上权利要求中的任一项所述的集成电路,其特征在于,所述处理级是数据处理器的一部分。
18.如权利要求5以及权利要求1至4和6至17中任一项所述的集成电路,其特征在于包括可用于存储与所述变化对应的差错的检测的计数的差错计数器电路。
19.如权利要求18所述的集成电路,其特征在于,所述计数可由软件读取。
20.如以上权利要求中的任一项所述的集成电路,其特征在于包括性能监测模块,它可用于监测工作数量,其中包括在进行所述处理操作时执行的有用工作的数量以及用于执行所述差错恢复操作的工作的数量。
21.如权利要求20所述的集成电路,其特征在于,根据所述工作数量来控制一个或多个工作参数。
22.如权利要求21所述的集成电路,其特征在于,所述一个或多个工作参数包括以下各项中的至少一项工作电压;工作频率;集成电路体偏压;以及温度。
23.如以上权利要求中的任一项所述的集成电路,其特征在于,所述延迟锁存器还用作串行扫描链内的串行扫描链锁存器。
24.如以上权利要求中的任一项所述的集成电路,其特征在于,所述延迟锁存器还用作串行扫描链内的串行扫描链锁存器,以及在诊断操作期间利用所述差错修复逻辑迫使串行扫描到所述串行扫描链锁存器中的信号值进入所述不延迟锁存器。
25.一种操作具有多个处理级的集成电路的方法,所述处理级中的至少一个具有处理逻辑,可用于对至少一个处理级输入值执行处理操作以产生处理逻辑输出信号,所述方法包括以下步骤控制所述集成电路在其中所述集成电路执行所述处理操作的工作模式与其中所述集成电路保持信号值但不执行所述处理操作的待机模式之间转换;在所述处理级中的所述至少一个内在不延迟捕捉时间在不延迟锁存器中捕捉所述处理逻辑输出信号的不延迟值;以及在所述工作模式期间,在延迟捕捉时间在延迟锁存器中捕捉所述处理逻辑输出信号的延迟值,所述延迟捕捉时间迟于所述不延迟捕捉时间,所述不延迟值在所述延迟捕捉时间之前作为处理级输入值传递给后续处理级,以及所述不延迟值与所述延迟值之间的差异表明在所述不延迟捕捉时间未完成所述处理操作;以及在所述待机模式期间,当所述不延迟锁存器断电并且易受到所述不延迟值的丢失时在所述延迟锁存器内保持所述延迟值;其中所述延迟锁存器制作成具有比所述不延迟锁存器更低的静态功耗。
26.如权利要求25所述的方法,其特征在于,所述延迟锁存器具有比所述不延迟锁存器更低的工作速度。
27.如权利要求25和26所述的方法,其特征在于,在从所述待机模式转换到所述工作模式时,所述延迟锁存器内存储的所述延迟值作为所述处理级输入值被传递给所述后续处理级。
28.如权利要求27所述的方法,其特征在于,在从所述待机模式转换到所述工作模式时,所述延迟值被复制到所述不延迟锁存器。
29.如权利要求25至28中的任一项所述的方法,其特征在于在所述处理级的所述最后至少一个内包括比较所述不延迟值与所述延迟值,以检测所述处理逻辑输出信号在所述不延迟捕捉时间之后的变化,所述变化表明所述处理逻辑在所述不延迟捕捉时间未完成所述处理操作;以及在检测到所述变化时,执行差错恢复操作,抑制所述后续处理级对所述不延迟值的使用。
30.如权利要求25至29中的任一项所述的方法,其特征在于包括检测所述不延迟值中的元稳定性,以及若发现为元稳定的,则触发对所述不延迟值的使用的抑制。
31.如权利要求25至30中的任一项所述的方法,其特征在于,在检测到所述变化时,采用所述延迟值取代所述不延迟值作为所述处理级输出信号。
32.如权利要求31所述的方法,其特征在于,向所述后续处理级提供所述延迟值迫使处理操作向前进行。
33.如权利要求25至32中的任一项所述的方法,其特征在于,在检测到所述变化时,迫使所述延迟值存储在所述不延迟锁存器中以取代所述不延迟值。
34.如权利要求25至33中的任一项所述的方法,其特征在于,所述处理级和所述后续处理级内的处理操作由不延迟时钟信号驱动。
35.如权利要求34所述的方法,其特征在于,在检测到所述变化时,选通所述不延迟时钟信号,以便提供时间让所述后续处理级从所述不延迟值的输入进行恢复,以及改为使用所述延迟值。
36.如权利要求35所述的方法,其特征在于,所述不延迟捕捉时间从所述不延迟时钟信号的预定相位点导出,所述不延迟时钟信号的相位延迟形式被用作延迟时钟信号,以及所述延迟捕捉时间从所述延迟时钟信号的预定相位点导出。
37.如权利要求25至36中的任一项所述的方法,其特征在于,所述多个处理级是同步流水线内的各个流水线级。
38.如权利要求25至37中的任一项所述的方法,其特征在于,所述处理操作耗用的最小处理时间大于分开所述延迟捕捉时间与所述不延迟捕捉时间的时间,使得所述延迟值没有受到对不同输入值执行的处理操作的影响。
39.如权利要求38所述的方法,其特征在于,所述处理逻辑包括一个或多个延迟元件以确保超过所述最小处理时间。
40.如权利要求25至39中的任一项所述的方法,其特征在于,所述处理操作耗用的最大处理时间小于分开所述延迟捕捉时间与所述不延迟捕捉时间的时间以及不延迟捕捉时间之间的时间之和,使得所述处理逻辑到所述延迟捕捉时间已经完成所述处理操作。
41.如权利要求25至40中的任一项所述的方法,其特征在于,所述处理级是数据处理器的一部分。
42.如权利要求25至41中的任一项所述的方法,其特征在于包括存储与所述变化对应的差错的检测的计数。
43.如权利要求42所述的方法,其特征在于,所述计数可由软件读取。
44.如权利要求25至43中的任一项所述的方法,其特征在于包括监测工作数量,其中包括在进行所述处理操作时执行的有用工作的数量以及用于执行所述差错恢复操作的工作的数量。
45.如权利要求44所述的方法,其特征在于,根据所述工作数量来控制一个或多个工作参数。
46.如权利要求45所述的方法,其特征在于,所述一个或多个工作参数包括以下各项中的至少一项工作电压;工作频率;集成电路体偏压;以及温度。
47.如权利要求25至46中的任一项所述的方法,其特征在于,所述延迟锁存器还用作串行扫描链内的串行扫描链锁存器。
48.如权利要求25至47中的任一项所述的方法,其特征在于,所述延迟锁存器还用作串行扫描链内的串行扫描链锁存器,以及在诊断操作期间利用所述差错修复逻辑迫使串行扫描到所述串行扫描链锁存器中的信号值进入所述不延迟锁存器。
全文摘要
提供一种集成电路,包括多个处理级,所述处理级中至少一个具有可用于对至少一个处理级输入值执行处理操作以产生处理逻辑输出信号的处理逻辑;以及低功率模式控制器,可用于控制所述集成电路在所述集成电路执行所述处理操作的工作模式与所述集成电路保持信号值但不执行所述处理操作的待机模式之间转换;其中所述处理级中所述至少一个具有不延迟锁存器,可用于在不延迟捕捉时间捕捉所述处理逻辑输出信号的不延迟值;以及延迟锁存器,可用于在所述工作模式期间在延迟捕捉时间捕捉所述处理逻辑输出信号的延迟值,所述延迟捕捉时间迟于所述不延迟捕捉时间,所述不延迟值在所述延迟捕捉时间之前作为处理级输入值传递给后续处理级,以及所述不延迟值与所述延迟值之间的差异表明所述处理操作在所述不延迟捕捉时间未完成;所述延迟锁存器可用于在所述待机模式期间在所述不延迟锁存器断电及丢失所述不延迟值时保持所述延迟值;以及所述延迟锁存器制作成具有低功耗。
文档编号G06F9/38GK1761927SQ200480007397
公开日2006年4月19日 申请日期2004年3月17日 优先权日2003年3月20日
发明者T·M·奥斯丁, D·T·布劳夫, T·N·马奇, K·弗劳特纳 申请人:Arm有限公司, 密执安大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1