CN113656213A - 存储器控制器、存储器系统和存储器模块 - Google Patents

存储器控制器、存储器系统和存储器模块 Download PDF

Info

Publication number
CN113656213A
CN113656213A CN202110504822.3A CN202110504822A CN113656213A CN 113656213 A CN113656213 A CN 113656213A CN 202110504822 A CN202110504822 A CN 202110504822A CN 113656213 A CN113656213 A CN 113656213A
Authority
CN
China
Prior art keywords
error
syndrome
memory
parity
correctable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110504822.3A
Other languages
English (en)
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 CN113656213A publication Critical patent/CN113656213A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • 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
    • 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
    • G06F11/1032Simple parity
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

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)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

控制存储器模块的存储器控制器包括纠错码(ECC)引擎、控制ECC引擎的中央处理单元、和错误管理电路。ECC引擎对从存储器模块读取的码字集执行ECC解码,以在读取操作中生成第一校正子和第二校正子,基于第一校正子和第二校正子纠正用户数据集中的可纠正错误,并向错误管理电路提供与可纠正错误相关联的第二校正子。错误管理电路对与通过读取操作检测到的可纠正错误相关联的错误地址进行计数,通过累积与可纠正错误相关联的第二校正子来存储第二校正子,基于计数和所累积的第二校正子来确定可纠正错误的属性,以及确定与可纠正错误相关联的存储器区域上的错误管理策略。

Description

存储器控制器、存储器系统和存储器模块
相关申请的交叉引用
本申请要求于2020年5月12日提交的第10-2020-0056319号韩国专利申请的优先权,其全部内容通过引用整体结合于此。
技术领域
一些示例实施例涉及存储器,更具体地,涉及存储器控制器、包括存储器控制器的存储器系统和/或存储器模块。
背景技术
存储器设备可以使用半导体(诸如硅(Si)、锗(Ge)、砷化镓(GaAs)、磷化铟(InP)等)来实现。存储器设备通常分为易失性存储器设备和非易失性存储器设备。
易失性存储设备是指当电源关闭时其中存储的数据丢失的存储设备。另一方面,非易失性存储设备是指当电源关闭时保留存储的数据的存储设备。因为作为一种易失性存储设备的动态随机存取存储器(dynamic random access memory,DRAM)具有高存取速度,所以DRAM被广泛用作计算系统的工作存储器、缓冲存储器、主存储器等。
最近,在一种类型的存储器模块(诸如双列直插式存储器模块(dual in-linememory module,DIMM))中提供了多个DRAM,例如印制电路板上提供的许多封装芯片。需要或期望高效地纠正和/或管理存储器模块中发生的错误。
发明内容
一些示例实施例提供了能够高效管理存储器模块中发生的错误的存储器控制器。
一些示例实施例提供了存储器系统,该存储器系统包括能够高效管理存储器模块中发生的错误的存储器控制器。
一些示例实施例提供了能够高效管理存储器模块中发生的错误的存储器模块。
根据一些示例实施例,存储器控制器包括包括纠错码(ECC)引擎电路、被配置为控制ECC引擎的中央处理单元(CPU)、和错误管理电路。存储器控制器电路被配置为对从存储器模块读取的码字集执行ECC解码以生成第一校正子(syndrome)和第二校正子,第一校正子和第二校正子在读取操作中生成,基于第一校正子和第二校正子纠正所读取的码字集中的用户数据集中的可纠正错误,向错误管理电路提供与可纠正错误相关联的第二校正子,对与通过多个读取操作检测到的可纠正错误相关联的错误地址进行计数,通过累积与可纠正错误相关联的第二校正子来存储第二校正子,基于计数的结果和基于第二校正子的累积来确定可纠正错误的属性,以及确定与可纠正错误相关联的至少一个存储器区域上的错误管理策略,所述至少一个存储器区域与多个数据芯片相关联。
根据一些示例实施例,存储器系统包括存储器模块和存储器控制器电路,存储器模块包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片,存储器控制器电路被配置为控制存储器模块。存储器控制器电路包括纠错码(ECC)引擎、被配置为控制ECC引擎的中央处理单元(CPU)和错误管理电路。存储器控制器电路被配置为:对从存储器模块读取的码字集执行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是示出根据一些示例实施例的图2的存储器控制器中的错误管理电路的示例的框图。
图16是示出根据一些示例实施例的图15的错误管理电路中的错误计数电路的示例的框图。
图17示出了根据一些示例实施例的图16中的计数值的示例。
图18示出了根据一些示例实施例的图16中的错误地址寄存器的示例。
图19是示出根据一些示例实施例的图15的错误管理电路中的错误管理器的示例的框图。
图20示出了根据一些示例实施例的图19的错误管理器中的校正子寄存器的示例。
图21示出了根据一些示例实施例的图19的错误管理器中的校正子累积寄存器的示例。
图22是示出根据一些示例实施例的操作存储器系统的方法的流程图。
图23是示出根据一些示例实施例的存储器系统可以使用的存储器模块的框图。
图24是示出根据一些示例实施例的图23的存储器模块中的缓冲芯片的示例的框图。
图25是示出根据一些示例实施例的图24的缓冲芯片中的错误管理电路的示例的框图。
图26是示出根据一些示例实施例的具有四列(quad-rank)存储器模块的存储器系统的框图。
图27是示出根据一些示例实施例的包括存储器模块的移动系统的框图。
具体实施方式
下文将参照附图更全面地描述示例实施例。在所有附图中,相同的附图标记表示相同的元件。
图1是示出根据一些示例实施例的存储器系统的框图。
参考图1,存储器系统20可以包括存储器控制器100和存储器模块MM。存储器模块MM包括多个存储器芯片200a~200k、200pa和200pb。多个存储器芯片200a~200k、200pa和200pb包括多个数据芯片200a~200k和第一奇偶校验芯片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的数量不限于此,并且可以大于或小于16,并且可以是2的幂,或者可以不是2的幂。在一些示例实施例中,数据芯片200a~200k中的每一个可以被称为数据存储器,并且奇偶校验芯片200pa和200pb中的每一个可以被称为纠错码(error correction code,ECC)存储器或冗余存储器。
存储器控制器100向存储器模块MM发送地址ADDR和命令CMD,并且可以从存储器模块MM交换码字集SCW。
存储器控制器100可以包括纠错码(ECC)引擎130,并且ECC引擎130可以对用户数据集和元数据执行ECC编码,以便使用奇偶校验生成矩阵生成奇偶校验数据集,并且可以在存储器系统20的写操作中向存储器模块MM提供包括用户数据集、元数据和奇偶校验数据集的码字集SCW。用户数据集可以存储在数据芯片200a~200k中,奇偶校验数据集的第一部分和元数据可以存储在第一奇偶校验芯片200pa中,而奇偶校验数据集的第二部分可以存储在第二奇偶校验芯片200pb中。
替代地或附加地,ECC引擎130可以使用奇偶校验矩阵对从存储器模块MM读取的码字集SCW执行ECC解码,以生成第一校正子和第二校正子,并且可以基于第一校正子和第二校正子纠正码字集SCW的用户数据集中的可纠正错误。
替代地或附加地,存储器控制器100还可以包括错误管理电路(error managingcircuit,EMC)400。错误管理电路400可以是ECC引擎130的一部分,或者可以与ECC引擎130分离。错误管理电路400可以对与在多个读取操作中检测到的可纠正错误相关联的错误地址进行计数,可以通过累积与可纠正错误相关联的第二校正子来存储第二校正子,可以基于计数的结果和第二校正子的累积来确定可纠正错误的属性,并且可以确定多个数据芯片的与可纠正错误相关联的至少一个存储器区域上的错误管理策略。
错误管理电路400可以基于可纠正错误的数量与通过参考所累积的第二校正子的参考值的比较来确定错误管理策略。例如,当以符号为单位的错误的数量超过通过累积第二校正子获得的参考值时,错误管理电路400可以防止或减少可纠正错误被累积的可能性,并且可以通过修复存储器区域来防止或减少由于可纠正错误的累积而导致的不可纠正错误的发生的可能性。
图2是示出根据示例实施例的图1的存储器系统中的存储器控制器的框图。
参考图2,存储器控制器100包括中央处理单元(central processing unit,CPU)110、主机接口120、数据寄存器125、ECC引擎130、命令缓冲器190、地址缓冲器195和错误管理电路400。ECC引擎130包括ECC编码器140、ECC解码器150和存储器(ECC存储器)180。
主机接口120从主机接收请求REQ和用户数据集SDT,生成与用户数据集SDT相关联的元数据MDT,将用户数据集SDT提供给数据寄存器125,并将元数据MDT提供给ECC编码器140。数据寄存器125连续地(和/或顺序地和/或串行地)向ECC引擎130输出用户数据集SDT。
ECC编码器140可以使用奇偶校验生成矩阵对用户数据集SDQ和元数据MDT执行ECC编码,以生成第一码字集SCW1。
ECC解码器150可以使用奇偶校验矩阵对第二码字集SCW2执行ECC解码,以向CPU110输出解码状态标志DSF,并生成第一校正子和第二校正子。ECC解码器150可以以符号为单位纠正第二码字集SCW2中的用户数据集中的可纠正错误,并且可以向CPU 110提供纠正的用户数据集C_SDQ(或者,当没有检测到错误时的用户数据集)。ECC解码器150可以向错误管理电路400提供与可纠正错误相关联的第二校正子SCR_M和与可纠正错误发生在其中的符号相关联的错误符号信息。
存储器180可以存储奇偶校验生成矩阵和奇偶校验矩阵。
CPU接收用户数据集SDQ和/或纠正的用户数据集SDQ,并控制ECC引擎130、命令缓冲器190和/或地址缓冲器195。命令缓冲器190存储对应于请求REQ的命令CMD,并在CPU 110的控制下将命令CMD发送到存储器模块MM。
地址缓冲器195存储地址ADDR,并在CPU 110的控制下将地址ADDR发送给存储器模块MM。地址缓冲器195可以向错误管理电路400提供与可纠正错误相关联的地址作为错误地址EADDR。
错误管理电路400可以对从地址缓冲器195提供的并且与在存储器模块MM上在多个读取操作中检测到的可纠正错误相关联的错误地址EADDR进行计数,可以通过累积与可纠正错误相关联的第二校正子SDR_M来存储第二校正子SDR_M,可以基于计数的结果和第二校正子的累积来确定可纠正错误的属性,并且可以确定与可纠正错误相关联的至少一个存储器区域上的错误管理策略。错误管理电路400可以基于所确定的属性向CPU 110提供警报信号ALRT和修复信号RPR。警报信号ALRT可以通知不可纠正错误发生的可能性或者与不可纠正错误发生的可能性相关联,并且修复信号RPR可以与修复存储器区域相关联。
符号可以对应于从多个数据芯片之一读取的用户数据集SDQ中的多个数据位。例如,用户数据集SDQ中的从一个数据芯片读取的数据单元可以被称为符号。
图3示出了对应于根据一些示例实施例的图1的存储器系统中的多个突发长度的数据集。
参考图3,数据芯片200a~200k和奇偶校验芯片200pa和200pb中的每一个可以执行突发操作。
这里,突发操作是指通过顺序增加和/或减少从存储器控制器100提供的初始地址来写入和/或读取大量数据的操作。突发操作的基本单位可以被称为突发长度BL。
参考图3,对应于多个突发长度的数据集DQ_BL1~DQ_BLk的每一个被输入到数据芯片200a~200k中的每一个/从数据芯片200a~200k中的每一个输出。数据集DQ_BL1~DQ_BLk中的每一个可以包括对应于多个突发长度的每个突发长度的数据段DQ_BL_SG11~DQ_BL_SG18。数据集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、存储体控制逻辑电路230、行地址多路复用器240、列地址锁存器250、行解码器260、列解码器270、存储器单元阵列300、读出放大器单元(sense amplifier unit)285、输入/输出(I/O)选通电路290、数据输入/输出(I/O)缓冲器295和/或刷新计数器245。数据芯片200a可以包括单个数量或多个上述每一个。
存储器单元阵列300可以包括第一至第八存储体阵列310~380(例如,第一至第八存储体阵列310、320、330、340、350、360、370和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、多条位线BL和形成在字线WL和位线BL的交叉点处的多个存储器单元MC。
尽管数据芯片200a在图4中示出为包括八个存储体,数据芯片200a可以包括任何数量的存储体;例如,一个、两个、四个、八个、十六个或三十二个存储体,或者介于一个和三十二个之间的任何数量。
地址寄存器220可以从存储器控制器100接收地址ADDR,地址ADDR包括存储体地址BANK_ADDR、行地址ROW_ADDR和列地址COL_ADDR。地址寄存器220可以将接收到的存储体地址BANK_ADDR提供给存储体控制逻辑电路230,可以将接收到的行地址ROW_ADDR提供给行地址多路复用器240,并可以将接收到的列地址COL_ADDR提供给列地址锁存器250。
存储体控制逻辑电路230可以响应于存储体地址BANK_ADDR生成存储体控制信号。对应于存储体地址BANK_ADDR的第一至第八存储体行解码器260a~260h之一可以响应于存储体控制信号而被激活,并且对应于存储体地址BANK_ADDR的第一至第八存储体列解码器270a~270h之一可以响应于存储体控制信号而被激活。
行地址多路复用器240可以从地址寄存器220接收行地址ROW_ADDR,并且可以从刷新计数器245接收刷新行地址REF_ADDR。行地址多路复用器240可以选择性地输出行地址ROW_ADDR或刷新行地址REF_ADDR作为行地址RA。从行地址多路复用器240输出的行地址RA可以被应用于第一至第八存储体行解码器260a~260h。
第一至第八存储体行解码器260a~260h中被激活的一个可以解码从行地址多路复用器240输出的行地址RA,并且可以激活对应于行地址RA的字线WL。例如,激活的存储体行解码器可以生成字线驱动电压,并且可以将字线驱动电压施加到对应于行地址RA的字线WL。
列地址锁存器250可以从地址寄存器220接收列地址COL_ADDR,并且可以临时存储接收到的列地址COL_ADDR。在一些示例实施例中,在突发模式中,列地址锁存器250可以生成从接收的列地址COL_ADDR递增的列地址。列地址锁存器250可以将临时存储的或生成的列地址应用于第一至第八存储体列解码器270a~270h。
第一至第八存储体列解码器270a~270h中被激活的一个可以解码从列地址锁存器250输出的列地址COL_ADDR,并且可以控制I/O选通电路290输出对应于列地址COL_ADDR的数据。
I/O选通电路290可以包括用于选通输入/输出数据的电路。I/O选通电路290还可以包括用于存储从第一至第八存储体阵列310~380输出的数据的读取数据锁存器,并且还可以包括用于将数据写入第一至第八存储体阵列310~380的写控制设备。
要从第一至第八存储体阵列310~380之一读取的数据可以由耦合到要从其中读取数据的一个存储体阵列的读出放大器读出,并且可以存储在读取数据锁存器中。
在ECC引擎130对数据(例如,码字CW)执行ECC解码之后,在读取数据锁存器中存储的数据可以经由数据I/O缓冲器295被提供给存储器控制器100。要写入第一至第八存储体阵列310~380之一的数据集DQ_BL可以从存储器控制器100提供给数据I/O缓冲器295。数据I/O缓冲器295可以向I/O选通电路290提供数据集DQ_BL。
控制逻辑电路210可以控制数据芯片200a的操作。例如,控制逻辑电路210可以生成数据芯片200a的控制信号,以执行写入操作和/或读取操作。控制逻辑电路210可以包括对从存储器控制器100接收的命令CMD进行解码的命令解码器211和设置数据芯片200a的操作模式的模式寄存器212。根据一些示例实施例,这里描述为由控制逻辑电路210执行的操作可以由处理电路来执行。
奇偶校验芯片200pa和200pb中的每一个可以具有与数据芯片200a相同或基本相同的配置。奇偶校验芯片200pa和200pb中的每一个可以输入/输出相应的奇偶校验数据。
图5示出了根据示例实施例的图4的数据芯片的第一存储体阵列。
参考图5,第一存储体阵列310包括多条字线WL1~WL2m(其中m是大于或等于2的自然数)、多条位线BTL1~BTL2n(其中n是大于或等于2的自然数,n可以与m相同或不同)、以及布置在字线WL1~WL2m和位线BTL1~BTL2n之间的交叉点处或附近的多个存储器单元MC。在一些示例实施例中,多个存储器单元MC中的每一个可以包括DRAM单元结构。多个存储器单元MCs连接到的多条字线WL1~WL2m可以被称为第一存储体阵列310的行,并且多个存储器单元MCs连接到的多条位线BL1~BL2n可以被称为第一存储体阵列310的列。
图6是示出根据一些示例实施例的图2中的ECC引擎的示例的框图。
参考图6,ECC引擎130包括ECC编码器140、ECC解码器150和存储器180。存储器180可以被称为ECC存储器。尽管ECC编码器140和ECC解码器150被示为独立的组件,但是示例实施例不限于此。
存储器180连接到ECC编码器140和ECC解码器150,并且可以存储奇偶校验生成矩阵PGM和奇偶校验矩阵PCM。
ECC编码器140可以通过使用奇偶校验生成矩阵PCM对用户数据集SDQ和元数据MBT执行ECC编码,以生成包括第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的奇偶校验数据集SPRT,并且可以输出包括用户数据集SDQ、元数据MBT和奇偶校验数据集SPRT的第一码字集SCW1。
ECC解码器150可以从存储器模块MM接收第二码字集SCW2,该第二码字集SCW2包括用户数据集SDQ、元数据MBT和奇偶校验数据集SPRT。ECC解码器150连接到寄存器185并接收错误信息信号EIS。ECC解码器150可以通过使用奇偶校验矩阵PCM来对第二码字集SCW2执行ECC解码以生成第一校正子和第二校正子,可以基于第一校正子和第二校正子以符号为单位纠正第二码字集SCW2中的用户数据集中的可纠正错误,并且可以在输出纠正的用户数据集C_SDQ(或者,当没有检测到错误时的用户数据集)的同时,输出指示可纠正错误正在被纠正的解码状态标志DSF。ECC解码器150可以向图2中的错误管理电路400提供与可纠正错误相关联的第二校正子SDR_M和错误符号信息ESBI。
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)元素(在图8中用“1”表示)。基本偏移子矩阵OSMb可以基于本原多项式(诸如x16+x12+x3+x+1)来获得。如果第p阶本原多项式改变,则偏移子矩阵OSM1~OSM2k中的每一个的元素可以改变。
偏移子矩阵OSM1~OSM2k的偏移子矩阵OSM1可以通过基本偏移子矩阵OSMb的幂来获得。偏移子矩阵OSM1~OSM2k的偏移子矩阵OSM2可以通过将偏移子矩阵OSM1乘以通过对基本偏移子矩阵OSMb取偏移次幂获得的子矩阵来获得。
此外,与偏移子矩阵OSM1~OSM2k中的一个(存储器)芯片相关联的两个偏移子矩阵OSM(2i-1)和OSM(2i)之间的间隙可以是规则的。在这里,i是一至八之一。例如,偏移子矩阵OSM4可以通过将偏移子矩阵OSM3乘以通过对基本偏移子矩阵OSMb取偏移次幂获得的子矩阵来获得。
图9示出了图7中奇偶校验生成矩阵中的零子矩阵的示例。
参考图9,在对应于零子矩阵ZSM的每一个的零子矩阵ZSM中,元素的每一个具有零。
图10示出了图7中奇偶校验生成矩阵中的单位(或恒等)子矩阵的示例。
参考图10,对应于单位子矩阵ISM的每一个的单位子矩阵ISM包括沿对角线方向布置的p个高级元素。除了高级元素之外,其他元素的每一个都具有零。
在图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用于确定错误的位置,并且将第一奇偶校验数据PRTL提供给缓冲器147。第一奇偶校验数据PRTL可以被称为第一奇偶校验数据。
错误定位符奇偶校验生成器141可以通过用第一奇偶校验子矩阵HS11对用户数据集SDQ和元数据MDT执行矩阵乘法运算来生成第一奇偶校验数据PRTL。如果用户数据集SDQ和元数据MDT的矢量表示对应于ms,并且错误定位符奇偶校验数据PRTL的矢量表示对应于pL,pL=HS11[ms 0]T。这里T表示转置矩阵,而0表示零矩阵。
第一错误幅度奇偶校验生成器143可以通过使用第二奇偶校验子矩阵HS12对用户数据集SDQ和元数据MDT执行ECC编码,以生成用于确定位错误的数量并将第一错误幅度奇偶校验数据PRTM1提供给缓冲器147的第一子奇偶校验数据PRTM1。第一子奇偶校验数据PRTM1可以被称为第一错误幅度奇偶校验数据。
第一错误幅度奇偶校验生成器143可以通过用第二奇偶校验子矩阵HS12对用户数据集SDQ和元数据MDT执行矩阵乘法运算来生成第一子奇偶校验数据PRTM1。如果第一子奇偶校验数据PRTM1的矢量表示对应于pM1,pM1=HS12[ms pL 0]T
第二错误幅度奇偶校验生成器145通过使用第三奇偶校验子矩阵HS13对用户数据集SDQ和元数据MDT执行ECC编码,以生成用于确定位错误的数量并将第二错误幅度奇偶校验数据PRTM2提供给缓冲器147的第二子奇偶校验数据PRTM2。第二子奇偶校验数据PRTM2可以被称为第二错误幅度奇偶校验数据。
第二错误幅度奇偶校验生成器145可以通过用第三奇偶校验子矩阵HS13对用户数据集SDQ和元数据MDT执行矩阵乘法运算来生成第二子奇偶校验数据PRTM2。如果第二错误幅度奇偶校验数据PRTM2的矢量表示对应于pM2,则pM2=HS13[ms pL 0]T。第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2可以包括在第二奇偶校验数据PRTM中。
缓冲器147接收用户数据集SDQ、元数据MDT、第一奇偶校验数据PRTL、第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2,并向存储器模块MM提供码字集SCW1,码字集SCW1包括用户数据集SDQ、元数据MDT、第一奇偶校验数据PRTL、第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2。
图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)单位子矩阵和(k+1)零子矩阵交替排列。
第三奇偶校验子矩阵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编码器141和ECC解码器150共享奇偶校验生成矩阵PGM,并分别执行ECC编码和ECC解码。奇偶校验生成矩阵PGM可以等同于图6中的奇偶校验矩阵PCM。
图13示出了图12中的偏移子矩阵的示例。
参考图13,偏移子矩阵OSM可以通过对基本偏移子矩阵OSMb取偏移ofs次幂来获得。
参考图12和图13,第一奇偶校验子矩阵HS21中的非零元素的数量可以大于第二奇偶校验子矩阵HS22中的非零元素的数量或者第三奇偶校验子矩阵HS23中的非零元素的数量。因此,图6中的ECC解码器150通过使用第二奇偶校验子矩阵HS22和第三奇偶校验子矩阵HS23生成第一子校正子和第二子校正子,并且可以通过对第一子校正子和第二子校正子求和来生成第二校正子。
图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被包括在第二校正子(即,错误幅度校正子)中。
错误定位符校正子生成器153生成指示读取的码字集SCW2中可纠正错误的位置的第一校正子SDR_L,并将第一校正子SDR_L提供给数据纠正器155。如果第一校正子SDR_L的矢量表示对应于SL,则SL=HS21rT
数据纠正器155可以基于第一校正子SDR_L和第二校正子SDR_M以符号为单位纠正读取的码字集SCW2的用户数据集SDQ中的可纠正的错误位,以输出纠正的用户数据集C_SDQ,或在用户数据集SDQ包括不可纠正的错误时输出用户数据集SDQ。此外,数据纠正器155可以向解码状态标志生成器156输出指示错误是否被纠正的错误标志EF。
当第一校正子SDR_L和第二校正子SDR_M指示码字集SCW2中的用户数据集包括可纠正错误时,数据纠正器155可以向图2中的错误管理电路400提供与可纠正错误相关联的第二校正子SDR_M和错误符号信息ESBI。
解码状态标志生成器156可以基于第一校正子SDR_L、第二校正子SDR_M和错误标志EF生成解码状态标志DSF,该解码状态标志DSF指示码字集CW2中的用户数据集包括可纠正错误还是不可纠正错误。
具有零值的第一校正子SDR_L和具有零值的第二校正子SDR_M指示码字集CW2中的用户数据集不包括错误。具有非零值的第一校正子SDR_L和具有非零值的第二校正子SDR_M指示码字集CW2中的用户数据集包括以符号为单位的可纠正错误。
具有零值的第一校正子SDR_L和具有非零值的第二校正子SDR_M指示码字集CW2中的用户数据集包括不能使用第一校正子SDR_L和第二校正子SDR_M纠正的不可纠正错误。
当码字集CW2中的用户数据集包括通过多个读取操作检测的以符号为单位的可纠正错误时,错误管理电路400可以对与可纠正错误相关联的错误地址进行计数,可以通过累积与可纠正错误相关联的第二校正子来存储第二校正子,可以基于计数的结果和第二校正子的累积来确定可纠正错误的属性,并且可以确定其中可纠正错误发生的存储器区域上的错误管理策略。
图15是示出根据示例实施例的图2的存储器控制器中的错误管理电路的示例的框图。
参考图15,错误管理电路400可以包括错误计数电路405和错误管理器430。
错误计数电路405可以基于错误符号信息ESBI对错误地址EADDR进行计数,以输出计数值CV,该错误符号信息ESBI指示其中发生可纠正错误的符号。
错误管理器430可以接收计数值CV和第二校正子SDR_M。错误管理器430可以基于计数值CV确定可纠正错误的第一属性(关于其中可纠正错误发生的物理位置的属性),可以基于第一属性和第二校正子的累积生成用于修复至少一个存储器区域的修复信号RPR,并且可以基于第二校正子的累积来预测在至少一个存储器区域中不可纠正错误的发生,以向CPU 110提供与预测相关联的警报信号ALRT。错误管理器430可以向CPU 110提供修复信号RPR,并且CPU 110可以向MM提供要修复的地址和指定修复操作的命令。
图16是示出根据示例实施例的图15的错误管理电路中的错误计数电路的示例的框图。
参考图16,错误计数电路405可以包括错误地址寄存器410、地址比较器415和计数器电路420。
错误地址寄存器410可以存储错误地址EADDR和错误符号信息ESBI。连接到错误地址寄存器410的地址比较器415可以比较包括与读取操作当中的先前读取操作相关联的错误符号信息的先前错误地址P_EADDR和包括与当前读取操作相关联的错误符号信息的当前错误地址C_EADDR,以输出指示比较结果的地址比较信号ACS。
计数器电路420可以接收地址比较信号ACS,以基于地址比较信号ACS中的多个位输出计数值CV。计数器电路420可以包括第一计数器(行计数器)421、第二计数器(列计数器)423、第三计数器(存储体计数器)425和第四计数器(芯片计数器)427。
第一计数器421可以基于地址比较信号ACS输出与存储器区域的行地址相关联的第一子计数值R_CNT。第二计数器423可以基于地址比较信号ACS输出与存储器区域的列地址相关联的第二子计数值C_CNT。第三计数器425可以基于地址比较信号ACS输出与存储器区域的存储体地址相关联的第三子计数值BN_CNT。第四计数器427可以基于地址比较信号ACS输出与包括存储器区域的存储器芯片相关联的第四子计数值CH_CNT。
计数值CV可以包括第一子计数值R_CNT、第二子计数值C_CNT、第三子计数值BN_CNT和第四子计数值CH_CNT。错误管理器430可以基于第一子计数值R_CNT、第二子计数值C_CNT、第三子计数值BN_CNT和第四子计数值CH_CNT中的每一个的变化来确定存储器区域的物理属性。
图17示出了根据示例实施例的图16中的计数值的示例。
在图17中,假设通过对图3中的码字集SCW执行的两次读取操作,在用户数据集SDQ中检测到两个可纠正错误,与两个可纠正错误相关联的错误地址EADDR中的行地址不同。
参考图17,当与两个可纠正错误相关联的错误地址EADDR中的行地址不同时,第一子计数值R_CNT增加“一”。
图18示出了根据示例实施例的图16中的错误地址寄存器的示例。
参考图18,错误地址寄存器410可以被配置为表格的形式。
索引Idx11和Idx12可以存储与可纠正错误相关联的错误地址信息EAI和错误符号信息ESBI。
错误地址寄存器410可以包括第一列411和第二列413,第一列411可以将存储器区域的其中可纠正错误发生的存储体地址/行地址/列地址BA/RA/CA_11和BA/RA/CA_12存储为错误地址信息EAI,并且第二列413可以将包括其中可纠正错误发生的存储器区域的数据芯片的芯片标识符CID1存储为错误符号信息ESBI。
存储在第一索引Idx11中的错误地址信息EAI和错误符号信息ESBI可以被提供给地址比较器415作为先前错误地址P_EADDR,而存储在第二索引Idx12中的错误地址信息EAI和错误符号信息ESBI可以被提供给地址比较器415作为当前错误地址C_EADDR。
图19是示出根据示例实施例的图15的错误管理电路中的错误管理器的示例的框图。
参考图19,错误管理器430可以包括故障属性预测器440、校正子寄存器450、校正子累积寄存器460、不可纠正错误(uncorrectable error,UE)确定器470、警报信号发生器475和修复信号发生器480。
故障属性预测器440可以基于计数值CV确定可纠正错误的第一属性,以生成指示第一属性的故障属性信号FAS。校正子寄存器450可以存储通过一次读取操作获得的与可纠正错误相关联的第二校正子。
连接到校正子寄存器450的校正子累积寄存器460可以通过将第二校正子累积为校正子信息SDRI来存储通过多个读取操作获得的与可纠正错误相关联的第二校正子。连接到校正子累积寄存器460的UE确定器470可以基于所累积的第二校正子生成预测不可纠正错误的发生的不可纠正错误信息UEI,以向警报信号发生器475提供不可纠正错误信息UEI。UE确定器470可以参考所累积的第二校正子,可以将可纠正错误的数量与参考值进行比较,并且当可纠正错误的数量超过参考值时,可以向警报信号发生器475提供不可纠正错误信息UEI。
警报信号发生器175可以基于指示存储器区域中可能发生不可纠正错误的不可纠正错误信息UEI向CPU 110提供警报信号ALRT。修复信号发生器480可以基于故障属性信号FAS和所累积的第二校正子向CPU 110提供修复信号RPR。
UE确定器470和修复信号发生器480可以参考校正子累积寄存器460中所累积的第二校正子,以确定与可纠正错误相关联的存储器区域的第二属性。第二属性可以指示符号中的错误发生模式是否与突发长度方向或数据输入/输出焊盘(pad)方向相关联。第二属性可以与存储器区域中的错误的原因相关联。
例如,当第二属性与突发长度方向相关联时,确定错误是由于布置在图4中的存储器单元阵列300中的子阵列块中的每一个子阵列块中的子字线驱动器的故障而发生的。例如,当第二属性与数据输入/输出焊盘方向相关联时,确定错误是由于通过其输入和输出数据的数据输入/输出焊盘的故障而发生的。
也就是说,错误管理器430可以基于计数值CV来确定可纠正错误的第一属性,以生成指示第一属性的故障属性信号FAS,可以存储通过一个读取操作获得的与可纠正错误相关联的第二校正子SDR_M,可以通过累积通过多个读取操作获得的与可纠正错误相关联的第二校正子SDR_M来存储第二校正子,可以基于所累积的第二校正子生成预测不可纠正错误的发生的不可纠正错误信息UEI,可以基于不可纠正错误信息UEI向CPU 110提供警报信号ALRT,并且可以基于故障属性信号FAS和所累积的第二校正子向CPU 110提供修复信号RPR。
图20示出了根据示例实施例的图19的错误管理器中的校正子寄存器的示例。
参考图20,校正子寄存器450a可以临时存储与通过一次(当前)读取操作检测到的可纠正错误相关联的第二校正子SDR_M。校正子寄存器450a可以存储与通过当前读取操作检测到的可纠正错误相关联的第二校正子SDR_M。
当在用户数据集SDQ中发生以符号为单位的可纠正错误时,图14的ECC解码器150中的数据纠正器155将第二校正子SDR_M存储在错误管理电路400中,存储在校正子寄存器450a中的第二校正子SDR_M可以表示用户数据集SDQ中的符号之一。第二属性可以通过在校正子寄存器450a中沿着数据输入/输出焊盘方向DQP和突发长度方向BL排列第二校正子SDR_M来确定。
图21示出了根据一些示例实施例的图19的错误管理器中的校正子累积寄存器的示例。
参考图21,校正子累积寄存器460a可以累积通过多个读取操作获得的与可纠正错误相关联的第二校正子,以在其中存储所累积的校正子SDR_M_ACM。也就是说,校正子累积寄存器460a可以存储通过多个读取操作获得的其中可纠正错误发生的符号的每一个的每位的错误计数。UE确定器470可以通过将每位的累积错误计数与参考值进行比较来确定不可纠正错误发生的可能性。第二属性可以基于校正子累积寄存器460a中的每位的累积错误计数来确定。在图21中,注意到可纠正错误在特定突发长度方向BL上重复发生。也就是说,在图21中,注意到第二属性与子字线驱动器相关联。
图22是示出根据示例实施例的操作存储器系统的方法的流程图。
参照图1至图22,提供了操作存储器系统20的方法,该存储器系统20包括存储器模块MM和控制该存储器模块MM的存储器控制器100,该存储器模块MM包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。根据该方法,存储器控制器100中的ECC引擎130的ECC编码器140基于奇偶校验生成矩阵PGM对用户数据集SDQ和元数据MDT执行ECC编码,以生成包括第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的奇偶校验数据集SPRT(操作S210)。
存储器控制器100将包括用户数据集SDQ、元数据MDT和奇偶校验数据集SPRT的码字集SCW1存储在多个数据芯片200a~200k、第一奇偶校验芯片和第二奇偶校验芯片中(操作S220)。
存储器控制器100可以从存储器模块MM读取包括用户数据集SDQ、元数据MDT和奇偶校验数据集SPRT的码字集SW2(操作S230)。ECC引擎130的ECC解码器150基于读取的码字集SCW2和奇偶校验矩阵PCM生成第一校正子SDR_L和第二校正子SDR_M(操作S240)。
ECC解码器150在错误管理电路400中存储与可纠正错误相关联的第二校正子SDR_M,同时基于第一校正子SDR_L和第二校正子SDR_M以符号为单位纠正可纠正错误(操作S250)。错误管理电路400可以通过累积通过多个读取操作获得的与可纠正错误相关联的第二校正子SDR_M来存储该第二校正子,可以预测不可纠正错误的发生,并且生成用于修复与可纠正错误相关联的存储器区域的修复信号(操作S260),并且可以将修复信号RPR提供给CPU 110。
因此,根据该方法,错误管理电路400可以对与可纠正错误相关联的错误地址进行计数,可以通过累积与可纠正错误相关联的第二校正子来存储第二校正子,可以基于计数的结果和第二校正子的累积来确定可纠正错误的属性,并且可以确定多个数据芯片的与可纠正错误相关联的至少一个存储器区域上的错误管理策略。
图23是示出根据示例实施例的存储器系统可以使用的存储器模块的框图。
参考图23,存储器模块500包括布置在或安装在电路板501上的缓冲芯片590(RCD,注册时钟驱动器)、多个半导体存储器设备601a~601e、602a~602e、603a~603d和604a~604d、模块电阻单元560和570、串行存在检测(SPD)芯片580和/或电源管理集成电路(PMIC)585。
缓冲芯片590可以在存储器控制器100的控制下控制半导体存储器设备601a~601e、602a~602e、603a~603d和604a~604d以及PMIC 585。例如,缓冲芯片590可以从存储器控制器100接收地址ADDR、命令CMD、用户数据集SDQ和元数据MDT。
SPD芯片580可以是可编程只读存储器(programmable read only memory,PROM)(例如,电可擦PROM(electrically erasable PROM,EEPROM))。SPD芯片580可以包括存储器模块500的初始信息和/或设备信息DI。在一些示例实施例中,SPD芯片580可以包括初始信息和/或设备信息DI,诸如存储器模块500的模块形式、模块配置、存储容量、模块类型、执行环境等。
当包括存储器模块500的存储器系统引导时,存储器控制器100可以从SPD芯片580读取设备信息DI,并且可以基于设备信息DI识别存储器模块500。存储器控制器100可以基于来自SPD芯片580的设备信息DI来控制存储器模块500。例如,存储器控制器100可以基于来自SPD芯片580的设备信息DI来识别存储器模块500中包括的半导体存储器设备的类型。
这里,作为印制电路板的电路板501可以在第一边缘部分503和第二边缘部分505之间沿垂直于第一方向D1的第二方向D2延伸。第一边缘部分503和第二边缘部分505可以沿第一方向D1延伸。
缓冲芯片590可以布置在电路板501的中心。多个半导体存储器设备601a~601e、602a~602e、603a~603d和604a~604d可以布置在缓冲芯片590和第一边缘部分503之间以及缓冲芯片590和第二边缘部分505之间的多个行中。根据一些示例实施例,这里描述为由缓冲芯片590执行的操作可以由处理电路来执行。
在这种情况下,半导体存储器设备601a~601e和602a~602e可以沿着缓冲芯片590和第一边缘部分503之间的多个行排列。半导体存储器设备603a~603d和604a~604d可以沿着缓冲芯片590和第二边缘部分505之间的多个行排列。半导体存储器设备601a~601d、602a~602d、603a~603d和604a~604d可以称为数据芯片,并且半导体存储器设备601e和602e可以分别称为第一奇偶校验芯片和第二奇偶校验芯片。
缓冲芯片590可以基于用户数据集SDQ和元数据MDT生成第一奇偶校验数据和第二奇偶校验数据,可以将用户数据集SDQ和元数据MDT存储在数据芯片中,可以将第一奇偶校验数据存储在第一奇偶校验芯片中,并且可以将第二奇偶校验数据存储在第二奇偶校验芯片中。
缓冲芯片590可以通过命令/地址传输线561向半导体存储器设备601a~601e提供命令/地址信号(例如,CA),并且可以通过命令/地址传输线563向半导体存储器设备602a~602e提供命令/地址信号。此外,缓冲芯片590可以通过命令/地址传输线571向半导体存储器设备603a~603d提供命令/地址信号,并且可以通过命令/地址传输线573向半导体存储器设备604a~604d提供命令/地址信号。
命令/地址传输线561和563可以共同连接到被布置为邻近第一边缘部分503的模块电阻单元560,并且命令/地址传输线571和573可以共同连接到被布置为邻近第二边缘部分505的模块电阻单元570。模块电阻单元560和570中的每一个模块电阻单元可以包括连接到终端电压Vtt的终端电阻Rtt/2。
另外,多个半导体存储器设备601a~601e、602a~602e、603a~603d和604a~604d中的每一个半导体存储器设备或至少一个半导体存储器设备可以是包括DRAM设备或包括DRAM设备。
SPD芯片580被布置为邻近缓冲芯片590,并且PMIC 585可以被布置在半导体存储器设备603d和第二边缘部分505之间。PMIC 585可以基于输入电压VIN产生电源电压VDD,并且可以向半导体存储器设备601a~601e、602a~602e、603a~603d和604a~604d提供电源电压VDD。
图24是示出根据示例实施例的图23的存储器模块中的缓冲芯片的示例的框图。
参考图24,缓冲芯片590可以包括存储器管理单元(memory management unit,MMU)610、ECC引擎630和错误管理电路700。
MMU 610可以从存储器控制器100向半导体存储器设备601a~601e、602a~602e、603a~603d和604a~604d重复命令CMD和地址ADDR。MMU610可以包括控制单元611、命令缓冲器(CMF BUF)613和地址缓冲器(ADDR BUF)615。控制单元611控制命令缓冲器613和地址缓冲器615,以控制命令CMD和地址ADDR的缓冲定时。在控制单元511的控制下,地址缓冲器615可以向错误管理电路700提供与可纠正错误相关联的地址作为错误地址EADDR。
ECC引擎630可以包括ECC编码器640、ECC解码器650和存储器680。在写入操作中,ECC编码器640使用奇偶校验生成矩阵对用户数据集SDQ和元数据MDT执行ECC编码,以生成包括数据集SDQ、元数据MDT、第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的码字集SCW11。
ECC解码器650使用奇偶校验矩阵对包括用户数据集SDQ、元数据MDT、第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的码字集SCW12执行ECC解码,以生成第一校正子和第二校正子。ECC解码器650可以基于第一校正子和第二校正子,以符号为单位纠正码字集SCW12中的用户数据集SDQ中的可纠正错误,并将纠正后的用户数据集提供给存储器控制器100。ECC解码器650可以向错误管理电路700提供与可纠正错误相关联的第二校正子和与其中可纠正错误发生的符号相关联的错误符号信息SBI。
存储器680可以存储奇偶校验生成矩阵和奇偶校验矩阵。ECC引擎630可以使用图6中的ECC引擎130。
错误管理电路700可以对从地址缓冲器615提供的并且与在存储器模块MM上的多个读取操作中检测到的可纠正错误相关联的错误地址EADDR进行计数,可以通过累积与可纠正错误相关联的第二校正子SDR_M来存储第二校正子SDR_M,可以基于计数的结果和第二校正子的累积来确定可纠正错误的属性,并且可以确定与可纠正错误相关联的至少一个存储器区域上的错误管理策略。错误管理电路700可以向MMU 610提供通知基于属性的不可纠正错误的发生的可能性的警报信号ALRT。
图25是示出根据示例实施例的图24的缓冲芯片中的错误管理电路的示例的框图。
参考图25,错误管理电路700可以包括错误计数电路710和错误管理器730。
错误计数电路710可以基于错误符号信息ESBI来对错误地址EADDR进行计数,以输出计数值CV,该错误符号信息ESBI指示其中可纠正错误发生的符号。
错误管理器730可以接收计数值CV和第二校正子SDR_M。错误管理器730可以基于计数值CV确定可纠正错误的第一属性(例如,关于其中可纠正错误发生的物理位置的属性),可以基于第一属性和第二校正子的累积生成用于修复至少一个存储器区域的修复信号RPR,并且可以基于第二校正子的累积来预测在至少一个存储器区域中不可纠正错误的发生,以向MMU 610提供与预测相关联的警报信号ALRT。错误管理器730可以向MMU 610提供修复信号RPR,并且MMU 610可以向数据芯片提供要修复的地址。
错误计数电路710可以使用图16中的错误计数电路405,并且错误管理器730可以使用图19的错误管理器430。因此,存储器模块500可以对与可纠正错误相关联的错误地址进行计数,可以通过累积与可纠正错误相关联的第二校正子来存储第二校正子,可以基于该计数的结果和第二校正子的累积来确定可纠正错误的至少一个属性,并且可以确定与可纠正错误相关联的至少一个存储器区域上的错误管理策略。
图26是示出根据一些示例实施例的具有四列存储器模块的存储器系统的框图。
参考图26,存储器系统800可以包括存储器控制器810和/或存储器模块820和830。根据一些示例实施例,虽然图26中描绘了两个存储器模块,但是存储器系统800中可以包括更多或更少的存储器模块。
存储器控制器810可以控制存储器模块820和/或830,以便执行从处理器和/或主机提供的命令。存储器控制器810可以使用处理电路(例如,处理器)来实施和/或可以用主机、应用处理器或片上系统(system-on-a-chip,SoC)实施。为了信号完整性,源端(sourcetermination)可以用存储器控制器810的总线840上的电阻器RTT来实现。电阻器RTT可以耦合到电源电压VDDQ。存储器控制器810可以包括可以向存储器模块820和/或830中的至少一个存储器模块发送信号的发送器811,以及可以从存储器模块820和/或830中的至少一个存储器模块接收信号的接收器813。存储器控制器810可以包括ECC引擎815和错误管理电路(EMC)817。ECC引擎815可以使用图6的ECC引擎130,并且错误管理电路817可以使用图15的错误管理电路400。
因此,ECC引擎815包括ECC编码器和ECC解码器,并且ECC解码器可以对来自存储器模块820和/或830中的至少一个存储器模块的读取的码字执行ECC解码,以生成第一校正子和第二校正子,并且可以向错误管理电路提供与可纠正错误相关联的错误地址和第二校正子。
错误管理电路817可以基于对错误地址的计数和第二校正子的累积来确定可纠正错误的至少一个属性,并且可以确定与可纠正错误相关联的存储器区域上的错误管理策略。因此,错误管理电路817可以防止或减少由于存储器模块820和830中的所累积的可纠正错误而导致的不可纠正错误的发生的可能性。因此,存储器系统800可以更高效地纠正和管理错误。
存储器模块820和830可以被称为第一存储器模块820和第二存储器模块830。第一存储器模块820和第二存储器模块830可以通过总线840耦合到存储器控制器810。第一存储器模块820和第二存储器模块830中的每一个存储器模块可以对应于图1中的存储器模块MM。第一存储器模块820可以包括存储器组(memory rank)RK1和RK2,并且第二存储器模块830可以包括存储器组RK3和RK4。
第一存储器模块820和第二存储器模块830中的每一个存储器模块可以包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。
图27是示出根据一些示例实施例的包括存储器模块的移动系统的框图。
参考图27,移动系统900可以包括应用处理器(application processor,AP)910、连接模块920、存储器模块(MM)950(诸如DIMM)、非易失性存储器设备940、用户接口930和/或电源970。应用处理器910可以包括存储器控制器911。存储器控制器911可以包括图6的ECC引擎130和图15的错误管理电路400。
应用处理器910可以执行应用,诸如网络浏览器、游戏应用、视频播放器等中的至少一个。连接模块920可以执行与外部设备的有线和/或无线通信。
存储器模块950可以存储由应用处理器910处理的数据和/或作为工作存储器操作。存储器模块950可以包括多个半导体存储器设备(memory devices,MD)951、952、953…和95q(其中q是大于3的正整数),和/或缓冲芯片(RCD)961。
半导体存储器设备951、952、953…和95q可以包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片。因此,存储器控制器911可以对来自存储器模块950的读取码字执行ECC解码,以生成第一校正子和第二校正子,并且可以向错误管理电路提供与可纠正错误相关联的错误地址和该第二校正子。错误管理电路可以基于对错误地址的计数和第二校正子的累积来确定可纠正错误的属性或多个属性,并且可以确定与可纠正错误相关联的存储器区域上的错误管理策略。
非易失性存储器设备940可以存储用于引导移动系统900的引导映像。用户接口930可以包括至少一个输入设备(诸如键盘、触摸屏等)和至少一个输出设备(诸如扬声器、显示设备等)。电源970可以向移动系统900提供工作电压。
移动系统900或移动系统900的组件可以使用各种类型的封装来安装。
一些示例实施例可以应用于包括存储器模块和/或存储器控制器的各种系统,该存储器控制器包括ECC引擎。
如本文所用,除非另有示出,否则元件(诸如“引擎”和/或“模块”和/或“单元”)和/或以“器”结尾的元件可以是处理电路或可以包括处理电路,该处理电路诸如包括逻辑电路的硬件;硬件/软件组合,诸如执行软件的处理器;或者它们的组合。例如,更具体地,处理电路可以包括但不限于中央处理单元(CPU)、算术逻辑单元(arithmetic logic unit,ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(application-specific integrated circuit,ASIC)等。
虽然已经参照其示例性实施例具体示出和描述了一些示例性实施例,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。

Claims (20)

1.一种存储器控制器电路,被配置为控制存储器模块,所述存储器模块包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片,所述存储器控制器包括:
纠错码(ECC)引擎电路;
中央处理单元(CPU),被配置为控制所述ECC引擎电路;和
错误管理电路,
其中所述存储器控制器电路被配置为,
对来自所述存储器模块的读取的码字集执行ECC解码以生成第一校正子和第二校正子,所述第一校正子和第二校正子在读取操作中生成,
基于所述第一校正子和所述第二校正子来纠正所述读取的码字集中的用户数据集中的可纠正错误,
向所述错误管理电路提供与所述可纠正错误相关联的第二校正子,
对与通过多个读取操作检测到的可纠正错误相关联的错误地址进行计数,
通过累积与所述可纠正错误相关联的第二校正子来存储所述第二校正子,
基于所述计数的结果和所述第二校正子的累积来确定所述可纠正错误的属性,以及
确定与所述可纠正错误相关联的至少一个存储器区域上的错误管理策略,所述至少一个存储器区域与所述多个数据芯片相关联。
2.根据权利要求1所述的存储器控制器电路,其中所述存储器控制器电路被配置为
基于错误符号信息对所述错误地址进行计数以输出计数值,所述错误符号信息指示其中发生所述可纠正错误的符号,
基于所述计数值确定所述可纠正错误的第一属性,
基于所述第二校正子的累积和所述第一属性,生成用于修复所述至少一个存储器区域的修复信号,以及
基于所述第二校正子的累积来预测所述至少一个存储器区域中的不可纠正错误的发生,以向所述CPU提供与所述预测相关联的警报信号。
3.根据权利要求2所述的存储器控制器电路,其中所述错误管理电路包括:
错误地址寄存器,被配置为存储所述错误地址和所述错误符号信息,并且所述错误管理电路被配置为
比较先前错误地址和当前错误地址,以输出指示所述比较的结果的地址比较信号,所述先前错误地址包括与所述读取操作中的先前读取操作相关联的错误符号信息,所述当前错误地址包括与所述读取操作当中的当前读取操作相关联的错误符号信息,以及
接收所述地址比较信号,以基于所述地址比较信号中的多个位输出所述计数值。
4.根据权利要求3所述的存储器控制器电路,其中所述错误管理电路还包括:
第一计数器,被配置为第一输出与所述存储器区域的行地址相关联的第一子计数值,所述第一输出基于所述地址比较信号;
第二计数器,被配置为第二输出与所述存储器区域的列地址相关联的第二子计数值,所述第二输出基于所述地址比较信号;
第三计数器,被配置为第三输出与所述存储器区域的存储体地址相关联的第三子计数值,所述第三输出基于所述地址比较信号;和
第四计数器,被配置为第四输出与包括所述存储器区域的存储器芯片相关联的第四子计数值,所述第四输出基于所述地址比较信号。
5.根据权利要求4所述的存储器控制器电路,其中所述计数值包括所述第一子计数值、所述第二子计数值、所述第三子计数值和所述第四子计数值。
6.根据权利要求2所述的存储器控制器电路,其中所述错误管理电路被配置为:
基于所述计数值确定所述第一属性以生成指示所述第一属性的故障属性信号,
存储通过一次读取操作获得的与所述可纠正错误相关联的第二校正子;
通过累积通过所述多个读取操作获得的与所述可纠正错误相关联的所述第二校正子来存储所述第二校正子;
基于所累积的第二校正子生成预测所述不可纠正错误的发生的不可纠正错误信息;
基于所述不可纠正错误信息向所述CPU提供所述警报信号;以及
基于所述故障属性信号和所累积的第二校正子向所述CPU提供所述修复信号。
7.根据权利要求6所述的存储器控制器电路,其中所述错误管理电路被配置为响应于所述存储器区域中发生的所述可纠正错误的数量超过参考值而提供所述警报信号,所述警报信号通过参考所累积的第二校正子来提供。
8.根据权利要求6所述的存储器控制器电路,其中所述错误管理电路被配置为基于所述故障属性信号和所累积的第二校正子来确定所述可纠正错误的第二属性,以及
基于所述第二属性向所述CPU提供所述修复信号。
9.根据权利要求2所述的存储器控制器电路,其中所述错误管理电路被配置为
基于所述计数值确定所述第一属性以生成指示所述第一属性的故障属性信号,
并且所述错误管理电路包括校正子寄存器,所述校正子寄存器被配置为存储通过一次读取操作获得的与所述可纠正错误相关联的第二校正子,
校正子累积寄存器,连接到所述校正子寄存器,被配置为通过累积通过所述多个读取操作获得的与所述可纠正错误相关联的第二校正子来存储所述第二校正子,并且所述错误管理电路被配置为
基于所累积的第二校正子生成预测所述不可纠正错误的发生的不可纠正错误信息,基于所述不可纠正错误信息向所述CPU提供所述警报信号,以及
基于所述故障属性信号和所累积的第二校正子向所述CPU提供所述修复信号。
10.根据权利要求9所述的存储器控制器电路,还包括不可纠正错误确定器,被配置为基于以符号为单位的所述可纠正错误的数量与通过参考所累积的第二校正子的参考值的比较,提供所述不可纠正错误信息以提供所述警报信号。
11.根据权利要求1所述的存储器控制器电路,其中所述ECC引擎电路包括:
ECC存储器,被配置为存储奇偶校验矩阵;并且
所述ECC引擎电路被配置为对所述读取的码字集执行ECC解码以生成所述第一校正子和所述第二校正子,并且被配置为向所述错误管理电路提供所述第二校正子和与所述可纠正错误相关联的所述错误地址。
12.根据权利要求11所述的存储器控制器电路,其中所述ECC引擎电路被配置为响应于所述第一校正子非零和所述第二校正子非零,确定所述多个数据芯片之一中发生所述可纠正错误。
13.根据权利要求11所述的存储器控制器电路,其中:
所述读取的码字集包括用户数据集、与所述用户数据集相关联的元数据、与所述用户数据集中的位错误的位置相关联的第一奇偶校验数据、以及与所述位错误的量相关联的第二奇偶校验数据;
从所述多个数据芯片读取所述用户数据集,从所述第一奇偶校验芯片读取所述元数据和所述第一奇偶校验数据,并且从所述第二奇偶校验芯片读取所述第二奇偶校验数据;并且
所述奇偶校验矩阵包括第一奇偶校验子矩阵、第二奇偶校验子矩阵和第三奇偶校验子矩阵。
14.根据权利要求13所述的存储器控制器电路,其中所述ECC引擎电路被配置为:
通过对所述读取的码字集和所述第一奇偶校验子矩阵执行矩阵乘法运算来生成所述第一校正子;以及
通过对所述读取的码字集和所述第二奇偶校验子矩阵以及所述第三奇偶校验子矩阵执行矩阵乘法运算来生成所述第二校正子。
15.一种存储器系统,包括:
存储器模块,包括多个数据芯片、第一奇偶校验芯片和第二奇偶校验芯片;和
存储器控制器电路,被配置为控制所述存储器模块,
其中所述存储器控制器电路包括纠错码(ECC)引擎;
中央处理单元(CPU),被配置为控制所述ECC引擎;和
错误管理电路,
其中所述存储器控制器电路被配置为,
对来自所述存储器模块的读取的码字集执行ECC解码以在读取操作中生成第一校正子和第二校正子,
基于所述第一校正子和所述第二校正子来纠正所述读取的码字集中的用户数据集中的可纠正错误,
对与通过多个读取操作检测到的可纠正错误相关联的错误地址进行计数,
累积与所述可纠正错误相关联的第二校正子以存储所述第二校正子,
基于所述计数的结果和所述第二校正子的累积来确定所述可纠正错误的属性,以及
确定所述多个数据芯片中的与所述可纠正错误相关联的至少一个存储器区域上的错误管理策略。
16.根据权利要求15所述的存储器系统,其中所述存储器控制器电路被配置为
基于错误符号信息对所述错误地址进行计数以输出计数值,所述错误符号信息指示其中发生所述可纠正错误的符号,
基于所述计数值确定所述可纠正错误的第一属性,
基于所述第二校正子的累积和所述第一属性来生成用于修复所述至少一个存储器区域的修复信号,以及
基于所述第二校正子的累积来预测所述至少一个存储器区域中的不可纠正错误的发生,以向所述CPU提供与所述预测相关联的警报信号。
17.根据权利要求16所述的存储器系统,其中所述存储器控制器电路被配置为:
基于所述计数值确定所述第一属性以生成指示所述第一属性的故障属性信号,
存储通过一次读取操作获得的与所述可纠正错误相关联的所述第二校正子;
累积通过所述多个读取操作获得的与所述可纠正错误相关联的所述第二校正子,以存储所述第二校正子;
基于所累积的第二校正子生成预测所述不可纠正错误的发生的不可纠正错误信息;
基于所述不可纠正错误信息向所述CPU提供所述警报信号;以及
基于所述故障属性信号和所累积的第二校正子向所述CPU提供所述修复信号。
18.根据权利要求15所述的存储器系统,其中:
所述读取的码字集包括用户数据集、与所述用户数据集相关联的元数据、与所述用户数据集中的位错误的位置相关联的第一奇偶校验数据、以及与所述位错误的量相关联的第二奇偶校验数据;以及
从所述多个数据芯片读取所述用户数据集,从所述第一奇偶校验芯片读取所述元数据和所述第一奇偶校验数据,并且从所述第二奇偶校验芯片读取所述第二奇偶校验数据。
19.一种存储器模块,包括:
多个数据芯片,被配置为存储用户数据集和元数据;
第一奇偶校验芯片和第二奇偶校验芯片,被配置为分别存储第一奇偶校验数据和第二奇偶校验数据,所述第一奇偶校验数据和所述第二奇偶校验数据是基于所述用户数据集和所述元数据生成的;和
缓冲芯片,被配置为基于从外部存储器控制器提供的命令和地址向所述多个数据芯片提供所述用户数据集和所述元数据,并且被配置为分别向所述第一奇偶校验芯片和所述第二奇偶校验芯片提供所述第一奇偶校验数据和所述第二奇偶校验数据,
其中所述缓冲芯片包括:
纠错码(ECC)引擎电路;
存储器管理电路,被配置为控制所述ECC引擎电路;和
错误管理电路,
其中所述ECC引擎电路被配置为:
对来自所述多个数据芯片、所述第一奇偶校验芯片和所述第二奇偶校验芯片的读取的码字集执行ECC解码,以在读取操作中生成第一校正子和第二校正子;
基于所述第一校正子和所述第二校正子来纠正所述读取的码字集中的用户数据集中的可纠正错误;和
向所述错误管理电路提供与所述可纠正错误相关联的第二校正子,以及
其中所述错误管理电路被配置为,
对与通过多个读取操作检测到的可纠正错误相关联的错误地址进行计数,
通过累积与所述可纠正错误相关联的第二校正子来存储所述第二校正子,
基于所述计数的结果和所述第二校正子的累积的比较来确定所述可纠正错误的属性,以及
确定所述多个数据芯片的与所述可纠正错误相关联的至少一个存储器区域上的错误管理策略。
20.根据权利要求19所述的存储器模块,其中所述错误管理电路被配置为基于所述错误符号信息对所述错误地址进行计数,以输出计数值,所述错误符号信息指示其中发生所述可纠正错误的符号,
基于所述计数值确定所述可纠正错误的第一属性,
基于所述第二校正子的累积和所述第一属性来生成用于修复所述至少一个存储器区域的修复信号,以及
基于所述第二校正子的累积来预测所述至少一个存储器区域中的不可纠正错误的发生,以向所述存储器管理电路提供与所述预测相关联的警报信号。
CN202110504822.3A 2020-05-12 2021-05-10 存储器控制器、存储器系统和存储器模块 Pending CN113656213A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0056319 2020-05-12
KR1020200056319A KR20210138241A (ko) 2020-05-12 2020-05-12 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈

Publications (1)

Publication Number Publication Date
CN113656213A true CN113656213A (zh) 2021-11-16

Family

ID=78476973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110504822.3A Pending CN113656213A (zh) 2020-05-12 2021-05-10 存储器控制器、存储器系统和存储器模块

Country Status (4)

Country Link
US (1) US11392454B2 (zh)
KR (1) KR20210138241A (zh)
CN (1) CN113656213A (zh)
TW (1) TWI773079B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4120083A1 (en) * 2021-07-13 2023-01-18 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method
US11914469B2 (en) * 2021-07-16 2024-02-27 Vmware, Inc. Resiliency and performance for cluster memory
US11942966B2 (en) * 2021-08-17 2024-03-26 Micron Technology, Inc. Managing error control information using a register
US11789813B2 (en) * 2021-12-16 2023-10-17 Micron Technology, Inc. Memory device crossed matrix parity

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE33332E (en) 1983-03-12 1990-09-11 Sony Corporation Apparatus for correcting errors
US5003539A (en) * 1986-04-11 1991-03-26 Ampex Corporation Apparatus and method for encoding and decoding attribute data into error checking symbols of main data
KR930007928B1 (ko) 1991-01-31 1993-08-21 삼성전자 주식회사 오류정정방법 및 장치
GB2289779B (en) 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US20050022091A1 (en) 2003-07-21 2005-01-27 Holman Thomas J. Method, system, and apparatus for adjacent-symbol error correction and detection code
US7949927B2 (en) 2006-11-14 2011-05-24 Samsung Electronics Co., Ltd. Error correction method and apparatus for predetermined error patterns
US7949931B2 (en) 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
US8041990B2 (en) 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
US8468422B2 (en) 2007-12-21 2013-06-18 Oracle America, Inc. Prediction and prevention of uncorrectable memory errors
JP5422974B2 (ja) 2008-11-18 2014-02-19 富士通株式会社 誤り判定回路及び共有メモリシステム
US8448033B2 (en) * 2010-01-14 2013-05-21 Mediatek Inc. Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same
JP5910356B2 (ja) 2012-06-29 2016-04-27 富士通株式会社 電子装置、電子装置制御方法及び電子装置制御プログラム
US9043674B2 (en) 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
US9454422B2 (en) 2014-01-30 2016-09-27 International Business Machines Corporation Error feedback and logging with memory on-chip error checking and correcting (ECC)
US10372535B2 (en) * 2017-08-29 2019-08-06 Winbond Electronics Corp. Encoding method and a memory storage apparatus using the same
KR102669545B1 (ko) * 2019-07-23 2024-05-27 삼성전자주식회사 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치
KR20210026201A (ko) * 2019-08-29 2021-03-10 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 리페어 제어 방법

Also Published As

Publication number Publication date
US20210357287A1 (en) 2021-11-18
TWI773079B (zh) 2022-08-01
KR20210138241A (ko) 2021-11-19
TW202143040A (zh) 2021-11-16
US11392454B2 (en) 2022-07-19

Similar Documents

Publication Publication Date Title
CN113157201B (zh) 存储器控制器及包括存储器控制器的存储器系统
TWI773079B (zh) 用於管理記憶體模組中出現的錯誤的記憶體控制器、記憶體系統以及記憶體模組
US11088710B2 (en) Memory controllers and memory systems including the same
KR101668972B1 (ko) 오류 검출 및 정정 장치 및 방법
KR102002925B1 (ko) 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US9471423B1 (en) Selective memory error reporting
US10922171B2 (en) Error correction code circuits, semiconductor memory devices and memory systems
US10467091B2 (en) Memory module, memory system including the same, and error correcting method thereof
US11463110B2 (en) Memory controllers and memory systems including the same
US11068347B2 (en) Memory controllers, memory systems including the same and memory modules
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
US11726670B2 (en) Methods of operating memory controllers, memory controllers performing the methods and memory systems including the memory controllers
US20160283325A1 (en) Errors and erasures decoding from multiple memory devices
US20220014213A1 (en) Two-level error correcting code with sharing of check-bits
US11815997B2 (en) Memory controllers, memory systems, and memory modules
KR20230068235A (ko) 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
US20230146904A1 (en) Error correction circuit, memory system, and error correction method
US20240097709A1 (en) Error correction code decoder using constacyclic code, and memory device and memory system including the same
KR20230068265A (ko) 에러 정정 회로, 메모리 시스템 및 에러 정정 방법
TW202329106A (zh) 記憶體系統及其操作方法
CN116954982A (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