專利名稱:利用寫入驗證減輕代碼的誤碼平層的制作方法
技術領域:
本發(fā)明涉及數(shù)字信號處理,并且更具體地說,涉及諸如低密度奇偶校驗(LDPC)編 碼的數(shù)據(jù)編碼方法。
背景技術:
通信是通過通信信道從發(fā)送器向接收器傳送信息。在真實世界中,通信信道是有 噪聲的信道,向接收器提供從發(fā)送器發(fā)送來的失真形式的信息。存儲裝置(例如,硬盤(HD) 驅動器、閃速驅動器)就是一種這樣的有噪聲信道,接受來自發(fā)送器的信息、存儲該信息, 并接著向接收器提供或多或少失真形式的該信息。由諸如存儲裝置的通信信道引入的失真可能大到足以導致信道錯誤,即,當信道 輸入信號為0時,接收器將信道輸出信號解譯為1,或反之亦然。信道錯誤降低了吞吐量,并 因此不合乎需要。因此,存在對于檢測和/或校正信道錯誤的工具的持續(xù)需要。低密度奇 偶校驗(LDPC)編碼是用于檢測和校正信道錯誤的一種方法。LDPC碼是可以針對低信噪比(SNR)應用實現(xiàn)非常低的位出錯率(BER)的已知近 Shannon極限碼之一。LDPC解碼由于其并行化的潛力、實施復雜性低、解碼等待時間少以及 高SNR下誤碼平層(error floor)不太嚴重而著名。LDPC碼實質(zhì)上考慮到了所有下一代通 信標準。
發(fā)明內(nèi)容
在一個實施例中,本發(fā)明是一種用于將原始編碼碼字存儲至存儲介質(zhì)的機器實施 的方法。所述原始編碼碼字被寫入至所述存儲介質(zhì),作為寫入編碼碼字。通過從所述存儲 介質(zhì)讀取所述寫入編碼碼字來生成信道輸出碼字。將所述原始編碼碼字與基于所述信道 輸出碼字的導出碼字進行比較,以識別所述寫入編碼碼字中的一個或多個錯誤位的第一集 合。通過在所述第一集合中選擇一個或多個錯誤位來生成所述寫入編碼碼字中的一個或多 個錯誤位的第二集合。將與所述第二集合中的一個或多個錯誤位相對應的錯誤位信息寫入至所述存儲介質(zhì)。在另一實施例中,本發(fā)明是一種用于針對存儲在存儲介質(zhì)中的寫入編碼碼字生成 解碼碼字的機器實施方法,所述寫入編碼碼字具有一個或多個錯誤位。通過從所述存儲介 質(zhì)讀取所述寫入編碼碼字來生成信道輸出碼字。從所述信道輸出碼字生成導出碼字。從所 述存儲介質(zhì)讀取錯誤位信息,其中,所述錯誤位信息對應于所述寫入編碼碼字中的一個或 多個錯誤位。使用所述錯誤位信息來生成修正的碼字。對所述修正的碼字執(zhí)行進一步的處 理,以生成所述解碼碼字。
根據(jù)下面的詳細描述、附屬權利要求書以及附圖,本發(fā)明的其它方面、特征以及優(yōu) 點將更充分清楚,在附圖中,相同標號標識相似或相同部件。圖1是利用LDPC編碼的通信系統(tǒng)100的框圖。圖2 (A)描繪了 LDPC H矩陣200,而圖2 (B)是H矩陣200的Tanner圖形。圖3是圖A的解碼器AC所使用的LDPC解碼方法300的流程圖。圖4是根據(jù)本發(fā)明一實施例的通過信道控制器120控制的、圖1的通信系統(tǒng)100 所實施的LDPC編碼/解碼處理400的流程圖。圖5是錯誤位表的一個實施例的圖。圖6是根據(jù)本發(fā)明一個實施例的、圖4的步驟410的流程圖,即,寫入錯誤驗證處 理的流程圖。圖7是圖6的步驟612的流程圖。圖8是根據(jù)本發(fā)明一個實施例的圖4的寫入錯誤恢復處理418的流程圖。
具體實施例方式圖1是利用LDPC編碼的通信系統(tǒng)100的框圖。數(shù)據(jù)源102生成稱為原始信息字 104的多個位的集合。LDPC編碼器106編碼原始信息字104,以生成原始編碼碼字108。下 面,更詳細討論LDPC編碼。將原始編碼碼字108 (還稱為信道輸入碼字)寫入至存儲介質(zhì) 110 (例如,閃速驅動器、硬盤驅動器盤片等),作為寫入編碼碼字。在以后的某一時間,存儲介質(zhì)110讀取寫入編碼碼字并向信道檢測器112輸出一 組值y (即信道輸出碼字)。信道輸出碼字和根據(jù)該信道輸出碼字導出的任何碼字稱為導出 碼字。信道檢測器112將接收到的值y轉換成一組對數(shù)似然比(LLR)值L。h。LLR值包括 (i)表示解碼器關于由對應值y所表示的一位硬判定值的最佳推測的符號位,和(ii)表示 硬判定中解碼器的置信度的一個或多個量值位(magnitude bit)。例如,信道檢測器112可 能輸出每一個LLR值L。h,作為五位值,其中,最高有效位是表示硬判定的符號位,而四個量 值位的值表示硬判定的置信度。因而,在一種可能LLR方案中,二進制00000的LLR值表示 具有最小置信度的0的硬判定,二進制01111的LLR值表示具有最大置信度的0的硬判定, 二進制10001的LLR值表示具有最小置信度的1的硬判定,而二進制11111的LLR值將表 示具有最大置信度的1的硬判定,其中,二進制10000未使用。信道檢測器112向LDPC解碼器114發(fā)送Leh值,其中,它們變?yōu)榻獯a器輸入碼字。 接著,LDPC解碼器114針對一組L。h值執(zhí)行一次或多次解碼迭代116 ( “局部迭代”),以生成解碼碼字i。當(i)LDPC解碼器114得出正確的解碼碼字(DCCW),即義和信道輸入碼字 108相同,或者(ii)LDPC解碼器AC執(zhí)行了最大可允許數(shù)量的局部迭代而沒有得出DCCWjP LDPC解碼器114失敗時,LDPC解碼器AC終止。當解碼器114終止時,其向數(shù)據(jù)目的地118 輸出解碼碼字i。下面更詳細地描述LDPC解碼。信道控制器120至少控制LDPC編碼器106、信道檢測器112,以及LDPC解碼器114 的操作。信道控制器典型為ARM(高級RISC(精簡指令集代碼)機)處理器。LDPC 編碼為了創(chuàng)建碼字108,LDPC編碼器106向信息字104的多個位附加由LDPC代碼指定 的多個奇偶位。信息字104中的位數(shù)由K表示。編碼碼字中的位稱為變量位,并且那些變 量位的數(shù)量由N表示。因而,奇偶位的數(shù)量由N-K給出。按由特定LDPC代碼所指定的特定方式,LDPC碼字中的每一個奇偶位與該碼字中 的一個或多個其它位相關聯(lián),并且設置指配給奇偶位的值,以滿足LDPC代碼。典型LDPC代 碼指定奇偶位,并且其關聯(lián)位滿足奇偶檢驗約束,例如,位的總和是偶數(shù),即,和模2 = 0。LDPC 代碼特定的LDPC代碼由稱為奇偶校驗矩陣或H矩陣(或簡寫為H)的1和0的二維矩 陣來定義。H被LDPC編碼器和解碼器推理而知。H包括N列和N-K行,S卩,針對碼字的每一 位的列,和針對每一個奇偶位的行。H中的每一個1表示列的碼字位與行的奇偶位之間的關 聯(lián)。例如,H的第三行、第七列處的1意指第三奇偶校驗位與碼字的第七位相關聯(lián)。檢驗位 與和該檢驗位相關聯(lián)的所有變量位的值的和模2應當為0。典型LDPC代碼的定義特征是, H為“稀疏的”,即,H的元素大多為0,而1相對較少。圖2A描繪了 LDPC H矩陣200。H矩陣200包括N = 9列和N-K = 6行。因而,H 矩陣200定義了接受三位信息字的LDPC代碼,附加六個奇偶位,并且輸出九位碼字。在存 儲介質(zhì)是硬盤驅動器或閃速驅動器的一種實現(xiàn)方式中,每一個信息字的長度為4096位,并 且每一個碼字的長度為4552位。其它實現(xiàn)方式可以包括具有其它位長度的信息字和/或碼字。LDPC 解碼置信傳播(Belief Propagation)圖3是圖1的解碼器114所使用的LDPC解碼方法300的流程圖。解碼方法300的 核心是稱作置信傳播的迭代、兩相消息傳遞算法。置信傳播可以使用Tarmer圖形來說明。圖2 (B)是H矩陣200的Tarmer圖形。一般來說,Tanner圖形包括1)等于H中 的列數(shù)(并因此等于變量位數(shù)N)的多個位節(jié)點(還稱為變量節(jié)點)n,2)等于H中的行數(shù) (并因此等于奇偶位數(shù))的多個校驗節(jié)點m,3)邊202,每一條邊將單個位節(jié)點叫連接至單 個校驗節(jié)點IV 4)針對每一個位節(jié)點Iii的原始L。h值,以及5)針對每一個位節(jié)點Iii的所計 算的硬判定輸出值^。圖2 (B)的Tanner圖形包括九個位節(jié)點、六個校驗節(jié)點Hici-H^
將位節(jié)點連接至校驗節(jié)點的18條邊202、九個L。h值,以及九個1值。Tanner圖形中的邊表示位節(jié)點η與校驗節(jié)點m之間的關系,其中,邊表示H中的 1。例如,在圖2(B)中,邊202將第一位節(jié)點Iitl連接至第四校驗節(jié)點m3,因為在圖2(A)中 的H矩陣200的第一列、第四行中存在1。Tanner圖形是雙向圖形,即,一條邊可以將一個位節(jié)點僅連接至一個校驗節(jié)點,而不能將一個位節(jié)點連接至另一位節(jié)點,或者不能將一個校驗節(jié)點連接至另一校驗節(jié)點。通 過邊連接至特定校驗節(jié)點m的所有位節(jié)點η的集合表示為N (m)。通過邊連接至特定位節(jié)點 η的所有校驗節(jié)點m的集合表示為M (η)。特定(位或校驗)節(jié)點的索引在該圖形中是其序 數(shù)系列。返回至圖3,在步驟302開始處理并且前進至步驟304,解碼器初始化。解碼器初 始化304包括針對與位節(jié)點η相關聯(lián)的對應L。h值來設置連接至每一個位節(jié)點η的所有邊 η(例如,圖2(B)的邊202),并且針對位節(jié)點η的Leh的硬判定值(S卩,MSB)的來設置位節(jié) 點η的1值。因而,例如,在圖2(B)中,如果與位節(jié)點Iitl相關聯(lián)的L。h值是十進制值+5,則 在步驟304,將位節(jié)點nQ連接至校驗節(jié)點mQ和m3的兩條邊202被設置成+5,并且位節(jié)點nQ 的1值被設置成1。表達這個步驟的第一部分的另選方式是,位節(jié)點 向集合MOO中的 每一個校驗節(jié)點m發(fā)送消息+5。從位節(jié)點η向校驗節(jié)點M發(fā)送的消息被稱作位節(jié)點或Q消 息,并且被表示為Q 。接著,步驟304向出錯校驗步驟(syndrome check st印)306發(fā)送包括N個&值
的候選解碼碼字矢量i。出錯校驗步驟306利用以下等式(1)來計算出錯矢量(syndrome vector)ζ
權利要求
1.一種用于將原始編碼碼字存儲至存儲介質(zhì)的機器實施的方法,該方法包括(a)將所述原始編碼碼字寫入至所述存儲介質(zhì),作為寫入編碼碼字;(b)通過從所述存儲介質(zhì)讀取所述寫入編碼碼字來生成信道輸出碼字;(c)將所述原始編碼碼字與基于所述信道輸出碼字的導出碼字進行比較,以識別所述 寫入編碼碼字中的一個或多個錯誤位的第一集合;(d)通過在所述第一集合中選擇一個或多個錯誤位來生成所述寫入編碼碼字中的一個 或多個錯誤位的第二集合;以及(e)將與所述第二集合中的一個或多個錯誤位相對應的錯誤位信息寫入至所述存儲介質(zhì)。
2.根據(jù)權利要求1所述的方法,其中,所述原始編碼碼字是LDPC碼字。
3.根據(jù)權利要求1所述的方法,其中,所述步驟(c)還包括針對所述信道輸出碼字執(zhí)行 解碼來生成所述導出碼字。
4.根據(jù)權利要求1所述的方法,其中,所述第二集合等于所述第一集合。
5.根據(jù)權利要求1所述的方法,其中,所述第二集合是所述第一集合的適當子集。
6.根據(jù)權利要求1所述的方法,還包括(f)通過從所述存儲介質(zhì)讀取所述寫入編碼碼字來生成解碼器輸入碼字;(g)針對所述解碼器輸入碼字執(zhí)行解碼以生成解碼碼字;以及(h)如果所述解碼碼字不是正確的解碼碼字,則 (hi)從所述存儲介質(zhì)讀取所述錯誤位信息; (h2)基于所述錯誤位信息生成修正的碼字;以及 (h3)對所述修正的碼字執(zhí)行進一步的處理。
7.根據(jù)權利要求6所述的方法,其中,所述步驟(h2)包括基于所述錯誤位信息來修正 所述解碼碼字的一個或多個位以生成所述修正的碼字。
8.根據(jù)權利要求6所述的方法,其中,所述步驟(M)包括(h3i)確定所述錯誤位信息是否對應于所述第一集合中的所有錯誤位; (h3ii)如果所述錯誤位信息對應于所述第一集合中的所有錯誤位,則所述進一步的處 理包括對所述修正的碼字執(zhí)行出錯校驗和循環(huán)冗余校驗(CRC)中的一個或多個;以及(h3iii)如果所述錯誤位信息不對應于所述第一集合中的所有錯誤位,則所述進一步 的處理包括對所述修正的碼字執(zhí)行解碼。
9.根據(jù)權利要求1所述的方法,其中,所述錯誤位信息包括 針對所述寫入編碼碼字的特有標識符;針對所述第二集合中的每一個錯誤位的索引值;以及 對所述第二集合是否對應于所述第一集合中的所有錯誤位的指示。
10.根據(jù)權利要求1所述的方法,其中,所述步驟(d)包括 (dl)在所述第一集合中選擇一個或多個錯誤位;(d2)基于所選擇的一個或多個錯誤位生成修正的碼字; (d3)對所述修正的碼字執(zhí)行解碼,以生成候選解碼碼字; (d4)確定所述候選解碼碼字是否為正確的解碼碼字;(d5)如果所述候選解碼碼字是正確的解碼碼字,則基于所選擇的一個或多個錯誤位來生成所述第二集合;以及(d6)如果所述候選解碼碼字不是正確的解碼碼字,則針對所述第一集合中的其它選擇 的一個或多個錯誤位重復步驟(dl)_(d4)。
11.一種用于針對存儲在存儲介質(zhì)中的寫入編碼碼字生成解碼碼字的機器實施的方 法,所述寫入編碼碼字具有一個或多個錯誤位,所述方法包括(a)通過從所述存儲介質(zhì)讀取所述寫入編碼碼字來生成信道輸出碼字;(b)基于所述信道輸出碼字來生成導出碼字;(c)從所述存儲介質(zhì)讀取錯誤位信息,其中,所述錯誤位信息對應于所述寫入編碼碼字 中的一個或多個錯誤位;(d)基于所述錯誤位信息生成修正的碼字;以及(e)針對所述修正的碼字執(zhí)行處理,以生成所述解碼碼字。
12.根據(jù)權利要求11所述的方法,其中,所述寫入編碼碼字是LDPC碼字。
13.根據(jù)權利要求11所述的方法,其中,所述步驟(b)包括(bl)針對所述信道輸出碼字執(zhí)行解碼,以生成所述導出碼字;以及 (b2)確定所述導出碼字不是正確的解碼碼字。
14.根據(jù)權利要求11所述的方法,其中,所述步驟(d)包括基于所述錯誤位信息來修正 所述導出碼字中的一個或多個位,以生成所述修正的碼字。
15.根據(jù)權利要求11所述的方法,其中,所述步驟(e)包括(el)確定所述錯誤位信息是否對應于所述寫入編碼碼字中的所有錯誤位; (e2)如果所述錯誤位信息對應于所述寫入編碼碼字中的所有錯誤位,則所述處理包括 對所述修正的碼字執(zhí)行出錯校驗和循環(huán)冗余校驗(CRC)中的一個或多個;以及(e3)如果所述錯誤位信息不對應于所述寫入編碼碼字中的所有錯誤位,則所述處理包 括針對所述修正的碼字執(zhí)行解碼。
16.根據(jù)權利要求11所述的方法,其中,所述錯誤位信息包括 針對所述寫入編碼碼字的特有標識符;針對所述寫入編碼碼字中的每一個錯誤位的索引值;以及對所述錯誤位信息是否對應于所述寫入編碼碼字中的所有錯誤位的指示。
全文摘要
在將信道輸入(例如,LDPC)碼字寫入至存儲介質(zhì)時所執(zhí)行的寫入驗證方法(i)比較信道輸入碼字與寫入碼字,(ii)識別任何錯誤位,以及(iii)將針對記錄的錯誤位索引存儲在表中。在以后的某一時間,讀取該寫入碼字并將其發(fā)送至解碼器。如果該解碼器無法利用附近碼字,則寫入錯誤恢復處理搜索該表并且檢索錯誤位信息。調(diào)節(jié)在那些索引處的碼字位,并且提交修正的碼字以供進一步的處理。
文檔編號G06F11/00GK102077173SQ200980124441
公開日2011年5月25日 申請日期2009年4月21日 優(yōu)先權日2009年4月21日
發(fā)明者K·岡曼, N·格拉菲 申請人:艾格瑞系統(tǒng)有限公司