TWI604308B - 資料儲存裝置及其資料維護方法 - Google Patents
資料儲存裝置及其資料維護方法 Download PDFInfo
- Publication number
- TWI604308B TWI604308B TW104138018A TW104138018A TWI604308B TW I604308 B TWI604308 B TW I604308B TW 104138018 A TW104138018 A TW 104138018A TW 104138018 A TW104138018 A TW 104138018A TW I604308 B TWI604308 B TW I604308B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- current block
- write
- data
- logical address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明係關於一種資料儲存裝置,特別係關於以序號維護之資料儲存裝置。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks),其中浮置閘極電晶體可用以構成快閃記憶體。浮置閘極電晶體中之浮置閘極,可捕捉的電荷以儲存資料。另外,快閃記憶體中之實體頁面與主機裝置所指定之邏輯頁面的轉換關係需要一個實體轉邏輯表紀錄。當非預期之斷電事件發生時,儲存於隨機記憶體中之實體轉邏輯表會丟失。如何有效重建實體轉邏輯表是一個重要的課題。
本發明所提供之資料儲存裝置以及資料維護方法可將寫入指令之順序紀錄於頁面中。
本發明提供一種資料儲存裝置。資料儲存裝置包
括一快閃記憶體,包括複數區塊,每一區塊包括複數頁面。控制器依序接收複數寫入指令,根據接收寫入指令之順序,分配寫入指令不同之複數寫入序號,根據寫入指令,依序將複數資料以及目前所執行之寫入指令之寫入序號寫入區塊中之一第一目前區塊以及一第二目前區塊之頁面中。
在一實施例中,寫入指令更包括資料之複數邏輯位址,控制器更將資料所相應之邏輯位址寫入第一目前區塊以及第二目前區塊之頁面中。
又另一實施例中,控制器更根據寫入指令判斷寫入指令所指示寫入之資料的一型態為一連續型態或者一隨機型態,並且將屬於連續型態之資料寫入第一目前區塊中之頁面,將屬於隨機型態之資料寫入第二目前區塊中之頁面。
詳細而言,當控制器接收寫入指令中用以寫入資料中之複數第一資料之一第一寫入指令時,控制器根據接收第一寫入指令之順序分配寫入序號中之一第一寫入序號給第一寫入指令,根據第一寫入指令以及型態依序將第一資料、第一寫入序號以及第一資料所相應之邏輯位址寫入第一目前區塊以及第二目前區塊中之複數第一頁面,其中每一第一頁面包括第一資料中之一者、第一寫入序號以及邏輯位址中之一者。
本發明另提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括複數區塊,每一區塊包括複數頁面,每一頁面具有一備用區域。控制器用以當發生一斷電事件並且資料儲存裝置恢復電力後,依序讀取區塊中之一第一目前區塊以及一第二目前區塊中之頁面所儲
存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表,其中當控制器在讀取第一目前區塊以及第二目前區塊的過程中偵測到第一目前區塊或者第二目前區塊中之一特定頁面損壞時,控制器捨棄特定頁面並且讀取特定頁面中之寫入序號以及邏輯位址,以將寫入序號大於特定頁面之寫入序號的頁面捨棄並且將寫入序號等於特定頁面之寫入序號並且邏輯位址大於特定頁面之邏輯位址的頁面捨棄。
在另一實施例中,當特定頁面之寫入序號以及邏輯位址無法被成功讀取時,控制器捨棄特定頁面並且讀取位於特定頁面之前之一參考特定頁面之寫入序號以及邏輯位址,以將寫入序號大於參考特定頁面之寫入序號的頁面捨棄並且將寫入序號等於特定頁面之寫入序號並且邏輯位址大於參考特定頁面之邏輯位址的頁面捨棄。
本發明亦提供一種資料儲存裝置。資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括複數區塊,每一區塊包括複數頁面,每一頁面具有一備用區域。控制器用以當發生一斷電事件並且資料儲存裝置恢復電力後,依序讀取區塊中之一第一目前區塊以及一第二目前區塊中之頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表,其中當控制器在讀取第一目前區塊以及第二目前區塊的過程中偵測到第一目前區塊以及第二目前區塊中存在具有相同邏輯位址之頁面時,控制器比較具有相同邏輯位址之頁面之寫入序號,並且將具有較小寫入序號之頁面捨棄。
本發明另提供一種資料維護方法,適用於包括一
快閃記憶體之一資料儲存裝置,快閃記憶體包括複數區塊,每一區塊包括複數頁面。資料維護方法包括:依序接收複數寫入指令;根據接收寫入指令之順序,分配寫入指令不同之複數寫入序號;以及根據寫入指令,依序將複數資料以及目前所執行之寫入指令之寫入序號寫入區塊中之一第一目前區塊以及一第二目前區塊之頁面中。
在一實施例中,寫入指令更包括資料之複數邏輯位址,並且資料維護方法更包括將資料所相應之邏輯位址寫入第一目前區塊以及第二目前區塊之頁面中。
另外,將資料以及目前所執行之寫入指令之寫入序號寫入區塊中之第一目前區塊以及第二目前區塊之頁面中的步驟更包括:根據所接收寫入指令中用以寫入資料中之複數第一資料之一第一寫入指令之順序,分配寫入序號中之一第一寫入序號給第一寫入指令;根據寫入指令,判斷寫入指令所指示寫入之資料的一型態為一連續型態或者一隨機型態;當資料屬於連續型態時,將第一資料、第一寫入序號以及第一資料所相應之邏輯位址寫入第一目前區塊中之複數第一頁面;以及當資料屬於隨機型態時,將寫入第二目前區塊中之頁面,將第一資料、第一寫入序號以及第一資料所相應之邏輯位址寫入第二目前區塊中之至少一第二頁面,其中每一第一頁面以及第二頁面包括邏輯位址中之一者、第一寫入序號以及第一資料中之一者。
本發明亦提供一種資料維護方法,適用於包括一快閃記憶體之一資料儲存裝置,快閃記憶體包括複數區塊,每
一區塊包括複數頁面。資料維護方法包括:當發生一斷電事件並且資料儲存裝置恢復電力後,依序讀取區塊中之一第一目前區塊以及一第二目前區塊中之頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表;在讀取第一目前區塊以及第二目前區塊時,偵測頁面是否損壞。
當偵測到第一目前區塊或者第二目前區塊中之一特定頁面損壞時,捨棄特定頁面並且將特定頁面之寫入序號與第一目前區塊以及上二目前區塊中之其他頁面之寫入序號進行比較;將寫入序號大於特定頁面之寫入序號的頁面捨棄;當特定頁面之寫入序號等於第一目前區塊以及第二目前區塊中之至少一第三頁面時,將特定頁面之邏輯位址與第三頁面之邏輯位址進行比較;以及將邏輯位址大於特定頁面之邏輯位址的第三頁面捨棄。
在另一實施例中,資料維護方法更包括:當特定頁面之寫入序號以及邏輯位址無法被成功讀取時,捨棄特定頁面並且將位於特定頁面之前之一參考特定頁面之寫入序號與第一目前區塊以及上二目前區塊中之其他頁面之寫入序號進行比較;將寫入序號大於參考特定頁面之寫入序號的頁面捨棄;當參考特定頁面之寫入序號等於第一目前區塊以及第二目前區塊中之至少一第四頁面時,將參考特定頁面之邏輯位址與第四頁面之邏輯位址進行比較;以及將邏輯位址大於參考特定頁面之邏輯位址的第四頁面捨棄。
本發明亦提供一種資料維護方法,適用於包括一快閃記憶體之一資料儲存裝置,快閃記憶體包括複數區塊,每
一區塊包括複數頁面。資料維護方法包括:當發生一斷電事件並且資料儲存裝置恢復電力後,依序讀取區塊中之一第一目前區塊以及一第二目前區塊中之頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表;在讀取第一目前區塊以及第二目前區塊的過程中,偵測到第一目前區塊以及第二目前區塊中是否存在具有相同邏輯位址之頁面;當讀取第一目前區塊以及第二目前區塊的過程中偵測到第一目前區塊以及第二目前區塊中存在具有相同邏輯位址之頁面時,比較具有相同邏輯位址之頁面之寫入序號;以及將具有較小寫入序號之頁面捨棄。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
TB1‧‧‧資料鏈結關係表
SPA0-SPAN‧‧‧備用區域
P0-PN‧‧‧頁面
B0~BN‧‧‧區塊
CB0‧‧‧第一目前區塊
CB1‧‧‧第二目前區塊
D1~D4‧‧‧資料
AD1~AD10‧‧‧邏輯位址
1~4‧‧‧寫入序號
S400~S412、S500~S510、S600~S620、S700~S730‧‧‧步驟
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。
第2圖為本發明所提供之一快閃記憶體之一種實施例的方塊圖。
第3圖為本發明所提供之一目前區塊之一種實施例的方塊圖。
第4圖為本發明所提供之一資料維護方法之一種實施例的流程圖。
第5圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。
第6A-6B圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。
第7A-7B圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機120所下達的命令操作。控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。快閃記憶體180包括複數區塊,每一區塊包括複數頁面P0~PN,其中每一頁面P0~PN具有一備用區域(Spare Area)SPA0~SPAN,如第2圖所示。值得注意的是,快閃記憶體180以區塊為最小單位進行抹除,並且頁面為最小單位進行寫入。另外,備用區域SPA0~SPAN可在其所相應之頁面的前方或者後方,本發明不限於此。在其他實施例中,備用區域SPA0~SPAN亦可位於區塊B0~BN之前端或者後端。值得注意的是,在一實施例中,具有有效資料之每一頁面的備用區域中包
括一邏輯位址以及一寫入序號。快閃記憶體180更包括一資料鏈結關係表TB1,用以記錄快閃記憶體180中所有區塊以及頁面之邏輯位址以及實體位址的對應關係。
在一實施例中,控制器160依序接收複數寫入指令,根據接收寫入指令之順序,分配寫入指令不同之複數寫入序號。另外,控制器160更根據寫入指令,依序將複數資料以及目前所執行之寫入指令之寫入序號寫入區塊中之一第一目前區塊以及一第二目前區塊之頁面中。在一實施例中,控制器160係根據寫入指令,判斷寫入指令所指示寫入之資料的一型態係為一連續型態或者一隨機型態,並且將屬於連續型態之資料寫入第一目前區塊CB0中之頁面,將屬於隨機型態之資料寫入第二目前區塊CB1中之頁面。舉例而言,當寫入指令所指示寫入之資料的總長度大於一個頁面的資料量時,控制器160判斷該寫入指令之資料為連續型態。當寫入指令所指示寫入之資料的總長度小於等於一個頁面的資料量時,控制器160判斷該寫入指令之資料為隨機型態,但本發明不限於此。值得注意的是,當寫入指令之資料為連續型態,但該等資料中具有無法寫滿一個頁面之資料的資料時,控制器160判斷該無法寫滿一個頁面之資料為隨機型態。在另一實施例中,控制器160更將資料所相應之邏輯位址寫入第一目前區塊以及第二目前區塊之頁面中。詳細而言,在寫入資料的過程中,控制器160會自快閃記憶體180之區塊B0~BN中選取兩個可使用之區塊以作為一第一目前區塊CB0以及一第二目前區塊CB1,並且在隨機存取記憶體166中建立一實體轉邏輯對應表以紀錄第一目前區塊
CB0以及第二目前區塊CB1之頁面之實體位址與資料之頁面的邏輯位址的對應關係,如第3圖所示。第一目前區塊CB0是用以儲存連續型態之資料,並且第二目前區塊CB1是用以儲存隨機型態之資料。當第一目前區塊CB0以及第二目前區塊CB1已經被寫滿(無法再寫入新的資料時),控制器160將實體轉邏輯對應表整理至資料鏈結關係表TB1,將第一目前區塊CB0以及第二目前區塊CB1定義為資料母區塊,重新自快閃記憶體180之區塊B0~BN中選取兩個可使用之區塊以作為新的第一目前區塊CB0以及新的第二目前區塊CB1,並且在隨機存取記憶體166中建立新的一實體轉邏輯對應表以紀錄新的第一目前區塊CB0以及新的第二目前區塊CB1之頁面之實體位址與資料之頁面的邏輯位址的對應關係。
第3圖為本發明所提供之一目前區塊之一種實施例的方塊圖。在本實施例中,快閃記憶體180中之每一區塊B0~BN包括16個頁面P0~P15,每一頁面P0~P15具有一個相應之備用區域SPA0~SPA15,但本發明不限於此。因此,控制器160所選擇的第一目前區塊CB0以及第二目前區塊CB1也同樣分別包括16個頁面P0~P15以及16個備用區域SPA0~SPA15。
舉例而言,當控制器160接收到用以寫入一第一資料D1之一第一寫入指令時,控制器160根據接收第一寫入指令之順序分配一第一寫入序號給第一寫入指令。舉例而言,當第一寫入指令是控制器160選取第一目前區塊CB0以及第二目前區塊CB1後所接收到之第一個寫入指令時,控制器160分配”1”以作為第一寫入指令之寫入序號。值得注意的是,第一寫入指
令包括第一資料D1之邏輯位址AD1。接著,由於第一寫入指令所指示寫入之第一資料D1的長度小於等於一頁面的大小,因此控制器160判斷第一資料D1的型態為隨機型態。接著,控制器160將第一資料D1、第一寫入序號”1”以及邏輯位址AD1寫入第二目前區塊CB1中之頁面P0中。最後,控制器160在實體轉邏輯對應表中記錄邏輯位址AD1與第二目前區塊CB1中之頁面P0的實體位址對應關係。
接著,控制器160接收到用以寫入複數第二資料D2之一第二寫入指令。控制器160根據接收第二寫入指令之順序分配一第二寫入序號給第二寫入指令。由於第二寫入指令是在第一寫入指令之後所接收到的,所以控制器160分配”2”以作為第二寫入指令之寫入序號。值得注意的是,其中第二寫入指令包括第二資料D1之邏輯位址AD2~AD5。接著,由於第二寫入指令所指示寫入之第二資料D2的總長度大於一頁面的大小,因此控制器160判斷第二資料D2的型態為連續型態。接著,控制器160依序將第二資料D2、第二寫入序號”2”以及邏輯位址AD2~AD5寫入第一目前區塊CB0中之頁面P0~P3中。詳細而言,控制器160將第二資料D2中之第一者、第二寫入序號”2”以及邏輯位址AD2寫入第一目前區塊CB0中之頁面P0、將第二資料D2中之第二者、第二寫入序號”2”以及邏輯位址AD3寫入第一目前區塊CB0中之頁面P1、將第二資料D2中之第三者、第二寫入序號”2”以及邏輯位址AD4寫入第一目前區塊CB0中之頁面P2,依此類推。最後,控制器160在實體轉邏輯對應表中記錄邏輯位址AD2~AD5與第一目前區塊CB0中之頁面P0~P3的
實體位址對應關係。
接著,控制器160接收到用以寫入複數第三資料D3之一第三寫入指令。控制器160根據接收第三寫入指令之順序分配一第三寫入序號給第三寫入指令。由於第三寫入指令是在第二寫入指令之後所接收到的,所以控制器160分配”3”以作為第三寫入指令之寫入序號。值得注意的是,其中第三寫入指令包括第三資料D3之邏輯位址AD6~AD10。接著,由於第三寫入指令所指示寫入之第三資料D3的總長度大於一頁面的大小,因此控制器160判斷第三資料D3的型態為連續型態。然而,第一個第三資料D3以及最後一個第三資料D3之資料量小於一個頁面的大小,因此第一個第三資料D3以及最後一個第三資料D3被定義為隨機型態,並且除了第一個第三資料D3以及最後一個第三資料D3外,其他第三資料D3為連續型態。舉例而言,每一頁面P0~P15之資料量為16K,其中第一頁面之位址為0~15K、第二頁面之位址為16~32K,依此類推。當第一個第三資料D3之起始邏輯位址AD6為8K時,第一個第三資料D3的資料則用以儲存在8~15K的位址,故第一個第三資料D3的資料量小於一個頁面的大小,邏輯位址為AD6之第三資料D3為隨機型態。接著,控制器160將定義為隨機型態之第一個以及最後一個第三資料D3、第三寫入序號”3”以及邏輯位址AD6、AD10分別寫入第二目前區塊CB1中之頁面P1以及頁面P2中,並且依序將被定義為連續型態之第三資料D3、第三寫入序號”3”以及邏輯位址AD7~AD9寫入第一目前區塊CB0之頁面P4~P6中。詳細而言,控制器160將第三資料D3中之第一者、第三寫入序號”3”
以及邏輯位址AD6寫入第二目前區塊CB1中之頁面P1、將第三資料D3中之第二者、第三寫入序號”3”以及邏輯位址AD7寫入第一目前區塊CB0中之頁面P4、將第三資料D3中之第三者、第三寫入序號”3”以及邏輯位址AD8寫入第一目前區塊CB0中之頁面P5,依此類推。最後,控制器160在實體轉邏輯對應表中記錄邏輯位址AD6~AD9與第一目前區塊CB0與第二目前區塊CB1中之實體位址的對應關係。
最後,控制器160接收到用以寫入一第四資料D4之一第四寫入指令時,控制器160根據接收第四寫入指令之順序分配一第四寫入序號給第四寫入指令。由於第四寫入指令是在第三寫入指令之後所接收到的,所以控制器160分配”4”以作為第四寫入指令之寫入序號。值得注意的是,第四寫入指令包括第四資料D4之邏輯位址AD2。接著,由於第四寫入指令所指示寫入之第四資料D4的長度小於等於一頁面的大小,因此控制器160判斷第四資料D4的型態為隨機型態。接著,控制器160將第四資料D4、第四寫入序號”4”以及邏輯位址AD2寫入第二目前區塊CB1中之頁面P3中。最後,由於第四資料D4之邏輯位址AD2與已儲存第一目前區塊CB0之頁面P0之於第二資料D2的邏輯位址AD2相同。因此,控制器160在寫入第四資料D4之後,會將實體轉邏輯對應表中邏輯位址AD2所相應之實體位址更新為第二目前區塊CB1之頁面P3。藉由上述流程可知,每一具有有效資料之頁面包括資料中之一者、一寫入序號以及該資料所相應之一邏輯位址。另外,本發明所提供之控制器160可將相應於寫入指令之順序之寫入序號導入快閃記憶體180中。
當發生一斷電事件時,隨機存取記憶體166中所儲存之實體轉邏輯對應表會因為電力消失而丟失。因此當發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160需要依序讀取第一目前區塊CB0以及第二目前區塊CB1中之頁面以重新在隨機存取記憶體166中建立一實體轉邏輯對應表。此時,控制器160可藉由先前所導入之寫入序號,成功辨認在不同之目前區塊中具有相同邏輯位址的資料的寫入順序,以在實體轉邏輯對應表中建入最後寫入之資料,並且將較舊的資料捨棄。換言之,控制器160不會將較舊的資料建入實體轉邏輯對應表中。另外,當第一目前區塊CB0以及第二目前區塊CB1中之頁面因為非預期的斷電事件損壞時,控制器160亦可成功辨認與損壞頁面儲存於不同目前區塊並且在損壞頁面之後所寫入的頁面丟棄。
詳細而言,在一實施例中,當控制器160在讀取第一目前區塊CB0以及第二目前區塊CB1的過程中偵測到第一目前區塊CB0或者第二目前區塊CB1中之一特定頁面損壞時,控制器160將損壞的特定頁面捨棄並且讀取特定頁面之寫入序號以及邏輯位址,以將寫入序號大於特定頁面之寫入序號的頁面捨棄並且將寫入序號等於特定頁面之寫入序號並且邏輯位址大於特定頁面之邏輯位址的頁面捨棄。另外,當特定頁面之寫入序號以及邏輯位址無法被成功讀取時,控制器160將損壞的特定頁面捨棄並且讀取位於特定頁面之前之一參考特定頁面之寫入序號以及邏輯位址,以將寫入序號大於參考特定頁面之寫入序號的頁面捨棄並且將寫入序號等於特定頁面之寫入序
號並且邏輯位址大於參考特定頁面之邏輯位址的頁面捨棄。
以第3圖為例,當第一目前區塊CB0之頁面P5的資料D3由於斷電事件損壞時,將損壞的頁面P5以及在頁面P5中之資料D3之後被寫入第一目前區塊CB0以及第二目前區塊CB1之資料皆要被捨棄。詳細而言,當控制器160在讀取第一目前區塊CB0以及第二目前區塊CB1的過程中偵測到第一目前區塊CB0中之頁面P5損壞時,控制器160將損壞的頁面P5捨棄並且讀取第一目前區塊CB0之頁面P5之寫入序號。接著,控制器160將第一目前區塊CB0之頁面P5中之寫入序號”3”與第一目前區塊CB0以及第二目前區塊CB1中之其他頁面的寫入序號進行比較。由於第二目前區塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大於頁面P5中之寫入序號”3”的第二目前區塊CB1中的頁面P4捨棄。接著,控制器160偵測到第一目前頁面CB0中之頁面P4以及頁面P6以及第二目前頁面CB1中之頁面P1~P2中之寫入序號與第一目前區塊CB0之頁面P5的寫入序號相同。控制器160讀取第一目前區塊CB0之頁面P5中之邏輯位址”AD8”,並且將第一目前區塊CB0之頁面P5中之邏輯位址”AD8”與第一目前頁面CB0中之頁面P4、P6以及第二目前頁面CB1中之頁面P1~P2的邏輯位址進行比較。由於第一目前區塊CB0中的頁面P4的邏輯位址為AD7、第一目前區塊CB0中的頁面P6的寫入序號為AD9、第二目前區塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯位址大於頁面P5中之邏輯位址”AD8”的第一目前區塊CB0中的頁面P6以及第二目前區塊CB1中的頁面P2捨棄。
當第一目前區塊CB0中損壞的頁面P5之寫入序號以及邏輯位址無法被成功讀取時,控制器160將損壞的頁面P5捨棄並且將位於第一目前區塊CB0之頁面P5之實體位址前之第一目前區塊CB0之頁面P4作為一參考特定頁面。控制器160讀取第一目前區塊CB0之頁面P4之寫入序號。接著,控制器160將第一目前區塊CB0之頁面P4中之寫入序號”3”與第一目前區塊CB0以及第二目前區塊CB1中之其他頁面的寫入序號進行比較。由於第二目前區塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大於頁面P5中之寫入序號”3”的第二目前區塊CB1中的頁面P4捨棄。接著,控制器160偵測到第一目前頁面CB0中之頁面P6以及第二目前頁面CB1中之頁面P1~P2中之寫入序號與第一目前區塊CB0之頁面P4的寫入序號相同。控制器160讀取第一目前區塊CB0之頁面P4中之邏輯位址”AD7”,並且將與第一目前頁面CB0中之頁面P6以及第二目前頁面CB1中之頁面P1~P2的邏輯位址進行比較。由於第一目前區塊CB0中的頁面P6的寫入序號為AD9、第二目前區塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯位址大於頁面P4中之邏輯位址”AD7”的第一目前區塊CB0中的頁面P6以及第二目前區塊CB1中的頁面P2捨棄。如上所述,當第一目前區塊CB0以及第二目前區塊CB1中之頁面因為非預期的斷電事件損壞時,控制器160亦可成功辨認與損壞頁面儲存於不同目前區塊並且在損壞頁面之後所寫入的頁面丟棄。在本實施例中,若是沒有寫入序號,控制器160則無法判斷第二目前區塊CB1中之頁面P2是在損壞之第一目前區塊CB0之頁面P5之後寫
入的。
在另一實施例中,當控制器160在讀取第一目前區塊CB0以及第二目前區塊CB1的過程中偵測到第一目前區塊CB0以及第二目前區塊CB1中存在具有相同邏輯位址之頁面時,控制器160比較具有相同邏輯位址之頁面之寫入序號,並且將具有較小寫入序號之頁面捨棄。
以第3圖為例,當控制器160在讀取第一目前區塊CB0以及第二目前區塊CB1的過程中偵測到第一目前區塊CB0之頁面P0以及第二目前區塊CB1之頁面P3具有相同的邏輯位址”AD2”。控制器160比較第一目前區塊CB0之頁面P0以及第二目前區塊CB1之頁面P3之寫入序號。在本實施例中,第一目前區塊CB0之頁面P0之寫入序號為”2”並且第二目前區塊CB1之頁面P3之寫入序號為”4”。接著,控制器160將具有較小寫入序號之第一目前區塊CB0之頁面P0捨棄。如上所述,控制器160可藉由先前所導入之寫入序號,成功辨認在不同之目前區塊中具有相同邏輯位址的資料的寫入順序,以在實體轉邏輯對應表中建入最後寫入之資料,並且將較舊的資料捨棄。
第4圖為本發明所提供之一資料維護方法之一種實施例的流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,並且第4圖所示之資料維護方法係將資料寫入快閃記憶體180。流程開始於步驟S400。
在步驟S400中,控制器160判斷是否接收到一寫入指令。當控制器160接收到寫入指令時,流程進行至步驟S402;否則,流程回到步驟S400,控制器160繼續判斷是否接收到一
寫入指令。值得注意的是,寫入指令包括至少一邏輯位址,並且寫入指令是用以指示控制器160將至少一資料寫入所具有之邏輯位址中。
接著,在步驟S402中,控制器160根據接收寫入指令之順序,分配一寫入序號給寫入指令。以第3圖為例,當控制器160接收到用以寫入一第一資料D1之一第一寫入指令時,控制器160根據接收第一寫入指令之順序分配一第一寫入序號給第一寫入指令,其中第一寫入指令是控制器160選取第一目前區塊CB0以及第二目前區塊CB1後所接收到之第一個寫入指令時,故控制器160分配”1”以作為第一寫入指令之寫入序號。當控制器160在第一寫入指令之後接收到一第二寫入指令,控制器160則根據接收第二寫入指令之順序分配一第二寫入序號給第二寫入指令,其中由於第二寫入指令是在第一寫入指令之後所接收到的,所以控制器160分配”2”以作為第二寫入指令之寫入序號。當控制器160在第二寫入指令之後接收到一第三寫入指令,控制器160則根據接收第三寫入指令之順序分配一第三寫入序號給第三寫入指令,其中由於第三寫入指令是在第二寫入指令之後所接收到的,所以控制器160分配”3”以作為第三寫入指令之寫入序號,依此類推。值得注意的是,寫入序號是用以代表寫入指令執行之順序。在其他實施例中,寫入序號亦可為其他可代表順序先後之數值或者代號。
接著,在步驟S404中,控制器160根據寫入指令,判斷寫入指令所指示寫入之資料的一型態為一連續型態或者一隨機型態。當控制器160判斷資料為隨機型態時,流程進行
至步驟S406。當控制器160判斷資料為連續型態時,流程進行至步驟S408。舉例而言,當寫入指令所指示寫入之資料的總長度大於一個頁面的資料量時,控制器160判斷該寫入指令之資料為連續型態。當寫入指令所指示寫入之資料的總長度小於等於一個頁面的資料量時,控制器160判斷該寫入指令之資料為隨機型態,但本發明不限於此。值得注意的是,當寫入指令之資料為連續型態,但該等資料中具有無法寫滿一個頁面之資料的資料時,控制器160判斷該無法寫滿一個頁面之資料為隨機型態。
在步驟S406中,控制器160根據所接收之寫入指令,將被判斷為隨機型態之資料以及所相應之寫入序號與邏輯位址寫入第二目前區塊CB1之頁面中,並且在實體轉邏輯對應表中記錄邏輯位址與第二目前區塊CB1中之頁面的實體位址對應關係。以第3圖為例,控制器160在步驟S400中接收到用以寫入一第一資料D1之一第一寫入指令。第一寫入指令是控制器160選取第一目前區塊CB0以及第二目前區塊CB1後所接收到之第一個寫入指令,故控制器160在步驟S402中分配”1”以作為第一寫入指令之寫入序號。由於第一寫入指令所指示寫入之第一資料D1的長度小於等於一頁面的大小,因此在步驟S404中控制器160判斷第一資料D1的型態為隨機型態。接著,在步驟S406中,控制器160將第一資料D1、第一寫入序號”1”以及邏輯位址AD1寫入第二目前區塊CB1中之頁面P0中。最後,控制器160在實體轉邏輯對應表中記錄邏輯位址AD1與第二目前區塊CB1中之頁面P0的實體位址對應關係。
在步驟S408中,控制器160根據所接收之寫入指令,將被判斷為連續型態之資料以及所相應之寫入序號與邏輯位址依序寫入第一目前區塊CB0之頁面中,並且在實體轉邏輯對應表中記錄邏輯位址與第一目前區塊CB0中之頁面的實體位址對應關係。以第3圖為例,控制器160在步驟S400中接收到用以寫入複數第二資料D2之一第二寫入指令。由於第二寫入指令是在第一寫入指令之後所接收到的,所以控制器160在步驟S402中分配”2”以作為第二寫入指令之寫入序號。值得注意的是,其中第二寫入指令包括第二資料D1之邏輯位址AD2~AD5。由於第二寫入指令所指示寫入之第二資料D2的總長度大於一頁面的大小,因此控制器160在步驟S404中判斷第二資料D2的型態為連續型態。接著,在步驟S408中,控制器160依序將第二資料D2、第二寫入序號”2”以及邏輯位址AD2~AD5寫入第一目前區塊CB0中之頁面中。詳細而言,控制器160將第二資料D2中之第一者、第二寫入序號”2”以及邏輯位址AD2寫入第一目前區塊CB0中之頁面P0、將第二資料D2中之第二者、第二寫入序號”2”以及邏輯位址AD3寫入第一目前區塊CB0中之頁面P1、將第二資料D2中之第三者、第二寫入序號”2”以及邏輯位址AD4寫入第一目前區塊CB0中之頁面P2,依此類推。最後,控制器160在實體轉邏輯對應表中記錄邏輯位址AD2~AD5與第一目前區塊CB0中之頁面P0~P3的實體位址對應關係。
值得注意的是,在某些情況中,同一個寫入指令之資料可能有些是隨機型態有些是連續型態。在這個實施例
中,控制器160則依序地將資料依照其形態寫入第一目前區塊CB0以及第二目前區塊CB1中。以第3圖為例,控制器160在步驟S400中接收到用以寫入複數第三資料D3之一第三寫入指令。由於第三寫入指令是在第二寫入指令之後所接收到的,所以控制器160在步驟S402中分配”3”以作為第三寫入指令之寫入序號。值得注意的是,其中第三寫入指令包括第三資料D3之邏輯位址AD6~AD10。接著,由於第三寫入指令所指示寫入之第三資料D3的總長度大於一頁面的大小,因此控制器160判斷第三資料D3的型態為連續型態。然而,第一個第三資料D3以及最後一個第三資料D3之資料量小於一個頁面的大小,因此第一個第三資料D3以及最後一個第三資料D3被定義為隨機型態,並且除了第一個第三資料D3以及最後一個第三資料D3外,其他第三資料D3為連續型態。舉例而言,每一頁面P0~P15之資料量為16K,其中第一頁面之位址為0~15K、第二頁面之位址為16~32K,依此類推。當第一個第三資料D3之起始邏輯位址AD6為8K時,第一個第三資料D3的資料則用以儲存在8~15K的位址,故第一個第三資料D3的資料量小於一個頁面的大小,邏輯位址為AD6之第三資料D3為隨機型態。接著,控制器160將定義為隨機型態之第一個以及最後一個第三資料D3、第三寫入序號”3”以及邏輯位址AD6、AD10分別寫入第二目前區塊CB1中之頁面P1以及頁面P2中,並且依序將被定義為連續型態之第三資料D3、第三寫入序號”3”以及邏輯位址AD7~AD9寫入第一目前區塊CB0之頁面P4~P6中。詳細而言,控制器160執行步驟S406已將第三資料D3中之第一者、第三寫入序號”3”
以及邏輯位址AD6寫入第二目前區塊CB1中之頁面P1、接著執行步驟S408以將第三資料D3中之第二者、第三寫入序號”3”以及邏輯位址AD7寫入第一目前區塊CB0中之頁面P4、最後執行步驟S406以將第三資料D3中之第三者、第三寫入序號”3”以及邏輯位址AD8寫入第一目前區塊CB0中之頁面P5,依此類推。最後,控制器160在實體轉邏輯對應表中記錄邏輯位址AD6~AD9與第一目前區塊CB0與第二目前區塊CB1中之實體位址的對應關係。
接著,在步驟S410中,控制器160判斷第一目前區塊CB0以及第二目前區塊CB1是否可繼續進行寫入。當第一目前區塊CB0以及第二目前區塊CB1是否可繼續進行寫入時,流程回到步驟S400,控制器160繼續判斷是否接收到其他寫入指令;否則,流程進行至步驟S412。
在步驟S412中,控制器160將實體轉邏輯對應表整理至資料鏈結關係表TB1,將第一目前區塊CB0以及第二目前區塊CB1定義為資料母區塊,重新自快閃記憶體180之區塊B0~BN中選取兩個可使用之區塊以作為新的第一目前區塊CB0以及新的第二目前區塊CB1,並且在隨機存取記憶體166中建立新的一實體轉邏輯對應表以紀錄新的第一目前區塊CB0以及新的第二目前區塊CB1之頁面之實體位址與資料之頁面的邏輯位址的對應關係。接著,流程回到步驟S400,控制器160繼續判斷是否接收到其他寫入指令。
第5圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。資料維護方法適用於第1圖所示之資料儲
存裝置140,並且第5圖所示之資料維護方法係用以在斷電重啟之後建立實體轉邏輯對應表。流程開始於步驟S500。
在步驟S500中,資料儲存裝置140在一斷電事件後重新啟動並且恢復電力。值得注意的是,斷電事件可為正常的關機或者不正常的電源中斷。
接著,在步驟S502中,控制器160依序讀取第一目前區塊CB0以及第二目前區塊CB1中之頁面以建立一實體轉邏輯對應表。在一實施例中,控制器160是先從第一目前區塊CB0之第一個頁面開始讀取,但本發明不限於此。在其他實施例中,控制器160是先從第一目前區塊CB0之最後個頁面開始讀取。在其他實施例中,控制器160亦可從第二目前區塊CB1之第一個頁面或者最後一個頁面開始讀取。
在步驟S504中,控制器160判斷所讀取之頁面是否與先前已讀取之頁面的邏輯位址重複。當控制器160發現所讀取之頁面是否與先前已讀取之頁面的邏輯位址重複時,過程進行至步驟S506;否則,流程進行至步驟S505。
在步驟S505中,控制器160將所讀取之頁面的邏輯位址以及在第一目前區塊CB0或者第二目前區塊CB1的實體位址紀錄於實體轉邏輯對應表中。接著,流程回到步驟S502,控制器160繼續讀取第一目前區塊CB0或者第二目前區塊CB1中之下一個頁面。
在步驟S506中,控制器160比較具有相同邏輯位址之頁面之寫入序號。換言之,控制器160比較目前所讀取之頁面之備用區域中之寫入序號以及與目前所讀取之頁面的邏輯
位址相同的頁面之備用區域中之寫入序號。
接著,在步驟S508中,控制器160將具有較小寫入序號之頁面丟棄。舉例而言,當目前所讀取之頁面的寫入序號大於與目前所讀取之頁面的邏輯位址相同的頁面之寫入序號時,控制器160將目前所讀取之頁面的邏輯位址與其在第一目前區塊CB0或者第二目前區塊CB1的實體位址覆蓋原本紀錄於實體轉邏輯對應表中與目前所讀取之頁面的邏輯位址相同的頁面的資料。當目前所讀取之頁面的寫入序號小於與目前所讀取之頁面的邏輯位址相同的頁面之寫入序號時,控制器160則不將目前所讀取之頁面的邏輯位址與其在第一目前區塊CB0或者第二目前區塊CB1的實體位址紀錄於實體轉邏輯對應表中。
接著,在步驟S510中,控制器160判斷第一目前區塊CB0以及第二目前區塊CB1中之頁面是否全部讀取完畢。當第一目前區塊CB0以及第二目前區塊CB1中之頁面尚未全部讀取完畢時,流程會到步驟S502,控制器160繼續讀取下一個頁面。第一目前區塊CB0以及第二目前區塊CB1中之頁面已全部讀取完畢時,流程結束於步驟S510。值得注意的是,在其他實施例中,控制器160亦可將第一目前區塊CB0以及第二目前區塊CB1中之頁面全部讀完後再判斷是否有重複之邏輯位址,本發明不限於此。
第6圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。資料維護方法適用於第6圖所示之資料儲存裝置140,並且第6圖所示之資料維護方法係用以在斷電重啟之後建立實體轉邏輯對應表。流程開始於步驟S600。
在步驟S600中,資料儲存裝置140在一斷電事件後重新啟動並且恢復電力。值得注意的是,斷電事件可為正常的關機或者不正常的電源中斷。
接著,在步驟S602中,控制器160讀取第一目前區塊CB0以及第二目前區塊CB1中所有之頁面,以建立一實體轉邏輯對應表。在一實施例中,控制器160是先從第一目前區塊CB0之第一個頁面開始讀取直到第一目前區塊CB0以及第二目前區塊CB1中之所有頁面皆被讀取完畢,但本發明不限於此。在其他實施例中,控制器160是先從第一目前區塊CB0之最後個頁面開始讀取。在其他實施例中,控制器160亦可從第二目前區塊CB1之第一個頁面或者最後一個頁面開始讀取。
接著,在步驟S604中,控制器160判斷第一目前區塊CB0以及第二目前區塊CB1之頁面中是否有一特定頁面損壞。值得注意的是,特定頁面可為斷第一目前區塊CB0以及第二目前區塊CB1之頁面中損壞的任一者。當有頁面損壞時,流程進行至步驟S605;否則,流程結束於步驟S604。
在步驟S605中,控制器160判斷特定頁面之寫入序號以及邏輯位址是否可被成功讀取。當特定頁面之寫入序號以及邏輯位址可被成功讀取時,流程進行至步驟S606;否則,流程進行至步驟S614。
在步驟S606中,控制器160將特定頁面之寫入序號與第一目前區塊CB0以及上二目前區塊中之其他頁面之寫入序號進行比較。
接著,在步驟S608中,控制器160將損壞的特定頁
面以及寫入序號大於特定頁面之寫入序號的頁面捨棄。換言之,控制器160將實體轉邏輯對應表中關於特定頁面以及入序號大於特定頁面之寫入序號的頁面的資料鏈結關係刪除。以第3圖為例,當第一目前區塊CB0之頁面P5的資料D3由於斷電事件損壞時,控制器160將損壞的頁面P5捨棄並且讀取第一目前區塊CB0之頁面P5之寫入序號。控制器160將第一目前區塊CB0之頁面P5中之寫入序號”3”與第一目前區塊CB0以及第二目前區塊CB1中之其他頁面的寫入序號進行比較。由於第二目前區塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大於頁面P5中之寫入序號”3”的第二目前區塊CB1中的頁面P4捨棄。
接著,在步驟S610中,控制器160比較特定頁面之邏輯位址以及寫入序號等於特定頁面之寫入序號之第一目前區塊CB0以及第二目前區塊CB1中之其他頁面的邏輯位址。
接著,在步驟S612中,控制器160將邏輯位址大於特定頁面之邏輯位址的其他頁面捨棄。換言之,控制器160將實體轉邏輯對應表中關於邏輯位址大於特定頁面之邏輯位址的其他頁面的資料鏈結關係刪除。以第3圖為例,當第一目前區塊CB0之頁面P5的資料D3由於斷電事件損壞時,控制器160偵測到第一目前頁面CB0中之頁面P4以及頁面P6以及第二目前頁面CB1中之頁面P1~P2中之寫入序號與第一目前區塊CB0之頁面P5的寫入序號相同。控制器160讀取第一目前區塊CB0之頁面P5中之邏輯位址”AD8”,並且將第一目前區塊CB0之頁面P5中之邏輯位址”AD8”與第一目前頁面CB0中之頁面P4、P6
以及第二目前頁面CB1中之頁面P1~P2的邏輯位址進行比較。由於第一目前區塊CB0中的頁面P4的邏輯位址為AD7、第一目前區塊CB0中的頁面P6的寫入序號為AD9、第二目前區塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯位址大於頁面P5中之邏輯位址”AD8”的第一目前區塊CB0中的頁面P6以及第二目前區塊CB1中的頁面P2捨棄。流程結束於步驟S612。
在步驟S614中,控制器160將特定頁面捨棄,並且將位於特定頁面之前之一參考特定頁面之寫入序號與第一目前區塊CB0以及上二目前區塊中之其他頁面之寫入序號進行比較。換言之,控制器160將實體轉邏輯對應表中關於特定頁面的資料鏈結關係刪除。以第3圖為例,當第一目前區塊CB0中損壞的頁面P5之寫入序號以及邏輯位址無法被成功讀取時,控制器160將損壞的頁面P5捨棄並且將位於第一目前區塊CB0之頁面P5之實體位址前之第一目前區塊CB0之頁面P4作為一參考特定頁面。控制器160讀取第一目前區塊CB0之頁面P4之寫入序號。接著,控制器160將第一目前區塊CB0之頁面P4中之寫入序號”3”與第一目前區塊CB0以及第二目前區塊CB1中之其他頁面的寫入序號進行比較。
接著,在步驟S616中,控制器160將寫入序號大於參考特定頁面之寫入序號的頁面捨棄。換言之,控制器160將實體轉邏輯對應表中關於寫入序號大於參考特定頁面之寫入序號的頁面的資料鏈結關係刪除。以第3圖為例,當第一目前區塊CB0之頁面P4為參考特定頁面時,由於第二目前區塊CB1中的頁面P4的寫入序號為4,故控制器160將寫入序號大於頁面
P5中之寫入序號”3”的第二目前區塊CB1中的頁面P4捨棄。
接著,在步驟S618中,控制器160比較寫入序號等於參考特定頁面之寫入序號之第一目前區塊CB0以及第二目前區塊CB1中之其他頁面。
接著,在步驟S620中,控制器160將邏輯位址大於參考特定頁面之邏輯位址的寫入序號等於參考特定頁面之寫入序號之第一目前區塊CB0以及第二目前區塊CB1中之其他頁面捨棄。以第3圖為例,當第一目前區塊CB0之頁面P4為參考特定頁面時,控制器160偵測到第一目前頁面CB0中之頁面P6以及第二目前頁面CB1中之頁面P1~P2中之寫入序號與第一目前區塊CB0之頁面P4的寫入序號相同。控制器160在步驟S618中,讀取第一目前區塊CB0之頁面P4中之邏輯位址”AD7”,並且將與第一目前頁面CB0中之頁面P6以及第二目前頁面CB1中之頁面P1~P2的邏輯位址進行比較。接著,由於第一目前區塊CB0中的頁面P6的寫入序號為AD9、第二目前區塊CB1中的頁面P2的寫入序號為AD10,故控制器160將邏輯位址大於頁面P4中之邏輯位址”AD7”的第一目前區塊CB0中的頁面P6以及第二目前區塊CB1中的頁面P2捨棄。
第7圖為本發明所提供之一資料維護方法之另一種實施例的流程圖。第7圖所示之資料維護方法包括了第5圖以及第6圖所示之資料維護方法,其中第7圖所示之步驟S700~S710的步驟相似於第5圖之步驟S500~S510,並且第7圖之步驟S714~S730之步驟相似於第6圖中之步驟S602~S620,其說明請參考第5~6圖,再此不再贅述。
本發明所提供之資料儲存裝置140以及資料維護方法可將寫入指令之順序紀錄於頁面中,故資料儲存裝置140以及資料維護方法可藉由寫入指令之順序重建實體轉邏輯對應表。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
TB1‧‧‧資料鏈結關係表
Claims (21)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數區塊,每一上述區塊包括複數頁面;以及一控制器,依序接收複數寫入指令,根據接收上述寫入指令之順序,分配上述寫入指令不同之複數寫入序號,根據上述寫入指令,依序將複數資料以及目前所執行之上述寫入指令之上述寫入序號寫入上述區塊中之一第一目前區塊以及一第二目前區塊之上述頁面中,其中至少兩個位於上述第一目前區塊或上述第二目前區塊中的上述頁面,具有不同的上述寫入序號。
- 根據申請專利範圍第1項之資料儲存裝置,其中上述寫入指令更包括上述資料之複數邏輯位址,上述控制器更將上述資料所相應之上述邏輯位址寫入上述第一目前區塊以及上述第二目前區塊之上述頁面中。
- 根據申請專利範圍第2項之資料儲存裝置,其中上述控制器更根據上述寫入指令判斷上述寫入指令所指示寫入之上述資料的一型態為一連續型態或者一隨機型態,並且將屬於上述連續型態之上述資料寫入上述第一目前區塊中之上述頁面,將屬於上述隨機型態之上述資料寫入上述第二目前區塊中之上述頁面。
- 根據申請專利範圍第3項之資料儲存裝置,其中當上述控制器接收上述寫入指令中用以寫入上述資料中之複數第一資料之一第一寫入指令時,上述控制器根據接收上述第一寫 入指令之順序分配上述寫入序號中之一第一寫入序號給上述第一寫入指令,根據上述第一寫入指令以及上述型態依序將上述第一資料、上述第一寫入序號以及上述第一資料所相應之上述邏輯位址寫入上述第一目前區塊以及上述第二目前區塊中之複數第一頁面,其中每一上述第一頁面包括上述第一資料中之一者、上述第一寫入序號以及上述邏輯位址中之一者。
- 根據申請專利範圍第2項之資料儲存裝置,其中當發生一斷電事件並且上述資料儲存裝置恢復電力後,上述控制器依序讀取上述第一目前區塊以及上述第二目前區塊以建立一實體轉邏輯對應表。
- 根據申請專利範圍第5項之資料儲存裝置,其中當上述控制器在讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊或者上述第二目前區塊中之一特定頁面損壞時,上述控制器捨棄上述特定頁面並且讀取上述特定頁面之上述寫入序號以及上述邏輯位址,以將上述寫入序號大於上述特定頁面之上述寫入序號的上述頁面捨棄並且將上述寫入序號等於上述特定頁面之上述寫入序號並且上述邏輯位址大於上述特定頁面之上述邏輯位址的上述頁面捨棄。
- 根據申請專利範圍第6項之資料儲存裝置,其中當上述特定頁面之上述寫入序號以及上述邏輯位址無法被成功讀取時,上述控制器捨棄上述特定頁面並且讀取位於上述特定頁面之前之一參考特定頁面之上述寫入序號以及上述邏輯 位址,以將上述寫入序號大於上述參考特定頁面之上述寫入序號的上述頁面捨棄並且將上述寫入序號等於上述特定頁面之上述寫入序號並且上述邏輯位址大於上述參考特定頁面之上述邏輯位址的上述頁面捨棄。
- 根據申請專利範圍第5項之資料儲存裝置,其中當上述控制器在讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊以及上述第二目前區塊中存在具有相同上述邏輯位址之上述頁面時,上述控制器比較具有相同上述邏輯位址之上述頁面之上述寫入序號,並且將具有較小上述寫入序號之上述頁面捨棄。
- 一種資料儲存裝置,包括:一快閃記憶體,包括至少三個複數區塊,每一上述區塊包括複數頁面,每一頁面具有一備用區域;以及一控制器,用以當發生一斷電事件並且上述資料儲存裝置恢復電力後,依序讀取上述區塊中之一第一目前區塊以及一第二目前區塊中之所有上述頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表,其中當上述控制器在讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊或者上述第二目前區塊中之一特定頁面損壞時,上述控制器捨棄上述特定頁面並且讀取上述特定頁面中之上述寫入序號以及上述邏輯位址,以將上述寫入序號大於上述特定頁面之上述寫入序號的上述頁面捨棄並且將上述寫入序號等於上述特定頁面之 上述寫入序號並且上述邏輯位址大於上述特定頁面之上述邏輯位址的上述頁面捨棄。
- 根據申請專利範圍第9項之資料儲存裝置,其中當上述特定頁面之上述寫入序號以及上述邏輯位址無法被成功讀取時,上述控制器捨棄上述特定頁面並且讀取位於上述特定頁面之前之一參考特定頁面之上述寫入序號以及上述邏輯位址,以將上述寫入序號大於上述參考特定頁面之上述寫入序號的上述頁面捨棄並且將上述寫入序號等於上述特定頁面之上述寫入序號並且上述邏輯位址大於上述參考特定頁面之上述邏輯位址的上述頁面捨棄。
- 一種資料儲存裝置,包括:一快閃記憶體,包括至少三個複數區塊,每一上述區塊包括複數頁面,每一頁面具有一備用區域;以及一控制器,用以當發生一斷電事件並且上述資料儲存裝置恢復電力後,依序讀取上述區塊中之一第一目前區塊以及一第二目前區塊中之所有上述頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表,其中當上述控制器在讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊以及上述第二目前區塊中存在具有相同上述邏輯位址之上述頁面時,上述控制器比較具有相同上述邏輯位址之上述頁面之上述寫入序號,並且將具有較小上述寫入序號之上述頁面捨棄。
- 一種資料維護方法,適用於包括一快閃記憶體之一資料儲存裝置,上述快閃記憶體包括複數區塊,每一上述區塊包 括複數頁面,資料維護方法包括:依序接收複數寫入指令;根據接收上述寫入指令之順序,分配上述寫入指令不同之複數寫入序號;以及根據上述寫入指令,依序將複數資料以及目前所執行之上述寫入指令之上述寫入序號寫入上述區塊中之一第一目前區塊以及一第二目前區塊之上述頁面中,其中至少兩個位於上述第一目前區塊或上述第二目前區塊中的上述頁面,具有不同的上述寫入序號。
- 根據申請專利範圍第12項之資料維護方法,其中上述寫入指令更包括上述資料之複數邏輯位址,並且資料維護方法更包括將上述資料所相應之上述邏輯位址寫入上述第一目前區塊以及上述第二目前區塊之上述頁面中。
- 根據申請專利範圍第13項之資料維護方法,其中上述將上述資料以及目前所執行之上述寫入指令之上述寫入序號寫入上述區塊中之上述第一目前區塊以及上述第二目前區塊之上述頁面中的步驟更包括:根據所接收上述寫入指令中用以寫入上述資料中之複數第一資料之一第一寫入指令之順序,分配上述寫入序號中之一第一寫入序號給上述第一寫入指令;根據上述寫入指令,判斷上述寫入指令所指示寫入之上述資料的一型態為一連續型態或者一隨機型態; 當上述資料屬於上述連續型態時,將上述第一資料、上述第一寫入序號以及上述第一資料所相應之上述邏輯位址寫入上述第一目前區塊中之複數第一頁面;以及當上述資料屬於上述隨機型態時,將寫入上述第二目前區塊中之上述頁面,將上述第一資料、上述第一寫入序號以及上述第一資料所相應之上述邏輯位址寫入上述第二目前區塊中之至少一第二頁面,其中每一上述第一頁面以及上述第二頁面包括上述邏輯位址中之一者、上述第一寫入序號以及上述第一資料中之一者。
- 根據申請專利範圍第13項之資料維護方法,更包括當發生一斷電事件並且上述資料儲存裝置恢復電力後,依序讀取上述第一目前區塊以及上述第二目前區塊以建立一實體轉邏輯對應表。
- 根據申請專利範圍第15項之資料維護方法,更包括:當在讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊或者上述第二目前區塊中之一特定頁面損壞時,捨棄上述特定頁面並且將上述特定頁面之上述寫入序號與上述第一目前區塊以及上二目前區塊中之其他上述頁面之上述寫入序號進行比較;將上述寫入序號大於上述特定頁面之上述寫入序號的上述頁面捨棄;當上述特定頁面之上述寫入序號等於上述第一目前區塊以及上述第二目前區塊中之至少一第三頁面時,將上述特定 頁面之上述邏輯位址與上述第三頁面之上述邏輯位址進行比較;以及將上述邏輯位址大於上述特定頁面之上述邏輯位址的上述第三頁面捨棄。
- 根據申請專利範圍第16項之資料維護方法,更包括:當上述特定頁面之上述寫入序號以及上述邏輯位址無法被成功讀取時,捨棄上述特定頁面並且將位於上述特定頁面之前之一參考特定頁面之上述寫入序號與上述第一目前區塊以及上二目前區塊中之其他上述頁面之上述寫入序號進行比較;將上述寫入序號大於上述參考特定頁面之上述寫入序號的上述頁面捨棄;當上述參考特定頁面之上述寫入序號等於上述第一目前區塊以及上述第二目前區塊中之至少一第四頁面時,將上述參考特定頁面之上述邏輯位址與上述第四頁面之上述邏輯位址進行比較;以及將上述邏輯位址大於上述參考特定頁面之上述邏輯位址的上述第四頁面捨棄。
- 根據申請專利範圍第15項之資料維護方法,更包括當讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊以及上述第二目前區塊中存在具有相同上述邏輯位址之上述頁面時,比較具有相同上述邏輯位址之上述頁面之上述寫入序號,並且將具有較小上述寫入序號之上述頁面捨棄。
- 一種資料維護方法,適用於包括一快閃記憶體之一資料儲存裝置,上述快閃記憶體包括至少三個複數區塊,每一上述區塊包括複數頁面,資料維護方法包括:當發生一斷電事件並且上述資料儲存裝置恢復電力後,依序讀取上述區塊中之一第一目前區塊以及一第二目前區塊中之所有上述頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表;在讀取上述第一目前區塊以及上述第二目前區塊時,偵測上述頁面是否損壞;當偵測到上述第一目前區塊或者上述第二目前區塊中之一特定頁面損壞時,捨棄上述特定頁面並且將上述特定頁面之上述寫入序號與上述第一目前區塊以及上二目前區塊中之其他上述頁面之上述寫入序號進行比較;將上述寫入序號大於上述特定頁面之上述寫入序號的上述頁面捨棄;當上述特定頁面之上述寫入序號等於上述第一目前區塊以及上述第二目前區塊中之至少一第三頁面時,將上述特定頁面之上述邏輯位址與上述第三頁面之上述邏輯位址進行比較;以及將上述邏輯位址大於上述特定頁面之上述邏輯位址的上述第三頁面捨棄。
- 根據申請專利範圍第19項之資料維護方法,更包括:當上述特定頁面之上述寫入序號以及上述邏輯位址無法被成功讀取時,捨棄上述特定頁面並且將位於上述特定頁面 之前之一參考特定頁面之上述寫入序號與上述第一目前區塊以及上二目前區塊中之其他上述頁面之上述寫入序號進行比較;將上述寫入序號大於上述參考特定頁面之上述寫入序號的上述頁面捨棄;當上述參考特定頁面之上述寫入序號等於上述第一目前區塊以及上述第二目前區塊中之至少一第四頁面時,將上述參考特定頁面之上述邏輯位址與上述第四頁面之上述邏輯位址進行比較;以及將上述邏輯位址大於上述參考特定頁面之上述邏輯位址的上述第四頁面捨棄。
- 一種資料維護方法,適用於包括一快閃記憶體之一資料儲存裝置,上述快閃記憶體包括至少三個複數區塊,每一上述區塊包括複數頁面,資料維護方法包括:當發生一斷電事件並且上述資料儲存裝置恢復電力後,依序讀取上述區塊中之一第一目前區塊以及一第二目前區塊中之所有上述頁面所儲存的複數邏輯位址以及複數寫入序號,以建立一實體轉邏輯對應表;在讀取上述第一目前區塊以及上述第二目前區塊的過程中,偵測到上述第一目前區塊以及上述第二目前區塊中是否存在具有相同上述邏輯位址之上述頁面;當讀取上述第一目前區塊以及上述第二目前區塊的過程中偵測到上述第一目前區塊以及上述第二目前區塊中存在具 有相同上述邏輯位址之上述頁面時,比較具有相同上述邏輯位址之上述頁面之上述寫入序號;以及將具有較小上述寫入序號之上述頁面捨棄。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW104138018A TWI604308B (zh) | 2015-11-18 | 2015-11-18 | 資料儲存裝置及其資料維護方法 |
| CN201610220241.6A CN106708421B (zh) | 2015-11-18 | 2016-04-11 | 数据储存装置及其数据维护方法 |
| US15/331,154 US10255192B2 (en) | 2015-11-18 | 2016-10-21 | Data storage device and data maintenance method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW104138018A TWI604308B (zh) | 2015-11-18 | 2015-11-18 | 資料儲存裝置及其資料維護方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201719416A TW201719416A (zh) | 2017-06-01 |
| TWI604308B true TWI604308B (zh) | 2017-11-01 |
Family
ID=58691110
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104138018A TWI604308B (zh) | 2015-11-18 | 2015-11-18 | 資料儲存裝置及其資料維護方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10255192B2 (zh) |
| CN (1) | CN106708421B (zh) |
| TW (1) | TWI604308B (zh) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10802740B2 (en) * | 2016-04-21 | 2020-10-13 | Netapp, Inc. | Systems, methods, and computer readable media providing arbitrary sizing of data extents |
| TWI604373B (zh) * | 2016-12-13 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
| US10956346B1 (en) | 2017-01-13 | 2021-03-23 | Lightbits Labs Ltd. | Storage system having an in-line hardware accelerator |
| CN109558092A (zh) * | 2018-12-17 | 2019-04-02 | 杭州普创电子有限公司 | 一种芯片内部flash存储方法及装置 |
| KR102693311B1 (ko) * | 2018-12-20 | 2024-08-09 | 삼성전자주식회사 | 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치 |
| KR20200089547A (ko) * | 2019-01-17 | 2020-07-27 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
| TWI737189B (zh) * | 2019-02-23 | 2021-08-21 | 國立清華大學 | 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置 |
| KR102770897B1 (ko) * | 2019-04-30 | 2025-02-19 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 플래시 메모리의 판독 레벨을 관리하는 전자 장치 및 방법 |
| CN114503086A (zh) * | 2019-10-09 | 2022-05-13 | 美光科技公司 | 自适应损耗平衡方法及算法 |
| US11287989B2 (en) * | 2020-03-24 | 2022-03-29 | Western Digital Technologies, Inc. | Dynamic allocation of sub blocks |
| CN113495674B (zh) | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
| CN113495670B (zh) * | 2020-04-01 | 2024-03-26 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
| CN113495675B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
| EP3964940A4 (en) | 2020-04-01 | 2022-08-17 | Changxin Memory Technologies, Inc. | READ/WRITE METHOD AND STORAGE DEVICE |
| EP3936996A4 (en) | 2020-04-01 | 2022-07-06 | Changxin Memory Technologies, Inc. | READ-WRITE METHOD AND STORAGE DEVICE |
| EP3985494B1 (en) | 2020-04-01 | 2024-01-17 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
| EP3964941B1 (en) | 2020-04-01 | 2024-02-28 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
| CN113495671B (zh) | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
| CN113495672B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
| US11863469B2 (en) | 2020-05-06 | 2024-01-02 | International Business Machines Corporation | Utilizing coherently attached interfaces in a network stack framework |
| KR102863334B1 (ko) * | 2020-06-29 | 2025-09-24 | 에스케이하이닉스 주식회사 | 베드 블록을 처리하는 메모리 시스템 및 동작 방법 |
| US11587619B2 (en) * | 2021-06-28 | 2023-02-21 | Sandisk Technologies Llc | Block configuration for memory device with separate sub-blocks |
| US11556467B1 (en) * | 2021-07-13 | 2023-01-17 | Micron Technology, Inc. | Optimizing garbage collection that uses a logical-to-physical table search |
| US12405730B2 (en) * | 2023-11-07 | 2025-09-02 | SanDisk Technologies, Inc. | Data routing in networked SSDs |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
| US5951691A (en) * | 1997-05-16 | 1999-09-14 | International Business Machines Corporation | Method and system for detection and reconstruction of corrupted data in a data storage subsystem |
| US9286198B2 (en) * | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
| US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
| US9753847B2 (en) * | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
| TWI466121B (zh) * | 2010-12-31 | 2014-12-21 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
| TWI562153B (en) | 2011-06-15 | 2016-12-11 | Phison Electronics Corp | Memory erasing method, memory controller and memory storage apparatus |
| US9690695B2 (en) * | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
| JP2014146418A (ja) * | 2013-01-25 | 2014-08-14 | Toyota Motor Corp | 組電池の処理装置及び組電池の処理方法 |
| US9122587B2 (en) * | 2013-03-06 | 2015-09-01 | Seagate Technology Llc | Self recovery in a solid state drive |
| US9646705B2 (en) | 2013-06-12 | 2017-05-09 | Samsung Electronics Co., Ltd. | Memory systems including nonvolatile memory devices and dynamic access methods thereof |
| KR102210961B1 (ko) * | 2013-06-12 | 2021-02-03 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법 |
| US9645894B2 (en) | 2013-12-26 | 2017-05-09 | Silicon Motion, Inc. | Data storage device and flash memory control method |
-
2015
- 2015-11-18 TW TW104138018A patent/TWI604308B/zh active
-
2016
- 2016-04-11 CN CN201610220241.6A patent/CN106708421B/zh active Active
- 2016-10-21 US US15/331,154 patent/US10255192B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US10255192B2 (en) | 2019-04-09 |
| TW201719416A (zh) | 2017-06-01 |
| CN106708421B (zh) | 2019-09-24 |
| CN106708421A (zh) | 2017-05-24 |
| US20170139839A1 (en) | 2017-05-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI604308B (zh) | 資料儲存裝置及其資料維護方法 | |
| TWI607312B (zh) | 資料儲存裝置及其資料寫入方法 | |
| TWI606388B (zh) | 資料儲存裝置及其資料維護方法 | |
| TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
| CN107977161B (zh) | 数据储存装置及其数据写入方法 | |
| TWI479313B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
| TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
| TWI569144B (zh) | 資料儲存裝置及其斷電事件判斷方法 | |
| TW201308080A (zh) | 記憶體儲存裝置、記憶體控制器與資料寫入方法 | |
| TWI420313B (zh) | 資料管理方法、記憶體控制器與嵌入式記憶體儲存裝置 | |
| TWI420308B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
| TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
| TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
| TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TW201913376A (zh) | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 | |
| TWI578222B (zh) | 資料儲存裝置及其資料維護方法 | |
| TWI640868B (zh) | 資料儲存裝置及其資料寫入方法 | |
| TW201407614A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
| TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
| CN103853666B (zh) | 存储器、其存储控制器与数据写入方法 | |
| CN102591738B (zh) | 数据管理方法、存储器控制器与嵌入式存储器储存装置 | |
| CN102156619B (zh) | 闪存储存装置、闪存控制器及闪存的数据写入方法 | |
| TWI564901B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |