固态储存装置及其联合编解码方法

文档序号:6764189阅读:188来源:国知局
固态储存装置及其联合编解码方法
【专利摘要】一种闪存中的联合编解碼方法,包括下列步骤:于写入资料时,将用户资料分别进行硬性编码以及软性编码,并产生第一检查码与第二检查码;将用户资料、第一检查码与第二检查码写入闪存模块;以及,于读取资料时,根据第一检查码进行硬性编码的解码,并于解码成功时输出用户资料,以及于解码失败时根据第二检查码进行该软性编码的解码。
【专利说明】固态储存装置及其联合编解码方法
【技术领域】
[0001]本发明是有关于一种固态储存装置与其控制方法,且特别是有关于一种固态储存装置及其联合编解码方法。
【背景技术】
[0002]众所周知,与非门闪存(NAND flash memory)模块所组成的固态储存装置已经非常广泛的应用于各种电子产品。例如SD卡、固态硬盘等等。基本上,在固态储存装置等相关产品中,主要使用Bose-Chaudhur1-Hocquenghem码(以下简称BCH码)来作为错误更正码(ECC code)帮助提升固态储存装置中闪存模块的资料可靠度。
[0003]—般来说,固态储存装置内的闪存模块中包括多个存储单元排列而成,而每个存储单元内包括一个浮动栅晶体管(floating gatetransistor)。根据储存容量来区分为每个存储单元储存一位的单层存储单元(Single-Level Cell,简称SLC)闪存、每个存储单元储存二位的多层存储单元(Mult1-Level Cell,简称MLC)闪存、与每个存储单元储存三位的三层存储单元(Triple-Level Cell,简称TLC)闪存模块。
[0004]基本上,浮动栅晶体管中的浮动栅(floating gate)可以储存热载流子(hotcarrier),而根据热载流子储存量的多少可决定该浮动栅晶体管的临界电压(thresholdvoltage,简称VTH)。也就是说,具有较高的临界电压的浮动栅极晶体管需要较高的栅极电压(gate voltage)来开启(turnon)浮动栅晶体管;反之,具有较低的临界电压的浮动栅极晶体管则可以用较低的栅极电压来开启浮动栅晶体管。
[0005]因此,于闪存的程序周期(program cycle)时,可控制注入浮动栅极的热载流子量,进而改变其临界电压。而在读取周期(read cycle)时,固态储存装置中的感测电路(sensing circuit)即可根据浮动栅晶体管的临界电压来决定其储存状态。
[0006]请参照图1,其所绘示为MLC闪存模块中的储存状态与临界电压关系示意图。在MLC闪存模块中,一个存储单元可以有四种储存状态E、A、B、C。在未注入热载流子时,可视为状态E (例如逻辑状态11),而随着热载流子注入存储单元的数量渐增,依序为状态A (例如逻辑状态10)、状态B (例如逻辑状态00)、状态C (例如逻辑状态01)。其中,状态C具有最高电平,状态B次之,状态A具在次之,状态E具有最低电平。
[0007]然而,于相同的储存状态下并非每个存储单元的临界电压都会相同,而是会呈现一临界电压分布,其分布具有一中位(median)临界电压。以图1为例,状态E时的中位临界电压约为Vthe(例如0V),状态A时的中位临界电压约为VTHA(例如10V),状态B时的中位临界电压为Vthb (例如20V),状态C时的中位临界电压约为Vth。(例如30V)。因此,利用存储单元的临界电压分布与第一切割电压Vsl、第二切割电压Vs2、第三切割电压Vs3即可区别出存储单元中的储存状态。
[0008]然而,由于相同的储存状态下的存储单元的临界电压是呈现一临界电压分布,因此部份的存储单元的储存状态会产生误判。以储存状态B与储存状态C的临界电压分布曲线为例,区域b内的存储单元将会被误判为储存状态C,而区域c内的存储单元将会被误判为储存状态B。
[0009]因此,利用BCH码的编码方式即可在读取时将错误的储存状态更正。然而随着工艺微缩,对于错误更正码的更错能力的要求也逐渐提高。为了提高更错能力,目前主流的BCH码需要大量的检查码(parity bits),如此将造成面积成本的提高。
[0010]为了解决这个问题,低密度奇偶校验码(low-density parity checkcode,以下简称LDPC码)利用软性信息(soft information)解码的特性,可以在较少检查码的情况下,获得较高的更错能力。
[0011]请参照图2,其所绘示为软性信息解码示意图。除了以三个切割电压Vsl、Vs2、Vs3来区别存储单元的储存状态之外,利用LDPC码可以再根据软性信息来提高更错能力。举例来说,在三个切割电压Vsl、Vs2、Vs3之外,可提供第一电压区间(Vsl-?Vsl+)、第二电压区间(Vs2-?Vs2+)、与第三电压区间(Vs3-?Vs3+)。
[0012]以储存状态B与储存状态C的临界电压分布曲线为例,当存储单元的临界电压位在区域b且该存储单元被读取时,并不会直接提供储存状态C的资料,而是提供一机率值来进行后续资料校正的用途。此机率值为例如70%的储存状态C。
[0013]同理,位在区域c且该存储单元被读取时,也是提供一机率值来进行后续资料校正的用途。此机率值为例如80%的储存状态B。以上说明中的机率值即可视为软性信息,并且搭配LDPC码来进行资料校正。
[0014]由以上的说明可知,为取得软性信息,需要提高判断存储单元临界电压的读取层级(read level)与加大资料带宽,这些都将导致硬件成本的提升。

【发明内容】

[0015]本发明的目的在于提出一种固态储存装置及其联合编解码方法。于资料的编码时,利用第一种编码方式以及第二种编码方式产生二组各自独立的检查码。于资料解码时,利用第一种编码方式的解码器以及第二种编码方式的解码器的循环解码架构来产生正确的资料。
[0016]本发明提出一种固态储存装置中的联合编解码方法,包括下列步骤:于写入资料时,将一用户资料分别进行一硬性编码以及一软性编码,并产生一第一检查码与一第二检查码;将该用户资料、该第一检查码与该第二检查码写入一闪存模块;以及,于读取资料时,根据该第一检查码进行该硬性编码的解码,并于解码成功时输出该用户资料,以及于解码失败时根据该第二检查码进行该软性编码的解码。
[0017]本发明有关于一种固态储存装置中的联合编解码方法,包括下列步骤:于写入资料时,将一用户资料分别进行一硬性编码以及一软性编码,并产生一第一检查码与一第二检查码;将该用户资料、该第一检查码与该第二检查码写入一闪存模块;以及,于读取资料时,根据该第二检查码进行该软性编码的解码,于解码成功时输出该用户资料,以及于解码失败时,根据该第一检查码进行该硬性编码的解码。
[0018]本发明有关于一种固态储存装置,包括:多个闪存模块;以及一存储器控制器,连接至所述闪存模块,且该存储器控制器中包括:多个硬性编码的编解码器,对应至所述闪存模块与一软性编码的编解码器;其中,该存储器控制器将一用户资料分别以一第一硬性编码的编解码器以及该软性编码的编解码器来产生一第一检查码与一第二检查码,并将该用户资料、该第一检查码与该第二检查码写入一第一闪存模块;其中,该存储器控制器于读取资料时,选择性地利用该硬性编码的编解码器根据该第一检查码还原该用户资料,以及/或利用该软性编码的编解码器根据该第二检查码还原该用户资料。
[0019]本发明有关于一种固态储存装置中的联合编解码方法,包括下列步骤:于写入资料时,将一用户资料分别根据一第一编码方式以及一第二编码方式进行编码,并产生一第一检查码与一第二检查码;将该用户资料、该第一检查码与该第二检查码写入一闪存模块;以及于读取资料时,根据该第一检查码进行该第一编码方式的解码,并于解码成功时输出该用户资料,以及于解码失败时根据该第二检查码进行该第二编码方式的解码。
【专利附图】

【附图说明】
[0020]为了对本发明之上述及其他方面有更佳的了解,下文特举较佳实施例,并配合附图,作详细说明如下,其中:
[0021]图1所绘示为MLC闪存中的储存状态与临界电压关系示意图。
[0022]图2所绘示为软性信息解码示意图。
[0023]图3所绘示为本发明固态储存装置的实施例示意图。
[0024]图4A所绘示为本发明固态储存装置于资料写入时的编码流程的实施例示意图。
[0025]图4B所绘示为本发明资料编码的实施例。
[0026]图5A至图所绘示为本发明联合解碼的各种实施例示意图。
[0027]图6所绘示为BCH解码器与LDPC解码器的错误修正能力示意图。
【具体实施方式】
[0028]本发明提出一种固态储存装置及其联合编解码方法。请参照图3,其所绘示为本发明固态储存装置示意图。固态储存装置300中包括多个闪存模块301-30N以及一存储器控制器310。其中,存储器控制器中310中包括多个第一编解码器321-32N连接至对应的闪存模块301-30N ;并且存储器控制器310中更包括一第二编解码器330。基本上,每个编解码器中皆包括一编码器(encoder)与一解码器(decoder)。
[0029]存储器控制器310针对多个闪存模块301-30N除配置各自的第一编解码器321-32N之外,就整个系统而言再加入一个第二编解码器330。在一实施例中,第一编解码器可为硬性编解码器,例如BCH编解码器;而第二编解码器可为软性编解码器,例如LDPC编解码器。以下将以此为例子详细说明本发明实施例。然而,第一编解码器及第二编解码器亦可为其他不同类型的编解码器。
[0030]根据本发明的实施例,存储器控制器310针对多个闪存模块301-30N除配置各自的第一编解码器321-32N(亦即,BCH编解码器)之外,就整个系统而言再加入一个第二编解码器330 (亦即,LDPC编解码器)。当BCH编解码器无法将所有错误修正时,使用LDPC编解码器做进一步修正;当LDPC编解码器面临错误地板效应(error floor effect)时,利用与BCH编解码器的循环解碼特性来克服。
[0031]请参照图4A,其所绘示为本发明固态储存装置于资料写入时的编码流程示意图。以第一编解码器为BCH编解码器;而第二编解码器为LDPC编解码器为例,当资料输入存储器控制器410后,首先利用BCH编解码器中的BCH编码器412进行资料的第一次编码,接着利用LDPC编解码器中的LDPC编码器414进行资料的第双步编码。之后,利用存储器控制器410中的写入单元将编码后的资料写入闪存模块420。其中,上述的资料即为用户资料(user data)。
[0032]请参照图4B,其所绘示为本发明资料编码的实施例。当K位的用户资料由外部经由存储器控制器410写入闪存模块420之前,资料分别经由BCH编码器412以及LDPC编码器414编码。此K位的用户资料经BCH编码器412编码为一个NI位的字码;经LDPC编码器414编码为一个N2位的字码。其中,K位的用户资料经过BCH编码器412后新增Rl位的检查码(paritybits) ;K位的用户资料经过LDPC编码器414后新增R2位的检查码;且NI=K+Rl ;N2 = K+R2,即BCH编码与LDPC编码两者各自独立,互不影响。
[0033]根据本发明的实施例,由于第一编码与第二编码(例如,BCH编码与LDPC编码)两者各自独立,互不影响。因此在进行资料解码时,可以先利用第一解码器或者第二解码器来进行解码。再者,存储器控制器在解码过程中的判断机制是由存储器控制器内部的控制判断单元(未绘示)来处理,以下的说明中将不再赘述。
[0034]请参照图5Α至图其所绘示为本发明联合解碼的各种实施例示意图。本发明利用联合解码的方式来正确的产生K位的用户资料。以下以第一编码为BCH编码;而第二编码为LDPC编码为例来说明本发明联合解码的各种实施例。
[0035]如图5A所示,存储器控制器中至少包括:BCH解码器513、LDPC解码器515、与读取单元512。其中,BCH编解码器中的BCH解码器可针对硬性代数编码(例如BCH码)来进行解码,而LDPC编解码器中的LDPC解码器则可针对软性机率编码(例如LDPC码)来进行解码。
[0036]如图5A所示,其为本发明联合解碼的第一种实施例示意图。读取单元512由闪存520中先读取NI (K+R1)位的资料,并在进行解码时,先利用硬性代数编码的解码器,例如BCH解码器513,根据NI位的字码进行解码。如果可以正确的产生K位的用户资料时,则直接输出K位的用户资料,并且结束此解码流程。
[0037]如果无法正确的产生K位的用户资料时,则代表读出的资料报含的错误位数超过BCH解码器513的解错范围,因此BCH解码器513无法根据NI字码来产生K位的用户资料。此时,读取单元512由闪存520中读取N2 (K+R2)位的资料,并利用软性机率编码的解码器,例如LDPC解码器515,根据N2位的字码进行解码。如果未发生错误地板效应时,代表LDPC解码器515可以正确的产生K位的用户资料,则直接输出K位的用户资料,并且结束此解码流程。
[0038]反之,如果发生错误地板效应时,代表LDPC解码器515无法正确的产生K位的用户资料,此时,可将经过LDPC解码器515初步解码所产生的K位的用户资料,再回馈至BCH解码器513,并使用Rl位的检查码利用BCH解码器513来辅助解碼。
[0039]虽然当软性机率编码的解码器,例如LDPC解码器515,发生错误地板效应时,将无法正确地产生K位的用户资料,但其仍可更正部分错误位数,并产生初步解码的K位的用户资料。由于此初步解码的K位的用户资料报含的错误位数被降低,甚至可降低至硬性代数编码的解码器,例如BCH解码器513,的解错范围内。因此当其再回馈至硬性代数编码的解码器,并使用Rl位的检查码利用硬性代数编码的解码器来解码时,可提高硬性代数编码的解码器的解码能力。[0040]在此实施例中,软性机率编码的解码器是采用硬性解码(hard-decisiondecoding)方法来针对软性机率编码(例如LDPC码)进行解码。然而,软性机率编码的解码器亦可采用软性解码(soft-dec isiondecoding)方法来针对软性机率编码(例如LDPC码)进行解码,相关的实施例将陈述于后。
[0041]再者,在进行解码时,亦可先利用软性机率编码的解码器来进行解码。
[0042]如图5B所示,其为本发明联合解碼的第二种实施例示意图。读取单元532由闪存540中先读取N2 (K+R2)位的资料,并在进行解码时,先利用软性机率编码的解码器,例如LDPC解码器533,根据N2位的字码进行解码。如果未发生错误地板效应时,代表LDPC解码器533可以正确的产生K位的用户资料,则直接输出K位的用户资料,并且结束此解码流程。
[0043]如果发生错误地板效应时,代表LDPC解码器533无法正确的产生K位的用户资料,此时,读取单元532由闪存540中读取N1(K+R1)位的资料,并利用硬性代数编码的解码器,例如BCH解码器535,根据NI位的字码进行解码。如果可以正确的产生K位的用户资料时,则直接输出K位的用户资料,并且结束此解码流程。
[0044]如果无法正确的产生K位的用户资料时,则代表BCH解码器513无法根据NI字码来产生K位的用户资料。此时,可将经过BCH解码器535初步解码所产生的K位的用户资料,再回馈至LDPC解码器533,并使用R2位的检查码利用LDPC解码器533来辅助解碼。
[0045]虽然硬性代数编码的解码器,例如BCH解码器535,无法完全正确地产生K位的用户资料,但其仍可更正部分错误位数,并产生初步解码的K位的用户资料。由于此初步解码的K位的用户资料报含的错误位数被降低,甚至可降低至避免错误地板效应的发生,因此当其再回馈至软性机率编码的解码器,例如LDPC解码器533,并使用R2位的检查码利用软性机率编码的解码器来解码时,可提高软性机率编码的解码器的解码能力。
[0046]同样地,在此实施例中,软性机率编码的解码器是采用硬性解码(hard-decisiondecoding)方法来针对软性机率编码(例如LDPC码)进行解码。然而,软性机率编码的解码器亦可采用软性解码(soft-decisiondecod ing)方法来针对软性机率编码(例如LDPC码)进行解码,相关的实施例将陈述于后。
[0047]如图5C所示,其为本发明联合解碼的第三种实施例示意图。读取单元552由闪存560中先读取N1(K+R1)位的资料,并在进行解码时,先利用硬性代数编码的解码器,例如BCH解码器553,根据NI位的字码进行解码。如果可以正确的产生K位的用户资料时,则直接输出K位的用户资料,并且结束此解码流程。
[0048]如果无法正确的产生K位的用户资料时,则代表读出的资料报含的错误位数超过BCH解码器553的解错范围,因此BCH解码器553无法根据NI字码来产生K位的用户资料。此时,读取单元552由闪存560中读取N2 (K+R2)位的资料,并利用软性机率编码的解码器,亦即LDPC解码器555,根据N2位的字码并搭配软性信息来进行解码。例如,LDPC解码器555发出要求(request)至读取单元552,使读取单元552产生软性信息至LDPC解码器555,以采用软性解码方法来针对软性机率编码(例如LDPC码)进行解码。
[0049]如果未发生错误地板效应时,代表LDPC解码器555可以正确的产生K位的用户资料,则直接输出K位的用户资料,并且结束此解码流程。反之,如果发生错误地板效应时,代表LDPC解码器555无法正确的产生K位的用户资料,此时,可将经过LDPC解码器555初步解码所产生的K位的用户资料,再回馈至BCH解码器553,并使用Rl位的检查码利用BCH解码器553来辅助解碼。
[0050]同样地,虽然当软性机率编码的解码器,例如LDPC解码器555,发生错误地板效应时,将无法正确地产生K位的用户资料,但其仍可更正部分错误位数,并产生初步解码的K位的用户资料。由于此初步解码的K位的用户资料报含的错误位数被降低,甚至可降低至硬性代数编码的解码器,例如BCH解码器553的解错范围内。因此当其再回馈至硬性代数编码的解码器,并使用Rl位的检查码利用硬性代数编码的解码器来解码时,可提高硬性代数编码的解码器的解码能力。
[0051]再者,在进行解码时,亦可先利用软性机率编码的解码器来进行解码。
[0052]如图所示,其为本发明联合解碼的第四种实施例示意图。读取单元572由闪存580中先读取N2 (K+R2)位的资料,并在进行解码时,先利用软性机率编码的解码器,例如LDPC解码器573,根据N2位的字码并搭配软性信息来进行解码。例如,LDPC解码器573发出要求至读取单元572,使读取单元572产生软性信息至LDPC解码器573,以采用软性解码方法来针对软性机率编码(例如LDPC码)进行解码。
[0053]如果未发生错误地板效应时,代表LDPC解码器573可以正确的产生K位的用户资料,则直接输出K位的用户资料,并且结束此解码流程。
[0054]如果发生错误地板效应时,代表LDPC解码器573无法正确的产生K位的用户资料,此时,读取单元572由闪存580中读取N1(K+R1)位的资料,并利用硬性代数编码的解码器,例如BCH解码器575,根据NI位的字码进行解码。如果可以正确的产生K位的用户资料时,则直接输出K位的用户资料,并且结束此解码流程。
[0055]反之,如果无法正确的产生K位的用户资料时,则代表BCH解码器575无法根据NI字码来产生K位的用户资料。此时,可将经过BCH解码器575初步解码所产生的K位的用户资料,再回馈至LDPC解码器573,并使用R2位的检查码利用LDPC解码器573来辅助解碼。
[0056]请参照图6,其所绘示为BCH解码器与LDPC解码器的错误修正能力示意图。当信噪比(SNR)很低的时候,LDPC解码器具有较佳的错误修正能力,亦即LDPC解码器的位错误率(bit error rate,BER)较低。当信噪比大于特定值后,BHC解码器具备较佳的错误修正能力,并且随着信噪比的上升持续降低位错误率。
[0057]此外,当信噪比到达特定值后,LDPC解码器便无法再降低其位错误率,此时代表LDPC解码器发生错误地板效应。
[0058]由以上的说明可知,本发明的优点在于提出一种固态储存装置及其联合编解码方法。于资料的编码时,分别利用第一编码器以及第二编码器产生二组各自独立的字码。于资料解码时,利用第一编码的解码器以及第二编码的解码器的循环解码架构来产生正确的资料。
[0059]综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属【技术领域】中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视所附的权利要求范围所界定的为准。
【权利要求】
1.一种固态储存装置中的联合编解码方法,包括下列步骤: 于写入资料时,将一用户资料分别进行一硬性编码以及一软性编码,并产生一第一检查码与一第二检查码; 将该用户资料、该第一检查码与该第二检查码写入一闪存模块;以及 于读取资料时,根据该第一检查码进行该硬性编码的解码,并于解码成功时输出该用户资料,以及于解码失败时根据该第二检查码进行该软性编码的解码。
2.如权利要求1所述的固态储存装置中的联合编解碼方法,其中当根据该第二检查码进行该软性编码的解码时,还包含: 若解码成功时,输出该用户资料;以及 若解码失败时,产生一初步解码的用户资料,以及根据该初步解码的用户资料与该第一检查码进行该硬性编码的解码。
3.如权利要求1所述的固态储存装置中的联合编解码方法,其中该硬性编码为一BCH编码。
4.如权利要求1所述的固态储存装置中的联合编解码方法,其中该软性编码为一LDPC编码。
5.如权利要求1所 述的固态储存装置中的联合编解码方法,其中该软性编码的解码为采用一硬性解码方法来针对该软性编码进行解码。
6.如权利要求1所述的固态储存装置中的联合编解码方法,其中该软性编码的解码为采用一软性解码方法来针对该软性编码进行解码。
7.一种固态储存装置中的联合编解码方法,包括下列步骤: 于写入资料时,将一用户资料分别进行一硬性编码以及一软性编码,并产生一第一检查码与一第二检查码; 将该用户资料、该第一检查码与该第二检查码写入一闪存模块;以及 于读取资料时,根据该第二检查码进行该软性编码的解码,于解码成功时输出该用户资料,以及于解码失败时,根据该第一检查码进行该硬性编码的解码。
8.如权利要求7所述的固态储存装置中的联合编解碼方法,其中当根据该第一检查码进行该硬性编码的解码时,还包含: 若解码成功时,输出该用户资料;以及 若解码失败时,产生一初步解码的用户资料,以及根据该初步解码的用户资料与该第二检查码进行该软性编码的解码。
9.如权利要求7所述的固态储存装置中的联合编解码方法,其中该硬性编码为一BCH编码。
10.如权利要求7所述的固态储存装置中的联合编解码方法,其中该软性编码为一LDPC编码。
11.如权利要求7所述的固态储存装置中的联合编解码方法,其中该软性编码的解码为采用一硬性解码方法来针对该软性编码进行解码。
12.如权利要求7所述的固态储存装置中的联合编解码方法,其中该软性编码的解码为采用一软性解码方法来针对该软性编码进行解码。
13.一种固态储存装置,包括:多个闪存模块;以及 一存储器控制器,连接至所述闪存模块,且该存储器控制器中包括:多个硬性编码的编解码器,对应至所述闪存模块与一软性编码的编解码器; 其中,该存储器控制器将一用户资料分别以一第一硬性编码的编解码器以及该软性编码的编解码器来产生一第一检查码与一第二检查码,并将该用户资料、该第一检查码与该第二检查码写入一第一闪存模块; 其中,该存储器控制器于读取资料时,选择性地利用该硬性编码的编解码器根据该第一检查码还原该用户资料,以及/或利用该软性编码的编解码器根据该第二检查码还原该用户资料。
14.如权利要求13所述的固态储存装置,其中该硬性编码的编解码器为一BCH编解码器。
15.如权利要求13所述的固态储存装置,其中该软性编码的编解码器为一LDPC编解码器。
16.一种固态储存装置中的联合编解码方法,包括下列步骤: 于写入资料时,将一用户资料分别根据一第一编码方式以及一第二编码方式进行编码,并产生一第一检查码与一第二检查码; 将该用户资料、该第一检查码与该第二检查码写入一闪存模块;以及于读取资料时,根据该第一检查码进行该第一编码方式的解码,并于解码成功时输出该用户资料,以及于解码失败时根据该第二检查码进行该第二编码方式的解码。
17.如权利要求16所述的固态储存装置中的联合编解碼方法,其中当根据该第二检查码进行该第二编码方式的解码时,还包含: 若解码成功时,输出该用户资料;以及 若解码失败时,产生一初步解码的用户资料,以及根据该初步解码的用户资料与该第一检查码进行该第一编码方式的解码。
【文档编号】G11C29/42GK103839594SQ201210493348
【公开日】2014年6月4日 申请日期:2012年11月27日 优先权日:2012年11月27日
【发明者】张锡嘉, 杨其衡, 曾士家 申请人:建兴电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1