CN101346697B - 报告存储器位校正的方法和装置 - Google Patents

报告存储器位校正的方法和装置 Download PDF

Info

Publication number
CN101346697B
CN101346697B CN2006800490502A CN200680049050A CN101346697B CN 101346697 B CN101346697 B CN 101346697B CN 2006800490502 A CN2006800490502 A CN 2006800490502A CN 200680049050 A CN200680049050 A CN 200680049050A CN 101346697 B CN101346697 B CN 101346697B
Authority
CN
China
Prior art keywords
line
time
counters
counter
inefficacy
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.)
Expired - Fee Related
Application number
CN2006800490502A
Other languages
English (en)
Other versions
CN101346697A (zh
Inventor
T·库尔茨
M·梅哈莱尔
J·曼德尔布拉特
A·根德勒
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 CN101346697A publication Critical patent/CN101346697A/zh
Application granted granted Critical
Publication of CN101346697B publication Critical patent/CN101346697B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • 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
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Abstract

简言之,一种通过在线中第一次和第二次校正位失效时分别更新第一和第二计数器,报告一个存储器线中一个位失效的方法、主处理单元和计算机系统。在该线中位失效的第三次校正后,禁止第一和第二计数器的更新。

Description

报告存储器位校正的方法和装置
发明背景
诸如膝上计算机、手持式装置、个人数字助理(PDA)、数据终端、袖珍式个人计算机等移动装置可包括处理器和/或计算平台。处理器和/或计算平台会消耗大量的电池能量,而这可能减少这类装置的工作时数。为了降低电池的大量电耗,可以用电源控制机构来控制该处理器的功耗。该电源控制机构可以通过向该处理器和/或计算平台提供一个较低的电压和/或较低的频率来降低功耗。低电压会在该处理器和/或该计算平台的高速缓存中引起可恢复的和/或不可恢复的错误。
处理器和/或计算平台可包含片上(on-die)高速缓存。该高速缓存的随机访问存储器(RAM)单元会限制该处理器可运行的最低可能电压。片上处理器高速缓存中的RAM单元可用制造该处理器的制造工艺支持的最小可能尺寸设计的元件制造,而其副作用是,这些元件会对制造过程中正常发生的变动非常敏感,导致一些单元明显偏离正确运行所需的最小电压的平均值。这些变动会造成高速缓存线(cachememory line)中的位失效。
附图说明
在本说明书的总结部分特别指出了视为本发明的主题,并明确提出了其权利要求。但借助于附图参照以下的详细说明,可在结构和操作方法以及其目的、特征和优点等方面对本发明有更好的理解,附图中:
图1是本发明的一示范性实施例的计算机系统的示意框图;
图2是本发明的一些示范性实施例的存储器和控制位的示意图;
图3是本发明的一些示范性实施例的机器校验寄存器和软位修理(soft bit fix)计数寄存器的体系结构的示意图;
图4是本发明的示范性实施例的管理存储器线中的一位失效的方法的简要流程图;
图5是反映本发明的示范性实施例的寄存器的状态在时间上变化的时间表的示意图,该图有助于说明图4的方法;
图6是说明根据本发明的示范性实施例的报告存储器线中一位失效的方法的简要流程图;以及
图7是说明本发明的示范性实施例的寄存器的状态在时间上的变化的时间表的示意图,该图有助于对图6方法的说明。
当知,为使说明简明清晰,附图所示的要素不一定按比例画出。例如,为清晰起见,一些要素的尺寸相对于其它的要素可能是夸张的。另外,各附图中的标记可在认为适当的地方重复使用,以表示相应的或类似的要素。
具体实施方式
在以下的详细说明中,为了对本发明提供一个透彻的理解,提出了许多具体细节,但是,本专业的普通技术人员将会理解,本发明不用这些具体细节也能实施。在其他实例中,将不对公知的方法、程序、组件和电路予以详述,以免使本发明模糊不清。
以下详细说明的某些部分是以对计算机存储器内数据位或二进制数字信号的操作的算法和符号表达(symbolic representations)给出的。这些算法描述和表达可以是数据处理技术的技术人员所使用的方法,以便向本专业的其他技术人员传达其工作的实质内容。
除非特别指出,从以下讨论显见,整个说明书的讨论都利用诸如“处理(processing)”、“计算(computing/calculting)”、“确定(determing)”等术语,来指计算机或计算系统或电子计算装置的动作和/或过程,这样的动作和/或过程将该计算系统的寄存器和/或存储器内表达为物理的(诸如电子的)数据操纵和/或换变为该计算系统的存储器、寄存器或其它这样的信息存储器、传送或显示装置内的类似地表达为物理量的其它数据。另外,术语“多个”在整个说明书中可以用来描述两个或多个组件、装置、要素、参数等等。例如,“多个指令”表示两个或多个指令。
应该明白,本发明适合于各种应用。这里公开的电路和技术可用于诸如计算机系统、处理器、CPU、存储器、芯片组图形控制器等许多装置,但本发明在这个方面并不受限制。包括在本发明的范围内的处理器包括(仅为举例)精简指令集计算机(RISC)、具有流水线的处理器、复杂指令集计算机(CISC)等等。
例如,本发明的实施例可以用可存储一条指令或一组指令的计算机可读介质或物品实现,这些指令若由一个机器(例如,由一个处理器和/或其它适当的机器)执行,则使该机器完成本发明实施例的方法和/或操作。这样的机器可包括(例如)任何适当的处理平台、计算平台、计算装置、处理单元、计算系统、处理系统、计算机、处理器等,并可利用硬件和/或软件的任何适当的组合实现。该计算机可读介质或物品可包括(例如)任何适当类型的存储单元、存储器件、存储物品、存储介质、存储装置、存储器物品、存储介质和/或存储装置,例如存储器、可拆卸的或不可拆卸的介质、可擦除或不可擦除的介质、可写或可重写的介质、数字或模拟的介质、硬盘、软盘、只读光盘(CD-ROM)、可录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、各种数字通用盘(DVD)、带、盒带等。这些指令可以包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等,而且可用任何适当的高级、低级、面向对象的、可视的、编译后和/或解释的编程语言,例如,C,C++,Java,BASIC,Pascal,Fortran,Cobol,汇编语言、机器码等实现。
首先参照图1,其中示出根据本发明的一个示范性实施例计算机系统100的框图。计算机系统100可以是个人计算机(PC)、个人数字助理、互联网设备、蜂窝式电话机和/或任何其它计算装置,但是本发明的范围在这个方面不受限制。在本发明的一个示范性实施例中,计算机系统100可以包括一个由电源120供电的主处理单元110。主处理单元110可以包括多核处理单元130,在电气上通过系统互联135耦合到存储装置140和一个或多个接口电路150。例如,需要时,该系统互联135可以是地址/数据总线。应该明白,可以用总线以外的互连来将多核处理单元130连接到存储装置140。例如,可以用一条或多条专用线和/或交叉开关(crossbar)来将多核处理单元130连接到存储装置140。存储装置140可以包括动态随机访问存储器(DRAM)、非易失存储器等。在一个示例中,需要时,存储装置140可以存储可以由多核处理单元130执行的软件程序。
接口电路150可以包括以太网接口和/或通用串行总线(USB)接口等等,但本发明的范围在这方面不受限制。在本发明的一些示范性实施例中,一个或多个输入装置155可以连接到将数据和命令输入该主处理单元110用的接口电路150。例如,输入装置160可以包括键盘、鼠标、触摸屏、轨迹板(track pad)、轨迹球、isopoint鼠标、语音识别系统等等。
输出装置170可以用来通过一个或多个接口电路150耦合到主处理单元110,并在需要时,可以包括一个或多个显示器、打印机、扬声器和/或其它的输出装置,但本发明的范围在这方面不受限制。例如,输出装置之一可以是显示器。该显示器可以是阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器或任何其它类型的图形显示器。
根据本发明的一些实施例,计算机系统100可以包括一个或多个存储装置160。例如,需要时,计算机系统100可以包括一个或多个硬盘驱动器、一个或多个小光盘(CD)驱动器、一个或多个数字通用的磁盘驱动器(DVD)和/或其它计算机介质输入/输出(I/O)装置。
示范性计算机系统100可以通过与网络165的网络连接和其它的装置交换数据。该网络连接可以包括任何类型的网络连接,诸如,例如,以太网连接、数字用户线路(DSL)、电话线路、同轴电缆、无线网络接口电路卡等。网络165可以是任何类型的网络,诸如,例如,互联网、电话网络、电缆网络、无线网络,诸如遵循IEEE标准802.11a/b/g,1999等等的网络,根据本发明的示范性实施例,需要时,该无线网络接口电路卡(NIC)可以向该计算机系统100提供网络连通。
根据本发明的一些实施例,需要时,多核处理单元130可包括一个或多个CPU(未示出)。多核处理单元130可以包括和/或耦合到高速缓存180,诸如二级(L2)高速缓存等,在本发明的某个实施例中,高速缓存180可以包括多个线。
对高速缓存线的写或读操作可能失效,因为高速缓存线的一位可能包括错误,某些失效可在任何时侯出现,而某些可能只在低电压下才出现。
根据本发明的实施例,线中包括该错误的一位失效可以通过纠错码(ECC)信息检测出来和/或校正。例如,ECC信息可以存储在带有标记和线的高速缓存180的一位失效报告模块190的寄存器中。当读出高速缓存180的输入项时,可以对照其存储的ECC数据核查该标记和该线。该ECC可以校正和/或修理该位中的错误。为了便于阅读,校正后的位在这里可以称为一位修理(SBF:single bit fix)。该SBF可报告给位失效报告模块190。该ECC可以对32字节范围进行操作,而高速缓存180可以包括64字节,但本发明的范围在这方面不受限制。因而,按照该示例,该ECC可以对每个高速缓存线检测两个位。
根据本发明的某些实施例,位失效报告模块190可以包括一些寄存器和一些计数器。需要时,位失效报告模块190可以向计算机系统100的操作系统(OS)报告SBF。应该明白,根据本发明的一些实施例,位失效报告模块190可以用硬件或软件或通过硬件和/或软件的任何组合实现。
现参照图2,其中示出根据本发明的一些示范性实施例的存储器200的示意框图,根据本发明的一些示范性实施例的存储器200可包括高速缓存。
需要时,高速缓存可以包括一级(L1)高速缓存和/或二级(L2)高速缓存和/或三级高速缓存,例如大级数的高速缓存(Large LevelCache:LLC),但本发明的范围在这方面不受限制。存储器200可以包括线210,它可以包括位230。根据本发明的一示范性实施例,某些位可能通过翻转它们的状态而失效。例如,位220可能从数值“0”改变为“1”(或相反)。利用本发明的实施例,该失效的位可以通过ECC校正并可称之为SBF。
存储器200的线210可以包括一个或多个状态位,例如,状态位240和245,但本发明的范围在这方面不受限制。状态位240和245可分别标示为ECN1和ECN0。ECN1和ECN0可以指定在线210中进行SBF检测和校正。例如,ECN1(例如,状态位240)可用来对ECC的历史进行计数。应该明白,按照检测、校正和报告该SBF的一个算法的流程,ECN1和ECN0的数值上的变化可以跟踪线(例如,线210)的状态,但本发明的范围在这方面不受限制。
根据本发明的一些示范性实施例,对于存储器200的线210的写入和对于检测、校正和报告SBF的算法流程,状态位的状态表250可以表示状态位240和245的数值。在表250的第一行,状态位ECN1和ECN0可为“0”,这可以表示第一次在一个线和/或该线写入一位。若对该位进行了校正,例如,通过ECC,状态位ECN0可以从“0”更新为“1”,正如表250的第二行中的注释“第一次校正”所示范的。若第二次在具有经校正位的一个线成功写入(表250的第三行),则该状态位ECN0可以从“1”更新为“0”,而状态位ECN0可以从“0”更新为“1”。若在同一高速缓存线上发生第二位失效(表250的最后一行),则ECN1可以从“0”更新到“1“。
当状态位ECN0和ECN1两者的状态均为“1”时,这可以指示该高速缓存线的一个硬失效,但本发明的范围在这方面不受限制。带有该失效的线可作为一个SBF来报告。根据本发明的某些实施例,在表250中被标记为SBF的线可被禁止写入。
现参照图3,该图说明根据本发明的一些示范性实施例的机器校验体系结构(MCA)寄存器300和软位修理(soft bit fix)计数寄存器310。MCA寄存器300可以是处理器的机器校验体系结构(MCA)的一个寄存器,例如,高速缓存状态寄存器(CACHE MC ADDR),但本发明的范围不限于这个实施例。
根据本发明的这个示范性实施例,MCA寄存器300可以包括以下功能:位0到15可以指示一个MCA错误代码;位16到31可以指示特定模型的错误代码,例如,SBF,ECC等等的错误代码;位32到35,36和37可以指示高速缓存各路径的状态(例如,存储器200);位38到51可以用作ECC计数器,以便对软错误率(ESER CNT)进行计数;位52可以用作该ESER CNT的溢出(OVF)位;位53到56可以为其它的任何信息保留;位57可以指示处理器语境恶化(PCC:processor context corrupts);例如,该PCC位可设定为“1”,若在该背侧总线逻辑(BBL)发生有破坏性错误;位58(一个ADDRV位)可指示CACHe MC ADDR寄存器存在;位59可指示MISC寄存器没有设置;位60EN可指示一个错误被允许;位61可指示(例如)该处理器无法校正该错误状态和/或已发生损坏BBL单元的严重错误;位62可指示前一个错误的后果仍旧在该错误报告寄存器体中时发生MCA错误,而位63可指示其它的状态寄存器内的信息有效。应该明白,MCA寄存器300可以用硬件和/或用软件和/或硬件和软件的任何组合实现。
在本发明的至少一个示范性实施例中,SBF计数寄存器310可以对被SBF机制校正的有缺陷的线进行计数。SBF计数寄存器310可以包括:第一计数器,CNT2,用以对在一个高速缓存线(例如,位6:0)第二次重复校正的错误进行计数;以及第二计数器,CNT1,用以对在一个高速缓存线(例如,位24:11)第一次发生的经校正错误进行计数。SBF计数寄存器的其它位(例如,位10:7和30:25)可以保留。寄存器310的位31可反映在生产和/或测试过程中没有检测出SBF可设置的SBF NEVER USED熔丝的值,但本发明的范围不限于此示例。
现参照图4和图5。图4表示根据本发明的示范性实施例的管理一位失效(SBF)的方法,图5是时间表500,表示本发明的示范性实施例的寄存器的状态随时间的变化,并有助于演示图4的方法。根据本发明的一个示范性实施例,表500可以表示高速缓存线状态位ECN1和ECN0(例如,位240,245)和具有计数器、标志、状态和/或信息字段的报告寄存器(例如,CACHE MC STATUS寄存器300)。
按照这个示范性实施例,在时刻T0高速缓存状态位ECN0,ECN1和报告寄存器的计数器和字段可复位至“0”。在时刻T1,可进行对该高速缓存(例如,高速缓存200)的写入(文字框400)。在时刻T2,可进行该高速缓存线的读出和校正。若这是第一次校正(图4的判定框405),则可以向该报告寄存器报告该线的第一次校正(文字框410)。需要时(文字框415),第一计数器(例如,CNT1)可以对错误校正进行计数并可通过将其状态从“0”改为“1”进行更新。
按照此示例,ESER CNT(例如,CACHE MC STATUS寄存器的计数器,如表500所示)可以显示二进制减法运算CNT1-CNT2的结果。需要时,计数器CNT1和CNT2可以在SBF计数寄存器310中(文字框420)。该高速缓存线可被标记为第一次校正和/或被标记为一个软失效(文字框430)。例如,需要时,第一次校正的标记可以通过更新高速缓存状态位ECNT[1:0]、通过将数值“0007”写入该报告寄存器的“特定模型”字段和/或通过将数值“010A”写入该报告寄存器的“MCAOD”字段来进行。
按照此示例,在时刻T2可进行该高速缓存线的读操作,而ECC机制可能校正该高速缓存线中的一个位失效。在时刻T3,可进行另一次读出和校正。应该明白,该高速缓存线的读数和校正的第一和第二计数器(例如,状态位CNT1和CNT2)的更新可被禁止,例如,通过该ECC机制,而该报告寄存器的报告也可被禁止。在时刻T4,可进行对该经校正高速缓存线的写入(文字框435)。该第二计数器(例如,SBF计数寄存器310的CNT2)可以例如,通过将其状态从“0”改为“1”进行更新。需要时,ESER CNT计数器可以显示CNT1-CNT2,这可代表ESER CNT的减一。在时刻T5,可进行该高速缓存线的读出和校正。若该次校正是同一高速缓存线的第二次校正(判定框440),则该失效可以识别为一个硬位错误(文字框450)。该高速缓存线的状态位ECN1可与ECN0一起加一,该失效可以报告为SBF(文字框455)。需要时,该第二计数器(例如,CNT2)可以被更新,例如通过将其状态从“0”改变为“1”(文字框460)。在该报告寄存器中,ESER CNT可根据第一和第二计数器的状态(例如,CNT1-CNT2,文字框465)进行更新,而该高速缓存线可被标记为SBF(文字框470)。例如,该标记可以通过更新被熔蚀(corroded)的高速缓存线的状态位ECNT1和ECNT0的状态、通过向该报告寄存器的“特定模型”字段写入数值“0008”和通过将数值“100E”写入该报告寄存器(例如,报告寄存器300)的“MCACOD”字段来进行。
可在第三次读出并校正经校正高速缓存线后写入(文字框475),但本发明的范围在这方面不受限制。若可能出现该高速缓存线的一个位的第三次校正(判定框480),例如,在时刻T6,可以禁止向该报告寄存器报告第三次校正(文字框485)。还可以禁止ESER CNT计数器的更新(文字框490)。
根据本发明的实施例,需要时,在第二次写入经校正高速缓存线,和/或第一次写入后对该经校正高速缓存线重复进行校正之后,可以例如由主处理单元110的位失效报告单元190来进行如下操作:对若干高速缓存线的写入和读出;对一个高速缓存线中的位失效的检测和校正;对该高速缓存线状态位的更新;对报告寄存器的计数器和字段的更新;对SBF计数器寄存器的计数器的更新;以及在第二次写入经校正高速缓存线后和/或在对第一写入后对经校正高速缓存线重复校正之后禁止对高速缓存线的第三次校正的状态位和寄存器进行更新和报告。
现参照图6和图7。图6是根据本发明的示范性实施例来更新单比特修复(SBF)计数器的方法。图7是一个时间表700,用以反映根据本发明的示范性实施例的寄存器的状态随时间的变化,这有助于演示图6的方法。
根据本发明的一个示范性实施例,表700可表示高速缓存线的状态位ECN0和ECN1(例如,位240,245)、具有计数器、标志、状态和/或信息字段的报告寄存器(例如,CACHE MC STATUS寄存器300)以及SBF计数寄存器(例如,SBF计数寄存器310)。
按照这个示范性实施例,SBF计数寄存器可以包括计数器CNT1和CNT2。该第一计数器CNT1可以对高速缓存线中的位的ECC校正的总次数进行计数。该第二计数器,CNT2可以对报告为有缺陷的高速缓存线的总数进行计数。例如,报告为SBF的线,直至该计数超过阈值,例如,到值127为止。
按照图6的方法,若完成对经校正线的读操作和校正操作(判定框600)和若SBF的上限超过该阈值,例如,若计数器CNT2的值等于127(判定框610),则对每一次向曾经纠错的高速缓存线的写操作,例如,在表700的时刻T502、T504、T507、T509,该写操作的校正可以报告为单个ECC(文字框620)。例如,可以在超过阈值后报告有缺陷的高速缓存线的数目。另外,可进行第一计数器(例如,CNT1)的更新(文字框630)。需要时,可以按照ESER CNT=CNT1-CNT2(文字框620)更新ESER CNT计数器的值。另外,在该报告寄存器中,ESER CNT计数器可以在超过该阈值后对该存储器线所作的校正次数进行计数。
根据本发明的实施例,该方法可以反复用于该高速缓存线的每个写入、读出和校正周期,如表700的时刻T503到T509所示。按照该示例,计数器ESER CNT可以对超过SBF阈值后的错误进行计数,计数器CNT1可对SBF错误的总数进行计数,但本发明的范围决不限于这方面。
尽管本发明的某些特征已在文中作了举例说明和描述,但是本专业技术人员仍将会想出许多修理、替代、变更和等效物。因此,应该理解,后附的权利要求书将涵盖所有落入本发明的实质要旨内的所有修理和变更。

Claims (21)

1.一种用于报告存储器位校正的方法,包括:
分别对线中的位失效的第一次和第二次校正更新第一和第二计数器,其中更新第一和第二计数器包括:
第一次写入所述线,并更新第一计数器;
第一次读出并校正所述线中的位失效,以提供经校正线;以及
第二次写入所述线并更新第二计数器;以及
在第三次校正所述线中的位失效后,禁止第一和第二计数器的更新。
2.权利要求1的方法,包括:
第二次读出并校正所述经校正线中的位失效;
第三次写入所述经校正线;以及
禁止第一和第二计数器的更新。
3.权利要求1的方法,包括:
在第一次写入所述线后重复所述经校正线的读出和校正时,禁止第一和第二计数器的更新。
4.权利要求1的方法,包括:
在第一次写入所述线后,禁止对于所述经校正线的重复读出和校正的报告。
5.一种主处理单元,包括:
具有两线或多线的存储器,其中一线包括多个数据位和用以报告所述线的数据位中的失效校正的第一和第二状态位,其中,为所述线的位的第一失效而更新第一状态位,为所述线的位的第二失效而更新第二状态位;
报告寄存器,用以根据第一和第二状态位报告所述线的校正数;以及
数据位失效报告组件,用以根据所述线中的数据位失效的第一次和第二次校正,分别更新所述报告寄存器的第一和第二计数器,并禁止第一和第二计数器为所述线的数据位失效的第三次校正而更新。
6.权利要求5的主处理单元,其中,所述位失效报告组件能够在第一次写入所述线后更新第一计数器,在第二次写入所述线后更新第二计数器,并在所述线中的所述数据位失效的第二次校正后更新第二计数器。
7.权利要求5的主处理单元,其中,所述位失效报告组件能够在第三次写入第二次经校正线后禁止第一和第二计数器的更新。
8.权利要求7的主处理单元,其中,所述位失效报告组件能够在第一次写入所述线后重复读出并校正第一次经校正线时,禁止第一和第二计数器的更新。
9.权利要求8的主处理单元,所述位失效报告组件能够在第一次写入所述线后,禁止对于第一次经校正线的重复读出和校正的报告。
10.权利要求7所述的主处理单元,其中,所述位失效报告组件能够在第一计数器超过预定阈值后,根据对所述存储器线的校正数来更新第二计数器。
11.一种计算机系统,包括:
无线网络接口卡,用以提供与网络的连接;以及
主处理单元,其中设有:
具有两线或多线的存储器,其中,一线包括多个数据位和用以报告所述线的数据位中的失效校正的第一和第二状态位,其中,为所述线的数据位的第一失效而更新第一状态位,为所述线的数据位的第二失效而更新第二状态位;
报告寄存器,用以根据第一和第二状态位报告所述线的校正数;以及
数据位失效报告组件,用以根据所述线中数据位失效的第一次和第二次校正分别更新所述报告寄存器的第一和第二计数器,并禁止第一和第二计数器为所述线的数据位失效的第三次校正而更新。
12.权利要求11的计算机系统,其中,所述位失效报告组件能够在第一次写入所述线后更新第一计数器,在第二次写入所述线后更新第二计数器,并在第二次校正所述线中的数据位失效后更新第二计数器。
13.权利要求11的计算机系统,其中,所述位失效报告组件能够在第三次写入第二次经校正线后禁止第一和第二计数器的更新。
14.权利要求13的计算机系统,其中,所述位失效报告组件能够在第一次写入所述线后重复读出并校正第一次经校正线时,禁止第一和第二计数器的更新。
15.权利要求14的计算机系统,所述位失效报告组件能够在第一次写入所述线后,禁止对于第一次经校正线的重复读出和校正的报告。
16.权利要求13的计算机系统,其中,所述位失效报告组件能够在第一计数器超过预定阈值后,根据对所述存储器线的校正数更新第二计数器。
17.一种用于报告存储器位校正的装置,包括:
用于分别为线中位失效的第一次和第二次校正更新第一和第二计数器的部件,其中所述用于更新第一和第二计数器的部件包括:
第一次写入所述线并更新第一计数器的部件;
第一次读出并校正所述线中的位失效,以提供经校正线的部件;以及
第二次写入所述线并更新第二计数器的部件;以及
在所述线中的位失效的第三次校正后,禁止第一和第二计数器的更新的部件。
18.权利要求17的装置,包括:
第二次读出并校正在所述经校正线中的位失效的部件;
第三次写入所述经校正线的部件;以及
禁止第一和第二计数器的更新的部件。
19.权利要求17的装置,包括:
在第一次写入所述线后重复读出并校正所述经校正线时,禁止第一和第二计数器的更新的部件。
20.权利要求17的装置,包括:
在第一次写入所述线后,禁止对于所述经校正线的重复读出和校正的报告的部件。
21.权利要求17的装置,包括:
对报告为有缺陷线的存储器线的数量进行计数,直到超过阈值为止的部件;以及
在超过所述阈值后报告有缺陷线的数量的部件。
CN2006800490502A 2005-12-29 2006-12-11 报告存储器位校正的方法和装置 Expired - Fee Related CN101346697B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/320,496 US7590913B2 (en) 2005-12-29 2005-12-29 Method and apparatus of reporting memory bit correction
US11/320,496 2005-12-29
PCT/US2006/047301 WO2007078701A2 (en) 2005-12-29 2006-12-11 Method and apparatus of reporting memory bit correction

Publications (2)

Publication Number Publication Date
CN101346697A CN101346697A (zh) 2009-01-14
CN101346697B true CN101346697B (zh) 2012-11-14

Family

ID=37998302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800490502A Expired - Fee Related CN101346697B (zh) 2005-12-29 2006-12-11 报告存储器位校正的方法和装置

Country Status (4)

Country Link
US (1) US7590913B2 (zh)
KR (1) KR101001071B1 (zh)
CN (1) CN101346697B (zh)
WO (1) WO2007078701A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626242B2 (en) 2015-05-08 2017-04-18 International Business Machines Corporation Memory device error history bit

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8640005B2 (en) * 2010-05-21 2014-01-28 Intel Corporation Method and apparatus for using cache memory in a system that supports a low power state
US9075904B2 (en) * 2013-03-13 2015-07-07 Intel Corporation Vulnerability estimation for cache memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571069A (zh) * 2003-02-07 2005-01-26 株式会社瑞萨科技 非易失性存储系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999051A (en) 1974-07-05 1976-12-21 Sperry Rand Corporation Error logging in semiconductor storage units
DE3176883D1 (en) 1981-12-17 1988-10-27 Ibm Apparatus for high speed fault mapping of large memories
US6615374B1 (en) 1999-08-30 2003-09-02 Intel Corporation First and next error identification for integrated circuit devices
US6715116B2 (en) * 2000-01-26 2004-03-30 Hewlett-Packard Company, L.P. Memory data verify operation
US7346812B1 (en) * 2000-04-27 2008-03-18 Hewlett-Packard Development Company, L.P. Apparatus and method for implementing programmable levels of error severity
US6993623B2 (en) * 2002-12-23 2006-01-31 Micron Technology, Inc. Parity bit system for a CAM
US20070094569A1 (en) * 2005-10-24 2007-04-26 Thayer Larry J Determining hard errors vs. soft errors in memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571069A (zh) * 2003-02-07 2005-01-26 株式会社瑞萨科技 非易失性存储系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626242B2 (en) 2015-05-08 2017-04-18 International Business Machines Corporation Memory device error history bit
US9690649B2 (en) 2015-05-08 2017-06-27 International Business Machines Corporation Memory device error history bit

Also Published As

Publication number Publication date
CN101346697A (zh) 2009-01-14
KR101001071B1 (ko) 2010-12-14
WO2007078701A3 (en) 2008-01-03
KR20080072948A (ko) 2008-08-07
WO2007078701A2 (en) 2007-07-12
US20070165041A1 (en) 2007-07-19
US7590913B2 (en) 2009-09-15

Similar Documents

Publication Publication Date Title
US9189326B2 (en) Detecting and correcting hard errors in a memory array
CN102792265B (zh) 基于机器状态的指令破解
CN102216904B (zh) 用于数据处理系统中的高速缓存的可编程错误动作
US8205136B2 (en) Fault tolerant encoding of directory states for stuck bits
CN103930878A (zh) 用于存储器验证的方法、装置及系统
KR20170059219A (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 복구 검증 방법
CN108228396A (zh) 用于处理驱动器的错误的方法和设备
EP2770507B1 (en) Memory circuits, method for accessing a memory and method for repairing a memory
CN104115092A (zh) 电压调节器的微处理器辅助自动校准
KR20100031148A (ko) 누적 테스트를 위한 반도체 메모리 장치 및 이를 포함하는 시스템
CN101346697B (zh) 报告存储器位校正的方法和装置
CN101980339A (zh) 一种用于dram缓存的纠错编码方法
KR20140079850A (ko) 패리티 및 리던던트 행들을 이용한 동적 에러 핸들링
CN102543196A (zh) 数据读取方法、存储器储存装置及其控制器
CN106663471A (zh) 用于反向存储器备份的方法和装置
US8352812B2 (en) Protecting data storage structures from intermittent errors
CN101582294B (zh) 一种解决sram模块闩锁问题与增强sram模块可靠性的方法
US7689891B2 (en) Method and system for handling stuck bits in cache directories
CN102800357B (zh) 程序码载入与存取方法、存储器控制器与存储器储存装置
CN104809031A (zh) 操作存储器的方法及存储器装置
CN105260256A (zh) 一种双模冗余流水线的故障检测及回退方法
CN100449498C (zh) 数据储存装置
CN106610862B (zh) 支持eeprom掉电测试的仿真器
US11409617B2 (en) Hardware bit-vector techniques
CN103985410A (zh) 一种存储装置及用于存储装置的数据访问方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121114

Termination date: 20141211

EXPY Termination of patent right or utility model