TWI705667B - 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置 - Google Patents

產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置 Download PDF

Info

Publication number
TWI705667B
TWI705667B TW108133930A TW108133930A TWI705667B TW I705667 B TWI705667 B TW I705667B TW 108133930 A TW108133930 A TW 108133930A TW 108133930 A TW108133930 A TW 108133930A TW I705667 B TWI705667 B TW I705667B
Authority
TW
Taiwan
Prior art keywords
low
density parity
check code
trap set
structure information
Prior art date
Application number
TW108133930A
Other languages
English (en)
Other versions
TW202114358A (zh
Inventor
郭軒豪
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW108133930A priority Critical patent/TWI705667B/zh
Priority to CN202010080402.2A priority patent/CN112543028B/zh
Priority to US16/849,261 priority patent/US11218168B2/en
Application granted granted Critical
Publication of TWI705667B publication Critical patent/TWI705667B/zh
Publication of TW202114358A publication Critical patent/TW202114358A/zh

Links

Images

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/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • 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/1157Low-density generator matrices [LDGM]
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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
    • 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/1142Decoding using trapping sets
    • 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/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • 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
    • H03M13/17Burst error correction, e.g. error trapping, Fire 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/31Coding, 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 coding for error detection or correction and efficient use of the spectrum

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

一種產生具符合所需之錯誤基數的低密度奇偶校驗碼的方法,包含利用奇偶校驗產生電路產生低密度奇偶校驗碼、利用檢測電路根據資料庫中的複數陷阱集共用結構檢測低密度奇偶校驗碼並產生至少一陷阱集共用結構資訊、利用驗證電路根據低密度奇偶校驗碼分別與各陷阱集共用結構資訊進行重要性取樣模擬以得到對應的估算錯誤基數、利用驗證電路將各估算錯誤基數與預期錯誤基數進行比較,及於所有估算錯誤基數皆小於預期錯誤基數時利用驗證電路輸出低密度奇偶校驗碼。

Description

產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置
本發明係關於低密度奇偶校驗(low-density parity-check,LDPC)技術,特別是一種可產生具符合所需之錯誤基數(error floor)的低密度奇偶校驗碼(LDPC code)的方法及裝置。
隨著數位通訊與儲存設備系統對高可靠度資料的傳輸需求之增加,各種錯誤更正的技巧被廣泛地應用於此些系統中。近年來,尤以具有高度錯誤更正能力的低密度奇偶校驗碼(low-density parity-check code,LDPC code)備受矚目。
一般而言,錯誤基數(error floor)越低的低密度奇偶校驗碼,其可靠度越高。因此,驗證低密度奇偶校驗碼的錯誤基數(error floor)是確保可靠度的一個重要方式。然而,傳統的驗證方法所能驗得的錯誤基數不夠低,例如透過電腦模擬大約僅能驗到10 -6的錯誤基數。並且,若想要驗證到很低的錯誤基數,例如低於10 -16的錯誤基數,甚至需耗費數個月至數年的時間。
在一實施例中,一種產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法,包含:利用奇偶校驗產生電路產生低密度奇偶校驗碼,根據資料庫中的複數陷阱集共用結構對低密度奇偶校驗碼進行檢測,並產生低密度奇偶校驗碼的至少一陷阱集共用結構資訊;利用驗證電路根據低密度奇偶校驗碼分別與各陷阱集共用結構資訊進行重要性取樣模擬,以得到對應於各陷阱集共用結構資訊的估算錯誤基數;利用驗證電路將各估算錯誤基數與預期錯誤基數進行比較;及於所有估算錯誤基數皆小於或等於預期錯誤基數時,利用驗證電路輸出低密度奇偶校驗碼。其中,各陷阱集共用結構資訊包含此些陷阱集共用結構中之一者、陷阱集共用結構於低密度奇偶校驗碼中的出現數量以及出現位置,且各陷阱集共用結構資訊所包含的陷阱集共用結構互不相同。
在一實施例中,一種用以產生具有符合所需之錯誤基數的低密度奇偶校驗碼的裝置,包含資料庫、奇偶校驗產生電路、檢測電路與驗證電路。資料庫用以儲存複數陷阱集共用結構。奇偶校驗產生電路用以產生低密度奇偶校驗碼。檢測電路用以根據此些陷阱集共用結構對低密度奇偶校驗碼進行檢測,並產生低密度奇偶校驗碼的至少一陷阱集共用結構資訊。驗證電路用以根據低密度奇偶校驗碼分別與各陷阱集共用結構資訊進行重要性取樣模擬,以得到對應於各陷阱集共用結構資訊的估算錯誤基數,並將各估算錯誤基數與預期錯誤基數進行比較,且於所有估算錯誤基數小於或等於預期錯誤基數時,輸出低密度奇偶校驗碼。其中,各陷阱集共用結構資訊包含此些陷阱集共用結構中之一者、陷阱集共用結構於低密度奇偶校驗碼中的出現數量以及低密度奇偶校驗碼中構成第二陷阱集共用結構的出現位置,且各陷阱集共用結構資訊所包含的陷阱集共用結構互不相同。
為使本發明之實施例之上述目的、特徵和優點能更明顯易懂,下文配合所附圖式,作詳細說明如下。
第1圖為產生具有符合所需之錯誤基數之低密度奇偶校驗碼的裝置之一實施例的方塊示意圖,且第2圖為產生具有符合所需之錯誤基數之低密度奇偶校驗碼的方法之一實施例的流程示意圖。請參閱第1圖與第2圖,裝置100可根據本發明任一實施例之產生方法自動產生出符合所需之錯誤基數(error floor)的低密度奇偶校驗碼(low-density parity-check code,LDPC code),以提供具有高可靠度之低密度奇偶校驗碼供後續的編碼或解碼等使用。
在一些實施例中,裝置100可包含資料庫110、奇偶校驗產生電路120、檢測電路130以及驗證電路140。檢測電路130耦接於資料庫110與奇偶校驗產生電路120,且驗證電路140耦接於奇偶校驗產生電路120與檢測電路130。
資料庫110用以儲存複數陷阱集共用結構(trapping set core)T 1- T n。其中,n為大於1之正整數。並且,此些陷阱集共用結構T 1- T n的結構態樣彼此互不相同,如第1圖中所示,但此並非用以限定本發明。
在一些實施例中,此些陷阱集共用結構T 1- T n可藉由對大量已知結構的低密度奇偶校驗碼分別預先進行高可靠度錯誤(High Reliability Error,HRE)檢驗之方式來取得。在一實施態樣中,可利用場可程式閘陣列(FPGA)於低密度奇偶校驗碼的隨機位置上添加高可靠度錯誤,以蒐集其錯誤態樣(error pattern)後,再根據蒐集到的錯誤態樣判斷添加有高可靠度錯誤之位置是否為此低密度奇偶校驗碼的陷阱集(trapping set)。接續,對陷阱集進行結構分析,以找出最大的共用結構(即,陷阱集共用結構),但本發明並非以此為限。在一些實施態樣中,可藉由將隨機位置的軟資訊(soft information)中的符號位元(sign bit)反相,且將軟資訊中一或多個的可靠度位元(reliability bit(s))改為“1”之方式來形成高可靠度錯誤。
在產生方法之一實施例中,裝置100可先利用奇偶校驗產生電路120產生出低密度奇偶校驗碼LDPC1(步驟S10)。之後,裝置100再利用檢測電路130根據資料庫110中所存的複數陷阱集共用結構T 1- T n對奇偶校驗產生電路120於步驟S10所產生的低密度奇偶校驗碼LDPC1進行檢測,以確認此低密度奇偶校驗碼LDPC1中是否出現如此些陷阱集共用結構T 1- T n中之至少一種的陷阱集共用結構,並且檢測電路130可根據所檢測到的至少一種陷阱集共用結構產生相關於此低密度奇偶校驗碼LDPC1的至少一陷阱集共用結構資訊I 1-I m(步驟S20)。其中,m為大於1之正整數且小於等於n。各陷阱集共用結構資訊I 1-I m包含此些陷阱集共用結構T 1- T n中之一者、此陷阱集共用結構於低密度奇偶校驗碼LDPC1中的出現數量和出現位置。並且,各陷阱集共用結構資訊I 1-I m所包含的陷阱集共用結構彼此互不相同。接續,裝置100可利用驗證電路140根據低密度奇偶校驗碼LDPC1分別與於步驟S20中所得的各個陷阱集共用結構資訊I 1-I m進行重要性取樣(Importance Sampling,IS)模擬,以得到對應於各陷阱集共用結構資訊I1-Im的一估算錯誤基數E 1-E m(步驟S30)。之後,裝置100可再利用驗證電路140將於步驟S30中所得到的各個估算錯誤基數E 1-E m與一預期錯誤基數進行比較(步驟S40)。並且,裝置100可於步驟S40之比較結果為所有的估算錯誤基數E 1-E m小於或等於預期錯誤基數時,利用驗證電路140輸出此低密度奇偶校驗碼LDPC1(步驟S50)。而於步驟S40之比較結果中,若是有任一個陷阱集共用結構資訊I 1-I m的估算錯誤基數E 1-E m大於預期錯誤基數時,裝置100則返回執行步驟S10,例如,產生致能訊號SE給奇偶校驗產生電路120,以利用奇偶校驗產生電路120產生出另一個低密度奇偶校驗碼來重新進行後續檢測。
於此,預期錯誤基數可根據需求的可靠度進行設置。當設置的預期錯誤基數越低時,裝置100輸出的低密度奇偶校驗碼LDPC1可具有更高的可靠度。並且,相較於已往需要耗費長達數個月至數年的時間來獲取符合低的錯誤基數(例如10 -16FER(或BER)、10 -20FER(或BER)等)的低密度奇偶校驗碼LDPC1,採用本發明任一實施例之產生方法可更加快速地獲取。
在步驟S10之一實施例中,奇偶校驗產生電路120可利用類循環低密度奇偶校驗碼(Quasi-Cyclic LDPC code,QC-LDPC code)的建碼方式產生出低密度奇偶校驗碼LDPC1。舉例而言,請參閱第3圖,低密度奇偶校驗碼LDPC1的奇偶校驗矩陣H1可由i*j個方陣A 11-A ij所構成,且每一個方陣A 11-A ij是大小為p*p的循環方陣。其中i、j、p分別為大於1的正整數。於此,各方陣A 11-A ij可分別以相應的代表數字來表示。各代表數字小於或等於p,且各代表數字是指各方陣A 11-A ij的第一列中第一個“1”的出現位置。例如,當方陣A 11的代表數字為8時,表示方陣A 11的第一列中第一個“1”是出現在第八行。因此,奇偶校驗產生電路120可以亂數方式來填入各方陣A 11-A ij的代表數字,以隨機產生出低密度奇偶校驗碼LDPC1的奇偶校驗矩陣H1。但本發明並非以此為限,奇偶校驗產生電路120可利用任何合適的建碼方式來產生低密度奇偶校驗碼LDPC1。
在步驟S20之一實施例中,檢測電路130可依序根據各陷阱集共用結構T 1-T n的結構態樣掃測低密度奇偶校驗碼LDPC1,並依據掃測結果產生相應的陷阱集共用結構資訊I 1-I m。於此,檢測電路130可包含行選擇器131、列選擇器132與檢測模組133,且檢測模組133耦接於行選擇器131與列選擇器132,如第1圖所示。
第4圖為第2圖中步驟S20之一實施例的流程示意圖。請參閱第1圖至第4圖,在步驟S20之一實施例中,檢測電路130可利用行選擇器131從低密度奇偶校驗碼LDPC1中的多個行中選擇出第一數量的行,並利用列選擇器132從低密度奇偶校驗碼LDPC1中的多個列中選擇出第二數量的列(步驟S21)。之後,檢測電路130可利用檢測模組133去檢測在行選擇器131所選擇的第一數量的行和列選擇器132所選擇的第二數量的列上是否有出現陷阱集共用結構T 1-T n中的一者(步驟S22),並且於檢測完被選擇的第一數量的行和第二數量的列後,檢測電路130可判斷是否已掃測完整個低密度奇偶校驗碼LDPC1。如果尚未掃測完,則返回至步驟S21,以致使行選擇器131與列選擇器132分別重新選擇出第一數量的行和第二數量的列,並使得檢測模組133可接續對新選擇出的第一數量的行和第二數量的列進行檢測。如此重複循環,直至檢測模組133將由行選擇器131所選擇的第一數量的行與列選擇器132所選擇的第二數量的列所構成的所有組合皆掃測過後(即,掃測完整個低密度奇偶校驗碼LDPC1),檢測電路130便可利用檢測模組133根據出現於低密度奇偶校驗碼LDPC1中的各種陷阱集共用結構、出現次數與出現位置產生相應的陷阱集共用結構資訊(步驟S23)。
在步驟S21之一實施例中,第一數量可相同於第二數量。以下,以第一數量與第二數量皆為3為例來進行說明,但其數量並非以此為限。為了不遺漏任一種組合,行選擇器131與列選擇器132可分別以循序方式來選擇第一數量的行與第二數量的列。舉例而言,行選擇器131可依次選擇第1行、第2行與第3行,第1行、第2行與第4行,…第1行、第2行與最後一行,第1行、第3行與第4行,第1行、第3行與第5行,…第1行、第3行與最後一行,以此類推。同樣地,列選擇器132可依次選擇第1列、第2列與第3列,第1列、第2列與第4列,…第1列、第2列與最後一列,第1列、第3列與第4列,第1列、第3列與第5列,…第1列、第3列與最後一列,以此類推。並且,檢測電路130可先固定住列選擇器132的選擇,並待行選擇器131已選擇過所有行後,再致使列選擇器132改變選擇,以完整掃過整個低密度奇偶校驗碼LDPC1。
在步驟S22之一實施例中,檢測模組133可根據低密度奇偶校驗碼LDPC1中位於行選擇器131所選擇的第一數量的行與列選擇器132所選擇的第二數量的列上的多個節點進行計算,並根據計算結果判斷是否有出現陷阱集共用結構T 1-T n。由於本技術領域的通常知識者熟知如何確認低密度奇偶校驗碼LDPC1中是否存在各種的陷阱集共用結構T 1-T n的態樣,因此,以下,簡單以檢測模組133如何確認低密度奇偶校驗碼LDPC1中是否存在呈現三角形的陷阱集共用結構T 1(如第1圖所示)為例來進行說明,但此陷阱集共用結構T 1的形態並非用以限制本發明。
在一實施態樣中,檢測模組133可先從九個節點中任選出六個節點。之後,檢測模組133可以其中一個節點為起點,依序走完其他五個節點且回到起點,並依此路徑依序將各節點的代表數字以一正一負的關係相加。若所得的結果為零時,表示此六個節點可形成一種呈現三角形的陷阱集共用結構T 1,而若所得的結果不為零時,則表示不形成陷阱集共用結構T 1。舉例而言,如第5圖所示,在行選擇器131所選擇的第a行、第b行、第c行以及列選擇器132所選擇的第s列、第t列、第u列上共存在九個節點B sa、B sb、B sc、B ta、B tb、B tc、B ua、B ub、B uc,並且檢測模組133可選擇以節點B sa、B sb、B ta、B tc、B ub、B uc來進行運算。於此,檢測模組133可以節點B sa為起點,並沿著節點B sb、節點B ub、節點B uc、節點Btc、節點B ta之順序回到節點B sa以完成一圈,並依此路徑依序根據此些節點以一正一負的關係產生一關係式:節點B sa-節點B sb+節點B ub-節點B uc+節點B tc-節點B ta。當此關係式的所得結果為零時,表示形成了陷阱集共用結構T 1,此時檢測模組133可記錄下出現了陷阱集共用結構T 1、陷阱集共用結構T 1的出現個數以及形成陷阱集共用結構T 1的此些節點B sa、B sb、B ta、B tc、B ub、B uc之位置。
在步驟S23之一實施例中,待步驟S21與步驟S22之重複循環直至檢測模組133完整掃測過整個低密度奇偶校驗碼LDPC1後,檢測模組133便可根據記錄到的所有結果進行統整並產生出相應的陷阱集共用結構資訊I 1-I m,且各陷阱集共用結構資訊I 1-I m包含了陷阱集共用結構的種類、此種類的陷阱集共用結構的出現個數以及出現位置等訊息。其中,出現位置即為構成此陷阱集共用結構的多個節點的位置。
舉例而言,假設檢測電路130檢測到低密度奇偶校驗碼LDPC1中存在陷阱集共用結構T 1、T 2、T 3共三種時,檢測電路130可產生三個對應的陷阱集共用結構資訊I 1、I 2、I 3。其中,陷阱集共用結構資訊I 1包含陷阱集共用結構T 1、陷阱集共用結構T 1於低密度奇偶校驗碼LDPC1中的出現數量與出現位置。陷阱集共用結構資訊I 2包含陷阱集共用結構T 2、陷阱集共用結構T 2於低密度奇偶校驗碼LDPC1中的出現數量與出現位置。並且,陷阱集共用結構資訊I 3包含陷阱集共用結構T 3、陷阱集共用結構T 3於低密度奇偶校驗碼LDPC1中的出現數量與出現位置。
在步驟S20之另一實施例中,各陷阱集共用結構T 1-T n具有對應的結構計算式,且檢測電路130可直接根據各陷阱集共用結構T 1-T n的結構計算式分別對低密度奇偶校驗碼LDPC1進行計算,以根據計算結果判斷低密度奇偶校驗碼LDPC1中是否存在陷阱集共用結構T 1-T n中的至少一種,並且於判斷陷阱集共用結構T 1-T n中的至少一種存在時產生相應的陷阱集共用結構資訊I 1-I m
第6圖為第2圖中步驟S30之一實施例的流程示意圖。請參閱第1圖至第6圖,在步驟S30之一實施例中,驗證電路140可包含碼字產生模組141、雜訊產生模組142、解碼器143、運算器144以及處理器145。雜訊產生模組142耦接於碼字產生模組141與解碼器143,且運算器144耦接於碼字產生模組141、解碼器143與處理器145。
於此,驗證電路140可先利用碼字產生模組141根據奇偶校驗產生電路120產生的低密度奇偶校驗碼LDPC1和訊息M 1產生出第一碼字C 1(步驟S31)。之後,驗證電路140再利用雜訊產生模組142分別根據各陷阱集共用結構資訊I 1-I m於低密度奇偶校驗碼LDPC1中的陷阱集共用結構之出現位置上添加具有第一值的第一雜訊,並且在其餘位置上添加具有第二值的第二雜訊,以產生相應於各陷阱集共用結構資訊I 1-I m的第二碼字C 21-C 2m(步驟S32)。其中,第二值大於第一值。接續,驗證電路140便可利用解碼器143分別根據步驟S32中相應於各陷阱集共用結構資訊I 1-I m的第二碼字C 21-C 2m進行解碼,並分別產生對應的解碼結果R 1-R m(步驟S33)。之後,驗證電路140可利用運算器144根據第一碼字C 1分別和各解碼結果R 1-R m進行運算,以得到各解碼結果R 1-R m相應的模擬錯誤基數(步驟S34)。於此,因步驟S32所添加的第一雜訊與第二雜訊(尤其是添加於陷阱集共用結構之出現位置上的第一雜訊),錯誤率將會被強行提升,使得驗證電路140可更快速地得到各個模擬錯誤基數。並且,在有了各模擬錯誤基數之後,驗證電路140便可利用運算器144根據各模擬錯誤基數和第一值與第二值間的比值去反推出相應於各陷阱集共用結構資訊I 1-I m的估算錯誤基數E 1-E m(步驟S35)。如此一來,驗證電路140僅需耗費較短的時間去驗證到數值較高的各模擬錯誤基數,便可得到相當於去驗證到具有較低數值之估算錯誤基數E 1-E m的結果,而省下大量的驗證時間。
在步驟S31之一實施例中,碼字產生模組141可包含訊息產生器1411和編碼器1412,且訊息產生器1411耦接於編碼器1412。於此,訊息產生器1411可透過亂數方式產生訊息M 1。並且,編碼器1412可利用低密度奇偶校驗碼LDPC1對訊息M 1進行編碼,以產生第一碼字C 1
在步驟S34之一實施例中,雜訊產生模組142對於第一雜訊之第一值的選用可視各陷阱集共用結構資訊I 1-I m中陷阱集共用結構而定,且第二雜訊之第二值的選用可視常態的錯誤發生率而定。於此,雜訊產生模組142是以致使在陷阱集共用結構之出現位置上一定會解碼錯誤來設置第一雜訊的第一值,但本發明並非以此為限。
在步驟S35之一實施例中,運算器144可根據後方式1推得相應於各陷阱集共用結構資訊I 1-I m的估算錯誤基數E 1-E m。式1:
Figure 02_image001
,其中Ex為估算錯誤基數,Sx為模擬錯誤基數,且x為大於1且小於或等於m的正整數;y1為第一值,y2為第二值,且z為添加有第一雜訊的總節點數。舉例而言,假設在陷阱集共用結構資訊I 1中陷阱集共用結構之出現位置共5個節點,雜訊產生模組142根據陷阱集共用結構資訊I 1於低密度奇偶校驗碼LDPC1中的陷阱集共用結構之出現位置上添加50%的第一雜訊並於其餘位置上添加0.1%的第二雜訊,且運算器144根據第一碼字C 1和解碼結果R 1得到的模擬錯誤基數為10 -3時,運算器144可反推得估算錯誤基數E1大約為10 -18FER(或BER)。
在一些實施例中,本發明中的「模組」,例如檢測模組133、碼字產生模組141、雜訊產生模組142等,可透過特殊應用積體電路(ASIC)來實現。此外,處理器145可為中央控制單元(CPU)、微處理器(micro-processor)、數位訊號處理器(DSP)、可程式化控制器、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)或其他類似電路元件,但本發明並非以此為限。
在一些實施例中,本發明任一實施例之裝置100可以各式製程的積體電路製程方式整合於晶片中,但本發明並非以此為限。
綜上所述,本發明任一實施例之裝置及產生方法,其利用資料庫中的複數陷阱集共用結構來快速檢測出低密度奇偶校驗碼中所包含的陷阱集共用結構及其出現位置,並透過添加雜訊來取得模擬錯誤基數,進而可根據估算錯誤基數快速地反推出估算錯誤基數。因此,相較於傳統作法,本發明任一實施例之裝置及產生方法可更快速地提供符合所需之錯誤基數的低密度奇偶校驗碼。
本發明之實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明實施例之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:裝置 110:資料庫 120:奇偶校驗產生電路 130:檢測電路 131:行選擇器 132:列選擇器 133:檢測模組 140:驗證電路 141:碼字產生模組 1411:訊息產生器 1412:編碼器 142:雜訊產生模組 143:解碼器 144:運算器 145:處理器 A11-Aij:方陣 C1:第一碼字 C21-C2m:第二碼字 E1-Em:估算錯誤基數 H1:奇偶校驗矩陣 I1-Im:陷阱集共用結構資訊 LDPC1:低密度奇偶校驗碼 M1:訊息 R1-Rm:解碼結果 T1-Tn:陷阱集共用結構 Bsa、Bsb、Bsc、Bta、Btb、Btc、Bua、Bub、Buc:節點 S10-S50:步驟
第1圖為產生具有符合所需之錯誤基數之低密度奇偶校驗碼的裝置之一實施例的方塊示意圖。 第2圖為產生具有符合所需之錯誤基數之低密度奇偶校驗碼的方法之一實施例的流程示意圖。 第3圖為低密度奇偶校驗碼的奇偶校驗矩陣之一實施例的概要示意圖。 第4圖為第2圖中步驟S20之一實施例的流程示意圖。 第5圖為低密度奇偶校驗碼中之局部一實施例的概要示意圖。 第6圖為第2圖中步驟S30之一實施例的流程示意圖。
S10-S50:步驟

Claims (9)

  1. 一種產生具有符合所需之錯誤基數(error floor)的低密度奇偶校驗碼(Low-Density Parity-Check code,LDPC code)的方法,包含: 利用一奇偶校驗產生電路產生一低密度奇偶校驗碼; 利用一檢測電路根據一資料庫中的複數陷阱集共用結構(trapping set core)對該低密度奇偶校驗碼進行檢測,並產生該低密度奇偶校驗碼的至少一陷阱集共用結構資訊,其中各該陷阱集共用結構資訊包含該些陷阱集共用結構中之一者、該陷阱集共用結構於該低密度奇偶校驗碼中的出現數量以及出現位置,且各該陷阱集共用結構資訊所包含的該陷阱集共用結構互不相同; 利用一驗證電路根據該低密度奇偶校驗碼分別與各該陷阱集共用結構資訊進行一重要性取樣(Importance Sampling,IS)模擬,以得到各該陷阱集共用結構資訊對應的一估算錯誤基數; 利用該驗證電路將各該估算錯誤基數與一預期錯誤基數進行比較;及 於所有該估算錯誤基數皆小於或等於該預期錯誤基數時,利用該驗證電路輸出該低密度奇偶校驗碼。
  2. 如申請專利範圍第1項所述的方法,其中於任一該陷阱集共用結構資訊的該估算錯誤基數大於該預期錯誤基數時,返回執行利用該奇偶校驗產生電路產生該低密度奇偶校驗碼之步驟。
  3. 如申請專利範圍第1項所述的方法,其中利用該驗證電路根據該低密度奇偶校驗碼分別與各該陷阱集共用結構資訊進行該重要性取樣以得到對應於各該陷阱集共用結構資訊的該估算錯誤基數之步驟包含: 利用該驗證電路的一碼字產生模組根據該低密度奇偶校驗碼與一訊息產生一第一碼字(codeword); 利用該驗證電路的一雜訊產生模組根據該陷阱集共用結構資訊在該低密度奇偶校驗碼中該陷阱集共用結構的該出現位置上添加具有一第一值的第一雜訊,並在該低密度奇偶校驗碼中的其餘位置上添加具有一第二值的第二雜訊,以產生一第二碼字,其中該第一值大於該第二值; 利用該驗證電路的一解碼器根據該第二碼字進行解碼並產生一解碼結果; 利用該驗證電路的一運算器根據該第一碼字與該解碼結果得到一模擬錯誤基數;及 利用該運算器根據該模擬錯誤基數和該第一值與該第二值之間的比值得到該陷阱集共用結構資訊的該估算錯誤基數。
  4. 如申請專利範圍第1項所述的方法,其中利用該檢測電路根據該資料庫中的該些陷阱集共用結構對該低密度奇偶校驗碼進行檢測,並產生該低密度奇偶校驗碼的該至少一陷阱集共用結構資訊之步驟包含: 利用該檢測電路的一行選擇器選擇該低密度奇偶校驗碼中一第一數量的複數行,並利用該檢測電路的一列選擇器選擇該低密度奇偶校驗碼中一第二數量的複數列; 利用該檢測電路的一檢測模組檢測在被選擇的該第一數量的該些行與該第二數量的該些列上是否出現該些陷阱集共用結構中之一; 於檢測完被選擇的該第一數量的該些行與該第二數量的該些列上後,返回執行利用該檢測電路的該行選擇器選擇該低密度奇偶校驗碼中該第一數量的該些行並利用該檢測電路的該列選擇器選擇該低密度奇偶校驗碼中該第二數量的該些列之步驟; 於該檢測模組已掃過該行選擇器所選擇的該些行與該列選擇器所選擇的該些列的所有組合後,根據於該低密度奇偶校驗碼中出現的各該陷阱集共用結構產生相應的該陷阱集共用結構資訊。
  5. 一種用以產生具有符合所需之錯誤基數的低密度奇偶校驗碼的裝置,包含: 一資料庫,用以儲存複數陷阱集共用結構; 一奇偶校驗產生電路,用以產生一低密度奇偶校驗碼; 一檢測電路,用以根據該些陷阱集共用結構對該低密度奇偶校驗碼進行檢測,並產生該低密度奇偶校驗碼的至少一陷阱集共用結構資訊,其中各該陷阱集共用結構資訊包含該些陷阱集共用結構中之一者、該陷阱集共用結構於該低密度奇偶校驗碼的出現數量以及出現位置,且各該陷阱集共用結構資訊所包含的該陷阱集共用結構互不相同;及 一驗證電路,用以根據該低密度奇偶校驗碼分別與各該陷阱集共用結構資訊進行一重要性取樣模擬,以得到各該陷阱集共用結構資訊對應的一估算錯誤基數,並將各該估算錯誤基數與一預期錯誤基數進行比較,且於所有該估算錯誤基數小於或等於該預期錯誤基數時,輸出該低密度奇偶校驗碼。
  6. 如申請專利範圍第5項所述的裝置,其中於任一該陷阱集共用結構資訊的該估算錯誤基數大於該預期錯誤基數時,該驗證電路更致使該奇偶校驗產生電路重新產生另一低密度奇偶校驗碼。
  7. 如申請專利範圍第5項所述的裝置,其中該驗證電路包含: 一碼字產生模組,用以根據該低密度奇偶校驗碼與一訊息產生一第一碼字; 一雜訊產生模組,用以分別根據各該陷阱集共用結構資訊在該低密度奇偶校驗碼中該陷阱集共用結構的該出現位置上添加具有一第一值的第一雜訊,並在其餘位置上添加具有一第二值的第二雜訊,以產生相應於該陷阱集共用結構資訊的一第二碼字,其中該第一值大於該第二值; 一解碼器,用以根據各該第二碼字分別進行解碼並產生一解碼結果; 一運算器,用以根據該第一碼字分別與各該解碼結果得到一模擬錯誤基數,並根據各該模擬錯誤基數和該第一值與該第二值之間的比值得到各該陷阱集共用結構資訊的該估算錯誤基數;及 一處理器,用以將各該估算錯誤基數與一預期錯誤基數進行比較,且於所有該估算錯誤基數小於或等於該預期錯誤基數時,輸出該低密度奇偶校驗碼。
  8. 如申請專利範圍第7項所述的裝置,其中該碼字產生模組包含: 一訊息產生器,用以產生一訊息;及 一編碼器,用以根據該低密度奇偶校驗碼與該訊息產生該第一碼字。
  9. 如申請專利範圍第5項所述的裝置,其中該檢測電路包含: 一行選擇器,用以選擇該低密度奇偶校驗碼中一第一數量的複數行; 一列選擇器,用以選擇該低密度奇偶校驗碼中一第二數量的複數列;及 一檢測模組,用以檢測在被選擇的該第一數量的該些行與該第二數量的該些列上是否出現該些陷阱集共用結構中之一,並於檢測完被選擇的該第一數量的該些行與該第二數量的該些列後,致使該行選擇器與該列選擇器重新選擇,以再次進行檢測,且於已掃過該行選擇器所選擇的該些行與該列選擇器所選擇的該些列的所有組合後,根據於該低密度奇偶校驗碼中出現的各該陷阱集共用結構產生相應的該陷阱集共用結構資訊。
TW108133930A 2019-09-20 2019-09-20 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置 TWI705667B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW108133930A TWI705667B (zh) 2019-09-20 2019-09-20 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置
CN202010080402.2A CN112543028B (zh) 2019-09-20 2020-02-05 产生具有符合所需的错误基数的低密度奇偶校验码的方法及装置
US16/849,261 US11218168B2 (en) 2019-09-20 2020-04-15 Method and apparatus for generating an LDPC code with a required error floor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108133930A TWI705667B (zh) 2019-09-20 2019-09-20 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置

Publications (2)

Publication Number Publication Date
TWI705667B true TWI705667B (zh) 2020-09-21
TW202114358A TW202114358A (zh) 2021-04-01

Family

ID=74091541

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108133930A TWI705667B (zh) 2019-09-20 2019-09-20 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置

Country Status (3)

Country Link
US (1) US11218168B2 (zh)
CN (1) CN112543028B (zh)
TW (1) TWI705667B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201011527A (en) * 2008-08-15 2010-03-16 Lsi Corp ROM list-decoding of near codewords
US8595589B2 (en) * 2011-09-30 2013-11-26 Mitsubishi Electric Research Laboratories, Inc. Quasi-cyclic low-density parity-check codes
US20150222291A1 (en) * 2014-02-05 2015-08-06 Kabushiki Kaisha Toshiba Memory controller, storage device and memory control method
CN107689802A (zh) * 2017-09-12 2018-02-13 重庆邮电大学 一种基于消除基本陷阱集的ldpc码构造方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996971B2 (en) * 2012-09-04 2015-03-31 Lsi Corporation LDPC decoder trapping set identification
RU2012147471A (ru) * 2012-11-07 2014-05-20 ЭлЭсАй Корпорейшн Оценка характеристик производительности канала считывания
US8929009B2 (en) * 2012-12-19 2015-01-06 Lsi Corporation Irregular low density parity check decoder with low syndrome error handling
RU2013108893A (ru) * 2013-02-27 2014-09-10 ЭлЭсАй Корпорейшн Формирователь тестовых сигналов для декодера на основе разреженного контроля четности
US9513989B2 (en) * 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
CN107241105B (zh) * 2017-06-06 2020-03-20 北京邮电大学 低密度奇偶校验码的编码方法、装置、电子设备及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201011527A (en) * 2008-08-15 2010-03-16 Lsi Corp ROM list-decoding of near codewords
US8595589B2 (en) * 2011-09-30 2013-11-26 Mitsubishi Electric Research Laboratories, Inc. Quasi-cyclic low-density parity-check codes
US20150222291A1 (en) * 2014-02-05 2015-08-06 Kabushiki Kaisha Toshiba Memory controller, storage device and memory control method
CN107689802A (zh) * 2017-09-12 2018-02-13 重庆邮电大学 一种基于消除基本陷阱集的ldpc码构造方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
2011年8月公開文件吳政哲"有效減少低密度同位元檢查碼中 陷阱集合數量之演算法"中華大學碩士論文, http://chur.chu.edu.tw/bitstream/987654321/42472/1/GM097020300.pdf *
2013年12月30日公開文件李亞錦"利用分群演算法分析低密度奇偶檢查碼的結構" 國立交通大學 生醫工程研究所碩士論文, https://ir.nctu.edu.tw/bitstream/11536/73329/1/670402.pdf *

Also Published As

Publication number Publication date
US20210091793A1 (en) 2021-03-25
US11218168B2 (en) 2022-01-04
CN112543028B (zh) 2024-03-12
CN112543028A (zh) 2021-03-23
TW202114358A (zh) 2021-04-01

Similar Documents

Publication Publication Date Title
KR100996029B1 (ko) 저밀도 패리티 검사 코드의 부호화 장치 및 방법
JP5752317B2 (ja) 準巡回低密度パリティ検査符号を求める方法、及び準巡回低密度パリティ検査符号に基づいてデータを符号化するシステム
Vasić et al. Trapping set ontology
JP5116735B2 (ja) 符号を構成する方法
Cole et al. A general method for finding low error rates of LDPC codes
JP4031432B2 (ja) 射影分析を使用した誤り訂正符号の評価と最適化
TWI496157B (zh) 決定同位元檢查陣列之方法以及快閃記憶體系統
US8560930B2 (en) Systems and methods for multi-level quasi-cyclic low density parity check codes
US11700020B2 (en) Fault tolerant quantum error correction with linear codes
Le et al. Efficient hardware implementation of probabilistic gradient descent bit-flipping
US20170047945A1 (en) Data sending method and apparatus
Gabrys et al. Codes correcting erasures and deletions for rank modulation
US8566665B2 (en) Systems and methods for error correction using low density parity check codes using multiple layer check equations
Esfahanizadeh et al. Multi-dimensional spatially-coupled code design: Enhancing the cycle properties
Sankaranarayanan et al. Failures of the Gallager B decoder: analysis and applications
JP2008516546A (ja) 低密度パリティチェック行列の生成方法及び装置
Sharon et al. Constructing LDPC codes by error minimization progressive edge growth
TWI705667B (zh) 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置
Ostrev et al. Classical product code constructions for quantum Calderbank-Shor-Steane codes
KR100975061B1 (ko) 저밀도 패리티 검사를 이용한 패리티 정보 생성 방법
CN105306072A (zh) 一种基于本原域循环群生成元集的ldpc码构造方法
US20120089883A1 (en) Systems and Methods for Error Correction Using Irregular Low Density Parity Check Codes
WO2016168991A1 (zh) 一种低密度校验码生成方法及装置
Xu et al. On the construction of quasi-systematic block-circulant LDPC codes
Lin et al. Single-shot error correction on toric codes with high-weight stabilizers