TWI751096B - 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 - Google Patents

使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 Download PDF

Info

Publication number
TWI751096B
TWI751096B TW110129882A TW110129882A TWI751096B TW I751096 B TWI751096 B TW I751096B TW 110129882 A TW110129882 A TW 110129882A TW 110129882 A TW110129882 A TW 110129882A TW I751096 B TWI751096 B TW I751096B
Authority
TW
Taiwan
Prior art keywords
matrix
sub
parity
inverse
circuit
Prior art date
Application number
TW110129882A
Other languages
English (en)
Other versions
TW202147104A (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 TW202147104A publication Critical patent/TW202147104A/zh
Application granted granted Critical
Publication of TWI751096B publication Critical patent/TWI751096B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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
    • 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
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明提供使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和相關設備如記憶裝置、控制器及其編碼電路,而此方法可包含:從主裝置接收寫入指令和資料;取得至少一部分資料以作為多個訊息,以透過先算資訊輪換型編碼產生多個同位碼,其中針對一訊息:開始對該訊息進行編碼以依據該訊息以及同位檢查矩陣內的第一部分矩陣的轉置矩陣來計算一局部同位碼;從儲存電路載入該同位檢查矩陣中的第二部分矩陣的逆矩陣的局部矩陣;以及應用局部矩陣及其通過輪換控制產生的輪換版本來產生並輸出對應的同位碼;以及寫入非揮發性記憶體。

Description

使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備
本發明係關於記憶體控制,尤其關於一種使用藉助於先算資訊輪換(rotation)的資料保護的非揮發性(non-volatile,NV)記憶體寫入方法以及相關設備諸如一記憶裝置、該記憶裝置的控制器,以及該控制器的一編碼電路。
近年來由於記憶體的技術不斷地發展,各種可攜式以及非可攜式記憶裝置(例如:分別符合SD/MMC、CF、MS、XD及UFS標準之記憶卡;又例如:固態硬碟(solid state drive, SSD);又例如:分別符合UFS及EMMC標準之嵌入式(embedded)儲存裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可包含單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。相較之下,多階細胞快閃記憶體中之每個被當作記憶細胞的電晶體的儲存能力則被充分利用,其採用較高的電壓來驅動,以透過不同位準的電壓在一個電晶體中記錄至少兩位元的資訊(諸如00、01、11、10)。理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保在記憶裝置中對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,具備上列管理機制的記憶裝置仍有不足之處。例如,在錯誤更正碼(Error Correction Code, ECC)處理中之某類型的編碼的期間,相關的矩陣乘法的計算可能仰賴先算(pre-calculated)資訊以避免編碼延遲,而該先算資訊可能會在一控制器積體電路(integrated circuit,IC)的硬體架構中需要某大小的儲存空間,其中這個儲存空間的大小可對應於同位校驗長度的倍數。上述方式可能會帶來某些副作用,舉例來說,由於控制器IC可能需要支持如不同記憶裝置製造商所要求的各種ECC處理規範,控制器IC的內部儲存空間可能因此被迫增加,這可能進一步造成相關成本提高。因此,需要一種新穎的方法以及相關架構,以在沒有副作用或較不會帶來副作用的情況下改善記憶裝置的效能。
本發明之一目的在於提供一種使用藉助於先算資訊輪換(pre-calculation information rotation)的資料保護的非揮發性記憶體(non-volatile memory, NV memory)寫入方法、以及相關設備諸如一記憶裝置、該記憶裝置的一控制器、以及該控制器的一編碼電路,以解決上述問題。
本發明之另一目的在於提供一種使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法、以及相關設備諸如一記憶裝置、該記憶裝置的一控制器、以及該控制器的一編碼電路,以最佳化該記憶裝置的效能。
本發明至少一實施例提供一種使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法,其中該非揮發性記憶體寫入方法係可應用於(applicable to)一記憶裝置的一記憶體控制器。該記憶裝置可包含該記憶體控制器以及一非揮發性記憶體,且該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該非揮發性記憶體寫入方法可包含:利用該記憶體控制器自一主裝置接收一寫入指令以及對應於該寫入指令的資料;利用該記憶體控制器的一編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼(Error Correction Code, ECC)組塊(chunk)的複數個訊息(message),以透過先算資訊輪換型編碼(pre-calculated information rotation type encoding)依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼(parity code),其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息;以及利用該記憶體控制器將包含有該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。例如,針對該複數個訊息中之任一訊息,該先算資訊輪換型編碼包含:在該訊息的至少一部分被發送至該編碼電路後,開始對該訊息進行編碼以依據該訊息以及一同位檢查矩陣(parity check matrix)中的一第一部分矩陣(part-one matrix)的一轉置矩陣(transpose matrix)來計算一局部同位碼(partial parity code),其中該第一部分矩陣是該同位檢查矩陣的一第一子矩陣;在該局部同位碼的至少一部分被產生後,從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一第二部分矩陣(part-two matrix)的一逆矩陣的一局部矩陣(partial matrix),其中該第二部分矩陣是該同位檢查矩陣的一第二子矩陣,以及該第二部分矩陣的該逆矩陣的該局部矩陣係被儲存作為該儲存電路中的先算資訊(pre-calculated information);將該第二部分矩陣的該逆矩陣的該局部矩陣應用至(apply to)該局部同位碼以產生對應於該訊息的一同位碼的一第一子同位碼(sub-parity code),以及輸出該同位碼的該第一子同位碼以作為該同位碼的一起始部分;進行針對該先算資訊的輪換控制以載入該第二部分矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本;以及將該第二部分矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本應用至該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼,以及輸出該同位碼的該至少一後續子同位碼以作為該同位碼的至少一後續部分;以及利用該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
除了以上方法外,本發明亦提供一種記憶裝置,且該記憶裝置包含一非揮發性記憶體以及一記憶體控制器。該非揮發性記憶體係用來儲存資訊,其中該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該記憶體控制器係耦接至該非揮發性記憶體,且該記憶體控制器係用來控制該記憶裝置的運作。另外,該記憶體控制器包含一處理電路,且該處理電路係用來依據來自一主裝置的複數個主裝置指令來控制該記憶體控制器,以容許該主裝置透過該記憶體控制器存取該非揮發性記憶體。該記憶體控制器另包含一控制邏輯電路,其耦接至該處理電路且係用來控制該非揮發性記憶體。尤其,該控制邏輯電路包含一編碼電路,其用來藉助於先算資訊輪換進行編碼以供於存取該非揮發性記憶體的期間的資料保護之用。此外,該記憶體控制器自該主裝置接收一寫入指令以及對應於該寫入指令的資料;該編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼組塊(ECC chunk)的複數個訊息,以透過先算資訊輪換型編碼依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼,其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息;以及該記憶體控制器將包含有該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。例如,針對該複數個訊息中之任一訊息,該先算資訊輪換型編碼的運作可包含:在該訊息的至少一部分被發送至該編碼電路後,開始對該訊息進行編碼以依據該訊息以及一同位檢查矩陣中的一第一部分矩陣的一轉置矩陣來計算一局部同位碼,其中該第一部分矩陣是該同位檢查矩陣的一第一子矩陣;在該局部同位碼的至少一部分被產生後,從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一第二部分矩陣的一逆矩陣的一局部矩陣,其中該第二部分矩陣是該同位檢查矩陣的一第二子矩陣,以及該第二部分矩陣的該逆矩陣的該局部矩陣係被儲存作為該儲存電路中的先算資訊;將該第二部分矩陣的該逆矩陣的該局部矩陣應用至該局部同位碼以產生對應於該訊息的一同位碼的一第一子同位碼,以及輸出該同位碼的該第一子同位碼以作為該同位碼的一起始部分;進行針對該先算資訊的輪換控制以載入該第二部分矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本;以及將該第二部分矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本應用至該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼,以及輸出該同位碼的該至少一後續子同位碼以作為該同位碼的至少一後續部分;以及利用該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
除了以上方法外,本發明亦提供一種記憶裝置的記憶體控制器,其中該記憶裝置包含該記憶體控制器以及一非揮發性記憶體。該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。另外,該記憶體控制器包含一處理電路,且該處理電路係用來依據來自一主裝置的複數個主裝置指令來控制該記憶體控制器,以容許該主裝置透過該記憶體控制器存取該非揮發性記憶體。該記憶體控制器另包含一控制邏輯電路,其耦接至該處理電路且係用來控制該非揮發性記憶體。尤其,該控制邏輯電路包含一編碼電路,其係用來藉助於先算資訊輪換進行編碼以供於存取該非揮發性記憶體的期間的資料保護之用。此外,該記憶體控制器自該主裝置接收一寫入指令以及對應於該寫入指令的資料;該編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼組塊的複數個訊息,以透過先算資訊輪換型編碼依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼,其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息;以及該記憶體控制器將包含有該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。例如,針對該複數個訊息中之任一訊息,該先算資訊輪換型編碼的運作可包含:在該訊息的至少一部分被發送至該編碼電路後,開始對該訊息進行編碼以依據該訊息以及一同位檢查矩陣中的一第一部分矩陣的一轉置矩陣來計算一局部同位碼,其中該第一部分矩陣是該同位檢查矩陣的一第一子矩陣;在該局部同位碼的至少一部分被產生後,從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一第二部分矩陣的一逆矩陣的一局部矩陣,其中該第二部分矩陣是該同位檢查矩陣的一第二子矩陣,以及該第二部分矩陣的該逆矩陣的該局部矩陣係被儲存作為該儲存電路中的先算資訊;將該第二部分矩陣的該逆矩陣的該局部矩陣應用至該局部同位碼以產生對應於該訊息的一同位碼的一第一子同位碼,以及輸出該同位碼的該第一子同位碼以作為該同位碼的一起始部分;進行針對該先算資訊的輪換控制以載入該第二部分矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本;以及將該第二部分矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本應用至該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼,以及輸出該同位碼的該至少一後續子同位碼以作為該同位碼的至少一後續部分;以及利用該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
除了以上方法外,本發明亦提供一種記憶裝置的記憶體控制器的編碼電路,其中該記憶裝置包含該記憶體控制器以及一非揮發性記憶體,該記憶體控制器包含該編碼電路,以及該非揮發性記憶體包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該編碼電路包含一桶式移位器(barrel shifter)以及耦接至該桶式移位器的一乘法電路(multiplication circuit),而該乘法電路包含一循環卷積(circulant convolution)控制單元、耦接至該循環卷積控制單元的複數個循環卷積電路、以及耦接至該複數個循環卷積電路的一組合電路,其中該循環卷積控制單元包含一儲存電路以及耦接至該儲存電路的一輪換控制電路。該桶式移位器用以進行局部同位碼計算(partial parity code calculation)。例如,該記憶體控制器從一主裝置接收一寫入指令以及對應於該寫入指令的資料,以及該編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼組塊的複數個訊息,以透過先算資訊輪換型編碼依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼,其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息。在該複數個訊息中之任一訊息的至少一部分被發送至該編碼電路後,該桶式移位器依據該訊息以及一同位檢查矩陣中的一第一部分矩陣的一轉置矩陣來計算一局部同位碼,其中該第一部分矩陣是該同位檢查矩陣的一第一子矩陣。另外,該乘法電路用以進行乘法操作以產生對應於該訊息的一同位碼。例如,該儲存電路用以儲存先算資訊,且該輪換控制電路用以控制該編碼電路藉助於先算資訊輪換來進行編碼以供於存取該非揮發性記憶體的期間的資料保護之用,並且該複數個循環卷積電路用以進行循環卷積操作。在該局部同位碼的至少一部分被產生後,該輪換控制電路從該儲存電路載入該同位檢查矩陣中的一第二部分矩陣的一逆矩陣的一局部矩陣,以容許該複數個循環卷積電路將該第二部分矩陣的該逆矩陣的該局部矩陣應用至該局部同位碼以產生對應於該訊息的該同位碼的一第一子同位碼,以及進行針對該先算資訊的輪換控制以載入該第二部分矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本,以容許該複數個循環卷積電路將該第二部分矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本應用至該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼,其中該第二部分矩陣是該同位檢查矩陣的一第二子矩陣,以及該第二部分矩陣的該逆矩陣的該局部矩陣係被儲存作為該儲存電路中的該先算資訊。該組合電路用以輸出該同位碼的該第一子同位碼以作為該同位碼的一起始部分,以及輸出該同位碼的該至少一後續子同位碼以作為該同位碼的至少一後續部分。此外,該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
本發明的方法以及相關設備能確保記憶裝置能在各種情況下妥善地運作,而不會遭遇到相關技術的問題。例如,本發明的非揮發性記憶體寫入方法提供了多個控制方案以供存取控制。藉助於本發明的方法以及相關設備,記憶裝置不會遭受相關技術中現有的問題,例如內部儲存空間問題、增加的成本的問題等。
第1圖為依據本發明一實施例之電子系統10的示意圖,其中電子系統10可包含一主裝置50以及一記憶裝置100。主裝置50可包含至少一處理器(例如一或多個處理器),其可統稱為處理器52,且可另包含耦接至處理器52的一電源供應電路54。處理器52係用來控制主裝置50的運作,而電源供應電路54係用來提供電源給處理器52以及記憶裝置100,並且輸出一或多個驅動電壓給記憶裝置100。記憶裝置100可用來提供儲存空間給主裝置50,並且自主裝置50取得該一或多個驅動電壓以作為記憶裝置100的電源。主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、可穿戴式裝置、平板電腦(tablet)以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。記憶裝置100的例子可包含(但不限於):固態硬碟(solid state drive, SSD)以及嵌入式(embedded)儲存裝置諸如符合通用快閃儲存(Universal Flash Storage,以下簡稱「UFS」)或嵌入式多媒體卡(Embedded Multimedia Card, EMMC)標準的嵌入式儲存裝置。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110以及一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器諸如記憶體控制器110係用來控制記憶裝置100的運作以及存取非揮發性記憶體120,而非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…及122-N,其中「N」可表示大於一的正整數。例如,非揮發性記憶體120可為一快閃記憶體,而非揮發性記憶體元件122-1、122-2、…及122-N可為複數個快閃記憶體晶片或複數個快閃記憶體裸晶,但本發明不限於此。
如第1圖所示,記憶體控制器110可包含一處理電路諸如一微處理器112、一儲存單元諸如一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯電路114、一隨機存取記憶體(Random Access Memory, RAM)116以及一傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。隨機存取記憶體116係以一靜態隨機存取記憶體(Static RAM, SRAM)來實施,但本發明不限於此。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110,例如,隨機存取記憶體116可用來作為一緩衝記憶體以緩衝資料。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112係用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,在某些例子中,程式碼112C可儲存在隨機存取記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含一資料保護電路諸如一先算資訊輪換(pre-calculated information rotation)型錯誤更正碼(Error Correction Code,以下簡稱「ECC」)電路114E,且該資料保護電路諸如先算資訊輪換型ECC電路114E可保護資料及/或進行錯誤更正。傳輸介面電路118可符合一特定通訊標準(例如UFS標準等),且可依據該特定通訊標準進行通訊,例如為記憶裝置100,和主裝置50進行通訊。
在本實施例中,主裝置50可傳送主裝置指令(host command)與對應的邏輯位址至記憶體控制器110來存取記憶裝置100。記憶體控制器110接收主裝置指令與邏輯位址,並將主裝置指令轉譯成記憶體操作指令(可簡稱為操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入/編程非揮發性記憶體120當中於某些實體位址之記憶單位(例如資料頁面),其中實體位址對應於邏輯位址。當記憶體控制器110對非揮發性記憶體元件122-1、122-2、…及122-N中之任一非揮發性記憶體元件122-n0(其中「n0」可表示區間[1, N]中之任一整數)進行一抹除(erase)運作時,非揮發性記憶體元件122-n0的多個區塊(block)中之至少一個區塊可被抹除,其中該多個區塊的每一區塊可包含多個頁面(例如資料頁面),且一存取運作(例如讀取或寫入)可對一或多個頁面進行,但本發明不限於此。
依據某些實施例,記憶裝置100可實施為符合SD/MMC、CF、MS、XD或UFS標準的記憶卡,其中記憶裝置100可透過一中介裝置諸如一讀卡機耦接至主裝置50,但本發明不限於此。
第2圖依據本發明一實施例繪示針對第1圖所示之記憶裝置的ECC處理的某些運作以及該記憶裝置中之某些相關元件。先算資訊輪換型ECC電路114E可包含至少一編碼電路(例如一或多個編碼電路)諸如第2圖所示之編碼電路200,且編碼電路200可包含至少一編碼器(例如一或多個編碼器)諸如一低密度同位檢查(low-density parity-check,簡稱LDPC)編碼器,但本發明不限於此。先算資訊輪換型ECC電路114E可於一寫入運作或一讀取運作的期間對複數個訊息進行ECC處理以產生複數個同位碼(parity code),其中該複數個訊息的每一訊息包含一組訊息位元,且該複數個同位碼的每一同位碼包含一組同位位元(parity bit)。以該寫入運作為例,當該複數個訊息的任一訊息被發送至編碼電路200,編碼電路200的訊息輸入及訊息輸出可表示這個訊息,而編碼電路200的同位輸出(parity output)可表示對應於這個訊息的該同位碼。先算資訊輪換型ECC電路114E可產生包含有該複數個訊息以及該複數個同位碼(在第2圖中分別標示為「m」以及「p」以求簡明)的一ECC組塊(chunk)作為一保護單元。例如,該ECC組塊可另包含一或多個其它同位位元諸如一或多列(row)的同位位元以保護該複數個訊息以及該複數個同位碼,其中該一或多列同位位元可附於(attached to)第2圖所示之ECC組塊中之多列的訊息同位碼組合,但本發明不限於此。如第2圖所示,記憶體控制器110可將一或多個ECC組塊寫入或編程至非揮發性記憶體元件122-n中之某一區塊內的某一頁面。由於非揮發性記憶體120的架構可取決於非揮發性記憶體製造商(例如快閃記憶體製造商)的各種設計規則來予以變化,在每一頁面中的ECC組塊的數量可相應地予以變化。
基於第1圖所示之架構,記憶裝置100可為主裝置50儲存資料,且記憶裝置100可因應來自主裝置50的一主裝置指令諸如一寫入指令將該資料寫入非揮發性記憶體120中。於將該資料寫入非揮發性記憶體120的期間,該先算資訊輪換型ECC電路114E(例如該編碼電路200)可進行編碼以產生一同位碼的多個同位位元以保護一訊息(例如該複數個訊息的任一者)的多個訊息位元,其中該訊息可對應於將被寫入非揮發性記憶體120的資料中的一組資料。另外,記憶裝置100可因應來自主裝置50的另一主裝置指令諸如一讀取指令讀取被儲存的資料,並且將自非揮發性記憶體120讀取到的資料提供給主裝置50。於自非揮發性記憶體120讀取被儲存的資料的期間,先算資訊輪換型ECC電路114E(例如編碼電路200)可取得該多個訊息位元的一讀出版本以及該多個同位位元的一讀出版本。例如,先算資訊輪換型ECC電路114E(例如編碼電路200)可對該多個訊息位元的該讀出版本進行編碼以產生該多個同位位元的一非讀出版本,並且可判斷該多個同位位元的該非讀出版本與該同位位元的該讀出版本是否相同,以偵測該多個訊息位元的該讀出版本是否正確,但本發明不限於此。當該多個同位位元的該非讀出版本與該多個同位位元的該讀出版本相同,先算資訊輪換型ECC電路114E(例如編碼電路200)可判斷該多個訊息位元的該讀出版本是正確的。於是,記憶體控制器110可利用該多個訊息位元的該讀出版本作為來自非揮發性記憶體120之被儲存的資料中的該組資料,以供被傳送或回傳給主裝置50。當該多個同位位元的該非讀出版本與該多個同位位元的該讀出版本之間存在任何差異,先算資訊輪換型ECC電路114E(例如編碼電路200)可判斷該多個訊息位元的該讀出版本是不正確的,並且依據該多個同位位元的該讀出版本對該多個訊息位元的該讀出版本進行錯誤更正,以產生該多個訊息位元的一正確版本。於是,記憶體控制器110可利用該多個訊息位元的該正確版本作為來自非揮發性記憶體120之被儲存的資料中的該組資料,以供被傳送或回傳給主裝置50。基於第1圖所示之架構,尤其,第2圖所示之針對ECC處理的運作,儲存在非揮發性記憶體120中的資料的各種錯誤能得以避免。
第3圖依據本發明一實施例繪示一種使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法的一局部儲存輪換(partial storage rotation)控制方案,其中該非揮發性記憶體寫入方法係可應用於(applicable to)第1圖所示之架構,尤其,係可應用於記憶裝置100、記憶體控制器110以及先算資訊輪換型ECC電路(例如編碼電路200)。為便於理解,記憶體控制器110可接收一寫入指令諸如上述寫入指令,並且可自主裝置50接收對應於該寫入指令的該資料(例如上述將被寫入非揮發性記憶體120的資料)。編碼電路200可取得對應於該寫入指令的該資料中之至少一部分資料(例如複數組資料,諸如前面提到的該組資料)作為該ECC組塊的複數個訊息{m},以透過編碼電路200的先算資訊輪換型編碼依據複數個訊息{m}分別產生複數個同位碼{p},以分別保護複數個訊息{m}。例如,複數個訊息{m}各自的內容可取決於自主裝置50接收到的資料的內容予以變化。另外,記憶體控制器110可將包含有複數個訊息{m}以及複數個同位碼{p}的該ECC組塊寫入非揮發性記憶體120。例如,針對複數個訊息{m}中之任一訊息m,該先算資訊輪換型編碼的運作可包含:在訊息m的至少一部分(例如一部分或全部)被發送至編碼電路200後,編碼電路200開始對訊息m進行編碼以依據訊息m以及一同位檢查矩陣H中的一第一部分矩陣(part-one matrix)M的一轉置矩陣(transpose matrix)M T來計算一局部同位碼(partial parity code)y,其中第一部分矩陣M是同位檢查矩陣H的一第一子矩陣;在局部同位碼y的至少一部分(例如一部分或全部)被產生後,編碼電路200從編碼電路200中的一儲存電路載入該同位檢查矩陣H中的一第二部分矩陣(part-two matrix)K的一逆矩陣K -1的一局部矩陣PM(K -1),其中第二部分矩陣K是同位檢查矩陣H的一第二子矩陣,以及第二部分矩陣K的逆矩陣K -1的局部矩陣PM(K -1)係被儲存作為該儲存電路中的先算資訊;編碼電路200將第二部分矩陣K的逆矩陣K -1的局部矩陣PM(K -1)應用至(apply to)局部同位碼y以產生對應於訊息m的一同位碼p的一第一子同位碼(sub-parity code)(例如一子同位碼p 1),以及輸出同位碼p的該第一子同位碼(例如子同位碼p 1)以作為同位碼p的一起始部分;編碼電路200進行針對該先算資訊的輪換控制以載入第二部分矩陣K的逆矩陣K -1的局部矩陣PM(K -1)的至少一輪換後版本(例如一或多輪換後版本);以及將第二部分矩陣K的逆矩陣K -1的局部矩陣PM(K -1)的前述至少一輪換後版本應用至局部同位碼y以產生對應於訊息m的同位碼p的至少一後續子同位碼(例如子同位碼p 2、p 3等),以及輸出同位碼p的前述至少一後續子同位碼(例如子同位碼p 2、p 3等)以作為同位碼p的至少一後續部分。
為了有更好的理解,包含訊息m以及同位碼p的一碼字c、包含第一部分矩陣M以及第二部分矩陣K的同位檢查矩陣H、以及同位檢查矩陣H中的第二部分矩陣K的逆矩陣K -1可繪示如第3圖的左半部所示來舉例說明。碼字c可用具有單一列(row)以及n行(column)的一1×n矩陣來表示,其中n可代表一正整數。在碼字c中,訊息m可用具有單一列以及k行的一1×k矩陣來表示,以及同位碼p可用具有單一列以及w行(例如w = n - k)的一1×w矩陣來表示,其中k以及w可分別代表正整數。此外,同位檢查矩陣H可用具有w列以及n行的一w×n矩陣來表示。在同位檢查矩陣H中,第一部分矩陣M可用具有w列以及k行的一w×k矩陣來表示,以及第二部分矩陣K可用具有w列以及w行的一w×w矩陣來表示。請注意,同位檢查矩陣H可被妥善地設計以加強編碼的效能。舉例來說,在準循環(Quasi-Cyclic,可簡稱QC)LDPC碼被編碼電路200的該LDPC編碼器所採用的情況下,第二部分矩陣K可被配置為具有(z * z)個QC單元的一QC形式(form),且第二部分矩陣K的該(z * z)個QC單元中的任何QC單元可以是一方陣(square matrix),諸如透過以循環方式用一偏移量(shifting amount)SFT對一單位矩陣(identity matrix)I (a x a)的矩陣元素(matrix element)進行選擇性偏移而取得的方陣,其中z可代表大於1的正整數(例如z = 5的例子可被繪示以便有更好的理解),SFT可代表一非負整數(例如SFT ≥ 0),以及單位矩陣I (a x a)的符號的下標中的「a」可代表一正整數(例如(a * z)= w)。第二部分矩陣K的逆矩陣K -1可為具有(z * z)個QC單元的一QC形式,以及逆矩陣K -1的該(z * z)個QC單元中的任何QC單元可包含矩陣元素0和1。尤其是,當這個QC單元的一列(例如第一列)具有矩陣元素0和1所構成的某一序列,則這一列的下一列可具有該序列的偏移版本,諸如藉由以循環方式對該序列進行偏移而產生的一偏移後序列,但本發明不限於此。由於這一列與下一列之間的偏移關係可重複套用於該QC單元中任兩個相鄰列(例如第二列和第三列、第三列和第四列等),在這一列是該QC單元的第一列的情況下,該QC單元可用該序列來表示,因此,儲存該QC單元可藉由儲存該序列來實現。當該序列中的矩陣元素0和1的比例大約相同時,藉由壓縮該序列的位元資訊來進一步降低該QC單元的資料大小的作法可能會不切實際或不可行。
第一部分矩陣M以及第二部分矩陣K的逆矩陣K -1的內容可依據記憶體控制器110的製造商的某些預定規則來決定。舉例來說,第一部分矩陣M的一部分可配置為具有一或多個特徵,諸如相似第二部分矩陣K的一部分的一或多個特徵,但本發明不限於此。雖然第一部分矩陣M以及逆矩陣K -1可被事先預備以供對訊息m進行編碼以產生同位碼p,但儲存第一部分矩陣M以及逆矩陣K -1的全部的內容可能導致高成本。
依據本實施例,第二部分矩陣K可配置為具有一階層式(hierarchical)準循環結構(以下簡稱「階層式QC結構」),其中第二部分矩陣K的階層式QC結構可容許編碼電路200具有逆矩陣K -1的局部儲存(partial storage),而不需要儲存整個逆矩陣K -1。基於上述階層式QC結構,編碼電路200可具有逆矩陣K -1的該局部儲存(例如藉由僅儲存逆矩陣K -1的一部分,而非儲存逆矩陣K -1的全部,以供對訊息m進行編碼來產生同位碼p)並且進行該輪換控制來復原(recover)第二部分矩陣K的逆矩陣K -1,以依據復原自如第3圖右半部所示的輪換控制的逆矩陣K -1來進行編碼(例如對訊息m進行編碼以產生同位碼p的操作)。舉例來說,y = mM T以及p = y(K -1) T。由於逆矩陣K -1的轉置矩陣(K -1) T可透過對逆矩陣K -1進行轉置(transpose)來取得,尤其,藉由將逆矩陣K -1翻過(flip over)逆矩陣K -1的對角線,所以轉置矩陣(K -1) T可具有與逆矩陣K -1相同的矩陣元素,除了在對逆矩陣K -1進行轉置的期間將逆矩陣K -1翻過對角線而導致的翻轉排列(flipped arrangement)。因此,編碼電路200可用該翻轉排列的方式來直接地使用逆矩陣K -1的局部矩陣PM(K -1)(例如局部矩陣PM(K -1)中複數個列,諸如其內的列向量),以作為轉置矩陣(K -1) T中的相對應局部矩陣(例如該相對應局部矩陣中的複數行,諸如其內的行向量),舉例來說,透過依據該翻轉排列選取局部矩陣PM(K -1)中的任何矩陣元素作為該相對應局部矩陣中的一對應的矩陣元素。此外,基於該階層式QC結構,編碼電路200中的針對第二部分矩陣K的逆矩陣K -1的每編碼器儲存率(storage rate per encoder)係小於1。舉例來說,上述每編碼器儲存率可等於用於前述編碼器的編碼電路200中的逆矩陣K -1的儲存率,諸如在編碼電路200中的該儲存電路中用來儲存逆矩陣K -1的局部矩陣PM(K -1)的儲存空間的大小SIZE_PM(K -1)對在一般的編碼電路中用來儲存整個逆矩陣K -1的儲存空間的大小SIZE_K -1的比值,尤其,該比值可等於(1 / z)。為了有更好的理解,z = 5的例子可被繪示如第3圖的下半部所示,但本發明不限於此。在此情況下,儲存率可等於(1 / 5)。
針對訊息m、局部同位碼y以及同位碼p之間的關係的某些實施細節可描述如下: 令cH = 0; ⇒ mM T+ pK T= 0; ⇒ mM T= pK T,其中對於二進位情況兩者是相等; 令y 為局部同位碼,其中y = mM T; ⇒ y = pK T; ⇒ y(K -1) T= pK T(K -1) T= p(K -1K) T= p(I) T= p; 其中第一部分矩陣M以及逆矩陣K -1可為先算(pre-calculated)以供於編碼期間被使用,且第一部分矩陣M的至少一部分(例如一部分或全部)以及逆矩陣K -1的至少一部分(例如一部分或全部)可被事先儲存於編碼電路200中,例如於記憶體控制器110的一生產階段的期間被儲存作為在先算資訊輪換型ECC電路114E中的硬體碼(例如ROM碼),但本發明不限於此。如第3圖所示,在編碼電路200具備逆矩陣K -1的該局部儲存的情況下,編碼電路200可進行輪換控制以復原整個逆矩陣K -1,並且依據復原自該輪換控制的逆矩陣K -1進行編碼。
第4圖是依據本發明一實施例的對應於如第3圖所示的非揮發性記憶體寫入方法的一編碼電路200的示意圖,其中第4圖所示的架構可作為編碼電路200的前述至少一編碼器中的任何編碼器的一例。編碼電路200(尤其是這個編碼器)可包含一桶式移位器210以及一乘法電路諸如耦接至桶式移位器210的QC矩陣乘法電路220,且QC矩陣乘法電路220可包含一循環卷積(circulant convolution)控制單元222、耦接至循環卷積控制單元222的複數個循環卷積電路224(標示為「CC電路」以求簡明)、以及耦接至複數個循環卷積電路224的一組合電路226,其中循環卷積控制單元222可包含一儲存電路222S以及耦接至儲存電路222S的一輪換控制電路222R,且複數個循環卷積電路224可包含z個循環卷積電路諸如CC電路CC0、CC1等。儲存電路222S可用一ROM來實施,輪換控制電路222R可用邏輯電路來實施,以及組合電路226可用一加法器(例如二進位加法器)諸如一互斥或(exclusive-OR,XOR)閘(於第4圖標示為「+」以便有更好的理解)來實施,但本發明不限於此。舉例來說,輪換控制電路222R可包含多個計數器、多個暫存器電路、及/或多個邏輯閘,並且可依據一時脈訊號進行該輪換控制。依據本實施例,桶式移位器210可進行局部同位碼計算,且QC矩陣乘法電路220可進行乘法操作以產生對應於訊息m的同位碼p。舉例來說,循環卷積控制單元222可進行循環卷積控制,複數個循環卷積電路224可進行循環卷積,以及組合電路226可組合並且輸出該第一子同位碼(例如子同位碼p 1)以及前述至少一後續子同位碼(例如子同位碼p 2、p 3等)以分別作為同位碼p的該起始部分以及前述至少一後續部分。此外,儲存電路222S可儲存該先算資訊,且輪換控制電路222R可控制編碼電路200藉助於先算資訊輪換來進行編碼以供在存取非揮發性記憶體120期間提供資料保護。
如第4圖所示,桶式移位器210可在對訊息m進行編碼的期間依據訊息m以及轉置矩陣M T來計算局部同位碼y。舉例來說,桶式移位器210可對訊息m乘以轉置矩陣M T以產生局部同位碼y,其中局部同位碼y可包含子局部同位碼(sub-partial-parity code)y 1、y 2、…、以及y z(例如y = (y 1, y 2, …, y z))。此外,該乘法電路諸如QC矩陣乘法電路220可分別將複數個局部矩陣{PM(K -1)}諸如z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}應用至局部同位碼y以產生同位碼p的子同位碼p 1、p 2、…、以及p z,其中同位碼p可包含子同位碼p 1、p 2、…、以及p z(例如p = (p 1, p 2, …, p z))。舉例來說,複數個局部矩陣{PM(K -1)}可包含被儲存作為該先算資訊的局部矩陣PM(K -1) 1,諸如逆矩陣K -1中的該QC形式中的第一個QC單元行(例如逆矩陣K -1的多行QC單元中的第一行),以及可包含復原自該輪換控制的後續局部矩陣{PM(K -1) 2, …, PM(K -1) z},諸如逆矩陣K -1的該QC形式中的後續的QC單元行(例如逆矩陣K -1的該多行QC單元中的後續行)。為了有更好的理解,z = 5的例子可被繪示如第4圖的下半部所示來說明,但本發明不限於此。在此情況下,複數個循環卷積電路224可包含CC電路CC0、CC1、CC2、CC3以及CC4,局部同位碼y可包含子局部同位碼y 1、y 2、y 3、y 4以及y 5,以及同位碼p可包含子同位碼p 1、p 2、p 3、p 4以及p 5
儲存電路222S可作為第3圖所示的實施例所提到的儲存電路的一例,並且可為編碼電路200提供逆矩陣K -1的該局部儲存(於第4圖中標示為「K -1的局部儲存」以求簡明),舉例來說,藉由僅儲存逆矩陣K -1的該部分(例如:被儲存作為該先算資訊的局部矩陣PM(K -1) 1)的方式來完成,而非儲存整個逆矩陣K -1(例如:上述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z})。在復原自該輪換控制的逆矩陣K -1中(於第4圖中標示「復原自輪換控制的K -1」以求簡明),所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}可於舉例時被繪示成z組垂直條且其每一組垂直條具有z個垂直條(例如z = 5),以指出所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z} 已準備好來依據該翻轉排列被使用作為其轉置矩陣{PM(K -1) 1 T, PM(K -1) 2 T, …, PM(K -1) z T},以及所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}的任何局部矩陣的z個QC單元可於舉例時被繪示為所述z組垂直條中的對應組中的z個垂直條(例如z = 5),其中轉置矩陣{PM(K -1) 1 T, PM(K -1) 2 T, …, PM(K -1) z T}分別等於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣{PM(K -1) T 1, PM(K -1) T 2, …, PM(K -1) T z}。從循環卷積控制單元222到複數個循環卷積電路224的某些資料路徑或資料流可被繪示如第4圖來說明,以指出循環卷積控制單元222(例如輪換控制電路222R)可分別將所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中任何局部矩陣中的z個QC單元載入至循環卷積電路224的z個循環卷積電路{CC0, CC1, …, CC(z-1)},無論這個局部矩陣是被儲存作為該先算資訊的局部矩陣PM(K -1) 1或是復原自該輪換控制的後續局部矩陣{PM(K -1) 2, …, PM(K -1) z}中的一者,但本發明不限於此。
依據本實施例,逆矩陣K -1的局部矩陣PM(K -1)的前述至少一輪換後版本(例如一或多輪換後版本)可包含逆矩陣K -1的局部矩陣PM(K -1)的(z - 1)個輪換後版本。基於上述階層式QC結構,局部矩陣PM(K -1)的這(z - 1)個輪換後版本分別等同於逆矩陣K -1的該QC形式中的剩餘的局部矩陣,諸如剩餘的QC單元行(例如逆矩陣K -1的該多行QC單元中的剩餘的行)。階層式QC結構可被妥善地設計來確保逆矩陣K -1的該局部儲存足以供編碼電路200進行該輪換控制來復原逆矩陣K -1。如此一來,編碼電路200可依據復原自該輪換控制的逆矩陣K -1來進行編碼以產生同位碼p。
針對上述階層式QC結構的某些實施細節可描述如下。依據某些實施例,第二部分矩陣K可被配置成包含多層QC矩陣,且該多層QC矩陣的每一層可為準循環(quasi-cyclic)。舉例來說,該多層QC矩陣中的一層(例如第一層)的一QC矩陣,諸如第二部分矩陣K的全部(就是整個第二部分矩陣K),可包含該多層QC矩陣中的另一層(例如第二層)的一組QC矩陣。由於利用具有該階層式QC結構的第二部分矩陣K的逆矩陣K -1的結果,編碼電路200可藉由進行該輪換控制來復原逆矩陣K -1。舉例來說,第二部分矩陣K可被配置成具有以下階層式QC結構: [[QC AQC BQC CQC DQC E] [QC EQC AQC BQC CQC D] [QC DQC EQC AQC BQC C] [QC CQC DQC EQC AQC B] [QC BQC CQC DQC EQC A]]; 其中QC A、QC B、QC C、QC D以及QC E可代表QC單元,且具有相同符號(例如這個階層式QC結構中的符號諸如「QC A」、「QC B」、「QC C」、「QC D」以及「QC E」中的任一符號)的任何兩個QC單元可具有相同內容,但本發明不限於此。依據某些實施例,該層(例如第一層)以及該另一層(例如第二層)之間的關係可被重複套用於該多層QC矩陣中任何兩個相鄰層。舉例來說,該多層QC矩陣中的該另一層(例如第二層)的一QC矩陣可包含該多層QC矩陣中的又一層(例如第三層)的一組QC矩陣。在另一例子中,第二部分矩陣K可被配置成具有如上所述的該第一層與該第二層之間的關係以及該第二層與該第三層之間的關係,而後續諸如其它層之間的關係可依此類推。由於利用具有該階層式QC結構的第二部分矩陣K的逆矩陣K -1的結果,編碼電路200可藉由進行該輪換控制來復原逆矩陣K -1
第5圖依據本發明一實施例繪示如第3圖所示的非揮發性記憶體寫入方法的一局部矩陣輪換(partial matrix rotation)控制方案,且第6圖繪示如第5圖所示的局部矩陣輪換控制方案的某些實施細節。於局部同位碼y被產生後,在循環卷積控制單元222(例如輪換控制電路222R)的控制下,QC矩陣乘法電路220可將被儲存作為該先算資訊的局部矩陣PM(K -1),諸如局部矩陣PM(K -1) 1,從儲存電路222S載入至複數個循環卷積電路224(在第5圖中標示為「載入局部逆矩陣」以求簡明)。此外,複數個循環卷積電路224可將局部矩陣PM(K -1) 1應用至局部同位碼y以產生該第一子同位碼諸如子同位碼p 1,並且輸出子同位碼p 1來作為同位碼p的起始部分。在將局部矩陣PM(K -1) 1應用至局部同位碼y的期間,複數個循環卷積電路224可依據該翻轉排列來使用局部矩陣PM(K -1) 1作為局部矩陣PM(K -1) 1的轉置矩陣PM(K -1) 1 T,以及依據轉置矩陣PM(K -1) 1 T(其係等同於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣PM(K -1) T 1)對局部同位碼y進行循環卷積操作,以產生同位碼p中的子同位碼p 1
於子同位碼p 1被產生後,在循環卷積控制單元222(例如輪換控制電路222R)的控制下,QC矩陣乘法電路220可進行針對該先算資訊的該輪換控制,尤其可對局部矩陣PM(K -1) 1的該z個QC單元進行輪換以產生所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中的下一個局部矩陣PM(K -1) 2(於第6圖中標示為「輪換局部逆矩陣」以求簡明)。舉例來說,QC矩陣乘法電路220可透過該輪換控制將局部矩陣PM(K -1) 2的z個QC單元分別從循環卷積電路{CC0, CC1, …, CC(z-1)}的各自的前一循環卷積電路{CC(z-1), CC0, …, CC(z-2)}載入至循環卷積電路{CC0, CC1, …, CC(z-1)}。此外,複數個循環卷積電路224可將局部矩陣PM(K -1) 2應用至局部同位碼y以產生下一個子同位碼諸如子同位碼p 2,以及輸出子同位碼p 2作為同位碼p的下一部分。在將局部矩陣PM(K -1) 2應用至局部同位碼y的期間,複數個循環卷積電路224可依據該翻轉排列來使用局部矩陣PM(K -1) 2作為局部矩陣PM(K -1) 2的轉置矩陣PM(K -1) 2 T,以及依據轉置矩陣PM(K -1) 2 T(其係等同於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣PM(K -1) T 2)來對局部同位碼y進行循環卷積操作,以產生同位碼p中的子同位碼p 2
QC矩陣乘法電路220可用類似的方式來進行該輪換控制以產生從局部矩陣{PM(K -1) 2起的這(z - 1)個局部矩陣{PM(K -1) 2, …, PM(K -1) z}中任何局部矩陣PM(K -1) z1,以及可將局部矩陣PM(K -1) z1應用至局部同位碼y以產生和輸出子同位碼p z1,直到完成整個同位碼p的產生,其中z1可代表區間[2, z]中的一整數。於子同位碼p z1-1被產生後,在循環卷積控制單元222(例如輪換控制電路222R)的控制下,QC矩陣乘法電路220可進行針對該先算資訊的該輪換控制,尤其可對局部矩陣PM(K -1) z1-1的z個QC單元進行輪換以產生所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中下一局部矩陣PM(K -1) z1(於第6圖中標示「輪換局部逆矩陣」以求簡明)。舉例來說,QC矩陣乘法電路220可透過該輪換控制將局部矩陣PM(K -1) z1的z個QC單元分別從循環卷積電路{CC0, CC1, …, CC(z-1)}的各自的前一循環卷積電路{CC(z-1), CC0, …, CC(z-2)}載入至循環卷積電路{CC0, CC1, …, CC(z-1)}。此外,複數個循環卷積電路224可將局部矩陣PM(K -1) z1應用至局部同位碼y以產生下一個子同位碼諸如子同位碼p z1,以及輸出子同位碼p z1作為同位碼p的下一部分。在將局部矩陣PM(K -1) z1應用至局部同位碼y的期間,複數個循環卷積電路224可依據該翻轉排列來使用局部矩陣PM(K -1) z1作為局部矩陣PM(K -1) z1的轉置矩陣PM(K -1) z1 T,以及依據轉置矩陣PM(K -1) z1 T(其係等同於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣PM(K -1) T z1)來對局部同位碼y進行循環卷積操作,以產生同位碼p中的子同位碼p z1
第7圖繪示如第5圖所示的局部矩陣輪換控制方案的工作流程。
在步驟S10中,記憶體控制器110可接收該寫入指令並且開始從主裝置50接收對應於該寫入指令的該資料(例如前述將被寫入非揮發性記憶體120的資料)。
在步驟S20中,編碼電路200可取得前述至少一部分資料(例如該複數組資料,諸如前面提到的該組資料)以作為該ECC組塊的複數個訊息{m},以透過編碼電路200的該先算資訊輪換型編碼來依據複數個訊息{m}產生該ECC組塊的複數個同位碼{p}。
在步驟S21中,編碼電路200(例如桶式移位器210)可依據訊息m以及轉置矩陣M T來計算局部同位碼y。
在步驟S22中,編碼電路200(例如QC矩陣乘法電路220)可將被儲存作為該先算資訊的局部逆矩陣諸如局部矩陣PM(K -1)(例如局部矩陣PM(K -1) 1)從儲存電路222S載入至複數個循環卷積電路224。
在步驟S23中,編碼電路200(例如QC矩陣乘法電路220)可依據目前所載入的局部逆矩陣,諸如所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中的一者,來對局部同位碼y進行循環卷積,以計算和輸出同位(parity),諸如同位碼p的子同位碼p 1、p 2等的對應的子同位碼。
在步驟S24中,編碼電路200(例如QC矩陣乘法電路220)可判斷是否已完成整個同位諸如同位碼p的計算。若是(例如已完成整個同位碼p的產生),則進入步驟S26;若否(例如尚未完成整個同位碼p的產生),則進入步驟S25。
在步驟S25中,編碼電路200(例如QC矩陣乘法電路220)可對該局部逆矩陣進行輪換,例如對局部矩陣PM(K -1) z1-1的所述z個QC單元進行輪換以產生所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2,…, PM(K -1) z}中的下一局部矩陣PM(K -1) z1
在步驟S26中,編碼電路200(例如控制電路210)可檢查是否需要處理下一訊息。當需要處理下一訊息時,進入步驟S21;否則,進入步驟S30。
在步驟S30中,記憶體控制器110可將包含複數個訊息{m}以及複數個同位碼{p}的該ECC組塊寫入非揮發性記憶體120。
此外,在對訊息m進行編碼以產生同位碼p的期間,步驟S23和S24可被執行z次,且包含步驟S23、S24以及S25的迴圈可被重複執行直到已完成整個同位諸如同位碼p的計算。為了簡明起見,本實施例中與前述實施例相仿的內容在此不重複贅述。
為了有更好的理解,該非揮發性記憶體寫入方法可用第7圖所示的工作流程來來說明,但本發明不限於此。依據某些實施例,一或多個步驟可於第7圖所示的工作流程中被增加、刪除或修改。
第8圖依據本發明一實施例繪示如第3圖所示的非揮發性記憶體寫入方法的一載入位址輪換控制方案,而第9圖繪示如第8圖所示的載入位址輪換控制方案的某些實施細節。循環卷積控制單元222(例如輪換控制電路222R)可利用複數個循環卷積電路224的複數個載入位置位址(loading location address;可簡稱為載入位址(loading address)以求簡明),以指出分別用以將資訊載入至複數個循環卷積電路224的複數個載入位置(例如該z個循環卷積電路諸如CC電路CC0、CC1等)。舉例來說,上述載入位址可包含分別指向z個循環卷積電路{CC0, CC1, …, CC(z-1)} (例如{CC0, CC1, …, CC4},在z = 5的情況下)的z個載入位址ADD(0)、ADD(1)…、以及ADD(z - 1)。依據本實施例,循環卷積控制單元222(例如輪換控制電路222R)可進行關於載入位址的輪換控制,尤其可依據對應的載入位址將被儲存作為該先算資訊的局部矩陣PM(K -1)的z個QC單元中任何QC單元載入至所述z個循環卷積電路{CC0, CC1, …, CC(z-1)}中任何循環卷積電路。舉例來說,循環卷積控制單元222可在有需要時依據載入位址ADD(0)來將這個QC單元載入至循環卷積電路CC0;循環卷積控制單元222可在有需要時依據載入位址ADD(1)來將這個QC單元載入至循環卷積電路CC1;而後續諸如其餘載入操作可依此類推。如此一來,QC矩陣乘法電路220(例如循環卷積控制單元222)可利用這個QC單元作為所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中另一局部矩陣的某一QC單元。
於局部同位碼y被產生後,在循環卷積控制單元222(例如輪換控制電路222R)的控制下,QC矩陣乘法電路220可依據一組初始位址諸如這組載入位址{ADD(0), ADD(1), …,ADD(z - 1)},將被儲存作為該先算資訊的局部矩陣PM(K -1),諸如局部矩陣PM(K -1) 1,從儲存電路222S載入至複數個循環卷積電路224(於第8圖標示為「以初始位址載入局部逆矩陣」以求簡明)。此外,複數個循環卷積電路224可將局部矩陣PM(K -1) 1應用至局部同位碼y以產生該第一子同位碼諸如子同位碼p 1,以及輸出子同位碼p 1來作為同位碼p的起始部分。在將局部矩陣PM(K -1) 1應用至局部同位碼y的期間,複數個循環卷積電路224可依據該翻轉排列來使用局部矩陣PM(K -1) 1作為局部矩陣PM(K -1) 1的轉置矩陣PM(K -1) 1 T,以及依據轉置矩陣PM(K -1) 1 T(其等同於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣PM(K -1) T 1)來對局部同位碼y進行循環卷積操作,以產生同位碼p中的子同位碼p 1
於子同位碼p 1被產生後,在循環卷積控制單元222(例如輪換控制電路222R)的控制下,QC矩陣乘法電路220可進行針對該先算資訊的該輪換控制,尤其可將對應於局部矩陣PM(K -1) 1(例如其z個QC單元)的載入位址進行輪換以產生所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中的下一局部矩陣PM(K -1) 2,以供透過一組輪換後位址(例如該組初始位址的一輪換後版本)來被載入。舉例來說,QC矩陣乘法電路220可依據該組輪換後位址諸如載入位址{ADD(1), …, ADD(z - 2), ADD(z - 1), ADD(0)},將局部矩陣PM(K -1) 2的所述z個QC單元從儲存電路222S載入至複數個循環卷積電路224中的循環卷積電路{CC0, CC1, …, CC(z-1)}(於第9圖中標示為「以輪換後位址來載入局部逆矩陣」以求簡明)。透過關於上述載入位址的輪換控制,QC矩陣乘法電路220可將局部矩陣PM(K -1) 2的所述z個QC單元從儲存電路222S載入至循環卷積電路{CC0, CC1, …, CC(z-1)},猶如在第6圖所示實施例中所提到將局部矩陣PM(K -1) 2的所述z個QC單元分別從循環卷積電路{CC0, CC1, …, CC(z-1)}的各自的前一循環卷積電路{CC(z-1), CC0, …, CC(z-2)}載入至循環卷積電路{CC0, CC1, …, CC(z-1)}。此外,複數個循環卷積電路224可將局部矩陣PM(K -1) 2應用至局部同位碼y以產生下一子同位碼諸如子同位碼p 2,以及輸出子同位碼p 2作為同位碼p的下一部分。在將局部矩陣PM(K -1) 2應用至局部同位碼y的期間,複數個循環卷積電路224可依據該翻轉排列來使用局部矩陣PM(K -1) 2作為局部矩陣PM(K -1) 2的轉置矩陣PM(K -1) 2 T,以及依據轉置矩陣PM(K -1) 2 T(其係等同於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣PM(K -1) T 2)來對局部同位碼y進行循環卷積操作,以產生同位碼p中的子同位碼p 2
QC矩陣乘法電路220可用類似方式來進行該輪換控制以產生所述(z - 1)個局部矩陣{PM(K -1) 2, …, PM(K -1) z}中的任何局部矩陣PM(K -1) z1,以及可將局部矩陣PM(K -1) z1應用至局部同位碼y以產生和輸出子同位碼p z1,直到完成產生整個同位碼p的產生,其中z1可代表區間[2, z]中的一整數。於子同位碼p z1-1被產生後,在循環卷積控制單元222(例如輪換控制電路222R)的控制下,QC矩陣乘法電路220可進行針對該先算資訊的該輪換控制,尤其可將對應於局部矩陣PM(K -1) z1-1(例如其z個QC單元)的載入位址進行輪換以產生所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中的下一局部矩陣PM(K -1) z1,以供透過一組輪換後位址(例如該組初始位址的一輪換後版本)來被載入。舉例來說,QC矩陣乘法電路220可依據該組輪換後位址,諸如彼此輪換的z組載入位址{ADD(0), ADD(1), …, ADD(z - 1)}、{ADD(1), …, ADD(z - 1), ADD(0)}、…、以及{ADD(z - 1), ADD(0), …, ADD(z - 2)}中的第z1組載入位址,將局部矩陣PM(K -1) z1的所述z個QC單元從儲存電路222S載入至複數個循環卷積電路224中的循環卷積電路{CC0, CC1, …, CC(z-1)}(於第9圖中標示為「以輪換後位址載入局部逆矩陣」以求簡明)。透過關於上述載入位址的輪換控制,QC矩陣乘法電路220可將局部矩陣PM(K -1) z1的所述z個QC單元從儲存電路222S載入至循環卷積電路{CC0, CC1, …, CC(z-1)},猶如在第6圖所示實施例中所提到將局部矩陣PM(K -1) z1的所述z個QC單元分別從循環卷積電路{CC0, CC1, …, CC(z-1)}的各自的前一循環卷積電路{CC(z-1), CC0, …, CC(z-2)}載入至循環卷積電路{CC0, CC1, …, CC(z-1)}。此外,複數個循環卷積電路224可將局部矩陣PM(K -1) z1應用至局部同位碼y以產生下一子同位碼諸如子同位碼p z1,以及輸出子同位碼p z1作為同位碼p的下一部分。在將局部矩陣PM(K -1) z1應用至局部同位碼y的期間,複數個循環卷積電路224可依據該翻轉排列來使用局部矩陣PM(K -1) z1作為局部矩陣PM(K -1) z1的轉置矩陣PM(K -1) z1 T,以及依據轉置矩陣PM(K -1) z1 T(其等同於局部矩陣PM(K -1)的轉置矩陣PM(K -1) T的對應的子矩陣PM(K -1) T z1)來對局部同位碼y進行循環卷積操作,以產生同位碼p中的子同位碼p z1
第10圖繪示如第8圖所示的載入位址輪換控制方案的工作流程,其中第10圖所示的工作流程可透過修改第7圖所示的工作流程來繪示。舉例來說,第10圖所示的步驟S10、S21、S23、S24、S26、以及S30分別等同於第7圖所示的同編號步驟,而第10圖所示的步驟S22’以及S25’則分別取代第7圖所示的步驟S22以及S25。因應某些改變諸如分別用步驟S22’與S25’取代步驟S22與S25,步驟S20於本實施例中可被重新命名為步驟S20’。
在步驟S22’中,編碼電路200(例如QC矩陣乘法電路220)可依據最新組載入位址(例如上述z組載入位址{ADD(0), ADD(1), …, ADD(z - 1)}、{ADD(1), …, ADD(z - 1), ADD(0)}、…、以及{ADD(z - 1), ADD(0), …, ADD(z - 2)}中的第z0組載入位址),將局部逆矩陣諸如局部矩陣PM(K -1) z0(例如所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z})中的第z0個局部矩陣)從儲存電路222S載入至複數個循環卷積電路224,其中z0可代表區間[1, z]中的一整數。
在步驟S25’中,編碼電路200(例如QC矩陣乘法電路220)可對局部逆矩陣的載入位址,諸如對應於局部矩陣PM(K -1) z0的多個載入位址,進行輪換,以將最新組載入位址設定成對應於透過該輪換控制所復原的下一局部矩陣PM(K -1) z0+1
在所述z組載入位址{ADD(0), ADD(1), …, ADD(z - 1)}、{ADD(1), …, ADD(z - 1), ADD(0)}、…、以及{ADD(z - 1), ADD(0), …, ADD(z - 2)}中,第一組載入位址{ADD(0), ADD(1), …, ADD(z - 1)}可作為該組初始位址的一例,而其它組載入位址{ADD(1), …, ADD(z - 1), ADD(0)}、…、以及{ADD(z - 1), ADD(0), …, ADD(z - 2)}可作為該組輪換後位址的例子。在編碼訊息m以產生同位碼p的期間,於第一次執行步驟S22’(例如z0 = 1)時,最新組載入位址可代表該組初始位址諸如第一組載入位址{ADD(0), ADD(1), …, ADD(z - 1)},且局部矩陣PM(K -1) z0可代表被儲存作為該先算資訊的局部矩陣PM(K -1),諸如局部矩陣PM(K -1) 1。此外,在編碼訊息m以產生同位碼p的期間,於另一次執行步驟S22’(例如z0 > 1)時,最新組載入位址可代表第(z0 - 1)組輪換後位址,諸如所述其它組載入位址{ADD(1), …, ADD(z - 1), ADD(0)}、…、以及{ADD(z - 1), ADD(0), …, ADD(z - 2)}中的第(z0 - 1)組載入位址,以及局部矩陣PM(K -1) z0可代表所述(z - 1)個局部矩陣{PM(K -1) 2, …, PM(K -1) z}的第(z0 - 1)個局部矩陣。
依據本實施例,步驟S25’的操作可包含如第9圖所示實施例所描述的關於載入位址的輪換控制,諸如輪換對應於局部矩陣PM(K -1) z1-1的載入位址以產生所述z個局部矩陣{PM(K -1) 1, PM(K -1) 2, …, PM(K -1) z}中的下一局部矩陣PM(K -1) z1的操作,其中前面提到的局部矩陣PM(K -1) z1-1以及下一局部矩陣PM(K -1) z1可分別作為步驟S25’中所提到的局部矩陣PM(K -1) z0以及下一局部矩陣PM(K -1) z0+1的例子。另外,步驟S22’的操作可包含如第9圖所示實施例所描述的載入控制,諸如依據該組輪換後位址將局部矩陣PM(K -1) z1的所述z個QC單元從儲存電路222S載入至複數個循環卷積電路224中的循環卷積電路{CC0, CC1, …, CC(z-1)}的操作,其中上述局部矩陣PM(K -1) z1(例如具有正被載入的z個QC單元的局部矩陣PM(K -1) z1)可作為步驟S22’中所提到的局部矩陣PM(K -1) z0的例子,例如z0 > 1的情況。此外,在編碼訊息m以產生同位碼p的期間,步驟S22’、S23以及S24可被執行z次,且包含步驟S22’、S23、S24以及S25’的迴圈可被重複地執行直到整個同位諸如同位碼p的計算皆已完成。為了簡明起見,本實施例中與前述實施例相仿的內容在此不重複贅述。
為了有更好的理解,該非揮發性記憶體寫入方法可用第10圖所示的工作流程來說明,但本發明不限於此。依據某些實施例,一或多個步驟可於第10圖所示的工作流程中被增加、刪除或修改。
依據某些實施例,編碼電路200的前述至少一編碼器可包含一組編碼器,且第4圖所示架構可作為該組編碼器中任何編碼器的一例。舉例來說,該組編碼器的每一編碼器可儲存相同的第一部分矩陣M以及相同的逆矩陣K -1。假設該組編碼器中的編碼器數量係等於b(其中b可代表大於2的正整數)。因此,針對逆矩陣K -1的儲存空間的大小可被大幅縮減,舉例來說,可減少某一減少量(decrement),諸如比率((z - 1) / z)以及用來儲存整個逆矩陣K -1的儲存空間的大小SIZE_K -1的乘積(((z - 1) / z) * SIZE_K -1)的倍數(b * ((z - 1) / z) * SIZE_K -1),且相關成本可對應地減少。
依據某些實施例,編碼電路200的上述至少一編碼器可包含多組編碼器,且第4圖所示架構可作為該多組編碼器中任一組編碼器中的任何編碼器的一例,其中該多組編碼器可對應於針對不同的ECC處理需求的複數個同位檢查矩陣{H}的各自的逆矩陣{K -1}。舉例來說,這一組編碼器的每一編碼器可儲存相同的第一部分矩陣M以及相同的逆矩陣K -1。假設該複數個同位檢查矩陣{H}的各自的逆矩陣{K -1}包含J個逆矩陣{K -1 j}(舉例來說,J可代表大於1的正整數,以及j可代表區間 [1, J]中的一整數),以及對應於逆矩陣K -1 j的某一組編碼器中的編碼器的數量係等於b j(舉例來說,b j可為大於1的正整數)。因此,針對逆矩陣K -1的儲存空間的大小可被大幅減少,舉例來說,可減少某一更大的減少量,諸如比率((z - 1) / z)以及用來儲存完整的J個逆矩陣{K -1 j}的各自的儲存空間的各自的大小{SIZE_K -1 j}的各自的乘積{(((z - 1) / z) * SIZE_K -1 j)}的各自的倍數{(b j* ((z - 1) / z) * SIZE_K -1 j)}的總和Σ j=1,…,J{(b j* ((z - 1) / z) * SIZE_K -1 j)},且相關成本可對應地減少。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置 50:主裝置 52:處理器 54:電源供應電路 100:記憶裝置 110:記憶體控制器 112:微處理器 112C:程式碼 112M:唯讀記憶體 114:控制邏輯電路 114E:先算資訊輪換型編碼ECC電路 116:隨機存取記憶體 118:傳輸介面電路 120:非揮發性記憶體 122-1,122-2~122-N:非揮發性記憶體元件 200:編碼電路 m:訊息 {p}:同位碼 y:局部同位碼 H:同位檢查矩陣 M:第一部分矩陣 M T:,(K -1) T轉置矩陣 K:第二部分矩陣 K -1:逆矩陣 PM(K -1):局部矩陣 p 1~p z:子同位碼 y 1~y z:子局部同位碼 c:碼字 210:桶式移位器 220:QC矩陣乘法電路 222:循環卷積控制單元 224:循環卷積電路 226:組合電路 222S:儲存電路 222R:輪換控制電路 CC0,CC1:CC電路 S10,S20,S21,S22,S22',S23,S24,S25,S25',S26,S30:步驟
第1圖為依據本發明一實施例之一電子系統的示意圖,其中該電子系統可包含一主裝置以及一記憶裝置。 第2圖依據本發明一實施例繪示針對第1圖所示之記憶裝置的錯誤更正碼處理的某些運作以及該記憶裝置中之某些相關元件。 第3圖依據本發明一實施例繪示一種使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法的一局部儲存輪換(partial storage rotation)控制方案。 第4圖是依據本發明一實施例的對應於如第3圖所示的非揮發性記憶體寫入方法的一編碼電路的示意圖。 第5圖依據本發明一實施例繪示如第3圖所示的非揮發性記憶體寫入方法的一局部矩陣輪換(partial matrix rotation)控制方案。 第6圖繪示如第5圖所示的局部矩陣輪換控制方案的某些實施細節。 第7圖繪示如第5圖所示的局部矩陣輪換控制方案的工作流程。 第8圖依據本發明一實施例繪示如第3圖所示的非揮發性記憶體寫入方法的一載入位址輪換控制方案。 第9圖繪示如第8圖所示的載入位址輪換控制方案的某些實施細節。 第10圖繪示如第8圖所示的載入位址輪換控制方案的工作流程。
S10,S20,S21,S22,S23,S24,S25,S26,S30:步驟

Claims (20)

  1. 一種使用藉助於先算資訊輪換(pre-calculation information rotation)的資料保護的非揮發性(non-volatile,NV)記憶體寫入方法,該非揮發性記憶體寫入方法是可應用於一記憶裝置的一記憶體控制器,該記憶裝置包含該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體元件,該非揮發性記憶體寫入方法包含: 利用該記憶體控制器來自一主裝置接收一寫入指令以及對應於該寫入指令的資料; 利用該記憶體控制器的一編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼(Error Correction Code, ECC)組塊(chunk)的複數個訊息(message),以透過先算資訊輪換型編碼依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼(parity code),其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息,以及針對該複數個訊息中之任一訊息,該先算資訊輪換型編碼包含: 在該訊息的至少一部分被發送至該編碼電路後,開始對該訊息進行編碼以依據該訊息以及一同位檢查矩陣(parity check matrix)來計算一局部同位碼(partial parity code); 在該局部同位碼的至少一部分被產生後,從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一子矩陣的一逆矩陣的一局部矩陣(partial matrix),其中該局部矩陣係被儲存作為該儲存電路中的先算資訊; 依據該逆矩陣的該局部矩陣與該局部同位碼以產生對應於該訊息的一同位碼的一第一子同位碼(sub-parity code); 進行針對該先算資訊的輪換控制以載入該子矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本;以及 依據該子矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本與該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼;以及 利用該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
  2. 如申請專利範圍第1項所述之非揮發性記憶體寫入方法,其中該編碼電路具備該第子矩陣的該逆矩陣的局部儲存(partial storage)。
  3. 如申請專利範圍第2項所述之非揮發性記憶體寫入方法,另包含: 利用該記憶體控制器進行該輪換控制來復原該子矩陣的該逆矩陣,以依據復原自該輪換控制的該逆矩陣進行編碼,其中該編碼包含對該訊息進行編碼以產生該同位碼。
  4. 如申請專利範圍第1項所述之非揮發性記憶體寫入方法,另包含: 利用該記憶體控制器僅儲存該子矩陣的該逆矩陣的一部分,而非儲存該子矩陣的該逆矩陣的全部,以供對該訊息進行編碼以產生該同位碼。
  5. 如申請專利範圍第4項所述之非揮發性記憶體寫入方法,另包含: 利用該記憶體控制器進行該輪換控制來復原該子矩陣的該逆矩陣,以依據復原自該輪換控制的該逆矩陣進行編碼,其中該編碼包含對該訊息進行編碼以產生該同位碼。
  6. 如申請專利範圍第1項所述之非揮發性記憶體寫入方法,其中該子矩陣的一階層式(hierarchical)準循環(Quasi-Cyclic, QC)結構容許該編碼電路具有該子矩陣的該逆矩陣的局部儲存(partial storage),而不需要儲存該子矩陣的該逆矩陣的全部。
  7. 如申請專利範圍第6項所述之非揮發性記憶體寫入方法,其中基於該階層式準循環結構,該子的該逆矩陣的該局部矩陣的該至少一輪換後版本係等同於該子矩陣的該逆矩陣的一準循環形式(QC form)中的至少一剩餘的局部矩陣。
  8. 如申請專利範圍第6項所述之非揮發性記憶體寫入方法,其中針對該階層式準循環結構,該子矩陣係被配置以包含多層準循環矩陣,且該多層準循環矩陣的每一層是準循環。
  9. 如申請專利範圍第6項所述之非揮發性記憶體寫入方法,其中基於該階層式準循環結構,該編碼電路中的針對該子矩陣的該逆矩陣的每編碼器儲存率(storage rate per encoder)係小於1;以及該每編碼器儲存率係等於在該編碼電路中的該儲存電路中用來儲存該子矩陣的該逆矩陣的該局部矩陣的儲存空間的大小對用來儲存整個該逆矩陣的儲存空間的大小之比值。
  10. 如申請專利範圍第9項所述之非揮發性記憶體寫入方法,其中該同位碼包含數量為z的多個子同位碼,該多個子同位碼包含該第一子同位碼以及該至少一後續子同位碼,而z代表大於1的正整數,以及該至少一後續子同位碼包含(z - 1)個子同位碼;以及該每編碼器儲存率係等於(1 / z)。
  11. 如申請專利範圍第1項所述之非揮發性記憶體寫入方法,其中該同位碼包含數量為z的多個子同位碼,該多個子同位碼包含該第一子同位碼以及該至少一後續子同位碼,而z代表大於1的正整數,以及該至少一後續子同位碼包含(z - 1)個子同位碼;以及該編碼電路中的針對該子矩陣的該逆矩陣的每編碼器儲存率(storage rate per encoder)係等於(1 / z)。
  12. 如申請專利範圍第11項所述之非揮發性記憶體寫入方法,其中該子矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本係等同於該子矩陣的該逆矩陣的至少一剩餘的局部矩陣;以及該子矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本包含該子矩陣的該逆矩陣的該局部矩陣的(z - 1)個輪換後版本,以及該子矩陣的該逆矩陣的該至少一剩餘的局部矩陣包含該子矩陣的該逆矩陣的(z - 1)個剩餘的局部矩陣。
  13. 如申請專利範圍第12項所述之非揮發性記憶體寫入方法,另包含: 進行該輪換控制以產生該子矩陣的該逆矩陣的該局部矩陣的該(z - 1)個輪換後版本,以供被用來作為該子矩陣的該逆矩陣的該(z - 1)個剩餘的局部矩陣,以復原該子矩陣的該逆矩陣。
  14. 一種記憶裝置,包含: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及 一記憶體控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置的運作,其中該記憶體控制器包含: 一處理電路,用來依據來自一主裝置的複數個主裝置指令來控制該記憶體控制器,以容許該主裝置透過該記憶體控制器存取該非揮發性記憶體;以及 一控制邏輯電路,耦接至該處理電路,用來控制該非揮發性記憶體,其中該控制邏輯電路包含: 一編碼電路,用來藉助於先算資訊輪換(pre-calculation information rotation)進行編碼以供於存取該非揮發性記憶體的期間的資料保護; 其中: 該記憶體控制器自該主裝置接收一寫入指令以及對應於該寫入指令的資料; 該編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼(Error Correction Code, ECC)組塊(chunk)的複數個訊息,以透過先算資訊輪換型編碼依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼(parity code),其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息,以及針對該複數個訊息中之任一訊息,該先算資訊輪換型編碼的運作包含: 在該訊息的至少一部分被發送至該編碼電路後,開始對該訊息進行編碼以依據該訊息以及一同位檢查矩陣(parity check matrix)來計算一局部同位碼(partial parity code); 在該局部同位碼的至少一部分被產生後,從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一子矩陣的一逆矩陣的一局部矩陣(partial matrix),其中該局部矩陣係被儲存作為該儲存電路中的先算資訊; 依據該子矩陣的該逆矩陣的該局部矩陣與該局部同位碼以產生對應於該訊息的一同位碼的一第一子同位碼(sub-parity code); 進行針對該先算資訊的輪換控制以載入該子矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本;以及 依據該子矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本與該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼;以及 該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
  15. 如申請專利範圍第14項所述之記憶裝置,其中該編碼電路具備該子矩陣的該逆矩陣的局部儲存(partial storage)。
  16. 如申請專利範圍第15項所述之記憶裝置,其中該記憶體控制器進行該輪換控制來復原該子矩陣的該逆矩陣,以依據復原自該輪換控制的該逆矩陣來進行編碼,其中該編碼包含對該訊息進行編碼以產生該同位碼。
  17. 如申請專利範圍第14項所述之記憶裝置,其中該記憶體控制器僅儲存該子矩陣的該逆矩陣的一部分,而非儲存該子矩陣的該逆矩陣的全部,以供對該訊息進行編碼來產生該同位碼。
  18. 如申請專利範圍第17項所述之記憶裝置,其中該記憶體控制器進行該輪換控制來復原該子矩陣的該逆矩陣,以依據復原自該輪換控制的該逆矩陣來進行編碼,其中該編碼包含對該訊息進行編碼以產生該同位碼。
  19. 一種記憶裝置的記憶體控制器,該記憶裝置包含該記憶體控制器以及一非揮發性(non-volatile,NV)記憶體,該非揮發性記憶體包含至少一非揮發性記憶體元件,該記憶體控制器包含: 一處理電路,用來依據來自一主裝置的複數個主裝置指令來控制該記憶體控制器,以容許該主裝置透過該記憶體控制器存取該非揮發性記憶體;以及 一控制邏輯電路,耦接至該處理電路,用來控制該非揮發性記憶體,其中該控制邏輯電路包含: 一編碼電路,用來藉助於先算資訊輪換(pre-calculation information rotation)進行編碼以供於存取該非揮發性記憶體的期間的資料保護; 其中: 該記憶體控制器自該主裝置接收一寫入指令以及對應於該寫入指令的資料; 該編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼(Error Correction Code, ECC)組塊(chunk)的複數個訊息,以透過先算資訊輪換型編碼依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼(parity code),其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息,以及針對該複數個訊息中之任一訊息,該先算資訊輪換型編碼的運作包含: 在該訊息的至少一部分被發送至該編碼電路後,開始對該訊息進行編碼以依據該訊息以及一同位檢查矩陣(parity check matrix)來計算一局部同位碼(partial parity code); 在該局部同位碼的至少一部分被產生後,從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一子矩陣的一逆矩陣的一局部矩陣(partial matrix),其中該局部矩陣係被儲存作為該儲存電路中的先算資訊; 依據該逆矩陣的該局部矩陣與該局部同位碼以產生對應於該訊息的一同位碼的一第一子同位碼(sub-parity code); 進行針對該先算資訊的輪換控制以載入該子矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本;以及 依據該子矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本與該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼;以及 該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
  20. 一種記憶裝置的記憶體控制器的編碼電路,該記憶裝置包含該記憶體控制器以及一非揮發性(non-volatile,NV)記憶體,該記憶體控制器包含該編碼電路,該非揮發性記憶體包含至少一非揮發性記憶體元件,該編碼電路包含: 一桶式移位器(barrel shifter),用以進行局部同位碼計算(partial parity code calculation),其中該記憶體控制器從一主裝置接收一寫入指令以及對應於該寫入指令的資料,以及該編碼電路取得對應於該寫入指令的該資料中之至少一部分資料以作為一錯誤更正碼(Error Correction Code, ECC)組塊(chunk)的複數個訊息,以透過先算資訊輪換型編碼(pre-calculated information rotation type encoding)依據該複數個訊息產生該錯誤更正碼組塊的複數個同位碼(parity code),其中該複數個同位碼分別對應於該複數個訊息以分別保護該複數個訊息,以及在該複數個訊息中之任一訊息的至少一部分被發送至該編碼電路後,該桶式移位器依據該訊息以及一同位檢查矩陣(parity check matrix)來計算一局部同位碼(partial parity code);以及 一乘法電路(multiplication circuit),耦接至該桶式移位器,用以進行乘法操作以產生對應於該訊息的一同位碼(parity code),其中該乘法電路包含: 一循環卷積(circulant convolution)控制單元,包含: 一儲存電路,用以儲存先算資訊(pre-calculated information);以及 一輪換控制電路,耦接至該儲存電路,該輪換控制電路用以控制該編碼電路藉助於先算資訊輪換來進行編碼以供於存取該非揮發性記憶體的期間的資料保護; 複數個循環卷積電路,耦接至該循環卷積控制單元,用以進行循環卷積操作,其中在該局部同位碼的至少一部分被產生後,該輪換控制電路從該編碼電路中的一儲存電路載入該同位檢查矩陣中的一子矩陣的一逆矩陣的一局部矩陣(partial matrix),以容許該複數個循環卷積電路依據該逆矩陣的該局部矩陣與該局部同位碼以產生對應於該訊息的該同位碼的一第一子同位碼(sub-parity code),以及進行針對該先算資訊的輪換控制以載入該子矩陣的該逆矩陣的該局部矩陣的至少一輪換後版本,以容許該複數個循環卷積電路依據該子矩陣的該逆矩陣的該局部矩陣的該至少一輪換後版本與該局部同位碼以產生對應於該訊息的該同位碼的至少一後續子同位碼,其中該子矩陣的該逆矩陣的該局部矩陣係被儲存作為該儲存電路中的該先算資訊;以及 一組合電路,耦接至該複數個循環卷積電路,該組合電路用以輸出該同位碼的該第一子同位碼以作為該同位碼的一起始部分,以及輸出該同位碼的該至少一後續子同位碼以作為該同位碼的至少一後續部分; 其中該記憶體控制器將包含該複數個訊息以及該複數個同位碼的該錯誤更正碼組塊寫入該非揮發性記憶體。
TW110129882A 2019-08-14 2020-05-14 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 TWI751096B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/541,103 US10838811B1 (en) 2019-08-14 2019-08-14 Non-volatile memory write method using data protection with aid of pre-calculation information rotation, and associated apparatus
US16/541,103 2019-08-14

Publications (2)

Publication Number Publication Date
TW202147104A TW202147104A (zh) 2021-12-16
TWI751096B true TWI751096B (zh) 2021-12-21

Family

ID=73264196

Family Applications (2)

Application Number Title Priority Date Filing Date
TW109115956A TWI740499B (zh) 2019-08-14 2020-05-14 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備
TW110129882A TWI751096B (zh) 2019-08-14 2020-05-14 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW109115956A TWI740499B (zh) 2019-08-14 2020-05-14 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備

Country Status (3)

Country Link
US (1) US10838811B1 (zh)
CN (1) CN112397127B (zh)
TW (2) TWI740499B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866861B1 (en) * 2019-08-29 2020-12-15 Micron Technology, Inc. Deferred error-correction parity calculations
TWI798017B (zh) * 2022-03-09 2023-04-01 群聯電子股份有限公司 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090287956A1 (en) * 2008-05-16 2009-11-19 David Flynn Apparatus, system, and method for detecting and replacing failed data storage
US20100293440A1 (en) * 2009-05-18 2010-11-18 Jonathan Thatcher Apparatus, system, and method to increase data integrity in a redundant storage system
US20100293439A1 (en) * 2009-05-18 2010-11-18 David Flynn Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US9122625B1 (en) * 2012-12-18 2015-09-01 Western Digital Technologies, Inc. Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems
TW201926043A (zh) * 2017-11-30 2019-07-01 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100399462C (zh) * 2002-08-13 2008-07-02 联发科技股份有限公司 具有错误处理的光盘数据读取方法
JP2010199811A (ja) * 2009-02-24 2010-09-09 Fanuc Ltd 制御装置のメモリシステム
TWI540844B (zh) * 2013-03-27 2016-07-01 國立清華大學 雙重準循環低密度同位校驗碼
TWI530959B (zh) * 2014-06-17 2016-04-21 慧榮科技股份有限公司 用來控制一記憶裝置之方法以及記憶裝置與控制器
US10514982B2 (en) * 2014-08-21 2019-12-24 Datrium, Inc. Alternate storage arrangement in a distributed data storage system with key-based addressing
US9417955B2 (en) * 2014-08-21 2016-08-16 Datrium, Inc. Data reconstruction in distributed data storage system with key-based addressing
US9639268B2 (en) * 2014-08-21 2017-05-02 Datrium, Inc. Distributed data storage system with key-based addressing
US20160188327A1 (en) * 2014-12-24 2016-06-30 Elmoustapha Ould-Ahmed-Vall Apparatus and method for fused multiply-multiply instructions
US10133625B2 (en) * 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
JP6606039B2 (ja) * 2016-09-09 2019-11-13 東芝メモリ株式会社 メモリシステムおよび制御方法
TWI602188B (zh) * 2017-01-03 2017-10-11 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090287956A1 (en) * 2008-05-16 2009-11-19 David Flynn Apparatus, system, and method for detecting and replacing failed data storage
US20100293440A1 (en) * 2009-05-18 2010-11-18 Jonathan Thatcher Apparatus, system, and method to increase data integrity in a redundant storage system
US20100293439A1 (en) * 2009-05-18 2010-11-18 David Flynn Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US9122625B1 (en) * 2012-12-18 2015-09-01 Western Digital Technologies, Inc. Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems
TW201926043A (zh) * 2017-11-30 2019-07-01 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器

Also Published As

Publication number Publication date
TWI740499B (zh) 2021-09-21
TW202107284A (zh) 2021-02-16
CN112397127A (zh) 2021-02-23
CN112397127B (zh) 2023-12-22
US10838811B1 (en) 2020-11-17
TW202147104A (zh) 2021-12-16

Similar Documents

Publication Publication Date Title
US10628256B2 (en) Updating reliability data
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
TWI530959B (zh) 用來控制一記憶裝置之方法以及記憶裝置與控制器
TWI768511B (zh) 使用藉助於具有局部順序資訊之奇偶校驗矩陣之資料保護的資料存取方法以及設備
TWI602188B (zh) 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TWI751096B (zh) 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備
US11095310B2 (en) Error correction apparatus, operation method thereof and memory system using the same
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
CN111869111B (zh) 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字
US10484014B2 (en) Controller, semiconductor memory system and operating method thereof
EP3417457B1 (en) Error rate reduction
TWI651730B (zh) 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
US10396825B2 (en) Memory controller, semiconductor memory system and operating method thereof
US11169878B2 (en) Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus
US10141072B2 (en) Efficient encoder based on modified RU algorithm
TWI829252B (zh) 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置
US20230421175A1 (en) Method and apparatus for decoding low-density parity-check (ldpc) code
CN117472643A (zh) 低密度奇偶校检码的译码方法、存储介质和装置