TWI604373B - 資料儲存裝置及其資料維護方法 - Google Patents
資料儲存裝置及其資料維護方法 Download PDFInfo
- Publication number
- TWI604373B TWI604373B TW105141178A TW105141178A TWI604373B TW I604373 B TWI604373 B TW I604373B TW 105141178 A TW105141178 A TW 105141178A TW 105141178 A TW105141178 A TW 105141178A TW I604373 B TWI604373 B TW I604373B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- page
- temporary block
- block
- space
- 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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- 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
-
- 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/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
- 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
-
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Description
本發明係關於一種資料儲存裝置,特別係關於可自斷電事件回復資料狀態之資料儲存裝置。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks),其中浮置閘極電晶體可用以構成快閃記憶體。浮置閘極電晶體中之浮置閘極,可捕捉的電荷以儲存資料。另外,快閃記憶體中之實體頁面與主機裝置所指定之邏輯頁面的轉換關係需要一個表來紀錄。當非預期之斷電事件發生時,儲存於隨機記憶體中之表會丟失。如何有效重建丟失的表是一個重要的課題。
本發明所提供之資料儲存裝置以及資料維護方法可獨立將系統資料儲存在暫時區塊中,並且藉由暫時區塊表區隔相同邏輯位址之資料何者為有效資料。
本發明提供一種資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括複數區塊,並且區塊中包括一目前區塊以及一暫時區塊。控制器將相應於一第一邏輯位址之一第一資料寫入目前區塊,判斷暫時區塊中是否具有同樣相應於第一邏輯位址之一第二資料,其中當暫時區塊中具有同樣相應於第一邏輯位址之第二資料時,控制器更將一第一暫時區塊表寫入暫時區塊中。
在一實施例中,第一資料係為一主機之一寫入命令所指示的資料,或者第一資料為暫時區塊中之冷資料。第一暫時區塊表中紀錄了暫存區塊中所有頁面之資訊。
又一實施例中,在控制器在儲存於一隨機存取記憶體中之一目前暫時區塊表中,解除第二資料與邏輯位址的關係,以更新目前暫時區塊表。控制器系將更新後之目前暫時區塊表作為第一暫時區塊表以寫入暫時區塊之頁面中之一特定頁面,其中特定頁面不具有使用者資料。
又另一實施例中,每一區塊包括依照一第一順序排列之複數頁面。控制器用以在資料儲存裝置自一斷電事件回復後,根據暫時區塊中之第X個頁面所儲存之一第二暫時區塊表,判斷暫時區塊與目前區塊中具有相同邏輯位址之資料何者為有效資料,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。另外,在暫時區塊中之每一頁面係用以儲存長度小於一既定長度之系統資料,除了系統資料外之其他資料皆係寫入目前區塊中,並且每一頁面皆具有一使用者資料空間以及一備用空間。在資料儲存裝置自斷
電事件回復後,控制器係用以使用一尋找程序來獲得第X個頁面,其中在尋找程序中,控制器自暫時區塊中之第1個頁面開始,依照第一順序讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。在讀取到不具有有效資料的備用空間後,控制器更自所讀取到不具有有效資料之備用空間所相應之頁面的下一個開始,依照一第二順序逐一讀取暫時區塊中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止,其中控制器依照第二順序讀取到具有有效資料之備用空間所屬之頁面為一第一空白頁面,並且第二順序與第一順序相反。控制器更讀取第一空白頁面中之使用者資料空間,並且判斷第一空白頁面中之使用者資料空間是否具有有效資料,以確認第一空白頁面為暫時區塊中第一個不具有使用者資料的頁面,其中當第一空白頁面中之使用者資料空間具有有效資料時,控制器更自第一空白頁面開始依照第一順序逐一讀取暫時區塊中之頁面的使用者資料空間,直到所讀取之使用者資料空間不具有有效資料為止,其中使用者資料空間不具有有效資料的頁面取代原第一空白頁面成為新的第一空白頁面。控制器更自第一空白頁面的上一個頁面或者新的第一空白頁面的上一個頁面開始,依照第二順序逐一讀取暫時區塊中之頁面之使用者資料空間,並且判斷所讀取之頁面之使用者空間是否具有有效資料,其中反序所讀取具有有效資料之使用者資料空間所相應之頁面,為暫時區塊中最後一個具有有效資料之頁面,並且為第X個頁面。
本發明另提供一種資料維護方法,適用於具有一
快閃記憶體之一資料儲存裝置,其中快閃記憶體包括複數區塊,並且區塊中包括一目前區塊以及一暫時區塊。資料維護方法包括:將相應於一第一邏輯位址之一第一資料寫入目前區塊;判斷暫時區塊中是否具有同樣相應於第一邏輯位址之一第二資料;以及當暫時區塊中具有同樣相應於第一邏輯位址之第二資料時,將一第一暫時區塊表寫入暫時區塊中。
在一實施例中,在儲存於一隨機存取記憶體中之一目前暫時區塊表中,解除第二資料與邏輯位址的關係,以更新目前暫時區塊表。將第一暫時區塊表寫入暫時區塊中的步驟更包括將更新後之目前暫時區塊表作為第一暫時區塊表,以寫入暫時區塊之頁面中之一特定頁面,其中特定頁面不具有使用者資料。
另一實施例中,每一區塊包括依照一第一順序排列之複數頁面。資料維護方法更包括在資料儲存裝置自一斷電事件回復後,根據暫時區塊中之第X個頁面所儲存之一第二暫時區塊表,判斷暫時區塊與目前區塊中具有相同邏輯位址之資料何者為有效資料,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數,並且第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。在暫時區塊中之每一頁面係用以儲存長度小於一既定長度之系統資料,並且除了系統資料外之其他資料皆係寫入目前區塊中。另外,每一頁面皆具有一使用者資料空間以及一備用空間,並且資料維護方法更包括在資料儲存裝置自斷電事件回復後,使用一尋找程序來獲得第X個頁面。
尋找程序包括:自暫時區塊中之第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~S604、S700~S702、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可根據資料的長度以及資料所相應之邏輯位址來判斷所需寫入之資料是否屬於系統資料。
在某些實施例中,目前區塊以及暫時區塊中之資料會具有重複之邏輯位址。舉例而言,當暫時區塊塊被填滿時,控制器160會將暫時區塊中之資料移到目前區塊中。換言之,控制器160會將暫時區塊中之資料無效,並且把資料寫入目前區塊中。值得注意的是,在一實施例中,控制器160是將暫時區塊中之冷資料搬移到目前區塊中,其中冷資料為暫時區塊中較少(或者最少)被讀取或者更新的資料。在控制器160將冷資料寫入目前區塊之一頁面後,控制器160接著修改在隨機存取記憶體166中之目前的暫時區塊表,以解除原儲存冷資料之頁面與邏輯位址的映射關係。換言之,控制器160會將暫時區塊中之冷資料無效掉,並且把冷資料寫入目前區塊中,其中目前區塊中之冷資料為有效資料(最新的資料)。然而,雖然邏輯位址與原儲存冷資料之頁面的映射關係在暫時區塊表中被抹除,但冷資料以及其所相應之邏輯位址還是儲存在暫時區塊之原頁面中。另外,冷資料以及其所相應之邏輯位址也同時儲存在目前區塊之一頁面中。換言之,控制器160需要藉由隨機存取記憶體166中之目前的暫時區塊表,才能判斷目前區塊以及暫時區塊中之資料何者為有效資料。在另一實施例中,當主機120之寫入命令指示之資料的邏輯位址與暫時區塊中任一頁面
所儲存之資料的邏輯位址相同,並且寫入命令所指示之資料並非系統資料時,控制器160會將資料寫入目前區塊後,再將暫時區塊中之資料無效。詳細而言,在控制器160將資料寫入目前區塊之一頁面後,控制器160接著修改在隨機存取記憶體166中之目前的暫時區塊表,以解除原儲存資料之頁面與重複之邏輯位址的映射關係,使得相應於該邏輯位址之頁面僅有最新寫入目前區塊之資料為有效資料。同樣地,雖然邏輯位址與原儲存被無效之資料之頁面的映射關係在暫時區塊表中被抹除,但被無效之資料以及其所相應之邏輯位址還是儲存在暫時區塊之原頁面中。另外,新的資料以及其所相應之邏輯位址也同時儲存在目前區塊之一頁面中。因此,控制器160也是需要藉由隨機存取記憶體166中之目前的暫時區塊表,才能判斷目前區塊以及暫時區塊中之資料何者為有效資料。
當發生一斷電事件時,隨機存取記憶體166中所儲存之實體轉邏輯對應表及暫時區塊表會因為電力消失而丟失。因此當發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160需要依序讀取暫時區塊以及目前區塊中之頁面以重新在隨機存取記憶體166中建立一實體轉邏輯對應表以及及暫時區塊表。然而,上述方法需要很長的時間一一對所有暫時區塊以及目前區塊中之頁面進行讀取,並且需要特定的演算法來辨別資料的寫入順序或者新舊。
有鑑於此,在一實施例中,由於系統資料的長度會小於使用者資料空間DDA1~DDAN,故控制器160在對暫時區塊中之頁面進行寫入的同時,會將目前的暫時區塊表也一起寫
入該頁面中,以備份目前的暫時區塊表。另外,當控制器160將相應於一第一邏輯位址之一第一資料寫入目前區塊後,會判斷暫時區塊中是否具有同樣相應於第一邏輯位址之一第二資料。當暫時區塊中具有同樣相應於第一邏輯位址之第二資料時,控制器160也會將最新的暫時區塊表寫入暫時區塊中。詳細而言,在一實施例中,在將第一資料寫入目前區塊後,控制器160在儲存於一隨機存取記憶體166中之目前暫時區塊表中,解除第二資料與邏輯位址的關係,以更新目前暫時區塊表。接著,控制器160係將更新後之目前暫時區塊表寫入暫時區塊之一頁面中之一特定頁面。值得注意的是,被寫入第一暫時區塊表之特定頁為暫時區塊中空白頁面中之任一者,並且特定頁面不會被寫入其他使用者資料。舉例而言,特定頁面為暫時區塊中最後一個被寫入之頁面的下一個頁面。另外,如上所述,第一資料可能為為一主機120之一寫入命令所指示的資料,或者第一資料為暫時區塊中之冷資料。
因此,當資料儲存裝置140自斷電事件回復時,控制器160可直接讀取在斷電事件發生前暫時區塊中最後一個被寫入的頁面,即可獲得最新的暫時區塊表,並且藉由最新的暫時區塊表來判斷暫時區塊與目前區塊中具有相同邏輯位址之資料何者為有效資料。
詳細而言,當該資料儲存裝置140自一斷電事件回復時,控制器160執行一尋找程序以獲得暫時區塊中的第X個頁面,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。接著,控制器160將第X個頁面
中所儲存之一第二暫時區塊表載入隨機存取記憶體166中,以作為目前之暫時區塊表。換言之,控制器160可根據暫時區塊中之第X個頁面所儲存之第二暫時區塊表,判斷暫時區塊與目前區塊中具有相同邏輯位址之資料何者為有效資料。
在一實施例之尋找程序中,控制器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個頁面之第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更用以根據目前暫時區塊之狀態更新目前暫時區塊表,並且將更新後之目前暫時區塊表寫入暫時區塊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個頁面之第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更用以根據目前暫時區塊之狀態更新目前暫時區塊表,並且將更新後之目前暫時區塊表寫入暫時區塊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個頁面之第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,用以將資料寫入目前區塊中。流程開始於步驟S600。
在步驟S600中,控制器160將相應於一第一邏輯位址之一第一資料寫入目前區塊。
接著,在步驟S602中,控制器160判斷暫時區塊中是否具有同樣相應於第一邏輯位址之一第二資料。當暫時區塊中具有同樣相應於第一邏輯位址之第二資料時,流程進行至步驟S604;否則,流程結束於步驟S600。
在步驟S604中,控制器160將最新的暫時區塊表寫入暫時區塊中。詳細而言,在一實施例中,控制器160在儲存於一隨機存取記憶體166中之目前暫時區塊表中,解除第二資料與邏輯位址的關係,以更新目前暫時區塊表。接著,控制器160係將更新後之目前暫時區塊表寫入暫時區塊之一頁面中之一特定頁面。值得注意的是,被寫入第一暫時區塊表之特定頁為暫時區塊中空白頁面中之任一者,並且特定頁面不會被寫入
其他使用者資料。舉例而言,特定頁面為暫時區塊中最後一個被寫入之頁面的下一個頁面。在一實施例中,當第一資料的邏輯位址重複出現在暫時區塊中時,第一資料可能為為一主機120之一寫入命令所指示的資料,或者第一資料為暫時區塊中之冷資料。流程結束於步驟S604。
第7圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,用以在資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後重建資料狀態。流程開始於步驟S700。
在步驟S700中,當資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160執行一尋找程序以獲得暫時區塊中的第X個頁面,其中第X個頁面是暫存區塊中在斷電事件前最後一個被寫入之頁面,並且X為一正整數。
接著,在步驟S702中,控制器160將第X個頁面中所儲存之一第二暫時區塊表載入隨機存取記憶體166中,以作為目前之暫時區塊表。值得注意的是,控制器160可根據暫時區塊中之第X個頁面所儲存之第二暫時區塊表,判斷暫時區塊與目前區塊中具有相同邏輯位址之資料何者為有效資料。流程結束於步驟S702。
第8圖為本發明所提供之一尋找程序之一種實施例的流程圖。尋找程序適用於第1圖所示之資料儲存裝置140、第7圖中之步驟S700,用以在資料儲存裝置140自斷電事件回復後找到最後一個被寫入之頁面。流程開始於步驟S800。
在步驟S800中,控制器160係自暫時區塊中之第1
個頁面開始,依照第一順序D1讀取暫時區塊中間隔一既定數量之頁面的備用空間,直到所讀取之備用空間不具有有效資料為止。
接著,在步驟S802中,控制器160自所讀取到不具有有效資料之備用空間所相應之頁面的下一個頁面開始,依照一第二順序D2逐一讀取暫時區塊中之頁面之備用空間,直到所讀取之備用空間具有有效資料為止,其中控制器160依照第二順序D2之方向讀取到具有有效資料之備用空間所屬之頁面為目前控制器160所假設之第一空白頁面,並且第二順序D2與第一順序D1相反。
接著,在步驟S804中,控制器160自假設之第一空白頁面開始,依照第一順序D1逐一讀取暫時區塊中之頁面的使用者資料空間,以尋找暫時區塊中第一個不具有使用者資料的頁面。
接著,控制器160自暫時區塊中第一個不具有使用者資料的頁面的上一個頁面開始,依照第二順序D2逐一讀取暫時區塊中之頁面之使用者資料空間,並且判斷所讀取之頁面之使用者空間是否具有有效資料,以獲得暫時區塊中最後一個寫入之頁面,其中反序所讀取具有有效資料之使用者資料空間所相應之頁面,為暫時區塊中最後一個具有有效資料之頁面(第X個頁面)。
本發明所提供之資料儲存裝置以及資料維護方法可獨立將系統資料儲存在暫時區塊中,並且藉由暫時區塊表區隔相同邏輯位址之資料何者為有效資料。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
Claims (25)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數區塊,並且該等區塊中包括一目前區塊以及一暫時區塊;以及一控制器,將相應於一第一邏輯位址之一第一資料寫入該目前區塊,判斷該暫時區塊中是否具有同樣相應於該第一邏輯位址之一第二資料,其中當該暫時區塊中具有同樣相應於該第一邏輯位址之該第二資料時,該控制器更將一第一暫時區塊表寫入該暫時區塊中。
- 根據申請專利範圍第1項之資料儲存裝置,其中該第一資料係為一主機之一寫入命令所指示的資料,或者該第一資料為該暫時區塊中之冷資料。
- 根據申請專利範圍第1項之資料儲存裝置,其中每一該等區塊包括複數頁面,該第一暫時區塊表中紀錄了該暫時區塊中所有該等頁面之資訊。
- 根據申請專利範圍第1項之資料儲存裝置,其中在該控制器在儲存於一隨機存取記憶體中之一目前暫時區塊表中,解除該第二資料與該邏輯位址的關係,以更新該目前暫時區塊表。
- 根據申請專利範圍第4項之資料儲存裝置,其中該控制器系將更新後之該目前暫時區塊表作為該第一暫時區塊表以寫入該暫時區塊之一特定頁面。
- 根據申請專利範圍第5項之資料儲存裝置,其中該特定頁面不具有使用者資料。
- 根據申請專利範圍第1項之資料儲存裝置,其中每一該等區塊包括依照一第一順序排列之複數頁面,其中該控制器係用以在該資料儲存裝置自一斷電事件回復後,根據該暫時區塊中之第X個頁面所儲存之一第二暫時區塊表,判斷該暫時區塊與該目前區塊中具有相同邏輯位址之資料何者為有效資料,其中該第X個頁面是該暫時區塊中在該斷電事件前最後一個被寫入之頁面,並且X為一正整數。
- 根據申請專利範圍第7項之資料儲存裝置,其中在該暫時區塊中之每一該等頁面係用以儲存長度小於一既定長度之系統資料,並且除了系統資料外之其他資料皆係寫入該目前區塊中。
- 根據申請專利範圍第8項之資料儲存裝置,其中每一該等頁面皆具有一使用者資料空間以及一備用空間,在該資料儲存裝置自該斷電事件回復後,該控制器係用以使用一尋找程序來獲得該第X個頁面,其中在該尋找程序中,該控制器自該暫時區塊中之第1個頁面開始,依照該第一順序讀取該暫時區塊中間隔一既定數量之該等頁面的該等備用空間,直到所讀取之該備用空間不具有有效資料為止。
- 根據申請專利範圍第9項之資料儲存裝置,其中在讀取到不具有有效資料的該備用空間後,該控制器更自所讀取到不具有有效資料之該備用空間所相應之該頁面的下一個開始,依照一第二順序逐一讀取該暫時區塊中之該等頁面之該等備用空間,直到所讀取之該備用空間具有有效資料為止,其中該控制器依照該第二順序讀取到具有有效資料之 該備用空間所屬之該頁面為一第一空白頁面,並且該第二順序與該第一順序相反。
- 根據申請專利範圍第10項之資料儲存裝置,其中該控制器更讀取該第一空白頁面中之該使用者資料空間,並且判斷該第一空白頁面中之該使用者資料空間是否具有有效資料,以確認該第一空白頁面為該暫時區塊中第一個不具有使用者資料的頁面,其中當該第一空白頁面中之該使用者資料空間具有有效資料時,該控制器更自該第一空白頁面開始依照該第一順序逐一讀取該暫時區塊中之該等頁面的該等使用者資料空間,直到所讀取之該使用者資料空間不具有有效資料為止,其中該使用者資料空間不具有有效資料的該頁面取代原該第一空白頁面成為新的第一空白頁面。
- 根據申請專利範圍第11項之資料儲存裝置,其中該控制器更自該第一空白頁面的上一個頁面或者該新的第一空白頁面的上一個頁面開始,依照該第二順序逐一讀取該暫時區塊中之該等頁面之該等使用者資料空間,並且判斷所讀取之該頁面之該使用者空間是否具有有效資料,其中反序所讀取具有有效資料之該使用者資料空間所相應之該頁面,為該暫時區塊中最後一個具有有效資料之該頁面,並且為該第X個頁面。
- 一種資料維護方法,適用於具有一快閃記憶體之一資料儲存裝置,其中該快閃記憶體包括複數區塊,並且區塊中包括一目前區塊以及一暫時區塊,該資料維護方法包括: 將相應於一第一邏輯位址之一第一資料寫入該目前區塊;判斷該暫時區塊中是否具有同樣相應於該第一邏輯位址之一第二資料;以及當該暫時區塊中具有同樣相應於該第一邏輯位址之該第二資料時,將一第一暫時區塊表寫入該暫時區塊中。
- 根據申請專利範圍第13項之資料維護方法,其中該第一資料係為一主機之一寫入命令所指示的資料,或者該第一資料為該暫時區塊中之冷資料。
- 根據申請專利範圍第13項之資料維護方法,其中每一該等區塊包括複數頁面,該第一暫時區塊表中紀錄了該暫時區塊中所有該等頁面之資訊。
- 根據申請專利範圍第13項之資料維護方法,更包括在儲存於一隨機存取記憶體中之一目前暫時區塊表中,解除該第二資料與該邏輯位址的關係,以更新該目前暫時區塊表。
- 根據申請專利範圍第16項之資料維護方法,其中該將該第一暫時區塊表寫入該暫時區塊中的步驟更包括將更新後之該目前暫時區塊表作為該第一暫時區塊表,以寫入該暫時區塊之一特定頁面。
- 根據申請專利範圍第17項之資料維護方法,其中該特定頁面不具有使用者資料。
- 根據申請專利範圍第13項之資料維護方法,其中每一區塊包括依照一第一順序排列之複數頁面,並且資料維護方法更包括在該資料儲存裝置自一斷電事件回復後,根據該暫時區塊中之第X個頁面所儲存之一第二暫時區塊表,判斷該 暫時區塊與該目前區塊中具有相同邏輯位址之資料何者為有效資料,其中該第X個頁面是該暫時區塊中在該斷電事件前最後一個被寫入之頁面,並且X為一正整數。
- 根據申請專利範圍第19項之資料維護方法,其中該第X個頁面是該暫時區塊中在該斷電事件前最後一個被寫入之頁面,並且X為一正整數。
- 根據申請專利範圍第20項之資料維護方法,其中在該暫時區塊中之每一該等頁面係用以儲存長度小於一既定長度之系統資料,並且除了系統資料外之其他資料皆係寫入該目前區塊中。
- 根據申請專利範圍第21項之資料維護方法,其中每一該等頁面皆具有一使用者資料空間以及一備用空間,並且該資料維護方法更包括在該資料儲存裝置自該斷電事件回復後,使用一尋找程序來獲得該第X個頁面,其中該尋找程序包括:自該暫時區塊中之第1個頁面開始,依照該第一順序讀取該暫時區塊中間隔一既定數量之該等頁面的該等備用空間,直到所讀取之該備用空間不具有有效資料為止。
- 根據申請專利範圍第22項之資料維護方法,其中該尋找程序包括:在讀取到不具有有效資料的該備用空間後,自所讀取到不具有有效資料之該備用空間所相應之該頁面的下一個開始,依照一第二順序逐一讀取該暫時區塊中之該等頁面之該等備用空間,直到所讀取之該備用空間具有有效資料為 止,其中依照該第二順序讀取到具有有效資料之該備用空間所屬之該頁面為一第一空白頁面,並且該第二順序與該第一順序相反。
- 根據申請專利範圍第23項之資料維護方法,其中該尋找程序包括:自該第一空白頁面開始依照該第一順序逐一讀取該暫時區塊中之該等頁面的該等使用者資料空間,直到所讀取之該使用者資料空間不具有有效資料為止,其中該使用者資料空間不具有有效資料的該頁面取代原該第一空白頁面成為新的第一空白頁面。
- 根據申請專利範圍第24項之資料維護方法,其中該尋找程序包括:自該第一空白頁面的上一個頁面或者該新的第一空白頁面的上一個頁面開始,依照該第二順序逐一讀取該暫時區塊中之該等頁面之該等使用者資料空間,並且判斷所讀取之該頁面之該使用者空間是否具有有效資料,其中反序所讀取具有有效資料之該使用者資料空間所相應之該頁面,為該暫時區塊中最後一個具有有效資料之該頁面,並且為該第X個頁面。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141178A TWI604373B (zh) | 2016-12-13 | 2016-12-13 | 資料儲存裝置及其資料維護方法 |
CN201710037314.2A CN108614780B (zh) | 2016-12-13 | 2017-01-18 | 数据储存装置及其数据维护方法 |
US15/662,838 US10248526B2 (en) | 2016-12-13 | 2017-07-28 | Data storage device and data maintenance method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105141178A TWI604373B (zh) | 2016-12-13 | 2016-12-13 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI604373B true TWI604373B (zh) | 2017-11-01 |
TW201821970A TW201821970A (zh) | 2018-06-16 |
Family
ID=61023175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105141178A TWI604373B (zh) | 2016-12-13 | 2016-12-13 | 資料儲存裝置及其資料維護方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10248526B2 (zh) |
CN (1) | CN108614780B (zh) |
TW (1) | TWI604373B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI606388B (zh) * | 2016-12-14 | 2017-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI698749B (zh) * | 2019-03-13 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
KR20210017481A (ko) * | 2019-08-08 | 2021-02-17 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US11579970B2 (en) | 2020-07-30 | 2023-02-14 | Micron Technology, Inc. | Maintenance command interfaces for a memory system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0777183B1 (en) * | 1995-12-01 | 2002-07-31 | Hewlett-Packard Company, A Delaware Corporation | Computer cache system |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
US7181611B2 (en) | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
EP2311041A1 (en) | 2008-07-22 | 2011-04-20 | LSI Corporation | Methods and apparatus for programming multiple program values per signal level in flash memories |
JP2010026933A (ja) * | 2008-07-23 | 2010-02-04 | Toshiba Corp | メモリシステム、ホスト装置 |
TWI385517B (zh) * | 2008-12-05 | 2013-02-11 | Apacer Technology Inc | Storage device and data management method |
KR101581859B1 (ko) * | 2009-02-27 | 2016-01-21 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 |
CN101989235B (zh) * | 2009-08-06 | 2015-08-05 | 慧国(上海)软件科技有限公司 | 快闪存储装置及快闪存储装置的运作方法 |
TWI433157B (zh) | 2009-09-04 | 2014-04-01 | Silicon Motion Inc | 存取快閃記憶體的方法以及相關之記憶裝置 |
CN102033814B (zh) * | 2009-09-25 | 2013-04-10 | 慧荣科技股份有限公司 | 存取一闪存的方法以及相关的记忆装置 |
KR101602939B1 (ko) * | 2009-10-16 | 2016-03-15 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
TWI413897B (zh) * | 2010-01-20 | 2013-11-01 | Silicon Motion Inc | 快閃記憶體之資料存取方法以及快閃記憶體裝置 |
TWI515737B (zh) * | 2013-12-09 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其資料抹除方法 |
US20160246712A1 (en) * | 2015-02-25 | 2016-08-25 | HGST Netherlands B.V. | Indirection data structures implemented as reconfigurable hardware |
TWI604308B (zh) * | 2015-11-18 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
-
2016
- 2016-12-13 TW TW105141178A patent/TWI604373B/zh active
-
2017
- 2017-01-18 CN CN201710037314.2A patent/CN108614780B/zh active Active
- 2017-07-28 US US15/662,838 patent/US10248526B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN108614780B (zh) | 2022-07-15 |
TW201821970A (zh) | 2018-06-16 |
CN108614780A (zh) | 2018-10-02 |
US20180165172A1 (en) | 2018-06-14 |
US10248526B2 (en) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI606388B (zh) | 資料儲存裝置及其資料維護方法 | |
TWI632457B (zh) | 用於資料儲存裝置的損耗平均方法 | |
TWI613652B (zh) | 資料儲存裝置以及其操作方法 | |
US8046528B2 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
TWI604308B (zh) | 資料儲存裝置及其資料維護方法 | |
US5745418A (en) | Flash memory mass storage system | |
TWI604373B (zh) | 資料儲存裝置及其資料維護方法 | |
CN109976938B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
TW201128648A (en) | Memory management and writing method and rewritable non-volatile memory controller and storage system thereof | |
CN101271383A (zh) | 操作数据处理系统的系统、方法以及计算机程序产品 | |
TWI609323B (zh) | 資料儲存方法及其系統 | |
TWI317099B (zh) | ||
TW202028981A (zh) | 資料儲存裝置及避免韌體失效之方法 | |
JP2010287049A (ja) | メモリシステムおよびメモリシステムの管理方法 | |
US10942811B2 (en) | Data processing method for solid state drive | |
TWI617917B (zh) | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI578222B (zh) | 資料儲存裝置及其資料維護方法 | |
TWI656475B (zh) | 具資料儲存裝置的電子系統 | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI669610B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN108984109A (zh) | 在闪存上提升存取效能的控制方法 |