TWI604305B - 用於非揮發性記憶體系統之交錯序列計數器 - Google Patents
用於非揮發性記憶體系統之交錯序列計數器 Download PDFInfo
- Publication number
- TWI604305B TWI604305B TW101133886A TW101133886A TWI604305B TW I604305 B TWI604305 B TW I604305B TW 101133886 A TW101133886 A TW 101133886A TW 101133886 A TW101133886 A TW 101133886A TW I604305 B TWI604305 B TW I604305B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- nvm
- wsc
- value
- data
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- 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/7207—Details relating to flash memory management management of metadata or control data
-
- 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/7211—Wear leveling
Description
NAND快閃記憶體以及其他類型之非揮發性記憶體(「NVM」)通常用於大容量儲存。舉例而言,消費型電子設備(諸如攜帶型媒體播放器)常常包括用以儲存音樂、視訊及其他媒體之快閃記憶體。
NVM可包括多個超區塊,其中每一超區塊可經組織為若干區塊。類似地,NVM之每一區塊可經組織為若干頁。然而,可以區塊級「細微度」提供關於NVM之內容的一些資訊或統計。換言之,總體上可僅獲得關於區塊之此資訊,而不提供關於彼區塊內之個別頁的特定資訊。
此區塊級細微度限制NVM系統以維持資料一致性的方式交錯區塊內之資料的能力。在無資料一致性的情況下,某些NVM操作(諸如回復(rollback)、損耗均衡、廢棄項目收集)可能不可執行。因此,需要以一致之方式交錯區塊內之資料的能力。
揭示了用於提供用於非揮發性記憶體(「NVM」)系統之一交錯序列計數器(「WSC」)的系統及方法。該WSC可識別其中NVM之每一頁被程式化的序列。「交錯」態樣可指代以下事實:兩個或兩個以上區塊可為開放的以用於同時程式化,因此允許以「交錯」方式程式化此等區塊之頁。舉例而言,WSC可幫助NVM系統執行回復操作及重建邏輯至實體表映射。
亦揭示了用於提供一主機交錯序列計數器(「HWSC」)之系統及方法。每次最初將資料程式化至NVM之頁時(例如,而非移動或重寫以用於損耗均衡目的及其類似者),彼頁便可指派有一HWSC。不同於每次將資料移動至一新頁時可經更新的WSC,指派給特定資料集合之HWSC可不改變。因此,即使當將資料移動至一新頁以用於損耗均衡、廢棄項目收集及其類似者時,與彼資料相關聯之HWSC仍可保持相同。舉例而言,HWSC可幫助NVM系統判定頁之靜態與動態狀態及執行損耗均衡與廢棄項目收集操作。
在考慮結合隨附圖式進行之以下詳細描述後,本發明之以上及其他態樣與優點將變得更顯而易見,其中相似參考字元始終指代相似部分。
揭示了用於提供用於非揮發性記憶體(「NVM」)系統之一交錯序列計數器(「WSC」)的系統及方法。該WSC可識別其中NVM之每一頁被程式化的序列。「交錯」態樣可指代以下事實:兩個或兩個以上區塊可為開放的以用於同時程式化,因此允許以「交錯」方式程式化此等區塊之頁。
在未正常關機或其他系統重新啟動事件的情況下,NVM系統可能需要重建NVM之一或多個邏輯至實體映射表。此外,此映射表可僅包括有效(例如,非損壞)資料。在重建處理程序期間,在定位具有無效資料之損壞頁之後,NVM系統可檢查NVM之區塊之頁中的WSC值以判定彼損壞頁之
特定WSC值。NVM系統可接著判定具有大於該損壞頁之WSC值之WSC值的任何頁由於其相對於檔案系統及資料庫日誌記載預期將為不一致的而不能被採用。NVM系統可接著藉由忽略任何此等無效頁且僅使用具有小於該損壞頁之WSC值之WSC值的頁來建立邏輯至實體映射表而將系統「回復」至安全狀態。
當重建邏輯至實體映射表時,維持時間-順序一致性在一些狀況下,可藉由以WSC值之遞升順序依序地檢查頁來重建映射表。在兩頁各自指示其映射至相同邏輯位址的情況下,包括較高WSC值之頁可被給予優先權且可更動(override)另一頁。換言之,由於具有較高WSC值之頁在更遲之時間點經程式化至其邏輯位址,所以可判定此頁包括正確之邏輯至實體映射且因此應用於映射表中。類似地,可判定包括較小WSC值之頁包括錯誤且過時之邏輯至實體映射且因此不應用於建立映射表。
亦揭示了用於提供一主機交錯序列計數器(「HWSC」)之系統及方法。每次最初將資料寫入至NVM之頁時(例如,而非移動或重寫以用於損耗均衡目的及其類似者),彼頁可指派有一HWSC。可將HWSC設定為與當前WSC相同之值。不同於每次將舊資料移動至一新頁時可經更新的WSC,指派給特定資料集合之HWSC可不改變。作為一實例情形,假定與邏輯區塊位址(「LBA」)X相關聯之新資料儲存於頁A處。當前WSC為23,且因此頁A指派有WSC=23且HWSC=23。在當前WSC值現為82時的一更遲之
時間點,將與LBAX相關聯之資料移動至頁B(例如,移動該資料以用於損耗均衡、廢棄項目收集或其類似者)。頁B指派有新WSC=82且維持舊HWSC=23。
在一些實施例中,HWSC可幫助NVM系統判定頁之靜態與動態狀態。詳言之,HWSC可提供儲存於頁內之資料之陳舊程度的一般觀念。當資料較舊時,可更有可能將此資料視為靜態,因為該資料自其被最初程式化以來尚未移動。因此,可藉由計算當前WSC值與HWSC值(與儲存彼資料之頁相關聯)之間的差來判定資料之一般年齡。若此差大於臨限值,則可關於選擇哪一區塊或超區塊以供資料待程式化至而將儲存於彼頁中之資料視為靜態。若該差小於臨限值,則可關於選擇哪一區塊或超區塊以供資料待程式化至而將儲存於該頁內之資料(例如)視為動態。
在一些實施例中,由HWSC提供之靜態與動態判定可幫助NVM系統執行維護操作(諸如損耗均衡及廢棄項目收集)。為延長NVM之壽命,較佳地在NVM之所有區塊上具有類似損耗。由於靜態頁大體而言未經頻繁地寫入及重寫,所以可將經判定為靜態之頁一同儲存於高循環區塊(例如,已被抹除及程式化相對多的次數之區塊)中。此可藉由減小高循環區塊在未來將被抹除及重新程式化的可能性來幫助減少該區塊上之進一步損耗。類似地,可將經判定為動態之頁一同儲存於低循環區塊(例如,僅被抹除及程式化相對少的次數之區塊)中。
圖1說明電子裝置100之方塊圖。在一些實施例中,電子
裝置100可為或可包括攜帶型媒體播放器、蜂巢式電話、袖珍型個人電腦、個人數位助理(「PDA」)、桌上型電腦、膝上型電腦及任何其他合適類型之電子裝置。
電子裝置100可包括系統單晶片(「SoC」)110及非揮發性記憶體(「NVM」)120。非揮發性記憶體120可包括基於浮動閘極或電荷捕捉技術之NAND快閃記憶體、NOR快閃記憶體、可抹除可程式化唯讀記憶體(「EPROM)」、電可抹除可程式化唯讀記憶體(「EEPROM」)、鐵電RAM(「FRAM」)、磁阻RAM(「MRAM」)或其任何組合。
NVM 120可被組織為「區塊」(其可為最小可抹除單元),且可進一步被組織為「頁」(其可為可被程式化或讀取之最小單元)。在一些實施例中,NVM 120可包括多個積體電路,其中每一積體電路可具有多個區塊。來自對應積體電路之記憶體位置(例如,區塊或區塊之頁)可形成「超區塊」。可使用實體位址(例如,實體頁位址或實體區塊位址)來參考NVM 120之每一記憶體位置(例如,頁或區塊)。諸如ECC資料(例如,以提供對儲存於NVM 120中之資訊的錯誤偵測及/或校正)、交錯序列計數器值及主機交錯序列計數器的後設資料可包括於NVM 120之每一頁中。
系統單晶片110可包括SoC控制電路112、記憶體114及NVM介面118。SoC控制電路112可控制SoC 110及SoC 110或電子裝置100之其他組件的一般操作及功能。舉例而言,回應於使用者輸入及/或應用程式或作業系統之指令,SoC控制電路112可向NVM介面118發出讀取或寫入請
求以自NVM 120獲得資料或將資料儲存於NVM 120中。出於清晰性,可將SoC控制電路112可請求以供儲存或擷取的資料稱為「使用者資料」,即使該資料可能並不直接與使用者或使用者應用程式相關聯亦然。實情為,使用者資料可為由SoC控制電路112產生或獲得(例如,經由應用程式或作業系統)之任何合適之數位資訊序列。
SoC控制電路112可包括可操作以驅動電子裝置100之功能性的硬體、軟體及韌體之任何組合,及任何組件、電路或邏輯。舉例而言,SoC控制電路112可包括在儲存於NVM 120或記憶體114中之軟體/韌體的控制下操作之一或多個處理器。
記憶體114可包括任何合適類型之揮發性記憶體,諸如隨機存取記憶體(「RAM」)(例如,靜態RAM(「SRAM」)、動態隨機存取記憶體(「DRAM」)、同步動態隨機存取記憶體(「SDRAM」)、雙資料速率(「DDR」)RAM)、快取記憶體、唯讀記憶體(「ROM」)或其任何組合。記憶體114可包括資料源,該資料源可臨時儲存使用者資料以用於程式化至非揮發性記憶體120中或自非揮發性記憶體120讀取。在一些實施例中,記憶體114可充當經實施作為SoC控制電路112之部分之任何處理器的主記憶體。
NVM介面118可包括經組態以充當SoC控制電路112與NVM 120之間的介面或驅動程式之硬體、軟體及/或韌體之任何合適組合。對於NVM介面118中所包括之任何軟體
模組而言,可將對應程式碼儲存於NVM 120或記憶體114中。
NVM介面118可執行允許SoC控制電路112存取NVM 120且管理NVM 120之記憶體位置(例如,頁、區塊、超區塊、積體電路)及儲存於其中之資料(例如,使用者資料)的多種功能。舉例而言,NVM介面118可解譯來自SoC控制電路112之讀取或寫入請求、執行損耗均衡、執行廢棄項目收集、產生可與NVM 120之匯流排協定相容的讀取及程式化指令、將交錯序列計數器值指派給頁及將主機交錯序列計數器值指派給頁。
雖然NVM介面118及SoC控制電路112被展示為單獨模組,但此僅意欲簡化對本發明之實施例的描述。應理解,此等模組可共用硬體組件、軟體組件或硬體組件與軟體組件兩者。舉例而言,SoC控制電路112可執行用於NVM介面118之基於軟體之記憶體驅動程式。
在一些實施例中,電子裝置100可包括目標裝置(諸如快閃記憶體隨身碟或SD卡),該目標裝置包括NVM 120及NVM介面118之一些或所有部分。在此等實施例中,SoC 110或SoC控制電路112可充當用於目標裝置之主機控制器。舉例而言,作為主機控制器,SoC 110可向目標裝置發出讀取及寫入請求。
圖2說明根據各種實施例之電子裝置200的方塊圖,其可更詳細地說明電子裝置100(圖1)之韌體、軟體及/或硬體組件中之一些。電子裝置200可具有上文結合圖1所描述之特
徵及功能性中的任一者,且反之亦然。如所示,虛線將該等層劃界。應理解,對哪些組件落在劃界線內之描繪僅為說明性的且一或多個組件可隸屬於一不同層。
電子裝置200可包括檔案系統210、NVM驅動程式212、NVM匯流排控制器216及NVM 220。在一些實施例中,檔案系統210及NVM驅動程式212可為軟體或韌體模組,且NVM匯流排控制器216及NVM 220可為硬體模組。因此,在此等實施例中,NVM驅動程式212可表示NVM介面218之軟體或韌體態樣,且NVM匯流排控制器216可表示NVM介面218之硬體態樣。
檔案系統210可包括任何合適類型之檔案系統(諸如檔案配置表(「FAT」)檔案系統或擴展階層式檔案系統(「HFS+」)),且可為電子裝置200之作業系統的一部分(例如,圖1之SoC控制電路112的一部分)。在一些實施例中,檔案系統210可包括快閃檔案系統,其提供頁之邏輯至實體映射。在此等實施例中,檔案系統210可執行下文所論述之NVM驅動程式212的一些或所有功能性,且因此檔案系統210及NVM驅動程式212可為或可並非單獨模組。
檔案系統210可管理用於應用程式及作業系統之檔案及資料夾結構。檔案系統210可在執行於電子裝置200上之應用程式或作業系統的控制下操作,且當應用程式或作業系統請求自NVM 220讀取資訊或將資訊儲存於NVM 220中時,檔案系統210可將寫入及讀取請求提供至NVM驅動程式212。與每一讀取或寫入請求一起,檔案系統210可提供
邏輯位址以指示應自哪裡讀取使用者資料或將使用者資料寫入至哪裡(諸如邏輯頁位址或具有頁偏移之邏輯區塊位址)。
檔案系統210可將並不直接可與NVM 220相容之讀取及寫入請求提供至NVM驅動程式212。舉例而言,邏輯位址可使用對於基於硬碟機之系統典型的慣例或協定。不同於快閃記憶體,基於硬碟機之系統可在不首先執行區塊抹除的情況下覆寫記憶體位置。此外,硬碟機可無需損耗均衡來增加裝置之壽命。因此,NVM介面218可執行具有記憶體特定性、供應商特定性或具有記憶體特定性與供應商特定性兩者的任何功能以處置檔案系統請求且以適合於NVM 220之方式執行其他管理功能。
NVM驅動程式212可包括轉譯層214。在一些實施例中,轉譯層214可為或可包括快閃轉譯層(「FTL」)。在寫入請求時,轉譯層214可將所提供之邏輯位址映射至NVM 220上之自由、經抹除之實體位置。在讀取請求時,轉譯層214可使用所提供之邏輯位址來判定所請求之資料儲存的實體位址。因為每一NVM可取決於NVM之大小或供應商而具有不同佈局,所以此映射操作可具有記憶體特定性及/或供應商特定性。
除邏輯至實體位址映射之外,轉譯層214還可執行可對於快閃轉譯層典型之任何其他合適之功能,諸如廢棄項目收集(「GC」)及損耗均衡。
在一些實施例中,NVM驅動程式212可與NVM匯流排控
制器216介接以完成NVM存取請求(例如,程式化、讀取及抹除請求)。匯流排控制器216可充當至NVM 220之硬體介面,且可使用NVM 220之匯流排協定、資料速率及其他規範來與NVM 220通信。
NVM介面218可基於記憶體管理資料(本文中有時稱為「後設資料」)來管理NVM 220。後設資料可由NVM驅動程式212產生或可由在NVM驅動程式212之控制下操作的模組產生。舉例而言,後設資料可包括用於管理邏輯位址與實體位址之間的映射、不良區塊管理、損耗均衡的任何資訊、用於偵測或校正資料錯誤之ECC資料、指派給頁之交錯序列計數器值、指派給頁之主機交錯序列計數器值,或其任何組合。後設資料可包括由檔案系統210提供之資料連同使用者資料(諸如邏輯位址)。因此,一般而言,「後設資料」可指代關於使用者資料或與使用者資料有關或大體上用以管理非揮發性記憶體之操作及記憶體位置的任何資訊。
NVM介面218可經組態以將後設資料儲存於NVM 220中。在一些實施例中,NVM介面218可將與使用者資料相關聯之後設資料儲存於使用者資料所儲存的相同記憶體位置(例如,頁)處。舉例而言,NVM介面218可將使用者資料、相關聯之邏輯位址、ECC資料、交錯序列計數器值及使用者資料之主機交錯序列計數器值儲存於NVM 220之一或多個記憶體位置處。NVM介面218亦可將關於使用者資料之其他類型的後設資料儲存於相同記憶體位置中。
NVM介面218可儲存邏輯位址,使得在對NVM 220供電時或在NVM 220之操作期間,電子裝置200可判定何資料駐存於彼位置處。詳言之,因為檔案系統210可根據使用者資料之邏輯位址而非其實體位址來參考使用者資料,所以NVM介面218可將使用者資料與邏輯位址儲存於一起以維持其關聯性。如此,即使維持NVM 220中之邏輯至實體映射的單獨表變得過時,NVM介面218仍可(例如)在電子裝置200之供電或重新啟動時判定恰當映射。
除邏輯至實體位址映射之外,轉譯層214還可執行可對於快閃轉譯層典型之其他功能中之任一者,諸如廢棄項目收集及損耗均衡。舉例而言,轉譯層214可執行損耗均衡以在NVM 220之所有區塊上提供類似損耗。
如先前所提及,NVM 220之區塊可大體上一次被抹除整個區塊,而每一區塊之個別頁可一次被程式化一頁。當(例如)最初將新資料保存於NVM 220中時(例如,當首次將新歌曲檔案保存至攜帶型媒體播放器裝置中時)或當將舊資料移動至一不同頁時(例如,當移動先前保存之資料以用於損耗均衡、廢棄項目收集或其他維護操作時),可藉由資料來程式化NVM 220之頁。因此,如本文中所使用,術語「新資料」可指代第一次被最初程式化於NVM中之資料,而術語「舊資料」可指代先前被程式化於NVM中且自NVM之一區域移動(例如,重新程式化)至另一區域的資料。每次將資料保存至NVM 220之頁中時(例如,無論此資料為舊資料抑或新資料),彼頁可與依序地遞增之交錯
序列計數器(「WSC」)值相關聯。
每一頁可包括儲存其相關聯之WSC值的後設資料欄位。每次藉由資料來程式化另一頁時,WSC便可遞增且可將新近遞增之WSC值儲存於彼頁之後設資料中。以此方式,WSC可表示計數器數,其識別NVM 220之每一頁已被程式化的相對順序。作為說明,假定在當前WSC值等於2時藉由資料來程式化頁A。WSC=2因此被儲存於頁A之後設資料中,且當前WSC值遞增至3。接下來藉由資料來程式化頁B,且因此WSC=3被儲存於頁B之後設資料中。可藉由NVM系統之任何合適組件(諸如藉由NVM介面(例如,圖1之NVM介面118)或合適之控制電路(例如,圖1之SoC控制電路112))來執行WSC之儲存及/或控制。
交錯序列計數器之「交錯」態樣可指代以下事實:NVM 220之兩個或兩個以上區塊可為開放的以用於同時程式化,因此允許以「交錯」方式來程式化此等區塊之頁。舉例而言,圖3說明NVM系統300之功能圖,其中兩個區塊為開放的以用於同時程式化。如由圖3所說明,首先程式化區塊0之頁0及1,且因此分別向區塊0之頁0及1指派WSC=0及WSC=1。接下來程式化區塊1之頁0,且因此向區塊1之頁0指派WSC=2。接著程式化區塊0之頁2,且因此向其指派WSC=3,等等。因此,如由圖3所說明,以交錯方式程式化區塊0及1之頁,其中WSC值可指示程式化此等頁之順序。雖然圖3說明兩個區塊為開放的以用於同時程式化的狀況,但熟習此項技術者可瞭解,任何數目之兩個或兩個
以上區塊可為開放的以用於同時程式化及以此方式進行交錯。
在一些實施例中,WSC可在某一數目之寫循環之後轉回(rollover)。舉例而言,WSC可在100,000,000個寫循環之後重設回至WSC=0。若存在轉回,則各種演算法可偵測到大的間隙且推斷小值計數器實際上大於可存在於NVM上之較大計數器值。在一些實施例中,可將WSC計數器設定至足夠大使得其在NVM之額定生命週期(lifecycle)期間不轉回的大小。此外,WSC可關於所寫入之資料而為公平的。舉例而言,WSC可繼續遞增且將其當前值指派至當前經程式化之頁的後設資料,而不管彼頁以新資料寫入抑或以舊資料寫入。
在一些實施例中,WSC可幫助執行各種NVM操作。舉例而言,可在NVM系統之回復期間使用WSC。在NVM之未正常關機之後,NVM系統(例如,NVM系統之一或多個組件,諸如圖1之NVM介面118或圖2之NVM介面218)可嘗試重建由檔案系統(例如,圖2之檔案系統210)使用之邏輯位址與NVM(例如,圖2之NVM 220)之實體位址之間的邏輯至實體映射表。然而,該未正常關機可導致各種資料頁變得無效。大體而言,當一頁變得無效時,假定隨後經程式化之任何頁亦為無效的,因為其相對於檔案系統及資料庫日誌記載預期將不一致。NVM系統應較佳僅使用在發生此損壞之前存在的有效資料來重建邏輯至實體映射表。換言之,NVM系統應將系統「回復」至當資料仍為無錯誤時的
一穩定時間點。
WSC可幫助判定如何合適地回復NVM系統。詳言之,歸因於經程式化之頁的交錯性質,僅僅以連續方式將單一區塊回復至經損壞之頁可能不夠。實情為,可能需要同時回復若干區塊以便使系統恰當地返回至無錯誤狀態。WSC可幫助判定如何回復此等交錯區塊中之每一者。舉例而言,圖4展示NVM系統400之功能圖,其中頁已自未正常關機而變得被損壞。雖然圖4僅說明NVM系統400之兩個區塊,但熟習此項技術者可瞭解,可外推此說明包括任何合適數目之兩個或兩個以上區塊。
如由圖4中之WSC值所指示,區塊0及1之頁已以交錯方式而程式化。然而,歸因於NVM系統400之未正常關機,區塊0之頁3已變得被損壞且現為無效的或不可校正的(例如,如由「X」符號所指示)。當(例如)在重建NVM系統400之邏輯至實體映射表期間檢查區塊0時,NVM系統400(例如,NVM系統400之一或多個組件,諸如圖1之NVM介面118或圖2之NVM介面218)可發現此損壞頁。在區塊0內,頁0至2定位於頁3前面,且因此NVM系統400可判定頁0至2可能無錯誤(例如,因為其定位於所發生之損壞前面)。類似地,NVM系統400可判定區塊0之頁4可能被損壞,因為其定位於損壞頁3後面(例如,因為在損壞頁後面被程式化之任何頁大體上亦可為損壞的)。然而,為判定其他區塊(例如,區塊1)之哪些頁無錯誤及哪些頁為損壞是,NVM系統400可依賴於檢查NVM之頁的WSC值。
舉例而言,NVM系統400可檢查區塊0中之頁(例如,頁0至2,由於其定位於損壞頁3前面,所以其可能為一致的)的後設資料以判定其與WSC=1、2及5相關聯。NVM系統400可接著檢查區塊1中之頁的後設資料以判定頁0至2與WSC=3、4及6相關聯。由於所有此等頁在WSC值中無任何間隙的情況下出現(例如,WSC值自0轉至6而在序列中無任何間隙),所以NVM系統400可判定所有此等頁可能為一致的。然而,在交錯序列計數器中可偵測到的下一值為WSC=8,其與區塊0之頁8相關聯。因為未偵測到WSC=7而因此導致交錯序列計數器中之間隙,所以NVM系統400可判定WSC=7係與區塊0之損壞頁3相關聯的WSC值。NVM系統400可接著判定NVM中與大於7之WSC值相關聯的任何頁可能被損壞。換言之,區塊0之頁4(與WSC=8相關聯)及區塊1之頁3至4(與WSC=9及10相關聯)可能被損壞。
以此方式,藉由定位交錯序列計數器中之間隙,NVM系統可識別來自未正常關機之損壞可能開始的損壞頁。NVM系統可接著藉由忽視與大於該損壞頁之WSC值之WSC值相關聯的任何頁來回復系統。舉例而言,在重建NVM系統之邏輯至實體映射表期間可忽視此等頁。圖5展示處理程序500,其說明NVM系統以此方式之回復。處理程序500可由NVM系統之任何合適組件(諸如,由NVM介面(例如,圖1之NVM介面118)或合適之控制電路(例如,圖1之SoC控制電路112))執行。
處理程序500可始於步驟502處。在步驟504處,NVM系
統可檢查NVM之頁。在步驟506處,NVM系統可接著判定在步驟504處所檢查之頁是否有效。回應於該頁有效(例如,該頁無錯誤),處理程序500可在步驟508處進行至NVM之下一頁。視NVM之特定佈局而定,此下一頁可(例如)為同一區塊內之頁或一不同區塊內之頁。處理程序500可接著繼續循環步驟504、506及508以檢驗NVM系統之頁直至識別到損壞頁為止。
當在步驟506處發現無效頁時,處理程序500可進行至步驟510。NVM系統可接著讀取NVM內之頁的後設資料以判定WSC序列內之間隙。此WSC間隙值可因此對應於在步驟506處識別之無效頁的WSC值。在步驟508處,處理程序500可接著藉由忽視與大於此WSC間隙值之WSC值相關聯的任何頁來回復NVM系統。舉例而言,可將此等頁視為不一致且在重建NVM系統之邏輯至實體映射表期間忽視該等頁。處理程序500可接著在步驟514處結束。
當在重新啟動操作期間重建邏輯至實體映射表時,維持時間-順序一致性。在一些狀況下,可藉由以WSC值之遞升順序依序地檢查該等頁來重建映射表。大體而言,頁包括儲存於其後設資料內之其相關聯的邏輯位址。因此可藉由檢查此後設資料來重建邏輯至實體映射表。然而,偶爾地,一頁可包括使該頁與不正確邏輯位址相關聯的錯誤或過時之後設資料。作為說明,可將與LBA X相關聯之資料程式化至頁A。在更遲之時間點,可將與LBA X相關聯之新資料程式化至頁B,該新資料可定位於一不同區塊或超
區塊上。然而,頁A之後設資料從未進行更新以反映此改變之邏輯定址,且因此頁A之後設資料係過時的且錯誤地指示其仍與LBA X相關聯。
因此,若兩頁與相同邏輯位址相關聯,則可假定具有較高WSC值之頁為具有最新之使用者資料及正確邏輯位址映射的頁。因此,藉由檢查頁之WSC值,可恢復特定LBA之最新近版本。
可藉由在重放NVM之一或多個頁中遵循WSC序列而以依時間之順序來重建邏輯至實體映射表。作為說明性情形,與WSC=1相關聯之頁可指示其與LBA X相關聯。可更新邏輯至實體映射表以包括此資訊。然而,當到達與WSC=12相關聯之頁時,NVM系統可識別此頁之後設資料亦指示其與LBA X相關聯。NVM系統可假定此頁係在更遲之時間點被寫入且因此具有較最新之邏輯位址映射。因此,具有WSC=12之頁更動先前頁,且可更新邏輯至實體映射表以指示具有WSC=12之頁與LBA X相關聯。此在維持具有多個寫入串流(例如,動態及靜態寫入串流)之系統的一致時間表(time-line)方面可特別重要。
除將WSC值儲存於後設資料中之外,主機交錯序列計數器(「HWSC」)值亦可儲存於NVM之每一頁的後設資料中。類似於WSC值,HWSC值可為依序的。然而,如下文更詳細地解釋,HWSC可未必為遞增的。每次最初將新資料程式化至NVM之頁(例如,而非移動或重新程式化以用於損耗均衡目的及其類似者)時,彼頁便可指派有一HWSC
值。不同於每次將舊資料移動至一新頁時可改變的WSC值,指派給特定資料集合之HWSC值可從不改變。實情為,特定資料集合可貫穿其在NVM內之壽命的過程而維持相同之HWSC值。換言之,由於HWSC值為依序的,所以其可關於一檔案何時被最初保存於NVM中而指示彼檔案之一般「年齡」。舉例而言,HWSC可指示一歌曲檔案何時被第一次下載至攜帶型媒體播放器中。
可藉由使當前WSC值等於一頁之HWSC值來判定指派給該頁之特定HWSC值。作為實例情形,假定新歌曲檔案A儲存於頁X處。當前WSC為23,且因此頁X指派有WSC=23及HWSC=23。在損耗均衡處理程序之後,WSC現等於50。此時,另一新歌曲檔案B儲存於頁Y處,且因此頁Y指派有WSC=50及HWSC=50(因此,指派給新資料之HWSC值可為依序的,雖然未必為遞增的)。在當前WSC值現為82時的一更遲時間點,將與歌曲檔案A相關聯之資料移動至頁Z(例如,移動該資料以用於損耗均衡、廢棄項目收集或其類似者)。頁Z指派有新WSC=82且維持舊HWSC=23。因此,即使已將與歌曲檔案A相關聯之資料重新程式化於NVM內,系統仍可判定歌曲檔案A比歌曲檔案B「舊」,因為歌曲檔案A具有較低HWSC值。換言之,HWSC可表示(例如)檔案或其他資料何時被第一次程式化至NVM中的相對「時戳」。
在一些實施例中,HWSC可幫助NVM系統判定頁之靜態與動態狀態。如本文中所使用,術語「動態資料」可指代
相對頻繁地被更新或抹除及重新程式化之資料。作為說明,動態資料可包括與天氣預報程式(可頻繁更新此資料以反映當前天氣狀況)相關聯之資料。另一方面,如本文中所使用,術語「靜態資料」可指代在相對長的時間週期內保持恆定及不改變的資料。作為說明,靜態資料可包括儲存於攜帶型媒體播放器裝置中之歌曲檔案(例如,mp3檔案)。此資料可貫穿其在NVM內之壽命而大體上保持不改變。類似地,術語「動態頁」及「靜態頁」可分別指代NVM之儲存動態資料及靜態資料的頁。
詳言之,如上文所描述,HWSC可提供儲存於頁內之資料之陳舊程度的一般觀念。當資料較舊時,此資料可更有可能為靜態的(例如,因為動態資料在其被抹除之前大體上僅存在歷時相對短的時間週期,且因此從未到達「舊」年齡)。如下文更詳細地描述,此等靜態與動態判定可用於執行各種NVM系統操作,諸如損耗均衡及廢棄項目收集。
為判定儲存於一頁內之資料的一般年齡,可計算當前WSC值與彼頁之HWSC值之間的差。若此差大於預定臨限值,則可將儲存於彼頁中之資料視為靜態。若該差小於臨限值,則可將彼資料之狀態(例如)視為:動態資料;新近儲存之新資料;或未知的(例如,因為可能不知道此係動態資料抑或僅僅係新近儲存之新靜態資料)。
除使用HWSC值之外或替代於使用HWSC值,可使用各種其他技術來判定資料之靜態與動態狀態。舉例而言,可
檢查特定資料集合之「檔案大小」。在一些狀況下,此可涉及判定多少頁用以儲存一特定檔案。檔案大小愈大,則該檔案愈可能為靜態的。舉例而言,NVM系統可判定具有大於10頁(例如,或大於任何其他預定檔案大小)之大小的任何檔案為靜態的。作為另一實例,NVM系統可判定使用多少時間來將檔案程式化至NVM中。用以程式化檔案之時間量愈大,則此檔案愈可能為靜態的(例如,因為較大檔案可花費較大量的時間來程式化)。作為又一實例,可監視各種系統啟發法(heuristics)以判定在檔案之程式化期間NVM系統之行為。在此狀況下,當NVM系統將相對大量的時間及努力投入於程式化一檔案時,則此檔案愈可能為靜態的(例如,因為較大檔案可能需要更多的時間及努力來程式化)。
圖6展示用於判定NVM系統之頁之靜態與動態狀態的處理程序600。處理程序600可始於步驟602處。在步驟604處,可判定一臨限值。舉例而言,該臨限值可為先前儲存於NVM系統內之預定值。在步驟606處,可判定與關注頁相關聯之HWSC值。舉例而言,可自關注頁之後設資料來讀取HWSC值。在步驟608處,可判定WSC之當前值。可接著在步驟610處計算HWSC值與當前WSC值之間的差。
在步驟612處,可接著比較該差與在步驟604處判定之臨限值。回應於該差大於該臨限值,處理程序600可進行至步驟614,且可將關注頁識別為靜態頁。換言之,由於關注頁之「年齡」足夠舊,所以此頁有可能視為靜態頁。
然而,回應於在步驟612處該差不大於該臨限值,處理程序600可改為進行至步驟616。在步驟616處,可產生若干結論中之一者。舉例而言,歸因於關注頁之相對年輕的年齡,處理程序600可判定此頁為動態頁。作為另一實例,處理程序600可判定關注頁僅含有新近儲存之新資料(例如,其可為或可並非動態資料)。作為又一實例,處理程序600可將此頁之狀態視為「未知」。換言之,可能不知道關注頁為動態頁抑或僅僅為新近儲存之靜態頁。
在一些實施例中,在於步驟612處比較該差與該臨限值之後,處理程序600可改為進行至選用之步驟618、620、622及624,而非進行至步驟614或步驟616。在此狀況下,處理程序600可聯合地使用步驟618、620、622及/或624中之計算中的一或多者來作出靜態與動態判定,而非將靜態與動態判定僅基於HWSC之檢查。
舉例而言,在步驟618處,可判定與關注頁相關聯之整個檔案的大小。在一些狀況下,此步驟可涉及識別用以儲存整個檔案之頁的數目。如上文所提及,大的檔案大小可指示檔案為靜態的。作為另一實例,在步驟620處,可判定寫入與關注頁相關聯之整個檔案所需要的時間。類似於步驟618,較長之寫入時間可指示檔案為靜態的。作為又一實例,在步驟622處,可識別與整個檔案有關的各種系統啟發法(例如,用於寫入整個檔案之時間及努力)。在步驟624處,可接著基於在步驟612、618、620及622中之一或多者中所判定的資訊來作出靜態與動態判定。
在一些實施例中,靜態與動態判定(諸如由圖6之處理程序600說明的靜態與動態判定)可幫助NVM系統執行維護操作,諸如損耗均衡及廢棄項目收集。在損耗均衡期間,可在NVM中移動使用者資料以便嘗試及維持NVM之所有區塊的均一損耗。舉例而言,可將靜態資料移動至高循環區塊(例如,已被抹除及程式化相對多的次數之區塊)且可將動態資料移動至低循環區塊(例如,僅被抹除及程式化相對少的次數之區塊)。通常,可以某些間隔來執行損耗均衡,諸如當NVM系統不忙且因此可能未受到損耗均衡操作之額外處理要求的負面影響時。系統可使用廢棄項目收集處理程序以藉由將有效資料自經程式化區塊移動至一或多個經抹除區塊來釋放記憶體。通常,當可用記憶體係低的時或在當需要釋放記憶體空間的任何其他時間處,可觸發廢棄項目收集處理程序。
由於HWSC值可用以在逐頁的基礎上判定靜態與動態狀態,所以HWSC亦可允許維護操作(諸如損耗均衡及廢棄項目收集)在逐頁基礎上檢查及分離資料。此可提供勝於其他系統之益處,該等其他系統僅在逐區塊或逐超區塊的基礎上分離或檢查資料。作為說明,圖7展示例示性NVM系統700,其中資料在逐頁的基礎上經分離以用於損耗均衡操作(例如,或用於廢棄項目收集或任何其他合適操作)。
如由圖7所示,NVM系統700可包括具有頁0至5之區塊710。NVM系統700亦可包括至少一高循環區塊720及至少一低循環區塊730。舉例而言,高循環區塊720可為先前經
歷相對大的數目之寫入/抹除循環之區塊,而低循環區塊730可為經歷相對小的數目之寫入/抹除循環之區塊。
基於合適之靜態與動態判定處理程序(例如,圖6之處理程序600),可單獨地檢查區塊710之每一頁。可將經識別為靜態頁之頁重新程式化至高循環區塊720,且可將經識別為動態頁之頁重新程式化至低循環區塊730。舉例而言,圖7說明頁0、1及3被識別為靜態頁且因此將其重新寫入至高循環區塊720。類似地,圖7說明頁2、4及5被識別為動態頁且因此將其重新寫入至低循環區塊730。諸如此之系統(其在逐頁的基礎上分離資料)可提供增強之精確度及勝於僅在逐區塊的基礎上分離資料之系統的益處。
圖8展示用於在逐頁的基礎上分離資料之處理程序800。舉例而言,處理程序800可用於在損耗均衡操作期間、在廢棄項目收集操作期間或在NVM系統之任何其他合適之操作期間分離資料。
處理程序800可始於步驟802處。在步驟804處,可檢查NVM系統之頁以判定其靜態與動態狀態。舉例而言,可檢查頁之HWSC值,可檢查與頁相關聯之檔案的大小,可檢查寫入與頁相關聯之檔案所花費的時間量,可檢查與頁有關之任何合適的系統啟發法,或上述之任何組合。在步驟806處,處理程序800可基於在步驟804處所獲得之資訊來判定該頁是否為靜態的。舉例而言,可比較HWSC值與當前WSC值之間的差與臨限值。若此差大於該臨限值,則可將該頁識別為靜態頁。
回應於在步驟806處該頁經識別為靜態的,處理程序800可進行至步驟808。在步驟808處,可將該頁移動至(例如,程式化至)高循環區塊。處理程序800可接著在810處進行至NVM系統中之下一頁。可接著連續地循環步驟804、806、808及810以便定位靜態頁且將其移動至合適之高循環區塊。
在一些實施例中,處理程序800可回應於在步驟806處該頁未被識別為靜態而進行至選用之步驟812。在此狀況下,可將該頁移動至低循環區塊。舉例而言,選用之步驟812可發生於其中該頁已被識別為動態頁的情形中(例如,或該頁為動態頁之可能候選者)。可在其中(例如)資料之靜態與動態狀態未知的狀況下省去選用之步驟812。作為說明,此可發生於HWSC與WSC之間的差低於臨限值時,且不知道此指示資料為動態的抑或僅僅為新近儲存之新靜態資料。
應理解,可由系統中之一或多個組件(例如,圖1之電子裝置100或圖2之電子裝置200)來執行圖5、圖6及圖8之處理程序500、600及800。舉例而言,可由NVM介面(例如,圖1之NVM介面118或圖2之NVM介面218)來執行該等處理程序中之步驟中的至少一些步驟。熟習此項技術者將瞭解,可由控制電路(例如,圖1之SoC控制電路112)來執行該等步驟中之一或多者。
此外,應理解,圖5、圖6及圖8之處理程序500、600及800僅為說明性的。在不脫離本發明之範疇的情況下,可
移除、修改或組合該等步驟中之任一者,且可添加任何額外步驟。
呈現了本發明之所描述之實施例以用於說明而非限制之目的。
100‧‧‧電子裝置
110‧‧‧系統單晶片(SoC)
112‧‧‧系統單晶片(SoC)控制電路
114‧‧‧記憶體
118‧‧‧非揮發性記憶體(NVM)介面
120‧‧‧非揮發性記憶體(NVM)
200‧‧‧電子裝置
210‧‧‧檔案系統
212‧‧‧非揮發性記憶體(NVM)驅動程式
214‧‧‧轉譯層
216‧‧‧非揮發性記憶體(NVM)匯流排控制器
218‧‧‧非揮發性記憶體(NVM)介面
220‧‧‧非揮發性記憶體(NVM)
300‧‧‧非揮發性記憶體(NVM)系統
400‧‧‧非揮發性記憶體(NVM)系統
500‧‧‧處理程序
600‧‧‧處理程序
700‧‧‧非揮發性記憶體(NVM)系統
710‧‧‧區塊
720‧‧‧高循環區塊
730‧‧‧低循環區塊
800‧‧‧處理程序
圖1及圖2係根據本發明之各種實施例組態的電子裝置之方塊圖;圖3係根據本發明之各種實施例交錯的NVM之區塊之功能圖;圖4係根據本發明之各種實施例的在回復操作期間NVM之區塊之功能圖;圖5係根據本發明之各種實施例的使用交錯序列計數器之回復操作之流程圖;圖6係根據本發明之各種實施例的NVM之頁的靜態與動態判定之流程圖;圖7係根據本發明之各種實施例的損耗均衡之功能圖;及圖8係根據本發明之各種實施例的損耗均衡程序之流程圖。
100‧‧‧電子裝置
110‧‧‧系統單晶片(SoC)
112‧‧‧系統單晶片(SoC)控制電路
114‧‧‧記憶體
118‧‧‧非揮發性記憶體(NVM)介面
120‧‧‧非揮發性記憶體(NVM)
Claims (18)
- 一種用於交錯一非揮發性記憶體(「NVM」)之頁之一程式化的方法,該方法包含:識別一交錯序列計數器(「WSC」)之一當前值,其中該WSC識別其中該NVM之每一頁經程式化的一序列;用一第一使用者資料集合來程式化該NVM之一第一區塊的一第一頁;使該第一頁與該WSC之該當前值相關聯;回應於該第一頁之該程式化將該WSC依序地遞增至一遞增之WSC值;判定該第一資料集合係被最初儲存於該NVM中之新資料;及回應於該判定而使該第一頁與一主機交錯序列計數器(「HWSC」)值相關聯,其中該HWSC值等於該WSC之該當前值,其中在每一頁經程式化後該HWSC係經選擇地更新,且其中該WSC及該HWSC係分別的計數器,其經程式化至含有使用者資料之每一頁。
- 如請求項1之方法,其進一步包含:用一第二使用者資料集合來程式化該NVM之一第二區塊的一第二頁;及使該第二頁與該遞增之WSC值相關聯。
- 如請求項1或2之方法,其中該相關聯包含:將該WSC之該當前值程式化至該第一頁之後設資料中。
- 如請求項1之方法,其中使該第一頁與該HWSC值相關聯 包含:將該HWSC值程式化至該第一頁之後設資料中。
- 如請求項1或2之方法,其進一步包含:判定該第一資料集合係自該NVM中之一不同頁移動至該第一頁的舊資料;及回應於該判定而使該第一頁與一主機交錯序列計數器(「HWSC」)值相關聯,其中該HWSC值等於該不同頁之一HWSC值。
- 如請求項1或2之方法,其中依序地遞增該WSC包含:遞增該WSC之該當前值而無轉回,使得該WSC貫穿該NVM之一壽命而繼續遞增至一較高值。
- 如請求項1或2之方法,其中依序地遞增該WSC包含:在具有轉回的情況下遞增該WSC之該當前值,使得該WSC之該值在預定數目之寫循環之後轉回至零。
- 一種用於使一非揮發性記憶體(「NVM」)系統損耗均衡之方法,該方法包含:識別一當前交錯序列計數器(「WSC」)值,其中該WSC值指示該NVM之頁經程式化的一順序,且其中在每一頁經程式化後該WSC係經遞增;識別該NVM之一特定頁的一主機交錯序列計數器(「HWSC」)值,其中該HWSC值指示該特定頁中之資料何時被最初保存於該NVM內,其中在每一頁經程式化後該HWSC係經選擇地更新,且其中該WSC及該HWSC係分別的計數器,其經程式化至含有使用者資料之每一頁; 計算該當前WSC值與該HWSC值之間的值之一差異;及至少部分地基於該所計算之差來判定該特定頁係適合於移動至一高循環區塊的一靜態頁。
- 如請求項8之方法,其中該判定包含:比較該所計算之差與一預定臨限值;判定該差大於該臨限值;及回應於判定該差大於該臨限值而將該特定頁識別為一靜態頁。
- 如請求項8或9之方法,其進一步包含:進行至該NVM之一下一頁且重複該識別一當前WSC值、識別一HWSC、計算及判定該下一頁。
- 如請求項8或9之方法,其進一步包含:將該特定頁之該資料移動至該高循環區塊之一新頁;及使該特定頁之該HWSC值與該新頁相關聯。
- 如請求項8或9之方法,其進一步包含:將該特定頁之該資料移動至該高循環區塊之一新頁;及使該當前WSC值與該新頁之一WSC值相關聯。
- 如請求項8或9之方法,其中該特定頁係一靜態頁的該判定進一步基於以下各者中之至少一者:與該特定頁相關聯之一檔案的一大小;寫入與該特定頁相關聯之該檔案所花費的一時間量;及關於與該特定頁相關聯之該檔案的系統啟發法。
- 如請求項8或9之方法,其中一靜態頁包含包括在一相對長的時間循環內保持不改變之資料的一頁。
- 一種用於存取一非揮發性記憶體(「NVM」)之記憶體介面,該記憶體介面包含控制電路,該控制電路可操作以:識別一特定資料集合將被程式化至該NVM;判定一交錯序列計數器(「WSC」)之一當前值,其中該WSC指示頁被程式化於該NVM內之一順序;指導該特定資料集合程式化至該NVM之一特定頁中;指導該WSC之該當前值儲存於該特定頁之後設資料中;在資料被程式化至該NVM之一頁後,將該WSC之該當前值依序地遞增至一下一值;指導一主機交錯序列計數器(「HWSC」)儲存於該特定頁之該後設資料中,其中在每一頁經程式化後該HWSC係經選擇地更新,且其中該WSC及該HWSC係分別的計數器,其經程式化至含有使用者資料之每一頁的後設資料;回應於該特定資料集合為被最初程式化於該NVM內之新資料而將該HWSC之值設定為等於該WSC之該當前值;及回應於該特定資料集合為自一不同頁移動之舊資料而將該HWSC之該值設定為等於與該不同頁相關聯之一先前HWSC值。
- 如請求項15之記憶體介面,其中該控制電路進一步可操作以: 藉由遵循該NVM之每一頁的WSC值以一依時間之順序檢查該NVM之每一頁來重建該NVM之一邏輯至實體映射表。
- 如請求項15或16之記憶體介面,其中該控制電路進一步可操作以藉由以下步驟對該NVM執行一回復操作:識別該NVM之一損壞頁,該損壞頁包括不一致之資料;判定與該損壞頁相關聯之一WSC值;及忽視與大於與該損壞頁相關聯之該WSC值之一WSC值相關聯的任何頁。
- 如請求項17之記憶體介面,其中該忽視任何頁包含:在該NVM之一邏輯至實體映射表的一重建期間忽視該任何頁。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/234,984 US9477590B2 (en) | 2011-09-16 | 2011-09-16 | Weave sequence counter for non-volatile memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201329709A TW201329709A (zh) | 2013-07-16 |
TWI604305B true TWI604305B (zh) | 2017-11-01 |
Family
ID=47002645
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101133886A TWI604305B (zh) | 2011-09-16 | 2012-09-14 | 用於非揮發性記憶體系統之交錯序列計數器 |
TW102111023A TWI564715B (zh) | 2011-09-16 | 2012-09-14 | 用於非揮發性記憶體系統之交錯序列計數器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102111023A TWI564715B (zh) | 2011-09-16 | 2012-09-14 | 用於非揮發性記憶體系統之交錯序列計數器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9477590B2 (zh) |
EP (1) | EP2570929B1 (zh) |
JP (1) | JP5696118B2 (zh) |
KR (2) | KR101494051B1 (zh) |
CN (1) | CN102999431B (zh) |
TW (2) | TWI604305B (zh) |
WO (1) | WO2013040537A1 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110035540A1 (en) * | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
US8909851B2 (en) | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
US20120203993A1 (en) * | 2011-02-08 | 2012-08-09 | SMART Storage Systems, Inc. | Memory system with tiered queuing and method of operation thereof |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9298252B2 (en) | 2012-04-17 | 2016-03-29 | SMART Storage Systems, Inc. | Storage control system with power down mechanism and method of operation thereof |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US10430391B2 (en) * | 2012-09-28 | 2019-10-01 | Oracle International Corporation | Techniques for activity tracking, data classification, and in database archiving |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9632926B1 (en) | 2013-05-16 | 2017-04-25 | Western Digital Technologies, Inc. | Memory unit assignment and selection for internal memory operations in data storage systems |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
KR102168169B1 (ko) | 2014-01-07 | 2020-10-20 | 삼성전자주식회사 | 비휘발성 메모리 시스템의 메모리 맵핑 방법 및 이를 제공하는 시스템 |
FR3020712B1 (fr) * | 2014-04-30 | 2017-09-01 | Proton World Int Nv | Compteur bidirectionnel en memoire flash |
KR102287760B1 (ko) | 2014-10-29 | 2021-08-09 | 삼성전자주식회사 | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
KR102263046B1 (ko) | 2014-10-29 | 2021-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
KR102252378B1 (ko) | 2014-10-29 | 2021-05-14 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
KR102553170B1 (ko) | 2016-06-08 | 2023-07-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20180019419A (ko) | 2016-08-16 | 2018-02-26 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 그 동작방법 |
US10949113B2 (en) * | 2018-01-10 | 2021-03-16 | SK Hynix Inc. | Retention aware block mapping in flash-based solid state drives |
KR102626048B1 (ko) * | 2018-03-21 | 2024-01-18 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
US11275512B2 (en) * | 2018-05-08 | 2022-03-15 | Micron Technology, Inc. | Asynchronous power loss impacted data structure |
US11379410B2 (en) | 2019-09-13 | 2022-07-05 | Oracle International Corporation | Automated information lifecycle management of indexes |
US11620234B2 (en) | 2020-06-29 | 2023-04-04 | Western Digital Technologies, Inc. | Operation-deterministic write operations for data recovery and integrity checks |
KR20220072242A (ko) * | 2020-11-25 | 2022-06-02 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 기입 방법 및 이를 수행하는 비휘발성 메모리 장치 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182246A (ja) | 1993-11-25 | 1995-07-21 | Sanyo Electric Co Ltd | 不揮発性メモリの制御装置及び制御方法 |
EP0769171A1 (en) | 1995-05-05 | 1997-04-23 | Silicon Graphics, Inc. | Page migration in a non-uniform memory access (numa) system |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US6282700B1 (en) | 1998-05-21 | 2001-08-28 | Hewlett Packard Company | Mechanism for maintaining revisions of objects in flash memory |
US7966462B2 (en) | 1999-08-04 | 2011-06-21 | Super Talent Electronics, Inc. | Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US7631138B2 (en) | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US7120051B2 (en) | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US7516267B2 (en) | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
FR2899716A1 (fr) | 2006-04-07 | 2007-10-12 | St Microelectronics Sa | Procede de securisation de blocs de donnees dans une memoire programmable electriquement |
JP2008033801A (ja) * | 2006-07-31 | 2008-02-14 | Victor Co Of Japan Ltd | メモリデータ管理装置 |
US7689762B2 (en) * | 2007-05-03 | 2010-03-30 | Atmel Corporation | Storage device wear leveling |
JP5164506B2 (ja) * | 2007-10-02 | 2013-03-21 | 三菱電機株式会社 | フラッシュメモリ管理装置及びフラッシュメモリ管理方法及びプログラム |
US20100318719A1 (en) | 2009-06-12 | 2010-12-16 | Micron Technology, Inc. | Methods, memory controllers and devices for wear leveling a memory |
US8566506B2 (en) | 2009-08-07 | 2013-10-22 | Intel Corporation | Tracking a lifetime of write operations to a non-volatile memory storage |
US8281065B2 (en) | 2009-09-01 | 2012-10-02 | Apple Inc. | Systems and methods for determining the status of memory locations in a non-volatile memory |
US8296496B2 (en) | 2009-09-17 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Main memory with non-volatile memory and DRAM |
-
2011
- 2011-09-16 US US13/234,984 patent/US9477590B2/en active Active
-
2012
- 2012-09-14 TW TW101133886A patent/TWI604305B/zh not_active IP Right Cessation
- 2012-09-14 TW TW102111023A patent/TWI564715B/zh not_active IP Right Cessation
- 2012-09-14 CN CN201210448714.XA patent/CN102999431B/zh active Active
- 2012-09-14 JP JP2012221681A patent/JP5696118B2/ja not_active Expired - Fee Related
- 2012-09-17 KR KR20120102880A patent/KR101494051B1/ko active IP Right Grant
- 2012-09-17 WO PCT/US2012/055698 patent/WO2013040537A1/en active Application Filing
- 2012-09-17 EP EP12184753.7A patent/EP2570929B1/en active Active
- 2012-11-30 KR KR1020120137917A patent/KR101892302B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
JP2013065309A (ja) | 2013-04-11 |
EP2570929A3 (en) | 2014-05-14 |
CN102999431A (zh) | 2013-03-27 |
KR20130030241A (ko) | 2013-03-26 |
TWI564715B (zh) | 2017-01-01 |
TW201329711A (zh) | 2013-07-16 |
US20130073788A1 (en) | 2013-03-21 |
KR101892302B1 (ko) | 2018-08-27 |
KR20130030244A (ko) | 2013-03-26 |
EP2570929B1 (en) | 2015-05-27 |
TW201329709A (zh) | 2013-07-16 |
KR101494051B1 (ko) | 2015-02-16 |
EP2570929A2 (en) | 2013-03-20 |
US9477590B2 (en) | 2016-10-25 |
JP5696118B2 (ja) | 2015-04-08 |
CN102999431B (zh) | 2015-07-15 |
WO2013040537A1 (en) | 2013-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI604305B (zh) | 用於非揮發性記憶體系統之交錯序列計數器 | |
TWI554877B (zh) | 處理用於具有非揮發性記憶體之一系統之不正常關機 | |
TWI448890B (zh) | 記憶體系統、用於判定電子器件中之動態資料的方法及用於在非揮發性記憶體中執行記憶體垃圾收集之方法 | |
US8949512B2 (en) | Trim token journaling | |
US9841917B2 (en) | Systems and methods for configuring non-volatile memory | |
US8356137B2 (en) | Data storage scheme for non-volatile memories based on data priority | |
US9239785B2 (en) | Stochastic block allocation for improved wear leveling | |
US8645776B2 (en) | Run-time testing of memory locations in a non-volatile memory | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
US11269722B2 (en) | Apparatus for diagnosing memory system and operating method thereof | |
US10114576B2 (en) | Storage device metadata synchronization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |