專利名稱:處理具有非易失性存儲(chǔ)器的系統(tǒng)的未完全關(guān)閉的制作方法
處理具有非易失性存儲(chǔ)器的系統(tǒng)的未完全關(guān)閉技術(shù)領(lǐng)域
本發(fā)明公開涉及具有非易失性存儲(chǔ)器的系統(tǒng)的未完全關(guān)閉的處理。
背景技術(shù):
NAND閃存以及其它類型的非易失性存儲(chǔ)器(“NVM”)通常被用于大容量存儲(chǔ)。例 如,諸如便攜式媒體播放器的消費(fèi)者電子產(chǎn)品通常包括閃存來存儲(chǔ)音樂、視頻和其它媒體。
NVM可以包括多個(gè)索引頁以提供邏輯地址和物理地址之間的映射。在一些情況下, 對(duì)應(yīng)于最近寫入的用戶數(shù)據(jù)的映射信息被存儲(chǔ)在設(shè)備的易失性存儲(chǔ)器中,以便于更快讀取 出來。這種映射信息可以周期性地從易失性存儲(chǔ)器清除到NVM的索引頁,以提供對(duì)該信息 的長期存儲(chǔ)。
當(dāng)具有NVM的電子設(shè)備完全關(guān)閉時(shí),存儲(chǔ)在索引頁中的信息可以直接用來在易失 性存儲(chǔ)器中重建邏輯-物理映射。然而,當(dāng)電子設(shè)備沒有完全關(guān)閉時(shí),至少某些索引頁可能 會(huì)過時(shí),這是因?yàn)樵撛O(shè)備可能沒有將最近的映射信息完全清除到索引頁。結(jié)果,該設(shè)備可能 需要掃描整個(gè)NVM,以便在易失性存儲(chǔ)器中重建邏輯-物理映射。這種處理浪費(fèi)了很多時(shí) 間。發(fā)明內(nèi)容
公開了用于處理具有非易失性存儲(chǔ)器的系統(tǒng)的未完全關(guān)閉(unci ear shutdown) 的系統(tǒng)和方法。在某些實(shí)施例中,該系統(tǒng)可以利用從索引頁獲取的信息,以便在未完全關(guān)閉 之后更加高效地重建邏輯-物理映射。如在此所用,“索引頁”可以是NVM的頁,其存儲(chǔ)文件 系統(tǒng)所用的邏輯地址和數(shù)據(jù)頁(例如,存儲(chǔ)用戶數(shù)據(jù)的NVM的頁)的物理地址之間的映射。
在其它實(shí)施例中,該系統(tǒng)可以通過利用同樣存儲(chǔ)在NVM中的上下文信息來重建邏 輯-物理映射。如在此所用,“上下文信息”可以指在特定時(shí)間點(diǎn)與整個(gè)NVM的狀態(tài)相關(guān) 的信息。在更多實(shí)施例中,上下文信息可以與索引頁聯(lián)合使用以在未完全關(guān)閉之后重建邏 輯-物理映射。
根據(jù)以下詳細(xì)說明,結(jié)合相應(yīng)附圖,本發(fā)明的以上和其它方面和優(yōu)點(diǎn)將變得更加 顯著,其中相同的參考符號(hào)始終表不相同的部件,其中
圖1和2是根據(jù)本發(fā)明各種實(shí)施例所配置的電子設(shè)備的框圖3是根據(jù)本發(fā)明各種實(shí)施例的存儲(chǔ)器映射架構(gòu)的示例性框圖4是根據(jù)本發(fā)明各種實(shí)施例的用于處理未完全關(guān)閉事件的示例性方法的流程 圖5是根據(jù)本發(fā)明各種實(shí)施例的用于比較索引頁的年齡和數(shù)據(jù)頁的年齡的示例 性方法的流程圖6是根據(jù)本發(fā)明各種實(shí)施例的用于處理未完全關(guān)閉事件的另一個(gè)示例性方法的流程圖;圖7是根據(jù)本發(fā)明各種實(shí)施例的用于處理未完全關(guān)閉事件的再一個(gè)示例性方法的流程圖;圖8是根據(jù)本發(fā)明各種實(shí)施例的用于處理未完全關(guān)閉事件的示例性控制電路的框圖;和圖9是根據(jù)本發(fā)明各種實(shí)施例的用于處理未完全關(guān)閉事件的另一個(gè)示例性控制電路的框圖。
具體實(shí)施例方式提供了用于處理具有非易失性存儲(chǔ)器的系統(tǒng)的未完全關(guān)閉的系統(tǒng)和方法。特別地,系統(tǒng)的NVM接口可以利用從索引頁獲取的信息,以便在未完全關(guān)閉之后更加高效地重建邏輯-物理映射。如在此所用,“索引頁”可以是NVM的頁,其用于存儲(chǔ)文件系統(tǒng)所用的邏 輯地址和數(shù)據(jù)頁(例如,存儲(chǔ)用戶數(shù)據(jù)的NVM的頁)的物理地址之間的映射。例如,NVM接口可以通過掃描索引頁來獲得索引頁的年齡,執(zhí)行重建。NVM接口接著可以對(duì)索引頁的年齡和對(duì)應(yīng)數(shù)據(jù)頁的年齡進(jìn)行比較,并確定特定索引頁與對(duì)應(yīng)數(shù)據(jù)頁相比是更年輕(例如,更新)還是更老。如果NVM接口確定索弓I頁的年齡比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老,那么NVM接口可以確定索引頁是不可靠的(例如,索引頁沒有由于數(shù)據(jù)頁被更新而被更新)。因此,NVM接口可以掃描更年輕的數(shù)據(jù)塊,來重建邏輯-物理映射。相反,如果NVM接口確定索引頁的年齡不比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老,那么NVM接口可以確定索引頁是可靠的(例如,索引頁在數(shù)據(jù)頁被更新之后或者同時(shí)被更新)。因此,NVM接口可以使用索引頁中存儲(chǔ)的映射來在易失性存儲(chǔ)器中重建映射。在某些實(shí)施例中,系統(tǒng)可以通過利用存儲(chǔ)在NVM中的上下文信息來重建邏輯-物理映射。如在此所用,“上下文信息”可以指在特定時(shí)間點(diǎn)與整個(gè)NVM的狀態(tài)相關(guān)的信息。在其它實(shí)施例中,上下文信息可以與索引頁聯(lián)合使用,以在未完全關(guān)閉之后重建邏輯-物理映射。圖1示出了電子設(shè)備100的框圖。在某些實(shí)施例中,電子設(shè)備100可以是或者可以包括便攜式媒體播放器、蜂窩電話、袖珍個(gè)人電腦、個(gè)人數(shù)字助理(“PDA”)、桌上電腦、膝上電腦、以及任意其它合適類型的電子設(shè)備。電子設(shè)備100可以包括片上系統(tǒng)(“SoC”)110和非易失性存儲(chǔ)器(“NVM”)120。非易失性存儲(chǔ)器120可以包括基于浮動(dòng)?xùn)艠O或者電荷俘獲技術(shù)的NAND閃存、NOR閃存、可擦除可編程只讀存儲(chǔ)器(“EPR0M”)、電可擦除可編程只讀存儲(chǔ)器(“EEPR0M”)、鐵電RAM ( “FRAM”)J|^iRAM( “MRAM”)、或其任意組合。NVM120可以被組織成“塊”,這是最小的可擦除單元,還可被組織成“頁”,這是可以被編程或者讀取的最小單元。在某些實(shí)施例中,NVM120可以包括多個(gè)集成電路,其中每個(gè)集成電路可以具有多個(gè)塊。相應(yīng)集成電路的存儲(chǔ)位置(例如,塊或者塊中的頁)可以形成“超級(jí)塊”。NVM120的每個(gè)存儲(chǔ)位置(例如,頁或塊)可以利用物理地址(例如,物理頁地址或者物理塊地址)來引用。NVMl20的一個(gè)或多個(gè)頁可以是數(shù)據(jù)頁,其可以被用來存儲(chǔ)與SoCl 10或設(shè)備100的組件的一般操作相關(guān)的數(shù)據(jù)。另外,NVM120的一個(gè)或多個(gè)頁可以被用來存儲(chǔ)索引表。在邏 輯扇區(qū)被直接映射到物理頁的實(shí)施例中,邏輯-物理映射可以被存儲(chǔ)在索引表中。如在此 所用,“邏輯-物理映射”可以是在一個(gè)或多個(gè)邏輯地址(例如,邏輯扇區(qū))和數(shù)據(jù)頁的物理 頁地址之間的映射。例如,索引表可以保存NVM120的數(shù)據(jù)頁的物理地址。
在某些情況下,索引表可以包括多個(gè)索引頁,其中每個(gè)索引頁可以將邏輯地址映 射到數(shù)據(jù)頁的一個(gè)或多個(gè)物理地址。索引表和索引頁將結(jié)合圖3進(jìn)行更詳細(xì)的描述。
片上系統(tǒng)110可以包括SoC控制電路112、存儲(chǔ)器114、以及NVM接口 118。SoC控 制電路112可以控制SoCIIO以及SoCIIO或設(shè)備100的其它組件的一般操作和功能。例如, 響應(yīng)于用戶輸入和/或應(yīng)用程序或操作系統(tǒng)的指令,SoC控制電路112可以將讀取或?qū)懭朊?令定布給NVM接口 118以從NVMl20獲取數(shù)據(jù),或?qū)?shù)據(jù)存儲(chǔ)在NVMl20中。為了清晰,SoC 控制電路112可以請(qǐng)求存儲(chǔ)或檢索的數(shù)據(jù)被稱為“用戶數(shù)據(jù)”,盡管該數(shù)據(jù)可能并非與用戶 或用戶應(yīng)用程序直接相關(guān)。相反,用戶數(shù)據(jù)可以是SoC控制電路112 (例如,通過應(yīng)用程序 或者操作系統(tǒng))生成或者得到的任意適當(dāng)?shù)臄?shù)字信息序列。
SoC控制電路112可以包括硬件、軟件和固件的任意組合,以及可操作來驅(qū)動(dòng)電子 設(shè)備100的功能的任意組件、電路或者邏輯。例如,SoC控制電路112可以包括在NVM120或 者存儲(chǔ)器114中存儲(chǔ)的軟件/固件的控制下進(jìn)行操作的一個(gè)或多個(gè)處理器。
存儲(chǔ)器114可以包括任意適當(dāng)類型的易失性存儲(chǔ)器,諸如隨機(jī)存取存儲(chǔ)器 (“RAM”)(例如,靜態(tài)RAM( “SRAM”)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(“DRAM”)、同步動(dòng)態(tài)隨機(jī)存取 存儲(chǔ)器(“SDRAM”)、雙倍速率(“DDR”)RAM)、高速緩存、只讀存儲(chǔ)器(“ROM”)、或其任意 組合。存儲(chǔ)器114可以包括數(shù)據(jù)源,其能夠臨時(shí)存儲(chǔ)用戶數(shù)據(jù),該用戶數(shù)據(jù)能夠被編程到非 易失性存儲(chǔ)器120中或者從中被讀取。在一些實(shí)施例中,存儲(chǔ)器114可以用作為被實(shí)現(xiàn)為 SoC控制電路112的一部分的任意處理器的主存儲(chǔ)器。
存儲(chǔ)器114可以包括查找表和/或索引表高速緩存。查找表可以保存在NVM120 中存儲(chǔ)的索引表的位置(例如,物理地址)。索引表高速緩存可以存儲(chǔ)最近被寫入的邏輯地 址(例如,邏輯扇區(qū))的物理地址,以便提供更快速的讀出。周期性地,存儲(chǔ)在索引表高速 緩存中的信息可以從索引表高速緩存清除到NVM120的索引頁。
在某些實(shí)施例中,索引表高速緩存的大小可以是索引頁的大小的一小部分。通過 將大多數(shù)映射信息存儲(chǔ)在索引頁中而不是存儲(chǔ)在索引表高速緩存中,可以在存儲(chǔ)器114中 釋放更多的空間用于其它處理。查找表和索引表高速緩存將結(jié)合圖3進(jìn)行更加詳細(xì)的描 述。
NVM接口 118可以包括硬件、軟件和/或固件的任意適當(dāng)組合,NVM接口 118被配 置為用作為SoC控制電路112和NVM120之間的接口或驅(qū)動(dòng)器。對(duì)于NVM接口 118中包含 的任何軟件模塊,對(duì)應(yīng)程序代碼可以被存儲(chǔ)在NVM120或者存儲(chǔ)器114中。
NVM接口 118可以執(zhí)行各種功能,這些功能允許SoC控制電路112訪問NVM120,并 管理NVM120的存儲(chǔ)位置(例如,頁、塊、超級(jí)塊、集成電路),以及其中存儲(chǔ)的數(shù)據(jù)(例如,用 戶數(shù)據(jù))。例如,NVM接口 118可以解釋來自SoC控制電路112的讀或?qū)懻?qǐng)求,執(zhí)行損耗均 衡,并生成與NVM120的總線協(xié)議兼容的讀取和程序指令。
雖然NVM接口 118和SoC控制電路112作為獨(dú)立模塊示出,但這僅僅是為了簡化 對(duì)本發(fā)明實(shí)施例的說明。應(yīng)該理解,這些模塊可以共享硬件組件、軟件組件或二者兼具。例如,SoC控制電路112可以執(zhí)行用于NVM接口 118的基于軟件的存儲(chǔ)器驅(qū)動(dòng)。在某些實(shí)施例中,電子設(shè)備100可以包括目標(biāo)設(shè)備,諸如,閃存驅(qū)動(dòng)或數(shù)字安全(“SD” )卡,該目標(biāo)設(shè)備包括NVM120和NVM接口 118的某些部分或全部(例如,以下討論的轉(zhuǎn)換層)。在這些實(shí)施例中,SoCllO或SoC控制電路112可以用作為目標(biāo)設(shè)備的主控制器。例如,作為主控制器,SoCllO可以將讀和寫請(qǐng)求發(fā)布到目標(biāo)設(shè)備。圖2示出了電子設(shè)備200的框圖,其中可以更詳細(xì)地示出根據(jù)各種實(shí)施例的電子設(shè)備100(圖1)的某些固件、軟件和/或硬件組件。電子設(shè)備200可以具有以上結(jié)合圖1所描述的任意特征和功能,反之亦然。如所示,虛線劃分了層。應(yīng)該理解,對(duì)于落入虛線內(nèi)的組件的描述僅僅是示例性的,并且一個(gè)或多個(gè)組件可以被添加到不同的層。電子設(shè)備200可以包括文件系統(tǒng)210、NVM驅(qū)動(dòng)器212、NVM總線控制器216以及NVM220。在某些實(shí)施例中,文件系統(tǒng)210和NVM驅(qū)動(dòng)器212可以是軟件或固件模塊,而NVM總線控制器216和NVM220可以是硬件模塊。因此,在這些實(shí)施例中,NVM驅(qū)動(dòng)器212可以代表NVM接口 218的軟件或固件方面,而NVM總線控制器216可以代表NVM接口 218的硬件方面。文件系統(tǒng)210可以包括任意適當(dāng)類型的文件系統(tǒng),諸如文件分配表(“FAT”)文件系統(tǒng)或者分層文件系統(tǒng)+(Hierarchical File System Plus,即“HFS+”),并且可以是電子設(shè)備200的操作系統(tǒng)的一部分(例如,圖1的SoC控制電路112的一部分)。在某些實(shí)施例中,文件系統(tǒng)210可以包括閃存文件系統(tǒng),其提供頁的邏輯-物理映射。在這些實(shí)施例中,文件系統(tǒng)210可以執(zhí)行下述的NVM驅(qū)動(dòng)器212的部分或全部功能,并因此文件系統(tǒng)210和NVM驅(qū)動(dòng)器212可以是獨(dú)立模塊,也可以不是獨(dú)立模塊。文件系統(tǒng)210可以管理應(yīng)用程序和操作系統(tǒng)的文件和文件夾結(jié)構(gòu)。文件系統(tǒng)210可以在電子設(shè)備200上運(yùn)行的應(yīng)用程序或操作系統(tǒng)的控制下進(jìn)行操作,并且可以在應(yīng)用程序或操作系統(tǒng)請(qǐng)求從NVM220中讀取或向NVM220存入信息時(shí),向NVM驅(qū)動(dòng)器212提供寫入和讀取指令。連同每個(gè)讀取或?qū)懭胫噶?,文件系統(tǒng)210可以提供邏輯地址來指示用戶數(shù)據(jù)應(yīng)該從哪里讀取或?qū)懭氲侥睦铮T如邏輯頁地址或具有頁偏移的邏輯塊地址(“LBA”)。文件系統(tǒng)210可以向與NVM220不直接兼容的NVM驅(qū)動(dòng)器212提供讀取請(qǐng)求和寫入請(qǐng)求。例如,邏輯地址可以使用基于硬驅(qū)動(dòng)的系統(tǒng)的典型的規(guī)范或協(xié)議?;谟豺?qū)動(dòng)的系統(tǒng)一不像閃存一可以重寫存儲(chǔ)位置而不需要首先執(zhí)行塊擦除。此外,硬驅(qū)動(dòng)可以不需要損耗均衡(wear leveling)來增加設(shè)備的使用壽命。因此,NVM接口 218可以執(zhí)行特定于存儲(chǔ)器、特定于供應(yīng)商、或二者兼有的任何功能,來處理文件系統(tǒng)請(qǐng)求,并采取適于NVM220的方式執(zhí)行其它管理功能。NVM驅(qū)動(dòng)器212可以包括轉(zhuǎn)換層214。在某些實(shí)施例中,轉(zhuǎn)換層214可以是或者可以包括閃存轉(zhuǎn)換層(Flash Translation Layer,即“FTL”)。對(duì)于寫指令,轉(zhuǎn)換層214可以將所提供的邏輯地址映射到NVM220上的空閑的已擦除的物理位置。對(duì)于讀指令,轉(zhuǎn)換層214可以使用所提供的邏輯地址來確定存儲(chǔ)了所請(qǐng)求的數(shù)據(jù)的物理地址。因?yàn)楦鶕?jù)NVM的大小或供應(yīng)商,每個(gè)NVM可能具有不同的布局,所以這個(gè)映射操作可以是特定于存儲(chǔ)器和/或供應(yīng)商的。除了邏輯-物理地址映射以外,轉(zhuǎn)換層214可以執(zhí)行任何其它適當(dāng)?shù)墓δ?。例如,轉(zhuǎn)換層214可以執(zhí)行其它任意功能,其可以是閃存轉(zhuǎn)換層的典型功能,諸如垃圾收集和損耗均衡。
NVM驅(qū)動(dòng)器212可以與NVM總線控制器216接口來完成NVM訪問命令(例如,編 程、讀取和擦除命令)??偩€控制器216可以用作為與NVM220的硬件接口,并且可以利用 NVM220的總線協(xié)議、數(shù)據(jù)率和其它規(guī)范而與NVM220通信。
NVM接口 218可以基于存儲(chǔ)器管理數(shù)據(jù),本文有時(shí)稱之為“元數(shù)據(jù)”,來管理 NVM220。元數(shù)據(jù)可以通過NVM驅(qū)動(dòng)器212生成,或者可以通過在NVM驅(qū)動(dòng)器212控制下操作 的模塊生成。例如,元數(shù)據(jù)可以包括用于管理邏輯和物理地址之間的映射、壞塊管理、損耗 均衡、用于檢測或糾正數(shù)據(jù)錯(cuò)誤的糾錯(cuò)碼(“ECC”)數(shù)據(jù)、或者其任意組合的任何信息。元 數(shù)據(jù)可以包括與用戶數(shù)據(jù)一起由文件系統(tǒng)210提供的數(shù)據(jù),諸如邏輯地址。因此通常,“元 數(shù)據(jù)”可以是指關(guān)于或涉及用戶數(shù)據(jù)或通常用于管理非易失性存儲(chǔ)器的操作和存儲(chǔ)位置的 任何息。
NVM接口 218可以被配置為在NVM220中存儲(chǔ)元數(shù)據(jù)。在某些實(shí)施例中,NVM接口 218可以在存儲(chǔ)了用戶數(shù)據(jù)的相同存儲(chǔ)位置(例如,頁)中存儲(chǔ)與用戶數(shù)據(jù)相關(guān)的元數(shù)據(jù)。 例如,NVM接口 218可以在NVM220的一個(gè)或多個(gè)存儲(chǔ)位置存儲(chǔ)用戶數(shù)據(jù)、相關(guān)邏輯地址、以 及用戶數(shù)據(jù)的ECC數(shù)據(jù)。NVM接口 218還可以在相同的存儲(chǔ)位置存儲(chǔ)其它類型的有關(guān)用戶 數(shù)據(jù)的元數(shù)據(jù)。
NVM接口 218可以存儲(chǔ)邏輯地址,以使得在NVM220上電時(shí),或者在NVM220的操作 期間,電子設(shè)備200可以確定什么數(shù)據(jù)駐留在那個(gè)位置。特別地,因?yàn)槲募到y(tǒng)210可以根 據(jù)其邏輯地址而不是其物理地址來指引用戶數(shù)據(jù),因此NVM接口 218可以一起存儲(chǔ)用戶數(shù) 據(jù)和邏輯地址來保持它們的相關(guān)性。這種方式,即使保持物理-邏輯映射的NVM220中的索 引表變得過時(shí)了,NVM接口 218仍然可以例如在電子設(shè)備200的上電或者重啟時(shí)確定正確 的映射。
現(xiàn)在參考圖3,示出了用于將邏輯地址映射到物理頁的示例存儲(chǔ)器映射架構(gòu)300 的框圖。架構(gòu)300被劃分為易失性存儲(chǔ)器(虛線左邊示出)和非易失性存儲(chǔ)器(虛線右邊 示出)。查找表302和索引表高速緩存304被存儲(chǔ)在易失性存儲(chǔ)器(例如,圖1的存儲(chǔ)器 114)中,而索引表306和數(shù)據(jù)頁308被存儲(chǔ)在非易失性存儲(chǔ)器(例如,圖1的NVM120或者 圖2的NVM220)中。如圖3所示,數(shù)據(jù)頁308被包括在數(shù)據(jù)塊1_N中。
索引表306可以包括索引頁1-N。索引表306的索引頁1-N中的每一個(gè)可以存儲(chǔ) 一個(gè)或多個(gè)邏輯-物理映射。例如,如圖3所示,索引表306的索引頁I可以將邏輯地址映 射到數(shù)據(jù)塊I和數(shù)據(jù)塊N的一個(gè)或多個(gè)數(shù)據(jù)頁。
查找表302可以保存索引表306的位置(例如,物理地址)。例如,查找表302可 以保存形成索引表306的一部分的索引頁1-N的邏輯-物理映射。另外,查找表302還可 以存儲(chǔ)索引表高速緩存304的存儲(chǔ)位置。
索引表高速緩存304可以保存最近被寫入或訪問的邏輯地址的物理地址。也 就是,高速緩存304可以保存用于當(dāng)前正被編程或者最近已經(jīng)被編程的數(shù)據(jù)頁308的邏 輯-物理映射。周期性地,存儲(chǔ)在高速緩存304中的信息可以被清除至索引表306的索引 頁1-N。結(jié)果,高速緩存304有時(shí)可以提供也存儲(chǔ)在索引表306中的映射的冗余副本。
當(dāng)電子設(shè)備完全關(guān)閉時(shí)(例如,所有存儲(chǔ)在高速緩存304中的信息已經(jīng)被清除至 索引表306),該設(shè)備可以假定存儲(chǔ)在索引頁1-N中的邏輯-物理映射是有效的。因此,在設(shè) 備被上電或者重啟之后,該設(shè)備可以直接使用存儲(chǔ)在索引頁1-N中的映射來重建易失性存儲(chǔ)器中的映射。例如,NVM接口(例如,圖1的NVM接口 118,或者圖2的NVM接口 218)可以將索引頁1-N的邏輯-物理映射復(fù)制到高速緩存304。因?yàn)樗饕?-N只能占用數(shù)據(jù)頁308的部分大小,因此與通過掃描整個(gè)NVM來獲取邏輯-物理映射相比,這種處理是更加高效的。相反,當(dāng)電子設(shè)備沒有完全關(guān)閉時(shí)(例如,至少某些存儲(chǔ)在高速緩存304中的信息還沒有被清除至索引表306),該設(shè)備不能依賴于存儲(chǔ)在索引表306中的信息。特別地,索引表306不能捕獲最近被寫入或者擦除的用戶數(shù)據(jù)。通常,一旦設(shè)備重啟,假定存儲(chǔ)在索引表306中的邏輯-物理映射是無效的。因此,該設(shè)備可以前去掃描NVM的數(shù)據(jù)塊以便重建高速緩存304中的邏輯-物理映射。例如,該設(shè)備可以通過讀取與數(shù)據(jù)塊相關(guān)的塊內(nèi)容表(“T0C”)來掃描數(shù)據(jù)塊。例如,在圖3所示的例子中,塊TOCl可以與數(shù)據(jù)塊I相關(guān),塊TOC N可以與數(shù)據(jù)塊N相關(guān),依此類推。每個(gè)塊TOC可以被存儲(chǔ)在對(duì)應(yīng)數(shù)據(jù)塊中,并且可以包括將數(shù)據(jù)塊的數(shù)據(jù)頁映射到對(duì)應(yīng)邏輯地址的信息。在常規(guī)系統(tǒng)中,塊TOC可以只包括被編程的每個(gè)頁的邏輯地址(例如,LBA或者邏輯頁號(hào))。在其它實(shí)施例中,塊TOC還可以包括對(duì)頁進(jìn)行的更新的相對(duì)年齡(例如,該頁相對(duì)于其它數(shù)據(jù)和/或索引頁已經(jīng)何時(shí)被更新)。在這樣的配置中,塊TOC可以包括被編程的每個(gè)數(shù)據(jù)和/或索引頁的邏輯地址-年齡對(duì)。如前所述,掃描NVM的每個(gè)數(shù)據(jù)塊的處理是耗時(shí)且低效的。因此,代替對(duì)于NVM的所有數(shù)據(jù)塊的自動(dòng)掃描,該設(shè)備可以利用從其它源獲取的信息(例如,索引頁和/或上下文信息),以便在不完全關(guān)閉之后更加高效地重建邏輯-物理映射?,F(xiàn)在轉(zhuǎn)到圖4-7,示出了根據(jù)本發(fā)明的各種實(shí)施例的示例性處理的流程圖。這些處理可以由系統(tǒng)的一個(gè)或多個(gè)組件來執(zhí)行(例如,圖1的電子設(shè)備100,或者圖2的電子設(shè)備200)。例如,圖4-7的處理中的至少某些步驟可以由NVM接口來執(zhí)行(例如,圖1的NVM接口 118,或者圖2的NVM接口218)。另外,本領(lǐng)域技術(shù)人員將理解至少某些步驟可以由控制電路來執(zhí)行(例如,圖1的SoC控制電路112)。首先轉(zhuǎn)到圖4,示出了用于處理未完全關(guān)閉事件的處理400。處理400可以從步驟402開始,在步驟404,NVM接口可以確定未完全關(guān)閉事件已經(jīng)發(fā)生了。在步驟406,NVM接口可以掃描NVM(例如,圖1的NVM120,或者圖2的NVM220)的多個(gè)索引頁(例如,圖3的索引頁1-N)以獲得索引頁的年齡。索引頁的年齡可以是該索引頁的可靠性的指示。繼續(xù)到步驟408,NVM接口可以對(duì)索引頁的年齡和NVM的與索引頁對(duì)應(yīng)的數(shù)據(jù)頁的年齡進(jìn)行比較?;谠摫容^,NVM接口可以確定特定索引頁比對(duì)應(yīng)數(shù)據(jù)頁是更年輕(例如,更新)還是更老。本領(lǐng)域技術(shù)人員將理解,任意適當(dāng)?shù)膮?shù)(例如,存儲(chǔ)為元數(shù)據(jù)的一個(gè)或多個(gè)參數(shù))可以被用于比較索引頁和對(duì)應(yīng)數(shù)據(jù)頁的相對(duì)年齡。例如,可以使用計(jì)數(shù)器,其可以與頁的年齡反向相關(guān)(例如,較老的頁可以與較小的計(jì)數(shù)器相關(guān),而較年輕的頁可以與較大的計(jì)數(shù)器相關(guān))。在比較了索引頁的年齡和對(duì)應(yīng)數(shù)據(jù)頁的年齡之后,處理400可以進(jìn)行到步驟410。在步驟410,NVM接口可以至少部分地基于該比較,確定每個(gè)索引頁的可靠性。特別地,如果NVM接口確定索引頁的年齡比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老,那么NVM接口可以確定索引頁是不可靠的,因此是無效的(例如,自從對(duì)應(yīng)數(shù)據(jù)頁被更新以來,索引頁還 沒有被更新)。因此,NVM接口可以掃描更年輕的數(shù)據(jù)塊來重建對(duì)應(yīng)于索引頁的邏輯地址的 邏輯-物理映射。
相反,如果NVM接口確定索引頁的年齡不比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老(例如,索引 頁的年齡比對(duì)應(yīng)數(shù)據(jù)頁的年齡更輕,或者與之相同),那么NVM接口可以確定索引頁是可靠 的,因此是有效的(例如,在對(duì)應(yīng)數(shù)據(jù)頁被更新之后或者與之同時(shí),索引頁被更新)。因此, 存儲(chǔ)在索引頁中的邏輯-物理映射可以被認(rèn)為是有效的,而NVM接口可以使用索引頁的映 射以在易失性存儲(chǔ)器中重建映射。隨后處理400可以在步驟412結(jié)束。
通過使用該方法,NVM接口可以避免掃描NVM的每個(gè)數(shù)據(jù)塊,相反可以直接使用索 引頁的子集(例如,有效的索引頁)以在易失性存儲(chǔ)器中重建邏輯-物理映射。此外,因?yàn)?無效的索引頁可以構(gòu)成全部索引頁的一小部分,因此NVM接口只需要掃描與無效索引頁的 邏輯地址對(duì)應(yīng)的數(shù)據(jù)塊的一個(gè)小子集。因此,這個(gè)方法可以顯著減少在未完全關(guān)閉事件之 后用于重建邏輯-物理映射所需的時(shí)間量。
現(xiàn)在轉(zhuǎn)到圖5,示出了用于比較索引頁的年齡和NVM(例如,圖1的NVM120,或者圖 2的NVM220)的數(shù)據(jù)頁的年齡的處理500。在某些實(shí)施例中,處理500可以表示處理400中 的比較步驟408和確定步驟410 (圖4)的更詳細(xì)視圖。
處理500可以從步驟502開始,在步驟504,NVM接口可以選擇存儲(chǔ)在NVM中的索 引頁。例如,NVM接口可以從索引表306(圖3)中選擇索引頁。
接著在步驟506,NVM接口可以確定索引頁的年齡是否比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老。 例如,NVM接口可以確定索引頁的計(jì)數(shù)器是否大于對(duì)應(yīng)數(shù)據(jù)頁的計(jì)數(shù)器,由此確定索引頁是 否有效。如果NVM接口確定索引頁的年齡不比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老(例如,索引頁的計(jì) 數(shù)器與對(duì)應(yīng)數(shù)據(jù)頁的計(jì)數(shù)器相同,或者比它更大),處理500進(jìn)行到步驟508。也就是,NVM 接口已經(jīng)確定索引頁是有效的索引頁。
在步驟508,NVM接口可以確定是否存在還沒有被選擇的其它索引頁。在步驟508, 如果NVM接口確定沒有其它索引頁了,處理500可以在步驟510結(jié)束。在步驟508,相反如 果NVM接口確定還有其它索引頁,處理500轉(zhuǎn)到步驟504,在此NVM接口可以選擇另一索引 頁。
回到步驟506,相反如果NVM接口確定索引頁的年齡比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老(例 如,索引頁的計(jì)數(shù)器比對(duì)應(yīng)數(shù)據(jù)頁的計(jì)數(shù)器小),處理500會(huì)轉(zhuǎn)到步驟512。也就是,NVM接 口已經(jīng)確定索引頁是個(gè)無效的索引頁。
在步驟512,NVM接口可以掃描具有數(shù)據(jù)頁的NVM的一個(gè)或多個(gè)數(shù)據(jù)塊,其中所述 數(shù)據(jù)頁的年齡比索引頁的年齡更輕。處理500可以接著轉(zhuǎn)到步驟514。
在步驟514,NVM接口可以選擇一個(gè)或多個(gè)數(shù)據(jù)塊中的一個(gè),其中所選擇的數(shù)據(jù)塊 包括與索引頁相關(guān)的一個(gè)或多個(gè)數(shù)據(jù)頁(例如,索引頁可以存儲(chǔ)與所選擇的數(shù)據(jù)塊中的一 個(gè)或多個(gè)數(shù)據(jù)頁對(duì)應(yīng)的邏輯-物理映射)。
接著在步驟516,NVM接口可以確定一個(gè)或多個(gè)數(shù)據(jù)頁的年齡是否比索引頁的年 齡更輕。如果,在步驟516,NVM接口確定一個(gè)或多個(gè)數(shù)據(jù)頁的年齡不比索引頁的年齡更輕, 處理500轉(zhuǎn)到步驟518。
在步驟518,NVM接口可以確定在一個(gè)或多個(gè)數(shù)據(jù)塊中是否存在其它數(shù)據(jù)塊。在步驟518,如果NVM接口確定存在其它數(shù)據(jù)塊,那么處理500轉(zhuǎn)到步驟514。在步驟514,NVM接口可以選擇具有一個(gè)或多個(gè)與索引頁相關(guān)的數(shù)據(jù)頁的另一個(gè)數(shù)據(jù)塊。在步驟518,如果NVM接口確定沒有其它數(shù)據(jù)塊,那么處理轉(zhuǎn)到步驟508,其中NVM接口可以確定是否存在其它索引頁?;氐讲襟E516,相反如果NVM接口確定一個(gè)或多個(gè)數(shù)據(jù)頁的年齡比索引頁的年齡更輕,那么處理500轉(zhuǎn)到步驟520。在步驟520,NVM接口可以將索引頁復(fù)制到易失性存儲(chǔ)器(例如,圖1的存儲(chǔ)器114)中的索引表高速緩存(例如,圖3的索引表高速緩存304)。在步驟522,NVM接口可以利用所選擇的數(shù)據(jù)塊,更新高速緩存的一個(gè)或多個(gè)條目。例如,利用所選擇的數(shù)據(jù)塊,NVM接口可以重建與索引頁的一個(gè)或多個(gè)邏輯地址對(duì)應(yīng)的邏輯-物理映射。在某些實(shí)施例中,NVM接口可以通過讀取所選擇的數(shù)據(jù)塊的塊TOC(例如,圖3的數(shù)據(jù)塊I的塊TOCl,或者數(shù)據(jù)塊N的塊TOC N),來重建邏輯-物理映射。例如,如果塊TOC包括頁更新的相對(duì)年齡以及邏輯-物理映射,那么NVM接口可以僅僅通過參考?jí)KTOC來獲取更新后的邏輯-物理映射。在其它實(shí)施例中,NVM接口可以通過掃描存儲(chǔ)在所選擇的數(shù)據(jù)塊中的元數(shù)據(jù),來重建邏輯-物理映射。例如,如果塊TOC只包括編程頁的邏輯地址,NVM接口通過掃描元數(shù)據(jù)來確定頁的年齡,并獲得更新后的邏輯-物理映射。在更新了索引頁的一個(gè)或多個(gè)條目之后,處理500可以轉(zhuǎn)到步驟522。在某些實(shí)施例中,NVM接口可以利用重建的邏輯-物理映射來更新索引表(例如,圖3的索引表306)。處理500接著轉(zhuǎn)到步驟518,在此NVM接口可以確定是否存在其它數(shù)據(jù)塊。現(xiàn)在參考圖6,示出了用于利用上下文信息處理未完全關(guān)閉事件的示例性處理600的流程圖。特別地,NVM接口可以通過利用存儲(chǔ)在NVM(圖1的NVM120,或者圖2的NVM220)中的上下文信息,重建邏輯-物理映射。如在此所用,“上下文信息”可以指與在特定時(shí)間點(diǎn)上整個(gè)NVM狀態(tài)相關(guān)的信息。例如,上下文信息可以包括在特定時(shí)間點(diǎn)上用于NVM的全部數(shù)據(jù)塊的邏輯-物理映射。在某些實(shí)施例中,上下文信息可以被存儲(chǔ)在NVM的一個(gè)或多個(gè)指定塊中。例如,回到圖3,上下文塊310可以是NVM的用來存儲(chǔ)上下文信息的塊?;氐綀D6,處理600可以在步驟602開始,在步驟604,NVM接口可以檢測未完全關(guān)閉事件已經(jīng)發(fā)生了。接著在步驟606,NVM接口可以搜索在未完全關(guān)閉事件之前存儲(chǔ)在NVM中(例如,圖3的上下文塊310中)的上下文信息。也就是,NVM接口可以獲得在未完全關(guān)閉事件發(fā)生之前保存在NVM中的上下文信息的最近副本。在搜索上下文信息之后,處理600可以轉(zhuǎn)到步驟608。在步驟608,NVM接口可以加載上下文信息(例如,上下文信息的最新副本)到易失性存儲(chǔ)器(例如,圖1的存儲(chǔ)器114)中。例如,NVM接口可以加載上下文信息到高速緩存(例如,圖3的索引表高速緩存304)和/或易失性存儲(chǔ)器的查找表(例如,圖3的查找表302)中。接著在步驟610,NVM接口可以識(shí)別NVM的年齡比加載的上下文信息(例如,一個(gè)或多個(gè)數(shù)據(jù)塊的計(jì)數(shù)器,其大于存儲(chǔ)了上下文信息的上下文塊的計(jì)數(shù)器)的年齡更輕的一個(gè)或多個(gè)數(shù)據(jù)塊。特別地,這些數(shù)據(jù)塊可以包括更新后的邏輯-物理映射,其還沒有被上下文信息捕獲。處理600可以接著進(jìn)行到步驟612。
在步驟612,NVM接口可以執(zhí)行一個(gè)或多個(gè)數(shù)據(jù)塊的完全恢復(fù)。例如,NVM接口可 以掃描一個(gè)或多個(gè)數(shù)據(jù)塊(例如,讀取一個(gè)或多個(gè)塊TOC和/或數(shù)據(jù)塊的元數(shù)據(jù))以獲得 邏輯-物理映射。如果上下文信息最近已經(jīng)被保存了,那么用于重建邏輯-物理映射的時(shí) 間就減少了,這是因?yàn)橥耆謴?fù)只是需要對(duì)數(shù)據(jù)塊的一個(gè)小子集執(zhí)行。
處理600接著在步驟614結(jié)束。在2009年7月24日Wakrat等人提交的標(biāo)題為 “Restorelndex Page”的美國專利申請(qǐng)No. 12/509,071中記載了全部恢復(fù)處理的更詳細(xì)描 述,其全部內(nèi)容在此結(jié)合以供參考。
現(xiàn)在參考圖7,示出了用于利用混合方法來處理未完全關(guān)閉事件的示例性處理 700的流程圖。特別地,NVM接口可以通過利用上下文信息和索引頁二者,重建邏輯-物理 映射。
處理700可以在步驟702開始,在步驟704,NVM接口可以檢測未完全關(guān)閉事件已 經(jīng)發(fā)生。接著在步驟706,NVM接口可以利用上下文信息獲得NVM的一組數(shù)據(jù)塊的邏輯-物 理映射。例如,該數(shù)據(jù)塊組可以是自從上下文信息被最后保存以來還沒有被更新的那些數(shù) 據(jù)塊。
繼續(xù)到步驟708,NVM接口可以重建用于NVM的剩余數(shù)據(jù)塊的邏輯-物理映射。例 如,NVM接口可以利用一個(gè)或多個(gè)索引頁,重建邏輯-物理映射。剩余數(shù)據(jù)塊可以包括還沒 有被上下文信息捕獲的那些數(shù)據(jù)塊(例如,自從上下文信息被最后保存以來已經(jīng)被更新的 數(shù)據(jù)塊)。
為了為剩余數(shù)據(jù)塊重建邏輯-物理映射,NVM接口可以使用與處理400 (圖4)和 處理500(圖5)類似的處理。例如,一個(gè)或多個(gè)索引頁可以存儲(chǔ)剩余數(shù)據(jù)塊的物理地址和 對(duì)應(yīng)邏輯地址之間的映射。特別地,NVM接口可以確定一個(gè)或多個(gè)索引頁的年齡是否比對(duì) 應(yīng)數(shù)據(jù)頁的年齡更老。
如果NVM接口確定一個(gè)或多個(gè)索引頁的年齡比對(duì)應(yīng)數(shù)據(jù)頁的年齡更老,那么NVM 接口可以通過掃描剩余數(shù)據(jù)塊的至少一個(gè)子集來執(zhí)行完全恢復(fù)。通過掃描剩余數(shù)據(jù)塊的 至少一個(gè)子集,NVM接口可以獲得對(duì)應(yīng)于一個(gè)或多個(gè)索引頁的邏輯地址的邏輯-物理映射。 NVM接口可以接著復(fù)制索引頁到易失性存儲(chǔ)器的高速緩存(例如,圖3的索引表高速緩存 304),并基于邏輯-物理映射更新高速緩存的條目。處理700可以接著在步驟710結(jié)束。
因此,由于上下文信息可以與索引頁結(jié)合用來重建邏輯-物理映射,系統(tǒng)重啟之 后需要處理的信息量可以進(jìn)一步減少。特別地,全部恢復(fù)可能只需要針對(duì)全部數(shù)據(jù)塊的一 個(gè)小子集執(zhí)行。這可以提高系統(tǒng)效率,并減少從未完全關(guān)閉恢復(fù)所必需的時(shí)間量。
現(xiàn)在參考圖8,示出了在用于訪問非易失性存儲(chǔ)器(“NVM”)的存儲(chǔ)器接口中的用 于處理未完全關(guān)閉事件的示例性控制電路的框圖。根據(jù)本發(fā)明一個(gè)實(shí)施例,控制電路包括 檢測裝置,可操作來檢測未完全關(guān)閉事件已經(jīng)發(fā)生;搜索裝置,可操作來搜索在所述未完全 關(guān)閉事件之前存儲(chǔ)在所述NVM中的上下文信息,其中所述上下文信息被存儲(chǔ)在所述NVM的 塊中;加載裝置,可操作來將所述上下文信息加載到易失性存儲(chǔ)器中;識(shí)別裝置,可操作來 識(shí)別所述NVM的年齡比所加載的上下文信息的年齡更輕的至少一個(gè)數(shù)據(jù)塊;和執(zhí)行裝置, 可操作來執(zhí)行所述至少一個(gè)數(shù)據(jù)塊的完全恢復(fù)。
現(xiàn)在參考圖9,示出了在用于訪問非易失性存儲(chǔ)器(“NVM”)的存儲(chǔ)器接口中的用于處理未完全關(guān)閉事件的另一示例性控制電路的框圖。根據(jù)本發(fā)明一個(gè)實(shí)施例,非易失性存儲(chǔ)器(“NVM”)包括具有多個(gè)索引頁的索引塊以及包括上下文信息的上下文塊。所述控制電路包括檢測裝置,可操作來檢測未完全關(guān)閉事件已經(jīng)發(fā)生;第一獲取裝置,可操作來利用所述上下文信息,獲取所述NVM的一組數(shù)據(jù)塊的邏輯-物理映射;以及重建裝置,可操作來至少部分地基于所述多個(gè)索引頁的至少一個(gè)索引頁,重建所述NVM的剩余數(shù)據(jù)塊的邏輯-物理映射。根據(jù)本發(fā)明的另一實(shí)施例,所述控制電路還包括第一確定裝置,可操作來確定所述至少一個(gè)索引頁的年齡是否比對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老;以及掃描裝置,可操作來響應(yīng)于確定所述至少一個(gè)索引頁的年齡比所述對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老,掃描所述NVM的所述剩余數(shù)據(jù)塊的至少一個(gè)子集。根據(jù)本發(fā)明的另一實(shí)施例,所述控制電路還包括第二獲取裝置,可操作來獲取與所述至少一個(gè)索引頁的邏輯地址對(duì)應(yīng)的邏輯-物理映射;復(fù)制裝置,可操作來將所述至少一個(gè)索引頁復(fù)制到所述高速緩存;以及更新裝置,可操作來基于所述邏輯-物理映射,更新所述高速緩存的至少一個(gè)條目。上面已參照本發(fā)明實(shí)施例的方法和裝置(系統(tǒng))的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。應(yīng)該理解,圖4-7的處理400、500、600和700僅僅是示例性的??梢詫?duì)任意步驟進(jìn)行刪除、修改或者組合,也可以增加任意的其它步驟,而不脫離本發(fā)明的范圍。描述本發(fā)明的所述實(shí)施例是為了示例的目的,而不是限制的目的。
權(quán)利要求
1.一種用于從設(shè)備故障進(jìn)行恢復(fù)的方法,所述方法包括檢測未完全關(guān)閉事件已經(jīng)發(fā)生;掃描非易失性存儲(chǔ)器(“NVM”)的多個(gè)索引頁以獲取所述多個(gè)索引頁的年齡;將所述多個(gè)索引頁的年齡與所述NVM的與所述多個(gè)索引頁對(duì)應(yīng)的數(shù)據(jù)頁的年齡進(jìn)行比較;以及至少部分地基于所述比較,確定所述多個(gè)索引頁的每個(gè)索引頁的可靠性。
2.如權(quán)利要求1所述的方法,其中所述多個(gè)索引頁的每個(gè)索引頁將至少一個(gè)邏輯地址映射到所述數(shù)據(jù)頁的至少一個(gè)物理地址。
3.如權(quán)利要求1或2所述的方法,其中所述比較還包括對(duì)于所述多個(gè)索引頁的每個(gè)索引頁,確定所述索引頁的年齡是否比對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老;以及響應(yīng)于確定所述索引頁的年齡不比所述對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老,確定所述索引頁是可靠的。
4.如權(quán)利要求3所述的方法,其中響應(yīng)于確定所述索引頁的年齡比所述對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老,確定所述索引頁是不可靠的。
5.如權(quán)利要求4所述的方法,還包括掃描所述NVM的具有年齡比所述索引頁的年齡更輕的數(shù)據(jù)頁的至少一個(gè)數(shù)據(jù)塊。
6.如權(quán)利要求5所述的方法,還包括確定所述至少一個(gè)數(shù)據(jù)塊包括與所述索引頁相關(guān)的至少一個(gè)數(shù)據(jù)頁;確定所述至少一個(gè)數(shù)據(jù)頁的年齡是否比所述索引頁的年齡更輕;以及響應(yīng)于確定所述至少一個(gè)數(shù)據(jù)頁的年齡比所述索引頁的年齡更輕,將所述索引頁復(fù)制到易失性存儲(chǔ)器的高速緩存中。
7.如權(quán)利要求6所述的方法,還包括利用所述至少一個(gè)數(shù)據(jù)塊,更新所述高速緩存的至少一個(gè)條目。
8.如權(quán)利要求7所述的方法,其中所述更新還包括利用所述至少一個(gè)數(shù)據(jù)塊,重建與所述索引頁的邏輯地址對(duì)應(yīng)的邏輯-物理映射。
9.如權(quán)利要求8所述的方法,其中所述重建還包括掃描存儲(chǔ)在所述NVM的至少一個(gè)數(shù)據(jù)塊中的元數(shù)據(jù)。
10.如權(quán)利要求8所述的方法,其中所述重建還包括讀取所述至少一個(gè)數(shù)據(jù)塊的內(nèi)容的塊表。
11.一種用于訪問非易失性存儲(chǔ)器(“NVM”)的存儲(chǔ)器接口,所述存儲(chǔ)器接口包括用于處理未完全關(guān)閉事件的控制電路,所述控制電路包括檢測裝置,可操作來檢測未完全關(guān)閉事件已經(jīng)發(fā)生;搜索裝置,可操作來搜索在所述未完全關(guān)閉事件之前存儲(chǔ)在所述NVM中的上下文信息,其中所述上下文信息被存儲(chǔ)在所述NVM的塊中;加載裝置,可操作來將所述上下文信息加載到易失性存儲(chǔ)器中;識(shí)別裝置,可操作來識(shí)別所述NVM的年齡比所加載的上下文信息的年齡更輕的至少一個(gè)數(shù)據(jù)塊;和執(zhí)行裝置,可操作來執(zhí)行所述至少一個(gè)數(shù)據(jù)塊的完全恢復(fù)。
12.如權(quán)利要求11所述的存儲(chǔ)器接口,其中所述上下文信息包括在特定時(shí)間的所述 NVM的多個(gè)數(shù)據(jù)塊的邏輯-物理映射。
13.如權(quán)利要求11或12所述的存儲(chǔ)器接口,其中所述加載裝置可操作來將所述上下文信息加載到存儲(chǔ)在所述易失性存儲(chǔ)器中的高速緩存中。
14.如權(quán)利要求11或12所述的存儲(chǔ)器接口,其中所述加載裝置可操作來將所述上下文信息加載到存儲(chǔ)在所述易失性存儲(chǔ)器中的查找表中。
15.—種系統(tǒng),包括非易失性存儲(chǔ)器(“NVM”),包括具有多個(gè)索引頁的索引塊以及包括上下文信息的上下文塊;以及用于處理未完全關(guān)閉事件的控制電路,所述控制電路包括檢測裝置,可操作來檢測未完全關(guān)閉事件已經(jīng)發(fā)生;第一獲取裝置,可操作來利用所述上下文信息,獲取所述NVM的一組數(shù)據(jù)塊的邏輯-物理映射;以及重建裝置,可操作來至少部分地基于所述多個(gè)索引頁的至少一個(gè)索引頁,重建所述NVM 的剩余數(shù)據(jù)塊的邏輯-物理映射。
16.如權(quán)利要求15所述的系統(tǒng),其中所述多個(gè)索引頁的每個(gè)索引頁將至少一個(gè)邏輯地址映射到所述剩余數(shù)據(jù)塊的數(shù)據(jù)頁的至少一個(gè)物理地址。
17.如權(quán)利要求15或16所述的系統(tǒng),其中所述控制電路還包括第一確定裝置,可操作來確定所述至少一個(gè)索引頁的年齡是否比對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老;以及掃描裝置,可操作來響應(yīng)于確定所述至少一個(gè)索引頁的年齡比所述對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老,掃描所述NVM的所述剩余數(shù)據(jù)塊的至少一個(gè)子集。
18.如權(quán)利要求17所述的系統(tǒng),其中所述剩余數(shù)據(jù)塊的至少一個(gè)子集具有年齡比所述至少一個(gè)索引頁的年齡更輕的數(shù)據(jù)頁。
19.如權(quán)利要求17所述的系統(tǒng),還包括具有高速緩存的易失性存儲(chǔ)器,其中所述控制電路還包括第二獲取裝置,可操作來獲取與所述至少一個(gè)索引頁的邏輯地址對(duì)應(yīng)的邏輯-物理映射;復(fù)制裝置,可操作來將所述至少一個(gè)索引頁復(fù)制到所述高速緩存;以及更新裝置,可操作來基于所述邏輯-物理映射,更新所述高速緩存的至少一個(gè)條目。
20.一種用于從設(shè)備故障進(jìn)行恢復(fù)的系統(tǒng),所述系統(tǒng)包括用于檢測未完全關(guān)閉事件已經(jīng)發(fā)生的裝置;用于掃描非易失性存儲(chǔ)器(“NVM”)的多個(gè)索引頁以獲取所述多個(gè)索引頁的年齡的裝置;用于將所述多個(gè)索引頁的年齡與所述NVM的與所述多個(gè)索引頁對(duì)應(yīng)的數(shù)據(jù)頁的年齡進(jìn)行比較的裝置;以及用于至少部分地基于所述比較,確定所述多個(gè)索引頁的每個(gè)索引頁的可靠性的裝置。
21.如權(quán)利要求20所述的系統(tǒng),其中所述多個(gè)索引頁的每個(gè)索引頁將至少一個(gè)邏輯地址映射到所述數(shù)據(jù)頁的至少一個(gè)物理地址。
22.如權(quán)利要求20或21所述的系統(tǒng),其中所述用于比較的裝置還包括用于對(duì)于所述多個(gè)索引頁的每個(gè)索引頁,確定所述索引頁的年齡是否比對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老的裝置;以及用于響應(yīng)于確定所述索引頁的年齡不比所述對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老,確定所述索引頁是可靠的裝置。
23.如權(quán)利要求22所述的系統(tǒng),其中所述用于比較的裝置還包括用于響應(yīng)于確定所述索引頁的年齡比所述對(duì)應(yīng)數(shù)據(jù)頁的多個(gè)年齡更老,確定所述索引頁是不可靠的裝置。
24.如權(quán)利要求23所述的系統(tǒng),還包括用于掃描所述NVM的具有年齡比所述索引頁的年齡更輕的數(shù)據(jù)頁的至少一個(gè)數(shù)據(jù)塊的裝置。
25.如權(quán)利要求24所述的系統(tǒng),還包括用于確定所述至少一個(gè)數(shù)據(jù)塊包括與所述索引頁相關(guān)的至少一個(gè)數(shù)據(jù)頁的裝置;用于確定所述至少一個(gè)數(shù)據(jù)頁的年齡是否比所述索引頁的年齡更輕的裝置;以及用于響應(yīng)于確定所述至少一個(gè)數(shù)據(jù)頁的年齡比所述索引頁的年齡更輕,將所述索引頁復(fù)制到易失性存儲(chǔ)器的高速緩存中的裝置。
26.如權(quán)利要求25所述的系統(tǒng),還包括用于利用所述至少一個(gè)數(shù)據(jù)塊,更新所述高速緩存的至少一個(gè)條目的裝置。
27.如權(quán)利要求26所述的系統(tǒng),其中所述用于更新的裝置還包括用于利用所述至少一個(gè)數(shù)據(jù)塊,重建與所述索引頁的邏輯地址對(duì)應(yīng)的邏輯-物理映射的裝置。
28.如權(quán)利要求27所述的系統(tǒng),其中所述用于重建的裝置還包括用于掃描存儲(chǔ)在所述NVM的至少一個(gè)數(shù)據(jù)塊中的元數(shù)據(jù)的裝置。
29.如權(quán)利要求27所述的系統(tǒng),其中所述用于重建的裝置還包括用于讀取所述至少一個(gè)數(shù)據(jù)塊的內(nèi)容的塊表的裝置。
全文摘要
公開了系統(tǒng)和方法,用于處理具有非易失性存儲(chǔ)器(“NVM”)的系統(tǒng)的未完全關(guān)閉。在某些實(shí)施例中,該系統(tǒng)可以利用從索引頁獲取的信息,以便于在未完全關(guān)閉事件之后更如高效地重建邏輯-物理映射。在其它實(shí)施例中,該系統(tǒng)可以通過利用存儲(chǔ)在NVM中的上下文信息來重建邏輯-物理映射。在另外的實(shí)施例中,上下文信息可以結(jié)合索引頁使用,在未完全關(guān)閉之后重建邏輯-物理映射。
文檔編號(hào)G06F12/02GK102999430SQ201210448689
公開日2013年3月27日 申請(qǐng)日期2012年9月14日 優(yōu)先權(quán)日2011年9月16日
發(fā)明者V·科麥爾尼斯基 申請(qǐng)人:蘋果公司