CN107943609B - 存储器模块、存储器控制器和系统及其相应操作方法 - Google Patents
存储器模块、存储器控制器和系统及其相应操作方法 Download PDFInfo
- Publication number
- CN107943609B CN107943609B CN201710858013.6A CN201710858013A CN107943609B CN 107943609 B CN107943609 B CN 107943609B CN 201710858013 A CN201710858013 A CN 201710858013A CN 107943609 B CN107943609 B CN 107943609B
- Authority
- CN
- China
- Prior art keywords
- memory
- chip
- data
- dram
- bit
- 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
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/0703—Error 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/0706—Error 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/073—Error 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 a memory management context, e.g. virtual memory or cache management
-
- 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
- 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
- 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/1072—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 in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了一种用于报告关于芯片单元故障的信息的存储器模块、存储器模块的操作以及存储器控制器的操作。所述存储器模块包括:安装在模块板上并存储数据的第一至第M存储器芯片(其中M是等于或大于2的整数);以及安装在模块板上并存储奇偶校验码的第(M+1)存储器芯片,所述奇偶校验码用于恢复在第一至第M存储器芯片中发生芯片单元故障的存储器芯片的数据,其中通过芯片内错误检测操作来从第一至第(M+1)存储器芯片产生故障位,并且根据对来自第一至第(M+1)存储器芯片的故障位进行计算的结果来输出故障信息。
Description
相关申请的交叉引用
本申请要求2016年10月12日在美国专利局递交的美国专利临时申请No.62/406,969和2017年1月4日在韩国知识产权局递交的韩国专利申请No.10-2017-0001318的权益,其全部公开内容通过引用合并于此。
技术领域
本发明构思涉及一种存储器模块,更具体地说,涉及一种报告存储器芯片的读操作故障的存储器模块、操作存储器模块的方法以及操作存储器控制器的方法。
背景技术
随着半导体存储器件的工作速度增加,数据发生错误的概率增加。作为校正错误的一个示例,已经提出了一种恢复芯片单元中的错误的方法。在这种情况下,存储器控制器产生与预定单位的比特的数据相对应的奇偶校验码(例如,纠错码),并将该数据和奇偶校验码存储在包括多个存储器芯片的半导体存储器件(例如,存储器封装、存储器模块等)中。在读取预定单位的数据时,可以使用读取的数据和奇偶校验码通过恢复算法来恢复错误的数据。然而,为了存储奇偶校验码,存储器芯片的数量增加,从而增加了半导体存储器件的成本。
发明内容
本发明构思提供了一种具有错误检测和校正能力且制造成本降低的存储器模块、存储器控制器和系统。
本发明构思提供了一种操作存储器模块的方法。
本发明构思还提供了一种操作存储器控制器的方法。
根据本发明构思的一方面,提供了一种存储器模块,包括:安装在模块板上并存储数据的第一至第M存储器芯片(其中M是等于或大于2的整数);以及安装在模块板上并存储奇偶校验码的第(M+1)存储器芯片,所述奇偶校验码用于恢复在第一至第M存储器芯片中发生芯片单元故障的存储器芯片的数据,其中通过芯片内错误检测操作从第一至第(M+1)存储器芯片产生故障位,并且根据对来自第一至第(M+1)存储器芯片的故障位进行计算的结果来输出故障信息。
根据本发明构思的另一方面,提供了一种存储器模块,包括:M个动态随机存取存储器(DRAM)芯片(其中M是等于或大于2的整数),其中每一个DRAM芯片包括DRAM内纠错电路(In-DRAM ECC)并通过内部错误检测来产生故障位,所述故障位指示是否发生了芯片单元故障;以及缓冲器芯片,从所述M个DRAM芯片接收故障位并通过对故障位的计算操作来输出故障信息。
根据本发明构思的另一方面,提供了一种操作存储器控制器的方法,所述方法包括:从多个存储器芯片接收数据和与所述数据相对应的奇偶校验码;接收对所述多个存储器芯片中的至少一个发生故障加以指示的故障信息;请求提供对所述多个存储器芯片中的故障存储器芯片的位置加以指示的故障位;以及通过使用故障位和奇偶校验码来恢复故障存储器芯片的数据。
根据本发明构思的另一方面,提供了一种操作存储器模块的方法,所述方法包括:读取存储在多个存储器芯片中的数据和用于恢复所述多个存储器芯片的故障的奇偶校验码;从所述多个存储器芯片中的每一个通过芯片内错误检测操作来产生对是否发生芯片单元故障加以指示的故障位;以及输出通过对从所述多个存储器芯片产生的故障位进行计算而产生的故障信息。
根据所述存储器模块、操作存储器模块的方法和操作存储器控制器的方法,可以在不产生对故障存储器芯片的位置加以指示的检测码的情况下恢复故障存储器芯片的数据,因此,可以降低存储器模块的制造成本。
此外,在存储器芯片中不存储单独的检测码的情况下,可以恢复故障芯片的数据,并且可以校正随机错误和/或多位错误,因此,可以提高半导体存储器件的纠错能力。
附图说明
根据以下结合附图进行的详细描述,将更清楚地理解本发明构思的实施例,在附图中:
图1是示出了根据本发明构思的示例性实施例的存储器系统的示图;
图2是示出了根据本发明构思的另一示例性实施例的存储器系统的示图;
图3是示出了根据本发明构思的另一示例性实施例的存储器系统的示图;
图4是示出了根据本发明构思的示例性实施例的操作半导体存储器件的方法的流程图;
图5是示出了根据本发明构思的另一示例性实施例的操作半导体存储器件的方法的流程图;
图6是示出了根据本发明构思的示例性实施例的存储器系统的具体实现的框图;
图7和图8是示出了根据本发明构思的另一示例性实施例的存储器系统的具体实现的框图;
图9是示出了图7中所示的寄存器时钟驱动器(RCD)的实施例的框图;
图10是示出了根据示例性实施例的存储器控制器中的纠错处理的流程图;
图11是示出了根据本发明构思的示例性实施例的存储器模块的实现的框图;
图12是示出了根据本发明构思的另一示例性实施例的存储器模块的实现的框图;
图13是示出了根据本发明构思的另一示例性实施例的存储器模块的实现的框图;
图14是示出了根据本发明构思的另一示例性实施例的存储器模块的实现的框图;
图15是示出了根据本发明构思的另一示例性实施例的存储器模块的实现的框图;
图16是示出了根据本发明构思的实施例的操作存储器控制器的方法的流程图;以及
图17是根据本发明构思的实施例的数据处理系统的框图。
具体实施方式
在下文中,将参照附图详细描述本发明构思的实施例。然而,本发明可以以许多不同形式实施,且不应被解释为限于本文所阐述的示例实施例。这些示例实施例仅是示例,且不需要本文提供的细节的许多实现和变型是可能的。还应该强调的是本公开提供了备选示例的细节,但是这种备选方案的列举不是穷举的。此外,各示例之间的细节的任何一致性不应被解释为需要这种细节,列出本文所描述的每个特征的每个可能变型是不切实际的。在确定本发明的要求时应参考权利要求的语言。
如在所公开的技术领域中通常的做法,以功能块、单元和/或模块来描述并在附图中示出特征和实施例。本领域技术人员将理解,这些块、单元和/或模块通过诸如逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等的电子(或光)电路来物理地实现,所述电子(或光)电路可以使用基于半导体的制造技术或其他制造技术来形成。在块、单元和/或模块由微处理器或类似物实现的情况下,它们可以使用软件(例如,微代码)被编程以执行本文讨论的各种功能,并且可以可选地由固件和/或软件驱动。备选地,每个块、单元和/或模块可以通过专用硬件实现或实现为执行一些功能的专用硬件和处理器(例如,一个或多个编程的微处理器和相关联的电路)的组合以执行其他功能。此外,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可以物理地分离成两个或更多个交互和离散的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可以物理地组合成更复杂的块、单元和/或模块。
图1是示出了根据本发明构思的示例性实施例的存储器系统10的示图。存储器系统10包括存储器控制器11和半导体存储器件12,并且半导体存储器件12可以包括多个存储器芯片12_1至12_M。作为示例,半导体存储器件12的多个存储器芯片12_1至12_M中的每一个可以是动态随机存取存储器(DRAM)芯片或另一种类型的易失性存储器芯片。DRAM芯片可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM或Rambus动态随机存取存储器(RDRAM)。然而,本发明构思的实施例不限于此。例如,半导体存储器件12可以用诸如闪速存储器、磁性RAM(MRRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)或电阻RAM(ReRAM)等非易失性存储器芯片来实现。每个存储器芯片12_1至12 M可以对应于根据诸如DDR、DDR2、DDR3、DDR4和DDR5之类的各种标准的DRAM芯片。
在下面的描述中,存储器芯片12_1至12_M中的每一个被称为DRAM芯片。然而,存储器芯片12_1至12_M可以用各种其他类型的芯片(例如,非易失性存储器)来实现,并且该描述同样适用于这些实现。
根据实施例,半导体存储器件12可以对应于具有以下结构的半导体封装:多个DRAM芯片12_1至12_M堆叠在封装衬底上(例如,芯片12_1至12_M封装在半导体封装的模制树脂材料中,并通过封装衬底的端子与外部源连通)。备选地,根据实施例,半导体存储器件12可以对应于多个DRAM芯片12_1至12_M被安装在具有若干个半导体封装的模块板上的存储器模块,其中每个半导体封装包括一个或若干个芯片12_1至12_M(通常通过参考标记12_n表示各个芯片)。尽管图1中示出了一个半导体存储器件12,但是存储器控制器11可以与多个这样的半导体存储器件12进行通信,以向其写入数据DATA或从其读取数据DATA。虽然半导体存储器件12在以下实施例中被描述为存储器模块,但是半导体存储器件12可以包括各种类型的存储器件(例如,存储器封装等),包括如上所述的多个DRAM或其他类型的存储芯片。
存储器控制器11向半导体存储器件12提供各种信号以控制存储器操作。例如,存储器控制器11可以向半导体存储器件12提供数据DATA和奇偶校验信息Info_PAR,并且可以从半导体存储器件12读取数据DATA和奇偶校验信息Info_PAR。存储器控制器11可以包括纠错码(ECC)引擎11_1,并且ECC引擎11_1可以使用数据DATA和奇偶校验信息Info_PAR通过纠错操作来校正数据DATA中包括的错误。存储器控制器11可以是包括一个或多个半导体芯片并与诸如应用处理器(未示出)的主机计算机进行接口连接以控制主机的存储器访问请求的半导体器件。备选地,存储器控制器可以由主机本身实现,并且主机可以包括用于执行所有处理操作的中央处理单元(CPU)和用于访问半导体存储器件12的控制模块(对应于所公开的存储器控制器11)。
奇偶校验信息Info_PAR可以包括与故障芯片中存储的数据的纠错和/或恢复有关的各种信息(如这里使用的“故障芯片”是指这样的芯片:其不能正确地提供无错误的数据作为特定读取操作的一部分,并且不指示芯片不可操作,或者以另外方式指示芯片的一般功能应被视为有缺陷的——针对一个读取操作,芯片可能被视为“故障芯片”,而针对后续读取操作,可能不被视为“故障芯片”)。根据实施例,用于故障芯片的错误数据的纠错和/或恢复的奇偶校验码可以包括在奇偶校验信息Info_PAR中。奇偶校验信息Info_PAR可以包括用于检测相对于故障芯片所存储的数据而发生错误的位置的检测码,并可以用于故障芯片的纠错和/或恢复。如将理解的,对具有位错误的数据的纠错可以包括确定(或检测)数据内的错误位的位置(例如,确定错误位是与奇偶校验码相关联的数据的n位单元中的第i位,其中i是1到n之间的整数)。在某些实施方式中,奇偶校验码可以用于确定与其相关联的数据内的多个错误位的位置。
根据实施例,可以在DRAM芯片12_1至12_M中的每一个中采用纠错电路(图1中未示出),使得对于每个DRAM芯片12_n,片上ECC形成为形成DRAM芯片12_n的同一集成电路的一部分。当使用DRAM芯片实现时,这样的片上ECC将在本文中被称为In-DRAM ECC,但是应当理解,关于In-DRAM ECC的相关描述同样适用于利用除了DRAM以外的存储器芯片12_n实现的片上ECC。因此,DRAM芯片12_1至12_M中的每一个可以执行芯片级错误检测/校正,并且可以校正In-DRAM ECC所在的DRAM芯片内部的数据的某些错误。每个DRAM芯片12_n还可以根据该DRAM芯片12_n的In-DRAM ECC的错误检测结果,来产生指示无错误数据或者对该DRAM芯片12_n的某些数据的纠错不可行加以指示的信息(例如,产生“故障位”)。例如,每个DRAM芯片12_n可以产生“故障位”,以指示由DRAM芯片12_n读取和/或由DRAM芯片12_n提供给存储器控制器11的数据是否包含不可被DRAM芯片12_n(例如,被DRAM芯片12_n的In-DRAM ECC)校正的错误,或者指示由DRAM芯片12_n读取的数据被DRAM芯片12_n视为无错误。例如,故障位可以具有第一逻辑值(或第一逻辑状态,例如逻辑低或“0”)并且可以具有第二逻辑值(或第二逻辑状态,例如逻辑高或“1”),第一逻辑值指示DRAM芯片12_n的某些读取数据不能被相应的In-DRAM ECC校正,第二逻辑值指示某些读取数据被视为无错误(要么存储和读取无错误,要么在一个或多个位错误被In-DRAM ECC校正的情况下被读取)。因此,当提供具有存储在M个DRAM芯片12_1至12_M中的每一个中的相应部分的多芯片数据DATA时,半导体存储器件12可以提供均对由M个DRAM芯片12_1至12_M提供给存储器控制器11的数据DATA的相应部分的故障状态(例如指示未校正的错误数据或无错误数据)加以指示的M个故障位。
根据实施例,半导体存储器件12可以通过分析M个故障位来产生故障信息Info_F,并将产生的故障信息Info_F输出到存储器控制器11。故障信息Info_F可以指示多芯片数据DATA(其各部分被存储在M个DRAM芯片12_1至12_M中的每一个中)被视为无错误,或者指示M个DRAM芯片12_1至12_M中的一个或多个已经提供了数据DATA的具有不可被该DRAM芯片校正的错误的一部分。可以根据各种方法产生故障信息Info_F。作为示例,可以从半导体存储器件12中的M个DRAM芯片12_1至12_M产生与M个位相对应的故障位,并且可以基于使用故障位计算的结果来产生故障信息Info_F。例如,可以通过对M个故障位执行异或“XOR”运算来产生故障信息Info_F,因此,当DRAM芯片12_1至12_M中的至少一个故障时,故障信息Info_F可以具有第一逻辑状态(例如,逻辑高)。另一方面,当DRAM芯片12_1至12_M故障时,故障信息Info_F可以具有第二逻辑状态(例如,逻辑低)。
半导体存储器件12可以向存储器控制器11(其可以是单独的半导体器件或主机的一部分)提供故障信息Info_F,并且存储器控制器11可以基于故障信息Info_F或者可以基于对M个故障位的进一步分析,来确定半导体存储器件12中的哪个DRAM芯片故障。存储器控制器11的ECC引擎11_1可以执行由故障芯片提供的数据部分的纠错操作以校正数据DATA,并且存储器控制器11可以将校正的数据提供给请求数据的外部源(例如主机)。存储器控制器11还可以对故障芯片执行校正数据部分的写入操作,以校正存储在其中的数据。ECC引擎11-1可以使用奇偶校验信息Info_PAR来执行这样的纠错,并且响应于故障信息Info_F确定是否执行纠错操作或者放弃这样的纠错操作时。存储器控制器11中的错误检测/校正操作可以对应于模块级或系统级错误检测/校正操作,以校正存储在多个芯片(其可以是半导体存储器件12的存储器芯片中的一些或全部)中的多芯片数据DATA,并且Info_PAR可以由此与存储在半导体存储器件12的多个芯片中的数据DATA相对应。
例如,当故障信息Info_F指示与来自半导体存储器件12的DATA的读取操作相关联的DRAM芯片12_n没有故障时,ECC引擎11_1可以放弃对数据DATA执行任何分析(例如,错误检测)和/或校正。作为示例,奇偶校验信息Info_PAR可以包括用于执行数据恢复操作以校正数据DATA的预定数量的错误位(例如,校正一位或高达两位的错误位)的代码。当不存在故障的DRAM芯片时,可以不执行数据恢复操作。此外,当故障信息Info_F指示存在至少一个故障的DRAM芯片时,ECC引擎111可以使用奇偶校验信息Info_PAR通过数据恢复操作来恢复故障DRAM芯片的数据。因此,存储器控制器11可以接收关于半导体存储器件12的DRAM芯片12_1至12_M的故障状态的报告(例如,以故障信息Info_F的形式),并且根据报告的结果选择性地对故障芯片执行数据恢复操作。存储器控制器11还可以基于报告选择性地执行错误检测。
在本发明构思的实施例中,可以通过各种纠错算法来执行对故障芯片执行的数据恢复操作。例如,存储器控制器11可以通过基于诸如Reed-Solomon纠错码之类的各种方式的数据恢复方案来恢复故障芯片的数据。
作为针对半导体存储器件12的写入操作的一部分,存储器控制器11可以通过针对预定单位的数据(例如,可与数据DATA相对应的32或64位的数据)的内部编码(例如,ECC编码)来产生包括奇偶校验信息Info_PAR的纠错码,以被DRAM芯片12_n中的多个DRAM芯片存储(这里称为“多芯片数据”,数据DATA是其一个示例)。根据本发明构思的实施例,奇偶校验信息Info_PAR可以包括用于数据恢复的奇偶校验码。然而,奇偶校验信息Info_PAR可能不包括足以检测故障芯片的位置或以其他方式识别故障芯片的检测码。也就是说,Info_PAR可能包括不足以(在写入操作之后)在多芯片数据的后续读取操作期间从存储多芯片数据的一组DRAM芯片12_n中识别故障芯片的奇偶校验码。在将多芯片数据(例如,DATA)写入半导体存储器件12时,存储器控制器11也可以将Info_PAR写入半导体存储器件12,而不将足以识别故障芯片的任何检测码写入半导体存储器器件12。例如,当识别出故障芯片时,奇偶校验信息Info_PAR可以是足以校正多芯片数据DATA的多达特定数量的错误位的奇偶校验码,但是当还没有提供故障芯片的标识(或者对多芯片数据DATA中具有错误位的部分加以指示的其他信息)时,所述奇偶校验信息可能不足以识别和校正多芯片数据DATA中的哪个(哪些)位有错误。因此,存储器控制器11可以仅通过针对预定单位的数据的编码处理来产生奇偶校验码。如果需要4位检测码来检测64位数据中的哪个位是错误的,则根据本发明构思的实施例,不必产生或存储这样的4位检测码,因此可以减少用于存储检测码的资源(例如,DRAM芯片或DRAM芯片的存储区域)。
备选地,根据修改的实施例,存储器控制器11可以通过针对预定单位的数据的编码来产生奇偶校验码和附加检测码两者。另一方面,由于存储器控制器11仅将奇偶校验码存储在半导体存储器件12中,所以可以减少用于在半导体存储器件12中存储附加检测码的资源。附加检测码可以在产生之后被丢弃而不被进一步存储。
此外,根据修改的实施例,存储器控制器11可以通过针对预定单位的数据的编码来产生用于对故障芯片进行数据恢复的奇偶校验码和用于附加纠错的代码信息。该代码信息可以存储在半导体存储器件12中可能已经存储了较大检测码的资源中。也就是说,根据本修改实施例,用于附加纠错(例如,随机错误和/或多位错误校正)的代码信息可以存储在半导体存储器12中,而不增加用于存储代码或各种信息的资源,因此可以提高半导体存储器件12的数据可靠性。
根据本发明构思的示例性实施例,奇偶校验码可以包括用于校正对故障芯片进行数据恢复的至少一个位错误的代码。另外,附加代码信息可以被包括作为奇偶校验码的一部分。
此外,根据修改的实施例,由于存储器控制器11可以接收从半导体存储器件12报告的错误状态以识别哪个DRAM芯片12_n是故障芯片,因此存储器控制器11可以通过对预定单位的多芯片数据的编码来产生大小较小的检测码。作为示例,在各种类型的编码方法中,可以将能够减小检测码的大小的编码方法应用于存储器控制器11,并且可以将大小减小的检测码存储在半导体存储器件12中。例如,在对预定单位的多芯片数据执行编码操作(例如,作为这种数据的写入操作的一部分)时,存储器控制器11可以产生大小比4位检测码小(例如,2位)的检测码(例如,足以在不需要识别故障芯片的情况下识别错误位的位置)。可以在存储预定单位的多芯片数据时将2位检测码存储在半导体存储器件12中,因此,可以将上述用于附加纠错的代码信息或其他信息(例如,当半导体存储器件12用作高速缓存时的索引或标签信息)存储在可被额外利用的资源中。2位检测码本身可能不足以在对预定单位的具有至少一个位错误的多芯片数据进行后续读取时,识别包含错误位的芯片。然而,如本文所述,2位检测码可足以识别错误位的位置,并且因此在故障芯片通过其他方式被识别时可以校正相同错误多芯片数据的错误位。
根据图1所示的实施例,由于不需要存储用于确定故障芯片的位置的更大、更鲁棒的检测码,因此可以减少设置在半导体存储器件12中的DRAM芯片的数量。此外,由于用于存储更大、更鲁棒的检测码的资源可以用作对用于附加错误检测和校正(例如,随机错误或多位错误校正)的代码信息进行存储的资源,因此可以提高存储器系统10的数据可靠性。
图2是示出了根据本发明构思的另一示例性实施例的存储器系统100的示图。图2所示的存储器系统100的配置与图1所示的存储器系统10的配置基本相同,因此将不对存储器系统100中与存储器系统10的操作相同的操作进行详细描述。
参考图2,存储器系统100可以包括存储器控制器110和半导体存储器件120,并且半导体存储器件120可以包括DRAM芯片121_1至121_M。此外,存储器控制器110可以包括ECC引擎111。
如在上述实施例中,DRAM芯片121_1至121_M中的每一个可以包括In-DRAM ECC(未示出),并且可以产生故障位,该故障位指示在该DRAM芯片121_n的读取数据中检测到错误,但是该错误不可通过对读取数据进行芯片级错误检测操作来校正(和/或指示读取数据中存在错误)。可以从半导体存储器件120的由DRAM芯片121_1至121_M构成的组产生M个故障位Fail[1:M],并且可以通过使用M个故障位Fail[1:M]的计算操作来产生故障信息Info_F,并将该故障信息Info_F输出到存储器控制器110。
根据实施例,已经描述了根据实施例的由于从DRAM芯片121_1至121_M中的每一个产生一个故障位而从半导体存储器件120产生M个故障位Fail[1:M]的情况。然而,本发明构思的实施例不限于此。例如,当从DRAM芯片121_1至121_M中的每一个产生两个或更多个故障位时,或仅在DRAM芯片121_1至121_M中的一些(例如,存储数据的DRAM芯片)中产生故障位时,在半导体存储器件120中产生的故障位的数量可以改变。
此外,根据实施例,通过使用M个故障位Fail[1:M]的计算操作所产生的故障信息Info_F可以对应于一位。备选地,当通过各种其他计算处理执行使用M个故障位Fail[1:M]的计算操作时,故障信息Info_F可以包括不同数量的位。
在图2所示的实施例中,半导体存储器件120可以将故障信息Info_F与多芯片数据DATA和奇偶校验信息Info_PAR一起输出到存储器控制器110。假设可以通过奇偶校验信息Info_PAR校正一个或多个一般错误,则当在DRAM芯片121_1至121_M中没有发生芯片单元故障时,存储器控制器110可以跳过错误检测(以及错误校正)以通过使用接收到的奇偶校验信息Info_PAR的一般校正操作来检测和校正数据DATA中的一个或多个一般错误。另一方面,当故障信息Info_F具有第一逻辑电平时,存储器控制器110可以确定至少一个DRAM芯片故障,并且可以向半导体存储器件120提供命令并读取半导体存储器件120中存储的故障位Fail[1:M]。存储器控制器110可以基于故障位Fail[1:M]来识别哪个DRAM芯片是故障芯片,并且因此识别多芯片数据DATA内可能存在错误位的位置范围(或位范围),并且可以通过使用故障位Fail[1:M]和奇偶校验信息Info_PAR来恢复故障DRAM芯片的数据DATA。
图3是示出了根据本发明构思的另一示例性实施例的存储器系统200的示图。图3所示的存储器系统200的配置与图1和图2所示的存储器系统10和100的配置基本相同,因此将不对存储器系统200中与存储器系统10和100的操作基本相同的操作进行详细描述。
参考图3,存储器系统200可以包括存储器控制器210和半导体存储器件220,并且半导体存储器件220可以包括M个DRAM芯片221_1至221_M。存储器控制器210可以包括ECC引擎211。半导体存储器件220可以将从M个DRAM芯片221_1至221_M产生的故障位Fail[1:M]输出到存储器控制器210,而不执行用于产生故障信息的计算操作。
数据DATA可以存储在M个DRAM芯片221_1至221_M中的M-1个DRAM芯片中,并且奇偶校验信息Info_PAR可以存储在剩余的一个DRAM芯片中。半导体存储器件220可以包括用于将从M个DRAM芯片221_1至221_M中的任一个读取的数据DATA或奇偶校验信息Info_PAR输出到存储器控制器210的M个端口,并且每个端口可以包括多个引脚。如果DRAM芯片221_1至221_M中的任一个以4比特为基础输出数据DATA或奇偶校验信息Info_PAR,则每个端口可以包括四个引脚。
如上所述,可能不需要在半导体存储器件220中设置存储有较大检测码的DRAM芯片,因此,半导体存储器件220还可以包括与移除的DRAM芯片相对应的端口。也就是说,半导体存储器件220可以包括与M个DRAM芯片221_1至221_M相对应的(M+1)个端口。根据实施例,可以经由与移除的DRAM芯片相对应的附加端口将故障位Fail[1:M]提供给存储器控制器210。存储器控制器210可以基于故障位Fail[1:M]确定故障DRAM芯片的位置,并通过使用故障位Fail[1:M]和奇偶校验信息Info_PAR恢复故障DRAM芯片的数据DATA。
图4是示出了根据本发明构思的示例性实施例的操作半导体存储器件的方法的流程图。
参考图4,半导体存储器件包括多个DRAM芯片,并且在多个DRAM芯片中的每一个中采用In-DRAM ECC,从而可以执行使用In-DRAM ECC的故障检测(操作S11)。作为示例,在由诸如存储器控制器之类的外部源进行的多芯片数据DATA的读取操作期间,每个DRAM芯片可以读取多芯片数据DATA的一部分并对其进行分析以检测位错误的存在,校正检测到的任何位错误或确定在读取的多芯片数据DATA的该部分内发生不可校正的错误,并且因此确定该芯片应被视为针对该多芯片数据读取操作的故障芯片。错误检测和校正可以由每个DRAM芯片的In-DRAMECC执行,并且基于与存储在该DRAM芯片内的多芯片数据DATA的该部分相关联的纠错码(这种纠错码由In_DRAM ECC在将多芯片数据DATA的该部分写入DRAM芯片时对该部分进行分析而产生)。由In-DRAM ECC执行的错误检测和校正可以独立于由存储器控制器对完整的多芯片数据DATA执行的错误校正,然而,由存储器控制器对多芯片数据DATA执行的错误校正可以取决于对多芯片数据DATA的相应部分的In-DRAM ECC分析(例如,识别哪个DRAM芯片对应于多芯片数据DATA的错误位或者识别多芯片数据DATA的何种位范围可以包括多芯片数据DATA的错误位)。每个DRAM芯片可以产生故障位,以指示其是否应被视为针对该多芯片数据读取操作的故障芯片,或者由DRAM芯片提供的数据是否被视为无错误。此外,作为故障检测的结果,M个DRAM芯片中的每一个可以产生与一位相对应的故障位,并且因此由于半导体存储器件包括M个DRAM芯片,可以由半导体存储器件产生相应的M个故障位。
半导体存储器件可以使用M个故障位执行计算操作,并且将根据计算操作结果的故障信息输出到存储器控制器(操作S12)。例如,可以通过对从M个DRAM芯片产生的M个故障位执行XOR运算来产生1位故障信息。例如,1位故障信息的第一逻辑状态可以指示M个DRAM芯片中的至少一个是针对DATA的该多芯片数据读取操作的故障芯片,而第二逻辑状态可以指示M个DRAM芯片中不存在针对DATA的该多芯片数据读取操作的故障芯片。
存储器控制器可以基于故障信息的逻辑状态选择性地执行用于恢复故障芯片的数据的恢复操作。当故障信息对应于第一逻辑状态时,半导体存储器件可以从存储器控制器接收用于向存储器控制器提供故障位的请求(操作S13)。先前产生的M个故障位可以临时存储在半导体存储器件中的预定存储电路(例如,寄存器)中,并且半导体存储器件可以响应于来自存储器控制器的请求而将存储在存储设备中的M个故障位输出到存储器控制器(操作S14),以允许存储器控制器识别M个DRAM芯片中的哪个是针对DATA的该多芯片数据读取操作的故障芯片。
图5是示出了根据本发明构思的另一示例性实施例的操作半导体存储器件的方法的流程图。在图5的实施例中,假设半导体存储器件包括M个DRAM芯片,通过一个端口输出来自每个DRAM芯片的数据或奇偶校验信息,并且半导体存储器件包括与M个DRAM芯片相对应的(M+1)个端口。此外,根据本发明构思的实施例,假设奇偶校验信息不包括本身足以识别预定单位的数据的错误位的检测码。
参考图5,半导体存储器件可以存储用于恢复故障芯片的数据的奇偶校验码和数据。作为示例,数据可以存储在(M-1)个DRAM芯片中,并且奇偶校验码可以存储在剩余的一个DRAM芯片中。响应于来自存储器控制器的读取请求,可以从半导体存储器件的M个DRAM芯片中读出数据和奇偶校验码(操作S21)。
在读取数据和奇偶校验码的处理中,可以通过使用在M个DRAM芯片中的每一个中设置的In-DRAM ECC,根据每个DRAM芯片是否发生不可校正的错误来检测故障(操作S22)。此外,根据故障发生的检测结果,可以在每个DRAM芯片中产生一个故障位,因此可以在半导体存储器件中产生M个故障位(操作S23)。
可以通过(M+1)个端口输出数据、奇偶校验码和产生的故障位。作为示例,可以通过(M+1)个端口并行输出数据、奇偶校验码和故障位。例如,可以通过相应的M个端口输出来自半导体存储器件中设置的M个DRAM芯片的数据和奇偶校验码(操作S24)。另一方面,半导体存储器件可以包括不对应于M个DRAM芯片的附加端口,并且可以通过(M+1)个端口中的该附加端口输出故障位(操作S25)。例如,(M+1)个端口中的每一个可以包括相同数量的引脚,并且当从半导体存储器件移除用于存储检测码的一个DRAM芯片时,附加端口可以是与从半导体存储器件移除的DRAM芯片相对应的端口。
图6是示出了根据本发明构思的示例性实施例的存储器系统300的具体实现的框图。
参考图6,存储器系统300可以包括存储器控制器310和半导体存储器件,并且半导体存储器件可以包括M个DRAM芯片321_1至321_M安装在模块板上的存储器模块320。存储器控制器310可以包括ECC引擎311。存储器模块320还可以包括安装在模块板上的寄存器时钟驱动器(RCD)322,其从存储器控制器310接收命令和地址,并将命令和地址传送给M个DRAM芯片321_1至321_M。根据实施例,RCD 322可以被实现为单独的半导体芯片并且安装在模块板上。此外,实现了RCD 322的半导体芯片可以被称为缓冲器芯片,该缓冲器芯片临时存储命令、地址和/或故障位Fail 1至Fail M。
存储器模块320可以被实现为各种类型的模块。作为示例,存储器模块320可以对应于通常在服务器中使用的双列直插式存储器模块(DIMM)。此外,存储器模块320可以对应于各种类型的DIMM,并且例如各种类型的DIMM(例如,FB-DIMM和LR-DIMM)可以应用于存储器模块320。备选地,存储器模块320可以对应于安装有非易失性存储器(例如,闪存(未示出))的非易失性DIMM(NVDIMM),以弥补当断电时易失性存储器中数据丢失的问题。然而,本发明构思的实施例不限于此,并且存储器模块320可以由各种存储器模块来实现,例如单列直插式存储器模块(SIMM)、小外形DIMM(S0-DIMM)、无缓冲DIMM(UDIMM)、排序缓冲DIMM(RBDIMM)、迷你DIMM和微型DIMM。
如图6所示,存储器控制器310可以基于数据DATA产生奇偶校验信息,并将数据DATA和奇偶校验信息提供给存储器模块320。在本实施例中,由于与DATA相关联的用于确定故障芯片的位置的检测码未存储在存储器模块320中,因此可以仅将奇偶校验码Parity选择性地提供给存储器模块320作为奇偶校验信息。奇偶校验码Parity可能本身不足以(在随后的读取操作期间)确定DATA内的错误位的位置,并且因此不足以自行校正具有错误位的DATA。存储器控制器310可以包括与M个DRAM芯片321_1至321_M相对应的M个输入/输出端口(未示出)。数据DATA和奇偶校验码Parity可以存储在M个DRAM芯片321_1至321_M中,并且奇偶校验码Parity可以用作用于恢复在存储数据DATA的(M-1)个DRAM芯片321_1至321_M-1中发生的芯片单元故障的信息。
M个DRAM芯片321_1至321_M中的每一个可以包括In-DRAM ECC(ECC),并且In-DRAMECC可以产生故障位,所述故障位指示在数据DATA的一部分中或在存储在相应DRAM芯片中并从该芯片读取的奇偶校验码Parity中是否发生了不可校正的错误。作为示例,故障位Fail 1至Fai1M可以从M个DRAM芯片321_1至321_M产生,并且可以通过模块板的互连线提供给RCD 322。
RCD 322可以通过对接收到的故障位Fail 1至Fail M执行算术处理来产生故障信息Info_F。根据实施例,可以通过与形成在模块板上的报告引脚相对应的单独端子323将故障信息Info_F提供给存储器控制器310。此外,作为示例,单独端子323可以包括用于输出一位的一个引脚,并且RCD 322可以基于故障位Fail 1至Fail M产生一位的故障信息Info_F,并将该一位的故障信息Info_F通过单独端子323提供给存储器控制器310。根据实施例,当存储器模块320对应于NVDIMM时,可以使用与NVDIMM类型的存储器模块320中的非易失性存储器的操作相关地定义的错误报告引脚作为用于输出故障信息Info_F的单独端子323。
如上所述,存储器控制器310可以接收故障信息Info_F,并且基于接收的故障信息Info_F执行纠错操作和/或数据恢复操作。作为示例,可以根据故障信息Info_F的逻辑状态来确定是否发生了芯片单元故障。当没有发生芯片单元故障时,ECC引擎311可以使用奇偶校验码Parity来执行一般的纠错操作。另一方面,当发生芯片单元故障时,ECC引擎311可以基于系统级纠错来执行数据恢复操作。
图7和图8是示出了根据本发明构思的另一示例性实施例的存储器系统400的具体实现的框图。
参考图7,存储器系统400可以包括存储器控制器410和存储器模块420,并且M个DRAM芯片421_1至421_M可以安装在存储器模块420的模块板上。存储器控制器410可以包括ECC引擎411和命令发生器412。此外,存储器模块420还可以包括RCD 422,并且RCD 422可以包括寄存器422_1。
RCD 422可以从M个DRAM芯片421_1至421_M接收故障位Fail 1至Fail M,并通过使用故障位Fail 1至Fail M的计算操作来产生故障信息Info_F,并且该故障信息Info_F可以通过与形成在模块板上的报告引脚相对应的附加端子423提供给存储器控制器410。
存储器控制器410可以基于接收的故障信息Info_F执行纠错操作。如果由于故障信息Info_F对应于第二逻辑状态而确定不存在故障芯片,则ECC引擎411可以使用奇偶校验码Parity执行一般的纠错操作。另一方面,如果由于故障信息Info_F对应于第一逻辑状态而确定存在至少一个故障芯片,则命令发生器412可以产生用于访问RCD 422中的寄存器422_1的寄存器访问命令CMD_Reg,并将寄存器访问命令CMD_Reg提供给存储器模块420。此外,可以向存储器控制器410提供从寄存器422_1读取的故障位Fail 1至Fail M。
存储器模块420可以包括与M个DRAM芯片421_1至421_M相对应的M个端口,并且还可以包括用于在RCD 422和存储器控制器410之间发送和接收信号的端口424。端口424可以包括多个引脚,上述寄存器访问命令CMD_Reg可以通过端口424提供给RCD 422,并且故障位Fail 1至Fail M可以通过端口424从RCD 422提供给存储器控制器410。
ECC引擎411可以基于接收的故障位Fail 1至Fail M来确定故障芯片的位置,并且可以基于使用故障位Fail 1至Fail M和奇偶校验码Parity的系统级纠错通过恢复操作来恢复故障芯片的数据DATA。
图8示出了从上述实施例修改的发送故障位Fail[1:M]的路径的示例。
参考图8,示出了从存储器模块中移除了存储用于对芯片单元进行数据恢复的检测码的DRAM芯片的示例。也就是说,不需要也不用在模块板中设置存储对故障芯片的位置加以指示的检测码的DRAM芯片(例如,检测码芯片),并且与移除的用于存储检测码的DRAM芯片相对应的一个端口425可以用作用于发送上述故障位Fail[1:M]的端口。因此,可以在模块板上形成用于RCD 422与包括在端口425中的多个引脚之间的电连接的互连线。
根据图8的实施例,由于存储用于恢复故障芯片的数据的检测码的DRAM芯片是不必要的,所以可以降低存储器模块的制造成本。此外,由于不需要在模块板上形成用于向存储器控制器提供包括多个位的故障位Fail[1:M]的单独端口,所以可以减少在模块板上形成的端口的数量。
图9是示出了图7所示的RCD 422的实施例的框图。
参考图7和图9,RCD 422可以包括寄存器422_1、故障信息发生器422_2和命令/地址缓冲器422_3。命令/地址缓冲器422_3可以接收并存储从存储器控制器410提供的命令CMD和地址ADD,并且可以将存储的命令CMD和地址ADD提供给M个DRAM芯片421_1至421_M。
可以向寄存器422_1和故障信息发生器422_2提供从M个DRAM芯片421_1至421_M产生的故障位Fail 1至Fail M。故障信息发生器422_2可以通过使用XOR运算或其他各种方法的计算操作来产生故障信息Info_F。此外,寄存器422_1可以响应于来自存储器控制器410的寄存器访问命令CMD_Reg、或者通过对寄存器访问命令CMD_Reg进行解码而获得的结果,来输出存储在该寄存器中的M个故障位Fail[1:M]。
图10是示出了根据示例性实施例的存储器控制器中的纠错处理的流程图。
参考图10,存储器控制器可以产生与预定单位的数据相对应的奇偶校验码,并将奇偶校验码写入包括多个DRAM芯片的存储器模块。可以与预定位数的数据相对应地产生奇偶校验码。例如,可以与32位或64位数据相对应地产生4位奇偶校验码。
此外,存储器控制器可以向存储器模块提供命令(读取命令)和地址,以读取存储在存储器模块的多个存储器芯片中的由该地址识别的存储器模块内的位置处的数据、以及存储在存储器模块的至少一个附加存储器芯片中的与读取的数据相对应的奇偶校验码,并且存储器控制器可以接收读取的数据和奇偶校验码(操作S31)。此外,根据上述实施例,可以基于存储器模块中的每个DRAM芯片中的芯片级错误检测结果来产生故障位,可以通过使用故障位的计算操作来产生故障信息,并且存储器控制器可以接收故障信息(操作S32)。
存储器控制器可以包括用于执行系统级纠错的ECC引擎,并且可以根据接收的故障信息选择性地执行用于恢复芯片单元故障的恢复操作。例如,如果根据故障信息确定至少一个DRAM芯片故障,则可以使用接收的奇偶校验码来执行恢复故障DRAM芯片的数据的操作(操作S33)。
确定通过数据恢复操作是否成功地恢复了数据(操作S34)。如果确定已成功恢复数据,则可以向主机提供恢复的数据(操作S35)。另一方面,如果确定未成功恢复数据,则存储器控制器可以产生用于读取存储器模块中存储的故障位的寄存器访问命令,并且可以将寄存器访问命令输出到存储器模块(操作S36)。
根据实施例,存储器控制器可以接收与M个存储器芯片相对应的M个故障位(操作S37),并且可以使用接收的故障位和奇偶校验码来执行数据恢复操作(操作S38)。数据恢复操作对应于已经基于故障位确定了故障DRAM芯片的位置(或标识)的状态下的恢复操作,因此恢复故障DRAM芯片的数据的概率增加。如果根据上述过程正常地恢复了故障DRAM芯片的数据,则可以将恢复的数据提供给主机(操作S35)。
图11是示出了根据本发明构思的示例性实施例的存储器模块500A的实现的框图。
图11示出了与在DDR4规范中定义的64位数据DATA相对应地产生奇偶校验信息的示例。此外,根据实施例,存储在存储器模块500A中的奇偶校验信息可以仅包括4位奇偶校验码Parity,不包括检测码。因此,第一DRAM芯片510_1A至第十七DRAM芯片510_17A可以安装在存储器模块500A的模块板上,并且第一DRAM芯片510_1A至第十七DRAM芯片51017A中的每一个可以输出4位(X4)数据DATA或4位奇偶校验码Parity。第一DRAM芯片510_1A至第十六DRAM芯片510_16A可以存储数据DATA,并且第十七DRAM芯片510_17A可以存储奇偶校验码Parity。
根据上述实施例,由于存储器控制器不产生或者存储器模块500A中不存储用于对发生了芯片单元故障的DRAM芯片的位置(或标识)加以指示的检测码,因此可以从存储器模块500A移除用于存储检测码的DRAM芯片。此外,可以从第一DRAM芯片510_1A至第十七DRAM芯片510_17A读取64位数据DATA和相应的4位奇偶校验码,并且可以将第一DRAM芯片510_1A至第十七DRAM芯片510_17A的故障位Fail[1:17]从RCD 520A提供给存储器控制器(未示出)。尽管图11中未示出,但是在将故障位Fail[1:17]提供给存储器控制器之前,可以首先将通过计算故障位Fail[1:17]所产生的故障信息提供给存储器控制器。
图11所示的端口530A可以是与从模块板移除(或未安装在模块板上)的用于存储检测码的DRAM芯片相对应的端口,并且端口530A可以包括与用于输出数据DATA或奇偶校验码Parity的端口相同数量的引脚。作为示例,可以通过端口530A以四位为单位顺序地将包括17位的故障位Fail[1:17]提供给存储器控制器。
图12是示出了根据本发明构思的另一示例性实施例的存储器模块500B的实现的框图。图12示出了与在规范DDR5中定义的32位数据DATA相对应地产生奇偶校验信息的示例。此外,根据实施例,存储在存储器模块500B中的奇偶校验信息可以仅包括4位奇偶校验码,不包括检测码。
第一DRAM芯片510_1B至第九DRAM芯片510_9B可以安装在存储器模块500B的模块板上,并且第一DRAM芯片510_1B至第九DRAM芯片510_9B中的每一个可以输出4位(X4)数据DATA或4位奇偶校验码Parity。第一DRAM芯片510_1B至第八DRAM芯片510_8B可以存储数据DATA,并且第九DRAM芯片510_9B可以存储奇偶校验码Parity。此外,可以在模块板上设置与从模块板移除(或未安装在模块板上)的用于存储检测码的DRAM芯片相对应的端口530B,包括从第一DRAM芯片510_1B至第九DRAM芯片510_9B产生的九位在内的故障位Fail[1:9]可以存储在RCD520B中,并且RCD 520B可以通过端口530B以四位为单位将故障位Fail[1:9]顺序地提供给存储器控制器。
图13是示出了根据本发明构思的另一示例性实施例的存储器模块500C的实现的框图。图13示出了与64位数据DATA相对应地产生奇偶校验信息的示例。根据实施例,存储在存储器模块500C中的奇偶校验信息可以仅包括4位奇偶校验码Parity,不包括检测码。第一DRAM芯片510_1C至第九DRAM芯片510_9C可以安装在存储器模块500C的模块板上,并且第一DRAM芯片510_1C至第九DRAM芯片510_9C中的每一个可以输出8位(X8)信息。第一DRAM芯片510_1C至第八DRAM芯片510_8C可以存储数据DATA,并且第九DRAM芯片510_9C可以存储奇偶校验码Parity。
由于第一DRAM芯片510_1C至第九DRAM芯片510_9C中的每一个以8位为单位输入或输出信息,所以第一DRAM芯片510_1C至第八DRAM芯片510_8C中的每一个可以以8位为单位存储或输出数据DATA。另一方面,根据本发明构思的实施例,奇偶校验信息可以仅包括对应于4位的奇偶校验码,因此在针对第九DRAM芯片510_9C的8位写入操作中,对应于4位的奇偶校验码和对应于4位的虚拟数据Dummy可以写入第九DRAM芯片510_9C中。虚拟数据Dummy是与数据DATA或奇偶校验码Parity无关的任意数据。例如,虚拟数据Dummy可以是所有位为“0”或“1”的数据。
尽管本实施例示出了当以8位为单位将信息输入第一DRAM芯片510_1C至第九DRAM芯片510_9C或从其输出信息时将4位虚拟数据Dummy写入第九DRAM芯片510_9C的情况,但是本发明构思的实施例不限于此。作为示例,可以仅将4位奇偶校验码存储在第九DRAM芯片510_9C中,而不产生虚拟数据Dummy。备选地,在第九DRAM芯片510_9C中,还可以与4位奇偶校验码Parity一起存储用于提高纠错能力的附加代码信息(例如,用于校正随机错误或多位错误的校正码)。
当使用检测码时,检测码可以与奇偶校验码Parity一起存储在第九DRAM芯片510_9C中,而在图13的实施例中,检测码不存储在第九DRAM芯片510_9C中。也就是说,在图13的实施例中,即使检测码没有存储在第九DRAM芯片510_9C中,也不从模块板移除第九DRAM芯片510_9C,因此不存在从模块板移除的单独的DRAM芯片。
根据实施例,包括从第一DRAM芯片510_1C至第九DRAM芯片510_9C产生的九位在内的故障位Fail[1:9]可以存储在RCD 520C中,并且RCD520C可以通过形成在模块板中的附加端口530C将故障位Fail[1:9]提供给存储器控制器。例如,模块板还可以设置为具有与第一DRAM芯片510_1C至第九DRAM芯片510_9C相对应的九个端口(未示出)和与RCD520C相对应的附加端口530C,并且RCD 520C可以通过附加端口530C以八位为单位将故障位Fail[1:9]顺序地提供给存储器控制器。作为备选实施例,附加端口530C可以包括与输出数据DATA或奇偶校验码Parity的端口不同数量的引脚,并且例如,故障位Fail[1:9]可以通过附加端口530C以4位为单位顺序地输出。
此外,存储器控制器可以使用从第一DRAM芯片510_1C至第九DRAM芯片510_9C读取的64位数据DATA和4位奇偶校验码来执行纠错操作(或恢复故障DRAM芯片的数据的操作)。在此情况下,即使虚拟数据Dummy被读取,存储器控制器也可不读取或使用虚拟数据Dummy。
图14是示出了根据本发明构思的另一示例性实施例的存储器模块500D的实现的框图。图14示出了未从模块板移除用于存储检测码的DRAM芯片的示例。图14中没有示出具体的位数。然而,以与上述实施例基本相同的方式,可以与64位数据相对应地产生奇偶校验信息,或者可以与32位数据相对应地产生奇偶校验信息。
参考图14,M个DRAM芯片510_1D至510_MD可以安装在存储器模块500D的模块板上,并且M个DRAM芯片510_1D至510_MD中的每一个可以输出包括多个位的信息。例如,如上所述,M个DRAM芯片510_1D至510_MD中的每一个可以以4位(X4)或8位(X8)为单位输出信息。在本实施例中,假设M个DRAM芯片510_1D至510_MD中的每一个以4位(X4)为单位输出信息。
第一DRAM芯片510_1D至第(M-2)DRAM芯片510_(M-2)D中的每一个可以存储和输出数据DATA。第M DRAM芯片510_MD可以存储和输出奇偶校验码Parity。用于存储检测码的第(M-1)DRAM芯片510_(M-1)D可以存储用于提高错误检测和校正能力的代码信息Info_secded。
RCD 520D可以通过与RCD 520D相对应的端口530D输出从M个DRAM芯片510_1D至510_MD提供的故障位Fail[1:M]。存储器控制器的ECC引擎(未示出)可以通过使用故障位Fail[1:M]和奇偶校验码Parity来恢复故障DRAM芯片的数据DATA。除了恢复故障DRAM芯片的数据之外,存储器控制器的ECC引擎还可以使用从第(M-1)DRAM芯片510_(M-1)D读取的代码信息Info_secded执行错误检测和校正操作。例如,存储器控制器的ECC引擎可以通过使用代码信息Info_secded来校正随机错误或多位错误。
根据实施例,存储器控制器的ECC引擎可以通过使用代码信息Info_secded,对从第一DRAM芯片510_1D至第(M-2)DRAM芯片510_(M-2)D读取的数据DATA执行单次纠错/双重错误检测(SEC/DED)操作。然而,这仅是本发明构思的实施例,可以根据各种类型的错误检测和校正算法使用代码信息Info_secded进行错误检测和校正。
当用于存储奇偶校验信息的大量资源被用于存储检测码时,除了恢复故障芯片的数据之外,可能不能执行一般的纠错或者仅可校正一位错误。另一方面,根据上述实施例,由于用于错误检测和校正的代码信息可以存储在存储检测码的资源中,因此可以提高错误检测和校正能力。
在上述实施例中,安装在模块板上的DRAM芯片具有与X4或X8的数据宽度相对应的输入/输出单位。然而,本发明构思的实施例不限于此,并且可以将DRAM芯片修改为具有与X16等的数据宽度相对应的输入/输出单位。
图15是示出了根据本发明构思的另一示例性实施例的存储器模块500E的实现的框图。图15示出了如上述图14的实施例的未从模块板移除用于存储检测码的DRAM芯片的示例。在图15的实施例中,每个DRAM芯片可以按照具有多个位的单位输入或输出信息,并且假设每个DRAM芯片以4位(X4)为单位输出信息。
参考图15,M个DRAM芯片510_1E至510_ME可以安装在存储器模块500E的模块板上,并且M个DRAM芯片510_1E至510_ME中的每一个可以输出具有多个位的信息。作为示例,第一DRAM芯片510_1E至第(M-2)DRAM芯片510_(M-2)E中的每一个可以存储或输出数据DATA。第MDRAM芯片510_ME可以存储和输出奇偶校验码Parity。用于存储检测码的第(M-1)DRAM芯片510_(M-1)E可以存储作为对故障芯片的位置加以指示的检测码的循环冗余校验(CRC)码、以及用于附加的错误检测/校正操作的代码信息Info_secded。RCD 520E可以通过与RCD520E相对应的端口530E输出从M个DRAM芯片510_1E至510_MF提供的故障位Fail[1:M]。
根据图15所示的实施例,由于可以通过故障位Fail[1:M]确定故障DRAM芯片的位置,所以与存储在存储器模块500E的第(M-1)DRAM芯片510_(M-1)E中的作为检测码的CRC码相关的信息(或位数)可以被最小化。因此,具有最小位数(例如,1位或2位)的CRC码可以存储在第(M-1)DRAM芯片510_(M-1)E中,并且为了提高纠错能力而可用于附加错误检测/校正操作的代码信息Info_secded可以存储在其他区域中。也就是说,当存在故障芯片时,可以使用故障位Fail[1:M]、CRC码和奇偶校验码Parity来执行恢复操作,并且可以使用代码信息Info_secded来进一步执行用于检测/校正数据DATA中发生的错误的操作。
图16是示出了根据本发明构思的实施例的操作存储器控制器的方法的流程图。
参考图16,存储器控制器可以从包括多个DRAM芯片的半导体存储器件(例如,存储器模块)接收数据和奇偶校验码(操作S41)。此外,存储器控制器可以接收用于对故障芯片进行数据恢复的故障位,并且还可以接收用于附加错误检测/校正操作(例如,随机纠错或多位纠错操作)的代码信息,而无论数据恢复如何(操作S42)。尽管图16中没有示出,但是根据上述实施例,存储器控制器可以接收通过计算具有多个位的故障位而产生的故障信息,并且当故障信息具有指示至少一个DRAM芯片发生故障的逻辑电平时,存储器控制器可以向半导体存储器件提供命令并接收故障位。
存储器控制器可以通过使用故障位来恢复故障芯片的数据(操作S43)。例如,存储器控制器可以通过参考故障位来确定故障DRAM芯片的位置,并且可以使用接收的奇偶校验码通过恢复操作来恢复故障DRAM芯片的数据。当恢复操作完成时,可以进一步执行用于检测和校正在多个DRAM芯片中发生的错误的操作,例如可以使用接收的代码信息来检测和校正错误(操作S44)。
图17是根据本发明构思的实施例的数据处理系统600的框图。数据处理系统600可以包括数据服务器610和一个或多个客户端计算机621和622。数据服务器610和一个或多个客户端计算机621和622可以经由诸如互联网和Wi-Fi之类的各种网络互连。数据服务器610可以对应于数据中心、互联网数据中心、云数据中心等。
数据服务器610可以包括数据库611和主机612。数据库611可以包括根据上述实施例的半导体存储器件。作为示例,数据库611可以包括根据上述实施例的多个DRAM模块611_1。也就是说,可以在服务器系统中使用上述实施例中的半导体存储器件和存储器控制器。主机612可以将数据存储在数据库611中,并且可以从数据库611读取数据并将其提供给客户端计算机621和622。
主机612可以包括根据上述实施例的存储器控制器。因此,主机612可以与数据一起产生用于错误检测和校正的奇偶校验信息,并且还将奇偶校验信息存储在数据库611中。根据实施例,包括在数据库611中的每个DRAM模块611_1可以包括多个DRAM芯片,并且多个DRAM芯片中的每一个可以使用In-DRAM ECC来产生指示DRAM芯片是否故障的故障位。此外,设置在数据库611中的每个DRAM模块611_1可以通过使用故障位的计算操作来产生上述实施例中的故障信息。
可以通过对数据库611的读取操作从数据库611读取数据和奇偶校验信息(或奇偶校验码),并且可以将读取的数据和奇偶校验信息提供给主机612。此外,可以根据上述实施例将故障信息和/或故障位提供给主机612,并且因此,可以向主机612报告在数据库611中发生的故障状态。主机612可以通过使用接收的各种类型的信息来恢复故障DRAM芯片的数据。
尽管已经参照本发明构思的实施例具体示出和描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
Claims (20)
1.一种存储器模块,包括:
安装在模块板上并存储数据的第一至第M存储器芯片,其中M是等于或大于2的整数;以及
安装在所述模块板上并存储奇偶校验码的第“M+1”存储器芯片,所述奇偶校验码与具有由所述第一至第M存储器芯片中的相应存储器芯片存储的数据部分的多芯片数据相关联,并且所述奇偶校验码包含用于校正由于对所述第一至第M存储器芯片中的故障存储器芯片所存储的数据部分的读取操作而导致的至少一个位错误的信息,
其中第一至第“M+1”存储器芯片中的每一个包括片上纠错电路,所述片上纠错电路用于检测所述多芯片数据的相应存储数据部分内的位错误,并提供用于指示位错误的检测结果的相应故障位,以及
其中所述存储器模块包括以下电路,所述电路被连接为从所述第一至第“M+1”存储器芯片接收故障位,并且作为对所述故障位执行的计算的结果而输出故障信息。
2.根据权利要求1所述的存储器模块,还包括缓冲器芯片,所述缓冲器芯片被配置为从所述第一至第“M+1”存储器芯片接收故障位并存储所述故障位,并且产生故障信息。
3.根据权利要求2所述的存储器模块,其中所述缓冲器芯片包括用于临时存储所接收的故障位的寄存器,并且其中所述缓冲器芯片被配置为响应于从在所述存储器模块外部的存储器控制器接收的访问命令来输出所述故障位。
4.根据权利要求2所述的存储器模块,其中所述缓冲器芯片被配置为从所述第一至第“M+1”存储器芯片接收与“M+1”位相对应的故障位,并且被配置为将故障信息单独地输出。
5.根据权利要求4所述的存储器模块,其中所述存储器模块是非易失性双列直插式存储器模块NVDIMM,并且故障信息通过与NVDIMM的非易失性存储器的操作相关联地定义的错误报告引脚来输出。
6.根据权利要求1所述的存储器模块,
其中所述模块板包括与所述第一至第“M+1”存储器芯片相对应的“M+1”个第一端口以及附加的第二端口,并且所述第一端口和所述第二端口包括相同数量的引脚,
其中故障位通过所述第二端口输出。
7.根据权利要求1所述的存储器模块,其中在所述第“M+1”存储器芯片中还存储有用于校正在所述第一至第M存储器芯片中产生的随机错误和多位错误中的至少一个的代码信息。
8.根据权利要求1所述的存储器模块,还包括安装在所述模块板上的第“M+2”存储器芯片,
其中在所述第“M+2”存储器芯片中存储有用于校正在所述第一至第M存储器芯片中产生的随机错误和多位错误中的至少一个的代码信息。
9.根据权利要求8所述的存储器模块,其中在所述第“M+2”存储器芯片中还存储有作为检测码的循环冗余校验码,所述检测码对在所述第一至第M存储器芯片中发生芯片单元故障的存储器芯片的位置加以指示。
10.一种存储器模块,包括:
M个动态随机存取存储器DRAM芯片,其中所述M个DRAM芯片中的每一个包括DRAM内纠错电路In-DRAM ECC,用于检测和校正从相应DRAM芯片读取的数据中的位错误并产生故障位,所述故障位指示从相应DRAM芯片读取的数据是否包括不可校正的错误,所述不可校正的错误包括不能被In-DRAM ECC校正的一个或多个位错误,其中M是等于或大于2的整数;以及
缓冲器芯片,被连接为从所述M个DRAM芯片接收M个故障位,并响应于对故障位的计算操作来产生和输出故障信息。
11.根据权利要求10所述的存储器模块,
其中由所述M个DRAM芯片中的每一个输出的故障位各自具有识别是否发生了不可校正的错误的逻辑状态,
其中所述缓冲器芯片通过对所述M个故障位执行计算来产生1位故障信息。
12.根据权利要求10所述的存储器模块,其中所述缓冲器芯片包括寄存器,所述寄存器被配置为临时存储从所述M个DRAM芯片接收的M个故障位,并且响应于从在所述存储器模块外部的存储器控制器接收的访问命令来输出所述M个故障位。
13.根据权利要求10所述的存储器模块,其中所述存储器模块是非易失性双列直插式存储器模块NVDIMM,并且故障信息通过与NVDIMM的非易失性存储器的操作相关联地定义的错误报告引脚来输出。
14.根据权利要求10所述的存储器模块,其中所述M个DRAM芯片包括用于存储数据的多个第一DRAM芯片和用于存储奇偶校验信息的至少一个第二DRAM芯片,所述奇偶校验信息用于恢复芯片单元故障。
15.根据权利要求14所述的存储器模块,其中所述奇偶校验信息仅包括奇偶校验码,所述奇偶校验码自身不足以识别所述M个DRAM芯片中哪一个是故障芯片。
16.根据权利要求15所述的存储器模块,其中在所述第二DRAM芯片中还存储有用于校正在所述第一DRAM芯片中产生的随机错误和多位错误中的至少一个的代码信息以及所述奇偶校验码。
17.一种操作存储器控制器的方法,所述方法包括:
从多个存储器芯片接收数据和与所述数据相对应的奇偶校验码;
接收对所述多个存储器芯片中的至少一个发生故障加以指示的故障信息;
请求提供用于识别所述多个存储器芯片中的故障存储器芯片的故障位;以及
尝试通过使用所述故障位和所述奇偶校验码来恢复故障存储器芯片的数据。
18.根据权利要求17所述的方法,还包括:
在接收所述数据之前,产生用于恢复所述数据的奇偶校验码,其中在不产生自身足以在数据的后续读取操作中识别出故障存储器芯片的检测码的情况下,所述奇偶校验码自身不足以在数据的后续读取操作中识别出故障存储器芯片,所述奇偶校验码通过对要存储在所述多个存储器芯片中的数据进行编码处理而产生;以及
控制将所产生的奇偶校验码存储在所述多个存储器芯片中的至少一个中。
19.根据权利要求17所述的方法,其中响应于所接收的故障信息具有指示至少一个存储器芯片发生故障的第一逻辑状态,来选择性地执行对提供故障位的请求。
20.根据权利要求17所述的方法,其中当故障存储器芯片的数据不能使用所接收的奇偶校验码来恢复时,选择性地执行对提供故障位的请求。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662406969P | 2016-10-12 | 2016-10-12 | |
US62/406,969 | 2016-10-12 | ||
KR10-2017-0001318 | 2017-01-04 | ||
KR1020170001318A KR20180040474A (ko) | 2016-10-12 | 2017-01-04 | 칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943609A CN107943609A (zh) | 2018-04-20 |
CN107943609B true CN107943609B (zh) | 2021-10-29 |
Family
ID=61828936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710858013.6A Active CN107943609B (zh) | 2016-10-12 | 2017-09-20 | 存储器模块、存储器控制器和系统及其相应操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10169126B2 (zh) |
CN (1) | CN107943609B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715424B1 (en) * | 2013-08-23 | 2017-07-25 | Rambus Inc. | Memory device and repair method with column-based error code tracking |
US10725672B2 (en) * | 2016-10-12 | 2020-07-28 | Samsung Electronics Co., Ltd. | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation |
US10581841B2 (en) * | 2017-02-13 | 2020-03-03 | Zentel Japan Corporation | Authenticated network |
KR102387195B1 (ko) * | 2017-11-30 | 2022-04-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 에러 정정 방법 |
US10824502B2 (en) * | 2018-08-08 | 2020-11-03 | Micron Technology, Inc. | Enhanced codeword for media persistence and diagnostics |
CN110033813A (zh) * | 2018-08-31 | 2019-07-19 | 济南德欧雅安全技术有限公司 | 一种翻译器设备 |
KR102599047B1 (ko) * | 2018-11-13 | 2023-11-06 | 삼성전자주식회사 | 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
CN109271276B (zh) * | 2018-12-18 | 2019-04-05 | 展讯通信(上海)有限公司 | 芯片定位装置及方法 |
US10770431B1 (en) * | 2019-02-27 | 2020-09-08 | Western Digital Technologies, Inc. | Memory die layouts for failure protection in SSDs |
WO2020186524A1 (zh) * | 2019-03-21 | 2020-09-24 | 华为技术有限公司 | 一种存储校验方法及装置 |
KR102263044B1 (ko) * | 2019-08-23 | 2021-06-09 | 삼성전자주식회사 | 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
US11416422B2 (en) * | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
KR20210034726A (ko) * | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템 |
KR20210089016A (ko) | 2020-01-07 | 2021-07-15 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 시스템 |
CN111752747A (zh) * | 2020-06-09 | 2020-10-09 | 山东华翼微电子技术股份有限公司 | 一种增强检错能力的内存安全校验方法 |
US11276470B2 (en) | 2020-07-17 | 2022-03-15 | Micron Technology, Inc. | Bitline driver isolation from page buffer circuitry in memory device |
US11923023B2 (en) | 2020-08-31 | 2024-03-05 | Micron Technology, Inc. | Debug capabilities of a memory system with a pin |
US11640334B2 (en) | 2021-05-21 | 2023-05-02 | Microsoft Technology Licensing, Llc | Error rates for memory with built in error correction and detection |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0712255A2 (en) * | 1994-11-11 | 1996-05-15 | Samsung Electronics Co., Ltd. | Error-correction-code coding and decoding procedures for the recording and reproduction of digital video data |
CN102117661A (zh) * | 2009-11-12 | 2011-07-06 | 恒忆公司 | 用于存储器的可定制纠错的方法和设备 |
CN102163458A (zh) * | 2010-02-12 | 2011-08-24 | 株式会社东芝 | 半导体存储器装置 |
CN103218177A (zh) * | 2013-04-19 | 2013-07-24 | 杭州电子科技大学 | 具有数据均衡处理功能的NAND Flash存储系统 |
CN103811076A (zh) * | 2012-11-01 | 2014-05-21 | 三星电子株式会社 | 存储模块、具有其的存储系统及其读写方法 |
CN104182293A (zh) * | 2013-05-22 | 2014-12-03 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置与存储器控制器 |
CN105761739A (zh) * | 2015-01-05 | 2016-07-13 | 三星电子株式会社 | 存储装置、存储系统和操作该装置的方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2002361C (en) * | 1989-03-10 | 1993-12-21 | Robert M. Blake | Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature |
JP2003044349A (ja) * | 2001-07-30 | 2003-02-14 | Elpida Memory Inc | レジスタ及び信号生成方法 |
US7028213B2 (en) | 2001-09-28 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Error indication in a raid memory system |
US7043679B1 (en) | 2002-06-27 | 2006-05-09 | Advanced Micro Devices, Inc. | Piggybacking of ECC corrections behind loads |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US7444540B2 (en) | 2005-06-21 | 2008-10-28 | Hewlett-Packard Development Company, L.P. | Memory mirroring apparatus and method |
US7774684B2 (en) * | 2006-06-30 | 2010-08-10 | Intel Corporation | Reliability, availability, and serviceability in a memory device |
KR100856129B1 (ko) * | 2006-12-29 | 2008-09-03 | 삼성전자주식회사 | 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 |
JP5045242B2 (ja) * | 2007-05-30 | 2012-10-10 | 富士通セミコンダクター株式会社 | 半導体メモリ、半導体メモリの動作方法およびシステム |
US8468422B2 (en) | 2007-12-21 | 2013-06-18 | Oracle America, Inc. | Prediction and prevention of uncorrectable memory errors |
US9268632B2 (en) * | 2010-09-24 | 2016-02-23 | Rambus Inc. | Memory device with ECC history table |
JP2012113466A (ja) | 2010-11-24 | 2012-06-14 | Fujitsu Ltd | メモリコントローラ及び情報処理システム |
CN104903864B (zh) * | 2012-11-02 | 2018-09-04 | 慧与发展有限责任合伙企业 | 选择性错误校正码和存储器访问粒度切换 |
US20150067437A1 (en) | 2013-08-30 | 2015-03-05 | Kuljit S. Bains | Apparatus, method and system for reporting dynamic random access memory error information |
US9772900B2 (en) * | 2014-07-10 | 2017-09-26 | Samsung Electronics Co., Ltd. | Tiered ECC single-chip and double-chip Chipkill scheme |
US10002043B2 (en) | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
KR20160056380A (ko) * | 2014-11-10 | 2016-05-20 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US9547458B2 (en) * | 2014-12-24 | 2017-01-17 | International Business Machines Corporation | Intra-rack and inter-rack erasure code distribution |
US9606851B2 (en) | 2015-02-02 | 2017-03-28 | International Business Machines Corporation | Error monitoring of a memory device containing embedded error correction |
-
2017
- 2017-08-28 US US15/688,120 patent/US10169126B2/en active Active
- 2017-09-20 CN CN201710858013.6A patent/CN107943609B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0712255A2 (en) * | 1994-11-11 | 1996-05-15 | Samsung Electronics Co., Ltd. | Error-correction-code coding and decoding procedures for the recording and reproduction of digital video data |
CN102117661A (zh) * | 2009-11-12 | 2011-07-06 | 恒忆公司 | 用于存储器的可定制纠错的方法和设备 |
CN102163458A (zh) * | 2010-02-12 | 2011-08-24 | 株式会社东芝 | 半导体存储器装置 |
CN103811076A (zh) * | 2012-11-01 | 2014-05-21 | 三星电子株式会社 | 存储模块、具有其的存储系统及其读写方法 |
CN103218177A (zh) * | 2013-04-19 | 2013-07-24 | 杭州电子科技大学 | 具有数据均衡处理功能的NAND Flash存储系统 |
CN104182293A (zh) * | 2013-05-22 | 2014-12-03 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置与存储器控制器 |
CN105761739A (zh) * | 2015-01-05 | 2016-07-13 | 三星电子株式会社 | 存储装置、存储系统和操作该装置的方法 |
Non-Patent Citations (1)
Title |
---|
应用于存储器加固的ECC算法研究与实现;李福杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160215(第2期);I137-42 * |
Also Published As
Publication number | Publication date |
---|---|
US20180101424A1 (en) | 2018-04-12 |
US10169126B2 (en) | 2019-01-01 |
CN107943609A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943609B (zh) | 存储器模块、存储器控制器和系统及其相应操作方法 | |
US12111723B2 (en) | Memory repair method and apparatus based on error code tracking | |
TWI710892B (zh) | 動態隨機存取記憶體的錯誤更正方法 | |
US8041990B2 (en) | System and method for error correction and detection in a memory system | |
US7599235B2 (en) | Memory correction system and method | |
US20190034270A1 (en) | Memory system having an error correction function and operating method of memory module and memory controller | |
KR102198611B1 (ko) | 메모리 내 에러 수정 방법 | |
US7587658B1 (en) | ECC encoding for uncorrectable errors | |
US10725672B2 (en) | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation | |
US11928025B2 (en) | Memory device protection | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
US11714704B2 (en) | Modified checksum using a poison data pattern | |
US7480847B2 (en) | Error correction code transformation technique | |
US11775382B2 (en) | Modified parity data using a poison data unit | |
KR20230121611A (ko) | 시스템 메모리 신뢰성, 가용성 및 서비스 가능성(ras)을개선하기 위한 적응형 오류 정정 | |
US20240004791A1 (en) | Controller cache architeture | |
KR20180040474A (ko) | 칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법 | |
CN118202335A (zh) | 数据条带保护 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |