TWI604307B - 資料儲存裝置以及快閃記憶體控制方法 - Google Patents
資料儲存裝置以及快閃記憶體控制方法 Download PDFInfo
- Publication number
- TWI604307B TWI604307B TW103137753A TW103137753A TWI604307B TW I604307 B TWI604307 B TW I604307B TW 103137753 A TW103137753 A TW 103137753A TW 103137753 A TW103137753 A TW 103137753A TW I604307 B TWI604307 B TW I604307B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- block
- page
- flash memory
- valid
- Prior art date
Links
Classifications
-
- 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/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
本發明係有關於資料儲存裝置,特別有關於快閃記憶體(flash memory)控制技術。
現今資料儲存裝置常以快閃記憶體(flash memory)為儲存媒體,常見型式包括非及閘型快閃記憶體(即NAND flash)…等。
快閃記憶體常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。另外有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
快閃記憶體的實體空間通常包括複數個物理區塊(physical blocks)。各物理區塊包括複數物理頁(physical pages)。一物理區塊需要完整抹除(erase)後方能被重新配置使用。快閃記憶體之資料更新並非對同樣儲存空間作複寫,而是將更新資料儲存在閒置空間,至於舊儲存內容則轉為無效。快閃記憶體如此操作特性使得其儲存空間之管理明顯複雜、且不同於其他類型的儲存記憶元件。針對快閃記憶體而特別設計的快閃記憶體控制器相應產生。
一種高效能的快閃記憶體控制技術。
根據本案一種實施方式所實現的一資料儲存裝置包括一快閃記憶體以及一控制單元。該快閃記憶體提供劃分為複數個物理區塊的儲存空間,且上述物理區塊各自更劃分為複數個物理頁。該控制單元包括一微控制器以及一隨機存取記憶體,係耦接於一主機與該快閃記憶體之間。該微控制器係運作來於該隨機存取記憶體以一邏輯頁表格記載已自該等物理區塊中一整理中區塊收集至該等物理區塊中一有效資料收集區塊的邏輯頁。該微控制器更運作來將該整理中區塊內、對應之邏輯頁已載於該邏輯頁表格的物理頁視為無效,以略去自該快閃記憶體下載邏輯-物理位址映射表格作物理頁有/無效判斷。由於邏輯-物理位址映射表格下載非常消耗運算資源,以上技術將明顯提升快閃記憶體之運作效能。
根據本案一種實施方式所實現的一快閃記憶體控制方法包括以下步驟:於一隨機存取記憶體以一邏輯頁表格記載已自一快閃記憶體之複數個物理區塊中一整理中區塊收集至一有效資料收集區塊的邏輯頁,該有效資料收集區塊係配置自該等物理區塊;以及,將該整理中區塊內、對應之邏輯頁已載於該邏輯頁表格的物理頁視為無效,以略去自該快閃記憶體下載邏輯-物理位址映射表格作物理頁有/無效判斷。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧快閃記憶體
200‧‧‧資料儲存裝置
202‧‧‧快閃記憶體
204‧‧‧控制單元
206‧‧‧主機
210‧‧‧系統內程式區塊
212‧‧‧系統資訊區塊
214‧‧‧閒置區塊
216‧‧‧資料區塊集合
220‧‧‧微控制器
222‧‧‧隨機存取記憶體
224‧‧‧唯讀記憶體
BLK1、BLK2…BLKi‧‧‧物理區塊
CBA、CBB、CBC‧‧‧資料接收區塊
GCB‧‧‧有效資料收集區塊
H2F‧‧‧邏輯-物理位址映射表格
H2F_Info‧‧‧邏輯-物理位址映射資訊
Hpage1、HPage2‧‧‧邏輯頁
HPage1_I、HPage1_V‧‧‧邏輯頁Hpage1的有效、無效資料
HPage2_I、HPage2_V‧‧‧邏輯頁Hpage2的有效、無效資料
Valid_HPages‧‧‧邏輯頁表格
S302…S314‧‧‧步驟
第1圖圖解一快閃記憶體100的儲存空間規劃;第2圖圖解根據本案一種實施方式所實現的一資料儲存裝置200;以及第3圖為流程圖,根據本案一種實施方式,圖解一整理中區塊之有效資料如何搬移至一有效資料收集區塊。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第1圖圖解一快閃記憶體100的儲存空間規劃,其中係劃分為複數個物理區塊(physical blocks)BLK1、BLK2…BLKi…等。各物理區塊包括複數物理頁(physical pages)。主機端係以下達邏輯位址方式動態使用快閃記憶體的儲存空間,因應形成動態變化的一邏輯-物理位址映射關係。
第2圖圖解根據本案一種實施方式所實現的一資料儲存裝置200,其中包括一快閃記憶體202以及一控制單元204。控制單元204耦接於一主機206與該快閃記憶體202之間,包括根據主機206所下達的指令操作該快閃記憶體202。
快閃記憶體202之空間係規劃如下,包括:系統內程式區塊210、系統資訊區塊212、閒置區塊214、資料接收區塊CBA、CBB、CBC…等、以及資料區塊集合216。系統內程式區塊210用於儲存系統內程式(in-system programs)。系統資訊區塊212包括儲存一邏輯-物理位址映射表格H2F的區塊。資料接收區塊CBA、CBB、CBC…等係由閒置區塊214供應,負責接
收寫入資料。一種實施方式是採有效資料收集(或稱廢料收集,英譯garbage collection)將散置於該等資料接收區塊CBA、CBB、CBC…的有效資料收集起來推入資料區塊集合216。圖中所示實施例即是對資料接收區塊CBA、CBB、CBC作有效資料收集(或稱廢料收集,英譯garbage collection)。散置於資料接收區塊CBA、CBB、CBC的有效資料係收集至新配置的一有效資料收集區塊GCB。有效資料收集區塊GCB可在滿載後推入資料區塊集合216。
控制單元204包括一微控制器220、一隨機存取記憶體222(如SRAM)以及一唯讀記憶體224。唯讀記憶體224存有唯讀程式碼(如,ROM code)。微控制器220係藉由執行該唯讀記憶體224所載之唯讀程式碼或/以及該快閃記憶體202系統內程式區塊210所載之系統內程式運作。
如圖所示,微控制器220係運作來於隨機存取記憶體222管理一邏輯頁表格Valid_HPages。該邏輯頁表格Valid_HPages係針對一整理中區塊設計。圖中實施例係以資料接收區塊CBA作整理中區塊。整理中區塊CBA中對應邏輯頁Hpage1的物理頁包括:一物理頁的有效資料Hpage1_V、以及兩物理頁的無效資料Hpage1_I。整理中區塊CBA中對應邏輯頁Hpage2的物理頁包括:一物理頁的有效資料Hpage2_V、以及另一物理頁無效資料Hpage2_I。有效資料Hpage1_V以及Hpage2_V自該整理中區塊CBA收集至該有效資料收集區塊GCB後,其所對應的邏輯頁Hpage1以及Hpage2即記載至該邏輯頁表格Valid_HPages。基於該邏輯頁表格Valid_HPages(載有邏
輯頁Hpage1以及Hpage2),微控制器220在讀取到整理中區塊CBA內、對應邏輯頁Hpage1以及Hpage2的物理頁Hpage1_I與Hpage2_I時可直接視之為無效資料,以略去自該快閃記憶體202下載該邏輯-物理位址映射表格H2F作物理頁有/無效判斷(核對邏輯-物理頁映射)。邏輯-物理位址映射表格H2F之下載以及核對非常耗費系統資源。本技術略過冗餘的邏輯-物理位址映射表格H2F下載、核對操作,系統效能因而大幅提升。
第2圖實施例顯示微控制器220更在隨機存取記憶體222規劃空間儲存邏輯-物理位址映射資訊H2F_Info以及有效頁數量VP_Count,輔助將有效資料自整理中區塊CBA搬移至有效資料收集區塊GCB。邏輯-物理位址映射資訊H2F_Info係下載自該快閃記憶體202的邏輯-物理位址映射表格H2F。有效頁數量VP_Count係用於記錄該整理中區塊CBA的有效物理頁數,係由微控制器220管理維護。該微控制器220可運作來隨著每物理頁自該整理中區塊CBA收集至該資料收集區塊GCB,遞減該有效物理頁數VP_Count。該微控制器220可運作來隨著該有效物理頁數VP_Count歸零而結束收集該整理中區塊CBA的內容;例如,繼而替換以資料接收區塊CBB作整理中區塊。該微控制器220更可設計成自該整理中區塊CBA的末端物理頁起始收集有效資料,以利有效資料收集(或稱廢料收集,英譯garbage collection)。
第3圖為流程圖,根據本案一種實施方式,圖解一整理中區塊之有效資料如何搬移至一有效資料收集區塊;以下以第2圖之整理中區塊CBA之有效資料如何搬移至該有效資料
收集區塊GCB說明之。步驟S302用於讀取該物理區塊CBA之物理頁N內部信息,以判讀出該物理頁N所對應的邏輯頁HPage_for_N。N為數字,反映該物理頁在該整理中區塊CBA的位置。步驟S304查詢該邏輯頁表格Valid_Hpages。倘若該邏輯頁表格Valid_Hpages未載有該邏輯頁HPage_for_N,則流程進行步驟S306,下載邏輯-物理位址映射表格H2F,使該隨機存取記憶體222儲存邏輯-物理位址映射資訊H2F_Info。步驟S308查詢該邏輯-物理位址映射資訊H2F_Info(覆核邏輯頁HPage_for_N與物理頁N如此對應關係是否符合該邏輯-物理位址映射資訊H2F_Info內容),以確認物理頁N係儲存有效資料或無效資料。若物理頁N所對應的邏輯頁HPage_for_N符合該邏輯-物理位址映射資訊H2F_Info內容,則認定物理頁N係有效資料,流程進入步驟S310,把物理頁N收集至該有效資料收集區塊GCB,隨之改動該邏輯-物理位址映射表格H2F、且遞減該整理中區塊CBA之有效物理頁數VP_Count。步驟S312隨後將該邏輯頁HPage_for_N記錄於該邏輯頁表格Valid_Hpages。步驟S314用於確認有效物理頁數VP_Count是否已歸零,以於該有效物理頁數VP_Count歸零時結束收集該整理中區塊CBA的內容。倘若步驟S308判定物理頁N係儲存無效資料,流程同樣進行步驟S314,確認該整理中區塊CBA是否還餘留有效資料。倘若步驟S314判定該有效物理頁數VP_Count尚未歸零,則流程進行步驟S316,遞減N值,流程回到步驟S302。N值設計係意圖自該整理中區塊CBA的末端物理頁起始收集有效資料。
基於以上技術內容,本案更涉及快閃記憶體的控
制方法,不限定以特定架構的控制單元實現。此外,其他採用同樣概念控制一快閃記憶體的技術都屬於本案所欲保護的範圍。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
200‧‧‧資料儲存裝置
202‧‧‧快閃記憶體
204‧‧‧控制單元
206‧‧‧主機
210‧‧‧系統內程式區塊
212‧‧‧系統資訊區塊
214‧‧‧閒置區塊
216‧‧‧資料區塊集合
220‧‧‧微控制器
222‧‧‧隨機存取記憶體
224‧‧‧唯讀記憶體
CBA、CBB、CBC‧‧‧資料接收區塊
GCB‧‧‧有效資料收集區塊
H2F‧‧‧邏輯-物理位址映射表格
H2F_Info‧‧‧邏輯-物理位址映射資訊
Hpage1、HPage2‧‧‧邏輯頁
HPage1_I、HPage1_V‧‧‧邏輯頁Hpage1的有效、無效資料
HPage2_I、HPage2_V‧‧‧邏輯頁Hpage2的有效、無效資料
Valid_HPages‧‧‧邏輯頁表格
VP_Count‧‧‧有效頁數量
Claims (10)
- 一種資料儲存裝置,包括:一快閃記憶體,提供劃分為複數個物理區塊的儲存空間,且上述物理區塊各自更劃分為複數個物理頁;以及一控制單元,包括一微控制器以及一隨機存取記憶體,耦接於一主機與該快閃記憶體之間;其中:該微控制器係運作來於該隨機存取記憶體以一邏輯頁表格記載已自該等物理區塊中一整理中區塊收集至該等物理區塊中一有效資料收集區塊的邏輯頁;且該微控制器係運作來將該整理中區塊內、對應之邏輯頁已載於該邏輯頁表格的物理頁視為無效,以略去自該快閃記憶體下載邏輯-物理位址映射表格作物理頁有/無效判斷。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該微控制器係運作來於該隨機存取記憶體更以一有效頁數量記錄該整理中區塊的有效物理頁數。
- 如申請專利範圍第2項所述之資料儲存裝置,其中:該微控制器係運作來隨著每物理頁自該整理中區塊收集至該資料收集區塊,遞減該有效物理頁數。
- 如申請專利範圍第3項所述之資料儲存裝置,其中:該微控制器係運作來隨著該有效物理頁數歸零而結束收集該整理中區塊的內容。
- 如申請專利範圍第4項所述之資料儲存裝置,其中: 該微控制器係運作來自該整理中區塊的末端物理頁起始向前收集有效資料。
- 一種快閃記憶體控制方法,包括:於一隨機存取記憶體以一邏輯頁表格記載已自一快閃記憶體之複數個物理區塊中一整理中區塊收集至一有效資料收集區塊的邏輯頁,該有效資料收集區塊係配置自該等物理區塊;以及將該整理中區塊內、對應之邏輯頁已載於該邏輯頁表格的物理頁視為無效,以略去自該快閃記憶體下載邏輯-物理位址映射表格作物理頁有/無效判斷。
- 如申請專利範圍第6項所述之快閃記憶體控制方法,更包括:於該隨機存取記憶體更以一有效頁數量記錄該整理中區塊的有效物理頁數。
- 如申請專利範圍第7項所述之快閃記憶體控制方法,更包括:隨著每物理頁自該整理中區塊收集至該資料收集區塊,遞減該有效物理頁數。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,更包括:隨著該有效物理頁數歸零結束收集該整理中區塊的內容。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,更包括:自該整理中區塊的末端物理頁起始向前收集有效資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103137753A TWI604307B (zh) | 2014-10-31 | 2014-10-31 | 資料儲存裝置以及快閃記憶體控制方法 |
CN201510001574.5A CN105824759B (zh) | 2014-10-31 | 2015-01-04 | 数据储存装置以及快闪存储器控制方法 |
US14/839,073 US10089225B2 (en) | 2014-10-31 | 2015-08-28 | Improving garbage collection efficiency by reducing page table lookups |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103137753A TWI604307B (zh) | 2014-10-31 | 2014-10-31 | 資料儲存裝置以及快閃記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201616363A TW201616363A (zh) | 2016-05-01 |
TWI604307B true TWI604307B (zh) | 2017-11-01 |
Family
ID=55852796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103137753A TWI604307B (zh) | 2014-10-31 | 2014-10-31 | 資料儲存裝置以及快閃記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10089225B2 (zh) |
CN (1) | CN105824759B (zh) |
TW (1) | TWI604307B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI619018B (zh) * | 2016-11-10 | 2018-03-21 | 慧榮科技股份有限公司 | 可用於資料儲存裝置之垃圾蒐集方法 |
CN106528446B (zh) * | 2016-11-17 | 2019-08-23 | 深圳市先天海量信息技术有限公司 | 闪存数据的控制方法及控制系统 |
TWI633437B (zh) | 2017-05-26 | 2018-08-21 | 慧榮科技股份有限公司 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
CN109117383B (zh) * | 2017-06-25 | 2022-09-20 | 慧荣科技股份有限公司 | 管理闪存模块的方法和闪存控制器 |
CN109840218B (zh) * | 2017-11-24 | 2023-08-01 | 深圳大心电子科技有限公司 | 有效数据管理方法以及存储控制器 |
CN108334457B (zh) * | 2018-02-12 | 2020-06-30 | 杭州宏杉科技股份有限公司 | 一种io处理方法及装置 |
US10936199B2 (en) | 2018-07-17 | 2021-03-02 | Silicon Motion, Inc. | Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table |
TWI776028B (zh) * | 2019-03-14 | 2022-09-01 | 點序科技股份有限公司 | 快閃記憶體管理方法及快閃記憶體 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005066793A2 (en) | 2003-12-30 | 2005-07-21 | Sandisk Corporation | Non-volatile memory and method with non-sequential update block management |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US8397014B2 (en) * | 2008-02-04 | 2013-03-12 | Apple Inc. | Memory mapping restore and garbage collection operations |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
JP2011154547A (ja) * | 2010-01-27 | 2011-08-11 | Toshiba Corp | メモリ管理装置及びメモリ管理方法 |
TWI457757B (zh) * | 2011-12-01 | 2014-10-21 | Silicon Motion Inc | 快閃記憶體儲存陣列控制方法、與快閃記憶體 |
TWI544334B (zh) * | 2012-05-30 | 2016-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置操作方法 |
TWI448891B (zh) * | 2012-09-06 | 2014-08-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9690695B2 (en) * | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
KR102053953B1 (ko) | 2013-02-04 | 2019-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
CN103136121B (zh) * | 2013-03-25 | 2014-04-16 | 中国人民解放军国防科学技术大学 | 一种固态盘的缓存管理方法 |
CN104424110B (zh) * | 2013-09-10 | 2017-11-14 | Lsi公司 | 固态驱动器的主动回收 |
-
2014
- 2014-10-31 TW TW103137753A patent/TWI604307B/zh active
-
2015
- 2015-01-04 CN CN201510001574.5A patent/CN105824759B/zh active Active
- 2015-08-28 US US14/839,073 patent/US10089225B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN105824759A (zh) | 2016-08-03 |
TW201616363A (zh) | 2016-05-01 |
CN105824759B (zh) | 2018-09-18 |
US10089225B2 (en) | 2018-10-02 |
US20160124845A1 (en) | 2016-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI604307B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN105009094B (zh) | 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统 | |
CN104750616B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN107644667B (zh) | 对用于各种工作负载的固态驱动器的内部预处理 | |
CN105122220B (zh) | 固态驱动器中的原子写入命令支持 | |
US9519575B2 (en) | Conditional iteration for a non-volatile device | |
CN103080911B (zh) | 存储器块的先占式垃圾回收 | |
EP1548599B1 (en) | Faster write operations to nonvolatile memory by manipulation of frequently accessed sectors | |
US11249664B2 (en) | File system metadata decoding for optimizing flash translation layer operations | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
US9940040B2 (en) | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection | |
CN108664418A (zh) | 数据储存装置以及其操作方法 | |
CN103646063B (zh) | 一种星载高速文件管理系统 | |
TW201833777A (zh) | 資料儲存裝置以及其操作方法 | |
US8838877B2 (en) | File system derived metadata for management of non-volatile memory | |
JP2009503746A5 (zh) | ||
US20130166828A1 (en) | Data update apparatus and method for flash memory file system | |
CN113377695B (zh) | 读写分离的固态存储设备的数据分布方法 | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
CN109521944A (zh) | 数据储存装置以及数据储存方法 | |
US10713162B1 (en) | System and method for computer data garbage collection acceleration using peer to peer data transfers | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
TWI519951B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN100456263C (zh) | 在税控收款机中使用闪存时处理坏块的方法 | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory |