CN113157201A - 存储器控制器及包括存储器控制器的存储器系统 - Google Patents

存储器控制器及包括存储器控制器的存储器系统 Download PDF

Info

Publication number
CN113157201A
CN113157201A CN202011289748.XA CN202011289748A CN113157201A CN 113157201 A CN113157201 A CN 113157201A CN 202011289748 A CN202011289748 A CN 202011289748A CN 113157201 A CN113157201 A CN 113157201A
Authority
CN
China
Prior art keywords
memory
data
syndrome
parity
row
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.)
Granted
Application number
CN202011289748.XA
Other languages
English (en)
Other versions
CN113157201B (zh
Inventor
车相彦
李起准
李明奎
赵诚慧
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113157201A publication Critical patent/CN113157201A/zh
Application granted granted Critical
Publication of CN113157201B publication Critical patent/CN113157201B/zh
Active 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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1048Adding 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
    • 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/1048Adding 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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Dram (AREA)

Abstract

提供了存储器控制器及包括存储器控制器的存储器系统。存储器控制器控制包括数据芯片以及第一和第二奇偶校验芯片的存储器模块。存储器控制器包括纠错码(ECC)引擎。ECC引擎包括ECC解码器和用于存储奇偶校验矩阵的存储器。ECC解码器接收与数据芯片相关联的错误信息信号,使用奇偶校验矩阵对来自存储器模块的码字集执行ECC解码,以生成第一校验子和第二校验子,并基于错误信息信号和第二校验子,校正用户数据集中的比特错误。比特错误是由行故障生成的,并且使用第一校验子和第二校验子是不可校正的。每一个错误信息信号包括行故障信息,该行故障信息指示在相应的数据芯片中的至少一个存储单元行中是否发生行故障。

Description

存储器控制器及包括存储器控制器的存储器系统
相关申请的交叉引用
本申请要求于2020年1月7日递交的韩国专利申请No.10-2020-0002203的优先权,其公开内容通过引用整体并入本文中。
技术领域
本公开的示例性实施例涉及存储器,并且更具体地,涉及存储器控制器及包括存储器控制器的存储器系统。
背景技术
存储器件可以通过使用半导体如硅(Si)、锗(Ge)、砷化镓(GaAs)、磷化钢(InP)等来实现。存储器件包括易失性存储器件和非易失性存储器件。
易失性存储器件是指需要电力来维持所存储信息的存储器件。另一方面,非易失性存储器件是指即使在存储器的电力中断时也保持所存储数据的存储器件。动态随机存取存储器(DRAM)是一种具有高访问速度的易失性存储器件。DRAM被广泛用作计算系统的工作存储器、缓冲存储器或主存储器。
可以在存储器模块中设置多个DRAM。然而,存储在DRAM中的数据可能包括一个或多个错误。因此,需要有效地校正存储器模块中发生的错误的能力。
发明内容
本发明构思的至少一个示例性实施例提供了一种能够有效地校正在存储器模块中发生的错误的存储器控制器。
本发明构思的至少一个示例性实施例提供了一种存储器系统,该存储器系统包括能够有效地校正在存储器模块中发生的错误的存储器控制器。
根据本发明构思的示例性实施例,存储器控制器控制包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片的存储器模块。存储器控制器包括纠错码(ECC)引擎和用于控制ECC引擎的中央处理单元(CPU)。ECC引擎包括ECC解码器和用于存储奇偶校验矩阵的存储器。ECC解码器从多个数据芯片中接收错误信息信号(该错误信息信号与多个数据芯片相关联),使用奇偶校验矩阵对来自存储器模块的读取的码字集执行ECC解码,以生成第一校验子和第二校验子,并基于错误信息信号和第二校验子,校正读取的码字集的用户数据集中的多个比特错误。该多个比特错误是由行故障生成的,并且基于第一校验子和第二校验子是不可校正的。每一个错误信息信号包括行故障信息,该行故障信息指示在相应的数据芯片中的多个存储单元行中的至少一个存储单元行中是否发生行故障。
根据本发明构思的示例性实施例,一种存储器系统包括存储器模块和用于控制存储器模块的存储器控制器。存储器模块包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。存储器控制器包括纠错码(ECC)引擎和用于控制ECC引擎的中央处理单元(CPU)。ECC引擎包括ECC解码器和用于存储奇偶校验矩阵的存储器。ECC解码器从多个数据芯片中接收错误信息信号(该错误信息信号与多个数据芯片相关联),使用奇偶校验矩阵对来自存储器模块的读取的码字集执行ECC解码,以生成第一校验子和第二校验子,并基于错误信息信号和第二校验子,校正读取的码字集的用户数据集中的多个比特错误。该多个比特错误是由行故障生成的,并且基于第一校验子和第二校验子是不可校正的。每一个错误信息信号包括行故障信息,该行故障信息指示在相应的数据芯片中的多个存储单元行中的至少一个存储单元行中是否发生行故障。
根据本发明构思的示例性实施例,一种存储器系统包括存储器模块和用于控制存储器模块的存储器控制器。存储器模块包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。存储器控制器包括纠错码(ECC)引擎和用于控制ECC引擎的中央处理单元(CPU)。ECC引擎包括ECC解码器和用于存储奇偶校验矩阵的存储器。ECC解码器从多个数据芯片中接收错误信息信号(该错误信息信号与多个数据芯片相关联),使用奇偶校验矩阵对来自存储器模块的读取的码字集执行ECC解码,以生成第一校验子和第二校验子,并基于错误信息信号和第二校验子,校正读取的码字集的用户数据集中的多个比特错误。该多个比特错误是由行故障生成的,并且基于第一校验子和第二校验子是不可校正的。每一个错误信息信号包括行故障信息,该行故障信息指示在相应的数据芯片中的多个存储单元行中的至少一个存储单元行中是否发生行故障。ECC解码器响应于第一校验子具有零值并且第二校验子具有非零值,确定在至少一个数据芯片中发生行故障。
根据本发明构思的至少一个示例性实施例,存储器控制器的ECC引擎从存储器模块中的每一个数据芯片接收错误信息信号,并且可以校正由行故障生成的多个比特错误,该多个比特错误基于校验子是不可校正的。因此,存储器控制器可以提高错误校正的效率。
附图说明
通过参考附图详细描述本公开的示例性实施例,本公开将变得更清楚。
图1是示出了根据本发明构思的示例性实施例的存储器系统的框图。
图2是示出了根据本发明构思的示例性实施例的图1的存储器系统中的存储器控制器的框图。
图3示出了根据本发明构思的示例性实施例的与图1的存储器系统中的多个突发长度相对应的数据集。
图4是示出了根据本发明构思的示例性实施例的图1的存储器模块中的数据芯片的框图。
图5示出了根据本发明构思的示例性实施例的图4的数据芯片的第一存储体阵列。
图6是示出了根据本发明构思的示例性实施例的图2的ECC引擎的示例的框图。
图7示出了存储在图6的ECC引擎中的存储器中的奇偶校验生成矩阵的示例。
图8示出了用于生成奇偶校验子矩阵中的偏移子矩阵的基本偏移子矩阵的示例。
图9示出了图7中的奇偶校验生成矩阵中的零子矩阵的示例。
图10示出了图7中的奇偶校验生成矩阵中的单位子矩阵的示例。
图11示出了根据本发明构思的示例性实施例的图6的ECC引擎中的ECC编码器。
图12示出了存储在图6的ECC引擎中的存储器中的奇偶校验矩阵的示例。
图13示出了图12中的偏移子矩阵的示例。
图14示出了根据本发明构思的示例性实施例的图6的ECC引擎中的ECC解码器。
图15是示出了根据本发明构思的示例性实施例的图4的数据芯片中的清理控制电路的示例的框图。
图16是示出了根据本发明构思的示例性实施例的图15的清理控制电路中的清理地址生成器的框图。
图17示出了根据本发明构思的示例性实施例的图15的清理控制电路中的弱码字地址生成器。
图18示出了根据本发明构思的示例性实施例的图4的数据芯片中的错误信息寄存器。
图19是示出了根据本发明构思的示例性实施例的图4的数据芯片中的ECC引擎的框图。
图20示出了根据本发明构思的示例性实施例的图19的ECC引擎中的ECC解码器。
图21示出了从图1中的存储器模块输出的码字集的示例。
图22A至图22D分别示出了在图1的存储器系统中的存储器控制器和一个数据芯片之间传输错误信息信号。
图23是示出了根据本发明构思的示例性实施例的操作包括存储器模块和用于控制存储器模块的存储器控制器在内的存储器系统的方法的流程图。
图24是示出了根据本发明构思的示例性实施例的具有四秩(rank)存储器模块的存储器系统的框图。
图25是示出了根据本发明构思的示例性实施例的包括存储器模块的移动系统的框图。
具体实施方式
以下将参考附图更全面地描述本公开的示例性实施例。贯穿附图,相同附图标记可以表示相同元件。
图1是示出了根据本发明构思的示例性实施例的存储器系统的框图。
参考图1,存储器系统20包括存储器控制器100和存储器模块MM。存储器模块MM包括多个存储器芯片200a~200k、200pa和200pb。多个存储器芯片200a~200k、200pa和200pb包括多个数据芯片200a~200k、第一奇偶校验(parity)芯片200pa和第二奇偶校验芯片200pb。存储器芯片200a~200k、200pa和200pb中的每一个可以被称为半导体存储器件。
存储器控制器100可以控制存储器系统20的整体操作。存储器控制器100可以控制主机(例如,主机设备)与多个存储器芯片200a~200k、200pa和200pb之间的整体数据交换。例如,存储器控制器100可以响应于来自主机的请求,在多个存储器芯片200a~200k、200pa和200pb中写入数据或从多个存储器芯片200a~200k、200pa和200pb读取数据。此外,存储器控制器100可以向多个存储器芯片200a~200k、200pa和200pb发出操作命令,以控制多个存储器芯片200a~200k、200pa和200pb。
在示例性实施例中,多个存储器芯片200a~200k、200pa和200pb中的每一个包括易失性存储单元,例如动态随机存取存储器(DRAM)。
在本发明构思的示例性实施例中,数据芯片200a~200k的数量为16。然而,数据芯片200a~200k的数量不限于此。在至少一个示例性实施例中,数据芯片200a~200k中的每一个被称为数据存储器,并且奇偶校验芯片200pa和200pb中的每一个被称为纠错码(ECC)存储器或冗余存储器。
存储器控制器100向存储器模块MM发送地址ADDR和命令CMD,并且可以与存储器模块MM交换码字集SCW。例如,存储器控制器100可以向存储器模块MM发送读取命令和地址ADDR,并且存储器模块MM可以响应于读取命令和地址ADDR向存储器控制器100输出一个或多个码字。
存储器控制器100包括纠错码(ECC)引擎130,并且ECC引擎130可以对用户数据集和元数据执行ECC编码以生成奇偶校验数据集,并且可以在存储器系统20的写操作中向存储器模块MM提供包括用户数据集、元数据和奇偶校验数据集在内的码字。可以将用户数据集存储在数据芯片200a~200k中,将元数据和奇偶校验数据集的第一部分存储在第一奇偶校验芯片200pa中,并将奇偶校验数据集的第二部分存储在第二奇偶校验芯片200pb中。
此外,ECC引擎130可以从数据芯片接收与数据芯片200a~200k相关联的错误信息信号EIS,可以使用奇偶校验矩阵对从存储器模块MM读取的码字CW执行ECC解码以生成第一校验子(syndrome)和第二校验子,并且可以基于错误信息信号EIS和第二校验子来校正码字集SCW的用户数据集中的多个比特错误。多个比特错误可以由于行故障而生成,并且可以基于第一校验子和第二校验子是不可校正的。
每一个错误信息信号EIS可以包括行故障信息,该行故障信息指示在相应的数据芯片200a~200k中的多个存储单元行中的至少一个中是否发生行故障。
此外,每一个错误信息信号EIS可以包括指定发生行故障的存储单元行的地址信息,这将稍后参考图18进行描述。因此,ECC引擎130可以基于从发生行故障的数据芯片提供的错误信息信号和第二校验子来校正由于行故障而生成的多个比特错误。
图2是示出了根据本发明构思的示例性实施例的图1的存储器系统中的存储器控制器的框图。
参考图2,存储器控制器100包括中央处理单元(CPU)110、主机接口120(例如,接口电路)、数据寄存器125、ECC引擎130、命令缓冲器190和地址缓冲器195。ECC引擎130包括ECC编码器140、ECC解码器150和存储器180。
主机接口120从主机接收请求REQ和用户数据集SDQ,生成与用户数据集SDQ相关联的元数据MDT,向数据寄存器125提供用户数据集SDQ,并且向ECC编码器140提供元数据MDT。数据寄存器125可以连续地(或顺序地)向ECC引擎130输出用户数据集SDQ。例如,数据寄存器125可以周期性地输出部分用户数据集SDQ,直到所有用户数据集SDQ已经被输出给ECC引擎130为止。
在示例性实施例中,ECC编码器140使用奇偶校验生成矩阵对用户数据集SDQ和元数据MDT执行ECC编码,以生成第一码字集SCW1。ECC解码器150可以使用奇偶校验矩阵向CPU110输出解码状态标志DSF,并使用奇偶校验矩阵向CPU 110提供用户数据集SDQ和校正后的用户数据集C_SDQ之一。存储器180可以存储奇偶校验生成矩阵和奇偶校验矩阵。
CPU 110接收用户数据集SDQ或校正后的用户数据集C_SDQ,并控制ECC引擎130、命令缓冲器190和地址缓冲器195。命令缓冲器190在CPU 110的控制下存储与请求REQ相对应的命令CMD,并且向存储器模块MM发送命令CMD。地址缓冲器195在CPU 110的控制下存储地址ADDR,并向存储器模块MM发送地址ADDR。ECC引擎130可以包括存储错误信息信号EIS的寄存器。
在示例性实施例中,ECC解码器150使用奇偶校验矩阵对来自存储器模块MM的第二码字集SCW2(读取的码字集)执行ECC解码,以生成第一校验子和第二校验子,并基于错误信息信号EIS和第二校验子来校正第二码字集SCW2的用户数据集中的多个比特错误。这多个比特错误可能无法使用第一校验子和第二校验子来校正,并且每一个错误信息信号EIS可以包括行故障信息,该行故障信息指示在相应的数据芯片200a~200k中的多个存储单元行中的至少一个中是否发生行故障。
图3示出了根据本发明构思的示例性实施例的与图1的存储器系统中的多个突发长度相对应的数据集。
参考图3,数据芯片200a~200k以及奇偶校验芯片200pa和200pb中的每一个可以执行突发操作。本文中,突发操作是指通过顺序地增加或减少从存储器控制器100提供的初始地址来写入或读取大量数据的操作。突发操作的基本单元可以被称为突发长度BL。
参考图3,与多个突发长度相对应的数据集DQ_BL1~DQ_BLk中的每一个被输入到数据芯片200a~200k中的每一个,或从数据芯片200a~200k中的每一个输出。
数据集DQ_BL1~DQ_BLk中的每一个可以包括与多个突发长度中的每一个突发长度相对应的数据段DQ_BL_SG1~DQ_BL_SG8。数据集DQ_BL1~DQ_BLk可以对应于用户数据集SDQ。在图3中假设突发长度为8。在每一个数据芯片200a~200k中执行突发操作时,与多个突发长度相对应的元数据MDT和第一奇偶校验数据PRTL被输入到第一奇偶校验芯片200pa/从第一奇偶校验芯片200pa输出,并且与多个突发长度相对应的第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2被输入到第二奇偶校验芯片200pb/从第二奇偶校验芯片200pb输出。第二奇偶校验数据PRTM包括第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2。
第一奇偶校验数据PRTL可以被称为错误定位符奇偶校验数据,并且可以与用户数据集SDQ中的比特错误的位置相关联,而第二奇偶校验数据PRTM可以被称为错误量级奇偶校验数据,并且可以与用户数据集SDQ中的比特错误的量级(量或数量)相关联。
图4是示出了根据本发明构思的示例性实施例的图1的存储器模块中的数据芯片之一的框图。
参考图4,数据芯片200a包括控制逻辑电路210、地址寄存器220、存储体(bank)控制逻辑230、刷新控制电路385、行地址复用器240、列地址锁存器250、行解码器260、列解码器270、存储单元阵列300、读出放大器单元285、I/O选通电路290、ECC引擎400、清理(scrubbing)控制电路500、受害者(victim)地址检测器560、错误信息寄存器580和数据I/O缓冲器295。
存储单元阵列300包括第一存储体阵列310至第八存储体阵列380。行解码器260包括分别耦接到第一存储体阵列310至第八存储体阵列380的第一存储体行解码器260a至第八存储体行解码器260h,列解码器270包括分别耦接到第一存储体阵列310至第八存储体阵列380的第一存储体列解码器270a至第八存储体列解码器270h,并且读出放大器单元285包括分别耦接到第一存储体阵列310至第八存储体阵列380的第一存储体读出放大器285a至第八存储体读出放大器285h。
第一存储体阵列310至第八存储体阵列380、第一存储体行解码器260a至第八存储体行解码器260h、第一存储体列解码器270a至第八存储体列解码器270h以及第一存储体读出放大器285a至第八存储体读出放大器285h可以形成第一存储体至第八存储体。第一存储体阵列310至第八存储体阵列380中的每一个包括形成在多条字线WL和多条位线BTL的交叉点处的多个存储单元MC。存储单元MC可以是易失性存储单元。
尽管数据芯片200a在图4中被示出为包括八个存储体,但是数据芯片200a可以包括任何数量的存储体。
地址寄存器220从存储器控制器100接收地址ADDR,包括存储体地址BANK_ADDR、行地址ROW_ADDR和列地址COL_ADDR。地址寄存器220将接收的存储体地址BANK_ADDR提供给存储体控制逻辑230,将接收的行地址ROW_ADDR提供给行地址复用器240,并且将接收的列地址COL_ADDR提供给列地址锁存器250。
存储体控制逻辑230可以响应于存储体地址BANK_ADDR生成存储体控制信号。第一存储体行解码器260a至第八存储体行解码器260h中与存储体地址BANK_ADDR相对应的存储体行解码器可以响应于存储体控制信号而激活,并且第一存储体列解码器270a至第八存储体列解码器270h中与存储体地址BANK_ADDR相对应的存储体列解码器可以响应于存储体控制信号而激活。
行地址复用器240从地址寄存器220接收行地址ROW_ADDR,并且从刷新控制电路385接收刷新行地址REF_ADDR。行地址多路复用器240可以选择性地将行地址ROW_ADDR或刷新行地址REF_ADDR输出为行地址RA。可以将从行地址复用器240输出的行地址RA应用于第一存储体行解码器260a至第八存储体行解码器260h。
刷新控制电路385可以响应于来自控制逻辑电路210的第一刷新控制信号IREF1或第二刷新控制信号IREF2顺序地输出刷新行地址REF_ADDR。
当来自存储器控制器100的命令CMD对应于自动刷新命令时,每当控制逻辑电路210接收到自动刷新命令时,控制逻辑电路210就可以将第一刷新控制信号IREF1应用于刷新控制电路385。
当来自存储器控制器100的命令CMD对应于自刷新进入命令时,控制逻辑电路210可以将第二刷新控制信号IREF2应用于刷新控制电路385。在示例性实施例中,从控制逻辑电路210接收到自刷新进入命令的时间点到控制逻辑电路210接收到自刷新退出命令的时间点,激活第二刷新控制信号IREF2。刷新控制电路385可以响应于接收到第一刷新控制信号IREF1或者在第二刷新控制信号IREF2被激活的时间段期间顺序地增大或减小刷新行地址REF_ADDR。
第一存储体行解码器260a至第八存储体行解码器260h中激活的存储体行解码器可以对从行地址复用器240输出的行地址RA进行解码,并且可以激活与行地址RA相对应的字线WL。例如,所激活的存储体行解码器可以生成字线驱动电压,并可以将字线驱动电压施加到与行地址RA相对应的字线WL。
列地址锁存器250可以从地址寄存器220接收列地址COL_ADDR,并且可以临时存储接收到的列地址COL_ADDR。在本发明构思的示例性实施例中,在突发模式下,列地址锁存器250生成从接收的列地址COL_ADDR递增的列地址。列地址锁存器250可以将临时存储的或生成的列地址COL_ADDR应用于第一存储体列解码器270a至第八存储体列解码器270h。
第一存储体列解码器270a至第八存储体列解码器270h中激活的存储体列解码器可以对从列地址锁存器250输出的列地址COL_ADDR进行解码,并且可以控制I/O选通电路290,以输出与列地址COL_ADDR相对应的数据。
I/O选通电路290可以包括用于对输入/输出数据进行选通的电路。I/O选通电路290还可以包括:用于存储从第一存储体阵列310至第八存储体阵列380输出的数据的读取数据锁存器、以及用于将数据写入到第一存储体阵列310至第八存储体阵列380的写入驱动器。
从第一存储体阵列310至第八存储体阵列380中的一个存储体阵列中读取的码字CW由与要从中读取数据的这一个存储体阵列耦接的读出放大器感测,并且被存储在读取数据锁存器中。在由ECC引擎400对存储在读取数据锁存器中的码字CW执行ECC解码之后,该码字CW可以经由数据I/O缓冲器295被提供给存储器控制器100。
可以将要写入第一存储体阵列310至第八存储体阵列380中的一个存储体阵列中的用户数据DQ_BL从存储器控制器100提供给数据I/O缓冲器295,并且可以从数据I/O缓冲器295提供给ECC引擎400。ECC引擎400可以对用户数据DQ_BL执行ECC编码以生成奇偶校验数据(第三奇偶校验数据),ECC引擎400可以将包括用户数据DQ_BL和奇偶校验数据在内的码字CW提供给I/O选通电路290,并且I/O选通电路290可以通过写入驱动器将码字CW写入一个存储体阵列中的目标页的子页中。
数据I/O缓冲器295可以在数据芯片200a的写操作中将来自存储器控制器100的用户数据DQ_BL提供给ECC引擎400,并且可以在数据芯片200a的读操作中将来自ECC引擎400的用户数据DQ_BL提供给存储器控制器100。
在示例性实施例中,在数据芯片200a的刷新操作期间在清理操作中,ECC引擎400对从目标页的子页(第一存储单元行)中读取的M个码字顺序地执行ECC解码(错误检测操作),并且当在M(M是大于3的整数)个码字中的至少一个中检测到至少一个比特错误时,将错误生成信号EGS提供给控制逻辑电路210。控制逻辑电路210可以在错误信息寄存器580中将包括该至少一个比特错误的码字的行地址和列地址记录为错误信息EINF。
控制逻辑电路210可以基于错误信息EINF,响应于在第一存储单元行的M个码字中的K(K是大于2的整数)个或更多个码字中检测到比特错误,确定在第一存储单元行中发生行故障,并且可以将包括行故障信息的错误信息信号EIS发送给存储器控制器100。
控制逻辑电路210可以基于错误信息EINF来控制ECC引擎400,使得ECC引擎400响应于M个码字中可校正的码字的数量小于K而分别在对应的存储器位置中回写可校正的码字,并且每一个可校正的码字包括要由ECC引擎400校正的比特错误。
在数据芯片200a的正常读操作中,ECC引擎400可以对从目标页读取的码字执行ECC解码,可以校正码字中的比特错误,并且可以向数据I/O缓冲器295提供校正后的用户数据DQ_BL。
清理控制电路500可以对顺序地改变的刷新行地址REF_ADDR进行计数,并且每当(例如,响应于)清理控制电路500计数了N个刷新行地址时,可以输出(例如,生成)正常清理地址SCADDR。这里,N是大于3的自然数。正常清理地址SCADDR可以包括清理行地址SRA和清理列地址SCA。清理控制电路500可以在第一清理模式下分别向行解码器260和列解码器270提供清理行地址SRA和清理列地址SCA。
受害者地址检测器560可以对存储单元阵列300中的第一存储器区域的访问的数量(例如,量)进行计数,以在(例如,响应于确定)所计数的访问的数量达到阈值(例如,参考间隔期间的参考次数(例如,量))时,生成指定与第一存储器区域相邻的至少一个相邻存储器区域的至少一个受害者地址VCT_ADDR。该至少一个受害者地址VCT_ADDR可以存储在清理控制电路500的地址存储表中。
在第二清理模式下,清理控制电路500可以将与存储在地址存储表中的至少一个受害者地址VCT_ADDR相关联的码字的地址输出为至少一个弱码字地址WCADDR。弱码字地址WCADDR可以包括弱码字行地址WCRA和弱码字列地址WCCA。清理控制电路500可以在第二清理模式下分别向行解码器260和列解码器270提供弱码字行地址WCRA和弱码字列地址WCCA。
因此,将理解,受害者地址检测器560可以将至少一个受害者地址VCT_ADDR提供给清理控制电路500,并且清理控制电路500可以在其中的地址存储表中存储该至少一个受害者地址VCT_ADDR作为至少一个弱码字地址WCADDR。
控制逻辑电路210可以控制数据芯片200a的操作。例如,控制逻辑电路210可以生成针对数据芯片200a的控制信号,以执行写操作或读操作。控制逻辑电路210包括:对从存储器控制器100接收的命令CMD进行解码的命令解码器211;以及设置数据芯片200a的操作模式的模式寄存器212。控制逻辑电路210可以另外包括计数器214,该计数器214基于错误生成信号EGS来对一个码字或一个存储单元行的错误发生数量进行计数。
例如,命令解码器211可以通过对写使能信号、行地址选通信号、列地址选通信号、芯片选择信号等进行解码来生成与命令CMD相对应的控制信号。
控制逻辑电路210可以生成第一控制信号CTL1以控制I/O选通电路290,第二控制信号CTL2以控制ECC引擎400(例如,使ECC引擎生成错误生成信号EGS),第三控制信号CTL3以控制清理控制电路500,第四控制信号CTL4以控制受害者地址检测器560,以及第五控制信号CTL5以控制错误信息寄存器580。
在示例性实施例中,受害者地址检测器560不包括在数据芯片200a中。在这种情况下,至少一个受害者地址VCT_ADDR不被提供给清理控制电路500,并且清理控制电路500不输出弱码字地址WCADDR。
错误信息寄存器580可以基于错误信息EINF,将与多个存储单元行之中发生行故障的至少一个存储单元行相关联的行故障信息提供(发送)给存储器控制器100,作为错误信息信号EIS。错误信息寄存器580可以响应于第五控制信号CTL5,经由数据芯片200a的数据屏蔽引脚或警报引脚之一将错误信息信号EIS发送给存储器控制器100。
由于清理操作在数据芯片200a的刷新操作期间执行,所以控制逻辑电路210将错误信息EINF记录在错误信息寄存器580中,并在后台操作中确定至少一些存储单元行中是否发生行故障。可以对存储器控制器100隐藏后台操作。例如,数据芯片200a可以独立于存储器控制器100执行清理操作。
奇偶校验芯片200pa和200pb中的每一个可以具有与数据芯片200a基本相同的配置。奇偶校验芯片200pa和200pb中的每一个可以输入/输出对应的奇偶校验数据。
图5示出了根据本发明构思的示例性实施例的图4的数据芯片的第一存储体阵列。
参考图5,第一存储体阵列310包括多条字线WL1~WL2m(其中m是大于2的自然数)、多条位线BTL1~BTL2n(其中n是大于2的自然数)以及设置在字线WL1~WL2m和位线BTL1~BTL2n之间的交叉点附近的多个存储单元MC。在本发明构思的示例性实施例中,多个存储单元MC中的每一个包括DRAM单元结构。连接到多个存储单元MC的多条字线WL1~WL2m可以被称为第一存储体阵列310的行,并且连接到多个存储单元MC的多条位线BL1~BL2n可以被称为第一存储体阵列310的列。
图6是示出了根据本发明构思的示例性实施例的图2的ECC引擎的框图。
参考图6,ECC引擎130包括ECC编码器140、ECC解码器150和存储器180。存储器180可以被称为ECC存储器。
存储器180连接到ECC编码器140和ECC解码器150,并且可以存储奇偶校验生成矩阵PGM和奇偶校验矩阵PCM。
在示例性实施例中,ECC编码器140通过使用奇偶校验生成矩阵PCM对用户数据集SDQ和元数据MDT执行ECC编码,以生成包括第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的奇偶校验数据集SPRT,并输出包括用户数据集SDQ、元数据MDT和奇偶校验数据集SPRT在内的第一码字集SCW1。
ECC解码器150从存储器模块MM接收包括用户数据集SDQ、元数据MDT和奇偶校验数据集SPRT在内的第二码字集SCW2。ECC解码器150连接到寄存器185,并接收错误信息信号EIS。在本发明构思的示例性实施例中,ECC解码器150使用奇偶校验矩阵PCM对第二码字集SCW2执行ECC解码以生成第一校验子和第二校验子,可以使用第一校验子和第二校验子校正用户数据集SDQ中的比特错误以生成校正后的用户数据C_SDQ,并且可以在输出校正后的用户数据集C_SDQ时生成指示用户数据集SDQ中的比特错误已经被校正的解码状态标志DSF。
ECC解码器150可以执行ECC解码以生成第一校验子和第二校验子,可以通过使用错误信息信号EIS和第二校验子来校正用户数据集SDQ中的多个比特错误(其基于第一校验子和第二校验子是不可校正的),并且可以输出校正后的用户数据集C_SDQ。
图7示出了存储在图6的ECC引擎的存储器中的奇偶校验生成矩阵的示例。
参考图7,奇偶校验生成矩阵PGM包括第一奇偶校验子矩阵HS11、第二奇偶校验子矩阵HS12和第三奇偶校验子矩阵HS13
第一奇偶校验子矩阵HS11包括与数据芯片200a~200k相对应的多个偏移子矩阵OSM1~OSM2k以及与奇偶校验芯片200pa和200pb相对应的两个零子矩阵ZSM1和ZSM2。偏移子矩阵OSM1~OSM2k以及零子矩阵ZSM1和ZSM2中的每一个包括p×p个元素(p是大于1的自然数)。
第二奇偶校验子矩阵HS12包括(多个)(k+1)个单位子矩阵ISM和(多个)(k+1)个零子矩阵ZSM。(k+1)个单位子矩阵ISM和(k+1)个零子矩阵ZSM中的每一个包括p×p个元素。此外,(k+1)个单位子矩阵ISM和(k+1)个零子矩阵ZSM交替布置。
第三奇偶校验子矩阵HS13包括(多个)(k+1)个零子矩阵ZSM和(多个)(k+1)个单位子矩阵ISM。(k+1)个零子矩阵ZSM和(k+1)个单位子矩阵ISM中的每一个包括p×p个元素。此外,(k+1)个零子矩阵ZSM和(k+1)个单位子矩阵ISM交替布置。
图8示出了基本偏移子矩阵的示例,其可以用于生成第一奇偶校验子矩阵中的偏移子矩阵。
参考图8,基本偏移子矩阵OSMb可以包括(p+3)个高电平(high level)元素。可以基于诸如x16+x12+x3+x+1之类的本原多项式(primitive polynomial)获得基本偏移子矩阵OSMb。如果改变p阶本原多项式,则可以改变每一个偏移子矩阵OSM1~OSM2k的元素。
可以通过基本偏移子矩阵OSMb的幂来获得偏移子矩阵OSM1~OSM2k中的偏移子矩阵OSM1。可以通过将偏移子矩阵OSM1和由基本偏移子矩阵OSMb以偏移求幂获得的子矩阵相乘来获得偏移子矩阵OSM1~OSM2k中的偏移子矩阵OSM2。
此外,偏移子矩阵OSM1~OSM2k中与一个(存储器)芯片相关联的两个偏移子矩阵OSM(2i-1)和OSM(2i)之间的间隙是规则的。这里,i是1到8之一。也就是说,可以通过将偏移子矩阵OSM3和由基本偏移子矩阵OSMb以偏移求幂获得的子矩阵相乘来获得偏移子矩阵OSM4。
图9示出了图7中的奇偶校验生成矩阵中的零子矩阵的示例。
参考图9,在与每一个零子矩阵ZSM相对应的零子矩阵ZSM中,其每个元素被设置为零。
图10示出了图7中的奇偶校验生成矩阵中的单位子矩阵的示例。
参考图10,与每一个单位子矩阵ISM相对应的单位子矩阵ISM包括沿对角线方向设置的p个高电平元素。除高电平元素外,每一个其他元素被设置为0。
在图7至图10中,p可以对应于16并且可以对应于在一次突发操作期间输入到每一个数据芯片200a~200k/从每一个数据芯片200a~200k输出的数据集DQ_BL的比特数量。此外,第一奇偶校验子矩阵HS11中的非零元素的数量可以大于第二奇偶校验子矩阵HS12中的非零元素的数量或第三奇偶校验子矩阵HS13中的非零元素的数量。
图11示出了根据本发明构思的示例性实施例的图6的ECC引擎中的ECC编码器。
参考图11,ECC编码器140包括错误定位符奇偶校验生成器141、第一错误量级奇偶校验生成器143、第二错误量级奇偶校验生成器145和缓冲器147。
错误定位符奇偶校验生成器141通过使用第一奇偶校验子矩阵HS11对用户数据集SDQ和元数据MDT执行ECC编码,以生成用于确定错误位置的第一奇偶校验数据PRTL,并将第一奇偶校验数据PRTL提供给缓冲器147。第一奇偶校验数据PRTL可以被称为第一奇偶校验数据。
错误定位符奇偶校验生成器141可以通过对用户数据集SDQ和元数据MDT与第一奇偶校验子矩阵HS11执行矩阵乘法运算来生成第一奇偶校验数据PRTL。如果用户数据集SDQ和元数据MDT的向量表示对应于ms,并且错误定位符奇偶校验数据PRTL的向量表示对应于pL,则pL=HS11[ms 0]T。这里,T表示转置矩阵,0表示零矩阵。
第一错误量级奇偶校验生成器143通过使用第二奇偶校验子矩阵HS12对用户数据集SDQ和元数据MDT执行ECC编码,以生成用于确定比特错误数量的第一子奇偶校验数据PRTM1,并将第一子奇偶校验数据PRTM1提供给缓冲器147。第一子奇偶校验数据PRTM1可以被称为第一错误量级奇偶校验数据。
第一错误量级奇偶校验生成器143可以通过对用户数据集SDQ和元数据MDT与第二奇偶校验子矩阵HS12执行矩阵乘法运算来生成第一子奇偶校验数据PRTM1。如果第一子奇偶校验数据PRTM1的向量表示对应于pM1,则pM1=HS12[ms pL 0]T
第二错误量级奇偶校验生成器145通过使用第三奇偶校验子矩阵HS13对用户数据集SDQ和元数据MDT执行ECC编码,以生成用于确定比特错误数量的第二子奇偶校验数据PRTM2,并将第二子奇偶校验数据PRTM2提供给缓冲器147。第二子奇偶校验数据PRTM2可以被称为第二错误量级奇偶校验数据。
第二错误量级奇偶校验生成器145可以通过对用户数据集SDQ和元数据MDT与第三奇偶校验子矩阵HS13执行矩阵乘法运算来生成第二子奇偶校验数据PRTM2。如果第二错误量级奇偶校验数据PRTM2的向量表示对应于PM2,则PM2=HS13[ms pL 0]T。第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2可以被包括在第二奇偶校验数据PRTM中。
缓冲器147接收用户数据集SDQ、元数据MDT、第一奇偶校验数据PRTL、第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2,并且向存储器模块MM提供包括用户数据集SDQ、元数据MDT、第一奇偶校验数据PRTL、第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2在内的码字集SCW1。
图12示出了存储在图6的ECC引擎的存储器中的奇偶校验矩阵的示例。
参考图12,奇偶校验矩阵PCM包括第一奇偶子矩阵HS21、第二奇偶子矩阵HS22和第三奇偶子矩阵HS23
第一奇偶校验子矩阵HS21包括与数据芯片200a~200k相对应的多个偏移子矩阵OSM1~OSM2k以及与奇偶校验芯片200pa和200pb相对应的两个零子矩阵ZSM1和ZSM2。偏移子矩阵OSM1~OSM2k以及零子矩阵ZSM1和ZSM2中的每一个包括p×p个元素。
第二奇偶校验子矩阵HS22包括(多个)(k+1)个单位子矩阵ISM和(多个)(k+1)个零子矩阵ZSM。(k+1)个单位子矩阵ISM和(k+1)个零子矩阵ZSM中的每一个包括p×p个元素。此外,(k+1)个单位子矩阵ISM和(k+1)个零子矩阵ZSM交替布置。
第三奇偶校验子矩阵HS23包括(多个)(k+1)个零子矩阵ZSM和(多个)(k+1)个单位子矩阵ISM。(k+1)个零子矩阵ZSM和(k+1)个单位子矩阵ISM中的每一个包括p×p个元素。此外,(k+1)个零子矩阵ZSM和(k+1)个单位子矩阵ISM交替布置。
参考图7和图12,第一奇偶校验子矩阵HS21与第一奇偶校验子矩阵HS11相同,并且第二奇偶校验子矩阵HS22与第二奇偶校验子矩阵HS12相同。第三奇偶校验子矩阵HS23与第三子矩阵HS13相同。此外,图6中的ECC编码器140和ECC解码器150共享奇偶校验生成矩阵PGM,并分别执行ECC编码和ECC解码。奇偶校验生成矩阵PGM可以等于图6中的奇偶校验矩阵PCM。
图13示出了图12中的偏移子矩阵的示例。
参考图13,可以通过基本偏移子矩阵OSMb以偏移ofs求幂来获得偏移子矩阵OSM。
参考图12和图13,第一奇偶校验子矩阵HS21中的非零元素的数量可以大于第二奇偶校验子矩阵HS22中的非零元素的数量或第三奇偶校验子矩阵HS23中的非零元素的数量。因此,图6中的ECC解码器150通过使用第一奇偶校验子矩阵HS21来生成第一校验子,通过使用第二奇偶校验子矩阵HS22和第三奇偶校验子矩阵H523来生成第二校验子,并确定用户数据集SDQ是否包括基于第一校验子和第二校验子可校正的比特错误。如果用户数据集SDQ包括基于第一校验子和第二校验子不可校正的比特错误,则ECC解码器150可以通过使用错误信息信号EIS和第二校验子来校正基于第一校验子和第二校验子不可校正的比特错误。
图14示出了根据本发明构思的示例性实施例的图6的ECC引擎中的ECC解码器。
参考图14,ECC解码器150包括第一错误量级校验子生成器151、第二错误量级校验子生成器152、错误定位符校验子生成器153、数据校正器155和解码状态标志生成器156。
第一错误量级校验子生成器151通过对读取的码字集SCW2和第二奇偶校验子矩阵HS22执行矩阵乘法运算来生成指示比特错误数量的第一子校验子SDR_M1。如果读取的码字集SCW2的向量表示对应于rT,并且第一子校验子SDR_M1的向量表示对应于SM01,则SM01=HS22rT
第二错误量级校验子生成器152通过对读取的码字集SCW2和第三奇偶校验子矩阵HS23执行矩阵乘法运算来生成指示比特错误数量的第二子校验子SDR_M2。如果第二子校验子SDR_M2的向量表示对应于SM02,则SM02=HS23rT
第一子校验子SDR_M1和第二子校验子SDR_M2被包括在第二校验子SDR_M中,即,错误量级校验子。
错误定位符校验子生成器153生成第一校验子SDR_L,该第一校验子SDR_L指示读取的码字集SCW2中可校正的错误的位置,并将第一校验子SDR_L提供给数据校正器155。如果第一校验子SDR_L的向量表示对应于SL,则SL=HS21rT
数据校正器155可以基于第一校验子SDR_L和第二校验子SDR_M来校正读取的码字集SCW2的用户数据集SDQ中的可校正的比特错误,或者通过使用第二校验子SDR_M和错误信息信号EIS来校正用户数据集SDQ中的基于第一校验子SDR_L和第二校验子SDR_M不能将其校正的多个比特错误,以输出校正后的用户数据集C_SDQ或用户数据集SDQ。此外,数据校正器155可以将指示比特错误是否被校正的错误标志EF输出到解码状态标志生成器156。
解码状态标志生成器156可以基于第一校验子SDR_L和第二校验子SDR_M的值,生成解码状态标志DSF,解码状态标志DSF指示码字CW2中的用户数据集SDQ是包括可校正的比特错误位还是不可校正的比特错误。
解码状态标志生成器156可以响应于第一校验子SDR_L具有非零值并且第二校验子SDR_M具有非零值来生成解码状态标志DSF,该解码状态标志DSF指示用户数据集SDQ包括基于第一校验子SDR_L和第二校验子SDR_M可校正的比特错误。
解码状态标志生成器156可以响应于第一校验子SDR_L具有零值并且第二校验子SDR_M具有非零值来生成解码状态标志DSF,该解码状态标志DSF指示用户数据集SDQ包括基于第一校验子SDR_L和第二校验子SDR_M不能将其校正的多个比特错误。在这种情况下,ECC解码器150可以通过使用错误信息信号EIS和第二校验子SDR_M来校正基于第一校验子SDR_L和第二校验子SDR_M不可校正的该多个比特错误。
图15是示出了根据本发明构思的示例性实施例的图4的数据芯片中的清理控制电路的框图。
参考图15,清理控制电路500包括计数器505(例如,计数器电路)、清理地址生成器510和弱码字地址生成器520。
计数器505对刷新行地址REF_ADDR进行计数以生成内部清理信号ISRB,每当计数器505计数了N个刷新行地址时,该内部清理信号ISRB在第一间隔期间被激活。N是等于或大于三的整数。第一间隔可以对应于对存储单元行进行刷新的间隔。例如,可以在已经接收到N个顺序刷新行地址之后,生成内部清理信号ISRB。也即,清理控制电路500可以对用于刷新存储单元行的刷新行地址进行计数,以在每当清理控制电路500计数了N个刷新行地址时输出清理地址。
清理地址生成器510响应于内部清理信号ISRB和清理模式信号SMS,生成与针对每一个存储单元行中的码字的正常清理操作相关联的正常清理地址SCADDR,其在第一清理模式下逐渐改变。例如,清理地址生成器510可以生成与针对强码字的正常清理操作相关联的正常清理地址SCADDR。
正常清理地址SCADDR包括清理行地址SRA和清理列地址SCA。清理行地址SRA指定一个存储体阵列中的一页,而清理列地址SCA指定这一页中的多个码字之中的一个码字。清理地址生成器510将清理行地址SRA提供给对应的行解码器,并将清理列地址SCA提供给对应的列解码器。
基于正常清理地址SCADDR执行的清理操作可以被称为正常清理操作,因为对存储单元阵列300中包括的所有码字(子页)执行基于正常清理地址SCADDR而执行的清理操作。
弱码字地址生成器520响应于内部清理信号ISRB和清理模式信号SMS,在第二清理模式下生成与弱清理操作相关联的弱码字地址WCADDR,弱清理操作与存储体阵列中的弱码字相关联。弱码字地址WCADDR包括弱码字行地址WCRA和弱码字列地址WCCA。当清理模式信号SMS具有第一逻辑电平时,清理模式信号SMS指示第一清理模式,而当清理模式信号SMS具有不同于第一逻辑电平的第二逻辑电平时,清理模式信号SMS指示第二清理模式。清理模式信号SMS可以被包括在第三控制信号CTL3中。弱码字地址生成器520将弱码字行地址WCRA提供给对应的行解码器,并将弱码字列地址WCCA提供给对应的列解码器。在示例性实施例中,ECC解码器150更有可能能够成功地校正强码字而不是弱码字中的错误。在示例性实施例中,弱码字和强码字具有数据和冗余部分(例如,奇偶校验),但是当这些码字具有相同大小时,强码字的冗余部分大于弱码字的冗余部分。
弱码字地址生成器520中可以包括地址存储表,并且该地址存储表可以存储与受害者地址VCT_ADDR相关联的码字的地址信息(例如,对应的地址)。
基于弱码字地址WCADDR执行的清理操作可以被称为目标(或弱)清理操作,因为对存储单元阵列300中包括的弱码字执行基于弱码字地址WCADDR而执行的清理操作。
图16是示出了根据本发明构思的示例性实施例的图15的清理控制电路中的清理地址生成器的框图。
参考图16,清理地址生成器510包括页段计数器511和行计数器513。
响应于内部清理信号ISRB和清理模式信号SMS,当内部清理信号ISRB在第一清理模式下被激活时,页段计数器511将清理列地址SCA增加1,并且每当清理列地址SCA达到其最大值时,通过复位而激活最大地址检测信号MADT。页段计数器511将最大地址检测信号MADT提供给行计数器513。
响应于内部清理信号ISRB和清理模式信号SMS,行计数器513在最初接收到内部清理信号ISRB时开始计数操作,并且每当接收到激活的最大地址检测信号MADT时,将清理行地址SRA增加1。由于在对一个存储单元行执行刷新操作的第一间隔期间激活内部清理信号ISRB,因此页段计数器511可以在第一间隔期间生成与一页中的码字相关联的清理列地址SCA。
图17示出了根据本发明构思的示例性实施例的图15的清理控制电路中的弱码字地址生成器。
参考图17,弱码字地址生成器520包括表指针521、地址存储表530和感测单元540。
地址存储表530存储存储单元阵列300中包括的弱码字的地址信息WCRA1~WCRAs(s是大于1的自然数)和WCCA1~WCCAt(t是大于1的自然数)。
地址信息WCRA1~WCRAs被指定为弱码字行地址,并且地址信息WCCA1~WCCAt被指定为弱码字列地址。弱码字可以是第一存储体阵列310中的页之中包括大于参考值的比特错误数量的弱页中的全部或一些。此外,弱码字可以是与密集访问的存储器区域相邻的相邻页的码字。因此,将理解,地址存储表530可以存储与弱码字相关联的地址信息,例如指示弱码字的对应地址(例如,WCRA1~WCRA和/或WCCA1~WCCAt)的地址信息。
表指针521可以在第二清理模式下在第一间隔期间响应于内部清理信号ISRB和清理模式信号SMS,生成提供与地址存储表530相关联的位置信息的指针信号TPS,并将指针信号TPS提供给地址存储表530。地址存储表530可以包括非易失性存储设备。从图4中的受害者地址生成器560提供的第一受害者地址VCT_ADDR1和第二受害者地址VCT_ADDR2中的至少一个可以存储在地址存储表530中。
指针信号TPS在第一间隔期间按预定时间段逐渐增加,并且每当应用指针信号TPS时,地址存储表530可以响应于指针信号TPS通过感测单元540将存储在(由指针信号TPS指示的)位置中的弱码字地址输出为弱码字行地址WCRA和弱码字列地址WCCA。例如,指针信号TPS可以包括引用地址存储表530的行之一的值,并且该值可以由表指针531调整为引用行中的不同行。感测单元540将弱码字行地址WCRA提供给对应的行解码器,并将弱码字列地址WCCA提供给对应的列解码器。
图18示出了根据本发明构思的示例性实施例的图4的数据芯片中的错误信息寄存器。
参考图18,索引(例如,条目)Idx1、Indx2、…、Idxu(u是大于2的自然数)中的每一个可以包括关于存储单元阵列300的一些页中的每一个页的页错误信息。每个条目可以对应于页之一。错误信息寄存器580包括多个列581、582、583和584。
第二列581存储一些页中的每一个页的地址信息ADDINF。在一些示例性实施例中,地址信息ADDINF包括存储体组地址(“BGA”)、存储体地址(“BA”)和行地址(“RA”)中的至少一个。尽管图4示出了存储体阵列(例如,310-380)的单个组,但是可以存在存储体阵列的附加组。存储体组地址可以标识这些组之一。例如,如果存在包括存储体阵列310-380的第一组存储体阵列以及第二组存储体阵列,并且错误在第一组中发生,则BGA将标识第一组。存储体地址可以标识所标识的组中的存储体之一。行地址可以标识这一个存储体的页。
第二列582存储一些页中的每一个页的错误发生数量ECNT。例如,图18的错误信息寄存器580示出了地址为A的页的错误发生数量ECNT为2,地址为B的页的错误发生数量ECNT为4,并且地址为X的页的错误发生数量ECNT为1。
第三列583存储一些页中的每一个页的包括比特错误的子页数量FCWCNT。例如,如果第二页有4个比特错误(ECNT=4),第二页具有64个子页,但是64个子页中只有3个具有比特错误(例如,子页1和12每个均具有1个比特错误,且子页43具有2个比特错误),则第二页的条目的FCWCNT为3。
第四列584存储一些页中的每一个页的行故障标志RFF。行故障标志RFF可以指示一些页中的每一个页是否具有行故障。行故障标志RFF可以指示一些页中的每一个页是否包括K个或更多个码字,并且这K个或更多个码字中的每一个是否具有比特错误。
图19是示出了根据本发明构思的示例性实施例的图4的数据芯片中的ECC引擎的框图。
参考图19,ECC引擎400包括ECC编码器410、ECC解码器430和存储器415。存储器415可以存储ECC 420。ECC可以是单一错误纠正(SEC)码,也可以是单一错误纠正和双重错误检测(SECDED)码。
ECC编码器410可以使用ECC 420生成与要存储在第一存储体阵列310的正常单元阵列NCA中的写入数据WMD相关联的(第三)奇偶校验数据PRT。例如,ECC编码器410可以对写入数据WMD和ECC 420执行ECC编码操作以生成奇偶校验数据PRT。奇偶校验数据PRT可以存储在第一存储体阵列310的冗余单元阵列RCA中。
ECC解码器430可以通过使用ECC 420基于从第一存储体阵列310读取的读取数据RMD和奇偶校验数据PRT对读取数据RMD执行ECC解码。当作为ECC解码的结果,读取数据RMD包括至少一个比特错误时,ECC解码器430将错误生成信号EGS提供给控制逻辑电路210,在清理操作中选择性地校正读取数据RMD中的比特错误,并在读取操作中输出校正后的主数据C_MD。主数据MD可以对应于用户数据DQ_BL。
图20示出了根据本发明构思的示例性实施例的图19的ECC引擎中包括的ECC解码器。
参考图20,ECC解码器430包括校验子生成电路440、错误定位器460和数据校正器470。校验子生成电路440包括校验比特生成器441和校验子生成器443。
校验比特生成器441通过执行XOR阵列运算基于读取数据RMD生成校验比特CHB,并且校验子生成器443通过比较奇偶校验数据PRT的对应比特和校验比特CHB来生成校验子SDR。
错误定位器460在校验子SDR的所有比特不都为“零”时,生成指示读取数据RMD中的比特错误的位置的错误位置信号EPS,并且将错误位置信号EPS提供给数据校正器470。此外,当读取数据RMD包括比特错误时,错误定位器460将错误生成信号EGS提供给控制逻辑电路210。
数据校正器470接收读取数据RMD,当读取数据RMD包括比特错误时基于错误位置信号EPS来校正读取数据RMD中的比特错误,以生成校正后的主数据C_MD,并输出校正后的主数据C_MD。
图21示出了从图1中的存储器模块输出的码字集的示例。
在图21中,在数据芯片200b的存储单元行中发生行故障RF,并且从数据芯片200d和200e输出的每个用户数据包括可校正的比特错误CE。
参考图21,用户数据DQ_BL2包括由于在数据芯片200b的存储单元行中发生的行故障RF而生成的多个(多个)比特错误X。在这种情况下,第一校验子SDR_L具有零值,并且第二校验子SDR_M具有非零值,如参考图14所述。因此,ECC解码器430不能通过使用第一校验子SDR_L和第二校验子SDR_M来校正用户数据DQ_BL2中的比特错误X。在本发明构思的示例性实施例中,与数据芯片200b相对应的错误信息信号EIS包括关于比特错误X的位置的地址信息。在本发明构思的示例性实施例中,ECC解码器430基于与数据芯片200b相对应的错误信息信号EIS来确定比特错误X的位置,并且可以通过使用第二校验子SDR_M来校正比特错误X。例如,ECC解码器430可以使用所确定的比特错误的位置和第二校验子SDR_M来对用户数据DQ_BL2执行校正操作。
图22A至图22D分别示出了在图1的存储器系统中的存储器控制器和一个数据芯片之间传输错误信息信号。
参考图22A,数据芯片200a通过数据芯片200a的数据屏蔽引脚201实时地向存储器控制器100发送错误信息信号EIS1。在对数据芯片200a执行写操作时,使用数据屏蔽引脚201。
参考图22B,数据芯片200a通过数据芯片200a的警报引脚202向存储器控制器100发送错误信息信号EIS1。
参考图22C,数据芯片200a在控制逻辑电路210中包括模式寄存器212,模式寄存器212可以存储错误信息,并且存储器控制器100将模式寄存器读取命令MRR应用于数据芯片200a以接收模式寄存器212中存储的错误信息作为错误信息信号EIS1。
参考图22D,数据芯片200a将错误信息信号EIS1发送给存储器控制器100,存储器控制器100检查用户数据集是否包括比特错误,并且当用户数据集不包括比特错误时将行故障检测命令CMD_RFD和相关联的地址ADDR应用于数据芯片200a,并且地址ADDR指定与错误信息信号EIS1相关联的存储单元行。
图23是示出了根据本发明构思的示例性实施例的操作包括存储器模块和存储器控制器在内的存储器系统的方法的流程图。
参考图1至图23,提供了一种操作包括存储器模块MM和存储器控制器100在内的存储器系统20的方法。存储器模块MM包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。存储器控制器100控制存储器模块MM。根据该方法,存储器控制器100中的ECC引擎130的ECC编码器140基于奇偶校验生成矩阵PGM对用户数据集SDQ和元数据MDT执行ECC编码,以生成包括第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的奇偶校验数据集SPRT(操作S210)。在示例性实施例中,元数据MDT被省略,并且存储器控制器100基于奇偶校验生成矩阵PGM对用户数据集SDQ执行ECC编码,以生成包括第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的奇偶校验数据集SPRT。
存储器控制器100将包括用户数据集SDQ、元数据MDT和奇偶校验数据集SPRT在内的码字集SCW1存储在多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片中(操作S220)。在示例性实施例中,用户数据集SDQ存储在一个或多个数据芯片中,第一奇偶校验数据PRTL存储在第一奇偶校验芯片中,并且第二奇偶校验数据PRTM存储在第二奇偶校验芯片中。
存储器控制器100从每一个数据芯片接收包括行故障信息的错误信息信号EIS,并从存储器模块MM读取包括用户数据集SDQ、元数据MDT和奇偶校验数据集SPRT在内的码字集SCW2(操作S230)。在示例性实施例中,元数据MDT被省略,并且存储器控制器110从存储器模块MM读取包括用户数据集SDQ和奇偶校验数据集SPRT在内的码字集SCW2。例如,可以从一个或多个数据芯片中读取用户数据集SDQ,可以从第一奇偶校验芯片中读取一部分奇偶校验数据集SPRT,可以从第二奇偶校验芯片中读取剩余的奇偶校验数据集SPRT,并且读取的数据可用于生成码字集SCW2。
ECC引擎130的ECC解码器150基于读取的码字集SCW2和奇偶校验矩阵PCM来生成第一校验子SDR_L和第二校验子SDR_M(操作S240)。
ECC解码器150基于第一校验子SDR_L和第二校验子SDR_M来确定其中发生由行故障生成的、包括在读取的码字集SCW2的用户数据集中的比特错误的数据芯片(操作S250)。
ECC解码器150基于错误信息信号EIS中包括的行故障信息和第二校验子SDR_M来校正由行故障生成的比特错误,该比特错误包括在来自发生行故障的数据芯片的用户数据中(操作S260)。
图24是示出了根据本发明构思的示例性实施例的具有四秩(rank)存储器模块的存储器系统的框图。
参考图24,存储器系统700包括存储器控制器710以及至少一个或多个存储器模块720和730。
存储器控制器710可以控制存储器模块720和/或730以便执行从处理器或主机提供的命令。存储器控制器710可以在处理器或主机中实现,或者可以在应用处理器或片上系统(SoC)内实现。
为了信号完整性,可以使用存储器控制器710的总线740上的电阻器RTT来实现源端接。电阻器RTT可以耦接到电源电压VDDQ。存储器控制器710可以包括:发送器711,用于向存储器模块720和730中的一个或多个发送信号;以及接收器713,用于从存储器模块720和730中的一个或多个接收信号。存储器控制器710包括可以采用图6的ECC引擎130的ECC引擎715。
因此,ECC引擎715包括ECC编码器和ECC解码器,并且ECC解码器可以通过使用错误信息信号来校正从存储器模块720和730中的一个或多个读取的码字集中的多个比特错误,该多个比特错误基于校验子是不可校正的。
存储器模块720和730可以被称为第一存储器模块720和第二存储器模块730。第一存储器模块720和第二存储器模块730可以通过总线740耦接到存储器控制器710。第一存储器模块720和第二存储器模块730中的每一个可以对应于图1中的存储器模块MM。第一存储器模块720可以包括至少一个或多个存储器秩RK1和RK2,并且第二存储器模块730可以包括一个或多个存储器秩RK3和RK4。
第一存储器模块720和第二存储器模块730中的每一个可以包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片,并且每一个数据芯片可以包括管芯上ECC引擎721。管芯上ECC引擎721可以在清理操作期间检测行故障。
图25是示出了根据本发明构思的示例性实施例的包括存储器模块的移动系统的框图。
参考图25,移动系统900包括应用处理器910、连接模块920、存储器模块950、非易失性存储器件940、用户接口930和电源970。应用处理器910可以包括存储器控制器(MCT)911。
应用处理器910可以执行诸如网络浏览器、游戏应用、视频播放器等应用。连接模块920可以执行与外部设备的有线或无线通信。例如,连接模块920可以由调制解调器或网卡实现。
存储器模块(MM)950可以存储由应用处理器910处理的数据或作为工作存储器操作。存储器模块950可以包括多个半导体存储器件(MD)951、952、953和95q(其中q是大于3的正整数)和控制设备(RCD)961。
半导体存储器件951、952、953和95q可以包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。因此,存储器控制器911可以通过使用错误信息信号来校正从存储器模块950读取的码字集中的多个比特错误,该多个比特错误基于校验子是不可校正的。
非易失性存储器件940可以存储用于引导移动系统900的引导图像(boot image)。用户接口930可以包括至少一个输入设备(例如,键区、触摸屏等)和至少一个输出设备(例如,扬声器、显示设备等)。电源970可以向移动系统900供应操作电压。
可以使用各种类型的封装来安装移动系统900或移动系统900的组件。
本发明构思的示例性实施例可以应用于包括存储器模块和包括ECC引擎的存储器控制器的各种系统。
虽然本公开已经参考其示例性实施例被具体示出和描述,但本领域普通技术人员将理解的是,在不脱离本公开的精神和范围的前提下,可以在本文中进行各种形式和细节上的改变。

Claims (20)

1.一种存储器控制器,被配置为控制包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片的存储器模块,所述存储器控制器包括:
纠错码ECC引擎;以及
中央处理单元CPU,被配置为控制所述ECC引擎,
其中,所述ECC引擎包括:
ECC解码器;以及
存储器,被配置为存储奇偶校验矩阵,
其中,所述ECC解码器配置为:
从所述多个数据芯片接收错误信息信号,所述错误信息信号与所述多个数据芯片相关联;
使用所述奇偶校验矩阵对来自所述存储器模块的读取的码字集执行ECC解码,以生成第一校验子和第二校验子;以及
基于所述错误信息信号和所述第二校验子,校正所述读取的码字集的用户数据集中的多个比特错误,所述多个比特错误是由行故障生成的并且基于所述第一校验子和所述第二校验子是不可校正的,以及
其中,每一个所述错误信息信号包括行故障信息,所述行故障信息指示在相应的所述数据芯片中的多个存储单元行中的至少一个存储单元行中是否发生所述行故障。
2.根据权利要求1所述的存储器控制器,其中,所述ECC解码器被配置为响应于所述第一校验子具有零值并且所述第二校验子具有非零值,确定在至少一个所述数据芯片中发生所述行故障。
3.根据权利要求2所述的存储器控制器,其中
当响应于所述ECC解码器确定在至少一个所述数据芯片中发生所述行故障而校验所述用户数据集并且所述用户数据集不包括与所述行故障相对应的比特错误时,
所述CPU被配置为向发生所述行故障的数据芯片发送行故障检测命令和相关联的地址。
4.根据权利要求1所述的存储器控制器,其中,所述ECC解码器被配置为通过每一个所述数据芯片的数据屏蔽引脚来接收所述错误信息信号。
5.根据权利要求1所述的存储器控制器,其中,所述ECC解码器被配置为通过每一个所述数据芯片的警报引脚来接收所述错误信息信号。
6.根据权利要求1所述的存储器,其中:
所述读取的码字集包括用户数据集、与所述用户数据集相关联的元数据、与所述用户数据集中的比特错误的位置相关联的第一奇偶校验数据以及与所述比特错误的量相关联的第二奇偶校验数据;
从所述多个数据芯片中读取所述用户数据集,从所述第一奇偶校验芯片中读取所述元数据和所述第一奇偶校验数据,并且从所述第二奇偶校验芯片中读取所述第二奇偶校验数据;以及
所述奇偶校验矩阵包括第一奇偶校验子矩阵、第二奇偶校验子矩阵和第三奇偶校验子矩阵。
7.根据权利要求6所述的存储器控制器,其中,所述ECC解码器被配置为:
通过对所述读取的码字集和所述第一奇偶校验子矩阵执行矩阵乘法运算,生成所述第一校验子;以及
通过对所述读取的码字集以及所述第二奇偶校验子矩阵和所述第三奇偶校验子矩阵执行矩阵乘法运算,生成所述第二校验子。
8.一种存储器系统,包括:
存储器模块,包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片;以及
存储器控制器,被配置为控制所述存储器模块,
其中,所述存储器控制器包括:
第一纠错码ECC引擎;以及
中央处理单元CPU,被配置为控制所述第一ECC引擎,
其中,所述第一ECC引擎包括:
ECC解码器;以及
存储器,被配置为存储奇偶校验矩阵,
其中,所述ECC解码器配置为:
从所述多个数据芯片接收错误信息信号,所述错误信息信号与所述多个数据芯片相关联;
使用所述奇偶校验矩阵对来自所述存储器模块的读取的码字集执行ECC解码,以生成第一校验子和第二校验子;以及
基于所述错误信息信号和所述第二校验子,校正所述读取的码字集的用户数据集中的多个比特错误,所述多个比特错误是由行故障生成的并且使用所述第一校验子和所述第二校验子是不可校正的,以及
其中,每一个所述错误信息信号包括行故障信息,所述行故障信息指示在相应的所述数据芯片中的多个存储单元行中的至少一个存储单元行中是否发生所述行故障。
9.根据权利要求8所述的存储器系统,其中
所述ECC解码器被配置为响应于所述第一校验子具有零值并且所述第二校验子具有非零值,确定在至少一个所述数据芯片中发生所述行故障。
10.根据权利要求8所述的存储器系统,其中
所述读取的码字集包括用户数据集、与所述用户数据集相关联的元数据、与所述用户数据集中的比特错误的位置相关联的第一奇偶校验数据以及与所述比特错误的量相关联的第二奇偶校验数据;
从所述多个数据芯片中读取所述用户数据集,从所述第一奇偶校验芯片中读取所述元数据和所述第一奇偶校验数据,并且从所述第二奇偶校验芯片中读取所述第二奇偶校验数据;
所述奇偶校验矩阵包括第一奇偶校验子矩阵、第二奇偶校验子矩阵和第三奇偶校验子矩阵;以及
其中,所述ECC解码器配置为:
通过对所述读取的码字集和所述第一奇偶校验子矩阵执行矩阵乘法运算,生成所述第一校验子;以及
通过对所述读取的码字集以及所述第二奇偶校验子矩阵和所述第三奇偶校验子矩阵执行矩阵乘法运算,生成所述第二校验子。
11.根据权利要求8所述的存储器系统,其中,所述多个数据芯片中的每一个包括:
存储单元阵列,包括多个存储单元行,所述多个存储单元行中的每一个包括多个易失性存储单元;
第二ECC引擎;
错误信息寄存器;
清理控制电路,被配置为生成清理地址,所述清理地址指定在对所述多个存储单元行进行刷新操作期间所述多个存储单元行中要执行清理操作的第一存储单元行;以及
控制逻辑电路,被配置为基于来自所述存储器控制器的命令和地址来控制所述第二ECC引擎和所述清理控制电路,
其中,所述控制逻辑电路被配置为响应于在对所述存储单元行之中的第一存储单元行进行所述清理操作期间从所述第一存储单元行的M个码字之中的K个码字中检测到比特错误,确定在所述第一存储单元行中发生所述行故障,并且被配置为向所述存储器控制器发送包括所述行故障信息的所述错误信息信号,
其中,K是大于2的整数,并且M是大于3的整数。
12.根据权利要求11所述的存储器系统,其中:
所述控制逻辑电路被配置为控制所述第二ECC引擎,使得所述第二ECC引擎从所述第一存储单元行中的M个子页中顺序地读取与所述码字相对应的数据,并且对所述码字执行错误检测操作以生成错误生成信号,以及
所述控制逻辑电路被配置为将错误信息记录在所述错误信息寄存器中,并且所述错误信息包括每一个所述码字中的错误发生计数。
13.根据权利要求12所述的存储器系统,其中,所述控制逻辑电路被配置为基于所述错误信息来控制所述第二ECC引擎,使得所述第二ECC引擎响应于所述M个码字中的可校正的码字的数量小于K,分别在对应的存储器位置中回写所述可校正的码字,并且每一个所述可校正的码字包括要由所述第二ECC引擎校正的比特错误。
14.根据权利要求11所述的存储器系统,其中,所述清理控制电路被配置为:对用于刷新所述存储单元行的刷新行地址进行计数,以便每当所述清理控制电路计数了刷新行地址中的N个刷新行地址时,输出所述清理地址,并且N是等于或大于3的整数。
15.根据权利要求14所述的存储器系统,其中,所述清理控制电路包括:
计数器,被配置为对所述刷新行地址进行计数以生成内部清理信号,其中,每当所述计数器计数了所述刷新行地址中的M个刷新行地址时,所述计数器激活所述内部清理信号;以及
清理地址生成器,被配置为响应于所述内部清理信号而生成与针对所述第一存储单元行的正常清理操作相关联的正常清理地址,
其中,所述正常清理地址包括指定所述存储单元行中的一个存储单元行的清理行地址和指定在所述一个存储单元行中包括的码字之一的清理列地址,以及
其中,所述清理地址生成器包括:
页段计数器,被配置为在所述内部清理信号被激活的时间段期间将所述清理列地址增加一;以及
行计数器,被配置为每当所述清理行地址达到最大值时,将所述清理列地址增加一。
16.根据权利要求8所述的存储器系统,其中,每一个所述数据芯片被配置为通过相应的所述数据芯片的数据屏蔽引脚向所述存储器控制器发送所述错误信息信号。
17.根据权利要求8所述的存储器系统,其中,每一个所述数据芯片被配置为通过相应的所述数据芯片的警报引脚向所述存储器控制器发送所述错误信息信号。
18.根据权利要求8所述的存储器系统,其中
每一个所述数据芯片中的控制逻辑电路包括模式寄存器,
所述模式寄存器存储相应的所述错误信息信号,以及
所述模式寄存器被配置为响应于来自所述存储器控制器的模式寄存器读取命令而向所述存储器控制器提供相应的所述错误信息信号。
19.根据权利要求8所述的存储器系统,其中:
所述ECC解码器被配置为响应于所述第一校验子具有零值并且所述第二校验子具有非零值,确定在至少一个所述数据芯片中发生所述行故障;
当响应于所述ECC解码器确定在至少一个所述数据芯片中发生所述行故障而校验所述用户数据集并且所述用户数据集不包括与所述行故障相对应的比特错误时,所述存储器控制器被配置为向发生所述行故障的数据芯片发送行故障检测命令和相关联的地址;以及
发生所述行故障的所述数据芯片被配置为响应于所述行故障检测命令和所述相关联的地址,对由所述相关联的地址指定的存储单元行执行错误检测操作。
20.一种存储器系统,包括:
存储器模块,包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片;以及
存储器控制器,被配置为控制所述存储器模块,
其中,所述存储器控制器包括:
纠错码ECC引擎;以及
中央处理单元CPU,被配置为控制所述ECC引擎,
其中,所述ECC引擎包括:
ECC解码器;以及
存储器,被配置为存储奇偶校验矩阵,
其中,所述ECC解码器配置为:
从所述多个数据芯片接收错误信息信号,所述错误信息信号与所述多个数据芯片相关联;
使用所述奇偶校验矩阵对来自所述存储器模块的读取的码字集执行ECC解码,以生成第一校验子和第二校验子;以及
基于所述错误信息信号和所述第二校验子,校正所述读取的码字集的用户数据集中的多个比特错误,所述多个比特错误是由行故障生成的并且使用所述第一校验子和所述第二校验子是不可校正的,以及
其中,每一个所述错误信息信号包括行故障信息,所述行故障信息指示在相应的所述数据芯片中的多个存储单元行中的至少一个存储单元行中是否发生所述行故障,以及
其中,所述ECC解码器被配置为响应于所述第一校验子具有零值并且所述第二校验子具有非零值,确定在至少一个所述数据芯片中发生所述行故障。
CN202011289748.XA 2020-01-07 2020-11-17 存储器控制器及包括存储器控制器的存储器系统 Active CN113157201B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200002203A KR20210089016A (ko) 2020-01-07 2020-01-07 메모리 컨트롤러 및 메모리 시스템
KR10-2020-0002203 2020-01-07

Publications (2)

Publication Number Publication Date
CN113157201A true CN113157201A (zh) 2021-07-23
CN113157201B CN113157201B (zh) 2023-12-19

Family

ID=76655198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011289748.XA Active CN113157201B (zh) 2020-01-07 2020-11-17 存储器控制器及包括存储器控制器的存储器系统

Country Status (3)

Country Link
US (1) US11269723B2 (zh)
KR (1) KR20210089016A (zh)
CN (1) CN113157201B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153648A (zh) * 2021-12-03 2022-03-08 海光信息技术股份有限公司 数据读取、写入方法及装置、软错误处理系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220018757A (ko) * 2020-08-07 2022-02-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법
KR20220039432A (ko) * 2020-09-22 2022-03-29 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
KR20220060156A (ko) * 2020-11-04 2022-05-11 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US11722152B1 (en) * 2020-11-25 2023-08-08 Astera Labs, Inc. Capacity-expanding memory control component
US11636912B2 (en) * 2021-04-06 2023-04-25 Samsung Electronics Co., Ltd. ECC buffer reduction in a memory device
US11581906B1 (en) * 2021-12-28 2023-02-14 Samsung Electronics Co., Ltd. Hierarchical error correction code decoding using multistage concatenated codes
CN116386708A (zh) * 2022-01-03 2023-07-04 三星电子株式会社 存储装置及其操作方法
US12014797B2 (en) 2022-04-27 2024-06-18 Micron Technology, Inc. Apparatuses, systems, and methods for managing metadata storage at a memory
US12019513B2 (en) 2022-04-27 2024-06-25 Micron Technology, Inc. Apparatuses, systems, and methods for per row error scrub information
WO2024107504A1 (en) * 2022-11-15 2024-05-23 Micron Technology, Inc. Apparatuses and methods for single-pass access of ecc information, metadata information or combinations thereof

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154157A1 (en) * 2009-12-23 2011-06-23 Helia Naeimi Hybrid Error Correction Code (ECC) For A Processor
KR20180022014A (ko) * 2016-08-23 2018-03-06 에스케이하이닉스 주식회사 반도체장치
US20180150350A1 (en) * 2016-11-28 2018-05-31 Samsung Electronics Co. , Ltd. Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same
US20190114224A1 (en) * 2017-10-18 2019-04-18 Intel Corporation Techniques for correcting data errors in memory devices
US20190229753A1 (en) * 2018-01-25 2019-07-25 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
US20190243708A1 (en) * 2018-02-05 2019-08-08 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems, and methods of operating the semiconductor memory devices
US20190340067A1 (en) * 2018-04-12 2019-11-07 Samsung Electronics Co., Ltd. Semiconductor memory devices and memory systems including the same
US20190371391A1 (en) * 2018-06-01 2019-12-05 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849381B2 (en) 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US8495467B1 (en) 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
US9450613B2 (en) * 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
KR20150084244A (ko) 2014-01-13 2015-07-22 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US9811420B2 (en) 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
KR20170050935A (ko) 2015-11-02 2017-05-11 에스케이하이닉스 주식회사 온 칩 ecc 회로를 포함하는 메모리 장치 및 시스템
US10268541B2 (en) 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
US10169126B2 (en) 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
KR20180061870A (ko) 2016-11-30 2018-06-08 삼성전자주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR102455880B1 (ko) 2018-01-12 2022-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20190042358A1 (en) 2018-02-06 2019-02-07 Intel Corporation Shared parity check for correcting memory errors

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154157A1 (en) * 2009-12-23 2011-06-23 Helia Naeimi Hybrid Error Correction Code (ECC) For A Processor
KR20180022014A (ko) * 2016-08-23 2018-03-06 에스케이하이닉스 주식회사 반도체장치
US20180150350A1 (en) * 2016-11-28 2018-05-31 Samsung Electronics Co. , Ltd. Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same
US20190114224A1 (en) * 2017-10-18 2019-04-18 Intel Corporation Techniques for correcting data errors in memory devices
US20190229753A1 (en) * 2018-01-25 2019-07-25 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
CN110085277A (zh) * 2018-01-25 2019-08-02 三星电子株式会社 存储器装置、存储器系统和操作存储器装置的方法
US20190243708A1 (en) * 2018-02-05 2019-08-08 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems, and methods of operating the semiconductor memory devices
CN110120243A (zh) * 2018-02-05 2019-08-13 三星电子株式会社 半导体存储器装置、操作其的方法以及存储器系统
US20190340067A1 (en) * 2018-04-12 2019-11-07 Samsung Electronics Co., Ltd. Semiconductor memory devices and memory systems including the same
US20190371391A1 (en) * 2018-06-01 2019-12-05 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153648A (zh) * 2021-12-03 2022-03-08 海光信息技术股份有限公司 数据读取、写入方法及装置、软错误处理系统

Also Published As

Publication number Publication date
KR20210089016A (ko) 2021-07-15
US20210208967A1 (en) 2021-07-08
US11269723B2 (en) 2022-03-08
CN113157201B (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
CN113157201B (zh) 存储器控制器及包括存储器控制器的存储器系统
US11231996B2 (en) Semiconductor memory devices, memory systems including the same and methods of operating memory systems
US11194657B2 (en) Semiconductor memory devices, memory systems, and methods of operating the semiconductor memory devices
US11681579B2 (en) Semiconductor memory devices and memory systems including the same
KR102670661B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US11088710B2 (en) Memory controllers and memory systems including the same
KR20200074467A (ko) 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템
US11074127B1 (en) Semiconductor memory devices and methods of operating semiconductor memory devices
KR20220094489A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US11392454B2 (en) Memory controllers, memory systems and memory modules
EP3971901A1 (en) Dram with combined scrubbing with combined refresh and scrubing operation
CN114078510A (zh) 半导体存储器装置和操作半导体存储器装置的方法
US11726670B2 (en) Methods of operating memory controllers, memory controllers performing the methods and memory systems including the memory controllers
CN114443345A (zh) 半导体存储器件及操作半导体存储器件的方法
CN114627957A (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