TWI645290B - 資料儲存裝置及其資料寫入方法 - Google Patents
資料儲存裝置及其資料寫入方法 Download PDFInfo
- Publication number
- TWI645290B TWI645290B TW105132699A TW105132699A TWI645290B TW I645290 B TWI645290 B TW I645290B TW 105132699 A TW105132699 A TW 105132699A TW 105132699 A TW105132699 A TW 105132699A TW I645290 B TWI645290 B TW I645290B
- Authority
- TW
- Taiwan
- Prior art keywords
- level
- data
- blocks
- level blocks
- storage device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
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)之快閃記憶體,更容易受環境影響而無法保存資料。尤其是在斷電事件發生時,三階儲存單元相較於其他儲存單元有更大的機率被斷電事件影響而造成資料損毀。
本發明所提供之資料儲存裝置以及資料寫入方法可藉由繼續使用遭受斷電攻擊之三階區塊,來避免三階區塊的浪費並且減少三階區塊的抹除次數。
本發明之一實施例提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體具有複數三階區塊,其中每一三階區塊亦包括複數頁面。控制器在資料儲存裝置自一斷電事件中回復時,停止將資料寫入在斷電事件發生時未完成一寫入程序之一第一三階區塊,每當一第一既定數量之寫入命令被執行後,將第一三階區塊之有效資料寫入另一第二三階區塊。
在一實施例中,快閃記憶體更具有複數單階區塊,每一單階區塊包括複數頁面。第一三階區塊之寫入程序係將一既定數量之單階區塊中之資料,寫入(program)第一三階區塊,並且寫入命令係用以將資料寫入單階區塊中之一者。另外,控制器係依序將第一三階區塊中之有效資料寫入第二三階區塊的至少一頁面中,並且清除一最大整理時間,其中最大整理時間係用以限制控制器將資料自單階區塊寫入三階區塊的時間,並且第一既定數量為1。
又一實施例中,當第二三階區塊被填滿後,控制器則每當一第二既定數量之寫入命令被執行後,將一既定數量之單階區塊中的有效資料寫入三階區塊中之其它者。其中,第一既定數量小於第二既定數量。
本發明之另一實施例提供一種資料儲存裝置。資 料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體具有複數單階區塊以及複數三階區塊,其中每一單階區塊包括複數頁面,並且每一三階區塊亦包括複數頁面。控制器在資料儲存裝置自一斷電事件中回復後之一第一期間,每當一第一既定數量之寫入命令被執行後,將一第一三階區塊之有效資料寫入三階區塊中之一第二三階區塊,並且在第一期間後之一第二期間,每當一第二既定數量之寫入命令被執行後,將其他單階區塊中之有效資料寫入三階區塊中之其它者。
在一實施例中,第一三階區塊為在斷電事件發生時未完成寫入程序之三階區塊,並且第一既定數量小於第二既定數量。
另一實施例中,在第一期間中,每當原來要被寫入第一三階區塊之資料的一部分被寫入第一三階區塊後,控制器更清除一最大整理時間。
本發明又另一實施例提供一種資料寫入方法,適用於一資料儲存裝置,其中資料儲存裝置包括具有複數三階區塊之一快閃記憶體。資料寫入方法包括:當資料儲存裝置自一斷電事件中回復時,檢查在斷電事件發生時是否存在未完成寫入程序之三階區塊;當在斷電事件發生時有一第一三階區塊未完成寫入程序時,停止將資料寫入在斷電事件發生時未完成一寫入程序之一第一三階區塊,並且自第一三階區塊中選擇一第二三階區塊;以及當資料儲存裝置自斷電事件中回復後,每當一第一既定數量之寫入命令被執行後,將第一三階區塊之有效資料寫入第二三階區塊。
另一實施例中,快閃記憶體更包括複數單階區塊,其中資料寫入方法更包括:當第二三階區塊被填滿後,每當一第二既定數量之寫入命令被執行後,將一既定數量之單階區塊中的有效資料寫入至三階區塊中之其它者。
本發明之另一實施例提供一種資料寫入方法,適用於一資料儲存裝置,其中資料儲存裝置包括具有複數單階區塊以及複數三階區塊之一快閃記憶體。資料寫入方法包括:在資料儲存裝置自斷電事件中回復後之一第一期間,每當一第一既定數量之寫入命令被執行後,將一第一三階區塊之有效資料寫入三階區塊中之一第二三階區塊;以及在第一期間後之一第二期間,每當一第二既定數量之寫入命令被執行後,將其他單階區塊中之有效資料的一部分寫入三階區塊中之其它者。
另一實施例中,資料寫入方法,更包括在第一期間中,每當將原來要被寫入至一第一三階區塊之資料的一部分寫入至第二三階區塊後,更清除一最大整理時間。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
SLC_1~SLC_N‧‧‧單階區塊
TLC_1~TLC_N‧‧‧三階區塊
WP_1~WP_12‧‧‧寫入程序
GC_1~GC_8‧‧‧寫入程序
P1~P6‧‧‧頁面
Data_1~Data_3‧‧‧資料
S800~S806‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2圖係本發明之一種實施例之快閃記憶體之示意圖。
第3圖係本發明之一種實施例之區塊之示意圖。
第4圖係本發明之一種實施例之排程之示意圖。
第5圖係本發明之另一種實施例之區塊之示意圖。
第6圖係本發明之另一種實施例之區塊之示意圖。
第7圖係本發明之另一種實施例之排程之示意圖。
第8圖係本發明之一種實施例之資料寫入方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機110所下達的命令操作。控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。快閃記憶體180具有複數區塊,其中每一區塊具有複數頁面,其中快閃記憶體180係以頁面為最小單位進行寫入,並且以區塊為最小單位進行抹除。在某些實施例中,控制器160可包括一錯誤校正引擎(未圖示)用以對所讀取之資料進行錯誤校正(Error Correction),以及對寫入之資料進行編碼以獲得校驗碼(parity),其中錯誤校正引擎更可藉由讀取資料來獲得頁面中所儲存之資料的錯誤位元。
在一實施例中,快閃記憶體180中之區塊可包括複數單階區塊SLC_1~SLC_N以及複數三階區塊TLC_1~TLC_N, 如第2圖所示,其中每一單階區塊SLC_1~SLC_N具有複數頁面,並且每一三階區塊TLC_1~TLC_N亦具有複數頁面。單階區塊SLC_1~SLC_N係用以以單階儲存單元模式(Single-Level Cell mode,SLC mode)寫入資料的區塊,並且三階區塊係用以以三階儲存單元模式(Triple-Level Cell mode,TLC mode)寫入資料的區塊。另外,三階區塊TLC_1~TLC_N可儲存之資料量是單階區塊SLC_1~SLC_N的三倍。詳細而言,三階區塊以及單階區塊中之頁面皆是快閃記憶體180中之頁面,其物理構造是相同的。然而,三階區塊中之頁面是藉由電壓對區塊進行多次寫入(Program)來寫入資料,而單階區塊中之頁面是藉由電壓對區塊進行一次寫入(Program)來寫入資料。在一實施例中,三階區塊是藉由電壓對區塊進行三次寫入(Program)來寫入資料。換言之,三個具有有效資料之單階區塊可整理為一個三階區塊,但本發明不限於此。
值得注意的是,本發明所揭露之快閃記憶體180為操作於三階儲存單元(Triple-Level Cell,TLC)模式之記憶體,並且包括單階儲存單元(Single-Level Cell,SLC),其中資料儲存至三階區塊TLC_1~TLC_N之前,需要先將資料儲存至相應的複數個單階區塊SLC_1~SLC_N。在資料的儲存過程中,控制器160被設置為用以對單階區塊SLC_1~SLC_N中之一預定數量之單階區塊進行一預定次數之讀取程序,以將單階儲存單元的資料寫入(program)至一個三階區塊中。詳細而言,當控制器160需要將資料寫入快閃記憶體180中之一特定三階區塊時,控制器160會先將資料寫入單階區塊SLC_1~SLC_N中之一既定數量 之特定單階區塊。接著,控制器160對特定單階區塊進行一預定次數之讀取程序,以分別根據所讀取之資料寫入(program)特定三階區塊,進而將資料儲存至特定三階區塊中。換言之,三階區塊之寫入程序係將一既定數量之單階區塊中之資料,寫入(program)至所需寫入之三階區塊中。值得注意的是,在本發明中將單階區塊中之資料寫入(program)至所需寫入之三階區塊的動作為寫入程序。另外,寫入程序通常是在背景作業。換言之,當資料需要被寫入快閃記憶體180時,控制器160只要將欲寫入之資料寫入單階區塊中,資料儲存裝置140或者主機120就會認定資料已寫入快閃記憶體180,其中,在本發明中,將資料寫入單階區塊的動作同樣為寫入程序。接著,控制器160會在背景排程三階區塊的寫入程序,以將單階區塊中之資料寫入三階區塊中。
在一實施例中,既定數量可為3,但本發明不限於此。在其他實施例中,既定數量亦可為4、5、6、7、8或者其他正整數。舉例而言,控制器160需要將資料寫入快閃記憶體180中之一特定三階區塊TLC_1,如第3圖所示。控制器160會先將資料寫入3個之特定單階區塊SLC_1~SLC_3。接著,控制器160分別對特定單階區塊SLC_1~SLC_3中之三個第一頁面進行第一次讀取程序,以根據特定單階區塊SLC_1~SLC_3中之三個第一頁面的資料對特定三階區塊TLC_1進行第一次寫入。接著,控制器160分別對特定單階區塊SLC_1~SLC_3中之同樣三個第一頁面進行第二次讀取程序,以根據特定單階區塊SLC_1~SLC_3中之三個第一頁面的資料對特定三階區塊 TLC_1中之該第一頁面進行第二次寫入。最後,控制器160分別對特定單階區塊SLC_1~SLC_3中之同樣三個第一頁面進行第三次讀取程序,以根據特定單階區塊SLC_1~SLC_3中之三個第一頁面的資料對特定三階區塊TLC_1中之該第一頁面進行第三次寫入。經由上述之三次寫入,單階區塊SLC_1~SLC_3中之三個第一頁面的資料才被完整地寫入特定三階區塊TLC_1中之該第一頁面,依此類推,直到特定單階區塊SLC_1~SLC_3中之所有頁面的資料皆被寫入特定三階區塊TLC_1中為止。
如上所述,對三階區塊TLC_1~TLC_N進行寫入所需要的時間較長於將資料寫入單階區塊SLC_1~SLC_N的時間。因此,斷電事件較容易發生在對三階區塊TLC_1~TLC_N寫入過程中。在一實施例中,每當一斷電事件發生在對三階區塊寫入的過程中時,控制器160就選取一個新的三階區塊,並且在背景中將原本要寫入原三階區塊之單階區塊中的資料,重新寫入新的三階區塊中。另外,控制器160可在資料儲存裝置140自斷電事件回復後,藉由快閃記憶體180或者其他記憶體裝置中的表,來判斷是否有三階區塊的寫入程序被斷電事件打斷。舉例而言,快閃記憶體180可具有一表用以紀錄某頁面或者某區塊開始被寫入,以及另一表用以紀錄某頁面或者某區塊已寫入完畢。在本實施例中,快閃記憶體180可藉由比較該兩個表,來判斷是否有寫入程序被打斷,但本發明不限於此。在其他實施例中,資料儲存裝置140亦可藉由一個表、多個表或者旗標,來記錄資料寫入的狀況。另外,只要三階區塊中之任 一頁面沒有被寫完,該三階區塊之寫入程序即沒有完成。
值得注意的是,由於對三階區塊TLC_1~TLC_N進行寫入所需要的時間較長,所以資料儲存裝置140會具有一最大整理時間,以限制控制器160在背景將資料自單階區塊SLC_1~SLC_N寫入三階區塊TLC_1~TLC_N所花費的時間。舉例而言,控制器160在N筆寫入命令內,在背景執行三階區塊的寫入程序之時間不能超過一既定時間,其中最大整理時間是用以累計控制器160已花費在寫入程序上的時間。當最大整理時間超過既定時間時,控制器160則必須停止寫入程序,直到N-1筆寫入命令執行完畢後最大整理時間歸零,控制器160方可繼續執行寫入程序,但本發明不限於此。在其他實施例中,最大整理時間亦可為一既定值,控制器160會根據最大整理時間排程三階區塊的寫入程序。又在其他實施例中,控制器160亦可以其他形式利用最大整理時間,以達到控制三階區塊之寫入程序的目的。
如上所述,最大整理時間可避免過多的背景工作耗損資料儲存裝置140的資源,並且避免使用者在使用上感覺操作不順。然而,為了避免上述問題,控制器160則必須將一個三階區塊之寫入程序,分散在一第二既定數量之寫入命令後執行,如第4圖所示。第4圖係本發明之一種實施例之排程之示意圖,其中WP_1~WP_9為相應於不同寫入命令之寫入程序,GC_1~GC_3為寫入程序。在一實施例中,每一寫入程序WP_1~WP_9係對一單階區塊中之一頁面進行寫入,每一三階區塊之寫入程序GC_1~GC_3係對一三階區塊中之一頁面進行 寫入,但本發明不限於此。在其他實施例中,每一單階區塊之寫入程序WP_1~WP_9係對屬於單階區塊之至少一頁面進行寫入,每一三階區塊的寫入程序GC_1~GC_3係對屬於三階區塊中之至少一頁面進行寫入。在第4圖之實施例中,由於最大整理時間的限制,三階區塊的寫入程序GC_1~GC_3需要間隔三個寫入程序才可以執行。換言之,每當四個寫入命令被執行後,控制器160才將一既定數量之單階區塊中的有效資料陸續寫入至三階區塊。假如填滿一個三階區塊需要三次分散的寫入程序GC_1~GC_3才可完成,三階區塊則需要在9筆寫入命令之寫入程序WP_1~WP_9被執行後才能完成其寫入程序。值得注意的是,第4圖僅為本發明之一實施例,其中單階區塊的寫入程序以及三階區塊的寫入程序的數量以及配置並不對本發明造成限制。
在某些情況下,例如資料儲存裝置140之製造過程或者測試過程中,資料儲存裝置140容易連續地遭受斷電攻擊。因此,上述的方法會導致控制器160無法完成目前三階區塊的寫入程序,造成控制器160資源的浪費。舉例而言,如第4圖所示,若斷電事件連續的發生在資料儲存裝置140回復後之9筆寫入命令內,目前所處理之三階區塊的寫入程序則無法被完成,並且控制器160會不停的選擇新的三階區塊以進行寫入。
有鑑於此,在本發明之一實施例中,控制器160可在自一斷電事件回復後,先以較快之速率處理完被中斷之第一三階區塊的寫入程序,再回復到正常的速率處理其他三階區塊的寫入程序。詳細而言,控制器160在資料儲存裝置140自一斷 電事件中回復後之一第一期間內,每當一第一既定數量之寫入命令被執行後,將原來要被寫入一第一三階區塊之資料的一部分寫入一第二三階區塊,其中當所有資料填滿第二三階區塊時,第一期間結束。另外,第一三階區塊為在斷電事件發生時,未完成寫入程序之三階區塊。值得注意的是,在本發明中所述之”未完成寫入程序之三階區塊”,指的是已開始寫入程序但尚未完成寫入程序之三階區塊。在該第一期間後之一第二期間,每當一第二既定數量之寫入命令被執行後,控制器160將其他單階區塊中之有效資料寫入中的一部分寫入其他可使用之三階區塊中,其中第一既定數量小於第二既定數量。在一實施例中,第一既定數量為1,第二既定數量為4,但本發明不限於此。在其他實施例中,第一既定數量以及第二既定數量亦可為其他由電路設計者所決定的數值。另外,在第一期間中,每當原來要被寫入第一三階區塊之有效資料的一部分被寫入第一三階區塊後,控制器160都會清除最大整理時間,使得三階區塊的寫入程序可以連續地在下個單階區塊之寫入程序中被執行。
換言之,控制器160在資料儲存裝置140自一斷電事件中回復時,檢查在斷電事件發生時是否存在未完成寫入程序之三階區塊。接著,當斷電事件發生時存在未完成寫入程序之一第一三階區塊時,控制器160停止將資料寫入在斷電事件發生時未完成寫入程序之第一三階區塊,並且自三階區塊中選擇一第二三階區塊,以將原本要寫入第一三階區塊之有效資料全部寫入第二三階區塊。換言之,控制器160將原本要寫入至第一三階區塊之單階區塊中的有效資料,重新寫入第二三階區 塊中。值得注意的是,控制器160係選擇三階區塊中除了第一三階區塊外,不具有有效資料之三階區塊以作為第二三階區塊,但本發明不限於此。在其他實施例中,控制器160亦可根據抹除次數、寫入次數或者其他參考值,來選擇新的三階區塊。詳細而言,在本實施例中,在自斷電事件回復後,每當第一既定數量之寫入命令被執行後,控制器160將原來要被寫入至第一三階區塊之資料的一部分寫入至另一第二三階區塊之至少一頁面,並且清除一最大整理時間,直到第二三階區塊被原來要被寫入第一三階區塊之資料填滿。當第二三階區塊被填滿後,控制器160則每當第二既定數量之寫入命令被執行後,將一既定數量之單階區塊中的有效資料寫入三階區塊中之其它者。
舉例而言,如第5圖所示,控制器160要將單階區塊SLC_1~SLC_3中之資料Data_1~Data_6,寫入/整理(program)至三階區塊TLC_4。假設資料Data_1~Data_2皆被寫入頁面P1~P2中,並且一斷電事件發生在控制器160將資料Data_3寫入三階區塊TLC_4中之頁面P3時。控制器160在資料儲存裝置140自斷電事件中回復時,停止將資料寫入在斷電事件發生時未完成寫入程序之三階區塊TLC_4,並且自三階區塊中選擇另一三階區塊TLC_6,以在背景作業中將原本要寫入三階區塊TLC_4之資料全部寫入三階區塊TLC_6,如第6圖所示。背景作業之排程請參考第7圖。
如第7圖所示,控制器160在資料儲存裝置140自斷電事件中回復後之一第一期間PT1內,每當一個寫入命令被執 行,就將原來要被寫入一三階區塊TLC_4之資料的一部分寫入至三階區塊TLC_6,並且清除最大整理時間,使得三階區塊的寫入程序可以連續地在下個單階區塊的寫入程序中被執行。當單階區塊SLC_1~SLC_3之所有資料Data_1~Data_6都已寫入三階區塊TLC_6時,第一期間PT1結束。換言之,已單階區塊SLC_1~SLC_3之所有資料Data_1~Data_6都已被寫入時(三階區塊TLC_6之寫入程序完成時),第一期間PT1結束。在本實施例中,每個單階區塊的寫入程序WP_1~WP_12皆係對單皆區塊中之一頁面進行寫入,每個三階區塊的程序GC_1~GC_8皆係將資料寫入三階區塊之一頁面,但本發明不限於此。詳細而言,控制器160在三階的寫入程序GC_1中將資料Data_1寫入三階區塊TLC_6之頁面P1並且清除最大整理時間;在三階區塊之寫入程序GC_2中將資料Data_2寫入三階區塊TLC_6之頁面P2並且清除最大整理時間;在寫入程序GC_3中將資料Data_3寫入三階區塊TLC_6之頁面P3並且清除最大整理時間,依此類推。在第一期間TP1後之第二期間TP2,每當四個寫入命令被執行後,控制器160將其他單階區塊中之有效資料的一部分陸續在單階區塊之寫入程序GC_7、GC_8等中,寫入三階區塊中之其它者。值得注意的是,在一實施例中,第一期間TP1之其餘工作時間皆為第二期間TP2。
第8圖係本發明之一種實施例之資料寫入方法之流程圖。資料寫入方法適用於第1圖所示之資料儲存裝置140。流程開始於步驟S800。
在步驟S800中,資料儲存裝置140自一斷電事件回 復。值得注意的是,本發明所指之斷電事件包括資料儲存裝置140預期地或者非預期地被切斷電源,但本發明不限於此。在其他實施例中,斷電事件可僅包括資料儲存裝置140非預期地被切斷電源。
接著,在步驟S802中,控制器160判斷在斷電事件發生時是否存在正在處理且未完成寫入程序之三階區塊。當控制器160判斷在斷電事件發生時有正在處理且未完成寫入程序之一第一三階區塊時,流程進行至步驟S804以進入第一期間;否則,流程跳過第一期間直接進行至S806已進入第二期間。
在步驟S804中,在第一期間中,每當一第一既定數量之寫入命令被執行後,將一第一三階區塊之有效資料的一部分寫入一第二三階區塊。當所有資料填滿第二三階區塊時,第一期間結束,流程進行至步驟S806。在一實施例中,每當原來要被寫入第一三階區塊之資料的一部分被寫入第一三階區塊後,控制器160都會清除最大整理時間,使得三階區塊之寫入程序程序可以連續地在下個單階區塊之寫入程序中被執行,但本發明不限於此。值得注意的是,將原來要被寫入第一三階區塊之資料的一部分寫入第二三階區塊之至少一頁面的寫入程序,可在步驟S804中所執行之第一個寫入命令之前、之中或者之後執行,本發明不限於此。在其他實施例中,寫入程序亦可以其他方式安排在步驟S804中。另外,控制器160係選擇三階區塊中除了第一三階區塊外,不具有有效資料之三階區塊以作為第三三階區塊,但本發明不限於此。在其他實施例中,控制器160亦可根據抹除次數、寫入次數或者其他參考值, 來選擇新的三階區塊。
在步驟S806中,在第一期間後之一第二期間中,每當一第二既定數量之寫入命令被執行後,控制器160將其他單階區塊中之有效資料中的一部分,逐一寫入空白之三階區塊中,其中第一既定數量小於第二既定數量。在一實施例中,第一既定數量為1,第二既定數量為4,但本發明不限於此。在其他實施例中,第一既定數量以及第二既定數量亦可為其他由電路設計者所決定的數值。流程結束於步驟S806。
如上所述,本發明所提供之資料儲存裝置140以及資料寫入方法可避免在連續斷電的情況下,無法完成被中斷的三階區塊的寫入程序。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本 發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
Claims (20)
- 一種資料儲存裝置,包括:一快閃記憶體,具有複數三階區塊,其中每一該等三階區塊包括複數頁面;以及一控制器,在該資料儲存裝置自一斷電事件中回復時,停止將資料寫入該斷電事件發生時未完成一寫入程序之一第一三階區塊,又每當一第一既定數量之寫入命令被執行後,將該第一三階區塊之有效資料寫入至一第二三階區塊,其中該控制器係依序將該第一三階區塊中之有效資料寫入該第二三階區塊中之至少一該等頁面,並且清除一最大整理時間,直到該第二三階區塊被填滿。
- 根據申請專利範圍第1項之資料儲存裝置,其中該快閃記憶體更具有複數單階區塊,並且每一該等單階區塊包括複數頁面,其中該第一三階區塊之該寫入程序係將一既定數量之該等單階區塊中之資料,寫入(program)至該第一三階區塊,並且該寫入命令係用以將資料寫入該等單階區塊中之一者。
- 根據申請專利範圍第1項之資料儲存裝置,其中該最大整理時間係用以限制該控制器將資料自該等單階區塊寫入至該等三階區塊的時間。
- 根據申請專利範圍第1項之資料儲存裝置,其中該第一既定數量為1。
- 根據申請專利範圍第1項之資料儲存裝置,其中當該第二三階區塊被填滿後,該控制器則每當一第二既定數量之寫入命令被執行後,將一既定數量之該等單階區塊中的有效資料寫入至該等三階區塊中之其它者。
- 根據申請專利範圍第5項之資料儲存裝置,其中該第一既定數量小於該第二既定數量。
- 一種資料儲存裝置,包括:一快閃記憶體,具有複數單階區塊以及複數三階區塊,其中每一該等單階區塊包括複數頁面,並且每一該等三階區塊亦包括複數頁面;以及一控制器,在該資料儲存裝置自一斷電事件中回復後之一第一期間,每當一第一既定數量之寫入命令被執行後,將一第一三階區塊之有效資料寫入該等三階區塊中之一第二三階區塊,並且在該第一期間後之一第二期間,每當一第二既定數量之寫入命令被執行後,將其他該等單階區塊中之有效資料的一部分寫入該等三階區塊中之其它者。
- 根據申請專利範圍第7項之資料儲存裝置,其中該第一三階區塊為在該斷電事件發生時未完成寫入程序之該三階區塊。
- 根據申請專利範圍第7項之資料儲存裝置,其中該第一既定數量小於該第二既定數量。
- 根據申請專利範圍第7項之資料儲存裝置,其中該第一期間中,每當該第一三階區塊之有效資料的一部分被寫入至該第一三階區塊後,該控制器更清除一最大整理時間。
- 一種資料寫入方法,適用於一資料儲存裝置,其中該資料儲存裝置包括具有複數三階區塊之一快閃記憶體,該資料寫入方法包括:當該資料儲存裝置自一斷電事件中回復時,檢查在該斷電事件發生時是否存在未完成寫入程序之該等三階區塊;當在該斷電事件發生時有一第一三階區塊未完成寫入程序時,停止將資料寫入在該斷電事件發生時未完成一寫入程序之一第一三階區塊,並且自該等第一三階區塊中選擇一第二三階區塊;以及當該資料儲存裝置自該斷電事件中回復後,每當一第一既定數量之寫入命令被執行後,將該第一三階區塊之有效資料寫入至該第二三階區塊中,並且依序將該第一三階區塊中之有效資料寫入該第二三階區塊中之至少一頁面,並且清除一最大整理時間。
- 根據申請專利範圍第11項之資料寫入方法,其中該快閃記憶體更具有複數單階區塊,其中該第一三階區塊之該寫入程序係將一既定數量之該等單階區塊中之資料,寫入(program)至該第一三階區塊,並且該寫入命令係用以將資料寫入該等單階區塊中之一者。
- 根據申請專利範圍第11項之資料寫入方法,其中該最大整理時間係用以限制將資料自該等單階區塊寫入該等三階區塊所花費的時間。
- 根據申請專利範圍第11項之資料寫入方法,其中該第一既定數量為1。
- 根據申請專利範圍第11項之資料寫入方法,更包括:當該第二三階區塊被填滿後,每當一第二既定數量之寫入命令被執行後,將一既定數量之該等單階區塊中的有效資料寫入至該等三階區塊中之其它者。
- 根據申請專利範圍第15項之資料寫入方法,其中該第一既定數量小於該第二既定數量。
- 一種資料寫入方法,適用於一資料儲存裝置,其中該資料儲存裝置包括具有複數單階區塊以及複數三階區塊之一快閃記憶體,該資料寫入方法包括:在該資料儲存裝置自該斷電事件中回復後之一第一期間,每當一第一既定數量之寫入命令被執行後,將一第一三階區塊之有效資料寫入該等三階區塊中之一第二三階區塊;以及在該第一期間後之一第二期間,每當一第二既定數量之寫入命令被執行後,將其他該等單階區塊中之有效資料的一部分寫入該等三階區塊中之其它者。
- 根據申請專利範圍第17項之資料寫入方法,其中該第一三階區塊為在該斷電事件發生時未完成寫入程序之該三階區塊。
- 根據申請專利範圍第17項之資料寫入方法,其中該第一既定數量小於該第二既定數量。
- 根據申請專利範圍第17項之資料寫入方法,更包括在該第一期間中,每當一第一三階區塊之有效資料的一部分寫入該第二三階區塊後,更清除一最大整理時間。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105132699A TWI645290B (zh) | 2016-10-11 | 2016-10-11 | 資料儲存裝置及其資料寫入方法 |
CN201611007861.8A CN107918523B (zh) | 2016-10-11 | 2016-11-16 | 数据储存装置及其数据写入方法 |
US15/659,214 US10241678B2 (en) | 2016-10-11 | 2017-07-25 | Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105132699A TWI645290B (zh) | 2016-10-11 | 2016-10-11 | 資料儲存裝置及其資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201814533A TW201814533A (zh) | 2018-04-16 |
TWI645290B true TWI645290B (zh) | 2018-12-21 |
Family
ID=61828861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105132699A TWI645290B (zh) | 2016-10-11 | 2016-10-11 | 資料儲存裝置及其資料寫入方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10241678B2 (zh) |
CN (1) | CN107918523B (zh) |
TW (1) | TWI645290B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI740454B (zh) * | 2020-04-14 | 2021-09-21 | 慧榮科技股份有限公司 | 反應電源事件的資料存取方法及裝置 |
US11342008B2 (en) | 2020-04-14 | 2022-05-24 | Silicon Motion, Inc. | Method and apparatus for accessing to data in response to power-supply event |
Families Citing this family (6)
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 |
US10534551B1 (en) * | 2018-06-22 | 2020-01-14 | Micron Technology, Inc. | Managing write operations during a power loss |
CN109032532B (zh) * | 2018-08-28 | 2021-07-13 | 深圳忆联信息系统有限公司 | 闪存存储管理方法及闪存装置 |
CN109542921B (zh) * | 2018-11-28 | 2021-03-02 | 北京字节跳动网络技术有限公司 | 一种数据检查方法、装置、电子设备及存储介质 |
CN116909493B (zh) * | 2023-09-12 | 2023-11-17 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042773A1 (en) * | 2008-08-12 | 2010-02-18 | Phison Electronics Corp. | Flash memory storage system and data writing method thereof |
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
TW201411351A (zh) * | 2012-09-07 | 2014-03-16 | Storart Technology Co Ltd | 迴避由突然斷電所造成之損壞資料頁與損壞區塊的方法 |
TWI470435B (zh) * | 2009-09-18 | 2015-01-21 | Intel Corp | 為本地與遠端實體記憶體間之共用虛擬記憶體提供硬體支援 |
TW201530310A (zh) * | 2014-01-22 | 2015-08-01 | Htc Corp | 儲存裝置、電子裝置,以及燒錄記憶體的方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153912A1 (en) * | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US8054684B2 (en) * | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
CN102222045B (zh) * | 2010-04-19 | 2015-12-16 | 慧荣科技股份有限公司 | 一种存储器的数据写入方法及数据储存装置 |
US20120297248A1 (en) * | 2011-05-17 | 2012-11-22 | Alan David Bennett | Block write handling after corruption |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US8750042B2 (en) * | 2011-07-28 | 2014-06-10 | Sandisk Technologies Inc. | Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures |
TWI470432B (zh) | 2011-11-21 | 2015-01-21 | Mstar Semiconductor Inc | 電子系統及其快閃記憶體管理方法 |
CN103164345B (zh) * | 2011-12-08 | 2016-04-27 | 光宝科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
TWI515737B (zh) * | 2013-12-09 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其資料抹除方法 |
TWI525635B (zh) * | 2013-12-17 | 2016-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
KR20170076878A (ko) * | 2015-12-24 | 2017-07-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2016
- 2016-10-11 TW TW105132699A patent/TWI645290B/zh active
- 2016-11-16 CN CN201611007861.8A patent/CN107918523B/zh active Active
-
2017
- 2017-07-25 US US15/659,214 patent/US10241678B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042773A1 (en) * | 2008-08-12 | 2010-02-18 | Phison Electronics Corp. | Flash memory storage system and data writing method thereof |
TWI470435B (zh) * | 2009-09-18 | 2015-01-21 | Intel Corp | 為本地與遠端實體記憶體間之共用虛擬記憶體提供硬體支援 |
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
TW201411351A (zh) * | 2012-09-07 | 2014-03-16 | Storart Technology Co Ltd | 迴避由突然斷電所造成之損壞資料頁與損壞區塊的方法 |
TW201530310A (zh) * | 2014-01-22 | 2015-08-01 | Htc Corp | 儲存裝置、電子裝置,以及燒錄記憶體的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI740454B (zh) * | 2020-04-14 | 2021-09-21 | 慧榮科技股份有限公司 | 反應電源事件的資料存取方法及裝置 |
US11342008B2 (en) | 2020-04-14 | 2022-05-24 | Silicon Motion, Inc. | Method and apparatus for accessing to data in response to power-supply event |
US11664056B2 (en) | 2020-04-14 | 2023-05-30 | Silicon Motion, Inc. | Method and apparatus for accessing to data in response to power-supply event |
Also Published As
Publication number | Publication date |
---|---|
US10241678B2 (en) | 2019-03-26 |
TW201814533A (zh) | 2018-04-16 |
CN107918523A (zh) | 2018-04-17 |
CN107918523B (zh) | 2020-04-21 |
US20180101303A1 (en) | 2018-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI645290B (zh) | 資料儲存裝置及其資料寫入方法 | |
TWI621129B (zh) | 資料儲存裝置及其資料寫入方法 | |
TWI607312B (zh) | 資料儲存裝置及其資料寫入方法 | |
US10296231B2 (en) | Data-storage device and data maintenance method thereof | |
TWI516922B (zh) | 資料儲存裝置及快閃記憶體零散資料收集方法 | |
CN106708754B (zh) | 数据储存装置及其数据维护方法 | |
US20160268000A1 (en) | Power fail saving modes in solid state drive with mlc memory | |
US7877668B2 (en) | Memory access system | |
CN113168875A (zh) | 读取干扰扫描合并 | |
TWI608350B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 | |
TWI614605B (zh) | 資料儲存裝置及其資料維護方法 | |
US9952978B2 (en) | Method for improving mixed random performance in low queue depth workloads | |
RU2600525C2 (ru) | Способ управления техническим ресурсом энергонезависимой памяти | |
CN105489242B (zh) | 数据储存器件及其操作方法 | |
CN102141944B (zh) | 用来减少无法更正的错误的方法以及记忆装置及其控制器 | |
TWI640868B (zh) | 資料儲存裝置及其資料寫入方法 | |
TWI639946B (zh) | 資料儲存裝置及其資料維護方法 | |
US11086546B1 (en) | Preserve write for solid-state drives | |
US10210939B1 (en) | Solid state storage device and data management method | |
US9747973B2 (en) | Solid state storage device and data writing method to prevent data loss during program cycle | |
TWI592801B (zh) | 資料儲存裝置及其資料維護方法 | |
Handy | How Controllers Maximize SSD Life | |
TWI644250B (zh) | 電子系統及其資料維護方法 | |
TW201812589A (zh) | 資料儲存裝置 |