CN112687324A - 奇偶校验生成电路、存储器控制器和含该电路的存储模块 - Google Patents

奇偶校验生成电路、存储器控制器和含该电路的存储模块 Download PDF

Info

Publication number
CN112687324A
CN112687324A CN202010745406.8A CN202010745406A CN112687324A CN 112687324 A CN112687324 A CN 112687324A CN 202010745406 A CN202010745406 A CN 202010745406A CN 112687324 A CN112687324 A CN 112687324A
Authority
CN
China
Prior art keywords
parity
matrix
output
error correction
symbols
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
CN202010745406.8A
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN112687324A publication Critical patent/CN112687324A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/1515Reed-Solomon 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/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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/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
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

奇偶校验生成逻辑电路包括第一奇偶校验生成部分和第二奇偶校验生成部分。第一奇偶校验生成部分被配置为在具有第一错误校正能力的第一错误校正模式下针对原始数据生成第一奇偶校验位。第二奇偶校验生成部分被配置为在具有第二错误校正能力的第二错误校正模式下利用第一奇偶校验位生成第二奇偶校验位。

Description

奇偶校验生成电路、存储器控制器和含该电路的存储模块
相关申请的交叉引用
本申请要求于2019年10月17日提交的申请号为No.10-2019-0129436的韩国申请的优先权,其全部内容通过引用并入本文。
技术领域
所公开的技术的各种实施例涉及存储器系统,且更具体地,涉及用于多个错误校正电平的奇偶校验生成电路、存储器控制器及包含该奇偶校验生成电路的存储模块。
背景技术
通常,传送信息的路径称为信道。当利用电缆通信来传送信息时,通过其来传送信息的传输线可以用作信道。当利用无线通信来传送信息时,信道可以是包括信息的电磁波传播于其中的空间。可以通过信道来执行用于将数据储存在存储介质(例如,存储器件)中以及用于从存储介质中读出数据的过程。
当通过信道来传送数据时,数据中可能包括错误。因此,人们一直致力于开发用于检测错误数据中的错误并把检测到的错误去除以将错误数据恢复为其原始数据的设备和方法。错误校正码(ECC)编码操作和ECC解码操作已被广泛用于包括存储介质的存储系统中。ECC编码操作可以对应于以下过程:通过在传送原始数据执行写入操作之前向原始数据(即,写入数据)加入错误控制码(或错误校正码)来生成传输数据。ECC解码操作可以对应于以下过程:执行读取操作以读出存储介质中储存的数据,并且将所述读取数据分为原始数据和附加的代码从而将所述读取数据恢复为原始数据。
发明内容
根据一个实施例,一种奇偶校验生成电路包括第一奇偶校验生成部分和第二奇偶校验生成部分。第一奇偶校验生成部分被配置为在具有第一错误校正能力的第一错误校正模式下针对原始数据生成第一奇偶校验位。所述第二奇偶校验生成部分被配置为在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
根据另一实施例,一种用于控制存储器件的写入操作的存储器控制器,其包括错误校正码(ECC)编码器,所述错误校正码(ECC)编码器包括奇偶校验生成逻辑电路,该电路被配置为生成用于原始数据的奇偶校验位。所述奇偶校验生成逻辑电路包括第一奇偶校验生成部分和第二奇偶校验生成部分。所述第一奇偶校验生成部分被配置为在具有第一错误校正能力的第一错误校正模式下生成第一奇偶校验位。所述第二奇偶校验生成部分被配置为在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
根据又一实施例,一种存储模块,其包括多个存储介质和用于控制对所述存储介质的访问的存储模块控制器。所述存储模块控制器包括错误校正码(ECC)编码器,所述错误校正码编码器具有奇偶校验生成逻辑电路,该电路被配置为生成用于原始数据的奇偶校验位。所述奇偶校验生成逻辑电路包括第一奇偶校验生成部分和第二奇偶校验生成部分。所述第一奇偶校验生成部分被配置为在具有第一错误校正能力的第一错误校正模式下生成第一奇偶校验位。所述第二奇偶校验生成部分被配置为在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
根据又一实施例,一种生成奇偶校验位的方法包括:在具有第一错误校正能力的第一错误校正模式下,生成原始数据的第一奇偶校验位。该方法还包括:在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
根据又一实施例,一种生成奇偶校验位的方法包括:在第一错误校正模式下利用第一编码矩阵计算用于原始数据的第一奇偶校验矩阵;并且输出所述第一奇偶校验矩阵。该方法还包括:在第二错误校正模式下利用所述第一编码矩阵和变换矩阵来计算第二奇偶校验矩阵。该方法进一步包括:在所述第二错误校正模式下输出所述第二奇校验偶矩阵。
附图说明
参考所包括的附图通过各种实施利来说明所公开的技术的某些特征,其中:
图1是示出根据本公开的实施例的存储器控制器的框图。
图2示出了包括在图1的存储器控制器中的奇偶校验生成逻辑电路的示例。
图3是示出根据本公开的实施例的生成奇偶校验位的方法的流程图。
图4是示出根据本公开的实施例的包括有奇偶校验生成逻辑电路的存储模块的框图。
图5示出了包括在图4的存储模块中的奇偶校验生成逻辑电路的示例。
具体实施方式
在以下实施例的描述中,应理解术语“第一”和“第二”旨在标识元件,而不是用于仅定义元件本身或表示特定的顺序。另外,当元件被称为位于另一元件“上”、“上方”、“之上”、“下”或“之下”时,其旨在表示相对的位置关系,而不用于限定以下特定的情况:该元件直接接触另一元件,或者在它们之间存在至少一个中间元件。因此,本文中使用的诸如“在...上”、“在...上方”、“在...之上”、“在...下”、“在...之下”和“在...下方”等术语仅用于描述特定实施例的目的,而不旨在限制本公开的范围。此外,当一个元件被称为“连接”或“耦接”到另一元件时,该元件可以直接地被电气或机械地连接或耦接到另一元件,或者可以通过替换它们之间的另一元件而形成连接关系或耦接关系。
各个实施例涉及用于多个错误校正电平的奇偶校验生成电路、存储器控制器和包括该奇偶校验生成电路的存储模块,以及生成奇偶校验位的方法。
图1是示出根据本公开的实施例的存储器控制器110的示例的框图。参考图1,存储器控制器110可以包括错误校正码(ECC)逻辑电路120。ECC逻辑电路120可以包括ECC编码器122和ECC解码器124。在存储器控制器110在写入模式下操作以将数据储存在存储器件(未示出)中时,ECC编码器122可以执行ECC编码操作。当存储器控制器110在读取模式下操作以读出储存在存储器件中的数据时,ECC解码器124可以执行ECC解码操作。ECC编码器122可以包括奇偶校验生成逻辑电路200。
在写入模式下,ECC编码器122可以从诸如主机的外部设备接收被写入存储器件的原始数据。ECC编码器122可以通过向原始数据添加错误控制码(或错误校正码)在生成奇偶校验数据之后输出码字。存储器控制器110可以把从ECC编码器122输出的码字写入存储器件。码字可以被配置为包括原始数据和奇偶校验数据。奇偶校验生成逻辑电路200可以生成被包括在码字中的奇偶校验数据,所述码字由ECC编码器122生成。
在读取模式下,存储控制器110可以这样操作使得从存储器件输出的读取数据(即,包括原始数据和奇偶校验数据的码字)被输入到ECC解码器124中。ECC解码器124可以执行对于被输入到ECC解码器124的码字的ECC解码操作。当在ECC解码操作期间检测到错误时,ECC解码器124可以校正码字的错误而输出ECC解码数据。可以通过以下方式来执行ECC解码操作:计算码字的校验子(syndrome),利用该校验子来计算错误位置多项式,找到错误位置多项式的解以计算错误位置和错误大小,并校正所检测到的错误。存储器控制器110可以将从ECC解码器124输出的ECC解码数据传送到外部设备(例如,主机)。
在本实施例中,ECC逻辑电路120可以具有多种错误校正能力,例如,第一错误校正能力和第二错误校正能力。在一个实施例中,根据在错误校正中使用的算法,错误校正能力可以不同。例如,当包括具有多个数据位和多个奇偶校验位的符号的里德-所罗门(RS)码被用作错误校正码时,错误校正能力可以被定义为其错误可校正的符号的数目。当包括一个二进制数据位和一个二进制奇偶校验位的Bose-Chaudhuri-Hocquenghem(BCH)码被用作错误校正码时,错误校正能力可以被定义为其错误可校正的位的数目。第一错误校正能力可以不同于第二错误校正能力。第一错误校正能力可以大于第二错误校正能力。可以在第一错误校正模式下应用第一错误校正能力,并且可以在第二错误校正模式下应用第二错误校正能力。当在写入操作和读取操作期间错误发生概率相对较高时,ECC逻辑电路120可以在第一错误校正模式下操作。在这种情况下,可以生成相对大的数目的第一奇偶校验位。相反,当在写入操作和读取操作期间错误发生概率相对较低时,ECC逻辑电路120可以在第二错误校正模式下操作。在这种情况下,可以生成相对少的数目的第二奇偶校验位。
图2示出了包括在图1的存储器控制器110中的奇偶校验生成逻辑电路200的示例。参考图2,奇偶校验生成逻辑电路200可以包括第一奇偶校验生成部分210、第二奇偶校验生成部分220和选择输出部分230。在一个实施例中,可以利用多路复用器来实现选择输出部分230。第一奇偶校验生成部分210可以生成用于原始数据的第一奇偶校验矩阵PA1。第一奇偶校验矩阵PA1中的每个元素可以包括第一错误校正能力被应用的第一错误校正模式中所使用的第一奇偶校验符号。第二奇偶校验生成部分220可以利用第一奇偶校验矩阵PA1来生成第二奇偶校验矩阵PA2。第二奇偶校验矩阵PA2中的每个元素可以包括第二错误校正能力被应用的第二错误校正模式中所使用的第二奇偶校验符号。因为第二奇偶校验矩阵PA2是利用第一奇偶校验矩阵PA1生成的,所以第一奇偶校验生成部分210可以在第一错误校正模式和第二错误校正模式下操作。相反,第二奇偶校验生成部分220可以仅在第二错误校正模式下操作。
以下将描述应用使用RS码的RS算法的ECC编码操作。当将BCH码用于ECC编码操作时,除了数据以比特位而不是符号为单位来处理之外,使用BCH码的ECC编码操作可以与使用RS算法的ECC编码操作相同的方式来执行。另外,下面的ECC编码操作将结合以下情况进行描述,其中原始数据包括“NN”个数据符号(其中“NN”是自然数),第一奇偶校验矩阵PA1包括“NP1”个第一奇偶校验符号(其中,“NP1”是自然数),并且第二奇偶校验矩阵PA2包括“NP2”个第二奇偶校验符号(其中,“NP2”是自然数。如参考图1所描述的,因为第一错误校正模式下的错误校正能力大于第二错误校正模式下的错误校正能力,所以第一奇偶校验矩阵PA1中的第一奇偶校验符号的数目“NP1”可以大于第二奇偶校验矩阵PA2中的第二奇偶校验符号的数目“NP2”。
第一奇偶校验生成部分210可以被配置为包括第一编码矩阵逻辑电路211、数据逆矩阵(data inverse matrix)逻辑电路212和第一矩阵乘法器213。第一编码矩阵逻辑电路211可以输出通过以下方程式1计算出的第一编码矩阵Encoding_Matrix1。
Encoding_Matrix1=[address(check1)]-1×[address(data1)]
(方程式1)
在方程式1中,[address(check1)]-1表示矩阵[address(check1)]的逆矩阵。矩阵[address(check1)]([地址(校验1)])可以由以下方程式2表示。
Figure BDA0002608173220000051
在方程式2中,矩阵[address(check1)]可以具有“NP1”个行和“NP1”个列。即,在第一错误校正模式下,矩阵[address(check1)]的行数和列数可以等于第一奇偶校验符号的数目“NP1”。构成矩阵[address(check1)]的每个元素可以与奇偶校验符号相乘,以提供计算校验子时使用的常数。例如,可以将位于第一行和第一列的交叉点处的元素“AP0,0”乘以第一奇偶校验符号以提供在计算第一校验子时使用的常数。类似地,可以将位于第NP1行和第NP1列的交叉点处的元素“APNP1-1,NP1-1”乘以第NP1奇偶校验符号以提供在计算第NP1校验子时使用的常数。
在方程式1中,矩阵[address(data1)]([地址(数据1)])可以由以下方程式3表示。
Figure BDA0002608173220000052
在方程式3中,矩阵[address(data1)]可以具有“NP1”个行和“NN”个列。即,矩阵[address(data1)]中的行数可以等于在第一错误校正模式下的第一奇偶校验符号的数目“NP1”,而矩阵[address(data1)]中的列数可以等于在第一错误校正模式下的数据符号的数目“NN”。构成矩阵[address(data1)]的每个元素可以与数据符号相乘,以提供在计算校验子时使用的常数。例如,可以将位于第一行和第一列的交叉点处的元素“AD0,0”乘以第一数据符号以提供在计算第一校验子时使用的常数。类似地,可以将位于第NP1行和第NN列的交叉点处的元素“ADNN-1,NP1-1”乘以第NN数据符号以提供在计算第NP1校验子时使用的常数。
数据逆矩阵逻辑电路212可以输出通过以下方程式4计算出的数据逆矩阵Data_Inverse_Matrix。
Figure BDA0002608173220000061
在方程式4中,数据逆矩阵Data_Inverse_Matrix可以具有“NN”个行和一个列。构成数据逆矩阵Data_Inverse_Matrix的元素D0,D1,D2,…,DNN-2和DNN-1可以包括“NN”个数据符号。
第一矩阵乘法器213可以执行从第一编码矩阵逻辑电路211输出的第一编码矩阵Encoding_Matrix1与从数据逆矩阵逻辑电路212输出的数据逆矩阵Data_Inverse_Matrix的矩阵乘法,以生成和输出第一奇偶校验矩阵PA1。因为第一编码矩阵Encoding_Matrix1具有“NP1×NN”的矩阵形式并且数据逆矩阵Data_Inverse_Matrix具有“NN×1”的矩阵形式,所以第一奇偶校验矩阵PA1可以具有“NP1×1”的矩阵形式,如以下方程式5所示。
Figure BDA0002608173220000062
在方程式5中,第一奇偶校验矩阵PA1可以具有“NP1”个行和一个列。对于某些描述的实施例,具有“A×B”的矩阵形式的矩阵表示该矩阵具有A个行和B个列。构成第一奇偶校验矩阵PA1的元素P10,P11,P12,…,P1NP1-2和P1NP1-1可以包括“NP1”个第一奇偶校验符号。即,在第一错误校正模式中使用的第一奇偶校验符号可以分别具有与位于第一奇偶校验矩阵PA1的一个列中的元素相对应的值。
从第一矩阵乘法器213输出的第一奇偶校验矩阵PA1可以被输入到利用多路复用器来实现的选择输出部分230的第一输入端子。另外,从第一矩阵乘法器213输出的第一奇偶校验矩阵PA1可以被拆分成低阶第一奇偶校验矩阵PA1_1和高阶第一奇偶校验矩阵PA1_2,并且低阶第一奇偶校验矩阵PA1_1和高阶第一奇偶校验矩阵PA1_2可以被输入到第二奇偶校验生成部分220中所包括的相应的矩阵加法器223和第二矩阵乘法器222。低阶第一奇偶校验矩阵PA1_1可以包括第一奇偶校验矩阵PA1的元素之中的从第一行至第NP2行所排列的元素,如以下方程式6所示。
Figure BDA0002608173220000071
此外,高阶第一奇偶校验矩阵PA1_2可以包括第一奇偶校验矩阵PA1的元素之中的从第(NP2+1)行至最后一行所排列的元素,如下列方程式7所示。
Figure BDA0002608173220000072
第二奇偶校验生成部分220可以被配置为包括变换矩阵(trans matrix)逻辑电路221、第二矩阵乘法器222和矩阵加法器223。变换矩阵逻辑电路221可以输出变换矩阵Trans_Matrix,所述变换矩阵Trans_Matrix用于利用第一奇偶校验矩阵PA1来计算第二奇偶校验矩阵PA2。在用于生成变换矩阵Trans_Matrix的过程中,在第二错误校正模式中使用的第二编码矩阵Encoding_Matrix2可以由下列方程式8表示。
Encoding_Matrix2=[address(check2)]-1×[address(data2)]
(方程式8)
在方程式8中,[address(check2)]-1表示矩阵[address(check2)]的逆矩阵。矩阵[address(check2)]可以由以下方程式9表示。
Figure BDA0002608173220000073
在方程式9中,矩阵[address(check2)]可以具有“NP2”个行和“NP2”个列。即,在第二错误校正模式下,矩阵[address(check2)]的行数和列数可以等于第二奇偶校验符号的数目“NP2”。如同由方程式2所表示的矩阵[address(check1)],构成矩阵[address(check2)]的每个元素可以与奇偶校验符号相乘以提供在计算校验子时使用的常数。例如,可以将位于第一行和第一列的交叉点处的元素“AP0,0”乘以第一奇偶校验符号以提供在计算第一校验子时使用的常数。类似地,可以将位于第NP2行和第NP2列的交叉点处的元素“APNP2-1,NP2-1”乘以第NP2个奇偶校验符号以提供在计算第NP2个校验子时使用的常数。
在方程式8中,矩阵[address(data2)]可以由以下方程式10表示。
Figure BDA0002608173220000081
在方程式10中,矩阵[address(data2)]可以具有“NP2”个行和“NN”个列。也就是说,矩阵[address(data2)]中的行数可以等于在第二错误校正模式下的第二奇偶校验符号的数目“NP2”,并且矩阵[address(data2)]中的列数可以等于在第二错误校正模式下的数据符号的数目“NN”。如同由方程式3所表示的矩阵[address(data1)],构成矩阵[address(data2)]的每个元素可以与数据符号相乘以提供在计算校验子时使用的常数。例如,可以将位于第一行和第一列的交叉点处的元素“AD0,0”乘以第一数据符号以提供在计算第一校验子时使用的常数。类似地,可以将位于第NP2行和第NN列的交叉点处的元素“ADNN-1,NP2-1”乘以第NN个数据符号以提供在计算第NP2个校验子时使用的常数。
因为矩阵[address(check2)]具有“NP2×NP2”的矩阵形式,并且矩阵[address(data2)]具有“NP2×NN”的矩阵形式,所以第二编码矩阵Encoding_Matrix2可以具有“NP2×NN”的矩阵形式。如果方程式8中的矩阵[address(data2)]被表示为“[address(check11)]×[address(check1)]-1×[address(data1)]”,则方程式8的第二编码矩阵Encoding_Matrix2可以改写为以下方程式11。
Encoding_Matrix2=[address(check2)]-1×[address(check11)]×[address(check1)]-1×[address(data1)]
(方程式11)
在方程式11中,矩阵[address(check2)]-1可以具有“NP2×NP2”的矩阵形式,矩阵[address(check11)]可以具有“NP2×NP1”的矩阵形式,矩阵[address(check1)]-1可以具有“NP1×NP1”的矩阵形式,并且矩阵[address(data1)]可以具有“NP1×NN”的矩阵形式。在方程式11中,矩阵[address(check11)]可以对应于这样的的矩阵:其包括矩阵[address(check1)]中的一些行中所排列的元素。这是为了调整矩阵[address(check11)]中的行数使得矩阵[address(check11)]中的行数等于矩阵[address(check2)]-1中的列数以进行矩阵计算。因此,矩阵[address(check11)]可以包括方程式2的矩阵[address(check1)]中的从第一行至第NP2行所排列的元素,并且可以由以下方程式12表示。
Figure BDA0002608173220000091
由方程式12表示的矩阵[address(check11)]可以被改写为以下方程式13。
Figure BDA0002608173220000092
如方程式13所示,矩阵[address(check11)]可以被拆分成矩阵[address(check2)]和矩阵[Xmat],所述[矩阵[address(check2)]包括从矩阵[address(check11)]中的第一行至第NP2行所排列的元素而具有“NP2×NP2”的矩阵形式,所述矩阵[Xmat],包括矩阵[address(check11)]中的第(NP2+1)行至最后一行(即,第NP1行)所排列的元素而具有“NP2×(NP1-NP2)”的矩阵形式。矩阵[Xmat]中的所有元素可以是任意常数。
同时,在方程式11中,具有“NP1×NP1”的矩阵形式的矩阵[address(check1)]-1与具有“NP1×NN”的矩阵形式的矩阵[address(data1)]的乘积可以与由方程式1所表示的第一编码矩阵Encoding_Matrix1相同。因此,方程式11的第二编码矩阵Encoding_Matrix2可以改写为以下方程式14。
Encoding_Matrix2=[address(check2)]-1×[address(check11)×(Encoding_Matrix1)
(方程式14)
如果将方程式13代入方程式14,则第二编码矩阵Encoding_Matrix2可以由以下方程式15表示。
Encoding_Matrix2=[address(check2)]-1×[address(check2)|Xmat]]×(Encoding_Matrix1)
(方程式15)
在方程式15中,因为具有“NP2×NP2”的矩阵形式的矩阵[address(check2)]-1与具有“NP2×NP2”的矩阵形式的矩阵[address(check2)]的乘积为具有“NP2×NP2”的矩阵形式的同样矩阵(identical matrix),所以第二编码矩阵Encoding_Matrix2可以由以下方程式16表示。
Encoding_Matrix2=[Identical Matrix|Ymaxt]×(Encoding_Matrix1)
(方程式16)
根据方程式16,第二编码矩阵Encoding_Matrix2可以通过将矩阵[Identical_Matrix|Ymat]与第一编码矩阵Encoding_Matrix1相乘来计算。这意味着:包括在第二错误校正模式中使用的第二奇偶校验符号的第二奇偶校验矩阵PA2可以通过将矩阵[Identical_Matrix|Ymat]乘以第一奇偶校验矩阵PA1来计算。因此,第二奇偶校验矩阵PA2可以由以下方程式17表示。
Figure BDA0002608173220000101
在方程式17中,因为低阶第一奇偶校验矩阵PA1_1和高阶第一奇偶校验矩阵PA1_2是从第一奇偶校验生成部分210输出的第一奇偶校验矩阵PA1获得的,所以计算第二奇偶校验矩阵PA2可以仅需要矩阵[Ymat]。即,第二奇偶校验生成部分220的变换矩阵逻辑电路221可以计算并输出具有“NP2×(NP1-NP2)”的矩阵形式的矩阵[Ymat],其如方程式16所示。
第二奇偶校验生成部分220的第二矩阵乘法器222可以执行从变换矩阵逻辑电路221输出的矩阵[Ymat]与高阶第一奇偶校验矩阵PA1_2的乘法运算,从而输出中间矩阵(mid-matrix)[MM]。从第二矩阵乘法器222输出的中间矩阵[MM]可以具有“NP2×1”的矩阵形式。从第二矩阵乘法器222输出的中间矩阵[MM]可以被输入到矩阵加法器223。矩阵加法器223可以执行把从第一奇偶校验生成部分210输出的低阶第一奇偶校验矩阵PA1_1与从第二矩阵乘法器222输出的中间矩阵[MM]的加法运算,并且可以输出第二奇偶校验矩阵PA2作为加法运算的结果。第二奇偶校验矩阵PA2可以具有“NP2×1”的矩阵形式。第二奇偶校验矩阵PA2可以被输入到选择输出部分230(即,多路复用器)的第二输入端子。
多路复用器230可以响应于错误校正模式控制信号CS_ECL来选择并输出被输入到多路复用器230的第一输入端子的数据或被输入到多路复用器230的第二输入端子的数据。错误校正模式控制信号CS_ECL可以被输入到多路复用器230的控制信号输入端子。多路复用器230的第一输入端子可以接收从第一奇偶校验生成部分210输出的第一奇偶校验矩阵PA1。多路复用器230的第二输入端子可以接收从第二奇偶校验生成部分220输出的第二奇偶校验矩阵PA2。在一个实施例中,在第一错误校正模式下,可以将具有逻辑“高(1)”电平的错误校正模式控制信号CS_ECL输入到第一多路复用器230中。在这种情况下,多路复用器230可以输出被输入到多路复用器230的第一输入端子的第一奇偶校验矩阵PA1。相反,在第二错误校正模式下,可以将具有逻辑“低(0)”电平的错误校正模式控制信号CS_ECL输入到多路复用器230。在这种情况下,多路复用器230可以输出被输入到多路复用器230的第二输入端子的第二奇偶校验矩阵PA2。
图3是示出根据本公开的实施例的生成奇偶校验位的方法的流程图。参考图3,在步骤301处,原始数据可以被输入到存储器控制器110。在这种情况下,在步骤302处,可以利用第一编码矩阵Encoding_Matrix1来计算第一奇偶校验矩阵PA1。在步骤303处,可以确定错误校正模式是第一错误校正模式还是第二错误校正模式。当在步骤303处错误校正模式被确定为第一错误校正模式时,在步骤304处,可以从奇偶校验生成逻辑电路200输出在步骤302处计算出的第一奇偶校验矩阵PA1。当在步骤303处错误校正模式被确定为第二错误校正模式时,在步骤305处,可以利用第一编码矩阵Encoding_Matrix1和变换矩阵Trans_Matrix来计算第二奇偶校验矩阵PA2。步骤305的过程可以与参考图2所描述的相同。在步骤306处,可以从奇偶校验生成逻辑电路200输出在步骤305处计算出的第二奇偶校验矩阵PA2。
图4是示出根据本公开的实施例的存储模块400的框图。参考图4,存储模块400可以包括多个存储介质(例如,第一存储介质至第二十存储介质401-1,…,和401-20)和存储模块控制器410。在一个实施例中,第一存储介质至第二十存储介质401-1,…,和401-20中的每一个可以是存储芯片。第一存储介质至第二十存储介质401-1,…,和401-20之中的十六个存储介质(例如,第一至第十六存储介质401-1,…和401-16)可以用作其中储存数据的数据芯片。第一存储介质至第二十存储介质401-1,…,和401-20之中的四个存储介质(例如,第十七至第二十存储介质401-17,…和401-20)可以用作ECC芯片,其储存在第一错误校正模式下生成的奇偶校验位。用于储存在第一错误校正模式下生成的奇偶校验位的两个存储介质(例如,第十七至第二十存储介质401-17,…和401-20之中的第十七存储介质401-17和第十八存储介质401-18)可以用作用于储存在第二错误校正模式下生成的奇偶校验位的ECC芯片。因此,第十七存储介质401-17和第十八存储介质401-18可以储存在第一错误校正模式和第二错误校正模式下的奇偶校验位,而第十九存储介质401-19和第二十存储介质401-20仅可以储存在第一错误校正模式下的奇偶校验位。
因为在第一错误校正模式下储存奇偶校验位的ECC芯片的数量与在第二错误校正模式下储存奇偶校验位的ECC芯片的数量不同,所以第一错误校正模式下的错误校正能力也可以不同于在第二错误校正模式下的错误校正能力。在下面的描述中,可以假设以32比特位为单位执行对存储介质401-1和401-20中的每一个的数据访问,对储存元数据的存储介质401-1,…,和401-16的元数据数据访问以8比特位为单位执行,并且每个符号包括7个比特位。
因为对每个存储介质401-1和401-20的数据访问以32比特位为单位来执行,所以在每个存储介质中可以生成五个符号。五个符号之中的四个符号中的每一个可以包括7位数据,并且五个符号之中的剩余一个符号可以包括4比特位数据和3比特位任意数据。所述3比特位任意数据是用于使每个符号中所包括的比特位数一致的二进制数据,并且所述3比特位任意数据可以包括具有逻辑“低(0)”电平的比特位。储存数据的第一存储介质至第十六存储介质401-1,…,和401-16可以并行地耦接到存储模块控制器410,从而以82个符号为单位接收或输出数据。这82个符号可以包括80个数据符号和2个元数据符号。因为元数据包括8个比特位,所以这两个元数据符号中的一个可以包括1比特位元数据和6比特位任意数据。
在第一错误校正模式中,奇偶校验符号可以被储存在第十七存储介质至第二十存储介质401-17,…,和401-20中。第十七存储介质至第二十存储介质401-17,…,和401-20中的每一个可以以32比特位为单位接收或输出数据,并且8比特位的元数据可以被储存到第十七存储介质至第二十存储介质401-17,…,和401-20中。因此,在第一错误校正模式下,120比特位奇偶校验数据(即17个奇偶校验符号)可以被储存在第十七存储介质至第二十存储介质401-17,…,和401-20中。在第二错误校正模式下,奇偶校验符号可以被储存在两个存储介质中,例如,第十七存储介质401-17和第十八存储介质401-18。第十七存储介质401-17和第十八存储介质401-18中的每一个都可以以32比特位为单位接收或输出数据,并且8比特位的元数据可以被储存在第十七存储介质401-17和第十八存储介质401-18中。因此,在第二错误校正模式下,56比特位奇偶校验数据(即,8个奇偶校验符号)可以被储存在第十七存储介质401-17和第十八存储介质401-18中。在能够储存17个奇偶校验符号的第一错误校正模式下,能够校正8个数据符号的错误。相比之下,在能够储存8个奇偶校验符号的第二错误校正模式下,可以校正4个数据符号的错误。
存储模块控制器410可以与外部设备(例如,主机)通信,以控制对存储介质401-1,…,和401-20的访问。存储模块控制器410可以包括ECC逻辑电路420。ECC逻辑电路420可以包括ECC编码器422和ECC解码器424。当存储模块控制器410在写入模式下操作时,ECC编码器422可以执行ECC编码操作。在存储模块控制器410在读取模式下操作时,ECC解码器424可以执行ECC解码操作。ECC编码器422和ECC解码器424可以分别与参考图1描述的ECC编码器122和ECC解码器124具有相同的配置。因此,为避免重复说明,下文对ECC编码器422和ECC解码器424将不再赘述。
图5示出了包括在图4的ECC编码器422中的奇偶校验生成逻辑电路500。参考图5,奇偶校验生成逻辑电路500可以包括第一奇偶校验生成部分510、第二奇偶校验生成部分520和多路复用器530。第一奇偶校验生成部分510可以生成具有“17×1”的矩阵形式的第一奇偶校验矩阵PA1。第一奇偶校验矩阵PA1中的17个元素中的每一个可以构成在第一错误校正模式下使用的第一奇偶校验符号。第二奇偶校验生成部分520可以利用从第一奇偶校验生成部分510输出的第一奇偶校验矩阵PA1来生成具有“8×1”的矩阵形式的第二奇偶校验矩阵PA2。第二奇偶校验矩阵PA2中的8个元素中的每一个可以构成在第二错误校正模式中使用的第二奇偶校验符号。因为第二奇偶校验矩阵PA2是利用第一奇偶校验矩阵PA1生成的,所以不论何种错误校正模式,第一错误校正生成部分510都可以进行操作。相比之下,第二奇偶校验生成部分520则仅可以在第二错误校正模式下操作。
第一奇偶校验生成部分510可以被配置为包括第一编码矩阵逻辑电路511、数据逆矩阵逻辑电路512和第一矩阵乘法器513。第一编码矩阵逻辑电路511可以输出如参考方程式1至方程式3所描述的具有“17×82”的矩阵形式的第一编码矩阵Encoding_Matrix1,并且其可以由以下方程式18来表示。
Figure BDA0002608173220000141
数据逆矩阵逻辑电路512可以输出如参考方程式4所描述的具有“82×1”的矩阵形式的数据逆矩阵Data_Inverse_Matrix,并且其可以由下列方程式19表示。
Figure BDA0002608173220000142
第一矩阵乘法器513可以执行:从第一编码矩阵逻辑电路511输出而具有“17×82”的矩阵形式的第一编码矩阵Encoding_Matrix1与从数据逆矩阵逻辑电路512输出而具有“82×1”的矩阵形式的数据逆矩阵Data_Inverse_Matrix的矩阵乘法,从而可以生成并输出具有“17×1”的矩阵形式的第一奇偶校验矩阵PA1。第一奇偶校验矩阵PA1可以由以下方程式20表示。
Figure BDA0002608173220000143
从第一矩阵乘法器513输出的具有“17×1”的矩阵形式的第一奇偶校验矩阵PA1可以被输入到多路复用器530的第一输入端子。另外,如参考方程式6和方程式7所述,从第一矩阵乘法器513输出的第一奇偶校验矩阵PA1可以被拆分成低阶第一奇偶校验矩阵PA1_1和高阶第一奇偶校验矩阵PA1_2,并且低阶第一奇偶校验矩阵PA1_1和高阶第一奇偶校验矩阵PA1_2可以被输入到第二奇偶校验生成部分520中所包括的相应的矩阵加法器523和第二矩阵乘法器522。低阶第一奇偶校验矩阵PA1_1可以具有“8×1”的矩阵形式,并且高阶第一奇偶校验矩阵PA1_2可以具有“9×1”的矩阵形式。低阶第一奇偶校验矩阵PA1_1和高阶第一奇偶校验矩阵PA1_2可以分别由以下方程式21和方程
式22表示。
Figure BDA0002608173220000151
Figure BDA0002608173220000152
第二奇偶校验生成部分520可以被配置为包括变换矩阵逻辑电路521、第二矩阵乘法器522和矩阵加法器523。如参考方程式8至方程式17所述,变换矩阵逻辑电路521可以输出变换矩阵Trans_Matrix[Ymat],其用于利用第一奇偶校验矩阵PA1来计算第二奇偶校验矩阵PA2。变换矩阵Trans_Matrix[Ymat]可以由以下方程式23表示。
Figure BDA0002608173220000153
第二奇偶校验生成部分520的第二矩阵乘法器522可以执行把从变换矩阵逻辑电路521输出的变换矩阵[Ymat]与高阶第一奇偶校验矩阵PA1_2的乘法运算,从而输出具有“8×1”的矩阵形式的中间矩阵[MM]。中间矩阵[MM]的计算过程可以由以下方程式24表示。
Figure BDA0002608173220000154
从第二矩阵乘法器522输出的中间矩阵[MM]可以被输入到矩阵加法器523。矩阵加法器523可以执行把从第一奇偶校验生成部分510输出的低阶第一奇偶校验矩阵PA1_1与从第二矩阵乘法器522输出的中间矩阵[MM]的加法运算,并且可以输出第二奇偶校验矩阵PA2作为加法运算的结果。计算第二奇偶校验矩阵PA2的过程可以通过以下方程式25来表示。
Figure BDA0002608173220000161
多路复用器530可以响应于错误校正模式控制信号CS_ECL来选择并输出被输入到多路复用器530的第一输入端子的数据或被输入到多路复用器530的第二输入端子的数据。多路复用器530的第一输入端子可以接收从第一奇偶校验生成部分510输出的第一奇偶校验矩阵PA1。多路复用器530的第二输入端子可以接收从第二奇偶校验生成部分520输出的第二奇偶校验矩阵PA2。在一个实施例中,在第一错误校正模式下,具有逻辑“高(1)”电平的错误校正模式控制信号CS_ECL可以被输入到多路复用器530。在这种情况下,多路复用器530可以输出被输入到多路复用器530的第一输入端子的第一奇偶校验矩阵PA1。相比之下,在第二错误校正模式下,具有逻辑“低(0)”电平的错误校正模式控制信号CS_ECL可以被输入到多路复用器530。在这种情况下,多路复用器530可以输出被输入到多路复用器530的第二输入端子的第二奇偶校验矩阵PA2。
根据上述实施例,可以利用在第一错误校正模式下用于错误校正的第一奇偶校验位来生成在第二错误校正模式下用于错误校正的第二奇偶校验位。因此,可以减少用于多个错误校正电平的奇偶校验生成逻辑电路的布局面积。
出于说明性目的,以上已经公开了所公开技术的实施例。本领域普通技术人员将理解,各种修改、添加和替换是可能的。尽管该专利文件包含许多细节,但是这些细节不应被解释为对本教导的范围或可要求保护的内容的限制,而应解释为对于本教导的特定实施例的可能特定的特征描述。在该专利文件中在不同的实施例的背景中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的背景中描述的各种特征也可以单独地在多个实施例中或以任何合适的子组合来实施。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初是这样要求保护的,但是在某些情况下能够从所要求保护的组合中去除该组合中的一个或更多个特征,并且所要求保护的组合可以指子组合或子组合的变型。

Claims (20)

1.一种奇偶校验生成逻辑电路,包括:
第一奇偶校验生成部分,其被配置为在具有第一错误校正能力的第一错误校正模式下针对原始数据生成第一奇偶校验位;和
第二奇偶校验生成部分,其被配置为在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
2.根据权利要求1所述的奇偶校验生成逻辑电路,进一步包括:选择输出部分,其被配置为选择性地输出所述第一奇偶校验位与所述第二奇偶校验位中的一个。
3.根据权利要求2所述的奇偶校验生成逻辑电路,
其中,所述选择输出部分包括多路复用器,所述多路复用器包括第一输入端子、第二输入端子、控制信号输入端子和输出端子;
其中,从所述第一奇偶校验生成部分输出的所述第一奇偶校验位被输入到所述多路复用器的所述第一输入端子;
其中,从所述第二奇偶校验生成部分输出的所述第二奇偶校验位被输入到所述多路复用器的所述第二输入端子;以及
其中,所述多路复用器被配置为响应于被输入到所述多路复用器的所述控制信号输入端子的错误校正模式控制信号,通过所述多路复用器的所述输出端子选择性地输出所述第一奇偶校验位与所述第二奇偶校验位中的一个。
4.根据权利要求1所述的奇偶校验生成逻辑电路,
其中,所述第一奇偶校验位包括多个第一奇偶校验符号;
其中,所述第二奇偶校验位包括多个第二奇偶校验符号;和
其中,所述第一奇偶校验符号的数量大于所述第二奇偶校验符号的数量。
5.根据权利要求1所述的奇偶校验生成逻辑电路,其中,当所述第一奇偶校验位由“NP1”个第一奇偶校验符号组成并且所述第二奇偶校验位由“NP2”个第二奇偶校验符号组成时,第一奇偶校验生成部分被配置为输出具有“NP1×1”的矩阵形式的第一奇偶校验矩阵,其中,“NP1”和“NP2”是自然数,并且“NP1”大于“NP2”。
6.根据权利要求5所述的奇偶校验生成逻辑电路,其中,所述第二奇偶校验生成部分被配置为接收具有“(NP1-NP2)×1”的矩阵形式的低阶第一奇偶校验矩阵和具有“NP2×1”的矩阵形式的高阶第一奇偶校验矩阵,这两种矩阵得自从所述第一奇偶校验生成部分输出的所述第一奇偶校验矩阵,并且所述第二奇偶校验生成部分被配置为输出具有“NP2×1”的矩阵形式的第二奇偶校验矩阵。
7.根据权利要求1所述的奇偶校验生成逻辑电路,其中,当所述原始数据由“NN”个数据符号组成时,所述第一奇偶校验由“NP1”个第一奇偶校验符号组成,并且所述第二奇偶校验由“NP2”个第二奇偶校验符号组成,其中,“NN”是自然数,“NP1”是自然数,“NP2”是自然数,所述第一奇偶校验生成部分包括:
第一编码矩阵逻辑电路,其被配置为输出具有“NP1×NN”的矩阵形式的第一编码矩阵;
数据逆矩阵逻辑电路,其被配置为输出具有“NN×1”的矩阵形式的数据逆矩阵;和
第一矩阵乘法器,其被配置为执行把所述数据逆矩阵与所述第一编码矩阵的乘法运算,以输出具有“NP1×1”的矩阵形式的第一奇偶校验矩阵。
8.根据权利要求7所述的奇偶校验生成逻辑电路,其中,所述第二奇偶校验生成部分包括:
变换矩阵逻辑电路,其被配置为输出具有“NP2×(NP1-NP2)”的矩阵形式的变换矩阵;
第二矩阵乘法器,其被配置为执行把从所述第一奇偶校验矩阵获得的具有“(NP1-NP2)×1”的矩阵形式的低阶第一奇偶校验矩阵与具有“NP2×(NP1-NP2)”的矩阵形式的变换矩阵的乘法运算,以输出具有“NP2×1”的矩阵形式的中间矩阵;和
矩阵加法器,其被配置为把从所述第一奇偶校验矩阵获得的具有“NP2×1”的矩阵形式的高阶第一奇偶校验矩阵加到所述中间矩阵,以输出具有“NP2×1”的矩阵形式的第二奇偶校验矩阵。
9.一种存储器控制器,其用于控制存储器件的写入操作,所述存储器控制器包括:
错误校正码ECC编码器,其包括奇偶校验生成逻辑电路,该电路被配置为生成用于原始数据的奇偶校验位,
其中,所述奇偶校验生成逻辑电路包括:
第一奇偶校验生成部分,其被配置为在具有第一错误校正能力的第一错误校正模式下生成第一奇偶校验位;和
第二奇偶校验生成部分,其被配置为在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
10.根据权利要求9所述的存储器控制器,其中,所述奇偶校验生成逻辑电路还包括:选择输出部分,其被配置为选择性地输出所述第一奇偶校验位与所述第二奇偶校验位中的一个。
11.根据权利要求10所述的存储器控制器,
其中,所述选择输出部分包括:多路复用器,其包括第一输入端子、第二输入端子、控制信号输入端子以及输出端子;
其中,从所述第一奇偶校验生成部分输出的所述第一奇偶校验位被输入到所述多路复用器的所述第一输入端子;
其中,从所述第二奇偶校验生成部分输出的所述第二奇偶校验位被输入到所述多路复用器的所述第二输入端子;以及
其中,所述多路复用器被配置为响应于被输入到所述多路复用器的所述控制信号输入端子的错误校正模式控制信号,通过所述多路复用器的所述输出端子来选择性地输出所述第一奇偶校验位与所述第二奇偶校验位中的一个。
12.根据权利要求9所述的存储器控制器,
其中,所述第一奇偶校验位包括多个第一奇偶校验符号;
其中,所述第二奇偶校验位包括多个第二奇偶校验符号;以及
其中,所述第一奇偶校验符号的数量大于所述第二奇偶校验符号的数量。
13.根据权利要求9所述的存储器控制器,其中,当所述第一奇偶校验由“NP1”个第一奇偶校验符号组成并且所述第二奇偶校验由“NP2”个第二奇偶校验符号组成时,所述第一奇偶校验生成部分被配置为输出具有“NP1×1”的矩阵形式的第一奇偶校验矩阵,其中,“NP1”和“NP2”是自然数,并且“NP1”大于“NP2”。
14.根据权利要求13所述的存储器控制器,其中,所述第二奇偶校验生成部分被配置为接收具有“(NP1-NP2)×1”的矩阵形式的低阶第一奇偶校验矩阵和具有“NP2×1”的矩阵形式的高阶第一奇偶校验矩阵,这两种矩阵是从由所述第一奇偶校验生成部分输出的所述第一奇偶校验矩阵获得的,并且所述第二奇偶校验生成部分被配置为输出具有“NP2×1”的矩阵形式的第二奇偶校验矩阵。
15.根据权利要求9所述的存储器控制器,其中,当所述原始数据由“NN”个数据符号组成时,所述第一奇偶校验由“NP1”个第一奇偶校验符号组成,并且所述第二奇偶校验由“NP2”个第二奇偶校验符号组成,其中,“NN”是自然数,“NP1”是自然数,“NP2”是自然数,所述第一奇偶校验生成部分包括:
第一编码矩阵逻辑电路,其被配置为输出具有“NP1×NN”的矩阵形式的第一编码矩阵;
数据逆矩阵逻辑电路,其被配置为输出具有“NN×1”的矩阵形式的数据逆矩阵;和
第一矩阵乘法器,其被配置为执行所述数据逆矩阵与所述第一编码矩阵的乘法运算,以输出具有“NP1×1”的矩阵形式的第一奇偶校验矩阵。
16.根据权利要求15所述的存储器控制器,其中,所述第二奇偶校验生成部分包括:
变换矩阵逻辑电路,其被配置为输出具有“NP2×(NP1-NP2)”的矩阵形式的变换矩阵;
第二矩阵乘法器,其被配置为执行把从所述第一奇偶校验矩阵获得的具有“(NP1-NP2)×1”的矩阵形式的低阶第一奇偶校验矩阵与具有“NP2×(NP1-NP2)”的矩阵形式的变换矩阵的乘法运算,以输出具有“NP2×1”矩阵形式的中间矩阵;和
矩阵加法器,其被配置为把从所述第一奇偶校验矩阵获得的具有“NP2×1”的矩阵形式的高阶第一奇偶校验矩阵加到所述中间矩阵,以输出具有“NP2×1”的矩阵形式的第二奇偶校验矩阵。
17.一种存储模块,其包括多个存储介质和用于控制对所述多个存储介质的访问的存储模块控制器,所述存储模块控制器包括:
错误校正码ECC编码器,其具有奇偶校验生成逻辑电路,该电路被配置为生成用于原始数据的奇偶校验位,
其中,所述奇偶校验生成逻辑电路包括:
第一奇偶校验生成部分,其被配置为在具有第一错误校正能力的第一错误校正模式下生成第一奇偶校验位;和
第二奇偶校验生成部分,其被配置为在具有第二错误校正能力的第二错误校正模式下利用所述第一奇偶校验位来生成第二奇偶校验位。
18.根据权利要求17所述的存储模块,其中,所述多个存储介质包括:
多个数据芯片,其被配置为储存数据;
多个第一ECC芯片,其被配置为储存所述第一奇偶校验位;和
多个第二ECC芯片,其被配置为储存所述第一奇偶校验位和所述第二奇偶校验位。
19.根据权利要求17所述的存储模块,其中,所述奇偶校验生成逻辑电路进一步包括:选择输出部分,其被配置为选择性地输出所述第一奇偶校验位与所述第二奇偶校验位中的一个。
20.根据权利要求17所述的存储模块,
其中,所述第一奇偶校验位包括多个第一奇偶校验符号;
其中,所述第二奇偶校验位包括多个第二奇偶校验符号;和
其中,所述第一奇偶校验符号的数量大于所述第二奇偶校验符号的数量。
CN202010745406.8A 2019-10-17 2020-07-29 奇偶校验生成电路、存储器控制器和含该电路的存储模块 Pending CN112687324A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0129436 2019-10-17
KR1020190129436A KR20210045875A (ko) 2019-10-17 2019-10-17 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법

Publications (1)

Publication Number Publication Date
CN112687324A true CN112687324A (zh) 2021-04-20

Family

ID=75445383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010745406.8A Pending CN112687324A (zh) 2019-10-17 2020-07-29 奇偶校验生成电路、存储器控制器和含该电路的存储模块

Country Status (3)

Country Link
US (1) US11171670B2 (zh)
KR (1) KR20210045875A (zh)
CN (1) CN112687324A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12039176B2 (en) * 2022-09-26 2024-07-16 Micron Technology, Inc. Providing multiple error correction code protection levels in memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727003A (en) * 1995-07-03 1998-03-10 Cirrus Logic, Inc. Method and apparatus for flash burst error correction
WO2011142133A1 (ja) * 2010-05-11 2011-11-17 エイシップ・ソリューションズ株式会社 誤り訂正符号処理方法及びその装置
WO2012072330A1 (en) * 2010-12-01 2012-06-07 International Business Machines Corporation Decoding encoded data containing integrated data and header protection
EP2492917A2 (en) * 2011-02-25 2012-08-29 Altera Corporation Error detection and correction circuitry
US20130332797A1 (en) * 2012-06-07 2013-12-12 Via Technologies, Inc. Memory controller
US20150178155A1 (en) * 2013-12-23 2015-06-25 Samsung Electronics Co., Ltd. Memory controller, storage device including the same and data encoding and decoding methods thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
JP6818666B2 (ja) 2017-09-20 2021-01-20 キオクシア株式会社 メモリシステム
KR20190054533A (ko) * 2017-11-14 2019-05-22 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR20210032810A (ko) * 2019-09-17 2021-03-25 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727003A (en) * 1995-07-03 1998-03-10 Cirrus Logic, Inc. Method and apparatus for flash burst error correction
WO2011142133A1 (ja) * 2010-05-11 2011-11-17 エイシップ・ソリューションズ株式会社 誤り訂正符号処理方法及びその装置
WO2012072330A1 (en) * 2010-12-01 2012-06-07 International Business Machines Corporation Decoding encoded data containing integrated data and header protection
CN103238139A (zh) * 2010-12-01 2013-08-07 国际商业机器公司 解码包含集成的数据和信头保护的编码数据
EP2492917A2 (en) * 2011-02-25 2012-08-29 Altera Corporation Error detection and correction circuitry
US20130332797A1 (en) * 2012-06-07 2013-12-12 Via Technologies, Inc. Memory controller
US20150178155A1 (en) * 2013-12-23 2015-06-25 Samsung Electronics Co., Ltd. Memory controller, storage device including the same and data encoding and decoding methods thereof

Also Published As

Publication number Publication date
US11171670B2 (en) 2021-11-09
US20210119647A1 (en) 2021-04-22
KR20210045875A (ko) 2021-04-27

Similar Documents

Publication Publication Date Title
US9128864B2 (en) Memory controller, storage device and error correction method
JP5913560B2 (ja) 低密度パリティチェック符号を使用する符号化および復号技法
US9075745B1 (en) System and method for adding a drive to a storage system having multiple drives
US8266495B2 (en) Systems and methods for performing concatenated error correction
KR20080106849A (ko) 재생 장치
US20170147433A1 (en) Memory controller and method of controlling memory controller
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
US10243588B2 (en) Error correction code (ECC) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
US20150229331A1 (en) Systems and Methods for Area Efficient Data Encoding
KR20140075434A (ko) 메모리 컨트롤러 및 그 동작방법
WO2015043840A2 (en) Memory module communications with a host processor in multiported memory configurations
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
KR101314232B1 (ko) 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱
CN112687324A (zh) 奇偶校验生成电路、存储器控制器和含该电路的存储模块
US10970166B2 (en) Memory system and method of controlling non-volatile memory
US8627183B1 (en) Systems and methods for storing variable rate product codes
US7823049B2 (en) Methods and apparatuses for generating parity symbols for data block
CN108352845B (zh) 用于对存储数据进行编码的方法以及装置
JP2023045450A (ja) シンドローム計算回路、誤り訂正回路およびメモリシステム
US20210058097A1 (en) Memory system and method for controlling non-volatile memory
US20150339183A1 (en) Controller, storage device, and control method
US20240126646A1 (en) Error processing circuit, memory and operation method of the memory
US12119841B2 (en) G-LDPC decoder and G-LDPC decoding method

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