TWI633428B - 資料儲存裝置與記憶體裝置之資料處理方法 - Google Patents

資料儲存裝置與記憶體裝置之資料處理方法 Download PDF

Info

Publication number
TWI633428B
TWI633428B TW106133361A TW106133361A TWI633428B TW I633428 B TWI633428 B TW I633428B TW 106133361 A TW106133361 A TW 106133361A TW 106133361 A TW106133361 A TW 106133361A TW I633428 B TWI633428 B TW I633428B
Authority
TW
Taiwan
Prior art keywords
block
memory
garbage collection
memory block
controller
Prior art date
Application number
TW106133361A
Other languages
English (en)
Other versions
TW201915725A (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 TW106133361A priority Critical patent/TWI633428B/zh
Priority to CN201810494085.1A priority patent/CN109582216B/zh
Priority to US16/039,767 priority patent/US10635527B2/en
Application granted granted Critical
Publication of TWI633428B publication Critical patent/TWI633428B/zh
Publication of TW201915725A publication Critical patent/TW201915725A/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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0608Saving storage space on 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數頁面。控制器耦接至記憶體裝置,並且包括一錯誤更正碼引擎,用以對記憶體區塊所儲存之資料進行檢查及更正錯誤。當記憶體區塊之一者之一頁面所儲存之資料包含無法更正之錯誤或者該頁面所包含之錯誤位元之數量大於一臨界值時,控制器將該記憶體區塊之一區塊編號加入一既定佇列,並且於一垃圾回收程序被觸發時,對該記憶體區塊執行垃圾回收。

Description

資料儲存裝置與記憶體裝置之資料處理方法
本發明係關於一種適用於快閃記憶體裝置之資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效的存取控制也變成一個重要的議題。
本發明提出一種新的資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。
本發明提出一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數頁面。控制器耦接至記憶體裝置,並且包括一錯誤更正碼引擎,用以對記憶體區塊所儲存之資料進行檢查及更正錯誤。當記憶體區塊之一者之一頁面所包含之錯誤位元之數 量大於一臨界值時,控制器將該記憶體區塊之一區塊編號加入一既定佇列,並且於一垃圾回收程序被觸發時,對該記憶體區塊執行垃圾回收。
本發明另提出一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置與一控制器,記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數頁面,該方法包括:對記憶體區塊所儲存之資料進行檢查及更正錯誤,以判斷是否記憶體區塊之一者之一頁面所包含之錯誤位元之數量大於一臨界值;當記憶體區塊之一者之一頁面所包含之錯誤位元之數量大於該臨界值時,將該記憶體區塊之一區塊編號加入一既定佇列;以及於一垃圾回收程序被觸發時,對該記憶體區塊執行垃圾回收。
100‧‧‧資料儲存裝置
110A、110B‧‧‧控制器
111‧‧‧微處理器
112、SRAM‧‧‧靜態隨機存取記憶體
113、ROM‧‧‧唯讀記憶體
114‧‧‧ECC引擎
120‧‧‧記憶體裝置
200‧‧‧主機裝置
210‧‧‧介面
300A、300B‧‧‧電子裝置
第1A圖係顯示根據本發明之一實施例所述之電子裝置範例方塊圖。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置範例方塊圖。
第2圖係顯示根據本發明之一實施例所述資料處理方法流程圖。
第3A與3B圖係顯示根據本發明之一實施例所述之執行垃圾回收程序之流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂, 下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1A圖係顯示根據本發明之一實施例所述之資料儲存裝置方塊圖。電子裝置300A可包括主機裝置200與資料儲存裝置100。電子裝置300A可為行動裝置,例如智慧型手機、智慧型手錶或平板電腦,但不以此為限。
根據本發明之一實施例,資料儲存裝置100可包括控制器110A與記憶體裝置120。控制器110A可至少包括一微處理器111、靜態隨機存取記憶體(Static Random Access Memory,縮寫為SRAM)112、唯讀記憶體(ROM)113與一錯誤更正碼(Error Correction Code,縮寫為ECC)引擎114。記憶體裝置120可包括一或多個非揮發性記憶體,例如,快閃記憶體。
微處理器111可執行運算,並且控制控制器110A內之電路與裝置的運作。靜態隨機存取記憶體112與唯讀記憶體113用以儲存系統資料。ECC引擎114可根據欲寫入記憶體裝置之資料內容產生同位檢查(parity check)位元,用以對記憶體裝置所儲存之資料進行檢查及更正錯誤。
主機裝置200與資料儲存裝置100可透過一既定介面210相互連接。例如,當資料儲存裝置100符合通用快閃記憶體(Universal Flash Storage,縮寫為UFS)之規範時,介面210可為UFS介面,且資料儲存裝置100可透過介面210與主機裝置200連接。又例如,當資料儲存裝置100包含符合內嵌式記憶體 (embedded Multi Media Card,縮寫為eMMC)之規範時,介面210可為MMC介面,且資料儲存裝置100可透過介面210與主機裝置200連接。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置300B範例方塊圖。於此實施例中,SRAM 112被配置於控制器110B外部,並且耦接至控制器110B。
值得注意的是,為簡化說明,第1A圖與第1B圖僅顯示與本發明相關之元件,並且第1A圖與第1B圖僅顯示多種可應用本發明之架構的其中兩種。然而,本發明之實施並不僅限於第1A圖與第1B圖所示之元件與架構。
根據本發明之一實施例,記憶體裝置120包括複數記憶體區塊。記憶體區塊可為複數單層單元(Single Level Cell,縮寫為SLC)區塊及/或複數多層單元區塊(Multiple Level Cell,縮寫為MLC)區塊。SLC區塊的每個記憶體單元中儲存一個位元資料,MLC區塊的每個記憶體單元中儲存多個位元資料。例如,根據本發明之一實施例,MLC區塊的每個記憶體單元中儲存兩個位元資料。根據本發明之另一實施例,多層單元區塊可為三層單元(Triple Level Cell,縮寫為TLC)區塊,TLC區塊的每個記憶體單元中儲存三個位元資料。
各記憶體區塊可包括複數頁面,通常在快閃記憶體中,一個頁面為一個寫入作業的最小資料塊單位,而一個區塊為一個抹除作業的最小資料塊單位。一個物理頁面的大小為固定的,而一個邏輯頁面的大小則可根據韌體編程需求彈性地被設計。
如上述,ECC引擎114可根據欲寫入記憶體裝置之資料內容產生同位檢查(parity check)位元,用以對記憶體裝置所儲存之資料進行檢查及更正錯誤。於現今設計中,當偵測到一頁面所儲存之資料包含無法更正之錯誤(即,無法藉由錯誤更正碼更正之錯誤(Uncorrectable ECC Error,縮寫為UECC Error),或者該頁面所包含之錯誤位元之數量大於一臨界值時,便會將該頁面所屬之記憶體區塊標記為一損壞區塊(mark bad)。
一般而言,控制器110A/110B可將記憶體區塊所對應之區塊編號紀錄於一損壞區塊表格中。於損壞區塊表格中所紀錄之記憶體區塊,將被轉變為唯讀模式。亦即,爾後控制器110A/110B僅能對損壞區塊進行讀取操作,而無法再對損壞區塊進行寫入、抹除、垃圾回收等其他動作。損壞區塊也不會再被釋放成為可用的記憶體區塊。
然而,因損壞區塊仍可被讀取,將導致損壞區塊中之有效頁面被損壞的風險被提高。在此,有效頁面代表該頁面所儲存之資料所指向的邏輯頁面未與其他頁面中所儲存之資料所指向的邏輯頁面重複,也就是該頁面所儲存之資料為最新的資料,並且該頁面尚未被刪除其於邏輯實體映射表(Logical to Physical mapping table)中的映射關係。當一頁面所儲存之資料為某邏輯頁面的最新資料且該邏輯頁面於邏輯實體映射表中的映射關係未被刪除時,該頁面被認定為有效頁面。
承上,當記憶體區塊被標記為損壞區塊後,會成 為唯讀記憶體,因此無法再將該記憶體區塊之有效頁面的資料搬移。此時,若該記憶體區塊之有效頁面經歷多次讀取後可能也會損壞,造成使用者不樂見的資料錯誤的問題。
為了解決上述問題,本發明提出一種資料處理方法,當偵測到一頁面所儲存之資料包含無法更正之錯誤,或者該頁面所包含之錯誤位元之數量大於一臨界值時,並不會直接將該頁面所屬之記憶體區塊標記為一損壞區塊,而是待控制器110A/110B將該記憶體區塊中所有有效頁面搬移至一目的區塊後,才將該記憶體區塊標記為一損壞區塊,以避免發生上述的問題。以下段落將針對本發明所提出之資料處理方法做更進一步說明。
根據本發明之一實施例,當控制器110A/110B或ECC引擎114偵測到一頁面(以下稱為損壞頁面)所儲存之資料包含無法更正之錯誤,或者該頁面所包含之錯誤位元之數量大於一臨界值時,並不會直接將該損壞頁面所屬之記憶體區塊(以下稱為既定記憶體區塊)標記為一損壞區塊,而是由控制器110A/110B將此既定記憶體區塊所對應之一區塊編號加入一既定佇列(queue)中。爾後,於一垃圾回收(garbage collection)程序被觸發時,控制器110A/110B將對此既定記憶體區塊執行垃圾回收。
值得注意的是,於本發明之實施例中,於控制器110A/110B對此既定記憶體區塊完成垃圾回收程序前,控制器110A/110B不會將此既定記憶體區塊標記為一損壞區塊。亦即,控制器110A/110B不會將此既定記憶體區塊所對應之區塊編號 紀錄於一損壞區塊表格中。
於本發明之實施例中,當一垃圾回收程序被觸發時,控制器110A/110B對此既定記憶體區塊執行垃圾回收,用以將此既定記憶體區塊中所有有效頁面(即,有效且未損壞之頁面)搬移至一目的區塊(即,目的記憶體區塊)。待控制器110A/110B將此既定記憶體區塊中所有有效頁面搬移至目的區塊後,控制器110A/110B才會將此既定記憶體區塊標記為一損壞區塊。其中,所述之資料搬移包含複製(自來源區塊複製)及寫入(寫入至目的區塊)的操作。
於垃圾回收程序中,控制器110A/110B選擇來源區塊(即,來源記憶體區塊),讀取來源區塊中有效頁面的資料,並將資料寫入目的區塊。根據本發明之一實施例,待既定記憶體區塊中所有有效頁面的資料被搬移至目的區塊後,此既定記憶體區塊會被標記為一損壞區塊。而對於其他並未包含損壞頁面的記憶體區塊,在資料搬移後便可被釋放,並且可於後續操作中被使用。
第2圖係顯示根據本發明之一實施例所述資料處理方法流程圖。首先,ECC引擎114對記憶體區塊所儲存之資料進行檢查及更正錯誤(步驟S202),以判斷是否有任一頁面所包含之錯誤位元之數量大於一臨界值。根據本發明之一實施例,步驟S202可於讀取資料時被執行。例如,當主機裝置200欲自記憶體裝置120讀取資料,或者當控制器110A/110B欲自記憶體裝置120讀取資料時,可執行步驟S202。根據本發明之另一實施例,步驟S202可於執行垃圾回收時被執行。例如,當控制器 110A/110B欲對一記憶體區塊執行垃圾回收時,可指示ECC引擎114對記憶體區塊所儲存之資料進行檢查及更正錯誤。
當ECC引擎114檢查到錯誤位元,便會嘗試更正錯誤位元。舉例而言,ECC引擎114可判斷錯誤位元之數量是否大於一最大可更正數量。若錯誤位元之數量未多於最大可更正數量,則ECC引擎114可更正錯誤位元。若錯誤位元之數量多於最大可更正數量,則表示ECC引擎114已無法更正錯誤。換言之,根據本發明之一實施例,當一頁面所包含之錯誤位元之數量大於臨界值(例如,最大可更正數量)時,ECC引擎114可判斷頁面之資料包含無法更正之錯誤。
於本發明之實施例中,控制器110A/110B或ECC引擎114可判斷一頁面所包含之錯誤位元之數量是否大於一臨界值(步驟S204),其中,臨界值可被設定為等於或不等於上述最大可更正數量。一般而言,臨界值可被設定為小於ECC引擎114的最大可更正數量。
當控制器110A/110B或ECC引擎114判斷一頁面為一損壞頁面時(即,該頁面所包含之錯誤位元之數量大於一臨界值時),控制器110A/110B將包含此損壞頁面之既定記憶體區塊之一區塊編號加入一既定佇列(步驟S206)。爾後,於一垃圾回收(garbage collection)程序被觸發時,控制器110A/110B將對此既定記憶體區塊執行垃圾回收。
根據本發明之一實施例,控制器110A/110B可根據既定佇列執行垃圾回收。根據本發明之另一實施例,控制器110A/110B亦可不根據既定佇列執行垃圾回收。以下將做更詳 細的說明。
垃圾回收程序通常可被分為一般垃圾回收程序與特殊垃圾回收程序。於執行一般垃圾回收程序時,控制器110A/110B會以記憶體區塊所對應之一有效頁面計數值VP_Count作為依據挑選來源區塊。一般而言,控制器110A/110B會優先選擇有效頁面計數值VP_Count小的記憶體區塊作為來源區塊,以執行垃圾回收。
控制器110A/110B可於SRAM 112或記憶體裝置120內建立一有效頁面計數值表格,用以記錄各記憶體區塊所對應之一有效頁面計數值VP_Count,其中用於紀錄的頁面的單位可以是一個邏輯頁面。因此,VP_Count的最大值為一記憶體區塊所包含的邏輯頁面數量,最小值為0。控制器110A/110B通常可於每次寫入操作後更新有效頁面計數值表格的內容。
另一方面,於執行特殊垃圾回收程序時,控制器110A/110B會根據一特殊垃圾回收佇列挑選來源區塊。特殊垃圾回收佇列記錄系統欲進行垃圾回收之記憶體區塊所對應之區塊編號。舉例而言,當控制器110A/110B判斷一記憶體區塊或一頁面被抹除的次數大於一抹除臨界值、被讀取的次數大於一讀取臨界值、所包含之錯誤位元之數量大於一臨界值或具有其他特殊情況時,將該記憶體區塊或該頁面所屬之記憶體區塊所對應之區塊編號加入特殊垃圾回收佇列。
於執行特殊垃圾回收程序時,控制器110A/110B會依照特殊垃圾回收佇列中所記錄之區塊編號的順序,依序選擇對應之記憶體區塊作為來源區塊,執行垃圾回收。
此外,控制器110A/110B會依據資料儲存裝置100當下之系統需求決定要執行一般垃圾回收程序抑或特殊垃圾回收程序。舉例而言,當資料儲存裝置的備用區塊小於一既定值時,控制器110A/110B會決定執行一般垃圾回收程序。
於本發明之第一方面實施例中,所述之既定佇列為特殊垃圾回收佇列。亦即,當控制器110A/110B或ECC引擎114判斷一頁面為損壞頁面時,控制器110A/110B將包含此損壞頁面之既定記憶體區塊之一區塊編號加入特殊垃圾回收佇列中。爾後,於一般垃圾回收程序或特殊垃圾回收程序被觸發時,控制器110A/110B將對此既定記憶體區塊執行垃圾回收。
根據本發明之第一方面之第一實施例,當特殊垃圾回收程序被觸發時,控制器110A/110B可根據特殊垃圾回收佇列執行垃圾回收。由於控制器110A/110B已將此既定記憶體區塊之一區塊編號加入特殊垃圾回收佇列中,如此一來,控制器110A/110B可根據特殊垃圾回收佇列對此既定記憶體區塊執行垃圾回收。
當控制器110A/110B於特殊垃圾回收程序中將此既定記憶體區塊中所有有效頁面搬移至目的區塊後,便可將此既定記憶體區塊標記為一損壞區塊,並且可將此既定記憶體區塊所對應之區塊編號自特殊垃圾回收佇列中移除。
當執行目前特殊垃圾回收程序所使用之目的區塊已被寫滿時,目前特殊垃圾回收程序便會結束。
值得注意的是,若目的區塊已被寫滿,但此既定記憶體區塊中所有有效頁面並未全部被搬移至目的區塊時,由 於此既定記憶體區塊所對應之區塊編號仍被記錄於特殊垃圾回收佇列中,因此,於下一個特殊垃圾回收程序被觸發時,控制器110A/110B會優先地選擇此既定記憶體區塊作為一來源區塊,用以於下一次一般垃圾回收程序中優先完成此既定記憶體區塊有效頁面的搬移。
此外,值得注意的是,於此情形下,控制器110A/110B亦可動態調整此既定記憶體區塊所對應之區塊編號於特殊垃圾回收佇列的順序,以確保於下一次特殊垃圾回收程序被觸發時,控制器110A/110B可優先地選擇此既定記憶體區塊作為一來源區塊。
根據本發明之第一方面之第二實施例,當一般垃圾回收程序被觸發時,控制器110A/110B可不根據既定佇列執行垃圾回收。如上述,控制器110A/110B可以記憶體區塊所對應之一有效頁面計數值VP_Count作為依據挑選來源區塊。因此,當包含損壞頁面之既定記憶體區塊之有效頁面計數值VP_Count相對小或足夠小時,控制器110A/110B便有機會於目前的一般垃圾回收程序中對此既定記憶體區塊執行垃圾回收。
當控制器110A/110B於一般垃圾回收程序中將此既定記憶體區塊中所有有效頁面搬移至目的區塊後,便可將此既定記憶體區塊標記為一損壞區塊。
當執行目前一般垃圾回收程序所使用之目的區塊已被寫滿時,目前一般垃圾回收程序便會結束。
值得注意的是,若目的區塊已被寫滿,但並非此 既定記憶體區塊中所有有效頁面都已被搬移至目的區塊時,控制器110A/110B可利用一變數紀錄此既定記憶體區塊所對應之區塊編號。因此,於下一次一般垃圾回收程序被觸發時,控制器110A/110B可先檢查該變數是否有記錄一區塊編號。當該變數記錄有此既定記憶體區塊所對應之區塊編號時,控制器110A/110B會於下一次一般垃圾回收程序中,優先地選擇此既定記憶體區塊作為一來源區塊,用以於下一次一般垃圾回收程序中優先完成此既定記憶體區塊有效頁面的搬移。換言之,即使既定記憶體區塊之有效頁面計數值VP_Count並非最小的,控制器110A/110B仍會於下一次一般垃圾回收程序中,優先地選擇此既定記憶體區塊作為一來源區塊。
此外,值得注意的是,當控制器110A/110B於執行一般垃圾回收程序時,檢測出另一記憶體區塊包含損壞頁面時,亦可直接如上所述,於此記憶體區塊中所有有效頁面搬移至目的區塊後,將此記憶體區塊標記為一損壞區塊,或者於目前一般垃圾回收程序結束但尚未將此記憶體區塊中所有有效頁面搬移至目的區塊時,利用一變數紀錄此記憶體區塊所對應之區塊編號,用以於下一次一般垃圾回收程序中優先完成此記憶體區塊有效頁面的搬移。
另一方面,於本發明之第二方面實施例中,所述之既定佇列為不同於特殊垃圾回收佇列之一UECC垃圾回收佇列。亦即,當控制器110A/110B或ECC引擎114判斷一頁面為損壞頁面時,控制器110A/110B將包含此損壞頁面之既定記憶體區塊之一區塊編號加入UECC垃圾回收佇列中。爾後,於一般 垃圾回收程序或特殊垃圾回收程序被觸發時,控制器110A/110B將優先對UECC垃圾回收佇列中所記錄之記憶體區塊執行垃圾回收。
因此,於本發明之第二方面實施例中,無論是一般垃圾回收程序或特殊垃圾回收程序被觸發時,控制器110A/110B都會優先檢查UECC垃圾回收佇列中是否有記錄任何記憶體區塊所對應之區塊編號。若有,將優先對UECC垃圾回收佇列中所記錄之記憶體區塊執行垃圾回收。
根據本發明之第二方面之第一實施例,當特殊垃圾回收程序被觸發時,控制器110A/110B可先根據UECC垃圾回收佇列執行垃圾回收,再根據特殊垃圾回收佇列執行垃圾回收。
同樣地,當控制器110A/110B於特殊垃圾回收程序中將此既定記憶體區塊中所有有效頁面搬移至目的區塊後,便可將此既定記憶體區塊標記為一損壞區塊,並且可將此既定記憶體區塊所對應之區塊編號自UECC垃圾回收佇列中移除。
當執行目前特殊垃圾回收程序所使用之目的區塊已被寫滿時,目前特殊垃圾回收程序便會結束。
值得注意的是,若目的區塊已被寫滿,但並非此既定記憶體區塊中所有有效頁面都已被搬移至目的區塊時,由於此既定記憶體區塊所對應之區塊編號仍記錄於UECC垃圾回收佇列中,因此,於下一次特殊垃圾回收程序或下一次一般垃圾回收程序被觸發時,控制器110A/110B會優先地選擇此既定記憶體區塊作為一來源區塊。
根據本發明之第二方面之第二實施例,當一般垃圾回收程序被觸發時,控制器110A/110B可先根據UECC垃圾回收佇列執行垃圾回收,再根據記憶體區塊所對應之一有效頁面計數值VP_Count作為依據挑選來源區塊執行垃圾回收。
當控制器110A/110B於一般垃圾回收程序中將此既定記憶體區塊中所有有效頁面搬移至目的區塊後,便可將此既定記憶體區塊標記為一損壞區塊,並且可將此既定記憶體區塊所對應之區塊編號自UECC垃圾回收佇列中移除。
當執行目前一般垃圾回收程序所使用之目的區塊已被寫滿時,目前一般垃圾回收程序便會結束。
值得注意的是,若目的區塊已被寫滿,但並非此既定記憶體區塊中所有有效頁面都已被搬移至目的區塊時,由於此既定記憶體區塊所對應之區塊編號仍記錄於UECC垃圾回收佇列中,因此,於下一次特殊垃圾回收程序或下一次一般垃圾回收程序被觸發時,控制器110A/110B會優先地選擇此既定記憶體區塊作為一來源區塊。
此外,值得注意的是,當控制器110A/110B於執行一般垃圾回收程序時,檢測出另一記憶體區塊包含損壞頁面時,亦可直接如上所述,於此記憶體區塊中所有有效頁面搬移至目的區塊後,將此記憶體區塊標記為一損壞區塊,或者於目前一般垃圾回收程序結束但尚未將此記憶體區塊中所有有效頁面搬移至目的區塊時,將此記憶體區塊所對應之區塊編號記錄於UECC垃圾回收佇列中。如此一來,於下一次特殊垃圾回收程序或下一次一般垃圾回收程序被觸發時,控制器110A/110B會 優先地選擇此既定記憶體區塊作為一來源區塊,用以於下一次垃圾回收程序中優先完成此記憶體區塊有效頁面的搬移。
第3A與3B圖係顯示根據本發明之一實施例所述之執行垃圾回收程序之流程圖。首先,於一垃圾回收程序(特殊垃圾回收程序或一般垃圾回收程序)被觸發時,控制器110A/110B選擇一記憶體區塊作為目前的來源區塊(步驟S302)。如上述,根據本發明之第一方面之第一實施例,於特殊垃圾回收程序中,控制器110A/110B根據特殊垃圾回收佇列選擇一記憶體區塊作為目前的來源區塊。根據本發明之第一方面之第二實施例,於一般垃圾回收程序中,控制器110A/110B根據上述變數及記憶體區塊所對應之一有效頁面計數值VP_Count選擇一記憶體區塊作為目前的來源區塊。此外,根據本發明之第二方面實施例,於一般垃圾回收程序及特殊垃圾回收程序中,控制器110A/110B優先根據UECC垃圾回收佇列選擇一記憶體區塊作為目前的來源區塊。
接著,控制器110A/110B判斷前一個來源區塊是否為包含至少一損壞頁面之記憶體區塊(步驟S304)。若是,由於前一個來源區塊已完成垃圾回收,即,前一個來源區塊中所有有效頁面已被搬移至一目的區塊,因此控制器110A/110B可將此記憶體區塊標記為一損壞區塊(步驟S306)。
若否,或者如步驟S306將記憶體區塊標記為一損壞區塊後,控制器110A/110B將目前來源區塊中有效頁面搬移至目的區塊(步驟S308),並且判斷是否目的區塊已被寫滿(步驟S310)。若否,則回到步驟S302選擇來源區塊。若是,則控制 器110A/110B判斷目前的來源區塊是否為包含至少一損壞頁面之記憶體區塊(步驟S312)。若否,則本次垃圾回收程序結束(步驟S320)。
若是,則控制器110A/110B進一步確認是否目前的來源區塊中所有有效頁面都已被搬移至目的區塊(步驟S314)。若是,將之標記為一損壞區塊(步驟S316)後,本次垃圾回收程序結束(步驟S320)。
若否,則控制器110A/110B執行對應的操作使目前的來源區塊於下一個垃圾回收程序被觸發時,會優先地被選擇為來源區塊(步驟S318)。如上述,控制器110A/110B可利用一變數紀錄目前的來源區塊所對應之記憶體區塊編號,或者將目前的來源區塊所對應之記憶體區塊編號加入UECC垃圾回收佇列中、或者不將目前的來源區塊所對應之記憶體區塊編號自UECC垃圾回收佇列中移除、或者調整UECC垃圾回收佇列的順序,以確保目前的來源區塊於下一個垃圾回收程序被觸發時,會優先地被選擇為來源區塊。
於本發明之實施例中,由於偵測到損壞頁面後,並不會立刻將對應之記憶體區塊標記為損壞區塊,而是待該記憶體區塊中所有有效頁面搬移至目的區塊後,才會將該記憶體區塊標記為一損壞區塊,如此一來,可避免造成上述使用者不樂見的資料錯誤的問題,並且可有效率地處理記憶體裝置所儲存之資料,提升記憶體裝置之效能。
本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其 並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (12)

  1. 一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,各記憶體區塊包括複數頁面;以及一控制器,耦接至該記憶體裝置,並且包括一錯誤更正碼引擎,用以對該等記憶體區塊所儲存之資料進行檢查及更正錯誤;其中當該等記憶體區塊之一者之一頁面所包含之錯誤位元之數量大於一臨界值時,該控制器將該記憶體區塊之一區塊編號加入一既定佇列,並且於一垃圾回收(garbage collection)程序被觸發時,對該記憶體區塊執行垃圾回收。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中當該頁面所包含之錯誤位元之數量大於該臨界值時,該頁面之資料包含無法更正之錯誤。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中於該控制器對該記憶體區塊執行該垃圾回收程序前,該控制器不將該記憶體區塊標記為一損壞區塊。
  4. 如申請專利範圍第2項所述之資料儲存裝置,其中於該控制器將該記憶體區塊中所有有效頁面搬移至一目的區塊後,將該記憶體區塊標記為一損壞區塊。
  5. 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器根據該既定佇列執行該垃圾回收程序。
  6. 如申請專利範圍第1項所述之資料儲存裝置,其中當執行該垃圾回收程序所使用之一目的區塊已被寫滿,但並非該記憶體區塊中所有有效頁面都已被搬移至該目的區塊時,該控制器於下一個垃圾回收程序被觸發時優先地選擇該記憶體區塊為一來源區塊。
  7. 一種記憶體裝置之資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一控制器,該記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數頁面,該方法包括:對該等記憶體區塊所儲存之資料進行檢查及更正錯誤,以判斷是否該等記憶體區塊之一者之一頁面所包含之錯誤位元之數量大於一臨界值;當該頁面所包含之錯誤位元之數量大於該臨界值時,將該記憶體區塊之一區塊編號加入一既定佇列;以及於一垃圾回收程序被觸發時,對該記憶體區塊執行垃圾回收。
  8. 如申請專利範圍第7項所述之方法,其中當該頁面所包含之錯誤位元之數量大於該臨界值時,該頁面之資料包含無法更正之錯誤。
  9. 如申請專利範圍第8項所述之方法,更包括:於對該記憶體區塊執行該垃圾回收程序前,不將該記憶體區塊標記為一損壞區塊。
  10. 如申請專利範圍第8項所述之方法,更包括:於將該記憶體區塊中所有有效頁面搬移至一目的區塊後,將該記憶體區塊標記為一損壞區塊。
  11. 如申請專利範圍第7項所述之方法,更包括:根據該既定佇列執行該垃圾回收程序。
  12. 如申請專利範圍第7項所述之方法,更包括:當執行該垃圾回收程序所使用之一目的區塊已被寫滿,但並非該記憶體區塊中所有有效頁面都已被搬移至該目的區塊時,優先地選擇該記憶體區塊為下一次垃圾回收程序的一來源區塊。
TW106133361A 2017-09-28 2017-09-28 資料儲存裝置與記憶體裝置之資料處理方法 TWI633428B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106133361A TWI633428B (zh) 2017-09-28 2017-09-28 資料儲存裝置與記憶體裝置之資料處理方法
CN201810494085.1A CN109582216B (zh) 2017-09-28 2018-05-22 数据储存装置与存储器装置的数据处理方法
US16/039,767 US10635527B2 (en) 2017-09-28 2018-07-19 Method for processing data stored in a memory device and a data storage device utilizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106133361A TWI633428B (zh) 2017-09-28 2017-09-28 資料儲存裝置與記憶體裝置之資料處理方法

Publications (2)

Publication Number Publication Date
TWI633428B true TWI633428B (zh) 2018-08-21
TW201915725A TW201915725A (zh) 2019-04-16

Family

ID=63959985

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106133361A TWI633428B (zh) 2017-09-28 2017-09-28 資料儲存裝置與記憶體裝置之資料處理方法

Country Status (3)

Country Link
US (1) US10635527B2 (zh)
CN (1) CN109582216B (zh)
TW (1) TWI633428B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI806508B (zh) * 2021-03-31 2023-06-21 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
US11733895B2 (en) 2021-03-31 2023-08-22 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102447602B1 (ko) * 2017-10-25 2022-09-26 삼성전자주식회사 메모리 장치 및 그 동적 가비지 컬렉션 방법
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
CN110246534A (zh) * 2019-05-07 2019-09-17 陈颐 一种降低闪存记忆体写入扰动的方法
CN112347001B (zh) * 2020-10-13 2023-09-26 深圳市宏旺微电子有限公司 闪存垃圾回收的校验方法、装置及电子设备
CN115495025B (zh) * 2022-11-18 2023-03-28 合肥康芯威存储技术有限公司 一种管理异常存储块的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201403318A (zh) * 2012-07-02 2014-01-16 Infomicro Electronics Shenzhen Ltd 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器
TW201608375A (zh) * 2014-08-25 2016-03-01 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US20160070474A1 (en) * 2008-06-18 2016-03-10 Super Talent Technology Corp. Data-Retention Controller/Driver for Stand-Alone or Hosted Card Reader, Solid-State-Drive (SSD), or Super-Enhanced-Endurance SSD (SEED)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
CN101118783A (zh) * 2006-09-07 2008-02-06 晶天电子(深圳)有限公司 带有闪存坏块控制系统的电子数据闪存卡
US7991942B2 (en) * 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
WO2010054410A2 (en) * 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
CN101403986B (zh) * 2008-11-12 2010-12-08 中国船舶重工集团公司第七○九研究所 具有容灾技术的闪存数据存储/导出系统
CN101901169B (zh) * 2010-03-23 2013-08-28 华为数字技术(成都)有限公司 扫描装置及方法
CN103226524B (zh) * 2012-01-31 2017-07-04 上海华虹集成电路有限责任公司 对Nandflash的坏块和空块进行统一管理的FIFO系统
KR102653401B1 (ko) * 2016-07-18 2024-04-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160070474A1 (en) * 2008-06-18 2016-03-10 Super Talent Technology Corp. Data-Retention Controller/Driver for Stand-Alone or Hosted Card Reader, Solid-State-Drive (SSD), or Super-Enhanced-Endurance SSD (SEED)
TW201403318A (zh) * 2012-07-02 2014-01-16 Infomicro Electronics Shenzhen Ltd 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器
TW201608375A (zh) * 2014-08-25 2016-03-01 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI806508B (zh) * 2021-03-31 2023-06-21 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
US11733895B2 (en) 2021-03-31 2023-08-22 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device
US11748011B2 (en) 2021-03-31 2023-09-05 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device

Also Published As

Publication number Publication date
CN109582216B (zh) 2022-02-01
US20190095276A1 (en) 2019-03-28
TW201915725A (zh) 2019-04-16
CN109582216A (zh) 2019-04-05
US10635527B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
TWI633428B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
KR101557736B1 (ko) 새로운 불량 블록 검출
US7849382B2 (en) Memory control circuit, nonvolatile storage apparatus, and memory control method
US8453021B2 (en) Wear leveling in solid-state device
TWI467376B (zh) 資料保護方法、記憶體控制器與記憶體儲存裝置
TWI662410B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
US9996462B1 (en) Data storage device and data maintenance method thereof
TW201916018A (zh) 資料儲存裝置與將資料寫入記憶體裝置之方法
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
KR20160039153A (ko) 에러 정정 코드(ecc) 에러 핸들링을 위한 방법 및 디바이스
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US9811275B2 (en) Memory system and data control method
CN103984506A (zh) 闪存存储设备数据写的方法和系统
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
JP2004220068A (ja) メモリカード及びメモリへのデータ書き込み方法
JP2006221334A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4513786B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法