專利名稱:用于基于閃存的存儲器系統(tǒng)的軟解碼系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開總體上涉及通信和/或存儲系統(tǒng)和方法,并且更特別地,涉及用于對錯誤校正代碼進行解碼的系統(tǒng)和方法。
背景技術(shù):
在此出于總體上呈現(xiàn)本公開的上下文的目的提供背景技術(shù)描述。就本背景技術(shù)部分中所描述的工作而言,發(fā)明人的工作以及在提交時可能并未以其它方式構(gòu)成現(xiàn)有技術(shù)的描述的各方面,并不被明示或暗示地承認為相對于本公開的現(xiàn)有技術(shù)。傳統(tǒng)閃存存儲器設(shè)備中的數(shù)據(jù)錯誤率取決于,閃存存儲器設(shè)備操作的持續(xù)時間、 數(shù)據(jù)保留在存儲器中的持續(xù)時間、以及數(shù)據(jù)所駐留頁面的編程-擦除(PE)循環(huán)的數(shù)量和許多其它因素。例如,由于閃存存儲器設(shè)備的操作,原始閃存存儲器的可靠性顯著降低。特別是,在正常PE循環(huán)和數(shù)據(jù)保留持續(xù)時間下降期間,原始位錯誤率(BER)和信噪比(SNR)變得更差。為了滿足針對數(shù)據(jù)存儲應(yīng)用的嚴格可靠性要求,存儲控制器可以貫穿對存儲設(shè)備的使用,并且不管實際BER、相似或一致的校正的位錯誤率(CBER),來負責維護,其中該校正的位錯誤率是用戶察覺到的錯誤率。傳統(tǒng)存儲應(yīng)用使用錯誤校正代碼電路(ECC)來對存儲的數(shù)據(jù)進行編碼,使用解碼引擎來檢測/校正在從閃存存儲器存儲設(shè)備讀取數(shù)據(jù)時遇到的數(shù)據(jù)錯誤。存儲應(yīng)用可以使用日益增強的錯誤校正編碼和解碼技術(shù),以便保持相似或一致的CBER。例如,存儲應(yīng)用和/ 或存儲控制器可以使用低密度奇偶校驗(LDPC)編碼技術(shù)來實現(xiàn)這些目標。此類LDPC編碼技術(shù)涉及使用軟迭代解碼技術(shù),該軟迭代解碼技術(shù)涉及解碼器進行若干迭代以對所存儲的編碼信息進行解碼。正如在此所使用的,編碼信息可以被分組為被稱為“碼字”的單元。碼字可以包括“符號”,其為一個或多個位的分組。軟迭代解碼使用與所存儲的碼字相關(guān)聯(lián)的軟數(shù)據(jù)來對碼字進行解碼。正如在此所使用的,軟數(shù)據(jù)或信息是指示碼字中的符號是特別的數(shù)據(jù)符號(諸如二進制系統(tǒng)中的“O” 或“I”)的概率的數(shù)據(jù)。對比與軟迭代解碼,硬判定解碼(相當于硬數(shù)據(jù)解碼)基于與所存儲的碼字相關(guān)聯(lián)的硬數(shù)據(jù)(即,硬判定)。正如在此所使用的,硬數(shù)據(jù)、硬判定包括對應(yīng)于原始碼字符號的數(shù)據(jù)。當傳統(tǒng)閃存存儲器存儲系統(tǒng)使用軟迭代可解碼代碼用于存儲應(yīng)用時,解碼器的復(fù)雜度可能變得比當例如使用代數(shù)碼(諸如BCH代碼或里德-所羅門(Reed-Solomon)代碼) 時高出很多,該代數(shù)碼需要使用硬數(shù)據(jù)的硬判定解碼。此外,當傳統(tǒng)閃存存儲器存儲系統(tǒng)使用軟迭代可解碼代碼用于存儲應(yīng)用時,軟數(shù)據(jù)輸入(關(guān)于要被解碼的所存儲碼字的軟數(shù)據(jù))可能是難于獲取的(即,可能需要非常長的時段來獲取軟數(shù)據(jù)和/或可能消耗許多能量來獲取軟數(shù)據(jù))。這是因為大多數(shù)閃存存儲被優(yōu)化為輸出硬判定而非軟數(shù)據(jù)。因為在使用軟迭代可解碼代碼中的這些困難,由于對用于閃存存儲器存儲應(yīng)用的此類代碼進行解碼而可能導(dǎo)致的能量使用的增長和吞吐量的下降,因此對此類代碼的實現(xiàn)可能不是非常期望的。
發(fā)明內(nèi)容
提供了用于在存儲系統(tǒng)中使用混合解碼方式實現(xiàn)軟迭代解碼的系統(tǒng)和方法。特別是,系統(tǒng)和用于與系統(tǒng)一起使用的方法實現(xiàn)了在復(fù)雜度(例如,功耗和系統(tǒng)使用的硅面積)和性能(例如,吞吐量和信噪比增益)之間的適當平衡。在一些實施方式中,使用存儲系統(tǒng)來對存儲于存儲設(shè)備中的碼字進行解碼。從存儲設(shè)備中接收碼字。解碼器系統(tǒng)的主要解碼器嘗試對碼字進行解碼。接收主要解碼器對碼字進行解碼失敗的指示。基于所接收到的指示,使用解碼器系統(tǒng)的輔助解碼器對碼字進行解碼。主要解碼器比輔助解碼器的復(fù)雜度更低。在一個實施方式中,主要解碼器比輔助解碼器具有更高的用于對碼字進行解碼的吞吐量。在一個實施方式中,主要解碼器比輔助解碼器消耗更少的能量。在一個實施方式中,響應(yīng)于接收主要解碼器對碼字進行解碼失敗的指示來激活輔助解碼器。在一些實施方式中,用于對存儲于解碼存儲設(shè)備中的碼字進行解碼的解碼器系統(tǒng)包括主要解碼器、解碼器控制器和輔助解碼器。主要解碼器被配置為嘗試對碼字進行解碼。解碼器控制器被配置為接收主要解碼器對碼字進行解碼失敗的指示。輔助解碼器被配置為基于該指示對碼字進行解碼。主要解碼器比輔助解碼器具有更低的復(fù)雜度。在一個實施方式中,主要解碼器比輔助解碼器占據(jù)更少的硅面積。在一個實施方式中,主要解碼器包括多個可以并行運作的解碼器。在一個實施方式中,輔助解碼器包括多個可以并行運作的解碼器。在一個實施方式中,解碼器控制器被配置為響應(yīng)于主要解碼器對碼字進行解碼失敗的指示來激活輔助解碼器。
結(jié)合附圖考慮以下具體實施方式
,本公開的上述的和其它目標和優(yōu)點將會容易理解,在附圖中相似的參考標記始終指代相似的部分,并且其中圖I示出了根據(jù)本公開的一些實施方式的說明性解碼器系統(tǒng);圖2示出了根據(jù)本公開的一些實施方式的用于解碼器系統(tǒng)的解碼區(qū)域的說明性圖表;圖3示出了根據(jù)本公開的一些實施方式的、用于使用如本公開中描述解碼器對數(shù)據(jù)進行解碼的過程的說明性流程圖;圖4示出了根據(jù)本公開的一些實施方式的說明性解碼器系統(tǒng);以及圖5示出了根據(jù)本公開的一些實施方式的說明性主要解碼器和輔助解碼器。
具體實施例方式本公開總體上涉及使用混合解碼器執(zhí)行高效解碼。出于說明性目的,在電子存儲系統(tǒng)的上下文中描述本公開,其中所使用的存儲設(shè)備可以是閃存存儲器設(shè)備。然而,應(yīng)當理解,本文的教示同樣可應(yīng)用于任何其它電子存儲系統(tǒng)(例如,隨機訪問存儲器設(shè)備、可編程邏輯設(shè)備、非易失性存儲器、易失性存儲器、FeRAM, CBRAM、PRAM、SONOS, RRAM、賽道存儲器(Racetrack memory)、NRAM和Millipede存儲設(shè)備),其中寫入存儲系統(tǒng)的數(shù)據(jù)容易出現(xiàn)讀取錯誤圖I示出了根據(jù)本公開的一些實施方式的說明性系統(tǒng)100。系統(tǒng)100包括存儲設(shè)備110、輸入緩沖器120、主要解碼器電路130、解碼器控制頂端(control top) 135、輔助解碼器電路140和輸出緩沖器150。主要解碼器電路130、解碼器控制頂端135和輔助解碼器電路140可以共同組成解碼器系統(tǒng)。存儲設(shè)備110可以包括電子存儲設(shè)備(例如,閃存存儲器設(shè)備、隨機訪問存儲器設(shè)備、可編程邏輯設(shè)備、非易失性存儲器、易失性存儲器、FeRAM、CBRAM、PRAM、SONOS、RRAM、賽道存儲器、和 / 或 NRAM 和 Millipede 存儲設(shè)備)。存儲于存儲設(shè)備110中的數(shù)據(jù)可以被編碼并可以因此包括碼字。以編碼形式存儲數(shù)據(jù)增加了存儲于電子存儲器中的數(shù)據(jù)的可靠性。一旦從存儲器獲取了碼字,則需要對碼字進行解碼以輸出由碼字所表示的信息的集合。在一些實施方式中,控制電路(未示出)可以指示存儲設(shè)備110輸出存儲在給定地址位置的數(shù)據(jù)。例如,控制電路可以指示存儲設(shè)備110獲取一個頁面的數(shù)據(jù)。在給定地址(或多個地址)處存儲的碼字(例如,該頁的編碼數(shù)據(jù))由存儲設(shè)備110輸出,并被存儲在輸入緩沖器120中。輸入緩沖器120可以是如下臨時存儲位置,從存儲器獲取的給定集合的碼字在被解碼前存儲在該臨時存儲位置中。主要解碼器130可以讀取存儲于輸入緩沖器120中的碼字。主要解碼器130可以是以非常高效的方式對碼字進行解碼的解碼器。特別是,主要解碼器130與輔助解碼器140相比較可以使用更少量的能量,可以與輔助解碼器140相比較使用更少的迭代來對碼字進行解碼,以及可以具有比輔助解碼器140更低的復(fù)雜度。雖然主要解碼器130可以具有比輔助解碼器140更低的錯誤校正能力,但主要解碼器可以比輔助解碼器140具有更高的吞吐量(例如,25. 6Gbps)并且可以占據(jù)更少量的硅面積。主要解碼器130可以是一個解碼器。主要解碼器130可以是獨立或組合使用、串行或并行使用的不止一個解碼器。主要解碼器130可以是Viterbi解碼器、LDPC解碼器、AN解碼器(被用來對用于算法應(yīng)用的AN代碼進行解碼的解碼器,其中A和N是整數(shù)),BCH解碼器、恒定權(quán)重解碼器、卷積解碼器、或任何其它類型的使用硬數(shù)據(jù)或軟數(shù)據(jù)的編碼信息的解碼器。在一些實現(xiàn)中,主要解碼器130可以耦合到存儲設(shè)備110,并且可以配置為從存儲設(shè)備獲取與所存儲碼字相關(guān)聯(lián)的附加軟數(shù)據(jù)輸入(例如,當解碼器130是使用軟數(shù)據(jù)而非硬數(shù)據(jù)的解碼器時)。在其他實現(xiàn)中,解碼器控制頂端135可以發(fā)起從存儲設(shè)備110的讀取操作,以讀取軟數(shù)據(jù)并向解碼器130提供該數(shù)據(jù)。如果主要解碼器130將其從輸入緩沖器120接收的碼字成功解碼,則主要解碼器130可以向輸出緩沖器150輸出經(jīng)解碼數(shù)據(jù)。輸出緩沖器150可以是如下臨時存儲位置,將經(jīng)解碼數(shù)據(jù)集存儲于該臨時存儲位置以供利用電路(例如,處理器或控制電路)消費。如果主要解碼器130對來自輸入緩沖器120的碼字進行解碼失敗,則可以向解碼器控制頂端135通知該失敗。在一些實施方式中,解碼器控制頂端135可以監(jiān)控主要解碼器130以確定是否對碼字進行了成功解碼。解碼器控制頂端135可以運行以激活輔助解碼器140。在一些實施方式中,解碼器控制頂端135可以追蹤主要解碼器130未能對碼字進行成功解碼的次數(shù),并且可以在嘗試了此類不成功的解碼達到閾值次數(shù)后,宣告主要解碼器130對該碼字進行解碼失敗。在一些實施方式中,當主要解碼器130未能對信息進行成功解碼時,可以激活輔助解碼器140 (例如,由解碼器控制頂端135)。在一些實施方式中,輔助解碼器140可以是激活的,但直到主要解碼器130在對碼字進行解碼失敗,才嘗試對來自輸入緩沖器120的碼字進行解碼。
輔助解碼器140可以讀取存儲于輸入緩沖器120中的碼字。輔助解碼器140可以是使用更強大和更復(fù)雜的解碼技術(shù)來對碼字進行解碼的解碼器。特別是,輔助解碼器140與主要解碼器130相比較使用更大量的能量,與主要解碼器130相比較使用更多的迭代以對碼字進行解碼,并且與主要解碼器130相比較具有更大的復(fù)雜度。雖然輔助解碼器140與主要解碼器130相比可以具有增強的錯誤校正能力,但輔助解碼器與主要解碼器130相比可能具有更低的吞吐量(例如,800Mbps)并且占據(jù)更大量的硅面積。輔助解碼器140可以是一個解碼器。輔助解碼器140可以是獨立或組合使用、串行或并行使用的不止一個解碼器。在一些實施方式中,輔助解碼器140可以是Viterbi解碼器、LDPC解碼器、AN解碼器(被用于對用于算法應(yīng)用的AN代碼進行解碼的解碼器,其中A和N是整數(shù))、BCH解碼器、恒定權(quán)重解碼器、卷積解碼器、或任何其它類型的使用硬數(shù)據(jù)或軟數(shù)據(jù)的編碼信息的解碼器。在一些實現(xiàn)中,輔助解碼器140可以耦合到存儲設(shè)備110,并且可以配置為從存儲設(shè)備獲取與所存儲碼字相關(guān)聯(lián)的附加軟數(shù)據(jù)輸入(例如,當解碼器140是使用軟數(shù)據(jù)而非硬數(shù)據(jù)的解碼器時)。在其他實現(xiàn)中,解碼器控制頂端135可以發(fā)起從存儲設(shè)備110的讀取操作,以讀取軟數(shù)據(jù)并向解碼器140提供該信息。如果輔助解碼器140將其從輸入緩沖器120接收的碼字成功解碼,則輔助解碼器140可以向輸出緩沖器150輸出經(jīng)解碼數(shù)據(jù)144。輸出緩沖器150可以是如下臨時存儲位置,將經(jīng)解碼數(shù)據(jù)集存儲于該臨時存儲位置中以供利用電路(例如,處理器或控制電路)消費。應(yīng)當理解,解碼器130和解碼器140中的任何一個解碼器可以包括可以實現(xiàn)任何合適的解碼過程或技術(shù)的電路,該合適的解碼過程或技術(shù)不同于來自解碼器130和解碼器140中的另一個解碼器的技術(shù)。在一些實施方式中,解碼器130和解碼器140可以同時運作以對碼字進行解碼。在一些實施方式中,解碼器140可以在解碼器130之前運行以對碼字進行解碼。例如,如果已知碼字具有高BER或低SNR,則解碼器140可以在解碼器130之前運行以對碼字進行解碼。對用于使用混合解碼器對碼字進行解碼的技術(shù)的類似使用在2011年11月7日提交的第13/290,672號的共同未決的、共同轉(zhuǎn)讓美國專利申請中進一步描述,其內(nèi)容在此通過引用而全部合并于此。具有比第二碼字的信號質(zhì)量等級(BER或者SNR)更差的碼字可能要求比對第二碼字進行解碼所需的解碼器(例如,可以基于硬數(shù)據(jù)輸入來對信息進行解碼的解碼器,諸如主要解碼器130)更強、更復(fù)雜、更耗時并且更耗能量的解碼器(例如,可以夠基于軟數(shù)據(jù)輸入來對信息進行解碼和使用多重迭代的解碼器,諸如輔助解碼器140)才能被成功解碼。圖2示出了根據(jù)本公開的一些實施方式的用于解碼器系統(tǒng)的解碼區(qū)域的說明性圖表200。圖表200包括曲線210,該曲線210示出了存儲于存儲設(shè)備(例如,圖I的存儲設(shè)備110)中的碼字的BER的一般概率分布。特別是,曲線210將從存儲設(shè)備讀取的碼字的原始位錯誤率(X軸)映射到碼字出現(xiàn)原始位錯誤率的概率(Y軸)。圖200還示出了三個區(qū)域即時主要解碼區(qū)域220 (此處即時模式解碼是成功的)、轉(zhuǎn)換(主要/輔助)解碼區(qū)域230 (此處擴展模式解碼是成功的)、和輔助解碼區(qū)域240 (此處重試模式解碼是成功的)。這些區(qū)域/模式中的每一個是碼字的BER的區(qū)間,在該區(qū)間上主要解碼器(例如,圖I的主要解碼器130)和/或輔助解碼器(例如,圖I的輔助解碼器140)能夠?qū)Υa字進行成功解碼。特別是,對于具有在即時解碼區(qū)域220中BER的碼字而言,主要解碼器(例如,使用硬數(shù)據(jù)輸入)可以能對碼字進行成功解碼(按照即時模式解碼)。對于具有在轉(zhuǎn)換(主要/輔助)解碼區(qū)域230中BER的碼字而言,盡管即時模式解碼失敗,但主要解碼器或輔助解碼器(例如,使用硬數(shù)據(jù)輸入)可以能對碼字進行成功解碼(按照擴展模式解碼)。對于具有在輔助區(qū)域240中BER的碼字而言,盡管即時模式解碼和擴展模式解碼兩者都失敗了,但輔助解碼器(例如,使用軟數(shù)據(jù)輸入)可以能對碼字進行成功解碼(按照重試模式解碼)。每個解碼區(qū)域(例如圖2中所示的)可以有助于定義將在解碼器系統(tǒng)(例如,圖I中示出的系統(tǒng))中使用的主要和/或輔助解碼器的類型??梢远x解碼區(qū)域(和/或使用的主要解碼器和輔助解碼器),從而使得在即時解碼區(qū)域220中的碼字的BER的累積概率(基于曲線210下方的區(qū)域)可以大于在轉(zhuǎn)換解碼區(qū)域230中的BER的累積概率。此外,在轉(zhuǎn)換解碼區(qū)域230中的碼字的BER的累積概率(基于曲線210下方的區(qū)域)可以大于在輔助解碼區(qū)域240中的BER的累積概率。這意味著按照這樣的方式將解碼器系統(tǒng)(例如,圖I中所示的系統(tǒng))設(shè)計為使主要解碼器對所存儲的碼字解碼成功的概率高于主要解碼器對所存儲的碼字解碼失敗,從而依靠輔助解碼器對碼字進行解碼的概率。正因為如此,可以減少將激活和/或使用輔助解碼器來對碼字進行解碼的機會。因此,解碼器系統(tǒng)被設(shè)計為允許以相當高的比率來對碼字進行解碼。圖3示出了根據(jù)本公開的一些實施方式的、用于使用如在此描述的解碼器對數(shù)據(jù)進行解碼的過程300的說明性流程圖。在310處,從存儲設(shè)備讀出關(guān)于碼字(即,碼字的符號)的硬數(shù)據(jù)輸入(也稱為硬判定輸入)。例如,碼字的符號可以從圖I的存儲設(shè)備110中的存儲位置讀出,并存儲在圖I的輸入緩沖器120中。在320處,主要解碼器(例如,圖I的主要解碼器130)讀取或接收硬數(shù)據(jù)(例如,在310中),并嘗試對與硬數(shù)據(jù)相關(guān)聯(lián)的碼字進行解碼。例如,如參考圖2所討論的,這種對碼字進行解碼的嘗試可以被認為是即時模式解碼。在330,可以判定(例如,通過主要解碼器或輔助解碼器、或解碼器控制器)主要解碼器在320處的對碼字的解碼是成功還是失敗。例如,圖I的解碼器控制頂端135可以監(jiān)控圖I的主要解碼器130,以確定主要解碼器130對碼字的解碼是否成功。作為另一示例,圖I的主要解碼器130可以確定對碼字的解碼失敗,并且可以將其失敗報告給圖I的解碼器控制頂端135。在一些實施方式中,在判定主要解碼器對碼字的解碼失敗之前,主要解碼器可以多次不成功地嘗試對碼字進行解碼。如果確定主要解碼器對碼字的解碼失敗,則可以執(zhí)行操作340。如果確定主要解碼器對碼字的解碼成功,則可以執(zhí)行操作380。在340處,可以激活輔助解碼器(例如,圖I的輔助解碼器140)。輔助解碼器可以讀取或接收硬數(shù)據(jù)(例如,在310處讀取的硬數(shù)據(jù)),并嘗試對與硬數(shù)據(jù)相關(guān)聯(lián)的碼字進行解碼。例如,如參考圖2所描述 的,這種對碼字進行解碼的嘗試可以被認為是擴展模式解碼。在350處,可以判定(例如,通過主要解碼器或輔助解碼器、或解碼器控制器)輔助解碼器在340處對碼字的解碼是成功還是失敗。例如,圖I的解碼器控制頂端135可以監(jiān)控圖I的輔助解碼器140,以確定輔助解碼器140對碼字的解碼是否成功。作為另一示例,圖I的輔助解碼器140可以確定對碼字的解碼失敗,并且可以將其失敗報告給圖I的解碼器控制頂端135。在一些實施方式中,在判定輔助解碼器對碼字的解碼失敗之前,輔助解碼器可以多次不成功地嘗試對碼字進行解碼。如果確定輔助解碼器對碼字的解碼失敗,則可以執(zhí)行操作360。如果確定輔助解碼器對碼字的解碼成功,則可以執(zhí)行操作380。在360處,可以激活輔助解碼器(例如,圖I的輔助解碼器140)。輔助解碼器可以讀取或接收軟數(shù)據(jù)(例如,來自 操作310的關(guān)于碼字的軟數(shù)據(jù))。例如,圖I的輔助解碼器140可以從圖I的存儲設(shè)備110獲取與所存儲碼字相關(guān)聯(lián)的附加軟數(shù)據(jù)輸入。作為另一示例,圖I的解碼器控制頂端135可以發(fā)起從存儲設(shè)備110的讀取操作,以讀取與碼字相關(guān)聯(lián)的軟數(shù)據(jù),并向圖I的解碼器140提供該數(shù)據(jù)。從存儲設(shè)備獲取或讀取軟數(shù)據(jù)可以涉及對讀取關(guān)于存儲于存儲設(shè)備中的關(guān)于碼字的信息的多次通過。輔助解碼器可以嘗試對與所讀取或接收到的軟數(shù)據(jù)相關(guān)聯(lián)的碼字進行解碼。例如,如參考圖2所討論的,這種對碼字進行解碼的嘗試可以被認為是重試模式解碼。在370處,可以判定(例如,通過主要解碼器或輔助解碼器、或解碼器控制器)輔助解碼器在360處的對碼字的解碼是成功還是失敗。例如,圖I的解碼器控制頂端135可以監(jiān)控圖I的輔助解碼器140,以確定輔助解碼器140對碼字的解碼是否成功。作為另一示例,圖I的輔助解碼器140可以確定對碼字的解碼失敗,并且可以將其失敗報告給圖I的解碼器控制頂端135。在一些實施方式中,在判定輔助解碼器對碼字的解碼失敗之前,輔助解碼器可以多次不成功地嘗試對碼字進行解碼。如果確定輔助解碼器對碼字的解碼失敗,則可以執(zhí)行操作390。如果確定輔助解碼器對碼字的解碼成功,則可以執(zhí)行操作380。在380處,包括主要解碼器和輔助解碼器以及可能還有解碼器控制頂端的解碼系統(tǒng)宣告對碼字的解碼成功。繼而,經(jīng)解碼的數(shù)據(jù)可以被輸出到對解碼系統(tǒng)進行主控的系統(tǒng)。例如,可以由成功對數(shù)據(jù)進行解碼的解碼器將經(jīng)解碼的數(shù)據(jù)輸出到圖I的緩沖器150。繼而,過程300可以針對另一碼字重復(fù)或者退出。在390處,解碼系統(tǒng)宣告對碼字的解碼失敗。繼而,過程300可以針對另一碼字重復(fù)或者退出。應(yīng)當理解,過程300的以上操作可以按照任何次序或順序執(zhí)行或?qū)嵤?,而不限于在該附圖中示出和描述的次序或順序。同樣,過程300的一些以上操作可以在合適時基本同時或者并行地被執(zhí)行或?qū)崿F(xiàn),以減少等待時間和處理時間。此外,過程300的一些或全部以上操作可以由解碼器使用的監(jiān)控或控制電路和/或由低能量電路來執(zhí)行。例如,操作320和330可以被跳過,而操作340可以在過程300中的操作310之后立即執(zhí)行。如果解碼器控制頂端、主要解碼器或輔助解碼器知道主要解碼器對在操作310處所選的碼字的解碼失敗的可能性非常大,這就可能發(fā)生。作為另一示例,操作320、330、340和350可以被跳過,而操作360可以在過程300中的操作310之后立即執(zhí)行。如果解碼器控制頂端、主要解碼器或輔助解碼器知道在操作310處所選的碼字具有相當?shù)偷腟NR或相當高的BER,這就可能發(fā)生。圖4示出了根據(jù)本公開的一些實施方式一致的說明性系統(tǒng)400,系統(tǒng)400類似于圖I中示出的系統(tǒng)100。系統(tǒng)400包括輸入緩沖器420、主要解碼器電路430、中間緩沖電路435、輔助解碼器電路440以及輸出緩沖器450。輸入緩沖器420在設(shè)計和運作上都相當類似于圖I的輸入緩沖器120。在一些實施方式中,主要解碼器430和輔助解碼器440可以分別代替圖I的主要解碼器130和圖I的輔助解碼器140運作。在一些實施方式中,主要解碼器430和輔助解碼器440可以使用圖3的過程300中所描述的技術(shù)來運作。
主要解碼器430可以包括一定數(shù)量(m)個并行或串行運作的解碼器電路432,其中m是正整數(shù)。主要解碼器430中的每個解碼器432可以讀取存儲于輸入緩沖器420中的碼字。每個解碼器432都可以按照非常高效的方式對碼字進行解碼。特別是,主要解碼器430的解碼器432可以與輔助解碼器440中的解碼器442相比較使用更少量的能量,可以與輔助解碼器440中的解碼器442相比較使用更少的迭代來對碼字進行相比較,以及可以與輔助解碼器440中的解碼器442相比較具有更低的復(fù)雜度。雖然主要解碼器430和/或解碼器432與輔助解碼器440和/或解碼器442相比可能具有更低的錯誤校正能力,但主要解碼器和/或其中的解碼器與輔助解碼器和/或其中的解碼器相比可以具有更高的吞吐量(例如,25.6Gbps)并占用更少量的硅面積。在一些實施方式中,主要解碼器430中包括的任何一個解碼器432可以是Viterbi解碼器、LDPC解碼器、AN解碼器、BCH解碼器、恒定權(quán)重解碼器、卷積解碼器、或使用硬數(shù)據(jù)或軟數(shù)據(jù)的編碼信息的任何其它類型的解碼器中的任何一個。在一些實現(xiàn)中,每個解碼器432被配置為從存儲碼字的存儲設(shè)備獲取與所存儲的碼字相關(guān)聯(lián)的附加軟數(shù)據(jù)輸入(例如,當解碼器432的特定解碼器是使用軟數(shù)據(jù)而非硬數(shù)據(jù)的解碼器時)。盡管并未示出,但是在一些實施方式中,如果任何解碼器432成功地對其從輸入緩沖器420接收的碼字進行解碼,則解碼器可以將經(jīng)解碼數(shù)據(jù)直接輸出到輸出緩沖器450。輸出緩沖器450可以非常類似于圖I的輸出緩沖器150,并且輸出緩沖器450可以是如下臨時存儲位置,將經(jīng)解碼數(shù)據(jù)集存儲于該臨時存儲單元以供利用電路(例如,處理器或控制電路)消費。在一些實施方式中,如果任何解碼器432成功地對其從輸入緩沖器420接收的碼字進行解碼,則該解碼器可以將經(jīng)解碼數(shù)據(jù)輸出到中間緩沖器435。如果解碼器432對碼字的解碼失敗,則可以將碼字輸出到中間緩沖器435。中間緩沖器435可以是其中存儲被成功解碼數(shù)據(jù)集以供消費的臨時存儲單元。中間緩沖器435也可以是其中存儲未被解碼器432成功解碼的碼字以用于由輔助解碼器440中的解碼器442進行隨后處理的臨時存儲單元。如果主要解碼器430對碼字的解碼失敗,則可以激活輔助解碼器440。輔助解碼器440可以包括一定數(shù)量(η)個并行或串行運作的解碼器電路442,其中η是正整數(shù)。輔助解碼器440中的每個解碼器442可以讀取存儲于中間緩沖器420中的碼字。該碼字可以是沒有被主要解碼器430中的解碼器432成功進行解碼的碼字。輔助解碼器440中的每個解碼器442可以是使用更強力和更復(fù)雜的解碼技術(shù)(例如,與主要解碼器430中的解碼器相比使用更多迭代、與主要解碼器430中的解碼器相比使用更多能量等)來對碼字進行解碼的解碼器。特別是,輔助解碼器440中的解碼器442可以與主要解碼器430中的解碼器432相比使用更大量的能量,可以與主要解碼器430中的解碼器432相比使用更多的迭代來對碼字進行解碼,以及可以與主要解碼器130中的解碼器432相比具有更大的復(fù)雜度。雖然輔助解碼器440與輔助解碼器430相比可能具有增強的錯誤校正能力,但輔助解碼器與主要解碼器430相比可能具有更低的吞吐量(例如,800Mbps)并且占用更大量的硅面積。在一些實施方式中,輔助解碼器440中的任何解碼器442可以是Viterbi解碼器、LDPC解碼器、AN解碼器、BCH解碼器、權(quán)重恒定解碼器、卷積解碼器、或使用硬數(shù)據(jù)或軟數(shù)據(jù)的編碼信息的任何其它類型的解碼器。在一些實現(xiàn)中,每個解碼器442可以被配置為從存儲碼字的存儲設(shè)備獲取與所存儲碼字相關(guān)聯(lián)的附加軟數(shù)據(jù)輸入(例如,當解碼器442的特定解碼器是使用軟數(shù)據(jù)而非硬數(shù)據(jù)的解碼器時)。在一些實施方式中,如果任何解碼器442成功對其從中間緩沖器435接收的碼字進行解碼,則解碼器可以將經(jīng)解碼數(shù)據(jù)輸出到輸出緩沖器450。輸出緩沖器450可以非常類似于圖I的輸出緩沖器150,并且輸出緩沖器450可以是如下臨時存儲位置,將經(jīng)解碼數(shù)據(jù)集存儲于該臨時存儲位置以供利用電路(例如,處理器或控制電路)消費圖5示出了根據(jù)本公開的一些實施方式的說明性主要解碼器530和輔助解碼器540。主要解碼器530在運作上非常類似于圖I的主要解碼器130或圖4的主要解碼器430。輔助解碼器540在運作上非常類似于圖I的輔助解碼器140或圖4的輔助解碼器440。主要解碼器530可用于代替圖I中所示系統(tǒng)中的主要解碼器130或圖4中所示系統(tǒng)中的主要解碼器430。輔助解碼器540可用于代替圖I中所示系統(tǒng)中的輔助解碼器140或圖4中所示系統(tǒng)中的輔助解碼器440。在一些實施方式中,主要解碼器530和輔助解碼器540可以使用圖3的過程300中所描述的技術(shù)來運作。主要解碼器530和輔助解碼器540被用于涉及存儲信息的存儲設(shè)備的應(yīng)用中,該信息使用LDPC代碼連接BCH代碼來進行編碼。主要解碼器530可以包括與BCH解碼器534串行連接的LDPC軟迭代解碼器532。輔助解碼器540可以包括與BCH解碼器544串行連接的LDPC軟迭代解碼器542。主要解碼器530和輔助解碼器540可以作為替代各自包括任何數(shù)量和任何類型的串行連接的解碼器。在運作中,主要解碼器530可以使用與碼字相關(guān)聯(lián)的硬數(shù)據(jù)作為輸入。到主要解碼器530的輸入可以在由解碼器534處理之前,首先由解碼器532處理。如果成功對碼字進行解碼,則主要解碼器530可以輸出經(jīng)解碼數(shù)據(jù)。如果主要解碼器530未能成功對碼字進行解碼,則可以激活輔助解碼器540。輔助解碼器540可以使用與碼字相關(guān)聯(lián)的硬數(shù)據(jù)和/或軟數(shù)據(jù)(其讀取或接收到的)作為輸入。到輔助解碼器540的輸入可以在由解碼器544處理之前,首先由解碼器542處理。如果成功對碼字進行解碼,則輔助解碼器540可以輸出經(jīng)解碼數(shù)據(jù)。如果輔助解碼器540未能成功對碼字進行解碼,則其可以宣告其對碼字進行解碼失敗。應(yīng)當理解,在此描述的主要解碼器和輔助解碼器的實施方式(例如,圖I的主要解碼器130、圖4的主要解碼器430或圖5的主要解碼器530,以及圖I的輔助解碼器140、圖4的輔助解碼器440或圖5的輔助解碼器540)可以按照不同于在此描述的實施方式的形式實施。例如,每個主要解碼器和輔助解碼器在它們的實現(xiàn)中可以共享組件。主要解碼器和輔助解碼器可以使用相同類型的電路實現(xiàn),但可以按照不同的模式運作。例如,主要解碼器(例如,主要解碼器130、430或530)可以是一個或多個LDPC軟迭代解碼器,每個LDPC軟迭代解碼器都以每個碼字進行三次解碼迭代來運作,并且輔助解碼器(例如,輔助解碼器140,440或540)可以是一個或多個LDPC軟迭代解碼器,每個LDPC軟迭代解碼器都以每個碼字進行十次迭代來運作。作為另一示例,使用具有O. 9的比率的代碼的LDPC編碼,將數(shù)據(jù)編碼并存儲于存儲設(shè)備中。在這個示例中,解碼器系統(tǒng)可以包括一個或多個LDPC軟迭代主要解碼器和一個或多個LDPC軟迭代輔助解碼器,該主要解碼器以每碼字兩次解碼迭代來運作,并具有25. 6Gbps的吞吐量,該輔助解碼器以每碼字八次迭代來運作,并具有6. 4Gbps的吞吐量。應(yīng)當進一步理解,當主要解碼器對碼字的解碼失敗或例如已知碼字具有差的BER或SNR時,可以激活并使用輔助解碼器。此外,當需要消除不必要的讀取操作時,對用于對碼字進行解碼(例如,由輔助解碼器解碼)的軟數(shù)據(jù)的讀取(例如,從存儲設(shè)備)就可能發(fā)生。此類不必要的讀取操作會降低系統(tǒng)吞吐量,增加功耗,并造成對存儲設(shè)備的讀取干擾。由于存儲于存儲設(shè)備的碼字的BER的概率分布(S卩,圖2的曲線210),大多數(shù)碼字將使用主要解碼器和輸入到解碼器的硬數(shù)據(jù)來解碼。正因為如此,以及因為主要解碼器與輔助解碼器相比具有相當高的吞吐量和相當?shù)偷墓?,使用在此描述的解碼系統(tǒng)對數(shù)據(jù)進行解碼將在具有相當高的吞吐量和相當?shù)偷墓牡那闆r下完成。也應(yīng)當理解,對于相似的吞吐量而言,在此描述的主要解碼器與在此描述的輔助解碼器相比具有更低的復(fù)雜度。如以上所 述,主要解碼器對所存儲碼字進行解碼的概率要高于主要解碼器對碼字解碼失敗并且要求輔助代碼器對碼字進行解碼的概率。而且,因為輔助解碼器與主要解碼器相比使用的頻率少得多,輔助解碼器的吞吐量要求也顯著少于主要解碼器的該要求。正因為如此,整個解碼系統(tǒng)保持了高吞吐量。這也可以有助于顯著減少輔助解碼器占據(jù)的硅面積。包括主要解碼器、輔助解碼器和可能的解碼器控制電路的解碼器系統(tǒng),可以具有與完全(full-blown)軟迭代解碼器類似的性能,同時提供高吞吐量,并保持最小化的功耗和硅面積占用。前文描述了用于使用包括主要解碼器和輔助解碼器的解碼器系統(tǒng)來對數(shù)據(jù)進行解碼的系統(tǒng)和方法。本領(lǐng)域技術(shù)人員將領(lǐng)會到,本公開的所描述的實施方式可以通過與出于說明而非限制目的呈現(xiàn)的所述實施方式以外的其他實施方式實現(xiàn)。此外,本公開并不限于特定的實現(xiàn)。例如,上文所描述方法的一個或多個步驟可以按照不同順序(或同時)執(zhí)行,并且仍能實現(xiàn)期望的結(jié)果。此外,本公開可以用硬件實現(xiàn),諸如在專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)上實現(xiàn),它們都可以包括附加的通訊電路(例如,射頻電路)。備選的,本公開也可以實現(xiàn)在運行于任何適當?shù)挠布幚砥魃系能浖?。因此,在適合時可以在此由本領(lǐng)域技術(shù)人員使用等效的方案和進行替換,而不會背離本公開的在以下權(quán)利要求中詳述的范圍。
權(quán)利要求
1.一種用于使用解碼器系統(tǒng)對存儲于存儲設(shè)備中的碼字進行解碼的方法,所述方法包括 從所述存儲設(shè)備接收所述碼字; 使用所述解碼器系統(tǒng)的主要解碼器嘗試對所述碼字進行解碼; 接收所述主要解碼器對所述碼字進行解碼失敗的指示;以及 基于所接收的指示,使用所述解碼器系統(tǒng)的輔助解碼器對所述碼字進行解碼,其中所述主要解碼器比所述輔助解碼器具有更低的復(fù)雜度。
2.根據(jù)權(quán)利要求I所述的方法,其中所述主要解碼器比所述輔助解碼器具有更高的用于對碼字進行解碼的吞吐量。
3.根據(jù)權(quán)利要求I所述的方法,其中所述主要解碼器比所述輔助解碼器消耗更少的能量。
4.根據(jù)權(quán)利要求I所述的方法,其中所述主要解碼器包括與BCH碼解碼器串行運作的低密度奇偶校驗(LDPC)碼解碼器。
5.根據(jù)權(quán)利要求I所述的方法,其中所述輔助解碼器包括與BCH碼解碼器串行運作的低密度奇偶校驗(LDPC)碼解碼器。
6.根據(jù)權(quán)利要求I所述的方法,其中用低密度奇偶校驗(LDPC)碼連接BCH碼來對所述碼字進行編碼。
7.根據(jù)權(quán)利要求I所述的方法,其中所述主要解碼器接受與所述碼字相關(guān)聯(lián)的硬數(shù)據(jù)作為輸入,并且所述輔助解碼器接受與所述碼字相關(guān)聯(lián)的軟數(shù)據(jù)作為輸入。
8.根據(jù)權(quán)利要求I所述的方法,進一步包括響應(yīng)于接收主要解碼器對所述碼字進行編碼失敗的指示來激活所述輔助解碼器。
9.根據(jù)權(quán)利要求I所述的方法,其中所述主要解碼器被配置為對所述碼字進行解碼的概率高于對所述碼字進行解碼失敗的概率。
10.根據(jù)權(quán)利要求I所述的方法,其中所述主要解碼器和所述輔助解碼器各自包括低密度奇偶校驗(LDPC)碼解碼器,并且其中所述主要解碼器比所述輔助解碼器對每個碼字進行執(zhí)行更少的迭代。
11.一種用于對存儲于存儲設(shè)備中的碼字進行解碼的解碼器系統(tǒng),所述系統(tǒng)包括 主要解碼器,配置為嘗試對所述碼字進行解碼; 解碼器控制器,配置為接收所述主要解碼器對所述碼字進行解碼失敗的指示;以及輔助解碼器,配置為基于所述指示對所述碼字進行,其中所述主要解碼器比所述輔助解碼器具有更低的復(fù)雜度。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述主要解碼器比所述輔助解碼器占據(jù)更少的硅面積。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述主要解碼器包括多個解碼器。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中包括在所述主要解碼器中的所述多個解碼器并行運作。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述輔助解碼器包括多個并行運作的解碼器。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中包括在所述輔助解碼器中的所述多個解碼器并行運作。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述主要解碼器接受與所述碼字相關(guān)聯(lián)的硬數(shù)據(jù)作為輸入,并且所述輔助解碼器接受與所述碼字相關(guān)聯(lián)的軟數(shù)據(jù)作為輸入。
18.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述解碼器控制器被配置為響應(yīng)于所述指示來激活所述輔助解碼器。
19.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述主要解碼器被設(shè)計為對所述碼字進行解碼的概率高于對所述碼字進行解碼失敗的概率。
20.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述主要解碼器耦合到所述輔助解碼器,并且所述主要解碼器和所述輔助解碼器的每一個都耦合到所述解碼器控制器。
全文摘要
本發(fā)明涉及用于基于閃存的存儲器系統(tǒng)的軟解碼系統(tǒng)和方法。特別地,提供了用于使用包括主要解碼器和輔助解碼器的解碼器對數(shù)據(jù)進行解碼的系統(tǒng)和方法。從存儲設(shè)備獲取碼字。主要解碼器嘗試使用與碼字相關(guān)聯(lián)的硬數(shù)據(jù)來對碼字進行解碼。如果主要解碼器失敗,則解碼控制器接收到對失敗的指示,該指示激活輔助解碼器。輔助解碼器嘗試使用與碼字相關(guān)聯(lián)的硬數(shù)據(jù)或軟數(shù)據(jù)來對碼字進行解碼。主要解碼器被設(shè)計為比輔助解碼器消耗更少的能量、消耗更少的硅面積以及具有更高的吞吐量。主要解碼器被配置為,相比失敗并需要輔助解碼器對碼字進行解碼,更有可能在對碼字進行解碼的第一次嘗試中對存儲在存儲設(shè)備中的碼字進行成功解碼。
文檔編號G11C29/42GK102623067SQ201210063709
公開日2012年8月1日 申請日期2012年1月29日 優(yōu)先權(quán)日2011年1月28日
發(fā)明者G·伯德, 陽學(xué)仕 申請人:馬維爾國際貿(mào)易有限公司