專利名稱:近碼字的ram列表解碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信號處理,并且更具體地,涉及被稱為低密度奇偶校驗(yàn)(LDPC)編 碼的數(shù)據(jù)編碼方法。
背景技術(shù):
通信是由傳輸方在通信信道上向接收方傳輸信息。在現(xiàn)實(shí)世界中,通信信道是向 接收方輸出從傳輸方接收的信息的失真版本的有噪信道。硬盤(HD)驅(qū)動器就是這樣一種 有噪信道,其從傳輸方接收信息,存儲該信息,然后可能將該信息的或更多或少地失真的拷 貝傳輸給接收方。由諸如HD驅(qū)動器的通信信道引入的失真可能大到足以引起信道錯(cuò)誤,即,當(dāng)信道 輸入信號是0時(shí),接收方將信道輸出信號解釋為1,或者反之。信道錯(cuò)誤減小了吞吐率,并且 因此是不希望的。因此,存在對檢測和/或校正信道錯(cuò)誤的工具的持續(xù)需要。低密度奇偶校 驗(yàn)(LDPC)編碼是用于檢測和校正信道錯(cuò)誤的一種方法。LDPC碼是可以為低信噪比(SNR) 應(yīng)用實(shí)現(xiàn)非常低的位錯(cuò)誤率(BER)的已知的近Shannon極限編碼之一。LDPC解碼以其并行 潛力、低實(shí)現(xiàn)復(fù)雜度、低解碼延遲以及在高SNR下的不很嚴(yán)重的錯(cuò)誤平臺(error-floor)而 著稱。實(shí)際上認(rèn)為LDPC碼將用于所有下一代通信標(biāo)準(zhǔn)。
發(fā)明內(nèi)容
在某些實(shí)施例中,本發(fā)明包括用于對使用基于圖的碼編碼的編碼數(shù)據(jù)進(jìn)行解碼的 方法。該方法包括(i)對編碼數(shù)據(jù)執(zhí)行解碼,以便產(chǎn)生候選解碼碼字,和(b)如果候選解碼 碼字不是解碼正確的碼字,執(zhí)行陷阱集合(TS)-RAM列表解碼方法,以便試圖產(chǎn)生解碼正確 的碼字。TS-RAM列表解碼方法訪問存儲在RAM存儲器內(nèi)的一個(gè)或更多個(gè)TS簡檔,每個(gè)TS 簡檔與不同的陷阱集合相對應(yīng)。在其它實(shí)施例中,本發(fā)明是用于對使用基于圖的碼字編碼的編碼數(shù)據(jù)進(jìn)行解碼的 裝置。該裝置包括(i)被配置為對編碼數(shù)據(jù)執(zhí)行解碼,以便產(chǎn)生候選解碼碼字的解碼器, (ii)RAM存儲器,和(iii)陷阱集合(TS)-RAM列表解碼器,被配置為如果候選解碼碼字不是 解碼正確的碼字,則執(zhí)行TS-RAM列表解碼方法,以便試圖產(chǎn)生解碼正確的碼字。TS-RAM列 表解碼器訪問存儲在RAM存儲器內(nèi)的一個(gè)或更多個(gè)TS簡檔。每個(gè)TS簡檔相應(yīng)于不同的陷 講集合。
從下面的詳細(xì)描述、所附的權(quán)利要求書以及附圖中,將會完全明了本發(fā)明的其它 方面、特征和優(yōu)點(diǎn),在附圖中相似的附圖標(biāo)記指示相似或相同的元件。圖1是使用LDPC編碼的典型硬盤(HD)驅(qū)動器100的一部分的方框圖;圖 2 (A)示出了 LDPC H 矩陣 200,圖 2 (B)是 H 矩陣 200 的 Tanner 圖;圖3是由解碼器112使用的典型LDPC解碼方法300的流程圖;圖4是用于識別陷阱集合和記錄關(guān)于這些陷阱集合的各種信息的離線陷阱集合 (TS)仿真工具400的方框圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的LDPC解碼方法500的方框圖;圖6是圖5的ROM P表514的示例布局;圖7是圖5的B表512的示例布局;圖8是圖5的E表516的示例布局;圖9是圖5的EI表518的示例布局;圖10是圖5的RAM P表522的示例布局;圖11是圖5的RAM索引表524的示例布局; 圖12是圖5的LDPC解碼系統(tǒng)500所使用的示例處理1200的流程圖;圖13是由圖5的后處理器504實(shí)施的圖12的示例TS-ROM列表解碼處理1206的 流程圖;圖14是圖13的示例TS-ROM搜索處理1314的流程圖;圖15是圖12的示例TS-RAM列表解碼處理1208的流程圖;和圖16是圖12的示例TS-RAM更新處理1216的流程圖。
具體實(shí)施例方式圖1是使用LDPC編碼的典型硬盤(HD)驅(qū)動器100的一部分的方框圖。HD驅(qū)動器 100包括盤片102和讀通道104。讀通道104包括LDPC編碼器106、寫處理器108、讀處理 器110和LDPC解碼器112。路徑114是LDPC編碼器106和LDPC解碼器112之間的有噪信道。由LDPC編碼器106處理將被寫到盤片102的信息字以便產(chǎn)生LDPC碼字。LDPC碼 字被發(fā)送到寫處理器108,寫處理器108包括若干模塊,例如,BPSK ( 二進(jìn)制相移鍵控)編碼 器、數(shù)字到模擬轉(zhuǎn)換器等。寫處理器108的輸出116被寫到盤片102。從盤片102讀取的信號118被發(fā)送到讀處理器110,讀處理器110包括若干模塊, 例如,前置放大器、連續(xù)時(shí)間濾波器、固定激勵響應(yīng)濾波器、解碼器、模擬到數(shù)字轉(zhuǎn)換器等。 讀處理器Iio向LDPC解碼器112輸出對數(shù)似然比(LLR)值L。h,LDPC解碼器112又輸出解 碼的信息字。另外,LDPC解碼器112將Euirc值送回讀處理器110。EII)rc被以下面的等式6 定義,并且表示中間計(jì)算LLR值。讀處理器110使用Euirc值調(diào)整其性能,這是被稱為turbo 解碼的處理。LDPC 編碼LDPC編碼器106給信息字的位附加由LDPC碼指定的若干奇偶位,以便產(chǎn)生碼字。 信息字中的位被稱為變量位,并且這些變量位的數(shù)目被表示為K。LDPC碼字中的位的總數(shù)被表示為N。因此,由N-K給出奇偶位的數(shù)目。特定LDPC碼的比率是K/N,即,信息字長度 與碼字長度的比。因此,給每3位信息字附加6個(gè)奇偶位以便產(chǎn)生9位碼字的LPDC碼具有 1/3的比率。在典型的HD驅(qū)動器的情況下,對于4506位的碼字長度和0. 9的比率,信息字 長度K是4096位(典型HD驅(qū)動器扇區(qū)的長度),并且奇偶位的數(shù)目近似為410位。LDPC碼字中的每個(gè)奇偶位以由特定LDPC碼所指定的特定方式與碼字中的一個(gè)或更多個(gè)其它(變量或奇偶)位相關(guān)聯(lián),并且分配給奇偶位的值被設(shè)置為滿足LDPC碼。典型 LPDC碼規(guī)定相關(guān)聯(lián)的位滿足奇偶校驗(yàn)約束,例如,相關(guān)聯(lián)的位的和是偶數(shù),S卩,和模2 = 0。LDPC 碼由被稱為奇偶校驗(yàn)矩陣或H矩陣或簡稱為H的1和0的二維矩陣定義特定的LDPC 碼。LDPC編碼器和解碼器事先都知道H。H包括N列和N-K行,S卩,碼字的每個(gè)位針對一列, 并且每個(gè)奇偶位針對一行。H中的每個(gè)1表示列的碼字位和行的奇偶位之間的關(guān)聯(lián)。例如, H的第3行第7列處的1意味著第3個(gè)奇偶校驗(yàn)位與碼字的第7個(gè)位相關(guān)聯(lián)。校驗(yàn)位與和 該校驗(yàn)位相關(guān)聯(lián)的所有變量位的值的和模2應(yīng)當(dāng)為0。H的一列中的1的數(shù)目被稱為該列的權(quán)重w。。類似地,H的一行中的1的數(shù)目被稱 為該行的權(quán)重K。由所有列具有相同的《。并且所有行具有相同K的H定義的LDPC碼被稱 為規(guī)則LDPC碼。由分別在所有列和/或行上不全相同的W。和/或W,的H定義的LDPC碼 被稱為不規(guī)則LDPC碼。典型LDPC碼的一種定義特性是H是“稀疏的”,即,H的元素大部分為0,只有少數(shù) 為1。研究顯示H矩陣通常需要W。彡3以便有良好表現(xiàn),并且不規(guī)則LDPC碼優(yōu)于規(guī)則LDPC碼。圖2 (A)示出了 LDPC H矩陣200。H矩陣200包括N = 9列和N-K = 6行。因此, H矩陣200定義接受3位信息字、附加6個(gè)奇偶位、并且輸出9位碼字的LDPC碼。因此,這 種特定LDPC碼的比率是3/9或1/3。由H矩陣200定義的LDPC碼是規(guī)則的,其W。為2并 且Wr為3。信道輸出對數(shù)似然比返回圖1,LDPC編碼器106和LDPC解碼器112之間的路徑114是有噪信道,并且 從而,解碼器112不能接收由LDPC編碼器106輸出的碼字的完美拷貝。而是,讀處理器110 輸出一個(gè)或更多個(gè)L。h值,其中每個(gè)L。h值與信道輸入碼字中的一個(gè)位相對應(yīng)。每個(gè)Leh值是一個(gè)對數(shù)似然比(LLR)。LLR是包括若干位的數(shù)據(jù)結(jié)構(gòu),其中一個(gè)單 個(gè)的符號位指示硬判決(即,讀處理器110關(guān)于原始位是1還是0的最佳猜測),并且剩余
的量值位指示讀處理器110對該硬判決的置信程度。更準(zhǔn)確地,LLR表示lQg,唭中Ptl是
Pi
樣本表示0的概率,并且P1是樣本表示1的概率。例如,讀處理器110可以用5位數(shù)據(jù)結(jié)構(gòu)輸出每個(gè)L。h值,其中最高位是指示硬判 決值的符號位,并且4個(gè)量值位的16個(gè)值指示硬判決的置信度。因此,例如,在一種典型的 方案中,二進(jìn)制00000的LLR值指示具有最低置信度的硬判決值0,二進(jìn)制01111的LLR值 指示具有最高置信度的硬判決值0,二進(jìn)制10000未使用,二進(jìn)制10001指示具有最低置信 度的硬判決值1,并且二進(jìn)制11111指示具有最高置信度的硬判決值1。LDPC解碼信任傳播
圖3是由解碼器112使用的典型LDPC解碼方法300的流程圖。LDPC解碼器112接收N個(gè)L。h值,并且輸出解碼的信息字。解碼方法300的核心是被稱為信任傳播的迭代的 兩階段消息傳遞算法。通過使用被稱為Tanner圖的視覺表示最好地解釋信任傳播。圖2 (B)是H矩陣200的Tanner圖。一般地,Tanner圖包括1)等于H中的列數(shù) 的位節(jié)點(diǎn)數(shù)目η (并且因此等于變量位的數(shù)目),2)等于H中的行數(shù)的校驗(yàn)節(jié)點(diǎn)數(shù)目m(并且 因此等于奇偶位的數(shù)目),3)線,也被稱為邊,每個(gè)邊將單個(gè)位節(jié)點(diǎn)連接到單個(gè)校驗(yàn)節(jié)點(diǎn), 4)對于每個(gè)位節(jié)點(diǎn)n,從接收方接收的原始L。h值,和5)對于每個(gè)位節(jié)點(diǎn)n,計(jì)算的硬判決 輸出值A(chǔ)。圖2 (B)的Tarmer圖包括9個(gè)位節(jié)點(diǎn)Iici-Ii8,6個(gè)校驗(yàn)節(jié)點(diǎn)HicrlIi5,18個(gè)將位節(jié)點(diǎn)連 接到校驗(yàn)節(jié)點(diǎn)的邊202,9個(gè)Leh值和9個(gè)&值。Tarmer圖中的邊表示(即,變量)位節(jié)點(diǎn)η和校驗(yàn)節(jié)點(diǎn)m之間的關(guān)系,S卩,邊表示 H中的1。例如,在圖2(B)中,邊202將第1個(gè)位節(jié)點(diǎn)Iitl連接到第4個(gè)校驗(yàn)節(jié)點(diǎn)m3,這意味 著在圖2 (A)的H矩陣200的第1列第4行中存在1。Tanner圖是二分圖,即,一個(gè)邊僅能將一個(gè)位節(jié)點(diǎn)連接到一個(gè)校驗(yàn)節(jié)點(diǎn),而不能將 一個(gè)位節(jié)點(diǎn)連接到另一個(gè)位節(jié)點(diǎn),或者將一個(gè)校驗(yàn)節(jié)點(diǎn)連接到另一個(gè)校驗(yàn)節(jié)點(diǎn)。表 示被以邊連接到特定校驗(yàn)節(jié)點(diǎn)m的所有位節(jié)點(diǎn)η的集合。以Μ(η)表示被以邊連接到特定 位節(jié)點(diǎn)η的所有校驗(yàn)節(jié)點(diǎn)m的集合。特定(位或校驗(yàn))節(jié)點(diǎn)的索引是其在圖中的序數(shù)序列。(位或校驗(yàn))節(jié)點(diǎn)的度是 連接到該節(jié)點(diǎn)的邊的數(shù)目。因此,Tarmer圖中位節(jié)點(diǎn)η的度等于相應(yīng)H矩陣中的列η的權(quán) 重w。,并且Tarmer圖中校驗(yàn)節(jié)點(diǎn)m的度等于相應(yīng)H矩陣中的行m的權(quán)重^。返回圖3,處理開始于步驟302,并且進(jìn)入步驟304,進(jìn)行解碼器初始化。解碼器初 始化304包括將與每個(gè)位節(jié)點(diǎn)η連接的所有邊(例如,圖2 (B)的202)設(shè)置為與位節(jié)點(diǎn)η相 關(guān)聯(lián)的相應(yīng)L。h值,并且將位節(jié)點(diǎn)η的、值設(shè)置為位節(jié)點(diǎn)η的L。h的硬判決值。因此,例如, 在圖2 (B)中,如果與位節(jié)點(diǎn)Iitl相關(guān)聯(lián)的Leh值是+5,則在步驟304,將使位節(jié)點(diǎn)Iitl連接到 檢查校驗(yàn)節(jié)點(diǎn)mQ和m3的兩個(gè)邊202設(shè)置為+5,并且位節(jié)點(diǎn)η的元值被設(shè)置為1。表述這個(gè) 步驟的第一部分的另一種方式是位節(jié)點(diǎn) 向集合M(Iitl)中的每個(gè)校驗(yàn)節(jié)點(diǎn)m發(fā)送消息+5。 以Qnm表示從位節(jié)點(diǎn)η發(fā)送到校驗(yàn)節(jié)點(diǎn)m的消息,其中Qnm為LLR的形式。解碼器剛被初始 化后的狀態(tài)被稱為狀態(tài)0。隨后,步驟304向校驗(yàn)子校驗(yàn)步驟306發(fā)送包括N個(gè)元值的矢量f。矢量 是碼字候 選。校驗(yàn)子校驗(yàn)步驟306使用下面的等式(1)計(jì)算校驗(yàn)子矢量ζ
<formula>formula see original document page 8</formula>其中Ht是H矩陣的轉(zhuǎn)置。如果ζ是0矢量,則矢量Jf滿足由H定義的所有奇偶校 驗(yàn)約束,即j是有效的解碼碼字。在該情況下,處理進(jìn)入循環(huán)冗余校驗(yàn)(CRC)318。 相反,如果ζ不是0矢量,則矢量jf未通過一個(gè)或更多個(gè)奇偶校驗(yàn)約束,這通常被稱 為不滿足校驗(yàn)節(jié)點(diǎn)或use。校驗(yàn)子矢量Z中不為0標(biāo)量值的元素的數(shù)目是矢量f中的USC的 數(shù)目b。另外,校驗(yàn)子矢量Z的非0標(biāo)量元素的索引是USC在矢量jf中的索引。
如果矢量 未通過校驗(yàn)子校驗(yàn)306,則處理繼續(xù)一個(gè)或更多個(gè)解碼迭代308中的第 一個(gè)迭代。解碼迭代308包括三個(gè)步驟1)信任傳播校驗(yàn)節(jié)點(diǎn)更新步驟310,2)信任傳播 位節(jié)點(diǎn)更新步驟312和3)與步驟306相同的校驗(yàn)子校驗(yàn)步驟314。
在信任傳播校驗(yàn)節(jié)點(diǎn)更新步驟310中,每個(gè)校驗(yàn)節(jié)點(diǎn)m根據(jù)下面的等式2、3和4 使用從集合N(m)中的所有位節(jié)點(diǎn)η接收的Qnm消息計(jì)算以Rnm表示的消息
<formula>formula see original document page 9</formula>其中i是解碼迭代,N(m)\n是除去位節(jié)點(diǎn)η之外的集合N(m),并且β是正的常 數(shù),其值取決于碼參數(shù)。然后計(jì)算的Rnm消息被沿著相同的邊送回集合N(m)中的所有位節(jié) 點(diǎn)η。類似于Qnm消息,Rnm消息是LLR。接著,在信任傳播位節(jié)點(diǎn)更新步驟312,每個(gè)位節(jié)點(diǎn)η根據(jù)下面的等式5計(jì)算Qnm消 息<formula>formula see original document page 9</formula>其中Ln(°)是位節(jié)點(diǎn)η的L。h值,并且M(n) \m是除去校驗(yàn)節(jié)點(diǎn)m之外的集合M(n)。 然后位節(jié)點(diǎn)η將計(jì)算的Qnm消息發(fā)送到集合Μ(η)中的所有校驗(yàn)節(jié)點(diǎn)m。并且,在位節(jié)點(diǎn)更新步驟312中,每個(gè)位節(jié)點(diǎn)η根據(jù)下面的等式6和7更新其元
<formula>formula see original document page 9</formula>如果Pn彡0,則瓦=0,并且如果?11彡0,則之=1。由等式6產(chǎn)生的值也稱為E值 或Euirc值。典型地,Euire值作為被稱為turbo解碼的調(diào)整處理的一部分被送回讀處理器(例 如,圖1的讀處理器110)。由等式(7)產(chǎn)生的值被稱為P值。以等式(2)-(7)表示的特定 信任傳播算法被稱為最小和算法。注意,瓦被在每個(gè)解碼迭代308中更新,并且最后由解碼處理300輸出。原始LLR 值Leh在解碼處理300中保持不變。換言之,在每個(gè)解碼迭代308中,每個(gè)位節(jié)點(diǎn)η對其通 過校驗(yàn)節(jié)點(diǎn)m相關(guān)聯(lián)的所有其它位節(jié)點(diǎn)η的正確值進(jìn)行投票。例如,在圖2(B)中,位節(jié)點(diǎn) η0與校驗(yàn)節(jié)點(diǎn)mQ和m3相關(guān)聯(lián)。因此,n0對與校驗(yàn)節(jié)點(diǎn)mQ和m3相關(guān)聯(lián)的位節(jié)點(diǎn),即,n3、n5、 116和117的正確值投票。位節(jié)點(diǎn)η的L。h值的量值越大(即,置信度越大),位節(jié)點(diǎn)η的投票 計(jì)數(shù)越多。這種投票的最終作用是具有低L。h量值(即,置信度)的位節(jié)點(diǎn)的元值將發(fā)生改 變,并且順應(yīng)與該位節(jié)點(diǎn)相關(guān)聯(lián)的高置信度位節(jié)點(diǎn)的信任。換言之,如果位節(jié)點(diǎn)的L。h值包 含錯(cuò)誤的硬判決值和低量值,則在一個(gè)或更多個(gè)迭代之后,其它位節(jié)點(diǎn)的組合投票趨于校 正該錯(cuò)誤的硬判決值。位節(jié)點(diǎn)更新步驟312將由解碼器的當(dāng)前元值構(gòu)成的矢量 發(fā)送到校驗(yàn)子校驗(yàn)步驟 314。校驗(yàn)子校驗(yàn)步驟314與上面討論的步驟306的校驗(yàn)子校驗(yàn)相同。如果矢量無通過了校 驗(yàn)子校驗(yàn)314,則矢量 被發(fā)送到CRC步驟318。LDPC解碼循環(huán)冗余校驗(yàn)和誤滿足校驗(yàn)節(jié)點(diǎn)通過校驗(yàn)子校驗(yàn)306或314意味著矢量 是有效的解碼碼字,但是不必然是解碼正確的碼字(DCCW)。LDPC解碼器可能產(chǎn)生不是DCCW的有效碼字。在該情況下,矢量 中不存 在USC,但是存在誤滿足校驗(yàn)節(jié)點(diǎn)(MSC)。因此,為了確保有效的矢量jf是DCCW,處理300將 矢量 傳遞到循環(huán)冗余校驗(yàn)(CRC)318。CRC校驗(yàn)是校驗(yàn)和運(yùn)算,其可以檢測傳輸或存儲過程 中的數(shù)據(jù)改變。如果矢量$通過了 CRC校驗(yàn),則矢量 是DCCW,并且處理300將全局變量DCCW設(shè)置為真,輸出矢量 ,并且在步驟320處終止。否則,矢量jf不是DCCW,并且處理300將全局變 量DCCW設(shè)置為假,輸出矢量S ,并且在步驟320處終止。全局變量DCCW通知其它解碼處理 (例如,下面討論的圖12的TS-ROM列表解碼處理1206)是否產(chǎn)生了 DCCW。返回步驟314,如果矢量 未通過校驗(yàn)子校驗(yàn),則矢量 仍然包含一個(gè)或更多個(gè) USC。解決USC的典型方法是執(zhí)行另一個(gè)解碼迭代308。然而,特定矢量$中可能存在不能 在合理的時(shí)間量中被滿足的一個(gè)或更多個(gè)USC。因此,LDPC解碼器通常受限于它們可以對 特定矢量 執(zhí)行多少次解碼迭代。迭代的最大數(shù)目的典型值的范圍從50到200。在圖3中,步驟316確定是否達(dá)到了迭代的最大數(shù)目。如果未達(dá)到,執(zhí)行另一個(gè)解 碼迭代308。反之,如果達(dá)到了迭代的最大數(shù)目,則解碼器處理300失敗,S卩,解碼器是“失 敗的解碼器”。在該情況下,處理300將全局變量DCCW設(shè)置為假,輸出矢量S,并且在步驟 320終止。如果失敗的解碼器的矢量Jf包含小數(shù)目(例如,小于16)的USC,則矢量 被稱為近 碼字(NCW)。如果失敗的解碼器的矢量 包含大數(shù)目(例如,大于15)的USC,則矢量 被稱 為無效碼字(ICW)。處理失敗的解碼處理的兩個(gè)典型方法是1)請求重新發(fā)送相應(yīng)數(shù)據(jù),或2)將矢量χ 傳遞到一個(gè)或更多個(gè)后處理(PP)方法。典型地,矢量無中的USC的數(shù)目b指示使用這兩種 方法中的哪一種。通常通過重發(fā)或其它后處理方法處理大的b (例如,大于16),而通過錯(cuò)誤 平臺減輕后處理方法處理小的b值。BER、SNR和錯(cuò)誤平臺LDPC解碼器的位錯(cuò)誤率(BER)是表達(dá)對于處理的χ個(gè)位將產(chǎn)生多少個(gè)錯(cuò)誤解碼位 的比率。因此,例如,具有10_9的BER的解碼器對于處理的每十億個(gè)解碼位平均產(chǎn)生1個(gè)錯(cuò) 誤位。BER越小,解碼器越好。當(dāng)解碼器失敗,即,解碼器終止而沒有收斂到解碼正確的碼字 DCCff時(shí),LDPC解碼器的BER增大(惡化)。LDPC解碼器的BER受解碼器的輸入信號的信噪比(SNR)的強(qiáng)烈影響。作為SNR的 函數(shù)的BER圖通常包括兩個(gè)不同區(qū)域初始“瀑布”區(qū)域,其中對于SNR的單位增加,BER迅 速改善(下降);以及隨后的“錯(cuò)誤平臺”區(qū)域,其中SNR的單位增加僅產(chǎn)生BER的略微改 善。因此,在錯(cuò)誤平臺區(qū)域中實(shí)現(xiàn)顯著的BER改進(jìn)需要SNR增加之外的方法。一種改善LDPC解碼的錯(cuò)誤平臺特性的方法是增加碼字長度。然而,增加碼字長度 也增加LDPC解碼所需的存儲器和其它計(jì)算資源。因此,如果這些資源是緊缺的,HD驅(qū)動器 上的讀通道設(shè)備通常就是這種情況,必須尋找其它方法產(chǎn)生必要的錯(cuò)誤平臺改進(jìn)。另一種稀缺的資源是處理周期。通常,為了實(shí)現(xiàn)指定的吞吐率,HD驅(qū)動器為 解碼一個(gè)碼字安排固定數(shù)目的讀通道處理周期預(yù)算。超出該預(yù)算的方法(S卩,計(jì)劃外 (off-the-fly)的方法)將減小吞吐率。更希望在時(shí)鐘周期分配內(nèi)恢復(fù)DCCW,并且因此不 減小吞吐率的計(jì)劃內(nèi)的方法。
陷阱集合和優(yōu)勢陷阱集合(a,b)陷阱集合是解碼器不能在最大數(shù)目的迭代內(nèi)滿足的b個(gè)USC的集合以及與這些USC相關(guān)聯(lián)的a個(gè)錯(cuò)誤位節(jié)點(diǎn)(EBN)的集合。大部分陷阱集合包括少于5個(gè)USC和少 于10個(gè)EBN。陷阱集合對LDPC解碼器的錯(cuò)誤平臺特性具有顯著影響,即,當(dāng)LDPC解碼器未 能收斂到DCCW時(shí),通常是因?yàn)橄葳寮?。改進(jìn)LDPC解碼器的錯(cuò)誤平臺特性的一種方法是⑴校驗(yàn)失敗的解碼器的 矢量 中的USC,并且識別陷阱集合(如果有的話),(ii)識別與這些USC相關(guān)聯(lián)的EBN,(iii)翻 轉(zhuǎn)與這些陷阱集合相關(guān)聯(lián)的一個(gè)或更多個(gè)EBNdP (iV)重新啟動解碼器。在一種可能的實(shí) 現(xiàn)中,如果LDPC解碼器剛被初始化,即,解碼器處于狀態(tài)0,翻轉(zhuǎn)EBN包括(i)逆轉(zhuǎn)EBN的 L。h值的硬判決值,即,1變?yōu)?,并且反之亦然,和(ii)將量值位,即,相同L。h值的置信度設(shè) 置為最大,例如,全為1。如果解碼器處于不是狀態(tài)0的某個(gè)狀態(tài),則翻轉(zhuǎn)EBN包括(i)確 定EBN的P值(以上面的等式7定義)的硬判決值,(ii)將EBN的L。h值、P值和所有相關(guān) 聯(lián)的Qnm LLR的硬判決值設(shè)置為與步驟⑴的硬判決值相反,并且(iii)將EBN的L。h值、P 值和所有相關(guān)聯(lián)的Qnm LLR的量值位設(shè)置為最大。通常,翻轉(zhuǎn)一個(gè)或兩個(gè)EBN將“中斷”陷 阱集合,并且重新啟動的解碼器將收斂到DCCW。當(dāng)被中斷時(shí),不同的陷阱集合產(chǎn)生錯(cuò)誤平臺特性的不同改進(jìn)。優(yōu)勢陷阱集合指其 中斷產(chǎn)生EBR/錯(cuò)誤平臺特性的指定改進(jìn)的最小陷阱集合。例如,DTS-I指產(chǎn)生BER的單個(gè) 數(shù)量級改進(jìn),例如,從10_9到10,的最小陷阱集合,而DTS-3指產(chǎn)生BER的三個(gè)數(shù)量級改進(jìn), 例如,從10,到10_13的最小陷阱集合。近碼字的列表解碼列表解碼是用于檢測和中斷陷阱集合的一種后處理方法。在列表解碼中,將矢量 中的觀察到的陷阱集合與已知陷阱集合的一個(gè)列表或多個(gè)列表進(jìn)行匹配。陷阱集合列表 通常包括列表中的每個(gè)陷阱集合內(nèi)的所有USC的索引,以及與這些USC相關(guān)聯(lián)的一個(gè)或更 多個(gè)EBN的索引。如果發(fā)現(xiàn)了該列表中的與觀察到的陷阱集合匹配的陷阱集合,則從列表 中檢索EBN索引值(多個(gè))。然后,翻轉(zhuǎn)這些位節(jié)點(diǎn),并且重新開始圖3的解碼處理300。陷阱集合仿真通常使用軟件和硬件仿真工具離線產(chǎn)生列表解碼所需的陷阱集合列表。圖4是 用于識別陷阱集合并且記錄關(guān)于這些陷阱集合的各種信息的離線陷阱集合(TS)仿真工 具400的方框圖。工具400可被實(shí)現(xiàn)在例如現(xiàn)場可編程門陣列(FPGA)內(nèi)。LDPC正確碼字 (CCff) 402被發(fā)送到信道和信號模塊404,信道和信號模塊404模擬圖1的有噪信道114的 行為。信道和信號模塊404向LDPC解碼器408輸出Leh值406。如果LDPC解碼器408產(chǎn)生 近碼字(NCW) 410,則NCW410被發(fā)送到校驗(yàn)子校驗(yàn)?zāi)K412和誤匹配位置記錄器414。校驗(yàn) 子校驗(yàn)?zāi)K412輸出NCW410中的所有USC的索引416。誤匹配位置記錄器414比較NCW410 和CCW402,并且輸出NCW410中的所有EBN的索引418。USC索引416加上EBN索引418構(gòu) 成陷阱集合(TS)信息420。對于給定的LDPC實(shí)現(xiàn),所有可能的陷阱集合可能有數(shù)以百萬。然而,實(shí)現(xiàn)該實(shí)現(xiàn) 的錯(cuò)誤平臺的顯著(即,一個(gè)數(shù)量級或更多)改進(jìn)通常僅需要所有可能的陷阱集合的一個(gè) 子集,即,優(yōu)勢陷阱集合(DTS)。因此,離線TS仿真工具400包括DTS-N匯編器422,它獲取 輸入的TS信息420,并且產(chǎn)生DTS-N信息424。
DTS-N匯編器422使用三個(gè)步驟的處理收集、評分和評估。陷阱集合收集方法 使用基于碼圖結(jié)構(gòu)的確定性噪聲激勵,以便檢測陷阱集合。然后,按照距錯(cuò)誤邊界的距離 (DEB)值給收集的陷阱集合評分,其中具有低DEB值的陷阱集合對錯(cuò)誤平臺貢獻(xiàn)更大。然后 使用重要性采樣評估陷阱集合,并且確認(rèn)預(yù)測的評分。實(shí)際上,這種基于FPGA的離線仿真可能要被執(zhí)行一年。例如,為了識別對于4Gb/ s的HD驅(qū)動器將產(chǎn)生10_15BER的陷阱集合,需要將離線仿真工具(例如,圖4的工具400) 運(yùn)行大約289天。通常,由于在HD驅(qū)動器讀通道的最終設(shè)計(jì)和芯片的量產(chǎn)之間通常有1到 2年的延遲,這種時(shí)間限制不是問題。陷阱集合只讀存儲器(TS-ROM)因此,使用圖4的離線TS仿真工具400,可以事先識別對于特定的LDPC實(shí)現(xiàn),將 產(chǎn)生錯(cuò)誤平臺特性的改進(jìn)的一個(gè)或更多個(gè)陷阱集合或優(yōu)勢陷阱集合。一種在運(yùn)行時(shí)環(huán)境中 實(shí)現(xiàn)列表解碼的方法是在陷阱集合只讀存儲器(TS-ROM)中存儲圖4的離線產(chǎn)生的陷阱集 合信息420,并且將TS-ROM與列表解碼器程序耦聯(lián)。TS-ROM列表解碼器程序?qū)?中觀察到 的USC和存儲在TS-ROM中的陷阱集合進(jìn)行比較。如果發(fā)現(xiàn)匹配,則TS-ROM列表解碼器程 序在LDPC解碼器中翻轉(zhuǎn)適當(dāng)?shù)奈还?jié)點(diǎn)值,并且重新啟動解碼器。通常,TS-ROM信息隨機(jī)地存儲在單向或雙向鏈表內(nèi),其中使用暴力順序搜索搜索 該表。通常,每個(gè)(a,b)陷阱集合在TS-ROM列表中占用(2+a+b)個(gè)記錄。因此,對于(4,4) 陷阱集合簡檔(即,4個(gè)USC和4個(gè)EBN),將有10個(gè)記錄一個(gè)指示存在4個(gè)USC的記錄, 之后是4個(gè)單獨(dú)的USC記錄,然后一個(gè)指示存在4個(gè)EBN的記錄,之后是4個(gè)單獨(dú)的EBN記 錄。典型的TS-ROM列表實(shí)現(xiàn)大約存儲100個(gè)陷阱集合,并且不存儲關(guān)于誤滿足校驗(yàn)節(jié)點(diǎn)的 任何信息。為了經(jīng)濟(jì)地實(shí)現(xiàn)這種TS-ROM實(shí)現(xiàn),單個(gè)TS-ROM必需能夠?qū)崿F(xiàn)大量實(shí)現(xiàn)中所需的 錯(cuò)誤平臺改進(jìn)。然而,陷阱集合隨著實(shí)現(xiàn)的不同而不同,甚至當(dāng)實(shí)施相同的LDPC碼時(shí)也是 如此。例如,即使在兩個(gè)HD驅(qū)動器上使用的LDPC碼相同,與HD驅(qū)動器相關(guān)聯(lián)的陷阱集合 也可能不同。具體地,研究發(fā)現(xiàn)陷阱集合受HD驅(qū)動器的抖動曲線、符號間干擾特性和脈沖 成形方案的影響。這些因素不僅可以在不同制造商的HD驅(qū)動器之間改變,而且還可以在來 自相同制造商的不同HD驅(qū)動器型號之間,甚至在相同型號的不同產(chǎn)品批次改變。因此,即 使在兩個(gè)相同型號的硬盤驅(qū)動器之間,陷阱集合也可能改變。仿真如此眾多的不同HD驅(qū)動 器的LDPC陷阱集合是不現(xiàn)實(shí)的。另外,當(dāng)與特定HD驅(qū)動器配對使用時(shí),僅裝載了大量HD 驅(qū)動器公共的陷阱集合的TS-ROM可能不能產(chǎn)生所需的錯(cuò)誤平臺改進(jìn)級別。一種改進(jìn)TS-ROM的性能的方法是給由基于FPGA的離線仿真工具(例如,圖4的 工具400)產(chǎn)生的信息補(bǔ)充從制造的設(shè)備的測試模型獲得的結(jié)果。典型地,一旦結(jié)束了電路 設(shè)計(jì),將制造并且分發(fā)該設(shè)計(jì)的有限數(shù)目的測試模型,以便在開始大量生產(chǎn)之前進(jìn)行測試。 雖然可能要花費(fèi)一年以便確定對于特定的HD驅(qū)動器實(shí)現(xiàn)產(chǎn)生10_15的BER的陷阱集合,但 僅用一天就可以確定產(chǎn)生10_12的BER的陷阱集合。因此,測試模型被以LDPC測試模式運(yùn) 行有限的時(shí)間段,并且存儲任意發(fā)現(xiàn)的陷阱集合。將未在TS-ROM中的任意被發(fā)現(xiàn)的陷阱集 合添加到TS-ROM內(nèi)。通過使用分發(fā)給消費(fèi)者的實(shí)際設(shè)備,這種方法可以捕捉可能逃過了基 于FPGA的離線仿真工具(例如,圖4的工具400)的陷阱集合。陷阱集合隨機(jī)訪問存儲器(TS-RAM)
一種對TS-ROM的靜態(tài)陷阱集合列表的運(yùn)行時(shí)替換是在陷阱集合隨機(jī)訪問存儲器 (TS-RAM)中存儲陷阱集合信息,并且將圖4的離線陷阱集合仿真工具400變?yōu)檫\(yùn)行在實(shí)際 的單個(gè)設(shè)備(例如,HD驅(qū)動器)上的運(yùn)行時(shí)陷阱集合收集和分析工具。取代從信道和信號 模塊(例如,圖4的模塊404)接收初始值,運(yùn)行時(shí)工具處理特定設(shè)備的實(shí)際信號。運(yùn)行時(shí)工 具包括列表解碼器功能,即,它將嘗試匹配觀察到的USC和TS-RAM中存儲的陷阱集合信息, 并且如果發(fā)現(xiàn)了匹配,使用存儲的信息改變解碼器的位節(jié)點(diǎn)值,并且重新啟動解碼器。如果 未發(fā)現(xiàn)匹配,則運(yùn)行時(shí)工具分析觀察到的陷阱集合,即,識別與該USC相關(guān)聯(lián)的EBN,并且確 定觀察到的陷阱集合是否滿足存儲在TS-RAM中的閾值要求(例如,DTS-N中的成員資格)。在理論上,上述的TS-RAM工具適合于任意實(shí)現(xiàn)的陷阱集合簡檔?,F(xiàn)實(shí)情況是由圖 4的離線仿真工具400執(zhí)行的陷阱集合/優(yōu)勢陷阱集合仿真是計(jì)算復(fù)雜的。特別地,從可能 的數(shù)十億個(gè)陷阱集合構(gòu)建優(yōu)勢陷阱集合尤其復(fù)雜。這種復(fù)雜性使得上述TS-RAM工具不適 合于大多數(shù)HD驅(qū)動器。通常,HD驅(qū)動器高速輸出數(shù)據(jù)(每秒4吉比特),并且需要非常低 的BER/錯(cuò)誤平臺率(例如,10_13到10_15),但是僅在其固件中提供不多的計(jì)算資源。另外,TS-RAM工具,例如,圖4的離線仿真工具400,需要正確碼字(CCW)以便產(chǎn)生 EBN索引。容易在離線仿真環(huán)境中獲得CCW,但是在運(yùn)行時(shí)環(huán)境中不易獲得。根據(jù)本發(fā)明的某些實(shí)施例,執(zhí)行用于在ROM中組織存儲的陷阱集合簡檔的方法。按照優(yōu)勢,即,按照其對LDPC解碼器的錯(cuò)誤平臺特性的影響給陷阱集合簡檔評分。更具優(yōu) 勢的陷阱集合簡檔包含關(guān)于不滿足校驗(yàn)節(jié)點(diǎn)(USC)和誤滿足校驗(yàn)節(jié)點(diǎn)(MSC)兩者的信息, 而具有較少優(yōu)勢的陷阱集合簡檔僅包含關(guān)于USC的信息。然后,將陷阱集合簡檔信息組織 到若干鏈接的分層數(shù)據(jù)表內(nèi),這些表允許使用指針跟隨搜索迅速定位并且檢索優(yōu)勢最大的 匹配的陷阱集合簡檔。根據(jù)本發(fā)明的某些實(shí)施例,執(zhí)行用于在RAM中收集和識別優(yōu)勢陷阱集合的高效的 運(yùn)行時(shí)方法。如果可能,新發(fā)現(xiàn)的陷阱集合被存儲在RAM中,并且然后根據(jù)一個(gè)或更多個(gè)下 列因素排序或評分自最后匹配一個(gè)陷阱集合以來,RAM被搜索的次數(shù);自被添加到RAM內(nèi) 以來,陷阱集合被匹配的總次數(shù);不滿足校驗(yàn)節(jié)點(diǎn)的數(shù)目;和錯(cuò)誤位節(jié)點(diǎn)的數(shù)目。評分低的 陷阱集合簡檔被從RAM中刪除,并且給新發(fā)現(xiàn)的陷阱集合簡檔留出空間。因此,除了或取代 使用諸如圖4的DTS-N匯編器422中所使用的用于事先識別優(yōu)勢陷阱集合的高計(jì)算復(fù)雜度 的離線方法,本發(fā)明的這些實(shí)施例執(zhí)行低計(jì)算復(fù)雜度的在后方法,其中盡可能多地存儲新 發(fā)現(xiàn)的陷阱集合,并且通過周期評分和刪除去除非優(yōu)勢陷阱集合簡檔。本發(fā)明的實(shí)施例通常是計(jì)劃內(nèi)(on-the-fly)的方法,即,它們能夠在LDPC解碼的 時(shí)鐘周期預(yù)算內(nèi)恢復(fù)DCCW,并且因此不會負(fù)面影響系統(tǒng)的吞吐率。圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的LDPC解碼系統(tǒng)500的方框圖。在與圖1的現(xiàn) 有技術(shù)的HD驅(qū)動器100類似的本發(fā)明的HD驅(qū)動器中,圖5的LDPC解碼系統(tǒng)500將被實(shí)現(xiàn) 為與圖1的LDPC解碼器112類似的LDPC解碼器的一部分。對此而言,圖5的輸入Leh值類 似于圖1的解碼器輸入L。h值,并且圖5的輸出‘矢量類似于圖1的解碼信息字。LDPC解碼器502接收Leh值,執(zhí)行圖3的LDPC解碼處理300,并且向后處理器504 和TS-RAM更新器506輸出矢量i。后處理器504被連接到后處理(PP)方法列表508,后處 理(PP)方法列表508是包含表示后處理方法,例如,TS-ROM列表解碼、TS-RAM列表解碼等 的一個(gè)或更多個(gè)可執(zhí)行程序的存儲器。如果后處理器504需要執(zhí)行特定的PP方法,后處理器504從PP方法列表508中讀取可執(zhí)行程序,并且運(yùn)行該程序。后處理器504可以并行或串行執(zhí)行任意數(shù)目的這些PP方法。后處理器504輸出矢量^p,除了作為LDPC解碼系統(tǒng)500 的輸出之外,矢量還被發(fā)送到TS-RAM更新器506。數(shù)據(jù)表在執(zhí)行過程中,特定PP方法可能需要訪問與PP方法的可執(zhí)行程序代碼相分離的數(shù)據(jù)結(jié)構(gòu)。具體地,TS-ROM和TS-RAM列表解碼方法分別訪問存儲在TS-R0M510和 TS-RAM520中的陷阱集合信息的一個(gè)或更多個(gè)列表。在圖5的示例實(shí)施例中,TS-R0M510包括4個(gè)表:B表512、P表514、E表516和EI 表518。TS-RAM520包括2個(gè)表,RAM P表522和RAM索引524。表是被組織在一個(gè)或更多 個(gè)相等大小的行(記錄)和一個(gè)或更多個(gè)相等大小的列(字段)內(nèi)的數(shù)字?jǐn)?shù)據(jù)的二維矩陣。 表的記錄被從上到下從0開始順序編號。這個(gè)編號是記錄號。P表514和522包含關(guān)于USC和其相關(guān)EBN的信息。B表512包含用于ROM P表 514的指針信息。EI表518包含關(guān)于MSC的信息,并且E表516包含用于EI表518的指針 信息。RAM索引表524包含用于RAM B表522的指針信息。圖6是圖5的ROM P表514的示例布局。ROM P表514包含陷阱集合簡檔信息, 艮口,USC和EBN索引。ROM P表514包含若干記錄(行),每一個(gè)記錄用于一個(gè)存儲的陷阱 集合的一個(gè)USC。記錄號602是記錄在P表514中的從0開始的順序位置。ROM P表514中的每個(gè)記錄包括3個(gè)字段LAYER 604,USC_INDEX 606和 INDEX 608。某些LDPC解碼器被配置為并行地執(zhí)行被另稱為層的一組更新操作。LAYER 604 指示包含在USC中的解碼層的數(shù)目。USC_INDEX 606包含USC的索引。EBN_INDEX 608包 含與該USC相關(guān)聯(lián)的一個(gè)或兩個(gè)EBN的索引。ROM P表514首先被按照b (即, 中USC的數(shù)目)排序,例如,首先是b = 2的所有 陷阱集合,后面是所有b = 3的陷阱集合等。因此,存在用于b = 2值域中的每個(gè)陷阱集合 (例如,610、612)的兩個(gè)記錄,最后跟著用于b = 3的陷阱集合的三記錄集合(例如,614、 616),用于b = 4的陷阱集合的四記錄集合(例如,618、620)等等。在每個(gè)b值域中,按照優(yōu)勢,S卩,陷阱集合對錯(cuò)誤平臺特性的影響對陷阱集合排 序。對錯(cuò)誤平臺特性具有更大影響的陷阱集合出現(xiàn)在該b值域的開頭處,并且具有較少影 響的陷阱集合出現(xiàn)在靠近結(jié)尾處。然后按照USC_INDEX 606給特定陷阱集合的記錄排序。圖7是圖5的B表512的示例布局。對于ROM P表514中的每個(gè)b值,B表512包 含指向該b值在ROM P表514和E表516中的首次出現(xiàn)的指針,以及該b值在E表516中 的記錄的數(shù)目。因此,B表512中存在用于每個(gè)b值的單個(gè)記錄,其中由記錄號702指示b 值。然而,記錄號702從0開始,而b值通常從2或更大開始。因此,在本發(fā)明的這種示例 實(shí)施例中,給記錄號702添加一個(gè)偏移,以便產(chǎn)生相應(yīng)的b值。例如,如果僅存儲b > 2的 陷阱集合,則給每個(gè)記錄號添加偏移2,以便得到相應(yīng)的b值。字段PTABLE_START_0FFSET 704包含特定b值在ROM P表514中首次出現(xiàn)的位置。 字段ETABLE_START_0FFSET 706包含特定b值在E表516中首次出現(xiàn)的位置。字段NUM_ ETABLE_ENTRIES 708包含這個(gè)特定b值在E表516中的記錄數(shù)目。圖8是圖5的E表516的示例布局。E表516包含指向EI表518中的MSC記錄的 指針。E表516中的每個(gè)記錄具有記錄號802、EITABLE_START_ADDRESS字段804和EITABLE_END_ADDRESS 字段 806。EITABLE_START_ADDRESS 字段 804 包含指向相應(yīng)數(shù)據(jù)在 EI 表 518 中的首次出現(xiàn)的指針,并且EITABLE_END_ADDRESS字段806包含指向相應(yīng)數(shù)據(jù)在EI表518 中的最后出現(xiàn)的指針。圖9是圖5的EI表518的示例布局。EI表518存儲與MSC相關(guān)聯(lián)的EBN的索引。 EI表518中的每個(gè)記錄具有記錄號902,并且包含兩個(gè)字段BL0CK_C0LUMN字段904和B_ INDEX字段906。BL0CK_C0LUMN字段904指示EBN所在的塊列,并且B_INDEX字段906是 EBN的索引。圖10是圖5的RAM P表522的示例布局。RAM P表522存儲不能在ROM P表514 中找到的新識別出的陷阱集合的簡檔。RAM P表522中的每行(S卩,記錄)具有記錄號1002, 并且包括兩個(gè)字段兩位TAG字段1004和R_W0RD字段1006。TAG字段1004的4個(gè)可能的 值指示記錄類型和R_W0RD字段1006內(nèi)的數(shù)據(jù)的結(jié)構(gòu)。如果TAG字段1004具有值11,則 該記錄是包含關(guān)于整個(gè)陷阱集合的信息的主記錄。如果TAG字段1004具有值10,則該記 錄是包含關(guān)于陷阱集合簡檔內(nèi)的特定USC的信息的副記錄。如果TAG字段1004具有值00 或01,則R_W0RD字段1006為空,S卩,這個(gè)記錄是可用于存儲新識別的陷阱集合的簡檔信息。 陷阱集合簡檔通常包括單個(gè)主記錄,后面跟有b個(gè)副記錄。如果記錄是主記錄,則1 _101 字段1006包含4個(gè)子字段(i)b值子字段1008, (ii) a值子字段1010,其記錄陷阱集合EBN的數(shù)目,(iii) LAST_HIT_NUM子字段1012,其指 示最后匹配這個(gè)陷阱集合的TS-RAM搜索的數(shù)目,和(iV)HIT_C0UNTER子字段1014,其記錄 自從這個(gè)陷阱集合被存儲在TS-RAM內(nèi)以來,這個(gè)特定的陷阱集合簡檔已經(jīng)與觀察到的陷 阱集合匹配了多少次。如果記錄是副記錄,R_W0RD字段1006包含陷阱集合內(nèi)的單個(gè)USC的層(LAYER字 段1016)和索引(USC_INDEX字段1018),以及與該USC相關(guān)聯(lián)的一個(gè)或更多個(gè)EBN的索引 (EBN_INDEX 字段 1020)。圖11是圖5的RAM索引表524的示例布局。RAM索引表524中有用于RAM P表522 中的每個(gè)陷阱集合簡檔的記錄。RAM索引表524中的每個(gè)記錄包括單個(gè)字段,RAM_PTABLE_ OFFSET 1102oRAM_PTABLE_OFFSET 1102是指向RAM索引表524中的特定陷阱集合簡檔的開 始的指針,即,RAM_PTABLE_OFFSET 1102包含陷阱集合簡檔主記錄的圖10的記錄號1002。 RAM索引表524中的記錄被按照優(yōu)勢排序,從而RAM索引表524中最后的記錄指向RAM P表 522中最不具優(yōu)勢的記錄。圖12是由圖5的LDPC解碼系統(tǒng)500使用的示例處理1200的流程圖。處理在步 驟1202處開始,并且進(jìn)入步驟1204,由圖5的LDPC解碼器對L。h值進(jìn)行LDPC解碼。如果 步驟1204的LDPC解碼產(chǎn)生DCCW,則處理1200在步驟1218處終止。否則,處理進(jìn)入步驟 1206的TS-R0M列表解碼(由圖5的后處理器504執(zhí)行)。如果步驟1206產(chǎn)生DCCW,則處理1200在步驟1218處終止。否則,處理進(jìn)入步驟 1208的TS-RAM列表解碼(由圖5的后處理器504執(zhí)行)。如果步驟1208產(chǎn)生DCCW,則處 理1200在步驟1218處終止。否則,處理進(jìn)入以類似方式操作的一個(gè)或更多個(gè)附加的后處 理方法1210、1212.....1214 (由圖5的后處理器504執(zhí)行)。如果TS-RAM列表解碼1208或附加的后處理方法1210、1212.、1214產(chǎn)生DCCW, 則處理進(jìn)入步驟1216,其中可能以TS-RAM更新器508更新圖5的TS-RAM520。然后,處理在步驟1218處終止。圖12顯示了后處理方法1207-1214的一種可能的順序??梢圆捎煤筇幚矸椒ǖ?幾乎任意順序,雖然某些順序比其它順序更實(shí)用。例如,希望將TS-R0M列表解碼安排在 TS-RAM列表解碼之前,以便確保已經(jīng)存儲在ROM中的陷阱集合不會在RAM中重復(fù)。TS-R0M列表解碼圖13是由圖5的后處理器504執(zhí)行的圖12的示例TS-R0M列表解碼處理1206的 流程圖。處理在步驟1302處開始,并且進(jìn)入步驟1304,其中處理1206確定從圖12的LDPC 解碼器1204接收的矢量jf中的觀察到的USC的數(shù)目b。bsCTred是否大于0并且小于可由處理 1206有效地處理的USC的最大數(shù)目b_。如果b— = 0,則矢量jf中沒有USC(即,jf是近 碼字,誤校正),并且因此,不存在要匹配的陷阱集合。如果步驟1304的估計(jì)為假,則處理 1206終止。否則,處理繼續(xù)到步驟1306。在步驟1306,存儲解碼器的當(dāng)前狀態(tài),并且將其標(biāo)記為狀態(tài)1。然后處理繼續(xù)到步 驟1308,其中對觀察到的USC排序,首先按照解碼層排序,然后按照索引排序。接著,在步驟 1310,從圖5的B表512中取出并且存儲下面4個(gè)值(1)對于 b = bobserved,圖 7 的 PTABLE_START_OFFSET 字段 704 ;(2)對于 b = bobserved+l,圖 7 的 PTABLE_START_OFFSET 字段 704 ;(3)對于 b = bobserved,圖 7 的 ETABLE_START_OFFSET 字段 706 ;禾口(4)對于 b = bobserved,圖 7 的 NUM_ETABLE_ENTRIES 字段 708。第一個(gè)值指示處理1206從哪里開始其對圖5的P表514中的匹配陷阱集合信息 (即,USC和EBN索引)的搜索,并且第二個(gè)值指示處理1206何時(shí)結(jié)束其搜索。類似地,第 三個(gè)值和第四個(gè)值指示處理1206從哪里開始和結(jié)束其對擴(kuò)展信息(即,MSC索引)的搜索。因此,例如,如果b。bsCTved = 5,則處理1206取回對于b = 5和b = 6的圖7的 PTABLE_START_OFFSET 字段 704,以及對于 b = 5 的圖 7 的 ETABLE_START_OFFSET 字段 706 和圖 7 的 NUM_ETABLE_ENTRIES 字段 708。接著,在步驟1312,處理1206選擇圖5的P表514,并且進(jìn)入由b = bobserved的 PTABLE_START_OFFSET的存儲值所指示的地址。接著,在步驟1314,在TS-R0M中搜索與觀 察到的USC匹配的陷阱集合。圖14是圖13的示例TS-R0M搜索處理1314的流程圖。處理1314在步驟1402開 始,并且在步驟1404搜索圖5的P表514中的作為觀察到的USC的同構(gòu)匹配的下一個(gè)記錄。 觀察到的USC的特定集合的同構(gòu)匹配是陷阱集合,其中USC的數(shù)目和這些USC之間的距離 與觀察到的USC相同。因此,如果觀察到的USC是[1,3,10],則[1,3,10]是一種匹配,并 且[2,4,11]是一種同構(gòu)匹配,同樣還有[3,5,12],[4,6,13]等等。如果未發(fā)現(xiàn)匹配,則處 理1314以無匹配狀態(tài)1406終止。相反,如果在步驟1404發(fā)現(xiàn)匹配,則在步驟1408,存儲匹配的P表記錄的圖6的 EBN_INDEX字段608的值。EBN_INDEX字段包含與這個(gè)匹配的陷阱集合相關(guān)聯(lián)的一個(gè)或可 能兩個(gè)錯(cuò)誤位節(jié)點(diǎn)的索引。接著,處理1314試圖定位任何擴(kuò)展信息,S卩,與這個(gè)匹配的陷阱集合中的誤滿足 校驗(yàn)節(jié)點(diǎn)(MSC)相關(guān)聯(lián)的EBN的索引。擴(kuò)展信息保持在EI表518中。然而,不是為存儲在 P表514內(nèi)的所有陷阱集合保持?jǐn)U展信息,而是僅為每個(gè)b值域中的陷阱集合的一個(gè)子集保持。該子集與特定b值域中更有優(yōu)勢的陷阱集合相對應(yīng),S卩,對錯(cuò)誤平臺特性具有更顯著影 響的那些陷阱集合。如上所述,在P表514內(nèi),特定b值域內(nèi)的陷阱集合按優(yōu)勢排序;因此, 僅為b值域內(nèi)的前x個(gè)記錄保持?jǐn)U展信息。以B表512中的字段ETABLE_START_0FFSET706 和NUM_ETABLE_ENTR1ES 708指示EI表518中每個(gè)b值域的開始和結(jié)束。處理1314在搜索ROM P表514時(shí)保持陷阱集合的內(nèi)部計(jì)數(shù)。因此,例如,如果處 理1314正在搜索圖6的P表514中的b = 2的陷阱集合,處理1314將記錄0和1識別為 陷阱集合0 (例如,圖6的陷阱集合610),將記錄2和3識別為陷阱集合1 (例如,圖6的陷 阱集合612)并且依此類推。這個(gè)陷阱集合號被稱為TSNUM。在步驟1410,對TSNUM和在圖13的步驟1310存儲的NUM_ETABLE_ENTRIES字段的 值進(jìn)行比較。如果TSNUM大于NUM_ETABLE_ENTRIES的值,則沒有可獲得的擴(kuò)展信息,并且 處理1314以沒有擴(kuò)展信息1412的匹配狀態(tài)終止。相反,如果在步驟1410發(fā)現(xiàn)TSNUM小于或等于NUM_ETABLE_ENTRIES的存儲值,則 存在這個(gè)匹配的陷阱集合的擴(kuò)展信息。在步驟1414,將TSNUM加到ETABLE_START_OFFSET 的存儲值,以便產(chǎn)生變量ETABLE_ENTRY_ADDRESS。接著,在步驟1416,處理1314選擇圖5的E表516,進(jìn)入具有等于變量ETABLE_ ENTRY_ADDRESS的值的地址的記錄,并且存儲圖8的EITABLE_START_ADDRESS字段804和圖 8 的 EITABLE_END_ADDRESS 字段 806 的值。接著,在步驟1418,處理1314選擇圖5的EI表518,并且存儲在所存儲的EITABLE_ START_ADDRESS 和 EITABLE_END_ADDRESS 的值之間的每個(gè)記錄的圖 9 的 BL0CK_C0LUMN 字 段904和圖9的B_INDEX字段906的值。最后,處理1314以具有擴(kuò)展信息1420的匹配狀 態(tài)退出。返回圖13,如果步驟1314以無匹配狀態(tài)終止,則處理1206在步驟1316終止。如果步驟1314以無擴(kuò)展信息匹配狀態(tài)終止,則處理1206擁有USC索引以及與這 個(gè)陷阱集合相關(guān)聯(lián)的某些EBN索引,但是沒有擴(kuò)展信息(即,與MSC相關(guān)聯(lián)的EBN的索引)。 在這種情況下,步驟1318翻轉(zhuǎn)這些EBN索引處的位節(jié)點(diǎn),并且在步驟1320執(zhí)行迭代LDPC 解碼。除了跳過解碼器初始化步驟304和校驗(yàn)子校驗(yàn)步驟306之外,步驟1320的處理與圖 3的處理300相同。如果步驟1320收斂到DCCW,則處理1206在步驟1316終止。否則,在 步驟1322,解碼器恢復(fù)到狀態(tài)1,并且在步驟1314尋找下一個(gè)匹配的陷阱集合。如果步驟1314以具有擴(kuò)展信息的匹配狀態(tài)終止,則處理1206擁有與匹配的陷阱 集合相關(guān)聯(lián)的所有EBN的索引。在該情況下,不必執(zhí)行信任傳播(例如,圖3的步驟310和 312)。相反,在步驟1324,翻轉(zhuǎn)EBN,并且將得到的矢量jf提交校驗(yàn)子校驗(yàn)1326。如果矢量無 在步驟1326未通過校驗(yàn)子校驗(yàn),則處理1206進(jìn)入步驟1322。相反,如果矢量jf在步驟1326 通過了校驗(yàn)子校驗(yàn)(即,矢量無是有效的碼字),則在步驟1328,對矢量射丸行CRC校驗(yàn),以便 確定它實(shí)際上是否是正確的碼字。如果矢量jf通過了 CRC校驗(yàn)1328(即,矢量jf是DCCW),則 處理1206在步驟1316終止。如果矢量jf未通過CRC校驗(yàn)1328,則處理1206進(jìn)入步驟1322。TS-RAM列表解碼由圖5的后處理器504使用的另一種PP方法是圖12的TS-RAM列表解碼1208,即, 使用存儲在易失存儲器諸如隨機(jī)訪問存儲器內(nèi)的陷阱集合信息對陷阱集合解碼。TS-RAM列 表解碼類似于TS-R0M列表解碼,S卩,圖5的RAM P表522存儲所選擇的陷阱集合的USC和EBN信息。然而,與ROM P表514不同,在運(yùn)行時(shí)過程中由圖5的TS-RAM更新器506改變 RAM P表522。因此,僅存儲最重要的信息,例如,USC和EBN索引。不在TS-RAM中保持?jǐn)U 展信息(例如,圖5的EI表518)。不以任意方式對RAM P表522中簡檔排序。相反,一個(gè)單獨(dú)的圖16的RAM索引表524保持按優(yōu)勢排序的存儲在RAM P表522內(nèi)的陷阱集合簡檔的地址列表。圖15是圖12的示例TS-RAM列表解碼處理1208的流程圖。處理在步驟1502開 始,并且進(jìn)入步驟1504,步驟1504的目的和操作與圖13的步驟1304相同。如果步驟1504 估計(jì)為假,處理1208在步驟1506終止;否則,處理繼續(xù)到步驟1508,其中記錄當(dāng)前解碼器 狀態(tài),并且將其標(biāo)記為狀態(tài)1。然后處理繼續(xù)到步驟1510。在步驟1510,處理1208進(jìn)入圖5的RAM P表522中的最具優(yōu)勢的陷阱集合簡檔。 具體地,由于RAM索引表524按照優(yōu)勢給RAMP表522中的簡檔評分,處理1208進(jìn)入RAM索 引表524中的第一個(gè)記錄,并且檢索圖11的RAM_PTABLE_OFFSET字段1102的值。然后,處 理1208將RAM P表522中的指針移動到存儲的偏移值。在步驟1512,處理1208遞增全局變量RAM_SEARCH_COUNT,全局變量RAM_SEARCH_ COUNT跟蹤執(zhí)行的TS-RAM搜索的總數(shù),S卩,已經(jīng)執(zhí)行處理1208的總次數(shù)。另外,在步驟 1512,處理1208以由RAM索引表524指定的順序,S卩,以下降的優(yōu)勢的順序在RAMP表522 內(nèi)的簡檔中校驗(yàn)觀察到的USC的同構(gòu)匹配。如果未發(fā)現(xiàn)匹配,則處理繼續(xù)到步驟1514。相反,如果在步驟1512發(fā)現(xiàn)了匹配,則步驟1516,匹配的簡檔的圖10的LAST_ HIT_NUM字段1012被設(shè)置為全局變量RAM_SEARCH_COUNT的值,并且圖10的HIT_C0UNTER 字段1014增加1。然后,在步驟1518,存儲圖10的EBN_INDEX字段1020的值。步驟1520 翻轉(zhuǎn)位于EBN_INDEX值處的位節(jié)點(diǎn),并且在步驟1522,執(zhí)行LDPC解碼。步驟1522與圖13 的步驟1320相同。如果解碼處理1522收斂到DCCW,則處理繼續(xù)到步驟1514 ;否則,在步驟 1524,解碼器被重置為狀態(tài)1,并且然后處理繼續(xù)到步驟1512,其中在P表522中尋找另一 個(gè)同構(gòu)匹配。在步驟1514,處理1208更新圖11的RAM索引表524。具體地,步驟1514按照RAM P表522中的字段,例如,LAST_HIT_NUM1012、HIT_C0UNTER字段1014、USC節(jié)點(diǎn)數(shù)目字段 1008和EBN數(shù)目字段1010的任意組合對RAM P表522中的所有TS-RAM簡檔排序。然后所 有有序簡檔的地址,即,所有主記錄的記錄號1002被存儲為圖11的RAM索引表524中的記 錄。簡檔地址被以在步驟1514中排序的相同順序存儲在RAM索引表524中(例如,從最具 優(yōu)勢到最不具優(yōu)勢)。一旦完成了步驟1514,處理在步驟1506終止。TS-RAM 更新器如在對圖12的處理1200的討論中解釋的,如果除了 TS-ROM列表解碼1206之外的 任意后處理方法獲得了 DCCW,則可能意味著發(fā)現(xiàn)了新的陷阱集合。如果是這樣,步驟1216 可以嘗試將新的陷阱集合添加到圖5的RAM P表522。在一個(gè)實(shí)施例中,步驟1216是用于保留TS-RAM520中的優(yōu)勢陷阱集合的低復(fù)雜 度處理。具體地,在這個(gè)實(shí)施例中,步驟1216不執(zhí)行窮盡性計(jì)算,以便事先確定優(yōu)勢陷阱 集合,諸如由圖4的DTS-N匯編器422執(zhí)行的計(jì)算,而是相反(i)按照一個(gè)或更多個(gè)因素, 例如,自從陷阱集合被最后匹配以來,TS-RAM已被搜索了多少次、陷阱集合已被匹配的總次數(shù)、USC數(shù)目、EBN數(shù)目等的任意組合給TS-RAM陷阱集合評分;并且然后(ii)清除評分最 低的陷阱集合,以便給新發(fā)現(xiàn)的陷阱集合留出空間。使用這些因素給TS-RAM520中的陷阱 集合評分通常比由離線仿真工具(例如,圖4的匯編器422)執(zhí)行的分析的復(fù)雜度低得多。圖16是圖12的示例TS-RAM更新處理1216的流程圖。處理在步驟1602開始,并 且進(jìn)入步驟1604,其中確定是否由圖12的TS-RAM列表解碼處理1208產(chǎn)生了 DCCW。如果 為是,則不需要向TS-RAM中添加陷阱集合簡檔,并且處理1216在步驟1608終止。相反,如果步驟1604估計(jì)為否/假,則意味著不同于TS-R0M或TS-RAM列表解碼 的某個(gè)后處理方法獲得了 DCCW,因此已經(jīng)發(fā)現(xiàn)了新的陷阱集合,并且應(yīng)當(dāng)將其附加到RAM。 在步驟1610,產(chǎn)生陷阱集合簡檔。陷阱集合簡檔包括陷阱集合USB的索引和與這些USB相 關(guān)聯(lián)的EBN的索引。已經(jīng)由圖5的LDPC解碼器502產(chǎn)生了 USB索引。為了產(chǎn)生EBN索引, 步驟1610對由后處理器504產(chǎn)生的DCCW Sw和由LDPC解碼器502產(chǎn)生的矢量jf進(jìn)行比較。在步驟1612,確定是否存在足夠的空間以便附加新的陷阱集合簡檔。如果是這樣, 則在步驟1614,新的陷阱集合簡檔被附加到RAMP表522,并且處理1216進(jìn)入步驟1616。然而,如果在步驟1612,RAM P表522中沒有足夠的空間以便附加新的陷阱集合簡 檔,則在步驟1618,清除評分最低的符合清除條件的陷阱集合簡檔。在這個(gè)例子中,按照自 從該簡檔被最后匹配以來RAM被搜索的次數(shù),即,全局變量RAM_SEARCH_COUNT的值減去簡 檔的LAST_HIT_NUM字段的值確定簡檔對清除條件的符合性。如果插入搜索的數(shù)目大于指 定閾值,則簡檔符合清除條件。假設(shè)所有簡檔首先按照對清除條件的符合性評分,所有符合 清除條件的記錄在圖11的RAM索引表524的結(jié)尾處。因此,在步驟1618,選擇RAM索引表524中的最后記錄,并且檢索RAM_PTABLE_ OFFSET字段1102的值。如果RAM P表522內(nèi)的位于存儲的偏移值(由檢索到的RAM_PTABLE_ OFFSET值指示)處的簡檔符合清除條件,則刪除RAM P表522中的位于存儲的偏移值處的 主記錄和相關(guān)聯(lián)的副記錄。在步驟1620,更新RAM索引表MSB,并且控制循環(huán)回到步驟1612, 其中確定RAM P表522內(nèi)是否存在足夠的空間以便附加新的陷阱集合簡檔。步驟1620的 處理與圖15的步驟1514的處理相同。相反,如果評分最低的簡檔不符合清除條件,則處理繼續(xù)到步驟1616。在步驟 1616,更新RAM索引表523,并且處理在步驟1608終止。步驟1616的處理與圖15的步驟 1514的處理相同。雖然以實(shí)施LDPC編碼和解碼的硬盤驅(qū)動器的上下文描述了本發(fā)明,但本發(fā)明不 限于此。一般地,本發(fā)明可被實(shí)現(xiàn)在涉及LPDC編碼和解碼的任意適合的通信路徑中。另外,雖然上面使用的示例信任傳播算法是偏移量最小和算法(0MS), 但本發(fā)明不限于此,而可以用于任意信任傳播變體,例如,和積算法(SPA)或 Bah 1 -Cocke-Je 1 inek-Raviv (BCJR)算法。另外,雖然上面使用的信任傳播例子使用特定的解碼調(diào)度(泛濫調(diào)度),其中在 單個(gè)校驗(yàn)節(jié)點(diǎn)更新步驟中更新所有校驗(yàn)節(jié)點(diǎn),之后在單個(gè)位節(jié)點(diǎn)更新步驟中更新所有位節(jié) 點(diǎn),但本發(fā)明不限于此,而可以用于任意解碼調(diào)度,例如,行串行調(diào)度、列串行調(diào)度和行-列 串行調(diào)度。另外,雖然上面使用的示例LDPC解碼器是不分層的解碼器,但本發(fā)明不限于此, 而可以使用分層解碼器和不分層解碼器。
另外,雖然上面給出的示例TS-RAM實(shí)現(xiàn)假設(shè)在HD驅(qū)動器的讀通道內(nèi)的RAM中存 儲陷阱集合簡檔,但本發(fā)明不限于此。RAM P表(例如,圖5的522)還可以存儲在HD驅(qū)動 器的盤片上,或存儲在諸如閃存的單獨(dú)存儲器內(nèi)。另外,雖然以只讀存儲器的上下文描述了上面給出的示例TS-R0M實(shí)現(xiàn),但本發(fā)明 不限于此。一般地,說明書和權(quán)利要求書使用的術(shù)語“ROM”應(yīng)當(dāng)被解釋為指存儲靜態(tài)TS簡 檔數(shù)據(jù)的任意數(shù)據(jù)存儲設(shè)備,不論該設(shè)備內(nèi)的數(shù)據(jù)是否能夠被修改。另外,雖然以LDPC碼的上下文描述了本發(fā)明的實(shí)施例,但本發(fā)明不限于此??梢?為可由圖定義的任意碼實(shí)現(xiàn)本發(fā)明的實(shí)施例,例如,tornado碼、結(jié)構(gòu)化IRA碼,因?yàn)樗鼈兌?是具有陷阱集合問題的以圖定義的碼。雖然以接收對數(shù)似然比描述了本發(fā)明,但本發(fā)明不限于此??稍O(shè)想處理諸如似然 比的其它軟值或硬判決值的本發(fā)明的實(shí)施例。本發(fā)明可被表達(dá)為方法和用于實(shí)現(xiàn)這些方法的裝置的形式。本發(fā)明可被表達(dá)為包 含在有形介質(zhì)內(nèi)的程序代碼的形式,所述有形介質(zhì)諸如是磁記錄介質(zhì)、光學(xué)記錄介質(zhì)、固態(tài) 存儲器、軟盤、CD-ROM、硬盤驅(qū)動器或任意其它機(jī)器可讀的存儲介質(zhì),其中當(dāng)程序代碼被裝 入諸如計(jì)算機(jī)的機(jī)器并且由其執(zhí)行時(shí),該機(jī)器成為實(shí)現(xiàn)本發(fā)明的裝置。本發(fā)明還可被表達(dá) 為,例如,存儲在存儲介質(zhì)內(nèi)的、被裝入和/或由機(jī)器執(zhí)行的、或在某種傳輸介質(zhì)或載體上 傳輸?shù)某绦虼a的形式,諸如在電線或電纜上傳輸、通過光纖傳輸或通過電磁輻射傳輸,其 中當(dāng)程序代碼被裝入諸如計(jì)算機(jī)的機(jī)器并且由其執(zhí)行時(shí),該機(jī)器成為實(shí)現(xiàn)本發(fā)明的裝置。 當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),該程序代碼段與處理器相結(jié)合,以便提供類似于專用邏輯電路 操作的獨(dú)特設(shè)備。除非明確說明,每個(gè)數(shù)值和范圍應(yīng)被解釋為是近似的,就如同在該值或范圍前面 加有單詞“大約”或“近似” 一樣。還應(yīng)當(dāng)理解,本領(lǐng)域的技術(shù)人員可以對為了解釋本發(fā)明的屬性而描述和示出的部 件的細(xì)節(jié)、材料和布置進(jìn)行各種改變,而不脫離由所附的權(quán)利要求書表述的本發(fā)明的范圍。權(quán)利要求書中使用的附圖號和/或附圖參考標(biāo)記旨在標(biāo)識所要求的主題內(nèi)容的 一個(gè)或更多個(gè)可能的實(shí)施例,以便于解釋權(quán)利要求。這種使用不能被認(rèn)為是將這些權(quán)利要 求的范圍必然地限制為相應(yīng)附圖中示出的實(shí)施例。應(yīng)當(dāng)理解,此處提出的示例方法的步驟不必然需要以描述的順序執(zhí)行,并且這些 方法的步驟的順序應(yīng)當(dāng)被理解為僅是例子。同樣,這些方法中可以包括附加步驟,并且可以 在根據(jù)本發(fā)明的各種實(shí)施例的方法中忽略或組合某些步驟。雖然以相應(yīng)的標(biāo)記以特定順序敘述,如果有的話,下面的方法權(quán)利要求中的元素, 除非權(quán)利要求表述暗示著實(shí)現(xiàn)某些或全部這些元素的特定順序,這些元素不必然旨在局限 于以該特定順序?qū)崿F(xiàn)。此處對“一個(gè)實(shí)施例”或“實(shí)施例”的引用意味著結(jié)合該實(shí)施例描述的特定特征、 結(jié)構(gòu)或特性可被包括在本發(fā)明的至少一個(gè)實(shí)施例中。在說明書各處出現(xiàn)的短語“在一個(gè)實(shí) 施例中”不必然全部指相同的實(shí)施例,不同的或可替換的實(shí)施例也不必然互相排除在其它 實(shí)施例之外。這同樣適用于術(shù)語“實(shí)現(xiàn)”。
權(quán)利要求
一種用于對使用基于圖的碼編碼的編碼數(shù)據(jù)進(jìn)行解碼的方法,該方法包括以下步驟(a)對所述編碼數(shù)據(jù)執(zhí)行解碼以產(chǎn)生候選解碼碼字,和(b)如果所述候選解碼碼字不是解碼正確的碼字,執(zhí)行陷阱集合TS-RAM列表解碼方法,以便試圖產(chǎn)生解碼正確的碼字,其中所述TS-RAM列表解碼方法訪問存儲在RAM存儲器內(nèi)的一個(gè)或更多個(gè)TS簡檔,每個(gè)TS簡檔與不同的陷阱集合相對應(yīng)。
2.如權(quán)利要求1所述的方法,還包括以下步驟(c)更新所述RAM存儲器,以便存儲新的TS簡檔。
3.如權(quán)利要求2所述的方法,其中如果所述TS-RAM列表解碼未能產(chǎn)生解碼正確的碼字,則步驟(b)還包括執(zhí)行另一種解 碼方法,以便試圖產(chǎn)生解碼正確的碼字;和如果所述另一種解碼方法產(chǎn)生了解碼正確的碼字,則步驟(c)包括基于所述候選解碼 碼字和所述解碼正確的碼字產(chǎn)生新的TS簡檔。
4.如權(quán)利要求2所述的方法,其中步驟(c)包括以下步驟(cl)選擇要進(jìn)行清除的以前存儲在所述RAM存儲器內(nèi)的一個(gè)或更多個(gè)TS簡檔; (c2)從所述RAM存儲器中清除所選擇的一個(gè)或更多個(gè)TS簡檔;和 (c3)將新的TS簡檔存儲在所述RAM存儲器內(nèi)。
5.如權(quán)利要求4所述的方法,其中步驟(cl)包括基于以下項(xiàng)目中的一個(gè)或更多個(gè)選擇 要進(jìn)行清除的TS簡檔(i)自從所選擇的TS簡檔在TS-RAM列表解碼方法的以前執(zhí)行過程中被匹配以來,所述 RAM存儲器在TS-RAM列表解碼方法的以前執(zhí)行過程中已被搜索的次數(shù);( )自從所選擇的TS簡檔被存儲在所述RAM存儲器內(nèi)以來,所選擇的TS簡檔在 TS-RAM列表解碼方法的以前執(zhí)行過程中已被匹配的總次數(shù)(例如,HIT_COUNTER); (iii)所選擇的TS簡檔中的不滿足校驗(yàn)節(jié)點(diǎn)的數(shù)目(例如,b);和 (iV)所選擇的TS簡檔中的錯(cuò)誤位節(jié)點(diǎn)的數(shù)目(例如,a)。
6.如權(quán)利要求5所述的方法,其中步驟(cl)包括基于自從所選擇的TS簡檔在TS-RAM 列表解碼方法的以前執(zhí)行過程中最后被匹配以來所述RAM存儲器在TS-RAM列表解碼方法 的以前執(zhí)行過程中已被搜索的次數(shù),選擇要進(jìn)行清除的TS簡檔。
7.如權(quán)利要求4所述的方法,其中步驟(cl)包括按照由單獨(dú)的RAM索引表指定的順序 搜索存儲的TS簡檔。
8.如權(quán)利要求1所述的方法,其中每個(gè)TS簡檔包括 相應(yīng)陷阱集合中的不滿足校驗(yàn)節(jié)點(diǎn)的數(shù)目(例如,b);相應(yīng)陷阱集合中的每個(gè)不滿足校驗(yàn)節(jié)點(diǎn)的標(biāo)識(例如,USC_INDEX);和 相應(yīng)陷阱集合中的每個(gè)不滿足校驗(yàn)節(jié)點(diǎn)的至少一個(gè)錯(cuò)誤位節(jié)點(diǎn)的標(biāo)識(例如,EBN_ INDEX)。
9.如權(quán)利要求8所述的方法,其中每個(gè)TS簡檔還包括 相應(yīng)陷阱集合中的錯(cuò)誤位節(jié)點(diǎn)的數(shù)目(例如,a);自從TS簡檔被存儲在所述RAM存儲器內(nèi)以來TS簡檔在TS-RAM列表解碼方法的以前 執(zhí)行過程中已被匹配的次數(shù)(例如,HIT_COUNTER);和匹配該特定簡檔的TS-RAM列表解碼方法的最近執(zhí)行的數(shù)目。
10.如權(quán)利要求1所述的方法,其中如果所述候選解碼碼字不是解碼正確的碼字,則所述候選解碼碼字標(biāo)識出包括一個(gè)或 更多個(gè)觀察到的不滿足校驗(yàn)節(jié)點(diǎn)的集合的觀察到的陷阱集合;和 該TS-RAM解碼方法包括(bl)在所述RAM存儲器內(nèi)搜索與所述觀察到的陷阱集合匹配的存儲的TS簡檔; (b2)修改LDPC編碼數(shù)據(jù)的一個(gè)或更多個(gè)錯(cuò)誤位節(jié)點(diǎn),其中由匹配的TS簡檔標(biāo)識所述 一個(gè)或更多個(gè)修改的錯(cuò)誤位節(jié)點(diǎn);和(b3)對修改后的LDPC編碼數(shù)據(jù)執(zhí)行LDPC解碼。
11.如權(quán)利要求10所述的方法,其中當(dāng)所述存儲的TS簡檔的一個(gè)或更多個(gè)不滿足校驗(yàn) 節(jié)點(diǎn)構(gòu)成所述觀察到的陷阱集合的一個(gè)或更多個(gè)觀察到的不滿足校驗(yàn)節(jié)點(diǎn)的同構(gòu)匹配時(shí), 所述存儲的TS簡檔與所述觀察到的陷阱集合匹配。
12.如權(quán)利要求10所述的方法,其中步驟(bl)包括按照由單獨(dú)的RAM索引表指定的順 序搜索所述存儲的TS簡檔。
13.如權(quán)利要求1所述的方法,還包括以下步驟(c)基于相應(yīng)陷阱集合的優(yōu)勢對存儲在所述RAM存儲器內(nèi)的TS簡檔排序。
14.如權(quán)利要求13所述的方法,其中陷阱集合的優(yōu)勢基于下列中的一個(gè)或更多個(gè) (i)自從相應(yīng)TS簡檔在TS-RAM列表解碼方法的以前執(zhí)行過程中被匹配以來,所述RAM存儲器在TS-RAM列表解碼方法的以前執(zhí)行過程中已被搜索的次數(shù)(例如,LAST_HIT_ NUM);( )自從相應(yīng)的TS簡檔被存儲在所述RAM存儲器內(nèi)以來,相應(yīng)的TS簡檔在TS-RAM列 表解碼方法的以前執(zhí)行過程中已被匹配的總次數(shù)(例如,HIT_COUNTER); (iii)陷阱集合中不滿足校驗(yàn)節(jié)點(diǎn)的數(shù)目(例如,b);和 (iV)陷阱集合中的錯(cuò)誤位節(jié)點(diǎn)的數(shù)目(例如,a)。
15.如權(quán)利要求14所述的方法,其中如果(i)自從第一TS簡檔在TS-RAM列表解碼方 法的以前執(zhí)行過程中被匹配以來所述RAM存儲器在TS-RAM列表解碼方法的以前執(zhí)行過程 中被搜索的次數(shù)小于(ii)自從第二 TS簡檔在TS-RAM列表解碼方法的以前執(zhí)行過程中被 匹配以來所述RAM存儲器在TS-RAM列表解碼方法的以前執(zhí)行過程中被搜索的次數(shù),則具有 第一 TS簡檔的第一陷阱集合比具有第二 TS簡檔的第二陷阱集合更具優(yōu)勢。
16.如權(quán)利要求13所述的方法,還包括以下步驟(d)在單獨(dú)的RAM索引表中存儲所述排序后的TS簡檔的地址,從而所述單獨(dú)的RAM索 引表中的地址順序基于步驟(c)的排序結(jié)果。
17.如權(quán)利要求1所述的方法,其中所述基于圖的碼字是低密度奇偶校驗(yàn)LDPC碼。
18.一種用于對使用基于圖的碼編碼的編碼數(shù)據(jù)進(jìn)行解碼的裝置,該裝置包括 解碼器,被配置為對所述編碼數(shù)據(jù)執(zhí)行解碼以產(chǎn)生候選解碼碼字;RAM存儲器;和陷阱集合TS-RAM列表解碼器,被配置為如果所述候選解碼碼字不是解碼正確的碼字, 執(zhí)行TS-RAM列表解碼方法,以便試圖產(chǎn)生解碼正確的碼字,其中所述TS-RAM列表解碼器訪 問存儲在RAM存儲器內(nèi)的一個(gè)或更多個(gè)TS簡檔,每個(gè)TS簡檔與不同的陷阱集合相對應(yīng)。
19.如權(quán)利要求18所述的裝置,還包括TS-RAM更新器,被配置為更新所述RAM存儲器以便存儲新的TS簡檔。
20.如權(quán)利要求18所述的裝置,其中所述基于圖的碼字是低密度奇偶校驗(yàn)LDPC碼。
全文摘要
本發(fā)明的某些實(shí)施例是用于創(chuàng)建和更新在(LDPC)列表解碼中使用的優(yōu)勢陷阱集合簡檔的RAM列表的高效的運(yùn)行時(shí)方法。對解碼正確的碼字和近碼字進(jìn)行比較,以便產(chǎn)生新的陷阱集合簡檔,并且將該簡檔寫入RAM。保持自從該簡檔被最后匹配以來RAM被搜索了多少次的記錄。在指定次數(shù)的存儲中未被匹配的簡檔符合清除條件。還按照其它因素給符合清除條件的簡檔評分,例如,自從被添加以來簡檔已被匹配的次數(shù),不滿足校驗(yàn)節(jié)點(diǎn)的數(shù)目,錯(cuò)誤位節(jié)點(diǎn)的數(shù)目。如果RAM中不存在足夠的空閑空間以便存儲新發(fā)現(xiàn)的簡檔,則刪除符合清除條件的簡檔,從評分最低的簡檔開始刪除,直到(i)創(chuàng)建了足夠的空閑空間或(ii)不再存在符合清除條件的簡檔。
文檔編號H03M13/00GK101803205SQ200880106432
公開日2010年8月11日 申請日期2008年12月12日 優(yōu)先權(quán)日2008年8月15日
發(fā)明者K·關(guān)納姆 申請人:Lsi公司