CN103019876A - 一种面向cpu流水线的错误恢复电路 - Google Patents
一种面向cpu流水线的错误恢复电路 Download PDFInfo
- Publication number
- CN103019876A CN103019876A CN2012105747356A CN201210574735A CN103019876A CN 103019876 A CN103019876 A CN 103019876A CN 2012105747356 A CN2012105747356 A CN 2012105747356A CN 201210574735 A CN201210574735 A CN 201210574735A CN 103019876 A CN103019876 A CN 103019876A
- Authority
- CN
- China
- Prior art keywords
- circuit
- signal
- rub
- input end
- mistake
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
本发明公开一种面向CPU流水线的错误恢复电路,包括片上监测电路(1)、错误信号统计模块(2)、电压频率控制模块(3)、错误恢复控制模块(4)、原地错误恢复模块(5)和上层错误恢复模块(6),所述片上监测电路(1)集成在具有N级流水线结构的CPU内核的前N-1级流水线的各级流水线末端,监测工作电路每个时钟周期的时序信息,其中N是大于等于3且小于20的正整数。本发明提供了对具有N级流水线的CPU内核的在线时序监测,寻找电路的最低可能工作电压,减小在设计阶段为电路预留的工作电压余量,从而大幅度降低电路功耗,地提高电路的能效。
Description
技术领域
本发明涉及一种面向CPU流水线的错误恢复电路,具体涉及一种基于片上错误监测,面向CPU流水线应用并根据监测结果可切换的错误恢复电路,属于集成电路设计领域。
背景技术
随着晶体管尺寸的不断缩小,单位面积上集成的晶体管数急剧增加,集成电路的功耗问题成为和功能、面积同等重要的考虑因素。旨在降低电路功耗的动态电压频率调节(DVFS)技术,因其显著地效果,逐渐成为重要的低功耗技术。
动态电压频率调节依赖于对主电路工作状态和性能的监测。***级监测手段主要是传感器,这种方法能一定程度地反映***当前工作情况,但是片外监测往往依赖于传感器的精度,且很难选择可靠的监测点,因而难以真实反映芯片内部各部分的实际情况。在芯片内部***关键单元和复制关键路径的方法可以较真实地反映芯片内部全局参数的变化,但由于这些副本与关键单元和路径所处的片内环境并不完全相同,对局部参数,如局部噪声、工艺波动的变化并不敏感,因而它们反映出的也不是电路的真实情况,大大影响了电压调节的效果。
片上监测方法通过在***芯片主电路关键路径的末端***片上监测电路,实时监测电路的工作情况,将工艺偏差、电源电压波动、温度变化、噪声等因素的影响归结为关键路径上的片上监测电路延时特性的变化。当电压降低到电路会出现错误的临界电压以下时,片内逻辑就会出现时序违规,这些时序违规被片上监测电路监测,就会产生相应的错误信号,作为工作电压调节模块的调节依据。片上监测的方法可以实时监测主电路在工作时的出错水平,反映全局和局部扰动对电路的真实影响,同时通过引入错误纠正机制,可进一步释放主电路设计阶段为克服工艺偏差、工作电压波动、温度变化、环境噪声等不利影响预留的电压余量,对工作电压进行动态的调节,从而使功耗达到最优。
基于片上监测的动态电压频率调节技术,将电路的工作条件,如温度、工艺、噪声等的变化归结为电路的时序变化,通过片上监测手段实时监测电路工作的时序变化,指导电路动态地调节工作参数。只有找到满足***性能的最低工作电压点,才能尽可能地减小电路设计时为最坏情况(Worst Case)预留的电压或频率余量,以获得最大的功耗收益。
在动态地寻找***工作任意时刻的最低电压点时,会让***产生出错的风险,因此必须设置一定的错误恢复机制,在***出错时,可以帮助其从错误状态中恢复过来。国内外实现这种错误恢复的方式主要有两种:原地错误恢复方式和上层错误恢复方式。
原地错误恢复方式是在电路的片上监测单元监测到时序错误后,使用门控时钟的方法,将电路的时钟信号暂停一个周期,在此期间用正确的信号取代错误信号输出。在同一个周期中流水线各级产生的错误都可以在暂停的一个时钟周期内被恢复,但是对于不同周期中产生的错误必须分别在出错后立即暂停时钟信号进行恢复。这种错误恢复方式的片上监测单元结构复杂,监测单元本身的功耗较高;且对于工作电压、频率以及温度等工作条件使电路频繁出错时,对每个出错的时钟周期,CPU时钟都要暂停一个周期等待错误信号的恢复,因此恢复时的代价较高,极大影响了***的吞吐率且降低功耗效果不显著。
上层错误恢复方式多用于流水线结构的设计中,也须借助于片上监测单元,与原地恢复不同的是,这种恢复方式将所有同一个周期中产生的错误都归结为一个错误,而且在片上监测单元监测到时序错误后,并不立即进行改错,而是等待流水线中没有出错的各级操作执行完成,即等待出错的那一级操作随流水线执行至最后一级之前,然后通过重新执行出错的指令来恢复错误。在重新执行出错的指令时,该指令后面的指令也在重新执行,因此上层恢复方式可以通过一次恢复操作完成对一个流水线周期(指填充满流水线所要花费的周期数,为N个周期,N为流水线级数)中所有错误的恢复。这种恢复方式进行一次恢复要耗费N个周期,当***错误率很高,同一个流水线周期中有多个错误产生时,这些错误都可以通过一次上层恢复而得到恢复。因此在***错误率较高时,上层错误恢复方式对***吞吐率的影响更小,降低功耗的效果更好;但是当***错误率较低时,恢复时的代价较高,降低功耗效果不明显。
目前动态电压频率调节电路的恢复方式只是单一地使用上面两种方式中的一种,但是其***应用具有较大的局限性,对于需要在比较宽的频率范围内工作的应用,错误率的变化较大,单一的错误恢复方式很难使***的吞吐率和功耗达到最优化。
发明内容
发明目的:本发明的目的在于针对现有片上监测***中错误恢复方式的局限性,提供一种面向CPU流水线的错误恢复电路,可以在片上监测电路监测到电路时序错误后,根据电路的***需求和工作状态动态地选择***的错误恢复方式,能够在原地错误恢复方式和上层错误恢复方式两种错误恢复方式间灵活切换。
技术方案:本发明所述的面向CPU流水线的错误恢复电路,包括片上监测电路、错误信号统计模块、电压频率控制模块、错误恢复控制模块、原地错误恢复模块和上层错误恢复模块。
所述片上监测电路集成在具有N级流水线结构的CPU内核的前N-1级流水线的各级流水线末端,监测工作电路每个时钟周期的时序信息,其中N是大于等于3且小于20的正整数;所述片上监测电路将监测到的错误信号送入所述错误信号统计模块。
所述错误信号统计模块统计一段时钟周期内错误信号数量占总的周期数的百分比,即为错误率Rerror。
所述电压频率控制模块控制***工作电压与频率的升高和降低,同时控制调节的精度,所述电压频率控制模块和所述错误统计模块分别将***状态和错误率Rerror送入所述错误恢复控制模块;所述电压频率控制模块根据所述错误恢复控制模块中的相应控制信号进行***工作电压与频率的调节。
所述错误恢复控制模块中有设定好的比较阈值Tthreshold,并根据阈值比较选择机制的结果,确定将原地错误恢复方式选择信号输入到原地错误恢复模块或将上层错误恢复方式选择信号输入到上层错误恢复模块,动态选择原地错误恢复方式或上层错误恢复方式,并将电压频率调节信号送到所述电压频率控制模块,指导***状态的调节,实现两种不同错误恢复方式的动态切换。
所述片上监测电路中包括主锁存器电路、从锁存器电路、影子锁存器电路、错误信号产生电路、原地错误纠正选择器、亚稳态监测电路和错误信号整合电路;通过在时钟上升沿和下降沿分别对输入信号采样,将采样结果对比,判断电路是否出现时序违规,同时实现原地错误恢复时的数据替换功能。其中主锁存器电路与影子锁存器电路的输入端与片上监测电路的数据输入端相连;主锁存器电路的原地待恢复数据信号与影子锁存器电路的原地恢复数据信号连接到原地错误纠正选择器输入端,原地错误恢复控制信号输入端连接到原地错误纠正选择器的另一个输入端;原地错误纠正选择器的原地恢复数据输出信号连接到从锁存器电路;从锁存器电路的输出信号分别连接到数据输出端、亚稳态监测电路输入端、错误信号产生电路输入端;影子锁存器电路的延迟采样数据输出信号连接到错误信号产生电路的另一个输入端;错误信号产生电路产生时序监测错误信号输入到错误信号整合电路输入端;亚稳态监测电路产生的亚稳态监测错误信号输入到错误信号整合电路的另一个输入端;错误信号整合电路的输出为上监测电路的错误信号输出端。
所述片上监测电路包括两个输入端口和两个输出端口,分别为数据输入端、原地错误恢复控制信号输入端、数据输出端和错误信号输出端。数据输入端与片上监测电路所***位置的前一级流水线的数据信号输出端相连;原地错误恢复控制信号输入端与原地错误恢复模块的原地错误恢复控制信号输出端相连;数据输出端与片上监测电路所***位置的后一级流水线的数据信号输入端相连;错误信号输出端与一个错误信号传递整合电路输入端相连。错误信号传递整合电路由N-1个寄存器与N-2个两输入或门交替连接组成,用于将流水线各级产生的错误信号随指令向后级传递并最终整合为一个错误信号;两输入或门的一个输入端连接寄存器输出端,另一个输入端与片上监测电路的错误信号输出端相连。
所述错误信号统计模块包括两个计数器,分别计算CPU工作的周期数和错误信号的数量。
所述错误恢复控制模块具有三个输入端及三个输出端,分别为错误率输入端、***状态输入端、比较阈值输入端以及电压频率调节信号输出端、原地错误恢复方式选择信号输出端、上层错误恢复方式选择信号输出端;其中,错误率输入端、***状态输入端、比较阈值输入端分别连接到一个8位寄存器输入端,错误率输入端连接到寄存器一,***状态输入端连接到寄存器二,比较阈值输入端连接到寄存器三;寄存器一和寄存器二的输出端分别连接到一个8位加法器的数据输入端,加法器的进位输入端置0;加法器的和输出端连接到一个比较器的数据输入端,寄存器三的输出端连接到比较器的另一个数据输入端;比较器的另外三个输入端置0;比较器的大于和等于输出端连接到一个或门,或门的输出连接到一个多路选择器MUX1的选择端;比较器小于输出端连接到另一个多路选择器MUX2;多路选择器MUX1和多路选择器MUX2的“1”端接高电平,“0”端接低电平;多路选择器MUX1的输出信号为原地错误恢复方式选择信号,多路选择器MUX2的输出信号为上层错误恢复方式选择信号;错误率输入端、***状态输入端、原地错误恢复方式选择信号以及上层错误恢复方式选择信号同时还连接到一个状态机,状态机的输出为电压频率调节信号。
所述错误恢复控制模块在错误恢复时产生相应的电压频率控制信号输入到所述电压频率控制模块,电压频率控制信号中包含时钟控制信号和电压控制信号,时钟控制信号通过调节时钟频率和相位来配合指令的重新执行或数据的原地替换,电压控制信号通过调节***的工作电压来配合指令的重新执行或数据的原地替换,时钟控制信号和电压控制信号相互配合,***没有时序错误时,升高频率或者降低电压,***出现错误信号时,降低频率的同时升高电压,达到恢复***时序错误同时使***在较低功耗条件下正常工作的目的。
所述阈值比较选择机制是比较比较参数Tref和比较阈值Tthreshold的大小,比较参数Tref由公式Tref=Rerror+Vtemp/Vmax+Ftemp/Fmax得到。比较阈值是选择的界限值,比较参数Tref包括三个数值的算术和(注:对三个重要影响因子拟合,形成综合的影响结果),分别为错误率、工作电压比和工作频率比。其中,错误率即为错误信号统计模块统计的***一定时钟周期内的错误率,工作电压比是电路的当前工作电压与电路的最大工作电压的比值,工作频率比是电路的当前工作频率与电路的最大工作频率的比值。
所述阈值比较选择机制通过以下过程建立:
首先,找出比较阈值。在电路的设计阶段,根据电路电源管理模块的调节方式,计算一定调节步长下电路的各工作点的错误率、工作电压比和工作频率比的算术和,即为比较参数,并分别采用上层错误恢复方式和原地错误恢复方式进行错误恢复,得到两种错误恢复方式下的功耗收益。找出上层错误恢复方式功耗收益大于原地错误恢复方式功耗收益的工作点,在此工作点下的比较参数即为比较阈值。设定比较阈值,通过可编程的方式将找出的比较阈值设定到错误恢复控制模块中,作为选择错误恢复方式的比较标准。
其次,选择错误恢复方式。通过可编程方式将比较阈值Tthreshold设定到错误恢复控制模块中,错误恢复控制模块通过将比较参数与既定的比较阈值比较,如果比较参数大于等于比较阈值则选择上层错误恢复方式,如果比较参数小于比较阈值则选择原地错误恢复方式。当比较参数Tref超过比较阈值Tthreshold时,上层错误恢复方式的功耗收益较高。当比较参数Tref小于比较阈值Tthreshold时,原地错误恢复方式的功耗收益较高。同时错误恢复控制模块会根据相应的错误恢复方式产生相应的电压频率控制信号,电压频率控制模块调节***工作电压与频率到相应的值,达到功耗最优的效果。
本发明与现有技术相比,其有益效果是:
1、本发明提供了对具有N级流水线的CPU内核的在线时序监测,寻找电路的最低可能工作电压,减小在设计阶段为电路预留的工作电压余量,从而大幅度降低电路功耗,地提高电路的能效。
2、本发明提供了两种不同的错误恢复方法,一种是原地错误恢复方式,另一种是上层错误恢复方式,从而可以根据电路的***需求和工作状态灵活的选择***的错误恢复方式,并动态的在两种恢复方法中切换。当电路工作在比较宽的工作频率范围时,本发明比单一的原地错误恢复或者上层错误恢复方式适用于更多的应用场合,吞吐率更高,功耗降低的收益更高,克服了上层错误恢复方式适用范围小的局限,解决了单一的错误恢复方式在比较宽的工作频率范围内的***应用场合局限、吞吐率低和功耗收益不理想的问题。
3、本发明设置了阈值比较选择机制,用于在两种恢复方式中的切换选择。比较阈值是选择的界限值,将三个重要影响因素进行综合考虑,即综合错误率、工作电压比和工作频率比三者的影响,折算成最终的切换阈值。这样可以综合考虑电路的工作状态,从而更好的判断电路进行何种错误恢复方式才能达到最佳的低功耗效果。
附图说明
图1为本发明的结构框图;
图2为本发明中错误恢复电路的结构框图;
图3为本发明中错误恢复控制模块的电路图;
图4为本发明中片上监测电路的结构框图;
图5为本发明阈值比较选择机制建立的流程图;
图6为比较参数Tref的函数曲线图(注:其中,横坐标为错误率,纵坐标为比较参数);
图7为恢复效率Erecovery(包括原地错误恢复效率Erecovery_local和上层错误恢复效率Erecovery_global)对比较参数Tref的函数曲线图(注:其中,横坐标为比较参数,纵坐标为恢复效率)。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
实施例1:如图1所示,本发明面向CPU流水线的错误恢复电路,包括片上监测电路1、错误信号统计模块2、电压频率控制模块3、错误恢复控制模块4、原地错误恢复模块5和上层错误恢复模块6,片上监测电路1集成在具有N级流水线结构的CPU内核的前N-1级流水线的各级流水线末端(其中N是大于3且小于20的正整数),监测工作电路每个时钟周期的时序信息,生成错误信号;而对于没有添加片上监测单元的第N级流水线,需在设计时保证其时序的宽松,使其不易出错。
错误恢复电路的具体组成结构如图2所示,片上监测电路1将监测到的错误信号送到错误信号统计模块2,错误信号统计模块2统计一定时钟周期内监测到的错误率,包括两个计数器,分别计算CPU工作周期数和错误信号的数量;错误信号统计模块2统计的错误率和电压频率控制模块3的***状态(工作电压和工作频率)送到错误恢复控制模块4,电压频率控制模块3根据错误恢复控制模块4中的相应控制信号进行***工作电压与频率的调节,同时控制调节的精度。错误恢复控制模块4中有设定好的比较阈值Tthreshold,并根据阈值比较选择机制的结果选择将原地错误恢复方式选择信号送到原地错误恢复模块5或将上层错误恢复方式选择信号送到上层错误恢复模块6。同时,错误恢复控制模块4将***的电压频率调节信号送到电压频率控制模块3中,以实现***工作状态的动态调节。
片上监测电路1结构如图4所示,包括主锁存器电路,从锁存器电路,影子锁存器电路,错误信号产生电路,原地错误纠正选择器,亚稳态监测电路,错误信号整合电路,通过在时钟上升沿和下降沿分别对输入信号采样,将采样结果对比,判断电路是否出现时序违规,同时实现原地错误恢复时的数据替换功能。片上监测电路1包括两个输入端口和两个输出端口,分别为数据输入端、原地错误恢复控制信号输入端、数据输出端和错误信号输出端。其中主锁存器电路与影子锁存器电路的输入端与片上监测电路的数据输入端相连;主锁存器电路的原地待恢复数据信号与影子锁存器电路的原地恢复数据信号连接到原地错误纠正选择器输入端,原地错误恢复控制信号输入端连接到原地错误纠正选择器的另一个输入端;原地错误纠正选择器的原地恢复数据输出信号连接到从锁存器电路;从锁存器电路的输出信号分别连接到数据输出端、亚稳态监测电路输入端、错误信号产生电路输入端;影子锁存器电路的延迟采样数据输出信号连接到错误信号产生电路的另一个输入端;错误信号产生电路产生时序监测错误信号输入到错误信号整合电路输入端;亚稳态监测电路产生的亚稳态监测错误信号输入到错误信号整合电路的另一个输入端;错误信号整合电路的输出为上监测电路的错误信号输出端。
片上监测电路在流水线中的连接方式如图1所示,数据输入端与片上监测电路所***位置的前一级流水线的数据信号输出端相连;原地错误恢复控制信号输入端与原地错误恢复模块的原地错误恢复控制信号输出端相连;数据输出端与片上监测电路所***位置的后一级流水线的数据信号输入端相连;错误信号输出端与一个错误信号传递整合电路输入端相连。错误信号传递整合电路由N-1个寄存器与N-2个两输入或门交替连接组成,用于将流水线各级产生的错误信号随指令向后级传递并最终整合为一个错误信号;两输入或门的一个输入端连接寄存器输出端,另一个输入端与片上监测电路的错误信号输出端相连。
错误恢复控制模块的电路图如图3所示,具有三个输入端及三个输出端,分别为错误率输入端、***状态输入端、比较阈值输入端以及电压频率调节信号输出端、原地错误恢复方式选择信号输出端、上层错误恢复方式选择信号输出端。其中,错误率输入端、***状态输入端、比较阈值输入端分别连接到一个8位寄存器输入端,错误率输入端连接到寄存器一,***状态输入端连接到寄存器二,比较阈值输入端连接到寄存器三;寄存器一和寄存器二的输出端分别连接到一个8位加法器的数据输入端,加法器的进位输入端置0;加法器的和输出端连接到一个比较器的数据输入端,寄存器三的输出端连接到比较器的另一个数据输入端;比较器的另外三个输入端置0;比较器的大于和等于输出端连接到一个或门,或门的输出连接到一个多路选择器(MUX1)的选择端;比较器小于输出端连接到另一个多路选择器(MUX2);MUX1和MUX2的“1”端接高电平,“0”端接低电平;MUX1的输出信号为原地错误恢复方式选择信号,MUX2的输出信号为上层错误恢复方式选择信号;错误率输入端、***状态输入端、原地错误恢复方式选择信号以及上层错误恢复方式选择信号同时还连接到一个状态机,状态机的输出为电压频率调节信号。
错误恢复选择模块4包含阈值比较选择机制,并且生成电压频率调节信号来指导电压频率控制模块3对***工作状态动态调节;错误恢复控制模块4在错误恢复时会产生相应的电压频率调节信号输入到电压频率控制模块,电压频率控制信号中包含时钟控制信号和电压控制信号,时钟控制信号通过调节时钟频率和相位来配合指令的重新执行或数据的原地替换,电压控制信号通过调节***的工作电压来配合指令的重新执行或数据的原地替换,时钟控制信号和电压控制信号相互配合,***没有时序错误时,升高频率的同时降低电压,***出现错误信号时,降低频率的同时升高电压,达到恢复***时序错误同时较低功耗条件下正常工作的目的。
当选择原地错误恢复方式时,电压频率控制模块3会将时钟门控信号送到原地错误恢复模块5,把相关电路的时钟信号停一拍,原地错误恢复模块5将原地错误恢复控制信号送到片上监测电路1,完成正确信号对错误信号的原地替换。当选择上层错误恢复方式时,上层错误恢复模块6将流水线刷新信号送到流水线相关电路模块,并配合其他控制模块完成上层错误恢复。
如图5所示,错误恢复控制模块4中的阈值比较选择机制通过以下过程建立:
首先,找出比较阈值Tthreshold。在电路的设计阶段,假设电路的动态电压调节的步长为Vstep,电路的动态频率调节的步长为Fstep,电路的动态电压调节的最小工作电压为Vmin,最大工作电压为Vmax,电路的动态频率调节的最小工作频率为Fmin,最大工作频率为Fmax。电路动态调节的工作点分别为Vmin+n*Vstep或Fmin+k*Fstep,其中,0≤n≤(Vmax-Vmin)/Vstep,0≤k≤(Fmax-Fmin)/Fstep,且n,k均为整数。比较阈值Tthreshold包括错误率Rerror、工作电压比Vtemp/Vmax和工作频率比Ftemp/Fmax,其中,电路的当前工作电压Vtemp=Vmin+i*Vstep,电路的当前工作频率Ftemp=Fmin+j*Fstep,0≤i≤(Vmax-Vmin)/Vstep,0≤j≤(Fmax-Fmin)/Fstep,且i,j均为整数。在电路动态调节的各工作点分别计算比较参数Tref=Rerror+Vtemp/Vmax+Ftemp/Fmax的值。由于错误率Rerror与工作电压比Vtemp/Vmax成反比关系,与工作频率比Ftemp/Fmax成正比关系,公式Tref=Rerror+Vtemp/Vmax+Ftemp/Fmax可改写为Tref=Rerror+m/Rerror+n*Rerror,其中,m,n为大于0的常数,所以Tref对于错误率Rerror的函数曲线在第一象限内具有最低点,如图6所示。在电路设计阶段,电路工作在不同的工作点时,分别在每一个工作点上使用上层错误恢复方式和原地错误恢复方式去恢复电路工作状态,同时测量使用这两种恢复方式时的恢复效率,其中原地错误恢复效率为Erecovery_local,上层错误恢复效率为Erecovery_global。得到恢复效率Erecovery(分别为原地错误恢复效率Erecovery_local和上层错误恢复效率Erecovery_global)与比较参数Tref的关系曲线,恢复效率Erecovery与比较参数Tref成线性关系,如图7所示。当比较参数Tref超过某一个值时,上层错误恢复方式的功耗收益较高。当Tref小于这个数值时,原地错误恢复方式的功耗收益较高。这个值即为比较阈值Tthreshold。
选定好比较阈值Tthreshold后,通过可编程的方式将找出的比较阈值Tthreshold设定到错误恢复控制模块4中,作为选择错误恢复方式的比较标准。电路一旦给定,此比较阈值Tthreshold就是固定的,在工作过程中无须更改。
其次,选择错误恢复方式。由于错误信号统计模块2和电源管理模块3每个时钟周期都会更新传递到错误恢复控制模块4的错误率Rerror、工作电压比Vtemp/Vmax和工作频率比Ftemp/Fmax,错误恢复控制模块4每个时钟周期都会计算当前的比较参数Tref的值,并将电路当前工作时的比较参数Tref与既定的比较阈值Tthreshold比较。如果比较参数Tref大于比较阈值Tthreshold,则错误恢复控制模块4将上层错误恢复方式选择信号送到上层恢复方式模块6,选择上层错误恢复方式;如果比较参数Tref小于比较阈值Tthreshold,则错误恢复控制模块4将原地错误恢复方式选择信号送到原地错误恢复模块5,选择原地错误恢复方式。错误恢复控制模块4根据比较阈值Tthreshold选择相应的错误恢复方式,同时会根据相应的错误恢复方式产生相应的电压控制信号和频率控制信号,电源管理模块3调节***工作电压到相应的值,达到功耗最优的效果。
本发明根据电路的错误率和***状态,通过和既定的比较阈值进行比较来选择合适的错误恢复方式,取得最大的功耗收益。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上作出各种变化。
Claims (7)
1.一种面向CPU流水线的错误恢复电路,包括片上监测电路(1)、错误信号统计模块(2)、电压频率控制模块(3)、错误恢复控制模块(4)、原地错误恢复模块(5)和上层错误恢复模块(6),其特征在于:
所述片上监测电路(1)集成在具有N级流水线结构的CPU内核的前N-1级流水线的各级流水线末端,监测工作电路每个时钟周期的时序信息,其中N是大于等于3且小于20的正整数;所述片上监测电路(1)将监测到的错误信号送入所述错误信号统计模块(2);
所述错误信号统计模块(2)统计一段时钟周期内错误信号数量占总的周期数的百分比,即为错误率Rerror;
所述电压频率控制模块(3)控制***工作电压与频率的升高和降低,同时控制调节的精度,所述电压频率控制模块(3)和所述错误统计模块(2)分别将***状态和错误率Rerror送入所述错误恢复控制模块(4);所述电压频率控制模块(3)根据所述错误恢复控制模块(4)中的相应控制信号进行***工作电压与频率的调节;
所述错误恢复控制模块(4)中有设定好的比较阈值Tthreshold,并根据阈值比较选择机制的结果,确定将原地错误恢复方式选择信号输入到原地错误恢复模块(5)或将上层错误恢复方式选择信号输入到上层错误恢复模块(6),动态选择原地错误恢复方式或上层错误恢复方式,并将电压频率调节信号送到所述电压频率控制模块(3),指导***状态的调节,实现两种不同错误恢复方式的动态切换。
2.根据权利要求1所述的面向CPU流水线的错误恢复电路,其特征在于:所述片上监测电路(1)包括主锁存器电路、从锁存器电路、影子锁存器电路、错误信号产生电路、原地错误纠正选择器、亚稳态监测电路和错误信号整合电路;通过在时钟上升沿和下降沿分别对输入信号采样,将采样结果对比,判断电路是否出现时序违规,同时实现原地错误恢复时的数据替换功能;其中主锁存器电路与影子锁存器电路的输入端与片上监测电路的数据输入端相连;主锁存器电路的原地待恢复数据信号与影子锁存器电路的原地恢复数据信号连接到原地错误纠正选择器输入端,原地错误恢复控制信号输入端连接到原地错误纠正选择器的另一个输入端;原地错误纠正选择器的原地恢复数据输出信号连接到从锁存器电路;从锁存器电路的输出信号分别连接到数据输出端、亚稳态监测电路输入端、错误信号产生电路输入端;影子锁存器电路的延迟采样数据输出信号连接到错误信号产生电路的另一个输入端;错误信号产生电路产生时序监测错误信号输入到错误信号整合电路输入端;亚稳态监测电路产生的亚稳态监测错误信号输入到错误信号整合电路的另一个输入端;错误信号整合电路的输出为上监测电路的错误信号输出端。
3.根据权利要求2所述的面向CPU流水线的错误恢复电路,其特征在于:所述片上监测电路(1)包括两个输入端口和两个输出端口,分别为数据输入端、原地错误恢复控制信号输入端、数据输出端和错误信号输出端;数据输入端与片上监测电路所***位置的前一级流水线的数据信号输出端相连;原地错误恢复控制信号输入端与原地错误恢复模块的原地错误恢复控制信号输出端相连;数据输出端与片上监测电路所***位置的后一级流水线的数据信号输入端相连;错误信号输出端与一个错误信号传递整合电路输入端相连;错误信号传递整合电路由N-1个寄存器与N-2个两输入或门交替连接组成,用于将流水线各级产生的错误信号随指令向后级传递并最终整合为一个错误信号;两输入或门的一个输入端连接寄存器输出端,另一个输入端与片上监测电路的错误信号输出端相连。
4.根据权利要求1所述的面向CPU流水线的错误恢复电路,其特征在于:所述错误信号统计模块(2)包括两个计数器,分别计算CPU工作的周期数和错误信号的数量。
5.根据权利要求1所述的面向CPU流水线的错误恢复电路,其特征在于:所述错误恢复控制模块(4)具有三个输入端及三个输出端,分别为错误率输入端、***状态输入端、比较阈值输入端以及电压频率调节信号输出端、原地错误恢复方式选择信号输出端、上层错误恢复方式选择信号输出端;其中,错误率输入端、***状态输入端、比较阈值输入端分别连接到一个8位寄存器输入端,错误率输入端连接到寄存器一,***状态输入端连接到寄存器二,比较阈值输入端连接到寄存器三;
寄存器一和寄存器二的输出端分别连接到一个8位加法器的数据输入端,加法器的进位输入端置0;加法器的和输出端连接到一个比较器的数据输入端,寄存器三的输出端连接到比较器的另一个数据输入端;比较器的另外三个输入端置0;比较器的大于和等于输出端连接到一个或门,或门的输出连接到一个多路选择器(MUX1)的选择端;比较器小于输出端连接到另一个多路选择器(MUX2);多路选择器(MUX1)和多路选择器(MUX2)的“1”端接高电平,“0”端接低电平;多路选择器(MUX1)的输出信号为原地错误恢复方式选择信号,多路选择器(MUX2)的输出信号为上层错误恢复方式选择信号;错误率输入端、***状态输入端、原地错误恢复方式选择信号以及上层错误恢复方式选择信号同时还连接到一个状态机,状态机的输出为电压频率调节信号。
6.根据权利要求1所述的面向CPU流水线的错误恢复电路,其特征在于:所述错误恢复控制模块(4)在错误恢复时产生相应的电压频率控制信号输入到所述电压频率控制模块(3),电压频率控制信号中包含时钟控制信号和电压控制信号,时钟控制信号通过调节时钟频率和相位来配合指令的重新执行或数据的原地替换,电压控制信号通过调节***的工作电压来配合指令的重新执行或数据的原地替换,时钟控制信号和电压控制信号相互配合,***没有时序错误时,升高频率或者降低电压,***出现错误信号时,降低频率的同时升高电压,达到恢复***时序错误同时使***在较低功耗条件下正常工作的目的。
7.根据权利要求1所述的面向CPU流水线的错误恢复电路,其特征在于:所述阈值比较选择机制是比较比较参数Tref和比较阈值Tthreshold的大小,比较参数Tref由公式Tref=Rerror+Vtemp/Vmax+Ftemp/Fmax得到。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210574735.6A CN103019876B (zh) | 2012-12-26 | 2012-12-26 | 一种面向cpu流水线的错误恢复电路 |
US14/442,071 US9600382B2 (en) | 2012-09-03 | 2013-08-30 | Error recovery circuit oriented to CPU pipeline |
PCT/CN2013/082643 WO2014032610A1 (zh) | 2012-09-03 | 2013-08-30 | 一种面向cpu流水线的错误恢复电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210574735.6A CN103019876B (zh) | 2012-12-26 | 2012-12-26 | 一种面向cpu流水线的错误恢复电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019876A true CN103019876A (zh) | 2013-04-03 |
CN103019876B CN103019876B (zh) | 2015-07-01 |
Family
ID=47968506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210574735.6A Active CN103019876B (zh) | 2012-09-03 | 2012-12-26 | 一种面向cpu流水线的错误恢复电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019876B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014032610A1 (zh) * | 2012-09-03 | 2014-03-06 | 东南大学 | 一种面向cpu流水线的错误恢复电路 |
WO2015118376A1 (en) * | 2014-02-10 | 2015-08-13 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
CN105739948A (zh) * | 2014-12-12 | 2016-07-06 | 超威半导体(上海)有限公司 | 自适应可调节的流水线以及适应性地调节流水线的方法 |
US9389863B2 (en) | 2014-02-10 | 2016-07-12 | Via Alliance Semiconductor Co., Ltd. | Processor that performs approximate computing instructions |
US9606605B2 (en) | 2014-03-07 | 2017-03-28 | Apple Inc. | Dynamic voltage margin recovery |
CN106855838A (zh) * | 2016-12-29 | 2017-06-16 | 杭州嘉楠耘智信息科技有限公司 | 一种工作频率调整方法、装置及*** |
CN108170257A (zh) * | 2018-03-21 | 2018-06-15 | 苏州芯算力智能科技有限公司 | 一种动态电压调整***及调整方法 |
US10235232B2 (en) | 2014-02-10 | 2019-03-19 | Via Alliance Semiconductor Co., Ltd | Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761946A (zh) * | 2003-03-20 | 2006-04-19 | Arm有限公司 | 集成电路处理级内的错误检测和恢复 |
US20090315601A1 (en) * | 2006-08-03 | 2009-12-24 | Freescale Semiconductor, Inc. | Device and method for timing error management |
CN102063144A (zh) * | 2010-11-17 | 2011-05-18 | 东南大学 | 一种面向低功耗应用的动态电压调节***及实现方法 |
CN102339120A (zh) * | 2010-07-16 | 2012-02-01 | 财团法人工业技术研究院 | 性能调整装置、方法以及具有性能调整装置的处理器 |
CN102411395A (zh) * | 2011-08-08 | 2012-04-11 | 东南大学 | 一种基于片上监测和电压预测的动态电压调节*** |
CN102520754A (zh) * | 2011-12-28 | 2012-06-27 | 东南大学 | 一种面向动态电压调节***的片上监测电路 |
-
2012
- 2012-12-26 CN CN201210574735.6A patent/CN103019876B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761946A (zh) * | 2003-03-20 | 2006-04-19 | Arm有限公司 | 集成电路处理级内的错误检测和恢复 |
US20090315601A1 (en) * | 2006-08-03 | 2009-12-24 | Freescale Semiconductor, Inc. | Device and method for timing error management |
CN102339120A (zh) * | 2010-07-16 | 2012-02-01 | 财团法人工业技术研究院 | 性能调整装置、方法以及具有性能调整装置的处理器 |
CN102063144A (zh) * | 2010-11-17 | 2011-05-18 | 东南大学 | 一种面向低功耗应用的动态电压调节***及实现方法 |
CN102411395A (zh) * | 2011-08-08 | 2012-04-11 | 东南大学 | 一种基于片上监测和电压预测的动态电压调节*** |
CN102520754A (zh) * | 2011-12-28 | 2012-06-27 | 东南大学 | 一种面向动态电压调节***的片上监测电路 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014032610A1 (zh) * | 2012-09-03 | 2014-03-06 | 东南大学 | 一种面向cpu流水线的错误恢复电路 |
US9600382B2 (en) | 2012-09-03 | 2017-03-21 | Southeast University | Error recovery circuit oriented to CPU pipeline |
US9389863B2 (en) | 2014-02-10 | 2016-07-12 | Via Alliance Semiconductor Co., Ltd. | Processor that performs approximate computing instructions |
CN105793825A (zh) * | 2014-02-10 | 2016-07-20 | 上海兆芯集成电路有限公司 | 可从过多的近似计算误差中恢复的处理器 |
US9588845B2 (en) | 2014-02-10 | 2017-03-07 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
WO2015118376A1 (en) * | 2014-02-10 | 2015-08-13 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
CN105793825B (zh) * | 2014-02-10 | 2019-02-12 | 上海兆芯集成电路有限公司 | 可从过多的近似计算误差中恢复的处理器 |
US10235232B2 (en) | 2014-02-10 | 2019-03-19 | Via Alliance Semiconductor Co., Ltd | Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction |
US9606605B2 (en) | 2014-03-07 | 2017-03-28 | Apple Inc. | Dynamic voltage margin recovery |
US10101788B2 (en) | 2014-03-07 | 2018-10-16 | Apple Inc. | Dynamic voltage margin recovery |
US10955893B2 (en) | 2014-03-07 | 2021-03-23 | Apple Inc. | Dynamic voltage margin recovery |
US11740676B2 (en) | 2014-03-07 | 2023-08-29 | Apple Inc. | Dynamic voltage margin recovery |
CN105739948A (zh) * | 2014-12-12 | 2016-07-06 | 超威半导体(上海)有限公司 | 自适应可调节的流水线以及适应性地调节流水线的方法 |
CN106855838A (zh) * | 2016-12-29 | 2017-06-16 | 杭州嘉楠耘智信息科技有限公司 | 一种工作频率调整方法、装置及*** |
CN108170257A (zh) * | 2018-03-21 | 2018-06-15 | 苏州芯算力智能科技有限公司 | 一种动态电压调整***及调整方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103019876B (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019876B (zh) | 一种面向cpu流水线的错误恢复电路 | |
US9600382B2 (en) | Error recovery circuit oriented to CPU pipeline | |
CN106873696B (zh) | 一种自适应快速电源电压调节*** | |
CN102130492B (zh) | 电源选择装置和方法 | |
CN105159374A (zh) | 面向超宽电压的在线监测单元及监测窗口自适应调节*** | |
CN102411395A (zh) | 一种基于片上监测和电压预测的动态电压调节*** | |
CN101770273B (zh) | 一种实现服务器多中央处理器***节能的方法和装置 | |
CN102520754B (zh) | 一种面向动态电压调节***的片上监测电路 | |
CN103218029B (zh) | 一种超低功耗处理器流水线结构 | |
JP2011530763A (ja) | 適応型電圧およびスケーリング最適化(adaptivevoltageandscalingoptimization)を使用する集積回路を設計するためのシステムおよび方法 | |
CN102570412A (zh) | 一种直流固态功率控制器 | |
JP2011530763A5 (zh) | ||
EP3365743B1 (en) | Droop detection and regulation for processor tiles | |
CN112947669A (zh) | 一种soc自适应电压调节*** | |
CN105991111A (zh) | 一种时序预测电路及方法 | |
CN104795882A (zh) | 一种ups***节能控制方法及*** | |
CN102509168A (zh) | 一种基于改进整数规划法的pmu最优配置方法 | |
CN101021882A (zh) | 一种降低大规模集成电路漏电功耗的设计方法 | |
CN108564252B (zh) | 一种考虑多功能配电自动化的配电网供电可靠性计算方法 | |
Wirnshofer et al. | An energy-efficient supply voltage scheme using in-situ pre-error detection for on-the-fly voltage adaptation to PVT variations | |
CN202433800U (zh) | 一种面向动态电压调节***的片上监测电路 | |
US7898285B2 (en) | Optimal local supply voltage determination circuit | |
CN103678017B (zh) | 一种基于片上监测的可切换错误恢复方法 | |
CN111047033B (zh) | 一种面向宽电压的在线时序检错纠错电路 | |
Thonnart et al. | Power reduction of asynchronous logic circuits using activity detection |
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 |