TW202322576A - 低密度同位檢查解碼器及儲存裝置 - Google Patents

低密度同位檢查解碼器及儲存裝置 Download PDF

Info

Publication number
TW202322576A
TW202322576A TW111134030A TW111134030A TW202322576A TW 202322576 A TW202322576 A TW 202322576A TW 111134030 A TW111134030 A TW 111134030A TW 111134030 A TW111134030 A TW 111134030A TW 202322576 A TW202322576 A TW 202322576A
Authority
TW
Taiwan
Prior art keywords
check
variable node
variable
nodes
low
Prior art date
Application number
TW111134030A
Other languages
English (en)
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
Priority claimed from KR1020220008006A external-priority patent/KR102511827B1/ko
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202322576A publication Critical patent/TW202322576A/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/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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • 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
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • 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/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are 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/1148Structural properties of the code parity-check or generator matrix
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Error Detection And Correction (AREA)

Abstract

一種低密度同位檢查(LDPC)解碼器使用碼字的值對可變節點進行初始化且參照不規則同位檢查矩陣輸出經更新的可變節點作為經解碼訊息。LDPC解碼器包括:多個單元邏輯電路,在其中所有單元邏輯電路對包括至少一個可變節點的一個可變節點群組進行更新的單模式下或者在其中單元邏輯電路中的每一者藉由對不同的可變節點進行更新來並行地對多個可變節點群組進行更新的多模式下進行操作;以及模式控制器,控制所述多個單元邏輯電路在單模式下對可變節點群組之中具有較臨限度大的度的高度可變節點群組進行更新、以及在多模式下對可變節點群組之中具有較臨限度小或等於臨限度的度的低度可變節點群組進行更新。

Description

低密度同位檢查解碼器及儲存裝置
本發明概念的各態樣是有關於一種低密度同位檢查(LDPC)解碼器及包括LDPC解碼器的儲存裝置。 [相關申請案的交叉參考]
本申請案主張於2021年11月24日在韓國智慧財產局提出申請的韓國專利申請案第10-2021-0162955號及於2022年1月19日在韓國智慧財產局提出申請的韓國專利申請案第10-2022-0008006號的優先權權益,所述韓國專利申請案的全部揭露內容出於全部目的以引用的方式併入本案。
半導體記憶體被劃分為揮發性記憶體裝置及非揮發性記憶體裝置。揮發性記憶體裝置在斷電時可能丟失所儲存的資料,但非揮發性記憶體裝置即使在斷電時亦可保持所儲存的資料。具體而言,由於快閃記憶體具有例如高程式化速度、低功耗及高容量資料儲存的優點,因此快閃記憶體已被廣泛用作電腦系統及類似裝置中的儲存媒體。
當資料被程式化至非揮發性記憶體的記憶體胞元中時,記憶體胞元的臨限電壓形成特定範圍的臨限電壓分佈。隨著非揮發性記憶體的操作繼續,臨限電壓分佈可能劣化。當臨限電壓分佈劣化時,可藉由以預定義的讀取位準實行讀取操作而在所讀取的資料中包括許多錯誤位元。
可藉由對所讀取的資料的實行錯誤校正解碼而自所讀取的資料獲得正確的資料。錯誤校正解碼的實例是低密度同位檢查(LDPC)解碼。LDPC解碼是一種藉由重複地實行對連接至彼此的可變節點與檢查節點的更新來對資料中的錯誤進行校正的解碼方法。可變節點與檢查節點之間的連接關係可由同位檢查矩陣來定義。
當連接至可變節點中的每一者的檢查節點的數目不恆定時,LDPC碼可被稱為不規則LDPC碼。當連接至可變節點中的每一者的檢查節點的數目不同時,對每一可變節點進行更新所需的計算量可能不同。若對每一可變節點進行更新所需的計算量不同,則當LDPC解碼器依序對可變節點進行更新時,LDPC解碼器的計算資源可能未被完全利用。
實例性實施例提供一種具有改善的通量及改善的解碼延遲的LDPC解碼器。
實例性實施例亦提供一種能夠使用低密度同位檢查(LDPC)解碼器準確且快速地讀取儲存於記憶體胞元中的資料的儲存裝置。
根據實例性實施例,一種低密度同位檢查(LDPC)解碼器使用碼字的值對可變節點進行初始化且參照不規則同位檢查矩陣輸出經更新的可變節點作為經解碼訊息,LDPC解碼器包括:多個單元邏輯電路,在其中所有單元邏輯電路對包括至少一個可變節點的一個可變節點群組進行更新的單模式下或者在其中單元邏輯電路中的每一者藉由對不同的可變節點進行更新來並行地對多個可變節點群組進行更新的多模式下進行操作;以及模式控制器,控制所述多個單元邏輯電路在單模式下對可變節點群組之中具有較臨限度大的度的高度可變節點群組進行更新、以及在多模式下對可變節點群組之中具有較臨限度小或等於臨限度的度的低度可變節點群組進行更新。
根據實例性實施例,一種低密度同位檢查(LDPC)解碼器包括:資料緩衝器,對使用不規則LDPC碼進行編碼的資料進行緩衝且將資料的值提供至可變節點;檢查節點更新器,對連接至可變節點的檢查節點進行更新;可變節點更新器,對連接至經更新的檢查節點的可變節點進行更新;以及校正子檢查器,根據經更新的可變節點的校正子檢查結果來輸出可變節點的值作為經解碼資料,其中可變節點更新器包括一或多個單元邏輯電路群組,且根據可變節點中的每一者所需的計算量而控制單元邏輯電路群組中的每一者在一個循環中對一個可變節點進行更新或者控制單元邏輯電路群組中的每一者中所包括的單元邏輯電路中的每一者在一個循環中並行地對不同的可變節點進行更新。
根據實例性實施例,一種儲存裝置包括:記憶體裝置,儲存使用不規則低密度同位檢查(LDPC)碼進行編碼的資料;以及LDPC單元,使用自記憶體裝置輸出的資料值對可變節點進行初始化,對連接至可變節點的檢查節點進行更新,端視可變節點中的每一者的度是否超過臨限度而藉由重複地實行在一個循環中對Q個(其中Q是自然數)可變節點進行更新或在一個循環中同時對Q*K個(其中K是自然數)可變節點進行更新的操作來對可變節點進行更新,且根據可變節點的校正子檢查結果來輸出可變節點的值。
在下文中,將參照附圖闡述本揭露中的示例性實施例。
圖1是示出根據本揭露中的示例性實施例的低密度同位檢查(LDPC)解碼器100的方塊圖。
參照圖1,LDPC解碼器100可包括主解碼器110及記憶體120。
記憶體120可儲存主解碼器110實行錯誤校正解碼所必需的資料。舉例而言,記憶體120可儲存用於LDPC解碼的同位檢查矩陣121。記憶體120可根據主解碼器110的請求向主解碼器110提供經解碼資料。
主解碼器110可自外部接收碼字CW。另外,主解碼器110可自記憶體120接收經解碼資料。主解碼器110可參照來自記憶體120的資料對碼字CW實行錯誤校正解碼。
舉例而言,主解碼器110可藉由參照同位檢查矩陣121重複地實行檢查節點更新過程及可變節點更新過程來對碼字CW實行錯誤校正解碼。構成LDPC的每一同位檢查可被視為單一同位檢查(single parity check,SPC)碼。對每一SPC碼的解碼可被稱為「檢查節點更新」處理,且對變量的交叉檢查常常被稱為「可變節點更新」處理。當主解碼器110成功地對碼字CW實行錯誤校正解碼時,主解碼器110可將經錯誤校正的資料作為訊息MSG輸出至外部。
同時,同位檢查矩陣121可指示可變節點與檢查節點之間的連接關係。主解碼器110可藉由參照同位檢查矩陣121在連接至檢查節點的可變節點之間實行操作且藉由在連接至可變節點的檢查節點之間實行操作來對檢查節點進行更新,藉此對可變節點進行更新。
可根據連接至可變節點中的每一者的檢查節點的數目而將同位檢查矩陣121可分類為規則同位檢查矩陣及不規則同位檢查矩陣。規則同位檢查矩陣可指具有連接至可變節點中的每一者的相同數目的檢查節點的矩陣。另外,不規則同位檢查矩陣可指其中連接至可變節點中的每一者的檢查節點的數目不相同的矩陣。在下文中,連接至可變節點的檢查節點的數目可被稱為可變節點的度。
為了對可變節點進行更新,由於需要對連接至可變節點的檢查節點實行操作,因此隨著可變節點的度越高,對可變節點進行更新所需的計算量可能會增加。主解碼器110可具有足夠的計算資源來對在一個循環中具有最大度的可變節點進行更新。舉例而言,一個循環可指一個時脈循環。若主解碼器110在一個週期中對一個可變節點進行更新,則主解碼器110的計算資源在其中對具有相對低度的可變節點進行更新的週期中可能未被充分利用。
根據本揭露中的示例性實施例,主解碼器110可包括多個單元邏輯電路111及112以及模式控制器113。所述多個單元邏輯電路111及112可提供用於對可變節點進行更新的計算資源。所述多個單元邏輯電路111及112可支援至少兩種操作模式。舉例而言,所述多個單元邏輯電路111及112可支援其中所有所述多個單元邏輯電路對一個可變節點進行更新的單模式、以及其中所述多個單元邏輯電路中的每一者藉由對不同的可變節點進行更新來並行地對多個可變節點進行更新的多模式。
模式控制器113可對所述多個單元邏輯電路111及112的操作模式進行控制。根據本揭露中的示例性實施例,模式控制器113可控制所述多個單元邏輯電路111及112在單模式下對可變節點之中具有較臨限度大的度的高度可變節點進行更新、以及在多模式下對可變節點之中具有較臨限度小或等於臨限度的度的低度可變節點進行更新。
圖2是示出根據本揭露中的示例性實施例的LDPC解碼器的操作的流程圖。
在步驟S101中,LDPC解碼器可使用自外部接收的碼字的值對可變節點進行初始化。在步驟S102至S105中,LDPC解碼器可依序對所述多個可變節點進行更新。在下文中,經依序更新的可變節點之中的當前欲被更新的可變節點可被稱為目標可變節點。
在步驟S102中,LDPC解碼器可判斷目標可變節點的度是否大於臨限度D。舉例而言,LDPC解碼器可參考儲存於其中的同位檢查矩陣來確定目標可變節點的度,且將所確定的度與臨限度D進行比較。
當目標可變節點是具有較臨限度D大的度的高度可變節點(high-degree variable node,HDV)(步驟S102中的「是」)時,在步驟S103中,LDPC解碼器可在單模式下對目標可變節點進行更新。
當目標可變節點是具有較臨限度D小或等於臨限度D的度的低度可變節點(low-degree variable node,LDV)(步驟S102中的「否」)時,在步驟S104中,LDPC解碼器可在多模式下對包括目標可變節點的二或更多個低度可變節點進行更新。即,可在一個循環中並行地對二或更多個低度可變節點進行更新。
在步驟S105中,LDPC解碼器可判斷是否所有可變節點均已被更新。當不是所有可變節點均被更新(步驟S105中的「否」)時,LDPC解碼器可返回至步驟S102以對尚未被更新的可變節點進行更新。
當所有可變節點均被更新(步驟S105中的「是」)時,LDPC解碼器可完成可變節點更新。在步驟S106中,LDPC解碼器可將經更新的可變節點的值作為經解碼訊息輸出至外部。
根據本揭露中的示例性實施例,LDPC解碼器可使用足夠的計算資源來對高度可變節點進行更新而並行地對多個低度可變節點進行更新。即使在其中對低度可變節點進行更新的循環中,LDPC解碼器亦可充分利用內部計算資源。因此,可改善LDPC解碼器的通量,且可快速對碼字中的錯誤進行校正。
在下文中,將參照圖3至圖13更詳細地闡述根據本揭露中的示例性實施例的LDPC解碼器。
圖3是用於更詳細地闡述根據本揭露中的第一示例性實施例的LDPC解碼器的方塊圖。
圖3示出可包括於LDPC解碼器中的主解碼器1100。主解碼器1100可與參照圖1闡述的主解碼器110對應。
主解碼器1100可包括資料緩衝器1110、可變節點更新器1120、檢查節點更新器1130、檢查節點傳遞單元1140及校正子檢查器1150。
資料緩衝器1110可對自外部接收的碼字CW進行緩衝。碼字CW可為由LDPC解碼器進行編碼的資料,且可為其中同位被添加至訊息的資料。資料緩衝器1110可進一步自外部接收與碼字CW的每一位元對應的對數似然比(log likelihood ratio,LLR)且對所述對數似然比(LLR)進行緩衝。
可變節點更新器1120可基於碼字CW及對數似然比來對可變節點進行初始化。可變節點可與碼字CW的位元對應。
檢查節點更新器1130可使用儲存於資料緩衝器1110中的可變節點的值來對檢查節點的值進行更新。舉例而言,檢查節點更新器1130可藉由在連接至檢查節點的可變節點之間實行最小值(min)運算來對檢查節點進行更新。
檢查節點傳遞單元1140可將由檢查節點更新器1130更新的檢查節點的值傳遞至可變節點更新器1120。
可變節點更新器1120可基於來自檢查節點傳遞單元1140的訊息來對可變節點進行更新。根據本揭露中的示例性實施例,可變節點更新器1120可包括多個單元邏輯電路1121及1122、模式控制器1123以及多個檢查節點緩衝器1124及1125。
所述多個單元邏輯電路1121及1122以及模式控制器1123可與參照圖1闡述的所述多個單元邏輯電路111及112以及模式控制器113對應。即,所述多個單元邏輯電路1121及1122可在其中所有單元邏輯電路121及122對一個可變節點進行更新的單模式下或者在其中單元邏輯電路121及122中的每一者藉由對一個可變節點進行更新來對多個可變節點進行更新的多模式下進行操作。模式控制器113可基於欲被更新的目標可變節點的度來控制所述多個單元邏輯電路1121及1122在單模式下或多模式下進行操作。
當目標可變節點是高度可變節點時,所述多個單元邏輯電路1121及1122可在單模式下進行操作。儘管將參照圖4至圖8更詳細地進行闡述,但為了對可變節點進行更新,可對連接至可變節點的檢查節點實行求和運算。連接至目標可變節點的檢查節點可被劃分為第一檢查節點及第二檢查節點。在單模式下,第一單元邏輯電路1121可對第一檢查節點實行求和運算,且第二單元邏輯電路1122可對第二檢查節點實行求和運算,藉此對目標可變節點進行更新。
當目標可變節點是低度可變節點時,所述多個單元邏輯電路1121及1122可在多模式下進行操作。舉例而言,可在所述多個單元邏輯電路1121及1122中並行地對作為低度可變節點的第一目標可變節點及第二目標可變節點進行更新。具體而言,在多模式下,第一單元邏輯電路1121可對連接至第一目標可變節點的檢查節點實行求和運算,且第二單元邏輯電路1122可對連接至第二目標可變節點的檢查節點實行求和運算。
所述多個單元邏輯電路1121及1122中的每一者可包括具有二或更多個輸入的加法器,以對檢查節點實行求和運算。
所述多個檢查節點緩衝器1124及1125可對自檢查節點傳遞單元1140傳遞的檢查節點的值進行緩衝。具體而言,第一檢查節點緩衝器1124可電性連接至第一單元邏輯電路1121,且可對欲在第一單元邏輯電路1121中計算的檢查節點的值進行緩衝。此外,第二檢查節點緩衝器1125可電性連接至第二單元邏輯電路1122,且可對欲在第二單元邏輯電路1122中計算的檢查節點的值進行緩衝。
同時,儘管在圖3中被省略,但可變節點更新器1120可更包括加法器,以用於在單模式下藉由所述多個單元邏輯電路111及112對第一檢查節點與第二檢查節點的運算結果進行合成。另外,可變節點更新器1120可更包括量化器,以用於根據經更新的可變節點的值的幅值將經更新的可變節點中的每一者量化為0或1。可將經量化資料作為經解碼資料輸出至外部。
校正子檢查器1150可自可變節點更新器1120獲得經解碼資料且對所獲得的資料實行同位檢查操作。校正子檢查器1150可藉由對儲存於LDPC解碼器中的同位檢查矩陣及所獲得的資料的每一位元實行矩陣運算來獲得校正子向量。舉例而言,當校正子向量的所有分量均具有值「0」時,經解碼資料可被確定為具有正確的值,且當校正子向量的分量中的任一者不具有值「0」時,經解碼資料可被確定為具有錯誤。
當確定出經解碼資料中不存在錯誤時,校正子檢查器1150可將經解碼資料作為經錯誤校正的訊息MSG輸出至外部。另一方面,當確定出經解碼資料中存在錯誤時,校正子檢查器1150可向檢查節點更新器1130提供訊號,以重複地實行檢查節點更新過程及可變節點更新過程。
在下文中,將參照圖4至圖8更詳細地闡述LDPC解碼器的操作。
圖4是示出由坦納圖表示的LDPC解碼的概念圖。
LDPC碼可指在對LDPC碼進行定義的同位檢查矩陣的每一列及每一行中具有非常少數目的「1」的碼。參照圖4,LDPC碼包括檢查節點610及可變節點620,且LDPC碼的結構可由坦納圖定義,坦納圖由對檢查節點610與可變節點620進行連接的邊615構成。
在檢查節點更新過程之後自檢查節點610被傳遞至可變節點620的值是檢查節點訊息615A,且在對可變節點的更新之後自可變節點620被傳遞至檢查節點610的值是可變節點訊息615B。
圖5是示出LDPC碼的坦納圖的示意圖。
參照圖5,LDPC碼的坦納圖包括表示預定的LDPC碼的同位檢查等式的15個檢查節點C1至C15、表示碼字的每一符號的9個可變節點V1至V9、以及表示檢查節點C1至C15與可變節點V1至V9之間的連接關係的邊。根據同位檢查矩陣,邊可對檢查節點C1至C15與可變節點V1至V9進行連接。可變節點V1至V9的初始值可為硬決策資料或軟決策資料。同時,圖5中示出的可變節點及檢查節點的數目僅為實例,且LDPC碼可包括數萬個可變節點及數千個檢查節點。
圖5示出不規則LDPC碼,其中連接至檢查節點C1至C15中的每一者的可變節點的數目是不同的且連接至可變節點V1至V9中的每一者的可變節點的數目是不同的。即,在由圖5所示坦納圖表示的LDPC碼中,可變節點可具有不同的度。
圖6A及圖6B是示出圖5所示坦納圖中具有不同度的可變節點的圖。
圖6A示出藉由粗線表示圖5所示坦納圖中的第一可變節點V1與檢查節點之間的連接關係的邊。參照圖6A,第一可變節點V1可連接至九個檢查節點C1、C2、C4、C5、C6、C8、C10、C11及C15,且第一可變節點V1的度可為「9」。
圖6B示出藉由粗線表示圖5所示坦納圖中的第三可變節點V3與檢查節點之間的連接關係的邊。參照圖6B,第三可變節點V3可連接至四個檢查節點C2、C7、C8及C12,且第三可變節點V3的度可為「4」。
圖7是示出與圖5所示坦納圖對應的同位檢查矩陣的圖。
同位檢查矩陣可包括多個行及多個列。所述多個行可與可變節點V1至V9對應,且所述多個列可與檢查節點C1至C15對應。在圖7所示同位檢查矩陣中,內連的可變節點與檢查節點相交的點處的分量可具有值「1」,且斷開的可變節點與檢查節點相交的點處的分量可具有值「0」。在圖7中,在其中存在「1」的點處示出模式,且在其中存在「0」的點處未示出模式。
類似於圖5中所示的坦納圖,在圖7中所示的同位檢查矩陣的每一行中可存在不同數目個「1」。即,可變節點的度可彼此不同。舉例而言,第一可變節點V1的行中的九個「1」可指示連接至第一可變節點V1的九個檢查節點。作為另一實例,第三可變節點V3的行中的四個「1」可指示連接至第三可變節點V3的四個檢查節點。
對一個可變節點進行更新所需的計算量可基於連接至可變節點的檢查節點的數目(即可變節點的度)來確定。舉例而言,為了對第一可變節點V1進行更新,可對來自九個檢查節點的訊息實行操作,且為了對第三可變節點V3進行更新,可對來自四個檢查節點的訊息實行操作。因此,隨著可變節點的度越高,對可變節點進行更新所需的計算量可能會增加。
根據本揭露中的示例性實施例,LDPC解碼器可控制多個單元邏輯電路來對其中一個循環中所需的計算量大於臨限值量的一個高度可變節點進行更新或者對其中一個循環中所需的計算量小於或等於計算臨限量的二或更多個低度可變節點進行更新。即使當低度可變節點被更新時,亦可充分利用由所述多個單元邏輯電路提供的計算資源,使得可增加LDPC解碼器的通量。
同時,可相對於其他可變節點來確定哪一可變節點是高度可變節點或是低度可變節點。舉例而言,在圖7所示實例中,可變節點V1至V9的度是2、3、4、8及9中的一者。所述多個單元邏輯電路可提供足夠的計算資源來在一個循環中對具有最高度「9」的可變節點進行更新。
當LDPC解碼器包括具有相等計算資源的兩個單元邏輯電路時,一個單元邏輯電路可具有足夠的計算資源來對具有2至4度的可變節點進行更新。舉例而言,兩個單元邏輯電路可各自包括具有五個輸入的加法器。由於所述兩個單元邏輯電路可對總共10個輸入進行處理,因此可在單模式下對具有9度的可變節點進行更新,且可在多模式下對具有2至4度的可變節點進行更新。
在上述實例中,LDPC解碼器可使用所有所述多個單元邏輯電路來對作為高度可變節點的具有8度或9度的可變節點進行更新。另一方面,LDPC解碼器可使用所述多個單元邏輯電路中的每一者來並行地對作為低度可變節點的具有2度至4度的可變節點進行更新。
即,可基於可變節點的度之中的最大度及所述多個單元邏輯電路的數目來確定用於將高度可變節點與低度可變節點劃分開的臨限度。具體而言,當單元邏輯電路包括加法器時,臨限度可能不超過加法器的輸入的數目。換言之,計算臨限量不可超過單元邏輯電路中的每一者的最大計算量。
圖8是示出LDPC解碼器的操作的流程圖。
LDPC解碼器可藉由重複進行其中可變節點與檢查節點交換針對每一節點產生及更新的訊息的過程來實行LDPC解碼。可變節點更新過程及檢查節點更新過程可藉由各種方法來實行。在下文中,將以其中藉由最小和方法對可變節點及檢查節點進行更新的情形為例來闡述LDPC解碼器的操作。
在步驟S201中,LDPC解碼器可將可變節點初始化為自外部接收的碼字的值。每一可變節點可與碼字的每一位元對應。
在步驟S202中,LDPC解碼器可使用最小值(min)運算來對檢查節點進行更新。舉例而言,當自檢查節點向目標可變節點傳遞訊息時,LDPC解碼器可對連接至檢查節點的可變節點之中除目標可變節點之外的其餘可變節點之中的最小值作為訊息進行傳遞。LDPC解碼器可儲存連接至檢查節點的可變節點的值之中的最小值、準最小值及最小值的代碼,以傳遞此種訊息。
在步驟S203中,LDPC解碼器可使用求和運算來對可變節點進行更新。舉例而言,當將訊息自可變節點傳遞至目標檢查節點時,LDPC解碼器可對連接至可變節點的檢查節點之中除了目標檢查節點之外的其餘可變節點的和作為訊息進行傳遞。LDPC解碼器可對連接至可變節點的檢查節點的值實行求和運算,以傳遞此種訊息。
稍後將參照圖9A及圖9B闡述根據本揭露中的示例性實施例的使用多個單元邏輯電路對可變節點進行更新的方法的實例。
在步驟S204中,LDPC解碼器可藉由基於經更新的可變節點的值實行校正子檢查來判斷LDPC解碼是否成功。舉例而言,LDPC解碼器可藉由對可變節點的值進行量化且對同位檢查矩陣與經量化值實行乘積運算來產生校正子向量。當校正子向量為零向量時,LDPC解碼器可確定LDPC解碼已成功,且否則,可確定LDPC解碼已失敗。
當LDPC解碼成功(步驟S204中的「是」)時,在步驟S205中,LDPC解碼器可將經量化值作為解碼資料輸出至外部。
另一方面,當LDPC解碼已失敗(步驟S204中的「否」)時,LDPC解碼器可返回至步驟S202,以重複地對檢查節點、可變節點及校正子檢查進行更新。
圖9A及圖9B是示出根據本揭露中的第一示例性實施例的對LDPC解碼器的可變節點進行更新的方法的流程圖。
在圖9A所示實例中,LDPC解碼器可按照同位檢查矩陣的行次序對可變節點進行更新。
在步驟S301中,LDPC解碼器的模式控制器可自第一可變節點起實行初始化以用於進行更新。
在步驟S302中,模式控制器可判斷第i個(i是自然數)可變節點(即,欲被更新的目標可變節點)的度是否大於臨限度D。
當目標可變節點是具有較臨限度D大的度的高度可變節點(步驟S302中的「是」)時,在步驟S303中,模式控制器可控制所述多個單元邏輯電路在單模式下對目標可變節點進行更新。
另一方面,當目標可變節點是具有較臨限度D小或等於臨限度D的度的低度可變節點(步驟S302中的「否」)時,在步驟S304中,模式控制器可判斷是否跳過對低度可變節點的更新。
舉例而言,當存在已被跳過的低度可變節點(步驟S304中的「是」)時,在步驟S305中,模式控制器可控制所述多個單元邏輯電路在多模式下對被跳過的可變節點與目標可變節點進行更新(即,並行地進行更新)。
另一方面,若不存在被跳過的低度可變節點(步驟S304中的「否」),則模式控制器可跳過對目標可變節點的更新,直至辨識出可與目標可變節點並行地進行更新的低度可變節點。當不存在被跳過的低度可變節點(步驟S304中的「否」)時,隨後在步驟S306中實行跳過可變節點更新,藉此指示現在存在被跳過的低度可變節點。
在步驟S307中,模式控制器可判斷是否所有可變節點均已被更新。當不是所有可變節點均被更新(步驟S307中的「否」)時,模式控制器可藉由實行步驟S308來對下一個可變節點進行更新。另一方面,當所有可變節點均被更新(步驟S307中的「是」)時,模式控制器可完成可變節點更新。
在圖9B所示實例中,LDPC解碼器可以度的降序來對可變節點進行更新。
在步驟S401中,LDPC解碼器的模式控制器可以度的降序將可變節點對準且在步驟S402中自具有最高度的可變節點起實行初始化以用於進行更新。
在步驟S403中,模式控制器可判斷第i個可變節點(即,欲被更新的目標可變節點)的度是否大於臨限度D。
當目標可變節點是具有較臨限度D大的度的高度可變節點(步驟S403中的「是」)時,在步驟S404中,模式控制器可控制所述多個單元邏輯電路在單模式下對目標可變節點進行更新。
在步驟S405中,模式控制器可判斷是否所有可變節點均已被更新。當所有可變節點均被更新(步驟S405中的「是」)時,模式控制器可完成可變節點更新。另一方面,當不是所有可變節點均被更新(步驟S405中的「否」)時,模式控制器可藉由實行步驟S406來對下一個可變節點進行更新。
當目標可變節點是具有較臨限度D低或等於臨限度D的度的低度可變節點(步驟S403中的「否」)時,目標可變節點的下一個可變節點亦可為低度可變節點。在步驟S407中,模式控制器可控制所述多個單元邏輯電路在多模式下對目標可變節點及下一個可變節點進行更新。
在步驟S408中,模式控制器可判斷是否所有可變節點均已被更新。當不是所有可變節點均被更新(步驟S408中的「否」)時,模式控制器可藉由實行步驟S409來對下一個可變節點進行更新。另一方面,當所有可變節點均被更新(步驟S408中的「是」)時,模式控制器可完成可變節點更新。
根據本揭露中的示例性實施例,在以預定次序對可變節點進行更新的過程中,LDPC解碼器可根據目標可變節點的度而在運行時間對所述多個單元電路的操作模式進行切換。LDPC解碼器可使用可在一個循環中對高度可變節點進行更新的計算資源而在一個循環中對多個低度可變節點進行更新。因此,對可變節點進行更新所需的時間可減少,且可有效地使用LDPC解碼器的計算資源。
圖10是根據本揭露中的第一示例性實施例的LDPC解碼操作的時序圖。
圖10示出由七個時間點t0至t6劃分的六個時間段。每一時間段可與對可變節點進行更新的一個循環對應。圖10示出在所述六個時間段中的哪一時間段對可變節點V1至V9進行更新。可變節點V1至V9可與圖5至圖7中所示的可變節點V1至V9對應。即,可變節點V1、V2及V4可為高度可變節點,且可變節點V3及V5至V9可為低度可變節點。
參照圖10,可在時間段t0至t1、時間段t1至t2及時間段t2至t3中逐一對高度可變節點進行更新。另一方面,可在時間段t3至t4、時間段t4至t5及時間段t5至t6中兩個兩個並行地對低度可變節點進行更新。在圖10所示實例中,可藉由並行地對低度可變節點進行更新而在六個循環期間對九個可變節點V1至V9進行更新。根據本揭露中的示例性實施例,相較於在一個循環期間對一個可變節點進行更新的情形,可變節點更新過程時間可縮短約33%。因此,可改善LDPC解碼器的解碼效能。
圖11A及圖11B是示出根據本揭露中的第一示例性實施例的LDPC解碼器的操作模式的計算資源使用率的圖。
圖11A示出當LDPC解碼器的可變節點更新器在單模式下對作為高度可變節點的第一可變節點V1進行更新時的計算資源使用率。舉例而言,當可變節點更新單元包括兩個單元邏輯電路且每一單元邏輯電路包括具有5個輸入的加法器時,可變節點更新單元可在一個循環中對10個輸入實行求和運算。
圖11A所示單元邏輯電路中示出的陰影示意性地示出單元邏輯電路中的每一者的計算資源使用率。由於可對九個檢查節點實行求和運算以對具有9度的第一可變節點V1進行更新,因此為了對第一可變節點V1進行更新,可使用由單元邏輯電路提供的總共約90%的計算資源。
圖11B示意性地示出當LDPC解碼器的可變節點更新器在多模式下對作為低度可變節點的第六可變節點V6及第七可變節點V7進行更新時的計算資源使用率。可變節點更新器可包括兩個單元邏輯電路,且每一單元邏輯電路可包括具有5個輸入的加法器。第一單元邏輯電路可對四個檢查節點實行求和運算以對具有4度的第六可變節點V6進行更新,且第二單元邏輯電路可對三個檢查節點實行求和運算以對具有3度的第七可變節點V7進行更新。LDPC解碼器可在同時對第六可變節點V6與第七可變節點V7進行更新的同時使用由單元邏輯電路提供的總共約70%的計算資源。
根據本揭露中的示例性實施例,即使在對低度可變節點進行更新的情形中,LDPC解碼器亦可高效地利用由單元邏輯電路提供的計算資源。因此,可改善LDPC解碼器的通量。
同時,已以其中LDPC解碼器在一個循環中對一或兩個可變節點進行更新的情形為例參照圖3至圖11B闡述本揭露,但本揭露並不限於此。舉例而言,LDPC解碼器可包括三或更多個單元邏輯電路,且LDPC解碼器可在多模式下對三或更多個可變節點進行更新。
另外,當使用具有改善的並行性或類似項的準循環(quasi-cyclic,QC)LDPC碼來實行LDPC解碼時,LDPC解碼器可在單模式下並行地對Q個(其中Q是自然數)可變節點進行更新,且在多模式下並行地對Q*K個(其中K是自然數)可變節點進行更新。在下文中,將參照圖12及圖13闡述根據本揭露中的第二示例性實施例的LDPC解碼器。
圖12是示出根據本揭露中的第二示例性實施例的同位檢查矩陣的圖。
圖12所示同位檢查矩陣可包括M*N個(M及N是自然數)子矩陣802。子矩陣802中的每一者可為零矩陣O或Q*Q維循環移位辨識矩陣I。對二元LDPC碼進行定義的同位檢查矩陣的每一分量可被確定為0或1。
如參照圖5所述,LDPC碼的結構可由坦納圖定義,坦納圖由檢查節點、可變節點以及連接於檢查節點與可變節點之間的邊構成。
構成坦納圖的檢查節點及可變節點可各自分別與同位檢查矩陣的行及列對應。因此,同位檢查矩陣的行的數目(M*Q)及列的數目(N*Q)可分別與構成坦納圖的檢查節點的數目及可變節點的數目對應。當同位檢查矩陣的分量為1時,可藉由坦納圖上的邊來對各自與分量所在的列及行對應的檢查節點與可變節點進行連接。
在圖12所示同位檢查矩陣中,在與循環移位恆等矩陣I對應的位置處示出圖案,在與零矩陣O對應的位置處未示出圖案。每一行中「1」的數目可與和每一行相關聯的循環移位恆等矩陣I的數目對應。連接至每一行的循環移位恆等矩陣I的數目可不同,且同位檢查矩陣的每一行可具有不同數目個「1」。即,同位檢查矩陣的每一可變節點的度可不同。
同時,在同位檢查矩陣中,可並行地對與同一子矩陣中所包括的Q個行對應的Q個可變節點進行更新。根據本揭露中的示例性實施例,LDPC解碼器可具有足夠的計算資源來在一個循環中並行地對Q個高度可變節點進行更新。另外,LDPC解碼器可使用計算資源在一個循環中並行地對Q*K個(其中K是自然數)低度可變節點進行更新。
圖13是用於更詳細地闡述根據本揭露中的第二示例性實施例的LDPC解碼器的方塊圖。
圖13示出可包括於LDPC解碼器中的主解碼器2100。主解碼器2100可與參照圖1闡述的主解碼器110對應。
主解碼器2100可包括資料緩衝器2110、可變節點更新器2120、檢查節點更新器2130、檢查節點傳遞單元2140及校正子檢查器2150。資料緩衝器2110、檢查節點更新器2130、檢查節點傳遞單元2140及校正子檢查器2150可具有與參照圖3闡述的資料緩衝器1110、檢查節點更新器1130、檢查節點傳遞單元1140及校正子檢查器1150類似的結構。在下文中,將集中於可變節點更新器2120來闡述根據本揭露中的第二示例性實施例的LDPC解碼器。
可變節點更新器2120可包括多個單元邏輯電路群組、模式控制器2123以及多個訊息緩衝器2124及2125。當基於圖12所示同位檢查矩陣實行LDPC解碼時,可變節點更新器2120可包括Q個單元邏輯電路群組。
單元邏輯電路群組中的每一者可包括多個單元邏輯電路ULC1及ULC2。單元邏輯電路群組中的每一者因應於模式控制器2123的控制而在單模式下進行操作以在一個循環中對一個高度可變節點進行更新或者在多模式下進行操作以在一個循環中對多個低度可變節點進行更新。
單元邏輯電路群組可並行地進行操作。可變節點更新器2120可使用單元邏輯電路群組在單模式下對Q個高度可變節點進行更新或在多模式下對Q*K個低度可變節點進行更新。此處,K可表示單元邏輯電路群組中所包括的邏輯電路群組的數目。
第一檢查節點緩衝器2124可對單元邏輯電路群組中所包括的第一單元邏輯電路ULC1的操作所必需的檢查節點進行緩衝,且第二檢查節點緩衝器2125可對單元邏輯電路群組中所包括的第二單元邏輯電路UCL2的操作所必需的檢查節點進行緩衝。
根據本揭露中的第二示例性實施例,即使在基於QC-LDPC碼實行LDPC解碼的LDPC解碼器中,亦可藉由高效地利用計算資源來進一步改善LDPC解碼的並行性。因此,可改善LDPC解碼器的效能。
根據本揭露中的示例性實施例的LDPC解碼器可應用於各種裝置及系統。舉例而言,LDPC解碼器可應用於儲存裝置,以支援儲存裝置準確且快速地輸出儲存於其中的資料。在下文中,將參照圖14至圖19更詳細地闡述根據本揭露中的示例性實施例的儲存裝置。
圖14是示出根據本揭露中的示例性實施例的儲存裝置的方塊圖。
儲存裝置200可包括儲存控制器210及非揮發性記憶體220。
非揮發性記憶體220可在儲存控制器210的控制下實行抹除操作、寫入操作及讀取操作。非揮發性記憶體220可藉由輸入/輸出線自儲存控制器210接收命令CMD、位址ADDR及資料DATA。另外,非揮發性記憶體220可藉由電源線自儲存控制器210接收功率PWR,且藉由控制線自儲存控制器210接收控制訊號CTRL。控制訊號CTRL可包括命令鎖存賦能CLE、位址鎖存賦能ALE、晶片賦能nCE、寫入賦能nWE、讀取賦能nRE及類似項。
儲存控制器210一般而言可對非揮發性記憶體220的操作進行控制。儲存控制器210可包括對錯誤位元進行校正的LDPC單元217。LDPC單元217可包括LDPC編碼器及LDPC解碼器。
LDPC編碼器可對欲被程式化於非揮發性記憶體220中的資料實行錯誤校正編碼,以產生添加有同位位元的資料。同位位元可儲存於非揮發性記憶體220中。
LDPC解碼器可對自非揮發性記憶體220讀取的資料實行錯誤校正解碼。LDPC解碼器可判斷錯誤校正解碼是否成功,且根據確定結果輸出指示訊號。LDPC解碼器可使用在LDPC編碼過程中產生的同位位元來對資料的錯誤位元進行校正。
同時,當錯誤位元的數目大於可校正的錯誤位元限制時,LDPC單元217可不對錯誤位元進行校正。在此種情形中,可能產生錯誤校正失敗訊號。
LDPC單元217可使用低密度同位檢查(LDPC)碼來實行錯誤校正。LDPC單元217可包括用於錯誤校正的任何電路、系統或裝置。此處,LDPC碼包括二元LDPC碼及非二元LDPC碼。端視實施方案而定,LDPC單元217可使用硬決策資料及軟決策資料來實行錯誤位元校正。
可將儲存控制器210與非揮發性記憶體220可整合至一個半導體裝置中。舉例而言,可將儲存控制器210與非揮發性記憶體220可整合至一個半導體裝置中,以對固態驅動器(solid state drive,SSD)進行配置。固態驅動器可包括被配置成在半導體記憶體中儲存資料的儲存裝置。
可將儲存控制器210與非揮發性記憶體220整合至一個半導體裝置中以對記憶卡進行配置。舉例而言,可將儲存控制器210與非揮發性記憶體220整合至一個半導體裝置中,以對例如以下記憶卡進行配置:個人電腦記憶卡國際協會(personal computer memory card international association,PCMCIA)、緊湊型快閃卡(compact flash card,CF)、智慧型媒體卡(SM及SMC)、記憶棒、多媒體卡(MMC、RS-MMC及微型MMC)、SD卡(SD、迷你型SD、微型SD及SD高容量(High Capacity,HC))及通用快閃儲存器(universal flash storage,UFS)。
圖15是用於更詳細地闡述圖14所示非揮發性記憶體的圖。
圖15是示出記憶體裝置的示例性方塊圖。參照圖15,記憶體裝置300可包括控制邏輯電路320、記憶體胞元陣列330、頁緩衝器340、電壓產生器350及列解碼器360。儘管在圖15中未完全示出,但記憶體裝置300可更包括記憶體介面電路310,且更包括行邏輯、預解碼器、溫度感測器、命令解碼器、位址解碼器及類似裝置。
控制邏輯電路320一般而言可對記憶體裝置300中的各種操作進行控制。控制邏輯電路320可因應於來自記憶體介面電路310的命令CMD及/或位址ADDR而輸出各種控制訊號。舉例而言,控制邏輯電路320可輸出電壓控制訊號CTRL_vol、列位址X-ADDR及行位址Y-ADDR。
記憶體胞元陣列330可包括多個記憶體區塊BLK1至BLKz(z是正整數),且所述多個記憶體區塊BLK1至BLKz中的每一者可包括多個記憶體胞元。記憶體胞元陣列330可藉由位元線BL連接至頁緩衝單元340,且藉由字元線WL、串選擇線SSL及接地選擇線GSL連接至列解碼器360。
在示例性實施例中,記憶體胞元陣列330可包括三維(3-dimensional,3D)記憶體胞元陣列,且3D記憶體胞元陣列可包括多個反及串。每一反及串可包括分別連接至垂直地堆疊於基板上的字元線的記憶體胞元。美國專利揭露(Laid-Open)出版物第7,679,133號、美國專利揭露出版物第8,553,466號、美國專利揭露出版物第8,654,587號、美國專利揭露出版物第8,559,235號及美國專利申請案出版物第2011/0233648號全文併入本案供參考。在示例性實施例中,記憶體胞元陣列330可包括2維(2-dimensional,2D)記憶體胞元陣列,且2D記憶體胞元陣列可包括沿著列方向及行方向佈置的多個反及串。
頁緩衝器340可包括多個頁緩衝器PB1至PBn(n是大於或等於3的整數),且所述多個頁緩衝器PB1至PBn分別藉由多條位元線BL連接至記憶體胞元。頁緩衝器340可因應於行位址Y-ADDR而選擇位元線BL中的至少一者。頁緩衝器340可根據操作模式而作為寫入驅動器或感測放大器進行操作。舉例而言,在程式化操作(program operation)期間,頁緩衝器340可將與欲被程式化的資料對應的位元線電壓施加至所選擇的位元線。在讀取操作期間,頁緩衝器340可藉由對所選擇位元線的電流或電壓進行感測來感測儲存於記憶體胞元中的資料。
電壓產生器350可基於電壓控制訊號CTRL_vol來產生用於實行程式化操作、讀取操作及抹除操作的各種類型的電壓。舉例而言,電壓產生器350可產生程式化電壓、讀取電壓、程式化驗證電壓、抹除電壓等作為字元線電壓VWL。
列解碼器360可因應於列位址X-ADDR而選擇所述多條字元線WL中的一者且選擇所述多條串選擇線SSL中的一者。舉例而言,在程式化操作期間,列解碼器360可向所選擇的字元線施加程式化電壓及程式化驗證電壓,且在讀取操作期間,向所選擇的字元線施加讀取電壓。
圖16是用於闡述根據本揭露中的示例性實施例的可應用於儲存裝置的3D V-反及結構的圖。當儲存裝置的非揮發性記憶體被實施為3D V-反及型快閃記憶體時,構成非揮發性記憶體的多個記憶體區塊中的每一者可由如圖16中所示的等效電路來表示。
圖16中所示的記憶體區塊BLKi表示以三維結構形成於基板上的三維記憶體區塊。舉例而言,可在與基板垂直的方向上形成包括於記憶體區塊BLKi中的多個記憶體反及串。
參照圖16,記憶體區塊BLKi可包括連接於位元線BL1、BL2及BL3與共用源極線CSL之間的多個記憶體反及串NS11至NS33。所述多個記憶體反及串NS11至NS33中的每一者可包括串選擇電晶體SST、多個記憶體胞元MC1、MC2、...、MC8及接地選擇電晶體GST。圖16示出所述多個記憶體反及串NS11至NS33中的每一者包括八個記憶體胞元MC1、MC2、...、MC8,但不必局限於此。
串選擇電晶體SST可連接至對應的串選擇線SSL1、SSL2及SSL3。所述多個記憶體胞元MC1、MC2、...、MC8可分別連接至對應的閘極線GTL1、GTL2、...、GTL8。閘極線GTL1、GTL2、...、GTL8可與字元線對應,且閘極線GTL1、GTL2、...、GTL8中的一些可與虛設字元線對應。接地選擇電晶體GST可連接至對應的接地選擇線GSL1、GSL2及GSL3。串選擇電晶體SST可連接至對應的位元線BL1、BL2及BL3,且接地選擇電晶體GST可連接至共用源極線CSL。
具有同一高度的字元線(例如,WL1)被共同連接,且接地選擇線GSL1、GSL2及GSL3與串選擇線SSL1、SSL2及SSL3可各自彼此隔開。圖16示出記憶體區塊BLK被連接至八條閘極線GTL1、GTL2、...、GTL8及三條位元線BL1、BL2、BL3,但不必局限於此。
當包括於記憶體區塊BLK中的記憶體胞元被程式化時,記憶體胞元的臨限電壓可形成特定的機率分佈。可將臨限電壓分佈映射至不同的邏輯狀態。
圖17A及圖17B是用於闡述記憶體胞元的臨限電壓分佈的圖。
在圖17A及圖17B中所示的圖中,水平軸線表示臨限電壓的幅值Vth,且垂直軸線表示記憶體胞元的數目(胞元的#)。圖17A及圖17B以其中記憶體胞元是儲存3位元資料的三位準胞元(triple level cell,TLC)的情形為例示出由每一臨限電壓分佈表示的邏輯狀態。
當在TLC記憶體裝置的記憶體胞元中對三個位元進行程式化時,在記憶體胞元中形成八個臨限電壓分佈中的任一者。
由於所述多個記憶體胞元之間電性特性的微小差異,因此使用同一資料進行程式化的記憶體胞元中的每一者的每一臨限電壓形成預定範圍內的臨限電壓分佈。在TLC的情形中,如圖式中所示,形成七個程式化狀態(program state)的臨限電壓分佈P1至P7及一個抹除狀態的臨限電壓分佈E。圖17A是示出無狀態分佈交疊且針對每一臨限電壓分佈提供特定範圍的讀取電壓裕度的理想的分佈圖。
如圖17B中所示,在快閃記憶體的情形中,隨著時間的推移可發生電荷損耗(其中在浮置閘極或隧道氧化物中陷獲的電子被發射)。另外,隧道氧化物在重複地進行程式化及抹除的同時發生劣化,藉此進一步增大電荷損耗。電荷損耗可減小臨限電壓。舉例而言,臨限電壓的分佈可向左偏移。
另外,程式化干擾、抹除干擾及/或反向模式依賴性現象可增大臨限電壓的分佈。因此,由於因上述原因導致的記憶體胞元的特性的劣化,因此如圖17B中所示,每一相鄰狀態的臨限電壓分佈E與P1至P7可能彼此交疊。
當臨限電壓分佈交疊時,讀取資料可能包括許多錯誤。舉例而言,若當施加第三讀取電壓Vread3時記憶體胞元處於接通狀態,則確定出記憶體胞元具有第二程式化狀態P2,且若記憶體胞元處於關斷狀態,則確定出記憶體胞元具有第三程式化狀態P3。然而,當在其中第二程式化狀態P2與第三程式化狀態P3交疊的區段中施加第三讀取電壓Vread3時,即使記憶體胞元處於關斷狀態,記憶體胞元亦可被讀取為接通狀態。因此,當臨限電壓分佈交疊時,所讀取的資料可能包括許多錯誤位元。
因此,需要一種能夠準確地讀取儲存於半導體記憶體裝置的記憶體胞元中的資料的技術。
圖18是用於闡述根據本揭露中的示例性實施例的儲存裝置的錯誤校正方法的圖。
圖18示出參照圖14闡述的非揮發性記憶體220及LDPC單元217。
LDPC單元217可基於不規則LDPC碼來實行LDPC編碼及LDPC解碼。非揮發性記憶體220可儲存使用不規則LDPC碼進行編碼的資料。
LDPC單元217可藉由對自非揮發性記憶體220讀取的資料實行LDPC解碼來將經解碼資料輸出至外部。根據本揭露中的示例性實施例,LDPC單元217可包括包含多個單元邏輯電路(unit logic circuit,ULC)的單元邏輯電路群組(ULC群組)及用於對單元邏輯電路群組進行控制的模式控制器。
LDPC單元217可實行以下操作:使用自非揮發性記憶體220讀取的資料的值對可變節點進行初始化;對連接至可變節點的檢查節點進行更新;對連接至檢查節點的可變節點進行更新;以及根據經更新的可變節點的校正子檢查結果將可變節點的值作為經解碼資料輸出至外部。
根據實施方案,LDPC單元217可包括M*N個子矩陣,所述M*N個子矩陣中的每一者可基於同位檢查矩陣來對檢查節點及可變節點進行更新,同位檢查矩陣是零矩陣或Q*Q(其中Q是自然數)維循環移位恆等矩陣。
根據本揭露中的示例性實施例,LDPC單元217可端視可變節點的度是否超過臨限度而藉由在一個循環中實行Q個可變節點來對可變節點進行更新,或者藉由在一個循環中重複地實行對Q個可變節點進行更新或在一個循環中同時對Q*K個可變節點進行更新的操作來對所述Q*K個可變節點進行更新。此處,K可與一個單元邏輯電路群組中所包括的單元邏輯電路的數目對應。
根據本揭露中的示例性實施例,可在能夠並行地對可變節點進行更新的LDPC解碼器中進一步改善LDPC解碼的並行性。因此,可改善LDPC解碼器的通量,且可快速地對自非揮發性記憶體220輸出的資料中的錯誤進行校正。因此,可改善儲存裝置200的效能及可靠性。
圖19是示出根據本揭露中的示例性實施例的主機儲存系統的方塊圖。
主機儲存系統10可包括主機400及儲存裝置200。另外,儲存裝置200可包括儲存控制器210及非揮發性記憶體(nonvolatile memory,NVM)220。
主機400可包括電子裝置,例如可攜式電子裝置(例如行動電話、動畫專家群(Moving Picture Experts Group,MPEG)音訊層3(MPEG Audio Layer-3,MP3)播放機及膝上型電腦)或者例如桌上型電腦、遊戲機、電視(television,TV)及投影機等電子裝置。主機400可包括至少一個作業系統(operating system,OS)。作業系統可全面管理及控制主機400的功能及操作。
儲存裝置200可包括用於根據來自主機400的請求儲存資料的儲存媒體。作為實例,儲存裝置200可包括固態驅動器(SSD)、嵌入式記憶體及可移動外部記憶體中的至少一者。當儲存裝置200是SSD時,儲存裝置200可為符合快速非揮發性記憶體(nonvolatile memory express,NVMe)標準的裝置。當儲存裝置200是嵌入式記憶體或外部記憶體時,儲存裝置200可為符合通用快閃儲存器(universal flash storage,UFS)或嵌入式多媒體卡(embedded multi-media card,eMMC)標準的裝置。主機400及儲存裝置200可各自根據所採用的標準協定產生封包且發射所產生的封包。
非揮發性記憶體220即使在不供電時亦可保留所儲存的資料。非揮發性記憶體220可儲存藉由程式化操作自主機400提供的資料,且可藉由讀取操作輸出儲存於非揮發性記憶體220中的資料。
當非揮發性記憶體220包括快閃記憶體時,快閃記憶體可包括2D反及記憶體陣列或3D(或垂直)反及(vertical NAND,VNAND)記憶體陣列。作為另一實例,儲存裝置200可包括其他各種類型的非揮發性記憶體。舉例而言,儲存裝置200可包括磁性隨機存取記憶體(random access memory,RAM)(magnetic RAM,MRAM)、自旋轉移扭矩MRAM(MRAM)、導電橋接RAM(conductive bridging RAM,CBRAM)、鐵電RAM(ferroelectric RAM,FeRAM)、相位RAM(phase RAM,PRAM)、電阻式記憶體及各種其他類型的記憶體。
儲存控制器210可因應於來自主機400的請求而控制非揮發性記憶體220。舉例而言,儲存控制器210可將自非揮發性記憶體220讀取的資料提供至主機400,且將自主機400提供的資料儲存於非揮發性記憶體220中。對於此操作,儲存控制器210可支援非揮發性記憶體220的例如讀取、程式化及抹除等操作。
儲存控制器210可包括主機介面211、記憶體介面212及中央處理單元(central processing unit,CPU)213。另外,儲存控制器210可更包括快閃轉換層(flash translation layer,FTL)214、封包管理器215、緩衝記憶體216、LDPC單元217及高級加密標準(advanced encryption standard,AES)引擎218。儲存控制器210可更包括工作記憶體(未示出)(快閃轉換層(FTL)214被加載至工作記憶體中)且可藉由使得CPU 213能夠執行快閃轉換層(FTL)214來控制向非揮發性記憶體220中進行的資料寫入操作及自非揮發性記憶體220進行的資料讀取操作。
主機介面211可向主機400發射分封包及自主機400接收封包。自主機400發射至主機介面211的封包可包括命令、欲被寫入非揮發性記憶體220中的資料或類似項,且自主機介面211發射至主機400的封包可包括對命令的響應、自非揮發性記憶體220讀取的資料或類似項。
記憶體介面212可將欲被寫入非揮發性記憶體220中的資料發射至非揮發性記憶體220或者接收自非揮發性記憶體220讀取的資料。記憶體介面212可被實施成符合標準協定,例如雙態觸變(toggle)或開放式反及快閃介面(open NAND flash interface,ONFI)。
快閃轉換層214可實行各種功能,例如位址映射、損耗平衡及垃圾收集。位址映射操作是將自主機400接收的邏輯位址改變為用於在非揮發性記憶體220中實際儲存資料的物理位址中的操作。損耗均衡是一種藉由使得能夠均勻地使用非揮發性記憶體220中的區塊來防止特定區塊中的過度劣化的技術,且可藉由例如用於對物理區塊的抹除計數進行平衡的韌體技術來實施。垃圾收集是一種藉由將區塊的有效資料複製至新的區塊且然後抹除現有的區塊來確保非揮發性記憶體220中的可用容量的技術。
封包管理器215可根據與主機400進行協商的介面的協定產生封包,或根據自主機400接收的封包對各種類型的資訊進行解析。另外,緩衝記憶體216可暫時儲存欲被寫入非揮發性記憶體220中的資料或者欲自非揮發性記憶體220讀取的資料。緩衝記憶體216可設置於儲存控制器210中,但亦可設置於儲存控制器210的外部。
LDPC單元217可對自非揮發性記憶體220讀取的所讀取的資料實行錯誤偵測及校正功能。更具體而言,LDPC單元217可產生用於欲被寫入非揮發性記憶體220中的寫入資料的同位位元,且所產生的同位位元可與寫入資料一起儲存於非揮發性記憶體220中。當自非揮發性記憶體220讀取資料時,LDPC單元217可使用自非揮發性記憶體220讀取的同位位元以及所讀取的資料來對所讀取的資料中的錯誤進行校正且輸出經錯誤校正的所讀取的資料。
AES引擎218可使用對稱密鑰演算法對輸入至儲存控制器210中的資料實行加密操作及解密操作中的至少一者。
同時,因應於對高容量儲存裝置的需求,可儲存於非揮發性記憶體220的一個記憶體胞元中的位元數目趨於增大。舉例而言,非揮發性記憶體220不僅可包括每個記憶體胞元能夠儲存3位元資料的TLC及每個記憶體胞元能夠儲存4位元資料的四位準胞元(quadruple level cell,QLC),亦可包括每個記憶體胞元能夠儲存5位元資料的五位準胞元。
隨著可儲存於非揮發性記憶體220的一頁中的資料量的增大,經LDPC編碼的資料的大小亦可增大。為了對大的資料實行LDPC編碼,同位檢查矩陣的大小亦可增大。包括於同位檢查矩陣中的可變節點的數目可增大,且可變節點的度可發生變化。
根據本揭露中的示例性實施例,LDPC單元217可支援三或更多種不同的並行操作模式。舉例而言,LDPC單元217可支援其中一個單元邏輯電路群組對一個高度可變節點進行處理的模式、其中一個單元邏輯電路群組對兩個中度可變節點進行處理的模式、其中一個單元邏輯電路對四個低度可變節點的進行處理的模式等。根據本揭露中的示例性實施例,在高容量儲存裝置200中,可更高效地利用LDPC單元217的計算資源。可快速地對來自非揮發性記憶體220的資料中的錯誤進行校正,因此可改善儲存裝置200的資料處理效能。
根據本揭露中的示例性實施例,可藉由使得低密度同位檢查(LDPC)解碼器能夠在一個循環中對一個高度可變節點進行更新或者同時對多個低度可變節點進行更新而高效地利用處理資源。
根據本揭露中的示例性實施例,由於LDPC解碼器可同時對多個低度可變節點進行更新,因此可改善LDPC解碼器的通量及解碼延遲。
根據本揭露中的示例性實施例,可使用具有改善的解碼延遲的LDPC解碼器來快速且準確地讀取儲存於記憶體胞元中的資料。
本揭露的問題並不限於上述問題。即,熟習此項技術者可根據以下說明書而明顯地理解未提及的其他問題。
本揭露並不受上述示例性實施例及附圖的限制,而是旨在受所附申請專利範圍限制。因此,在不背離申請專利範圍中闡述的本發明概念的條件下,此項技術中具有通常知識者將可進行各種類型的替換、修改及改變,所述各種類型的替換、修改及改變屬於本發明概念的範圍。
10:主機儲存系統 100:低密度同位檢查(LDPC)解碼器 110、1100、2100:主解碼器 111、112:單元邏輯電路 113、1123、2123:模式控制器 120:記憶體 121:同位檢查矩陣 200:儲存裝置 210:儲存控制器 211:主機介面 212:記憶體介面 213:中央處理單元(CPU) 214:快閃轉換層(FTL) 215:封包管理器 216:緩衝記憶體 217:LDPC單元 218:高級加密標準(AES)引擎 220:非揮發性記憶體 300:記憶體裝置 310:記憶體介面電路 320:控制邏輯電路 330:記憶體胞元陣列 340:頁緩衝器/頁緩衝單元 350:電壓產生器 360:列解碼器 400:主機 610、C1、C2、C3、C4、C5、C6、C7、C8、C9、C10、C11、C12、C13、C14、C15:檢查節點 615:邊 615A:檢查節點訊息 615B:可變節點訊息 620、V2、V4、V5、V8、V9:可變節點 802:子矩陣 1110、2110:資料緩衝器 1120、2120:可變節點更新器 1121、ULC1:第一單元邏輯電路/單元邏輯電路 1122、ULC2:第二單元邏輯電路/單元邏輯電路 1124:第一檢查節點緩衝器/檢查節點緩衝器 1125:第二檢查節點緩衝器/檢查節點緩衝器 1130、2130:檢查節點更新器 1140、2140:檢查節點傳遞單元 1150、2150:校正子檢查器 2124:第一檢查節點緩衝器/訊息緩衝器 2125:第二檢查節點緩衝器/訊息緩衝器 ADDR:位址 BL、BL1、BL2、BL3:位元線 BLK1、BLK2~BLKz:記憶體區塊 CMD:命令 CSL:共用源極線 CTRL:控制訊號 CTRL_vol:電壓控制訊號 CW:碼字 D:臨限度 DATA:資料 E、P1、P4、P5、P6、P7:臨限電壓分佈 GSL:接地選擇線 GSL1、GSL2、GSL3:接地選擇線 GST:接地選擇電晶體 GTL1、GTL2、GTL3、GTL4、GTL5、GTL6、GTL7、GTL8:閘極線 I:Q*Q維循環移位辨識矩陣/循環移位恆等矩陣 MC1、MC2、MC3、MC4、MC5、MC6、MC7、MC8:記憶體胞元 MSG:訊息 NS11、NS12、NS13、NS21、NS22、NS23、NS31、NS32、NS33:記憶體反及串 O:零矩陣 P2:第二程式化狀態/臨限電壓分佈 P3:第三程式化狀態/臨限電壓分佈 PB1、PB2~PBn:頁緩衝器 PWR:功率 S101、S102、S103、S104、S105、S106、S201、S202、S203、S204、S205、S301、S302、S303、S304、S305、S306、S307、S308、S401、S402、S403、S404、S405、S406、S407、S408、S409:步驟 SSL、SSL1、SSL2、SSL3:串選擇線 SST:串選擇電晶體 t0、t1、t2、t3、t4、t5、t6:時間點 V1:第一可變節點/可變節點 V3:第三可變節點/可變節點 V6:第六可變節點/可變節點 V7:第七可變節點/可變節點 Vread3:第三讀取電壓 Vth:幅值 VWL:字元線電壓 WL:字元線 X-ADDR:列位址 Y-ADDR:行位址
結合附圖閱讀以下詳細說明,將更清楚地理解本發明概念的以上及其他態樣、特徵及優點,在附圖中: 圖1是示出根據本揭露中的示例性實施例的低密度同位檢查(LDPC)解碼器的方塊圖。 圖2是示出根據本揭露中的示例性實施例的LDPC解碼器的操作的流程圖。 圖3是用於更詳細地闡述根據本揭露中的第一示例性實施例的LDPC解碼器的方塊圖。 圖4是示出由坦納圖表示的LDPC解碼的概念圖。 圖5是示出不規則LDPC碼的坦納圖的圖。 圖6A及圖6B是示出圖5所示坦納圖中具有不同度的可變節點的圖。 圖7是示出與圖5所示坦納圖對應的同位檢查矩陣的圖。 圖8是示出LDPC解碼器的操作的流程圖。 圖9A及圖9B是示出根據本揭露中的第一示例性實施例的對LDPC解碼器的可變節點進行更新的方法的流程圖。 圖10是根據本揭露中的第一示例性實施例的LDPC解碼操作的時序圖。 圖11A及圖11B是示出根據根據本揭露中的第一示例性實施例的LDPC解碼器的操作模式的計算資源使用率的圖。 圖12是示出根據本揭露中的第二示例性實施例的同位檢查矩陣的圖。 圖13是用於更詳細地闡述根據本揭露中的第二示例性實施例的LDPC解碼器的方塊圖。 圖14是示出根據本揭露中的示例性實施例的儲存裝置的方塊圖。 圖15是用於更詳細地闡述圖14所示非揮發性記憶體的圖。 圖16是用於闡述根據本揭露中的示例性實施例的可應用於儲存裝置的3D V-反及結構的圖。 圖17A及圖17B是示出記憶體胞元的臨限電壓分佈的圖。 圖18是用於闡述根據本揭露中的示例性實施例的儲存裝置的錯誤校正方法的圖。 圖19是更詳細地示出根據本揭露中的示例性實施例的儲存裝置的方塊圖。
100:低密度同位檢查(LDPC)解碼器
110:主解碼器
111、112:單元邏輯電路
113:模式控制器
120:記憶體
121:同位檢查矩陣
CW:碼字
MSG:訊息

Claims (20)

  1. 一種低密度同位檢查(LDPC)解碼器,使用碼字的值對可變節點進行初始化且輸出參照不規則同位檢查矩陣被更新的所述可變節點作為經解碼訊息,所述低密度同位檢查解碼器包括: 多個單元邏輯電路,在其中所有所述單元邏輯電路對包括至少一個可變節點的一個可變節點群組進行更新的單模式下或者在其中所述單元邏輯電路中的每一者藉由對不同的可變節點進行更新來並行地對多個可變節點群組進行更新的多模式下進行操作;以及 模式控制器,控制所述多個單元邏輯電路在所述單模式下對所述可變節點群組之中具有較臨限度大的度的高度可變節點群組進行更新、以及在所述多模式下對所述可變節點群組之中具有較所述臨限度小或等於所述臨限度的度的低度可變節點群組進行更新。
  2. 如請求項1所述的低密度同位檢查解碼器,其中所述臨限度是基於所述可變節點群組的度之中的最大度及所述多個單元邏輯電路的數目來確定。
  3. 如請求項1所述的低密度同位檢查解碼器,其中所述多個單元邏輯電路中的每一者包括具有二或更多個輸入的加法器。
  4. 如請求項3所述的低密度同位檢查解碼器,其中所述臨限度是進一步基於所述加法器的輸入的數目來確定。
  5. 如請求項1所述的低密度同位檢查解碼器,其中所述多個單元邏輯電路包括第一單元邏輯電路及第二單元邏輯電路,且 在所述單模式下,所述第一單元邏輯電路對連接至所述一個可變節點群組的檢查節點之中的第一檢查節點實行求和運算,且所述第二單元邏輯電路對所連接的所述檢查節點之中的第二檢查節點實行求和運算,使得所述多個單元邏輯電路對所述一個可變節點群組的值進行更新。
  6. 如請求項5所述的低密度同位檢查解碼器,更包括多個檢查節點緩衝器,所述多個檢查節點緩衝器用於對欲由所述多個單元邏輯電路中的每一者進行處理的所述檢查節點的值進行緩衝。
  7. 如請求項1所述的低密度同位檢查解碼器,其中所述模式控制器以預定次序對所述可變節點群組進行更新,且根據欲被更新的目標可變節點群組的度而在運行時間對所述多個單元邏輯電路的操作模式進行切換。
  8. 如請求項1所述的低密度同位檢查解碼器,其中所述模式控制器以預定次序對所述可變節點群組進行更新,且當欲被更新的第一目標可變節點群組是高度可變節點群組時,控制所述多個單元邏輯電路在所述單模式下對所述第一目標可變節點群組進行更新,當所述第一目標可變節點群組是低度可變節點群組時,跳過對所述第一目標可變節點群組的所述更新,且控制所述多個單元邏輯電路在所述多模式下依次對所述第一目標可變節點群組與第二目標可變節點群組進行更新,以對作為低度可變節點群組的所述第二目標可變節點群組進行更新。
  9. 如請求項1所述的低密度同位檢查解碼器,其中所述模式控制器以度的降序來對所述可變節點群組進行佈置,控制所述多個單元邏輯電路在第一時間段中在所述單模式下對所述可變節點群組之中的高度可變節點群組進行更新,且控制所述多個單元邏輯電路在所述第一時間段之後的第二時間段中在所述多模式下對所述可變節點群組之中的低度可變節點群組進行更新。
  10. 如請求項1所述的低密度同位檢查解碼器,其中所述度是連接至低密度同位檢查碼中的由所述不規則同位檢查矩陣表示的所述可變節點群組中的一者的檢查節點的數目。
  11. 一種低密度同位檢查(LDPC)解碼器,包括: 資料緩衝器,對使用不規則低密度同位檢查碼進行編碼的資料進行緩衝且將所述資料的值提供至可變節點; 檢查節點更新器,對連接至所述可變節點的檢查節點進行更新; 可變節點更新器,對連接至經更新的所述檢查節點的所述可變節點進行更新;以及 校正子檢查器,根據經更新的所述可變節點的校正子檢查結果來輸出所述可變節點的值作為經解碼資料, 其中所述可變節點更新器包括一或多個單元邏輯電路群組,且根據所述可變節點中的每一者所需的計算量而控制所述單元邏輯電路群組中的每一者在一個循環中對一個可變節點進行更新或者控制所述單元邏輯電路群組中的每一者中所包括的單元邏輯電路中的每一者在一個循環中並行地對不同的可變節點進行更新。
  12. 如請求項11所述的低密度同位檢查解碼器,其中所需的所述計算量是基於連接至所述可變節點的所述檢查節點的數目來確定。
  13. 如請求項11所述的低密度同位檢查解碼器,其中所述單元邏輯電路群組中的每一者在一個循環中對其中所需的所述計算量大於計算臨限量的一個可變節點進行更新,或者在一個循環中對其中所需的所述計算量小於或等於所述計算臨限量的所述可變節點進行更新,且 所述計算臨限量是基於所述單元邏輯電路中的每一者的最大運算量來確定。
  14. 如請求項11所述的低密度同位檢查解碼器,其中當作為經更新的所述可變節點的校正子檢查的結果,校正子向量的分量中的至少一者不具有值「0」時,所述低密度同位檢查解碼器重複地實行對所述檢查節點進行更新的操作及對所述可變節點進行更新的操作。
  15. 如請求項11所述的低密度同位檢查解碼器,其中所述檢查節點更新器藉由實行對連接至所述檢查節點中的每一者的所述可變節點的最小值運算來對所述檢查節點中的每一者進行更新,且 所述可變節點更新器藉由實行對連接至所述可變節點中的每一者的所述檢查節點的求和運算來對所述可變節點中的每一者進行更新。
  16. 如請求項15所述的低密度同位檢查解碼器,其中一個單元邏輯電路群組包括用於實行對所述檢查節點的求和運算的加法器。
  17. 如請求項11所述的低密度同位檢查解碼器,其中所述低密度同位檢查解碼器包括M * N個子矩陣,且所述子矩陣中的每一者儲存同位檢查矩陣,所述同位檢查矩陣是零矩陣或Q * Q維循環移位恆等矩陣,且 所述可變節點更新器包括Q個單元邏輯電路群組,所述Q個單元邏輯電路群組各自包括K個單元邏輯電路,且所述Q個單元邏輯電路群組包括與一個行對應的Q個可變節點或者所述可變節點更新器並行地對與K個行對應的Q*K個可變節點進行更新,其中M、N、Q及K是自然數。
  18. 一種儲存裝置,包括: 記憶體裝置,儲存使用不規則低密度同位檢查(LDPC)碼進行編碼的資料;以及 低密度同位檢查單元,使用自所述記憶體裝置輸出的資料值對可變節點進行初始化,對連接至所述可變節點的檢查節點進行更新,端視所述可變節點中的每一者的度是否超過臨限度而藉由重複地實行在一個循環中對Q個可變節點進行更新或在一個循環中同時對Q*K個可變節點進行更新的操作來對所述可變節點進行更新,且根據所述可變節點的校正子檢查結果來輸出所述可變節點的值,其中Q及K是自然數。
  19. 如請求項18所述的儲存裝置,其中所述低密度同位檢查單元基於包括M * N個子矩陣的同位檢查矩陣來對所述檢查節點及所述可變節點進行更新,所述子矩陣中的每一者是零矩陣或Q*Q維循環移位恆等矩陣。
  20. 如請求項19所述的儲存裝置,其中所述臨限度是基於所述可變節點的最大度及所述低密度同位檢查單元中所包括的單元邏輯電路的數目Q * K來確定。
TW111134030A 2021-11-24 2022-09-08 低密度同位檢查解碼器及儲存裝置 TW202322576A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0162955 2021-11-24
KR20210162955 2021-11-24
KR10-2022-0008006 2022-01-19
KR1020220008006A KR102511827B1 (ko) 2021-11-24 2022-01-19 Ldpc 디코더 및 스토리지 장치

Publications (1)

Publication Number Publication Date
TW202322576A true TW202322576A (zh) 2023-06-01

Family

ID=84361251

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111134030A TW202322576A (zh) 2021-11-24 2022-09-08 低密度同位檢查解碼器及儲存裝置

Country Status (5)

Country Link
US (1) US11929762B2 (zh)
EP (1) EP4187795A1 (zh)
KR (1) KR20230076805A (zh)
CN (1) CN116170029A (zh)
TW (1) TW202322576A (zh)

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941680B1 (ko) 2005-07-01 2010-02-12 삼성전자주식회사 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR100946884B1 (ko) * 2005-07-15 2010-03-09 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널인터리빙/디인터리빙 장치 및 그 제어 방법
US20070089019A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US8006161B2 (en) * 2005-10-26 2011-08-23 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system using a low density parity check code
US7661055B2 (en) * 2005-12-05 2010-02-09 Broadcom Corporation Partial-parallel implementation of LDPC (Low Density Parity Check) decoders
KR100899738B1 (ko) 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
KR20080068218A (ko) * 2007-01-18 2008-07-23 삼성전자주식회사 통신 시스템에서 데이터 수신 방법 및 장치
US7958429B2 (en) * 2007-07-02 2011-06-07 Broadcom Corporation Distributed processing LDPC (low density parity check) decoder
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR20090126829A (ko) 2008-06-05 2009-12-09 삼성전자주식회사 반복 복호 방법과 반복 복호 장치
KR100953936B1 (ko) 2009-04-28 2010-04-22 엘아이지넥스원 주식회사 Ldpc 복호화를 위한 복호화 방법 및 장치
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
JP2012124888A (ja) 2010-11-15 2012-06-28 Fujitsu Ltd 復号装置及び復号方法
US20130139023A1 (en) 2011-11-28 2013-05-30 Lsi Corporation Variable Sector Size Interleaver
US8826109B2 (en) * 2012-09-04 2014-09-02 Lsi Corporation LDPC decoder irregular decoding of regular codes
KR102091889B1 (ko) 2013-02-08 2020-04-14 소니 주식회사 데이터 처리 장치, 및 데이터 처리 방법
GB2517850B (en) * 2013-08-27 2015-08-05 Imagination Tech Ltd An improved decoder for low-density parity-check codes
KR101599336B1 (ko) * 2014-04-22 2016-03-04 아주대학교 산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
US10879927B2 (en) 2017-05-17 2020-12-29 Futurewei Technologies, Inc. Compact low density parity check (LDPC) base graph
US10530392B2 (en) 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
US20200220558A1 (en) 2017-12-20 2020-07-09 Goke Us Research Laboratory Method and apparatus for efficient data decoding
KR102643457B1 (ko) 2018-11-19 2024-03-06 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US11356123B2 (en) 2019-07-12 2022-06-07 SK Hynix Inc. Memory system with low-complexity decoding and method of operating such memory system
KR20210061504A (ko) 2019-11-19 2021-05-28 삼성전자주식회사 에러 정정 회로, 및 그것을 동작하는 방법
US11575389B2 (en) * 2020-12-08 2023-02-07 Nxp Usa, Inc. Multi-standard low-density parity check decoder
US11316532B1 (en) 2020-12-17 2022-04-26 SK Hynix Inc. Decoding of low-density parity-check codes with high-degree variable nodes

Also Published As

Publication number Publication date
CN116170029A (zh) 2023-05-26
KR20230076805A (ko) 2023-05-31
US11929762B2 (en) 2024-03-12
US20230163785A1 (en) 2023-05-25
EP4187795A1 (en) 2023-05-31

Similar Documents

Publication Publication Date Title
US10103749B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
KR102265220B1 (ko) 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US20160274971A1 (en) Ldpc decoder, semiconductor memory system and operating method thereof
US11005499B2 (en) LDPC decoder, semiconductor memory system, and operating method thereof
US11450400B2 (en) Controller and operating method thereof
US10367528B2 (en) Convolutional low-density parity-check coding
US10879935B2 (en) LDPC decoder, semiconductor memory system, and operating method thereof
KR102556479B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US20210297092A1 (en) Ldpc decoder and operating method thereof
CN112039532A (zh) 错误校正解码器及具有错误校正解码器的存储器系统
CN111756385A (zh) 错误校正解码器
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
CN111367709A (zh) 错误校正设备及其操作方法和使用该设备的存储器系统
US20200057693A1 (en) Decoder, operating method thereof and memory system including the decoder
US11095316B2 (en) Controller and operating method for performing read operation to read data in memory device
US11966589B2 (en) Controller and operating method thereof
US11929762B2 (en) Low density parity check decoder and storage device
KR102511827B1 (ko) Ldpc 디코더 및 스토리지 장치
CN112216328A (zh) 具有低复杂度解码的存储器系统及其操作方法
US20210250045A1 (en) Ldpc decoder, operating method of ldpc decoder, and semiconductor memory system
US20240120945A1 (en) Generalized ldpc encoder, generalized ldpc encoding method and storage device