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

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

Info

Publication number
TWI575533B
TWI575533B TW105112047A TW105112047A TWI575533B TW I575533 B TWI575533 B TW I575533B TW 105112047 A TW105112047 A TW 105112047A TW 105112047 A TW105112047 A TW 105112047A TW I575533 B TWI575533 B TW I575533B
Authority
TW
Taiwan
Prior art keywords
user data
group
unit
memory
parity code
Prior art date
Application number
TW105112047A
Other languages
English (en)
Other versions
TW201738898A (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 TW105112047A priority Critical patent/TWI575533B/zh
Priority to US15/182,609 priority patent/US9996415B2/en
Application granted granted Critical
Publication of TWI575533B publication Critical patent/TWI575533B/zh
Publication of TW201738898A publication Critical patent/TW201738898A/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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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]
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring

Description

資料校正方法、記憶體控制電路單元與記憶體儲存裝置
本發明是有關於一種資料校正方法,且特別是有關於一種用於可複寫式非揮發性記憶體模組的資料校正方法、記憶體控制電路單元與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,當欲將使用者資料寫入至可複寫式非揮發性記憶體模組的一個實體程式化單元時,記憶體控制電路單元會產生對應此使用者資料的錯誤校正碼並且將使用者資料與對應的錯誤校正碼一併被寫入至同一個程式化單元中。然而,當讀取實體程式化單元中的使用者資料時,可能會因為錯誤位元過多(例如,錯誤位元數超過錯誤檢查與校正電路可校正的錯誤位元數),而造成所讀取的資料無法被正確校正。因此,如何能夠在使用者資料無法依據實體程式化單元中的錯誤校正碼來正確校正時,還能將正確資料傳送給主機系統,為此領域技術人員所致力的目標。
本發明提供一種資料校正方法、記憶體控制電路單元與記憶體儲存裝置,其夠在緩衝記憶體的空間有限下,在資料時,使用多實體程式化單元的群組同位碼來正確地校正無法 依據單實體程式化單元的同位碼校正的資料。
本發明的一範例實施例提出一種用於可複寫式非揮發性記憶體模組的資料校正方法,此可複寫式非揮發性記憶體模組包括多個實體程式化單元,並且此些實體程式化單元被分組為多個編碼群組。本資料校正方法包括:從此些實體程式化單元之中的第一實體程式化單元中讀取第一使用者資料與對應此第一使用者資料的第一同位碼至緩衝記憶體,其中此第一實體程式化單元屬於該些編碼群組之中的第一編碼群組。本資料校正方法還包括:倘若第一校正電路無法依據所讀取的第一同位碼來校正從第一實體程式化單元中所讀取的第一使用者資料時,從此些實體程式化單元之中的至少另一實體程式化單元中讀取至少一第一群組同位碼至緩衝記憶體以將第一群組同位碼傳送至第二校正電路,並且分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體以將所讀取的使用者資料之中的多個已校正使用者資料傳送至第二校正電路,其中第一群組同位碼是藉由編碼儲存在該第一編碼群組的實體程式化單元中的多個使用者資料所產生。本方法更包括,藉由第二校正電路分批解碼所接收的已校正使用者資料與第一群組同位碼以獲取對應第一使用者資料的已校正第一使用者資料,並且輸出對應第一使用者資料的已校正第一使用者資料。
在本發明的一範例實施例中,上述藉由第二校正電路分批解碼所接收的已校正使用者資料與第一群組同位碼以獲取對應第一使用者資料的已校正第一使用者資料的步驟包括:藉由第二校正電路分批解碼所接收的已校正使用者資料與第一群組同位碼以獲得待使用資料;以及藉由第二校正電路利用此待使用資料及第一使用者資料及第一群組同位碼獲得對應第一使用者資料的已校正第一使用者資料。
在本發明的一範例實施例中,上述的資料校正方法更包括:在緩衝記憶體中配置一第一暫存區以暫存上上述第一群組同位碼;在緩衝記憶體中配置一第二暫存區以暫存分批從屬於第一編碼群組的實體程式化單元中讀取的使用者資料;以及在緩衝記憶體中配置第三暫存區以暫存對應該第一使用者資料的該已校正第一使用者資料。在此,第二暫存區的大小小於儲存在屬於第一編碼群組的所有實體程式化單元的大小。
在本發明的一範例實施例中,屬於該第一編碼群組的實體程式化單元的個數為N,該至少一第一群組同位碼的個數為M,該第一暫存區的大小為M個實體程式化單元的可儲存容量,該第二暫存區的大小為T個實體程式化單元的可儲存容量,並且該第三暫存區的大小為X個實體程式化單元的可儲存容量,其中X為第二校正電路的最大可校正資料數並且N大於X與T的總和。
在本發明的一範例實施例中,其中T為1。
在本發明的一範例實施例中,上述從至少另一實體程式化單元中讀取第一群組同位碼至緩衝記憶體以將第一群組同位碼傳送至第二校正電路,並且分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體以將所讀取的使用者資料之中的已校正使用者資料傳送至第二校正電路的步驟包括:(a)從至少另一實體程式化單元中讀取第一群組同位碼至緩衝記憶體;(b)傳送一解碼初始化指令至第二校正電路;(c)從該緩衝記憶體中傳送第一群組同位碼至第二校正電路;(d)依序從第一編碼群組的實體程式化單元中選取一個實體程式化單元,並且從所選擇的實體程式化單元中讀取對應使用者資料與對應同位碼;(e)倘若所讀取的對應使用者資料可依據所讀取的對應同位碼被校正而產生一已校正使用者資料時,將所產生的已校正使用者資料傳送至第二校正電路;以及(f)判斷第一編碼群組的所有實體程式化單元是否都已選取,其中倘若第一編碼群組的至少一實體程式化單元尚未被選取時,則重複執行上述步驟(d)、步驟(e)與步驟(f),並且倘若第一編碼群組的所有實體程式化單元皆已選取,則從第二校正電路中取得對應第一使用者資料的已校正第一使用者資料。
本發明的一範例實施例提出一種用於控制可複寫式非揮發性記憶體模組的記憶體控制電路單元,其中此可複寫式非揮發性記憶體模組包括多個實體程式化單元。此記憶體控制電路單元包括用以耦接至主機系統的主機介面、用以耦接至該可複寫式非揮發性記憶體模組的記憶體介面、包括一第一校正電路與一第二校正電路的錯誤檢查與校正電路、緩衝記憶體和記憶體管理電路。記憶體管理電路耦接至主機介面、錯誤檢查與校正電路、記憶體介面、錯誤檢查與校正電路與緩衝記憶體。記憶體管理電路用以將此些實體程式化單元分組為多個編碼群組。記憶體管理電路更用以從此些實體程式化單元之中的第一實體程式化單元中讀取第一使用者資料與對應第一使用者資料的第一同位碼至緩衝記憶體,其中第一實體程式化單元屬於此些編碼群組之中的第一編碼群組。此外,錯誤檢查與校正電路的第一校正電路用以根據第一同位碼校正第一使用者資料。倘若第一校正電路無法依據所讀取的第一同位碼來正確校正從第一實體程式化單元中所讀取的第一使用者資料時,記憶體管理電路更用以從此些實體程式化單元之中的至少另一實體程式化單元中讀取至少一第一群組同位碼至緩衝記憶體以將第一群組同位碼傳送至第二校正電路,並且分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體以將所讀取的使用者資料之中的多個已校正使用者資料傳送至第二校正電路,以及第二校正電路分批解碼所接收的已校正使用者資料與第一群組同位碼以獲取對應第一使用者資料的已校正第一使用者資料,其中第一群組同位碼是藉由編碼儲存在第一編碼群組的實體程式化單元中的多個使用者資料所產生。再者,記憶體管理電路更用以輸出從第二校正電路中接收的對應第一使用者資料的已校正第一使用者資料至主機系統。
在本發明的一範例實施例中,在分批解碼所接收的已校正使用者資料與第一群組同位碼以獲取對應第一使用者資料的已校正第一使用者資料的運作中,第二校正電路分批解碼所接收的已校正使用者資料與第一群組同位碼以獲得待使用資料,並且利用此待使用資料及第一使用者資料及第一群組同位碼獲得對應第一使用者資料的已校正第一使用者資料。
在本發明的一範例實施例中,記憶體管理電路在緩衝記憶體中配置第一暫存區、第二暫存區與第三暫存區,其中第一暫存區暫存第一群組同位碼,第二暫存區暫存分批從屬於第一編碼群組的實體程式化單元中讀取的使用者資料,並且第三暫存區暫存對應第一使用者資料的已校正第一使用者資料。在此,第二暫存區的大小小於屬於第一編碼群組的所有實體程式化單元的容量。
在本發明的一範例實施例中,在從至少另一實體程式化單元中讀取第一群組同位碼至緩衝記憶體以將第一群組同位碼傳送至第二校正電路,並且分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體以將所讀取的使用者資料之中的已校正使用者資料傳送至第二校正電路的運作中,記憶體管理電路執行下列運作:(a)從至少另一實體程式化單元中讀取第一群組同位碼至緩衝記憶體;(b)傳送一解碼初始化指令至第二校正電路;(c)從該緩衝記憶體中傳送第一群組同位碼至第二校正電路;(d)依序從第一編碼群組的實體程式化單元中選取一個實體程式化單元,並且從所選擇的實體程式化單元中讀取對應使用者資料與對應同位碼;(e)倘若所讀取的對應使用者資料可依據所讀取的對應同位碼被校正而產生一已校正使用者資料時,將所產生的已校正使用者資料傳送至第二校正電路;以及(f)判斷第一編碼群組的所有實體程式化單元是否都已選取,其中倘若第一編碼群組的至少一實體程式化單元尚未被選取時,則重複執行上述運作(d)、運作(e)與運作(f),並且倘若第一編碼群組的所有實體程式化單元皆已選取,則從第二校正電路中取得對應第一使用者資料的已校正第一使用者資料。
本發明的一範例實施例提出一種記憶體儲存裝置,其包括用以耦接至主機系統的連接介面單元、具有多個實體程式化單元的可複寫式非揮發性記憶體模組以及上述記憶體控制電路單元。
基於上述,本發明的資料校正方法、記憶體控制電路單元、記憶體儲存裝置能夠在緩衝記憶體空間有限下,在從實體程式化單元中所讀取的資料無法依據其對應的同位碼正確校正時,更依據儲存在另一個實體程式化單元的群組同位碼來校正資料,由此有效提升記憶體儲存裝置的可靠度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖,且圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114是可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication Storage, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據一範例實施例所繪示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment, SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel 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-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等操作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404,並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406具有實體抹除單元410(0)~410(N)。每一實體抹除單元分別具有複數個實體程式化單元,其中屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含8個實體存取位址,且一個實體存取位址的大小為512位元組(byte)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,在一範例實施例中,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面或實體扇區,但本發明不以此為限。
在本範例實施例中,可複寫式非揮發性記憶體模組406為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個資料位元的快閃記憶體模組)。然而,本發明不限於此,可複寫式非揮發性記憶體模組406亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個資料位元的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個資料位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
記憶體管理電路502用以控制記憶體控制電路單元404的整體操作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10操作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等操作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10操作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等操作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等操作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且具有第一校正電路512-1與第二校正電路512-2,以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512的第一校正電路512-1會為對應此寫入指令的使用者資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。此外,在本範例實施例中,第二校正電路514會根據多個實體程式化單元(此些實體程式化單元是可稱為一個編碼群組)的使用者資料來產生至少一個校正碼,並且記憶體管理電路502會將所產生的校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取使用者會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的使用者資料錯誤檢查與校正程序。特別是,若使用對應的錯誤檢查與校正碼無法成功校正所讀取的使用者資料,記憶體管理電路502會從可複寫式非揮發性記憶體模組406中讀取儲存在對應編碼群組的實體程式化單元的使用者資料以及對應的校正碼,並且第二校正電路514會根據對應編碼群組內之其他實體程式化單元的使用者資料和對應的校正碼來校正第一校正電路512-1無法成功校正的使用者資料。
也就是說,錯誤檢查與校正電路512的第一校正電路512-1執行編碼程序的基本單位是一個框架(frame)並且是對儲存於一個實體程式化單元中的資料進行單框架(single-frame)編碼。而錯誤檢查與校正電路512的第二校正電路514是對儲存於多個實體程式化單元中的資料進行多框架(multi-frame)編碼。在此,一個框架包括多個資料位元。在本範例實施例中,一個框架包括256個位元。然而,在另一範例實施例中,一個框架也可以包括更多或更少的位元。例如,在本範例實施例中,單框架編碼是採用低密度奇偶檢查校正碼(low density parity code,LDPC)、BCH碼、迴旋碼(convolutional code)或渦輪碼(turbo code)等編碼演算法的至少其中之一,並且多框架編碼是採用里德-所羅門碼(Reed-solomon codes, RS codes)演算法。必須了解的,上述編碼演算法僅為範例,在另一範例實施例中,更多未列於上的編碼演算法也可以被採用,在此便不贅述。根據所採用的編碼演算法,錯誤檢查與校正電路512可以編碼欲保護之資料來產生相對應的錯誤校正碼及/或錯誤檢查碼。在本範例實施例中,經由單框架編碼產生的錯誤校正碼及/或錯誤檢查碼將統稱為同位碼(parity code),並且經由多框架編碼產生的錯誤校正碼及/或錯誤檢查碼將統稱為群組同位碼(parity code)。
圖6與圖7是根據一範例實施例所繪示之管理實體抹除單元的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的操作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖6,記憶體控制電路單元404(或記憶體管理電路502)會將實體抹除單元410(0)~410(N)邏輯地分組為資料區602、閒置區604、系統區606與取代區608。
邏輯上屬於資料區602與閒置區604的實體抹除單元是用以儲存來自於主機系統11的資料。具體來說,資料區602的實體抹除單元是被視為已儲存資料的實體抹除單元,而閒置區604的實體抹除單元是用以替換資料區602的實體抹除單元。也就是說,當從主機系統11接收到寫入指令與欲寫入之資料時,記憶體管理電路502會從閒置區604中提取實體抹除單元,並且將資料寫入至所提取的實體抹除單元中,以替換資料區602的實體抹除單元。
邏輯上屬於系統區606的實體抹除單元是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區608中的實體抹除單元是用於壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區608中仍存有正常之實體抹除單元並且資料區602的實體抹除單元損壞時,記憶體管理電路502會從取代區608中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,資料區602、閒置區604、系統區606與取代區608之實體抹除單元的數量會根據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的操作中,實體抹除單元關聯至資料區602、閒置區604、系統區606與取代區608的分組關係會動態地變動。例如,當閒置區604中的實體抹除單元損壞而被取代區608的實體抹除單元取代時,則原本取代區608的實體抹除單元會被關聯至閒置區604。
請參照圖7,記憶體控制電路單元404(或記憶體管理電路502)會配置邏輯單元LBA(0)~LBA(H)以映射資料區602的實體抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應之實體抹除單元的實體程式化單元。並且,當主機系統11欲寫入資料至邏輯單元或更新儲存於邏輯單元中的資料時,記憶體控制電路單元404(或記憶體管理電路502)會從閒置區604中提取一個實體抹除單元來寫入資料,以輪替資料區602的實體抹除單元。在本範例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的資料被儲存在哪個實體抹除單元,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會記錄邏輯單元與實體抹除單元之間的映射。並且,當主機系統11欲在邏輯子單元中存取資料時,記憶體控制電路單元404(或記憶體管理電路502)會確認此邏輯子單元所屬的邏輯單元,並且在此邏輯單元所映射的實體抹除單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會在可複寫式非揮發性記憶體模組406中儲存邏輯位址-實體位址映射表來記錄每一邏輯單元所映射的實體抹除單元,並且當欲存取資料時記憶體控制電路單元404(或記憶體管理電路502)會將邏輯位址-實體位址映射表載入至緩衝記憶體508來維護。
值得一提的是,由於緩衝記憶體508的容量有限無法儲存記錄所有邏輯單元之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元404(或記憶體管理電路502)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯位址-實體位址映射表。特別是,當記憶體控制電路單元404(或記憶體管理電路502)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬之邏輯區域的邏輯位址-實體位址映射表會被載入至緩衝記憶體508來被更新。
如上所述,在本範例實施例中,可複寫式非揮發性記憶體模組406的每一個實體程式化單元的資料位元區可儲存使用者資料,並且每一個實體程式化單元的冗餘位元區可儲存對應之使用者資料的同位碼。特別是,記憶體控制電路單元404(或記憶體管理電路502)更會將此些實體程式化單元指派(或分組)為多個編碼群組(即,每一個編碼群組可包括一個或多個實體程式化單元)。進一步地,錯誤檢查與校正電路512會根據分組至同一個編碼群組的實體程式化單元中所儲存的資料來額外產生分別對應各編碼群組的群組同位碼。例如,記憶體控制電路單元404(或錯誤檢查與校正電路512)會根據分組至同一個編碼群組的實體程式化單元的資料位元區中所儲存的資料來產生對應各編碼群組的群組同位碼。另外,記憶體控制電路單元404(或記憶體管理電路502)會將所產生的群組同位碼儲存至可複寫式非揮發性記憶體模組406中的實體程式化單元中。之後,若實體程式化單元的冗餘位元區的同位碼無法校正從此實體程式化單元之資料位元區中讀取的資料時,記憶體控制電路單元404(或錯誤檢查與校正電路512)可使用對應的群組同位碼來校正所讀取的資料。
圖8是根據本發明一範例實施例所繪示之寫入資料至可複寫式非揮發性記憶體模組的範例。在此假設實體抹除單元410(0)的實體程式化單元810(0)~810(7)被分組為同一個編碼群組(以下可參考為第一編碼群組)並且當收到來自於主機系統11的寫入指令時,目前屬於閒置區604的實體抹除單元410(0)會被選擇作為作動實體抹除單元來寫入資料。
請參照圖8,當從主機系統11接到從某個邏輯位址(即,邏輯子單元)開始寫入資料的寫入指令及對應的使用者資料UD(0)~UD(7)時,記憶體控制電路單元404(或記憶體管理電路502)會先在緩衝記憶體508配置一個暫存區,並且將使用者資料UD(0)~UD(7)暫存至在緩衝記憶體508中所配置的暫存區。
之後,記憶體控制電路單元404(或記憶體管理電路502)會將使用者資料UD(0)與編碼初始化指令傳送至錯誤檢查與校正電路512的第一校正電路512-1,而第一校正電路512-1會根據使用者資料UD(0)產生對應的同位碼ECC(0)。此外,記憶體控制電路單元404(或記憶體管理電路502)會傳送使用者資料UD(0)與一編碼初始化指令給錯誤檢查與校正電路512的第二校正電路512-2,而第二校正電路512-2會根據使用者資料UD(0)執行編碼運算(即,用於上述群組編碼的編碼運算)並保留運算結果。在獲取對應使用者資料UD(0)的同位碼ECC(0)後,記憶體控制電路單元404(或記憶體管理電路502)會下達寫入指令序列以將使用者資料UD(0)與同位碼ECC0寫入至實體程式化單元810(0)中。
接著,記憶體控制電路單元404(或記憶體管理電路502)會將使用者資料UD(1)與編碼初始化指令傳送至錯誤檢查與校正電路512的第一校正電路512-1,而第一校正電路512-1會根據使用者資料UD(1)產生對應的同位碼ECC(1)。此外,記憶體控制電路單元404(或記憶體管理電路502)會傳送使用者資料UD(1)給錯誤檢查與校正電路512的第二校正電路512-2,而第二正電路512-2會依據先前的運算結果與使用者資料UD(1)執行編碼運算(即,用於上述群組編碼的編碼運算)並保留運算結果。在獲取對應使用者資料UD(1)的同位碼ECC(1)後,記憶體控制電路單元404(或記憶體管理電路502)會下達寫入指令序列以將使用者資料UD(1)與同位碼ECC(1)寫入至實體程式化單元810(1)中。
後續,以此類推,記憶體控制電路單元404(或記憶體管理電路502)會將使用者資料UD(2)~UD(7)和同位碼ECC(2)~ECC(7)寫入至實體程式化單元810(2)~810(7)中。特別是,在完成第一編碼群組的實體程式化單元的寫入操作後,記憶體控制電路單元404(或記憶體管理電路502)會下達一指令以從錯誤檢查與校正電路512的第二校正電路512-2取得群組編碼的運算結果作為第一編碼群組的群組同位碼GPC(0),並且將群組同位碼GPC(0)寫入至只少另一個實體程式化單元(例如,實體程式化單元810(8))。
必須了瞭解的是,圖8僅為一個範例,在本範例實施例中,一個編碼群組可以包含N筆使用者資料及對應的M筆群組同位碼,而第二校正電路512-2依據M筆群組同位碼最多可校正X筆使用者資料(即,第二校正電路512-2的最大可校正資料數為X),其中X、N與M會根據所採用的編碼演算法而設定,本發明不加以限定。特別是,當產生越多筆群組同位碼時,可校正的使用者資料的筆數越多。
圖9是根據本發明一範例實施例所繪示之讀取資料的範例。在此假設從主機系統11接收到讀取指令時,而從實體程式化單元810(0)中讀取使用者資料。
請參照圖9,記憶體控制電路單元404(或記憶體管理電路502)會在緩衝記憶體508中配置一暫存區(以下可參考為第二暫存區902)並且將從實體程式化單元810(0)中讀取的使用者資料UD(0)與同位碼ECC(0)暫存在第一暫存區901(即,第一次讀取)。在此,第二暫存區902是用以暫存所讀取的實體程式化單元的使用者資料,並且其大小會被設定為T個實體程式化單元的大小,其中T與X的總和會小於N。例如,在每次僅處理1個實體程式化單元的使用者資料的例子中,T會被設定為1。
之後,記憶體控制電路單元404(或記憶體管理電路502)會將解碼初始化指令、使用者資料UD(0)與同位碼ECC(0)傳送至錯誤檢查與校正電路512的第一校正電路512-1來進行錯誤檢查與校正操作(在此亦可參考為第一錯誤檢查與校正操作)。若使用者資料UD(0)可依據同位碼ECC(0)被正確校正時,記憶體控制電路單元404(或記憶體管理電路502)會將校正後的使用者資料UD(0)傳送給主機系統11,以回應所接收的讀取指令。
倘若使用者資料UD(0)無法依據同位碼ECC(0)來被正確校正時,記憶體控制電路單元404(或記憶體管理電路502)會使用群組同位碼來執行再一次的錯誤檢查與校正操作(在此亦可參考為第二錯誤檢查與校正操作),來嘗試校正錯誤的資料。
具體來說,在第二錯誤檢查與校正操作中,記憶體控制電路單元404(或記憶體管理電路502)會在緩衝記憶體508中配置一暫存區(以下可參考為第一暫存區901),從實體程式化單元810(8)中讀取第一群組同位碼GPC(0)並且將第一群組同位碼GPC(0)暫存在第一暫存區901。在此,第一暫存區901是用以暫存所讀取的群組同位碼,並且其大小會被設定為M個實體程式化單元的大小。例如,如圖8的範例中,在編碼運作中僅產生1筆群組同位碼的例子中,M會被設定為1。此外,記憶體控制電路單元404(或記憶體管理電路502)會在緩衝記憶體508中配置一暫存區(以下可參考為第三暫存區903)。在此,第三暫存區903是用以暫存第二校正電路所校正的使用者資料,並且其大小會被設定為X個實體程式化單元的大小。如上所述,M筆群組同位碼可校正X筆使用者資料,因此,第三暫存區903的大小是根據可能產生之最多已校正使用者資料的筆數來設定。
在緩衝記憶體508配置對應暫存區域後,記憶體控制電路單元404(或記憶體管理電路502)會分批將第一編碼群組的實體程式化單元的使用者資料與對應同位碼讀取至第二暫存區902。具體來說,由於第二暫存區902的大小僅為一個實體程式單元的大小,因此,記憶體控制電路單元404(或記憶體管理電路502)每次僅會處理一個實體程式化單元的資料。
在本範例實施例中,第二校正電路512-2會分批解碼所接收的已校正使用者資料與群組同位碼以獲得一個待使用資料,其中,此待使用資料可以為解碼過程中產生的校驗子(syndrome)或其他用以解碼的參數。獲得此待使用資料後,第二校正電路512-2會利用此待使用資料及使用者資料及群組同位碼獲得對應使用者資料的已校正使用者資料。例如,在圖9的例子中,在第二錯誤檢查與校正操作中,記憶體控制電路單元404(或記憶體管理電路502)會將解碼初始化指令和暫存在第一暫存區901的第一群組同位碼GPC(0)傳送至第二校正電路512-2。然後,記憶體控制電路單元404(或記憶體管理電路502)會讀取實體程式化單元810(1)中的使用者資料UD(1)與同位碼ECC(1)至第二暫存區902,並且將實體程式化單元810(1)中的使用者資料UD(1)與同位碼ECC(1)傳送至第一校正電路512-1。若第一校正電路512-1可依據同位碼ECC(1)正確校正使用者資料UD(1),記憶體控制電路單元404(或記憶體管理電路502)會將已校正的使用者資料UD(1)傳送至第二校正電路512-2,並且第二校正電路512-2會根據第一群組同位碼與使用者資料UD(1)執行解碼運算並保留運算結果。若第一校正電路512-1無法依據同位碼ECC(1)正確校正使用者資料UD(1),則此表示此筆使用者資料不會被輸入至第二校正電路512-2。
之後,記憶體控制電路單元404(或記憶體管理電路502)會讀取實體程式化單元810(2)中的使用者資料UD(2)與同位碼ECC(2)至第二暫存區902,並且將實體程式化單元810(1)中的使用者資料UD(2)與同位碼ECC(2)傳送至第一校正電路512-1。類似地,若第一校正電路512-1可依據同位碼ECC(2)正確校正使用者資料UD(2),記憶體控制電路單元404(或記憶體管理電路502)會將已校正的使用者資料UD(2)傳送至第二校正電路512-2,並且第二校正電路512-2會根據先前的計算結果和已校正的使用者資料UD(2)繼續執行解碼運算並保留運算結果。
以此類推,記憶體控制電路單元404(或記憶體管理電路502)會分批讀取實體程式化單元810(3)~810(7)中的使用者資料UD(2)~UD(7)與同位碼ECC(2)~ECC(7)至第二暫存區902,並且將實體程式化單元810(3)~810(7)中的使用者資料UD(2)~UD(7)與同位碼ECC(2)~ECC(7)傳送至第一校正電路512-1。若使用者資料UD(2)~UD(7)可被校正,則記憶體控制電路單元404(或記憶體管理電路502)會將已校正的使用者資料傳送至第二校正電路512-2繼續進行解碼運算。
在完成上述解碼運算後,記憶體控制電路單元404(或記憶體管理電路502)會傳送校正完成指令給第二校正電路512-2,並且第二校正電路512-2會輸出已校正使用者資料。具體來說,在使用者資料UD(0)~UD(7)之中錯誤的資料數小於第二校正電路512-2最大可校正的資料數下,第二校正電路512-2在上述解碼運算中可輸出錯誤使用者資料的校正使用者資料。以圖9為例,在使用者資料UD(0)無法被第一校正電路512-1正確校正且使用者資料UD(1)~UD(7)可被第一校正電路512-1正確校正而輸入第二校正電路512-2下,第二校正電路512-2可依據第一群組同位碼GPC(0)和使用者資料UD(1)~UD(7)輸出已校正的使用者資料UD(0)。
值得一提的是,在本範例實施例中,由於再進行第二錯誤檢查與校正操作時,記憶體控制電路單元404(或記憶體管理電路502)是分批從實體程式化單元中讀取使用者資料,因此,緩衝記憶體508所配置的第二暫存區902僅為分批讀取之實體程式化單元的大小(例如,1個實體程式化單元的大小),無需配置大量的儲存空間(例如,足以儲存編碼群組之所有實體程式化單元之使用者資料的空間),因此,可以在緩衝記憶體508的容量有限下,執行上述第二錯誤檢查與校正操作。
圖10是根據本發明一範例實施例所繪示的資料校正方法的流程圖。
請參照圖10,當記憶體儲存裝置10從主機系統11接收到讀取指令時,在步驟S1001中,記憶體控制電路單元404(或記憶體管理電路502)會根據邏輯位址-實體位址映射表從所映射的實體程式化單元(以下稱為第一實體程式化單元)中將使用者資料(以下稱為第一使用者資料)與對應的同位碼(以下稱為第一同位碼)讀取至緩衝記憶體508。
在步驟S1003中,記憶體控制電路單元404(或記憶體管理電路502)會判斷所讀取的第一使用者資料是否可依據所讀取的第一同位碼來被正確地校正。具體來說,記憶體控制電路單元404(或記憶體管理電路502)會將第一使用者資料與第一同位碼傳送至錯誤檢查與校正電路512來進行錯誤校正操作(即,上述第一錯誤校正操作)。詳細的運作方式已配合圖式詳細描述如上,在此不再重複說明。
倘若所讀取的第一使用者資料可依據所讀取的第一同位碼來被正確地校正時,在步驟S1005中,記憶體控制電路單元404(或記憶體管理電路502)會將已校正的第一使用者資料傳送給主機系統11。
倘若所讀取的第一使用者資料無法依據所讀取的第一同位碼來被正確地校正時,在步驟S1007中,記憶體控制電路單元404(或記憶體管理電路502)會從可覆寫非揮發性記憶體模組406的至少另一實體程式化單元中讀取第一群組同位碼GPC(0)至緩衝記憶體508,將第一群組同位碼GPC(0)傳送至錯誤檢查與校正電路512的第二錯誤校正電路512-2,分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體508,將所讀取的使用者資料之中的多個已校正使用者資料傳送至錯誤檢查與校正電路512的第二錯誤校正電路512-2。分批讀取與傳送屬於同一編碼群組的實體程式化單元的已校正使用者資料至錯誤檢查與校正電路512的第二錯誤校正電路512-2的方式已配合圖9詳細描述如上,在此不再重複描述。
在步驟S1009中,記憶體控制電路單元404(或記憶體管理電路502)會判斷錯誤檢查與校正電路512的第二錯誤校正電路512-2是否可依據第一群組同位碼正確校正第一使用者資料。
倘若第二錯誤校正電路512-2可依據第一群組同位碼正確校正第一使用者資料時,上述步驟S1005會被執行。
倘若第二錯誤校正電路512-2無法依據第一群組同位碼正確校正第一使用者資料時,在步驟S1011中,記憶體控制電路單元404(或記憶體管理電路502)會傳送讀取錯誤訊息給主機系統11。
綜上所述,本發明的資料校正方法、記憶體控制電路單元、記憶體儲存裝置在從實體程式化單元中所讀取的資料無法依據其對應的同位碼正確校正時,可更依據儲存在另一個實體程式化單元的群組同位碼來校正。此外,本發明的資料校正方法、記憶體控制電路單元、記憶體儲存裝置在使用對應多個實體程式化單元的群組同位碼來校正資料時,可以少量的緩衝記憶體空間來完成資料的校正,有效降低的記憶體儲存裝置的成本。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
410(0)~410(N)‧‧‧實體抹除單元
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
512-1‧‧‧第一校正電路
51-2‧‧‧第二校正電路
602‧‧‧資料區
604‧‧‧閒置區
606‧‧‧系統區
608‧‧‧取代區
LBA(0)~LBA(H)‧‧‧邏輯單元
LZ(0)~LZ(M)‧‧‧邏輯區域
UD(0)~UD(7)‧‧‧使用者資料
ECC(0)~ECC(7)‧‧‧同位碼
GPC(0)‧‧‧群組同位碼
901‧‧‧第一暫存區
902‧‧‧第二暫存區
903‧‧‧第三暫存區
810(0)~810(7)‧‧‧實體程式化單元
S1001‧‧‧「根據邏輯位址-實體位址映射表從所映射的實體程式化單元(以下稱為第一實體程式化單元)中將使用者資料(以下稱為第一使用者資料)與對應的同位碼(以下稱為第一同位碼)讀取至緩衝記憶體」的步驟
S1003‧‧‧「判斷所讀取的第一使用者資料是否可依據所讀取的第一同位碼來被正確地校正」的步驟
S1005‧‧‧「將已校正的第一使用者資料傳送給主機系統」的步驟
S1007‧‧‧「從可覆寫非揮發性記憶體模組的至少另一實體程式化單元中讀取第一群組同位碼至緩衝記憶體,將第一群組同位碼傳送至錯誤檢查與校正電路的第二錯誤校正電路,分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體,將所讀取的使用者資料之中的多個已校正使用者資料傳送至錯誤檢查與校正電路的第二錯誤校正電路」的步驟
S1009‧‧‧「判斷錯誤檢查與校正電路的第二錯誤校正電路是否可依據第一群組同位碼正確校正第一使用者資料」的步驟
S1011‧‧‧「傳送讀取錯誤訊息給主機系統」的步驟
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。 圖6與圖7是根據一範例實施例所繪示的管理實體抹除單元的範例示意圖。 圖8是根據本發明一範例實施例所繪示之寫入資料至可複寫式非揮發性記憶體模組的範例。 圖9是根據本發明一範例實施例所繪示之讀取資料的範例。 圖10是根據本發明一範例實施例所繪示的資料校正方法的流程圖。
S1001‧‧‧「根據邏輯位址-實體位址映射表從所映射的實體程式化單元(以下稱為第一實體程式化單元)中將使用者資料(以下稱為第一使用者資料)與對應的同位碼(以下稱為第一同位碼)讀取至緩衝記憶體」的步驟
S1003‧‧‧「判斷所讀取的第一使用者資料是否可依據所讀取的第一同位碼來被正確地校正」的步驟
S1005‧‧‧「將已校正的第一使用者資料傳送給主機系統」的步驟
S1007‧‧‧「從可覆寫非揮發性記憶體模組的至少另一實體程式化單元中讀取第一群組同位碼至緩衝記憶體,將第一群組同位碼傳送至錯誤檢查與校正電路的第二錯誤校正電路,分批從屬於第一編碼群組的實體程式化單元中讀取使用者資料至緩衝記憶體,將所讀取的使用者資料之中的多個已校正使用者資料傳送至錯誤檢查與校正電路的第二錯誤校正電路」的步驟
S1009‧‧‧「判斷錯誤檢查與校正電路的第二錯誤校正電路是否可 依據第一群組同位碼正確校正第一使用者資料」的步驟
S1011‧‧‧「傳送讀取錯誤訊息給主機系統」的步驟

Claims (18)

  1. 一種資料校正方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,並且該些實體程式化單元被分組為多個編碼群組,該資料校正方法包括: 從該些實體程式化單元之中的一第一實體程式化單元中讀取一第一使用者資料與對應該第一使用者資料的一第一同位碼至一緩衝記憶體,其中該第一實體程式化單元屬於該些編碼群組之中的一第一編碼群組; 倘若一第一校正電路無法依據所讀取的第一同位碼來正確校正從該第一實體程式化單元中所讀取的第一使用者資料時,從該些實體程式化單元之中的至少另一實體程式化單元中讀取至少一第一群組同位碼至該緩衝記憶體以將該至少一第一群組同位碼傳送至一第二校正電路,並且分批從屬於該第一編碼群組的實體程式化單元中讀取該些使用者資料至該緩衝記憶體以將所讀取的使用者資料之中的多個已校正使用者資料傳送至該第二校正電路,其中該至少一第一群組同位碼是藉由編碼儲存在屬於該第一編碼群組的實體程式化單元中的多個使用者資料所產生; 藉由該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲取對應該第一使用者資料的一已校正第一使用者資料;以及 藉由該第二校正電路輸出對應該第一使用者資料的該已校正第一使用者資料。
  2. 如申請專利範圍第1項所述的資料校正方法,其中藉由該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲取對應該第一使用者資料的該已校正第一使用者資料的步驟包括: 藉由該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲得一待使用資料;以及 藉由該第二校正電路利用該待使用資料、該第一使用者資料及該至少一第一群組同位碼獲得對應該第一使用者資料的該已校正第一使用者資料。
  3. 如申請專利範圍第1項所述的資料校正方法,更包括: 在該緩衝記憶體中配置一第一暫存區,其中該第一暫存區暫存該至少一第一群組同位碼; 在該緩衝記憶體中配置一第二暫存區,其中該第二暫存區暫存分批從該第一編碼群組的實體程式化單元中讀取的該些使用者資料;以及 在該緩衝記憶體中配置一第三暫存區,其中該第三暫存區暫存對應該第一使用者資料的該已校正第一使用者資料, 其中該第二暫存區的大小小於屬於該第一編碼群組的所有實體程式化單元的容量。
  4. 如申請專利範圍第3項所述的資料校正方法,其中屬於該第一編碼群組的實體程式化單元的個數為N,該至少一第一群組同位碼的個數為M,該第一暫存區的大小為M個實體程式化單元的可儲存容量,該第二暫存區的大小為T個實體程式化單元的可儲存容量,並且該第三暫存區的大小為X個實體程式化單元的可儲存容量,其中X為該第二校正電路的一最大可校正資料數並且N大於X與T的總和。
  5. 如申請專利範圍第4項所述的資料校正方法,其中T為1。
  6. 如申請專利範圍第5項所述的資料校正方法,其中從該些實體程式化單元之中的該至少另一實體程式化單元中讀取該至少一第一群組同位碼至該緩衝記憶體以將該至少一第一群組同位碼傳送至該第二校正電路,並且分批從屬於該第一編碼群組的實體程式化單元中讀取該些使用者資料至該緩衝記憶體以將所讀取的使用者資料之中的該些已校正使用者資料傳送至該第二校正電路的步驟包括: (a)從該至少另一實體程式化單元中讀取該至少一第一群組同位碼至該緩衝記憶體; (b)傳送一解碼初始化指令至該第二校正電路; (c)從該緩衝記憶體中傳送該至少一第一群組同位碼至該第二校正電路; (d)依序從該第一編碼群組的實體程式化單元中選取一個實體程式化單元,並且從所選擇的實體程式化單元中讀取一對應使用者資料與一對應同位碼; (e)倘若所讀取的對應使用者資料可依據所讀取的同位碼被正確校正而產生一已校正使用者資料時,將所產生的已校正使用者資料傳送至該第二校正電路;以及 (f)判斷該第一編碼群組的所有實體程式化單元是否都已選取,其中倘若該第一編碼群組的至少一實體程式化單元尚未被選取時,則重複執行步驟(d)、步驟(e)與步驟(f),並且倘若該第一編碼群組的所有實體程式化單元皆已選取,則從該第二校正電路中取得對應該第一使用者資料的一已校正第一使用者資料。
  7. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,該記憶體控制電路單元包括: 一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 一錯誤檢查與校正電路,包括一第一校正電路與一第二校正電路; 一緩衝記憶體;以及 一記憶體管理電路,耦接至該主機介面、該錯誤檢查與校正電路、該記憶體介面、該錯誤檢查與校正電路與該緩衝記憶體, 其中該記憶體管理電路用以將該些實體程式化單元分組為多個編碼群組; 其中該記憶體管理電路更用以從該些實體程式化單元之中的一第一實體程式化單元中讀取一第一使用者資料與對應該第一使用者資料的一第一同位碼至一緩衝記憶體,其中該第一實體程式化單元屬於該些編碼群組之中的一第一編碼群組; 其中該錯誤檢查與校正電路的第一校正電路用以根據該第一同位碼校正該第一使用者資料; 其中倘若該第一校正電路無法依據所讀取的第一同位碼來正確校正從該第一實體程式化單元中所讀取的第一使用者資料時,該記憶體管理電路更用以從該些實體程式化單元之中的至少另一實體程式化單元中讀取至少一第一群組同位碼至該緩衝記憶體以將該至少一第一群組同位碼傳送至該第二校正電路,並且分批從屬於該第一編碼群組的實體程式化單元中讀取該些使用者資料至該緩衝記憶體以將所讀取的使用者資料之中的多個已校正使用者資料傳送至該第二校正電路,以及該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲取對應該第一使用者資料的一已校正第一使用者資料,其中該至少一第一群組同位碼是藉由編碼儲存在屬於該第一編碼群組的實體程式化單元中的多個使用者資料所產生; 其中該記憶體管理電路更用以輸出從該第二校正電路中接收的對應該第一使用者資料的該已校正第一使用者資料至該主機系統。
  8. 如申請專利範圍第7項所述的記憶體控制電路單元,其中在分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲取對應該第一使用者資料的該已校正第一使用者資料的運作中,該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲得一待使用資料,並且利用該待使用資料、該第一使用者資料及該至少一第一群組同位碼獲得對應該第一使用者資料的該已校正第一使用者資料。
  9. 如申請專利範圍第7項所述的記憶體控制電路單元,其中該記憶體管理電路在該緩衝記憶體中配置一第一暫存區、一第二暫存區與一第三暫存區, 其中該第一暫存區暫存該至少一第一群組同位碼,該第二暫存區暫存分批從該第一編碼群組的實體程式化單元中讀取的該些使用者資料,並且該第三暫存區暫存對應該第一使用者資料的該已校正第一使用者資料, 其中該第二暫存區的大小小於屬於該第一編碼群組的所有實體程式化單元的容量。
  10. 如申請專利範圍第9項所述的記憶體控制電路單元,其中屬於該第一編碼群組的實體程式化單元的個數為N,該至少一第一群組同位碼的個數為M,該第一暫存區的大小為M個實體程式化單元的可儲存容量,該第二暫存區的大小為T個實體程式化單元的可儲存容量,並且該第三暫存區的大小為X個實體程式化單元的可儲存容量,其中X為該第二校正電路的一最大可校正資料數並且N大於X與T的總和。
  11. 如申請專利範圍第10項所述的記憶體控制電路單元,其中T為1。
  12. 如申請專利範圍第11項所述的記憶體控制電路單元,其中在從該些實體程式化單元之中的該至少另一實體程式化單元中讀取該至少一第一群組同位碼至該緩衝記憶體以將該至少一第一群組同位碼傳送至該第二校正電路,並且分批從屬於該第一編碼群組的實體程式化單元中讀取該些使用者資料至該緩衝記憶體以將所讀取的使用者資料之中的該些已校正使用者資料傳送至該第二校正電路的操作中,該記憶體管理電路執行下列操作: (a)從該至少另一實體程式化單元中讀取該至少一第一群組同位碼至該緩衝記憶體; (b)傳送一解碼初始化指令至該第二校正電路; (c)從該緩衝記憶體中傳送該至少一第一群組同位碼至該第二校正電路; (d)依序從該第一編碼群組的實體程式化單元中選取一個實體程式化單元,並且從所選擇的實體程式化單元中讀取一對應使用者資料與一對應同位碼; (e)倘若所讀取的對應使用者資料可依據所讀取的同位碼被正確校正而產生一已校正使用者資料時,將所產生的已校正使用者資料傳送至該第二校正電路;以及 (f)判斷該第一編碼群組的所有實體程式化單元是否都已選取,其中倘若該第一編碼群組的至少一實體程式化單元尚未被選取時,則重複執行步驟(d)、步驟(e)與步驟(f),並且倘若該第一編碼群組的所有實體程式化單元皆已選取,則從該第二校正電路中取得對應該第一使用者資料的一已校正第一使用者資料。
  13. 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統; 一可複寫式非揮發性記憶體模組,具有多個實體程式化單元;以及 一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元包括具有一第一校正電路與一第二校正電路的一錯誤檢查與校正電路、一緩衝記憶體與一記憶體管理電路, 其中該記憶體管理電路用以將該些實體程式化單元分組為多個編碼群組; 其中該記憶體管理電路更用以從該些實體程式化單元之中的一第一實體程式化單元中讀取一第一使用者資料與對應該第一使用者資料的一第一同位碼至一緩衝記憶體,其中該第一實體程式化單元屬於該些編碼群組之中的一第一編碼群組; 其中該錯誤檢查與校正電路的第一校正電路用以根據該第一同位碼校正該第一使用者資料; 其中倘若該第一校正電路無法依據所讀取的第一同位碼來正確校正從該第一實體程式化單元中所讀取的第一使用者資料時,該記憶體管理電路更用以從該些實體程式化單元之中的至少另一實體程式化單元中讀取至少一第一群組同位碼至該緩衝記憶體以將該至少一第一群組同位碼傳送至該第二校正電路,並且分批從屬於該第一編碼群組的實體程式化單元中讀取該些使用者資料至該緩衝記憶體以將所讀取的使用者資料之中的多個已校正使用者資料傳送至該第二校正電路,以及該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲取對應該第一使用者資料的一已校正第一使用者資料,其中該至少一第一群組同位碼是藉由編碼儲存在屬於該第一編碼群組的實體程式化單元中的多個使用者資料所產生; 其中該記憶體管理電路更用以輸出從該第二校正電路中接收的對應該第一使用者資料的該已校正第一使用者資料至該主機系統。
  14. 如申請專利範圍第11項所述的記憶體儲存裝置,其中在分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲取對應該第一使用者資料的該已校正第一使用者資料的運作中,該第二校正電路分批解碼所接收的該些已校正使用者資料與該至少一第一群組同位碼以獲得一待使用資料,並且利用該待使用資料、該第一使用者資料及該至少一第一群組同位碼獲得對應該第一使用者資料的該已校正第一使用者資料。
  15. 如申請專利範圍第13項所述的記憶體儲存裝置,其中該記憶體管理電路在該緩衝記憶體中配置一第一暫存區、一第二暫存區與一第三暫存區, 其中該第一暫存區暫存該至少一第一群組同位碼,該第二暫存區暫存分批從該第一編碼群組的實體程式化單元中讀取的該些使用者資料,並且該第三暫存區暫存對應該第一使用者資料的該已校正第一使用者資料, 其中該第二暫存區的大小小於屬於該第一編碼群組的所有實體程式化單元的容量。
  16. 如申請專利範圍第15項所述的記憶體儲存裝置,其中屬於該第一編碼群組的實體程式化單元的個數為N,該至少一第一群組同位碼的個數為M,該第一暫存區的大小為M個實體程式化單元的可儲存容量,該第二暫存區的大小為T個實體程式化單元的可儲存容量,並且該第三暫存區的大小為X個實體程式化單元的可儲存容量,其中X為該第二校正電路的一最大可校正資料數並且N大於X與T的總和。
  17. 如申請專利範圍第16項所述的記憶體儲存裝置,其中T為1。
  18. 如申請專利範圍第17項所述的記憶體儲存裝置,其中在從該些實體程式化單元之中的該至少另一實體程式化單元中讀取該至少一第一群組同位碼至該緩衝記憶體以將該至少一第一群組同位碼傳送至該第二校正電路,並且分批從屬於該第一編碼群組的實體程式化單元中讀取該些使用者資料至該緩衝記憶體以將所讀取的使用者資料之中的該些已校正使用者資料傳送至該第二校正電路的操作中,該記憶體管理電路執行下列操作: (a)從該至少另一實體程式化單元中讀取該至少一第一群組同位碼至該緩衝記憶體; (b)傳送一解碼初始化指令至該第二校正電路; (c)從該緩衝記憶體中傳送該至少一第一群組同位碼至該第二校正電路; (d)依序從該第一編碼群組的實體程式化單元中選取一個實體程式化單元,並且從所選擇的實體程式化單元中讀取一對應使用者資料與一對應同位碼; (e)倘若所讀取的對應使用者資料可依據所讀取的同位碼被正確校正而產生一已校正使用者資料時,將所產生的已校正使用者資料傳送至該第二校正電路;以及 (f)判斷該第一編碼群組的所有實體程式化單元是否都已選取,其中倘若該第一編碼群組的至少一實體程式化單元尚未被選取時,則重複執行步驟(d)、步驟(e)與步驟(f),並且倘若該第一編碼群組的所有實體程式化單元皆已選取,則從該第二校正電路中取得對應該第一使用者資料的一已校正第一使用者資料。
TW105112047A 2016-04-18 2016-04-18 資料校正方法、記憶體控制電路單元與記憶體儲存裝置 TWI575533B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW105112047A TWI575533B (zh) 2016-04-18 2016-04-18 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
US15/182,609 US9996415B2 (en) 2016-04-18 2016-06-15 Data correcting method, memory control circuit unit, and memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105112047A TWI575533B (zh) 2016-04-18 2016-04-18 資料校正方法、記憶體控制電路單元與記憶體儲存裝置

Publications (2)

Publication Number Publication Date
TWI575533B true TWI575533B (zh) 2017-03-21
TW201738898A TW201738898A (zh) 2017-11-01

Family

ID=58766128

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105112047A TWI575533B (zh) 2016-04-18 2016-04-18 資料校正方法、記憶體控制電路單元與記憶體儲存裝置

Country Status (2)

Country Link
US (1) US9996415B2 (zh)
TW (1) TWI575533B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9929750B2 (en) * 2015-09-08 2018-03-27 Toshiba Memory Corporation Memory system
TWI725386B (zh) * 2019-02-25 2021-04-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN113299329A (zh) * 2021-06-10 2021-08-24 深圳宏芯宇电子股份有限公司 存储装置及其控制方法、控制电路单元

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981196B2 (en) * 2001-07-25 2005-12-27 Hewlett-Packard Development Company, L.P. Data storage method for use in a magnetoresistive solid-state storage device
US20080301519A1 (en) * 2007-05-30 2008-12-04 Fujitsu Limited Semiconductor memory, semiconductor memory system, and error correction method for semiconductor memory
US8201033B2 (en) * 2006-06-26 2012-06-12 Taiwan Semiconductor Manufacturing Company, Ltd. Memory having an ECC system
US8239732B2 (en) * 2007-10-30 2012-08-07 Spansion Llc Error correction coding in flash memory devices
US8347183B2 (en) * 2008-06-25 2013-01-01 Samsung Electronics Co., Ltd. Flash memory device using ECC algorithm and method of operating the same
US8677213B2 (en) * 2011-09-16 2014-03-18 Hitachi, Ltd. Electronic device comprising error correction coding device and electronic device comprising error correction decoding device
US8719668B2 (en) * 2011-11-01 2014-05-06 Hitachi, Ltd. Non-volatile storage system compensating prior probability for low-density parity check codes
TWI453750B (zh) * 2009-06-03 2014-09-21 Toshiba Kk 記憶體系統及電腦系統
US8874994B2 (en) * 2011-07-22 2014-10-28 Sandisk Technologies Inc. Systems and methods of storing data
TW201503152A (zh) * 2013-03-15 2015-01-16 Micron Technology Inc 記憶體裝置中之錯誤校正操作

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123880A (ja) * 2010-12-10 2012-06-28 Toshiba Corp 半導体記憶装置
US9116822B2 (en) * 2012-12-07 2015-08-25 Micron Technology, Inc. Stopping criteria for layered iterative error correction
US9342404B2 (en) * 2013-12-12 2016-05-17 Phison Electronics Corp. Decoding method, memory storage device, and memory controlling circuit unit
TWI591643B (zh) * 2016-03-22 2017-07-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元與記憶體儲存裝置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981196B2 (en) * 2001-07-25 2005-12-27 Hewlett-Packard Development Company, L.P. Data storage method for use in a magnetoresistive solid-state storage device
US8201033B2 (en) * 2006-06-26 2012-06-12 Taiwan Semiconductor Manufacturing Company, Ltd. Memory having an ECC system
US20080301519A1 (en) * 2007-05-30 2008-12-04 Fujitsu Limited Semiconductor memory, semiconductor memory system, and error correction method for semiconductor memory
US8239732B2 (en) * 2007-10-30 2012-08-07 Spansion Llc Error correction coding in flash memory devices
US8347183B2 (en) * 2008-06-25 2013-01-01 Samsung Electronics Co., Ltd. Flash memory device using ECC algorithm and method of operating the same
TWI453750B (zh) * 2009-06-03 2014-09-21 Toshiba Kk 記憶體系統及電腦系統
US8874994B2 (en) * 2011-07-22 2014-10-28 Sandisk Technologies Inc. Systems and methods of storing data
US8677213B2 (en) * 2011-09-16 2014-03-18 Hitachi, Ltd. Electronic device comprising error correction coding device and electronic device comprising error correction decoding device
US8719668B2 (en) * 2011-11-01 2014-05-06 Hitachi, Ltd. Non-volatile storage system compensating prior probability for low-density parity check codes
TW201503152A (zh) * 2013-03-15 2015-01-16 Micron Technology Inc 記憶體裝置中之錯誤校正操作

Also Published As

Publication number Publication date
US20170300379A1 (en) 2017-10-19
TW201738898A (zh) 2017-11-01
US9996415B2 (en) 2018-06-12

Similar Documents

Publication Publication Date Title
US10977116B2 (en) Data access method, memory control circuit unit and memory storage device
TWI612527B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI592869B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI646543B (zh) 資料編碼方法、資料解碼方法以及儲存控制器
TWI640865B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10782920B2 (en) Data access method, memory storage apparatus and memory control circuit unit
TW201721435A (zh) 資料讀取方法、記憶體控制電路單元及記憶體儲存裝置
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
CN109491828B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN111580741B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
TWI691962B (zh) 解碼方法、記憶體控制電路單元與記憶體儲存裝置
TWI575533B (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
TWI575532B (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
TW201913388A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TW201913383A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US10713160B1 (en) Data writing method, memory control circuit unit and memory storage device
CN113724774B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
CN112799874B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN106897023B (zh) 数据读取方法、存储器控制电路单元及存储器储存装置
TWI751620B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI541809B (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN110874282B (zh) 数据存取方法、存储器控制电路单元与存储器存储装置
CN107305476B (zh) 数据校正方法、存储器控制电路单元与存储器存储装置
US11409596B1 (en) Encoding control method, memory storage device and memory control circuit unit