非易失性存儲的自身日志記錄和層級一致性相關(guān)申請的交叉引用在所附的申請數(shù)據(jù)表、請求書和傳送信(視情況,如果有的話)中提出了對該申請的優(yōu)先權(quán)要求。在即時(shí)申請的類型所允許的范圍內(nèi),本申請為了所有目的通過引用而合并了以下申請,這些以下申請全部由在提出本發(fā)明時(shí)的即時(shí)申請共有:于2011年10月5日提交的美國臨時(shí)申請(案號為SF-10-06,并且序列號為61/543,707),第一署名發(fā)明人為EarlT.COHEN,且題為“SELF-JOURNALINGANDHIERARCHICALCONSISTENCYFORNON-VOLATILESTORAGE”。技術(shù)領(lǐng)域非易失性存儲技術(shù)及制造的進(jìn)步對于提供成本、可盈利性、性能、效率和使用實(shí)用性的提高是必要的。
背景技術(shù):除非被明確認(rèn)定為被公開或眾所周知,否則為了上下文、定義或比較的目的而包括的本文所提到的技術(shù)和概念不應(yīng)被解釋為承認(rèn)這些技術(shù)和概念是以前公知的或者是現(xiàn)有技術(shù)的一部分。為了所有目的,通過引用將本文中所引用的包括專利、專利申請和出版物的所有參考文獻(xiàn)(如有的話)的全部內(nèi)容無論是否明確結(jié)合都為了全部目的通過引用結(jié)合于此。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明可以以多種方式實(shí)現(xiàn),例如作為處理、制造物、裝置、系統(tǒng)、組合物和諸如計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)可讀介質(zhì)(例如,光學(xué)和/或磁性大容量存儲設(shè)備中的諸如磁盤的介質(zhì),或具有諸如閃存的非易失性存儲器的集成電路)或通過光學(xué)或電子通信鏈路發(fā)送程序指令的計(jì)算機(jī)網(wǎng)絡(luò)。具體實(shí)施方式提供了能實(shí)現(xiàn)在上文認(rèn)定的領(lǐng)域中的成本的改善、盈利、性能、效率和使用實(shí)用性的提高的本發(fā)明的一種或多種實(shí)施方式的論述。具體實(shí)施方式包括用于促進(jìn)對具體實(shí)施方式的其余部分的理解的介紹。該介紹包括根據(jù)本文描述的概念的系統(tǒng)、方法、制品和計(jì)算機(jī)可讀介質(zhì)中的一個(gè)或多個(gè)的示例性實(shí)施方式。如在結(jié)論中更詳細(xì)討論,本發(fā)明涵蓋所提出的權(quán)利要求的范圍內(nèi)的所有可能修改和變更。附圖說明圖1A示出了包括使用自身日志記錄和層級一致性來管理諸如閃存的SSD的非易失性存儲的控制器的固態(tài)磁盤(SSD)的實(shí)施方式的所選細(xì)節(jié)。圖1B示出了包括圖1A的SSD的一個(gè)或多個(gè)示例的系統(tǒng)的各種實(shí)施方式的所選細(xì)節(jié)。圖2示出了映射邏輯塊地址(LBA)的邏輯頁面號(LPN)部分的實(shí)施方式的所選細(xì)節(jié)。圖3示出了訪問在讀取單元地址的非易失性存儲器(NVM)以產(chǎn)生被組織為各種讀取單元的集體具有以讀取單元的量來測量的長度的讀取數(shù)據(jù)的實(shí)施方式的所選細(xì)節(jié)。圖4A示出了讀取單元的一個(gè)實(shí)施方式的所選細(xì)節(jié)。圖4B示出了讀取單元的另一實(shí)施方式的所選細(xì)節(jié)。圖5示出了具有大量域的報(bào)頭的實(shí)施方式的所選細(xì)節(jié)。圖6示出了多個(gè)NVM設(shè)備的塊、頁面和讀取單元的所選細(xì)節(jié)。圖7示出了R塊的實(shí)施方式的所選細(xì)節(jié)。圖8示出了經(jīng)由具有第一級映射(FLM)和一個(gè)或多個(gè)第二級映射(SLM)頁面的二級映射將LBA映射到NVM中所存儲的邏輯塊(LB)的實(shí)施方式的所選細(xì)節(jié)。圖9示出了包括寫入SLM和FLM信息以及各種形式的自身日志記錄和時(shí)間戳記錄的接收并將數(shù)據(jù)從主機(jī)寫入NVM的各種實(shí)施方式的所選細(xì)節(jié)。圖10示出了將主機(jī)和/或再循環(huán)數(shù)據(jù)、映射信息以及檢查點(diǎn)先進(jìn)先出(FIFO)部分流至NVM的各種實(shí)施方式的所選細(xì)節(jié)。圖11示出了例如在故障之后恢復(fù)和/或重建FLM和SLM信息和其他NVM管理數(shù)據(jù)結(jié)構(gòu)的所選細(xì)節(jié)。附圖中的參考符號列表具體實(shí)施方式以下將伴隨示出本發(fā)明的所選細(xì)節(jié)的附圖一起提供對本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的詳細(xì)描述。將結(jié)合實(shí)施方式來描述本發(fā)明。本文的實(shí)施方式應(yīng)被理解為僅是示例性的,本發(fā)明明確地不限于本文中的任何或所有實(shí)施方式或者受到其限制,且本發(fā)明涵蓋許多替代、修改和等同物。為避免闡述單調(diào),各種字標(biāo)簽(諸如:第一、最后、某些、各種、進(jìn)一步、其他、具體的、選擇、一些和顯著的)可應(yīng)用于分開的實(shí)施方式組;如本文所使用的,這些標(biāo)簽并明確地不意在表達(dá)質(zhì)量或任何形式的偏愛或偏見,而只是為了方便在獨(dú)立組之間區(qū)分。所公開的處理的一些操作順序在本發(fā)明的范圍內(nèi)是可變的。每當(dāng)多個(gè)實(shí)施方式用于描述處理、方法和/或程序指令特征的變化的情況下,其他實(shí)施方式均被設(shè)想為根據(jù)預(yù)定的或動態(tài)確定的標(biāo)準(zhǔn)來執(zhí)行分別對應(yīng)于多個(gè)實(shí)施方式中的多個(gè)的多個(gè)操作模式中的一個(gè)的靜態(tài)和/或動態(tài)選擇。大量具體細(xì)節(jié)在以下描述中提出,以提供對本發(fā)明的透徹理解。為示例的目的而提供細(xì)節(jié),且本發(fā)明在沒有一些或所有細(xì)節(jié)的情況下根據(jù)權(quán)利要求來實(shí)踐。為了清晰起見,與本發(fā)明相關(guān)的技術(shù)領(lǐng)域中已知的技術(shù)資料未被詳細(xì)描述,使得本發(fā)明未被不必要地模糊。緒論本緒論僅為便于更迅速理解具體實(shí)施方式而包括;因?yàn)槿魏尉w論的段落必須是整個(gè)主題的縮略觀點(diǎn)且不表示詳盡或限制描述的意思,所以本發(fā)明不限于在緒論中提出的概念(包括明確的示例,如有的話)。例如,以下緒論僅對某些實(shí)施方式提供受空間和組織限制的概述信息。在整個(gè)說明書的其余部分中討論了許多其他實(shí)施方式(包括權(quán)利要求將最終采用的那些)??s寫本文中所定義的各種簡略縮寫(例如,首字母縮寫詞)中的至少一些是指本文所使用的特定元件??s略語描述AHCI高級主機(jī)控制器接口API應(yīng)用程序接口ATA高級技術(shù)附件(AT附件)BCH博斯-喬赫里-霍克文黑姆碼CAM內(nèi)容可尋址存儲器CD光盤CF緊湊式閃存CMOS互補(bǔ)金屬氧化物半導(dǎo)體CPU中央處理器CRC循環(huán)冗余校驗(yàn)DAS直接附接存儲DDR雙倍數(shù)據(jù)速率DMA直接存儲器訪問DNA直接NAND訪問DRAM動態(tài)隨機(jī)存取存儲器DVD數(shù)字多用途光盤或數(shù)字視頻光盤DVR數(shù)字視頻錄像機(jī)ECC錯(cuò)誤校正碼eMMC嵌入式多媒體卡eSATA外部串行高級技術(shù)附件FIFO先進(jìn)先出FLM一級映射FUA強(qiáng)制單元訪問GPS全球定位系統(tǒng)HDD硬盤驅(qū)動器I/O輸入/輸出IC集成電路IDE集成驅(qū)動電子裝置JPEG聯(lián)合圖像專家組LAN局域網(wǎng)LB邏輯塊LBA邏輯塊地址LDPC低密度奇偶校驗(yàn)LPN邏輯頁面號MLC多層單元MMC多媒體卡MPEG運(yùn)動圖像專家組NAS網(wǎng)絡(luò)附接存儲NCQ原生命令隊(duì)列NVM非易失性存儲器ONA優(yōu)化NAND訪問ONFI開放NAND閃存接口OS操作系統(tǒng)PC個(gè)人計(jì)算機(jī)PCIe快速外圍組件互連(快速PCT)PDA個(gè)人數(shù)字助理PHY物理接口POS銷售點(diǎn)RAID廉價(jià)/獨(dú)立磁盤冗余陣列RASIE獨(dú)立硅片冗余陣列ReRAM阻變隨機(jī)存取存儲器RS里德-索羅蒙碼SAN存儲附接網(wǎng)絡(luò)SAS串行連接小型計(jì)算機(jī)系統(tǒng)接口(串行SCSI)SATA串行高級技術(shù)附加(串行ATA)SCSI小型計(jì)算機(jī)系統(tǒng)接口SD安全數(shù)字SDR單倍數(shù)據(jù)速率SLC單層單元SLM二級映射SMART自監(jiān)測分析和報(bào)告技術(shù)SRAM靜態(tài)隨機(jī)存取存儲器SSD固態(tài)磁盤/驅(qū)動器UFS統(tǒng)一閃存存儲器USB通用串行總線VF虛擬函數(shù)WAN廣域網(wǎng)某些非易失性存儲系統(tǒng)(諸如以閃存作為NVM實(shí)現(xiàn)的某些SSD)的第一挑戰(zhàn)是如何有效且可靠地為存儲在非易失性存儲系統(tǒng)的NVM中的數(shù)據(jù)提供數(shù)據(jù)完整性。第一挑戰(zhàn)的示例是在從主機(jī)(例如,計(jì)算主機(jī)或接口主機(jī))至SSD發(fā)送寫入時(shí)到將寫入有關(guān)的所有效果保存在非易失性存儲系統(tǒng)的NVM(例如,閃存)中時(shí),以一致的方式來維持與控制非易失性存儲系統(tǒng)(例如,SSD的控制器中包括的)相關(guān)的數(shù)據(jù)結(jié)構(gòu)。例如,寫入和保存之間發(fā)生的故障(例如,死機(jī)、電源故障或其中的SSD或電路的各種類型的故障)表示非易失性存儲系統(tǒng)能夠進(jìn)行處理(例如,經(jīng)由一項(xiàng)或多項(xiàng)恢復(fù)技術(shù))以確保數(shù)據(jù)完整性的情形。第一挑戰(zhàn)的另一示例是有效處理高可用性應(yīng)用程序的寫入(例如,具有FUA位組的SATA寫入),其中主機(jī)要求高可用性寫入(在文中其他地方有時(shí)稱為“FUA”寫入)被公認(rèn)為僅在無錯(cuò)誤地完成之后由存儲系統(tǒng)完成。如果高可用性寫入的延遲被最小化,則會產(chǎn)生較高的性能。要注意的是,除FUA寫入之外的全部(在本文其他地方有時(shí)稱為“非FUA”寫入)都被公認(rèn)為在某些實(shí)施方式和/或使用場景下盡管完成,但在發(fā)生故障時(shí)甚至也無法保證非FUA寫入的某些數(shù)據(jù)保存在NVM中。設(shè)想實(shí)施方式支持高可用性寫入和各種協(xié)議中的其他類型的寫入,這些協(xié)議諸如SAS、SATA、光纖通道、PCIe和啟用主機(jī)與存儲系統(tǒng)之間的存儲通信的任何協(xié)議。某些NVM技術(shù)(諸如某些類型的NAND閃存)中的第二個(gè)挑戰(zhàn)是如何經(jīng)由閃存中的數(shù)據(jù)位置的可靠動態(tài)映射來可靠地獲得對某些非易失性存儲系統(tǒng)(例如,某些SSD實(shí)現(xiàn))來說足夠的性能。由于閃存僅在擦除之后可寫入,因此執(zhí)行動態(tài)映射。例如,當(dāng)SSD從主機(jī)接收具體LBA的寫入時(shí),分配新頁面(或在某些實(shí)施方式中,一個(gè)或多個(gè)頁面的一個(gè)或多個(gè)部分諸如一個(gè)或多個(gè)讀取單元)來存儲寫入的寫入數(shù)據(jù)。讀取單元的示例是與獨(dú)立較低級ECC處理兼容的閃存的最小部分(例如,單個(gè)讀取單元足以使用較低級ECC來校正單個(gè)讀取單元中的錯(cuò)誤)。使具體LBA與新頁面(或一個(gè)或多個(gè)頁面的部分諸如一個(gè)或多個(gè)讀取單元)相關(guān)聯(lián)的映射經(jīng)更新使得從主機(jī)至具體LBA的未來讀取操作返回寫入數(shù)據(jù)。在某些實(shí)施方式中,動態(tài)映射經(jīng)由一級映射進(jìn)行。例如,動態(tài)映射包括將LBA應(yīng)用于單個(gè)表并獲得存儲有與LBA對應(yīng)的數(shù)據(jù)的NVM中的位置。在某些實(shí)施方式中,映射經(jīng)由二級映射進(jìn)行。例如,在概念上,動態(tài)映射包括將LBA應(yīng)用于第一表(例如,F(xiàn)LM),獲得第二表的一部分(例如,SLM的一部分)的指針,并且然后將LBA應(yīng)用于該部分并獲得存儲有與LBA對應(yīng)的數(shù)據(jù)的NVM中的位置。第二挑戰(zhàn)的示例是即便例如在用于寫入的數(shù)據(jù)寫入和映射更新之間發(fā)生故障也要維持并管理映射。例如,在至少一部分情況下,如果在發(fā)生故障之前寫入數(shù)據(jù)保存在閃存中但映射(例如,與保存寫入數(shù)據(jù)對應(yīng)的映射的一種或多種更新)沒有保存在閃存中,則執(zhí)行技術(shù)(諸如在重置和/或再次施加功率之后)以使得能夠從閃存中恢復(fù)保存的寫入數(shù)據(jù)的至少一部分。在某些實(shí)施方式和/或使用場景下,一旦將寫入數(shù)據(jù)非易失地保存就確認(rèn)FUA寫入,與任何對應(yīng)映射更新是否也非易失地保存無關(guān),這在某些情況下使得能夠改進(jìn)性能。在另一情況下,如果映射(或映射的一種或多種更新)保存到閃存但對應(yīng)寫入數(shù)據(jù)的至少一部分沒有保存到閃存(例如,由于故障),則執(zhí)行技術(shù)(諸如在重置和/或再次施加功率之后)以便識別映射(或映射的一種或多種更新)與已經(jīng)保存到閃存的數(shù)據(jù)不一致。例如,作出映射的一部分指向自擦除之后尚未被寫入或尚未被寫入對應(yīng)寫入數(shù)據(jù)的閃存的一部分的確定。在又一情況下,如果在相關(guān)聯(lián)寫入數(shù)據(jù)和對應(yīng)映射信息(或其任意更新)已經(jīng)保存在閃存中之后確認(rèn)FUA寫入,則在某些實(shí)施方式和/或使用場景下,產(chǎn)生相對較大的性能損失。相對較大的性能損失由于某些協(xié)議(例如,SATA)的有限的隊(duì)列、將寫入數(shù)據(jù)和映射信息寫入閃存的編程時(shí)間、以及減少寫入放大的積累映射寫入的能力的降低中的一個(gè)或多個(gè)而出現(xiàn)。在某些實(shí)施方式和/或使用場景下,前述挑戰(zhàn)中的一個(gè)或多個(gè)通過應(yīng)用于諸如用于SSD的非易失性存儲,或由SSD控制器或NVM(例如,閃存)控制器管理的自身日志記錄和/或?qū)蛹壱恢滦詠硖幚怼@?,?dāng)存在故障時(shí),自身日志記錄和/或?qū)蛹壱恢滦缘慕M合使得能夠整體或部分地重建映射信息。在某些情況下,使用自身日志記錄和層級一致性技術(shù)重建映射信息比不使用該技術(shù)重建更有效。再如,自身日志記錄和層級一致性的組合使得能夠進(jìn)行相對低延遲的FUA握手。在某些實(shí)施方式和/或使用場景下,自身日志記錄和/或?qū)蛹壱恢滦栽诟拍钌仙婕癗VM在其中進(jìn)行管理的單元(例如,本文其他地方描述的R塊)、如何寫入NVM管理單元(例如,記錄帶)以及如何管理管理單元的寫入(例如,作為流)。R塊的示例是NVM塊的集合(例如,來自SSD中的每個(gè)NVM芯片(die)的一個(gè)塊,而塊中的NVM位置以條帶形式寫入)。帶的示例是信息連續(xù)寫入其中(例如,按具體的時(shí)間順序),且可選地填充有具有相似屬性和/或特性的信息的R塊的集合。流的示例是以下記錄帶(band),該記錄帶被管理使得在該記錄帶內(nèi)按與為了寫入NVM而出現(xiàn)信息的相同順序?qū)⑿畔懭隢VM(例如,在較晚的時(shí)間出現(xiàn)的信息之前寫入在較早的時(shí)間出現(xiàn)的信息)。在概念上,寫入作為流來管理的記錄帶的信息以按時(shí)間順序組織的類似FIFO的方式流入NVM。因?yàn)槌晒懭刖唧wNVM芯片在諸如電源故障的某些情況下是不可預(yù)測的,所以在流的末端寫入的數(shù)據(jù)在某些情況下具有“孔”。例如,流中的最后被寫芯片(在電源故障之前)成功寫入,但具有流的數(shù)據(jù)的較早部分的先前芯片沒有成功寫入,從而在先前芯片的位置產(chǎn)生了孔(例如,無效的、不可校正的和/或缺失的數(shù)據(jù))。某些實(shí)施方式以多個(gè)流來操作。例如,流包括主機(jī)數(shù)據(jù)(例如,與來自主機(jī)的寫入命令相關(guān)聯(lián)的寫入數(shù)據(jù))和再循環(huán)數(shù)據(jù)(例如,從NVM的一部分移至另一部分以使NVM的較大連續(xù)部分可使用的數(shù)據(jù))的一個(gè)或多個(gè)數(shù)據(jù)流。例如,流包括用于映射信息(諸如用于確定NVM具體主機(jī)寫入數(shù)據(jù)被存儲在哪里)的一個(gè)或多個(gè)映射流。例如,流包括用于存儲數(shù)據(jù)結(jié)構(gòu)的整個(gè)或部分圖像的一個(gè)或多個(gè)檢查點(diǎn)流,該數(shù)據(jù)結(jié)構(gòu)用于管理NVM數(shù)據(jù)存儲(諸如映射信息和使用統(tǒng)計(jì)數(shù)據(jù))。自身日志記錄使得能夠僅使用在具體對象中可用的信息來恢復(fù)與具體對象一致的信息。例如,主機(jī)數(shù)據(jù)與識別主機(jī)數(shù)據(jù)與哪些LBA對應(yīng)的信息一起存儲在NVM中。再如,再循環(huán)數(shù)據(jù)與識別再循環(huán)數(shù)據(jù)與哪些LBA對應(yīng)的信息一起存儲在NVM中。在某些實(shí)施方式和/或使用場景下,自身日志記錄連同知道被寫入的所有數(shù)據(jù)的順序一起,可以完全恢復(fù)映射信息和其他數(shù)據(jù)結(jié)構(gòu)(盡管很慢)。例如,讀取SSD的所有(自身日志記錄的)數(shù)據(jù)可以重建使LBA與NVM中的物理位置相關(guān)聯(lián)的映射。層級一致性使得能夠確定數(shù)據(jù)結(jié)構(gòu)的哪個(gè)版本由另一個(gè)數(shù)據(jù)結(jié)構(gòu)的哪個(gè)版本來管理,版本例如是由于單獨(dú)寫入和/或設(shè)置檢查點(diǎn)的信息導(dǎo)致的。例如,數(shù)據(jù)流優(yōu)先于映射流,而映射流優(yōu)先于檢查點(diǎn)流。故障導(dǎo)致來自流的信息彼此相對無序地存儲在NVM中。與流中的信息一起存儲的時(shí)間標(biāo)記(例如,紀(jì)元報(bào)頭和/或時(shí)間戳)使得能夠確定存儲在NVM中的流信息的相對順序。在某些實(shí)施方式和/或使用場景下,與層級一致性相結(jié)合的自身日志記錄使得能夠完全、迅速恢復(fù)映射信息和其他數(shù)據(jù)結(jié)構(gòu)。例如,通過從映射流讀取映射的版本并使用僅從領(lǐng)先該映射版本的部分?jǐn)?shù)據(jù)流獲得的更新來更新映射,來快速恢復(fù)使LBA與NVM中的物理位置相關(guān)聯(lián)的映射。在某些實(shí)施方式中,層級一致性使得能夠使用滾動檢查點(diǎn)。諸如映射的數(shù)據(jù)結(jié)構(gòu)的滾動檢查點(diǎn)在分開的相應(yīng)時(shí)間保存數(shù)據(jù)結(jié)構(gòu)的部分的狀態(tài),使得在保存比數(shù)據(jù)結(jié)構(gòu)的滾動檢查點(diǎn)中的一個(gè)大的數(shù)字之后保存整個(gè)數(shù)據(jù)結(jié)構(gòu)。因?yàn)椴僮髟跐L動檢查點(diǎn)的保存之間繼續(xù),所以滾動檢查點(diǎn)中的每一個(gè)都是在數(shù)據(jù)結(jié)構(gòu)的相應(yīng)部分被滾動檢查點(diǎn)保存的相應(yīng)時(shí)間的數(shù)據(jù)結(jié)構(gòu)的相應(yīng)部分的快照。然而,不一定存在已經(jīng)保存的整個(gè)數(shù)據(jù)結(jié)構(gòu)的單個(gè)的時(shí)間一致的副本。在某些實(shí)施方式和/或使用場景下,與時(shí)間戳結(jié)合的層級一致性使得能夠從比包含數(shù)據(jù)結(jié)構(gòu)的流具有層級優(yōu)先的其他流中的滾動檢查點(diǎn)和信息恢復(fù)整個(gè)數(shù)據(jù)結(jié)構(gòu)的單一的時(shí)間一致的副本。在進(jìn)一步的實(shí)施方式和/或使用場景下,滾動檢查點(diǎn)的使用能夠諸如通過影響延遲、通過最小化正常處理由于檢查點(diǎn)設(shè)置導(dǎo)致的中斷和/或延時(shí)的持續(xù)時(shí)間,來使檢查點(diǎn)設(shè)置對系統(tǒng)行為的破壞性較小。在包括自身日志記錄和層級一致性的上下文中的恢復(fù)技術(shù)包括將檢查點(diǎn)存儲(滾動)至NVM,并且響應(yīng)于故障,處理存儲的(滾動的)檢查點(diǎn)以重建跟蹤LBA至NVM位置一致的映射信息。在各種實(shí)施方式中,數(shù)據(jù)流(例如具有主機(jī)寫入數(shù)據(jù)和再循環(huán)數(shù)據(jù))的數(shù)據(jù)頁面、映射流(例如具有SLM條目或其更新)的映射頁面以及NVM中存儲的檢查點(diǎn)流(例如具有FLM條目或其更新)的檢查點(diǎn)頁面中的一個(gè)或多個(gè)是自身日志記錄的。例如,頁面(如果存在的話)包含確保單獨(dú)的數(shù)據(jù)結(jié)構(gòu)的一致性所需的信息。但這并不意味著對諸如由時(shí)間標(biāo)記提供的時(shí)間觀有要求的數(shù)據(jù)結(jié)構(gòu)之間的一致性。數(shù)據(jù)帶(例如,包括數(shù)據(jù)頁面)和映射帶(例如,包括映射條目和/或更新)作為流來管理,并按時(shí)間順序(timeorder)組織(至少在流中)。在某些實(shí)施方式和/或使用場景下,諸如存儲在NVM中的每個(gè)主機(jī)頁面與包含主機(jī)頁面的主機(jī)頁面地址(諸如LBA)的報(bào)頭相關(guān)聯(lián)。因而,如果已將主機(jī)頁面寫入NVM,則相關(guān)聯(lián)的主機(jī)頁面地址(來自對應(yīng)報(bào)頭)表示被寫入的主機(jī)頁面是哪個(gè)主機(jī)頁面。如果與主機(jī)頁面的寫入對應(yīng)的SLM條目沒有記錄到NVM中(例如,在發(fā)生故障之前),則主機(jī)頁面本身包含足以重建SLM條目的信息(主機(jī)頁面地址)。在某些環(huán)境下,從數(shù)據(jù)容器重建數(shù)據(jù)的能力被稱為引用完整性。在某些實(shí)施方式中,層級一致性定義數(shù)據(jù)結(jié)構(gòu)的順序,使得在被單獨(dú)寫入和/或經(jīng)檢查點(diǎn)設(shè)置的多個(gè)數(shù)據(jù)結(jié)構(gòu)之中,可識別數(shù)據(jù)結(jié)構(gòu)中的最高優(yōu)先級數(shù)據(jù)結(jié)構(gòu)(或其一部分)。例如,當(dāng)數(shù)據(jù)帶、映射帶和檢查點(diǎn)FIFO全部一致時(shí)(例如,全部按時(shí)間順序),數(shù)據(jù)帶優(yōu)先于映射帶,并且映射帶優(yōu)先于檢查點(diǎn)FIFO。根據(jù)各種實(shí)施方式,映射是以下各項(xiàng)中的一個(gè)或多個(gè):使主機(jī)協(xié)議的LBA與NVM中的物理存儲地址相關(guān)聯(lián)的一級映射、二級映射、多級映射、直接映射、相關(guān)映射和任何其他構(gòu)件。例如,在某些實(shí)施方式中,二級映射包括使LBA的第一函數(shù)與多個(gè)二級映射頁面中的一個(gè)的NVM中的相應(yīng)地址相關(guān)聯(lián)的一級映射,并且二級映射中的每一個(gè)使LBA的第二函數(shù)與對應(yīng)于LBA的數(shù)據(jù)的NVM中的相應(yīng)地址相關(guān)聯(lián)。在進(jìn)一步的實(shí)施方式中,LBA的第一函數(shù)和LBA的第二函數(shù)的示例是除以每個(gè)二級映射頁面中所包括的條目的固定數(shù)量時(shí)獲得的商和余數(shù)。多個(gè)二級映射頁面統(tǒng)稱為二級映射。在本文中,對映射的一個(gè)或多個(gè)條目的引用指的是任意類型映射的一個(gè)或多個(gè)條目,該任意類型映射包括一級映射、二級映射的一級、二級映射的二級、多級映射的任意級或具有條目的任何其他類型的映射。根據(jù)各種實(shí)施方式,二級映射(或多級映射的較低級)的映射頁面的每一個(gè)滿足以下各項(xiàng)中的一項(xiàng)或多項(xiàng):包括與其他映射頁面相同數(shù)量的條目;包括與至少一部分其他映射頁面不同數(shù)量的條目;包括與其他映射頁面相同粒度(granularity)的條目;包括與其他映射頁面具有不同粒度的條目、包括全部具有相同粒度的條目;包括具有多個(gè)粒度的條目;包括指定映射頁面的格式和/或布局的各報(bào)頭;以及具有表示映射頁面的條目的任何其他格式、布局或組織。例如,第一二級映射頁面具有每條目4KB的粒度規(guī)格,第二二級映射頁面具有每條目8KB的粒度規(guī)格并且只具有第一二級映射頁面的條目的多少的一半。在進(jìn)一步的實(shí)施方式中,較高級映射的條目包括對應(yīng)的較低級映射頁面的格式和/或布局信息。例如,一級映射中的每個(gè)條目包括相關(guān)聯(lián)的二級映射頁面中的條目的粒度規(guī)格。在某些實(shí)施方式中,映射包括多個(gè)條目,每個(gè)條目使一個(gè)或多個(gè)LBA與信息相關(guān)聯(lián),該信息選擇性地包括存儲有LBA數(shù)據(jù)的NVM中的各自的位置。例如,LBA規(guī)定了512B扇區(qū),并且映射中的每個(gè)條目與LBA的對齊的八扇區(qū)(4KB)區(qū)域相關(guān)聯(lián)。根據(jù)各種實(shí)施方式,映射的條目的信息包括以下各項(xiàng)中的一個(gè)或多個(gè):NVM中的位置;NVM中讀取單元的地址;要讀取以獲得NVM中所存儲的相關(guān)聯(lián)的LBA的數(shù)據(jù)的讀取單元的數(shù)量;NVM中所存儲的相關(guān)聯(lián)的LBA的數(shù)據(jù)的大小,該大小的粒度任選地和/或可選地大于一個(gè)字節(jié);相關(guān)聯(lián)的LBA的數(shù)據(jù)不存在于NVM中的指示,諸如由于相關(guān)聯(lián)的LBA的數(shù)據(jù)被修整;相關(guān)聯(lián)的LBA的數(shù)據(jù)的屬性,包括施加給相關(guān)聯(lián)的LBA的數(shù)據(jù)的任何非標(biāo)準(zhǔn)修飾符;以及相關(guān)聯(lián)的LBA的數(shù)據(jù)的任何其他元數(shù)據(jù)、屬性或性質(zhì)。在某些實(shí)施方式中,NVM中的地址被分組為多個(gè)區(qū)域以減少表示其中一個(gè)地址所需的位數(shù)。例如,如果I/O設(shè)備的LBA被分成64個(gè)區(qū)域,并且NVM被分成64個(gè)區(qū)域(每個(gè)LBA區(qū)域?qū)?yīng)一個(gè)),則與具體LBA相關(guān)聯(lián)的映射條目需要的地址位少了6個(gè),因?yàn)镹VM中的區(qū)域中的一個(gè)能夠由具體LBA的區(qū)域確定。根據(jù)各種實(shí)施方式,LBA的區(qū)域和NVM的區(qū)域之間的關(guān)聯(lián)是以下各項(xiàng)中的一個(gè)或多個(gè):相等、直接關(guān)聯(lián),諸如一對一的數(shù)值函數(shù)、查詢表、動態(tài)映射以及使兩組數(shù)字相關(guān)聯(lián)的任何其他方法。在各種實(shí)施方式中,NVM中的位置包括多個(gè)讀取單元中的一個(gè)的地址,以及讀取單元中的長度和/或跨度。長度是NVM中所存儲的多個(gè)數(shù)據(jù)項(xiàng)中的一個(gè)具體數(shù)據(jù)項(xiàng)的大小,該具體數(shù)據(jù)項(xiàng)與包括長度的映射的條目相關(guān)聯(lián)。根據(jù)各種實(shí)施方式,長度具有以下各項(xiàng)中的一項(xiàng)或多項(xiàng)的粒度:一字節(jié)、一個(gè)以上的字節(jié)、一個(gè)讀取單元、指定的一小部分讀取單元、根據(jù)數(shù)據(jù)項(xiàng)中的一個(gè)的最大允許壓縮率的粒度、以及用于跟蹤存儲使用量的任何其他粒度??缍仁谴鎯τ芯唧w數(shù)據(jù)項(xiàng)的相應(yīng)部分的多個(gè)讀取單元,諸如整數(shù)個(gè)讀取單元。在進(jìn)一步的實(shí)施方式和/或使用場景下,在讀取單元跨度中的第一讀取單元和/或讀取單元跨度中的最后讀取單元任選地和/或可選擇地存儲多個(gè)數(shù)據(jù)項(xiàng)中的一些或全部。在某些實(shí)施方式和/或使用場景下,長度和/或跨度被編碼地存儲,諸如通過將長度(在具有編碼的長度和/或跨度的上下文中有時(shí)稱為大?。┳鳛閷缍鹊难a(bǔ)償來存儲。在某些實(shí)施方式和/或使用場景下,未使用的長度和/或跨度的編碼對額外信息(諸如非標(biāo)準(zhǔn)修飾符的表示或諸如相關(guān)聯(lián)數(shù)據(jù)項(xiàng)是否存在于NVM中的表示)進(jìn)行編碼。將NVM中的位置編碼為位置和長度使NVM中所存儲的數(shù)據(jù)的大小改變。例如,第一4KB區(qū)域被壓縮為400B大小,其完全存儲在單個(gè)讀取單元中,并具有一個(gè)讀取單元的長度,而第二4KB區(qū)域是不可壓縮的,跨越一個(gè)以上的讀取單元,并具有一個(gè)以上讀取單元的長度。在進(jìn)一步的實(shí)施方式中,在與LBA的區(qū)域相關(guān)聯(lián)的存儲的讀取單元中具有長度和/或跨度使得能夠僅讀取NVM的所需部分來檢索LBA的區(qū)域的數(shù)據(jù)。在某些實(shí)施方式中,映射的每個(gè)條目包括信息,有時(shí)稱為元數(shù)據(jù),指定與條目相關(guān)聯(lián)的LBA的區(qū)域的屬性。在進(jìn)一步的實(shí)施方式中,諸如通過使區(qū)域的多個(gè)LBA中的每一個(gè)具有分別的元數(shù)據(jù)規(guī)范,至少一部分元數(shù)據(jù)的粒度比區(qū)域的粒度細(xì)。根據(jù)各種實(shí)施方式,元數(shù)據(jù)包括可適用于和/或用于修改和/或控制與區(qū)域相關(guān)聯(lián)的NVM中的數(shù)據(jù)的寫入、訪問、讀取和/或再循環(huán)的一個(gè)或多個(gè)非標(biāo)準(zhǔn)修飾符。示例性實(shí)施方式作為具體實(shí)施方式的緒論的結(jié)束,接下來是一系列示例性實(shí)施方式,這些示例性實(shí)施方式包括明確列舉為“EC”(示例性組合)的至少一些實(shí)施方式,這些示例性實(shí)施方式根據(jù)本文描述的概念提供對各種實(shí)施方式類型的額外描述;這些示例并不意味著是彼此排斥的、詳盡的或限制性的;且本發(fā)明不限于這些示例性實(shí)施方式,而是涵蓋所公布的權(quán)利要求及其等同物的范圍內(nèi)的所有可能的修改和變更。EC1)一種方法,包括:按第一順序?qū)⒁幌盗袛?shù)據(jù)單元排列在非易失性存儲器(NVM)中,數(shù)據(jù)單元中的每一個(gè)與多個(gè)時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);按第二順序?qū)⒁幌盗袛?shù)據(jù)映射單元排列在NVM中,數(shù)據(jù)映射單元中的每一個(gè)與時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);其中數(shù)據(jù)映射單元中的每一個(gè)包括數(shù)據(jù)單元中對應(yīng)數(shù)據(jù)單元的NVM中的位置;并且其中與數(shù)據(jù)單元中的每一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳在與對應(yīng)數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳處或之前。EC2)根據(jù)EC1所述的方法,其中:數(shù)據(jù)單元中的每一個(gè)對應(yīng)于從主機(jī)至相應(yīng)邏輯塊地址(LBA)的相應(yīng)數(shù)據(jù)寫入;數(shù)據(jù)單元中的前一個(gè)數(shù)據(jù)單元和后一個(gè)數(shù)據(jù)單元對應(yīng)于至相應(yīng)LBA中的同一個(gè)LBA的數(shù)據(jù)寫入中的數(shù)據(jù)寫入;并且前一個(gè)數(shù)據(jù)單元不具有數(shù)據(jù)映射單元中的相關(guān)數(shù)據(jù)映射單元。EC3)根據(jù)EC1所述的方法,在電源故障之后,進(jìn)一步包括:確定數(shù)據(jù)單元中的最新有效且連續(xù)的(相鄰的)數(shù)據(jù)單元;確定數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元,其中與數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳在與數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳處或之前;僅將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元;并且其中在恢復(fù)中忽略與相應(yīng)時(shí)間戳中的任意一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的任意一個(gè),所述相應(yīng)時(shí)間戳在與數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳之后。EC4)根據(jù)EC1所述的方法,其中數(shù)據(jù)單元是數(shù)據(jù)存儲單元。EC5)一種方法,包括:將一系列數(shù)據(jù)存儲單元寫入非易失性存儲器(NVM),數(shù)據(jù)存儲單元中的每一個(gè)與多個(gè)時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);將一系列數(shù)據(jù)映射單元寫入NVM,數(shù)據(jù)映射單元中的每一個(gè)與時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);其中數(shù)據(jù)映射單元中的每一個(gè)包括數(shù)據(jù)存儲單元中對應(yīng)數(shù)據(jù)存儲單元的NVM中的位置;并且其中與數(shù)據(jù)存儲單元中的每一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示相對年齡(relativeage),所述相對年齡等于或老于(older)與對應(yīng)數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡。EC6)根據(jù)EC5所述的方法,其中數(shù)據(jù)存儲單元的寫入符合第一順序并且數(shù)據(jù)映射單元的寫入符合第二順序。EC7)根據(jù)EC5所述的方法,其中數(shù)據(jù)存儲單元根據(jù)第一順序布置在NVM中并且數(shù)據(jù)映射單元根據(jù)第二順序布置在NVM中。EC8)根據(jù)EC1、EC6或EC7所述的方法,其中第一順序不同于第二順序。EC9)根據(jù)EC5所述的方法,其中:數(shù)據(jù)存儲單元中的第一個(gè)對應(yīng)于從主機(jī)至具體邏輯塊地址(LBA)的第一數(shù)據(jù)寫入;數(shù)據(jù)存儲單元中的第二個(gè)對應(yīng)于從主機(jī)至具體LBA的第二數(shù)據(jù)寫入;第一數(shù)據(jù)寫入按時(shí)間順序在第二數(shù)據(jù)寫入前;并且數(shù)據(jù)映射單元中沒有一個(gè)與第一數(shù)據(jù)存儲單元對應(yīng)。EC10)根據(jù)EC6所述的方法,在事件之后,進(jìn)一步包括:根據(jù)第一順序確定數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè);根據(jù)第二順序確定與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元,所述相對年齡等于或老于與數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡;以及根據(jù)第一和第二順序僅將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元。EC11)根據(jù)EC6所述的方法,進(jìn)一步包括:根據(jù)第一順序確定數(shù)據(jù)存儲單元中的第一個(gè),所述第一個(gè)是數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè);根據(jù)第二順序確定與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元,所述相對年齡等于或老于與數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡;根據(jù)第一順序確定數(shù)據(jù)存儲單元中的第二個(gè),所述第二個(gè)是與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)存儲單元中的最新數(shù)據(jù)存儲單元,所述相對年齡等于與數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡或在此之前;以及根據(jù)第一和第二順序,僅使用來自數(shù)據(jù)存儲單元中的第二個(gè)的數(shù)據(jù)單元中的數(shù)據(jù)單元通過數(shù)據(jù)存儲單元中的第一個(gè)將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元。EC12)根據(jù)EC11所述的方法,進(jìn)一步包括:針對先前未寫入NVM的數(shù)據(jù)映射單元中的每個(gè)修改的數(shù)據(jù)映射單元來識別與最舊更新相關(guān)聯(lián)的時(shí)間戳中的相應(yīng)時(shí)間戳,所述相應(yīng)時(shí)間戳等于與數(shù)據(jù)存儲單元中的具體數(shù)據(jù)存儲單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳,修改的數(shù)據(jù)映射單元包括具體數(shù)據(jù)存儲單元的NVM中的位置;以及在寫入與相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)存儲單元中的一個(gè)處或之前,將先前未寫入NVM的修改的數(shù)據(jù)映射單元中的每一個(gè)寫入NVM,所述相應(yīng)時(shí)間戳大于繼與修改的數(shù)據(jù)映射單元的最舊更新相關(guān)聯(lián)的相應(yīng)時(shí)間戳之后的確定量。EC13)根據(jù)EC10所述的方法,進(jìn)一步包括相對于恢復(fù)忽略具有表示相對年齡的相應(yīng)時(shí)間戳的數(shù)據(jù)映射單元中的任意一個(gè),所述相對年齡小于數(shù)據(jù)存儲單元中最新有效且連續(xù)的數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳表示的相對年齡。EC14)根據(jù)EC10所述的方法,其中事件包括故障。EC15)根據(jù)EC14所述的方法,其中故障包括以下各項(xiàng)中的一個(gè)或多個(gè):電源故障,死機(jī),以及電路故障。EC16)根據(jù)EC4或EC5所述的方法,其中數(shù)據(jù)映射單元中的至少兩個(gè)包括相同位置,所述相同位置是數(shù)據(jù)單元的至少兩個(gè)數(shù)據(jù)單元的相同位置。EC17)根據(jù)EC4或EC5所述的方法,進(jìn)一步包括使用數(shù)據(jù)存儲單元中的至少一部分存儲與數(shù)據(jù)存儲單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳,以及使用數(shù)據(jù)映射單元中的至少一部分存儲與數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳。EC18)根據(jù)EC4或EC5所述的方法,其中數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳的足夠時(shí)間戳使用數(shù)據(jù)存儲單元進(jìn)行存儲,使得數(shù)據(jù)存儲單元中的每一個(gè)與相應(yīng)數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳之間的關(guān)聯(lián)可通過讀取NVM來確定。EC19)根據(jù)EC4或EC5所述的方法,其中數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳的至少一部分中的每一個(gè)存儲在具有相關(guān)聯(lián)數(shù)據(jù)存儲單元的NVM中。EC20)根據(jù)EC4或EC5所述的方法,其中數(shù)據(jù)映射單元的相應(yīng)時(shí)間戳的足夠時(shí)間戳使用數(shù)據(jù)映射單元進(jìn)行存儲,使得數(shù)據(jù)映射單元中的每一個(gè)與相應(yīng)數(shù)據(jù)映射單元的相應(yīng)時(shí)間戳之間的關(guān)聯(lián)可通過讀取NVM來確定。EC21)根據(jù)EC4或EC5所述的方法,其中數(shù)據(jù)映射單元的相應(yīng)時(shí)間戳的至少一部分中的每一個(gè)存儲在具有相關(guān)聯(lián)數(shù)據(jù)映射單元的NVM中。EC22)根據(jù)EC4或EC5所述的方法,其中數(shù)據(jù)存儲單元中的具體數(shù)據(jù)存儲單元存儲在相應(yīng)時(shí)間戳與具體數(shù)據(jù)存儲單元相關(guān)聯(lián)的NVM中,并且數(shù)據(jù)映射單元中的具體數(shù)據(jù)映射單元存儲在相應(yīng)時(shí)間戳與具體數(shù)據(jù)映射單元相關(guān)聯(lián)的NVM中。EC23)一種方法,包括:根據(jù)存儲流將多個(gè)存儲單元寫入非易失性存儲器(NVM),存儲單元中的每一個(gè)包括數(shù)據(jù)部分和對應(yīng)時(shí)間戳部分;根據(jù)映射流將多個(gè)映射單元寫入NVM,映射單元中的每一個(gè)包括條目部分和對應(yīng)時(shí)間戳部分;其中至少一部分條目部分中的每一個(gè)可以通過指定數(shù)據(jù)部分中的至少對應(yīng)數(shù)據(jù)部分來確定將相應(yīng)邏輯塊(LB)寫入NVM中的哪里;其中時(shí)間發(fā)生順序(temporalorder)由時(shí)間戳部分表示,存儲單元時(shí)間戳根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增,并且映射單元時(shí)間戳根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增;并且其中當(dāng)寫入NVM的映射單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少一個(gè)具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在具體時(shí)間點(diǎn)時(shí)寫入NVM的存儲單元時(shí)間戳部分的最新時(shí)間戳部分。EC24)根據(jù)EC23所述的方法,其中寫入存儲單元按與存儲單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭氪鎯卧?,并且寫入映射單元按與映射單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭胗成鋯卧?。EC25)根據(jù)EC23所述的方法,進(jìn)一步包括根據(jù)檢查點(diǎn)流將一個(gè)或多個(gè)檢查點(diǎn)單元寫入NVM,檢查點(diǎn)單元中的每一個(gè)包括映射部分和對應(yīng)時(shí)間戳部分,并且其中檢查點(diǎn)時(shí)間戳部分根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增。EC26)根據(jù)EC25所述的方法,其中檢查點(diǎn)單元的寫入按與檢查點(diǎn)時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭霗z查點(diǎn)單元。EC27)根據(jù)EC25所述的方法,其中連續(xù)一組預(yù)定數(shù)量的檢查點(diǎn)單元至少包括條目部分符合于此的映射的整個(gè)檢查點(diǎn)。EC28)根據(jù)EC27所述的方法,進(jìn)一步包括至少部分基于映射部分和/或檢查點(diǎn)單元時(shí)間戳部分中的一個(gè)或多個(gè)的一個(gè)或多個(gè)部分來恢復(fù)映射。EC29)根據(jù)EC28所述的方法,其中恢復(fù)進(jìn)一步至少部分基于條目部分和/或映射單元時(shí)間戳部分中的一個(gè)或多個(gè)的一個(gè)或多個(gè)部分。EC30)根據(jù)EC29所述的方法,其中恢復(fù)進(jìn)一步至少部分基于數(shù)據(jù)部分和/或存儲單元時(shí)間戳部分中的一個(gè)或多個(gè)的一個(gè)或多個(gè)部分。EC31)根據(jù)EC30所述的方法,其中數(shù)據(jù)部分中的每一個(gè)包括一個(gè)或多個(gè)數(shù)據(jù)單元以及對應(yīng)的一個(gè)或多個(gè)報(bào)頭,報(bào)頭中的每一個(gè)識別數(shù)據(jù)單元中的相應(yīng)對應(yīng)數(shù)據(jù)單元和LB中的一個(gè)LB之間的相應(yīng)映射,映射可以確定LB中的相應(yīng)LB作為數(shù)據(jù)單元中的相應(yīng)數(shù)據(jù)單元寫入NVM中的哪里,并且其中恢復(fù)進(jìn)一步至少部分基于寫入NVM的存儲單元中包括的相應(yīng)報(bào)頭中的一個(gè)或多個(gè)。EC32)根據(jù)EC31所述的方法,其中條目部分中的具體條目部分確定相應(yīng)LB的相應(yīng)數(shù)據(jù)部分,相應(yīng)數(shù)據(jù)部分包括報(bào)頭中的具體報(bào)頭,并且具體報(bào)頭識別數(shù)據(jù)單元中的具體數(shù)據(jù)單元和具體條目部分的相應(yīng)LB之間的相應(yīng)映射。EC33)根據(jù)EC27所述的方法,其中映射是一級映射。EC34)根據(jù)EC33所述的方法,進(jìn)一步包括緩存和/或緩沖映射的至少一部分;并且其中映射部分中的至少一個(gè)的至少一部分符合緩存和/或緩沖。EC35)根據(jù)EC27所述的方法,其中映射是包括第一級映射和第二級映射的二級映射,映射部分對應(yīng)于第一級映射的部分,條目部分對應(yīng)于第二級映射的條目。EC36)根據(jù)EC35所述的方法,進(jìn)一步包括緩存和/或緩沖第一級映射和/或第二級映射的至少一部分;并且其中映射部分和條目部分中的至少一個(gè)的至少一部分符合緩存和/或緩沖。EC37)根據(jù)EC27所述的方法,其中映射部分中的每一個(gè)符合具有,根據(jù)時(shí)間發(fā)生順序,比相應(yīng)映射部分的對應(yīng)時(shí)間戳部分早的對應(yīng)時(shí)間戳部分的所有條目部分。EC38)根據(jù)EC25所述的方法,其中一個(gè)具體時(shí)間點(diǎn)是第一具體時(shí)間點(diǎn),并且當(dāng)寫入NVM的檢查點(diǎn)單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少第二具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在第二具體時(shí)間點(diǎn)時(shí)寫入NVM的映射單元時(shí)間戳部分的最新時(shí)間戳部分。EC39)根據(jù)EC25所述的方法,其中一個(gè)具體時(shí)間點(diǎn)是第一具體時(shí)間點(diǎn),并且當(dāng)寫入NVM的檢查點(diǎn)單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少第二具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在第二具體時(shí)間點(diǎn)時(shí)寫入NVM的存儲單元時(shí)間戳部分的最新時(shí)間戳部分。EC40)根據(jù)EC23所述的方法,其中多個(gè)存儲單元是第一多個(gè)存儲單元,存儲流是第一存儲流,并且進(jìn)一步包括根據(jù)第二存儲流將第二多個(gè)存儲單元寫入NVM,第二存儲單元中的每一個(gè)包括數(shù)據(jù)部分和對應(yīng)時(shí)間戳部分,并且第二存儲單元時(shí)間戳部分根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增。EC41)根據(jù)EC40所述的方法,其中第二存儲單元的寫入按與第二存儲單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭氲诙鎯卧?。EC42)根據(jù)EC40所述的方法,其中第二存儲單元中的至少一個(gè)按時(shí)間順序在第一存儲單元中的兩個(gè)之間寫入,并且至少一個(gè)第二存儲單元時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序在兩個(gè)第一存儲單元時(shí)間戳部分之間。EC43)根據(jù)EC40所述的方法,其中第一多個(gè)存儲單元的數(shù)據(jù)部分中的至少一個(gè)包括來自主機(jī)的與主機(jī)數(shù)據(jù)寫入命令相關(guān)的主機(jī)數(shù)據(jù),并且其中第二多個(gè)存儲單元的數(shù)據(jù)部分中的至少一個(gè)包括響應(yīng)于再循環(huán)操作從NVM讀取的再循環(huán)數(shù)據(jù)。EC44)根據(jù)EC23所述的方法,其中時(shí)間戳部分被編碼以便可以根據(jù)時(shí)間發(fā)生順序經(jīng)由比較后的時(shí)間戳部分的數(shù)值比較來比較時(shí)間戳部分。EC45)根據(jù)EC44所述的方法,其中數(shù)值比較忽略比較后的時(shí)間戳部分的一個(gè)或多個(gè)連續(xù)最高有效位。EC46)根據(jù)EC44所述的方法,其中如果比較后的存儲單元時(shí)間戳部分中的具體存儲單元時(shí)間戳部分在數(shù)值上與比較后的映射單元時(shí)間戳部分中的具體映射單元時(shí)間戳部分相同,則通過預(yù)先確定,當(dāng)時(shí)間戳部分相同時(shí),比較后的存儲單元時(shí)間戳部分早于比較后的映射單元時(shí)間戳部分,來確定比較。EC47)根據(jù)EC46所述的方法,其中數(shù)值身份忽略比較后的時(shí)間戳部分的一個(gè)或多個(gè)連續(xù)最高有效位。EC48)根據(jù)EC23所述的方法,其中條目部分中的每一個(gè)都符合具有對應(yīng)時(shí)間戳部分的所有數(shù)據(jù)部分,所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序早于相應(yīng)條目部分的對應(yīng)時(shí)間戳部分。EC49)根據(jù)EC23所述的方法,其中存儲單元中的每一個(gè)以原子的方式寫入。EC50)根據(jù)EC23所述的方法,其中映射單元中的每一個(gè)以原子的方式寫入。EC51)根據(jù)EC23所述的方法,其中數(shù)據(jù)部分中的至少一個(gè)包括來自主機(jī)的與主機(jī)數(shù)據(jù)寫入命令相關(guān)的主機(jī)數(shù)據(jù)。EC52)根據(jù)EC23所述的方法,其中數(shù)據(jù)部分中的至少一個(gè)包括響應(yīng)于再循環(huán)操作從NVM讀取的再循環(huán)數(shù)據(jù)。EC53)根據(jù)EC23所述的方法,其中數(shù)據(jù)部分中的每一個(gè)包括一個(gè)或多個(gè)數(shù)據(jù)單元和對應(yīng)的一個(gè)或多個(gè)報(bào)頭,報(bào)頭中的每一個(gè)識別數(shù)據(jù)單元中的相應(yīng)對應(yīng)數(shù)據(jù)單元和LB中的一個(gè)LB之間的相應(yīng)映射,映射可以確定LB中的相應(yīng)LB作為數(shù)據(jù)單元中的相應(yīng)數(shù)據(jù)單元寫入NVM中的哪里。EC54)根據(jù)EC53所述的方法,其中報(bào)頭中的每一個(gè)連續(xù)寫入相應(yīng)數(shù)據(jù)單元由相應(yīng)報(bào)頭識別的NVM中。EC55)根據(jù)EC2、EC9、EC43或EC51所述的方法,進(jìn)一步包括根據(jù)數(shù)據(jù)寫入與主機(jī)交互。EC56)根據(jù)EC55所述的方法,其中交互與存儲接口標(biāo)準(zhǔn)兼容。EC57)根據(jù)EC2、EC9、EC43或EC51所述的方法,其中主機(jī)是計(jì)算主機(jī),并且進(jìn)一步包括根據(jù)數(shù)據(jù)寫入來操作計(jì)算主機(jī)。EC58)根據(jù)ECl、EC5或EC23所述的方法,其中NVM包括一個(gè)或多個(gè)閃存。EC59)根據(jù)EC58所述的方法,進(jìn)一步包括經(jīng)由閃存接口與閃存交互。EC60)一種有形計(jì)算機(jī)可讀介質(zhì),其中存儲有當(dāng)由處理元件執(zhí)行時(shí)使處理元件執(zhí)行和/或控制包括以下各項(xiàng)的操作的一套指令:按第一順序?qū)⒁幌盗袛?shù)據(jù)單元排列在非易失性存儲器(NVM)中,數(shù)據(jù)單元中的每一個(gè)與多個(gè)時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);按第二順序?qū)⒁幌盗袛?shù)據(jù)映射單元排列在NVM中,數(shù)據(jù)映射單元中的每一個(gè)與時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);其中數(shù)據(jù)映射單元中的每一個(gè)包括數(shù)據(jù)單元中對應(yīng)數(shù)據(jù)單元的NVM中的位置;并且其中與數(shù)據(jù)單元中的每一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳在與對應(yīng)數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳處或之前。EC61)根據(jù)EC60所述的有形計(jì)算機(jī)可讀介質(zhì),其中:數(shù)據(jù)單元中的每一個(gè)對應(yīng)于從主機(jī)至相應(yīng)邏輯塊地址(LBA)的相應(yīng)數(shù)據(jù)寫入;數(shù)據(jù)單元中的前一個(gè)數(shù)據(jù)單元和后一個(gè)數(shù)據(jù)單元對應(yīng)于至相應(yīng)LBA中的同一個(gè)LBA的數(shù)據(jù)寫入中的數(shù)據(jù)寫入;并且前一個(gè)數(shù)據(jù)單元不具有數(shù)據(jù)映射單元中的相關(guān)數(shù)據(jù)映射單元。EC62)根據(jù)EC60所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括:在電源故障之后,確定數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元;在電源故障之后,確定數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元,其中與數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳在與數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳處或之前;僅將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元;并且其中在恢復(fù)中忽略與相應(yīng)時(shí)間戳中的任意一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的任意一個(gè),所述相應(yīng)時(shí)間戳在與數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳之后。EC63)根據(jù)EC60所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)單元是數(shù)據(jù)存儲單元。EC64)一種有形計(jì)算機(jī)可讀介質(zhì),其中存儲有當(dāng)由處理元件執(zhí)行時(shí)使處理元件執(zhí)行和/或控制包括以下各項(xiàng)的操作的一套指令:將一系列數(shù)據(jù)存儲單元寫入非易失性存儲器(NVM),數(shù)據(jù)存儲單元中的每一個(gè)與多個(gè)時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);將一系列數(shù)據(jù)映射單元寫入NVM,數(shù)據(jù)映射單元中的每一個(gè)與時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);其中數(shù)據(jù)映射單元中的每一個(gè)包括數(shù)據(jù)存儲單元中對應(yīng)數(shù)據(jù)存儲單元的NVM中的位置;并且其中與數(shù)據(jù)存儲單元中的每一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示相對年齡,所述相對年齡等于或老于與對應(yīng)數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡。EC65)根據(jù)EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)存儲單元的寫入符合第一順序并且數(shù)據(jù)映射單元的寫入符合第二順序。EC66)根據(jù)EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)存儲單元根據(jù)第一順序布置在NVM中并且數(shù)據(jù)映射單元根據(jù)第二順序布置在NVM中。EC67)根據(jù)EC60、EC65或EC66所述的有形計(jì)算機(jī)可讀介質(zhì),其中第一順序不同于第二順序。EC68)根據(jù)EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中:數(shù)據(jù)存儲單元中的第一個(gè)對應(yīng)于從主機(jī)至具體邏輯塊地址(LBA)的第一數(shù)據(jù)寫入;數(shù)據(jù)存儲單元中的第二個(gè)對應(yīng)于從主機(jī)至具體LBA的第二數(shù)據(jù)寫入;第一數(shù)據(jù)寫入按時(shí)間順序在第二數(shù)據(jù)寫入前;并且數(shù)據(jù)映射單元中沒有一個(gè)與第一數(shù)據(jù)存儲單元對應(yīng)。EC69)根據(jù)EC65所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括:在事件之后,根據(jù)第一順序確定數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè);在事件之后,根據(jù)第二順序確定與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元,所述相對年齡等于或老于與數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡;以及根據(jù)第一和第二順序僅將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元。EC70)根據(jù)EC65所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括:根據(jù)第一順序確定數(shù)據(jù)存儲單元中的第一個(gè),所述第一個(gè)是數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè);根據(jù)第二順序確定與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元,所述相對年齡等于或老于與數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡;根據(jù)第一順序確定數(shù)據(jù)存儲單元中的第二個(gè),所述第二個(gè)是與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)存儲單元中的最新數(shù)據(jù)存儲單元,所述相對年齡等于與數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡或在此之前;以及根據(jù)第一和第二順序,僅使用來自數(shù)據(jù)存儲單元中的第二個(gè)的數(shù)據(jù)單元中的數(shù)據(jù)單元通過數(shù)據(jù)存儲單元中的第一個(gè)將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元。EC71)根據(jù)EC70所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括:針對先前未寫入NVM的數(shù)據(jù)映射單元中的每個(gè)修改的數(shù)據(jù)映射單元來識別與最舊更新相關(guān)聯(lián)的時(shí)間戳中的相應(yīng)時(shí)間戳,所述相應(yīng)時(shí)間戳等于與數(shù)據(jù)存儲單元中的具體數(shù)據(jù)存儲單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳,修改的數(shù)據(jù)映射單元包括具體數(shù)據(jù)存儲單元的NVM中的位置;以及在寫入與相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)存儲單元中的一個(gè)處或之前,將先前未寫入NVM的修改的數(shù)據(jù)映射單元中的每一個(gè)寫入NVM,所述相應(yīng)時(shí)間戳大于繼與修改的數(shù)據(jù)映射單元的最舊更新相關(guān)聯(lián)的相應(yīng)時(shí)間戳之后的確定量。EC72)根據(jù)EC69所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括相對于恢復(fù)忽略具有表示相對年齡的相應(yīng)時(shí)間戳的數(shù)據(jù)映射單元中的任意一個(gè),所述相對年齡小于數(shù)據(jù)存儲單元中最新有效且連續(xù)的數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳表示的相對年齡。EC73)根據(jù)EC69所述的有形計(jì)算機(jī)可讀介質(zhì),其中事件包括故障。EC74)根據(jù)EC73所述的有形計(jì)算機(jī)可讀介質(zhì),其中故障包括以下各項(xiàng)中的一個(gè)或多個(gè):電源故障,死機(jī),以及電路故障。EC75)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)映射單元中的至少兩個(gè)包括相同位置,所述相同位置是數(shù)據(jù)單元的至少兩個(gè)數(shù)據(jù)單元的相同位置。EC76)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括使用數(shù)據(jù)存儲單元中的至少一部分存儲與數(shù)據(jù)存儲單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳,以及使用數(shù)據(jù)映射單元中的至少一部分存儲與數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳。EC77)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳的足夠時(shí)間戳使用數(shù)據(jù)存儲單元進(jìn)行存儲,使得數(shù)據(jù)存儲單元中的每一個(gè)與相應(yīng)數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳之間的關(guān)聯(lián)可通過讀取NVM來確定。EC78)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)存儲單元的相應(yīng)時(shí)間戳的至少一部分中的每一個(gè)存儲在具有相關(guān)聯(lián)數(shù)據(jù)存儲單元的NVM中。EC79)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)映射單元的相應(yīng)時(shí)間戳的足夠時(shí)間戳使用數(shù)據(jù)映射單元進(jìn)行存儲,使得數(shù)據(jù)映射單元中的每一個(gè)與相應(yīng)數(shù)據(jù)映射單元的相應(yīng)時(shí)間戳之間的關(guān)聯(lián)可通過讀取NVM來確定。EC80)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)映射單元的相應(yīng)時(shí)間戳的至少一部分中的每一個(gè)存儲在具有相關(guān)聯(lián)數(shù)據(jù)映射單元的NVM中。EC81)根據(jù)EC63或EC64所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)存儲單元中的具體數(shù)據(jù)存儲單元存儲在相應(yīng)時(shí)間戳與具體數(shù)據(jù)存儲單元相關(guān)聯(lián)的NVM中,并且數(shù)據(jù)映射單元中的具體數(shù)據(jù)映射單元存儲在相應(yīng)時(shí)間戳與具體數(shù)據(jù)映射單元相關(guān)聯(lián)的NVM中。EC82)一種有形計(jì)算機(jī)可讀介質(zhì),其中存儲有當(dāng)由處理元件執(zhí)行時(shí)使處理元件執(zhí)行和/或控制包括以下各項(xiàng)的操作的一套指令:根據(jù)存儲流將多個(gè)存儲單元寫入非易失性存儲器(NVM),存儲單元中的每一個(gè)包括數(shù)據(jù)部分和對應(yīng)時(shí)間戳部分;根據(jù)映射流將多個(gè)映射單元寫入NVM,映射單元中的每一個(gè)包括條目部分和對應(yīng)時(shí)間戳部分;其中至少一部分條目部分中的每一個(gè)可以通過指定數(shù)據(jù)部分中的至少對應(yīng)數(shù)據(jù)部分來確定將相應(yīng)邏輯塊(LB)寫入NVM中的哪里;其中時(shí)間發(fā)生順序由時(shí)間戳部分表示,存儲單元時(shí)間戳根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增,并且映射單元時(shí)間戳根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增;并且其中當(dāng)寫入NVM的映射單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少一個(gè)具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在具體時(shí)間點(diǎn)時(shí)寫入NVM的存儲單元時(shí)間戳部分的最新時(shí)間戳部分。EC83)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中寫入存儲單元按與存儲單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭氪鎯卧⑶覍懭胗成鋯卧磁c映射單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭胗成鋯卧?。EC84)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括根據(jù)檢查點(diǎn)流將一個(gè)或多個(gè)檢查點(diǎn)單元寫入NVM,檢查點(diǎn)單元中的每一個(gè)包括映射部分和對應(yīng)時(shí)間戳部分,并且其中檢查點(diǎn)時(shí)間戳部分根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增。EC85)根據(jù)EC84所述的有形計(jì)算機(jī)可讀介質(zhì),其中檢查點(diǎn)單元的寫入按與檢查點(diǎn)時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭霗z查點(diǎn)單元。EC86)根據(jù)EC84所述的有形計(jì)算機(jī)可讀介質(zhì),其中連續(xù)一組預(yù)定數(shù)量的檢查點(diǎn)單元至少包括條目部分符合于此的映射的整個(gè)檢查點(diǎn)。EC87)根據(jù)EC86所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括至少部分基于映射部分和/或檢查點(diǎn)單元時(shí)間戳部分中的一個(gè)或多個(gè)的一個(gè)或多個(gè)部分來恢復(fù)映射。EC88)根據(jù)EC87所述的有形計(jì)算機(jī)可讀介質(zhì),其中恢復(fù)進(jìn)一步至少部分基于條目部分和/或映射單元時(shí)間戳部分中的一個(gè)或多個(gè)的一個(gè)或多個(gè)部分。EC89)根據(jù)EC88所述的有形計(jì)算機(jī)可讀介質(zhì),其中恢復(fù)進(jìn)一步至少部分基于數(shù)據(jù)部分和/或存儲單元時(shí)間戳部分中的一個(gè)或多個(gè)的一個(gè)或多個(gè)部分。EC90)根據(jù)EC89所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)部分中的每一個(gè)包括一個(gè)或多個(gè)數(shù)據(jù)單元以及對應(yīng)的一個(gè)或多個(gè)報(bào)頭,報(bào)頭中的每一個(gè)識別數(shù)據(jù)單元中的相應(yīng)對應(yīng)數(shù)據(jù)單元和LB中的一個(gè)LB之間的相應(yīng)映射,映射可以確定LB中的相應(yīng)LB作為數(shù)據(jù)單元中的相應(yīng)數(shù)據(jù)單元寫入NVM中的哪里,并且其中恢復(fù)進(jìn)一步至少部分基于寫入NVM的存儲單元中包括的相應(yīng)報(bào)頭中的一個(gè)或多個(gè)。EC91)根據(jù)EC90所述的有形計(jì)算機(jī)可讀介質(zhì),其中條目部分中的具體條目部分確定相應(yīng)LB的相應(yīng)數(shù)據(jù)部分,相應(yīng)數(shù)據(jù)部分包括報(bào)頭中的具體報(bào)頭,并且具體報(bào)頭識別數(shù)據(jù)單元中的具體數(shù)據(jù)單元和具體條目部分的相應(yīng)LB之間的相應(yīng)映射。EC92)根據(jù)EC86所述的有形計(jì)算機(jī)可讀介質(zhì),其中映射是一級映射。EC93)根據(jù)EC92所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括緩存和/或緩沖映射的至少一部分;并且其中映射部分中的至少一個(gè)的至少一部分符合緩存和/或緩沖。EC94)根據(jù)EC86所述的有形計(jì)算機(jī)可讀介質(zhì),其中映射是包括第一級映射和第二級映射的二級映射,映射部分對應(yīng)于第一級映射的部分,條目部分對應(yīng)于第二級映射的條目。EC95)根據(jù)EC94所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括緩存和/或緩沖第一級映射和/或第二級映射的至少一部分;并且其中映射部分和條目部分中的至少一個(gè)的至少一部分符合緩存和/或緩沖。EC96)根據(jù)EC86所述的有形計(jì)算機(jī)可讀介質(zhì),其中映射部分中的每一個(gè)符合具有,根據(jù)時(shí)間發(fā)生順序,比相應(yīng)映射部分的對應(yīng)時(shí)間戳部分早的對應(yīng)時(shí)間戳部分的所有條目部分。EC97)根據(jù)EC84所述的有形計(jì)算機(jī)可讀介質(zhì),其中一個(gè)具體時(shí)間點(diǎn)是第一具體時(shí)間點(diǎn),并且當(dāng)寫入NVM的檢查點(diǎn)單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少第二具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在第二具體時(shí)間點(diǎn)時(shí)寫入NVM的映射單元時(shí)間戳部分的最新時(shí)間戳部分。EC98)根據(jù)EC84所述的有形計(jì)算機(jī)可讀介質(zhì),其中一個(gè)具體時(shí)間點(diǎn)是第一具體時(shí)間點(diǎn),并且當(dāng)寫入NVM的檢查點(diǎn)單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少第二具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在第二具體時(shí)間點(diǎn)時(shí)寫入NVM的存儲單元時(shí)間戳部分的最新時(shí)間戳部分。EC99)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中多個(gè)存儲單元是第一多個(gè)存儲單元,存儲流是第一存儲流,并且進(jìn)一步包括根據(jù)第二存儲流將第二多個(gè)存儲單元寫入NVM,第二存儲單元中的每一個(gè)包括數(shù)據(jù)部分和對應(yīng)時(shí)間戳部分,并且第二存儲單元時(shí)間戳部分根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增。EC100)根據(jù)EC99所述的有形計(jì)算機(jī)可讀介質(zhì),其中第二存儲單元的寫入按與第二存儲單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭氲诙鎯卧?。EC101)根據(jù)EC99所述的有形計(jì)算機(jī)可讀介質(zhì),其中第二存儲單元中的至少一個(gè)按時(shí)間順序在第一存儲單元中的兩個(gè)之間寫入,并且至少一個(gè)第二存儲單元時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序在兩個(gè)第一存儲單元時(shí)間戳部分之間。EC102)根據(jù)EC99所述的有形計(jì)算機(jī)可讀介質(zhì),其中第一多個(gè)存儲單元的數(shù)據(jù)部分中的至少一個(gè)包括來自主機(jī)的與主機(jī)數(shù)據(jù)寫入命令相關(guān)的主機(jī)數(shù)據(jù),并且其中第二多個(gè)存儲單元的數(shù)據(jù)部分中的至少一個(gè)包括響應(yīng)于再循環(huán)操作從NVM讀取的再循環(huán)數(shù)據(jù)。EC103)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中時(shí)間戳部分被編碼以便可以根據(jù)時(shí)間發(fā)生順序經(jīng)由比較后的時(shí)間戳部分的數(shù)值比較來比較時(shí)間戳部分。EC104)根據(jù)EC103所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)值比較忽略比較后的時(shí)間戳部分的一個(gè)或多個(gè)連續(xù)最高有效位。EC105)根據(jù)EC103所述的有形計(jì)算機(jī)可讀介質(zhì),其中如果比較后的存儲單元時(shí)間戳部分中的具體存儲單元時(shí)間戳部分在數(shù)值上與比較后的映射單元時(shí)間戳部分中的具體映射單元時(shí)間戳部分相同,則通過預(yù)先確定,當(dāng)時(shí)間戳部分相同時(shí),比較后的存儲單元時(shí)間戳部分早于比較后的映射單元時(shí)間戳部分,來確定比較。EC106)根據(jù)EC105所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)值身份忽略比較后的時(shí)間戳部分的一個(gè)或多個(gè)連續(xù)最高有效位。EC107)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中條目部分中的每一個(gè)都符合具有對應(yīng)時(shí)間戳部分的所有數(shù)據(jù)部分,所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序早于相應(yīng)條目部分的對應(yīng)時(shí)間戳部分。EC108)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中存儲單元中的每一個(gè)以原子的方式寫入。EC109)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中映射單元中的每一個(gè)以原子的方式寫入。EC110)根據(jù)EC23所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)部分中的至少一個(gè)包括來自主機(jī)的與主機(jī)數(shù)據(jù)寫入命令相關(guān)的主機(jī)數(shù)據(jù)。EC111)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)部分中的至少一個(gè)包括響應(yīng)于再循環(huán)操作從NVM讀取的再循環(huán)數(shù)據(jù)。EC112)根據(jù)EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中數(shù)據(jù)部分中的每一個(gè)包括一個(gè)或多個(gè)數(shù)據(jù)單元和對應(yīng)的一個(gè)或多個(gè)報(bào)頭,報(bào)頭中的每一個(gè)識別數(shù)據(jù)單元中的相應(yīng)對應(yīng)數(shù)據(jù)單元和LB中的一個(gè)LB之間的相應(yīng)映射,映射可以確定LB中的相應(yīng)LB作為數(shù)據(jù)單元中的相應(yīng)數(shù)據(jù)單元寫入NVM中的哪里。EC113)根據(jù)EC112所述的有形計(jì)算機(jī)可讀介質(zhì),其中報(bào)頭中的每一個(gè)連續(xù)寫入相應(yīng)數(shù)據(jù)單元由相應(yīng)報(bào)頭識別的NVM中。EC114)根據(jù)EC61、EC68、EC102或EC110所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括根據(jù)數(shù)據(jù)寫入與主機(jī)交互。EC115)根據(jù)EC114所述的有形計(jì)算機(jī)可讀介質(zhì),其中交互與存儲接口標(biāo)準(zhǔn)兼容。EC116)根據(jù)EC61、EC68、EC102或EC110所述的有形計(jì)算機(jī)可讀介質(zhì),其中主機(jī)是計(jì)算主機(jī),并且進(jìn)一步包括根據(jù)數(shù)據(jù)寫入來操作計(jì)算主機(jī)。EC117)根據(jù)EC60、EC64或EC82所述的有形計(jì)算機(jī)可讀介質(zhì),其中NVM包括一個(gè)或多個(gè)閃存。EC118)根據(jù)EC117所述的有形計(jì)算機(jī)可讀介質(zhì),其中操作進(jìn)一步包括經(jīng)由閃存接口與閃存交互。EC119)一種裝置,包括:經(jīng)啟用以按第一順序?qū)⒁幌盗袛?shù)據(jù)單元排列在非易失性存儲器(NVM)中的第一硬件邏輯電路,數(shù)據(jù)單元中的每一個(gè)與多個(gè)時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);經(jīng)啟用以按第二順序?qū)⒁幌盗袛?shù)據(jù)映射單元排列在NVM中的第二硬件邏輯電路,數(shù)據(jù)映射單元中的每一個(gè)與時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);其中數(shù)據(jù)映射單元中的每一個(gè)包括數(shù)據(jù)單元中對應(yīng)數(shù)據(jù)單元的NVM中的位置;并且其中與數(shù)據(jù)單元中的每一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳在與對應(yīng)數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳處或之前。EC120)根據(jù)EC119所述的裝置,其中第一硬件邏輯電路的至少一部分是共享硬件邏輯電路,該共享硬件邏輯電路也是第二硬件邏輯電路的至少一部分。EC121)根據(jù)EC119所述的裝置,其中:數(shù)據(jù)單元中的每一個(gè)對應(yīng)于從主機(jī)至相應(yīng)邏輯塊地址(LBA)的相應(yīng)數(shù)據(jù)寫入;數(shù)據(jù)單元中的前一個(gè)數(shù)據(jù)單元和后一個(gè)數(shù)據(jù)單元對應(yīng)于至相應(yīng)LBA中的同一個(gè)LBA的數(shù)據(jù)寫入中的數(shù)據(jù)寫入;并且前一個(gè)數(shù)據(jù)單元不具有數(shù)據(jù)映射單元中的相關(guān)數(shù)據(jù)映射單元。EC122)根據(jù)EC119所述的裝置,進(jìn)一步包括:經(jīng)啟用以在電源故障之后確定數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元的第三硬件邏輯電路;經(jīng)啟用以在電源故障之后確定數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元的第四硬件邏輯電路,其中與數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳在與數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳處或之前;經(jīng)啟用以僅將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元的第五硬件邏輯電路;并且其中在恢復(fù)中忽略與相應(yīng)時(shí)間戳中的任意一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的任意一個(gè),所述相應(yīng)時(shí)間戳在與數(shù)據(jù)單元中的最新有效且連續(xù)的數(shù)據(jù)單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳之后。EC123)根據(jù)EC119所述的裝置,其中數(shù)據(jù)單元是數(shù)據(jù)存儲單元。EC124)一種裝置,包括:經(jīng)啟用以將一系列數(shù)據(jù)存儲單元寫入非易失性存儲器(NVM)的第一硬件邏輯電路,數(shù)據(jù)存儲單元中的每一個(gè)與多個(gè)時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);經(jīng)啟用以將一系列數(shù)據(jù)映射單元寫入NVM的第二硬件邏輯電路,數(shù)據(jù)映射單元中的每一個(gè)與時(shí)間戳中的相應(yīng)的一個(gè)相關(guān)聯(lián);其中數(shù)據(jù)映射單元中的每一個(gè)包括數(shù)據(jù)存儲單元中對應(yīng)數(shù)據(jù)存儲單元的NVM中的位置;并且其中與數(shù)據(jù)存儲單元中的每一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示相對年齡,所述相對年齡等于或老于與對應(yīng)數(shù)據(jù)映射單元相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡。EC125)根據(jù)EC124所述的裝置,其中第一硬件邏輯電路的至少一部分是共享硬件邏輯電路,該共享硬件邏輯電路也是第二硬件邏輯電路的至少一部分。EC126)根據(jù)EC124所述的裝置,其中數(shù)據(jù)存儲單元的寫入符合第一順序并且數(shù)據(jù)映射單元的寫入符合第二順序。EC127)根據(jù)EC124所述的裝置,其中數(shù)據(jù)存儲單元根據(jù)第一順序布置在NVM中并且數(shù)據(jù)映射單元根據(jù)第二順序布置在NVM中。EC128)根據(jù)EC124所述的裝置,其中:數(shù)據(jù)存儲單元中的第一個(gè)對應(yīng)于從主機(jī)至具體邏輯塊地址(LBA)的第一數(shù)據(jù)寫入;數(shù)據(jù)存儲單元中的第二個(gè)對應(yīng)于從主機(jī)至具體LBA的第二數(shù)據(jù)寫入;第一數(shù)據(jù)寫入按時(shí)間順序在第二數(shù)據(jù)寫入前;并且數(shù)據(jù)映射單元中沒有一個(gè)與第一數(shù)據(jù)存儲單元對應(yīng)。EC129)根據(jù)EC126所述的裝置,進(jìn)一步包括:經(jīng)啟用以在事件之后根據(jù)第一順序確定數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè)的第三硬件邏輯電路;經(jīng)啟用以在事件之后根據(jù)第二順序確定與表示相對年齡的相應(yīng)時(shí)間戳中的一個(gè)相關(guān)聯(lián)的數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元的第四硬件邏輯電路,所述相對年齡等于或老于與數(shù)據(jù)存儲單元中的最新有效且連續(xù)的一個(gè)相關(guān)聯(lián)的相應(yīng)時(shí)間戳表示的相對年齡;以及經(jīng)啟用以根據(jù)第一和第二順序僅將數(shù)據(jù)映射單元中的數(shù)據(jù)映射單元恢復(fù)至數(shù)據(jù)映射單元中的最新有效且連續(xù)的數(shù)據(jù)映射單元的第五硬件邏輯電路。EC130)一種裝置,包括:經(jīng)啟用以根據(jù)存儲流將多個(gè)存儲單元寫入非易失性存儲器(NVM)的第一硬件邏輯電路,存儲單元中的每一個(gè)包括數(shù)據(jù)部分和對應(yīng)時(shí)間戳部分;經(jīng)啟用以根據(jù)映射流將多個(gè)映射單元寫入NVM的第二硬件邏輯電路,映射單元中的每一個(gè)包括條目部分和對應(yīng)時(shí)間戳部分;其中至少一部分條目部分中的每一個(gè)可以通過指定數(shù)據(jù)部分中的至少對應(yīng)數(shù)據(jù)部分來確定將相應(yīng)邏輯塊(LB)寫入NVM中的哪里;其中時(shí)間發(fā)生順序由時(shí)間戳部分表示,存儲單元時(shí)間戳根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增,并且映射單元時(shí)間戳根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增;并且其中當(dāng)寫入NVM的映射單元中的至少一個(gè)具有時(shí)間戳部分時(shí),存在至少一個(gè)具體時(shí)間點(diǎn),所述時(shí)間戳部分根據(jù)時(shí)間發(fā)生順序晚于根據(jù)時(shí)間發(fā)生順序的在具體時(shí)間點(diǎn)時(shí)寫入NVM的存儲單元時(shí)間戳部分的最新時(shí)間戳部分。EC131)根據(jù)EC130所述的裝置,其中第一硬件邏輯電路的至少一部分是共享硬件邏輯電路,該共享硬件邏輯電路也是第二硬件邏輯電路的至少一部分。EC132)根據(jù)EC130所述的裝置,其中第一硬件邏輯電路按與存儲單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭氪鎯卧⑶业诙布壿嬰娐钒磁c映射單元時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭胗成鋯卧?。EC133)根據(jù)EC130所述的裝置,進(jìn)一步包括經(jīng)啟用以根據(jù)檢查點(diǎn)流將一個(gè)或多個(gè)檢查點(diǎn)單元寫入NVM的第三硬件邏輯電路,檢查點(diǎn)單元中的每一個(gè)包括映射部分和對應(yīng)時(shí)間戳部分,并且其中檢查點(diǎn)時(shí)間戳部分根據(jù)彼此的相對時(shí)間戳順序單調(diào)遞增。EC134)根據(jù)EC133所述的裝置,其中第三硬件邏輯電路按與檢查點(diǎn)時(shí)間戳部分表示的時(shí)間發(fā)生順序?qū)?yīng)的時(shí)間順序?qū)懭霗z查點(diǎn)單元。EC135)根據(jù)EC133所述的裝置,其中連續(xù)一組預(yù)定數(shù)量的檢查點(diǎn)單元至少包括條目部分符合于此的映射的整個(gè)檢查點(diǎn)。EC136)具有或參照存儲接口標(biāo)準(zhǔn)的任意前述EC,其中存儲接口標(biāo)準(zhǔn)包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):通用串行總線(USB)接口標(biāo)準(zhǔn),緊湊式閃存(CF)接口標(biāo)準(zhǔn),多媒體卡(MMC)接口標(biāo)準(zhǔn),嵌入式MMC(eMMC)接口標(biāo)準(zhǔn),Thunderbolt接口標(biāo)準(zhǔn),UFS接口標(biāo)準(zhǔn),安全數(shù)字(SD)接口標(biāo)準(zhǔn),記憶棒接口標(biāo)準(zhǔn),xD圖片卡接口標(biāo)準(zhǔn),集成驅(qū)動電子裝置(IDE)接口標(biāo)準(zhǔn),串行高級技術(shù)附件(SATA)接口標(biāo)準(zhǔn),外部SATA(eSATA)接口標(biāo)準(zhǔn),小型計(jì)算機(jī)系統(tǒng)接口(SCSI)接口標(biāo)準(zhǔn),串行連接小型計(jì)算機(jī)系統(tǒng)接口(SAS)接口標(biāo)準(zhǔn),光纖通道接口標(biāo)準(zhǔn),以太網(wǎng)接口標(biāo)準(zhǔn),以及快速外圍組件互連(PCIe)接口標(biāo)準(zhǔn)。EC137)具有或參照閃存接口的任意前述EC,其中閃存接口與以下各項(xiàng)中的一項(xiàng)或多項(xiàng)兼容:開放NAND閃存接口(ONFI),切換模式接口,雙倍數(shù)據(jù)速率(DDR)同步接口,DDR2同步接口,同步接口,以及異步接口。EC138)具有或參照計(jì)算主機(jī)的任意前述EC,其中計(jì)算主機(jī)包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):計(jì)算機(jī),工作站計(jì)算機(jī),服務(wù)器計(jì)算機(jī),存儲服務(wù)器,存儲附接網(wǎng)絡(luò)(SAN),網(wǎng)絡(luò)附接存儲(NAS)設(shè)備,直接附接存儲(DAS)設(shè)備,存儲器具,個(gè)人計(jì)算機(jī)(PC),膝上電腦,筆記本電腦,上網(wǎng)本電腦,平板設(shè)備或電腦,超極本電腦,電子閱讀設(shè)備(電子閱讀器),個(gè)人數(shù)字助理(PDA),導(dǎo)航系統(tǒng),(手持式)全球定位系統(tǒng)(GPS)設(shè)備,汽車控制系統(tǒng),汽車媒體控制系統(tǒng)或計(jì)算機(jī),打印機(jī)、復(fù)印機(jī)或傳真機(jī)或多合一設(shè)備,銷售點(diǎn)(POS)設(shè)備,現(xiàn)金出納機(jī),媒體播放器,電視機(jī),媒體記錄器,數(shù)字視頻錄像機(jī)(DVR),數(shù)碼相機(jī),蜂窩手機(jī),無繩電話手機(jī),以及電子游戲機(jī)。EC139)具有或參照至少一個(gè)閃存設(shè)備的任意前述EC,其中至少一個(gè)閃存設(shè)備的至少一部分包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):NAND閃存技術(shù)存儲單元,以及NOR閃存技術(shù)存儲單元。EC140)具有或參照至少一個(gè)閃存設(shè)備的任意前述EC,其中至少一個(gè)閃存設(shè)備的至少一部分包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):單層單元(SLC)閃存技術(shù)存儲單元,以及多層單元(MLC)閃存技術(shù)存儲單元。EC141)具有或參照至少一個(gè)閃存設(shè)備的任意前述EC,其中至少一個(gè)閃存設(shè)備的至少一部分包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):基于多晶硅技術(shù)的電荷存儲單元,以及基于氮化硅技術(shù)的電荷存儲單元。EC142)具有或參照至少一個(gè)閃存設(shè)備的任意前述EC,其中至少一個(gè)閃存設(shè)備的至少一部分包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng):基于二維技術(shù)的閃存技術(shù),以及基于三維技術(shù)的閃存技術(shù)。系統(tǒng)在某些實(shí)施方式中,諸如SSD的I/O設(shè)備包括SSD控制器。SSD控制器充當(dāng)SSD的主機(jī)接口和NVM之間的橋接器,并執(zhí)行經(jīng)由SSD的主機(jī)接口從計(jì)算主機(jī)發(fā)送的主機(jī)協(xié)議的命令。至少一部分命令指示SSD寫入并讀取具有分別從計(jì)算主機(jī)和向計(jì)算主機(jī)發(fā)送的數(shù)據(jù)的NVM。在進(jìn)一步的實(shí)施方式中,SSD控制器經(jīng)啟用以使用映射來在主機(jī)協(xié)議的LBA和NVM中的物理存儲地址之間轉(zhuǎn)換。在進(jìn)一步的實(shí)施方式中,映射的至少一部分用于I/O設(shè)備的私有存儲(對計(jì)算主機(jī)不可見)。例如,計(jì)算主機(jī)不可訪問的LBA的一部分被I/O設(shè)備用來管理對日志、統(tǒng)計(jì)或其他私有數(shù)據(jù)的訪問。在某些實(shí)施方式中,訪問NVM中不同大小配量的壓縮數(shù)據(jù)在某些使用場景下具有提高的存儲效率。例如,SSD控制器從計(jì)算主機(jī)接收(未壓縮)數(shù)據(jù)(例如,與磁盤寫入命令相關(guān)),壓縮該數(shù)據(jù),并將壓縮后的數(shù)據(jù)存儲到閃存中。響應(yīng)于來自計(jì)算主機(jī)的后續(xù)請求(例如,與磁盤讀取命令相關(guān)),SSD控制器從閃存中讀取壓縮數(shù)據(jù),對壓縮數(shù)據(jù)進(jìn)行解壓,并向計(jì)算主機(jī)提供未壓縮數(shù)據(jù)。根據(jù)不同大小量子將壓縮數(shù)據(jù)存儲在閃存中,量子大小由于壓縮算法、操作模式和各種數(shù)據(jù)的壓縮效率等而變化。SSD控制器通過查閱所包括的映射表對數(shù)據(jù)進(jìn)行部分解壓以確定報(bào)頭存儲在閃存中的位置。SSD控制器解析從閃存獲得的報(bào)頭以確定適當(dāng)?shù)模▔嚎s)數(shù)據(jù)存儲在閃存中的位置。SSD控制器對來自閃存的適當(dāng)?shù)臄?shù)據(jù)進(jìn)行解壓以產(chǎn)生未壓縮數(shù)據(jù)并將其提供給計(jì)算主機(jī)。在即時(shí)應(yīng)用中,解壓(及其變型)與減壓(及其變型)同義。在各種實(shí)施方式中,SSD控制器包括與計(jì)算主機(jī)交互的主機(jī)接口、與NVM諸如閃存交互的接口以及用于控制接口并進(jìn)行(和/或控制進(jìn)行的各方面)壓縮和解壓,以及較低級冗余和/或糾錯(cuò)、較高級冗余和/或糾錯(cuò)及使用獨(dú)立硅元件的動態(tài)較高級冗余模式管理的電路。根據(jù)各種實(shí)施方式,某些主機(jī)接口與USB接口標(biāo)準(zhǔn)、CF接口標(biāo)準(zhǔn)、MMC接口標(biāo)準(zhǔn)、eMMC接口標(biāo)準(zhǔn)、Thunderbolt接口標(biāo)準(zhǔn)、UFS接口標(biāo)準(zhǔn)、SD接口標(biāo)準(zhǔn)、記憶棒接口標(biāo)準(zhǔn)、xD圖片卡接口標(biāo)準(zhǔn)、IDE接口標(biāo)準(zhǔn)、SATA接口標(biāo)準(zhǔn)、SCSI接口標(biāo)準(zhǔn)、SAS接口標(biāo)準(zhǔn)和PCIe接口標(biāo)準(zhǔn)中的一個(gè)或多個(gè)兼容。根據(jù)各種實(shí)施方式,計(jì)算主機(jī)是計(jì)算機(jī)、工作站計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、存儲服務(wù)器、SAN、NAS設(shè)備、DAS設(shè)備、存儲器具、PC、膝上電腦、筆記本電腦、上網(wǎng)本電腦、平板設(shè)備或電腦、超極本電腦、電子閱讀設(shè)備(諸如電子閱讀器)、PDA、導(dǎo)航系統(tǒng)、(手持式)GPS設(shè)備、汽車控制系統(tǒng)、汽車媒體控制系統(tǒng)或計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)或傳真機(jī)或多合一設(shè)備、POS設(shè)備、現(xiàn)金出納機(jī)、媒體播放器、電視機(jī)、媒體記錄器、DVR、數(shù)碼相機(jī)、蜂窩手機(jī)、無繩電話手機(jī)和電子游戲機(jī)中的所有或任意部分。在某些實(shí)施方式中,接口主機(jī)(諸如SAS/SATA橋接器)作為計(jì)算主機(jī)和/或作為計(jì)算主機(jī)的橋接器進(jìn)行操作。在各種實(shí)施方式中,SSD控制器包括一個(gè)或多個(gè)處理器??刂破鲌?zhí)行固件以控制和/或進(jìn)行SSD控制器的操作。SSD控制器與計(jì)算主機(jī)通信以發(fā)送并接收命令和/或狀態(tài)以及數(shù)據(jù)。計(jì)算主機(jī)執(zhí)行操作系統(tǒng)、驅(qū)動和應(yīng)用程序中的一個(gè)或多個(gè)。計(jì)算主機(jī)與SSD控制器的通信任選地和/或可選地是經(jīng)由驅(qū)動和/或經(jīng)由應(yīng)用程序進(jìn)行的。在第一示例中,與SSD控制器的所有通信是經(jīng)由驅(qū)動進(jìn)行的,并且應(yīng)用程序向驅(qū)動提供驅(qū)動轉(zhuǎn)換為SSD控制器的具體命令的較高級命令。在第二示例中,驅(qū)動實(shí)現(xiàn)旁通模式并且使應(yīng)用程序能夠經(jīng)由驅(qū)動向SSD控制器發(fā)送具體命令。在第三示例中,PCIeSSD控制器支持一個(gè)或多個(gè)虛擬函數(shù)(VF),從而啟用應(yīng)用程序,一旦配置,就繞過驅(qū)動而與SSD控制器直接通信。根據(jù)各種實(shí)施方式,某些SSD與由磁性和/或光學(xué)非易失性存儲器(諸如,HDD、CD驅(qū)動器及DVD驅(qū)動器)所使用的形狀因數(shù)、電接口和/或協(xié)議兼容。在各種實(shí)施方式中,SSD使用零或零以上奇偶碼、零或零以上RS碼、零或零以上BCH碼、零或零以上維特比或其他格子碼及零或零以上LDPC碼。圖1A示出了包括使用自身日志記錄和層級一致性來管理非易失性存儲,諸如閃存的SSD控制器的SSD101的實(shí)施方式的所選細(xì)節(jié)。SSD控制器用于管理諸如經(jīng)由NVM元件(例如,閃存)實(shí)現(xiàn)的非易失性存儲。SSD控制器100經(jīng)由一個(gè)或多個(gè)外部接口110與主機(jī)(未示出)通信耦合。根據(jù)各種實(shí)施方式,外部接口110是以下各項(xiàng)中的一項(xiàng)或多項(xiàng):SATA接口;SAS接口;PCIe接口;光纖通道接口;外部接口(諸如10千兆以太網(wǎng));任意前述接口的非標(biāo)準(zhǔn)版本;定制接口;或用于將存儲和/或通信和/或計(jì)算設(shè)備互連的任何其他類型的接口。例如,在某些實(shí)施方式中,SSD控制器100包括SATA接口和PCIe接口。SSD控制器100進(jìn)一步經(jīng)由一個(gè)或多個(gè)設(shè)備接口190與包括一個(gè)或多個(gè)存儲設(shè)備(諸如,閃存設(shè)備192的一個(gè)或多個(gè)示例)的NVM199通信耦合。根據(jù)各種實(shí)施方式,設(shè)備接口190是以下各項(xiàng)中的一項(xiàng)或多項(xiàng):異步接口;同步接口;單倍數(shù)據(jù)速率(SDR)接口;雙倍數(shù)據(jù)速率(DDR)接口;DRAM兼容DDR或DDR2同步接口;ONFI兼容接口(諸如,ONFI2.2orONFI3.0兼容接口);切換模式兼容閃存接口;任意前述接口的非標(biāo)準(zhǔn)版本;定制接口;或用于連接至存儲設(shè)備的任何其他類型的接口。在某些實(shí)施方式中,每一個(gè)閃存設(shè)備192具有一個(gè)或多個(gè)個(gè)別閃存芯片194。根據(jù)閃存設(shè)備192的具體閃存設(shè)備的類型,具體閃存設(shè)備192中的多個(gè)閃存芯片194任選地和/或可選地并行訪問。閃存設(shè)備192只表示經(jīng)啟用以與SSD控制器100通信耦合的一種類型的存儲設(shè)備。在各種實(shí)施方式中,任何類型的存儲設(shè)備都是可使用的,諸如SLCNAND閃存、MLCNAND閃存、NOR閃存、使用基于多晶硅或氮化硅技術(shù)的電荷存儲單元的閃存、基于二維或三維技術(shù)的閃存、只讀存儲器、靜態(tài)隨機(jī)存取存儲器、動態(tài)隨機(jī)存取存儲器、鐵磁性存儲器、相變存儲器、賽道存儲器、ReRAM或任何其他類型的存儲器設(shè)備或存儲介質(zhì)。根據(jù)各種實(shí)施方式,設(shè)備接口190被組織為:一條或多條總線,其中每條總線具有閃存設(shè)備192的一個(gè)或多個(gè)示例;一個(gè)或多個(gè)總線組,其中每條總線具有閃存設(shè)備192的一個(gè)或多個(gè)示例,其中組中的總線通常被并行訪問;或至設(shè)備接口190的閃存設(shè)備192的一個(gè)或多個(gè)示例的任何其他組織。繼續(xù)圖1A,SSD控制器100具有一個(gè)或多個(gè)模塊,諸如主機(jī)接口111、數(shù)據(jù)處理121、緩沖器131、映射141、再循環(huán)器151、ECC161、設(shè)備接口邏輯191以及CPU171。圖1A中所示的具體模塊和互連僅僅表示一個(gè)實(shí)施方式,可以想到一些或所有模塊以及未示出的其他模塊的多種布置和互連。在第一示例中,在某些實(shí)施方式中,存在兩個(gè)或兩個(gè)以上主機(jī)接口111來提供雙通道。在第二示例中,在某些實(shí)施方式中,數(shù)據(jù)處理121和/或ECC161與緩沖器131組合。在第三示例中,在某些實(shí)施方式中,主機(jī)接口111直接與緩沖器131耦合,并且數(shù)據(jù)處理121任選地和/或可選地對于存儲在緩沖器131中的數(shù)據(jù)進(jìn)行操作。在第四示例中,在某些實(shí)施方式中,設(shè)備接口邏輯191直接與緩沖器131耦合,并且ECC161任選地和/或可選地對于存儲在緩沖器131中的數(shù)據(jù)進(jìn)行操作。主機(jī)接口111經(jīng)由外部接口110發(fā)送和接收命令和/或數(shù)據(jù),并且,在某些實(shí)施方式中,經(jīng)由標(biāo)簽跟蹤113來跟蹤單獨(dú)命令的進(jìn)程。例如,命令包括指定要讀取的數(shù)據(jù)的地址(諸如LBA)和量(諸如LBA配量,例如扇區(qū)的數(shù)量)的讀取命令;作為響應(yīng),SSD提供讀取狀態(tài)和/或讀取數(shù)據(jù)。再如,命令包括指定要寫入的數(shù)據(jù)的地址(諸如LBA)和量(諸如LBA配量,例如扇區(qū)的數(shù)量)的寫入命令;作為響應(yīng),SSD提供寫入狀態(tài)和/或請求寫入數(shù)據(jù)且隨后任選提供寫入狀態(tài)。對于又一示例,命令包括指定不再需要分配的一個(gè)或多個(gè)地址(諸如一個(gè)或多個(gè)LBA)的解分配命令(例如,修整命令);作為響應(yīng),SSD相應(yīng)地修改映射且任選提供解分配狀態(tài)。在某些上下文中,ATA兼容TRIM命令是示例性解分配命令。對于又一示例,命令包括超級電容器測試命令或數(shù)據(jù)強(qiáng)化成功查詢;作為響應(yīng),SSD提供適當(dāng)狀態(tài)。在某些實(shí)施方式中,主機(jī)接口111與SATA協(xié)議兼容,并且,使用NCQ命令而啟用以具有最多32條待處理命令,每條命令有表示為數(shù)字0至31的唯一標(biāo)簽。在某些實(shí)施方式中,標(biāo)簽跟蹤113經(jīng)啟用以使經(jīng)由外部接口110接收的命令的外部標(biāo)簽與用于在SSD控制器100處理過程中跟蹤命令的內(nèi)部標(biāo)簽相關(guān)聯(lián)。根據(jù)各種實(shí)施方式,揭示以下各項(xiàng)中的一個(gè)或多個(gè):數(shù)據(jù)處理121任選地和/或可選地處理在緩沖器131與外部接口110之間發(fā)送的一些或所有數(shù)據(jù);以及數(shù)據(jù)處理121任選地和/或可選地處理存儲在緩沖器131中的數(shù)據(jù)。在某些實(shí)施方式中,數(shù)據(jù)處理121使用一個(gè)或多個(gè)引擎123來執(zhí)行以下各項(xiàng)中的一項(xiàng)或多項(xiàng):格式化;重新格式化;轉(zhuǎn)碼;以及任何其他的數(shù)據(jù)處理和/或操控任務(wù)。緩沖器131存儲自設(shè)備接口190發(fā)送至外部接口110/自外部接口110發(fā)送至設(shè)備接口190的數(shù)據(jù),在某些實(shí)施方式中,緩沖器131另外存儲由SSD控制器100使用的系統(tǒng)數(shù)據(jù)(諸如某些或全部映射表)以管理閃存設(shè)備192的一個(gè)或多個(gè)情況。在各種實(shí)施方式中,緩沖器131具有以下各項(xiàng)中的一個(gè)或多個(gè):用于臨時(shí)存儲數(shù)據(jù)的存儲器197;用于控制去往和/或來自緩沖器131的數(shù)據(jù)的移動的DMA133;用于提供較高級錯(cuò)誤校正和/或冗余功能的ECC-X135;和其他數(shù)據(jù)移動和/或操控功能。較高級冗余功能的示例是類似于RAID的能力(例如,RASIE),其中冗余在閃存設(shè)備(例如閃存設(shè)備192的多個(gè)閃存設(shè)備)級和/或閃存芯片(諸如閃存芯片194)級上而非在磁盤級上。根據(jù)各種實(shí)施方式,揭示以下各項(xiàng)中的一個(gè)或多個(gè):ECC161任選地和/或可選地處理在緩沖器131和設(shè)備接口190之間發(fā)送的一些或所有數(shù)據(jù);以及ECC161任選地和/或可選地處理存儲在緩沖器131內(nèi)的數(shù)據(jù)。在某些實(shí)施方式中,ECC161用于提供較低級錯(cuò)誤校正和/或諸如根據(jù)一個(gè)或多個(gè)ECC計(jì)算的冗余功能。在某些實(shí)施方式中,ECC161實(shí)現(xiàn)以下各項(xiàng)中的一個(gè)或多個(gè):CRC碼;漢明碼;RS碼;BCH碼;LDPC碼;維特比(Viterbi)碼;格子碼;硬判決碼;軟判決碼;基于擦除的碼;任何錯(cuò)誤檢測和/或糾正碼;以及上述的任意組合。在某些實(shí)施方式中,ECC161包括一個(gè)或多個(gè)解碼器(諸如LDPC解碼器)。設(shè)備接口邏輯191經(jīng)由設(shè)備接口190控制閃存設(shè)備192的實(shí)例(instance)。設(shè)備接口邏輯191經(jīng)啟用以根據(jù)閃存設(shè)備192的協(xié)議將數(shù)據(jù)發(fā)送到或從閃存設(shè)備192發(fā)送數(shù)據(jù)。設(shè)備接口邏輯191包括調(diào)度193,從而經(jīng)由設(shè)備接口190可選地順序控制閃存設(shè)備192的實(shí)例。例如,在某些實(shí)施方式中,調(diào)度193經(jīng)啟用從而將對于閃存設(shè)備192的實(shí)例的操作排隊(duì),并且當(dāng)單獨(dú)的閃存設(shè)備192(或閃存芯片194)的實(shí)例可用時(shí),選擇性地地將操作發(fā)送至單獨(dú)的閃存設(shè)備192(或閃存芯片194)的實(shí)例。映射141在用于外部接口110上的數(shù)據(jù)尋址與用于設(shè)備接口190上的數(shù)據(jù)尋址之間轉(zhuǎn)換,使用表143將外部數(shù)據(jù)地址映射至NVM199中的位置。例如,在某些實(shí)施方式中,映射141經(jīng)由由表143提供的映射將用于外部接口110上的LBA轉(zhuǎn)換成針對一個(gè)或多個(gè)閃存芯片192的塊和/或頁地址。對于自驅(qū)動制造或解分配起就未曾被寫入的LBA,該映射指向缺省值以傳回LBA是否被讀取。例如,在處理解分配命令時(shí),修改該映射以使得對應(yīng)于解分配的LBA的條目指向缺省值中的一個(gè)。在各種實(shí)施方式中,存在各種缺省值,其各自具有對應(yīng)指針。多個(gè)缺省值使得能夠?qū)⒛承┙夥峙涞腖BA(諸如在第一范圍中)讀取為一個(gè)缺省值,同時(shí)其他解分配的LBA(諸如在第二范圍中)讀取為另一個(gè)缺省值。在各種實(shí)施方式中,缺省值由閃存、硬件、固件、命令和/或基元引數(shù)(primitiveargument)和/或參數(shù)、可編程寄存器或其各種組合定義。在某些實(shí)施方式中,映射141使用表143從而在外部接口110上使用的地址和設(shè)備接口190上使用的數(shù)據(jù)尋址之間執(zhí)行和/或查詢轉(zhuǎn)換。根據(jù)各種實(shí)施方式,表143為以下各項(xiàng)中的一個(gè)或多個(gè):一級映射;二級映射;多級映射;映射緩存;壓縮映射;一個(gè)地址空間至另一個(gè)地址空間的任何類型映射;以及上述的任意組合。根據(jù)各種實(shí)施方式,表143包括以下各項(xiàng)中的一個(gè)或多個(gè):靜態(tài)隨機(jī)存取存儲器;動態(tài)隨機(jī)存取存儲器;非易失性存儲器;NVM(諸如閃存);緩存存儲器;片上存儲器;片外存儲器;和上述的任意組合。在某些實(shí)施方式中,再循環(huán)器151執(zhí)行垃圾收集。例如,在某些實(shí)施方式中,閃存設(shè)備192的實(shí)例包含在可重寫入之前必須擦除的塊。再循環(huán)器151經(jīng)啟用以例如通過掃描映射141保持的映射來確定閃存設(shè)備192的實(shí)例的哪些部分正在活躍地使用(例如,經(jīng)分配而非經(jīng)解分配),然后使閃存設(shè)備192的實(shí)例的未使用(例如,解分配)部分通過擦除未使用部分而可用于寫入。在進(jìn)一步的實(shí)施方式中,再循環(huán)器151經(jīng)啟用以移動存儲在閃存設(shè)備192的實(shí)例內(nèi)的數(shù)據(jù),以使閃存設(shè)備192的實(shí)例的更大的連續(xù)部分可用于寫入。在某些實(shí)施方式中,閃存設(shè)備192的實(shí)例可選地和/或動態(tài)地經(jīng)配置、管理和/或使用以具有用于存儲不同類型和/或性質(zhì)的數(shù)據(jù)的一個(gè)或多個(gè)記錄帶。記錄帶的數(shù)目、布置、大小和類型可動態(tài)地改變。例如,將來自計(jì)算主機(jī)的數(shù)據(jù)寫入熱(活躍)記錄帶,而將來自再循環(huán)器151的數(shù)據(jù)寫入冷(較少活躍)記錄帶中。在某些使用場景下,如果計(jì)算主機(jī)寫入長的順序流,則熱記錄帶的大小增加,而如果計(jì)算主機(jī)隨機(jī)寫入或幾乎不寫入,則冷記錄帶的大小增加。CPU171控制SSD控制器100的相應(yīng)部分。CPU171包括CPU內(nèi)核172。根據(jù)各種實(shí)施方式,CPU內(nèi)核172為一個(gè)或多個(gè)單核或多核處理器。在某些實(shí)施方式中,CPU內(nèi)核172中的相應(yīng)處理器內(nèi)核是多線程的。CPU內(nèi)核172包括指令和/或數(shù)據(jù)緩存器和/或存儲器。例如,指令存儲器包括能使CPU內(nèi)核執(zhí)行軟件(有時(shí)稱為固件)以控制SSD控制器100的指令。在某些實(shí)施方式中,CPU內(nèi)核172執(zhí)行的一些或所有固件存儲在閃存設(shè)備192的實(shí)例上(例如,如圖1B中的NVM199的固件106示出的)。在各種實(shí)施方式中,CPU171進(jìn)一步包括:在經(jīng)由外部接口110接收的命令處于進(jìn)程的同時(shí)來跟蹤和控制該命令的命令管理173;控制緩沖器131的分配和使用的緩沖器管理175;控制映射141的轉(zhuǎn)換管理177;控制數(shù)據(jù)尋址的一致性并避免諸如外部數(shù)據(jù)訪問和再循環(huán)數(shù)據(jù)訪問之間沖突的一致性管理179;控制設(shè)備接口邏輯191的設(shè)備管理181;控制身份信息的修改和通信的身份管理182;以及任選其他管理單元。根據(jù)各種實(shí)施方式,CPU171執(zhí)行的任何或所有管理功能是由硬件、軟件(諸如在CPU內(nèi)核172或經(jīng)由外部接口110連接的主機(jī)上執(zhí)行的固件)或其任何組合進(jìn)行控制和/或管理的。在某些實(shí)施方式中,CPU171經(jīng)啟用以執(zhí)行其他管理任務(wù),例如,以下各項(xiàng)中的一個(gè)或多個(gè):收集和/或報(bào)告性能統(tǒng)計(jì);實(shí)現(xiàn)SMART;控制電力排序、控制和/或監(jiān)測和/或調(diào)整電力消耗;對電力故障做出響應(yīng);控制和/或監(jiān)測和/或調(diào)整時(shí)鐘速率;以及其他管理任務(wù)。各種實(shí)施方式包括與SSD控制器100類似并且與各種計(jì)算主機(jī)的操作兼容的計(jì)算主機(jī)閃存控制器,諸如,經(jīng)由主機(jī)接口111和/或外部接口110適配。各種計(jì)算主機(jī)包括以下各項(xiàng)中的一個(gè)或其任何組合:計(jì)算機(jī)、工作站計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、存儲服務(wù)器、SAN、NAS設(shè)備、DAS設(shè)備、存儲器具、PC、膝上電腦、筆記本電腦、上網(wǎng)本電腦、平板設(shè)備或電腦、超極本電腦、電子閱讀設(shè)備(諸如電子閱讀器)、PDA、導(dǎo)航系統(tǒng)、(手持式)GPS設(shè)備、汽車控制系統(tǒng)、汽車媒體控制系統(tǒng)或計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)或傳真機(jī)或多合一設(shè)備、POS設(shè)備、現(xiàn)金出納機(jī)、媒體播放器、電視機(jī)、媒體記錄器、DVR、數(shù)碼相機(jī)、蜂窩手機(jī)、無繩電話手機(jī)和電子游戲機(jī)。在各種實(shí)施方式中,SSD控制器(或計(jì)算主機(jī)閃存控制器)的所有或任意部分在單個(gè)IC、多芯片IC的單芯片、多芯片IC的多個(gè)芯片或多個(gè)IC上實(shí)現(xiàn)。例如,緩沖器131在與SSD控制器100的其他元件相同的芯片上實(shí)現(xiàn)。再如,緩沖器131在與SSD控制器100的其他元件不同的芯片上實(shí)現(xiàn)。圖1B示出了包括圖1A的SSD的一個(gè)或多個(gè)示例的系統(tǒng)的各種實(shí)施方式的所選細(xì)節(jié)。SSD101包括經(jīng)由設(shè)備接口190與NVM199耦合的SSD控制器100。該圖示出了各類實(shí)施方式:直接與主機(jī)耦合的單個(gè)SSD,各自經(jīng)由相應(yīng)外部接口分別直接與主機(jī)耦合的多個(gè)SSD,以及經(jīng)由相應(yīng)互連元件間接與主機(jī)耦合的一個(gè)或多個(gè)SSD。作為直接與主機(jī)耦合的單個(gè)SSD的示例性實(shí)施方式,SSD101的一個(gè)示例經(jīng)由外部接口110直接與主機(jī)102耦合(例如,省略、繞過或穿過切換器/光纖/中間控制器103)。作為各自經(jīng)由相應(yīng)外部接口直接與主機(jī)耦合的多個(gè)SSD的示例性實(shí)施方式,SSD101的多個(gè)示例中的每一個(gè)經(jīng)由由外部接口110直接與主機(jī)102耦合(例如,省略、繞過或穿過切換器/光纖/中間控制器103)。作為經(jīng)由相應(yīng)互連元件間接與主機(jī)耦合的一個(gè)或多個(gè)SSD的示例性實(shí)施方式,SSD101的一個(gè)或多個(gè)示例中的每一個(gè)分別間接與主機(jī)102耦合。每個(gè)間接耦合經(jīng)由與切換器/光纖/中間控制器103耦合的外部接口110以及與主機(jī)102耦合的中間接口104的相應(yīng)示例。包括切換器/光纖/中間控制器103的實(shí)施方式的某些實(shí)施方式還包括經(jīng)由存儲器接口180耦合且SSD可訪問的卡存儲器112C。在各種實(shí)施方式中,SSD、切換器/光纖/中間控制器103和/或卡存儲器中的一個(gè)或多個(gè)包括在物理可識別的模塊、卡或可插入元件(例如,I/O卡116)上。在某些實(shí)施方式中,SSD101(或其變型)對應(yīng)于與作為主機(jī)102操作的起始器耦合的SAS驅(qū)動器或SATA驅(qū)動器。主機(jī)102經(jīng)啟用以執(zhí)行主機(jī)軟件115的相應(yīng)元件,諸如OS105、驅(qū)動107、應(yīng)用程序109和多設(shè)備管理軟件114的各種組合。虛線箭頭107D表示主機(jī)軟件←→I/O設(shè)備通信,例如,經(jīng)由驅(qū)動107及應(yīng)用程序109(經(jīng)由驅(qū)動107或直接作為VF)自SSD101的示例中的一個(gè)或多個(gè)發(fā)送至OS105中的一個(gè)或多個(gè)及自O(shè)S105的一個(gè)或多個(gè)接收至SSD101的示例中的一個(gè)或多個(gè)的數(shù)據(jù)。OS105包括和/或經(jīng)啟用以借助與SSD交互的驅(qū)動(概念上由驅(qū)動107示出)操作。Windows的各種版本(例如,95、98、ME、NT、XP、2000、Server、Vista及7)、Linux的各種版本(例如,RedHat、Debian及Ubuntu)及MacOS的各種版本(例如,8、9及X)是OS105的示例。在各種實(shí)施方式中,驅(qū)動是借助標(biāo)準(zhǔn)接口和/或協(xié)議諸如SATA、AHCI或NVMExpress)操作的標(biāo)準(zhǔn)和/或通用驅(qū)動(有時(shí)稱為“緊縮套裝”或“預(yù)安裝”),或者任選定制和/或供應(yīng)商具體以啟用SSD101所具體的命令的使用。某些驅(qū)動器和/或驅(qū)動具有穿過模式以啟用應(yīng)用級程序,諸如經(jīng)由最佳化NAND訪問(有時(shí)稱為ONA)或直接NAND訪問(有時(shí)稱為DNA)技術(shù)的應(yīng)用程序,以將命令直接通信至SSD101,使得定制應(yīng)用程序能夠甚至借助通用驅(qū)動使用SSD101所具體的命令。ONA技術(shù)包括以下各項(xiàng)中的一個(gè)或多個(gè):非標(biāo)準(zhǔn)修飾符(提示)的使用;供應(yīng)商具體命令的使用;非標(biāo)準(zhǔn)統(tǒng)計(jì)諸如根據(jù)可壓縮性的實(shí)際NVM使用的通信;以及其他技術(shù)。DNA技術(shù)包括以下各項(xiàng)中的一個(gè)或多個(gè):提供對NVM的未經(jīng)映射讀取、寫入和/或擦除存儲的非標(biāo)準(zhǔn)命令或供應(yīng)商具體命令的使用,諸如通過繞過I/O設(shè)備原本將進(jìn)行的數(shù)據(jù)的格式化來提供對NVM的更直接訪問的非標(biāo)準(zhǔn)或供應(yīng)商具體命令的使用;以及其他技術(shù)。驅(qū)動的示例是不具有ONA或DNA支持的驅(qū)動、ONA啟用的驅(qū)動、DNA啟用的驅(qū)動及ONA/DNA啟用的驅(qū)動。驅(qū)動的進(jìn)一步示例是供應(yīng)商提供、供應(yīng)商開發(fā)和/或供應(yīng)商增強(qiáng)驅(qū)動及客戶端提供、客戶端開發(fā)和/或客戶端增強(qiáng)驅(qū)動。應(yīng)用級程序的示例是不具有ONA或DNA支持的應(yīng)用程序、ONA啟用的應(yīng)用程序、DNA啟用的應(yīng)用程序及ONA/DNA啟用的應(yīng)用程序。虛線箭頭109D表示應(yīng)用程序I/O設(shè)備通信(例如,經(jīng)由驅(qū)動繞過或經(jīng)由用于應(yīng)用程序的VF繞過),例如,ONA啟用的應(yīng)用程序及與SSD通信(諸如不具有使用OS作為媒介物的應(yīng)用程序)的ONA啟用的驅(qū)動。虛線箭頭109V表示應(yīng)用程序←→I/O設(shè)備通信(例如,經(jīng)由用于應(yīng)用程序的VF繞過),例如DNA啟用的應(yīng)用程序和與SSD通信(諸如不具有使用OS或驅(qū)動作為媒介物的應(yīng)用程序)的DNA啟用的驅(qū)動。在某些實(shí)施方式中,NVM199的一個(gè)或多個(gè)部分用于固件存儲,例如固件106。固件存儲包括一個(gè)或多個(gè)固件圖像(或其部分)。例如,固件圖像具有(例如)通過SSD控制器100的CPU內(nèi)核172執(zhí)行的固件的一個(gè)或多個(gè)圖像。再如,固件圖像具有(例如)在固件執(zhí)行期間有CPU內(nèi)核參考的常數(shù)、參數(shù)值及NVM設(shè)備信息的一個(gè)或多個(gè)圖像。固件的圖像對應(yīng)于(例如)當(dāng)前固件圖像及零或零以上先前(相對于固件更新)固件圖像。在各種實(shí)施方式中,固件提供通用、標(biāo)準(zhǔn)、ONA和/或DNA操作模式。在某些實(shí)施方式中,經(jīng)由任選由驅(qū)動通信和/或提供的密鑰或各種軟件技術(shù)來啟用固件操作模式中的一個(gè)或多個(gè)(例如,一個(gè)或多個(gè)API“未經(jīng)鎖定”)。在缺少切換器/光纖/中間控制器的某些實(shí)施方式中,SSD經(jīng)由外部接口110直接與主機(jī)耦合。在各種實(shí)施方式中,SSD控制器100經(jīng)由其他控制器,諸如RAID控制器的一個(gè)或多個(gè)中間階層與主機(jī)耦合。在某些實(shí)施方式中,SSD101(或其變型)對應(yīng)于SAS驅(qū)動器或SATA驅(qū)動器,且切換器/光纖/中間控制器103對應(yīng)于擴(kuò)展器,該擴(kuò)展器又與起始器耦合,或可替代地,切換器/光纖/中間控制器103對應(yīng)于橋接器,該橋接器經(jīng)由擴(kuò)展器間接與起始器耦合。在某些實(shí)施方式中,切換器/光纖/中間控制器103包括一個(gè)或多個(gè)PCIe切換器和/或光纖。在各種實(shí)施方式中,諸如在其中主機(jī)102作為計(jì)算主機(jī)(例如,計(jì)算機(jī)、工作站計(jì)算機(jī)、服務(wù)器計(jì)算器、存儲服務(wù)器、SAN、NAS設(shè)備、DAS設(shè)備、存儲器具、PC、膝上電腦、筆記本電腦和/或上網(wǎng)本電腦)的某些實(shí)施方式中,計(jì)算主機(jī)任選經(jīng)啟用以與一個(gè)或多個(gè)本地和/或遠(yuǎn)程服務(wù)器(例如,任選服務(wù)器118)通信(例如,經(jīng)由任選I/O&存儲設(shè)備/資源117以及任選LAN/WAN119)。例如,通信啟用SSD101元件的任意一個(gè)或多個(gè)的本地和/或遠(yuǎn)程訪問、管理和/或使用。在某些實(shí)施方式中,通信完全地或部分地經(jīng)由以太網(wǎng)。在某些實(shí)施方式中,通信完全地或部分地經(jīng)由光纖通道。在某些實(shí)施方式中,LAN/WAN119表示一個(gè)或多個(gè)局域和/或廣域網(wǎng),諸如服務(wù)器場中的網(wǎng)絡(luò)、耦合服務(wù)器場的網(wǎng)絡(luò)、城域網(wǎng)和互聯(lián)網(wǎng)中的任意一個(gè)或多個(gè)。在各種實(shí)施方式中,SSD控制器和/或計(jì)算主機(jī)閃存控制器結(jié)合一個(gè)或多個(gè)NVM一起實(shí)現(xiàn)為非易失性存儲組件,諸如USB存儲組件、CF存儲組件、MMC存儲組件、eMMC存儲組件、Thunderbolt存儲組件、UFS存儲組件、SD存儲組件、記憶棒存儲組件和xD圖片卡存儲組件。在各種實(shí)施方式中,SSD控制器(或計(jì)算主機(jī)閃存控制器)的所有或任何部分或其功能在主機(jī)(例如,圖1B的主機(jī)102)中實(shí)現(xiàn),控制器要與該主機(jī)耦合。在各種實(shí)施方式中,SSD控制器(或計(jì)算主機(jī)閃存控制器)的所有或任何部分或其功能經(jīng)由硬件(例如,邏輯電路)、軟件和/或固件(例如,驅(qū)動軟件和/或SSD控制固件)或其任意組合來實(shí)現(xiàn)。例如,ECC單元(諸如,類似于圖1A的ECC161和/或ECC-X135)的功能或與該ECC單元相關(guān)聯(lián)的功能經(jīng)由軟件在主機(jī)上實(shí)現(xiàn)且部分經(jīng)由固件和硬件的組合在SSD控制器中實(shí)現(xiàn)。再如,再循環(huán)器單元(諸如類似于圖1A的再循環(huán)器151)的功能或與該再循環(huán)器單元相關(guān)聯(lián)的功能部分地經(jīng)由軟件在主機(jī)上實(shí)現(xiàn)且部分地經(jīng)由硬件在計(jì)算主機(jī)閃存控制器中實(shí)現(xiàn)。映射操作圖2示出了映射LBA的LPN部分的實(shí)施方式的所選細(xì)節(jié)。在某些實(shí)施方式中,讀取單元是可獨(dú)立讀取的最細(xì)粒度的NVM,諸如NVM的頁面的一部分。在進(jìn)一步的實(shí)施方式中,讀取單元對應(yīng)于(較低級)錯(cuò)誤校正碼的校驗(yàn)位(有時(shí)稱為冗余)和由校驗(yàn)位保護(hù)的所有數(shù)據(jù)。例如,圖1A的ECC161經(jīng)由校驗(yàn)碼諸如經(jīng)由LDPC碼來實(shí)現(xiàn)錯(cuò)誤校正,并且讀取單元除由LDPC編碼位保護(hù)的數(shù)據(jù)位之外還對應(yīng)于實(shí)現(xiàn)LDPC碼的編碼位。在某些實(shí)施方式中,映射141諸如經(jīng)由表143(如圖1A所示)將LBA211的LPN213部分映射成LPN的映射信息221。LPN的映射信息(諸如LPN的映射信息221)有時(shí)被稱為映射條目。據(jù)說映射141使LPN與對應(yīng)映射條目相關(guān)聯(lián)。在各種實(shí)施方式中,映射經(jīng)由一個(gè)或多個(gè)相關(guān)查找,經(jīng)由一個(gè)或多個(gè)非相關(guān)查找,和/或經(jīng)由一個(gè)或多個(gè)其他技術(shù)。在某些實(shí)施方式中,SSD控制器100為潛在和/或活動主動使用中的每個(gè)LPN維持一個(gè)映射條目。在某些實(shí)施方式中,LPN的映射信息221包括相應(yīng)讀取單元地址223和讀取單元的長度225。在某些實(shí)施方式中,存儲長度和/或跨度,諸如通過將長度存儲為相對于跨度的補(bǔ)償來在讀取單元的長度225的所有或任意部分中進(jìn)行編碼。在進(jìn)一步的實(shí)施方式中,第一LPN與第一映射條目相關(guān)聯(lián),第二LPN(不用于第一LPN,但引用大小與由第一LPN引用的邏輯頁面的大小相同的邏輯頁面)與第二映射條目相關(guān)聯(lián),并且第一映射條目的讀取單元中的相應(yīng)長度不同于第二映射條目的讀取單元中的相應(yīng)長度。在各種實(shí)施方式中,在同一時(shí)間點(diǎn),第一LPN與第一映射條目相關(guān)聯(lián),第二LPN(不同于第一LPN)與第二映射條目相關(guān)聯(lián),并且第一映射條目的相應(yīng)讀取單元地址與第二映射條目的相應(yīng)讀取單元地址相同。在進(jìn)一步的實(shí)施方式中,與第一LPN相關(guān)聯(lián)的數(shù)據(jù)和與第二LPN相關(guān)聯(lián)的數(shù)據(jù)都存儲在NVM199中的同一設(shè)備的同一物理頁面中。根據(jù)各種實(shí)施方式,讀取單元地址223與以下各項(xiàng)中的一個(gè)或多個(gè)相關(guān)聯(lián):NVM中的開始地址;NVM中的結(jié)束地址;任意前述的補(bǔ)償;以及用于識別與LPN213相關(guān)聯(lián)的NVM的一部分的任何其他技術(shù)。圖3示出了在讀取單元地址訪問NVM以產(chǎn)生被組織為相應(yīng)讀取單元的讀取數(shù)據(jù),集體具有在讀取單元配量中測得的長度的實(shí)施方式的所選細(xì)節(jié)。根據(jù)各種實(shí)施方式,第一讀取單元313是以下各項(xiàng)中的一個(gè)或多個(gè):在NVM的地址空間中具有最低地址的讀取數(shù)據(jù)311中的讀取單元之一;讀取單元的固定讀取單元;讀取單元的任意讀取單元;讀取單元的可變讀取單元;以及通過任何其他技術(shù)選擇的讀取單元之一。在各種實(shí)施方式中,通過讀取不超過由單位單元的長度225指定的數(shù)量的讀取單元來啟用SSD控制器100以訪問NVM199并產(chǎn)生讀取數(shù)據(jù)311。圖4A示出了讀取單元(諸如圖3的讀取單元313或315)作為讀取單元401A的一個(gè)實(shí)施方式的所選細(xì)節(jié)。在各種實(shí)施方式和/或使用場景下,報(bào)頭1441A至報(bào)頭N419A是連續(xù)的,并且由每個(gè)報(bào)頭識別的相應(yīng)數(shù)據(jù)區(qū)域(諸如經(jīng)由相應(yīng)補(bǔ)償)繼最后一個(gè)報(bào)頭之后是連續(xù)的。數(shù)據(jù)區(qū)域集體形成數(shù)據(jù)字節(jié)421A。按位置順序存儲數(shù)據(jù)區(qū)域,并且該位置順序匹配存儲報(bào)頭的位置順序。例如,鑒于第一報(bào)頭,在讀取單元開始時(shí),第二報(bào)頭和第三報(bào)頭連續(xù)緊接著第一報(bào)頭。第一數(shù)據(jù)區(qū)域(通過第一報(bào)頭中的第一補(bǔ)償識別的)連續(xù)緊接著第三報(bào)頭。第二數(shù)據(jù)區(qū)域(通過第二報(bào)頭中的第二補(bǔ)償識別的)連續(xù)緊接著第一報(bào)頭。類似地,第三數(shù)據(jù)區(qū)域(通過第三報(bào)頭識別的)連續(xù)緊接著第二數(shù)據(jù)區(qū)域。圖4B示出了讀取單元(諸如圖3的讀取單元313或315)作為讀取單元401B的另一實(shí)施方式的所選細(xì)節(jié)。在各種實(shí)施方式和/或使用場景下,報(bào)頭標(biāo)記(HM)410B是表示以下連續(xù)的報(bào)頭(報(bào)頭1411B、報(bào)頭2412B…報(bào)頭N419B)的數(shù)量的任選初始域(諸如1字節(jié)域)。數(shù)據(jù)區(qū)域(數(shù)據(jù)字節(jié)421B、數(shù)據(jù)字節(jié)422B…數(shù)據(jù)字節(jié)429B)分別由報(bào)頭(報(bào)頭1411B、報(bào)頭2412B…報(bào)頭N419B)識別并按位置順序存儲,該位置順序與存儲報(bào)頭的位置順序相反。報(bào)頭開始于讀取單元的初端,而對應(yīng)數(shù)據(jù)區(qū)域開始于讀取單元的末端。在某些實(shí)施方式中,數(shù)據(jù)區(qū)域中的數(shù)據(jù)字節(jié)(例如,數(shù)據(jù)字節(jié)421B、數(shù)據(jù)字節(jié)422B…數(shù)據(jù)字節(jié)429B)按遞增順序(匹配位置順序的字節(jié)順序)排列,而在其他實(shí)施方式中,數(shù)據(jù)字節(jié)沿相反順序(相對于位置反向的字節(jié)順序)排列。在某些實(shí)施方式中,報(bào)頭標(biāo)記在讀取單元中使用,其中報(bào)頭和數(shù)據(jù)字節(jié)按同一位置順序存儲(例如,如圖4A所示)。在某些實(shí)施方式中,任選填充字節(jié)413A(或413B)符合與具體LPN相關(guān)聯(lián)的數(shù)據(jù)的粒度。例如,在某些實(shí)施方式中,如果數(shù)據(jù)字節(jié)421A(或集體為數(shù)據(jù)字節(jié)421B、數(shù)據(jù)字節(jié)422B…數(shù)據(jù)字節(jié)429B)具有少于固定量的剩余空間,諸如8字節(jié),在存儲與除了報(bào)頭1411A至報(bào)頭N419A(或報(bào)頭1411B、報(bào)頭2412B…報(bào)頭N419B)的最后一個(gè)報(bào)頭之后的所有報(bào)頭相關(guān)聯(lián)的數(shù)據(jù)之后,與最后報(bào)頭相關(guān)聯(lián)的LPN的數(shù)據(jù)開始于后續(xù)讀取單元。在進(jìn)一步的實(shí)施方式中,最后報(bào)頭中的具體補(bǔ)償值(例如,所有補(bǔ)償值)表示與最后報(bào)頭相關(guān)聯(lián)的LPN的數(shù)據(jù)開始于后續(xù)讀取單元。圖5示出了具有大量域的報(bào)頭(諸如,圖4A的報(bào)頭1411A至報(bào)頭N419A或圖4B的報(bào)頭1411B至報(bào)頭419B中的任意一個(gè))的實(shí)施方式的所選細(xì)節(jié)。在某些實(shí)施方式中,報(bào)頭為固定長度(例如,每個(gè)報(bào)頭的長度為相同數(shù)量的字節(jié))。報(bào)頭501包括域類型511、最后指示符513、標(biāo)志515、LPN517、長度519和補(bǔ)償521。根據(jù)各種實(shí)施方式,報(bào)頭501包括和/或與紀(jì)元523相關(guān)聯(lián)和/或任選地和/或可選地附加有或前面加有紀(jì)元523。類型域識別數(shù)據(jù)字節(jié)的類別。例如,類型域表示數(shù)據(jù)字節(jié)的類別為主機(jī)數(shù)據(jù)(例如,邏輯頁面數(shù)據(jù))或系統(tǒng)數(shù)據(jù)(例如映射信息或檢查點(diǎn)信息)中的一個(gè)。最后域表示報(bào)頭是數(shù)據(jù)字節(jié)之前的最后報(bào)頭。在具有報(bào)頭標(biāo)記的某些實(shí)施方式中,任選省略最后域。LPN域是報(bào)頭與其相關(guān)聯(lián)的LPN。LPN域啟用報(bào)頭解析以通過(例如)搜索報(bào)頭中LPN域與具體LPN匹配的報(bào)頭來確定與具體LPN相關(guān)聯(lián)的報(bào)頭中的具體報(bào)頭。長度域是數(shù)據(jù)字節(jié)的字節(jié)長度(例如,數(shù)據(jù)有多少字節(jié)在與報(bào)頭501相關(guān)聯(lián)的數(shù)據(jù)字節(jié)421A中)。在某些實(shí)施方式中,補(bǔ)償域中的補(bǔ)償根據(jù)具體粒度(例如,8字節(jié)粒度)進(jìn)行取整。紀(jì)元域是識別對象的寫入順序的時(shí)間標(biāo)記,相對于相同或不同流的其他對象,報(bào)頭是該對象的一部分。在各種實(shí)施方式中,與具體LPN相關(guān)聯(lián)的一部分或所有信息存儲在與具體LPN相關(guān)聯(lián)的映射條目、與具體LPN相關(guān)聯(lián)的報(bào)頭或這兩者中。例如,在某些實(shí)施方式中,長度519的一些或所有存儲在映射條目中,而不是報(bào)頭中。圖6示出了多個(gè)NVM設(shè)備(例如,一個(gè)或多個(gè)閃存芯片)的塊、頁面和讀取單元的所選細(xì)節(jié)。每個(gè)設(shè)備(諸如設(shè)備601,603…609中的任意一個(gè))提供被組織為塊(諸如設(shè)備601的塊631,633…639;設(shè)備603的塊661,663…669;等等)的存儲。在某些實(shí)施方式中,每個(gè)設(shè)備包括整數(shù)個(gè)塊并且塊是擦除的最小配量。塊反之包括頁面(諸如塊631的頁面621,623…629;塊661的頁面651,653…659;等等)。在某些實(shí)施方式中,每個(gè)塊包括整數(shù)個(gè)頁面并且頁面是寫入的最小配量。頁面反之包括讀取單元(諸如頁面621的讀取單元611,613…619;頁面651的讀取單元641,643…649;等等)。根據(jù)各種實(shí)施方式,揭示以下各項(xiàng)中的一項(xiàng)或多項(xiàng):讀取單元是讀取和錯(cuò)誤校正的最小配量;每個(gè)頁面包括整數(shù)個(gè)讀取單元;相關(guān)組的兩個(gè)或多個(gè)頁面包括整數(shù)個(gè)讀取單元;并且讀取單元任選和/或可選跨越頁面邊界。設(shè)備中的信息的讀取和/或?qū)懭敫鶕?jù)順序諸如“讀取單元優(yōu)先”順序或“頁面優(yōu)先”順序執(zhí)行。圖中所示的讀取單元的讀取單元優(yōu)先順序的示例開始于讀取單元611,接著是641,671,613,643,673,等等,結(jié)束于679。圖中所示的讀取單元的頁面優(yōu)先順序的示例開始于讀取單元611,接著是613,619,641,643,649,671,673,等等,結(jié)束于679。在各種實(shí)施方式中,閃存芯片601,603…609對應(yīng)于圖1A的一個(gè)或多個(gè)獨(dú)立閃存芯片194中的相應(yīng)。在某些實(shí)施方式中,設(shè)備601,603…609是不到NVM199的所有的一部分。例如,在各種實(shí)施方式中,數(shù)據(jù)在多組閃存芯片上被獨(dú)立條帶化,并且多組閃存芯片中的每一個(gè)可獨(dú)立訪問。在某些實(shí)施方式中,各種NVM管理功能(例如,讀取、循環(huán)、擦除、編程/寫入和/或與使用NVM有關(guān)的功能中的任意一個(gè)或多個(gè))在邏輯片和/或段中執(zhí)行,有時(shí)稱為R塊。在各種實(shí)施方式中,R塊被舉例說明為例如閃存的相應(yīng)芯片(例如,所有芯片,不包括完全地或部分地出現(xiàn)故障的芯片的所有芯片,和/或一個(gè)或多個(gè)所選子集的芯片)上的邏輯片或者段。例如,在具有R閃存芯片的閃存中,每個(gè)閃存芯片具有N個(gè)塊,每個(gè)R塊是總共N個(gè)R塊中的來自一起取出的每個(gè)閃存芯片的第i塊。再如,在具有R閃存芯片的閃存中,每個(gè)具有N個(gè)塊,每個(gè)R塊是總共N/2個(gè)R塊中的來自每個(gè)閃存芯片的第i和第(i+l)塊。對于又一示例,在具有多個(gè)雙平面設(shè)備的閃存中,每個(gè)R塊是來自每個(gè)雙平面設(shè)備的第i偶數(shù)塊和第i奇數(shù)塊??梢栽O(shè)想用于以R塊形式進(jìn)行管理的閃存塊的其他布置,包括虛擬和物理塊地址之間的映射以確保即使某些塊不可操作,R塊也具有來自每個(gè)芯片的一個(gè)塊。在各種實(shí)施方式中,每個(gè)閃存芯片中的N個(gè)塊中的一部分被用作備用件使得虛擬和物理塊地址之間的映射具有備用(或者未使用)塊以取代R塊中有缺陷的塊。圖7示出了R塊的實(shí)施方式的所選細(xì)節(jié)。該圖示出了具有66個(gè)閃存芯片(閃存芯片710.65…710.0)的實(shí)施方式。示出了塊、頁面和塊以R塊進(jìn)行管理。每個(gè)閃存芯片被示為具有N個(gè)塊(諸如閃存芯片710.65的塊710.65B0、塊710.65B1…塊710.65BB)。R塊的具體示例是每個(gè)R塊是來自每個(gè)閃存芯片的第i塊,綜合起來,諸如R塊760.0是來自閃存芯片710.65的塊710.65B0,來自閃存芯片710.64的塊0(未明確示出),…,至閃存芯片710.0的塊710.0B0。因此,總共具有N個(gè)R塊(R塊760.0,R塊760.1…R塊760.R)。R塊的另一具體示例是每個(gè)R塊是來自每個(gè)閃存芯片的第i和第i+1塊,綜合起來(例如,來自閃存芯片710.65的塊710.65B0和710.65B1,來自閃存芯片710.64的塊0和1,…,至來自閃存芯片710.0的塊710.0B0和710.0B1。因此,如果每個(gè)閃存芯片中具有N個(gè)塊,則具有N/2個(gè)R塊。在成對或按相關(guān)聯(lián)的組處理塊作為形成R塊的一部分的各種實(shí)施方式中,來自相關(guān)聯(lián)組的塊的每個(gè)塊的相應(yīng)頁面也被視為單元,諸如用于寫入,形成較大的多塊頁面。例如,在具有偶數(shù)和奇數(shù)塊的各種雙平面實(shí)施方式中,偶數(shù)塊中的具體塊的第一頁面和奇數(shù)塊中的相關(guān)聯(lián)塊的第一頁面被視為用于寫入的單元,任選和/或可選作為用于讀取的單元。類似地,偶數(shù)塊中的具體塊的第二頁面和奇數(shù)塊中的相關(guān)聯(lián)塊的第二頁面被視為一個(gè)單元。根據(jù)各種實(shí)施方式,本文中所使用的NVM的頁面指的是以下各項(xiàng)中的一個(gè)或多個(gè):NVM的單個(gè)頁面;NVM的多塊頁面;用于寫入的NVM的任選和/或可選被視為用于讀取的一個(gè)或多個(gè)單元頁面的多塊頁面;以及NVM的任何其他分組或關(guān)聯(lián)頁面。在某些實(shí)施方式中,由于忽略了故障(例如,不良)塊,因此不是所有R塊的大小都相同。例如,如果塊710.0B0有缺陷且不可用,則R塊760.0具有的塊比R塊760.1少一個(gè)。在某些實(shí)施方式中,每個(gè)R塊包含R塊報(bào)頭,諸如具體形式的報(bào)頭501,并且類型域指定R塊的類型(例如不是數(shù)據(jù)類型)。在進(jìn)一步的實(shí)施方式中,R塊報(bào)頭在R塊中的多個(gè)塊中重復(fù),諸如在R塊中的每個(gè)塊中的第一頁面中重復(fù)。根據(jù)各種實(shí)施方式,R塊報(bào)頭包括以下各項(xiàng)中的一個(gè)或多個(gè):R塊類型;R塊記錄帶;R塊序列號;先前R塊編號和其他信息。R塊類型表示R塊中包含的信息的類型,諸如主機(jī)數(shù)據(jù)信息、映射信息或檢查點(diǎn)信息。R塊記錄帶指出多個(gè)記錄帶中的哪一個(gè)包括R塊。例如,R塊記錄帶指定熱數(shù)據(jù)記錄帶、冷數(shù)據(jù)記錄帶、映射記錄帶或檢查點(diǎn)記錄帶中的一個(gè)。R塊序列號針對所使用的每個(gè)R塊增加一次,并提供R塊創(chuàng)建的順序。在某些使用場景下,R塊序列號按照記錄帶,而在其他使用場景下,R塊序列號是綜合的。先前R塊編號使記錄帶中的給定記錄帶中的R塊能夠以相反的順序(時(shí)間向后推移)連接在一起。在某些實(shí)施方式中,恢復(fù)包括(諸如開始于)確定R塊中的每一個(gè)的R塊報(bào)頭,以及使用R塊報(bào)頭的內(nèi)容來確定每個(gè)記錄帶中的最后(最新寫入的)R塊。自身日志記錄和層級一致性子日志的示例是對象何時(shí)包括足夠信息以只恢復(fù)對象本身中的對象(例如,使用LBA對應(yīng)的LB存儲LBA)。層級一致性的示例是經(jīng)由檢查被結(jié)構(gòu)化的另一數(shù)據(jù)的版本來確定要使用哪種版本的數(shù)據(jù)結(jié)構(gòu)。例如,具體時(shí)間標(biāo)記識別的數(shù)據(jù)版本優(yōu)先于具體時(shí)間標(biāo)記識別的映射版本,而該映射版本優(yōu)先于具體時(shí)間標(biāo)記識別的檢查點(diǎn)版本。在某些實(shí)施方式和/或使用場景下,結(jié)合層級一致性技術(shù)使用自身日志記錄技術(shù)使得比沒有使用此等技術(shù)更有效地進(jìn)行映射重建和/或低延遲FUA握手。在各種實(shí)施方式中,映射(從LBA至讀取單元,諸如圖1A的映射141的所有或任意部分)為一級映射、二級映射或多級映射,并且被實(shí)現(xiàn)為以下各項(xiàng)中的一個(gè)或多個(gè):表、CAM、散列表、搜索樹、使密鑰(諸如LBA)與值(諸如讀取單元地址)相關(guān)聯(lián)的任意結(jié)構(gòu)或其任意組合。在某些實(shí)施方式中,映射包括保持頻繁訪問和/或廢條目的緩存。映射緩存被實(shí)現(xiàn)為表、CAM、散列表、搜索樹、使密鑰(諸如LBA)與值(諸如讀取單元地址)相關(guān)聯(lián)的任意結(jié)構(gòu)或其任意組合中的一個(gè)或多個(gè)。在各種實(shí)施方式中,經(jīng)由將長度存儲在與每個(gè)LBA相關(guān)聯(lián)的映射條目中,寫入數(shù)據(jù)被作為邏輯頁面、NVM的頁面、單一讀取單元或作為前述中的一個(gè)或多個(gè)進(jìn)行存儲。主機(jī)以LB(由LBA尋址)的最細(xì)粒度提供寫入數(shù)據(jù)。在各種實(shí)施方式中,來自主機(jī)的LB任選和/或可選被壓縮并消耗不到一個(gè)讀取單元、一個(gè)讀取單元、一個(gè)以上讀取單元、非整數(shù)個(gè)讀取單元或其他尺寸。在進(jìn)一步的實(shí)施方式中,主機(jī)提供比LB的粒度更細(xì)的粒度,諸如扇區(qū)粒度的寫入數(shù)據(jù)。例如,扇區(qū)為512B,并且每個(gè)LB包括8個(gè)連續(xù)扇區(qū)。數(shù)據(jù)大小小于LB的大小或具有僅導(dǎo)致具體LB的一部分被寫入的主機(jī)的寫入操作作為讀取-修改-寫入操作來處理。在某些實(shí)施方式中,使用讀取單元作為示例,映射使具體LBA與相應(yīng)讀取單元地址和相應(yīng)長度和/或跨度相關(guān)聯(lián),諸如在讀取單元中(例如,由映射141映射到讀取單元地址223和讀取單元的長度225的LBA211,如圖2所示,其中讀取單元225的長度編碼長度,作為具體LBA的數(shù)據(jù)的大小,和跨度,作為要讀取以獲得數(shù)據(jù)的讀取單元的數(shù)量)。存儲具體LBA引用的邏輯塊(LB),開始于由相應(yīng)讀取單元地址尋址的NVM中的具體讀取單元并跨越使用相應(yīng)寬度給出的多個(gè)讀取單元。例如,一個(gè)的跨度表示LB包含在具體讀取單元中。在各種實(shí)施方式和/或?qū)崿F(xiàn)中,具體讀取單元沒有存儲任何其他LB,或存儲小部分或一個(gè)或多個(gè)其他LB。具體讀取單元包括開始于具體讀取單元的一個(gè)或多個(gè)LB中的每一個(gè)的報(bào)頭(例如,圖4A的報(bào)頭1411A至報(bào)頭N419A以及圖4B的半透1441B、報(bào)頭2412B…報(bào)頭N419N)。報(bào)頭中的每一個(gè)包括LB的存儲在具體讀取單元中的相應(yīng)LBA(例如,圖5的報(bào)頭501的LPN517和/或補(bǔ)償521)。例如,與具體LBA相關(guān)聯(lián)的報(bào)頭中的具體報(bào)頭包括具體LBA。在各種實(shí)施方式中,報(bào)頭包括其他信息諸如:發(fā)現(xiàn)LB的讀取單元的補(bǔ)償、LB上使用的壓縮類型的表示、按字節(jié)存儲的LB的長度以及其他信息。設(shè)想各種實(shí)施方式,諸如相對于數(shù)據(jù)組織和/或排序使用各種技術(shù)中的一個(gè)或多個(gè)來將報(bào)頭和數(shù)據(jù)存儲在讀取單元中,沒有開始LB的讀取單元中是否存在報(bào)頭,報(bào)頭是表示讀取單元開始還是結(jié)束,以及報(bào)頭是存儲在報(bào)頭分別對應(yīng)的數(shù)據(jù)的第一讀取單元中還是最后讀取單元中。自身日志記錄屬性的示例是前面提到的存儲讀取單元中存儲的一個(gè)或多個(gè)LB的一個(gè)或多個(gè)LBA(諸如在讀取單元的一個(gè)或多個(gè)報(bào)頭中)。在將讀取單元寫入閃存之后,自身日志記錄屬性可以恢復(fù)LBA的映射信息和對應(yīng)LB數(shù)據(jù)(例如,從報(bào)頭中),因?yàn)閱为?dú)處理讀取單元可以恢復(fù)映射信息。在各種實(shí)施方式和/或使用場景下,使用恢復(fù)技術(shù)(例如,響應(yīng)于意外的功率損耗、故障或擾亂和/或防止將數(shù)據(jù)存儲到NVM的其他事件)。例如,通過定期寫出信息來維持檢查點(diǎn)以便可以全部或部分從故障中恢復(fù)。在某些實(shí)施方式中,檢查點(diǎn)具有多個(gè)條目,每個(gè)條目在活動流至非易失性存儲系統(tǒng)(例如,SSD的NVM)的一定程度上提供恢復(fù)信息。在各種實(shí)施方式中,相應(yīng)檢查點(diǎn)條目包括不同類型的信息,諸如在不同時(shí)間記錄的不同檢查點(diǎn)信息。在某些實(shí)施方式中,寫入滾動檢查點(diǎn),其中多個(gè)檢查點(diǎn)條目各自包括一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)的一部分(諸如第一級映射的一部分和/或R塊使用計(jì)數(shù)表的全部)。滾動檢查點(diǎn)分配隨時(shí)間保存檢查點(diǎn)信息的成本(例如,性能成本、至NVM的額外寫入成本以及NVM的管理費(fèi)成本)。在某些實(shí)施方式中,滾動檢查點(diǎn)可以只鎖定在檢查點(diǎn)創(chuàng)建期間經(jīng)檢查點(diǎn)設(shè)置的數(shù)據(jù)結(jié)構(gòu)的一部分,可以保留未鎖定的數(shù)據(jù)結(jié)構(gòu)的剩余部分,從而可供非檢查點(diǎn)使用。例如,在各種實(shí)施方式中,檢查點(diǎn)條目的至少一部分(但不一定是全部)包括空閑R塊列表(按打算使用空閑R塊的順序存儲)。檢查點(diǎn)經(jīng)寫入使得在恢復(fù)過程中,(a)檢查點(diǎn)可定位在NVM中,(b)可確定最新檢查點(diǎn)條目,(c)在某些實(shí)施方式中,檢查點(diǎn)按正向和/或反向時(shí)間順序可復(fù)制。例如,在NVM中,按FIFO順序?qū)z查點(diǎn)寫入具體位置(因此稍后的條目在較早的條目之后)。最后,寫入檢查點(diǎn)FIFO“隱藏”并使用較新的條目擦除和/或重寫最舊條目。寫入檢查點(diǎn)FIFO任選包括使用時(shí)間戳寫入以便可以確定檢查點(diǎn)條目的相應(yīng)階段(例如,驅(qū)動FIFO中的最新和最舊條目)。在各種其他實(shí)施方式中,除FIFO之外的數(shù)據(jù)結(jié)構(gòu)(例如,往復(fù)式結(jié)構(gòu)、表和經(jīng)啟用以存儲檢查點(diǎn)條目的其他數(shù)據(jù)結(jié)構(gòu))用于存儲檢查點(diǎn)。盡管在某些實(shí)施方式中,檢查點(diǎn)FIFO是先進(jìn)先出數(shù)據(jù)結(jié)構(gòu),但在其他實(shí)施方式中,檢查點(diǎn)FIFO使用其他結(jié)構(gòu),諸如隊(duì)列、流或按預(yù)定順序?qū)懭氲目呻S機(jī)訪問的結(jié)構(gòu)來實(shí)現(xiàn)。在某些實(shí)施方式中,在一個(gè)或多個(gè)數(shù)據(jù)流中寫入數(shù)據(jù)。因?yàn)橹鳈C(jī)提供寫入數(shù)據(jù),所以即使數(shù)據(jù)用于非連續(xù)區(qū)域(例如,非相關(guān)組的LBA),也可將寫入數(shù)據(jù)聚合到R塊中。寫入數(shù)據(jù)的數(shù)據(jù)流與主機(jī)寫入活動的日志類似,因?yàn)閿?shù)據(jù)流記錄有主機(jī)寫入的數(shù)據(jù)(盡管不一定,但在所有實(shí)施方式中,數(shù)據(jù)按相同順序來自主機(jī))。在各種實(shí)施方式中,再循環(huán)活動(從已經(jīng)全部和/或部分重寫的R塊再循環(huán)空閑空間)涉及再循環(huán)數(shù)據(jù)流,而主機(jī)寫入活動涉及與再循環(huán)數(shù)據(jù)流分開的主機(jī)數(shù)據(jù)流。在進(jìn)一步的實(shí)施方式中,將主機(jī)數(shù)據(jù)寫入第一R塊,并將同時(shí)再循環(huán)數(shù)據(jù)寫入第二不同R塊。在某些使用場景下,將再循環(huán)(冷)數(shù)據(jù)與新寫入的(熱)數(shù)據(jù)分開是有利的。在進(jìn)一步的實(shí)施方式中,主機(jī)數(shù)據(jù)的一些,諸如被確定為冷數(shù)據(jù)的主機(jī)數(shù)據(jù)的一部分被可選地寫入第二R塊。根據(jù)各種實(shí)施方式,定期及時(shí)創(chuàng)建檢查點(diǎn)條目,諸如響應(yīng)于主機(jī)命令和/或響應(yīng)于指定量的活動(例如,指定量的主機(jī)寫入數(shù)據(jù),指定量的映射引用,和/或指定量的廢映射信息)。在進(jìn)一步的實(shí)施方式中,不同結(jié)構(gòu)在不同時(shí)間和/或根據(jù)不同規(guī)則進(jìn)行檢查點(diǎn)設(shè)置。在各種實(shí)施方式中,檢查點(diǎn)包括一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)中的一部分或全部,諸如:第一級映射、映射緩存、R塊使用表、R塊統(tǒng)計(jì)諸如擦除計(jì)數(shù)、其他統(tǒng)計(jì)諸如錯(cuò)誤計(jì)數(shù)或基于R塊或其他累積的讀取干擾信息、空閑列表和非易失性存儲系統(tǒng)中使用的其他狀態(tài)信息和/或表。在某些實(shí)施方式中,全部或部分包括于一個(gè)或多個(gè)檢查點(diǎn)條目中的數(shù)據(jù)結(jié)構(gòu)用于恢復(fù)處理。在諸如具有滾動檢查點(diǎn)的進(jìn)一步的實(shí)施方式中,多個(gè)檢查點(diǎn)條目用于恢復(fù)數(shù)據(jù)結(jié)構(gòu),諸如第一級映射。在一個(gè)示例中,在恢復(fù)過程中,檢查點(diǎn)FIFO用于查找檢查點(diǎn)FIFO的檢查點(diǎn)的條目中保存的空閑R塊的一個(gè)或多個(gè)列表中的一個(gè)。然后讀取空閑R塊的最新列表中的R塊以查找已經(jīng)使用R塊中的哪些(因?yàn)樗褂玫腞塊不處于擦除狀態(tài),所以可以確定)。在某些使用場景下,在故障之前寫入R塊的一小部分,并且寫入的R塊的一小部分是可以恢復(fù)的。掃描空閑R塊的最新列表中的R塊中的讀取單元以查找讀取單元中的任何報(bào)頭。報(bào)頭包括表示讀取單元中存儲的LB的LBA。檢查映射(器可以確定LBA的數(shù)據(jù)存儲在NVM中的哪里)以確定映射中是否缺少任意LBA。例如,如果用于LBA之一的映射的條目指的是比在其中發(fā)現(xiàn)LBA的讀取單元舊的讀取單元。如果映射過期,則更新映射。在某些使用場景下,相同LBA在第一讀取單元中找到,隨后在第二讀取單元中找到,例如,當(dāng)在檢查點(diǎn)期間不止一次寫入LBA時(shí)。因而,在該示例中,從概念上看,數(shù)據(jù)讀取單元依次在恢復(fù)期間進(jìn)行處理,且在某些情況下,如果在讀取單元中的報(bào)頭中不止一次找到相同LBA,則在恢復(fù)期間不止一次更新映射中的相同條目。在另一個(gè)示例中,從概念上看,對數(shù)據(jù)讀取單元進(jìn)行后向處理(而不是依次處理,例如前向處理)并且丟棄重復(fù)寫入相同LBA。各種技術(shù)用于使映射和寫入NVM的寫入數(shù)據(jù)同步。一些技術(shù)可適用于具有一級映射的實(shí)施方式,而其他技術(shù)可適用于具有二級或多級映射的實(shí)施方式。在某些實(shí)施方式中,通過將一部分或全部映射寫入檢查點(diǎn)條目來定期對映射進(jìn)行檢查點(diǎn)設(shè)置。在某些實(shí)施方式中,將整個(gè)映射寫入檢查點(diǎn)FIFO。在其他實(shí)施方式中,將映射寫入NVM中的具體往復(fù)式位置(并且任選通過時(shí)間戳)。在其他實(shí)施方式中,NVM中表示將映射寫入NVM中的哪里的地址被寫入檢查點(diǎn)FIFO。在其他實(shí)施方式中,一次為映射檢查點(diǎn)設(shè)置一個(gè)部分,使得整個(gè)映射在多個(gè)檢查點(diǎn)條目上進(jìn)行檢查點(diǎn)設(shè)置(例如,滾動檢查點(diǎn))。在某些使用場景下,一次為映射檢查點(diǎn)設(shè)置一個(gè)部分可以降低對某些命令,諸如主機(jī)寫入命令的延遲的上限。在某些實(shí)施方式中,為了解決任何一致性問題,施加層級一致性寫入排序以確保一致性,例如,在將對應(yīng)更新映射條目寫入NVM之前,總是將寫入數(shù)據(jù)寫入NVM。例如,在某些實(shí)施方式中,僅在寫入數(shù)據(jù)致力于NVM之后才更新映射條目,并且寫入數(shù)據(jù)包括記錄有寫入數(shù)據(jù)與此相關(guān)聯(lián)的LBA的報(bào)頭。在此期間,映射的未決定更新保持在另一個(gè)結(jié)構(gòu),諸如映射緩存中。在某些實(shí)施方式中,映射緩存包括表示條目是否“未決”的映射緩存中的每個(gè)條目的信息(例如,等待完成將寫入數(shù)據(jù)寫入NVM)。通過延遲更新經(jīng)檢查點(diǎn)設(shè)置的映射版本直至將寫入數(shù)據(jù)寫入NVM,映射的檢查點(diǎn)總是比寫入數(shù)據(jù)舊,并且明確定義了映射和寫入數(shù)據(jù)之間的一致性,因?yàn)閬碜詫懭霐?shù)據(jù)報(bào)頭的LBA映射信息優(yōu)先于來自映射的任何彼此矛盾的(舊的)信息。通過使用層級一致性寫入排序,映射(如NVM中存儲的且在恢復(fù)過程中恢復(fù)的)總是只包括比來自數(shù)據(jù)讀取單元的信息早的信息?;謴?fù)映射總是比來自恢復(fù)數(shù)據(jù)讀取單元的任何數(shù)據(jù)舊,并且恢復(fù)數(shù)據(jù)讀取單元中的報(bào)頭(例如,根據(jù)檢查點(diǎn)FIFO中的空閑R塊的列表確定的)用于更新映射。在某些二級映射實(shí)施方式中,第二級映射條目定期存儲在NVM中。第二級映射頁面(其包括多個(gè)第二級映射條目)包括具有第一級映射索引的映射報(bào)頭,并且與第一級映射索引相關(guān)聯(lián)的FLM的條目指向第二級映射頁面。第一級映射索引為第二級映射頁面提供自身日志記錄屬性。層級一致性寫入排序經(jīng)擴(kuò)展以便首先將寫入數(shù)據(jù)寫入NVM,在完成寫入數(shù)據(jù)的寫入之后,僅將包含與寫入數(shù)據(jù)相關(guān)聯(lián)的第二級映射條目中的具體映射條目的第二級映射頁面寫入NVM,并且在完成第二級映射頁面寫入之后,僅更新指向第二級映射頁面的第一級映射條目(指的是第二級映射頁面的更新位置)。空閑R塊的列表任選和/或可選包括用于存儲第二級映射條目以及寫入數(shù)據(jù)的R塊。在某些實(shí)施方式中,空閑R塊的一個(gè)列表用于第二級映射條目,空閑R塊的另一個(gè)列表用于數(shù)據(jù),并且R塊隔離中兩個(gè)列表之間。兩個(gè)列表可以從第二級映射頁面中的報(bào)頭中恢復(fù)第一級映射,類似于從數(shù)據(jù)讀取單元中恢復(fù)一級映射。因而,第一級映射的檢查點(diǎn)總是比恢復(fù)的第二級映射頁面舊(并且第一級映射使用恢復(fù)的第二級映射頁面中的報(bào)頭進(jìn)行更新)。類似地,第二級映射頁面比寫入數(shù)據(jù)舊,并且第二級映射頁面使用恢復(fù)的數(shù)據(jù)讀取單元中的報(bào)頭來更新。在某些實(shí)施方式中,諸如在具有滾動檢查點(diǎn)的某些實(shí)施方式中,將額外日志報(bào)頭添加至數(shù)據(jù)讀取單元和/或映射讀取單元以便記錄檢查點(diǎn)事件。日志報(bào)頭包括新型記錄事件,并且信息用于幫助恢復(fù)。例如,將日志報(bào)頭寫入數(shù)據(jù)讀取單元以表示映射的一部分與數(shù)據(jù)流中的此點(diǎn)一致(例如,已經(jīng)進(jìn)行檢查點(diǎn)設(shè)置)。在某些實(shí)施方式中,日志報(bào)頭表示在數(shù)據(jù)流中恢復(fù)過程追溯到什么時(shí)候開始。例如,使用滾動檢查點(diǎn),并且在具有忽略一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)的檢查點(diǎn)信息的某些檢查點(diǎn)條目的進(jìn)一步的實(shí)施方式中,恢復(fù)開始使用對應(yīng)于所有數(shù)據(jù)結(jié)構(gòu)全部進(jìn)行檢查點(diǎn)設(shè)置的最新時(shí)間點(diǎn)的信息進(jìn)行處理。例如,如果映射在N個(gè)檢查點(diǎn)條目上分成N塊進(jìn)行檢查點(diǎn)設(shè)置,則在對應(yīng)于對所有N塊映射進(jìn)行檢查點(diǎn)設(shè)置之后的最新時(shí)間的數(shù)據(jù)頁面中的位置(稱為“最深處的點(diǎn)”)開始恢復(fù)。在某些實(shí)施方式中,日志報(bào)頭表示在某個(gè)點(diǎn)上一致的數(shù)據(jù)結(jié)構(gòu)的一部分。繼續(xù)上述映射恢復(fù)示例,在最深處的點(diǎn),已經(jīng)對N塊映射中的第一片進(jìn)行了檢查點(diǎn)設(shè)置(并且在稍后的時(shí)間里在數(shù)據(jù)流中沒有通過定義最深處的點(diǎn)進(jìn)行檢查點(diǎn)設(shè)置)。繼第一塊映射之后并影響第一塊映射的所有更新適用于映射。然而,其他塊映射僅在遇到表示數(shù)據(jù)流中的后續(xù)數(shù)據(jù)尚未記錄在檢查點(diǎn)中的對應(yīng)日志報(bào)頭之后才進(jìn)行更新。在某些實(shí)施方式中,層級一致性數(shù)據(jù)和/或數(shù)據(jù)結(jié)構(gòu)的時(shí)間順序由時(shí)間戳和/或序列號確定。即,通過比較時(shí)間戳和/或序列號來確定是在對應(yīng)更新映射條目之后還是在此之前將寫入數(shù)據(jù)寫入NVM。時(shí)間戳和/或序列號任選地和/或可選地例如在保持寫入/再循環(huán)數(shù)據(jù)、映射信息和/或檢查點(diǎn)條目的的相應(yīng)流中輸出以提供流之間的更新順序的規(guī)范,該規(guī)范相對于執(zhí)行至NVM的物理寫入的順序是不變的。在進(jìn)一步的實(shí)施方式中,時(shí)間戳和/或序列號在流中輸出作為特殊類型的報(bào)頭(稱之為紀(jì)元報(bào)頭)。每個(gè)紀(jì)元報(bào)頭包括當(dāng)前時(shí)間戳和/或序列號(稱之為紀(jì)元)(例如,圖5的紀(jì)元523)。在各種實(shí)施方式中,紀(jì)元隨著每個(gè)數(shù)據(jù)寫入推進(jìn)和/或增加,并且可唯一確定已經(jīng)進(jìn)行數(shù)據(jù)寫入的順序。在進(jìn)一步的實(shí)施方式中,由數(shù)據(jù)寫入中的具體數(shù)據(jù)寫入產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)更新分配有具體數(shù)據(jù)寫入的紀(jì)元。當(dāng)將數(shù)據(jù)結(jié)構(gòu)更新連同具體數(shù)據(jù)寫入的紀(jì)元一起寫入流時(shí),具體數(shù)據(jù)寫入和數(shù)據(jù)結(jié)構(gòu)更新的順序由指定具體數(shù)據(jù)寫入的紀(jì)元和數(shù)據(jù)結(jié)構(gòu)更新的紀(jì)元的相應(yīng)紀(jì)元報(bào)頭確定,與具體數(shù)據(jù)寫入和數(shù)據(jù)結(jié)構(gòu)更新被寫入NVM的順序無關(guān)。根據(jù)各種實(shí)施方式,紀(jì)元報(bào)頭根據(jù)以下各項(xiàng)中的一項(xiàng)或多項(xiàng)輸出:每一個(gè)數(shù)據(jù)寫入一次;僅使用某些數(shù)據(jù)寫入;定期在數(shù)據(jù)流中;每一個(gè)NVM頁面至少一次;以及每一個(gè)記錄帶切換一次。在具有單個(gè)數(shù)據(jù)記錄帶的第一示例中,每一個(gè)NVM頁面至少輸出紀(jì)元報(bào)頭一次,其使用數(shù)據(jù)流的數(shù)據(jù)寫入。在數(shù)據(jù)流的每個(gè)頁面中提供紀(jì)元報(bào)頭可以在無需讀取多個(gè)頁面的情況下確定頁面中的數(shù)據(jù)的紀(jì)元。在具有多個(gè)數(shù)據(jù)記錄帶(諸如熱記錄帶和冷記錄帶)的第二示例中,每一個(gè)NVM頁面至少輸出紀(jì)元報(bào)頭一次,其寫入與記錄帶無關(guān),另外無論先前的數(shù)據(jù)寫入是否是與當(dāng)前數(shù)據(jù)寫入不同的記錄帶之一(稱之為記錄帶切換)。每一個(gè)記錄帶切換至少提供紀(jì)元報(bào)頭一次可以確定每個(gè)數(shù)據(jù)寫入的紀(jì)元,即使不是所有數(shù)據(jù)寫入都具有相應(yīng)紀(jì)元報(bào)頭。進(jìn)一步地,每一個(gè)記錄帶切換至少提供紀(jì)元報(bào)頭一次可以通過在記錄帶之間提供一致的寫入順序?qū)蓚€(gè)或兩個(gè)以上記錄帶,諸如熱記錄帶和冷記錄帶,視為單個(gè)流。在某些實(shí)施方式中,具有多個(gè)紀(jì)元序列。在第一示例中,分離紀(jì)元順序用于新寫入與再循環(huán)數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)更新分配有來自一個(gè)或多個(gè)紀(jì)元序列的紀(jì)元,這主要取決于相關(guān)聯(lián)的數(shù)據(jù)寫入。在第二示例中,至NVM的數(shù)據(jù)寫入使用第一紀(jì)元(例如,來自第一紀(jì)元序列的第一紀(jì)元)蓋上時(shí)間戳,并且至NVM的第二級映射寫入使用第二紀(jì)元(例如,來自第二紀(jì)元序列的第二紀(jì)元)蓋上時(shí)間戳。第二級映射的更新分配有對應(yīng)于相關(guān)數(shù)據(jù)寫入的第一紀(jì)元值,并且第一級映射的更新分配有對應(yīng)于相關(guān)第二級映射寫入的第二紀(jì)元值。映射流任選和/或可選具有兩個(gè)類型的紀(jì)元報(bào)頭,一個(gè)用于第一紀(jì)元值,一個(gè)用于第二紀(jì)元值。盡管前文描述了映射的恢復(fù),但其他數(shù)據(jù)結(jié)構(gòu)類似地可使用自身日志記錄和層級一致性恢復(fù)。例如,R塊使用計(jì)數(shù)表類似地可進(jìn)行檢查點(diǎn)設(shè)置和恢復(fù)。在某些實(shí)施方式中,R塊使用計(jì)數(shù)包括每個(gè)R塊中的有源(不重寫)LB的數(shù)量的計(jì)數(shù)。自身日志記錄和層級一致性屬性同樣可適用于緩存(部分)數(shù)據(jù)結(jié)構(gòu)。例如,映射緩存包括映射的廢條目。在某些實(shí)施方式中,映射緩存條目中的每一個(gè)對應(yīng)于多個(gè)第二級映射頁面中的一個(gè),第二級映射頁面中的每一個(gè)包括多個(gè)第二級映射條目,并且如果具體映射緩存條目中的任意第二級映射條目是廢條目,則映射緩存條目中的具體映射緩存條目是廢條目。映射緩存根據(jù)層級一致性定期記錄在檢查點(diǎn)條目中(總而言之,以滾動檢查點(diǎn)的方式,或通過定期刷新映射緩存的廢條目)。在某些實(shí)施方式中,以每映射條目為基礎(chǔ)遵循層級一致性。繼續(xù)該示例,當(dāng)將映射緩存的一部分保存在檢查點(diǎn)條目中時(shí),只對與所完成的寫入數(shù)據(jù)(例如,通過致力于NVM而進(jìn)行非易失性存儲的寫入數(shù)據(jù))對應(yīng)的映射條目進(jìn)行檢查點(diǎn)設(shè)置。例如,如果映射條目中的條目已經(jīng)更新并且對應(yīng)數(shù)據(jù)尚未進(jìn)行非易失性存儲,則延遲對更新的映射條目進(jìn)行檢查點(diǎn)設(shè)置直至對應(yīng)數(shù)據(jù)進(jìn)行非易失性存儲為止。在某些實(shí)施方式中,映射緩存包括每個(gè)條目兩個(gè)讀取單元地址,例如層級一致性的讀取單元地址和未決讀取單元地址。對非易失性存儲系統(tǒng)的讀取訪問經(jīng)啟用以使用未決讀取單元地址來定位最新數(shù)據(jù)(例如,其存儲在通過待決至NVM的寫入的讀取單元尋址來訪問的數(shù)據(jù)緩存中)。然而,檢查點(diǎn)操作經(jīng)啟用以使用層級一致性的讀取單元地址。當(dāng)將寫入數(shù)據(jù)寫入NVM中時(shí),將受影響的映射緩存條目中的對應(yīng)未決地址復(fù)制到層級一致性地址(然后可用于進(jìn)行檢查點(diǎn)設(shè)置)。在各種實(shí)施方式中,映射緩存的多個(gè)條目中的每一個(gè)對應(yīng)于多個(gè)第二級映射頁面中的一個(gè),第二級映射頁面中的每一個(gè)包括多個(gè)第二級映射條目,并且如果具體映射緩存條目中的任意第二級映射條目是廢條目,則映射緩存條目中的具體映射緩存條目是廢條目。根據(jù)各種實(shí)施方式,映射緩存的廢條目中的每一個(gè)是以下各項(xiàng)中的一個(gè)或多個(gè):與指定廢條目的最舊更新的紀(jì)元的時(shí)間戳相關(guān)聯(lián);與指定廢條目的最新更新的紀(jì)元的時(shí)間戳相關(guān)聯(lián);與當(dāng)前數(shù)據(jù)寫入的紀(jì)元相關(guān)聯(lián)。在某些實(shí)施方式中,在指定廢條目的最舊更新的紀(jì)元的相關(guān)時(shí)間戳大于當(dāng)前數(shù)據(jù)寫入的紀(jì)元之后的預(yù)定量之前,刷新廢條目中的每一個(gè)。在某些實(shí)施方式中,存儲在具有廢條目的刷新條目的NVM中的時(shí)間戳是與刷新廢條目相關(guān)聯(lián)的時(shí)間戳中的任意一個(gè)或多個(gè)。可能存在其他方案,諸如使用分開的層級一致性且未決映射緩存,諸如使用被復(fù)制至層級一致性映射緩存的未決映射緩存中的條目,因?yàn)樗鰲l目被寫入NVM。在某些實(shí)施方式中,諸如用于動態(tài)映射LBA(即,當(dāng)正在寫入LBA時(shí))的映射緩存的動態(tài)結(jié)構(gòu)僅以檢查點(diǎn)設(shè)置的形式存在于NVM中。例如,結(jié)構(gòu),不同于映射本身,不具有永久存儲。例如,在某些實(shí)施方式中,只對映射緩存中的廢條目進(jìn)行檢查點(diǎn)設(shè)置,并且如果映射緩存在擴(kuò)展期間不具有廢條目(并且檢查點(diǎn)FIFO已經(jīng)隱藏),則不存在映射緩存的檢查點(diǎn)。因?yàn)閯討B(tài)結(jié)構(gòu)存在于檢查點(diǎn)中(在必要時(shí)),在恢復(fù)期間動態(tài)結(jié)構(gòu)同樣可以在故障之后重建。特定實(shí)施方式各種特定實(shí)施方式實(shí)現(xiàn)可適用于非易失性存儲系統(tǒng)中的自身日志記錄和層級一致性和/或與其相關(guān)的一項(xiàng)或多項(xiàng)技術(shù)。二級映射方案經(jīng)由寫入映射流和檢查點(diǎn)流進(jìn)行管理,其中主機(jī)數(shù)據(jù)和再循環(huán)數(shù)據(jù)寫入一個(gè)或多個(gè)數(shù)據(jù)流?;謴?fù)二級映射方案的FLM和SLM元件使用來自檢查點(diǎn)流的信息,隨后是來自映射流的信息,之后是來自數(shù)據(jù)流的信息。在恢復(fù)期間,數(shù)據(jù)流優(yōu)先于映射流,并且映射流優(yōu)先于檢查點(diǎn)流。圖8示出了作為LBA至NVM位置映射800的經(jīng)由具有FLM和一個(gè)或多個(gè)SLM頁面的二級映射將LBA映射到NVM中所存儲的LB的實(shí)施方式的所選細(xì)節(jié)。二級映射經(jīng)由與一個(gè)或多個(gè)第二級元件(從概念上講被示為單個(gè)元件SLM頁面820)耦合的第一級元件(FLM810)來實(shí)現(xiàn)。FLM包括多個(gè)條目(SLM頁面/長度810.1...SLM頁面/長度810.M)。FLM的每個(gè)條目指向SLM頁面(諸如SLM頁面820)中的一個(gè)。SLM頁面包括多個(gè)條目(LB頁面/長度820.1...LB頁面/長度820.N)。SLM頁面的每個(gè)條目指向數(shù)據(jù)開始的NVM中的位置(例如,至少存儲用于LBA的主機(jī)寫入數(shù)據(jù)的初端的讀取單元)。除法器(整數(shù)除法器822)例如從可編程硬件寄存器接收參數(shù)(SLM條目/SLM頁面(CSR)823)以除以輸入LBA,從而確定要選擇哪個(gè)FLM條目以及要選擇哪個(gè)SLM條目(其在所選FLM條目指向的SLM頁面內(nèi))。除法器與FLM和SLM頁面耦合。在各種實(shí)施方式中,該圖示圖1A的映射141和/或表143的所選細(xì)節(jié)或與其有關(guān)的所選細(xì)節(jié)。例如,在某些實(shí)施方式中,映射141和/或表143實(shí)現(xiàn)映射信息的一個(gè)或多個(gè)緩存,諸如FLM的一個(gè)或多個(gè)條目和/或SLM的一個(gè)或多個(gè)條目。FLM和/或SLM的整個(gè)圖像保持在NVM(例如,圖1A的NVM199)中,例如當(dāng)緩存取代先前緩存的FLM和/或SLM條目時(shí)更新。在某些實(shí)施方式中,F(xiàn)LM和/或SLM整個(gè)圖像經(jīng)由滾動或往復(fù)式球檢查點(diǎn)來實(shí)現(xiàn),每個(gè)檢查點(diǎn)是各自整個(gè)映射圖像的一部分。在操作中,將LBA821出現(xiàn)給整數(shù)除法器822。除法器將LBA除以如SLM條目/SLM頁面(CSR)823提供的每個(gè)SLM頁面的SLM條目數(shù)量,從而得到商數(shù)(FLM索引822Q)和余數(shù)(SLM頁面索引822R)。商數(shù)用于選擇FLM條目中的一個(gè),并讀取所選FLM條目的頁面域(SLM指針810S)。頁面域用于選擇SLM頁面中的一個(gè)(例如,SLM頁面820),并且余數(shù)用于(例如,作為補(bǔ)償)選擇所選SLM頁面的條目。所選SLM頁面條目的頁面域用于選擇NVM,諸如具體讀取單元中的具體位置,在該具體位置存儲有與所出現(xiàn)的LBA對應(yīng)的LB的至少初端(LB指針820L)。在各種實(shí)施方式中,LB指針包括NVM的讀取單元的地址(例如,圖2的讀取單元地址223)。在某些實(shí)施方式中,每個(gè)SLM條目包括表示要讀取多少讀取單元才獲得FLM條目的頁面域指定的所有相應(yīng)SLM頁面(例如,圖2的讀取單元的長度225)的長度域(例如,編碼大小和/或跨度)。在各種實(shí)施方式中,商數(shù)被用作訪問緩存器,諸如SLM頁面的全相關(guān)緩存器的密鑰。如果緩存器中存在具體SLM頁面命中,則在不訪問NVM的情況下在緩存器中找到具體SLM頁面的最新副本。在某些實(shí)施方式和/或使用場景下,對多個(gè)SLM頁面提供快速訪問使得對NVM的隨機(jī)訪問進(jìn)行更有效的處理和/或使得對NVM的多個(gè)獨(dú)立流的連續(xù)數(shù)據(jù)訪問進(jìn)行更有效的處理(例如,對LBA的第一區(qū)域的第一流的連續(xù)數(shù)據(jù)訪問穿插對LBA的第二區(qū)域的第二流的連續(xù)數(shù)據(jù)訪問)。圖9示出了接收并將數(shù)據(jù)從主機(jī)寫入NVM的各種實(shí)施方式的所選細(xì)節(jié)作為數(shù)據(jù)、映射和檢查點(diǎn)寫入處理900,包括寫入SLM和FLM信息,以及各種形式的自身日志記錄和時(shí)間戳記錄。處理還可適用于源自再循環(huán)操作的數(shù)據(jù)。處理從概念上看具有兩個(gè)部分,第一部分與適當(dāng)?shù)闹鳈C(jī)(或再循環(huán))數(shù)據(jù)有關(guān)(接收并寫入數(shù)據(jù)910),第二部分與映射數(shù)據(jù)有關(guān)(創(chuàng)建并寫入映射條目920)。進(jìn)一步地,對所示的操作中的所選操作進(jìn)行檢查點(diǎn)設(shè)置(對元素進(jìn)行檢查點(diǎn)設(shè)置995)。處理在收到主機(jī)寫入命令(或再循環(huán)操作數(shù)據(jù)產(chǎn)生)之后開始(開始901)。然后獲得主機(jī)(或再循環(huán))數(shù)據(jù)(從主機(jī)接收數(shù)據(jù)911)。然后諸如經(jīng)由壓縮、加密、填充和/或各種格式化操作轉(zhuǎn)換數(shù)據(jù)以便寫入NVM,(格式化數(shù)據(jù)912)。隨后,諸如經(jīng)由表示數(shù)據(jù)對應(yīng)于哪個(gè)LBA的報(bào)頭將自身日志記錄信息插入數(shù)據(jù)中(自身日志記錄數(shù)據(jù)913)。在某些實(shí)施方式中,報(bào)頭包括長度和/或補(bǔ)償和/或其他信息,諸如如圖5所示。然后,諸如經(jīng)由報(bào)頭中的紀(jì)元域?qū)r(shí)間標(biāo)記插入數(shù)據(jù)中(給數(shù)據(jù)蓋上時(shí)間戳914)。在各種實(shí)施方式中,插入時(shí)間標(biāo)記作為具體類型的報(bào)頭。隨后,數(shù)據(jù)、報(bào)頭和時(shí)間標(biāo)記與其他主機(jī)(或再循環(huán))數(shù)據(jù)和報(bào)頭信息聚合在一起(緩沖數(shù)據(jù)915)。當(dāng)聚合足夠信息之后,將聚合信息寫入NVM(將數(shù)據(jù)寫入NVM916)。數(shù)據(jù)的格式化(格式化數(shù)據(jù)912)提供部分用于創(chuàng)建映射條目的信息,開始于二級映射的第二級(為數(shù)據(jù)創(chuàng)建SLM條目922),二級映射指向?qū)懭胗袛?shù)據(jù)的NVM中的位置,諸如讀取單元地址和讀取單元的長度。在某些實(shí)施方式中,部分通過確定數(shù)據(jù)寫入NVM中的哪里,如緩沖數(shù)據(jù)915確定,來提供創(chuàng)建映射條目的進(jìn)一步信息。然后,諸如經(jīng)由提供對應(yīng)于SLM條目的FLM索引的報(bào)頭將自身日志記錄信息插入條目中(自身日志記錄SLM條目923)。在某些實(shí)施方式中,報(bào)頭包括長度、補(bǔ)償和/或其他信息,諸如如圖5所示。隨后,諸如經(jīng)由報(bào)頭中的紀(jì)元域?qū)r(shí)間標(biāo)記插入條目中(給SLM條目蓋上時(shí)間戳924)。在各種實(shí)施方式中,插入時(shí)間標(biāo)記作為具體類型的報(bào)頭。然后,條目、報(bào)頭和時(shí)間標(biāo)記與其他SLM條目和報(bào)頭聚合在一起(緩沖SLM條目925)。當(dāng)聚合足夠信息之后,將聚合信息寫入NVM(將SLM條目寫入NVM926)。在某些實(shí)施方式中,聚合SLM條目至少部分經(jīng)由一個(gè)或多個(gè)緩存進(jìn)行。SLM條目的創(chuàng)建(為數(shù)據(jù)創(chuàng)建SLM條目922)通過創(chuàng)建指向SLM條目的FLM條目(為SLM條目創(chuàng)建FLM條目932)來提供部分用于完成映射條目的創(chuàng)建的信息。類似于SLM條目,存在自身日志記錄和時(shí)間標(biāo)記插入(自身日志記錄FLM條目933和給FLM條目蓋上時(shí)間戳934),隨后緩沖并寫入NVM(緩沖FLM條目935和將FLM條目寫入NVM936)。在將數(shù)據(jù)、SLM條目和FLM條目寫入NVM之后(將數(shù)據(jù)寫入NVM916,將SLM條目寫入NVM926并將FLM條目寫入NVM936),處理完成(結(jié)束999)。在某些實(shí)施方式中,SLM條目被組織成SLM頁面并且將SLM頁面緩存在例如緩存器中,從而在將SLM頁面寫入NVM(自身日志記錄SLM條目923以將SLM條目寫入NVM926)之前啟用SLM頁面的條目的多個(gè)更新(為數(shù)據(jù)創(chuàng)建SLM條目922)。SLM頁面中的緩存SLM頁面中的每一個(gè)經(jīng)啟用以累積來自一個(gè)或多個(gè)數(shù)據(jù)寫入的更新,并且任選地和/或可選地直至相應(yīng)緩存SLM頁面由緩沖器刷新才寫入NVM。根據(jù)各種實(shí)施方式,寫入具有緩存SLM頁面中的刷新SLM頁面的NVM的時(shí)間標(biāo)記是以下各項(xiàng)中的一個(gè)或多個(gè):對應(yīng)于影響刷新SLM頁面中的條目的最新數(shù)據(jù)寫入的時(shí)間標(biāo)記;對應(yīng)于自緩存之后影響刷新SLM頁面中的條目的最早數(shù)據(jù)寫入的時(shí)間標(biāo)記;對應(yīng)于當(dāng)前數(shù)據(jù)寫入的時(shí)間標(biāo)記;以及對應(yīng)于映射流的時(shí)間標(biāo)記。在某些實(shí)施方式中,部分將FLM條目寫入NVM作為滾動檢查點(diǎn)的一部分,從而在將FLM的部分寫入NVM(自身日志記錄FLM條目933以將FLM條目寫入NVM936)之前啟用FLM的部分的條目的多個(gè)更新(為SLM條目創(chuàng)建FLM條目932)。FLM的部分中的每一個(gè)經(jīng)啟用以累積來自一個(gè)或多個(gè)SLM條目的更新,并且任選地和/或可選地直至制作FLM的部分的檢查點(diǎn)才寫入NVM(例如,作為滾動檢查點(diǎn)的一部分)。根據(jù)各種實(shí)施方式,寫入具有FLM的部分中的一個(gè)的NVM的時(shí)間標(biāo)記是以下各項(xiàng)中的一個(gè)或多個(gè):對應(yīng)于影響FLM的部分中的條目的最新數(shù)據(jù)寫入的時(shí)間標(biāo)記;對應(yīng)于自對FLM的部分進(jìn)行最后檢查點(diǎn)設(shè)置之后影響FLM的部分中的條目的最早數(shù)據(jù)寫入的時(shí)間標(biāo)記;對應(yīng)于當(dāng)前數(shù)據(jù)寫入的時(shí)間標(biāo)記;以及對應(yīng)于映射流的時(shí)間標(biāo)記,諸如具有FLM的部分中的對應(yīng)更新的SLM條目的映射流中的時(shí)間標(biāo)記。在各種實(shí)施方式中,例如經(jīng)由報(bào)頭插入的自身日志記錄信息包括在如圖4A、圖4B和圖5中所示的報(bào)頭中。在某些實(shí)施方式中,F(xiàn)LM信息的聚合至少部分經(jīng)由一個(gè)或多個(gè)緩存器進(jìn)行,而與緩存(如果有的話)SLM信息無關(guān),或可替代地集合SLM信息的緩存。在各種實(shí)施方式和使用場景下,繼續(xù)進(jìn)行從接收至寫入NVM的數(shù)據(jù)處理(格式化數(shù)據(jù)912以將數(shù)據(jù)寫入NVM916),其與從創(chuàng)建至寫入NVM的映射處理無關(guān)(為數(shù)據(jù)創(chuàng)建SLM條目922以將SLM條目寫入NVM926和/或?yàn)镾LM條目創(chuàng)建FLM932條目以將FLM條目寫入NVM936)。進(jìn)一步地,在各種實(shí)施方式和使用場景下,從創(chuàng)建至寫入NVM的SLM和FLM處理(分別為數(shù)據(jù)創(chuàng)建SLM條目922以將SLM條目寫入NVM926和/或?yàn)镾LM條目創(chuàng)建FLM條目932以將FLM條目寫入NVM936)彼此獨(dú)立繼續(xù)進(jìn)行。數(shù)據(jù)、SLM和FLM處理全部或部分彼此并行發(fā)生,僅由與創(chuàng)建SLM條目(格式化數(shù)據(jù)912以便為數(shù)據(jù)創(chuàng)建SLM條目922)和創(chuàng)建FLM條目(為數(shù)據(jù)創(chuàng)建SLM條目922以便為SLM條目創(chuàng)建FLM條目932)有關(guān)的相關(guān)性限制。在各種實(shí)施方式中,除了寫入數(shù)據(jù)之間的處理(接收并寫入數(shù)據(jù)910)和映射條目的處理(創(chuàng)建并寫入映射條目920的SLM和FLM有關(guān)部分)獨(dú)立(因而全部或部分并行或重疊)之外,910中的每一個(gè)中的處理和920的SLM和FLM有關(guān)部分完全或部分并行,重疊和/或流水線進(jìn)行。例如,接收第一主機(jī)數(shù)據(jù)(從主機(jī)911接收數(shù)據(jù))并同時(shí)格式化第一主機(jī)數(shù)據(jù)(格式化數(shù)據(jù)912),并行接收第二主機(jī)數(shù)據(jù)(從主機(jī)接收數(shù)據(jù)911)。再如,創(chuàng)建第一SLM條目(為數(shù)據(jù)創(chuàng)建SLM條目922),然后同時(shí)對第一SLM條目進(jìn)行自身日志記錄處理(自身日志記錄SLM條目923),并行創(chuàng)建第二SLM條目(為數(shù)據(jù)創(chuàng)建SLM條目922)。進(jìn)一步地,與創(chuàng)建第二SLM條目(和自身日志記錄第一SLM條目)并行創(chuàng)建第一SLM條目的FLM條目(為SLM條目創(chuàng)建FLM條目932)。在某些實(shí)施方式中,稍后的操作經(jīng)啟用以比在稍后操作之前開始的操作早完成。在第一示例中,沒有規(guī)定將至兩個(gè)不同記錄帶的數(shù)據(jù)寫入寫入NVM的順序。在第二示例中,緩存SLM頁面使得在更新來自比稍后數(shù)據(jù)希爾早的數(shù)據(jù)寫入的SLM條目之前,可以更新來自待寫入NVM的稍后數(shù)據(jù)寫入的SLM條目。在各種實(shí)施方式中,插入時(shí)間標(biāo)記是可選的,任選的和/或被忽略(例如,忽略或僅可選地插入給數(shù)據(jù)蓋上時(shí)間戳914、給SLM條目蓋上時(shí)間戳924和給FLM條目蓋上時(shí)間戳934中的一項(xiàng)或多項(xiàng))。進(jìn)一步地,寫入映射信息被延遲直至完成數(shù)據(jù)信息的寫入(或?qū)懭胗成湫畔㈨憫?yīng)于完成數(shù)據(jù)信息的寫入來執(zhí)行)。例如,將SLM條目信息記錄到NVM中等待完成將數(shù)據(jù)寫入NVM(例如,將SLM條目寫入NVM926取決于將數(shù)據(jù)寫入NVM916,如完成916C所示)。繼續(xù)該示例,將FLM條目信息記錄在NVM中等待完成將SLM信息寫入NVM(例如,將FLM條目寫入NVM936取決于將SLM條目寫入NVM926,如完成926C所示)?;謴?fù)處理使用寫入NVM的所有FLM信息,以及寫入NVM的所有SLM信息,因?yàn)橹敝潦孪葘懭胗蠪LM和SLM信息指向的數(shù)據(jù)信息才寫入FLM和SLM信息。因而,NVM上的數(shù)據(jù)和映射信息彼此一致。在某些實(shí)施方式中,選擇性插入時(shí)間標(biāo)記。例如,不將連續(xù)時(shí)間標(biāo)記插入NVM的相同頁面以便進(jìn)行存儲在相同頁面中的連續(xù)數(shù)據(jù)寫入,僅插入時(shí)間標(biāo)記中的第一個(gè)。時(shí)間標(biāo)記的后續(xù)時(shí)間標(biāo)記的值從第一時(shí)間標(biāo)記的值和干預(yù)連續(xù)數(shù)據(jù)寫入的數(shù)量推斷而得。在各種實(shí)施方式中,插入時(shí)間標(biāo)記,從而彼此獨(dú)立地,諸如完全或部分彼此并行或無序地寫入數(shù)據(jù)、SLM和FLM信息。在某些實(shí)施方式和/或使用場景下,獨(dú)立寫入可以比依賴寫入(例如,從概念上看由完成916C和完成926C所示)支持更有效的處理(例如,較低延遲和/或較高帶寬)。在具體操作場景下,數(shù)據(jù)寫入是NVM的數(shù)據(jù)流(例如將數(shù)據(jù)寫入NVM916是數(shù)據(jù)流),并且映射寫入是NVM的映射流和/或檢查點(diǎn)流(例如,將SLM條目寫入NVM926以及將FLM條目寫入NVM936分別是映射流和檢查點(diǎn)流)。延遲數(shù)據(jù)寫入中的一項(xiàng)或多項(xiàng)(諸如由于等待與寫入數(shù)據(jù)流沖突的擦除操作完成)。與此同時(shí),映射流寫入中的至少一個(gè)與擦除操作全部或部分并行發(fā)生,使得與延遲寫入數(shù)據(jù)中的至少一部分對應(yīng)的至少一個(gè)映射條目的寫入在寫入延遲寫入數(shù)據(jù)之前完成。隨后,完成擦除操作,然后完成延遲數(shù)據(jù)寫入。如果在完成延遲數(shù)據(jù)寫入之前存在故障,則后續(xù)恢復(fù)可基于數(shù)據(jù)和映射流中的時(shí)間標(biāo)記的檢查來確定是否忽略與延遲數(shù)據(jù)寫入對應(yīng)的任意映射流寫入。具體地,與延遲寫入對應(yīng)的映射流寫入的時(shí)間標(biāo)記在數(shù)據(jù)流寫入的最新(例如,最近或最新)之前(例如,更近或更新)。在各種實(shí)施方式中,插入映射信息的自身日志記錄是任選的和/或被忽略(例如,忽略自身日志記錄SLM條目923和自身日志記錄FLM條目933中的一個(gè)或多個(gè))。在某些實(shí)施方式和/或使用場景下,對該圖的元素中的一個(gè)或多個(gè)進(jìn)行檢查點(diǎn)設(shè)置(對元素進(jìn)行檢查點(diǎn)設(shè)置995)。在相應(yīng)時(shí)間點(diǎn)將檢查點(diǎn)寫入NVM以便在某些場景下支持更有效和/或更健壯的恢復(fù)處理。例如,聚合數(shù)據(jù)、SLM信息和FLM信息中的一個(gè)或多個(gè)(緩沖數(shù)據(jù)915、緩沖SLM條目925和緩沖FLM條目935)包括在檢查點(diǎn)中。在各種實(shí)施方式中,恢復(fù)處理使用檢查點(diǎn)中包括的時(shí)間標(biāo)記來確定是否忽略檢查點(diǎn)的某些部分。例如,如果數(shù)據(jù)流的最新部分(對應(yīng)于緩沖數(shù)據(jù)915)沒有比檢查點(diǎn)的最新SLM部分(對應(yīng)于將SLM條目寫入NVM926)更晚的時(shí)間標(biāo)記,則在恢復(fù)處理期間丟棄檢查點(diǎn)的最新SLM部分。圖10示出了流主機(jī)和/或再循環(huán)數(shù)據(jù)、映射信息和至NVM的檢查點(diǎn)FIFO部分的各種實(shí)施方式的所選細(xì)節(jié)。示出了R塊的三個(gè)流,一個(gè)用于數(shù)據(jù)寫入(數(shù)據(jù)R塊1020),一個(gè)用于更新SLM寫入(SLM(映射)R塊1030),一個(gè)用于數(shù)據(jù)結(jié)構(gòu)檢查點(diǎn)寫入,諸如FLM的部分(檢查點(diǎn)FIFOR塊1040),對應(yīng)于相應(yīng)數(shù)據(jù)、映射以及以流形式管理的檢查點(diǎn)記錄帶?!凹o(jì)元”元素對應(yīng)于時(shí)間標(biāo)記,例如,相應(yīng)報(bào)頭中的時(shí)間戳(諸如圖5的紀(jì)元523所示)。在圖10中,根據(jù)相應(yīng)流順序,時(shí)間從左至右為最不接近至最接近。進(jìn)一步地,該圖還表示每個(gè)流中的寫入順序,諸如通過NVM的頁面受到寫入NVM的粒度的限制。具有NVM的頁面中的一個(gè)的元素從概念上看按示出的順序?qū)懭?,即使同時(shí)進(jìn)行物理寫入。因而,數(shù)據(jù)R塊的元素按以下順序?qū)懭耄杭o(jì)元-11021E(最不接近),數(shù)據(jù)-11021、紀(jì)元-21022E,數(shù)據(jù)-21022、紀(jì)元-31023E,數(shù)據(jù)-31023(最接近)。映射R塊的元素按以下順序?qū)懭耄杭o(jì)元-11031E(最不接近),SLM-11031、紀(jì)元-21032E,SLM-21032、紀(jì)元-31033E,SLM-31033(最接近)。檢查點(diǎn)映射R塊的元素按以下順序?qū)懭耄杭o(jì)元-11041E(最不接近),F(xiàn)LM-11041、紀(jì)元-21042E,F(xiàn)LM-21042、紀(jì)元-31043E,F(xiàn)LM-31043(最接近)。數(shù)據(jù)R塊中的信息具有精確一致性,因?yàn)閿?shù)據(jù)R塊中的信息確定已經(jīng)將什么有效存儲在NVM中。精確一致性指的是支持來自寫入NVM的數(shù)據(jù)結(jié)構(gòu)的最新部分的數(shù)據(jù)結(jié)構(gòu)的有效狀態(tài)的完全恢復(fù)的數(shù)據(jù)結(jié)構(gòu)(包括寫入NVM的數(shù)據(jù))的屬性。精確一致性與多個(gè)數(shù)據(jù)結(jié)構(gòu)之間的一致性不同。例如,兩個(gè)數(shù)據(jù)結(jié)構(gòu)各自具有精確一致性,但彼此不一致,因?yàn)閿?shù)據(jù)結(jié)構(gòu)中的一個(gè)反映了其他數(shù)據(jù)結(jié)構(gòu)中不存在的狀態(tài)變化。在某些實(shí)施方式和/或使用場景下,恢復(fù)的目的是確定自最近可能時(shí)間起彼此同樣一致的數(shù)據(jù)結(jié)構(gòu)的精確想干版本。映射R塊中的信息是更新SLM頁面的類似FIFO的流,并且用于維持如至少部分存儲在映射R塊中的SLM的精確相干。在某些情況下,映射R塊中的信息與寫入NVM的數(shù)據(jù)不一致,諸如由于與數(shù)據(jù)R塊中的信息不一致的SLM頁面,例如由于比數(shù)據(jù)R塊中的對應(yīng)信息更新的SLM頁面。檢查點(diǎn)R塊中的信息是FLM和其他數(shù)據(jù)結(jié)構(gòu)的部分或所有的FIFO(或流),并且用于維持FLM的精確想干和其他數(shù)據(jù)結(jié)構(gòu)的精確或近似想干。然而,類似于映射R塊,在某些情況下,檢查點(diǎn)R塊中的信息與其他R塊中的信息不一致,諸如比映射或數(shù)據(jù)R塊中的對應(yīng)信息更新的FLM條目。在某些實(shí)施方式和/或使用場景下,檢查點(diǎn)FIFO中存儲的某些數(shù)據(jù)結(jié)構(gòu)僅大致想干或與其他數(shù)據(jù)結(jié)構(gòu)不一致。在第一示例中,針對NVM中的每個(gè)塊維持讀取干擾計(jì)數(shù),并且在多個(gè)部分中的檢查點(diǎn)FIFO中對讀取干擾計(jì)數(shù)進(jìn)行檢查點(diǎn)設(shè)置,例如,隨時(shí)間均勻分布的一次四分之一的讀取干擾計(jì)數(shù)。當(dāng)恢復(fù)讀取干擾計(jì)數(shù)時(shí),恢復(fù)的讀取干擾計(jì)數(shù)不與使用中的讀取干擾計(jì)數(shù)的任意版本相干,因?yàn)樗膫€(gè)部分中的每一個(gè)都來自不同時(shí)間點(diǎn)。在第二示例中,在檢查點(diǎn)FIFO中對R塊使用信息進(jìn)行檢查點(diǎn)設(shè)置,但不需要對應(yīng)時(shí)間戳?;謴?fù)過程中恢復(fù)的R塊使用信息的最新版本是相干的,但在某些情況下,與其他數(shù)據(jù)結(jié)構(gòu)不一致。從概念上看,該圖表示恢復(fù)操作期間的流優(yōu)先級。R塊的數(shù)據(jù)流中的信息優(yōu)先于R塊的映射流中的信息,而R塊的映射流中的信息優(yōu)先于R塊的檢查點(diǎn)流中的信息。因?yàn)榱髦g的寫入排序良好(同時(shí),在某些實(shí)施方式和/或使用場景下,流中的每一個(gè)中的寫入排序良好),所以需要額外信息來確定流之間的寫入的一致性排序。在各種實(shí)施方式和/或使用場景下,時(shí)間戳和/或時(shí)間標(biāo)記,諸如紀(jì)元值,可以確定寫入多個(gè)記錄帶和/或流的相對順序。如圖所示,寫入R塊的數(shù)據(jù)流、映射流和檢查點(diǎn)流彼此一致,如下。數(shù)據(jù)寫入中的每一個(gè)在與相應(yīng)數(shù)據(jù)寫入對應(yīng)的相應(yīng)SLM更新之前,反之,SLM更新中的每一個(gè)在任意相應(yīng)檢查點(diǎn)寫入之前,檢查點(diǎn)寫入包括(例如,作為FLM條目)相應(yīng)SLM更新的指針。具體地,SLM-11031映射至數(shù)據(jù)-11021,并且在寫入紀(jì)元-11031E和SLM-11031開始之前完成數(shù)據(jù)-11021的寫入。進(jìn)一步地,F(xiàn)LM-11041包括SLM-11031的指針,并且在寫入紀(jì)元-11041E和FLM-11041開始之前完成SLM-11031的寫入。類似依賴性和寫入排序適用于數(shù)據(jù)-21022,紀(jì)元-21032E和SLM-21032,以及紀(jì)元-21042E和FLM-21042,以及數(shù)據(jù)-31023,紀(jì)元-31033E和SLM-31033,和紀(jì)元-31043E和FLM-31043。在某些實(shí)施方式中,R塊的流之間的一致性用如下紀(jì)元值表示。紀(jì)元-11031E與紀(jì)元-11021E相同,或可替代地表示紀(jì)元-11031E在紀(jì)元-11021E之后寫入。紀(jì)元-11041E與紀(jì)元-11031E相同,或可替代地表示紀(jì)元-11041E在紀(jì)元-11031E之后寫入。類似地,紀(jì)元-21032E與紀(jì)元-21022E相同(或表示在其之后寫入),并且紀(jì)元-21042E與紀(jì)元-21032E相同(或表示在其之后寫入)。類似地,紀(jì)元-31033E與紀(jì)元-31023E相同(或表示在其之后寫入),并且紀(jì)元-31043E與紀(jì)元-31033E相同(或表示在其之后寫入)。在各種實(shí)施方式和/或使用場景下,保留每個(gè)流中的寫入順序,如圖所示。然而,R塊的流之間的相對寫入時(shí)間不同于圖所示的。例如,在寫入數(shù)據(jù)-2開始之前(但在寫入數(shù)據(jù)-11021完成之后),完成寫入紀(jì)元-21032E和SLM-21032。因而,SLM-21032相對于數(shù)據(jù)-21022暫時(shí)不一致,如表示比紀(jì)元-21032E表示的舊的階段的R塊的數(shù)據(jù)流的最新寫入時(shí)間標(biāo)記)紀(jì)元-11021E)所表示的。如果在完成寫入紀(jì)元-21022E和數(shù)據(jù)-21022之前出現(xiàn)故障,則SLM-21032的臨時(shí)不一致性就變得持久。為了解決不一致性,后續(xù)恢復(fù)處理可丟棄SLM-21032(基于比紀(jì)元-11021E更新的紀(jì)元-21032E)。再如,如果繼在寫入R塊的映射流中的對應(yīng)SLM更新之前寫入R塊的檢查點(diǎn)流中的FLM條目之后是故障和后續(xù)恢復(fù)處理(在寫入對應(yīng)SLM更新之前),則恢復(fù)處理丟棄FLM條目。該圖示出了與FLM的所有條目對應(yīng)的檢查點(diǎn)R塊的流的區(qū)域(完成FLM1050)。該區(qū)域與分多個(gè)部分(例如,塊)對FLM進(jìn)行檢查點(diǎn)設(shè)置的某些實(shí)施方式對應(yīng)。如圖所示,三個(gè)任選和/或可選重疊的部分(FLM-11041、FLM-21042和FLM-31043)集體形成FLM的所有條目的檢查點(diǎn),盡管部分中的每一個(gè)來自不同時(shí)間,并因此本身不是FLM的相干圖像?;謴?fù)處理經(jīng)啟用以從FLM和其他數(shù)據(jù)結(jié)構(gòu)的檢查點(diǎn)恢復(fù)FLM的相干且一致的版本。類似地,恢復(fù)處理經(jīng)啟用以從映射流和其他數(shù)據(jù)結(jié)構(gòu)中的映射的可能不相干副本恢復(fù)映射的相干且一致的版本。在某些實(shí)施方式中,部分通過確保以原子單元來執(zhí)行具體數(shù)據(jù)結(jié)構(gòu)的多個(gè)相關(guān)更新和具體數(shù)據(jù)結(jié)構(gòu)的后續(xù)時(shí)間戳設(shè)置,至少相對于具體數(shù)據(jù)結(jié)構(gòu)的檢查點(diǎn),來維持具體數(shù)據(jù)結(jié)構(gòu)的一致性。例如,考慮在檢查點(diǎn)FIFO中進(jìn)行檢查點(diǎn)設(shè)置的R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)流中的數(shù)據(jù)寫入的具體數(shù)據(jù)寫入與數(shù)據(jù)流中的對應(yīng)紀(jì)元值相關(guān)聯(lián)。具體數(shù)據(jù)寫入提高了包含數(shù)據(jù)寫入的R塊的使用率,并且降低包含與相同LBA相關(guān)聯(lián)的先前數(shù)據(jù)寫入作為具體數(shù)據(jù)寫入的R塊的使用率。根據(jù)數(shù)據(jù)寫入更新R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)包括三個(gè)操作:提高包含數(shù)據(jù)寫入的R塊的使用計(jì)數(shù);降低包含先前數(shù)據(jù)寫入的R塊的使用計(jì)數(shù);以及給具有具體數(shù)據(jù)希爾的對應(yīng)紀(jì)元值的R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)蓋上時(shí)間戳。如果R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)的檢查點(diǎn)經(jīng)啟用以便在執(zhí)行三個(gè)操作中的至少一個(gè)之后以及在完成所有三個(gè)操作之前發(fā)生,檢查點(diǎn)可記錄R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)的不一致版本,并且諸如在電源故障之后的R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)的恢復(fù)會導(dǎo)致不反映恢復(fù)之后的R塊的實(shí)際使用的不一致值。相應(yīng)地,在各種實(shí)施方式中,相對于檢查點(diǎn)以原子方式執(zhí)行根據(jù)每個(gè)數(shù)據(jù)寫入的R塊使用計(jì)數(shù)數(shù)據(jù)結(jié)構(gòu)的相應(yīng)更新。圖11示出了例如在故障之后恢復(fù)和/或重建FLM和SLM信息(諸如圖2和圖8中的一個(gè)或多個(gè)中所示的)和其他NVM管理數(shù)據(jù)結(jié)構(gòu)的所選細(xì)節(jié)作為FLM和SLM恢復(fù)處理1100?;謴?fù)和重建操作與結(jié)合如圖9和圖10的一個(gè)或多個(gè)中所示的自身日志記錄和層級一致性技術(shù)的操作兼容。如圖11所示的處理響應(yīng)于故障之后的事件,例如恢復(fù)/重建請求、軟或硬重置或開機(jī)而開始(開始1101)。定位檢查點(diǎn)R塊的最后(例如,最新寫入的)R塊,并定位最后檢查點(diǎn)R塊中的最后(例如,最新寫入的)信息(定位FIFO結(jié)束1111)。然后,對連續(xù)比最新寫入的早的檢查點(diǎn)R塊的部分進(jìn)行處理直至重建FLM的整個(gè)圖像為止。在某些實(shí)施方式中,F(xiàn)LM重建處理包括定位最新的FLM部分以及定位最舊時(shí)間標(biāo)記(定位最新FLM塊和最舊紀(jì)元1112),然后自最舊時(shí)間標(biāo)記起重建FLM(自最舊紀(jì)元1113起恢復(fù)FLM)。在某些實(shí)施方式和/或使用場景下,F(xiàn)LM的一個(gè)或多個(gè)稍后部分由于孔,諸如由于在電源發(fā)生故障時(shí)無法完成的寫入,而不與較早部分連接在一起。在恢復(fù)期間丟棄不與較早部分連接在一起的部分。在基于檢查點(diǎn)R塊重建FLM之后,比重建FLM更新(根據(jù)使用更新存儲的時(shí)間標(biāo)記)的任何SLM更新適用于FLM(根據(jù)SLM更新來更新FLM1114)。然后,針對比任何對應(yīng)SLM條目(根據(jù)數(shù)據(jù)更新來更新SLM1115)更新(根據(jù)使用寫入數(shù)據(jù)存儲的時(shí)間標(biāo)記)的任何數(shù)據(jù)寫入來更新SLM。然后完成處理(結(jié)束1199),并且FLM、SLM和其他數(shù)據(jù)結(jié)構(gòu)是相干且一致的,以便用于操作SSD的NVM。在某些實(shí)施方式中,通過確保在預(yù)定量的紀(jì)元值中(稱為映射刷新間隔)將緩存的任何修改SLM條目刷新到NVM來限制進(jìn)行處理以更新SLM的寫入數(shù)據(jù)的量。例如,每個(gè)修改SLM條目(或每個(gè)修改SLM頁面)自最后刷新相應(yīng)修改SLM條目(或SLM頁面)起跟蹤修改的最早紀(jì)元值,并在相應(yīng)修改SLM條目(或SLM頁面)在最新數(shù)據(jù)寫入之后多達(dá)10,000個(gè)紀(jì)元值之前刷新相應(yīng)修改SLM條目(或SLM頁面)。當(dāng)從更新的數(shù)據(jù)寫入重建SLM時(shí),僅將最新的大約10,000個(gè)數(shù)據(jù)寫入(如通過紀(jì)元值測得的)視為SLM更新,因?yàn)槿魏闻f數(shù)據(jù)寫入已經(jīng)被寫入NVM。在某些實(shí)施方式中,恢復(fù)處理針對數(shù)據(jù)流、映射流和檢查點(diǎn)FIFO中的每一個(gè)確定相應(yīng)最新有效紀(jì)元和相應(yīng)最早所需的紀(jì)元?;謴?fù)處理從在檢查點(diǎn)FIFO的最早所需紀(jì)元和檢查點(diǎn)FIFO的最新有效紀(jì)元之間發(fā)現(xiàn)的FLM的部分恢復(fù)FLM。在映射流中的最早所需紀(jì)元和映射流中的最新有效紀(jì)元之間的映射流中發(fā)現(xiàn)的SLM更新適用于FLM,以便FLM與映射流一致。來自在數(shù)據(jù)流中的最早所需紀(jì)元和數(shù)據(jù)流中的最新有效紀(jì)元之間的數(shù)據(jù)流中發(fā)現(xiàn)的數(shù)據(jù)寫入的更新然后適用于SLM,以便SLM與數(shù)據(jù)流一致。在各種實(shí)施方式和/或使用場景下,諸如當(dāng)緩存不能保持恢復(fù)所需的所有更新時(shí),將更新從數(shù)據(jù)流中的數(shù)據(jù)寫入應(yīng)用于SLM任選地和/或可選地將SLM條目和/或頁面從緩存刷新到映射流。在恢復(fù)期間刷新的SLM條目和/或頁面更新FLM的條目,反之在恢復(fù)期間任選地和/或可選地將FLM的一個(gè)或多個(gè)部分寫入檢查點(diǎn)FIFO。在各種實(shí)施方式中,恢復(fù)處理的完成將“恢復(fù)完成”標(biāo)記,諸如具體類型的報(bào)頭,寫入一個(gè)或多個(gè)流。在某些實(shí)施方式中,數(shù)據(jù)流中的最新有效紀(jì)元是數(shù)據(jù)流中的最后寫入紀(jì)元值(對應(yīng)于數(shù)據(jù)流中的數(shù)據(jù)寫入),該最后寫入紀(jì)元值與恢復(fù)所需的數(shù)據(jù)流的所有前述部分連接在一起。映射流中的最新有效紀(jì)元是映射流中的最后寫入紀(jì)元值(對應(yīng)于映射流中的SLM條目和/或頁面寫入),且在數(shù)據(jù)流中的最新有效紀(jì)元處或之前,該最后寫入紀(jì)元值與恢復(fù)所需的映射流的所有前述部分連接在一起。檢查點(diǎn)FIFO中的最新有效紀(jì)元是檢查點(diǎn)FIFO中的最后寫入紀(jì)元值(對應(yīng)于檢查點(diǎn)FIFO中的FLM的一部分),且在映射流中的最新有效紀(jì)元處或之前,該最后寫入紀(jì)元值與恢復(fù)所需的檢查點(diǎn)FIFO的所有前述部分連接在一起。在進(jìn)一步的實(shí)施方式中,檢查點(diǎn)FIFO中的最新有效紀(jì)元也與一個(gè)或多個(gè)其他數(shù)據(jù)結(jié)構(gòu)的連續(xù)檢查點(diǎn)相關(guān)聯(lián),諸如與R塊使用空間數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)。在某些實(shí)施方式中,檢查點(diǎn)FIFO中的最早所需紀(jì)元是FLM的最新部分的紀(jì)元值,以便在檢查點(diǎn)FIFO中的最早所需紀(jì)元和檢查點(diǎn)FIFO中的最新有效紀(jì)元中獲得FLM的一個(gè)完整(盡管不相關(guān))版本。映射流中的最早所需紀(jì)元是映射流中的最新SLM條目和/或頁面的紀(jì)元值,該最早所需紀(jì)元是在檢查點(diǎn)FIFO中的最早所需紀(jì)元處或之前。數(shù)據(jù)流中的最早所需紀(jì)元是最新數(shù)據(jù)寫入的紀(jì)元值,該最早所需紀(jì)元在映射流中的最新有效紀(jì)元之前不遲于映射刷新間隔。在某些實(shí)施方式和/或使用場景下,諸如當(dāng)已經(jīng)存在故障時(shí),在恢復(fù)期間發(fā)現(xiàn)數(shù)據(jù)流中的孔。在孔之前的信息是有效的,而繼孔之后的信息是無效的。任選將日志記錄添加到數(shù)據(jù)流中(例如在恢復(fù)期間)以表示孔和恢復(fù)表示的開始之間的信息是無效的,而在開始恢復(fù)表示之后的信息是新有效信息的開始。在各種實(shí)施方式中,恢復(fù)表示的開始是表示恢復(fù)處理的開始特殊類型的報(bào)頭,諸如日志報(bào)頭。在某些情況下,恢復(fù)處理為相對低延遲。例如,如果在相對較長的時(shí)間內(nèi)沒有寫入或再循環(huán)時(shí)故障是功率損耗,則不存在適用于FLM的SLM更新,并且不存在尚未在SLM中反映的數(shù)據(jù)寫入??商娲?,在其他情況下,恢復(fù)處理為相對高延遲。例如,如果故障使得檢查點(diǎn)R塊和/或映射R塊全部或基本上不一致,則讀取存儲有效數(shù)據(jù)信息的所有數(shù)據(jù)R塊以重建FLM,并且SLM也整體重建。在其他情況下,恢復(fù)處理為中間延遲。例如,如果故障使得檢查點(diǎn)R塊完好無損,并且相對較少的映射更新尚未在檢查點(diǎn)R塊中反映出來,并且相對較少的數(shù)據(jù)寫入也尚未在映射R塊中反映出來,則需要對FLM和SLM進(jìn)行相對較少的重建。在各種實(shí)施方式中,圖6-11的一個(gè)或多個(gè)元件與圖1A的一個(gè)或多個(gè)元件對應(yīng)或相關(guān)。例如,圖6的設(shè)備601,…,609中的一個(gè)或多個(gè)集體對應(yīng)于NVM199的所有或部分。再如,圖7的閃存芯片710.65,…,710.0集體對應(yīng)于閃存芯片194的示例。對于又一示例,圖10中所示的R塊的流存儲在NVM199的所有或部分中。在各種實(shí)施方式中,圖1A的一個(gè)或多個(gè)元件管理、控制和/或?qū)崿F(xiàn)與本文其他地方描述的自身日志記錄和/或?qū)蛹壱恢滦杂嘘P(guān)的技術(shù)的所有或任意部分。例如,CPU171的軟件執(zhí)行能力的一部分用于管理映射信息的恢復(fù)(例如,如圖11所示)。再如,緩沖器131的所有或部分實(shí)現(xiàn)如圖9中所述的緩沖的所有或任意部分。額外實(shí)現(xiàn)/實(shí)施方式信息在各種實(shí)施方式中,如圖8-11所述的操作和/或功能的所有或任意部分例如由一個(gè)或多個(gè)狀態(tài)機(jī)實(shí)現(xiàn)。狀態(tài)機(jī)的示例性實(shí)現(xiàn)包括硬件(例如,邏輯門和/或電路、專用狀態(tài)機(jī)電路或硬連線控制電路)、軟件(例如,固件或微碼)或硬件和軟件的組合。在某些實(shí)施方式中,狀態(tài)機(jī)中的一個(gè)或多個(gè)至少部分經(jīng)由一個(gè)或多個(gè)硬件圖像、一個(gè)或多個(gè)驅(qū)動和/或一個(gè)或多個(gè)應(yīng)用程序來實(shí)現(xiàn)。作為具體示例,狀態(tài)機(jī)中的一個(gè)或多個(gè)部分經(jīng)由圖1A的SSD控制器100、部分經(jīng)由CPU內(nèi)核172執(zhí)行的固件、部分經(jīng)由圖1B的固件106、部分經(jīng)由驅(qū)動107和/或部分經(jīng)由應(yīng)用程序109來實(shí)現(xiàn)。在各種實(shí)施方式中,由圖8-11所述的操作和/或功能的所有或任意部分例如在一致性管理179、轉(zhuǎn)換管理177和/或圖1A的映射中的任意一個(gè)或多個(gè)的控制下和/或根據(jù)其中任意一個(gè)或多個(gè)經(jīng)由硬件和/或固件技術(shù)的任意組合來實(shí)現(xiàn)。示例性實(shí)現(xiàn)技術(shù)在某些實(shí)施方式中,由實(shí)現(xiàn)自身日志記錄和層級一致性以管理非易失性存儲(例如,使用閃存)的系統(tǒng),計(jì)算主機(jī)閃存控制器,和/或SSD控制器(諸如圖1A的SSD控制器100)執(zhí)行的操作的所有或任意部分的各種組合,和處理器、微處理器、片上系統(tǒng)、專用集成電路、硬件加速器或提供上述操作中的所有或部分的其他電路的部分由與計(jì)算機(jī)系統(tǒng)進(jìn)行的處理兼容的規(guī)范來指定。該規(guī)范符合各種描述,例如,硬件描述語言、電路描述、網(wǎng)表描述、掩碼描述或布局描述。示例描述包括:Verilog、VHDL、SPICE、SPICE變體諸如PSpice、IBIS、LEF、DEF、GDS-II、OASIS或其描述。在各種實(shí)施方式中,處理包括解釋、編譯、模擬和合成的任何組合以生成、驗(yàn)證或指定適于包括在一個(gè)或多個(gè)集成電路上的邏輯和/或電路。根據(jù)各種實(shí)施方式,每個(gè)集成電路可根據(jù)多種技術(shù)來設(shè)計(jì)和/或制造。該技術(shù)包括可編程技術(shù)(例如,場或掩碼可編程門陣列集成電路)、半定制技術(shù)(諸如整體或部分基于單元的集成電路)和全定制技術(shù)(諸如基本上專用的集成電路)及其任意組合,或與集成電路的設(shè)計(jì)和/或制造兼容的其他任何技術(shù)。在某些實(shí)施方式中,通過執(zhí)行和/或解釋一個(gè)或多個(gè)程序指令,通過解釋和/或編譯一個(gè)或多個(gè)源和/或腳本語言語句,或通過執(zhí)行通過編譯、轉(zhuǎn)換和/或解釋以編程和/或腳本語言語句表達(dá)的信息生成的二進(jìn)制指令來進(jìn)行所有或部分如計(jì)算機(jī)可讀介質(zhì)所述的操作的各種組合,該計(jì)算機(jī)可讀介質(zhì)存儲有一組指令。語句與任何標(biāo)準(zhǔn)的編程或腳本語言(例如,C、C++、Fortran、Pascal、Ada、Java、VBscript和Shell)兼容。一個(gè)或多個(gè)程序指令、語言語句或二進(jìn)制指令任選存儲在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲介質(zhì)元件上。在各種實(shí)施方式中,一些、所有或相應(yīng)部分的程序指令實(shí)現(xiàn)為一種或多種功能、例程、子例程、線內(nèi)例程、過程、宏或其部分。結(jié)論在該說明書中作出的某些選擇僅僅是便于制備文本和附圖,除非有相反的表示,否則這些選擇本身不應(yīng)解釋為表達(dá)所述實(shí)施方式的結(jié)構(gòu)或操作相關(guān)的額外信息。選擇的示例包括:用于數(shù)字編號的設(shè)計(jì)的具體組織或分配以及用于識別和引用實(shí)施方式的特征和元件的元件標(biāo)識符(例如,插圖編號或數(shù)字標(biāo)志符)的具體組織或分配。詞語“包括(includes)”或“包括(including)”具體意在被理解為對描述開放式范圍的邏輯組的抽象,且并不指傳達(dá)物理包含物,除非后面明確跟隨詞語“之內(nèi)”。盡管為了描述和理解清晰的目的,已在一些細(xì)節(jié)中描述了上述實(shí)施方式,但本發(fā)明不限于所提供的細(xì)節(jié)。有許多本發(fā)明的實(shí)施方式。所公開的實(shí)施方式是示例性的,而不是限制性的。應(yīng)理解,構(gòu)造、布置和使用的許多變化可能與說明書一致,且處于已公布的專利的權(quán)利要求的范圍內(nèi)。例如,互連和功能單位的位寬度、時(shí)鐘速率和所使用的技術(shù)的類型根據(jù)每個(gè)組件塊中的各種實(shí)施方式而可變。給于互連和邏輯的名稱僅是示例性的,且不應(yīng)被解釋為限制所描述的概念。流程圖和流程圖過程、動作和功能元件的順序和布置根據(jù)各種實(shí)施方式可變化。同樣地,除非特別說明與此相反,否則指定的值范圍、使用的最高值和最低值或其他具體的規(guī)范(諸如閃存技術(shù)類型;以及寄存器和緩存器中的條目或級別的數(shù)量)僅是所描述那些實(shí)施方式,期望跟蹤實(shí)現(xiàn)技術(shù)的改進(jìn)和變化,且不應(yīng)被解釋為限制??刹捎帽炯夹g(shù)已知的功能等效的技術(shù),而不是用于實(shí)現(xiàn)各種組件、子系統(tǒng)、操作、功能、例程、子例程、在線例程、程序、宏或其部分的那些所述技術(shù)。還應(yīng)理解,實(shí)施方式中的許多功能方面可在硬件(即,一般專用電路)或軟件(例如,經(jīng)由編程的控制器或處理器的某些方式)中選擇性實(shí)現(xiàn),以作為取決于設(shè)計(jì)約束和更快處理的技術(shù)趨勢(促使先前在硬件中的功能遷移至軟件)和更高的集成密度(促使先前在軟件中的功能遷移至硬件)的實(shí)施方式的功能。各種實(shí)施方式中的具體變化包括但不限于:劃分的差異;不同的形狀因數(shù)和配置;使用不同的操作系統(tǒng)和其他系統(tǒng)軟件;使用不同接口標(biāo)準(zhǔn)、網(wǎng)絡(luò)協(xié)議或通信鏈路;以及當(dāng)根據(jù)具體應(yīng)用的獨(dú)特工程和商業(yè)限制實(shí)現(xiàn)在本文中描述的概念時(shí)預(yù)期的其他變化。已通過很好地超越需要用于所描述的實(shí)施方式的很多方面的最小實(shí)現(xiàn)的細(xì)節(jié)和環(huán)境背景描述了實(shí)施方式。本領(lǐng)域的普通技術(shù)人員將認(rèn)識到,一些實(shí)施方式省略了公開的組件或特征,且無需改變剩余元件之間的基本合作。因此,應(yīng)理解多數(shù)公開的細(xì)節(jié)不需要實(shí)現(xiàn)所描述的實(shí)施方式的各方面。在剩余元件可與現(xiàn)有技術(shù)相區(qū)別的范圍內(nèi),被省略的組件和特征不限于本文中所描述的概念。設(shè)計(jì)的所有這些變化是在由所描述的實(shí)施方式傳達(dá)的教學(xué)上的非實(shí)質(zhì)性變化。還應(yīng)理解,本文中描述的實(shí)施方式對其他的計(jì)算和網(wǎng)絡(luò)應(yīng)用具有廣泛的實(shí)用性,且并不僅限于所描述的實(shí)施方式的具體應(yīng)用或行業(yè)。因此,本發(fā)明將被解釋為包括涵蓋在所公布的專利的權(quán)利要求的范圍內(nèi)的所有可能的修改和變更。