TWI544335B - 資料儲存裝置以及快閃記憶體控制方法 - Google Patents
資料儲存裝置以及快閃記憶體控制方法 Download PDFInfo
- Publication number
- TWI544335B TWI544335B TW103137752A TW103137752A TWI544335B TW I544335 B TWI544335 B TW I544335B TW 103137752 A TW103137752 A TW 103137752A TW 103137752 A TW103137752 A TW 103137752A TW I544335 B TWI544335 B TW I544335B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- data
- logical
- logical block
- flash memory
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
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)
- Read Only Memory (AREA)
- Microelectronics & Electronic Packaging (AREA)
Description
本發明係有關於資料儲存裝置,特別有關於快閃記憶體(flash memory)控制技術。
現今資料儲存裝置常以快閃記憶體(flash memory)為儲存媒體,常見型式包括非及閘型快閃記憶體(即NAND flash)…等。
快閃記憶體常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。另外有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
快閃記憶體的實體空間通常包括複數個物理區塊(physical blocks)。各物理區塊包括複數物理頁(physical pages)。一物理區塊需要完整抹除(erase)後方能被重新配置使用。快閃記憶體之資料更新並非對同樣儲存空間作複寫,而是將更新資料儲存在閒置空間,至於舊儲存內容則轉為無效。快閃記憶體如此操作特性使得其儲存空間之管理明顯複雜、且不同於其他類型的儲存記憶元件。針對快閃記憶體而特別設計的快閃記憶體控制器相應產生。
一種高效能的快閃記憶體控制技術。
根據本案一種實施方式所實現的一資料儲存裝置包括一快閃記憶體以及一控制單元。該快閃記憶體提供劃分為複數個物理區塊的儲存空間,且上述物理區塊各自更劃分為複數個物理頁。該控制單元包括一微控制器以及一隨機存取記憶體,耦接於一主機與該快閃記憶體之間。該微控制器係運作來於該隨機存取記憶體管理一邏輯區塊記錄表格,以該邏輯區塊記錄表格記載序列寫入之斷點的邏輯區塊。該微控制器係運作來禁制該邏輯區塊記錄表格所載之邏輯區塊的有效資料收集。
根據本案一種實施方式所實現的一快閃記憶體控制方法包括以下步驟:於一隨機存取記憶體管理一邏輯區塊記錄表格,以該邏輯區塊記錄表格記載序列寫入之斷點的邏輯區塊;以及,禁制該邏輯區塊記錄表格所載之邏輯區塊的有效資料收集。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧快閃記憶體
300‧‧‧資料儲存裝置
302‧‧‧快閃記憶體
304‧‧‧控制單元
306‧‧‧主機
310‧‧‧系統內程式區塊
312‧‧‧閒置區塊
314‧‧‧資料區塊集合
320‧‧‧微控制器
322‧‧‧隨機存取記憶體
324‧‧‧唯讀記憶體
BLK1、BLK2…BLKi‧‧‧物理區塊
CBS1…CBSK1、CBR1…CBRK2‧‧‧資料接收區塊
GCB‧‧‧有效資料收集區塊
HB1…HBN1‧‧‧禁制作有效資料收集的邏輯區塊
HBGCA_1…HBGCA_N2‧‧‧允許作有效資料收集的邏輯區塊
S402…S414‧‧‧步驟
SW1…SWN1‧‧‧序列寫入
第1圖圖解一快閃記憶體100的儲存空間規劃;第2A圖圖解一種頁映射模式(page mode);第2B圖圖解一種區塊映射模式(block mode);第3A、3B圖圖解根據本案一種實施方式所實現的一資料儲存裝置300,其中採混和型映射模式(hybrid mode),並控管序列寫入資料之有效資料收集;
第4圖以流程圖根據本案一種實施方式圖解邏輯區塊記錄表格SWTAB的管理辦法。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第1圖圖解一快閃記憶體100的儲存空間規劃,其中係劃分為複數個物理區塊(physical blocks)BLK1、BLK2…BLKi…等。各物理區塊包括複數物理頁(physical pages)。主機端係以下達邏輯位址方式動態使用快閃記憶體的儲存空間,因應形成動態變化的一邏輯-物理位址映射關係。關於該邏輯-物理位址映射關係,第2A圖圖解一種頁映射模式(page mode),而第2B圖圖解一種區塊映射模式(block mode)。
參閱第2A圖所示之頁映射模式,快閃記憶體端的單一物理區塊可能配置給主機端複數個邏輯區塊使用。例如圖中所示之單一物理區塊,其中物理頁1與2係配置給邏輯頁1與2使用,而物理頁3至5係配置給邏輯頁3至5使用。邏輯頁1與2屬一邏輯區塊,而邏輯頁3至5屬另一邏輯區塊。如此頁映射模式使得各物理區塊的空間使用靈活。
參閱第2B圖所示之區塊映射模式,主機端的單一邏輯區塊係集中使用快閃記憶體端的單一物理區塊。例如,圖中所示之單一邏輯區塊的邏輯頁1、2…i…M係循序映射至所示單一物理區塊的物理頁1、2…i…M。如此區塊映射模式使得主機-快閃記憶體之間的邏輯-物理位址映射資訊資料量極低,只
需紀載到區塊層級即可,無須如第2A圖頁映射模式詳載至各物理頁所對應之邏輯頁。
結合以上頁映射模式以及區塊映射模式的優點,本案採用混和型映射模式(hybrid mode),以頁映射模式使用資料接收區塊,再以區塊映射模式整理出資料區塊集合。
第3A、3B圖圖解根據本案一種實施方式所實現的一資料儲存裝置300,其中包括一快閃記憶體302以及一控制單元304。控制單元304耦接於一主機306與該快閃記憶體302之間,包括根據主機306所下達的指令操作該快閃記憶體302。
快閃記憶體302之空間係規劃如下,包括:系統內程式區塊310、閒置區塊312、資料接收區塊CBS1…CBSK1、CBR1…CBRK2、資料區塊集合314。系統內程式區塊310用於儲存系統內程式(in-system programs)。資料接收區塊CBS1…CBSK1、CBR1…CBRK2係由閒置區塊312供應,係以頁映射模式接收主機306所下達寫入的資料。更有其他實施例僅規劃單一物理區塊作資料接收區塊。資料接收區塊CBS1…CBSK1、CBR1…CBRK2以頁映射模式接收的資料係以區塊映射模式整理至資料區塊集合314。一種實施方式是以有效資料收集(garbage collection)使同一邏輯區塊之資料收集至同一物理區塊成資料區塊集合314之一。有效資料收集啟動時,所需之有效資料收集區塊GCB(以虛線表示係因有效資料收集啟動而新配置)即是配置自閒置區塊312,並於資料收集完成後推入資料區塊集合314。
控制單元304包括一微控制器320、一隨機存取記
憶體322(如SRAM)以及一唯讀記憶體324。唯讀記憶體324存有唯讀程式碼(如,ROM code)。微控制器320係藉由執行該唯讀記憶體324所載之唯讀程式碼或/以及該快閃記憶體302系統內程式區塊310所載之系統內程式運作。
如圖所示,微控制器320係運作來於隨機存取記憶體322管理一邏輯區塊記錄表格SWTAB,以該邏輯區塊記錄表格SWTAB記載序列寫入(sequential write operations)斷點之邏輯區塊,以據以控管有效資料收集。
圖中邏輯區塊記錄表格SWTAB係記載N1個序列寫入SW1、SW2…SWj…SWN1之斷點的邏輯區塊HB1、HB2…HBj…HBN1。資料接收區塊CBS1…CBSK1零散接收邏輯區塊HB1、HB2…HBj…HBN1的資料。此外,資料區塊集合314內也有稍早整理好之對應邏輯區塊HB1、HB2…HBj…HBN1的物理區塊。然而,微控制器320係根據邏輯區塊記錄表格SWTAB內容禁制邏輯區塊HB1、HB2…HBj…HBN1的有效資料收集。相較之,未載於邏輯區塊記錄表格SWTAB的該些邏輯區塊HBGCA_1、HBGCA_2、HBGCA_3…HBGCA_N2之資料係允許作有效資料收集。一選定邏輯區塊係未載於該邏輯區塊記錄表格SWTAB的該些邏輯區塊HBGCA_1…HBGCA_N2其一。該選定邏輯區塊的資料除了散布在資料接收區塊CBS1…CBSK1、CBR1…CBRK2上,更可能存在於資料區塊集合314的一物理區塊(對應該選定邏輯區塊)中;該些資料將收集至新配置的該有效資料收集區塊GCB,再推入上述資料區塊集合314,取代原本對應該選定邏輯區塊、而如今只剩無效資料的該物理區塊。
至於禁制作有效資料收集的該些邏輯區塊HB1、HB2…HBj…HBN1,則是繼續在資料收集區塊CBS1…CBSK1內累積其資料量,待其有效資料收集禁制解除,即可一口氣釋放其所佔據的資料收集區塊空間。如此一來,快閃記憶體302使用效率顯著高於傳統技術。
微控制器320可運作來更基於物理區塊有效頁數決定上述選定邏輯區塊。例如,全數允許有效資料收集的資料接收區塊,有效頁數最多的該資料接收區塊所相應的邏輯區塊可全數選作上述選定邏輯區塊,一一作有效資料收集,使該資料接收區塊空間釋出再利用;資料區塊集合314內相應的該些物理區塊亦將隨之更新。
在第3A、3B圖所示實施方式中,序列寫入資料(sequential data)與非序列寫入資料(random data)係分開收集,分別為資料接收區塊CBS1…CBSK1與資料接收區塊CBR1…CBRK2。
第4圖以流程圖根據本案一種實施方式圖解邏輯區塊記錄表格SWTAB的管理辦法。步驟S402接收主機306發下的一寫入指令後,步驟S404判斷該寫入指令是否屬序列寫入(sequential write operation;如,連續邏輯位址的寫入操作)。在多執行緒架構下,序列寫入可能因為執行緒暫停而切為多段分開執行。步驟S404將包括判斷出被分割開的序列寫入指令。步驟S404若確認步驟S402所接收的寫入指令非關序列資料寫入,則不改動邏輯區塊記錄表格SWTAB,流程結束。
步驟S404若確認步驟S402所接收的寫入指令係關
於序列資料寫入,則流程進行步驟S406判斷該寫入指令是否係重啟該邏輯區塊記錄表格SWTAB已記錄之序列寫入,為續寫動作。若步驟S406若辨識出步驟S402所接收的寫入指令係續寫動作,則流程進行步驟S408,更新所屬之序列寫入於邏輯區塊記錄表格SWTAB的欄位。如此一來,被取代的欄位內容所指示的邏輯區塊釋出,允許作有效資料收集後整理至資料區塊集合314。
若步驟S406辨識出步驟S402所接收的寫入指令非續寫動作,而是新的序列寫入,流程進行步驟S410判斷邏輯區塊記錄表格SWTAB是否還有空間登錄新的序列寫入斷點。若步驟S410判斷邏輯區塊記錄表格SWTAB尚有空白欄位,則流程進行步驟S412以該邏輯區塊記錄表格SWTAB之空白欄位記錄此新序列寫入之斷點的邏輯位址。若步驟S410判斷邏輯區塊記錄表格SWTAB已滿載,則流程進行步驟S414,淘汰邏輯區塊記錄表格SWTAB其中一欄位內容,使之改記錄此次新序列寫入之斷點的邏輯位址。一種實施方式是淘汰該邏輯區塊記錄表格SWTAB中最久未更新之欄位。
基於以上技術內容,本案更涉及快閃記憶體的控制方法,不限定以特定架構的控制單元實現。此外,其他採用同樣概念控制一快閃記憶體的技術都屬於本案所欲保護的範圍。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍
當視後附之申請專利範圍所界定者為準。
300‧‧‧資料儲存裝置
302‧‧‧快閃記憶體
304‧‧‧控制單元
306‧‧‧主機
310‧‧‧系統內程式區塊
312‧‧‧閒置區塊
314‧‧‧資料區塊集合
320‧‧‧微控制器
322‧‧‧隨機存取記憶體
324‧‧‧唯讀記憶體
CBS1…CBSK1、CBR1…CBRK2‧‧‧資料接收區塊
GCB‧‧‧有效資料收集區塊
HB1…HBN1‧‧‧禁制作有效資料收集的邏輯區塊
HBGCA_1…HBGCA_N2‧‧‧允許作有效資料收集的邏輯區塊
SW1…SWN1‧‧‧序列寫入
Claims (14)
- 一種資料儲存裝置,包括:一快閃記憶體,提供劃分為複數個物理區塊的儲存空間,且上述物理區塊各自更劃分為複數個物理頁;以及一控制單元,包括一微控制器以及一隨機存取記憶體,耦接於一主機與該快閃記憶體之間;其中:該微控制器係運作來於該隨機存取記憶體管理一邏輯區塊記錄表格,以該邏輯區塊記錄表格記載序列寫入斷點之邏輯區塊;且該微控制器係運作來禁制該邏輯區塊記錄表格所載之邏輯區塊的有效資料收集。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該微控制器係運作來規劃該快閃記憶體的該等物理區塊供應至少一資料接收區塊,接收該主機所下達寫入的資料;該微控制器係運作來使上述資料接收區塊的映射資訊係詳載至各物理頁所對應之邏輯頁;且該微控制器係運作來使上述有效資料收集係使同一邏輯區塊之資料收集至同一物理區塊成資料區塊集合之一。
- 如申請專利範圍第2項所述之資料儲存裝置,其中:該微控制器係運作來以上述有效資料收集將上述資料接收區塊儲存的一選定邏輯區塊的資料與上述資料區塊集合中屬於該選定邏輯區塊的資料收集至自該快閃記憶體的該等 物理區塊中新配置的一有效資料收集區塊,以成上述資料區塊集合之一;且該選定邏輯區塊係未記載於該邏輯區塊記錄表格。
- 如申請專利範圍第3項所述之資料儲存裝置,其中:該微控制器係運作來更基於物理區塊有效頁數決定上述選定邏輯區塊。
- 如申請專利範圍第4項所述之資料儲存裝置,其中:該微控制器係運作來根據續寫之序列寫入更新該邏輯區塊記錄表格對應所載之邏輯區塊。
- 如申請專利範圍第5項所述之資料儲存裝置,其中:該微控制器係運作來以該邏輯區塊記錄表格之空白欄位記錄未登錄的序列寫入之斷點的邏輯位址。
- 如申請專利範圍第6項所述之資料儲存裝置,其中:該邏輯區塊記錄表格滿資料時,該微控制器係運作來將該邏輯區塊記錄表格中最久未更新之欄位以未登錄的序列寫入之斷點的邏輯位址取代。
- 一種快閃記憶體控制方法,包括:於一隨機存取記憶體管理一邏輯區塊記錄表格,以該邏輯區塊記錄表格記載序列寫入斷點之邏輯區塊;以及禁制該邏輯區塊記錄表格所載之邏輯區塊的有效資料收集。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,更包括: 規劃一快閃記憶體的複數個物理區塊供應至少一資料接收區塊,接收一主機所下達寫入的資料,上述各物理區塊包括複數個物理頁;使上述資料接收區塊的映射資訊詳載至各物理頁所對應之邏輯頁;以及使上述有效資料收集係使同一邏輯區塊之資料收集至同一物理區塊成資料區塊集合之一。
- 如申請專利範圍第9項所述之快閃記憶體控制方法,更包括:以上述有效資料收集將上述資料接收區塊儲存的一選定邏輯區塊的資料與上述資料區塊集合中屬於該選定邏輯區塊的資料收集至自該快閃記憶體的該等物理區塊中新配置的一有效資料收集區塊,以成上述資料區塊集合之一;其中,該選定邏輯區塊係未記載於該邏輯區塊記錄表格。
- 如申請專利範圍第10項所述之快閃記憶體控制方法,包括:更基於物理區塊有效頁數決定上述選定邏輯區塊。
- 如申請專利範圍第11項所述之快閃記憶體控制方法,更包括:根據續寫之序列寫入更新該邏輯區塊記錄表格對應所載之邏輯區塊。
- 如申請專利範圍第12項所述之快閃記憶體控制方法,更包括:以該邏輯區塊記錄表格之空白欄位記錄未登錄的序列寫入之斷點的邏輯位址。
- 如申請專利範圍第13項所述之快閃記憶體控制方法,更包括:於該邏輯區塊記錄表格滿資料時,將該邏輯區塊記錄表格中最久未更新之欄位以未登錄的序列寫入之斷點的邏輯位址取代。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103137752A TWI544335B (zh) | 2014-10-31 | 2014-10-31 | 資料儲存裝置以及快閃記憶體控制方法 |
CN201510001653.6A CN105825082B (zh) | 2014-10-31 | 2015-01-04 | 数据储存装置以及快闪存储器控制方法 |
US14/802,611 US20160124844A1 (en) | 2014-10-31 | 2015-07-17 | Data storage device and flash memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103137752A TWI544335B (zh) | 2014-10-31 | 2014-10-31 | 資料儲存裝置以及快閃記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201616362A TW201616362A (zh) | 2016-05-01 |
TWI544335B true TWI544335B (zh) | 2016-08-01 |
Family
ID=55852795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103137752A TWI544335B (zh) | 2014-10-31 | 2014-10-31 | 資料儲存裝置以及快閃記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160124844A1 (zh) |
CN (1) | CN105825082B (zh) |
TW (1) | TWI544335B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697017B (zh) * | 2017-10-20 | 2022-03-15 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
CN110276216A (zh) * | 2019-05-24 | 2019-09-24 | 宜鼎国际股份有限公司 | 数据保护方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0749790A (ja) * | 1993-06-01 | 1995-02-21 | Matsushita Electric Ind Co Ltd | プロセッサにおける割り込み制御方法及び割り込み制御回路 |
JP2005293774A (ja) * | 2004-04-02 | 2005-10-20 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置の制御方法 |
CN100470506C (zh) * | 2007-06-08 | 2009-03-18 | 马彩艳 | 基于sector访问的flash存储器的存储管理方法 |
US8850160B2 (en) * | 2010-08-23 | 2014-09-30 | Apple Inc. | Adaptive write behavior for a system having non-volatile memory |
GB2511325A (en) * | 2013-02-28 | 2014-09-03 | Ibm | Cache allocation in a computerized system |
US20140297921A1 (en) * | 2013-03-26 | 2014-10-02 | Skymedi Corporation | Method of Partitioning Physical Block and Memory System Thereof |
GB201322290D0 (en) * | 2013-12-17 | 2014-01-29 | Ibm | Method and device for managing a memory |
-
2014
- 2014-10-31 TW TW103137752A patent/TWI544335B/zh active
-
2015
- 2015-01-04 CN CN201510001653.6A patent/CN105825082B/zh active Active
- 2015-07-17 US US14/802,611 patent/US20160124844A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
TW201616362A (zh) | 2016-05-01 |
CN105825082A (zh) | 2016-08-03 |
CN105825082B (zh) | 2019-03-19 |
US20160124844A1 (en) | 2016-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750615B (zh) | 数据储存装置以及快闪存储器控制方法 | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
US8489855B2 (en) | NAND flash-based solid state drive and method of operation | |
US9489301B2 (en) | Memory systems | |
US7783851B2 (en) | Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices | |
US9183132B2 (en) | Storage device, computer system, and storage system | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
TWI604307B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
US20030229753A1 (en) | Flash memory file system | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US20130060991A1 (en) | Solid state drive and garbage collection control method thereof | |
CN107203330B (zh) | 一种面向读写数据流的闪存数据分布方法 | |
CN103389942A (zh) | 控制装置、存储装置及存储控制方法 | |
TWI519951B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TWI544335B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TW202242664A (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
US9304906B2 (en) | Memory system, controller and control method of memory | |
US20170277436A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
US10503651B2 (en) | Media cache band cleaning | |
US20240232069A1 (en) | Method and system for updating file in file system | |
JP2013200726A (ja) | 半導体記憶装置 |