固態(tài)儲存裝置及其聯(lián)合編解碼方法
【專利摘要】一種閃存中的聯(lián)合編解碼方法,包括下列步驟:于寫入資料時,將用戶資料分別進(jìn)行硬性編碼以及軟性編碼,并產(chǎn)生第一檢查碼與第二檢查碼;將用戶資料、第一檢查碼與第二檢查碼寫入閃存模塊;以及,于讀取資料時,根據(jù)第一檢查碼進(jìn)行硬性編碼的解碼,并于解碼成功時輸出用戶資料,以及于解碼失敗時根據(jù)第二檢查碼進(jìn)行該軟性編碼的解碼。
【專利說明】固態(tài)儲存裝置及其聯(lián)合編解碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種固態(tài)儲存裝置與其控制方法,且特別是有關(guān)于一種固態(tài)儲存裝置及其聯(lián)合編解碼方法。
【背景技術(shù)】
[0002]眾所周知,與非門閃存(NAND flash memory)模塊所組成的固態(tài)儲存裝置已經(jīng)非常廣泛的應(yīng)用于各種電子產(chǎn)品。例如SD卡、固態(tài)硬盤等等?;旧?,在固態(tài)儲存裝置等相關(guān)產(chǎn)品中,主要使用Bose-Chaudhur1-Hocquenghem碼(以下簡稱BCH碼)來作為錯誤更正碼(ECC code)幫助提升固態(tài)儲存裝置中閃存模塊的資料可靠度。
[0003]—般來說,固態(tài)儲存裝置內(nèi)的閃存模塊中包括多個存儲單元排列而成,而每個存儲單元內(nèi)包括一個浮動?xùn)啪w管(floating gatetransistor)。根據(jù)儲存容量來區(qū)分為每個存儲單元儲存一位的單層存儲單元(Single-Level Cell,簡稱SLC)閃存、每個存儲單元儲存二位的多層存儲單元(Mult1-Level Cell,簡稱MLC)閃存、與每個存儲單元儲存三位的三層存儲單元(Triple-Level Cell,簡稱TLC)閃存模塊。
[0004]基本上,浮動?xùn)啪w管中的浮動?xùn)?floating gate)可以儲存熱載流子(hotcarrier),而根據(jù)熱載流子儲存量的多少可決定該浮動?xùn)啪w管的臨界電壓(thresholdvoltage,簡稱VTH)。也就是說,具有較高的臨界電壓的浮動?xùn)艠O晶體管需要較高的柵極電壓(gate voltage)來開啟(turnon)浮動?xùn)啪w管;反之,具有較低的臨界電壓的浮動?xùn)艠O晶體管則可以用較低的柵極電壓來開啟浮動?xùn)啪w管。
[0005]因此,于閃存的程序周期(program cycle)時,可控制注入浮動?xùn)艠O的熱載流子量,進(jìn)而改變其臨界電壓。而在讀取周期(read cycle)時,固態(tài)儲存裝置中的感測電路(sensing circuit)即可根據(jù)浮動?xùn)啪w管的臨界電壓來決定其儲存狀態(tài)。
[0006]請參照圖1,其所繪示為MLC閃存模塊中的儲存狀態(tài)與臨界電壓關(guān)系示意圖。在MLC閃存模塊中,一個存儲單元可以有四種儲存狀態(tài)E、A、B、C。在未注入熱載流子時,可視為狀態(tài)E (例如邏輯狀態(tài)11),而隨著熱載流子注入存儲單元的數(shù)量漸增,依序為狀態(tài)A (例如邏輯狀態(tài)10)、狀態(tài)B (例如邏輯狀態(tài)00)、狀態(tài)C (例如邏輯狀態(tài)01)。其中,狀態(tài)C具有最高電平,狀態(tài)B次之,狀態(tài)A具在次之,狀態(tài)E具有最低電平。
[0007]然而,于相同的儲存狀態(tài)下并非每個存儲單元的臨界電壓都會相同,而是會呈現(xiàn)一臨界電壓分布,其分布具有一中位(median)臨界電壓。以圖1為例,狀態(tài)E時的中位臨界電壓約為Vthe(例如0V),狀態(tài)A時的中位臨界電壓約為VTHA(例如10V),狀態(tài)B時的中位臨界電壓為Vthb (例如20V),狀態(tài)C時的中位臨界電壓約為Vth。(例如30V)。因此,利用存儲單元的臨界電壓分布與第一切割電壓Vsl、第二切割電壓Vs2、第三切割電壓Vs3即可區(qū)別出存儲單元中的儲存狀態(tài)。
[0008]然而,由于相同的儲存狀態(tài)下的存儲單元的臨界電壓是呈現(xiàn)一臨界電壓分布,因此部份的存儲單元的儲存狀態(tài)會產(chǎn)生誤判。以儲存狀態(tài)B與儲存狀態(tài)C的臨界電壓分布曲線為例,區(qū)域b內(nèi)的存儲單元將會被誤判為儲存狀態(tài)C,而區(qū)域c內(nèi)的存儲單元將會被誤判為儲存狀態(tài)B。
[0009]因此,利用BCH碼的編碼方式即可在讀取時將錯誤的儲存狀態(tài)更正。然而隨著工藝微縮,對于錯誤更正碼的更錯能力的要求也逐漸提高。為了提高更錯能力,目前主流的BCH碼需要大量的檢查碼(parity bits),如此將造成面積成本的提高。
[0010]為了解決這個問題,低密度奇偶校驗碼(low-density parity checkcode,以下簡稱LDPC碼)利用軟性信息(soft information)解碼的特性,可以在較少檢查碼的情況下,獲得較高的更錯能力。
[0011]請參照圖2,其所繪示為軟性信息解碼示意圖。除了以三個切割電壓Vsl、Vs2、Vs3來區(qū)別存儲單元的儲存狀態(tài)之外,利用LDPC碼可以再根據(jù)軟性信息來提高更錯能力。舉例來說,在三個切割電壓Vsl、Vs2、Vs3之外,可提供第一電壓區(qū)間(Vsl-?Vsl+)、第二電壓區(qū)間(Vs2-?Vs2+)、與第三電壓區(qū)間(Vs3-?Vs3+)。
[0012]以儲存狀態(tài)B與儲存狀態(tài)C的臨界電壓分布曲線為例,當(dāng)存儲單元的臨界電壓位在區(qū)域b且該存儲單元被讀取時,并不會直接提供儲存狀態(tài)C的資料,而是提供一機率值來進(jìn)行后續(xù)資料校正的用途。此機率值為例如70%的儲存狀態(tài)C。
[0013]同理,位在區(qū)域c且該存儲單元被讀取時,也是提供一機率值來進(jìn)行后續(xù)資料校正的用途。此機率值為例如80%的儲存狀態(tài)B。以上說明中的機率值即可視為軟性信息,并且搭配LDPC碼來進(jìn)行資料校正。
[0014]由以上的說明可知,為取得軟性信息,需要提高判斷存儲單元臨界電壓的讀取層級(read level)與加大資料帶寬,這些都將導(dǎo)致硬件成本的提升。
【發(fā)明內(nèi)容】
[0015]本發(fā)明的目的在于提出一種固態(tài)儲存裝置及其聯(lián)合編解碼方法。于資料的編碼時,利用第一種編碼方式以及第二種編碼方式產(chǎn)生二組各自獨立的檢查碼。于資料解碼時,利用第一種編碼方式的解碼器以及第二種編碼方式的解碼器的循環(huán)解碼架構(gòu)來產(chǎn)生正確的資料。
[0016]本發(fā)明提出一種固態(tài)儲存裝置中的聯(lián)合編解碼方法,包括下列步驟:于寫入資料時,將一用戶資料分別進(jìn)行一硬性編碼以及一軟性編碼,并產(chǎn)生一第一檢查碼與一第二檢查碼;將該用戶資料、該第一檢查碼與該第二檢查碼寫入一閃存模塊;以及,于讀取資料時,根據(jù)該第一檢查碼進(jìn)行該硬性編碼的解碼,并于解碼成功時輸出該用戶資料,以及于解碼失敗時根據(jù)該第二檢查碼進(jìn)行該軟性編碼的解碼。
[0017]本發(fā)明有關(guān)于一種固態(tài)儲存裝置中的聯(lián)合編解碼方法,包括下列步驟:于寫入資料時,將一用戶資料分別進(jìn)行一硬性編碼以及一軟性編碼,并產(chǎn)生一第一檢查碼與一第二檢查碼;將該用戶資料、該第一檢查碼與該第二檢查碼寫入一閃存模塊;以及,于讀取資料時,根據(jù)該第二檢查碼進(jìn)行該軟性編碼的解碼,于解碼成功時輸出該用戶資料,以及于解碼失敗時,根據(jù)該第一檢查碼進(jìn)行該硬性編碼的解碼。
[0018]本發(fā)明有關(guān)于一種固態(tài)儲存裝置,包括:多個閃存模塊;以及一存儲器控制器,連接至所述閃存模塊,且該存儲器控制器中包括:多個硬性編碼的編解碼器,對應(yīng)至所述閃存模塊與一軟性編碼的編解碼器;其中,該存儲器控制器將一用戶資料分別以一第一硬性編碼的編解碼器以及該軟性編碼的編解碼器來產(chǎn)生一第一檢查碼與一第二檢查碼,并將該用戶資料、該第一檢查碼與該第二檢查碼寫入一第一閃存模塊;其中,該存儲器控制器于讀取資料時,選擇性地利用該硬性編碼的編解碼器根據(jù)該第一檢查碼還原該用戶資料,以及/或利用該軟性編碼的編解碼器根據(jù)該第二檢查碼還原該用戶資料。
[0019]本發(fā)明有關(guān)于一種固態(tài)儲存裝置中的聯(lián)合編解碼方法,包括下列步驟:于寫入資料時,將一用戶資料分別根據(jù)一第一編碼方式以及一第二編碼方式進(jìn)行編碼,并產(chǎn)生一第一檢查碼與一第二檢查碼;將該用戶資料、該第一檢查碼與該第二檢查碼寫入一閃存模塊;以及于讀取資料時,根據(jù)該第一檢查碼進(jìn)行該第一編碼方式的解碼,并于解碼成功時輸出該用戶資料,以及于解碼失敗時根據(jù)該第二檢查碼進(jìn)行該第二編碼方式的解碼。
【專利附圖】
【附圖說明】
[0020]為了對本發(fā)明之上述及其他方面有更佳的了解,下文特舉較佳實施例,并配合附圖,作詳細(xì)說明如下,其中:
[0021]圖1所繪示為MLC閃存中的儲存狀態(tài)與臨界電壓關(guān)系示意圖。
[0022]圖2所繪示為軟性信息解碼示意圖。
[0023]圖3所繪示為本發(fā)明固態(tài)儲存裝置的實施例示意圖。
[0024]圖4A所繪示為本發(fā)明固態(tài)儲存裝置于資料寫入時的編碼流程的實施例示意圖。
[0025]圖4B所繪示為本發(fā)明資料編碼的實施例。
[0026]圖5A至圖所繪示為本發(fā)明聯(lián)合解碼的各種實施例示意圖。
[0027]圖6所繪示為BCH解碼器與LDPC解碼器的錯誤修正能力示意圖。
【具體實施方式】
[0028]本發(fā)明提出一種固態(tài)儲存裝置及其聯(lián)合編解碼方法。請參照圖3,其所繪示為本發(fā)明固態(tài)儲存裝置示意圖。固態(tài)儲存裝置300中包括多個閃存模塊301-30N以及一存儲器控制器310。其中,存儲器控制器中310中包括多個第一編解碼器321-32N連接至對應(yīng)的閃存模塊301-30N ;并且存儲器控制器310中更包括一第二編解碼器330。基本上,每個編解碼器中皆包括一編碼器(encoder)與一解碼器(decoder)。
[0029]存儲器控制器310針對多個閃存模塊301-30N除配置各自的第一編解碼器321-32N之外,就整個系統(tǒng)而言再加入一個第二編解碼器330。在一實施例中,第一編解碼器可為硬性編解碼器,例如BCH編解碼器;而第二編解碼器可為軟性編解碼器,例如LDPC編解碼器。以下將以此為例子詳細(xì)說明本發(fā)明實施例。然而,第一編解碼器及第二編解碼器亦可為其他不同類型的編解碼器。
[0030]根據(jù)本發(fā)明的實施例,存儲器控制器310針對多個閃存模塊301-30N除配置各自的第一編解碼器321-32N(亦即,BCH編解碼器)之外,就整個系統(tǒng)而言再加入一個第二編解碼器330 (亦即,LDPC編解碼器)。當(dāng)BCH編解碼器無法將所有錯誤修正時,使用LDPC編解碼器做進(jìn)一步修正;當(dāng)LDPC編解碼器面臨錯誤地板效應(yīng)(error floor effect)時,利用與BCH編解碼器的循環(huán)解碼特性來克服。
[0031]請參照圖4A,其所繪示為本發(fā)明固態(tài)儲存裝置于資料寫入時的編碼流程示意圖。以第一編解碼器為BCH編解碼器;而第二編解碼器為LDPC編解碼器為例,當(dāng)資料輸入存儲器控制器410后,首先利用BCH編解碼器中的BCH編碼器412進(jìn)行資料的第一次編碼,接著利用LDPC編解碼器中的LDPC編碼器414進(jìn)行資料的第雙步編碼。之后,利用存儲器控制器410中的寫入單元將編碼后的資料寫入閃存模塊420。其中,上述的資料即為用戶資料(user data)。
[0032]請參照圖4B,其所繪示為本發(fā)明資料編碼的實施例。當(dāng)K位的用戶資料由外部經(jīng)由存儲器控制器410寫入閃存模塊420之前,資料分別經(jīng)由BCH編碼器412以及LDPC編碼器414編碼。此K位的用戶資料經(jīng)BCH編碼器412編碼為一個NI位的字碼;經(jīng)LDPC編碼器414編碼為一個N2位的字碼。其中,K位的用戶資料經(jīng)過BCH編碼器412后新增Rl位的檢查碼(paritybits) ;K位的用戶資料經(jīng)過LDPC編碼器414后新增R2位的檢查碼;且NI=K+Rl ;N2 = K+R2,即BCH編碼與LDPC編碼兩者各自獨立,互不影響。
[0033]根據(jù)本發(fā)明的實施例,由于第一編碼與第二編碼(例如,BCH編碼與LDPC編碼)兩者各自獨立,互不影響。因此在進(jìn)行資料解碼時,可以先利用第一解碼器或者第二解碼器來進(jìn)行解碼。再者,存儲器控制器在解碼過程中的判斷機制是由存儲器控制器內(nèi)部的控制判斷單元(未繪示)來處理,以下的說明中將不再贅述。
[0034]請參照圖5Α至圖其所繪示為本發(fā)明聯(lián)合解碼的各種實施例示意圖。本發(fā)明利用聯(lián)合解碼的方式來正確的產(chǎn)生K位的用戶資料。以下以第一編碼為BCH編碼;而第二編碼為LDPC編碼為例來說明本發(fā)明聯(lián)合解碼的各種實施例。
[0035]如圖5A所示,存儲器控制器中至少包括:BCH解碼器513、LDPC解碼器515、與讀取單元512。其中,BCH編解碼器中的BCH解碼器可針對硬性代數(shù)編碼(例如BCH碼)來進(jìn)行解碼,而LDPC編解碼器中的LDPC解碼器則可針對軟性機率編碼(例如LDPC碼)來進(jìn)行解碼。
[0036]如圖5A所示,其為本發(fā)明聯(lián)合解碼的第一種實施例示意圖。讀取單元512由閃存520中先讀取NI (K+R1)位的資料,并在進(jìn)行解碼時,先利用硬性代數(shù)編碼的解碼器,例如BCH解碼器513,根據(jù)NI位的字碼進(jìn)行解碼。如果可以正確的產(chǎn)生K位的用戶資料時,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0037]如果無法正確的產(chǎn)生K位的用戶資料時,則代表讀出的資料報含的錯誤位數(shù)超過BCH解碼器513的解錯范圍,因此BCH解碼器513無法根據(jù)NI字碼來產(chǎn)生K位的用戶資料。此時,讀取單元512由閃存520中讀取N2 (K+R2)位的資料,并利用軟性機率編碼的解碼器,例如LDPC解碼器515,根據(jù)N2位的字碼進(jìn)行解碼。如果未發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器515可以正確的產(chǎn)生K位的用戶資料,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0038]反之,如果發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器515無法正確的產(chǎn)生K位的用戶資料,此時,可將經(jīng)過LDPC解碼器515初步解碼所產(chǎn)生的K位的用戶資料,再回饋至BCH解碼器513,并使用Rl位的檢查碼利用BCH解碼器513來輔助解碼。
[0039]雖然當(dāng)軟性機率編碼的解碼器,例如LDPC解碼器515,發(fā)生錯誤地板效應(yīng)時,將無法正確地產(chǎn)生K位的用戶資料,但其仍可更正部分錯誤位數(shù),并產(chǎn)生初步解碼的K位的用戶資料。由于此初步解碼的K位的用戶資料報含的錯誤位數(shù)被降低,甚至可降低至硬性代數(shù)編碼的解碼器,例如BCH解碼器513,的解錯范圍內(nèi)。因此當(dāng)其再回饋至硬性代數(shù)編碼的解碼器,并使用Rl位的檢查碼利用硬性代數(shù)編碼的解碼器來解碼時,可提高硬性代數(shù)編碼的解碼器的解碼能力。[0040]在此實施例中,軟性機率編碼的解碼器是采用硬性解碼(hard-decisiondecoding)方法來針對軟性機率編碼(例如LDPC碼)進(jìn)行解碼。然而,軟性機率編碼的解碼器亦可采用軟性解碼(soft-dec isiondecoding)方法來針對軟性機率編碼(例如LDPC碼)進(jìn)行解碼,相關(guān)的實施例將陳述于后。
[0041]再者,在進(jìn)行解碼時,亦可先利用軟性機率編碼的解碼器來進(jìn)行解碼。
[0042]如圖5B所示,其為本發(fā)明聯(lián)合解碼的第二種實施例示意圖。讀取單元532由閃存540中先讀取N2 (K+R2)位的資料,并在進(jìn)行解碼時,先利用軟性機率編碼的解碼器,例如LDPC解碼器533,根據(jù)N2位的字碼進(jìn)行解碼。如果未發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器533可以正確的產(chǎn)生K位的用戶資料,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0043]如果發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器533無法正確的產(chǎn)生K位的用戶資料,此時,讀取單元532由閃存540中讀取N1(K+R1)位的資料,并利用硬性代數(shù)編碼的解碼器,例如BCH解碼器535,根據(jù)NI位的字碼進(jìn)行解碼。如果可以正確的產(chǎn)生K位的用戶資料時,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0044]如果無法正確的產(chǎn)生K位的用戶資料時,則代表BCH解碼器513無法根據(jù)NI字碼來產(chǎn)生K位的用戶資料。此時,可將經(jīng)過BCH解碼器535初步解碼所產(chǎn)生的K位的用戶資料,再回饋至LDPC解碼器533,并使用R2位的檢查碼利用LDPC解碼器533來輔助解碼。
[0045]雖然硬性代數(shù)編碼的解碼器,例如BCH解碼器535,無法完全正確地產(chǎn)生K位的用戶資料,但其仍可更正部分錯誤位數(shù),并產(chǎn)生初步解碼的K位的用戶資料。由于此初步解碼的K位的用戶資料報含的錯誤位數(shù)被降低,甚至可降低至避免錯誤地板效應(yīng)的發(fā)生,因此當(dāng)其再回饋至軟性機率編碼的解碼器,例如LDPC解碼器533,并使用R2位的檢查碼利用軟性機率編碼的解碼器來解碼時,可提高軟性機率編碼的解碼器的解碼能力。
[0046]同樣地,在此實施例中,軟性機率編碼的解碼器是采用硬性解碼(hard-decisiondecoding)方法來針對軟性機率編碼(例如LDPC碼)進(jìn)行解碼。然而,軟性機率編碼的解碼器亦可采用軟性解碼(soft-decisiondecod ing)方法來針對軟性機率編碼(例如LDPC碼)進(jìn)行解碼,相關(guān)的實施例將陳述于后。
[0047]如圖5C所示,其為本發(fā)明聯(lián)合解碼的第三種實施例示意圖。讀取單元552由閃存560中先讀取N1(K+R1)位的資料,并在進(jìn)行解碼時,先利用硬性代數(shù)編碼的解碼器,例如BCH解碼器553,根據(jù)NI位的字碼進(jìn)行解碼。如果可以正確的產(chǎn)生K位的用戶資料時,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0048]如果無法正確的產(chǎn)生K位的用戶資料時,則代表讀出的資料報含的錯誤位數(shù)超過BCH解碼器553的解錯范圍,因此BCH解碼器553無法根據(jù)NI字碼來產(chǎn)生K位的用戶資料。此時,讀取單元552由閃存560中讀取N2 (K+R2)位的資料,并利用軟性機率編碼的解碼器,亦即LDPC解碼器555,根據(jù)N2位的字碼并搭配軟性信息來進(jìn)行解碼。例如,LDPC解碼器555發(fā)出要求(request)至讀取單元552,使讀取單元552產(chǎn)生軟性信息至LDPC解碼器555,以采用軟性解碼方法來針對軟性機率編碼(例如LDPC碼)進(jìn)行解碼。
[0049]如果未發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器555可以正確的產(chǎn)生K位的用戶資料,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。反之,如果發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器555無法正確的產(chǎn)生K位的用戶資料,此時,可將經(jīng)過LDPC解碼器555初步解碼所產(chǎn)生的K位的用戶資料,再回饋至BCH解碼器553,并使用Rl位的檢查碼利用BCH解碼器553來輔助解碼。
[0050]同樣地,雖然當(dāng)軟性機率編碼的解碼器,例如LDPC解碼器555,發(fā)生錯誤地板效應(yīng)時,將無法正確地產(chǎn)生K位的用戶資料,但其仍可更正部分錯誤位數(shù),并產(chǎn)生初步解碼的K位的用戶資料。由于此初步解碼的K位的用戶資料報含的錯誤位數(shù)被降低,甚至可降低至硬性代數(shù)編碼的解碼器,例如BCH解碼器553的解錯范圍內(nèi)。因此當(dāng)其再回饋至硬性代數(shù)編碼的解碼器,并使用Rl位的檢查碼利用硬性代數(shù)編碼的解碼器來解碼時,可提高硬性代數(shù)編碼的解碼器的解碼能力。
[0051]再者,在進(jìn)行解碼時,亦可先利用軟性機率編碼的解碼器來進(jìn)行解碼。
[0052]如圖所示,其為本發(fā)明聯(lián)合解碼的第四種實施例示意圖。讀取單元572由閃存580中先讀取N2 (K+R2)位的資料,并在進(jìn)行解碼時,先利用軟性機率編碼的解碼器,例如LDPC解碼器573,根據(jù)N2位的字碼并搭配軟性信息來進(jìn)行解碼。例如,LDPC解碼器573發(fā)出要求至讀取單元572,使讀取單元572產(chǎn)生軟性信息至LDPC解碼器573,以采用軟性解碼方法來針對軟性機率編碼(例如LDPC碼)進(jìn)行解碼。
[0053]如果未發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器573可以正確的產(chǎn)生K位的用戶資料,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0054]如果發(fā)生錯誤地板效應(yīng)時,代表LDPC解碼器573無法正確的產(chǎn)生K位的用戶資料,此時,讀取單元572由閃存580中讀取N1(K+R1)位的資料,并利用硬性代數(shù)編碼的解碼器,例如BCH解碼器575,根據(jù)NI位的字碼進(jìn)行解碼。如果可以正確的產(chǎn)生K位的用戶資料時,則直接輸出K位的用戶資料,并且結(jié)束此解碼流程。
[0055]反之,如果無法正確的產(chǎn)生K位的用戶資料時,則代表BCH解碼器575無法根據(jù)NI字碼來產(chǎn)生K位的用戶資料。此時,可將經(jīng)過BCH解碼器575初步解碼所產(chǎn)生的K位的用戶資料,再回饋至LDPC解碼器573,并使用R2位的檢查碼利用LDPC解碼器573來輔助解碼。
[0056]請參照圖6,其所繪示為BCH解碼器與LDPC解碼器的錯誤修正能力示意圖。當(dāng)信噪比(SNR)很低的時候,LDPC解碼器具有較佳的錯誤修正能力,亦即LDPC解碼器的位錯誤率(bit error rate,BER)較低。當(dāng)信噪比大于特定值后,BHC解碼器具備較佳的錯誤修正能力,并且隨著信噪比的上升持續(xù)降低位錯誤率。
[0057]此外,當(dāng)信噪比到達(dá)特定值后,LDPC解碼器便無法再降低其位錯誤率,此時代表LDPC解碼器發(fā)生錯誤地板效應(yīng)。
[0058]由以上的說明可知,本發(fā)明的優(yōu)點在于提出一種固態(tài)儲存裝置及其聯(lián)合編解碼方法。于資料的編碼時,分別利用第一編碼器以及第二編碼器產(chǎn)生二組各自獨立的字碼。于資料解碼時,利用第一編碼的解碼器以及第二編碼的解碼器的循環(huán)解碼架構(gòu)來產(chǎn)生正確的資料。
[0059]綜上所述,雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬【技術(shù)領(lǐng)域】中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定的為準(zhǔn)。
【權(quán)利要求】
1.一種固態(tài)儲存裝置中的聯(lián)合編解碼方法,包括下列步驟: 于寫入資料時,將一用戶資料分別進(jìn)行一硬性編碼以及一軟性編碼,并產(chǎn)生一第一檢查碼與一第二檢查碼; 將該用戶資料、該第一檢查碼與該第二檢查碼寫入一閃存模塊;以及 于讀取資料時,根據(jù)該第一檢查碼進(jìn)行該硬性編碼的解碼,并于解碼成功時輸出該用戶資料,以及于解碼失敗時根據(jù)該第二檢查碼進(jìn)行該軟性編碼的解碼。
2.如權(quán)利要求1所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中當(dāng)根據(jù)該第二檢查碼進(jìn)行該軟性編碼的解碼時,還包含: 若解碼成功時,輸出該用戶資料;以及 若解碼失敗時,產(chǎn)生一初步解碼的用戶資料,以及根據(jù)該初步解碼的用戶資料與該第一檢查碼進(jìn)行該硬性編碼的解碼。
3.如權(quán)利要求1所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該硬性編碼為一BCH編碼。
4.如權(quán)利要求1所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該軟性編碼為一LDPC編碼。
5.如權(quán)利要求1所 述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該軟性編碼的解碼為采用一硬性解碼方法來針對該軟性編碼進(jìn)行解碼。
6.如權(quán)利要求1所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該軟性編碼的解碼為采用一軟性解碼方法來針對該軟性編碼進(jìn)行解碼。
7.一種固態(tài)儲存裝置中的聯(lián)合編解碼方法,包括下列步驟: 于寫入資料時,將一用戶資料分別進(jìn)行一硬性編碼以及一軟性編碼,并產(chǎn)生一第一檢查碼與一第二檢查碼; 將該用戶資料、該第一檢查碼與該第二檢查碼寫入一閃存模塊;以及 于讀取資料時,根據(jù)該第二檢查碼進(jìn)行該軟性編碼的解碼,于解碼成功時輸出該用戶資料,以及于解碼失敗時,根據(jù)該第一檢查碼進(jìn)行該硬性編碼的解碼。
8.如權(quán)利要求7所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中當(dāng)根據(jù)該第一檢查碼進(jìn)行該硬性編碼的解碼時,還包含: 若解碼成功時,輸出該用戶資料;以及 若解碼失敗時,產(chǎn)生一初步解碼的用戶資料,以及根據(jù)該初步解碼的用戶資料與該第二檢查碼進(jìn)行該軟性編碼的解碼。
9.如權(quán)利要求7所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該硬性編碼為一BCH編碼。
10.如權(quán)利要求7所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該軟性編碼為一LDPC編碼。
11.如權(quán)利要求7所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該軟性編碼的解碼為采用一硬性解碼方法來針對該軟性編碼進(jìn)行解碼。
12.如權(quán)利要求7所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中該軟性編碼的解碼為采用一軟性解碼方法來針對該軟性編碼進(jìn)行解碼。
13.一種固態(tài)儲存裝置,包括:多個閃存模塊;以及 一存儲器控制器,連接至所述閃存模塊,且該存儲器控制器中包括:多個硬性編碼的編解碼器,對應(yīng)至所述閃存模塊與一軟性編碼的編解碼器; 其中,該存儲器控制器將一用戶資料分別以一第一硬性編碼的編解碼器以及該軟性編碼的編解碼器來產(chǎn)生一第一檢查碼與一第二檢查碼,并將該用戶資料、該第一檢查碼與該第二檢查碼寫入一第一閃存模塊; 其中,該存儲器控制器于讀取資料時,選擇性地利用該硬性編碼的編解碼器根據(jù)該第一檢查碼還原該用戶資料,以及/或利用該軟性編碼的編解碼器根據(jù)該第二檢查碼還原該用戶資料。
14.如權(quán)利要求13所述的固態(tài)儲存裝置,其中該硬性編碼的編解碼器為一BCH編解碼器。
15.如權(quán)利要求13所述的固態(tài)儲存裝置,其中該軟性編碼的編解碼器為一LDPC編解碼器。
16.一種固態(tài)儲存裝置中的聯(lián)合編解碼方法,包括下列步驟: 于寫入資料時,將一用戶資料分別根據(jù)一第一編碼方式以及一第二編碼方式進(jìn)行編碼,并產(chǎn)生一第一檢查碼與一第二檢查碼; 將該用戶資料、該第一檢查碼與該第二檢查碼寫入一閃存模塊;以及于讀取資料時,根據(jù)該第一檢查碼進(jìn)行該第一編碼方式的解碼,并于解碼成功時輸出該用戶資料,以及于解碼失敗時根據(jù)該第二檢查碼進(jìn)行該第二編碼方式的解碼。
17.如權(quán)利要求16所述的固態(tài)儲存裝置中的聯(lián)合編解碼方法,其中當(dāng)根據(jù)該第二檢查碼進(jìn)行該第二編碼方式的解碼時,還包含: 若解碼成功時,輸出該用戶資料;以及 若解碼失敗時,產(chǎn)生一初步解碼的用戶資料,以及根據(jù)該初步解碼的用戶資料與該第一檢查碼進(jìn)行該第一編碼方式的解碼。
【文檔編號】G11C29/42GK103839594SQ201210493348
【公開日】2014年6月4日 申請日期:2012年11月27日 優(yōu)先權(quán)日:2012年11月27日
【發(fā)明者】張錫嘉, 楊其衡, 曾士家 申請人:建興電子科技股份有限公司