TWI474329B - 提昇錯誤更正能力之方法以及記憶裝置及控制器 - Google Patents

提昇錯誤更正能力之方法以及記憶裝置及控制器 Download PDF

Info

Publication number
TWI474329B
TWI474329B TW99139166A TW99139166A TWI474329B TW I474329 B TWI474329 B TW I474329B TW 99139166 A TW99139166 A TW 99139166A TW 99139166 A TW99139166 A TW 99139166A TW I474329 B TWI474329 B TW I474329B
Authority
TW
Taiwan
Prior art keywords
error correction
data
encoded
portions
controller
Prior art date
Application number
TW99139166A
Other languages
English (en)
Other versions
TW201220318A (en
Inventor
Tsung Chieh Yang
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to TW99139166A priority Critical patent/TWI474329B/zh
Priority to US13/162,561 priority patent/US8762814B2/en
Publication of TW201220318A publication Critical patent/TW201220318A/zh
Application granted granted Critical
Publication of TWI474329B publication Critical patent/TWI474329B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/155Shortening or extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding

Landscapes

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

Description

提昇錯誤更正能力之方法以及記憶裝置及控制器
本發明係有關於快閃記憶體(Flash Memory)控制晶片之錯誤更正,尤指一種不需要增加錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)之一基礎錯誤更正位元數就能提昇一記憶裝置的控制器之錯誤更正能力之方法以及相關之記憶裝置及其控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或具備快閃記憶體之固態硬碟(Solid State Drive,SSD)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄兩組(或以上)位元資訊(例如:00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。針對這諸多問題,雖然相關技術中提供了一些解決方式,卻總是無法兼顧運作效能與系統資源使用控管。於是,不論採取哪個解決方式,往往會有對應的副作用。
尤其是,依據相關技術所實現的錯誤更正通常並未用完快閃記憶體的所有的儲存空間,其中剩餘的儲存空間不能用來儲存資料,實在相當浪費。請注意,相關技術中未能用完快閃記憶體的所有的儲存空間之典型原因是,一旦增加錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)之基礎錯誤更正位元數,錯誤更正碼引擎的成本會大幅地增加;例如,針對1024位元組資料(可簡稱為1K資料)將基礎錯誤更正位元數由24位元提昇至36位元,會造成錯誤更正碼引擎的晶片面積大增,約增加為1.5倍。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以兼顧運作效能與系統資源使用控管。
因此本發明之目的之一在於提供一種提昇錯誤更正能力之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種提昇錯誤更正能力之方法以及相關之記憶裝置及其控制器,以妥善利用上述剩餘的儲存空間。
本發明之較佳實施例中提供一種提昇錯誤更正能力之方法,該方法係應用於一記憶裝置的控制器,該方法不需要增加一基礎錯誤更正位元數就能提昇該控制器的錯誤更正能力,該方法包含有:依據一錯誤更正倍率,分別取得資料中欲進行編/解碼之複數個部分,其中該複數個部分係為欲進行編/解碼之部分資料(Partial Data);以及針對該資料中欲進行編/解碼之該複數個部分,分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其錯誤更正能力在不需要增加一基礎錯誤更正位元數的狀況下就能提昇,該記憶裝置包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊。該控制器之錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)係藉由利用該控制器中之微處理器及/或控制邏輯來實施,以及該控制器依據一錯誤更正倍率,分別取得資料中欲進行編/解碼之複數個部分,而該複數個部分係為欲進行編/解碼之部分資料。另外,針對該資料中欲進行編/解碼之該複數個部分,該錯誤更正碼引擎分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,其錯誤更正能力在不需要增加一基礎錯誤更正位元數的狀況下就能提昇,該控制器係用來存取該記憶裝置中之一快閃記憶體,該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊。該控制器之錯誤更正碼引擎係藉由利用該控制器中之控制邏輯及/或執行該程式碼之該微處理器來實施,以及該控制器依據一錯誤更正倍率,分別取得資料中欲進行編/解碼之複數個部分,而該複數個部分係為欲進行編/解碼之部分資料。另外,針對該資料中欲進行編/解碼之該複數個部分,該錯誤更正碼引擎分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
本發明之較佳實施例中亦提供一種提昇錯誤更正能力之方法,該方法係應用於一記憶裝置的控制器,該方法包含有:將一筆資料規劃為複數筆部分資料;以及利用一錯誤更正碼引擎對該複數筆部分資料進行編碼以分別產生對應於該複數筆資料之複數個奇偶校驗碼;其中該筆資料之長度係依據該記憶裝置之最小錯誤更正單位而定。尤其是,該複數筆部分資料係彼此重疊。
請參考第1A圖,第1A圖為依據本發明一第一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或固態硬碟(SSD,Solid State Drive)等。記憶裝置100包含有:一快閃記憶體(Flash Memory)120;以及一控制器,用來存取(Access)快閃記憶體120,其中該控制器例如一記憶體控制器110,並且記憶裝置100(尤其是指該控制器諸如記憶體控制器110)的錯誤更正能力在不需要增加該控制器中之錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)之一基礎錯誤更正位元數的狀況下就能提昇。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、至少一緩衝記憶體116、與一介面邏輯118。唯讀記憶體係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。另外,本實施例之控制邏輯114包含至少一編/解碼組合電路1142。
於典型狀況下,快閃記憶體120包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體120進行抹除資料之運作係以區塊為單位來進行抹除。另外,一區塊可記錄特定數量的頁(Page),其中該控制器對快閃記憶體120進行寫入資料之運作係以頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
依據本實施例,記憶裝置100係為一種不需要增加錯誤更正碼引擎之一基礎錯誤更正位元數就能提昇錯誤更正能力之記憶裝置。實作上,上述之錯誤更正碼引擎可藉由利用控制邏輯114中之編/解碼組合電路1142來實施。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,上述之錯誤更正碼引擎可藉由利用控制邏輯114及/或執行程式碼112C之微處理器112來實施。例如:該錯誤更正碼引擎係為控制邏輯114的一部分,且由控制邏輯114中之邏輯電路所構成。又例如:程式碼112C包含某些程式模組/單元,且該錯誤更正碼引擎藉由利用執行該些程式模組/單元之微處理器112來實施。又例如:該錯誤更正碼引擎係藉由利用控制邏輯114及執行程式碼112C之微處理器112來實施,其中程式碼112C包含某些程式模組/單元,且該錯誤更正碼引擎的一部分係藉由利用執行該些程式模組/單元之微處理器112來實施,而該錯誤更正碼引擎的另一部分係由控制邏輯114中之邏輯電路所構成。
於本實施例中,上述之控制器可依據一錯誤更正倍率,分別取得資料DM 中欲進行編/解碼之複數個部分,其中該複數個部分係為欲進行編/解碼之部分資料(Partial Data),而下標M可為正整數。廣義而言,資料DM 可代表原始資料,或代表欲進行編/解碼之部分資料所構成的集合。例如:在M=1的狀況下,資料DM 就是原始資料D1 (1)。又例如:在M>1的狀況下,資料DM 就是部分資料DM (m)所構成的集合,其中m可代表1到M之正整數。如此,在M>1的狀況下,上述之控制器可依據該錯誤更正倍率,分別取得資料DM 中欲進行編/解碼之M個部分,其中該M個部分係為欲進行編/解碼之部分資料DM (m)諸如部分資料DM (1)、DM (2)、...、與DM (M);亦即,該M個部分包含部分資料DM (1)、DM (2)、...、與DM (M)。另外,針對資料DM 中欲進行編/解碼之該M個部分諸如部分資料DM (1)、DM (2)、...、與DM (M),上述之錯誤更正碼引擎分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
第1B圖為依據本發明一實施例之一種編碼器114E及其可存取之複數個緩衝器B(1)、B(2)、...、與B(M-1)的示意圖,其中編碼器114E係為上述之錯誤更正碼引擎之一部分。例如:該些緩衝器B(1)、B(2)、...、與B(M-1)可分別為緩衝記憶體116中之複數個緩衝區域。又例如:上述之至少一緩衝記憶體116包含複數個緩衝記憶體,可分別用來實施該些緩衝器B(1)、B(2)、...、與B(M-1)。
如第1B圖所示,編碼器114E包含至少一奇偶校驗碼(Parity Code)計算模組210與一多工器220。在此,該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)的數量M等於該錯誤更正倍率。於該控制器進行編碼之狀況下,上述之編/解碼資料係為編碼資料,而奇偶校驗碼計算模組210可針對該些部分,分別產生(或計算)M個奇偶校驗碼(Parity Code)PM (1)、PM (2)、...、與PM (M),且多工器220則依據上述之錯誤更正碼引擎之控制訊號C1多工選擇資料位元或奇偶校驗碼PM (m),以供進一步利用。如此,奇偶校驗碼PM (1)、PM (2)、...、與PM (M)的數量M等於該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)的數量,且該編碼資料包含該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)以及奇偶校驗碼PM (1)、PM (2)、...、與PM (M)。依據本實施例,每一奇偶校驗碼的位元數可等於上述之基礎錯誤更正位元數。
實作上,藉由利用該些緩衝器B(1)、B(2)、...、與B(M-1),編碼器114E可暫時地儲存對應於前(M-1)個部分諸如部分資料DM (1)、DM (2)、...、與DM (M-1)之奇偶校驗碼PM (1)、PM (2)、...、與PM (M-1)。另外,編碼器114E可將資料DM (其包含部分資料DM (1)、DM (2)、...、與DM (M))寫入快閃記憶體120,並於對應於第M個部分諸如部分資料DM (M)之奇偶校驗碼PM (M)產生時,將全部的奇偶校驗碼PM (1)、PM (2)、...、與PM (M)循序地附加於資料DM 之後,使奇偶校驗碼PM (1)、PM (2)、...、與PM (M)一併被寫入快閃記憶體120。
請注意,依據線性區塊碼(Linear Block Code)的相關原理當中有關變形線性碼(Modified Linear Code)之縮短(Shortening)的定義,一個(n,k)碼可以變成一個(n-1,k-1)碼,其中針對(n,k)碼而言,k係資料DM 在編碼前的原始長度,而n係指對資料DM 進行編碼後(例如依BCH之編碼方式)所產生之編碼字長度(即包含資料DM 及其奇偶校驗碼PM 之總長度)。另外,基於此定義之延伸,一個(n,k)碼可以變成一個(n-s,k-s)碼,請注意到,對於(n,k)碼與(n-s,k-s)碼,兩組編碼字中之奇偶校驗碼PM 之總長度相同(均為n-k),這代表兩組編碼字的錯誤控制能力(例如錯誤更正位元數)仍然相同。舉例來說,當一筆1024位元組(Byte)的資料依照一特定之編碼方式編碼,而產生出1066位元組的編碼字,該編碼字中資料長度為1024位元組,而奇偶校驗碼的長度為42位元組,該42位元組的奇偶校驗碼可對該筆1024位元組的資料提供24位元的錯誤更正能力。而另一筆512位元組的資料依照上述之特定編碼方式編碼,可產生出554位元組的編碼字,該編碼字中資料長度為512位元組,而奇偶校驗碼的長度為42位元組,該42位元組的奇偶校驗碼仍可對該筆512位元組的資料提供24位元的錯誤更正能力。因此,若將一筆1024位元組的資料切割為兩筆512位元組的資料再利用相同之編碼方式編碼,則可獲得分別具有24位元的錯誤更正能力的兩組編碼字,相對地,依相同編碼方式對1024位元組的資料進行編碼僅能得到一組具有24位元錯誤更正能力的編碼字。總的來說,將資料切割再進行編碼,將獲得相當於兩倍的錯誤更正能力。
第1C圖繪示第1B圖所示之奇偶校驗碼計算模組210於一實施例中之實施細節。在此,奇偶校驗碼計算模組210具有:至少N個暫存器G(1)、G(2)、...、與G(N)(均簡稱為“G”),分別用來暫存資訊;至少N個調整單元g(1)、g(2)、...、與g(N)(均簡稱為“g”),分別用來依據各自的輸入參數調整其所在路徑的資訊;至少N個算術(Arithmetic)單元A(1)、A(2)、...、與A(N)(均標示為“+”),分別用來進行減法或加法運算;以及至少3個切換單元W(1)、W(2)、與W(3)(均簡稱為“W”),分別用來切換計算路徑或輸入/輸出路徑。各個元件當中凡有輸入標示為“-”者(例如算術單元A(1)與A(2)以及切換單元W(3)),表示該輸入需改變正負號。
第1D圖為依據本發明一實施例之一種解碼器114D及其可存取之複數個緩衝器B(1)、B(2)、...、與B(M)的示意圖,其中解碼器114D係為上述之錯誤更正碼引擎之一部分。例如:該些緩衝器B(1)、B(2)、...、與B(M)可分別為緩衝記憶體116中之複數個緩衝區域。又例如:上述之至少一緩衝記憶體116包含複數個緩衝記憶體,可分別用來實施該些緩衝器B(1)、B(2)、...、與B(M)。
如第1D圖所示,解碼器114D包含一偵測器230、一多工器240、與一更正器250,其中偵測器230包含M個症狀計算(Syndrome Computation)單元230-1、230-2、...、與230-M,而更正器250包含一鎖鑰方程式求解器(Key Equation Solver)252與一秦式搜尋(Chien Search)單元254,且秦式搜尋單元254中設置有錯誤位置儲存器254S。於該控制器進行解碼之狀況下,上述之編/解碼資料係為解碼資料。解碼器114D從快閃記憶體120所讀取的資料DM 之M個部分諸如部分資料DM (1)、DM (2)、...、與DM (M)可分別暫時地儲存於緩衝器B(1)、B(2)、...、與B(M),以便在有需要時進行錯誤更正。針對緩衝器B(1)、B(2)、...、與B(M)中之該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M),症狀計算單元230-1、230-2、...、230-M分別依據對應於該些部分之複數個奇偶校驗碼,諸如上述之M個奇偶校驗碼PM (1)、PM (2)、...、與PM (M),進行錯誤更正之症狀計算,而多工器240則可依據上述之錯誤更正碼引擎之控制訊號C2多工選擇該些症狀計算之計算結果SD(1)、SD(2)、...、與SD(M)中之任一者,以供進一步利用。另外,更正器250針對該些部分,分別依據該些症狀計算之計算結果進行錯誤更正。尤其是,鎖鑰方程式求解器252可依據計算結果SD(1)、SD(2)、...、與SD(M)求解鎖鑰方程式,而秦式搜尋單元254則可進行秦式搜尋以找出資料DM 之錯誤位置(若錯誤存在),並將錯誤位置儲存於錯誤位置儲存器254S。於是,更正器250可依據儲存於錯誤位置儲存器254S之錯誤位置,對緩衝器B(1)、B(2)、...、與B(M)中之該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)進行錯誤更正。
依據本實施例之一變化例,偵測器230可藉由利用編碼器114E之至少一部分來實施。例如:該控制器可利用編碼器114E針對緩衝器B(1)、B(2)、...、與B(M)中之該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)進行相關計算諸如奇偶校驗碼計算,來核對對應於該些部分之M個奇偶校驗碼PM (1)、PM (2)、...、與PM (M)是否有誤及/或找出資料DM 之錯誤位置(若錯誤存在)。於是,更正器250可依據於本變化例所找出之錯誤位置,對緩衝器B(1)、B(2)、...、與B(M)中之該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)進行錯誤更正。本變化例與前述各個實施例/變化例相仿之處不再重複贅述。
請注意,由於資料DM 之中發生錯誤的位置是隨機的,故在需要時,使用奇偶校驗碼PM (1)、PM (2)、...、與PM (M)的錯誤更正效果通常可以達到使用奇偶校驗碼PM (1)、PM (2)、...、與PM (M)中之任一者的錯誤更正效果之M倍。例如:若針對1024位元組資料(以下簡稱1K資料)之基礎錯誤更正位元數為24位元,則在M=1的狀況下,針對資料DM 諸如原始資料D1 (1)僅僅產生1個奇偶校驗碼P1 (1),使用奇偶校驗碼P1 (1)的錯誤更正效果可達每1K資料24位元。在M>1的狀況下,資料DM 被切割為複數個部分,並針對部分資料DM (1)、DM (2)、...、與DM (M)產生了M個奇偶校驗碼PM (1)、PM (2)、...、與PM (M),各個奇偶校驗碼PM (1)、PM (2)、...、與PM (M)對於各個部分資料DM (1)、DM (2)、...、與DM (M)分別具有24位元的錯誤更正能力。整體來說,使用奇偶校驗碼PM (1)、PM (2)、...、與PM (M)對資料DM 進行保護時,錯誤更正效果可達每1K資料/(24*M)位元。因此,本發明在不需要大幅增加奇偶校驗碼計算模組210的硬體複雜度就能大幅提昇該控制器的錯誤更正能力,如此一來,即可避免相關技術中錯誤更正碼引擎的晶片面積大增之問題。
第2圖為依據本發明一實施例之一種提昇錯誤更正能力之方法910的流程圖。該方法可應用於在第1A圖至第1D圖所示之各個實施例及相關的變化例中之任一者當中之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110),其中該方法不需要增加錯誤更正碼引擎之一基礎錯誤更正位元數就能提昇該控制器的錯誤更正能力。另外,該方法可藉由利用在第1A圖至第1D圖所示之各個實施例及相關的變化例中之任一者當中之記憶裝置100來實施,尤其是藉由利用上述之控制器來實施。該方法說明如下:
於步驟912中,上述之控制器依據該錯誤更正倍率,分別取得資料DM 中欲進行編/解碼之複數個部分諸如上述之M個部分,其中該M個部分係為欲進行編/解碼之部分資料DM (m)諸如部分資料DM (1)、DM (2)、...、與DM (M)。尤其是,該些部分的數量M等於該錯誤更正倍率。另外,該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)的資料量彼此相等,且該些部分可彼此不重疊。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,該些部分諸如部分資料DM (1)、DM (2)、...、與DM (M)的資料量可以不必全部相等。依據本實施例之某些的變化例,該些部分中之至少兩者可彼此重疊。請注意到,資料DM 之長度得依快閃記憶體120的最小錯誤更正保護單位(亦可簡稱為最小錯誤更正單位)而定。例如某廠商規範其所提供之某型號之快閃記憶體之最小錯誤更正保護單位為1024位元組,且規範快閃記憶體控制器最少需對該最小錯誤更正保護單位提供24位元的錯誤保護;此狀況下,該資料DM 之長度則可定為1024位元組。
於步驟914中,針對資料DM 中欲進行編/解碼之該M個部分諸如部分資料DM (1)、DM (2)、...、與DM (M),上述之錯誤更正碼引擎分別進行對應於該錯誤更正倍率(例如:錯誤更正倍率M)之編/解碼,以產生對應於上述之預定錯誤更正位元數諸如預定錯誤更正位元數ECBP 之編/解碼資料。尤其是,預定錯誤更正位元數ECBP 對上述之基礎錯誤更正位元數諸如基礎錯誤更正位元數ECBB 之比例等於錯誤更正倍率M,而此關係可表示如下:
ECBP /ECBB =M。
例如:上述之錯誤更正碼引擎之基礎錯誤更正位元數ECBB 的可能值包含集合{24,28,36,40,48,60},這表示在不同的真實模式MRE (24)、MRE (28)、MRE (36)、MRE (40)、MRE (48)、或MRE (60)下,針對1K資料之基礎錯誤更正位元數可分別為24位元、28位元、36位元、40位元、48位元、或60位元。
依據本實施例,預定錯誤更正位元數ECBP 的可能值包含集合{(24*M),(28*M),(36*M),(40*M),(48*M),(60*M)},這表示在分別對應於錯誤更正倍率M之不同的虛擬模式MPS (24,M)、MPS (28,M)、MPS (36,M)、MPS (40,M)、MPS (48,M)、或MPS (60,M)下,針對1K資料之預定錯誤更正位元數可依序分別為(24*M)位元、(28*M)位元、(36*M)位元、(40*M)位元、(48*M)位元、或(60*M)位元。尤其是,本實施例之錯誤更正倍率M係為可調。例如:在M=2的狀況下,預定錯誤更正位元數ECBP 的可能值包含集合{48,56,72,80,96,120},這表示在不同的虛擬模式MPS (24,2)、MPS (28,2)、MPS (36,2)、MPS (40,2)、MPS (48,2)、或MPS (60,2)下,針對1K資料之預定錯誤更正位元數可分別為48位元、56位元、72位元、80位元、96位元、或120位元。又例如:在M=4的狀況下,預定錯誤更正位元數ECBP 的可能值包含集合{96,112,144,160,192,240},這表示在不同的虛擬模式MPS (24,4)、MPS (28,4)、MPS (36,4)、MPS (40,4)、MPS (48,4)、或MPS (60,4)下,針對1K資料之預定錯誤更正位元數可分別為96位元、112位元、144位元、160位元、192位元、或240位元。
如此,藉由利用第2圖所示之方法,在第1A圖至第1D圖所示之各個實施例及相關的變化例中之任一者當中之記憶裝置100(尤其是上述之控制器及其內之錯誤更正碼引擎)可支援複數組虛擬模式MPS (24,M)、MPS (28,M)、MPS (36,M)、MPS (40,M)、MPS (48,M)、與MPS (60,M),諸如本實施例中之第一組虛擬模式MPS (24,2)、MPS (28,2)、MPS (36,2)、MPS (40,2)、MPS (48,2)、與MPS (60,2)以及第二組虛擬模式MPS (24,4)、MPS (28,4)、MPS (36,4)、MPS (40,4)、MPS (48,4)、或MPS (60,4)。另外,藉由利用記憶體控制器110所提供的各組虛擬模式,本發明就可以妥善利用上述剩餘的儲存空間,甚至將上述剩餘的儲存空間用盡。
第3A圖至第3C圖繪示第2圖所示之方法於不同的實施例中之實施細節。第3A圖繪示對應於一真實模式(例如:真實模式MRE (24)、MRE (28)、MRE (36)、MRE (40)、MRE (48)、與MRE (60)中之任一者)之原始資料D1 (1)以及相關的奇偶校驗碼P1 (1)之寫入順序。另外,第3B圖繪示對應於一虛擬模式(例如:虛擬模式MPS (24,2)、MPS (28,2)、MPS (36,2)、MPS (40,2)、MPS (48,2)、與MPS (60,2)中之任一者)之部分資料D2 (1)與D2 (2)以及相關的奇偶校驗碼P2 (1)與P2 (2)之寫入順序。請一併參照第1B、1C、3A圖。當記憶體控制器110欲產生示於第3B圖之部分資料D2 (1)與D2 (2)以及相關的奇偶校驗碼P2 (1)與P2 (2)時,微處理器112將緩衝記憶體116中的原始資料D1 (1)輸入錯誤更正碼引擎中的編碼器114E。在微處理器112的指示下,編碼器114E先利用控制訊號C1切換多工器220使部分資料D2 (1)輸出至快閃記憶體120。此時,部分資料D2 (1)亦循序輸入奇偶校驗碼計算模組210,待部分資料D2 (1)全部輸入奇偶校驗碼計算模組210時,微處理器112指示奇偶校驗碼計算模組210將N個暫存器G(1)、G(2)、...、與G(N)中所存的數值儲存至緩衝器B(1),該些數值即為對應於部分資料D2 (1)的奇偶校驗碼P2 (1)。之後,奇偶校驗碼計算模組210重置(reset)N個暫存器G(1)、G(2)、...、與G(N)中所存的數值,再循序接收部分資料D2 (2),對部分資料D2 (2)進行奇偶校驗碼計算,而微處理器112亦指示編碼器114E切換多工器220使部分資料D2 (2)輸出至快閃記憶體120。待部分資料D2 (2)全部輸入奇偶校驗碼計算模組210時,微處理器112指示奇偶校驗碼計算模組210將N個暫存器G(1)、G(2)、...、與G(N)中所存的數值儲存至緩衝器B(2),該些數值即為對應於部分資料D2 (2)的奇偶校驗碼P2 (2)。待部分資料D1 (2)、D2 (2)均自編碼器114E輸出,而奇偶校驗碼P2 (1)、P2 (2)亦計算完成,則微處理器112指示編碼器114E切換多工器220,將奇偶校驗碼P2 (1)、P2 (2)輸出至快閃記憶體120。則可完成如第3B圖所示之部分資料D2 (1)與D2 (2)以及相關的奇偶校驗碼P2 (1)與P2 (2)。請注意到,微處理器112得就上述運作為直接指示,亦得指示錯誤更正碼引擎就特定之編碼模式(例如第一組虛擬模式MPS (24,2)、MPS (28,2)等模式)進行編碼,而由錯誤更正碼引擎直接指示各相關模組,完成該特定之編碼模式,以減輕微處理器之負擔。
此外,第3C圖繪示對應於另一虛擬模式(例如:虛擬模式MPS (24,4)、MPS (28,4)、MPS (36,4)、MPS (40,4)、MPS (48,4)、與MPS (60,4)中之任一者)之部分資料D4 (1)、D4 (2)、D4 (3)、與D4 (4)以及相關的奇偶校驗碼P4 (1)、P4 (2)、P4 (3)、與P4 (4)之寫入順序。為了簡明起見,這些實施例中與前述各個實施例/變化例相仿之處不再重複贅述。
第4圖繪示第2圖所示之方法於一實施例中之實施細節,其中本實施例係為第3B圖所示實施例之變化例。上述之編碼器114E先將部分資料D2 (1)與相關的奇偶校驗碼P2 (1)寫入快閃記憶體120,在將部分資料D2 (2)與相關的奇偶校驗碼P2 (2)寫入快閃記憶體120。另外,解碼器114D可配合上述之寫入順序來進行解碼,其中本實施例之控制器於進行解碼時可以節省一些緩衝儲存空間。本實施例與前述各個實施例/變化例相仿之處不再重複贅述。
第5圖繪示第2圖所示之方法於另一實施例中之實施細節,其中本實施例係為第3B圖或第3C圖所示實施例之變化例。第5圖繪示對應於另一虛擬模式(例如:虛擬模式MPS (24,3)、MPS (28,3)、MPS (36,3)、MPS (40,3)、MPS (48,3)、與MPS (60,3)中之任一者)之部分資料D3 (1)、D3 (2)、與D3 (3)以及相關的奇偶校驗碼P3 (1)、P3 (2)、與P3 (3)之寫入順序。本實施例與前述各個實施例/變化例相仿之處不再重複贅述。
本發明的好處之一是,依據本發明所實現的錯誤更正可妥善利用上述剩餘的儲存空間,不會造成浪費。相較於相關技術,本發明不需要增加錯誤更正碼引擎之基礎錯誤更正位元數、不需要大幅增加錯誤更正碼引擎之複雜度就能提昇記憶裝置的控制器之錯誤更正能力。因此,本發明在不大幅地增加晶片面積及相關成本的狀況下就能達到兼顧運作效能與系統資源使用控管之目標。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
1142...編/解碼組合電路
114D...解碼器
114E...編碼器
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
210...奇偶校驗碼計算模組
220,240...多工器
230...偵測器
230-1,230-2,...,230-M...症狀計算單元
250...更正器
252...鎖鑰方程式求解器
254...秦式搜尋單元
254S...錯誤位置儲存器
910...提昇錯誤更正能力之方法
912,914...步驟
A(1),A(2),...,A(N)...算術單元
B(1),B(2),...,B(M-1),B(M)...緩衝器
C1,C2...控制訊號
D1 (1),D2 (1),D2 (2),D3 (1),D3 (2),D3 (3),D4 (1),D4 (2),D4 (3),D4 (4)...資料
G(1),G(2),...,G(N)...暫存器
g(1),g(2),...,g(N)...調整單元
PM (m),P1 (1),P2 (1),P2 (2),P3 (1),P3 (2),P3 (3),P4 (1),P4 (2),P4 (3),P4 (4)...奇偶校驗碼
SD(1),SD(2),...,SD(M)...計算結果
W(1),W(2),W(3)...切換單元
第1A圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第1B圖為依據本發明一實施例之一種編碼器及其可存取之複數個緩衝器的示意圖。
第1C圖繪示第1B圖所示之奇偶校驗碼(Parity Code)計算模組於一實施例中之實施細節。
第1D圖為依據本發明一實施例之一種解碼器及其可存取之複數個緩衝器的示意圖。
第2圖為依據本發明一實施例之一種提昇錯誤更正能力之方法的流程圖。
第3A圖至第3C圖繪示第2圖所示之方法於不同的實施例中之實施細節。
第4圖繪示第2圖所示之方法於一實施例中之實施細節。
第5圖繪示第2圖所示之方法於另一實施例中之實施細節。
910...提昇錯誤更正能力之方法
912,914...步驟

Claims (23)

  1. 一種提昇錯誤更正能力之方法,該方法係應用於一記憶裝置的控制器,該方法不需要增加一基礎錯誤更正位元數就能提昇該控制器的錯誤更正能力,該方法包含有:依據一錯誤更正倍率,分別取得資料中欲進行編/解碼之複數個部分,其中該複數個部分係為欲進行編/解碼之部分資料(Partial Data);以及針對該資料中欲進行編/解碼之該複數個部分,分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
  2. 如申請專利範圍第1項所述之方法,其中該些部分的數量等於該錯誤更正倍率。
  3. 如申請專利範圍第2項所述之方法,其中於進行編碼之狀況下,該編/解碼資料係為編碼資料,以及針對該資料中欲進行編/解碼之該複數個部分分別進行對應於該錯誤更正倍率之編/解碼以產生對應於該預定錯誤更正位元數之編/解碼資料之步驟另包含有:針對該些部分,分別產生複數個奇偶校驗碼(Parity Code),其中該些奇偶校驗碼的數量等於該些部分的數量,且該編碼資料包含該些部分以及該些奇偶校驗碼。
  4. 如申請專利範圍第3項所述之方法,其中每一奇偶校驗碼的位元數等於該基礎錯誤更正位元數。
  5. 如申請專利範圍第2項所述之方法,其中於進行解碼之狀況下,該編/解碼資料係為解碼資料,以及針對該資料中欲進行編/解碼之該複數個部分分別進行對應於該錯誤更正倍率之編/解碼以產生對應於該預定錯誤更正位元數之編/解碼資料之步驟另包含有:針對該些部分,分別依據附加於該些部分之複數個奇偶校驗碼(Parity Code)進行錯誤更正,其中該些奇偶校驗碼的數量等於該些部分的數量。
  6. 如申請專利範圍第1項所述之方法,其中該些部分的資料量彼此相等。
  7. 如申請專利範圍第1項所述之方法,其中該些部分彼此不重疊。
  8. 一種記憶裝置,其錯誤更正能力在不需要增加一基礎錯誤更正位元數的狀況下就能提昇,該記憶裝置包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數 個區塊,其中該控制器之錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)係藉由利用該控制器中之微處理器及/或控制邏輯來實施,以及該控制器依據一錯誤更正倍率,分別取得資料中欲進行編/解碼之複數個部分,而該複數個部分係為欲進行編/解碼之部分資料(Partial Data);其中針對該資料中欲進行編/解碼之該複數個部分,該錯誤更正碼引擎分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
  9. 如申請專利範圍第8項所述之記憶裝置,其中該些部分的數量等於該錯誤更正倍率。
  10. 如申請專利範圍第9項所述之記憶裝置,其中於進行編碼之狀況下,該編/解碼資料係為編碼資料,以及該錯誤更正碼引擎包含有:一奇偶校驗碼(Parity Code)計算模組,用來針對該些部分,分別產生複數個奇偶校驗碼(Parity Code),其中該些奇偶校驗碼的數量等於該些部分的數量,且該編碼資料包含該些部分以及該些奇偶校驗碼。
  11. 如申請專利範圍第10項所述之記憶裝置,其中每一奇偶校驗碼的位元數等於該基礎錯誤更正位元數。
  12. 如申請專利範圍第9項所述之記憶裝置,其中於進行解碼之狀況下,該編/解碼資料係為解碼資料,以及該錯誤更正碼引擎包含有:複數個症狀計算(Syndrome Computation)單元,用來針對該些部分,分別依據附加於該些部分之複數個奇偶校驗碼(Parity Code)進行錯誤更正之症狀計算,其中該些奇偶校驗碼的數量等於該些部分的數量。
  13. 如申請專利範圍第12項所述之記憶裝置,其中於進行解碼之狀況下,該錯誤更正碼引擎另包含有:一更正器,用來針對該些部分,分別依據該些症狀計算之計算結果進行錯誤更正。
  14. 如申請專利範圍第8項所述之記憶裝置,其中該些部分的資料量彼此相等。
  15. 如申請專利範圍第8項所述之記憶裝置,其中該些部分彼此不重疊。
  16. 一種記憶裝置之控制器,其錯誤更正能力在不需要增加一基礎 錯誤更正位元數的狀況下就能提昇,該控制器係用來存取(Access)該記憶裝置中之一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;其中該控制器之錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)係藉由利用該控制器中之控制邏輯及/或執行該程式碼之該微處理器來實施,以及該控制器依據一錯誤更正倍率,分別取得資料中欲進行編/解碼之複數個部分,而該複數個部分係為欲進行編/解碼之部分資料(Partial Data);以及針對該資料中欲進行編/解碼之該複數個部分,該錯誤更正碼引擎分別進行對應於該錯誤更正倍率之編/解碼,以產生對應於一預定錯誤更正位元數之編/解碼資料,其中該預定錯誤更正位元數對該基礎錯誤更正位元數之比例等於該錯誤更正倍率。
  17. 如申請專利範圍第16項所述之控制器,其中該些部分的數量等於該錯誤更正倍率。
  18. 如申請專利範圍第17項所述之控制器,其中於進行編碼之狀況下,該編/解碼資料係為編碼資料,以及該錯誤更正碼引擎包含有: 一奇偶校驗碼(Parity Code)計算模組,用來針對該些部分,分別產生複數個奇偶校驗碼(Parity Code),其中該些奇偶校驗碼的數量等於該些部分的數量,且該編碼資料包含該些部分以及該些奇偶校驗碼。
  19. 如申請專利範圍第18項所述之控制器,其中每一奇偶校驗碼的位元數等於該基礎錯誤更正位元數。
  20. 如申請專利範圍第17項所述之控制器,其中於進行解碼之狀況下,該編/解碼資料係為解碼資料,以及該錯誤更正碼引擎包含有:複數個症狀計算(Syndrome Computation)單元,用來針對該些部分,分別依據附加於該些部分之複數個奇偶校驗碼(Parity Code)進行錯誤更正之症狀計算,其中該些奇偶校驗碼的數量等於該些部分的數量。
  21. 如申請專利範圍第20項所述之控制器,其中於進行解碼之狀況下,該錯誤更正碼引擎另包含有:一更正器,用來針對該些部分,分別依據該些症狀計算之計算結果進行錯誤更正。
  22. 如申請專利範圍第16項所述之控制器,其中該些部分的資料量彼此相等。
  23. 如申請專利範圍第16項所述之控制器,其中該些部分彼此不重疊。
TW99139166A 2010-11-15 2010-11-15 提昇錯誤更正能力之方法以及記憶裝置及控制器 TWI474329B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW99139166A TWI474329B (zh) 2010-11-15 2010-11-15 提昇錯誤更正能力之方法以及記憶裝置及控制器
US13/162,561 US8762814B2 (en) 2010-11-15 2011-06-16 Method for enhancing error correction capability, and associated memory device and controller thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW99139166A TWI474329B (zh) 2010-11-15 2010-11-15 提昇錯誤更正能力之方法以及記憶裝置及控制器

Publications (2)

Publication Number Publication Date
TW201220318A TW201220318A (en) 2012-05-16
TWI474329B true TWI474329B (zh) 2015-02-21

Family

ID=46048953

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99139166A TWI474329B (zh) 2010-11-15 2010-11-15 提昇錯誤更正能力之方法以及記憶裝置及控制器

Country Status (2)

Country Link
US (1) US8762814B2 (zh)
TW (1) TWI474329B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI817616B (zh) * 2022-07-19 2023-10-01 旺宏電子股份有限公司 記憶體裝置、錯誤糾正裝置及其錯誤糾正方法
US11949429B2 (en) 2022-07-19 2024-04-02 Macronix International Co., Ltd. Memory device, error correction device and error correction method thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197985B (zh) * 2011-11-08 2018-07-13 索尼公司 存储控制装置
US8959414B2 (en) * 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
CN104346234B (zh) * 2013-08-09 2017-09-26 华为技术有限公司 一种内存访问的方法、设备及系统
US9135113B2 (en) * 2013-10-08 2015-09-15 Apple Inc. Recovery from programming failure in non-volatile memory
US10410738B2 (en) * 2016-03-15 2019-09-10 Toshiba Memory Corporation Memory system and control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089031A1 (en) * 2005-09-30 2007-04-19 Intel Corporation Methods and arrangements to remap degraded storage blocks
US20080195900A1 (en) * 2007-02-12 2008-08-14 Phison Electronics Corp. Flash memory system and method for controlling the same
US20080282106A1 (en) * 2007-05-12 2008-11-13 Anobit Technologies Ltd Data storage with incremental redundancy
US20090144598A1 (en) * 2007-11-30 2009-06-04 Tony Yoon Error correcting code predication system and method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US20080140724A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US8429497B2 (en) * 2009-08-26 2013-04-23 Skymedi Corporation Method and system of dynamic data storage for error correction in a memory device
US20110072333A1 (en) * 2009-09-24 2011-03-24 Innostor Technology Corporation Control method for flash memory based on variable length ecc
US8892980B2 (en) * 2010-06-15 2014-11-18 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089031A1 (en) * 2005-09-30 2007-04-19 Intel Corporation Methods and arrangements to remap degraded storage blocks
US20080195900A1 (en) * 2007-02-12 2008-08-14 Phison Electronics Corp. Flash memory system and method for controlling the same
US20080282106A1 (en) * 2007-05-12 2008-11-13 Anobit Technologies Ltd Data storage with incremental redundancy
US20090144598A1 (en) * 2007-11-30 2009-06-04 Tony Yoon Error correcting code predication system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI817616B (zh) * 2022-07-19 2023-10-01 旺宏電子股份有限公司 記憶體裝置、錯誤糾正裝置及其錯誤糾正方法
US11949429B2 (en) 2022-07-19 2024-04-02 Macronix International Co., Ltd. Memory device, error correction device and error correction method thereof

Also Published As

Publication number Publication date
US20120124450A1 (en) 2012-05-17
TW201220318A (en) 2012-05-16
US8762814B2 (en) 2014-06-24

Similar Documents

Publication Publication Date Title
TWI474329B (zh) 提昇錯誤更正能力之方法以及記憶裝置及控制器
US8473815B2 (en) Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data
JP4856110B2 (ja) チェンサーチ装置およびチェンサーチ方法
KR101027202B1 (ko) 작은 데이터 구조의 ecc 보호 장치, 방법 및 시스템
US20190252035A1 (en) Decoding method, memory storage device and memory control circuit unit
TWI455136B (zh) 用來進行資料整形之方法以及相關之記憶裝置及其控制器
TWI527048B (zh) 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
US8560916B2 (en) Method for enhancing error correction capability of a controller of a memory device without increasing an error correction code engine encoding/decoding bit count, and associated memory device and controller thereof
TWI438777B (zh) 一種快閃記憶體控制器之資料傳輸保護裝置
US9136875B2 (en) Decoding method, memory storage device and rewritable non-volatile memory module
JP2010237822A (ja) メモリコントローラおよび半導体記憶装置
TWI441181B (zh) 用來進行資料整形之方法以及其記憶裝置及控制器
JP2012137994A (ja) メモリシステムおよびその制御方法
US20170154656A1 (en) Data programming method and memory storage device
KR20100124087A (ko) 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법
TW202019100A (zh) 快閃記憶體控制器及其中的編碼電路與解碼電路
CN111869111B (zh) 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字
US10872667B2 (en) Decoding method, memory controlling circuit unit and memory storage device
WO2018022269A1 (en) Apparatuses and methods for interleaved bch codes
US11709733B2 (en) Metadata-assisted encoding and decoding for a memory sub-system
JP2015135676A (ja) 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置