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

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

Info

Publication number
TWI578222B
TWI578222B TW104138019A TW104138019A TWI578222B TW I578222 B TWI578222 B TW I578222B TW 104138019 A TW104138019 A TW 104138019A TW 104138019 A TW104138019 A TW 104138019A TW I578222 B TWI578222 B TW I578222B
Authority
TW
Taiwan
Prior art keywords
current block
page
logical address
bit
data
Prior art date
Application number
TW104138019A
Other languages
English (en)
Other versions
TW201719373A (zh
Inventor
柯冠宇
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW104138019A priority Critical patent/TWI578222B/zh
Priority to CN201610222091.2A priority patent/CN106708422B/zh
Priority to US15/331,116 priority patent/US20170139600A1/en
Application granted granted Critical
Publication of TWI578222B publication Critical patent/TWI578222B/zh
Publication of TW201719373A publication Critical patent/TW201719373A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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)
  • Memory System (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‧‧‧寫入序號
CB0_ADT‧‧‧第一目前區塊表
CB1_ADT‧‧‧第二目前區塊表
CB0_SNT‧‧‧第一目前區塊序號表
CB1_SNT‧‧‧第二目前區塊序號表
BT‧‧‧位元表
S500~S504、S600~S610‧‧‧步驟
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。
第2圖為本發明所提供之一快閃記憶體之一種實施例的方塊圖。
第3圖為本發明所提供之一目前區塊之一種實施例的方塊圖。
第4圖為本發明所提供之一目前區塊表以及位元表的方塊圖。
第5圖為本發明所提供之一資料維護方法之一種實施例的流程圖。
第6圖為本發明所提供之一目前區塊表整理方法之一種實施例的流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第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更依序根據寫入指令,將複數資料以及目前所執行之寫入指令之寫入序號寫入區塊中之一第一目前區塊CB0以及一第二目前區塊CB1之頁面中。在一實施例中,控制器160係根據寫入指令,判斷寫入指令所指示寫入之資料的一型態係為一連續型態或者一隨機型態,並且將屬於連續型態之資料寫入第一目前區塊CB0中之頁面,將屬於隨機型態之資料寫入第二目前區塊CB1中之頁面。舉例而言,當寫入指令所指示寫入之資料的總長度大於一個頁面的資料量時,控制器160判斷該寫入指令之資料為連續型態。當寫入指令所指示寫入之資料的總長度小於等於一個頁面的資料量時,控制器160判斷該寫入指令之資料為隨機型態,但本發明不限於此。 值得注意的是,當寫入指令之資料為連續型態,但該等資料中具有無法寫滿一個頁面之資料的資料時,控制器160判斷該無法寫滿一個頁面之資料為隨機型態。在另一實施例中,控制器160更將資料所相應之邏輯位址寫入第一目前區塊CB0以及第二目前區塊CB1之頁面中。詳細而言,在寫入資料的過程中,控制器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”以作為第二寫入指令之寫入序號。值得注意的是,其中第二寫入指令包括第二資料D2之邏輯位址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係先在隨機存取記憶體166中建立一第一目前區塊表CB0_ADT以及一第二目前區塊表CB1_ADT,並且根據一位元表BT整理第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT,以在隨機存取記憶體166中重建實體轉邏輯對應表,如第4圖所示。
詳細而言,當資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160依序讀取快閃記憶體180中之第一目前區塊CB0以及第二目前區塊CB1,以建立第一目前區塊表CB0_ADT、第二目前區塊表CB1_ADT、一第一目前區塊序號表CB0_SNT以及一第二目前區塊序號表CB1_SNT。在一實施例中,第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT分別具有第一目前區塊CB0以及第二目前區塊CB1中之所有頁面中所儲存之邏輯位址。第一目前區塊序號表CB0_SNT以及第二目前區塊序號表CB1_SNT分別具有第一目前區塊CB0以及第二目前區塊CB1中之所有頁面中所儲存之寫入序號。值得注意的是,在某些實施例中,第一目前區塊序號表CB0_SNT以及第二目前區塊序號表CB1_SNT可分別 設置於第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT中,但本發明不限於此。
接著,控制器160根據第二目前區塊CB1中之每一 頁面之邏輯位址建立一位元表BT。在一實施例中,位元表BT具有複數個位元,位元依序代表每一邏輯位址,但本發明不限於此。位元表BT亦以其他形式記錄每一邏輯位址的對應關係。 控制器160在讀取第二目前區塊CB1之頁面時,將位元表BT中代表所讀取之第二目前區塊CB1中之頁面之邏輯位址的位元寫入一既定值。舉例而言,既定值可為1,但本發明不限於此。 在其他實施例中,既定值可為0或者其他數值。
控制器160更用以根據位元表BT整理第一目前區 塊表CB0_ADT以及第二目前區塊表CB1_ADT。詳細而言,控制器160係用以根據位元表BT,判斷第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT中是否具有重複之邏輯位址,以捨棄具有重複邏輯位址之頁面資料只保留一個最新的資料。舉例而言,控制器160係在讀取第一目前區塊表CB0_ADT中相應於一第一頁面之一第一邏輯位址時,根據位元表BT中代表第一邏輯位址之位元是否為既定值,判斷第一邏輯位址是否重複出現於第二目前區塊表CB1_ADT中。
當代表第一邏輯位址之位元為既定值時,控制器 160判斷第一邏輯位址重複出現於第二目前區塊表CB1_ADT中。當控制器160判斷第一邏輯位址重複出現於第二目前區塊表CB1_ADT時,控制器160接著讀取第二目前區塊表CB1_ADT以找出具有第一邏輯位址之至少一第二頁面。如第3圖所示, 第一目前區塊CB0以及第二目前區塊CB1之頁面具有複數寫入序號,第一目前區塊CB0以及第二目前區塊CB1之每一頁面,具有一個寫入序號用以代表頁面之資料被寫入的順序。值得注意的是,不具有寫入序號以及邏輯位址的頁面是尚未被寫入之頁面。控制器160找出具有第一邏輯位址之第二頁面後,根據第一目前區塊序號表CB0_SNT以及第二目前區塊序號表CB1_SNT,比較第一頁面以及第二頁面所相應之寫入序號,以將第一頁面以及第二頁面中寫入序號小於第一頁面以及第二頁面中之其他者之至少一者捨棄,使得重複邏輯位址之頁面中最後一個被寫入之資料保留下來。
當代表第一邏輯位址之位元不是既定值時,控制 器160判斷第一邏輯位址沒有重複出現於第二目前區塊表CB1_ADT中。當控制器160判斷第一邏輯位址沒有重複出現於第二目前區塊表CB1_ADT時,控制器160接著讀取第一目前區塊表CB0_ADT中之下一個頁面的邏輯位址。
第4圖為本發明所提供之目前區塊表以及位元表 的方塊圖。值得注意的是,第4圖是以第3圖所示之第一目前區塊CB0以及第二目前區塊CB1為例說明,本發明不限於此。詳細而言,當資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160依序讀取快閃記憶體180中之第3圖所示之第一目前區塊CB0,以將儲存於第一目前區塊CB0之備用區域SPA0~SPA15中之邏輯位址填入第一目前區塊表CB0_ADT中所相應之頁面的欄位中,並且將儲存於第一目前區塊CB0之備用區域SPA0~SPA15中之寫入序號填入第一目前區 塊序號表CB0_SNT中所相應之頁面的欄位中。接著,控制器160依序讀取快閃記憶體180中之第3圖所示之第二目前區塊CB1,以將儲存於第二目前區塊CB1之備用區域SPA0~SPA15中之邏輯位址填入第二目前區塊表CB1_ADT中所相應之頁面的欄位中、將儲存於第二目前區塊CB1之備用區域SPA0~SPA15中之寫入序號填入第二目前區塊序號表CB1_SNT中所相應之頁面的欄位中、並且根據所讀取到之邏輯位址將既定值寫入位元表BT中相應於所讀取道之邏輯位址之位元欄位。詳細而言,位元表BT具有複數個位元,每一位元分別依序對應至(代表)快閃記憶體180可儲存之邏輯位址AD1~AND。換言之,位元表BT包括所有主機120可用之邏輯位址的對應位元,位元表BT包括儲存於快閃記憶體180中所有區塊中所儲存之邏輯位址的對應位元。 值得注意的是,在第3圖以及第4圖之實施例中,每一區塊包括16個頁面,但本發明不限於此。在其他實施例中,一個區塊亦可包括265、1036等其他數量的頁面。另外,在本實施例中,既定值為1。因此,控制器160係將既定值”1”寫入位元表BT中對應於第二目前區塊CB1中所具有之邏輯位址AD1、AD6、AD10、AD2的位元。不存在於二目前區塊CB1中之其他位元,則保持0。
接著,控制器160依序讀取第一目前區塊表 CB0_ADT中之邏輯位址,並且根據位元表BT,判斷第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT中是否具有重複之邏輯位址,以捨棄具有重複邏輯位址之頁面資料只保留一個最新的資料。舉例而言,控制器160讀取第一目前區塊表 CB0_ADT中相應於頁面P0之邏輯位址AD2時,判斷位元表BT中代表邏輯位址AD2之位元是否為既定值”1”。在本實施例中,位元表BT中代表邏輯位址AD2之位元為1,故控制器160判斷第二目前區塊表CB1_ADT具有重複之邏輯位址AD2。換言之,第一目前區塊CB0所儲存之相應於邏輯位址AD2的資料D2重複寫在第二目前區塊CB1中。因此,控制器160則需要在第二目前區塊CB1中找出重複之頁面,並且判斷哪個頁面是最後被寫入的,以保留最後被寫入之頁面並捨棄其他頁面。詳細而言,控制器160根據位元表BT得知,第二目前區塊表CB1_ADT具有重複的邏輯位址AD2時,控制器160依序讀取第二目前區塊表CB1_ADT中之所有欄位以尋找重複的邏輯位址AD2。當控制器160讀到相應於第二目前區塊CB1之頁面P3的欄位時,獲得邏輯位址AD2。因此,控制器160可得知具有重複邏輯位址之頁面及為第二目前區塊CB1之頁面P3。接著,控制器160自第一目前區塊序號表CB0_SNT中讀取相應於第一目前區塊CB0之頁面P0的欄位以獲得第一目前區塊CB0之頁面P0之寫入序號”2”,並且自第二目前區塊序號表CB1_SNT中讀取相應於第二目前區塊CB1之頁面P3的欄位以獲得第二目前區塊CB1之頁面P3之寫入序號”4”。接著,控制器160比較第一目前區塊CB0之頁面P0之寫入序號”2”以及第二目前區塊CB1之頁面P3之寫入序號”4”後,判斷具有較大寫入序號”4”之第二目前區塊CB1之頁面P3是在第一目前區塊CB0之頁面P0之後寫入的。因此,控制器160保留第二目前區塊表CB1_ADT中頁面P3之資料,並且捨棄第一目前區塊表CB0_ADT中頁面P0的資料。
接著,控制器160讀取第一目前區塊表CB0_ADT中 相應於頁面P1之邏輯位址AD3時,判斷位元表BT中代表邏輯位址AD3之位元是否為既定值”1”。在本實施例中,位元表BT中代表邏輯位址AD3之位元為0,故控制器160判斷第二目前區塊表CB1_ADT並不具有重複之邏輯位址AD3。換言之,第一目前區塊CB0所儲存之相應於邏輯位址AD3的資料D2並未重複寫在第二目前區塊CB1中。依此類推,直到控制器160處理完所有第一目前區塊表CB0_ADT中之所有資料。
由上述可知,控制器160可藉由先前所導入之寫入 序號以及位元表BT,成功辨認在不同之目前區塊中具有相同邏輯位址的資料的寫入順序,以在整理完第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT後重建實體轉邏輯對應表。換言之,控制器160不會將較舊的資料建入實體轉邏輯對應表中。
第5圖為本發明所提供之一資料維護方法之一種 實施例的流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140,用以在資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後重建實體轉邏輯對應表。流程開始於步驟S500。
在步驟S500中,當資料儲存裝置140發生一斷電事 件並且資料儲存裝置140恢復電力後,控制器160依序讀取快閃記憶體180中之一第一目前區塊CB0以及一第二目前區塊CB1,以建立一第一目前區塊表CB0_ADT、一第二目前區塊表CB1_ADT、第一目前區塊序號表CB0_SNT以及第二目前區塊序 號表CB1_SNT。在一實施例中,第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT分別具有第一目前區塊CB0以及第二目前區塊CB1中之所有頁面中所儲存之邏輯位址。第一目前區塊序號表CB0_SNT以及第二目前區塊序號表CB1_SNT分別具有第一目前區塊CB0以及第二目前區塊CB1中之所有頁面中所儲存之寫入序號。值得注意的是,在某些實施例中,第一目前區塊序號表CB0_SNT以及第二目前區塊序號表CB1_SNT可分別設置於第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT中,但本發明不限於此。以第3圖以及第4圖為例,當資料儲存裝置140發生一斷電事件並且資料儲存裝置140恢復電力後,控制器160依序讀取快閃記憶體180中之第3圖所示之第一目前區塊CB0,以將儲存於第一目前區塊CB0之備用區域SPA0~SPA15中之邏輯位址填入第一目前區塊表CB0_ADT中所相應之頁面的欄位中,並且將儲存於第一目前區塊CB0之備用區域SPA0~SPA15中之寫入序號填入第一目前區塊序號表CB0_SNT中所相應之頁面的欄位中。接著,控制器160依序讀取快閃記憶體180中之第3圖所示之第二目前區塊CB1,以將儲存於第二目前區塊CB1之備用區域SPA0~SPA15中之邏輯位址填入第二目前區塊表CB1_ADT中所相應之頁面的欄位中、將儲存於第二目前區塊CB1之備用區域SPA0~SPA15中之寫入序號填入第二目前區塊序號表CB1_SNT中所相應之頁面的欄位中。
接著,在步驟S502中,控制器160根據第二目前區 塊CB1中之每一頁面之邏輯位址建立一位元表BT。詳細而言,在一實施例中,位元表BT具有複數個位元,位元依序代表每一 邏輯位址,但本發明不限於此。位元表BT亦以其他形式記錄每一邏輯位址的對應關係。控制器160在讀取第二目前區塊CB1之頁面時,將位元表BT中代表所讀取之頁面之邏輯位址的位元寫入一既定值。舉例而言,既定值可為1,但本發明不限於此。 在其他實施例中,既定值可為0或者其他數值。以第3圖以及第4圖為例,既定值為1。因此,控制器160係將既定值”1”寫入位元表BT中對應於第二目前區塊CB1中所具有之邏輯位址AD1、AD6、AD10、AD2的位元。不存在於二目前區塊CB1中之其他位元,則保持0。
接著,在步驟S504中,控制器160根據位元表BT, 整理第一目前區塊表CB0_ADT以及第二目前區塊表CB1_ADT,以重建實體轉邏輯對應表。值得注意的是,在本實施例中,第一目前區塊表CB0_ADT、第二目前區塊表CB1_ADT、第一目前區塊序號表CB0_SNT、一第二目前區塊序號表CB1_SNT、位元表BT以及實體轉邏輯對應表皆是設置於隨機存取記憶體166中。
第6圖為本發明所提供之一目前區塊表整理方法 之一種實施例的流程圖。目前區塊表整理方法適用於第1圖所示之資料儲存裝置140,其中目前區塊表整理方法是第5圖中步驟S504之一種實施例。流程開始於步驟S600。
在步驟S600中,控制器160依序讀取第一目前區塊 表CB0_ADT中相應於頁面之邏輯位址中之一者。
接著,在步驟S602中,控制器160讀取位元表BT, 以根據位元表BT,判斷第二目前區塊表CB1_ADT中是否具有 與所讀取之第一目前區塊表CB0_ADT之邏輯位址重複的邏輯位址。詳細而言,當控制器160在步驟S600中讀取了第一目前區塊表CB0_ADT中相應於一第一頁面之一第一邏輯位址時,控制器160則在步驟S602中根據位元表BT中代表第一邏輯位址之位元是否為既定值,判斷第一邏輯位址是否重複出現於第二目前區塊表CB1_ADT中。當代表第一邏輯位址之位元為既定值時,控制器160判斷第一邏輯位址重複出現於第二目前區塊表CB1_ADT並且流程進行至步驟S604。當代表第一邏輯位址之位元不是既定值時,控制器160判斷第一邏輯位址沒有重複出現於第二目前區塊表CB1_ADT,流程進行至步驟S610。
在步驟S604中,控制器160依序讀取第二目前區塊 表CB1_ADT以找出在第二目前區塊表CB1_ADT中具有第一邏輯位址之至少一第二頁面。
接著,在步驟S606中,控制器160根據第一目前區 塊序號表CB0_SNT以及第二目前區塊序號表CB1_SNT,比較第一頁面以及第二頁面所相應之寫入序號。
接著,在步驟S608中,控制器160將第一頁面以及 第二頁面中寫入序號小於第一頁面以及第二頁面中之其他者之至少一者捨棄,使得重複邏輯位址之頁面中最後一個被寫入之資料保留下來。
接著,在步驟S610中,控制器160判斷第一目前區 塊表CB0_ADT中所有的邏輯位址是否皆讀取完畢。當第一目前區塊表CB0_ADT中所有的邏輯位址皆讀取完畢時,流程結束於步驟S610。當第一目前區塊表CB0_ADT中具有至少一邏輯位址 尚未讀取時,流程回到步驟S600,以讀取第一目前區塊表CB0_ADT中之下一個頁面的邏輯位址。
本發明所提供之資料儲存裝置140以及資料維護 方法可藉由位元表BT判斷兩個表中是否具有重複之邏輯位址以降低實體轉邏輯對應表重建的時間。
本發明之方法,或特定型態或其部份,可以以程 式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已, 當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
TB1‧‧‧資料鏈結關係表

Claims (18)

  1. 一種資料儲存裝置,包括:一快閃記憶體,包括複數區塊,每一上述區塊包括複數頁面,其中上述快閃記憶體可儲存相應於複數邏輯位址之資料;以及一控制器,當上述資料儲存裝置發生一斷電事件並且上述資料儲存裝置恢復電力後,上述控制器依序讀取上述快閃記憶體中之一第一目前區塊以及一第二目前區塊,以建立一第一目前區塊表以及一第二目前區塊表並且根據上述第二目前區塊中之每一上述頁面之上述邏輯位址建立一位元表,其中上述控制器更用以根據上述位元表整理上述第一目前區塊表以及上述第二目前區塊表。
  2. 根據申請專利範圍第1項之資料儲存裝置,其中上述位元表具有複數個位元,上述位元依序代表每一上述邏輯位址,上述第一目前區塊表以及上述第二目前區塊表分別具有上述第一目前區塊以及上述第二目前區塊中之所有上述頁面中所儲存之上述邏輯位址,其中上述控制器在讀取上述第二目前區塊之頁面時,將上述位元表中代表所讀取之上述頁面之上述邏輯位址的上述位元寫入一既定值。
  3. 根據申請專利範圍第2項之資料儲存裝置,其中上述控制器係用以根據上述位元表,判斷上述第一目前區塊表以及上述第二目前區塊表中是否具有重複之上述邏輯位址。
  4. 根據申請專利範圍第2項之資料儲存裝置,其中上述控制器係在讀取上述第一目前區塊表中相應於一第一頁面之一第 一邏輯位址時,根據上述位元表中代表上述第一邏輯位址之上述位元是否為上述既定值,判斷上述第一邏輯位址是否重複出現於第二目前區塊表中,其中當代表上述第一邏輯位址之上述位元為上述既定值時,上述控制器判斷上述第一邏輯位址重複出現於第二目前區塊表中,當代表上述第一邏輯位址之上述位元不是上述既定值時,上述控制器判斷上述第一邏輯位址沒有重複出現於第二目前區塊表中。
  5. 根據申請專利範圍第4項之資料儲存裝置,其中當上述控制器判斷上述第一邏輯位址重複出現於第二目前區塊表時,上述控制器接著讀取上述第二目前區塊表以找出具有上述第一邏輯位址之至少一第二頁面,當上述控制器判斷上述第一邏輯位址沒有重複出現於第二目前區塊表時,上述控制器接著讀取上述第一目前區塊表中之下一個頁面的上述邏輯位址。
  6. 根據申請專利範圍第5項之資料儲存裝置,其中上述第一目前區塊以及上述第二目前區塊之上述頁面具有複數寫入序號,上述第一目前區塊以及上述第二目前區塊之每一上述頁面,具有一個上述寫入序號用以代表上述頁面之資料被寫入的順序。
  7. 根據申請專利範圍第6項之資料儲存裝置,其中上述控制器找出具有上述第一邏輯位址之上述第二頁面後,比較上述第一頁面以及上述第二頁面所相應之上述寫入序號,以將上述第一頁面以及上述第二頁面中上述寫入序號小於上述 第一頁面以及上述第二頁面中之其他者之至少一者捨棄。
  8. 根據申請專利範圍第7項之資料儲存裝置,其中上述控制器更用以根據一第一目前區塊序號表以及一第二目前區塊序號表,比較上述第一頁面以及上述第二頁面所相應之上述寫入序號,其中上述第一目前區塊序號表包括上述第一目前區塊中之上述頁面所儲存之上述寫入序號,並且上述第二目前區塊序號表包括上述第二目前區塊中之上述頁面所儲存之上述寫入序號。
  9. 根據申請專利範圍第1項之資料儲存裝置,其中上述控制器根據至少一寫入命令,將屬於一連續型態之資料寫入上述第一目前區塊之上述頁面,並且將屬於一隨機型態之資料寫入上述第二目前區塊之上述頁面。
  10. 一種資料維護方法,適用於包括一快閃記憶體之一資料儲存裝置,其中上述快閃記憶體包括複數區塊,每一上述區塊包括複數頁面,並且上述快閃記憶體可儲存相應於複數邏輯位址之資料,資料維護方法包括:當上述資料儲存裝置發生一斷電事件並且上述資料儲存裝置恢復電力後,依序讀取上述快閃記憶體中之一第一目前區塊以及一第二目前區塊,以建立一第一目前區塊表以及一第二目前區塊表,並且根據上述第二目前區塊中之每一上述頁面之上述邏輯位址建立一位元表;以及根據上述位元表,整理上述第一目前區塊表以及上述第二目前區塊表。
  11. 根據申請專利範圍第10項之資料維護方法,其中上述位元 表具有複數個位元,上述位元依序代表每一上述邏輯位址,上述第一目前區塊表以及上述第二目前區塊表分別具有上述第一目前區塊以及上述第二目前區塊中之所有上述頁面中所儲存之上述邏輯位址,其中上述根據上述第二目前區塊中之每一上述頁面之上述邏輯位址建立上述位元表的步驟更包括讀取上述第二目前區塊之頁面時,將上述位元表中代表所讀取之上述頁面之上述邏輯位址的上述位元寫入一既定值。
  12. 根據申請專利範圍第11項之資料維護方法,其中上述根據上述位元表整理上述第一目前區塊表以及上述第二目前區塊表的步驟更包括根據上述位元表,判斷上述第一目前區塊表以及上述第二目前區塊表中是否具有重複之上述邏輯位址。
  13. 根據申請專利範圍第12項之資料維護方法,其中上述根據上述位元表整理上述第一目前區塊表以及上述第二目前區塊表的步驟更包括:在讀取上述第一目前區塊表中相應於一第一頁面之一第一邏輯位址時,根據上述位元表中代表上述第一邏輯位址之上述位元是否為上述既定值,判斷上述第一邏輯位址是否重複出現於第二目前區塊表中;當代表上述第一邏輯位址之上述位元為上述既定值時,判斷上述第一邏輯位址重複出現於第二目前區塊表中;以及 當代表上述第一邏輯位址之上述位元不是上述既定值時,判斷上述第一邏輯位址沒有重複出現於第二目前區塊表中。
  14. 根據申請專利範圍第13項之資料維護方法,其中上述根據上述位元表整理上述第一目前區塊表以及上述第二目前區塊表的步驟更包括:當判斷上述第一邏輯位址重複出現於第二目前區塊表時,讀取上述第二目前區塊表以找出具有上述第一邏輯位址之至少一第二頁面;以及當判斷上述第一邏輯位址沒有重複出現於第二目前區塊表時,讀取上述第一目前區塊表中之下一個頁面的上述邏輯位址。
  15. 根據申請專利範圍第14項之資料維護方法,其中上述第一目前區塊以及上述第二目前區塊之上述頁面具有複數寫入序號,上述第一目前區塊以及上述第二目前區塊之每一上述頁面,具有一個上述寫入序號用以代表上述頁面之資料被寫入的順序。
  16. 根據申請專利範圍第15項之資料維護方法,其中上述根據上述位元表整理上述第一目前區塊表以及上述第二目前區塊表的步驟更包括:找出具有上述第一邏輯位址之上述第二頁面後,比較上述第一頁面以及上述第二頁面所相應之上述寫入序號;以及 將上述第一頁面以及上述第二頁面中上述寫入序號小於上述第一頁面以及上述第二頁面中之其他者之至少一者捨棄。
  17. 根據申請專利範圍第16項之資料維護方法,其中上述比較上述第一頁面以及上述第二頁面所相應之上述寫入序號之步驟更包括根據一第一目前區塊序號表以及一第二目前區塊序號表,比較上述第一頁面以及上述第二頁面所相應之上述寫入序號,其中上述第一目前區塊序號表包括上述第一目前區塊中之上述頁面所儲存之上述寫入序號,並且上述第二目前區塊序號表包括上述第二目前區塊中之上述頁面所儲存之上述寫入序號。
  18. 根據申請專利範圍第10項之資料維護方法,更包括根據至少一寫入命令,將屬於一連續型態之資料寫入上述第一目前區塊之上述頁面,並且將屬於一隨機型態之資料寫入上述第二目前區塊之上述頁面。
TW104138019A 2015-11-18 2015-11-18 資料儲存裝置及其資料維護方法 TWI578222B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104138019A TWI578222B (zh) 2015-11-18 2015-11-18 資料儲存裝置及其資料維護方法
CN201610222091.2A CN106708422B (zh) 2015-11-18 2016-04-11 数据储存装置及其数据维护方法
US15/331,116 US20170139600A1 (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
TW104138019A TWI578222B (zh) 2015-11-18 2015-11-18 資料儲存裝置及其資料維護方法

Publications (2)

Publication Number Publication Date
TWI578222B true TWI578222B (zh) 2017-04-11
TW201719373A TW201719373A (zh) 2017-06-01

Family

ID=58690024

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104138019A TWI578222B (zh) 2015-11-18 2015-11-18 資料儲存裝置及其資料維護方法

Country Status (3)

Country Link
US (1) US20170139600A1 (zh)
CN (1) CN106708422B (zh)
TW (1) TWI578222B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6785204B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
US10430106B2 (en) * 2018-02-16 2019-10-01 Microsoft Technology Licensing, Llc Policy based tiered allocation for hybrid storage devices
KR20220169642A (ko) * 2021-06-21 2022-12-28 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US12067288B2 (en) * 2021-11-23 2024-08-20 Silicon Motion Inc. Storage devices including a controller for handling command sequences and methods of operating the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI291618B (en) * 2005-12-15 2007-12-21 Inventec Corp Method of protecting cache data of storage system
TWI295777B (zh) * 2005-12-15 2008-04-11 Inventec Corp
TW201314449A (zh) * 2011-07-22 2013-04-01 Sandisk Technologies Inc 儲存資料之系統及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621138B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI291618B (en) * 2005-12-15 2007-12-21 Inventec Corp Method of protecting cache data of storage system
TWI295777B (zh) * 2005-12-15 2008-04-11 Inventec Corp
TW201314449A (zh) * 2011-07-22 2013-04-01 Sandisk Technologies Inc 儲存資料之系統及方法

Also Published As

Publication number Publication date
TW201719373A (zh) 2017-06-01
CN106708422A (zh) 2017-05-24
US20170139600A1 (en) 2017-05-18
CN106708422B (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
TWI604308B (zh) 資料儲存裝置及其資料維護方法
TWI606388B (zh) 資料儲存裝置及其資料維護方法
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
CN107526540B (zh) 数据储存装置及其数据维护方法
US10671287B2 (en) Method of performing garbage collection, storage device performing the same and computing system including the same
TWI578222B (zh) 資料儲存裝置及其資料維護方法
JP4171749B2 (ja) メモリコントローラおよびフラッシュメモリシステム
CN104484283B (zh) 一种降低固态硬盘写放大的方法
TWI479313B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI515737B (zh) 資料儲存裝置以及其資料抹除方法
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
TW201523253A (zh) 資料儲存裝置以及其資料存取方法
TW201715399A (zh) 資料儲存裝置及其資料維護方法
TW201734797A (zh) 資料儲存裝置及其資料維護方法
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
JP2013235630A (ja) 制御装置、記憶装置、データ書込方法
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
TWI604373B (zh) 資料儲存裝置及其資料維護方法
TWI516934B (zh) 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
TW201913376A (zh) 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置
US8762685B2 (en) Data writing method, memory controller and memory storage apparatus
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4710753B2 (ja) メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI747532B (zh) 記憶體裝置