检测处理器资源的架构易损性的制作方法

文档序号:6578412阅读:169来源:国知局
专利名称:检测处理器资源的架构易损性的制作方法
技术领域
本发明涉及检测处理器资源的架构易损性。
背景技术
对处理器设计者来说,主要由中子粒子引起的辐射引发的软错误已 成为一个主要的问题。由于这类错误不反映设备的永久故障,它被称为
软错误或瞬时错误。这些来自瞬时错误的比特混乱(bit upset)是来自 凸点(bump)和封装材料的阿尔法粒子引起的那些比特混乱的附加。预 期在未来几代的芯片中,单个芯片上晶体管数量的指数级增加以及激进 的电压定标将使这个问题更显著恶化。
为了解决宇宙射线侵袭, 一些方法试图使用某种形式的错误检测(例 如奇偶校验)来保护处理器或其他半导体设备中全部锁存器中的一大部 分。类似地,高性能微处理器中的诸如高速緩存和寄存器文件的绝大多 数主要阵列具有某种形式的错误检测和恢复。在随后的未来几代处理器 中,随着更多的晶体管添加到单个芯片,维护相同级别的可靠性甚至变 得更具有挑战性。
通过时间中的故障(FIT)来测量可靠性,其中一个FIT表示一个十 亿小时的操作内的一个故障。FIT有三个主要的分量电路的固有错误率, 它是制造过程和定时方案的函数;微处理器中的比特数,它是设计参数; 以及架构易损性因子(architectural vulnerability factor, AVF ),它 是导致用户可见错误的比特翻转的概率。用户可见错误定义为到达微处 理器的引脚并逃逸到主存储器或输入/输出(I/O)设备的任何比特损坏。 在FIT的这三个分量中,AVF是唯一能随时间显著改变的分量。确实,研 究已表明AVF能平均从一个程序到另一个程序非常剧烈地改变(在某些情况下达90%以上)。当在称为时间片(quantum)的小时间段上实时测 量而不是在长时间运行上取平均时,AVF还能在程序中显著改变。
大多数架构和微架构错误检测/恢复机制试图减少微处理器的平均 AVF,从而改进整体可靠性。然而,这种改进的可靠性以功率和性能为代 价。诸如主要用于保护执行单元的残数(residue)和奇偶校验预测的方案 会具有高功率耗费。诸如冗余执行的微架构冗余方案会既有功率耗费又 有性能耗费,这是由于可用于并行计算两个不同指令的执行单元用于冗 余地计算单个指令。由于当前没有可靠的方法在程序执行期间测量实时 AVF,大多数错误緩解方案总是激活的。结果,这种机制的功率和性能耗 费是固定的惩罚。

发明内容
本发明提供一种装置,包括多个计数器,所述多个计数器的每个 为处理器的存储单元维护时间片期间的利用值;第二计数器,对所述时 间片期间由所述处理器的预测单元作出的错误预测的数量进行计数;以 及第一逻辑,至少部分地基于所述利用值和所述错误预测的数量来为所 述处理器的至少第一部分确定对于所述时间片的易损性测量。
本发明还提供一种方法,包括使用处理器度量为处理器的至少一 部分确定对于时间片的量化架构易损性因子(Q-AVF)值;将所述Q-AVF 值与至少一个阈值进行比较;以及基于所述比较动态地控制所述处理器 的至少 一个错误緩解单元。
本发明还提供一种系统,包括具有多个核的多核处理器,其中第 一核包括基于多个处理器度量值检测关于所述第一核的易损性测量的检 测器,以及基于所述易损性测量控制所述第一核的错误緩解单元的控制 器,所述多个处理器度量值的每个与第一时间段期间的核结构的操作相 关联;以及耦合到所述多核处理器的动态随机访问存储器(DRAM)。


7图l是根据本发明一个实施例的方法的流程图。
图2是才艮据本发明一个实施例的处理器的框图。
图3是根据本发明一个实施例的前端Q-AVF检测器的框图。
图4是根据本发明一个实施例的后端Q-AVF检测器的框图。
图5是根据本发明一个实施例的存储器子系统Q-AVF检测器的框图。
图6是根据本发明一个实施例的核Q-AVF检测器的框图。
图7是根据本发明一个实施例的系统的框图。
具体实施例方式
在各种实施例中,量化AVF (Q-AVF)可在处理器执行期间提供架构 易损性的实时指示。这种Q-AVF可与平均AVF显著不同。因为Q-AVF是 架构易损性的实时指示,因此实施例可充分利用这种信息来控制错误緩 解硬件。也就是说,实施例可测量量化AVF度量并基于其测量来确定是 否要使用错误緩解硬件,以及这种使用的程度。例如,可为可接受的易 损性设置一个或多个阈值并当Q-AVF超过给定阈值时激活緩解硬件。这 样,可以动态控制错误硬件,从而当易损性低时节省功率并提高性能, 并且仅当错误易损性实际上很高时才导致这些换取增加可靠性的惩罚。
在诸如冗余多线程(RMT)或双模式冗余(DMR)的错误緩解方案中 可看到这种节省的一些示例。在RMT中,冗余地执^f亍单线程的两个副本, 并在提交之前检验它们的结果。DMR包括在两块分开的硬件(例如两个对 称的执行端口 )上冗余地执行相同的指令,并比较结果。在这两种情况 下,冗余既耗费功率又耗费性能,因为冗余资源在其他情况下能用于并 行执行不同的指令,从而改进性能和整体功率。使用本发明的实施例, 能计算Q-AVF来识别软错误易损性低的时间段,并能使用Q-AVF来动态 地控制这些错误緩解技术的使用,从而节省性能、功率甚至区域,因为 以前用于冗余执行的区域能用于提高性能。
诸如奇偶校验预测或残数的其他错误緩解方案随着每个操作生成特 殊码比特,然后与结果一起来存储这些特殊码比特。当读结果时,为了
8检测错误,重生成码并与所存储的码进行比较。基于确定的Q-AVF,实施 例能控制执行以仅当错误易损性高时才执行这种码生成,从而在程序的 低易损性阶段期间节省执行这些操作的功率耗费。为了使用本发明的实 施例来节省功率,能同样动态地启用或禁用奇偶校验和纠错编码(ECC)。
另一示例中,可提供多个易损性阈值,而不是单个二进制开/关控制。 在此示例中,可基于易损性增加或减少错误緩解。假设两个易损性阈值。 低于第一阈值的任何值被认为是低易损性并且不需检测或校正。第一和 第二阈值之间的任何值被认为是中等易损性并可导致错误检测的执行但 是不校正。高于第二阈值的任何值被认为是高易损性并可导致错误检测 和校正两者的实施。在这种情况下,可使用Q-AVF度量来确定该程序处 于什么级别的易损性。如果Q-AVF是中等(即,在两个阈值之间),则可 在易损的结构上调用奇偶校-险保护。如果Q-AVF升到高级别(即,高于 第二阈值),则改为使用错误校正机制。在这种情况下,通过仅当需要时 引起与需要的程度所匹配的保护方案来优化它们的功率耗费。在未内联 奇偶校验和/或ECC (从而具有性能惩罚)的情况下,也优化了性能。
使用Q-AVF信息来动态控制错误緩解硬件的又一个示例是关于检查 点的。检查点是架构状态的周期性快照,当通过一些错误检测机制检测 到错误时,这些周期性快照用于滚回到已知的"好"操作点。检查点通 常占据一定量的存储器,在大规模多核或多插槽系统中这会变得很显著, 尤其是如果需要多检查点的话。可以使用实施例来确定检查点生成和存 储的频率。当易损性低时,可通过降低检查点生成的频率来节省存储器 和功率。相反,如果易损性高,那么可以提高检查点生成频率。最终, 这既优化功率又优化性能。
在各种实施例中,能实现逼近Q-AVF的不同方式。而且,能够为其 他半导体设备或处理器中的各种架构确定这种Q-AVF度量。在一些实现 中,可以不同规模来分析Q-AVF度量。例如,在一些实现中可使用全核 基础进行Q-AVF测量。备选地或附加地,可以确定并j吏用Q-AVF的并青细 测量来控制错误检测/校正机制。例如,在其他实现中,处理器的不同部分,诸如前端、后端、存储器子系统或处理器的其他这种部分能够具有
在其上执行的独立Q-AVF分析。而且,能够分析这些不同处理器资源的 不同度量来估计Q-AVF。在一个实现中,特定处理器度量的线性函数能用 于为各种结构在不同时间点逼近Q-AVF。
在一个实施例中,可提供一种能够监视具体度量的硬件机制,其来 源于能够逼近处理器的重要部分的Q-AVF和AVF的线性回归分析。可在 硬件中实施线性方程,然而本发明的范围并不限于这点。硬件机制能包 括一组硬件计数器,当激活该机制时,硬件计数器对于设定时间段对给 定的参数计数,本文将设定的时间段称为时间片。在每个时间片结束时, 每个计数器中的值能通过线性函数处理。
具体的线性函数取决于处理器的微架构细节并且当将实际AVF关联 到给定的度量的列表时能通过线性回归分析来得到。在一个实施例中,
或多个线性回归分析。这些分析基于该处理器本身的设计参数,并且如 果那些设计参数改变了,可以更新回归分析从而获得新的函数。在一些 实现中,只要处理器系列中没有出现对架构行为的基础性改变(例如, 仅诸如高速緩存的大小、緩冲区的大小等等的设计参数的不同大小),加 权(即,系数)可改变,但是在其他方面该函数可在多个处理器设计上 保持相同。在各种实施例中,权重(即系数)是可从控制寄存器编程的, 以便改变控制寄存器的缺省值能更新线性函数。
当正确地构造硬件机制时可考虑各种因素。例如,计数器具有有限 容量;因此它们不能计数非常长的时间段而不溢出。如果它们溢出,它 们将会丟失信息。因此,机制在其期间操作的时间片可被设为足够小, 以使得计数器不会溢出,例如,类似于大约一百到大约一千个处理器周 期,当然本发明的范围不局限于此。备选地,可选取时间片的大小以使 得结果的Q-AVF提供特定级别的实时精确度。这种情况下,用于线性方 程度量的计数器应控制大小,使得保证它们在时间片期间不溢出。
线性回归分析能为多个不同程序对于数千万个周期精确地逼近Q-AVF值。基于这种分析,简单处理器度量的线性方程能用于精确估计在 任何给定程序的运行时间期间易损性的实时变化。因此易损性的这种变 化指示在不太易损的阶段可以放松错误恢复机制,从而节省了这些阶段 期间错误緩解的功率/性能耗费。当程序进入高易损性阶段时,错误緩解 机制将激活,从而增加功率消耗并降低性能,但是在真的需要时将Q-AVF 减少到零或某种可接受的低级别。
因此硬件机制对于其中它是激活的每一时间片生成Q-AVF值。如果 这个Q-AVF值超过指定的可接受的值,则错误緩解硬件能动态激活以减 少AVF。如果Q-AVF值降低到特定阈值下,则错误緩解硬件能动态地去激 活。这样,错误緩解硬件仅当实际需要它时才使用,而在其它情况下不 会导致在功率和性能方面的操作耗费。
现在参考图1,示出的是根据本发明的一个实施例的方法的流程图。 如图l所示,方法10可被用于操作Q-AVF检测器并基于来自检测器的信 息动态控制一个或多个错误校正/检测机制。如图1所示,方法10可通 过激活Q-AVF检测器开始。如上所述,Q-AVF4企测器可以是包括一组硬件 计数器和逻辑的机制,逻辑诸如控制逻辑、计算逻辑、比较逻辑等,如 以下特定实现中将讨论的。在一些实现中,检测器使用的计数器的至少 一些可充分利用现有的计数器,例如,处理器的性能监控单元的计数器。
仍参考图1,激活以后,该激活是可选择性地控制的(例如,在程序 控制、用户控制、操作系统控制等等之下),可对于给定时间片确定一个 或多个处理器度量(框20)。例如,处理器度量可相应于在给定时间片期 间利用的不同处理器资源的计数。特定资源和它们的利用信息将在下面 进一步讨论。在给定时间片结束之后,其持续时间可在不同实施例中不 同,使用处理器度量可为处理器的至少一部分确定Q-AVF值(框30)。例 如,如下将进一步讨论的,根据预定函数(例如线性方程)的多个处理 器度量的组合,可用于确定Q-AVF值。可为处理器的个别资源、相应于 处理器的给定单元的这种资源的集合或在整个处理器(例如,核)的基 础上确定一个或多个这种Q-AVF值。接下来,控制传递到框40,在框40可将Q-AVF值和至少一个阈值进 行比较。如上所述,在一些实现中可给出单个阈值,而在另一些实现中 可给出多个阈值。基于这种比较,可动态控制至少一个错误检测/校正机 制(框50)。例如,如果Q-AVF值低于阈值,则可禁用这些机制,而如果 Q-AVF值高于该阈值,则可启用一个或多个这些机制或激活进一步的保护 机制。在一个实施例中,可至少部分地基于Q-AVF值与一个或多个阈值 的比较来由检测器逻辑生成控制信号。在一个实施例中,这种控制信号 可用于动态控制错误緩解硬件。这样,检测器能动态控制对于实现错误 緩解的惩罚。在其他实施例中,检测器逻辑能提供可变控制,这使得可 实现多个设置,而不是仅具有两个设置(即,开或关)。例如,可给出多 冗余或多保护,其中每个保护更多地覆盖处理器,并且还在功率和性能 方面4毛费更多。在这种实施例中,可提供多个控制信号以在保护的不同 级别之间选取。然后控制传递到菱形框60,在菱形框60可确定是否去激 活Q-AVF检测器。如果是,方法10结束,否则控制传递回到框20,如上 所述。虽然在图1的实施例中以这种特定实现示出,但是本发明的范围 并不局限于此。注意在一些实施例中,检测器可在线或离线操作。在线
意味着检测和扭应的错误緩解控弗'何在程序正在运行时执行,而离线意 味着当程序正在运行时可进行处理器度量的计数,并且在随后的时间能
确定Q-AVF,这对于为给定程序确定Q-AVF看上去〗象什么可能是有用的, 使得它可被相应地修改、编译或控制。
可结合各种处理器或其他半导体设备使用实施例。然而,为了讨论 的目的,以下示例性实施例是关于处理器的,诸如包括多个同类或异类 核的多核处理器。现参考图2,示出根据本发明一个实施例的处理器的框 图。如图2所示,处理器100示出单核,然而,应理解此单核可被复制 多次以形成完整的多核处理器。如图2所示,处理器100通常包括三个 部分,即前端(FE) 110、存储器子系统(MS) 和(BE)后端130。 FE IIO主要是循序流水线并包括指令解码队列和指令取单元。BE 130包 括保留站(reservation station)、引退緩冲区、执行单元、寄存器文件和调整数据执行流的其他架构结构。在乱序处理器中,BE 130可以是 乱序调度和执行指令的地方。在诸如Intel Architecture (IA32 )处理 器的特定架构中,FE IIO和BE 130能进一步通过以下事实区分FE 110 主要处理宏操作,这些宏操作是汇编指令,而BE 130处理解码后的微操 作(Hops),这些微操作是具有与宏操作的多对一映射的更简单指令。MS 120包括存储器排序緩沖区(MOB)和各种高速緩存结构。
因此如图2所示,前端110可包括指令高速緩存和取逻辑112以从 更低高速緩存级(例如,存储器子系统120的部分)获得指令信息并临 时存储预期将很快使用或多次使用的指令。可解码指令的一个或多个解 码器113、存储未决指令的指令队列114连同指令解码队列115耦合到指 令高速緩存112。此外,可提供分支预测单元(BPU) 116以预测程序执 行期间要选取的分支,以便与所预测的分支相关的指令可预先获得。如 图2进一步所示,前端110可包括前端Q-AVF片企测器118。如以下进一步 所讨论的,检测器118可为图2所示的各种前端组件(以及可能的其他 这类组件)执行Q-AVF确定。
如图所示,前端110与存储器子系统120通信。子系统120包括高 速緩存122,其可以是l级(Ll)和2级(L2)高速緩存,其中L1高速 緩存可以是数据高速緩存而L2高速緩存是既包括数据又包括指令的统一 高速緩存。为了帮助地址转换,子系统120还包括数据转换后备緩冲区 (DTLB) 124和页未命中处理机(PMH) 126。当对于DTLB 124发生未命中 时,PMH 126帮助从存储器分级的其它级访问所请求的信息。此外,存储 器子系统可包括存储器排序緩沖区(MOB) 128,其可包括存储和加载緩 沖区以存储与未决数据传送指令(例如存储和加载指令)相关的条目。 另外,子系统120包括存储器子系统Q-AVF检测器129。如下进一步所讨 论的,检测器129可为图2所示的各种存储器子系统组件(和可能的其 他这类组件)执行Q-AVF确定。
还耦合到前端110和存储器子系统120是后端130,其可用于乱序处 理指令和为引退来重排序这类指令。从而如图2所示,后端130包括引退排序緩冲区和寄存器文件132、 一个或多个执行单元134,其可包括整 数单元、浮点单元、向量单元等等。另外,后端130可包括保留站136, 其可用于向执行单元134提供指令和操作数。而条目又由分配和重命名 表138提供给保留站136,分配和重命名表138可从前端IIO接收进入的 指令并将他们分配给各种资源,包括执行单元134和寄存器文件132,并 执行有限数量的逻辑寄存器到寄存器文件132中存在的更大数量的物理 寄存器的任何重命名。后端130还包括后端Q-AVF 139。如下进一步所讨 论的,检测器139可为图2所示的各种后端组件(和可能的其他这类组 件)执行Q-AVF确定。如图2进一步所示,还可给出核级Q-AVF检测器 140以处理基于核的Q-AVF确定。
虽然图2的实施例中以该特定实现示出,^f旦是本发明的范围并不局 限于此。例如,在各种实现中Q-AVF可以不同的粒度计算。 一个极端是 每结构基础(其将使Q-AVF控制硬件对于每个结构定制)。另一极端是, Q-AVF可在每核基础上计算,而其它实现介于两者之间。例如,自然联合 成诸如FE、 BE和MS的更大块的聚集的结构能提供用于在处理器的不同 区域上评估Q-AVF的有效方法,同时保持实现硬件的耗费最小。
虽然困2示出处理器100的每个部分可包括其自己的检测器以及该 处理器100还可包括核级4企测器,但应理解所有这些检测器可以不必在 特定实现中给出。例如,在各种实现中,在给定处理器中可出现较小数 量的这种检测器或仅有一个这种检测器。为了便于讨论,将讨论图2所 示的每个检测器的功能性。然而,注意在给定处理器实现中,可出现这 些所述^r测器的^f又一个、其子集或所有。
如上所述,FE 110包括拥有解码的宏操作的指令队列和拥有解码的 微操作的指令解码队列。在一个实施例中,可使用一组最少的基本处理 器度量来计算前端Q-AVF以达到平均95%以内的精确度,最差情况下的精 确度在80°/。以上。在此实施例中,用于FEQ-AVF确定的三个参数是(1) 指令解码队列(IDQ)利用(其可基于每个周期IDQ中有效条目的数量和 时间片大小来确定);引退排序緩沖区(ROB)利用(其可基于每个周期ROB中有效条目的数量和时间片大小来确定);以及时间片期间发生的分 支错误预测的数量。
利用可定义为在时间片期间给定结构内有效条目的平均数量。它本 质上是结构占用率的测量。利用度量通常由某个计数除以某个时间量来 给出。这种情况下,该计数是每个功率周期相加的有效条目的总数量并 且时间量固定为时间片大小。为了简化硬件,可选取时间片大小值为二 的幂。这样,除法运算简化为简单地将计数值移位时间片大小的1og2, 导致整数值作为除法运算的结果。
在一个实施例中,可使用状态机实现此1og2运算,该状态机从最低
到最高比特对时间片值的零的数量计数,直到第一个逻辑一。结果是时 间片值的1og2并且仅当时间片大小变化时此操作才可返回。然后此值可
被存储于某个寄存器中,该寄存器用于所有的利用计算。确保仅有特定 时间片大小值的最高位被写入时间片大小配置寄存器的简单检验将迫使 所有时间片大小值四舍五入到2的最低幂。
现在参考图3,示出根据本发明的一个实施例的前端Q-AVF;f企测器的 框图。如图3所示,检测器200可包括多个计数器,即IDQ指令计数器 210、 R0B指令计数器220和分支错误预测计数器230。这些计数器中每 一个可配置成对于在给定时间片期间发生的给定资源(或分支错误预测) 的利用计^t。时间片长度可存储在时间片大小配置寄存器235中,其可 由处理器控制寄存器设置,例如,在操作系统(OS)控制下。此外,可 给出时间片1og2配置寄存器245以提供时间片1og2值,如上所述。此 时间片1og2值可使用状态机240基于时间片大小配置寄存器235中的值 生成。
如图3进一步所示,耦合架构相关的逻辑260以接收各种输入,其 可适于执行基于处理器度量信息的架构相关的线性方程。具体来说,逻 辑260接收分支错误预测计数器230的输出,以及一对移位器(bit shifter) 250和255的输出,每个移位器适于^是供利用的测量,即ROB 利用和IDQ利用。基于向逻辑260提供的信息,逻辑260可生成Q-AVF
15值,该Q-AVF值可存储于寄存器265中。可为每个时间片确定此Q-AVF 值。
注意逻辑260可实现考虑了各种向其提供的输入数据的线性方程。 在一个实施例中,该线性方程可以如下表述
FE Q-AVF = -6. 94888841+2. 13964287 (X)+0. 00000984 (Y)—0. 00025137 (Z) [方程1] 其中
X=IDQ利用,
Y=ROB利用,
Z-分支错误预测的数量。 注意这些系数可以是非常小的浮点数。然而,可通过向所有值填充足够 多的零(或乘以10的大的幂)来弥补这点,以使这些数变为整数。在比 较逻辑270中完成比较操作之前,还可在阈值上执行类似的操作。注意 此操作可以离线执行或每次系数或阈值改变时仅执行一次。这样,当新 值输入时仅需要执行一次此操作,这通常很少发生。
在各种实现中,系数将依据处理器的架构和设计参数而改变,而且 回归分析可用于为给定设计确定系数。在一些实现中,还可忽略常数项 以简化硬件。如果去除常数,则可在阈值中加以考虑。
如图3所示,可将所确定的Q-AVF提供给比较逻辑270,在此其可与 一个或多个Q-AVF阈值比较,这些阈值可存储在阔值寄存器275中。基 于所确定的Q-AVF值是否超过一个或多个阈值,可由比较逻辑270生成 控制信号280,该控制信号用于控制一个或多个错误检测/校正机制,如 上所述。虽然图3的实施例中以此特定实现示出,但是本发明的范围并 不局限于此,而且其他实现是可能的。另外,注意检测器200可在硬件、 软件、固件或它们的组合中实施以实现Q-AVF值的确定和其用于控制一 个或多个错误机制的用途。
除了前端检测器200, —些实施例还可包括后端检测器,或实现可仅 包括后端4企测器。如上所述,后端130包括保留站(RS),其保存微操作指令和数据并将它们调度到执行单元中;以及R0B,其保存"飞行中 (in-flight)"的微操作并在将它们提交到架构状态之前对它们重新排 序。在一个实施例中, 一组最少的基本处理器度量可用于计算Q-AVF以 达到平均95%以内的精确度,最差情况下的精确度在75%以上。对于后端 Q-AVF,在一个实施例中,这些参数可包括保留站(RS)利用(其可基 于每个周期RS中有效条目的数量和时间片大小来确定);存储緩沖区 (STB)利用(其可基于每个周期ROB中有效条目的数量和时间片大小来 确定);分支错误预测的数量;以及指令解码队列(IDQ)利用(其可基 于每个周期IDQ中的有效条目的数量和时间片大小来确定)。
现在参考图4,示出根据本发明的一个实施例的后端Q-AVF检测器的 框图。如图4所示,检测器300可包括多个计数器,即RS指令计数器310、 STB指令计数器320、 IDQ指令计数器33Q和分支错误预测计数器333。 这些计数器中每一个可配置成对于在给定时间片期间发生的给定资源 (或分支错误预测)的利用计数。时间片的长度可存储于时间片大小配置 寄存器335中。另外,可给出时间片1og2配置寄存器345以提供时间片 1og2值,如上所述。可使用状态机340基于时间片大小配置寄存器335 中的值生成此时间片1og2值。
如图4进一步所示,耦合架构相关的逻辑360以接收各种输入,其 可适于执行基于处理器度量信息的架构相关的线性方程。具体来说,逻 辑360接收分支错误预测计数器333的输出,以及移位器350、 355和358 的输出,每个移位器适于提供利用的测量,即RS利用、STB利用和IDQ 利用。基于向逻辑360提供的信息,逻辑360可生成Q-AVF值,该Q-AVF 值可存储于寄存器365中。可为每个时间片确定此Q-AVF值。
如图4所示,可将所确定的Q-AVF值提供给比较逻辑370,在此其可 与一个或多个Q-AVF阈值比较,这些阈值可存储在阈值寄存器375中。 根据所确定的Q-AVF值是否超过一个或多个阈值,可由比较逻辑370生 成控制信号380,该控制信号用于控制一个或多个错误检测/校正机制, 如上所述。虽然图4的实施例中以此特定实现示出,但是本发明的范围并不局限于此,而且其他实现是可能的。另外,注意检测器300可在硬 件、软件、固件或它们的组合中实施以实现Q-AVF值的确定及其用于控 制 一个或多个错误机制的用途。
在一个实施例中,逻辑360可根据方程2执行架构相关的线性方程 BEQ-AVF=5. 31777325+0. 17012719 (W)-0. 10485529 (X)-
0. 00007263 (Y) +0. 25594201 (Z)[方程2]
其中
W=RS利用 X-STB利用
Y-分支错误预测的数量 Z-IDQ利用
注意像上述关于逻辑260和方程1那样,系数和/或常数项可预先操 纵以降低计算复杂度。虽然关于图4的实施例以此特定方程示出,但应 理解本范明的范围并不局限于此。
在又一个实现中,AVF检测器可与存储器子系统120相关。这种AVF 检测器可以是处理器中给出的唯一的检测器,或者可以是除诸如上述前 端和后端检测器之外还有的检测器。如上所述,MOB 128包括保存用于存 储操作的数据以及虚拟和物理地址的存储緩沖区和保存用于加载操作的 地址的加载緩冲区。在一个实施例中, 一组最少的基本处理器度量可用 于计算存储器子系统的Q-AVF,以达到平均95°/ 以内的精确度,最差情况 下的精确度在80°/。以上。在一个实施例中,三个参数可用于为MOB128确 定Q-AVF:存储緩沖区(STB)利用(其可基于每个周期STB中有效条目 的数量和时间片大小来确定);保留站(RS)利用(其可基于每个周期RS 中有效条目的数量和时间片大小来确定);以及在DTLB响应之前从存储 緩冲区刷新出的指令的数量(即,在发起DTLB访问之后但在响应返回之 前曾刷新的存储的计数)。
现在参考图5,示出根据本发明的一个实施例的存储器系统Q-AVF 检测器的框图。如图5所示,检测器400可包括多个计数器,即STB指令计数器410、 RS指令计数器420和刷新存储计数器430。这些计数器中 每一个可配置成对在给定时间片期间发生的给定资源(或刷新的存储) 的利用计数。时间片的长度可存储于时间片大小配置寄存器435中。时 间片1og2配置寄存器445可提供时间片1og2值,可使用状态机440基 于时间片大小配置寄存器435中的值生成此时间片1og2值。
如图5进一步所示,耦合架构相关的逻辑460以接收各种输入,其 可适于执行基于处理器度量信息的架构相关的线性方程。具体来说,逻 辑460接收刷新存储计数器430的输出,以及一对移位器450和455的 输出,每个移位器适于提供利用的测量,即STB利用和RS利用。基于向 逻辑460提供的信息,逻辑460可生成Q-AVF值,该Q-AVF值可存^f诸于 寄存器465中。可为每个时间片确定此Q-AVF值。
如图5所示,可将所确定的Q-AVF值提供给比较逻辑470,在此其可 与一个或多个Q-AVF阈值比较,这些阈值可存储在阈值寄存器475中。 才艮据所确定的Q-AVF值是否超过一个或多个阈值,可由比较逻辑470生 成控制信号480,该控制信号用于控制一个或多个错误;险测/校正机制, 如上所述。虽然图5的实施例中以此特定实现示出,但本发明的范围并 不局限于此,而且其他实现是可能的。另外,注意检测器400可在硬件、 软件、固件或它们的组合中实施以实现Q-AVF值的确定及其用于控制一 个或多个错误机制的用途。
在一个实施例中,逻辑460可4艮据方程3为MOB确定Q-AVF: MOB Q-AVF = 1.61820419-0. 09218011 (X)+1. 88263525 (Y)-0. 0000307 (Z)
BE Q-AVF = 3. 1760199+0. 15379405 (A)+0. 06943891 (B)+0. 50535518 (C) -0. 15898313 (D)-O. 00007247 (E)+0. 00000233 (F)—0. 00001199 (G) [方程5]
MOB Q-AVF = 3. 5974914+0. 11588197 (A)-0. 02028408 (B)-0. 22281406 (C) +1. 89341998 (D)+0. 00003006 (E)-0. 00000246 (F)-O. 00006469 (G) 其中
A = IDQ利用
B = ROB利用
C = RS利用
D = STB利用
E =分支错误预测的数量
F = ROB空周期数
G -在DTLB响应之前STB刷新的数量 另外,使用这些相同的处理器度量,全芯片Q-AVF值可如方程7中所示 来确定。
全芯片Q-AVF = -1. 2535192+0. 728591443 (A)+0. 0173176 (B) +0. 19324815 (0+0. 61756203 (D)-0. 00010206 (E)+0. 00000388 (F) -0.00002391 (G)[方程7]
注意虽然使用这些特定方程来描述,但逻辑560还可使用其他线性 方程来确定全芯片Q-AVF (以及各种单元的Q-AVF)。
因此,在各种实施例中,基于Q-AVF估计的错误緩解硬件的动态控 制可大大优化可靠性、功率和性能,从而减少实施错误緩解硬件的功率 和性能耗费的多于50%,同时不以明显方式损害可靠性。因此实施例充 分利用任何特定时间片期间的AVF会与之前的或之后的时间片显著不同 的事实。结果,程序具有高易损性阶段和低易损性阶段。可使用各种处 理器度量来估计具有高精确度的Q-AVF,从而以优化功率、性能和可靠性
的方式实现能用于直接或间接修改错误緩解机制的行为的控制。
可在很多不同系统类型中实现实施例。现参考图7,示出根据本发明 一个实施例的系统的框图。如图7所示,多处理器系统600是点到点互 连系统,并包括通过点到点互连650耦合的第一处理器670和第二处理 器680。如图7所示,处理器670和680的每个可为多核处理器,包括第 一和第二处理器核(即,处理器核674a和674b以及处理器核684a和 684b),但是处理器中还可给出另外的核。每个处理器核可包括根据本发 明的实施例的一个或多个Q-AVF检测器。这样,可动态控制核的各种错 误緩解硬件以减少当不需要时任何功率性能的惩罚。
仍参考图7,第一处理器670还包括存储器控制器中心(MCH) 672 和点到点(P-P)接口 676和678。类似地,第二处理器680包括MCH682 和P-P接口 686和688。如图2所示,MCH的672和682将处理器耦合到 相应的存储器,即存储器632和存储器634,其可为本地附连到相应处理 器的主存储器(例如,动态随机访问存储器(DRAM))的部分。第一处理 器670和第二处理器680可分别通过P-P互连652和654耦合到芯片组 690。如图7所示,芯片组690包括P-P4矣口 694和698。
另外,芯片组690包括接口 692以通过P-P互连639将芯片组690 与高性能图形引擎638耦合。而芯片组690又可通过接口 696耦合到第一总线616。如图7所示,各种1/0设备614可耦合到第一总线616,以 及将第一总线616耦合到第二总线620的总线桥618。在一个实施例中, 各种设备可耦合到第二总线620,各种设备包括例如,键盘/鼠标622、 通信设备626和数据存储单元628,数据存储单元628诸如可包括代码 630的硬盘驱动器或其他海量存储设备。还有,音频1/0 624可耦合到第 二总线620。
错误緩解单元的控制包括,但不限于,直接使用控制信息或Q-AVF 值,或为了识别跨多时间片的趋势而緩存信息,以及如果信息指示Q-AVF 超出对于单个时间片或 一定数量的时间片的某个阈值才按照该信息采取 行动。这种控制还可不仅用于激活/去激活错误緩解硬件,还可将错误緩 解硬件在不同活动等级之间转换,诸如高保护模式或低保护模式或两者 之间的模式,以及在具有变化的功率/性能耗费的不同保护方案之间进行 选取。这种情况的一个示例包括使用检查点生成的错误緩解方案。生成 这些检查点的频率确定将对错误恢复不起作用的进度的量。可使用一个 实施例根据如Q-AVF值给出的严重错误的实际概率来增加或减少取得检
查点的频率。在这种情况下,为了确定要激活哪个等级的保护,Q-AVF值 可与多个阈值进行比较。
在一个实施例中,通过向OS提供检测器信息可实现基于OS的控制。 在这种实施例中,OS可确定程序正在进入易损区域并请求对阈值的改变。 例如,如果检测器阈值(例如,第一阈值)将跌到10%阈值,则0S将强 迫阈值到不同级别,或使;险测器改变它的时间片大小。
实施例可以代码实现并且可存储在存储介质上,该存储介质上已存 储了可用于对系统编程以执行指令的这些指令。存储介质可包括,但不 限于,任何类型的盘、半导体设备或适合用于存储电子指令的任何其它 类型的介质,所述盘包括软盘、光盘、紧致^f兹盘只读存储器(CD-R0M)、 可重写紧致磁盘(CD-RW)和磁光盘,所述半导体设备诸如只读存储器 (ROM)、例如动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM) 的随机访问存储器(RAM)、可擦除可编程只读存储器(EPR0M)、闪存、电可擦除可编程只读存储器(EEPR0M)、磁或光卡。
虽然已经关于有限数量的实施例描述了本发明,^f旦是本领域技术人 员将从这些实施例认识到多种修改和变化。所附权利要求旨在覆盖属于 本发明的真正精神和范围的所有的这些修改和变化。
权利要求
1、一种装置,包括多个计数器,所述多个计数器的每个为处理器的存储单元维护时间片期间的利用值;第二计数器,对所述时间片期间由所述处理器的预测单元作出的错误预测的数量进行计数;以及第一逻辑,至少部分地基于所述利用值和所述错误预测的数量来为所述处理器的至少第一部分确定对于所述时间片的易损性测量。
2、 根据权利要求l所述的装置,还包括第二逻辑,所述第二逻辑至 少部分地基于第二组利用值和所述错误预测的数量来为所述处理器的第 二部分确定对于所述时间片的易损性测量。
3、 根据权利要求2所述的装置,其中所述处理器的所述至少第一部 分对应所述处理器的前端单元,而所述处理器的所述第二部分对应所述 处理器的后端单元。
4、 根据权利要求l所述的装置,其中所述第一逻辑用于接收所述利 用值并根据具有多个项的线性方程确定所述易损性测量,所述多个项的 每一项都包括系数和所述利用值之一 。
5、 根据权利要求4所述的装置,还包括第二逻辑以接收所述易损性 测量并基于所述易损性测量来生成控制所述处理器的至少一个错误緩解 单元的控制信号。
6、 根据权利要求5所述的装置,其中如果所述易损性测量大于第一 阈值则所述第二逻辑将启用所述至少一个错误緩解单元的错误检测机 制,并且如果所述易损性测量大于第二阈值则所述第二逻辑将启用所述 至少一个错误緩解单元的错误校正机制。
7、 根据权利要求5所述的装置,其中所述第二逻辑用于接收多个易 损性测量并基于所述多个易损性测量生成所述控制信号,所述多个易损 性测量的每个对应多个时间片之一 。
8、 根据权利要求5所述的装置,其中如果所述易损性测量低于第一 阈值则所述第二逻辑将禁用所述至少一个错误緩解单元,并且其中所述 至少一个错误緩解单元当被所述第二逻辑禁用时将配置成执行非错误緩 解任务。
9、 根据权利要求5所述的装置,其中所述第二逻辑用于动态控制所 述至少 一个错误缓解单元,在程序的第 一部分期间基于第 一多个时间片 的易损性测量启用以及基于第二多个时间片的易损性测量禁用所述至少 一个错误緩解单元。
10、 根据权利要求1所述的装置,其中所述装置包括处理器并且还 包括包含所述多个计数器、所述第二计数器和所述第一逻辑的检测器, 其中所述检测器与所述处理器的第 一部分相关联。
11、 根据权利要求IO所述的装置,其中所述检测器的多个计数器的至少一个与所述处理器的第二部分中的结构相关联。
12、 一种方法,包括使用处理器度量为处理器的至少 一部分确定对于时间片的量化架构 易损性因子(Q-AVF)值;将所述Q-AVF值与至少一个阈值进4亍比较;以及 基于所述比较动态地控制所述处理器的至少一个错误緩解单元。
13、 根据权利要求12所述的方法,还包括根据具有多个项的线性方 程确定所述Q-AVF值,所述多个项的每一项对应于处理器度量值和权重 值。
14、 根据权利要求13所述的方法,其中所述处理器度量值的每个对 应于关于所述处理器的多个前端结构之一的利用值。
15、 根据权利要求14所述的方法,其中第一利用值对应于关于所述 时间片的每个周期的结构中有效条目的数量。
16、 根据权利要求15所述的方法,还包括通过将有效条目的数量移 位对应于所述时间片的对数值来确定所述第一利用值。
17、 根据权利要求12所述的方法,还包括基于关于所述处理器的前端单元的指令解码队列、前端单元的分支预测器和后端单元的引退排序緩沖区的处理器度量值来确定关于所述处理器的前端单元的Q-AVF值。
18、 一种系统,包括具有多个核的多核处理器,其中第一核包括基于多个处理器度量值 检测关于所述第一核的易损性测量的检测器,以及基于所述易损性测量 控制所述第一核的错误緩解单元的控制器,所述多个处理器度量值的每 个与第一时间段期间的核结构的操作相关联;以及耦合到所述多核处理器的动态随机访问存储器(DRAM)。
19 、根据权利要求18所述的系统,其中所述检测器包括 多个计数器,所述多个计数器的每个维护所述第一时间段期间的处 理器度量值,第二计数器,对于所述第一时间段期间所述第一核的预测单元作出 的错误预测的数量进行计数,以及第一逻辑,至少部分地基于所述处理器度量值和所述错误预测的数 量来为所述第一核的至少第一部分确定对于所述第一时间段的易损性测 量。
20、 根据权利要求19所述的系统,其中所述;^测器还包括第二逻辑 以至少部分地基于第二组处理器度量值和所述错误预测的数量来为所述 第一核的第二部分确定对于所述第一时间段的第二易损性测量。
21、 根据权利要求19所述的系统,其中所述第一逻辑用于接收所述 处理器度量值并根据具有多个项的线性方程来确定所述易损性测量,所 述多个项的每一项包括系数和所述处理器度量值之一。
22、 根据权利要求18所述的系统,其中如果所述易损性测量大于第 一阈值则所述控制器将启用所述错误緩解单元的错误检测机制,如果所 述易损性测量大于第二阈值则所述控制器将启用所述错误緩解单元的错 误才交正纟几制。
23、 根据权利要求22所述的系统,其中所述控制器用于接收多个易 损性测量并基于所述多个易损性测量来生成控制信号,所述多个易损性测量的每个对应多个时间段之一 。
24、根据权利要求22所述的系统,其中所述错误緩解单元配置成当 被所述控制器禁用时执行非错误緩解任务。
全文摘要
本发明的名称为“检测处理器资源的架构易损性”。在一个实施例中,提供一种时间片检测器以基于处理器度量标准来检测处理器的易损性测量,每个处理器度量与时间片期间的处理器结构的操作相关联,还提供控制器以基于易损性测量来控制错误缓解单元。对其他实施例进行了描述并要求其权利。
文档编号G06F11/36GK101566958SQ200910141958
公开日2009年10月28日 申请日期2009年4月23日 优先权日2008年4月23日
发明者A·比斯瓦斯, N·桑达拉拉彦, S·穆克赫吉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1