TWI521528B - 記憶體儲存裝置、其記憶體控制器與資料處理方法 - Google Patents

記憶體儲存裝置、其記憶體控制器與資料處理方法 Download PDF

Info

Publication number
TWI521528B
TWI521528B TW101128618A TW101128618A TWI521528B TW I521528 B TWI521528 B TW I521528B TW 101128618 A TW101128618 A TW 101128618A TW 101128618 A TW101128618 A TW 101128618A TW I521528 B TWI521528 B TW I521528B
Authority
TW
Taiwan
Prior art keywords
data
correction code
error
error check
original
Prior art date
Application number
TW101128618A
Other languages
English (en)
Other versions
TW201407628A (zh
Inventor
梁立群
王天慶
賴國欣
Original Assignee
群聯電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW101128618A priority Critical patent/TWI521528B/zh
Priority to US13/662,541 priority patent/US9223648B2/en
Publication of TW201407628A publication Critical patent/TW201407628A/zh
Application granted granted Critical
Publication of TWI521528B publication Critical patent/TWI521528B/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
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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/1044Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2778Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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/1515Reed-Solomon 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

記憶體儲存裝置、其記憶體控制器與資料處理方法
本發明是有關於一種資料處理方法,且特別是有關於一種對資料之錯誤檢查與校正碼進行處理的方法與使用此方法的記憶體儲存裝置及其記憶體控制器。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以可複寫式非揮發性記憶體作為儲存媒體的儲存裝置。由於可複寫式非揮發性記憶體體積小容量大,所以已廣泛用於個人重要資料的儲存。因此,近年可複寫式非揮發性記憶體產業成為電子產業中相當熱門的一環。
由於儲存在可複寫式非揮發性記憶體的資料可能會因各種因素(例如,記憶體胞的漏電、程式化失敗、損毀等)而產生錯誤位元,因此,在記憶體儲存系統中一般會配置錯誤檢查與校正電路並為所儲存之資料產生錯誤檢查與校正碼以確保資料的正確性。當資料中的錯誤位元數目超過錯誤檢查與校正電路所能偵測與校正的錯誤位元數時,含有錯誤位元的資料就無法被校正,而導致資料遺失。
然而,在讀取資料時若因讀取訊號受到干擾而發生資料位移(shift)的情況,某些錯誤檢查與校正機制無法有效地偵測出不能被校正的錯誤位元,因而會產生不正確的偵測結果。因此,如何更精確地檢查出錯誤位元便是此領域技術人員所致力的目標。
有鑑於此,本發明提供一種資料處理方法、記憶體控制器與記憶體儲存裝置,能在進行錯誤檢查與校正程序時有效地偵測出無法校正的錯誤位元。
本發明提出一種資料處理方法,用於可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組具有多個實體程式化單元,且各實體程式化單元包括資料位元區與錯誤校正碼位元區。此方法包括接收第一資料,並對第一資料進行錯誤校正編碼程序以產生對應第一資料的原始錯誤檢查與校正碼。此方法還包括依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,其中第二錯誤檢查與校正碼不同於原始錯誤檢查與校正碼。此方法更包括將第一資料與第二錯誤檢查與校正碼分別寫入上述實體程式化單元中相同或相異之實體程式化單元的資料位元區與錯誤校正碼位元區。
在本發明之一範例實施例中,其中第一資料是對來自主機系統的原始寫入資料依據第一資料重整規則轉換而得,其中第一資料不同於原始寫入資料,且第一資料重整 規則不同於第二資料重整規則。
在本發明之一範例實施例中,其中依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的步驟包括將原始錯誤檢查與校正碼劃分為數個子資料,其中各子資料分別具有i個位元,且i為正整數。在所有子資料中,以至少兩個子資料為一組並將屬於同組之子資料相互對調(swap),以產生第二錯誤檢查與校正碼。
在本發明之一範例實施例中,其中依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的步驟包括將原始錯誤檢查與校正碼劃分為數個子資料,其中各子資料分別具有j個位元,且j為大於1的正整數。針對各子資料,將子資料所具有之j個位元中的資料相互對調,以產生第二錯誤檢查與校正碼。
在本發明之一範例實施例中,其中依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的步驟包括將原始錯誤檢查與校正碼向一特定方向迴旋(rotate)k個位元以產生第二錯誤檢查與校正碼,其中k為正整數。
在本發明之一範例實施例中,此資料處理方法更包括當主機系統欲讀取原始寫入資料時,分別自相同或相異之實體程式化單元的資料位元區與錯誤校正碼位元區讀出第一資料與第二錯誤檢查與校正碼。根據第二資料重整規則將第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼。依據原始錯誤檢查與校正碼對第一資料執行對應錯誤 校正編碼程序的錯誤校正解碼程序,以識別第一資料是否存在無法校正的錯誤位元。
從另一觀點來看,本發明提出一種記憶體控制器,以管理可複寫式非揮發性記憶體模組,此記憶體控制器包括主機系統介面、記憶體介面、錯誤檢查與校正電路、第二資料重整電路以及記憶體管理電路。其中,主機系統介面用以電連接主機系統。記憶體介面用以電連接可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組具有多個實體程式化單元,且各實體程式化單元包括資料位元區與錯誤校正碼位元區。錯誤檢查與校正電路用以執行相互對應的錯誤校正編碼程序與錯誤校正解碼程序。第二資料重整電路電連接錯誤檢查與校正電路。記憶體管理電路電連接至主機系統介面、記憶體介面、錯誤檢查與校正電路與第二資料重整電路。其中,錯誤檢查與校正電路對記憶體控制器所接收到的第一資料進行錯誤校正編碼程序以產生對應第一資料的原始錯誤檢查與校正碼。第二資料重整電路依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,其中第二錯誤檢查與校正碼不同於原始錯誤檢查與校正碼。記憶體管理電路將第一資料與第二錯誤檢查與校正碼分別寫入上述實體程式化單元中相同或相異之實體程式化單元的資料位元區與錯誤校正碼位元區。
在本發明之一範例實施例中,其中記憶體控制器更包括電連接至錯誤檢查與校正電路與記憶體管理電路的第一 資料重整電路。記憶體控制器在經由主機系統介面接獲來自主機系統的原始寫入資料時,第一資料重整電路依據第一資料重整規則將原始寫入資料轉換為第一資料,其中第一資料不同於原始寫入資料,且第一資料重整規則不同於第二資料重整規則。
在本發明之一範例實施例中,其中第二資料重整電路將原始錯誤檢查與校正碼劃分為數個子資料,並在所有的子資料中,以至少兩個子資料為一組並將屬於同組之子資料相互對調,以產生第二錯誤檢查與校正碼,其中各子資料分別具有i個位元,且i為正整數。
在本發明之一範例實施例中,其中第二資料重整電路將原始錯誤檢查與校正碼劃分為數個子資料,其中各子資料分別具有j個位元,且j為大於1的正整數。針對各子資料,第二資料重整電路將子資料所具有的j個位元中的資料相互對調,以產生該第二錯誤檢查與校正碼。
在本發明之一範例實施例中,其中第二資料重整電路將原始錯誤檢查與校正碼向一特定方向迴旋k個位元以產生第二錯誤檢查與校正碼,其中k為正整數。
在本發明之一範例實施例中,其中當主機系統欲讀取原始寫入資料時,記憶體管理電路分別自相同或相異之實體程式化單元的資料位元區與錯誤校正碼位元區讀出第一資料與第二錯誤檢查與校正碼。第二資料重整電路根據第二資料重整規則將第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼。錯誤檢查與校正電路依據原始錯誤檢查 與校正碼對第一資料執行錯誤校正解碼程序,以識別第一資料是否存在無法校正的錯誤位元。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括可複寫式非揮發性記憶體模組、連接器以及記憶體控制器。可複寫式非揮發性記憶體模組具有數個實體程式化單元,且各實體程式化單元包括資料位元區與錯誤校正碼位元區。連接器用以電連接主機系統。記憶體控制器電連接至可複寫式非揮發性記憶體模組與連接器,用以接收第一資料,並對第一資料進行錯誤校正編碼程序以產生對應第一資料的原始錯誤檢查與校正碼,依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,其中第二錯誤檢查與校正碼不同於原始錯誤檢查與校正碼,將第一資料與第二錯誤檢查與校正碼分別寫入所有實體程式化單元中的相同或相異之實體程式化單元的資料位元區與錯誤校正碼位元區。
在本發明之一範例實施例中,其中該記憶體控制器在經由連接器接獲來自主機系統的原始寫入資料時,依據第一資料重整規則將原始寫入資料轉換為第一資料,其中第一資料不同於原始寫入資料,且第一資料重整規則不同於第二資料重整規則。
在本發明之一範例實施例中,其中記憶體控制器將原始錯誤檢查與校正碼劃分為數個子資料,並在所有子資料中,以至少兩個子資料為一組並將屬於同組之子資料相互對調,以產生第二錯誤檢查與校正碼,其中各子資料分別 具有i個位元,且i為正整數。
在本發明之一範例實施例中,其中記憶體控制器將原始錯誤檢查與校正碼劃分為數個子資料,其中各子資料分別具有j個位元,且j為大於1的正整數。針對各子資料,記憶體控制器將子資料所具有的j個位元中的資料相互對調,以產生第二錯誤檢查與校正碼。
在本發明之一範例實施例中,其中記憶體控制器將原始錯誤檢查與校正碼向一特定方向迴旋k個位元以產生第二錯誤檢查與校正碼,其中k為正整數。
在本發明之一範例實施例中,其中當主機系統欲讀取原始寫入資料時,記憶體控制器分別自相同或相異的實體程式化單元的資料位元區與錯誤校正碼位元區讀出第一資料與第二錯誤檢查與校正碼,根據第二資料重整規則將第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼,依據原始錯誤檢查與校正碼對第一資料執行對應錯誤校正編碼程序的錯誤校正解碼程序,以識別第一資料是否存在無法校正的錯誤位元。
從又一觀點來看,本發明提出一種記憶體控制器,包括緩衝記憶體、錯誤校正編碼電路、第一資料重整電路、第二資料重整電路、錯誤校正解碼電路,以及控制單元。其中,錯誤校正編碼電路用以對第一資料進行錯誤校正編碼程序以產生對應第一資料的原始錯誤檢查與校正碼。第一資料重整電路電連接緩衝記憶體、錯誤校正編碼電路,與可複寫式非揮發性記憶體模組。第一資料重整電路用以 依據第一資料重整規則將來自緩衝記憶體的原始寫入資料轉換為第一資料,其中第一資料不同於原始寫入資料。第二資料重整電路電連接錯誤校正編碼電路與可複寫式非揮發性記憶體模組。第二資料重整電路用以依據第二資料重整規則將來自錯誤校正編碼電路的原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,並用以根據第二資料重整規則將來自可複寫式非揮發性記憶體模組的第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼,其中第二錯誤檢查與校正碼不同於原始錯誤檢查與校正碼,且第一資料重整規則不同於第二資料重整規則。錯誤校正解碼電路電連接第二資料重整電路與可複寫式非揮發性記憶體模組。錯誤校正解碼電路用以依據原始錯誤檢查與校正碼對來自可複寫式非揮發性記憶體模組的第一資料執行對應錯誤校正編碼程序的錯誤校正解碼程序,以識別第一資料是否存在無法校正的錯誤位元。控制單元則電連接至緩衝記憶體、錯誤校正編碼電路、第一資料重整電路、第二資料重整電路、錯誤校正解碼電路與可複寫式非揮發性記憶體模組。
基於上述,本發明在將資料寫入可複寫式非揮發性記憶體模組之前,除了將資料本身重整為不同的資料之外,亦會依照特定規則處理對應於經過重整之資料的錯誤檢查與校正碼,爾後才將以不同規則進行重整處理的資料及錯誤檢查與校正碼寫入可複寫式非揮發性記憶體模組。如此一來,在要讀出資料時便能利用經過重整處理的錯誤檢查 與校正碼來更正確且有效地識別資料中是否出現無法校正的錯誤位元。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據本發明一範例實施例所繪示之使用記憶體儲存裝置之主機系統的示意圖。
主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件電連接。藉由微處理器1102、隨機存取記憶體1104以及輸入/輸出 裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100,或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的記憶卡1214、隨身碟1212、或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是手機、數位相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,記憶體儲存裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接電連接於主機系統的基板上。
圖2A是繪示圖1A所示之記憶體儲存裝置100的方塊圖。請參照圖2A,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
連接器102電連接至記憶體控制器104,並且用以電連接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為序列先進附件(Serial Advanced Technology Attachment,SATA)介面。然而在其他範例實 施例中,連接器102的傳輸介面種類也可以是通用序列匯流排(Universal Serial Bus,USB)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、安全數位(Secure Digital,SD)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之資料處理方法來處理主機系統1000欲寫入可複寫式非揮發性記憶體模組106的資料,並依據處理結果在主機系統1000欲讀取該筆資料時進行錯誤位元的偵測。本範例實施例之資料處理方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體模組106電連接至記憶體控制器104。可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,但本發明不限於此,可複寫式非揮發性記憶體模組106也可 以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或任何具有相同特性的記憶體模組。進一步來說,可複寫式非揮發性記憶體模組106具有數個實體程式化單元210(0)~210(P),且如圖2B所示,每個實體程式化單元包括資料位元區230與錯誤校正碼位元區240。其中,資料位元區230用以儲存使用者的資料與系統管理資料(例如,位址對映關係等),而錯誤校正碼位元區240則用以儲存對應於資料的錯誤檢查與校正碼。在本範例實施例中,數個實體程式化單元構成一實體抹除單元。屬於同一個實體抹除單元的實體程式化單元可被獨立地寫入且被同時地抹除。也就是說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。在一範例實施例中,實體抹除單元為實體區塊,而實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、第一資料重整電路1042、記憶體管理電路1043、錯誤檢查與校正電路1044、記憶體介面1045,以及第二資料重整電路1046。
主機系統介面1041電連接至記憶體管理電路1043,並透過連接器102以電連接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資 料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為SATA介面,而在其他範例實施例中,主機系統介面1041也可以是USB介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100被運轉(power on)時,上述控制指令會被執行以將資料寫入可複寫式非揮發性記憶體模組106,或從可複寫式非揮發性記憶體模組106讀出資料。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以對可複寫式非揮發性記憶體模組106進行資料存取。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀 記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以以對可複寫式非揮發性記憶體模組106進行資料存取。
此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。舉例來說,記憶體管理電路1043包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是電連接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106中的實體抹除單元。記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中。記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料。記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除。而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
記憶體介面1045電連接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體模組106相電連接。據此,記憶體控制器104可對可複寫式非揮發性記憶體模組106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
第一資料重整電路1042、第二資料重整電路1046,以及錯誤檢查與校正電路1044分別電連接至記憶體管理電路1043。且錯誤檢查與校正電路1044分別電連接第一資料重整電路1042與第二資料重整電路1046。其中,第一資料重整電路1042用以依據第一資料重整規則將來自主機系統1000的寫入資料重整、編輯或打亂。錯誤檢查與校正電路1044用以執行相互對應的錯誤校正編碼程序與錯誤校正解碼程序以確保資料的正確性。而第二資料重整電路1046用以依據第二資料重整規則將錯誤檢查與校正電路1044所產生的錯誤檢查與校正碼重整、編輯或打亂。其中,第一資料重整電路1042、第二資料重整電路1046與錯誤檢查與校正電路1044的詳細運作方式將於後配合圖示再作說明。
在本發明之另一範例實施例中,記憶體控制器104還包括緩衝記憶體3004。緩衝記憶體3004可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體3004電連接至記憶體管理電路1043,用以暫存來自於主機系統1000的指令與資料,或暫存來自於可複寫式非揮發性記憶體模組106的資料。
在本發明又一範例實施例中,記憶體控制器104還包括電源管理電路3006。電源管理電路3006電連接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
圖4、5是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
在以下描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組106之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組106的實體抹除單元進行上述操作。
請參照圖4,本範例實施例之可複寫式非揮發性記憶體模組106包括實體抹除單元410(0)~410(N)。記憶體控制器104中的記憶體管理電路1043會將實體抹除單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體抹除單元數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體模組106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體抹除單元 是用以儲存來自於主機系統1000的資料。舉例來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以寫入新資料的實體抹除單元。換句話說,閒置區504的實體抹除單元為空或可使用的實體抹除單元(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。或者,當需要對一邏輯抹除單元執行資料合併程序時,記憶體管理電路1043會從閒置區504提取實體抹除單元並將資料寫入其中,以替換原先映射此邏輯抹除單元的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體模組106的製造商與型號、可複寫式非揮發性記憶體模組106的實體抹除單元數、每一實體抹除單元的實體程式化單元數等等。
邏輯上屬於取代區508的實體抹除單元是用以在資料區502、閒置區504或系統區506中的實體抹除單元損毀時,取代損壞的實體抹除單元。具體而言,在記憶體儲存裝置100運作期間,倘若取代區508中仍存有正常之實體抹除單元且資料區502的實體抹除單元損壞時,記憶體管理電路1043會從取代區508中提取正常的實體抹除單元來更換資料區502中損壞的實體抹除單元。倘若取代區508 中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體管理電路1043會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
也因此,在記憶體儲存裝置100的運作過程中,資料區502、閒置區504、系統區506與取代區508的實體抹除單元會動態地變動。例如,用以輪替儲存資料的實體抹除單元會變動地屬於資料區502或閒置區504。
請參照圖5,為了讓主機系統1000能對可複寫式非揮發性記憶體模組106進行存取,記憶體管理電路1043會配置數個邏輯抹除單元610(0)~610(L)以映射資料區502中的實體抹除單元410(0)~410(F-1)。其中,每一邏輯抹除單元包括多個邏輯程式化單元,而邏輯抹除單元610(0)~610(L)中的邏輯程式化單元會映射實體抹除單元410(0)~410(F-1)中的實體程式化單元。
詳言之,記憶體管理電路1043將所配置的邏輯抹除單元610(0)~610(L)提供給主機系統1000,並維護邏輯位址-實體位址映射表以記錄邏輯抹除單元610(0)~610(L)與實體抹除單元410(0)~410(F-1)的映射關係。因此,當主機系統1000欲存取一邏輯位址時,記憶體管理電路1043會確認此邏輯位址所對應的邏輯抹除單元與邏輯程式化單元,再透過邏輯位址-實體位址映射表找到其所映射的實體程式化單元來進行存取。
在本範例實施例中,為了確保資料的正確性以提升記憶體儲存裝置100的可靠度,當記憶體管理電路1043接收 到來自主機系統1000的寫入指令時,將先由第一資料重整電路1042、第二資料重整電路1046,以及錯誤檢查與校正電路1044對主機系統欲寫入的資料進行特別處理。爾後,記憶體管理電路1043再將經過處理的資料寫入可複寫式非揮發性記憶體模組106。而當主機系統1000欲讀取上述資料時,第二資料重整電路1046及錯誤檢查與校正電路1044會對資料的正確性進行檢測。若通過檢測,則記憶體管理電路1043會將第一資料重整電路1042所還原出的資料傳送至主機系統1000。
為了方便說明,以下將來自主機系統1000之寫入指令所對應的寫入資料稱為原始寫入資料。當記憶體管理電路1043接收到原始寫入資料時,第一資料重整電路1042依據第一資料重整規則將原始寫入資料轉換為第一資料。其中,第一資料重整規則例如是以隨機(random)方式或依一演算法來改變資料的序列。亦即,第一資料重整電路1042會隨機或有規則地調換原始寫入資料之每個位元中的資料的順序或樣式(pattern),進而產生第一資料,其中此第一資料因已經過第一資料重整電路1042之處理,故其會不同於原始寫入資料。
接著,錯誤檢查與校正電路1044對第一資料進行錯誤校正編碼程序,以產生對應第一資料的原始錯誤檢查與校正碼。在本範例實施例中,錯誤校正編碼程序例如是採用博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)演算法、低密度 同位檢查(Low-Density Parity-Check,LDPC)演算法,漢明(Hamming)演算法,或雷德-所羅門(Reed-Solomon)演算法,然而本發明並不以此為限。
爾後,第二資料重整電路1046依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,其中第二錯誤檢查與校正碼在經過轉換後將不同於原始錯誤檢查與校正碼。必須特別說明的是,第二資料重整規則不同於第一資料重整規則。也就是說,在本範例實施例中,來自主機系統1000的原始寫入資料及其對應的原始錯誤檢查與校正碼會分別被第一資料重整電路1042與第二資料重整電路1046以不同的規則打散為兩個獨立的散亂資料。值得一提的是,在本範例實施例中,第二資料重整電路1046僅用以重整錯誤檢查與校正碼,而不對與寫入資料相關的系統管理資料進行資料重整處理。在另一範例實施例中,第二資料重整電路1046亦對與寫入資料相關的系統管理資料進行資料重整處理。
以下將以數個範例實施例來說明第二資料重整電路1046產生第二錯誤檢查與校正碼的方式。
請參閱圖6A,在本範例實施例中假設原始錯誤檢查與校正碼包括2i個位元,其中i為正整數,且各位元中的資料是以B0-1~B0-i、B1-1~B1-i來表示。第二資料重整電路1046會依照一預設資料單位將原始錯誤檢查與校正碼劃分為數個子資料,其中預設資料單位的大小為i個位元。因此如圖6A所示,原始錯誤檢查與校正碼被劃分為兩個 子資料(即,子資料SD0與SD1)。在所有的子資料中,第二資料重整電路1046以兩個或兩個以上的子資料為一組,並將屬於同組的子資料相互對調,進而產生第二錯誤檢查與校正碼。如圖6A所示,第二資料重整電路1046會將子資料SD0與SD1相互對調以產生如圖6B所示之第二錯誤檢查與校正碼。而參照圖6A與圖6B可以發現,在本範例實施例中是以子資料作為對調的單位,子資料所包括之各個位元中的資料則維持原有的順序。例如,在第二資料重整電路1046進行處理前後,子資料SD0所包括之i個位元中的資料B0-1~B0-i均保持相同的順序(即,資料B0-1位於子資料SD0中的最左位元,而資料B0-i位於子資料SD0中的最右位元)。
以下將以圖7A至圖7D以及圖8A至圖8C這兩組範例實施例來更具體說明第二資料重整電路1046如何以子資料作為對調單位來產生第二錯誤檢查與校正碼。
請參照圖7A至圖7D,在本範例實施例中原始錯誤檢查與校正碼包括16個位元,且各位元中的資料以B0至B15來表示。假設預設資料單位是1個位元,則原始錯誤檢查與校正碼會被第二資料重整電路1046劃分為16個子資料(即,子資料SD0至SD15)。也就是說,每個位元中的資料都是一個子資料。
倘若第二資料重整電路1046以兩個子資料為一組,則圖7A所示之子資料SD0至SD15將被分為8組。而屬於同組之子資料被相互調換所產生的第二錯誤檢查與校正碼 則可如圖7B所示。舉例來說,在經過第二資料重整電路1046的處理後,子資料群組G0包括的兩個子資料SD0、SD1(即,資料B0、B1)已被相互調換,與其在原始錯誤檢查與校正碼中的位置不同。子資料群組G1包括的兩個子資料SD2、SD3(即,資料B2、B3)也被相互調換,與其在原始錯誤檢查與校正碼中的位置不同,以此類推。
倘若第二資料重整電路1046以3個子資料為一組,則圖7A所示之子資料SD0至SD15將被分為6組,其中5個子資料群組個別包括3個子資料,而最後一個子資料群組僅包括1個子資料。第二資料重整電路1046將屬於同組的子資料相互對調所產生的第二錯誤檢查與校正碼可如圖7C所示。以子資料群組G0為例,其中的3個子資料SD0、SD1與SD2(即,資料B0、B1與B2)在經過第二資料重整電路1046的處理後被相互對調。而對於僅包括1個子資料的子資料群組G5來說,由於子資料SD15(即,資料B15)缺乏其他同組的子資料,故在本範例實施例中會維持資料B15的位置而不進行調換。
然而在另一範例實施例中,對於落單的子資料則會被併入其他子資料群組,並與所併入之子資料群組中的其他子資料相互對調。如圖7D所示,在本範例實施例中子資料群組G4包括4個子資料SD12、SD13、SD14與SD14(即,資料B12、B13、B14與B15),且這4個子資料因被相互調換而具有與其在原始錯誤檢查與校正碼中不同的位置。
在圖8A至圖8C所示之範例實施例中,原始錯誤檢查 與校正碼包括16個位元,且各位元中的資料以B0至B15來表示。假設預設資料單位是2個位元,則如圖8A所示,原始錯誤檢查與校正碼會被第二資料重整電路1046劃分為8個子資料SD0至SD7
若第二資料重整電路1046以兩個子資料為一組,則產生的第二錯誤檢查與校正碼如圖8B所示。同時對照圖8A與圖8B可以發現,同屬於子資料群組G0的子資料SD0與SD1已被相互調換,然而以子資料SD0為例,其所包括之兩個位元中的資料B0與B1在第二資料重整電路1046處理前後仍維持同樣的相對位置(即,資料B0位於左邊的位元而資料B1位於右邊的位元)。
倘若第二資料重整電路1046以3個子資料為一組,則產生的第二錯誤檢查與校正碼可如圖8C所示。以子資料群組G0為例,其包括的子資料SD0至SD2已被相互調換,但各個子資料所包括之所有位元中的資料則維持同樣的相對位置。
必須特別說明的是,在上述範例實施例中第二資料重整電路1046是以子資料為單位進行屬於同組之子資料間的相互調換。然而本發明並不對如何相互調換屬於同組之子資料的方式加以限制。舉例來說,屬於同組的子資料可以兩兩相互調換,或以子資料為單位向特定方向移動等。此領域熟知技藝者可輕易地依照上述精神實現其他形式的對調交換或重組方式。
請參閱圖9A,在本範例實施例中假設原始錯誤檢查 與校正碼包括2j個位元,其中j為大於1的正整數,且各位元中的資料是以B0-1~B0-j、B1-1~B1-j來表示。第二資料重整電路1046會依照一預設資料單位將原始錯誤檢查與校正碼劃分為數個子資料,其中預設資料單位的大小為j個位元。在圖9A中,第二資料重整電路1046將原始錯誤檢查與校正碼劃分為兩個子資料(即,子資料SD0與SD1)。當要產生第二錯誤檢查與校正碼時,第二資料重整電路1046會將每一子資料所具有之j個位元中的資料相互對調,以產生第二錯誤檢查與校正碼。詳細地說,如圖9B所示,第二資料重整電路1046維持子資料SD0與SD1之間的相對位置,但會針對每一子資料去相互對調其中所有位元中的資料。
請參照圖10A與圖10B,在本範例實施例中原始錯誤檢查與校正碼包括16個位元,且各位元中的資料是以B0至B15來表示。假設預設資料單位是8個位元,則原始錯誤檢查與校正碼會被第二資料重整電路1046劃分為2個子資料SD0至SD1。即,每個子資料的大小為一個位元組。
在產生第二錯誤檢查與校正碼時,如圖10B所示,第二資料重整電路1046將子資料SD0所具有的8個位元中的資料相互對調,相互對調的方式例如是向右迴旋(rotate)1個位元。並且,第二資料重整電路1046將子資料SD1所具有的8個位元中的資料相互對調,例如向右迴旋1個位元。必須特別說明的是,本發明並不對子資料之各位元資料的相互對調的方式加以限制。此領域熟知技藝者可輕 易地依照上述精神實現其他形式的對調交換或重新排列方式。
在另一範例實施例中,第二資料重整電路1046不會將原始錯誤檢查與校正碼劃分為數個子資料,而是將原始錯誤檢查與校正碼向一特定方向迴旋k個位元以產生第二錯誤檢查與校正碼,其中k為正整數,特定方向例如為向左或向右。在另一範例實施例中,第二資料重整電路1046是利用一演算電路,將原始錯誤檢查與校正碼以一演算法重新整理後產生第二錯誤檢查與校正碼,例如,將原始錯誤檢查與校正碼與一特定資料進行互斥或(XOR)邏輯運算以產生第二錯誤檢查與校正碼。
在完成上述動作後,記憶體管理電路1043查找邏輯位址-實體位址映射表找出寫入指令中的邏輯位址所映射的實體程式化單元(以下稱之為特定實體程式化單元),並將第一資料重整電路1042所產生的第一資料與第二資料重整電路1046所產生的第二錯誤檢查與校正碼分別寫入特定實體程式化單元的資料位元區與錯誤校正碼位元區。在另一範例實施例中,記憶體管理電路1043亦可將第一資料及第二錯誤檢查與校正碼分別寫入不同實體程式化單元的資料位元區與錯誤校正碼位元區,並以一資料-錯誤校正碼對應表來記錄用以寫入第一資料與第二錯誤檢查與校正碼是哪些實體程式化單元。
也就是說,每當要將資料寫入可複寫式非揮發性記憶體模組106時,錯誤檢查與校正電路1044會針對已被第一 資料重整電路1042所打散的第一資料產生對應的原始錯誤檢查與校正碼,而原始錯誤檢查與校正碼會在被第二資料重整電路1046轉換為第二錯誤檢查與校正碼後才被寫入可複寫式非揮發性記憶體模組106。
當主機系統1000欲讀取原始寫入資料時,記憶體管理電路1043分別自特定實體程式化單元的資料位元區與錯誤校正碼位元區讀出第一資料與第二錯誤檢查與校正碼(或者,參照資料-錯誤校正碼對應表而從不同的實體程式化單元讀取第一資料與第二錯誤檢查與校正碼)。而第二資料重整電路1046根據第二資料重整規則將第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼。反轉換的方式係對應產生第二錯誤檢查與校正碼而採用的第二資料重整規則。例如,將屬於同組之子資料相互調換以還原為原始錯誤檢查與校正碼、將同一子資料之各位元中的資料相互對調以還原為原始錯誤檢查與校正碼、向與特定方向相反的方向迴旋k個位元以還原為原始錯誤檢查與校正碼,或再以演算法對第二錯誤檢查與校正碼進行整理以還原出原始錯誤檢查與校正碼。
接著,錯誤檢查與校正電路1044依據第二資料重整電路1046所還原出的原始錯誤檢查與校正碼對第一資料執行錯誤校正解碼程序,進而識別第一資料是否存在無法校正的錯誤位元。
詳言之,倘若在記憶體管理電路1043讀取資料之際,因讀取訊號受到干擾而發生資料位移的情況,則第二資料 重整電路1046無法將讀取自錯誤校正碼位元區的第二錯誤檢查與校正碼還原為資料被寫入時錯誤檢查與校正電路1044所產生的原始錯誤檢查與校正碼,因此錯誤檢查與校正電路1044在進行錯誤校正解碼程序時便能察覺此無法校正的錯誤。
此外,倘若主機系統1000欲讀取的是已被抹除的資料(亦即,特定實體程式化單元的資料被抹除為0×FF資料),由於錯誤校正碼位元區所記錄的是0×FF資料,其在經過第二資料重整電路1046的還原操作後依舊是0×FF資料,因而再此情況下亦可避免誤判不可修復的錯誤。
圖12是根據本發明之一範例實施例所繪示之資料處理方法的流程圖,請參閱圖12。
當接收到來自主機系統1000的原始寫入資料時,如步驟S1210所示,第一資料重整電路1042依據第一資料重整規則將原始寫入資料轉換為第一資料。
接著在步驟S1220中,錯誤檢查與校正電路1044對第一資料進行錯誤校正編碼程序,以產生對應第一資料的原始錯誤檢查與校正碼。
如步驟S1230所示,第二資料重整電路1046依據第二資料重整規則將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼。其中,第一資料重整規則與第二資料重整規則並不相同。
在步驟S1240中,記憶體管理電路1043將第一資料與第二錯誤檢查與校正碼分別寫入可複寫式非揮發性記憶 體模組106中一特定實體程式化單元的資料位元區與錯誤校正碼位元區。
爾後如步驟S1250所示,當主機系統1000欲讀取被寫入可複寫式非揮發性記憶體模組106的原始寫入資料時,記憶體管理電路1043自特定實體程式化單元讀出第一資料與第二錯誤檢查與校正碼。
接著在步驟S1260中,第二資料重整電路1046根據第二資料重整規則將第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼。
最後如步驟S1270所示,錯誤檢查與校正電路1044依據原始錯誤檢查與校正碼對第一資料執行對應錯誤校正編碼程序的錯誤校正解碼程序,以識別第一資料是否存在無法校正的錯誤位元。
圖13是根據本發明之一範例實施例所繪示之記憶體控制器的示意圖。請參閱圖13,記憶體控制器104包括緩衝記憶體3004、錯誤校正編碼電路1340、第一資料重整電路1042、第二資料重整電路1046、錯誤校正解碼電路1350,以及控制單元1330。其中,控制單元1330可以是控制晶片,分別電連接至緩衝記憶體3004、錯誤校正編碼電路1340、第一資料重整電路1042、第二資料重整電路1046、錯誤校正解碼電路1350與可複寫式非揮發性記憶體模組106。
第一資料重整電路1042分別電連接至緩衝記憶體3004、錯誤校正編碼電路1340以及可複寫式非揮發性記憶 體模組106。第二資料重整電路1046分別電連接至錯誤校正編碼電路1340與可複寫式非揮發性記憶體模組106。錯誤校正解碼電路1350分別電連接至第二資料重整電路1046與可複寫式非揮發性記憶體模組106。
在本範例實施例中,錯誤校正編碼電路1340與錯誤校正解碼電路1350可實現圖3所示之錯誤檢查與校正電路1044的部份或全部功能,其中錯誤校正編碼電路1340用以執行錯誤校正編碼程序,且錯誤校正解碼電路1350用以執行錯誤校正解碼程序。而緩衝記憶體3004、第一資料重整電路1042與第二資料重整電路1046與圖3中具有相同編號的元件具有相同或相似的功能。
在主機系統1000欲寫入資料時,欲寫入的原始寫入資料會先暫存在緩衝記憶體3004,接著傳送至第一資料重整電路1042以轉換為第一資料。第一資料除了被傳送至可複寫式非揮發性記憶體模組106儲存之外,也會被傳送至錯誤校正編碼電路1340以產生對應的原始錯誤檢查與校正碼。爾後,第二資料重整電路1046將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,再將第二錯誤檢查與校正碼傳送至可複寫式非揮發性記憶體模組106儲存。
在主機系統1000欲讀取所寫入的資料時,從可複寫式非揮發性記憶體模組106讀出的第一資料將會被傳送至第一資料重整電路1042以反轉換為原始寫入資料。此外,從可複寫式非揮發性記憶體模組106讀出的第一資料亦將被傳送至錯誤校正解碼電路1350,對應第一資料的第二錯 誤檢查與校正碼也將被傳送至第二資料重整電路1046以反轉換為原始錯誤檢查與校正碼,而原始錯誤檢查與校正碼將被傳送至錯誤校正解碼電路1350。據此,錯誤校正解碼電路1350可根據原始錯誤檢查與校正碼判斷第一資料是否有無法修復的錯誤。若判斷發生可修復的錯誤,則由修正電路(未繪示)對第一資料重整電路1042所還原的原始寫入資料進行修正。沒有錯誤或經過修正的原始寫入資料將先暫存在緩衝記憶體3004,爾後回傳至主機系統1000。
必須說明的是,在上述範例實施例中,來自主機系統1000的原始寫入資料是先經過第一資料重整電路1042的處理而轉換為第一資料,爾後才由錯誤檢查與校正電路1044產生對應第一資料的原始錯誤檢查與校正碼,然而本發明並不侷限於此。在另一範例實施例中,當主機系統1000要將原始寫入資料寫入至可複寫式非揮發性記憶體模組106時,原始寫入資料將不經第一資料重整電路1042的處理而被直接傳送至錯誤檢查與校正電路1044來產生原始錯誤檢查與校正碼(亦即,在此範例實施例中原始寫入資料即為第一資料)。接著由第二資料重整電路1046將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼,並由記憶體管理電路1043將原始寫入資料及第二錯誤檢查與校正碼分別寫入可複寫式非揮發性記憶體模組106中相同或相異之實體程式化單元的資料位元區與錯誤校正碼位元區。當主機系統1000欲讀取原始寫入資料時,記憶體 管理電路1043從可複寫式非揮發性記憶體模組106讀出原始寫入資料及第二錯誤檢查與校正碼,並由第二資料重整電路1046將第二錯誤檢查與校正碼反轉換為原始錯誤檢查與校正碼,而錯誤檢查與校正電路1044據此原始錯誤檢查與校正碼對原始寫入資料執行錯誤校正解碼程序,便可以識別出原始寫入資料是否存在無法校正的錯誤位元。
綜上所述,本發明所述之記憶體儲存裝置、記憶體控制器與資料處理方法是對要寫入的資料所對應的錯誤檢查與校正碼進行重整,據此當要讀取該筆資料時,便可利用經過重整的錯誤檢查與校正碼來識別資料中是否存在無法修復的錯誤。如此一來,即便資料在被讀取時發生資料位移的情況,也能正確地偵測其是否具有不可修復的錯誤位元,而能提高記憶體儲存裝置的可靠度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
210(0)、210(1)、210(P)‧‧‧實體程式化單元
230‧‧‧資料位元區
240‧‧‧錯誤校正碼位元區
1041‧‧‧主機系統介面
1042‧‧‧第一資料重整電路
1043‧‧‧記憶體管理電路
1044‧‧‧錯誤檢查與校正電路
1045‧‧‧記憶體介面
1046‧‧‧第二資料重整電路
3004‧‧‧緩衝記憶體
3006‧‧‧電源管理電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
610(0)~610(L)‧‧‧邏輯抹除單元
B0-1~B0-i、B1-1~B1-i、B0~B15、B0-1~B0-j、B1-1~B1-j‧‧‧資料
SD0~SD7‧‧‧子資料
G0~G7‧‧‧子資料群組
S1210~S1270‧‧‧本發明之一實施例所述之資料處理方法的各步驟
1340‧‧‧錯誤校正編碼電路
1350‧‧‧錯誤校正解碼電路
1330‧‧‧控制單元
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系 統與記憶體儲存裝置的示意圖。
圖2A是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖2B是根據本發明一範例實施例所繪示的實體程式化單元的示意圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4、5是根據本發明之一範例實施例所繪示之管理複寫式非揮發性記憶體模組的示意圖。
圖6A、6B是根據本發明一範例實施例繪示之將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的示意圖。
圖7A、7B、7C、7D是根據本發明另一範例實施例繪示之將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的示意圖。
圖8A、8B、8C是根據本發明又一範例實施例繪示之將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的示意圖。
圖9A、9B是根據本發明再一範例實施例繪示之將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的示意圖。
圖10A、10B是根據本發明一範例實施例繪示之將原始錯誤檢查與校正碼轉換為第二錯誤檢查與校正碼的示意圖。
圖11是根據本發明一範例實施例繪示之第二錯誤檢查與校正碼的示意圖。
圖12是根據本發明之一範例實施例所繪示之資料處理方法的流程圖。
圖13是根據本發明之另一範例實施例所繪示之記憶體控制器的示意圖。
S1210~S1270‧‧‧本發明之一實施例所述之資料處理方法的各步驟

Claims (19)

  1. 一種資料處理方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體程式化單元,且各該些實體程式化單元包括一資料位元區與一錯誤校正碼位元區,該方法包括:接收一第一資料;對該第一資料進行一錯誤校正編碼程序以產生對應該第一資料的一原始錯誤檢查與校正碼;依據一第二資料重整規則將該原始錯誤檢查與校正碼重新排序為一第二錯誤檢查與校正碼,其中該第二錯誤檢查與校正碼不同於該原始錯誤檢查與校正碼;以及將該第一資料與該第二錯誤檢查與校正碼分別寫入該些實體程式化單元中的該些資料位元區其中之一與該些錯誤校正碼位元區其中之一。
  2. 如申請專利範圍第1項所述之資料處理方法,該第一資料是對來自一主機系統的一原始寫入資料依據一第一資料重整規則轉換而得,其中該第一資料不同於該原始寫入資料,且該第一資料重整規則不同於該第二資料重整規則。
  3. 如申請專利範圍第1項所述之資料處理方法,其中依據該第二資料重整規則將該原始錯誤檢查與校正碼重新排序為該第二錯誤檢查與校正碼的步驟包括:將該原始錯誤檢查與校正碼劃分為多個子資料,其中各該些子資料分別具有i個位元,且i為正整數;以及 在該些子資料中,以至少兩個子資料為一組並將屬於同組之該至少兩個子資料相互對調(swap),以產生該第二錯誤檢查與校正碼。
  4. 如申請專利範圍第1項所述之資料處理方法,其中依據該第二資料重整規則將該原始錯誤檢查與校正碼重新排序為該第二錯誤檢查與校正碼的步驟包括:將該原始錯誤檢查與校正碼劃分為多個子資料,其中各該些子資料分別具有j個位元,且j為大於1的正整數;以及針對各該些子資料,將該子資料所具有的該j個位元中的資料相互對調,以產生該第二錯誤檢查與校正碼。
  5. 如申請專利範圍第1項所述之資料處理方法,其中依據該第二資料重整規則將該原始錯誤檢查與校正碼重新排序為該第二錯誤檢查與校正碼的步驟包括:將該原始錯誤檢查與校正碼向一特定方向迴旋(rotate)k個位元以產生該第二錯誤檢查與校正碼,其中k為正整數。
  6. 如申請專利範圍第2項所述之資料處理方法,更包括:當該主機系統欲讀取該原始寫入資料時,分別自該些實體程式化單元中的該些資料位元區其中之一與該些錯誤校正碼位元區其中之一讀出該第一資料與該第二錯誤檢查與校正碼;根據該第二資料重整規則將該第二錯誤檢查與校正 碼反轉換為該原始錯誤檢查與校正碼;以及依據該原始錯誤檢查與校正碼對該第一資料執行對應該錯誤校正編碼程序的一錯誤校正解碼程序,以識別該第一資料是否存在無法校正的錯誤位元。
  7. 一種記憶體控制器,以管理一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機系統介面,用以電連接一主機系統;一記憶體介面,用以電連接該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體程式化單元,且各該些實體程式化單元包括一資料位元區與一錯誤校正碼位元區;一錯誤檢查與校正電路,用以執行相互對應的一錯誤校正編碼程序與一錯誤校正解碼程序;一第二資料重整電路,電連接該錯誤檢查與校正電路;以及一記憶體管理電路,電連接至該主機系統介面、該記憶體介面、該錯誤檢查與校正電路與該第二資料重整電路,其中該錯誤檢查與校正電路用以對一第一資料進行該錯誤校正編碼程序以產生對應該第一資料的一原始錯誤檢查與校正碼,該第二資料重整電路用以依據一第二資料重整規則將該原始錯誤檢查與校正碼重新排序為一第二錯誤檢查與校正碼,其中該第二錯誤檢查與校正碼不同於該原始錯誤檢查與校正碼, 該記憶體管理電路用以將該第一資料與該第二錯誤檢查與校正碼分別寫入該些實體程式化單元中的該些資料位元區其中之一與該些錯誤校正碼位元區其中之一。
  8. 如申請專利範圍第7項所述之記憶體控制器,更包括:一第一資料重整電路,電連接該錯誤檢查與校正電路與該記憶體管理電路,其中該記憶體控制器用以在經由該主機系統介面接獲來自該主機系統的一原始寫入資料時,該第一資料重整電路依據一第一資料重整規則將該原始寫入資料轉換為該第一資料,其中該第一資料不同於該原始寫入資料,且該第一資料重整規則不同於該第二資料重整規則。
  9. 如申請專利範圍第7項所述之記憶體控制器,其中該第二資料重整電路用以將該原始錯誤檢查與校正碼劃分為多個子資料,並在該些子資料中,以至少兩個子資料為一組並將屬於同組之該至少兩個子資料相互對調,以產生該第二錯誤檢查與校正碼,其中各該些子資料分別具有i個位元,且i為正整數。
  10. 如申請專利範圍第7項所述之記憶體控制器,其中該第二資料重整電路用以將該原始錯誤檢查與校正碼劃分為多個子資料,其中各該些子資料分別具有j個位元,且j為大於1的正整數,針對各該些子資料,該第二資料重整電路將該子資料所具有的該j個位元中的資料相互對調,以產生該第二錯 誤檢查與校正碼。
  11. 如申請專利範圍第7項所述之記憶體控制器,其中該第二資料重整電路用以將該原始錯誤檢查與校正碼向一特定方向迴旋k個位元以產生該第二錯誤檢查與校正碼,其中k為正整數。
  12. 如申請專利範圍第8項所述之記憶體控制器,其中當該主機系統欲讀取該原始寫入資料時,該記憶體管理電路用以分別自該些實體程式化單元中的該些資料位元區其中之一與該些錯誤校正碼位元區其中之一讀出該第一資料與該第二錯誤檢查與校正碼,該第二資料重整電路用以根據該第二資料重整規則將該第二錯誤檢查與校正碼反轉換為該原始錯誤檢查與校正碼,該錯誤檢查與校正電路依據該原始錯誤檢查與校正碼用以對該第一資料執行該錯誤校正解碼程序,以識別該第一資料是否存在無法校正的錯誤位元。
  13. 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組具有多個實體程式化單元,且各該些實體程式化單元包括一資料位元區與一錯誤校正碼位元區;一連接器,用以電連接一主機系統;以及一記憶體控制器,電連接至該可複寫式非揮發性記憶體模組與該連接器,用以對一第一資料進行一錯誤校正編碼程序以產生對應該第一資料的一原始錯誤檢查與校正 碼,該記憶體控制器更用以依據一第二資料重整規則將該原始錯誤檢查與校正碼重新排序為一第二錯誤檢查與校正碼,其中該第二錯誤檢查與校正碼不同於該原始錯誤檢查與校正碼,該記憶體控制器更用以將該第一資料與該第二錯誤檢查與校正碼分別寫入該些實體程式化單元中的該些資料位元區其中之一與該些錯誤校正碼位元區其中之一。
  14. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器用以在經由該連接器接獲來自該主機系統的一原始寫入資料時,依據一第一資料重整規則將該原始寫入資料轉換為該第一資料,其中該第一資料不同於該原始寫入資料,且該第一資料重整規則不同於該第二資料重整規則。
  15. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器用以將該原始錯誤檢查與校正碼劃分為多個子資料,並在該些子資料中,以至少兩個子資料為一組並將屬於同組之該至少兩個子資料相互對調,以產生該第二錯誤檢查與校正碼,其中各該些子資料分別具有i個位元,且i為正整數。
  16. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器用以將該原始錯誤檢查與校正碼劃分為多個子資料,其中各該些子資料分別具有j個位元,且j為大於1的正整數, 針對各該些子資料,該記憶體控制器用以將該子資料所具有的該j個位元中的資料相互對調,以產生該第二錯誤檢查與校正碼。
  17. 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器用以將該原始錯誤檢查與校正碼向一特定方向迴旋k個位元以產生該第二錯誤檢查與校正碼,其中k為正整數。
  18. 如申請專利範圍第14項所述之記憶體儲存裝置,其中當該主機系統欲讀取該原始寫入資料時,該記憶體控制器用以分別自該些實體程式化單元中的該些資料位元區其中之一與該些錯誤校正碼位元區其中之一讀出該第一資料與該第二錯誤檢查與校正碼讀出該第一資料與該第二錯誤檢查與校正碼,根據該第二資料重整規則將該第二錯誤檢查與校正碼反轉換為該原始錯誤檢查與校正碼,依據該原始錯誤檢查與校正碼對該第一資料執行對應該錯誤校正編碼程序的一錯誤校正解碼程序,以識別該第一資料是否存在無法校正的錯誤位元。
  19. 一種記憶體控制器,包括:一緩衝記憶體;一錯誤校正編碼電路,用以對一第一資料進行一錯誤校正編碼程序以產生對應該第一資料的一原始錯誤檢查與校正碼;一第一資料重整電路,電連接該緩衝記憶體、該錯誤校正編碼電路,與一可複寫式非揮發性記憶體模組,該第 一資料重整電路用以依據一第一資料重整規則將來自該緩衝記憶體的一原始寫入資料轉換為該第一資料,其中該第一資料不同於該原始寫入資料;一第二資料重整電路,電連接該錯誤校正編碼電路與該可複寫式非揮發性記憶體模組,該第二資料重整電路用以依據一第二資料重整規則將來自該錯誤校正編碼電路的該原始錯誤檢查與校正碼重新排序為一第二錯誤檢查與校正碼,並用以根據該第二資料重整規則將來自該可複寫式非揮發性記憶體模組的該第二錯誤檢查與校正碼反轉換為該原始錯誤檢查與校正碼,其中該第二錯誤檢查與校正碼不同於該原始錯誤檢查與校正碼,且該第一資料重整規則不同於該第二資料重整規則;一錯誤校正解碼電路,電連接該第二資料重整電路與該可複寫式非揮發性記憶體模組,該錯誤校正解碼電路用以依據該原始錯誤檢查與校正碼對來自該可複寫式非揮發性記憶體模組的該第一資料執行對應該錯誤校正編碼程序的一錯誤校正解碼程序,以識別該第一資料是否存在無法校正的錯誤位元;以及一控制單元,電連接至該緩衝記憶體、該錯誤校正編碼電路、該第一資料重整電路、該第二資料重整電路、該錯誤校正解碼電路與該可複寫式非揮發性記憶體模組。
TW101128618A 2012-08-08 2012-08-08 記憶體儲存裝置、其記憶體控制器與資料處理方法 TWI521528B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101128618A TWI521528B (zh) 2012-08-08 2012-08-08 記憶體儲存裝置、其記憶體控制器與資料處理方法
US13/662,541 US9223648B2 (en) 2012-08-08 2012-10-28 Memory storage device, memory controller thereof, and method for processing data thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101128618A TWI521528B (zh) 2012-08-08 2012-08-08 記憶體儲存裝置、其記憶體控制器與資料處理方法

Publications (2)

Publication Number Publication Date
TW201407628A TW201407628A (zh) 2014-02-16
TWI521528B true TWI521528B (zh) 2016-02-11

Family

ID=50067142

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101128618A TWI521528B (zh) 2012-08-08 2012-08-08 記憶體儲存裝置、其記憶體控制器與資料處理方法

Country Status (2)

Country Link
US (1) US9223648B2 (zh)
TW (1) TWI521528B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9665483B2 (en) * 2013-09-30 2017-05-30 Alcatel Lucent Method and apparatus for bit-interleaving
CN104750569A (zh) * 2013-12-30 2015-07-01 深圳市中兴微电子技术有限公司 一种实现数据纠错的方法及装置
TWI522804B (zh) * 2014-04-23 2016-02-21 威盛電子股份有限公司 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法
USRE48835E1 (en) 2014-04-30 2021-11-30 Rubrik, Inc. Network addressable storage controller with storage drive profile comparison
US8935567B1 (en) * 2014-04-30 2015-01-13 Igneous Systems, Inc. Network addressable storage controller with storage drive profile comparison
US9081828B1 (en) 2014-04-30 2015-07-14 Igneous Systems, Inc. Network addressable storage controller with storage drive profile comparison
CN105095011B (zh) * 2014-05-23 2019-03-19 群联电子股份有限公司 数据处理方法、存储器控制电路单元以及存储器存储装置
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9116833B1 (en) 2014-12-18 2015-08-25 Igneous Systems, Inc. Efficiency for erasure encoding
US9361046B1 (en) 2015-05-11 2016-06-07 Igneous Systems, Inc. Wireless data storage chassis
CN106254031A (zh) * 2016-08-01 2016-12-21 北京邮电大学 一种编译码方法和装置
CN107656831A (zh) * 2017-08-21 2018-02-02 深圳市致存微电子企业(有限合伙) 闪存纠错方法以及纠错装置
TWI742509B (zh) * 2020-01-09 2021-10-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US11036582B2 (en) 2019-09-27 2021-06-15 Western Digital Technologies, Inc. Uncorrectable error correction code (UECC) recovery time improvement
CN113138947B (zh) * 2020-01-17 2023-06-13 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置
US11500719B1 (en) * 2020-03-31 2022-11-15 Amazon Technologies, Inc. Reliability improvements for memory technologies
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
US20220269437A1 (en) * 2021-02-19 2022-08-25 Western Digital Technologies, Inc. Data Storage Device and Method for Predetermined Transformations for Faster Retrieval

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3645027B2 (ja) * 1995-09-20 2005-05-11 松下電器産業株式会社 可変長データ送受信装置
JP4126795B2 (ja) * 1999-02-12 2008-07-30 ソニー株式会社 疑似積符号復号装置及び方法
JP2000251035A (ja) 1999-02-26 2000-09-14 Hitachi Ltd メモリカード
JP3841990B2 (ja) * 1999-12-07 2006-11-08 三菱電機株式会社 Fecフレーム構成方法およびfec多重化装置
JP3987274B2 (ja) * 2000-08-21 2007-10-03 株式会社日立国際電気 多値変調方式の伝送装置
US20020157057A1 (en) * 2001-04-20 2002-10-24 Samsung Electronics Co., Ltd. Optical information recording medium and data recording apparatus thereon
US6691276B2 (en) * 2001-06-25 2004-02-10 Intel Corporation Method for detecting and correcting failures in a memory system
US7137057B2 (en) * 2003-01-07 2006-11-14 Sun Microsystems, Inc. Method and apparatus for performing error correction code (ECC) conversion
KR20040110923A (ko) * 2003-06-21 2004-12-31 삼성전자주식회사 에러 정정 부호화 방법, 그 장치, 에러 정정 복호화 방법및 그장치
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
EP1788710A4 (en) * 2004-09-09 2007-10-10 Mitsubishi Electric Corp ERROR KERRECTURE CODING ARRANGEMENT AND ERROR CORRECTION DECODING ARRANGEMENT
JP4842563B2 (ja) * 2005-05-16 2011-12-21 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP4299854B2 (ja) * 2006-11-27 2009-07-22 Okiセミコンダクタ株式会社 通信システム
US8271862B2 (en) * 2007-07-19 2012-09-18 Pioneer Corporation Error correction decoding device and reproduction device
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
KR101554159B1 (ko) 2008-10-08 2015-09-21 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
KR101607307B1 (ko) * 2009-07-09 2016-03-30 삼성전자주식회사 정보 부호화 방법, 정보 복호화 방법, 기록/재생 장치 및 정보 저장 매체
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8341498B2 (en) * 2010-10-01 2012-12-25 Sandisk Technologies Inc. System and method of data encoding
JP2013093012A (ja) * 2011-10-07 2013-05-16 Panasonic Corp メモリコントローラ、記憶装置

Also Published As

Publication number Publication date
US9223648B2 (en) 2015-12-29
US20140047300A1 (en) 2014-02-13
TW201407628A (zh) 2014-02-16

Similar Documents

Publication Publication Date Title
TWI521528B (zh) 記憶體儲存裝置、其記憶體控制器與資料處理方法
TWI516927B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US20190252035A1 (en) Decoding method, memory storage device and memory control circuit unit
US20110191649A1 (en) Solid state drive and method of controlling an error thereof
TWI527040B (zh) 資料寫入方法、記憶體儲存裝置與記憶體控制器
CN103631670B (zh) 存储器储存装置、存储器控制器与数据处理方法
TWI591643B (zh) 資料保護方法、記憶體控制電路單元與記憶體儲存裝置
TWI725416B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TW201348960A (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI802324B (zh) 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
TWI732642B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TWI575533B (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
CN112051963B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
US10546640B2 (en) Data protecting method and memory storage device
TWI541809B (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
TWI512750B (zh) 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN113220502B (zh) 存储器管理方法、存储器存储装置及存储器控制器
TWI814501B (zh) 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元
TWI777087B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
CN114077515A (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
CN117409845A (zh) 分组管理方法、存储器存储装置及存储器控制器
TW202044024A (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置