CN111192622A - 闪存控制器及其中的编码电路与解码电路 - Google Patents

闪存控制器及其中的编码电路与解码电路 Download PDF

Info

Publication number
CN111192622A
CN111192622A CN201910039611.XA CN201910039611A CN111192622A CN 111192622 A CN111192622 A CN 111192622A CN 201910039611 A CN201910039611 A CN 201910039611A CN 111192622 A CN111192622 A CN 111192622A
Authority
CN
China
Prior art keywords
check code
data
check
flash memory
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910039611.XA
Other languages
English (en)
Other versions
CN111192622B (zh
Inventor
郭轩豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN202210210238.1A priority Critical patent/CN114694739A/zh
Publication of CN111192622A publication Critical patent/CN111192622A/zh
Application granted granted Critical
Publication of CN111192622B publication Critical patent/CN111192622B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种应用在闪存控制器中的编码电路,其包括有一辅助数据产生电路以及编码器。在所述编码电路的操作中,所述辅助数据产生电路是用以接收多个数据组块以产生所述多个数据组块的辅助数据,且所述编码器是根据一校验码检查矩阵来对所述多个数据组块进行编码以产生校验码,并使用所述辅助数据来替换所述校验码中的一部分以产生调整后校验码,其中所述多个数据组块以及所述调整后校验码是被写入至闪存中。本发明通过将编码电路原本所产生的校验码中的相依位替换为具有实际功用的辅助数据,以充分利用存储器空间来避免浪费空间,此外,还通过在校验码中加入辅助数据,使解码过程中的正确性/完整性检查具有更高的准确性。

Description

闪存控制器及其中的编码电路与解码电路
技术领域
本发明是有关于闪存,尤指一种应用在闪存控制器中的编码电路与解码电路。
背景技术
在目前的低密度奇偶检查码(Low-Density Parity Check code,LDPC code)编码器中,若是所采用的校验码检查矩阵为一非全秩校验码检查矩阵(non-full rank paritycheck matrix)时,其所产生的校验码会包括了多个不具有错误更正效果的多个位(通常被称为相依位(dependent bit)),因此造成了存储器空间上的浪费。
发明内容
因此,本发明的目的之一在于提出一种编码电路,其可以利用原本相依位的地址来存储其他的辅助数据,以解决先前技术中所述的问题。
在本发明的一个实施例中,公开了一种应用在一闪存控制器中的编码电路,其包括有一辅助数据产生电路以及一编码器。在编码电路的操作中,辅助数据产生电路是用以接收多个数据组块以产生所述多个数据组块的一辅助数据,且所述编码器是根据一校验码检查矩阵来对所述多个数据组块进行编码以产生一校验码,并使用所述辅助数据来替换所述校验码中的一部分以产生一调整后校验码,其中所述多个数据组块以及所述调整后校验码是被写入至一闪存中。
在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一存储器、一微处理器以及一编码电路。所述存储器是用来存储一程序代码,且所述微处理器是用来执行所述程序代码以控制对所述闪存模块的存取,以及所述编码电路包括有一辅助数据产生电路以及一编码器。在编码电路的操作中,辅助数据产生电路是用以接收多个数据组块以产生所述多个数据组块的一辅助数据,且所述编码器是根据一校验码检查矩阵来对所述多个数据组块进行编码以产生一校验码,并使用所述辅助数据来替换所述校验码中的一部分以产生一调整后校验码,其中所述多个数据组块以及所述调整后校验码是被写入至一闪存中。
在本发明的另一个实施例中,公开了一种应用在一闪存控制器中的解码电路,其包括有一解码器以及一检查电路。在所述解码电路的操作中,所述解码器是用以对来自一闪存的一数据进行解码,以产生一解码后数据以及一解码后校验码;以及所述检查电路是用以自所述解码后校验码中取得一辅助数据,并根据所述辅助数据来判断所述解码后数据的完整性或正确性,以产生一检查结果;其中当所述检查结果指出所述解码后数据的完整性或正确性正常,则所述解码后数据是被传送给耦接于所述闪存控制器的一主装置。
在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一存储器、一微处理器以及一解码电路。所述存储器是用来存储一程序代码,且所述微处理器是用来执行所述程序代码以控制对所述闪存模块的存取,以及所述解码电路包括有一解码器以及一检查电路。在所述解码电路的操作中,所述解码器是用以对来自一闪存的一数据进行解码,以产生一解码后数据以及一解码后校验码;以及所述检查电路是用以自所述解码后校验码中取得一辅助数据,并根据所述辅助数据来判断所述解码后数据的完整性或正确性,以产生一检查结果;其中当所述检查结果指出所述解码后数据的完整性或正确性正常,则所述解码后数据是被传送给耦接于所述闪存控制器的一主装置。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为校验码检查矩阵及校验码产生矩阵的示意图。
图3为根据本发明一实施例的编码电路的示意图。
图4绘示了写入至闪存模块中的数据组块、循环冗余校验码以及调整后校验码的示意图。
图5根据本发明一实施例的编码方法的流程图。
图6为根据本发明一实施例的解码电路的示意图。
图7根据本发明一实施例的解码方法的流程图。
其中,附图标记说明如下:
100 记忆装置
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
120 闪存模块
130 主装置
132 编码电路
134 解码电路
310 循环冗余校验编码器
320 低密度奇偶检查码编码器
322 局部校验码计算电路
324 循环卷积计算电路
326 补偿电路
330 辅助数据产生电路
500~510、700~708 步骤
610 低密度奇偶检查码解码器
620 检查电路
具体实施方式
图1为依据本发明一实施例的一种记忆装置100的示意图。记忆装置100包括有一闪存(Flash Memory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(Read OnlyMemory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存模块120的存取(Access)。控制逻辑114包括了一编码电路132以及一解码电路134,其中编码电路132用来对写入到闪存模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从闪存模块120所读出的数据进行解码。
于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(Block),而所述控制器(例如:通过微处理器112执行程序代码112C的闪存控制器110)对闪存模块120进行复制、抹除、合并数据等运作是以区块为单位来进行复制、抹除、合并数据。另外,一区块可记录特定数量的数据页(Page),其中所述控制器(例如:通过微处理器112执行程序代码112C的存储器控制器110)对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)130沟通。
在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机之中,而此时主装置130可以是所述电子装置的一处理器。
在本实施例中,编码电路132至少包括一低密度奇偶检查码(Low-Density ParityCheck code,LDPC code)编码器,且可以根据来自主装置130的数据来产生对应的校验码,且所产生的校验码符合一校验码检查矩阵。具体来说,参考图2,假设所述校验码检查矩阵为一大小为c*t的矩阵(例如,c=5,t=48,或是其他任意适合的数值),而所述校验码检查矩阵可以分为左侧的矩阵M(大小为c*(t-c))以及右侧的矩阵K(大小为c*c),为了找出与所述校验码检查矩阵所对应的校验码产生矩阵,可以先找出矩阵K的反矩阵K-1(inversematrix),之后再将反矩阵(K-1)与矩阵M相乘以得到矩阵P,而矩阵P的转置矩阵(transposematrix)便可以作为校验码产生矩阵。换句话说,在找到矩阵P的转置矩阵之后,编码电路132可以将来自主装置130的数据乘以矩阵P的转置矩阵来得到对应于所述数据的校验码,而编码器之后再将数据与校验码一起乘上所述校验码检查矩阵以判断校验码是否正确。举例来说,若是相乘结果等于“0”则判断编码正确;而若是相乘结果不等于“0”则判断编码错误。在判断编码正确之后,数据与对应的校验码便会被写入至闪存模块120中的一个数据页中。
需注意的是上述所述校验码检查矩阵的每一个单元都在实作上为一区块,而所述区块可以是一个方阵(例如64*64的矩阵或是192*192的矩阵),也就是说,所述校验码检查矩阵包括了c*t个区块。
然而,当所述校验码检查矩阵为一非全秩校验码检查矩阵时,反矩阵K-1的秩(rank)会低于反矩阵K-1的行/列数,例如反矩阵K-1的秩可能是(c-x),其中x根据不同的校验码检查矩阵可以是不同的正整数,例如x=3、x=5…等等。然而,由于反矩阵K-1的秩(rank)会低于反矩阵K-1的行/列数,故编码电路132所产生的校验码会包括了一些相依位,也就是无法用来进行错误更正的位。本实施例的编码电路132是可利用原本相依位的地址来存储其他的辅助数据,以避免浪费存储器空间。
参考图3,其为根据本发明一实施例的编码电路132的示意图。如图3所示,编码电路132包括了一循环冗余校验(Cyclic Redundancy Check,CRC)编码器310、一低密度奇偶检查码编码器320以及一辅助数据产生电路330,其中低密度奇偶检查码编码器320包括了一局部校验码计算电路322、一循环卷积(circulant convolution)计算电路324以及一补偿电路326。在本实施例中,局部校验码计算电路322可以被比对为图2所示的矩阵M,且循环卷积计算电路324则是用来产生一个类似于图2所示的反矩阵K-1的内容,由于局部校验码计算电路322以及循环卷积计算电路324涉及许多复杂的电路架构与数学运算,其具体电路架构可参考相同发明人所提出的中国台湾地区专利申请案(申请号:106141115),再加上本发明的重点并不在于低密度奇偶检查码编码器320的电路设计,故局部校验码计算电路322以及循环卷积计算电路324的细节在此不予赘述。
在图3所示的编码电路132的操作中,首先,循环冗余校验编码器310对多个数据组块进行循环冗余校验编码,以产生一循环冗余校验码;接着,低密度奇偶检查码编码器320中的局部校验码计算电路322以及循环卷积计算电路324依序对所述多个数据组块以及所述循环冗余校验码进行编码计算以产生一校验码,其中所述校验码包括了至少一个相依位;同时,辅助数据产生电路330根据所述多个数据组块及/或所述循环冗余校验码以产生一辅助数据;接着,补偿电路326使用所述辅助数据来替换所述校验码的至少一个相依位以产生一调整后校验码;最后,编码电路132将所述数据组块、所述循环冗余校验码以及所述调整后校验码一并写入到闪存模块120中一区块的一个数据页中。
在一实施例中,辅助数据产生电路330所产生的所述辅助数据为所述多个数据组块的一识别信息(ID)、哈希数据(hash data)、服务质量(Quality of Service,QoS)信息、时间戳、或是逻辑/实体地址(logical address);在另一实施例中,循环冗余校验编码器310所产生的所述循环冗余校验码包括了一第一部分以及一第二部分,其中所述第一部分是接续在所述多个数据组块之后,而所述第二部分是作为所述辅助数据以取代所述校验码中的相依位;在另一实施例中,所述辅助数据也可以为所述多个数据组块中所有具有数值“1”(或是数值“0”)的位数量除以一参考值后所得的余数,但本发明并不以此为限。
图4绘示了写入至闪存模块120中的所述数据组块、所述循环冗余校验码以及所述调整后校验码的示意图。如图4所示,所述循环冗余校验码是接续在数据组块之后,所述调整后校验码接续在所述循环冗余校验码之后,斜线部分是原本校验码中相依位的地址,而辅助数据用来替换原本校验码中的相依位以产生所述调整后校验码。
在图3、4的实施例中,通过将校验码中没有更正效果的相依位替换为有实际效用的辅助数据,可以在有限的存储器空间内加入更多有用的信息,以避免存储器空间的浪费。
图5根据本发明一实施例的编码方法的流程图。参考图1~4及说明书所公开的相关内容,编码方法的流程如下所述。
步骤500:流程开始。
步骤502:对多个数据组块进行循环冗余校验编码,以产生一循环冗余校验码。
步骤504:对所述多个数据组块以及所述循环冗余校验码进行编码计算以产生一校验码。
步骤506:根据所述多个数据组块及/或所述循环冗余校验码以产生一辅助数据。
步骤508:使用所述辅助数据来替换所述校验码的至少一个相依位以产生一调整后校验码。
步骤510:将所述数据组块、所述循环冗余校验码以及所述调整后校验码一并写入到闪存模块中一区块的一个数据页中。
图6所示为根据本发明一实施例的解码电路134的示意图。如图6所示,解码电路134包括了一低密度奇偶检查码解码器610以及一检查电路620。在解码电路134的操作中,首先,因应来自主装置130的一读取请求,低密度奇偶检查码解码器610自闪存模块120中一区块的一数据页读取一数据,并对所述数据进行解码以产生一解码后数据以及一解码后校验码,其中所述解码后数据可以是第4所示的数据组块以及循环冗余校验码,而所述解码后校验码可以是图4的调整后校验码。接着,检查电路620自所述解码后校验码中取得辅助数据(如图4所示的斜线部分,地址为编码电路132以及解码电路134的已知信息),并利用辅助数据来判断所述解码后数据的完整性/正确性以产生一检查结果。在一实施例中,当所述检查结果指出所述解码后数据的完整性或正确性正常,则微处理器112会将所述解码后数据传送给主装置130。
在一实施例中,检查电路620可以是一循环冗余校验解码器,其中,检查电路620自所述解码后数据取得一第一部分循环冗余校验码,且检查电路620自所述解码后校验码中取得一第二部分循环冗余校验码(也就是辅助数据),以及检查电路620使用所述第一部分循环冗余校验码以及所述第二部分循环冗余校验码来判断所述解码后数据的完整性或正确性,以产生所述检查结果。如上所述,由于所述解码后校验码中也包括了循环冗余校验码的部分内容,因此在循环冗余校验码的位数较多的情形下,本实施例可以让完整性/正确性检查具有更高的准确性。
图7根据本发明一实施例的解码方法的流程图。参考图4、6及说明书所公开的相关内容,解码方法的流程如下所述。
步骤700:流程开始。
步骤702:自闪存模块中一区块的一数据页读取一数据。
步骤704:对所述数据进行解码以产生一解码后数据以及一解码后校验码。
步骤706:自所述解码后校验码取得一辅助数据。
步骤708:根据所述辅助数据来判断所述解码后数据的正确性/完整性。
简要归纳本发明,在本发明的闪存控制器及相关的编码电路与解码电路中,是将编码电路原本所产生的校验码中的相依位替换为具有实际功用的辅助数据,以充分利用存储器空间来避免浪费空间。另一方面,通过在校验码中加入辅助数据,可以在解码过程中的正确性/完整性检查具有更高的准确性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种应用在一闪存控制器中的编码电路,其特征在于,包括有:
一辅助数据产生电路,用以接收多个数据组块以产生所述多个数据组块的一辅助数据;以及
一编码器,耦接于所述辅助数据产生电路,用以根据一校验码检查矩阵来对所述多个数据组块进行编码以产生一校验码,并使用所述辅助数据来替换所述校验码的一部分以产生一调整后校验码;
其中所述多个数据组块以及所述调整后校验码是被写入至一闪存中。
2.如权利要求1所述的编码电路,其特征在于,所述校验码检查矩阵为一非全秩校验码检查矩阵,且所述校验码的所述部分是不具有错误更正效果的多个位。
3.如权利要求1所述的编码电路,其特征在于,所述编码器为在所述闪存控制器中的一低密度奇偶检查码编码器。
4.如权利要求1所述的编码电路,其特征在于,还包括有:
一循环冗余校验编码器,用以对所述多个数据组块进行编码以产生一循环冗余校验码;
其中所述辅助数据产生电路是根据所述循环冗余校验码的一部分来产生所述辅助数据。
5.如权利要求4所述的编码电路,其特征在于,所述编码器对所述多个数据组块以及所述循环冗余校验码一起进行编码以产生所述校验码,其中所述循环冗余校验码中的一部分是被用来替换所述校验码的所述部分以产生所述调整后校验码。
6.如权利要求1所述的编码电路,其特征在于,所述辅助数据为所述多个数据组块的一识别信息、哈希数据、服务质量信息、或是逻辑/实体地址。
7.一种闪存控制器,所述闪存控制器是用来存取一闪存模块,且所述闪存控制器的特征在于,包括有:
一存储器,用来存储一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一编码电路,包括有:
一辅助数据产生电路,用以接收多个数据组块以产生所述多个数据组块的一辅助数据;以及
一编码器,耦接于所述辅助数据产生电路,用以根据一校验码检查矩阵来对所述多个数据组块进行编码以产生一校验码,并使用所述辅助数据来替换所述校验码的一部分以产生一调整后校验码;
其中所述多个数据组块以及所述调整后校验码是被写入至所述闪存模块中。
8.如权利要求7所述的闪存控制器,其特征在于,所述校验码检查矩阵为一非全秩校验码检查矩阵,且所述校验码的所述部分是不具有错误更正效果的多个位。
9.如权利要求7所述的闪存控制器,其特征在于,所述编码器为在所述闪存控制器中的一低密度奇偶检查码编码器。
10.如权利要求7所述的闪存控制器,其特征在于,还包括有:
一循环冗余校验编码器,用以对所述多个数据组块进行编码以产生一循环冗余校验码;
其中所述辅助数据产生电路是根据所述循环冗余校验码的一部分来产生所述辅助数据。
11.如权利要求10所述的闪存控制器,其特征在于,所述编码器对所述多个数据组块以及所述循环冗余校验码一起进行编码以产生所述校验码,其中所述循环冗余校验码中的一部分是被用来替换所述校验码的所述部分以产生所述调整后校验码。
12.如权利要求7所述的闪存控制器,其特征在于,所述辅助数据为所述多个数据组块的一识别信息、哈希数据、服务质量信息、或是逻辑/实体地址。
13.一种应用在一闪存控制器中的解码电路,其特征在于,包括有:
一解码器,用以对来自一闪存的一数据进行解码,以产生一解码后数据以及一解码后校验码;以及
一检查电路,耦接于所述解码器,用以自所述解码后校验码中取得一辅助数据,并根据所述辅助数据来判断所述解码后数据的完整性或正确性,以产生一检查结果;
其中当所述检查结果指出所述解码后数据的完整性或正确性正常,则所述解码后数据是被传送给耦接于所述闪存控制器的一主装置。
14.如权利要求13所述的解码电路,其特征在于,所述解码器为在所述闪存控制器中的一低密度奇偶检查码解码器。
15.如权利要求13所述的解码电路,其特征在于,所述检查电路是一循环冗余校验解码器,且所述检查电路自所述解码后数据取得一第一部分循环冗余校验码,且所述检查电路自解码后校验码中所取得的所述辅助数据是一第二部分循环冗余校验码,以及所述检查电路使用所述第一部分循环冗余校验码以及所述第二部分循环冗余校验码来判断所述解码后数据的完整性或正确性,以产生所述检查结果。
16.一种闪存控制器,所述闪存控制器是用来存取一闪存模块,且所述闪存控制器的特征在于,包括有:
一存储器,用来存储一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一解码电路,包括有:
一解码器,用以对来自一闪存的一数据进行解码,以产生一解码后数据以及一解码后校验码;以及
一检查电路,耦接于所述解码器,用以自所述解码后校验码中取得一辅助数据,并根据所述辅助数据来判断所述解码后数据的完整性或正确性,以产生一检查结果;
其中当所述检查结果指出所述解码后数据的完整性或正确性正常,则所述解码后数据是被传送给耦接于所述闪存控制器的一主装置。
17.如权利要求16所述的解码电路,其特征在于,所述解码器为在所述闪存控制器中的一低密度奇偶检查码解码器。
18.如权利要求16所述的解码电路,其特征在于,所述检查电路是一循环冗余校验解码器,且所述检查电路自所述解码后数据取得一第一部分循环冗余校验码,且所述检查电路自解码后校验码中所取得的所述辅助数据是一第二部分循环冗余校验码,以及所述检查电路使用所述第一部分循环冗余校验码以及所述第二部分循环冗余校验码来判断所述解码后数据的完整性或正确性,以产生所述检查结果。
CN201910039611.XA 2018-11-14 2019-01-16 闪存控制器及其中的编码电路与解码电路 Active CN111192622B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210210238.1A CN114694739A (zh) 2018-11-14 2019-01-16 闪存控制器及其中的编码电路

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107140313 2018-11-14
TW107140313A TWI712268B (zh) 2018-11-14 2018-11-14 快閃記憶體控制器及其中的編碼電路與解碼電路

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210210238.1A Division CN114694739A (zh) 2018-11-14 2019-01-16 闪存控制器及其中的编码电路

Publications (2)

Publication Number Publication Date
CN111192622A true CN111192622A (zh) 2020-05-22
CN111192622B CN111192622B (zh) 2022-03-25

Family

ID=70549968

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910039611.XA Active CN111192622B (zh) 2018-11-14 2019-01-16 闪存控制器及其中的编码电路与解码电路
CN202210210238.1A Pending CN114694739A (zh) 2018-11-14 2019-01-16 闪存控制器及其中的编码电路

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210210238.1A Pending CN114694739A (zh) 2018-11-14 2019-01-16 闪存控制器及其中的编码电路

Country Status (3)

Country Link
US (1) US10938417B2 (zh)
CN (2) CN111192622B (zh)
TW (1) TWI712268B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666011A (zh) * 2022-03-23 2022-06-24 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI763310B (zh) * 2021-02-09 2022-05-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN112799874B (zh) * 2021-02-23 2023-06-13 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
TWI798017B (zh) * 2022-03-09 2023-04-01 群聯電子股份有限公司 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294935A1 (en) * 2007-05-25 2008-11-27 Jian-Qiang Ni Data structure for flash memory and data reading/writing method thereof
CN101452722A (zh) * 2007-11-30 2009-06-10 瑞昱半导体股份有限公司 错误检测码产生电路和使用该电路的编码电路及相关方法
US20100268918A1 (en) * 2007-10-02 2010-10-21 Imec Asip architecture for executing at least two decoding methods
US20110214039A1 (en) * 2010-02-28 2011-09-01 Steiner Avi System and method for multi-dimensional decoding
CN104067233A (zh) * 2011-11-18 2014-09-24 桑迪士克企业知识产权有限责任公司 用于多分层错误校正的系统、方法和设备
CN105206306A (zh) * 2014-05-28 2015-12-30 擎泰科技股份有限公司 在非易失性存储器处理纠错码的方法及非易失性存储装置
CN107615388A (zh) * 2015-03-20 2018-01-19 波利伍德有限责任公司 存储控制器中的可配置多级纠错

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040033554A (ko) * 2002-10-15 2004-04-28 삼성전자주식회사 에러 정정 부호화 장치 및 그 방법
US7853862B2 (en) * 2005-08-03 2010-12-14 Qualcomm Incorporated Systems and methods for a turbo low-density parity-check decoder
KR100833515B1 (ko) * 2006-12-05 2008-05-29 한국전자통신연구원 가변 정보 길이 및 가변 부호율을 가진 ldpc 부호의패리티 검사 행렬 생성 방법, 부/복호화 방법 및 이를이용하는 장치
DE112010004863B4 (de) * 2009-12-17 2019-10-10 International Business Machines Corporation Datenverwaltung in Festkörperspeichersystemen
US8667360B2 (en) * 2011-07-01 2014-03-04 Intel Corporation Apparatus, system, and method for generating and decoding a longer linear block codeword using a shorter block length
US20130111294A1 (en) * 2011-10-28 2013-05-02 Lsi Corporation Systems and Methods for Late Stage Precoding
US8910017B2 (en) * 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
TWI560718B (en) * 2015-03-27 2016-12-01 Silicon Motion Inc Data storage device and encoding method thereof
US10496472B2 (en) * 2017-10-18 2019-12-03 Western Digital Technologies, Inc. Combined XOR buffer memory for multiple open blocks of non-volatile memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294935A1 (en) * 2007-05-25 2008-11-27 Jian-Qiang Ni Data structure for flash memory and data reading/writing method thereof
US20100268918A1 (en) * 2007-10-02 2010-10-21 Imec Asip architecture for executing at least two decoding methods
CN101452722A (zh) * 2007-11-30 2009-06-10 瑞昱半导体股份有限公司 错误检测码产生电路和使用该电路的编码电路及相关方法
US20110214039A1 (en) * 2010-02-28 2011-09-01 Steiner Avi System and method for multi-dimensional decoding
CN104067233A (zh) * 2011-11-18 2014-09-24 桑迪士克企业知识产权有限责任公司 用于多分层错误校正的系统、方法和设备
CN105206306A (zh) * 2014-05-28 2015-12-30 擎泰科技股份有限公司 在非易失性存储器处理纠错码的方法及非易失性存储装置
CN107615388A (zh) * 2015-03-20 2018-01-19 波利伍德有限责任公司 存储控制器中的可配置多级纠错

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666011A (zh) * 2022-03-23 2022-06-24 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备
CN114666011B (zh) * 2022-03-23 2024-04-16 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备

Also Published As

Publication number Publication date
US20200153456A1 (en) 2020-05-14
CN114694739A (zh) 2022-07-01
TWI712268B (zh) 2020-12-01
CN111192622B (zh) 2022-03-25
US10938417B2 (en) 2021-03-02
TW202019100A (zh) 2020-05-16

Similar Documents

Publication Publication Date Title
CN111192622B (zh) 闪存控制器及其中的编码电路与解码电路
US9323612B2 (en) Mixed granularity higher-level redundancy for non-volatile memory
US8175012B2 (en) Decoding/encoding method for booting from a NAND flash and system thereof
CN113032178B (zh) 存储器控制器及快闪存储器的存取方法
CN107845405B (zh) 用于闪存装置的错误更正码单元、自我测试方法及控制器
US20040255225A1 (en) Control circuit for error checking and correction and memory controller
CN110309013B (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
WO2012075200A2 (en) Dynamic higher-level redundancy mode management with independent silicon elements
CN109783005B (zh) 控制记忆装置的方法、记忆装置、及其控制器和电子装置
CN112214347A (zh) 产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据
TWI474329B (zh) 提昇錯誤更正能力之方法以及記憶裝置及控制器
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
CN106531224B (zh) 一种基于sram型fpga的ram数据可靠性加固装置及方法
US11709733B2 (en) Metadata-assisted encoding and decoding for a memory sub-system
US11150813B2 (en) Memory system
CN109841252B (zh) 闪存控制器和设置在闪存控制器中的编码器和编码器
CN115729746A (zh) 一种基于crc和ecc存储数据保护方法
TWI782341B (zh) 快閃記憶體控制器及其中的編碼電路
US11379303B2 (en) Memory system and method
CN117631962A (zh) 存储器控制器及快闪存储器的存取方法
CN111049529A (zh) 编码器及相关的编码方法与闪存
JP2010140132A (ja) メモリシステム及びメモリコントローラ
CN111427717A (zh) 用于在存储器系统中编码和解码数据的方法和装置
TW202015347A (zh) 編碼器及相關的編碼方法與快閃記憶體控制器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant