TWI388983B - 用於促進快閃記憶體系統之快速喚起的方法及系統 - Google Patents
用於促進快閃記憶體系統之快速喚起的方法及系統 Download PDFInfo
- Publication number
- TWI388983B TWI388983B TW097102061A TW97102061A TWI388983B TW I388983 B TWI388983 B TW I388983B TW 097102061 A TW097102061 A TW 097102061A TW 97102061 A TW97102061 A TW 97102061A TW I388983 B TWI388983 B TW I388983B
- Authority
- TW
- Taiwan
- Prior art keywords
- management table
- volatile memory
- memory
- blocks
- copy
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Description
本發明係關於用於維持可用於促進快閃記憶體系統之喚起之資料結構的方法及系統。
Lasser之標題為"Method For Fast Wake-Up of a Flash Memory System"的美國專利第6,510,488號(下文中稱作"Lasser'488")揭示了即使在快閃系統軟體依賴於管理表(從無到有產生該等管理表係耗時的)之情況下仍允許快閃記憶體系統在對該快閃記憶體系統加電後達成快速喚起時間的方法及系統。此快速喚起時間係在不犧牲資料完整性之情況下達成的。上文所提及之專利Lasser'488出於所有目的以引用方式如同在本文中充分陳述般併入。
如Lasser'488中所闡釋,將快閃記憶體設備用於電腦資料儲存在傳統上需要一位於主機電腦之作業系統與設備低層級存取常式之間的軟體轉譯層。如此係因為快閃技術具有一些使用限制,其使得不可能以簡單之隨機存取線性方法存取快閃記憶體。一個該種限制為不能隨機覆寫任何所要之快閃記憶體位置。具體言之,將新的內容寫入一快閃記憶體位置可能需要首先抹除含有彼位置之整個區塊(保留仍需要之任何其他位置的內容)且僅接著寫入新的內容。
轉譯層向主機作業系統呈現獨立資料扇區之隨機存取可定址陣列的虛擬視圖,同時隱藏並處理將彼等虛擬位址映
射成其在快閃媒體中之真實位置的細節。此轉譯機制極其重要,且Amir Ban之美國專利第5,937,425號中揭示該快閃記憶體轉譯層之一實例,該專利如同在本文中充分陳述般併入。Ban揭示了用於在虛擬快閃位址與實體快閃位址之間實施映射機制的方法。美國專利6,678,785中詳述了該系統之另一實例,該專利亦出於所有目的以引用方式如同在本文中充分陳述般併入。
轉譯過程依賴於內部轉譯表,該等內部轉譯表向快閃系統軟體提供將主機電腦資料存取請求轉換為實際快閃存取請求所需的資訊。此等轉譯表係藉由快閃記憶體系統軟體基於儲存在快閃設備內之控制資訊而在系統喚起期間建構(或若主機軟體請求在稍後時間建構,則在稍後時間建構)。雖然在理論上可能不建構該等表且替代以僅使用來自快閃記憶體之原始控制資料,但由於對存取請求之回應時間將過慢,故在實踐上此係不可用的。如此係因為存取快閃上之資料遠遠慢於存取RAM記憶體中之資料,且亦因為在運行時間期間所需類型之操作中通常為了效率來最優化RAM記憶體表,而快閃儲存之控制資料不會受到最優化。
舉例而言,快閃實體單元可含有映射至其之處擬單元的編號。在程式運行時間期間,吾人可能頻繁地需要將虛擬單元號轉譯成其實體對應物。若吾人必須僅依賴於快閃儲存之控制資料,則可能需要掃描該等單元直至找到具有指定虛擬單元號之單元,此依照簡單媒體存取之標準係極為
冗長之過程。然而,藉由在系統喚起時掃描快閃設備一次且建構一將每一虛擬單元號映射至相應實體單元號的表,稍後吾人能夠極為有效地進行該等映射。
問題在於:在系統喚起時掃描快閃資料儲存設備可能花費較長時間,尤其對於高容量設備而言。此對於使用者期望立即開啟之系統及設備(亦即,蜂巢式電話、PDA等)而言係尤為惱人的。簡單地將表儲存在快閃記憶體中可能對唯讀設備奏效,諸如僅儲存使用者不可改變之電腦可執行碼的快閃設備。然而,當使用用以儲存可能頻繁改變之資料(諸如,PDA中之正文檔案或試算表)的設備時,僅將表儲存在快閃記憶體中將不會成功。如此係因為當不斷寫入設備且改變設備之內容時,轉譯表之內容亦改變。每當RAM中之表發生改變時便更新快閃記憶體中之表的複本係不實際的,因為所招致之負擔將使系統顯著變慢。因此,差異將積累在快閃記憶體中所儲存之表與RAM中之"正確"表之間。現在,若使用者切斷電源且接著返回接通電源,則在不更新表之情況下,軟體將自快閃記憶體讀取到不正確之轉譯表,且結果可能係在寫入新資料時出現資料丟失。
根據Lasser'488中所揭示之一些實施例,藉由將轉譯表儲存在快閃記憶體中且添加以無論何時讀取轉譯表均可偵測之方式使其無效的一些軟體手段來解決此問題。可能之實施例(但並非唯一之實施例)包括添加一使所有表項之總和等於某一固定已知值的核對和值或向所儲存之表添加一
有效性旗標。此外,應在關閉系統之前要求應用軟體在轉譯層中調用指定函數。
以此等方式,快閃記憶體設備能夠在系統經受有序關閉時起始快速喚起,且當系統經受無序關閉時恢復常規喚起。
雖然此解決方案對於多種狀況係有用的,但存在此解決方案可能不適用之情況。該解決方案可能不適用之第一實例係在突發電源故障頻繁且預期加電事件中之多者(或甚至大多者)將遭遇無效之儲存表且將導致緩慢之常規喚起時。
該解決方案可能不適用之第二實例係主控(host)快閃記憶體系統之設備的作業系統不向軟體應用程式提供一用於有序設備卸除或關閉之服務的情況。雖然類似Linux之複雜作業系統提供該服務,但存在許多更簡單且更小之作業系統,其經設計以用於在開機後起動儲存系統且從不關閉作業系統。在該等狀況下,Lasser'488之方法將導致每次對系統加電均對快閃管理系統進行一常規喚起,從彼等方法中毫無受益。
該解決方案可能不適用之第三實例係對系統加電與使系統準備好進行操作之間的時間間隔的長度存在嚴格限制的情況。因此,即使電源故障罕見且幾乎所有加電狀況均導致快閃管理系統之快速喚起,但仍不可接受的係:不管電源故障之發生如何罕見,其仍將引起稍後之一常規加電序列。
由於Lasser'488之上述不適用之處,Lasser之美國專利申請案11/382,056(下文中稱作"Lasser'056")揭示了快閃管理系統之快速喚起之問題的另一解決方案。上文所提及之申請案Lasser'056出於所有目的以引用方式如同在本文中陳述般併入。
Lasser'056揭示一種技術,藉此在快閃記憶體系統之一些事件之後(但非所有事件之後)於快閃記憶體中更新並保存一或多個快閃管理表。當喚起時,若證實儲存在快閃記憶體中之給定快閃管理表含有過時資訊,則仍可能使用該(該等)所儲存之表來促進系統喚起,且不需要使過時之表失效。可在喚起時使用在關閉及/或電力損失之前保存在快閃記憶體中的過時快閃管理表來重建"正確"之表(亦即,反映系統之當前狀態),而非使此表失效。
此係藉由同時在快閃記憶體中維持事件日誌來進行的。當喚起時,使用儲存在事件日誌中之資料來更新快閃記憶體表且藉此即使在電力損失或關閉之前不存在有序退出,仍維持資料完整性。在多數狀況下,使用事件日誌自儲存在快閃記憶體中之"過時"表得出"新近"表比藉由掃描快閃儲存設備來建構新近表迅速。
Lasser'056之一缺點在於:其需要在快閃記憶體中維持一事件日誌。雖然此在一些快閃管理系統中並非為真正的缺點,因為已出於其他原因維持了事件日誌,但存在不另外需要事件日誌的許多快閃管理系統,使得使用Lasser'056之方法在寫入效能方面代價很高。
因此,公認需要一種可在不危及快閃資料結構之完整性且不犧牲效能的情況下提供用於快速喚起快閃記憶體系統之方法的方法及系統,且具有該方法及系統將係非常有利的。
出於本揭示案之目的,將術語"區塊"界定為可在單次操作中抹除之快閃記憶體的最小單元。將術語"頁"界定為可在單次操作中寫入(出於歷史原因亦稱作"程式化")之快閃記憶體的最小單元。通常,一區塊含有多頁。
出於本揭示案之目的,術語"快閃管理系統"及"快閃檔案系統"為同義字且可互換使用。此等術語中之每一者指代一管理快閃記憶體設備中之資料儲存的軟體模組,不管該模組輸出之介面係檔案導向(具有類似"打開檔案"或"寫入檔案"之指令)或係區塊導向(具有類似"讀取區塊"或"寫入區塊"之指令),且不管軟體模組在僅專用於快閃管理之控制器上運行或在與上面運行使用儲存系統之應用程式之主機電腦相同的主機電腦上運行。
出於本揭示案之目的,"快閃管理表"係含有快閃管理系統用於支援快閃管理系統演算法之運算之資料的任何表,其中表中之在任何指定時間點的資料表示快閃記憶體系統在彼指定時間之狀態的某種態樣。舉例而言,若快閃管理表係快閃記憶體之每一區塊含有一位元的表,其中該位元指示相應區塊是否空閒以供使用,則表在第一時間點之內容為第一位元型樣,其表示關於在彼時間該等區塊中之何
者空閒且何者不空閒的系統狀態之態樣。在稍後之時間點,彼表中之位元型樣可與第一點相同或不同,意味由於一些空閒區塊變得不空閒且一些不空閒區塊變得空閒而引起的空閒區塊與不空閒區塊之不同混合。
出於本揭示案之目的,"事件"係一控制快閃記憶體之實體對該快閃記憶體的任何寫入請求、抹除請求或內務處理請求。該實體可為如下文中於圖1中所說明之快閃記憶體控制器、如下文中於圖5中所說明之通用CPU或如下文中於圖6中所說明之協同作用的快閃記憶體控制器與通用CPU。
出於本揭示案之目的,"選定事件"為由快閃記憶體系統設計者所選擇以產生對一或多個記憶體管理表之一或多個更新的事件。
本發明之多個態樣滿足了上文提及之需要及其他需要中之一些或全部。
為達成上述需要,本發明包括一種將與快閃記憶體系統之未來事件相關之資訊儲存在快閃記憶體中的方法。舉例而言,當將虛擬至實體位址轉譯表之當前值儲存在快閃記憶體中時,系統亦連同表儲存未來在系統中之事件將需要配置新的空閒實體區塊時所使用之後續數個實體區塊的列表。
在稍後時間,系統中之事件(諸如寫入請求)可引起將替代另一實體區塊作為同一虛擬區塊之相應區塊的新實體區
塊的配置,從而導致位址映射快閃管理表之狀態改變。當發生該事件時,快閃管理系統將配置位於所儲存之列表之最前面的區塊作為新近指派之區塊。在完成對寫入請求之處理之後,所儲存之表複本不再係新近的,因為藉由寫入操作實現的虛擬區塊映射與系統之實際狀態不同步。
當系統喚起時,首先載入所儲存之管理表複本。在此階段,無法確定該表正確地反映了系統之狀態,因為可能在系統關閉之前的數個事件引起所儲存之表與正確表之間的若干不相容性。然而,儲存在快閃記憶體中且與所儲存之表相關聯的"未來資訊"提供足夠之資訊以用於校正所儲存之表且重建表之正確新近版本。
此係可能的,因為吾人知曉,已改變映射狀態之任何實體區塊配置(若存在實體區塊配置)必然已使用列表中所出現之實體區塊。此外,必然已嚴格根據列表中之區塊順序耗用了該等區塊。因此,為知曉所儲存之表是否為新近的,相對於位於表最前面之實體區塊來檢查系統之狀態便足夠。若發現此第一區塊仍空閒,則未發生新的配置且該表為新近的。但若發現該列表之第一區塊不再空閒,則系統中必定已發生了某一狀態改變且表並非為新近的。在該種狀況下,吾人發現必須應用於表以反映列表之第一區塊的配置且更新RAM中之表複本的更新。若發現第一區塊正被使用,則繼續依次對該列表中之後續區塊進行相同測試,再三重複相同邏輯。重複此直至遇到列表中之一尚未被使用的區塊或直至到達列表末端為止。
發現一區塊當前是否正被使用且發現在區塊正被使用之狀況下必須應用於表之改變需要存取儲存在快閃記憶體中(可能在相關區塊自身內)之控制資料。雖然快閃記憶體存取與RAM存取相比可能一樣慢,但是本發明之方法僅需要少數快閃記憶體存取,因為僅對"未來列表"中之區塊進行檢查,且通常根據上述邏輯實際上僅檢查該等區塊中之一些。因此,用於自一快閃管理表之過時版本來產生該表之新近版本的當前方法遠遠快於藉由全面掃描所有快閃記憶體區塊對該表的全面重建。
在某種程度上,可將本發明看作Lasser'056之方法的類似方法。兩種方法均借助於額外快閃儲存之資訊自所儲存之表複本來重建管理表之新近版本。但在Lasser'056中額外資料為事件日誌,而在本發明中額外資料為與"未來事件"相關之列表。在Lasser'056中,在晚於將表儲存在快閃記憶體中之時間的時間儲存額外資訊,而在本發明中,通常在將表儲存在快閃記憶體中的同時儲存額外資訊。
現首次揭示一種根據一記憶體系統之事件維持該系統之資料結構的方法,該方法包括以下步驟:(a)將至少一管理表之至少一部分儲存在該記憶體系統之一非揮發性記憶體中,該至少一管理表之內容指示該記憶體系統在一第一時間點的一狀態;(b)將一未來資訊資料結構儲存在該非揮發性記憶體中,該未來資訊資料結構包括與該記憶體系統之預期在該資訊資料結構之該儲存之後發生之事件相關的複數個記錄;及(c)在該第一時間點之後的一第二時間點,根
據該未來資訊資料結構處理一事件。
較佳地,該非揮發性記憶體為一快閃記憶體。根據一些實施例,該至少一管理表之該至少一部分的該儲存包括在該非揮發性記憶體中更新該至少一管理表之該至少一部分。
根據一些實施例,內容指示該記憶體系統在該第一時間點之該狀態的該至少一管理表之該至少一部分的該儲存亦包括將該至少一管理表之該至少一部分儲存在該記憶體系統之一揮發性記憶體中。該至少一管理表之該至少一部分中的一者在該揮發性記憶體中進行每改變N>1次便實現該更新。進行該更新之其他方式包括回應於選定事件、週期性地更新及根據該記憶體系統之資源的可用性來更新。
根據一些實施例,該未來資訊資料結構包括該非揮發性記憶體之在該第一時間點空閒之區塊的一列表。
現首次揭示一種喚起一記憶體系統之方法,該方法包括以下步驟:(a)自該記憶體系統之一非揮發性記憶體讀取至少一管理表之至少一部分,該至少一管理表描述該記憶體系統在該喚起之前的一時間點之一狀態;(b)自該非揮發性記憶體讀取一未來資訊資料結構,該未來資訊資料結構包括與預期在該未來資訊資料結構之一儲存之後發生之事件相關的複數個記錄;及(c)根據該未來資訊資料結構之至少一記錄更新該至少一非揮發性管理表之該至少部分。
根據一些實施例,該非揮發性記憶體為一快閃記憶體。
根據一些實施例,該更新使該至少一管理表之該至少一
部分發生改變以描述該記憶體系統之一當前狀態。該更新視情況而定。舉例而言,若退出為有序的,則無需進行更新。舉例而言,根據一些實施例,該方法進一步包括以下步驟:比較該複數個記錄與該非揮發性記憶體以判定自該時間點起該記憶體系統之該狀態是否已改變,該更新繼而視該記憶體系統之自該時間點起已改變的該狀態而定。
現首次揭示一種記憶體模組,其包括:(a)一第一非揮發性記憶體;及(b)該非揮發性記憶體之一控制器,其可操作以藉由以下步驟管理該第一非揮發性記憶體,該等步驟包括:(i)將至少一管理表之至少一部分儲存在該第一非揮發性記憶體中,該至少一管理表之內容指示該記憶體系統在一第一時間點的一狀態,(ii)將一未來資訊資料結構儲存在該第一非揮發性記憶體中,該未來資訊資料結構包括與該記憶體系統之預期在該未來資訊資料結構之該儲存之後發生之事件相關的複數個記錄,及(iii)在該未來資訊資料結構之該儲存之後的一第二時間點,根據該未來資訊資料結構處理該事件。
根據一些實施例,該模組進一步包括一第二非揮發性記憶體;且該控制器可操作以藉由執行儲存在該第二非揮發性記憶體中之碼來實現該等步驟。
現首次揭示一種記憶體系統,其包括:(a)一包括一非揮發性記憶體之記憶體模組;及(b)該記憶體模組之一主機,其藉由以下步驟參與管理該非揮發性記憶體,該等步驟包括:(i)將至少一管理表之至少一部分儲存在該第一非揮發
性記憶體中,該至少一管理表之內容指示該記憶體系統在一第一時間點的一狀態,(ii)將一未來資訊資料結構儲存在該第一非揮發性記憶體中,該未來資訊資料結構包括與該記憶體系統之預期在該資訊資料結構之該儲存之後發生之事件相關的複數個記錄,及(iii)在該未來資訊資料結構之該儲存之後的一第二時間點,根據該未來資訊資料結構處理一事件。
根據一些實施例,該等步驟僅由該主機實現。根據其他實施例,該記憶體模組亦包括一與該主機協作以實現該等步驟的控制器。
現首次揭示一種記憶體模組,其包括:(a)一第一非揮發性記憶體;及(b)該非揮發性記憶體之一控制器,其可操作以藉由以下步驟喚起該記憶體模組,該等步驟包括:(i)自該第一非揮發性記憶體讀取描述該記憶體模組在該喚起之前的一時間點之一狀態的至少一管理表之至少一部分;(ii)自該非揮發性記憶體中讀取一未來資訊資料結構,該未來資訊資料結構包括與預期在該時間點之後發生之事件相關的複數個記錄;及(iii)根據該未來資訊資料結構之至少一記錄更新該至少一快閃管理表之該至少一部分。
根據一些實施例,該記憶體模組進一步包括:一第二非揮發性記憶體;且該控制器可操作以藉由執行儲存在該第二非揮發性記憶體中之碼來實現該等步驟。
現首次揭示一種記憶體系統,其包括:(a)一包括一非揮發性記憶體之記憶體模組;及(b)該記憶體模組之一主機,
其藉由以下步驟參與管理該非揮發性記憶體,該等步驟包括:(i)自該非揮發性記憶體讀取描述該記憶體模組在該喚起之前的一時間點之一狀態的至少一管理表之至少一部分;(ii)自該非揮發性記憶體讀取一未來資訊資料結構,該未來資訊資料結構包括與預期在該未來資訊資料結構之儲存之後發生之事件相關的複數個記錄;及(iii)根據該未來資訊資料結構之至少一記錄更新該至少一管理表。
根據一些實施例,該等步驟僅由該主機實現。根據其他實施例,該記憶體模組亦包括一與該主機協作以實現該等步驟的控制器。
現首次揭示一種電腦可讀儲存媒體,其具有包含於其中以用於根據一記憶體系統之事件來維持該系統之資料結構的電腦可讀碼,該電腦可讀碼包括:(a)用於將至少一管理表之至少一部分儲存在該記憶體系統之一非揮發性記憶體中的程式碼,該至少一管理表之內容指示該記憶體系統在一第一時間點的一狀態;(b)用於將一未來資訊資料結構儲存在該非揮發性記憶體中的程式碼,該未來資訊資料結構包括與該記憶體系統之預期在該未來資訊資料結構之該儲存之後發生之事件相關的複數個記錄;及(c)用於以下程式碼:在該未來資訊資料結構之該儲存之後的一第二時間點,根據該未來資訊資料結構處理該事件。
現首次揭示一種電腦可讀儲存媒體,其具有包含於其中以用於喚起一記憶體系統的電腦可讀碼,該電腦可讀碼包括:(a)用於自該記憶體系統之一非揮發性記憶體中讀取至
少一管理表之至少一部分的程式碼,該至少一管理表描述該記憶體系統在該喚起之前的一時間點之一狀態;(b)用於自該非揮發性記憶體中讀取一未來資訊資料結構的程式碼,該未來資訊資料結構包括與預期在該未來資訊資料結構之一儲存之後發生之事件相關的複數個記錄;及(C)用於根據該未來資訊資料結構之至少一記錄更新該至少一管理表之該至少一部分的程式碼。
現將根據特定例示性實施例來描述本發明。應理解,本發明不限於所揭示之例示性實施例。亦應理解,並非目前揭示之用於根據快閃記憶體系統之事件來維持資料結構的方法、設備及電腦可讀碼之每一特徵均係實施本發明所必需的,如隨附申請專利範圍中之任一特定者中所主張。描述設備之各種元件及特徵以充分啟用本發明。亦應理解,貫穿展示或描述過程或方法之本揭示案,可以任何順序或同時執行該方法之步驟,除非自上下文清楚獲知,一步驟取決於首先正執行的另一步驟。
目前揭示之用於維持資料結構的方法、系統及電腦可讀碼可用於(例如)在遭遇頻繁之電源故障的環境中促進快閃記憶體系統之"快速喚起"。然而,不應將此解釋為對本發明之限制,且僅揭示其以作為當前揭示之用於維持快閃記憶體系統資料結構之技術的一非限定性應用。
更具體言之,目前揭示之技術用以即使在頻繁發生意外電源故障的情況下仍提供快閃管理系統之快速喚起,而不
犧牲資料完整性。
現參看圖式。圖1為根據本發明之一些實施例之非限定性例示性快閃記憶體系統100的方塊圖。例示性系統100包括一用於儲存資料之記憶體模組120及一經由主機介面180與該記憶體模組120通信之主機設備110(主機設備110之實例:微電腦、智慧卡終端機、數位相機、蜂巢式電話、PDA或任何其他設備)。
記憶體模組120包括一可為任何類型之快閃記憶體130以及一根據經由主機介面180接收之讀取及/或寫入請求來存取快閃記憶體130的控制器140。對於圖1中所說明之實例,控制器140包括一CPU 150、一ROM 160(其中儲存有由CPU 150執行之碼)及CPU 150用於支援控制器140對碼之執行的一RAM 170。
此非限定性實例方塊圖(圖1)代表諸如安全數位快閃記憶卡或攜帶型USB快閃驅動器之典型非揮發性儲存模組。
在圖式中,圖5為根據本發明之一些實施例之另一非限定性例示性快閃記憶體系統220的方塊圖。例示性快閃記憶體系統220包括一通用CPU 250、一RAM 260、快閃記憶體280、一至快閃記憶體280之匯流排介面290、一啟動ROM 270、一儲存媒體設備300及一將各種其他組件彼此互連的匯流排240。當對系統220加電時,自ROM 270啟動系統,接著自儲存媒體300將電腦碼及資料載入RAM 260中。亦自儲存媒體300載入控制快閃記憶體280之仿真碼。匯流排介面290根據自CPU 250接收之讀取及/或寫入請求
來存取快閃記憶體280。儲存媒體300為載有用於實施本發明之方法之電腦碼的電腦可讀儲存媒體之一實例。通常,儲存媒體300為硬碟或快閃記憶體設備。該等電腦可讀儲存媒體之其他實例包括CD、DVD、磁片等。不同於圖1之例示性快閃記憶體系統,此例示性快閃記憶體系統220不具有快閃記憶體控制器(其控制快閃記憶體系統)。實情為,CPU 250將控制器仿真碼自大容量儲存器300載至RAM 260,且接著,CPU 250執行來自RAM 260之碼以模擬圖1之控制器140。對快閃管理表之保存及其在加電後之恢復與重建及其他快閃管理功能全部係由CPU 250所執行之仿真碼來執行。
在圖式中,圖6為根據本發明之一些實施例之另一非限定性例示性快閃記憶體系統320的方塊圖。例示性系統320包括一通用CPU 350、一RAM 360、一快閃記憶體模組330、一快閃記憶體控制器310、快閃記憶體380、一至快閃記憶體模組330之匯流排介面390、一啟動ROM 370、一儲存媒體400及一將各種其他組件彼此互連的匯流排340。當對系統320加電時,自ROM 370啟動系統,接著自儲存媒體400將電腦碼及資料載入RAM 360中。亦自儲存媒體400載入控制快閃記憶體模組330之仿真碼。匯流排介面390根據自CPU 350接收之讀取及/或寫入請求來存取快閃記憶體380。類似於儲存媒體300,儲存媒體400為載有用於實施本發明之方法之電腦碼的電腦可讀儲存媒體之一實例。不同於圖5之例示性快閃記憶體系統,此例示性快閃
記憶體系統320亦具有一位於快閃記憶體模組330中之與CPU 350協作以控制快閃記憶體系統380的快閃記憶體控制器310。CPU 350將控制器仿真碼自儲存媒體400載至RAM 360,且接著,CPU 350執行來自RAM 360之碼以模擬圖1之控制器140功能中之一些。快閃管理表之保存及其在加電時之恢復與重建及其他快閃管理功能係由控制器310與CPU 350共同地執行。
注意,快閃記憶體系統100通常將一或多個快閃管理表儲存在揮發性記憶體中,例如,儲存在記憶體模組120之RAM 170中、儲存在主機設備110之RAM中或某一其他合適之位置中。該快閃管理表之一非限定性實例為提供自虛擬區塊號至實體區塊號之位址轉譯的轉譯表。此係存在於許多快閃管理系統中之映射,如(例如)在美國專利5,937,425之系統中。注意,相同概念及方法亦可應用於許多其他類型之快閃管理表,例如,可應用於表示當前哪些區塊經配置且並非空閒以供使用且哪些區塊未經配置的配置區塊表、可應用於表示自虛擬區塊號至一或多個實體區塊號之群之映射的表,等等。
隨時間流逝,儲存在快閃記憶體中之資料可能改變且與快閃記憶體相關之各種輔助資料亦可能改變。隨著快閃管理系統之不同事件(例如,寫入請求、內務處理操作等等)發生,快閃記憶體系統之"狀態"隨時間而改變。
注意,每一快閃管理表表示快閃管理系統之總"狀態"的
一或多個態樣。因此,任何給定之快閃管理表或表之集合不必表示系統之全部狀態,而僅表示系統之一或多個態樣。在上文所提及之空閒區塊表的實例中,知曉哪些區塊空閒且哪些區塊不空閒對於界定系統之完整狀態無疑係不夠的。非空閒區塊可僅含有單個已使用之頁,或非空閒區塊之頁中的一些或全部可能寫入有有效資料。此並非由空閒區塊表來反映,而係藉由其他快閃管理表或藉由一些其他手段來反映的,但彼表仍表示系統狀態之一態樣且因此屬於快閃管理表之定義。
因此,當將表示快閃記憶體系統之"當前狀態"或"早先狀態"或"稍後狀態"或"最近狀態"之特定快閃記憶體表儲存在揮發性或非揮發性記憶體中時,此表示由該(該等)特定快閃記憶體表所表示之快閃記憶體系統之態樣的"早先"或"當前"或"稍後"或"最近"狀態。
隨時間流逝,快閃管理表在一序列狀態當中移動,每一狀態在一給定時間表示快閃記憶體系統在該時間之一或多個態樣。由表來模型化的系統狀態之態樣在離散狀態間切換,其具有對應於快閃記憶體系統之事件的明確過渡點。
圖2A展示在第一時間點(t=t1
)之將虛擬區塊號映射至實體區塊號之例示性快閃管理表的內容。該表藉由虛擬區塊號來索引且列出當前含有相應虛擬區塊之資料的實體區塊號。在實際實施例中,常常不需要配置用於儲存虛擬區塊號之空間,因為該表係藉由彼等虛擬區塊號來排序且因此
可直接索引至正確之表項。然而,為便於陳述,如同實體上表示兩行般展示表。
圖2A中所表示之虛擬至實體映射的狀態係使得若須存取虛擬區塊號2,則表告知吾人相應之實體區塊為區塊號172的狀態。在某一時間點,發送至快閃管理系統之指令(或即使在無外部指令之情況下由系統進行之內部內務處理操作,諸如廢料收集操作)可引起映射改變。舉例而言,將新資料寫入虛擬區塊號2且因此覆寫虛擬區塊號2之先前資料的指令可引起快閃管理系統指派另一實體區塊以對應於虛擬區塊號2,且將該新資料儲存在彼區塊中。
圖2B展示在發生彼改變後之稍後時間(t=t2
)之虛擬至實體快閃管理表的內容。現在,虛擬區塊號2在該表中對應於實體區塊號777且不再對應於實體區塊172。因此,該表已自第一狀態切換至第二狀態。將快閃管理表之內容的任何改變界定為彼表之狀態改變。
應強調,並非發生在快閃管理系統中之每一寫入操作均引起快閃管理系統之所有快閃管理表的狀態改變。舉例而言,若實體區塊172之頁中的一些未經使用且一寫入操作針對虛擬區塊號2,使得根據快閃管理系統之演算法,新資料儲存在實體區塊172之彼等未經使用之頁中,則不改變虛擬至實體映射且表在彼寫入操作之後保持不變。因此,快閃管理表狀態改變之速率通常低於在系統內實行之操作的速率。又,若在同一快閃管理系統內維持多個快閃管理表(每一表表示系統狀態之一不同態樣),則該等表中
之每一者可在不同時間點改變其狀態。
如上文所闡釋,當在加電之後初始化系統時,常常有必要使管理軟體在RAM中(例如,在RAM 170中)建立管理軟體使用之任何快閃管理表的充分更新之複本。為達成系統之快速喚起,僅自遍及儲存系統之區塊散布之資料來再生表之內容通常係不可接受的,因為此過於緩慢。每當表之狀態改變時將表之一複本保存在快閃記憶體中的相對替代方法亦係不可接受的,因為每當表之狀態改變時將表之一複本保存在快閃記憶體中添加高的負擔且降低系統效能。
本發明之各種實施例所提供的技術在此等兩個先前技術方法之間提供一折衷。因此,大體而言,僅針對一些狀態改變(而非每當存在狀態改變時)將快閃管理表保存在快閃記憶體中。
此說明於圖3中,其為根據本發明之一些實施例之用於在快閃記憶體中維持快閃管理系統之資料結構的例示性常式之流程圖。如本文中所使用,‘維持在快閃記憶體中’包括儲存在快閃記憶體中。通常,維持在快閃記憶體中包括將表及/或用於填充表之相關資料維持在揮發性記憶體/RAM中,及在複數個時間點將表之更新版本(亦即,與快閃記憶體系統之當前狀態同步的表)保存在快閃記憶體中。
根據圖3之非限定性實施例,注意在非限定性實施例中,系統在一些時間點為閒置的,且系統等待下一事件發
生(206)。在處理快閃管理系統之事件(210)後,通常根據已發生之事件在揮發性記憶體中更新一或多個表(214)。在給定事件之後,在快閃記憶體中可能或可能不更新此等表。
在於一些(但非全部)事件發生之後保存快閃管理表的情況下,在快閃記憶體中亦維持一資料結構係有用的,該資料結構含有影響與表相關聯之未來事件之處理的資訊。在例示性實施例中,此未來資訊資料結構含有複數個記錄,其中每一記錄包括影響快閃管理系統之一未來事件的資料。雖然並非為對本發明之限制,但注意,通常不會在每一事件之後於快閃記憶體中更新此未來資訊資料結構。對於不總將經更新之表(亦即,根據快閃記憶體系統中之最近事件來更新)保存在快閃記憶體中之情況而言,未來資訊資料結構對維持資料完整性係有用的。
對於提供資料完整性之實施例(亦即,即使存在電源損失),通常在任何給定時刻,以下情況中之一者為真實的:a)將根據最近事件更新的表儲存在快閃記憶體中,b)將根據早先狀態(亦即,早於最近事件,此意謂自該"早先"事件起已在快閃記憶體系統中發生其他事件)更新之表儲存在快閃記憶體中,且儲存在快閃記憶體中之未來資訊資料結構包括與自"早先事件"之時間起已發生之所有事件有關的資訊。
未來資訊資料結構之一例示性實施例為一有序列表,其
中提供指導影響系統狀態(亦即,儲存在一或多個快閃管理表中之"系統之至少一態樣"的狀態)之後續數個事件之處理的資訊,其為外部寫入指令、內部內務處理操作或影響系統狀態之任何其他事件。
將瞭解,可將未來資訊資料結構儲存在快閃記憶體中之任何位置中,但不必在實體上與未來資訊資料結構所關聯之快閃管理表相鄰。
如圖3所示,針對快閃記憶體系統之一些事件(但並非針對所有事件)(亦即,僅針對已滿足"保存表"條件之事件(226),下文中論述此條件)將該(該等)快閃管理表保存在快閃記憶體中(230)。因此,在一些實施例中,每當將一(多個)快閃管理表保存在快閃記憶體中,便亦保存經更新之未來資訊資料結構(234)。此時,認為保存在快閃記憶體中之該(該等)快閃管理表與快閃記憶體系統之"最近狀態"或"最近事件"同步。雖然圖3中未明確展示,但應理解,在RAM記憶體中保持最近保存之未來資訊資料結構的一複本係適當的(雖然並非為使用本發明所必需的),使得可在不必存取非揮發性記憶體以用於擷取未來資訊資料結構的情況下進行未來事件之處理。
參看步驟230,注意,當將指示快閃記憶體系統之當前狀態的表保存在快閃記憶體中時,此在本文中經界定為"使快閃記憶體中之表與當前狀態同步"。
總體而言,在多個事件之後(但不必在所有事件之後)將該(該等)快閃管理表儲存在快閃記憶體中的過程在本文中
被界定為"將表維持在快閃記憶體中"。因此,在不同時間點將該(該等)快閃管理表之另一版本(通常為指示快閃記憶體系統之一稍後狀態的每一後續版本)儲存在快閃記憶體中。因此,"將表維持在快閃記憶體中"不需要針對任何給定時刻,最近保存在快閃記憶體中之表與快閃記憶體系統之當前狀態同步。圖3之檢驗指示,通常存在期間最近儲存之該(該等)快閃記憶體表指示快閃記憶體系統之早先狀態(亦即,快閃記憶體系統中發生更近事件之前的系統狀態)的時期。
注意,可(例如)在對快閃系統加電之後,稍後自快閃記憶體擷取未來資訊資料結構。藉由檢驗資料結構(如下文中進一步闡釋),在任何給定時間判定該(該等)所保存之快閃管理表是否反映系統之最近狀態(亦即,表中所表示之狀態的態樣)。
吾人現應使用圖2A及圖2B之快閃管理表實例以用於呈現未來資訊資料結構之一非限定性實例。圖2A及圖2B之快閃管理表提供自虛擬區塊號至相應實體區塊號的映射。在系統操作期間,每當快閃管理軟體向給定虛擬區塊配置一空閒之實體區塊,同時使對應於彼虛擬區塊之先前實體區塊空閒,表之狀態便發生改變。
根據本發明之一例示性實施例之與彼表相關聯的未來資訊資料結構為當前空閒之區塊的一有序列表。該列表界定未來將配置空閒區塊時所根據之確切順序。換言之,快閃管理軟體下一次配置空閒區塊時,確保快閃管理軟體將選
擇位於列表最前面之區塊。快閃管理軟體第二次配置空閒區塊時,確保快閃管理軟體將選擇位於列表之第二表項中的區塊,以此類推。
應注意,通常每一實體區塊自身內含有彼實體區塊當前經指派至之虛擬區塊的編號。如下文在系統之喚起過程之論述中所闡釋,此事實允許快閃管理軟體自所保存(且並非新近)之表版本且自表之相關聯未來資訊列表重建表之目前狀態。
用於判定何者構成了將經更新之表保存在快閃記憶體中所針對之事件(亦即,步驟226之"保存條件")的任何策略係在本發明之範疇內。
本發明之範疇包括根據本發明之特定實施例之用於判定何時將一(多個)經更新之快閃管理表保存在快閃記憶體中的若干策略。
在第一實施例中,每當表之狀態發生第N次改變時便保存一表,其中N為預定的。當保存之負擔低時,N可小至2,或(例如)當保存之負擔高時,N可高達100或甚至更大。因此,將計數器變數初始化為零。此計數器變數在每一事件之後增加。若計數器變數超過預定值N,則將一或多個表保存至快閃記憶體,且重新計算與彼等表相關聯之未來資訊資料結構且連同該(該等)表將其儲存在快閃記憶體中。
在第二實施例中,根據由最近事件觸發之狀態改變來判定"保存表"條件。出於彼目的,將狀態改變分類為‘較小’改變或‘較大’改變。較小之表狀態改變不會引起立即(亦即,在處理下一事件(210)之前)保存表(亦即,步驟226之後的"否"分支),而較大改變則引起立即保存。在空閒區塊快閃管理表之狀況下將改變分類為較小及較大的非限定性實例為,將空閒區塊改變為非空閒區塊的改變被認為較小,而將非空閒區塊變為空閒區塊的改變被認為較大。
在第三實施例中,每當預定時間間隔期滿便週期性地保存該(該等)表。通常,在多久將該(該等)表更新一次與在將該(該等)快閃管理表保存至快閃記憶體中所消耗之系統資源量之間存在折衷。另一方面,平均而言,更頻繁地保存該(該等)管理表意謂在喚起期間自快閃記憶體擷取之表更有可能更多地加以更新,藉此提供更快之喚起。注意,任何時間間隔均在本發明之範疇內。在例示性非限定性實施例中,時間間隔係在十分之一秒與5分鐘或更長時間之間。
在第四實施例中,根據系統資源之可用性來判定更新表之頻率。在一實例中,當控制器140處理多個讀取/寫入/抹除請求時,或在存在多個內務處理操作之時期期間,較少將該(該等)快閃管理表保存至快閃記憶體,以便節省系統資源。在系統以其他方式閒置或經受低使用率水平之"低使用率"週期期間,通常可能更頻繁地將該(該等)快閃管理
表保存在快閃記憶體中,而不會對快閃系統效能產生顯著影響。更頻繁地將該(該等)快閃管理表保存在快閃中通常可允許更快之喚起,尤其在不存在有序退出(例如,意外電源損失)之情況下更係如此。
何時將快閃管理表保存在快閃記憶體中之策略的其他實施例亦係可能的。
當將一(多個)快閃管理表保存至快閃記憶體時,隨附未來資訊資料結構較佳應含有足夠資訊以支援所有未來事件之處理直至將發生下一保存。提供安全裕度且準備好應對在下一保存之前預期發生的更多事件係適當的。在目前實例之情形下,吾人可制定接下來將使用之空閒區塊的列表,其含有比在下一保存之前預期所需區塊多的空閒區塊。然而,本發明不取決於如此情形且正確處理所有事件,即使最終證實所有經儲存之未來資訊均已經使用且接收到一額外事件。在該種狀況下,吾人僅進行表與快閃的立即同步,如同已滿足"保存條件"。出於簡明之目的,圖3中未展示此用盡未來資訊之情形。
由於並非每一狀態改變均觸發表之保存,故最終在最後保存之表複本與RAM中之表之最近更新複本之間建立一差距或失配。每當保存表,便消除該差距且兩個複本(亦即,揮發性RAM記憶體中之複本與儲存在快閃記憶體中之複本)變得相同,但不引起表之保存的後續新的狀態改變再次建立差距。
在一些實施例中,當應用程式進行有序退出時,將一(多個)經更新之快閃管理表(亦即,根據快閃記憶體系統之最近事件更新的一(多個)快閃表)保存在快閃記憶體中。當快閃記憶體系統喚起時,接著自快閃記憶體擷取此等快閃管理表。
當不存在有序退出時,可在喚起時將該(該等)"過時"之快閃管理表自快閃記憶體擷取至揮發性記憶體中,且接著,在揮發性記憶體中根據儲存在未來資訊資料結構中之資訊更新過時之快閃管理表。
因此,本發明所提供之實施例消除如Lasser US 6,510,488中所進行之使過時表無效的需要。
圖4為根據本發明之一些實施例之例示性喚起常式的流程圖。圖4呈現在圖2A及圖2B之表之先前實例之情形下的例示性喚起常式,其中未來資訊資料結構為接下來按序用於配置之空閒區塊的有序列表。在加電(410)之後,快閃管理系統擷取所保存之快閃管理表複本(414)。接著,快閃管理系統擷取在將快閃管理表保存至快閃記憶體同時保存的相關聯之未來資訊列表(418)。
接著,快閃管理系統獲取列表中之第一實體區塊號(422),且亦設定一指向列表之第一表項的指標(426)。
若系統在快閃管理表之最後保存之後且在發生額外之表狀態改變(例如,若存在"有序退出"或在任何其他情況下)之前被立即關閉,則列表中之第一區塊應仍為空閒的。然而,若在表之最後保存之後且在系統關閉之前發生該(該
等)快閃管理表之一或多個狀態改變,則列表中之第一區塊現應正被使用。
加電快閃管理軟體可判定一實體區塊當前是否正被使用。此可藉由回顧該區塊內所含有之一或多個控制欄位的內容而獨立於任何快閃管理表來判定。在一些快閃管理系統中,查找"相應之虛擬區塊號"控制欄位便足夠,若此處指定一有效之虛擬區塊號,則該區塊正被使用,且若該欄位不含有有效之虛擬區塊號,則該區塊未被使用。雖然在其他快閃管理系統中,判定一實體區塊當前是否空閒需要回顧單個以上之控制欄位,但在所有狀況下,進行該判定係相對直接且快速的。
因此,藉由應用判定未來資訊列表中之第一實體區塊之"空閒"狀態的上述技術,快閃管理軟體可判定在所擷取之表與將反映系統之目前狀態的"實際"表之間係否存在偏差。
若發現列表中之第一區塊經配置,則吾人知曉吾人應更新所擷取之表。吾人接著自該第一區塊中擷取該區塊之當前相應虛擬區塊號(434)。此允許吾人在RAM中更新表(438),以反映虛擬區塊號與實體區塊號之間的當前對應。不再藉由該表而指向藉由所擷取之表指示以對應於彼虛擬區塊之實體區塊(已知其現在已由列表中之第一區塊所取代),因為當前未使用彼實體區塊。
接著,前移列表中之指標(442)且針對列表中之下一實體區塊重複相同之過程。只要發現所檢驗之區塊正被使
用,便對RAM中之表進行更新以反映配置彼區塊之事件。
最終,吾人達到發現所檢驗之實體區塊空閒的點處。此意味,不再需要對RAM中之表進行更新且該表現在正確地表示系統之狀態。此處,將經更新之表儲存在快閃記憶體中(446)。同時,亦將新計算之未來資訊列表(指示接下來待配置之空閒區塊)儲存在快閃記憶體中,以使得若系統再次關閉,則同一加電常式可再次恢復表之正確狀態。注意,在發現未來列表中沒有區塊經配置之狀況下,將表保存在快閃記憶體中的步驟446實際上並非必要,因為在該種狀況下,所儲存之表已經係新近的。出於簡明之目的,此未展示於圖4中。
在判定於揮發性記憶體及非揮發性記憶體中更新該(該等)快閃記憶體表之後,接著可能繼續進行快閃記憶體系統之常規操作(450)。
有趣的係,注意到本發明在某種意義上與Lasser'056之方法係恰好對等的。兩種方法具有許多共同之處,其均僅偶爾地在快閃記憶體中更新快閃管理表,從而允許在所儲存之狀態與當前狀態之間建立差距。兩種方法均藉由在加電時根據儲存在快閃中之唯一地界定對建立該差距負責之事件的資訊來"重新執行(palying back)"反覆更新過程而處理此差距。然而,該等方法之間存在關於此資訊之基本差異,Lasser'056根據快閃管理系統之指定演算法來處理進入事件(無論該等事件係什麼),且接著將該等事件以表示將如何處理所發生之彼等事件的方式記錄在快閃中。本發
明首先將未來應如何處理進入事件(再次根據快閃管理系統之演算法,但在事件發生之前)記錄在快閃中,且接著當事件實際發生時根據所儲存之處理決策來處理該等事件。
本發明之某些實施例所提供之一個益處在於:讀取所保存之快閃管理表之複本加上針對該所保存之表複本中尚未反映之事件來更新表通常花費遠短於藉由掃描儲存系統之多個區塊來從無到有地再生表之時間。若系統在保存表之後、發生額外狀態改變之前關閉(例如,若存在有序退出,或若吾人足夠"幸運"以在任何新事件發生之前將其關閉),則與Lasser'488之方法中之在發生有序關閉時的情況相同,喚起時間在一些實施例中較快。但即使在表之最後保存之後發生了一些狀態改變,系統之喚起時間仍可能不會像在Lasser'488之方法中於不存在有序關閉時發生的情況那樣糟糕。在許多情況下,僅須偵測少數事件且再現其對表之狀態的影響。此所花費之準確時間通常視鬚根據未來資訊資料結構處理之表項的數目而定。此又可視將表保存在非揮發性記憶體中之頻率而定。頻率愈高,平均而言待處理之表項便愈少,且平均而言喚起便愈快。另一方面,儲存頻率愈高,計算並制定未來資訊資料結構所花費之時間便愈長。
在以上態樣中,本發明在效能方面與Lasser'056之方法類似。但僅在Lasser'056之用於寫入事件日誌所花費之負
擔不會添加額外負擔時係如此情況,如(例如)在出於其他原因而以任何方式維持日誌時。當情況並非如此時,使用本發明之方法提供優於Lasser'056之總體效能,因為不再需要付出高之代價來維持日誌。
雖然以上闡釋主要集中在快閃管理系統內之單個快閃管理表,但本發明同樣可應用於多個快閃管理表,每一者表示系統狀態之一不同態樣。若存在多個表,則使用每一表之自身保存策略來保存該表,不必在相同時間點保存。每次加電,使用上文中所呈現之方法、使用每一快閃管理表之指定未來資訊資料來重建每一快閃管理表。兩個或兩個以上表亦可能共用一共同之未來資訊資料結構,其用於指導進入事件相對於彼等多個表的處理。
亦應理解,本發明不限於上文所呈現且用於闡釋本發明之方法的實例。本發明同樣可應用於所有均在所主張之本發明的範疇內之多種其他類型的快閃管理表及未來資訊資料結構。
可使用硬體、韌體及軟體之任何組合來實施目前揭示之技術。
在一非限定性實例中,快閃管理表之保存及其在加電後之恢復與重建全部係由控制器140(或更精確言之係藉由執行來自ROM 160之碼的CPU 150)執行。然而,此並非為可能使用本發明之唯一系統架構。舉例而言,亦可能藉由在主機電腦110中執行之碼來實施本發明之方法,當儲存模
組為機載(on-board)NAND快閃設備且不存在獨立之控制器時將係如此。另一種可能性為,本發明之方法至少部分地由主機電腦110實施且部分地由控制器140實施。所有此等架構及許多其他架構在本發明之範疇內。
在本申請案之描述及申請專利範圍中,使用動詞"包含"、"包括"及"具有"之每一者及其變化形式來指示該動詞之受詞不必為該動詞之主語之部件、組件、元件或零件的完整列表。
本文中所引用之所有參考文獻全部以全文引用方式併入。引用參考文獻並不構成該參考文獻為先前技術的認知。
本文中使用冠詞"一(a/an)"來指代該冠詞之文法受詞的一者或指代該詞之文法受詞中的一者以上(亦即,指代至少一者)。以實例說明之,"一元件"意謂一個元件或一個以上之元件。
本文中使用術語"包括"以意謂片語"包括但不限於"且可與片語"包括但不限於"互換使用。
除非本文另有明確規定,否則本文中使用術語"或"以意謂術語"及/或"且可與術語"及/或"互換使用。
本文中使用術語"諸如"以意謂片語"諸如但不限於",且可與短語"諸如但不限於"互換使用。
已使用以實例方式提供且不欲限制本發明之範疇的本發明之實施例之實施方式來描述本發明。所描述之實施例包含不同特徵,在本發明之所有實施例並不要求該等不同特
徵中之所有者。本發明之一些實施例僅利用該等特徵中之一些或該等特徵之可能組合。熟習此項技術者將想到所描述之本發明之實施例的改變及包含在所描述之實施例中提及之特徵的不同組合的本發明之實施例。
雖然已關於有限數目個實施例描述了本發明,但將瞭解,可進行本發明之多種改變、修改及其他應用。
100‧‧‧快閃記憶體系統
110‧‧‧主機設備
120‧‧‧記憶體模組
130‧‧‧快閃記憶體
140‧‧‧控制器
150‧‧‧CPU
160‧‧‧ROM
170‧‧‧RAM
180‧‧‧主機介面
220‧‧‧快閃記憶體系統
240‧‧‧匯流排
250‧‧‧通用CPU
260‧‧‧RAM
270‧‧‧啟動ROM
280‧‧‧快閃記憶體
290‧‧‧匯流排介面
300‧‧‧儲存媒體設備/大容量儲存器
310‧‧‧快閃記憶體控制器
320‧‧‧快閃記憶體系統
330‧‧‧快閃記憶體模組
340‧‧‧匯流排
350‧‧‧通用CPU
360‧‧‧RAM
370‧‧‧啟動ROM
380‧‧‧快閃記憶體
390‧‧‧匯流排介面
400‧‧‧儲存媒體
圖1為根據本發明之一些實施例之例示性快閃記憶體系統的方塊圖;圖2A-2B提供根據本發明之一些實施例之例示性轉譯表的說明;圖3為根據本發明之一實施例之在快閃記憶體中維持一快閃管理表及一未來資訊資料結構的流程圖;圖4為用於喚起之例示性常式的流程圖;圖5及圖6為根據本發明之一些實施例之更多例示性快閃記憶體系統的方塊圖。
100‧‧‧快閃記憶體系統
110‧‧‧主機設備
120‧‧‧記憶體模組
130‧‧‧快閃記憶體
140‧‧‧控制器
150‧‧‧CPU
160‧‧‧ROM
170‧‧‧RAM
180‧‧‧主機介面
Claims (33)
- 一種記憶體系統,其包含:一第一非揮發性記憶體,其包含複數個區塊;一揮發性記憶體;及該第一非揮發性記憶體之一控制器,其中該控制器可操作以:將一管理表之一第一複本僅儲存於該複數個區塊之一第一部分中,其中該複數個區塊包含該第一部分及一第二部分;將該管理表之一第二複本儲存於該揮發性記憶體中,其中該管理表包含與該記憶體系統之一第一狀態相關聯之資料,其中該第一狀態與一第一時間相關聯;僅在該複數個區塊之該第二部分中儲存一未來資訊資料結構,該未來資訊資料結構包含與該記憶體系統之一事件相關之一記錄,其中預期該事件發生於該未來資訊資料結構之該儲存之後;及回應於在該未來資訊資料結構之該儲存之後的一第二時間該事件之一發生,根據該未來資訊資料結構而修改該揮發性記憶體中之該管理表之該第二複本,其中該修改之完成並不掃描該第一非揮發性記憶體以判定該複數個區塊的哪些區塊為未經使用區塊;決定是否更新該管理表之該第一複本;及回應於更新該管理表之該第一複本之一決定,根據該未來資訊資料結構且不掃描該第一非揮發性記憶體 而更新該管理表之該第一複本。
- 如請求項1之記憶體系統,其進一步包含:一第二非揮發性記憶體;且其中該控制器可操作以藉由執行儲存在一第二非揮發性記憶體中之碼來執行該等儲存、修改、決定、及更新步驟。
- 一種記憶體系統,其包含:一包括一非揮發性記憶體之記憶體模組,該非揮發性記憶體具有複數個區塊;一揮發性記憶體;及該記憶體模組之一主機,其中該主機係經組態以:將一管理表之一第一複本僅儲存在該複數個區塊之一第一部分中,其中該複數個區塊包含該第一部分及一第二部分;在該揮發性記憶體中儲存該管理表之一第二複本,其中該管理表包含與該記憶體系統之一第一狀態相關聯之資料,其中該第一狀態與一第一時間相關聯;僅在該複數個區塊之該第二部分中儲存一未來資訊資料結構,該未來資訊資料結構包含與該記憶體系統之一事件相關之一記錄,其中預期該事件發生於該未來資訊資料結構之該儲存之後;及回應於在該未來資訊資料結構之該儲存之後的一第二時間該事件之一發生,根據該未來資訊資料結構而修改該揮發性記憶體中之該管理表之該第二複本,其 中該修改之完成並不掃描該非揮發性記憶體以判定該複數個區塊的哪些區塊為未經使用區塊;決定是否更新該管理表之該第一複本;及回應於更新該管理表之該第一複本之一決定,根據該未來資訊資料結構且不掃描該非揮發性記憶體而更新該管理表之該第一複本。
- 一種記憶體系統,其包含:一第一非揮發性記憶體,其包含複數個區塊;及一控制器,其自該第一非揮發性記憶體讀取一已在一儲存時間被儲存於該第一非揮發性記憶體之未來資訊資料結構,該儲存時間係在一喚起時間之前,其中該未來資訊資料結構包含一與一預期發生於該儲存時間後之事件相關之更新記錄;及當滿足一情況時,根據該更新記錄而更新一管理表且不掃描該第一非揮發性記憶體以判斷在該更新之前該複數個區塊的哪些區塊為自由區塊,其中該管理表儲存於該第一非揮發性記憶體,且其中在該更新之前,該管理表儲存與該記憶體系統之一第一狀態相關聯之第一資料,該第一狀態與一在該喚起時間前之第一時間相關聯,其中除了該管理表之資料外,在該記憶體系統之一關閉後將資料寫入該第一非揮發性記憶體,而該更新完成於該寫入之前。
- 如請求項4之記憶體系統,其進一步包含:一第二非揮發性記憶體; 且其中該控制器可操作以藉由執行儲存在該第二非揮發性記憶體中之碼來執行該等讀取及更新步驟。
- 一種記憶體系統,其包含:一包括一非揮發性記憶體之記憶體模組,該非揮發性記憶體包含複數個區塊;及一主機,其係經組態以:自該非揮發性記憶體讀取一已在一儲存時間被儲存於該非揮發性記憶體之未來資訊資料結構,該儲存時間係在一喚起時間之前,其中該未來資訊資料結構包括一與一預期發生於該儲存時間後之事件相關之更新記錄;及當滿足一情況時,根據該更新記錄而更新一管理表且不掃描該非揮發性記憶體以判斷在該更新之前該複數個區塊的哪些區塊為自由區塊,其中該管理表儲存於該非揮發性記憶體,且其中在該更新之前,該管理表儲存與該記憶體系統之一第一狀態相關聯之第一資料,該第一狀態與一在該喚起時間前之第一時間相關聯,其中除了該管理表之資料外,在該記憶體系統之一關閉後將資料寫入該非揮發性記憶體,該更新完成於該寫入之前。
- 一種電腦可讀儲存媒體,其儲存處理器可執行指令,當該指令由一處理器執行時,使得該處理器:將一管理表之一第一複本僅儲存於一記憶體系統之一非揮發性記憶體之一第一部分中,該非揮發性記憶體包 含複數個區塊,其中該非揮發性記憶體包含該第一部分及一第二部分;將該管理表之一第二複本儲存於一揮發性記憶體中;其中該管理表包含與該記憶體系統之一第一狀態相關聯之資料,其中該第一狀態與一第一時間相關聯;僅在該複數個區塊之該第二部分中儲存一未來資訊資料結構,該未來資訊資料結構包含與該記憶體系統之一事件相關之一記錄,其中預期該事件發生於該未來資訊資料結構之該儲存之後;及回應於在該未來資訊資料結構之該儲存之後的一第二時間該事件之一發生,根據該未來資訊資料結構而修改該揮發性記憶體中之該管理表之該第二複本,其中該修改之完成並不掃描該非揮發性記憶體以判定該複數個區塊的哪些區塊為未經使用區塊;決定是否更新該管理表之該第一複本;及回應於更新該管理表之該第一複本之一決定,根據該未來資訊資料結構而更新該管理表之該第一複本且不掃描該非揮發性記憶體。
- 一種電腦可讀儲存媒體,其儲存處理器可執行指令,當該指令由一處理器執行時,使得該處理器:自一記憶體系統之一非揮發性記憶體讀取一已在一儲存時間被儲存於該非揮發性記憶體之未來資訊資料結構,該儲存時間係在一喚起時間之前,其中該未來資訊資料結構包含一與一預期發生於該儲存時間後之事件相 關之更新記錄,且其中該非揮發性記憶體包含複數個區塊;及當滿足一情況時,根據該更新記錄而更新一管理表且不掃描該非揮發性記憶體以判斷在該更新之前該複數個區塊的哪些區塊為自由區塊,其中該管理表儲存於該非揮發性記憶體,且其中在該更新之前,該管理表儲存與該記憶體系統之一第一狀態相關聯之第一資料,該第一狀態與一在該喚起時間前之第一時間相關聯,其中除了該管理表之資料外,在該記憶體系統之一關閉後將資料寫入該非揮發性記憶體,而該更新完成於該寫入之前。
- 一種維持一包含一非揮發性記憶體之記憶體系統之資料結構的方法,該非揮發性記憶體具有複數個區塊,該方法包含:將一管理表之一第一複本僅儲存於該複數個區塊之一第一部分中,其中該複數個區塊包含該第一部分及一第二部分;將該管理表之一第二複本儲存於一揮發性記憶體中,其中該管理表包含與該記憶體系統在一第一時間之一第一狀態相關聯之資料;僅在該複數個區塊之該第二部分中儲存一未來資訊資料結構,該未來資訊資料結構包含與該記憶體系統之一事件相關之一記錄,其中預期該事件發生於該未來資訊資料結構之該儲存之後;及回應於在該未來資訊資料結構之該儲存之後的一第二 時間該事件之一發生,根據該未來資訊資料結構而修改該揮發性記憶體中之該管理表之該第二複本,其中該修改之完成並不掃描該非揮發性記憶體以判定哪些區塊為未經使用區塊;決定是否更新該管理表之該第一複本;及回應於更新該管理表之該第一複本之一決定,根據該未來資訊資料結構而更新該管理表之該第一複本且不掃描該非揮發性記憶體。
- 如請求項9之方法,其中回應於一選定事件之一發生而執行該更新。
- 如請求項9之方法,其中週期性地執行該更新。
- 如請求項9之方法,其中當該記憶體系統作用時,根據該記憶體系統之資源的可用性執行該更新。
- 如請求項9之方法,其中該未來資訊資料結構包括該非揮發性記憶體之在該第一時間點空閒之區塊的一列表。
- 如請求項9之方法,其中在該揮發性記憶體中之該管理表之N次修改後執行該更新,其中N為一預決定整數。
- 一種在一記憶體系統之一關閉後喚起該記憶體系統之方法,該方法包含:自一非揮發性記憶體讀取一已在一儲存時間被儲存於該非揮發性記憶體之未來資訊資料結構,該儲存時間係在一喚起時間之前,其中該未來資訊資料結構包括與預期在該儲存時間之後發生之一事件相關的一更新記錄;及 當滿足一預定義情況時,根據該更新記錄而更新一管理表且不掃描該非揮發性記憶體以判斷在該更新之前該非揮發性記憶體的哪些區塊為自由區塊,其中該管理表儲存於該非揮發性記憶體,且其中在該更新之前,該管理表儲存與該記憶體系統之一第一狀態相關聯之第一資料,該第一狀態與一在該喚起時間前之第一時間相關聯;其中除了該管理表之資料外,在該記憶體系統之該關閉後將資料寫入該非揮發性記憶體,而該更新完成於該寫入之前。
- 如請求項15之方法,其中該更新根據該記憶體系統之一當前狀態而修改儲存於該非揮發性記憶體之該管理表。
- 如請求項15之方法,其中該預定義情況包含該記憶體系統之所儲存內容中之一改變,在該第一時間之後已經發生該改變。
- 一種方法,其包含:在一具有一非揮發性記憶體之資料儲存裝置中執行:在該非揮發性記憶體儲存一記憶體管理表之一第一複本;在該非揮發性記憶體儲存資料實體之一列表,該資料實體識別該非揮發性記憶體之未經使用區塊,其中該列表定義分配該等未經使用區塊之一次序;回應於偵測一功率事件,存取該列表之一實體以識別一區塊;及 基於與該經識別區塊相關聯之一狀態而選擇性地更新該記憶體管理表之該第一複本。
- 如請求項18之方法,其中該非揮發性記憶體為一快閃記憶體。
- 如請求項18之方法,其中完成該記憶體管理表之該第一複本之更新並不掃描該非揮發性記憶體之一整體以判定哪些區塊為未經使用區塊。
- 如請求項20之方法,進一步包含判定與該經識別之區塊相關聯之該狀態是否為在使用中,其中基於儲存於該經識別之區塊之一控制欄位之資料而做出該判定。
- 如請求項18之方法,進一步包含將該記憶體管理表之一第二複本儲存於該資料儲存裝置之一揮發性記憶體。
- 如請求項22之方法,進一步包含回應於與在使用中之該經識別之區塊相關聯之該狀態,更新該記憶體管理表之該第二複本以反應該經識別之區塊之使用。
- 如請求項23之方法,其中在該記憶體管理表之該第二複本之N次更新後執行該記憶體管理表之該第一複本之更新,其中N為一正整數。
- 如請求項18之方法,其中週期性地執行該記憶體管理表之該第一複本之更新。
- 如請求項18之方法,進一步包含當該經識別之區塊之該狀態為使用中時,判定與一第二經識別之區塊相關聯之一狀態是否為在使用中,其中在該列表中之該經識別之區塊之一表列(listing)之後置放該第二經識別之區塊之一 表列。
- 如請求項26之方法,進一步包含當該第二經識別之區塊之狀態為未經使用時,藉由將該記憶體管理表之該第一複本替換為該記憶體管理表之該經更新之第二複本之一複本而更新該記憶體管理表之該第一複本。
- 一種資料儲存裝置,其包含:一包含多個區塊之非揮發性記憶體;及一控制器,其經組態以:在該非揮發性記憶體儲存一記憶體管理表之一第一複本;在該非揮發性記憶體儲存資料實體之一列表,該資料實體識別該非揮發性記憶體之未經使用區塊,其中該列表定義分配該等未經使用區塊之一次序;回應於偵測一功率事件,存取該列表之一實體以識別一區塊;及基於與該經識別區塊相關聯之一狀態而選擇性地更新該記憶體管理表之該第一複本。
- 如請求項28之資料儲存裝置,其中更新該記憶體管理表之該第一複本並不掃描整個該非揮發性記憶體以判定哪些區塊為未經使用區塊。
- 如請求項28之資料儲存裝置,其中該控制器進一步經組態以判定該經識別之區塊之該狀態是否為在使用中,其中基於儲存於該經識別之區塊之一控制欄位之資料而做出該判定。
- 如請求項28之資料儲存裝置,進一步包含一揮發性記憶體,且其中該控制器進一步經組態以在該揮發性記憶體儲存該記憶體管理表之一第二複本。
- 如請求項31之資料儲存裝置,其中該控制器進一步經組態以回應於該經識別之區塊之該狀態為使用中,更新該記憶體管理表之該第二複本以反應該經識別之區塊之使用且判定一第二經識別之區塊之一狀態是否為在使用中,其中在該列表中之該經識別之區塊之一表列之後表列出該第二經識別之區塊。
- 如請求項32之資料儲存裝置,其中該控制器進一步經組態以在該第二經識別之區塊之該狀態為未經使用時,藉由將該記憶體管理表之該第一複本替換為該記憶體管理表之該經更新之第二複本之一複本而更新該記憶體管理表之該第一複本。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88541207P | 2007-01-18 | 2007-01-18 | |
US11/808,451 US7769945B2 (en) | 2007-01-18 | 2007-06-11 | Method and system for facilitating fast wake-up of a flash memory system |
US11/808,452 US7721040B2 (en) | 2007-01-18 | 2007-06-11 | Method and system for facilitating fast wake-up of a flash memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200839516A TW200839516A (en) | 2008-10-01 |
TWI388983B true TWI388983B (zh) | 2013-03-11 |
Family
ID=39642374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097102061A TWI388983B (zh) | 2007-01-18 | 2008-01-18 | 用於促進快閃記憶體系統之快速喚起的方法及系統 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7721040B2 (zh) |
JP (2) | JP5351046B2 (zh) |
KR (1) | KR101288408B1 (zh) |
DE (1) | DE112008000180T5 (zh) |
TW (1) | TWI388983B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI749490B (zh) * | 2020-03-25 | 2021-12-11 | 慧榮科技股份有限公司 | 寫入閃存管理表的電腦程式產品及方法及裝置 |
US11307766B2 (en) | 2020-03-25 | 2022-04-19 | Silicon Motion, Inc. | Apparatus and method and computer program product for programming flash administration tables |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090102789A (ko) | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
US8533847B2 (en) * | 2007-05-24 | 2013-09-10 | Sandisk Il Ltd. | Apparatus and method for screening new data without impacting download speed |
US8285940B2 (en) * | 2008-02-29 | 2012-10-09 | Cadence Design Systems, Inc. | Method and apparatus for high speed cache flushing in a non-volatile memory |
US8205060B2 (en) * | 2008-12-16 | 2012-06-19 | Sandisk Il Ltd. | Discardable files |
US8375192B2 (en) * | 2008-12-16 | 2013-02-12 | Sandisk Il Ltd. | Discardable files |
US8849856B2 (en) | 2008-12-16 | 2014-09-30 | Sandisk Il Ltd. | Discardable files |
US9015209B2 (en) * | 2008-12-16 | 2015-04-21 | Sandisk Il Ltd. | Download management of discardable files |
US20100153474A1 (en) * | 2008-12-16 | 2010-06-17 | Sandisk Il Ltd. | Discardable files |
US9020993B2 (en) | 2008-12-16 | 2015-04-28 | Sandisk Il Ltd. | Download management of discardable files |
US9104686B2 (en) | 2008-12-16 | 2015-08-11 | Sandisk Technologies Inc. | System and method for host management of discardable objects |
US8250333B2 (en) * | 2009-01-05 | 2012-08-21 | Sandisk Technologies Inc. | Mapping address table maintenance in a memory device |
JP2010186341A (ja) * | 2009-02-12 | 2010-08-26 | Toshiba Corp | メモリシステム |
US20100235329A1 (en) * | 2009-03-10 | 2010-09-16 | Sandisk Il Ltd. | System and method of embedding second content in first content |
US20100333155A1 (en) * | 2009-06-30 | 2010-12-30 | Philip David Royall | Selectively using local non-volatile storage in conjunction with transmission of content |
TWI453747B (zh) * | 2009-09-02 | 2014-09-21 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
KR101638061B1 (ko) * | 2009-10-27 | 2016-07-08 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법 |
KR20110046243A (ko) * | 2009-10-27 | 2011-05-04 | 삼성전자주식회사 | 사용자 장치 및 그것의 맵핑 데이터 관리 방법 |
US8463802B2 (en) | 2010-08-19 | 2013-06-11 | Sandisk Il Ltd. | Card-based management of discardable files |
US8549229B2 (en) | 2010-08-19 | 2013-10-01 | Sandisk Il Ltd. | Systems and methods for managing an upload of files in a shared cache storage system |
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US8495338B2 (en) | 2010-12-03 | 2013-07-23 | Micron Technology, Inc. | Transaction log recovery |
JP5570406B2 (ja) * | 2010-12-14 | 2014-08-13 | 株式会社日立製作所 | メモリコントローラ、及びデータ記録装置 |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US8788849B2 (en) | 2011-02-28 | 2014-07-22 | Sandisk Technologies Inc. | Method and apparatus for protecting cached streams |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
WO2013022915A1 (en) | 2011-08-09 | 2013-02-14 | Lsi Corporation | I/o device and computing host interoperation |
US9104614B2 (en) * | 2011-09-16 | 2015-08-11 | Apple Inc. | Handling unclean shutdowns for a system having non-volatile memory |
US20130080687A1 (en) * | 2011-09-23 | 2013-03-28 | Avalanche Technology, Inc. | Solid state disk employing flash and magnetic random access memory (mram) |
US9251059B2 (en) | 2011-09-23 | 2016-02-02 | Avalanche Technology, Inc. | Storage system employing MRAM and redundant array of solid state disk |
TWI432962B (zh) * | 2011-10-06 | 2014-04-01 | Mstar Semiconductor Inc | 電子系統及其記憶體管理方法 |
CN103106143B (zh) * | 2011-11-11 | 2016-01-13 | 光宝科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
US20130151755A1 (en) | 2011-12-12 | 2013-06-13 | Reuven Elhamias | Non-Volatile Storage Systems with Go To Sleep Adaption |
US9092150B2 (en) | 2011-12-22 | 2015-07-28 | Sandisk Technologies Inc. | Systems and methods of performing a data save operation |
US8914594B2 (en) | 2011-12-22 | 2014-12-16 | Sandisk Technologies Inc. | Systems and methods of loading data from a non-volatile memory to a volatile memory |
US9069551B2 (en) | 2011-12-22 | 2015-06-30 | Sandisk Technologies Inc. | Systems and methods of exiting hibernation in response to a triggering event |
US9389673B2 (en) | 2011-12-22 | 2016-07-12 | Sandisk Technologies Inc. | Systems and methods of performing a data save operation |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US9977612B1 (en) | 2012-05-11 | 2018-05-22 | Western Digital Technologies, Inc. | System data management using garbage collection and logs |
US9170932B1 (en) | 2012-05-22 | 2015-10-27 | Western Digital Technologies, Inc. | System data storage mechanism providing coherency and segmented data loading |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
KR101993704B1 (ko) * | 2012-08-24 | 2019-06-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 |
US9442840B2 (en) * | 2012-12-19 | 2016-09-13 | Qualcomm Incorporated | Virtual boundary codes in a data image of a read-write memory device |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
KR20150006614A (ko) * | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9411721B2 (en) | 2013-11-15 | 2016-08-09 | Sandisk Technologies Llc | Detecting access sequences for data compression on non-volatile memory devices |
US9582223B2 (en) | 2014-04-14 | 2017-02-28 | International Business Machines Corporation | Efficient reclamation of pre-allocated direct memory access (DMA) memory |
JP2016032123A (ja) * | 2014-07-25 | 2016-03-07 | 株式会社東芝 | 映像収録再生装置、コンテンツ制御方法及びコンピュータプログラム |
US10430092B1 (en) * | 2014-07-28 | 2019-10-01 | Rambus Inc. | Memory controller systems with nonvolatile memory for storing operating parameters |
US9817593B1 (en) * | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
US10452561B2 (en) | 2016-08-08 | 2019-10-22 | Raytheon Company | Central processing unit architecture and methods for high availability systems |
JP6666813B2 (ja) * | 2016-08-24 | 2020-03-18 | キオクシア株式会社 | 記憶装置及びその制御方法 |
US10445001B2 (en) * | 2017-01-10 | 2019-10-15 | Winbond Electronics Corporation | Memory control scheme for flash memory devices |
US10459803B2 (en) * | 2017-06-28 | 2019-10-29 | Western Digital Technologies, Inc. | Method for management tables recovery |
US10635584B2 (en) | 2017-06-29 | 2020-04-28 | Western Digital Technologies, Inc. | System and method for host system memory translation |
US11307779B2 (en) * | 2019-09-11 | 2022-04-19 | Ceremorphic, Inc. | System and method for flash and RAM allocation for reduced power consumption in a processor |
US11016889B1 (en) | 2019-12-13 | 2021-05-25 | Seagate Technology Llc | Storage device with enhanced time to ready performance |
US11132140B1 (en) | 2020-04-24 | 2021-09-28 | Seagate Technology, Llc | Processing map metadata updates to reduce client I/O variability and device time to ready (TTR) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2938732B2 (ja) * | 1993-11-10 | 1999-08-25 | 松下電送システム株式会社 | メモリ管理装置とこれを用いたファクシミリ装置 |
JP3464836B2 (ja) * | 1995-01-19 | 2003-11-10 | 富士通株式会社 | 記憶装置のメモリ管理装置 |
US5845313A (en) * | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
JP3680142B2 (ja) | 1997-12-05 | 2005-08-10 | 東京エレクトロンデバイス株式会社 | 記憶装置及びアクセス方法 |
JP2001084180A (ja) * | 1999-09-09 | 2001-03-30 | Mitsubishi Electric Corp | ファイル管理装置 |
US6510488B2 (en) * | 2001-02-05 | 2003-01-21 | M-Systems Flash Disk Pioneers Ltd. | Method for fast wake-up of a flash memory system |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
KR100457812B1 (ko) * | 2002-11-14 | 2004-11-18 | 삼성전자주식회사 | 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법 |
JP2005293774A (ja) | 2004-04-02 | 2005-10-20 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置の制御方法 |
US8244958B2 (en) * | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US7516267B2 (en) * | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
JP2009521045A (ja) | 2005-12-21 | 2009-05-28 | エヌエックスピー ビー ヴィ | ブロック消去可能なメモリ場所を有する不揮発性メモリ |
US20080276036A1 (en) | 2005-12-21 | 2008-11-06 | Nxp B.V. | Memory with Block-Erasable Location |
CN101346704B (zh) | 2005-12-22 | 2011-10-05 | Nxp股份有限公司 | 具有可擦除块单元的存储器和定位具有指针信息地块的联结指针链 |
WO2007096844A2 (en) | 2006-02-27 | 2007-08-30 | Nxp B.V. | Memory with block-erasable locations |
-
2007
- 2007-06-11 US US11/808,452 patent/US7721040B2/en active Active
- 2007-06-11 US US11/808,451 patent/US7769945B2/en active Active
-
2008
- 2008-01-16 KR KR1020097015437A patent/KR101288408B1/ko active IP Right Grant
- 2008-01-16 DE DE112008000180T patent/DE112008000180T5/de not_active Ceased
- 2008-01-16 JP JP2009546065A patent/JP5351046B2/ja not_active Expired - Fee Related
- 2008-01-18 TW TW097102061A patent/TWI388983B/zh not_active IP Right Cessation
-
2010
- 2010-06-24 US US12/823,053 patent/US8135904B2/en active Active
-
2013
- 2013-06-19 JP JP2013128554A patent/JP5663060B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI749490B (zh) * | 2020-03-25 | 2021-12-11 | 慧榮科技股份有限公司 | 寫入閃存管理表的電腦程式產品及方法及裝置 |
US11307766B2 (en) | 2020-03-25 | 2022-04-19 | Silicon Motion, Inc. | Apparatus and method and computer program product for programming flash administration tables |
Also Published As
Publication number | Publication date |
---|---|
US8135904B2 (en) | 2012-03-13 |
JP5663060B2 (ja) | 2015-02-04 |
KR101288408B1 (ko) | 2013-07-22 |
JP5351046B2 (ja) | 2013-11-27 |
US20080177935A1 (en) | 2008-07-24 |
JP2010517131A (ja) | 2010-05-20 |
US20100262799A1 (en) | 2010-10-14 |
KR20090106399A (ko) | 2009-10-08 |
US7769945B2 (en) | 2010-08-03 |
TW200839516A (en) | 2008-10-01 |
US20080177936A1 (en) | 2008-07-24 |
DE112008000180T5 (de) | 2009-12-03 |
JP2013211056A (ja) | 2013-10-10 |
US7721040B2 (en) | 2010-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI388983B (zh) | 用於促進快閃記憶體系統之快速喚起的方法及系統 | |
JP5002586B2 (ja) | フラッシュデータ構造を管理する方法、スリープ管理方法、フラッシュメモリシステム、及び記憶媒体 | |
US8949512B2 (en) | Trim token journaling | |
JP5715566B2 (ja) | キャッシュデータおよびメタデータの管理 | |
JP5376983B2 (ja) | メモリシステム | |
US7412565B2 (en) | Memory optimization for a computer system having a hibernation mode | |
US8082384B2 (en) | Booting an electronic device using flash memory and a limited function memory controller | |
KR101900760B1 (ko) | 비휘발성 메모리를 갖는 시스템에 대한 비정상 셧다운의 핸들링 | |
US8694984B2 (en) | Memory apparatus and method of updating firmware of the memory apparatus | |
US8850105B2 (en) | Method for controlling memory system, information processing apparatus, and storage medium | |
US20110213954A1 (en) | Method and apparatus for generating minimum boot image | |
JP2012508932A (ja) | キャッシュデータおよびメタデータを管理すること | |
TWI506429B (zh) | 用於非依電性容錯寫入作業之方法、運算系統及相關電腦程式產品 | |
TW201017405A (en) | Improved hybrid drive | |
KR101392062B1 (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
US8521988B2 (en) | Control system and control method of virtual memory | |
KR102123701B1 (ko) | 네트워크 부트 시스템 | |
WO2008087634A1 (en) | A method and system for facilitating fast wake-up of a flash memory system | |
US20140059293A1 (en) | Method for protecting a gpt cached disks data integrity in an external operating system environment | |
CN112650519A (zh) | 一种固件修复方法、固态硬盘控制器及固态硬盘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |