TW440762B - Dynamic allocation for efficient management of variable sized data within a nonvolatile memory - Google Patents

Dynamic allocation for efficient management of variable sized data within a nonvolatile memory Download PDF

Info

Publication number
TW440762B
TW440762B TW088106370A TW88106370A TW440762B TW 440762 B TW440762 B TW 440762B TW 088106370 A TW088106370 A TW 088106370A TW 88106370 A TW88106370 A TW 88106370A TW 440762 B TW440762 B TW 440762B
Authority
TW
Taiwan
Prior art keywords
data
representative
sequence table
block
target
Prior art date
Application number
TW088106370A
Other languages
English (en)
Inventor
Deborah L See
Robert N Hasbun
Jeffrey A Dunlap
Pozo Iii Phillip J Del
Original Assignee
Intel Corp
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
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW440762B publication Critical patent/TW440762B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

440762 五、發明說明(1) 發明領域 本發明是關於電腦記憶體儲存系統的領域。更明確的 說’本發明疋關於’用於非揮發性記憶體内可變尺寸資料 之有效管理之動態配置。 發明背景 通訊設備比如彳于動電话和呼叫器’需要儲存資料和;5馬兩 者。還有,這些通訊設備一般需要工作記憶體有一些順 序。 這些通設備一般需要去儲存碼和至少一些資料在非揮 發性記憶體裏。例如,.序.號*、授權碼、常撥的號碼、等 等。都是資料可能被儲存在非揮發性記憶體裏的例子。這 些資料和碼以不同頻率被更辦,通訊設備通常使用不同型 式的非揮發性記憶體來儲存資料和碼。如同一個結果,一 個較早技術的通訊設備—般包括,一種型式的非揮發性記 憶體用來儲存碼,3 —種非揮發性記憶體用來儲存資料, 亚有隨機存取記憶體比如靜態隨機存取記憶體被當作工作 記憶體。 ^ = ¾乱拭除式可編程唯讀記憶體EEPR〇m)是 :軍二記憶體的一種型式。Flash EEPR0M (以下,快 ,,又4為早電晶體記憶儲存格的區塊。雖 然快閃記憶體是可重耷认 Λ ,,^ 3 L 里馬的,記憶儲存格不能被再次編程除 ' 遇有,這些儲存格只有在區塊裏是 ..^ ... Α ;拭除一個儲存格,儲存格的整個區塊 必須被拭除。更新栴Μ 民閃兄憶體須要一些型式的媒體管理
第6頁 4 4 0 7 6 2 __ 五、發明說明(2) 去,掌控區塊有效資訊的複製,拭除區塊’以及書寫有效 資訊或更新資訊到相同或另一個區塊。拭除、書寫、等等 疋相對彳&時間的c 另一個型式的非揮發性記憶體是電氣拭除式可編程唯讀 記憶體(EEPR0M),其含有雙電晶體記憶儲存格β雖然 EEPROM可以被設計成類似快閃記憶體的可拭除區塊,雙電 晶體的E E P R 0 Μ相對的容易更新’並且不須要更新快閃記憶 體所須要之複雜的媒體管理。書寫一個值到雙電晶體的-EEPR0M健存格,卻是,須要時間明顯大於編程一個已拭除 的單電晶體快閃記憶體.。一 * 一個較早技術的通訊設備記憶體架構包括,快閃記憶體 用來儲存碼’ EEPR〇m用來儲存資料,並有隨機存取惰 被當作工作記憶體。 不同型式非揮發性記憶體的使用會傾向增加组成因子尺 ' =及又叶和製造成本。個人通訊設備比如行動電話和 Π:通常根據尺寸、特色、成本、和電源消耗率來做 變還:IK Ϊ = J J Λ碼對資料的比率可能必須改 加設備成本而的非揮發性記憶體,增 碼的非揮發性記憶體的;儲存碑和資料,用於 用的。類似的,用於力,對資料儲存是沒有 力,對碼的儲存是沒有非揮务性記憶體的過量儲存能 、。因此,配置給碼的非揮發性 ¥ 7頁 440762 五、發明說明(3) 記憶體,對配 能夠容易的調 發明概诚 就已知系統 在非揮發性記 發性記憶體儲 驟。資料選定 相關尺寸(z ) 單一代表物的 被儲存在,非 在具體實施 多代表目標物 儲存,如同單 在具體實施 的。然後這些 數個區塊。 如果分段的 表指出,被儲 置。 如果分段的 表的分段和— 群表指出,數 依序指出,非 本發明其他 置給資料的非揮發性記憶體比率的設計,不 整變化。 … 及方法的限制的觀點,提供數個儲存結構, 憶體裏有效的管理大的和小的資料。在非揮 存資料的方法’包括接收被儲存資料的步 儲存結構’是根據相對於數個臨界點的資料 ’臨界點包括:代表物的最少數目(m )、最大 尺寸(s *g )、以及配置的顆粒(g )。接著資料 揮發性記憶.氣裏的所選定結構。 '" 例,如果z小於第一臨界點,資料被 的結構裏、果“、於第二臨界點 一代表目標物。 例,如果Z超過第二臨界點,資料是分段 分段的資料能夠被儲存在非揮發性記憶&體的 數目小於最大順序表的尺寸,會有—個順 存在非揮發性記憶體之資料分段的順序和位 數目超過最大順序表的尺寸,會有數個順 個族群表被儲存在非揮發性記憶體—。一^-個# :順序表分段的順序和位置。這數個順矢 發性記憶體裏資料分段的順序和位置。、 特色和好處將會從附圖和下面詳細的描述被 4407 6 2 五、發明說明(4) 明白呈現出來。 圖式簡述 本發明是藉著例子描繪,而不是限制於附圖的圖式,在 附圖指出參考的類似組成。並且在附圖: 圖1描繪在同一個大非揮發性記憶體設備内,資料和碼 的儲存。 圖2描繪在非揮發性記憶體的一個區塊内,目標物的儲 存。 圖3描繪目標物表頭結構。 圖4描繪多代表物儲泉紱構。 圖5描繪順序表條目和狀態值。 圖6描繪順序表的使用,用來指出相關資料分段的順序 和位置。 圖7描繪族群表的使用,用來指出相關順序表分段的順 序和位置= 圖8描繪建立資料搜尋列表的方法。 圖9描繪選定儲存結構的方法,選定儲存結構是根據相 對於數個臨界點的資料相關尺寸(z ),臨界點包括:代表 物的最少數目(m);配置的顆粒(g );最大單一代表物的尺 寸(s*g);以及最大順序表的尺寸。 圖1 0描繪寫入單一代表目標物的方法。 圖1 1 -1 2描繪寫入數個代表目標物的方法。 圖1 3 -1 5描繪儲存數個資料分段目標物的方法。 圖1 6描繪當最後順序表分段有足夠空間可用時,附加到
4407 6 2 五、發明說明(5) 分段目標物的一個方法。 圖1 7-1 9描繪一個方法用來取代分段目標物的所選分 段。 圖2 0描繪一個方法用來在非揮發性記憶體内回收空間。 詳細描述 圖1描緣在一個大非揮發性記憶體設備Π 0内,資料和碼 兩者的儲存。在具體實施例,非揮發性記憶體包括多個獨 立的可拭除區塊,配置給資料的所有空間和碼的部分可能 跨越一個或更多區塊,而且資料和碼的部分沒有共用相同 的區塊。 ...... 非揮發性記憶體設備1 1 0含有啟動瑪丨丨2的部分、資料儲 存114部分、空區塊116部分,以及碼儲存118部分。空區 塊1 1 6是非揮發性記憶體設備的真正實體區塊。如以下所 =二於J吏用輯區塊號碼,戶斤以空區塊能夠是資料部 分U 4裏的任何實體區塊。 空區塊1 1 6被使用在回收程序抑鬥 釋放無效内容所用空間之V序用期於間^^ 容。因為快閃記憶體的特性以及拭除:區塊的有效内 間,替代資料被寫入非揮發性 目關的長恰 複製區塊的任何有效資料到空區— i固新的位置。在 效,而藉著拭除區塊,無效資舊版貢料變成無 收。拭除之後,已代 β 吏用的I間能夠接著被回 1已栻除區塊變成新的空區% 圖Η曰出位於圖1 f料儲存114部 鬼 區塊裏,貧料如何被指明和儲立區塊中的一個 &夠被配置的最小空間 4407 6 2 .^ 五 '發明說明(6) —-------- =數’被參考為單位顆粒、或簡單顆粒。被儲存資料被配 ,到獨立1域跨越一個或更多單位顆粒。每個區域被參考 ^個目私物。例如,區塊21 〇包括目標物1、2、和3。藉 著目標物表碩,區塊裏每一個目標物被指出。因此例如, 表頭1(212)指明目標物1 ( 222 );表頭2(214)指明目標物 2 (224 );還有表頭3(216)指明目標物3 ( 226 )。 表頭被寫入所選區塊,從區塊的第—盡頭連續進行到區 塊的第二盡頭。相關於每個表頭的目標物被寫入區塊,從 區塊的第二盡頭連續往前進行到區塊的第一盡頭。如此這 些表頭和目標物往對方.成長_,就如同附加上的目標物和表 頭被儲存在區塊21 0。 每個區塊2 1 0還有一個區塊資訊結構2 4 〇。區塊資訊結構 2 4 0幫Q塊2 1 0維s蔓邏輯區塊號碼2 4 4以及追縱回收 '狀雜 242。使用邏輯區塊號碼允許資訊的儲存在邏輯上連續, 而不必真正實體區塊連續。 回收期間’在被安排為回收的區塊能夠被栻除之前,被 安排為回收區塊的有效内容必須被複製到另—個區塊β在 具體實施例,區塊資訊結構包括實體複製246,在回收期 間用來指出被複製的實體區塊。這在回復程序是有用的, 如果複製被中斷,例如,因為電源失靈。還有,實體複製 2 4 6領域幫助指出,任何區塊的拭除過程可能曾經有栻除 操作被中斷的事件,例如,因為電源失靈。 區塊資sil結構2 4 0退包括完整領域2 4 8 11完整領域被用來 確定區塊資訊結構21 0本身的完整。
^ 4407 6 2 · i ~ I五、發明說明(7) I 圊3描繪表頭資料結構3 00的具體實施例°表頭資料結構 |包括指定器302、狀態304、型式306、尺寸308、以及偏移 3 1 0領域。指定器302指出相關目標物。例如,對資料而言 |
指定器30 2可能是名字或號碼(例如,參數"X"或1' 563 Γ )。 I 狀態3 0 4領域被用來追蹤表頭和目標物的狀態。表頭和 目標物的狀態被使用在,當以底下的討論來建立RAM搜尋 丨 列表,也就是當實施電源失誤的回復時。表3 2 0是對於狀 態領域指出一個指定狀況的具體實施例。 尺寸3 0 8指出在多個配置單元裏的目標物尺寸。因此如 果最小配置單位(例如入.顆.粒)是4Kb,8的尺寸指出目標物 1 尺寸是32Kb。 偏移3 1 0被用來指出區塊内目標物的位置。偏移3 1 0是一 個指標,指出目標物的偏移,就是在顆粒單位裏從區塊底i 部來量測。 在具體實施例,型式3 0 6的第一部份被用來指出預定的 目標物結構。型式3 0 6的第二部份指出預定目標物結構的 _ 内容(例如,結構内所儲存資料的型式)。預定目標物結構 被設計來適合一個範圍的目標物尺寸,也就是預期目標物 1 變化的變化量。 對於應用,資料型式一般而言是特定的。在具體實施 I 例,非揮發性記憶體設備支援無線通訊設備比如行動電話 丨 或呼叫器。用於通訊應用之資料型式的例子包括*資料參 : j 數值(例如,用來追蹤起源、目的地,以及通訊長度)、資 | 料流、電話號碼、傳真號碼、等等,或其他可定義型式^
第12頁 44 07 6 2 五'發明說明(8) 表號碼312被用虫* 果和表—起使用資料分段,用來追蹤資 :上“X下描述的分段目標物造成改變,表 號碼312的使用被用來最小化必須取代的更新總數。 ϋ在ΐ二^ %例預定目標物結構包括:多代表目標 、早-代表目標物、資料分段、順序表、
以及族群表。 〃 β 77 fX 献t : : ί目標物能夠整個放進區塊。單-代表目標物被 、 二^置顆粒。單一代表目標物不允許跨越區塊。 以,去哥回貝就是單—代表目標物只需要測試表頭, 定單一代表目標物的.拉*置,接著尋回單一代表目標物 本身。 · 夕代表物單元被纟又计來儲存相關的小尺寸資料,它能夠 利用原本配置來儲存資料的同一空間,多次更新資料。這 對經常更新資料尤其有用,比如變數。 、 圖4描繪多代表目標物4〇〇的結構。在同一配置空間提供 多個代表物,以減少管理小資料參數的負擔並改善更新效 能。 - ^代表目標物40 〇包括I代表物資訊41 〇指出每個代表物*| 的尺寸以及多代表目標物内代表物的數目。跟著代表物資i 訊410的是數個狀態領’域422、432、442和452。每個狀態、j 領域相對於目標物的一個代表物。如此,例如狀態422適 用於代表物420。狀態43 2適用於代表物43〇、狀態442適用. 於代表物440、而狀態452適用於代表物45〇。指定狀況的 一個具體實施例,其狀態的不同條件被明定 〇。 44 07 6 2 五、發明說明(9) 另一種目標物結構是f料分段。一些目標物必須分段’ :以便儲存在數個區塊的士效空間裏《例如,如果目標物大 於區塊,這可能是必須的^另一方面,如果目標物大於所 給區塊表的剩餘空間,分段可能是必須的。因此任何資料 跨越實體區塊界限將被分段成多個資料分段。這些分段部 一個都被參考如資料分段目標物。資料分段目標物含有肩 始資料的分段’但沒有其他額外資訊《順序表含有f料分 段的順序列表,被用來將數個資料分段重新組合為原始資 料。 圖5描緣順序表分段的·每·個條目結構,以及每個條目的 狀悲值《條目包括的領域有邏輯區塊號碼(5 1 2 )、條目狀 丨 悲(514)、代表物(516)、資料分段尺寸(518) '舊資料分 段尺寸如果適用於此(5 2 〇 )、以及實體索引(5 2 2 )。條目狀| 私使用的狀態值被描繪於表5 6 〇。當相同區塊裏目標物含 有超過一個的資料分段,代表物值被用於指出一個特定的 資料分段。 &圖6描繪順序表6 1 6也就是使用順序表來組合所有資料分 ^的私序。因此例如,參數χ已經被分段成數個資料分段 以及628 ,被放置在實體區塊61◦和62。。而相 、和624有它們各自的表號碼。⑴領域, 被6又疋來指出順序表616。 代=I16列出被用來重新組合成完整參數X的資料分段 號碼。在相同區塊裏的多個參數 肖者區塊裏它們的代表物或存在以及它們使用的
第14頁 "4407 6 2 五、發明說明(ίο) 特定順序表,被區分開來。在順序 =的條目順序,資料分段必須照: = = = 整的參數χ。 似一且口云形成元 頭新組合參數χ目標物,會為參數X順序表表 =一個搜尋(步驟G所指)。在具體實施例,參數χ: d頁”置被儲存在資料搜尋列•,以 的 置子資料搜尋列表指出參數χ順序表表頭 板放置在邏輯區塊0(610)。 !輯區塊0被掃描去定址參數χ順序表表頭。參數x順序 、表頭指出參數χ順序表61儿的位置(如步驟@所指卜順序 的每個條目指出邏輯區塊,以及相關於順序表重建 ,數x所必須的資料分段代表物。 噴序表616指出的第-個資料分段,就是順序表616之參 貧料分段的第一個代表物,放置在邏輯區塊〇。如此藉 者在邏輯區塊〇(61〇)搜尋第一個表頭,表頭指出帶有61 6 ,號碎的參數χ資料分段(如步驟@所指)β在這個例子, 第—個表頭指出順序表6 1 6之位在邏輯區塊〇的參數χ資料 ; 分段就是表頭612。然後表頭612被使用來定址參數χ資料 j 分段6 1 4 (如步驟@所指)^ ! 參考順序表6 1 6 ’下一個參數X資料分段被決定為邏輯區 鬼1的第—個參數χ資料分段。因此能夠搜尋邏輯區塊1來 丨 定址參數χ資料分段表頭的第二個存在(如步驟⑤所指)。 丨 表頭6 2 4指出參數χ資料分段6 2 6的位置’如步驟⑧所指。 | 最後一個參數χ資料分段被決定為邏輯區塊〗(62〇 )的第 i 4407 6 2 —-—1 '· 五、發明說明(11) 個參數X資料分段 因 此搜尋邏輯區塊1來定址參數X資 料分杈录頭的弟一個仔在《在這個例子,參數χ資料分段 表頭的第一個存在就是表頭622,如步驟@所指。參數χ資 料分段表頭622相出第三個也是最後一個參數乂資料分段、 6 2 8的位置,如步驟®所指。 如果參數有很多的資料分段,順序表可能必須跨越實體 區塊界限。也就是t兒,資料分段的數目可能須要尺寸超過 序表。建立另一個順序表,勝過企圖去確護 =數,鄰邏輯或實體區塊,或者允許順序表長大到織 Ϊ目ί 2檻。在具體實施.例*’預定門檻就是允許給單-代 目標物的最大尺寸。如同順序表尺寸的長 :: 扦,複製順序表所需的時間總數也不同。 東更新 資被順序表如同順序表被用來追縱 管理複製順序表所需的時間彳會傾向去減少 序表成為數個小的順序表分 *有效的分段開大的順 表二合,用,個別的順序二丄 表分段,而順序表°分1本Λ ’次被指定*段就是順序 位置和順序。族群、日疋貝料分段相關目標物的 資料分段族群。群表716的母個條目如此間接的指出-個 要回復參數χ,首先 個例子’參㈣群表先;頭被定址。在這 貝被發現在邏輯區塊0⑺0)。族 44 07 6 2 五、發’明說明(12) ^ ^ ί ΓΓΛ\ΤΛ71ι;^716 ^ ^ ^§ ^ ^ 塊〇’就是位在邏輯區 貞在這個例子,第一個矣薛杜山沾广 序表分段的是表頭718接著表裏參 順序表分段71卜 定址參數Χ 2序表分段7 1 4指出的第一個資料分段,就是順序表7】4 之/數X資料分段的第.一値代表物,放置在邏輯區塊i (J2〇) ^因此搜尋邏輯區塊72 0來定址,含有表號碼設定指 者,序表714之參數X資料分段表頭724的第一個代表物。 被定址表頭指出參數X資料分段73〇的位置。相關於順序表 Π4之第二個和第三個資料分段沒有表示出來。 知群表71 6指出的第二個和第三個順序表分段能夠類似 的來疋址’就是藉由族群表指定的順序尋找表頭(7 2 6, 722) ’然後使用表頭來定址第二個(726)和第三個(732) 順序表分段。在所給順序表的條目只參考到含有指著相同 所給順序表表頭的資料分段代表物。因此例如,一些相關 於不同順序表的資料分段,能夠在同一區塊被定址。當透 過丨員序表去重新組合目“物時,無論如何’這些共用相同 順序表分段之外的代表物會被忽略。 在具體實施例,資料搜尋列表被用來增進處理非揮發性 記憶體設備的效能。當使用在電腦系統,搜尋列表能夠用
第17頁 •44 07 6 2 I五、發明就~--Γ 來處ϊ里非揮發性記憶體裏的資料儲存。在電腦系統的起始 $間’資料搜尋列表被建立在RAM,並且在寫和拭除的適 當期間被更新^資料搜尋列表對特定區塊提供指標以及相| 關所選表頭的偏移,所選表頭用於含有特定指定器 料。 貝 在具體實施例,資料搜尋列表使用指定器當作資料索 ^而在一個可替代的具體實施例,資料搜尋列表使用指 =器和型式當作資料索引。後一個具體實施例允許使用非 $ $的指定器只要指定器和型式的組合是特殊的□此外, 1個具體實施例允許快I尋找,根據資料型式而 料指定器。 貝 用來建立資料搜尋列表 3。起始開始於步驟8】〇。 尋找有效的單一代表物表 頭、以及族群表表頭β資 分段被忽略。 過程的具體實施例,被描繪在圖 在步驟82 0,實體區塊被掃描, 頭、順序表表頭、多代表物表 料分段被忽略。類似的,順序表 早一代表物表頭 主± / ικ外衣表頭、多代表物表頭、或斿羝 J表頭被找到(步驟83〇),接著在步驟m,相頭: 2區塊;碼和資料型式(例如,邏輯區塊。、參數X),: 柏:於搜亏列表二在具體實施例,指定器是數*,這數字 印:表f的位i ’而不是儲存於搜尋列表的-個 B ^ …果1指定器被用來計算搜尋列表裏格 的位置。而相關於這個指定器的邏輯區塊號' 接者會被儲存在搜尋列表的所計算位置。實
第18頁 4407 6 2 I五、發明說明(14) ;施例,型式沒有被儲存於資料搜尋 丨搜尋列表可以明白的儲存,表頭相關^咨^替代的,資料 塊號碍、以及指定器。掃描過程會持婧 '丨料型式' 邏辑區 址,然後過程被終結在步驟8 9 〇 β ”^不再有表頭被定 資料搜尋列表為族群表目標物、壞 目標物、以及單一代表目標物,指出表目標物、多代表 數X ,資料搜尋列表能夠被起始查閱,碩。為了要回復參 性記憶體每個區塊的表頭。各別的資 不产掃描非揮發 不被歸類在搜尋列表。 〃'刀段和順序表分段 為了快速決定區塊裏的灰效空間, I j RAM。邏輯區塊表提供邏輯對實體區 轉°塊表被維護在 在起始期間被建立。在起始期間,每:轉換 決定有效空間總數以及無效空間總數'塊被掃描以 的空間)。每個非揮發性記憶體設備裏區塊 儲存在RM的邏輯區塊狀態表。對隨後 絲 ° ^體设備的操作,邏輯區塊表能夠接著被更 ήνΓ 。 '在具體實施例,寫入資料的儲存結構自動被選擇,能夠 被放ί在f揮發性記憶體的空間最小總數被當做單位顆 粒。含有取大有效空間的區塊被選擇為候選,用來寫入新 目榼物。用於資料儲存之儲存結構的選擇,是根據相對於 數個^,點的資料尺寸(Z)以及候選區塊裏的有效空間。 如果多個代表物的預定最小數目(m)與伴隨負擔能夠被 放進一個顆粒單位(g),多代表物結構被選擇。也就是
第19頁 ‘44 07 6 2
五 '發明說明(15) 負擔· g ’多代表物資料結構能夠被選擇。因此如果 (g-負擔)/m 2 z,多代表物資料結構將被選擇。 在圖4描繪的具體實施例,負擔包括1位元組代表物尺 寸、1位元組代表物數目、以及每個代表物半個位元組。 在g = 1 2 8位元組和m = 3,多代表物單位結構能夠被選定須要 z小於或等於 (g-負擔)/m = (128-(l+l+. 5(3))/3 = 124. 5/3 = 41, 5位元組。 因此40位元組尺寸的資料,例如,能夠被儲存在多代表物 結構。 在多代表物結構,代表4九的數目不被m限制。當在多代 被選擇,代表物尺寸402就是Z,並且計算代表物 =目404(k)的值小於或等於int((g_負擔)/2),,,int"表 不玉數函數,比如,,int(x)"會得回x的整數部分。 在這個例+,因為狀態領域,負擔是代表物數目的函 f矣-&^同一個結果,1^的計算就是1111;((&-]?)/(2 + 〇), 每個不代定部/分,無關代表物的數目,而u示加到 ::且”物負擔的總數。多代表物負擔的固定部分是2位 子%位Λ代表物負擔是.5位元組。因此,在這個例 物。70 且,數在多個代表物結構可以有多到1 6個代表 料能夠被儲存為單一代 一代表物尺寸》在具體 示為最小配置單位的數 元組,4單位/分段的最 如果不適合多個代表物結構,資 表目標物,但是必須沒超過最大單 貫施例,&大單一代表物尺寸被表 目。如此如果單位顆粒(g)是128位
4 4 07 6 2 五、發明說明(16) 大單一代表物尺寸(s)指出’如果資料尺寸超過512位元_ 組,資料必須被分段開如果資料尺寸小於候選區塊襄的 有效空間(z)總數,資料也必須被分段開。如果資料尺寸 (z )小於5 1 2位元組,接著資料能夠被儲存為單一代表物單 位’但是必須有足夠有效空間。數學上表示,單一代表目 標物結構被選擇,但是必須ζ · οι i n ( 2 ),其中如果a · b,m i n (a,b) = a或相反時則為b。 如果資料尺寸大於最大單一代表物尺寸, 分段開β有可能,資料尺寸將和最大單—本' "u '子 , ^ 代表物尺寸一 大。使用資料分段和 '個.順Λ序表來儲存資粗 ’ 生的順序表尺寸不超過最大順序表尺寸/否,必須要所產 會用資料分段、順序表分段和一個族群表。則,儲存資料 在具體實施例,資料結構的使用是自 描繪用來選定儲存之目標物結構的程序,=&擇的。圖9 被使用來在非揮發性記憶體起始之資 =個目標物結構 寫入資料的請求被接收。一般非揮發性:;f ^在步驟9!0 塊。在儲存系統的使用期間,區塊 ^隐體包含數個區 總數。t儲存—個新的資料目標物, =同的有效空間 數的區塊在步驟9 1 2被選定。 攻大有效空間總 是否z客(顆粒-負擔)/代表物 9 2 0/接,在步驟m多代表物結構^皮小目:決定在步驟 則程序繼續步驟9 3 0。 、疋為儲存結構。否 是否z ·最大單一代表物尺 步驟932單一代表物結構被選定皮=:驟930,接著在 代表物結構配置最 4407 6 2 I五、發明說明(π)
第22頁 44〇T 6 2 I 五、發明說明(18) ~~~~~~~—~- 失效》在步驟1 0 6 0,對目標寫入的狀態被改變為"有效"。 最後,資料搜尋列表在步驟1 〇 7 0被更新。 寫入多代表目標物的程序是類似的,被描繪在圖 11-12,開始於步驟ιπο。在步驟1112決定是否有先前存 在有著相同的指定器的多代表目標物。如果是,接著程+序 能夠使用先前存在的多代表目標物裏的條目。 如果先前存在的多代表目標物有著相同的名稱存在,程 序繼續步驟11 1 2。步驟丨丨丨4決定是否】)z ·最大有效空間 總數對每個代表物,以及2 )對於目標物是否最少剩一個條 目可被寫入》如果兩侗條件·符合,接著這個寫入操作能夠 使用多代表目標物條目。否則,在步驟丨i 2 〇 _丨j 32新的多 代表目標物必須被寫入。 藉著搜尋有足夠有效空間去儲存多代表目標物的區塊, 新多代表目標物程序開始在步驟丨丨2 〇 ^在一個可替代的具 體實施例,含有最大的有效自由空間總數被選擇。 士在步驟1 1 2 2多代表目標物表頭被寫入Μ配置中"的狀態 ^ °在步驟1 1 2 4狀態被改變,指出表頭被成功寫入。步驟 1 1 3 0起始寫入多代表物資料結構。 - ^在步驟1 1 4 0多代表物結構的第一個可用條目被選定,用i 來儲存多代表目標物。參考圖1 2,在步驟1 2 1 〇所選條目狀 癌破改為,1配置中,’。步驟丨22〇起始寫入目標物到所選條 目 在步驟1 2 2 2所選條目的狀態被接著改為"有效”。 ,標物的代表物現在已經被儲存β步驟丨2 3 〇決定可用條 目是否就是目前的多代表目標物結構的第一個條目。如果
第23頁 丨五、發明說明(19) 丨 不是,程序繼續步驟1 232去失效多代表目標物之先前的條 目。接著更新多代表目標物的程序被完成在步驟1290 ° | 如果所選條目是多代表目標物的第一個條目,接著附加 | 的步驟1240-1270被使用去失效先前有相同指定器的目標 I 物並且有效新多代表目標物^在步驟1240多代表目標物的i 狀態被改變去指定11配置11狀態。在步驟1 2 5 0任何先前有相 ; 同指定器的目標物被失效(狀態="無效")。在步驟1 2 6 〇新 多代表目標物的狀態接著被改變為”有效。在步驟127〇 新多代表目標物的建立須要更新搜尋列表。在步驟丨2 9 〇, 儲存多代表目標物的程序被.完成在步驟1 2 9 0。 圖1 3-1 5描繪寫入目標物就是多資料分段的程序,被寫 入資料的尺寸,z,超過可配置到任何分段的最大尺寸 s*g °在具體實施例,s是最大單一代表目標物尺寸表現 同數個顆粒。程序開始於步驟1 3 1 0。 ° 在步驟1320選擇有足夠自由空間的區塊以寫入族群表。i 在具體實施例,沒有目標物被允許超過最大尺寸,s:lcg, 因此任何能夠儲存尺寸s*g目標物的,都能夠被選擇當做. ,存知群表的區塊。在具體實施例,含有最大總數之 . 自由空間的區塊被選定。 有效 在步驟1 322 ’族群表表頭被寫入”配置中"的狀態。 '
族群#•主-X @入 I 井、表頭之後,在步驟1 324狀態被改變為”表頭寫入。! j驟133G决定目前的區塊是否有足夠空間,去建立1 ' 順库矣八1Ιέ] 认广刀#又。如果這對目標物是第一個順序表分段,目4 i
的區堍铋θ步丄 曰刖 I 就疋建立族群表的同一個區塊。否則,目前的區塊 07 6 2 五、發明說明(20) ‘丨 :就是寫入最後資料分段的區塊。 I 如果目前的區塊沒有足夠空間’有最多有效空間的區塊| I被選擇為順序表區塊,用來在步驟1 3 3 2寫入下一個顺序表I 分段。否則,目前的區塊被選擇,用來在步驟1 334寫入下 一個順序表分段。 | ί 一旦順序表區塊已經被選擇,在步驟1 3 4 0順序表分段被i 寫入11配置中11的狀態。成功寫入表頭之後’在步驟1 3 4 2狀 I態被改變為"表頭寫入"。 圖1 4描繪寫入每個資料分段的程序。在具體實施例,儲 I 存資料是借著儘可能選擇.大*的分段,直到目標物完全被儲 存。這有三種可能性:ζ ,g<z ’或z>s*g。 步驟1 4 1 0從剩餘資料遠擇尺寸k的分段,此處k是以下兩 者中較小的,1 )最大分段尺寸,s ’或2 )剩餘被儲存 資料總數,z。
步驟1 420決定寫入最後資料分段的區塊是否有足夠空 間。如果剩餘被儲存資料總數小於最小分段尺寸(例如,. 一個顆粒單位,g ),則資料分段仍然須要一個顆粒單位用 來儲存,既使z · g。如果g<z · S*g。則必定有最少j個顆 粒單位可用來儲存,此處j為整數且Z •jjfcg .sjjcg。如果 I 2>S*g ’則必定有可用足夠空間去儲存尺寸5;(^的資料分 | 段。 丨
I 如果真是這樣則寫入最後資料分段的區塊被選擇,用來| 在步驟1422寫入下〜個實料分段。(如果對所給目標物這 是第—個資料分段,則砸序表分段所在區塊被考慮成為 • 6 2 五 '發明說明(21) · i
”寫入最後資料分段”的區塊)否則有足夠空間用來寫入下 丨 一個資料分段的另一個區塊被選擇在步驟丨424。 I 在步驟1 4 3 0,資料分段表頭被寫入,,配置中μ的狀態。在I 步驟1 4 3 2狀態被改變為"表頭寫入"^步驟1 4 4 0起始寫入資i 料分段。寫入資料分段之後,在步驟丨442資料分段的狀態 被改變為"配置"。接著資料分段的順序表條目被寫入"有 致”的狀態。程序接著繼續在圖1 5。 如果是 夠被加 滿,程 資料。 目前順 圖1 3的 建立一 在步 !53〇 目 點所有 和順序 關之每 接著 失效。 少段, 標物的 圖1 5 1步驟1 5 1 〇決 ,程序繼續於步驟 入目前的順序表分 序能夠繼續於圖1 4 如果目前的順序表 序表分段表頭的狀 步驟1 3 3 0之後,程 個新的順序表分段 驟1510如果沒有任 前順序表分段表頭 目標物的資料分段 表分段表頭所定址 個資料分段的狀態 在步驟1 5 4 0任何目 在步驟1 5 4 2相關於 將它們的狀態改變 目前版本之族群表 定是否任何剩餘資料要被儲存。 1 5 2 0,去決定是否另一個條目能 .段*。如果目前的順序表分段未 的步驟1 4 1 〇 ’來繼續分段和儲存 分段沒有多餘空間則在步驟157〇 態被設定為"配置"。接著在回到 序繼續分段和儲存資料分段,去 〇 何剩餘資料要被儲存,在步驟 的狀態被改變為"配置"。在這個 已經被儲存,並且能夠被族群表 。步驟1532改變目標物族群表相 為”有效”。 標物之先前存在的"彳效,『版本被 目標物的目前版本之所有順序表 為"有效"β接著在步驟1 5 5 0對目 狀態改變為Μ有效著在步驟 440162 I五、發明說明(22) , 1 5 6 0搜尋列表(例如,資料搜尋列表)被更新3接著在步驟 1 59 0寫入數個資料分段的目標物程序被完成。 失效有效目標物之先前版本的程序,就如同圖1〇的步驟 1050,圖12的步驟1250,圖15的步驟154〇的設定會因目护 物結構而不同。去認可有效之先前版本,目標物的表頭必 須有有效的狀態以及最少—個指定器指出資料被寫入。如 果目標物的兩個版本有不同目標物結構,前一個版本必須 全部被失效。 丨標 \ 效 ,段 U 致 修 標 表 導 響 和 何 失效多代表目標物或 t無效"。失 分段,每個 後的族群表 物狀態為 每個資料 ,以及最 建立和更 標物之先 單一代表 改多代表 物結構的 目標物或 致先前版 分段目標 —些資料 族群表必 ,在特定 達成這個 單一代表目標物只須要改變這些目 效-目標物,無論如何,須要失 順序表分段條目’每個順序表分 新單一代表 前版本。因 目標物先前 目標物將導 失效,以便 多代表目標 本或相關目 物的修改可 分段s改變 須被級聯》 位置順序表 目的的一個 目標物及多 此例如,修 版本的失效 致不管是先 寫入新版本 物之被選擇 標物之代表 以只影響一 ,無論如何 因為快閃記 分段和族群 方法,是每 代表目標物一般是取代 改單一代表 *並建立新 前條目或甚 的目標物。 代表物的修 物的摧毀。 個特定資料 ’對被影響 憶體的特性 表不能被修 —次都去重 目標物將導 的目標物。 至多代表目 因此單一代 改,一般將 分段或只影 順序表分段 ,無論如 改。 新寫入目標
第27頁 44 07 6 2 I五、發明說明(23) —-—- 物。這樣的技術,無論如何,是没有效率的,即使口有很 少總數的資料必須被更新。快閃記憶體的特性傾向鼓勵更 |新儘可能少的資料,以避免拭除和複製的時間消耗。在具 丨體實施例,只有受影響順序表分段,族群表,和 分段 i被取代。 ' 對於目標物的典型修改包括附加到目標物結尾和取代目 標物的一些部分《圖16描繪用來附加到目標物結尾的程 序。在這個目標物,最後順序表分段有足夠條目空間去容 納更多資料分段。 在步驟1 6 1 0定址目標物.的·最後資料分段。步驟1 6丨2附加 從剩餘資料選擇尺寸k的分段(z)。在步驟162〇定址有足夠 儲存空間容納分段的區塊。步驟1 6 1 2和1 6 2 0在相同限制下 實行如同圖14的步驟1410和1424。 I 步驟1 6 2 2在所選區塊相關於順序表的被附加有效分段的 數目被計數。在步驟1 6 3 0接著順序表條目被寫入”配置中11 的狀態。在步驟1 6 3 2接著順序表條目狀態被改變為》條目 |寫人"。 在步轉1 6 3 4 ’資料分段表頭被寫入,指出資料分段的狀 態是11配置中"。在步驟1 6 3 6狀態被改變為',表頭寫入"。步 驟1 64 0起始寫入資料分段本身。 寫入資料分段之後’在步驟1 6 4 2資料分段的狀態被改變 為π配置11。接著,在步驟1 6 4 4資料分段的狀態被改變為11有 效"的狀態。 步驟1 6 5 0決定是否有任何剩餘資料要被附加。如果有,
第28頁 ^ 44 07 6 2 五、發明說明(24) —--;- 步驟1 61 2 -】6 4 2被重藉亩&丨,力士 / , . 後直到,又有任何剩餘資料要被附加。 在賁料已經被储存之後,在步驟167()新順序表條目的狀態 被改f為。g目前的順序表存在有足夠空間時附加 的程序被結束在步驟1 6 9 〇。 圖1 7 -〗8描續'以一個a 〜、 σ 、 個刀奴對一個分段的方式(例如,只以 二:個:段取代一個分段)取代部分分段目標物的程序。 夺二么:::代的資料分段將被失⑯。它們相關的順序 ί二新寫入取代資料分段的位置。類似的,族 料必須被重新寫人以反映順序表分段的新位置。 有ί : : 5 Ϊ取代與相對暮序表分段被定址在步驟171 °。 =夠工間去儲存新族群表的區塊被定址在步驟⑺2 =714新族群表表頭被寫入,,配置中”的狀態。在 1 71 6新族群表的狀態被改變為,,表頭寫入"。 厂 ^驟1720從舊族群表複製不受 含有順序表分段之代表物資訊的新族群表到不 鲆表條目产曰出沒有改變位置的順序表分段響的族 有超過-個的順序表分段被定址在同一田目同目標物 消除-個順序表分段,,必須對位於同 所:取代程序 連續順序表分段改變代表物資訊(例如 又有目標物的 :2 :指出沒有改變之順序表分段的其他的因此步驟 目,更新代表物資訊。 爻的私群表條 :730到1 844被應用到每個 173〇為所選舊順序表分段,定址含有=。步驟 表分段的區塊。在牛妒]鉍 間去寫入順序 在步則732新順序表分段表頭被寫入"配 4407 S 2 五、發明說明(25) ' ! 置中M的狀態。在步驟1734新順序表分段的狀態被改變為"i 表頭寫入"。在步驟1736複製指著資料分段不變之舊順序 」 表條目(不含代表物資訊)到新順序表。接著在步驟丨738這 些條目更新它們的代表物資訊。當對不變之資料分段計算 代表物資訊時’對於各別順序表條目之代表物資訊的更 新’沒有計數被取代的資料分段。
I 藉著在步驟1 8 1 0選擇一個取代資料分段程序繼續於圖 1 8。在步驟1 81 2選擇有足夠空間去寫入取代資料分段的區 塊。在步驟1 8 1 4資料分段表頭被寫入”配置中Η的狀態。在 步驟1 814和新順序表分铁二起處理資料分段之表號^ (312)也被寫入,就如同表頭的一部分。在步驟丨^^資料 分段的狀態被改變為Μ表頭寫入"。 步驟1 820起 就是將代表物 前,步驟1822 步驟1 8 3 0決 且所選擇順序 去繼讀取代相 選擇順序表分 序表分段之前 (1 842 ),並且 資訊更新新族 如果不再有 序表分段的狀 始取代資料分段的寫入 資訊寫入指著這個資料 會接著計算這個分段之 定是否有任何附加資料 表分段沒有滿(1 8 4 〇 ), 關於所選擇順序表分段 段滿了( 1 840 ),在回^ ’新順序表分段的狀態 在步驟1 844,相對這個 群表。 資料分段要被儲存,在 態被接著改變為',配置„ °在步驟1 824之前’ 分段的順序表條目之 代表物號碼。 要被儲存。如果有而 程序回到步驟1 8 1 〇, 的資料分段。如果所 步驟1 7 4 Q去建立新順 被接著改變為"配置” 順序表分段,以這個 圖1 9的步驟I 9 1 0新順 ,並且在步驟1 9 2 0,
第30頁
4407 6 2 丨五、發明說明(26) ' | 丨相對這個順序表分段,以這個資訊更新新族群表。在步驟 i i 1 930全部被取代的資料分段、順序表分段、以及舊族群表 I |的狀態接著被改變為"無效在步驟1990的完成程序之 I |前,在步驟1940新的資料分段、順序表分段、以及族群表 j 的狀態接著被改變為”有效"β ! 上面描述的寫入和修改資料之具體實施例使用一些狀態
I 值’以便在寫入和修改操作期間發生電源失靈的情況時, 能夠回復到先前的狀態。在寫入和修改程序期間,順序表 |本身、在順序表指定的每個資料分段、族群表、以及順序 i表的每個條目的狀態在特定.點被改變D這數個狀態值能夠 !決定疋否其中一個程序被中斷以及在那一個點被中斷。如 丨 果寫入和修改程序沒有被完成,非揮發性記憶體能夠被儲 I存在已知的狀況。如果電源失靈回復是不須要的,中間步丨 驟就不須要被追縱。 最終非揮發性記憶體會到達相對於無效資料總數的預定 臨界點。在具體實施例,.臨界點是根據所給區塊裏的無效. 資料總數。可替代的,臨界點可以根據非揮發性記憶體裏 所有無效資料總數。 丨 經過回收”程序無效資料使用的空間能夠被回復,益且 丨使它有效而使用在儲存。圖2〇描繪回收程序。在具體實施; 丨例,一旦有效空間的總數掉到低於預定臨界點,回收程序 丨 被觸發C步驟20 20 )。否則如步驟20 22指示回收不被觸發,丨 在具體實施例,藉著從含有無效資料區塊的集合選擇有j 最多無效資料總數的區塊,回收程序排列回收區塊的優先;
第31頁 44Q7Q2 五、發明說明(27) 順序(步驟2 0 3 0 )。在步驟2 0 3 2 ’所選區塊裏的有效目標物 從所選區塊被複製到空區塊U 6。 正當在複製有效目標物時,無效目標物先前使用的空間 被壓掉,因為有效目標物的表頭是相鄰的,並且目標物本 身也類似的被放置而和其它目標物相鄰如圖2所描緣β因 此無效目標物(以及它們相對的表頭)先前使用的空間被回 復,導致範圍2 3 0的尺寸增加。 在步驟2040以所選區塊的邏輯區塊號碼更新空區塊丨16 的區塊資訊結構2 4 0。接著在步驟2 〇 42所選區塊被拭除並 且變成新的空區塊,當.回另—區塊時會被使用。 口 =具體實施例,如步驟2010所指示,回收程序的被觸發 收r I應寫人或修改的命令。—旦被觸發在步驟2020,回 複步:203。—20 5。直到有足夠自由空間去實行要 久的4M乍,如步驟2〇50所決定。 在别面詳細的描诚,★益_ 描述。可以針盆I 本發月以特定範例的具體實施例被 廣精神# &圊;门=同的修改和變化而不偏離本發明的寬 明竹和靶圍如同申嗜皇 配合,冬傲筇π &明專利靶圍所設定。規格和圖式是, 田做S兄明而不是限制的想法。
第32頁

Claims (1)

  1. 44076 2_ i六、申請專利範圍 | 1. 一種在非揮發性記憶體儲存目標物的方法,包括下列 步驟: a) 配置在非揮發性記憶體之可拭除區塊裏的空間給 目標物,其中所配置空間是在單一區塊; b) 儲存目標物之第一個代表物在所配置空間;並且 c) 儲存目標物之替代的第二個代表物在該配置空 間,而沒有拭除所配置空間裏的任何東西,其中目標物之 每個代表物有固定尺寸,其中所配置空間超過數個的固定 尺寸。 2. 如申請專利範圍第1.項_之方法,還包括下列步驟: d) 更新所配置空間裏的狀態資訊去反映第二個代表 物替代了第一個代表物。 3. 如申請專利範圍第1項之方法,還包括下列步驟: d)儲存表頭在所配置空間的同一區塊裏,其中該表 頭指定同一區塊裏所配置空間的位置。 4. 如申請專利範圍第1項之方法,其中該非揮發性記憶 體是快閃電氣拭除式可編程唯讀記憶體。 5. —種方法,包括下列步驟: a) 接收資料,用來儲存在包括數個區塊的非揮發性 記憶體; b) 選擇資料儲存結構是根據資料尺寸(z )、代表物 的最少數目(m)、最大單一代表物的尺寸(s*g)、以及配置 的顆粒(g ); c) 儲存資料在非揮發性記憶體裏的所選結構。
    第33頁 44 07 6 2 I六、申請專利範圍 6. 如申請專利範圍第5項之方法,其中該步驟b)還包括 下列步驟: i )選擇多代表物結構,如果z S (g-負擔)/m,其中 該負擔是多代表物結構裏m個代表物的負擔所須空間總 數。 7. 如申請專利範圍第5項之方法,其中該步驟b)還包括 下列步驟: i )選擇單一代表物結構,如果z · s * g,s表示單位 顆粒的數目。 8. 如申請專利範圍第丄現之方法,其中該步驟b)還包括 下列步驟: i )將資料分段成數個資料分段,如果z>s*g,s表示 單位顆粒的數目。 9 .如申請專利範圍第8項之方法,其中該步驟c)還包括 下列步驟: i )儲存資料使用順序表指出資料分段的順序和位 置,如果順序表尺寸沒有超過最大順序表尺寸;並且 ! i i )為每個資料分段和順序表儲存表頭,其中該表 ! '頭位於和它相關之資料分段和順序表的同一區塊,其中在
    第34頁 i六、申請專利範圍 ί括下列步驟: i )使用順序表分段和族群表儲存資料,如果順序表 |尺寸超過最大順序表尺寸,其中該順序表分段指出資料分 i :段的順序和位置,其中該族群表指出順序表分段的順序和 i 位置;並且 i i )為每個資料分段、順序表分段、和族群表儲存 表頭,其中該表頭位於和它相關之資料分段、順序表分 段、和族群表的同一區塊*其中在所給區塊裏,表頭被連 續的儲存從所給區塊的第一盡頭進行到所給區塊的第二盡 頭,其中該表頭指出的目.標.物被連續的儲存,從所給區塊 的第二盡頭進行到所給區塊的第一盡頭。
    第35頁
TW088106370A 1998-04-21 1999-06-01 Dynamic allocation for efficient management of variable sized data within a nonvolatile memory TW440762B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/063,954 US6226728B1 (en) 1998-04-21 1998-04-21 Dynamic allocation for efficient management of variable sized data within a nonvolatile memory

Publications (1)

Publication Number Publication Date
TW440762B true TW440762B (en) 2001-06-16

Family

ID=22052575

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088106370A TW440762B (en) 1998-04-21 1999-06-01 Dynamic allocation for efficient management of variable sized data within a nonvolatile memory

Country Status (7)

Country Link
US (2) US6226728B1 (zh)
EP (2) EP1619585A3 (zh)
KR (1) KR100389241B1 (zh)
AU (1) AU3864399A (zh)
MY (1) MY122440A (zh)
TW (1) TW440762B (zh)
WO (1) WO1999054824A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443162B2 (en) 2005-01-21 2013-05-14 Qualcomm Incorporated Methods and apparatus for dynamically managing banked memory

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3345628B2 (ja) * 1997-07-11 2002-11-18 アネックスシステムズ株式会社 データ格納及び検索方法
US6008739A (en) * 1998-03-09 1999-12-28 Motorola, Inc. Increasing the size of memory available for storing messages in response to the user reading advertisements in a selective call receiver
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US7099898B1 (en) * 1999-08-12 2006-08-29 International Business Machines Corporation Data access system
KR100586031B1 (ko) * 1999-12-23 2006-06-01 브이케이 주식회사 비휘발성 메모리를 이용한 실시간 데이터베이스 운용방법
FR2812736B1 (fr) * 2000-08-04 2003-12-19 Near Technologies Systeme de stockage virtuel
JP3726663B2 (ja) * 2000-09-07 2005-12-14 日産自動車株式会社 電子制御装置の制御データ記憶装置
US6804763B1 (en) * 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US7111141B2 (en) * 2000-10-17 2006-09-19 Igt Dynamic NV-RAM
US8550922B2 (en) 2006-03-03 2013-10-08 Igt Game removal with game history
FR2818770A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant
US6954765B2 (en) * 2000-12-30 2005-10-11 Intel Corporation Updating a file in a fragmented file system
US8009667B1 (en) * 2001-01-16 2011-08-30 Wi—LAN, Inc. Packing source data packets into transporting packets with fragmentation
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6571326B2 (en) * 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
EP1313020A1 (fr) 2001-11-19 2003-05-21 EM Microelectronic-Marin SA Architecture d'un circuit intégré pour carte à puce et procédé d'allocation mémoire associé
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
KR100439507B1 (ko) * 2002-03-18 2004-07-09 삼성전기주식회사 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
US7035987B2 (en) * 2002-07-02 2006-04-25 Intel Corporation Managing storage in processor-based systems
AUPS333502A0 (en) * 2002-07-03 2002-07-25 Aristocrat Technologies Australia Pty Limited Gaming machine power fail enhancement
US7130979B2 (en) * 2002-08-29 2006-10-31 Micron Technology, Inc. Dynamic volume management
US6928531B2 (en) * 2002-08-29 2005-08-09 Micron Technology, Inc. Linear and non-linear object management
US6968439B2 (en) * 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
US6970969B2 (en) * 2002-08-29 2005-11-29 Micron Technology, Inc. Multiple segment data object management
US6895486B2 (en) 2002-08-29 2005-05-17 Micron Technology, Inc. Linear object management for a range of flash memory
US20040078521A1 (en) * 2002-10-17 2004-04-22 International Business Machines Corporation Method, apparatus and computer program product for emulating an iSCSI device on a logical volume manager
US7007049B2 (en) 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7082512B2 (en) * 2002-11-21 2006-07-25 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US20040186975A1 (en) * 2003-03-20 2004-09-23 Texas Instruments Incorporated Flash memory data structure and methods of accessing thereof
US7185029B1 (en) * 2003-06-27 2007-02-27 Unisys Corporation Method and apparatus for maintaining, and updating in-memory copies of the first and second pointers to reference the new versions of the first and second control structures that indicate available and allocated portions of usable space in the data file
CN1571415A (zh) * 2003-07-17 2005-01-26 华为技术有限公司 一种封装数据流的方法
US7181672B2 (en) * 2003-09-25 2007-02-20 Intel Corporation Method, system, and apparatus for supporting power loss recovery in ECC enabled memory devices
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7716413B2 (en) * 2004-02-15 2010-05-11 Sandisk Il Ltd. Method of making a multi-bit-cell flash memory
US8019928B2 (en) * 2004-02-15 2011-09-13 Sandisk Il Ltd. Method of managing a multi-bit-cell flash memory
US20050254071A1 (en) * 2004-05-13 2005-11-17 Jun He Image rescaling method
US9535624B1 (en) * 2004-09-13 2017-01-03 EMC IP Holding Company LLC Duplicate management
US20060101192A1 (en) * 2004-11-09 2006-05-11 Zilavy Daniel V Systems and methods of nonvolatile memory management
US7472309B2 (en) * 2004-12-22 2008-12-30 Intel Corporation Methods and apparatus to write a file to a nonvolatile memory
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060179210A1 (en) * 2005-02-04 2006-08-10 Texas Instruments Incorporated Flash memory data structure, a flash memory manager and a flash memory containing the data structure
JP4748708B2 (ja) * 2005-03-18 2011-08-17 ルネサスエレクトロニクス株式会社 半導体装置
KR20060108431A (ko) * 2005-04-13 2006-10-18 삼성전자주식회사 가변적인 동적 메모리 관리 방법 및 이를 포함하는임베디드 시스템
KR100703753B1 (ko) 2005-04-14 2007-04-06 삼성전자주식회사 파일 시스템 관리 장치 및 방법
US8645313B1 (en) * 2005-05-27 2014-02-04 Microstrategy, Inc. Systems and methods for enhanced SQL indices for duplicate row entries
US20080162782A1 (en) * 2005-06-15 2008-07-03 Nagarajan Suresh Using Transacted Writes and Caching Mechanism to Improve Write Performance in Multi-Level Cell Flash Memory
US20070011214A1 (en) * 2005-07-06 2007-01-11 Venkateswararao Jujjuri Oject level adaptive allocation technique
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
EP1777627B1 (en) * 2005-10-13 2012-03-07 Research In Motion Limited Data storage methods and systems for use on a mobile device
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7958300B2 (en) * 2005-10-13 2011-06-07 Research In Motion Limited Data storage methods and systems for use on a mobile device
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20080276036A1 (en) * 2005-12-21 2008-11-06 Nxp B.V. Memory with Block-Erasable Location
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法
KR100706808B1 (ko) * 2006-02-03 2007-04-12 삼성전자주식회사 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법
US7951008B2 (en) * 2006-03-03 2011-05-31 Igt Non-volatile memory management technique implemented in a gaming machine
US8239869B2 (en) * 2006-06-19 2012-08-07 Condusiv Technologies Corporation Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US9588809B2 (en) * 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8056083B2 (en) * 2006-10-10 2011-11-08 Diskeeper Corporation Dividing a computer job into micro-jobs for execution
GB2439577B (en) * 2006-06-30 2011-12-14 Data Equation Ltd Data processing
WO2008057557A2 (en) 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
US7710972B2 (en) * 2006-12-21 2010-05-04 Intel Corporation Discrete table descriptor for unified table management
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. 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) * 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8209461B2 (en) * 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8166267B2 (en) 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
AU2008308549B9 (en) * 2007-10-05 2012-10-18 Condusiv Technologies Corporation Solid state drive optimizer
US8108638B2 (en) 2009-02-06 2012-01-31 International Business Machines Corporation Backup of deduplicated data
US8799572B2 (en) 2009-04-20 2014-08-05 Microsoft Corporation Sliding-window multi-class striping
US9396104B1 (en) * 2010-03-22 2016-07-19 Seagate Technology, Llc Accessing compressed data of varying-sized quanta in non-volatile memory
US10114746B2 (en) 2010-10-14 2018-10-30 Micron Technology, Inc. Nonvolatile storage using low latency and high latency memory
US9747363B1 (en) * 2012-03-01 2017-08-29 Attivio, Inc. Efficient storage and retrieval of sparse arrays of identifier-value pairs
US9690642B2 (en) 2012-12-18 2017-06-27 Western Digital Technologies, Inc. Salvaging event trace information in power loss interruption scenarios
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
CN104516792A (zh) * 2013-10-08 2015-04-15 杰发科技(合肥)有限公司 一种数据备份方法及装置
US10248556B2 (en) * 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US10168937B2 (en) 2014-09-25 2019-01-01 Hewlett Packard Enterprise Development Lp Storage space allocation
US9652179B2 (en) * 2014-12-01 2017-05-16 Macronix International Co., Ltd. Memory system and a data managing method thereof
US20160179399A1 (en) * 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
JP6613568B2 (ja) * 2015-01-19 2019-12-04 富士通株式会社 処理プログラム、処理装置および処理方法
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
CN108509353A (zh) * 2018-03-14 2018-09-07 清华大学 基于裸闪存的对象存储构建方法及装置

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61169941A (ja) 1985-01-22 1986-07-31 Sony Corp 記憶装置
EP0376285B1 (en) 1988-12-27 1994-03-09 Nec Corporation Microcomputer having electrically erasable and programmable nonvolatile memory
US4965828A (en) 1989-04-05 1990-10-23 Quadri Corporation Non-volatile semiconductor memory with SCRAM hold cycle prior to SCRAM-to-E2 PROM backup transfer
EP0675502B1 (en) 1989-04-13 2005-05-25 SanDisk Corporation Multiple sector erase flash EEPROM system
JPH04221496A (ja) 1990-03-29 1992-08-11 Intel Corp 単一基板上に設けられるコンピュータメモリ回路およびコンピュータメモリを消去するためのシーケンスを終らせる方法
US5339411A (en) 1990-12-21 1994-08-16 Pitney Bowes Inc. Method for managing allocation of memory space
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5355464A (en) 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
JP3408552B2 (ja) 1991-02-11 2003-05-19 インテル・コーポレーション 不揮発性半導体メモリをプログラム及び消去する回路とその方法
US5255314A (en) 1991-03-29 1993-10-19 At&T Bell Laboratories Switch adjunct integration arrangement
GB2265734A (en) * 1992-03-27 1993-10-06 Ibm Free memory cell management system
JPH0750558B2 (ja) 1992-09-22 1995-05-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリ
JP2816062B2 (ja) 1992-10-05 1998-10-27 株式会社東芝 メモリセルの情報の消去方法
US5351216A (en) 1993-03-05 1994-09-27 Microchip Technology Incorporated Premature termination of microcontroller EEPROM write
US5353256A (en) 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
US5424992A (en) 1993-08-25 1995-06-13 Texas Instruments Incorporated, A Delaware Corporation Method and device for detecting and controlling an array source signal discharge for a memory erase operation
JP3301047B2 (ja) 1993-09-16 2002-07-15 株式会社日立製作所 半導体メモリシステム
US5682497A (en) 1993-09-28 1997-10-28 Intel Corporation Managing file structures for a flash memory file system in a computer
US5424993A (en) 1993-11-15 1995-06-13 Micron Technology, Inc. Programming method for the selective healing of over-erased cells on a flash erasable programmable read-only memory device
JPH07153286A (ja) 1993-11-30 1995-06-16 Sony Corp 半導体不揮発性記憶装置
FR2713803B1 (fr) 1993-12-07 1996-01-12 Gemplus Card Int Carte à mémoire et procédé de fonctionnement.
JPH07226097A (ja) 1994-02-15 1995-08-22 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP3507132B2 (ja) 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5623654A (en) * 1994-08-31 1997-04-22 Texas Instruments Incorporated Fast fragmentation free memory manager using multiple free block size access table for a free list
US5742787A (en) 1995-04-10 1998-04-21 Intel Corporation Hardware reset of a write state machine for flash memory
US5568644A (en) 1995-05-05 1996-10-22 Apple Computer, Inc. Method and apparatus using a tree structure for the dispatching of interrupts
DE29513792U1 (de) 1995-08-28 1995-10-12 Siemens AG, 80333 München Prozessoreinheit
GB2291990A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
US5805929A (en) 1996-01-29 1998-09-08 International Business Machines Corporation Multiple independent I/O functions on a PCMCIA card share a single interrupt request signal using an AND gate for triggering a delayed RESET signal
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5687121A (en) 1996-03-29 1997-11-11 Aplus Integrated Circuits, Inc. Flash EEPROM worldline decoder
JPH09306189A (ja) 1996-05-10 1997-11-28 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JPH1049360A (ja) * 1996-08-06 1998-02-20 Nec Eng Ltd フラッシュメモリへの書き込み方式
US5860124A (en) 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6401160B1 (en) 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US6571326B2 (en) * 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443162B2 (en) 2005-01-21 2013-05-14 Qualcomm Incorporated Methods and apparatus for dynamically managing banked memory

Also Published As

Publication number Publication date
MY122440A (en) 2006-04-29
US6226728B1 (en) 2001-05-01
WO1999054824A1 (en) 1999-10-28
KR20010042905A (ko) 2001-05-25
EP1071996A4 (en) 2003-03-05
EP1619585A2 (en) 2006-01-25
AU3864399A (en) 1999-11-08
EP1071996A1 (en) 2001-01-31
US6839823B1 (en) 2005-01-04
EP1619585A3 (en) 2008-02-13
KR100389241B1 (ko) 2003-06-27

Similar Documents

Publication Publication Date Title
TW440762B (en) Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6401160B1 (en) Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US7783845B2 (en) Structures for the management of erase operations in non-volatile memories
US7624239B2 (en) Methods for the management of erase operations in non-volatile memories
US8171203B2 (en) Faster write operations to nonvolatile memory using FSInfo sector manipulation
US5832493A (en) Flash file management system
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
TWI272483B (en) Non-volatile memory and method with block management system
US8244959B2 (en) Software adapted wear leveling
US8316209B2 (en) Robust index storage for non-volatile memory
US7774392B2 (en) Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US20060168392A1 (en) Flash memory file system
US7779056B2 (en) Managing a pool of update memory blocks based on each block's activity and data order
JP2008508596A (ja) Nvramを使用するメモリ管理のためのシステム、方法、コンピュータ可読媒体、および装置
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
JP4419415B2 (ja) 記録方式
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory
JP3904182B2 (ja) データ管理システムおよびそれを用いたデータ管理方法
Jung et al. A fast mount mechanism for YAFFS2

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees