TWI530959B - 用來控制一記憶裝置之方法以及記憶裝置與控制器 - Google Patents
用來控制一記憶裝置之方法以及記憶裝置與控制器 Download PDFInfo
- Publication number
- TWI530959B TWI530959B TW103120894A TW103120894A TWI530959B TW I530959 B TWI530959 B TW I530959B TW 103120894 A TW103120894 A TW 103120894A TW 103120894 A TW103120894 A TW 103120894A TW I530959 B TWI530959 B TW I530959B
- Authority
- TW
- Taiwan
- Prior art keywords
- density parity
- parity check
- matrix
- low
- matrices
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Description
本發明係有關於快閃記憶體(Flash Memory)裝置的錯誤更正能力之控制,尤指一種用來控制一記憶裝置之方法以及其相關之記憶裝置與控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(Memory Cell;亦可稱為「記憶單元」)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶細胞的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄多個位元之資訊(例如:00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍以上,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體
很快地成為市面上之可攜式記憶裝置競相採用的主流。依據相關技術,由於某些類型的多階細胞快閃記憶體的運作複雜,故傳統的記憶體控制器需要配置強大的錯誤更正機制,以確保使用者資料的正確性。然而,某些問題就產生了。例如:因應不同的錯誤更正能力需求,不同產品的記憶體控制器需要不同的設計,使得相關成本(例如:時間成本與材料成本)對應地增加。又例如:相較於市場上既有的產品,後續推出的產品中之記憶體控制器需要變更設計,使得相關成本(例如:時間成本與材料成本)對應地增加。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以在不產生副作用(例如:儲存資料錯誤)的狀況下提升整體效能。
因此,本發明之一目的在於提供一種用來控制一記憶裝置之方法以及其相關之記憶裝置與控制器,以解決上述問題。
本發明之另一目的在於提供一種用來控制一記憶裝置之方法以及其相關之記憶裝置與控制器,以於不同的產品共用相同的控制器晶片。
本發明之另一目的在於提供一種用來控制一記憶裝置之方法以及其相關之記憶裝置與控制器,以在不更換控制器晶片的狀況下提昇記憶裝置之運作效能。
本發明之至少一較佳實施例中提供一種用來控制一記憶裝置之方法,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該方法係應用於該記憶裝置中之一控制器,該控制器係用來控制該至少一非揮發性記憶體元件,該方法包含有下列步驟:從該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊讀取一第二組錯誤更正組態參數(Error Correction Configuring Parameter)之編碼資料,並利用該控制器中之一低密度奇偶校驗(Low-Density Parity-Check,LDPC)引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存一第一組錯誤更正組態參
數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼;以及將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器於該至少一非揮發性記憶體元件存取資料之用。尤其是,該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣(Submatrix),而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣(Square Matrix)。另外,該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣。此外,該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小。再者,該預定集合包含一零矩陣(Zero Matrix)、一單位矩陣(Identity Matrix)、以及該單位矩陣之至少一循環位移(Cyclic-Shifted)矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,包含有:至少一非揮發性記憶體元件,每一非揮發性記憶體元件包含複數個區塊;以及一控制器,用來控制該至少一非揮發性記憶體元件,該控制器包含一處理單元,以依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置。另外,該控制器從該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊讀取一第二組錯誤更正組態參數之編碼資料,並利用該控制器中之一低密度奇偶校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存一第一
組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼。並且,該控制器將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器於該至少一非揮發性記憶體元件存取資料之用。尤其是,該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣。另外,該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣。此外,該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小。再者,該預定集合包含一零矩陣、一單位矩陣、以及該單位矩陣之至少一循環位移矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該記憶裝置包含至少一非揮發性記憶體元件,每一非揮發性記憶體元件包含複數個區塊,該控制器包含有:一低密度奇偶校驗引擎,用來為該控制器進行錯誤更正,其中該低密度奇偶校驗引擎包含硬體電路;以及一處理單元,耦接至該低密度奇偶校驗引擎,用來依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置。另外,該控制器從該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊讀取一第二組錯誤更正組態參數之編碼資料,並利用該控制器中之一低密度奇偶
校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存一第一組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼。並且,該控制器將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器於該至少一非揮發性記憶體元件存取資料之用。尤其是,該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣。另外,該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣。此外,該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小。再者,該預定集合包含一零矩陣、一單位矩陣、以及該單位矩陣之至少一循環位移矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
本發明於提供上述方法之同時,亦對應地提供一種用來控制一記憶裝置之方法,該記憶裝置包含至少一非揮發性記憶體元件,每一非揮發性記憶體元件包含複數個區塊,該方法係應用於一初始化(Initialization)裝置以藉由利用該記憶裝置中之一控制器來對該記憶裝置進行初始化,該控制器係用來控制該至少一非揮發性記憶體元件,該方法包含有下列步驟:將一第二組錯誤更正組態參數之編碼資料寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊,其中該編碼資料係藉由對該第
二組錯誤更正組態參數進行基於一第一組錯誤更正組態參數之編碼而預先產生;利用該控制器從該特定非揮發性記憶體元件之該系統區塊讀取該第二組錯誤更正組態參數之該編碼資料,並利用該控制器中之一低密度奇偶校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存該第一組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼;以及利用該控制器將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器在初始化期間於該至少一非揮發性記憶體元件存取資料之用。尤其是,該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣。另外,該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣。此外,該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小。再者,該預定集合包含一零矩陣、一單位矩陣、以及該單位矩陣之至少一循環位移矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
本發明的好處之一是,相較於相關技術,本發明之方法、記憶裝置、與控制器可於不同的產品共用相同的控制器晶片。因此,本發明可省下設計多個版本之控制器晶片所需的相關成本(例如:時間成本與材料成本)。
本發明的另一好處是,相較於相關技術,本發明之方法、記憶裝置、與控制器可在不更換控制器晶片的狀況下提昇記憶裝置之運作效能。因此,本發明提供較相關技術更佳的基本架構。
100‧‧‧記憶裝置
100CON‧‧‧控制器
105‧‧‧初始化裝置
110‧‧‧處理單元
120‧‧‧揮發性記憶體
130‧‧‧傳輸介面
140‧‧‧非揮發性記憶體模組
140SB‧‧‧系統區塊
140_0,140_1,...,140_N‧‧‧非揮發性記憶體元件
150‧‧‧匯流排
180‧‧‧低密度奇偶校驗引擎
200,300‧‧‧用來管理一記憶裝置之方法
210,220,305,310,320,330‧‧‧步驟
A1,1,A1,2,...,A1,P,A2,1,A2,2,...,A2,P,...,AQ,1,AQ,2,...,AQ,P,B1,1,B1,2,...,B1,R,B2,1,B2,2,...,B2,R,...,BS,1,BS,2,...,BS,R‧‧‧低密度奇偶校驗特徵矩陣之子矩陣
HA,HB‧‧‧低密度奇偶校驗特徵矩陣
I‧‧‧單位矩陣
MP,MQ,MR,MS‧‧‧錯誤更正組態參數
O‧‧‧零矩陣
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之一種用來控制一記憶裝置之方法。
第3圖繪示第2圖所示之方法於一實施例中所涉及之控制方案。
第4圖為依據本發明另一實施例之一種用來控制一記憶裝置之方法。
第5圖繪示第2圖所示之方法於一實施例中所涉及之第一低密度奇偶校驗特徵矩陣。
第6圖繪示第2圖所示之方法於一實施例中所涉及之第二低密度奇偶校驗特徵矩陣。
第7圖繪示第2圖所示之方法於一實施例中所涉及之預定集合。
請參考第1圖,其繪示依據本發明一第一實施例之一種記憶裝置100的示意圖。記憶裝置100包含:一處理單元110,一揮發性(Volatile)記憶體120,一傳輸介面130,複數個非揮發性(Non-volatile,NV)記憶體元件140_0、140_1、...、與140_N(符號「N」代表一正整數)諸如(N+1)個快閃晶片,以及一匯流排150。於典型狀況下,於傳輸介面130耦接至一主裝置(未顯示於第1圖)之後,該主裝置可透過傳輸介面130來存取(Access)記憶裝置100。舉例來說,該主裝置可代表一個人電腦,例如一膝上型電腦或一桌上型電腦。
處理單元110可依據內嵌於處理單元110中或接收自處理單元110之外的程式碼(未顯示)來管理記憶裝置100。例如:該程式碼可為
內嵌於處理單元110之硬體碼,尤其是一唯讀記憶體碼(ROM code)。又例如:該程式碼可為接收自處理單元110之外的韌體碼。尤其是,處理單元110係用來控制揮發性記憶體120、傳輸介面130、非揮發性記憶體元件140_0、140_1、...、與140_N、以及匯流排150。本實施例之處理單元110可為一高級縮減指令集電腦機器(Advanced Reduced Instruction Set Computer Machine,Advanced RISC Machine,ARM)處理器或一亞哥縮減指令集電腦核心(Argonaut RISC Core,ARC)處理器。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,處理單元110可為其它種處理器。依據本實施例之某些的變化例,處理單元110可從記憶裝置100之外的一個外部電子裝置(諸如個人電腦)接收某些指令,並且依據這些指令進行記憶裝置100於出廠前之初始化(Initialization;於某些狀況下亦可稱為「開卡」),其中上述之初始化通常於記憶裝置100剛製造完成時進行,而這個外部電子裝置亦可稱為初始化裝置。此狀況下,執行於該外部電子裝置中關於對應的初始化流程之程式亦可視為上述之接收自處理單元110之外的程式碼的例子。
另外,揮發性記憶體120可用來儲存一全域頁位址鏈結表(Global Page Address Linking Table)、該主裝置所存取之資料、以及用來存取記憶裝置100之其它所需資訊。本實施例之揮發性記憶體120可為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)或一靜態隨機存取記憶體(Static Random Access Memory,SRAM)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,揮發性記憶體120可為其它種揮發性記憶體。例如:揮發性記憶體120可包含一靜態隨機存取記憶體(Static Random Access Memory,SRAM)。
依據本實施例,第1圖所示之傳輸介面130係用來傳輸資料以及該主裝置與記憶裝置100之間的指令,其中傳輸介面130符合一特定通訊標準諸如串列高級技術附件(Serial Advanced Technology Attachment,
SATA)標準、並列高級技術附件(Parallel Advanced Technology Attachment,PATA)標準、或通用序列匯流排(Universal Serial Bus,USB)標準。例如:記憶裝置100係一設置於該主裝置中之固態硬碟(Solid State Drive,SSD),且該特定通訊標準可為用來實施該主裝置之內部通訊的一些典型通訊標準,諸如串列高級技術附件標準或並列高級技術附件標準。又例如:記憶裝置100係一固態硬碟且位於該主裝置之外,並且該特定通訊標準可為用來實施該主裝置之外部通訊的一些典型通訊標準,諸如通用序列匯流排標準。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,記憶裝置100可為一可攜式記憶裝置諸如一記憶卡,且該特定通訊標準可為用來實施一記憶卡之輸入/輸出介面的一些典型通訊標準,諸如安全數碼(Secure Digital,SD)標準或小型快閃(Compact Flash,CF)標準。
另外,非揮發性記憶體元件140_0、140_1、...、與140_N係用來儲存資料,其中非揮發性記憶體元件140_0、140_1、...、與140_N可為(但不限於)NAND型快閃晶片。匯流排150係用來耦接處理單元110、揮發性記憶體120、傳輸介面130、和非揮發性記憶體元件140_0、140_1、...、與140_N,以及用來進行其通訊。於本實施例中,第1圖所示架構中除了非揮發性記憶體元件140_0、140_1、...、與140_N之外的部分可整合成一控制器100CON(未顯示於第1圖),尤其是一積體電路(Integrated Circuit,IC)諸如一控制器晶片,其中控制器100CON係用來控制記憶裝置100中之至少一非揮發性記憶體元件諸如非揮發性記憶體元件140_0、140_1、...、與140_N,故可視為記憶裝置100之控制器。
於本實施例中,第1圖所示之非揮發性記憶體元件140_0、140_1、...、與140_N中之每一非揮發性記憶體元件,諸如非揮發性記憶體元件140_n,可包含複數個區塊(Block),其中非揮發性記憶體元件140_n於本實施例中可稱為一快閃晶片,而索引n可代表落入區間[0,N]的範圍內之任一整數。尤其是,每一區塊可包含複數頁,而每一頁可包含複數個區段。
例如,一區段可為最小讀取單位。換言之,在一讀取運作期間,處理單元110可讀取一個區段或複數個區段。這只是為了說明的目的而已,並非對本發明之限制。
第2圖為依據本發明一實施例之一種用來控制一記憶裝置之方法200。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器100CON(例如:透過處理單元110執行上述程式碼之記憶體控制器),其中執行上述程式碼之控制器100CON係用來控制上述之至少一非揮發性記憶體元件諸如第1圖所示之非揮發性記憶體元件140_0、140_1、...、與140_N。例如:當記憶裝置100開機時,控制器100CON可以執行第2圖所示之工作流程。這只是為了說明的目的而已,並非對本發明之限制。該方法說明如下:於步驟210中,控制器100CON從上述之至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件(例如:非揮發性記憶體元件140_n,尤其是非揮發性記憶體元件140_0)之一系統區塊140SB讀取一第二組錯誤更正組態參數(Error Correction Configuring Parameter)之編碼資料,並利用控制器100CON中之一低密度奇偶校驗(Low-Density Parity-Check,以下簡稱為「LDPC」)引擎180(未顯示於第2圖)解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該LDPC引擎180儲存一第一組錯誤更正組態參數,以及於解碼該編碼資料時,該LDPC引擎180基於該第一組錯誤更正組態參數進行對應於一第一LDPC特徵矩陣之解碼。
於步驟220中,控制器100CON將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該LDPC引擎180中之一隨機存取記憶體(Random Access Memory,以下簡稱為「RAM」;未顯示),並控制該LDPC引擎180基於該RAM中之該第二組錯誤更正組態參數進行對應於一第二LDPC特徵矩陣之運作,使得該LDPC引擎180具備對應於該第二LDPC特徵矩陣之編碼與解碼能力,以供控制器100CON於上述之至少一非揮發性記憶體元件存取資料之用。
例如:當記憶裝置100開機時,控制器100CON從該系統區塊讀取該編碼資料並利用該LDPC引擎180解碼該編碼資料以取得該第二組錯誤更正組態參數,以容許該LDPC引擎180基於該RAM中之該第二組錯誤更正組態參數進行對應於該第二LDPC特徵矩陣之運作。當記憶裝置100關機時,該RAM中之該第二組錯誤更正組態參數消失,造成該LDPC引擎180暫時地喪失對應於該第二LDPC特徵矩陣之編碼與解碼能力,直到記憶裝置100再度開機。尤其是,當記憶裝置100再度開機時,第2圖所示之工作流程可以再度執行。
實作上,步驟210中所述之該編碼資料可藉由對該第二組錯誤更正組態參數進行基於該第一組錯誤更正組態參數之編碼而預先產生,而該編碼資料係預先寫入該系統區塊。這只是為了說明的目的而已,並非對本發明之限制。請注意,於本實施例中,藉由利用不同組錯誤更正組態參數,該LDPC引擎180可分別被組態成具備不同強度的錯誤更正能力,故該LDPC引擎180之錯誤更正能力可藉由重新組態而被改變,其中該LDPC引擎180可視為可組態(Configurable)LDPC引擎。例如:在該LDPC引擎180基於該第一組錯誤更正組態參數進行運作的狀況下,該LDPC引擎180之錯誤更正能力對應於該第一LDPC特徵矩陣。又例如:在該LDPC引擎180基於該第二組錯誤更正組態參數進行運作的狀況下,該LDPC引擎180之錯誤更正能力對應於該第二LDPC特徵矩陣。
依據本實施例,該第一LDPC特徵矩陣包含複數個子矩陣(Submatrix),而該第一LDPC特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣(Square Matrix)。另外,該第二LDPC特徵矩陣包含複數個子矩陣,而該第二LDPC特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣。此外,該第二LDPC特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一LDPC特徵矩陣之該複數個子矩陣中之任一子矩陣的大小。於本實施例中,該預定集合包含一零
矩陣(Zero Matrix)、一單位矩陣(Identity Matrix)、以及該單位矩陣之至少一循環位移(Cyclic-Shifted)矩陣(例如:一個循環位移矩陣、或多個循環位移矩陣),其中上述之至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。例如:該零矩陣、該單位矩陣、以及上述之至少一循環位移矩陣均為(Z * Z)大小之方塊矩陣,其中方塊矩陣大小參數Z可為大於一之正整數。
尤其是,於該第二LDPC特徵矩陣當中沿著行方向的子矩陣之數量小於該第一LDPC特徵矩陣當中沿著行方向的子矩陣之數量,並且於該第二LDPC特徵矩陣當中沿著列方向的子矩陣之數量小於該第一LDPC特徵矩陣當中沿著列方向的子矩陣之數量。例如:於該第二LDPC特徵矩陣當中沿著行方向的子矩陣之數量等於該第一LDPC特徵矩陣當中沿著行方向的子矩陣之數量減一,並且於該第二LDPC特徵矩陣當中沿著列方向的子矩陣之數量等於該第一LDPC特徵矩陣當中沿著列方向的子矩陣之數量減一。
另外,該第一組錯誤更正組態參數包含該第一LDPC特徵矩陣之總行數與總列數,並且該第二組錯誤更正組態參數包含該第二LDPC特徵矩陣之總行數與總列數。請注意,因應該LDPC引擎180之編碼與解碼演算法的設計,這些組錯誤更正組態參數的內容可能有所變化。例如:在該LDPC引擎180之疊代(Iterative)編碼與解碼係基於該第一LDPC特徵矩陣與該第二LDPC特徵矩陣中之任一者的列方向之狀況下,該第一組錯誤更正組態參數包含該第一LDPC特徵矩陣中之每一列子矩陣之非零子矩陣的數量,並且該第二組錯誤更正組態參數包含該第二LDPC特徵矩陣中之每一列子矩陣之非零子矩陣的數量。又例如:在該LDPC引擎180之疊代編碼與解碼係基於該第一LDPC特徵矩陣與該第二LDPC特徵矩陣中之任一者的行方向之狀況下,該第一組錯誤更正組態參數包含該第一LDPC特徵矩陣中之每一行子矩陣之非零子矩陣的數量,並且該第二組錯誤更正組態參數包含該第二LDPC特徵矩陣中之每一行子矩陣之非零子矩陣的數量。
請注意,關於該第一LDPC特徵矩陣與該第二LDPC特徵矩陣以及對應之該第一組錯誤更正組態參數與該第二組錯誤更正組態參數之實施細節,請進一步參考後續實施例的說明。
第3圖繪示第2圖所示之方法200於一實施例中所涉及之控制方案。第3圖所示之非揮發性記憶體模組140包含第1圖所示之非揮發性記憶體元件140_0、140_1、...、與140_N,其中系統區塊140SB可為上述之系統區塊之一例,而初始化裝置105可為上述之初始化裝置之一例。
依據本實施例,在對記憶裝置100進行初始化的期間,藉由利用控制器100CON,初始化裝置105可將步驟210中所述之該編碼資料寫入系統區塊140SB。於全部的初始化運作已完成之後,操作員可將記憶裝置100和初始化裝置105斷開。於是,當記憶裝置100之使用者開始使用記憶裝置100時,記憶裝置100開機,並且控制器100CON可以執行第2圖所示之工作流程。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第4圖為依據本發明另一實施例之一種用來控制一記憶裝置之方法300。該方法可應用於第3圖所示架構中之至少一部分(例如:一部分或全部),尤其是初始化裝置105以及上述之控制器100CON(例如:透過處理單元110執行上述程式碼之記憶體控制器)。
於步驟305中,初始化裝置105對記憶裝置100進行初始化運作。依據本實施例,初始化裝置105中關於對應的初始化流程之程式可依控制器100CON的規格以及某些需求來修改。
於步驟310中,初始化裝置105將該第二組錯誤更正組態參數之該編碼資料寫入上述之至少一非揮發性記憶體元件中之該特定非揮發性記憶體元件之系統區塊140SB,其中該編碼資料係藉由對該第二組錯誤更正組態參數進行基於該第一組錯誤更正組態參數之編碼而預先產生。透過編碼之保護,該第二組錯誤更正組態參數之正確性得以確保,故該LDPC引擎180於重新組態後之錯誤更正能力亦得以確保。
於步驟320中,初始化裝置105利用控制器100CON從該特定非揮發性記憶體元件之系統區塊140SB讀取該第二組錯誤更正組態參數之該編碼資料,並利用控制器100CON中之該LDPC引擎180解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該LDPC引擎180儲存該第一組錯誤更正組態參數,以及於解碼該編碼資料時,該LDPC引擎180基於該第一組錯誤更正組態參數進行對應於該第一LDPC特徵矩陣之解碼。例如:該LDPC引擎180可包含唯讀記憶體,以儲存該第一組錯誤更正組態參數。這只是為了說明的目的而已,並非對本發明之限制。在其它例子中,該LDPC引擎180可包含其它類型的儲存單元,以儲存該第一組錯誤更正組態參數。
於步驟330中,初始化裝置105利用控制器100CON將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該LDPC引擎180中之該RAM,並控制該LDPC引擎180基於該RAM中之該第二組錯誤更正組態參數進行對應於該第二LDPC特徵矩陣之運作,使得該LDPC引擎180具備對應於該第二LDPC特徵矩陣之編碼與解碼能力,以供控制器100CON在初始化期間於上述之至少一非揮發性記憶體元件存取資料之用。
請注意,第4圖所示之工作流程聚焦於初始化流程當中和本發明之方法相關的運作,諸如步驟310、步驟320、與步驟330之運作,其中初始化流程中之其它運作可依據相關技術中已知的內容來實施。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第5圖繪示第2圖所示之方法200於一實施例中所涉及之第一LDPC特徵矩陣HA,其中第一LDPC特徵矩陣HA可為上述該第一LDPC特徵矩陣之一例。如第5圖所示,第一LDPC特徵矩陣HA包含子矩陣{{A1,1,A1,2,...,A1,P},{A2,1,A2,2,...,A2,P},...,{AQ,1,AQ,2,...,AQ,P}},而第一LDPC特徵矩陣HA中之每一列元素之元素數量與每一行元素之元素數量分別為MP與MQ,其中MP=(Z * P)且MQ=(Z * Q)。另外,第一LDPC特徵矩陣HA中之每一列元素之元素數量MP與每一行元素之元素數量MQ可為上述該第一
LDPC特徵矩陣之總行數與總列數的例子。此外,參數P代表上述該第一LDPC特徵矩陣中之每一列子矩陣之子矩陣數量,而參數Q代表上述該第一LDPC特徵矩陣中之每一行子矩陣之子矩陣數量。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第6圖繪示第2圖所示之方法200於一實施例中所涉及之第二LDPC特徵矩陣HB,其中第二LDPC特徵矩陣HB可為上述該第二LDPC特徵矩陣之一例。如第6圖所示,第二LDPC特徵矩陣HB包含子矩陣{{B1,1,B1,2,...,B1,R},{B2,1,B2,2,...,B2,R},...,{BS,1,BS,2,...,BS,R}},而第二LDPC特徵矩陣HB中之每一列元素之元素數量與每一行元素之元素數量分別為MR與MS,其中MP=(Z * P)且MQ=(Z * Q)。另外,第二LDPC特徵矩陣HB中之每一列元素之元素數量MR與每一行元素之元素數量MS可為上述該第二LDPC特徵矩陣之總行數與總列數的例子。此外,參數R代表上述該第二LDPC特徵矩陣中之每一列子矩陣之子矩陣數量,而參數S代表上述該第二LDPC特徵矩陣中之每一行子矩陣之子矩陣數量。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第7圖繪示第2圖所示之方法200於一實施例中所涉及之預定集合,其中零矩陣O可為上述該零矩陣之一例,而單位矩陣I可為上述該單位矩陣之一例,並且繪示於單位矩陣I右側之該些循環位移矩陣可為上述之至少一循環位移矩陣之例子。例如:上述之至少一循環位移矩陣諸如上述多個循環位移矩陣可取自循環地向右位移單位矩陣I中之全部的行向量或循環地向上位移單位矩陣I中之全部的列向量。這只是為了說明的目的而已,並非對本發明之限制。又例如:上述之至少一循環位移矩陣諸如上述多個循環位移矩陣可取自循環地向左位移單位矩陣I中之全部的行向量或循環地向下位移單位矩陣I中之全部的列向量。本實施例與前述實施例/變化例相仿之處不再重複贅述。
基於上列實施例,控制器100CON的製造商可以依照錯誤更
正能力之強度的需求來決定該第一LDPC特徵矩陣與該第二LDPC特徵矩陣的內容。典型狀況下,該第一組錯誤更正組態參數與該第二組錯誤更正組態參數分別對應不同的LDPC特徵矩陣(或不同的LDPC碼)。當該預定集合中之各個可選擇之方塊矩陣的大小(Z * Z)被選定時,該預定集合當中全部的可選擇之方塊矩陣即可決定。由於該第一LDPC特徵矩陣中之各個子矩陣以及該第二LDPC特徵矩陣中之各個子矩陣均可選自該預定集合,故該LDPC引擎180可設計成自動地依據該第一組錯誤更正組態參數與該第二組錯誤更正組態參數產生該第一LDPC特徵矩陣與該第二LDPC特徵矩陣。於是,在方塊矩陣大小參數Z已被選定的狀況下,藉由利用不同組錯誤更正組態參數,該LDPC引擎180可分別被組態成具備不同強度的錯誤更正能力。尤其是,在第2圖所示實施例中所述關於該第一LDPC特徵矩陣與該第二LDPC特徵矩陣以及對應之該第一組錯誤更正組態參數與該第二組錯誤更正組態參數之各種限制施加於第3圖所示之控制方案的狀況下,於不同的產品共用相同的控制器晶片之目標可以輕易地達成,並且在不更換控制器晶片的狀況下提昇記憶裝置之運作效能之目標也可以輕易地達成。因此,本發明提供較相關技術更佳的基本架構,並且可省下設計多個版本之控制器晶片所需的相關成本(例如:時間成本與材料成本)。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200‧‧‧用來控制一記憶裝置之方法
210,220‧‧‧步驟
Claims (20)
- 一種用來控制一記憶裝置之方法,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該方法係應用於該記憶裝置中之一控制器,該控制器係用來控制該至少一非揮發性記憶體元件,該方法包含有下列步驟:從該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊讀取一第二組錯誤更正組態參數(Error Correction Configuring Parameter)之編碼資料,並利用該控制器中之一低密度奇偶校驗(Low-Density Parity-Check,LDPC)引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存一第一組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼;以及將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器於該至少一非揮發性記憶體元件存取資料之用;其中該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣(Submatrix),而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣(Square Matrix);該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集 合之一方塊矩陣;該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小;以及該預定集合包含一零矩陣(Zero Matrix)、一單位矩陣(Identity Matrix)、以及該單位矩陣之至少一循環位移(Cyclic-Shifted)矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
- 如申請專利範圍第1項所述之方法,其中於該第二低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量小於該第一低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量;以及於該第二低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量小於該第一低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量。
- 如申請專利範圍第2項所述之方法,其中於該第二低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量等於該第一低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量減一;以及於該第二低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量等於該第一低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量減一。
- 如申請專利範圍第1項所述之方法,其中在該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行運作的狀況下,該低密度奇偶校驗引擎之錯誤更正能力對應於該第一低密度奇偶校驗特徵矩陣;以及在該低密度奇偶校驗引擎基於該第二組錯誤更正組態參數進行運作的狀況下,該低密度奇偶校驗引擎之錯誤更正能力對應於該第二低密度奇偶校驗特 徵矩陣。
- 如申請專利範圍第1項所述之方法,其中該編碼資料係藉由對該第二組錯誤更正組態參數進行基於該第一組錯誤更正組態參數之編碼而預先產生;以及該編碼資料係預先寫入該系統區塊。
- 如申請專利範圍第1項所述之方法,其另包含:當該記憶裝置開機時,從該系統區塊讀取該編碼資料並利用該低密度奇偶校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,以容許該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於該第二低密度奇偶校驗特徵矩陣之運作。
- 如申請專利範圍第6項所述之方法,其中當該記憶裝置關機時,該隨機存取記憶體中之該第二組錯誤更正組態參數消失,造成該低密度奇偶校驗引擎暫時地喪失對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,直到該記憶裝置再度開機。
- 如申請專利範圍第1項所述之方法,其中該第一組錯誤更正組態參數包含該第一低密度奇偶校驗特徵矩陣之總行數與總列數;以及該第二組錯誤更正組態參數包含該第二低密度奇偶校驗特徵矩陣之總行數與總列數。
- 如申請專利範圍第1項所述之方法,其中在該低密度奇偶校驗引擎之疊代(Iterative)編碼與解碼係基於該第一低密度奇偶校驗特徵矩陣與該第二低密度奇偶校驗特徵矩陣中之任一者的列方向之狀況下,該第一組 錯誤更正組態參數包含該第一低密度奇偶校驗特徵矩陣中之每一列子矩陣之非零子矩陣的數量,並且該第二組錯誤更正組態參數包含該第二低密度奇偶校驗特徵矩陣中之每一列子矩陣之非零子矩陣的數量。
- 如申請專利範圍第1項所述之方法,其中在該低密度奇偶校驗引擎之疊代(Iterative)編碼與解碼係基於該第一低密度奇偶校驗特徵矩陣與該第二低密度奇偶校驗特徵矩陣中之任一者的行方向之狀況下,該第一組錯誤更正組態參數包含該第一低密度奇偶校驗特徵矩陣中之每一行子矩陣之非零子矩陣的數量,並且該第二組錯誤更正組態參數包含該第二低密度奇偶校驗特徵矩陣中之每一行子矩陣之非零子矩陣的數量。
- 一種記憶裝置,包含有:至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block);以及一控制器,用來控制該至少一非揮發性記憶體元件,該控制器包含一處理單元,以依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置,其中該控制器從該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊讀取一第二組錯誤更正組態參數(Error Correction Configuring Parameter)之編碼資料,並利用該控制器中之一低密度奇偶校驗(Low-Density Parity-Check,LDPC)引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存一第一組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼,其中該控制器將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶 校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器於該至少一非揮發性記憶體元件存取資料之用;其中該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣(Submatrix),而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣(Square Matrix);該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣;該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小;以及該預定集合包含一零矩陣(Zero Matrix)、一單位矩陣(Identity Matrix)、以及該單位矩陣之至少一循環位移(Cyclic-Shifted)矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
- 如申請專利範圍第11項所述之記憶裝置,其中於該第二低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量小於該第一低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量;以及於該第二低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量小於該第一低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量。
- 如申請專利範圍第11項所述之記憶裝置,其中該編碼資料係藉由對該第二組錯誤更正組態參數進行基於該第一組錯誤更正組態參數之編碼而預先產生;以及該編碼資料係預先寫入該系統區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中當該記憶裝置開機時,該控制器從該系統區塊讀取該編碼資料並利用該低密度奇偶校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,以容許該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於該第二低密度奇偶校驗特徵矩陣之運作。
- 如申請專利範圍第14項所述之記憶裝置,其中當該記憶裝置關機時,該隨機存取記憶體中之該第二組錯誤更正組態參數消失,造成該低密度奇偶校驗引擎暫時地喪失對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,直到該記憶裝置再度開機。
- 一種記憶裝置之控制器,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該控制器包含有:一低密度奇偶校驗(Low-Density Parity-Check,LDPC)引擎,用來為該控制器進行錯誤更正,其中該低密度奇偶校驗引擎包含硬體電路;以及一處理單元,耦接至該低密度奇偶校驗引擎,用來依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置,其中該控制器從該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊讀取一第二組錯誤更正組態參數(Error Correction Configuring Parameter)之編碼資料,並利用該低密度 奇偶校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存一第一組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼,其中該控制器將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器於該至少一非揮發性記憶體元件存取資料之用;其中該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣(Submatrix),而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣(Square Matrix);該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣;該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小;以及該預定集合包含一零矩陣(Zero Matrix)、一單位矩陣(Identity Matrix)、以及該單位矩陣之至少一循環位移(Cyclic-Shifted)矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
- 如申請專利範圍第16項所述之控制器,其中於該第二低密度奇偶校驗 特徵矩陣當中沿著行方向的子矩陣之數量小於該第一低密度奇偶校驗特徵矩陣當中沿著行方向的子矩陣之數量;以及於該第二低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量小於該第一低密度奇偶校驗特徵矩陣當中沿著列方向的子矩陣之數量。
- 如申請專利範圍第16項所述之控制器,其中該編碼資料係藉由對該第二組錯誤更正組態參數進行基於該第一組錯誤更正組態參數之編碼而預先產生;以及該編碼資料係預先寫入該系統區塊。
- 如申請專利範圍第16項所述之控制器,其中當該記憶裝置開機時,該控制器從該系統區塊讀取該編碼資料並利用該低密度奇偶校驗引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,以容許該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於該第二低密度奇偶校驗特徵矩陣之運作。
- 一種用來控制一記憶裝置之方法,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該方法係應用於一初始化(Initialization)裝置以藉由利用該記憶裝置中之一控制器來對該記憶裝置進行初始化,該控制器係用來控制該至少一非揮發性記憶體元件,該方法包含有下列步驟:將一第二組錯誤更正組態參數(Error Correction Configuring Parameter)之編碼資料寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件之一系統區塊,其中該編碼資料係藉由對該第二組錯誤更正組態參數進行基於一第一組錯誤更正組態參數之編碼而預先產生;利用該控制器從該特定非揮發性記憶體元件之該系統區塊讀取該第二 組錯誤更正組態參數之該編碼資料,並利用該控制器中之一低密度奇偶校驗(Low-Density Parity-Check,LDPC)引擎解碼該編碼資料以取得該第二組錯誤更正組態參數,其中該低密度奇偶校驗引擎儲存該第一組錯誤更正組態參數,以及於解碼該編碼資料時,該低密度奇偶校驗引擎基於該第一組錯誤更正組態參數進行對應於一第一低密度奇偶校驗特徵矩陣之解碼;以及利用該控制器將藉由解碼該編碼資料而取得之該第二組錯誤更正組態參數儲存於該低密度奇偶校驗引擎中之一隨機存取記憶體,並控制該低密度奇偶校驗引擎基於該隨機存取記憶體中之該第二組錯誤更正組態參數進行對應於一第二低密度奇偶校驗特徵矩陣之運作,使得該低密度奇偶校驗引擎具備對應於該第二低密度奇偶校驗特徵矩陣之編碼與解碼能力,以供該控制器在初始化期間於該至少一非揮發性記憶體元件存取資料之用;其中該第一低密度奇偶校驗特徵矩陣包含複數個子矩陣(Submatrix),而該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自一預定集合之一方塊矩陣(Square Matrix);該第二低密度奇偶校驗特徵矩陣包含複數個子矩陣,而該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之每一子矩陣係為選自該預定集合之一方塊矩陣;該第二低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小等於該第一低密度奇偶校驗特徵矩陣之該複數個子矩陣中之任一子矩陣的大小;以及該預定集合包含一零矩陣(Zero Matrix)、一單位矩陣(Identity Matrix)、以及該單位矩陣之至少一循環位移(Cyclic-Shifted)矩陣,其中該至少一循環位移矩陣中之任一循環位移矩陣係取自循環地位移該單位矩陣中之全部的行向量或循環地位移該單位矩陣中之全部的列向量。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103120894A TWI530959B (zh) | 2014-06-17 | 2014-06-17 | 用來控制一記憶裝置之方法以及記憶裝置與控制器 |
CN201410580094.4A CN105280238B (zh) | 2014-06-17 | 2014-10-23 | 用来控制一记忆装置的方法以及记忆装置与控制器 |
CN201810313064.5A CN108447523B (zh) | 2014-06-17 | 2014-10-23 | 用来控制一记忆装置的方法以及记忆装置与控制器 |
US14/642,760 US9454430B2 (en) | 2014-06-17 | 2015-03-10 | Method for controlling memory apparatus, and associated memory apparatus and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103120894A TWI530959B (zh) | 2014-06-17 | 2014-06-17 | 用來控制一記憶裝置之方法以及記憶裝置與控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201601163A TW201601163A (zh) | 2016-01-01 |
TWI530959B true TWI530959B (zh) | 2016-04-21 |
Family
ID=54836236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103120894A TWI530959B (zh) | 2014-06-17 | 2014-06-17 | 用來控制一記憶裝置之方法以及記憶裝置與控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9454430B2 (zh) |
CN (2) | CN108447523B (zh) |
TW (1) | TWI530959B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9369151B2 (en) * | 2014-09-25 | 2016-06-14 | Ali Misfer ALKATHAMI | Apparatus and method for resource allocation |
KR101947935B1 (ko) * | 2014-12-22 | 2019-02-13 | 사이버옵틱스 코포레이션 | 3차원 측정 시스템의 갱신 보정 방법 |
US9910772B2 (en) * | 2016-04-27 | 2018-03-06 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
CN111679787B (zh) | 2016-04-27 | 2023-07-18 | 慧荣科技股份有限公司 | 闪存装置、闪存控制器及闪存存储管理方法 |
US10289487B2 (en) | 2016-04-27 | 2019-05-14 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10019314B2 (en) | 2016-04-27 | 2018-07-10 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
CN107391296B (zh) | 2016-04-27 | 2020-11-06 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN107391026B (zh) | 2016-04-27 | 2020-06-02 | 慧荣科技股份有限公司 | 闪存装置及闪存存储管理方法 |
TWI602188B (zh) * | 2017-01-03 | 2017-10-11 | 慧榮科技股份有限公司 | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 |
TWI643201B (zh) * | 2017-11-27 | 2018-12-01 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
US10523239B2 (en) * | 2018-04-12 | 2019-12-31 | National Chiao Tung University | Method for generating encoded data that is encoded based on low-density parity-check codes, and method for decoding the encoded data |
US20190319638A1 (en) * | 2018-04-12 | 2019-10-17 | National Chiao Tung University | Method for generating encoded data that is encoded based on low-density parity-check codes, and method for decoding the encoded data |
CN109379087B (zh) * | 2018-10-24 | 2022-03-29 | 江苏华存电子科技有限公司 | Ldpc根据闪存组件错误率调变核编译码速率的方法 |
US10838811B1 (en) * | 2019-08-14 | 2020-11-17 | Silicon Motion, Inc. | Non-volatile memory write method using data protection with aid of pre-calculation information rotation, and associated apparatus |
US11704027B2 (en) * | 2021-11-12 | 2023-07-18 | Western Digital Technologies, Inc. | Optimizing recovery of recurrent blocks using bloom filter |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL152609A0 (en) * | 2002-11-03 | 2003-06-24 | Hapto Biotech Inc | Liposomal compositions comprising haptotactic peptides and uses thereof |
US7526717B2 (en) * | 2004-06-16 | 2009-04-28 | Samsung Electronics Co., Ltd. | Apparatus and method for coding and decoding semi-systematic block low density parity check codes |
US7617439B2 (en) * | 2005-01-10 | 2009-11-10 | Broadcom Corporation | Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
US7516390B2 (en) * | 2005-01-10 | 2009-04-07 | Broadcom Corporation | LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems |
US7900127B2 (en) | 2005-01-10 | 2011-03-01 | Broadcom Corporation | LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices |
US7617441B2 (en) * | 2005-07-18 | 2009-11-10 | Broadcom Corporation | Efficient construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
US7844879B2 (en) | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US7904783B2 (en) | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US8266495B2 (en) * | 2008-02-20 | 2012-09-11 | Marvell World Trade Ltd. | Systems and methods for performing concatenated error correction |
US8392814B2 (en) * | 2008-10-07 | 2013-03-05 | Qualcomm Incorporated | Method and apparatus for high speed structured multi rate low density parity check codes |
KR101181969B1 (ko) * | 2009-06-26 | 2012-09-11 | (주)에프씨아이 | 엘디피시 부호의 복호방법 |
US20110041040A1 (en) * | 2009-08-15 | 2011-02-17 | Skymedi Corporation | Error Correction Method for a Memory Device |
JP5112468B2 (ja) | 2010-03-26 | 2013-01-09 | 株式会社東芝 | 誤り検出訂正回路、メモリコントローラ、および半導体メモリ装置 |
US9093154B2 (en) | 2012-01-16 | 2015-07-28 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
US9141467B2 (en) | 2012-03-23 | 2015-09-22 | Samsung Electronics Co., Ltd. | Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof |
US8732560B2 (en) * | 2012-05-08 | 2014-05-20 | Infineon Technologies Ag | Method and device for correction of ternary stored binary data |
KR102068030B1 (ko) * | 2012-12-11 | 2020-01-20 | 삼성전자 주식회사 | 메모리 컨트롤러 및 그 동작방법 |
-
2014
- 2014-06-17 TW TW103120894A patent/TWI530959B/zh active
- 2014-10-23 CN CN201810313064.5A patent/CN108447523B/zh active Active
- 2014-10-23 CN CN201410580094.4A patent/CN105280238B/zh active Active
-
2015
- 2015-03-10 US US14/642,760 patent/US9454430B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9454430B2 (en) | 2016-09-27 |
CN108447523B (zh) | 2021-01-22 |
US20150363265A1 (en) | 2015-12-17 |
CN105280238A (zh) | 2016-01-27 |
TW201601163A (zh) | 2016-01-01 |
CN105280238B (zh) | 2018-05-08 |
CN108447523A (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI530959B (zh) | 用來控制一記憶裝置之方法以及記憶裝置與控制器 | |
CN108062258B (zh) | 用于错误恢复的循环交错的xor阵列 | |
US10388400B2 (en) | Generalized product codes for flash storage | |
US9177660B2 (en) | Method of operating memory device | |
CN110347530B (zh) | 数据存储装置及其操作方法 | |
US10367528B2 (en) | Convolutional low-density parity-check coding | |
US10860422B2 (en) | Method for performing data management in memory device, associated memory device and controller thereof | |
CN108257637B (zh) | 存储器系统及其操作方法 | |
TWI523025B (zh) | 資料儲存裝置及其錯誤校正方法 | |
CN108694970B (zh) | 控制器及其操作方法 | |
US11294589B2 (en) | Method for performing access control in a memory device, associated memory device and controller thereof | |
CN110489271B (zh) | 存储器系统及其操作方法 | |
KR102666852B1 (ko) | 컨트롤러, 반도체 메모리 시스템 및 그의 동작 방법 | |
KR20140075434A (ko) | 메모리 컨트롤러 및 그 동작방법 | |
US20200153456A1 (en) | Flash memory controller and encoding circuit and decoding circuit within flash memory controller | |
CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
CN109783005B (zh) | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
TWI740499B (zh) | 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 | |
CN110349615B (zh) | 控制器、其操作方法及包括控制器的存储器系统 | |
TWI651730B (zh) | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 | |
CN108874681B (zh) | 存储器系统及其操作方法 | |
US10141072B2 (en) | Efficient encoder based on modified RU algorithm | |
US11169878B2 (en) | Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus |