TWI739157B - 快閃記憶體控制器、儲存裝置及讀取方法 - Google Patents

快閃記憶體控制器、儲存裝置及讀取方法 Download PDF

Info

Publication number
TWI739157B
TWI739157B TW108133512A TW108133512A TWI739157B TW I739157 B TWI739157 B TW I739157B TW 108133512 A TW108133512 A TW 108133512A TW 108133512 A TW108133512 A TW 108133512A TW I739157 B TWI739157 B TW I739157B
Authority
TW
Taiwan
Prior art keywords
decoding
code
code field
variable point
check
Prior art date
Application number
TW108133512A
Other languages
English (en)
Other versions
TW202113863A (zh
Inventor
郭軒豪
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW108133512A priority Critical patent/TWI739157B/zh
Priority to CN201911171091.4A priority patent/CN112527548B/zh
Priority to US16/835,863 priority patent/US11115063B2/en
Publication of TW202113863A publication Critical patent/TW202113863A/zh
Application granted granted Critical
Publication of TWI739157B publication Critical patent/TWI739157B/zh

Links

Images

Classifications

    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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
    • 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
    • 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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • H03M13/6318Error control coding in combination with data compression using variable length 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

本發明提供一種快閃記憶體控制器、儲存裝置及讀取方法,其在解碼程序中透過確認各碼字段之解碼狀態是否為通過之步驟,來跳過解碼狀態為通過之碼字段的解碼流程,而得以節省解碼時間並提升解碼效率。即便解碼完後的碼字只有部分的碼字段正確,本發明提供的快閃記憶體控制器、儲存裝置及其讀取方法更可將碼字中部份的碼字段替換成前次已回報為正確的結果後,以重組後的碼字再次進行解碼,以提高解碼正確率,並減少後續解碼流程或資料復原的負擔。

Description

快閃記憶體控制器、儲存裝置及讀取方法
本發明係關於低密度奇偶校驗(low-density parity-check,LDPC)技術,特別是一種可節省解碼時間的快閃記憶體控制器、儲存裝置及讀取方法。
快閃記憶體可透過電子式的抹除與寫入/程式化以進行資料存取,而廣泛地應用於記憶卡、固態硬碟與可攜式多媒體播放器等等。但是於資料存取的過程中,卻常常會因為某些因素導致資料受到破壞。為了達到高可靠度與高效率的傳輸品質,錯誤更正碼在資料存取的過程中便扮演了舉足輕重之角色。
近年來,低密度奇偶校驗碼(low-density parity-check code,LDPC code)因為具備優異的更正能力而備受矚目,並常用於資料的編碼與解碼上。然而,當低密度奇偶校驗碼的長度越長時,在解碼過程中所需要花費的解碼時間也將相應增加,使得等待資料回應的時間變得過長而出現延遲增加的現象。
在一實施例中,一種用以存取快閃記憶體的快閃記憶體控制器,包含唯讀記憶體、處理器與錯誤更正碼單元。唯讀記憶體用以儲存程式碼。處理器用以執行程式碼以控制對快閃記憶體的存取。錯誤更正碼單元包含用以執行解碼程序的低密度奇偶校驗碼解碼器。低密度奇偶校驗碼解碼器包含變數點電路、校驗點電路段檢測電路、症狀檢查電路與控制電路。變數點電路用以根據第一碼字之複數碼字段的複數通道值產生複數變數點訊息。並且,變數點電路根據解碼指示過變數點訊息中之複數第一變數點訊息,且根據此些變數點訊息中非為第一變數點訊息的複數第二變數點訊息與複數校驗點訊息進行變數點運算,以更新此些第二變數點訊息。其中,各碼字段對應到此些變數點訊息中的複數個,且此些第一變數點訊息對應到其解碼狀態為通過的碼字段。校驗點電路用以根據此些變數點訊息進行校驗點運算,以產生並更新此些校驗點訊息。段檢測電路用以根據各碼字段所對應的此些變數點訊息檢測各碼字段,以產生並更新各碼字段相應的解碼狀態。症狀檢查電路用以根據此些校驗點訊息判斷第一碼字是否解碼成功。控制電路用以檢查各碼字段的解碼狀態是否為通過,且於檢查到任一碼字段的解碼狀態為不通過時產生解碼指示。並且,控制電路用以於每完成一次變數點運算和一次校驗點運算時將遞迴次數加一。此外,於症狀檢查電路判斷第一碼字解碼成功時,控制電路致使變數點電路輸出解碼結果。
在一實施例中,一種儲存裝置包含快閃記憶體與快閃記憶體控制器。快閃記憶體控制器用以存取快閃記憶體。快閃記憶體控制器包含唯讀記憶體、處理器與錯誤更正碼單元。唯讀記憶體用以儲存程式碼。處理器用以執行程式碼以控制對快閃記憶體的存取。錯誤更正碼單元包含用以執行解碼程序的低密度奇偶校驗碼解碼器。低密度奇偶校驗碼解碼器包含變數點電路、校驗點電路段檢測電路、症狀檢查電路與控制電路。變數點電路用以根據第一碼字之複數碼字段的複數通道值產生複數變數點訊息。並且,變數點電路根據解碼指示過變數點訊息中之複數第一變數點訊息,且根據此些變數點訊息中非為第一變數點訊息的複數第二變數點訊息與複數校驗點訊息進行變數點運算,以更新此些第二變數點訊息。其中,各碼字段對應到此些變數點訊息中的複數個,且此些第一變數點訊息對應到其解碼狀態為通過的碼字段。校驗點電路用以根據此些變數點訊息進行校驗點運算,以產生並更新此些校驗點訊息。段檢測電路用以根據各碼字段所對應的此些變數點訊息檢測各碼字段,以產生並更新各碼字段相應的解碼狀態。症狀檢查電路用以根據此些校驗點訊息判斷第一碼字是否解碼成功。控制電路用以檢查各碼字段的解碼狀態是否為通過,且於檢查到任一碼字段的解碼狀態為不通過時產生解碼指示。並且,控制電路用以於每完成一次變數點運算和一次校驗點運算時將遞迴次數加一。此外,於症狀檢查電路判斷第一碼字解碼成功時,控制電路致使變數點電路輸出解碼結果。
在一實施例中,一種讀取方法包含根據讀取指令自快閃記憶體讀取第一碼字以及執行解碼程序。其中,解碼程序包含:根據第一碼字之複數碼字段的複數通道值產生複數變數點訊息,其中各碼字段對應到此些變數點訊息中的複數個;根據各碼字段所對應的此些變數點訊息檢測各碼字段,以產生並更新各碼字段相應的解碼狀態;檢查各碼字段的解碼狀態是否為通過;於檢查到任一碼字段的解碼狀態為步通過時產生解碼指示;根據解碼指示跳過此些變數點訊息中之複數第一變數點訊息,並根據此些變數點訊息中非為第一變數點訊息的複數第二變數點訊息與複數校驗點訊息進行變數點運算以更新此些第二變數點訊息,其中此些第一變數點訊息對應到解碼狀態為通過的碼字段;根據此些變數點訊息進行校驗點運算,以產生並更新此些校驗點訊息;於完成校驗點運算時將遞迴次數加一;根據此些校驗點訊息判斷第一碼字是否解碼成功;及於判斷第一碼字解碼成功時輸出解碼結果。
為使本發明之實施例之上述目的、特徵和優點能更明顯易懂,下文配合所附圖式,作詳細說明如下。
第1圖為耦接至主裝置之儲存裝置之一實施例的方塊示意圖。請參閱第1圖,儲存裝置100可耦接至主裝置(Host Device)200。在一些實施態樣中,儲存裝置100可為記憶卡,且主裝置200可為但不限於配置有讀卡機的各式裝置,例如電腦、手機、相機等。在另一些實施態樣中,儲存裝置100亦可為固態硬碟(SSD),且主裝置200可為但不限於電腦、主機等。
在一實施例中,儲存裝置100包含快閃記憶體(Flash Memory)110和快閃記憶體控制器120,且快閃記憶體控制器120耦接於快閃記憶體110。快閃記憶體110用以儲存各式資料,例如多媒體檔案,且快閃記憶體控制器120可用以存取快閃記憶體110。
在一實施例中,快閃記憶體控制器120可包含唯讀記憶體121、處理器122以及錯誤更正碼(Error Correcting Codes)單元123。此外,快閃記憶體控制器120可更包含至少二傳輸介面(以下分別稱之為第一傳輸介面124與第二傳輸介面125)與至少一緩衝記憶體126。於此,處理器122耦接於唯讀記憶體121、錯誤更正碼單元123、第一傳輸介面124、第二傳輸介面125與緩衝記憶體126。
在一些實施態樣中,處理器122可透過匯流排耦接至唯讀記憶體121、錯誤更正碼單元123、第一傳輸介面124、第二傳輸介面125與緩衝記憶體126。第一傳輸介面124與第二傳輸介面125可為通用序列匯流排(USB)、先進技術附著(ATA)、序列先進技術附著(SATA)、快速周邊元件互聯(PCI-E)等。此外,處理器122可為中央控制單元(CPU)、微處理器(micro-processor)、數位訊號處理器(DSP)、可程式化控制器、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)或其他類似電路元件,但本發明並非以此為限。
唯讀記憶體121可用以儲存一程式碼121C,但本發明並非以此為限,程式碼121C亦得儲存在緩衝記憶體126或任何形式之記憶體內。處理器122可透過執行程式碼121C來控制唯讀記憶體121、錯誤更正碼單元123、第一傳輸介面124、第二傳輸介面125與緩衝記憶體126進行諸多協同運作。例如,透過第一傳輸介面124存取快閃記憶體110、利用緩衝記憶體126進行所需之緩衝處理、透過第二傳輸介面125與耦接於儲存裝置100的主裝置200溝通、利用錯誤更正碼單元123進行編碼與解碼等。
錯誤更正碼單元123可利用低密度奇偶校驗碼(LDPC code)對自快閃記憶體110中讀出的資料進行解碼並對寫入至快閃記憶體110中的資料進行編碼。於此,錯誤更正碼單元123包含低密度奇偶校驗碼解碼器123A,並且錯誤更正碼單元123可利用低密度奇偶校驗碼解碼器123A對自快閃記憶體110中讀出的資料進行解碼。
第2圖為第1圖中錯誤更正碼單元123之一實施例的方塊示意圖。請參閱第2圖,在一實施例中,錯誤更正碼單元123的低密度奇偶校驗碼解碼器123A可包含變數點電路1231、校驗點電路1232、段檢測電路1233、症狀檢查電路1234以及控制電路1235。變數點電路1231耦接於校驗點電路1232與段檢測電路1233。校驗點電路1232耦接於段檢測電路1233與症狀檢查電路1234。並且,控制電路1235耦接於變數點電路1231、段檢測電路1233與症狀檢查電路1234。此外,低密度奇偶校驗碼解碼器123A可更包含選擇電路1236,且選擇電路1236耦接於數位訊號處理模組123B、變數點電路1231與控制電路1235。
第3圖為讀取方法之一實施例的流程圖,且第4圖為第3圖中步驟S200之一實施例的流程圖。請參閱第1圖至第4圖,本發明任一實施例之快閃記憶體控制器120可根據任一實施例之讀取方法來讀取快閃記憶體110中所儲存的資料,並進行解碼。
當快閃記憶體控制器120透過第二傳輸介面125接收到來自主裝置200的讀取指令時,快閃記憶體控制器120可利用處理器122根據讀取指令中所載的邏輯位址自快閃記憶體110中的特定實體位址讀取第一碼字C1(步驟S100)。之後,快閃記憶體控制器120便可利用低密度奇偶校驗碼解碼器123A根據步驟S10所讀取到的第一碼字C1執行一解碼程序(步驟S200)。
在步驟S100之一實施例中,第一碼字C1可劃分成複數碼字段C11-C1n,且每一碼字段C11-C1n具有單獨驗證其正確性的能力。並且,此些碼字段C11-C1n可於存入於快閃記憶體110之前便已劃分好。錯誤更正碼單元123可更包含數位訊號處理模組123B,且數位訊號處理模組123B耦接於低密度奇偶校驗碼解碼器123A。於此,快閃記憶體控制器120可利用處理器122根據讀取指令對位於特定實體位址上的第一碼字C1之複數碼字段C11-C1n進行讀取,並利用錯誤更正碼單元123的數位訊號處理模組123B計算出各碼字段C11-C1n中各位元的可靠度訊息,進而轉換出各碼字段C11-C1n相應的複數通道值。其中,各通道值可以用以表示碼字段中的一位元,因此,通道值的數量是相同於碼字段中所含的位元數量。於此,各碼字段C11-C1n的位元數量可彼此相同,但本發明並非以此為限,各碼字段C11-C1n的位元數量亦可互不相同。
在一些實施態樣中,各通道值可僅包含單一個符號位元(sign bit),但本發明並非以此為限,在另一些實施態樣中,各通道值除包含一個符號位元外,更可包含至少一個可靠度位元(reliability bit(s))。
在步驟S200之解碼程序的一實施例中,低密度奇偶校驗碼解碼器123A可藉由選擇電路1236將變數點電路1231的輸入來源切換至數位訊號處理模組123B的輸出,以將數位訊號處理模組123B對第一碼字C1之各碼字段C11-C1n所讀取到的複數通道值依序載入至變數點電路1231。之後,低密度奇偶校驗碼解碼器123A便可利用變數點電路1231根據此些碼字段C11-C1n的複數通道值產生出複數變數點訊息MV1-MVx(步驟S201)。其中,各碼字段C11-C1n可對應到此些變數點訊息MV1-MVx中之複數個。於此,各變數點訊息MV1-MVx可用以表示第一碼字C1的一個位元訊息,因此各碼字段C11-C1n所對應到的變數點訊息之數量和其所包含的通道值之數量相同,且為一對一的關係。
在一些實施態樣中,當通道值僅包含符號位元時,對應的變數點訊息可亦僅包含符號資訊。而當通道值更包含可靠度位元時,對應的變數點訊息除符號資訊外更包含可靠度資訊。
接續,低密度奇偶校驗碼解碼器123A可利用段檢測電路1233分別根據各碼字段C11-C1n所對應的變數點訊息去檢測各碼字段,並且據其檢測結果產生並更新各碼字段相應的解碼狀態(步驟S202)。於此,當檢測到碼字段已解碼正確時,段檢測電路1233可將此碼字段的解碼狀態記錄成通過(pass)。反之,當檢測到碼字段解碼不正確時,段檢測電路1233可將此碼字段的解碼狀態記錄成不通過(fail)。
在一實施例中,各碼字段C11-C1n可包含碼字部P1與校驗部P2,如第5圖所示。並且,段檢測電路1233於步驟S202中可透過各碼字段C11-C1n之校驗部P2所對應到的變數點訊息來檢測其碼字部P1所對應到的變數點訊息是否已解碼正確。在一些實施態樣中,各碼字段C11-C1n之校驗部P2可為一種循環冗餘校驗碼(CRC),但本發明並非以此為限。
在另一實施例中,各碼字段C11-C1n可不包含校驗部P2(即僅包含碼字部P1)。並且,段檢測電路1233於步驟S22中可分別透過僅包含各碼字段C11-C1n所對應到之變數點訊息的校驗式來檢測各碼字段C11-C1n是否已解碼正確。舉例而言,段檢測電路1233可根據碼字段所對應到之變數點訊息於帶入校驗式後之結果值是否為零來判斷。當結果值為零時,表示已解碼正確。反之,當結果值不為零時,表示解碼不正確。在一些實施態樣中,段檢測電路1233可從校驗點電路1232得到用以檢測各碼字段C11-C1n的校驗式。
在一些實施例中,於第一碼字C1第一次進入至低密度奇偶校驗碼解碼器123A時,因尚未經過任何遞迴地解碼流程,此時段檢測電路1233會將各碼字段C11-C1n的解碼狀態皆記錄成不通過。
接續,低密度奇偶校驗碼解碼器123A可利用控制電路1235檢查段檢測電路1233於步驟S202中所得到之各碼字段C11-C1n的解碼狀態是否為通過(步驟S203)。在步驟S203之一實施例中,控制電路1235可先將此些碼字段C11-C1n中之一者設定為檢查目標(步驟S203a)後,再檢查此碼字段的解碼狀態是否為通過(步驟S203b)。在步驟S203a之一實施例中,控制電路1235可根據各碼字段C11-C1n於第一碼字C1中之組成順序依序進行設定,但本發明並非以此為限。
於此,當控制電路1235於步驟S203b中判定當前所檢查的碼字段之解碼狀態為通過時,控制電路1235可返回至步驟S203a中,並以此些碼字段C11-C1n中之另一者做為新的檢察目標。並且,當檢查到有任一個碼字段的解碼狀態為不通過時,控制電路1235可產生一解碼指示I1給變數點電路1231(步驟S204),以致使變數點電路1231可根據解碼指示進行解碼。於此,解碼指示I1的內容可包含其解碼狀態為通過的所有碼字段,以致使變數點電路1231可據此得知當前解碼狀態已為通過的碼字段有哪些。
在步驟S203之一實施例中,控制電路1235可根據各碼字段C11-C1n於第一碼字C1中之組成順序依序進行檢查,但本發明並非以此為限。
在一實施例中,於收到解碼指示I1後,變數點電路1231可先將所有變數點訊息MV1-MVx傳到校驗點電路1232,使得校驗點電路1232可根據此些變數點訊息MV1-MVx進行校驗點運算以產生複數校驗點訊息MC1-MCy,並且更新輸出至變數點電路1231的校驗點訊息MC1-MCy(步驟S205)。在一些實施態樣中,校驗點電路1232可利用複數個校驗式來進行校驗點運算,並分別根據各校驗式中所包含到的此些變數點訊息之總和是否為零來決定回傳至變數點電路1231的各校驗點訊息MC1-MCy,以藉此告知變數點電路1231其認為各變數點訊息MV1-MVx之值應為多少。
於接收到校驗點訊息MC1-MCy後,由於變數點電路1231已根據解碼指示I1得知當前解碼狀態已為通過的碼字段有哪些,並且得知此些解碼狀態已為通過之碼字段所對應到的複數變數點訊息(以下可稱之為複數第一變數點訊息)已為正確而無需更新。因此,變數點電路1231可根據解碼指示I1跳過此些第一變數點訊息,而僅根據校驗點電路1232所更新的校驗點訊息MC1-MCy與解碼狀態為不通過之各個碼字段所對應到的複數變數點訊息(即剩餘的變數點訊息,以下可稱之為複數第二變數點訊息)進行變數點運算,以根據變數點運算之結果更新此些第二變數點訊息(步驟S206)。如此一來,便可節省下不少解碼時間。
於完成更新此些第二變數點訊息後,變數點電路1231可再將所有的變數點訊息MV1-MVx傳到校驗點電路1232。其中,於校驗點電路1232每做完一次校驗點運算且變數點電路1231每做完一次變數點運算後,控制電路1235可將遞迴次數加一(步驟S207),以計數出此第一碼字C1已經過幾次的解碼流程。並且,症狀檢測電路1234可根據校驗點電路1232進行校驗點運算後的結果判斷第一碼字C1是否解碼成功(步驟S208)。於此,症狀檢測電路1234可根據校驗點電路1232所利用的複數個校驗式來進行判斷。例如,於此些校驗式於校驗點運算後所得到的值皆為零時,症狀檢測電路1234可判斷第一碼字C1已解碼成功。
當症狀檢測電路1234於步驟S208中判斷第一碼字C1解碼成功時,症狀檢測電路1234可產生訊號告知控制電路1235,以致使控制電路1235相應地產生觸發訊號給變數點電路1231,使得變數點電路1231可於收到觸發訊號後根據當前的變數點訊息MV1-MVx輸出解碼結果R1(步驟S209)。例如,通過第二傳輸介面125將解碼結果R1傳送給主裝置200,以完成讀取指令的執行。
當症狀檢測電路1234於步驟S208中之判斷結果為第一碼字C1解碼失敗時,控制電路1235可進一步確認所計數的遞迴次數是否已達到了預設次數(步驟S210)。其中,預設次數為預先設定的最大遞迴解碼次數,例如10次、100次等,其數值並非以此為限。
當控制電路1235於步驟S210中之確認結果為遞迴次數未達到預設次數時,解碼程序可返回至步驟S202,以於更新各碼字段C11-C1n當前的解碼狀態後,再次接續執行步驟S202後方的步驟。
當控制電路1235於步驟S210中之確認結果為遞迴次數已達到預設次數時,控制電路1235可更進一步確認此第一碼字C1是否為第一次進入到此解碼程序中(步驟S211),以提供再一次的解碼機會給第一碼字C1。倘若控制電路1235之確認結果為第一碼字C1並非為第一次進入此解碼程序中時,控制電路1235可產生失敗訊息給處理器122以告知解碼失敗(步驟S212)。而倘若控制電路1235之確認結果為此第一碼字C1是第一次進入到此解碼程序時,控制電路1235可再確認此第一碼字C1於經過第一次解碼程序(即,遞迴次數達到預設次數但仍解碼失敗)後其複數碼字段C11-C1n中是否存在有任一碼字段的解碼狀態已紀錄為通過(步驟S213)。
當控制電路1235於步驟S213之確認結果為此些碼字段C11-C1n中並無存在任何一個碼字段的解碼狀態為通過時,執行步驟S212,以產生失敗訊息告知處理器122解碼失敗。而當控制電路1235於步驟S213之確認結果為此些碼字段C11-C1n中存在有至少一個碼字段的解碼狀態為通過時,控制電路1235便可利用於第一次解碼程序中取得的複數第一變數點訊息將第一碼字C1中對應到的碼字段(即解碼狀態為通過的碼字段)之複數通道值取代掉,以重組此第一碼字C1成一個新的第二碼字C2(步驟S214)。舉例而言,假設第一碼字C1中的碼字段C12和碼字段C1n的解碼狀態皆為通過時,控制電路1235可分別將碼字段C12和碼字段C1n的複數通道值替換成對應的複數第一變數點訊息,而形成碼字段C12’ 和碼字段C1n’,且第二碼字C2即是由碼字段C11、碼字段C12’、碼字段C13…碼字段C1(n-1)和碼字段C1n’所組成,如第6圖所示。
之後,低密度奇偶校驗碼解碼器123A再根據此第二碼字C2返回步驟S200以重啟解碼程序(即根據第二碼字C2進入步驟S201)。其中,於前一次解碼程序中所計數到的遞迴次數在重啟的解碼程序中將會被重置,但各碼字段C11-C1n的解碼狀態並不會被清除。
如此一來,第一碼字C1在經過步驟S213之重組而成為第二碼字C2後,可解度將被提高,而減少了後續解碼流程或資料復原的負擔。並且,因第二碼字C2中解碼狀態為通過的碼字段在重啟的解碼程序中亦可被跳過,而再次降低了第二次解碼所需的解碼時間。
在步驟S214之一實施例中,由於各碼字段C11-C1n的通道值是以序列方式輸入至變數點電路1231,因此,控制電路1235可在欲輸入解碼狀態為通過之碼字段至變數點電路1231時,透過選擇電路1236的輸入切換改將相應的複數第一變數點訊息輸入至變數點電路1231,並在欲輸入解碼狀態為不通過之碼字段至變數點電路1231時,透過選擇電路1236的輸入切換將此碼字段原本的複數通道值輸入至變數點電路1231,而重組出第二碼字C2,但本發明並非以此為限。在一些實施態樣中,選擇電路1236可以多工器來實現。
在讀取方法之一實施例中,當處理器122接收到失敗訊息時,快閃記憶體控制器120可更根據此失敗訊息返回執行步驟S100,以再次利用處理器122重新自快閃記憶體110中的特定實體位址讀取第一碼字C1。
在一些實施態樣中,變數點電路1231與校驗點電路1232可以全平行式、序列式或部分平行式之架構來實現。於此,由於變數點電路1231與校驗點電路1232的實作方式已為本技術領域中具有通常知識者所熟知,故不贅述。
在一些實施例中,本發明任一實施例之快閃記憶體控制器120可以各式製程的積體電路製程方式整合於晶片中,但本發明並非以此為限。
值得注意的是,相較於傳統直接對整個碼字進行遞迴解碼,本發明任一實施例的錯誤更正碼單元123可因分段解碼的特性而得以在遞迴解碼的過程中跳過解碼狀態已為通過的碼字段。如此一來,本發明任一實施例的錯誤更正碼單元123對整個碼字所需的解碼時間便可大幅減少。此外,相較於傳統於第一次解碼失敗後仍是以初始的整個碼字重新進行遞迴解碼,本發明任一實施例的錯誤更正碼單元123則會先將碼字中部份的碼字段替換成前次已回報為正確的結果,之後才以重組過後的碼字再次進行遞迴解碼。藉此,本發明任一實施例的錯誤更正碼單元123可更提高解碼正確率,並減少後續解碼流程或資料復原的負擔。
綜上所述,本發明任一實施例之快閃記憶體控制器、儲存裝置及讀取方法,其在解碼程序中透過確認有碼字中哪些碼字段的解碼狀態已為通過,來使得在後續遞迴地解碼流程中可跳過此些解碼狀態已為通過的碼字段,以節省解碼時間並提升解碼效率。此外,本發明任一實施例之快閃記憶體控制器、儲存裝置及讀取方法更可將碼字中部份的碼字段替換成前次已回報為正確的結果後,再以經此重組過後的碼字再次進行解碼,以提高解碼正確率,並減少後續解碼流程或資料復原的負擔。
本發明之實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明實施例之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:儲存裝置 110:快閃記憶體 120:快閃記憶體控制器 121:唯讀記憶體 121C:程式碼 122:處理器 123:錯誤更正碼單元 123A:低密度奇偶校驗碼解碼器 123B:數位訊號處理模組 1231:變數點電路 1232:校驗點電路 1233:段檢測電路 1234:症狀檢查電路 1235:控制電路 1236:選擇電路 124:第一傳輸介面 125:第二傳輸介面 126:緩衝記憶體 200:主裝置 C1:第一碼字 C11-C1n:碼字段 C12’:碼字段 C1n’:碼字段 I1:解碼指示 MC1-MCy:校驗點訊息 MV1-MVx:變數點訊息 P1:碼字部 P2:校驗部 R1:解碼結果 S100~S214:步驟
第1圖為耦接至主裝置之儲存裝置之一實施例的方塊示意圖。 第2圖為第1圖中錯誤更正碼單元之一實施例的方塊示意圖。 第3圖為讀取方法之一實施例的流程圖。 第4A圖至第4B圖為第3圖中步驟S200之一實施例的流程圖。 第5圖為第一碼字之一實施例的概要示意圖。 第6圖為第二碼字之一實施例的概要示意圖。
S100~S214:步驟

Claims (19)

  1. 一種快閃記憶體控制器,該快閃記憶體控制器用以存取一快閃記憶體,該快閃記憶體控制器包含:一唯讀記憶體,用以儲存一程式碼;一處理器,用以執行該程式碼以控制對該快閃記憶體之存取;及一錯誤更正碼單元,包含一低密度奇偶校驗碼解碼器,該低密度奇偶校驗碼解碼器用以執行一解碼程序,該低密度奇偶校驗碼解碼器包含:一變數點電路,用以根據一第一碼字之複數碼字段的複數通道值產生複數變數點訊息,根據一解碼指示跳過該些變數點訊息中之複數第一變數點訊息,並根據該些變數點訊息中非為該些第一變數點訊息的複數第二變數點訊息與複數校驗點訊息進行變數點運算以更新該些第二變數點訊息,其中各該碼字段對應到該些變數點訊息中之複數個,且該些第一變數點訊息對應到解碼狀態為通過的該碼字段,該解碼指示包含解碼狀態為通過的所有該些碼字段;一校驗點電路,用以根據該些變數點訊息進行一校驗點運算以產生並更新該些校驗點訊息;一段檢測電路,用以根據各該碼字段所對應的該些變數點訊息檢測各該碼字段,以產生並更新各該碼字段相應的該解碼狀態;一症狀檢查電路,用以根據該校驗點運算的結果判斷該第一碼字是否解碼成功;及一控制電路,用以檢查各該碼字段的該解碼狀態是否為通過,且於檢查到任一該碼字段的該解碼狀態為不通過時產生該解碼指示,該控制電路於每完成一次該校驗點運算與一次該變數點運算時將一遞迴次數加一,且於該症狀檢查 電路判斷該第一碼字解碼成功時致使該變數點電路輸出一解碼結果。
  2. 如請求項1所述的快閃記憶體控制器,其中於該症狀檢查電路判斷該第一碼字未解碼成功時,該控制電路確認該遞迴次數是否達到一預設次數,並於確認該遞迴次數未達到該預設次數時,該控制電路重新檢查各該碼字段的該解碼狀態,以根據重新檢查的結果更新該解碼指示。
  3. 如請求項2所述的快閃記憶體控制器,其中於確認該遞迴次數達到該預設次數時,該控制電路確認該第一碼字是否為第一次進入該解碼程序,且於確認為第一次時,該控制電路確認該些碼字段中是否有該解碼狀態為通過的該碼字段,當有該解碼狀態為通過的該碼字段時,該控制電路利用於該第一次的該解碼程序中取得的該些第一變數點訊息取代掉該第一碼字中對應到該解碼狀態為通過的該碼字段之該些通道值,以產生一第二碼字,並致使該低密度奇偶校驗碼解碼器重新根據該第二碼字執行該解碼程序。
  4. 如請求項3所述的快閃記憶體控制器,其中該控制電路於確認非為第一次時以及於各該碼字段的該解碼狀態皆為不通過時,產生一失敗訊息。
  5. 如請求項1所述的快閃記憶體控制器,其中各該碼字段包含一碼字部與一校驗部,該段檢測電路係根據各該碼字段之該校驗部來檢測各該碼字段。
  6. 如請求項1所述的快閃記憶體控制器,其中該段檢測電路係分別根據僅包含各該碼字段之一校驗式來檢測各該碼字段。
  7. 一種儲存裝置,包含:一快閃記憶體;及一快閃記憶體控制器,用以存取該快閃記憶體,該快閃記憶體控制器包含: 一唯讀記憶體,用以儲存一程式碼;一處理器,用以執行該程式碼以控制對該快閃記憶體之存取;及一錯誤更正碼單元,包含一低密度奇偶校驗碼解碼器,該低密度奇偶校驗碼解碼器用以執行一解碼程序,該低密度奇偶校驗碼解碼器包含:一變數點電路,用以根據一第一碼字之複數碼字段的複數通道值產生複數變數點訊息,根據一解碼指示跳過該些變數點訊息中之複數第一變數點訊息,並根據該些變數點訊息中非為該些第一變數點訊息的複數第二變數點訊息與複數校驗點訊息進行變數點運算以更新該些第二變數點訊息,其中各該碼字段對應到該些變數點訊息中之複數個,且該些第一變數點訊息對應到解碼狀態為通過的該碼字段,該解碼指示包含解碼狀態為通過的所有該些碼字段;一校驗點電路,用以根據該些變數點訊息進行一校驗點運算以產生並更新該些校驗點訊息;一段檢測電路,用以根據各該碼字段所對應的該些變數點訊息檢測各該碼字段,以產生並更新各該碼字段相應的該解碼狀態;一症狀檢查電路,用以根據該校驗點運算的結果判斷該第一碼字是否解碼成功;及一控制電路,用以檢查各該碼字段的該解碼狀態是否為通過,且於檢查到任一該碼字段的該解碼狀態為不通過時產生該解碼指示,該控制電路於每完成一次該校驗點運算與一次該變數點運算時將一遞迴次數加一,且於該症狀檢查電路判斷該第一碼字解碼成功時致使該變數點電路輸出一解碼結果。
  8. 如請求項7所述的儲存裝置,其中於該症狀檢查電路判斷該第一碼字未解碼成功時,該控制電路確認該遞迴次數是否達到一預設次數,並於確 認該遞迴次數未達到該預設次數時,該控制電路重新檢查各該碼字段的該解碼狀態,以根據重新檢查的結果更新該解碼指示。
  9. 如請求項8所述的儲存裝置,其中於確認該遞迴次數達到該預設次數時,該控制電路確認該第一碼字是否為第一次進入該解碼程序,且於確認為第一次時,該控制電路確認該些碼字段中是否有該解碼狀態為通過的該碼字段,當有該解碼狀態為通過的該碼字段時,該控制電路利用於該第一次的該解碼程序中取得的該些第一變數點訊息取代掉該第一碼字中對應到該解碼狀態為通過的該碼字段之該些通道值,以產生一第二碼字,並致使該低密度奇偶校驗碼解碼器重新根據該第二碼字執行該解碼程序。
  10. 如請求項9所述的儲存裝置,其中該控制電路於確認非為第一次時以及於各該碼字段的該解碼狀態皆為不通過時,產生一失敗訊息。
  11. 如請求項7所述的儲存裝置,其中各該碼字段包含一碼字部與一校驗部,該段檢測電路係根據各該碼字段之該校驗部來檢測各該碼字段。
  12. 如請求項7所述的儲存裝置,其中該段檢測電路係分別根據僅包含各該碼字段之一校驗式來檢測各該碼字段。
  13. 一種讀取方法,包含:根據一讀取指令自一快閃記憶體讀取一第一碼字;及執行一解碼程序,其中該解碼程序包含:根據該第一碼字之複數碼字段的複數通道值產生複數變數點訊息,其中各該碼字段對應到該些變數點訊息中之複數個;根據各該碼字段所對應的該些變數點訊息檢測各該碼字段,以產生並更新各該碼字段相應的一解碼狀態; 檢查各該碼字段的該解碼狀態是否為通過;於檢查到任一該碼字段的該解碼狀態為不通過時產生一解碼指示;根據該解碼指示跳過該些變數點訊息中之複數第一變數點訊息,並根據該些變數點訊息中非為該些第一變數點訊息的複數第二變數點訊息與複數校驗點訊息進行變數點運算以更新該些第二變數點訊息,其中該些第一變數點訊息對應到解碼狀態為通過的該碼字段,該解碼指示包含解碼狀態為通過的所有該些碼字段;根據該些變數點訊息進行一校驗點運算以產生並更新該些校驗點訊息;於每完成一次該校驗點運算與一次該變數點運算時將一遞迴次數加一;根據該校驗點運算的結果判斷該第一碼字是否解碼成功;及於判斷該第一碼字解碼成功時,輸出一解碼結果。
  14. 如請求項13所述的讀取方法,更包含:於判斷該第一碼字未解碼成功時,確認該遞迴次數是否達到一預設次數;及於確認該遞迴次數未達到該預設次數時,返回執行根據各該碼字段所對應的該些變數點訊息檢測各該碼字段,以產生並更新各該碼字段相應的該解碼狀態之步驟。
  15. 如請求項14所述的讀取方法,更包含:於確認該遞迴次數達到該預設次數時,確認該第一碼字是否為第一次進入該解碼程序;於確認為第一次時,確認該些碼字段中是否有該解碼狀態為通過的該碼字段; 當有該解碼狀態為通過的該碼字段時,利用於該第一次的該解碼程序中取得的該些第一變數點訊息取代掉該第一碼字中對應到該解碼狀態為通過的該碼字段之該些通道值,以產生一第二碼字;及重新根據該第二碼字執行該解碼程序。
  16. 如請求項15所述的讀取方法,更包含:於確認非為第一次時,產生一失敗訊息;及於各該碼字段的該解碼狀態皆為不通過時,產生該失敗訊息。
  17. 如請求項16所述的讀取方法,更包含:根據該失敗訊息重新返回執行根據該讀取指令自該快閃記憶體讀取該第一碼字之步驟。
  18. 如請求項13所述的讀取方法,其中各該碼字段包含一碼字部與一校驗部,且根據各該碼字段所對應的該些變數點訊息檢測各該碼字段之步驟係根據各該碼字段之該校驗部來檢測。
  19. 如請求項13所述的讀取方法,其中根據各該碼字段所對應的該些變數點訊息檢測各該碼字段之步驟係分別根據僅包含各該碼字段之一校驗式來檢測各該碼字段。
TW108133512A 2019-09-18 2019-09-18 快閃記憶體控制器、儲存裝置及讀取方法 TWI739157B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW108133512A TWI739157B (zh) 2019-09-18 2019-09-18 快閃記憶體控制器、儲存裝置及讀取方法
CN201911171091.4A CN112527548B (zh) 2019-09-18 2019-11-26 快闪存储器控制器、储存装置及读取方法
US16/835,863 US11115063B2 (en) 2019-09-18 2020-03-31 Flash memory controller, storage device and reading method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108133512A TWI739157B (zh) 2019-09-18 2019-09-18 快閃記憶體控制器、儲存裝置及讀取方法

Publications (2)

Publication Number Publication Date
TW202113863A TW202113863A (zh) 2021-04-01
TWI739157B true TWI739157B (zh) 2021-09-11

Family

ID=74868795

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108133512A TWI739157B (zh) 2019-09-18 2019-09-18 快閃記憶體控制器、儲存裝置及讀取方法

Country Status (3)

Country Link
US (1) US11115063B2 (zh)
CN (1) CN112527548B (zh)
TW (1) TWI739157B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI831333B (zh) * 2022-08-18 2024-02-01 慧榮科技股份有限公司 記憶體控制器及快閃記憶體的存取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732543B1 (en) * 2010-08-05 2014-05-20 Marvell International Ltd. Tensor product codes for flash
US20180351577A1 (en) * 2017-05-30 2018-12-06 Western Digital Technologies, Inc. Iteration-adaptive decoding for non-binary ldpc codes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI425519B (zh) * 2009-12-09 2014-02-01 Nat Chip Implementation Ct Nat Applied Res Lab 低複雜度低密度同位元檢查碼解碼器之記憶體配置方法及其解碼器結構
JP5794240B2 (ja) * 2013-02-05 2015-10-14 ソニー株式会社 誤り検出訂正装置、誤り検出訂正方法、情報処理装置、および、プログラム
US9467171B1 (en) * 2013-04-08 2016-10-11 Marvell International Ltd. Systems and methods for on-demand exchange of extrinsic information in iterative decoders
CN104733051B (zh) * 2013-12-19 2018-01-05 群联电子股份有限公司 奇偶校验码的解码方法、存储器储存装置及控制电路单元
US9258015B2 (en) * 2013-12-23 2016-02-09 Apple Inc. Decoder with selective iteration scheduling
US9325347B1 (en) * 2014-02-21 2016-04-26 Microsemi Storage Solutions (U.S.), Inc. Forward error correction decoder and method therefor
US10200064B1 (en) * 2014-03-18 2019-02-05 Marvell International Ltd. Systems and method for bit-flipping decoders with partial-column processing, ordering and scheduling
US10038456B1 (en) * 2014-03-25 2018-07-31 Marvell International Ltd. Decoders with look ahead logic
US9755665B1 (en) * 2014-09-23 2017-09-05 Marvell International Ltd. Systems and methods for an iterative decoding scheme
CN107305510B (zh) * 2016-04-21 2020-12-15 合肥兆芯电子有限公司 数据处理方法、存储器存储装置及存储器控制电路单元
CN107608818B (zh) * 2016-07-12 2021-05-18 深圳大心电子科技有限公司 解码方法、存储器存储装置及存储器控制电路单元
KR102568716B1 (ko) * 2016-08-02 2023-08-21 삼성전자주식회사 Ldpc 코드의 디코딩을 위한 장치 및 방법
US10218384B2 (en) * 2016-12-01 2019-02-26 Sandisk Technologies Llc ECC decoder with multiple decoding modes
US10389388B2 (en) * 2017-12-28 2019-08-20 Apple Inc. Efficient LDPC decoding with predefined iteration-dependent scheduling scheme

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732543B1 (en) * 2010-08-05 2014-05-20 Marvell International Ltd. Tensor product codes for flash
US20180351577A1 (en) * 2017-05-30 2018-12-06 Western Digital Technologies, Inc. Iteration-adaptive decoding for non-binary ldpc codes

Also Published As

Publication number Publication date
US20210083688A1 (en) 2021-03-18
TW202113863A (zh) 2021-04-01
CN112527548B (zh) 2023-08-29
US11115063B2 (en) 2021-09-07
CN112527548A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN107506257B (zh) 错误检查纠正解码方法与装置
USRE49253E1 (en) Semiconductor memory device
KR102663812B1 (ko) 데이터의 인코딩과 디코딩을 위한 메모리 시스템
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
CN102024501A (zh) 存储器系统以及对存储器系统的控制方法
CN103970645A (zh) 错误检测与纠正装置、错误检测与纠正方法、信息处理器及程序
JP2011198272A (ja) 半導体記憶装置および半導体記憶装置の制御方法
TW201331946A (zh) 使用錯誤校正碼編碼以驗證錯誤校正碼解碼操作
TWI446160B (zh) 快閃記憶體控制器及資料讀取方法
US10514980B2 (en) Encoding method and memory storage apparatus using the same
JP2019057752A (ja) メモリシステム
TWI739157B (zh) 快閃記憶體控制器、儲存裝置及讀取方法
CN110716824B (zh) 编码方法及使用所述编码方法的存储器存储装置
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
CN110795271A (zh) 对用户数据执行纠错的纠错电路和使用其的纠错方法
TWI748214B (zh) 快閃記憶體控制器、儲存裝置及其讀取方法
CN112540866B (zh) 存储器装置及其数据存取方法
TWI812411B (zh) 記憶體控制器及低密度同位元查核碼之位元翻轉方法
TWI836877B (zh) 讀取電壓校正方法、記憶體儲存裝置及記憶體控制電路單元
CN110391815B (zh) 解码方法及储存控制器
KR20130054385A (ko) 분산형 ecc 프로세싱 시스템 및 방법
KR102085690B1 (ko) 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법
KR20230132697A (ko) 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법
JP2005072975A (ja) 誤り訂正回路および誤り訂正方法
JP2016024571A (ja) 誤り訂正システム、誤り訂正方法、および誤り訂正プログラム