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

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

Info

Publication number
TWI606339B
TWI606339B TW105104554A TW105104554A TWI606339B TW I606339 B TWI606339 B TW I606339B TW 105104554 A TW105104554 A TW 105104554A TW 105104554 A TW105104554 A TW 105104554A TW I606339 B TWI606339 B TW I606339B
Authority
TW
Taiwan
Prior art keywords
data block
order data
order
address
region
Prior art date
Application number
TW105104554A
Other languages
English (en)
Other versions
TW201730772A (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 TW105104554A priority Critical patent/TWI606339B/zh
Priority to CN201610134963.XA priority patent/CN107092566B/zh
Priority to US15/287,998 priority patent/US9940058B2/en
Publication of TW201730772A publication Critical patent/TW201730772A/zh
Application granted granted Critical
Publication of TWI606339B publication Critical patent/TWI606339B/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • 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
    • G11C11/5635Erasing 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
    • 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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

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

Claims (10)

  1. 一種資料儲存裝置,包括:一快閃記憶體,具有複數單階備用儲存區塊、複數三階資料區塊、及複數三階備用區塊;以及一控制器;其係用以將該些三階資料區塊均分為三個區域,其各包含相同數量的資料區塊;其復用以接收一預寫資料及該預寫資料之一邏輯位址,並分析出一第一子預寫資料、一第二子預寫資料、一第三子預寫資料;其又用以於一第一階段,依據預寫之該邏輯位址,決定對應於預寫之該邏輯位址的一第一三階資料區塊,並將該第一三階資料區塊所屬之區域定為第一區域,再判斷該第一三階資料區塊是否已存在有效資料,若該第一三階資料區塊存在有效資料,則於該第一區域內挑選一個抹除次數最少的三階資料區塊為一新第一三階資料區塊,分別自該剩餘的兩個區域內,對應該新第一三階資料區塊,挑選一第二三階資料區塊與一第三三階資料區塊,再以單階儲存模式分別將該第一子預寫資料、該第二子預寫資料、該第三子預寫資料寫入該新第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊;復用以將該新第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊映射至該邏輯位址。
  2. 根據申請專利範圍第1項之資料儲存裝置,其中該等三階 資料區塊的總數為N,並且該等三階資料區塊具有連續之位址。
  3. 根據申請專利範圍第2項之資料儲存裝置,其中該控制器更用以將剩餘之該兩個區域分別定義為第二區域以及第三區域,當該第一區域中該等三階資料區塊的位址在該第二區域以及該第三區域中之該等三階資料區塊的位址之前時,該新第一三階資料區塊之位址加上N/3等於該第二三階資料區塊之位址並且該新第一三階資料區塊之位址加上(2N)/3等於該第三三階資料區塊之位址,當該第一區域中該等三階資料區塊的位址在該第二區域中之該等三階資料區塊的位址之前並且在該第三區域中之該等三階資料區塊的位址之後時,該新第一三階資料區塊之位址加上N/3等於該第二三階資料區塊之位址並且該新第一三階資料區塊之位址減去N/3等於該第三三階資料區塊之位址,當該第一區域中該等三階資料區塊的位址在該第二區域以及在該第三區域中之該等三階資料區塊的位址之後時,該新第一三階資料區塊之位址減去(2N)/3等於該第二三階資料區塊之位址並且該新第一三階資料區塊之位址減去N/3等於該第三三階資料區塊之位址。
  4. 根據申請專利範圍第1項之資料儲存裝置,其中該控制器更用以在一第二階段,將該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等三階備用區塊中之一者,其中該控制器用以在該等三階備用區塊中選取一第一三階備用區塊,以將映射至該邏輯位 址之該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料以一三階儲存單元模式整理至該第一三階備用區塊,將整理後之該第一三階備用區塊映射至該邏輯位址,並且釋放該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊。
  5. 根據申請專利範圍第4項之資料儲存裝置,其中該第一階段為生產階段(Production Phase),該第二階段為在該第一階段後之整合階段(Integration Phase),並且在該第一階段以及該第二階段之間,該資料儲存裝置承受一高溫焊接。
  6. 一種資料維護方法,適用於具有複數單階備用儲存區塊、複數三階資料區塊、以及複數三階備用區塊之一資料儲存裝置,該資料維護方法包括:接收一預寫資料及該預寫資料之一邏輯位址,並根據該預寫資料及該邏輯位址分析出一第一子預寫資料、一第二子預寫資料、一第三子預寫資料;以及於一第一階段,依據該預寫資料之該邏輯位址將該預寫資料寫入該資料儲存裝置,其中在該第一階段將該預寫資料寫入該資料儲存裝置的步驟更包括:將該些三階資料區塊均分為三個區域,其各包含相同數量的資料區塊;依據預寫之該邏輯位址,決定對應於預寫之該邏輯位址的一第一三階資料區塊,並將該第一三階資料區塊所屬之區域定為第一區域;判斷該第一三階資料區塊是否已存在有效資料; 若該第一三階資料區塊存在有效資料,則於該第一區域內挑選一個抹除次數最少的三階資料區塊為一新第一三階資料區塊,分別自該剩餘的兩個區域內,對應該新第一三階資料區塊,挑選一第二三階資料區塊與一第三三階資料區塊;以單階儲存模式分別將該第一子預寫資料、該第二子預寫資料、該第三子預寫資料寫入該新第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊;以及將該新第一三階資料區塊、該第二三階資料區塊、該第三三階資料區塊映射至該邏輯位址。
  7. 根據申請專利範圍第6項之資料維護方法,其中該等三階資料區塊的總數為N,並且該等三階資料區塊具有連續之位址。
  8. 根據申請專利範圍第7項之資料維護方法,其中剩餘之該兩個區域分別被定義為第二區域以及第三區域,當該第一區域中該等三階資料區塊的位址在該第二區域以及該第三區域中之該等三階資料區塊的位址之前時,該新第一三階資料區塊之位址加上N/3等於該第二三階資料區塊之位址並且該新第一三階資料區塊之位址加上(2N)/3等於該第三三階資料區塊之位址,當該第一區域中該等三階資料區塊的位址在該第二區域中之該等三階資料區塊的位址之前並且在該第三區域中之該等三階資料區塊的位址之後時,該新第一三階資料區塊之位址加上N/3等於該第二三階資料區塊之位址並且該新第一三階資料區塊之位址減去N/3等於 該第三三階資料區塊之位址,當該第一區域中該等三階資料區塊的位址在該第二區域以及在該第三區域中之該等三階資料區塊的位址之後時,該新第一三階資料區塊之位址減去(2N)/3等於該第二三階資料區塊之位址並且該新第一三階資料區塊之位址減去N/3等於該第三三階資料區塊之位址。
  9. 根據申請專利範圍第6項之資料維護方法,更包括:在一第二階段,將該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等三階備用區塊中之一者,其中將該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料整理至該等三階備用區塊中之一者的步驟更包括:在該三階儲存單元備用池中選取一第一三階備用區塊;將映射至該邏輯位址之該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊中之資料以一三階儲存單元模式整理至該第一三階備用區塊;將整理後之該第一三階備用區塊映射至該邏輯位址;以及釋放該新第一三階資料區塊、該第二三階資料區塊以及該第三三階資料區塊。
  10. 根據申請專利範圍第9項之資料維護方法,其中該第一階段為生產階段(Production Phase),該第二階段為在該第一階段後之整合階段(Integration Phase),並且在該第一階段以及該第二階段之間,該資料儲存裝置承受一高溫焊接。
TW105104554A 2016-02-17 2016-02-17 資料儲存裝置及其資料維護方法 TWI606339B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW105104554A TWI606339B (zh) 2016-02-17 2016-02-17 資料儲存裝置及其資料維護方法
CN201610134963.XA CN107092566B (zh) 2016-02-17 2016-03-10 数据储存装置及其数据维护方法
US15/287,998 US9940058B2 (en) 2016-02-17 2016-10-07 Data storage device and data maintenance method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105104554A TWI606339B (zh) 2016-02-17 2016-02-17 資料儲存裝置及其資料維護方法

Publications (2)

Publication Number Publication Date
TW201730772A TW201730772A (zh) 2017-09-01
TWI606339B true TWI606339B (zh) 2017-11-21

Family

ID=59561498

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105104554A TWI606339B (zh) 2016-02-17 2016-02-17 資料儲存裝置及其資料維護方法

Country Status (3)

Country Link
US (1) US9940058B2 (zh)
CN (1) CN107092566B (zh)
TW (1) TWI606339B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200015247A (ko) 2018-08-03 2020-02-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
JP2020086748A (ja) * 2018-11-21 2020-06-04 Tdk株式会社 メモリコントローラ、及びメモリシステム
TWI705331B (zh) * 2019-06-24 2020-09-21 群聯電子股份有限公司 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置
US11069417B2 (en) 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
KR20210025249A (ko) 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
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
TWI388986B (zh) 2008-06-19 2013-03-11 Silicon Motion Inc 快閃記憶體裝置的運作方法及快閃記憶體裝置
US20090319721A1 (en) 2008-06-19 2009-12-24 Silicon Motion, Inc. Flash memory apparatus and method for operating the same
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
TW201310237A (zh) 2011-08-24 2013-03-01 Innodisk Corp 快閃記憶體儲存裝置
TWI470432B (zh) 2011-11-21 2015-01-21 Mstar Semiconductor Inc 電子系統及其快閃記憶體管理方法
CN102789427B (zh) * 2012-07-17 2015-11-25 威盛电子股份有限公司 数据储存装置与其操作方法
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

Also Published As

Publication number Publication date
CN107092566B (zh) 2020-07-10
US20170235489A1 (en) 2017-08-17
CN107092566A (zh) 2017-08-25
US9940058B2 (en) 2018-04-10
TW201730772A (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
TWI606339B (zh) 資料儲存裝置及其資料維護方法
TWI590051B (zh) 資料儲存裝置及其資料維護方法
TWI607312B (zh) 資料儲存裝置及其資料寫入方法
CN107068190B (zh) 修正编程电压的存储器设备编程方法
US9086954B2 (en) Data storing method, memory controller and memory storage apparatus
TWI498898B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR101891429B1 (ko) 임계 전압 분석
US8832527B2 (en) Method of storing system data, and memory controller and memory storage apparatus using the same
TWI625729B (zh) 資料配置方法及應用其之電子系統
TWI603193B (zh) 資料儲存裝置及其資料維護方法
TW201715399A (zh) 資料儲存裝置及其資料維護方法
US9141530B2 (en) Data writing method, memory controller and memory storage device
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
US20140254263A1 (en) Write Sequence Providing Write Abort Protection
US20110093649A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
US9396804B1 (en) Memory programming method, memory control circuit unit and memory storage apparatus
CN106155582A (zh) 非挥发性储存装置与控制器
TW201734797A (zh) 資料儲存裝置及其資料維護方法
CN105988936A (zh) 非挥发性储存装置与控制器
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN103870214A (zh) 多层存储块兼具单层存储块性能的方法
CN110289036B (zh) 读取电压最佳化方法以及存储控制器
US20160320973A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
TWI652572B (zh) 資料儲存裝置
CN109669626B (zh) 固态储存装置及其相关数据管理方法