TWI590051B - 資料儲存裝置及其資料維護方法 - Google Patents

資料儲存裝置及其資料維護方法 Download PDF

Info

Publication number
TWI590051B
TWI590051B TW105119404A TW105119404A TWI590051B TW I590051 B TWI590051 B TW I590051B TW 105119404 A TW105119404 A TW 105119404A TW 105119404 A TW105119404 A TW 105119404A TW I590051 B TWI590051 B TW I590051B
Authority
TW
Taiwan
Prior art keywords
data
order
block
logical address
spare
Prior art date
Application number
TW105119404A
Other languages
English (en)
Other versions
TW201800947A (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 TW105119404A priority Critical patent/TWI590051B/zh
Priority to CN201610614705.1A priority patent/CN107526540B/zh
Priority to US15/618,224 priority patent/US10168913B2/en
Application granted granted Critical
Publication of TWI590051B publication Critical patent/TWI590051B/zh
Publication of TW201800947A publication Critical patent/TW201800947A/zh

Links

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
    • 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/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/0614Improving the reliability 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/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/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
    • 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/0658Controller construction 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • 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
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs

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

Description

資料儲存裝置及其資料維護方法
本發明係關於一種資料儲存裝置之資料維護方法;特別係關於一種三階儲存單元的資料維護方法。
快閃記憶體為一種普遍的非揮發性資料儲存媒體,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等之儲存媒體。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks),其中浮置閘極電晶體可用以構成快閃記憶體。浮置閘極電晶體中之浮置閘極,可捕捉的電荷以儲存資料。然而,儲存於浮置閘極之電荷會由於快閃記憶體之操作以及各種環境參數,自浮置閘極流失,造成資料保存(Data retention)之問題。其中,三階儲存單元(Triple-Level Cell,TLC)之快閃記憶體相較於其他單階儲存單元(Single-Level Cell,SLC)之快閃記憶體以及二階儲存單元(Multi-Level Cell,MLC)之快閃記憶體,更容易受環境影響而無法保存資料。值得注意的是,嵌入式快閃記憶體模組(eMMC)一般而言皆是焊接於母板上,因此嵌入式快閃記憶體模組會隨著母板一起承受高溫錫 爐,而導致資料的損毀。
本發明所提供之資料儲存裝置以及資料維護方法可以在一第二階段將在一第一階段所暫存之資料,以一三階儲存模式整理至暫存之單階儲存單元。
本發明提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體具有複數單階備用儲存區塊、複數三階資料區塊、及複數三階備用區塊。控制器用以接收一第一資料以及第一資料之一第一邏輯位址,並將第一資料寫入一第一三階備用區塊。控制器復用以依據第一邏輯位址,決定對應第一邏輯位址之一第一三階資料區塊是否已存在有效資料,其中當第一三階資料區塊已存在有效資料時,控制器更用以反查第一三階資料區塊所相應之一第二邏輯位址,釋放映射至第二邏輯位址之第一三階資料區塊、一第二三階資料區塊以及一第三三階資料區塊,並且將第一三階備用區塊映射至第一邏輯位址。
在一實施例中,當第一三階資料區塊不具有有效資料時,控制器用以將第一三階備用區塊映射至第一邏輯位址,並且釋放第一三階資料區塊。另外,控制器更用以判斷第一邏輯位址是否已具有相應之有效資料,當第一邏輯位址已具有相應之有效資料時,控制器更用以釋放映射至第一邏輯位址之三階資料區塊。其中,控制器係用以將第一資料以一單階儲存模式寫入單階儲存單元備用池中之一第一單階備用儲存區塊、一第二單階備用儲存區塊以及一第三單階備用儲存區塊, 再以一三階儲存模式將第一單階備用儲存區塊、第二單階備用儲存區塊以及第三單階備用儲存區塊中之資料整理至第一三階備用區塊。
另一實施例中,控制器係用以在一第一階段,將一預寫資料中之一第一子預寫資料、一第二子預寫資料以及一第三子預寫資料以一單階儲存模式寫入第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊,並且將第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊映射至第一邏輯區。其中,控制器係用以在一第二階段接收第一資料以及第一邏輯位址。第一階段為生產階段(Production Phase),第二階段為在第一階段後之整合階段(Integration Phase),並且在第一階段以及第二階段之間,資料儲存裝置承受一高溫焊接。
本發明亦提供一種資料維護方法適用於具有複數單階備用儲存區塊、複數三階資料區塊、以及複數三階備用區塊之一資料儲存裝置。資料維護方法包括:接收一第一資料以及第一資料之一第一邏輯位址,並將第一資料寫入一第一三階備用區塊;依據第一邏輯位址,決定對應第一邏輯位址之一第一三階資料區塊是否已存在有效資料;當第一三階資料區塊已存在有效資料時,反查第一三階資料區塊所相應之一第二邏輯位址;釋放映射至第二邏輯位址之第一三階資料區塊、一第二三階資料區塊以及一第三三階資料區塊;以及將第一三階備用區塊映射至第一邏輯位址。
在一實施例中資料維護方法更包括:當第一三階資料區塊不具有有效資料時,將第一三階備用區塊映射至第一邏 輯位址並且釋放第一三階資料區塊;判斷第一邏輯位址是否已具有相應之有效資料;以及當第一邏輯位址已具有相應之有效資料時,釋放映射至第一邏輯位址之三階資料區塊。其中將第一資料寫入第一三階備用區塊的步驟更包括:將第一資料以一單階儲存模式寫入一第一單階備用儲存區塊、一第二單階備用儲存區塊以及一第三單階備用儲存區塊;以及以一三階儲存模式將第一單階備用儲存區塊、第二單階備用儲存區塊以及第三單階備用儲存區塊中之資料整理至第一三階備用區塊。
另一實施例中,資料維護方法更包括:在一第一階段,將一預寫資料中之一第一子預寫資料、一第二子預寫資料以及一第三子預寫資料以一單階儲存模式寫入第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊;以及將第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊映射至第一邏輯區。其中,第一資料以及第一邏輯位址係在一第二階段被接收的。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
SLC_POOL‧‧‧單階儲存單元備用池
TLC_POOL‧‧‧三階儲存單元備用池
M_POOL‧‧‧三階資料區塊池
SLC_SP_1~SLC_SP_Z‧‧‧單階備用儲存區塊
TLC_SP_1~TLC_SP_M‧‧‧三階備用區塊
F_1~F_N‧‧‧三階資料區塊
H_1~H_N‧‧‧邏輯位址
S500~S504、S600~S614‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2圖係本發明之一種實施例之快閃記憶體之示意圖。
第3圖係本發明之一種實施例之邏輯位址以及三階資料區塊之示意圖。
第4圖係本發明之一種實施例之區塊映射關係之示意圖。
第5圖係本發明之一種實施例之資料維護方法之流程圖。
第6圖係本發明之一種實施例之資料維護方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機110所下達的命令操作。控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。快閃記憶體180具有複數區塊,其中每一區塊具有複數頁面,其中快閃記憶體180係以頁面為最小單位進行寫入,並且以區塊為最小單位進行抹除。
第2圖係本發明之一種實施例之快閃記憶體之示意圖。如第2圖所示,快閃記憶體180具有一單階儲存單元備用池SLC_POOL、一三階儲存單元備用池TLC_POOL以及一資料區塊池M_POOL。單階儲存單元備用池SLC_POOL包括複數單階備用儲存區塊(Single-Level Cell,SLC)SLC_SP_1~SLC_SP_Z,其中Z為單階備用儲存區塊的總數量,並且每一單階備用儲存區塊SLC_SP_1~SLC_SP_Z的大小等同 於一個區塊的大小,但本發明不限於此。換言之,單階備用儲存區塊SLC_SP_1~SLC_SP_Z係用以以單階儲存模式寫入資料的區塊。值得注意的是,單階儲存單元備用池SLC_POOL中之單階儲存單元SLC_SP_1~SLC_SP_Z係用以將資料整理至三階儲存單元備用池TLC_POOL的記憶體空間。三階儲存單元備用池TLC_POOL包括複數三階備用區塊(Triple-Level Cell,TLC)TLC_SP_0~TLC_SP_M,其中M為單階備用儲存區塊的總數量,並且每一三階備用區塊TLC_SP_0~TLC_SP_M的大小等同於一個區塊的大小。換言之,三階備用區塊TLC_SP_0~TLC_SP_M係用以以三階儲存模式寫入資料的區塊。值得注意的是,三階儲存單元備用池TLC_POOL係用以提供可進行寫入之三階備用區塊TLC_SP_0~TLC_SP_M,並且已存在有效資料之三階備用區塊TLC_SP_0~TLC_SP_M會與資料區塊池M_POOL中之具有無效資料的區塊交換。資料區塊池M_POOL具有複數三階資料區塊F_1~F_N,其中N為單階備用儲存區塊的總數量,並且每一三階資料區塊F_1~F_N的大小等同於一個區塊的大小。換言之,三階資料區塊F_1~F_N係用以寫入有效資料的區塊。值得注意的是,資料區塊池M_POOL係用以提供使用者儲存資料的記憶體空間。另外,三階資料區塊F_1~F_N分別被指派給複數邏輯位址H_1~H_N,其中每一該等三階資料區塊F_1~F_N分別相應於該等邏輯位址H_1~H_N中之一者,如第3圖所示。詳細而言,三階資料區塊F_1被指派給邏輯位址H_1、三階資料區塊F_1被指派給邏輯位址H_1、三階資料區塊F_2被指派給邏輯位址H_2、三階資料區塊F_3被指派 給邏輯位址H_3、三階資料區塊F_4被指派給邏輯位址H_4...,依此類推。另外,三階資料區塊F_1~F_N以及邏輯位址H_1~H_N係依照位址由上而下排列。
在本發明之一實施例中,快閃記憶體180係操作於三階儲存單元(Triple-Level Cell,TLC)模式。換言之,資料區塊池M_POOL中之三階資料區塊F_1~F_N係三階儲存單元。值得注意的是,三階儲存單元是藉由整理(Program)單階儲存單元的電壓所獲得的儲存單元。三階儲存單元的記憶體空間係單階儲存單元的三倍。雖然三階儲存單元的記憶體空間較大,但三階儲存單元相較於單階儲存單元更容易被環境影響,尤其是作為嵌入式快閃記憶體模組(eMMC)的快閃記憶體。由於嵌入式快閃記憶體模組(eMMC)需要與裝置的母板一起過錫鑪,故儲存於三階儲存單元中的資料在過錫鑪之後時常被損毀。有鑑於此,本案所提供之資料儲存裝置140可在快閃記憶體180進入高溫環境之前(即第一階段),將資料區塊池M_POOL中之三階資料區塊F_1~F_N作為單階儲存單元,以將預寫資料以單階儲存單元模式寫入三階資料區塊F_1~F_N。值得注意的是,當資料區塊池M_POOL中之三階資料區塊F_1~F_N作為單階儲存單元時,資料區塊池M_POOL的記憶體容量縮減為原本作為三階儲存單元之三階資料區塊F_1~F_N的三分之一倍。接著,本案所提供之資料儲存裝置140可在快閃記憶體180離開高溫環境之後(即第二階段),將以單階儲存單元模式寫入三階資料區塊F_1~F_N的預寫資料,重新整理為三階儲存單元。在本發明之一實施例中,第一階段為生產階段(Production Phase),第二階 段為在第一階段後之整合階段(Integration Phase),並且在第一階段以及第二階段之間,資料儲存裝置140承受一高溫焊接,但本發明不限於此。
舉例而言,當控制器160接收到一預寫資料及該預寫資料之一邏輯位址時,控制器160用以在第一階段,將一預寫資料(Preload Data)根據所接收之邏輯位址,寫入邏輯位址H_1~H_N中之至少一者。詳細而言,在本發明中,控制器160可將預寫資料(Preload Data)不依照邏輯位址H_1~H_N的位址寫入邏輯位址。換言之,控制器160可將預寫資料(Preload Data)寫入不依序選取之邏輯位址中。
在本發明之一實施例中,控制器160將三階資料區塊F_1~F_N均分為三個區域,其各包含相同數量的資料區塊。詳細而言,控制器160將三階資料區塊F_1~F_N依序分為區域R1~R3,以不連續地選取三階資料區塊F_1~F_N,以作為單階儲存單元,但本發明不限於此。值得注意的是,三階資料區塊F_1~F_N具有連續之位址。在將三階資料區塊F_1~F_N依序分為三個區域之後,控制器160接著根據命令將預寫資料分為複數子預寫資料以寫入邏輯位址中。值得注意的是,控制器160系依照每一三階儲存單元之大小將預寫資料切割為複數子預寫資料。換言之,每一預寫資料的資料量等同於一個三階儲存單元之資料量以及三個單階儲存單元之資料量。詳細而言,控制器160根據指示將預寫資料寫入邏輯位址H_1~H_N中之一特定邏輯位址的一寫入命令,分別自三個區域選取三階資料區塊F_1~F_N中之三者。接著,控制器160將子預寫資料以單階儲 存模式寫入所選取之三個三階資料區塊,並且將所選取之三個三階資料區塊映射至特定邏輯位址(例如,第一邏輯位址)。
值得注意的是,在本案中,三階資料區塊以及邏輯位址的映射以及指派關係可由至少一個映射表(Mapping table)來維持。舉例而言,快閃記憶體180可具有一第一映射表,用以紀錄三階資料區塊以及被指派之邏輯位址的關係。快閃記憶體180中可更包括一第二映射表用以紀錄已寫入子預寫資料之三階資料區塊以及邏輯位址的映射關係,其中已寫入子預寫資料之三階資料區塊可直接映射至邏輯位址,或者已寫入子預寫資料之三階資料區塊系映射至被指派給邏輯位址之三階資料區塊,本發明不限於此。
如第4圖所示,在一實施例中,控制器160在第一階段,根據指示將一第一預寫資料寫入邏輯位址H_1~H_N中之一邏輯位址H_302的一第一寫入命令,將第一預寫資料分析為第一子預寫資料、第二子預寫資料以及第三子預寫資料,並以一單階儲存模式將第一子預寫資料、第二子預寫資料以及第三子預寫資料寫入三階資料區塊F_302、三階資料區塊F_602以及三階資料區塊F_2,並將三階資料區塊F_302、三階資料區塊F_602以及三階資料區塊F_2映射至邏輯位址H_302。接著,控制器160在第一階段,根據指示將一第二預寫資料寫入邏輯位址H_1~H_N中之一邏輯位址H_604的一第二寫入命令,將第二預寫資料分析為第一子預寫資料、第二子預寫資料以及第三子預寫資料,並以一單階儲存模式將第二預寫資料之第一子預寫資料、第二子預寫資料以及第三子預寫資料寫入三階資料區塊 F_604、三階資料區塊F_4以及三階資料區塊F_304,並將三階資料區塊F_604、三階資料區塊F_4以及三階資料區塊F_304映射至邏輯位址H_604。接著,控制器160在第一階段,根據指示將一第三預寫資料寫入邏輯位址H_1~H_N中之一邏輯位址H_8的一第三寫入命令,將第三預寫資料分析為第一子預寫資料、第二子預寫資料以及第三子預寫資料,並將第三預寫資料之第一子預寫資料、第二子預寫資料以及第三子預寫資料以一單階儲存模式寫入三階資料區塊F_8、三階資料區塊F_308以及三階資料區塊F_608,並將三階資料區塊F_8、三階資料區塊F_308以及三階資料區塊F_608映射至邏輯位址H_8。接著,控制器160在第一階段,根據指示將一第四預寫資料寫入邏輯位址H_1~H_N中之一邏輯位址H_2的一第四寫入命令,將第四子預寫資料分析為第一子預寫資料、第二子預寫資料以及第三子預寫資料,並將第四預寫資料之第一子預寫資料、第二子預寫資料以及第三子預寫資料以一單階儲存模式寫入三階資料區塊F_1、三階資料區塊F_301以及三階資料區塊F_302,並將三階資料區塊F_1、三階資料區塊F_301以及三階資料區塊F_302映射至邏輯位址H_2。
然而,在某些實施例中,三階資料區塊並不是映射至被指派的邏輯位址。換言之,三階資料區塊所被寫入之資料並不是相應於被指派的邏輯位址的資料。因此,當使用者要在第二階段對邏輯位址進行寫入時,控制器160無法根據某些規格的要求,將被指派的邏輯位址的三階資料區塊推至三階儲存單元備用池TLC_POOL。舉例而言,如第4圖所示,三階資 料區塊F_2係被指派給邏輯位址H_2。然而,三階資料區塊F_2已被寫入相應於邏輯位址H_302之有效資料。換言之,三階資料區塊F_2系被映射至邏輯位址H_2,而並非被指派的邏輯位址H_2。
在第二階段中,控制器160接收具有一資料以及一特定邏輯位址之使用者寫入命令,並且根據所接收之使用者寫入命令,判斷特定邏輯位址是否已存在有效資料。當特定邏輯位址已存在有效資料時,控制器160釋放映射至特定邏輯位址之三個三階資料區塊。詳細而言,當特定邏輯位址已存在有效資料並且使用者寫入命令係要更新特定邏輯位址時,控制器160先定位被映射至特定邏輯位址之三個三階資料區塊,並且在三階儲存單元備用池TLC_POOL選取一三階備用區塊,以將被映射至特定邏輯位址之三個三階資料區塊中之資料以三階儲存模式整理至所選取之三階備用區塊。接著,控制器160將所整理之三階備用區塊暫時先映射至特定邏輯位址直到被寫入相應於使用者寫入命令之資料的另一被用三階儲存單元要映射至特定邏輯位址時,以在斷電事件發生時可保有特定邏輯位址原本的資料,但本發明不限於此。在其他實施例中,當特定邏輯位址已存在有效資料並且使用者寫入命令係要更新特定邏輯位址時,控制器160可直接將被映射至特定邏輯位址之三個三階資料區塊與特定邏輯位址之映射關係刪除。另外,當特定邏輯位址未存在有效資料時,則直接進行以下步驟。
接著,控制器160在三階儲存單元備用池TLC_POOL選取一三階備用區塊,並且將相應於使用者寫入命 令之資料寫入所選取之三階備用區塊。接著,控制器160更用以判斷被指派給特定邏輯位址之三階資料區塊(對應於特定邏輯位址之三階資料區塊)是否具有有效資料,以克服上述特定邏輯位址被指派的三階資料區塊已存在相應於其他邏輯位址之有效資料的問題。換言之,控制器160系判斷被指派給特定邏輯位址之三階資料區塊是否已被映射至其他邏輯位址,以克服上述特定邏輯位址被指派的三階資料區塊已存在相應於其他邏輯位址之有效資料的問題。當被指派給特定邏輯位址之三階資料區塊具有有效資料時,控制器160更用以反查被指派給特定邏輯位址之三階資料區塊所相應之邏輯位址,並且釋放映射至被指派給特定邏輯位址之三階資料區塊所相應之邏輯位址之三個三階資料區塊。換言之,當被指派給特定邏輯位址之三階資料區塊是否已被映射至其他邏輯位址,控制器160更用以反查被指派給特定邏輯位址之三階資料區塊所映射至的邏輯位址,並且釋放映射至被指派給特定邏輯位址之三階資料區塊所映射之邏輯位址之三個三階資料區塊。接著,控制器160將被指派給特定邏輯位址之三階資料區塊以及已寫入資料之三階備用區塊交換,以將已寫入資料之三階備用區塊映射至特定邏輯位址並且將被指派給特定邏輯位址之三階資料區塊推至三階儲存單元備用池TLC_POOL。另外,當被指派給特定邏輯位址之三階資料區塊不具有有效資料時,控制器160用以將被指派給特定邏輯位址之三階資料區塊以及已寫入資料之三階備用區塊交換,以將已寫入資料之三階備用區塊映射至特定邏輯位址並且將被指派給特定邏輯位址之三階資料區塊推至 三階儲存單元備用池TLC_POOL。
值得注意的是,在某些實施例中,控制器160係先將使用者寫入命令欲寫入之資料以單階儲存模式先寫入單階備用儲存區塊池SLC_POOL中之單階儲存單元中之三者,再以三階儲存模式將已寫入資料之三個單階儲存單元整理至所選取之三階備用區塊。
詳細而言,控制器160接收到具有邏輯位址H_1~H_N中之一第一邏輯位址以及一第一資料的一第一使用者寫入命令。舉例而言,在第4圖之實施例中,第一邏輯位址係邏輯位址H_209。控制器160則根據第一使用者寫入命令,判斷第一邏輯位址H_209是否已存在有效資料。在本實施例中,第一邏輯位址H_209並未存在有效資料。換言之,沒有任何三階資料區塊被映射至第一邏輯位址H_209。由於第一邏輯位址H_209並未存在有效資料,因此控制器160接著在三階儲存單元備用池TLC_POOL選取一第一三階備用區塊TLC_SP_1,並且將第一資料寫入所選取之第一三階備用區塊TLC_SP_1,其中控制器160系先以一單階儲存模式將資料寫入單階儲存單元備用池SLC_POOL中之一第一單階備用儲存區塊SLC_SP_1、一第二單階備用儲存區塊SLC_SP_2以及一第三單階備用儲存區塊SLC_SP_3,再以一三階儲存模式將第一單階備用儲存區塊SLC_SP_1、第二單階備用儲存區塊SLC_SP_2以及第三單階備用儲存區塊SLC_SP_3中之資料整理至所選取之第一三階備用區塊TLC_SP_1。值得注意的是,本發明並未限制選取單階備用儲存區塊以及三階備用區塊的方法。接著,控制器160判斷 被指派給第一邏輯位址H_209之三階資料區塊F_1~F_N中之一第一三階資料區塊F_209是否具有一有效資料。換言之,控制器160判斷被指派給第一邏輯位址H_209之三階資料區塊F_1~F_N中之一第一三階資料區塊F_209是否已被映射至其他邏輯位址。在本實施例中,第一三階資料區塊F_209未在第一階段被寫入資料。換言之,在本實施例中,第一三階資料區塊F_209未被映射至除了第一邏輯位址H_209之其他邏輯位址。因此,控制器160則可直接將被指派給第一邏輯位址H_209之第一三階資料區塊F_209以及已寫入第一資料之第一三階備用區塊TLC_SP_1交換,以將已寫入第一資料之第一三階備用區塊TLC_SP_1映射至第一邏輯位址H_209並且將被指派給第一邏輯位址H_209之第一三階資料區塊F_209推至三階儲存單元備用池TLC_POOL。
在第4圖之另一實施例中,第一邏輯位址係邏輯位址H_304。控制器160則根據第一使用者寫入命令,判斷第一邏輯位址H_304是否已存在有效資料。在本實施例中,第一邏輯位址H_304所被指派之三階資料區塊F_304雖然有存在有效資料,但在第一階段中第一邏輯位址H_304並未存在有效資料。換言之,沒有任何三階資料區塊被映射至第一邏輯位址H_304。由於第一邏輯位址H_304並未存在有效資料,因此控制器160接著在三階儲存單元備用池TLC_POOL選取一第一三階備用區塊TLC_SP_1,並且將第一資料寫入所選取之第一三階備用區塊TLC_SP_1,其中控制器160系先以一單階儲存模式寫入單階儲存單元備用池SLC_POOL中之一第一單階備用儲存 區塊SLC_SP_1、一第二單階備用儲存區塊SLC_SP_2以及一第三單階備用儲存區塊SLC_SP_3,再以一三階儲存模式將第一單階備用儲存區塊SLC_SP_1、第二單階備用儲存區塊SLC_SP_2以及第三單階備用儲存區塊SLC_SP_3中之資料整理至所選取之第一三階備用區塊TLC_SP_1。值得注意的是,本發明並未限制選取單階備用儲存區塊以及三階備用區塊的方法。
接著,控制器160判斷被指派給第一邏輯位址H_304之三階資料區塊F_1~F_N中之一第一三階資料區塊F_304是否具有一有效資料。換言之,控制器160判斷被指派給第一邏輯位址H_304之三階資料區塊F_1~F_N中之一第一三階資料區塊F_304是否已被映射至除了第一邏輯位址H_304之其他邏輯位址。在本實施例中,第一三階資料區塊F_304已被寫入第二邏輯位址H_604之有效資料。換言之,在本實施例中,第一三階資料區塊F_304已被映射至第二邏輯位址H_604。因此,控制器160更用以反查第一三階資料區塊F_304,以獲得相應於第一三階資料區塊F_304之邏輯位址H_1~H_N中之第二邏輯位址H_604。換言之,控制器160係反查第一三階資料區塊F_304,以獲得第一三階資料區塊F_304所映射至之第二邏輯位址H_604。接著,控制器160將映射至第二邏輯位址H_604之第一三階資料區塊F_304、第二三階資料區塊F_4以及第三三階資料區塊F_604的資料以三階儲存模式整理至三階儲存單元備用池TLC_POOL中之另一三階備用區塊,例如第二三階備用區塊TLC_SP_2,以釋放第一三階資料區塊F_304、第二三階資料區 塊F_4以及第三三階資料區塊F_604。接著,控制器160判斷被指派給第二邏輯位址H_604之三階資料區塊F_604是否具有有效資料。換言之,控制器160判斷被指派給第二邏輯位址H_604之三階資料區塊F_604是否已被映射至任何邏輯位址。在本實施例中,第三三階資料區塊F_604已在整理第二邏輯位址H_604時釋放。換言之,三階資料區塊F_604並未被映射至任何邏輯位址也未具有有效資料。因此,控制器160將整理後之第二三階備用區塊TLC_SP_2以及被指派給第二邏輯位址H_604之三階資料區塊F_604交換,以將整理後之第二三階備用區塊TLC_SP_2映射至第二邏輯位址H_604,並且將被指派給第二邏輯位址H_604之三階資料區塊F_604推至三階儲存單元備用池TLC_POOL。藉由上述步驟,控制器160已整理了第二邏輯位址H_604,並且在整理第二邏輯位址H_604的過程中,釋放了被指派給第一邏輯位址H_304之第一三階資料區塊F_304。
接著,控制器160將被指派給第一邏輯位址H_304之第一三階資料區塊F_304以及已寫入第一資料之第一三階備用區塊TLC_SP_1交換,以將已寫入第一資料之第一三階備用區塊TLC_SP_1映射至第一邏輯位址H_304並且將被指派給第一邏輯位址H_304之第一三階資料區塊F_304推至三階儲存單元備用池TLC_POOL。
在第4圖之另一實施例中,第一邏輯位址係邏輯位址H_2。控制器160則根據第一使用者寫入命令,判斷第一邏輯位址H_2是否已存在有效資料。在本實施例中,第一邏輯位址H_2已存在有效資料。因此,當第一邏輯位址H_2已存在有效 資料時,控制器160釋放映射至第一邏輯位址H_2之三階資料區塊F_1、三階資料區塊F_301以及三階資料區塊F_601。詳細而言,當第一邏輯位址H_2已存在有效資料並且使用者寫入命令係要更新第一邏輯位址H_2時,控制器160先定位被映射至第一邏輯位址H_2之三個三階資料區塊(三階資料區塊F_1、三階資料區塊F_301以及三階資料區塊F_601),並且在三階儲存單元備用池TLC_POOL選取一第三三階備用區塊TLC_SP_3,以將被映射至第一邏輯位址H_2之三階資料區塊F_1、三階資料區塊F_301以及三階資料區塊F_601中之資料以三階儲存模式整理至所選取之第三三階備用區塊TLC_SP_3。接著,控制器160將所整理之第三三階備用區塊TLC_SP_3暫時先映射至第一邏輯位址H_2直到被寫入相應於使用者寫入命令之資料的另一被用三階儲存單元要映射至特定邏輯位址時。接著,控制器160在三階儲存單元備用池TLC_POOL選取另一第一三階備用區塊TLC_SP_1,並且將第一資料寫入所選取之第一三階備用區塊TLC_SP_1,其中控制器160系先以一單階儲存模式寫入單階儲存單元備用池SLC_POOL中之一第一單階備用儲存區塊SLC_SP_1、一第二單階備用儲存區塊SLC_SP_2以及一第三單階備用儲存區塊SLC_SP_3,再以一三階儲存模式將第一單階備用儲存區塊SLC_SP_1、第二單階備用儲存區塊SLC_SP_2以及第三單階備用儲存區塊SLC_SP_3中之資料整理至所選取之第一三階備用區塊TLC_SP_1。值得注意的是,本發明並未限制選取單階備用儲存區塊以及三階備用區塊的方法。
接著,控制器160判斷被指派給第一邏輯位址H_2 之三階資料區塊F_1~F_N中之一第一三階資料區塊F_2是否具有一有效資料。換言之,控制器160判斷被指派給第一邏輯位址H_2之三階資料區塊F_1~F_N中之一第一三階資料區塊F_2是否已被映射至其他邏輯位址。在本實施例中,第一三階資料區塊F_2已被寫入第二邏輯位址H_302之有效資料。換言之,在本實施例中,第一三階資料區塊F_2已被映射至第二邏輯位址H_302。因此,控制器160更用以反查第一三階資料區塊F_2所相應之邏輯位址H_1~H_N中之一第二邏輯位址H_302。換言之,控制器160更用以反查第一三階資料區塊F_2,以獲得第一三階資料區塊F_2所映射之第二邏輯位址H_302。接著,控制器160將映射至第二邏輯位址H_302之第一三階資料區塊F_2、第二三階資料區塊F_302以及第三三階資料區塊F_602的資料以三階儲存模式整理至三階儲存單元備用池TLC_POOL中之另一三階備用區塊,例如第二三階備用區塊TLC_SP_2,以釋放第一三階資料區塊F_2、第二三階資料區塊F_302以及第三三階資料區塊F_602。接著,控制器160判斷被指派給第二邏輯位址H_302之三階資料區塊F_302是否具有有效資料。換言之,控制器160判斷被指派給第二邏輯位址H_302之三階資料區塊F_302是否被映射至任何邏輯位址。在本實施例中,第三三階資料區塊F_302已在整理第二邏輯位址H_302時釋放。因此,控制器160將整理後之第二三階備用區塊TLC_SP_2以及被指派給第二邏輯位址H_302之三階資料區塊F_302交換,以將整理後之第二三階備用區塊TLC_SP_2映射至第二邏輯位址H_302,並且將被指派給第二邏輯位址H_302之三階資料區塊F_302推至三階儲存 單元備用池TLC_POOL。藉由上述步驟,控制器160已整理了第二邏輯位址H_302,並且在整理第二邏輯位址H_302的過程中,釋放了被指派給第一邏輯位址H_2之第一三階資料區塊F_2。
接著,控制器160將被指派給第一邏輯位址H_2之第一三階資料區塊F_2以及已寫入第一資料之第一三階備用區塊TLC_SP_1交換,以將已寫入第一資料之第一三階備用區塊TLC_SP_1映射至第一邏輯位址H_2並且將被指派給第一邏輯位址H_2之第一三階資料區塊F_2推至三階儲存單元備用池TLC_POOL。
第5圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,其中資料維護方法係用以在一第一階段,將一預寫資料非依序地寫入邏輯位址H_1~H_N中之至少一者。流程開始於步驟S600。
在步驟S500中,控制器160將三階資料區塊F_1~F_N分為三個區域。
接著,在步驟S502中,控制器160判斷是否接收到具有一預寫資料以及預寫資料之一特定邏輯位址的一寫入命令。當控制器160接收到將寫入命令時,流程進行至步驟S604;否則,控制器160繼續判斷是否接收到具有一預寫資料以及預寫資料之一特定邏輯位址的一寫入命令。
接著,在步驟S504中,控制器160分別自三個區塊中選取一三階資料區塊,並且將分析預寫資料所獲得之一第一 子預寫資料、一第二子預寫資料以及一第三子預寫資料以一單階儲存模式寫入所選取之三個三階資料區塊。接著,流程回到步驟S502,控制器160繼續判斷是否接收到將具有另一預寫資料中之一預寫資料寫入邏輯位址H_1~H_N中之一特定邏輯位址的一寫入命令。
第6圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,其中資料維護方法係用以在第二階段中,控制器160更用以將已寫入子預寫資料之三階資料區塊中之資料依序整理至三階備用區塊TLC_SP_0~TLC_SP_M中之至少一者,其中將已被寫入預寫資料之三階資料區塊中之資料整理至三階備用區塊中之至少一者的步驟係與根據指示對該等邏輯位址中之一者寫入之一使用者寫入命令所致能之一寫入步驟交錯的。換言之,控制器160係根據指示對邏輯位址寫入之使用者寫入命令,將映射至使用者寫入命令所要求之邏輯位址的三階資料區塊中之資料以三階儲存單元模式整理至第一三階備用區塊。流程開始於步驟S600。
在步驟S600中,控制器160判斷是否接收到具有一資料以及資料之一特定邏輯位址之使用者寫入命令。當控制器160接收到使用者寫入命令時,流程進行至步驟S602,否則,控制器160繼續判斷是否接收到具有一資料以及資料之一特定邏輯位址之使用者寫入命令。
接著,在步驟S602中,控制器160判斷特定邏輯位址是否已存在有效資料。當特定邏輯位址已存在有效資料時, 流程進行至步驟S604;否則,流程進行至步驟S606。
在步驟S604中,控制器160釋放映射至特定邏輯位址之三個三階資料區塊。詳細而言,當特定邏輯位址已存在有效資料並且使用者寫入命令係要更新特定邏輯位址時,控制器160先定位被映射至特定邏輯位址之三個三階資料區塊,並且在三階儲存單元備用池TLC_POOL選取一三階備用區塊,以將被映射至特定邏輯位址之三個三階資料區塊中之資料以三階儲存模式整理至所選取之三階備用區塊。接著,控制器160將所整理之三階備用區塊暫時先映射至特定邏輯位址直到被寫入相應於使用者寫入命令之資料的另一被用三階儲存單元要映射至特定邏輯位址時,以在斷電事件發生時可保有特定邏輯位址原本的資料,但本發明不限於此。
接著,在步驟S606中,控制器160在三階儲存單元備用池TLC_POOL選取一三階備用區塊,並且將相應於使用者寫入命令之資料寫入所選取之三階備用區塊。值得注意的是,在某些實施例中,控制器160係先將使用者寫入命令欲寫入之資料以單階儲存模式先寫入單階備用儲存區塊池SLC_POOL中之單階儲存單元中之三者,再以三階儲存模式將已寫入資料之三個單階儲存單元整理至所選取之三階備用區塊。詳細而言,控制器160系先以一單階儲存模式將資料寫入單階儲存單元備用池SLC_POOL中之一第一單階備用儲存區塊、一第二單階備用儲存區塊以及一第三單階備用儲存區塊,再以一三階儲存模式將第一單階備用儲存區塊、第二單階備用儲存區塊以及第三單階備用儲存區塊中之資料整理至所選取之一第一三階備用 區塊。
接著,在步驟S608中,控制器160更用以判斷被指派給特定邏輯位址之三階資料區塊是否已存在有效資料。當被指派給特定邏輯位址之三階資料區塊已存在有效資料時,流程進行至步驟S610;否則,流程進行至步驟S614。換言之,在步驟S608中,控制器160更用以判斷被指派給特定邏輯位址之三階資料區塊是否已被映射至其他邏輯位址。當被指派給特定邏輯位址之三階資料區塊已被映射至其他邏輯位址時,流程進行至步驟S610;否則,流程進行至步驟S614。
在步驟S610中,控制器160更用以反查被指派給特定邏輯位址之三階資料區塊,以獲得被指派給特定邏輯位址之三階資料區塊所相應之邏輯位址。
接著,在步驟S612中,控制器160釋放映射至被指派給特定邏輯位址之三階資料區塊所相應之邏輯位址之三個三階資料區塊。舉例而言,在第5圖之一實施例中,控制器160在步驟S608中判斷被指派給第一邏輯位址H_2(特定邏輯位址)之三階資料區塊F_1~F_N中之一第一三階資料區塊F_2具有一有效資料。在本實施例中,第一三階資料區塊F_2已被寫入第二邏輯位址H_302之有效資料。因此,控制器160更用以反查第一三階資料區塊F_2,以獲得第一三階資料區塊F_2所相應之邏輯位址H_1~H_N中之一第二邏輯位址H_302(步驟S610)。換言之,控制器160在步驟S608中判斷被指派給第一邏輯位址H_2(特定邏輯位址)之三階資料區塊F_1~F_N中之一第一三階資料區塊F_2已被映射至其他邏輯位址。在本實施例中,第一 三階資料區塊F_2已被映射至第二邏輯位址H_302。因此,控制器160更用以反查第一三階資料區塊F_2,以獲得第一三階資料區塊F_2被映射至之第二邏輯位址H_302(步驟S610)。接著,在步驟S612中,控制器160將映射至第二邏輯位址H_302之第一三階資料區塊F_2、第二三階資料區塊F_302以及第三三階資料區塊F_602的資料以三階儲存模式整理至三階儲存單元備用池TLC_POOL中之另一三階備用區塊,例如第二三階備用區塊TLC_SP_2,以釋放第一三階資料區塊F_2、第二三階資料區塊F_302以及第三三階資料區塊F_602。接著,控制器160判斷被指派給第二邏輯位址H_302之三階資料區塊F_302是否具有有效資料。換言之,控制器160判斷被指派給第二邏輯位址H_302之三階資料區塊F_302是否已被映射至任何邏輯位址。在本實施例中,第三三階資料區塊F_302已在整理第二邏輯位址H_302時釋放。因此,控制器160將整理後之第二三階備用區塊TLC_SP_2以及被指派給第二邏輯位址H_302之三階資料區塊F_302交換,以將整理後之第二三階備用區塊TLC_SP_2映射至第二邏輯位址H_302,並且將被指派給第二邏輯位址H_302之三階資料區塊F_302推至三階儲存單元備用池TLC_POOL。在其他實施例中,若被指派給第二邏輯位址H_302之三階資料區塊F_302具有有效資料,控制器160則可重複上述步驟以釋放三階資料區塊F_302。藉由上述步驟,控制器160已整理了第二邏輯位址H_302,並且在整理第二邏輯位址H_302的過程中,釋放了被指派給第一邏輯位址H_2(特定邏輯位址)之第一三階資料區塊F_2以及另外兩個原本映射至第二邏輯位址H_302之三 階資料區塊。
接著,在步驟S614中,控制器160將被指派給特定邏輯位址之三階資料區塊以及已寫入資料之三階備用區塊交換,以將已寫入資料之三階備用區塊映射至特定邏輯位址並且將被指派給特定邏輯位址之三階資料區塊推至三階儲存單元備用池TLC_POOL。
綜上所述,本發明所提供之資料儲存裝置以及資料維護方法可以不依序選取單階儲存單元以暫存將儲存於三階儲存單元之資料,並且在一第二階段以一特定方式整理暫存之單階儲存單元。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利 範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體

Claims (14)

  1. 一種資料儲存裝置,包括:一快閃記憶體,具有複數單階備用儲存區塊、複數三階資料區塊、及複數三階備用區塊;以及一控制器,用以接收一第一資料以及該第一資料之一第一邏輯位址,並將該第一資料寫入一第一三階備用區塊;其復用以依據該第一邏輯位址,決定對應該第一邏輯位址之一第一三階資料區塊是否已存在有效資料,其中當該第一三階資料區塊已存在有效資料時,該控制器更用以反查該第一三階資料區塊所相應之一第二邏輯位址,釋放映射至該第二邏輯位址之該第一三階資料區塊、一第二三階資料區塊以及一第三三階資料區塊,並且將該第一三階備用區塊映射至該第一邏輯位址。
  2. 根據申請專利範圍第1項之資料儲存裝置,其中當該第一三階資料區塊不具有有效資料時,該控制器用以將該第一三階備用區塊映射至該第一邏輯位址,並且釋放該第一三階資料區塊。
  3. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器更用以判斷該第一邏輯位址是否已具有相應之有效資料,當該第一邏輯位址已具有相應之有效資料時,該控制器更用以釋放映射至該第一邏輯位址之該等三階資料區塊。
  4. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器係用以將該第一資料以一單階儲存模式寫入該單階儲存單元備用池中之一第一單階備用儲存區塊、一第二單階備用儲 存區塊以及一第三單階備用儲存區塊,再以一三階儲存模式將該第一單階備用儲存區塊、該第二單階備用儲存區塊以及該第三單階備用儲存區塊中之資料整理至該第一三階備用區塊。
  5. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器係用以在一第一階段,將一預寫資料中之一第一子預寫資料、一第二子預寫資料以及一第三子預寫資料以一單階儲存模式寫入該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊,並且將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊映射至該第一邏輯區。
  6. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器係用以在一第二階段接收該第一資料以及該第一邏輯位址。
  7. 根據申請專利範圍第6項之資料儲存裝置,其中該第一階段為生產階段(Production Phase),該第二階段為在該第一階段後之整合階段(Integration Phase),並且在該第一階段以及該第二階段之間,該資料儲存裝置承受一高溫焊接。
  8. 一種資料維護方法,適用於具有複數單階備用儲存區塊、複數三階資料區塊、以及複數三階備用區塊之一資料儲存裝置,該資料維護方法包括:接收一第一資料以及該第一資料之一第一邏輯位址,並將該第一資料寫入一第一三階備用區塊;依據該第一邏輯位址,決定對應該第一邏輯位址之一第一三階資料區塊是否已存在有效資料; 當該第一三階資料區塊已存在有效資料時,反查該第一三階資料區塊所相應之一第二邏輯位址;釋放映射至該第二邏輯位址之該第一三階資料區塊、一第二三階資料區塊以及一第三三階資料區塊;以及將該第一三階備用區塊映射至該第一邏輯位址。
  9. 根據申請專利範圍第8項之資料維護方法,更包括:當該第一三階資料區塊不具有有效資料時,將該第一三階備用區塊映射至該第一邏輯位址並且釋放該第一三階資料區塊。
  10. 根據申請專利範圍第8項之資料維護方法,更包括:判斷該第一邏輯位址是否已具有相應之有效資料;以及當該第一邏輯位址已具有相應之有效資料時,釋放映射至該第一邏輯位址之該等三階資料區塊。
  11. 根據申請專利範圍第8項之資料維護方法,其中將該第一資料寫入該第一三階備用區塊的步驟更包括:將該第一資料以一單階儲存模式寫入一第一單階備用儲存區塊、一第二單階備用儲存區塊以及一第三單階備用儲存區塊;以及以一三階儲存模式將該第一單階備用儲存區塊、該第二單階備用儲存區塊以及該第三單階備用儲存區塊中之資料整理至該第一三階備用區塊。
  12. 根據申請專利範圍第8項之資料維護方法,更包括:在一第一階段,將一預寫資料中之一第一子預寫資料、一第二子預寫資料以及一第三子預寫資料以一單階儲存模式 寫入該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊;以及將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊映射至該第一邏輯區。
  13. 根據申請專利範圍第8項之資料維護方法,其中該第一資料以及該第一邏輯位址係在一第二階段被接收的。
  14. 根據申請專利範圍第13項之資料維護方法,其中該第一階段為生產階段(Production Phase),該第二階段為在該第一階段後之整合階段(Integration Phase),並且在該第一階段以及該第二階段之間,該資料儲存裝置承受一高溫焊接。
TW105119404A 2016-06-21 2016-06-21 資料儲存裝置及其資料維護方法 TWI590051B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW105119404A TWI590051B (zh) 2016-06-21 2016-06-21 資料儲存裝置及其資料維護方法
CN201610614705.1A CN107526540B (zh) 2016-06-21 2016-07-29 数据储存装置及其数据维护方法
US15/618,224 US10168913B2 (en) 2016-06-21 2017-06-09 Data storage device and data maintenance method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105119404A TWI590051B (zh) 2016-06-21 2016-06-21 資料儲存裝置及其資料維護方法

Publications (2)

Publication Number Publication Date
TWI590051B true TWI590051B (zh) 2017-07-01
TW201800947A TW201800947A (zh) 2018-01-01

Family

ID=60048546

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105119404A TWI590051B (zh) 2016-06-21 2016-06-21 資料儲存裝置及其資料維護方法

Country Status (3)

Country Link
US (1) US10168913B2 (zh)
CN (1) CN107526540B (zh)
TW (1) TWI590051B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI660269B (zh) * 2018-01-26 2019-05-21 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
TWI709855B (zh) * 2018-01-26 2020-11-11 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US11550481B2 (en) * 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) * 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
TWI655640B (zh) * 2018-01-24 2019-04-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN109887534B (zh) * 2018-12-29 2021-01-01 上海百功半导体有限公司 闪存器件及其边界字线配置方法/系统、存储介质/控制器
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
TW201310235A (zh) * 2011-08-24 2013-03-01 Novatek Microelectronics Corp 記憶體裝置及其寫入方法
TWI430092B (zh) * 2011-10-27 2014-03-11 Silicon Motion Inc 三階儲存單元的快閃記憶體裝置及其控制方法
US9116792B2 (en) 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
TWI492054B (zh) * 2012-11-05 2015-07-11 Phison Electronics Corp 快閃記憶體的模擬方法與模擬器
US9305665B2 (en) * 2014-03-31 2016-04-05 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US10008250B2 (en) * 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI660269B (zh) * 2018-01-26 2019-05-21 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
US10437520B2 (en) 2018-01-26 2019-10-08 Silicon Motion Inc. Method for performing writing management in a memory device, and associated memory device and controller thereof
US10754585B2 (en) 2018-01-26 2020-08-25 Silicon Motion, Inc. Method for performing writing management in a memory device, and associated memory device and controller thereof
TWI709855B (zh) * 2018-01-26 2020-11-11 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器

Also Published As

Publication number Publication date
CN107526540B (zh) 2020-07-10
US20170364265A1 (en) 2017-12-21
US10168913B2 (en) 2019-01-01
CN107526540A (zh) 2017-12-29
TW201800947A (zh) 2018-01-01

Similar Documents

Publication Publication Date Title
TWI590051B (zh) 資料儲存裝置及其資料維護方法
TWI607312B (zh) 資料儲存裝置及其資料寫入方法
TWI606339B (zh) 資料儲存裝置及其資料維護方法
TWI603193B (zh) 資料儲存裝置及其資料維護方法
TWI425523B (zh) 混合型快閃儲存裝置及其操作方法
US9141476B2 (en) Method of storing system data, and memory controller and memory storage apparatus using the same
JP2008123330A (ja) 不揮発性半導体記憶装置
TW201715399A (zh) 資料儲存裝置及其資料維護方法
US9141530B2 (en) Data writing method, memory controller and memory storage device
TWI545571B (zh) 存取快閃記憶體的方法及相關的控制器與記憶裝置
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP2017021872A (ja) 半導体記憶装置
CN106155582B (zh) 非挥发性储存装置与控制器
US20150058531A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
TW201734797A (zh) 資料儲存裝置及其資料維護方法
US9378130B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US20110213912A1 (en) Memory management and writing method, and memory controller and memory storage system using the same
US10824340B2 (en) Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus
US11487655B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US20130246687A1 (en) Data writing method, memory controller and memory storage apparatus
TWI652572B (zh) 資料儲存裝置
US9607689B2 (en) Solid hard disk and charging/discharging control method for flash chip
TWI639946B (zh) 資料儲存裝置及其資料維護方法
CN109669626B (zh) 固态储存装置及其相关数据管理方法