CN113064547B - 有局部顺序信息的校验矩阵的保护的数据存取方法及设备 - Google Patents
有局部顺序信息的校验矩阵的保护的数据存取方法及设备 Download PDFInfo
- Publication number
- CN113064547B CN113064547B CN202011375928.XA CN202011375928A CN113064547B CN 113064547 B CN113064547 B CN 113064547B CN 202011375928 A CN202011375928 A CN 202011375928A CN 113064547 B CN113064547 B CN 113064547B
- Authority
- CN
- China
- Prior art keywords
- matrix
- bits
- sequential
- parity check
- codeword
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 421
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000015654 memory Effects 0.000 claims abstract description 240
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 149
- 230000036961 partial effect Effects 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000012937 correction Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000001514 detection method Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 13
- 230000008439 repair process Effects 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 55
- 229920000673 poly(carbodihydridosilane) Polymers 0.000 description 28
- 238000013507 mapping Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1575—Direct 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种使用借助于具有局部顺序信息的奇偶校验矩阵的数据保护的数据存取方法以及设备,诸如记忆装置、存储器控制器、及其解码电路。该数据存取方法可包括:响应于读取请求,开始自预定存储空间接收对应于该读取请求的受保护数据;产生该奇偶校验矩阵;依据码字进行基于该奇偶校验矩阵的校验子计算以产生并输出用于该码字的校验子;依据该校验子进行错误检测以产生并输出解码结果信号,并且依据该校验子进行错误位置解码以产生并输出错误位置;进行该码字的错误更正以更正该码字的于该错误位置的错误;以及依据自该受保护数据取得的码字进行进一步处理。本发明的方法及设备能确保该记忆装置在各种状况下均能妥善地运作,避免相关技术的问题。
Description
技术领域
本发明是关于存储器控制,尤指一种使用借助于具有局部顺序信息(partialsequential information)的一奇偶校验(parity check)矩阵的数据保护的数据存取方法、以及相关设备(apparatus)诸如一记忆装置、该记忆装置的一存储器控制器、以及该存储器控制器的一解码电路。
背景技术
近年来由于存储器的技术不断地发展,各种可携式以及非可携式记忆装置(例如:符合SD/MMC、CF、MS、XD或UFS标准的记忆卡;又例如:固态硬盘(solid state drive,SSD);又例如:符合UFS或EMMC标准的嵌入式(embedded)存储装置)被广泛地实施于诸多应用中。因此,在这些记忆装置中的存储器存取控制遂成为相当热门的议题。
以常用的NAND型快闪存储器而言,其主要可包括单阶细胞(single level cell,SLC)与多阶细胞(multiple level cell,MLC)两大类的快闪存储器。单阶细胞快闪存储器中的每个被当作记忆细胞(memory cell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。相较之下,多阶细胞快闪存储器中的每个被当作记忆细胞的晶体管的存储能力则被充分利用,其采用较高的电压来驱动,以通过不同位准的电压在一个晶体管中记录至少两比特(bit;也可称为“位”)的信息(诸如00、01、11、10)。理论上,多阶细胞快闪存储器的记录密度可以达到单阶细胞快闪存储器的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型快闪存储器的相关产业而言,是非常好的消息。
相较于单阶细胞快闪存储器,由于多阶细胞快闪存储器的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞快闪存储器很快地成为市面上的记忆装置竞相采用的主流。然而,多阶细胞快闪存储器的不稳定性所导致的问题也一一浮现。为了确保在记忆装置中对快闪存储器的存取控制能符合相关规范,快闪存储器的控制器通常备有某些管理机制以妥善地管理数据存取。
然而,具备上列管理机制的记忆装置仍有不足的地方。例如,在错误更正码(errorcorrection code,ECC)处理中的某种类型的编码/解码的期间,相关的矩阵乘法的计算需依靠预先计算的信息来避免编码/解码延迟,而该预先计算的信息会需要控制器集成电路的硬体架构中的某个容量的存储空间,其中该容量的存储空间可能非常庞大(例如针对具有庞大的码字长度的汉明码(Hamming code),该预先计算的信息诸如一个庞大的查找表在解码的期间可能是需要的)。然而,可能因此带来某些副作用。例如,由于控制器集成电路需要如不同记忆装置制造商所要求来支援各种错误更正码处理标准,控制器集成电路的内部存储空间可能被迫增加,造成相关成本的增加。因此,需要一种新颖的方法以及相关架构,以在没有副作用或较不会带来副作用的情况下改善记忆装置的效能。
发明内容
本发明的一目的在于提供一种使用借助于具有局部顺序信息的一奇偶校验(parity check)矩阵的数据保护的数据存取方法、以及相关设备(apparatus)诸如一记忆装置、该记忆装置的一存储器控制器、以及该存储器控制器的一解码电路,以解决上述问题。
本发明的另一目的在于提供一种使用借助于具有局部顺序信息的一奇偶校验矩阵的数据保护的数据存取方法、以及相关设备诸如一记忆装置、该记忆装置的一存储器控制器、以及该存储器控制器的一解码电路,以最佳化该记忆装置的效能。
本发明至少一实施例提供一种使用借助于具有局部顺序信息的一奇偶校验矩阵的数据保护的数据存取方法,其中该数据存取方法是可应用于(applicable to)一记忆装置的一存储器控制器。该记忆装置可包括该存储器控制器以及一非挥发性存储器(non-volatile memory,NV memory),而该非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。该数据存取方法可包括:响应于一读取请求,利用该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据;利用该存储器控制器中的一解码电路产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵(part-one matrix)包括一第一特殊列(column)、一第二特殊列、以及具有分别和多个顺序数值(sequential numbers)相对应的多个顺序列的矩阵元素(sequential columns of matrixelements)的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素(first portion of matrix elements)来载有(carry)一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素(second portion of matrix elements)来载有一第二预定值,其中该第一部分矩阵的最后两行(row)是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;利用该解码电路依据一码字(codeword)进行基于该奇偶校验矩阵的校验子(syndrome)计算以产生并输出用于该码字的一校验子,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;利用该解码电路依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;利用该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字;以及利用该存储器控制器依据自该受保护数据取得的该一或多个码字进行进一步处理。
除了上列方法外,本发明亦提供一种记忆装置,且该记忆装置包括一非挥发性存储器以及一存储器控制器。该非挥发性存储器是用来存储信息,其中该非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。该存储器控制器是耦接至该非挥发性存储器,且该存储器控制器是用来控制该记忆装置的运作。另外,该存储器控制器包括一处理电路,且该处理电路是用来依据来自一主装置(host device)的复数个主装置指令(host command)控制该存储器控制器,以容许该主装置通过该存储器控制器存取该非挥发性存储器。该存储器控制器还包括耦接至该处理电路的一错误更正码(errorcorrection code,ECC)电路,且该错误更正码电路是用来进行错误更正码处理。该错误更正码电路包括一解码电路,且该解码电路是用来借助于具有局部顺序信息的一奇偶校验矩阵进行解码,以供在数据存取期间的数据保护。例如,响应于一读取请求,该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据;该存储器控制器利用该解码电路产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;该存储器控制器利用该解码电路依据一码字进行基于该奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;该存储器控制器利用该解码电路依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;以及该存储器控制器利用该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字,以供依据自该受保护数据取得的该一或多个码字进行进一步处理。
除了上列方法外,本发明亦提供一种记忆装置的存储器控制器,其中该记忆装置包括该存储器控制器以及一非挥发性存储器。该非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。另外,该存储器控制器包括一处理电路,且该处理电路是用来依据来自一主装置的复数个主装置指令控制该存储器控制器,以容许该主装置通过该存储器控制器存取该非挥发性存储器。该存储器控制器还包括耦接至该处理电路的一错误更正码电路,且该错误更正码电路是用来进行错误更正码处理。该错误更正码电路包括一解码电路,且该解码电路是用来借助于具有局部顺序信息的一奇偶校验矩阵进行解码,以供在数据存取期间的数据保护。例如,响应于一读取请求,该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据;该存储器控制器利用该解码电路产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;该存储器控制器利用该解码电路依据一码字进行基于该奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;该存储器控制器利用该解码电路依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;以及该存储器控制器利用该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字,以供依据自该受保护数据取得的该一或多个码字进行进一步处理。
除了上列方法外,本发明亦提供一种记忆装置的存储器控制器的解码电路,该记忆装置包括该存储器控制器以及一非挥发性存储器,该存储器控制器包括该解码电路,该非挥发性存储器包括至少一非挥发性存储器组件,该解码电路包括一校验子计算器、耦接至该校验子计算器的一奇偶校验矩阵产生器、耦接至该校验子计算器的一错误位置解码器。例如,该校验子计算器是用来依据一码字进行基于一奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中响应于一读取请求,该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字。另外,该奇偶校验矩阵产生器是用来产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行。此外,该错误位置解码器,用来依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置。另外,该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字,以容许该存储器控制器依据自该受保护数据取得的该一或多个码字进行进一步处理。
本发明的方法以及相关设备能确保该记忆装置能在各种状况下均能妥善地运作,而不会遭遇到相关技术的问题。例如,该数据存取方法提供用于存取控制的多个控制方案。借助于本发明的方法以及相关设备,该记忆装置不会遭受相关技术中现有的问题,诸如内部存储空间的问题、成本增加的问题等。另外,由于该奇偶校验矩阵能以一局部规律(regular)结构来设计,因此查找表能被简化在某些方针(policy)中。类似地,用于编码的产生器矩阵能被实施于某些计数器中,而不是在一内建的大矩阵。
附图说明
图1为依据本发明一实施例的电子系统的示意图。
图2依据本发明一实施例绘示针对图1所示的记忆装置的错误更正码处理的某些运作以及该记忆装置中的某些相关组件。
图3依据本发明一实施例绘示一种数据存取方法的编码控制方案。
图4依据本发明一实施例绘示该数据存取方法的局部顺序控制方案。
图5依据本发明另一实施例绘示该数据存取方法的局部顺序控制方案。
图6为依据本发明一实施例的对应于该数据存取方法的解码电路的示意图。
图7依据本发明一实施例绘示在图6所示的解码电路中的校验子计算器的某些实施细节。
图8依据本发明一实施例绘示在图6所示的解码电路中的H产生器的某些实施细节。
图9依据本发明一实施例绘示在图8所示的H产生器中的列映射电路的某些实施细节。
图10依据本发明一实施例绘示在图6所示的解码电路中的错误位置解码器的某些实施细节。
图11绘示在图9所示的列映射电路中的判断电路的例子。
图12绘示在图10所示的错误位置解码器中的判断电路的例子。图13依据本发明一实施例绘示该数据存取方法的工作流程。
其中,附图标记说明如下:
10 电子系统
50 主装置
52 处理器
54 电源供应电路
100 记忆装置
110 存储器控制器
112 微处理器
112M 唯读存储器
112C 程式码
114 控制逻辑电路
115 HPCS型ECC电路
116 随机存取存储器
118 传输介面电路
120 非挥发性存储器
122-1、122-2~122-N、122-n0 非挥发性存储器组件
200 编码电路
m 通信信息
p(m) 校验码
pp(m) 局部校验码
y 码字
H 奇偶校验矩阵
M 第一部分矩阵
MT 转置矩阵
K 第二部分矩阵
K-1 反矩阵
(K-1)T 转置矩阵
a0、a1、a2、b0、b1、b2 矩阵元素
600 解码电路
610 校验子计算器
620 H产生器
630 错误位置解码器
yi 比特
in_cwd 输入码字信号
in_en 输入致能信号
syndrome 校验子
h_column 列
dec_result 解码结果信号
err_loc 错误位置
712 与门
714 互斥或门
716 多工器
718 正反器电路
in_0、in_1、D 输入端子
Q 输出端子
CLK 时钟端子
812 p比特加1计数器
814 与门
816 2比特加1计数器
818 判断电路
820 列映射电路
plus_1、plus_1’ 加1致能信号
Clear 清除信号
clk 时钟信号
sub_col_idx 子列索引
bank_idx 库索引
912、914、916、918、920 判断电路
1010、1022、1024、1026、 判断电路
1028、1030
1020 子电路
1210 加法器模组
1220 逐比特互斥或模组
1230 或门模组
1240 反向器
130 工作流程
S10、S20、S21、S22、S23、 步骤
S24、S25、S26、S27、S30
具体实施方式
图1为依据本发明一实施例的电子系统10的示意图,其中电子系统10可包括一主装置50以及一记忆装置100。主装置50可包括至少一处理器(例如一或多个处理器),其可统称为处理器52,且可还包括耦接至处理器52的一电源供应电路54。处理器52是用来控制主装置50的运作,而电源供应电路54是用来提供电源给处理器52以及记忆装置100,并且输出一或多个驱动电压给记忆装置100。记忆装置100可用来提供存储空间给主装置50,并且自主装置50取得该一或多个驱动电压以作为记忆装置100的电源。主装置50的例子可包括(但不限于):多功能移动电话(multifunctional mobile phone)、可穿戴式装置、平板计算机(tablet)以及个人计算机(personal computer)诸如桌上型计算机与膝上型计算机。记忆装置100的例子可包括(但不限于):固态硬盘(solid state drive,SSD)以及嵌入式(embedded)存储装置诸如符合通用快闪存储(Universal Flash Storage,以下简称“UFS”)或嵌入式多媒体卡(embedded Multimedia Card,eMMC)标准的嵌入式存储装置。依据本实施例,记忆装置100可包括一存储器控制器110以及一非挥发性存储器(non-volatilememory,NV memory)120,其中存储器控制器110是用来控制记忆装置100的运作以及存取非挥发性存储器120,而非挥发性存储器120是用来存储信息。非挥发性存储器120可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件),诸如复数个非挥发性存储器组件122-1、122-2、…及122-N,其中“N”可代表大于一的正整数。例如,非挥发性存储器120可为一快闪存储器,而非挥发性存储器组件122-1、122-2、…及122-N可为复数个快闪存储器晶片或复数个快闪存储器裸晶,但本发明不限于此。
如图1所示,存储器控制器110可包括一处理电路诸如一微处理器112、一存储单元诸如一唯读存储器(Read Only Memory,ROM)112M、一控制逻辑电路114、一数据保护电路诸如一高效能精巧尺寸(high performance compact size,HPCS)型错误更正码(errorcorrection code,ECC)电路(以下简称“HPCS型ECC电路”)115、一随机存取存储器(randomaccess memory,RAM)116、以及一传输介面电路118,其中上列组件可通过一汇流排彼此互相耦接。随机存取存储器116是以一静态随机存取存储器(Static RAM,SRAM)来实施,但本发明不限于此。随机存取存储器116可用来提供内部存储空间给存储器控制器110,例如,随机存取存储器116可用来作为一缓冲存储器以缓冲数据。另外,本实施例的唯读存储器112M是用来存储一程式码112C,而微处理器112是用来执行程式码112C以控制对非挥发性存储器120的存取。请注意,在某些例子中,程式码112C可被存储在随机存取存储器116或任何形式的存储器内。此外,该数据保护电路诸如HPCS型ECC电路115可保护数据及/或进行错误更正。传输介面电路118可符合一特定通信标准(例如UFS标准),并且可依据该特定通信标准进行通信,例如,为记忆装置100来与主装置50进行通信。
在本实施例中,主装置50可传送主装置指令(host command)与对应的逻辑位址至存储器控制器110来存取记忆装置100。存储器控制器110接收主装置指令与逻辑位址,并将主装置指令转译成存储器操作指令(可简称为操作指令),再以操作指令控制非挥发性存储器120读取、写入/编程非挥发性存储器120中于某些实体位址的记忆单位(例如数据页面),其中实体位址可对应于逻辑位址。当存储器控制器110对非挥发性存储器组件122-1、122-2、…及122-N中的任一非挥发性存储器组件122-n0(其中“n0”可表示区间[1,N]中的任一整数)进行一抹除(erase)运作时,非挥发性存储器组件122-n0的多个区块(block)中的至少一个区块可被抹除,其中该多个区块的每一区块可包括多个页面(例如数据页面),且一存取运作(例如读取或写入)可对一或多个页面进行,但本发明不限于此。
依据某些实施例,记忆装置100可实施为符合SD/MMC、CF、MS、XD或UFS标准的记忆卡,其中记忆装置100可通过一中介装置诸如一读卡机耦接至主装置50,但本发明不限于此。
图2依据本发明一实施例绘示针对图1所示的记忆装置100的错误更正码处理的某些运作以及记忆装置100中的某些相关组件。HPCS型ECC电路115可包括至少一编码电路(例如一或多个编码电路)诸如图2所示的编码电路200,且编码电路200可包括至少一编码器(例如一或多个编码器)诸如一汉明码(Hamming code)编码器,但本发明不限于此。HPCS型ECC电路115可对复数个通信信息(message;也可称为“消息”)进行错误更正码处理以产生复数个校验码(parity code),例如在一写入运作或一读取运作的期间,其中该复数个通信信息的每一通信信息包括一组通信信息比特,且该复数个校验码的每一校验码包括一组校验比特(parity bit)。以写入运作为例,当该复数个通信信息中的任一通信信息被发送至编码电路200中,编码电路200的通信信息输入以及通信信息输出可代表这个通信信息,以及编码电路200的校验输出(parity output)可代表对应于这个通信信息的校验码。HPCS型ECC电路115可产生包括有该复数个通信信息以及该复数个校验码(在图2中分别标示为“m”及“p(m)”以求简明)的一错误更正码组块(chunk)以作为一保护单元。例如,该错误更正码组块可还包括一或多个其他校验比特诸如一或多行(row)的校验比特,以保护该复数个通信信息以及该复数个校验码,其中该一或多行的校验比特可被附于(attached to)图2所示的该错误更正码组块中的多行的通信信息-校验码组合,但本发明不限于此。如图2所示,存储器控制器110可将一或多个组块写入或编程至于非挥发性存储器组件122-n0中的某个区块中的某个页面。由于非挥发性存储器120的架构可取决于非挥发性存储器制造商(例如快闪存储器制造商)的各种设计规则予以变化,因此在每个页面中的错误更正码组块的数量可对应地变化。
基于图1所示的架构,记忆装置100可为主装置50存储数据,而记忆装置100可响应于一主装置指令诸如来自主装置50的写入指令将该数据写入非挥发性存储器120中。在将该数据写入非挥发性存储器120的期间,HPCS型ECC电路115(例如编码电路200)可进行编码以产生一校验码的多个校验比特以保护一通信信息(例如该复数个通信信息中的任一者)的多个通信信息比特,其中该通信信息可对应于将被写入非挥发性存储器120的数据中的一组数据。另外,记忆装置100可响应于另一主装置指令诸如来自主装置50的读取指令来读取存储的数据,并且将自非挥发性存储器120读取的数据提供给主装置50。在自非挥发性存储器120读取存储的数据的期间,HPCS型ECC电路115(例如编码电路200)可取得该多个通信信息比特的读出版本以及该多个校验比特的读出版本。例如,HPCS型ECC电路115(例如编码电路200)可对该多个通信信息比特的读出版本进行编码以产生该多个校验比特的非读出版本,并且可判断该多个校验比特的非读出版本与该多个校验比特的读出版本是否相同,以检测该多个通信信息比特的读出版本是否正确,但本发明不限于此。当该多个校验比特的非读出版本与该多个校验比特的读出版本相同,HPCS型ECC电路115(例如编码电路200)可判断该多个通信信息的读出版本是正确的。因此,存储器控制器110可利用该多个通信信息比特的读出版本作为来自非挥发性存储器120的存储的数据中的该组数据,以供被传送或回传至主装置50。当该多个校验比特的非读出版本与该多个校验比特的读出版本之间有任何差异,HPCS型ECC电路115(例如编码电路200)可判断该多个通信信息比特的读出版本是不正确的,并且依据该多个校验比特的读出版本对该多个通信信息比特的读出版本进行错误更正,以产生该多个通信信息比特的更正版本。因此,存储器控制器110可利用该多个通信信息比特的更正版本作为来自非挥发性存储器120的存储的数据中的该组数据,以供被传送或回传至主装置50。基于图1所示的架构,尤其,图2所示的关于错误更正码处理的运作,存储于非挥发性存储器120的数据的各种错误能被避免。
图3依据本发明一实施例绘示一种使用借助于具有局部顺序信息的一奇偶校验(parity check)矩阵的数据保护的数据存取方法的一编码控制方案,其中该数据存取方法是可应用于(applicable to)图1所示的架构,尤其,记忆装置100、存储器控制器110以及HPCS型ECC电路115(例如编码电路200)。为便于理解,存储器控制器110如上所述可接收一写入指令,并且可自主装置50接收对应于该写入指令的数据(例如上述将被写入非挥发性存储器120的数据)。编码电路200可取得对应于该写入指令的数据中的至少一部分数据(例如复数组数据,诸如上述的该组数据)以作为该错误更正码组块的复数个通信信息{m},以通过编码电路200的HPCS型编码依据复数个通信信息{m}产生该错误更正码组块的复数个校验码{p(m)},其中复数个校验码{p(m)}分别对应于复数个通信信息{m}以供分别保护复数个通信信息{m}。例如,复数个通信信息{m}的各自的内容可取决于自主装置50接收的数据的内容予以变化。另外,存储器控制器110可将包括有复数个通信信息{m}以及复数个校验码{p(m)}的该错误更正码组块写入非挥发性存储器120。例如,关于复数个通信信息{m}中的任一通信信息m,该HPCS型编码的运作可包括:于通信信息m的至少一部分(例如一部分或全部)被发送至编码电路200之后,编码电路200开始依据通信信息m以及一奇偶校验矩阵H中的一第一部分矩阵(part-one matrix)M的转置矩阵(transpose matrix)MT来编码通信信息m以计算一局部校验码pp(m),其中第一部分矩阵是奇偶校验矩阵H的一第一子矩阵;于局部校验码pp(m)的至少一部分(例如一部分或全部)被产生之后,编码电路200可分别产生及/或载入奇偶校验矩阵H中的一第二部分矩阵(part-two matrix)K的反矩阵(inversematrix)K-1的多个局部矩阵{PM(K-1)},其中第二部分矩阵K是奇偶校验矩阵H的一第二子矩阵,且第二部分矩阵K的反矩阵K-1的至少一部分(例如一部分或全部),诸如反矩阵K-1的任一局部矩阵PM(K-1)(例如反矩阵K-1的局部矩阵PM(K-1)1、PM(K-1)2、PM(K-1)3等),可被预先准备以作为预先计算的信息;以及编码电路200将第二部分矩阵K的反矩阵K-1的局部矩阵{PM(K-1)}施加于局部校验码pp(m)以分别产生对应于通信信息m的校验码p(m)的多个子校验码(sub-parity code)(例如一第一子校验码p(m)1、以及后续的子校验码p(m)2、p(m)3等),并且分别输出校验码p(m)的该多个子校验码(例如子校验码p(m)1、p(m)2、p(m)3等),其中第一子校验码p(m)1可被输出为校验码p(m)的一起始部分。例如,该预先计算的信息可被产生并立刻使用,但本发明不限于此。在某些例子中,该预先计算的信息可被暂存于编码电路200中的一存储电路并于之后再使用。
为便于理解,包括有通信信息m以及校验码p(m)的码字y、包括有第一部分矩阵M以及第二部分矩阵K的奇偶校验矩阵H、以及奇偶校验矩阵H中的第二部分矩阵K的反矩阵K-1可如图3所示。码字y可用具有一单一行以及n列的1×n矩阵来表示,其中m可代表一正整数。在码字y中,通信信息m可用具有一单一行以及k列的1×k矩阵来表示,以及校验码p(m)可用具有一单一行以及r列(例如r=n-k)的1×r矩阵来表示,其中k以及r可分别代表正整数。另外,奇偶校验矩阵H可用具有r行以及n列的r×n矩阵来表示。在奇偶校验矩阵H中,第一部分矩阵M可用具有r行及k列的r×k矩阵来表示,以及第二部分矩阵K可用具有r行及r列的r×r矩阵来表示。请注意,奇偶校验矩阵H可被妥善地设计,例如设计使其包括载有局部顺序信息的矩阵元素,以供提升编码效能,但本发明不限于此。
奇偶校验矩阵H中的第一部分矩阵M以及第二部分矩阵K的内容可依据存储器控制器110的制造商的某些预定规则来决定。例如,奇偶校验矩阵H的每一列应包括至少一(例如一或多个)非零(non-zero)矩阵元素诸如1,以及在奇偶校验矩阵H中的任两列应互相不同。尤其,第一部分矩阵M可被配置成具有一组对应于局部规律结构的列(例如一或多组的局部顺序列),以及第二部分矩阵K可被配置成具有一组对应于规律结构的列,但本发明不限于此。第一部分矩阵M以及反矩阵K-1可被预先准备好,以供对通信信息m编码时使用以产生对应于通信信息m的校验码p(m)。
依据本实施例,pp(m)=mMT且p(m)=pp(m)(K-1)T。由于反矩阵K-1的转置矩阵(K-1)T可通过转置反矩阵K-1来取得,尤其,通过以反矩阵K-1的对角线为基准对反矩阵K-1作翻转,所以转置矩阵(K-1)T可具有和反矩阵K-1相同的矩阵元素,除了这个差异:因为在转置反矩阵K-1的期间以对角线为基准对反矩阵K-1作翻转的翻转后配置。因此,编码电路200可用翻转后配置的方式直接地使用反矩阵K-1的任一局部矩阵PM(K-1)(例如在局部矩阵PM(K-1)中的复数个行,诸如其内的行向量)以作为转置矩阵(K-1)T内的对应的局部矩阵(例如在该对应的局部矩阵中的复数个列,诸如其内的列向量),例如,通过依据该翻转后配置将在局部矩阵PM(K-1)中的任一矩阵元素选择为在该对应的局部矩阵中的一对应的矩阵元素。
关于通信信息m、局部校验码pp(m)、及校验码p(m)之间的关系的某些实施细节可说明如下:
令yH=0;
其中他们在二进制的情况下是相同的;
令pp(m)为该局部校验码,其中pp(m)=mMT;
其中第一部分矩阵M以及反矩阵K-1可被预先准备好,以供在编码期间被使用,以及第一部分矩阵M的至少一部分(例如一部分或全部)以及反矩阵K-1的至少一部分(例如一部分或全部)可被预先存储在编码电路200内,例如,在存储器控制器110的生产阶段被存储为HPCS型ECC电路115中的硬体码(例如唯读存储器码),但本发明不限于此。
依据某些实施例,记忆装置100(例如存储器控制器110)可利用主装置50的一部分存储器空间,诸如主装置50中的一存储器(例如随机存取存储器)的空间,作为记忆装置100的外部存储空间,以供记忆装置100的管理的使用。尤其,记忆装置100(例如存储器控制器110)可发送记忆装置100的内部信息给主装置50以被存储至该外部存储空间(例如主装置50的该存储器中)中,并且可在需要时自该外部存储空间取得或取回该内部信息的至少一部分(例如一部分或全部)。另外,图2及图3中所示的实施例的任一者所描述的ECC处理可被施加于针对该外部存储空间的数据存取。以通信信息{m}为该内部信息的例子,记忆装置100(例如存储器控制器110)可将复数个通信信息{m}以及分别对应于复数个通信信息{m}的复数个校验码{p(m)}写入该外部存储空间,以作为主装置拥有信息(host-ownedinformation)诸如码字{y},其可分别包括复数个通信信息{m}以及复数个校验码{p(m)}。当需要时,记忆装置100(例如存储器控制器110)可自该外部存储空间读取码字{y}并且对码字{y}的读出版本进行ECC编码,以判断它们是否正确,尤其,如果一或多个错误发生则进行错误更正。例如,记忆装置100(例如存储器控制器110)可在它们正确的情况下自码字{y}的读出版本取得复数个通信信息{m},或者在进行错误更正的情况下自码字{y}的读出版本恢复复数个码字{m}。
图4依据本发明一实施例绘示该数据存取方法的一局部顺序控制方案。上述的奇偶校验矩阵H可被设计成图4所示的奇偶校验矩阵H(14x 8222),其中在奇偶校验矩阵H(14x 8222)中有对应于8222个比特的8222个列,而奇偶校验矩阵H(14x 8222)中的对应于8202个比特(例如((1+4095)*2+16)比特=8202比特)的前8208个列以及对应于14个比特的后续14个列可分别作为上述奇偶校验矩阵H中的第一部分矩阵M以及第二部分矩阵K的例子。针对包括有(8192+16)个比特的数据及14个比特的校验码的码字格式,该数据诸如通信信息m可具有8208个比特(例如(8192+16=8202),而该校验码诸如对应于通信信息m的校验码p(m)可具有14个比特。记忆装置100(例如存储器控制器110)可利用奇偶校验矩阵H(14x 8222)进行ECC处理(例如ECC编码以及ECC解码)。为便于理解,假设符号“bin(DN)BIT_COUNT”可代表数字DN以BIT_COUNT比特宽度来表示的二进制形式。例如,bin(16)12=12’b000000010000。又例如,bin(17)12=12’b000000010001。
如图4所示,第二部分矩阵K可包括一14x 14单位矩阵(identity matrix)诸如单位矩阵I(14x 14)。另外,第一部分矩阵M可包括具有分别和多个顺序数值(sequentialnumbers)相对应的多个顺序列的矩阵元素(sequential columns of matrix elements)的多个子矩阵,诸如带有{1,2,3,…,4095}的一第一12x4095矩阵(例如其列向量可分别指出{1,2,3,…,4095}的二进制形式(或二进制表示法))、带有{1,2,3,…,4095}的一第二12x4095矩阵(例如其列向量可分别指出{1,2,3,…,4095}的二进制形式)、以及带有{0,1,…,15}的一12x 16矩阵(例如其列向量可分别指出{0,1,…,15}的二进制形式),且可还包括一或多个特殊列的矩阵元素及/或一或多个固定行的矩阵元素,其中以上矩阵元素的组合可作为该局部顺序信息的例子,但本发明不限于此。依据本实施例,该一或多个特殊列的矩阵元素可包括一第一特殊列{2’b11,bin(16)12}诸如{1,1,{0,0,0,0,0,0,0,1,0,0,0,0}}以及一第二特殊列{2’b11,bin(17)12}诸如{1,1,{0,0,0,0,0,0,0,1,0,0,0,1}},且该一或多个固定行的矩阵元素可包括一第一固定行{1,{1,1,1,…,1},1,{0,0,0,…,0},{1,1,1,…,1}}以及一第二固定行{1,{0,0,0,…,0},1,{1,1,1,…,1},{1,1,1,…,1}}。针对在图4所示的奇偶校验矩阵H(14x 8222)的第一部分矩阵M(14x 8208)中的矩阵元素的配置,对应于上方12行的12个比特中的最上面的比特与最下面的比特可分别代表一最低有效比特(leastsignificant bit,LSB)以及一最高有效比特(most significant bit,MSB)。例如,在第一特殊列{2’b11,bin(16)12}中的最上面的比特应为bin(16)12的最低有效比特,诸如0;在第二特殊列{2’b11,bin(17)12}中的最上面比特应为bin(17)12的最低有效比特,诸如1;其余可依此类推。
带有{1,2,3,…,4095}的第一12x 4095矩阵可包括位于第一特殊列{2’b11,bin(16)12}的14个比特中的上方12个比特(例如bin(16)12)旁边紧接位置的(next to)第一组顺序列{bin(1)12,bin(2)12,bin(3)12,…,bin(4095)12}诸如{{0,0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1,1},…,{1,1,1,1,1,1,1,1,1,1,1,1}},带有{1,2,3,…,4095}的第二12x 4095矩阵可包括位于第二特殊列{2’b11,bin(17)12}的14个比特中的上方12个比特(例如bin(17)12)旁边紧接位置的第二组顺序列{bin(1)12,bin(2)12,bin(3)12,…,bin(4095)12}诸如{{0,0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1,1},…,{1,1,1,1,1,1,1,1,1,1,1,1}},以及带有{0,1,…,15}的12x 16矩阵可包括第三组顺序列{bin(0)12,bin(1)12,…,bin(15)12}诸如{{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,1},…,{0,0,0,0,0,0,0,0,1,1,1,1}}。
在ECC解码的期间,记忆装置100(例如存储器控制器110)可依据以下方程式检测校验子s:
s=HyT;
其中校验子s通常为错误比特所在位置的列索引。尤其,解码不需要很大的查找表。由于奇偶校验矩阵H(14x 8222)中的某些子矩阵分别包括载有顺序值(例如{1,2,3,...,4095}、{0,1,…,15}等)的顺序列,用来存储关于ECC处理的预先计算信息的该内部存储空间可被大幅地减少。例如,该查找表能被简化为某些方针。类似地,用于ECC编码的一产生器矩阵能被实施在某些计数器中而非内建在大型矩阵中。基于图4所示的局部顺序控制方案,HPCS型ECC电路115的内部存储空间能以致密/紧凑(compact)的方式来实施。
图5依据本发明另一实施例绘示该数据存取方法的该局部顺序控制方案。上述奇偶校验矩阵H可如图5所示用更普遍的方式被设计成一奇偶校验矩阵H(r x n),其中在奇偶校验矩阵H(r x n)中有对应于n个比特的n个列,而奇偶校验矩阵H(r x n)中的对应于k个比特(例如((1+(2p-1))*2+q)比特=k比特)的前k个列以及对应于r个比特(例如(p+2)比特=r比特)的后续r个列可分别作为上述奇偶校验矩阵H中的第一部分矩阵M以及第二部分矩阵K的例子。关于包括有(2p*2+q)比特的数据及(p+2)比特的校验码的一码字格式,该数据诸如通信信息m可具有(2p*2+q)比特,而该校验码诸如对应于通信信息m的校验码p(m)可具有(p+2)比特。数据长度k、校验码长度r、以及码字长度n可如下列表示:
k=(2p*2+q);
r=(p+2);以及
n=(k+r);
其中p及q可分别为正整数,而q≤2p–2。记忆装置100(例如存储器控制器110)可利用奇偶校验矩阵H(r x n)进行ECC处理(例如ECC编码以及ECC解码)。
如图5所示,奇偶校验矩阵H(r x n)的第二部分矩阵K(r x r)可包括一(p+2)x(p+2)单位矩阵诸如一单位矩阵I(r x r)。另外,奇偶校验矩阵H(r x n)的第一部分矩阵M(r x k)可包括具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,诸如带有{1,2,3,…,(2p-1)}的一第一p x(2p-1)矩阵(例如其列向量可分别指出{1,2,3,…,(2p-1)}的二进制形式)、带有{1,2,3,…,(2p-1)}的一第二p x(2p-1)矩阵(例如其列向量可分别指出{1,2,3,…,(2p-1)}的二进制形式)、以及带有{0,1,…,(q-1)}的一p x q矩阵(例如其列向量可分别指出{0,1,…,(q-1)}的二进制形式),且可还包括一或多个特殊列的矩阵元素及/或一或多个固定行的矩阵元素,其中以上矩阵元素的组合可作为该局部顺序信息的例子,但本发明不限于此。依据本实施例,该一或多个特殊列的矩阵元素可包括一第一特殊列{b2,a2,bin(q)p}以及一第二特殊列{b2,a2,bin(q+1)p},且该一或多个固定行的矩阵元素可包括一第一固定行{a2,{a0,a0,a0,…,a0},a2,{a1,a1,a1,…,a1},{a2,a2,a2,…,a2}}以及一第二固定行{b2,{b0,b0,b0,…,b0},b2,{b1,b1,b1,…,b1},{b2,b2,b2,…,b2}}。在这些固定行中,(ai0,bi0)不能为(0,0)(例如i0=0、1、或2),因此,在这些固定行中于同一列的一组矩阵元素ai0及bi0不能同时为0。另外,(ai0,bi0)≠(aj0,bj0)(例如i0=0、1、或2而j0=0、1、或2,且i0≠j0),因此在一列中的一组矩阵元素(a2,b2)中的任两组、在另一列中的一组矩阵元素(a1,b1)、以及在又另一列中的一组矩阵元素(a0,b0)在这些固定行中不能为相同的。关于在图5所示的奇偶校验矩阵H(r x n)的第一部分矩阵M(r x k)中的矩阵元素的配置,对应于前p行的p个比特中的最上面的比特与最下面的比特可分别代表一最低有效比特以及一最高有效比特。例如,在第一特殊列{b2,a2,bin(q)p}中的最上面的比特应为bin(q)p的最低有效比特,其中如果q为偶数,这个最低有效比特为0,否则,这个最低有效比特为1;在第二特殊列{b2,a2,bin(q+1)p}中的最上面比特应为bin(q+1)p的最低有效比特,其中如果q为偶数,这个最低有效比特为1,否则,这个最低有效比特为0;其余可依此类推。
带有{1,2,3,…,(2p-1)}的该第一p x(2p-1)矩阵可包括位于第一特殊列{b2,a2,bin(q)p}的(p+2)个比特中的上方p个比特(例如bin(q)p)旁边紧接位置的第一组顺序列{bin(1)p,bin(2)p,bin(3)p,…,bin(2p-1)p}诸如{{0,…,0,0,0,1},{0,…,0,0,1,0},{0,…,0,0,1,1},…,{1,…,1,1,1,1}},带有{1,2,3,…,(2p-1)}的该第二p x(2p-1)矩阵可包括位于第二特殊列{b2,a2,bin(q+1)p}的(p+2)个比特中的上方p个比特(例如bin(q+1)p)旁边紧接位置的第二组顺序列{bin(1)p,bin(2)p,bin(3)p,…,bin(2p-1)p}诸如{{0,…,0,0,0,1},{0,…,0,0,1,0},{0,…,0,0,1,1},…,{1,…,1,1,1,1}},以及带有{0,1,…,(q-1)}的p xq矩阵可包括第三组顺序列{bin(0)p,bin(1)p,…,bin(q-1)p}诸如{{0,…,0,0,1},{0,…,0,1,0},…,{0,…,0,1,…,1}}。
由于奇偶校验矩阵H(r x n)中的某些子矩阵分别包括载有顺序值(例如{1,2,3,...,(2p-1)}、{0,1,…,(q-1)}等)的顺序列,用于存储预先计算信息的内部存储空间能被大幅减少。例如,该查找表能被简化为某些方针。类似地,用于ECC编码的产生器矩阵能被实施在某些计数器中而非内建于大型矩阵。基于图5所示的局部顺序控制方案,HPCS型ECC电路115的内部存储空间能以致密/紧凑的方式来实施。
图6为依据本发明一实施例的对应于该数据存取方法的解码电路600的示意图。HPCS型ECC电路115可包括至少一解码电路(例如一或多个解码电路)诸如图6所示的解码电路600,且解码电路600可包括至少一解码器(例如一或多个解码器)诸如一汉明码(Hammingcode)解码器,但本发明不限于此。
如图6所示,解码电路600(例如上述至少一解码器诸如该汉明码解码器)可包括一校验子计算器610、一奇偶校验矩阵产生器诸如H产生器620、以及一错误位置解码器630。例如,接收到的码字y可被表示如下:y=[y0,y1,…,yn-1];
其中解码电路600可接收通过一输入码字信号in_cwd所载的码字y的比特{yi|i=0,1,…,(n-1)},且输入码字信号in_cwd的输入宽度可等于1(比特)。存储器控制器110(例如HPCS型ECC电路115)可利用一输入致能(enable)信号in_en来致能解码电路600的输入功能,以开始接收并处理码字y的比特{yi,i=0,1,…,(n-1)}。例如,该奇偶校验矩阵产生器诸如H产生器620可产生并输出奇偶校验矩阵H(r x n)的一列[r-1:0]h_column,诸如奇偶校验矩阵H(r x n)的列[r-1:0]h_column的r比特{h_column[r-1],…,h_column[1],h_column[0]},而校验子计算器610可接收奇偶校验矩阵H(r x n)的列[r-1:0]h_column。于是,该奇偶校验矩阵产生器诸如H产生器620可产生奇偶校验矩阵H(r x n)的全部的列(例如列[r-1:0]h_column),并且校验子计算器610可接收奇偶校验矩阵H(r x n)的全部的列(例如列[r-1:0]h_column),并且可依据码字y进行校验子计算以产生并输出一校验子[r-1:0]syndrome,诸如校验子[r-1:0]syndrome的r比特{syndrome[r-1],…,syndrome[1],syndrome[0]}。错误位置解码器630可接收校验子[r-1:0]syndrome,并且可依据校验子[r-1:0]syndrome进行错误检测以产生并输出一解码结果信号dec_result,尤其可依据校验子[r-1:0]syndrome进行错误位置解码以产生并输出一错误位置[r-1:0]err_loc。例如,解码结果信号dec_result可载有指出是否有任何错误发生的一解码结果。
为便于理解,以“[r-1:0]”起始的某个符号(symbol)的表示法(例如[r-1:0]h_column,[r-1:0]syndrome,[r-1:0]err_loc等)可依据硬体观点被用来宣告一汇流排宽度(例如r比特),但本发明不限于此。例如,假设r1及r2为非负整数并且r1>r2,以“[r1:r2]”结束的某个符号的表示法(例如syndrome[r1:r2]等)可被用来指称一组比特[r1:r2](例如{syndrome[r1],…,syndrome[r2]}等)。
图7依据本发明一实施例绘示在图6所示的解码电路600中的校验子计算器610的某些实施细节。校验子计算器610可包括多个校验子比特计算器,且这些校验子比特计算器可具有相同的架构。针对和图5所示的奇偶校验矩阵H(r x n)的列[r-1:0]h_column的某个比特(例如比特h_column[0])相对应的一校验子比特计算器,这个校验子比特计算器可包括一与(AND)门712(在图7中标示为“AND”以求简明)、一互斥或(XOR)门714(在图7中标示为“XOR”以求简明)、一多工器(multiplexer;在图7中标示为“MUX”以求简明)、以及一正反器(flip-flop)电路718(例如D型正反器(D flip-flop))。多工器716的两个输入端子in_0及in_1可分别耦接至正反器电路718输出端子Q以及互斥或门714的输出端子,而正反器718的输入端子D以及时钟端子CLK可分别耦接至多工器716的输出端子以及解码电路600的时钟信号clk。例如,与门712可对码字y的比特yi以及列[r-1:0]h_column的上述某个比特(例如比特h_column[0])进行一及运作以产生一及运作结果,而互斥或门714可对该及运作结果以及在正反器电路718的输出端子Q的一输出进行一互斥或运作以在其输出端子产生一互斥或运作结果。另外,多工器716可依据输入致能信号in_en进行多工或选择多工器716的两个输入端子in_0及in_1的各自的输入中的一者。例如,如果输入致能信号in_en载有逻辑值0以供指出一除能(disable)状态(例如输入致能信号in_en是在一低电压位准),多工器716可选择输入端子in_0的输入作为其输出;否则,在输入致能信号in_en载有逻辑值1以供指出一致能状态(例如输入致能信号in_en是在一高电压位准)的情况下,多工器716可选择输入端子in_1的输入作为其输出;但本发明不限于此。
图8依据本发明一实施例绘示在图6所示的解码电路600中的H产生器620的某些实施细节。H产生器620可包括一p比特加1(p bits plus 1)计数器812、一与门814(在图8中标示为“AND”以求简明)、一2比特加1(2bits plus 1)计数器816、一判断电路818(在图8中标示为“(bank_idx==2’d2&&sub_col_idx==q-1)||(sub_col_idx==2p-1)”以便于理解)、以及一列映射电路820。在下列描述中,于奇偶校验矩阵H(r x n)中的一组连续列可被称为一矩阵元素库(bank),或简称“库”。例如,库索引bank_idx的多个可能值0、1、2及3(例如分别为2’d0、2’d1、2’d2及2’d3)可分别指出图5所示的奇偶校验矩阵H(r x n)中的多个库#0、#1、#2及#3,其中该多个库#0、#1、#2及#3可代表奇偶校验矩阵H(r x n)中的自第一特殊列{b2,a2,bin(q)p}起始的一组2p个列、奇偶校验矩阵H(r x n)中的自第二特殊列{b2,a2,bin(q+1)p}起始的另一组2p个列、奇偶校验矩阵H(r x n)中的包括带有{0,1,…,(q-1)}的p x q矩阵的一组q个列、以及奇偶校验矩阵H(r x n)中的包括(p+2)x(p+2)单位矩阵的一组(p+2)个列;以及子列(sub-column)索引sub_col_idx的多个可能值0、1、2等(例如针对p=12的情况分别为12’d0、12’d1、12’d2等)可分别指出在图5所示的奇偶校验矩阵H(r x n)中的于多个库#0、#1、#2及#3的一个库中的一系列的列,其中sub_col_idx=0可指出在这个库中的最左边的列,并且sub_col_idx=1、2等可分别指出在这个库中的后续的列;但本发明不限于此。另外,p比特加1计数器812可产生子列索引sub_col_idx的p比特{sub_col_idx[p-1],…sub_col_idx[0]},因此子列索引sub_col_idx可被写为子列索引[p-1:0]sub_col_idx。类似地,2比特加1计数器816可产生库索引bank_idx的2比特{bank_idx[1],bank_idx[0]},因此库索引bank_idx可被写为库索引[1:0]bank_idx。
基于图8所示的架构,p比特加1计数器812以及2比特加1计数器816可分别产生子列索引[p-1:0]sub_col_idx以及库索引[1:0]bank_idx,并且列映射电路820可依据子列索引[p-1:0]sub_col_idx以及库索引[1:0]bank_idx进行列映射,以将它们转换为图5所示的奇偶校验矩阵H(r x n)的列[r-1:0]h_column。p比特加1计数器812以及2比特加1计数器816的每一者可进行一加1运作,尤其可通过以一增量诸如1增加一计数值来依据时钟信号clk进行计数,其中p比特加1计数器812以及2比特加1计数器816的各自的输出的各自的比特宽度可分别等于p比特以及2比特。例如,在H产生器620开始运作的瞬间,p比特加1计数器812以及2比特加1计数器816的各自的初始值可分别为零。p比特加1计数器812可接收输入致能信号in_en以作为其加1致能信号plus_1,并且在加1致能信号plus_1诸如输入致能信号in_en是在该致能状态(例如加1致能信号plus_1是在高电压位准)的情况下可依据时钟信号clk计数以产生子列索引[p-1:0]sub_col_idx(例如其p比特{sub_col_idx[p-1],…sub_col_idx[0]})。另外,与门814可对输入致能信号in_en以及判断电路818的输出进行一及运作,以产生并输出一及运作结果,而2比特加1计数器816可接收与门814的输出以作为其加1致能信号plus_1’,并且在载有该及运作结果的加1致能信号plus_1’是在一致能状态(例如加1致能信号plus_1’是在高电压位准)的情况下可依据时钟信号clk计数以产生库索引[1:0]bank_idx(例如其2比特{bank_idx[1],bank_idx[0]})。依据本实施例,如果清除(clear)信号Clear诸如判断电路818的输出载有逻辑值1以供指出一清除状态(例如清除信号Clear是在高电压位准),p比特加1计数器812可将子列索引[p-1:0]sub_col_idx复位为该初始值诸如零,其中由于加1致能信号plus_1’可暂时被设为其致能状态,因此2比特加1计数器816可开始计数,尤其可计数一次以将库索引[1:0]bank_idx增加1;否则,在清除信号Clear诸如判断电路818的输出载有一逻辑值0以供指出一非清除状态(例如清除信号Clear是在低电压位准)的情况下,p比特加1计数器812可正常地运作(例如继续计数),其中由于加1致能信号plus_1’可被设为其除能状态,因此2比特加1计数器816可暂停计数而不增加库索引[1:0]bank_idx。
针对多个库#0、#1、#2及#3之间的切换控制,判断电路818可判断((bank_idx==2’d2&&sub_col_idx==q-1)||(sub_col_idx==2p-1))为真(True)或假(False),尤其可进行((bank_idx==2’d2&&sub_col_idx==q-1)||(sub_col_idx==2p-1))的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出((bank_idx==2’d2&&sub_col_idx==q-1)||(sub_col_idx==2p-1))为真或假。由于这个逻辑值是用来当作清除信号Clear的逻辑值,当H产生器620已完成产生在一目前库(例如多个库#0、#1、#2及#3中的任一者)中的全部的列时,p比特加1计数器812可将子列索引[p-1:0]sub_col_idx复位为该初始值诸如零,并且H产生器620可自该目前库切换至下一个库(例如多个库#0、#1、#2及#3中的该目前库的下一个)。例如,在完成产生于库#0中的全部的列的一第一时间点时,(sub_col_idx==2p-1)为真,而判断电路818的输出所载有的逻辑值自0改变为1,其可触发自库#0切换至库#1,其中这个逻辑值在之后变回到0;在完成产生于库#1中的全部的列的一第二时间点时,(sub_col_idx==2p-1)为真,而判断电路818的输出所载有的逻辑值变为1,其可触发自库#1切换至库#2,其中这个逻辑值在之后变回到0;以及在完成产生于库#2中的全部的列的一第三时间点时,(bank_idx==2’d2&&sub_col_idx==q-1)为真,而判断电路818的输出所载有的逻辑值变为1,其可触发自库#2切换至库#3,其中这个逻辑值在之后变回到0;但本发明不限于此。如此一来,在产生该目前库的列的期间,子列索引[p-1:0]sub_col_idx可自0变化至对应于该目前库的一预定值(例如对应于库#0及#1中的任一者的(2p-1)、或者对应于库#2的(q-1))。
由于产生图5所示的奇偶校验矩阵H(r x n)的全部的列所需要的时间可对应于接收码字y的时间长度(例如时钟信号clk的n个周期)或对应于码字长度n,因此存储器控制器110(例如HPCS型ECC电路115)可依据时钟信号clk进行计数以判断完成产生图5所示的奇偶校验矩阵H(r x n)的最后一列的时间点,并且可控制输入致能信号in_en在这个时间点自该致能状态切换至该除能状态,以使H产生器620正确地产生并输出图5所示的奇偶校验矩阵H(rx n)的最后一列。
图9依据本发明一实施例绘示在图8所示的H产生器620中的列映射电路820的某些实施细节。列映射电路820可包括多个判断电路912、914、916、918及920(在图9中分别标示“bank_idx==2’d3”、“(bank_idx==2’d0)&&(sub_col_idx==0)”、“(bank_idx==2’d1)&&(sub_col_idx==0)”、“(bank_idx==2’d0)”以及“(bank_idx==2’d1)”以便于理解),并且这些判断电路912、914、916、918及920可分别用逻辑电路来实施,但本发明不限于此。基于图9所示的架构,列映射电路820可对库索引[1:0]bank_idx及子列索引[p-1:0]sub_col_idx中的一或多个索引进行列映射以将该一或多个索引转换为图5所示的奇偶校验矩阵H(r x n)的列[r-1:0]h_column。
例如,判断电路912可判断(bank_idx==2’d3)是真或假,尤其可进行(bank_idx==2’d3)的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(bank_idx==2’d3)为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路912可触发列映射电路820输出(1’b1<<sub_col_idx)以作为列[r-1:0]h_column(在图9中标示为“h_column=(1’b1<<sub_col_idx)”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路912可触发判断电路914的判断运作;判断电路914可判断((bank_idx==2’d0)&&(sub_col_idx==0))是真或假,尤其可进行((bank_idx==2’d0)&&(sub_col_idx==0))的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出((bank_idx==2’d0)&&(sub_col_idx==0))为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路914可触发列映射电路820输出第一特殊列{b2,a2,bin(q)p}以作为列[r-1:0]h_column(在图9中标示为“h_column={b2,a2,bin(q)p}”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路914可触发判断电路916的判断运作;判断电路916可判断((bank_idx==2’d1)&&(sub_col_idx==0))是真或假,尤其可进行((bank_idx==2’d1)&&(sub_col_idx==0))的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出((bank_idx==2’d1)&&(sub_col_idx==0))为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路916可触发列映射电路820输出第二特殊列{b2,a2,bin(q+1)p}以作为列[r-1:0]h_column(在图9中标示为“h_column={b2,a2,bin(q+1)p}”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路916可触发判断电路918的判断运作;判断电路918可判断(bank_idx==2’d0)是真或假,尤其可进行(bank_idx==2’d0)的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(bank_idx==2’d0)为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路918可触发列映射电路820输出局部顺序列{b0,a0,sub_col_idx}以作为列[r-1:0]h_column(在图9中标示为“h_column={b0,a0,sub_col_idx}”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路918可触发判断电路920的判断运作;以及判断电路920可判断(bank_idx==2’d1)是真或假,尤其可进行(bank_idx==2’d1)的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(bank_idx==2’d1)为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路920可触发列映射电路820输出局部顺序列{b1,a1,sub_col_idx}以作为列[r-1:0]h_column(在图9中标示为“h_column={b1,a1,sub_col_idx}”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路920可触发列映射电路820输出局部顺序列{b2,a2,sub_col_idx}作为列[r-1:0]h_column(在图9中标示为“h_column={b2,a2,sub_col_idx}”以求简明)。
依据某些实施例,列映射电路820可包括一移位器(shifter),并且可使用该移位器来移位数值1’b1(例如对数值1’b1进行左移位)sub_col_idx次以产生(1’b1<<sub_col_idx)。另外,列映射电路820可将第一特殊列{b2,a2,bin(q)p}以及第二特殊列{b2,a2,bin(q+1)p}存储在于列映射电路820中的存储单元内,以供列映射电路820在需要时取回。
图10依据本发明一实施例绘示在图6所示的解码电路600中的错误位置解码器630的某些实施细节。错误位置解码器630可包括多个判断电路1010、1022、1024、1026、1028及1030(在图10中分别标示为“syndrome==0”、“1s_count_of_syndrome==1”、“syndrome=={b2,a2,bin(q)p}”、“syndrome=={b2,a2,bin(q+1)p}”、“syndrome[r-1:r-2]=={b0,a0}”以及“syndrome[r-1:r-2]=={b1,a1}”以便于理解),并且这些判断电路1010、1022、1024、1026、1028及1030可分别用逻辑电路来实施,其中子电路1020可被视为一错误定位器(locator),但本发明不限于此。基于图10所示的架构,错误位置解码器630可解码校验子[r-1:0]syndrome以产生载有该解码结果的解码结果信号dec_result,尤其可对校验子[r-1:0]syndrome进行错误位置解码,以判断错误诸如一单一比特错误的错误位置[r-1:0]err_loc。
例如,判断电路1010可判断(syndrome==0)为真或假,尤其可进行(syndrome==0)的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(syndrome==0)为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路1010可触发错误位置解码器630以输出载有指出无错误的解码结果的解码结果信号dec_result(在图10中标示为“dec_result=0”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路1010可触发错误位置解码器630以输出载有指出有错误(例如单一比特错误)的解码结果的解码结果信号dec_result(在图10中标示为“dec_result=1”以求简明),并且可触发判断电路1022的判断运作;假设符号1s_count_of_syndrome代表校验子[r-1:0]syndrome的1的计数(例如在r比特{syndrome[r-1],…,syndrome[1],syndrome[0]}中的所有的具有数值1的比特的数量),判断电路1022可判断(1s_count_of_syndrome==1)为真或假,尤其可进行(1s_count_of_syndrome==1)的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(1s_count_of_syndrome==1)为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路1022可触发错误位置解码器630以输出k加上在校验子[r-1:0]syndrome中的1的索引,诸如数据长度k与在校验子[r-1:0]syndrome的r比特{syndrome[r-1],…,syndrome[1],syndrome[0]}中的具有数值1的比特syndrome[r0]的索引r0(例如r0可为区间[0,r-1]内的整数)的总和,以作为错误位置[r-1:0]err_loc(在图10中标示为“err_loc=k+在校验子中的1的索引”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路1022可触发判断电路1024的判断运作;判断电路1024可判断(syndrome=={b2,a2,bin(q)p})为真或假,尤其可进行(syndrome=={b2,a2,bin(q)p})的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(syndrome=={b2,a2,bin(q)p})为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路1024可触发错误位置解码器630以输出0作为错误位置[r-1:0]err_loc(在图10中标示为“err_loc=0”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路1024可触发判断电路1026的判断运作;判断电路1026可判断(syndrome=={b2,a2,bin(q+1)p})为真或假,尤其可进行(syndrome=={b2,a2,bin(q+1)p})的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(syndrome=={b2,a2,bin(q+1)p})为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路1026可触发错误位置解码器630以输出2p作为错误位置[r-1:0]err_loc(在图10中标示为“err_loc=2p”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路1026可触发判断电路1028的判断运作;判断电路1028可判断(syndrome[r-1:r-2]=={b0,a0})为真或假,尤其可进行(syndrome[r-1:r-2]=={b0,a0})的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(syndrome[r-1:r-2]=={b0,a0})为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路1028可触发错误位置解码器630以输出(0+syndrome[p-1:0])(例如syndrome[p-1:0])作为错误位置[r-1:0]err_loc(在图10中标示为“err_loc=0+syndrome[p-1:0]”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路1028可触发判断电路1030的判断运作;以及判断电路1030可判断(syndrome[r-1:r-2]=={b1,a1})为真或假,尤其可进行(syndrome[r-1:r-2]=={b1,a1})的计算以产生并输出一对应的逻辑值,诸如逻辑值1或0,以供分别指出(syndrome[r-1:r-2]=={b1,a1})为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路1030可触发错误位置解码器630以输出(2P+syndrome[p-1:0])作为错误位置[r-1:0]err_loc(在图10中标示为“err_loc=2P+syndrome[p-1:0]”以求简明),否则(例如对应于逻辑值0的“否”的情况),判断电路1030可触发错误位置解码器630输出((2P*2)+syndrome[p-1:0])作为错误位置[r-1:0]err_loc(在图10中标示为“err_loc=(2P*2)+syndrome[p-1:0]”以求简明)。
依据某些实施例,由于错误位置[r-1:0]err_loc可指出该单一比特错误的位置,解码电路600可依据码字y中的剩余比特对在这个位置的该单一比特错误进行错误更正,但本发明不限于此。
图11绘示在图9所示的列映射电路820中的判断电路912的例子。判断电路912可包括一与门(在图11中标示为“AND”以求简明),且该与门可对库索引bank_idx的两个比特{bank_idx[1],bank_idx[0]}进行一及运作,以产生并输出一及运作结果,例如一对应的逻辑值,诸如逻辑值1或0,以供分别指出(bank_idx[1]==bank_idx[0])为真或假,其中如果这个逻辑值为逻辑值1(例如对应于逻辑值1的“是”的情况),判断电路912可触发列映射电路820输出(1’b1<<sub_col_idx)作为列[r-1:0]h_column,否则(例如对应于逻辑值0的“否”的情况),判断电路912可触发判断电路914的判断运作。为简明起见,本实施例中与前述实施例类似的细节在此不重复赘述。
图12绘示在图10所示的错误位置解码器630中的判断电路1022的例子。假设2w-1≤r<2w,判断电路1022可包括具有多个加法器(w比特加法器)的加法器模组1210、具有w个互斥或门的逐比特(bitwise)互斥或模组1220(在图12中标示为“XOR”以求简明)、具有多个或门(OR gate)的或门模组1230(在图12中标示为“OR”以求简明)、以及一反向器1240。加法器模组1210的这些加法器,诸如这些w比特加法器,可被实施成图2所示的多个列的加法器,以用来对校验子[r-1:0]syndrome的全部比特进行相加以产生加法器模组1210的一w比特输出(例如加法器模组1210的全部的w比特输入的总和),其中校验子[r-1:0]syndrome的r比特{syndrome[0],syndrome[0]},{syndrome[2],syndrome[3]}、…、{syndrome[r-4],syndrome[r-3]}及{syndrome[r-2],syndrome[r-1]}的每一者可被接收为于该多个加法器中的一者(例如在图12的左手边所示的第一列的加法器中的任一者)的某一输入的w个比特中的一最低有效比特,而该w个比特的剩余比特为零,但本发明不限于此。只要能将校验子[r-1:0]syndrome的全部比特作相加,加法器模组1210的该多个加法器的配置可予以变化。另外,逐比特互斥或模组1220的该w个互斥或门可被实施成一列互斥或门,以供接收加法器模组1210的该w比特输出并且对加法器模组1210的该w比特输出以及1(例如w’d1,诸如带有十进位数值1的一组w比特,使得最低有效比特为1且其余比特为0)进行一逐比特互斥或运作,以产生逐比特互斥或模组1220的w比特输出。此外,或门模组1230的该多个或门可被实施成具有与加法器模组1210的该多个加法器类似的排列/配置的多个列的或门,以供对逐比特互斥或模组1220的该w比特输出的全部比特进行多个或运作以产生一或运作结果,其中这个w比特输出的该w个比特的每一者可被接收来当作该多个或门的其中一者的输入,但本发明不限于此。只要能对逐比特互斥或模组1220的该w比特输出的全部比特进行该多个或运作,或门模组1230的该多个或门的排列/配置可予以变化。如图12所示,反向器1240可反置(invert)该或运作结果以产生判断电路1022的该对应的逻辑值。为简明起见,本实施例中与前述实施例类似的细节在此不重复赘述。
图13依据本发明一实施例绘示该数据存取方法的工作流程1300。存储器控制器110可依据自预定存储空间读取受保护数据(例如ECC受保护数据,诸如码字{y})的一读取请求来触发工作流程1300的运作,其中该预定存储空间通常可被存储器控制器110存取。例如,该读取请求可代表记忆装置100的一外部请求,诸如来自主装置50的一主装置指令(例如读取指令),以及该预定存储空间可代表记忆装置100的内部存储空间,诸如非挥发性存储器120的存储空间。又例如,该读取请求可代表记忆装置100的一内部请求,以及该预定存储空间可代表记忆装置100的外部存储空间,诸如在以上的某些实施例中提及的主装置50的该部分存储器空间。
在步骤S10中,响应于该读取请求,存储器控制器110可开始自该预定存储空间接收对应于该读取请求的该受保护数据,其中该受保护数据可包括一或多个码字(例如码字{y})的读出版本,诸如码字{y}的读出版本,而该一或多个码字包括码字y。依据本实施例,如果没有错误发生,该一或多个码字诸如码字{y}的读出版本理应会等于没有错误的情况下的码字{y};否则,码字{y}的读出版本可为码字{y}的变更版本,其中码字{y}可以是依据码字{y}的读出版本而可被修复的。
在步骤S20中,存储器控制器110可利用HPCS型ECC电路115(例如解码电路600)对码字{y}的读出版本进行ECC处理(例如ECC解码)以修复码字{y}。
在步骤S21中,针对码字y(例如步骤S20中所述码字{y}中的任一者),HPCS型ECC电路115(例如解码电路600)可产生奇偶校验矩阵H(r x n),例如一列一列进行,并且依据码字y进行基于奇偶校验矩阵H(r x n)的校验子计算以针对码字y产生并输出校验子[r-1:0]syndrome。尤其,该奇偶校验矩阵产生器诸如H产生器620可产生奇偶校验矩阵H(r x n),且校验子计算器610可依据码字y进行基于奇偶校验矩阵H(r x n)的该校验子计算以针对码字y产生并输出校验子[r-1:0]syndrome。如图5所示,奇偶校验矩阵H(r x n)的第一部分矩阵M(r x k)可包括第一特殊列{b2,a2,bin(q)p}、第二特殊列{b2,a2,bin(q+1)p}、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,而该多个子矩阵例如:具有{1,2,3,…,(2p-1)}的该第一p x(2p-1)矩阵、具有{1,2,3,…,(2p-1)}的该第二p x(2p-1)矩阵、以及具有{0,1,…,(q-1)}的p x q矩阵。尤其,第一特殊列{b2,a2,bin(q)p}用第一特殊列{b2,a2,bin(q)p}中的一第一部分的矩阵元素(例如在上方p行中的上方p个矩阵元素,诸如在上方p行中的该p个比特)来载有一第一预定值bin(q)p,而第二特殊列{b2,a2,bin(q+1)p}用第二特殊列{b2,a2,bin(q+1)p}中的一第二部分的矩阵元素(例如在上方p行中的上方p个矩阵元素,诸如在上方p行中的该p个比特)来载有一第二预定值bin(q+1)p,其中第一部分矩阵M(r x k)的最后两行是分别载有两组预定比特的固定行(例如第一固定行{a2,{a0,a0,a0,…,a0},a2,{a1,a1,a1,…,a1},{a2,a2,a2,…,a2}}以及第二固定行{b2,{b0,b0,b0,…,b0},b2,{b1,b1,b1,…,b1},{b2,b2,b2,…,b2}}),而该第一部分的矩阵元素以及该第二部分的矩阵元素是在奇偶校验矩阵H(r x n)的第一部分矩阵M(r x k)的剩余的行。此外,奇偶校验矩阵H(r x n)的第二部分矩阵K(r x r)可包括(p+2)x(p+2)单位矩阵诸如单位矩阵I(r x r)。
在步骤S22中,针对这个码字y,HPCS型ECC电路115(例如解码电路600)可判断步骤S21的运作是否完成。如果是(例如奇偶校验矩阵H(r x n)的全部的列已被产生,而因此校验子[r-1:0]syndrome已被产生),进入步骤S23;如果否(例如奇偶校验矩阵H(r x n)的一或多个列尚未被产生),进入步骤S21以继续这些运作。
在步骤S23中,针对这个码字y,HPCS型ECC电路115(例如解码电路600,尤其,错误位置解码器630)可依据校验子[r-1:0]syndrome进行错误检测以产生并输出解码结果信号dec_result。
在步骤S24中,针对这个码字y,HPCS型ECC电路115(例如解码电路600,尤其,错误位置解码器630)可判断是否有任何错误发生,如解码结果信号dec_result所指出。如果是(例如错误位置解码器630输出载有指出有错误的解码结果的解码结果信号dec_result),进入步骤S25;如果否(例如错误位置解码器630输出载有指出无错误的解码结果的解码结果信号dec_result),进入步骤S27。
在步骤S25,针对这个码字y,HPCS型ECC电路115(例如解码电路600,尤其,错误位置解码器630)可依据校验子[r-1:0]syndrome进行错误位置解码以产生并输出错误位置[r-1:0]err_loc。
在步骤S26中,针对这个码字y,HPCS型ECC电路115(例如解码电路600)可进行码字y的错误更正,以更正码字y的位于错误位置[r-1:0]err_loc的错误,例如依据码字y的位于某些其他位置的各自的比特;并且因此修复码字y。
在步骤S27中,HPCS型ECC电路115(例如解码电路600)可判断是否需要处理下一个码字。如果需要处理下一个码字,进入步骤S21;否则,进入步骤S30。
在步骤S30中,记忆装置100(例如存储器控制器110)可依据自该受保护数据取得的该一或多个码字(例如码字{y})进行进一步处理。例如,在该读取请求代表记忆装置100的外部请求(诸如来自主装置50的主装置指令(例如读取指令))的情况下,存储器控制器110可回传该一或多个码字诸如码字{y}给主装置50。又例如,在该读取请求代表记忆装置100的内部请求的情况下,存储器控制器可利用该一或多个码字诸如码字{y}进行记忆装置100的一或多个其他运作,诸如判断自主装置50发送的快速参考信息是否已被有意或无意地变更(例如篡改)的运作,其中该快速参考信息可被存储器控制器110使用于记忆装置100中的存取运作以作为快速参考,以提升整体效能,但本发明不限于此。
依据本实施例,第一部分矩阵M(r x k)的多个子矩阵的其中一者,诸如带有{1,2,3,…,(2p-1)}的该第一p x(2p-1)矩阵,可包括位于该第一部分的矩阵元素(例如在上方p行中的上方p个矩阵元素)旁边紧接位置的第一组顺序列{bin(1)p,bin(2)p,bin(3)p,…,bin(2p-1)p},而第一部分矩阵M(r x k)的多个子矩阵的另一者,诸如带有{1,2,3,…,(2p-1)}的该第二p x(2p-1)矩阵,可包括位于该第二部分的矩阵元素(例如在上方p行中的上方p个矩阵元素)旁边紧接位置的第二组顺序列{bin(1)p,bin(2)p,bin(3)p,…,bin(2p-1)p}。此外,第一部分矩阵M(r x k)的多个子矩阵的又另一者,诸如带有{0,1,…,(q-1)}的p x q矩阵,可包括第三组顺序列{bin(0)p,bin(1)p,…,bin(q-1)p}。为简明起见,本实施例中的与前述实施例类似的细节在此不重复赘述。
为便于理解,该数据存取方法可由图13所示的工作流程1300来说明,但本发明不限于此。依据某些实施例,一或多个步骤可在图13所示的工作流程1300中新增、删除或修改。
依据某些实施例,奇偶校验矩阵H(r x n)的每一矩阵元素指出一比特的信息,且针对奇偶校验矩阵H(r x n)的每一列,下方的两个矩阵元素对应于两个比特,且剩余的矩阵元素诸如上方p个矩阵元素对应于p个比特。尤其,第一部分矩阵M(r x k)的该多个子矩阵的一者,诸如带有{1,2,3,…,(2p-1)}的该第一p x(2p-1)矩阵,可包括位于在第一特殊列{bin(q)p,a2,b2}的(p+2)个比特中的上方p个比特(例如bin(q)p)旁边紧接位置的第一组顺序列{bin(1)p,bin(2)p,bin(3)p,…,bin(2p-1)p}。另外,第一部分矩阵M(r x k)的该多个子矩阵的其他者,诸如带有{1,2,3,…,(2p-1)}的该第二p x(2p-1)矩阵,可包括位于在第二特殊列{bin(q+1)p,a2,b2}的(p+2)个比特中的上方p个比特(例如bin(q+1)p)旁边紧接位置的第二组顺序列{bin(1)p,bin(2)p,bin(3)p,…,bin(2p-1)p}。为简明起见,这些实施例中的与前述实施例类似的细节在此不重复赘述。
依据某些实施例,在第一部分矩阵M(r x k)的该多个子矩阵中的任一者中,载有顺序值的一组顺序列是通过解码电路600(例如该奇偶校验矩阵产生器诸如H产生器620)在ECC处理(例如ECC解码)的期间依据上述方针被依序地产生,而不是在ECC处理前被预先存储在解码电路600中,其中用来存储针对存储器控制器110中的ECC处理的预先计算信息的内部存储空间能被节省。为简明起见,这些实施例中的与前述实施例类似的细节在此不重复赘述。
依据某些实施例,第一特殊列{b2,a2,bin(q)p}、第二特殊列{b2,a2,bin(q+1)p}、以及该些固定行是被安排成使奇偶校验矩阵H(r x n)的任两列彼此相异并且使奇偶校验矩阵H(r x n)的每一列为非零,从而能避免存储器控制器110的故障。为简明起见,这些实施例中的与前述实施例类似的细节在此不重复赘述。
依据某些实施例,响应于一写入请求,存储器控制器110可利用编码电路200依据奇偶校验矩阵H(r x n)产生该受保护数据(例如通过依据奇偶校验矩阵H(r x n)对复数个通信信息{m}编码以产生对应于复数个通信信息{m}的复数个校验码{p(m)}并且将它们组合至码字{y}中),并且将该受保护数据写入该预定存储空间,其中该写入请求是该读取请求之前的请求。为简明起见,这些实施例中的与前述实施例类似的细节在此不重复赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种使用借助于具有局部顺序信息的一奇偶校验矩阵的数据保护的数据存取方法,其特征在于,该数据存取方法是可应用于一记忆装置的一存储器控制器,该记忆装置包括该存储器控制器以及一非挥发性存储器,该非挥发性存储器包括至少一非挥发性存储器组件,该数据存取方法包括:
响应于一读取请求,利用该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据;
利用该存储器控制器中的一解码电路产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;
利用该解码电路依据一码字进行基于该奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;
利用该解码电路依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;利用该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字;以及
利用该存储器控制器依据自该受保护数据取得的该一或多个码字进行进一步处理;
其中:
该奇偶校验矩阵中的每一矩阵元素指出一比特的信息,以及针对一正整数p,该第一部分矩阵的该多个子矩阵中的一者包括于该第一特殊列的(p+2)个比特中的上方p个比特旁边的紧接位置的一第一组顺序列;以及
该第一部分矩阵的该多个子矩阵中的所述一者是一第一p x(2p-1)矩阵,而该第一组顺序列分别载有多个顺序值{1,2,3,…,(2p-1)},其中第一组顺序列的一第一顺序列的p个矩阵元素分别载有1的二进制形式的p个比特,该第一组顺序列的一第二顺序列的p个矩阵元素分别载有2的二进制形式的p个比特,该第一组顺序列的一第三顺序列的p个矩阵元素分别载有3的二进制形式的p个比特,以及该第一组顺序列的一第(2p-1)顺序列的p个矩阵元素分别载有(2p-1)的二进制形式的p个比特。
2.如权利要求1所述的数据存取方法,其特征在于,该第一部分矩阵的该多个子矩阵中的另一者包括于该第一特殊列中的该第二部分的矩阵元素旁边的紧接位置的一第二组顺序列。
3.如权利要求2所述的数据存取方法,其特征在于,该第一部分矩阵的该多个子矩阵中的又一者包括一第三组顺序列。
4.如权利要求1所述的数据存取方法,其特征在于,该第一部分矩阵的该多个子矩阵中的另一者包括于该第二特殊列的(p+2)个比特中的上方p个比特旁边的紧接位置的一第二组顺序列。
5.如权利要求4所述的数据存取方法,其特征在于,该第一部分矩阵的该多个子矩阵中的所述另一者是一第二p x(2p-1)矩阵,而该第二组顺序列分别载有多个顺序值{1,2,3,…,(2p-1)}。
6.如权利要求1所述的数据存取方法,其特征在于,该第一部分矩阵的该多个子矩阵中的每一者包括分别载有多个顺序值的一组顺序列;以及在该组顺序列中的每一列中,一最上方矩阵元素以及一最下方矩阵元素分别代表该组顺序列载有的该多个顺序值中的一者的二进制形式的一最低有效比特以及一最高有效比特。
7.如权利要求1所述的数据存取方法,其特征在于,该奇偶校验矩阵中的每一矩阵元素指出一比特的信息;针对正整数p以及q,于该第一特殊列的(p+2)个比特中的上方p个比特代表q的二进制形式,而于该第二特殊列的(p+2)个比特中的上方p个比特代表(q+1)的二进制形式,其中q≤2p–2;以及该第一特殊列是该第一部分矩阵的前2p个列的一起始列,该第二特殊列是该第一部分矩阵的后续2p个列的一起始列,而该第一部分矩阵的剩余的列是该第一部分矩阵的于所述后续2p个列旁边的紧接位置的后续q个列。
8.如权利要求7所述的数据存取方法,其特征在于,该奇偶校验矩阵的一第二部分矩阵包括于所述后续q个列旁边的紧接位置的(p+2)个列。
9.如权利要求8所述的数据存取方法,其特征在于,该第二部分矩阵是单位矩阵。
10.如权利要求1所述的数据存取方法,其特征在于,该奇偶校验矩阵的一第二部分矩阵是单位矩阵。
11.如权利要求1所述的数据存取方法,其特征在于,于该第一部分矩阵的该多个子矩阵中的任一者,载有多个顺序值的一组顺序列是在错误更正码处理的期间被依序地产生,而不是在该错误更正码处理之前被预先存储在该解码电路中,从而节省该存储器控制器中的用来存储针对该错误更正码处理的预先计算的信息的内部存储空间。
12.如权利要求1所述的数据存取方法,其特征在于,该第一特殊列、该第二特殊列、及该多个固定行是被安排成使该奇偶校验矩阵中的任两列彼此相异,并且使该奇偶校验矩阵中的每一列为非零,从而避免该存储器控制器的故障。
13.如权利要求1所述的数据存取方法,其特征在于,还包括:
响应于一写入请求,利用该存储器控制器中的一编码电路依据该奇偶校验矩阵产生该受保护数据并且将该受保护数据写入该预定存储空间,其中该写入请求是该读取请求之前的请求。
14.一种记忆装置,其特征在于,包括:
一非挥发性存储器,用来存储信息,其中该非挥发性存储器包括至少一非挥发性存储器组件;以及
一存储器控制器,耦接至该非挥发性存储器,用来控制该记忆装置的运作,其中该存储器控制器包括:
一处理电路,用来依据来自一主装置的复数个主装置指令控制该存储器控制器,以容许该主装置通过该存储器控制器存取该非挥发性存储器;以及
一错误更正码电路,耦接至该处理电路,用来进行错误更正码处理,其中该错误更正码电路包括:
一解码电路,用来借助于具有局部顺序信息的一奇偶校验矩阵进行解码,以供在数据存取期间的数据保护;
其中:
响应于一读取请求,该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据;
该存储器控制器利用该解码电路产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;
该存储器控制器利用该解码电路依据一码字进行基于该奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;
该存储器控制器利用该解码电路依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;以及
该存储器控制器利用该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字,以供依据自该受保护数据取得的该一或多个码字进行进一步处理;
其中:
该奇偶校验矩阵中的每一矩阵元素指出一比特的信息,以及针对一正整数p,该第一部分矩阵的该多个子矩阵中的一者包括于该第一特殊列的(p+2)个比特中的上方p个比特旁边的紧接位置的一第一组顺序列;以及
该第一部分矩阵的该多个子矩阵中的所述一者是一第一p x(2p-1)矩阵,而该第一组顺序列分别载有多个顺序值{1,2,3,…,(2p-1)},其中第一组顺序列的一第一顺序列的p个矩阵元素分别载有1的二进制形式的p个比特,该第一组顺序列的一第二顺序列的p个矩阵元素分别载有2的二进制形式的p个比特,该第一组顺序列的一第三顺序列的p个矩阵元素分别载有3的二进制形式的p个比特,以及该第一组顺序列的一第(2p-1)顺序列的p个矩阵元素分别载有(2p-1)的二进制形式的p个比特。
15.如权利要求14所述的记忆装置,其特征在于,该第一部分矩阵的该多个子矩阵中的另一者包括于该第一特殊列中的该第二部分的矩阵元素旁边的紧接位置的一第二组顺序列。
16.如权利要求15所述的记忆装置,其特征在于,该第一部分矩阵的该多个子矩阵中的又一者包括一第三组顺序列。
17.一种记忆装置的存储器控制器,其特征在于,该记忆装置包括该存储器控制器以及一非挥发性存储器,该非挥发性存储器包括至少一非挥发性存储器组件,该存储器控制器包括:
一处理电路,用来依据来自一主装置的复数个主装置指令控制该存储器控制器,以容许该主装置通过该存储器控制器存取该非挥发性存储器;以及
一错误更正码电路,耦接至该处理电路,用来进行错误更正码处理,其中该错误更正码电路包括:
一解码电路,用来借助于具有局部顺序信息的一奇偶校验矩阵进行解码,以供在数据存取期间的数据保护;
其中:
响应于一读取请求,该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据;
该存储器控制器利用该解码电路产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;
该存储器控制器利用该解码电路依据一码字进行基于该奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;
该存储器控制器利用该解码电路依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;以及
该存储器控制器利用该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字,以供依据自该受保护数据取得的该一或多个码字进行进一步处理;
其中:
该奇偶校验矩阵中的每一矩阵元素指出一比特的信息,以及针对一正整数p,该第一部分矩阵的该多个子矩阵中的一者包括于该第一特殊列的(p+2)个比特中的上方p个比特旁边的紧接位置的一第一组顺序列;以及
该第一部分矩阵的该多个子矩阵中的所述一者是一第一p x(2p-1)矩阵,而该第一组顺序列分别载有多个顺序值{1,2,3,…,(2p-1)},其中第一组顺序列的一第一顺序列的p个矩阵元素分别载有1的二进制形式的p个比特,该第一组顺序列的一第二顺序列的p个矩阵元素分别载有2的二进制形式的p个比特,该第一组顺序列的一第三顺序列的p个矩阵元素分别载有3的二进制形式的p个比特,以及该第一组顺序列的一第(2p-1)顺序列的p个矩阵元素分别载有(2p-1)的二进制形式的p个比特。
18.如权利要求17所述的存储器控制器,其特征在于,该第一部分矩阵的该多个子矩阵中的另一者包括于该第一特殊列中的该第二部分的矩阵元素旁边的紧接位置的一第二组顺序列。
19.如权利要求18所述的存储器控制器,其特征在于,该第一部分矩阵的该多个子矩阵中的又一者包括一第三组顺序列。
20.一种记忆装置的存储器控制器的解码电路,其特征在于,该记忆装置包括该存储器控制器以及一非挥发性存储器,该存储器控制器包括该解码电路,该非挥发性存储器包括至少一非挥发性存储器组件,该解码电路包括:
一校验子计算器,用来依据一码字进行基于一奇偶校验矩阵的校验子计算以产生并输出用于该码字的一校验子,其中响应于一读取请求,该存储器控制器开始自预定存储空间接收对应于该读取请求的受保护数据,其中该受保护数据包括一或多个码字的一读出版本,且该一或多个码字包括该码字;
一奇偶校验矩阵产生器,耦接至该校验子计算器,用来产生该奇偶校验矩阵,其中该奇偶校验矩阵的一第一部分矩阵包括一第一特殊列、一第二特殊列、以及具有分别和多个顺序数值相对应的多个顺序列的矩阵元素的多个子矩阵,该第一特殊列用该第一特殊列中的一第一部分的矩阵元素来载有一第一预定值,以及该第二特殊列用该第二特殊列中的一第二部分的矩阵元素来载有一第二预定值,其中该第一部分矩阵的最后两行是分别载有两组预定比特的多个固定行,以及该第一部分的矩阵元素以及该第二部分的矩阵元素是在该奇偶校验矩阵的该第一部分矩阵的剩余的行;以及
一错误位置解码器,耦接至该校验子计算器,用来依据该校验子进行错误检测以产生并输出一解码结果信号,并且依据该校验子进行错误位置解码以产生并输出一错误位置;
其中该解码电路进行该码字的错误更正,以更正该码字的于该错误位置的一错误,以修复该码字,以容许该存储器控制器依据自该受保护数据取得的该一或多个码字进行进一步处理;
其中:
该奇偶校验矩阵中的每一矩阵元素指出一比特的信息,以及针对一正整数p,该第一部分矩阵的该多个子矩阵中的一者包括于该第一特殊列的(p+2)个比特中的上方p个比特旁边的紧接位置的一第一组顺序列;以及
该第一部分矩阵的该多个子矩阵中的所述一者是一第一p x(2p-1)矩阵,而该第一组顺序列分别载有多个顺序值{1,2,3,…,(2p-1)},其中第一组顺序列的一第一顺序列的p个矩阵元素分别载有1的二进制形式的p个比特,该第一组顺序列的一第二顺序列的p个矩阵元素分别载有2的二进制形式的p个比特,该第一组顺序列的一第三顺序列的p个矩阵元素分别载有3的二进制形式的p个比特,以及该第一组顺序列的一第(2p-1)顺序列的p个矩阵元素分别载有(2p-1)的二进制形式的p个比特。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/732,354 | 2020-01-02 | ||
US16/732,354 US10944429B1 (en) | 2020-01-02 | 2020-01-02 | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064547A CN113064547A (zh) | 2021-07-02 |
CN113064547B true CN113064547B (zh) | 2024-03-29 |
Family
ID=74851556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011375928.XA Active CN113064547B (zh) | 2020-01-02 | 2020-11-30 | 有局部顺序信息的校验矩阵的保护的数据存取方法及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10944429B1 (zh) |
CN (1) | CN113064547B (zh) |
TW (1) | TWI768511B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090540B (zh) * | 2019-06-24 | 2022-06-14 | 华为技术有限公司 | 基于纠删码的数据处理方法与装置 |
US11569844B2 (en) * | 2020-06-24 | 2023-01-31 | Western Digital Technologies, Inc. | Optimizations for variable sector size in storage device namespaces |
CN114297110B (zh) * | 2021-12-28 | 2024-05-14 | 上海集成电路装备材料产业创新中心有限公司 | Mipi信号解码方法、装置及其芯片 |
US11934263B2 (en) * | 2022-03-29 | 2024-03-19 | Ampere Computing Llc | Parity protected memory blocks merged with error correction code (ECC) protected blocks in a codeword for increased memory utilization |
US20240120947A1 (en) * | 2022-10-07 | 2024-04-11 | Micron Technology, Inc. | Error detection and classification at a host device |
US20240126447A1 (en) * | 2022-10-12 | 2024-04-18 | Micron Technology, Inc. | Address verification at a memory device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1666420A (zh) * | 2002-07-02 | 2005-09-07 | 三菱电机株式会社 | 检查矩阵生成方法及检查矩阵生成装置 |
CN101305521A (zh) * | 2004-07-27 | 2008-11-12 | Lg电子株式会社 | 使用低密度奇偶校验码编码和解码的方法 |
CN105703783A (zh) * | 2016-03-30 | 2016-06-22 | 成都凯腾四方数字广播电视设备有限公司 | 一种准并行结构的ldpc编码器 |
CN108268337A (zh) * | 2017-01-03 | 2018-07-10 | 慧荣科技股份有限公司 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
US10193574B1 (en) * | 2016-05-19 | 2019-01-29 | Apple Inc. | Efficient syndrome calculation in processing a GLDPC code |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5757823A (en) * | 1995-10-03 | 1998-05-26 | International Business Machines Corporation | Error detection and correction for four-bit-per-chip memory system |
US7093183B2 (en) * | 2001-02-28 | 2006-08-15 | International Business Machines Corporation | Symbol level error correction codes which protect against memory chip and bus line failures |
US7028248B2 (en) * | 2001-02-28 | 2006-04-11 | International Business Machines Corporation | Multi-cycle symbol level error correction and memory system |
DE102005022107B9 (de) * | 2005-05-12 | 2016-04-07 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge |
CN100546205C (zh) * | 2006-04-29 | 2009-09-30 | 北京泰美世纪科技有限公司 | 构造低密度奇偶校验码的方法、译码方法及其传输系统 |
US9450613B2 (en) * | 2010-11-10 | 2016-09-20 | Infineon Technologies Ag | Apparatus and method for error correction and error detection |
US8880987B2 (en) * | 2011-07-29 | 2014-11-04 | Sandisk Technologies Inc. | Checksum using sums of permutation sub-matrices |
KR102068030B1 (ko) * | 2012-12-11 | 2020-01-20 | 삼성전자 주식회사 | 메모리 컨트롤러 및 그 동작방법 |
KR20170101368A (ko) * | 2016-02-26 | 2017-09-06 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 에러 정정 방법 |
CN108400832B (zh) * | 2017-02-06 | 2022-09-09 | 华为技术有限公司 | 数据处理方法和通信设备 |
US10853163B2 (en) * | 2017-04-28 | 2020-12-01 | Qualcomm Incorporated | Optimized error-correcting code (ECC) for data protection |
KR102449782B1 (ko) * | 2018-05-04 | 2022-10-04 | 에스케이하이닉스 주식회사 | 준순환 저밀도 패리티 체크 코드의 패리티 체크 행렬 변환 회로, 이를 포함하는 에러 정정 회로 및 이의 동작 방법 |
KR102579014B1 (ko) * | 2018-11-06 | 2023-09-15 | 삼성전자주식회사 | 에러 정정 코드 디코더, 반도체 메모리 장치 및 메모리 시스템 |
KR102643457B1 (ko) * | 2018-11-19 | 2024-03-06 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR20200074467A (ko) * | 2018-12-17 | 2020-06-25 | 삼성전자주식회사 | 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템 |
KR102687096B1 (ko) * | 2019-03-27 | 2024-07-23 | 에스케이하이닉스 주식회사 | 오류 정정 디코더 |
KR102707643B1 (ko) * | 2019-04-17 | 2024-09-20 | 에스케이하이닉스 주식회사 | 오류 정정 회로 및 이를 포함하는 메모리 컨트롤러 |
-
2020
- 2020-01-02 US US16/732,354 patent/US10944429B1/en active Active
- 2020-10-19 TW TW109136091A patent/TWI768511B/zh active
- 2020-11-30 CN CN202011375928.XA patent/CN113064547B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1666420A (zh) * | 2002-07-02 | 2005-09-07 | 三菱电机株式会社 | 检查矩阵生成方法及检查矩阵生成装置 |
CN101305521A (zh) * | 2004-07-27 | 2008-11-12 | Lg电子株式会社 | 使用低密度奇偶校验码编码和解码的方法 |
CN105703783A (zh) * | 2016-03-30 | 2016-06-22 | 成都凯腾四方数字广播电视设备有限公司 | 一种准并行结构的ldpc编码器 |
US10193574B1 (en) * | 2016-05-19 | 2019-01-29 | Apple Inc. | Efficient syndrome calculation in processing a GLDPC code |
CN108268337A (zh) * | 2017-01-03 | 2018-07-10 | 慧荣科技股份有限公司 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
Also Published As
Publication number | Publication date |
---|---|
TW202127462A (zh) | 2021-07-16 |
TWI768511B (zh) | 2022-06-21 |
US10944429B1 (en) | 2021-03-09 |
CN113064547A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113064547B (zh) | 有局部顺序信息的校验矩阵的保护的数据存取方法及设备 | |
KR102179228B1 (ko) | 메모리에서의 티어드 오류 정정 코드(ecc) 동작 | |
US10901837B2 (en) | Error correction code (ECC) operations in memory | |
US11050438B2 (en) | Memory controller | |
US9405624B2 (en) | On-die error detection and correction during multi-step programming | |
KR20080064029A (ko) | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 | |
US11243838B2 (en) | Methods and apparatuses for error correction | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
US11115064B2 (en) | Error correction decoder and memory system having the same | |
US10348335B2 (en) | Miscorrection avoidance for turbo product codes | |
TWI682399B (zh) | 操作記憶體之方法及用於錯誤率降低之設備 | |
TWI751096B (zh) | 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 | |
US11169878B2 (en) | Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus |
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 |