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

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

Info

Publication number
TW201715399A
TW201715399A TW104134631A TW104134631A TW201715399A TW 201715399 A TW201715399 A TW 201715399A TW 104134631 A TW104134631 A TW 104134631A TW 104134631 A TW104134631 A TW 104134631A TW 201715399 A TW201715399 A TW 201715399A
Authority
TW
Taiwan
Prior art keywords
order
data
data block
block
order data
Prior art date
Application number
TW104134631A
Other languages
English (en)
Other versions
TWI561985B (en
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 TW104134631A priority Critical patent/TWI561985B/zh
Priority to CN201510793653.4A priority patent/CN106610791B/zh
Priority to US15/284,154 priority patent/US10013210B2/en
Application granted granted Critical
Publication of TWI561985B publication Critical patent/TWI561985B/zh
Publication of TW201715399A publication Critical patent/TW201715399A/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/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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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

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)
  • Read Only Memory (AREA)

Abstract

本發明提供一種資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體具有複數三階資料區塊。控制器用以將些三階資料區塊均分為三個區域,區域各包含相同數量的三階資料區塊。控制器復用以接收一預寫資料及預寫之一邏輯位址,並根據預寫資料及邏輯位址分析出一第一子預寫資料段、一第二子預寫資料段、一第三子預寫資料段,以及依據邏輯位址,自三個區域個選擇一個三階資料區塊,再以單階儲存模式分別將第一子預寫資料、第二子預寫資料、第三子預寫資料寫入所選擇之三個三階資料區塊。

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)一般而言皆是焊接於母板上,因此嵌入式快閃記憶體模組會隨著母板一起承受高溫錫 爐,而導致資料的損毀。
本發明所提供之資料儲存裝置以及資料維護方法可以一既定順序選取單階儲存單元以暫存將儲存於三階儲存單元之資料。
本發明提供一種資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體具有複數單階備用儲存區塊、複數三階資料區塊、及複數三階備用區塊。控制器其係用將些三階資料區塊均分為三個區域,區域各包含相同數量的三階資料區塊,控制器復用以接收一預寫資料及預寫之一邏輯位址,並根據預寫資料及邏輯位址分析出一第一子預寫資料段、一第二子預寫資料段、一第三子預寫資料段,控制器又用以於一第一階段,依據邏輯位址,決定對應於邏輯位址的一第一三階資料區塊,並將第一三階資料區塊所屬之區域定為第一區域,再判斷第一三階資料區塊是否已存在有效資料,若第一三階資料區塊未存在有效資料,分別自第一區域外之剩餘的兩個區域內,對應第一三階資料區塊,挑選一第二三階資料區塊與一第三三階資料區塊,再以單階儲存模式分別將第一子預寫資料、第二子預寫資料、第三子預寫資料寫入第一三階資料區塊、第二三階資料區塊、第三三階資料區塊,復用以將第一三階資料區塊、第二三階資料區塊、第三三階資料區塊映射至邏輯位址。
在一實施例中,三階資料區塊之總數為N,並且三階資料區塊具有連續之位址。其中,第一三階資料區塊之位址加上N/3等於第二三階資料區塊之位址,第一三階資料區塊之 位址加上(2N)/3等於第三三階資料區塊之位址。
在另一實施例中,控制器更用以在一第二階段,將第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之資料整理至三階備用區塊中之一者,其中控制器用以在三階備用區塊中選取一第一三階備用區塊,以將映射至邏輯位址之第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之資料以一三階儲存單元模式整理至第一三階備用區塊,將整理後之第一三階備用區塊映射至邏輯位址,並且釋放第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊。其中,第一階段為生產階段(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‧‧‧邏輯位址
R1、R2、R3‧‧‧區域
S602~S612、S700~S706、S800~S816‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2圖係本發明之一種實施例之快閃記憶體之示意圖。
第3圖係本發明之一種實施例之邏輯位址以及三階資料區塊之示意圖。
第4圖係本發明之另一種實施例之邏輯位址以及三階資料區塊之示意圖。
第5圖係本發明之一種實施例之區塊映射關係之示意圖。
第6圖係本發明之一種實施例之資料維護方法之流程圖。
第7圖係本發明之一種實施例之資料維護方法之流程圖。
第8A-8B圖係本發明之一種實施例之資料維護方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第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用以在第一階段,將一預寫資料段(Preload Data)依照邏輯位址H_1~H_N的位址順序寫入邏輯位址H_1~H_N中之至少一者。
在本發明之一實施例中,控制器160將三階資料區塊F_1~F_N均分為三個區域。詳細而言,控制器160將三階資料區塊F_1~F_N依序分為一第一區域R1、一第二區域R2以及一第三區域R3,以不連續地選取三階資料區塊F_1~F_N,以作為單階儲存單元,但本發明不限於此。在本發明之一實施例中,第一區域R1、第二區域R2以及第三區域R3各包含相同數量的三階資料區塊。換言之,當邏輯位址的總數為N時,第一區域R1、第二區域R2以及第三區域R3分別具有N/3個邏輯位址以及 被指派給邏輯位址之N/3個三階資料區塊,並且第一區域R1、第二區域R2以及第三區域R3中之邏輯位址具有連續之位址,如第3圖所示,但本發明不限於此。換言之,第一區域R1包括具有連續位址之邏輯位址H_1~H_N/3以及具有連續位址之三階資料區塊F_1~F_N/3。第二區域R2包括具有連續位址之邏輯位址H_N/3+1~H_2N/3以及具有連續位址之三階資料區塊F_N/3+1~F_2N/3。第三區域R3包括具有連續位址之邏輯位址H_2N/3+1~H_N以及具有連續位址之三階資料區塊F_2N/3+1~F_N。舉例而言,當邏輯位址H_0~H_N的總數為900時,第一區域R1包括具有連續位址之邏輯位址H_1~H_3001以及具有連續位址之三階資料區塊F_1~F_300,第二區域R2包括具有連續位址之邏輯位址H_301~H_600以及具有連續位址之三階資料區塊F_301~F_600,並且第三區域R3包括具有連續位址之邏輯位址H_601~H_900以及具有連續位址之三階資料區塊F_601~F_900,如第4圖所示。在其他實施例中,N亦可為其他有理數,本發明不限於此。另外,當N無法被3整除時,控制器160可忽略無法被整除之1個或者2個三階資料區塊。舉例而言,當三階資料區塊之總數為901時N則為900,以及當三階資料區塊之總數為1202時N則為1200,但本發明不限於此。
在將三階資料區塊F_1~F_N依序分為第一區域R1、第二區域R2以及第三區域R3之後,控制器160接著根據命令將預寫資料集分為複數預寫資料並且依序地寫入邏輯位址中。值得注意的是,控制器160系依照每一三階儲存單元之大小將預寫資料集切割為複數預寫資料。換言之,每一預寫資料 的資料量等同於一個三階儲存單元之資料量以及三個單階儲存單元之資料量。詳細而言,控制器160根據指示將預寫資料集中之一第一預寫資料寫入邏輯位址H_1~H_N中之一第一邏輯位址的一第一寫入命令,自第一區域R1選取一第一三階資料區塊、自第二區域R2選取一第二三階資料區塊以及自第三區域R3選取一第三三階資料區塊,以將第一預寫資料以一單階儲存模式寫入所選取之第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊,並將第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊映射至第一邏輯位址。在完成第一寫入命令後,控制器160更用以根據指示將預寫資料集中之一第二預寫資料寫入邏輯位址H_1~H_N中之一第二邏輯位址的一第二寫入命令,自第一區域R1選取一第四三階資料區塊、自第二區域R2選取一第五三階資料區塊以及自第三區域R3選取一第六三階資料區塊,以將第二預寫資料以單階儲存模式寫入第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊,並將第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊映射至第二邏輯位址。在完成第二寫入命令後,控制器160更用以根據指示將預寫資料段中之一第三預寫資料寫入邏輯位址H_1~H_N中之一第三邏輯位址的一第三寫入命令,自第一區域R1選取一第七三階資料區塊、自第二區域R2選取一第八三階資料區塊以及自第三區域R3選取一第九三階資料區塊,以將第三子預寫資料段以單階儲存模式寫入第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊,並將第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊映射至第三邏輯 位址,依此類推直到預寫資料段完全寫入邏輯位址中。
值得注意的是,在某些實施例中,控制器160係先將欲寫入之預寫資料先寫入單階備用儲存區塊池SLC_POOL中之單階儲存單元中之三者,再將已寫入預寫資料之三個單階儲存單元與分別在第一區域R1、第二區域R2以及第三區域R3所選取之三個三階資料區塊交換,但本發明不限於此。在其他實施例中,控制器160係先將欲寫入之預寫資料先寫入單階備用儲存區塊池SLC_POOL中之單階儲存單元中之三者,再將已寫入預寫資料之三個單階儲存單元中之資料寫入分別在第一區域R1、第二區域R2以及第三區域R3所選取之三個三階資料區塊。
值得注意的是,控制器160係根據第一邏輯位址所被指派之三階資料區塊,選取第一區域R1中之第一三階資料區塊,並且第一三階資料區塊即為被指派給第一邏輯位址之三階資料區塊。另外,第一三階資料區塊之位址加上N/3等於第二三階資料區塊之位址,第一三階資料區塊之位址加上(2N)/3等於第三三階資料區塊之位址。同理,控制器160係根據第二邏輯位址以及第三邏輯位址所被指派之三階資料區塊分別選取第一區域R1中之第四三階資料區塊以及第七三階資料區塊,並且第四三階資料區塊以及第七三階資料區塊即分別為被指派給第二邏輯位址以及第三邏輯位址之三階資料區塊,依此類推。第四三階資料區塊以及第七三階資料區塊之位址加上N/3分別等於第五三階資料區塊以及第八三階資料區塊之位址,第四三階資料區塊以及第七三階資料區塊之位址加上(2N)/3分別 等於第六三階資料區塊以及第九三階資料區塊之位址,依此類推。值得注意的是,在本案中,三階資料區塊以及邏輯位址的映射以及指派關係可由至少一個映射表(Mapping table)來維持。舉例而言,快閃記憶體180可具有一第一映射表,用以紀錄三階資料區塊以及被指派之邏輯位址的關係。快閃記憶體180中可更包括一第二映射表用以紀錄已寫入預寫資料之三階資料區塊以及邏輯位址的映射關係,其中已寫入預寫資料之三階資料區塊可直接映射至邏輯位址,或者已寫入預寫資料之三階資料區塊系映射至被指派給邏輯位址之三階資料區塊,本發明不限於此。
舉例而言,在第4圖之實施例中,控制器160接著根據命令將預寫資料集分為複數預寫資料,並且依照邏輯位址H_0~H_N之位址順序,依序地將預寫資料寫入邏輯位址H_0~H_N,如第5圖所示。進一步而言,控制器160在接收一預寫資料及一邏輯位址後,根據所接收之預寫資料及所接收之邏輯位址分析出一第一子預寫資料段、一第二子預寫資料段、一第三子預寫資料段。接著,控制器160根據寫邏輯位址,決定對應於邏輯位址的一第一三階資料區塊,並將第一三階資料區塊所屬之區域定為第一區域,再判斷第一三階資料區塊是否已存在有效資料,若第一三階資料區塊未存在有效資料,分別自第一區域外之剩餘的兩個區域內,對應第一三階資料區塊,挑選一第二三階資料區塊與一第三三階資料區塊,再以單階儲存模式分別將第一子預寫資料段、第二子預寫資料段、第三子預寫資料段寫入第一三階資料區塊、第二三階資料區塊、第三三 階資料區塊,復用以將第一三階資料區塊、第二三階資料區塊、第三三階資料區塊映射至邏輯位址。詳細而言,控制器160根據指示將預寫資料段中之一第一預寫資料寫入第一邏輯位址H_1的一第一寫入命令,分析出一第一子預寫資料段、一第二子預寫資料段以及一第三子預寫資料段,並且自第一區域R1選取被指派給第一邏輯位址H_1之一第一三階資料區塊F_1、自第二區域R2選取與第一三階資料區塊F_1相隔N/3之一第二三階資料區塊F_301以及自第三區域R3選取與第一三階資料區塊F_1相隔2N/3之一第三三階資料區塊F_601,其中第一子預寫資料段、第二子預寫資料段以及第三子預寫資料段構成第一預寫資料。另外,當被指派給第一邏輯位址H_1之一第一三階資料區塊F_1已具有資料時,控制器160可選擇第一三階資料區塊F_1所屬之區域中之另一三階資料區塊取代第一三階資料區塊F_1。接著,控制器160將第一子預寫資料段、第二子預寫資料段以及第三子預寫資料段以單階儲存模式分別寫入第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601,並將第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601映射至第一邏輯位址H_1。在完成第一寫入命令後,控制器160更用以根據指示將預寫資料集中之一第二預寫資料寫入一第二邏輯位址H_2的一第二寫入命令,分析出一第四子預寫資料段、一第五子預寫資料段、一第六子預寫資料段,並且自第一區域R1選取被指派給第二邏輯位址H_2之一第四三階資料區塊F_2、自第二區域R2選取與第四三階資料區塊F_2相隔N/3之一第五三階資料區塊F_302以及自 第三區域R3選取與第四三階資料區塊F_2相隔2N/3之一第六三階資料區塊F_602。另外,當被指派給第一邏輯位址H_2之一第四三階資料區塊F_2已具有資料時,控制器160可選擇第四三階資料區塊F_2所屬之區域中之另一三階資料區塊取代第四三階資料區塊F_2。接著,控制器160將第二子預寫資料段以單階儲存模式寫入第四三階資料區塊F_2、第五三階資料區塊F_302以及第六三階資料區塊F_602,並將第四三階資料區塊F_2、第五三階資料區塊F_302以及第六三階資料區塊F_602映射至第二邏輯位址H_2。在完成第二寫入命令後,控制器160更用以根據指示將預寫資料段中之一第三子預寫資料段寫入一第三邏輯位址的H_3中之一第三寫入命令,自第一區域R1選取被指派給第二邏輯位址H_3之一第七三階資料區塊F_3、自第二區域R2選取與第七三階資料區塊F_3相隔N/3之一第八三階資料區塊F_303以及自第三區域R3選取與第七三階資料區塊F_3相隔2N/3之一第九三階資料區塊F_603。另外,當被指派給第一邏輯位址H_1之一第七三階資料區塊F_3已具有資料時,控制器160可選擇第七三階資料區塊F_3所屬之區域中之另一三階資料區塊取代第一三階資料區塊F_3。接著,控制器160將第三子預寫資料段以單階儲存模式寫入第七三階資料區塊F_3、第八三階資料區塊F_303以及第九三階資料區塊F_603,並將第七三階資料區塊F_3、第八三階資料區塊F_303以及第九三階資料區塊F_603映射至第三邏輯位址H_3,依此類推直到預寫資料段完全寫入邏輯位址中。
在第二階段中,控制器160更用以將已寫入子預寫 資料段之三階資料區塊中之資料整理至三階備用區塊TLC_SP_0~TLC_SP_M中之至少一者。詳細而言,控制器160在三階儲存單元備用池TLC_POOL中選取一第一三階備用區塊,以將映射至第一邏輯位址之第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之資料以一三階儲存單元模式整理至第一三階備用區塊。接著,控制器160更用以將整理後之第一三階備用區塊映射至第一邏輯位址,並且釋放第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊。在整理完第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之資料後,控制器160更用以在三階儲存單元備用池TLC_POOL中選取一第二三階備用區塊,以將映射至第二邏輯位址之第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊中之資料以一三階儲存單元模式整理至第二三階備用區塊。接著,控制器160更用以將整理後之第二三階備用區塊映射至第二邏輯位址,並且釋放第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊。在整理完第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊中之資料後,控制器160更用以在三階儲存單元備用池TLC_POOL中選取一第三三階備用區塊,以將映射至第三邏輯位址之第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊中之資料以三階儲存單元模式整理至第三三階備用區塊。接著,控制器160更用以將整理後之第三三階備用區塊映射至第三邏輯位址,並且釋放第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊,依此類推直到所有已寫入子預寫資料段之三階資料區塊 中之資料皆整理至三階備用區塊TLC_SP_0~TLC_SP_M中之至少一者。
值得注意的是,在本發明之一實施例中,將已被寫入預寫資料之三階資料區塊中之資料整理至三階備用區塊中之至少一者的步驟係與根據指示對該等邏輯位址中之一者寫入之一使用者寫入命令所致能之一寫入步驟交錯的。控制器160係根據指示對邏輯位址寫入之使用者寫入命令,將映射至使用者寫入命令所要求之邏輯位址的三階資料區塊中之資料以三階儲存單元模式整理至第一三階備用區塊。
舉例而言,使用者要對邏輯位址H_301~H_303進行寫入。首先,控制器160根據指示對邏輯位址H_301寫入之第一使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第一三階備用區塊TLC_SP_6,並且定位出被指派給邏輯位址H_301之第二三階資料區塊F_301所映射之第一邏輯位址H_1。接著,控制器160將映射至第一邏輯位址H_1之第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601中之資料以三階儲存單元模式整理至第一三階備用區塊TLC_SP_6。接著,控制器160更用以將整理後之第一三階備用區塊TLC_SP_6映射至第一邏輯位址H_1,並且釋放第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601。在整理完第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601中之資料後,控制器160根據第一使用者寫入命令,在單階備用儲存區塊池SLC_POOL中選取三個單階儲存單元,以將預定寫入邏輯位址H_301之資料 先以單階儲存單元的方式寫入所選取之三個單階儲存單元。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第四三階備用區塊TLC_11,以將已寫入預定寫入邏輯位址H_301之資料的三個單階儲存單元的資料以三階儲存單元模式整理至第四三階備用區塊TLC_11。接著,控制器160將已整理之第四三階備用區塊TLC_11與第二三階資料區塊F_301交換,以將被指派給邏輯位址H_301之第二三階資料區塊F_301推至三階儲存單元備用池TLC_POOL以及將已整理之第四三階備用區塊TLC_11映射至邏輯位址H_301。
完成第一使用者寫入命令後,控制器160根據指示對邏輯位址H_302寫入之第二使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第二三階備用區塊TLC_SP_13,並且定位出被指派給邏輯位址H_302之第五三階資料區塊F_302所映射之第二邏輯位址H_2。控制器160將映射至第二邏輯位址H_2之第四三階資料區塊F_2、第五三階資料區塊F_302以及第六三階資料區塊F_602中之資料以三階儲存單元模式整理至第二三階備用區塊TLC_SP_13。接著,控制器160更用以將整理後之第二三階備用區塊TLC_SP_13映射至第二邏輯位址H_2,並且釋放第四三階資料區塊F_2、第五三階資料區塊F_302以及第六三階資料區塊F_602。在整理完第四三階資料區塊F_2、第五三階資料區塊F_302以及第六三階資料區塊F_602中之資料後,控制器160根據第二使用者寫入命令,在單階備用儲存區塊池SLC_POOL中選取三個單階儲存單元,以將預定寫入邏輯位址H_302之資料先以單階儲存單元的方式寫入所選 取之三個單階儲存單元。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第五三階備用區塊TLC_2,以將已寫入預定寫入邏輯位址H_302之資料的三個單階儲存單元的資料以三階儲存單元模式整理至第五三階備用區塊TLC_2。接著,控制器160將已整理之第五三階備用區塊TLC_2與第五三階資料區塊F_302交換,以將被指派給邏輯位址H_302之第五三階資料區塊F_302推至三階儲存單元備用池TLC_POOL以及將已整理之第五三階備用區塊TLC_2映射至邏輯位址H_302。
完成第二使用者寫入命令後,控制器160根據指示對邏輯位址H_303寫入之第三使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第三三階備用區塊TLC_SP_24,並且定位出被指派給邏輯位址H_303之第八三階資料區塊F_303所映射之第二邏輯位址H_3。控制器160將映射至第三邏輯位址H_3之第七三階資料區塊F_3、第八三階資料區塊F_303以及第九三階資料區塊F_603中之資料以三階儲存單元模式整理至第三三階備用區塊TLC_SP_24。接著,控制器160更用以將整理後之第三三階備用區塊TLC_SP_24映射至第三邏輯位址H_3,並且釋放第七三階資料區塊F_3、第八三階資料區塊F_303以及第九三階資料區塊F_603。在整理完第七三階資料區塊F_3、第八三階資料區塊F_303以及第九三階資料區塊F_603中之資料後,控制器160根據第三使用者寫入命令,在單階備用儲存區塊池SLC_POOL中選取三個單階儲存單元,以將預定寫入邏輯位址H_303之資料先以單階儲存單元的方式寫入所選取之三個單階儲存單元。接著,控制器160在三階儲存單元備 用池TLC_POOL選擇一第六三階備用區塊TLC_9,以將已寫入預定寫入邏輯位址H_303之資料的三個單階儲存單元的資料以三階儲存單元模式整理至第六三階備用區塊TLC_9。接著,控制器160將已整理之第六三階備用區塊TLC_9與第八三階資料區塊F_303交換,以將被指派給邏輯位址H_303之第八三階資料區塊F_303推至三階儲存單元備用池TLC_POOL以及將已整理之第六三階備用區塊TLC_9映射至邏輯位址H_302。
控制器160更用以在三階儲存單元備用池TLC_POOL中選取一第二三階備用區塊,以將映射至第二邏輯位址之第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊中之資料以一三階儲存單元模式整理至第二三階備用區塊。接著,控制器160更用以將整理後之第二三階備用區塊映射至第二邏輯位址,並且將第四三階資料區塊推至三階儲存單元備用池TLC_POOL。在整理完第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊中之資料後,控制器160更用以在三階儲存單元備用池TLC_POOL中選取一第三三階備用區塊,以將映射至第三邏輯位址之第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊中之資料以三階儲存單元模式整理至第三三階備用區塊。接著,控制器160更用以將整理後之第三三階備用區塊映射至第三邏輯位址,並且將第七三階資料區塊推至三階儲存單元備用池TLC_POOL。
第6圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,其中資料維護方法係用以在一第一階段,將一預寫資料集依照 邏輯位址H_1~H_N的位址順序寫入邏輯位址H_1~H_N中之至少一者。流程開始於步驟S600。
在步驟S600中,控制器160將三階資料區塊F_1~F_N依序分為一第一區域R1、一第二區域R2以及一第三區域R3。在本發明之一實施例中,當邏輯位址的總數為N時,第一區域R1、第二區域R2以及第三區域R3分別具有N/3個邏輯位址以及被指派給邏輯位址之N/3個三階資料區塊,並且第一區域R1、第二區域R2以及第三區域R3中之邏輯位址具有連續之位址,如第3圖所示,但本發明不限於此。換言之,第一區域R1包括具有連續位址之邏輯位址H_1~H_N/3以及具有連續位址之三階資料區塊F_1~F_N/3。第二區域R2包括具有連續位址之邏輯位址H_N/3+1~H_2N/3以及具有連續位址之三階資料區塊F_N/3+1~F_2N/3。第三區域R3包括具有連續位址之邏輯位址H_2N/3+1~H_N以及具有連續位址之三階資料區塊F_2N/3+1~F_N。舉例而言,當邏輯位址H_0~H_N的總數為900時,第一區域R1包括具有連續位址之邏輯位址H_1~H_300以及具有連續位址之三階資料區塊F_1~F_300,第二區域R2包括具有連續位址之邏輯位址H_301~H_600以及具有連續位址之三階資料區塊F_301~F_600,並且第三區域R3包括具有連續位址之邏輯位址H_601~H_900以及具有連續位址之三階資料區塊F_601~F_900,如第4圖所示。在其他實施例中,N亦可為其他有理數,本發明不限於此。另外,當N無法被3整除時,控制器160可忽略無法被整除之1個或者2個三階資料區塊。舉例而言,當三階資料區塊之總數為901時N則為900,以及當三階資 料區塊之總數為1202時N則為1200,但本發明不限於此。
接著,在步驟S602中,控制器160將預寫資料集分為複數預寫資料。值得注意的是,控制器160系依照每一三階儲存單元之大小將預寫資料集切割為複數預寫資料。換言之,每一預寫資料的資料量等同於一個三階儲存單元之資料量以及三個單階儲存單元之資料量。
接著,在步驟S606中,控制器160根據指示將預寫資料集中之一預寫資料寫入邏輯位址中之一者的寫入命令,自第一區域R1、第二區域R2以及第三區域R3分別選取三個三階資料區塊。值得注意的是,在一實施例中,控制器160係根據欲寫入預寫資料之邏輯位址所被指派之三階資料區塊選取第一區域R1中之三階資料區塊。換言之,控制器160在第一區域R1所選取之三階資料區塊為欲寫入預寫資料之邏輯位址。另外,控制器160在第一區域R1所選擇之三階資料區塊之位址加上N/3等於第二區域R2所選擇之三階資料區塊之位址,在第一區域R1所選擇之三階資料區塊之位址加上(2N)/3等於在第三區域R3所選擇之三階資料區塊之位址。舉例而言,控制器160根據指示將預寫資料集中之一第一預寫資料寫入第一邏輯位址H_1的一第一寫入命令,自第一區域R1選取被指派給第一邏輯位址H_1之一第一三階資料區塊F_1、自第二區域R2選取與第一三階資料區塊F_1相隔N/3之一第二三階資料區塊F_301以及自第三區域R3選取與第一三階資料區塊F_1相隔2N/3之一第三三階資料區塊F_601,但本發明不限於此。
接著,在步驟S608中,控制器160將欲寫之預寫資 料以單階儲存模式寫入在步驟S606中所選取之三個三階資料區塊。
接著,在步驟S610中,控制器160將已寫入預寫資料之三個三階資料區塊映射至子預寫資料段欲寫入之邏輯位址。舉例而言,當欲寫之預寫資料係指示要被寫入第一邏輯位址H_1之一第一預寫資料並且控制器160在步驟S606中所選取了與第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601時,控制器160將第一預寫資料以單階儲存模式寫入第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601。接著,控制器160將第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601映射至第一邏輯位址H_1。
接著,在步驟S612中,控制器160判斷所分割之預寫資料是否全部被寫入三階資料區塊。當預寫資料全部被寫入三階資料區塊時,流程結束於步驟S602。當預寫資料尚未完全被寫入三階資料區塊時,流程回到步驟S606,以依照邏輯位址H_1~H_N的位址順序係續將剩下的預寫資料寫入三階資料區塊中。
第7圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,其中資料維護方法係用以在第二階段中,控制器160更用以將已寫入預寫資料之三階資料區塊中之資料依序整理至三階備用區塊TLC_SP_0~TLC_SP_M中之至少一者。流程開始於步驟S700。
在步驟S700中,控制器160在三階儲存單元備用池TLC_POOL中選取一三階備用區塊。
接著,在步驟S702中,控制器160將映射至一邏輯位址之三個三階資料區塊中之資料以三階儲存單元模式整理至在步驟S700中所選取之三階備用區塊。
接著,在步驟S704中,控制器160更用以將整理後之三階備用區塊映射至邏輯位址,並且釋放映射至邏輯位址之三個三階資料區塊。
接著,在步驟S706中,控制器160判斷是否所有以單階儲存模式儲存於三階資料區塊中之預寫資料都已被整理至三階儲存單元。當所有以單階儲存模式儲存於三階資料區塊中之預寫資料都已被整理至三階儲存單元時,流程結束於步驟S706,否則,流程會到步驟S700,控制器160繼續依照邏輯位址之位址的順序處理尚未被整理之三階資料區塊。舉例而言,控制器160在三階儲存單元備用池TLC_POOL中選取一第一三階備用區塊,以將映射至第一邏輯位址之第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之資料以一三階儲存單元模式整理至第一三階備用區塊。接著,控制器160更用以將整理後之第一三階備用區塊映射至第一邏輯位址,並且釋放第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊。在整理完第一三階資料區塊、第二三階資料區塊以及第三三階資料區塊中之資料後,控制器160更用以在三階儲存單元備用池TLC_POOL中選取一第二三階備用區塊,以將映射至第二邏輯位址之第四三階資料區塊、第五三階資料區塊以及第 六三階資料區塊中之資料以一三階儲存單元模式整理至第二三階備用區塊。接著,控制器160更用以將整理後之第二三階備用區塊映射至第二邏輯位址,並且釋放第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊。在整理完第四三階資料區塊、第五三階資料區塊以及第六三階資料區塊中之資料後,控制器160更用以在三階儲存單元備用池TLC_POOL中選取一第三三階備用區塊,以將映射至第三邏輯位址之第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊中之資料以三階儲存單元模式整理至第三三階備用區塊。接著,控制器160更用以將整理後之第三三階備用區塊映射至第三邏輯位址,並且釋放第七三階資料區塊、第八三階資料區塊以及第九三階資料區塊,依此類推直到所有已寫入子預寫資料段之三階資料區塊中之資料皆整理至三階備用區塊TLC_SP_0~TLC_SP_M中之至少一者。
第8A-8B圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,其中資料維護方法係用以在第二階段中,控制器160更用以將已寫入預寫資料之三階資料區塊中之資料依序整理至三階備用區塊TLC_SP_0~TLC_SP_M中之至少一者,其中將已被寫入預寫資料之三階資料區塊中之資料整理至三階備用區塊中之至少一者的步驟係與根據指示對該等邏輯位址中之一者寫入之一使用者寫入命令所致能之一寫入步驟交錯的。換言之,控制器160係根據指示對邏輯位址寫入之使用者寫入命令,將映射至使用者寫入命令所要求之邏輯位址的三階資料區 塊中之資料以三階儲存單元模式整理至第一三階備用區塊。流程開始於步驟S800。
在步驟S800中,控制器160判斷是否接收到使用者要對邏輯位址進行寫入之使用者寫入命令。當控制器160接收到使用者要對邏輯位址進行寫入之使用者寫入命令時,流程進行至步驟S802,否則,控制器160繼續判斷是否接收到使用者要對邏輯位址進行寫入之使用者寫入命令。
在步驟S802中,控制器160根據指示對一特定邏輯位址寫入之使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一三階備用區塊,並且定位出被指派給特定邏輯位址之三階資料區塊所映射之邏輯位址。
接著,在步驟S804中,控制器160將映射至在步驟S802中所定位之邏輯位址之三個三階資料區塊中之資料以三階儲存單元模式整理至在步驟S802中所選取之三階備用區塊。
接著,在步驟S806中,控制器160更用以將在步驟S804中所整理之三階備用區塊映射至在步驟S802中所定位之邏輯位址,並且釋放原本映射至在步驟S802中所定位之邏輯位址三個三階資料區塊。
接著,在步驟S808中,控制器160在單階備用儲存區塊池中選取三個單階儲存單元。
接著,在步驟S810中,控制器160將使用者寫入命令所指示寫入特定邏輯位址之資料先以單階儲存單元的方式寫入在步驟S808中所選取之三個單階儲存單元。
接著,在步驟S812中,控制器160在三階儲存單元 備用池TLC_POOL選擇另一三階備用區塊。
接著,在步驟S814中,控制器160將已寫入預定寫入特定邏輯位址之資料的三個單階儲存單元的資料以三階儲存單元模式整理至在步驟S812中所選取之三階備用區塊。
接著,在步驟S816中,控制器160將在步驟S814中所整理之三階備用區塊與被指派給特定邏輯位址之三階資料區塊交換,以將被指派給特定邏輯位址之三階資料區塊推至三階儲存單元備用池TLC_POOL以及將在步驟S814中所整理之三階備用區塊映射至特定邏輯位址。舉例而言,控制器160在步驟S800中接收到對邏輯位址H_301(特定邏輯位址)進行寫入之第一使用者寫入命令。以第5圖的實施例為例,控制器160根據指示對邏輯位址H_301寫入之第一使用者寫入命令,在三階儲存單元備用池TLC_POOL中選取一第一三階備用區塊TLC_SP_6,並且定位出被指派給邏輯位址H_301之第二三階資料區塊F_301所映射之第一邏輯位址H_1(步驟S802)。接著,控制器160將映射至第一邏輯位址H_1之第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601中之資料以三階儲存單元模式整理至第一三階備用區塊TLC_SP_6(步驟S804)。接著,控制器160更用以將整理後之第一三階備用區塊TLC_SP_6映射至第一邏輯位址H_1,並且釋放第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601(步驟S806)。在整理完第一三階資料區塊F_1、第二三階資料區塊F_301以及第三三階資料區塊F_601中之資料後,控制器160根據第一使用者寫入命令,在單階備用儲存區塊池 SLC_POOL中選取三個單階儲存單元(步驟S808),以將預定寫入邏輯位址H_301之資料先以單階儲存單元的方式寫入所選取之三個單階儲存單元(步驟S810)。接著,控制器160在三階儲存單元備用池TLC_POOL選擇一第四三階備用區塊TLC_11(步驟S812),以將已寫入預定寫入邏輯位址H_301之資料的三個單階儲存單元的資料以三階儲存單元模式整理至第四三階備用區塊TLC_11(步驟S814)。接著,控制器160將已整理之第四三階備用區塊TLC_11與第二三階資料區塊F_301交換,以將被指派給邏輯位址H_301之第二三階資料區塊F_301推至三階儲存單元備用池TLC_POOL以及將已整理之第四三階備用區塊TLC_11映射至邏輯位址H_301(步驟S816)。
接著,流程回到步驟S800,控制器160繼續判斷是否接收到使用者寫入命令。值得注意的是,在其他實施例中當控制器160並未接收到使用者寫入命令時,控制器160亦可在資料儲存裝置140閒置時,在背景執行第7圖所示之方法。換言之,第7圖所示以及第8A-8B圖所示之資料維護方法可併行。
綜上所述,本發明所提供之資料儲存裝置以及資料維護方法可以一既定順序選取單階儲存單元以暫存將儲存於三階儲存單元之資料。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程 式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體

Claims (16)

  1. 一種資料儲存裝置,包括:一快閃記憶體,具有複數單階備用儲存區塊、複數三階資料區塊、及複數三階備用區塊;以及一控制器,其係用將該些三階資料區塊均分為三個區域,該等區域各包含相同數量的三階資料區塊,該控制器復用以接收一預寫資料及該預寫資料之一邏輯位址,並根據該預寫資料及該邏輯位址分析出一第一子預寫資料段、一第二子預寫資料段、一第三子預寫資料段,該控制器又用以於一第一階段,依據該邏輯位址,決定對應於該邏輯位址的一第一三階資料區塊,並將該第一三階資料區塊所屬之該區域定為第一區域,再判斷該第一三階資料區塊是否已存在有效資料,若該第一三階資料區塊未存在有效資料,分別自該第一區域外之剩餘的兩個區域內,對應該第一三階資料區塊,挑選一第二三階資料區塊與一第三三階資料區塊,再以單階儲存模式分別將該第一子預寫資料、該第二子預寫資料、該第三子預寫資料寫入該第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊,復用以將該第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊映射至該邏輯位址。
  2. 根據申請專利範圍第1項之資料儲存裝置,其中該等三階資料區塊之總數為N,並且該等三階資料區塊具有連續之位址。
  3. 根據申請專利範圍第2項之資料儲存裝置,其中該第一三階 資料區塊之位址加上N/3等於該第二三階資料區塊之位址,該第一三階資料區塊之位址加上(2N)/3等於該第三三階資料區塊之位址。
  4. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器更用以在一第二階段,將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等三階備用區塊中之一者,其中該控制器用以在該等三階備用區塊中選取一第一三階備用區塊,以將映射至該邏輯位址之該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料以一三階儲存單元模式整理至該第一三階備用區塊,將整理後之該第一三階備用區塊映射至該邏輯位址,並且釋放該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊。
  5. 根據申請專利範圍第4項之資料儲存裝置,其中該第一階段為生產階段(Production Phase),該第二階段為在該第一階段後之整合階段(Integration Phase),並且在該第一階段以及該第二階段之間,該資料儲存裝置承受一高溫焊接。
  6. 根據申請專利範圍第4項之資料儲存裝置,其中上述將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料以該三階儲存單元模式整理至該第一三階備用區塊之步驟係與根據在該第二階段所接收之一使用者寫入命令所致能之一寫入步驟交錯的。
  7. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器更用以在一第二階段,接收一使用者寫入命令,並且根據該 使用者寫入命令,判斷映射至該使用者寫入命令所要求之該特定邏輯位址的一特定三階資料區塊是否具有預寫資料。
  8. 根據申請專利範圍第7項之資料儲存裝置,其中當該特定三階資料區塊具有預寫資料時,該控制器定位被指派給該特定邏輯位址之該特定三階資料區塊所映射之一第二邏輯位址,在該三階儲存單元備用池中選取一第二三階備用區塊,並且將映射至該第二邏輯位置之該特定三階資料區塊以及其他兩個該等三階資料區塊以一三階儲存單元模式整理至所選取之該第二三階備用區塊,以釋放映射至該第二邏輯位置之該特定三階資料區塊以及其他兩個該等三階資料區塊。
  9. 一種資料維護方法,適用於具有複數單階備用儲存區塊、複數三階資料區塊、以及複數三階備用區塊之一資料儲存裝置,該資料維護方法包括:接收一預寫資料及該預寫資料之一邏輯位址,並根據該預寫資料及該邏輯位址分析出一第一子預寫資料段、一第二子預寫資料段、一第三子預寫資料段;在一第一階段,將一預寫資料段依照該等邏輯位址的位址順序寫入該等邏輯位址中之至少一者,其中將該預寫資料段依照該等邏輯位址的位址順序寫入該等邏輯位址中之至少一者的步驟更包括:將該些三階資料區塊均分為三個區域,其中該等區域各包含相同數量的三階資料區塊; 依據該邏輯位址,決定對應於該邏輯位址的一第一三階資料區塊,並將該第一三階資料區塊所屬之該區域定為第一區域;判斷該第一三階資料區塊是否已存在有效資料;若該第一三階資料區塊未存在有效資料,分別自該第一區域外之剩餘的兩個區域內,對應該第一三階資料區塊,挑選一第二三階資料區塊與一第三三階資料區塊;以單階儲存模式分別將該第一子預寫資料、該第二子預寫資料、該第三子預寫資料寫入該第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊;以及將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊映射至該邏輯位址。
  10. 根據申請專利範圍第9項之資料維護方法,其中該等三階資料區塊之總數為N,並且該等三階資料區塊具有連續之位址。
  11. 根據申請專利範圍第10項之資料維護方法,其中該第一三階資料區塊之位址加上N/3等於該第二三階資料區塊之位址,該第一三階資料區塊之位址加上(2N)/3等於該第三三階資料區塊之位址。
  12. 根據申請專利範圍第9項之資料維護方法,更包括:在一第二階段,將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等三階備用區塊中之一者,其中將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等 三階備用區塊中之一者的步驟更包括:在該等三階備用區塊中選取一第一三階備用區塊;將映射至該第一邏輯位址之該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料以一三階儲存單元模式整理至該第一三階備用區塊;將整理後之該第一三階備用區塊映射至該第一邏輯位址;以及釋放將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊。
  13. 根據申請專利範圍第12項之資料維護方法,其中該第一階段為生產階段(Production Phase),該第二階段為在該第一階段後之整合階段(Integration Phase),並且在該第一階段以及該第二階段之間,該資料儲存裝置承受一高溫焊接。
  14. 根據申請專利範圍第12項之資料維護方法,其中將該第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等三階備用區塊中之一者的步驟係與根據在該第二階段所接收之一使用者寫入命令所致能之一寫入步驟交錯的。
  15. 根據申請專利範圍第9項之資料維護方法,更包括:在一第二階段,接收一使用者寫入命令;以及根據該使用者寫入命令,判斷映射至該使用者寫入命令所要求之該特定邏輯位址的一特定三階資料區塊是否具有預寫資料。
  16. 根據申請專利範圍第15項之資料維護方法,更包括: 當該特定三階資料區塊具有預寫資料時,定位被指派給該特定邏輯位址之該特定三階資料區塊所映射之一第二邏輯位址;在該三階儲存單元備用池中選取一第二三階備用區塊;以及將映射至該第二邏輯位置之該特定三階資料區塊以及其他兩個該等三階資料區塊以一三階儲存單元模式整理至該第二三階備用區塊,以釋放映射至該第二邏輯位置之該特定三階資料區塊以及其他兩個該等三階資料區塊。
TW104134631A 2015-10-22 2015-10-22 Data storage device and data maintenance method thereof TWI561985B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104134631A TWI561985B (en) 2015-10-22 2015-10-22 Data storage device and data maintenance method thereof
CN201510793653.4A CN106610791B (zh) 2015-10-22 2015-11-18 数据储存装置及其数据维护方法
US15/284,154 US10013210B2 (en) 2015-10-22 2016-10-03 Data storage device and data maintenance method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104134631A TWI561985B (en) 2015-10-22 2015-10-22 Data storage device and data maintenance method thereof

Publications (2)

Publication Number Publication Date
TWI561985B TWI561985B (en) 2016-12-11
TW201715399A true TW201715399A (zh) 2017-05-01

Family

ID=58227309

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104134631A TWI561985B (en) 2015-10-22 2015-10-22 Data storage device and data maintenance method thereof

Country Status (3)

Country Link
US (1) US10013210B2 (zh)
CN (1) CN106610791B (zh)
TW (1) TWI561985B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI640867B (zh) * 2017-05-02 2018-11-11 慧榮科技股份有限公司 資料儲存裝置及其操作方法
TWI652577B (zh) 2017-06-19 2019-03-01 慧榮科技股份有限公司 資料儲存裝置及非揮發式記憶體操作方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
CN111324281B (zh) * 2018-12-14 2024-02-06 兆易创新科技集团股份有限公司 一种存储器及其控制方法和装置
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI425515B (zh) * 2009-12-23 2014-02-01 Silicon Motion Inc 資料儲存裝置及快閃記憶體之資料寫入方法
TWI431626B (zh) * 2009-12-31 2014-03-21 Silicon Motion Inc 資料儲存裝置及整合快閃記憶體之區塊配對的方法
TWI537955B (zh) * 2011-08-19 2016-06-11 慧榮科技股份有限公司 快閃記憶體控制器
TW201310235A (zh) * 2011-08-24 2013-03-01 Novatek Microelectronics Corp 記憶體裝置及其寫入方法
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US20150006784A1 (en) * 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US20150120988A1 (en) * 2013-10-28 2015-04-30 Skymedi Corporation Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same
CN103778964B (zh) * 2013-12-30 2016-08-17 上海晨思电子科技有限公司 一种NAND Flash烧写数据的处理、使用方法及装置、系统
CN104765569B (zh) * 2014-01-06 2017-10-27 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器储存装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI640867B (zh) * 2017-05-02 2018-11-11 慧榮科技股份有限公司 資料儲存裝置及其操作方法
US10459837B2 (en) 2017-05-02 2019-10-29 Silicon Motion, Inc. Data storage device with production state awareness and non-volatile memory operating method with production state awareness
TWI652577B (zh) 2017-06-19 2019-03-01 慧榮科技股份有限公司 資料儲存裝置及非揮發式記憶體操作方法
US10229054B2 (en) 2017-06-19 2019-03-12 Silicon Motion, Inc. Data storage device and method for operating nonvolatile memory

Also Published As

Publication number Publication date
US20170115933A1 (en) 2017-04-27
CN106610791B (zh) 2019-04-12
US10013210B2 (en) 2018-07-03
CN106610791A (zh) 2017-05-03
TWI561985B (en) 2016-12-11

Similar Documents

Publication Publication Date Title
TWI590051B (zh) 資料儲存裝置及其資料維護方法
TW201715399A (zh) 資料儲存裝置及其資料維護方法
TWI606339B (zh) 資料儲存裝置及其資料維護方法
TWI603193B (zh) 資料儲存裝置及其資料維護方法
CN106445723B (zh) 存取闪存模块的方法、闪存控制器以及记忆装置
US10942796B2 (en) Identifying asynchronous power loss
US8300467B2 (en) Nonvolatile memory device and related method of operation
TWI614605B (zh) 資料儲存裝置及其資料維護方法
US9141476B2 (en) Method of storing system data, and memory controller and memory storage apparatus using the same
TWI506422B (zh) 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器
CN104765695A (zh) 一种nand flash坏块管理系统及方法
KR20170008849A (ko) 임계 전압 분석
CN109426451A (zh) 将数据写入闪存模块的方法及相关闪存控制器与电子装置
CN106155582B (zh) 非挥发性储存装置与控制器
CN102792381A (zh) 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护
US20130132640A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN102237139A (zh) 计算补偿电压与调整阀值电压方法及存储器装置与控制器
TWI578222B (zh) 資料儲存裝置及其資料維護方法
CN102937929A (zh) 多位/单元非挥发性内存的测试方法及多模式配置方法
CN103870214A (zh) 多层存储块兼具单层存储块性能的方法
US10872035B1 (en) Systems and methods for managing an artificially limited logical space of non-volatile memory
TWI652572B (zh) 資料儲存裝置
CN102956255B (zh) 闪存控制器
TWI453747B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器