TWI652686B - 低密度奇偶檢查裝置與脫離矩陣陷阱集合方法 - Google Patents

低密度奇偶檢查裝置與脫離矩陣陷阱集合方法 Download PDF

Info

Publication number
TWI652686B
TWI652686B TW106100972A TW106100972A TWI652686B TW I652686 B TWI652686 B TW I652686B TW 106100972 A TW106100972 A TW 106100972A TW 106100972 A TW106100972 A TW 106100972A TW I652686 B TWI652686 B TW I652686B
Authority
TW
Taiwan
Prior art keywords
information
trap set
original
matrix
constant
Prior art date
Application number
TW106100972A
Other languages
English (en)
Other versions
TW201822218A (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 威盛電子股份有限公司
Publication of TW201822218A publication Critical patent/TW201822218A/zh
Application granted granted Critical
Publication of TWI652686B publication Critical patent/TWI652686B/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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • 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/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes
    • H03M13/175Error trapping or 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

一種低密度奇偶檢查(LDPC)裝置與脫離矩陣陷阱集合方法。LDPC裝置包括對數相似率(LLR)轉換電路、變量節點(VN)計算電路、調整電路、檢查節點(CN)計算電路以及控制器。LLR轉換電路將原碼字轉換為LLR向量。VN計算電路使用LLR向量與C2V資訊來計算原V2C資訊。調整電路依照係數來調整原V2C資訊而獲得經調整V2C資訊。CN計算電路使用經調整V2C資訊來計算所述C2V資訊,以及將C2V資訊提供給VN計算電路。控制器決定是否調整所述係數。當LDPC迭代運算落入矩陣陷阱集合時,控制器決定調整所述係數,以便使LDPC迭代運算脫離矩陣陷阱集合。

Description

低密度奇偶檢查裝置與脫離矩陣陷阱集合方法
本發明是有關於一種奇偶檢查(parity check)技術,且特別是有關於一種低密度奇偶檢查(Low-Density Parity-Check,以下稱LDPC)裝置與脫離矩陣陷阱集合(Matrix trapping set)方法。
與傳統的硬碟設備相比,配置了快閃記憶體(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資訊的計算細節為習知技術,故不再贅述。
一般而言,通常雜訊(noise)越小,亦即原碼字的位元誤碼率(bit error rate,以下稱BER)越小,則LDPC解碼的幀誤碼率(frame error rate,以下稱FER)越低。無論如何,LDPC解碼的迭代運算有可能會發生矩陣陷阱集合(matrix trapping set)現象。當發生矩陣陷阱集合現象時,即使BER變小,但LDPC解碼的FER並沒有明顯降低。或者,即使BER變小,但LDPC解碼的FER的降低速度遠小於正常的降低速度。因此,當迭代運算落入矩陣陷阱集合時,固態硬碟需要執行脫離矩陣陷阱集合(matrix trapping set breaking),使LDPC解碼的迭代運算不會一直陷在矩陣陷阱集合的迭代迴圈中。
本發明提供一種低密度奇偶檢查(Low-Density Parity-Check,以下稱LDPC)裝置與脫離矩陣陷阱集合(matrix trapping set)方法,其可以使LDPC裝置所進行的迭代運算脫離矩陣陷阱集合。
本發明的實施例提供一種低密度奇偶檢查(LDPC)裝置,用以進行迭代運算以解碼原碼字(codeword)。LDPC裝置包括對數相似率(log likelihood ratio,以下稱LLR)轉換電路、變量節點(variable node, VN)計算電路、調整電路、檢查節點(check node, CN)計算電路以及控制器。LLR轉換電路被配置為依據映射關係來將原碼字轉換為LLR向量。變量節點計算電路耦接至LLR轉換電路,以接收LLR向量。變量節點計算電路被配置為使用LLR向量與至少一C2V資訊來計算從至少一變量節點到至少一檢查節點的至少一原V2C資訊。調整電路耦接至變量節點計算電路,以接收所述原V2C資訊。調整電路被配置為依照至少一係數來調整所述原V2C資訊而獲得至少一經調整V2C資訊。檢查節點計算電路耦接至調整電路,以接收所述經調整V2C資訊。檢查節點計算電路被配置為使用所述經調整V2C資訊來計算從所述檢查節點到所述變量節點的所述至少一C2V資訊,以及將所述至少一C2V資訊提供給變量節點計算電路。控制器耦接至調整電路。控制器被配置為決定是否調整所述係數。當迭代運算落入矩陣陷阱集合時,控制器決定調整所述係數,以便使迭代運算脫離矩陣陷阱集合。
本發明的實施例提供一種脫離矩陣陷阱集合方法,用以使LDPC裝置所進行的迭代運算脫離矩陣陷阱集合。所述脫離矩陣陷阱集合方法包括:依據映射關係來將原碼字轉換為LLR向量;使用LLR向量與至少一C2V資訊來計算從至少一變量節點到至少一檢查節點的至少一原V2C資訊;依照至少一係數來調整所述原V2C資訊而獲得至少一經調整V2C資訊;使用所述經調整V2C資訊來計算從所述檢查節點到所述變量節點的所述至少一C2V資訊;以及決定是否調整所述係數,其中當迭代運算落入矩陣陷阱集合時,決定調整所述係數,以便使迭代運算脫離矩陣陷阱集合。
基於上述,本發明諸實施例所述LDPC裝置與脫離矩陣陷阱集合方法,其可以決定是否調整從變量節點被傳送到檢查節點的V2C資訊。當LDPC解碼的迭代運算落入矩陣陷阱集合時,決定調整係數來改變所述經調整V2C資訊,以便使迭代運算脫離矩陣陷阱集合。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖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的解碼演算。
圖2是依照本發明一實施例說明圖1所示低密度奇偶檢查(LDPC)裝置114的電路方塊(circuit block)示意圖。LDPC裝置114可以進行LDPC的迭代運算,以解碼原碼字IN而獲得經解碼的資料OUT。於圖2所示實施例中,LDPC裝置114包括對數相似率(log likelihood ratio,以下稱LLR)轉換電路210、變量節點(VN)計算電路220、調整電路230、檢查節點(CN)計算電路240以及控制器250。
圖3是依照本發明一實施例說明一種低密度奇偶檢查(LDPC)方法與脫離矩陣陷阱集合方法的流程示意圖。請參照圖2與圖3,LLR轉換電路210可以在步驟S310中依據映射關係來將原碼字IN轉換為對數相似率(LLR)向量。LLR向量中的任何一個LLR值是表示「原碼字IN的某一特定位元是某一特定值」的可能性。LLR的範圍可以從-x到x。在一些實施例中,-x表示原碼字IN的某一特定位元被確信為邏輯「1」,而x表示原碼字IN的某一特定位元被確信為邏輯「0」。在另一些實施例中,-x表示原碼字IN的某一特定位元被確信為邏輯「0」,而x表示原碼字IN的某一特定位元被確信為邏輯「1」。
VN計算電路220耦接至LLR轉換電路210,以接收LLR向量。VN計算電路220可以在步驟S320中使用所述LLR向量(由LLR轉換電路210所提供)與至少一C2V資訊(亦即圖2所示「C2V」,由CN計算電路240所提供),來計算從變量節點到檢查節點的至少一原V2C資訊V2C_1。VN計算電路220所進行的計算相當於校驗矩陣H的列處理。VN計算電路220所進行的計算V2C資訊的細節可以是習知演算法或是其他演算法。
調整電路230耦接至VN計算電路220,以接收所述原V2C資訊V2C_1。調整電路230可以在步驟S330中依照至少一係數來調整所述原V2C資訊V2C_1,而獲得至少一經調整V2C資訊V2C_2。所述係數受控於控制器250。在一些實施例中,所述係數包括比例係數SF,而調整電路230可以計算等式V2C_2 = V2C_1*SF,以獲得所述經調整V2C資訊V2C_2,其中比例係數SF為實數。舉例來說(但不限於此),所述比例係數SF小於或等於1,且所述比例係數SF大於0。舉例來說,所述比例係數SF可以是1、0.75、0.625、0.5或是其他實數。在另一些實施例中,所述係數包括比例係數SF與常數C1,而調整電路230可以計算等式V2C_2 = V2C_1*SF + C1,以獲得所述經調整V2C資訊V2C_2,其中比例係數SF與常數C1為實數。
CN計算電路240耦接至調整電路230,以接收所述經調整V2C資訊V2C_2。CN計算電路240可以在步驟S340中使用所述經調整V2C資訊V2C_2,來計算從檢查節點到變量節點的所述C2V資訊,以及將所述C2V資訊(亦即圖2所示「C2V」)提供給VN計算電路220。CN計算電路240所進行的計算相當於校驗矩陣H的行處理。CN計算電路240所進行的計算C2V資訊的細節可以是習知演算法或是其他演算法。
至此,步驟S320、S330與S340完成了一次迭代。控制器250可以控制VN計算電路220與CN計算電路240,以進行/監督LDPC迭代運算。控制器250在步驟S350中可以判斷變量節點的資訊是否收斂。當變量節點的資訊尚未收斂時,表示LDPC解碼尚未成功,因此控制器250可以控制VN計算電路220與CN計算電路240去進行下一次迭代,亦即再一次執行步驟S320、S330、S340與S350。當變量節點的資訊已收斂時,表示LDPC解碼成功,因此控制器250可以停止/完成迭代運算。在一些情況下,迭代運算的迭代次數已達到最大迭代次數,但變量節點的資訊尚未收斂,此時控制器250可以斷定LDPC解碼失敗而停止迭代運算。
無論如何,在完成迭代運算之前,LDPC解碼的迭代運算有可能會發生矩陣陷阱集合(matrix trapping set)現象。控制器250需要執行圖3所示脫離矩陣陷阱集合(matrix trapping set breaking)方法,使LDPC解碼的迭代運算不會一直陷在矩陣陷阱集合的迭代迴圈中。控制器250可以獲知矩陣陷阱集合有無發生。所述「矩陣陷阱集合」以及「如何獲知矩陣陷阱集合」,其為習知技術,故不再贅述。
控制器250耦接至調整電路230。控制器250在步驟S360中可以決定是否調整步驟S330的所述係數。當LDPC的迭代運算落入矩陣陷阱集合時,控制器250可以在步驟S360中決定調整步驟S330的所述係數,以便使LDPC的迭代運算脫離矩陣陷阱集合。舉例來說,在LDPC的迭代運算沒有落入矩陣陷阱集合的情況下,步驟S330的所述係數可以是0.75;當LDPC的迭代運算落入矩陣陷阱集合時,控制器250可以將步驟S330的所述係數調整為0.5。
圖4是依照本發明另一實施例說明圖1所示低密度奇偶檢查(LDPC)裝置114的電路方塊(circuit block)示意圖。於圖4所示實施例中,LDPC裝置114包括LLR轉換電路410、VN計算電路420、調整電路430、CN計算電路440以及控制器450。圖4所示LLR轉換電路410、VN計算電路420、調整電路430、CN計算電路440以及控制器450可以參照圖2所示LLR轉換電路210、VN計算電路220、調整電路230、CN計算電路240以及控制器250的相關說明來類推,故不再贅述。
於圖4所示實施例中,控制器450還可以控制LLR轉換電路410,以決定是否調整LLR轉換電路410的映射關係。當LDPC的迭代運算落入矩陣陷阱集合時,控制器450可以決定調整LLR轉換電路410的映射關係,以便使LDPC的迭代運算脫離矩陣陷阱集合。當LDPC的迭代運算落入矩陣陷阱集合時,控制器450還可以決定改變調整電路430的係數(請詳參圖2所示調整電路230的相關說明),以便使LDPC的迭代運算脫離矩陣陷阱集合。
在一些實施例中,LLR轉換電路410包含了具有不同映射關係的多個查找表。當LDPC的迭代運算沒有落入矩陣陷阱集合時,控制器450控制LLR轉換電路410去選用這些查找表中的某一個查找表(例如一個默認查找表,在此稱第一查找表),以將原碼字IN轉換為LLR向量給VN計算電路420。當LDPC的迭代運算落入矩陣陷阱集合時,控制器450控制LLR轉換電路410去選用這些查找表中的另一個查找表(在此稱第二查找表),以將原碼字IN轉換為LLR向量給VN計算電路420。
在另一些實施例中,LLR轉換電路410可以將原碼字IN轉換為原對數相似率(LLR)向量LLR_1。「將原碼字IN轉換為原LLR向量LLR_1」可以參照習知演算法或是其他演算法來達成。LLR轉換電路410可以計算等式LLR_2 = LLR_1*C2 + C3,以獲得所述LLR向量LLR_2,其中C2表示第一常數,C3表示第二常數,而C2與C3為實數。當LDPC的迭代運算落入矩陣陷阱集合時,控制器450可以調整第一常數C2,或調整第二常數C3,或調整第一常數C2與第二常數C3,以便使LDPC的迭代運算脫離矩陣陷阱集合。舉例來說(但不限於此),當LDPC的迭代運算沒有落入矩陣陷阱集合時,控制器450可以將第一常數C2設為1且將第二常數C3設為0;當LDPC的迭代運算落入矩陣陷阱集合時,控制器450可以將第一常數C2設為非1且非0的實數,以及/或是將第二常數C3設為非0的實數。
值得注意的是,在不同的應用情境中,記憶體控制器110包括中央處理單元111、記憶體控制電路112、記憶體緩衝器113、低密度奇偶檢查(LDPC)裝置114、LLR轉換電路210、VN計算電路220、調整電路230、CN計算電路240、控制器250、LLR轉換電路410、VN計算電路420、調整電路430、CN計算電路440及/或控制器450的相關功能可以利用一般的編程語言(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)裝置與脫離矩陣陷阱集合方法,其可以決定是否調整從變量節點(VN)被傳送到檢查節點(CN)的V2C資訊。當LDPC解碼的迭代運算落入矩陣陷阱集合時,決定調整係數(V2C資訊的縮放係數)來改變所述經調整V2C資訊,以便使迭代運算脫離矩陣陷阱集合。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
100‧‧‧非依電性記憶體裝置
110‧‧‧記憶體控制器
111‧‧‧中央處理單元
112‧‧‧記憶體控制電路
113‧‧‧記憶體緩衝器
114‧‧‧低密度奇偶檢查(LDPC)裝置
120‧‧‧非依電性記憶體
210、410‧‧‧對數相似率(LLR)轉換電路
220、420‧‧‧變量節點(VN)計算電路
230、430‧‧‧調整電路
240、440‧‧‧檢查節點(CN)計算電路
250、450‧‧‧控制器
C2V‧‧‧C2V資訊
IN‧‧‧原碼字
OUT‧‧‧經解碼的資料
S310~S360‧‧‧步驟
V2C_1‧‧‧原V2C資訊
V2C_2‧‧‧經調整V2C資訊
圖1是依照本發明一實施例說明一種非依電性記憶體裝置的電路方塊(circuit block)示意圖。 圖2是依照本發明一實施例說明圖1所示低密度奇偶檢查裝置的電路方塊示意圖。 圖3是依照本發明一實施例說明一種低密度奇偶檢查方法與脫離矩陣陷阱集合方法的流程示意圖。 圖4是依照本發明另一實施例說明圖1所示低密度奇偶檢查裝置的電路方塊示意圖。

Claims (17)

  1. 一種低密度奇偶檢查裝置,用以進行一迭代運算以解碼一原碼字,包括: 一對數相似率轉換電路,被配置為依據一映射關係來將該原碼字轉換為一對數相似率向量; 一變量節點計算電路,耦接至該對數相似率轉換電路以接收該對數相似率向量,被配置為使用該對數相似率向量與至少一C2V資訊來計算從至少一變量節點到至少一檢查節點的至少一原V2C資訊; 一調整電路,耦接至該變量節點計算電路以接收所述原V2C資訊,被配置為依照至少一係數來調整所述原V2C資訊而獲得至少一經調整V2C資訊; 一檢查節點計算電路,耦接至該調整電路以接收所述經調整V2C資訊,被配置為使用所述經調整V2C資訊來計算從所述檢查節點到所述變量節點的所述至少一C2V資訊,以及將所述至少一C2V資訊提供給該變量節點計算電路;以及 一控制器,耦接至該調整電路,被配置為決定是否調整所述係數,其中當該迭代運算落入一矩陣陷阱集合時,該控制器決定調整所述係數,以便使該迭代運算脫離該矩陣陷阱集合。
  2. 如申請專利範圍第1項所述的低密度奇偶檢查裝置,其中該控制器更被配置為控制該變量節點計算電路與該檢查節點計算電路,以進行該迭代運算。
  3. 如申請專利範圍第1項所述的低密度奇偶檢查裝置,其中所述係數包括一比例係數SF,該調整電路計算等式V2C_2=V2C_1*SF以獲得所述經調整V2C資訊V2C_2,其中V2C_1表示所述原V2C資訊,而該比例係數SF為實數。
  4. 如申請專利範圍第3項所述的低密度奇偶檢查裝置,其中所述比例係數SF小於1且大於0。
  5. 如申請專利範圍第1項所述的低密度奇偶檢查裝置,其中所述係數包括一比例係數SF與一常數C1,該調整電路計算等式V2C_2=V2C_1*SF+C1以獲得所述經調整V2C資訊V2C_2,其中V2C_1表示所述原V2C資訊,而該比例係數SF與該常數C1為實數。
  6. 如申請專利範圍第1項所述的低密度奇偶檢查裝置,其中該控制器還被配置為決定是否調整所述映射關係,當該迭代運算落入該矩陣陷阱集合時,該控制器決定調整所述映射關係,以便使該迭代運算脫離該矩陣陷阱集合。
  7. 如申請專利範圍第6項所述的低密度奇偶檢查裝置,其中該對數相似率轉換電路包含了具有不同映射關係的多個查找表,當該迭代運算沒有落入該矩陣陷阱集合時,該控制器控制該對數相似率轉換電路去選用該些查找表中的一第一查找表以將該原碼字轉換為該對數相似率向量,以及當該迭代運算落入該矩陣陷阱集合時,該控制器控制該對數相似率轉換電路去選用該些查找表中的一第二查找表以將該原碼字轉換為該對數相似率向量。
  8. 如申請專利範圍第6項所述的低密度奇偶檢查裝置,其中 該對數相似率轉換電路將該原碼字轉換為一原對數相似率向量LLR_1; 該對數相似率轉換電路計算等式LLR_2=LLR_1*C2+C3以獲得該對數相似率向量LLR_2,其中C2表示一第一常數,C3表示一第二常數,而C2與C3為實數;以及 當該迭代運算落入該矩陣陷阱集合時,該控制器調整該第一常數C2,或調整該第二常數C3,或調整該第一常數C2與該第二常數C3,以便使該迭代運算脫離該矩陣陷阱集合。
  9. 如申請專利範圍第8項所述的低密度奇偶檢查裝置,其中當該迭代運算沒有落入該矩陣陷阱集合時,該控制器將該第一常數C2設為1,且將該第二常數C3設為0。
  10. 一種脫離矩陣陷阱集合方法,用以使低密度奇偶檢查裝置所進行的一迭代運算脫離一矩陣陷阱集合,所述脫離矩陣陷阱集合方法包括: 依據一映射關係來將一原碼字轉換為一對數相似率向量; 使用該對數相似率向量與至少一C2V資訊來計算從至少一變量節點到至少一檢查節點的至少一原V2C資訊; 依照至少一係數來調整所述原V2C資訊而獲得至少一經調整V2C資訊; 使用所述經調整V2C資訊來計算從所述檢查節點到所述變量節點的所述至少一C2V資訊;以及 決定是否調整所述係數,其中當該迭代運算落入該矩陣陷阱集合時,決定調整所述係數,以便使該迭代運算脫離該矩陣陷阱集合。
  11. 如申請專利範圍第10項所述的脫離矩陣陷阱集合方法,其中所述係數包括一比例係數SF,而所述調整所述原V2C資訊之步驟包括: 計算等式V2C_2=V2C_1*SF,以獲得所述經調整V2C資訊V2C_2,其中V2C_1表示所述原V2C資訊,而該比例係數SF為實數。
  12. 如申請專利範圍第11項所述的脫離矩陣陷阱集合方法,其中所述比例係數SF小於1且大於0。
  13. 如申請專利範圍第10項所述的脫離矩陣陷阱集合方法,其中所述係數包括一比例係數SF與一常數C1,而所述調整所述原V2C資訊之步驟包括: 計算等式V2C_2=V2C_1*SF+C1,以獲得所述經調整V2C資訊V2C_2,其中V2C_1表示所述原V2C資訊,而該比例係數SF與該常數C1為實數。
  14. 如申請專利範圍第10項所述的脫離矩陣陷阱集合方法,更包括: 決定是否調整所述映射關係,其中當該迭代運算落入該矩陣陷阱集合時,決定調整所述映射關係,以便使該迭代運算脫離該矩陣陷阱集合。
  15. 如申請專利範圍第14項所述的脫離矩陣陷阱集合方法,其中所述調整所述映射關係之步驟包括: 提供具有不同映射關係的多個查找表; 當該迭代運算沒有落入該矩陣陷阱集合時,選用該些查找表中的一第一查找表,以將該原碼字轉換為該對數相似率向量;以及 當該迭代運算落入該矩陣陷阱集合時,選用該些查找表中的一第二查找表,以將該原碼字轉換為該對數相似率向量。
  16. 如申請專利範圍第14項所述的脫離矩陣陷阱集合方法,其中所述調整所述映射關係之步驟包括: 將該原碼字轉換為一原對數相似率向量LLR_1; 計算等式LLR_2=LLR_1*C2+C3,以獲得該對數相似率向量LLR_2,其中C2表示一第一常數,C3表示一第二常數,而C2與C3為實數;以及 當該迭代運算落入該矩陣陷阱集合時,調整該第一常數C2,或調整該第二常數C3,或調整該第一常數C2與該第二常數C3,以便使該迭代運算脫離該矩陣陷阱集合。
  17. 如申請專利範圍第16項所述的脫離矩陣陷阱集合方法,其中所述調整所述映射關係之步驟更包括: 當該迭代運算沒有落入該矩陣陷阱集合時,將該第一常數C2設為1,且將該第二常數C3設為0。
TW106100972A 2016-12-14 2017-01-12 低密度奇偶檢查裝置與脫離矩陣陷阱集合方法 TWI652686B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/379,450 2016-12-14
US15/379,450 US10141953B2 (en) 2016-12-14 2016-12-14 Low-density parity-check apparatus and matrix trapping set breaking method

Publications (2)

Publication Number Publication Date
TW201822218A TW201822218A (zh) 2018-06-16
TWI652686B true TWI652686B (zh) 2019-03-01

Family

ID=59334824

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106100972A TWI652686B (zh) 2016-12-14 2017-01-12 低密度奇偶檢查裝置與脫離矩陣陷阱集合方法

Country Status (3)

Country Link
US (1) US10141953B2 (zh)
CN (1) CN106971759B (zh)
TW (1) TWI652686B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI682636B (zh) * 2018-06-13 2020-01-11 財團法人資訊工業策進會 通訊系統之低密度奇偶檢查碼的解碼方法及應用其之通訊裝置
KR102592870B1 (ko) * 2018-10-12 2023-10-24 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
US11159175B2 (en) * 2019-06-21 2021-10-26 Intel Corporation Non-uniform iteration-dependent min-sum scaling factors for improved performance of spatially-coupled LDPC codes
TWI748214B (zh) * 2019-07-29 2021-12-01 慧榮科技股份有限公司 快閃記憶體控制器、儲存裝置及其讀取方法
US11269645B2 (en) * 2020-03-11 2022-03-08 Western Digital Technologies, Inc. Storage system and method for implementing an encoder, decoder, and/or buffer using a field programmable gate array
US11664821B1 (en) * 2022-02-08 2023-05-30 SK Hynix Inc. Error floor performance of a bit flipping decoder through identifying unreliable check nodes
US11996862B2 (en) * 2022-09-07 2024-05-28 Seagate Technology Llc High performance decoder

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899738B1 (ko) 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
US8418023B2 (en) * 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
US20110083058A1 (en) 2009-10-01 2011-04-07 Stmicroelectronics, Inc. Trapping set based ldpc code design and related circuits, systems, and methods
US8806309B2 (en) * 2011-06-13 2014-08-12 Silicon Motion Inc. Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
US8689084B1 (en) * 2011-06-27 2014-04-01 Cadence Design Systems, Inc. Method and apparatus for breaking trapping sets in decoding of information
CN102594365B (zh) * 2012-02-29 2015-02-18 中山大学 一种ldpc码的动态异步bp译码方法
US9141467B2 (en) 2012-03-23 2015-09-22 Samsung Electronics Co., Ltd. Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof
US8739004B2 (en) * 2012-05-10 2014-05-27 Lsi Corporation Symbol flipping LDPC decoding system
US8930788B2 (en) * 2012-09-04 2015-01-06 Lsi Corporation LDPC decoder with fractional unsatisfied check quality metric
US8990661B1 (en) 2013-03-05 2015-03-24 Pmc-Sierra Us, Inc. Layer specific attenuation factor LDPC decoder
US8935598B1 (en) 2013-03-12 2015-01-13 Pmc-Sierra Us, Inc. System and method for adaptive check node approximation in LDPC decoding
US8984376B1 (en) * 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for avoiding error mechanisms in layered iterative decoding
US8984365B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding
US20160191079A1 (en) 2014-12-24 2016-06-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Low Dynamic Power Check Node Processor For Low Density Parity Check Decoder
CN105991141A (zh) * 2015-02-15 2016-10-05 上海高清数字科技产业有限公司 Ldpc译码方法
TWI578714B (zh) * 2015-04-02 2017-04-11 國立清華大學 低密度奇偶檢查碼解碼方法及用於該解碼方法的資訊儲存方法

Also Published As

Publication number Publication date
TW201822218A (zh) 2018-06-16
US20180167086A1 (en) 2018-06-14
CN106971759A (zh) 2017-07-21
US10141953B2 (en) 2018-11-27
CN106971759B (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
TWI652686B (zh) 低密度奇偶檢查裝置與脫離矩陣陷阱集合方法
US11334429B2 (en) Non-volatile memory apparatus and reading method thereof
US10581458B2 (en) Data storage apparatus and operating method thereof
US9319073B2 (en) Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding
JP6110953B2 (ja) 階層化反復誤り訂正のための停止基準
US9973213B2 (en) Decoding method, and memory storage apparatus and memory control circuit unit using the same
JP5992628B2 (ja) 信頼性データの更新
US11184030B2 (en) Storage controller for correcting error, storage device including the same, and operating method thereof
TWI666643B (zh) 非依電性記憶體裝置及其資料去重複方法
US9747974B2 (en) Non-volatile memory apparatus and on-the-fly self-adaptive read voltage adjustment method thereof
KR102543059B1 (ko) 저밀도 패리티 체크 코드의 디코딩 방법, 이를 수행하는 디코더 및 시스템
US20160020784A1 (en) Decoding method, memory storage device and memory control circuit unit
TWI655573B (zh) 非依電性記憶體裝置及其迭代排序方法
TWI670725B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI675373B (zh) 低密度奇偶檢查裝置與其操作方法
TWI594253B (zh) 非依電性記憶體裝置及其空頁偵測方法
CN107402725B (zh) 非易失性存储装置及其数据去重复方法
US10733107B2 (en) Non-volatile memory apparatus and address classification method thereof
US10606695B2 (en) Error correction circuit and memory system including the same
KR20210138390A (ko) 에러 정정 디코더, 이를 포함하는 에러 정정 회로 및 에러 정정 디코더의 동작 방법
TWI829252B (zh) 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置
CN117472643A (zh) 低密度奇偶校检码的译码方法、存储介质和装置
TW202314500A (zh) 儲存單元、操作儲存單元的方法以及電腦實施系統