TWI519952B - 非揮發性暫時資料處理 - Google Patents
非揮發性暫時資料處理 Download PDFInfo
- Publication number
- TWI519952B TWI519952B TW101125916A TW101125916A TWI519952B TW I519952 B TWI519952 B TW I519952B TW 101125916 A TW101125916 A TW 101125916A TW 101125916 A TW101125916 A TW 101125916A TW I519952 B TWI519952 B TW I519952B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- temporary
- nvm
- storing
- electronic device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明係關於一種記憶體,詳言之,係關於一種非揮發性記憶體。
NAND快閃記憶體以及其他類型之非揮發性記憶體(「NVM」)通常用於電子裝置中以用於大容量儲存。舉例而言,諸如攜帶型媒體播放器之消費型電子器件常常包括NAND快閃記憶體以儲存音樂、視訊及其他媒體程式。此資料通常意欲儲存長時間段,諸如約若干天、若干月或甚至若干年。
NVM亦可出於除長期儲存之外的目的而用於電子裝置中。舉例而言,電子裝置可將資料自揮發性記憶體暫時儲存至NVM中,以使得揮發性記憶體能夠在功率減小之休眠狀態期間斷電而不丟失資料。作為另一實例,NVM可用於虛擬記憶體方案中,以增加電子裝置之揮發性記憶體的表觀大小。
提供系統及方法以用於處理意欲在諸如快閃記憶體之非揮發性記憶體中短期儲存的資料。藉由允許以不同於長期資料方式處理短期儲存,NVM之記憶體管理效率及有效性可得以增加。
短期儲存可包括資料在NVM中之儲存,該資料僅在作業系統之當前執行個體期間為需要的,且一旦電子裝置關機
或重新開機(或甚至更早),該資料便不再有用。此資料可稱作「非揮發性暫時資料」或「NV暫時資料」,此係因為該資料為暫時需要的,但儲存於永續性非揮發性媒體上。舉例而言,非揮發性暫時資料可包括基於硬體之休眠資料、應用程式產生之資料、基於應用程式之休眠資料、分頁檔案(swap file)及其他暫時檔案。
在一些實施例中,在儲存非揮發性暫時資料時,該電子裝置可藉由一暫時標記裝飾該非揮發性暫時資料。舉例而言,對於供該電子裝置儲存非揮發性暫時資料之該NVM的每一頁,該電子裝置可在該頁之後設資料中包括一暫時標記。或者,該電子裝置可在儲存非揮發性暫時資料之一區塊的至少一頁中提供一暫時標記。此情形允許該電子裝置區別該非揮發性暫時資料與跨越多個裝置啟動所需要之資訊。
在該電子裝置之啟動期間,該電子裝置可經組態以執行各種起動程序,諸如建構後設資料表。舉例而言,該等後設資料表可包括指示當前分配由檔案系統發出之哪些邏輯位址(例如,邏輯區塊位址(「LBA」))的一表及/或一邏輯至實體位址映射。該電子裝置可藉由掃描遍歷該NVM之該等頁及判定每一頁是否包括一暫時標記(或每一頁是否在經標記用於儲存非揮發性暫時資料之一區塊中)而建立該等後設資料表。若一頁包括一暫時標記,則該頁中包括之資料僅在該電子裝置之先前開機中有用,且在當前開機中為不需要的。因此,該電子裝置可將該頁標記為具有無效
資料,且自該等後設資料表省略該頁(及其儲存之後設資料)。藉由在啟動時執行此等清除操作,該電子裝置可確保自開始便有效地使用NVM記憶體位置。亦即,該電子裝置在當前開機循環期間將不會執行在廢棄項目收集或磨損平均化期間用以維護已過時非揮發性暫時資料之不需要的操作。
在一些實施例中,該電子裝置可基於資料是否為非揮發性暫時資料而選擇用於儲存該資料之記憶體位置及/或程式化技術。舉例而言,該電子裝置可選擇諸如較不可靠的頁或區塊(例如,高循環區塊)之較低效能記憶體位置來儲存非揮發性暫時資料。在一些實施例中,該電子裝置可選擇諸如單位階記憶體胞(「SLC」)區塊之較高速度記憶體位置或程式化技術用於儲存非揮發性暫時資料。
本發明之以上及其他態樣及優勢將在考慮結合隨附圖式進行的以下詳細描述之後變得明顯,在隨附圖式中,相同參考字元遍及全文指代相同部分。
圖1為說明性電子裝置100之方塊圖。在一些實施例中,電子裝置100可為或可包括攜帶型媒體播放器(例如,可自Apple Inc.(Cupertino,CA)購得之iPodTM)、蜂巢式電話(例如,可自Apple Inc.購得之iPhoneTM)、口袋型個人電腦(pocket-sized personal computer)、個人數位助理(「PDA」)、桌上型電腦、膝上型電腦及任何其他合適類型之電子裝置或系統。
電子裝置100可包括系統單晶片(「SoC」)110及非揮發性記憶體(「NVM」)120。NVM 120可包括基於浮動閘極或電荷捕捉技術之NAND快閃記憶體、NOR快閃記憶體、可抹除可程式化唯讀記憶體(「EPROM」)、電可抹除可程式化唯讀記憶體(「EEPROM」)、鐵電RAM(「FRAM」)、磁阻式RAM(「MRAM」),或其任何組合。
NVM 120可組織成為最小可抹除單元之「區塊」,且進一步組織成可為可程式化或讀取之最小單元的「頁」。在一些實施例中,NVM 120可包括多個積體電路,其中每一積體電路可具有多個區塊。來自對應積體電路之區塊(例如,具有相同位置或區塊號之區塊)可形成被稱作「超級區塊」之邏輯單元。可使用實體位址(例如,實體頁位址或實體區塊位址)定址NVM 120之每一記憶體位置(例如,頁或區塊)。雖然在圖1中展示僅一個NVM,但電子裝置100可替代性地包括多個NVM封裝。
系統單晶片110可包括控制電路112、記憶體114及NVM介面116。控制電路112大體上可控制SoC 110及電子裝置100之一般操作及功能。控制電路112可包括任何合適的組件、電路或邏輯,諸如一或多個處理器。控制電路112可在載入於記憶體114中之諸如應用程式、作業系統或NVM驅動程式(例如,NVM驅動程式117)的程式之控制下操作。
記憶體114可包括任何合適類型之揮發性記憶體,諸如
隨機存取記憶體(「RAM」)(例如,靜態RAM(「SRAM」)、動態隨機存取記憶體(「DRAM」)、同步動態隨機存取記憶體(「SDRAM」)、雙資料速率(「DDR」)RAM)、快取記憶體,或其任何組合。在一些實施例中,記憶體114可充當實施為控制電路112之部分的用於任何處理器之主記憶體。在此等及其他實施例中,記憶體114可儲存資料,資料亦可在某一時刻或另一時刻(亦即,同時或在不同時間)作為非揮發性暫時資料儲存於NVM 120中。如上文所描述,非揮發性暫時資料包括儲存於NVM中之資料,該資料僅在作業系統之當前執行個體期間為需要的,且一旦電子裝置100關機或重新開機(或甚至更早),該資料便不再有用。
舉例而言,記憶體114及/或NVM 120可以基於硬體之休眠資料的形式儲存非揮發性暫時資料。基於硬體之休眠資料可包括回應於進入基於硬體之休眠狀態(例如,記憶體114電源關閉之功率減小狀態)而自記憶體114傳送至NVM 120之資料。因此,基於硬體之休眠資料可包括使得電子裝置100能夠在其自休眠狀態喚醒時返回至其休眠前操作狀態(例如,電子裝置100在進入至功率減小狀態之前所處於的狀態)之資料。基於硬體之休眠資料可針對硬體及軟體兩者表示裝置之當前操作狀態。舉例而言,裝置狀態資料可指定正主動地執行哪些程式,或更具體言之,正播放哪一媒體資產(例如,歌曲),或使用者當前正存取之在圖形使用者介面內的位置。因為若使用者在硬體休眠期間關
掉電子裝置100,則使用者將不希望電子裝置100返回至其休眠前操作狀態,所以此基於硬體之休眠資料為非揮發性暫時資料之實例。
在一些實施例中,記憶體114及/或NVM 120可將應用程式產生之資料儲存為非揮發性暫時資料。應用程式產生之資料可包括與應用程式相關聯或由應用程式產生之任何暫時有用資料,諸如關於遊戲應用程式中之當前遊戲的資料。在一些實施例中,應用程式可將應用程式產生之資料的暫時性質之指示提供至作業系統及檔案系統,以使得此資料可最終作為非揮發性暫時資料儲存於NVM 120中。
在一些情形中,可使用記憶體114及/或NVM 120來以基於應用程式之休眠資料的形式儲存非揮發性暫時資料。基於應用程式之休眠資料可包括回應於特定應用程式或程式進入至休眠狀態中而自記憶體114傳送至NVM 120的諸如應用程式產生之資料的資料。電子裝置100可選擇用於休眠之應用程式以在空間不足且不正在主動地使用應用程式時釋放記憶體114中之空間。因此,基於應用程式之休眠資料可包括使得電子裝置100能夠使休眠之應用程式返回至其休眠前操作狀態的資料。因為若電子裝置100重新開機,則使用者將不希望休眠應用程式原樣返回其前一狀態,所以基於應用程式之休眠資料為非揮發性暫時資料的另一實例。
在此等及其他情形下,記憶體114及/或NVM 120可用於儲存與虛擬記憶體方案有關之非揮發性暫時資料。舉例而
言,可將應用程式產生之資料、基於應用程式之資料或由一或多個應用程式使用的任何其他資料自記憶體114傳送至NVM 120中之「分頁檔案」或「頁檔案」。此處,資料可自記憶體114分頁調出至儲存於NVM 120中之檔案中,藉此在需要空間時釋放記憶體114中之空間。亦可預期在虛擬記憶體方案中用以在記憶體114與NVM 120之間傳達非揮發性暫時資料之其他檔案類型。因為一旦電子裝置100關機,虛擬記憶體方案中所使用之資料便通常為不需要的,所以分頁檔案為非揮發性暫時資料之另一實例。
記憶體114及/或NVM 120可儲存任何其他合適類型之非揮發性暫時資料,諸如通常儲存於基於UNIX之系統上之「暫時檔案」中的任何資料。舉例而言,非揮發性暫時資料可包括儲存於NVM 120上之暫時檔案中的資料,一程式或應用程式建立該資料以將資料傳遞至另一程式或應用程式。作為另一實例,非揮發性暫時資料可包括儲存於NVM 120上之暫時檔案中的短期資料,該短期資料過大以致無法裝進記憶體114中或將佔據大於記憶體114中之預定空間量的空間量。
為了使得SoC 110(諸如,記憶體114)之組件能夠將資訊傳遞至NVM 120且自NVM 120傳遞資訊,SoC 110可包括NVM介面116。NVM介面116可包括經組態以充當NVM 120與SoC 110之非NVM特定組件之間的介面或驅動程式之硬體、軟體及韌體之任何合適組合。舉例而言,NVM介面116可包括NVM驅動程式117以提供軟體/韌體介面,該軟
體/韌體介面使作業系統及檔案系統能夠間接地存取NVM 120,藉此允許作業系統及檔案系統發出讀取或寫入請求以將非揮發性暫時資料儲存於NVM 120中或自NVM 120擷取非揮發性暫時資料。NVM介面116可進一步包括匯流排控制器118,匯流排控制器118可包括使得NVM驅動程式117能夠使用NVM 120之匯流排規格(例如,資料速率)來存取NVM 120的任何合適硬體組件。
NVM介面116可執行用以管理NVM 120之記憶體位置的各種任務,諸如廢棄項目收集、磨損平均化及壞區塊管理。NVM驅動程式117可經組態以維護或產生「後設資料」,「後設資料」可為由NVM驅動程式117使用以管理NVM 120及其中的記憶體位置之任何記憶體管理資料。NVM驅動程式117可經組態以維護後設資料表或映射,諸如指示當前分配由檔案系統發出之哪些邏輯位址(例如,邏輯區塊位址(「LBA」))以供使用的表及/或NVM 120之邏輯位址與實體位址之間的映射。邏輯位址由檔案系統應讀取或寫入請求而發出,NVM驅動程式170可將該等邏輯位址映射至實際上對應於NVM 120之實體記憶體位置的不同實體位址。NVM驅動程式117因此可維護後設資料表以便恰當地處理來自檔案系統之讀取及寫入請求。
在圖1中將NVM介面116描繪為完全實施於SoC 110上。在一些實施例中,NVM介面116之組件中的一些以及NVM驅動程式117之功能性中的一些可藉由(例如)NVM 120中包括的單獨記憶體控制器(例如,快閃記憶體控制器)實施且
執行。因此,應理解,NVM介面116或NVM相關功能性之任何描述不限於執行於SoC 110上之組件或動作。
NVM介面116可接收來自檔案系統之寫入請求以儲存多種類型之資料中的任一者。舉例而言,檔案系統可指示NVM介面116儲存諸如歌曲及視訊之媒體資產歷時不確定的時間段。在其他情形下,檔案系統可指示NVM介面116將非揮發性暫時資料儲存於NVM 120中,非揮發性暫時資料諸如基於硬體之休眠資料、應用程式產生之資料、基於應用程式之休眠資料、分頁檔案或其他暫時檔案。因為非揮發性暫時資料具有此種不同於其他形式之資料(亦即,大於電子裝置100之一開機循環)的預期壽命(亦即,電子裝置100之一開機循環),所以NVM介面116可經組態而以可增加NVM 120中之記憶體使用的有效性及效率之不同方式處理非揮發性暫時資料。
在一些實施例中,NVM介面116可基於資料是否為暫時資料而選擇用以儲存資料之記憶體位置(亦即,頁、區塊或超級區塊)。舉例而言,NVM介面116可選擇較低效能記憶體位置以用於儲存非揮發性暫時資料。較低效能記憶體位置可為較不可靠的頁或區塊,諸如高循環區塊(亦即,已經過更多抹除循環且因此可能已經歷更多劣化之區塊)。NVM介面116可選擇較高效能記憶體位置以用於儲存非暫時資料,此係因為預期非暫時資料將在NVM 120中維護歷時較長時間段。
在一些實施例中,NVM介面116可選擇較高速度記憶體
位置或程式化技術以用於儲存非揮發性暫時資料。以此方式,在進入至功率減小休眠模式中時或在多種其他情形下,在記憶體114與NVM 120之間傳送資料之間的延遲減小,此情形對於虛擬記憶體方案而言可為有益的。為了改良速度,NVM介面116可選擇單位階記憶體胞(「SLC」)區塊,或可在用非揮發性暫時資料程式化區塊時減小調諧解析度。NVM介面116可選擇SLC區塊以增加程式化速度,同時亦改良可靠性。
在一些實施例中,NVM介面116可藉由在將非揮發性暫時資料儲存於NVM 120中時藉由「暫時標記」裝飾非揮發性暫時資料而以不同於其他資料方式處理非揮發性暫時資料。以此方式,在自NVM 120回讀資料時,NVM介面116可快速且有效地區分非揮發性暫時資料與意欲儲存較長時間段之其他資訊。
圖2說明NVM介面116可藉由暫時標記裝飾非揮發性暫時資料之一種方式。圖2為非揮發性記憶體(諸如,圖1之NVM 120)的區塊中之頁之圖形表示。如所說明,區塊之每一頁可用以儲存資料欄位及相關聯之後設資料欄位。每一資料欄位可儲存任何合適類型之資料,諸如非揮發性暫時資料或請求檔案系統儲存之任何資料(例如,媒體資產)。同一頁之後設資料欄位可儲存與資料欄位中之資料相關聯的後設資料,諸如包括錯誤校正碼(「ECC」)資料的由NVM驅動程式117接收或產生之任何記憶體管理資料、用於管理邏輯與實體位址(例如,LBA)之間的映射之
任何資訊,及其類似者。
後設資料欄位可包括用於儲存指示資料欄位中之資料是否為非揮發性暫時資料的標記之空間。舉例而言,圖2中之頁1及2之後設資料欄位中的「T」(或「暫時」)標記指示相關聯之資料欄位包括非揮發性暫時資料,而頁0及區塊之最末頁之後設資料欄位中的「P」(或「永續性」)標記指示相關聯之資料欄位中的資料包括意欲永續性較長期儲存之資料。可使用任何合適的方法來實施「T」暫時標記及「P」永續性標記。亦即,此等標記可包括任何合適數目個位元(例如,一或多個位元),且「T」及「P」標記之實際位元或字值可各自採用任何合適的預定位元型樣。
在一些實施例中,NVM介面116可不使用特定「P」標記,且可替代地使用僅「T」暫時標記來指示非揮發性暫時資料儲存於NVM 120中何處。在此等實施例中,在回讀頁時,NVM介面116可基於後設資料欄位中之暫時標記的缺失來判定頁之資料欄位不含非揮發性暫時資料。
圖2提供其中同一區塊可包括非揮發性暫時資料以及永續性資料兩者之實例。在諸如圖3中所說明之實施例的其他實施例中,整個區塊或超級區塊可用以儲存非揮發性暫時資料或永續性資料。
圖3為非揮發性記憶體(諸如,圖1之NVM 120)的跨越若干積體電路之多個區塊之圖形表示。每一行表示不同積體電路,且每一列表示不同超級區塊。因此,如第一積體電路(「IC 0」)中所說明,整個區塊(亦即,區塊2)可用以儲
存非揮發性暫時資料。在一些實施例中,NVM介面116可在區塊之每一使用頁中提供暫時標記,此情形可提供額外保證:NVM介面116可正確地將此區塊解譯為儲存非揮發性暫時資料。在其他實施例中,NVM介面116可將暫時標記儲存於區塊中之頁的子集中。舉例而言,NVM介面116可將暫時標記儲存於區塊之僅第一頁中,以使得NVM介面116稍後可在自第一頁至最末頁讀取區塊時判定區塊是否含有非揮發性暫時資料。或者,NVM介面116可將暫時標記儲存於僅最末頁中(因此,NVM介面116稍後可自最末頁至第一頁讀取區塊),或NVM介面116可將暫時標記儲存於區塊之第一頁及最末頁兩者中。
在一些實施例中,NVM介面116可選擇整個超級區塊以用於儲存非揮發性暫時資料。此情形說明於圖3中之第五超級區塊(「超級區塊4」)中,其中超級區塊中之所有區塊可用於儲存非揮發性暫時資料。如同單區塊狀況,NVM介面116可或可不將暫時標記儲存於超級區塊之所有使用頁中。替代地,NVM介面116可將暫時標記儲存於超級區塊中之每一區塊的僅第一頁中,儲存於超級區塊中之每一區塊的僅最末頁中,儲存於每一區塊之第一頁及最末頁兩者中或儲存於超級區塊中之區塊之子集的一或多個頁中。
雖然未在圖中描繪以保持清楚,但不包括「T」暫時標記之區塊可(或可不)在頁中之一些或全部中包括「P」永續性標記。此外,雖然說明5個積體電路及6個超級區塊(總計30個區塊),但應理解,NVM 120可包括任何其他合
適數目個積體電路及超級區塊。
NVM介面116可使用裝飾非揮發性暫時資料之暫時標記來以不同於其他類型之資料方式處理非揮發性暫時資料。舉例而言,暫時標記可影響電子裝置100之啟動程序。在電子裝置100啟動時,NVM驅動程式117可執行一系列初始化程序,以使得NVM驅動程式117可恰當地判定NVM 120之當前狀態。可在初始化程序中包括一或多個後設資料表或映射(諸如,指示正使用哪些邏輯位址之表及邏輯至實體位址映射)之重建構。
為了重建構該等表,NVM驅動程式117可讀取NVM 120之每一頁,且可針對每一頁判定在表中是否包括該頁。若NVM驅動程式117判定頁係藉由暫時標記指明(或處於當前藉由暫時標記指明之區塊或超級區塊中),則NVM驅動程式117可自表中將該頁略去。此係因為已使用該頁儲存僅在電子裝置100之先前開機期間有效的非揮發性暫時資料。因此,NVM驅動程式117可將該頁標記為無效,以使得在某一適當時間,該頁可被釋放(例如,在廢棄項目收集或磨損平均化期間)且用以儲存其他資訊。因為NVM驅動程式117使該頁失效且在啟動時自表省略該頁,所以可立即使NVM 120之記憶體使用有效率。亦即,NVM驅動程式117在當前開機循環期間將不會執行在廢棄項目收集或磨損平均化期間用以維護現已過時的非揮發性暫時資料之不需要的操作。
現參看圖4及圖5,根據本發明之各種實施例展示說明性
程序之流程圖。可藉由電子裝置中之任何合適的組件或組件之組合(諸如,藉由在NVM驅動程式117(圖1)之控制下操作的控制電路112(圖1))執行此等說明性程序之步驟。
首先來看圖4,展示程序400,其用於在將非揮發性暫時資料儲存於諸如NVM 120(圖1)之NVM中時藉由暫時標記裝飾非揮發性暫時資料。程序400可在步驟402處開始,在步驟402中,檔案系統可決定將資料儲存於NVM中。對於非揮發性暫時資料,此情形可(例如)在揮發性記憶體正耗盡空間時或在揮發性記憶體需要在功率減小狀態(亦即,休眠狀態)中斷電時發生。
在步驟404處,可將資料自檔案系統提供至NVM介面(例如,NVM驅動程式)以供儲存於NVM中。接著,在步驟406處,NVM介面可判定此資料是否為應儲存為非揮發性暫時資料之暫時資料。在一些實施例中,NVM介面可基於自檔案系統接收之寫入請求來解譯資料是否為暫時資料。檔案系統可回應於來自應用程式之指示而發出用信號表示資料為暫時資料之寫入請求。
若在步驟406處,NVM介面判定資料為非揮發性暫時資料,則NVM介面可在步驟408處準備用於該資料之後設資料,其中後設資料包括暫時標記。在步驟408(或下文論述之步驟412)處準備後設資料可包括判定且維護自邏輯位址(藉由寫入請求而接收)至與NVM相關聯之實體位址的映射。NVM介面亦可在步驟410處選擇較低效能及/或較高速度記憶體位置(亦即,頁、區塊或超級區塊)或程式化技術
以用於儲存資料,此係因為預期資料在非揮發性記憶體中具有短壽命。舉例而言,NVM介面可選擇用以儲存資料之較不可靠的區塊(例如,高循環區塊)或SLC區塊。
否則,若NVM介面在步驟406處判定資料不為非揮發性暫時資料,則NVM介面可在步驟412處準備不包括暫時標記(且可替代地包括永續性標記)之後設資料。在此狀況下,因為資料可能長期儲存於非揮發性記憶體中,所以NVM介面可在步驟414處選擇較高效能及/或較低速度記憶體位置或程式化技術以用於儲存資料。舉例而言,NVM介面可選擇用以儲存資料之更可靠的區塊或MLC區塊。
程序400可自步驟410或步驟414繼續進行至步驟416,在步驟416中,NVM介面可將資料(不管資料為非揮發性暫時資料或是其他資料)及資料之相關聯的後設資料中之至少一些儲存於NVM之選定的一或多個頁中。程序400接著可在步驟418處結束。
現轉而參看圖5,展示程序500,其用於在電子裝置啟動時處理非揮發性暫時資料。程序500可在步驟502處在電子裝置啟動時開始。在步驟504處,NVM介面可執行各種啟動程序以使得NVM介面可判定NVM之初始狀態及其記憶體位置。初始啟動程序因此可包括針對含有有效資料之NVM的每一頁建構後設資料表(諸如,指示分配哪些邏輯位址以供使用之表)及/或邏輯至實體位址之映射。
自步驟504,NVM介面可藉由掃描遍歷且處理NVM之每一頁來準備該等表。詳言之,在步驟506處,NVM介面可
自NVM讀取第一頁,且在步驟508處,NVM介面可判定此第一頁在該頁之後設資料欄位中是否包括暫時標記。若不包括暫時標記,則第一頁不包括非揮發性暫時資料,因此在步驟510處,NVM介面可將該頁添加至該等表。舉例而言,NVM介面可判定(例如,自後設資料欄位)與該頁相關聯之邏輯位址,且可將該頁之邏輯至實體位址映射添加至適當表,或NVM介面可在表中指示當前藉由檔案系統分配邏輯位址。
若在步驟508處,NVM介面替代地判定該頁在該頁之後設資料欄位中包括暫時標記,則程序500可繼續進行至步驟512。因為暫時標記指示該頁儲存由於電子裝置已重新開機而不再有效之非揮發性暫時資料,所以程序500可分支至步驟512。在步驟512處,NVM介面可出於後設資料表重建構之目的而忽略頁中之後設資料。舉例而言,雖然儲存於頁中之邏輯位址原本將指示正藉由檔案系統使用邏輯位址,但NVM介面可忽略頁中之邏輯位址的存在。接著,在步驟514處,NVM介面可將頁標記為含有無效資料。此情形可允許NVM介面在適當時間對頁執行廢棄項目收集以釋放空間以用於儲存其他資訊。
程序500可自步驟510或步驟514繼續進行至步驟516,在步驟516中,NVM介面可判定是否完成建構後設資料表。此判定可涉及判定是否存在尚未被讀取及處理之額外頁。若存在需要考慮包括在後設資料表中之額外頁,則程序500可返回至步驟506,以使得NVM介面可讀取NVM之另
一頁。否則,若不存在額外頁,則程序500可在步驟518處結束。
應理解,圖4之程序400及圖5之程序500的步驟僅為說明性的。可修改、移除或組合該等步驟中之任一者,且可包括額外步驟而不脫離本發明之範疇。
本發明之所描述的實施例係出於說明而非限制之目的呈現。
100‧‧‧電子裝置
110‧‧‧系統單晶片(「SoC」)
112‧‧‧控制電路
114‧‧‧記憶體
116‧‧‧非揮發性記憶體(「NVM」)介面
117‧‧‧NVM驅動程式
118‧‧‧匯流排控制器
120‧‧‧非揮發性記憶體(「NVM」)
400‧‧‧用於在將非揮發性暫時資料儲存於諸如NVM 120(圖1)之NVM中時藉由暫時標記裝飾非揮發性暫時資料之程序
500‧‧‧用於在電子裝置啟動時處理非揮發性暫時資料之程序
圖1為具有根據本發明之各種實施例組態之非揮發性記憶體的說明性電子裝置之方塊圖;圖2及圖3為根據本發明之各種實施例之儲存非揮發性暫時資料的說明性非揮發性記憶體位置之圖形表示;圖4為根據本發明之各種實施例之用於藉由暫時標記裝飾非揮發性記憶體中的非揮發性暫時資料之說明性程序的流程圖;及圖5為根據本發明之各種實施例之用於在電子裝置啟動時處理非揮發性暫時資料之說明性程序的流程圖。
100‧‧‧電子裝置
110‧‧‧系統單晶片(「SoC」)
112‧‧‧控制電路
114‧‧‧記憶體
116‧‧‧非揮發性記憶體(「NVM」)介面
117‧‧‧NVM驅動程式
118‧‧‧匯流排控制器
120‧‧‧非揮發性記憶體(「NVM」)
Claims (16)
- 一種電子裝置,其包含:一揮發性記憶體,其用於儲存與在一休眠前狀態中操作之至少一應用程式相關聯之應用程式產生之資料;一非揮發性記憶體(「NVM」),其包含複數個頁;及控制電路,其操作以:接收在該休眠前狀態中操作之一應用程式正進入一休眠狀態之一指示;及將與進入該休眠狀態之該應用程式相關聯之該應用程式產生之資料儲存為該非揮發性記憶體中之暫時資料,其中該控制電路將一暫時標記儲存於儲存該暫時資料之該等頁中之至少一者中,且其中該暫時資料包含需要用於該電子裝置之僅一個開機循環之資料,以使得在裝置之重新開機之後,包含該暫時標記之任何頁面被忽略且不包括於一邏輯至實體映射表中,且其中該應用程式產生之資料包含使得在該休眠狀態中之該應用程式能夠回復到休眠前操作狀態中之資料。
- 如請求項1之電子裝置,其中該電子裝置進一步操作以:準備用於該暫時資料之後設資料;及將該後設資料及該暫時標記儲存於儲存該暫時資料之該等頁中之該至少一者的一後設資料欄位中。
- 如請求項1之電子裝置,其中該暫時標記包含一預定位元型樣。
- 如請求項1之電子裝置,其中該複數個頁係組織成區塊,且其中該控制電路進一步操作以:選擇該等區塊中之一者以用於儲存該暫時資料;及將一暫時標記儲存於該選定區塊之至少一頁中。
- 如請求項4之電子裝置,其中該控制電路進一步操作以將一暫時標記儲存於該選定區塊之所有該等頁中。
- 如請求項1之電子裝置,且其中該控制電路進一步操作以:識別該揮發性記憶體處於一低記憶體狀態;及回應於識別出該低記憶體狀態而將該暫時資料儲存於該非揮發性記憶體中。
- 如請求項1之電子裝置,其中該控制電路進一步操作以選擇較低效能頁用於儲存該暫時資料。
- 如請求項1之電子裝置,其中該控制電路進一步操作以選擇一較高速度程式化技術用於儲存該暫時資料。
- 一種將資料儲存於一非揮發性記憶體中之方法,其中該非揮發性記憶體包含複數個頁,該方法包含:將與在一休眠前狀態中操作之至少一應用程式相關聯之應用程式產生之資料儲存於一揮發性記憶體中;接收在該休眠前狀態中操作之一應用程式正進入一休眠狀態之一指示;及將與進入該休眠狀態之該應用程式相關聯之該應用程式產生之資料儲存於非揮發性記憶體中作為該非揮發性記憶體中之暫時資料,其中控制電路將一暫時標記儲存 於儲存該暫時資料之該等頁中之至少一者中,且其中該暫時資料包含需要用於電子裝置之僅一個開機循環之資料,以使得在裝置之重新開機之後,包含該暫時標記之任何頁面被忽略且不包括於一邏輯至實體映射表中,且其中該應用程式產生之資料包含使得在該休眠狀態中之該應用程式能夠回復到休眠前操作狀態中之資料。
- 如請求項9之方法,其進一步包含:準備用於該暫時資料之後設資料;及將該後設資料及該暫時標記儲存於儲存該暫時資料之該等頁中之該至少一者的一後設資料欄位中。
- 如請求項9之方法,其中該暫時標記包含一預定位元型樣。
- 如請求項9之方法,其中該複數個頁係組織成區塊,且該方法進一步包含:選擇該等區塊中之一者以用於儲存該暫時資料;及將一暫時標記儲存於該選定區塊之至少一頁中。
- 如請求項12之方法,其進一步包含將一暫時標記儲存於該選定區塊之所有該等頁中。
- 如請求項9之方法,其進一步包含:識別該揮發性記憶體處於一低記憶體狀態;及回應於識別出該低記憶體狀態而將該暫時資料儲存於該非揮發性記憶體中。
- 如請求項9之方法,其進一步包含選擇較低效能頁用於儲存該暫時資料。
- 如請求項9之方法,其進一步包含選擇一較高速度程式化技術用於儲存該暫時資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/184,647 US8949508B2 (en) | 2011-07-18 | 2011-07-18 | Non-volatile temporary data handling |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201324146A TW201324146A (zh) | 2013-06-16 |
TWI519952B true TWI519952B (zh) | 2016-02-01 |
Family
ID=46548260
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102107952A TWI573019B (zh) | 2011-07-18 | 2012-07-18 | 非揮發性暫時資料處理 |
TW101125916A TWI519952B (zh) | 2011-07-18 | 2012-07-18 | 非揮發性暫時資料處理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102107952A TWI573019B (zh) | 2011-07-18 | 2012-07-18 | 非揮發性暫時資料處理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8949508B2 (zh) |
EP (1) | EP2549385B1 (zh) |
JP (1) | JP5683023B2 (zh) |
KR (2) | KR101385789B1 (zh) |
CN (1) | CN102890620B (zh) |
AU (1) | AU2012205187B2 (zh) |
BR (1) | BR102012017717B1 (zh) |
TW (2) | TWI573019B (zh) |
WO (1) | WO2013012632A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949508B2 (en) | 2011-07-18 | 2015-02-03 | Apple Inc. | Non-volatile temporary data handling |
WO2013027642A1 (en) * | 2011-08-19 | 2013-02-28 | Kabushiki Kaisha Toshiba | Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device |
US20130124778A1 (en) * | 2011-11-10 | 2013-05-16 | Greenliant Llc | Method of storing host data and meta data in a nand memory, a memory controller and a memory system |
KR102093104B1 (ko) | 2013-02-22 | 2020-03-25 | 주식회사 쿠라레 | 섬유, 천 및 부직포 |
US10528116B2 (en) | 2013-03-14 | 2020-01-07 | Seagate Technology Llc | Fast resume from hibernate |
CN107391389B (zh) | 2013-08-05 | 2020-11-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
CN104346292B (zh) | 2013-08-05 | 2017-10-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法、记忆装置与控制器 |
US10140477B2 (en) * | 2013-12-09 | 2018-11-27 | Thales E-Security, Inc. | Obfuscating in memory encryption keys |
FR3046266A1 (fr) * | 2015-12-28 | 2017-06-30 | Proton World Int Nv | Stockage dans une memoire flash |
US9990023B2 (en) * | 2016-03-28 | 2018-06-05 | Apple Inc. | Systems and methods for handling sudden power failures in solid state drives |
CN106569744B (zh) * | 2016-10-31 | 2020-07-14 | 华为数字技术(成都)有限公司 | 一种存储临时数据的方法及存储设备 |
CN108536611B (zh) * | 2017-03-03 | 2022-05-13 | 西部数据技术公司 | 用于损耗均衡的系统和方法 |
US10956052B1 (en) * | 2017-07-21 | 2021-03-23 | EMC IP Holding Company LLC | Online address to hash (A2H) metadata scanner |
US10705918B1 (en) | 2017-07-21 | 2020-07-07 | EMC IP Holding Company LLC | Online metadata backup consistency check |
US10515701B1 (en) * | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
CN108304280A (zh) * | 2018-01-30 | 2018-07-20 | 郑州云海信息技术有限公司 | 控制异构混合内存系统异常恢复的方法、bmc及装置 |
US10446254B1 (en) * | 2018-05-03 | 2019-10-15 | Western Digital Technologies, Inc. | Method for maximizing power efficiency in memory interface block |
US10936456B1 (en) | 2019-02-20 | 2021-03-02 | Apple Inc. | Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns |
US11216388B2 (en) | 2019-04-30 | 2022-01-04 | EMC IP Holding Company LLC | Tiering between storage media in a content aware storage system |
JP6874814B2 (ja) * | 2019-10-30 | 2021-05-19 | 株式会社安川電機 | 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010A (en) * | 1851-04-01 | Peter mckinlay | ||
US9024A (en) * | 1852-06-15 | Motion of the lay in looms | ||
JP3106401B2 (ja) * | 1993-07-26 | 2000-11-06 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 情報処理システム |
JPH11242631A (ja) | 1998-02-26 | 1999-09-07 | Toshiba Corp | コンピュータシステムおよび同システムにおけるデータ保存/復元方法 |
US6209088B1 (en) | 1998-09-21 | 2001-03-27 | Microsoft Corporation | Computer hibernation implemented by a computer operating system |
US6574717B1 (en) * | 2001-05-31 | 2003-06-03 | Oracle Corporation | Techniques for time-based retention of a reusable resource |
US7467274B2 (en) * | 2001-12-31 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Method to increase the life span of limited cycle read/write media |
US7082495B2 (en) * | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
JP3994071B2 (ja) | 2003-06-12 | 2007-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ装置、システムの稼働状態の切り換え制御方法、およびプログラム |
US7093089B2 (en) | 2003-08-18 | 2006-08-15 | Hewlett-Packard Development Company, Lp. | Systems and methods for storing data on computer systems |
GB0320142D0 (en) | 2003-08-28 | 2003-10-01 | Ibm | Data storage systems |
JP4688584B2 (ja) * | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
US20070234028A1 (en) | 2005-09-15 | 2007-10-04 | Rothman Michael A | Method and apparatus for quickly changing the power state of a data processing system |
KR100843543B1 (ko) | 2006-10-25 | 2008-07-04 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
WO2008132760A2 (en) * | 2007-04-26 | 2008-11-06 | Hewlett-Packard Development Company, L.P. | Method and system for allocating memory in a computing environment |
US8239639B2 (en) * | 2007-06-08 | 2012-08-07 | Sandisk Technologies Inc. | Method and apparatus for providing data type and host file information to a mass storage system |
US8214343B2 (en) * | 2008-03-19 | 2012-07-03 | Microsoft Corporation | Purposing persistent data through hardware metadata tagging |
DE102008062934A1 (de) | 2008-12-23 | 2010-06-24 | Kuka Roboter Gmbh | Vernetzte Industriesteuerung und Verfahren zum Wechsel des Betriebsmodus einer solchen Industriesteuerung |
US20100169540A1 (en) * | 2008-12-30 | 2010-07-01 | Sinclair Alan W | Method and apparatus for relocating selected data between flash partitions in a memory device |
US9098396B2 (en) * | 2009-02-13 | 2015-08-04 | Sandisk Il Ltd. | Enhancement of efficiency in power failure handling in flash memory |
US8380676B1 (en) * | 2009-05-27 | 2013-02-19 | Google Inc. | Automatic deletion of temporary files |
WO2010144587A2 (en) | 2009-06-12 | 2010-12-16 | Violin Memory, Inc. | Memory system having persistent garbage collection |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
WO2011031796A2 (en) | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
US9063886B2 (en) | 2009-09-18 | 2015-06-23 | Apple Inc. | Metadata redundancy schemes for non-volatile memories |
US8296506B2 (en) | 2009-11-09 | 2012-10-23 | Lite-On It Corporation | Method for managing a non-violate memory and computer readable medium thereof |
US8694814B1 (en) * | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
KR101678911B1 (ko) * | 2010-03-12 | 2016-11-23 | 삼성전자주식회사 | 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 |
US8949508B2 (en) | 2011-07-18 | 2015-02-03 | Apple Inc. | Non-volatile temporary data handling |
-
2011
- 2011-07-18 US US13/184,647 patent/US8949508B2/en not_active Expired - Fee Related
-
2012
- 2012-07-11 WO PCT/US2012/046236 patent/WO2013012632A1/en active Application Filing
- 2012-07-17 AU AU2012205187A patent/AU2012205187B2/en not_active Ceased
- 2012-07-17 EP EP12176705.7A patent/EP2549385B1/en not_active Not-in-force
- 2012-07-18 JP JP2012173367A patent/JP5683023B2/ja not_active Expired - Fee Related
- 2012-07-18 BR BR102012017717-0A patent/BR102012017717B1/pt not_active IP Right Cessation
- 2012-07-18 TW TW102107952A patent/TWI573019B/zh not_active IP Right Cessation
- 2012-07-18 CN CN201210248924.4A patent/CN102890620B/zh not_active Expired - Fee Related
- 2012-07-18 TW TW101125916A patent/TWI519952B/zh not_active IP Right Cessation
- 2012-07-18 KR KR1020120078463A patent/KR101385789B1/ko active IP Right Grant
- 2012-08-30 KR KR1020120095776A patent/KR101818599B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20130010449A (ko) | 2013-01-28 |
BR102012017717A2 (pt) | 2013-07-30 |
JP5683023B2 (ja) | 2015-03-11 |
JP2013033482A (ja) | 2013-02-14 |
TWI573019B (zh) | 2017-03-01 |
EP2549385A1 (en) | 2013-01-23 |
KR101385789B1 (ko) | 2014-04-16 |
AU2012205187B2 (en) | 2014-10-16 |
KR20130010447A (ko) | 2013-01-28 |
CN102890620B (zh) | 2016-05-18 |
EP2549385B1 (en) | 2015-06-10 |
TW201324146A (zh) | 2013-06-16 |
US8949508B2 (en) | 2015-02-03 |
WO2013012632A1 (en) | 2013-01-24 |
KR101818599B1 (ko) | 2018-01-15 |
TW201329713A (zh) | 2013-07-16 |
BR102012017717B1 (pt) | 2020-09-15 |
US20130024600A1 (en) | 2013-01-24 |
AU2012205187A1 (en) | 2013-01-31 |
CN102890620A (zh) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI519952B (zh) | 非揮發性暫時資料處理 | |
US9063728B2 (en) | Systems and methods for handling hibernation data | |
US8949512B2 (en) | Trim token journaling | |
TWI375151B (en) | A controller for one type of nand flash memory for emulating another type of nand flash memory and methods for the same | |
US20180329818A1 (en) | Preserving data upon a power shutdown | |
US9547594B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
US8850105B2 (en) | Method for controlling memory system, information processing apparatus, and storage medium | |
US20130290759A1 (en) | Enhanced system sleep state support in servers using non-volatile random access memory | |
JP5860543B2 (ja) | ブートデータのロード | |
CN104461397A (zh) | 一种固态硬盘及其读写方法 | |
US9110784B2 (en) | Nonvolatile random access memory and data management method | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
US8156278B2 (en) | Non-volatile data storage system and method thereof | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
TWI354892B (en) | Method of immediate data update with flash memory | |
WO2009086692A1 (zh) | 嵌入式系统利用nand闪存记忆体储存及启动的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |