TWI516926B - 非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射 - Google Patents

非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射 Download PDF

Info

Publication number
TWI516926B
TWI516926B TW102101274A TW102101274A TWI516926B TW I516926 B TWI516926 B TW I516926B TW 102101274 A TW102101274 A TW 102101274A TW 102101274 A TW102101274 A TW 102101274A TW I516926 B TWI516926 B TW I516926B
Authority
TW
Taiwan
Prior art keywords
nvm
lba
unallocated
file system
demapping
Prior art date
Application number
TW102101274A
Other languages
English (en)
Other versions
TW201316170A (zh
Inventor
丹尼爾J 波斯特
艾瑞克 塔謬拉
梵帝恩 卡麥爾尼斯基
尼爾J 渥克瑞特
馬修 拜歐
Original Assignee
蘋果公司
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 蘋果公司 filed Critical 蘋果公司
Publication of TW201316170A publication Critical patent/TW201316170A/zh
Application granted granted Critical
Publication of TWI516926B publication Critical patent/TWI516926B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射
「反及」(NAND)快閃記憶體以及其他類型之非揮發記憶體(「NVM」)常用於電子裝置中以進行大容量儲存。舉例而言,諸如攜帶型媒體播放器之消費型電子設備通常包括儲存音樂、視訊及其他媒體程式之NAND快閃記憶體。
電子裝置可實施檔案系統以管理該裝置之記憶體組件(諸如NVM)之檔案及資料夾結構。檔案系統可將邏輯位址分配至NVM中之每一檔案。為儲存或擷取檔案,檔案系統可將讀取或寫入請求隨檔案之邏輯位址一起發出。
當不再需要儲存於NVM中之檔案並將該檔案自檔案系統命名空間移除時,檔案系統可解除分配相關聯之邏輯位址並將解映射請求發送至NVM系統。若NVM系統未正確處理解映射請求,則NVM系統可繼續操作,就如邏輯位址仍在使用一樣。因此,NVM系統將保持儲存在檔案中之資料,即使不再需要此資料且檔案系統將永不請求此資料。詳言之,NVM系統將在廢棄項目收集及耗損均衡操作期間保持資料,此舉降低系統之操作效率。將僅在特定邏輯位址由另一檔案之內容覆寫時才會再循環。
因此,提供用於在檔案系統之掛載時間解映射未使用之邏輯位 址的系統及方法。如此,若由於非正常關機(例如,來自電力中斷、意外強制使用者關機或核心危急(kernel panic))導致NVM系統未充分處理檔案系統之先前解映射請求,則可校正此等不相符且最佳化系統之操作效率。
包括非揮發記憶體之電子裝置可經由作業系統之檔案系統及NVM管理器(例如,NVM驅動程式)存取及管理該非揮發記憶體。在電子裝置操作期間之某個階段(諸如啟動),作業系統可觸發掛載以將儲存於NVM中之檔案併入檔案系統之現存檔案及資料夾結構。此時間點可稱為檔案系統或NVM之「掛載時間」。
在掛載時間,檔案系統可產生邏輯位址(例如,邏輯區塊位址(「LBA」))之清單,該等邏輯位址與NVM相關聯但目前未分配使用。舉例而言,檔案系統可保持LBA分配表,該LBA分配表包括指示目前分配之LBA之位元映射,且檔案系統可掃描位元映射以產生未分配邏輯位址之清單。在一些實施例中,由於未分配邏輯位址通常分成多個「範圍(extent)」,因此檔案系統可使用位元映射以產生未分配LBA範圍之清單,其中每一範圍由範圍中之起始LBA及LBA之數目表示。
一旦檔案系統完成至少部分清單之產生,則檔案系統可開始將清單傳輸至NVM管理器。藉由在掛載時間向NVM管理器提供此資訊,在檔案系統與NVM管理器之間的任何LBA分配不相符可在驅動程式投入使用前由NVM管理器校正。此外,可發生LBA同步,如此NVM管理器便不須保持其自身最新的LBA分配表。
在一些實施例中,為將未分配邏輯位址之清單傳達至NVM管理器,檔案系統可發出一或多個解映射請求。因為清單為綜合性的(亦即,包括全部未分配之邏輯位址),故將NVM管理器未能完成(例如,因為非正常關機)之任何先前解映射請求有效地重發。此給予NVM管 理器第二次機會來完成請求。其他解映射請求可與已由NVM管理器正確解除分配或起初絕不分配之邏輯位址相關聯,且因此NVM管理器可捨棄或忽略此等請求。
100‧‧‧電子裝置
110‧‧‧系統單晶片
112‧‧‧控制電路
114‧‧‧記憶體
116‧‧‧NVM匯流排控制器
120‧‧‧非揮發記憶體
200‧‧‧軟體/韌體模組
210‧‧‧檔案系統
212‧‧‧LBA分配表
220‧‧‧NVM驅動程式
222‧‧‧轉譯層
300‧‧‧圖形視圖
302‧‧‧已分配LBA範圍
304‧‧‧未分配LBA範圍
306‧‧‧已分配LBA範圍
308‧‧‧未分配LBA範圍
310‧‧‧已分配LBA範圍
320‧‧‧位元映射
322‧‧‧'1'位元序列
324‧‧‧'0'位元序列
400‧‧‧解映射請求
402‧‧‧標頭
404‧‧‧起始LBA
406‧‧‧長度
408‧‧‧起始LBA
410‧‧‧長度
圖1為具有根據本發明之各種實施例組態之非揮發記憶體之例示性電子裝置的方塊圖;圖2為用於存取及管理根據本發明之各種實施例組態之非揮發記憶體之軟體/韌體模組之流程圖;圖3為根據本發明之各種實施例之例示性LBA分配表及相應位元映射表示之圖形視圖;圖4為根據本發明之各種實施例之例示性位元映射請求之圖形視圖,該例示性位元映射請求基於圖3之位元映射而產生且可由檔案系統發出至NVM管理器;圖5為根據本發明之各種實施例的用於校正檔案系統與NVM管理器之間的LBA分配不相符之例示性程序的流程圖;及圖6為根據本發明之各種實施例的用於準備適用於自檔案系統傳輸至NVM管理器之未分配LBA範圍之清單的例示性程序的流程圖。
在結合附圖考慮以下詳細描述後,本發明之上述及其他態樣及優點將為顯而易見的,其中諸圖中之相同元件符號係指相同部分。
圖1為例示性電子裝置100之方塊圖。在一些實施例中,電子裝置100可為或可包括攜帶型媒體播放器(例如,由Apple Inc.of Cupertino,CA提供之iPodTM)、蜂巢式電話(例如,由Apple Inc提供之iPhoneTM)、袖珍型個人電腦、個人數位助理(「PDA」)、桌上型電腦、膝上型電腦及任何其他合適類型之電子裝置或系統。
電子裝置100可包括系統單晶片(「SoC」)110及非揮發記憶體 (「NVM」)120。NVM 120可包括基於浮閘或電荷收集技術之NAND快閃記憶體、「或非」(NOR)快閃記憶體、可抹除可程式化唯讀記憶體(「EPROM」)、電子可抹除可程式化唯讀記憶體(「EEPROM」)、鐵電式RAM(「FRAM」)、磁阻式RAM(「MRAM」)或其任何組合。
NVM 120可組織成「區塊」,即最小可抹除單元,且進一步組織成「頁」,頁可為可被程式化或讀取之最小單元。在一些實施例中,NVM 120可包括多個積體電路,其中每一積體電路可具有多個區塊。來自相應積體電路之區塊(例如,具有相同位置或區塊編號之區塊)可形成稱為「超區塊」之邏輯單元。可使用實體位址(例如,實體頁位址或實體區塊位址)定址NVM 120之每一記憶體位置(例如,頁或區塊)。
系統單晶片110可包括控制電路112、記憶體114及NVM匯流排控制器116。大體而言,控制電路112可控制SoC 110及電子裝置100之一般操作及功能。控制電路112可包括任何合適之組件、電路或邏輯,諸如一或多個處理器。控制電路112可在程式(諸如應用程式)作業系統或加載在記憶體114中之NVM驅動程式之控制下操作。
記憶體114可包括任何合適類型之揮發記憶體,諸如隨機存取記憶體(「RAM」)(例如,靜態RAM(「SRAM」)、動態隨機存取記憶體(「DRAM」)、同步動態隨機存取記憶體(「SDRAM」)、雙倍資料速率(「DDR」)RAM)、快取記憶體或其任何組合。在一些實施例中,記憶體114可充當作為控制電路112之部分而實施之任何處理器之主記憶體。
在一些實施例中,記憶體114可用來儲存管理NVM 120所需要之資訊(有時稱為「後設資料」)之至少一部分。舉例而言,NVM管理器(例如NVM驅動程式)可保持追蹤最近已由檔案系統解映射之邏輯位址,以使得在隨後一些時間,在廢棄項目收集、耗損均衡或其他NVM 管理操作期間不保持NVM 120中之相關聯資料。因為此資訊儲存於揮發記憶體114中且可能仍未在NVM 120之持續性儲存裝置中反映出此資訊,故在非正常關機(例如,歸因於電力中斷、意外強制使用者關機或核心危急)期間,指示最近經解映射之邏輯位址之後設資料可能丟失。此情況可導致操作無效率,此情形可使用下文所述之方案來進行解決及校正。
NVM匯流排控制器116可使SoC 110能夠存取NVM 120及其記憶體位置,並可包括任何合適之電路或組件。舉例而言,NVM匯流排控制器116可產生與NVM 120之匯流排協定(例如,資料速率)相容之讀取、抹除及程式化指令。
圖2為可由控制電路112(圖1)執行之軟體/韌體模組200之流程圖,其使作業系統能夠存取NVM 120(圖1)中之檔案。軟體/韌體模組200可包括檔案系統210及NVM驅動程式220。檔案系統210可包括任何合適類型之檔案系統,諸如檔案分配表(「FAT」)檔案系統或HFS檔案系統,且可為作業系統之部分。檔案系統210可管理用於電子裝置100(圖1)之各種記憶體組件(包括NVM 120)之檔案及資料夾結構。為存取NVM 120,檔案系統210可向NVM驅動程式220發出至少三個不同類型之請求:讀取請求、寫入請求及解映射請求。針對每一類型之請求,檔案系統210可提供邏輯位址,諸如邏輯區塊位址(「LBA」)。
檔案系統210可保持LBA分配表212。LBA分配表212可指示已分配至儲存於NVM 120中之檔案的邏輯位址。當向NVM 120發出寫入檔案之寫入請求時,檔案系統210可在LBA分配表212中將相關聯邏輯位址標記為已分配。當向NVM驅動程式220發出解映射請求以刪除檔案時,檔案系統210可在LBA分配表212中將相關聯邏輯位址標記為未分配。因為在分配/解除分配邏輯位址後立即更新LBA分配表212,故LBA分配表212保持最新。
在一些實施例中,檔案系統210可經組態以分配被稱為LBA「範圍」之相連群組中之LBA。舉例而言,檔案系統210可將LBA範圍分配至特定檔案。圖3給出可在LBA分配表212中反映出如何以此方式分配LBA之實例。詳言之,圖3提供LBA分配表212在某個時間點之例示性狀態之圖形視圖300。圖形視圖300可說明與NVM 120相關聯之LBA之整個跨度。LBA分配表212可包括已分配LBA範圍302、306及310(由圖形視圖300之陰影部分表示)。此留下分組成相連片段之未分配LBA,且因此LBA分配表212可進一步包括未分配LBA範圍304及未分配LBA範圍308,未分配LBA範圍304(在此實例中)以LBAa開始且以LBAa+N結束,未分配LBA範圍308以LBAb開始且以LBAb+M結束。該等未分配範圍由標記為「可用(FREE)」之圖形視圖300之非陰影部分表示。
在一些實施例中,LBA分配表212可包括或採用位元映射之形式。繼續圖3之實例,LBA分配表212可包括或呈現位元映射320之形式。在位元映射320中,每一LBA由二進位數字表示,其中'1'指示相關聯LBA被分配至檔案且'0'指示相關聯LBA未分配。因此,如圖3中所說明,已分配LBA範圍302可由'1'位元之序列322表示,其中範圍302中之LBA之數目反映於序列322中之'1'位元之數目中。包括M+1個未分配LBA之未分配LBA範圍308可由M+1個'0'位元之序列324表示。
在其他實施例中,LBA分配表212可使用除位元映射外之格式來表示與NVM相關聯之LBA之狀態。舉例而言,LBA分配表212可改為採用範圍樹或連結表鏈。然而,為清楚起見,在本發明中將各種實施例描述為採用位元映射。應瞭解,此等描述僅為例示性的且不應視為對本發明之限制。
返回至圖2,檔案系統210可與NVM驅動程式220介接。NVM驅動程式220可包括轉譯層222,諸如快閃轉譯層(「FTL」)。轉譯層222可保持邏輯位址(例如,LBA)至實體位址之映射,該等實體位址對應於 NVM 120之實際記憶體位置(例如,頁、區塊、積體電路等等)。轉譯層222可使用此映射將提供於讀取請求、寫入請求或解映射請求上之邏輯位址轉譯為其相關聯實體位址。因為每一NVM可取決於NVM之尺寸或供應商而具有不同佈局,故此等轉譯操作可為記憶體及/或NVM供應商特定的。NVM驅動程式220可執行除邏輯至實體的位址映射外之任何其他合適功能。舉例而言,轉譯層222可執行可為快閃轉譯層典型的其他功能中之任一者,諸如廢棄項目收集及耗損均衡。
圖1及圖2迄今為止被描繪及描述為對SoC 110(圖1)執行全部NVM管理。應瞭解,此NVM相關功能性不以此方式來限制。舉例而言,NVM匯流排控制器116(圖1)及/或NVM驅動程式220(圖2)之組件或功能性中之任一者可由例如包括在NVM 120(圖1)中之單獨記憶體控制器(例如,快閃控制器)實施及執行。因此,因為NVM管理可由組件之其他組合來執行,故經組態以管理非揮發記憶體之任何軟體、韌體、硬體或其組合將簡稱為「NVM管理器」。
如上所述,NVM管理器(例如,NVM驅動程式220)可自檔案系統(例如,檔案系統210)接收具有邏輯位址之解映射請求。當檔案系統已解除分配其LBA分配表中之邏輯位址且不再需要與該邏輯位址相關聯之資料時,NVM管理器可接收解映射請求。因此,解映射請求通知NVM管理器存在儲存於NVM中之資料,該資料在廢棄項目收集、耗損均衡或其他NVM管理操作期間不應被保留。然而,回應於接收到解映射請求,NVM管理器可將解映射請求之確認發送回至檔案系統,而無需即刻對非揮發記憶體進行任何改變。NVM管理器可改為保持追蹤揮發記憶體(例如,記憶體114)中之解映射請求。舉例而言,NVM管理器可使儲存於記憶體114中之邏輯至實體的位址映射中之相應條目無效。因為解映射請求僅反映在揮發記憶體中,故若發生非正常關機使得NVM管理器沒有機會將解映射請求提交至持續性記憶體,則解映 射請求將丟失。在此等狀況中,在檔案系統之LBA分配表中分配之LBA與仍根據NVM管理器之觀點分配之LBA之間可存在不相符。此等不相符可導致NVM管理器執行額外的廢棄項目收集操作以保持不再需要之資料。此等額外操作可引起不良系統效應,諸如較高之寫入放大率(「wAmp」)、降低之效率(亦即,較低之效能及較高之命令延時)及較多之功率損耗。
因此,在NVM之掛載時間,檔案系統(例如,檔案系統210)可經組態以向NVM管理器(例如,NVM驅動程式220)提供未分配之邏輯位址之綜合清單。舉例而言,在一些實施例中,檔案系統可發送針對全部未分配LBA之解映射請求。如此,若(例如)歸因於非正常關機導致任何解映射請求先前已丟失,則NVM管理器再次有效地接收解映射請求且具有第二次機會以實現解映射請求。藉由在掛載時間向NVM管理器提供關於解映射LBA之資訊,在檔案系統與NVM管理器之間的任何LBA分配不相符可在驅動程式投入使用前由NVM管理器校正。
此外,使用此方法,可發生LBA同步,如此NVM管理器便無須在非揮發記憶體中保持其自身最新的LBA分配表。取而代之,在接收到解映射請求後,NVM管理器可在揮發記憶體中(例如,在邏輯至實體之位址轉譯表中)將相關聯邏輯位址標記為無效,且可延遲在NVM中(例如在儲存於NVM之索引頁中之轉譯表中)作出類似標記。NVM管理器亦可延遲對NVM作出任何其他將反映解映射的改變,諸如廢棄項目收集或耗損均衡操作。因為NVM管理器可依賴於在非正常關機應發生之下一掛載上重新接收必要之解映射請求,故NVM管理器可與檔案系統保持LBA同步而無需將解映射立即提交至非揮發記憶體。
檔案系統可使用任何合適之格式或協定將未分配邏輯位址之清單提供至NVM管理器。在一些實施例中,檔案系統可經由一或多個解映射請求發送該清單,其中解映射請求具有與在電子裝置之運轉時間 (亦即後掛載)期間所發出之彼等解映射請求相同之格式。請求之數目可視需傳達之未分配LBA或LBA範圍之數目而定。在其他實施例中,檔案系統可使用不同協定,諸如用特殊命令(亦即不同於典型運轉時間讀取、寫入或解映射請求)來發送清單。
檔案系統可試圖將未分配LBA或LBA範圍之整個清單一起發送至NVM管理器。然而,允許整個清單一起發送之實施方案可能要求過大之緩衝器,該緩衝器可儲存最差情況清單(亦即,其中每個其他LBA未分配以使得存在許多單LBA範圍)。如此大之緩衝器可甚至超過記憶體(例如圖1之記憶體114)之大小。因此,此實施方案可僅適用於特定情況或實施例中。或者,檔案系統可經組態以反覆地生成部分清單且將部分清單傳輸至NVM管理器以使得在任何給定時間最多僅使用預定量之記憶體。即,生成及傳輸部分清單可允許檔案系統使用佔用記憶體之大小適當的小部分的較小尺寸之緩衝器。
圖4提供檔案系統(例如,檔案系統210)可在掛載時間將未分配邏輯位址之清單提供給NVM管理器(例如,NVM驅動程式220)的一種方式之實例。詳言之,繼續在圖3中開始之實例,圖4圖示檔案系統可鑒於圖示於圖形視圖300中之LBA狀態向NVM管理器發出的例示性解映射請求400。解映射請求400可包括允許NVM管理器將請求識別為解映射請求之標頭402。
解映射請求402接著可提供未分配LBA範圍之至少一部分清單。在解映射請求400中,每一LBA範圍在清單中由(1)範圍中之第一LBA及(2)範圍中之LBA之數目(或範圍之「長度」)來表示。舉例而言,可藉由起始LBA 404及長度406來描述未分配LBA範圍304(圖3),且可藉由起始LBA 408及長度410來描述未分配LBA範圍308(圖3)。
解映射請求400之格式僅為例示性的,且檔案系統可使用任何其他合適方法來傳達未分配LBA或LBA範圍。舉例而言,檔案系統可藉 由起始LBA及結束LBA來表示每一未分配範圍。作為另一實例,代替傳遞未分配LBA範圍,檔案系統可列出每一個別LBA。
現參看圖5及圖6,圖示根據本發明之各種實施例的例示性程序之流程圖。
首先參看圖5,圖示例示性程序500及520之流程圖,該等程序係用於校正在檔案系統(例如,檔案系統210)與NVM管理器(例如,NVM驅動程式220)之間的LBA分配不相符。程序500可由檔案系統執行,且程序520可由NVM管理器執行。
程序500可在步驟502處自回應於由作業系統觸發以掛載NVM之掛載程序開始。步驟502可在檔案系統已獲准經由NVM管理器存取NVM後(亦即,在以下所論述之程序520之步驟522後)發生。在一些情況下,作業系統可在電子裝置之啟動期間開始掛載程序。在步驟504處,檔案系統可存取LBA分配表,且詳言之,可存取在與NVM相關聯之表中之條目。在一些實施例中,步驟504可涉及存取位元映射。接著,在步驟506處,檔案系統可準備未分配LBA之清單,諸如未分配LBA範圍之清單。該清單可為綜合性的,原因是該清單包括與NVM相關聯但目前未被檔案系統使用之全部LBA。在步驟508處,檔案系統可將清單提供至NVM管理器。在一些實施例中,可藉由向NVM管理器發出一或多個解映射請求來提供清單。
現參看程序520,NVM管理器可在任何合適時間(諸如在加載NVM驅動程式後或啟動電子裝置後)開始執行程序520之步驟。在步驟522處,NVM管理器可掃描遍及NVM之記憶體位置,諸如掃描遍及NVM之每一頁。在掃描期間,NVM管理器可執行建構轉譯表之步驟524,該等轉譯表將邏輯位址(例如,LBA)映射至實體位址。舉例而言,NVM之有效程式化頁可各自儲存相關聯LBA,且NVM管理器可使用儲存之LBA以填充表格。如此,在步驟526處,NVM管理器可識別使用 (亦即,已分配)之LBA。一旦完成步驟522且識別(亦即,列舉)已分配LBA並將其映射至其各別實體位址,NVM管理器即可開始處理檔案系統請求。詳言之,NVM管理器可處理讀取、寫入及解映射請求,諸如讀取對應於LBA分配表之資料之檔案系統請求(亦即在如上所論述之程序500之步驟504處)。
繼續步驟528,NVM管理器可自檔案系統接收未分配LBA之清單,諸如全部未分配LBA範圍之清單。可(例如)經由在檔案系統之掛載時間準備及發出之一或多個解映射請求來接收此資訊。
接著,在步驟530處,NVM管理器可判定在步驟526處由NVM管理器識別為已分配之LBA與檔案系統指示的實際上未分配的LBA之間是否存在任何不相符。若存在任何不相符,則此種情況可歸因於在非正常關機(例如,電力中斷、意外強制使用者關機或核心危急)期間丟失的先前解映射請求。若在步驟530處判定不存在不相符,則在不執行任何校正措施的情況下,程序520可在步驟532處結束。舉例而言,若在解映射請求中接收到之LBA無一者在邏輯至實體的位址映射中出現,則NVM管理器無操作可做。因此,NVM管理器實際上可忽略及捨棄解映射請求,從而允許程序520在不對揮發或非揮發記憶體作出任何改變的情況下結束。
若在步驟530處NVM管理器相反地判定存在LBA分配不相符,則程序520可繼續至步驟534,在步驟534處,NVM管理器可執行校正措施以消除不相符。在一些實施例中,當接收到包括可見於NVM管理器之邏輯至實體位址映射中的LBA之解映射請求時,在步驟530處可認識到不相符。在此情況下,NVM管理器可處理解映射請求而不是忽略該請求。舉例而言,在步驟534處,NVM管理器可在邏輯至實體位址映射中使接收到之LBA與實體位址無關聯,且在步驟536處,NVM管理器可將相關聯之NVM記憶體位置(例如,頁、區塊或超區塊)標記為 無效的。若需要,可藉由對揮發記憶體作出改變來執行此等校正步驟,此係因為NVM管理器可依賴於檔案系統在另一非正常關機應發生時重新發送未分配LBA之清單。如此,NVM管理器不需要對非揮發記憶體作出改變,直至適合執行廢棄項目收集、耗損均衡或另一NVM管理操作為止。
在步驟536後,程序520可返回至步驟530以核查額外不相符。舉例而言,NVM管理器可繼續核查包括需解映射之LBA之解映射請求。
現轉向圖6,圖示例示性程序600之流程圖,該程序係用以準備未分配LBA範圍之清單。程序600可由檔案系統(諸如圖2之檔案系統210)執行,該檔案系統保持類似於圖3之位元映射320之位元映射。在一些實施例中,程序600可提供檔案系統可如何完成程序500(圖5)之步驟506之更詳細視圖。因此可執行程序600以使得檔案系統可將全部未分配LBA範圍傳達至NVM管理器(例如,圖2之NVM驅動程式220)。
在例如作業系統觸發檔案系統之掛載後,程序600可從步驟602開始。在步驟604處,檔案系統可存取與NVM(例如,圖1之NVM 120)相關聯之LBA的位元映射。檔案系統可在步驟606處選擇位元映射之第一位元,且接著可在步驟608處判定此第一位元是否未分配。舉例而言,檔案系統可判定位元值是否為指示位元未分配之'0'或判定位元值是否為指示位元已分配之'1'。
若在步驟608處檔案系統判定第一位元係已分配,則此位元並非需傳達至NVM管理器之未分配LBA範圍之部分。因此,程序600可返回至步驟606,在步驟606處,檔案系統選擇位元映射中之下一位元(在步驟610處確保在位元映射中存在額外位元後)。檔案系統可在步驟606、608及610間繼續反覆,直至檔案系統遇到與未分配LBA相關聯之位元(例如,在位元映射中具有'0'位元值之位元)為止。此時,檔案系統可基於當前位元在位元映射中之位置來識別未分配LBA。在步驟 614處識別之未分配LBA係檔案系統將向NVM管理器傳達的未分配LBA範圍的起始LBA。
既然已確定未分配LBA範圍之起始,則檔案系統可判定範圍有多長。為保持追蹤當前範圍之長度,檔案系統可保持計數器。每當發現另一未分配LBA(例如,位元映射中之'0')而沒有遭遇已分配LBA(例如,位元映射中之'1')或位元映射之結束時,檔案系統使計數器遞增。詳言之,檔案系統可在步驟618處選擇位元映射中之下一位元(在步驟616處確保在位元映射中存在額外位元後),在步驟620處判定選定位元是否指示相關聯LBA亦未分配,且在LBA未分配時在步驟622處使計數器遞增。
可反覆進行步驟616至步驟620直至到達當前未分配LBA範圍之結尾為止。當在步驟616處檔案系統判定在與NVM相關聯之位元映射中不存在更多位元時或當在步驟620處檔案系統判定在位元映射中之下一位元與已分配LBA相對應時,可識別當前範圍之結束。此時,程序600可自步驟616繼續至步驟624或自步驟620繼續至步驟626。在步驟624或步驟626處,檔案系統具有有關當前未分配LBA範圍之足夠資訊以識別整個範圍並將該資訊傳輸至NVM管理器。檔案系統可以任何合適形式識別及提供範圍,諸如藉由給出範圍中之起始LBA(該起始LBA在步驟610處確定)及範圍之長度(由計數器傳遞)。圖4之解映射請求400為使用此方法之請求之一個實例。
根據步驟624,因為已到達位元映射之結尾且不存在更多未分配LBA範圍要傳達至NVM管理器,故程序600可在步驟612處結束。然而,根據步驟626,因為可能存在額外未分配LBA範圍待識別,故程序620繼續至步驟628。在步驟628處,檔案系統可重設計數器以準備好用於尋找另一未分配LBA範圍。接著,程序600可返回至開始,其中在步驟606、608及610處檔案系統可尋找另一未分配LBA。若不存在 額外未分配LBA範圍待尋找,則檔案系統在步驟610處將最終遇到位元映射之結尾且程序600可隨後在步驟612處結束。
應瞭解,圖5及圖6之程序500/520及600之步驟分別僅為例示性的。在不脫離本發明之範疇的情況下,可修改、移除或組合該等步驟中之任一者,且可包括額外步驟。
呈現本發明之所述實施例僅用於說明性而非限制性目的。
100‧‧‧電子裝置
110‧‧‧系統單晶片
112‧‧‧控制電路
114‧‧‧記憶體
116‧‧‧NVM匯流排控制器
120‧‧‧非揮發記憶體

Claims (20)

  1. 一種準備在一電子裝置中使用之一非揮發記憶體(「NVM」)之方法,其中該電子裝置實施一檔案系統及一NVM管理器,該方法包含以下步驟:在該檔案系統之掛載時間:準備與該NVM相關聯之未分配邏輯位址之一清單,及將該清單自該檔案系統提供至該NVM管理器;及基於該清單,在使用該NVM之前,同步化該檔案系統及該NVM管理器之間的未分配邏輯區塊位址(LBA)之分配,其中該同步化步驟包含:識別該等未分配邏輯位址中尚未被該NVM管理器解映射之未分配邏輯位址;及解映射該等尚未解映射之邏輯位址;其中該掛載時間將儲存於該NVM中之檔案之態樣(aspects)整合於該檔案系統之一檔案及資料夾結構中。
  2. 如請求項1之方法,其中該準備步驟包含:編譯未分配邏輯區塊位址(「LBA」)範圍之一清單。
  3. 如請求項2之方法,其中該編譯步驟包含:針對該等未分配LBA範圍中之每一者識別該未分配LBA範圍之一第一LBA及該未分配LBA範圍之一長度。
  4. 如請求項1之方法,其進一步包含維護(maintain)指示未分配LBA及已分配LBA的一邏輯區塊位址(「LBA」)分配表,其中該準備步驟包含掃描遍及該LBA分配表。
  5. 如請求項1之方法,其中該提供步驟包含:將至少一個解映射請求發出至該NVM管理器。
  6. 如請求項1之方法,其中該提供步驟包含:將複數個部分清單提供至該NVM管理器。
  7. 一種系統,其包含:一非揮發記憶體(「NVM」);及電路,其可操作以執行一作業系統及一NVM管理器,其中該作業系統包含一檔案系統,該檔案系統經組態以:回應於該作業系統觸發該NVM之一掛載,識別與該NVM相關聯之未分配邏輯位址,及在一掛載時間向該NVM管理器發出至少一個解映射請求以解映射該等經識別之未分配邏輯位址,以使該NVM管理器能夠在使用該NVM之前校正該檔案系統及該NVM管理器之間的任何不相符(discrepancies),其中該掛載時間將儲存於該NVM中之檔案之態樣(aspects)整合於該檔案系統之一檔案及資料夾結構中,其中該檔案系統經進一步組態以保持一位元映射,該位元映射指示與該NVM相關聯之該等邏輯位址中之已分配邏輯位址,且其中該檔案系統經組態以基於該位元映射識別該等未分配邏輯位址。
  8. 如請求項7之系統,其中該作業系統經組態以在該系統啟動時觸發該NVM之該掛載。
  9. 如請求項7之系統,其中該NVM管理器經組態以捨棄與已解映射之未分配邏輯位址相關聯之該等解映射請求中之任一者。
  10. 如請求項7之系統,其中該NVM管理器經組態以:保持該NVM之邏輯位址至實體位址之一映射;及回應於接收到該至少一個解映射請求而更新該映射。
  11. 如請求項7之系統,其中該NVM管理器包含一NVM驅動程式,且 其中該電路包含用於執行該作業系統及該NVM驅動程式之一處理器。
  12. 如請求項7之系統,其中該NVM為NAND快閃記憶體。
  13. 一種在掛載時間自一檔案系統發出至一非揮發記憶體(「NVM」)管理器之解映射請求的方法,其中該檔案系統及該NVM管理器由具有一NVM之一電子裝置實施,該方法包含:在掛載時間存取一位元映射,該位元映射指示複數個邏輯區塊位址(「LBA」)中之已分配邏輯區塊位址;掃描該位元映射以識別複數個未分配LBA範圍;準備該等解映射請求以包括該經識別之複數個未分配LBA範圍;及在掛載時間發送該等解映射請求至該NVM管理器,使得該複數個未分配LBA範圍操作以與自該NVM所獲得之邏輯位址至實體位址之一映射相比較,其中該掛載時間將儲存於該NVM中之檔案之態樣(aspects)整合於該檔案系統之一檔案及資料夾結構中。
  14. 如請求項13之方法,其中該掃描步驟包含:針對該複數個未分配LBA範圍中之每一者判定該未分配LBA範圍中之一第一LBA及該LBA範圍之一長度。
  15. 如請求項13之方法,其進一步包含保持一計數器以保持追蹤該複數個未分配LBA範圍中之每一者之一長度。
  16. 如請求項13之方法,其中該掃描步驟包含:基於該等未分配LBA範圍在該位元映射中之定位來識別該複數個未分配LBA範圍。
  17. 一種電子裝置,其包含:一非揮發記憶體(「NVM」);控制電路,其可操作以執行一檔案系統及一NVM管理器,其 中該檔案系統經組態以:在一第一掛載時間識別與該NVM相關聯之一邏輯位址以進行解除分配,其中該第一掛載時間包含將儲存於該NVM中之檔案之態樣(aspects)整合於該檔案系統之一檔案及資料夾結構中;回應於識別該邏輯位址,向該NVM管理器發出一第一解映射請求以解除分配該邏輯位址,其中該第一解映射請求為該NVM管理器提供一第一機會以解除分配該邏輯位址;及在該NVM之一後續掛載期間,向該NVM管理器發出一第二解映射請求以解除分配該邏輯位址,其中該第二解映射請求為該NVM管理器提供一第二機會以解除分配該邏輯位址。
  18. 如請求項17之電子裝置,其中該檔案系統經進一步組態以:準備與該NVM相關聯之未分配邏輯位址之一綜合清單;及發出複數個解映射請求以解除分配未分配邏輯位址之該綜合清單,其中該第二解映射請求包括在該複數個解映射請求中。
  19. 如請求項17之電子裝置,其中該檔案系統經進一步組態以保持一邏輯位址分配表,其中該第二解映射請求係回應於在掛載時間判定該邏輯位址在該邏輯位址分配表中未分配而發出。
  20. 如請求項17之電子裝置,其進一步包含一揮發記憶體,其中該NVM管理器經組態以回應於接收該第一解映射請求而:在該揮發記憶體中標記該邏輯位址為無效;及延遲在與該邏輯位址之無效相關聯之該NVM中作出改變。
TW102101274A 2011-06-03 2012-06-01 非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射 TWI516926B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/152,839 US9727570B2 (en) 2011-06-03 2011-06-03 Mount-time unmapping of unused logical addresses in non-volatile memory systems

Publications (2)

Publication Number Publication Date
TW201316170A TW201316170A (zh) 2013-04-16
TWI516926B true TWI516926B (zh) 2016-01-11

Family

ID=46147049

Family Applications (2)

Application Number Title Priority Date Filing Date
TW102101274A TWI516926B (zh) 2011-06-03 2012-06-01 非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射
TW101119867A TWI503664B (zh) 2011-06-03 2012-06-01 非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW101119867A TWI503664B (zh) 2011-06-03 2012-06-01 非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射

Country Status (6)

Country Link
US (1) US9727570B2 (zh)
EP (1) EP2530612B1 (zh)
KR (2) KR101484816B1 (zh)
CN (1) CN102855193B (zh)
TW (2) TWI516926B (zh)
WO (1) WO2012166308A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756458B2 (en) 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
US9747298B2 (en) * 2014-05-02 2017-08-29 Vmware, Inc. Inline garbage collection for log-structured file systems
US11334478B2 (en) * 2014-10-30 2022-05-17 Kioxia Corporation Memory system and nonvolatile memory medium in which program is stored to optimize operating life
CN107797938B (zh) * 2016-09-05 2022-07-22 北京忆恒创源科技股份有限公司 加快去分配命令处理的方法与存储设备
WO2018041258A1 (zh) * 2016-09-05 2018-03-08 北京忆恒创源科技有限公司 去分配命令处理的方法与存储设备
CN107797934B (zh) * 2016-09-05 2022-07-22 北京忆恒创源科技股份有限公司 处理去分配命令的方法与存储设备
KR101777660B1 (ko) * 2016-10-25 2017-09-12 주식회사 티에스피글로벌 플래시 스토리지 디바이스 및 그 동작 제어 방법
KR20180047402A (ko) 2016-10-31 2018-05-10 삼성전자주식회사 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102395538B1 (ko) * 2017-04-28 2022-05-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10275361B2 (en) * 2017-05-31 2019-04-30 Seagate Technology Llc Managing multiple namespaces in a non-volatile memory (NVM)
CN109086219B (zh) * 2017-06-14 2022-08-05 北京忆恒创源科技股份有限公司 去分配命令处理方法及其存储设备
TWI659304B (zh) 2017-10-20 2019-05-11 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US10437476B2 (en) * 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
US11580034B2 (en) 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US10678703B2 (en) 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US10929309B2 (en) * 2017-12-19 2021-02-23 Western Digital Technologies, Inc. Direct host access to storage device memory space
US11720283B2 (en) 2017-12-19 2023-08-08 Western Digital Technologies, Inc. Coherent access to persistent memory region range
CN110413201B (zh) * 2018-04-28 2023-06-27 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
KR20200033625A (ko) * 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
KR20200072639A (ko) 2018-12-12 2020-06-23 삼성전자주식회사 저장 장치 및 그것의 동작 방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944742B1 (en) 2000-04-28 2005-09-13 Microsoft Corporation Compressed file system for non-volatile RAM
US6883114B2 (en) * 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
CN1447242A (zh) * 2002-03-25 2003-10-08 太和科技股份有限公司 可适用于快闪存储卡的控制装置及其建构方法
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
TWI223145B (en) * 2003-03-04 2004-11-01 Megawin Technology Co Ltd Method for detecting logical address of non-volatile storage medium
US7493424B1 (en) 2004-04-30 2009-02-17 Netapp, Inc. Network storage system with shared software stack for LDMA and RDMA
JP4209820B2 (ja) * 2004-07-15 2009-01-14 株式会社ハギワラシスコム メモリカードシステム及び該メモリカードシステムで使用されるライトワンス型メモリカード、ホストシステムと半導体記憶デバイスとからなるシステム
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
WO2006095335A2 (en) 2005-03-07 2006-09-14 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
JP2007094900A (ja) * 2005-09-29 2007-04-12 Eastman Kodak Co アクセス装置
EP1960863A2 (en) * 2005-12-13 2008-08-27 SanDisk Corporation Logically-addressed file storage
CN100428196C (zh) * 2006-12-22 2008-10-22 清华大学 一种计算机系统快速还原的方法
CN100504814C (zh) 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
US8099544B2 (en) * 2008-02-29 2012-01-17 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
JP4164118B1 (ja) * 2008-03-26 2008-10-08 眞澄 鈴木 フラッシュメモリを用いた記憶装置
US8130554B1 (en) * 2008-09-29 2012-03-06 Emc Corporation Securely erasing flash-based memory
JP5458568B2 (ja) * 2008-12-25 2014-04-02 ソニー株式会社 不揮発性記憶装置、情報記録システム、及び情報記録方法
CN102449610B (zh) * 2009-03-27 2014-07-16 Lsi公司 用于提供存储系统逻辑块地址的释放管理的方法及设备
US9063886B2 (en) 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
TWI426528B (zh) * 2009-09-30 2014-02-11 Phison Electronics Corp 用於快閃記憶體的區塊管理方法、控制器與儲存系統
TWI408551B (zh) * 2009-10-28 2013-09-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料處理方法
TWI423024B (zh) * 2009-11-23 2014-01-11 Phison Electronics Corp 用於快閃記憶體的資料儲存方法及其控制器與儲存系統
US8812816B2 (en) 2010-03-23 2014-08-19 Apple Inc. Garbage collection schemes for index block
US8589730B2 (en) * 2010-08-31 2013-11-19 Apple Inc. Handling errors during device bootup from a non-volatile memory
US8756458B2 (en) * 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability

Also Published As

Publication number Publication date
KR20120135139A (ko) 2012-12-12
US9727570B2 (en) 2017-08-08
CN102855193B (zh) 2015-08-12
CN102855193A (zh) 2013-01-02
EP2530612A1 (en) 2012-12-05
KR101484816B1 (ko) 2015-01-20
TW201316170A (zh) 2013-04-16
TWI503664B (zh) 2015-10-11
US20120311298A1 (en) 2012-12-06
WO2012166308A1 (en) 2012-12-06
KR101788332B1 (ko) 2017-10-19
KR20120135103A (ko) 2012-12-12
TW201316169A (zh) 2013-04-16
EP2530612B1 (en) 2014-01-29

Similar Documents

Publication Publication Date Title
TWI516926B (zh) 非揮發記憶體系統中未使用之邏輯位址之掛載時間解映射
US11636032B2 (en) Memory system, data storage device, user device and data management method thereof
US10055345B2 (en) Methods, devices and systems for solid state drive control
US10678768B2 (en) Logical band-based key-value storage structure
US9513831B2 (en) Method and system for atomically writing scattered information in a solid state storage device
AU2013345302B2 (en) Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
AU2014226246B2 (en) Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
AU2013327582B2 (en) Methods, devices and systems for physical-to-logical mapping in solid state drives
EP2605142B1 (en) Lba bitmap usage
KR101451482B1 (ko) 데이터 이용가능성의 마운트타임 조정
US9507523B1 (en) Methods, devices and systems for variable size logical page management in a solid state drive
US11182329B2 (en) Data processing system and operating method thereof
US20230054801A1 (en) Memory device and method for accessing memory device with namespace management
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees