CN1808392A - 用于从在寄存器文件中的软错误中恢复的方法和装置 - Google Patents

用于从在寄存器文件中的软错误中恢复的方法和装置 Download PDF

Info

Publication number
CN1808392A
CN1808392A CNA2005101191825A CN200510119182A CN1808392A CN 1808392 A CN1808392 A CN 1808392A CN A2005101191825 A CNA2005101191825 A CN A2005101191825A CN 200510119182 A CN200510119182 A CN 200510119182A CN 1808392 A CN1808392 A CN 1808392A
Authority
CN
China
Prior art keywords
data
error
register
registers
processor
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.)
Pending
Application number
CNA2005101191825A
Other languages
English (en)
Inventor
S·科塔帕利
S·纳德卡米
王尔瑞
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1808392A publication Critical patent/CN1808392A/zh
Pending 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

公开了一种用于从寄存器文件中的软错误中恢复的装置和方法。在一个实施例中,一个装置包括一个寄存器文件和纠错码产生逻辑。在寄存器文件中的每个寄存器具有存储数据的位和对数据存储纠错码值的位。

Description

用于从在寄存器文件中的软错误中恢复的方法和装置
技术领域
本公开属于数据处理装置领域,并且更具体地属于数据处理装置中的错误检测和纠正领域。
背景技术
因为集成电路制造技术的进步继续在微处理器和其它数据处理装置中提供更小的尺寸和更低的工作电压,所以这些设备的制造者和用户正变得越来越关心软错误现象。与来自设计和制造缺陷的硬错误相对,软错误在阿尔法粒子和高能中子撞击集成电路并改变存储在电路节点上的电荷时产生。如果所述电荷改变足够大,则节点上的电压就可以从代表一个逻辑状态的电平被改变为代表一个不同逻辑状态的电平,这样存储在该节点上的信息就被破坏。通常,软错误率随着电路尺寸的减小而增加,因为撞击的粒子将命中电压节点的可能性在电路密度增加时增加。同样,因为工作电压减小,所以代表不同逻辑状态的电压电平之间的差别也减小,因此,改变在电路节点上的逻辑状态所需的能量更少,并且产生更多的软错误。
阻挡引起软错误的粒子极其困难,因此,数据处理装置通常包括用于检测软错误以及有时用于纠正软错误的机构。典型地,这些机构集中于通过使用硬件产生并校验(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可以在异常寄存器132(例如机器专用寄存器(“MSR”))中存储处理器状态信息,例如标识数据从哪个寄存器被读出的索引。
如上所述,在本发明的一个实施例中,在硬件中提供在寄存器文件中检测错误的能力,并且在处理器专用固件中提供纠正错误的能力。把错误纠正卸载到固件简化了硬件支持的要求。例如,图4说明一个实现用于从寄存器文件中的软错误中恢复的技术的系统400。在图4的实施例中,处理器100通过系统逻辑410被连接到非易失存储器420(例如只读或闪速存储器)和动态存储器430(例如动态随机存取存储器)。一个错误恢复例程421被存储在非易失存储器420中,并可在动态存储器430中形成影像(shadow)。当MC被ECC校验单元131触发时,指令执行的流程被修改,以使错误恢复例程421被执行。错误恢复例程421可以包括自动纠正错误并使处理器100恢复执行原始指令序列的指令。如果出现不可纠正的错误,例如在使用ECC方案的实施例中的双位错误的情况,其中该ECC方案提供足够的检测信息但不纠正双位错误,则错误可被标记并且可以请求用户干预。
图1、2、3和4一起用于说明本发明的一个实施例,该实施例使用MCA技术来从寄存器文件中的单位软错误中自动地恢复。例如,假设来自执行单元130的操作的64位结果已被存储在寄存器300(0)中,一同被存储的还有由ECC产生单元140产生的相应ECC值,这时阿尔法粒子撞击寄存器300(0)的一个节点并引起在寄存器300(0)中存储的数据中一个单位错误。随后,发出使用来自寄存器300(0)的数据的一个指令。来自寄存器300(0)的数据被读取,并且当ECC校验单元131检测到错误时,一个识别源寄存器(该例中是寄存器300(0))的索引被存储在MSR中,并且MC被触发。通过把指令流传送到错误恢复例程421来处理MC。错误恢复例程421可以包括用于从MSR读取寄存器索引以及然后从由寄存器索引标识的寄存器中重新读取数据和ECC值的指令。在处理原始指令期间从破坏的数据中产生的ECC值也可以被存储在MSR中并从MSR中读取,或者可以从在错误恢复例程421的控制下从寄存器中重新读取的破坏的数据中被产生。错误恢复例程421可以包括指令,用于比较从破坏的数据中产生的ECC值和原始ECC值以识别哪个数据位已被破坏。可选地,破坏的位可以通过下述来识别,即在原始指令的初始处理期间或者由错误恢复例程421对8个子集的32个数据位的每一个加上一个奇偶校验位计算奇偶,并且使用奇偶校验失败的子集的组合来确定哪个位发生了变化。错误恢复例程421可以包括指令,用于反转所述位,把正确的数据写回寄存器300(0),把尝试使用破坏的数据的指令重新装载到指令队列160中,以及使处理器100恢复执行原始指令序列。
本发明的实施例可以包括用于在固件纠错过程期间避免嵌套错误检测的技术。例如,ECC校验单元131在错误恢复例程421正被执行时可以被禁用。可选地,破坏的寄存器的状态可以被保存在MSR中,使得错误恢复例程421将不必包括用于重新读取破坏的数据的指令,并且错误校验可继续在固件纠错过程期间被执行。
虽然本发明没有要求,但是公知的流水线技术可以被实施在处理器100中来重叠执行多个指令。例如,图5说明处理器100的执行流水线500的实施例。在指令取出阶段510,指令队列160用来自指令高速缓冲存储器170的指令来装载。在指令发出阶段520,控制信号151由控制逻辑150产生来发出存储在指令队列160中的一个指令。在寄存器读取阶段530,来自寄存器文件120的数据被锁存到源总线121和122以提供用于将被执行的指令的操作数。在执行阶段540,执行单元130响应于控制信号151对来自源总线121和122的数据进行操作。在检测阶段550,异常单元140检查来自执行单元130的结果的错误。在退出(retire)阶段560,操作结果被写入寄存器文件120。每个阶段可以表示单时钟周期或者任何部分或多个单时钟周期,并且任何数目的每个已描述的阶段或者任何其它阶段可以在本发明的范围内被使用。
ECC值校验和产生可以不改变图5的流水线而被执行。ECC校验单元131可以被连接到源总线121和122,以便对来自源总线121和122的数据执行奇偶校验,同时执行单元130对数据进行操作,例如在执行阶段540,或者可选地在从寄存器文件120读取数据之后与操作结果被提交给体系结构寄存器之前的任何其它时间。ECC产生单元141可以被连接到执行单元130和寄存器文件120,以便对一个操作结果执行ECC值的产生,同时异常单元140检查结果的错误,例如在检测阶段550,或者可选地在由执行单元130产生结果之后与它被提交给体系结构寄存器之前的任何时间。
图6是说明用于从寄存器文件中的单位错误中自动地恢复的方法的实施例的流程图。在块610中产生对应于第一数据值的ECC值。在块620和630中(它们可以被并行地执行),第一数据值和ECC值分别被存储在寄存器文件中。在块640和650中(它们可以被并行地执行),第一数据值和ECC值分别从寄存器文件中被读取。在块660中,使用第一数据值执行操作以产生一个第二数据值。在块670中,ECC值用于在第一数据值中检查错误。块660和670可以被并行地执行。如果在块670中没有检测到错误,那么在块680中,第二数据值被存储在寄存器文件中。然而,如果在块670中检测到错误,则在块671中存储标识从中读取第一数据值的寄存器的索引,并且调用错误恢复例程。在块672中,错误恢复例程使用ECC值来识别错误。在块673中,错误恢复例程纠正错误,并把纠正的数据存储在从中读取第一数据值的寄存器中,并且该方法返回到块640。
处理器100或根据本发明实施例设计的任何其它处理器可以被设计在从创建到仿真到制造的不同阶段中。表示设计的数据可以用多种方式来表示所述设计。首先,正如在仿真中有用的,硬件可以使用硬件描述语言或者另一功能描述语言来表示。另外地或可选地,具有逻辑和/或晶体管门的电路级模型可以在设计过程的一些阶段被制造。此外,在某个阶段的大多数设计达到一个级别(level),在这个级别上它们可以利用表示各种设备的物理布局的数据来建模。在使用传统的半导体制造技术的情况下,表示设备布局模型的数据可以是规定用于制造集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。
在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。被调制或者否则被产生以传输这种信息的光或电波、存储器、或者磁或光的存储介质(例如盘)可以是机器可读介质。这些介质中的任何一种可以“携带”或“指示”该设计或者其它在本发明实施例中使用的信息,例如错误恢复例程中的指令。当指示或携带信息的电载波被传输至拷贝、缓冲或重新传输电信号被执行的程度时,一个新的拷贝被生成。因此,通信提供者或网络提供者的动作可产生物品(article)的拷贝,例如载波,从而实现本发明的技术。
因此,公开了用于从寄存器文件中的软错误中恢复的技术。尽管特定的实施例已被描述并且在附图中示出,但是应该理解,这样的实施例仅仅说明而非限制本发明的主要方面,并且由于本领域普通技术人员在学习了此公开后可以想到各种其它修改,所以本发明不限于所示出和描述的特定的结构和安排。在诸如此的技术领域中,其中发展很快并且不容易预见进一步的发展,所公开的实施例在安排和细节上可以容易地进行修改以便于实现技术进步,而不脱离本公开的原理或所附权利要求书的范围。

Claims (17)

1、一种装置,包括:
多个寄存器,每个寄存器具有存储数据的第一数目的位和对第一数目的位存储多个纠错码值之一的第二数目的位;以及
产生逻辑,用于产生多个纠错码值。
2、权利要求1所述的装置,其中纠错码是单位纠错码。
3、权利要求2所述的装置,其中:
第二数目的位还用于对第一数目的位存储多个双位检错码值之一;以及
产生逻辑还用于产生多个双位检错码值。
4、权利要求1所述的装置,进一步包括校验逻辑,用于校验第一数目的位和第二数目的位的错误。
5、权利要求1所述的装置,进一步包括执行单元,用于对数据进行操作,并产生结果数据以存储在所述多个寄存器之一中。
6、权利要求5所述的装置,进一步包括校验逻辑,用于在结果数据被存储在所述多个寄存器之一中之前校验第一数目的位和第二数目的位的错误。
7、权利要求1所述的装置,其中产生逻辑用于在数据被存储在所述多个寄存器之一中之前对数据产生多个纠错码值之一。
8、权利要求4所述的装置,其中校验逻辑还用于通过引发一个异常来响应错误检测。
9、权利要求4所述的装置,其中校验逻辑还用于通过引发一个异常来响应错误检测以将装置的控制传递到固件来纠正错误。
10、一种装置,包括:
一个处理器,具有:
多个寄存器,每个寄存器具有存储数据的第一数目的位和对第一数目的位存储多个纠错码值之一的第二数目的位;
产生逻辑,用于在第一数目的位和第二数目的位被存储在所述多个寄存器之一中之前产生多个纠错码值;以及
校验逻辑,用于在第一数目的位和第二数目的位从所述多个寄存器之一中被读取之后校验第一数目的位和第二数目的位的错误,以及用于通过引发一个异常来响应错误检测;
耦合到该处理器的一个非易失存储器,用于存储指令,所述指令在响应于所引发的异常而被处理器执行时,使装置纠正错误并把纠正的数据存储在所述多个寄存器之一中;以及
耦合到该处理器的一个动态随机存取存储器。
11、权利要求10所述的装置,进一步包括一个异常寄存器,用于存储所述多个寄存器之一的标识符。
12、权利要求11所述的装置,其中非易失存储器还用于存储指令,所述指令在响应于所引发的异常而被处理器执行时,使处理器从所述多个寄存器之一中重新读取第一数目的位。
13、权利要求12所述的装置,其中非易失存储器还用于存储指令,所述指令在响应于所引发的异常而被处理器执行时,在处理器从所述多个寄存器之一重新读取第一数目的位之前禁用校验逻辑。
14、权利要求10所述的装置,进一步包括一个异常寄存器,用于存储从所述多个寄存器之一读取的第一数目的位。
15、一种方法,包括:
执行第一操作以产生第一数据值;
在存储第一数据值之前,产生一个相应于第一数据值的纠错码值;以及
把第一数据值和纠错码值存储在寄存器中。
16、权利要求15所述的方法,进一步包括:
从寄存器中读取第一数据值和纠错码值;
使用第一数据值来执行第二操作以产生第二数据值;
使用纠错码值来校验第一数据值;以及
在存储第二数据值之前,引发一个异常来指示在第一结果中存在的错误。
17、权利要求16所述的方法,进一步包括:
调用错误恢复例程来使用纠错码值以产生纠正的第一数据值;以及
把纠正的第一数据值存储在寄存器中。
CNA2005101191825A 2004-12-29 2005-12-29 用于从在寄存器文件中的软错误中恢复的方法和装置 Pending CN1808392A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/026360 2004-12-29
US11/026,360 US20060156177A1 (en) 2004-12-29 2004-12-29 Method and apparatus for recovering from soft errors in register files

Publications (1)

Publication Number Publication Date
CN1808392A true CN1808392A (zh) 2006-07-26

Family

ID=36654752

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005101191825A Pending CN1808392A (zh) 2004-12-29 2005-12-29 用于从在寄存器文件中的软错误中恢复的方法和装置

Country Status (2)

Country Link
US (1) US20060156177A1 (zh)
CN (1) CN1808392A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025027A (zh) * 2011-12-30 2014-09-03 英特尔公司 结构访问处理器、方法、系统和指令
CN110096402A (zh) * 2019-05-06 2019-08-06 盛科网络(苏州)有限公司 对芯片数据异常处理逻辑的验证装置和方法
CN111309514A (zh) * 2020-02-21 2020-06-19 吉林大学 一种gpgpu寄存器的纠错码生成方法

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467325B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US20060184771A1 (en) * 2005-02-11 2006-08-17 International Business Machines Mini-refresh processor recovery as bug workaround method using existing recovery hardware
US7647536B2 (en) * 2005-12-30 2010-01-12 Intel Corporation Repair bits for a low voltage cache
US7512772B2 (en) * 2007-01-08 2009-03-31 International Business Machines Corporation Soft error handling in microprocessors
JP2008282178A (ja) * 2007-05-09 2008-11-20 Toshiba Corp 産業用コントローラ
US8352812B2 (en) * 2007-08-03 2013-01-08 Intel Corporation Protecting data storage structures from intermittent errors
US8078942B2 (en) * 2007-09-04 2011-12-13 Oracle America, Inc. Register error correction of speculative data in an out-of-order processor
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
GB2455212B (en) * 2008-01-30 2012-03-21 Ibm Method for identifying address faults of CPU status register files during read and write accesses
US8201067B2 (en) * 2008-02-25 2012-06-12 International Business Machines Corporation Processor error checking for instruction data
US7523379B1 (en) * 2008-03-31 2009-04-21 International Business Machines Corporation Method for time-delayed data protection
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8516339B1 (en) * 2011-04-01 2013-08-20 Xilinx, Inc. Method of and circuit for correcting adjacent bit errors in a memory
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8972833B1 (en) 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix
US8972835B1 (en) 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9697074B2 (en) 2014-12-11 2017-07-04 Internatioanl Business Machines Corporation Non-local error detection in processor systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216222B1 (en) * 1998-05-14 2001-04-10 Arm Limited Handling exceptions in a pipelined data processing apparatus
US6289445B2 (en) * 1998-07-21 2001-09-11 Lsi Logic Corporation Circuit and method for initiating exception routines using implicit exception checking
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
US7058877B2 (en) * 2002-05-14 2006-06-06 Sun Microsystems, Inc. Method and apparatus for providing error correction within a register file of a CPU
US7065694B2 (en) * 2003-09-25 2006-06-20 International Business Machines Corporation Adaptive runtime repairable entry register file
US20050138478A1 (en) * 2003-11-14 2005-06-23 Safford Kevin D. Error detection method and system for processors that employ alternating threads

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025027A (zh) * 2011-12-30 2014-09-03 英特尔公司 结构访问处理器、方法、系统和指令
CN104025027B (zh) * 2011-12-30 2017-08-15 英特尔公司 结构访问处理器、方法、系统和指令
CN110096402A (zh) * 2019-05-06 2019-08-06 盛科网络(苏州)有限公司 对芯片数据异常处理逻辑的验证装置和方法
CN110096402B (zh) * 2019-05-06 2023-08-22 苏州盛科通信股份有限公司 对芯片数据异常处理逻辑的验证装置和方法
CN111309514A (zh) * 2020-02-21 2020-06-19 吉林大学 一种gpgpu寄存器的纠错码生成方法

Also Published As

Publication number Publication date
US20060156177A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
CN1808392A (zh) 用于从在寄存器文件中的软错误中恢复的方法和装置
US7512772B2 (en) Soft error handling in microprocessors
JP5147564B2 (ja) レジスタ状態エラー回復および再開機構
JP4603185B2 (ja) 計算機及びその誤り回復方法
EP2159709B1 (en) Error correcting method and computing element
US9444496B2 (en) Correctable parity protected memory
US20120079348A1 (en) Data with appended crc and residue value and encoder/decoder for same
US20070168768A1 (en) ECC coding for high speed implementation
US9529653B2 (en) Processor register error correction management
US8108714B2 (en) Method and system for soft error recovery during processor execution
CN101815984A (zh) 错误的推测性更新的链接栈修复
JP2005166057A (ja) 障害検出コンピュータシステム
US8301992B2 (en) System and apparatus for error-correcting register files
JP4434548B2 (ja) L2訂正可能エラーのための複数のプロセッサ・コアの割振り解除方法
CN105320579A (zh) 面向sparc v8处理器的自修复双冗余流水线及容错方法
US20050015659A1 (en) Targeted fault tolerance by special CPU instructions
WO2014193350A1 (en) Invoking an error handler to handle an uncorrectable error
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
US8352812B2 (en) Protecting data storage structures from intermittent errors
CN117112318A (zh) 基于risc-v架构的双核容错系统
US8316283B2 (en) Hybrid error correction code (ECC) for a processor
CN105260256A (zh) 一种双模冗余流水线的故障检测及回退方法
US7581152B2 (en) Fault free store data path for software implementation of redundant multithreading environments
US10289332B2 (en) Apparatus and method for increasing resilience to faults
US8069376B2 (en) On-line testing for decode logic

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication