TWI463319B - 快閃儲存系統的記憶位址轉譯方法 - Google Patents
快閃儲存系統的記憶位址轉譯方法 Download PDFInfo
- Publication number
- TWI463319B TWI463319B TW101147060A TW101147060A TWI463319B TW I463319 B TWI463319 B TW I463319B TW 101147060 A TW101147060 A TW 101147060A TW 101147060 A TW101147060 A TW 101147060A TW I463319 B TWI463319 B TW I463319B
- Authority
- TW
- Taiwan
- Prior art keywords
- mapping table
- level mapping
- flash memory
- entry point
- information
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明與快閃儲存系統的記憶位址轉譯方法有關,特別是關於一種動態邏輯到實體記憶映射方法以及均勻抹除方法,以延長快閃記憶體的壽命。
快閃記憶體係在最近幾年來最普遍的儲存媒介。其相對於硬碟的優點是低功率、低重量、以及低成本。而且,其主要的弱點是在使用壽命。
邏輯到實體記憶映射方法係可不同於多種基本映射單元。基本映射單元係可為位元組(byte)、字組(word)、雙字組(dword)、四字組(qword,64位元)、磁區(sector)、資料頁(page)、以及區塊(block)。因為快閃操作之實體特性,所以最後兩種映射單元,即資料頁與區塊,係通常使用在快閃記憶體。選擇如區塊之基本映射單元的優點,係有較小的映射表大小(尺寸)。另一方面,選擇如資料頁之基本映射單元的缺點,係有很大的映射表大小(尺寸)。
然而,此兩種映射單元的映射表大小(尺寸)係隨著快閃記憶體的密度之增加而增加。其係意謂顯而易見地需要一多級映射,特別是行動可攜式應用產品(mobile application)。行動可攜式系統(mobile system)係相對於快取記憶體(cache memory)之大小(尺寸)總是很敏感。快取記憶體越大,係意味對於映射表之管
理而言其消耗時間越少。
基於上述問題,發明人提出了一種快閃儲存系統的記憶位址轉譯方法,以克服現有技術的缺陷。
本發明目的在於提供一種快閃儲存系統的記憶位址轉譯方法,其係可將所有映射表(mapping table)儲存在快閃記憶體中,其係第一級映射表係總是存在於快取記憶體(cache memory)中,以可節省在快取記憶體與快閃記憶體之間映射表轉換的時間,以第二級映射表係可載入到快取記憶體以進一步進行邏輯到實體轉譯。
為達上述目的,本發明係提供一種快閃儲存系統的記憶位址轉譯方法,該快閃儲存系統具有一RAM及一快閃記憶體,該RAM包括一第一級映射表,該快閃記憶體包括一第二級映射表,該方法之步驟包括:將具有二資訊的至少一第一進入點儲存到該第一級映射表,該映射表係已儲存在該RAM中,該第一進入點的其中之一資訊係為該第一進入點的一驗證,而該第一進入點的另一資訊係為該第二級映射表的一位置;以及將具有二資訊的至少一第二進入點儲存到該第二級映射表,該第二級映射表係儲存在該快閃記憶體中,該第二進入點的其中之一資訊係為該第二進入點的一驗證,且該第二進入點的另一資訊係為在該快閃記憶體中之資料的一實體位置。
在某些實施例中,該第一級映射表係在該儲存系統於電源啟動成一初始階段進行動態重建。
在某些實施例中,在該第二級映射表中之每一第二進入點
之間的該實體位置的資訊是不同的。
在某些實施例中,該第二級映射表映射到之資料的大小,係為一位元組、一字組、一雙字組、一磁區、一實體資料頁、多個實體資料頁、一實體區塊、或者是多個實體區塊。
在某些實施例中,該資料與該第二級映射表兩者的實體位址係動態地決定。
在某些實施例中,當需要參考時,該第二級映射表係載入到該RAM,且假若該第二級映射表的一內容已更新的話,則該第二級映射表係儲存到該快閃記憶體。
雖然本發明使用了幾個較佳實施例進行解釋,但是下列圖式及具體實施方式僅僅是本發明的較佳實施例;應說明的是,下面所揭示的具體實施方式僅僅是本發明的例子,並不表示本發明限於下列圖式及具體實施方式。
使用壽命是快閃記憶體胞(flash memory cell)的一基本的弱點。為了克服此實體限制,係已發展出一動態邏輯到實體位址映射(dynamic logical to physical address mapping)。因為快閃記憶體之不同種類的應用,動態邏輯到實體位址映射(與映射表一樣短)係以不同方式設計。對一低階的應用(low performance required application)而言,映射表設計目標係在於加強記憶體胞的使用壽命。在此應用中,映射表的演算法係會更複雜。另一方面,對一高階應用(high performance application)而言,設計目標係在於降低映射表管理的消耗時間(overhead)。當然,儲存系統之
RAM(Random Access Memory,隨機存取記憶體)大小(尺寸)係可不同。
請參閱圖1,係表示本發明快閃儲存系統的方塊圖。微處理器3係為一般用途操作單元(general purpose operating unit)。ROM(Read Only Memory,唯讀記憶體)4係儲存韌體碼(FW code)以控制整個儲存系統1。RAM(Random Access Memory,隨機存取記憶體)5係使用當作資料隨機存取記憶體(data RAM)以管理韌體變數(FW variable)、映射表(mapping table)、資料雜湊(data hash)等等。快閃控制器6係與快閃記憶體7溝通。錯誤更正碼引擎(ECC engine)8係設計來加強快閃資料的資料完整性(data integrity)。主機控制器(host controller)2係用於處理不同主機界面協定(host interface protocols)。
請參閱圖2,係表示本發明具有二級映射之一動態邏輯到實體位址映射表的示意圖。此二級映射表的目的係在於降低映射表管理的消耗時間(overhead)。而在第一級映射表(level-one mapping table中有數個進入點(entries)。每個進入點係包含兩種資訊(information),其一是此進入點的驗證(validation),即有效標誌(Valid Mark);而另一則是第二級映射表(level-two mapping table)的位置(亦即,第一級的映射表為動態建立的映射表,不會存到快閃記憶體,只會在每次電源啟動的時候進行動態重建並放在揮發性記憶體上;第二級的映射表係因為太過龐大,所以被分割為很多張映射表,需要查詢或修改的時候,才會從非揮發性記憶體裡面讀出來;第二級的映射表的physical location係表示非揮發性記
憶體裡面的位置)。第一級映射表係總是位在RAM上,且絕不會儲存到快閃記憶體。而第一級映射表係在一儲存系統於電源啟動成一初始階段(initialization stage)進行動態重建(dynamic rebuilt)。第二級映射表係亦包含數個進入點。每個進入點係包含兩種資訊,其一為此進入點的驗證;另一為在快閃記憶體中之資料的實體位置(physical location)。在第二級映射表中的每個進入點之間的此實體位置的資訊是不同的。第二級映射表所映射到的資料大小(尺寸)係可為一位元組(byte)、一字組(word)、一雙字組(double word)、一磁區(sector)、一實體資料頁(physical page)、多個實體資料頁、一實體區塊(physical block)、或者是多個實體區塊。資料與第二級映射表兩者的實體位址係為動態決定的(dynamically determined)。當需要參考時,第二級映射表係載入到RAM,且假若其內容已更新的話,則第二級映射表係週期性地存入到快閃記憶體。
雖然本發明以相關的較佳實施例進行解釋,但是這並不構成對本發明的限制。應說明的是,本領域的技術人員根據本發明的思想能夠構造出很多其他類似實施例,這些均在本發明的保護範圍之中。
[本發明]
1‧‧‧儲存系統
2‧‧‧主機控制器
3‧‧‧微處理器
4‧‧‧唯讀記憶體
5‧‧‧隨機存取記憶體
6‧‧‧快閃控制器
7‧‧‧快閃記憶體
8‧‧‧錯誤更正碼引擎
圖1 係表示本發明快閃儲存系統的方塊圖。
圖2 係表示本發明具有二級映射之一動態邏輯到實體位址映射表的示意圖。
1‧‧‧儲存系統
2‧‧‧主機控制器
3‧‧‧微處理器
4‧‧‧唯讀記憶體
5‧‧‧隨機存取記憶體
6‧‧‧快閃控制器
7‧‧‧快閃記憶體
8‧‧‧錯誤更正碼引擎
Claims (6)
- 一種快閃儲存系統的記憶位址轉譯方法,該快閃儲存系統具有一RAM及一快閃記憶體,該RAM包括一第一級映射表,該快閃記憶體包括一第二級映射表,該方法之步驟包括:將具有二資訊的至少一第一進入點儲存到該第一級映射表,該映射表係已儲存在該RAM中,該第一進入點的其中之一資訊係為該第一進入點的一驗證,而該第一進入點的另一資訊係為該第二級映射表的一位置;以及將具有二資訊的至少一第二進入點儲存到該第二級映射表,該第二級映射表係儲存在該快閃記憶體中,該第二進入點的其中之一資訊係為該第二進入點的一驗證,且該第二進入點的另一資訊係為在該快閃記憶體中之資料的一實體位置。
- 依據申請專利範圍第1項所述的方法,其中,該第一級映射表係在該儲存系統於電源啟動成一初始階段進行動態重建。
- 依據申請專利範圍第1項所述的方法,其中,在該第二級映射表中之每一第二進入點之間的該實體位置的資訊是不同的。
- 依據申請專利範圍第1項所述的方法,其中,該第二級映射表映射到之資料的大小,係為一位元組、一字組、一雙字組、一磁區、一實體資料頁、多個實體資料頁、一實體區塊、或者是多個實體區塊。
- 依據申請專利範圍第1項所述的方法,其中,該資料與該第二級映射表兩者的實體位址係動態地決定。
- 依據申請專利範圍第1項所述的方法,其中,當需要參考時, 該第二級映射表係載入到該RAM,且假若該第二級映射表的一內容已更新的話,則該第二級映射表係週期性地儲存到該快閃記憶體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/589,124 US20140052899A1 (en) | 2012-08-18 | 2012-08-18 | Memory address translation method for flash storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201409235A TW201409235A (zh) | 2014-03-01 |
TWI463319B true TWI463319B (zh) | 2014-12-01 |
Family
ID=50100905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101147060A TWI463319B (zh) | 2012-08-18 | 2012-12-13 | 快閃儲存系統的記憶位址轉譯方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140052899A1 (zh) |
TW (1) | TWI463319B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218294B1 (en) * | 2012-06-06 | 2015-12-22 | Sk Hynix Memory Solutions Inc. | Multi-level logical block address (LBA) mapping table for solid state |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US20160019160A1 (en) * | 2014-07-17 | 2016-01-21 | Sandisk Enterprise Ip Llc | Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules |
US20160048328A1 (en) * | 2014-08-12 | 2016-02-18 | Kabushiki Kaisha Toshiba | Memory system |
US9940287B2 (en) * | 2015-03-27 | 2018-04-10 | Intel Corporation | Pooled memory address translation |
US9921969B2 (en) | 2015-07-14 | 2018-03-20 | Western Digital Technologies, Inc. | Generation of random address mapping in non-volatile memories using local and global interleaving |
US10445232B2 (en) | 2015-07-14 | 2019-10-15 | Western Digital Technologies, Inc. | Determining control states for address mapping in non-volatile memories |
US10452560B2 (en) | 2015-07-14 | 2019-10-22 | Western Digital Technologies, Inc. | Wear leveling in non-volatile memories |
US10445251B2 (en) | 2015-07-14 | 2019-10-15 | Western Digital Technologies, Inc. | Wear leveling in non-volatile memories |
US10452533B2 (en) | 2015-07-14 | 2019-10-22 | Western Digital Technologies, Inc. | Access network for address mapping in non-volatile memories |
US10235287B2 (en) | 2016-06-29 | 2019-03-19 | Western Digital Technologies, Inc. | Efficient management of paged translation maps in memory and flash |
US11216361B2 (en) | 2016-06-29 | 2022-01-04 | Western Digital Technologies, Inc. | Translation lookup and garbage collection optimizations on storage system with paged translation table |
US10353813B2 (en) | 2016-06-29 | 2019-07-16 | Western Digital Technologies, Inc. | Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices |
US10229048B2 (en) | 2016-06-29 | 2019-03-12 | Western Digital Technologies, Inc. | Unified paging scheme for dense and sparse translation tables on flash storage systems |
US10175896B2 (en) | 2016-06-29 | 2019-01-08 | Western Digital Technologies, Inc. | Incremental snapshot based technique on paged translation systems |
TWI650639B (zh) * | 2016-11-07 | 2019-02-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US10540100B2 (en) | 2018-04-10 | 2020-01-21 | Western Digital Technologies, Inc. | Mapping-based wear leveling for non-volatile memory |
US10811112B2 (en) | 2018-09-29 | 2020-10-20 | Western Digital Technologies, Inc. | Wear leveling with wear-based attack detection for non-volatile memory |
FR3106422B1 (fr) * | 2020-01-20 | 2021-12-10 | Continental Automotive | Passerelle de communication de trames de données pour véhicule automobile |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070204128A1 (en) * | 2003-09-10 | 2007-08-30 | Super Talent Electronics Inc. | Two-Level RAM Lookup Table for Block and Page Allocation and Wear-Leveling in Limited-Write Flash-Memories |
US20080301256A1 (en) * | 2007-05-30 | 2008-12-04 | Mcwilliams Thomas M | System including a fine-grained memory and a less-fine-grained memory |
US7849357B2 (en) * | 2006-06-30 | 2010-12-07 | Kabushiki Kaisha Toshiba | Semiconductor memory device and control method thereof |
TW201122812A (en) * | 2009-09-03 | 2011-07-01 | 248 Solidstate Inc | Page based management of flash storage |
US20120198129A1 (en) * | 2011-02-02 | 2012-08-02 | Van Aken Stephen P | At least semi-autonomous modules in a memory system and methods |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124170B1 (en) * | 1999-08-20 | 2006-10-17 | Intertrust Technologies Corp. | Secure processing unit systems and methods |
US7100089B1 (en) * | 2002-09-06 | 2006-08-29 | 3Pardata, Inc. | Determining differences between snapshots |
US7269708B2 (en) * | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
US7711923B2 (en) * | 2006-06-23 | 2010-05-04 | Microsoft Corporation | Persistent flash memory mapping table |
US8250350B2 (en) * | 2008-08-26 | 2012-08-21 | Texas Digital And Multimedia Systems | Computer system with non-volatile write-protected memory based operating system and secure system architecture |
US8566511B2 (en) * | 2009-07-23 | 2013-10-22 | Stec, Inc. | Solid-state storage device with multi-level addressing |
US9535849B2 (en) * | 2009-07-24 | 2017-01-03 | Advanced Micro Devices, Inc. | IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect |
DE112011102487T5 (de) * | 2010-07-27 | 2013-05-29 | International Business Machines Corporation | Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen |
US8938624B2 (en) * | 2010-09-15 | 2015-01-20 | Lsi Corporation | Encryption key destruction for secure data erasure |
US9104327B2 (en) * | 2011-05-17 | 2015-08-11 | Sandisk Technologies Inc. | Fast translation indicator to reduce secondary address table checks in a memory device |
-
2012
- 2012-08-18 US US13/589,124 patent/US20140052899A1/en not_active Abandoned
- 2012-12-13 TW TW101147060A patent/TWI463319B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070204128A1 (en) * | 2003-09-10 | 2007-08-30 | Super Talent Electronics Inc. | Two-Level RAM Lookup Table for Block and Page Allocation and Wear-Leveling in Limited-Write Flash-Memories |
US7849357B2 (en) * | 2006-06-30 | 2010-12-07 | Kabushiki Kaisha Toshiba | Semiconductor memory device and control method thereof |
US20080301256A1 (en) * | 2007-05-30 | 2008-12-04 | Mcwilliams Thomas M | System including a fine-grained memory and a less-fine-grained memory |
TW201122812A (en) * | 2009-09-03 | 2011-07-01 | 248 Solidstate Inc | Page based management of flash storage |
US20120198129A1 (en) * | 2011-02-02 | 2012-08-02 | Van Aken Stephen P | At least semi-autonomous modules in a memory system and methods |
Also Published As
Publication number | Publication date |
---|---|
TW201409235A (zh) | 2014-03-01 |
US20140052899A1 (en) | 2014-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI463319B (zh) | 快閃儲存系統的記憶位址轉譯方法 | |
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
TWI457756B (zh) | 記憶體系統及其操作方法 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US8417914B2 (en) | Memory address translation | |
US9229876B2 (en) | Method and system for dynamic compression of address tables in a memory | |
US7941692B2 (en) | NAND power fail recovery | |
US8478796B2 (en) | Uncorrectable error handling schemes for non-volatile memories | |
US8762622B2 (en) | Enhanced MLC solid state device | |
AU2012205187B2 (en) | Non-volatile temporary data handling | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20140006898A1 (en) | Flash memory with random partition | |
US20140122774A1 (en) | Method for Managing Data of Solid State Storage with Data Attributes | |
TWI625626B (zh) | 管理記憶體裝置中記憶體單元的實體資訊的方法及系統 | |
KR102216116B1 (ko) | 메모리 모듈 및 그것의 동작 방법 | |
CN111125447A (zh) | 一种元数据访问方法、装置、设备及可读存储介质 | |
US20120317365A1 (en) | System and method to buffer data | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
JP6140093B2 (ja) | キャッシュメモリ、誤り訂正回路およびプロセッサシステム | |
US20220058138A1 (en) | Facilitating sequential reads in memory sub-systems | |
US20180150390A1 (en) | Data Storage Device and Operating Method Therefor | |
WO2020164064A1 (en) | Partial caching of media address mapping data | |
WO2014047159A1 (en) | Write cache sorting | |
US11144448B2 (en) | Memory sub-system for managing flash translation layers table updates in response to unmap commands | |
CN105005510B (zh) | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |