TWI675373B - 低密度奇偶檢查裝置與其操作方法 - Google Patents
低密度奇偶檢查裝置與其操作方法 Download PDFInfo
- Publication number
- TWI675373B TWI675373B TW106100695A TW106100695A TWI675373B TW I675373 B TWI675373 B TW I675373B TW 106100695 A TW106100695 A TW 106100695A TW 106100695 A TW106100695 A TW 106100695A TW I675373 B TWI675373 B TW I675373B
- Authority
- TW
- Taiwan
- Prior art keywords
- check
- decision bit
- ldpc
- bit value
- old
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 49
- 238000001514 detection method Methods 0.000 claims abstract description 34
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000007717 exclusion Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 9
- 230000001419 dependent effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
- G11B2020/185—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using an low density parity check [LDPC] code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一種低密度奇偶檢查(LDPC)裝置與其操作方法。所述LDPC裝置包括LDPC迭代計算電路、決定位元儲存電路與收斂偵測電路。LDPC迭代計算電路進行LDPC迭代運算,以獲得對應變量節點的新決定位元值。決定位元儲存電路使用新決定位元值來更新多個舊決定位元值中的一個對應舊決定位元值。收斂偵測電路儲存多個檢查節點的每一個的檢查總和。收斂偵測電路使用新決定位元值與對應舊決定位元值來更新這些檢查總和中的一個對應檢查總和。收斂偵測電路依據這些檢查節點的這些檢查總和,來判定LDPC迭代運算是否為收斂。
Description
本發明是有關於一種奇偶檢查(parity check)技術,且特別是有關於一種低密度奇偶檢查(Low-Density Parity-Check,以下稱LDPC)裝置與LDPC的操作方法。
與傳統的硬碟設備相比,配置了快閃記憶體(FLASH memory)的固態硬碟(Solid State Drive,SSD)具有快速讀/寫性能和低功耗等特性。固態硬碟是一種常用的資料儲存設備。固態硬碟的系統(韌體與硬體)可以將原資料進行低密度奇偶檢查(Low-Density Parity-Check,以下稱LDPC)編碼以獲得原碼字(codeword),然後將碼字寫入固態硬碟的快閃記憶體。固態硬碟的系統(韌體與硬體)還可以從固態硬碟讀出原碼字,然後對原碼字進行LDPC解碼(LDPC decoding)以獲得經解碼碼字(原資料)。
LDPC的檢查矩陣H定義了多個變量節點(variable node, VN)與多個檢查節點(check node, CN)之間的關係。檢查矩陣H可以依照設計需求來決定。所述LDPC解碼的迭代運算包括,依據C2V資訊計算從變量節點被傳送到檢查節點的V2C資訊,以及依據所述V2C資訊計算從檢查節點被傳送到變量節點的所述C2V資訊。所述V2C資訊的計算細節以及所述C2V資訊的計算細節為習知技術,故不再贅述。一次「計算所有變量節點的V2C資訊」以及一次「計算所有檢查節點的C2V資訊」構成了一次迭代。傳統LDPC裝置在每一次迭代完成後會判斷LDPC迭代運算是否已收斂。當LDPC迭代運算已收斂時,表示LDPC解碼成功,因此傳統LDPC裝置可以停止/完成LDPC迭代運算。
無論如何,傳統LDPC裝置在每一次迭代完成後才會判斷LDPC迭代運算是否已收斂。
本發明提供一種低密度奇偶檢查(Low-Density Parity-Check,以下稱LDPC)裝置與LDPC的操作方法,其可以在一次迭代的過程中進行判定LDPC迭代運算是否已收斂,而不用等到一次迭代完成後才判定。
本發明的實施例提供一種LDPC裝置,用以將原碼字解碼為經解碼碼字。所述LDPC裝置包括LDPC迭代計算電路、決定位元儲存電路以及收斂偵測電路。LDPC迭代計算電路被配置為使用原碼字去進行LDPC迭代運算,以獲得多個變量節點(variable node, VN)的一個對應變量節點的新決定位元(decision bit)值。決定位元儲存電路耦接至LDPC迭代計算電路,以接收對應變量節點的新決定位元值。決定位元儲存電路被配置為,使用新決定位元值來更新被儲存於決定位元儲存電路的這些變量節點的多個舊決定位元值中的一個對應舊決定位元值。當LDPC迭代運算為收斂時,決定位元儲存電路所儲存的這些變量節點的這些舊決定位元值作為經解碼碼字。收斂偵測電路耦接至LDPC迭代計算電路,以接收新決定位元值。收斂偵測電路耦接至決定位元儲存電路,以讀取對應舊決定位元值。收斂偵測電路可以儲存多個檢查節點(check node, CN)的每一個的檢查總和。收斂偵測電路可以使用新決定位元值與對應舊決定位元值來更新這些檢查總和中的一個對應檢查總和。收斂偵測電路可以依據這些檢查節點的這些檢查總和,來判定LDPC迭代運算是否為收斂。
本發明的實施例提供一種LDPC的操作方法。所述LDPC的操作方法包括:藉由使用原碼字去進行LDPC迭代運算,以獲得多個變量節點的一個對應變量節點的新決定位元值;藉由使用新決定位元值來更新被儲存於決定位元儲存電路的這些變量節點的多個舊決定位元值中的一個對應舊決定位元值,其中當LDPC迭代運算為收斂時,決定位元儲存電路所儲存的這些變量節點的這些舊決定位元值作為經解碼碼字;儲存多個檢查節點的每一個的檢查總和;藉由使用新決定位元值與對應舊決定位元值來更新這些檢查總和中的一個對應檢查總和;以及依據這些檢查節點的這些檢查總和來判定LDPC迭代運算是否為收斂。
基於上述,本發明諸實施例所提供的LDPC裝置與LDPC的操作方法,其可以在多個變量節點的任何一個獲得了新決定位元值時,便即時地使用新決定位元值與對應舊決定位元值來更新這些檢查總和中的一個對應檢查總和。因此,本發明諸實施例所提供的LDPC裝置與LDPC的操作方法可以即時地依據這些檢查節點的這些檢查總和來判定LDPC迭代運算是否為收斂,而不用等到一次迭代完成後,所有變量節點都獲得了新決定位元值時才判定。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明一實施例說明一種非依電性記憶體裝置100的電路方塊(circuit block)示意圖。依照設計需求,非依電性記憶體裝置100可以是隨身碟、固態硬碟(solid state disc, SSD)或是其他儲存裝置。非依電性記憶體裝置100可以耦接至主機(host)10。此主機10可以是電腦、手持式電話、多媒體播放器、相機或是其他電子裝置。非依電性記憶體裝置100包括控制器(控制器電路)110以及非依電性記憶體120。依照設計需求,非依電性記憶體120可以是反及快閃記憶體(NAND flash memory)或是其他非依電性儲存電路/元件。
控制器110耦接(或連接)至非依電性記憶體120。控制器110可以依照主機10的寫入命令(write command)的邏輯位址而存取非依電性記憶體120。在一些實施例中,所述邏輯位址資訊可以是邏輯塊位址(logical block address, LBA)或是其他邏輯位址。於圖1所示實施例中,控制器110包括中央處理單元111、記憶體控制電路112、記憶體緩衝器113與低密度奇偶檢查(Low-Density Parity-Check,以下稱LDPC)裝置114。中央處理單元111經由通訊介面耦接至主機10。依照設計需求,所述通訊介面包括小型電腦系統介面(small computer system interface, SCSI)、串列連接小型電腦系統介面(Serial Attached SCSI, SAS)、增強型小型裝置介面(Enhanced Small Disk Interface, ESDI)、串列先進技術連接(serial advanced technology attachment, SATA)、快速週邊元件互連(peripheral component interconnect express, PCI-express)、整合式電子裝置(integrated drive electronics, IDE)介面、通用串列匯流排(universal serial bus, USB)、雷電(Thunderbolt)介面或其他介面。本實施例並沒有限制主機10與非依電性記憶體裝置100之間的介面結構。
當主機10發出寫入命令時,待寫入的資料可以被暫存於記憶體緩衝器113,而中央處理單元111可以將主機10的寫入命令(包含邏輯位址)轉換/解碼為對應的內部控制信號(包含非依電性記憶體120的實體位址),並將內部控制信號提供給記憶體控制電路112與/或記憶體緩衝器113。記憶體緩衝器113的例子包括動態隨機存取記憶體(dynamic random access memory, DRAM)、靜態隨機存取記憶體(static random access memory, SRAM)或是其他揮發性記憶體(volatile memory)。LDPC裝置114可以執行LDPC演算法,以便將暫存於記憶體緩衝器113的資料加以編碼為碼字(codeword)。依照內部控制信號,記憶體控制電路112可以定址/控制非依電性記憶體120,以便將碼字寫入非依電性記憶體120。
當主機10發出讀取命令時,中央處理單元111可以將主機10的讀取命令(包含邏輯位址)轉換/解碼為對應的內部控制信號(包含非依電性記憶體120的實體位址)。依照內部控制信號,記憶體控制電路112可以定址/控制非依電性記憶體120,以便將非依電性記憶體120內的原碼字讀出。LDPC裝置114可以執行LDPC演算法,以便將原碼字解碼為資料,並將經解碼的碼字暫存於記憶體緩衝器113。然後,中央處理單元111可以將暫存於記憶體緩衝器113的經解碼的碼字回傳給主機10。
LDPC的檢查矩陣H定義了多個變量節點(variable node, VN)與多個檢查節點(check node, CN)之間的關係。檢查矩陣H的行(row)的數量表示檢查節點的數量,而檢查矩陣H的列(column)的數量表示變量節點的數量。在LDPC的演算過程中,資訊在變量節點與檢查節點之間傳遞。經過LDPC演算過程中的多次迭代運算,使變量節點的資訊收斂而完成LDPC的解碼演算。當LDPC迭代運算為收斂時,這些變量節點的資訊的決定位元(decision bit)值作為所述經解碼的碼字。所述決定位元又可稱為正負號位元(sign bit)。
圖2是依照本發明一實施例說明圖1所示低密度奇偶檢查(LDPC)裝置114的電路方塊示意圖。LDPC裝置114可以進行LDPC迭代運算,以解碼原碼字IN而獲得經解碼的碼字OUT。於圖2所示實施例中,LDPC裝置114包括LDPC迭代計算電路210、決定位元儲存電路220以及收斂偵測電路230。LDPC迭代計算電路210可以使用原碼字IN去進行LDPC迭代運算,以獲得多個變量節點的決定位元值Vs。LDPC裝置114可以將一個LDPC的檢查矩陣H切分為多個子矩陣。每一個子矩陣被稱為循環矩陣(circulant)。LDPC迭代計算電路210可以使用這些循環矩陣的每一個來計算至少一個對應變量節點的新決定位元值Vs。
於圖2所示實施例中,LDPC迭代計算電路210包括變量節點(VN)計算電路211與檢查節點(CN)計算電路212。依照設計需求,在一些實施例中,LDPC裝置114還可以包括一個對數相似率(log likelihood ratio,以下稱LLR)轉換電路(未繪示),而此LLR轉換電路(未繪示)可以依據映射關係來將原碼字IN轉換為LLR向量給VN計算電路211。或者在其他實施例中,例如在圖2所示實施例中,LLR轉換電路可以依照設計需求而被內嵌於VN計算電路211中,因此VN計算電路211可以依據映射關係來將原碼字IN轉換為LLR向量。在一些實施例中,對數相似率轉換電路可以為獨立於LDPC裝置114之外之一前級電路。LLR向量中的任何一個LLR值是表示「原碼字IN的某一特定位元是某一特定值」的可能性。LLR的範圍可以從-x到x。在一些實施例中,-x表示原碼字IN的某一特定位元被確信為邏輯「1」,而x表示原碼字IN的某一特定位元被確信為邏輯「0」。在另一些實施例中,-x表示原碼字IN的某一特定位元被確信為邏輯「0」,而x表示原碼字IN的某一特定位元被確信為邏輯「1」。
VN計算電路211可以使用所述LLR向量與至少一C2V資訊(亦即圖2所示「C2V」,由CN計算電路212所提供),來計算從變量節點到檢查節點的V2C資訊。VN計算電路211所進行的計算相當於檢查矩陣H的列處理。VN計算電路211所進行的計算V2C資訊的細節可以是習知演算法或是其他演算法,故不再贅述。VN計算電路211可以將變量節點的新資訊的決定位元值Vs輸出給決定位元儲存電路220。CN計算電路212耦接至VN計算電路211,以接收所述V2C資訊(亦即圖2所示「V2C」)。CN計算電路212可以使用所述V2C資訊,來計算從檢查節點到變量節點的所述C2V資訊,以及將所述C2V資訊(亦即圖2所示「C2V」)提供給VN計算電路211。CN計算電路212所進行的計算相當於檢查矩陣H的行處理。CN計算電路212所進行的計算C2V資訊的細節可以是習知演算法或是其他演算法,故不再贅述。至此,VN計算電路211與CN計算電路212完成了一次迭代。
圖3是依照本發明一實施例說明一種低密度奇偶檢查(LDPC)的操作方法的流程示意圖。請參照圖2與圖3,LDPC迭代計算電路210可以在步驟S310中藉由使用原碼字IN去進行LDPC迭代運算,以獲得對應變量節點的新決定位元值Vs。決定位元儲存電路220耦接至LDPC迭代計算電路210,以接收對應變量節點的新決定位元值Vs。在步驟S320中,決定位元儲存電路220可以使用新決定位元值Vs來更新被儲存於決定位元儲存電路220內的這些變量節點的多個舊決定位元值中的一個對應舊決定位元值Vs_old。當LDPC迭代運算為收斂時,決定位元儲存電路220所儲存的這些變量節點的這些舊決定位元值可以作為經解碼碼字OUT。
收斂偵測電路230耦接至LDPC迭代計算電路210,以接收新決定位元值Vs。收斂偵測電路230可以使用檢查矩陣H來計算多個檢查節點的每一個的檢查總和(check sum)。收斂偵測電路230可以儲存這些檢查節點的每一個的檢查總和(步驟S330)。
收斂偵測電路230還耦接至決定位元儲存電路220。在決定位元儲存電路220所儲存的對應舊決定位元值Vs_old還沒被更新前,收斂偵測電路230可以從決定位元儲存電路220讀取對應舊決定位元值Vs_old。在步驟S340中,收斂偵測電路230可以使用新決定位元值Vs(由LDPC迭代計算電路210提供)與對應舊決定位元值Vs_old(由決定位元儲存電路220提供)來更新這些檢查總和中的一個對應檢查總和。因此,在多個變量節點的任何一個獲得了新決定位元值Vs時,收斂偵測電路230可以即時地更新這些檢查總和中的一個對應檢查總和。
舉例來說,收斂偵測電路230可以在步驟S340中使用決定位元儲存電路220所提供的對應舊決定位元值Vs_old來去除在對應檢查總和中所述對應舊決定位元值Vs_old所對應的成份,然後將LDPC迭代計算電路210所提供的新決定位元值Vs所對應的成份加入對應檢查總和。依照設計需求,在一些實施例中,步驟S340可以計算下述等式Check_Sum_New = Check_Sum_Old XOR D_Old XOR D_New,以更新所述對應檢查總和。其中,Check_Sum_New為被更新後的所述對應檢查總和,Check_Sum_Old為被更新前的所述對應檢查總和,D_Old為多個變量節點的第i個變量節點的舊決定位元值(對應舊決定位元值Vs_old),D_New為第i個變量節點的新決定位元值(新決定位元值Vs),而XOR為互斥或(exclusive-OR)運算。假設第i個變量節點連接了第j個檢查節點,則收斂偵測電路230可以在步驟S340中使用上述等式,來計算出第j個檢查節點的所述對應檢查總和Check_Sum_New。
在步驟S350中,依據這些檢查節點的這些檢查總和,收斂偵測電路230可以判定LDPC迭代運算是否為收斂。舉例來說(但不限於此),收斂偵測電路230可以檢查這些檢查節點的這些檢查總和是否都為0。當這些檢查總和都為0時,收斂偵測電路230可以判定LDPC迭代運算為收斂。當步驟S360判斷LDPC迭代運算尚未收斂時,表示LDPC解碼尚未成功,因此步驟S310、S320、S330、S340、S350與S360被再一次執行。
本實施例所提供的LDPC裝置114可以在多個變量節點的任何一個獲得了新決定位元值Vs時,便即時地使用新決定位元值Vs與對應舊決定位元值Vs_old來更新這些檢查總和中的一個對應檢查總和。因此,本實施例所提供的LDPC裝置114與LDPC的操作方法可以即時地依據這些檢查節點的這些檢查總和來判定LDPC迭代運算是否為收斂,而不用等到一次完整的迭代完成後才判定。對於分層(layered)LDPC解碼演算法(於檢查矩陣H中,以一層一層的方式進行LDPC解碼)而言,每一層的解碼操作可以稱為子迭代(sub-iteration)。本實施例所提供的LDPC裝置114與LDPC的操作方法可以即時地更新對應檢查總和以便判定LDPC迭代運算是否為收斂,而不用等到一次完整的子迭代完成後才判定。
當步驟S360判斷LDPC迭代運算已收斂時,表示LDPC解碼成功,因此LDPC迭代運算可以被停止。在一些情況下,LDPC迭代運算的迭代次數已達到最大迭代次數,但LDPC迭代運算尚未收斂,此時LDPC迭代運算可以被斷定解碼失敗而停止迭代運算。
圖4是依照本發明一實施例說明圖2所示收斂偵測電路230的電路方塊示意圖。於圖4所示實施例中,收斂偵測電路230包括第一互斥或閘231、第二互斥或閘232以及檢查總和儲存電路233。第一互斥或閘231的第一輸入端耦接至LDPC迭代計算電路210,以接收新決定位元值Vs。第一互斥或閘231的第二輸入端耦接至決定位元儲存電路220,以讀取對應舊決定位元值Vs_old。第二互斥或閘232的第一輸入端耦接至第一互斥或閘231的輸出端。檢查總和儲存電路233的輸出端耦接至第二互斥或閘232的第二輸入端,以提供所述對應檢查總和CSj(舊的檢查總和)。第二互斥或閘232的輸出端耦接至檢查總和儲存電路233的輸入端,以即時地更新對應檢查總和CSj。
值得注意的是,在不同的應用情境中,控制器110、中央處理單元111、記憶體控制電路112、記憶體緩衝器113、低密度奇偶檢查(LDPC)裝置114、LDPC迭代計算電路210、決定位元儲存電路220及/或收斂偵測電路230的相關功能可以利用一般的編程語言(programming languages,例如C或C++)、硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的軟體(或韌體)可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述軟體(或韌體)。所述軟體(或韌體)可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述軟體(或韌體)的編程碼(programming codes)。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
綜上所述,本發明諸實施例所提供的LDPC裝置114與LDPC的操作方法,其可以在多個變量節點的任何一個獲得了新決定位元值Vs時,便即時地使用新決定位元值Vs與對應舊決定位元值Vs_old來更新這些檢查總和中的一個對應檢查總和。因此,本發明諸實施例所提供的LDPC裝置114與LDPC的操作方法可以即時地依據這些檢查節點的這些檢查總和來判定LDPC迭代運算是否為收斂,而不用等到一次完整迭代(或完整子迭代)完成後,所有變量節點都獲得了新決定位元值時才判定。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
100‧‧‧非依電性記憶體裝置
110‧‧‧控制器
111‧‧‧中央處理單元
112‧‧‧記憶體控制電路
113‧‧‧記憶體緩衝器
114‧‧‧低密度奇偶檢查(LDPC)裝置
120‧‧‧非依電性記憶體
210‧‧‧LDPC迭代計算電路
211‧‧‧變量節點(VN)計算電路
212‧‧‧檢查節點(CN)計算電路
220‧‧‧決定位元儲存電路
230‧‧‧收斂偵測電路
231‧‧‧第一互斥或閘
232‧‧‧第二互斥或閘
233‧‧‧檢查總和儲存電路
C2V‧‧‧C2V資訊
CSj‧‧‧對應檢查總和
IN‧‧‧原碼字
OUT‧‧‧經解碼的資料
S310~S360‧‧‧步驟
V2C‧‧‧V2C資訊
Vs‧‧‧新決定位元值
Vs_old‧‧‧對應舊決定位元值
圖1是依照本發明一實施例說明一種非依電性記憶體裝置的電路方塊(circuit block)示意圖。 圖2是依照本發明一實施例說明圖1所示低密度奇偶檢查(LDPC)裝置的電路方塊示意圖。 圖3是依照本發明一實施例說明一種低密度奇偶檢查(LDPC)的操作方法的流程示意圖。 圖4是依照本發明一實施例說明圖2所示收斂偵測電路的電路方塊示意圖。
Claims (9)
- 一種低密度奇偶檢查(以下稱LDPC)裝置,用以將一原碼字解碼為一經解碼碼字,所述LDPC裝置包括: 一LDPC迭代計算電路,被配置為使用該原碼字去進行一LDPC迭代運算,以獲得多個變量節點的一對應變量節點的一新決定位元值; 一決定位元儲存電路,耦接至該LDPC迭代計算電路以接收該對應變量節點的該新決定位元值,被配置為使用該新決定位元值來更新被儲存於該決定位元儲存電路的該些變量節點的多個舊決定位元值中的一個對應舊決定位元值,其中當該LDPC迭代運算為收斂時,該決定位元儲存電路所儲存的該些變量節點的該些舊決定位元值作為該經解碼碼字;以及 一收斂偵測電路,耦接至該LDPC迭代計算電路以接收該新決定位元值,耦接至該決定位元儲存電路以讀取該對應舊決定位元值,其中該收斂偵測電路被配置為儲存多個檢查節點的每一個的一檢查總和,使用該新決定位元值與該對應舊決定位元值來更新該些檢查總和中的一對應檢查總和,以及依據該些檢查節點的該些檢查總和來判定該LDPC迭代運算是否為收斂。
- 如申請專利範圍第1項所述的LDPC裝置,其中該收斂偵測電路被配置為使用一檢查矩陣來計算該些檢查節點的該些檢查總和。
- 如申請專利範圍第1項所述的LDPC裝置,其中該收斂偵測電路被配置為使用該決定位元儲存電路所提供的該對應舊決定位元值來去除在該對應檢查總和中該對應舊決定位元值所對應的成份,然後將該LDPC迭代計算電路所提供的該新決定位元值所對應的成份加入該對應檢查總和。
- 如申請專利範圍第1項所述的LDPC裝置,其中該收斂偵測電路被配置為計算Check_Sum_New = Check_Sum_Old XOR D_Old XOR D_New,其中Check_Sum_New為被更新後的該對應檢查總和,Check_Sum_Old為被更新前的該對應檢查總和,D_Old為該對應舊決定位元值,D_New為該新決定位元值,而XOR為互斥或運算。
- 如申請專利範圍第1項所述的LDPC裝置,其中該收斂偵測電路包括: 一第一互斥或閘,該第一互斥或閘的一第一輸入端耦接至該LDPC迭代計算電路以接收該新決定位元值,該第一互斥或閘的一第二輸入端耦接至該決定位元儲存電路以讀取該對應舊決定位元值; 一第二互斥或閘,該第二互斥或閘的一第一輸入端耦接至該第一互斥或閘的輸出端;以及 一檢查總和儲存電路,該檢查總和儲存電路的一輸入端耦接至該第二互斥或閘的輸出端,該檢查總和儲存電路的輸出端耦接至該第二互斥或閘的一第二輸入端以提供該對應檢查總和。
- 一種低密度奇偶檢查(以下稱LDPC)的操作方法,包括: 藉由使用一原碼字去進行一LDPC迭代運算,以獲得多個變量節點的一對應變量節點的一新決定位元值; 藉由使用該新決定位元值來更新被儲存於一決定位元儲存電路的該些變量節點的多個舊決定位元值中的一個對應舊決定位元值,其中當該LDPC迭代運算為收斂時,該決定位元儲存電路所儲存的該些變量節點的該些舊決定位元值作為一經解碼碼字; 儲存多個檢查節點的每一個的一檢查總和; 藉由使用該新決定位元值與該對應舊決定位元值來更新該些檢查總和中的一對應檢查總和;以及 依據該些檢查節點的該些檢查總和來判定該LDPC迭代運算是否為收斂。
- 如申請專利範圍第6項所述的LDPC的操作方法,更包括: 藉由使用一檢查矩陣來計算該些檢查節點的該些檢查總和。
- 如申請專利範圍第6項所述的LDPC的操作方法,其中所述更新該些檢查總和中的該對應檢查總和的步驟包括: 藉由使用該對應舊決定位元值來去除在該對應檢查總和中該對應舊決定位元值所對應的成份;以及 將該新決定位元值所對應的成份加入該對應檢查總和。
- 如申請專利範圍第6項所述的LDPC的操作方法,其中所述更新該些檢查總和中的該對應檢查總和的步驟包括: 計算Check_Sum_New = Check_Sum_Old XOR D_Old XOR D_New,其中Check_Sum_New為被更新後的該對應檢查總和,Check_Sum_Old為被更新前的該對應檢查總和,D_Old為該對應舊決定位元值,D_New為該新決定位元值,而XOR為互斥或運算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/379,454 | 2016-12-14 | ||
US15/379,454 US10050643B2 (en) | 2016-12-14 | 2016-12-14 | Low-density parity-check apparatus and operation method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201822217A TW201822217A (zh) | 2018-06-16 |
TWI675373B true TWI675373B (zh) | 2019-10-21 |
Family
ID=59337983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106100695A TWI675373B (zh) | 2016-12-14 | 2017-01-10 | 低密度奇偶檢查裝置與其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10050643B2 (zh) |
CN (1) | CN106981296B (zh) |
TW (1) | TWI675373B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI657669B (zh) * | 2017-11-28 | 2019-04-21 | 財團法人資訊工業策進會 | 低密度奇偶檢查碼解碼器及其解碼方法 |
CN110445583B (zh) * | 2019-08-12 | 2022-05-17 | 珠海市伟高变频科技有限公司 | 数据传输的校验方法、校验系统及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398453B2 (en) * | 2005-10-03 | 2008-07-08 | Motorola, Inc. | Method and apparatus for a low-density parity-check decoder |
TW201008133A (en) * | 2008-08-04 | 2010-02-16 | Seagate Technology Llc | Low density parity check decoder using multiple variable node degree distribution codes |
TW201010294A (en) * | 2008-08-15 | 2010-03-01 | Lsi Corp | Error-correction decoder employing multiple check-node algorithms |
TW201404048A (zh) * | 2012-07-11 | 2014-01-16 | Novatek Microelectronics Corp | 疊代解碼裝置及其相關解碼方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130139022A1 (en) * | 2011-11-28 | 2013-05-30 | Lsi Corporation | Variable Sector Size LDPC Decoder |
US20140089757A1 (en) * | 2012-09-22 | 2014-03-27 | Lsi Corporation | LDPC Decoder With Fractional Local Iterations |
-
2016
- 2016-12-14 US US15/379,454 patent/US10050643B2/en active Active
-
2017
- 2017-01-10 TW TW106100695A patent/TWI675373B/zh active
- 2017-01-19 CN CN201710043273.8A patent/CN106981296B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398453B2 (en) * | 2005-10-03 | 2008-07-08 | Motorola, Inc. | Method and apparatus for a low-density parity-check decoder |
TW201008133A (en) * | 2008-08-04 | 2010-02-16 | Seagate Technology Llc | Low density parity check decoder using multiple variable node degree distribution codes |
TW201010294A (en) * | 2008-08-15 | 2010-03-01 | Lsi Corp | Error-correction decoder employing multiple check-node algorithms |
TW201404048A (zh) * | 2012-07-11 | 2014-01-16 | Novatek Microelectronics Corp | 疊代解碼裝置及其相關解碼方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106981296B (zh) | 2019-06-21 |
US10050643B2 (en) | 2018-08-14 |
CN106981296A (zh) | 2017-07-25 |
TW201822217A (zh) | 2018-06-16 |
US20180167087A1 (en) | 2018-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI652686B (zh) | 低密度奇偶檢查裝置與脫離矩陣陷阱集合方法 | |
US9529666B2 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
JP5992628B2 (ja) | 信頼性データの更新 | |
TWI592937B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI512732B (zh) | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
TWI543178B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9170877B2 (en) | Resolving trapping sets | |
TWI541820B (zh) | 解碼方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9274891B2 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
TWI697907B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
US10318202B2 (en) | Non-volatile memory apparatus and data deduplication method thereof | |
KR102540772B1 (ko) | 에러 정정 회로 및 이의 동작 방법 | |
US9553608B2 (en) | Data storage device decoder and method of operation | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI655573B (zh) | 非依電性記憶體裝置及其迭代排序方法 | |
TWI675373B (zh) | 低密度奇偶檢查裝置與其操作方法 | |
CN107402725B (zh) | 非易失性存储装置及其数据去重复方法 | |
TWI594253B (zh) | 非依電性記憶體裝置及其空頁偵測方法 | |
TW202409837A (zh) | 記憶體控制器及快閃記憶體的存取方法 |