CN101996689B - 存储器错误处理方法 - Google Patents
存储器错误处理方法 Download PDFInfo
- Publication number
- CN101996689B CN101996689B CN201010257211.5A CN201010257211A CN101996689B CN 101996689 B CN101996689 B CN 101996689B CN 201010257211 A CN201010257211 A CN 201010257211A CN 101996689 B CN101996689 B CN 101996689B
- Authority
- CN
- China
- Prior art keywords
- redundant
- storage area
- area
- address
- access
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1208—Error catch memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Dram (AREA)
Abstract
本发明提供一种存储器错误处理方法,该方法包括:取得一存储器中一失效区的一地址;依据该地址判断出一错误形态;若该错误形态不包括一软错误,则利用冗余技术修复该错误。由于本发明处理及修复错误的过程被控制在子系统之中,不需要与其他电路进行交握程序(handshaking),因此本发明可被视为一种单芯片解决方案。
Description
技术领域
本发明涉及存储器错误。各实施例运用错误检测与纠正技术((ErrorCheckingand Correcting,ECC)以及冗余行(redundancy row)及冗余列(redundancy column)修复潜在错误以及VRT错误。
背景技术
存储器常发生各种形态的错误。软错误,通常是半导体封包中的α粒子以及环境中的中子所造成。VRT则发生在当一位时而为弱位时而为强位时,此现象会使装置纵使能够通过最终测试(例如芯片制造商出厂该装置前所做的测试),之后仍会不定时的失效。除了VRT通常在存储器的固定地址上复发之外,其与软错误有许多相似的现象。由于存储一位的晶体管上栅极与漏极间的电性短路之故,半导体电路的效能会随时间衰减。存储器中发生的这些错误会导致潜在失效(latent failure),而这些潜在失效会使装置在通过测试而离厂后(例如5到10年后)发生失效。软错误常随机发生,并且不太可能发生在相同的区域,而VRT及潜在错误则容易发生在相同的区域。烧入测试(Burn-in test)虽可改善潜在错误的发生,但所费不赀。
内容定址存储器(content addressable memory,CAM)的相关作法,会在错误发生时使用影子存储器(shadow memory)而将内部DRAM重新导向至外部SRAM,但是,由于外部电路及布局面积之故,影子存储器价格也不便宜。
错误检测与纠正法也广泛运用于包括网络系统在内的电子电路当中。在汉明码(Hemming code)中,若使用32位,可加入额外的6位以进行单错校正(single error correction),以及加入额外的7位以进行单错校正及双错检测(double error detection)。额外的位则称为ECC或同位位(parity bit)。
发明内容
为克服现有技术中的缺陷,本发明提供一种存储器错误处理方法,包括:取得一存储器中一失效区的一地址;依据该地址判断出一错误形态;若该错误形态不包括一软错误,则利用冗余技术修复该错误。
本发明另提供一种存储器错误处理方法,包括:检测位于一存储区域的一错误;辨识出该错误为一软错误,若该错误首次发生于该存储区域,则将该存储区域的一地址加入至一列表;以及若该错误发生于该存储区域至少两次,则以一冗余区取代该存储区域。
本发明另提供一种存储器错误处理方法,包括:取得存储器中一失效区的一地址;若该地址不在软错误地址的列表中,则执行一软错误校正程序;以及若该地址在软错误地址的列表中,则执行一硬错误校正程序;其中该软错误校正程序包括:将该地址加入至该列表;以下列方法之一修复该失效区:在存取该失效区前,以利用该存储器的一应用程序覆写该存储区域;在存取该失效区前,以利用该存储器的一处理单元安排对该存储器区的覆写;以及覆写该失效区;以及其中该硬错误校正程序包括:以下列方法之一修复该失效区:以一冗余行取代具有该失效区的一行;以一冗余字取代具有该失效区的一字;以及以一冗余列取代具有该失效区的一列。
由于本发明处理及修复错误的过程被控制在子系统之中,不需要与其他电路进行交握程序(handshaking),因此本发明可被视为一种单芯片解决方案。
附图说明
图1为本发明的实施例所采用的范例系统100。
图2表示一eDRAM 200,用以说明eDRAM 120-1-1的第一实施例。
图3表示一eDRAM 300,作为eDRAM 120-1-1的第二实施例。
图4表示一eDRAM 400,其作为eDRAM 120-1-1的第三实施例。
图5为依据本发明一实施例的一判断流程500。
其中,附图标记说明如下:
120-1~IP巨集;
120-1-1~eDRAM;
120-1-2~冗余引擎;
120-1-3~ECC引擎;
120~SoC;
120-2~RTL;
120-2-1~BISTR;
120-2-2~失效地址引擎;
130~外部ASIC;
120~eDRAM;
245~存储器库;
240~失效行;
240-5~失效区域;
210~冗余行;
210-5~冗余区域;
220~区域感测放大器;
240-1~失效字;
210-1~冗余字;
255~冗余存储器库;
210~冗余行;
410~冗余列;
440~失效列;
220~区域感测放大器。
具体实施方式
下文为介绍本发明的最佳实施例。各实施例用以说明本发明的原理,但非用以限制本发明。本发明的范围当以随附的权利要求项为准。
范例系统
图1为本发明的实施例所采用的范例系统100。系统100包括一单芯片系统(system-on-chip,SoC)120、位于SoC120外部的一特定应用集成电路(application specific integrated circuit,ASIC)130,以及其他电路及软件(为简化说明,图未示)。在一实施例中,系统100包括一网络路由器或一网络切换器,但本发明的其他实施例则不限于特定应用,也可应用于其他系统之中。依照不同的实施例,系统100可用来修复错误,或令其他单元如SoC120、ASIC130等修复错误。此外,当首次发现错误,或预定于其他适当时间修复错误时,系统100可用以修复错误该错误。修补错误的方法包括以ECC引擎120-1-3所计算并提供的数据覆写失效区,或将该失效区中既有数据的逻辑电平翻转。
SoC120代表一子系统,其使用eDRAM 120-1-1,而该eDRAM 120-1-1可能存在需要被修复的错误。一般来说,SoC120包括一复合的电子计算系统,具有可被整合于一芯片的多个子系统。SoC120的范例元件包括一中央处理器(central processing unit,CPU)、一数据存储单元(例如存储器)、一IO控制器、数字或模拟电路(图皆未示)。在一实施例中,SoC120包括一网络封包缓冲器,用以存储、处理并适时提供数据封包。举例而言,本文中的系统或子系统包括具有智慧能力的计算单元。
IP巨集(IP-macro)120-1一般来说为一功能区块或一子系统。在图1的实施例中,由于IP巨集120-1包括eDRAM 120-1-1(例如存储器),所以IP巨集120-1可称为存储器子系统。
eDRAM 120-1-1一般来说包括存储器单元的多个存储器库(bank)。各存储器库包括多个行、列以及相关电路(例如,感测放大器、字线、位线)等。eDRAM 120-1-1的容量会随着应用的不同而改变,举例而言,容量可为1、2、4Mb等。存储器单元的一行可被称为一字。本发明的各个实施例分别提供各种机制以即时修复发生于eDRAM 120-1-1的错误(例如软错误、潜在错误、VRT等)。本文中的eDRAM 120-1-1仅为方便说明,其他存储装置诸如静态随机存取存储器(SRAM)、快闪存储器(flash)、单次可编程式存储器(one timeprogram,OTP)、多次可编程式存储器(multi-time program,MTP)等等,皆在本发明的涵盖范围之内。eDRAM 120-1-1可适时以同位位而将数据传输至ASIC130。
冗余引擎120-1-2用以将存取eDRAM 120-1-1的地址与存储器中已知的失效位置进行比较,目的在将存取位置重新导向至其他冗余(备用)位置以取代已知的失效存储器区域。通常在制造阶段中的最终测试时,所有的冗余位置皆已被设定完成。在各实施例中,皆保留多个备用位置,以做为在发现潜在错误或VRT错误时进行取代作业之用。
在各实施例中,冗余引擎120-1-2存储了该失效区的地址。当所述多个地址出现错误时,则冗余引擎120-1-2可依照失效地址引擎120-2-2所提供的信息识别出该失效区、控制并认证用以修复上述失效区的对应冗余位置。一旦失效区被修复,冗余引擎120-1-2可适时地将对该失效区的存取重新导向至一冗余位置。一般来说,当一错误发生时,通常没有足够的时间在下次存取前进行修复。而发生硬错误时,ECC引擎120-1-3会持续遮蔽该单位错误,并保护其数据直到被修复回止。此作法具有足够的时间进行错误发现以及修复作业。
随着不同应用,eDRAM 120-1-1中的错误会以不同方式被修复。举例而言,若eDRAM 120-1-1中的数据已呈静态一阵子,则冗余引擎120-1-2会另外排定修复的时程(例如,通过ECC引擎120-1-3、SoC120,或系统100进行修复等等),但若该数据已转态,则以刷新数据复写该失效区域,忽略覆写或校正的需求。举例而言,当eDRAM 120-1-1是一循环FIFO输入时,则利用FIFO的应用程序可将数据写入错误的区域后始进行下一次数据存取的动作,在各实施例中,此应用程序可对该笔数据进行覆写,实际上即修复了上述错误数据。因此,不需要其他动作即修复了该错误数据。
一般来说,ECC引擎120-1-3会在与其他电路(例如,eDRAM 120-1-1、ASIC130等等)沟通时将入站数据(inbound data)编码而存储,并将出站数据(outbound data)解码并校正。ECC引擎120-1-3识别出该入站数据并将其加上必要的同位位。当eDRAM 120-1-1被存取时,其会依据ECC引擎120-1-3是否发现错误,而将该数据及相关同位位会被传送至ECC引擎120-1-3。一般来说,当eDRAM 120-1-1中发生一错误时,ECC引擎120-1-3可依照该数据及相关同位位辨识出错误以及失效位的地址,并标示出该错误。在一实施例中,ECC引擎120-1-3使用六个同位位以校正32位的数据字中的单错(single error),并使用七个位校正单错并检测双错(double error)。在各实施例中,由于ECC引擎120-1-3可依照SoC设计者的设定,因此适合于各种设计规格下的不同数据宽度,相对于必须限制ECC引擎的数据宽度的其他方法而言是具有优点的。此弹性可使本发明更加能够相容于存储器编译器的设计与制造。本发明的各实施例可使用本领域已知的ECC引擎120-1-3。
公知的RTL120-2一般来说包括标准ASIC单元,具有各种功能区块。一般来说,内建自我冗余测试(built-in self test with redundancy,BISTR)引擎120-2-1具有可适时修复错误的修复演算法,并可用以产生RTL-120-2。BISTR引擎120-2-1具有取得以及提供失效地址的能力,可被其他元件(例如SoC120、eDRAM 120-1-1等等)运用。BISTR120-2-1也具有修复失效区的能力。部分实施例中,ISTR引擎120-2-1可与失效地址引擎120-2-2联合使用,运用SoC120的BISTR引擎120-2-1中既有的演算法以取得各个处理过的地址,并因而辨识出待修复的地址。某些实施例中,由于可共用BISTR120-2-1的既有电路,因此节省了电路布局的空间。
失效地址引擎120-2-2可依据失效的历史(例如,已存储的失效地址列表)判断失效的型态,以及后续适应措施。由于软错误是随机发生,并且通常不会都发生在相同区块,因此,若一错误仅在一区域中发生一次(例如,第一次),失效地址引擎120-2-2将会视其为一种软错误。然而,若该错误在相同区域发生两次以上(例如,发生第二次、第三次等),失效地址引擎120-2-2则视其为一种潜在错误或一种VRT错误。为方便说明,本文中的潜在错误及VRT错误皆称为“硬错误”。在各实施例中,失效地址引擎120-2-2会存储一失效地址列表。当一错误发生时,失效地址引擎120-2-2会将该失效地址与存储的该失效地址列表相比较。若发现并未符合,则失效地址引擎120-2会假设该错误为软错误。然而,若发现符合,则失效地址引擎120-2-2会将该错误视为硬错误。失效地址引擎120-2-2可依照ECC引擎120-1-3所提供的信息,计算失效区中的正确数据,并将计算结果提供至冗余引擎120-1-2。失效地址引擎120-2-2可适时将修复失效地址的请求传送至冗余引擎120-1-2,而该冗余引擎120-1-2可即时利用冗余技术进行修复。在不同实施例中,可采用内容定址存储器(content addressable memory,CAM)作为失效地址引擎120-2-2,或是将BISTR引擎120-2-1中的撷取与比较功能作为该失效地址引擎120-2-2的部分,以判断上述错误型态。
ASIC130一般来说具有一特定应用设计,而在图1的实施例中,其包括一网络处理单元(network processing unit,NPU)。ASIC130可被视为系统100的大脑。在各实施例中,ASIC130监控ECC的标记,并判断数据是否正确或是否需要被修复。若检测到标记(例如,曾被辨视出的错误),则ASIC130存储该标记地址(例如,失效单元的地址)。当ASIC130发现待修复的数据,则标识出地址,并将该地址传送至失效地址引擎120-2-2。在一实施例中,ASIC130可延后修复的时间,而让系统100决定何时为修复错误的优选时机。SoC120可用以执行上述功能。
eDRAM的第一实施例
图2表示一eDRAM 200,用以说明eDRAM 120-1-1的第一实施例。eDRAM200包括多个存储器库,但为方便说明,本文仅以一存储器库245与一冗余引擎120-1-2为例。
eDRAM 200的各存储器库包括多个存储器单元的行、列,及相关电路,而多个冗余行210用以修复eDRAM 200的错误。冗余行210的数量可随不同的应用与设计而改变,并依据不同的因素进行考虑,举例而言,这些因素包括eDRAM 200的期望生命周期,以及在该生命周期中预估的失效次数。为方便说明,包含失效单元240-5的行称为失效行,而存储器库245具有一失效行240以及用以取代该失效行240的冗余行210。冗余行210包括对应该失效区240-5的一冗余区210-5。
在因为“硬错误”而取代失效行240之前,冗余引擎120-1-2会先认出用以取代该失效行240的冗余行210。一般来说,eDRAM 200可通过BIST引擎120-2-1中的修复演算法或者冗余引擎120-1-2所指定的专用区域而从失效地址引擎120-2-2接收区域240-5的失效地址,而该失效地址对应待修复的失效行240。在一实施例中,冗余引擎120-1-2取得区域感测放大器220的失效行240的数据,并通过冗余引擎120-1-2的全域写入驱动器将对应数据写入区域感测放大器220。冗余引擎120-1-2之后启动取代失效行240的冗余行21,并将数据由区域感测放大器220写入该冗余行210。在一实施例中,整行240的存储器单元数据皆由失效行240平行转移至冗余行210,相对于以串行方式进行转移的方式来得节省时间。在一实施例中,仅取代包括该失效区240-5的字,而非取代整行240。一旦上述错误被完全修复后,冗余引擎120-1-2会将未来对失效行240中失效地址240-5的存取重新导向至冗余行210中的对应已修复地址210-5。在一实施例中,失效地址引擎120-2-2可在冗余引擎120-1-2的一暂存器中设定失效区240-5及对应的冗余区210-1。当eDRAM 120-1-1被存取时,会以该暂存器核对此存取地址,若发现符合,则冗余引擎120-1-2将此存取重新导向至存储于该暂存器中的正确冗余区210-1。
在各实施例中,电路中的所有感测放大器可从存储器库的顶部与底部间分成两部分,并共用一全域位线。在一实施例中,可能无法在一周期内将数据从错误的行上转移至冗余行上,但可在2个或2个以上的周期内完成。
某些实施例仅需要一个或两个NOP指令即可修复错误(例如通过交换具有错误位的行)。因此,这些实施例对系统操作的不良影响很小。
eDRAM的第二实施例
图3表示一eDRAM 300,作为eDRAM 120-1-1的第二实施例。在此实施例中,相较于eDRAM 200而言,eDRAM 300的各个存储器库(例如存储器库245)皆不包括冗余行210。然而,eDRAM 300的冗余行210则包含于一分离的冗余库中,例如冗余库255。冗余库255的数目与冗余库255中冗余行210的数目皆随着不同的应用及设计而有所不同,视各种因素而定,例如,eDRAM 300的预期生命周期、在该生命周期下的估计失效次数。
在某些实施例中,各存储器库245包括冗余库255,通过全域位线或全域数据线相连接,并通过区域感测放大器(例如图2的区域感测放大器220的输出而连接至全域感测放大器(图未示)。依据ECC引擎120-1-3所提供的信息,冗余引擎120-1-2可辨识出失效区240-5或失效字240-1,并采取适当行动,例如利用全域位线翻转失效区240-5中失效数据的状态。举例而言,失效地址引擎120-1-2可使用ECC引擎120-1-3提供的数据建立正确的字数据,并将该数据写入冗余字(redundancy word)210-1之中。
在一实施例中,冗余引擎120-1-2设定待修的失效行240,并将失效字240-1的数据复制到其对应冗余字210-1中。在一实施例中,冗余引擎120-1-2可排定写入程序输出至冗余区210-5中正确数据的时间,或延迟写入时间至下个周期(不需要NOP操作)。在一实施例中,冗余引擎120-1-2可在下个周期将失效区240-5中校正的数据写入至冗余区210-5。
一旦具有失效区240-5的失效字240-1完全被修复,冗余引擎120-1-2会将对失效区240-5所进行的数据存取作业重新导向至正确的冗余区210-5。
图3的实施例具有多个好,此乃因为冗余库245的冗余行210可用来修复存储器库的失效区240-5或失效字240-1。
eDRAM的第三实施例
图4表示一eDRAM 400,其作为eDRAM 120-1-1的第三实施例。相较于eDRAM 200或300而言,eDRAM 400具有多个冗余单元及相关电路(例如位线、感测放大器等等),用以修复位线或位线感测放大器区上的错误。为方便说明,具有失效区240-5的列称为失效列440,而图中存储器库245具有一失效列440以及一冗余列410,该冗余列410包括对应该失效区240-5的一冗余区210-5。冗余列410的数目随着不同的应用与设计而改变,视各种因素而定,例如eDRAM400的预期生命周期、以及在该生命周期下的估计失效次数。
在此例中,感测放大器中发现了一个硬错误,该错误影响了失效列440的所有单元。冗余引擎120-1-2将失效列440中的各单元与冗余列410中的各单元交换。一旦失效列440被该冗余列(例如存储器单元要感测放大器等)置换之后,冗余列410中所有单元将被写入正确的数据。在一实施例中,这些冗余单元将被视为具有软错误并修改所述多个软错误。举例而言,当对冗余列410的一单元进行存取,而ECC引擎120-1-3侦得一错误时,由于该错误是第一次发生在该区域上,所以ECC引擎120-12将其视为软错误,并以适当方式修复之。
或者,冗余引擎120-1-2可排定将正确数据写入冗余列410的时间。举例而言,冗余引擎120-1-2可等待多个周期,并请求NOP指令(例如,向系统100、SoC120,或ASIC130等)以写入该数据。举例而言,如果冗余列410有128个单元,则冗余引擎120-1-2写入128个单元(即128次),若冗余列410有256个单元,则冗余引擎120-1-2写入256个单元,以此类推。
范例判断流程
图5为依据本发明一实施例的一判断流程500。在一实施例中,判断流程500可由一有限状态机实施(finite state machine),有限状态机包括以软件运行于一处理器上的硬件逻辑等等。判断流程500可运行于不同位置,例如系统100、SoC120要ASIC130等等。在本文中,判断流程500由一失效地址引擎120-2-2实施。
在区块510中,eDRAM 120-1-1被存取。此时,ECC引擎120-1-3正在监视错误。若发生错误,则失效地址引擎120-2-2会取得ECC错误的错误标记所代表的失效地址。
在区块520中,失效地址引擎120-2-2判断ECC引擎120-1-3是否标示出一错误。若ECC引擎120-1-3并未标出错误,则在区块530中,失效地址引擎120-2-2照常运行,而系统100亦同。
然而,若ECC引擎120-1-3标示出一错误,并因而取得失效区240-5的失效地址,则在区块540中,失效地址引擎120-2-2由ECC引擎120-1接收失效地址区域240-5,并将该失效地址区域240-5与前述失效地址列表进行比对,该失效地址列表实际上包括软错误(例如,SER)地址列表。
若不相符合(例如,失效地址区域240-5不在存储的SER地址列表之中),失效地址引擎120-2-2会辨视出新的失效位置,并将该错误视为一软错误,并在区块56中,将失效地址区域240-5存储于SER地址列表。
在区块570中,失效地址引擎120-2-2校正该SER错误。在一实施例中,失效地址引擎120-2-2会等候该失效SER位置240-5被正确数据覆写。或者,失效地址引擎120-2-2利用该ECC引擎120-2-3提供的正确数据以及失效区240-5以将失效区240-5中现存的错误数据予以翻转。在各实施例中,失效地址引擎120-2-2可利用eDRAM 120-1-1覆写该失效区。一般来说,若失效地址引擎120-2-2认为数据可在下一次存取前被覆写,则可依此进行。按照定义,覆写失效区即修复错误。
在区块580中,一旦失效区240-5完全被修复(例如以正确数据覆写),则失效地址引擎120-2-2将标出失效地址区域240-5以指出失效问题已解决,而失效区240-5可被视为一正常存储器单元。
然而,在区块540的判断后发现符合时(例如,失效地址240-5在失效地址列表之中),则失效地址引擎120-2-2不会视错误为一软错误,由于失效发生在相同位置240-5至少两次,因此会将该错误视为硬错误。
若该硬错误未被修复,则在区块590中,失效地址引擎120-2-2会等候冗余引擎120-1-2修复该硬错误。在一实施例中,失效地址引擎120-2-2会与冗余引擎120-1-2找出冗余行210以修复失效行240、找出冗余字210-1以修复失效字240-1,或找出冗余列410以修复失效列440。
在各实施例中,一旦找出冗余行210、冗余字210-1、或冗余列410,冗余区210-5未必具有正确数据。在区块595中,失效地址引擎120-2-2会校正冗余区210-5的数据。在一实施例中,冗余引擎120-1-2会等候冗余区210-5的覆写,或者适时覆写冗余区210-5的数据。在图4交换列的实施例中,冗余引擎120-1-2会覆写冗余列410的所有单元。或者,冗余引擎120-1-2会利用ECC引擎120-1-3所提供的已校正数据以及失效区240-5的地址而将冗余区210-5的数据逻辑态翻转。
一旦冗余区210-5被写入正确数据(即错误已被完全修复),区块598中的失效地址引擎120-2-2会将失效区240-5标示为“已完全修复”。
然而,在进行判断的区块540中,若失效区240-5并非软错误,其已被修复过一次但又再次失效,则在区块550中,系统100会视该错误为“无法修复”,并照常运行。
本发明相较于其他方法而言具有多种优点,由于本发明处理及修复错误的过程被控制在子系统(例如,SoC120、ASIC130、系统100等等)之中,不需要与其他电路进行交握程序(handshaking),因此本发明可被视为一种单芯片解决方案。举例而言,在图1的实施例中,其中SoC120可用以处理错误,而冗余引擎120-1-2、ECC引擎120-1-3、以及失效地址引擎120-2-2皆可包含于单一SoC120之中,系统100不需要与在SoC120与ASIC130之间进行交握程序,甚至不需要判断错误是否已发生或已被修复。
本文已说明了本发明的多个实施例。但可了解到,本领域普通技术人员在不脱离本发明的精神下仍可对本发明进行修改。举例而言,在图1中,ECC引擎120-1-3位于IP巨集120-1之中,然而,ECC引擎120-1-3仍可位于其他位置,例如,可在RTL120-2或ASIC130之中,以此类推。ECC引擎120-1-3位置的选择可因为设计上的考虑、客户的喜好而调整,本发明实施例中并非用以限制ECC引擎120-1-3的位置。失效地址引擎120-2-2可独立于RTL120-2,即位于RTL120-2之外,或处于SoC120、ASIC130之中。本发明实施例中并非用以限制失效地址引擎120-2-2的位置。上述实施例是用来说明系统100、SoC120、ASIC130、失效地址引擎120-2-2的功能(例如,修复错误、安排修复错误的时间、发出NOP指令等等),但这些功能也可由其他电路替代,此即表示,本发明不限于由特定电路的特定功能实施。SoC120可取代系统100或ASIC130而为eDRAM 120-1-1的失效位置安排修复的时间。
本发明虽以优选实施例公开如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视随附的权利要求所界定的保护范围为准。
Claims (12)
1.一种存储器错误处理方法,包括:
取得一存储器中一失效区的一地址;
依据该地址判断出一错误形态;
若该错误形态不包括一软错误,则利用冗余技术修复该错误,以一冗余区取代该失效区,将正确数据写入该冗余区;以及当存取该存储区域时,重新导向对该冗余区的存取;
其中软错误为仅在一区域中发生一次的错误。
2.一种存储器错误处理方法,包括:
检测位于一存储区域的一错误;
若该错误首次发生于该存储区域,则将该错误辨识为一软错误,并将该存储区域的一地址加入至一列表;以及
若该错误发生于该存储区域至少两次,则以一冗余区取代该存储区域,将正确数据写入该冗余区,并当存取该存储区域时,重新导向对该冗余区的存取。
3.如权利要求2所述的存储器错误处理方法,还包括:提供至少一冗余行,其与该存储区域位于一相同存储器库。
4.如权利要求3所述的存储器错误处理方法,其中使用一冗余区取代该存储区域的步骤包括:
将具有该存储区域的一行对应至该至少一冗余行中具有该冗余区的一冗余行;
从具有该存储区域的该行复制数据至该冗余行。
5.如权利要求3所述的存储器错误处理方法,其中使用一冗余区取代该存储区域包括:
将具有该存储区域的一字对应至具有该冗余区的一冗余字;
从具有该存储区域的该字复制数据至该冗余字;
将正确数据写入该冗余区;以及
当存取该存储区域时,重新导向对该冗余区的存取。
6.如权利要求2所述的存储器错误处理方法,还包括:
提供一冗余库中的至少一冗余行,其中该冗余库与该存储区域的一存储器库分离;以及
以一冗余区取代该存储区域的步骤又包括:
将具有该存储区域的一字对应至具有该冗余区的一冗余字;
从具有该存储区域的该字复制数据至该冗余字;
将正确数据写入该冗余区;以及
当存取该存储区域时,重新导向对该冗余区的存取。
7.如权利要求2所述的存储器错误处理方法,有包括:
提供至少一冗余列;以及
以一冗余区取代存储区域包括:
将具有该存储区域的一列对应至具有该冗余区的一冗余列;
从具有该存储区域的该列复制数据至该冗余列;
将正确数据写入至该冗余区;以及
当存取该存储区域时,重新导向对该冗余区的存取。
8.如权利要求7所述的存储器错误处理方法,其中将正确数据写入至该冗余区的步骤包括将该冗余区的数据视为对应至一软错误的数据。
9.如权利要求2所述的存储器错误处理方法,其中该错误是否发生于该存储区域至少两次是依照该存储区域的该地址以及该列表判断。
10.如权利要求2所述的存储器错误处理方法,还包括执行下列方法之一:
1)在读取前,以利用该存储器的一应用程序覆写该存储区域,
2)在读取前,以利用该存储器的一处理单元安排对该存储器区的覆写,以及
3)若该错误被视为软错误,则覆写该存储区域。
11.如权利要求2所述的存储器错误处理方法,其中使用冗余技术取代该存储区域的步骤与一系统的运行同时执行。
12.一种存储器错误处理方法,包括:
取得存储器中一失效区的一地址;
若该地址不在软错误地址的列表中,则执行一软错误校正程序,以一冗余区取代该失效区,将正确数据写入该冗余区;以及当存取该存储区域时,重新导向对该冗余区的存取;以及
若该地址在软错误地址的列表中,则执行一硬错误校正程序;
其中软错误为仅在一区域中发生一次的错误,而硬错误为在相同位置发生至少两次的错误;
其中该软错误校正程序包括:
将该地址加入至该列表;
以下列方法之一修复该失效区:
在存取该失效区前,以利用该存储器的一应用程序覆写该存储区域;
在存取该失效区前,以利用该存储器的一处理单元安排对该存储器区的覆写;以及
覆写该失效区;以及
其中该硬错误校正程序包括:
以下列方法之一修复该失效区:
以一冗余行取代具有该失效区的一行;
以一冗余字取代具有该失效区的一字;以及
以一冗余列取代具有该失效区的一列。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23338709P | 2009-08-12 | 2009-08-12 | |
US61/233,387 | 2009-08-12 | ||
US12/849,157 US20110041016A1 (en) | 2009-08-12 | 2010-08-03 | Memory errors and redundancy |
US12/849,157 | 2010-08-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101996689A CN101996689A (zh) | 2011-03-30 |
CN101996689B true CN101996689B (zh) | 2014-06-04 |
Family
ID=43589307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010257211.5A Active CN101996689B (zh) | 2009-08-12 | 2010-08-12 | 存储器错误处理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20110041016A1 (zh) |
JP (1) | JP2011054263A (zh) |
KR (1) | KR101374455B1 (zh) |
CN (1) | CN101996689B (zh) |
TW (1) | TW201110133A (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9042191B2 (en) | 2009-08-12 | 2015-05-26 | Taiwan Semiconductor Manufacturing Company, Ltd. | Self-repairing memory |
US8468419B2 (en) * | 2009-08-31 | 2013-06-18 | Lsi Corporation | High-reliability memory |
US8775904B2 (en) | 2011-12-07 | 2014-07-08 | International Business Machines Corporation | Efficient storage of meta-bits within a system memory |
JP5685215B2 (ja) * | 2012-03-19 | 2015-03-18 | 富士通テレコムネットワークス株式会社 | パケット通信方法及びパケット通信装置 |
CN103514961B (zh) * | 2012-06-29 | 2016-08-10 | 台湾积体电路制造股份有限公司 | 自修复存储器、包含该存储器的计算装置以及操作存储器的方法 |
US8935592B2 (en) * | 2012-11-20 | 2015-01-13 | Arm Limited | Apparatus and method for correcting errors in data accessed from a memory device |
JP5800847B2 (ja) * | 2013-03-26 | 2015-10-28 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置、エラー処理方法 |
KR101862379B1 (ko) * | 2013-04-19 | 2018-07-05 | 삼성전자주식회사 | Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치 |
US9348697B2 (en) * | 2013-09-10 | 2016-05-24 | Kabushiki Kaisha Toshiba | Magnetic random access memory |
KR102098247B1 (ko) | 2013-11-25 | 2020-04-08 | 삼성전자 주식회사 | 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치 |
CN103942119A (zh) * | 2013-12-26 | 2014-07-23 | 杭州华为数字技术有限公司 | 一种存储器错误的处理方法和装置 |
US9378081B2 (en) | 2014-01-02 | 2016-06-28 | Qualcomm Incorporated | Bit remapping system |
US9208024B2 (en) * | 2014-01-10 | 2015-12-08 | Freescale Semiconductor, Inc. | Memory ECC with hard and soft error detection and management |
US9454422B2 (en) | 2014-01-30 | 2016-09-27 | International Business Machines Corporation | Error feedback and logging with memory on-chip error checking and correcting (ECC) |
US20150286529A1 (en) * | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Memory device having controller with local memory |
JP6175566B2 (ja) * | 2014-06-30 | 2017-08-02 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
KR102210327B1 (ko) * | 2014-08-21 | 2021-02-01 | 삼성전자주식회사 | 에러 알림 기능이 있는 메모리 장치 |
KR102238706B1 (ko) * | 2014-11-28 | 2021-04-09 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR102498208B1 (ko) | 2016-06-07 | 2023-02-10 | 삼성전자주식회사 | 여분의 용량을 포함하는 메모리 장치 및 이를 포함하는 적층 메모리 장치 |
JP6880795B2 (ja) * | 2017-02-08 | 2021-06-02 | オムロン株式会社 | 制御装置およびその制御方法 |
US10394647B2 (en) * | 2017-06-22 | 2019-08-27 | International Business Machines Corporation | Bad bit register for memory |
US11393550B2 (en) | 2018-09-14 | 2022-07-19 | Rambus Inc. | Memory system with error detection |
CN111243652B (zh) * | 2020-01-17 | 2023-09-19 | 上海华力微电子有限公司 | 一种并行冗余修正电路 |
CN114694715A (zh) * | 2020-12-31 | 2022-07-01 | 爱普科技股份有限公司 | 存储器装置、存储器系统及控制其存储器装置的方法 |
JP7392181B2 (ja) * | 2021-03-24 | 2023-12-05 | 長江存儲科技有限責任公司 | 冗長バンクを使用した故障メインバンクの修理を伴うメモリデバイス |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489766A (zh) * | 2001-06-08 | 2004-04-14 | ������������ʽ���� | 分析和修复存储器的方法和装置 |
CN1609813A (zh) * | 2003-10-24 | 2005-04-27 | 英特尔公司 | 减少硬件的软错误检测 |
CN1904843A (zh) * | 2005-07-11 | 2007-01-31 | 阿尔卡特公司 | 用于减轻运行期间集成电路存储器存储装置中的软错误的自动方法和设备 |
TW200823909A (en) * | 2006-11-23 | 2008-06-01 | Samsung Electronics Co Ltd | Semiconductor memory device and redundancy method of the same |
CN101414489A (zh) * | 2007-10-19 | 2009-04-22 | 中国科学院计算技术研究所 | 一种容错存储器及其纠错容错方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0814807B2 (ja) * | 1985-11-21 | 1996-02-14 | 日本電気株式会社 | 記憶システム |
JPS6436352A (en) * | 1987-07-31 | 1989-02-07 | Nec Corp | Memory error processing system |
US5263032A (en) * | 1991-06-27 | 1993-11-16 | Digital Equipment Corporation | Computer system operation with corrected read data function |
KR950015041B1 (ko) * | 1992-11-23 | 1995-12-21 | 삼성전자주식회사 | 로우리던던시회로를 가지는 고집적 반도체 메모리 장치 |
JP3351595B2 (ja) * | 1993-12-22 | 2002-11-25 | 株式会社日立製作所 | 半導体メモリ装置 |
US5701270A (en) * | 1994-05-09 | 1997-12-23 | Cirrus Logic, Inc. | Single chip controller-memory device with interbank cell replacement capability and a memory architecture and methods suitble for implementing the same |
JPH087596A (ja) * | 1994-06-24 | 1996-01-12 | Fujitsu Ltd | 半導体メモリ |
JP3482543B2 (ja) * | 1994-07-07 | 2003-12-22 | 株式会社ルネサステクノロジ | 半導体メモリ |
US5511164A (en) * | 1995-03-01 | 1996-04-23 | Unisys Corporation | Method and apparatus for determining the source and nature of an error within a computer system |
KR100313712B1 (ko) * | 1998-11-27 | 2002-02-28 | 오길록 | 이중화된프로세서를위한결함기반의소프트웨어결함허용방법 |
US6560725B1 (en) * | 1999-06-18 | 2003-05-06 | Madrone Solutions, Inc. | Method for apparatus for tracking errors in a memory system |
US6553510B1 (en) * | 1999-09-02 | 2003-04-22 | Micron Technology, Inc. | Memory device including redundancy routine for correcting random errors |
DE10120670B4 (de) * | 2001-04-27 | 2008-08-21 | Qimonda Ag | Verfahren zur Reparatur von Hardwarefehlern in Speicherbausteinen |
US7168010B2 (en) * | 2002-08-12 | 2007-01-23 | Intel Corporation | Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations |
US7028234B2 (en) * | 2002-09-27 | 2006-04-11 | Infineon Technologies Ag | Method of self-repairing dynamic random access memory |
US20080181035A1 (en) * | 2007-01-26 | 2008-07-31 | Atsushi Kawasumi | Method and system for a dynamically repairable memory |
US7984329B2 (en) * | 2007-09-04 | 2011-07-19 | International Business Machines Corporation | System and method for providing DRAM device-level repair via address remappings external to the device |
US8068380B2 (en) * | 2008-05-15 | 2011-11-29 | Micron Technology, Inc. | Block repair scheme |
-
2010
- 2010-08-03 US US12/849,157 patent/US20110041016A1/en not_active Abandoned
- 2010-08-12 TW TW099126893A patent/TW201110133A/zh unknown
- 2010-08-12 KR KR1020100077920A patent/KR101374455B1/ko active IP Right Grant
- 2010-08-12 JP JP2010180734A patent/JP2011054263A/ja active Pending
- 2010-08-12 CN CN201010257211.5A patent/CN101996689B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489766A (zh) * | 2001-06-08 | 2004-04-14 | ������������ʽ���� | 分析和修复存储器的方法和装置 |
CN1609813A (zh) * | 2003-10-24 | 2005-04-27 | 英特尔公司 | 减少硬件的软错误检测 |
CN1904843A (zh) * | 2005-07-11 | 2007-01-31 | 阿尔卡特公司 | 用于减轻运行期间集成电路存储器存储装置中的软错误的自动方法和设备 |
TW200823909A (en) * | 2006-11-23 | 2008-06-01 | Samsung Electronics Co Ltd | Semiconductor memory device and redundancy method of the same |
CN101414489A (zh) * | 2007-10-19 | 2009-04-22 | 中国科学院计算技术研究所 | 一种容错存储器及其纠错容错方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20110016840A (ko) | 2011-02-18 |
CN101996689A (zh) | 2011-03-30 |
JP2011054263A (ja) | 2011-03-17 |
TW201110133A (en) | 2011-03-16 |
KR101374455B1 (ko) | 2014-03-17 |
US20110041016A1 (en) | 2011-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101996689B (zh) | 存储器错误处理方法 | |
CN103019873B (zh) | 一种存储器故障单元的替换方法及装置、数据存储系统 | |
US7861138B2 (en) | Error correction in memory devices | |
CN102171659B (zh) | 非易失性存储器中的数据错误恢复 | |
US10042700B2 (en) | Integral post package repair | |
CN110111834A (zh) | 半导体存储器装置及其修复方法 | |
US11314590B2 (en) | Memory device for detecting a defective memory chip | |
US20090037782A1 (en) | Detection of address decoder faults | |
CN101379566B (zh) | 用于修复高速缓存阵列中单元的装置、系统和方法 | |
US10198314B2 (en) | Memory device with in-system repair capability | |
TWI630618B (zh) | 用於測試及組裝記憶體模組之系統及方法 | |
JP2016540288A (ja) | 不揮発性ram誤りリマッピングのための方法および装置 | |
US9514843B2 (en) | Methods for accessing a storage unit of a flash memory and apparatuses using the same | |
US4912710A (en) | Self-checking random access memory | |
US7404118B1 (en) | Memory error analysis for determining potentially faulty memory components | |
TWI527049B (zh) | 操作記憶體之方法及記憶體裝置 | |
US8176388B1 (en) | System and method for soft error scrubbing | |
CN104750577B (zh) | 面向片上大容量缓冲存储器的任意多位容错方法及装置 | |
CN110265074B (zh) | 一种层次化多重冗余的磁性随机存储器及其运行方法 | |
KR20190062879A (ko) | 스페어 피봇 고장 특성을 이용한 메모리 분석 방법 및 장치 | |
CN101341469A (zh) | 用于在数据存储器中识别供电中断和重建数据存储器的方法 | |
TWI509622B (zh) | 具分散錯誤功能的記憶體及其分散錯誤位元的方法 | |
Nicolaidis et al. | Transparent BIST for ECC-based memory repair | |
US20230230649A1 (en) | Method and device for testing memory chip | |
CN101937722A (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 |