CN107506257B - 错误检查纠正解码方法与装置 - Google Patents

错误检查纠正解码方法与装置 Download PDF

Info

Publication number
CN107506257B
CN107506257B CN201710897106.XA CN201710897106A CN107506257B CN 107506257 B CN107506257 B CN 107506257B CN 201710897106 A CN201710897106 A CN 201710897106A CN 107506257 B CN107506257 B CN 107506257B
Authority
CN
China
Prior art keywords
codeword
bit
decoding
information
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.)
Active
Application number
CN201710897106.XA
Other languages
English (en)
Other versions
CN107506257A (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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN107506257A publication Critical patent/CN107506257A/zh
Application granted granted Critical
Publication of CN107506257B publication Critical patent/CN107506257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一种错误检查纠正(ECC)解码方法与装置。解码电路使用(或未使用)参考信息对码字进行ECC解码,其中当解码电路对第一码字进行解码失败时,解码电路对第二码字进行ECC解码而产生经解码数据。解码电路检查第二码字的每一码字位至经解码数据的对应位是否发生变化。依照发生变化的对应位的位位置,解码电路对应将该第一码字改为经修改码字,以及/或者对应将参考信息改为经修改信息。解码电路使用(或未使用)经修改信息对经修改码字(或对第一码字)再一次进行ECC解码。

Description

错误检查纠正解码方法与装置
技术领域
本发明涉及一种解码技术,且特别涉及一种错误检查纠正解码方法与装置。
背景技术
在一般情况下,快闪存储器可能有损坏的位单元(bit cell)或损坏的位线。在这些损坏的位单元中,无论被写入的数据是什么,损坏的位单元都将输出数据「1」。在这种情况下,被输入到低密度同位检查(Low Density Parity Check,LDPC)解码器的信息可能具有错误值。例如,具有可靠性信息为「强可靠」的码字位值0(或称为强0,strong 0)可能变为具有可靠性信息为「强可靠」的码字位值1(或称为强1,strong 1)。所述可靠性信息又可称为权重。错误值会使LDPC解码器的解码能力下降。
如果损坏的位/位线的位置为事先已知,则可以将这些位置标记抹除(erasure),以防止误导LDPC引擎。但是,此方法需要大量的储存空间来记录这些损坏的位/位线位置。
发明内容
本发明提供一种错误检查纠正(Error Checking and Correcting,以下称ECC)解码方法与ECC解码装置,以提高解码能力。
本发明的实施例提供一种ECC解码方法。所述ECC解码方法包括下述步骤。由缓冲电路暂存非易失性存储器所输出的至少一个码字。由解码电路对所述至少一个码字进行ECC解码,或是使用参考信息对所述至少一个码字进行ECC解码,其中当解码电路对所述至少一个码字的第一码字进行ECC解码的结果为失败时,解码电路对所述至少一个码字的第二码字进行ECC解码而产生经解码数据。由解码电路检查该第二码字的每一码字位至该经解码数据的对应位是否发生变化。依照发生变化的该对应位的位位置,由解码电路对应改变在该第一码字中位于该位位置的位值而将该第一码字改为经修改码字,或者对应改变在该参考信息中位于该位位置的参考值而将该参考信息改为经修改信息。由解码电路对该经修改码字再一次进行ECC解码,或是使用该经修改信息对该第一码字再一次进行ECC解码,或是使用该经修改信息对该经修改码字再一次进行ECC解码。
本发明的实施例提供一种ECC解码装置。所述ECC解码装置包括缓冲电路以及解码电路。缓冲电路暂存非易失性存储器所输出的至少一个码字。解码电路耦接至该缓冲电路。解码电路可以对所述至少一个码字进行ECC解码,或是使用参考信息对所述至少一个码字进行ECC解码,其中当解码电路对所述至少一个码字的第一码字进行ECC解码的结果为失败时,解码电路对所述至少一个码字的第二码字进行ECC解码而产生经解码数据。解码电路检查该第二码字的每一码字位至该经解码数据的对应位是否发生变化。依照发生变化的该对应位的位位置,解码电路对应改变在该第一码字中位于该位位置的位值而将该第一码字改为经修改码字,或者对应改变在该参考信息中位于该位位置的参考值而将该参考信息改为经修改信息。解码电路对该经修改码字再一次进行ECC解码,或是使用该经修改信息对该第一码字再一次进行ECC解码,或是使用该经修改信息对该经修改码字再一次进行ECC解码。
基于上述,本发明各实施例所述ECC解码方法与ECC解码装置从被成功解码的码字撷取特定信息,然后将此特定信息回馈给解码失败的码字并再一次进行解码。在再一次进行解码后,原本解码失败的码字往往因为此特定信息而得以被成功解码。因此,本发明各实施例所述ECC解码方法与ECC解码装置可以提高解码能力。
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明实施例所绘示一种非易失性存储器(non-volatile memory)装置的电路方块示意图。
图2是依照本发明实施例所绘示一种错误检查纠正解码方法的流程示意图。
图3是依照本发明另一实施例所绘示一种错误检查纠正解码方法的流程示意图。
图4是依照本发明又一实施例所绘示一种错误检查纠正解码方法的流程示意图。
图5是依照本发明实施例说明图1所示解码电路的电路方块示意图。
符号说明
10:主机
20:非易失性存储器装置
21:非易失性存储器
100:错误检查纠正(ECC)解码装置
101:码字
102:经解码数据
110:缓冲电路
120:解码电路
121:控制器
122:低密度同位检查(LDPC)解码器电路
123:第一标记
124:第二标记
125:或门
126:第一与门
127:第二与门
128:输出缓冲器
EN:致能信号
S205、S210、S220、S225、S230、S235、S240、S245、S250、S310、S320、S330、S340、S350、S410、S420、S430、S440、S450、S460、S470、S480、S490:步骤
W/S、W/S’:可靠性信息
具体实施方式
在本案说明书全文(包括权利要求)中所使用的「耦接(或连接)」一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以透过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。
图1是依照本发明实施例所绘示一种非易失性存储器(non-volatile memory)装置20的电路方块示意图。依照设计需求,非易失性存储器装置20可以是随身盘、固态硬盘(solid state disc,SSD)或是其他储存装置。非易失性存储器装置20可以耦接至主机(host)10。此主机10可以是计算机、手持式电话、多媒体播放器、相机或是其他电子装置。当主机10发出一个读取命令(read command)给非易失性存储器装置20时,非易失性存储器装置20可以依据此读取命令的定址来回传对应数据给主机10。
于图1所示实施例中,非易失性存储器装置20包括非易失性存储器21与错误检查纠正(Error Checking and Correcting,以下称ECC)解码装置100。依照设计需求,非易失性存储器21可以是与非快闪存储器(NAND flash memory)或是其他非易失性储存电路/元件。当主机10发出一个读取命令时,非易失性存储器21依据该读取命令的定址来输出对应的码字(codeword)101给ECC解码装置100,然后ECC解码装置100将此码字101进行解码,以便将对应的经解码数据102回传给主机10。举例来说,在一些实施例中,ECC解码装置100可以执行低密度同位检查(Low Density Parity Check,以下称LDPC)码算法或是其他ECC算法,以便将码字101进行解码来产生经解码数据102。
非易失性存储器21可以依据读取命令的一个(或一组)读取电压参数来设定至少一个读取电压(或称门槛电压),以及依据该读取命令的位址来读取一组对应数据电压。依照所述至少一个读取电压,非易失性存储器21可以将该组对应数据电压转换为对应的码字101。依照设计需求,非易失性存储器21可以是单层存储单元(Single Level Cell,SLC)快闪存储器、多层存储单元(Multi-Level Cell,MLC)快闪存储器、三层存储单元(TripleLevel Cell,TLC)快闪存储器、四层存储单元(Quadruple Level Cell,QLC)快闪存储器或其他类型快闪存储器。
以MLC快闪存储器为例,一个存储单元具有高页(high page)与低页(low page),因此一个存储单元可以储存2个位的信息。同一个存储单元中的高页与低页又被称为「成对页(Paired pages)」。低页有一个读取电压(或称门槛电压),高页有两个读取电压。非易失性存储器21可以依据ECC解码装置100的命令来设定高页读取电压VtU1、高页读取电压VtU2与低页读取电压VtL。依照这些读取电压VtU1、VtU2与VtL,非易失性存储器21可以将对应数据电压组转换为对应的码字101。
不失一般性(without loss of generality),相较于高页而言,低页可以具有更高的抗差错能力(capability of error resistance)。对于同一个成对页而言,在高页的码字不能被正确解码的情况下,在低页的码字可能可以被正确解码。以下各实施例将使用被正确解码的码字的运行时信息(the information in the runtime)(也即特定信息)作为参考,然后将此特定信息回馈给解码失败的码字并再一次进行解码,以提高ECC的能力。
以下实施例将以LDPC解码方法作为说明范例。在LDPC解码过程中,一个码字会伴随一组「可靠性信息」(或称权重),用来描述码字的每一个位值的可信度。LDPC解码方法为现有技术,故不在此赘述。其他ECC解码方法也可能具有「可靠性信息」,故也可以参照以下各实施例的说明而将本发明应用于其他ECC解码方法。为了方便说明,在此将具有可靠性信息为「强可靠」的码字位值0称为「强0(strong 0)」,将具有可靠性信息为「弱可靠」的码字位值0称为「弱0(weak 0)」,将具有可靠性信息为「弱可靠」的码字位值1称为「弱1(weak 1)」,将具有可靠性信息为「强可靠」的码字位值1称为「强1(strong 1)」。
如果在低页(或高页)中一个位存储单元的位值从强0被成功解码至1(强1或弱1),或者从强1被成功解码到0(强0或弱0),则这个位存储单元可能是损坏的单元,或者这个位存储单元的位线是损坏的位线。因此,从被成功解码的码字可以撷取出特定信息,而此特定信息可以指出此成功解码的码字的某一条(或某些条)位线可能是损坏的位线。然后将此特定信息回馈给解码失败的码字并再一次进行解码。依照设计需求,所述「回馈」的方式可以包括弱化权重(Weaken the weight)、标记擦除(Mark erasure)、翻转数据(Flip Data)以及/或是其他方式或手段。在再一次进行解码后,原本解码失败的码字往往因为此特定信息而得以被成功解码。
图1所示ECC解码装置100包括缓冲电路110以及解码电路120。缓冲电路110可以暂存非易失性存储器21所输出的码字101。解码电路120耦接至缓冲电路110。在一些实施例中错误检查纠正(ECC)解码方法可以没有「可靠性信息」,因而解码电路120可以对缓冲电路110所提供的码字进行ECC解码(例如进行硬解码,hard decoding)。在另一些实施例中ECC解码方法可能具有「可靠性信息」,因此解码电路120可以使用此参考信息对缓冲电路110所提供的码字进行ECC解码(例如进行LDPC的软解码,soft decoding)。在实施例中,上述可靠性信息为软值(soft value)。为方便说明,以下各实施例将对曾经ECC解码失败的码字称为「第一码字」,而对ECC解码成功的码字称为「第二码字」。其中,此第一码字与此第二码字来自于非易失性存储器21中的相同位线。在一些实施例中,此第一码字与此第二码字来自于非易失性存储器21中的相同成对页的不同层页。在另一些实施例中,此第一码字与此第二码字来自于非易失性存储器21中的不同成对页。一旦ECC解码成功,解码电路120可以依据码字产生经解码数据102,以及将经解码数据102输出给主机10。
图2是依照本发明实施例所绘示一种错误检查纠正解码方法的流程示意图。请参照图1与图2。于步骤S205中,ECC解码装置100从非易失性存储器21读出码字101(例如第一码字),并且将此码字101暂存于缓冲电路110。于步骤S210中,解码电路120对缓冲电路110所提供的第一码字进行错误检查纠正(ECC)解码,或者解码电路120使用「参考信息」对缓冲电路110所提供的第一码字进行ECC解码。若于步骤S210判定第一码字解码成功,则结束第一码字的解码。一旦解码电路120对缓冲电路110所提供的第一码字进行ECC解码的结果为失败,解码电路120将接着进行步骤S220。
于步骤S220中,ECC解码装置100的控制器(例如图5所示控制器121)会找寻与所述第一码字相关的其他码字(相关码字)。依照设计需求,所述相关码字可以是与所述第一码字共用相同位线的其他码字。在一些实施例中,此第一码字与所述相关码字来自于非易失性存储器21中的相同成对页的不同层页。在另一些实施例中,此第一码字与所述相关码字来自于非易失性存储器21中的不同成对页。若步骤S220找不到所述第一码字的相关码字,则解码电路120判定所述第一码字的解码操作失败而结束第一码字的解码。若步骤S220找到所述第一码字的相关码字(以下称为第二码字),则解码电路120进行步骤S225。
于步骤S225中,ECC解码装置100从非易失性存储器21读出码字101(例如第二码字),并且将此码字101暂存于缓冲电路110。于步骤S230中,解码电路120对缓冲电路110所提供的第二码字进行ECC解码,或者解码电路120使用「参考信息」对缓冲电路110所提供的第二码字进行ECC解码。当解码电路120对第二码字进行ECC解码的结果为失败时,解码电路120将再一次进行步骤S220,以便找寻与所述第一码字相关的其他相关码字。一旦解码电路120对缓冲电路110所提供的第二码字进行ECC解码的结果为成功后,解码电路120可以产生经解码数据102给主机10,而且解码电路120将接着进行步骤S235。
于步骤S235中,解码电路120可以检查第二码字的每一码字位至经解码数据的一个对应位是否发生变化。当第二码字的每一码字位都没有「发生变化」时,解码电路120将再一次进行步骤S220,以便找寻与所述第一码字相关的其他相关码字。当第二码字的一个(或多个)码字位「发生变化」时,解码电路120将进行步骤S240。所述「发生变化」的条件可以依照设计需求来决定。举例来说,在一些实施例中,所述对应位「发生变化」,是指「此第二码字的一个码字位至此经解码数据的对应位发生变化」的状况。例如,第二码字的一个位值为0而经解码数据的对应位值为1,或者第二码字的一个位值为1而经解码数据的对应位值为0。在另一些实施例中,所述对应位「发生变化」,是指「此第二码字的一个码字位至此经解码数据的对应位发生变化,并且此码字位的可靠性信息指出此码字位为强可靠」的状况。例如,第二码字的一个位值为强0而经解码数据的对应位值为1(强1或弱1),或者第二码字的一个位值为强1而经解码数据的对应位值为0(强0或弱0)。
于步骤S240中,针对第二码字中发生上述步骤S235所述的变化的那个(那些)位,解码电路120可以标记/记录那个(那些)位位置。步骤S240所标记/记录的位置信息(特定信息)可以被回馈给解码失败的第一码字所使用,也即将所述特定信息提供给步骤S245使用。也就是说,在第二码字进行ECC解码的结果为成功的情况下,解码电路120可以对原先解码失败的第一码字再一次进行ECC解码。
于步骤S245中,解码电路120可以判断所述第一码字(原先解码失败的码字)的所有位位置中,有没有步骤S240所标记/记录的位置。若与第一码字共用相同位线的其他码字(例如第二码字)被成功解码,则步骤S235至S240可以从被成功解码的第二码字撷取特定信息(发生变化的位位置)给步骤S245。若步骤S245的判断结果表示,所述第一码字(原先解码失败的码字)的所有位位置都不符合步骤S240所标记/记录的位置,则解码电路120将再一次进行步骤S220,以便找寻与所述第一码字相关的其他相关码字。若与所述第一码字相关的其他相关码字(例如与所述第一码字共用相同位线的其他码字)都没有所述特定信息,则所述第一码字的解码操作结束。若步骤S245的判断结果表示,与所述第一码字共用相同位线的其他码字(例如第二码字)可以提供所述特定信息(发生变化的位位置),则解码电路120将进行步骤S250。
于步骤S250中,依照发生变化的对应位的位位置,解码电路120对应改变在所述第一码字中位于所标记位位置(步骤S240所标记的位置)的位值而将此第一码字改为经修改码字,以及/或者对应改变在参考信息中位于所标记位位置(步骤S240所标记的位置)的参考值而将此参考信息改为经修改信息。完成步骤S250后,解码电路120接着再一次进行步骤S210。于步骤S210中,解码电路120对所述经修改码字再一次进行ECC解码,或是使用所述经修改信息对第一码字再一次进行ECC解码,或是使用所述经修改信息对所述经修改码字再一次进行ECC解码。
举例来说,以「翻转数据(Flip Data)」为例,解码电路120于步骤S250中可以将在所述第一码字中位于所标记位位置(步骤S240所标记的位置)的位值「0」改为「1」,或将「1」改为「0」,而获得经修改码字。解码电路120于步骤S210中可以对所述经修改码字再一次进行ECC解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字并再一次进行ECC解码。在再一次进行ECC解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
以「弱化权重(Weaken the weight)」为例,所述「参考信息」可以包括可靠性信息(或称权重)。当步骤S240的标记信息指出第二码字(可被成功解码的其他码字)的一个码字位至经解码数据的对应位发生变化,并且该码字位的可靠性信息指出该码字位为「强可靠」时,解码电路120于步骤S250中可以将该码字位的可靠性信息「强可靠」改变为「弱可靠」,而获得经修改信息。于此范例中,所述第一码字不会被改变,也即将码字位「强1」改变为「弱1」,或将「强0」改变为「弱0」。解码电路120于步骤S210中可以使用所述经修改信息对第一码字再一次进行ECC解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字的可靠性信息(或称权重)并再一次进行ECC解码。在再一次进行ECC解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
以并用「翻转数据」与「弱化权重」为例,当步骤S240的标记信息指出第二码字(可被成功解码的其他码字)的一个码字位至经解码数据的对应位发生变化,并且该码字位的可靠性信息指出该码字位为「强可靠」时,解码电路120于步骤S250中可以将该码字位「强1」改变为「弱0」,或将「强0」改变为「弱1」,而获得经修改码字与经修改信息。解码电路120于步骤S210中可以使用所述经修改信息对所述经修改码字再一次进行ECC解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字与其可靠性信息(或称权重)并再一次进行ECC解码。在再一次进行ECC解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
以「标记擦除(Mark erasure)」为例,所述「参考信息」可以包括可靠性信息(或称权重)与擦除信息。当步骤S240的标记信息指出第二码字(可被成功解码的其他码字)的一个码字位至经解码数据的对应位发生变化,并且该码字位的可靠性信息指出码字位为「强可靠」时,解码电路120于步骤S250中可以将该码字位的擦除信息标记为「中性」,而获得经修改信息。所述「中性」的擦除信息用来标记该码字位的值「既非逻辑0,也非逻辑1」。LDPC解码方法中的「擦除信息」为现有技术,故不再赘述。解码电路120于步骤S210中可以使用所述经修改信息对第一码字再一次进行ECC解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字的擦除信息并再一次进行ECC解码。在再一次进行ECC解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
图3是依照本发明另一实施例所绘示一种错误检查纠正解码方法的流程示意图。图3所示步骤S205、步骤S210、步骤S220、步骤S225、步骤S230、步骤S235、步骤S240与步骤S245可以参照图2的相关说明,故不再赘述。于图3所示实施例中,步骤S210包括步骤S310与步骤S320,而步骤S230包括步骤S330与步骤S340。缓冲电路110用以暂存非易失性存储器21所输出的码字101(例如第一码字与第二码字)。于步骤S310中,解码电路120对缓冲电路110所提供的第一码字进行硬解码。于步骤S330中,解码电路120对缓冲电路110所提供的第二码字进行硬解码。所述硬解码为现有技术,故不再赘述。于步骤S320中,解码电路120可以判断第一码字的硬解码是否失败。若步骤S320判定第一码字的硬解码的结果为成功,则结束第一码字的解码。若步骤S320判定第一码字的硬解码的结果为失败,则解码电路120将接着进行步骤S220。若步骤S340判定第二码字的硬解码的结果为成功,则解码电路120可以产生经解码数据102给主机10,而且解码电路120将接着进行步骤S235与步骤S240。步骤S240所标记/记录的位置信息(特定信息)可以被回馈给解码失败的第一码字所使用。也就是说,在第二码字进行ECC解码的结果为成功的情况下,步骤S210可以对原先解码失败的第一码字再一次进行硬解码。
于步骤S245中,解码电路120可以判断第一码字(硬解码失败的码字)的所有位位置中,有没有步骤S240所标记/记录的位置。若步骤S245的判断结果表示,所述第一码字(硬解码失败的码字)的所有位位置都不符合步骤S240所标记/记录的位置,则解码电路120将再一次进行步骤S220,以便找寻与所述第一码字相关的其他相关码字。若与所述第一码字相关的其他相关码字(例如与所述第一码字共用相同位线的其他码字)都没有所述特定信息,则所述第一码字的解码操作结束。若步骤S245的判断结果表示,与所述第一码字共用相同位线的其他码字(第二码字,即硬解码成功的其他码字)可以提供所述特定信息(发生变化的位位置),则解码电路120将进行步骤S350。于步骤S350中,依照发生变化的对应位的位位置,解码电路120对应改变在所述第一码字中位于所标记位位置(步骤S240所标记的位置)的位值而将此第一码字改为经修改码字。完成步骤S350后,解码电路120接着再一次进行步骤S310。于步骤S310中,解码电路120对所述经修改码字再一次进行硬解码。
举例来说,解码电路120于步骤S350中可以将在所述第一码字中位于所标记位位置(步骤S240所标记的位置)的位值「0」改为「1」,或将「1」改为「0」,而获得经修改码字。解码电路120于步骤S310中可以对所述经修改码字再一次进行硬解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字并再一次进行硬解码。在再一次进行硬解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
图4是依照本发明又一实施例所绘示一种错误检查纠正解码方法的流程示意图。图4所示步骤S205、步骤S210、步骤S220、步骤S225、步骤S230、步骤S235、步骤S240与步骤S245可以参照图2的相关说明,故不再赘述。于图4所示实施例中,步骤S210包括步骤S410、步骤S420、步骤S430与步骤S440。步骤230包含步骤S450、步骤S460、步骤S470与步骤S480。图4所示步骤S410与步骤S420可以参照图3所示步骤S310与步骤S320的相关说明,图4所示步骤S450与步骤S460可以参照图3所示步骤S330与步骤S340的相关说明,故不再赘述。若步骤S420判定第一码字的硬解码的结果为成功,则结束第一码字的解码。若步骤S420判定第一码字的硬解码的结果为失败,则解码电路120将接着进行步骤S430。
于步骤S430中,解码电路120对缓冲电路110所提供的第一码字进行软解码。所述软解码可以是现有LDPC解码算法或是其他解码算法,故不再赘述。若步骤S440判定第一码字的所述软解码的结果为成功,则解码电路120可以产生经解码数据102给主机10,而且结束第一码字的解码操作。若步骤S440判定第一码字的软解码的结果为失败,则解码电路120将接着进行步骤S220。
若步骤S460判定第二码字的硬解码的结果为成功,则解码电路120将接着进行步骤S470。若步骤S460判定第二码字的硬解码的结果为失败,则解码电路120将接着进行步骤S220。于步骤S470中,解码电路120对缓冲电路110所提供的码字(例如第二码字)进行软解码。所述软解码可以是现有LDPC解码算法或是其他解码算法,故不再赘述。若步骤S480判定第二码字的所述软解码的结果为失败,则解码电路120将接着进行步骤S220。若步骤S480判定第二码字的所述软解码的结果为成功,则解码电路120可以产生经解码数据102给主机10,而且解码电路120将接着进行步骤S235与步骤S240。步骤S240所标记/记录的位置信息(特定信息)可以被回馈给解码失败的第一码字所使用。也就是说,在第二码字进行ECC解码的结果为成功的情况下,步骤S210可以对原先解码失败的第一码字再一次进行硬解码和/或软解码。
于步骤S245中,解码电路120可以判断第一码字(硬解码失败和/或软解码失败的码字)的所有位位置中,有没有步骤S240所标记/记录的位置。若步骤S245的判断结果表示,所述第一码字(硬解码失败和/或软解码失败的码字)的所有位位置都不符合步骤S240所标记/记录的位置,则解码电路120将再一次进行步骤S220,以便找寻与所述第一码字相关的其他相关码字。若与所述第一码字相关的其他相关码字(例如与所述第一码字共用相同位线的其他码字)都没有所述特定信息,则所述第一码字的解码操作结束。若步骤S245的判断结果表示,与所述第一码字共用相同位线的其他码字(第二码字,即硬解码成功的其他码字)可以提供所述特定信息(发生变化的位位置),则解码电路120将进行步骤S490。于步骤S490中,依照发生变化的对应位的位位置,解码电路120对应改变在所述第一码字中位于所标记位位置(步骤S240所标记的位置)的位值而将此第一码字改为经修改码字,以及/或者对应改变在参考信息中位于所标记位位置(步骤S240所标记的位置)的参考值而将此参考信息改为经修改信息。图4所示步骤S490可以参照图2所示步骤S250的相关说明,故不再赘述。完成步骤S490后,解码电路120接着再一次进行步骤S430。
于步骤S430中,解码电路120对所述经修改码字再一次进行所述软解码,或是使用所述经修改信息对第一码字再一次进行所述软解码,或是使用所述经修改信息对所述经修改码字再一次进行所述软解码。举例来说,以「翻转数据」为例,解码电路120于步骤S490中可以将在所述第一码字中位于所标记位位置(步骤S240所标记的位置)的位值「强0」改为「强1」,或将「强1」改为「强0」,或将「弱1」改为「弱0」,或将「弱0」改为「弱1」,而获得经修改码字。于此范例中,所述第一码字的可靠性信息不会被改变。解码电路120于步骤S430中可以对所述经修改码字再一次进行所述软解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字并再一次进行所述软解码。在再一次进行所述软解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
以「弱化权重」为例,所述「参考信息」可以包括可靠性信息(或称权重)。当步骤S240的标记信息指出第二码字(可被成功解码的其他码字)的一个码字位至经解码数据的对应位发生变化,并且该码字位的可靠性信息指出该码字位为「强可靠」时,解码电路120于步骤S490中可以将该码字位的可靠性信息「强可靠」改变为「弱可靠」,而获得经修改信息。于此范例中,所述第一码字不会被改变,也即将码字位「强1」改变为「弱1」,或将「强0」改变为「弱0」。解码电路120于步骤S430中可以使用所述经修改信息对第一码字再一次进行所述软解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字的可靠性信息(或称权重)并再一次进行所述软解码。在再一次进行所述软解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
以并用「翻转数据」与「弱化权重」为例,当步骤S240的标记信息指出第二码字(可被成功解码的其他码字)的一个码字位至经解码数据的对应位发生变化,并且该码字位的可靠性信息指出该码字位为「强可靠」时,解码电路120于步骤S490中可以将该码字位「强1」改变为「弱0」,或将「强0」改变为「弱1」,而获得经修改码字与经修改信息。解码电路120于步骤S430中可以使用所述经修改信息对所述经修改码字再一次进行所述软解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字与其可靠性信息(或称权重)并再一次进行所述软解码。在再一次进行所述软解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
以「标记擦除」为例,所述「参考信息」可以包括可靠性信息(或称权重)与擦除信息。当步骤S240的标记信息指出第二码字(可被成功解码的其他码字)的一个码字位至经解码数据的对应位发生变化,并且该码字位的可靠性信息指出码字位为「强可靠」时,解码电路120于步骤S490中可以将该码字位的擦除信息标记为「中性」,而获得经修改信息。解码电路120于步骤S430中可以使用所述经修改信息对第一码字再一次进行所述软解码。换言之,从被成功解码的第二码字撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字的擦除信息并再一次进行所述软解码。在再一次进行所述软解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
图5是依照本发明实施例说明图1所示解码电路120的电路方块示意图。图5所示解码电路120包括控制器121、低密度同位检查(LDPC)解码器电路122、第一标记123、第二标记124、或门125、第一与门126、第二与门127以及输出缓冲器128。图5所示第一标记123、第二标记124、或门125、第一与门126、第二与门127适用于经解码数据的多个位中的一个位。图5所示第一标记123、第二标记124、或门125、第一与门126、第二与门127的相关说明可以类推至经解码数据的其他位,故不再赘述。也即,假设经解码数据有8个位,则图5所示电路组合(第一标记123、第二标记124、或门125、第一与门126、第二与门127视为一个电路组合)也有8个。
非易失性存储器21可以依据控制器121的命令来设定一个或多个读取电压(或称门槛电压)。依照这或这些读取电压,非易失性存储器21可以将对应数据电压组转换为对应的码字101。低密度同位检查(LDPC)解码器电路122耦接至控制器121与缓冲电路110。LDPC解码器电路122可以使用缓冲电路110所提供的参考信息对缓冲电路110所提供的码字进行LDPC解码。于本实施例中,所述参考信息包括「可靠性信息」(或称权重)。在一些实施例中,此可靠性信息可以是解码电路120进行软解码的过程中所产生,然后解码电路120将此可靠性信息存放在缓冲电路110。在另一些实施例中,此可靠性信息可以是解码电路120下命令给非易失性存储器21,而由非易失性存储器21产生,然后非易失性存储器21将此可靠性信息存放在缓冲电路110。
当一个码字(称为第二码字)解码成功后,LDPC解码器电路122可以产生经解码数据。LDPC解码器电路122可以检查此第二码字的一个码字位至经解码数据的对应位是否发生「变化」。所述「发生变化」的条件可以参照图1至图4的相关说明,故不再赘述。举例来说,当此第二码字的某一个码字位为逻辑1且经解码数据的对应位为逻辑0,并且此码字位的可靠性信息指出此码字位为「强可靠」时,LDPC解码器电路122设置(set)第一标记123,否则重设(reset)第一标记123。当此码字位为逻辑0且经解码数据的对应位为逻辑1,并且此码字位的可靠性信息指出此码字位为「强可靠」时,LDPC解码器电路122设置第二标记124,否则重设第二标记124。
或门125的第一输入端与第二输入端分别耦接至第一标记123与第二标记124。第一与门126的第一输入端耦接至或门125的输出端。第一与门126的第二输入端接收致能信号EN。第二与门127的非反相输入端耦接至缓冲电路110,以接收此码字位的可靠性信息W/S。第二与门127的反相输入端耦接至第一与门126的输出端。第二与门127的输出端耦接至LDPC解码器电路122,以提供此码字位的可靠性信息W/S’。因此,假设致能信号EN为逻辑1,当此码字位「强1」转变至经解码数据的对应位「强0」或「弱0」时,或者当此码字位「强0」转变至经解码数据的对应位「强1」或「弱1」时,虽然缓冲电路110所提供的可靠性信息W/S为逻辑1(表示「强可靠」),第二与门127所输出的可靠性信息W/S’为逻辑0,以表示此码字位的位数据为「弱可靠」。因此,图5所示范例电路可以实现「弱化权重」的机制。LDPC解码器电路122可以使用可靠性信息W/S’(经修改信息)对缓冲电路110所提供的第一码字再一次进行LDPC解码。
综上所述,若与第一码字(LDPC解码失败的码字)共用相同位线的其他码字(第二码字)被成功解码,则从被成功解码的第二码字可以撷取特定信息(发生变化的位位置),然后将此特定信息回馈给解码失败的第一码字的可靠性信息(或称权重)并再一次进行LDPC解码。在再一次进行LDPC解码后,原本解码失败的第一码字往往因为此特定信息而得以被成功解码。
值得注意的是,在不同的应用情境中,ECC解码装置100、缓冲电路110、解码电路120、控制器121以及/或是LDPC解码器电路122的相关功能可以利用一般的编程语言(programming languages,例如C或C++)、硬件描述语言(hardware descriptionlanguages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的编程语言可以被布置为任何已知的计算机可存取媒体(computer-accessible medias),例如磁带(magnetic tapes)、半导体(semiconductors)存储器、磁盘(magnetic disks)或光盘(compact disks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wired communication)、无线通信(wireless communication)或其它通信介质传送所述编程语言。所述编程语言可以被存放在计算机的可存取媒体中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程码(programming codes)。对于硬件实现,结合本文实施例所公开的态样,利用在一个或多个控制器、微控制器、微处理器、专用集成电路(Application-specific integrated circuit,ASIC)、数字信号处理器(digital signal processor,DSP)、现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)和/或其他处理单元中的各种示例性的逻辑、逻辑区块、模组和电路可以被用于实现或执行本文所述功能。另外,本发明的装置和方法可以通过硬件和软件的组合来实现。
虽然本发明已以实施例公开如上,然而其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的精神和范围的情况下,应当可以作些许的更动与润饰,故本发明的保护范围当视所附的权利要求所界定的为准。

Claims (15)

1.一种错误检查纠正解码方法,包括:
由缓冲电路暂存非易失性存储器所输出的至少一个码字;
由解码电路对所述至少一个码字进行错误检查纠正解码,或是使用参考信息对所述至少一个码字进行该错误检查纠正解码,其中当该解码电路对所述至少一个码字的第一码字进行该错误检查纠正解码的结果为失败时,该解码电路对所述至少一个码字的第二码字进行该错误检查纠正解码而产生经解码数据;
由该解码电路检查该第二码字的每一码字位至该经解码数据的对应位是否发生变化;
依照发生变化的该对应位的比特位置,由该解码电路对应改变在该第一码字中位于该比特位置的位值而将该第一码字改为经修改码字,或者对应改变在该参考信息中位于该比特位置的参考值而将该参考信息改为经修改信息;以及
由该解码电路对该经修改码字再一次进行该错误检查纠正解码,或是使用该经修改信息对该第一码字再一次进行该错误检查纠正解码,或是使用该经修改信息对该经修改码字再一次进行该错误检查纠正解码。
2.如权利要求1所述的错误检查纠正解码方法,其中该第一码字与该第二码字来自于该非易失性存储器中的相同位线。
3.如权利要求2所述的错误检查纠正解码方法,其中该第一码字与该第二码字来自于该非易失性存储器中的相同成对页的不同层页。
4.如权利要求2所述的错误检查纠正解码方法,其中该第一码字与该第二码字来自于该非易失性存储器中的不同成对页。
5.如权利要求1所述的错误检查纠正解码方法,其中所述该对应位发生变化,是指该第二码字的码字位至该经解码数据的该对应位发生变化并且该码字位的可靠性信息指出该码字位为强可靠的状况。
6.如权利要求1所述的错误检查纠正解码方法,其中该参考信息包括可靠性信息,而所述对应改变在该参考信息中位于该比特位置的该参考值的步骤包括:
当该第二码字的码字位至该经解码数据的该对应位发生变化并且该码字位的该可靠性信息指出该码字位为强可靠时,由该解码电路将该码字位的该可靠性信息改变为弱可靠。
7.如权利要求1所述的错误检查纠正解码方法,其中该参考信息包括可靠性信息与擦除信息,而所述对应改变在该参考信息中位于该比特位置的该参考值的步骤包括:
当该第二码字的码字位至该经解码数据的该对应位发生变化并且该码字位的该可靠性信息指出该码字位为强可靠时,该解码电路将该码字位的该擦除信息标记为中性。
8.一种错误检查纠正解码装置,包括:
缓冲电路,用以暂存非易失性存储器所输出的至少一个码字;以及
解码电路,耦接至该缓冲电路,用以对所述至少一个码字进行错误检查纠正解码或是使用参考信息对所述至少一个码字进行该错误检查纠正解码,其中当该解码电路对所述至少一个码字的第一码字进行该错误检查纠正解码的结果为失败时,该解码电路对所述至少一个码字的第二码字进行该错误检查纠正解码而产生经解码数据,该解码电路检查该第二码字的每一码字位至该经解码数据的对应位是否发生变化,依照发生变化的该对应位的比特位置该解码电路对应改变在该第一码字中位于该比特位置的位值而将该第一码字改为经修改码字或者是对应改变在该参考信息中位于该比特位置的参考值而将该参考信息改为经修改信息,以及该解码电路对该经修改码字再一次进行该错误检查纠正解码或是使用该经修改信息对该第一码字再一次进行该错误检查纠正解码或是使用该经修改信息对该经修改码字再一次进行该错误检查纠正解码。
9.如权利要求8所述的错误检查纠正解码装置,其中该第一码字与该第二码字来自于该非易失性存储器中的相同位线。
10.如权利要求9所述的错误检查纠正解码装置,其中该第一码字与该第二码字来自于该非易失性存储器中的相同成对页的不同层页。
11.如权利要求9所述的错误检查纠正解码装置,其中该第一码字与该第二码字来自于该非易失性存储器中的不同成对页。
12.如权利要求8所述的错误检查纠正解码装置,其中所述该对应位发生变化,是指该第二码字的码字位至该经解码数据的该对应位发生变化并且该码字位的可靠性信息指出该码字位为强可靠的状况。
13.如权利要求8所述的错误检查纠正解码装置,其中该参考信息包括可靠性信息,当该第二码字的码字位至该经解码数据的该对应位发生变化并且该码字位的该可靠性信息指出该码字位为强可靠时,该解码电路将该码字位的该可靠性信息改变为弱可靠。
14.如权利要求8所述的错误检查纠正解码装置,其中该参考信息包括可靠性信息与擦除信息,当该第二码字的码字位至该经解码数据的该对应位发生变化并且该码字位的该可靠性信息指出该码字位为强可靠时,该解码电路将该码字位的该擦除信息标记为中性。
15.如权利要求8所述的错误检查纠正解码装置,其中该参考信息包括可靠性信息,而该解码电路包括:
第一标记;
第二标记;
低密度同位检查解码器电路,耦接至该缓冲电路,用以使用该参考信息对所述至少一个码字进行低密度同位检查解码,以及检查该第二码字的码字位至该经解码数据的该对应位是否发生变化,当该第二码字的该码字位为逻辑1且该经解码数据的该对应位为逻辑0并且该码字位的该可靠性信息指出该码字位为强可靠时,该低密度同位检查解码器电路设置第一标记,当该第二码字的该码字位为逻辑0且该经解码数据的该对应位为逻辑1并且该码字位的该可靠性信息指出该码字位为强可靠时,该低密度同位检查解码器电路设置第二标记;
或门,具有第一输入端与第二输入端分别耦接至该第一标记与该第二标记;
第一与门,具有第一输入端耦接至该或门的输出端,其中该第一与门的第二输入端接收致能信号;以及
第二与门,具有非反相输入端接收该码字位的该可靠性信息,其中该第二与门的反相输入端耦接至该第一与门的输出端,该第二与门的输出端耦接至该低密度同位检查解码器电路。
CN201710897106.XA 2017-09-04 2017-09-28 错误检查纠正解码方法与装置 Active CN107506257B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106130144 2017-09-04
TW106130144A TWI631570B (zh) 2017-09-04 2017-09-04 錯誤檢查糾正解碼方法與裝置

Publications (2)

Publication Number Publication Date
CN107506257A CN107506257A (zh) 2017-12-22
CN107506257B true CN107506257B (zh) 2020-05-19

Family

ID=60698995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710897106.XA Active CN107506257B (zh) 2017-09-04 2017-09-28 错误检查纠正解码方法与装置

Country Status (3)

Country Link
US (1) US10474529B2 (zh)
CN (1) CN107506257B (zh)
TW (1) TWI631570B (zh)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) * 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
CN111902804B (zh) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的***和方法
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538298A (zh) * 2003-04-17 2004-10-20 国际商业机器公司 计算机***中的纠错方法和装置
CN1754224A (zh) * 2002-12-24 2006-03-29 松下电器产业株式会社 记录和再现装置、记录装置、编辑装置、信息记录介质、记录和再现方法,记录方法和编辑方法
TW201335942A (zh) * 2012-02-24 2013-09-01 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
CN104572334A (zh) * 2013-10-14 2015-04-29 群联电子股份有限公司 解码方法、存储器存储装置与存储器控制电路单元
TW201604882A (zh) * 2014-07-16 2016-02-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN106201763A (zh) * 2015-05-22 2016-12-07 德克萨斯仪器股份有限公司 双模式纠错码/可写入一次存储器编解码器
CN106847342A (zh) * 2016-03-28 2017-06-13 威盛电子股份有限公司 非易失性存储器装置及其空页检测方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162965B (zh) * 2006-10-09 2011-10-05 华为技术有限公司 一种ldpc码的纠删译码方法及***
US8255758B2 (en) * 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
KR101398200B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
US8429498B1 (en) * 2009-03-25 2013-04-23 Apple Inc. Dual ECC decoder
CN102460977A (zh) * 2009-05-27 2012-05-16 诺沃尔赛特有限公司 具有迭代调度的ldpc码迭代解码
TWM417635U (en) * 2011-05-06 2011-12-01 Ite Tech Inc Memory device with high reliability
US9286972B2 (en) * 2012-02-22 2016-03-15 Silicon Motion, Inc. Method, memory controller and system for reading data stored in flash memory
US9577673B2 (en) * 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9270296B1 (en) * 2013-11-13 2016-02-23 Western Digital Technologies, Inc. Method and system for soft decoding through single read
US9342404B2 (en) * 2013-12-12 2016-05-17 Phison Electronics Corp. Decoding method, memory storage device, and memory controlling circuit unit
KR20160046467A (ko) * 2014-10-21 2016-04-29 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법
US9588772B2 (en) * 2015-02-20 2017-03-07 Kabushiki Kaisha Toshiba Memory controller and decoding method
US9524210B1 (en) * 2015-03-02 2016-12-20 Crossbar, Inc. Separating bits represented by a MLC in connection with ECC
US10090862B2 (en) * 2016-03-23 2018-10-02 SK Hynix Inc. Hybrid soft decoding algorithm for multiple-dimension TPC codes

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1754224A (zh) * 2002-12-24 2006-03-29 松下电器产业株式会社 记录和再现装置、记录装置、编辑装置、信息记录介质、记录和再现方法,记录方法和编辑方法
CN1538298A (zh) * 2003-04-17 2004-10-20 国际商业机器公司 计算机***中的纠错方法和装置
TW201335942A (zh) * 2012-02-24 2013-09-01 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
CN104572334A (zh) * 2013-10-14 2015-04-29 群联电子股份有限公司 解码方法、存储器存储装置与存储器控制电路单元
TW201604882A (zh) * 2014-07-16 2016-02-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN106201763A (zh) * 2015-05-22 2016-12-07 德克萨斯仪器股份有限公司 双模式纠错码/可写入一次存储器编解码器
CN106847342A (zh) * 2016-03-28 2017-06-13 威盛电子股份有限公司 非易失性存储器装置及其空页检测方法

Also Published As

Publication number Publication date
US20190073262A1 (en) 2019-03-07
TW201913686A (zh) 2019-04-01
TWI631570B (zh) 2018-08-01
CN107506257A (zh) 2017-12-22
US10474529B2 (en) 2019-11-12

Similar Documents

Publication Publication Date Title
CN107506257B (zh) 错误检查纠正解码方法与装置
KR102179228B1 (ko) 메모리에서의 티어드 오류 정정 코드(ecc) 동작
CN109388518B (zh) 数据写入方法
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
KR101369444B1 (ko) 정정 불가능한 에러를 해결하는 하이브리드 에러 정정 코딩
KR101990971B1 (ko) 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US10067824B2 (en) Error processing method, memory storage device and memory controlling circuit unit
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US20180024881A1 (en) System and method for adaptive multiple read of nand flash
US20150169406A1 (en) Decoding techniques for a data storage device
US10725863B2 (en) Memory system and method for operating the same
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20150186212A1 (en) Decoding method, memory storage device, and memory controlling circuit unit
KR20130027138A (ko) 에러 정정 방법 및 이를 이용하는 메모리 장치
CN109390027B (zh) 解码方法及相关的闪存控制器与电子装置
US10574272B2 (en) Memory system
US10685711B1 (en) Decoding method, memory controlling circuit unit and memory storage device
US20230100557A1 (en) Host-based error correction
CN111538621B (zh) 针对位线故障的软芯片猎杀恢复
CN113314179A (zh) 用于执行读取操作的存储器***及其操作方法
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
CN106847342B (zh) 非易失性存储器装置及其空页检测方法
US11082068B2 (en) Error correction circuit, memory controller having error correction circuit, and memory system having memory controller
TW201735049A (zh) 非依電性記憶體裝置及其空頁偵測方法
US20200066366A1 (en) Memory testing method and memory testing system

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