TWI606388B - 資料儲存裝置及其資料維護方法 - Google Patents
資料儲存裝置及其資料維護方法 Download PDFInfo
- Publication number
- TWI606388B TWI606388B TW105141371A TW105141371A TWI606388B TW I606388 B TWI606388 B TW I606388B TW 105141371 A TW105141371 A TW 105141371A TW 105141371 A TW105141371 A TW 105141371A TW I606388 B TWI606388 B TW I606388B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- data
- temporary block
- space
- read
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係關於一種資料儲存裝置,特別係關於可自斷電事件回復資料狀態之資料儲存裝置。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks),其中浮置閘極電晶體可用以構成快閃記憶體。浮置閘極電晶體中之浮置閘極,可捕捉的電荷以儲存資料。另外,快閃記憶體中之實體頁面與主機裝置所指定之邏輯頁面的轉換關係需要一個表來紀錄。當非預期之斷電事件發生時,儲存於隨機記憶體中之表會丟失。如何有效重建丟失的表是一個重要的課題。
本發明所提供之資料儲存裝置以及資料維護方法可獨立將系統資料儲存在暫時區塊中,並且將暫時區塊表備份在暫時區塊中之每個頁面中。
本發明提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括複數區塊,每一區塊包括依照一第一順序排列之複數頁面。當資料儲存裝置自一斷電事件回復時,控制器判斷區塊中之一暫時區塊的第X面是否可被成功讀取。當第X頁面可被成功讀取時,控制器將無效資料以及一暫時區塊表寫入暫時區塊之第X+1個頁面中,其中第X頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,暫時區塊表中紀錄了暫存區塊中所有頁面之資訊,並且X為一正整數。
在一實施例中,在暫時區塊中之每一頁面係用以儲存長度小於一既定長度之系統資料,其中暫時區塊中的第X+1頁面不具有其他使用者資料。
在另一實施例中,控制器係使用不同之複數讀取電壓,重複讀取第X頁面以判斷第X頁面是否可被成功讀取。當控制器使用了兩個以上之讀取電壓才成功讀取第X頁面時,控制器更使用自第X頁面成功讀取之資料,對第X頁面再次進行寫入。
另外,當第X頁面無法被成功讀取時,控制器則讀取暫時區塊中的第X-1頁面。當第X頁面無法被成功讀取時,控制器更捨棄暫時區塊,選取區塊中之另一者作為一新的暫時區塊,並且將暫時區塊之第1~X-1頁面中所儲存之資料寫入新的暫時區塊中。
一實施例中,控制器在尋找程序中獲得暫時區塊中之第X區塊,並且每一頁面皆具有一使用者資料空間以及一
備用空間。在尋找程序中,控制器自暫時區塊中之第1個頁面開始,依照第一順序讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。在讀取到不具有有效資料的備用空間後,控制器更自所讀取到不具有有效資料之備用空間所相應之頁面的下一個開始,依照一第二順序逐一讀取暫時區塊中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止,其中控制器依照第二順序讀取到具有有效資料之備用空間所屬之頁面為一第一空白頁面,並且第二順序與第一順序相反。控制器更讀取第一空白頁面中之使用者資料空間,並且判斷第一空白頁面中之使用者資料空間是否具有有效資料,以確認第一空白頁面為暫時區塊中第一個不具有使用者資料的頁面,其中當第一空白頁面中之使用者資料空間具有有效資料時,控制器更自第一空白頁面開始依照第一順序逐一讀取暫時區塊中之頁面的使用者資料空間,直到所讀取之使用者資料空間不具有有效資料為止,其中使用者資料空間不具有有效資料的頁面取代原第一空白頁面成為新的第一空白頁面。控制器更自第一空白頁面的上一個頁面或者新的第一空白頁面的上一個頁面開始,依照第二順序逐一讀取暫時區塊中之頁面之使用者資料空間,並且判斷所讀取之頁面之使用者空間是否具有有效資料,其中反序所讀取具有有效資料之使用者資料空間所相應之頁面,為暫時區塊中最後一個具有有效資料之頁面,並且為第X頁面。在每一頁面皆具有一使用者資料空間以及一備用空間,其中備用空間係用以儲存所相應之頁面的資料,暫時區塊中之每一頁面中的使用者資料空間係用以
儲存長度小於一既定長度之系統資料,並且第一暫時區塊表係儲存於第X頁面中之備用空間中。
本發明另提供一種資料維護方法,適用於具有一快閃記憶體之一資料儲存裝置,其中快閃記憶體包括複數區塊,並且每一區塊包括依照一第一順序排列之複數頁面。資料維護方法包括:當資料儲存裝置自一斷電事件回復時,判斷區塊中之一暫時區塊的第X個面是否可被成功讀取;以及當第X個頁面可被成功讀取時,將無效資料以及一暫時區塊表寫入第X+1頁面,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,暫時區塊表中紀錄了暫存區塊中所有頁面之資訊,並且X為一正整數。
在一實施例中,暫時區塊中的第X+1頁面不具有其他使用者資料。判斷第X個面是否可被成功讀取的步驟更包括:使用不同之複數讀取電壓,重複讀取第X個頁面以判斷第X頁面是否可被成功讀取,其中當使用了兩個以上之讀取電壓才成功讀取第X頁面時,資料維護方法更包括使用自第X頁面成功讀取之資料,對第X頁面再次進行寫入。
在另一實施例中,資料維護方法更包括:當第X頁面無法被成功讀取時,讀取暫時區塊中的第X-1頁面;當第X頁面無法被成功讀取時,捨棄暫時區塊,選取區塊中之另一者作為一新的暫時區塊,並且將暫時區塊之第1~X-1頁面中所儲存之資料寫入新的暫時區塊中。
又另一實施例中,每一頁面皆具有一使用者資料空間以及一備用空間,其中在尋找程序中,資料維護方法更包
括:自暫時區塊中之第1個頁面開始,依照第一順序讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止;在讀取到不具有有效資料的備用空間後,自所讀取到不具有有效資料之備用空間所相應之頁面的下一個頁面開始,依照一第二順序逐一讀取暫時區塊中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止,其中依照第二順序讀取到具有有效資料之備用空間所屬之頁面為一第一空白頁面,並且第二順序與第一順序相反;讀取第一空白頁面中之使用者資料空間,並且判斷第一空白頁面中之使用者資料空間是否具有有效資料,以確認第一空白頁面為暫時區塊中第一個不具有使用者資料的頁面;當第一空白頁面中之使用者資料空間具有有效資料時,自第一空白頁面開始依照第一順序逐一讀取暫時區塊中之頁面的使用者資料空間,直到所讀取之使用者資料空間不具有有效資料為止,其中使用者資料空間不具有有效資料的頁面取代原第一空白頁面成為新的第一空白頁面;自第一空白頁面的上一個頁面或者新的第一空白頁面的上一個頁面開始,依照第二順序逐一讀取暫時區塊中之頁面之使用者資料空間,並且判斷所讀取之頁面之使用者空間是否具有有效資料,其中反序所讀取具有有效資料之使用者資料空間所相應之頁面,為暫時區塊中最後一個具有有效資料之頁面,並且為第X頁面。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
P1~PN‧‧‧頁面
B0~BN‧‧‧區塊
DAA1~DAAN‧‧‧使用者資料空間
SPA1~SPAN‧‧‧備用空間
D1‧‧‧第一順序
D2‧‧‧第二順序
DA1~DA12‧‧‧資料
TP1~TP12‧‧‧暫時區塊表
SP1~SP12‧‧‧備份資料
S600~S610、S700~S710、S800~S806‧‧‧步驟
第1圖為本發明所提供之一電子系統之一種實施例的方塊
圖。
第2圖為本發明所提供之一快閃記憶體之一種實施例的方塊圖。
第3圖為本發明所提供之一暫時區塊之一種實施例的示意圖。
第4圖為本發明所提供之一暫時區塊之另一種實施例的示意圖。
第5圖為本發明所提供之一暫時區塊之另一種實施例的示意圖。
第6圖為本發明所提供之一資料維護方法之一種實施例的流程圖。
第7圖為本發明所提供之一目前區塊表整理方法之一種實施例的流程圖。
第8圖為本發明所提供之一尋找程序之一種實施例的流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機120所下達的命令操作。控制器160包括一
運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。快閃記憶體180包括複數區塊,每一區塊包括依照一第一順序D1排列之複數頁面P1~PN,其中每一頁面P1~PN具有一使用者資料空間DAA1~DAAN以及一備用空間(Spare Area)SPA1~SPAN,如第2圖所示。值得注意的是,快閃記憶體180以區塊為最小單位進行抹除,並且頁面為最小單位進行寫入。另外,備用空間SPA1~SPAN可在其所相應之頁面的前方或者後方,本發明不限於此。在其他實施例中,備用空間SPA1~SPAN亦可位於區塊B0~BN之前端或者後端。值得注意的是,在一實施例中,具有有效資料之每一頁面的備用空間中包括所處之頁面的資料,例如相應之邏輯位址、資料狀態等等。
在一實施例中,控制器160會自快閃記憶體180之區塊B0~BN中選取一個可使用之區塊以作為一目前區塊,並且在隨機存取記憶體166中建立一實體轉邏輯對應表以紀錄目前區塊之頁面之實體位址與資料之頁面的邏輯位址的對應關係。當目前區塊已經被使用者資料寫滿(無法再寫入新的資料時),控制器160將實體轉邏輯對應表整理至儲存於快閃記憶體180中之一資料鏈結關係表,並且將目前區塊定義為資料母區塊,重新自快閃記憶體180之區塊B0~BN中選取一個可使用之區塊以作為新的目前區塊,並且在隨機存取記憶體166中建立
新的一實體轉邏輯對應表以紀錄新的目前區塊之頁面之實體位址與資料之頁面的邏輯位址的對應關係。
然而,在被寫入快閃記憶體180之使用者資料中,有些類型的資料會重複地被寫入相同的邏輯位址,造成先前在同個邏輯位址的資料被無效。當區塊B0~BN中之資料母區塊具有太多無效資料時,會導致控制器160頻繁的執行整理工作,以釋放可用的記憶體空間。然而,頻繁的整理工作會降低資料儲存裝置140的效能。
有鑑於此,在一實施例中,由於系統資料通常會對同個邏輯位址重複地進行寫入,因此控制器160會將系統資料儲存於另一個區塊(暫時區塊)之中。另外,控制器160亦在隨機存取記憶體166中,建立一暫時區塊表,以記錄暫時區塊之頁面之實體位址與資料之頁面的邏輯位址的對應關係。值得注意的是,暫時區塊表中紀錄了暫存區塊中所有頁面之資訊。換言之,暫時區塊表中紀錄了暫存區塊中所有頁面位址對應關係。
在本實施例中,快閃記憶體180具有一暫時區塊以及一目前區塊,其中暫時區塊是用以儲存系統資料,目前區塊是用以儲存系統資料以外的資料。換言之,暫時區塊中之每一頁面中的使用者資料空間係用以儲存長度小於一既定長度之系統資料。值得注意的是,系統資料指的是主機120或者資料儲存裝置140為了操作上的需求而寫入快閃記憶體180之資料,並且系統資料也屬於使用者資料的一種。在一實施例中,系統資料皆小於既定長度。舉例而言,在一實施例中,系統資
料的長度皆小於12K位元組,但本發明不限於此。在其他實施例中,既定長度亦可為9K位元組、10K位元組、11K位元組、13K位元組、14K位元組等等。值得注意的是,在本實施例中,系統資料的長度皆小於一個頁面中使用者資料空間的長度。在一實施例中,每個頁面P0~PN中之使用者資料空間DDA0~DDAN的大小為16K位元組,但本發明不限於此。另外,控制器160可根據資料的長度以及資料所相應之邏輯位址來判斷所需寫入之資料是否屬於系統資料。
當發生一斷電事件時,隨機存取記憶體166中所儲存之實體轉邏輯對應表及暫時區塊表會因為電力消失而丟失。因此當發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160需要依序讀取暫時區塊以及目前區塊中之頁面以重新在隨機存取記憶體166中建立一實體轉邏輯對應表以及及暫時區塊表。然而,上述方法需要很長的時間一一對所有暫時區塊以及目前區塊中之頁面進行讀取,並且需要特定的演算法來辨別資料的寫入順序或者新舊。
有鑑於此,在一實施例中,由於系統資料的長度會小於使用者資料空間DDA1~DDAN,故控制器160在對暫時區塊中之頁面進行寫入的同時,會將目前的暫時區塊表也一起寫入該頁面中,以備份目前的暫時區塊表。因此,當資料儲存裝置140自斷電事件回復時,控制器160可直接讀取在斷電事件發生前暫時區塊中最後一個被寫入的頁面,即可獲得最新的暫時區塊表。
詳細而言,當該資料儲存裝置140自一斷電事件回
復時,控制器160執行一尋找程序以獲得暫時區塊中的第X個頁面,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。接著,控制器160判斷所獲得之第X個面是否可被成功讀取,其中當頁面中之使用者資料空間的資料可以藉由錯誤校正等方式讀取到正確的資料時,該頁面則為可以被成功讀取。當第X個頁面可被成功讀取時,控制器160將第X個頁面中所儲存之一第一暫時區塊表載入隨機存取記憶體166中,以作為目前之暫時區塊表。
在一實施例中,控制器160更藉由重複讀取的方式校正第X個頁面中之錯誤位元,以成功讀取第X個頁面中之資料。詳細而言,控制器160係使用不同之複數讀取電壓,重複讀取第X個頁面,以判斷第X個頁面是否可被成功讀取。在本實施例中,當控制器160使用了兩個以上之讀取電壓才成功讀取第X個頁面時,控制器160更用以對第X個頁面進行重複寫入,以穩定第X個頁面中之資料。換言之,當控制器160使用了兩個以上之讀取電壓才成功讀取第X個頁面時,控制器160使用自第X個頁面成功讀取之資料,對第X個頁面再次進行寫入。
在另一實施例中,在第一暫時區塊表載入隨機存取記憶體後,控制器160更用以根據目前暫時區塊之狀態更新第一暫時區塊表以產生一第二暫時區塊表,並且將第二暫時區塊表以及無效資料(dummy data)寫入暫時區塊中的第X+1個頁面。值得注意的是,在某些實施例中,控制器160僅會在第X+1個頁面之使用者資料空間中寫入目前最新的暫時區塊表(第二暫時區塊表),控制器160不會再將其他資料寫入第X+1個頁面
中。換言之,暫時區塊中的第X+1個頁面不具有其他使用者資料。
當第X個頁面無法被成功讀取時,控制器160則讀取暫時區塊中的第X-1個頁面,並且將第X-1個頁面中所儲存之第三暫時區塊表載入隨機存取記憶體166中,以作為目前的暫時區塊表。另外,當第X個頁面無法被成功讀取時,控制器160更用以選擇一個新的區塊取代原本之暫時區塊。詳細而言,當第X個頁面無法被成功讀取時,控制器160更捨棄目前之暫時區塊,選取區塊中之另一者作為一新的暫時區塊,並且將舊的暫時區塊之第1~X-1個頁面中所儲存之資料寫入新的暫時區塊中。
在一實施例之尋找程序中,控制器160係自暫時區塊中之第1個頁面開始,依照第一順序D1讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。在讀取到不具有有效資料的備用空間後,控制器160更自所讀取到不具有有效資料之備用空間所相應之頁面的下一個頁面開始,依照一第二順序D2逐一讀取暫時區塊中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止,其中控制器160依照第二順序D2讀取到具有有效資料之備用空間所屬之頁面為一第一空白頁面,並且第二順序D2與第一順序D1相反。在獲得了第一空白頁面後,控制器160更讀取第一空白頁面中之使用者資料空間,並且判斷第一空白頁面中之使用者資料空間是否具有有效資料,以確認第一空白頁面為暫時區塊中第一個不具有使用者資料的頁面。當第一空白頁面中之使
用者資料空間具有有效資料時,控制器160更自第一空白頁面開始依照第一順序D1逐一讀取暫時區塊中之頁面的使用者資料空間,直到所讀取之使用者資料空間不具有有效資料為止,其中所讀取到使用者資料空間不具有有效資料的頁面取代原第一空白頁面成為新的第一空白頁面。最後,控制器160自第一空白頁面的上一個頁面或者新的第一空白頁面的上一個頁面開始,依照第二順序D2逐一讀取暫時區塊中之頁面之使用者資料空間,並且判斷所讀取之頁面之使用者空間是否具有有效資料,以獲得暫時區塊中最後一個寫入之頁面,其中反序所讀取具有有效資料之使用者資料空間所相應之頁面,為暫時區塊中最後一個具有有效資料之頁面(第X個頁面)。
第3圖為本發明所提供之一暫時區塊之一種實施例的示意圖。在本實施例中,暫時區塊B2具有依照第一順序D1排列之17個頁面P1~P17,其中第3圖所示為斷電事件發生後,暫時區塊B2中頁面P1~P17的狀態。詳細而言,暫時區塊B2中之第1~12個頁面P1~P12中之使用者資料空間DAA1~DAA12皆已被寫入有效資料(使用者資料DA~D12以及暫時區塊表TP1~TP12),並且第1~12個頁面P1~P12中之備份空間SP1~SP12也皆已被寫入有效資料(備份資料SP1~SP12)。
在尋找程序中,控制器160先自暫時區塊B2中之第1個頁面P1開始,依照第一順序D1讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。在本實施例中,既定數量為3,但本發明不限於此。換言之,控制器160先讀取暫時區塊B2中之第1個頁面P1的備用
空間SPA1。由於備用空間SPA1已具有有效資料SP1,因此控制器160繼續依照第一順序D1的方向,讀取與第1個頁面P1間隔3個頁面之第5個頁面P5的備用空間SPA5。由於備用空間SPA5已具有有效資料SP5,因此控制器160繼續依照第一順序D1的方向,讀取與第5個頁面P5間隔3個頁面之第9個頁面P9、甚至再讀取第14個頁面P14的備用空間SPA14。由於頁面P14的備用空間SPA14不具有有效資料,故控制器160停止依照第一順序D1讀取暫時區塊B2中間隔一既定數量之頁面的備用空間。在獲得了不具有有效資料之備用空間SPA14的頁面P14後,控制器160更自第14個頁面P14開始,依照第二順序D2逐一讀取暫時區塊B2中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止。換言之,控制器160接著依照第二順序D2的方向,讀取在第14個頁面P14之前的第13個頁面P13的備份空間SPA13。由於備用空間SPA13不具有有效資料,因此控制器160繼續依照第二順序D2的方向,讀取在第13個頁面P13之前的第12個頁面P12的備份空間SPA12。由於備份空間SPA12具有有效資料SP12,因此控制器160停止依照第二順序D2逐一讀取暫時區塊B2中之頁面之備用空間。值得注意的是,到目前為止,控制器160假設第12個頁面P12為暫時區塊B2中第一個空白之頁面(第一空白頁面)。接著,控制器160更讀取第12個頁面P12(第一空白頁面)中之使用者資料空間DDA12,並且判斷第12個頁面P12中之使用者資料空間DDA12是否具有有效資料,以確認第12個頁面P12為暫時區塊B2中第一個不具有使用者資料的頁面。在本實施例中,由於第12個頁面P12之使用者資料空間DDA12具有
有效資料DA12以及TP12。因此,控制器160判斷第12個頁面P12不是暫時區塊B2中第一個不具有使用者資料的頁面。接著,控制器160更自第12個頁面P12的下一個頁面開始依照第一順序D1逐一讀取暫時區塊B2中之頁面的使用者資料空間,直到所讀取之使用者資料空間不具有有效資料為止。換言之,控制器160首先讀取第13個頁面P13的使用者資料空間DDA13。由於使用者資料空間DDA13不具有有效資料,因此控制器160將第13個頁面P13取代原第一空白頁面(第12頁面P12)成為新的第一空白頁面。換言之,控制器160確認第13個頁面P13為暫時區塊B2中第一個空白之頁面。最後,控制器160開始尋找暫時區塊B2中最後一個被寫入之頁面。換言之,控制器160自第13個頁面P13之上一個頁面(第12個頁面P12)開始,依照第二順序D2逐一讀取暫時區塊B2中之頁面之使用者資料空間。在本實施例中,第12個頁面P12之使用者資料空間DAA12具有有效資料DA12以及TP12。因此,控制器160獲得暫時區塊B2中最後一個被寫入之頁面為第12個頁面P12,並且第12個頁面P12為第X個頁面。
當控制器160判斷第12個頁面P12可被成功讀取時,控制器160將第12個頁面P12中所儲存之暫時區塊表TP12載入隨機存取記憶體166中,以作為目前之暫時區塊表。其中,當控制器160使用了兩個以上之讀取電壓才成功讀取第12個頁面P12時,控制器160將資料DA12以及TP12重複再寫入第12個頁面P12中,以穩定第12個頁面P12中之資料。另外,在暫時區塊表TP12載入隨機存取記憶體166以做為目前暫時區塊表後,
控制器160更用以根據目前暫時區塊之狀態更新目前暫時區塊表,並且將更新後之目前暫時區塊表以及無效資料(dummy data)寫入暫時區塊B2中的第13個頁面P13。
當控制器160判斷第12個頁面P12無法被成功讀取時,控制器160則讀取暫時區塊B2中的第11個頁面P11,並且將第11個頁面P11中所儲存之暫時區塊表TP11載入隨機存取記憶體166中,以作為目前的暫時區塊表。另外,控制器160更用以選擇一個新的區塊(例如,區塊B5)取代原本之暫時區塊B2。詳細而言,當第12個頁面P12無法被成功讀取時,控制器160更捨棄暫時區塊B2,選取區塊B5作為一新的暫時區塊,並且將暫時區塊B2之第1~11個頁面P1~P11中所儲存之資料DA1~DA11以及TP1~TP11寫入暫時區塊B5中。
第4圖為本發明所提供之一暫時區塊之一種實施例的示意圖。在本實施例中,暫時區塊B2具有依照第一順序D1排列之17個頁面P1~P17,其中第4圖所示為斷電事件發生後,暫時區塊B2中頁面P1~P17的狀態。詳細而言,暫時區塊B2中之第1~11個頁面P1~P12中之使用者資料空間DAA1~DAA11皆已被寫入有效資料(使用者資料DA~D11以及暫時區塊表TP1~TP11),並且第1~12個頁面P1~P12中之備份空間SP1~SP12也皆已被寫入有效資料(備份資料SP1~SP12)。
在尋找程序中,控制器160先自暫時區塊B2中之第1個頁面P1開始,依照第一順序D1讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。在本實施例中,既定數量為3,但本發明不限於此。
換言之,控制器160先讀取暫時區塊B2中之第1個頁面P1的備用空間SPA1。由於備用空間SPA1已具有有效資料SP1,因此控制器160繼續依照第一順序D1的方向,讀取與第1個頁面P1間隔3個頁面之第5個頁面P5的備用空間SPA5。由於備用空間SPA5已具有有效資料SP5,因此控制器160繼續依照第一順序D1的方向,讀取與第5個頁面P5間隔3個頁面之第9個頁面P9、甚至再讀取第14個頁面P14的備用空間SPA14。由於頁面P14的備用空間SPA14不具有有效資料,故控制器160停止依照第一順序D1讀取暫時區塊B2中間隔一既定數量之頁面的備用空間。在獲得了不具有有效資料之備用空間SPA14的頁面P14後,控制器160更自第14個頁面P14開始,依照第二順序D2逐一讀取暫時區塊B2中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止。換言之,控制器160接著依照第二順序D2的方向,讀取在第14個頁面P14之前的第13個頁面P13的備份空間SPA13。由於備用空間SPA13不具有有效資料,因此控制器160繼續依照第二順序D2的方向,讀取在第13個頁面P13之前的第12個頁面P12的備份空間SPA12。由於備份空間SPA12具有有效資料SP12,因此控制器160停止依照第二順序D2逐一讀取暫時區塊B2中之頁面之備用空間。值得注意的是,到目前為止,控制器160假設第12個頁面P12為暫時區塊B2中第一個空白之頁面(第一空白頁面)。接著,控制器160更讀取第12個頁面P12(第一空白頁面)中之使用者資料空間DDA12,並且判斷第12個頁面P12中之使用者資料空間DDA12是否具有有效資料,以確認第12個頁面P12為暫時區塊B2中第一個不具有使用者資料的頁面。在本
實施例中,由於第12個頁面P12之使用者資料空間DDA12不具有有效資料。因此,控制器160判斷第12個頁面P12為暫時區塊B2中第一個不具有使用者資料的頁面。最後,控制器160開始尋找暫時區塊B2中最後一個被寫入之頁面。換言之,控制器160自第12個頁面P12之上一個頁面(第11個頁面P11)開始,依照第二順序D2逐一讀取暫時區塊B2中之頁面之使用者資料空間。在本實施例中,第11個頁面P11之使用者資料空間DAA11具有有效資料DA11以及TP11。因此,控制器160獲得暫時區塊B2中最後一個被寫入之頁面為第11個頁面P11,並且第11個頁面P11為第X個頁面。
當控制器160判斷第11個頁面P11可被成功讀取時,控制器160將第11個頁面P11中所儲存之暫時區塊表TP11載入隨機存取記憶體166中,以作為目前之暫時區塊表。其中,當控制器160使用了兩個以上之讀取電壓才成功讀取第11個頁面P11時,控制器160將資料DA11以及TP11重複再寫入第11個頁面P11中,以穩定第11個頁面P11中之資料。另外,在暫時區塊表TP11載入隨機存取記憶體166以做為目前暫時區塊表後,控制器160更用以根據目前暫時區塊之狀態更新目前暫時區塊表,並且將更新後之目前暫時區塊表以及無效資料(dummy data)寫入暫時區塊B2中的第12個頁面P12之使用者資料空間DAA12中,並且更新第12個頁面P12之備份資料SP12。
當控制器160判斷第11個頁面P11無法被成功讀取時,控制器160則讀取暫時區塊B2中的第10個頁面P10,並且將第10個頁面P10中所儲存之暫時區塊表TP10載入隨機存取記憶
體166中,以作為目前的暫時區塊表。另外,控制器160更用以選擇一個新的區塊(例如,區塊B5)取代原本之暫時區塊B2。詳細而言,當第11個頁面P11無法被成功讀取時,控制器160更捨棄暫時區塊B2,選取區塊B5作為一新的暫時區塊,並且將暫時區塊B2之第1~10個頁面P1~P10中所儲存之資料DA1~DA10以及TP1~TP10寫入暫時區塊B5中。
第5圖為本發明所提供之一暫時區塊之一種實施例的示意圖。在本實施例中,暫時區塊B2具有依照第一順序D1排列之17個頁面P1~P17,其中第3圖所示為斷電事件發生後,暫時區塊B2中頁面P1~P17的狀態。詳細而言,暫時區塊B2中之第1~12個頁面P1~P12中之使用者資料空間DAA1~DAA12皆已被寫入有效資料(使用者資料DA~D12以及暫時區塊表TP1~TP12),並且第1~11個頁面P1~P11中之備份空間SP1~SP11也皆已被寫入有效資料(備份資料SP1~SP11)。
在尋找程序中,控制器160先自暫時區塊B2中之第1個頁面P1開始,依照第一順序D1讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。在本實施例中,既定數量為3,但本發明不限於此。換言之,控制器160先讀取暫時區塊B2中之第1個頁面P1的備用空間SPA1。由於備用空間SPA1已具有有效資料SP1,因此控制器160繼續依照第一順序D1的方向,讀取與第1個頁面P1間隔3個頁面之第5個頁面P5的備用空間SPA5。由於備用空間SPA5已具有有效資料SP5,因此控制器160繼續依照第一順序D1的方向,讀取與第5個頁面P5間隔3個頁面之第9個頁面P9、甚至再
讀取第14個頁面P14的備用空間SPA14。由於頁面P14的備用空間SPA14不具有有效資料,故控制器160停止依照第一順序D1讀取暫時區塊B2中間隔一既定數量之頁面的備用空間。在獲得了不具有有效資料之備用空間SPA14的頁面P14後,控制器160更自第14個頁面P14開始,依照第二順序D2逐一讀取暫時區塊B2中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止。換言之,控制器160接著依照第二順序D2的方向,讀取在第14個頁面P14之前的第13個頁面P13的備份空間SPA13。由於備用空間SPA13不具有有效資料,因此控制器160繼續依照第二順序D2的方向,讀取在第13個頁面P13之前的第12個頁面P12的備份空間SPA12。由於備份空間SPA12也不具有有效資料SP12,因此控制器160繼續依照第二順序D2的方向,讀取在第12個頁面P12之前的第11個頁面P11的備份空間SPA11。由於備份空間SPA11具有有效資料SP11,因此控制器160停止依照第二順序D2逐一讀取暫時區塊B2中之頁面之備用空間。值得注意的是,到目前為止,控制器160假設第11個頁面P11為暫時區塊B2中第一個空白之頁面(第一空白頁面)。接著,控制器160更讀取第11個頁面P11(第一空白頁面)中之使用者資料空間DDA11,並且判斷第11個頁面P11中之使用者資料空間DDA11是否具有有效資料,以確認第11個頁面P11為暫時區塊B1中第一個不具有使用者資料的頁面。在本實施例中,由於第11個頁面P11之使用者資料空間DDA11具有有效資料DA11以及TP11。因此,控制器160判斷第11個頁面P11不是暫時區塊B2中第一個不具有使用者資料的頁面。接著,控制器160更自第
11個頁面P11的下一個頁面開始依照第一順序D1逐一讀取暫時區塊B2中之頁面的使用者資料空間,直到所讀取之使用者資料空間不具有有效資料為止。換言之,控制器160首先讀取第12個頁面P12的使用者資料空間DDA12。由於使用者資料空間DDA12具有有效資料DA12以及TP12,因此控制器160繼續讀取第13個頁面P13的使用者資料空間DDA13,由於使用者資料空間DDA13不具有有效資料,因此控制器160將第13個頁面P13取代原第一空白頁面(第11頁面P11)成為新的第一空白頁面。換言之,控制器160確認第13個頁面P13為暫時區塊B2中第一個空白之頁面。最後,控制器160開始尋找暫時區塊B2中最後一個被寫入之頁面。換言之,控制器160自第13個頁面P13之上一個頁面(第12個頁面P12)開始,依照第二順序D2逐一讀取暫時區塊B2中之頁面之使用者資料空間。在本實施例中,第12個頁面P12之使用者資料空間DAA12具有有效資料DA12以及TP12。因此,控制器160獲得暫時區塊B2中最後一個被寫入之頁面為第12個頁面P12,並且第12個頁面P12為第X個頁面。
第6圖為本發明所提供之一資料維護方法之一種實施例的流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,用以在資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後重建資料狀態。流程開始於步驟S600。
在步驟S600中,當資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160執行一尋找程序以獲得暫時區塊中的第X個頁面,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。
接著,在步驟S602中,控制器160判斷所獲得之第X個面是否可被成功讀取,其中當頁面中之使用者資料空間的資料可以藉由錯誤校正等方式讀取到正確的資料時,該頁面則為可以被成功讀取。當第X個面可被成功讀取時,流程進行至步驟S604;否則,流程進行至步驟S608。
在步驟S604中,控制器160將第X個頁面中所儲存之一第一暫時區塊表載入隨機存取記憶體166中,以作為目前之暫時區塊表。
接著,在步驟S606中,控制器160更用以根據目前暫時區塊之狀態更新第一暫時區塊表以產生一第二暫時區塊表,並且將第二暫時區塊表以及無效資料(dummy data)寫入暫時區塊中的第X+1個頁面。值得注意的是,在某些實施例中,控制器160僅會在第X+1個頁面之使用者資料空間中寫入目前最新的暫時區塊表(第二暫時區塊表),控制器160不會再將其他資料寫入第X+1個頁面中。換言之,暫時區塊中的第X+1個頁面不具有其他使用者資料。流程結束於步驟S606,控制器160繼續使用原本之暫時區塊儲存系統資料。
在步驟S608中,控制器160讀取暫時區塊中的第X-1個頁面,並且將第X-1個頁面中所儲存之第三暫時區塊表載入隨機存取記憶體166中,以作為目前的暫時區塊表。
接著,在步驟S610中,控制器160選擇一個新的區塊取代原本之暫時區塊。詳細而言,當第X個頁面無法被成功讀取時,控制器160更捨棄目前之暫時區塊,選取區塊中之另一者作為一新的暫時區塊,並且將舊的暫時區塊之第1~X-1個
頁面中所儲存之資料寫入新的暫時區塊中。流程結束於步驟S610。
第7圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,用以在資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後重建資料狀態。流程開始於步驟S700,其中步驟S704~S710相似於第6圖之步驟S604~S610,在此不再贅述。
在步驟S700中,當資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160執行一尋找程序以獲得暫時區塊中的第X個頁面,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。
接著,在步驟S701中,控制器160使用一初級讀取電壓對第X個頁面進行讀取,以判斷第X個面是否可被成功讀取。當第X個面可被成功讀取時,流程進行至步驟S704;否則,流程進行至步驟S703。
在步驟S702中,控制器160使用不同階級之複數讀取電壓對第X個頁面進行讀取,以判斷第X個面是否可被成功讀取。當第X個面可被成功讀取時,流程進行至步驟S703;否則,流程進行至步驟S708。
在步驟S703中,控制器160更用以對第X個頁面進行重複寫入,以穩定第X個頁面中之資料。換言之,當控制器160使用了兩個以上之讀取電壓才成功讀取第X個頁面時,控制器160使用自第X個頁面成功讀取之資料,對第X個頁面再次進
行寫入。
第8圖為本發明所提供之一尋找程序之一種實施例的流程圖。尋找程序適用於第1圖所示之資料儲存裝置140、第6圖中之步驟S600以及第7圖中之步驟S700,用以在資料儲存裝置140自斷電事件回復後找到最後一個被寫入之頁面。流程開始於步驟S800。
在步驟S800中,控制器160係自暫時區塊中之第1個頁面開始,依照第一順序D1讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。
接著,在步驟S802中,控制器160自所讀取到不具有有效資料之備用空間所相應之頁面的下一個頁面開始,依照一第二順序D2逐一讀取暫時區塊中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止,其中控制器160依照第二順序D2之方向讀取到具有有效資料之備用空間所屬之頁面為目前控制器160所假設之第一空白頁面,並且第二順序D2與第一順序D1相反。
接著,在步驟S804中,控制器160自假設之第一空白頁面開始,依照第一順序D1逐一讀取暫時區塊中之頁面的使用者資料空間,以尋找暫時區塊中第一個不具有使用者資料的頁面。
接著,控制器160自暫時區塊中第一個不具有使用者資料的頁面的上一個頁面開始,依照第二順序D2逐一讀取暫時區塊中之頁面之使用者資料空間,並且判斷所讀取之頁面之
使用者空間是否具有有效資料,以獲得暫時區塊中最後一個寫入之頁面,其中反序所讀取具有有效資料之使用者資料空間所相應之頁面,為暫時區塊中最後一個具有有效資料之頁面(第X個頁面)。
本發明所提供之資料儲存裝置140以及資料維護方法可獨立將系統資料儲存在暫時區塊中,並且將暫時區塊表備份在暫時區塊中之每個頁面中。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
Claims (22)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數區塊,每一該等區塊包括依照一第一順序排列之複數頁面;以及一控制器,當該資料儲存裝置自一斷電事件回復時,判斷該等區塊中之一暫時區塊的第X頁面是否可被成功讀取,並且當該第X頁面可被成功讀取時,將該暫時區塊的一第X+1頁面儲存無效資料(dummy data)及一暫時區塊表,其中該第X頁面是該暫存區塊中在該斷電事件前最後一個被寫入之頁面,該暫時區塊表中紀錄了該暫存區塊中所有該等頁面之資訊,並且X為一正整數。
- 根據申請專利範圍第1項之資料儲存裝置,其中在該暫時區塊中之每一該等頁面係用以儲存長度小於一既定長度之系統資料。
- 根據申請專利範圍第1項之資料儲存裝置,其中該暫時區塊中的該第X+1頁面不具有其他使用者資料。
- 根據申請專利範圍第1項之資料儲存裝置,其中該控制器係使用不同之複數讀取電壓,重複讀取該第X頁面以判斷該第X頁面是否可被成功讀取,其中當該控制器使用了兩個以上之該等讀取電壓才成功讀取該第X頁面時,該控制器更使用自該第X頁面成功讀取之資料,對該第X頁面再次進行寫入。
- 根據申請專利範圍第1項之資料儲存裝置,其中當該第X頁面無法被成功讀取時,該控制器則讀取該暫時區塊中的第 X-1頁面。
- 根據申請專利範圍第5項之資料儲存裝置,其中當該第X頁面無法被成功讀取時,該控制器更捨棄該暫時區塊,選取該等區塊中之另一者作為一新的暫時區塊,並且將該暫時區塊之第1~X-1頁面中所儲存之資料寫入該新的暫時區塊中。
- 根據申請專利範圍第1項之資料儲存裝置,其中每一該等頁面皆具有一使用者資料空間以及一備用空間,並且該控制器係在一尋找程序中獲得該暫時區塊的第X頁,其中在該尋找程序中,該控制器自該暫時區塊中之第1個頁面開始,依照該第一順序讀取該暫時區塊中間隔一既定數量之該等頁面的該等備用空間,直到所讀取之該備用空間不具有有效資料為止。
- 根據申請專利範圍第7項之資料儲存裝置,其中在讀取到不具有有效資料的該備用空間後,該控制器更自所讀取到不具有有效資料之該備用空間所相應之該頁面的下一個開始,依照一第二順序逐一讀取該暫時區塊中之該等頁面之該等備用空間,直到所讀取之該備用空間具有有效資料為止,其中該控制器依照該第二順序讀取到具有有效資料之該備用空間所屬之該頁面為一第一空白頁面,並且該第二順序與該第一順序相反。
- 根據申請專利範圍第8項之資料儲存裝置,其中該控制器更讀取該第一空白頁面中之該使用者資料空間,並且判斷該第一空白頁面中之該使用者資料空間是否具有有效資料, 以確認該第一空白頁面為該暫時區塊中第一個不具有使用者資料的頁面,其中當該第一空白頁面中之該使用者資料空間具有有效資料時,該控制器更自該第一空白頁面開始依照該第一順序逐一讀取該暫時區塊中之該等頁面的該等使用者資料空間,直到所讀取之該使用者資料空間不具有有效資料為止,其中該使用者資料空間不具有有效資料的該頁面取代原該第一空白頁面成為新的第一空白頁面。
- 根據申請專利範圍第9項之資料儲存裝置,其中該控制器更自該第一空白頁面的上一個頁面或者該新的第一空白頁面的上一個頁面開始,依照該第二順序逐一讀取該暫時區塊中之該等頁面之該等使用者資料空間,並且判斷所讀取之該頁面之該使用者空間是否具有有效資料,其中反序所讀取具有有效資料之該使用者資料空間所相應之該頁面,為該暫時區塊中最後一個具有有效資料之該頁面,並且為該第X頁面。
- 根據申請專利範圍第1項之資料儲存裝置,其中在每一頁面皆具有一使用者資料空間以及一備用空間,其中該等備用空間係用以儲存所相應之頁面的資料,該暫時區塊中之每一該等頁面中的該等使用者資料空間係用以儲存長度小於一既定長度之系統資料,並且該暫時區塊表係儲存於該第X+1頁面中之該備用空間中。
- 一種資料維護方法,適用於具有一快閃記憶體之一資料儲存裝置,其中該快閃記憶體包括複數區塊,並且每一該等區塊包括依照一第一順序排列之複數頁面,該資料維護方 法包括:當該資料儲存裝置自一斷電事件回復時,判斷該等區塊中之一暫時區塊的一第X面是否可被成功讀取;以及當該第X頁面可被成功讀取時,將該暫時區塊的一第X+1頁面儲存無效資料(dummy data)及一暫時區塊表,其中該第X頁面是該暫存區塊中在該斷電事件前最後一個被寫入之頁面,該暫時區塊表中紀錄了該暫存區塊中所有該等頁面之資訊,並且X為一正整數。
- 根據申請專利範圍第12項之資料維護方法,其中在該暫時區塊中之每一該等頁面係用以儲存長度小於一既定長度之系統資料。
- 根據申請專利範圍第12項之資料維護方法,其中該暫時區塊中的該第X+1頁面不具有其他使用者資料。
- 根據申請專利範圍第12項之資料維護方法,其中該判斷該第X面是否可被成功讀取的步驟更包括:使用不同之複數讀取電壓,重複讀取該第X頁面以判斷該第X頁面是否可被成功讀取,其中當使用了兩個以上之該等讀取電壓才成功讀取該第X頁面時,資料維護方法更包括使用自該第X頁面成功讀取之資料,對該第X頁面再次進行寫入。
- 根據申請專利範圍第12項之資料維護方法,更包括:當該第X頁面無法被成功讀取時,讀取該暫時區塊中的第X-1頁面。
- 根據申請專利範圍第16項之資料維護方法,更包括: 當該第X頁面無法被成功讀取時,捨棄該暫時區塊,選取該等區塊中之另一者作為一新的暫時區塊,並且將該暫時區塊之第1~X-1頁面中所儲存之資料寫入該新的暫時區塊中。
- 根據申請專利範圍第12項之資料維護方法,其中每一該等頁面皆具有一使用者資料空間以及一備用空間,並且該資料維護方法更包括一尋找程序用以獲得該暫時區塊中之該第X頁面,其中在該尋找程序更包括:自該暫時區塊中之第1個頁面開始,依照該第一順序讀取該暫時區塊中間隔一既定數量之該等頁面的該等備用空間,直到所讀取之該備用空間不具有有效資料為止。
- 根據申請專利範圍第18項之資料維護方法,更包括:在讀取到不具有有效資料的該備用空間後,自所讀取到不具有有效資料之該備用空間所相應之該頁面的下一個頁面開始,依照一第二順序逐一讀取該暫時區塊中之該等頁面之該等備用空間,直到所讀取之該備用空間具有有效資料為止,其中依照第二順序讀取到具有有效資料之該備用空間所屬之該頁面為一第一空白頁面,並且該第二順序與該第一順序相反。
- 根據申請專利範圍第19項之資料維護方法,更包括:讀取該第一空白頁面中之該使用者資料空間,並且判斷該第一空白頁面中之該使用者資料空間是否具有有效資料,以確認該第一空白頁面為該暫時區塊中第一個不具有使用者資料的頁面;以及 當該第一空白頁面中之該使用者資料空間具有有效資料時,自該第一空白頁面開始依照該第一順序逐一讀取該暫時區塊中之該等頁面的該等使用者資料空間,直到所讀取之該使用者資料空間不具有有效資料為止,其中該使用者資料空間不具有有效資料的該頁面取代原該第一空白頁面成為新的第一空白頁面。
- 根據申請專利範圍第20項之資料維護方法,更包括:自該第一空白頁面的上一個頁面或者該新的第一空白頁面的上一個頁面開始,依照該第二順序逐一讀取該暫時區塊中之該等頁面之該等使用者資料空間,並且判斷所讀取之該頁面之該使用者空間是否具有有效資料,其中反序所讀取具有有效資料之該使用者資料空間所相應之該頁面,為該暫時區塊中最後一個具有有效資料之該頁面,並且為該第X頁面。
- 根據申請專利範圍第20項之資料維護方法,其中在每一頁面皆具有一使用者資料空間以及一備用空間,其中該等備用空間係用以儲存所相應之頁面的資料,該暫時區塊中之每一該等頁面中的該等使用者資料空間係用以儲存長度小於一既定長度之系統資料,並且該暫時區塊表係儲存於該第X+1頁面中之該備用空間中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141371A TWI606388B (zh) | 2016-12-14 | 2016-12-14 | 資料儲存裝置及其資料維護方法 |
CN201710181790.1A CN108228385B (zh) | 2016-12-14 | 2017-03-24 | 数据储存装置及其数据维护方法 |
US15/662,836 US9996462B1 (en) | 2016-12-14 | 2017-07-28 | Data storage device and data maintenance method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141371A TWI606388B (zh) | 2016-12-14 | 2016-12-14 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI606388B true TWI606388B (zh) | 2017-11-21 |
TW201821971A TW201821971A (zh) | 2018-06-16 |
Family
ID=61023248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105141371A TWI606388B (zh) | 2016-12-14 | 2016-12-14 | 資料儲存裝置及其資料維護方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9996462B1 (zh) |
CN (1) | CN108228385B (zh) |
TW (1) | TWI606388B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI697780B (zh) * | 2019-07-23 | 2020-07-01 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
US10871924B1 (en) | 2019-07-23 | 2020-12-22 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
US11347592B2 (en) | 2019-07-23 | 2022-05-31 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170329684A1 (en) * | 2016-05-13 | 2017-11-16 | Synology Incorporated | Method and apparatus for performing data recovery in redundant storage system |
JP2019117979A (ja) * | 2017-12-26 | 2019-07-18 | ファナック株式会社 | 制御装置 |
KR20190100782A (ko) * | 2018-02-21 | 2019-08-29 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
TWI655576B (zh) * | 2018-06-20 | 2019-04-01 | 深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR102637478B1 (ko) | 2018-12-05 | 2024-02-15 | 삼성전자주식회사 | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 |
KR20200113992A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 |
KR102691776B1 (ko) * | 2019-10-01 | 2024-08-06 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치 |
CN111104061A (zh) * | 2019-11-21 | 2020-05-05 | 深圳忆联信息系统有限公司 | 避免固体存储设备因异常掉电导致数据丢失的方法、装置、计算机设备及存储介质 |
TWI828391B (zh) * | 2022-10-27 | 2024-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI298836B (en) * | 2005-10-12 | 2008-07-11 | Sunplus Technology Co Ltd | Apparatus for controlling flash memory and method thereof |
JP4358249B2 (ja) * | 2007-03-19 | 2009-11-04 | 株式会社東芝 | 映像蓄積装置とその制御方法 |
US9123422B2 (en) * | 2012-07-02 | 2015-09-01 | 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 |
TWI385516B (zh) * | 2008-08-12 | 2013-02-11 | Phison Electronics Corp | 快閃記憶體儲存系統及其資料寫入方法 |
CN106155942B (zh) * | 2015-03-27 | 2019-05-31 | 漳州灿坤实业有限公司 | 断电记忆装置及其系统 |
TWI571742B (zh) * | 2015-10-07 | 2017-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置及資料維護方法 |
CN106708754B (zh) * | 2015-11-13 | 2020-04-07 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
TWI604373B (zh) * | 2016-12-13 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
-
2016
- 2016-12-14 TW TW105141371A patent/TWI606388B/zh active
-
2017
- 2017-03-24 CN CN201710181790.1A patent/CN108228385B/zh active Active
- 2017-07-28 US US15/662,836 patent/US9996462B1/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI697780B (zh) * | 2019-07-23 | 2020-07-01 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
US10871924B1 (en) | 2019-07-23 | 2020-12-22 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
US11347592B2 (en) | 2019-07-23 | 2022-05-31 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
Also Published As
Publication number | Publication date |
---|---|
US20180165191A1 (en) | 2018-06-14 |
CN108228385A (zh) | 2018-06-29 |
CN108228385B (zh) | 2020-06-02 |
US9996462B1 (en) | 2018-06-12 |
TW201821971A (zh) | 2018-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI606388B (zh) | 資料儲存裝置及其資料維護方法 | |
TWI604308B (zh) | 資料儲存裝置及其資料維護方法 | |
TWI607312B (zh) | 資料儲存裝置及其資料寫入方法 | |
US8046528B2 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
TWI646535B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
TWI631456B (zh) | 資料儲存裝置及資料維護方法 | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
TWI604373B (zh) | 資料儲存裝置及其資料維護方法 | |
TWI421683B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI720246B (zh) | 資料儲存裝置以及其操作方法 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TW201217968A (en) | Data writing method, memory controller and memory storage apparatus | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201719373A (zh) | 資料儲存裝置及其資料維護方法 | |
TW201643722A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI656475B (zh) | 具資料儲存裝置的電子系統 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI640868B (zh) | 資料儲存裝置及其資料寫入方法 | |
WO2019072212A1 (zh) | 日志处理方法及装置、服务器 | |
US10210939B1 (en) | Solid state storage device and data management method | |
JP2024134441A (ja) | メモリシステム及び不揮発性メモリを制御する方法 | |
TW201837717A (zh) | 記憶體系統、及其讀取方法與寫入方法 |