CN105468471A - 固态存储装置及其错误更正方法 - Google Patents

固态存储装置及其错误更正方法 Download PDF

Info

Publication number
CN105468471A
CN105468471A CN201410465339.9A CN201410465339A CN105468471A CN 105468471 A CN105468471 A CN 105468471A CN 201410465339 A CN201410465339 A CN 201410465339A CN 105468471 A CN105468471 A CN 105468471A
Authority
CN
China
Prior art keywords
software
llr
killer
voltage
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410465339.9A
Other languages
English (en)
Inventor
曾士家
吴昇翰
傅仁杰
吴郁姍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lite On Technology Corp
Original Assignee
Lite On Technology Corp
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 Lite On Technology Corp filed Critical Lite On Technology Corp
Priority to CN201410465339.9A priority Critical patent/CN105468471A/zh
Priority to US14/644,656 priority patent/US20160077914A1/en
Publication of CN105468471A publication Critical patent/CN105468471A/zh
Pending legal-status Critical Current

Links

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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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/1148Structural properties of the code parity-check or generator matrix
    • 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/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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/45Soft decoding, i.e. using symbol reliability information
    • 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/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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
    • G11C2029/0411Online error correction

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)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明为一种固态存储装置及其错误更正方法,该固态存储装置中的一控制器输出多个切割电压至一闪存,使得该闪存输出一软件数据(Soft?Information)至该控制器中的一软件译码器,该错误更正方法包括下列步骤:该软件译码器接收该软件数据,并根据一LLR(Log?Likelihood?Ratio)参数组进行该软件数据的一错误验证程序;以及,在该错误验证程序无法成功时,由一LLR表中取出多个LLR参数组其中之一来取代该原设定的LLR参数组,并再次进行该软件数据的该错误验证程序。

Description

固态存储装置及其错误更正方法
技术领域
本发明是有关于一种固态存储装置,且特别是有关于一种具备软件译码器(soft-decoder)的固态存储装置及其错误更正方法。
背景技术
众所周知,与非门闪存(NANDflashmemory)所组成的固态存储装置(solidstatedevice)已经非常广泛的应用于各种电子产品。例如SD卡、固态硬盘等等。
请参照图1,其所绘示为现有固态存储装置的示意图。固态存储装置100中包括一控制器150、一缓冲器170与一闪存160。控制器150连接至缓冲器170与闪存160。此外,固态存储装置100利用一外部总线110连接至一主机120。
举例来说,当主机120发出写入命令与写入地址至控制器150时,主机120将写入数据传递至控制器150。而控制器150中的硬件编译码器(hardcodec)155会据以产生错误更正码(ECC码),并将写入数据与ECC码一并写入闪存160中。反之,当主机120发出读取命令与读取地址至控制器150时,控制器150会由闪存160中读取对应的读取数据与ECC码。而经由硬件编译码器155进行译码并错误验证无误后,控制器150将正确的读取数据输出至主机120。此外,缓冲器170用来作为暂存读取数据与写入数据的用途。
一般来说,闪存160中每个存储单元中都包括一浮栅晶体管(floatinggatetransistor),其浮栅(floatinggate)可以存储热载子(hotcarrier)。而根据热载子存储量的多少可决定该浮栅晶体管的临界电压(thresholdvoltage,简称VTH),以及该存储单元的的存储状态。
此外,每个存储单元存储的数据量还可被区分为每个存储单元存储一位的单层存储单元(Single-LevelCell,简称SLC)、每个存储单元存储二位的多层存储单元(Multi-LevelCell,简称MLC)、与每个存储单元存储三位的三层存储单元(Triple-LevelCell,简称TLC)。以下仅以SLC存储单元为例来作说明。
请参照图2,其所绘示为SLC存储单元的存储状态与临界电压关系的示意图。基本上,SLC闪存的一个存储单元可以有二个存储状态A、B。浮栅在未注入热载子时,可视为存储状态A(例如逻辑存储状态1)。而浮栅注入热载子后,可视为存储状态B(例如逻辑存储状态0)。
由于存储单元的特性,并非每个存储状态B的存储单元都具有相同的临界电压,而是会呈现一分布曲线(distributioncurve),且其分布曲线可对应至一中位临界电压。同理,并非每个存储状态A的存储单元都具有相同的临界电压。
由图2可知,存储状态A的中位临界电压为VTHA(例如5V),存储状态B的中位临界电压为VTHB(例如20V)。换句话说,在统计存储状态A的所有存储单元的临界电压后,具有中位临界电压VTHA的存储单元数目最多;而在统计存储状态B的所有存储单元的临界电压后,具有中位临界电压VTHB的存储单元数目最多。
此外,在读取存储单元的数据时,控制器150可提供一切割电压(slicingvoltage,Vs1)至存储单元的浮栅晶体管,用来区分存储单元的存储状态。如图2所示,提供切割电压(Vs1)至存储单元后,如果存储单元可被开启,则该存储单元的存储状态为存储状态A;如果存储单元无法被开启,则该存储单元的存储状态为存储状态B。
如图2所示,在存储状态A的分布曲线中,有a个数目的存储单元,其临界电压大于切割电压。同理,在存储状态B的分布曲线可中,有b个数目的存储单元,其临界电压小于切割电压。因此,在读取存储单元的数据时,会有a个数目的存储状态A的存储单元被误判为存储状态B。并且,会有b个数目的存储状态B的存储单元被误判为存储状态A。此时,即需要控制器150中的硬件编译码器155来更正误判的存储单元。
现有的固态存储装置100中,控制器150所提供的硬件编译码器155可为BCH编译码器。而控制器150提供切割电压(Vs1)用来将存储单元区分为二个不同状态,并利用硬件编译码器155来更正误判的存储单元。
当闪存160中的存储单元经过多次程序与擦除之后,存储单元的特性会变差使得闪存160的寿命变短。此时的闪存将会产生更多误判的存储单元,使得数据错误率上升造成硬件编译码器155无法成功更正错误的存储单元。
当上述事件发生时,控制器150需要进行切割电压校正(calibration)程序来更新切割电压Vs1。之后,利用更新的切割电压Vs1再次对闪存160进行读取重试(readretry),并再次利用硬件编译码器155来更正误判的存储单元。依经验,只利用硬件译码器做三次以内的更新切割电压后,再次对闪存160进行重新读取再译码,而能译码成功是不容易达成的,是要经多次的更新切割电压,再读取闪存,再解码,因此相对花费较长的时间。
发明内容
本发明是有关于一种固态存储装置,连接至一主机,该固态存储装置包括:一控制器,连接至该主机,且该控制器中包括一软件译码器;一闪存,连接至该控制器,且接收该控制器输出的多个切割电压,并据以输出一软件数据;以及一缓冲器,连接至该控制器;其中,该软件译码器根据一LLR参数组进行该软件数据的一错误验证程序且该错误验证程序无法成功时,由一LLR表中取出另一LLR参数组来取代该预设LLR参数组,并再次进行该软件数据的该错误验证程序。
本发明是有关于一种固态存储装置的错误更正方法,该固态存储装置中的一控制器输出多个切割电压至一闪存,使得该闪存输出一软件数据至该控制器中的一软件译码器,该错误更正方法包括下列步骤:该软件译码器接收该软件数据,并根据一LLR参数组进行该软件数据的一错误验证程序;以及,在该错误验证程序无法成功时,由一LLR表中取出多个LLR参数组其中之一来取代该原设定的LLR参数组,并再次进行该软件数据的该错误验证程序。由于本发明在错误验证程序无法成功时只更新原LLR参数组,不用重新读取闪存相对地节省不少时间。若能有好几组LLR参数组,更能在无法成功译码时,试试这几组LLR参数组。若均无法成功译码时,或许能预测原切割电压是太大或太小。
为了对本发明的上述及其他方面有更好的了解,下文特举优选实施例,并配合所附附图,作详细说明如下:
附图说明
图1所绘示为现有固态存储装置的示意图。
图2所绘示为SLC存储单元的存储状态与临界电压关系的示意图。
图3所绘示为本发明固态存储装置的示意图。
图4所绘示为SLC存储单元的存储状态、临界电压与切割电压之间的关系示意图。
图5所绘示为本发明运用于固态存储装置的错误更正方法流程图。
【符号说明】
100、300:固态存储装置;
110、310:外部总线;
120、320:主机;
150、350:控制器;
155:硬件编译码器;
160、360:闪存;
170、370:缓冲器;
355:编译码器;
356:硬件编译码器;
357:软件译码器。
具体实施方式
请参照图3,其所绘示为本发明固态存储装置的示意图。固态存储装置300中包括一控制器350、一缓冲器370与一闪存360。控制器350连接至缓冲器370与闪存360。此外,固态存储装置300利用一外部总线310连接至一主机320。
此外,控制器中的编译码器355由硬件编译码器356以及软件译码器(softdecode)357所组成。编译码器355可为LDPC编译码器(低密度奇偶检查(Low-densityparity-check,简称LDPC)编译码器)。
当主机320发出写入命令与写入地址至控制器350时,主机320将写入数据传递至控制器350。而控制器350中的编译码器(codec)355会据以产生错误更正码(ECC码),并将写入数据与ECC码一并写入闪存360中。反之,当主机320发出读取命令与读取地址至控制器350时,控制器350会由闪存360中读取对应的读取数据与ECC码。而经由编译码器355进行错误更正后,控制器350将正确的读取数据输出至主机320。
由于控制器350中的编译码器355中具备硬件编译码器356与软件译码器357。因此,控制器350可以根据读取数据的状况来选择利用硬件编译码器356或者软件译码器357进行错误验证。
一般来说,软件译码器357具备较好的错误更正能力。因此,当控制器350利用硬件编译码器356无法完成读取数据的错误验证或者数据错误率太高时,控制电路350会改用软件译码器357来进行读取数据的错误验证。
在利用硬件编译码器356来读取存储单元的数据时,控制器350提供一硬件切割电压(Hardslicingvoltage,Vhs)至闪存360内,用来区分存储单元的存储状态。而利用硬件切割电压(Vhs)所获得的读取数据可称为硬件数据(harddata)。
如图4所示,提供硬件切割电压(Vhs)至存储单元后,如果存储单元可被开启,则该存储单元的存储状态为存储状态A;如果存储单元无法被开启,则该存储单元的存储状态为存储状态B。而如图4所示,硬件切割电压(Vhs)左侧的存储状态B的存储单元会被误判为存储状态A的存储单元;硬件切割电压(Vhs)右侧的存储状态A的存储单元会被误判为存储状态B的存储单元。而硬件编译码器356即用来更正硬件数据中被误判的存储单元。
在利用软件译码器357来读取存储单元的数据时,控制器350提供一硬件切割电压以及二软件切割电压(Softslicingvoltage,Vss1与Vss2)至闪存360内,用来区分存储单元的存储状态。而利用上述多个切割电压所获得的读取数据可称为软件数据(softdata)。
如图4所示,第一软件切割电压(Vss1)小于硬件切割电压(Vhs),硬件切割电压(Vhs)小于第二软件切割电压(Vss2)。换句话说,控制器350依次利用三个切割电压至闪存300来判断存储单元的存储状态时,会产生四种可能的结果。
当存储单元的临界电压位于第一软件切割电压(Vss1)左侧的SA区间时,其视为强存储状态A(strongAstate)的存储单元;当存储单元的临界电压位于第一软件切割电压(Vss1)与硬件切割电压(Vhs)之间的WA区间时,其视为弱存储状态A(weakAstate)的存储单元;当存储单元的临界电压位于硬件切割电压(Vhs)与第二软件切割电压(Vss2)之间的WB区间时,其视为弱存储状态B(weakBstate)的存储单元;当存储单元的临界电压位于第二软件切割电压(Vss2)右侧的SB区间时,其视为强存储状态B(strongBstate)的存储单元。而软件译码器357即根据上述方式来更正软件数据来中被误判的存储单元。
此外,于软件译码器357需要有一LLR(对数近似比(log-likelihoodratio,简称LLR))参数组来进行软件数据的错误验证。基本上,此LLR参数组可由每个存储状态分布曲线来获得。
本实施例中每个区间的LLR值定义为也可用其它具有相同含义的对数函数,甚至自然对数函数。其中,P(x=B)代表第x位为存储状态B的机率,P(x=A)代表第x位为存储状态A的机率。
以图4的WA区间为例来作说明。WA区间中状态B分布区曲线的面积为b1,状态A分布区曲线的面积为b2,则WA区间的LLR值即为log2[b1/b2]。
因此,假设SA区间中,存储状态A的机率为0.9,存储状态B的机率为0.1,则SA区间的LLR值为log2[0.1/0.9]=-3.17;假设WA区间中,存储状态A的机率为0.7,存储状态B的机率为0.3,则WA区间的LLR值为log2[0.3/0.7]=-1.22;假设WB区间中,存储状态A的机率为0.3,存储状态B的机率为0.7,则WB区间的LLR值为log2[0.7/0.3]=+1.22;假设SB区间中,存储状态A的机率为0.1,存储状态B的机率为0.9,则SB区间的LLR值为log2[0.9/0.1]=+3.17。
很明显地,当LLR值为负值时,代表存储单元为存储状态A的机率较高;当LLR值为正值时,代表存储单元为存储状态B的机率较高。此外,当LLR值小于-3.17时,代表存储单元为存储状态A的机率已经高于90%;当LLR值大于+3.17时,代表存储单元为存储状态B的机率已经高于90%。
换句话说,软件译码器357中可利用-3.17、-1.22、+1.22、+3.17作为软件译码器357的一LLR参数组。其中,强存储状态A的SA区间对应的LLR值为-3.17;弱存储状态A的WA区间对应的LLR值为-1.22;弱存储状态B的WB区间对应的LLR值为+1.22;强存储状态B的SB区间对应的LLR值为+3.17。而软件译码器357利用该LLR参数组即可对软件数据进行错误验证。
同理,当闪存160中的存储单元经过多次程序与擦除之后,存储单元的特性会变差使得闪存360的寿命变短。此时的闪存将会产生更多误判的存储单元,使得数据错误率上升造成软件译码器357无法成功更正错误的存储单元。
当上述事件发生时,一般的做法是使控制器350进行切割电压校正程序来更新硬件割电压Vhs与二个软件切割电压Vss1与Vss2。之后,再次对闪存360进行读取重试(readretry),并再次利用软件译码器357来更正误判的存储单元。
由于进行切割电压校正程序会相对花费较多时间大约需要50~100μs。因此本发明提出一种固态存储装置的译码方法,该方法利用多个LLR参数组并运用于软件译码器357,用来让软件译码器357进行错误验证。
请参考图5,其所绘示为本发明运用于固态存储装置的错误更正方法流程图。此方法运用于控制器350利用软件译码器357来进行错误更正的流程。
首先,提供多个切割电压(包括硬件切割电压与多个软件切割电压)至闪存360,使得闪存输出一软件数据至控制器350。而软件译码器357接收软件数据,并根据一预设LLR参数组进行软件数据的错误验证程序(步骤S510)。
接着,当软件译码器357的错误验证程序成功完成并且产生读取数据时(步骤S520),则输出读取数据至主机320。
反之,当软件译码器357的错误验证程序无法成功完成并且产生读取数据时(步骤S520),则由LLR表(LLRtable)中取出其中之一用来取代预设LLR参数组并进行软件数据的错误验证程序(步骤S530)。之后,回到步骤S520继续进行判断。
由以上的说明可知,本发明是于提供一LLR表至软件译码器357,且LLR表中存储多个LLR参数组。当软件译码器357的错误验证程序无法成功完成并且产生读取数据时,则控制器由LLR表中取出其中之一用来取代软件译码器357中原LLR参数组并进行软件数据的错误验证程序。
由于控制器更新软件译码器357原LLR参数组的时间非常短,大约1000ns即可完成再一次的软件数据的错误验证程序。因此,相比于切割电压校正程序(50~100μs)可以节省更多的时间。
此外,当软件译码器357已经使用了LLR表中所有的LLR参数组之后,仍无法成功完成并且产生读取数据时,则控制器350再启动切割电压校正程序,用以更新硬件切割电压Vhs与二个软件切割电压Vss1与Vss2。之后,再次对闪存360进行读取重试(readretry)而获得另一软件数据,并再次利用软件译码器357来更正误判的存储单元。
由以上的说明可知,本发明提出一种运用固态存储装置中,软件译码器357的错误更正的流程。可以让软件译码器357快速地完成软件数据的错误验证程序。
当然,本发明的固态存储装置并不限定于同时具有硬件编译码器356与软件译码器357的控制器350。控制器中仅具有软件编译码器也可以运用于本发明并且达成本发明的效果。
综上所述,虽然本发明已以优选实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更改与修饰。因此,本发明的保护范围当视权利要求所界定者为准。

Claims (10)

1.一种固态存储装置,连接至一主机,其特征在于,该固态存储装置包括:
一控制器,连接至该主机,且该控制器中包括一软件译码器;
一闪存,连接至该控制器,且接收该控制器输出的多个切割电压,并据以输出一软件数据;以及
一缓冲器,连接至该控制器;
其中,该软件译码器根据一预设对数近似比(LLR)参数组进行该软件数据的一错误验证程序且该错误验证程序无法成功时,由一对数近似比(LLR)表中取出另一对数近似比(LLR)参数组来取代该预设对数近似比(LLR)参数组,并再次进行该软件数据的该错误验证程序。
2.如权利要求1所述的固态存储装置,其中该软件译码器为一低密度奇偶检查(LDPC)译码器。
3.如权利要求1所述的固态存储装置,其中以该另一对数近似比(LLR)参数组进行该软件数据的该错误验证程序且该错误验证程序无法成功时,启动一切割电压校正程序,用以更新该些切割电压。
4.如权利要求1所述的固态存储装置,其中该些切割电压包括一硬件切割电压、一第一软件切割电压与一第二软件切割电压;该硬件切割电压大于该第一软件切割电压,且该硬件切割电压小于该第二软件切割电压。
5.如权利要求1所述的固态存储装置,其中该软件译码器根据该预设对数近似比(LLR)参数组进行该软件数据的该错误验证程序成功时,产生一读取数据至该主机。
6.一种固态存储装置的错误更正方法,其特征在于,该固态存储装置中的一控制器输出多个切割电压至一闪存,使得该闪存输出一软件数据至该控制器中的一软件译码器,该错误更正方法包括下列步骤:
该软件译码器接收该软件数据,并根据一预设对数近似比(LLR)参数组进行该软件数据的一错误验证程序;以及
在该错误验证程序无法成功时,由一对数近似比(LLR)表中取出多个对数近似比(LLR)参数组其中之一来取代该预设对数近似比(LLR)参数组,并再次进行该软件数据的该错误验证程序。
7.如权利要求6所述的错误更正方法,其中该软件译码器为一低密度奇偶检查(LDPC)译码器。
8.如权利要求6所述的错误更正方法,其中以该对数近似比(LLR)表中的所有对数近似比(LLR)参数组进行该软件数据的该错误验证程序且该错误验证程序无法成功时,启动一切割电压校正程序,用以更新该些切割电压。
9.如权利要求6所述的错误更正方法,其中该些切割电压包括一硬件切割电压、一第一软件切割电压与一第二软件切割电压;该硬件切割电压大于该第一软件切割电压,且该硬件切割电压小于该第二软件切割电压。
10.如权利要求6所述的错误更正方法,其中还包括下列步骤:
在该错误验证程序无法成功时,产生一读取数据。
CN201410465339.9A 2014-09-12 2014-09-12 固态存储装置及其错误更正方法 Pending CN105468471A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410465339.9A CN105468471A (zh) 2014-09-12 2014-09-12 固态存储装置及其错误更正方法
US14/644,656 US20160077914A1 (en) 2014-09-12 2015-03-11 Solid state storage device and error correction method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410465339.9A CN105468471A (zh) 2014-09-12 2014-09-12 固态存储装置及其错误更正方法

Publications (1)

Publication Number Publication Date
CN105468471A true CN105468471A (zh) 2016-04-06

Family

ID=55454862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410465339.9A Pending CN105468471A (zh) 2014-09-12 2014-09-12 固态存储装置及其错误更正方法

Country Status (2)

Country Link
US (1) US20160077914A1 (zh)
CN (1) CN105468471A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399110A (zh) * 2017-02-07 2018-08-14 阿里巴巴集团控股有限公司 高容量固态驱动器中的软信息管理
WO2019033647A1 (zh) * 2017-08-16 2019-02-21 深圳市江波龙电子有限公司 闪存的纠错方法、装置、设备以及计算机可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10222996B2 (en) * 2017-02-07 2019-03-05 Western Digital Technologies, Inc. Read operation and soft decoding timing
TWI664634B (zh) * 2018-08-17 2019-07-01 慧榮科技股份有限公司 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
US11394404B1 (en) 2021-01-15 2022-07-19 Seagate Technology Llc Parameter estimation with machine learning for flash channel

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6634004B1 (en) * 2000-04-28 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Threshold analysis system capable of deciding all threshold voltages included in memory device through single processing
US20040247238A1 (en) * 2001-10-23 2004-12-09 Georgia Tech Research Corporation Spatially resolved equalization and forward error correction for multimode fiber links
US20070208905A1 (en) * 2006-03-06 2007-09-06 Ramot At Tel-Aviv University Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US20110083060A1 (en) * 2009-10-05 2011-04-07 Kabushiki Kaisha Toshiba Memory system and control method for the same
US20110153918A1 (en) * 2009-12-23 2011-06-23 Silicon Motion, Inc. Data writing method and data storage device
US20130135927A1 (en) * 2011-11-30 2013-05-30 Sandisk Technologies Inc. Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7797480B2 (en) * 2007-03-29 2010-09-14 Sandisk Corporation Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7876621B2 (en) * 2007-04-23 2011-01-25 Sandisk Il Ltd. Adaptive dynamic reading of flash memories
US7656707B2 (en) * 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
US8406048B2 (en) * 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
EP2340539A1 (en) * 2008-09-30 2011-07-06 LSI Corporation Methods and apparatus for soft data generation for memory devices
US8213255B2 (en) * 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8576625B1 (en) * 2010-04-20 2013-11-05 Marvell International Ltd. Decoder parameter estimation using multiple memory reads
US8531888B2 (en) * 2010-07-07 2013-09-10 Marvell World Trade Ltd. Determining optimal reference voltages for progressive reads in flash memory systems
TWI447731B (zh) * 2010-12-01 2014-08-01 Phison Electronics Corp 資料讀取方法、記憶體儲存裝置及其控制器
US9898361B2 (en) * 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US8665650B2 (en) * 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8693258B2 (en) * 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US9009574B2 (en) * 2011-06-07 2015-04-14 Marvell World Trade Ltd. Identification and mitigation of hard errors in memory systems
JP2013080450A (ja) * 2011-09-22 2013-05-02 Toshiba Corp メモリ装置
US8913437B2 (en) * 2011-12-15 2014-12-16 Marvell World Trade Ltd. Inter-cell interference cancellation
KR101968746B1 (ko) * 2011-12-30 2019-04-15 삼성전자주식회사 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템
US8856611B2 (en) * 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
KR102089570B1 (ko) * 2012-06-04 2020-03-16 삼성전자주식회사 저장 장치 및 그것의 데이터 처리 방법
US9159407B2 (en) * 2012-10-22 2015-10-13 Apple Inc. Soft readout from analog memory cells in the presence of read threshold errors
US9135155B2 (en) * 2012-11-30 2015-09-15 Sandisk Technologies Inc. Storage and retrieval of shaped data
US20140169102A1 (en) * 2012-12-19 2014-06-19 Western Digital Technologies, Inc. Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems
US9009576B1 (en) * 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9176815B2 (en) * 2013-11-28 2015-11-03 Seagate Technology Llc Flash channel with selective decoder likelihood dampening

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6634004B1 (en) * 2000-04-28 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Threshold analysis system capable of deciding all threshold voltages included in memory device through single processing
US20040247238A1 (en) * 2001-10-23 2004-12-09 Georgia Tech Research Corporation Spatially resolved equalization and forward error correction for multimode fiber links
US20070208905A1 (en) * 2006-03-06 2007-09-06 Ramot At Tel-Aviv University Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US20110083060A1 (en) * 2009-10-05 2011-04-07 Kabushiki Kaisha Toshiba Memory system and control method for the same
US20110153918A1 (en) * 2009-12-23 2011-06-23 Silicon Motion, Inc. Data writing method and data storage device
US20130135927A1 (en) * 2011-11-30 2013-05-30 Sandisk Technologies Inc. Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399110A (zh) * 2017-02-07 2018-08-14 阿里巴巴集团控股有限公司 高容量固态驱动器中的软信息管理
CN108399110B (zh) * 2017-02-07 2021-07-23 阿里巴巴集团控股有限公司 高容量固态驱动器中的软信息管理
WO2019033647A1 (zh) * 2017-08-16 2019-02-21 深圳市江波龙电子有限公司 闪存的纠错方法、装置、设备以及计算机可读存储介质

Also Published As

Publication number Publication date
US20160077914A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
US10521292B2 (en) Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information
US9639419B2 (en) Read voltage level estimating method, memory storage device and memory control circuit unit
TWI508082B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
US9043678B2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
CN103544073B (zh) 读取闪存中区块的数据的方法及相关的记忆装置
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
US11010065B2 (en) Read retry method for solid state storage device
TWI545572B (zh) 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置
US11430540B2 (en) Defective memory unit screening in a memory system
TWI527040B (zh) 資料寫入方法、記憶體儲存裝置與記憶體控制器
US11243838B2 (en) Methods and apparatuses for error correction
CN105468471A (zh) 固态存储装置及其错误更正方法
CN109933455A (zh) 动态多级解码
US20150286527A1 (en) Solid state drive and associated error check and correction method
CN106297883B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN105808371A (zh) 数据备份与恢复方法、控制芯片及存储装置
CN104572334A (zh) 解码方法、存储器存储装置与存储器控制电路单元
US11630722B2 (en) Method and system for decoding data based on association of first memory location and second memory location
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
CN104794019A (zh) 一种嵌入式存储器的数据保护方法及装置
US11146295B1 (en) Decoding method, memory storage device, and memory controlling circuit unit
CN105575440A (zh) 错误处理方法、存储器储存装置及存储器控制电路单元
CN104978147A (zh) 固态储存装置及其错误更正控制方法
US11587630B2 (en) Program with consecutive verifies for non-volatile memory
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160406