TW201826285A - 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 - Google Patents
用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 Download PDFInfo
- Publication number
- TW201826285A TW201826285A TW106100011A TW106100011A TW201826285A TW 201826285 A TW201826285 A TW 201826285A TW 106100011 A TW106100011 A TW 106100011A TW 106100011 A TW106100011 A TW 106100011A TW 201826285 A TW201826285 A TW 201826285A
- Authority
- TW
- Taiwan
- Prior art keywords
- matrix
- data
- predetermined
- parity
- code
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1024—Identification of the type of error
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- 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
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Abstract
本發明提供一種用來於一記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器。該方法包含:從該記憶裝置以外之一主裝置接收一組資料;依據一預定奇偶校驗矩陣之一第一子矩陣,對該組資料進行編碼,以產生部分奇偶校驗碼;依據一預定後處理矩陣,對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼,其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣之任何反矩陣;以及將該組資料之一碼字寫入該記憶裝置之一非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來於記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器。
近年來由於記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保可攜式記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,多階細胞快閃記憶體之錯誤率在某些情況下會上升至令人難以置信的地步,而傳統的錯誤更正機制卻不足以應付這些狀況下之叢發錯誤(burst error)。因此,需要一種同時具備錯誤更正機制與資料存取機制之新穎的記憶體存取架構。
本發明之一目的在於提供一種用來於一記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來於一記憶裝置中進行資料管理之方法以及相關之記憶裝置及其控制器,以提昇記憶裝置之效能。
本發明之較佳實施例提供一種用來於一記憶裝置中進行資料管理之方法,其中該記憶裝置包含一非揮發性記憶體,而該非揮發性記憶體包含至少一非揮發性記憶體晶片。該方法可包含:從該記憶裝置以外之一主裝置(host device)接收一組資料;依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣,對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code);依據一預定後處理矩陣,對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix);以及將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體晶片;以及一控制器,耦接至該非揮發性記憶體,用來於該記憶裝置中進行資料管理。該控制器從該記憶裝置以外之一主裝置接收一組資料。該控制器依據一預定奇偶校驗矩陣之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼。另外,該控制器依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼,其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣之任何反矩陣。此外,該控制器將該組資料之一碼字寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器與一非揮發性記憶體,而該非揮發性記憶體包含至少一非揮發性記憶體晶片,該控制器包含有:一處理電路,用來控制該控制器從該記憶裝置以外之一主裝置接收一組資料;以及一資料保護電路,耦接至該處理電路,用來進行錯誤更正。該資料保護電路依據一預定奇偶校驗矩陣之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼。另外,該資料保護電路依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼,其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣之任何反矩陣。此外,該處理電路控制該控制器將該組資料之一碼字寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
本發明的好處之一是,藉由適當地進行資料管理,本發明能針對該控制器所存取之資料來進行妥善的記憶體存取管理,以減少錯誤的發生。另外,依據相關實施例來實施並不會增加許多額外的成本,甚至比相關技術更能節省成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。
I. 記憶體系統
請參考第1圖,第1圖為依據本發明一第一實施例之一種記憶裝置100與一主裝置(host device)200的示意圖。例如:記憶裝置100可為一可攜式記憶裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)或固態硬碟(solid state drive, SSD)。另外,主裝置200的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,記憶裝置100可包含一控制器以及一非揮發性記憶體,其中該非揮發性記憶體係用來儲存資訊,該控制器係用來存取(access)該非揮發性記憶體,且該非揮發性記憶體可包含至少一非揮發性記憶體晶片(諸如一或多個非揮發性記憶體晶片)。例如:該控制器與該非揮發性記憶體可分別為一記憶體控制器110與一快閃記憶體(Flash memory)120,快閃記憶體120可包含至少一快閃記憶體晶片(諸如一或多個快閃記憶體晶片;可簡稱為快閃晶片),且記憶體控制器110可用來存取快閃記憶體120。如第1圖所示,記憶體控制器110可包含一處理電路諸如一微處理器112、一儲存器諸如一唯讀記憶體(read only memory, ROM)112M、一控制邏輯電路114、一緩衝記憶體116、與一傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116係以一隨機存取記憶體(random access memory, RAM)來實施。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114中之一資料保護電路114DP可保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、或通用序列匯流排(Universal Serial Bus, USB)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置200可藉由傳送指令與對應的邏輯位址予記憶體控制器110來存取記憶裝置100。記憶體控制器110接收該些指令與該些邏輯位址,並控制快閃記憶體120讀取、寫入(write/program)、或抹除(erase)快閃記憶體120當中具有實體位址之記憶單位(memory unit),其中該些實體位址對應於該些邏輯位址。
II. 頁位址鏈結表(page address linking table)
第2A圖繪示一快閃晶片0的一區塊當中之一局部(local)頁位址鏈結表,其中快閃晶片0可作為上述至少一快閃記憶體晶片(諸如一或多個快閃記憶體晶片)之一例。如第2A圖所示,快閃晶片0包含複數個區塊0、1、2、…、與M。請注意,一區塊係一抹除單位。換言之,當需要抹除資料時,微處理器112同時抹除儲存於該區塊之全部資料。另外,一區塊,諸如第2A圖所示之區塊0,包含複數個頁。例如:快閃晶片0之區塊0包含128頁。在該區塊諸如區塊0中,這些頁被區分為兩個分區,即用來儲存資料之一資料分區以及用來儲存一局部頁位址鏈結表0之一表格分區。該區塊之資料分區內的諸頁可稱為該區塊之資料頁,其中該些資料頁中之任一者可包含一資料位元組區(data byte region)DBR與一備用位元組區(spare byte region)SBR。
依據本實施例,該資料分區內的頁數以及該表格分區內的頁數可依需要來訂定。例如:頁0、1、2、…、126可用來儲存資料,且該區塊中剩下的頁係用來儲存局部頁位址鏈結表0。依據某些實施例,該資料分區可包含少於127頁,且該表格分區可包含兩頁或更多頁。又例如:該區塊內的總頁數、該資料分區內的頁數以及該表格分區內的頁數可分別予以變化。請注意,一頁係一寫入單位。換言之,當需要寫入資料時,微處理器112一次將相當於一頁的資料寫入一頁。依據本實施例,第1圖所示之快閃記憶體120中之每一快閃晶片的多個區塊中的每一區塊可具有一局部頁位址鏈結表。為了簡明起見,只有快閃晶片0的區塊0之局部頁位址鏈結表0係繪示於第2A圖,是因為每一局部頁位址鏈結表的功能與運作都彼此相似。
於本實施例中,局部頁位址鏈結表0被建立的時間點是當區塊0中之全部資料頁已被寫入,也就是被完全寫入(fully programmed)之時。然而,於區塊0中之資料頁被完全寫入之前,微處理器112會暫時地在該隨機存取記憶體中儲存一暫時局部頁位址鏈結表0;當區塊0中一實體頁位址與一邏輯頁位址之間的任何鏈結關係改變時,微處理器112就更新暫時局部頁位址鏈結表0。
依據本實施例,該暫時/非暫時局部頁位址鏈結表(例如:該暫時局部頁位址鏈結表0或局部頁位址鏈結表0)之一欄位(項目)的排列順位代表一實體頁位址,而此欄位中的內容代表一相關的邏輯頁位址。例如:假設iP
與jP
分別為第2A圖所示之暫時/非暫時局部頁位址鏈結表之示例表格位置(iP
, jP
)當中的列數與行數,並且iP
= 0、1、…等且jP
= 0、1、…等。在第2A圖所示之暫時/非暫時局部頁位址鏈結表的這個二維陣列示例中,對應於第(iP
* 4 + jP
)個欄位之示例表格位置(iP
, jP
)代表一實體頁位址PPN,其可描述如下: PPN = (PBN * DPC + iP
* 4 + jP
); 其中參數PBN表示討論中的實體區塊之實體區塊編號(例如:PBN = 0、1、2、…等,分別對對應於區塊0、1、2、…等),而參數DPC則表示每一區塊之資料頁數量(例如:於本實施例中可為127)。這只是為了說明的目的而已,並非對本發明之限制。為了便於理解,該暫時/非暫時局部頁位址鏈結表可繪示為單一行,如第2B圖右半部所示。給定iP
仍為列數且iP
= 0、1、…等,則在第2B圖右半部所示的這個一維陣列示例當中,針對區塊PBN的暫時/非暫時局部頁位址鏈結表而言,對應於第iP
個欄位之示例表格位置iP
代表一實體頁位址(PBN * DPC + iP
)。亦即,針對這個一維陣列示例,上式可被重新改寫如下: PPN = (PBN * DPC + iP
)。
例如:當主裝置200傳送一指令予微處理器112以在一邏輯頁位址0x0002寫入某些資料時,微處理器112可將這些資料與邏輯頁位址0x0002分別寫入快閃晶片0之區塊0之頁0之資料位元組區DBR與備用位元組區SBR,且將邏輯頁位址0x0002寫入該暫時局部頁位址鏈結表0之第一個欄位,以藉此指出邏輯頁位址0x0002鏈結/映射至快閃晶片0之區塊0之頁0,其實體頁位址係為0x0000。依此類推。當區塊0中之全部資料頁已被寫入時,微處理器112可複製該暫時局部頁位址鏈結表0之最新版本,以建立局部頁位址鏈結表0。請注意,邏輯頁位址{0x0002, 0x0001, 0x0002, 0x0005, 0x0003, 0x0007, 0x0010, 0x0008, …, 0x0000, 0x0009, 0x0004}可作為該些邏輯位址之例子。依據某些實施例,該些邏輯位址可予以變化。
依據某些實施例,一局部頁位址鏈結表諸如局部頁位址鏈結表0中之邏輯頁位址的範圍可大於一區塊諸如區塊0中之頁數。
依據某些實施例,微處理器112可依據分別對應於多個區塊之多個局部頁位址鏈結表,於該隨機存取記憶體中建立一全域(global)頁位址鏈結表,來記錄/更新該些實體位址與該些邏輯位址之間的關係。
III. 錯誤更正
記憶體控制器110可於記憶裝置100中進行資料管理,以在較少或沒有副作用的狀況下解決相關技術的問題。例如:記憶體控制器110可提供一或多類型之錯誤更正機制予記憶裝置100。依據某些實施例,記憶體控制器110可採用低密度奇偶校驗碼(low-density parity-check (LDPC) code)來保護資料、及/或進行錯誤更正。
第3圖為依據本發明一實施例之一種用來於一記憶裝置中進行資料管理之方法300的流程圖,其中方法300可應用於記憶裝置100,且可應用於該控制器諸如記憶體控制器110。
於步驟310中,在該處理電路諸如微處理器112之控制下,記憶體控制器110可從記憶裝置100以外之主裝置200接收一組資料m
。例如:主裝置200可傳送一寫入指令予記憶裝置100,以要求記憶裝置100儲存寫入資料。依據該寫入指令,微處理器112可控制記憶體控制器110從主裝置200接收該些寫入資料,其中該些寫入資料包含至少一組資料(例如一或多組資料{m
}),而上述至少一組資料包含該組資料m
。
於步驟320中,記憶體控制器110(例如資料保護電路114DP)可依據一預定奇偶校驗矩陣(parity-check matrix)H
之一第一子矩陣H1
對該組資料m
進行編碼,以產生部分奇偶校驗碼(partial parity-check code)ppc
。例如:資料保護電路114DP可依據第一子矩陣H1
對該至少一組資料進行編碼,以產生至少一個部分奇偶校驗碼(例如一或多個部分奇偶校驗碼{ppc
}),其中上述至少一個部分奇偶校驗碼包含部分奇偶校驗碼ppc
。
於步驟330中,記憶體控制器110(例如資料保護電路114DP)可依據一預定後處理矩陣J
對部分奇偶校驗碼ppc
進行後處理,以產生該組資料m
之奇偶校驗碼(parity-check code)p
,其中預定後處理矩陣J
不等於預定奇偶校驗矩陣H
之一第二子矩陣H2
之轉置矩陣(transpose matrix)(H2
)T
之任何反矩陣(inverse matrix)((H2
)T
)-1
(若上述任何反矩陣((H2
)T
)-1
存在)。例如:當反矩陣((H2
)T
)-1
存在時,則預定後處理矩陣J
不等於((H2
)T
)-1
;或者,當反矩陣((H2
)T
)-1
不存在時,則預定後處理矩陣J
也不會是轉置矩陣(H2
)T
之任何衍生物。例如:資料保護電路114DP可依據預定後處理矩陣J
對該至少一個部分奇偶校驗碼進行該後處理,以產生該至少一組資料之至少一個奇偶校驗碼(例如一或多個奇偶校驗碼{p
}),其中上述至少一個奇偶校驗碼包含奇偶校驗碼p
。
於步驟340中,在該處理電路諸如微處理器112之控制下,記憶體控制器110可將該組資料m
之一碼字(codeword)c
寫入該非揮發性記憶體(諸如快閃記憶體120),以容許記憶裝置100於從該非揮發性記憶體讀取該組資料m
時進行錯誤更正,其中碼字c
包含該組資料m
與奇偶校驗碼p
。例如:微處理器112可控制記憶體控制器110將該些寫入資料之至少一碼字(例如一或多個碼字{c
})寫入該非揮發性記憶體,以容許記憶裝置100於從該非揮發性記憶體讀取該些寫入資料時進行錯誤更正,其中上述至少一碼字包含上述至少一組資料與上述至少一個奇偶校驗碼。
依據某些實施例,碼字c
等於該組資料與一預定編碼轉換矩陣G
之相乘結果(multiplication result);亦即,m
·G
=c
。基於一種用來進行資料保護之一第一方法,該控制器諸如記憶體控制器110(例如資料保護電路114DP)可對該組資料m
與預定編碼轉換矩陣G
進行一乘法運算(諸如m
·G
)以產生碼字c
,且可對該組資料m
與預定編碼轉換矩陣G
之子矩陣D
進行一乘法運算(諸如m
·D
)以產生該奇偶校驗碼p
。例如:G
= [I
|D
],其中I
係為一對應的單位矩陣(identity matrix)。依據某些實施例,基於一種用來進行資料保護之一第二方法,該控制器諸如記憶體控制器110(例如:資料保護電路114DP)可依據下列式子進行計算以產生奇偶校驗碼p
:p
=m
·(H1
)T
((H2
)T
)-1
。
請注意,步驟320中之預定奇偶校驗矩陣H
並非預定編碼轉換矩陣G
,且步驟330中之預定後處理矩陣J
並非預定編碼轉換矩陣G
。基於第3圖所示之方法300,資料保護電路114DP於產生部分奇偶校驗碼ppc
之過程中採用了預定奇偶校驗矩陣H
之第一子矩陣H1
(而非預定編碼轉換矩陣G
),且於產生奇偶校驗碼p
之過程中採用了預定後處理矩陣J
(而非預定編碼轉換矩陣G
)。於第3圖所示之實施例中,藉由依據預定後處理矩陣J
對部分奇偶校驗碼ppc
進行該後處理,而非藉由對該組資料m
與預定編碼轉換矩陣G
進行任一乘法運算,記憶體控制器110(例如資料保護電路114DP)產生該奇偶校驗碼p
。於某些實施例中,預定編碼轉換矩陣G
與預定奇偶校驗矩陣H
互為零空間(null space)。例如:該組資料m
可包含k個位元且可記為一維矩陣(m
)1 x k
,碼字c
可包含n個位元且可記為一維矩陣(c
)1 x n
,且奇偶校驗碼p
可包含(n - k)個位元且可記為一維矩陣(p
)1 x (n - k)
,其中k與n為正整數且n > k。另外,預定編碼轉換矩陣G
可記為二維矩陣(G
)k x n
,且預定奇偶校驗矩陣H
可記為二維矩陣(H
)(n - k) x n
。此外,預定編碼轉換矩陣G
之任一列(row)與預定奇偶校驗矩陣H
之任一列(row)的內積(inner product)等於零;為了簡明起見,可記為G
·H T
= 0。於某些實施例中,該組資料m
、碼字c
與奇偶校驗碼p
可分別記為一維矩陣(m
)1 x k
、一維矩陣(c
)1 x n
與一維矩陣(p
)1 x (n - k)
,且預定奇偶校驗矩陣H
可記為二維矩陣(H
)(n - k) x n
。另外,碼字c
與預定奇偶校驗矩陣H
之任一列的內積等於零;為了簡明起見,可記為c
·H T
= 0。依據某些實施例,第二子矩陣H2
可為一非滿秩(non-full rank)矩陣,其中第二子矩陣H2
之轉置矩陣(H2
)T
之反矩陣((H2
)T
)-1
不存在。
相較於該第一方法與該第二方法,第3圖所示之方法300可增進資料保護電路114DP之各種效能,諸如編碼效能。
第4圖繪示一實施例中之相關矩陣的大小。當符號「k」與「n」分別代表該組資料m
的位元數與碼字c
的位元數時,奇偶校驗碼p
的位元數等於碼字c
的位元數n減掉該組資料m
的位元數k所得之差值(n - k),且預定奇偶校驗矩陣H
的大小等於此差值(n - k)與碼字c
的位元數n之乘積((n - k) * n)。另外,第一子矩陣H1
的大小等於差值(n - k)與該組資料m
的位元數k之乘積((n - k) * k),且第二子矩陣H2
的大小等於差值(n - k)之平方值((n - k) * (n - k))。
依據某些實施例,在該處理電路諸如微處理器112之控制下,記憶體控制器110可從該非揮發性記憶體(諸如快閃記憶體120)讀取碼字c
,以產生碼字c
之讀出資料。記憶體控制器110(例如資料保護電路114DP)可依據預定奇偶校驗矩陣H
判斷該些讀出資料是否正確。例如:資料保護電路114DP可包含一唯讀記憶體,以供儲存預定奇偶校驗矩陣H
。又例如:預定奇偶校驗矩陣H
可儲存於唯讀記憶體112M或其它記憶體。當判斷該些讀出資料為正確時,記憶體控制器110(例如該處理電路諸如微處理器112)可控制記憶裝置100輸出該些讀出資料所載(carry)之該組資料m
;否則,資料保護電路114DP可依據該些讀出資料進行錯誤更正,以重獲(recover)該組資料m
。例如:因應來自主裝置200之一讀取指令,微處理器112可控制記憶裝置100輸出該組資料m
(諸如該些讀出資料所載之該組資料m
、或透過錯誤更正所重獲之該組資料m
)。
第5圖為依據本發明一實施例之一編碼電路500,其中編碼電路500可設置於第1圖所示之資料保護電路114DP中。編碼電路500可包含一第一子矩陣產生器(可簡稱為「H1
產生器」)510、一乘法電路512與一後處理電路520。例如:第一子矩陣產生器510可包含一唯讀記憶體,而此唯讀記憶體儲存有第一子矩陣H1
。第一子矩陣產生器510可依照一預定順序輸出第一子矩陣H1
之元素(element)至乘法電路512。另外,乘法電路512可接收該組資料m
與第一子矩陣H1
,且可進行一乘法運算(諸如m
·(H1
)T
)以產生部分奇偶校驗碼ppc
。例如:ppc
=m
·(H1
)T
。此外,後處理電路520可依據預定後處理矩陣J
對部分奇偶校驗碼ppc
進行該後處理以產生奇偶校驗碼p
。例如:該後處理可包含一乘法運算(諸如ppc
·J
)以及後續運算;為了簡明起見,該後處理可記為f(ppc
·J
),其中符號f( )可代表該後續運算。依據某些實施例,第5圖所示之架構可予以變化。
依據某些實施例,第1圖所示之架構與第3圖所示之方法300可予以變化。例如:該後處理可包含隨機化(randomize)運作、類似容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)之資料保護運作與任何線性轉換,其中後處理電路520可包含相關子電路諸如隨機化電路(randomizer circuit)…等。另外,解碼所需之架構亦可對應地變化。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯電路
114DP‧‧‧資料保護電路
116‧‧‧緩衝記憶體
118‧‧‧傳輸介面電路
120‧‧‧快閃記憶體
200‧‧‧主裝置
300‧‧‧用來於記憶裝置中進行資料管理之方法
310‧‧‧從主裝置接收資料之步驟
320‧‧‧進行編碼以產生部分奇偶校驗碼之步驟
330‧‧‧進行後處理以產生奇偶校驗碼之步驟
340‧‧‧將碼字寫入非揮發性記憶體之步驟
500‧‧‧編碼電路
510‧‧‧第一子矩陣產生器
512‧‧‧乘法電路
520‧‧‧後處理電路
c‧‧‧碼字
G‧‧‧預定編碼轉換矩陣
H‧‧‧預定奇偶校驗矩陣
m‧‧‧一組資料
p‧‧‧奇偶校驗碼
ppc‧‧‧部分奇偶校驗碼
(c)1 x n, (m)1 x k, (p)1 x (n - k)‧‧‧一維矩陣
(G)k x n, (H)(n - k) x n‧‧‧二維矩陣
第1圖為依據本發明一第一實施例之一種記憶裝置與一主裝置(host device)的示意圖。 第2A圖繪示一快閃晶片(Flash chip)的一區塊當中之一局部頁位址鏈結表(local page address linking table)。 第2B圖比較第2A圖所示之局部頁位址鏈結表的一維陣列示例與二維陣列示例。 第3圖為依據本發明一實施例之一種用來於一記憶裝置中進行資料管理之方法的流程圖。 第4圖繪示一實施例中之相關矩陣的大小。 第5圖為依據本發明一實施例之一編碼電路。
Claims (20)
- 一種用來於一記憶裝置中進行資料管理之方法,該記憶裝置包含一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體晶片,該方法包含有: 從該記憶裝置以外之一主裝置(host device)接收一組資料; 依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣,對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code); 依據一預定後處理矩陣,對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix);以及 將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
- 如申請專利範圍第1項所述之方法,其中該主裝置傳送一寫入指令予該記憶裝置,以要求該記憶裝置儲存寫入資料;以及該方法包含: 依據該寫入指令,從該主裝置接收該些寫入資料,其中該些寫入資料包含至少一組資料,而該至少一組資料包含該組資料; 依據該第一子矩陣對該至少一組資料進行編碼,以產生至少一個部分奇偶校驗碼,其中該至少一個部分奇偶校驗碼包含該部分奇偶校驗碼; 依據該預定後處理矩陣對該至少一個部分奇偶校驗碼進行該後處理,以產生該至少一組資料之至少一個奇偶校驗碼,其中該至少一個奇偶校驗碼包含該奇偶校驗碼;以及 將該些寫入資料之至少一碼字寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該些寫入資料時進行錯誤更正,其中該至少一碼字包含該至少一組資料與該至少一個奇偶校驗碼。
- 如申請專利範圍第1項所述之方法,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定奇偶校驗矩陣並非該預定編碼轉換矩陣。
- 如申請專利範圍第1項所述之方法,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定後處理矩陣並非該預定編碼轉換矩陣。
- 如申請專利範圍第4項所述之方法,其另包含: 藉由依據該預定後處理矩陣對該部分奇偶校驗碼進行該後處理,而非藉由對該組資料與該預定編碼轉換矩陣進行一乘法運算,產生該奇偶校驗碼。
- 如申請專利範圍第1項所述之方法,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定編碼轉換矩陣之任一列(row)與該預定奇偶校驗矩陣之任一列的內積(inner product)等於零。
- 如申請專利範圍第1項所述之方法,其中該碼字與該預定奇偶校驗矩陣之任一列(row)的內積(inner product)等於零。
- 如申請專利範圍第1項所述之方法,其另包含: 從該非揮發性記憶體讀取該碼字,以產生該碼字之讀出資料; 依據該預定奇偶校驗矩陣,判斷該些讀出資料是否正確;以及 當判斷該些讀出資料為正確時,控制該記憶裝置輸出該些讀出資料所載(carry)之該組資料,否則,依據該些讀出資料進行錯誤更正,以重獲(recover)該組資料。
- 如申請專利範圍第1項所述之方法,其中該第二子矩陣係一非滿秩(non-full rank)矩陣,且該第二子矩陣之該轉置矩陣之該反矩陣不存在。
- 如申請專利範圍第1項所述之方法,其中該奇偶校驗碼的位元數等於該碼字的位元數減掉該組資料的位元數所得之差值,且該預定奇偶校驗矩陣的大小等於該差值與該碼字的位元數之乘積。
- 如申請專利範圍第10項所述之方法,其中當符號「k」與「n」分別代表該組資料的位元數與該碼字的位元數時,該奇偶校驗碼的位元數等於 (n - k),且該預定奇偶校驗矩陣的大小等於 ((n - k) * n),其中k與n為正整數且n > k。
- 如申請專利範圍第10項所述之方法,其中該第一子矩陣的大小等於該差值與該組資料的位元數之乘積,且該第二子矩陣的大小等於該差值之平方值。
- 如申請專利範圍第12項所述之方法,其中當符號「k」與「n」分別代表該組資料的位元數與該碼字的位元數時,該奇偶校驗碼的位元數等於 (n - k),且該預定奇偶校驗矩陣的大小等於 ((n - k) * n),其中k與n為正整數且n > k;以及該第一子矩陣的大小等於 ((n - k) * k),且該第二子矩陣的大小等於 ((n - k) * (n - k))。
- 一種記憶裝置,包含有: 一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體晶片;以及 一控制器,耦接至該非揮發性記憶體,用來於該記憶裝置中進行資料管理,其中: 該控制器從該記憶裝置以外之一主裝置(host device)接收一組資料; 該控制器依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code); 該控制器依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix);以及 該控制器將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
- 如申請專利範圍第14項所述之記憶裝置,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定奇偶校驗矩陣並非該預定編碼轉換矩陣。
- 如申請專利範圍第14項所述之記憶裝置,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定後處理矩陣並非該預定編碼轉換矩陣。
- 如申請專利範圍第16項所述之記憶裝置,其中,藉由依據該預定後處理矩陣對該部分奇偶校驗碼進行該後處理,而非藉由對該組資料與該預定編碼轉換矩陣進行一乘法運算,該控制器產生該奇偶校驗碼。
- 一種記憶裝置之控制器,該記憶裝置包含該控制器與一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體晶片,該控制器包含有: 一處理電路,用來控制該控制器從該記憶裝置以外之一主裝置(host device)接收一組資料;以及 一資料保護電路,耦接至該處理電路,用來進行錯誤更正,其中: 該資料保護電路依據一預定奇偶校驗矩陣(parity-check matrix)之一第一子矩陣對該組資料進行編碼,以產生部分奇偶校驗碼(partial parity-check code);以及 該資料保護電路依據一預定後處理矩陣對該部分奇偶校驗碼進行後處理,以產生該組資料之奇偶校驗碼(parity-check code),其中該預定後處理矩陣不等於該預定奇偶校驗矩陣之一第二子矩陣之轉置矩陣(transpose matrix)之任何反矩陣(inverse matrix); 其中該處理電路控制該控制器將該組資料之一碼字(codeword)寫入該非揮發性記憶體,以容許該記憶裝置於從該非揮發性記憶體讀取該組資料時進行錯誤更正,其中該碼字包含該組資料與該奇偶校驗碼。
- 如申請專利範圍第18項所述之控制器,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定奇偶校驗矩陣並非該預定編碼轉換矩陣。
- 如申請專利範圍第18項所述之控制器,其中該碼字等於該組資料與一預定編碼轉換矩陣之相乘結果(multiplication result);以及該預定後處理矩陣並非該預定編碼轉換矩陣。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106100011A TWI602188B (zh) | 2017-01-03 | 2017-01-03 | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 |
CN201710440209.3A CN108268337B (zh) | 2017-01-03 | 2017-06-12 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
CN202110757783.8A CN113485867A (zh) | 2017-01-03 | 2017-06-12 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
US15/654,735 US20180189136A1 (en) | 2017-01-03 | 2017-07-20 | Method for performing data management in memory device, associated memory device and controller thereof |
US16/431,679 US10860422B2 (en) | 2017-01-03 | 2019-06-04 | Method for performing data management in memory device, associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106100011A TWI602188B (zh) | 2017-01-03 | 2017-01-03 | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI602188B TWI602188B (zh) | 2017-10-11 |
TW201826285A true TW201826285A (zh) | 2018-07-16 |
Family
ID=61011194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106100011A TWI602188B (zh) | 2017-01-03 | 2017-01-03 | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20180189136A1 (zh) |
CN (2) | CN108268337B (zh) |
TW (1) | TWI602188B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884642B2 (en) | 2019-03-27 | 2021-01-05 | Silicon Motion, Inc. | Method and apparatus for performing data-accessing management in a storage server |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221910B2 (en) * | 2018-07-24 | 2022-01-11 | Micron Technology, Inc. | Media scrubber in memory system |
CN110990175B (zh) * | 2018-10-03 | 2023-03-14 | 慧荣科技股份有限公司 | 错误处置方法以及数据存储装置及其控制器 |
US11354231B2 (en) * | 2019-05-30 | 2022-06-07 | Silicon Motion, Inc. | Method for performing access management of memory device with aid of information arrangement, associated memory device and controller thereof, associated electronic device |
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 |
US10944429B1 (en) * | 2020-01-02 | 2021-03-09 | Silicon Motion, Inc. | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
JP2022165669A (ja) * | 2021-04-20 | 2022-11-01 | 株式会社日立製作所 | 異常検出装置、異常検出方法、および異常検出プログラム |
CN117097559B (zh) * | 2023-10-17 | 2023-12-19 | 天津德科智控股份有限公司 | Eps转向角度报文传输验证方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
JP4545793B2 (ja) * | 2004-08-10 | 2010-09-15 | サムスン エレクトロニクス カンパニー リミテッド | ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法 |
US8196025B2 (en) * | 2005-08-03 | 2012-06-05 | Qualcomm Incorporated | Turbo LDPC decoding |
US8271850B2 (en) * | 2005-12-29 | 2012-09-18 | Intel Corporation | Fast low-density parity-check code encoder |
CA2674719A1 (en) * | 2007-01-24 | 2008-07-31 | Qualcomm Incorporated | Ldpc encoding and decoding of packets of variable sizes |
JP5203717B2 (ja) * | 2007-12-19 | 2013-06-05 | パナソニック株式会社 | 符号器、復号器、符号化方法、及び、復号方法 |
US20100332942A1 (en) * | 2008-09-10 | 2010-12-30 | Arm Limited | Memory controller for NAND memory using forward error correction |
US8301979B2 (en) | 2008-10-07 | 2012-10-30 | Sandisk Il Ltd. | Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders |
JP4929342B2 (ja) | 2009-12-15 | 2012-05-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ノイズ分散による入力対数尤度比のスケーリングに基づくsum−product復号法(ビリーフプロパゲーション法)の計算手法 |
TWI419481B (zh) * | 2009-12-31 | 2013-12-11 | Nat Univ Tsing Hua | 低密度奇偶檢查碼編解碼器及其方法 |
TW201508759A (zh) * | 2010-04-19 | 2015-03-01 | Silicon Motion Inc | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 |
CN102236585B (zh) * | 2010-04-20 | 2015-06-03 | 慧荣科技股份有限公司 | 提升错误更正能力的方法以及相关的记忆装置及其控制器 |
US9251058B2 (en) | 2010-09-28 | 2016-02-02 | SanDisk Technologies, Inc. | Servicing non-block storage requests |
US8788922B2 (en) * | 2011-02-28 | 2014-07-22 | Apple Inc | Error correction codes for incremental redundancy |
JP5269936B2 (ja) * | 2011-03-17 | 2013-08-21 | 株式会社東芝 | 符号化器及び記憶装置 |
US8924814B2 (en) | 2012-08-28 | 2014-12-30 | Seagate Technology Llc | Write management using partial parity codes |
KR102068030B1 (ko) * | 2012-12-11 | 2020-01-20 | 삼성전자 주식회사 | 메모리 컨트롤러 및 그 동작방법 |
US9448877B2 (en) * | 2013-03-15 | 2016-09-20 | Cisco Technology, Inc. | Methods and apparatus for error detection and correction in data storage systems using hash value comparisons |
US9048874B2 (en) * | 2013-03-15 | 2015-06-02 | Lsi Corporation | Min-sum based hybrid non-binary low density parity check decoder |
CN105340022B (zh) * | 2013-06-24 | 2019-11-12 | 美光科技公司 | 用于校正数据错误的电路、设备及方法 |
US9213599B2 (en) | 2013-09-18 | 2015-12-15 | Seagate Technology Llc | Method of erase state handling in flash channel tracking |
US9213600B2 (en) | 2013-11-11 | 2015-12-15 | Seagate Technology Llc | Dynamic per-decoder control of log likelihood ratio and decoding parameters |
TWI536749B (zh) * | 2013-12-09 | 2016-06-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 |
US9262268B2 (en) | 2013-12-20 | 2016-02-16 | Seagate Technology Llc | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
TWI530959B (zh) * | 2014-06-17 | 2016-04-21 | 慧榮科技股份有限公司 | 用來控制一記憶裝置之方法以及記憶裝置與控制器 |
US9553611B2 (en) * | 2014-11-27 | 2017-01-24 | Apple Inc. | Error correction coding with high-degree overlap among component codes |
US10027350B2 (en) * | 2015-02-24 | 2018-07-17 | Samsung Electronics Co., Ltd. | Transmitter and repetition method thereof |
US10382069B2 (en) * | 2015-08-11 | 2019-08-13 | Apple Inc. | Data encoding by efficient inversion of a parity-check sub-matrix |
US9853661B2 (en) * | 2015-12-08 | 2017-12-26 | Apple Inc. | On-the-fly evaluation of the number of errors corrected in iterative ECC decoding |
CN107370488A (zh) * | 2016-05-13 | 2017-11-21 | 中兴通讯股份有限公司 | 纠错编码方法及装置 |
US10289348B2 (en) * | 2016-12-30 | 2019-05-14 | Western Digital Technologies, Inc. | Tapered variable node memory |
KR102631407B1 (ko) * | 2018-10-24 | 2024-01-31 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
-
2017
- 2017-01-03 TW TW106100011A patent/TWI602188B/zh active
- 2017-06-12 CN CN201710440209.3A patent/CN108268337B/zh active Active
- 2017-06-12 CN CN202110757783.8A patent/CN113485867A/zh active Pending
- 2017-07-20 US US15/654,735 patent/US20180189136A1/en not_active Abandoned
-
2019
- 2019-06-04 US US16/431,679 patent/US10860422B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884642B2 (en) | 2019-03-27 | 2021-01-05 | Silicon Motion, Inc. | Method and apparatus for performing data-accessing management in a storage server |
TWI728634B (zh) * | 2019-03-27 | 2021-05-21 | 慧榮科技股份有限公司 | 在儲存伺服器中進行資料存取管理的方法與裝置 |
US11256435B2 (en) | 2019-03-27 | 2022-02-22 | Silicon Motion, Inc. | Method and apparatus for performing data-accessing management in a storage server |
Also Published As
Publication number | Publication date |
---|---|
TWI602188B (zh) | 2017-10-11 |
CN113485867A (zh) | 2021-10-08 |
CN108268337A (zh) | 2018-07-10 |
US20190286520A1 (en) | 2019-09-19 |
US10860422B2 (en) | 2020-12-08 |
CN108268337B (zh) | 2021-07-27 |
US20180189136A1 (en) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI602188B (zh) | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 | |
CN107797882B (zh) | 存储器系统及其操作方法 | |
CN108447523B (zh) | 用来控制一记忆装置的方法以及记忆装置与控制器 | |
CN107957959B (zh) | 具有文件级安全擦除的存储器系统及其操作方法 | |
US11676679B2 (en) | Two-layer code with low parity cost for memory sub-systems | |
US11294589B2 (en) | Method for performing access control in a memory device, associated memory device and controller thereof | |
US11243838B2 (en) | Methods and apparatuses for error correction | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
US20160103734A1 (en) | Data Storage Device and Data Maintenance Method Thereof | |
KR20180010447A (ko) | 컨트롤러, 반도체 메모리 시스템 및 그의 동작 방법 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
TWI698742B (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
TWI651730B (zh) | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 | |
TWI740499B (zh) | 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 | |
US10223198B2 (en) | Error rate reduction | |
CN112711377B (zh) | 分布式存储系统的存储节点及其操作方法 | |
CN112687323B (zh) | 具有用于解码的错误减少方案的存储器系统及其操作方法 | |
US11356123B2 (en) | Memory system with low-complexity decoding and method of operating such memory system | |
US10141072B2 (en) | Efficient encoder based on modified RU algorithm | |
CN112017725B (zh) | 超前处理的数据保护的非挥发性存储器存取方法和设备 |