TWI399642B - 具區塊管理之非揮發性記憶體 - Google Patents

具區塊管理之非揮發性記憶體 Download PDF

Info

Publication number
TWI399642B
TWI399642B TW95128510A TW95128510A TWI399642B TW I399642 B TWI399642 B TW I399642B TW 95128510 A TW95128510 A TW 95128510A TW 95128510 A TW95128510 A TW 95128510A TW I399642 B TWI399642 B TW I399642B
Authority
TW
Taiwan
Prior art keywords
block
blocks
list
page
record
Prior art date
Application number
TW95128510A
Other languages
English (en)
Other versions
TW200739342A (en
Inventor
Alan W Sinclair
Barry Wright
Original Assignee
Sandisk Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/459,260 external-priority patent/US7552271B2/en
Priority claimed from US11/459,268 external-priority patent/US7558906B2/en
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW200739342A publication Critical patent/TW200739342A/zh
Application granted granted Critical
Publication of TWI399642B publication Critical patent/TWI399642B/zh

Links

Landscapes

  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

具區塊管理之非揮發性記憶體
此申請案係關於諸如半導體快閃記憶體的可再程式化非揮發性記憶體系統之操作,且更明確而言,係關於一記憶體陣列之個別地可抹除區塊的管理。
存在兩種主要技術,藉由該等技術可定址透過主機系統、記憶體系統及其他電子系統之外部介面傳達的資料。在該等方法之一中,將藉由系統產生或接收的資料檔案之位址映射成根據資料之邏輯區塊而為系統建立的不同範圍之連續邏輯位址空間(以下稱為"LBA介面")。位址空間之範圍通常係足以涵蓋系統能夠處理的位址之完全範圍。在一項範例中,磁碟儲存驅動器透過此類邏輯位址空間與電腦或其他主機系統通信。此位址空間具有足以定址磁碟驅動器的整個儲存容量的範圍。
快閃記憶體系統最普遍以記憶卡或可移除式地與各種主機(例如個人電腦、相機等)連接之快閃驅動器的形式加以提供,但也可加以嵌入在此類主機系統內。在將資料寫入記憶體時,主機通常指派獨特的邏輯位址給區段、叢集或記憶體系統之連續虛擬位址空間內的其他資料單元。如磁碟操作系統(DOS)一樣,主機將資料寫入記憶體系統之邏輯位址空間內的位址並從該等位址讀取資料。記憶體系統內的一控制器將從主機接收的邏輯位址轉譯為其中實際上儲存資料之記憶體陣列內的實體位址,並接著記錄該等位址轉譯。記憶體系統的資料儲存容量係至少與可在界定用於記憶體系統之整個邏輯位址空間內可定址的資料之數量一樣大。
在目前商用快閃記憶體系統中,抹除單元之大小已增加至用以儲存多個資料區段的足夠記憶體單元之一區塊。事實上,將許多資料頁儲存在一個區塊中,並且一頁可儲存多個資料區段。此外,兩或多個區塊係通常在一起操作為元區塊,並且此類區塊之頁係邏輯上連結在一起作為元頁。一起寫入並讀取一資料頁或元頁,其可以包含許多資料區段,因而增加操作的平行。採用此類大容量,操作單元在對其進行有效操作中會遇到挑戰。
為便於說明,除非另外規定,否則意欲本文所用的術語"區塊"指抹除區塊單元或多個區塊即"元區塊",此取決於是否將元區塊用於特定系統。同樣地,本文參考的"頁"可指單一區塊內的程式化單元或元區塊內的"元頁",此取決於系統組態。
在使用目前流行的與記憶體系統之LBA介面時,將藉由記憶體所連接之主機產生的檔案指派為介面之邏輯位址空間內的獨特位址。記憶體系統接著通常映射邏輯位址空間與記憶體之實體區塊的頁之間的資料。記憶體系統記錄將邏輯位址空間映射成實體記憶體的方式但是主機並不瞭解此追蹤。主機記錄其在邏輯位址空間內的資料檔案之位址,但是記憶體系統在對此映射瞭解很少或不瞭解的情況下進行操作。
在所使用的兩種系統介面技術之第二種技術中,獨特地識別藉由電子系統產生或接收的資料檔案並且藉由檔案內的偏移以邏輯方式定址其資料。此定址方法之一形式係用於電腦或其他主機系統與瞭解為"智慧卡"的可移除記憶卡之間。智慧卡通常係藉由消費者用於識別、銀行、銷售點購買、ATM存取等,並且在與快閃記憶卡及快閃驅動器相比時包含少量記憶體。
在以上交叉參考的專利申請案中,藉由利用主機指派的檔案名在大量儲存快閃記憶體系統中識別一資料檔案並且藉由檔案內的偏移位址(以下稱為"直接資料檔案介面")來存取檔案資料。記憶體系統因此瞭解每個區段或其他資料單元所屬的主機檔案。本文說明的檔案單元為所排序(例如藉由獲得序列邏輯偏移位址)的一資料集,並且藉由在記憶體系統所連接的之主機計算系統中操作的應用程式來建立並獨特地識別該檔案單元。
以上參考的四個效用專利申請案(申請案第11/382,224、11/382,228、11/382,232、11/382,235號,於2006年5月8日申請)說明為在記憶體系統之操作期間進行存取而維持區塊之清單的技術。清單上的個別登錄包含記憶體區塊及其位址之參數。一清單內的一登錄可依據該登錄與其有關的區塊之實體位址或記錄在該登錄內的區塊參數之數值來加以選擇。該說明係關於儲存快閃記憶體中指定區塊內的資料區塊之一或多個清單,並且根據一登錄內的欄位之資訊容來存取一清單中的特定登錄。
該技術使用指定區塊中的某些邏輯頁以儲存包含兩或多個清單上的所有區塊之資訊的無序記錄。將其他頁用於僅包含用於區塊之內容可定址參數的登錄之清單,以及對用於區塊之完全記錄的指標。按參數數值的順序儲存該等清單中的登錄,並且可以迅速地存取具有特定參數數值的登錄。清單作為對用於區塊的無序記錄之目錄形式。
在區塊可抹除非揮發性記憶體中,維持其包含的個別區塊及資料方面之最新資訊可提供有效率的記憶體管理。在區塊包含一或多個檔案之有效資料、過期資料及抹除空間之混合的情況下,此方式可能相當複雜。然而,藉由以逐個區塊為基礎記錄此類資料,可有效率地執行某些記憶體系統操作,尤其係再生記憶體陣列中的未用空間。再生未用空間(包含過期資料的空間或不能用的抹除空間)以逐個區塊為基礎(其中一區塊為一抹除單元)而發生。需要按有效率的順序對區塊執行區塊再生操作,以減少有效資料的複製。為決定區塊再生之順序,有益的係使區塊按一或多個描述符數值的順序加以排列,其中一描述符數值說明儲存在區塊中的資料之至少一個方面。例如,區塊可藉由其包含的有效資料之數量加以排序以便包含最少數量的有效資料之該些區塊可加以迅速識別以首先得到再生。
在一第一範例中,為記憶體陣列中的各區塊(雖然不必為所有區塊)維持記錄。包含有效資料的區塊依據其是否包含抹除空間(部分區塊),及若未包含,則其是否包含過期資料(過期區塊)加以分類。分離地分類僅具有過期資料的區塊(無效區塊)及僅包含抹除空間的區塊(抹除區塊)。為具有該等分類之一的每個區塊維持記錄。將記錄維持在專用記錄區塊中。另外,在藉由一描述符數值所排序的清單中列出一分類中的區塊。該描述符數值可以為區塊中的有效資料之數量、區塊之位址或某另一描述符數值。第一範例中的清單登錄包含對對應記錄的指標。
在第二範例中,亦為各分類中的區塊維持記錄。為包含多個檔案的資料且不包含過期資料或抹除空間之一區塊添加分類"完全共用區塊"。將記錄維持在專用記錄區塊中的專用記錄頁中。記錄可包含關於包含其區塊位址之對應區塊、區塊包含的有效資料之數量、寫入指標之位置等的各種資訊。
提供目錄以使個別記錄可得以迅速找到。目錄中的一登錄識別一記錄頁以及該記錄頁中的對應記錄之位置。將目錄維持在目錄區塊中的專用目錄頁中,藉由區塊位址來排序目錄登錄。目錄頁包含非重疊區塊位址範圍。一個目錄頁可包含對多個記錄頁的指標。然而,記錄頁僅包含藉由一個目錄頁之登錄所指向的記錄。因此,在更新記錄頁中的記錄時,僅需要更新一個目錄頁。
目錄區塊亦可包含一或多個清單。一清單中的一登錄包含一區塊位址及一描述符數值並且藉由描述符數值來排序一清單中的登錄。一示範性描述符數值為一區塊中的有效資料之數量。清單提供一便利方式,其用以根據區塊中的資料來選擇用於再生或其他目的之區塊。例如,具有最少數量的有效資料之過期區塊為將有效資料之數量用作描述符數值的過期區塊之清單中的第一登錄。此區塊可以從用於再生之清單中加以迅速識別以便清單提供用於再生操作的佇列。在其他範例中,可以尋找具有特定描述符數值的區塊。此可藉由對適當清單頁執行二進制搜尋來加以迅速識別。
在第三範例中,始終為非揮發性記憶體陣列中的每個區塊維持記錄。在此情況下,目錄頁包含用於具有藉由區塊位址按順序排序之登錄的固定區塊位址範圍之登錄。因為此提供用於目錄頁內處於預定偏移的特定區塊之一登錄,所以登錄不必包含其所參考的區塊之區塊位址。
雖然管理及存取清單之技術係在本文中說明用於採用快閃資料檔案介面進行操作的快閃記憶體,但是該等技術亦可用於不同應用中的其他類型之清單。
詳細第一範例
在以上識別之專利申請案中說明的直接資料檔案儲存技術建立區塊清單,從該等清單選擇具有與個別區塊之使用有關的預定義數值之登錄。本文使用用於該等區塊清單之內容可定址搜尋的技術。此說明參考附圖1至3。
圖1為顯示根據記憶體單元區塊之內容對記憶體單元區塊進行分類的表格。實務上記憶體系統中的所有區塊將如表所示進行分類。將三個分離清單維持在此範例中:一個清單用於部分區塊,另一個清單用於過期區塊以及第三個清單用於抹除區塊。
在此範例中辨別的區塊之類型係如下:一"程式區塊"已得到部分程式化,並包含僅單一檔案之有效資料。某些抹除容量保持在區塊中。其亦可包含某些過期資料。
一"共用區塊"已得到部分程式化,並且包含兩或多個檔案之有效資料。某些抹除容量會保持。其亦可包含某些過期資料。
一"完全共用區塊"已得到完全程式化並且包含兩或多個檔案之有效資料。其亦可包含某些過期資料。
一"檔案區塊"已得到完全程式化,並包含單一檔案之有效資料。其亦可包含某些過期資料。
一"無效區塊"不包含有效資料。該無效區塊包含至少某些過期資料並可包含抹除容量但是不包含任何有效資料。
一"抹除區塊",其中區塊之總容量未得到程式化並且可用以接收資料。在一抹除區塊中不存在資料。在記憶體係充滿或接近充滿資料時,通常藉由連續地再生存在於所用區塊內的未用容量而維持規定之最小數目的抹除區塊之集區。
基於該範例之目的,將具有以上類型的區塊分類為如下三種分類:一"部分區塊"包含某些未程式化容量、一或多個檔案之有效資料並可包含某些過期資料。程式區塊及共用區塊為部分區塊之範例。
一"過期區塊"為包含某些過期資料的一檔案區塊或一完全共用區塊。該過期區塊不包含任何抹除容量,並且包含有效與過期資料。
一"抹除區塊"具有與相同名稱之區塊類型相同的定義,即沒有資料的一區塊。
應注意該等分類不涵蓋記憶體陣列中的所有區塊,某些區塊可保持在該等分類以外並且此類區塊不顯現在該範例之清單中。
在選擇用以再生儲存容量的區塊時,區塊中的有效資料之數量(有效資料容量)為一主要因素。因為對區塊的再生操作需要將其有效資料複製到另一區塊上,所以首先選擇具有最少數量的有效資料之該些區塊。此係因為資料複製比較耗時而且可以干擾用以程式化並讀取資料的記憶體系統之有效率的操作。稍微計算此點為保留其容量之重要部分得到抹除並可用以儲存資料的區塊之一利益。因此,具有較多可用抹除儲存容量的區塊對於再生操作而言並非有利,因為藉由再生區塊而產生之儲存空間方面的增加係較小。此特定範例之部分及過期區塊清單係用以根據區塊所包含的有效資料之數量(頁數)及保持抹除的數量(頁數)對區塊進行分類。本文說明用於該等清單之目的係每次選擇一個區塊來進行再生操作。
區塊清單之類型及存取
部分區塊清單(P清單)包含用於系統中的每個部分區塊之一登錄;即每個區塊包含某些有效資料及某些抹除容量。其亦可包含某些過期資料。
過期區塊清單(O清單)包含用於包括過期資料之系統中的每個區塊之一登錄,其沒有部分區塊清單中的一登錄。
抹除區塊清單(E清單)包含用於系統中的每個抹除區塊之一登錄。
在快閃記憶體操作之一特定範例中,維持以下區塊清單:P(V)清單,具有依據儲存在區塊中的有效資料容量加以排序的登錄之一部分區塊清單;P(A)清單,具有依據區塊之區塊位址加以排序的登錄之一部分區塊清單;O(V)清單,具有依據儲存在區塊中的有效資料容量加以排序的登錄之一過期區塊清單;O(A)清單,具有依據區塊之區塊位址加以排序的登錄之一過期區塊清單;E清單,一抹除區塊清單。
P(V)清單、O(V)清單、P(A)清單及O(A)清單作為對區塊記錄之共用集的"目錄"。為選擇一再生區塊,從P(V)清單及O(V)清單讀取具有最低有效資料容量數值的登錄。為選擇一主動區塊,從P(V)清單讀取具有小於或等於一目標數值的最高有效資料容量數值之登錄。為選擇一抹除區塊,從E清單讀取並移除該清單上的第一登錄。
為更新P清單或O清單中的一登錄,從P(A)清單或O(A)清單讀取具有目標區塊位址的登錄。
用於區塊清單的儲存技術
配置一或多個區塊或元區塊以儲存與就在前述章節中加以識別之區塊清單上的區塊有關之資訊。該等區塊係瞭解為記錄區塊,並以一頁之單元加以寫入或更新。將內容定址用於記錄區塊中的資訊。
每個記錄區塊包含固定數目的邏輯頁,每個邏輯頁可藉由將其重新寫入下一個可用實體頁而加以更新。配置多個邏輯頁以儲存包含用於清單中的區塊之資訊的記錄。該等頁係瞭解為記錄頁。
一記錄因區塊清單中的每個區塊而存在。記錄頁及其中的記錄可以按任何順序。用於不同區塊清單中的區塊之記錄不必保持為分離狀態。過期記錄可存在於記錄頁內,並可藉由用於已加入區塊清單的區塊之新記錄來加以取代。一記錄包含一區塊之實體位址與定義該區塊內的有效資料之數量(有效資料容量)的一數值,以及其他資訊。
配置一或多個邏輯頁以儲存識別個別區塊清單之一內的區塊之登錄。該等頁係瞭解為清單頁。將分離清單頁用於不同區塊清單。一清單頁中的每個登錄包含一描述符數值,該數值為與之其有關的區塊之實體位址或區塊內的有效資料容量之數值(或與區塊中的資料相關聯的某另一數值),以及對用於記錄頁中的區塊之記錄的指標。若記錄與之有關的區塊顯現在兩個區塊清單中,則分別在用於不同區塊清單之不同清單頁中的兩個清單登錄可指向相同記錄。
區塊清單中的登錄作為對用於區塊之共用記錄集的"目錄登錄"。
用於部分區塊清單或過期區塊清單之清單頁中的登錄按其描述符的順序加以儲存。以接近封包格式寫入登錄,清單頁中的未寫入登錄位置通常在寫入最後登錄之後呈現。清單頁儲存描述符之非重疊範圍。若一清單頁變滿,則其登錄可藉由配置一新邏輯頁作為一清單頁來加以劃分為兩個清單頁。同樣地,若具有鄰近描述符範圍之兩個清單頁中的登錄之數目係低於一臨界值,則兩個清單頁可加以組合為一個清單頁。用於記錄區塊的一索引包含用於每個清單頁之第一登錄的描述符。
具有用於區塊位址或有效資料容量的目標數值之部分區塊清單或過期區塊清單中的一登錄可藉由下列方式加以找到:從記錄區塊索引識別具有適當描述符範圍的清單頁,從快閃記憶體讀取頁,接著執行用於目標登錄之頁內的線性或二進制搜尋。接著可從藉由此登錄識別的記錄頁讀取用於目標區塊的記錄。
用於抹除區塊清單中的區塊之登錄可加以儲存在一清單頁中,其中該等區塊保留其得以寫入所按的順序。始終將抹除區塊選擇為清單中的最舊登錄。
記錄區塊之結構
用於在區塊清單中加以參考的區塊之所有登錄及索引資訊係包含在快閃記憶體中的一或多個記錄區塊中。一記錄區塊為一元區塊並以一頁之單元加以更新。
一記錄區塊具有以下特徵:1.所有類型的區塊清單均可於單一記錄區塊中儲存在一起。
2.若需要,則可使用多個記錄區塊。
3.一記錄區塊具有邏輯頁之一規定數目,其係定義為該範例中的區塊中的實體頁之數目的25%。
4.最近寫入頁中的一記錄區塊索引區段提供對每個邏輯頁至一實體頁的映射。
5.可藉由將一邏輯頁重新寫入下一個可用實體頁來更新該邏輯頁。
6.一邏輯頁可配置給用於區塊清單或區塊記錄的任何頁類型。
7.在一記錄區塊已滿的情況下,於抹除區塊中壓縮並重新寫入該記錄區塊。
圖2顯示一示範性記錄區塊之結構。
記錄區塊索引
記錄區塊索引存在作為記錄區塊中的每個頁之一區段。其只有在最近寫入頁中才有效。記錄區塊索引包含用於依據邏輯頁碼加以排序的每個可行邏輯頁之一登錄。每個登錄具有如下3個欄位:1.識別頁類型的數字碼:a.P(V)清單頁;b.P(A)清單頁;c.O(V)清單頁;d. O(A)清單頁;e. E清單頁;f.記錄頁;以及g.未配置的邏輯頁。
2.頁中第一登錄中的數值。此使得P(V)、P(A)、O(V)及O(A)清單頁類型之每個中的數值之範圍可加以建立並快取。
3.對邏輯頁所映射成的實體頁之指標。
記錄頁
一記錄包含與具有該等清單之一登錄清單的一區塊有關之所有需要的資訊,並且係儲存在一記錄頁中。將一記錄頁細分為如下三個區段:1.登錄狀態;2.記錄;以及3.共用區塊記錄。
登錄狀態區段包含一位元映射,其指示每個記錄是否在使用中,或是否可用以配置給一新區塊。記錄區段具有用於清單中的每個區塊之固定大小的登錄,其具有如下定義其特徵的欄位:1.區塊位址;2.區塊中的有效資料之容量;3.區塊中的頁寫入指標之位置;4.用於區塊中的第一資料群組之檔案ID;5.檔案的總數目,資料因該等檔案而存在於區塊中;以及6.與因區塊而存在的任一共用區塊記錄之偏移。數值0表示不存在共用區塊記錄。
共用區塊記錄區段具有登錄,其具有可變大小並具有如下定義一共用區塊中的其他檔案ID之欄位:1.用於共用區塊中的每個後來資料群組之檔案ID;以及2.記錄指示符之結束。
記錄頁可包含由從區塊清單移除之區塊產生的過期登錄。此類記錄可重新配置給加入清單的新區塊。
通常不改變一記錄區塊內的邏輯頁碼及配置給一區塊之該頁內的記錄數目,因為其係藉由清單頁用以參考記錄。然而,允許將用於一區塊的記錄移至相同清單頁內的另一記錄數目,至另一清單頁,或至另一記錄區塊。若移動用於一區塊的記錄,則必須相應地更新任何清單登錄中對該記錄的指標。
在修改並重新寫入一記錄頁時,可壓縮共用區塊記錄以消除任何過期空間並且可更新記錄以反映與共用區塊記錄之偏移中的任何變化。
記錄與共用區塊記錄之間的邊界係動態的。
圖3顯示一示範性區塊記錄頁之結構。
清單頁
一清單頁包含用於區塊的一組登錄,其係按藉由描述符數值所定義的順序。有效資料容量為P(V)清單及O(V)清單之登錄中的描述符,並且區塊位址為P(A)清單及O(A)清單之登錄中的描述符。
有效登錄佔用清單頁中的鄰近組之登錄位置,但是不必填充完全頁。在該組中不存在過期登錄,並且描述符數值不必係鄰近的。
一清單頁中的登錄係按其描述符欄位中的數值之順序。描述符數值之範圍不與任何其他清單頁中的描述符數值之範圍重疊。
在需要插入用於已加入區塊清單之一區塊的一登錄時,識別具有包含用於新區塊之描述符數值之一描述符範圍的清單頁。將一新登錄插入在描述符範圍內的適當位置處,並且重新寫入清單頁。在必須移除一登錄時,在沒有該登錄的情況下壓縮清單頁並且重新寫入該頁。
在必須對已變滿的清單頁進行添加時,將空的邏輯頁配置為新清單頁並且將整個清單頁之描述符範圍劃分為兩個接近相等的非重疊範圍,將該等範圍寫入兩個可用清單頁中。
在具有鄰近描述符範圍之兩個清單頁中的有效登錄之總計數目降至低於一臨界值(在此範例中為清單頁中登錄位置之數目的70%)時,在兩個清單頁之一中整合並寫入兩個清單頁之範圍。其他未用頁因此變為空邏輯頁。
用於P(V)清單及O(V)清單之一清單頁之登錄頁中的欄位係如下:1.區塊中的有效資料容量;以及2.對用於記錄頁中的區塊之指標。記錄頁不必在與清單頁相同的記錄區塊中。
用於P(A)清單及O(A)清單之一清單頁之登錄頁中的欄位係如下:1.區塊位址;以及2.對用於記錄一記錄頁中的區塊之指標。記錄頁不必在與清單頁相同的記錄區塊中。
用於E清單的清單頁之一登錄中的欄位係如下:1.區塊位址。
存取用於記錄的序列
將以下步驟之序列用以存取用於P清單或O清單中的一目標區塊之一記錄。
1.將P(V)清單、O(V)清單、P(A)清單或O(A)清單定義為目標清單。
2.從記錄區塊中的最近寫入頁讀取記錄區塊索引。此資訊可能已經存在於一快取記憶體中。
3.決定配置給用於在步驟1中定義之目標清單中的目標描述符數值之清單頁的邏輯頁碼。
4.從記錄區塊讀取在步驟3中決定的邏輯頁碼。
5.搜尋在步驟4中讀取的清單頁以讀取用於目標區塊的登錄。
6.從如藉由在步驟5中讀取的登錄所定義之記錄區塊讀取記錄頁。
7.從在步驟6中讀取的記錄頁讀取用於目標區塊的記錄。
詳細第二範例
在一第二範例中,如在以上說明的第一範例中一樣,某些區塊係根據藉由其包含的資料而加以個別地分類並且記錄係維持在該等區塊中。維持依據與儲存在一區塊中的資料有關之描述符數值所排序的清單。一區塊中的有效資料之數量為此類描述符數值之一範例。然而,在此第二範例中用以管理區塊的某些結構及方法係不同的。第一及第二範例之結構及方法應視為替代範例,自兩個範例的結構及/技術之各種組合亦視為本發明之部分。於將焦點放在與第一範例的差異上之情況下說明第二範例。因此,相對於第二範例而詳細地說明兩個範例的共用元件。
第二範例中的區塊分類係與第一範例之區塊分類相同,其中增加"完全共用區塊"分類。圖4顯示類似於圖1之區塊分類表格的一區塊分類表格,額外分類"完全共用區塊"除外。維持記錄登錄用於具有區塊分類"部分區塊"、"過期區塊"、"抹除區塊"或"完全共用區塊"的每個區塊。分類"完全共用區塊"係用於不包含任何抹除容量並且不包含任何過期資料的共用區塊。採用用於每個完全共用區塊的一區塊記錄來維持完全共用區塊(CCB)記錄。完全共用區塊一般不經歷再生操作,因為其不包含可用於再生的空間(既不包含抹除空間亦不包含過期空間)。然而,在一完全共用區塊中的某些資料變得過期時,該區塊得以重新分類為一過期區塊並且可經歷再生操作。在此類重新分類發生時,需要包含關於儲存在區塊中的資料之資訊的區塊記錄。此資訊可從區塊之預存在的CCB記錄登錄獲得。因此,藉由維持完全共用區塊上的記錄,從完全共用區塊至過期區塊的轉變可以出現而沒有搜尋用以產生用於區塊的記錄之資訊的沉重負擔。
圖1及4之分類方案為示範性方式並且預期其他方案。在一項範例(以下將詳細說明)中,可一直維持一記錄用於一記憶體陣列中的所有區塊。因此,一額外區塊分類可加入用於無過期資料之檔案區塊的圖4之表格。在其他範例中,可能不需要圖4之某些分類。例如,可以不維持記錄用於抹除區塊或無效區塊。在其他範例中,區塊可劃分為不同於圖4之區塊類型的區塊類型。應瞭解圖4之區塊類型對於特定記憶體管理方案而言比較方便,但是其他記憶體方案可使用不同區塊類型。
維持一記錄用於圖4之表格中列出的區塊分類之一中的每個區塊。用於具有不同區塊分類之區塊的記錄可在相同頁中儲存在一起。在該範例中,維持僅儲存區塊記錄的專用區塊記錄區塊。為便於存取記錄區塊中的個別記錄登錄,維持一區塊目錄。將區塊目錄及區塊記錄儲存在快閃記憶體中的分離區塊組中(而非像單一區塊可以包含區塊目錄及區塊記錄頁之第一範例一樣)。圖5顯示包含對區塊記錄區塊509中的對應區塊記錄507之位置的指標505之目錄區塊503中的區塊目錄登錄501。區塊目錄登錄501亦包含區塊位址506。
區塊目錄包含用於每個區塊的一個區塊目錄登錄,一登錄因每個區塊而存在於區塊記錄中。將區塊目錄登錄儲存在區塊位址數值之非重疊範圍內,將每個範圍配置給一分離區塊目錄頁。一範圍內的登錄依據區塊位址數值而加以排序。藉由讀取單一區塊目錄頁並執行該頁內的二進制搜尋,可以找到用於目標區塊位址的區塊目錄登錄。因此,一區塊目錄提供一便利方式來依據區塊位址而定位特定區塊記錄登錄。
在某些應用中,需要藉由除區塊位址以外的準則來搜尋一區塊。在某些情況下,與儲存在區塊中的資料相關聯的描述符數值可用於此類搜尋。例如,基於再生目的,可能需要識別具有最少數量的有效資料之部分區塊。找到此類區塊的一個方式係搜尋用於所有區塊的記錄登錄以決定何區塊包含最少數量的有效資料。然而,此類搜尋可能會添加重要的負擔。一替代範例係維持依據區塊所包含的有效資料之數量(有效資料容量)而排序的區塊之清單。因此,在按區塊所包含的有效資料之數量的順序來列出區塊的情況下,識別具有最少數量的有效資料之區塊只不過係讀取清單中的第一(或最後)登錄之事件。同樣地,若需要具有特定數量的有效資料之區塊,則二進制搜尋可迅速地識別此類區塊。藉由清單登錄中的描述符數值提供儲存在區塊中的有效資料之數量。此類描述符數值說明儲存在區塊中的資料。此係與說明區塊之實體位置的區塊位址(在第一範例中用作描述符數值)形成對比。
提供併入兩階段搜尋程序的一機制以依據用於區塊中的有效資料之數量之記錄中的一欄位內定義的一描述符數值來存取一區塊記錄。包含用於區塊(此內容定址機制因該區塊而可加以使用)之分類的有效資料容量數值的登錄係儲存在區塊目錄中的分離清單頁中。將該區塊清單登錄儲存在有效資料容量數值之非重疊範圍內,將每個範圍配置給一分離區塊清單頁。一範圍內的登錄依據其有效資料容量數值而加以排序。每個區塊清單登錄包含一區塊位址,其明確地識別一區塊目錄登錄。區塊清單登錄511包含區塊位址513,其與區塊位址506相同並因而識別區塊目錄登錄501。區塊清單登錄511亦包含用於具有區塊位址513的區塊之有效資料容量515。藉由下列方式可以找到用於目標有效資料容量數值的區塊目錄登錄:讀取一單一清單頁並執行該頁內的二進制搜尋以找到具有目標有效資料容量數值的一登錄,接著讀取一單一目錄頁並執行該目錄頁內的二進制搜尋以找到具有目標區塊位址的登錄。
二進制搜尋可簡單表示查看頁之描述符數值範圍中間的一登錄。根據具有所尋找之描述符數值的此登錄之描述符數量之比較,將搜尋限於半頁。因此同樣地檢查此半頁之中點處的一登錄並且將搜尋限於四分之一頁。在連續步驟之後,找到具有所尋找的描述符數值之一或多個登錄。在其他範例中,可使用更複雜的二進制搜尋演算法。在某些範例中,不需要二進制搜尋,因為所尋找的描述符數值在清單中係最低(或最高)。因此,選擇清單中的第一(或最後)登錄。
藉由區塊目錄中的登錄來直接定址區塊記錄。藉由將區塊記錄之一頁移至相同或另一區塊記錄區塊中的未程式化位置之讀取/修改/寫入操作來更新該頁。一頁中的區塊記錄必須全部與相同區塊目錄頁中的登錄有關。然而,一個目錄頁可包含用於多個區塊記錄頁的登錄。因此,可隨著需要修改僅單一區塊目錄頁而更新區塊記錄頁。
區塊目錄
區塊目錄為藉由區塊位址而識別區塊並指示對應區塊記錄之位置的登錄之有序收集。一登錄存在於用於每個區塊(因每個區塊而維持一區塊記錄)的區塊目錄中。在該範例中,一登錄因每個部分區塊、過期區塊、完全共用區塊及抹除區塊而存在。區塊目錄係包含在一或多個目錄區塊中。
圖6顯示包含過期區塊及部分區塊清單頁的一目錄區塊621。圖6亦顯示目錄區塊中的目錄頁。每個目錄區塊包含固定數目的邏輯頁,每個邏輯頁可藉由將其重新寫入下一個可用實體頁而加以更新。為包含有效登錄的一頁配置邏輯頁碼。目錄區塊中的邏輯頁之數目係規定為該範例之區塊中的實體頁之數目的25%。在其他範例中,可規定其他限制。在已寫入目錄區塊的最後頁之後,藉由將全部有效頁寫入抹除區塊並抹除原始目錄區塊來壓縮區塊。
區塊目錄頁
區塊目錄頁包含一組區塊目錄登錄,其係按其區塊位址數值的順序。圖7A顯示區塊目錄頁731之範例。有效區塊目錄登錄733佔用區塊目錄頁731中的鄰近組之登錄位置,但是不必填充完全頁以便抹除空間可保持。每個區塊目錄頁包含記錄索引(如以下所說明)。此處,區塊目錄頁731包含記錄索引735。區塊目錄登錄733內不存在過期登錄,並且區塊位址數值不必係鄰近的。區塊目錄頁中的區塊位址數值之範圍不與任何其他區塊目錄頁中的區塊位址數值之範圍重疊。
在需要插入用於區塊的登錄時,從目錄索引中的資訊識別具有包含用於新區塊之區塊位址數值的區塊位址範圍之區塊目錄頁。將一新登錄插入在區塊位址範圍內的適當位置處,並且重新寫入區塊目錄頁。在必須移除一登錄時,在沒有該登錄的情況下壓縮區塊目錄頁並且重新寫入該頁。
在必須對已變滿的區塊目錄頁進行添加時,將空的邏輯頁配置為新區塊目錄頁並且將整已變滿的區塊目錄頁之區塊位址範圍劃分為兩個接近相等的非重疊範圍,將該等範圍寫入兩個可用區塊目錄頁中。
在具有鄰近區塊位址範圍之兩個區塊目錄頁中的有效登錄之總計數目降至低於一臨界值(在此範例中為一個區塊目錄頁中登錄位置之數目的70%)時,在兩個區塊目錄頁之一中整合並寫入兩個區塊目錄頁之範圍。其他未用頁因此變為空邏輯頁。
此範例中的區塊目錄登錄737包含兩個欄位:(1)一區塊位址;(2)對一對應區塊記錄一指標。指標識別用於一區塊記錄頁的邏輯識別符及一頁內的特定區塊記錄之位元組偏移。區塊記錄頁邏輯識別符識別可藉由相同區塊目錄頁中的登錄所參考的最多16個分離區塊記錄頁之一。藉由包含登錄之區塊目錄頁內的記錄索引欄位將該頁轉換為實體區塊位址及頁碼。位元組偏移識別所識別之區塊記錄頁內的區塊記錄之位置。
分離的有效記錄索引欄位存在於每個有效區塊目錄頁及區塊清單頁中。其係用以將用於區塊記錄頁的邏輯識別符轉換為實體區塊位址及頁碼,區塊記錄頁即定位於此。記錄索引735包含用於在區塊目錄頁731中的任一登錄內使用的每個邏輯識別符之一個登錄(例如登錄739)。藉由單一區塊目錄頁中的區塊目錄登錄,可參考最多16個分離的區塊記錄頁。因此使用4位元邏輯識別符。以此方式,個別區塊目錄登錄可使用4位元識別符而非用於對應區塊記錄頁的較長實體頁位置。記錄索引欄位用以轉譯用於區塊目錄頁中的所有登錄之該等邏輯識別符。
有效目錄索引欄位741僅存在於最近寫入區塊目錄或區塊清單頁中。所有先前寫入頁中的目錄索引欄位中的資訊係過期的。其目的係支持區塊目錄登錄及區塊清單登錄之排序並將邏輯頁映射成實體頁。其提供一結構,其中儲存關於區塊目錄區塊中的個別頁之目前資料。目錄索引包含用於依據邏輯頁碼加以排序的每個可行邏輯頁之一登錄,例如登錄743。每個登錄具有四個欄位:(1)用於邏輯頁的配置狀態旗標。
(2)頁類型,例如區塊目錄、PB清單或OB清單。
(3)區塊目錄頁中的第一登錄之區塊位址或清單頁(PB或OB)中的第一登錄之有效資料容量數值。此使得區塊位址之範圍或每個邏輯頁中的有效資料數值可得以建立並快取。
(4)對邏輯頁所映射成的區塊目錄內之實體頁的指標。
區塊清單頁
區塊清單頁包含用於區塊之單一分類的一組區塊清單登錄,其係按說明登錄包含的資料之描述符數值(例如其包含的有效資料之數量)的順序。圖7B顯示區塊清單頁751之範例。在該範例中,區塊清單頁可以為PB清單頁或OB清單頁。圖7B顯示OB清單頁751。有效區塊清單登錄753可佔用區塊清單頁751中的鄰近組之登錄位置,但是不必填充整頁。在區塊清單頁中一般不存在過期登錄。區塊清單登錄753藉由描述符數值加以排序,但是描述符數值不必係鄰近的並且可加以重複。在該範例中,有效資料容量數值不必係鄰近的並且可加以重複。區塊清單頁的描述符數值之範圍不與用於相同區塊分類之任何其他清單頁的描述符數值之範圍重疊。
雖然有效資料容量為該範例中使用的描述符數值,但是也可使用其他描述符數值。例如,可將區塊中的抹除容量之數量用作描述符數值。描述符數值可得自有效資料之數量與抹除容量之數量的組合以便按用於再生所需的順序來列出區塊。在某些情況下清單可重疊。因此,相同區塊可顯現在兩個不同清單中。例如,區塊可藉由其包含的有效資料之數量與藉由(在一分離清單中)其包含的抹除空間之數量加以列出。
在需要插入用於區塊的登錄時,從目錄索引中的資訊識別具有包含用於新區塊之有效資料容量數值的有效資料容量範圍之區塊清單頁。依據區塊之有效資料容量數值採用插入在頁中的適當位置處的新登錄重新寫入區塊清單頁。在必須移除一登錄時,在沒有該登錄的情況下於新實體位置處重新寫入區塊清單頁。
在必須對已變滿的區塊清單頁進行添加時,將空的邏輯頁配置為新區塊清單頁並且將整已變滿的區塊清單頁之有效資料範圍劃分為兩個接近相等的非重疊範圍,將該等範圍寫入兩個可用區塊清單頁中。
在具有鄰近範圍之兩個區塊清單頁中的有效登錄之總計數目降至低於一預定臨界數量(例如在一個區塊清單頁中的登錄位置之數目的70%)時,在兩個區塊清單頁之一中整合並重新寫入兩個區塊清單頁之範圍。其他未用頁因此變為空邏輯頁。
區塊清單登錄755包含兩個欄位:(1)一區塊位址;(2)一描述符數值,在此範例中為指示區塊中的有效資料之數量的數值。不像第一範例一樣,不存在藉由區塊位址所排序的清單(雖然藉由區塊位址來排序目錄)。在該範例中,一清單包含一區塊位址,從該位址可找到一目錄登錄,其依次指示一對應記錄之位置。因此,在此範例中清單登錄753不直接指示一記錄。一區塊清單可包含一目錄索引,但是只有最近寫入頁僅包含一有效目錄索引。圖7B之OB清單頁包含一過期目錄索引757。
區塊記錄
區塊記錄為記錄收集,每個記錄包含用於藉由一區塊位址所識別的一區塊之資訊。一個記錄因每個區塊目錄登錄而存在。藉由區塊目錄登錄定址區塊記錄,並且在修改一區塊記錄頁時必須修改一區塊目錄頁。
將區塊記錄包含在一或多個專用記錄區塊(例如圖8所示的一記錄區塊861)中。不像第一範例一樣,並非將區塊清單與區塊記錄儲存在相同區塊中。僅一個區塊記錄區塊可包含區塊記錄可寫入的未程式化頁。在此區塊中藉由一區塊記錄寫入指標所識別的下一個未程式化頁位置處程式化所有區塊記錄資訊。在已程式化區塊中的最後頁時,將區塊記錄寫入指標移至一抹除區塊之第一頁。區塊記錄區塊可包含由已得到重新寫入之區塊記錄頁產生的過期頁。在某些具體實施例中,有效區塊記錄頁不包含過期記錄,因為無論何時一區塊記錄頁變得過期,均重新寫入該頁。在其他具體實施例中,過期記錄可保持在有效區塊記錄頁中。然而,採用指向有效記錄的登錄來刪除或取代用於過期記錄的目錄登錄以便不存取過期記錄。在重新寫入記錄頁時,不複製一記錄頁中的過期記錄。
一區塊記錄頁包含藉由單一區塊目錄頁內的區塊目錄登錄所參考的一組區塊記錄,其係按與區塊目錄頁中的登錄相同之順序。圖9顯示一區塊記錄頁965之範例。一區塊目錄頁可參考多個區塊記錄頁。可隨著需要修改僅單一區塊目錄頁而修改區塊記錄頁。不像第一範例一樣,依據本範例的一區塊記錄頁不包含一區塊記錄索引,因為藉由區塊目錄登錄直接識別區塊記錄頁。
一區塊記錄頁可藉由讀取該頁,接著更新或添加一或多個區塊記錄來加以修改。藉由壓縮該頁來移除任何過期區塊記錄,並且在藉由區塊記錄寫入指標識別的位置處程式化該頁。
一區塊記錄頁標題儲存對一區塊記錄頁所相關聯的區塊目錄頁之參考,以及區塊記錄頁內的區塊記錄資訊之長度。該區塊記錄頁標題還儲存在寫入區塊記錄頁時存在於區塊記錄區塊之每個中的過期頁之數目的記錄。此資訊只有在最近寫入區塊記錄頁標題時才有效。
一個別區塊記錄登錄個有可變大小。因此,用於一完全共用區塊的記錄可能比用於一抹除區塊的記錄大。不像第一範例一樣,不需要分離的共用區塊記錄區域。本範例之一記錄區塊具有如下定義區塊之屬性的欄位:(1)區塊位址。
(2)區塊類型,如PB、OB、CCB或EB。
(3)區塊中的有效資料之容量。
(4)區塊中的頁寫入指標之位置。
(5)檔案的總數目,資料因該等檔案而存在於區塊中。
(6)用於每個檔案的檔案ID,資料因每個檔案而存在於區塊中。
在其他範例中,記錄可包含包括不同描述符數值的不同欄位。
第二範例中用於區塊記錄的再生程序
區塊記錄係包含在一或多個記錄區塊中並且係藉由區塊目錄登錄直接定址。僅一個記錄區塊包含可用以程式化新或更新的區塊記錄之抹除頁。在所有其他記錄區塊中,程式化所有頁,但是區塊可包含完全過期或部分過期頁。藉由下列方式執行藉由過期區塊記錄佔用的容量之再生:將一個記錄區塊指定為要加以再生的下一個區塊,並且在抹除該再生區塊之前,將自此再生區塊的頁逐漸複製到藉由區塊記錄寫入指標目前指定的頁。
在已完成一記錄區塊上的先前再生程序並已抹除先前再生區塊時,選擇一再生區塊。將具有最高數目的過期頁之記錄區塊選擇為再生區塊。在最近寫入區塊記錄頁之區塊記錄頁標題中記錄用於每個記錄區塊的過期頁之數目。可以不選擇包含區塊記錄寫入指標的記錄區塊用於再生。選擇的記錄區塊保持為再生區塊,直到已完成再生程序並已抹除區塊。抹除區塊接著係加入抹除區塊集區並可再次用以儲存包含主機資料之任何種類的資料。因此,一區塊暫時保持為一專用記錄區塊但是並非永久性地指定為一記錄區塊。
再生包含過期頁的區塊記錄區塊之程序必需以排程間隔在叢發中將包含自區塊的有效區塊記錄之少數頁複製到藉由區塊記錄寫入指標所指定的頁。叢發中的頁數應該為包含在元頁中的頁數以獲得良好性能。然而,在某些情況下每次可寫入更少的頁。採用區塊記錄寫入指標程式化頁可執行為元頁上的單一程式化操作。透過包含在4個元頁中的頁位置之數目,採用藉由區塊記錄寫入指標之級數定義的間隔,可排程再生區塊中的頁之叢發複製操作。為程式化一元頁,在排程一叢發複製操作時,寫入指標一般必須指向實體元頁中的第一頁。
與用於以上說明的區塊記錄區塊之再生程序形成對比,用於目錄區塊的一再生程序只不過係在沒有抹除空間保持在目錄區塊中時壓縮一區塊目錄區塊之事件。在一區塊目錄區塊隨時具有最大25%的有效頁(在此範例中邏輯容量為實體容量的25%)情況下,此類區塊之壓縮會產生具有至少75%的抹除空間之一區塊。在壓縮發生時,資料從中複製的區塊變為一無效區塊並且得到抹除以變為一抹除區塊。該區塊接著係加入抹除區塊集區並可用以儲存包含主機資料之任何種類的資料。因此,一區塊暫時保持為一專用目錄區塊但是並非永久性地指定為一目錄區塊。
更新第二範例之結構
在將資料寫入記憶體陣列中的一區塊或刪除一檔案時,可能需要更新一或多個區塊記錄。另外,可能需要更新對應的區塊目錄及清單登錄。如圖10所示的下列程序說明在將額外有效資料儲存在一部分區塊(已經包含某些過期資料)中從而使該區塊變為一過期區塊時,更新第二範例之各種結構。
(1)接收要儲存額外資料的區塊之位址。
(2)查看區塊目錄區塊170之最後寫入頁中的目錄索引171以決定包含用於此區塊之目錄登錄175的目錄頁173之實體頁位置。
(3)執行目錄頁173內的二進制搜尋以找到用於該區塊的登錄175。
(4)從登錄175中的邏輯識別符以及記錄索引177中的資訊決定,包含用於此區塊的記錄183之區塊記錄區塊181中的實體頁179。使用目錄登錄175中的偏移來找到對應於接收的位址之正確記錄183。
(5)從記錄183決定該區塊之分類。決定額外資料之儲存是否使分類發生變化。此處,該區塊為一部分區塊並且額外資料填充該區塊中的其餘空間以便該區塊變為一過期區塊。
(6)將記錄頁183之內容複製到藉由寫入指標185所指示的位置,更新用於本區塊的記錄183以反映區塊之不同類型、有效資料、頁寫入指標之位置等。
(7)將目錄頁173複製到區塊目錄區塊170中的下一個可用實體頁。採用更新的登錄與記錄索引寫入新目錄頁以反映記錄頁之新實體位置。同樣,更新該新實體頁中的目錄索引。
(8)再次查看目錄索引以決定包含用於該區塊之一登錄189的一部分區塊清單頁187之實體頁位置。(在某些其他情況下,可查看多個清單)。
(9)執行頁187中的二進制搜尋以找到具有等於本區塊之描述符數值的一描述符數值之清單登錄189。若多個清單登錄具有該描述符數值,則藉由區塊位址搜尋所有匹配的登錄。
(10)將部分區塊清單頁187複製到具有用於該刪除區塊之登錄189的新位置。新部分區塊頁包含具有用於部分區塊頁之新實體位置的更新目錄索引。
(11)再次查看目錄索引以決定一過期區塊清單頁之實體頁位置,該頁涵蓋每區塊範圍的有效資料,其包含本區塊(圖中未顯示)中的有效資料之數量。
(12)複製過期區塊清單頁,從而依據現在於區塊中的有效資料之數量來添加用於具有適當偏移之本區塊的新登錄。新過期區塊清單頁包含更新的目錄索引,其指示用於過期區塊清單(圖中未顯示)的新位置。
不必按所示的順序實行以上步驟。可並列實行某些步驟。例如,可並列寫入一更新的過期區塊清單頁及一更新的部分區塊清單頁作為一元區塊寫入之部分。
詳細第三範例
在第三範例中,始終為記憶體陣列中的每個區塊維持一記錄。此舉可涉及區塊之一或多個額外分類,例如可將用於不包含過期資料的檔案區塊之額外分類加入圖4所示的第二範例之分類。雖然維持用於每個區塊的一記錄會增加所維持的記錄之總數目,但是此使得更簡單的結構可加以使用。除具有用於每個區塊的一記錄以外,第三範例可類似於第二範例而操作。
例如,在為每個區塊維持記錄時,也為每個區塊維持目錄登錄。目錄登錄具有一固定、均勻大小。所以,一目錄頁可包含藉由區塊位址按順序排序之一固定數目的登錄。因此,每個目錄頁涵蓋一固定區塊位址範圍。因為具有此類頁的登錄具有依據其區塊位址的預定偏移,所以不必分離地記錄每個登錄中的一區塊位址。找到用於一特定區塊的一目錄登錄可以為下列事件:找到涵蓋包含該區塊的區塊位址範圍的目錄頁,並接著轉到該頁內具有藉由該目錄頁之第一登錄的區塊位址與所需區塊位址之間的差異提供的偏移之登錄。因此,可以不需要一目錄頁之二進制搜尋。相反,記錄一般在大小方面可變,因此一記錄頁並非始終維持一固定數目的登錄。不像先前範例一樣,在本範例中可為區塊(因為該等區塊而沒有登錄存在於任何清單中)維持記錄。
維持用於記憶體中的每個區塊之一記錄對於某些應用而言比較方便。例如,可維持關於一區塊之實體特徵的描述符。此類描述符之一個範例為一抹除計數。一抹除計數指示一特定區塊已得到抹除並可用於磨損平準目的的次數。一或多個清單可依據其抹除計數來排序區塊。或者,一記錄可包含自上次抹除一區塊的時戳以便可藉由自區塊的上次抹除之時間在一清單中排序區塊。
雖然已針對本發明之範例性具體實施例來說明本發明之各方面,但是應瞭解,本發明有權在所附申請專利範圍之完全範疇內受到保護。
170...區塊目錄區塊
171...目錄索引
173...目錄頁
175...目錄登錄
177...記錄索引
179...實體頁
181...區塊記錄區塊
183...記錄
185...寫入指標
187...部分區塊清單頁
189...登錄
501...區塊目錄登錄
503...目錄區塊
505...指標
506...區塊位址
507...區塊記錄
509...區塊記錄區塊
511...區塊清單登錄
513...區塊位址
515...有效資料容量
621...目錄區塊
731...區塊目錄頁
733...區塊目錄登錄
735...記錄索引
737...區塊目錄登錄
739...登錄
741...目錄索引欄位
743...登錄
751...區塊清單頁
753...有效區塊清單登錄
755...區塊清單登錄
757...過期目錄索引
861...記錄區塊
965...區塊記錄頁
圖1顯示依據一第一範例的區塊分類之表格。
圖2顯示依據該第一範例的一記錄區塊之頁。
圖3顯示圖2之該記錄區塊的一個別頁之詳細圖式。
圖4顯示依據一第二範例的區塊分類之表格。
圖5顯示指向一區塊記錄區塊中的一對應區塊記錄之一區塊目錄區塊中的區塊目錄登錄。
圖6顯示一目錄區塊之頁結構的某細節。
圖7A顯示圖6之區塊目錄頁的結構,其包含一記錄索引及一目錄索引。
圖7B顯示圖6之過期區塊清單頁之結構。
圖8顯示一記錄區塊之頁結構的某細節。
圖9更詳細地顯示圖8之一記錄頁的結構。
圖10顯示經歷區塊記錄及相關結構之更新的目錄區塊與記錄區塊。
501...目錄登錄
503...目錄區塊
505...指標
506...區塊位址
507...區塊記錄
509...區塊記錄區塊
511...區塊清單登錄
513...區塊位址
515...有效資料容量

Claims (9)

  1. 一種非揮發性可再程式化記憶體系統,其包括:一記憶體單元之陣列,其被分組為多個記憶體單元之區塊,該等區塊係於將資料再程式化至該等區塊之頁內以前一起被抹除,該等區塊係藉由實體區塊位址來識別;一控制器,其與該等記憶體單元之陣列係可操作地相連接,以及其以包含下述之方式來操作:從該記憶體系統外部接收資料並將該所接收之資料儲存至該等區塊當中的一或多個區塊內;維持用於該複數個區塊之複數個記錄,該等記錄個別地包含儲存於該複數個區塊當中之一與該記錄相關之區塊內之該資料的不同方面之複數個描述符之數值,該區塊係依該區塊之位址來識別,其中該控制器係操作以將對應區域內為有效資料之數量之一第一描述符之數值寫入至該等記錄內,以及額外地操作以將該等對應區塊內抹除容量之數量之一第二描述符之數值寫入至該等記錄內;藉由該複數個區塊之該等位址來維持一第一清單,該第一清單包含多個指標,該等指標係回應於接收該等區塊當中之一區塊之位址,而個別地指向該等記錄當中用於該區塊之一記錄於該記憶體單元之陣列內的位置,且進一步其中該等指標係依它們分別對應之複數個區塊之該等位址之順序來設置於該指標之清單內; 維持一第二清單,該第二清單係包含該複數個區塊之位址,其對應記錄係包含至少第一及第二描述符之數值,其中該第二清單內之該複數個區塊之該等位址係以它們的對應記錄內之該第一描述符之數值的順序來設置;維持一第三清單,該第三清單係包含該複數個區塊之位址,其對應記錄係包含至少該等對應區塊內之至少一有效資料數量與該等對應區塊內之過期資料數量之描述符的數值,其中該控制器更操作以於該第三清單內,將該複數個區塊之位址,以該等對應區塊內之該有效資料數量之數值的順序來設置,以及致使一操作於該第二清單內之該複數個區塊之個別區塊內所儲存的資料上依其於該第二清單內所出現之順序來實施。
  2. 如申請專利範圍第1項之記憶體系統,其中於該複數個區塊之個別區塊上之該控制器操作係包括將有效資料從該個別區塊複製至另一具有已抹除空間之區塊並繼而抹除該個別區塊。
  3. 如申請專利範圍第1項之記憶體系統,其中該控制器更將具有包含該第二描述符之數值的對應記錄之區塊從該第三清單忽略。
  4. 一種非揮發性可再程式化記憶體系統,其包括:一記憶體單元之陣列,其被分組為多個記憶體單元之區塊,該等區塊係於將資料再程式化至該等區塊之頁內 以前一起被抹除,該等區塊係藉由實體區塊位址來識別;一控制器,其與該等記憶體單元之陣列係可操作地相連接,以及其以包括以下描述之方式來操作:將該記憶體系統所接收之資料儲存至該等區塊內;維持用於該複數個區塊之複數個記錄,該等記錄個別地包含一對於該複數個區塊當中之一與該記錄相關之個別區塊之一有效資料數量、一過期資料數量、及一抹除容量的指示,該區塊係依該區塊之位址來識別;藉由該複數個區塊之該等位址來維持一第一清單,該第一清單包含多個指標,該等指標係回應於接收該等區塊當中之一區塊之位址,而個別地指向該等記錄當中之一用於該區塊之記錄於該記憶體系統內的位置,以及進一步其中該等指標係依它們的分別對應之複數個區塊之該等位址之順序來設置於該指標之清單內;維持該複數個區塊之位址之一第二清單,該等區塊之對應記錄係包含至少有效資料及抹除容量之正數值,其中該第二清單內之該複數個區塊之該等位址係以它們的對應記錄內之有效資料數量的順序來設置;維持該等區塊之位址之一第三清單,該等區塊之對應記錄係包含至少有效資料及過期資料之正數值但無包含抹除容量數量,其中該第三清單內之該複數個區塊之該等位址係以它們的對應記錄內之有效資料數量的順序來設置,以及 致使位址位於該第二及第三清單上之該等區塊被存取,以於該複數個區塊之個別區塊內所儲存的資料上,依其於該第二及第三清單內所出現之順序,來實施該記憶體系統之一操作。
  5. 一種非揮發性記憶體系統之操作方法,該非揮發性記憶體系統係具有多個記憶體單元,該等記憶體單元被分組為多個記憶體單元之區塊,該等區塊係於將資料再程式化至該等區塊之頁內以前一起被抹除,該等區塊係藉由實體區塊位址來識別,該方法包括:將該記憶體系統所接收之資料儲存至該等區塊內;維持用於對應於該複數個區塊之複數個記錄,該等記錄個別地包含一對於該複數個區塊當中之一與該記錄相關之個別區塊內所儲存之該資料之不同方面之至少第一、第二、及第三描述符之數值,該區塊係依該區塊之位址來識別,該第一描述符係該對應區塊內之一有效資料數量,該第二描述符係該對應區塊內之一抹除容量數量,以及該第三描述符係該對應區塊內之一過期資料數量;藉由該複數個區塊之該等位址來維持一第一清單,該第一清單包含多個指標,該等指標係回應於接收該等區塊當中之一區塊之位址,而個別地指向該等記錄當中之一用於該區塊之記錄於該記憶體系統內的位置,以及進一步其中該等指標係依它們分別對應之複數個區塊之該等位址之順序來設置於指標之清單內; 維持一第二清單,該第二清單係包含該複數個區塊之位址,其對應記錄係包含至少該第一及第二描述符之數值,其中該第二清單內之該複數個區塊之該等位址係以它們的對應記錄內之該第一描述符之數值的順序來設置;維持一第三清單,該第三清單係包含該複數個區塊之位址,其對應記錄係包含至少該第一及第三描述符之數值,其中該第三清單內之該複數個區塊之該等位址係以它們的對應記錄內之該第一描述符之數值的順序來設置,以及實施一記憶體系統之操作於該第二清單內之該複數個區塊之個別區塊內所儲存的資料上,並依其於該第二清單內所出現之順序來實施。
  6. 如申請專利範圍第5項之方法,其中於一個別區塊上實施一操作係包括將有效資料從該個別區塊複製至另一具有已抹除空間之區塊並繼而抹除該個別區塊。
  7. 如申請專利範圍第5項之方法,其中該第三清單係忽略該等複數個區塊中具有包含該第二描述符之數值的對應記錄之區塊之位址。
  8. 如申請專利範圍第5項之方法,其中該第二清單係忽略該等複數個區塊中具有包含該第三描述符之數值的對應記錄之區塊之位址。
  9. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統係具有多個記憶體單元,該等記憶體單元被分 組為多個記憶體單元之區塊,該等區塊係於將資料再程式化至該等區塊之頁內以前一起被抹除,該等區塊係藉由實體區塊位址來識別,該方法包括:將該記憶體系統所接收之資料儲存至該等區塊內;維持用於該複數個區塊之複數個記錄,該等記錄個別地包含一對於該複數個區塊當中之一與該記錄相關之個別區塊之一有效資料數量、一過期資料數量、及一抹除容量的指示,該區塊係依該區塊之位址來識別;藉由該複數個區塊之該等位址來維持一第一清單,該第一清單包含多個指標,該等指標係回應於接收該等區塊當中之一區塊之位址,而個別地指向該等記錄當中之一用於該區塊之記錄於該記憶體系統內的位置,以及進一步其中該等指標係依它們分別對應之複數個區塊之該等位址之順序來設置於該指標之清單內;維持該等區塊之位址之一第二清單,該等區塊之對應記錄係包含至少有效資料及抹除容量之正數值,其中該第二清單內之該複數個區塊之該等位址係以它們的對應記錄內之有效資料數量的順序來設置;維持該等區塊之位址之一第三清單,該等區塊之對應記錄係包含至少有效資料及過期資料之正數值但無包含抹除容量數量,其中該第三清單內之該複數個區塊之該等位址係以它們的對應記錄內之有效資料數量的順序來設置,以及對位址位於該第二及第三清單上之該等區塊進行存 取,以於該複數個區塊之個別區塊內所儲存的資料上,依其於該第二及第三清單內所出現之順序,來實施該記憶體系統之一操作。
TW95128510A 2005-08-03 2006-08-03 具區塊管理之非揮發性記憶體 TWI399642B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US70538805P 2005-08-03 2005-08-03
US74674006P 2006-05-08 2006-05-08
US11/459,260 US7552271B2 (en) 2005-08-03 2006-07-21 Nonvolatile memory with block management
US11/459,268 US7558906B2 (en) 2005-08-03 2006-07-21 Methods of managing blocks in nonvolatile memory

Publications (2)

Publication Number Publication Date
TW200739342A TW200739342A (en) 2007-10-16
TWI399642B true TWI399642B (zh) 2013-06-21

Family

ID=40361356

Family Applications (1)

Application Number Title Priority Date Filing Date
TW95128510A TWI399642B (zh) 2005-08-03 2006-08-03 具區塊管理之非揮發性記憶體

Country Status (4)

Country Link
JP (1) JP4547028B2 (zh)
AT (1) ATE493707T1 (zh)
DE (1) DE602006019263D1 (zh)
TW (1) TWI399642B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101464199B1 (ko) * 2006-12-26 2014-11-21 샌디스크 테크놀로지스, 인코포레이티드 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8285970B2 (en) * 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
JP4738536B1 (ja) 2010-01-29 2011-08-03 株式会社東芝 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
TWI423023B (zh) 2011-04-22 2014-01-11 Silicon Motion Inc 快閃記憶體之區塊選取方法及資料儲存裝置
TWI454912B (zh) * 2012-01-06 2014-10-01 Phison Electronics Corp 資料處理方法、記憶體控制器與記憶體儲存裝置
US8370567B1 (en) * 2012-03-23 2013-02-05 DSSD, Inc. Storage system with self describing data
KR20200055349A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US6347355B1 (en) * 1999-02-05 2002-02-12 Seiko Epson Corporation Non-volatile storage, the controlling method, and information memory medium
TW200424846A (en) * 2002-10-28 2004-11-16 Sandisk Corp Method and apparatus for performing multi-page write operations in a non-volatile memory system
TW200506609A (en) * 2003-03-19 2005-02-16 Sony Corp Data storage device, management information updating method in data storage device, and computer program
TW200511008A (en) * 2003-09-05 2005-03-16 Megawin Technology Co Ltd Efficiently controlling method for access flash memory
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
JPH10326227A (ja) * 1997-05-23 1998-12-08 Nec Corp フラッシュメモリを記憶媒体とする記憶装置の管理方式
US6591358B2 (en) * 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4280055B2 (ja) * 2001-11-28 2009-06-17 株式会社Access メモリ制御方法および装置
JP2003208352A (ja) * 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
JP4245959B2 (ja) * 2003-04-09 2009-04-02 日本電信電話株式会社 Icカードにおけるメモリ管理方法、及びicカード
JP2005122439A (ja) * 2003-10-16 2005-05-12 Sharp Corp デバイス機器、及びデバイス機器の記録装置のフォーマット変換方法
EP1704484A2 (en) * 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with non-sequential update block management
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US6347355B1 (en) * 1999-02-05 2002-02-12 Seiko Epson Corporation Non-volatile storage, the controlling method, and information memory medium
TW200424846A (en) * 2002-10-28 2004-11-16 Sandisk Corp Method and apparatus for performing multi-page write operations in a non-volatile memory system
TW200506609A (en) * 2003-03-19 2005-02-16 Sony Corp Data storage device, management information updating method in data storage device, and computer program
TW200511008A (en) * 2003-09-05 2005-03-16 Megawin Technology Co Ltd Efficiently controlling method for access flash memory
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units

Also Published As

Publication number Publication date
TW200739342A (en) 2007-10-16
DE602006019263D1 (de) 2011-02-10
JP2009503745A (ja) 2009-01-29
ATE493707T1 (de) 2011-01-15
JP4547028B2 (ja) 2010-09-22

Similar Documents

Publication Publication Date Title
US7558906B2 (en) Methods of managing blocks in nonvolatile memory
US7552271B2 (en) Nonvolatile memory with block management
KR101329068B1 (ko) 블록 관리를 가지는 비휘발성 메모리
US8607016B2 (en) FAT analysis for optimized sequential cluster management
US7610434B2 (en) File recording apparatus
TWI399642B (zh) 具區塊管理之非揮發性記憶體
US7624239B2 (en) Methods for the management of erase operations in non-volatile memories
US7783845B2 (en) Structures for the management of erase operations in non-volatile memories
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
JP5000316B2 (ja) オブジェクト・ベースのデータ記憶装置
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
US8046522B2 (en) Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7739444B2 (en) System using a direct data file system with a continuous logical address space interface
US7917686B2 (en) Host system with direct data file interface configurability
US20080155175A1 (en) Host System That Manages a LBA Interface With Flash Memory
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JP5266250B2 (ja) 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用
WO2005066787A1 (ja) 情報記録媒体
JP2010515163A (ja) ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理
JP4130808B2 (ja) フォーマット方法
KR100638638B1 (ko) 플래시 메모리의 제어 방법

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees