TW201826126A - 資料儲存裝置以及快閃記憶體控制方法 - Google Patents
資料儲存裝置以及快閃記憶體控制方法 Download PDFInfo
- Publication number
- TW201826126A TW201826126A TW106100399A TW106100399A TW201826126A TW 201826126 A TW201826126 A TW 201826126A TW 106100399 A TW106100399 A TW 106100399A TW 106100399 A TW106100399 A TW 106100399A TW 201826126 A TW201826126 A TW 201826126A
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- system information
- group
- flash memory
- physical
- Prior art date
Links
Classifications
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/1041—Resource optimization
-
- 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
-
- 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/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
快閃記憶體映射資料重建技術,依照邏輯位址將該快閃記憶體已儲存資料的映射資訊分組,以分組映射表為單位儲存於該快閃記憶體儲的系統資訊區塊。各上述系統資訊區塊的至少一預設物理位址記錄有位址分組表,顯示所對應之系統資訊區塊儲存的上述分組映射表之邏輯位址群組編號。單一上述系統資訊區塊中,上述位址分組表使用到的物理頁頁數少於載有上述分組映射表的物理頁總數。
Description
本發明係有關於資料儲存裝置,特別有關於快閃記憶體(flash memory)控制技術。
現今資料儲存裝置常以快閃記憶體(flash memory)為儲存媒體。快閃記憶體常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。另外有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
快閃記憶體的實體空間通常劃分為複數個物理區塊(physical blocks)。各物理區塊包括複數物理頁(physical pages)。快閃記憶體之資料更新並非對同樣儲存空間作複寫,而是將更新資料儲存在閒置空間,此閒置空間可能置於同一物理區塊,也可能置於另一物理區塊。至於舊儲存內容則轉為無效。物理區塊內充斥無效內容時,垃圾收集(Garbage Collection)啟動,有效內容將被複製至其他空間,使餘留無效資料的物理區塊得以藉抹除(erase)操作釋出其空間。特別是,一物理區塊需要完整抹除後,方被釋出,等待重新配置使用。快閃記憶體如此操作特性使得其儲存空間之管理明顯複雜、且不同於其他類型的儲存記憶元件。特別是,邏輯位址以及物理位址之間的 映射資訊維護,更是快閃記憶體控制的一重大課題。
根據本案一種實施方式所實現的一資料儲存裝置包括一快閃記憶體以及一微控制器。該快閃記憶體包括複數物理區塊,且每一上述物理區塊包括複數個物理頁。該微控制器將至少一上述物理區塊規劃為至少系統資訊區塊(Table#1、Table#2…Table#N)。該快閃記憶體已儲存資料的映射資訊係紀錄至複數個分組映射表(H2F_G)。上述分組映射表(H2F_G)可依據一邏輯位址而組合成一映射表(HF)。該微控制器更用於將上述分組映射表(H2F_G)儲存至上述系統資訊區塊(Table#1、Table#2…Table#N)的上述物理頁。該微控制器更在每一上述系統資訊區塊的至少一預設物理位址,記錄位址分組表(F2G#0、F2G#1…F2G#N),記錄每一上述系統資訊區塊之上述物理頁所儲存的上述分組映射表(H2F_G)之邏輯位址群組編號。每一上述系統資訊區塊(Table#1、Table#2…或Table#N)中,載有上述位址分組表(F2G#0、F2G#1…或F2G#N)的物理頁頁數少於載有上述分組映射表(H2F_G)的物理頁總數。
對於包括有複數物理區塊且每一上述物理區塊包括有複數個物理頁的快閃記憶體,根據本案一種實施方式所實現的一快閃記憶體控制方法包括:將至少一上述物理區塊規劃為至少一系統資訊區塊;將該快閃記憶體已儲存資料的映射資訊記錄至複數個分組映射表,上述分組映射表可依據一邏輯位址而組合成一映射表;將上述分組映射表儲存至上述系統資訊區塊的上述物理頁;以及在每一上述系統資訊區塊的至少一預 設物理位址,記錄一位址分組表,記錄每一上述系統資訊區塊之上述物理頁所儲存的上述分組映射表之邏輯位址群組編號。每一上述系統資訊區塊中,載有上述位址分組表的物理頁總數少於載有上述分組映射表的物理頁總數。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
200‧‧‧資料儲存裝置
202‧‧‧快閃記憶體
204‧‧‧控制單元
206‧‧‧主機
210‧‧‧線上燒錄區塊池
212‧‧‧系統資訊區塊池
214‧‧‧閒置區塊池
216‧‧‧主動區塊
218‧‧‧資料區塊池
220‧‧‧微控制器
222‧‧‧隨機存取記憶空間
224‧‧‧唯讀記憶體
BLK#1、BLK#2、BLK#i‧‧‧物理區塊
B#‧‧‧物理區塊編號
F2G#1、F2G#2…F2G#j…F2G#N‧‧‧位址分組表
G2F‧‧‧分組位址表
G#‧‧‧邏輯位址群組編號
H2F‧‧‧映射表
H2F_G#0、H2F_G#1…H2F_G#i…H2F_G#131,071‧‧‧分組映射表
LBA‧‧‧邏輯區塊位址
S602…S608‧‧‧步驟
Table#1、Table#2…Table#j…Table#N‧‧‧系統資訊區塊
U#‧‧‧單位編號
第1圖圖解一非揮發性記憶體的儲存空間規劃;第2圖圖解根據本案一種實施方式所實現的一資料儲存裝置200,其中包括一快閃記憶體202以及一控制單元204;第3圖圖解映射表H2F之分組;第4A圖以系統資訊區塊Table#j(j為數字)為例,圖解系統資訊區塊Table#1到Table#N的架構;第4B圖圖解儲存於第4A圖系統資訊區塊Table#j的位址分組表F2G#j的內容;第5圖示範性圖解分組位址表G2F的架構;以及第6圖為流程圖,圖解資料儲存裝置200上電的映射表H2F的重建流程。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第1圖圖解一非揮發性記憶體的儲存空間規劃,係 劃分為複數個物理區塊(physical blocks)BLK#1、BLK#2…BLK#Z等,Z為正整數,且各物理區塊包括複數物理頁(physical pages),例如:256個物理頁,每一物理頁可儲存預設長度的資料,例如:16KB長度的資料。每一物理區塊可依據儲存資料與否而概略地區分成使用中區塊(含有效資料)以及閒置區塊(不含有效資料),使用中區塊又依據其儲存的資料屬性或類別而給予不同的分類,將於以下段落作說明。
非揮發性記憶體可為快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)等具有長時間資料保存之記憶體裝置,在下述說明中將以快閃記憶體為例進行說明,但不以此為限。
第2圖圖解根據本案一種實施方式所實現的一資料儲存裝置200,其中包括一快閃記憶體202以及一控制單元204。控制單元204耦接於一主機206與該快閃記憶體202之間,包括根據主機206所下達的指令操作該快閃記憶體202。
快閃記憶體202之較佳儲存空間規劃包括:線上燒錄區塊池210、系統資訊區塊池212、閒置區塊池214、主動區塊216、以及資料區塊池218。線上燒錄區塊池210、系統資訊區塊池212、以及資料區塊池218較佳包括複數個使用中區塊,亦可僅包括一個使用中區塊,閒置區塊池214較佳包括複數個閒置區塊。
線上燒錄區塊池210用於儲存線上燒錄(in-system programming)的程式。快閃記憶體202所儲存的資料的邏輯位 址以及物理位址的映射資訊較佳係記錄於一邏輯-快閃位址映射表(Host Logic-Flash physical address table,簡稱映射表H2F)。本案以特殊形式在快閃記憶體202內維護該映射表H2F。映射表H2F內容可由系統資訊區塊池212標號為Table#1、Table#2…Table#N的複數個物理區塊(以下稱系統資訊區塊)取得。主動區塊216係由閒置區塊池214供應,負責接收來自於主機206的資料,待完成資料儲存後即推入資料區塊池218。
控制單元204包括一微控制器220、一隨機存取記憶空間222以及一唯讀記憶體224。該隨機存取記憶空間222可包括一內部隨機存取記憶體(如DRAM、SRAM…等),與微控制器220置於同一個晶粒(die)。該隨機存取記憶空間222更可包括一外部隨機存取記憶體,其未與微控制器220置於同一個晶粒。唯讀記憶體224存有唯讀程式碼(如,ROM code)。微控制器220執行該唯讀記憶體224所載之唯讀程式碼或/以及該快閃記憶體202之該線上燒錄區塊池210所載之線上燒錄之程式,以進行運作。映射表H2F可暫態地、全部地或部份地載入隨機存取記憶空間222的內部或外部隨機存取記憶體,方便動態地記錄及管理快閃記憶體202的之使用狀況。
邏輯上而言,本案將龐大的映射表H2F依照邏輯位址(logical addresses)或邏輯區塊位址(Logical Block Address,LBA)細分為複數組,稱為分組映射表(本案標示為H2F_G,可依照群組編號i標示之H2F_G#i),並於資料寫入至快閃記憶體202時,依據資料的邏輯位址或邏輯區塊位址而分別建立這些分組映射表,並儲存至系統資訊區塊Table#1、Table#2… Table#N中。各分組映射表H2F_G可占用2KB(並不意圖限定之)。系統資訊區塊Table#1、Table#2…Table#N各自可包括複數個分組映射表H2F_G。在下述說明中,將以邏輯區塊位址進行說明,但不以此為限。
為了快速將系統資訊區塊Table#1、Table#2…Table#N的該些分組映射表H2F_G組合成映射表H2F,本案更分別在系統資訊區塊Table#1、Table#2…Table#N記錄位址分組表F2G#0、F2G#1…F2G#N,顯示所屬系統資訊區塊(Table#1、Table#2…Table#N)之物理空間是儲存哪些分組映射表H2F_G。位址分組表F2G#0、F2G#1…F2G#N各自集中儲存於所對應系統資訊區塊Table#1、Table#2…Table#N的特定空間-例如,所對應物理區塊的末端(結束該物理區塊之填寫時填入,或固定為該物理區塊最末的物理頁)、或預設的位址。特別是,在任一系統資訊區塊Table#1、Table#2…Table#N中,載有位址分組表(F2G#0、F2G#1…或F2G#N)的物理頁總數少於載有上述分組映射表H2F_G的物理頁總數。當欲重建映射表H2F時,藉由讀取系統資訊區塊池212的系統資訊區塊Table#1、Table#2…Table#N所各自儲存的位址分組表F2G#0、F2G#1…F2G#N,即能得知系統資訊區塊Table#1、Table#2…Table#N各物理單元是對應哪一分組映射表H2F_G。特別是,本案可整理/合併位址分組表F2G#0、F2G#1…F2G#N的內容而分析出系統資訊區塊Table#1、Table#2…Table#N內哪些分組映射表H2F_G是有效的。之後,僅需讀取該些有效的分組映射表H2F_G來重建映射表H2F,如此一來,映射表H2F重建所需時間可顯著縮短。
一種實施方式儲存一特定指標或序號至系統資訊區塊Table#1、Table#2…Table#N,標示其內容為映射表資訊。資料儲存裝置200上電時可依據該特定指標或序號自該快閃記憶體202的眾多物理區塊中,辨識出系統資訊區塊Table#1、Table#2…Table#N。此外,該等系統資訊區塊Table#1、Table#2…Table#N更可儲存時序資訊(例如,序號、或是時間標籤),作為系統資訊區塊Table#1、Table#2…Table#N之新舊排序的依據。
第3圖圖解映射表H2F之分組。映射表H2F較佳以邏輯區塊位址為索引來進行排列,但不以此為限。映射表H2F的資料長度為256MB,可分組(或分割)成131,072個資料長度2KB的分組映射表,標號為H2F_G#0、H2F_G#1…H2F_G #131,071。所示實施方式中,每筆資料長度4KB的資料可用資料長度4B的記錄來記載其映射資訊。映射資訊包括物理區塊編號B#以及單位編號U#。以資料長度16KB的物理頁為例,各物理頁即分為4單元(U#0~U#3)。所述單元即映射資訊管理單位。更有其他實施方式,其中單一物理頁的資料長度僅有4KB,即映射資訊管理單位,則單位編號可用物理頁編號來替代。256GB物理空間的映射資訊達67,108,864筆(256GB/4KB),佔據256MB(256GB x4B/4KB)。如圖所示,映射表H2F包括67,108,864筆(邏輯區塊位址LBA#0~#67,108,863)共佔據256MB空間的映射資訊。映射表H2F可依預設大小分組。圖例是以資料長度2KB作為分組的依據,則映射表H2F可分割成131,072(256MB/2KB)個分組映射表H2F_G#0…H2F_G #131,071,各自包括512筆映射資訊。也就是,邏輯位址被分為131,072個邏輯位址群組,編號G#0、 G#1…G#131,071。經分組後,控制單元204更新或寫入映射表H2F時,不再以一整個映射表H2F為單位,而以一個分組映射表H2F_G為單位,如此一來,執行映射表H2F更新或寫入的效率可有效地提升。映射表H2F之維護不再需要執行大量物理區塊的抹寫。
第4A圖以系統資訊區塊Table#j(j為數字)為例,圖解系統資訊區塊Table#1到Table#N的架構。系統資訊區塊Table#j有256個物理頁。每一物理頁的資料長度為16KB,可儲存8個分組映射表H2F_G。因此,系統資訊區塊Table#j可儲存2040(8*255)個分組映射表H2F_G,而系統資訊區塊Table#j最末頁(物理頁編號255)係填寫位址分組表F2G#j。控制單元204係依據資料的寫入或更新將對應之分組映射表H2F_G填入系統資訊區塊Table#j。位址分組表F2G#j則是循序記錄系統資訊區塊Table#j所載分組映射表H2F_G對應的群組編號。
第4B圖圖解儲存於第4A圖系統資訊區塊Table#j的位址分組表F2G#j的內容,其中示範性地記載一序列的群組編號,依序對應至系統資訊區塊Table#j所載分組映射表H2F_G對應的群組編號。各群組編號較佳以4B空間儲存。以具有256個物理頁的系統資訊區塊Table#j為例,位址分組表F2G#j的資料長度(=255x8x4B)略小於8KB,並未超過16KB的單一物理頁尺寸,故得以儲存至系統資訊區塊Table#j的一物理頁中,例如,系統資訊區塊Table#j的最末物理頁或預設的物理頁。在其他實例中,系統資訊區塊Table#j可區分成二部份,例如,第一部份包括物理頁編號0~127,第二部份包括物理頁編號 128~255,第一部份以及第二部份的最末物理頁,即物理頁編號127以及255,分別記錄物理頁編號0~126以及物理頁編號128~254所儲存的分組映射表H2F_G的編號。
控制單元204依序讀取系統資訊區塊池212的系統資訊區塊Table#1到Table#N的最末一物理頁或預設的物理頁,即可取得N個位址分組表F2G#1到F2G#N。將這些位址分組表F2G#1到F2G#N的內容予以合併並整理後,即能得一長序列的群組編號,即能得知每一分組映射表H2F_G最新版本所在的物理位址。因此,控制單元204可讀取這些物理位址而在外部隨機存取記憶體中建立完整的映射表H2F;或者,依據資料管理的需要,讀取儲存於特定物理位址的特定分組映射表H2F_G並將它儲存至內部隨機存取記憶體。
為了合併並整理分組映射表H2F_G,控制單元204可建立分組位址表G2F(Group-Flash address mapping table),循序記錄各邏輯位址群組之分組映射表H2F_G所在之物理位址。由名稱上可知,位址分組表F2G與分組位址表G2F乃內容互相對應的二種表格,差別乃在於位址分組表F2G是以物理位址作為索引而分組位址表G2F是以邏輯位址群組之編號作為索引。控制單元204將系統資訊區塊池212的系統資訊區塊Table#1到Table#N的位址分組表F2G#1到F2G#N收集起來,經反向運算,即可獲得分組位址表G2F。
第5圖示範性圖解分組位址表G2F的架構,係循序儲存邏輯位址群組(編號G#0、G#1…G#131,071)之分組映射表H2F_G#0、H2F_G#1…H2F_G#131,071所在的物理區塊編號B# 以及單位編號U#。控制單元204因而可據以將最新版本的分組映射表H2F_G#0、H2F_G#1…H2F_G#131,071自系統資訊區塊Table#1到Table#N尋出,重建成映射表H2F。或者,根據分組位址表G2F,讀取特定分組映射表H2F_G並將它儲存至內部隨機存取記憶體。
基於快閃記憶體202的操作特性,新(有效)與舊(無效)的資料可能會同時並存於系統資訊區塊Table#1到Table#N。因此,位址分組表F2G#1到F2G#N較佳依照時序資訊排序,以排除其中無效的資料。一種實施方式是以系統資訊區塊Table#1到Table#N的時序資訊(例如,序號、或是時間標籤)排序位址分組表F2G#1到F2G#N。所有位址分組表F2G#1到F2G#N經排序後,控制單元204可自位址分組表F2G#1到F2G#N中最新時序者開始讀取(無視較舊的位址分組表所儲存的無效資料)、或自位址分組表F2G#1到F2G#N中最舊時序者開始讀取(以較新的位址分組表取代較舊的),以建立分組位址表G2F。
一個說明例中,目前處理到的是第4A、4B圖的位址分組表F2G#j,其越末端內容越新。位址分組表F2G#j所載[1,2,3,4,13,14,15,16,33,34,35,36,37,38,39,40…33,34,35,36,1,2,3,4]中由於後面的編號[33,34,35,36,1,2,3,4]與前面的編號[1,2,3,4]以及[33,34,35,36]重覆(如標號x所示),即被標號x所註記的編號被視為無效/舊的資料。之後,當建立映射表H2F時,這些被標號x所註記的編號所對應的物理空間將被略過或不被讀取,省略其中無效映射資訊之掃描或讀取所需花費的時間。
第6圖為流程圖,圖解資料儲存裝置200上電的映射表H2F的重建流程。資料儲存裝置200上電時,步驟S602:控制單元204掃描快閃記憶體202,尋出以特定指標或序號標示的該等系統資訊區塊Table#1到Table#N。步驟S604:控制單元204讀取系統資訊區塊Table#1到Table#N中的時序資訊,據以排序系統資訊區塊Table#1到Table#N所儲存的位址分組表F2G#1到F2G#N,其中,排序包括依據時序資訊而進行的順向排序或逆向排序。步驟S606:控制單元204依據排序後的位址分組表F2G#1到F2G#N建立分組位址表G2F。步驟S608:控制單元204根據分組位址表G2F所記錄的物理位址資訊而讀取分組映射表H2F_G#0、H2F_G#1…H2F_G#131,071以重建映射表H2F。不同於傳統技術需完整掃描系統資訊區塊Table#1到Table#N的所有物理頁,本案藉由讀取系統資訊區塊Table#1到Table#N各自記載的位址分組表F2G#1到F2G#N,快速獲得分組映射表H2F_G#0、H2F_G#1…H2F_G#131,071的位址資訊,並在外部隨機存取記憶體重建映射表H2F,可有效地縮短資料儲存裝置200上電後建立映射表H2F所需的時間,達到本發明的目的。
另外,在不具備外部隨機存取記憶體的情況下,控制單元204可依據步驟S606所產生的分組位址表G2F快速取得特定分組映射表H2F_G的位址資訊,並將特定分組映射表H2F_G儲存至內部隨機存取記憶體,以管理部份的快閃記憶體202所儲存的資料,一樣可有效地縮短資料儲存裝置200取得特定分組映射表H2F_G所需的時間,達到本發明的目的。
雖然本發明已以較佳實施例揭露如上,然其並非 用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (22)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數物理區塊且每一上述物理區塊包括複數個物理頁;以及一微控制器,將至少一上述物理區塊規劃為至少一系統資訊區塊,其中:該快閃記憶體已儲存資料的映射資訊係記錄至複數個分組映射表,上述分組映射表可依據一邏輯位址而組合成一映射表,且該微控制器更用於將上述分組映射表儲存至上述系統資訊區塊的上述物理頁;該微控制器更在每一上述系統資訊區塊的至少一預設物理位址,記錄一位址分組表,記錄每一上述系統資訊區塊之上述物理頁所儲存的上述分組映射表之邏輯位址群組編號;且每一上述系統資訊區塊中,載有上述位址分組表的物理頁總數少於載有上述分組映射表的物理頁總數。
- 如申請專利範圍第1項所述之資料儲存裝置,其中,上述邏輯位址為一邏輯區塊位址。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:上述分組映射表係以一邏輯區塊位址為索引。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該微控制器更自上述位址分組表辨識上述系統資訊區塊儲存的上述分組映射表中有效者。
- 如申請專利範圍第4項所述之資料儲存裝置,其中:該微控制器略去上述分組映射表中非有效者之讀取。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:上述至少一預設物理位址包括上述系統資訊區塊最末端的物理頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該微控制器更在上述系統資訊區塊各記錄一時序資料,據對上述位址分組表進行排序。
- 如申請專利範圍第7項所述之資料儲存裝置,其中:上述位址分組表各自包括由舊至新填入的一序列之邏輯位址群組編號;且上述位址分組表排序後組合成一長序列的邏輯位址群組編號。
- 如申請專利範圍第8項所述之資料儲存裝置,其中:該微控制器自該長序列的邏輯位址群組編號的末端開始讀取,以初次讀到的邏輯位址群組編號為準,反向形成一分組位址表,顯示各邏輯位址群組有效的分組映射表位於上述系統資訊區塊何處。
- 如申請專利範圍第9項所述之資料儲存裝置,其中:該微控制器更根據該分組位址表自上述系統資訊區塊取得各邏輯位址群組有效的分組映射表,組合成一映射表,顯示該快閃記憶體已儲存資料的上述映射資訊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該微控制器更令上述系統資訊區塊更載有一特定序號; 該微控制器在上電時掃描該快閃記憶體的該等物理區塊,辨識該特定序號以找出上述系統資訊區塊;該微控制器藉由讀取上述系統資訊區塊的上述位址分組表,獲知上述系統資訊區塊儲存的上述分組映射表何者有效,將之組合為一映射表,顯示該快閃記憶體已儲存資料的上述映射資訊。
- 一種快閃記憶體控制方法,該快閃記憶體包括有複數物理區塊且每一上述物理區塊包括有複數個物理頁,該控制方法包括:將至少一上述物理區塊規劃為至少一系統資訊區塊;將該快閃記憶體已儲存資料的映射資訊記錄至複數個分組映射表,上述分組映射表可依據一邏輯位址而組合成一映射表;將上述分組映射表儲存至上述系統資訊區塊的上述物理頁;以及在每一上述系統資訊區塊的至少一預設物理位址,記錄一位址分組表,記錄每一上述系統資訊區塊之上述物理頁所儲存的上述分組映射表之邏輯位址群組編號,其中,每一上述系統資訊區塊中,載有上述位址分組表的物理頁總數少於載有上述分組映射表的物理頁總數。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,其中,上述邏輯位址為一邏輯區塊位址。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,其中,上述分組映射表係以一邏輯區塊位址為索引。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,更包括:自上述位址分組表辨識上述系統資訊區塊儲存的上述分組映射表中有效者。
- 如申請專利範圍第15項所述之快閃記憶體控制方法,更包括:略去上述分組映射表中非有效者之讀取。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,其中,上述至少一預設物理位址包括上述系統資訊區塊最末端的物理頁。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,更包括:在上述系統資訊區塊各記錄一時序資料,據以對上述位址分組表進行排序。
- 如申請專利範圍第18項所述之快閃記憶體控制方法,其中:上述位址分組表各自包括由舊至新填入的一序列之邏輯位址群組編號;且上述位址分組表排序後組合成一長序列的邏輯位址群組編號。
- 如申請專利範圍第19項所述之快閃記憶體控制方法,更包括:自該長序列的邏輯位址群組編號的末端開始讀取,以初次讀到的邏輯位址群組編號為準,反向形成一分組位址表,顯示各邏輯位址群組有效的分組映射表位於上述系統資訊 區塊何處。
- 如申請專利範圍第20項所述之快閃記憶體控制方法,更包括:根據該分組位址表自上述系統資訊區塊取得各邏輯位址群組有效的分組映射表,組合成一映射表,顯示該快閃記憶體已儲存資料的上述映射資訊。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,更包括:令上述系統資訊區塊更載有一特定序號;在上電時掃描該快閃記憶體的該等物理區塊,辨識該特定序號以找出上述系統資訊區塊;藉由讀取上述系統資訊區塊的上述位址分組表,獲知上述系統資訊區塊儲存的上述分組映射表何者有效,將之組合為一映射表,顯示該快閃記憶體已儲存資料的上述映射資訊。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW106100399A TWI659307B (zh) | 2017-01-06 | 2017-01-06 | 資料儲存裝置以及快閃記憶體控制方法 |
| CN201710092808.0A CN108280032B (zh) | 2017-01-06 | 2017-02-21 | 数据储存装置以及快闪存储器控制方法 |
| US15/716,587 US10402317B2 (en) | 2017-01-06 | 2017-09-27 | Data storage device and flash memory control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW106100399A TWI659307B (zh) | 2017-01-06 | 2017-01-06 | 資料儲存裝置以及快閃記憶體控制方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201826126A true TW201826126A (zh) | 2018-07-16 |
| TWI659307B TWI659307B (zh) | 2019-05-11 |
Family
ID=62781883
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW106100399A TWI659307B (zh) | 2017-01-06 | 2017-01-06 | 資料儲存裝置以及快閃記憶體控制方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10402317B2 (zh) |
| CN (1) | CN108280032B (zh) |
| TW (1) | TWI659307B (zh) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI698748B (zh) * | 2019-01-02 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置、存取裝置及資料處理方法 |
| CN111610929A (zh) * | 2019-02-26 | 2020-09-01 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
| TWI706250B (zh) * | 2019-02-26 | 2020-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| US11055004B2 (en) | 2019-02-26 | 2021-07-06 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
| US11080203B2 (en) | 2019-02-26 | 2021-08-03 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
| US11126558B2 (en) | 2019-02-26 | 2021-09-21 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11288181B2 (en) * | 2019-03-07 | 2022-03-29 | Silicon Motion, Inc. | Flash memory initialization scheme for writing boot up information into selected pages averagely and randomly distributed over more pages and correspondingly method for reading boot up information from selected pages |
| TWI698744B (zh) * | 2019-04-10 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置及邏輯至物理位址映射表之更新方法 |
| CN117992360A (zh) * | 2023-12-29 | 2024-05-07 | 深圳大普微电子股份有限公司 | 存储系统及存储方法 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7246195B2 (en) * | 2004-12-30 | 2007-07-17 | Intel Corporation | Data storage management for flash memory devices |
| US7711923B2 (en) * | 2006-06-23 | 2010-05-04 | Microsoft Corporation | Persistent flash memory mapping table |
| US8098522B2 (en) * | 2009-10-06 | 2012-01-17 | Macronix International Co., Ltd. | Non-volatile memory and operation method thereof |
| US8291194B2 (en) * | 2009-11-16 | 2012-10-16 | Mediatek Inc. | Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof |
| CN101930404B (zh) * | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
| CN102143341B (zh) * | 2011-04-29 | 2014-10-22 | 广州视源电子科技股份有限公司 | 一种频道列表的排序显示方法和电子显示设备 |
| CN102609464A (zh) * | 2012-01-16 | 2012-07-25 | 北京亿赞普网络技术有限公司 | Mongodb分片联表查询方法及装置 |
| TWI479314B (zh) * | 2012-08-30 | 2015-04-01 | Phison Electronics Corp | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 |
| CN102955742A (zh) * | 2012-10-31 | 2013-03-06 | 浪潮集团有限公司 | 一种系统上电后固态硬盘地址映射表的快速重建方法 |
| TWI514140B (zh) * | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
| US9542278B2 (en) * | 2013-12-26 | 2017-01-10 | Silicon Motion, Inc. | Data storage device and flash memory control method |
| TWI546666B (zh) * | 2014-11-03 | 2016-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
-
2017
- 2017-01-06 TW TW106100399A patent/TWI659307B/zh active
- 2017-02-21 CN CN201710092808.0A patent/CN108280032B/zh active Active
- 2017-09-27 US US15/716,587 patent/US10402317B2/en active Active
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI698748B (zh) * | 2019-01-02 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置、存取裝置及資料處理方法 |
| CN111610929A (zh) * | 2019-02-26 | 2020-09-01 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
| TWI706250B (zh) * | 2019-02-26 | 2020-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| US11055004B2 (en) | 2019-02-26 | 2021-07-06 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
| US11080203B2 (en) | 2019-02-26 | 2021-08-03 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
| US11126558B2 (en) | 2019-02-26 | 2021-09-21 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
| US11182286B2 (en) | 2019-02-26 | 2021-11-23 | Silicon Motion, Inc. | Data storage device and control method for non-volatile memory |
| CN111610929B (zh) * | 2019-02-26 | 2023-04-14 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US10402317B2 (en) | 2019-09-03 |
| CN108280032B (zh) | 2022-06-28 |
| US20180196747A1 (en) | 2018-07-12 |
| CN108280032A (zh) | 2018-07-13 |
| TWI659307B (zh) | 2019-05-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI659307B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
| US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
| US7340581B2 (en) | Method of writing data to non-volatile memory | |
| US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
| CN104750616B (zh) | 数据储存装置以及快闪存储器控制方法 | |
| JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
| CN1930635B (zh) | 对多个区块进行适应性确定群组以成为多个多区块单元 | |
| CN104969196B (zh) | 数据存储装置控制器、数据存储装置、以及用于控制数据存储装置的方法 | |
| US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
| CN108664418A (zh) | 数据储存装置以及其操作方法 | |
| JP2005516264A (ja) | 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置 | |
| AU2013222310A1 (en) | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory | |
| TW201617876A (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
| CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
| JPWO1999030239A1 (ja) | 記憶装置及びアクセス方法 | |
| JP2002278781A (ja) | 記憶装置、記憶装置制御方法及びプログラム | |
| US20210165735A1 (en) | Data storage device and non-volatile memory control method | |
| JP4460967B2 (ja) | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 | |
| US20070276986A1 (en) | Non-Volatile Storage Device and Write Method Thereof | |
| TWI742698B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| KR100757128B1 (ko) | 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법 | |
| US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
| US11748023B2 (en) | Data storage device and non-volatile memory control method | |
| CN115964352A (zh) | 一种片上系统的文件数据存储管理方法及系统 | |
| CN119576228A (zh) | 嵌入式设备的文件管理方法及相关装置 |