TWI747191B - 資料儲存裝置與資料處理方法 - Google Patents

資料儲存裝置與資料處理方法 Download PDF

Info

Publication number
TWI747191B
TWI747191B TW109107586A TW109107586A TWI747191B TW I747191 B TWI747191 B TW I747191B TW 109107586 A TW109107586 A TW 109107586A TW 109107586 A TW109107586 A TW 109107586A TW I747191 B TWI747191 B TW I747191B
Authority
TW
Taiwan
Prior art keywords
memory
memory block
data
block
stored
Prior art date
Application number
TW109107586A
Other languages
English (en)
Other versions
TW202134878A (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 TW109107586A priority Critical patent/TWI747191B/zh
Priority to CN202010875927.5A priority patent/CN113377282A/zh
Priority to US17/079,503 priority patent/US11662940B2/en
Publication of TW202134878A publication Critical patent/TW202134878A/zh
Application granted granted Critical
Publication of TWI747191B publication Critical patent/TWI747191B/zh

Links

Images

Classifications

    • 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/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
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • 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
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/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/065Replication 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種資料儲存裝置,包括記憶體裝置與記憶體控制器。記憶體控制器配置第一記憶體區塊作為緩存器,並且對應地配置複數第二記憶體區塊。記憶體控制器使用第一記憶體區塊接收資料,並且對應地將相同之資料儲存於第一記憶體區塊所對應之第二記憶體區塊作為備份資料。當第一記憶體區塊之可用空間小於或等於一既定數量時,記憶體控制器檢查第一記憶體區塊所儲存之資料是否發生錯誤,並且當第一記憶體區塊所儲存之資料發生錯誤時,記憶體控制器進一步配置第三記憶體區塊,並且將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊。

Description

資料儲存裝置與資料處理方法
本發明係有關於適用於一資料儲存裝置之一種資料處理方法,可有效解決因字元線短路造成資料錯誤的問題。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合安全數位(Secure Digital,縮寫為SD)/ 多媒體卡(Multi Media Card,縮寫為MMC)規格、複合式快閃記憶體(Compact flash,縮寫為CF)規格、記憶條(Memory Stick,縮寫為MS)規格與極數位(Extreme Digital,縮寫為XD)規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
於立體NAND型快閃記憶體(3D NAND-type flash)的應用中,三層單元(Triple-Level Cell,TLC)的記憶體區塊可被使用作為緩存器(buffer),用以自主機裝置接收並暫存資料。然而,字元線短路(word line short)的問題可能會發生於TLC記憶體區塊的寫入操作。當字元線短路發生時,儲存於空間上相鄰的字元線所對應的儲存單元的電壓會相互影響,因而產生電壓的偏移,導致位元資料產生錯誤,進而形成錯誤位元(error bit)。一旦錯誤位元被產生了,記憶體控制器便需要針對損壞資料做額外處理,因此降低了記憶體裝置的存取效率。
有鑑於此,需要一種適用於資料儲存裝置之資料處理方法,用以解決因字元線短路所造成資料錯誤的問題。
如上所述,於立體NAND型快閃記憶體的應用中,可直接使用TLC記憶體區塊作為緩存器,用以自主機裝置接收並暫存資料。然而,於TLC記憶體區塊的寫入操作時可能會發生字元線短路的問題。當字元線短路發生時,儲存於空間上相鄰的字元線所對應的儲存單元的電壓會產生電壓的偏移,導致位元資料產生錯誤,進而形成錯誤位元(error bit)。一旦錯誤位元被產生了,記憶體控制器便需要針對損壞資料做額外處理,因此降低了記憶體裝置的存取效率。
本發明的一目的在於解決因字元線短路造成資料錯誤的問題。本發明藉由利用額外配置的複數個記憶體區塊作為緩存器所對應之備份記憶體區塊,使得當緩存器的資料發生錯誤時,便可利用備份記憶體區塊所儲存之備用資料進行修復。相較於傳統僅使用TLC記憶體區塊作為緩存器的設計,一旦產生錯誤位元,記憶體控制器便需要針對損壞資料做額外處理,導致記憶體裝置的存取效率大幅降低。藉由本發明所提出之資料處理方法,可有效避免記憶體裝置的存取效率因資料修復的執行而降低的情況。
本發明的一實施例提供一種資料儲存裝置,包括一記憶體裝置與一記憶體控制器。記憶體裝置包括複數記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器配置一第一記憶體區塊作為用以自一主機裝置接收資料之一緩存器,並且對應地配置複數第二記憶體區塊,第一記憶體區塊為一三層單元記憶體區塊,第二記憶體區塊為複數單層單元記憶體區塊。記憶體控制器使用第一記憶體區塊接收資料,並且對應地將相同之資料儲存於第一記憶體區塊所對應之第二記憶體區塊作為備份資料。當第一記憶體區塊之一可用空間小於或等於一既定數量時,記憶體控制器檢查第一記憶體區塊所儲存之資料是否發生錯誤,並且當第一記憶體區塊所儲存之資料發生錯誤時,記憶體控制器進一步配置一第三記憶體區塊,並且將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊。
本發明的另一實施例提供一種資料資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器,記憶體裝置包括複數記憶體區塊,記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,該方法由記憶體控制器所執行並包括:配置一第一記憶體區塊作為用以自一主機裝置接收資料之一緩存器;配置複數第二記憶體區塊作為第一記憶體區塊所對應之備份記憶體區塊,其中第一記憶體區塊為一三層單元記憶體區塊,第二記憶體區塊為複數單層單元記憶體區塊;使用第一記憶體區塊接收資料,並且對應地將相同之資料儲存於第一記憶體區塊所對應之第二記憶體區塊作為備份資料;當第一記憶體區塊之一可用空間小於或等於一既定數量時,檢查第一記憶體區塊所儲存之資料是否發生錯誤;當檢查出第一記憶體區塊所儲存之資料發生錯誤時,配置一第三記憶體區塊;以及將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊。
相較於傳統僅使用TLC記憶體區塊作為緩存器的設計,藉由本發明所提出之資料處理方法,可有效避免記憶體裝置的存取效率因資料修復的執行而降低的情況。此外,相較於傳統僅使用SLC記憶體區塊作為緩存器的設計,於本發明之實作中,當緩存器的資料未發生錯誤,可省去讀取SLC記憶體區塊的時間。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一個實施例」、「一實施例」、「一個範例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「在一個實施例中」、「在一實施例中」、「在一個範例中」或「在一範例中」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),即,物理資料頁,其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。在一實施例中,記憶體控制器110透過介面邏輯118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus ,縮寫為USB)標準、安全數位(Secure Digital ,縮寫為SD)介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、複合式快閃記憶體(Compact flash,縮寫為CF)介面標準、多媒體卡(Multimedia Card,縮寫為MMC)介面標準、嵌入式多媒體卡(Embedded Multimedia Card,縮寫為eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,縮寫為UFS)介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準。
在一實施例中,緩衝記憶體116係以隨機存取記憶體(Random Access Memory,縮寫為RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,縮寫為SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,縮寫為EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可包括單層單元(Single-Level Cell,縮寫為SLC)記憶體區塊、多層單元(Multiple-Level Cell,縮寫為MLC)記憶體區塊以及/或是三層單元(Triple-Level Cell,縮寫為TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。
一般而言,記憶體裝置120可大體被區分為三個區域,包含系統區域、資料區域以及備用區域。記憶體控制器110可自備用區域選擇一記憶體區塊作為快取記憶體,或稱緩存器(buffer),用以接收並暫存資料。待緩存器被寫滿時,記憶體控制器110再將作為緩存器之記憶體區塊更新成資料區域的資料區塊。舉例而言,若用以接收並暫存資料的緩存器為MLC或TLC記憶體區塊,待緩存器被寫滿時,可直接被更新為資料區域的資料區塊。若用以接收並暫存資料的緩存器為SLC記憶體區塊,待一定數量之緩存器被寫滿時,可透過垃圾回收程序,將多個緩存器記憶體區塊所儲存之資料搬移至MLC或TLC記憶體區塊(目標記憶體區塊),並藉此操作將目標記憶體區塊更新為資料區域的資料區塊。
根據本發明之一實施例,記憶體裝置120為一立體NAND型快閃記憶體(3D NAND-type flash),且記憶體控制器110可配置一第一記憶體區塊作為用以自主機裝置130接收資料之一緩存器,其中第一記憶體區塊為一三層單元(TLC)記憶體區塊。亦即,當主機裝置130欲寫入資料時,記憶體控制器110先將接收到的資料暫存於第一記憶體區塊。待第一記憶體區塊被寫滿時,記憶體控制器110便可直接將第一記憶體區塊更新成資料區域的資料區塊。然而,如上述,字元線短路(word line short)的問題可能會發生於TLC記憶體區塊的寫入操作。為避免記憶體裝置的存取效率因發生字元線短路而降低,記憶體控制器110可於配置上述第一記憶體區塊時,對應地配置複數第二記憶體區塊,用以作為第一記憶體區塊之備份(backup)記憶體區塊。根據本發明之一實施例,第二記憶體區塊為單層單元(SLC)記憶體區塊,且該等第二記憶體區塊所儲存之資料內容與第一記憶體區塊相同,用以於第一記憶體區塊所儲存之資料產生錯誤時,以第二記憶體區塊所儲存之資料直接取代第一記憶體區塊所儲存之資料。如此一來,記憶體控制器110無需針對損壞的資料做額外的修復處理,有效避免記憶體裝置的存取效率因資料修復的執行而降低。
第2圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。本發明之資料處理方法係由記憶體控制器110執行,並且包括:
步驟S202: 配置第一記憶體區塊作為用以自主機裝置130接收資料之緩存器。
步驟S204: 配置複數第二記憶體區塊作為第一記憶體區塊所對應之備份記憶體區塊。其中根據本發明之一實施例,第一記憶體區塊為一TLC記憶體區塊,第二記憶體區塊為複數SLC記憶體區塊。 步驟S206: 使用第一記憶體區塊接收資料,並且對應地將相同的資料儲存於第二記憶體區塊作為備份資料。需注意的是,於本發明之實施例中,並不限定記憶體控制器110將資料先寫入第一記憶體區塊或先寫入第二記憶體區塊。此外,由於現今技術中已發展出多種將資料寫入TLC記憶體區塊及將資料寫入SLC記憶體區塊的不同方式,且寫入方式亦可根據系統的效能需求做彈性地設計,因此,本發明並不限於使用任何一種特定的資料寫入方式。
步驟S208: 判斷第一記憶體區塊之一可用空間是否小於或等於一既定數量。由於第一記憶體區塊之容量為已知的,記憶體控制器110可根據寫入資料量判斷第一記憶體區塊剩餘之可用空間是否已小於或等於一既定數量。若第一記憶體區塊剩餘之可用空間仍大於既定數量,則返回步驟S206。若第一記憶體區塊剩餘之可用空間已小於或等於既定數量,則執行步驟S210。
根據本發明之一實施例,於步驟S208中所使用的既定數量可被設定為第一記憶體區塊之容量乘上一比值之結果。舉例而言,既定數量可設定為第一記憶體區塊之容量之10%、第一記憶體區塊之容量之5%、第一記憶體區塊之容量之3%等。根據本發明之另一實施例,於步驟S208中所使用的既定數量可被設定為0。即,於步驟S208中可判斷第一記憶體區塊是否已被寫滿。若第一記憶體區塊尚未被寫滿,則返回步驟S206。若第一記憶體區塊已被寫滿,則執行步驟S210。
步驟S210: 檢查第一記憶體區塊所儲存之資料是否發生錯誤。根據本發明之一實施例,記憶體控制器110可逐頁檢查第一記憶體區塊所儲存之資料內容,計算錯誤位元的數量,並且根據錯誤位元的數量判斷第一記憶體區塊所儲存之資料是否發生錯誤。若第一記憶體區塊之一資料頁所儲存之資料所包含的錯誤位元數量並未大於解碼器134可根據錯誤更正碼修復的一臨界值時,可利用解碼器134進行錯誤更正操作。若第一記憶體區塊之任一資料頁所儲存之資料所包含的錯誤位元數量大於解碼器134可根據錯誤更正碼修復的臨界值時(即,當任一資料頁被判斷為錯誤更正碼無法更正(Uncorrectable Error Correction Code,縮寫為UECC)的資料頁時),記憶體控制器110便可判斷第一記憶體區塊因字元線短路而發生資料錯誤。若記憶體控制器110判斷第一記憶體區塊所儲存之資料發生錯誤,執行步驟S212。若記憶體控制器110判斷第一記憶體區塊所儲存之資料並未發生錯誤,執行步驟S216。
值得注意的是,判斷第一記憶體區塊所儲存之資料是否發生錯誤的條件並不限於上述之任一資料頁被判斷為UECC資料頁。於實施本發明時,判斷第一記憶體區塊所儲存之資料是否發生錯誤的條件可根據系統需求或系統之軟體/硬體的錯誤修復能力而對應地調整。
步驟S212: 配置第三記憶體區塊。其中根據本發明之一實施例,所述第三記憶體區塊為一TLC記憶體區塊,記憶體控制器110可如上述自備用區域選擇一記憶體區塊作為第三記憶體區塊。
步驟S214: 將第一記憶體區塊所對應之第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊。根據本發明之一實施例,當記憶體控制器110將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊時,記憶體控制器複製第二記憶體區塊所儲存之備份資料,並且將複製之備份資料儲存於第三記憶體區塊。舉例而言,記憶體控制器110可讀取第二記憶體區塊所儲存之三頁的備份資料,並將之寫入第三記憶體區塊的其中一頁。
步驟S216: 將第一/第三記憶體區塊更新為資料區域的資料區塊。於此步驟中,若記憶體控制器110判斷第一記憶體區塊所儲存之資料並未發生錯誤,則記憶體控制器110可直接將第一記憶體區塊更新為資料區域的資料區塊。若記憶體控制器110判斷第一記憶體區塊所儲存之資料發生錯誤,因而配置第三記憶體區塊並將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊,則於第二記憶體區塊所儲存之所有資料被搬移至第三記憶體區塊後,記憶體控制器110可直接將第三記憶體區塊更新為資料區域的資料區塊。
根據本發明之一實施例,當記憶體控制器110於步驟S210中判斷第一記憶體區塊所儲存之資料發生錯誤時,由於第二記憶體區塊所儲存之備份資料為第一記憶體區塊所儲存之資料之備份,因此記憶體控制器110可直接捨棄第一記憶體區塊所儲存之所有資料。
根據本發明之一實施例,所述之捨棄為記憶體控制器110不再認定第一記憶體區塊所儲存之資料為有效資料。舉例而言,記憶體控制器110可做些許對應之註記或參數設定,或者記憶體控制器110亦可不做任何設定,僅是將第一記憶體區塊放置暫不使用,待爾後記憶體控制器110需要配置新的記憶體區塊時,再挑選出第一記憶體區塊並抹除第一記憶體區塊所儲存之資料,用以釋放出可用的記憶體空間。
類似地,當記憶體控制器110於步驟S210中判斷第一記憶體區塊所儲存之資料並未發生錯誤時,由於記憶體控制器110可直接將第一記憶體區塊更新為資料區域的資料區塊,因此記憶體控制器110可直接捨棄第二記憶體區塊所儲存之所有資料。
同樣地,所述之捨棄為記憶體控制器110不再認定第二記憶體區塊所儲存之資料為有效資料。舉例而言,記憶體控制器110可做些許對應之註記或參數設定,或者記憶體控制器110亦可不做任何設定,僅是將第二記憶體區塊放置暫不使用,待爾後記憶體控制器110需要配置新的記憶體區塊時,再抹除第二記憶體區塊所儲存之資料,用以釋放出可用的記憶體空間。
根據本發明之一實施例,在記憶體控制器110使用第一記憶體區塊作為緩存器自主機裝置130接收資料時,記憶體控制器110會同時於緩衝記憶體116維護至少一第一映射表格。更具體的說,於利用第一記憶體區塊接收資料時,記憶體控制器110會對應地於第一映射表格中紀錄複數邏輯位址。根據本發明之一實施例,第一映射表格為一快閃記憶體對主機(Flash to Host,縮寫為F2H)(亦可稱為物理對邏輯(Physical to Logical,縮寫為P2L)映射表格。第一映射表格可包含複數欄位,各欄位用以紀錄寫入第一記憶體區塊之各物理資料頁之資料係指向(對應於)哪個邏輯資料頁,例如,第一映射表格中可紀錄對應之邏輯頁面之邏輯區塊位址(Logical Block Address,縮寫為LBA),或是以其他形式記錄邏輯資料頁之邏輯位址。
值得注意的是,由於第二記憶體區塊係被配置作為第一記憶體區塊所對應之備份記憶體區塊,第二記憶體區塊所儲存之備份資料理論上與第一記憶體區塊所儲存之資料相同,並且具有一對一的對應關係。因此,記憶體控制器110可僅於緩衝記憶體116為第一記憶體區塊與第二記憶體區塊之其中一者維護一份F2H(或稱P2L)映射表格以記錄其映射資訊。至於另一者未被記錄於第一映射表格之映射資訊,則可直接藉由被記錄的映射資訊推導出來。
第3圖係顯示根據本發明之一實施例所述之第一映射表格範例,藉由此範例可顯示出根據第一記憶體區塊之映射資訊推導出第二記憶體區塊之映射資訊之方法。如圖所示,第一映射表格Table_1紀錄了記憶體區塊編號為W之第一記憶體區塊TLC_Block的映射資訊。根據本發明之一實施例,第一映射表格Table_1可以一陣列形式記錄複數邏輯區塊位址LBA,其中第一映射表格之一欄位對應於第一記憶體區塊TLC_Block之一物理資料頁。即,第一映射表格Table_1之陣列索引值與第一記憶體區塊TLC_Block之物理資料頁編號可有著一對一的對應關係。舉例而言,假設第一映射表格Table_1所使用的起始陣列索引值為0,則第一映射表格的第一個欄位Table_1[0](即,第一映射表格Table_1所儲存之第1筆記錄)所紀錄的邏輯位址為第一記憶體區塊TLC_Block的第1個物理資料頁之資料所指向的邏輯資料頁,第二個欄位Table_1[1]( 即,第一映射表格Table_1所儲存之第2筆記錄)所紀錄的邏輯位址為第一記憶體區塊TLC_Block的第2個物理資料頁之資料所指向的邏輯資料頁,並依此類推。
而當記憶體控制器110對應地配置第二記憶體區塊作為第一記憶體區塊之備份記憶體區塊時,已知對應於第一記憶體區塊TLC_Block #W的複數第二記憶體區塊的編號為X、Y與Z(即圖中所示之SLC_Block #X、SLC_Block #Y與SLC_Block #Z),因此,記憶體控制器110 可根據第一記憶體區塊TLC_Block #W與物理資料頁編號(例如,圖中所示之物理資料頁編號Page 0、Page 1…Page (n-1)、Page (n)、Page (n+1) …Page (2n-1)、Page (2n)、Page (2n+1) …Page (3n-1))以及第一映射表格Table_1所紀錄的內容輕易地推導出第二記憶體區塊SLC_Block #X、SLC_Block #Y與SLC_Block #Z之各物理資料頁的映射資訊。
然而,值得注意的是,本發明並不限於僅於緩衝記憶體116維護一份F2H(或稱P2L)映射表格。於本發明之其他實施例中,記憶體控制器110亦可於緩衝記憶體116中同時為第一記憶體區塊與第二記憶體區塊維護對應之F2H(或稱P2L)映射表格。
根據本發明之不同實施例,記憶體控制器110可於前景或背景執行資料搬移的操作(例如,第2圖之步驟S212~S214)。根據本發明之第一實施例,當資料處理流程被設計為於前景執行資料搬移的操作時,記憶體控制器110可於檢查出第一記憶體區塊所儲存之資料發生錯誤時,直接將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊。根據本發明之第二實施例,當資料處理流程被設計為於背景執行資料搬移的操作時,記憶體控制器110可先保留第二記憶體區塊所儲存之備份資料,等待記憶體裝置閒置時(例如,於偵測到主機裝置130超過一既定時間都未發出存取指令存取記憶體裝置120時),再於背景藉由垃圾回收操作將第二記憶體區塊(SLC記憶體區塊)所儲存之備份資料搬移至第三記憶體區塊(TLC記憶體區塊)。
第4圖係顯示根據本發明之另一實施例所述之資料處理方法之範例流程圖,此流程圖係用以說明於前景執行資料搬移的操作。根據本發明之第一實施例,流程開始於記憶體控制器110自主機裝置130接收到寫入請求,並且包括:
步驟S402: 自主機裝置接收欲寫入之資料(以下稱為主機資料)。
步驟S404: 將主機資料寫入第一記憶體區塊與第二記憶體區塊。如上所述,第一記憶體區塊為一TLC記憶體區塊,第二記憶體區塊為複數SLC記憶體區塊。
步驟S406: 將主機資料之邏輯位置對應地紀錄於緩衝記憶體116內所儲存之第一映射表格。如上所述,第一映射表格為F2H(或稱P2L)映射表格。
步驟S408: 判斷第一記憶體區塊之一可用空間是否小於或等於一既定數量。由於第一記憶體區塊之容量為已知的,記憶體控制器110可根據寫入資料量判斷第一記憶體區塊剩餘之可用空間是否已小於或等於一既定數量。若第一記憶體區塊剩餘之可用空間仍大於既定數量,則流程結束,待再次自主機裝置130接收到寫入請求時重新開始。若第一記憶體區塊剩餘之可用空間已小於或等於既定數量,則執行步驟S410。
如上述,根據本發明之一實施例,於步驟S408中所使用的既定數量可被設定為第一記憶體區塊之容量乘上一比值之結果。舉例而言,既定數量可設定為第一記憶體區塊之容量之10%、第一記憶體區塊之容量之5%、第一記憶體區塊之容量之3%等。根據本發明之另一實施例,於步驟S408中所使用的既定數量可被設定為0。即,於步驟S408中可判斷第一記憶體區塊是否已被寫滿。若第一記憶體區塊尚未被寫滿,則流程結束,待再次自主機裝置130接收到寫入請求時重新開始。若第一記憶體區塊已被寫滿,則執行步驟S410。
步驟S410: 讀取第一記憶體區塊所儲存之資料並執行資料驗證。
步驟S412: 判斷字元線短路是否發生於第一記憶體區塊(例如,判斷第一記憶體區塊所儲存之資料是否發生錯誤)。若是,則執行步驟S414。若否,則執行步驟S418。
步驟S414: 捨棄第一記憶體區塊。如上所述,所述之捨棄為記憶體控制器110不再認定第一記憶體區塊所儲存之資料為有效資料。舉例而言,記憶體控制器110可做些許對應之註記或參數設定,或者記憶體控制器110亦可不做任何設定,僅是將第一記憶體區塊放置暫不使用,待爾後記憶體控制器110需要配置新的記憶體區塊時,再挑選出第一記憶體區塊並抹除第一記憶體區塊所儲存之資料,用以釋放出可用的記憶體空間。於本發明之實施例中,由於當記憶體控制器110決定捨棄第一記憶體區塊時,於第一映射表格中所紀錄之第一記憶體區塊之映射資訊最終並不會被更新至記憶體裝置120,因此,記憶體裝置120內並不會記錄第一記憶體區塊內所儲存之資料的連結。當資料的連結(映射資訊)並未被建立或記錄於記憶體裝置120時,或該連結已為無效之連結時,該資料便成為無效的資料。
步驟S416: 配置另一新的SLC記憶體區塊(例如,第三記憶體區塊),並且將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊。
步驟S418: 根據第一記憶體區塊或第三記憶體區塊之記憶體區塊編號、物理資料頁編號及第一映射表格所紀錄之複數邏輯區塊位址LBA將第一映射表格的內容更新至記憶體裝置120所儲存之一第二映射表格。於此步驟中,若第一記憶體區塊並未發生字元線短路,則記憶體控制器110根據第一記憶體區塊之記憶體區塊編號、物理資料頁編號及第一映射表格所紀錄之複數邏輯區塊位址LBA將第一映射表格的內容更新至記憶體裝置120所儲存之一第二映射表格。若第一記憶體區塊發生字元線短路,則記憶體控制器110根據第三記憶體區塊之記憶體區塊編號、物理資料頁編號及第一映射表格所紀錄之複數邏輯區塊位址LBA將第一映射表格的內容更新至記憶體裝置120所儲存之一第二映射表格。此外,記憶體控制器110亦可於第一映射表格所紀錄之映射資訊被更新至第二映射表格之前或之後,將第一記憶體區塊或第三記憶體區塊直接更新為資料區域的資料區塊。
根據本發明之一實施例,第二映射表格被儲存於記憶體裝置120之系統區域。第二映射表格為一主機對快閃記憶體(Host to Flash,縮寫為H2F)(亦可稱為物理對邏輯(Logical to Physical,縮寫為L2P)映射表格。第二映射表格所記錄的複數筆資料係對應於複數邏輯資料頁。一般而言,第二映射表格所包含的欄位數量與主機系統中所包含的邏輯資料頁數量相關,其中第二映射表格的一個欄位對應於主機系統的一個邏輯資料頁,用以紀錄此邏輯資料頁之資料係指向(實際上被儲存於)記憶體裝置120的哪個記憶體區塊以及哪個物理資料頁。根據本發明之一實施例,所述之主機系統可以是包含主機裝置130與資料儲存裝置100之一系統,亦可為進一步包含耦接至主機裝置130之一或多個周邊裝置之一系統。
根據本發明之一實施例,第二映射表格可以一陣列形式記錄各邏輯資料頁所對應之一記憶體區塊編號以及一資料頁編號,用以紀錄各邏輯資料頁之資料係指向(被儲存於)哪個記憶體區塊的哪個物理資料頁。如上述,第二映射表格之一欄位係對應於複數邏輯資料頁之一者。因此,第二映射表格之陣列索引值與邏輯資料頁有著一對一的對應關係。舉例而言,假設第二映射表格Table_2所使用的起始陣列索引值為0,則第二映射表格之第一個欄位Table_2[0]( 即,第二映射表格Table_2所儲存之第1筆記錄)所紀錄的記憶體區塊編號以及資料頁編號指示出主機系統中第1個邏輯資料頁之資料被存放的實體記憶體區塊及資料頁位置,第二映射表格之第二個欄位Table_2[1]( 即,第二映射表格Table_2所儲存之第2筆記錄)所紀錄的記憶體區塊編號以及資料頁編號指示出主機系統中第2個邏輯資料頁之資料被存放的實體記憶體區塊及資料頁位置,並依此類推。
由於目前主機裝置130所欲儲存之資料已被搬移至第三記憶體區塊,因此,記憶體控制器110於步驟S418可直接以第三記憶體區塊之記憶體區塊編號取代第一記憶體區塊之記憶體區塊編號,依據第一映射表格所紀錄之複數邏輯區塊位址LBA將第三記憶體區塊之記憶體區塊編號與物理資料頁編號紀錄於第二映射表格所對應之欄位。
步驟S420: 由於第一記憶體區塊或第三記憶體區塊之映射資訊均已被寫入(更新至)記憶體裝置120的第二映射表格(即,H2F或L2P映射表格)內(例如,步驟S418),因此,記憶體控制器110可捨棄第二記憶體區塊,並且重新配置新的TLC記憶體區塊作為緩存器,以及對應地配置新的SLC記憶體區塊作為備份記憶體區塊。
於本發明之第一實施例中,當判斷第一記憶體區塊所儲存之資料發生錯誤時,記憶體控制器110於根據第一映射表格之內容更新第二映射表格之內容前,便會捨棄第一記憶體區塊(步驟S414)並且將第二記憶體區塊所儲存之備份資料搬移至第三記憶體區塊(步驟S416)。由於當記憶體控制器110決定捨棄第一記憶體區塊時,於第一映射表格中所紀錄之第一記憶體區塊之映射資訊並不會在步驟S418中被更新至記憶體裝置120,因此,記憶體裝置120內並不會記錄第一記憶體區塊內所儲存之資料的連結。當資料的連結(映射資訊)並未被建立或記錄於記憶體裝置120時,或該連結已為無效之連結時,該資料便成為無效的資料。
第5圖係顯示根據本發明之又另一實施例所述之資料處理方法之範例流程圖,此流程圖係用以說明於背景執行資料搬移的操作。根據本發明之第二實施例,流程開始於記憶體控制器110自主機裝置130接收到寫入請求,並且包括:
步驟S502: 自主機裝置接收欲寫入之資料(以下稱為主機資料)。
步驟S504: 將資料寫入第一記憶體區塊與第二記憶體區塊。如上所述,第一記憶體區塊為一TLC記憶體區塊,第二記憶體區塊為複數SLC記憶體區塊。
步驟S506: 將主機資料之邏輯位置對應地紀錄於緩衝記憶體116內所儲存之第一映射表格。如上所述,第一映射表格為F2H(或稱P2L)映射表格。
步驟S508: 判斷第一記憶體區塊之一可用空間是否小於或等於一既定數量。由於第一記憶體區塊之容量為已知的,記憶體控制器110可根據寫入資料量判斷第一記憶體區塊剩餘之可用空間是否已小於或等於一既定數量。若第一記憶體區塊剩餘之可用空間仍大於既定數量,則流程結束,待再次自主機裝置130接收到寫入請求時重新開始。若第一記憶體區塊剩餘之可用空間已小於或等於既定數量,則執行步驟S510。
如上述,根據本發明之一實施例,於步驟S508中所使用的既定數量可被設定為第一記憶體區塊之容量乘上一比值之結果。舉例而言,既定數量可設定為第一記憶體區塊之容量之10%、第一記憶體區塊之容量之5%、第一記憶體區塊之容量之3%等。根據本發明之另一實施例,於步驟S508中所使用的既定數量可被設定為0。即,於步驟S508中可判斷第一記憶體區塊是否已被寫滿。若第一記憶體區塊尚未被寫滿,則流程結束,待再次自主機裝置130接收到寫入請求時重新開始。若第一記憶體區塊已被寫滿,則執行步驟S510。    步驟S510: 讀取第一記憶體區塊所儲存之資料並執行資料驗證。
步驟S512: 判斷字元線短路是否發生於第一記憶體區塊(例如,判斷第一記憶體區塊所儲存之資料是否發生錯誤)。若是,則執行步驟S514。若否,則執行步驟S518。
步驟S514: 捨棄第一記憶體區塊。如上所述,所述之捨棄為記憶體控制器110不再認定第一記憶體區塊所儲存之資料為有效資料。舉例而言,記憶體控制器110可做些許對應之註記或參數設定,或者記憶體控制器110亦可不做任何設定,僅是將第一記憶體區塊放置暫不使用,待爾後記憶體控制器110需要配置新的記憶體區塊時,再挑選出第一記憶體區塊並抹除第一記憶體區塊所儲存之資料,用以釋放出可用的記憶體空間。於本發明之實施例中,由於當記憶體控制器110決定捨棄第一記憶體區塊時,於第一映射表格中所紀錄之第一記憶體區塊之映射資訊最終並不會被更新至記憶體裝置120,因此,記憶體裝置120內並不會記錄第一記憶體區塊內所儲存之資料的連結。當資料的連結(映射資訊)並未被建立或記錄於記憶體裝置120時,或該連結已為無效之連結時,該資料便成為無效的資料。
步驟S516: 根據第二記憶體區塊之記憶體區塊編號、物理資料頁編號及第一映射表格所紀錄之複數邏輯區塊位址LBA將第一映射表格的內容更新至記憶體裝置120所儲存之第二映射表格。
如上述,根據本發明之一實施例,第二映射表格被儲存於記憶體裝置120之系統區域。第二映射表格為一H2F(或稱L2P)映射表格。於本發明之一實施例中,若記憶體控制器110僅於緩衝記憶體116為第一記憶體區塊維護其所對應之F2H(或稱P2L)映射表格(即上述之第一映射表格),則記憶體控制器110於步驟S516中可利用如第3圖所示第一記憶體區塊與第二記憶體區塊之間的一對一的對應關係,根據第一映射表格所紀錄之內容將未被記錄之第二記憶體區塊的映射資訊推導出來,並將之紀錄於第二映射表格所對應之欄位。若記憶體控制器110已於緩衝記憶體116為第二記憶體區塊維護其所對應之F2H(或稱P2L)映射表格(即上述之第一映射表格),則記憶體控制器110於步驟S516中可直接根據第一映射表格所紀錄之複數邏輯區塊位址LBA將第二記憶體區塊之記憶體區塊編號與物理資料頁編號紀錄於第二映射表格所對應之欄位。
步驟S518: 因第一記憶體區塊並未發生字元線短路,記憶體控制器110無須捨棄第一記憶體區塊,因此可直接根據第一記憶體區塊之記憶體區塊編號、物理資料頁編號及第一映射表格所紀錄之複數邏輯區塊位址LBA將第一映射表格的內容更新至記憶體裝置120所儲存之一第二映射表格。此外,記憶體控制器110亦可於第一映射表格所紀錄之映射資訊被更新至第二映射表格之前或之後,將第一記憶體區塊直接更新為資料區域的資料區塊。
由於第一記憶體區塊或第二記憶體區塊之映射資訊均已被寫入(更新至)記憶體裝置120的第二映射表格(即,H2F或L2P映射表格)內(例如,步驟S516或S518),因此,記憶體控制器110可重新配置新的TLC記憶體區塊作為緩存器,以及對應地配置新的SLC記憶體區塊作為備份記憶體區塊。
於本發明之第二實施例中,當判斷第一記憶體區塊所儲存之資料發生錯誤時,記憶體控制器110於根據第一映射表格之內容更新第二映射表格之內容前,便會捨棄第一記憶體區塊(步驟S514)。由於當記憶體控制器110決定捨棄第一記憶體區塊時,於第一映射表格中所紀錄之第一記憶體區塊之映射資訊並不會在步驟S516或S518中被更新至記憶體裝置120,因此,記憶體裝置120內並不會記錄第一記憶體區塊內所儲存之資料的連結。當資料的連結(映射資訊)並未被建立或記錄於記憶體裝置120時,或該連結已為無效之連結時,該資料便成為無效的資料。
此外,於本發明之第二實施例中,在根據第一映射表格之內容更新第二映射表格之內容之前,記憶體控制器110並不會將第二記憶體區塊所儲存之備份資料搬移至另一記憶體區塊(例如,第三記憶體區塊),而是在根據第一映射表格之內容更新第二映射表格之內容(步驟S516或S518)之後,透過爾後啟動之一垃圾回收程序於背景將第二記憶體區塊所儲存之該備份資料搬移至另一記憶體區塊(例如,第三記憶體區塊)。如此一來,可進一步加速資料寫入的操作。
綜上所述,於本發明之實施例中,額外配置了複數個記憶體區塊作為緩存器所對應之備份記憶體區塊,備份記憶體區塊以選擇SLC記憶體區塊為較佳。由於SLC記憶體區塊的寫入速度快,且資料錯誤率低,可確保備用資料的正確性。當緩存器的資料發生錯誤,便可利用SLC記憶體區塊所儲存之備用資料進行修復。當緩存器的資料未發生錯誤,則可直接捨棄SLC記憶體區塊所儲存之備用資料。於傳統僅使用TLC記憶體區塊作為緩存器的設計,一旦產生錯誤位元,記憶體控制器便需要針對損壞資料做額外處理,導致記憶體裝置的存取效率大幅降低。因此,相較於傳統設計,藉由本發明所提出之資料處理方法,可有效避免記憶體裝置的存取效率因資料修復的執行而降低的情況。
此外,於本發明之實施例中,寫入主機資料的操作包含了將主機資料寫入TLC記憶體區塊(緩存器)以及寫入SLC記憶體區塊(作為備份資料),而當緩存器的資料未發生錯誤時,可直接捨棄SLC記憶體區塊所儲存之備用資料。然而,於傳統僅使用SLC記憶體區塊作為緩存器的設計,為了提升資料儲存量,最終仍必須執行的垃圾回收操作,因此,其寫入主機資料的操作包含了將主機資料寫入SLC記憶體區塊(緩存器)、以及執行的垃圾回收操作所包含之自讀取SLC記憶體區塊讀取資料,並且將資料寫入TLC記憶體區塊的操作。因此,相較於傳統僅使用SLC記憶體區塊作為緩存器的設計,於本發明之實作中,當緩存器的資料未發生錯誤,可省去讀取SLC記憶體區塊的時間。
申請專利範圍中用以修飾元件之“第一”、“第二” 、“第三”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置 110:記憶體控制器 112:微處理器 112C:程式碼 112M:唯讀記憶體 114:控制邏輯 116:緩衝記憶體 118:介面邏輯 120:記憶體裝置 130:主機裝置 132:編碼器 134:解碼器 LBA:邏輯區塊位址 Page 0,Page 1,Page (n-1),Page (n),Page (n+1),Page (2n-1),Page (2n),Page (2n+1),Page (3n-1):物理資料頁 SLC_Block:第二既定記憶體區塊 Table_1:第一映射表格 TLC_Block:第一既定記憶體區塊
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的示意圖。 第2圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。 第3圖係顯示根據本發明之一實施例所述之第一映射表格範例。 第4圖係顯示根據本發明之另一實施例所述之資料處理方法之範例流程圖。 第5圖係顯示根據本發明之又另一實施例所述之資料處理方法之範例流程圖。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器

Claims (15)

  1. 一種資料儲存裝置,包括: 一記憶體裝置,包括複數記憶體區塊;以及 一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中該記憶體控制器配置一第一記憶體區塊作為用以自一主機裝置接收資料之一緩存器,並且對應地配置複數第二記憶體區塊,該第一記憶體區塊為一三層單元記憶體區塊,該等第二記憶體區塊為複數單層單元記憶體區塊, 該記憶體控制器使用該第一記憶體區塊接收資料,並且對應地將相同之該資料儲存於該第一記憶體區塊所對應之該等第二記憶體區塊作為該資料之備份資料, 當該第一記憶體區塊之一可用空間小於或等於一既定數量時,該記憶體控制器檢查該第一記憶體區塊所儲存之資料是否發生錯誤,並且當該第一記憶體區塊所儲存之資料發生錯誤時,該記憶體控制器進一步配置一第三記憶體區塊,並且將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中當該第一記憶體區塊所儲存之資料發生錯誤時,該記憶體控制器捨棄該第一記憶體區塊所儲存之所有資料。
  3. 如申請專利範圍第1項所述之資料儲存裝置,其中該第三記憶體區塊為一三層單元記憶體區塊,當該記憶體控制器將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊時,該記憶體控制器複製該等第二記憶體區塊所儲存之該備份資料,並且將複製之該備份資料儲存於該第三記憶體區塊。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中於該等第二記憶體區塊所儲存之該備份資料被搬移至該第三記憶體區塊後,該記憶體控制器捨棄該等第二記憶體區塊所儲存之所有資料。
  5. 如申請專利範圍第1項所述之資料儲存裝置,其中當該記憶體控制器判斷該第一記憶體區塊所儲存之資料並未發生錯誤時,該記憶體控制器捨棄該第一記憶體區塊所對應之該等第二記憶體區塊所儲存之所有資料。
  6. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器包括一緩衝記憶體,當該第一記憶體區塊所儲存之資料發生錯誤時,該記憶體控制器於根據該緩衝記憶體所儲存之一目前的快閃記憶體對主機映射表格之內容更新該記憶體裝置所儲存之一主機對快閃記憶體映射表格之內容前,將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊。
  7. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器包括一緩衝記憶體,當該第一記憶體區塊所儲存之資料發生錯誤時,該記憶體控制器於根據該緩衝記憶體所儲存之一目前的快閃記憶體對主機映射表格之內容更新該記憶體裝置所儲存之一主機對快閃記憶體映射表格之內容後,透過一垃圾回收程序於背景將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊。
  8. 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體裝置為一立體NAND型快閃記憶體。
  9. 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體裝置包括複數記憶體區塊,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法由該記憶體控制器所執行並包括: 配置一第一記憶體區塊作為用以自一主機裝置接收資料之一緩存器; 配置複數第二記憶體區塊作為該第一記憶體區塊所對應之備份記憶體區塊,其中該第一記憶體區塊為一三層單元記憶體區塊,該等第二記憶體區塊為複數單層單元記憶體區塊; 使用該第一記憶體區塊接收資料,並且對應地將相同之該資料儲存於該第一記憶體區塊所對應之該等第二記憶體區塊作為該資料之備份資料; 當該第一記憶體區塊之一可用空間小於或等於一既定數量時,檢查該第一記憶體區塊所儲存之資料是否發生錯誤; 當檢查出該第一記憶體區塊所儲存之資料發生錯誤時,配置一第三記憶體區塊;以及 將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊。
  10. 如申請專利範圍第9項所述之資料處理方法,更包括: 當檢查出該第一記憶體區塊所儲存之資料發生錯誤時,捨棄該第一記憶體區塊所儲存之所有資料。
  11. 如申請專利範圍第9項所述之資料處理方法,其中將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊之步驟包括: 複製該等第二記憶體區塊所儲存之該備份資料;以及 將複製之該備份資料儲存於該第三記憶體區塊,其中該第三記憶體區塊為一三層單元記憶體區塊。
  12. 如申請專利範圍第11項所述之資料處理方法,更包括: 於該等第二記憶體區塊所儲存之該備份資料被搬移至該第三記憶體區塊後,捨棄該等第二記憶體區塊所儲存之所有資料。
  13. 如申請專利範圍第9項所述之資料處理方法,更包括: 當未檢查出該第一記憶體區塊所儲存之資料發生錯誤時,捨棄該第一記憶體區塊所對應之該等第二記憶體區塊所儲存之所有資料。
  14. 如申請專利範圍第9項所述之資料處理方法,更包括: 根據一緩衝記憶體所儲存之一目前的快閃記憶體對主機映射表格之內容更新該記憶體裝置所儲存之一主機對快閃記憶體映射表格之內容, 其中配置該第三記憶體區塊以及將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊之該等步驟係於該記憶體控制器根據該緩衝記憶體所儲存之該目前的快閃記憶體對主機映射表格之內容更新該記憶體裝置所儲存之該主機對快閃記憶體映射表格之內容之前於前景被執行。
  15. 如申請專利範圍第9項所述之資料處理方法,更包括: 根據一緩衝記憶體所儲存之一目前的快閃記憶體對主機映射表格之內容更新該記憶體裝置所儲存之一主機對快閃記憶體映射表格之內容, 其中配置該第三記憶體區塊以及將該等第二記憶體區塊所儲存之該備份資料搬移至該第三記憶體區塊之該等步驟係於該記憶體控制器根據該緩衝記憶體所儲存之該目前的快閃記憶體對主機映射表格之內容更新該記憶體裝置所儲存之該主機對快閃記憶體映射表格之內容之後,透過一垃圾回收程序於背景被執行。
TW109107586A 2020-03-09 2020-03-09 資料儲存裝置與資料處理方法 TWI747191B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109107586A TWI747191B (zh) 2020-03-09 2020-03-09 資料儲存裝置與資料處理方法
CN202010875927.5A CN113377282A (zh) 2020-03-09 2020-08-25 数据存储装置与数据处理方法
US17/079,503 US11662940B2 (en) 2020-03-09 2020-10-25 Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109107586A TWI747191B (zh) 2020-03-09 2020-03-09 資料儲存裝置與資料處理方法

Publications (2)

Publication Number Publication Date
TW202134878A TW202134878A (zh) 2021-09-16
TWI747191B true TWI747191B (zh) 2021-11-21

Family

ID=77555707

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109107586A TWI747191B (zh) 2020-03-09 2020-03-09 資料儲存裝置與資料處理方法

Country Status (3)

Country Link
US (1) US11662940B2 (zh)
CN (1) CN113377282A (zh)
TW (1) TWI747191B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11940887B2 (en) * 2020-12-04 2024-03-26 Innogrit Technologies Co., Ltd. Cache program with backup blocks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240012A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
TW201327185A (zh) * 2011-12-19 2013-07-01 Phison Electronics Corp 記憶體儲存裝置及其記憶體控制器與資料寫入方法
TW201344432A (zh) * 2012-04-17 2013-11-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TW201621912A (zh) * 2014-09-16 2016-06-16 桑迪士克科技公司 用於組態和控制非揮發性快取記憶體的系統及方法
US20170177236A1 (en) * 2015-10-08 2017-06-22 Seagate Technology Llc Internal copy-back with read-verify

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158621B2 (en) * 2011-08-29 2015-10-13 Sandisk Technologies Inc. System and method of copying data
CN103377132B (zh) * 2012-04-16 2016-02-10 群联电子股份有限公司 管理存储器空间的方法、存储器控制器与存储器储存装置
CN103377143B (zh) * 2012-04-27 2016-12-21 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器存储装置
CN103389941B (zh) * 2012-05-07 2016-03-02 群联电子股份有限公司 存储器格式化方法、存储器控制器及存储器存储装置
TWI548990B (zh) * 2013-05-17 2016-09-11 宇瞻科技股份有限公司 記憶體儲存裝置及其還原方法與記憶體控制器
US9063671B2 (en) * 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9507536B2 (en) * 2014-04-02 2016-11-29 International Business Machines Corporation Creating a stable flashcopy map (FCMAPS) for ingest
US9514837B2 (en) * 2015-01-20 2016-12-06 Sandisk Technologies Llc Selective online burn-in with adaptive and delayed verification methods for memory
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
TWI670600B (zh) * 2017-09-18 2019-09-01 深圳大心電子科技有限公司 資料備份方法、資料恢復方法以及儲存控制器
KR20210001508A (ko) * 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템의 MLC(Multi Level Cell)영역에 데이터를 안전하게 저장하기 위한 장치 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240012A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
TW201327185A (zh) * 2011-12-19 2013-07-01 Phison Electronics Corp 記憶體儲存裝置及其記憶體控制器與資料寫入方法
TW201344432A (zh) * 2012-04-17 2013-11-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TW201621912A (zh) * 2014-09-16 2016-06-16 桑迪士克科技公司 用於組態和控制非揮發性快取記憶體的系統及方法
US20170177236A1 (en) * 2015-10-08 2017-06-22 Seagate Technology Llc Internal copy-back with read-verify

Also Published As

Publication number Publication date
US20210278994A1 (en) 2021-09-09
US11662940B2 (en) 2023-05-30
TW202134878A (zh) 2021-09-16
CN113377282A (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
US9874918B2 (en) Power interrupt management
TWI463312B (zh) 用於異動記錄恢復之方法、用於操作記憶體系統之方法、用於記憶體系統中之異動記錄恢復之方法及記憶體系統
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US9122583B2 (en) Memory controller and memory storage device and data writing method
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN107357520B (zh) 整理指令处理方法、存储器控制电路单元及其存储装置
US9223688B2 (en) Data storing method and memory controller and memory storage device using the same
US20190146909A1 (en) Valid data management method and storage controller
CN112051971B (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
TW201935232A (zh) 記憶體管理方法及使用所述方法的儲存控制器
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
TWI747191B (zh) 資料儲存裝置與資料處理方法
CN112860193A (zh) 整理指令处理方法、存储器控制电路单元与存储装置
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
TWI749279B (zh) 資料儲存裝置與資料處理方法
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus
CN113138720B (zh) 数据存储方法、存储器控制电路单元以及存储器存储装置
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
TWI697778B (zh) 資料儲存裝置與資料處理方法
TWI808010B (zh) 資料處理方法及對應之資料儲存裝置
TWI814590B (zh) 資料處理方法及對應之資料儲存裝置