TW201417514A - 具分級局部迭代之ldpc(低密度奇偶校驗)解碼器 - Google Patents

具分級局部迭代之ldpc(低密度奇偶校驗)解碼器 Download PDF

Info

Publication number
TW201417514A
TW201417514A TW102126106A TW102126106A TW201417514A TW 201417514 A TW201417514 A TW 201417514A TW 102126106 A TW102126106 A TW 102126106A TW 102126106 A TW102126106 A TW 102126106A TW 201417514 A TW201417514 A TW 201417514A
Authority
TW
Taiwan
Prior art keywords
data
decoder
hierarchical
iteration
decoding
Prior art date
Application number
TW102126106A
Other languages
English (en)
Inventor
shao-hua Yang
Chung-Li Wang
Dan Liu
Zong-Wang Li
Original Assignee
Lsi Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201417514A publication Critical patent/TW201417514A/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本發明係關於一具有分級局部迭代之LDPC解碼器的系統和方法,其可被用於具有一LDPC解碼器和資料偵測器的資料處理系統中,用以更佳的平衡該LDPC解碼器和資料偵測器中的處理時間。

Description

具分級局部迭代之LDPC(低密度奇偶校驗)解碼器
本發明係關於一具有分級局部迭代之LDPC解碼器的系統和方法,其可被用於具有一LDPC解碼器和資料偵測器的資料處理系統中,用以更佳的平衡該LDPC解碼器和資料偵測器中的處理時間。
各種資料處理系統已被開發,包括儲存系統、行動電話系統、及無線電傳輸系統。在這些系統中,資料從發送器透過某些媒介被傳輸到接收器。例如,在儲存系統中,資料從發送器(即,寫入功能)透過儲存媒介被發送到接收器(即,讀取功能)。當資訊以數位資料的形式被儲存以及傳輸時,可能導入錯誤,若不校正該等錯誤則可能損毀資料並使資訊呈現不可用。任何傳輸的效用係受到由各種因素所引起之資料遺失的影響。許多型態的錯誤校驗系統已被開發來偵測及校正數位資料中的錯誤。例如,可能在最簡單的系統中,可將一奇偶校驗位元(parity bit)加入一組資料位元中,確保該組資料位元(包括該奇偶 校驗位元)具有偶數個數或奇數個數的1。當使用奇校驗(odd parity)時,準備資料以用於儲存或傳輸時,計數在該組資料位元中被設為1的資料位元的個數,若在該組資料位元中有偶數個1,則該奇偶校驗位元被設為1,以確保該組資料位元具有奇數個1。若在該組資料位元中有奇數個1,則該奇偶校驗位元被設為0,以確保該組資料位元具有奇數個1。當從儲存器擷取或從傳輸接收資料之後,可再次檢驗該奇偶校驗,若該組資料位元具有偶校驗,則在該資料中至少有一個錯誤被引入。在此簡單層面,可偵測某些錯誤但無法校正。
奇偶校驗位元亦可被用在錯誤校正系統中,包括在低密度奇偶校驗(Low Density Parity Check,LDPC)解碼器中。LDPC碼係以奇偶校驗為基礎的碼,其可以視覺地被表示在如圖1所示之Tanner圖100中。在LDPC解碼器中,針對一組可變節點110、112、114、116、118、120、122及124,在若干個校驗節點102、104、106及108中實行多數個奇偶校驗。可變節點110-124和校驗節點102-108之間的連結(或邊)係當設計LDPC碼時被選擇,平衡針對當獲得資料時執行LDPC碼所需之解碼器複雜度的碼的強度。奇偶校驗位元在該組資料位元中的個數及位置係當設計LDPC碼時被選擇。訊息在迭代過程於連結的可變節點110-124和校驗節點102-108之間傳遞,將關於應出現在可變節點110-124中的值的可信度(belief)傳遞至連結的校驗節點102-108。在校驗節點102- 108中根據訊息實行奇偶校驗,並且若需要的話,將結果返回連結的可變節點110-124以更新可信度。可以二元(binary)或非二元的方式實行LDPC解碼器。在二元LDPC解碼器中,可變節點110-124包含純量值,其係基於擷取自儲存裝置、由傳輸系統所接收或以一些其他方式獲得的一組資料和奇偶校驗位元。二元LDPC解碼器中的訊息係以純相似度機率(plain-likelihood probability)值或對數相似度比(log-likelihood-ratio,LLR)值傳輸的純量值,表示傳送的可變節點包含一特定值的機率。在非二元LDPC解碼器中,可變節點110-124包含來自Galois域(Galois Field)的符號,Galois域為一包含有限數量之元素的有限域GF(pk),其特點係大小為pk,其中p為質數且k為正整數。非二元LDPC解碼器中的訊息係多維向量,通常為純相似度機率向量或LLR向量。
可變節點110-124和校驗節點102-108之間的連結可以如下的矩陣形式表示,其中行表示可變節點,列表示校驗節點,而在可變節點行和校驗節點列的交叉點之來自Galois域的隨機非零元素a(i,j)表示該可變節點和校驗節點間的連結,並提供針對該可變節點和校驗節點間之訊息的置換(permutation):
藉由對該組可變節點110-124提供多數個校驗節點102-108,可提供冗餘錯誤檢查,致能校正以及檢測錯誤。各個校驗節點102-108在來自其鄰近(或連結的)可變節點之傳遞如訊息的位元或符號上實行奇偶校驗。在LDPC碼對應於圖1之Tanner圖100的範例中,校驗節點102檢驗可變節點110、116、120及122的奇偶校驗。值在迭代過程中於連結的可變節點110-124和校驗節點102-108之間來回地傳遞,直到LDPC碼收斂於針對可變節點110-124中之該組資料和奇偶校驗位元的值。例如,可變節點110傳遞訊息至校驗節點102和106。校驗節點102將訊息傳遞回可變節點110、116、120和122。在可變節點110-124和校驗節點102-108之間的訊息為機率或可信度,因此LDPC解碼演算法亦被稱為可信度傳遞(belief propagation)演算法。來自一節點的各個訊息表示,一位元或符號基於該節點之目前值和先前至該節點之訊息,具有某一特定值的機率。
自一可變節點至任何特定的鄰近校驗節點的訊息,係使用基於可變節點之目前值和從鄰近校驗節點至可變節點之最後訊息的許多演算法之任一來計算,除了來自該特定校驗節點的最後訊息自計算中省略,以防止正回饋。相似地,自一校驗節點至任何特定鄰近可變節點的訊息,係基於校驗節點之目前值和從鄰近可變節點至校驗節點之最後訊息來計算,除了來自該特定可變節點的最後訊息自計算中省略,以防止正回饋。由於在系統中實行局部 解碼迭代,訊息在可變節點110-124和校驗節點102-108之間來回地傳遞,在節點102-124中的值係基於被傳遞的訊息而被調整,直到該等值收斂及停止改變,或直到處理停止。
在具有諸如維特比(Viterbi)偵測器之資料偵測器和LDPC解碼器的資料處理系統中,偵測器或解碼器可能需要較長時間處理一資料區塊,導致當等待其中一者完成處理時在其中另一者中的延遲。
本發明係關於用於一種具分級局部迭代(fractional local iteration)之LDPC解碼器之系統和方法,該LDPC解碼器可被用於,例如,具有LDPC解碼器和資料偵測器之資料處理系統中,以更佳地平衡該LDPC解碼器和資料偵測器中的處理時間。藉由將局部解碼迭代分成兩個或更多個區段(segment),可在全域迭代(global iteration)期間實行部分或分級解碼迭代,以更緊密地平衡LDPC解碼器和資料偵測器的處理時間。在某些實施例中,資料偵測器中之資料扇區的處理時間係確定的,而LDPC解碼器依據該資料偵測器處理時間來決定實行完全和分級局部解碼迭代的數量。在某些實施例中,LDPC解碼器盡可能充分地填滿資料扇區的可用處理時間,盡可能長的實行完全和分級局部解碼迭代,而不超過該資料偵測器中對於該相同資料扇區的處理時間。可藉由將碼字 (codeword)的H矩陣分為兩個或更多個區段來分割局部解碼迭代。H矩陣可被分為同等大小或不同大小的區段,以提供對LDPC解碼器中的處理時間有更好的控制。LDPC解碼器可為分層解碼器或非分層解碼器。在某些分層解碼器實施例中,可依照列來劃分H矩陣,且在一層中分級迭代處理該等列的一子集。在某些非分層解碼器實施例中,可依照行來劃分H矩陣,且在該H矩陣中分級迭代處理該等行的一子集。
此摘要僅提供依據本發明之某些實施例的一般性概述。從以下詳細的說明、所附的申請專利範圍和附圖,將使本發明之許多其他的目的、特徵、優點及其他實施例變得更加清楚。
200‧‧‧資料解碼電路
222‧‧‧具分級局部迭代之LDPC解碼器
204‧‧‧頻道偵測器
206‧‧‧輸入資料緩衝器
210‧‧‧頻道偵測器
212‧‧‧多工器
216‧‧‧交錯器電路
220‧‧‧乒乓緩衝器
230‧‧‧乒乓緩衝器
214‧‧‧乒乓緩衝器
250‧‧‧分級迭代控制器
232‧‧‧解交錯器
234‧‧‧輸出資料緩衝器
500‧‧‧非分層LDPC解碼器
504‧‧‧LLR記憶體
510‧‧‧加法器/減法器陣列
516‧‧‧校驗和計算電路
524‧‧‧正規化/飽和電路
532‧‧‧正規化/定標/飽和電路
536‧‧‧重排列器
544‧‧‧桶移位器
546‧‧‧桶移位器
554‧‧‧奇偶/HD計算電路
560‧‧‧奇偶/HD記憶體
562‧‧‧LLR比較電路
572‧‧‧開關
574‧‧‧左側暫存器陣列
576‧‧‧右側暫存器陣列
578‧‧‧選擇網路
588‧‧‧桶移位器
590‧‧‧桶移位器
596‧‧‧反向重排列器
599‧‧‧分級迭代排程器
700‧‧‧LDPC分層解碼器
702‧‧‧解碼器記憶體
703‧‧‧分級迭代排程器
705‧‧‧控制器
710‧‧‧轉換器
712‧‧‧轉換器
714‧‧‧加法器
716‧‧‧加法器
726‧‧‧正規器
728‧‧‧正規器
730‧‧‧置換電路
732‧‧‧置換電路
734‧‧‧移位器
736‧‧‧移位器
742‧‧‧差量移位器
744‧‧‧差量移位器
746‧‧‧轉換器
748‧‧‧轉換器
750‧‧‧減法器
752‧‧‧減法器
762‧‧‧正規器
764‧‧‧正規器
774‧‧‧定標器
776‧‧‧定標器
786‧‧‧校驗節點單元
790‧‧‧正負號累加器
792‧‧‧正負號記憶體
794‧‧‧終態暫存器
795‧‧‧R產生器
796‧‧‧R產生器
797‧‧‧R產生器
798‧‧‧R產生器
799‧‧‧奇偶校驗計算器
900‧‧‧儲存系統
902‧‧‧讀取頻道電路
904‧‧‧前置放大器
906‧‧‧介面控制器
910‧‧‧硬碟控制器
912‧‧‧馬達控制器
914‧‧‧轉軸馬達
916‧‧‧磁碟盤
920‧‧‧讀/寫頭
1000‧‧‧資料傳輸系統
1002‧‧‧發送器
1004‧‧‧接收器
1006‧‧‧傳輸介質
可藉由參照在本說明書之其餘部分所述之圖式,來實現對本發明之各種實施例的進一步理解。於圖式中,在數個圖式中使用類似的參考標號來指稱相似的元件。在某些情況下,包含小寫字母的下標係與一參考標號相關聯,以表示多個相似元件之一。當提到一參考標號而沒有說明現有的下標時,其意圖指稱所有的此種多數個相似元件。
圖1描述示例性先前技術LDPC碼的Tanner圖;圖2描述依據本發明之某些實施例的資料偵 測和解碼電路,其具有具分級局部迭代之LDPC解碼器;圖3A描述依據本發明之某些實施例的交錯偵測和解碼兩個資料扇區,及當LDPC解碼器等待偵測器完成處理時所浪費的處理時間;圖3B描述依據本發明之某些實施例的交錯偵測和解碼兩個資料扇區,及在LDPC解碼器中實行分級局部迭代,以平衡在偵側器和在LDPC解碼器中的處理時間;圖4描述依據本發明之某些實施例的圖,說明用以致能在非分層LDPC解碼器中之分級局部迭代的H矩陣的劃分;圖5描述依據本發明之某些實施例的具分級局部迭代之非分層LDPC解碼器的方塊圖;圖6A描述依據本發明之某些實施例的圖,說明LDPC分層解碼器中使用三層H矩陣之分層解碼,該LDPC分層解碼器不使用分級局部迭代;圖6B描述依據本發明之某些實施例的圖,說明分層解碼器中使用三層H矩陣之分層解碼,該LDPC分層解碼器使用分級局部迭代以在第一局部迭代中略過前兩個層;圖7描述依據本發明之某些實施例的具分級局部迭代之LDPC分層解碼器的方塊圖;圖8描述依據本發明之某些實施例的資料偵測和使用具分級局部迭代之LDPC解碼器來解碼操作的流 程圖;圖9描述依據本發明之某些實施例的儲存系統,包括具有具分級局部迭代之LDPC解碼器的資料處理電路;及圖10描述依據本發明之某些實施例的無線通訊系統,包括具有具分級局部迭代之LDPC解碼器的資料處理電路。
本發明係關於用於一種具分級局部迭代之LDPC解碼器之系統和方法,該LDPC解碼器可被用於,例如,具有LDPC解碼器和資料偵測器之資料處理系統中,以更佳地平衡該LDPC解碼器和資料偵測器中的處理時間。在各種實施例中所使用的LDPC解碼器可為任何型態的LDPC解碼器,包括二元及非二元、分層及非分層,並使用任何適合的解碼演算法。LDPC技術係適用於在幾乎任何頻道上的資訊傳輸或在幾乎任何媒介上的資訊儲存。傳輸應用包括,但不限於,光纖、無線電頻道、有線或無線區域網路、數位用戶線路技術、無線蜂巢式、在諸如銅或光纖之任何媒介上的乙太網路(Ethernet)、諸如有線電視的有線電視頻道、及地球衛星通訊。儲存應用包括,但不限於,硬碟驅動器、光碟、數位光碟、磁帶和記憶體裝置,諸如DRAM、NAND快閃記憶體、NOR快閃記憶體、其他非揮發性記憶體和固態硬碟。
藉由將局部解碼迭代分成兩個或更多個區段,可在全域迭代期間實行部分或分級解碼迭代,以更緊密地平衡LDPC解碼器和資料偵測器的處理時間。在某些實施例中,資料偵測器中之資料扇區的處理時間係確定的,而LDPC解碼器依據該資料偵測器處理時間來決定實行完全和分級局部解碼迭代的數量。在某些實施例中,LDPC解碼器盡可能充分地填滿資料扇區的可用處理時間,盡可能長的實行完全和分級局部解碼迭代,而不超過該資料偵測器中對於該相同資料扇區的處理時間。可藉由將碼字的H矩陣分為兩個或更多個區段來分割局部解碼迭代。H矩陣可被分為同等大小或不同大小的區段,以提供對LDPC解碼器中的處理時間有更好的控制。LDPC解碼器可為分層解碼器或非分層解碼器。在某些分層解碼器實施例中,可依照列來劃分H矩陣,且在一層中分級迭代處理該等列的一子集。在某些非分層解碼器實施例中,可依照行來劃分H矩陣,且在該H矩陣中分級迭代處理該等行的一子集。
翻到圖2,根據本發明之某些實施例揭示一資料解碼電路200之一種實現,該資料解碼電路可包括一具分級局部迭代之LDPC解碼器222。資料解碼電路200包括一資料輸入202,其被輸入至頻道偵測器204。在某些實施例中,資料輸入202為數位資料串流,例如,包含讀取自磁性儲存裝置的數位化及均等化資料。頻道偵測器204可為本領域中已知之任何型態的頻道偵測器,包括但 不限於,軟式輸出維特比演算法(soft output Viterbi algorithm,SOVA)偵測器或最大事後機率(maximum a posteriori,MAP)偵測器。基於本文所提供之揭示,熟習此技藝之人士將依據本發明之不同實施例來識別可被使用的各種頻道偵測器。此外,資料輸入202被提供至一輸入資料緩衝器206,其被設計來保持接收自資料輸入202的數個資料集。可選擇輸入資料緩衝器206的大小以提供足夠的緩衝,使得透過資料輸入202的一資料集輸入至少直到完成該相同資料集的第一次迭代處理前仍保持可用,並且經過處理的資料在乒乓緩衝器(ping pong buffer)230(即,佇列緩衝器)中係可用的,如下更完整的描述。輸入資料緩衝器206提供該資料集至頻道偵測器210。相似於頻道偵測器204,頻道偵測器210可為本領域已知之任何型態的頻道偵測器,包括但不限於,SOVA偵測器或MAP偵測器。又,基於本文所提供之揭示,熟習此技藝之人士將依據本發明之不同實施例來識別可被使用的各種頻道偵測器。
頻道偵測器204和頻道偵測器210兩者之輸出,經由一多工器212被提供至一交錯器電路216。此輸出可為,例如,對數相似度比(LLR)值。交錯器電路216使用兩個乒乓緩衝器214、220來分別地交錯頻道偵測器204之輸出以及交錯頻道偵測器210之輸出。乒乓緩衝器214中的一個緩衝器保持來自頻道偵測器204之輸出的先前交錯處理的結果,並被卸載至具分級局部迭代之LDPC 解碼器222,同時乒乓緩衝器214的另一個緩衝器保持目前正被交錯之來自頻道偵測器204的一資料集。相似地,乒乓緩衝器220中的一個緩衝器保持來自頻道偵測器210之輸出的先前交錯處理的結果,並被卸載至LDPC解碼器222,同時乒乓緩衝器220的另一個緩衝器保持目前正被交錯之來自頻道偵測器210的一資料集。
在正常操作中,第一資料集經由資料輸入202被導入至頻道偵測器204。頻道偵測器204實施其頻道偵測演算法,並提供硬式輸出(hard output)與軟式輸出(soft output)兩者至多工器212。硬式和軟式決策資料(decision data)被寫入至乒乓緩衝器214之其中一個緩衝器。頻道偵測器204中用於該資料集的處理時間係確定的,並被提供至LDPC解碼器222。偵測器處理時間提供處理該資料集的持續時間(duration)的指示,並且可以時脈週期或其他測量單位來測量,或者可以是基於一標準資料集之處理時間的相對測量。同一時間,該偵測器輸出被寫入至緩衝器,交錯器216藉由基於交錯器演算法/映射而將連續的資料寫入至非連續的記憶體/緩衝器位址而交錯該資料集。一旦交錯器216完成其交錯處理,經過交錯的資料被LDPC解碼器222解碼。
LDPC解碼器222適當地執行完全與部分之混合或分級解碼迭代,以填滿可用的處理時間,使得LDPC解碼器222不等待頻道偵測器204閒置來完成處理,但不超過偵測器處理時間,使得頻道偵測器204將等待LDPC 解碼器222來完成處理。可調整在LDPC解碼器222中的解碼時間,其係基於當該相同資料集在頻道偵測器204中被處理時的處理時間,或者可基於在頻道偵測器204中或在頻道偵測器210中或在兩者中目前正被處理的資料集的處理時間,例如試圖匹配兩個偵測器204和210之較長的處理時間。在某些實施例中可設置一分級迭代控制器250,用來將關於在頻道偵測器204及/或頻道偵測器210中的處理時間的資訊傳遞至LDPC解碼器222,且在某些情況中用以協助判定處理時間。在某些實施例中,分級迭代控制器250亦協助分配解碼資源給LDPC解碼器222,例如基於在頻道偵測器204中的處理時間而用以執行的完全與分級迭代的數量。
在資料收斂的情況下,LDPC解碼器222將其輸出作為硬式決策輸出224而寫入至輸出資料緩衝器234,針對該特定資料集的處理係完成的。替代地,在資料不收斂的情況下,LDPC解碼器222將其輸出(軟式和硬式兩者)寫入至乒乓緩衝器230。
寫入到乒乓緩衝器230的資料被反饋至頻道偵測器210。頻道偵測器210自輸入資料緩衝器206選擇對應於乒乓緩衝器230中之輸出的資料集,並執行後續的資料偵測,其由自乒乓緩衝器230反饋之由LDPC解碼器222所產生的軟式輸出資料所輔助。藉由使用先前所產生的軟式資料用於保持在輸入資料緩衝器206中的資料,頻道偵測器210通常執行具有高度準確性的後續頻道偵測。 此後續頻道偵測的輸出經由多工器212被傳遞到交錯器216。該資料被寫入到乒乓緩衝器220的其中一個緩衝器,且交錯器216交錯該資料。然後經過交錯的資料被傳遞到LDPC解碼器222,在此處其再次被解碼。相似於第一次迭代,做出該資料是否收斂或者乒乓緩衝器230中是否沒有足夠空間來處理該資料的決策。這樣的情況下,LDPC解碼器222將其輸出作為硬式決策輸出224而寫入至輸出資料緩衝器234,且針對該特定資料集的處理係完成的。替代地,在資料不收斂且乒乓緩衝器230中有足夠緩衝空間來接收額外的資料集的情況下,LDPC解碼器222將其輸出(軟式和硬式兩者)寫入至乒乓緩衝器230,此處其被傳遞回頻道偵測器210作為第三次傳遞。藉由在來自第二偵測器和解碼器迭代的資料集被寫入至乒乓緩衝器230之後,至少具有保留空間給來自第一偵測器和解碼器迭代的資料集,而在乒乓緩衝器230中定義足夠的空間。特別是,在某些實施例中,可省略乒乓緩衝器214、220、230之一或者其中多者,而由於改進的處理時間的匹配,在元件之間傳遞該資料集。
應了解的是,作為一範例,一第一資料集可被應用在資料輸入202,且其需要若干迭代數來收斂,當應用在資料輸入202的所有後續的資料集收斂於第一次傳遞(即,於單一迭代)。在此情況下,該第一資料集可能被處理許多次(即,數次全域迭代),其受限於輸出資料緩衝器234中可用的記憶體數量。一旦輸出資料緩衝器234已 滿,或是一旦輸出的有序集合係可用的,對應於該第一資料集之最新的硬式決策輸出貝提供作為一硬式決策輸出,且解交錯器232重新排序該等輸出,將第一輸出放在第一位置。藉由這樣做,輸出資料緩衝器234被清空(flushed out)為輸出236。
兩組資料集的交替偵測和解碼被描繪在圖3A的圖300中,如其可能在不具有分級局部迭代的資料解碼電路200中進行。該兩組資料集在圖300中以不同的交叉線方向來區分。圖300中的各個區塊表示用於處理一資料集的一時段(time slot)。圖300旨在以圖形方式顯示處理的乒乓性質,而非準確地描繪在頻道偵測器204中和在LDPC解碼器222中的處理時段之間的時序關係、或是在頻道偵測器204或LDPC解碼器222中的連續處理時段之間的時序關係。偵測器處理時間粒度係基於資料集或扇區。換言之,頻道偵測器204在各個時段處理一整個資料集。解碼器處理時間係基於局部解碼迭代,例如LDPC解碼器222在每一處理時段執行多個局部解碼迭代。在某些實施例中,資料解碼電路200為主從式(client-server)編解碼系統,其中頻道偵測器204和LDPC解碼器222以乒乓形式循序地處理資料集。由於不同的編碼速率選項、解碼器排程、一資料扇區中的使用者資料長度等等,頻道偵測器204和LDPC解碼器222可能有不同的處理時間。若LDPC解碼器222中的處理時間短於頻道偵測器204中的處理時間,則LDPC解碼器222等待來自頻道偵測器204 的輸出。
第一資料集於時段302在頻道偵測器204中被處理,然後於時段314在LDPC解碼器222中被解碼。資料集在頻道偵測器204然後在LDPC解碼器222中的處理,表示一單一全域迭代。資料集在LDPC解碼器222內部的重複處理,為局部迭代或局部解碼迭代。當LDPC解碼器222僅執行完全局部解碼迭代時,在完成最後完全局部解碼迭代之後、在其可以開始處理下一個來自頻道偵測器204的資料集之前,可能會有一等待時間316。一旦於時段302期間在頻道偵測器204中完成第一資料集,第二資料集於時段304在頻道偵測器204中被處理,然後於時段320在LDPC解碼器222中被解碼。資料集的交錯或乒乓處理持續直到針對資料集之資料已收斂、或是直到已完成針對資料集之全域迭代的最大允許數量,在這之後其被逐出資料解碼電路200以讓位給新的資料集。第一資料集可能因此於時段302、314、306、324和312在頻道偵測器204和LDPC解碼器222中被處理。第二資料集可能於時段304、320、310和330在頻道偵測器204和LDPC解碼器222中被處理。在LDPC解碼器222中的各個時段314、320、324、330,LDPC解碼器222在完成最後可能完全解碼迭代之後可能有一不活動等待期間316、322、326、332,直到該資料可自頻道偵測器204開始於LDPC解碼器222中的下一個全域迭代。
企圖在LDPC解碼器222中增加一額外的完 全局部解碼迭代以填滿等待期間316、322、326、332,將使LDPC解碼器222中的處理時間或一時段的持續時間超過頻道偵測器204的處理時間或一時段的持續時間。若LDPC解碼器222中的處理時間超過頻道偵測器204中的處理時間,會增加系統中的整體延遲。藉由在LDPC解碼器222中執行分級局部迭代,等待期間316、322、326、332可被進一步的解碼佔據,而不會超過頻道偵測器204中的處理時間。分級局部解碼迭代較完全局部解碼迭代花費較少的時間,因此可能適合等待期間316、322、326、332。這些額外的局部解碼迭代改善了解碼效能,從而改善了資料解碼電路200的整體效能。
如圖3B中之圖350所示,可藉由增加分級局部解碼迭代而大幅地消除LDPC解碼器222中的等待期間。第一資料集可於時段352、364、356、374和362在頻道偵測器204和LDPC解碼器222中被處理。第二資料集可於時段354、370、360和380在頻道偵測器204和LDPC解碼器222中被處理。在頻道偵測器204和LDPC解碼器222中的實際處理時間係大致上一致,使用分級局部解碼迭代以減少或消除LDPC解碼器222中的等待期間。
翻到圖4,根據本發明之某些實施例,描繪分割H矩陣400成為區段以致能在非分層LDPC解碼器中的分級局部迭代。在此範例中,將H矩陣400分割為兩個大小相等的區段:左側402和右側404。在其他實施例中, 可以行(column)將H矩陣400分割為多於兩個的區段,或分割為大小不相等的區段。在非分層LDPC解碼器中,H矩陣400係逐行、逐列地被處理。完全局部解碼迭代在一個迭代期間處理402和404兩側,其係從單一列或字(word)來處理,例如處理列406的所有行,或是橫跨兩列來處理,例如處理列410的右側404以及列412的左側402。非分層LDPC解碼器中的全域解碼迭代可從H矩陣400在第一列406的左側402中的左上循環開始,或是從任何其他列且在右側404而非左側402上開始。因此可在非分層LDPC解碼器中的全域解碼迭代的開始、中間或結尾處執行分級迭代。分級迭代因此可藉由在僅處理H矩陣400之一側402或404(起始於左側402或右側404)之後終結解碼來達成。
在從單一列(例如,406)或是橫跨兩列(例如410和412)處理兩個一半的區段之後,針對該列的C2V訊息可基於針對該兩個一半區段的V2C訊息內容而被產生,完成一局部迭代。在某些實施例中,於整個H矩陣400已經被處理的第一局部迭代之後,C2V訊息可在每半列之後被更新,其係藉由結合來自最近半列(half-row)的目前資料,該最近半列係以來自在該最近半列之前被處理的半列的較舊資料而被處理。針對左側402和右側404用來更新C2V訊息的資料可能因此包括目前資料和舊資料。
翻到圖5,依據本發明之各種實施例圖示一範 例的非分層LDPC解碼器500,在此範例中為非二元解碼器,應用一簡化的最小值-總和(min-sum)為基的解碼演算法。再次,必須注意的是,具有分級局部迭代的LDPC解碼器並不限於使用最小值-總和為基的解碼演算法或是任何特定的LDPC解碼演算法。非分層LDPC解碼器500可被用來,例如,代替圖2的LDPC解碼器222。
從輸入頻道502提供LLR值給非分層LDPC解碼器500,其可被儲存在一LLR記憶體504中。已儲存值506被提供給一加法器/減法器陣列510,亦被稱為可變節點處理器或可變節點單元(VNU)或是被稱作為VNU的一部分。加法器/減法器陣列510基於來自輸入頻道502之值和基於C2V訊息向量512來更新符號的知覺價值(perceived value)。加法器/減法器陣列510產生一外部LLR輸出514至校驗和(check sum)計算電路516,其產生一奇偶校驗輸出520。例如,校驗和計算電路516可包括多工器和XOR電路來計算在GF(q)上的奇偶校驗方程式 v H T =0,其中 v GF(q) N ,且其中v為碼字向量,而H T 為針對LDPC解碼器之H矩陣的變換。加法器/減法器陣列510亦產生一外部LLR輸出522至一正規化/飽和電路524,其產生一硬式決策輸出526。
加法器/減法器陣列510執行一更新功能,將C2V訊息向量512加到符號值,然後產生V2C訊息向量530,說明在資料集中各符號之Galois域中各元素之該更新的相似度或LLR值。V2C訊息向量530被提供至一正 規化/定標(scaling)/飽和電路532,其定標該等LLR值並將它們轉化為正規化的V2C訊息向量534。該等正規化的V2C訊息向量534包含一硬式決策(最有可能之GF元素的指標),和各符號之剩餘GF元素的LLR值,各正規化為該硬式決策。例如,在一GF(4)LDPC解碼器中,正規化/定標/飽和電路532針對各符號取四個LLR資料值,識別該四個值的最高LLR資料值,並正規化該四個LLR資料值為最高LLR資料值的值。使用下列範例符號來示出這樣的一個範例:
在此範例中,正規化/定標/飽和電路532選擇對應於硬式決策‘10’的LLR資料值‘22’。接著,對應於硬式決策值‘00’、‘01’、‘10’和‘11’的LLR資料值被正規化為LLR資料值‘22’,其係藉由從各個LLR資料值減去‘22’,以產生下列的正規化的符號:
該等LLR值亦可在正規化/定標/飽和電路532中被定標,將各個正規化的LLR資料值乘以一比例因素。該比例因素可為使用者可編程的。作為一範例,使用 一比例因素0.5,該正規化的V2C訊息向量534基於目前的範例,可能包括下列的定標符號:
V2C訊息向量534被提供至一重排列器536,其在訊息邊緣處的邊界上混洗(shuffle)訊息,隨機化雜訊和打破訊息間的相依性,並產生重排列的V2C訊息向量540和542。重排列的V2C訊息向量540和542分別被提供至桶移位器544和546,其將重排列的V2C訊息向量540和542中的符號值移位,以產生下一個循環子矩陣,產生移位的LLR值550和552。在某些實施例中,於輸入頻道502處提供的碼字的碼結構具有一下列形式的碼結構矩陣:
其中各個PI,J為具權重1的pxp循環,或單位矩陣的置換,且循環尺寸L為列權重(row weight)。下面為PI,J之一pxp循環代表的範例:
桶移位器544和546係可操作來將目前接收到的循環移位至一單位矩陣。此種單位矩陣可以如下:
桶移位器544提供移位的輸出550,其包含硬式決策HD之大小及正負號(sign)。桶移位器546提供移位的輸出552,其包含剩餘LLR值的大小,被正規化為該硬式決策HD。移位的輸出550被提供至一奇偶/HD計算電路554,其計算在移位的輸出550中之硬式決策的累計正負號,將H矩陣經處理之部分的各非零元素之結果的正負號值556,和硬式決策儲存於一奇偶/HD記憶體560中。
移位的輸出552被提供至一LLR比較電路562,其基於在H矩陣經處理之部分中的所有外在(extrinsic)V2C訊息,計算針對Galois域中的各個非零符號d之第一最小LLR值或子訊息min 1 (d)(即,最低的LLR值)、min 1 (d)的索引idx(d)(即,在列中對應於第一最小LLR資料值的位置)、和第二最小LLR值或子訊息min 2 (d)(即, 第二低的LLR值)或除了min 1 (d)以外的所有子訊息的最小值。換言之,一特定符號d的子訊息係蒐集自來自H矩陣經處理之部分的所有外在輸入的訊息,且基於所蒐集的該符號d的子訊息來計算min 1 (d)idx(d)min 2 (d)。針對具有q個符號的一Galois域,校驗節點將計算在該域中除了最可能符號、硬式決策HD之外的q-1個非零符號之各者的min 1 (d)idx(d)min 2 (d)子訊息。
再次,H矩陣中的行代表可變節點,列代表校驗節點,而H矩陣中的非零值指示在非零相交處之行與列之間的連接。通常,用於分級局部迭代處理的最小值-總和為基的解碼演算法,針對Galois域之除了最可能符號或HD之外的各個非零元素,在H矩陣被處理的部分或區段中識別從各個連接的可變節點到一校驗節點的最低外在輸入值,其係藉由在H矩陣被處理的部分中之連接的可變節點(或非零列值)之中,尋找除了HD之外的各個非零的Galois域元素的最低和下一個最低LLR值。
因為H矩陣被分割為多個區段,例如左側和右側,min 1 (d)idx(d)min 2 (d)值係針對H矩陣的各側而被交替地計算,使得校驗節點更新可在分級迭代之後被執行,例如在根據用於右側之新識別的min 1 _r(d)idx_r(d)min 2 _r(d)值以及根據用於左側之先前識別的min 1 _l(d)idx_l(d)min 2 _l(d)值來處理左側之後,或是在根據用於左側之新識別的min 1 _l(d)idx_l(d)min 2 _l(d)值以及根據用於右側之先前識別的min 1 _r(d)idx_r(d)min 2 _r(d)值來處理右側之後。
在LLR比較電路562中執行最低和下一個最低LLR值之識別,而有,例如藉由開關572,被分為左側結果566和右側結果570之結果564(用於兩個區段之H矩陣)。左側結果566(或min 1 _l(d)idx_l(d)min 2 _l(d)值)被儲存在左側暫存器陣列574中。右側結果570(或min 1 _r(d)idx_r(d)min 2 _r(d)值)被儲存在右側暫存器陣列576中。用於兩個區段之LDPC解碼器的暫存器陣列574和576,儲存針對在各個校驗節點或H矩陣之列的除了HD以外的各個非零的GF元素之左和右組的min 1 (d)idx(d)min 2 (d)值。在GF(4)解碼器之某些實施例中,針對各個校驗節點或H矩陣之列,有一組用於H矩陣之左側的三個min 1 (d)idx(d)min 2 (d)暫存器和用於H矩陣之右側的三個min 1 (d)idx(d)min 2 (d)暫存器。使用具有三個列的碼結構矩陣,左側暫存器陣列574和右側暫存器陣列576可能各儲存三組第一最小LLR資料值、第二最小LLR資料值、索引值,如下列範例中所示:
在針對H矩陣之各側於LLR比較電路562中開始LLR比較處理之前,將左側暫存器陣列574或右側暫存器陣列576重設至一初始值,例如零。當處理H矩陣之那一側中的各個行時,當收到第一個非零LLR值時,它們會覆蓋該初始零值。當繼續H矩陣之那一側中的各個行之處理時,若非零GF元素之LLR值小於在min 1 (d)暫存器中的值,則以非零GF元素之LLR值來更新min 1 (d)暫存器,min 1 (d)暫存器中的先前值則被複製到min 2 (d)暫存器中當作下一個最低的值,並且以目前工作行的索引來更新idx(d)暫存器。若非零GF元素之LLR值大於在min 1 (d)暫存器中的值但小於在min 2 (d)暫存器中的值,則以該GF元素之LLR值來更新min 2 (d)暫存器。隨著各個行被處理,此LLR比較係針對各校驗節點之min 1 (d)idx(d)min 2 (d)暫存器組或在該行中的列而被執行。
在LLR比較電路562中H矩陣之一區段處理結束時,一選擇網路578基於儲存在左側暫存器陣列574中之已儲存的左側結果580(或min 1 _l(d)idx_l(d)min 2 _l(d)值)以及儲存在右側暫存器陣列576中之已儲存的右側結果582(或min 1 _r(d)idx_r(d)min 2 _r(d)值)來執行一校驗節點更新。校驗節點更新係基於一側(例如,574)之新識別的值以及另一側(例如,576)之先前識別的值,且隨著H矩陣被處理,具有新識別的值之側在左側和右側之間交替。例如,一旦H矩陣之左側(例如,402)中 的所有行都已經被處理過了,且在一更新延遲之後,校驗節點更新係基於儲存在左側暫存器陣列574中之新的min 1 _l(d)idx_l(d)min 2 _l(d)值以及基於儲存在右側暫存器陣列576中之舊的min 1 _r(d)idx_r(d)min 2 _r(d)值來執行。如上所揭示,接著處理H矩陣之右側(例如,404),首先重設右側暫存器陣列576。當H矩陣之右側已經被處理過了,且在一更新延遲(例如,320)之後,另一個校驗節點更新可能基於儲存在左側暫存器陣列574中之舊的min 1 _l(d)idx_l(d)min 2 _l(d)值以及基於儲存在右側暫存器陣列576中之新的min 1 _r(d)idx_r(d)min 2 _r(d)值而被執行。
LLR比較電路562、暫存器陣列574和576以及選擇網路578可以被統稱為校驗節點處理器或校驗節點單元(CNU)。此處所揭示之簡化的最小值-總和為基的CNU,以及在簡化的最小值-總和為基的非分層LDPC解碼器之某些實施例中可能使用的亦被稱為一壓縮電路。選擇網路578選擇被用於C2V訊息512中之min 1 (d)min 2 (d)作為輸出584,使得僅外在值被選擇。若目前行索引等於最小值索引,表示正準備用於提供min 1 (d)值之一可變節點的C2V訊息,則C2V訊息512中使用的值為第二最小值min 2 (d)。否則,C2V訊息512中使用的值為第一最小值min 1 (d)。選擇網路578亦考慮來自H矩陣之兩側的min 1 (d)min 2 (d)值,從它們兩個之中選擇最低的LLR值。當處理H矩陣之左側時,可能根據公式來完成 此步驟:sel[d]=min(((circ_idx==idx_l[d])?min 2_l[d]:min 1_l[d]),min 1_γ[d]) (公式1)
其中d為GF元素索引,其中circ_idx為工作行的索引,即,針對其之C2V訊息將被產生之可變節點的索引,且其中idx_lmin 1 _l(d)值的行索引。針對一GF(4)解碼器,d=0,1,2。外面的最小(min)語句從左側或右側選擇外在最小LLR值。因為在此實例中H矩陣的左側正被處理,工作行的索引circ_idx在左側中,min 1 _r(d)無法來自在工作行的可變節點而因此來自一外來的輸入。相反的,min 1 _l(d)可能來自在工作行的可變節點,所以將idx_l(d)與工作行索引circ_idx相比。若它們相等,則min 1 _l(d)並非為外來的輸入,使用min 2 _l(d)值而非使用min 1 _l(d)。值得注意的是,若H矩陣進一步被分割,該公式可適應於從多於兩個部分之中來選擇。
當處理H矩陣之右側時,選擇網路578依據下列公式從H矩陣的兩側選擇最低的LLR值:sel[d]=min(min 1_l[d],((circ_idx==idx_r[d])?min 2_r[d]:min 1_γ[d])) (公式2)
其中idx_r為用於右側之min 1 _r(d)值的行索引。再次,外面的最小(min)語句從左側或右側選擇外在最小LLR值。因為在此實例中H矩陣的右側正被處理,工作 行的索引circ_idx在右側中,min 1 _l(d)無法來自在工作行的可變節點而因此來自一外來的輸入。相反的,min 1 _r(d)可能來自在工作行的可變節點,所以將idx_r(d)與工作行索引circ_idx相比。若它們相等,則min 1 _r(d)並非為外來的輸入,使用min 2 _r(d)值而非使用min 1 _r(d)
在一GF(4)LDPC解碼器中,用於組成C2V訊息向量512之一部分的Galois域的各元素的R值或LLR值係基於選擇網路578中的sel[d]而被計算,例如依據公式3-5:R[0]=min(sel[0],sel[1]+sel[2]) (公式3)
R[1]=min(sel[1],sel[0]+sel[2]) (公式4)
R[2]=min(sel[2],sel[0]+sel[1]) (公式5)
對於有更多Galois域元素的LDPC解碼器,會有額外的公式用於額外的R項。
C2V訊息512中所用的硬式決策HD和正負號在奇偶/HD記憶體560的輸出586處被提供,而正負號或奇偶校驗之計算為累計正負號和符號之目前正負號的互斥或(XOR)。被用來作為C2V訊息向量512中之硬式決策值的R_HD值可依據公式6來計算:R HD =sgn_l XOR sgn_r XOR Q_HD (公式6)
其中sgn_lsgn_r為用於H矩陣之各部分的正負號或奇偶值,而Q_HD為V2C訊息向量540中的先前硬式決策,以互斥或(XOR)運算結合。再次,若H矩陣被分割為多於兩個部分,公式6可有額外的正負號項。用於實現公式1-6的硬體可共享並用於H矩陣之各部分,或可被複製用於H矩陣之各部分。
奇偶/HD記憶體560之輸出586和選擇網路578之輸出584分別被提供給桶移位器588和590,該等桶移位器位移在輸出586中的硬式決策和它們的正負號以及位移在輸出584中的C2V訊息值,以分別產生位移的硬式決策和正負號592和位移的C2V訊息值594,在循環子矩陣之間位移。位移的C2V訊息值594和位移的硬式決策和正負號592在一反向重排列器596中被結合及處理,該反向重排列器結合輸入592和594以及該反向重排列器反轉重排列器536的效應以產生C2V訊息向量512。反向重排列器596的結合部分在此處亦被稱為資料解壓縮電路,並重組行以產生原始資料的一近似。
分級迭代排程器599決定在全域迭代期間用以在非分層LDPC解碼器500中執行的完全和分級局部解碼迭代數,其係基於在外部偵測器(例如,頻道偵測器204或210)中的處理時間。在某些實施例中,分級迭代排程器599分配將接近偵測器處理時間而不超過它的完全和分級局部解碼迭代數。在某些其他實施例中,分級迭代排程器599可能允許解碼器處理時間稍微超過偵測器處理時間。 分級迭代排程器599可能造成分級局部解碼迭代在全域局部解碼迭代的開始、中間或結束時被執行。分級迭代排程器599可能預先或是在全域解碼迭代的開始決定用以在非分層LDPC解碼器500中執行的完全和分級局部解碼迭代數,或可能在各局部解碼迭代的開始時判斷是否有足夠的解碼器處理時間保留給完全或分級局部解碼迭代而不超過偵測器處理時間。
在某些實施例中,分級迭代排程器599平衡相同資料集的解碼器處理時間和偵測器處理時間。在這些實施例中,因為偵測器和解碼器可能在乒乓資料處理架構中任何給定時間點處理不同的資料集,因此單一時段的偵測器和解碼器的處理時間可能不平衡,雖然一組資料集的偵測器和解碼器的平均處理時間將是平衡的。在其他實施例中,分級迭代排程器599可能平衡目前正被解碼的資料集的解碼器處理時間和目前正被偵測的資料集的偵測器處理時間,雖然它們可能是不同的資料集。
翻到圖6A及6B,根據本發明的某些實施例描繪H矩陣600和650之分割為區段,用以致能LDPC分層解碼器中的分級局部迭代。在分層解碼器中,H矩陣600和650被分層解碼,而各層包含一或多個行。一層指的是在解碼器中同時被處理的一行或多行。在分層解碼器中的各個局部解碼迭代期間,H矩陣中的各行被處理一次。
在LDPC分層解碼器中分級局部迭代失能, 或者若全域解碼迭代期間不需要分級局部迭代來匹配偵測器處理時間,H矩陣的分層解碼可能如圖6A中所示。在此範例中,H矩陣600包括三層(以不同的交叉線圖案來區分),其各者可能包含H矩陣的一行或多行。H矩陣600的所有三層在此範例的第一局部迭代602、第二局部迭代604和第三及最後迭代606期間被完全地處理。LDPC分層解碼器中的全域解碼迭代610因此執行三個完全局部解碼迭代,各包含H矩陣600的所有層。
LDPC分層解碼器中分級局部迭代被致能或被使用時,H矩陣的一或多層可能從局部解碼迭代被省略。例如,如圖6B中所示,H矩陣650的前兩層664和666可能從分級局部迭代652中的處理被省略,僅處理最後一層662,以減少LDPC分層解碼器中之第一局部迭代652的處理時間。全域迭代660因此自第一局部迭代652中處理H矩陣650的最後一層662開始,接著是兩個完全局部迭代654和656。因此藉由僅處理H矩陣650中的層的一子集而達成LDPC分層解碼器中的分級局部迭代。當執行校驗節點計算和產生C2V訊息用於分級局部迭代時,可能結合舊的和新的資料以產生C2V訊息用於整個H矩陣650,C2V訊息係基於用於在分級局部迭代中最後被處理的層的新資料以及用於從分級局部迭代省略的層的較舊的資料,且該較舊的資料來自那些層被處理的最後完全局部迭代。
翻到圖7,根據本發明之某些實施例揭示一具 有分級局部迭代的LDPC分層解碼器700,應用一簡化的最小值-總和為基的解碼演算法。再次,重要的是要注意具有分級局部迭代的LDPC分層解碼器700並不限於使用最小值-總和為基的解碼演算法或任何特定的LDPC解碼演算法。LDPC分層解碼器700可能被使用來,例如,取代圖2的LDPC解碼器222。在此範例實施例中,兩個循環被平行處理。解碼器記憶體702儲存軟式LLR輸入值、Q值及軟式LLR輸出P值。解碼器記憶體702係一乒乓記憶體。解碼器記憶體702將連接(或先前)層的Q值704和706分別提供給轉換器710和712,各基於不同的正被處理的循環。在一GF(4)實施例中,Q值704和706各包括一個硬式決策和三個軟式LLR值。
轉換器710和712將Q值從包含一硬式決策和三個軟式LLR值的格式轉換成包含四個軟式LLR值的格式,而兩種格式中的資訊係相等的。加法器714和716分別將循環之各符號的連接層的Q值(由轉換器710和712所轉換)與連接層的R值718和720相加,產生各符號的軟式LLR值722和724。在使用GF(4)之一實施例中,加法器714和716各包含四個加法器,各者適於分別將循環之各符號的連接層的Q值與連接層的R值相加以得到各符號的軟式LLR值722和724。
各符號的軟式LLR值722和724被提供給正規器726和728,其比較軟式LLR值722和724之各者中的四個值來識別各者的最小值,且其將其他三個軟式LLR 值減去最小值,藉此將軟式LLR值722和724之各者正規化到它們各自的最小值。
來自正規器726和728之經正規化的可變節點LLR值被提供給置換(permutation)電路730和732,其重新排列可變節點更新後的值以準備校驗節點更新,並應用由H矩陣之非零元素所指定的置換。在一GF(4)實施例中,Galois域的四個元素0-3為0、1、α、α2。置換電路730和732所應用的置換為Galois域中的乘法。元素2(α)乘以元素1(1)等於α x 1或α,其為元素2。相同的,元素2 x 2=α x α=α2,其為元素3。元素2 x 3=α x α2=1,其為元素1。因此,元素2乘以1、2和3結果為元素2、3和1,其為元素1、2和3的置換。在奇偶校驗計算中,各硬式決策值乘以H矩陣之非零元素(1、2或3),並將結果一起進行互斥或(XOR)運算。
移位器734和736處理置換電路730和732的輸出,將軟式LLR值移位回行順序(column order),而產生軟式LLR輸出738和740作為奇偶校驗計算器所使用的硬式決策(例如,奇偶校驗計算器500所使用的硬式決策502和504)。移位器734和736被用來將列順序移位為行順序,因為LDPC分層解碼器700以列順序處理資料,但為了減去以行順序的輸入LLR來得到外來LLR值,輸出總軟式LLR係以行來排列。差量移位器(delta shifter)742和744亦處理置換電路730和732的輸出,將置換電路730和732的輸出移位目前層和連接層之循環移 位數的差。在一給定行中有不同移位數的循環,而差量移位器742和744補償目前層和連接層的不同移位數。
差量移位器742和744的輸出被提供給轉換器746和748,其將包含一個硬式決策和三個軟式LLR值的格式轉換回包含四個軟式LLR值的格式。接著減法器750和752將轉換器746和748所提供之軟式LLR P值減去目前層之符號的R值754和756以獲得目前層之符號的Q值758和760。目前層之符號的Q值758和760接著在正規器762和764中被正規化,該等正規器比較Q值758和760之各者中的四個值以識別各者的最小值,且Q值758和760之其他三個元素減去最小值,藉此將Q值758和760之各者正規化到它們各自的最小值。經正規化的Q值770和772被提供給解碼器記憶體702,以更新目前層的Q值,並亦提供給定標器(scaler)774和776以獲得新的Q值來執行校驗節點至可變節點更新。
定標器774和776定標來自正規器762和764之經正規化的Q值770和772,產生新的Q值778和780,或絕對軟值,連同Q值正負號782和784。新的Q值778和780以及它們的正負號782和784被提供給校驗節點單元786,其尋找最小值、第二或下一個最小值以及該最小值的索引。新的Q值正負號782和784亦被提供給計算並儲存Q值778和780之目前層的累計正負號的正負號累加器790,並被提供給儲存H矩陣之各個非零元素的正負號值的正負號記憶體792。
終態暫存器794儲存最終狀態,包含最小值、第二最小值、該最小值的索引以及目前層的累計正負號。這些終態值被提供給兩組R產生器795、796、797和798,其基於最終狀態和符號的目前行索引來產生連接層或目前層的R值。R產生器795和796產生用於正被處理之兩個循環的目前層的R值,而R產生器797和798產生用於正被處理之兩個循環的連接層的R值。若目前行索引等於最小值的索引,則R的值為第二最小值。否則,R的值為那層的最小值。R的正負號為將符號的累計正負號和目前正負號進行互斥或(XOR)。
在LDPC分層解碼器700的操作期間,因為Q值和R值係透過解碼器700迭代地循環,奇偶校驗計算器799基於軟式LLR輸出738和740來計算奇偶校驗。若在所有層被處理之後由奇偶校驗計算器799所計算之未滿足的校驗數等於零,則LDPC分層解碼器700已收斂且處理可被中止,而已解碼的資料被提供給控制器705。
分級迭代排程器703決定在全域迭代期間用以在LDPC分層解碼器700中執行的完全和分級局部解碼迭代數,其係基於在外部偵測器(例如,頻道偵測器204或210)中的處理時間。在某些實施例中,分級迭代排程器703分配將接近偵測器處理時間而不超過它的完全和分級局部解碼迭代數。在某些其他實施例中,分級迭代排程器703可能允許解碼器處理時間稍微超過偵測器處理時間。分級迭代排程器703可能造成分級局部解碼迭代在全域局 部解碼迭代的開始、中間或結束時被執行。分級迭代排程器703可能預先或是在全域解碼迭代的開始決定用以在LDPC分層解碼器700中執行的完全和分級局部解碼迭代數,或可能在各局部解碼迭代的開始時判斷是否有足夠的解碼器處理時間保留給完全或分級局部解碼迭代而不超過偵測器處理時間。
翻到圖8,流程圖800示出依據本發明之某些實施例,使用具有分級局部迭代之LDPC解碼器的資料偵測和解碼操作。按照流程圖800,在一資料輸入處接收一資料集或區段(sector)。(方塊802)當資料偵測器可用時(方塊804),選擇下一個處理將在資料偵測器中被處理的資料區段。(方塊806)這可能是來自資料輸入的新資料區段,或是將被以另一個全域迭代處理之來自資料解碼器輸出的已解碼的資料區段。對已選擇的資料區段執行資料偵測演算法。(方塊810)確定用於該資料區段的偵測器處理時間。(方塊812)偵測器處理時間可能以時鐘週期或任何其他的測量單位來測量,或是可能相關預期的或標準的處理時間而被指定。偵測器處理時間可能每一資料集被計算一次,或是每次該資料集通過偵測器時被計算。
平行於資料偵測處理,可能執行資料解碼處理,而資料集以乒乓形式在資料偵測器和資料解碼器之間交替。當資料解碼器可用時(方塊820),選擇將被解碼之來自資料偵測器輸出的一資料集。(方塊822)在某些實施例中,資料集被暫存在中央乒乓緩衝器中的資料偵測器和 資料解碼器之間。決定將在資料解碼器中執行的完全和部分局部解碼迭代數(方塊824),以減少解碼器中未使用的處理週期,同時防止用於相同資料區段之解碼器處理時間超過偵測器處理時間。可能在解碼之前決定完全和部分局部解碼迭代數,或是偵測器處理時間可被指定給解碼器,使得解碼器可以正常地處理資料集直到解碼器中的再一個完全迭代導致解碼器處理時間超過該區段的偵測器處理時間。在這一點上,解碼器可執行一部分迭代,如果那將不會導致解碼器處理時間超過偵測器處理時間。在資料解碼器中對已選擇的資料區段執行已決定的完全和部分局部解碼迭代數。(方塊826)輸出已偵測/已解碼之資料集(方塊830),若資料收斂或者若已對資料集執行全域迭代的最大數。在輸出資料集之後將它從偵測器/解碼器處理系統清除,以提供空間給來自資料輸入的新資料區段。
雖然本文所揭示之具有分級局部迭代的LDPC解碼器並不限於任何特定應用,但圖9和10中呈現應用的一些範例,其受益於本發明之實施例。翻到圖9,依據本發明之某些實施例示出一儲存系統900,包含一讀取頻道電路902,其具有一具有分級局部迭代的LDPC解碼器。儲存系統900可能為,例如,硬碟驅動器。儲存系統900亦包括前置放大器904、介面控制器906、硬碟控制器910、馬達控制器912、轉軸馬達914、磁碟盤916、以及讀/寫頭920。介面控制器906控制資料至/自磁碟盤916的尋址和時間。磁碟盤916上的資料由磁信號組組成,當 讀/寫頭組件920被正確地定位在磁碟盤916上時,磁信號組可由組件所偵測。在一實施例中,磁碟盤916包括依據縱向或垂直記錄架構所記錄的磁信號。
在典型讀取操作中,藉由馬達控制器912將讀/寫頭組件920準確地定位在磁碟盤916上所欲的資料軌道上。馬達控制器912定位有關磁碟盤916之讀/寫頭組件920,並且藉由在硬碟控制器910的指示下移動讀/寫頭組件至磁碟盤916上之正確的資料軌道而驅動轉軸馬達914。轉軸馬達914以一決定的旋轉速率(RPMs)旋轉磁碟盤916。一旦讀/寫頭組件920被定位相鄰正確的資料軌道,當磁碟盤916藉由轉軸馬達914而旋轉時,代表磁碟盤916上之資料的磁信號由讀/寫頭組件920所感測。感測到的磁信號被提供作為連續的、微小的類比信號,代表磁碟盤916上的磁性資料。此微小的類比信號由讀/寫頭組件920透過前置放大器904被轉移到讀取頻道電路902。前置放大器904可操作來放大存取自磁碟盤916的微小類比信號。反過來,讀取頻道電路902解碼和數位化所接收到的類比信號以重現原先寫至磁碟盤916的資訊。此資料作為讀取資料922被提供給接收電路。作為解碼接收到之資訊的一部分,讀取頻道電路902使用具有分級局部迭代的LDPC解碼器來處理所接收到的信號。可實作此種具有分級局部迭代的LDPC解碼器,相符於上面所揭示之相關於圖2-7者。在某些情況中,可實作具有分級局部迭代的LDPC解碼,相符於上面所揭示之相關於圖8的流 程圖。寫入操作基本上與前面的讀取操作相反,而寫入資料924被提供給讀取頻道電路902。此資料然後被編碼並寫入磁碟盤916。應注意的是,可以軟體或韌體來實作儲存系統900的各種功能或區塊,而以硬體來實作其他的功能或區塊。
儲存系統900可被整合進較大的儲存系統,諸如,例如,RAID(廉價磁碟冗餘陣列或獨立磁碟冗餘陣列)為基的儲存系統。此種RAID儲存系統透過冗餘提高了穩定性和可靠度,結合多個磁碟為一邏輯單元。資料可依據多種演算法被分散在RAID儲存系統中所包含的數個磁碟,並且由一作業系統所存取,如同其為單一磁碟一般。例如,資料可被鏡像到RAID儲存系統中的多個磁碟,或者以可以一些技術而被切片並分佈在多個磁碟。如果RAID儲存系統中的少數磁碟故障或變得不可用,可依據來自RAID儲存系統中其他磁碟之資料的剩餘部分,使用錯誤校正技術來重現遺失的資料。RAID儲存系統中的磁碟可為,但不限於,諸如儲存系統900的單一儲存系統,且可位於彼此靠近或是更廣地分佈以提高安全性。在寫入操作中,寫入資料被提供給控制器,其例如藉由鏡像或是條串化寫入資料而將寫入資料儲存到各磁碟。在讀取操作中,控制器從碟磁擷取資料。然後控制器產生結果的讀取資料,如同RAID儲存系統為一單一磁碟。
翻到圖10,依據本發明之各種實施例示出一資料傳輸系統1000,包括具有一具有分級局部迭代之 LDPC解碼器的接收器1004。資料傳輸系統1000包括發送器1002,其可操作來透過傳輸介質1006發送已編碼的資訊,如於本技術領域中所習知。接收器1004從傳輸介質1006接收已編碼的資料。接收器1004處理接收到的輸入以產生原先被發送的資料。作為處理接收到之資訊的一部分,接收器1004使用具有分級局部迭代之LDPC解碼器來解碼接收到的資料。可實作此種具有分級局部迭代的LDPC解碼器,相符於上面所揭示之相關於圖2-7者。在某些情況中,可實作具有分級局部迭代的LDPC解碼,相符於上面所揭示之相關於圖8的流程圖。
應注意的是,上述應用中所討論的各種區塊可與其他功能一起在積體電路中被實作。此種積體電路可包括一給定區塊、系統或電路的所有功能、或是該區塊、系統或電路的一部分功能。此外,該等區塊、系統或電路的元素可跨多個積體電路而被實作。此種積體電路可為本技術領域中習知的任何型態的積體電路,包括但不限於,單晶片積體電路、倒裝晶片積體電路、多晶片模組積體電路、及/或混合信號積體電路。亦應注意的是,此處所討論的該等區塊、系統或電路的各種功能可以軟體或韌體來實作。在某些此種情況中,整個系統、區塊或電路可使用其軟體或韌體等效物來實作。在其他情況中,一給定系統、區塊或電路的一個部分可以軟體或韌體來實作,而其他部分由硬體來實作。
綜上所述,本發明提供用於具分級局部迭代 之LDPC解碼器之新穎的系統、裝置、方法及配置。雖然上面已經給出本發明之一個或多個實施例的詳細說明,在不改變本發明之精神下,各種替換、修改和等效物對於熟習本技術領域之人士係顯而易見的。因此,上述說明不應被視為限制本發明之範圍,本發明之範圍係由隨附之申請專利範圍所定義。
900‧‧‧儲存系統
902‧‧‧讀取頻道電路
904‧‧‧前置放大器
906‧‧‧介面控制器
910‧‧‧硬碟控制器
912‧‧‧馬達控制器
914‧‧‧轉軸馬達
916‧‧‧磁碟盤
920‧‧‧讀/寫頭
922‧‧‧讀取資料
924‧‧‧寫入資料

Claims (20)

  1. 一種用於處理資料的裝置,包含:一資料偵測器,可操作以偵測一資料集中的資料值;及一低密度奇偶校驗解碼器,可操作以對該資料集迭代地執行複數個解碼迭代,其中該複數個解碼迭代包含完全解碼迭代和分級解碼迭代之選擇,用以平衡解碼器處理時間和偵測器處理時間。
  2. 如申請專利範圍第1項之裝置,其中該低密度奇偶校驗解碼器可操作以決定該完全解碼迭代的數目和該分級解碼迭代的數目,其可被包括在該完全解碼迭代和分級解碼迭代之選擇中,而該解碼器處理時間不會超過該偵測器處理時間。
  3. 如申請專利範圍第2項之裝置,其中該低密度奇偶校驗解碼器可操作以在該完全解碼迭代和分級解碼迭代之選擇中包括盡可能多的該完全解碼迭代和該分級解碼迭代,而該解碼器處理時間不會超過該偵測器處理時間。
  4. 如申請專利範圍第1項之裝置,進一步包含一分級迭代控制器,可操作以將該偵測器處理時間從該資料偵測器通訊至該低密度奇偶校驗解碼器。
  5. 如申請專利範圍第1項之裝置,其中該資料偵測器包含一軟式輸出維特比(Viterbi)演算法偵測器。
  6. 如申請專利範圍第1項之裝置,其中該解碼器處理時間和該偵測器處理時間針對一相同資料集係平衡的。
  7. 如申請專利範圍第1項之裝置,該解碼器處理時間和該偵測器處理時間針對在該資料偵測器和該低密度奇偶校驗解碼器中同時被處理的不同資料集係平衡的。
  8. 如申請專利範圍第1項之裝置,其中該低密度奇偶校驗解碼器包含一非分層解碼器,且其中該分級解碼迭代包含一局部解碼迭代,其中在該局部解碼迭代期間處理用於該非分層解碼器之一H矩陣中的複數行的一子集。
  9. 如申請專利範圍第1項之裝置,其中該低密度奇偶校驗解碼器包含一分層解碼器,且其中該分級解碼迭代包含一局部解碼迭代,其中在該局部解碼迭代期間處理用於該分層解碼器之一H矩陣中的複數層的一子集。
  10. 如申請專利範圍第1項之裝置,其中該低密度奇偶校驗解碼器可操作以在該分級解碼迭代之一迭代中產生校驗節點至可變節點訊息,其係基於在該分級解碼迭代之該一迭代中所產生的新資料和在該完全解碼迭代之一迭代中所產生的舊資料的結合。
  11. 如申請專利範圍第1項之裝置,其中該裝置被實作為一積體電路。
  12. 如申請專利範圍第1項之裝置,其中該裝置被納入一儲存裝置中。
  13. 如申請專利範圍第12項之裝置,其中該儲存裝置包含一獨立磁碟冗餘陣列。
  14. 如申請專利範圍第1項之裝置,其中該裝置被納入一傳輸系統中。
  15. 一種用於處理資料的方法,包含:在一資料偵測器中偵測一資料集的資料值;在該資料偵測器中決定用於該資料集的偵測器處理時間;及在一低密度奇偶校驗解碼器中對該資料集執行複數個局部解碼迭代,其中該複數個局部解碼迭代包含完全解碼迭代和分級解碼迭代之選擇,用以平衡解碼器處理時間和該偵測器處理時間。
  16. 如申請專利範圍第15項之方法,進一步包含在該複數個局部解碼迭代中包括盡可能多的該完全解碼迭代和該分級解碼迭代,而該解碼器處理時間不會超過該偵測器處理時間。
  17. 如申請專利範圍第15項之方法,其中該低密度奇偶校驗解碼器包含一非分層解碼器,且其中執行該分級解碼迭代之一迭代包含在該局部解碼迭代期間處理用於該非分層解碼器之一H矩陣中的複數行的一子集。
  18. 如申請專利範圍第15項之方法,其中該低密度奇偶校驗解碼器包含一分層解碼器,且其中執行該分級解碼迭代之一迭代包含在該局部解碼迭代期間處理用於該分層解碼器之一H矩陣中的複數層的一子集。
  19. 如申請專利範圍第15項之方法,其中執行該分級解碼迭代之一迭代包含在該分級解碼迭代之該一迭代中產生校驗節點至可變節點訊息,其係基於在該分級解碼迭代之該一迭代中所產生的新資料和在該完全解碼迭代之一迭 代中所產生的舊資料的結合。
  20. 一種儲存系統,包含:一儲存媒體,維護一資料集;一讀/寫頭組件,可操作以感測該儲存媒體上的該資料集;及一用於處理該資料集的裝置,包含:一資料偵測器,可操作以偵測該資料集中的資料值;及一低密度奇偶校驗解碼器,可操作以對該資料集迭代地執行複數個解碼迭代,其中該複數個解碼迭代包含完全解碼迭代和分級解碼迭代之選擇,用以平衡解碼器處理時間和偵測器處理時間。
TW102126106A 2012-09-22 2013-07-22 具分級局部迭代之ldpc(低密度奇偶校驗)解碼器 TW201417514A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/624,927 US20140089757A1 (en) 2012-09-22 2012-09-22 LDPC Decoder With Fractional Local Iterations

Publications (1)

Publication Number Publication Date
TW201417514A true TW201417514A (zh) 2014-05-01

Family

ID=48874215

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102126106A TW201417514A (zh) 2012-09-22 2013-07-22 具分級局部迭代之ldpc(低密度奇偶校驗)解碼器

Country Status (6)

Country Link
US (1) US20140089757A1 (zh)
EP (1) EP2712090A3 (zh)
JP (1) JP2014064269A (zh)
KR (1) KR20140039125A (zh)
CN (1) CN103684475A (zh)
TW (1) TW201417514A (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200064B1 (en) * 2014-03-18 2019-02-05 Marvell International Ltd. Systems and method for bit-flipping decoders with partial-column processing, ordering and scheduling
KR102213624B1 (ko) * 2014-04-14 2021-02-08 삼성전자주식회사 비이진 ldpc 부호를 위한 복호화 방법, 장치 및 알고리즘
US9842047B2 (en) * 2014-11-24 2017-12-12 Seagate Technology Llc Non-sequential write for sequential read back
US9785504B2 (en) 2015-11-23 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for overlapping parity sectors
US10050643B2 (en) * 2016-12-14 2018-08-14 Via Technologies, Inc. Low-density parity-check apparatus and operation method thereof
US10263640B2 (en) 2017-04-04 2019-04-16 Seagate Technology Llc Low density parity check (LDPC) decoder with pre-saturation compensation
US10171110B1 (en) 2017-07-03 2019-01-01 Seagate Technology Llc Sequential power transitioning of multiple data decoders
US10447303B2 (en) * 2017-12-20 2019-10-15 Qualcomm Incorporated Low-density parity check (LDPC) incremental parity-check matrix rotation
KR20200019046A (ko) * 2018-08-13 2020-02-21 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
US10644725B1 (en) * 2018-09-21 2020-05-05 Xilinx, Inc. Interleaved data block processing in low-density parity-check (LDPC) encoder and decoder
US10892777B2 (en) 2019-02-06 2021-01-12 Seagate Technology Llc Fast error recovery with error correction code (ECC) syndrome weight assist
CN110011670B (zh) * 2019-03-27 2023-04-28 深圳忆联信息系统有限公司 基于ssd数据保护的ldpc译码方法和装置
US11218166B1 (en) * 2021-05-03 2022-01-04 Beijing Tenafe Electronic Technology Co., Ltd. Early convergence for decoding of LDPC codes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230312B1 (en) * 2008-01-09 2012-07-24 Marvell International Ltd. Iterative decoder memory arrangement
CN102460977A (zh) * 2009-05-27 2012-05-16 诺沃尔赛特有限公司 具有迭代调度的ldpc码迭代解码
US8499226B2 (en) * 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding

Also Published As

Publication number Publication date
EP2712090A3 (en) 2014-05-07
EP2712090A2 (en) 2014-03-26
JP2014064269A (ja) 2014-04-10
US20140089757A1 (en) 2014-03-27
KR20140039125A (ko) 2014-04-01
CN103684475A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
TW201417514A (zh) 具分級局部迭代之ldpc(低密度奇偶校驗)解碼器
US9015550B2 (en) Low density parity check layer decoder for codes with overlapped circulants
US9459956B2 (en) Data decoder with trapping set flip bit mapper
US8566666B2 (en) Min-sum based non-binary LDPC decoder
US10367526B2 (en) Irregular low density parity check processing system with non-uniform scaling
US9015547B2 (en) Multi-level LDPC layered decoder with out-of-order processing
TWI604698B (zh) 具有錯誤校正處置之低密度同位檢查解碼器
US8930788B2 (en) LDPC decoder with fractional unsatisfied check quality metric
US8656249B2 (en) Multi-level LDPC layer decoder
US8756478B2 (en) Multi-level LDPC layer decoder
US9130590B2 (en) Non-binary layered low density parity check decoder
US20130275827A1 (en) Multi-Section Non-Binary LDPC Decoder
US20130139023A1 (en) Variable Sector Size Interleaver
CN103187979B (zh) 基于混合域fft的非二进制ldpc解码器
US20160020783A1 (en) Low Density Parity Check Decoder With Relative Indexing
US20140168811A1 (en) Irregular Low Density Parity Check Decoder With Low Syndrome Error Handling
US9461671B1 (en) Method and apparatus for power conservation in LDPC decoding
TW201503603A (zh) 最小值-總和爲基之混合式非二進制低密度同位檢查解碼器
US20130139022A1 (en) Variable Sector Size LDPC Decoder
US9048867B2 (en) Shift register-based layered low density parity check decoder
US20140082449A1 (en) LDPC Decoder With Variable Node Hardening
US20140229806A1 (en) Systems and Methods for Distributed Low Density Parity Check Decoding
US20160191079A1 (en) Low Dynamic Power Check Node Processor For Low Density Parity Check Decoder
US9214959B2 (en) Systems and methods for skip layer data decoding
US8949696B2 (en) Systems and methods for trapping set disruption