TWI272483B - Non-volatile memory and method with block management system - Google Patents

Non-volatile memory and method with block management system Download PDF

Info

Publication number
TWI272483B
TWI272483B TW093141373A TW93141373A TWI272483B TW I272483 B TWI272483 B TW I272483B TW 093141373 A TW093141373 A TW 093141373A TW 93141373 A TW93141373 A TW 93141373A TW I272483 B TWI272483 B TW I272483B
Authority
TW
Taiwan
Prior art keywords
block
logical
update
memory
order
Prior art date
Application number
TW093141373A
Other languages
English (en)
Other versions
TW200534092A (en
Inventor
Alan David Bennett
Alan Douglas Bryce
Sergey Gorobets
Alan Welsh Sinclair
Peter John Smith
Original Assignee
Sandisk 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 Sandisk Corp filed Critical Sandisk Corp
Publication of TW200534092A publication Critical patent/TW200534092A/zh
Application granted granted Critical
Publication of TWI272483B publication Critical patent/TWI272483B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Credit Cards Or The Like (AREA)

Description

1272483 九、發明說明: 【發明所屬之技術領域】 ^本發明一般係關於非揮發性半導體記憶體,明確地說, 係關於具有記憶體區塊管理系統的非揮發性半導體記憶 【先前技術】 月b夠非揮發性儲存電荷的固態記憶體㈠寺別是被包裝成 小形狀因Μ的EEPR〇M及快閃EEpRQM)近年來已經成為各 種移動式與手持式裝置(尤其是資訊家f與消費性電子產 )中、用的儲存體。和同為固態記憶體的RAM(隨機存取 記憶體)不同的係’快閃記憶體係非揮發性的,所以,即 使關閉電源後仍可保留其已儲存的資料。另外,和 R〇M(唯讀記憶體)不同的係,㈣記憶體可以和碟片儲存 裝置雷同的方式來進行覆寫。雖然成本較高,不過,利用 快閃記憶體作為大量儲存應用的情形卻越來越普遍。慣用 轉磁㈣體為主,例如硬碟機盘 軟碟)並不適用於移動式與手持式環境中。這係因為碟片 器的體積趨於龐大,容易產生機械故障,而且具有很 广等待時間以及電源需求極高。該些令人討厭的因素皆 于碟片里儲存體無法使料大部份的移動式與攜帶式應 中相反地,快閃c憶體(不論係内建或抽取式卡片的 =)因為具有體積小、耗電低、速度快以及可靠度極高 f所卩#吊’適用於移動式與手持式環境中。 快閃EEPROM與卿R〇M(可電抹除及程式化唯讀記憶 98672.doc 1272483 體)的雷同處係其同樣為可被抹除的非揮發性記憶體,並 且可將新資料寫人或「程式化」至其記憶胞之中。兩者皆 係於場效電晶體結構中利用位於—半導體基板中介於源極 區與沒極區間之通道區上的浮動(未被連接的)導體閉極。 接著便會於該浮動閉極上提供—控制閘極。該電晶體的臨 ,電壓特欲係文控於保留在該浮動閘極上的電荷量。也就 是’對該浮_極上既定的電荷位準而言,必須於該電晶 體被「開啟」前施加—對應的(臨界)電廢至該控制間極, 方能於其源極區與汲極區間產生導通。明確地說,快閃 EEPROM之類的快閃記,隨允許同時抹除全部的記憶胞區 塊。 該浮動閘極能夠保留某個範圍的電荷,所以,可以被程 式化成-臨界電壓視窗内任意的臨界電壓位準。該臨界電 壓視窗的大小係由該裝置的最小臨界料與最大臨界位準 來界定,而該等位準對應的則係可被程式化於該浮動閉極 上的電荷範圍。該臨界視窗通常係相依於該記憶體裝置的 特徵、操作條件、以及歷史資料。理論上,該視窗内每種 不同的、可解析的臨界電壓位準範圍皆可用來代表該記憶 胞的一明確的記憶體狀態。 通常會利用下面兩種機制中其中一者將作為記憶胞的電 晶體程式化至一「經程式化」狀態。於「熱電子射出」 中,被施加至汲極的高電壓會對跨越該基板通道區的電子 進行加速。於此同時,被施加至該控制閘極的高電壓則會 經由一薄的閘極介電質將該等熱電子拉至該浮動閘極之 98672.doc 1272483 上。於「隧穿射出」中,會相對於該基板施加一高電壓給 該控制閘極。依此方式,便可從該基板將電子拉到中間的 浮動閘極。雖然「程式化」一詞於過往係用來描述藉由將 電子射至該記憶胞中於一開始便被抹除的電荷儲存單位中 以便改變記憶體狀態,不過,目前則可與「寫入」或「圮 錄」之類更常見的詞語交換使用。 可以利用下面數種機制來抹除該記憶體裝置。對 EEPROM而言,藉由相對於該控制閘極施加一高電壓給該 基板,致使可於該浮動閘極中誘發出電子,使其隧穿一薄 氧化物進入該基板通道區(也就是,F〇wler_N〇rdheim隧穿 效應),便可電抹除一記憶胞。一般來說,EEpR〇M可以逐 個位元組的方式來抹除。對快閃EEpR〇M而言,可每次電 抹除所有的記憶體或是每次電抹除一或多個最小可抹除區 塊,f中-最小可抹除區塊可能係由—或多個的區段所組 成且每個區段均可儲存5 12個位元組以上的資料。 忒圮憶體裝置通常包括可被安裝於一張卡片上的一或多 個記憶體晶片。每個記憶體晶片皆包括一受到週邊電路 ⑼如解碼器、抹除電路、寫人電路以及讀取電路)支援的 冗憶胞陣列。較精細的記憶體展置還會搭配-可實施智慧 與高階記憶體操作與介接的控制器。 曰# 見7已有彳夕市售成功的非揮發性固態記憶體裝置。該 些記憶體裝置可能係快閃EEpR〇M,或是可採用其它類型 的非揮發性記憶胞。快閃記憶體與系統及其製造方法的範 例揭不於美國專利案第5,〇7〇,〇32號、第5,095,344號、第 98672.doc 1272483 5,315,541 號、第 5,343,063 號、第 5,661,053 號、第 5,313,42l5虎以及苐 6,222,762號。明確地說,具NAND線串 結構的快閃記憶體裝置係描述於美國專利案第5,57〇,315 万虎、弟5,903,495號、弟6,046,995號之中。另外,亦可利用 具有一用來儲存電荷之介面層的記憶胞來製造非揮發性記 憶體裝置。其係利用一介電層來取代前面所述的導電浮動 閘極元件。此等利用介電儲存元件的記憶體裝置已描述於
Eitan 等人於 2000 年 11 月在 IEEE Electron Device Letters, 第21冊,第11號,第543_545頁中所發表的「NR〇M: a Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell」一文中。有一 0N0介電層會延伸跨越源極與汲極擴 散區間的通道。其中一個資料位元的電荷會於靠近該汲極 的介電層中被局部化,而另一個資料位元的電荷會於靠近 該源極的介電層中被局部化。舉例來說,美國專利案第 5,768,192號及第6,011,725號便揭示一種於兩層二氧化矽層 間夾放一陷捕介電質的非揮發性記憶胞。藉由分開讀取該 介電質内空間分離的電荷儲存區域的二元狀態,便可實現 多重狀態的資料儲存。 為改良讀取與程式化效能,可平行讀取或程式化一陣列 中多個電荷儲存元件或記憶體電晶體。因此,便可同時讀 取或程式化一由複數個記憶體元件所組成的「記憶體 頁」方、現存的圮憶體架構中,一列通常會含有數個交錯 頁或疋其可施會構成其中—頁。—頁中的所有記憶體元件 將會被同時讀取或程式化。 98672.doc 1272483 於快閃記憶體系統中,抹除 取盥& ”乍業所化費的時間可能係讀 抹=4作業的倍數長度。因此,吾人希望具有非常大 憶胞聚合體之卜 便了將抹除時間分攤至大量的記 快閃記憶體的特性係會斷定 曰呵疋义肩將貪料寫入一已抹除的 .旯新木自一主系統的特定邏輯位址 的資料的話,其中—福古4^ , 式更係於相同的實體記憶體位置 甲復寫該更新資料。也就是羅 执 吧就疋邏輯至實體位址映對並未改 交。不過,此意謂著整個抹除區 1 沐|示1^塊會含有必須先被抹除然 後再以該更新資料進行霜耷 仃復冩的具體位址。此更新方法的效 -、不彰’因為其需要抹除且覆寫整個抹除區塊,假使欲被 更:的資料僅佔據該抹除區塊的一小部份的話其效率尤為 不彰°其還將會導致更頻繁的抹除循環使用該記憶體區 塊:就此類型記憶體裝置的有限耐用性來說,並不樂見。 官理快閃記憶體系統的另一項問題係必須處理系統控制 2目錄資料。於各項記‘㈣作#進程期間會產生且存取該 =貝料因此,有效地處理與便捷的存取將會直接影響到效 能。吾人希望將此類型的資料保持在快閃記憶體之中,因 為快閃記憶體係报好的儲存體且為非揮發性。不過,假使 利用介於該控制器與該快閃記憶體之間的中間檔案管理系 統的活,便無法直接該資料。另外,系統控制與目錄資料 傾向於非常活躍且會被碎離,其並不利於儲存在具有大尺 寸區塊抹除的系統之中。依慣例,此類型的資料會被設置 在控制器RAM之中,從而允許該控制器來直接存取。於供 98672.doc -10- 1272483 電給該記憶體裝置之後,一初始化程序便會致動掃描該快 閃記憶體,以便編澤該必要的系統控制與目錄資訊,用以 將其置放在該控制器RAM之中。此程序會花費時間且需用 到控制器RAM容量,因而必須進一步提高快閃記憶體容 量。 US 6,567,307揭不的係一種於大型抹除區塊中處理區段 更新的方法,其包含將該更新資料記錄於作為刮傷填補墊 的多個抹除區塊之中,並且最後於依照邏輯順序對其重新 排列之後來合併该4各個區塊間的有效區段並且覆寫該等 區段。依此方式便無須於每次輕微更新時抹除且覆寫一區 塊。 W0 03/027828與W0 00/49488兩案揭示的係一種於大型 抹除區塊中處理更新的記憶體系統,其包含將該等邏輯區 段位址分割成複數個區帶。其會保留一小型的邏輯位址範 圍區V供現仅的糸統控制資料使用,該區帶會與供使用者 資料使用的另一區帶分離。依此方式,於其自己的區帶中 更改該系統控制資料將不會與另一區帶中相關的使用者資 料產生相互作用。更新係邏輯區段階的作業,而且會有一 寫入指標指向某一欲被寫入之區塊中的該等對應的實體區 段。該映對資訊會被緩衝暫存於RAM之中,而且最後會被 儲存於该主記憶體中的區段配置表之中。一邏輯區段的最 新版本將會汰廢現有區塊中已經變成部份過時的所有先前 版本。其會實施垃圾收集亦便保持可接收數量的部份過時 區塊。 98672.doc 1272483 、先前技術的系統趨於將該更新資料分散在許多區塊令; =者’錢新貧料可能會使得許多現存的區塊變成部份過 時。其結果通常係必須針對該等部份過時的區塊進行大量 、圾收集其效率相當不彰且會造成該記憶體提早老 化。另外’相較於非循序更新,並沒有任何系統性且有效 的方式來處理循序更新。 所以’吾人通常需要高容量且高效能的非揮發性記^ 體月確地况,吾人需要一種能夠於大型區塊中進行記必
體作業且不會有前述問題的高容量非揮發性記憶體。 【發明内容】 種非揮發性記憶體系統會被組織成由複數個實體記憶 體位置所組成的複數個實體群。每個實體群(元區塊)料 如同-個早位般地抹除’並且可用來儲存—邏輯資料群。 記憶料理㈣允許藉由配置—專⑽來記錄該邏輯群之 s亥更新貧料的元區&,以便用於更新-邏輯資料群。該更 新元區塊會依照收到的順序來記錄更新資料,而且並未限 制該記錄是(循序)否(雜亂)具有和原來被儲存般正確的邏 輯順序。最後’便會關閉該更新元區塊,以供進一步記 錄。其將會進行數項處理中的其中-帛,不過,最終皆會 以正確的順序來產生—完全填充的元區塊,用來取代原始 兀區塊。於雜亂的情況中’會以有利於頻繁更新的方式將 目錄貝料保留在該非揮發性記憶體之中。該系統會支援可 同時被更新的多重邏輯群。 本發明的其中—項特點允許以逐個邏輯群的方式來更新 98672.doc -12- 1272483 貝料。因此,當欲更新一邏輯群時,邏輯單位的分佈(還 :更新過時單位的記憶體單位的分散)便會被侷限於某個 靶圍中。當該邏輯群依慣例内含於一實體區塊内時,尤為 如此。 ,於該邏輯群的更新期間’通常必須分配一或兩個區塊來 緩衝暫存該#已更新的邏輯單位。因此,僅需要於相當少 數的區塊中實施垃圾收集。可利用合併法或緊湊法來實施 一雜亂區塊的垃圾收集。 々相較於该等循序區塊來說,該更新處理的經濟效能於該 等更新區塊的-般處理中會愈加明顯,因而便無須為雜亂 (非循序)更新配置任何額外的區塊。所有的更新區塊均會 被分配為循序的更新區塊,而且任何的更新區塊均可被變 更成雜亂的更新區塊。更確切地說,可任意地將一更新區 塊從循序式變更成雜亂式。 有效地使用系統資源便可允許同時更新多個邏輯群。如 此便可進一步提高效率且降低經常性運算。 從下面本發明之較佳具體實施例的說明中將會瞭解本發 明的額外特點與優點,參考該說明時應該配合附圖。 【實施方式】 圖1為一適合實現本發明之記憶體系統的主硬體組件的 概略示意圖。記憶體系統20通常會經由一主介面來配合主 系統10進行運作。該記憶體系統的一般形式係一記憶卡或 一内建的記憶體系統。該記憶體系統20包含一記憶體 200,該記憶體200的作業係受控於一控制器1〇〇。記憶體 98672.doc -13- 1272483 200係由分散於一或多個積體電路晶片中的一或多個非揮 發性記憶胞陣列所組成。控制器1〇〇包含一介面丨1〇、一處 理器120、一選配協同處理器12i、R〇M 122(唯讀記憶 體)、RAM 13 0(隨機存取記憶體)以及可視情況程式化的非 揮發性圮憶體124。介面11 〇具有一組件用於將該控制器介 接至一主系統,以及用於介接至該記憶體2〇〇的另一組 件。被儲存於該非揮發性11〇]^ 122及/或該選配非揮發性記 憶體124之中的韌體可提供該處理器120實現該控制器100 之功能所要的程式碼。錯誤校正碼可由處理器12〇或選配 協同處理斋121來處理。於一替代的具體實施例中,可由 狀態機(未顯示)來設計該控制器1〇〇。於另一具體實施例 中’則可將該控制器1〇〇設計在該主系統内。 邏輯與實體區塊結構 圖2為根據本發明一較佳具體實施例的記憶體,其係被 組織成複數個實體區段群(或元區塊)並且由該控制器的記 U體官理态來官理。該記憶體2〇〇會被組織成複數個元區 塊,其中母個元區塊係一群可一起抹除的實體區段 S〇 ···、Sn_ 1 〇 當於權案系統或作業系統下執行一應用程式時,主系統 1 〇便會存取記憶體200。一般來說,該主系統會以邏輯區 段為單位來定址資料,舉例來說,每個區段可能含有512 個位元組的資料。另外,該主系統通常亦會以邏輯叢集為 單位來讀取或寫入該記憶體系統,每個邏輯叢係由以個以 上的邏輯區段所組成。於部份主系統中,可能會存在一選 98672.doc -14- 1272483 配^系統端記憶體管理器,用於該主系統處實施低階記憶 體管理。於讀寫作業期間的大部份情況中,m统ίο基 本上會發出一命令給該記憶體系統20,用以讀或寫一程式 段,該程式段含有一串具連續位址的邏輯區段。 一記憶體端記憶體管理器會被設計在該記憶㈣統2〇的 控制器100之中,用以管理於該快閃記憶體2〇〇的複數個元 區塊中儲存與#|取主系統邏輯區段的資料。於該較佳的具 體實施例中,該記憶體管理器含有數個軟體模組,用於管 理該等元區塊的抹除作業、讀取作業以及寫入作業。該記 憶體管理器還會於該快閃記憶體及該控制器RAM 之中保有和其作業相關的系統控制與目錄資料。 圖3A(1)-3A(111)為根據本發明一較佳具體實施例介於一 邏輯群與-元區塊間之映對的概略示意圖。該實體記憶體 的該元區塊具有N個實體區段,用於儲存—邏輯群的则固 邏輯區段資料。圖3A⑴所示的係來自邏輯群叫的資料, 其中s亥等邏輯區段呈現連續的邏輯順序〇、1、 、N J。 圖3A⑼所示的係正以相同的邏輯順序被儲存於該元區塊 中的相同資料。當依此方式儲存時,該元區塊便係所謂的 「循序式」。-般來說’該元區塊可能會具有以不同順序 儲存的資料,於該情況中’該元區塊則係所謂的「非循序 式」或「雜亂式」。 在-邏輯群之最低位址與其所映對的元區塊的最低位址 之間可能會有偏移。於此情況中,邏輯區段位址會於該元 區塊内以環狀的方式從該邏輯群的底部反捲繞至頂端。舉 98672.doc -15- 1272483 例來說,於圖3Α(Ηί)中,該元區塊會在其始於邏輯區段k 之貧料的第一位置中進行儲存。當抵達最後的邏輯區段N-j 牯,其便會捲繞至區段〇,並且最後會於其最終的實體區 段中儲存和邏輯區段〗相關的資料。於該較佳的具體實 施射,會使用-頁標籤來確認任何偏移,例如確認該元 品鬼之第貝體區段中所儲存的資料的起始邏輯區段位 址。當兩個區塊僅相差一個頁標籤時,吾人將會認為該等 兩個區塊係以相同的順序來儲存其邏輯區段。 圖=為介於複數個邏輯群與複數個元區塊間之映對的概籲 略不思圖。每個邏輯群均會映對至_獨特的元區塊,除了 其中的資料正在被更新的少數邏輯群以外。一邏輯群在被 更新之後’其便可能會映對至一不同的元區塊。該映對資 訊會被保存在-組邏輯至實體目錄中,稍後將更詳細說 明。 ,、亦可叹冲其匕類型的邏輯群至元區塊映對關係。舉例來 、由Alan Smclair於和本發明同一天提出之共同待審及共 同擁有的美國專利申請案,標題為「Adaptive Metablocks」# 之中便揭示具有可變大小的元區塊。本文以引用的方式將 該共同待審巾㈣全部_示内容併入。 ▲本I月的其中一項特點係該系統會配合一單一邏輯分割_ 來=作’而且该記憶體系統的整個邏輯位址範圍中的邏輯· 品夺句θ被相等看待。舉例來說,含有系統資料的區段 及含有使用者資料的區段均可分散在該邏輯位址空間中的 任意處。 98672.doc -16- 1272483 和先别技術的系統不同的係,並沒有任何特殊的系統區 段分割或區帶(也就是,與檔案配置表、目錄或是子目錄 相關的£ ¥又)’用以於邏輯位址空間中劃分出可能含有并員 繁且小尺寸更新之資料的區段。取而代之的係,本發明之 更新邏輯區段群的技術可有效地處理系統區段以及檔案資 料特有的存取圖案。 圖4為一元區塊於實體記憶體中和各種結構的排列情 开> °快閃記憶體包括複數個記憶胞區塊,該等記憶胞均可 如同一個單位般地一起抹除。此等抹除區塊係快閃記憶體 之最小的抹除單位,或是該記憶體的最小可抹除單位 (MEU)。該最小可抹除單位係該記憶體的硬體設計參數, 不過,於支援多重MEU抹除的某些記憶體系統中,其亦可 能組成一含有一個以上MEU的「超級MEU」。對快閃 EEPROM來說,一 MEU可能包括一個區段,不過較佳的係 包括多個區段。於圖中所示的範例中,其具有Μ個區段。 於該較佳的具體實施例中,每個區段均可儲存5丨2個位元 組的資料,而且具有一使用者資料部,以及一標頭部用於 儲存系統或經常性運算資料。假使該元區塊係由Ρ個MEU 構成且每個MEU含有Μ個區段的話,那麼,每個元區塊將 具有N=P*]y[個區段。 於糸統層’該元區塊代表的係一群記憶體位置,例如可 一起抹除的複數個區段。該快閃記憶體的實體位址空間可 視為一組元區塊,每個元區塊均係該最小的抹除單位。於 本份說明書内,「元區塊」與r區塊」等詞語係同義詞, 98672.doc 1272483 用來疋義媒體管理於系統層處的最小抹除單位,而「最小 抹除單位」或MEU一詞則係用來表示快閃記憶體的最小抹 除單位。 連結複數個最小抹除單位(MEU)以構成一元區塊 為最大化程式化速度與抹除速度,可利用平行法盡可能 地將位於多個MEU中的多個資訊頁排列成會被平行程式 化,並且將多個MEU排列成會被平行抹除。 於快閃記憶體中,頁係可於單一作業中一起被程式化之 複數個記憶胞的集合。一頁可能包括一或多個的區段。另 外,一記憶體陣列可被分割成一個以上的平面,其中一平 面内每次僅有一個MEU會被程式化或被抹除。最後,該等 平面可能係分散於一或多個的記憶體晶片之中。 於快閃記憶體中,該等MEU可能包括—或多胃。一快閃 記憶體晶片内的複數個MEU可組織於複數個平面内。因為 可同時程式化或抹除來自每個平面的其中一個meu,所 以,從每個平面中選出一個MEU有利於構成一多重meu元 區塊(參見下文中圖5B)。 圖5A為連結不时面的最小抹除單位所構成的元區塊的 ,意圖:每個元區塊(例如MB〇、_、…)均係由來自該 記憶體系統中不同平面的複數個MEU所組成,其中該等不 同平面可能係分散於一或多個的晶片之中。圖2所示之元 區塊連結管理器17G會針對每個元區塊來管理該等MEU的 連結。每個元區塊均會於初始的格式化過程期間進行組 態,並且於該系統的整個壽命期間保持其組成MEU,除非 98672.doc -18" 1272483 該等MEU中其中一者受損。 圖5B所示之其中—具體實施例中會從每個平面中選出一 最小抹除單位(MEU)用以連結成—元區塊。 圖5C所示之另—具體實施例中會從每個平面中選出一個 以上的麵用以連結成—元區塊。於另—具體實施例中, 可從每個平面中選出一個以上的卿用以連結成一超級 MEU。舉例來說,一超級卿可能係由兩個卿所構成 的。於此情況中,其可能需要一次以上的作業方能進行讀 取或寫入作業。 由Carlos Gonzales等人於和本發明同一天提出之共同待 審及共同擁有的美國專利申請案,標題為「Adaptive Deterministic Grouping 〇f Blocks int〇 Multi_B1〇ck Structures」之 中亦揭示將複數個MEU連結及再連結成元區塊。本文以引 用的方式將該共同待審申請案全部的揭示内容併入。 元區塊管理 圖6為該元區塊管理系統被設計在該控制器與快閃記憶 體中時的概略方塊圖。該元區塊管理系統包括被設計在控 制器100之中的各種功能模組,並且會在階層式分散於該 快閃記憶體200與該控制器ram 130之中的表格與清單中 保留各種控制資料(包含目錄資料在内)。被設計在控制器 1 0 0之中的该等功能模組包含一介面模組1 1 〇、一邏輯至實 體位址變換模組14〇、一更新區塊管理模組150、一抹除區 塊管理模組160以及一元區塊連結管理器170。 介面110可讓元區塊管理系統介接一主系統。邏輯至實 98672.doc -19- 1272483 體位址變換模組140會將來自該主系統的邏輯位址映對至 一實體記憶體位置。更新區塊管理模組15〇會於供一假定 的邏輯資料群使用的記憶體中管理資料更新作業。抹除區 塊管理模組160會管理該等元區塊的抹除作業,並且管理 其配置以儲存新資訊。元區塊連結管理器170會管理複數 個區段之最小可抹除區塊之子群的連結情形,用以構成一 假定的7L區塊。該些模組將會於其個別的章節中作詳細說 明。 … 於作業期間,該元區塊管理系統會產生且配合控制資料 (例如位址、控制與狀態資訊)來工作。因為大部份的控制 資料傾向為經常改變的小尺寸的資料,所以並不容易儲存 且很難有效地保留在具大區塊結構的快閃記憶體之中。可 採用階層且分散式技術將該較靜態的控制資料儲存於該非 揮發性記憶體之中;同時將數量較少變動較大的控制資料 置放於控制器RAM中,以供更有效地更新與存取。假使電 源關閉或故障的話,該項技術允許藉由於該非揮發性記憶 體中掃描小型的控制資料組便可於該揮發性控制器ram中 快速地重建該控制資料。因為本發明會限制和一假定邏輯 貧料群之可能動作相關的區塊數,所以,此作法係可能 的。如此一來’便可侷限掃描的範圍。此外,可將該控制 貝料中而要持久的部份儲存在一可逐個區段進行更新的非 揮發性元區塊之中’每次更新都會產生一新區段,其會被 記錄以取代先前的區段。可針對控制資料運用區段索引技 術以追蹤一元區塊中逐個區段的更新情形。 98672.doc -20- 1272483 該非揮發性快閃記憶體200會儲存非常靜態的龐大控制 資料。其包含群位址表(GAT)210、雜亂區塊索引
(CBI)220、已抹除區塊清單(EBL)230以及MAP 240。GAT 21 〇會追蹤邏輯區段群和其對應元區塊間的映對情形。除 非更新,否則該等映對關係不會改變。CBI 22〇會追縱更 新期間邏輯非循序區段的映對情形。EBL 230會追縱已經 被抹除之元區塊集。MAP 240係一位元圖,其顯示的係該 快閃記憶體中所有元區塊的抹除狀態。 该揮發性控制器RAM 130會儲存經常改變且被存取的一 小部份控制資料。其包含一配置區塊清單(ABL)丨34以及一 已清除區塊清單(CBL)136。ABL 134會追蹤元區塊的配置 情形,用以記錄更新資料;而CBL 136則會追蹤已經被解 除配置且被抹除的元區塊。於該較佳的具體實施例中, RAM 130如同一快取,用以供被儲存在快閃記憶體2〇〇中 之控制資料使用。 更新區塊管理器 更新區塊管理器15〇(如圖2所示)會處理邏輯群的更新作 業。根據本發明其中一項觀點,每個經過更新的邏輯區段 群均會配置-專屬的更新元區塊,用來記㈣更新資料。 於該較佳的具體實施例中’由該邏輯群中一或多個區段所 組成的任何程式段均將會被記錄於該更新區塊中。任何更 新區塊均會設法以循序或非循序(亦稱為雜亂序)的方式來 接收已更新的資料。一雜亂更新區塊可於一邏輯群内^任 意順序來更新區段資料,並且具有任意重複的個別區段。 98672.doc 1272483 明確地說,一循序更新區塊可變成一雜亂更新區塊,不需 要再配置任何的資料區段。雜亂更新區塊並不需要任何預 設的區塊配置;可於任何的邏輯位址處自動進行非循序寫 入。因此’和先前技術系統不同的係,並不必特別處置該 邏輯群之各個更新程式段究竟係邏輯循序或非循序。該通 用的更新區塊將會簡單地使用該主系統所要求的順序來記 錄該等各個程式段。舉例來說,即使主系統資料或系統控 制資料傾向於以雜亂方式進行更新,仍然不需要以不同於 具有主系統使用者資料之區域的方式來對待對應主系統資 料的邏輯位址空間的區域。 一 70整邏輯區段群的資料較佳的係以邏輯循序方式被儲 存於單一元區塊之中。如此一來,便可預先定義指向該等 被儲存之邏輯區段的索引。當該元區塊以預定的順序儲存 一假定邏輯群的所有區段時,便稱為「完全一致」。就更 新區塊來說,當最後以邏輯循序方式補滿更新資料之後, 接著,該更新區塊便將會變成一已更新的完全一致元區 塊,其可輕易地取代原始元區塊。相反地,假使該更新區 塊以邏輯上不同於該完全_致區塊之順序來補滿更新資料 的活,那麼,該更新區塊便係一非循序或雜亂更新區塊, 並且必須進一步地處理該等失序的程式段,以便最後可以 矛忒70全一致區塊相同的順序來儲存該邏輯群的更新資 料。於β較佳的情況中,在單一元區塊中係邏輯循序的。 亥進步的處J里包含將該更新區塊中的該等已更新區段和 原始區塊中的未變更區段合併在另一更新元區塊之中。接 98672.doc -22- 1272483 著,該已合併的更新區塊便將會係邏輯循序的,並且可用 來取代原始區塊。於某些預設條件下,該合併處理會先行 於一或多個的緊湊處理。該緊湊處理會逕行將該雜亂更新 區塊的該等區段重新記錄於一取代雜亂更新區塊中,同時 對同一邏輯區段進行後續更新以刪除已經過時的任何備份 邏輯區段。 該項更新技術允許同時執行多個更新執行緒,直至預定 的最大值為止。每個執行緒均係一邏輯群,其會使用其專 屬的更新元區塊來進行更新。 循序資料更新 當率先更新屬於一邏輯群的資料時,便會配置一元區 塊,且該元區塊係專供該邏輯群之更新資料使用的更新區 塊。當從該主系統中收到一命令時,便會配置該更新區 塊,用以寫入由該邏輯群之一或多個區段所組成某個程式 段,其中有一現存的元區塊已經完全一致地儲存其所有的 區段。就第一次主系統寫入作業來說,會將一第一資料程 式段記錄於該更新區塊之中。因為每次主系統寫入均係一 由具有連續邏輯位址之一或多個區段所組成的程式段,所 以本質上該第一次更新必定為循序的。於後續的主系統寫 入中,會依照接收自該主系統的順序將相同邏輯群内的複 數個更新程式段記錄於該更新區塊中。一區塊會繼續被安 排成一循序更新區塊,而於該相關邏輯群内經過該主系統 更新的區段則仍會維持邏輯循序狀態。此邏輯群中已更新 的所有區段均會被寫入此循序更新區塊之中,直到該區塊 98672.doc -23- 1272483 被關閉或是被轉換成雜亂更新區塊為止。 圖7A係進行兩次分離的主系統寫入作業而依序被寫入一 循序更新區塊中的一邏輯群之中的複數個區段的範例圖 式,该邏輯群之原始區段中的該等對應區段則會變為過 日守。於主系統寫入作業#丨中,正在更新該等邏輯區段LS5_ LS8中的資料。已更新的資料乙以’丄“,則會被記錄於新配 置之專屬更新區塊之中。 為方便起見,該邏輯群中欲被更新的第一區段會被記錄 在始於該第一實體區段位置處的專屬更新區塊之中。一般 來說,該欲被更新的第一邏輯區段並未必係該群的邏輯第 一區段,所以,該邏輯群的起點與該更新區塊的起點間便 可能會有偏移。此偏移稱為頁標籤,如前面配合圖3八所 述。後面的區段則會以邏輯循序的方式進行更新。當寫入 該邏輯群的最後一個區段之後,群位址便會捲繞,並且會 對該群的第一區段繼續進行該寫入序列。 於主系統寫入作業#2中,正在更新該等邏輯區段LS9_ LS12中的資料所組成的程式段。已更新的資料LS9,_LS12, 則會被0己錄在上次寫入結束處後面位置中的專屬更新區塊 之中。吾人將會發現,兩次主系統寫入的方式係以邏輯循 序方式(換吕之,LS5’-LSI2’)將該更新資料記錄於該更新 區塊之中。該更新區塊可視為一循序更新區塊5因為其係 依照邏輯循序方式被填補。被記錄於該更新區塊中的更新 資料會汰廢原始區塊中對應的資料。 雜亂資料更新 98672.doc -24- 1272483 當該相關邏輯群内經由該主系統更新的任何區段於邏輯 上為非循序時,便可對現有的循序更新區塊展開雜亂更新 區塊管理。一雜亂更新區塊係一種資料更新區塊形式,其 中可以任何順序來更新一相關邏輯群内的邏輯區段並且可 具有任何重複數。當一主系統以邏輯非循序的方式將一區 段寫入該欲被更新之邏輯群内之先前已被寫入的區段中 時’便可將一循序更新區塊轉換成一雜亂更新區塊。此邏 輯群中稍後被更新的所有區段則會被寫入該雜亂更新區塊 中下個可用的區段位置中,而不管其邏輯區段位址位於該 群内的何處。 圖7B係進行五次分離的主系統寫入作業而以雜亂序被寫 入一雜亂更新區塊中的一邏輯群之中的複數個區段的範例 圖式,同時該邏輯群之原始區段中已被取代的區段以及該 雜亂更新區塊中已經備份的區段則會變為過時。於主系統 寫入作業#1中’會更新被儲存於一原始元區塊中之一假定 邏輯群的該等邏輯區段LS10-LS11中的資料。已更新的邏 輯區段LS10’-LS 11f則會被儲存於新配置之更新區塊之中。 此時,該更新區塊係一循序的更新區塊。於主系統寫入作 業#2中,會將邏輯區段LS5-LS6更新成LS5,-LS6,,並且將 其記錄於上次寫入後面之位置中的更新區塊之中。此作業 會將該更新區塊從循序更新區塊轉換成一雜亂更新區塊。 於主系統寫入作業#3中,會再度更新邏輯區段LS 10,並且 以LS10"記錄於該更新區塊的下一個位置之中。此時,該 更新區塊中的LSI0”會取代先前記錄中的LSI01,接著便會 98672.doc -25 - 1272483 取代原始區塊中的LS 10。於主系統寫入作業#4中,會再度 更新邏輯區段LS10中的資料,並且以Lsl〇",記錄於該更新 區塊的下一個位置之中。因此,Lsl〇,,,係目前最新且為該 邏輯區段LS10僅有的有效資料。於主系統寫入作業#5中, 會更新邏輯區段LS30中的資料,並且以LS3〇,記錄於該更 新區塊之中。因此,本範例所闡述的係可以任何順序以及 任何重複數將一邏輯群内的區段寫入一雜亂更新區塊之 中〇 強制循序更新 圖8係進行兩次具有不連續邏輯位址的分離主系統寫入 作業而依序被寫入一循序更新區塊中的一邏輯群之中的複 數個區段的範例圖式。於主系統寫入作業#1中,邏輯區段 LS5-LS8中的更新資料會以LS5,_LS8,被記錄於一專屬的更 新區塊之中。於主系統寫入作業#2中,邏輯區段LS14_ LS16中的更新資料會以LS14,_LS16,被記錄於上次寫入後 面的更新區塊之中。不過,於LS8與LS14之間有位址跳 躍,而且主系統寫入#2通常會讓該更新區塊變成非循序。 因為戎位址跳躍並不大,所以其中一種選項係於執行主系 統寫入#2以前先從原始區塊中將該等中間區段的資料拷貝 至該更新區塊之中以實施填補作業(#2A)。如此一來,便 可保留該更新區塊的循序特性。 圖9為根據本發明一通用具體實施例’由該更新區塊管 理器所實施之用於更新—邏#資料群的處理流程圖。該更 新處理包括下面步驟: 98672.doc 1272483 步驟260 :該記憶體會被組織成複數個區塊,每個區塊 均會被分割成可一起抹除的複數個記憶體單位,每個記憶 體單位係用於儲存一邏輯資料單位。 步驟262 :該資料會被組織成複數個邏輯群,每個邏輯 群均會被分割成複數個邏輯單位。 步驟264 :於該標準的情況中,會根據第一種規定的順 序’較佳的係邏輯循序順序,將一邏輯群的所有邏輯單位 儲存於一原始區塊的該等記憶體單位之中。依此方式,便 可知道用於存取該區塊中該等個別邏輯單位的索引。 步驟270 :針對一假定的邏輯資料群(例如lgx)而言,可 要求更新LGX内的一邏輯單位。(邏輯單位更新係其中一種 範例。一般來說,該更新將會是LGx内由一或多個連續邏 輯單位所組成的程式段。) 步驟272 :被要求的更新邏輯單位將會被儲存於一第二 區塊中’該區塊係專門用來記錄LGX的該等更新。該記錄 順序係依照第二順序,一般來說係要求該等更新的順序。 本發明的其中一項特點係可於初始時將一更新區塊設置成 通用於以邏輯循序或雜亂順序的方式來記錄資料。所以, 立而賴遠第二順序,該第二區塊可能係循序區塊或雜亂區 塊。 步驟274 ··該第二區塊會繼續如步驟27〇之處理迴圈般地 要求記錄邏輯單位。當出現預設的關閉條件時,便會關閉 違第二區塊以接收另外的更新。於此情況中,該處理便會 進入步驟276。 98672.doc -27- 1272483 步驟276 ·判斷該已關閉之第二區塊是否以和原始區塊 相同的項序來記錄其更新邏輯單位。當該等兩個區塊記錄 邏輯早位僅相差—頁標籤時,該等兩個區塊便會被視為具 有相同的順序’如配合圖3 A所示。假使該等兩個區塊具有 相同順序的話,該處理便會進入步驟28〇,否則便必須於 步驟290中實施某種垃圾收集作業。 γ驟280 ·因為第二區塊具有和第一區塊相同的順序, 所以可用來取代該原始第一區塊。接著該更新處理便會結 束於步驟299處。 口 ν驟290 ·彳之,亥第二區塊(更新區塊)與該第一區塊(原始 區塊)之+中收集該假定邏輯群之每個邏輯單位的最新版 本接著,便將该假定邏輯群之該等已合併的邏輯單位以 和第一區塊相同的順序寫入一第三區塊中。 步驟292·因為第三區塊(已合併區塊)具有和第一區塊 相同的順彳,所以可用來取代該原始第—區塊。接著該更 新處理便會結束於步驟299處。 步驟299 .當封閉處理產生—完全一致的更新區塊時, 其便會成為該假定邏輯群新的標準區塊。接著便會結束該 邏輯群的更新執行緒。 圖10為根據本發明_ ^ θ Α 車又it具體貫施例,由該更新區塊管 理器所實施之用於爭絲 、更新一邏輯資料群的處理流程圖。該更 新處理包括下面步驟: 步驟3 10 ·針對-假定的邏輯資料群(例如LGx) *言,可 要求更新LGX内的—邏輯區段。(區段更新係其中一種範 98672.doc -28- 1272483 例。一般來說,該更新將會是^比内由一或多個連續邏輯 區段所組成的程式段。) 步驟312 :假使尚未存在一專屬於风的更新區塊的話, 便會進入步驟410用以開始針對該邏輯群來執行一新的更 新執行緒。藉由配置一專門用來記錄該邏輯群之更新資料 的更新區塊便可達成此步驟。假使已經有一更新區塊開放 的活,便會進入步驟3 14用以開始將該更新區段記錄於該 更新區塊之中。 s步驟314 ··假使目前的更新區塊已經係雜亂無序(也就 疋,非循序)的話,那麼便逕行進入步驟5 1〇,用以將所要 求的更新區段記錄於該雜亂更新區塊之中。假使目前的更 新區塊為循序的話,那麼便進入步驟316,肖卩處理一循 序更新區塊。 步驟316 :本發明的其中一項特點係可於初始時將一更 新區塊設置成通用於以邏輯循序或雜亂順序的方式來記錄 資料不過,因為該邏輯群最終會將其資料以邏輯循序的 順序儲存於一元區塊之中,所以,吾人會希望盡可能保持 5亥更新區塊的循序狀態。接著,f關閉-更新區塊以進行 進更新日^,將會需要較少的處理,因為並不需要進疒 垃圾收集。 订 因此,便可判斷所要求的更新是否將遵照該更新區塊目 财的循序順序。假使該更新循序遵照的話,那麼便會進入 步驟510以實施循序更新,而且該更新區塊仍將保持循序 狀悲。相反地,假使該更新未循序遵照(雜亂更新)的話, 98672.doc 1272483 那麼假使未發生其它動作的話,其便會將該循序更新區塊 轉換成一雜亂更新區塊。 於其中一具體實施例中,不會採取任何動作來挽救此情 況,而該處理會直接進入步驟370,於該處允許進行更新 將該更新區塊轉換成雜亂更新區塊。 選配強制循序處理 於另一具體實施例中,會盡可能依照即將進行之雜亂更 新來視情況實施一強制循序處理步驟320,以便保留該循 序更新區塊。會有兩種情況,兩者均需要從原始區塊中拷 貝遺失的區段,以維持被記錄於該更新區塊中之邏輯區段 的循序順序。第一種情況係該更新會產生一短距位址跳 躍。第一種情況則係提早封閉一更新區塊以保持其循序狀 態。該強制循序處理步驟320包括下面的子步驟: 步驟330 :假使該更新產生一未大於預設量Cb的邏輯位 址跳躍的話’該處理便會進入步驟35〇中的強制循序更新 處理,否則該處理便會進入步驟340考慮是否具有強制循 序封閉的資格。 步驟340 ·假使未被填充之實體區段的數量超過預設的 δ又计參數Cc(其標準值通常為該更新區塊之大小的一半)的 話,那麼該更新區塊便很少被用到而且將不會被提早關 閉。該處理便進入步驟370而且該更新區塊將會變成雜亂 無序的。相反地,假使該更新區塊相當大的部份被填充的 活’那麼其便被視為已經被充份運用,所以可進入步驟 360以便強制循序封閉。 98672.doc -30- 1272483 步驟350 :強制循序更新可讓目前的循序更新區塊保持 循序狀態,只要該位址跳躍不超過預設量CB即可。基本 上’會拷貝該更新區塊的關聯原始區塊中的區段來填補該 位址跳躍所橫跨的間隙。因此,於進入步驟5 1 〇以前將會 利用該等中間位址中的資料來填補該循序更新區塊,以便 循序地記錄該目前的更新。 步驟360 :假使目前的循序更新區塊已經大部份被填充 的話’強制循序封閉便會封閉目前的循序更新區塊,而不 會讓即將進行雜亂更新將其轉換成一雜亂更新區塊。雜亂 或非循序更新係被定義成一具有未被上述之位址跳躍例外 涵蓋的正向位址移動、反向位址移動或是位址重複使用等 情形的更新。為避免一循序更新區塊被一雜亂更新轉換, 可藉由拷貝該更新區塊的關聯原始部份過時區塊中的區段 來填充該更新區塊中未被寫入的區段位置。接著,該原始 區塊便完全過時並且可被抹除。現在,目前的更新區塊便 會具有滿載的邏輯區段集,接著便可被封閉形成一完全一 致的元區塊,用以取代該原始元區塊。接著該處理便會進 入步驟430,於正確的位置中配置一新的更新區塊,用以 接受步驟310中率先要求之即將進行的區段更新的記錄。 轉換成雜亂更新區塊 步驟370 :當該即將進行的更新係並非係循序順序且視 情況亚未符合該等強制循序條件的話,當該處理進入步驟 5 10日守,便可藉由將該即將進行的更新區段(其具有非循序 的位址)記錄於該更新區塊之中,用以將該循序更新區塊 98672.doc -31 - 1272483 轉換成一雜亂更新區塊。假使存在最大數量的雜亂更新區 塊的話,那麼便必須於允許進行轉換以前先關閉最近最少 被存取的雜亂更新區塊’以防止超過最大數量的雜亂更新 區塊。確認最近最少被存取之雜亂更新區塊的方式和步驟 420中所述的一般情況相同,只不過僅限於雜亂更新區 塊。此時可藉由步驟550所述的合併作業來達成關閉一雜 亂更新區塊的目的。 於系統條件限制下配置新的更新區塊 步驟410 :將一抹除元區塊配置成一更新區塊的處理始 於判斷是否超過一預設的系統限制。於由有限資源的關 係’该5己憶體管理糸統通常允許同時存在預設的最大更新 區塊數量CA。此限制為循序更新區塊與雜亂更新區塊的總 和,而且係一項設計參數。於一較佳的具體實施例中,舉 例來說,該限制為最大8個更新區塊。另外,由於系統資 源需求較高的關係,可同時開放的雜亂更新區塊的最大數 量同樣會有對應的預設限制(例如4個)。 因此,當已經配置CA個更新區塊時,那麼僅有於關閉該 等現有已經配置之更新區塊以後才可能滿足下次配置的要 求。該項處理會進入步驟420。當開放更新區塊的數量小 於CA時,該項處理便會逕行進入步驟430。 步驟420 :假使超過預設的最大更新區塊數量cA的話, 那麼便會關閉最近最少被存取的更新區塊,並且實施垃圾 收集。最近最少被存取的更新區塊係被判定為和最近最少 被存取之邏輯區塊相關的更新區塊。為達決定最近最少被 98672.doc -32- 1272483 存取之區塊的目的’存取包含寫入及選擇性讀取邏輯區 段。可依照存取順序來保存一份開放更新區塊的清單;初 始時,吾人假設沒有任何的存取順序。當該更新區塊係循 序時,一更新區塊的關閉便會遵循和步驟36〇與步驟53〇所 述者雷同的處理;當該更新區塊係雜亂無序時,則會遵循 和步驟540所述者雷同的處理。該關閉作業會產生空間以 供步驟430中進行新更新區塊配置。 步驟430:配置一新的元區塊作為該假定邏輯群LGx專屬 的更新區塊便可滿足該配置要求。接著,該項處理會進入 步驟5 10。 將更新資料記錄於更新區塊中 步驟510 :所要求的更新區段會被記錄於該更新區塊中 下個可用的實體位置中。接著’該項處理會進入步驟 5 2 0 ’判斷該更新區塊是否可以封閉。 更新區塊封閉 步驟520 :假使該更新區塊仍有空間可接受額外更新的 話,那麼便會進入步驟522。否則便會進入步驟57〇,封閉 該更新區塊。f目前所要求的寫入試圖寫入的邏輯區段多 於該區塊所擁有的空間時,有兩種可㈣實現方式來填充 -更新區塊。第一種實現方式中,可將該寫入要求分成兩 部份,其中第一部份會一亩官& #旧& ^。 罝冩到该&塊的最後實體區段處 ^止二接著便關閉《塊,而該寫人的第二部份將會被視 ’、’、下-個要求寫入。於另一種實現方式中,可保留所要求 的寫入’而該區塊則會填補其剩餘的區段然後便關閉。該 98672.doc -33- 1272483 要求寫入將會被視為下一個要求寫入。 步驟522 :假使該更新區塊係循序的話,便會進入步驟 5 30以進行循序關閉。假使該更新區塊係雜亂無序的話, 便會進入步驟540以進行雜亂關閉。 循序更新區塊封閉 步驟530 ·•因為該更新區塊係循序且完全填充的,所以 其中所儲存的邏輯群係完全一致的。該元區塊係完全一致 且會取代原始元區塊。此時,該原始元區塊係完全過時且 可被抹除。接著,該項處理便會進入步驟57〇,結束該假 _ 定邏輯群的該更新執行緒。 雜亂更新區塊封閉 步驟540 :因為該更新區塊係非循序填充,所以可能會 多次更新部份的邏輯區段,因此要實施垃圾收集以挽救其 中的有效資料。該雜亂更新區塊將會進行緊湊處理或合併 處理。於步驟542中將會決定要實施哪項處理。 步驟542 :實施緊湊或合併將相依於該更新區塊的老化 情形。假使一邏輯區段被更新數次的話,其邏輯位址便會 局度地老化。於該更新區塊中將會記錄相同邏輯區段的多 重版本’但僅有最後被記錄的版本係該邏輯區段的有效版 本。於含有具多重版本之邏輯區段的更新區塊中,不同邏 , 輯區段的數量將會遠少於一邏輯群的數量。 於该較佳的具體實施例中,當該更新區塊中不同邏輯區 段的數量超過預設設計參數cD(其標準值通常為一邏輯群 之大小的一半)的話,該封閉處理便會於步驟55〇中實施合 98672.doc •34· 1272483 併作業,否則該處理便會於步驟560中實施緊湊作業。 步驟550 :假使該雜亂更新區塊欲進行合併作業的話, 那麼便會利用一含有該經合併資料之新的標準元區塊來取 代該原始區塊與該更新區塊。經過合併以後,該更新執行 緒便將會結束於步驟570中。 步驟560 :假使該雜亂更新區塊欲進行緊湊作業的話, 那麼其便會被一載有該經緊湊處理之資料之新的更新區塊 取代。經過緊湊以後,該經緊湊處理的更新區塊的處理便 將會結束於步驟570中。或者,可延至該更新區塊再次被 寫入才進行緊湊作業,從而便可去除緊湊作業後面跟隨著 ό併作業而沒有中間更新的可能性。當步驟5 〇2中出現下 個要求於LGX中進行更新時,那麼便可利用該新的更新 區塊來進一步更新該假定邏輯區塊。 v驟570 · §封閉處理產生一完全一致的更新區塊時, 其便會成為該假定邏輯群新的標準區塊。接著便會結束該 邏輯群的更新執行緒。當封閉處理產生一新更新區塊以取 代一現存的更新區塊時,便可使用該新的更新區塊來記錄 針對該假定邏輯群所要求的下次更新。當一更新區塊未被 封閉時,當步驟31〇中出現下一個要求於LGX中進行更新 日守,那麼該項處理便將會繼續。 從上述的處理中可以看出,當關閉一雜亂更新區塊時, 其中所記錄的更新資料便會被進一步處理。明確地說,其 有效貝料會經過垃圾收集處理,可能係進行緊湊處理而被 收集至另一雜乱區塊中,或是與其相關的原始區塊進行合 98672.doc I272483 併處理以形成一新的標準循序區塊。 圖11A為關閉圖10所示之雜亂更新區塊的合併處理的更 詳細流程圖。雜亂更新區塊合併係於封閉該更新區塊時 (例如當該更新區塊因其最後的實體區段位置被寫入而全 部填滿時)所實施的兩種可能處理中其中一者。當被寫入 該區塊中的不同邏輯區段的數量超過預設的設計參數時 便會選擇合併。圖1〇所示之合併處理步驟55〇包括下面子 步驟: 步驟55 1 :當欲關閉一雜亂更新區塊時,便會配置一取 代它的新元區塊。 步驟552 :於該雜亂更新區塊及其相關的原始區塊之中 收集母個邏輯區段的最新版本,忽略所有過時的區段。 步驟554 :以邏輯循序的順序將該等已收集到的有效區 段記錄於該新元區塊之中,用以形成一完全一致的區塊, 也就是,形成一具有被循序記錄之一邏輯群的所有該等邏 輯區段的區塊。 步驟556 ·以該新的完全一致的區塊來取代該原始區 塊。 步驟558 :抹除該已封閉的更新區塊及該原始區塊。 圖11B為關閉圖1〇所示之雜亂更新區塊的緊湊處理的更 洋細^私圖。當被寫入該區塊中的不同邏輯區段的數量低 於預設的設計參數(^時便會選擇緊湊。圖1〇所示之緊湊處 理步驟560包括下面子步驟: 步驟561 :當欲緊湊一雜亂更新區塊時,便會配置一取 98672.doc -36- 1272483 代它的新元區塊。 步驟562 :於該欲被緊湊處理的現存雜亂更新區塊中收 集每個邏輯區段的最新版本。 步驟564 ·•將該等已收集到的區段記錄於該新的更新區 塊之中’用以形成一具有經緊湊區段的新的更新區塊。 步驟566 :利用該具有經緊湊區段的新的更新區塊來取 代該現存的更新區塊。 步驟568 :抹除該已被封閉的更新區塊。 邏輯與元區塊狀態 籲 圖12A為一邏輯群的所有可能狀態,以及於各種作業下 該等狀態間可能的移轉情形。 圖12B為一列出一邏輯群之該等可能狀態的表袼。該等 邏輯群狀態的定義如下: 1 · 70王致·该邏輯群中的所有邏輯區段已依照邏輯循 序順序被寫入單-元區塊之中,其可能利用頁標藏捲繞方 式。 2·未被寫入:該邏輯群中沒有任何邏輯區段已經被寫 入β邏輯群會於_群位址表巾標記著未被寫人並且沒有 任何已配置的元區塊。其會響應針對此群内每個區段的主 系統讀取而送回一預設的資料圖案。 · 3·循序更新:該邏輯群内部份區段已經以邏輯循序的順 序破寫入70區塊之中’其可能會利用頁標籤,所以,該 等狀態會取代該群中任何前面的完全一致狀態。 4·雜亂更新· 4邏輯群内部份區段已經以邏輯非循序的 98672.doc •37- 1272483 丨頁序破寫入一兀區塊之中,其可能會利用頁標籤,所以, 該等狀態會取代該群中任何前面的完全一致狀態。該群内 的某個區段可能會被寫入—次以上,其最新的版本會取代 所有前面的版本。 圖13A為一元區塊的所有可能狀態,以及於各種作業下 該等狀態間可能的移轉情形。 一 -圖13B為-列出—元區塊之該等可能狀態的表格。該等 元區塊狀態的定義如下·· l已抹除:該原始區塊中的所有的區段均已被抹除。 2·循序更新:該元區塊已經被部份寫入,其區段呈現邏 輯循序順序,其可能會利用頁標藏。所有區段均屬於相同 的邏輯群。 3.雜亂更新··該元區塊已經被部份或完全寫入,其區段 呈現邏輯非循序順序。任何區段均可能被寫入一次以上。 所有區段均屬於相同的邏輯群。 4· 70全一致:該元區塊已經以邏輯循序的順序被完全寫 入,其可能會利用頁標籤。 5 ·原始· δ亥元區塊係先前完全一致的元區塊,不過,至 少其中一個區段已經因主系統資料更新而變為過時。 圖14(A) 14(J)為對该邏輯群之狀態以及該實體元區塊所 進行之各項作業的效果的狀態圖。 圖14(A)所示之狀態圖對應的係第一次寫入作業的邏輯 群與元區塊移轉。該主系統會以邏輯循序的順序將一先前 未被寫入之邏輯群中一或多個的區段寫入一新配置之已抹 98672.doc -38- 1272483 除的元區塊之中。該邏輯群與該元區塊會進入循序更新狀 態中。 圖14(B)所示之狀態圖對應的係、第-次完全-致作業的 邏輯群與元區塊移轉。-先前未被寫入之循序更新邏輯群 在所有區段均被該主系統循序寫入時會變成完全一致。假 使該卡利用-預設的資料圖案來填充該等剩餘未被寫入區 段以填滿該群的話,亦可能會發生此移轉。該元區塊會變 成完全一致。 圖14(C)所示之狀態圖對應的係第—次雜亂作業的邏輯 群與元區塊移轉。-先前未被寫入之循序更新邏輯群在至 少一區段被該主系統非循序寫入時便會變成雜亂無序。 圖14(D)所示之狀態圖對應的係第—次緊湊作業的邏輯 群與το區塊移轉。一先前未被寫入之雜亂更新邏輯群内的 所有有效區段均會從舊的區塊被拷貝至一新的雜I元區 塊’接著便會抹除該舊的區塊。 圖14(E)所示之狀態圖對應的係第一次合併作業的邏輯 群與元區塊移轉。一先前未被寫入之雜亂更新邏輯群内的 所有有效區段均會從舊的雜亂區塊中被移出,用於以邏輯 循序的順序來填充一新配置之已抹除區塊。未被主系統寫 入的區段會填充一預設的資料圖案。接著便會抹除該舊的 雜亂區塊。 圖14(F)所示之狀態圖對應的係一循序寫入作業的邏輯 群與元區塊移轉。該主糸統會以邏輯循序的順序將一完全 一致的邏輯群中一或多個的區段寫入一新配置之已抹除的 98672.doc -39- 1272483 元區塊之中。該邏輯群與該元區塊會進入循序更新狀態 中。該先前完全一致的元區塊會變成一原始元區塊。 圖14(G)所不之狀態圖對應的係一循序填充作業的邏輯 群與元區塊移轉。一循序更新邏輯群在所有區段均被該主 系統循序寫人時會變成完全-致。在利用來自該原始區塊 的有效區段填充該循序更新邏輯群以使其變成完全一致時 的垃圾收集期間亦會發生此移轉,於此之後便可抹除該原 始區塊。 圖14(H)所示之狀態圖對應的係一非循序寫入作業的邏 輯群與元區塊移轉。一循序更新邏輯群在至少一區段被該 主系統非循序寫入時便會變成雜亂無序。該等非循序區段 寫入會使得該更新區塊或該對應的原始區塊中的有效區段 變為過時。 圖14(1)所示之狀態圖對應的係一緊湊作業的邏輯群與元 區塊移轉。一雜亂更新邏輯群内的所有有效區段均會從舊 的區塊被拷貝至一新的雜亂元區塊,接著便會抹除該舊的 區塊。該原始區塊並不會受到影響。 圖14(J)所示之狀態圖對應的係一合併作業的邏輯群與元 區塊移轉。一雜亂更新邏輯群内的所有有效區段均會從舊 的雜亂區塊及該原始區塊中被拷貝,用於以邏輯循序的順 序來填充一新配置之已抹除區塊。接著便會抹除該舊的雜 亂區塊與該原始區塊。 更新區塊追縱與管理 圖15為用於追蹤已開放及已關閉之更新區塊與已抹除區 98672.doc -40· 1272483 塊以進行配置的配置區塊清單(ABL)的結構的較佳具體實 施例。該配置區塊清單(ABL)610會被保存於控制器RAM 130之中,以允許管理已抹除區塊的配置、管理更新區 塊、管理相關的區塊與控制結構,並且可致動正確的邏輯 至實體位址變換。於該較佳的具體實施例中,該ABL包含 一份已抹除區塊的清單、一份開放更新區塊清單614以及 一份已關閉更新區塊清單616。 開放更新區塊清單614係該ABL中之具有開放更新區塊 屬性之區塊登錄項的集合。該開放更新區塊清單針對目前 開放的每個資料更新區塊均具有一個登錄項。每個登錄項 保有下面的資訊:LG係目前更新元區塊專用的邏輯群位 址。循序/雜亂係一狀態資訊,其表示的係該更新區塊所 填充的究竟係循序或雜亂的更新資料。MB係該更新區塊 的元區塊位址。頁標籤係被記錄於該更新區塊之第一實體 位置處的起始邏輯區段。已寫入的區段數表示的係目前已 被寫入該更新區塊中的區段數量。叫係該相關原始區塊 的7L區塊位址。頁標籤◦係該相關原始區塊的頁標籤。 已關閉更新區塊清單616係該配置區塊清單(Abl)的子 集。其為該ABL中具冑已關閉更新區塊屬性之區塊登錄項 的集合。該已關閉更新區塊清單針對已經關閉的每個資料 更新區塊均具有一個登錄項,不過其登錄項並未於一邏輯 至主實體目錄中被更新。每個登錄項保有下面的資訊: LG係目4更新區塊專用的邏輯群位址。MB係該更新區塊 的元區塊位址。頁;^籤係被記錄於該更新區塊之第一=體 98672.doc -41 - 1272483 位置處的起始邏輯區段。MB〇係該相關原始區塊的元區塊 位址。 雜亂區塊索弓丨 一循序更新區塊會以邏輯循序的順序來儲存資料,因此 可輕易地找出該區塊之中的任何邏輯區段。—雜亂更新區 塊則係以亂序的方式來儲存其邏輯區段,而且可能會儲存 某一邏輯區段的多重更新代。此處必須保有額外的資訊, 以便追蹤每個有效邏輯區段於該雜亂更新區塊中的所在位 置。 於該較佳的具體實施例中,雜亂區塊索引資料結構允許 追縱及快速存取一雜亂區塊中所有有效的區段。雜亂更新 區塊可獨立管理小型的邏輯位址空間區域,並且有效地處 理系統資料與使用者熱區。該等索引資料結構基本上可將 索引資afl保存在具不頻繁更新需求的快閃記憶體之中,致 使不會嚴重影響效能。相反地,雜亂區塊中最近被寫入之 區段的清單則係保留在控制器RAM中的雜亂區段清單中。 另外,來自快閃記憶體的索引資訊快取會保留在控制器 RAM中,以便最小化供位址變換之用的快閃區段存取次 數。每個雜亂區塊的索引均會被儲存在快閃記憶體的雜亂 區塊索引(CBI)區段之中。 圖16A為一雜亂區塊索引(CBI)區段的資料欄位。一雜亂 區塊索引區段(CBI區段)含有一針對一邏輯群内被映對至 一雜亂更新區塊的每個區段的索引,其定義的係該邏輯群 之每個區段於該雜亂更新區塊内或是其相關原始區塊内的 98672.doc -42- 1272483 位置。一 CBI區段包含:一雜亂區塊索引欄位,用以追縱 該雜亂區塊之有效區段;一雜亂區塊資訊攔位,用以追蹤 該雜亂區塊的位址參數;以及一區段索引欄位,用以追蹤 儲存著該等CBI區段的該元區塊(CBI區塊)内的該等有效 CBI區段。 圖16B為欲被記錄於一專屬元區塊中的該等雜亂區塊索 引(CBI)區段的範例圖式。該專屬的元區塊將被稱為cBI區 塊620。當更新一 CBI區段時,其會被寫入該CBI區塊62〇 中的下個可用實體區段位置之中。所以,於該CBI區塊中 可能會存在一 CBI區段的多重拷貝,不過,僅有最後被寫 入的拷貝係有效的。舉例來說,邏輯群LGi的CBI區段便 已經被更新二次,隶新的版本才係有效的版本。該區 塊中每個有效區段的位置可利用該區塊中最後被寫入的 CBI區段中的一索引集來辨認。於此範例中,該區塊中最 後被寫入的CBI區段係LGm的CBI區段而其索引集則係會 取代所有先前索引集的有效索引集。當該CBI區塊最後完 全充滿CBI區段之後,便可藉由將所有有效區段重新寫至 一新的區塊位置以於一控制寫入作業期間來緊湊處理該區 塊。接者便可抹除該滿載的區塊。 一 CBI區段内的雜亂區塊素引攔位含有一針對一邏輯群 或子群内被映對至一雜亂更新區塊的每個邏輯區段的索引 登錄項。㈣索引登錄項表示的係該雜礼更#區塊内該對 應邏輯區段之有效資料所在的偏移。予員留的索引值表示於 該雜亂更新區塊中不存在該邏輯區段的任何有效資料,而 98672.doc *43- 1272483 該相關原始區塊中的該對應區段則係有效區段。部份雜亂 區塊索引攔位登錄項的快取則會保留在控制器RAM中。 一 CBI區段内的雜亂區塊資訊欄位含有一針對存在於該 系統中之每個雜亂更新區塊的登錄項,其記錄著該區塊的 位址參數貧訊。此攔位中的資訊僅在該cbi區塊中最後被 寫入的區段中才係有效。此資訊還會出現在RAM的資料結 構中。 每個雜亂更新區塊的該登錄項均包含三個位址參數。第 一個參數係和該雜亂更新區塊相關的邏輯群的邏輯位址 (或邏輯群號碼)。第二個參數係該雜亂更新區塊的元區塊 位址。第二個參數係該雜亂更新區塊中最後被寫入的區段 的:體位址偏移。該偏移資訊會設定初始化期間該雜亂更 新區塊的掃描起始點,用以於RAM中重建資料結構。 口泫區段索引攔位含有一針對該CBI區塊中每個有效CM 區段的登錄項。其會定義該CBI區塊内和每個獲准的雜亂 更新區塊相關之最近被寫入的CBI區段所在的偏移。該索 引中-偏移的預留值表示不存在獲准的雜1更新區塊。 圖16C為存取一正在進行雜亂更新之假定邏輯群中一邏 輯區段的資料的流程圖。於該等更新處理期間,該更新資 料會被記錄於該雜亂更新區塊之中,而未變更的資料則會 仍存在於和該邏輯群相關之原始區塊之中。於雜亂更新下 存取該邏輯群之一邏輯區段的處理如下: 步驟650 ·開始找出一假定邏輯群的一假定邏輯區段。 步驟652:於該⑶區塊中找出最後被寫入的⑶區段。 98672.doc -44· 1272483 步驟654 :藉由查找該最後被寫入的CBI區段的雜亂區塊 資訊欄位來找出和該假定邏輯群相關的雜亂更新區塊或原 始區塊。此步驟可於步驟662之前的任何時間處實施。 步驟658 ··假使該最後被寫入的CBI區段和該假定的邏輯 群有關的話,便找出該CBI區段。進入步驟662。否則便進 入步驟660。 步驟660 :藉由查找該最後被寫入的CBI區段的區段索引 攔位來找出該假定邏輯群的該CBI區段。 步驟662 ·•藉由查找該已經找到的CBI區段的雜亂區塊索 引攔位以於該雜亂區塊或原始區塊之中找出該假定的邏輯 區段。 圖16D為根據一替代具體實施例,其中邏輯群已經被分 割成複數個子群,存取一正在進行雜亂更新之假定邏輯群 中一邏輯區段的資料的流程圖。一 CBI區段的有限容量僅 能追蹤一預設最大的邏輯區段數量。當該邏輯群的邏輯區 段多於單一 CBI區段所能處理者時,該邏輯群便會被分割 成多個子群,每個子群各會分配到一 CBI區段。於其中一 範例中,每個CBI區段會具有足夠的容量來追蹤一由25 6個 區段以及多達8個雜亂更新區塊所組成的邏輯群。假使該 ㉞輯群的大小轉過2 5 6個區段的話,那麼該邏輯群内便會 存在一分離的CBI區段供每個256區段子群來使用。於一邏 輯群内所存在的CBI區段可供高達8個子群使用,支援高達 2048區段大小的邏輯群。 於該較佳的具體實施例中,可採用間接索引技術來幫助 98672.doc -45- 1272483 笞里》亥索引。5亥區段索引的母個登錄項均具有直接與間接 棚位。 直接區段索引定義該CBI區塊内和一特定雜亂更新區塊 相關之所有可能(:則區段所在的偏移。此攔位中的資訊僅 在和該特定雜亂更新區塊相關之最後被寫入的cbi區段中 才係有效。該索引中一偏移的預留值表示不存在該cBI區 段,因為和該雜亂更新區塊相關的對應邏輯子群不存在, 或是因為已經配置該更新區塊的關係尚未被更新。 間接區段索引會定義該CBI區塊内和每個獲准的雜亂更 新區塊相關之最近被寫入的(::扪區段所在的偏移。該索引 中偏移的預留值表示不存在獲准的雜亂更新區塊。 圖16D所示的係於雜亂更新下存取該邏輯群之一邏輯區 段的處理,其步驟如下: 步驟670 ··將每個邏輯群分割成多個子群且分配一 CBI區 段給每個子群。 步驟680 :開始找出一假定邏輯群之一假定子群的一假 定邏輯區段。 步驟682 :於該CBI區塊中找出最後被寫入的CBI區段。 步驟684 :藉由查找該最後被寫入的CBI區段的雜亂區塊 資訊攔位來找出和該假定邏輯子群相關的雜亂更新區塊或 原始區塊。此步驟可於步驟696之前的任何時間處實施。 步驟686 :假使該最後被寫入的CBI區段和該假定的邏輯 群有關的話,便進入步驟691。否則便進入步驟69〇。 步驟690 ··藉由查找該最後被寫入的cbi區段的間接區段 98672.doc -46- Ϊ272483 索引攔位來找出該假定邏輯群的該等多重CBI區段中最後 被寫入者。 步驟691 :已經找出和該假定的邏輯群之該等子群中其 中一者相關的至少一 CBI區段。繼續。 步驟692 :假使所找到的CBI區段和該假定的子群有關的 話,便找出該假定子群的該CBI區段。進入步驟696。否貝ij 便進入步驟694。 步驟694 :藉由查找目前所找到之CBI區段的直接區段索 引欄位來找出該假定子群的該CBI區段。 ® 步驟696 :藉由查找該假定子群的該CBI區段的雜亂區塊 索引攔位以於該雜亂區塊或原始區塊之中找出該假定的邏 輯區段。 圖16E為於將每個邏輯群分割成多個子群的具體實施例 中的雜亂區塊索引(CBI)區段的範例及其功能的示意圖。 一邏輯群7〇〇初始時會將其完全一致的資料儲存於一原始 元區塊702之中。接著,該邏輯群便會進行更新,其會配 籲 置一專屬的雜亂更新區塊704。於該等範例中,該邏輯群 700會被分割成複數個子群(例如子群A、B、C、D),每個 子群各具有256個區段。 為於子群B中找出第i個區段,可先找出該CBI區塊62〇中 · 最後被寫入的CBI區段。該最後被寫入的CBI區段的雜亂 , 區塊身訊攔位會提供位址以找出該假定邏輯群之該雜亂更 新區塊704。同時,其會提供被寫入該雜亂區塊中之該最 後區段的位置。假使為掃描索引與重建索引的話,此資訊 98672.doc -47- 1272483 便相當有用。 假使該最後被寫入的CBI區段係該假定邏輯群之該等四 個CBI區段中其中一者的話,其便將進一步判斷其是否確 實為該含有第i個邏輯區段之假定子群B中的該CBI區段。 若是的話,那麼該CBI區段的雜亂區塊索引便將會指向該 元區塊位置,用於儲存第i個邏輯區段的資料。該區段位 置可能係位於雜亂更新區塊704之中或是該原始區塊702之 中〇 假使該最後被寫入的CBI區段係該假定邏輯群之該等四 個CBI區段中其中一者但卻並非確實為該子群b所有的 話,那麼便會查找其直接區段索引以找出該子群B的該 CBI區段。一但找到此確實的CBI區段之後,則可查找其 雜亂區塊索引以便於該雜亂更新區塊704與該原始區塊702 之中找出第i個邏輯區段。 假使該最後被寫入的CBI區段並非係該假定邏輯群之該 等四個CBI區段中任何一者的話,那麼便會查找其間接區 段索引以找出該等四個CBI區段中其中一者。於圖ι6Ε所示 的範例中,會找到子群C的該CBI區段。接著,便可查找 子群C之此CBI區段的直接區段索引以找出該子群B的該確 κ的CBI區段。該範例顯示出,當查找其雜亂區塊索引 時,發現到第1個邏輯區段並未變更且其有效資料將會位 於該原始區塊之中。 雷同的考量可套用於找出該假定邏輯群之子群c中的第J· 個邏輯區段。該範例顯示出該最後被寫入的CBI區段並非 98672.doc 1272483 係該假定邏輯群之該等四個CBI區段中任何一者。其間接 區段索引會指向該假定邏輯群之該等四個CBI區段中其中
一者。被指到的四個中最後被寫入者同樣確實係該子群C 之該CBI區段。當查找其雜亂區塊索引時,發現到第j個邏 輯區段係位於該雜亂更新區塊704中的指定位置處。 於該系統中,每個雜亂更新區塊都會有一份雜亂區段清 單存在於控制器RAM之中。每份清單均含有一份自快閃記 憶體中最後被更新的相關CBI區段開始至目前區段為止被 寫入該雜亂更新區塊之中的區段的記錄。一特定雜亂更新 區塊的邏輯區段位址的數量(其可能係保存於一雜亂區段 清單之中)係一項設計參數,其標準值為8個至16個。該份 清單的理想大小係取決於其對雜亂資料寫入作業之經常性 運异的效應以及初始化期間區段掃描時間兩者間的取捨結 果。 於系統初始化期間,必要時會掃描每個雜亂更新區塊, 用以確認自其相關CBI區段中其中一者的前一次更新開始 至目丽區段為止被寫入的有效區段。於控制器RAM中會為 每個雜亂更新區塊建構一份雜亂區段清單◊每個區塊僅需 要從最後被寫入的CBI區段t其雜亂區塊資訊攔位中所定 義的最後區段位址處開始被掃描。 當配置一雜亂更新區塊時,便會寫入一 CBI區段,以便 符合所有已更新的邏輯子群。該雜|L更新區塊的邏輯與實 體位址均會被寫入該區段中一可 T 可用的雜亂區塊資訊攔位之 中,其雜亂區塊索引欄位中目丨丨目女γ ^。^ j 1 Τ則具有無效登錄項。於控制器 98672.doc -49· 1272483 HAM中會開放一份雜亂區段清單。 當關閉一雜亂更新區塊時,便會寫入一 CBI區段,其中 會從該區段中的雜亂區塊資訊攔位中移除該區塊的邏輯與 實體位址。RAM中的對應雜亂區段則會變成未被使用。 控制器RAM中對應的雜亂區段清單會加以修正,以納入 被寫入一雜亂更新區塊中的區段的記錄。當控制器ram中 的雜亂區段清單沒有任何可用空間來記錄被寫入一雜亂更 新區塊中的其它區段時,則會寫入和該份清單中之區段相 關的邏輯子群的已更新C BI區段並且清除該份清單。 當該CBI區塊620滿載時’便會將有效的CBI區段拷貝至 一已配置的已抹除區塊之中,並且抹除該先前的CBI區 塊。 位址表 圖2所示的邏輯至實體位址變換模組14〇係負責將一主系 統的邏輯位址和快閃記憶體中對應的實體位址產生關聯。 邏輯群與實體群(元區塊)間的映對關係會被儲存在分散於 δ亥非揮發性快閃記憶體2〇〇與該揮發性但比較迅速的RAM 130(參見圖1)之中的一表格集與複數份清單之中。一位址 表會被保存在快閃記憶體之中,該表含有該記憶體系統中 母個邏輯群的元區塊位址。此外,最近被寫入之區段的邏 輯至實體位址記錄則會暫時保留在RAM之中。該些揮發性 記錄可在開機之後初始化該系統時從快閃記憶體中的區塊 清單與資料區段標頭中進行重建。因此,並不需要頻繁地 更新快閃圮憶體中的該份位址表,從而控制資料之經常性 98672.doc -50- 1272483 運异寫入作業的百分比相當低。 邏輯群之位址記錄的階層包含該份開放更新區塊清單、 RAM中的已關閉更新區塊清單以及保存在快閃記憶體中的 該份群位址表(GAT)。 該份開放更新區塊清單係一份位於控制器RAM中由複數 個資料更新區塊所組成的清單,其為目前開放用來寫入已 更新主系統區段資料。當關閉某一區塊時,該區塊的該登 錄項便會被移至該份已關閉更新區塊清單之中。該份已關 閉更新區塊清單係一份位於控制器RAM中由已經被關閉的 複數個資料更新區塊所組成的清單。於控制寫入作業期 間,該份清單中該等登錄項所組成的一份子集會被移至該 群位址表中的一區段之中。 該群位址表(GAT)係一份由該記憶體系統中主系統資料 之所有邏輯群的元區塊位址所組成的清單。該GAT針對每 個邏輯群均含有一登錄項,其會依照邏輯位址循序排列。 違G AT中的弟η個登錄項含有位址^之邏輯群的元區塊位 址。於S較佳的具體實施例中,其係一份位於快閃記憶體 中的表格’其包括一組區段(稱為GAT區段),其中的登錄 項疋義的係違δ己憶體糸統中每個邏輯群的元區塊位址。該 等G AT區段係位於快閃記憶體中一或多個的專屬控制區塊 (稱為G AT區塊)之中。 圖17 A為一群位址表(GAT)區段的資料攔位。舉例來 說,一 GAT區段可能具有足夠的容量以容納一組128個連 續邏輯群的GAT登錄項。每個GAt區段均包含兩個組成 98672.doc -51 - 1272483 部:一組GAT登錄項,其係供某個範圍内每個邏輯群之元 區塊位址來使用;以及一 GAT區段索引。第一組成部含有 用於找出和該邏輯位址相關的元區塊的資訊。第二組成部 則含有用於找出該GAT區塊内所有有效GAT區段的資訊。 母個G AT登錄項均具有三個欄位,換言之為:元區塊號 碼;頁標籤,如先前配合圖3A(iii)的定義般;以及旗標, 其表示的係該元區塊是否已經被重新連結。該GAT區段索 引會列出一 GAT區塊中有效GAT區段的位置。此索引係位 於每個G AT區段之中,不過卻會被下次寫入該gAT區塊中 的GAT區段的版本取代。因此,僅有最後被寫入之gAT區 段中的版本係有效的。 圖17B為欲被記錄於一個以上gat區塊中的該等群位址 表(GAT)區段的範例圖式。一 GAT區塊係一專門用來記錄 GAT區段的元區塊。當更新一 GAT區段時,其會被寫入該 GAT區塊720中的下個可用實體區段位置之中。所以,於 該G AT區塊中可能會存在一 GAT區段的多重拷貝,不過, 僅有最後被寫入的拷貝係有效的。舉例來說,GAT區段45 便已經被更新至少兩次,最新的版本才係有效的版本。該 G AT區塊中每個有效區段的位置可利用該區塊中最後被寫 入的G AT區段中的一索引集來辨認。於此範例中,該區塊 中最後被寫入的GAT區段係GAT區段56而其索引集則係會 取代所有先岫索引集的有效索引集。當該GAT區塊最後完 全充滿GAT區段之後,便可藉由將所有有效區段重新寫至 新的區塊位置以於一控制寫入作業期間來緊湊處理該區 98672.doc -52- 1272483 塊。接著便可抹除該滿載的區塊。 如前述,一 G AT區塊含有一邏輯位址空間區域中一邏輯 連續群集的登錄項。一 GAT區塊内的GAT區段各含有供128 個連續邏輯群使用的邏輯至實體映對資訊。用於儲存一 G AT區塊所擴及的位址範圍内所有邏輯群的登錄項所需要 的G AT區段數量僅佔去該區塊中總區段位置的一部份。所 以,可藉由將一 G AT區段寫入該區塊中下個可用的區段位 置處來更新該區段。所有有效G AT區段的索引及它們在該 G AT區塊中的位置均會被保存在最近被寫入的gat區段中 的一索引攔位之中。一 GAT區塊之總區段中被有效GAT區 段佔去的部份係一項系統設計參數,其通常為25%。不 過’每個GAT區塊最多會有64個有效的GAT區段。於具有 大邏輯容量的系統中,可能需要將GAT區段儲存於一個以 上的GAT區塊中。於此情況中,每個gat區塊均和一固定 範圍的邏輯群相關。 GAT更新係控制寫入作業的一部份,當該abl用罄配置 用的區塊時便會觸發該GAT更新(參見圖1 8)。該項更新會 與ABL填充作業及CBL淨空作業同時實施。於GAT更新作 業期間,一 GAT區段會利用來自該已關閉更新區塊清單中 對應登錄項的資訊來更新登錄項。當更新一 GAT登錄項之 後,便可從該已關閉更新區塊清單(CUBL)中移除任何對 應的登錄項。舉例來說,可以該已關閉更新區塊清單中第 一登錄項為基礎來選擇欲更新的GAT區段。經過更新的區 I又則可寫入該GAT區塊中下個可用的區段位置中。 98672.doc 1272483 當沒有任何區段位置可供一已更新的GAT區段使用時, 於控制寫入作業期間便會發生GAT覆寫作業。其會配置一 新的GAT區塊,並且依照循序順序從該滿載的gat區塊中 拷貝該GAT索引所定義的有效GAT區段。接著便可抹除該 滿載的GAT區塊。 一 G AT快取係位於控制器ram 130之中,其為一 GAT區 段中該等128個登錄項之一部份中複數個登錄項的副本。 G AT快取登錄項的數量係一項系統設計參數,標準值為3 2 個。每個從一GAT區段中讀取一登錄項時,便會為該相關 區段部份產生一 GAT快取。可以保留多個GAT快取。該數 量係一項設計參數,標準值為4個。可以最近最少被使用 的方式為基礎,利用一不同區段部份的登錄項來覆寫一 G AT快取。 已抹除元區塊管理 圖2所示之抹除區塊管理器160會利用一組清單來保存目 錄與糸統控制資訊’用以管理抹除區塊。該些清單會被分 散於該控制器RAM 130及快閃記憶體2〇〇之中。當必須配 置已抹除元&塊來儲存使用者資料或是儲存系統控制資 料結構時’便要在被保留在控制器RA1V[中之配置區塊清單 (ABL)(參見圖15)中選出下個可用的元區塊號碼。同樣 地’當一元區塊於已經除役後被抹除時,其號碼便會被加 進同樣係被保留在控制器RAM中之已清除區塊清單(cbl) 中。非常靜態的目錄與系統控制資料則會被儲存於快閃記 憶體之中。該些包含已抹除區塊清單,以及一列出該快Μ 98672.doc -54- 1272483 記憶體中所有元區塊之已抹除狀態的位元圖(map)。該等 已抹除區塊清單及MAP均會被儲存於個別的區段之中並且 會被記錄至一專屬的元區塊(稱為MAP元區塊)之中。該些 清單係分散於該控制器RAM與快閃記憶體之中,其會提供 一已抹除區塊記錄階層,以便有效地管理已抹除元區塊的 使用情形。 圖1 8為針對使用及循環使用已抹除區塊而言,該控制與 目錄資訊的分佈與流動的概略方塊圖。該控制與目錄資料 會被保存在複數個清單之中,該等清單則係被保留於控制 器RAM 130之中或是被保留於駐存在快閃記憶體200中的 MAP區塊750之中。 於該較佳的具體實施例中,該控制器RAM 130會保留該 配置區塊清單(ABL)610以及一份已清除區塊清單 (CBL)740。如先前配合圖15所述,該配置區塊清單(Abl) 會追蹤最近被配置用於儲存使用者資料或是儲存系統控制 資料結構的元區塊。當需要配置一新的已抹除元區塊時, 便要在該配置區塊清單(ABL)中選出下個可用的元區塊號 碼。同樣地,該已清除區塊清單(CBL)可用來追蹤已經被 解除配置且抹除的更新元區塊。該ABL與CBL均會被保留 在控制器RAM 130(參見圖1)之中,以便在追蹤該等非常活 躍的更新區塊時可快速存取且容易操縱。 該配置區塊清單(ABL)會追蹤一群已抹除的元區塊並且 將邊寻已抹除的元區塊配置成一更新區塊。因此,可由一 項屬性來描述的該些元區塊中每一者均會指明其究竟係該 9S672.doc -55- 1272483 ABL即將進行之配置中的已抹除區塊、開放的更新區塊或 是已關閉的更新區塊。圖1 8中顯示出該ABL含有一已抹除 ABL清單612、該開放更新區塊清單6丨4以及該已關閉更新 區塊清單616。此外,和該開放更新區塊清單614相關的係 該相關的原始區塊清單615。同樣地,和該已關閉更新區 塊清單相關的係該相關的已抹除原始區塊清單6丨7。如前 面圖15所不’該些相關的清單分別係該開放更新區塊清單 614及该已關閉更新區塊清單6丨6的子集。該已抹除ABL清 單612、該開放更新區塊清單6丨4以及該已關閉更新區塊清 單616全部都係該配置區塊清單(Abl)6 1 〇的子集,每一者 中的登錄項各具有對應的屬性。 MAP區塊750係快閃記憶體200中專門用來儲存抹除管理 記錄的元區塊。該MAP區塊會儲存一時間連續的複數個 MAP區塊區段,每個MAP區段均係一抹除區塊管理(ebm) 區段760或是一 MAP區段780。當已抹除區塊已經配置殆盡 且於一元區塊除役時循環使用時,該相關的控制與目錄資 料較佳的係内含於一邏輯區段之中,該邏輯區段可於該 MAP區塊中進行更新,其每一更新資料實例則會被記錄至 一新的區塊區段之中。於該MAP區塊750之中可能存在複 數個EBM區段760與複數個MAP區段780的多重副本,僅有 最新的版本係有效的。一指向該等有效Map區段之位置的 索引係内含於該EMB區塊的一攔位之中。於一控制寫入作 業期間,一有效的EMB區段必定係最後才被寫入該MAp區 塊之中。當該MAP區塊750滿載時,便可藉由將所有有效 98672.doc -56- 1272483 區段覆寫至一新的區塊位置以於控制寫入作業期間對其進 行緊湊處理。接著便可抹除該滿載的區塊。 每個EBM區段760均含有複數份已抹除區塊清單 (EBL)770 ’該等清單係由已抹除區塊集合而成的子集的位 址所組成的清單。該等已抹除區塊清單(EBL)77〇可充當一 緩衝器’其中含有已抹除元區塊號碼,從中可定期地取用 元區塊號碼來重新填充該ABL,並且可定期地將元區塊號 碼加入其中以重新淨空該CBL。該EBL 770可充當緩衝 益’用於作為可用區塊緩衝器(ABb)772、已抹除區塊緩衝 器(EBB)774以及已清除區塊緩衝器(Cbb)776。 可用區塊緩衝器(ABB)772含有一份由位於該ABL610之 中緊跟在前次ABL填充作業後面之該等登錄項所組成的副 本。實際上’其為某次ABL填充作業之後該ABL的備份副 本0 該已抹除區塊緩衝器(EBB)774含有複數個已抹除區塊位 址’該等位址係先前傳送自MAP區段780或該CBB清單 776(說明如下),並且可於一 abl填充作業期間傳送給該 ABL 610 〇 該已清除區塊緩衝器(CBB)776含有已抹除區塊的位址, 該等位址係於一 CBL·淨空作業期間傳送自該CBL 740,並 且稍後將會被傳送給MAP區段780或該EBB清單774。 每個該等MAP區段780均含有一被稱為MAP的位元圖結 構。該MAP會針對快閃記憶體中的每個元區塊使用一位位 元來表示每個區塊的抹除狀態。對應於該Ebm區段中該等 98672.doc -57- 1272483 ABL、CBL、或是已抹除區塊清單中所列之區塊位址的位 元均不會於該MAP中被設為已抹除狀態。 不含有有效資料結構且未被指定為該MAP内之一已抹除 區塊、已抹除區塊清單、ABL或CBL的任何區塊均不會被 該區塊配置演算法使用,所以無法存取用於儲存主系統或 控制資料結構。此方式提供一種簡單的機制,用以從可存 取的快閃記憶體位址空間中排除具有缺陷位置的區塊。 圖1 8所示之階層可有效地管理已抹除區塊記錄,並且對 被儲存於該控制器之RAM中的該等區塊位址清單提供完整 的安全性。可以不頻繁的方式在該些區塊位址清單及一個 以上的MAP區段780之間交換已抹除的區塊登錄項。可於 電源關閉之後,系統初始化期間,透過被儲存於快閃記惊 體中複數個區段中該等已抹除區塊清單及位址變換表中的 資訊,以及有限地掃描快閃記憶體中少量被參照的資料區 塊,便可重建該些清單。 用於更新已抹除元區塊記錄之階層所採用的該等演瞀法 可以下面的順序來配置使用已抹除區塊:將來自該MAp區 塊750的區塊叢於位址順序中交錯來自該cbl 740的區塊位 址叢,其反映的係區塊被該主系統更新的順序。對大部份 的元區塊大小與系統記憶體容量而言,單一 MAP區段可針 對該系統中的所有元區塊提供一位元圖。於此情況中,已 抹除的區塊必定會以和被記錄於此MAP區段中相同的位址 順序來配置使用。 抹除區塊管理作業 98672.doc -58- 1272483 如前面所述,ABL 610清單具有可被配置使用之已抹除 兀區塊以及最近被配置為資料更新區塊之元區塊的位址登 錄項。該ABL中的實際區塊位址數量係介於最大上限與最 小下限之間,上下限兩者均為系統設計變數。製造期間被 格式化的ABL登錄項數量則與卡片種類及容量具有函數關 係。此外,該ABL中的登錄項數量於接近該系統的壽命終 點時可能會減少,因為可用的已抹除區塊的數量會因為其 壽命期間區塊發生故障而減少。舉例來說,於填充作業之 後,該ABL中的登錄項便可能會指明可供下面用途使用的 區塊。部份被寫入之資料更新區塊的登錄項係每個區塊一 個登錄項,其並不會超過同時被開放之更新區塊最大值的 系統限制。有一至二十個登錄項供可配置成資料更新區塊 的已抹除區塊使用。四個登錄項供可配置成控制區塊的已 抹除區塊使用。 ABL填充作業 當該ABL 610經過配置而耗盡時,其便必須進行再填 充。填充該ABL的其中一項作業係發生於控制寫入作業期 間。當必須配置一區塊,但該ABL所含的已抹除區塊登錄 項卻不足以配置成一資料更新區塊或是特定其它的控制資 料更新區塊時便會觸發此項作業。於一控制寫入期間,爷 ABL填充作業會與GAT更新作業同時進行。 於一 ABL填充作業期間會發生下面的動作。 1·保留具有目前資料更新區塊之屬性的Abl登錄項。 2·保留已關閉資料更新區塊之屬性的ABI^登錄項, 、、 除非 98672.doc -59- 1272483 該區塊的某個登錄項正於該同時進行的GAT更新作業中被 寫入,於此情況中則會從該ABL中移除該登錄項。 3. 保留未被配置之抹除區塊的ABL登錄項。 4. 對該ABL進行緊湊處理,移除因登錄項移除所產生的 間隙,進而保持登錄項的順序。 5. 藉由附加來自該EBB清單中下次可用的登錄項以完全 填充該ABL。 6. 利用該ABL中該等目前的登錄項來覆寫該ABB清單。 CBL淨空作業 CBL係一份由控制器RAM之中已抹除之區塊位址所組成 的清單,已抹除區塊登錄項之數量限制和ABL相同。淨空 該CBL的其中一項作業係發生於控制寫入作業期間。所 以,其會與ABL填充作業/GAT更新作業、或是CBI區塊寫 入作業同時進行。於一 CBL淨空作業中,登錄項會從該 CBL 740中被移除並且寫入該CBB清單776之中。 MAP交換作業 當該EBB清單774已經淨空時,於一控制寫入作業期間 便會於該等MAP區段780及該等EBM區段760之間定期進行 MAP交換作業。假使該系統中所有已抹除的元區塊均被記 錄於該EBM區段760之中的話,那麼便沒有任何的MAP區 段780存在且不用實施任何的MAP交換。於一MAP交換作 業期間,一用於將已抹除區塊饋送給EBB 774的MAP區段 會被視為一來源MAP區段782。相反地,用於從該CBB 776 中接收已抹除區塊的MAP區段則會被視為一目的MAP區段 98672.doc -60- 1272483 784。假使僅有一 MAP區段存在的話,那麼其便同時充當 來源與目的MAP區段,其定義如下。 於一 MAP交換期間會實施下面的動作。 1·以遞增指標的方式為基礎,選擇一來源MAp區段。 2.以不在該來源MAP區段中之第一 CBB登錄項中的區塊 位址為基礎來選擇一目的map區段。 3·如該CBB中相關登錄項所定義的方式來更新該目的 MAP區段,並且從該CBB中移除該等登錄項。 4·將該已更新的目的MAP區段寫入該MAp區塊之中,除 非沒有分離的來源MAP區段存在。 5·如該CBB中相關登錄項所定義的方式來更新該來源 MAP區段,並且從該CBB中移除該等登錄項。 6·將該CBB中剩餘的登錄項附加至該ebb之中。 7·利用該來源MAP區段所定義之已抹除區段位址盡可能 地填充該EBB。 8·將該已更新的來源MAP區段寫入該MAp區塊之中。 9·將一已更新的EBM區段寫入該MAP區塊之中。 清單管理 圖18所示的係該控制與目錄資訊於該等各種清單間的分 佈與流動情形。為方便起見,將圖18中用以於該等清單之 元件之間移動登錄項的作業或是改變登錄項之屬性=作業 標示成下面的[A]至[0]。 、 [A]當一已抹除區塊被配置成一更新區塊供主系統資 料使用時,該區塊位於該ABL中之登錄項的屬性便會從【 98672.doc -61 - 1272483 抹除ABL區塊變成開放更新區塊。 [B] 當一已抹除區塊被配置成一控制區塊時,該區塊 位於該ABL中之登錄項便會被移除。 [C] 當產生一具有開放更新區塊屬性的ABL登錄項時, 便會將^ 相關原始區塊搁位加入該登錄項之中,用以記鋒 欲被更新之該邏輯群的原始元區塊位址。此資訊可從該 GAT中取得。 [D] 當關閉一更新區塊時,該區塊位於該ABL中之登錄 項的屬性便會從開放更新區塊變成已關閉更新區塊。 肇 [E] 當關閉一更新區塊時,便會抹除其相關的原始區 塊,而且該區塊位於該ABL中之登錄項中的相關原始區塊 攔位的屬性便會變成已抹除原始區塊。 [F] 於一 ABL填充作業期間,於相同的控制寫入作業期 間於該GAT中位址被更新的任何已關閉更新區塊均會從該 ABL中移除其登錄項。 [G] 於一 ABL填充作業期間,當從該ABl中移除一已關 _ 閉更新區塊的登錄項時,便會將其相關的已抹除原始區塊 的登錄項移至該CBL之中。
[H] *抹除一控制區塊時,便會將其登錄項加入該cbL 之中。 · [I] 於— ABL填充作業期間,已抹除的區塊登錄項會從 , 該刪清單中被移至該概,並且被賦予已抹除皿區塊 的屬性。 U]於ABL填充作業期間修改所有相關的abl登錄項 98672.doc -62- 1272483 之後,該ABL中的該等區塊位址便會取代該abb清單中的 該等區塊位址。 [K] 於控制寫入期間和一 ABL填充作業同一時間,該 CBL中已抹除區塊的登錄項會被移至該cbb清單中。 [L] 於一 MAP交換作業期間,所有相關的登錄項均會 從該CBB清單移至該MAP目的區段。 [M] 於一 MAP交換作業期間,所有相關的登錄項均會 從該CBB清單移至該MAP來源區段。 [N] 接續[L]與[M],於一 MAp交換作業期間,所有剩餘 的登錄項均會從該CBB清單移至該EBB清單。 [〇]接續[N],於一 MAP交換作業期間,可能的話,於 [M]中被移動之登錄項以外的登錄項均會從該MAp區段中 被移動以填充該ebb清單。 邏輯至實體位址變換 _為於快閃記憶體中找出__邏輯區段的實體位置,圖2所 示之邏輯至實體位址變換模組140會實施邏輯至實體位址 變換。除了最近被更新的那些邏輯群以外,可利用駐存於 該快閃記憶體·中的群位址表(GAT)或是控制器RAM130 中的GAT快取來實施整批移轉。對最近被更新的邏輯群進 行位址變換將會需要查找主要駐存於控制器RAM 130中之 更新區塊的位址清單。所7 4 ^ 所以針對一邏輯區段位址所進行 的邈輯至實體位址變換的處理會相依於和該區段所在之邏 輯群相關的區塊類型。區塊的類型如τ:完全一致區塊、 貝料更新區塊、雜亂貧料更新區塊、已關閉資料更新 98672.doc -63- 1272483 區塊。 圖1 9為邏輯至實體位址變換的處理流程圖。基本上,可 先使用該邏輯區段位址來查找各個更新目錄(例如該開放 更新區塊清單及該關閉更新區塊清單)來找出該對應的元 區塊與该實體區段。假使該相關的元區塊並非係一更新處 理的一部份的話,那麼便會由該GAT來提供目錄資訊。邏 輯至實體位址變換的步驟如下: 步驟800 :提供一邏輯區段位址。 步驟8 10 :於控制器RAM中該開放更新區塊清單614(參 見圖15與1 8)中查找所提供的邏輯位址。假使查找失敗的 話’便進入步驟820,否則便進入步驟830。 步驟820 :於該已關閉區塊清單61 6中查找所提供的邏輯 位址。假使查找失敗的話,該所提供的邏輯位址便並非係 任何更新處理的一部份;進入步驟,進行GAT位址變 換。否則便進入步驟860,進行已關閉更新區塊位址變 換。 步驟830 :假使含有該所提供之邏輯位址的更新區塊係 循序的話,進入步驟84〇,進行循序更新區塊位址變換。 否則便進入步驟850,進行雜亂更新區塊位址變換。 步驟840 :利用循序更新區塊位址變換來取得該元區塊 位址。進入步驟880。 步驟850 :利用雜亂更新區塊位址變換來取得該元區塊 位址。進入步驟880。 步驟860 ··利用已關閉更新區塊位址變換來取得該元區 98672.doc -64- 1272483 塊位址。進入步驟880。 =7〇 ·利用鮮位址表(GAT)移#來取得該& ^ 址。進入步騾880。 鬼位 广驟880 ·將該元區塊位址轉換成一實體位址。該 方法會相依於該元區塊是否已經被重新連結。^ 步驟890 ··已取得實體區段位址。 下文將更詳細說明該#各種位址變換處理。 循序更新區塊位址變換(步驟840) /該開放更新區塊清單614(參見圖i5_)中之資^便 可直接完成和-循序更新區塊相關的邏輯群中之目標邏 區段位址的位址變換,其方式如下。 1·從該份清單中「頁標鐵」與「已寫入的區段數」等攔 位中判斷該目標邏輯區段究竟係位於該更新區塊之中或是 其相關的原始區塊之中。 2·從該份清單中讀取適合該目標邏輯區段的元區塊位 址〇 元區塊内之該區 3·從該適當的「頁標藏」欄位中決定該 段位址。 雜亂更新區塊位址變換(步驟850) 和一雜i更新區塊相關的邏輯群中之目標邏輯區段位址 的位址變換序列如下。 1.假使從RAM中的雜亂區段清單中判斷出該區段係一最 近被寫入的區段的話,從其在此清單中的位置便可直接完 成位址變換。 98672.doc -65· 1272483 2·該CBI區塊中該最近被寫入的區段會於其雜亂區塊資 料欄位中含有和該目標邏輯區段位址有關的該雜亂更新區 塊的實體位址。其還會於其間接區段索引攔位中含有和此 雜亂更新區塊有關的最後被寫入的CBI區段的CBI區塊内 的偏移(參見圖16A-16E)。 3.該些欄位中的資訊均會被快取儲存於ram之中,而不 需要於後續的位址變換期間來讀取該區段。 4·讀取於步驟3處由該間接區段索引欄位確認的CBI區 段。 零 5·將最近被存取之雜亂更新子群的直接區段索引攔位快 取儲存於RAM之中,而不需要實施步驟4處的讀取以重複 存取相同的雜亂更新區塊。 6·於步驟4或步驟5處所讀取的直接區段索引欄位接著便 可確認和含有該目標邏輯區段位址之該邏輯子群有關的該 C BI區段。 7·從於步驟6中所確認的CBI區段中讀取該目標邏輯區段 _ 位址的雜亂區塊索引登錄項。 8·該最近被讀取之雜亂區塊索引欄位可被快取儲存於控 制為RAM之中’而不需要實施步驟4與步驟7處的讀取以重 複存取相同的邏輯子群。 · 9·该雜亂區塊索引登錄項會於該雜亂更新區塊或該相關 、 的原始區塊中定義該目標邏輯區段的位置。假使該目標邏 輯區段之有效副本係位於該原始區塊中的話,便可使用該 原始兀區塊與頁標籤資訊來找出該有效副本。 98672.doc -66 - 1272483 已關閉更新區塊位址變換(步攝86()) 從該已關閉區塊更新清單(參見圖18)中之資訊便可直接 完成和一已關閉更新區塊相關的邏輯群中之目標邏輯區段 位址的位址變換,其方式如下。 1 ·從該份清單中讀取被分配給該目標邏輯群的元區塊位 址0 2.從該清單的「頁標籤」攔位中決定該元區塊内之該區 段位址。 GAT位址變換(步驟870) 假使某一個邏輯群未被該開放更新清單或已關閉更新清 單參照的話,那麼,其在該GAT中的登錄項便係有效的。 被该GAT筝照的邏輯群中之目標邏輯區段位址的位址變換 序列如下。 1 ·估异RAM中該等可用的GAT快取的範圍,用以判斷該 目標邏輯群的一登錄項是否内含於一 GAT快取之中。 2·假使於步驟1中發現該目標邏輯群的話,那麼該GAT 快取便含有完全的群位址資訊,其同時包含元區塊位址和 頁標籤在内,允許進行該目標邏輯群位址的移轉。 3 ·假使違目標位址並不位於一 gat快取之中的話,那麼 便必須讀取該目標GAT區塊的GAT索引,以便確認和該目 標邏輯群位址有關之G AT區段的位置。 4·將最後被存取之GAT區塊的GAT索引保存在控制器 RAM之中,並且可進行存取而不需要從快閃記憶體中讀取 一區段。 98672.doc -67- 1272483 5 ·將一份由每個GAT區塊之元區塊位址及被寫入每個 GAT區塊之中的區段數量所組成的清單保存在控制器ram 之中。假使步驟4處無法取得必要的GAT索引的話,便可 立刻從快閃記憶體之中讀取。 6·從步驟4或步驟6處所獲得的GAT索引所定義的GAT區 塊中的區段位置中讀取和該目標邏輯群位址有關的gat區 段。利用含有該目標登錄項之區段的一部份來更新一 gat 快取。 7.從該目標GAT登錄項内的元區塊位址欄位與「頁標 籤」欄位中取得該目標區段位址。 元區塊至實體位址變換(步驟88〇) 假使和該元區塊位址相關的旗標表示該元區塊已經被重 新連結的話,那麼便從該BLM區中讀取相關的以區段,以 便決疋该目標區段位址的抹除區塊位址。否則,便從該元 區塊位址中直接決定該抹除區塊位址。 控制資料管理 圖20為於該記憶體管理作業進程中對控制資料結構所實 施的作業的階層#意、目。資料更新管理作業會作用於駐存 在RAM之中的各個清單之上。控制寫入作業會作用於快閃 記憶體中該等各個控制資料區段以及專屬區塊之上,而且 還會與RAM中的該等清單交換資料。 資料更新管理作業會於RAM中針對ABL、cbl#及該雜 亂區段清單來實施。當一已抹除區塊被配置為一更新區塊 或控制區塊時,或是關閉一更新區塊時,便會更新咳 98672.doc -68- 1272483 ABL。當抹除一控制區塊時,或是將一已關閉的更新區塊 的某個登錄項寫入該GAT之中時,便會更新該CBL。當一 區段被官λ 馬入一雜亂更新區塊之中時,便會更新該更新雜亂 區段清單。 一控制寫入作業會使得來自RAM中之控制資料結構的資 机被寫入快閃記憶體中的控制資料結構之中,必要時會隨 之更新快閃記憶體與RAM之中其它支援的控制資料結構。 當該ABL不含欲被配置為更新區塊的已抹除區塊的任何其 它登錄項時,或是覆寫該CBI區塊時,便會觸發該項作 業。 ' 於該較佳的具體實施例中,該ABl填充作業、該CBL淨 空作業以及該E B Μ區段更新作業均會在每個控制寫入作業 期間貫施。當含有該ΕΒΜ區段的MAP區塊變成滿載時,便 會將有效的EBM與MAP區段拷貝至一已配置的已抹除區塊 之中’並且抹除該先前的MAP區塊。 在每個控制寫入作業期間會寫入一 GAT區段,並且會進 而修改該已關閉更新區塊清單。當一 GAT區塊變成滿載 時,便會實施一 GAT覆寫作業。 如先前所述,經過幾次的雜亂區段寫入作業之後,便會 寫入一CBI區段。當該CBI區塊變成滿載時,便會將有效 的CBI區段拷貝至一已配置的已抹除區塊之中,並且抹除 該先前的CBI區塊。 如先前所述,當該EBM區段中的EBB清單中沒有任何其 它已抹除區塊登錄項時,便會實施一 MAP交換作業。 98672.doc -69 - 1272483 一MAP位址(MAPA)區段(其會記錄該MAP區塊的目前位 址)會於該MAP區塊被覆寫的每個位置之中被寫入—專屬 的MAPA區塊之中。當該MAPA區塊變成滿载時,便會將 有效的Μ APA區段拷貝至一已配置的已抹除區塊之中,並 且抹除該先前的MAPA區塊。 一開機(Boot)區段會於該MAPA區塊被覆寫的每個位置 之中被寫入一目前的開機區塊之中。當該開機區塊變成滿 載時,便會將有效的開機區段從該開機區塊的目前版本中 拷貝至該備份版本,接著該備份版本便會成為目前的版 本。先前的目前版本會被抹除並且成為該備份版本,而該 有效的開機區段則會被寫回其中。 雖然已經針對特定的具體實施例來說明本發明的各項觀 點,不過,應該瞭解的係,本發明係受到隨附申請專利範 圍之完整範疇的保護。 【圖式簡單說明】 圖1為一適合實現本發明之記憶體系統的主硬體組件的 概略示意圖。 圖2為根據本發明—較佳具體實施例的記憶體,盆係被 組織成複數個實體區段群(或元區塊)並且由該控制器的記 憶體管理器來管理。 圖3A⑴3Α(ιιι)為根據本發明一較佳具體實施例介於一 避輯群與一凡區塊間之映對的概略示意圖。 圖3Β為介於複數個邏輯群與複數個元區塊間之 略示意圖。 % 98672.doc -70- 1272483 圖4為'一 形0 元£塊於實體記憶體令 和各種結構的排 列情 圖5A為連結不同平面的最 不意圖。 小抹除單位所構成的 元區塊的 平面中選出一 面中選出一個 圖5B所示之其中一具體實施例中合從 最小抹除單位__以連結成—元區塊。 圖5C所示之另一具體實施例中會從每個平 以上的MEU用以連結成一元區塊。 制器與快閃記憶 圖6為該元區塊管理系統被設計在該控 體中時的概略方塊圖。 圖7A為依序被寫入_循序更新區塊中的一邏輯群之中的 複數個區段的範例圖式。 圖7B為以|隹乱順序被寫入一雜亂更新區士鬼中的一邏輯群 之中的複數個區段的範例圖式。 圖8係進行兩次具有不連續邏輯位址的分離主系統寫入 作業而依序被寫入一循序更新區塊中的一邏輯群之中的複 數個區段的範例圖式。 圖9為根據本發明一通用具體實施例,由該更新區塊管 理器所實施之用於更新一邏輯資料群的處理流程圖。 圖1 〇為根據本發明一較佳具體實施例,由該更新區塊管 理器所實施之用於更新一邏輯資料群的處理流程圖。 圖11A為關閉圖10所示之雜亂更新區塊的合併處理的更 詳細流程圖。 圖11B為關閉圖10所示之雜亂更新區塊的緊湊處理的更 98672.doc 1272483 §羊細流程圖。 12B為—列出一邏輯群之該等可能狀態的表格 可能狀態 圖12A為一邏輯群的所有 該等狀態間可能的移轉情形 圖 圖13A為一元區塊的所有可 該等狀態間可能的移轉情形。 群的一實體群。 以及於各種作業下 能狀態,以及於各種作業下 一元區塊係一對應於一邏輯 圖13B為-列出一元區塊之該等可能狀態的表格。 圖14(A)-14(J)為對該邏輯群之狀態以及該實體元區塊所 進行之各項作業的效果的狀態圖。 圖15為用於追蹤已開放及已關閉之更新區塊與已抹除區 塊以進打配置的配置區塊清單(ABL)的結構的較佳具體實 施例。 圖16A為一雜亂區塊索引區段的資料欄位。 圖16B為欲被記錄於一專屬元區塊中的該等雜亂區塊索 引(CBI)區段的範例圖式。 圖16C為存取一正在進行雜亂更新之假定邏輯群中一邏 輯區段的貢料的流程圖。 圖16 D為根據一替代具體貫施例,其中邏輯群已經被分 割成複數個子群,存取一正在進行雜亂更新之假定邏輯群 中一邏輯區段的資料的流程圖。 圖16E為於將每個邏輯群分割成多個子群的具體實施例 中的雜亂區塊索引(CBI)區段的範例及其功能的示意圖。 圖17A為一群位址表(GAT)區段的資料攔位。 98672.doc -72- 1272483 圖17B為欲被記錄於一 GAT區塊中的該等群位址表(GAT) 區段的範例圖式。 圖1 8為針對使用及循環使用已抹除區塊而言,該控制與 目錄資訊的分佈與流動的概略方塊圖。 圖19為邏輯至實體位址變換的處理流程圖。 圖20為於該記憶體管理作業進程中對控制資料結構所實 施的作業的階層示意圖。 、 【主要元件符號說明】 10 主系統 20 記憶體系統 100 控制器 110 介面 120 處理器 121 協同處理器 122 唯讀記憶體 124 非揮發性記憶體 130 隨機存取記憶體 132 快取 134 配置區塊清單(ABL) 136 已清除區塊清單(CBL) 140 邏輯至實體位址變換模組 150 更新區塊管理器 152 循序更新模組 154 雜亂更新模組 98672.doc -73 - 1272483 160 抹除區塊管理器 162 封閉區塊管理模組 170 元區塊連結管理器 180 控制資料交換模組 200 記憶體 210 群位址表(GAT) 220 雜亂區塊索引(CBI) 230 已抹除區塊清單(EBL) 240 MAP 610 配置區塊清單(ABL) 612 已抹除ABL清單 614 開放更新區塊清單 615 原始區塊清單 616 已關閉更新區塊清單 617 已抹除原始區塊清單 620 CBI區塊 700 邏輯群 702 原始區塊 704 雜亂更新區塊 720 G AT區瑰* 740 已清除區塊清單(CBL) 750 MAP區塊 760 抹除區塊管理(EBM)區段 770 已抹除區塊清單(EBL)
98672.doc -74- 1272483 772 可用區塊緩衝器(ABB) 774 已抹除區塊緩衝器(EBB) 776 已清除區塊緩衝器(CBB) 780 MAP區段 782 來源MAP區段 784 目的M A P區段
98672.doc -75-

Claims (1)

1272483 十、申請專利範圍: 1. -種於被組織成複數個區塊的非揮發性記憶體中儲存且 更新資料的方法,每個區塊均係可—起抹除的複數個記 憶體單位,每個記憶體單位均可用來料—邏輯資料單 位,該方法包括: ' 將資料組織成複數個邏輯群,每個邏輯群均會被分割 成複數個邏輯資料單位,每個邏輯單位均可儲存於一區 塊的記憶體單位之中; 依照第-順序將-假定邏輯群中的所有邏輯單位儲存 於一第一區塊的複數個記憶體單位之中; 依照第二順序將該假定邏輯群中一連串已更新的邏輯 單位儲存於專屬於該假定邏輯群的第二區塊的複數個記 憶體單位之中,直到預設的關閉條件出現關閉該第二區 塊以儲存進一步的更新為止·,以及 響應該欲被關閉之第二區塊進行下面任一項作業: 當該等第二與第一順序相同時,利用該第二區塊來取 代該第一區塊,或者 ‘當該等第二與第一順序不相同時,利用一第三區塊來 取代該第一區塊,該第三區塊已經依照該第一順序進行 合併’其中該假定邏輯群中每個邏輯單位的最新版本係 收集自該等第一與第二區塊。 2.如請求項1之方法,進一步包括: 98672.doc 1272483 響應該欲被關閉之第二區塊且該第二區塊含有少於預 設數量的不同邏輯單位,將來自該第二區塊的每個邏輯 單位的最新版本緊湊處理成一第四區塊;以及 利用該第四區塊作為用於儲存該假定邏輯群之更新的 專屬區塊來取代該第二區塊。 3.如請求項2之方法,其中不同邏輯單位的該預設數量係 该假定邏輯群中之邏輯單位數量的一半。 4·如睛求項丨之方法,其中該關閉的預設條件係當該 區塊滿載時。 5. 如請求項1之方法,其中該關閉的預設條件係,該第二 區塊至目前為止均以和該第一順序相同的順序來儲存該 等:連串更新,但是該等-連串更新中的目前更新卻: 依照該順序,且該第二區塊至少被填充一半。 6. ::奢求項5之方法,其中於依照該第一順序與收集自該 =第與第一區塊之戎假定邏輯群中的每個邏輯單位的 取新版本進行合併之後便可關閉該第二區塊。 7·如請求項丨之方法,其中: ^該將—連串已更新邏輯單位儲存至該第二區塊至目 财為止均以和該第—順序相同的順序來儲存但是該等一 連:更新中的目前更新中的位址跳躍所展開的間隙卻非 依妝该順序時,其更進一步包含: 新以前,先利用拷 的邏輯單位來填充 於儲存該等一連串更新中的目前更 貝自該第一區塊之該位址跳躍所展開 该間隙。 9S672.doc 1272483 8.如請求項1之方法,其中: ==-連串已更新邏輯單位儲存至該第二 均以和該第一順序相同的順序 ::更新Μ目前更新卻非依照該順序時:―: 依照該第二順序來保留被 個已更新邏輯單位的索引。亥弟—區塊中之複數 9·如請求項8之方法,其中會將該 記憶體之中。 ㈢於鑌非揮發性 10 ·如凊求項1之方法,豆 — 本审虹 ’、假疋邏軏群係可同時被該方 法更新的多個邏輯群中的其中一者。 11 ·如睛求項1之方法,苴 ^ 〃中4非揮㉜性記憶體具有複數個 /予勁閘極記憶胞。 12.如請求項1之t ',八中該非揮發性記憶體閃 EEPROM。 、版你厌閃 13 ·如請求頊]Γ、+ , 、 法,其中該非揮發性記憶體係NROM。 14 ·如請求項1之古 之方法,其中該非揮發性記憶體係一記情 ^ 卡。 〜 1 5 ·如讀'求項1 5 1 j / #呈古、中任—項之方法,其中該非揮發性記憶 一 /、可各儲存一位元資料的複數個記憶胞。 16 ·如請求項1 $ ! 1 , 一 中任一項之方法,其中該非揮發性記憶 體具有可各儲存一位元以上資料的複數個記憶胞。 17· -種非揮發性記憶體,其包括: 98672.doc 1272483 一被組織成複數個區塊的記憶體,每個區塊均係可一 起抹除的複數個記憶體單位’每個記憶體單位係用於儲 存一邏輯資料單位; 一控制器,用來控制該等區塊的作業; 該控制器會依照第一順序將其假定邏輯群中的所有邏 輯單位儲存於一第一區塊的複數個記憶體單位之中; 該控制器會依照第二順序將該假定邏輯群中—連串已 更新的邏輯單位儲存於專屬於該假定邏輯群的第二區塊 的複數個記憶體單位之中,直到預設的關閉條件出現關 閉該第二區塊以儲存進一步的更新為止;以及 該控制器會響應該欲被關閉之第二區塊進行下面任一 項作業: 當該等第二與第一順序相同時,利用該第二區塊來取 代该弟一區塊,或者 當該等第二與第一順序不相同時,利用一第三區塊來 取代該第一區塊,該控制器已經依照該第一順序來儲存 該第二區塊,其中該假定邏輯群中每個邏輯單位的最新 版本係收集自該等第一與第二區塊。 18. 如請求項17之非揮發性記憶體,進一步包括: 響應該欲被關閉之第二區塊且該第二區塊含有少於預 設數量的不同邏輯單位,該控制器會將來自該第二區塊 的每個邏輯單位的最新版本儲存至一第四區塊;以及 利用„玄第四區塊作為用於健存該假定邏輯群之更新的 專屬區塊來取代該第二區塊。 98672.doc 1272483 19 ·如請求項1 8之非揮發性記憶體,其中不同邏輯單位的該 預設數量係該假定邏輯群中之邏輯單位數量的一半。 20·如请求項17之非揮發性記憶體,其中該關閉的預設條件 係當該第二區塊滿載時。 21 ·如请求項17之非揮發性記憶體,其中該關閉的預設條件 係,該第二區塊至目前為止均以和該第一順序相同的順 序來儲存該等一連串更新,但是該等一連串更新中的目 前更新卻非依照該順序,且該第二區塊至少被填充一 半。 22·如請求項21之非揮發性記憶體,其中於依照該第一順序 與收集自該等第一與第二區塊之該假定邏輯群中的每個 邏輯單位的最新版本進行合併之後便可關閉該第二區 塊。 23·如請求項丨7之非揮發性記憶體,其中: 當該將一連串已更新邏輯單位儲存至該第二區塊至目 月為止均以和該第一順序相同的順序來儲存但是該等一 連串更新中的目前更新中的位址跳躍所展開的間隙卻非 ‘ 依照該順序時,其更進一步包含: 於儲存該等一連串更新中的目前更新以前,先利用拷 貝自該第一區塊之該位址跳躍所展開的邏輯單位來填充 该間隙。 ' 24·如請求項17之非揮發性記憶體,其中: 二备该將一連串已更新邏輯單位儲存至該第二區塊至目 前為止均以和該第一順序相同的順序來儲存但是該等一 98672.doc 1272483 其更進一步 連串更新中的目前更新卻非依照該順序時 包含: 二區塊中之複數 依照該第二順序來保留被儲存於該第 個已更新邏輯單位的索引。 25·如請求項24之非揮發性記憶體, 該非揮發性記憶體之中。 其中 會將該索引保留於 其中該假定邏輯群係可 中的其中一者。 其中該非揮發性記憶體 其中該非揮發性記憶體 其中該非揮發性記憶體 26.如請求項1 7之非揮發性記憶體, 同時被該方法更新的多個邏輯群 2 7 ·如請求項1 7之非揮發性記憶體, 具有複數個浮動閘極記憶胞。 2 8 ·如凊求項17之非揮發性記憶體 係快閃EEPROM。 2 9 ·如請求項17之非揮發性記憶體 係 NROM。 3 0 ·如睛求項17之非揮發性記+咅辦 , 尸平知丨王圯體,其中該非揮發性記憶體 係一記憶卡。 3 1 ·如凊求項17至3 0中任一頊之非播代α ^ 貝之非揮發性記憶體,其中該非 •揮發性記憶體具有可久辟+ ^ 口錯存一位元資料的複數個記憶 胞0 32·如請求項17至30中任一頊夕非按於u ^ 朴丄 貝之非揮發性記憶體,其中該非 揮發性§己憶體具有可久y- 、,j谷儲存一位元以上資料的複數個記 憶胞。 98672.doc
TW093141373A 2003-12-30 2004-12-30 Non-volatile memory and method with block management system TWI272483B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/750,155 US7139864B2 (en) 2003-12-30 2003-12-30 Non-volatile memory and method with block management system

Publications (2)

Publication Number Publication Date
TW200534092A TW200534092A (en) 2005-10-16
TWI272483B true TWI272483B (en) 2007-02-01

Family

ID=34701161

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093141373A TWI272483B (en) 2003-12-30 2004-12-30 Non-volatile memory and method with block management system

Country Status (9)

Country Link
US (10) US7139864B2 (zh)
EP (2) EP2293196B1 (zh)
JP (5) JP4938460B2 (zh)
KR (1) KR101012274B1 (zh)
CN (5) CN100435115C (zh)
AT (3) ATE498893T1 (zh)
DE (3) DE602004031461D1 (zh)
TW (1) TWI272483B (zh)
WO (1) WO2005066972A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856425B2 (en) 2010-09-27 2014-10-07 Silicon Motion Inc. Method for performing meta block management, and associated memory device and controller thereof
US10089225B2 (en) 2014-10-31 2018-10-02 Silicon Motion, Inc. Improving garbage collection efficiency by reducing page table lookups
TWI747349B (zh) * 2020-06-30 2021-11-21 大陸商合肥沛睿微電子股份有限公司 儲存裝置之低級格式化方法

Families Citing this family (580)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7299316B2 (en) * 2004-02-26 2007-11-20 Super Talent Electronics, Inc. Memory flash card reader employing an indexing scheme
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US8019943B2 (en) * 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US8019789B2 (en) * 2001-07-03 2011-09-13 Research In Motion Limited System and method of object-oriented persistence
DE60306209T2 (de) * 2003-02-12 2006-10-19 Research In Motion Ltd., Waterloo Verfahren, mobile vorrichtungen und rechnerlesbare media zur datenverwaltung
US20040192132A1 (en) * 2003-03-20 2004-09-30 Fay Ralph Michael Fungi resistant asphalt and asphalt sheet materials
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
DE10349595B3 (de) * 2003-10-24 2004-12-09 Hyperstone Ag Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher
TWI232466B (en) * 2003-10-28 2005-05-11 Prolific Technology Inc Method for updating data of non-volatile memory
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US20050144396A1 (en) * 2003-12-31 2005-06-30 Eschmann Michael K. Coalescing disk write back requests
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
KR100541642B1 (ko) * 2004-03-11 2006-01-10 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP2005301591A (ja) * 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
HUP0400808A2 (hu) * 2004-04-19 2005-11-28 Dr.Kozéky László Géza Fémgőz ívű plazmafáklya és annak alkalmazása a metallurgiában, a plazmaenergiás pirolízisben és vitrifikációban, és más anyagátalakító eljárásokban
US7225291B2 (en) * 2004-04-19 2007-05-29 Phison Electronics Corp. Storage controlling and judging method of flash memory
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
JP4817836B2 (ja) 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques 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
JP4815825B2 (ja) * 2005-03-10 2011-11-16 日本電気株式会社 ディスクアレイ装置及びその再構築方法
JP4738038B2 (ja) * 2005-03-25 2011-08-03 株式会社東芝 メモリカード
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
US7849253B2 (en) * 2005-04-04 2010-12-07 Standard Microsystems Corporation Method for fast access to flash-memory media
US8244958B2 (en) * 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
DE102005022019A1 (de) * 2005-05-12 2007-02-01 Giesecke & Devrient Gmbh Sichere Verarbeitung von Daten
WO2006126445A1 (ja) * 2005-05-23 2006-11-30 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
JP4547028B2 (ja) * 2005-08-03 2010-09-22 サンディスク コーポレイション ブロック管理を伴う不揮発性メモリ
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
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
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
EP1920335B1 (en) * 2005-08-03 2011-05-11 SanDisk Corporation Reclaiming data storage capacity in flash memory systems
US20070055793A1 (en) * 2005-08-03 2007-03-08 Wellsyn Technology, Inc. System of managing peripheral interfaces in IPMI architecture and method thereof
US20070084375A1 (en) * 2005-08-10 2007-04-19 Smith Kyle S High density cartridge and method for reloading
JP2007052717A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
JP4751163B2 (ja) * 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
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
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
US20070106842A1 (en) * 2005-11-04 2007-05-10 Conley Kevin M Enhanced first level storage caching methods using nonvolatile memory
US7747927B2 (en) 2005-11-22 2010-06-29 Sandisk Corporation Method for adapting a memory system to operate with a legacy host originally designed to operate with a different memory system
US7739472B2 (en) 2005-11-22 2010-06-15 Sandisk Corporation Memory system for legacy hosts
US8307149B2 (en) * 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7376034B2 (en) * 2005-12-15 2008-05-20 Stec, Inc. Parallel data storage system
US7644251B2 (en) 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
WO2007073536A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with memory allocation for a directly mapped file storage system
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
WO2007073538A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with data alignment in a directly mapped file storage system
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US7245556B1 (en) * 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
US7609564B2 (en) * 2005-12-31 2009-10-27 Intel Corporation Systems and techniques for non-volatile memory buffering
KR100703807B1 (ko) * 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
JP2007233838A (ja) * 2006-03-02 2007-09-13 Toshiba Corp メモリシステムの制御方法
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
JP4171749B2 (ja) * 2006-04-17 2008-10-29 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム
US20080005727A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity
US20080127220A1 (en) * 2006-06-30 2008-05-29 Robert Paul Morris Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application
US20080022265A1 (en) * 2006-06-30 2008-01-24 Morris Robert P Methods, systems, and computer program products for generating and using object modules
US20080005528A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
US20080005728A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment
JP4956068B2 (ja) * 2006-06-30 2012-06-20 株式会社東芝 半導体記憶装置およびその制御方法
US7783956B2 (en) * 2006-07-12 2010-08-24 Cronera Systems Incorporated Data recorder
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US7466600B2 (en) 2006-08-03 2008-12-16 Micron Technology, Inc. System and method for initiating a bad block disable process in a non-volatile memory
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US20080040544A1 (en) * 2006-08-08 2008-02-14 Jason Caulkins Computer System For Reading And Writing Data
US7366017B2 (en) 2006-08-22 2008-04-29 Micron Technology, Inc. Method for modifying data more than once in a multi-level cell memory location within a memory array
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US7280398B1 (en) * 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
US7774392B2 (en) * 2006-09-15 2010-08-10 Sandisk Corporation Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US7779056B2 (en) * 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
JP4682261B2 (ja) * 2006-09-15 2011-05-11 サンディスク コーポレイション 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
TWI376600B (en) * 2006-09-28 2012-11-11 Sandisk Corp Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7444462B2 (en) * 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7441071B2 (en) 2006-09-28 2008-10-21 Sandisk Corporation Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
WO2008042592A2 (en) * 2006-09-29 2008-04-10 Sandisk Corporation Phased garbage collection
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
JP4609406B2 (ja) * 2006-10-12 2011-01-12 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
KR20090088858A (ko) * 2006-10-12 2009-08-20 쌘디스크 코포레이션 최악의 경우 제어 데이터 관리를 사용하는 비휘발성 메모리 및 관리 방법
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US20080120604A1 (en) * 2006-11-20 2008-05-22 Morris Robert P Methods, Systems, And Computer Program Products For Providing Program Runtime Data Validation
KR100843135B1 (ko) * 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
WO2008070172A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for remote direct memory access to a solid-state storage device
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
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
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
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
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
WO2008077285A1 (en) 2006-12-27 2008-07-03 Intel Corporation Method of managing data on a non-volatile memory
US20080162787A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin System for block relinking
US20080162612A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin Method for block relinking
WO2008082950A1 (en) * 2006-12-28 2008-07-10 Sandisk Corporation System for block relinking
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
TWI338856B (en) * 2007-03-09 2011-03-11 Ite Tech Inc A flash memory storing device and a data storing method thereof
US8341375B2 (en) * 2007-03-19 2012-12-25 Sandisk Technologies Inc. Methods for conversion of update blocks based on association with host file management data structures
US7904670B2 (en) * 2007-03-19 2011-03-08 Sandisk Corporation Methods for conversion of update blocks based on comparison with a threshold size
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
US8275953B2 (en) * 2007-03-19 2012-09-25 Sandisk Technologies Inc. Methods for forcing an update block to remain sequential
US20080235464A1 (en) * 2007-03-19 2008-09-25 Shai Traister System for conversion of update blocks based on comparison with a threshold size
US20080235465A1 (en) * 2007-03-19 2008-09-25 Bum Suck So Systems for conversion of update blocks based on association with host file management data structures
KR20080085574A (ko) * 2007-03-20 2008-09-24 삼성전자주식회사 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법
US8041883B2 (en) * 2007-05-09 2011-10-18 Stmicroelectronics S.R.L. Restoring storage devices based on flash memories and related circuit, system, and method
US7991942B2 (en) 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
WO2008147752A1 (en) * 2007-05-24 2008-12-04 Sandisk Corporation Managing housekeeping operations in flash memory
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
JP4444314B2 (ja) * 2007-07-13 2010-03-31 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み制御方法
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
KR100922389B1 (ko) * 2007-07-04 2009-10-19 삼성전자주식회사 플래시 메모리를 위한 색인 스킴
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
KR101348364B1 (ko) 2007-08-23 2014-01-07 삼성전자주식회사 메모리 셀의 이진 신호 판정 방법 및 장치
US20090055574A1 (en) * 2007-08-25 2009-02-26 Bei-Chuan Chen NAND Flash Memory Device And Related Method Thereof
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US7818493B2 (en) * 2007-09-07 2010-10-19 Sandisk Corporation Adaptive block list management
KR20090026941A (ko) * 2007-09-11 2009-03-16 삼성전자주식회사 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US7873803B2 (en) * 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
KR101464338B1 (ko) 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
JP4829202B2 (ja) * 2007-11-02 2011-12-07 株式会社日立製作所 記憶装置及びメモリ制御方法
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
JP4417994B2 (ja) * 2007-11-26 2010-02-17 株式会社東芝 素材データ記録装置及び、素材データ記録方法
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US7953919B2 (en) * 2007-12-21 2011-05-31 Spansion Llc Physical block addressing of electronic memory devices
JP2009157515A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 半導体メモリコントローラおよび半導体メモリ
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
CN101364444B (zh) * 2008-02-05 2011-05-11 威盛电子股份有限公司 控制方法及运用该控制方法的存储器及处理系统
JP4471007B2 (ja) * 2008-02-05 2010-06-02 ソニー株式会社 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体
JP2009199199A (ja) * 2008-02-20 2009-09-03 Hitachi Ltd ストレージシステム及びそのデータライト方法
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
JP4164118B1 (ja) * 2008-03-26 2008-10-08 眞澄 鈴木 フラッシュメモリを用いた記憶装置
US20090249021A1 (en) * 2008-03-26 2009-10-01 Morris Robert P Method And Systems For Invoking An Advice Operation Associated With A Joinpoint
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
TWI377580B (en) * 2008-04-03 2012-11-21 Wistron Corp Method and related device for data storage in an electronic device
US20100017558A1 (en) 2008-04-11 2010-01-21 Richard Matthew Fruin Memory device operable in read-only and re-writable modes of operation
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
WO2009129338A2 (en) * 2008-04-15 2009-10-22 Adtron, Inc. Flash management using sequential techniques
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
US8180954B2 (en) * 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US8185778B2 (en) * 2008-04-15 2012-05-22 SMART Storage Systems, Inc. Flash management using separate metadata storage
US8028123B2 (en) * 2008-04-15 2011-09-27 SMART Modular Technologies (AZ) , Inc. Circular wear leveling
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
US20090282267A1 (en) * 2008-05-09 2009-11-12 Ori Stern Partial scrambling to reduce correlation
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US20090320012A1 (en) * 2008-06-04 2009-12-24 Mediatek Inc. Secure booting for updating firmware over the air
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI370969B (en) 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8516203B2 (en) 2008-08-13 2013-08-20 Sandisk Technologies Inc. Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
US8103631B2 (en) * 2008-11-19 2012-01-24 Sandisk Il Ltd Merging files on storage and retrieve
KR101469771B1 (ko) * 2008-12-03 2014-12-08 삼성전자주식회사 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법
US8200922B2 (en) * 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8205063B2 (en) * 2008-12-30 2012-06-19 Sandisk Technologies Inc. Dynamic mapping of logical ranges to write blocks
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8250333B2 (en) * 2009-01-05 2012-08-21 Sandisk Technologies Inc. Mapping address table maintenance in a memory device
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
WO2010078222A1 (en) 2009-01-05 2010-07-08 Sandisk Corporation Non-volatile memory and method with write cache partitioning
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8645749B2 (en) * 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR101565975B1 (ko) * 2009-02-27 2015-11-04 삼성전자주식회사 인덱스를 저장하는 플래시 메모리를 포함하는 사용자 장치 및 그것의 인덱스 액세스 방법
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
TWI417884B (zh) * 2009-04-23 2013-12-01 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8296503B2 (en) * 2009-05-26 2012-10-23 Mediatek Inc. Data updating and recovering methods for a non-volatile memory array
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8102705B2 (en) * 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
EP2441004B8 (en) * 2009-06-12 2020-02-19 Violin Systems LLC Memory system having persistent garbage collection
US20100318584A1 (en) * 2009-06-13 2010-12-16 Microsoft Corporation Distributed Cache Availability During Garbage Collection
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
TWI386802B (zh) * 2009-07-03 2013-02-21 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
JP5347779B2 (ja) * 2009-07-07 2013-11-20 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
US9104629B2 (en) * 2009-07-09 2015-08-11 International Business Machines Corporation Autonomic reclamation processing on sequential storage media
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
KR101717644B1 (ko) 2009-09-08 2017-03-27 샌디스크 테크놀로지스 엘엘씨 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
KR101769883B1 (ko) 2009-09-09 2017-08-21 샌디스크 테크놀로지스 엘엘씨 저장부 할당 장치, 시스템, 및 방법
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
KR101689420B1 (ko) 2009-09-09 2016-12-23 샌디스크 테크놀로지스 엘엘씨 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8255655B2 (en) 2009-10-02 2012-08-28 Sandisk Technologies Inc. Authentication and securing of write-once, read-many (WORM) memory devices
US8195909B2 (en) * 2009-10-05 2012-06-05 Seagate Technology Llc Data management in a data storage system
US9753847B2 (en) * 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
CN101794254B (zh) * 2009-11-25 2012-07-04 深圳市硅格半导体有限公司 Nand flash的数据处理方法
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
FR2954572B1 (fr) * 2009-12-23 2020-04-17 Thales Procede de gestion de donnees tournantes.
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
TWI414940B (zh) 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
CN102122233B (zh) * 2010-01-08 2013-04-10 群联电子股份有限公司 区块管理与数据写入方法、闪存储存系统与控制器
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
CN102193869B (zh) * 2010-03-01 2015-05-20 群联电子股份有限公司 存储器管理与写入方法及其存储器控制器与储存系统
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8812816B2 (en) * 2010-03-23 2014-08-19 Apple Inc. Garbage collection schemes for index block
CN101799788B (zh) * 2010-03-23 2014-06-11 中兴通讯股份有限公司 一种分级管理存储资源的方法及系统
US8332460B2 (en) * 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US20110268265A1 (en) * 2010-04-30 2011-11-03 Lathrop Alexander M Disk media security system and method
IT1399916B1 (it) * 2010-04-30 2013-05-09 Balluchi Dispositivo di memoria ad accesso di registro indicizzato
US9563397B1 (en) 2010-05-05 2017-02-07 Western Digital Technologies, Inc. Disk drive using non-volatile cache when garbage collecting log structured writes
CN102243611B (zh) * 2010-05-11 2015-06-17 深圳市朗科科技股份有限公司 数据存储方法和系统
US8381018B2 (en) 2010-05-21 2013-02-19 Mediatek Inc. Method for data recovery for flash devices
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8554741B1 (en) 2010-06-16 2013-10-08 Western Digital Technologies, Inc. Timeline application for log structured storage devices
US8543757B2 (en) 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US8639692B2 (en) * 2010-06-28 2014-01-28 Alcatel Lucent High-dimensional stratified sampling
US20110320910A1 (en) * 2010-06-29 2011-12-29 Yi-Chun Liu Storage management method and storage system
KR20120003283A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
KR101077901B1 (ko) * 2010-07-12 2011-10-31 (주)이더블유비엠코리아 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US9146875B1 (en) 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US8601310B2 (en) * 2010-08-26 2013-12-03 Cisco Technology, Inc. Partial memory mirroring and error containment
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8683295B1 (en) 2010-08-31 2014-03-25 Western Digital Technologies, Inc. Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
KR20120029239A (ko) * 2010-09-16 2012-03-26 삼성전자주식회사 Pram을 이용하는 데이터 기록 시스템 및 그 방법
US8578340B1 (en) 2010-09-24 2013-11-05 Ca, Inc. Recording and replaying computer program execution with recorded execution event breakpoints
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8825977B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life
US8670205B1 (en) 2010-09-29 2014-03-11 Western Digital Technologies, Inc. Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold
US8699171B1 (en) 2010-09-30 2014-04-15 Western Digital Technologies, Inc. Disk drive selecting head for write operation based on environmental condition
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8850161B2 (en) * 2010-10-13 2014-09-30 Riverbed Technology, Inc. Method of improving performance of a data storage device
US8427771B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors
US8612798B1 (en) 2010-10-21 2013-12-17 Western Digital Technologies, Inc. Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
US8429343B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk
US8560759B1 (en) 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
TWI463495B (zh) * 2010-12-10 2014-12-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US8527693B2 (en) 2010-12-13 2013-09-03 Fusion IO, Inc. Apparatus, system, and method for auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
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
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
TWI514136B (zh) * 2010-12-28 2015-12-21 Silicon Motion Inc 快閃記憶裝置及其資料寫入方法
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
US8874872B2 (en) 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
US10049040B2 (en) 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
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
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9021215B2 (en) 2011-03-21 2015-04-28 Apple Inc. Storage system exporting internal storage rules
US9361044B2 (en) * 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
KR20120124285A (ko) * 2011-05-03 2012-11-13 삼성전자주식회사 배드 블록 관리를 위한 방법 및 메모리 시스템
WO2012158514A1 (en) 2011-05-17 2012-11-22 Sandisk Technologies Inc. Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
US20120297121A1 (en) * 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions
TWI447579B (zh) * 2011-05-18 2014-08-01 Phison Electronics Corp 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
US8825944B2 (en) 2011-05-23 2014-09-02 International Business Machines Corporation Populating strides of tracks to demote from a first cache to a second cache
JP2012248109A (ja) * 2011-05-30 2012-12-13 Toshiba Corp マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US8589762B2 (en) 2011-07-05 2013-11-19 International Business Machines Corporation Adaptive multi-bit error correction in endurance limited memories
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
CN102929884B (zh) * 2011-08-10 2016-05-04 阿里巴巴集团控股有限公司 一种收缩虚拟磁盘镜像文件的方法及装置
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US8630056B1 (en) 2011-09-12 2014-01-14 Western Digital Technologies, Inc. Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory
CN102508788B (zh) * 2011-09-28 2014-12-10 华为数字技术(成都)有限公司 Ssd及ssd垃圾回收方法和装置
US8909889B1 (en) 2011-10-10 2014-12-09 Western Digital Technologies, Inc. Method and apparatus for servicing host commands by a disk drive
FR2982406A1 (fr) * 2011-11-07 2013-05-10 St Microelectronics Rousset Memoire securisee qui evite la degradation de donnees
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8977804B1 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Varying data redundancy in storage systems
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US8904091B1 (en) 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems
US8825957B2 (en) 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using an occupancy of valid tracks in strides in the second cache to consolidate strides in the second cache
US8825953B2 (en) 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache
US9021201B2 (en) 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8966178B2 (en) * 2012-01-17 2015-02-24 International Business Machines Corporation Populating a first stride of tracks from a first cache to write to a second stride in a second cache
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US20130205066A1 (en) * 2012-02-03 2013-08-08 Sandisk Technologies Inc. Enhanced write abort management in flash memory
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US8706847B2 (en) 2012-02-09 2014-04-22 International Business Machines Corporation Initiating a collective operation in a parallel computer
US8799598B2 (en) * 2012-02-17 2014-08-05 Spansion Llc Redundancy loading efficiency
US9213632B1 (en) * 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
TWI605458B (zh) 2012-04-25 2017-11-11 Sony Corp Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
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
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
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
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
JP2014044490A (ja) * 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
CN104854554A (zh) * 2012-09-06 2015-08-19 百科容(科技)公司 储存转换层
CN102883207B (zh) * 2012-09-13 2016-11-23 深圳创维数字技术有限公司 一种数据处理的方法及数字电视终端
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
TW201413450A (zh) * 2012-09-25 2014-04-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
CN102929579A (zh) * 2012-10-16 2013-02-13 国电南京自动化股份有限公司 一种效率提高的内存复制方法
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US8959281B1 (en) 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
TWI479492B (zh) * 2012-11-20 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN103839578B (zh) * 2012-11-27 2017-02-08 广东华晟数据固态存储有限公司 一种提高基于nand的固态存储器数据保持时间的方法
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
KR101993626B1 (ko) * 2012-12-11 2019-06-28 삼성전자 주식회사 특수 기능 레지스터를 포함하는 시스템 온 칩 및 그 동작 방법
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9842660B1 (en) 2012-12-28 2017-12-12 Virident Systems, Llc System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory
US9286002B1 (en) 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) * 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8972776B2 (en) 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
US9384839B2 (en) 2013-03-07 2016-07-05 Sandisk Technologies Llc Write sequence providing write abort protection
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9189389B2 (en) 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US10482009B1 (en) * 2013-03-15 2019-11-19 Google Llc Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US8996796B1 (en) 2013-03-15 2015-03-31 Virident Systems Inc. Small block write operations in non-volatile memory systems
CN105190761A (zh) 2013-03-27 2015-12-23 惠普发展公司,有限责任合伙企业 基于非易失性存储器的同步逻辑
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US10102144B2 (en) * 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
EP3005189A1 (en) * 2013-05-31 2016-04-13 Koninklijke Philips N.V. System and method for transferring a group of related files as one logical unit
KR20140142035A (ko) * 2013-06-03 2014-12-11 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작방법
US9361236B2 (en) 2013-06-18 2016-06-07 Arm Limited Handling write requests for a data array
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9645920B2 (en) 2013-06-25 2017-05-09 Marvell World Trade Ltd. Adaptive cache memory controller
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9455048B2 (en) 2013-06-28 2016-09-27 Sandisk Technologies Llc NAND flash word line management using multiple fragment pools
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US10007428B2 (en) * 2013-08-16 2018-06-26 Micron Technology, Inc. Data storage management
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9684686B1 (en) * 2013-09-04 2017-06-20 Amazon Technologies, Inc. Database system recovery using non-volatile system memory
US20150092488A1 (en) * 2013-09-27 2015-04-02 Yogesh Wakchaure Flash memory system endurance improvement using temperature based nand settings
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
IN2013CH05362A (zh) * 2013-11-21 2015-05-29 Sandisk Technologies Inc
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
US9466383B2 (en) * 2013-12-30 2016-10-11 Sandisk Technologies Llc Non-volatile memory and method with adaptive logical groups
KR102181210B1 (ko) * 2014-01-10 2020-11-23 삼성전자주식회사 저장 장치의 데이터 처리 방법 및 저장 장치
US9927996B2 (en) 2014-02-05 2018-03-27 Hitachi, Ltd. Information processing device
US9927998B2 (en) * 2014-02-05 2018-03-27 Tidal Systems, Inc. Flash memory compression
KR102225989B1 (ko) * 2014-03-04 2021-03-10 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US8976609B1 (en) 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9613715B2 (en) 2014-06-16 2017-04-04 Sandisk Technologies Llc Low-test memory stack for non-volatile storage
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9575661B2 (en) 2014-08-19 2017-02-21 Samsung Electronics Co., Ltd. Nonvolatile memory systems configured to use deduplication and methods of controlling the same
US9626289B2 (en) * 2014-08-28 2017-04-18 Sandisk Technologies Llc Metalblock relinking to physical blocks of semiconductor memory in adaptive wear leveling based on health
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US10175964B2 (en) * 2014-09-26 2019-01-08 Microsoft Technology Licensing, Llc Compiler caching for runtime routine redundancy tracking
US9542286B2 (en) * 2014-09-30 2017-01-10 Sandisk Technologies Llc Failure logging mechanism to reduce garbage collection time in partially reused bad blocks
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
KR20160072706A (ko) * 2014-12-15 2016-06-23 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
WO2016115737A1 (en) * 2015-01-23 2016-07-28 Hewlett-Packard Development Company, L.P. Aligned variable reclamation
KR102275710B1 (ko) * 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
KR102513491B1 (ko) * 2015-07-15 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN105183545A (zh) * 2015-07-23 2015-12-23 柳州易旺科技有限公司 一种大数据信息压缩方法
JP2017045288A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
US9891833B2 (en) * 2015-10-22 2018-02-13 HoneycombData Inc. Eliminating garbage collection in nand flash devices
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
CN105302501B (zh) * 2015-11-27 2018-09-14 浙江宇视科技有限公司 一种磁盘扇区的控制方法和装置
US9983829B2 (en) * 2016-01-13 2018-05-29 Sandisk Technologies Llc Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes
US9837161B2 (en) 2016-03-09 2017-12-05 Nxp Usa, Inc. Split-gate memory having sector retirement with reduced current and method therefor
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US9875034B2 (en) 2016-04-07 2018-01-23 International Business Machines Corporation Delaying programming requests in flash memory
US10223004B2 (en) 2016-04-07 2019-03-05 International Business Machines Corporation Parallel read and writes in 3D flash memory
JP6407485B2 (ja) * 2016-04-21 2018-10-17 富士通フロンテック株式会社 書込制御プログラム、書込制御装置および書込制御方法
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
JP2018041204A (ja) * 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
CN106328059B (zh) * 2016-09-07 2017-10-27 京东方科技集团股份有限公司 用于电学补偿的存储器中数据更新的方法和装置
FR3055992A1 (fr) * 2016-09-09 2018-03-16 Proton World International N.V. Gestion d'index dans une memoire flash
CN107870727B (zh) * 2016-09-23 2021-01-01 伊姆西Ip控股有限责任公司 用于存储数据的方法和设备
KR20180091296A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10268389B2 (en) * 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
IT201700020134A1 (it) * 2017-02-22 2018-08-22 St Microelectronics Srl Procedimento per gestire memorie a semiconduttore, interfaccia, memoria e dispositivo corrispondenti
US10079612B1 (en) 2017-03-15 2018-09-18 Alibaba Group Holding Limited Distributed erasure coding pool deployed in hyperscale infrastructure
WO2018174857A1 (en) * 2017-03-21 2018-09-27 Micron Technology, Inc. Apparatuses and methods for automated dynamic word line start voltage
JP2018160156A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステム
TWI629590B (zh) * 2017-04-14 2018-07-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US10922287B2 (en) * 2017-05-24 2021-02-16 Cisco Technology, Inc. Intelligent layout of composite data structures in tiered storage
US10678768B2 (en) * 2017-06-30 2020-06-09 Intel Corporation Logical band-based key-value storage structure
US10476879B2 (en) * 2017-07-26 2019-11-12 International Business Machines Corporation Blockchain authentication via hard/soft token verification
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
FR3072476A1 (fr) 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
CN109947660B (zh) * 2017-12-21 2023-03-14 建兴储存科技(广州)有限公司 固态储存装置及其相关计算机系统
TWI651650B (zh) * 2018-02-05 2019-02-21 大陸商深圳大心電子科技有限公司 記憶體管理方法及使用所述方法的儲存控制器
CN108763101B (zh) * 2018-05-30 2021-11-09 郑州云海信息技术有限公司 一种数据的搬运方法及系统
US11545221B2 (en) 2018-06-29 2023-01-03 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US10978156B2 (en) 2018-06-29 2021-04-13 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US10628076B1 (en) * 2018-10-01 2020-04-21 Micron Technology, Inc. Data erasure in memory sub-systems
US10852965B2 (en) * 2018-10-30 2020-12-01 EMC IP Holding Company LLC Write folding mechanism using reusable shared striping in a storage system
CN109995610A (zh) * 2019-03-06 2019-07-09 浙江天脉领域科技有限公司 一种模拟生物神经形态的对等网络底层通信系统
CN110022299A (zh) * 2019-03-06 2019-07-16 浙江天脉领域科技有限公司 一种超大规模分布式网络计算的方法
EP3891614B1 (en) 2019-04-30 2023-06-21 Yangtze Memory Technologies Co., Ltd. Electronic apparatus and method of managing read levels of flash memory
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11282567B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US10854311B1 (en) 2019-08-28 2020-12-01 Micron Technology, Inc. Data redirection upon failure of a program operation
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
US11294827B2 (en) 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
US11762569B2 (en) * 2019-10-29 2023-09-19 International Business Machines Corporation Workload based relief valve activation for hybrid controller architectures
US11216364B2 (en) * 2020-02-18 2022-01-04 Micron Technology, Inc. Sequential read optimization in a memory sub-system that programs sequentially
WO2021163945A1 (en) * 2020-02-20 2021-08-26 Yangtze Memory Technologies Co., Ltd. Method of programming multi-plane memory device
US11287989B2 (en) 2020-03-24 2022-03-29 Western Digital Technologies, Inc. Dynamic allocation of sub blocks
US11137920B1 (en) * 2020-04-30 2021-10-05 Micron Technology, Inc. Storing zones in a zone namespace on separate planes of a multi-plane memory device
US11436153B2 (en) * 2020-05-26 2022-09-06 Western Digital Technologies, Inc. Moving change log tables to align to zones
US11152071B1 (en) * 2020-05-27 2021-10-19 Western Digital Technologies, Inc. Erase operation reattempt to recover misidentified bad blocks resulting from consecutive erase failures
US11467744B2 (en) 2020-05-27 2022-10-11 Western Digital Technologies, Inc. System to identify aggressor blocks causing back to back erase failure
US11663068B2 (en) * 2020-06-29 2023-05-30 Western Digital Technologies, Inc. Write abort error detection in multi-pass programming
TWI775268B (zh) * 2021-01-07 2022-08-21 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US11922011B2 (en) * 2021-09-01 2024-03-05 Micron Technology, Inc. Virtual management unit scheme for two-pass programming in a memory sub-system
FR3129763B1 (fr) * 2021-12-01 2024-07-19 St Microelectronics Rousset Systeme sur puce comportant une memoire non volatile
US11842062B2 (en) 2022-02-09 2023-12-12 Western Digital Technologies, Inc. Method of handling irregular MetaBlock wear leveling and UGSD boot time improvement
US20240061786A1 (en) * 2022-08-22 2024-02-22 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for accessing data in versions of memory pages
KR20240112601A (ko) * 2023-01-12 2024-07-19 에스케이하이닉스 주식회사 스토리지 장치 및 그의 동작 방법

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5070032A (en) * 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
JPH0546494A (ja) 1991-08-19 1993-02-26 Toshiba Corp メモリチエツク方式
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
JP3122222B2 (ja) 1992-05-08 2001-01-09 株式会社東芝 メモリカード装置
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5367484A (en) * 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5473765A (en) * 1994-01-24 1995-12-05 3Com Corporation Apparatus for using flash memory as a floppy disk emulator in a computer system
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
US5797033A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Direct memory access for storing and retrieving data based on packet size
JP3153730B2 (ja) * 1995-05-16 2001-04-09 株式会社東芝 不揮発性半導体記憶装置
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
JP3707854B2 (ja) * 1996-03-01 2005-10-19 株式会社東芝 キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
US6304980B1 (en) * 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US6900193B1 (en) 1996-05-01 2005-05-31 The United States Of America As Represented By The Department Of Health And Human Services Structural modification of 19-norprogesterone I: 17-α-substituted-11-β-substituted-4-aryl and 21-substituted 19-norpregnadienedione as new antiprogestational agents
US6477627B1 (en) * 1996-05-31 2002-11-05 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
JPH1027444A (ja) * 1996-07-10 1998-01-27 Fujitsu Ltd ディスク装置のポジション感度調整方法
US5768192A (en) * 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
JP3919261B2 (ja) * 1996-07-31 2007-05-23 キヤノン株式会社 メモリ制御装置およびメモリアクセス方法
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP3072722B2 (ja) 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6768165B1 (en) * 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6157991A (en) 1998-04-01 2000-12-05 Emc Corporation Method and apparatus for asynchronously updating a mirror of a source device
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6826651B2 (en) 1998-05-29 2004-11-30 International Business Machines Corporation State-based allocation and replacement for improved hit ratio in directory caches
US6185663B1 (en) 1998-06-15 2001-02-06 Compaq Computer Corporation Computer method and apparatus for file system block allocation with multiple redo
JP4085478B2 (ja) 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
JP4689137B2 (ja) * 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
US6490649B2 (en) 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US6141249A (en) 1999-04-01 2000-10-31 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US6544844B2 (en) * 1999-10-08 2003-04-08 Macronix International Co., Ltd. Method for forming a flash memory cell having contoured floating gate surface
US6377500B1 (en) 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6598174B1 (en) * 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
US6697957B1 (en) * 2000-05-11 2004-02-24 Quickturn Design Systems, Inc. Emulation circuit with a hold time algorithm, logic analyzer and shadow memory
GB2381910B (en) 2000-05-11 2005-03-02 Quickturn Design Systems Inc Emulation circuit with a hold time algorithm logic analyzer and shadow memory
US6571261B1 (en) * 2000-07-13 2003-05-27 International Business Machines Corporation Defragmentation utility for a shared disk parallel file system across a storage area network
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
JP3699890B2 (ja) 2000-08-30 2005-09-28 シャープ株式会社 不揮発性半導体記憶装置
JP4184586B2 (ja) 2000-09-28 2008-11-19 株式会社東芝 半導体記憶装置
JP2002133878A (ja) 2000-10-23 2002-05-10 Hitachi Ltd 不揮発性記憶回路および半導体集積回路
DE10165027C5 (de) * 2000-10-27 2019-10-02 Nsk Ltd. Wälzlager und Spindelvorrichtung für Werkzeugmaschine
US6587372B2 (en) * 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6728849B2 (en) 2001-12-14 2004-04-27 Hitachi, Ltd. Remote storage system and method
JP3828376B2 (ja) 2001-05-07 2006-10-04 株式会社東芝 記憶システム
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US7356641B2 (en) * 2001-08-28 2008-04-08 International Business Machines Corporation Data management in flash memory
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
TW506123B (en) * 2001-10-24 2002-10-11 Macronix Int Co Ltd Multi-level NROM memory cell and its operating method
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US7199905B2 (en) * 2001-12-04 2007-04-03 Xerox Corporation Systems and methods for halftoning multiple color separation layers by interlayer error diffusion
JP3967121B2 (ja) 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US6820180B2 (en) 2002-04-04 2004-11-16 International Business Machines Corporation Apparatus and method of cascading backup logical volume mirrors
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7047377B2 (en) * 2002-08-20 2006-05-16 Gruintine Pueche, Inc. System and method for conducting an auction-based ranking of search results on a computer network
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7346740B2 (en) * 2002-11-01 2008-03-18 Seagate Technology Llc Transferring speculative data in lieu of requested data in a data transfer operation
JP4200362B2 (ja) 2003-02-20 2008-12-24 ソニー株式会社 記録媒体の記録制御方法、記録制御装置および電子機器
DE10349595B3 (de) 2003-10-24 2004-12-09 Hyperstone Ag Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher
KR20060121270A (ko) * 2003-12-30 2006-11-28 쌘디스크 코포레이션 페이즈된 프로그램 실패 핸들링을 구비한 비휘발성 메모리 및 방법
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
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
EP1702338B1 (en) 2003-12-30 2009-02-18 SanDisk Corporation Robust data duplication and improved update method in a multibit non-volatile memory
EP1704483A2 (en) 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with memory planes alignment
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
EP1704484A2 (en) 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with non-sequential update block management
US7315916B2 (en) 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856425B2 (en) 2010-09-27 2014-10-07 Silicon Motion Inc. Method for performing meta block management, and associated memory device and controller thereof
US10089225B2 (en) 2014-10-31 2018-10-02 Silicon Motion, Inc. Improving garbage collection efficiency by reducing page table lookups
TWI747349B (zh) * 2020-06-30 2021-11-21 大陸商合肥沛睿微電子股份有限公司 儲存裝置之低級格式化方法

Also Published As

Publication number Publication date
US20090019218A1 (en) 2009-01-15
US7139864B2 (en) 2006-11-21
US8621177B2 (en) 2013-12-31
JP2011253557A (ja) 2011-12-15
US20120017038A1 (en) 2012-01-19
US8239643B2 (en) 2012-08-07
JP5617079B2 (ja) 2014-11-05
EP1704571B1 (en) 2011-02-16
DE602004031461D1 (de) 2011-03-31
US7913061B2 (en) 2011-03-22
CN100435116C (zh) 2008-11-19
DE602004019571D1 (de) 2009-04-02
CN1922586A (zh) 2007-02-28
CN1973334A (zh) 2007-05-30
US20090019217A1 (en) 2009-01-15
EP2293196B1 (en) 2018-06-27
JP4938460B2 (ja) 2012-05-23
US8051257B2 (en) 2011-11-01
JP2007517335A (ja) 2007-06-28
JP4898457B2 (ja) 2012-03-14
JP2007520804A (ja) 2007-07-26
US8103841B2 (en) 2012-01-24
EP1704571A1 (en) 2006-09-27
US7945759B2 (en) 2011-05-17
KR101012274B1 (ko) 2011-02-07
US20050166087A1 (en) 2005-07-28
DE602004028174D1 (de) 2010-08-26
US20110219174A1 (en) 2011-09-08
ATE498893T1 (de) 2011-03-15
CN1922585A (zh) 2007-02-28
WO2005066972A1 (en) 2005-07-21
JP2007522542A (ja) 2007-08-09
EP2293196A1 (en) 2011-03-09
CN1922580A (zh) 2007-02-28
ATE474269T1 (de) 2010-07-15
ATE423380T1 (de) 2009-03-15
US20050144360A1 (en) 2005-06-30
US20090037651A1 (en) 2009-02-05
JP2007517333A (ja) 2007-06-28
JP4933269B2 (ja) 2012-05-16
CN100435115C (zh) 2008-11-19
JP4851344B2 (ja) 2012-01-11
US20050144365A1 (en) 2005-06-30
KR20060130085A (ko) 2006-12-18
US20050141313A1 (en) 2005-06-30
CN1914689A (zh) 2007-02-14
TW200534092A (en) 2005-10-16
US20050141312A1 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
TWI272483B (en) Non-volatile memory and method with block management system
US7774392B2 (en) Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
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
US7779056B2 (en) Managing a pool of update memory blocks based on each block's activity and data order
JP4682261B2 (ja) 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
EP1702338B1 (en) Robust data duplication and improved update method in a multibit non-volatile memory
EP1704484A2 (en) Non-volatile memory and method with non-sequential update block management
JP2010507147A (ja) 最悪の場合におけるデータ管理を伴う不揮発性メモリおよびそのための方法
EP1704479B1 (en) Non-volatile memory and method with phased program failure handling
JP2007519996A6 (ja) 不揮発性メモリおよびフェーズ化されたプログラム障害処理を伴う方法

Legal Events

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