TWI541809B - 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 - Google Patents

資料存取方法、記憶體控制電路單元與記憶體儲存裝置 Download PDF

Info

Publication number
TWI541809B
TWI541809B TW104113217A TW104113217A TWI541809B TW I541809 B TWI541809 B TW I541809B TW 104113217 A TW104113217 A TW 104113217A TW 104113217 A TW104113217 A TW 104113217A TW I541809 B TWI541809 B TW I541809B
Authority
TW
Taiwan
Prior art keywords
data string
check code
circuit
data
check
Prior art date
Application number
TW104113217A
Other languages
English (en)
Other versions
TW201638957A (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 TW104113217A priority Critical patent/TWI541809B/zh
Priority to US14/736,284 priority patent/US9600363B2/en
Application granted granted Critical
Publication of TWI541809B publication Critical patent/TWI541809B/zh
Publication of TW201638957A publication Critical patent/TW201638957A/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • 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
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Landscapes

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

Description

資料存取方法、記憶體控制電路單元與記憶體儲存裝置
本發明是有關於一種資料存取方法,且特別是有關於用於可複寫式非揮發性記憶體的一種資料存取方法、記憶體控制電路單元與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,寫入至可複寫式非揮發性記憶體模組的資料都會根據一個錯誤檢查與校正碼來編碼,並且從可複寫式非揮發性記憶體模組中所讀取的資料也會經過對應的程序來解碼。然而,在從主機系統接收到資料至將資料寫入至可複寫式非揮發性記憶體模組之間(即,記憶體控制電路單元內部)的傳輸過程中亦可 能發生資料位元錯誤,因此,為了確保資料在記憶體控制電路單元內部的正確性,是此領域技術人員所致力的目標。
本發明提供一種資料存取方法、記憶體控制電路單元與記憶體儲存裝置,其能夠有效地驗證資料的正確性。
本發明的一範例實施例提供一種用於記憶體儲存裝置的資料存取方法。此記憶體儲存裝置具有可複寫式非揮發性記憶體模組,可複寫式非發性記憶體模組具有多個實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。本資料存取方法包括接收第一資料串,使用第一檢查碼電路產生對應此第一資料串的第一檢查碼並且依據此第一資料串與對應此第一資料串的第一檢查碼來產生第一資料集合。本資料存取方法還包括使用第二檢查碼電路從第一資料集合中獲取第一資料串與對應第一資料串的第一檢查碼,並且使用對應第一資料串的第一檢查碼來校驗第一資料串。本資料存取方法也包括依據對應已校驗的第一資料串的資訊使用第三檢查碼電路來產生第二檢查碼,使用錯誤檢查與校正電路來產生錯誤檢查與校正碼,並且依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框。本資料存取方法更包括將此資料框寫入至該些實體程式化單元之中的第一實體程式化單元,其中上述其中第一檢查碼電路是不同於第三檢查碼電路。
在本發明的一範例實施例中,第一檢查碼的長度不小於 第二檢查碼的長度。
在本發明的一範例實施例中,上述資料存取方法更包括:接收第二資料串,使用第一檢查碼電路產生對應此第二資料串的第一檢查碼並且依據第二資料串與對應第二資料串的第一檢查碼來產生第二資料集合;以及使用第二檢查碼電路從第二資料集合中獲取第二資料串與對應第二資料串的第一檢查碼,並且使用對應第二資料串的第一檢查碼來校驗第二資料串。並且,上述依據對應已校驗的第一資料串的資訊使用第三檢查碼電路來產生第二檢查碼的步驟包括:依據已校驗的第一資料串與已校驗的第二資料串使用第三檢查碼電路來產生第二檢查碼。此外,上述使用錯誤檢查與校正電路來產生錯誤檢查與校正碼的步驟包括:依據已校驗的第一資料與已校驗的第二資料使用錯誤檢查與校正電路來產生錯誤檢查與校正碼。再者,上述依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框的步驟包括:依據已校驗的第一資料串、已校驗的第二資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框。
在本發明的一範例實施例中,上述對應第一資料串的第一檢查碼的大小與對應第二資料串的第一檢查碼的大小的總和大於第二檢查碼的大小。
在本發明的一範例實施例中,上述依據對應已校驗的第一資料串的資訊使用第三檢查碼電路來產生第二檢查碼的步驟包括:依據已校驗的第一資料串與第一實體程式化單元的位址資訊 使用第三檢查碼電路來產生第二檢查碼。
在本發明的一範例實施例中,上述資料存取方法更包括壓縮已校驗的第一資料串以產生第一已壓縮資料串。並且,上述依據對應已校驗的第一資料串的資訊使用第三檢查碼電路來產生第二檢查碼的步驟包括:依據對應已校驗的第一資料串的第一已壓縮資料串使用第三檢查碼電路來產生第二檢查碼。此外,上述使用錯誤檢查與校正電路來產生錯誤檢查與校正碼的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼。再者,上述依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框的步驟包括:依據對應已校驗的第一資料串的第一已壓縮資料串、第二檢查碼與錯誤檢查與校正碼來產生該資料框。
在本發明的一範例實施例中,上述資料存取方法更包括壓縮已校驗的第一資料串以產生第一已壓縮資料串。並且,上述依據對應已校驗的第一資料串的資訊使用第三檢查碼電路來產生第二檢查碼的步驟包括:依據對應已校驗的第一資料串的第一已壓縮資料串與第一實體程式化單元的位址資訊使用第三檢查碼電路來產生第二檢查碼。此外,上述使用錯誤檢查與校正電路來產生錯誤檢查與校正碼的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼。再者,上述依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框的步驟包括:依據對應已 校驗的第一資料串的第一已壓縮資料串、第二檢查碼與錯誤檢查與校正碼來產生該資料框。
在本發明的一範例實施例中,上述資料存取方法更包括從第一實體程式化單元中讀取資料框;以及依據所讀取的資料框中的第二檢查碼使用第三檢查碼電路來檢查所讀取的資料框中的第一資料。
本發明的一範例實施例提供一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元,其包括主機介面、一第一檢查碼電路、記憶體管理電路、第二檢查碼電路、第三檢查碼電路、記憶體介面與錯誤檢查與校正電路。第一檢查碼電路耦接至主機介面,記憶體管理電路耦接至第一檢查碼電路,第二檢查碼電路耦接至記憶體管理電路,第三檢查碼電路耦接至第二檢查碼電路,並且記憶體介面耦接至第三檢查碼電路並且用以耦接至可複寫式非揮發性記憶體模組。錯誤檢查與校正電路耦接至記憶體管理電路。上述可複寫式非揮發性記憶體模組具有多個實體抹除單元,且每一實體抹除單元具有多個實體程式化單元。主機介面接收第一資料串,第一檢查碼電路產生對應第一資料串的第一檢查碼,並且記憶體管理電路依據第一資料串與對應第一資料串的第一檢查碼來產生第一資料集合。第二檢查碼電路從第一資料集合中獲取第一資料串與對應第一資料串的第一檢查碼,並且使用對應第一資料串的第一檢查碼來校驗第一資料串。第三檢查碼電路依據對應已校驗的第一資料串的資訊產生第二檢查碼。錯誤 檢查與校正電路產生錯誤檢查與校正碼。記憶體管理電路依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框,並且記憶體管理電路透過記憶體介面將此資料框寫入至上述實體程式化單元之中的第一實體程式化單元,其中第一檢查碼電路不同於第三檢查碼電路。
在本發明的一範例實施例中,第一檢查碼的長度不小於第二檢查碼的長度。
在本發明的一範例實施例中,主機介面接收第二資料串,第一檢查碼電路產生對應第二資料串的第一檢查碼,記憶體管理電路依據第二資料串與對應第二資料串的第一檢查碼來產生第二資料集合。此外,第二檢查碼電路從第二資料集合中獲取第二資料串與對應第二資料串的第一檢查碼,並且使用對應第二資料串的第一檢查碼來校驗第二資料串。並且,在上述產生錯誤檢查與校正碼的運作中,第三檢查碼電路是依據已校驗的第一資料串與已校驗的第二資料串來產生上述第二檢查碼。並且,在上述依據已校驗的第一資料串、第二檢查碼和錯誤檢查與校正碼來產生資料框的運作中,記憶體管理電路是依據已校驗的第一資料串、已校驗的第二資料串、第二檢查碼和錯誤檢查與校正碼來產生上述資料框。
在本發明的一範例實施例中,在上述依據對應已校驗的第一資料串的資訊來產生該第二檢查碼的運作中,第三檢查碼電路是依據第一實體程式化單元的位址資訊來產生第二檢查碼。
在本發明的一範例實施例中,記憶體控制電路單元更包括耦接至記憶體管理電路的資料壓縮電路,用以壓縮已校驗的第一資料串以產生第一已壓縮資料串。並且,在上述依據對應已校驗的第一資料串的資訊來產生第二檢查碼的運作中,第三檢查碼電路依據對應已校驗的第一資料串的第一已壓縮資料串來產生第二檢查碼。此外,在上述產生錯誤檢查與校正碼的運作中,錯誤檢查與校正電路是依據對應已校驗的第一資料串的第一已壓縮資料串來產生錯誤檢查與校正碼。再者,在上述依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框的運作中,記憶體管理電路依據對應已校驗的第一資料串的第一已壓縮資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框。
在本發明的一範例實施例中,記憶體控制電路單元更包括耦接至記憶體管理電路的資料壓縮電路,用以壓縮已校驗的第一資料串以產生第一已壓縮資料串。並且,在上述依據對應已校驗的第一資料串的資訊來產生第二檢查碼的運作中,第三檢查碼電路依據對應已校驗的第一資料串的第一已壓縮資料串與第一實體程式化單元的位址資訊來產生第二檢查碼。此外,在上述產生錯誤檢查與校正碼的運作中,錯誤檢查與校正電路是依據對應已校驗的第一資料串的第一已壓縮資料串來產生錯誤檢查與校正碼。再者,在上述依據已校驗的第一資料串、第二檢查碼與錯誤檢查與校正碼來產生資料框的運作中,記憶體管理電路依據對應已校驗的第一資料串的第一已壓縮資料串、第二檢查碼與錯誤檢 查與校正碼來產生資料框。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組與上述記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。
基於上述,本發明範例實施例所提出的記憶體控制電路單元、記憶體儲存裝置及其使用的資料存取方法能夠有效地確保在記憶體控制電路單元內傳輸過程中資料的正確性,同時避免資料冗員位元區的空間不足無法儲存大量檢查碼的問題。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1210‧‧‧隨身碟
1212‧‧‧記憶卡
1214‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接介面單元
104‧‧‧記憶體控制電路單元
106‧‧‧可複寫式非揮發性記憶體模組
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧電源管理電路
210‧‧‧緩衝記憶體
212‧‧‧錯誤檢查與校正電路
214‧‧‧第一檢查碼電路
216‧‧‧第二檢查碼電路
218‧‧‧第三檢查碼電路
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
LA(0)~LA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
D1、D2、D3、D4、D5、D6、D7、D8‧‧‧資料串
CRC1、CRC2、CRC3、CRC4、CRC5、CRC6、CRC7、CRC8‧‧‧檢查碼
DS1、DS2、DS3、DS4、DS5、DS6、DS7、DS8‧‧‧資料集合
CI‧‧‧控制資訊
NCRC‧‧‧檢查碼
ECC‧‧‧錯誤檢查與校正碼
DF‧‧‧資料框
S901、S903、S905、S907、S909、S911、S913、S915‧‧‧資料存取方法的步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖6與圖7是根據第一範例實施例所繪示之管理實體區塊的範例示意圖。
圖8是根據一範例實施例所繪示的執行寫入運作的資料流的範例示意圖。
圖9是根據一範例實施例所繪示之資料存取方法的流程圖。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資 料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1210、記憶卡1212或固態硬碟(Solid State Drive,SSD)1214等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parellel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元可與記憶體控制電路單元封裝在一個晶片中,或佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制電路單元104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元410(0)~410(N)。例如,實體抹除單元410(0)~410(N)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發 明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模 組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206、電源管理電路208、緩衝記憶體210、錯誤檢查與校正電路212、第一檢查碼電路214、第二檢查碼電路216與第三檢查碼電路218。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行來對可複寫式寫非揮發性記憶體模組下達指令,以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
請參照圖6,記憶體控制電路單元104(或記憶體管理電路202)會將實體抹除單元410(0)~410-(N)邏輯地分組為資料區502、 閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區504的實體抹除單元是用以替換資料區502的實體抹除單元。也就是說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路202會從閒置區504中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區502的實體抹除單元。
邏輯上屬於系統區506的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區508中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區508中仍存有正常之實體抹除單元並且資料區502的實體抹除單元損壞時,記憶體管理電路202會從取代區508中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區502、閒置區504、系統區506與取代區508之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區502、閒置區504、系統區506與取代區 508的分組關係會動態地變動。例如,當閒置區504中的實體抹除單元損壞而被取代區508的實體抹除單元取代時,則原本取代區508的實體抹除單元會被關聯至閒置區504。
請參照圖7,記憶體控制電路單元104(或記憶體管理電路202)會配置邏輯單元LA(0)~LA(H)以映射資料區502的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體抹除單元來寫入資料,以輪替資料區502的實體抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別資料每個邏輯單元的資料被儲存在那個實體抹除單元,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統1000欲在邏輯子單元中存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會確認此邏輯子單元所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會在可複寫式非揮發性記憶體模組106中儲存邏輯轉實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制電路單元104(或記憶體管理電路202)會將邏輯轉實體位址映射表載入至緩衝記憶體208來維 護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯單元LA(0)~LA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯轉實體位址映射表。特別是,當記憶體控制電路單元104(或記憶體管理電路202)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯轉實體位址映射表會被載入至緩衝記憶體208來被更新。
如上所述,在本範例實施例中,記憶體儲存裝置100的可複寫式非揮發性記憶體模組106是以頁面為基礎來進行管理,因此,在執行寫入指令時,不管目前資料是要寫入至那個邏輯單元的邏輯子單元,記憶體控制電路單元104(或記憶體管理電路202)皆會以一個實體程式化單元接續一個實體程式化單元的方式來寫入資料(以下亦稱為隨機寫入機制)。具體來說,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個空的實體抹除單元作為目前使用之實體抹除單元(亦稱為作動實體抹除單元)來寫入資料。並且,當此目前使用之實體抹除單元已被寫滿時,記憶體控制電路單元104(或記憶體管理電路202)會再從閒置區504中提取另一個空的實體抹除單元作為目前使用之實體抹除單元,以繼續寫入對應來自於主機系統1000之寫入指令的資料。特別是,為了避免閒置區504的實體抹除單元被耗盡,當 記憶體控制電路單元104(或記憶體管理電路202)欲從閒置區504中提取實體抹除單元且閒置區504的實體抹除單元的數目下降到所設定之垃圾回收門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會先執行資料合併程序,來使資料區502的至少一個實體抹除單元中的資料成為無效資料,並且將資料區502中所儲存之資料皆為無效資料之實體抹除單元關聯回閒置區504,以致於閒置區504的實體抹除單元的數目大於所設定之垃圾回收門檻值。例如,在執行資料合併程序時,記憶體控制電路單元104(或記憶體管理電路202)至少需使用一個空的實體抹除單元,因此,垃圾回收門檻值至少會被設定為大於1的數值。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202 包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
請再參照圖5,主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準、UHS-II介面標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
電源管理電路208是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
緩衝記憶體210是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
第一檢查碼電路214與第二檢查碼電路216用以確保記憶體控制電路單元104內所傳輸之資料的正確性。在本範例實施 例中,第一檢查碼電路214與第二檢查碼電路216是相同的電路,並且配置在記憶體控制電路單元104中鄰近主機介面204或記憶體介面206處。具體來說,在記憶體管理電路202透過主機介面204從主機系統1000中接收到資料之後,第一檢查碼電路214會依據此資料產生對應的檢查碼。之後,在記憶體管理電路202透過記憶體介面206傳送資料至可複寫式非揮發性記憶體模組106之前,第二檢查碼電路216會依據對應此資料的檢查碼校驗此資料,以確保資料的正確性。例如,第一檢查碼電路214與第二檢查碼電路216是使用循環冗餘校驗(Cycle Redundancy Check,CRC)技術實作的電路。在另一範例實施例中,第二檢查碼電路216亦可是配置在可複寫式非揮發性記憶體模組106中。
第三檢查碼電路218是耦接至第二檢查碼電路216。在本範例實施例中,第三檢查碼電路218用以為已由第二檢查碼電路216完成校驗的資料重新產生新的檢查碼,並且將已校驗的資料和新的檢查碼傳送至可複寫式非揮發性記憶體模組106來進行程式化運作(即,寫入運作)。例如,第三檢查碼電路218是使用循環冗餘校驗技術實作的電路。
在本範例一範例實施例中,第一檢查碼電路214與第二檢查碼電路216的校驗能力是不同於第三檢查碼電路218的校驗能力。具體來說,第一檢查碼電路214與第二檢查碼電路216是以第一預設資料長度為單位來為資料產生對應檢查碼,而第三檢查碼電路218以第二預設資料長度為單位來為資料產生對應檢查 碼。例如,在一範例實施例中,第一預設資料長度為512位元組(Bytes)並且第一檢查碼電路214與第二檢查碼電路216所產生的檢查碼為2位元組;而第二預設資料長度為4千位元組(Kilobytes)並且第三檢查碼電路216所產生的檢查碼的長度為2位元組。
特別是,在一範例實施例中,第三檢查碼電路218更會以欲寫入的實體程式化單元的位址作為產生檢查碼的參數,由此可在讀取資料時確認所接收到的資料是否是從正確的位址中所讀取。
圖8是根據一範例實施例所繪示的執行寫入運作的資料流的範例示意圖。
請參照圖8,假設主機系統1000欲儲存4千位元組的資料至記憶體儲存裝置100,並且主機系統1000是以512位元組為單位傳送資料。當記憶體控制電路單元104(或主機介面204)從主機系統1000接收到寫入指令與資料長度為512位元組的第一筆資料(以下稱為資料串D1)時,第一檢查碼電路214會依據資料串D1產生對應的檢查碼CRC1。之後,記憶體管理電路202會處理包含資料串D1與檢查碼CRC1的資料集合DS1並且將資料集合DS1暫存在緩衝記憶體210中。
接著,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第二筆資料(以下稱為資料串D2)時,第一檢查碼電路214會依據資料串D2產生對應的檢查碼CRC2。之後,記憶體管理電路202會處理包含資料串D2 與檢查碼CRC2的資料集合DS2並且將資料集合DS2暫存在緩衝記憶體210中。
接著,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第三筆資料(以下稱為資料串D3)時,第一檢查碼電路214會依據資料串D3產生對應的檢查碼CRC3。之後,記憶體管理電路202會處理包含資料串D3與檢查碼CRC3的資料集合DS3並且將資料集合DS3暫存在緩衝記憶體210中。
接著,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第四筆資料(以下稱為資料串D4)時,第一檢查碼電路214會依據資料串D4產生對應的檢查碼CRC4。之後,記憶體管理電路202會處理包含資料串D4與檢查碼CRC4的資料集合DS4並且將資料集合DS4暫存在緩衝記憶體210中。
接著,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第五筆資料(以下稱為資料串D5)時,第一檢查碼電路214會依據資料串D5產生對應的檢查碼CRC5。之後,記憶體管理電路202會處理包含資料串D5與檢查碼CRC5的資料集合DS5並且將資料集合DS5暫存在緩衝記憶體210中。
接著,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第六筆資料(以下稱為 資料串D6)時,第一檢查碼電路214會依據資料串D2產生對應的檢查碼CRC6。之後,記憶體管理電路202會處理包含資料串D6與檢查碼CRC6的資料集合DS6並且將資料集合DS6暫存在緩衝記憶體210中。
接著,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第七筆資料(以下稱為資料串D7)時,第一檢查碼電路214會依據資料串D7產生對應的檢查碼CRC7。之後,記憶體管理電路202會處理包含資料串D7與檢查碼CRC7的資料集合DS7並且將資料集合DS7暫存在緩衝記憶體210中。
然後,記憶體控制電路單元104(或主機介面204)從主機系統1000接收到資料長度為512位元組的第八筆資料(以下稱為資料串D8)時,第一檢查碼電路214會依據資料串D8產生對應的檢查碼CRC8。之後,記憶體管理電路202會處理包含資料串D8與檢查碼CRC8的資料集合DS8並且將資料集合DS8暫存在緩衝記憶體210中。
在一範例實施例中,在接收到對應此寫入指令的所有資料之後,記憶體控制電路單元104(或記憶體管理電路202)就可傳送確認訊息給主機系統1000,以告知可再傳送下一個指令。然而,本發明不限於此,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)亦可在執行所接收到的寫入指令已將資料程式化至可複寫式非揮發性記憶體模組106之後,才傳送確 認訊息給主機系統1000。
之後,當記憶體控制電路單元104(或記憶體管理電路202)要執行所接收的寫入指令,以將所接收到的資料串D1~D8程式化至可複寫式非揮發性記憶體模組106時,記憶體控制電路單元104(或記憶體管理電路202)會選擇作動實體抹除單元中的一個空的實體程式化單元(以下稱為第一實體程式化單元)來寫入資料串D1~D8,並且產生對應的控制資訊CI(例如,對應的邏輯位址等資訊)。
特別是,暫存於緩衝記憶體210的資料集合DS1~DS8會被送至第二檢查碼電路216,並且第二檢查碼電路216會依據每個資料集合內的檢查碼來校驗對應的資料串,以確保資料集合內的資料串無錯誤位元。具體來說,第二檢查碼電路216會根據檢查碼CRC1來校驗資料串D1,以確認資料串D1在傳輸過程中無發生錯誤。類似地,第二檢查碼電路216會根據檢查碼CRC2~CRC8來校驗資料串D2~D8。
特別是,在將已校驗的資料串D1~D8寫入至第一實體程式化單元之前,錯誤檢查與校正電路212會為已校驗的資料串D1~D8產生對應的錯誤檢查與校正碼ECC,並且第三檢查碼電路218會為已校驗的資料串D1~D8產生對應的檢查碼NCRC。如上所述,第三檢查碼電路218是以第二預設長度為單位(例如,4千位元組)來產生檢查碼。因此,第三檢查碼電路218是根據已校驗的資料串D1~D8來產生對應的一個檢查碼。例如,在一範例實施 例中,第三檢查碼電路218會根據欲儲存已校驗的資料串D1~D8的第一實體程式化單元的位址資訊或/及已校驗的資料串D1~D8的內容來產生檢查碼NCRC。
最後,記憶體控制電路單元104(或記憶體管理電路202)會將包含已校驗的資料串D1~D8、控制資訊CI、檢查碼NCRC與錯誤檢查與校正碼ECC的資料框DF程式化至第一實體程式化單元。具體來說,已校驗的資料串D1~D8會被程式化至第一實體程式化單元的資料位元區,並且控制資訊CI、檢查碼NCRC與錯誤檢查與校正碼ECC會被程式化至冗餘位元區。
例如,當主機系統1000下達讀取指令來讀取儲存於第一實體程式化單元中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從第一實體程式化單元中讀取資料框DF。錯誤檢查與校正電路212會根據錯誤檢查與校正碼ECC來對資料串D1~D8進行錯誤校正程序,以校正資料串D1~D8中的錯誤位元。然後,已校正的資料串D1~D8與檢查碼NCRC會被送至第三檢查碼電路216。第三檢查碼電路216會根據檢查碼NCRC來校驗資料串D1~D8。例如,如上所述,檢查碼NCRC可根據第一實體程式化單元的位址資訊來產生,因此,透過此校驗,可確認所接收到的資料是否為儲存在第一實體程式化單元的資料。之後,第二檢查碼電路214會分別地為已校驗的資料串D1~D8產生對應的檢查碼CRC1~CRC8。然後,記憶體控制電路單元104(或記憶體管理電路202)會將分別含有資料串D1~D8與檢查碼CRC1~CRC8的資 料集合DS1~DS8暫存至緩衝記憶體210,並且依序地一筆接著一筆傳送給主機系統1000以回應此讀取指令。特別是,在透過主機介面204傳送資料之前,資料串會被傳送至第一檢查碼電路214,並且第一檢查碼電路214會使用對應的檢查碼來校驗資料串,以確保傳送給主機系統1000的資料的正確性。例如,在將資料串D1傳送給主機系統1000之前,第一檢查碼電路214會根據資料集合DS1中的檢查碼CRC1對資料串D1進行校驗,並且校驗後的資料串D1會經由主機介面204傳送給主機系統1000。類似地,傳送資料串DS2~DS8之前,第一檢查碼電路214會根據資料集合DS2~DS8中的檢查碼CRC2~CRC8對資料串DS2~DS8進行校驗。
必須了解的是,儘管在本範例實施例中,錯誤檢查與校正電路212是在資料校驗前進行錯誤校正程序,但本發發明不限於此。在另一範例實施例中,錯誤檢查與校正電路212亦可在資料校驗後進行錯誤校正程序。
第三檢查碼電路第三檢查碼電路第二檢查碼電路第一檢查碼電路第一檢查碼電路第一檢查碼電路第一檢查碼電路如上所述,依據第一檢查碼電路214所產生的檢查碼可以驗證資料串在記憶體控制電路單元104內傳送時是否發生錯誤。然而,依據主機系統1000的資料傳輸單位(例如,512位元組)來產生檢查碼(即,由第一檢查碼電路214所產生的檢查碼)的例子中,在將資料以實體程式化單元的大小(例如,4千位元組)為單位執行程式化時,大量的檢查碼會佔用冗餘位元區的空間,可能會造成冗餘位 元區無足夠空間儲存控制資訊或錯誤檢查與校正碼。在本範例實施例中,在將資料串傳送至可複寫式非揮發性記憶體模組之前,與第一檢查碼電路214相同的第二檢查碼電路216會先依據對應的檢查碼對資料串進行校驗,之後第三檢查碼電路218再為已校驗的多筆資料串來產生一個檢查碼(如圖8的例子所述)。基此,可在確保資料傳輸的正確性,同時又避免冗餘位元區空間不足的問題。
值得一提的是,在另一範例實施例中,記憶體控制電路單元104更可包括資料壓縮電路,以使資料位元區可儲存更多筆來自主機系統1000的資料串並且節省更多冗餘位元區的空間。具體來說,資料壓縮電路可將第二檢查碼電路216所校驗的資料串(例如,第一資料串)壓縮成壓縮資料(例如,第一已壓縮資料串)後才傳送給第三檢查碼電路218。例如,以圖8為例,一個實體程式化單元能儲存8筆資料串,而對應8筆資料串之總長度為16位元組的檢查碼會以資料長度為2位元組的檢查碼來替換,其節省的空間為14位元組。若資料長度為512位元組的資料串皆可被壓縮為128位元組的資料串時,一個實體程式化單元將能儲存16筆資料串,而對應16筆資料串之總長度為32位元組的檢查碼以資料長度為2位元組的檢查碼來替換,其節省的空間為30位元組。
圖9是根據一範例實施例所繪示之資料存取方法的流程圖。
請參照圖9,在步驟S901中,主機介面204從主機系統 1000中接收資料串(以下稱為第一資料串)。在步驟S903中,第一檢查碼電路214會產生對應第一資料串的檢查碼(以下稱為第一檢查碼)並且記憶體控制電路單元104(或記憶體管理電路202)會依據第一資料串與對應第一資料串的第一檢查碼來產生第一資料集合。
在步驟S905中,主機介面204從主機系統1000中接收另一資料串(以下稱為第二資料串)。在步驟S907中,第一檢查碼電路214會產生對應第二資料串的第一檢查碼並且記憶體控制電路單元104(或記憶體管理電路202)會依據第二資料串與對應第二資料串的第一檢查碼來產生第二資料集合。
在步驟S909中,記憶體控制電路單元104(或記憶體管理電路202)選擇一個空的實體程式化單元(以下稱為第一實體程式化單元)來準備進行程式化。
在步驟S911中,第二檢查碼電路216從第一資料集合中獲取第一資料串與對應第一資料串的第一檢查碼,並且使用對應第一資料串的第一檢查碼來校驗第一資料串;並且從第二資料集合中獲取第二資料串與對應第二資料串的第一檢查碼,並且使用對應第二資料串的第一檢查碼來校驗第二資料串。
之後,在步驟S913中,第三檢查碼電路218會依據已經由第二檢查碼電路216校驗的第一資料串與第二資料串來產生新的檢查碼(以下稱為第二檢查碼)。例如,在一範例實施例中,第三檢查碼電路218會依據第一資料串、第二資料串與第一實體程式 化單元的位址資訊來產生第二檢查碼,由此在讀取資料時可根據校驗結果確認所讀取之資料是否為儲存於第一實體程式化單元內的資料。此外,如上所述,第三檢查碼電路218的校驗能力是不同於第一檢查碼電路214與第二檢查碼電路216,因此,對應第一資料串與第二資料串的第一檢查碼的大小會小於第二檢查碼的大小。在另一範例實施例中,對應第一資料串與第二資料串的第一檢查碼的長度不小於第二檢查碼的長度。
在步驟S915中,記憶體控制電路單元104(或記憶體管理電路202)會依據已校驗的第一資料串與第二資料串以及第二檢查碼來產生資料框,並且透過記憶體介面206將資料框寫入至第一實體程式化單元。
必須了解的是,圖9的範例流程是以從主機系統1000接收兩筆資料串後將此兩筆資料串一起寫入至實體程式化單元為例進行描述,然而本發明不限於此。例如,在另一範例實施例中,記憶體控制電路單元104亦可在僅接收到一筆資料串就執行上述程式化運作。例如,上述步驟S903可被省略,第二檢查碼電路216僅校驗第一資料串,第三檢查碼電路218依據第一資料串來產生新的檢查碼,並且記憶體控制電路單元104(或記憶體管理電路202)依據已校驗的第一資料串以及第二檢查碼來產生資料框,且透過記憶體介面206將資料框寫入至第一實體程式化單元。此外,在另一範例實施例中,記憶體控制電路單元104亦可在接收到更多筆資料串後,才進行上述程式化運作。
綜上所述,本發明所提供的資料存取方法、記憶體控制電路單元與記憶體儲存裝置,能夠有效地確保在記憶體控制電路單元內傳輸過程中資料的正確性,同時避免資料冗員位元區的空間不足無法儲存大量檢查碼的問題。此外,本發明所提供的資料存取方法、記憶體控制電路單元與記憶體儲存裝置會根據程式化位址重新產生檢查碼,因此,在讀取運作時,可有效地避免讀取錯誤。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧電源管理電路
210‧‧‧緩衝記憶體
212‧‧‧錯誤檢查與校正電路
214‧‧‧第一檢查碼電路
216‧‧‧第二檢查碼電路
218‧‧‧第三檢查碼電路

Claims (24)

  1. 一種資料存取方法,用於一記憶體儲存裝置,其中該記憶體儲存裝置具有一可複寫式非揮發性記憶體模組,該可複寫式非發性記憶體模組具有多個實體抹除單元,且每一該些實體抹除單元具有多個實體程式化單元,該資料存取方法包括:接收一第一資料串,使用一第一檢查碼電路產生對應該第一資料串的一第一檢查碼並且依據該第一資料串與對應該第一資料串的該第一檢查碼來產生一第一資料集合;使用一第二檢查碼電路從該第一資料集合中獲取該第一資料串與對應該第一資料串的該第一檢查碼,並且使用對應該第一資料串的該第一檢查碼來校驗該第一資料串;依據對應已校驗的該第一資料串的一資訊使用第三檢查碼電路來產生一第二檢查碼;使用一錯誤檢查與校正電路來產生一錯誤檢查與校正碼;依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生一資料框;以及將該資料框寫入至該些實體程式化單元之中的一第一實體程式化單元,其中該第一檢查碼電路不同於該第三檢查碼電路。
  2. 如申請專利範圍第1項所述之資料存取方法,其中該第一檢查碼的長度不小於該第二檢查碼的長度。
  3. 如申請專利範圍第1項所述之資料存取方法,更包括: 接收一第二資料串,使用該第一檢查碼電路產生對應該第二資料串的一第一檢查碼並且依據該第二資料串與對應該第二資料串的該第一檢查碼來產生一第二資料集合;以及使用該第二檢查碼電路從該第二資料集合中獲取該第二資料串與對應該第二資料串的該第一檢查碼,並且使用對應該第二資料串的該第一檢查碼來校驗該第二資料串,其中依據對應已校驗的該第一資料串的該資訊使用該第三檢查碼電路來產生該第二檢查碼的步驟包括:依據已校驗的該第一資料串與已校驗的該第二資料串使用該第三檢查碼電路來產生該第二檢查碼,其中使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼的步驟包括:依據已校驗的該第一資料與已校驗的該第二資料使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的步驟包括:依據已校驗的該第一資料串、已校驗的該第二資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  4. 如申請專利範圍第3項所述之資料存取方法,其中對應該第一資料串的該第一檢查碼的大小與對應該第二資料串的該第一檢查碼的大小的總和大於該第二檢查碼的大小。
  5. 如申請專利範圍第1項所述之資料存取方法,其中依據對應已校驗的該第一資料串的該資訊使用該第三檢 查碼電路來產生該第二檢查碼的步驟包括:依據該第一實體程式化單元的位址資訊使用該第三檢查碼電路來產生該第二檢查碼。
  6. 如申請專利範圍第1項所述之資料存取方法,更包括:壓縮已校驗的該第一資料串以產生一第一已壓縮資料串,其中依據對應已校驗的該第一資料串的該資訊使用該第三檢查碼電路來產生該第二檢查碼的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該第三檢查碼電路來產生該第二檢查碼,其中使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  7. 如申請專利範圍第1項所述之資料存取方法,更包括:壓縮已校驗的該第一資料串以產生一第一已壓縮資料串,其中依據對應已校驗的該第一資料串的該資訊使用第三檢查碼電路來產生該第二檢查碼的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串與該 第一實體程式化單元的位址資訊使用該第三檢查碼電路來產生該第二檢查碼,其中使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的步驟包括:依據對應已校驗的該第一資料串的該第一已壓縮資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  8. 如申請專利範圍第1項所述之資料存取方法,更包括:從該第一實體程式化單元中讀取該資料框;以及依據所讀取的該資料框中的該第二檢查碼使用該第三檢查碼電路來檢查所讀取的該資料框中的該第一資料。
  9. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面;一第一檢查碼電路,耦接至該主機介面;一記憶體管理電路,耦接至該第一檢查碼電路;一錯誤檢查與校正電路,耦接至該記憶體管理電路;一第二檢查碼電路,耦接至該記憶體管理電路;一第三檢查碼電路,耦接至該第二檢查碼電路;以及 一記憶體介面,耦接至該第三檢查碼電路並且用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組,該可複寫式非發性記憶體模組具有多個實體抹除單元,且每一該些實體抹除單元具有多個實體程式化單元,其中該主機介面接收一第一資料串,該第一檢查碼電路產生對應該第一資料串的一第一檢查碼,其中該記憶體管理電路依據該第一資料串與對應該第一資料串的該第一檢查碼來產生一第一資料集合,其中該第二檢查碼電路從該第一資料集合中獲取該第一資料串與對應該第一資料串的該第一檢查碼,並且使用對應該第一資料串的該第一檢查碼來校驗該第一資料串,其中該第三檢查碼電路依據對應已校驗的該第一資料串一資訊產生一第二檢查碼,其中該錯誤檢查與校正電路產生一錯誤檢查與校正碼,其中該記憶體管理電路依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生一資料框,其中該記憶體管理電路透過該記憶體介面將該資料框寫入至該些實體程式化單元之中的一第一實體程式化單元,其中該第一檢查碼電路不同於該第三檢查碼電路。
  10. 如申請專利範圍第9項所述之記憶體控制電路單元,其中該第一檢查碼的長度不小於該第二檢查碼的長度。
  11. 如申請專利範圍第9項所述之記憶體控制電路單元, 其中該主機介面接收一第二資料串,其中該第一檢查碼電路產生對應該第二資料串的一第一檢查碼,其中該記憶體管理電路依據該第二資料串與對應該第二資料串的該第一檢查碼來產生一第二資料集合,其中該第二檢查碼電路從該第二資料集合中獲取該第二資料串與對應該第二資料串的該第一檢查碼,並且使用對應該第二資料串的該第一檢查碼來校驗該第二資料串,其中在上述該第三檢查碼電路依據對應已校驗的該第一資料串的該資訊產生該第二檢查碼的運作中,該第三檢查碼電路是依據已校驗的該第一資料串與已校驗的該第二資料串來產生該第二檢查碼,其中在上述產生該錯誤檢查與校正碼的運作中,該錯誤檢查與校正電路是依據已校驗的該第一資料與已校驗的該第二資料使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中在上述依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的運作中,該記憶體管理電路是依據已校驗的該第一資料串、已校驗的該第二資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  12. 如申請專利範圍第11項所述之記憶體控制電路單元,其中對應該第一資料串的該第一檢查碼的大小與對應該第二資料串的該第一檢查碼的大小的總和大於該第二檢查碼的大小。
  13. 如申請專利範圍第9項所述之記憶體控制電路單元,其中在上述依據對應已校驗的該第一資料串的該資訊來產生該第二檢查碼的運作中,該第三檢查碼電路是依據該第一實體程式化單元的位址資訊使用該第三檢查碼電路來產生該第二檢查碼。
  14. 如申請專利範圍第9項所述之記憶體控制電路單元,更包括:一資料壓縮電路,耦接至該記憶體管理電路,且用以壓縮已校驗的該第一資料串以產生一第一已壓縮資料串,其中在上述依據對應已校驗的該第一資料串的該資訊來產生該第二檢查碼的運作中,該第三檢查碼電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該第三檢查碼電路來產生該第二檢查碼,其中在上述產生該錯誤檢查與校正碼的運作中,該錯誤檢查與校正電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中在上述依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的運作中,該記憶體管理電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  15. 如申請專利範圍第9項所述之記憶體控制電路單元,更包括: 一資料壓縮電路,耦接至該記憶體管理電路,且用以壓縮已校驗的該第一資料串以產生一第一已壓縮資料串,其中在上述依據對應已校驗的該第一資料串的該資訊來產生該第二檢查碼的運作中,該第三檢查碼電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串與該第一實體程式化單元的位址資訊使用該第三檢查碼電路來產生該第二檢查碼,其中在上述產生該錯誤檢查與校正碼的運作中,該錯誤檢查與校正電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中在上述依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的運作中,該記憶體管理電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  16. 如申請專利範圍第9項所述之記憶體控制電路單元,其中該記憶體管理電路從該第一實體程式化單元中讀取該資料框,並且該第三檢查碼電路依據所讀取的該資料框中的該第二檢查碼來檢查所讀取的該資料框中的該第一資料。
  17. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體抹除單元,且每一該些實體抹除單元具有多個實體程式化單元;以及 一記憶體控制電路單元,包括一主機介面、一記憶體介面、一第一檢查碼電路、一第二檢查碼電路、一第三檢查碼電路、一記憶體管理電路與一錯誤檢查與校正電路,其中該主機介面耦接至該連接介面單元,該第一檢查碼電路耦接至該主機介面,該記憶體管理電路耦接至該第一檢查碼電路,該第二檢查碼電路耦接至該記憶體管理電路,該第三檢查碼電路耦接至該第二檢查碼電路,該記憶體介面耦接至該第三檢查碼電路與該可複寫式非揮發性記憶體模組,並且該錯誤檢查與校正電路耦接至該記憶體管理電路,其中該主機介面從該主機系統中接收一第一資料串,該第一檢查碼電路產生對應該第一資料串的一第一檢查碼,其中該記憶體管理電路依據該第一資料串與對應該第一資料串的該第一檢查碼來產生一第一資料集合,其中該第二檢查碼電路從該第一資料集合中獲取該第一資料串與對應該第一資料串的該第一檢查碼,並且使用對應該第一資料串的該第一檢查碼來校驗該第一資料串,其中該第三檢查碼電路依據對應已校驗的該第一資料串的一資訊產生一第二檢查碼,其中該錯誤檢查與校正電路產生一錯誤檢查與校正碼,其中該記憶體管理電路依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生一資料框,其中該記憶體管理電路透過該記憶體介面將該資料框寫入至 該些實體程式化單元之中的一第一實體程式化單元,其中該第一檢查碼電路是相同於該第二檢查碼電路。
  18. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該第一檢查碼的長度不小於該第二檢查碼的長度。
  19. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該主機介面接收一第二資料串,其中該第一檢查碼電路產生對應該第二資料串的一第一檢查碼,其中該記憶體管理電路依據該第二資料串與對應該第二資料串的該第一檢查碼來產生一第二資料集合,其中該第二檢查碼電路從該第二資料集合中獲取該第二資料串與對應該第二資料串的該第一檢查碼,並且使用對應該第二資料串的該第一檢查碼來校驗該第二資料串,其中在上述該第三檢查碼電路依據對應已校驗的該第一資料串的該資訊產生該第二檢查碼的運作中,該第三檢查碼電路是依據已校驗的該第一資料串與已校驗的該第二資料串來產生該第二檢查碼,其中在上述產生該錯誤檢查與校正碼的運作中,該錯誤檢查與校正電路是依據已校驗的該第一資料與已校驗的該第二資料使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼其中在上述依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的運作中,該記憶體管理電路 是依據已校驗的該第一資料串、已校驗的該第二資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  20. 如申請專利範圍第19項所述之記憶體儲存裝置,其中對應該第一資料串的該第一檢查碼的大小與對應該第二資料串的該第一檢查碼的大小的總和大於該第二檢查碼的大小。
  21. 如申請專利範圍第17項所述之記憶體儲存裝置,其中在上述依據對應已校驗的該第一資料串的該資訊來產生該第二檢查碼的運作中,該第三檢查碼電路是依據該第一實體程式化單元的位址資訊使用該第三檢查碼電路來產生該第二檢查碼。
  22. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制電路單元更包括一資料壓縮電路,該記憶體壓縮電路耦接至該記憶體管理電路且用以壓縮已校驗的該第一資料串以產生一第一已壓縮資料串,其中在上述依據對應已校驗的該第一資料串的該資訊來產生該第二檢查碼的運作中,該第三檢查碼電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該第三檢查碼電路來產生該第二檢查碼,其中在上述產生該錯誤檢查與校正碼的運作中,該錯誤檢查與校正電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中在上述依據已校驗的該第一資料串、該第二檢查碼與該 錯誤檢查與校正碼來產生該資料框的運作中,該記憶體管理電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  23. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制電路單元更包括一資料壓縮電路,該記憶體壓縮電路耦接至該記憶體管理電路且用以壓縮已校驗的該第一資料串以產生一第一已壓縮資料串,其中在上述依據對應已校驗的該第一資料串的該資訊來產生該第二檢查碼的運作中,該第三檢查碼電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串與該第一實體程式化單元的位址資訊使用該第三檢查碼電路來產生該第二檢查碼,其中在上述產生該錯誤檢查與校正碼的運作中,該錯誤檢查與校正電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串使用該錯誤檢查與校正電路來產生該錯誤檢查與校正碼,其中在上述依據已校驗的該第一資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框的運作中,該記憶體管理電路是依據對應已校驗的該第一資料串的該第一已壓縮資料串、該第二檢查碼與該錯誤檢查與校正碼來產生該資料框。
  24. 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體管理電路從該第一實體程式化單元中讀取該資料框,並且該第三檢查碼電路依據所讀取的該資料框中的該第二檢查碼來檢查所讀取的該資料框中的該第一資料。
TW104113217A 2015-04-24 2015-04-24 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 TWI541809B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104113217A TWI541809B (zh) 2015-04-24 2015-04-24 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
US14/736,284 US9600363B2 (en) 2015-04-24 2015-06-11 Data accessing method, memory controlling circuit unit and memory storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104113217A TWI541809B (zh) 2015-04-24 2015-04-24 資料存取方法、記憶體控制電路單元與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI541809B true TWI541809B (zh) 2016-07-11
TW201638957A TW201638957A (zh) 2016-11-01

Family

ID=56997108

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104113217A TWI541809B (zh) 2015-04-24 2015-04-24 資料存取方法、記憶體控制電路單元與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9600363B2 (zh)
TW (1) TWI541809B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI645296B (zh) * 2017-10-17 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
JP7282066B2 (ja) * 2020-10-26 2023-05-26 株式会社日立製作所 データ圧縮装置及びデータ圧縮方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191382B2 (en) 2003-06-02 2007-03-13 Fujitsu Limited Methods and apparatus for correcting data and error detection codes on the fly
KR101062755B1 (ko) * 2009-07-29 2011-09-06 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 메모리 시스템 및 그 제어 방법
KR20110073932A (ko) 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
US8468431B2 (en) * 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US9292379B2 (en) 2013-09-28 2016-03-22 Intel Corporation Apparatus and method to manage high capacity storage devices

Also Published As

Publication number Publication date
US20160314040A1 (en) 2016-10-27
TW201638957A (zh) 2016-11-01
US9600363B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
TWI459197B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI534618B (zh) 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
TWI479492B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN109491588B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TWI646543B (zh) 資料編碼方法、資料解碼方法以及儲存控制器
TWI545432B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
TWI656531B (zh) 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置
TW202009942A (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
TWI506634B (zh) 資料存取方法、記憶體控制電路單元及記憶體儲存裝置
TW201913382A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TW201913383A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI545581B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TWI548991B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI591640B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI467590B (zh) 資料處理方法、記憶體控制器及記憶體儲存裝置
TWI634561B (zh) 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
TWI575533B (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
TWI541809B (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
TWI709850B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
CN113724774B (zh) 解码方法、存储器存储装置及存储器控制电路单元
TWI750013B (zh) 資料存取方法、記憶體控制電路單元及記憶體儲存裝置
TWI545576B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置