TWI497292B - A Method of Finding System Data Based on Index Block - Google Patents
A Method of Finding System Data Based on Index Block Download PDFInfo
- Publication number
- TWI497292B TWI497292B TW102100705A TW102100705A TWI497292B TW I497292 B TWI497292 B TW I497292B TW 102100705 A TW102100705 A TW 102100705A TW 102100705 A TW102100705 A TW 102100705A TW I497292 B TWI497292 B TW I497292B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- index
- index block
- memory
- control chip
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種系統資料尋找方法,特別是指一種基於索引區塊的系統資料尋找方法。
隨著記憶體製程的改良,近年來,快閃記憶體的應用層面也越來越廣泛,其中最常見之一莫過於內含快閃記憶體的快閃記憶體儲存裝置。一般而言,快閃記憶體通常會包含多個記憶體區塊與一控制晶片。而該等記憶體區塊的其中至少一者會儲存快閃記憶體儲存裝置啟動時所需的系統資料,例如,邏輯實體對照表(Logical to Physical Table,L2P Table)、區塊抹除次數(Block Erase Count),及錯誤頁面數量(Invalid Page Count)等系統管理資訊。而在快閃記憶體儲存裝置啟動的過程中,該控制晶片必須先自該等記憶體區塊中找出儲存上述系統資料的記憶體區塊位置,以自相對應的記憶體區塊讀取快閃記憶體儲存裝置啟動時所需的系統資料,進而完成其啟動程序。
此外由於先天構造使然,快閃記憶體有抹寫循環的次數限制,亦即,該等記憶體區塊的抹除次數與寫入次數是有上限的。為了解決上述的問題,現有的方式是採用耗損平衡(Wear Leveling)的技術手段均衡地使用每一個記憶體區塊,而非頻繁地固定使用部分記憶體區塊,以延長快閃記憶體的使用壽命。
然而也基於此原因,該控制晶片便不會將重要的系統
資料存放於固定的記憶體區塊。換句話說,每次進行快閃記憶體儲存裝置啟動程序時,該控制晶片都必須花費相當多的時間自所有的記憶體區塊中找出存放上述系統資料的記憶體區塊,以完成啟動程序,因此顯得不是很有效率。
因此,本發明之目的,即在提供一種基於索引區塊的系統資料尋找方法。
於是,本發明基於索引區塊的系統資料尋找方法,適用於一包含多個記憶體區塊與一控制晶片的快閃記憶體。該等記憶體區塊包括一主要索引區塊、一次要索引區塊,及一儲存系統資料的管理區塊。該基於索引區塊的系統資料尋找方法包含以下步驟:(A)該控制晶片自該等記憶體區塊搜尋該主要索引區塊;(B)當搜尋到該主要索引區塊後,該控制晶片還根據一儲存於該主要索引區塊的次要索引區塊位址搜尋該次要索引區塊;(C)該控制晶片根據一儲存於該次要索引區塊的管理區塊位址搜尋該管理區塊;及(D)該控制晶片自該管理區塊獲得系統資料。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一個較佳實施例的詳細說明中,將可清楚的呈現。
參閱圖1與圖2,本發明基於索引區塊的系統資料尋找方法之較佳實施例,適用於一包含多個記憶體區塊與一控制晶片的快閃記憶體(圖未示)。該等記憶體區塊包括一主要
索引區塊、至少一次要索引區塊,及至少一儲存系統資料的管理區塊。其中該主要索引區塊包括多個記憶體頁面,且該等記憶體頁面包括一儲存該次要索引區塊位址的主要索引頁面。又,該次要索引區塊亦包括多個記憶體頁面,且該等記憶體頁面包括一儲存一管理區塊位址的次要索引頁面。亦即,該主要索引頁面儲存的該次要索引區塊位址,對應該次要索引區塊的記憶體位址。而該次要索引頁面儲存的該管理區塊位址,則是對應該管理區塊的記憶體位址。此外該管理區塊所儲存的系統資料包括邏輯實體對照表、區塊抹除次數,及錯誤頁面數量等等。值得一提的是,儲存該管理區塊之記憶體位址的該次要索引區塊為工作(Active)狀態,故亦可稱其為工作次要索引區塊。當然,若一次要索引區塊並無儲存該管理區塊之記憶體位址,則其非為工作次要索引區塊。
以下將針對該基於索引區塊的系統資料尋找方法進一步地說明。
如步驟S01所示,該控制晶片自該等記憶體區塊搜尋該主要索引區塊。亦即,該控制晶片自該等記憶體區塊中循序地判斷目前所搜尋到的記憶體區塊是否為該主要索引區塊。若否,則繼續搜尋下一個記憶體區塊;若是,則進行步驟S02。
如步驟S02所示,當搜尋到該主要索引區塊後,該控制晶片自該主要索引區塊的該等記憶體頁面搜尋該主要索引頁面,並自該主要索引頁面獲得該次要索引區塊位址。
亦即,該主要索引區塊的記憶體頁面中,僅有其中一記憶體頁面儲存該次要索引區塊位址。而儲存該次要索引區塊位址的記憶體頁面即為該主要索引頁面,故必須先搜尋到該主要索引頁面。
值得一提的是,該主要索引區塊的每一記憶體頁面具有一時間屬性,且該主要索引頁面的時間屬性對應的時間點,晚於其他所有記憶體頁面的時間屬性對應的時間點。換句話說,該控制晶片可以透過現有的二元搜尋(Bi-Search)的方式,並根據該等記憶體頁面的時間屬性,快速地自該等記憶體頁面中搜尋到該主要索引頁面,以獲得該次要索引區塊位址。
如步驟S03所示,該控制晶片根據該次要索引區塊位址搜尋該次要索引區塊。由於該次要索引區塊位址即該次要索引區塊的記憶體位址,因此該控制晶片可以直接根據該次要索引區塊位址找到該次要索引區塊。
如步驟S04所示,該控制晶片自該等記憶體頁面搜尋該次要索引頁面,並自該次要索引頁面獲得該管理區塊位址。亦即,該次要索引區塊的記憶體頁面中,僅有其中一記憶體頁面儲存該管理區塊位址。而儲存該管理區塊位址的記憶體頁面,即為該次要索引頁面,故必須先搜尋到該次要索引頁面。
值得一提的是,如同該主要索引區塊的記憶體頁面,該次要索引區塊的每一記憶體頁面亦具有該時間屬性,且該次要索引頁面的時間屬性對應的時間點,晚於其他所有
記憶體頁面的時間屬性對應的時間點。換句話說,該控制晶片亦可透過上述的二元搜尋的方式,並根據該等記憶體頁面的時間屬性,快速地自該等記憶體頁面中搜尋到該次要索引頁面,以獲得該管理區塊位址。
如步驟S05所示,該控制晶片根據該管理區塊位址搜尋該管理區塊。由於該管理區塊位址即該管理區塊的記憶體位址,因此該控制晶片可以直接根據該管理區塊位址找到該管理區塊。
如步驟S06所示,該控制晶片自該管理區塊獲得系統資料,以完成啟動程序。
亦即,有別於現有的機制,該控制晶片不須自所有的記憶體區塊中一一地搜尋該管理區塊,而可以透過本較佳實施例將該等記憶體區塊階層化地區分為該主要索引區塊、該次要索引區塊與該管理區塊的方式,僅需於部分的記憶體區塊中搜尋到該主要索引區塊後,即可快速地透過該主要索引頁面與該次要索引頁面,找到該管理區塊。
值得一提的是,系統資料有可能會因為特殊的因素而需要改為儲存於其它的記憶體區塊,例如原先的該管理區塊已經損壞,或者是基於現有的耗損平衡機制而必須變更其存放的位置。以下的步驟將進一步地介紹在上述情況下,該主要索引區塊、該次要索引區塊與該管理區塊之間的對應操作。
如步驟S11所示,若必需選擇其它的記憶體區塊取代原先的管理區塊以儲存系統資料,則進行步驟S12。亦即,
若該控制晶片判斷需要把系統資料儲存於其它的記憶體區塊,則會自該等記憶體區塊中選擇一異於該主要索引區塊、該次要索引區塊,及該管理區塊的記憶體區塊,做為一新管理區塊,以取代原先的管理區塊。
如步驟S12所示,判斷該次要索引區塊是否有剩餘的空間。由於步驟S11中該控制晶片已經將選擇新的管理區塊儲存系統資料,因此該次要索引區塊也必須修正其記憶體頁面的內容。首先該控制晶片會先判斷該次要索引區塊是否無剩餘空間,亦即,其所有的記憶體頁面是否都已存放資料。若仍有剩餘空間,則進行步驟S16;若無剩餘空間,則進行步驟S13。
如步驟S13所示,抹除該次要索引區塊。由於該次要索引區塊的所有記憶體頁面都已存放資料,然而卻又必須更新該管理區塊位址,因此必須抹除該次要索引區塊。接著,自該等記憶體頁面中選擇其中一者做為該次要索引頁面,以將對應新的管理區塊的管理區塊位址,儲存於該次要索引頁面。
如步驟S14所示,判斷該次要索引區塊是否已損毀。由於當該控制晶片抹除該次要索引區塊的次數過於頻繁時,該次要索引區塊有可能會因此而損毀。因此若該控制晶片判斷該次要索引區塊無損毀時,則回到步驟S12;若該控制晶片判斷該次要索引區塊已損毀時,則進行步驟S15。
如步驟S15所示,變更該次要索引區塊,並更新該主要索引頁面。由於該次要索引區塊已損毀,因此該控制晶
片必須自該等記憶體區塊中指定一異於該主要索引區塊、該次要索引區塊,及該管理區塊的記憶體區塊做為一新次要索引區塊,以取代原先的次要索引區塊。
又,由於該次要索引區塊已變更,因此原先儲存於該主要索引頁面的該次要索引區塊位址亦需要變更。亦即,該控制晶片必須將新的次要索引區塊的記憶體位址做為該次要索引區塊位址,並加以儲存於該主要索引頁面。
此外如上述所提,若該控制晶片判斷該次要索引區塊仍有剩餘空間,則會進行步驟S16。
如步驟S16與S17所示,更新該次要索引頁面。亦即,該次要索引頁面會將新管理區塊的記憶體位址做為該管理區塊位址,並將其儲存於該次要索引頁面。
故在現有的耗損平衡的機制下,即使該控制晶片頻繁地選擇新的記憶體區塊做為儲存系統資料的該管理區塊,透過本較佳實施例的機制,仍然可以很有效率地獲得系統資料,以完成啟動程序。
綜上所述,基於該主要索引區塊、該次要索引區塊,及該管理區塊的階層關係,系統資料得以有效率地被找出;若系統資料所儲存的位置頻繁地變更,透過更新該主要索引頁面與該次要索引頁面,系統資料亦能有效率地被找出,而不影響啟動程序,故確實能達成本發明之目的。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍
屬本發明專利涵蓋之範圍內。
S01~S06‧‧‧步驟
S11~S17‧‧‧步驟
圖1是一流程圖,說明本發明基於索引區塊的系統資料尋找方法的較佳實施例;及圖2是一流程圖,說明本較佳實施例更新管理區塊、次要索引頁面,及主要索引頁面的流程。
S01~S06‧‧‧步驟
Claims (7)
- 一種基於索引區塊的系統資料尋找方法,適用於一包含多個記憶體區塊與一控制晶片的快閃記憶體,該等記憶體區塊包括一主要索引區塊、一次要索引區塊,及一儲存系統資料的管理區塊,該基於索引區塊的系統資料尋找方法包含以下步驟:(A)該控制晶片自該等記憶體區塊搜尋該主要索引區塊;(B)當搜尋到該主要索引區塊後,該控制晶片還根據一儲存於該主要索引區塊的次要索引區塊位址搜尋該次要索引區塊,其中該主要索引區塊包括多個記憶體頁面,該等記憶體頁面包括一儲存該次要索引區塊位址的主要索引頁面,且步驟(B)包括下列子步驟(B-1)該控制晶片自該等記憶體頁面搜尋該主要索引頁面,並自該主要索引頁面獲得該次要索引區塊位址,及(B-2)該控制晶片根據該次要索引區塊位址搜尋該次要索引區塊;(C)該控制晶片根據一儲存於該次要索引區塊的管理區塊位址搜尋該管理區塊;及(D)該控制晶片自該管理區塊獲得系統資料;其中每一記憶體頁面具有一時間屬性,且該主要索引頁面的時間屬性對應的時間點晚於其他所有記憶體頁面的時間屬性對應的時間點。
- 根據申請專利範圍第1項所述的基於索引區塊的系統資料尋找方法,還包含一在步驟(D)後的步驟(E):(E)該控制晶片自該等記憶體區塊中指定一異於該主要索引區塊、該次要索引區塊,及該管理區塊的記憶體區塊做為一新次要索引區塊,以取代原先的次要索引區塊。
- 根據申請專利範圍第2項所述的基於索引區塊的系統資料尋找方法,還包含一在步驟(E)後的步驟(F):(F)該控制晶片根據該新次要索引區塊更新該次要索引區塊位址,並將更新後的該次要索引區塊位址儲存於該主要索引頁面。
- 根據申請專利範圍第1項所述的基於索引區塊的系統資料尋找方法,該次要索引區塊包括多個記憶體頁面,該等記憶體頁面包括一儲存該管理區塊位址的次要索引頁面,且步驟(C)包括以下子步驟:(C-1)該控制晶片自該等記憶體頁面搜尋該次要索引頁面,並自該次要索引頁面獲得該管理區塊位址;(C-2)該控制晶片根據該管理區塊位址搜尋該管理區塊。
- 根據申請專利範圍第4項所述的基於索引區塊的系統資料尋找方法,其中每一記憶體頁面具有一時間屬性,且該次要索引頁面的時間屬性對應的時間點晚於其他所有記憶體頁面的時間屬性對應的時間點。
- 根據申請專利範圍第5項所述的基於索引區塊的系統資 料尋找方法,還包含一在步驟(D)後的步驟(G):(G)該控制晶片自該等記憶體區塊中指定一異於該主要索引區塊、該次要索引區塊,及該管理區塊的記憶體區塊做為一新管理區塊,以取代原先的管理區塊。
- 根據申請專利範圍第6項所述的基於索引區塊的系統資料尋找方法,還包含一在步驟(G)後的步驟(H):(H)該控制晶片根據該新管理區塊更新該管理區塊位址,並將更新後的該管理區塊位址儲存於該次要索引頁面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102100705A TWI497292B (zh) | 2013-01-09 | 2013-01-09 | A Method of Finding System Data Based on Index Block |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102100705A TWI497292B (zh) | 2013-01-09 | 2013-01-09 | A Method of Finding System Data Based on Index Block |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201428492A TW201428492A (zh) | 2014-07-16 |
TWI497292B true TWI497292B (zh) | 2015-08-21 |
Family
ID=51726087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102100705A TWI497292B (zh) | 2013-01-09 | 2013-01-09 | A Method of Finding System Data Based on Index Block |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI497292B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW591385B (en) * | 2001-06-05 | 2004-06-11 | Infineon Technologies Ag | Apparatus and method for determining a physical address from a virtual address by using a hierarchical mapping regulation with compressed nodes |
US20110258386A1 (en) * | 2001-01-19 | 2011-10-20 | Conley Kevin M | Partial Block Data Programming And Reading Operations In A Non-Volatile Memory |
TW201227741A (en) * | 2010-11-15 | 2012-07-01 | Samsung Electronics Co Ltd | Data storage device, user device and data write method |
-
2013
- 2013-01-09 TW TW102100705A patent/TWI497292B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258386A1 (en) * | 2001-01-19 | 2011-10-20 | Conley Kevin M | Partial Block Data Programming And Reading Operations In A Non-Volatile Memory |
TW591385B (en) * | 2001-06-05 | 2004-06-11 | Infineon Technologies Ag | Apparatus and method for determining a physical address from a virtual address by using a hierarchical mapping regulation with compressed nodes |
TW201227741A (en) * | 2010-11-15 | 2012-07-01 | Samsung Electronics Co Ltd | Data storage device, user device and data write method |
Also Published As
Publication number | Publication date |
---|---|
TW201428492A (zh) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10783071B2 (en) | Data storage device and operating method thereof, wherein mapping table for valid data of source block that has not been copied to destination block has a higher priority than mapping information collected by reverse scanning from end of the destination block | |
US8275928B2 (en) | Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables | |
US7831783B2 (en) | Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems | |
US7127551B2 (en) | Flash memory management method | |
KR100843543B1 (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
EP2530612B1 (en) | Mount-time unmapping of unused logical addresses in non-volatile memory systems | |
US20110238629A1 (en) | Uncorrectable error handling schemes for non-volatile memories | |
US10936207B2 (en) | Linked lists in flash memory | |
US20130151754A1 (en) | Lba bitmap usage | |
CN108959119B (zh) | 存储***中垃圾收集的方法和*** | |
US8825946B2 (en) | Memory system and data writing method | |
US10521123B2 (en) | Additive library for data structures in a flash memory | |
US7925821B2 (en) | Nonvolatile semiconductor storage device and method of managing the same | |
US20180189144A1 (en) | Apparatus and method for memory storage to protect data-loss after power loss | |
US10318201B2 (en) | Flash interface for processing datasets | |
US10552335B2 (en) | Method and electronic device for a mapping table in a solid-state memory | |
US9959044B2 (en) | Memory device including risky mapping table and controlling method thereof | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
US9329994B2 (en) | Memory system | |
US10635654B2 (en) | Data journaling for large solid state storage devices with low DRAM/SRAM | |
KR101676175B1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 | |
TWI497292B (zh) | A Method of Finding System Data Based on Index Block | |
US11204880B2 (en) | Hash tables in flash memory | |
Kang et al. | Per-block-group journaling for improving fsync response time | |
KR20150139383A (ko) | 반도체 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |