当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于从在寄存器文件中的软错误中恢复的方法和装置制造方法及图纸

技术编号:2851270 阅读:178 留言:0更新日期:2012-04-11 18:40
公开了一种用于从寄存器文件中的软错误中恢复的装置和方法。在一个实施例中,一个装置包括一个寄存器文件和纠错码产生逻辑。在寄存器文件中的每个寄存器具有存储数据的位和对数据存储纠错码值的位。

【技术实现步骤摘要】

本公开属于数据处理装置领域,并且更具体地属于数据处理装置中的错误检测和纠正领域。
技术介绍
因为集成电路制造技术的进步继续在微处理器和其它数据处理装置中提供更小的尺寸和更低的工作电压,所以这些设备的制造者和用户正变得越来越关心软错误现象。与来自设计和制造缺陷的硬错误相对,软错误在阿尔法粒子和高能中子撞击集成电路并改变存储在电路节点上的电荷时产生。如果所述电荷改变足够大,则节点上的电压就可以从代表一个逻辑状态的电平被改变为代表一个不同逻辑状态的电平,这样存储在该节点上的信息就被破坏。通常,软错误率随着电路尺寸的减小而增加,因为撞击的粒子将命中电压节点的可能性在电路密度增加时增加。同样,因为工作电压减小,所以代表不同逻辑状态的电压电平之间的差别也减小,因此,改变在电路节点上的逻辑状态所需的能量更少,并且产生更多的软错误。阻挡引起软错误的粒子极其困难,因此,数据处理装置通常包括用于检测软错误以及有时用于纠正软错误的机构。典型地,这些机构集中于通过使用硬件产生并校验(check)相应于在存储元件中存储的数据的奇偶校验位和纠错码(ECC)值来保护存储元件,例如系统存储器和高速缓冲存储器。例如,自动的内嵌的(in-line)错误纠正可以通过在存储元件和数据处理器的执行单元之间插入硬件来完成,以产生指示任何单个数据位是否已被破坏的“校正子(syndrome)”,以及反转(invert)任何上述所破坏的位的值。可选地,通过检查错误并将正确的数据重写入任何已被破坏的存储器位置,存储元件可以自动地或周期性地被“刷洗(scrub)”。较不普遍地,由于附加电路所需要的相对较高的成本,可以使用冗余硬件方案来保护数据处理装置的执行核心以免软错误。一种较不昂贵但较不完全的方法是在执行核心的寄存器文件中增加奇偶校验位来提供对寄存器文件中的软错误的检测。然而,上面讨论的内嵌的错误纠正和刷洗技术通常并不被用于寄存器文件,因为它们将降低性能或者增加逻辑的复杂性,内嵌的错误纠正是通过将一个或多个阶段添加至在寄存器读取和执行阶段之间的执行流水线,以及刷洗是通过将重放循环引入执行流水线的关键路径或者通过使用其它有用的时钟周期来执行刷洗。因此,数据处理装置通常不能自动地从寄存器文件中的软错误中恢复,所以寄存器文件的尺寸增加导致更多的停机时间和服务调用,从而减少了可用性并增加了使用设备的成本。附图说明本专利技术通过例子来说明并且不局限于附图。图1说明实现用于从寄存器文件中的软错误中恢复的技术的处理器。图2说明根据本专利技术的一个实施例的ECC方案。图3说明根据本专利技术的一个实施例的寄存器文件。图4说明实现用于从寄存器文件中的软错误中恢复的技术的系统。图5说明在实现用于从寄存器文件中的软错误中恢复的技术的处理器中执行流水线的实施例。图6说明用于从寄存器文件中的软错误中恢复的方法的实施例。具体实施例方式下面的描述说明了用于从寄存器文件中的软错误中恢复的技术的实施例。在下面的描述中,大量的特定细节(例如处理器和系统配置、寄存器安排和ECC方案)被阐明以便提供对本专利技术更彻底的理解。然而,可以理解,本领域的普通技术人员在没有这样的特定细节的情况下也可以实施本专利技术。另外,一些公知的结构、电路等没有详细示出,以免不必要地模糊本专利技术。图1说明实现用于从寄存器文件中的软错误中恢复的技术的处理器100。所述处理器可以是包含寄存器文件的各种不同类型的处理器中的任何一种。例如,所述处理器可以是通用处理器,例如在Pentium处理器家族、Itanium处理器家族或来自英特尔公司的其它处理器家族中的处理器,或者来自另一公司的另一处理器。在图1的实施例中,处理器100包括数据通路110,其具有寄存器文件120、执行单元130、ECC校验单元131、异常寄存器132、异常单元140和ECC产生单元141。寄存器文件120包括多个物理寄存器。单个物理寄存器可以相应于或者有效地用作在不使用寄存器重命名技术的实施例中的体系结构寄存器。在使用寄存器重命名技术的实施例中,不同的物理寄存器可以在不同的时间点保存体系结构寄存器的值。执行单元130响应于控制信号151对来自源总线121和122的数据进行操作。例如,执行单元130可以是移位器、算术逻辑单元、浮点单元、多媒体单元或任何能够对数据执行任何操作的单元或单元的组合,其中数据可以是任何类型的信息,包括由二进制数字或以任何其它形式表示的指令。处理器100可以包括任何数量的执行单元,每个执行单元能够对数据执行任何一个或多个操作。控制信号151由控制逻辑150产生,以发出(issue)存储在指令队列160中的一个指令。控制逻辑150可以使用任何公知的技术来实现,例如微编码。指令队列160可以用来自指令高速缓冲存储器170的指令来装载。异常单元140检查由执行单元130执行的操作结果的错误,例如算术溢出。如果检测到错误,则在提交结果给体系结构寄存器之前修改指令执行的正常流程。根据任何公知的技术,由ECC产生单元141产生对应于执行单元130所执行的操作的结果的一个ECC值。例如,其中操作结果是由1和0表示的64位数据值,一个8位的ECC值根据图2中所说明的方案被产生。在图2的方案中,ECC位210(0)至210(7)中每个的值通过对数据位220(0)至220(63)的唯一的一半计算奇偶而产生。例如,如果在数据位220(32)至220(63)中1的数目为奇数,则ECC位210(7)的值被设置为1。ECC产生单元141可被执行来产生ECC值,该值可以用于检测在相应数值中的一个或多个位中的错误,以及用于纠正那些错误的任何子集。在图2的实施例中,ECC位210(0)和210(1)提供足够的信息来检测所有单位(singlebit)错误和邻近的双位错误,以及全8位ECC值提供足够的信息来识别任何单位错误的位置并因此进行纠正,以及检测额外的双位错误。例如,如果64位数据值是“0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0001”,一个ECC值“0100 0001”将被产生并被存储。假设单位错误使最低数据位从1变为0。用于破坏的数据的ECC值是“0000 0000”,其指示最低数据位的值已经发生变化。在ECC值被产生之后,它和相应的数据一起被存储在寄存器文件120中。图3是根据操作结果是64位宽的实施例对寄存器文件120更详细的说明。寄存器文件120包括N个寄存器300(0)至300(N),其中N可为任何整数。每个寄存器300具有存储64位数据值的数据位310以及存储相应的8位ECC值的ECC位320。从寄存器文件120中读出的数据由ECC校验单元131校验奇偶错误。例如,根据图2的ECC方案,32个数据位的每个或任何子集以及其相应的ECC位一起被校验以确定1的数目是否为偶数。可选地,一个完整的ECC值可以从读自寄存器的数据产生,并且与读自寄存器的ECC值进行比较。如果检测到错误,则ECC校验单元131指示已经检测到错误,例如通过在使用公知的机器校验体系结构(“MCA”)技术的实施例中引发一个机器校验异常(“MC”)。此外,ECC校验单元131可本文档来自技高网...

【技术保护点】
一种装置,包括:多个寄存器,每个寄存器具有存储数据的第一数目的位和对第一数目的位存储多个纠错码值之一的第二数目的位;以及产生逻辑,用于产生多个纠错码值。

【技术特征摘要】
US 2004-12-29 11/0263601.一种装置,包括多个寄存器,每个寄存器具有存储数据的第一数目的位和对第一数目的位存储多个纠错码值之一的第二数目的位;以及产生逻辑,用于产生多个纠错码值。2.权利要求1所述的装置,其中纠错码是单位纠错码。3.权利要求2所述的装置,其中第二数目的位还用于对第一数目的位存储多个双位检错码值之一;以及产生逻辑还用于产生多个双位检错码值。4.权利要求1所述的装置,进一步包括校验逻辑,用于校验第一数目的位和第二数目的位的错误。5.权利要求1所述的装置,进一步包括执行单元,用于对数据进行操作,并产生结果数据以存储在所述多个寄存器之一中。6.权利要求5所述的装置,进一步包括校验逻辑,用于在结果数据被存储在所述多个寄存器之一中之前校验第一数目的位和第二数目的位的错误。7.权利要求1所述的装置,其中产生逻辑用于在数据被存储在所述多个寄存器之一中之前对数据产生多个纠错码值之一。8.权利要求4所述的装置,其中校验逻辑还用于通过引发一个异常来响应错误检测。9.权利要求4所述的装置,其中校验逻辑还用于通过引发一个异常来响应错误检测以将装置的控制传递到固件来纠正错误。10.一种装置,包括一个处理器,具有多个寄存器,每个寄存器具有存储数据的第一数目的位和对第一数目的位存储多个纠错码值之一的第二数目的位;产生逻辑,用于在第一数目的位和第二数目的位被存储在所述多个寄存器之一中之前产生多个纠错码值;以及校验逻辑,用于在第一数目的位和第二数目的位从所述多...

【专利技术属性】
技术研发人员:S科塔帕利S纳德卡米王尔瑞
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1