亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

非易失性臨時數(shù)據(jù)處理的制作方法

文檔序號:6373459閱讀:179來源:國知局
專利名稱:非易失性臨時數(shù)據(jù)處理的制作方法
技術(shù)領(lǐng)域
本公開涉及非易失性臨時數(shù)據(jù)處理。
背景技術(shù)
NAND閃存以及其它類型的非易失性存儲器(NVM)通常被應(yīng)用在電子設(shè)備中用作大容量存儲。例如,諸如便攜式媒體播放器的消費電子設(shè)備往往包括NAND閃存來存儲音樂、視頻以及其它媒體程序。這樣的數(shù)據(jù)通常打算要長期存儲,例如,以天、月或甚至年的量級。NVM還可被用在電子設(shè)備中用于不同于長期存儲的其它目的。例如,電子設(shè)備可能臨時將來自易失性存儲器的數(shù)據(jù)存儲在NVM中以使得易失性存儲器能夠在降低功率的休眠狀態(tài)中斷電而不丟失數(shù)據(jù)。又例如,NVM可以用在虛擬存儲器方案中,來增加電子設(shè)備的易失性存儲器所表現(xiàn)出的容量。

發(fā)明內(nèi)容
提供了用于處理打算短期存儲在非易失性存儲器(諸如閃存)中的數(shù)據(jù)的系統(tǒng)和方法。通過允許與長期數(shù)據(jù)不同地處理短期存儲,存儲器管理效率和NVM的有效性都能夠被增加。短期存儲可以包括在NVM中存儲僅在操作系統(tǒng)的當(dāng)前實例期間被需要的數(shù)據(jù),而一旦電子設(shè)備關(guān)機或重新啟動(或甚至更早)就不再有用。該數(shù)據(jù)可以被稱作“非易失性臨時數(shù)據(jù)”或“NV臨時數(shù)據(jù)”,因為,該數(shù)據(jù)是被臨時需要的,但是被存儲在持久的非易失性介質(zhì)中。NV臨時數(shù)據(jù)可以包括例如基于硬件的休眠數(shù)據(jù)、應(yīng)用產(chǎn)生的數(shù)據(jù)、基于應(yīng)用的休眠數(shù)據(jù)、交換文件和其它臨時文件。在一些實施例中,當(dāng)存儲NV臨時數(shù)據(jù)時,電子設(shè)備可以使用臨時標記來修飾NV臨時數(shù)據(jù)。例如,對于電子設(shè)備在其中存儲NV臨時數(shù)據(jù)的NVM的每個頁面,電子設(shè)備可以在頁面的元數(shù)據(jù)中包括臨時標記??商鎿Q地,電子設(shè)備可以在存儲NV臨時數(shù)據(jù)的塊的至少一個頁面中提供臨時標記。這使得電子設(shè)備能夠?qū)V臨時數(shù)據(jù)與在多次設(shè)備啟動(bootup)中都需要的信息進行區(qū)分。在電子設(shè)備的啟動期間,電子設(shè)備可以被配置為執(zhí)行各種啟動步驟,例如構(gòu)建元數(shù)據(jù)表。元數(shù)據(jù)表可以包括例如表示文件系統(tǒng)發(fā)布的哪些邏輯地址(例如邏輯塊地址(LBA))當(dāng)前被分配的表,和/或邏輯至物理地址映射。電子設(shè)備可以通過掃描NVM的頁面并確定每個頁面是否包括臨時標記(或每個頁面是否位于被標記用于存儲NV臨時數(shù)據(jù)的塊中)來創(chuàng)建元數(shù)據(jù)表。如果頁面包括臨時標記,則包括在該頁面中的數(shù)據(jù)僅在上次啟動電子設(shè)備時有用,并且在當(dāng)前啟動中不需要。因此,電子設(shè)備可以將該頁面標記為具有無效數(shù)據(jù)并從元數(shù)據(jù)表中忽略該頁面(及其存儲的元數(shù)據(jù))。通過在啟動時執(zhí)行這樣的清理操作,電子設(shè)備可以保證從一開始就高效使用NVM存儲位置。即,在當(dāng)前啟動周期中的任何時刻,電子設(shè)備都不在垃圾收集或磨損均衡的過程中執(zhí)行不必要的操作來維護廢棄的NV臨時數(shù)據(jù)。在一些實施例中,電子設(shè)備可以基于數(shù)據(jù)是否為NV臨時數(shù)據(jù)來選擇存儲位置和/或用于存儲數(shù)據(jù)的編程技術(shù)。例如,電子設(shè)備可以選擇較低性能的存儲位置,諸如較小可靠性的頁面或塊(例如,高度循環(huán)的塊),來存儲NV臨時數(shù)據(jù)。在一些實施例中,電子設(shè)備可以選擇較高速度的存儲位置或用于存儲NV臨時數(shù)據(jù)的編程技術(shù),諸如單層單元(SLC)塊。


本發(fā)明的上述和其它方面和優(yōu)點將在考慮了下面結(jié)合附圖的具體描述之后變得清楚,附圖中相同標號表示相同部件,其中圖I是具有根據(jù)本發(fā)明的各種實施例配置的非易失性存儲器的示例性電子設(shè)備的框圖;圖2和圖3是根據(jù)本發(fā)明的各種實施例的存儲非易失性臨時數(shù)據(jù)的示例性非易失 性存儲位置的圖形示意;圖4是根據(jù)本發(fā)明的各種實施例的使用臨時標記修飾非易失性存儲器中的非易失性臨時數(shù)據(jù)的示例性過程的流程圖;以及圖5是根據(jù)本發(fā)明的各種實施例的用于在電子設(shè)備啟動時處理非易失性臨時數(shù)據(jù)的示例性過程的流程圖。
具體實施例方式圖I是示例性電子設(shè)備100的框圖。在一些實施例中,電子設(shè)備100可以是或可以包括便攜式媒體播放器(例如由加州庫比蒂諾的蘋果公司出品的iPod )、蜂窩電話(例如由蘋果公司出品的iPhone )、口袋大小的個人計算機、個人數(shù)字助理(PDA)、桌上型計算機、膝上型計算機、以及任何其它適當(dāng)類型的電子設(shè)備或系統(tǒng)。電子設(shè)備100可以包括片上系統(tǒng)(SoC) 110和非易失性存儲器(NVM) 120。NVM120可以包括基于浮柵或電荷捕獲技術(shù)的NAND閃存、NOR閃存、可擦除可編程只讀存儲器(EPR0M)、電可擦除可編程只讀存儲器(EEPR0M)、鐵電RAM (FRAM)、磁阻RAM (MRAM)或其任
意組合。NVM 120可以被組織成“塊”,其是最小的可擦除單元,并且可以進一步被組織成“頁面”,其可以是可被編程或讀取的最小的單元。在一些實施例中,NVM 120可以包括多個集成電路,每個集成電路可以具有多個塊。來自相應(yīng)集成電路的塊(例如具有相同位置或塊編號的塊)可以形成被稱作“超級塊”的邏輯單元。NVM 120的每個存儲位置(例如,頁面或塊)可以使用物理地址(例如物理頁面地址或物理塊地址)來尋址。盡管在圖I中僅示出了一個NVM,但是可替換地,電子設(shè)備100可以包括多個NVM封裝。片上系統(tǒng)110可以包括控制電路112、存儲器114以及NVM接口 116。控制電路112通??梢钥刂芐oC 110以及電子設(shè)備100的一般操作和功能??刂齐娐?12可以包括任何適當(dāng)?shù)牟考?、電路或邏輯,例如一個或多個處理器??刂齐娐?12可以在程序的控制下操作,所述程序諸如應(yīng)用、操作系統(tǒng)或加載在存儲器114中的NVM驅(qū)動器(例如NVM驅(qū)動器117)。存儲器114可以包括任何適當(dāng)類型的易失性存儲器,例如隨機存取存儲器(RAM)(例如,靜態(tài)RAM (SRAM)、動態(tài)隨機存取存儲器(DRAM)、同步動態(tài)隨機存取存儲器(SDRAM)、雙倍速率(DDR) RAM)、高速緩存存儲器、或其任意組合。在一些實施例中,存儲器114可以作為實現(xiàn)為控制電路112的一部分的任何處理器的主存儲器。在這些和其它實施例中,存儲器114可以存儲有時(即同時或不同時間)也可以作為NV臨時數(shù)據(jù)被存儲在NVM 120中的數(shù)據(jù)。如上所述,NV臨時數(shù)據(jù)包括存儲在NVM中的僅在操作系統(tǒng)的當(dāng)前實例期間被需要的數(shù)據(jù),而一旦電子設(shè)備100被關(guān)閉或重新啟動(或更早)就不再有用。例如,存儲器114和/或NVM 120可以以基于硬件的休眠數(shù)據(jù)的形式存儲NV臨時數(shù)據(jù)?;谟布男菝邤?shù)據(jù)可以包括響應(yīng)于進入基于硬件的休眠狀態(tài)(例如,存儲器114被斷電的降低功率狀態(tài)),從存儲器114轉(zhuǎn)移至NVM 120的數(shù)據(jù)。因此,基于硬件的休眠數(shù)據(jù)可以包括使得電子設(shè)備100在其從休眠狀態(tài)醒來時能夠返回至其休眠之前的操作狀態(tài)(例如在進入降低功率狀態(tài)之前所處的狀態(tài))的數(shù)據(jù)?;谟布男菝邤?shù)據(jù)可以表示設(shè)備的硬件和軟件的當(dāng)前操作狀態(tài)。例如,設(shè)備狀態(tài)數(shù)據(jù)可以指出哪些程序正活躍地運行,或更特別地,哪個媒體資產(chǎn)(例如歌曲)正在被播放,或用戶當(dāng)前訪問的圖形用戶界面中的位置。因為如果用戶在硬件休眠期間關(guān)閉電子設(shè)備100,用戶不會期望電子設(shè)備100返回到其休眠之 前的操作狀態(tài),所以這樣的基于硬件的休眠數(shù)據(jù)是NV臨時數(shù)據(jù)的一個示例。在一些實施例中,存儲器114和/或NVM 120可以將應(yīng)用產(chǎn)生的數(shù)據(jù)存儲為NV臨時數(shù)據(jù)。應(yīng)用產(chǎn)生的數(shù)據(jù)可以包括與應(yīng)用相關(guān)聯(lián)或由其產(chǎn)生的任何臨時有用的數(shù)據(jù),諸如關(guān)于游戲應(yīng)用中當(dāng)前游戲的數(shù)據(jù)。在一些實施例中,應(yīng)用可以向操作系統(tǒng)和文件系統(tǒng)提供關(guān)于應(yīng)用產(chǎn)生的數(shù)據(jù)的臨時性質(zhì)的指示,所以該數(shù)據(jù)可以被最終作為NV臨時數(shù)據(jù)存儲在NVM 120 中。 在一些情形中,存儲器114和/或NVM 120可以用于以基于應(yīng)用的休眠數(shù)據(jù)的形式存儲NV臨時數(shù)據(jù)。基于應(yīng)用的休眠數(shù)據(jù)可以包括響應(yīng)于特定應(yīng)用或程序進入休眠狀態(tài)而從存儲器114轉(zhuǎn)移至NVM120的數(shù)據(jù),諸如應(yīng)用產(chǎn)生的數(shù)據(jù)。當(dāng)空間不足并且該應(yīng)用不是正在活躍使用時,電子設(shè)備100可以選擇使該應(yīng)用休眠來釋放存儲器114中的空間。因此,基于應(yīng)用的休眠數(shù)據(jù)可以包括使得電子設(shè)備100能夠使休眠的應(yīng)用返回至其休眠之前的操作狀態(tài)的數(shù)據(jù)。因為如果電子設(shè)備100被重新啟動,用戶不會期望休眠應(yīng)用返回至其完全前一狀態(tài),所以基于應(yīng)用的休眠數(shù)據(jù)是NV臨時數(shù)據(jù)的另一示例。在這些和其它情形中,存儲器114和/或NVM 120可以用于結(jié)合虛擬存儲器方案來存儲NV臨時數(shù)據(jù)。例如,應(yīng)用產(chǎn)生的數(shù)據(jù)、基于應(yīng)用的休眠數(shù)據(jù)或由一個或多個應(yīng)用使用的任何其它數(shù)據(jù)可以從存儲器114轉(zhuǎn)移至NVM 120中的“交換文件”或“頁面文件”。在此,數(shù)據(jù)可以從存儲器114被頁面調(diào)出(page out)到存儲在NVM 120中的文件中,從而在需要空間時釋放存儲器114中的空間。用在虛擬存儲器方案中的將NV臨時數(shù)據(jù)在存儲器114和NVM 120之間傳遞的其它文件類型也可以被想到。因為一旦電子設(shè)備100被關(guān)閉,通常就不再需要在虛擬存儲器方案中使用的數(shù)據(jù),所以交換文件是NV臨時數(shù)據(jù)的另一示例。存儲器114和/或NVM 120可以存儲任何適當(dāng)類型的NV臨時數(shù)據(jù),例如通常存儲在基于UNIX系統(tǒng)上的“臨時文件(temp file)”中的任何數(shù)據(jù)。例如,NV臨時數(shù)據(jù)可以包括存儲在NVM 120上的臨時文件中的數(shù)據(jù),該臨時文件由一個程序或應(yīng)用創(chuàng)建以將該數(shù)據(jù)傳遞至另一程序或應(yīng)用。又例如,NV臨時數(shù)據(jù)可以包括存儲在NVM120上的臨時文件中的短期數(shù)據(jù),其太大以至于不適合存儲器114或是會占用存儲器114中多于預(yù)定空間量的空間。為了使SoC 110的部件(例如存儲器114)從/往NVM 120傳遞信息,SoC 110可以包括NVM接口 116。NVM接口 116可以包括被配置作為NVM 120與SoC 110的非特定于NVM的部件之間的接口或驅(qū)動器的硬件、軟件和固件的任何適當(dāng)組合。例如,NVM接口 116可以包括NVM驅(qū)動器117來提供軟件/固件接口,其使得操作系統(tǒng)和文件系統(tǒng)間接存取NVM120,從而使得操作系統(tǒng)和文件系統(tǒng)發(fā)布讀或?qū)懻埱笠栽贜VM 120中存儲臨時數(shù)據(jù)或從其檢索NV臨時數(shù)據(jù)。NVM接口 116還可以包括總線控制器118,其可以包括使NVM驅(qū)動器117能夠使用NVM 120的總線規(guī)范(例如數(shù)據(jù)率)訪問NVM 120的任何適當(dāng)硬件部件。NVM接口 116可以執(zhí)行各種任務(wù)來管理NVM 120的存儲位置,例如,垃圾收集、磨損均衡以及壞塊管理。NVM驅(qū)動器117可以被配置為維護或產(chǎn)生“元數(shù)據(jù)”,其可以是被NVM驅(qū)動器117用來管理NVM 120和其中的存儲位置的任何存儲器管理數(shù)據(jù)。NVM驅(qū)動器117
可被配置為維護元數(shù)據(jù)表或映射,例如表示由文件系統(tǒng)發(fā)布的哪些邏輯地址(例如,邏輯塊地址(LBA))當(dāng)前被分配以供使用的表和/或NVM 120的邏輯地址和物理地址之間的映射。邏輯地址由文件系統(tǒng)基于讀或?qū)懻埱蠖l(fā)布,NVM驅(qū)動器170可以將邏輯地址映射到實際對應(yīng)于NVM 120的物理存儲位置的不同物理地址。NVM驅(qū)動器117因此可以維護元數(shù)據(jù)表,從而正確處理來自文件系統(tǒng)的讀和寫請求。NVM接口 116在圖I中描述為完全在SoC 110上實現(xiàn)。在一些實施例中,NVM接口116的一些部件以及NVM驅(qū)動器117的一些功能可以由包括在例如NVM 120中的單獨的存儲器控制器(例如閃存控制器)實現(xiàn)和執(zhí)行。因此,應(yīng)該理解對NVM接口 116或NVM相關(guān)功能的任何描述不限于在SoC 110上實現(xiàn)的部件或動作。NVM接口 116可以接收來自文件系統(tǒng)的寫請求以存儲多種數(shù)據(jù)類型的任一種。例如,文件系統(tǒng)可以指示NVM接口 116無限期地存儲媒體資產(chǎn),例如歌曲和視頻。在其它情形中,文件系統(tǒng)可以指示NVM接口 116在NVM 120中存儲NV臨時數(shù)據(jù),例如基于硬件的休眠數(shù)據(jù)、應(yīng)用產(chǎn)生的數(shù)據(jù)、基于應(yīng)用的休眠數(shù)據(jù)、交換文件或其它臨時數(shù)據(jù)。因為NV臨時數(shù)據(jù)具有不同于其它數(shù)據(jù)形式的預(yù)期壽命(即,長于電子設(shè)備100的一個啟動周期)的預(yù)期壽命(即,電子設(shè)備100的一個啟動周期),所以NVM接口 116可以被配置為以能夠增加NVM 120中存儲器使用的有效性和效率的不同方式處理NV臨時數(shù)據(jù)。在一些實施例中,NVM接口 116可以基于數(shù)據(jù)是否為臨時數(shù)據(jù)來存儲數(shù)據(jù)來選擇要在其中存儲數(shù)據(jù)的存儲位置(即,頁面、塊、或超級塊)。例如,NVM接口 116可以選擇較低性能的存儲位置來存儲NV臨時數(shù)據(jù)。較低性能的存儲位置可以是較不可靠的頁面或塊,例如高度循環(huán)的塊(即,已經(jīng)經(jīng)歷較多擦除周期并且可能因此已經(jīng)經(jīng)歷較多退化的塊)。NVM接口 116可以選擇較高性能的存儲位置來存儲非臨時數(shù)據(jù),因為預(yù)期非臨時數(shù)據(jù)將在NVM120中保持更長的時間。在一些實施例中,NVM接口 116可以選擇較高速度的存儲位置或編程技術(shù)來存儲NV臨時數(shù)據(jù)。以該方式,在進入降低功率的休眠模式時或在其它多種情形中,在存儲器114和NVM 120之間轉(zhuǎn)移數(shù)據(jù)之間的延遲被減少,其可能對虛擬存儲器方案有利。為了提高速度,NVM接口 116可以選擇單層單元(SLC)塊或可以在使用NV臨時數(shù)據(jù)對塊編程時減少調(diào)諧分辨率。NVM接口 116可以選擇SLC塊來增加編程速度,同時還改進可靠性。在一些實施例中,NVM接口 116可以通過在將NV臨時數(shù)據(jù)存儲在NVM 120中時使用“臨時標記”修飾NV臨時數(shù)據(jù)來以不同于其它數(shù)據(jù)的方式處理NV臨時數(shù)據(jù)。以該方式,當(dāng)數(shù)據(jù)從NVM 120被讀回時,NVM接口 116可以快速并高效地將NV臨時數(shù)據(jù)與打算存儲更長時間的其它信息區(qū)別開。圖2示出了 NVM接口 116可以使用臨時標記修飾NV臨時數(shù)據(jù)的一種方式。圖2是非易失性存儲器(例如圖I中的NVM 120)的塊中的多個頁面的圖形示意。如圖所示,塊的每個頁面可以用于存儲數(shù)據(jù)字段和相關(guān)聯(lián)的元數(shù)據(jù)字段。每個數(shù)據(jù)字段可以存儲任何適當(dāng)類型的數(shù)據(jù),例如NV臨時數(shù)據(jù)或文件系統(tǒng)請求存儲的任何數(shù)據(jù)(例如媒體資產(chǎn))。相同頁面的元數(shù)據(jù)字段可以存儲與數(shù)據(jù)字段中的數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),例如由NVM驅(qū)動器117接收或產(chǎn)生的任何存儲器管理數(shù)據(jù),包括糾錯碼(ECC)數(shù)據(jù)、用于管理邏輯和物理地址(例如LBA)之間的映射的任何信息等等。元數(shù)據(jù)字段可以包括用于存儲指示數(shù)據(jù)字段中的數(shù)據(jù)是否為NV臨時數(shù)據(jù)的標記的空間。例如,圖2中的頁面I和2的元數(shù)據(jù)字段中的“T”(或“臨時”)標記表示相關(guān)聯(lián)的數(shù)據(jù)字段包括NV臨時數(shù)據(jù),而該塊的頁面O和最后一個頁面的元數(shù)據(jù)字段中的“P”(或“持 久”)標記表示在相關(guān)聯(lián)的數(shù)據(jù)字段中的數(shù)據(jù)包括打算持久且更長期存儲的數(shù)據(jù)。“T”臨時標記和“P”持久標記可以使用任何適當(dāng)方式被實現(xiàn)。即,這些標記可以包括任何適當(dāng)數(shù)量的位(即,一個或多個位),并且“T”和“P”標記的實際位或字值可以分別采用任何適當(dāng)?shù)念A(yù)定的位模式。在一些實施例中,NVM接口 116可以不使用特定“P”標記,而可以僅使用“T”臨時標記來表示NV臨時數(shù)據(jù)存儲在NVM 120中的什么地方。在這些實施例中,在讀回頁面時,NVM接口 116可以基于元數(shù)據(jù)字段中沒有臨時標記來確定頁面的數(shù)據(jù)字段不包含NV臨時數(shù)據(jù)。圖2提供了相同塊可以既包括NV臨時數(shù)據(jù)也包括持久數(shù)據(jù)的示例。在其它實施例中,諸如圖3中示出的實施例,整個塊或超級塊可以被用于存儲NV臨時數(shù)據(jù)或持久數(shù)據(jù)。圖3是跨非易失性存儲器(例如圖I的NVM 120)的多個集成電路的多個塊的圖形示意。每列表示一個不同的集成電路,每行表示一個不同的超級塊。因此,如第一集成電路(IC O)中所示,整個塊(即塊2)可以被用于存儲NV臨時數(shù)據(jù)。在一些實施例中,NVM接口116可以在塊的每個被使用的頁面中設(shè)置臨時標記,這可以為NVM接口 116可以正確地將該塊解釋為存儲NV臨時數(shù)據(jù)提供額外的保險。在其它實施例中,NVM接口 116可以在塊中的頁面子集中存儲臨時標記。例如,NVM接口 116可以僅在塊的第一個頁面中存儲臨時標記,從而NVM接口 116稍后在從第一個頁面至最后一個頁面讀取塊時確定該塊是否包含NV臨時數(shù)據(jù)??商鎿Q地,NVM接口 116可以僅在最后一個頁面中存儲臨時標記(從而NVM接口116可以稍后從最后一個頁面向第一個頁面讀取該塊),或NVM接口 116可以在塊的第一個頁面和最后一個頁面中都存儲臨時標記。在一些實施例中,NVM接口 116可以選擇整個超級塊供存儲NV臨時數(shù)據(jù)使用。這在圖3的第五個超級塊(超級塊4)中示出,其中該超級塊中的所有塊可以用于存儲NV臨時數(shù)據(jù)。對于單個塊的情況,NVM接口 116可以或可以不在超級塊的所有被使用頁面中存儲臨時標記。相反,NVM接口 116可以僅在超級塊的每個塊的第一個頁面中、僅在超級塊的每個塊的最后一個頁面中、在每個塊的第一個和最后一個頁面中、或在超級塊的塊子集的一個或多個頁面中存儲臨時標記。
盡管為了清楚沒有在圖中示出,但是不包括“T”臨時標記的塊可以(或可以不)在一些或所有頁面中包括“P”持久標記。此外,盡管示出了 5個集成電路和6個超級塊(總計30個塊),但是應(yīng)該理解NVM 120可以包括任何其它適當(dāng)數(shù)量的集成電路和超級塊。NVM接口 116可以使用修飾NV臨時數(shù)據(jù)的臨時標記,以便以不同于其它類型的數(shù)據(jù)的方式來處理NV臨時數(shù)據(jù)。例如,臨時標記可以影響電子設(shè)備100的啟動過程。一旦啟動電子設(shè)備100,NVM驅(qū)動器117可以執(zhí)行一系列初始化步驟,從而NVM驅(qū)動器117可以正確地確定NVM 120的當(dāng)前狀態(tài)。包括在初始化步驟中的可以是重新構(gòu)建一個或多個元數(shù)據(jù)表或映射,例如表示哪些邏輯地址正被使用的表以及邏輯至物理地址映射。為了重新構(gòu)建表,NVM驅(qū)動器117可以讀取NVM 120的每個頁面,并且對于每個頁面,可以確定是否要將該頁面包括在表中。如果NVM驅(qū)動器117確定該頁面被指定有臨時標記(或該頁面位于當(dāng)前被指定有臨時標記的塊或超級塊中),NVM驅(qū)動器117可以將該頁面從表中略去。這是因為,該頁面已經(jīng)被用于存儲NV臨時數(shù)據(jù),而該NV臨時數(shù)據(jù)僅在電子 設(shè)備100的前一啟動過程中有效。因此,NVM驅(qū)動器117可以將該頁面標記為無效,從而,在一些適當(dāng)時刻,該頁面可以被釋放(例如,在垃圾收集或磨損均衡過程中),并且可以用于存儲其它信息。因為NVM驅(qū)動器117正是在啟動時使該頁面無效并將其從表中忽略,所以NVM 120的存儲器使用可以立即變得高效。即,在當(dāng)前啟動周期中的任何時刻,NVM驅(qū)動器117都不在垃圾收集或磨損均衡的過程中執(zhí)行不必要的操作來維護現(xiàn)在廢棄的NV臨時數(shù)據(jù)?,F(xiàn)在參考圖4和圖5,示出了根據(jù)本發(fā)明的各種實施例的示例性過程的流程圖。這些示例性過程的步驟可以由電子設(shè)備中的任何適當(dāng)部件或部件組合執(zhí)行,例如,由在NVM驅(qū)動器117的控制下操作的控制電路112 (圖I)來執(zhí)行。首先看圖4,示出了在諸如NVM 120 (圖I)的NVM中存儲NV臨時數(shù)據(jù)時使用臨時標記來修飾NV臨時數(shù)據(jù)的過程400。過程400可以開始于步驟402,在此文件系統(tǒng)可以決定在NVM中存儲數(shù)據(jù)。對于NV臨時數(shù)據(jù),這可以例如在易失性存儲器空間不足時或在易失性存儲器需要在降低功率狀態(tài)(即,休眠狀態(tài))下被斷電時發(fā)生。在步驟404,數(shù)據(jù)可以從文件系統(tǒng)提供至NVM接口(例如NVM驅(qū)動器)以用于在NVM中存儲。然后,在步驟406,NVM接口可以確定該數(shù)據(jù)是否為應(yīng)被存儲為NV臨時數(shù)據(jù)的臨時數(shù)據(jù)。在一些實施例中,NVM接口可以基于從文件系統(tǒng)接收的寫請求來解釋該數(shù)據(jù)是否為臨時數(shù)據(jù)。文件系統(tǒng)可能已經(jīng)響應(yīng)于來自應(yīng)用的指示而發(fā)布了該數(shù)據(jù)是臨時數(shù)據(jù)的寫請求信令。如果在步驟406,NVM接口確定該數(shù)據(jù)是NV臨時數(shù)據(jù),則NVM接口可以在步驟408為該數(shù)據(jù)準備元數(shù)據(jù),其中元數(shù)據(jù)包括臨時標記。在步驟408 (或步驟412,下面討論)準備元數(shù)據(jù)可以包括確定和維護從邏輯地址(隨著寫請求接收的)至與NVM相關(guān)聯(lián)的物理地址的映射。在步驟410,NVM接口還可以選擇較低性能和/或較高速度的存儲位置(B卩,頁面、塊、或超級塊)或編程技術(shù)來存儲該數(shù)據(jù),這是因為該數(shù)據(jù)預(yù)期在非易失性存儲器中具有短壽命。例如,NVM接口可以選擇較不可靠的塊(例如,高度循環(huán)的塊)或SLC塊來存儲該數(shù)據(jù)。否則,如果在步驟406,NVM接口確定數(shù)據(jù)不是NV臨時數(shù)據(jù),則在步驟412,NVM接口可以準備不包括臨時標記的元數(shù)據(jù)(以及可以相反地包括持久標記)。在該種情況下,因為該數(shù)據(jù)可能在非易失性存儲器中長期存儲,所以在步驟414,NVM接口可以選擇較高性能和/或較低速度的存儲位置或編程技術(shù)來存儲該數(shù)據(jù)。例如,NVM接口可以選擇更可靠的塊或MLC塊來存儲該數(shù)據(jù)。從步驟410或步驟414,過程400可以繼續(xù)至步驟416,其中NVM接口可以在NVM中所選擇的一個或多個頁面中存儲該數(shù)據(jù)(無論其是NV臨時數(shù)據(jù)還是其它數(shù)據(jù))和至少一些其相關(guān)聯(lián)的元數(shù)據(jù)。過程400然后可以在步驟418結(jié)束。現(xiàn)在轉(zhuǎn)向圖5,示出了用于在電子設(shè)備啟動時處理NV臨時數(shù)據(jù)的過程500。在電子設(shè)備啟動時,過程500可以開始于步驟502。在步驟504,NVM接口可以執(zhí)行各種啟動步驟,從而NVM接口可以確定NVM的初始狀態(tài)及其存儲位置。初始啟動步驟因此可以包括構(gòu)建元數(shù)據(jù)表,例如表示哪些邏輯地址被分配使用的表和/或包含有效數(shù)據(jù)的NVM的每個頁面的邏輯至物理地址映射。從步驟504,NVM接口可以通過掃描和處理NVM的每個頁面來準備表。特別地,在步驟506,NVM接口可以從NVM讀取第一頁面,并且在步驟508,NVM接口可以確定該第一頁面在該頁面的元數(shù)據(jù)字段中是否包括臨時標記。如果不包括,則第一頁面不包括NV臨時數(shù) 據(jù),從而在步驟510,NVM接口可以將該頁面加至表中。例如,NVM接口可以確定(例如從元數(shù)據(jù)字段)與該頁面相關(guān)聯(lián)的邏輯地址并且可以將該頁面的邏輯至物理地址映射添加至適當(dāng)?shù)谋?,或者NVM接口可以在表中指出當(dāng)前被文件系統(tǒng)分配的邏輯地址。相反,如果在步驟508,NVM接口確定該頁面在該頁面的元數(shù)據(jù)字段中包括臨時標記,則過程500可以繼續(xù)到步驟512。因為臨時標記表示該頁面存儲NV臨時數(shù)據(jù),該NV臨時數(shù)據(jù)因為電子設(shè)備已經(jīng)重新啟動而不再有效,所以過程500可以分支到步驟512。在步驟512,NVM接口可以出于重新構(gòu)建元數(shù)據(jù)表的目的而忽略該頁面中的該元數(shù)據(jù)。例如,盡管存儲在該頁面中的邏輯地址本來已經(jīng)表示該邏輯地址在被文件系統(tǒng)使用,但是NVM接口可以忽略該頁面中該邏輯地址的存在。然后,在步驟514,NVM接口可以將該頁面標記為包含無效數(shù)據(jù)。這可以使得NVM接口在適當(dāng)時刻對該頁面執(zhí)行垃圾收集以釋放空間來存儲其它信息。從步驟510或步驟514,過程500可以繼續(xù)至步驟516,在此NVM接口可以確定元數(shù)據(jù)表的構(gòu)建是否完成。該確定可以涉及確定是否存在其它頁面還沒有被讀取和處理。如果存在其它頁面需要被考慮以包括在元數(shù)據(jù)表中,則過程500可以返回至步驟506,從而NVM接口可以讀取NVM的另一個頁面。否則,如果不存在其它頁面,則過程500可以在步驟518結(jié)束。應(yīng)該理解分別在圖4和圖5中的過程400和500的步驟僅是示例性的。在不背離本發(fā)明的范圍的情況下,任何步驟可以被修改、刪除或組合,并且另外的步驟可以被包括。所描述的本發(fā)明的實施例是出于說明而非限制的目的而呈現(xiàn)的。
權(quán)利要求
1.一種電子設(shè)備,包括 易失性存儲器,用于存儲臨時數(shù)據(jù); 非易失性(NV)存儲器,包括多個頁面; 控制電路,操作用于將所述臨時數(shù)據(jù)存儲在所述非易失性存儲器中作為NV臨時數(shù)據(jù),其中所述控制電路在存儲有所述NV臨時數(shù)據(jù)的頁面中的至少一個頁面中存儲臨時標記。
2.根據(jù)權(quán)利要求I所述的電子設(shè)備,其中所述電子設(shè)備還操作用于 為所述NV臨時數(shù)據(jù)準備元數(shù)據(jù);以及 將所述元數(shù)據(jù)和所述臨時標記存儲在存儲有所述NV臨時數(shù)據(jù)的頁面中的所述至少一個頁面的元數(shù)據(jù)字段中。
3.根據(jù)權(quán)利要求I所述的電子設(shè)備,其中所述臨時標記包括預(yù)定的位模式。
4.根據(jù)權(quán)利要求I所述的電子設(shè)備,其中所述多個頁面被組織為塊,并且所述控制電路還操作用于 選擇所述塊之一來存儲所述NV臨時數(shù)據(jù);以及 在所選擇的塊的至少一個頁面中存儲臨時標記。
5.根據(jù)權(quán)利要求4所述的電子設(shè)備,其中所述控制電路還操作用于在所選擇的塊的所有頁面中存儲臨時標記。
6.根據(jù)權(quán)利要求I所述的電子設(shè)備,其中所述控制電路還操作用于 識別所述易失性存儲器處于低內(nèi)存狀態(tài);以及 響應(yīng)于識別出所述低內(nèi)存狀態(tài),將所述臨時數(shù)據(jù)存儲在所述非易失性存儲器中。
7.根據(jù)權(quán)利要求I所述的電子設(shè)備,其中所述控制電路還操作用于選擇較低性能的頁面來存儲所述臨時數(shù)據(jù)。
8.根據(jù)權(quán)利要求I所述的電子設(shè)備,其中所述控制電路還操作用于選擇較高速度的編程技術(shù)來存儲所述臨時數(shù)據(jù)。
9.一種在非易失性存儲器中存儲數(shù)據(jù)的方法,其中所述非易失性存儲器包括多個頁面,所述方法包括 將所述數(shù)據(jù)識別為臨時數(shù)據(jù); 為所述數(shù)據(jù)準備元數(shù)據(jù),其中所述元數(shù)據(jù)包括臨時標記;以及 在所述非易失性存儲器的至少一個頁面中存儲所述數(shù)據(jù)和所述元數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的方法,還包括 利用寫請求,將所述數(shù)據(jù)從文件系統(tǒng)提供至非易失性存儲器接口, 其中所述識別是由所述非易失性存儲器接口響應(yīng)于所述寫請求而執(zhí)行的。
11.根據(jù)權(quán)利要求9所述的方法,其中所述臨時標記包括預(yù)定值的至少一位。
12.根據(jù)權(quán)利要求9所述的方法,其中所述準備還包括為所述數(shù)據(jù)確定邏輯到物理地址映射。
13.根據(jù)權(quán)利要求9所述的方法,還包括基于所述識別來選擇所述非易失性存儲器的所述至少一個頁面。
14.根據(jù)權(quán)利要求9所述的方法,還包括 識別要存儲在所述非易失性存儲器中的另外的數(shù)據(jù),其中所述另外的數(shù)據(jù)被識別為不是臨時數(shù)據(jù);為所述另外的數(shù)據(jù)準備另外的元數(shù)據(jù),其中所述另外的元數(shù)據(jù)不包括臨時標記;以及在所述非易失性存儲器的至少一個其它頁面中存儲所述另外的數(shù)據(jù)和所述另外的元數(shù)據(jù)。
15.根據(jù)權(quán)利要求9所述的方法,其中所述識別包括識別所述數(shù)據(jù)包括基于硬件的休眠數(shù)據(jù)、應(yīng)用產(chǎn)生的數(shù)據(jù)、基于應(yīng)用的休眠數(shù)據(jù)、和用于虛擬存儲器方案的數(shù)據(jù)中的至少一種。
16.—種電子設(shè)備,包括 非易失性存儲器; 控制電路,操作用于在所述電子設(shè)備啟動時為所述非易失性存儲器創(chuàng)建元數(shù)據(jù)表,其中創(chuàng)建元數(shù)據(jù)表包括 讀取所述非易失性存儲器的多個頁面,其中至少一個頁面包 括臨時標記;以及 從所述元數(shù)據(jù)表中忽略所述至少一個頁面。
17.根據(jù)權(quán)利要求16所述的電子設(shè)備,其中所述控制電路還操作用于通過將所述至少一個頁面標記為無效來創(chuàng)建所述元數(shù)據(jù)表。
18.根據(jù)權(quán)利要求16所述的電子設(shè)備,其中所述控制電路還操作用于通過將所述非易失性存儲器中不包括臨時標記的有效頁面添加到元數(shù)據(jù)表中來創(chuàng)建所述元數(shù)據(jù)表。
19.根據(jù)權(quán)利要求16所述的電子設(shè)備,其中所述元數(shù)據(jù)表包括表示哪些邏輯地址當(dāng)前被分配給文件系統(tǒng)使用的表。
20.根據(jù)權(quán)利要求16所述的電子設(shè)備,其中所述元數(shù)據(jù)表包括邏輯至物理地址映射。
21.一種在非易失性存儲器中存儲數(shù)據(jù)的設(shè)備,其中所述非易失性存儲器包括多個頁面,所述設(shè)備包括 用于將所述數(shù)據(jù)識別為臨時數(shù)據(jù)的部件; 用于為所述數(shù)據(jù)準備元數(shù)據(jù)的部件,其中所述元數(shù)據(jù)包括臨時標記;以及 用于在所述非易失性存儲器的至少一個頁面中存儲所述數(shù)據(jù)和所述元數(shù)據(jù)的部件。
22.根據(jù)權(quán)利要求21所述的設(shè)備,還包括 用于利用寫請求,將所述數(shù)據(jù)從文件系統(tǒng)提供至非易失性存儲器接口的部件, 其中所述識別是由所述非易失性存儲器接口響應(yīng)于所述寫請求而執(zhí)行的。
23.根據(jù)權(quán)利要求21所述的設(shè)備,其中所述臨時標記包括預(yù)定值的至少一位。
24.根據(jù)權(quán)利要求21所述的設(shè)備,其中所述準備還包括為所述數(shù)據(jù)確定邏輯到物理地址映射。
25.根據(jù)權(quán)利要求21所述的設(shè)備,還包括用于基于所述識別來選擇所述非易失性存儲器的所述至少一個頁面的部件。
26.根據(jù)權(quán)利要求21所述的設(shè)備,還包括 用于識別要存儲在所述非易失性存儲器中的另外的數(shù)據(jù)的部件,其中所述另外的數(shù)據(jù)被識別為不是臨時數(shù)據(jù); 用于為所述另外的數(shù)據(jù)準備另外的元數(shù)據(jù)的部件,其中所述另外的元數(shù)據(jù)不包括臨時標記;以及 用于在所述非易失性存儲器的至少一個其它頁面中存儲所述另外的數(shù)據(jù)和所述另外的元數(shù)據(jù)的部件。
27.根據(jù)權(quán)利要求21所述的設(shè)備,其中所述識別包括識別所述數(shù)據(jù)包括基于硬件的休眠數(shù)據(jù)、應(yīng)用產(chǎn)生的數(shù)據(jù)、基于應(yīng)用的休眠數(shù)據(jù)、和用于虛擬存儲器方案的數(shù)據(jù)中的至少一種。
全文摘要
本公開涉及非易失性臨時數(shù)據(jù)處理。提供了處理存儲在諸如NAND閃存的非易失性存儲器中的臨時數(shù)據(jù)的系統(tǒng)和方法。臨時數(shù)據(jù)可以包括休眠數(shù)據(jù)或電子設(shè)備的僅一個啟動周期所需的任何其它數(shù)據(jù)。當(dāng)在非易失性存儲器的一個或多個頁面中存儲臨時數(shù)據(jù)時,電子設(shè)備可以將臨時標記存儲為至少一個頁面中的元數(shù)據(jù)的一部分。以該方式,在下一次啟動電子設(shè)備時,電子設(shè)備可以使用該臨時標記來確定相關(guān)聯(lián)的頁面包含不需要的數(shù)據(jù)。電子設(shè)備因此可以使該頁面無效并從其元數(shù)據(jù)表中忽略該頁面。
文檔編號G06F3/06GK102890620SQ20121024892
公開日2013年1月23日 申請日期2012年7月18日 優(yōu)先權(quán)日2011年7月18日
發(fā)明者N·J·瓦克拉特, D·J·波斯特 申請人:蘋果公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1