TW201303592A - 雙快閃轉譯層 - Google Patents

雙快閃轉譯層 Download PDF

Info

Publication number
TW201303592A
TW201303592A TW101120956A TW101120956A TW201303592A TW 201303592 A TW201303592 A TW 201303592A TW 101120956 A TW101120956 A TW 101120956A TW 101120956 A TW101120956 A TW 101120956A TW 201303592 A TW201303592 A TW 201303592A
Authority
TW
Taiwan
Prior art keywords
memory
mapping
data unit
processor
logical addresses
Prior art date
Application number
TW101120956A
Other languages
English (en)
Inventor
Alexander Palay
Asif Sade
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of TW201303592A publication Critical patent/TW201303592A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)

Abstract

一種用於操作一記憶體之方法包括:接收用於在一記憶體中執行的與各別目標邏輯位址相關聯之記憶體存取命令。根據一第一映射將該等目標邏輯位址轉譯成各別中間邏輯位址,該第一映射具有為一第一資料單元大小之一第一細微度。根據一第二映射將該等中間邏輯位址轉譯成該記憶體中之各別實體儲存位置,該第二映射具有為一第二資料單元大小之一第二細微度,該第二資料單元大小大於該第一資料單元大小。根據該等各別實體儲存位置在該記憶體中執行該等記憶體存取命令。

Description

雙快閃轉譯層
本發明大體而言係關於記憶體器件,且特定言之,係關於用於管理非揮發性記憶體器件中之資料之方法及系統。
諸如快閃記憶體之非揮發性記憶體可用於各種應用中且配合各種類型之主機使用。通常藉由快閃管理系統(亦稱為快閃轉譯層(FTL))來組織且管理快閃記憶體中之資料儲存。
本發明之一實施例,提供一種用於操作一記憶體之方法。該方法包括:接收用於在一記憶體中執行的與各別目標邏輯位址相關聯之記憶體存取命令。根據一第一映射將該等目標邏輯位址轉譯成各別中間邏輯位址,該第一映射具有為一第一資料單元大小之一第一細微度。根據一第二映射將該等中間邏輯位址轉譯成該記憶體中之各別實體儲存位置,該第二映射具有為一第二資料單元大小的一第二細微度,該第二資料單元大小大於該第一資料單元大小。根據該等各別實體儲存位置在該記憶體中執行該等記憶體存取命令。
在一些實施例中,該第一資料單元大小包括一記憶體頁。在其他實施例中,該第二資料單元大小包括一記憶體區塊。而在其他實施例中,在單一處理器中執行以下兩個操作:將該等目標邏輯位址轉譯成該等中間邏輯位址;及 將該等中間邏輯位址轉譯成該等實體儲存位置。
在一些實施例中,在一第一處理器中執行將該等目標邏輯位址轉譯成該等中間邏輯位址的操作,且在與該第一處理器分離之一第二處理器中執行將該等中間邏輯位址轉譯成該等實體儲存位置的操作。在其他實施例中,該第二處理器包括一記憶體控制器,且該第一處理器包括一主機處理器。
在一些實施例中,該方法亦包括:接收該第二映射之一或多個參數,及基於該等所接收參數調適該第一映射。在其他實施例中,該方法亦包括:在該第二映射中分配儲存空間以用於儲存關於該第一映射之管理資訊。而在其他實施例中,該方法亦包括:藉由該第一映射命令該第二映射禁止該第二映射之一功能。
根據本發明之一實施例,亦提供一種資料儲存裝置,其包括一記憶體介面及至少一處理器。該記憶體介面經組態以與一記憶體通信。該至少一處理器經組態以進行以下操作:接收用於在該記憶體中執行的與各別目標邏輯位址相關聯之記憶體存取命令;根據一第一映射將該等目標邏輯位址轉譯成各別中間邏輯位址,該第一映射具有為一第一資料單元大小之一細微度;根據一第二映射將該等中間邏輯位址轉譯成該記憶體中之各別實體儲存位置,該第二映射具有為一第二資料單元大小之一第二細微度,該第二資料單元大小大於該第一資料單元大小;及根據該等各別實體儲存位置在該記憶體中執行該等記憶體存取命令。
根據本發明之一實施例,亦提供一種用於操作一記憶體之方法,該方法包括:接收用於在該記憶體中執行的記憶體存取命令。使用一第一記憶體管理層處理該等所接收之記憶體存取命令以便產生一第一輸出,該第一記憶體管理層具有為一第一資料單元大小之一第一細微度。使用一第二記憶體管理層處理該第一輸出以便產生一第二輸出,該第二記憶體管理層具有為一第二資料單元大小的一第二細微度,該第二資料單元大小大於該第一資料單元大小。根據該第二輸出在該記憶體中執行該等記憶體存取命令。
根據本發明之一實施例,亦提供一種資料儲存裝置,其包括一記憶體介面及至少一處理器。該記憶體介面經組態以與一記憶體通信。該至少一處理器經組態以進行以下操作:接收用於在該記憶體中執行的記憶體存取命令;使用一第一記憶體管理層處理該等所接收之記憶體存取命令以便產生一第一輸出,該第一記憶體管理層具有為一第一資料單元大小之一第一細微度;使用一第二記憶體管理層處理該第一輸出以便產生一第二輸出,該第二記憶體管理層具有為一第二資料單元大小的一第二細微度,該第二資料單元大小大於該第一資料單元大小;及根據該第二輸出在該記憶體中執行該等記憶體存取命令。
自本發明之[實施方式]與圖式,將更充分地理解本發明。
概述
將典型快閃記憶體劃分成多個記憶體區塊,每一區塊包含多個記憶體頁。按頁單元來寫入且讀取資料,但按區塊單元(亦稱為實體區塊或抹除區塊)來抹除資料。此外,無法在適當位置覆寫資料,亦即,除非首先抹除整個區塊,否則無法在同一實體位置中將新頁覆寫於舊頁上。由於此等特性,快閃記憶體中之資料儲存通常涉及多種複雜的管理功能,統稱為快閃管理或快閃轉譯層(FTL)。
本發明之實施例提供改良之系統及方法,用於藉由將FTL分離成兩個階層式記憶體管理層(即,上部FTL及下部FTL)來管理非揮發性記憶體(諸如,快閃記憶體)中的資料儲存。在一或多個快閃記憶體裝置中直接儲存且擷取資料之下部FTL以某一細微度或資料單元大小(例如,在區塊層級上)操作。居於下部FTL與主機中間的上部FTL以較精細的細微度或資料單元大小(例如,在頁層級上)操作。兩個FTL彼此互動以便改良效能。
在使用此種雙階層FTL時,可在高端記憶體系統(諸如,固態硬碟(SSD)或企業儲存系統)中以簡單的方式整合且使用低端快閃式記憶體系統。舉例而言,可以在主機上執行之軟體來實施上部FTL,因此消除了對專用的高端控制器或對重新設計整個FTL之需要。此外,雙FTL組態使得能夠在各種類型之記憶體系統(高端與低端)中重複使用相同的下部FTL。
系統描述
快閃記憶體中之資料儲存通常涉及多種管理功能,其中 包括(例如)邏輯-實體位址映射、區塊壓縮(「廢棄項目收集」)及區塊損耗均衡。因為不首先抹除整個區塊就無法在快閃記憶體中覆寫資料,所以在某一邏輯位址處重寫新的資料導致資料被儲存於快閃記憶體中之新的實體位置處,後續接著邏輯-實體位址映射之適當更新。
在數個程式化及抹除循環之後,快閃記憶體區塊產生無效資料區。區塊壓縮或廢棄項目收集係將來自片段區塊之有效資料複製至新生區塊(亦即,先前經抹除之區塊)中的處理程序。廢棄項目收集亦涉及邏輯至實體位址的重新映射以考慮到儲存壓縮資料之新實體位置。
動態損耗均衡係FTL選擇且壓縮已累積了大量無效資料之區塊的處理程序。靜態損耗均衡係為了平衡記憶體區塊上之損耗而將未頻繁更新之區塊壓縮成不同區塊的處理程序。
此種管理功能(包括邏輯至實體位址映射、區塊壓縮及損耗均衡)統稱為快閃轉譯層(FTL)的快閃管理。圖1為示意性地說明根據本發明之實施例之記憶體系統的方塊圖,該記憶體系統使用雙階層FTL。該系統包含與主機系統20介接之記憶體控制器10。主機系統20可包含(例如)企業儲存系統、諸如筆記型或膝上型電腦之計算器件,或任何其他合適的主機系統。
記憶體控制器10包含主機介面30,主機介面30接受來自主機之記憶體存取命令且將該等記憶體存取命令中繼傳遞至處理器40。根據本發明之實施例,將處理器40分成上部 FTL 50及下部FTL 60,兩個FTL皆可包含實體電路或由處理器執行之軟體。在一些實施例中,藉由主機系統20執行上部FTL 50之功能。
處理器40經由記憶體介面70在一或多個非揮發性記憶體裝置(在本實例中為快閃記憶體裝置80)中執行記憶體存取命令。通常,每一記憶體裝置80可包含一或多個快閃晶粒,每一晶粒可包含一或多個記憶體平面,且每一平面包含大量記憶體區塊。每一區塊包含多列快閃記憶胞。一列給定之記憶胞可儲存一或多個記憶體頁。
可以硬體來實施記憶體控制器10之功能中之一些或全部。或者,記憶體控制器10可包含執行合適軟體或硬體與軟體元件之組合的微處理器。在一些實施例中,記憶體控制器10包含以軟體程式化以執行本文中所描述之功能的通用處理器。可經由(例如)網路將軟體以電子形式下載至處理器,或者,另外或其他,可將軟體提供於及/或儲存於非暫時性有形媒體(諸如,磁性、光學或電子記憶體)上。
僅為使概念清楚而展示圖1中之方塊圖且該方塊圖不限制本發明之實施例。在替代實施例中,亦可使用任何其他合適的記憶體系統組態。為清楚起見,圖中省略了對於理解本發明之原理並非必要的元件。
在圖1中所展示之實例系統組態中,將記憶體裝置80及記憶體控制器10實施為兩個單獨積體電路(IC)。然而,在替代實施例中,可將記憶體裝置及記憶體控制器整合於單一多晶片封裝(MCP)或系統單晶片(SoC)中的單獨半導體晶 粒上,且可藉由內部匯流排互連。再或者,記憶體控制器電路之一部分或全部可駐留於安置有記憶體裝置中之一或多者的同一晶粒上。再或者,記憶體控制器10之功能性之一部分或全部可以軟體來實施且藉由主機系統20中之合適的處理器執行。在一些實施例中,主機系統20之處理器及記憶體控制器10可製造於同一晶粒上,或在同一裝置封裝中的單獨晶粒上。
雙FTL組態
記憶體控制器10使用上部FTL 50及下部FTL 60代表主機20將資料儲存於快閃記憶體裝置80中。通常,記憶體控制器自主機20接收具有各別目標邏輯位址的記憶體存取命令,將於該等目標邏輯位址中寫入或讀取資料。
兩個FTL中之每一者以某一細微度(亦即,使用某一大小之資料單元)映射資料。設定資料單元大小以使得上部FTL以比下部FTL更精細之細微度(亦即,使用更小的資料單元大小)映射資料。
在實例實施例中,下部FTL經組態以使用區塊映射,或具有為某一資料單元大小之大細微度的映射,該資料單元大小通常大約為106個記憶胞。上部FTL在此實施例中為經組態成以記憶體頁細微度映射資料(亦即,頁映射)之較為複雜的系統。此映射包含為某一資料單元大小的較小細微度,該資料單元大小通常大約為103至104個記憶胞。然而,或者,上部及下部FTL可使用任何其他合適的細微度,亦即資料單元大小。
在一些實施例中,使用兩個FTL執行記憶體存取命令涉及兩階段位址映射處理程序:上部FTL 50將命令中所提供之目標邏輯位址轉譯成各別中間邏輯位址,且下部FTL 60將中間邏輯位址轉譯成記憶體裝置80中之實體儲存位置。第一映射在本文中稱為邏輯-邏輯(L-L)映射,且第二映射在本文中稱為邏輯-實體(L-P)映射。
在一些實施例中,下部FTL 60將其管理參數中之一或多者報告給上部FTL 50。管理參數可包含(例如)NAND晶粒之數目、平面之數目、區塊大小、頁大小、下部FTL所使用之資料單元大小(映射單元大小)、下部FTL中之可用區塊的數目、壞(非功能)區塊之數目,及/或任何其他合適的管理參數。
上部FTL經組態以利用自下部FTL階層接收之參數來最佳化對效能及快閃耐久性的管理。舉例而言,參數可包含可並行地程式化以達成程式化效能最佳化(例如,晶粒或平面之並行程式化)之資訊的大小。參數亦可提供有關不同頁之間的相依性之資訊,例如,用於在突發電源故障之情況下處置NAND頁破壞。
在一些實施例中,下部FTL 60分配記憶體空間(在記憶體裝置80中或在隨機存取記憶體(RAM)中)以用於儲存上部FTL 50之後設資料及管理資料。下部FTL可將專用的應用程式設計介面(API)或專用的分區及/或位址提供給上部FTL以儲存此資訊。在其他實施例中,可規定下部FTL中之此等專用儲存區域提供某一效能等級,例如讀取/寫入 速度、延時、耐久性或可靠性。
在一些實施例中,上部FTL可命令下部FTL禁止下部FTL之某些功能,以便最佳化效能、耐久性、可靠性或其他效能量測。舉例而言,上部FTL可停用由下部FTL執行之靜態損耗均衡處理程序。另外或其他,上部FTL可禁止下部FTL之任何其他功能。上部FTL可在有限時間內、在有限耐久性內(例如,在規定數目個程式化及抹除循環內)或永久地禁止下部FTL之給定功能。
在本發明之實施例中,通常在上部FTL中執行廢棄項目收集,此係因為廢棄項目收集利用大量的頁映射資源。通常在區塊層級上操作損耗均衡處理程序,且因而通常藉由下部FTL處置損耗均衡處理程序。在一些實施例中,上部及下部FTL使此等處理程序彼此同步。
圖2為示意性地說明根據本發明的實施例之記憶體管理方法的流程圖。在命令中繼傳遞步驟100處,主機20將記憶體存取命令提供至記憶體控制器10。在通信步驟110處,將包含各別目標邏輯位址之記憶體存取命令傳達至上部快閃轉譯層(FTL)50。
在第一映射步驟120處,上部FTL 50執行目標邏輯位址至中間邏輯位址之第一映射(L-L映射)。在第二映射步驟130處,下部FTL 60執行中間邏輯位址至實體位址之第二映射(L-P映射),該等實體位址包含記憶體裝置80中之實體儲存位置。在本實例中,以頁細微度執行第一映射且以區塊細微度執行第一映射。在執行步驟140處,下部FTL 40 在各別實體位址中執行記憶體存取命令。
儘管本文中所描述之實施例主要解決了快閃管理,但本文中所描述之方法及系統亦可用於包含兩個處理操作階段的其他應用中,其中第一階段具有大量的記憶體資源(諸如隨機存取記憶體(RAM)),用來管理操作,且第二階段包含有限的資源且與實體媒體的關聯性更大。
因此將瞭解,作為實例引證了上文所描述之實施例,且本發明不限於上文中特定展示及描述之實施例。實情為,本發明之範疇包括上文中所描述之各種特徵的組合與子組合,以及熟習此項技術者在閱讀前述描述之後將想到且未在先前技術中揭示的其變化及修改。以引用之方式併入本專利申請案中之文件將被視為本申請案之整體部分,惟在到了以與在本說明書中明確地或隱含地進行之定義相衝突之方式在此等併入文件中定義任何術語的程度時應考慮僅本說明書中之定義除外。
10‧‧‧記憶體控制器
20‧‧‧主機系統
30‧‧‧主機介面
40‧‧‧處理器
50‧‧‧上部快閃轉譯層(FTL)
60‧‧‧下部FTL
70‧‧‧記憶體介面
80‧‧‧快閃記憶體裝置
圖1為示意性地說明根據本發明之實施例之記憶體系統的方塊圖,該記憶體系統使用雙階層快閃記憶體轉譯層(FTL);及圖2為示意性地說明根據本發明的實施例之記憶體管理方法的流程圖。
10‧‧‧記憶體控制器
20‧‧‧主機系統
30‧‧‧主機介面
40‧‧‧處理器
50‧‧‧上部快閃轉譯層(FTL)
60‧‧‧下部FTL
70‧‧‧記憶體介面
80‧‧‧快閃記憶體裝置

Claims (20)

  1. 一種用於操作一記憶體之方法,其包含:接收用於在一記憶體中執行的與各別目標邏輯位址相關聯之記憶體存取命令;根據一第一映射將該等目標邏輯位址轉譯成各別中間邏輯位址,該第一映射具有為一第一資料單元大小之一第一細微度;根據一第二映射將該等中間邏輯位址轉譯成該記憶體中之各別實體儲存位置,該第二映射具有為一第二資料單元大小的一第二細微度,該第二資料單元大小大於該第一資料單元大小;及根據該等各別實體儲存位置在該記憶體中執行該等記憶體存取命令。
  2. 如請求項1之方法,其中該第一資料單元大小包含一記憶體頁。
  3. 如請求項1之方法,其中該第二資料單元大小包含一記憶體區塊。
  4. 如請求項1之方法,其中在單一處理器中執行以下兩個操作:將該等目標邏輯位址轉譯成該等中間邏輯位址;及將該等中間邏輯位址轉譯成該等實體儲存位置。
  5. 如請求項1之方法,其中在一第一處理器中執行將該等目標邏輯位址轉譯成該等中間邏輯位址的操作,且其中在與該第一處理器分離之一第二處理器中執行將該等中間邏輯位址轉譯成該等實體儲存位置的操作。
  6. 如請求項5之方法,其中該第二處理器包含一記憶體控制器,且其中該第一處理器包含一主機處理器。
  7. 如請求項1之方法,其包含:接收該第二映射之一或多個參數;及基於該等所接收之參數調適該第一映射。
  8. 如請求項1之方法,其包含在該第二映射中分配儲存空間以用於儲存關於該第一映射之管理資訊。
  9. 如請求項1之方法,其包含藉由該第一映射命令該第二映射禁止該第二映射之一功能。
  10. 一種資料儲存裝置,其包含:一記憶體介面,其經組態以與一記憶體通信;及至少一處理器,其經組態以進行以下操作:接收用於在該記憶體中執行的與各別目標邏輯位址相關聯之記憶體存取命令;根據一第一映射將該等目標邏輯位址轉譯成各別中間邏輯位址,該第一映射具有為一第一資料單元大小之一細微度;根據一第二映射將該等中間邏輯位址轉譯成該記憶體中之各別實體儲存位置,該第二映射具有為一第二資料單元大小之一第二細微度,該第二資料單元大小大於該第一資料單元大小;及根據該等各別實體儲存位置在該記憶體中執行該等記憶體存取命令。
  11. 如請求項10之裝置,其中該第一資料單元大小包含一記憶體頁。
  12. 如請求項10之裝置,其中該第二資料單元大小包含一記憶體區塊。
  13. 如請求項10之裝置,其中該至少一處理器包含:經組態 以將該等目標邏輯位址轉譯成該等中間邏輯位址且將該等中間邏輯位址轉譯成該等實體儲存位置之單一處理器。
  14. 如請求項10之裝置,其中該至少一處理器包含:經組態以將該等目標邏輯位址轉譯成該等中間邏輯位址之一第一處理器;及與該第一處理器分離且經組態以將該等中間邏輯位址轉譯成該等實體儲存位置之一第二處理器。
  15. 如請求項14之裝置,其中該第二處理器包含一記憶體控制器,且其中該第一處理器包含一主機處理器。
  16. 如請求項10之裝置,其中該至少一處理器經組態以接收該第二映射之一或多個參數且基於該等所接收之參數調適該第一映射。
  17. 如請求項10之裝置,其中該至少一處理器經組態以在該第二映射中分配儲存空間以用於儲存關於該第一映射之管理資訊。
  18. 如請求項10之裝置,其中該至少一處理器經組態以藉由該第一映射命令該第二映射禁止該第二映射之一功能。
  19. 一種用於操作一記憶體之方法,其包含:接收用於在該記憶體中執行的記憶體存取命令;使用一第一記憶體管理層處理該等所接收之記憶體存取命令以便產生一第一輸出,該第一記憶體管理層具有為一第一資料單元大小之一第一細微度;使用一第二記憶體管理層處理該第一輸出以便產生一第二輸出,該第二記憶體管理層具有為一第二資料單元 大小的一第二細微度,該第二資料單元大小大於該第一資料單元大小;及根據該第二輸出在該記憶體中執行該等記憶體存取命令。
  20. 一種資料儲存裝置,其包含:一記憶體介面,其經組態以與一記憶體通信;及至少一處理器,其經組態以進行以下操作:接收用於在該記憶體中執行的記憶體存取命令;使用一第一記憶體管理層處理該等所接收之記憶體存取命令以便產生一第一輸出,該第一記憶體管理層具有為一第一資料單元大小之一第一細微度;使用一第二記憶體管理層處理該第一輸出以便產生一第二輸出,該第二記憶體管理層具有為一第二資料單元大小的一第二細微度,該第二資料單元大小大於該第一資料單元大小;及根據該第二輸出在該記憶體中執行該等記憶體存取命令。
TW101120956A 2011-06-09 2012-06-11 雙快閃轉譯層 TW201303592A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161494916P 2011-06-09 2011-06-09
US13/488,945 US20120317377A1 (en) 2011-06-09 2012-06-05 Dual flash translation layer

Publications (1)

Publication Number Publication Date
TW201303592A true TW201303592A (zh) 2013-01-16

Family

ID=47294159

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101120956A TW201303592A (zh) 2011-06-09 2012-06-11 雙快閃轉譯層

Country Status (5)

Country Link
US (1) US20120317377A1 (zh)
EP (1) EP2718823A1 (zh)
KR (1) KR20140024043A (zh)
TW (1) TW201303592A (zh)
WO (1) WO2012170848A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
CA2881206A1 (en) * 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US9400603B2 (en) 2014-12-16 2016-07-26 International Business Machines Corporation Implementing enhanced performance flash memory devices
GB2536201B (en) * 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
US9811284B2 (en) 2015-12-20 2017-11-07 Apple Inc. One-pass programming in a multi-level nonvolatile memory device with improved write amplification
US9898200B2 (en) 2016-02-18 2018-02-20 Samsung Electronics Co., Ltd Memory device having a translation layer with multiple associative sectors
US10372351B2 (en) * 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10732896B2 (en) * 2017-06-12 2020-08-04 Western Digital Technologies, Inc. Method and system for reading data during control sync operations
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US10769062B2 (en) * 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
CN110471861B (zh) * 2019-07-10 2022-02-11 华为技术有限公司 一种闪存设备中的数据存储方法及闪存设备
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
US11836074B2 (en) * 2020-10-07 2023-12-05 Micron Technology, Inc. Multiple flash translation layers at a memory device
US11487456B1 (en) 2021-04-23 2022-11-01 Vmware, Inc. Updating stored content in an architecture utilizing a middle map between logical and physical block addresses
US11579786B2 (en) * 2021-04-23 2023-02-14 Vmware, Inc. Architecture utilizing a middle map between logical to physical address mapping to support metadata updates for dynamic block relocation
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
CN114327272A (zh) * 2021-12-28 2022-04-12 深圳大普微电子科技有限公司 一种数据处理方法、固态硬盘控制器及固态硬盘
US11797214B2 (en) * 2022-01-04 2023-10-24 Vmware, Inc. Micro-batching metadata updates to reduce transaction journal overhead during snapshot deletion

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175398A3 (en) * 1984-08-17 1989-08-30 Koninklijke Philips Electronics N.V. Data processing system comprising a memory access controller which is provided for combining descriptor bits of different descriptors associated with virtual addresses
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US7953588B2 (en) * 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US7496494B2 (en) * 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7698698B2 (en) * 2004-09-30 2010-04-13 Smith Micro Software, Inc. Method for over-the-air firmware update of NAND flash memory based mobile devices
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
CA2597551A1 (en) * 2005-02-11 2006-08-17 M-Systems Flash Disk Pioneers Ltd. Nand flash memory system architecture
US7761674B2 (en) * 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US7685399B2 (en) * 2007-01-07 2010-03-23 International Business Machines Corporation Method, system, and computer program products for data movement within processor storage
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100881052B1 (ko) * 2007-02-13 2009-01-30 삼성전자주식회사 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법
US8332574B2 (en) * 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
KR20090026941A (ko) * 2007-09-11 2009-03-16 삼성전자주식회사 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
TWI395100B (zh) * 2009-01-13 2013-05-01 Innostor Technology Corp 應用於快閃記憶體的階級化分層處理資料的方法及相關快閃記憶體裝置
US8819385B2 (en) * 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8806144B2 (en) * 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
KR101662824B1 (ko) * 2009-07-08 2016-10-06 삼성전자주식회사 고체 상태 드라이브 장치 및 그것의 구동 방법
US8397049B2 (en) * 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
WO2011055407A1 (en) * 2009-11-04 2011-05-12 Hitachi, Ltd. Flash memory module
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
US8745357B2 (en) * 2009-11-30 2014-06-03 Hewlett-Packard Development Company, L.P. Remapping for memory wear leveling
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
US20110264880A1 (en) * 2010-04-23 2011-10-27 Tatu Ylonen Oy Ltd Object copying with re-copying concurrently written objects
US8239619B2 (en) * 2010-07-09 2012-08-07 Macronix International Co., Ltd. Method and apparatus for high-speed byte-access in block-based flash memory
US8285920B2 (en) * 2010-07-09 2012-10-09 Nokia Corporation Memory device with dynamic controllable physical logical mapping table loading
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US20120117303A1 (en) * 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer
US8458514B2 (en) * 2010-12-10 2013-06-04 Microsoft Corporation Memory management to accommodate non-maskable failures
US9213562B2 (en) * 2010-12-17 2015-12-15 Oracle International Corporation Garbage collection safepoint system using non-blocking asynchronous I/O call to copy data when the garbage collection safepoint is not in progress or is completed
US8874872B2 (en) * 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8880991B2 (en) * 2011-04-21 2014-11-04 Qualcomm Innovation Center, Inc. Methods and apparatus for improved browsing performance by precompilation of high-priority JavaScripts in a webpage and delaying the removal of corresponding compiled code
US9116717B2 (en) * 2011-05-27 2015-08-25 Cylance Inc. Run-time interception of software methods
US9076528B2 (en) * 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster

Also Published As

Publication number Publication date
EP2718823A1 (en) 2014-04-16
KR20140024043A (ko) 2014-02-27
US20120317377A1 (en) 2012-12-13
WO2012170848A1 (en) 2012-12-13

Similar Documents

Publication Publication Date Title
TW201303592A (zh) 雙快閃轉譯層
US9697116B2 (en) Storage system and writing method thereof
US11030094B2 (en) Apparatus and method for performing garbage collection by predicting required time
US9678676B2 (en) Method for storage devices to achieve low write amplification with low over provision
US9727570B2 (en) Mount-time unmapping of unused logical addresses in non-volatile memory systems
US9170885B2 (en) Independent management of data and parity logical block addresses
US9021187B2 (en) Logical block address remapping
US8984219B2 (en) Data storage device and method of writing data in the same
US9535628B2 (en) Memory system with shared file system
US20140089564A1 (en) Method of data collection in a non-volatile memory
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
TWI506432B (zh) 非揮發性記憶體中之邏輯與實體位址之聯合重映射
JP2013137770A (ja) Lbaビットマップの使用
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US10754785B2 (en) Checkpointing for DRAM-less SSD
US20230244616A1 (en) Data processing system allocating memory area in host as extension of memory and operating method thereof
TWI430091B (zh) Semiconductor memory device
US20210026763A1 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
US11182329B2 (en) Data processing system and operating method thereof
US20110016265A1 (en) Storage device and data process method
US20220405201A1 (en) Storage device for performing dump operation, method of operating storage device, computing system including storage device and host device for controlling storage device, and method of operating computing system