JP2007517335A - Methods involving non-volatile memory and the block management system - Google Patents

Methods involving non-volatile memory and the block management system Download PDF

Info

Publication number
JP2007517335A
JP2007517335A JP2006547493A JP2006547493A JP2007517335A JP 2007517335 A JP2007517335 A JP 2007517335A JP 2006547493 A JP2006547493 A JP 2006547493A JP 2006547493 A JP2006547493 A JP 2006547493A JP 2007517335 A JP2007517335 A JP 2007517335A
Authority
JP
Japan
Prior art keywords
block
logical
update
memory
sector
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2006547493A
Other languages
Japanese (ja)
Other versions
JP4938460B2 (en
Inventor
ゴロベッツ,セルゲイ
ウェルシュ シンクレア,アラン
ジョン スミス,ピーター
ダグラス ブルース,アラン
デビッド ベネット,アラン
Original Assignee
サンディスク コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US10/750,155 priority Critical patent/US7139864B2/en
Priority to US10/750,155 priority
Application filed by サンディスク コーポレイション filed Critical サンディスク コーポレイション
Priority to PCT/US2004/043692 priority patent/WO2005066972A1/en
Publication of JP2007517335A publication Critical patent/JP2007517335A/en
Application granted granted Critical
Publication of JP4938460B2 publication Critical patent/JP4938460B2/en
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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; 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; 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; 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; 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
    • 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; 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; 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; 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; 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

Abstract

不揮発性メモリシステムは、物理メモリ位置の物理グループに組織化される。 Non-volatile memory system is organized into physical groups of physical memory locations. 各物理グループ(メタブロック)は、一単位として消去可能であり、データの論理グループを記憶するために使用することができる。 Each physical group (metablock) is erasable as a unit, can be used to store a logical group of data. メモリ管理システムは、論理グループの更新データを記録する専用のメタブロックを割り当てることにより、データの論理グループの更新を行うことができる。 Memory management system can be performed by allocating a metablock dedicated to recording the update data of the logical group, the updates of the logical group of data. 更新メタブロックは、更新データを受信した順序で記録し、記録が当初記憶された通りの正確な論理順序であるか(順次)、またはそうでないか(カオス的)についての制限はない。 Update metablock records in the order in which received the update data, recording is not limited as to whether a correct logical order of as it was originally stored (sequential) or not (chaotic). 最終的には、更新メタブロックは閉鎖されて、さらに記録することができなくなる。 Finally, the update metablock is closed, it is impossible to further record. いくつかの処理のうちの1つが生じることになるが、元メタブロックを置換する、正確な順序の一杯となったメタブロックが結局は生じることになる。 Although one of several processing will occur to replace the original metablock, full and became metablock exact order eventually would occur. カオス的な場合には、ディレクトリデータが、頻繁な更新の助けとなるようなやり方で、不揮発性メモリに保持される。 If chaotic, the directory data, in a manner conducive to frequent updates, is held in the nonvolatile memory. このシステムは、複数の論理グループが並行して更新されることをサポートする。 This system supports a plurality of logical groups is updated in parallel.

Description

本発明は、一般的には、不揮発性半導体メモリに関し、特に、メモリブロック管理システムを有するものに関する。 The present invention generally relates to a nonvolatile semiconductor memory, particularly to those having a memory block management system.

電荷の不揮発的に記憶することができる固体メモリであり、特に、小形形状のファクタカードとしてパッケージ化されたEEPROMおよびフラッシュEEPROMの形態を取るものが、最近、様々な移動および携帯装置、とりわけ情報機器および一般消費者向け電子製品における記憶装置の選択肢となってきている。 A solid state memory capable of nonvolatile manner of charge, in particular, those in the form of packaged EEPROM and flash EEPROM as a small form factor card has recently various mobile and portable devices, especially information equipment it has become an option in the memory device and in consumer electronic products. 同じく固体メモリであるRAM(ランダムアクセスメモリ)とは異なり、フラッシュメモリは不揮発性であり、電源を切った後でもその記憶したデータを保持する。 Like Unlike RAM (random access memory) that is also solid-state memory, flash memory is nonvolatile, even retain their stored data after power is removed. また、ROM(読み出し専用メモリ)とは異なり、フラッシュメモリは、ディスク記憶装置と同様に書き換え可能である。 Also, unlike ROM (read only memory), flash memory is rewritable similar to the disk storage device. 高いコストにもかかわらず、フラッシュメモリは、大容量記憶装置の利用の際にますます使用されるようになっている。 Despite the high cost, flash memory, are increasingly being used for utilizing a mass storage device. 従来の大容量記憶装置は、ハードドライブおよびフロッピーディスクなどの回転磁気媒体に基づき、移動および携帯環境には不適切である。 Conventional mass storage, based on rotating magnetic medium such as hard drives and floppy disks, is unsuitable for the mobile and portable environment. というのは、ディスクドライブはかさばりがちであり、機械的な故障が生じやすく、大きな待ち時間および高電力という要件を有するからである。 Because the disk drive is often bulky, mechanical failure tends to occur, because with the requirement of large latency and high power. これらの望ましくない属性により、ディスクをベースとした記憶装置は、ほとんどの移動および携帯の利用において実用的でないものとなっている。 These undesirable attributes, memory device in which the disk-based is made shall not nearly practical for mobile and portable use of. 他方、フラッシュメモリは、埋め込み形および着脱可能なカードの形態の両方で、小さいサイズ、低電力消費、高速および高い信頼性という特徴が理由で、移動および携帯環境に理想的なほど適している。 On the other hand, flash memory, both in the form of an embedded type and removable cards, small size, low power consumption, a feature that high-speed and high reliability reasons, suited ideally as the mobile and portable environment.

フラッシュEEPROMは、消去可能な不揮発性メモリであること、およびメモリセルに新たなデータを書き込むまたは「プログラム」するという点で、EEPROM(電気的に消去可能でプログラム可能な読み出し専用メモリ)に類似している。 Flash EEPROM, it is erasable nonvolatile memory, and in that write or "program" the new data into the memory cell, similar to EEPROM (electrically erasable programmable read only memory) ing. 両方とも、フローティング(未接続の)導電ゲートを使用し、電界効果トランジスタの構造であり、半導体基板におけるソース領域とドレイン領域と間のチャネル領域を覆って位置している。 Both use a floating (unconnected) conductive gate, a structure of the field effect transistors, are located over the channel region between the source region and the drain region in the semiconductor substrate. そして、コントロールゲートがフローティングゲートを覆って設けられる。 Then, the control gate is provided over the floating gate. トランジスタのしきい値電圧特性は、フローティングゲート上に保持された電荷量によって制御される。 The threshold voltage characteristic of the transistor is controlled by the amount of charge that is retained on the floating gate. すなわち、フローティングゲート上の電荷の所定のレベルについて、トランジスタが「オン」に転換されてソース領域とドレイン領域との間が導通することができるようにする前にコントロールゲートに印加されなければならない対応する電圧(しきい値)がある。 That is, for a given level of charge on the floating gate, must be applied to the control gate before the transistor is to be able to conduction between has been a source region and a drain region converted to "on" corresponds there is a voltage (threshold) that. 特に、フラッシュEEPROMなどのフラッシュメモリは、メモリセルの全ブロックを同時に消去することができる。 In particular, flash memory such as a flash EEPROM can erase all blocks of memory cells simultaneously.

フローティングゲートは、ある範囲の電荷を保持することができるので、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルにプログラムすることができる。 Floating gate, it is possible to hold a certain range of charge can be programmed to any threshold voltage level within a threshold voltage window. しきい値電圧ウィンドウのサイズは、装置の最小および最大しきい値レベルによって区切られ、さらにフローティングゲート上にプログラムすることができる電荷の範囲に対応している。 The size of the threshold voltage window is delimited by the minimum and maximum threshold levels of the device, and further correspond to the range of the charges that can be programmed onto the floating gate. しきい値ウィンドウは、一般的には、メモリデバイスの特徴、動作状態、および履歴に依存している。 The threshold window generally depends characteristic of the memory device, the operating state, and the history. ウィンドウ内の各別個の分解可能なしきい値電圧レベルの範囲は、原則的には、セルの限定的なメモリ状態を指定するために使用されてもよい。 Range for each distinct, resolvable threshold voltage level in the window, in principle, it may be used to specify a limited memory state of the cell.

メモリセルとしての役割を果たすトランジスタは、典型的には、2つの機構のうちの1つによって「プログラムされた」状態にプログラムされる。 Serve transistor as a memory cell is typically programmed to a "programmed" state by one of two mechanisms. 「熱い電子注入」において、ドレインに印加された高い電圧が基板チャネル領域にわたって電子を加速させる。 In "hot electron injection," a high voltage applied to the drain accelerates electrons across the substrate channel region. 同時に、コントロールゲートに印加された高い電圧が、熱い電子を薄いゲート誘電体を通ってフローティングゲートへ引き寄せる。 At the same time, a high voltage applied to the control gate pulls the hot electrons through a thin gate dielectric onto the floating gate. 「トンネル注入」において、高い電圧が基板に対するコントロールゲートに印加される。 In "tunneling injection," a high voltage is applied to the control gate relative to the substrate. このように、電子は、基板から介在フローティングゲートへと引き寄せられる。 Thus, electrons are attracted from the substrate to the intervening floating gate. メモリの状態を変化させるために、メモリセルの最初に消去される電荷蓄積ユニットに電子を注入することによってメモリに対する書き込みを行うことを説明するために、「プログラム」という用語を従来使用してきたが、この用語は、現在では、「書き込み」または[記録する」などといった、より一般的な用語と交換可能に使用されてきている。 To change the state of the memory, by injecting electrons into the charge storage unit that is first erased memory cell to explain be written to the memory, although the term "program" has been conventionally used this term is now, such as "write" or record ", it has been used interchangeably with the more general terms.

メモリデバイスの消去は、数多くの機構によって行われてもよい。 Erasing the memory device may be performed by a number of mechanisms. 例えば、EEPROMについて、高い電圧をコントロールゲートに関連した基板に印加して、フローティングゲート内の電子を薄い酸化物層を通じて基板チャネル領域へと通すようにすることによって(すなわち、ファウラー・ノルドハイムトンネル現象)、メモリセルは電気的に消去可能である。 For example, the EEPROM, by applying a high voltage to the substrate in relation to the control gate, (i.e., Fowler-Nordheim tunneling by allowing pass into the substrate channel region through an electronic a thin oxide layer in the floating gate ), the memory cell is electrically erasable. 典型的には、EEPROMは、バイト毎に消去可能である。 Typically, EEPROM is erasable byte by byte. フラッシュEEPROMについて、メモリは、すべて一度に電気的に消去可能であるか、または1回につき1つ以上の最小の消去可能なブロックを電気的に消去可能であり、最小の消去可能なブロックは、1つ以上のセクタからなってもよく、各セクタは、512バイト以上のデータを記憶してもよい。 For flash EEPROM, the memory is either all be electrically erased at one time, or electrically erasable one or more minimum erasable blocks at a time, the smallest erasable blocks, may consist of one or more sectors, each sector may store the data of more than 512 bytes.

メモリデバイスは、典型的には、カードに実装されてもよい1つ以上のメモリチップを備える。 Memory device typically comprises one or more memory chips that may be mounted on the card. 各メモリチップは、デコーダまたは消去、書き込み、および読み出し回路のような周辺回路によってサポートされたメモリセルのアレイを備える。 Each memory chip includes a decoder or erase, write, and an array of memory cells supported by peripheral circuits such as read circuit. より高性能のメモリデバイスは、高機能および高レベルのメモリ動作およびインターフェイスを行うコントローラも搭載されている。 More sophisticated memory devices also mounted controller that performs high-performance and high-level memory operations and interfaces.

商業的に成功している数多くの不揮発性固体メモリデバイスが現在使用されている。 Numerous non-volatile solid-state memory devices that are commercially successful are currently used. これらのメモリデバイスはフラッシュEEPROMであってもよく、または他の種類の不揮発性メモリセルを使用してもよい。 These memory devices may be used may be a flash EEPROM, or other types of nonvolatile memory cells. フラッシュメモリおよびそれを製造するシステムおよび方法の例は、米国特許第5,070,032号(特許文献1)、第5,095,344号(特許文献2)、第5,315,541号(特許文献3)、第5,343,063号(特許文献4)、および第5,661,053号(特許文献5)、第5,313,421号(特許文献6)、および第6,222,762号(特許文献7)に記載されている。 Examples of flash memory and systems and methods for making the same are described in U.S. Patent No. 5,070,032 (Patent Document 1), No. 5,095,344 (Patent Document 2), No. 5,315,541 ( Patent Document 3), No. 5,343,063 (Patent Document 4), and No. 5,661,053 (Patent Document 5), No. 5,313,421 (Patent Document 6), and a 6,222 It is described in 762 (Patent Document 7). 特に、NANDストリング構造のフラッシュメモリデバイスは、米国特許第5,570,315号(特許文献8)、第5,903,495号(特許文献9)、第6,046,935号(特許文献10)に記載されている。 In particular, flash memory devices of the NAND string structures are described in U.S. Patent No. 5,570,315 (Patent Document 8), No. 5,903,495 (Patent Document 9), 6,046,935 (Patent Document 10 )It is described in. また、不揮発性メモリデバイスは、電荷を蓄積するための誘電体層を有するメモリセルからも製造される。 The nonvolatile memory devices are also manufactured from memory cells with a dielectric layer for storing charge. 前に説明した導電性のフローティングゲート素子の代わりに、誘電体層が使用される。 Instead of the floating gate device conductive as described previously, the dielectric layer is used. 誘電体蓄積素子を使用するこのようなメモリデバイスは、エイタンらによる「NROM:新規の局所化されたトラッピング、2ビット不揮発性メモリセル」,米国電子電気学会(IEEE)電子デバイスレター,第21巻,第11号,2000年11月,543〜545ページ (“NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letter, vol. 21, no. 11, November 2000, pp. 543-545)(非特許文献1)に記載されている。 Such a memory device using dielectric storage elements, by Eitan et al., "NROM: New localized trapping, 2-bit non-volatile memory cells", American Electronic and Electrical Engineers (IEEE) electronic devices Letters, Vol. 21 , No. 11, November 2000, 543-545 pages (... "NROM: a Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letter, vol 21, no 11, November 2000, pp 543 -545) (described in non-Patent Document 1). ONO誘電体層が、ソースおよびドレイン拡散間のチャネルにわたって延在している。 ONO dielectric layer extends across the channel between source and drain diffusions. 1データビットに対する電荷は、ドレインに隣接する誘電体層にて局在化され、他のデータビットについての電荷は、ソースに隣接する誘電体層にて局在化される。 Charge for one data bit is localized in the dielectric layer adjacent to the drain, the charge for the other data bit is localized in the dielectric layer adjacent to the source. 例えば、米国特許第5,768,192号(特許文献11)および第6,011,725号(特許文献12)は、2つの二酸化シリコン層間に挟まれたトラッピング誘電体を有する不揮発性メモリセルを開示している。 For example, U.S. Pat. No. 5,768,192 (Patent Document 11) and No. 6,011,725 ​​(Patent Document 12), a nonvolatile memory cell having a trapping dielectric sandwiched between two silicon dioxide layers It discloses. 多状態のデータ記憶装置は、誘電体内の空間的に別個の電荷蓄積領域のバイナリ状態を別個に読み出すことによって実施される。 Data storage apparatus for a multi-state is carried out by reading separately the binary states of the spatially separate charge storage regions within the dielectric.

読み出しおよびプログラミング性能を改善するために、アレイ内の複数の電荷蓄積素子またはメモリトランジスタが、並列に読み出しまたはプログラムされる。 In order to improve read and program performance, multiple charge storage elements or memory transistors in an array are read or programmed in parallel. よって、メモリ素子の「ページ」が、一緒に読み出されるか、またはプログラムされる。 Thus, the "page" of memory elements, or are read together, or be programmed. 既存のメモリ構成において、列は、典型的には、いくつかのインターリーブされたページを含むか、または1つのページを構成することもある。 In existing memory configuration, column typically comprises or several interleaved pages or sometimes constitute one page. あるページのすべてのメモリ素子が、一緒に読み出されるか、またはプログラムされることもある。 All memory elements of a page is either retrieved together or programmed is also there.

フラッシュメモリシステムにおいて、消去動作は、読み出しおよびプログラミング動作よりも非常に長くかかる場合がある。 In flash memory systems, erase operation may take much longer than read and program operations. よって、かなりのサイズの消去ブロックがあることが望ましい。 Therefore, it is desirable to have the erase block of substantial size. このように、消去時間は、メモリセルの大きな集合体にわたって償却される。 Thus, the erase time is amortized over a large aggregate of memory cells.

フラッシュメモリの性質は、データが消去されたメモリ位置に書き込まれなければならないということに基づいている。 Nature of flash memory is based on the fact that data must be written to the memory location is erased. ホストからのある論理アドレスのデータを更新すべき場合、1つのやり方は、更新データを同一の物理メモリ位置に書き換えるというものである。 When to update the data of a certain logical address from the host, one way is that rewriting the updated data to the same physical memory location. すなわち、論理/物理アドレスマッピングは変化しない。 That is, the logical / physical address mapping is unchanged. しかし、これは、この物理位置を含む消去ブロック全体が最初に消去されてから、更新されたデータで書き換えられなければならないということを意味する。 However, this means that the entire erase block containing the physical location from being erased first, must be rewritten with the updated data. この更新方法は、消去ブロック全体が消去され、かつ書き換えられる必要があるので効率が悪く、更新すべきデータが消去ブロックの小さい部分のみを占める場合には特に効率が悪い。 This update method is erased whole erase block, and poor efficiency since need to be rewritten is particularly inefficient if the data to be updated occupies only a small portion of the erase block. また、メモリブロックの消去リサイクルが高い頻度で生じる結果となり、この種のメモリデバイスの限られた耐久性の観点から望ましくない。 Further, results in erasing recycling of the memory block occurs frequently, undesirable in view of the limited endurance of this type of memory device.

フラッシュメモリシステムの他の問題点は、システム制御およびディレクトリデータと関係がある。 Another problem with the flash memory system has to do with system control and directory data. データは、様々なメモリ動作の過程で生成かつアクセスされる。 Data is generated and accessed in the course of various memory operations. よって、効率的な取り扱いおよび素早いアクセスが性能に直接影響を与えることになる。 Therefore, efficient handling and ready access will directly impact performance. フラッシュメモリは記憶装置用を意図し、かつ不揮発性であるので、フラッシュメモリ内のこの種のデータを保持するのが望ましい。 Flash memory intended for storage, and because it is non-volatile, to retain such data in the flash memory is desirable. しかし、コントローラとフラッシュメモリとの間の介在ファイル管理システムによって、データは直接にはアクセスすることができない。 However, by an intervening file management system between the controller and the flash memory, data can not be directly accessed. また、システム制御およびディレクトリデータは、アクティブかつ断片化しがちであり、大規模なブロック消去を伴うシステムへの記憶には役に立たない。 Also, system control and directory data is active and fragmented prone, not useful for the storage of the system with large block erase. 従来、この種のデータは、コントローラRAMに設定され、コントローラによる直接アクセスを可能としている。 Conventionally, this type of data is set in the controller RAM, and to enable direct access by the controller. メモリデバイスの電源投入後、コントローラRAMに配置すべき必要なシステム制御およびディレクトリ情報をコンパイルするために、初期化の処理によって、フラッシュメモリを走査することができる。 After power-on of the memory device, in order to compile the system control and directory information required to be placed in the controller RAM, the initialization processing, it is possible to scan the flash memory. この処理は時間がかかり、フラッシュメモリの容量が増加しているのでいっそうのコントローラRAMの容量が要求される。 This process is time consuming, the capacity of the further controller RAM because the capacity of the flash memory is increasing is required.

米国特許第6,567,307号(特許文献13)は、メモ帳としての役割を果たす複数の消去ブロック内に更新データを記録し、また様々なブロック内の有効なセクタを最終的に統合化し、かつこのセクタを論理的な順次順序で再構成した後にセクタを書き換えることを含む大きな消去ブロック内のセクタ更新を扱う方法を開示している。 U.S. Patent No. 6,567,307 (Patent Document 13) records the update data to serve multiple erase blocks as Notepad, also finally integrated effective sectors in the various blocks and it discloses a method of dealing with sector updates large erase block including rewriting the sector of the sector after reconstitution in logically sequential order. このように、ブロックは、ごくわずかな更新の度に消去され、かつ書き込まれる必要はない。 Thus, the block is erased every time a very slight updates, and need not be written.

国際公開特許出願第WO03/027828号(特許文献14)および国際公開特許出願第WO00/49488号(特許文献15)は共に、論理セクタアドレスを区画に分割することを含む、大きな消去ブロック内での更新を扱うメモリシステムを開示している。 International Published Patent Application No. WO03 / 027 828 (Patent Document 14) and International Published Patent Application No. WO00 / 49 488 (Patent Document 15) together comprise splitting the logical sector address in section, of a large erase block It discloses a memory system to handle the update. 小さな区画の論理アドレス範囲が、ユーザデータ用の他の区画とは別に、アクティブなシステム制御データ用に確保される。 Logical address range of a small compartment, separately from the other compartments for user data, are reserved for active system control data. このように、システム制御データを独自の区画内で操作すれば、他の区画内の関連するユーザデータと相互に作用しないことになる。 Thus, by operating the system control data in its own compartment, it will not act on the user data mutually associated in other compartments. 更新は論理セクタレベルであり、書き込みポインタは、書き込むべきブロック内の対応する物理セクタを指す。 Update a logical sector level, the write pointer points to the corresponding physical sectors in a block to be written. マッピング情報は、RAM内にバッファリングされ、最終的にはメインメモリ内のセクタ割り当てテーブルに記憶される。 Mapping information is buffered in RAM, and is finally stored in the sector allocation table in the main memory. 論理セクタの最新バージョンによって、既存のブロック内のすべての以前のバージョンは廃止されることになり、既存のブロックは、部分的に廃止される。 The latest version of the logical sector, all the previous versions of the existing block is to be abolished, the existing block is partially abolished. 部分的に廃止されたブロックを許容することができる数に維持するために、ガーベッジコレクションが行われる。 In order to maintain the number that can tolerate the partially obsolete blocks, garbage collection is performed.

従来技術のシステムは、更新データを数多くのブロックに渡って分散させる傾向にあるか、または更新データによって数多くの既存ブロックを部分的に廃止する場合もある。 Prior art systems either tend to disperse over the updated data to a number of blocks, or in some cases to eliminate the large number of existing blocks partially by the update data. その結果、部分的に廃止されたブロックに対して大量のガーベッジコレクションが必要となることが多く、これは効率的でなく、メモリの早すぎる老化を生じさせる。 As a result, often required a large amount of garbage collection on a partially obsolete blocks, which is not efficient, causing premature aging of the memory. また、非順次更新に比べて、順次更新を扱う体系化された効率的なやり方がない。 Moreover, compared to non-sequential update, there is no systematic and efficient manner dealing with sequential update.

したがって、大容量かつ高性能の不揮発性メモリに対する一般的な要求がある。 Therefore, there is a general request is for a non-volatile memory of a large capacity and high performance. 特に、大きなブロックにおけるメモリ動作を前述した問題なく行うことのできる大容量不揮発性メモリを有するための要求がある。 In particular, there is a need for having a large capacity nonvolatile memory that can be performed without the aforementioned problems of memory operations in large blocks.
米国特許第5,070,032号 US Pat. No. 5,070,032 米国特許第5,095,344号 US Pat. No. 5,095,344 米国特許第5,315,541号 US Pat. No. 5,315,541 米国特許第5,343,063号 US Pat. No. 5,343,063 米国特許第5,661,053号 US Pat. No. 5,661,053 米国特許第5,313,421号 US Pat. No. 5,313,421 米国特許第6,222,762号 US Pat. No. 6,222,762 米国特許第5,570,315号 US Patent No. 5,570,315 米国特許第5,903,495号 US Pat. No. 5,903,495 米国特許第6,046,935号 US Patent No. 6,046,935 米国特許第5,768,192号 US Pat. No. 5,768,192 米国特許第6,011,725号 US Pat. No. 6,011,725 米国特許第6,567,307号 US Pat. No. 6,567,307 国際公開特許出願第WO03/027828号 International Published Patent Application No. WO03 / 027828 国際公開特許出願第WO00/49488号 International Published Patent Application No. WO00 / 49488 2003年12月30日出願のアラン・シンクレアによる「適応メタブロック」という米国特許出願 US patent application called "adaptive meta-block" by Alan Sinclair of December 30, 2003 filed 2003年12月30日出願のカルロス・ゴンザレスらによる「マルチブロック単位へのブロックの適応決定論的グループ化」という米国特許出願 US patent application called "adaptive deterministic group of the block to the multi-block unit" by December 30, 2003, filed Carlos Gonzalez, et al.

不揮発性メモリシステムは、物理メモリ位置の物理グループに組織化される。 Non-volatile memory system is organized into physical groups of physical memory locations. 各物理グループ(メタブロック)は、一単位として消去可能であり、データの論理グループを記憶するために使用することができる。 Each physical group (metablock) is erasable as a unit, can be used to store a logical group of data. メモリ管理システムは、論理グループの更新データを記録する専用のメタブロックを割り当てることにより、データの論理グループの更新を行うことができる。 Memory management system can be performed by allocating a metablock dedicated to recording the update data of the logical group, the updates of the logical group of data. 更新メタブロックは、更新データを受信した順序で記録し、記録が当初記憶された通りの正確な論理順序であるか(順次)、またはそうでないか(カオス的)についての制限はない。 Update metablock records in the order in which received the update data, recording is not limited as to whether a correct logical order of as it was originally stored (sequential) or not (chaotic). 最終的には、更新メタブロックは閉鎖されて、さらに記録することができなくなる。 Finally, the update metablock is closed, it is impossible to further record. いくつかの処理のうちの1つが生じることになるが、元メタブロックを置換する、正確な順序の一杯となったメタブロックが結局は生じることになる。 Although one of several processing will occur to replace the original metablock, full and became metablock exact order eventually would occur. カオス的な場合には、ディレクトリデータが、頻繁な更新の助けとなるようなやり方で、不揮発性メモリに保持される。 If chaotic, the directory data, in a manner conducive to frequent updates, is held in the nonvolatile memory. このシステムは、複数の論理グループが並行して更新されることをサポートする。 This system supports a plurality of logical groups is updated in parallel.

本発明の一特徴により、データを論理グループ毎に更新することができる。 According to one feature of the present invention, it is possible to update data for each logical group. よって、論理グループが更新されている最中は、論理ユニットの分配(および更新によって廃止されるメモリユニットの分散)は、その範囲が限定される。 Thus, the while the logical group has been updated, (distributed memory units be abolished by and updating) the distribution of logical units, the range is limited. これは、論理グループが物理ブロック内に正常に含まれている場合に特に当てはまる。 This is especially true when the logical group is contained in a normal in the physical block.

論理グループの更新中に、典型的には1つまたは2つのブロックが、更新論理ユニットをバッファリングするように割り当てられる必要がある。 While updating the logical group, typically one or two blocks need to be assigned the updated logical unit to buffer. よって、ガーベッジコレクションは、比較的少ない数のブロックに渡ってのみ行えばよい。 Therefore, garbage collection may be performed only over a relatively small number of blocks. カオス的ブロックのガーベッジコレクションは、統合化またはコンパクト化によって行われてもよい。 Garbage collection of a chaotic block may be performed by integration or compaction.

更新処理の経済性は、順次更新に比較してカオス的(非順次)更新に割り当てられる必要のある追加のブロックがないようにする更新ブロックの一般的な処理において、さらに明らかである。 Economy of the update process, in the general processing of sequential chaotic compared to the update (nonsequential) update block to ensure no additional blocks that need to be assigned to the update, it is further evident. すべての更新ブロックは、順次更新ブロックとして割り当てられ、どの更新ブロックも、カオス的更新ブロックに変更可能である。 All update blocks are allocated as sequential update block, which updates the block can also be changed to a chaotic update block. 実際、順次からカオス的への更新ブロックの変更は任意である。 In fact, the change of the update block from sequential to chaotic is optional.

システムリソースの効率的な使用により、複数の論理グループを並行して更新することができる。 The efficient use of system resources can be updated in parallel a plurality of logical groups. これは、効率性をさらに増し、オーバーヘッドを減少させる。 This further increases the efficiency and reduces overheads.

本発明のさらなる特徴および利点は、添付の図面と共に理解される以下の好ましい実施形態の説明から理解されるだろう。 Additional features and advantages of the present invention will be understood from the following description of preferred embodiments taken in conjunction with the accompanying drawings.

図1は、本発明を実施するのに適切なメモリシステムの主要ハードウェアの構成要素を概略的に示す。 1, the major hardware components of the appropriate memory system for implementing the present invention is shown schematically. メモリシステム20は、典型的には、ホストインターフェイスを通じてホスト10と共に動作する。 The memory system 20 typically operates with a host 10 through the host interface. メモリシステムは、典型的には、メモリカードの形式を取るか、または埋め込み形メモリシステムである。 Memory systems typically take the form of a memory card or an embedded type memory system. メモリシステム20は、動作がコントローラ100によって制御されるメモリ200を含む。 The memory system 20 includes a memory 200 whose operations are controlled by the controller 100. メモリ200は、1つ以上の集積回路チップに渡って分散された不揮発性メモリセルの1つ以上のアレイからなる。 Memory 200 is composed of one or more integrated circuits of one or more arrays of non-volatile memory cells which are distributed over the chip. コントローラ100は、インターフェイス110と、プロセッサ120と、オプションのコプロセッサ121と、ROM122(読み出し専用メモリ)と、RAM130(ランダムアクセスメモリ)と、オプションのプログラム可能な不揮発性メモリ124とを含む。 The controller 100 includes an interface 110, a processor 120, an optional coprocessor 121, a ROM 122 (read only memory), a RAM 130 (random access memory), and a programmable nonvolatile memory 124 of the options. インターフェイス110は、ある構成要素をコントローラからホストへとインターフェイスさせ、他の構成要素をメモリ200とインターフェイスさせる。 Interface 110 is an interface with the one element from the controller to the host, to the other components memory 200 and interfaces. 不揮発性ROM122および/またはオプションの不揮発性メモリ124に記憶されたファームウェアは、コントローラ100の機能を実施するためにプロセッサ120に対して符号を提供する。 Firmware stored in the nonvolatile ROM122 and / or optional nonvolatile memory 124 provides the code to the processor 120 to implement the functions of the controller 100. 誤り訂正符号は、プロセッサ120またはオプションのコプロセッサ121によって処理されてもよい。 Error correction code may be processed by the processor 120 or the optional coprocessor 121. 代替の実施形態において、コントローラ100は、状態マシン(図示せず)によって実施される。 In an alternative embodiment, controller 100 is implemented by a state machine (not shown). さらに他の実施形態において、コントローラ100は、ホスト内で実施される。 In still other embodiments, the controller 100 is implemented within the host.

論理および物理ブロック構造 Logical and physical block structure
図2は、本発明の好ましい実施形態に係る、セクタ(またはメタブロック)の物理グループに組織化され、コントローラのメモリマネージャによって管理されたメモリを示す。 2, according to a preferred embodiment of the present invention, is organized into physical groups of sectors (or metablock), shows a memory managed by memory manager of the controller. メモリ200は、メタブロックに組織化され、各メタブロックは、共に消去可能な物理セクタS 0 ,. Memory 200 is organized into metablocks, the metablock physical sectors S 0 erasable together. . . ,S N-1のグループである。 , A group of S N-1.

ホスト10は、ファイルシステムまたはオペレーティングシステムの下でアプリケーションを実行する場合に、メモリ200にアクセスする。 The host 10, when executing the application under a file system or operating system, to access the memory 200. 典型的には、ホストシステムは、データを論理セクタ単位でアドレス指定し、例えば、各セクタは、512バイトのデータを含んでもよい。 Typically, the host system, the data addressed by the logical sectors, for example, each sector may comprise 512 bytes of data. また、ホストが、論理クラスタ単位でメモリシステムに対して読み出しまたは書き込みを行うのが通常であり、各クラスタは、1つ以上の論理セクタからなる。 Also, host, and usually carried out a read or write to the memory system in logical cluster units, each cluster is composed of one or more logical sectors. ホストシステムによっては、より低いレベルのメモリ管理をホスト側で行うためにオプションのホスト側メモリマネージャが存在する場合がある。 Some host systems may optional host-side memory manager is present in order to perform the lower level memory management at the host side. 多くの場合、読み出しまたは書き込み動作中に、ホスト10は、実質的に、メモリシステム20に対してコマンドを発行して、データの論理セクタのストリングを含むセグメントを連続するアドレスと共に読み出しまたは書き込みを行う。 Often, during a read or write operation, the host 10 is substantially issue a command to the memory system 20, to read or write with contiguous addresses a segment containing a string of logical sectors of data .

フラッシュメモリ200のメタブロック内のホスト論理セクタのデータの記憶および検索を管理するために、メモリ側メモリマネージャが、メモリシステム20のコントローラ100内で実施される。 To manage the storage and retrieval of data between the host logical sectors in metablock of the flash memory 200, the memory-side memory manager is implemented in the controller 100 of the memory system 20. 好ましい実施形態において、メモリマネージャは、メタブロックの消去、読み出し、書き込み動作を管理するための数多くのソフトウェアモジュールを含む。 In a preferred embodiment, the memory manager includes a number of software modules for managing erase metablock read, write operations. また、メモリマネージャは、フラッシュメモリ200とコントローラRAM130との間の動作に関連したシステム制御およびディレクトリデータを保持する。 The memory manager maintains system control and directory data associated with operation between the flash memory 200 and controller RAM 130.

図3A(i)〜(iii)は、本発明の好ましい実施形態に係る、論理グループとメタブロックとの間のマッピングを概略的に示す。 Figure 3A (i) ~ (iii), according to a preferred embodiment of the present invention, showing schematically the mapping between logical groups and metablocks. 物理メモリのメタブロックは、論理グループのデータのN個の論理セクタを記憶するためのN個の物理セクタを有する。 Metablock of the physical memory has N physical sectors for storing N logical sectors of data of a logical group. 図3A(i)は、論理グループLG iからのデータを示し、論理セクタは、連続論理順序0,1,. Figure 3A (i) shows the data from a logical group LG i, the logical sector is contiguous logical order 0, 1,. . . ,N−1である。 , N-1. 図3A(ii)は、同一の論理順序のメタブロック内に記憶されている同じデータを示す。 Figure 3A (ii) shows the same data stored in the metablock in the same logical order. このように記憶される場合に、メタブロックは、「順次」であるといわれる。 In this manner, when stored, metablock is said to be "sequential". 一般的に、メタブロックは、異なる順序で記憶されたデータを有してもよく、その場合は、メタブロックは、「非順次」または「カオス的」であるといわれる。 Generally, the metablock may have data stored in a different order, in which case the metablock is said to be "non-sequential" or "chaotic".

論理グループの最小のアドレスと、それがマッピングされるメタブロックの最小アドレスとの間には、オフセットがあることがある。 And minimum address of a logical group, between the minimum address of the metablock to which it is mapped, there may be an offset. この場合、論理セクタアドレスは、メタブロック内の論理グループの末尾から先頭へ戻るループとして折り返す。 In this case, logical sector address is folded back as a loop back to the top from the end of the logical group within the metablock. 例えば、図3A(iii)では、メタブロックは、その最初の位置が論理セクタkのデータで始まるように記憶する。 For example, in FIG. 3A (iii), the metablock, its initial position is stored to start with the data of logical sector k. 最終論理セクタN−1に達すると、セクタ0に戻り、最終的には、その最終物理セクタに論理セクタk−1に関連したデータを記憶する。 Upon reaching the last logical sector N-1, back to sector 0, in the end, to store data associated with logical sector k-1 in its last physical sector. 好ましい実施形態において、メタブロックの最初の物理セクタに記憶されたデータの最初の論理セクタアドレスを識別するといった、任意のオフセットの識別のために、ページタグが使用される。 In a preferred embodiment, such identifying a first logical sector address of the data stored in the first physical sector of the metablock, for identification of any offset, the page tag is used. 2つのブロックは、ページタグだけが異なる場合、その論理セクタを同様の順序で記憶しているものと考えられる。 Two blocks, if only page tag is different, believed that stores the logical sector in the same order.

図3Bは、論理グループとメタブロックと間のマッピングを概略的に示す。 3B shows a mapping between the logical group and the metablock schematically. 各論理グループは、データが現在更新中の少数の論理グループを除いて、固有のメタブロックにマッピングされる。 Each logical group, the data except for a few logical groups being updated, is mapped to a unique metablock. 論理グループが更新された後、別のメタブロックにマッピングされてもよい。 After the logical group is updated, it may be mapped to a different metablock. マッピング情報は、論理/物理ディレクトリのセットに維持され、これについては、詳細に後述する。 Mapping information is maintained in a set of logical / physical directories, This will be described later in detail.

メタブロックマッピングに対する他の種類の論理グループも予期される。 Other types of logical group for metablock mapping are also contemplated. 例えば、可変サイズのメタブロックが、本願と同日にアラン・シンクレアによって出願された「適応メタブロック」という同時継続出願中の共有された米国特許出願(特許文献16)に開示されている。 For example, variable size metablock is disclosed in the present application and shared US patent application copending application in that filed by Alan Sinclair, "Adaptive metablock" on the same day (Patent Document 16). 同時継続出願の開示全体は、本願明細書において参照により援用されている。 The entire disclosure of co-pending application is hereby incorporated herein by reference.

本発明の特徴の1つは、システムは単一の論理区画で動作し、メモリシステムの論理アドレス範囲にわたる論理セクタのグループは同一に扱われることである。 One feature of the present invention, the system operates with a single logical partition, group of logical sectors throughout the logical address range of the memory system is to be treated in the same. 例えば、システムデータを含むセクタと、ユーザデータを含むセクタとは、論理アドレス空間内のどこにでも分散することができる。 For example, the sectors containing system data, the sectors containing user data can be distributed anywhere in the logical address space.

従来技術のシステムとは異なり、高頻度かつ小サイズの更新を伴うデータを含む可能性が高い論理アドレス空間セクタに局在化させるための、システムセクタ(すなわち、ファイル割り当てテーブルに関連するセクタ、ディレクトリ、またはサブディレクトリ)の特別な分割またはゾーニングはない。 Unlike prior art systems, to localize to the logical address space sectors are likely to contain data with the updating of high frequency and small size, the system sectors (i.e., sectors relating to file allocation table, directory , or there is no special division or zoning of the sub-directory). 代わりに、セクタの論理グループを更新するこの手法は、システムセクタに典型的なアクセスパターンおよびファイルデータに典型的なアクセスパターンを効率的に扱うことになる。 Alternatively, the technique of updating logical groups of sectors will be treated typical access patterns typical access patterns and file data to the system sectors efficiently.

図4は、物理メモリにおける構造を含むメタブロックの配列を示す。 Figure 4 shows the arrangement of metablock containing structures in physical memory. フラッシュメモリは、一単位として共に消去可能なメモリセルのブロックを備える。 Flash memory are both provided with a block erasable memory cells as one unit. このような消去ブロックは、フラッシュメモリの消去の最小単位、またはメモリの最小消去ユニット(MEU)である。 Such erase blocks are the minimum unit of erasure of flash memory or minimum erasing unit of memory, (MEU). 最小消去ユニットは、メモリのハードウェア設計パラメータであるが、複数のMEUの消去をサポートするメモリシステムによっては、1つ以上のMEUを備える「超MEU」を構成することができる。 Minimum erase unit is a hardware design parameter of the memory, by the memory system that supports erase multiple MEU, may constitute a "super MEU" comprising one or more MEU. フラッシュEEPROMについて、MEUは1つのセクタを備えてもよいが、複数のセクタが好ましい。 For flash EEPROM, MEU may comprise one sector but a plurality of sectors are preferred. 図に示されている例では、M個のセクタを有する。 In the example shown, it has M sectors. 好ましい実施形態において、各セクタは、512バイトのデータを記憶することができ、ユーザデータ部分と、システムまたはオーバーヘッドデータを記憶するためのヘッダ部分とを有する。 In a preferred embodiment, each sector has can store 512 bytes of data, the user data portion and a header portion for storing system or overhead data. メタブロックがP個のMEUから構成されている場合には、各MEUはM個のセクタを含み、そして、各メタブロックは、N=P*M個のセクタを有することになる。 If the metablock is constituted from P number of MEU, each MEU contains M sectors, and each metablock will have N = P * M sectors.

メタブロックは、システムレベルでは、例えば共に消去可能なセクタといった、メモリ位置のグループを表す。 Metablock At the system level, for example such erasable together sectors, represents a group of memory locations. フラッシュメモリの物理アドレス空間は、メタブロックを消去の最小単位とした、メタブロックのセットとして扱われる。 Physical address space of the flash memory is set to the minimum unit of erase metablock is treated as a set of metablock. 本願明細書において「メタブロック」および「ブロック」という用語は、媒体管理のためのシステムレベルにおける消去の最小単位を規定するために類義語として使用され、「最小消去ユニット」またはMEUは、フラッシュメモリの消去の最小単位を示すために使用される。 The term "metablock" and "block" herein is used as a synonym to define the minimum unit of erase in a system level for media management, "minimum erasing unit" or MEU is flash memory It is used to indicate a minimum unit of erase.

メタブロックを形成するための最小消去ユニット(MEU)のリンク付け Minimum erasing unit for forming a metablock linking (MEU)
プログラミング速度および消去速度を最大限にするために、複数のMEUにある複数のページの情報が並列にプログラミングされるように、かつ複数のMEUが並列に消去されるようにすることによって、並行処理ができる限り活用される。 The programming speed and erase speed in order to maximize, by allowing such information of the plurality of pages in multiple MEU is programmed in parallel, and a plurality of MEU is erased in parallel, parallel processing it is utilized as much as possible.

フラッシュメモリにおいて、ページは、1回の動作で共にプログラムすることができるメモリセルの集まりである。 In a flash memory, a page is a collection of memory cells which can be programmed together in one operation. ページは、1つ以上のセクタを備えていてもよい。 Page may include one or more sectors. また、メモリアレイは、1つ以上のプレーンに分割されてもよく、1つのプレーン内の1つのMEUのみが1度にプログラムまたは消去されてもよい。 The memory array may be divided into one or more planes, only one MEU within a plane may be programmed or erased at a time. 最後に、プレーンは、1つ以上のメモリチップに渡って分散されていてもよい。 Finally, plane, may be distributed across one or more memory chips.

フラッシュメモリにおいて、MEUは、1つ以上のページを備えていてもよい。 In the flash memory, MEU may comprise one or more pages. フラッシュメモリチップ内のMEUは、プレーンに組織化されてもよい。 MEU in the flash memory chip may be organized in planes. 各プレーンからの1つのMEUは並行してプログラムまたは消去されてもよいので、各プレーンから1つのMEUを選択することによって複数のMEUメタブロックを形成するのが得策である(以下の図5B参照)。 Since one MEU may be programmed or erased in parallel from each plane, it is advisable to form a plurality of MEU metablock by selecting one MEU from each plane (see following figure 5B ).

図5Aは、互いに異なるプレーンの最小消去ユニットのリンク付けから構成されるメタブロックを示す。 5A shows composed metablock link with a minimum erasing unit of different planes from each other. MB0,MB1,. MB0, MB1 ,. . . などの各メタブロックは、メモリシステムの互いに異なるプレーンからのMEUから構成され、互いに異なるプレーンは、1つ以上のチップにわたって分散されていてもよい。 Each metablock, such as, consists MEU from different planes of the memory system, different planes from each other, it may be distributed across one or more chips. 図2に示されているメタブロックリンクマネージャ170は、各メタブロックについてのMEUのリンク付けを管理する。 Metablock link manager 170 shown in FIG. 2 manages the linking of the MEU for each metablock. 各メタブロックは、初期フォーマット処理中に構成され、その構成成分であるMEUを、MEUのうちの1つに障害があるまで、システムの寿命がある限り保持する。 Each metablock is configured during an initial formatting process, the MEU its constituents, to one of the MEU until a failure is maintained as long as the life of the system.

図5Bは、1つの最小消去ユニット(MEU)が、メタブロックへのリンク付けのために各プレーンから選択される、一実施形態を示す。 5B is one minimum erase unit (MEU) is selected from each plane for linking into a metablock illustrates one embodiment.

図5Cは、1つより多くの最小消去ユニット(MEU)が、メタブロックへのリンク付けのために各プレーンから選択される、別の実施形態を示す。 5C is more than one minimum erase unit (MEU) is selected from each plane for linking into a metablock illustrates another embodiment. 別の実施形態において、1つより多くのMEUが各プレーンから選択されて超MEUが形成されてもよい。 In another embodiment, more than one MEU may be selected super MEU may be formed from each plane. 例えば、超MEUは、2つのMEUから形成されてもよい。 For example, super MEU may be formed from two MEU. この場合、読み出しまたは書き込み動作について1つより多くのパスを利用してもよい。 In this case, it may be used more than one pass for read or write operations.

MEUをメタブロックにリンク付けまたは再リンク付けすることは、本願と同日にカルロス・ゴンザレスらによって出願された「マルチブロック単位へのブロックの適応決定論的グループ化」という同時継続出願中の共有された米国特許出願(特許文献17)に開示されている。 It is attached linking or relink MEU to metablock is shared in this application and co-pending application that was filed by Carlos Gonzales et al. On the same day "Adaptive Deterministic Grouping blocks into multi-block unit" It was disclosed in U.S. Patent application (Patent Document 17). 同時継続出願の開示全体は、本願明細書において参照により援用されている。 The entire disclosure of co-pending application is hereby incorporated herein by reference.

メタブロック管理 Meta-block management
図6は、コントローラおよびフラッシュメモリにおいて実施されるようなメタブロック管理システムの概略ブロック図である。 Figure 6 is a schematic block diagram of the metablock management system as implemented in the controller and flash memory. メタブロック管理システムは、コントローラ100において実施された様々な機能モジュールを備え、様々な制御データ(ディレクトリデータを含む)をフラッシュメモリ200およびコントローラRAM130内に階層的に分散されたテーブルおよびリストに保持する。 Metablock management system comprises various functional modules implemented in the controller 100, to hold various control data (including directory data) in hierarchically distributed tables and lists in the flash memory 200 and the controller RAM130 . コントローラ100内に実装された機能モジュールは、インターフェイスモジュール110と、論理/物理アドレス変換モジュール140と、更新ブロックマネージャモジュール150と、消去ブロックマネージャモジュール160と、メタブロックリンクマネージャモジュール170とを含む。 Function modules implemented in the controller 100 in includes an interface module 110, the logical / physical address translation module 140, an update block manager module 150, an erase block manager module 160, and a metablock link manager module 170.

インターフェイス110により、メタブロック管理システムは、ホストシステムとインターフェイスすることができる。 The interface 110, the metablock management system may be a host system and interface. 論理/物理アドレス変換モジュール140は、論理アドレスをホストから物理メモリ位置へマッピングする。 Logical / physical address translation module 140 maps the logical address from the host to physical memory location. 更新ブロックマネージャモジュール150は、データの所定の論理グループについて、メモリにおけるデータ更新動作を管理する。 Update block manager module 150, for a given logical group of data, manages data update operations in memory. 消去ブロックマネージャモジュール160は、メタブロックの消去動作と、新規の情報を記憶するためのメタブロック割り当てとを管理する。 Erase block manager module 160 manages the erase operation of the metablock, a metablock allocated for storing new information. メタブロックリンクマネージャモジュール170は、セクタの最小消去可能ブロックのサブグループのリンク付けを管理して、所定のメタブロックを構成する。 Metablock link manager module 170 manages the linking of subgroups of minimum erasable blocks of sectors to constitute a given metablock. これらのモジュールの詳細な説明は、それぞれの欄で行う。 Detailed description of these modules is carried out in each column.

動作中に、メタブロック管理システムは、アドレス、制御および状態情報などの制御データを生成して、それと共に動作する。 During operation, the metablock management system, address, and generates the control data such as the control and status information, operating therewith. 制御データのほとんどが小さなサイズの頻繁に変化するデータであることが多いので、大きなブロック構造のフラッシュメモリ内では簡単かつ効率的に記憶および保持することができない。 Since most of the control data is often frequently changing data of small size, it can not be stored and maintained easily and efficiently in a flash memory of a large block structure. より静的な制御データを不揮発性フラッシュメモリに記憶させ、より変化するより少ない量の制御データをコントローラRAMに位置づけるという階層的分散手法を使用することで、さらに効率的な更新およびアクセスを行う。 More static control data is stored in non-volatile flash memory, by using a hierarchical distributed approach of positioning a small amount of control data than more changes to the controller RAM, it performs more efficient update and access. 電源遮断または障害時には、この手法により、揮発性コントローラRAM内の制御データは、不揮発性メモリ内の小さなセットの制御データを走査することによって、迅速に再構築することができる。 When power shutdown or failure, this approach, the control data in the volatile controller RAM, by scanning the control data of a small set in the non-volatile memory, can be quickly re-established. これが可能なのは、本発明が、データの所定の論理グループの予想される動作に関連するブロックの数を制限しているからである。 This is possible because the present invention limits the number of blocks associated with the expected behavior of a given logical group of data. 加えて、存続が必要とされる制御データのいくつかは、セクタ毎に更新可能な不揮発性のメタブロックに記憶され、新規のセクタを生じさせる各更新が、以前の更新に代わって記録される。 In addition, some of the control data required lifetime are stored in updatable nonvolatile metablock per sector, each update to cause a new sector is recorded in place of the previous updates . セクタインデックス付け手法を制御データのために使用して、メタブロック内のセクタ毎の更新を追跡する。 Use sector indexing scheme for control data, tracking updates for each sector in a metablock.

不揮発性フラッシュメモリ200は、比較的静的な大量の制御データを記憶する。 Non-volatile flash memory 200 stores a relatively static large amount of control data. これには、グループアドレステーブル(GAT)210と、カオス的ブロックインデックス(CBI)220と、消去済みブロックリスト(EBL)230と、MAP240とが含まれる。 This includes a group address table (GAT) 210, chaotic block index (CBI) 220, and erased block list (EBL) 230, are included and MAP 240. GAT210は、セクタの論理グループと、その対応するメタブロックとの間のマッピングを追跡する。 GAT210 tracks the logical group of sectors, the mapping between the corresponding metablock. マッピングは、更新を受けるもの以外は変化しない。 Mapping, except those that receive the update does not change. CBI220は、更新中の論理的な非順次セクタのマッピングを追跡する。 CBI220 tracks the mapping logical nonsequential sectors being updated. EBL230は、消去されたメタブロックのプールを追跡する。 EBL230 tracks the pool of erased metablock. MAP240は、フラッシュメモリ内のすべてのメタブロックの消去状態を示すビットマップである。 MAP240 is a bitmap indicating the erase status of all metablocks in the flash memory.

揮発性コントローラRAM130は、頻繁に変化およびアクセスされる制御データの小さな部分を記憶する。 Volatile controller RAM130 stores a small portion of control data that are frequently changing and accessed. これには、割り当てブロックリスト(ABL)134と、クリア済みブロックリスト(CBL)136とが含まれる。 This includes an allocation block list (ABL) 134, are included and cleared block list (CBL) 136. ABL134は、更新データを記録するためにメタブロックの割り当てを追跡し、CBL136は、割り当て解除および消去されたメタブロックを追跡する。 ABL134 tracks the allocation of metablocks for recording update data, CBL136 tracks the deallocated and erased metablock. 好ましい実施形態において、RAM130は、フラッシュメモリ200に記憶された制御データについてのキャッシュとしての役割を果たす。 In a preferred embodiment, RAM 130 serves as a cache for the stored control data to the flash memory 200.

更新ブロックマネージャ Update block manager
(図2に示されている)更新ブロックマネージャ150は、論理グループの更新を扱う。 (Shown in FIG. 2) update block manager 150 handles the update of logical groups. 本発明の一態様によれば、更新を受けているセクタの各論理グループには、更新データを記録するために、専用の更新メタブロックが割り当てられる。 According to one aspect of the present invention, each logical group of sectors undergoing an update, in order to record the update data, only the update metablock is allocated. 好ましい実施形態において、論理グループの1つ以上のセクタの任意のセグメントが、更新ブロックに記録されることになる。 In a preferred embodiment, any segment of one or more sectors of the logical group will be recorded in the update block. 更新ブロックは、順次順序または非順次(カオス的としても知られる)順序のいずれかで更新データを受信するように管理される。 Update block can be managed to receive updated data in either sequential order or non-sequential (also known as chaotic) order. カオス的更新ブロックでは、セクタデータを論理グループ内で任意の順序で更新することができ、また個別のセクタの任意の繰り返しがあってもよい。 The chaotic update block, the sector data can be updated in any order within a logical group, also there may be any repetition of individual sectors. 特に、順次更新ブロックは、いずれのデータセクタの移転の必要なく、カオス的更新ブロックになりえる。 In particular, the sequential update block, without the need for a transfer of any of the data sector, can become a chaotic update block. カオス的データ更新には、ブロックの所定の割り当ては必要ない。 The chaotic data update is not necessary predetermined allocation of blocks. 任意の論理アドレスでの非順次書き込みが自動的に対処される。 Non sequential write at any logical address is automatically addressed. よって、従来技術のシステムとは異なり、論理グループの様々な更新セグメントが論理的な順次順序であってもまたは非順次順序であっても、特殊な処理はない。 Thus, unlike prior art systems, be of various update segments logically sequential order in a even or non-sequential order of logical groups, special processing is not. 一般的な更新ブロックは、ホストによって要求された順序で様々なセグメントを記憶するために、単に使用されることになる。 Common update block, to store the various segments in the order requested by the host, simply it will be used. 例えば、ホストシステムデータまたはシステム制御データがカオス的に更新されがちな場合でも、ホストシステムデータに対応する論理アドレス空間の領域を、ホストユーザデータを伴う領域と別々に扱う必要はない。 For example, even if host system data or system control data is likely to be updated chaotic, the region of logical address space corresponding to host system data do not need to deal separately with regions with host user data.

セクタの完全な論理グループのデータは、1つのメタブロック内に論理的な順次順序で記憶されるのが好ましい。 Data of a complete logical group of sectors is preferably stored in logically sequential order in one metablock. このように、記憶された論理セクタに対するインデックスは、予め規定されている。 Thus, index to the stored logical sectors is predefined. メタブロックが所定の順序で所定の論理グループのすべてのセクタを記憶している場合、これは「変化なし(intact)」といわれる。 If the metablock stores all the sectors of a given logical group in a predetermined order, which is said to be "no change (intact) '. 更新ブロックに関して、更新データを論理的な順次順序で最終的に充填する場合、更新ブロックは、元メタブロックを容易に置換する更新された変化なしのメタブロックとなる。 Respect update block, when finally filled with update data in logically sequential order, update block will become an updated without changing metablock readily replace the original metablock. 他方、更新ブロックが更新データを、変化なしのブロックとは異なる論理的な順序で充填する場合、更新ブロックは、非順次またはカオス的更新ブロックであり、順序がばらばらのセグメントは、変化なしのブロックと同一の順序で論理グループの更新データが最終的には記憶されるように、さらに処理されなければならない。 On the other hand, if the update block to update data, are filled with different logical order and without changing the block, the update block is a non-sequential or chaotic update block, the order discrete segments, no change block logical group of update data in the same order as that as is eventually stored, must be further processed. 好ましい場合において、このセグメントは、1つのメタブロック内の論理的な順次順序である。 In a preferred case, this segment is a logically sequential order in one metablock. さらなる処理には、元ブロック内の変化していないセクタを伴う更新ブロック内の更新されたセクタを、さらに他の更新メタブロックに統合化することを伴う。 The further processing involves consolidating the updated sectors in the update block with the sectors that have not been changed in the original block, to yet another update metablock. 統合化された更新ブロックは、その後、論理的な順次順序となり、元ブロックを置換するために使用することができる。 Integrated update block, then, logically sequential becomes the order, it can be used to replace the original block. 何らかの所定の条件下では、統合化処理に先立って、1つ以上のコンパクト化処理がある。 In some given conditions, prior to the integration process, there are one or more compaction processes. コンパクト化処理は、カオス的更新ブロックのセクタを、置換するカオス的更新ブロックに単純に再記録し、同じ論理セクタの以前の更新によって廃止された重複する論理セクタを削除することはない。 Compaction process, the sectors of the chaotic update block, simply re-recorded in the chaotic update block to be replaced, not be deleted logical sector overlapping Obsolete by a previous update of the same logical sector.

更新手法により、複数の更新スレッドを、所定の最大限まで並行して実行することができる。 The update method, a plurality of update threads may be executed in parallel to a predetermined maximum. 各スレッドは、専用の更新メタブロックを使用して更新を受けている論理グループである。 Each thread is a logical group undergoing updates using dedicated update metablock.

順次データ更新 Sequential data update
ある論理グループに属するデータを最初に更新する場合、論理グループの更新データについての更新ブロックとして、メタブロックが専用に割り当てられる。 When updating data belonging to a logical group is first as an update block for the update data of the logical group, metablock is allocated to the dedicated. 更新ブロックが割り当てられるのは、コマンドがホストから受信されて、既存のメタブロックがそのすべてのセクタを変化なく記憶している論理グループの1つ以上のセクタのセグメントを書き込む場合である。 The update block is allocated is when the command is received from the host, the existing metablock writes segments of one or more sectors of the logical group stored unchanged all its sectors. 最初のホスト書き込み動作の場合、データの最初のセグメントが更新ブロックに記録される。 For the first host write operation, the first segment of data is recorded in the update block. 各ホスト書き込みは連続論理アドレスを伴う1つ以上のセクタのセグメントであるので、最初の更新は、その性質上常に順次的であることとなる。 Since each host write is a segment of one or more sectors with consecutive logical addresses, the first update, so that its nature is always sequential. 後続のホスト書き込みでは、同一の論理グループ内の更新セグメントが、ホストから受信された順序で更新ブロックに記録される。 Subsequent host write, update segments within the same logical group are recorded in the update block in the order received from the host. ブロックは、順次更新ブロックとして管理され続けるのに対し、関連する論理グループ内でホストによって更新されたセクタは、論理的に順次的であり続ける。 Block sequentially to continue managed as update block, sector updated by the host within the associated logical group is remain logically sequential. この論理グループ内で更新されたすべてのセクタは、このブロックが閉鎖されるか、カオス的更新ブロックに変換されるかのいずれかとなるまで、この順次更新ブロックに書き込まれる。 All sectors updated in this logical group, or the block is closed, until either be converted into a chaotic update block is written to this sequential update block.

図7Aは、2つの別個のホスト書き込み動作の結果、順次更新ブロックへ順次順序で書き込まれる論理グループ内のセクタの一例を示し、この論理グループについての元ブロック内の対応するセクタは廃止になる。 7A is the result of two separate host write operations, shows an example of sectors in a logical group being written in sequential order to a sequential update block, the corresponding sectors in the original block for the logical group become obsolete. ホスト書き込み動作#1において、論理セクタLS5〜LS8内のデータが更新中である。 In host write operation # 1, the data in the logical sectors LS5~LS8 are being updated. LS5'〜LS8'として更新されたデータは、新規に割り当てられた専用の更新ブロックに記録される。 The updated data as LS5'~LS8 'is recorded in the update block dedicated newly allocated.

便宜上、論理グループ内の更新すべき第1のセクタは、第1の物理セクタ位置から開始する専用更新ブロックに記録される。 For convenience, the first sector to be updated in the logical group is recorded in the dedicated update block starting from the first physical sector location. 一般的に、更新すべき第1の論理セクタは、必ずしもグループの論理的に第1番目のセクタではないので、論理グループの最初と、更新ブロックの最初との間にはオフセットがあることがある。 Typically, the first logical sector to be updated, so not necessarily the 1st sector logically group may be between the first logical group, the first update block is offset . このオフセットは、図3Aに関連して前に説明したように、ページタグとして知られている。 This offset, as described above in connection with FIG. 3A, it is known as page tag. 後続のセクタは、論理的な順次順序で更新される。 Subsequent sectors are updated in logically sequential order. 論理グループの最後のセクタが書き込まれる場合、グループアドレスは折り返して、書き込みシーケンスを、グループの最初のセクタで継続する。 If the last sector of the logical group is written, group addresses wrap, the write sequence continues with the first sector of the group.

ホスト書き込み動作#2において、論理セクタLS9〜LS12内のデータのセグメントが更新中である。 In host write operation # 2, the segment of data in the logical sectors LS9~LS12 are being updated. LS9'〜LS12'として更新されたデータは、専用の更新ブロック内の、最後の書き込みが終了した場所に直接続く位置に記録される。 The updated data as LS9'~LS12 'is in the dedicated update block, the last write is recorded directly followed positioned where it ended. 2つのホスト書き込みは、更新データが論理的な順次順序で、すなわち、LS5'〜LS12'のようにして、更新ブロックに記録されたようなものとして理解することができる。 Two host writes the update data in logically sequential order, i.e., can be understood as LS5'~LS12 ', as as recorded in the update block. 更新ブロックが順次更新ブロックとみなされるのは、論理的な順次順序で充填されているからである。 The update block is regarded as sequential update block is because is filled in logically sequential order. 更新ブロックに記録された更新データによって、元ブロック内の対応するデータが廃止される。 The update data recorded in the update block, the corresponding data in the original block are obsolete.

カオス的データ更新 Chaotic data update
カオス的更新ブロック管理は、関連論理グループ内でホストによって更新された任意のセクタが論理的に非順次の場合に、既存の順次更新ブロックについて開始される。 Chaotic update block management, any sector updated by the host within the associated logical group in the case of logically non-sequential, is initiated for an existing sequential update block. カオス的更新ブロックは、関連する論理グループ内の論理セクタが任意の順序でかつ任意の繰り返し量で更新されてもよいようなデータ更新ブロックの形式を取る。 Chaotic update block takes the form of the relevant logical sector in any order and any repetition amount updated as may be a data update block in the logical group. これは、ホストによって書き込まれたセクタが、更新中の論理グループ内の以前書き込んだセクタに対して論理的に非順次である場合に、順次更新ブロックからの変換によって作成される。 This sectors written by the host, in the case for the previous written sector within the logical group being updated is logically non-sequential, are created by conversion from a sequential update block. この論理グループ内のその後の更新されたすべてのセクタは、グループ内の論理セクタアドレスが何であれ、カオス的更新ブロック内の次に使用可能なセクタ位置に書き込まれる。 This all sectors that are subsequently updated in the logical group, any logical sector address within the group what is written in the next available sector location in the chaotic update block.

図7Bは、5つの別個のホスト書き込み動作の結果、カオス的更新ブロックへカオス的順序で書き込まれる論理グループ内のセクタの一例を示し、この論理グループについての元ブロック内の取り替えられたセクタと、カオス的更新ブロック内の複製セクタとは廃止になる。 7B is a five results of separate host write operations, shows an example of sectors in a logical group being written in chaotic order to a chaotic update block, the sector was replaced within the original block for the logical group, become obsolete and replication sector of the chaotic update block. ホスト書き込み動作#1において、元メタブロックに記憶されている所定の論理グループの論理セクタLS10〜LS11が更新される。 In host write operation # 1, the logical sector LS10~LS11 of a given logical group stored in the original metablock is updated. 更新された論理セクタLS10'〜LS11'は、新規に割り当てられた更新ブロックに記憶される。 The updated logical sector LS10'~LS11 'is stored in a newly allocated update block. この点で、更新ブロックは、順次的である。 In this regard, the update block is sequential. ホスト書き込み動作#2において、論理セクタLS5〜LS6がLS5'〜LS6'に更新されて、更新ブロック内の最終の書き込みに直接続く位置に記録される。 In host write operation # 2, are updated in the logical sector LS5~LS6 is LS5'~LS6 ', is recorded in the immediately following the last write of the update block position. これにより、更新ブロックは、順次的からカオス的なものへと変換される。 Thus, the update block is converted from a sequential target to a chaotic one. ホスト書き込み動作#3において、論理セクタLS10が再び更新中であり、更新ブロックの次の位置にLS10''として記録される。 In host write operation # 3, a being updated logical sector LS10 is again recorded as LS10 '' in the next location of the update block. この点で、更新ブロック内のLS10''は、元ブロック内のLS10に取って代わる以前の記録内のLS10'に取って代わる。 In this regard, LS10 'in the update block' is, LS10 earlier in the recording to replace LS10 in the original block 'replaces. ホスト書き込み動作#4において、論理セクタLS10内のデータは再び更新されて、更新ブロックの次の位置にLS10'''として記録される。 In host write operation # 4, the data in the logical sector LS10 is again updated and is recorded as LS10 '' 'in the next location of the update block. よって、LS10'''が、論理セクタLS10についての現在における最新かつ唯一の有効データとなる。 Thus, LS10 '' 'becomes the latest and only valid data in the current for the logical sector LS10. ホスト書き込み動作#5において、論理セクタLS30内のデータが更新中であり、更新ブロックにLS30'として記録される。 In host write operation # 5, the data in logical sector LS30 is being updated and recorded as LS30 'in the update block. よって、この例は、任意の順序および任意の繰り返しによって、論理グループ内のセクタをカオス的更新ブロックに書き込むことができることを示す。 Thus, this example, by any order and any repetition indicates that it is possible to write a sector in a logical group to a chaotic update block.

強制的順次更新 Forced sequential update
図8は、2つの別個のホスト書き込み動作の結果としての、論理アドレスに不連続性を有する、順次更新ブロックへ順次順序で書き込まれる論理グループ内のセクタの一例を示す。 8, as a result of two separate host write operations, has a discontinuity in logical addresses, it shows an example of sectors in a logical group being written in sequential order to a sequential update block. ホスト書き込み#1において、論理セクタLS5〜LS8における更新データは、LS5'〜LS8'として専用の更新ブロック内に記録される。 In host write # 1, the update data in the logical sector LS5~LS8 is recorded in a dedicated update block as LS5'~LS8 '. ホスト書き込み#2において、論理セクタLS14〜LS16における更新データは、最終の書き込みに続く更新ブロック内にLS14'〜LS16'として記録されている。 In host write # 2, the update data in the logical sector LS14~LS16 is recorded as LS14'~LS16 'in the update block following the last write. しかし、LS8とLS14との間にアドレスジャンプがあり、ホスト書き込み#2は、通常、更新ブロックを非順次的にすることになる。 However, there is an address jump between LS8 and LS14, host write # 2 would typically be to an update block non-sequential. アドレスジャンプは重要ではないので、1つのオプションとしては、ホスト書き込み#2を実行する前に、介在セクタのデータを元ブロックから更新ブロックへコピーすることによってパディング動作(#2A)をまず行うというものである。 Since the address jump is not important, as one option, one that before executing host write # 2, first, performs a padding operation (# 2A) by copying the data of the intervening sectors from the original block to the update block it is. このように、更新ブロックの順次的性質が維持される。 Thus, sequential nature of the update block is maintained.

図9は、本発明の一般的な一実施形態に係る、データの論理グループを更新するための更新ブロックマネージャによる処理を示すフロー図である。 9, according to the general embodiment of the present invention, is a flow diagram illustrating a process by the update block manager to update a logical group of data. 更新処理は、以下のステップを含む。 The update process comprises the following steps.

ステップ260:メモリはブロックに組織化され、各ブロックは共に消去可能なメモリユニットに分割され、各メモリユニットは、データの論理ユニットを記憶するためのものである。 Step 260: the memory is organized into blocks, each block is divided into memory units that are erasable together, each memory unit is for storing a logical unit of data.

ステップ262:データは論理グループに組織化され、各論理グループは、論理ユニットに分割される。 Step 262: The data is organized into logical groups, each logical group is partitioned into logical units.

ステップ264:標準的な場合、論理グループのすべての論理ユニットは、第1の所定の順序、好ましくは論理的な順次順序に従って、元ブロックのメモリユニットに記憶される。 Step 264: If a standard, all logical units of a logical group, the first predetermined order, preferably according to logically sequential order, are stored in a memory unit of the original block. このように、ブロック内の個々の論理ユニットをアクセスするためのインデックスがわかる。 Thus, it is found the index for accessing the individual logical units in the block.

ステップ270:データの所定の論理グループ(例えば、LG x )について、LG x内で論理ユニットを更新するための要求が行われる(一例として、論理ユニット更新が挙げられる。一般的には、更新は、LG x内の1つ以上の連続論理ユニットのセグメントとなる)。 Step 270:. A given logical group of data (e.g., LG x) for, as is (an example carried out request to update a logical unit within LG x, in general the logic unit updating the like, updates , the segments of one or more contiguous logical units within LG x).

ステップ272:要求された更新論理ユニットが、LG xの更新の記録専用の第2のブロックに記憶されることになる。 Step 272: The requested update logical unit is to be stored in the second block dedicated to recording update LG x. 記録順序は、第2の順序であり、典型的には、更新が要求された順序に従う。 Recording sequence is the second sequence, typically, follow the order update is requested. 本発明の一特徴は、論理的な順次またはカオス的順序でデータを記録するように、更新ブロックを最初に一般的に設定することができるようにする。 One feature of the present invention is to record the data in a logical sequential or chaotic order to allow the first generally set to the update block. 第2の順序によっては、第2のブロックは、順次的なものである場合も、カオス的なものである場合もある。 The second order, the second block, also those sequential manner, in some cases those chaotic.

ステップ274:処理がステップ270にループバックするにつれて、第2のブロックは、論理ユニットが記録されるように要求し続ける。 Step 274: As the process loops back to step 270, the second block continues to request that the logical unit is recorded. 閉鎖のための所定の条件が具体化すると、第2のブロックは閉鎖されて、さらなる更新を受信しなくなる。 When a predetermined condition for closure is embodied, the second block being closed, not receive further updates. この場合、処理は276へ進む。 In this case, the process proceeds to 276.

ステップ276:閉鎖された第2のブロックが元ブロックと同様の順序でその更新論理ユニットを記録しているかどうかについて決定が行われる。 Step 276: the second block is closed, determine whether that record the updated logical unit in the same order as the original block. 図3Aに関して説明したように、ページタグ分だけ異なる論理ユニットを記録している場合には、2つのブロックは同様の順序であるとみなされる。 As described with respect to FIG. 3A, if you record different logical units only pages tag component, the two blocks are considered to be the same order. 2つのブロックが同様の順序である場合は、処理はステップ280へ進み、そうでなければ、ステップ290において、何らかのガーベッジコレクションを行う必要がある。 If the two blocks are the same order, the process proceeds to step 280, otherwise, in step 290, it is necessary to do some garbage collection.

ステップ280:第2のブロックは第1のブロックと同一の順序なので、第2のブロックは、元ブロックである第1のブロックを置換するために使用される。 Step 280: Since the second block sequence identical to the first block, the second block is used to replace the first block is the original block. 更新処理は、その後、ステップ299で終了する。 Update process then ends at step 299.

ステップ290:所定の論理グループの各論理ユニットの最新バージョンが、第2のブロック(更新ブロック)および第1のブロック(元ブロック)から収集される。 Step 290: The latest version of each logical unit of the given logical group are gathered from the second block (update block) and the first block (original block). 所定の論理グループの統合化された論理ユニットは、その後、第1のブロックと同様の順序で第3のブロックに書き込まれる。 Logic unit which is integrated in the given logical group are then written to the third block in the same order as the first block.

ステップ292:第3のブロック(統合化されたブロック)は第1のブロックと同様の順序であるので、第3のブロックは、元ブロックである第1のブロックを置換するために使用される。 Step 292: Since the third block (integrated block) is the same order as the first block, the third block is used to replace the first block is the original block. 更新処理は、その後、ステップ299で終了する。 Update process then ends at step 299.

ステップ299:閉鎖処理によって変化のない更新ブロックが作成されると、これが所定の論理グループにとっての新規の標準ブロックとなる。 Step 299: If the update block without changing a closeout process creates, this becomes the new standard block for the given logical group. 論理グループについての更新スレッドは終了される。 Update thread for the logical group is terminated.

図10は、本発明の好ましい実施形態に係る、データの論理グループを更新するための更新ブロックマネージャによる処理を示すフロー図である。 10, according to a preferred embodiment of the present invention, is a flow diagram illustrating a process by the update block manager to update a logical group of data. 更新処理は、以下のステップを含む。 The update process comprises the following steps.

ステップ310:データの所定の論理グループ(例えば、LG x )について、LG x内で論理セクタを更新するための要求が行われる(一例として、セクタ更新が挙げられる。一般的には、更新は、LG x内の1つ以上の連続論理セクタのセグメントととなる)。 Step 310:. A given logical group of data (e.g., LG x) for, as is (an example carried out request to update a logical sector within LG x, a generally sector update may be mentioned, update, the one or more segments of successive logical sectors within LG x).

ステップ312:LG xに専用の更新ブロックがまだ存在しない場合、ステップ410へ進み、論理グループについて新規の更新スレッドを開始する。 Step 312: If the update block dedicated to LG x does not already exist, the process proceeds to step 410 to begin a new update thread for the logical group. これは、論理グループの更新データを記録するのに専用の更新ブロックを割り当てることによって達成されることになる。 This will be accomplished by allocating an update block dedicated to recording update data of the logical group. 開放されている更新ブロックが既にあれば、ステップ314へ進み、更新ブロックに対する更新セクタの記録を開始する。 If opened in which update block is already, the process proceeds to step 314 to begin recording the update sector for update block.

ステップ314:現在の更新ブロックが既にカオス的(すなわち、非順次的)である場合には、そのままステップ510へ進み、要求された更新セクタをカオス的更新ブロックに記録する。 Step 314: the current update block is already chaotic (i.e., non-sequential) If it is, the process directly proceeds to step 510, recording the requested update sector chaotic update block. 現在の更新ブロックが順次的である場合、ステップ316へ進み、順次更新ブロックの処理を行う。 If the current update block is sequential, the process proceeds to step 316 to process the sequential update block.

ステップ316:本発明の一特徴は、論理的な順次またはカオス的順序でデータを記録するように、更新ブロックを最初に一般的に設定することができるようにする。 Step 316: One feature of the present invention is to record the data in a logical sequential or chaotic order to allow the first generally set to the update block. しかし、論理グループは、最終的にはそのデータを論理的な順次順序でメタブロックに記憶させるので、更新ブロックをできるだけ順次的に維持するのが望ましい。 However, logical group, because ultimately stores the data to metablock in logically sequential order, it is desirable to maintain the update block as far as possible sequentially. そうすれば、更新ブロックが閉鎖されてさらなる更新ができなくなった場合、ガーベッジコレクションは必要ないので、必要とされる処理が少なくなる。 That way, if the update block is no longer able to further update is closed, because the garbage collection is not required, less processing is required.

要求された更新が更新ブロックの現在の順次順序に従うかどうかについての決定がなされる。 It requested update determination as to whether following the current sequential order of the update block is made. 更新が順次的に従う場合、ステップ510へ進み、順次更新が行われ、更新ブロックは順次的なままである。 When following update sequentially, the process proceeds to step 510, sequential update is performed, the update block will remain sequential manner. 他方、更新が順次的に従わない(カオス的更新の)場合、他の動作が行われないならば、順次更新ブロックをカオス的なものに変換する。 On the other hand, the update does not sequentially follow (chaotic update), then if the other operation is not performed, to convert the sequential update block to a chaotic one.

一実施形態において、状況を守るためにこれ以上何もせず、処理は直接ステップ370へ進み、更新ブロックをカオス的なものにする更新が許容される。 In one embodiment, without any more to protect the situation, the process proceeds directly to step 370, updates to the update block into a chaotic one is allowed.

オプションの強制的順次処理 Forced sequential processing of options
他の実施形態において、強制的順次処理ステップ320が、保留中のカオス的更新の観点から順次更新ブロックをできるだけ保存するためにオプションとして行われる。 In other embodiments, the forced sequential process steps 320 are performed as an option to save as much as possible sequential update block in terms of chaotic update pending. 2つの状況があり、どちらも、欠落したセクタを元ブロックからコピーして、更新ブロック上に記録された論理セクタの順次順序を維持するものである。 There are two situations, both copies the missing sectors from the original block, is to maintain the sequential order of the recorded logical sector on the update block. 第1の状況は、更新によって短いアドレスジャンプが生じることである。 The first situation is that the short address jump the update occurs. 第2の状況は、更新ブロックを順次的に保つために、更新ブロックを早く閉鎖することである。 The second situation, in order to keep the update block sequential, is to close quickly update block. 強制的順次処理ステップ320は、以下のサブステップを含む。 Forced sequential process steps 320, includes the following sub-steps.

ステップ330:更新によって、所定の量C Bより大きい論理アドレスジャンプが生じる場合、処理はステップ350の強制的順次更新処理へと進み、そうでなければ、処理はステップ340へと進んで、強制的順次閉鎖の資格があるかどうかの検討を行う。 Step 330: the update, if the predetermined amount C B is greater than the logical address jump occurs, the process proceeds to forced sequential update process in step 350, otherwise, the process proceeds to step 340, compulsorily It does what the consider whether there is a sequential closure of the qualification.

ステップ340:充填されていない物理セクタ数が、更新ブロックのサイズの半分が典型的な値である所定の設定パラメータC Cを超える場合、更新ブロックは、比較的使用されず、早く閉鎖されることはない。 Step 340: the number of physical sectors, which have not been filled, if half the size of the update block exceeds a predetermined setting parameter C C is a typical value, the update block is relatively not used, is closed earlier that no. 処理はステップ370へ進み、更新ブロックは、カオス的となる。 The process proceeds to step 370, the update block will become chaotic. 他方、更新ブロックがおおむね充填されている場合、既に十分に使っているとみなされるので、ステップ360へと進み、強制的順次閉鎖となる。 On the other hand, if the update block is substantially filled, so it is considered to use already enough, the process proceeds to step 360, a forced sequential closure.

ステップ350:強制的順次更新により、現在の順次更新ブロックを、アドレスジャンプが所定量C Bを超えない限り順次的なままとすることができる。 Step 350: the forced sequential update, the current sequential update block address jump may be as long remain sequential not exceeding a predetermined amount C B. 基本的には、更新ブロックの関連する元ブロックからのセクタがコピーされて、アドレスジャンプによるギャップを埋める。 Basically, the sector from the associated original block of the update block is copied to fill the gap by the address jump. よって、順次更新ブロックは、ステップ510へ進んで現在の更新を順次記録する前に、介在アドレス内のデータで埋められることになる。 Thus, sequential update block, prior to sequentially record the current update proceeds to step 510, it will be padded with data in the intervening addresses.

ステップ360:強制的順次閉鎖により、現在の順次的な更新ブロックを、カオス的なものに変換するよりも保留中のカオス的更新によって既におおむね充填されていれば、閉鎖することができる。 Step 360: By forcing sequential closing, the current sequential update block, if already filled largely by chaotic update pending than converted to a chaotic one, it can be closed. カオス的または非順次更新は、前述したアドレスジャンプ例外、逆方向アドレス遷移、またはアドレス反復の対象ではなく、順方向アドレス遷移を伴うものとして規定される。 Chaotic or non-sequential update address jump exception described above, rather than the reverse address transition, or an address repetition of the subject, it is defined as one with a forward address transition. 順次更新ブロックがカオス的更新によって変換されるのを防止するために、更新ブロックの未書き込みのセクタ位置が、更新ブロックの関連した元の部分的に廃止されたブロックからセクタをコピーすることによって充填される。 For sequential update block is prevented from being transformed by the chaotic update filled, the sector position of the unwritten update block by copying sectors from the associated original partly obsolete block update block It is. 元ブロックは、その後完全に廃止されて、消去することができる。 Source block can be subsequently completely abolished, erased. 現在の更新ブロックは、現在では、フルセットの論理セクタを有するので、元メタブロックを置き換える変化のないメタブロックとして閉鎖される。 Current update block is now, since it has a logical sector of a full set is closed as metablock unchanged replace the original metablock. 処理は、ステップ430へと進み、ステップ310において最初に要求された保留中のセクタ更新の記録を受け付けるために、新規の更新ブロックをその位置に割り当てる。 Processing proceeds to step 430, in order to accept the first sector pending update requested recorded in step 310, it allocates a new update block in its position.

カオス的更新ブロックへの変換 Conversion to a chaotic update block
ステップ370:保留中の更新が順次順序でなく、オプションとして、強制的順次条件が満たされていない場合、処理がステップ510へ進むときに非順次アドレスを有する保留中の更新セクタが更新ブロックへ記録されるようにするために、順次更新ブロックは、カオス的なものに変換されることが許容される。 Step 370: not updating sequential order pending recording Optionally, if the forced sequential conditions are not satisfied, updating the sector pending with nonsequential address when the operation proceeds to step 510 to update block in order to be, sequential update block is allowed to be converted to a chaotic one. カオス的更新ブロックの最大数が存在する場合に、変換が進む前に、最近最もアクセスされていないカオス的更新ブロックを閉鎖する必要がある。 If the maximum number of chaotic update blocks exist, before the conversion progresses, it is necessary to close the chaotic update block that has not been recently most accessible. よって、カオス的更新ブロックの最大数が超えないようにする。 Thus, the maximum number of chaotic update block does not exceed. 最近最もアクセスされていないカオス的更新ブロックの識別は、ステップ420において説明した一般的な場合と同一であるが、カオス的更新ブロックだけに制約される。 Identification of the most recently accessed non chaotic update block is the same as when the general description in step 420, is constrained by the chaotic update block. このときにカオス的更新ブロックを閉鎖することは、ステップ550において説明したような統合化によって達成される。 Closing the chaotic update block at this time is achieved by consolidation as described in step 550.

システム制約を受ける新規の更新ブロックの割り当て Assignment of the new update block to receive the system constraints
ステップ410:消去メタブロックを更新ブロックとして割り当てる処理は、所定のシステム制約が超えているかどうかを判断することから開始する。 Step 410: The processing of assigning an erase metablock as an update block begins by determining whether a given system constraints are exceeded. リソースは有限であるため、メモリ管理システムは、典型的には、更新ブロックの所定の最大数C Aが並行して存在することを許容する。 Since resources are finite, memory management system typically allows a predetermined maximum number C A update blocks exist in parallel. この制限は、順次更新ブロックとカオス的更新ブロックとの総計であり、設計パラメータである。 This limit is the sum of the sequential update block and chaotic update block is a design parameter. 好ましい実施形態において、この制限は、例えば、最大8つの更新ブロックである。 In a preferred embodiment, the limit is, for example, a maximum of eight update blocks. また、システムリソースに対するさらなる高い需要により、並行して開放されているカオス的更新ブロックの最大数に対する対応する所定の制限があってもよい(例えば、4つ)。 Moreover, a further high demand on system resources, which may be a corresponding predetermined limit on the maximum number of chaotic update blocks that are opened in parallel (e.g., four).

よって、C A個の更新ブロックが既に割り当てられていれば、次の割り当て要求は、既存の割り当てられたものの1つが閉鎖された後にはじめて満足することができるようになる。 Therefore, if the assigned C A number of update blocks already, the next allocation request, one of those is existing the assigned becomes possible for the first time satisfied after being closed. 処理はステップ420へ進む。 The process proceeds to step 420. 開放更新ブロックの数がC Aを下回る場合には、処理は直接ステップ430へ進む。 If the number of open update blocks is below C A, the process proceeds directly to step 430.

ステップ420:更新ブロックC Aの最大数を超える場合には、最近最もアクセスされていない更新ブロックが閉鎖されて、ガーベッジコレクションが行われる。 Step 420: if it exceeds the maximum number of update blocks C A is update block that has not been recently most accessible is closed, garbage collection is performed. 最近最もアクセスされていない更新ブロックは、最近最もアクセスされていない論理ブロックに関連した更新ブロックとして識別される。 Most have not been accessed update block recently is identified as the update block associated with the logical block that has not been recently most accessible. 最近最もアクセスされていないブロックを決定する目的で、アクセスは、論理セクタの書き込みと、オプションで読み出しとを含む。 In most recently accessed non purposes of determining block access includes a write logical sector, a read option. 開放更新ブロックのリストが、アクセス順に保持され、初期化の際には、アクセス順序は何ら想定されていない。 List of open update blocks is maintained in order of access, the time of initialization, the access order is not in any way envisaged. 更新ブロックの閉鎖は、更新ブロックが順次的な場合のステップ360および530、ならびに更新ブロックがカオス的な場合のステップ540に関連して説明したのと同様の処理に従う。 Closed update block, steps 360 and 530 when the update block is sequential, and update block follows a similar process to that described in connection with step 540 where chaotic. 閉鎖により、ステップ430において新規の更新ブロックを割り当てる空間ができる。 The closure, a space is to allocate a new update block in step 430.

ステップ430:割り当て要求は、新規のメタブロックを所定の論理グループLG xに専用の更新ブロックとして割り当てることで満足される。 Step 430: allocation request is satisfied by assigning as an update block dedicated to the new metablock in the given logical group LG x. その後、処理はステップ510へ進む。 Thereafter, the processing proceeds to step 510.

更新データの更新ブロックへの記録 Recording to the update block of updated data
ステップ510:要求された更新セクタは、更新ブロックの次に使用可能な物理位置上に記録される。 Step 510: The requested update sector is recorded onto next available physical location of the update block. その後、処理はステップ520へ進み、更新ブロックを閉鎖する機が熟したかどうかが判断される。 Thereafter, the process proceeds to step 520, whether Ki for closing the update block is ripe or not.

更新ブロックの閉鎖 Closure of the update block
ステップ520:さらなる更新を受け付けるための空間が更新ブロックにまだある場合には、ステップ570へ進む。 Step 520: space for accepting a further update when there is still in the update block, the process proceeds to step 570. そうでない場合には、ステップ522へ進み、更新ブロックを閉鎖する。 Otherwise, the process proceeds to step 522, closing the update block. 現在の要求された書き込みが、ブロックが有する空間よりも多くの論理セクタを書き込もうとするものである場合に、更新ブロックを満たす実装例として2つのものがある。 Write with the current request, if it is intended to write a lot of logical sectors than space having blocks, there are two things the implementation which satisfies the update block. 第1の実装例において、書き込み要求は2つの部分に分割され、第1の部分がブロックの最終物理セクタまで書き込む。 In a first implementation, the write request is split into two parts, the first part is written to the last physical sector of the block. その後、ブロックは閉鎖され、書き込みの第2の部分が、次に要求された書き込みとして扱われることになる。 Thereafter, the block is closed, the second portion of the writing, then will be treated as a write requested. 他方の実装例において、要求された書き込みは、ブロックが残りのセクタが埋め込まれて閉鎖されている間は保留される。 In other implementations, the write requested is, while the block is being closed is embedded remaining sectors are reserved. 要求された書き込みは、次に要求された書き込みとして扱われることになる。 The requested write will be treated as writing the next requested.

ステップ522:更新ブロックが順次的であれば、ステップ530へと進み、順次閉鎖となる。 Step 522: If the update block is sequential, proceed to step 530, and sequentially closed. 更新ブロックがカオス的であれば、ステップ540へと進み、カオス的閉鎖となる。 If the update block is chaotic, the process proceeds to step 540, the chaotic closing.

順次更新ブロックの閉鎖 Closure of the sequential update block
ステップ530:更新ブロックが順次的かつ満杯であるので、そこに記憶された論理グループには変化がない。 Step 530: Since the update block is sequential and full, no change in the logical group stored therein. メタブロックは変化がなく、元のものを置換する。 Metablock no change, replace the original ones. このとき、元ブロックは完全に廃止され、消去されてもよい。 At this time, the original block is fully obsolete and may be erased. その後、処理はステップ570へと進み、所定の論理グループに対する更新スレッドは終了する。 Thereafter, the process proceeds to step 570, update thread for the given logical group ends.

カオス的更新ブロックの閉鎖 Closure of the chaotic update block
ステップ540:更新ブロックは非順次的に充填され、いくつかの論理セクタの複数の更新を含む場合もあるので、ガーベッジコレクションが行われて、内部の有効なデータを救い出す。 Step 540: the update block are filled non-sequential manner, since some may include a plurality of update of logical sectors, it is performed garbage collection, rescue internal valid data. カオス的更新ブロックは、コンパクト化または統合化のいずれかが行われることになる。 Chaotic update block will either compaction or integration is performed. どちらの処理を行うかは、ステップ542において決定される。 Whether to perform processing is determined in step 542.

ステップ542:コンパクト化を行うか、または統合化を行うかは、更新ブロックの重なり具合に依存する。 Step 542: whether to compaction, or whether to perform an integrated, it depends on degree of overlap update block. 論理セクタが複数回更新されていれば、その論理アドレスは非常に重なっている。 If the logical sector is updated multiple times, the logical address overlaps very much. 更新ブロックに記録された同一の論理セクタの複数のバージョンがあることになり、最後に記録されたバージョンのみが、この論理セクタについて有効なものである。 Will be multiple versions of the same logical sector recorded on the update block, only the last recorded version is valid for this logical sector. 複数のバージョンを有する論理セクタを含む更新ブロックにおいて、別個の論理セクタの数は、論理グループの数よりはるかに少ないことになる。 In the update block containing logical sectors with multiple versions, the number of distinct logical sectors will be much less than the number of logical groups.

好ましい実施形態において、更新ブロック内の別個の論理セクタの数が、論理グループの大きさの半分が典型的な値である所定の設計パラメータCDを超える場合には、閉鎖処理はステップ550において統合化を行い、そうでなければ、処理はステップ560においてコンパクト化を行う。 In a preferred embodiment, the number of distinct logical sectors in the update block, when half the size of the logical group exceeds a predetermined design parameter CD is a typical value, a process for closing the integration in step 550 It was carried out, otherwise, the process performs the compaction in step 560.

ステップ550:カオス的更新ブロックが統合化されることになる場合、元ブロックと更新ブロックとが、統合化されたデータを含む新規の標準メタブロックに置換されることになる。 Step 550: If the chaotic update block is to be integrated, the original block and the update block will be replaced by a new standard metablock containing the integrated data. 統合化後、更新スレッドはステップ570において終了する。 After integration, update thread ends in step 570.

ステップ560:カオス的更新ブロックがコンパクト化されることになる場合、コンパクト化されたデータを保持する新規の更新ブロックに置換されることになる。 Step 560: If the chaotic update block is to be compacted, will be replaced by a new update block to hold the compacted data. コンパクト化後、コンパクト化された更新ブロックの処理は、ステップ570において終了する。 After compaction, the process of the compacted update block ends at step 570. 代わりに、更新ブロックが再び書き込まれるまで、コンパクト化を遅らせることもでき、これにより、介在する更新がないのに統合化に続いてコンパクト化が生じる可能性を排除する。 Instead, until the update block is written again, it can delay the compact, thereby, following integration for no update intervening exclude the possibility that more compact occurs. 新規の更新ブロックは、その後、LG xにおける更新への次の要求がステップ502において生じるときに、所定の論理ブロックのさらなる更新を行う際に使用されることになる。 New update block, then the next request to the update in LG x is when occurring in step 502, will be used when performing further updates the predetermined logic block.

ステップ570:閉鎖処理によって変化のない更新ブロックが作成される場合には、それが所定の論理グループの新規の標準ブロックになる。 Step 570: If the update block unchanged by the closing process is created, it becomes the new standard block for the given logical group. この論理グループの更新スレッドは終了することになる。 Update thread of the logical group will be terminated. 閉鎖処理によって既存のものを置換する新規の更新ブロックが作成される場合には、この新規の更新ブロックは、所定の論理グループに対して要求される次の更新を記録するために使用されることになる。 If a new update block replacing an existing one a closeout process creates an update block for this new, it is used to record the next update requested for the given logical group become. 更新ブロックが閉鎖されない場合には、処理は、LG x内の更新に対する次の要求がステップ310に生じる場合に継続する。 If the update block is not closed, the process, the next request for update in LG x continues to be caused to step 310.

前述した処理からわかるように、カオス的更新ブロックが閉鎖される場合には、そこに記録された更新データがさらに処理される。 As can be seen from the process described above, when a chaotic update block is closed, the update data recorded therein is further processed. 特に、その有効データに対しては、他のカオス的ブロックへコンパクト化する処理か、またはその関連する元ブロックに統合化して新たな標準順次ブロックを形成する処理によって、ガーベッジコレクションが行われる。 In particular, for the effective data, or processing compact to another chaotic block, or by treatment to form a new standard sequential block by integration based on blocks associated thereof, garbage collection is performed.

図11Aは、図10に示されているカオス的更新ブロックを閉鎖する統合化処理をより詳細に示すフロー図である。 Figure 11A is a flow diagram illustrating in greater detail an integrated process of closing a chaotic update block shown in FIG. 10. カオス的更新ブロックの統合化は、更新ブロックが閉鎖されている場合、例えば、更新ブロックが最終物理セクタ位置に書き込みがなされた状態で一杯である場合に行われる、2つの予想される処理のうちの1つである。 Integration of chaotic update block, if the update block is closed, for example, update block is written to the last physical sector location is performed when it is full of state was made, of the two predicted process it is one of the. 統合化は、ブロックに書き込まれた別個の論理セクタの数が所定の設計パラメータC Dを超える場合に選ばれる。 Integration is chosen when the number of distinct logical sectors written in the block exceeds a predetermined design parameter C D. 図10に示されている統合化処理ステップ550は、以下のサブステップを備える。 And integrated process step 550 illustrated in FIG. 10 comprises the following substeps.

ステップ551:カオス的更新ブロックが閉鎖されている場合に、それを置換する新規のメタブロックが割り当てられることになる。 Step 551: If the chaotic update block is closed, so that the new metablock is allocated to replace it.

ステップ552:廃止されたセクタはすべて無視して、カオス的更新ブロックおよびその関連する元ブロック内の各論理セクタの最新バージョンを収集する。 Step 552: Ignore all obsolete sectors, to collect the latest version of each logical sector of the chaotic update block and its associated in the original block that.

ステップ554:収集された有効なセクタを新規のメタブロックに論理的な順次順序で記録して、変化のないブロック、すなわち、論理グループのすべての論理セクタが順次順序で記録されているブロックを形成する。 Step 554: forming the gathered valid sectors recorded in logically sequential order to a new metablock, no blocks of change, i.e., a block in which all the logical sectors of the logical group is recorded in sequential order to.

ステップ556:元ブロックを新規の変化のないブロックに置換する。 Step 556: Replace the original block to block without the new changes.

ステップ558:閉鎖された更新ブロックおよび元ブロックを消去する。 Step 558: erasing the closed update block and the original block.

図11Bは、図10に示されているカオス的更新ブロックを閉鎖するためのコンパクト化処理をより詳細に示すフロー図である。 Figure 11B is a flow diagram illustrating a compaction process in more detail for closing a chaotic update block shown in FIG. 10. コンパクト化は、ブロック内の別個の論理セクタの数が所定の設計パラメータC Dを下回る場合に選ばれる。 Compaction is chosen when the number of distinct logical sectors in the block is below a predetermined design parameter C D. 図10に示されているコンパクト化処理ステップ560は、以下のサブステップを備える。 Compaction process step 560 illustrated in FIG. 10 comprises the following substeps.

ステップ561:カオス的更新ブロックがコンパクト化されている最中に、それを置換する新規のメタブロックが割り当てられる。 Step 561: while the chaotic update block is compact, the new metablock is allocated to replace it.

ステップ562:コンパクト化されるべき既存のカオス的更新ブロック内の各論理セクタの最新バージョンを収集する。 Step 562: Gather the latest version of each logical sector existing chaotic update block to be compacted.

ステップ564:収集されたセクタを新規更新ブロックに記録して、コンパクト化されたセクタを有する新規の更新ブロックを形成する。 Step 564: The collected sector is recorded in a new update block to form a new update block having compacted sectors.

ステップ566:既存の更新ブロックをコンパクト化されたセクタを有する新規の更新ブロックに置換する。 Step 566: Replace the new update block having an existing update block compacted sectors.

ステップ568:閉鎖された更新ブロックを消去する。 Step 568: to erase the closed update block.

論理およびメタブロック状態 Logic and the metablock states
図12Aは、様々な動作下における、論理グループの予想されるすべての状態と、その状態間で予想される遷移とを示す。 Figure 12A shows under various operations, and all states that are expected for a logical group, the transition and the expected between its states.

図12Bは、論理グループの予想される状態を列挙する表である。 12B is a table listing the state of the expected logical groups. 論理グループの状態は、以下のように規定される。 State of the logical group is defined as follows.
1. 1. 変化なし:論理グループ内のすべての論理セクタが、論理的な順次順序で、ページタグ折り返しなどを使用して、1つのメタブロックに書き込まれている。 No change: All logical sectors in the logical group, in logically sequential order, possibly using page tag folded, being written to a single metablock.
2. 2. 未書き込み:論理グループ内の論理セクタが全く書き込まれていない。 Unwritten: logical sector within the logical group is not written at all. 論理グループは、グループアドレステーブルにおいて未書き込みとして印付けされ、割り当てられたメタブロックはない。 Logical group is marked as unwritten in a group address table, allocated metablock not. このグループ内のすべてのセクタに対するホスト読み出しに応答して、予め定められたデータパターンが返される。 In response to the host read for every sector within this group, defined data pattern is returned in advance.
3. 3. 順次更新:論理グループ内のいくつかのセクタが、論理的な順次順序で、ページタグなどを使用してメタブロックに書き込まれ、これらのセクタによって、このグループの以前の変化なしの状態から対応する論理セクタが置換される。 Sequential Update: Some sectors within the logical group, in logically sequential order, written in the metablock, possibly using page tag, these sectors, corresponding from previous without changing state in this group logical sector is replaced.
4. 4. カオス的更新:論理グループ内のいくつかのセクタが、論理的な非順次順序で、ページタグなどを使用してメタブロックに書き込まれ、これらのセクタによって、このグループの以前の変化なしの状態から対応する論理セクタが置換される。 Chaotic Update: Some sectors within the logical group, in logically non-sequential order, written in the metablock, possibly using page tag, these sectors from the previous no change state of this group corresponding logical sectors are replaced. グループ内のセクタは、1回より多く書き込まれてもよく、最新のバージョンが、以前のすべてのバージョンを置換することになる。 Sector within the group may be written more than once, the latest version, will replace all prior versions.

図13Aは、様々な動作下における、メタブロックの予想されるすべての状態と、その状態間で予想される遷移とを示す。 13A shows under various operations, and all states expected metablock transitions and expected between its states.

図13Bは、メタブロックの予想される状態を列挙する表である。 13B is a table listing the state expected metablock. メタブロックの状態は、以下のように規定される。 State of the metablock is defined as follows.
1. 1. 消去済み:メタブロック内のすべてのセクタは消去される。 Erased: all sectors in the meta block is erased.
2. 2. 順次更新:メタブロックには、セクタが論理的な順次順序でページタグなどを使用して部分的に書き込まれている。 Sequential Update: The metablock sector is written like partially using page tag in logically sequential order. すべてのセクタは、同一の論理グループに属する。 All sectors, belong to the same logical group.
3. 3. カオス的更新:メタブロックには、セクタが論理的な非順次順序で部分的または一杯に書き込まれている。 Chaotic Update: The metablock sectors are partially written or filled in logically non-sequential order. 任意のセクタは1回より多く書き込むことができる。 Any sector can be written more than once. すべてのセクタは、同一の論理グループに属する。 All sectors, belong to the same logical group.
4. 4. 変化なし:メタブロックは、論理的な順次順序でページタグなどを使用して一杯に書き込まれている。 No change: metablock are written in full, possibly using page tag in logically sequential order.
5. 5. オリジナル:メタブロックは、以前は変化なしであったが、少なくとも1つのセクタがホストデータ更新によって廃止されている。 Original: The metablock, Formerly no change, at least one sector is abolished by the host data update.

図14(A)〜14(J)は、論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 Figure 14 (A) ~14 (J) is a state diagram showing the state of the logical group, the effect of the various operations for the physical metablock.

図14(A)は、第1の書き込み動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (A) shows state diagrams corresponding to the logical group and the metablock transitions for a first write operation. ホストは、依然未書き込みの論理グループの1つ以上のセクタを、新規に割り当てられた消去済みメタブロックに、論理的な順次順序で書き込む。 The host still one or more sectors of the logical group of unwritten, the erased metablock allocated newly written in logically sequential order. 論理グループおよびメタブロックは、順次更新状態になる。 Logical group and the metablock will sequentially updated state.

図14(B)は、第1の変化なし動作についての論理グループおよびメタブロック遷移に対応する状態図である。 FIG. 14 (B) shows state diagrams corresponding to the logical group and the metablock transitions for a first no change operation. 以前に未書き込みだった順次更新論理グループは、すべてのセクタが順次的にホストによって書き込まれると、変化なしとなる。 Sequential update logic group was unwritten previously, when all of the sectors are sequentially written by the host, and no change. この遷移は、カードが残りの未書き込みのセクタを予め定められたデータパターンで埋めることによって、グループを充填する場合も生じうる。 This transition, card by filling in the remaining data pattern defined unwritten sectors previously may also occur when filling the group. メタブロックは変化なしとなる。 Meta-block is no change.

図14(C)は、第1のカオス的動作についての論理グループおよびメタブロック遷移に対応する状態図である。 FIG. 14 (C) shows state diagrams corresponding to the logical group and the metablock transitions for a first chaotic operation. 以前に未書き込みだった順次更新論理グループは、少なくとも1つのセクタが非順次的にホストによって書き込まれると、カオス的となる。 Sequential Update Logical Group unwritten previously, when at least one sector is written by the non-sequential manner host becomes chaotic.

図14(D)は、最初のコンパクト化動作についての論理グループおよびメタブロック遷移に対応する状態図である。 FIG. 14 (D) shows state diagrams corresponding to the logical group and the metablock transitions for a first compaction operation. 以前に未書き込みだったカオス的更新論理グループ内のすべての有効なセクタが、旧ブロックから新規のカオス的メタブロックへコピーされ、旧ブロックは、その後消去される。 All valid sectors within a chaotic update logic group was unwritten previously, is copied from the old block to the new chaotic meta block, the old block is then erased.

図14(E)は、最初の統合化動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (E) shows state diagrams corresponding to the logical group and the metablock transitions for a first consolidation operation. 以前に未書き込みだったカオス的更新論理グループ内のすべての有効なセクタが、旧カオス的ブロックから移動されて、新規に割り当てられたブロックに論理的な順次順序で充填される。 All valid sectors within a previously chaotic update logical group was unwritten, it is moved from the old chaotic block is filled in logically sequential order newly allocated block. ホストによって書き込みされていないセクタには、予め定められたデータパターンが充填される。 Is to have not been sector write by the host, predetermined data patterns are filled. 旧カオス的ブロックは、その後消去される。 The old chaotic block is then erased.

図14(F)は、順次書き込み動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (F) shows state diagrams corresponding to the logical group and the metablock transitions for a sequential write operation. ホストは、変更なしの論理グループの1つ以上のセクタを、論理的な順次順序で、新規に割り当てられた消去済みブロックに書き込む。 Host one or more sectors of the logical group of no change, in logically sequential order, written in an erased block that has been assigned to the new. 論理グループおよびメタブロックは、順次更新状態となる。 Logical group and the metablock is a sequential update state. 以前変更なしであったメタブロックは、元メタブロックとなる。 Meta block was without a previous change is made to the original meta-block.

図14(G)は、順次充填動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (G) shows state diagrams corresponding to the logical group and the metablock transitions for a sequential fill operation. 順次更新論理グループは、そのすべてのセクタが順次的にホストによって書き込まれる場合に、変化なしとなる。 Sequential Update Logical Group, when all its sectors are written sequentially by the Host, the no change. これは、順次更新論理グループを変化無しとするために、元ブロックからの有効なセクタで充填する場合にも生じることがあり、その後、元ブロックは消去される。 This in turn updates the logical group to a no change, may occur even when filled with valid sectors from the original block, then the original block is erased.

図14(H)は、非順次書き込み動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (H) shows state diagrams corresponding to the logical group and the metablock transitions for a non-sequential write operation. 順次更新論理グループは、少なくとも1つのセクタが非順次的にホストによって書き込まれる場合に、カオス的となる。 Sequential Update Logical Group, when at least one sector is written by the non-sequential manner host becomes chaotic. 非順次的セクタの書き込みは、更新ブロック内または対応する元ブロック内のいずれかの有効なセクタを廃止することがあってもよい。 Writing nonsequential sector, there may be possible to eliminate one of the valid sectors in the original block to the update block or the corresponding.

図14(I)は、コンパクト化動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (I) shows state diagrams corresponding to the logical group and the metablock transitions for a compaction operation. カオス的更新論理グループ内のすべての有効なセクタは、旧ブロックから新規のカオス的メタブロックへコピーされて、旧ブロックは、その後消去される。 All valid sectors within a Chaotic Update Logical Group are copied from the old block to the new chaotic metablock, old block is then erased. 元ブロックは、影響を受けない。 The original block is not affected.

図14(J)は、統合化動作についての論理グループおよびメタブロック遷移に対応する状態図である。 Figure 14 (J) shows state diagrams corresponding to the logical group and the metablock transitions for a consolidation operation. カオス的更新論理グループ内のすべての有効なセクタは、旧カオス的ブロックおよび元ブロックからコピーされて、新規に割り当てられた消去ブロックは論理的な順次順序で充填される。 All valid sectors within a Chaotic Update Logical Group are copied from the old chaotic block and the original block, erase block newly allocated is filled in logically sequential order. その後、旧カオス的ブロックおよび元ブロックは消去される。 After that, the old chaotic block and the original block is erased.

更新ブロックの追跡および管理 Track and manage update block
図15は、割り当てのための開放または閉鎖された更新ブロックおよび消去ブロックの状況を追跡するための割り当てブロックリスト(ABL)の構造の好ましい実施形態を示す。 Figure 15 shows a preferred embodiment of the structure of the allocation block list (ABL) for keeping track the status of open or closed update block and erase blocks for allocation. 割り当てブックリスト(ABL)610は、コントローラRAM130に保持され、消去されたブロックの割り当て、割り当てられた更新ブロック、関連するブロック、および制御構造の管理を行うことができ、また正確な論理/物理アドレス変換を可能にする。 Assignment book list (ABL) 610 is held in controller RAM 130, allocation of erased blocks, allocated update block, it is possible to manage the associated block, and control structures, also exact logical / physical address to enable the conversion. 好ましい実施形態において、ABLは、消去済みブロックのリストと、開放更新ブロックリスト614と、閉鎖更新ブロックリスト616とを含む。 In a preferred embodiment, ABL includes a list of erased blocks, an open update block list 614 and a closed update block list 616.

開放更新ブロックリスト614は、開放更新ブロックの属性を伴う、ABL内のブロックエントリのセットである。 Open update block list 614, involves the attributes of the open update block is a set of block entries in the ABL. 開放更新ブロックリストは、現在開放されている各データ更新ブロック毎に1つのエントリを有する。 Open update block list has one entry for each data update block currently being opened. 各エントリは、以下の情報を保持する。 Each entry holds the following information. LGは、現在の更新メタブロックが専用である論理グループアドレスである。 LG is the logical group address is only the current update metablock. 順次/カオス的は、更新ブロックが順次またはカオス的更新データで充填されているかどうかを示す状態である。 Sequential / Chaotic is update block is a state indicating whether filled with sequential or chaotic update data. MBは、更新ブロックのメタブロックアドレスである。 MB is the metablock address of the update block. ページタグは、更新ブロックの最初の物理位置に記録された開始論理セクタである。 Page tag is the first start logical sector recorded in the physical location of the update block. 書き込まれたセクタ数は、更新ブロックに現在書き込まれたセクタの数を示す。 Number of written sectors indicates the number of currently written sectors in the update block. MB 0は、関連する元ブロックのメタブロックアドレスである。 MB 0 is the metablock address of the associated original block. ページタグ0は、関連する元ブロックのページタグである。 Page tag 0 is a page tag of the associated original block.

閉鎖更新ブロックリスト616は、割り当てブロックリスト(ABL)のサブセットである。 Closed update block list 616 is a subset of the Allocation Block List (ABL). 閉鎖更新ブロックの属性を伴う、ABL内のブロックエントリのセットである。 Involves attributes of closed update block is a set of block entries in the ABL. 閉鎖更新ブロックリストは、閉鎖されたデータ更新ブロック毎に1つのエントリを有するが、そのエントリは、論理的に主要物理ディレクトリに更新されていない。 Closed update block list has one entry for each closed data update block, the entry has not been updated in the logical key physical directory. 各エントリは、以下の情報を保持する。 Each entry holds the following information. LGは、現在の更新ブロックが専用である論理グループアドレスである。 LG is a logical group address that is dedicated to the current update block. MBは、更新ブロックのメタブロックアドレスである。 MB is the metablock address of the update block. ページタグは、更新ブロックの最初の物理位置に記録された開始論理セクタである。 Page tag is the first start logical sector recorded in the physical location of the update block. MB 0は、関連する元ブロックのメタブロックアドレスである。 MB 0 is the metablock address of the associated original block.

カオス的ブロックのインデックス付け Indexing of chaotic block
順次更新ブロックは、論理的に順次順序でデータを記憶しているので、ブロック内の任意の論理セクタは、容易に位置決定することができる。 Sequential update block, since the store data logically sequential order, any logical sector within a block can be determined readily position. カオス的更新ブロックは、その論理セクタを順序がばらばらに記憶し、論理セクタの複数の更新生成物を記憶してもよい。 Chaotic update block has its logical sector order is apart storage may store a plurality of update product logical sector. 各有効な論理セクタがカオス的更新ブロックのどこにあるかを追跡するために、追加の情報を保持しなければならない。 For each valid logical sector is to track where it is chaotic update block must hold additional information.

好ましい実施形態において、カオス的ブロックのインデックス付けのデータ構造は、カオス的ブロックにおけるすべての有効なセクタの追跡および高速アクセスを可能にする。 In a preferred embodiment, the data structure of the indexing chaotic block allows for tracking and fast access of all valid sectors in a chaotic block. カオス的ブロックのインデックス付けは、論理アドレス空間の小さな領域を独立して管理するものであり、システムデータと、ユーザデータのホット領域を効率的に扱う。 Indexing chaotic block is for independently managing small regions of logical address space, handling and system data, the hot area of ​​the user data efficiently. インデックス付けデータ構造により、性能が大幅な影響を受けないように、本質的にインデックス付け情報が、更新が稀であるという要件でフラッシュメモリ内に保持することができる。 The indexing data structures, so performance is not subjected to substantial impact, essentially indexing information may be retained in the flash memory requirement that updates are infrequent. 他方、カオス的ブロックに現在書き込まれているセクタのリストは、コントローラRAMにおけるカオス的セクタリストに保持される。 On the other hand, the list of sectors currently being written in chaotic blocks are held in a chaotic sector list in controller RAM. また、フラッシュメモリからのインデックス情報のキャッシュが、アドレス変換のためのフラッシュセクタアクセス数を最小限にするために、コントローラRAMに保持される。 The cache of index information from flash memory, in order to minimize the flash sector number of accesses for address translation, is held in controller RAM. カオス的ブロック毎のインデックスが、フラッシュメモリ内のカオス的ブロックインデック(CBI)内に記憶される。 Index for each chaotic block are stored in chaotic block in deck in the flash memory (CBI).

図16Aは、カオス的ブロックインデックス(CBI)セクタのデータフィールドを示す。 Figure 16A illustrates the data fields of the chaotic block index (CBI) sectors. カオス的ブロックインデックスセクタ(CBIセクタ)は、カオス的更新ブロックにマッピングされた論理グループ内のセクタ毎のインデックスを含み、カオス的更新ブロックまたはその関連する元ブロック内の論理グループの各セクタの位置を規定する。 Chaotic block index sector (CBI sector) contains an index for each sector in the chaotic update block within the logical group mapped to the position of each sector of the chaotic update block or logical group in the original block its associated regulatory. CBIセクタは、カオス的ブロック内の有効セクタを追跡するためのカオスブロックインデックスフィールドと、カオスブロックについてのアドレスパラメータを追跡するためのカオス的ブロック情報フィールドと、CBIセクタを記憶するメタブロック(CBIブロック)内の有効なCBIセクタを追跡するためのセクタインデックスフィールドとを含む。 CBI sector includes a chaotic block index field for keeping track of valid sectors of the chaotic block, a chaotic block info field for keeping track of address parameters for the chaotic block, metablock (CBI block for storing CBI sectors ) and a sector index field for keeping track of valid CBI sectors within.

図16Bは、カオス的ブロックインデックス(CBI)セクタが専用のメタブロックに記録されている一例を示す。 Figure 16B shows an example of chaotic block index (CBI) sectors being recorded in a dedicated metablock. 専用のメタブロックを、CBIブロック620と称する。 A dedicated metablock, referred to as a CBI block 620. CBIセクタが更新されると、CBIブロック620内の次に使用可能な物理セクタ位置に書き込まれる。 When CBI sector is updated and written in the next available physical sector location in the CBI block 620. したがって、CBIセクタの複数のコピーがCBIブロック内に存在し、最後に書き込まれたコピーのみが有効である。 Therefore, present in multiple copies CBI block CBI sector, only copy the last written is valid. 例えば、論理グループLG 1についてのCBIセクタは3回更新され、最後に書き込まれたコピーのみが有効なものである。 For example, CBI sector for the logical group LG 1 has been updated three times, only copy the last written is valid. CBIブロック内の各有効セクタの位置は、ブロック内の最後に書き込まれたCBIセクタ内のインデックスのセットによって識別される。 Location of each valid sector in the CBI block is identified by a set of indices in the CBI sectors written in the last block. この例において、ブロック内に最後に書き込まれたCBIセクタは、LG 136についてのCBIセクタであり、そのインデックスのセットは、以前のすべてのものに取って代わる有効なものである。 In this example, the last CBI sectors written in the block, a CBI sector for LG 136, a set of the index is valid replace those previously all. CBIブロックが最終的にCBIセクタで満杯になると、ブロックは、制御書き込み動作中に、すべての有効セクタを新規のブロック位置に書き換えることによってコンパクト化される。 When CBI block becomes full in the final CBI sectors, the block during a control write operation, are all valid sectors compacted by rewriting the new block position. その後、一杯のブロックは、消去される。 After that, the full block, is erased.

CBIセクタ内のカオス的ブロックインデックスフィールドは、カオス的更新ブロックにマッピングされた論理グループまたはサブグループ内の各論理セクタについてのインデックスエントリを含む。 Chaotic block index field within a CBI sector contains an index entry for each logical sector chaotic update block mapped logical group or sub-group to. 各インデックスエントリは、対応する論理セクタについての有効データが位置するカオス的更新ブロック内のオフセットを示す。 Each index entry indicates the offset of the chaotic update block valid data for the corresponding logical sector is located. 予約されたインデックス値は、論理セクタについての有効データがカオス的更新ブロック内に存在しないことを示し、関連する元ブロック内の対応するセクタが有効であることを示す。 Reserved index value indicates that valid data for the logical sector exists in the chaotic update block, indicating that corresponding sector in the associated original block is valid. いくつかのカオス的ブロックインデックスフィールドエントリのキャッシュが、コントローラRAMに保持される。 Some chaotic block index field entries in the cache is held in controller RAM.

CBIセクタ内のカオス的ブロック情報フィールドは、システム内に存在するカオス的更新ブロック毎に1つのエントリを含み、ブロックについてのアドレスパラメータ情報を記録する。 Chaotic block info field within a CBI sector contains one entry for each chaotic update block that exists in the system, records the address parameter information for the block. このフィールド内の情報は、CBIブロック内に最後に書き込まれたセクタにおいて有効であるのみである。 Information in this field is only effective in the last written sector in the CBI block. この情報は、RAM内のデータ構造にも存在する。 This information is also present in data structures in RAM.

カオス的更新ブロック毎のエントリは、3つのアドレスパラメータを含む。 Entry chaotic update each block includes three address parameters. 1つ目は、カオス的更新ブロックに関連する論理グループの論理アドレス(または論理グループ番号)である。 The first is the logical address of a logical group associated with the chaotic update block (or logical group number). 2つ目は、カオス的更新ブロックのメタブロックアドレスである。 The second is the metablock address of the chaotic update block. 3つ目は、カオス的更新ブロック内に最後に書き込まれたセクタの物理アドレスのオフセットである。 The third is the offset of the physical address of the last written sector in the chaotic update block. オフセット情報は、RAM内にデータ構造を再構築するために、初期化中のカオス的更新ブロックの走査のための開始点を設定する。 Offset information, in order to reconstruct the data structure in the RAM, and sets the start point for scanning of the chaotic update block during initialization.

セクタインデックスフィールドは、CBIブロックにおける有効CBIセクタ毎のエントリを含む。 Sector index field contains an entry for each valid CBI sector in the CBI block. 各許可されたカオス的更新ブロックに関する最も最近書き込まれたCBIセクタが位置するCBIブロック内のオフセットを規定する。 The most recently written CBI sectors relating to each permitted chaotic update block defining the offset in the CBI block located. インデックス内のオフセットの予約値は、許可されたカオス的更新ブロックが存在しないことを示す。 A reserved value of an offset in the index indicates that there is no permitted chaotic update block.

図16Cは、カオス的更新を受けている所定の論理グループの論理セクタのデータに対するアクセスを示すフロー図である。 Figure 16C is a flow diagram illustrating access to the data of a logical sector of a given logical group undergoing chaotic update. 更新処理中に、更新データがカオス的更新ブロックに更新データを記録し、変化していないデータは、論理グループに関連する元メタブロック内に留まる。 During the update process, the update data records update data in the chaotic update block, data that is not changed, remains in the original metablock associated with the logical group. カオス的更新下で論理グループの論理セクタをアクセスする処理は、以下のようである。 Process of accessing a logical sector of the logical group under chaotic update is as follows.

ステップ650:所定の論理グループの所定の論理セクタの位置決定を開始する。 Step 650: initiate a position determination of a given logical sector of a given logical group.

ステップ652:CBIブロック内の最終書き込みCBIセクタを位置決定する。 Step 652: locating the last written CBI sector in the CBI block.

ステップ654:最終書き込みCBIセクタのカオス的ブロック情報フィールドを検索することによって、所定の論理グループに関連したカオス的更新ブロックまたは元ブロックを位置決定する。 Step 654: By looking up the Chaotic Block Info field of the last written CBI sector positioning the chaotic update block or original block associated with the given logical group. このステップは、ステップ662の前であればいつでも行うことができる。 This step can be performed at any time prior to the step 662.

ステップ658:最終書き込みCBIセクタが所定の論理グループ宛であれば、CBIセクタは位置決定される。 Step 658: If the last written CBI sector is directed to the given logical group, CBI sector is determined position. ステップ662へ進む。 The process proceeds to step 662. そうでなければ、ステップ660へ進む。 Otherwise, the process proceeds to step 660.

ステップ660:最終書き込みCBIセクタのセクタインデックスフィールドを検索することによって、所定の論理グループについてのCBIセクタを位置決定する。 Step 660: By searching for the sector index field of the last written CBI sector positioning the CBI sector for the given logical group.

ステップ662:位置決定されたCBIセクタのカオス的ブロックインデックスフィールドを検索することによって、カオス的ブロックまたは元ブロック内の所定の論理セクタを位置決定する。 Step 662: By looking up the Chaotic Block Index field of the located determined CBI sector, to locate a given logical sector of a chaotic block or the original block.

図16Dは、論理グループがサブグループに分割されている代替の実施形態に係る、カオス的更新を受けている所定の論理グループの論理セクタのデータに対するアクセスを示すフロー図である。 Figure 16D, in accordance with an alternate embodiment logic group is divided into subgroups, a flow diagram illustrating access to the data of a logical sector of a given logical group undergoing chaotic update. CBIセクタの容量は有限なので、論理セクタの所定の最大数を追跡することができるのみである。 Since CBI capacity of sector finite, it is only possible to track the predetermined maximum number of logical sectors. 論理グループが単一のCBIセクタが扱えるより多くの論理セクタを有する場合には、論理グループは、CBIセクタがそれぞれ割り当てられた複数のサブグループに分割される。 If the logical group has more logical sectors than can handle a single CBI sector, logical group, CBI sector is divided into a plurality of sub-groups assigned respectively. 一例において、各CBIセクタは、256個のセクタと、8個までのカオス的更新ブロックとからなる論理グループを追跡するのに十分な容量を有する。 In one example, each CBI sector has enough capacity for tracking and 256 sectors, a logical group of a chaotic update block up to eight. 論理グループが256セクタを超えるサイズを有する場合には、256セクタのサブグループのそれぞれための別個のCBIセクタが論理グループ内に存在する。 If the logical group has a size exceeding 256 sectors, a separate CBI sector for each sub-group of 256 sectors it is present in the logical group. 8個までのサブグループのためのCBIセクタが論理グループ内に存在してもよく、サイズで2048個のセクタまでの論理グループに対してサポートを提供する。 May CBI sector for the subgroup of up to eight are present in the logical group, to provide support for logical groups up to 2048 sectors in size.

好ましい実施形態において、インデックスの管理を促進するために、間接インデックス付け手法が取られる。 In a preferred embodiment, in order to facilitate management of the index, the indirect indexing approach is taken. セクタインデックスの各エントリは、直接および間接フィールドを有する。 Each entry of the sector index has direct and indirect fields.

直接セクタインデックスは、特定のカオス的更新ブロックに関連するすべての予想されるCBIセクタが位置するCBIブロック内のオフセットを規定する。 Direct sector index defines the offsets within the CBI block all expected CBI sectors relating to a specific chaotic update block are located. このフィールドの情報は、最後に書き込まれた、この特定のカオス的更新ブロックに関連するCBIセクタにおいてのみ有効である。 The information in this field is the last written, it is only effective in CBI sector relating to this specific chaotic update block. インデックス内のオフセットの予約値は、CBIセクタが存在しないことを示す。 A reserved value of an offset in the index indicates that the CBI sector does not exist. というのは、カオス的更新ブロックに関連する対応する論理サブグループが、存在しないか、または更新ブロックが割り当てられて以来更新されていないからである。 Because is the corresponding logical subgroup relating to the chaotic update block either does not exist, or because an update block has not been updated since assigned.

間接セクタインデックスは、各許可されたカオス的更新ブロックに関連する最も最近書き込まれたCBIセクタが位置するCBIブロック内のオフセットを規定する。 Indirect Sector Index defines the offsets within the CBI block most recently written CBI sectors relating to chaotic update blocks each authorized is located. インデックス内のオフセットの予約値は、許可された更新ブロックが存在しないことを示す。 A reserved value of an offset in the index indicates that there is no authorized update block.

図16Dは、以下のような、カオス的更新下の論理グループの論理セクタをアクセスする処理を示す。 Figure 16D shows the process of accessing the following cases, the logical sector of the logical group under chaotic update.

ステップ670:各論理グループを複数のサブグループに分割して、CBIセクタを各サブグループに割り当てる。 Step 670: dividing each logical group into a plurality of sub-groups, and assign a CBI sector to each subgroup.

ステップ680:所定の論理グループの所定のサブグループの所定の論理セクタの位置決定を開始する。 Step 680: initiate a position determination of a given logical sector of a given subgroup of a given logical group.

ステップ682:CBIブロック内の最終書き込みCBIセクタを位置決定する。 Step 682: locating the last written CBI sector in the CBI block.

ステップ684:最終書き込みCBIセクタのカオス的ブロック情報フィールドを検索することによって、所定のサブグループに関連したカオス的更新ブロックまたは元ブロックを位置決定する。 Step 684: By looking up the Chaotic Block Info field of the last written CBI sector positioning the chaotic update block or original block associated with the given subgroup. このステップは、ステップ696の前であればいつでも行うことができる。 This step can be performed at any time prior to the step 696.

ステップ686:最終書き込みCBIセクタが所定の論理グループ宛である場合には、ステップ691へ進む。 Step 686: If the last written CBI sector is directed to the given logical group, the process proceeds to step 691. そうでなければ、ステップ690へ進む。 Otherwise, the process proceeds to step 690.

ステップ690:最終書き込みCBIセクタの間接セクタインデックスフィールドを検索することによって、所定の論理グループについての複数のCBIセクタの最終書き込みを位置決定する。 Step 690: By looking for indirect sector index field of the last written CBI sector is located determines the final writing of multiple CBI sectors for the given logical group.

ステップ691:所定の論理グループについてのサブグループの1つに関連したCBIセクタが少なくとも位置決定されている。 Step 691: CBI sectors relating to one of the subgroups for the given logical group has at least positioning. 続く。 Continue.

ステップ692:位置決定されたCBIセクタが所定のサブグループ宛である場合には、この所定のサブグループについてのCBIセクタが位置決定される。 Step 692: If the position determined CBI sector is directed to the given subgroup, CBI sector for the given subgroup is determined position. ステップ696へ進む。 The process proceeds to step 696. そうでなければ、ステップ694へ進む。 Otherwise, the process proceeds to step 694.

ステップ694:現在の位置決定されたCBIセクタの直接セクタフィールドを検索することによって、所定のサブグループについてのCBIセクタを位置決定する。 Step 694: by looking directly sector fields of CBI sectors determined current location, locating the CBI sector for the given subgroup.

ステップ696:所定のサブグループについてのCBIセクタのカオス的ブロックインデックスフィールドを検索することによって、カオス的ブロックまたは元ブロック内の所定の論理セクタを位置決定する。 Step 696: By looking up the Chaotic Block Index field of the CBI sector for the given subgroup, to locate a given logical sector of a chaotic block or the original block.

図16Eは、各論理グループが複数のサブグループに分割される実施形態についての、カオス的ブロックインデックス付け(CBI)セクタおよびその機能の例を示す。 FIG. 16E, for the embodiment where each logical group is partitioned into multiple sub-groups, shows an example of a chaotic block indexing (CBI) sectors and their functions. 論理グループ700は、その変化のないデータを、元メタブロック702内に記憶する。 Logical group 700, the data without the change is stored in the original metablock 702. その後、論理グループは、専用のカオス的更新ブロック704の割り当てを伴う更新を受ける。 Thereafter, logical group receives updates with the allocation of dedicated chaotic update block 704. この例において、論理グループ700は、サブグループA,B,C,Dのようなサブグループに分割され、各サブグループは256個のセクタを有する。 In this example, logical group 700 is divided subgroups A, B, C, into subgroups, such as and D, each subgroup having 256 sectors.

サブグループB内のi番目のセクタを位置決定するために、CBIブロック620内の最終書き込みCBIセクタを最初に位置決定する。 To locate the i-th sector in the subgroup B, and initially positioning the last written CBI sector in the CBI block 620. 最終書き込みCBIセクタのカオス的ブロック情報フィールドは、所定の論理グループについてのカオス的更新ブロック704を位置決定するためのアドレスを提供する。 Chaotic block info field of the last written CBI sector provides the address to locate the chaotic update block 704 for the given logical group. 同時に、これは、カオス的ブロックに書き込まれた最終セクタの位置をも提供する。 At the same time, this also provides the position of the written last sector in the chaotic block. この情報は、走査および再構築の際に有用である。 This information is useful in scanning and reconstruction.

最終書き込みCBIセクタが所定の論理グループの4つのCBIセクタのうちの1つであることがわかると、このセクタが確かにi番目の論理セクタを含む所定のサブグループBについてのCBIセクタかどうかをさらに確認することになる。 If it is found the last written CBI sector is one of the four CBI sectors of the given logical group, whether CBI sector for the given subgroup B This sector contains certainly i-th logical sector It will be further confirmed. そうであれば、CBIセクタのカオス的ブロックインデックスは、i番目の論理セクタについてのデータを記憶するメタブロック位置を指すことになる。 If so, chaotic block index CBI sector, will point to the metablock location for storing the data for the i-th logical sector. セクタ位置は、カオス的更新ブロック704または元ブロック702のいずれかでありうる。 Sector position can be either chaotic update block 704 or the original block 702.

最終書き込みCBIセクタが所定の論理グループの4つのCBIセクタのうちの1つではあるが、正確にはサブグループBについてのCBIセクタではないことがわかると、その直接セクタインデックスを検索して、サブグループBについてのCBIセクタを位置決定する。 Although the last written CBI sector is the one of the four CBI sectors of the given logical group, precisely when it can be seen that not the CBI sector for the subgroup B, and searches the direct sector index, sub to locate the CBI sector for the group B. この正確なCBIセクタが位置決定されると、そのカオス的ブロックインデックスを検索して、カオス的更新ブロック704および元ブロック702の中のi番目の論理セクタを位置決定する。 When this exact CBI sector is determined position, by searching its chaotic block index to locate the i-th logical sector in the chaotic update block 704 and the source block 702.

最終書き込みCBIセクタが所定の論理グループの4つのCBIセクタのうちのいずれでもないことがわかると、その間接セクタインデックスを検索して、4つのうちの1つを位置決定する。 When it can be seen that the last written CBI sector is not one of the four CBI sectors of the given logical group, searching for its indirect sector index, to locate one of the four. 図16Eに示されている例において、サブグループCについてのCBIセクタを位置決定する。 In the example shown in FIG. 16E, to locate the CBI sector for subgroup C. その後、サブグループCについてのこのCBIセクタは、その直接セクタインデックスを検索して、サブグループBについての正確なCBIセクタを位置決定する。 Thereafter, the CBI sector for subgroup C searches its direct sector index, to locate the exact CBI sector for the subgroup B. 図に示されている例では、カオス的ブロックインデックスを検索すると、i番目の論理セクタが変化していないことがわかり、その有効データが元データ内で位置決定される。 In the example shown, a search for chaotic block index, can see that the i-th logical sector is not changed, the valid data is positioning in the original data.

同様の検討が、所定の論理グループのサブグループC内のj番目の論理セクタを位置決定することにも適用される。 Similar considerations also apply to positioning the j th logical sector in subgroup C of the given logical group. 図に示されている例では、最終書き込みCBIセクタが所定の論理グループの4つのCBIセクタのうちのいずれでもないことがわかる。 In the example shown in the figure, it can be seen that the last written CBI sector is not one of the four CBI sectors of the given logical group. その間接セクタインデックスは、所定のグループについての4つのCBIセクタのうちの1つを指す。 Its indirect sector index points to one of the four CBI sectors for the given group. また、4つのうちの指された最終書き込み分は、確かにサブグループCについてのCBIセクタであることがわかる。 Moreover, the last write content that is finger of the four is certainly understood to be the CBI sector for subgroup C. そのカオス的ブロックインデックスを検索すると、j番目の論理セクタが、カオス的更新ブロック704内の指定された位置に位置決定されることがわかる。 When you search for its chaotic block index, j th logical sector is seen to be position determination to the specified position of the chaotic update block 704.

カオス的セクタのリストが、システム内の各カオス的更新ブロックについてのコントローラRAM内にある。 List of chaotic sector lies in the controller RAM for each chaotic update block in the system. 各リストは、関連するCBIセクタがフラッシュメモリ内で最後に更新されたときからの、カオス的更新ブロック内に書き込まれたセクタの記録を含む。 Each list contains a record of the relevant CBI sector from when last updated in flash memory, the sector written in the chaotic update block. 特定のカオス的更新ブロックについての論理セクタアドレスの数は、カオス的セクタリスト内に保持することができ、8から16というのが典型的な値の設計パラメータである。 The number of logical sector addresses for a specific chaotic update block can be held in a chaotic sector list, is a design parameter of the typical value is that 8 to 16. このリストの最適なサイズは、カオス的データ書き込み動作についてのオーバーヘッドに対する影響と、初期化中のセクタ走査時間とを調整して決定される。 Optimal size of the list is determined by adjusting the effect on overhead for chaotic data write operation, a sector scanning time during initialization.

システム初期化中に、各カオス的更新ブロックを必要に応じて走査して、関連するCBIセクタのうちの1つについての以前の更新以来書き込まれた有効なセクタを識別する。 During system initialization, scanning as needed each chaotic update block, identifying the valid sectors written since the previous update of one of the related CBI sector. 各カオス的更新ブロックについてのコントローラRAM内のカオス的セクタリストが構築される。 Chaotic sector list in controller RAM for each chaotic update block is constructed. 各ブロックは、最終書き込みCBIセクタ内のカオス的ブロック情報フィールドで規定された最終セクタアドレスから走査されればよい。 Each block need only be scanned from the chaotic block info field in a defined last sector address in the last written CBI sector.

カオス的更新ブロックが割り当てられると、CBIセクタが、すべての更新された論理サブグループに対応するように書き込まれる。 When a chaotic update block is allocated, CBI sector is written to correspond to all updated logical sub-groups. カオス的更新ブロックについての論理および物理アドレスは、カオス的ブロックインデックスフィールド内の空白エントリと共に、セクタ内の使用可能なカオス的ブロック情報フィールド内に書き込まれる。 Logical and physical addresses for the chaotic update block, along with a blank entry in the chaotic block index field are written into available chaotic block info field in the sector. カオス的セクタリストは、コントローラRAMにおいて開放される。 Chaotic sector list is opened in the controller RAM.

カオス的更新ブロックが閉鎖されると、CBIセクタが、セクタ内のカオス的ブロック情報フィールドから除去されたブロックの論理および物理アドレスと共に書き込まれる。 When a chaotic update block is closed, CBI sector is written with the logical and physical addresses of the block removed from the chaotic block info field in the sector. RAM内の対応するカオス的セクタリストは、使用されなくなる。 The corresponding chaotic sector list in RAM, will not be used.

コントローラRAM内の対応するカオス的セクタリストは、カオス的更新ブロックに書き込まれたセクタの記録を含むように修正される。 Corresponding chaotic sector list in controller RAM is modified to include records of sectors written to a chaotic update block. コントローラRAM内のカオス的セクタリストが、カオス的更新ブロックに対するさらなるセクタ書き込みの記録について使用可能な空間を有していない場合には、更新されたCBIセクタが、リスト内のセクタに関連する論理サブグループについて書き込まれ、リストはクリアされる。 Logical sub chaotic sector list in controller RAM is, in the case having no available space for records of further sector writes for chaotic update block, updated CBI sectors, associated with the sectors in the list written for the group, the list is cleared.

CBIブロック620が満杯になると、有効なCBIセクタが割り当てられた消去済みブロックにコピーされ、以前のCBIブロックは消去される。 When CBI block 620 becomes full, it is copied to the erased block valid CBI sectors are allocated, the previous CBI block is erased.

アドレステーブル Address table
図2に示されている論理/物理アドレス変換モジュール140は、ホストの論理アドレスをフラッシュメモリ内の対応する物理アドレスに関連付ける役割を担う。 Logical / physical address translation module 140 shown in FIG. 2 is responsible for associating a logical address of the host to a corresponding physical address in flash memory. 論理グループと物理グループ(メタブロック)との間のマッピングが、不揮発性フラッシュメモリ200および揮発性だが動作が速いRAM130(図1参照)に分散されたテーブルおよびリストのセット内に記憶される。 Mapping between logical groups and physical groups (metablocks) are but a non-volatile flash memory 200 and the volatile operation are stored fast RAM130 in a set of distributed tables and lists (see FIG. 1). アドレステーブルは、フラッシュメモリに保持され、メモリシステム内の各論理グループについてのメタブロックアドレスを含む。 Address table is maintained in flash memory, comprising a metablock address for each logical group in the memory system. 加えて、最近書き込まれたセクタについての論理/物理アドレス記録は、RAMに一時的に保持される。 In addition, the logical / physical address records for recently written sectors are temporarily held in RAM. これらの揮発性記録は、電源投入後にシステムを初期化するときに、フラッシュメモリ内のブロックリストおよびデータセクタヘッダから再構築することができる。 These volatile recording, when initializing the system after power-on, can be reconstructed from block lists and data sector headers in flash memory. よって、フラッシュメモリ内のアドレステーブルは、たまに更新されればよく、制御データについてのオーバーヘッド書き込み動作の割合が減ることになる。 Thus, the address table in flash memory, only to be occasionally updated, so that the percentage of overhead write operations for control data is reduced.

論理グループについてのアドレス記録の階層は、開放更新ブロックリストと、RAM内の閉鎖更新ブロックリストと、フラッシュメモリに保持されたグループアドレステーブル(GAT)とを含む。 Address recording hierarchy for the logical group includes an open update block list, the closed update block list in RAM, and the group address table held in the flash memory (GAT).

開放更新ブロックリストは、更新されたホストセクタデータについて現在開放されているデータ更新ブロックのコントローラRAM内のリストである。 Open update block list, the updated host sector data is a list in controller RAM of data update blocks which are currently open. あるブロックに対するエントリは、ブロックが閉鎖されると、閉鎖更新ブロックリストに移動される。 Entry for a block, the block is closed, it is moved to the closed update block list. 閉鎖更新ブロックリストは、閉鎖されているデータ更新ブロックのコントローラRAM内のリストである。 Closed update block list is a list in controller RAM of data update blocks which have been closed. リスト内のエントリのサブセットは、制御書き込み動作中に、グループアドレステーブル内のセクタに移動される。 A subset of the entries in the list, during a control write operation, is moved to the sector in the group address table.

グループアドレステーブル(GAT)は、メモリシステム内のホストデータのすべての論理グループについてのメタブロックアドレスのリストである。 Group Address Table (GAT) is a list of metablock addresses for all logical groups of host data in the memory system. GATは、論理アドレスに従って順次的に並べられた、論理グループ毎に1つのエントリを含む。 GAT is ordered in sequential according to the logical address includes one entry for each logical group. GAT内のn番目のエントリは、アドレスnの論理グループについてのメタブロックアドレスを含む。 n-th entry in the GAT contains the metablock address for the logical group address n. 好ましい実施形態において、このテーブルは、フラッシュメモリ内にあるテーブルであり、メモリシステム内のすべての論理グループについてのメタブロックアドレスを規定するエントリを伴うセクタ(GATセクタと称する)のセットを含む。 In a preferred embodiment, this table is a table in the flash memory, includes a set of sectors with an entry defining a metablock addresses for all logical groups in the memory system (referred to as GAT sectors). GATセクタは、フラッシュメモリ内の1つ以上の専用制御ブロック(GATブロックと称する)内にある。 GAT sectors within one or more dedicated control blocks in the flash memory (referred to as GAT blocks).

図17Aは、グループアドレステーブル(GAT)セクタのデータフィールドを示す。 Figure 17A illustrates the data fields of a group address table (GAT) sector. GATセクタは、例えば、128個の連続する論理グループのセットについてのGATエントリを含むのに十分な容量を有してもよい。 GAT sector may for example have sufficient capacity to contain GAT entries for 128 sets of contiguous logical groups. 各GATセクタは、2つの構成要素、すなわち、ある範囲内の各論理グループのメタブロックアドレスについてのGATエントリのセットと、GATセクタインデックスとを含む。 Each GAT sector includes two components, namely, a set of GAT entries for the metablock address of each logical group within a range, and a GAT sector index. 第1の構成要素は、論理アドレスに関連するメタブロックを位置決定するための情報を含む。 The first component contains information for locating the metablock associated with the logical address. 第2の構成要素は、GATブロック内のすべての有効なGATセクタを位置決定するための情報を含む。 The second component contains information for locating all valid GAT sectors within GAT block. 各GATエントリは、3つのフィールド、すなわち、メタブロック番号と、図3A(iii)に関連して前に規定したようなページタグと、メタブロックが再リンクされたかどうかを示すフラグとを有する。 Each GAT entry has three fields, namely, has a metablock number, and a flag indicating the page tag as defined earlier in connection with FIG. 3A (iii), whether the metablock has been relinked. GATセクタインデックスは、GATブロック内の有効なGATセクタの位置を列挙する。 GAT sector index lists the positions of valid GAT sectors within GAT block. このインデックスは、各GATセクタ内にあるが、GATブロック内の次に書き込まれたGATセクタのバージョンによって取って代わられる。 This index, although in each GAT sector is replaced by the version of next written GAT sector in the GAT block. よって、最終書き込みGATセクタ内のバージョンのみが有効である。 Therefore, only the version in the last written GAT sector is valid.

図17Bは、グループアドレステーブル(GAT)セクタが1つ以上のGATブロックに記録されている一例を示す。 Figure 17B shows an example of the group address table (GAT) sectors being recorded in one or more GAT block. GATブロックは、GATセクタを記録する専用のメタブロックである。 GAT block is a metablock dedicated to recording GAT sectors. GATセクタが更新される場合には、GATブロック720内の次に使用可能な物理セクタ位置に書き込まれる。 When the GAT sector is updated is written in the next available physical sector location of a GAT block 720. したがって、GATセクタの複数のコピーがGATブロック内に存在することがあり、最後に書き込まれたコピーのみが有効である。 Thus, there may be multiple copies of a GAT sector is present in the GAT block, only copy the last written is valid. 例えば、GATセクタ45は、少なくとも2回更新され、最終バージョンが有効なものである。 For example, GAT sector 45 is updated at least two times, the final version is valid. GATブロック内の各有効セクタの位置は、ブロック内の最終書き込みGATセクタ内のインデックスのセットによって識別される。 Location of each valid sector in the GAT block is identified by a set of indices in the last written GAT sector in the block. この例において、ブロック内の最終書き込みGATセクタは、GATセクタ56であり、そのインデックスのセットは、すべての以前のものにとって代わる有効なものである。 In this example, the last written GAT sector in the block is GAT sector 56, the set of the index is valid supersede all previous ones. GATブロックが、GATセクタで最終的に満杯になった場合には、ブロックは、すべての有効なセクタを新規のブロック位置に書き換えることによって、制御書き込み動作中にコンパクト化される。 GAT block, when finally became filled with GAT sectors, the block is by rewriting all valid sectors to a new block location, is compacted during a control write operation. その後、一杯のブロックは消去される。 Then, full of the block is erased.

前に説明したように、GATブロックは、論理アドレス空間のある領域におけるグループの論理的に連続したセットについてのエントリを含む。 As previously described, GAT block contains entries for logically contiguous set of groups in a region of logical address space. GATブロック内のGATセクタは、それぞれ、128個の連続する論理グループについての論理/物理マッピング情報を含む。 GAT sectors within GAT block each contain logical / physical mapping information for 128 contiguous logical groups. GATブロックが対象とするアドレス範囲内のすべての論理グループについてのエントリを記憶するのに必要な数多くのGATセクタは、ブロック内の全セクタ位置のほんのわずかを占めるに過ぎない。 Numerous GAT sectors required to store entries for all logical groups within the address range GAT block is intended merely to occupy only a fraction of the total sector position in the block. したがって、あるGATセクタは、ブロック内の次に使用可能なセクタ位置に書き込まれることによって更新されてもよい。 Therefore, there GAT sector may be updated by being written in the next available sector position in the block. すべての有効なGATセクタおよびそれらのGATブロック内の位置のインデックスが、直近の書き込みGATセクタ内のインデックスフィールドに保持される。 Index position of all valid GAT sectors and within those GAT block is held in the index field in the most recent write GAT sector. 有効なGATセクタによって占められたGATブロック内の僅かな合計セクタは、システム設計パラメータであり、典型的には25%である。 Slight total sectors in GAT block occupied by valid GAT sectors is a system design parameter, which is typically 25%. しかし、GATブロック毎に最大64個の有効GATセクタがある。 However, there is a maximum of 64 valid GAT sector in each GAT block. 論理容量が大きいシステムにおいて、1つ以上のGATブロックにGATセクタを記憶する必要がある場合がある。 In the system logical capacity is large, it may be necessary to store GAT sectors in more than one GAT block. この場合、各GATブロックは、固定的な範囲の論理グループに関連付けられる。 In this case, each GAT block is associated with a logical group of fixed range.

GAT更新は、制御書き込み動作の一部として行われ、割り当てのためのブロックがABLになくなったときにトリガされる(図18参照)。 GAT update is performed as part of a control write operation is triggered when a block for allocation runs out ABL (see FIG. 18). これは、ABL充填動作およびCBLを空にする動作と並行して行われる。 This is done in parallel with the emptying operation the ABL fill operation and CBL. GAT更新動作中に、1つのGATセクタは、閉鎖更新ブロックリスト内の対応するエントリからの情報で更新されたエントリを有する。 During GAT update operation, one GAT sector has entries updated with information from corresponding entries in the closed update block list. GATエントリが更新されると、対応するエントリはどれでも、閉鎖更新ブロックリスト(CUBL)から除去される。 When the GAT entry is updated, Any corresponding entry is removed from the closed update block list (CUBL). 例えば、更新すべきGATセクタは、閉鎖更新ブロックリスト内の最初のエントリに基づいて選択される。 For example, GAT sector to be updated is selected based on the first entry in the closed update block list. 更新されたセクタは、GATブロック内の次に使用可能なセクタ位置に書き込まれる。 The updated sector is written in the next available sector position in the GAT block.

更新されたGATセクタに使用可能なセクタ位置がなくなったときに、GAT書き換え動作は、制御書き込み動作中に生じる。 When the sector location has disappeared available for updated GAT sector, GAT rewrite operation occurs during a control write operation. 新たなGATブロックが割り当てられ、GATインデックスによって規定された有効なGATセクタは、順次順序で一杯のGATブロックからコピーされる。 Assigned new GAT block is valid GAT sectors as defined by the GAT index are copied from a cup of GAT block in sequential order. その後、一杯のGATブロックは消去される。 Then, full of GAT block is erased.

GATキャッシュは、GATセクタ内の128個のエントリの再分割部分内のエントリの、コントローラRAM130内のコピーである。 GAT cache entries in subdivision of 128 entries in the GAT sector is a copy in controller RAM 130. GATキャッシュエントリの数は、システム設計パラメータであり、典型的な値は32である。 The number of GAT cache entries is a system design parameter, typical value is 32. 該当セクタの再分割部分についてのGATキャッシュは、エントリがGATセクタから読み出される度に作成される。 GAT cache for subdivisions of the sector, an entry is created each time a read from GAT sector. 複数のGATキャッシュが保持される。 Multiple GAT caches are maintained. その数は、設計パラメータであり、典型的な値は4である。 The number is a design parameter, typical value is 4. GATキャッシュは、最近最も使用されていないことに基づいて、異なるセクタの再分割部分についてのエントリで上書きされる。 GAT cache is based on the fact that not the most recently used, it is overwritten with entries for subdivision of the different sectors.

消去済みメタブロックの管理 Management of erased meta block
図2に示されている消去ブロックマネージャ160は、ディレクトリおよびシステム制御情報を保持するためのリストのセットを使用して、消去ブロックを管理する。 Erase block manager 160 shown in Figure 2, using a set of lists for maintaining directory and system control information, to manage the erase block. これらのリストは、コントローラRAM130およびフラッシュメモリ200に分散されている。 These lists are distributed to the controller RAM130 and flash memory 200. 消去されたメタブロックがユーザデータの記憶のため、またはシステム制御データ構造の記憶のために割り当てられなければならない場合には、コントローラRAMに保持された割り当てブロックリスト(ABL)(図15参照)内の次に使用可能なメタブロック番号が選択される。 For erased metablock storage of user data, or the system if the control data structures must be allocated for the storage of the allocation block list stored in the controller RAM (ABL) (see FIG. 15) in the the next available metablock number is selected. 同様に、メタブロックが廃棄後に消去される場合には、その番号が、同じくコントローラRAMに保持されたクリア済みブロックリスト(CBL)に追加される。 Similarly, when a metablock is erased after disposal, that number is added also to the controller RAM to be held the cleared block list (CBL). 比較的静的なディレクトリおよびシステム制御データが、フラッシュメモリ内に記憶される。 Relatively static directory and system control data are stored in the flash memory. これらには、消去済みブロックリストと、フラッシュメモリ内のすべてのメタブロックの消去された状態のビットマップ(MAP)リストとが含まれる。 These include the erased block list, and bitmap (MAP) listing erased status of all metablocks in the flash memory. 消去済みブロックリストおよびMAPは、個別のセクタに記憶され、MAPブロックとして知られる専用のメタブロックに記録される。 Erased block lists and MAP are stored in individual sectors, are recorded in a dedicated metablock, known as MAP block. これらのリストは、コントローラRAMおよびフラッシュメモリに分散されて、消去済みメタブロックの使用を効率的に管理するための消去済みブロック記録の階層を提供する。 These lists are distributed to the controller RAM and flash memory, it provides erased block records hierarchy to efficiently manage the use of erased metablock.

図18は、消去済みブロックの使用およびリサイクルのための制御およびディレクトリ情報の分配および流れを示す概略ブロック図である。 Figure 18 is a schematic block diagram illustrating the distribution and flow of the control and directory information for usage and recycling of erased blocks. 制御およびディレクトリデータは、コントローラRAM130内か、フラッシュメモリ200内に常駐するMAPブロック750内のいずれかに保持されるリストに保持される。 Control and directory data is either within the controller RAM 130, is held in the list held in any of the MAP block 750 residing in flash memory 200.

好ましい実施形態において、コントローラRAM130は、割り当てブロックリスト(ABL)610と、クリア済みブロックリスト(CBL)740とを保持する。 In a preferred embodiment, the controller RAM130 holds the allocation block list (ABL) 610, and a cleared block list (CBL) 740. 図15に関連して前に説明したように、割り当てブロックリスト(ABL)は、ユーザデータの記憶のため、またはシステム制御データ構造の記憶のために最近割り当てられたのがどのメタブロックかを追跡する。 As described above in connection with FIG. 15, the allocation block list (ABL) is for the storage of user data, or keeps track of which metablocks that recently allocated for the storage of system control data structures to. 新規の消去済みメタブロックを割り当てる必要がある場合には、割り当てブロックリスト(ABL)内の次に使用可能なメタブロック番号が選択される。 If you need to assign a new erased metablock, the next available metablock number in the allocation block list (ABL) is selected. 同様に、クリア済みブロックリスト(CBL)を使用して、割り当て解除および消去された更新メタブロックを追跡する。 Similarly, using the cleared block list (CBL), tracks the deallocated and erased updated metablock. ABLおよびCBLは、比較的アクティブな更新ブロックを追跡する際の迅速なアクセスおよび容易な操作のために、コントローラRAM130(図1参照)に保持される。 ABL and CBL are due to the relatively rapid access time to track active update blocks and easy operation, is held in controller RAM 130 (see FIG. 1).

割り当てブロックリスト(ABL)は、消去済みメタブロックのプールと、消去済みメタブロックを更新ブロックにする割り当てとを追跡する。 Allocation block list (ABL) keeps track and pool of erased metablock, and assigned to the update block erased metablock. よって、これらの各メタブロックは、ABL保留割り当ての消去済みブロックか、開放更新ブロックか、閉鎖更新ブロックかどうかを指定する属性によって記述されてもよい。 Thus, each of these metablocks, or erased block of ABL pending allocation, or open update block may be described by an attribute that specifies whether a closed update block. 図18は、消去済みABLリスト612と、開放更新ブロックリスト614と、閉鎖更新ブロックリスト616とを含むABLを示す。 Figure 18 shows the erased ABL list 612, the open update block list 614, the ABL containing a closed update block list 616. 加えて、開放更新ブロックリスト614に関連付けられているのは、関連する元ブロックリスト615である。 In addition, Associated with the open update block list 614 is associated original block list 615. 同様に、閉鎖更新ブロックリストに関連付けられているのは、関連消去済みの元ブロックリスト617である。 Similarly, Associated with closed update block list is a related erased original block list 617. 図15において前に示したように、これらの関連リストは、それぞれ、開放更新ブロックリスト614および閉鎖更新ブロックリスト616のサブセットである。 As previously indicated in FIG. 15, these related lists, respectively, a subset of the open update block list 614 and the closed update block list 616. 消去済みABLブロックリスト612、開放更新ブロックリスト614、および閉鎖更新ブロックリスト616は、すべて、割り当てブロックリスト(ABL)610のサブセットであり、それぞれの中のエントリは、それぞれ対応する属性を有する。 Erased ABL block list 612, the open update block list 614 and the closed update block list 616 are all a subset of the allocation block list (ABL) 610, the entry in each has a respective corresponding attribute.

MAPブロック750は、フラッシュメモリ200内の消去管理記録を記憶するのに専用のメタブロックである。 MAP block 750 is a metablock dedicated to storing erase management records in flash memory 200. MAPブロックは、時系列のMAPブロックセクタを記憶し、各MAPセクタは、消去ブロック管理(EBM)セクタ760またはMAPセクタ780のいずれかである。 MAP block, when storing the MAP block sectors of series, each MAP sector being either an erase block management (EBM) sector 760 or MAP sectors 780. メタブロックが廃棄されて、消去済みブロックが割り当てで使い尽くされてリサイクルされるにつれて、関連する制御およびディレクトリデータは、MAPブロック内で更新される論理セクタに含まれるのが好ましく、更新データの各インスタンスは、新規のブロックセクタに記録される。 Metablock is discarded, as erased blocks are used exhausted is to recycle the assignment, the associated control and directory data is preferably contained in the logical sector to be updated in the MAP block, the update data each instance, are recorded in the new block sectors. EBMセクタ760およびMAPセクタ780の複数のコピーがMAPブロック750内に存在してもよく、その最新バージョンのみが有効である。 Multiple copies of EBM sectors 760 and MAP sectors 780 may exist in the MAP block 750, only the latest version is valid. 有効MAPセクタの位置へのインデックスは、EMBブロック内のフィールド内に含まれる。 Index to the location of the effective MAP sectors is contained in a field of EMB block. 有効なEMBセクタが、制御書き込み動作中のMAPブロック内にいつも最後に書き込まれる。 Valid EMB sector is always written to the last control write operation in MAP block. MAPブロック750が一杯の場合には、すべての有効セクタを新規のブロック位置に書き換えることによって、制御書き込み動作中にコンパクト化される。 If MAP block 750 is full, by rewriting all valid sectors to a new block location, it is compacted during a control write operation. その後、一杯のブロックは消去される。 Then, full of the block is erased.

各EBMセクタ760は、消去済みブロックリスト(EBL)770を含み、これは、消去済みブロックの母集団のサブセットのアドレスのリストである。 Each EBM sector 760 contains erased block lists (EBL) 770, which is a list of addresses of a subset of the population of erased blocks. 消去済みブロックリスト(EBL)770は、消去済みメタブロック番号を含むバッファとしての役割を果たし、EBLから、メタブロック番号が周期的に取り出されてABLを再充填し、EBLに対して、メタブロック番号が周期的に追加されてCBLを再び空にする。 Erased block list (EBL) 770 plays a role as a buffer containing erased metablock numbers, from EBL, to refill the ABL metablock numbers are periodically taken against EBL, metablock numbers are periodically added again to empty the CBL. EBL770は、使用可能ブロックバッファ(ABB)772、消去済みブロックバッファ(EBB)774、および消去済みブロックバッファ(CBB)776のためのバッファとしての役割を果たす。 EBL770 is available block buffer (ABB) 772, serves as a buffer for the erased block buffer (EBB) 774, and erased block buffer (CBB) 776.

使用可能ブロックバッファ(ABB)772は、前回のABL充填動作のすぐ後に続くABL610内のエントリのコピーを含む。 Available block buffer (ABB) 772 contains a copy of the entries in the ABL610 immediately following the previous ABL fill operation. これは、実質上、ABL充填動作直後のABLのバックアップコピーである。 This is substantially a backup copy of the ABL just after an ABL fill operation.

消去済みブロックバッファ(EBB)774は、MAPセクタ780から、または(後述する)CBBリスト776からのいずれかから先に転送され、かつABL充填動作中にABL610へ転送に使用可能である消去済みブロックアドレスを含む。 Erased block buffer (EBB) 774 from MAP sectors 780 or (described later) is transferred first from any of CBB list 776, and erased block can be used to transfer the ABL610 during an ABL fill operation including the address.

クリアされたブロックバッファ(CBB)776は、CBLを空にする動作中にCBL740から転送され、かつMAPセクタ780またはEBBリスト774へ後に転送される消去済みブロックのアドレスを含む。 Cleared block buffer (CBB) 776 contains the address of the erased blocks that are transferred from CBL740 during emptying operation a CBL, and is transferred to the post-MAP sector 780 or EBB list 774 f.

各MAPセクタ780は、MAPと称されるビットマップ構造を含む。 Each MAP sector 780 contains a bitmap structure referred to as MAP. MAPは、フラッシュメモリ内のメタブロック毎に1ビットを使用し、これは、各ブロックの消去状態を示すために使用される。 MAP uses one bit for each metablock in flash memory, which is used to indicate the erase status of each block. ABL、CBL、またはEBM内の消去済みブロックリスト内に列挙されたブロックアドレスに対応するビットは、MAP内において消去済み状態に設定されない。 ABL, CBL, or bits corresponding to the listed block addresses in the erased block list in EBM, is not set to the erased state in the MAP.

有効データ構造を含まず、かつMAP内の消去済みブロック、消去済みブロックリスト、ABL、またはCBLとして指定されていないブロックはどれでも、ブロック割り当てアルゴリズムによって決して使用されず、従ってホストまたは制御データ構造の記憶のためにアクセスすることはできない。 Not contain valid data structures, and erased block, the erased block list in the MAP, ABL or whichever block that is not specified as a CBL,, never be used by the block allocation algorithm and therefore the host or control data structures it is not possible to access for storage. これにより、アクセス可能なフラッシュメモリアドレス空間から障害位置のあるブロックを除外するための簡単な機構が提供される。 Thus, a simple mechanism for excluding faulty position blocks from the accessible flash memory address space is provided.

図18に示されている階層により、消去済みブロック記録を効率的に管理することができるようになり、コントローラのRAM内に記憶されたブロックアドレスリストの完全なセキュリティを提供する。 The hierarchy shown in Figure 18, will be able to efficiently manage erased block records, providing complete security for the stored block addresses listed in the controller of the RAM. 消去済みブロックエントリが、これらのブロックアドレスリストと、1つ以上のMAPセクタ780との間で、稀に交換される。 Erased block entries, and these block address lists, between one or more MAP sectors 780, it is rarely exchanged. これらのリストは、電源が切られた後のシステム初期化中に、消去済みブロックリスト、およびフラッシュメモリ内のセクタに記憶されたアドレス変換テーブル内の情報と、フラッシュメモリ内のわずかな数の参照済みデータブロックの限定的な走査とを介して再構築される。 These lists, during system initialization after the power is turned off, the information in the erased block list, and the sector to the stored address conversion table in the flash memory, a small number of references in the flash memory requires is reconstructed through the limiting scan data blocks.

消去済みメタブロック記録の階層を更新するために採用されたアルゴリズムにより、消去済みブロックが、MAPブロック750からのアドレス順序のブロックのバーストと、ブロックがホストによって更新された順序を反映するCBL740からのブロックアドレスのバーストとをインターリーブする順序で使用するために割り当てられる結果となる。 By adopting the algorithm to update the erased metablock records hierarchy, erased block, and a burst of the block address order from the MAP block 750, blocks from CBL740 that reflects the order in which they are updated by the host results to be allocated for use in the order of interleaving and burst of the block address. メタブロックサイズおよびシステムメモリ容量のほとんどについて、1つのMAPセクタは、システム内のすべてのメタブロックについてのビットマップを提供する。 For most metablock sizes and system memory capacities, a single MAP sector, it provides a bitmap for all metablocks in the system. この場合、消去済みブロックは、このMAPセクタに記録されるとおりのアドレス順序での使用のために常に割り当てられる。 In this case, erased blocks are always allocated for use in address order as recorded in this MAP sector.

消去ブロック管理動作 Erase block management operations
前に説明したように、ABL610は、使用のために割り当てられるであろう消去済みメタブロック、およびデータ更新ブロックとして最近割り当てられたメタブロックについてのアドレスエントリを有するリストである。 As previously described, ABL610 is a list with address entries for recently allocated metablock erased metablock that would be allocated for use, and as a data update block. ABL内のブロックアドレスの実際の数は、上限と下限という、システム設計の変数の間にある。 The actual number of block addresses in the ABL is that upper and lower limit, during system design variables. 製造中にフォーマットされたABLエントリの数は、カードの種類と容量との関数である。 The number of ABL entries formatted during manufacturing is a function of the type and capacity of the card. 加えて、システムの寿命の終わりが近づくとABL内のエントリの数が減少するのは、使用可能な消去済みブロックの数が寿命内でのブロックの障害によって減少するためである。 In addition, the number of entries in the ABL approaches the end of the system of life to decrease, because the number of available erased blocks is reduced by failure of blocks within the lifetime. 例えば、充填動作の後、ABL内のエントリは、以下の目的のために使用可能なブロックを指定してもよい。 For example, after the filling operation, entries in the ABL, the block may specify available for the following purposes. ブロック毎に1つのエントリを有する部分的に書き込まれたデータ更新ブロックについてのエントリであり、同時に開放されている更新ブロックの最大数についてのシステム制限を越えないもの。 A entry for partially written data update blocks with one entry per block, which does not exceed the system limit for the maximum number of update blocks that are open at the same time. データ更新ブロックとして割り当てるための消去済みブロックについての1個から12個の間のエントリ。 Entries between one of the twelve for erased blocks for allocation as data update blocks. 制御ブロックとして割り当てるための消去済みブロックについての4つのエントリ。 Four entries for erased blocks for allocation as control blocks.

ABL充填動作 ABL fill operation
ABL610が割り当てによって使い尽くされると、再充填される必要があることになる。 When ABL610 is exhausted by the assignment, there will be need to be refilled. ABLを充填する動作は、制御書き込み動作中に生じる。 Operation of filling the ABL occurs during a control write operation. これは、ブロックを割り当てなければならない場合にトリガされるが、ABLには、データ更新ブロックとして割り当てるため、またはいくつかの他の制御データ更新ブロックのために使用可能な消去済みブロックエントリが十分には含まれていない。 This is triggered when the must allocate blocks, the ABL, to assign a data update block, or some other erased block entries available for the control data update block is sufficiently It not included. 制御書き込み中に、ABL充填動作は、GAT更新動作と並行して行われる。 During a control write, ABL fill operation is performed in parallel with the GAT update operation.

以下の動作が、ABL充填動作中に生じる。 The following operation, resulting in the ABL fill operation.
1. 1. 現在のデータ更新ブロックの属性を有するABLエントリは保持される。 ABL entries with attributes of current data update blocks are retained.
2. 2. 閉鎖データ更新ブロックの属性を有するABLエントリは、このブロックについてのエントリが並行GAT更新動作において書き込み中でなければ保持され、書き込み中であれば、このエントリはABLから除去される。 ABL entries with attributes of closed data update block, the entry for the block is held unless being written in parallel GAT update operation, if during a write, the entry is removed from the ABL.
3. 3. 割り当てられていない消去ブロックについてのABLエントリは保持される。 ABL entries for erased blocks that are not assigned is held.
4. 4. ABLは、エントリの除去によって生じたギャップを除去するためにコンパクト化され、エントリの順序が維持される。 ABL is compacted to remove gaps created by removal of entries, order of entries is maintained.
5. 5. ABLは、EBBリストから次に使用可能なエントリをつけることによって完全に充填される。 ABL is completely filled by putting the next available entries from EBB list.
6. 6. ABBリストは、ABL内の現在のエントリで上書きされる。 ABB list is overwritten with the current entry in the ABL.

CBLを空にする動作 Empty operating the CBL
CBLは、消去済みブロックエントリの数に対するABLと同じ制限を有する、コントローラRAM内の消去済みブロックアドレスのリストである。 CBL has the same limitations as ABL on the number of erased block entries is a list of erased block addresses in controller RAM. CBLを空にする動作は、制御書き込み動作中に生じる。 Empty operate the CBL occurs during a control write operation. したがって、この動作は、ABL充填/GAT更新動作、またはCBIブロック書き込み動作と並行して行われる。 Therefore, this operation is performed in parallel an ABL fill / GAT update operations, or CBI block write operations and. CBLを空にする動作において、エントリはCBL740から除去されて、CBBリスト776に書き込まれる。 In empty operated CBL, entries are removed from the CBL740, written to CBB list 776.

MAP交換動作 MAP exchange operation
MAPセクタ780およびEBMセクタ760内の消去ブロック情報間のMAP交換動作は、EBBリスト774が空の場合に、制御書き込み動作中に周期的に生じてもよい。 MAP exchange operation between the erase block information in the MAP sectors 780 and EBM sector 760, when EBB list 774 is empty, or may be periodically occur during a control write operation. システム内のすべての消去済みメタブロックは、EBMセクタ760内に記録され、MAPセクタ780はなく、MAP交換は行われない。 All erased metablock in the system are recorded in the EBM sector in 760, MAP sector 780 is not, MAP exchange is not performed. MAP交換動作中に、EBB774に消去済みブロックを入力するMAPセクタは、送信元MAPセクタ782とみなされる。 During MAP exchange operation, MAP sector to enter the erased blocks in EBB774 is considered the source MAP sector 782. 逆に、CBB776から消去済みブロックを受信するMAPセクタは、送信先MAPセクタ784とみなされる。 Conversely, MAP sector receiving erased blocks from CBB776 is considered a destination MAP sector 784. MAPセクタが1つだけ存在する場合は、以下に規定するように、送信元および送信先MAPセクタの両方としての役割を果たす。 If the MAP sector exists only one, as defined below, serves as both a source and destination MAP sector.

以下の動作が、MAP交換中に行われる。 The following operations are performed during a MAP exchange.
1. 1. 送信元MAPセクタが、増分ポインタに基づいて選択される。 Source MAP sector is selected based on incremental pointer.
2. 2. 送信先MAPセクタが、送信元MAPセクタ内ではない最初のCBBエントリ内のブロックアドレスに基づいて選択される。 Destination MAP sector is selected based on the block address in the first CBB entry that are not in the source MAP sector.
3. 3. 送信先MAPセクタが、CBB内の該当エントリによって規定されたように更新され、当該エントリは、CBBから除去される。 Destination MAP sector is updated, as defined by relevant entries in the CBB, the entry is removed from the CBB.
4. 4. 別個の送信元MAPセクタが存在しなければ、更新された送信先MAPセクタが、MAPブロックに書き込まれる。 If separate source MAP sector exists, the updated destination MAP sector is written in the MAP block.
5. 5. 送信元MAPセクタが、CBB内の該当エントリによって規定されたように更新され、当該エントリは、CBBから除去される。 Source MAP sector is updated, as defined by relevant entries in the CBB, the entry is removed from the CBB.
6. 6. CBB内の残りのエントリが、EBBに付加される。 The remaining entries in the CBB are appended to the EBB.
7. 7. EBBには、送信元MAPセクタから規定された消去済みブロックアドレスができる限り充填される。 The EBB, is filled as much as possible is erased block addresses defined from the source MAP sector.
8. 8. 更新済みの送信元MAPセクタが、MAPブロック内に書き込まれる。 Updated source MAP sector is written in the MAP block.
9. 9. 更新済みのEBMセクタが、MAPブロック内に書き込まれる。 Updated EBM sector is written in the MAP block.

リスト管理 List Management
図18は、様々なリスト間の制御およびディレクトリ情報の分配および流れを示す。 Figure 18 shows the distribution and flow of the control and directory information between the various lists. 便宜のために、リストの要素間でエントリを移動する動作、またはエントリの属性を変更する動作は、[A]から[O]として図18に示され、以下のようなものである。 For convenience, the operation of changing the attribute of the operation, or entry to move entries between elements of the list, shown in Figure 18 as [O] from [A], is as follows.
[A]消去済みブロックがホストデータについての更新ブロックとして割り当てられる場合には、そのエントリのABL内にある属性は、消去済みABLブロックから開放更新ブロックに変更される。 [A] erased block when it is assigned as an update block for host data, the attributes in ABL of the entry is changed to open update block from the erased ABL block.
[B]消去されたブロックが制御ブロックとして割り当てられる場合には、ABL内のそのエントリが除去される。 When the [B] erased block is allocated as a control block, its entry in the ABL is removed.
[C]ABLエントリが開放更新ブロック属性と共に作成される場合には、更新中の論理グループについての元メタブロックアドレスを記録するために、関連する元ブロックフィールドがエントリに付加される。 When the [C] ABL entry is created with the open update block attribute, in order to record the original metablock address for the logical group being updated, the associated original block field is added to the entry. この情報は、GATから取得される。 This information is obtained from the GAT.
[D]更新ブロックが閉鎖されると、そのエントリのABL内にある属性は、開放更新ブロックから閉鎖更新ブロックへ変更される。 When [D] update block is closed, the attributes in ABL of the entry is changed from the open update block to the closed update block.
[E]更新ブロックが閉鎖されると、その関連する元ブロックは消去されて、ABL内にあるそのエントリ内の関連する元ブロックフィールドの属性は、消去済み元ブロックに変更される。 When [E] update block is closed, its associated original block is erased and the associated attributes of the original block field in its entry in the ABL are changed to Erased source block.
[F]ABL充填動作中、同一の制御書き込み動作中にGAT内でアドレスが更新された閉鎖更新ブロックはどれでも、そのエントリがABLから除去される。 [F] During an ABL fill operation, closed update block Any address within GAT is updated during the same control write operation, the entry is removed from the ABL.
[G]ABL充填動作中、閉鎖更新ブロックについてのエントリがABLから除去されると、その関連する消去済みの元ブロックについてのエントリが、CBLへ移動される。 During [G] ABL fill operation, when an entry for a closed update block is removed from the ABL, an entry for erased original block its associated is moved to the CBL.
[H]制御ブロックが消去されると、それについてのエントリが、CBLへ追加される。 When [H] control block is erased, an entry for it is added to the CBL.
[I]ABL充填動作中、消去済みブロックエントリが、EBBリストからABLへ移動され、消去済みABLブロックの属性が与えられる。 During [I] ABL fill operation, the erased block entries are moved from the EBB list to ABL, it is given attributes of Erased ABL Block.
[J]ABL充填動作中のすべての該当ABLエントリの修正後、ABL内のブロックアドレスが、ABBリスト内のブロックアドレスに取って代わる。 [J] After modification of all relevant ABL entries during an ABL fill operation, the block addresses in the ABL replace the block addresses in the ABB list.
[K]制御書き込み中にABL充填動作と並行して、CBL内の消去済みブロックについてのエントリが、CBBリストへ移動される。 [K] in parallel with an ABL fill operation during a control write, entries for erased blocks in the CBL are moved to the CBB list.
[L]MAP交換動作中、すべての該当エントリが、CBBリストからMAP送信先セクタへ移動される。 [L] in the MAP exchange operation, all of the corresponding entry is moved from the CBB list to the MAP destination sector.
[M]MAP交換動作中、すべての該当エントリが、CBBリストからMAP送信元セクタへ移動される。 [M] in the MAP exchange operation, all of the corresponding entry is moved from the CBB list to the MAP source sector.
[N]MAP交換動作中の[L]および[M]に続いて、すべての残りのエントリが、CBBリストからEBBリストへ移動される。 Following [N] MAP exchange operation in [L] and [M], all remaining entries are moved from the CBB list to the EBB list.
[O]MAP交換動作中の[N]に続いて、可能であれば、[M]において移動されたもの以外のエントリが、MAP送信元セクタから移動されて、EBBリストを充填する。 Following [O] MAP exchange operation in [N], where possible, entries other than those moved in [M] are moved from MAP source sector to fill the EBB list.

論理/物理アドレス変換 Logical / physical address conversion
フラッシュメモリ内の論理セクタの物理位置を位置決定するために、図2に示されている論理/物理アドレス変換モジュール140は、論理/物理アドレス変換を行う。 To locate the physical position of the logical sector in the flash memory, the logical / physical address translation module 140 shown in FIG. 2 performs a logical / physical address conversion. 最近更新された論理グループを除いて、大量の変換を、フラッシュメモリ200またはコントローラRAM130内のGATキャッシュ内にあるグループアドレステーブル(GAT)を使用して行うことになる可能性がある。 Except for the recently updated logical groups, a large amount of conversion, may become be performed using the group address table in the flash memory 200 or the GAT cache in controller RAM 130 (GAT). 最近更新された論理グループについてのアドレス変換は、主にコントローラRAM130内にある更新ブロックについてのアドレスリストを検索することを必要とすることになる。 Address translation for the recently updated logical groups will be required to search for address list for update block mainly located in the controller RAM 130. したがって、論理セクタアドレスについての論理/物理アドレス変換のための処理は、セクタが位置する論理グループに関連したブロックの種類に依存する。 Therefore, the processing for the logical / physical address translation for a logical sector address, the sector is dependent on the type of block associated with the logical group located. ブロックの種類には、変化のないブロックと、順次データ更新ブロックと、カオス的データ更新ブロックと、閉鎖データ更新ブロックとがある。 The type of block is the block unchanged, and sequential data update block, a chaotic data update block, a closed data update block.

図19は、論理/物理アドレス変換の処理を示すフローチャートである。 Figure 19 is a flowchart showing the processing of the logical / physical address conversion. 基本的には、対応するメタブロックおよび物理セクタは、論理セクタアドレスを使用して、最初に、開放更新ブロックリストおよび閉鎖更新ブロックリストなどの様々な更新ディレクトリを検索することによって、位置決定される。 Basically, the corresponding metablock and the physical sector using the logical sector address, the first, by searching various update directories such as the open update block list and closed update block list is the position determination . 関連するメタブロックが更新処理の一部でない場合、ディレクトリ情報がGATによって提供される。 If the associated metablock is not part of the update process, the directory information is provided by the GAT. 論理/物理アドレス変換は、以下のステップを含む。 Logical / physical address translation includes the following steps.

ステップ800:論理セクタアドレスが与えられる。 Step 800: the logical sector address is given.

ステップ810:コントローラRAM内の開放更新ブロックリスト614(図15および18参照)内の所定の論理アドレスが検索される。 Step 810: the predetermined logical address in the open update block list 614 in the controller RAM (see FIG. 15 and 18) are searched. 検索が失敗すると、ステップ820へ進み、そうでなければ、ステップ830へ進む。 If the search is unsuccessful, the process proceeds to step 820, otherwise, the process proceeds to step 830.

ステップ820:閉鎖更新ブロックリスト616内の所定の論理アドレスを検索する。 Step 820: searching a predetermined logical address in the closed update block list 616. 検索が失敗すると、所定の論理アドレスはどの更新処理の一部でもないことになり、GATアドレス変換のためのステップ870へ進む。 If the search fails, will be no part of any update process given logical address, the process proceeds to step 870 for GAT address translation. そうでなければ、閉鎖更新ブロックアドレス変換のためのステップ860へ進む。 Otherwise, the process proceeds to step 860 for a closed update block address translation.

ステップ830:所定の論理アドレスを含む更新ブロックが順次であれば、順次更新ブロックアドレス変換のためのステップ840へ進む。 Step 830: If the update block containing the given logical address is sequential, proceed to step 840 for sequential update block address translation. そうでなければ、カオス的更新ブロックアドレス変換のためのステップ850へ進む。 Otherwise, the process proceeds to step 850 for a chaotic update block address translation.

ステップ840:順次更新ブロックアドレス変換を使用して、メタブロックアドレスを取得する。 Step 840: using sequential update block address translation to obtain the metablock address. ステップ880へ進む。 The process proceeds to step 880.

ステップ850:カオス的更新ブロックアドレス変換を使用して、メタブロックアドレスを取得する。 Step 850: Use the chaotic update block address translation to obtain the metablock address. ステップ880へ進む。 The process proceeds to step 880.

ステップ860:閉鎖更新ブロックアドレス変換を使用して、メタブロックアドレスを取得する。 Step 860: Use the closed update block address translation to obtain the metablock address. ステップ880へ進む。 The process proceeds to step 880.

ステップ870:グループアドレステーブル(GAT)変換を使用して、メタブロックアドレスを取得する。 Step 870: Group Address Table (GAT) using a transformation, to obtain the metablock address. ステップ880へ進む。 The process proceeds to step 880.

ステップ880:メタブロックアドレスを物理アドレスに変換する。 Step 880: converting the metablock address into a physical address. 変換方法は、メタブロックが再リンクされているかどうかに依存する。 Transformation method depends on whether the metablock has been relinked.

ステップ890:物理セクタアドレスが取得される。 Step 890: the physical sector address is obtained.

様々なアドレス変換処理について、以下により詳細に説明する。 The various address translation processes are described in more detail below.

順次更新ブロックアドレス変換(ステップ840) Sequential update block address translation (step 840)
順次更新ブロックに関連した論理グループ内の対象論理セクタアドレスについてのアドレス変換は、以下のように、開放更新ブロックリスト614内の情報から直接達成される(図15および18)。 Sequential address translation for a target logical sector address in a logical group associated with update block, as follows, are accomplished directly from information in the open update block list 614 (FIGS. 15 and 18).
1. 1. リスト内の「ページタグ」フィールドおよび「書き込みセクタの数」フィールドから、対象論理セクタが更新ブロックにあるか、またはその関連する元ブロックにあるかどうかを判断する。 From "page tag" field and the "number of write sector 'field in the list, the target logical sector either in the update block, or determining whether its associated original block.
2. 2. 対象論理セクタに適切なメタブロックアドレスが、リストから読み出される。 Suitable metablock address to the target logical sector is read from the list.
3. 3. メタブロック内のセクタアドレスが、適切な「ページタグ」フィールドから決定される。 Sector address within the metablock is determined from the appropriate "page tag" field.

カオス的更新ブロックアドレス変換(ステップ850) Chaotic update block address translation (step 850)
カオス的更新ブロックに関連した論理グループ内の対象論理セクタアドレスについてのアドレス変換シーケンスは、以下の通りである。 Address translation sequence for a target logical sector address in a logical group associated with a chaotic update block is as follows.
1. 1. RAM内のカオス的セクタリストから、セクタが最近書き込まれたセクタであると判断される場合には、アドレス変換は、このリスト内のその位置から直接達成されてもよい。 From chaotic sector list in RAM, which when the sector is determined to be a recently written sector, address translation may be accomplished directly from its position in this list.
2. 2. CBIブロック内の直近に書き込まれたセクタは、そのカオス的ブロックデータフィールド内に、対象論理セクタアドレスに該当するカオス的更新ブロックの物理アドレスを含む。 Most recently written sector in the CBI block, its chaotic block data field, including the physical address of the chaotic update block corresponding to the target logical sector address. また、その間接セクタインデックスフィールド内に、このカオス的更新ブロックに関連する最終書き込みCBIセクタのCBIブロック内のオフセットを含む(図16A〜16E参照)。 Furthermore, within its indirect sector index field contains an offset within the CBI block of the last written CBI sector relating to this chaotic update block (see FIG. 16A to 16E).
3. 3. これらのフィールド内の情報は、RAM内にキャッシュされ、後続のアドレス変換中にセクタを読み出す必要をなくしている。 Information in these fields is cached in RAM, and eliminates the need to read the sector during subsequent address translation.
4. 4. 間接セクタインデックスフィールドによってステップ3において識別されたCBIセクタが読み出される。 CBI sector identified in step 3 by indirect sector index field is read.
5. 5. 直近にアクセスされたカオス的更新サブグループについての直接セクタインデックスフィールドは、RAM内にキャッシュされ、同一のカオス的更新ブロックに対する繰り返しのアクセスのためのステップ4における読み出しを行う必要をなくしている。 Direct sector index field for the most recently accessed chaotic update sub-group is cached in RAM, and eliminates the need to perform the read at step 4 for repeated accesses to the same chaotic update block.
6. 6. ステップ4または5において読み出された直接セクタインデックスフィールドは、対象論理セクタアドレスを含む論理サブグループに関連するCBIセクタを識別する。 Direct sector index field read at step 4 or 5 identifies the CBI sector relating to the logical sub-group containing the target logical sector address.
7. 7. 対象論理セクタアドレスについてのカオス的ブロックインデックスエントリは、ステップ6において識別されたCBIセクタから読み出される。 Chaotic block index entry for the target logical sector address is read from the identified CBI sector in step 6.
8. 8. 直近に読み出されたカオス的ブロックインデックスフィールドは、コントローラRAM内にキャッシュされてもよく、同一の論理サブグループに対する繰り返しのアクセスのためのステップ4およびステップ7における読み出しを行う必要をなくしている。 Chaotic block index field read most recently may be cached in controller RAM, and eliminates the need to perform the read at step 4 and step 7 for repeated accesses to the same logical sub-group.
9. 9. カオス的ブロックインデックスエントリは、カオス的更新ブロックまたは関連する元ブロックのいずれかの内に対象論理セクタの位置を規定する。 Chaotic block index entry defines the location of the target logical sector among either the chaotic update block or the associated original block. 対象論理セクタの有効コピーが元ブロック内にあれば、元メタブロックおよびページタグ情報を使用して位置決定される。 If valid copy of the target logical sector is in the original block, it is positioning using the original metablock and page tag information.

閉鎖更新ブロックアドレス変換(ステップ860) Closed update block address translation (step 860)
閉鎖更新ブロックに関連した論理ブロックループ内の対象論理セクタアドレスについてのアドレス変換は、以下のように、閉鎖ブロック更新リスト内の情報から直接達成することができる(図18参照)。 Closing address translation for a target logical sector address in update logic block loop block associated with the, as follows, can be achieved directly from the information in the closed block update list (see Figure 18).
1. 1. 対象論理グループに割り当てられたメタブロックアドレスは、リストから読み出される。 Metablock address assigned to the target logical group is read from the list.
2. 2. メタブロック内のセクタアドレスは、リスト内の「ページタグ」フィールドから決定される。 Sector address in the meta block is determined from the "page tag" field in the list.

GATアドレス変換(ステップ870) GAT address translation (step 870)
論理グループが開放または閉鎖ブロック更新リストのいずれかによって参照されない場合には、GAT内のそのエントリは有効である。 When the logical group is not referenced by either the open or closed block update lists, its entry in the GAT is valid. GATによって参照される論理グループ内の対象論理セクタアドレスについてのアドレス変換シーケンスは、以下の通りである。 Address translation sequence for a target logical sector address in a logical group referenced by GAT is as follows.
1. 1. RAM内の使用可能なGATキャッシュの範囲を評価して、対象論理グループについてのエントリがGATキャッシュ内に含まれるかどうかを判断する。 To evaluate the scope of available GAT caches in RAM, which entry for the target logical group to determine if included in the GAT cache.
2. 2. 対象論理グループがステップ1において見つかった場合、GATキャッシュは、メタブロックアドレスおよびページタグを含む全グループアドレス情報を含み、対象論理セクタアドレスの変換が可能となる。 If the target logical group is found in step 1, GAT cache contains all group address information, including a metablock address and page tag, it is possible to transform the target logical sector address.
3. 3. 対象アドレスがGATキャッシュ内にない場合、GATインデックスを対象GATブロックについて読みだして、対象論理グループアドレスに関するGATセクタの位置を識別しなければならない。 If the target address is not in the GAT in the cache, and read for the target GAT block the GAT index, it must identify the location of the GAT sector related to the target logical group address.
4. 4. 最後にアクセスされたGATブロックについてのGATインデックスは、コントローラRAM内に保持され、フラッシュメモリからセクタを読み出す必要なくアクセスされてもよい。 GAT index for the last accessed GAT block is held in controller RAM, and may be accessed without need to read a sector from flash memory.
5. 5. 各GATブロックについてのメタブロックアドレスのリストと、各GATブロック内に書き込まれたセクタの数とが、コントローラRAM内に保持される。 A list of metablock addresses for each GAT block, and the number of sectors written in each GAT block, is held in the controller RAM. 必要なGATインデックスがステップ4において使用可能でない場合、フラッシュメモリからすぐに読み出されてもよい。 If GAT index needed is not available in step 4 may be read from the flash memory immediately.
6. 6. 対象論理グループアドレスに関するGATセクタは、ステップ4またはステップ6において取得されたGATインデックスによって規定されたGATブロック内のセクタ位置から読み出される。 GAT sector relating to the target logical group address is read from the sector location in the GAT block defined by the GAT index obtained at step 4 or step 6. GATキャッシュが、対象エントリを含むセクタの再分割部分によって更新される。 GAT cache is updated by the subdivisions of the sectors containing the target entry.
7. 7. 対象セクタアドレスは、対象GATエントリ内のメタブロックアドレスおよび「ページタグ」フィールドから取得される。 Target sector address is obtained from the metablock address and "page tag" field in the target GAT entry.

メタブロック/物理アドレス変換(ステップ880) Metablock / physical address translation (step 880)
メタブロックが再リンクされていることをメタブロックアドレスに関連したフラグが示されている場合、該当LTセクタがBLMブロックから読み出されて、対象セクタアドレスについての消去ブロックアドレスであると決定する。 If the metablock is a flag that is relinked associated with the metablock address indicated, the relevant LT sector is read from the BLM block, to determine that the erase block address for the target sector address. そうでなければ、消去ブロックアドレスは、メタブロックアドレスから直接決定される。 Otherwise, the erase block address is determined directly from the metablock address.

制御データ管理 Control data management
図20は、メモリ管理の動作中に、制御データ構造に対して行われる動作の階層を示す。 Figure 20, during operation of the memory management, showing the operation of the hierarchical performed on control data structures. データ更新管理動作は、RAM内にある様々なリストに対して作用する。 Data update management operations, act on various lists within RAM. 制御書き込み動作は、様々な制御データセクタおよびフラッシュメモリ内の専用ブロックに対して作用し、またRAM内のリストとデータを交換する。 Control write operations act to various control data sectors and dedicated blocks in flash memory and also exchange lists and data in RAM.

データ更新管理動作が、RAM内で、ABL、CBL、およびカオス的セクタリストに対して行われる。 Data update management operation, in the RAM, is done ABL, CBL, and against chaotic sector list. ABLは、消去済みブロックが更新ブロックまたは制御ブロックとして割り当てられる場合、または更新ブロックが閉鎖される場合に更新される。 ABL, when erased block is allocated as an update block or a control block, or the update block is updated when it is closed. CBLは、制御ブロックが消去される場合、または閉鎖更新ブロックについてのエントリがGATに書き込まれる場合に更新される。 CBL, if the control block is erased, or entry for closed update block is updated when written to GAT. 更新カオス的セクタリストは、セクタがカオス的更新ブロックに書き込まれる場合に更新される。 Update chaotic sector list is updated when a sector is written to a chaotic update block.

制御書き込み動作によって、RAM内の制御データ構造からの情報がフラッシュメモリ内の制御データ構造に書き込まれ、必要があれば、フラッシュメモリおよびRAM内の他の補助制御データ構造を更新する結果となる。 By a control write operation, information from control data structures in RAM is written to control data structures in flash memory, if necessary, resulting in the updating of other auxiliary control data structure of the flash memory and the RAM. これは、更新ブロックとして割り当てるべき消去済みブロックについてのエントリをABLがこれ以上含まない場合、またはCBIブロックが書き換えられる場合にトリガされる。 This is triggered entries for erased blocks to be allocated as an update block when ABL may not include more, or CBI block is rewritten.

好ましい実施形態において、ABL充填動作、CBLを空にする動作、およびEBMセクタ更新動作は、各制御書き込み動作中に行われる。 In a preferred embodiment, ABL fill operation, emptying operation the CBL, and EBM sector update operation are performed during each control a write operation. EBMセクタを含むMAPブロックが一杯になると、有効EBMおよびMAPセクタが、割り当てられた消去済みブロックにコピーされ、以前のMAPブロックは消去される。 When MAP block containing the EBM sector becomes full, valid EBM and MAP sectors are copied to an erased block that has been allocated, the previous MAP block is erased.

各制御書き込み動作中に、1つのGATセクタが書き込まれ、かつ閉鎖更新ブロックリストがそれに従って修正される。 During each control a write operation, one GAT sector is written, and closed update block list is modified accordingly. GATブロックが一杯になると、GAT書き換え動作が行われる。 When GAT block becomes full, GAT rewrite operation is performed.

CBIセクタが、前に説明したように、あるカオス的セクタ書き込み動作後に書き込まれる。 CBI sectors, as previously explained, is written after a certain chaotic sector write operations. CBIブロックが一杯になると、有効なCBIセクタが、割り当てられた消去済みブロックにコピーされ、以前のCBIブロックは消去される。 When CBI block becomes full, valid CBI sectors are copied to an erased block that has been allocated, the previous CBI block is erased.

MAP交換動作が、前に説明したように、EBMセクタ内のEBBリスト内に消去済みブロックエントリがこれ以上ない場合に行われる。 MAP exchange operation, as described earlier, is performed when erased block entries EBB list in the EBM sector there are no more.

MAPアドレス(MAPA)セクタは、MAPブロックの現在アドレスを記録し、MAPブロックが書き換えられる度に専用のMAPAブロックに書き込まれる。 MAP Address (MAPA) sector, records the current address of the MAP block, is written to the MAPA block dedicated to time the MAP block is rewritten. MAPAブロックが一杯になると、有効なMAPAセクタは、割り当てられた消去ブロックにコピーされ、以前のMAPAブロックは消去される。 When MAPA block becomes full, valid MAPA sector is copied to an allocated erased block, the previous MAPA block is erased.

ブートセクタが、MAPAブロックが書き換えられる度に現在のブートブロック内に書き込まれる。 Boot sector is written each time the MAPA block is rewritten to the current boot block. ブートブロックが一杯になると、有効なブートセクタは、ブートブロックの現在のバージョンからバックアップバージョンへコピーされ、その後、現在のバージョンとなる。 When the boot block becomes full, valid boot sector is copied from the current version of the boot block to the backup version, then becomes the current version. 以前の現在のバージョンは消去されて、バックアップバージョンとなり、そこに有効なブートセクタは書き戻される。 Previous current version is erased, become a backup version, a valid boot sector there is written back.

本発明の様々な態様をいくつかの実施形態と共に説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解されよう。 While various aspects of the present invention has been described in conjunction with several embodiments, it will be understood that the present invention should its entitled to protection within the full scope of the appended claims.

本発明を実施するのに適切なメモリシステムの主要ハードウェアの構成要素を概略的に示す。 The main hardware components of the appropriate memory system for implementing the present invention is shown schematically. 本発明の好ましい実施形態に係る、セクタ(またはメタブロック)の物理グループに組織化され、コントローラのメモリマネージャによって管理されたメモリを示す。 According to a preferred embodiment of the present invention, is organized into physical groups of sectors (or metablock), shows a memory managed by memory manager of the controller. (i)〜(iii)は、本発明の好ましい実施形態に係る、論理グループとメタブロックとの間のマッピングを概略的に示す。 (I) ~ (iii), according to a preferred embodiment of the present invention, showing schematically the mapping between logical groups and metablocks. 論理グループとメタブロックと間のマッピングを概略的に示す。 It shows the mapping between the logical group and the metablock schematically. 物理メモリにおける構造を含むメタブロックの配列を示す。 The sequence of a metablock containing structures in physical memory. 互いに異なるプレーンの最小消去ユニットのリンク付けから構成されるメタブロックを示す。 It shows the composed metablock link with a minimum erasing unit of different planes. 1つの最小消去ユニット(MEU)が、メタブロックへのリンク付けのために各プレーンから選択される、一実施形態を示す。 One minimum erase unit (MEU) is selected from each plane for linking into a metablock illustrates one embodiment. 1つより多くの最小消去ユニット(MEU)が、メタブロックへのリンク付けのために各プレーンから選択される、別の実施形態を示す。 More than one minimum erase unit (MEU) is selected from each plane for linking into a metablock illustrates another embodiment. コントローラおよびフラッシュメモリにおいて実施されるようなメタブロック管理システムの概略ブロック図である。 It is a schematic block diagram of the metablock management system as implemented in the controller and flash memory. 順次更新ブロックへ順次順序で書き込まれる論理グループ内のセクタの一例を示す。 It is written in sequential order to a sequential update block showing an example of sectors in a logical group. カオス的更新ブロックへカオス的順序で書き込まれる論理グループ内のセクタの一例を示す。 It shows an example of sectors in a logical group being written in chaotic order to a chaotic update block. 2つの別個のホスト書き込み動作の結果としての、論理アドレスに不連続性を有する、順次更新ブロックへ順次順序で書き込まれる論理グループ内のセクタの一例を示す。 As a result of two separate host write operations, has a discontinuity in logical addresses, it shows an example of sectors in a logical group being written in sequential order to a sequential update block. 本発明の一般的な一実施形態に係る、データの論理グループを更新するための更新ブロックマネージャによる処理を示すフロー図である。 According to the general embodiment of the present invention, it is a flow diagram illustrating a process by the update block manager to update a logical group of data. 本発明の好ましい実施形態に係る、データの論理グループを更新するための更新ブロックマネージャによる処理を示すフロー図である。 According to a preferred embodiment of the present invention, it is a flow diagram illustrating a process by the update block manager to update a logical group of data. 図10に示されているカオス的更新ブロックを閉鎖する統合化処理をより詳細に示すフロー図である。 It is a flow diagram illustrating an integrated process for closing a chaotic update block shown in FIG. 10 in more detail. 図10に示されているカオス的更新ブロックを閉鎖するためのコンパクト化処理をより詳細に示すフロー図である。 It is a flow diagram illustrating a compaction process in more detail for closing a chaotic update block shown in FIG. 10. 様々な動作下における、論理グループの予想されるすべての状態と、その状態間で予想される遷移とを示す。 In various operations under shows all the states that are expected for a logical group, the transition and the expected between its states. 論理グループの予想される状態を列挙する表である。 Is a table listing the state of the expected logical groups. 様々な動作下における、メタブロックの予想されるすべての状態と、その状態間で予想される遷移とを示す。 In various operations under shows all the states expected metablock transitions and expected between its states. メタブロックとは、論理グループに対応する物理グループである。 Metablock and is a physical group which corresponds to logical group. メタブロックの予想される状態を列挙する表である。 Is a table listing the expected state of the metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の効果を示す状態図である。 It is a state diagram illustrating the state of the logical group, the effect of the various operations for the physical metablock. 論理グループの状態と、物理メタブロックとに対する様々な動作の影響を示す状態図である。 The state of the logical group is a state diagram showing the effect of various operations for the physical metablock. 割り当てのための開放または閉鎖された更新ブロックおよび消去ブロックの状況を追跡するための割り当てブロックリスト(ABL)の構造の好ましい実施形態を示す。 It illustrates a preferred embodiment of the structure of the allocation block list (ABL) for keeping track the status of open or closed update block and erase blocks for allocation. カオス的ブロックインデックス(CBI)セクタのデータフィールドを示す。 Show the data fields of a chaotic block index (CBI) sector. カオス的ブロックインデックス(CBI)セクタが専用のメタブロックに記録されている一例を示す。 Shows an example of chaotic block index (CBI) sectors being recorded in a dedicated metablock. カオス的更新を受けている所定の論理グループの論理セクタのデータに対するアクセスを示すフロー図である。 Is a flow diagram illustrating access to the data of a logical sector of a given logical group undergoing chaotic update. 論理グループがサブグループに分割されている代替の実施形態に係る、カオス的更新を受けている所定の論理グループの論理セクタのデータに対するアクセスを示すフロー図である。 According to an alternative embodiment the logical group has been partitioned into subgroups, it is a flow diagram illustrating access to the data of a logical sector of a given logical group undergoing chaotic update. 各論理グループが複数のサブグループに分割される実施形態についての、カオス的ブロックインデックス付け(CBI)セクタおよびその機能の例を示す。 For embodiments where each logical group is partitioned into multiple sub-groups, it shows an example of a chaotic block indexing (CBI) sectors and their functions. グループアドレステーブル(GAT)セクタのデータフィールドを示す。 It shows the data field of the group address table (GAT) sector. グループアドレステーブル(GAT)セクタがGATブロックに記録されている一例を示す。 Group Address Table (GAT) sectors shows an example recorded in the GAT block. 消去済みブロックの使用およびリサイクルのための制御およびディレクトリ情報の分配および流れを示す概略ブロック図である。 It is a schematic block diagram illustrating the distribution and flow of the control and directory information for usage and recycling of erased blocks. 論理/物理アドレス変換の処理を示すフローチャートである。 Is a flowchart showing the processing of the logical / physical address conversion. メモリ管理の動作中に、制御データ構造に対して行われる動作の階層を示す。 During operation of the memory management, showing the operation of the hierarchical performed on control data structures.

Claims (32)

  1. 複数のブロックに組織化された不揮発性メモリであって、各ブロックは、共に消去可能な複数のメモリユニットであり、各メモリユニットは、データの論理ユニットを記憶するためのものである不揮発性メモリにおいて、前記メモリ内のデータを記憶および更新する方法であって、 A nonvolatile memory organized into a plurality of blocks, each block is a plurality of memory units erasable together, each memory unit, the nonvolatile memory is for storing a logical unit of data in a method of storing and updating data in said memory,
    データを複数の論理グループに組織化するステップであって、各論理グループは、データの複数の論理ユニットに分割され、各論理ユニットは、ブロックのメモリユニット内に記憶可能であるステップと、 Comprising the steps of: organizing the data into a plurality of logical groups, each logical group is partitioned into a plurality of logical units of data, each logical unit, a step can be stored in a memory unit of a block,
    第1のブロックのメモリユニット内に、所定の論理グループのすべての論理ユニットを第1の順序に従って記憶するステップと、 In the memory unit of the first block, and storing all logical units of a given logical group according to a first order,
    前記所定の論理グループに専用の第2のブロックのメモリユニット内に、前記所定の論理グループの一連の更新された論理ユニットを、さらなる更新を記憶することに対して前記第2のブロックを閉鎖する予め定められた閉鎖条件が存在するまで、第2の順序に従って記憶するステップと、 In the memory unit of the second block dedicated to said given logical group, a series of updated logical units of said given logical group, closing the second block with respect to storing further updates advance to a defined closed condition exists, and storing in accordance with the second order,
    前記第2のブロックが閉鎖されることに応じて、 In response to said second block is closed,
    前記第2および第1の順序が類似している場合に、前記第1のブロックを前記第2のブロックに置換するステップ、または、 If the second and the first order is similar, step replacing the first block to the second block, or,
    前記第2および第1の順序が類似していない場合に、前記第1のブロックを第3のブロックに置換するステップであって、前記第3のブロックは、前記第1の順序に従って、前記第1および第2のブロックから収集された前記所定の論理グループの各論理ユニットの最新バージョンに統合化されているステップのいずれかのステップと、 If the second and the first order is not similar, a step of replacing the first block to the third block, the third block, according to the first order, the first and any of the steps of the steps that are integrated into the latest version of each logical unit of 1 and the given logical group gathered from the second block,
    を含む方法。 The method comprising.
  2. 前記第2のブロックが閉鎖されること、および前記第2のブロックが予め定められた数未満の別個の論理ユニットを含むことに応じて、前記第2のブロックからの各論理ユニットの最新バージョンを第4のブロックにコンパクト化するステップと、 Said second block is closed, and in response to the second block includes a separate logical units less than a predetermined number, the latest version of each logical unit from said second block a step of compacting the fourth block,
    前記第2のブロックを、前記所定の論理グループの更新を記憶するための専用ブロックとしての前記第4のブロックに置換するステップと、 Replacing said second block, said fourth block as a dedicated block for storing updates of said given logical group,
    をさらに含む請求項1記載の方法。 The method of claim 1, further comprising a.
  3. 別個の論理ユニットの前記予め定められた数は、前記所定の論理グループ内の論理ユニットの数の半分である請求項2記載の方法。 Said predetermined number of distinct logical units, The method of claim 2, wherein the number of half the logic units in the given logical group.
  4. 閉鎖のための前記予め定められた条件は、前記第2のブロックが一杯な場合である請求項1記載の方法。 It said predetermined condition for closure The method of claim 1 wherein said second block is a case full of.
  5. 閉鎖のための前記予め定められた条件は、前記第2のブロックが一連のうちの今回の更新以外の一連の更新を前記第1の順序に類似の順序でこれまで記憶している場合、および前記第2のブロックが少なくとも半分一杯な場合である請求項1記載の方法。 Said predetermined condition for closure is when said second block is stored until this series of updates other than this update of the series in a similar order to the first order, and the method of claim 1 wherein said second block is if at least half full.
  6. 前記第2のブロックは、前記第1および第2のブロックから収集された前記所定の論理グループの各論理ユニットの最新バージョンに前記第1の順序に従って統合化されたことによって閉鎖される請求項5記載の方法。 The second block, claim is closed by integrated in accordance with the first sequence to the latest version of each logical unit of said given logical group gathered from said first and second block 5 the method described.
  7. 前記一連の更新された論理ユニットを前記第2のブロックへ記憶するステップが、一連のうちの今回の更新でのアドレスジャンプの範囲であるギャップ以外について、これまで前記第1の順序に類似の順序であった場合、 Storing said series of updated logical units to said second block, except for a gap in the range of address jump in the current update in the series, similar to the first order to which the order case was,
    一連のうちの今回の更新を記憶する前に、前記第1のブロックからコピーされた、アドレスジャンプの範囲である論理ユニットで前記ギャップを埋めるステップをさらに含む請求項1記載の方法。 Before storing the current update in the series, the first copied from block The method of claim 1, further comprising the step of filling the gap with logical units in the range of address jump.
  8. 前記一連の更新された論理ユニットを前記第2のブロックへ記憶するステップが、一連のうちの今回の更新以外について、これまで前記第1の順序に類似の順序であった場合、 When storing said series of updated logical units to said second block, except for the current update in the series, was similar order to the first order date,
    前記第2のブロックに記憶された更新された論理ユニットのインデックスを前記第2の順序に従って保持するステップをさらに含む請求項1記載の方法。 The method of claim 1, further comprising the step of holding the index of the second updated logical units stored in the block according to the second order.
  9. 前記インデックスは、前記不揮発性メモリに保持される請求項1記載の方法。 The index The method of claim 1, wherein held in the nonvolatile memory.
  10. 前記所定の論理グループは、前記方法によって並列的に更新中の複数の論理グループのうちの1つである請求項1記載の方法。 Wherein the predetermined the logical group, one in the method of claim 1, wherein among the plurality of logical groups in parallel updating by said method.
  11. 前記不揮発性メモリは、フローティングゲートメモリセルを有する請求項1記載の方法。 The non-volatile memory The method of claim 1 further comprising a floating gate memory cell.
  12. 前記不揮発性メモリは、フラッシュEEPROMである請求項1記載の方法。 The non-volatile memory The method of claim 1 wherein the flash EEPROM.
  13. 前記不揮発性メモリは、NROMである請求項1記載の方法。 The non-volatile memory The method of claim 1 wherein the NROM.
  14. 前記不揮発性メモリは、メモリカードである請求項1記載の方法。 The non-volatile memory The method of claim 1 wherein the memory card.
  15. 前記不揮発性メモリは、それぞれが1ビットのデータを記憶するメモリセルを有する請求項1〜14のいずれか記載の方法。 The non-volatile memory A method according to any one of claims 1 to 14, each having a memory cell storing one bit of data.
  16. 前記不揮発性メモリは、それぞれが1ビットのデータよりも多いデータを記憶するメモリセルを有する請求項1〜14のいずれか記載の方法。 The non-volatile memory A method according to any one of claims 1 to 14, each having a memory cell that stores more data than one bit of data.
  17. 不揮発性メモリにおいて、 In the non-volatile memory,
    複数のブロックに組織化されたメモリであって、各ブロックは、共に消去可能な複数のメモリユニットであり、各メモリユニットは、データの論理ユニットを記憶するためのものであるメモリと、 A memory organized into a plurality of blocks, each block is a plurality of memory units erasable together, each memory unit includes a memory is provided for storing a logical unit of data,
    前記ブロックの動作を制御するためのコントローラと、を備え、 And a controller for controlling the operation of said block,
    前記コントローラは、第1のブロックのメモリユニット内に、所定の論理グループのすべての論理ユニットを第1の順序に従って記憶し、 Wherein the controller, in a memory unit of the first block, storing all logical units of a given logical group according to a first order,
    前記コントローラは、前記所定の論理グループに専用の第2のブロックのメモリユニット内に、前記所定の論理グループの一連の更新された論理ユニットを、さらなる更新を記憶することに対して前記第2のブロックを閉鎖する予め定められた閉鎖条件が存在するまで、第2の順序に従って記憶し、 Wherein the controller, in a memory unit of the second block dedicated to said given logical group, a series of updated logical units of said given logical group, the second relative storing further updates to a predetermined closed condition for closing the block is present, and stored according to a second order,
    前記第2のブロックが閉鎖されることに応じて、前記コントローラは、 In response to said second block is closed, the controller,
    前記第2および第1の順序が類似している場合に、前記第1のブロックを前記第2のブロックに置換するか、または、 If the second and the first order are similar, or replacing said first block to said second block, or,
    前記第2および第1の順序が類似していない場合に、前記第1のブロックを、前記第1の順序に従って、前記第1および第2のブロックから収集された前記所定の論理グループの各論理ユニットの最新バージョンに前記コントローラによって記憶されている第3のブロックに置換するかのいずれかを行う不揮発性メモリ。 If the second and the first order is not similar, the first block, the following first order, the logic of the given logical group gathered from said first and second blocks nonvolatile memory to perform either replacing the third block stored in the latest version by the controller unit.
  18. 前記第2のブロックが閉鎖されること、および前記第2のブロックが予め定められた数未満の別個の論理ユニットを含むことに応じて、前記コントローラは、前記第2のブロックからの各論理ユニットの最新バージョンを第4のブロックに記憶し、 Said second block is closed, and the second block in response to include a separate logical units less than a predetermined number, the controller, each logical unit from said second block storing the latest version to the fourth block,
    前記第2のブロックを、前記所定の論理グループの更新を記憶するための専用ブロックとしての前記第4のブロックに置換することをさらに含む請求項17記載の不揮発性メモリ。 Wherein the second block, the non-volatile memory of claim 17, further comprising replacing said fourth block as a dedicated block for storing updates of said given logical group.
  19. 別個の論理ユニットの前記予め定められた数は、前記所定の論理グループ内の論理ユニットの数の半分である請求項18記載の不揮発性メモリ。 Wherein the predetermined number is a non-volatile memory according to claim 18, wherein the number of half the logic units in the given logical group of discrete logic unit.
  20. 閉鎖のための前記予め定められた条件は、前記第2のブロックが一杯な場合である請求項17記載の不揮発性メモリ。 The conditions specified in advance, the non-volatile memory of claim 17 wherein the second block is a case full of for closure.
  21. 閉鎖のための前記予め定められた条件は、前記第2のブロックが一連のうちの今回の更新以外の一連の更新を前記第1の順序に類似の順序でこれまで記憶している場合、および前記第2のブロックが少なくとも半分一杯な場合である請求項17記載の不揮発性メモリ。 Said predetermined condition for closure is when said second block is stored until this series of updates other than this update of the series in a similar order to the first order, and the nonvolatile memory of claim 17, wherein the second block is if at least half full.
  22. 請前記第2のブロックは、前記第1および第2のブロックから収集された前記所定の論理グループの各論理ユニットの最新バージョンに前記第1の順序に従って統合化されたことによって閉鎖される請求項21記載の不揮発性メモリ。請前 Symbol second block, the claims are closed by integrated in accordance with the first sequence to the latest version of each logical unit of said given logical group gathered from said first and second blocks 21 non-volatile memory described.
  23. 前記一連の更新された論理ユニットを前記第2のブロックへ記憶することが、一連のうちの今回の更新でのアドレスジャンプの範囲であるギャップ以外について、これまで前記第1の順序に類似の順序であった場合、 Storing the series of updated logical units to said second block, except for a gap in the range of address jump in the current update in the series, similar to the first order to which the order case was,
    一連のうちの今回の更新を記憶する前に、前記第1のブロックからコピーされた、アドレスジャンプの範囲である論理ユニットで前記ギャップを埋めることをさらに含む請求項17記載の不揮発性メモリ。 Before storing the current update in the series, the first copied from block, the non-volatile memory of claim 17, further comprising filling the gap with logical units in the range of address jump.
  24. 前記一連の更新された論理ユニットの前記第2のブロックへ記憶することが、一連のうちの今回の更新以外について、これまで前記第1の順序に類似の順序であった場合、 When storing to the second block of the series of updated logical units, except for the current update in the series, it was similar order to the first order date,
    前記第2のブロックに記憶された更新された論理ユニットのインデックスを前記第2の順序に従って保持することをさらに含む請求項17記載の不揮発性メモリ。 The nonvolatile memory of claim 17, further comprising the index of the second updated logical units stored in the block to retain according to the second order.
  25. 前記インデックスは、前記不揮発性メモリに保持される請求項24記載の不揮発性メモリ。 The index is a non-volatile memory according to claim 24, wherein held in the nonvolatile memory.
  26. 前記所定の論理グループは、前記方法によって並列的に更新中の複数の論理グループのうちの1つである請求項17記載の不揮発性メモリ。 Wherein the predetermined the logical group, one in the non-volatile memory according to claim 17, wherein among the plurality of logical groups in parallel updating by said method.
  27. 前記不揮発性メモリは、フローティングゲートメモリセルを有する請求項17記載の不揮発性メモリ。 The nonvolatile memory, the nonvolatile memory of claim 17 having a floating gate memory cell.
  28. 前記不揮発性メモリは、フラッシュEEPROMである請求項17記載の不揮発性メモリ。 Wherein the nonvolatile memory is a nonvolatile memory according to claim 17, wherein the flash EEPROM.
  29. 前記不揮発性メモリは、NROMである請求項17記載の不揮発性メモリ。 Wherein the nonvolatile memory is a nonvolatile memory according to claim 17 wherein the NROM.
  30. 前記不揮発性メモリは、メモリカードである請求項17記載の不揮発性メモリ。 Wherein the nonvolatile memory is a nonvolatile memory according to claim 17, wherein the memory card.
  31. 前記不揮発性メモリは、それぞれが1ビットのデータを記憶するメモリセルを有する請求項17〜30のいずれか記載の不揮発性メモリ。 Wherein the nonvolatile memory is a nonvolatile memory according to claim 17 to 30, each having a memory cell storing one bit of data.
  32. 前記不揮発性メモリは、それぞれが1ビットのデータよりも多いデータを記憶するメモリセルを有する請求項17〜30のいずれか記載の不揮発性メモリ。 Wherein the nonvolatile memory is a nonvolatile memory according to claim 17 to 30, each having a memory cell that stores more data than one bit of data.
JP2006547493A 2003-12-30 2004-12-21 Non-volatile memory and method with block management system Active JP4938460B2 (en)

Priority Applications (3)

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
US10/750,155 2003-12-30
PCT/US2004/043692 WO2005066972A1 (en) 2003-12-30 2004-12-21 Non-volatile memory and method with block management system

Publications (2)

Publication Number Publication Date
JP2007517335A true JP2007517335A (en) 2007-06-28
JP4938460B2 JP4938460B2 (en) 2012-05-23

Family

ID=34701161

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2006547386A Active JP4933269B2 (en) 2003-12-30 2004-12-21 Non-volatile memory and method with memory plane array
JP2006547516A Expired - Fee Related JP4851344B2 (en) 2003-12-30 2004-12-21 Non-volatile memory and method with nonsequential update block management
JP2006547493A Active JP4938460B2 (en) 2003-12-30 2004-12-21 Non-volatile memory and method with block management system
JP2006547487A Active JP4898457B2 (en) 2003-12-30 2004-12-22 Nonvolatile memory and method with control data management
JP2011171531A Active JP5617079B2 (en) 2003-12-30 2011-08-05 Nonvolatile memory and method with control data management

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2006547386A Active JP4933269B2 (en) 2003-12-30 2004-12-21 Non-volatile memory and method with memory plane array
JP2006547516A Expired - Fee Related JP4851344B2 (en) 2003-12-30 2004-12-21 Non-volatile memory and method with nonsequential update block management

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2006547487A Active JP4898457B2 (en) 2003-12-30 2004-12-22 Nonvolatile memory and method with control data management
JP2011171531A Active JP5617079B2 (en) 2003-12-30 2011-08-05 Nonvolatile memory and method with control data management

Country Status (9)

Country Link
US (10) US7139864B2 (en)
EP (2) EP1704571B1 (en)
JP (5) JP4933269B2 (en)
KR (1) KR101012274B1 (en)
CN (5) CN100435116C (en)
AT (3) AT498893T (en)
DE (3) DE602004031461D1 (en)
TW (1) TWI272483B (en)
WO (1) WO2005066972A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116465A (en) * 2007-11-02 2009-05-28 Hitachi Information & Control Solutions Ltd Storage device and memory control method
WO2009118917A1 (en) * 2008-03-26 2009-10-01 Suzuki Masumi Storage device using flash memory
JP2012514794A (en) * 2009-01-05 2012-06-28 サンディスク コーポレイション Maintaining mapping address tables in storage
JP2013525886A (en) * 2010-04-16 2013-06-20 マイクロン テクノロジー, インク. Memory device and boot partition in the system
WO2013161398A1 (en) * 2012-04-25 2013-10-31 ソニー株式会社 Non-volatile memory device for sequential writing
KR101584048B1 (en) 2009-01-05 2016-01-13 샌디스크 테크놀로지스, 인코포레이티드 Spare block management in non-volatile memories
WO2017183153A1 (en) * 2016-04-21 2017-10-26 富士通フロンテック株式会社 Write control program, write control device, and write control method

Families Citing this family (516)

* 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 (en) * 1999-05-08 2006-01-23 삼성전자주식회사 Recording medium storing linking type information and method for processing defective area
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
WO2003005203A2 (en) * 2001-07-03 2003-01-16 Research In Motion Limited System and method of object-oriented persistence
EP1593065B1 (en) * 2003-02-12 2006-06-14 Research In Motion Limited Methods,mobile devices and computer-readable mediums for managing data
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 (en) * 2003-10-24 2004-12-09 Hyperstone Ag Writing sectors of block-deletable memory, writes to alternative memory block sectors in sequence, storing their positions in sector table
TWI232466B (en) * 2003-10-28 2005-05-11 Prolific Technology Inc Method for updating data of non-volatile memory
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050144396A1 (en) * 2003-12-31 2005-06-30 Eschmann Michael K. Coalescing disk write back requests
JP3892851B2 (en) * 2004-02-04 2007-03-14 株式会社東芝 Memory card and semiconductor device
US7299316B2 (en) * 2004-02-26 2007-11-20 Super Talent Electronics, Inc. Memory flash card reader employing an indexing scheme
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
KR100541642B1 (en) * 2004-03-11 2006-01-10 삼성전자주식회사 Data managing device and method thereof
JP2005301591A (en) * 2004-04-09 2005-10-27 Toshiba Corp Device with nonvolatile memory, and memory controller
US7225291B2 (en) * 2004-04-19 2007-05-29 Phison Electronics Corp. Storage controlling and judging method of flash memory
HU0400808A2 (en) * 2004-04-19 2005-11-28 Dr.Kozéky László Géza Metal vapor arc plasma torch and its application in metallurgy, vitrification and pyrolysis, plasma energy, and materials conversion processes
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
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
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
JP4817836B2 (en) 2004-12-27 2011-11-16 株式会社東芝 Card and host equipment
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
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
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
JP4815825B2 (en) * 2005-03-10 2011-11-16 日本電気株式会社 Disk array device and method for reconstructing the same
JP4738038B2 (en) * 2005-03-25 2011-08-03 株式会社東芝 Memory card
JP2006285669A (en) * 2005-03-31 2006-10-19 Toshiba Corp Host apparatus
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 (en) * 2005-05-12 2007-02-01 Giesecke & Devrient Gmbh Secure processing of data
US8051270B2 (en) * 2005-05-23 2011-11-01 Panasonic Corporation Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
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
KR101272642B1 (en) * 2005-08-03 2013-06-10 쌘디스크 코포레이션 Reclaiming data storage capacity in flash memory systems
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
DE602006019263D1 (en) * 2005-08-03 2011-02-10 Sandisk Corp Non-volatile memory with block administration
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US20070055793A1 (en) * 2005-08-03 2007-03-08 Wellsyn Technology, Inc. System of managing peripheral interfaces in IPMI architecture and method thereof
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
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US20070084375A1 (en) * 2005-08-10 2007-04-19 Smith Kyle S High density cartridge and method for reloading
JP2007052717A (en) * 2005-08-19 2007-03-01 Fujitsu Ltd Data transfer device and method
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 (en) 2005-09-29 2011-08-17 株式会社東芝 Memory system
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
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in 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
US20070106842A1 (en) * 2005-11-04 2007-05-10 Conley Kevin M Enhanced first level storage caching methods using nonvolatile memory
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
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
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
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
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
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
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
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
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
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
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 (en) * 2006-02-17 2007-03-29 삼성전자주식회사 Method and apparatus for managing block by update type of data in block type memory
JP2007233838A (en) * 2006-03-02 2007-09-13 Toshiba Corp Control method for memory system
JP2007241539A (en) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd Data management and control system for semiconductor flash memory, and semiconductor flash memory housing device
JP4171749B2 (en) * 2006-04-17 2008-10-29 Tdk株式会社 Memory controller and flash memory system
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
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
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 (en) * 2006-06-30 2012-06-20 東芝メモリシステムズ株式会社 Semiconductor memory device and control method thereof
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
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
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
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
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
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
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
JP4682261B2 (en) * 2006-09-15 2011-05-11 サンディスク コーポレイション Method for non-volatile memory and class-based update block replacement rules
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
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
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
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
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
TWI346286B (en) * 2006-09-29 2011-08-01 Sandisk Corp Method and non-volatile memory storage system for phased garbage collection
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
WO2008045839A1 (en) * 2006-10-12 2008-04-17 Sandisk Corporation Non-volatile memory with worst-case control data management and methods therefor
JP4609406B2 (en) * 2006-10-12 2011-01-12 Tdk株式会社 Memory controller, flash memory system provided with memory controller, and flash memory control method
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
KR100806343B1 (en) * 2006-10-19 2008-02-27 삼성전자주식회사 Memory system including flash memory and mapping table management method thereof
KR100843135B1 (en) 2006-11-20 2008-07-02 삼성전자주식회사 Apparatus and method for managing nonvolatile memory
US20080120604A1 (en) * 2006-11-20 2008-05-22 Morris Robert P Methods, Systems, And Computer Program Products For Providing Program Runtime Data Validation
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
KR20090095641A (en) 2006-12-06 2009-09-09 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) Apparatus, system and method for managing data using a data pipeline
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
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
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
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
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
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
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a 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
US8510533B2 (en) 2006-12-27 2013-08-13 Intel Corporation Method of managing data on a non-volatile memory
US20080162612A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin Method for block relinking
US20080162787A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin System for block relinking
WO2008082950A1 (en) * 2006-12-28 2008-07-10 Sandisk Corporation System for block relinking
KR100823171B1 (en) * 2007-02-01 2008-04-18 삼성전자주식회사 Computer system having a partitioned flash translation layer and flash translation layer partition method thereof
KR100885181B1 (en) * 2007-02-06 2009-02-23 삼성전자주식회사 Memory system performing group mapping operation and address mapping method thereof
TWI338856B (en) * 2007-03-09 2011-03-11 Ite Tech Inc A flash memory storing device and a data storing method thereof
US8275953B2 (en) * 2007-03-19 2012-09-25 Sandisk Technologies Inc. Methods for forcing an update block to remain sequential
US7904670B2 (en) * 2007-03-19 2011-03-08 Sandisk Corporation Methods for conversion of update blocks based on comparison with a threshold size
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
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
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
US20080235464A1 (en) * 2007-03-19 2008-09-25 Shai Traister System for conversion of update blocks based on comparison with a threshold size
KR20080085574A (en) * 2007-03-20 2008-09-24 삼성전자주식회사 Apparatus and method for garbage collection of non-volatile memory
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
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
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
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
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
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
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
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
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 (en) * 2007-07-04 2009-10-19 삼성전자주식회사 Indexing scheme for flash memory
JP4444314B2 (en) * 2007-07-13 2010-03-31 株式会社東芝 Semiconductor memory information storage device and write control method thereof
KR101472797B1 (en) * 2007-07-16 2014-12-15 삼성전자주식회사 Method and apparatus for reading or writing data
KR101348364B1 (en) 2007-08-23 2014-01-07 삼성전자주식회사 Method for determining binary signal of memory cell and apparatus thereof
US20090055574A1 (en) * 2007-08-25 2009-02-26 Bei-Chuan Chen NAND Flash Memory Device And Related Method Thereof
JP5087347B2 (en) * 2007-09-06 2012-12-05 株式会社日立製作所 Semiconductor memory device and method for controlling semiconductor memory device
US7818493B2 (en) * 2007-09-07 2010-10-19 Sandisk Corporation Adaptive block list management
KR20090026941A (en) * 2007-09-11 2009-03-16 삼성전자주식회사 Method for address mapping in virtual file system embodied in storage device having a plurality of non-volatile data storage and apparatus thereof
US7719890B2 (en) 2007-09-12 2010-05-18 Sandisk Corporation Data protection for write 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 (en) * 2007-10-25 2014-11-25 삼성전자주식회사 Data storage device, memory system, and computing system using nonvolatile memory device
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
JP4417994B2 (en) * 2007-11-26 2010-02-17 株式会社東芝 Material data recording apparatus and material data recording method
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 (en) * 2007-12-25 2009-07-16 Toshiba Corp Semiconductor memory controller and semiconductor memory
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
JP4471007B2 (en) * 2008-02-05 2010-06-02 ソニー株式会社 Recording device, recording device control method, recording device control method program and recording device control method program recording medium
CN101364444B (en) * 2008-02-05 2011-05-11 威盛电子股份有限公司 Control method and memory and process system using the control method
JP2009199199A (en) * 2008-02-20 2009-09-03 Hitachi Ltd Storage system and its data write method
JP2009211234A (en) * 2008-03-01 2009-09-17 Toshiba Corp Memory system
JP4653817B2 (en) * 2008-03-01 2011-03-16 株式会社東芝 Memory system
JP5032371B2 (en) * 2008-03-01 2012-09-26 株式会社東芝 Memory system
KR101067457B1 (en) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 Memory system
CN101251788A (en) * 2008-03-07 2008-08-27 威盛电子股份有限公司 Storage unit management method and system
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
US8185778B2 (en) * 2008-04-15 2012-05-22 SMART Storage Systems, Inc. Flash management using separate metadata storage
US8180954B2 (en) * 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US8028123B2 (en) * 2008-04-15 2011-09-27 SMART Modular Technologies (AZ) , Inc. Circular wear leveling
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, 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
WO2009129340A2 (en) * 2008-04-15 2009-10-22 Adtron, Inc. Flash memory management
JP4439569B2 (en) * 2008-04-24 2010-03-24 株式会社東芝 Memory system
US8059455B2 (en) * 2008-05-09 2011-11-15 Sandisk Il Ltd. 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 (en) * 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 (en) * 2008-12-03 2014-12-08 삼성전자주식회사 Semiconductor device comprising flash memory and address mapping method thereof
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 (en) * 2008-12-31 2011-04-12 성균관대학교산학협력단 Methods of Distributing Log Block Associativity in Real-time System And Flash Memory Device Performing the Same
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
KR101760144B1 (en) 2009-01-05 2017-07-31 샌디스크 테크놀로지스 엘엘씨 Non-volatile memory and method with write cache partitioning
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 (en) * 2009-02-27 2015-11-04 삼성전자주식회사 User device including flash memory storing index and index accessing method thereof
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
TWI417884B (en) * 2009-04-23 2013-12-01 Phison Electronics Corp Data accessing method for flash memory and storage system and controller using the same
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
WO2010144587A2 (en) * 2009-06-12 2010-12-16 Violin Memory, Inc. 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 (en) * 2009-07-03 2013-02-21 Phison Electronics Corp Data writing method for flash memory and control circuit and storage system using the same
US20110002169A1 (en) * 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
JP5347779B2 (en) * 2009-07-07 2013-11-20 ソニー株式会社 Memory device, memory control method, and program
US9104629B2 (en) * 2009-07-09 2015-08-11 International Business Machines Corporation Autonomic reclamation processing on sequential storage media
JP2011048725A (en) * 2009-08-28 2011-03-10 Panasonic Corp Nonvolatile memory device and nonvolatile memory controller
CN102696010B (en) 2009-09-08 2016-03-23 才智知识产权控股公司(2) Means for caching the data, the system and method of the solid-state storage device
CN102597910B (en) 2009-09-09 2015-03-25 弗森-艾奥公司 Apparatus, system, and method for power reduction management in a storage device
KR101769883B1 (en) 2009-09-09 2017-08-21 샌디스크 테크놀로지스 엘엘씨 Apparatus, system, and method for allocating storage
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
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 (en) 2009-11-25 2012-07-04 深圳市硅格半导体有限公司 NAND-FLASH data processing method
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
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
FR2954572A1 (en) * 2009-12-23 2011-06-24 Thales Sa Method for managing rotating data.
TWI399644B (en) * 2009-12-24 2013-06-21 Univ Nat Taiwan Block management method for a non-volatile memory
TWI414940B (en) 2009-12-30 2013-11-11 Phison Electronics Corp Block management and data writing method, flash memory storage system and controller
CN102122233B (en) 2010-01-08 2013-04-10 群联电子股份有限公司 Method for managing block and writing data, flash memory storage system and controller
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 (en) * 2010-03-01 2015-05-20 群联电子股份有限公司 Memory management and write-in method, memory controller and storage system
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
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
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
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
CN101799788B (en) 2010-03-23 2014-06-11 中兴通讯股份有限公司 Level-to-level administration method and system of storage resources
US8812816B2 (en) * 2010-03-23 2014-08-19 Apple Inc. Garbage collection schemes for index block
US8332460B2 (en) * 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
IT1399916B1 (en) * 2010-04-30 2013-05-09 Balluchi A memory device to an indexed register access
US20110268265A1 (en) * 2010-04-30 2011-11-03 Lathrop Alexander M Disk media security system and method
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 (en) * 2010-05-11 2015-06-17 深圳市朗科科技股份有限公司 Data storage method and system
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 (en) * 2010-07-02 2012-01-10 삼성전자주식회사 Data storage device and bad block managing method thereof
KR101077901B1 (en) * 2010-07-12 2011-10-31 (주)이더블유비엠코리아 Apparatus and method for managing flash memory using log block level mapping algorithm
JP2012033002A (en) * 2010-07-30 2012-02-16 Toshiba Corp Memory management device and memory management method
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
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
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
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
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 (en) * 2010-09-16 2012-03-26 삼성전자주식회사 System and method for writing data using pram
US8578340B1 (en) * 2010-09-24 2013-11-05 Ca, Inc. Recording and replaying computer program execution with recorded execution event breakpoints
TWI435216B (en) 2010-09-27 2014-04-21 Silicon Motion Inc Method for performing meta block management, and associated memory device and controller thereof
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
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8699171B1 (en) 2010-09-30 2014-04-15 Western Digital Technologies, Inc. Disk drive selecting head for write operation based on environmental condition
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 (en) * 2010-12-10 2014-12-01 Phison Electronics Corp Data writing method, memory controller and memory storage apparatus
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
CN103262054B (en) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 Means for automatically submit the memory systems and methods
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US20120239860A1 (en) 2010-12-17 2012-09-20 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 (en) * 2010-12-28 2015-12-21 Silicon Motion Inc Flash memory device and data writing method thereof
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US10049040B2 (en) 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
US8874872B2 (en) 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
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
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
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 (en) * 2011-05-03 2012-11-13 삼성전자주식회사 Memory system and method for bad block management
KR20140040137A (en) 2011-05-17 2014-04-02 샌디스크 테크놀로지스, 인코포레이티드 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 (en) * 2011-05-18 2014-08-01 Phison Electronics Corp Program code loading and accessing method, memory controller and memory storage apparatus
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
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
JP2012248109A (en) * 2011-05-30 2012-12-13 Toshiba Corp Memory unit having multiple channels and read command group generating method for compaction in the memory unit
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
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
CN102929884B (en) * 2011-08-10 2016-05-04 阿里巴巴集团控股有限公司 Method and apparatus for shrinking a virtual disk image file
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
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 (en) * 2011-09-28 2014-12-10 华为数字技术(成都)有限公司 SSD (solid state drive) and SSD garbage collection method and device
US8909889B1 (en) 2011-10-10 2014-12-09 Western Digital Technologies, Inc. Method and apparatus for servicing host commands by a disk drive
FR2982406A1 (en) 2011-11-07 2013-05-10 St Microelectronics Rousset Secure memory that prevents degradation of data
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
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
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
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8904091B1 (en) 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
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
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
US9021201B2 (en) 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to 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
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
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
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
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
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 (en) * 2012-08-24 2014-03-13 Toshiba Corp Host device and memory device
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
JP2015529368A (en) * 2012-09-06 2015-10-05 ピーアイ−コーラル、インク. storage translation layer
CN102883207B (en) * 2012-09-13 2016-11-23 深圳创维数字技术有限公司 A data processing method for a digital television terminal and
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
TW201413450A (en) * 2012-09-25 2014-04-01 Phison Electronics Corp Data storing method, and memory controller and memory storage apparatus using the same
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
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 (en) * 2012-10-16 2013-02-13 国电南京自动化股份有限公司 Internal memory copying method with improved efficiency
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 (en) * 2012-11-20 2015-04-01 Phison Electronics Corp Memory storage device, memory controller thereof, and method for programming data thereof
CN103839578B (en) * 2012-11-27 2017-02-08 广东华晟数据固态存储有限公司 A method for maintaining time data based on solid-state memory increases 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
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
KR101993626B1 (en) * 2012-12-11 2019-06-28 삼성전자 주식회사 SoC comprising special function register, operating method for thereof
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
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
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) * 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer 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
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
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9021188B1 (en) 2013-03-15 2015-04-28 Virident Systems Inc. Small block write operations in non-volatile memory systems
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
CN105190761A (en) 2013-03-27 2015-12-23 惠普发展公司,有限责任合伙企业 Non-volatile memory based synchronous logic
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening 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
US10102144B2 (en) * 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
CN105247524A (en) * 2013-05-31 2016-01-13 皇家飞利浦有限公司 System and method for automatically uploading, downloading, and updating data such as sleep study data
KR20140142035A (en) * 2013-06-03 2014-12-11 삼성전자주식회사 Memory controller and method of operation of the memory controller
US9361236B2 (en) 2013-06-18 2016-06-07 Arm Limited Handling write requests for a data array
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel 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
CN105493051B (en) 2013-06-25 2019-03-08 马维尔国际贸易有限公司 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
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
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data 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 (en) * 2013-11-21 2015-05-29 Sandisk Technologies Inc. Dynamic logical groups for mapping flash memory
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
KR20150083558A (en) * 2014-01-10 2015-07-20 삼성전자주식회사 Method for processing data on storage device and storage device
WO2015118623A1 (en) * 2014-02-05 2015-08-13 株式会社日立製作所 Information processing device
US9927998B2 (en) * 2014-02-05 2018-03-27 Tidal Systems, Inc. Flash memory compression
KR20150103932A (en) * 2014-03-04 2015-09-14 삼성전자주식회사 Nonvolatile memory system and operation method thereof
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
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US8976609B1 (en) 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage
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
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
TWI604307B (en) 2014-10-31 2017-11-01 慧榮科技股份有限公司 Data storage device and flash memory control method
KR20160072706A (en) * 2014-12-15 2016-06-23 에스케이하이닉스 주식회사 Semiconductor device and operating method thereof
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
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
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
JP2017045288A (en) * 2015-08-27 2017-03-02 株式会社東芝 Memory system
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
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
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
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
CN105302501B (en) * 2015-11-27 2018-09-14 浙江宇视科技有限公司 A kind of control method and device of disk sector
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
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
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 (en) * 2016-09-06 2018-03-15 東芝メモリ株式会社 Memory device and information processing system
US10079612B1 (en) 2017-03-15 2018-09-18 Alibaba Group Holding Limited Distributed erasure coding pool deployed in hyperscale infrastructure
TWI629590B (en) * 2017-04-14 2018-07-11 群聯電子股份有限公司 Memory management method, memory control circuit unit and memory storage device
TWI651650B (en) * 2018-02-05 2019-02-21 大陸商深圳大心電子科技有限公司 And a method of using the memory management method of the storage controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002058074A2 (en) * 2001-01-19 2002-07-25 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2002366423A (en) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd Method for managing flash memory

Family Cites Families (105)

* 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 (en) 1991-08-19 1993-02-26 Toshiba Corp Memory check system
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 (en) 1992-05-08 2001-01-09 東芝エー・ブイ・イー株式会社 Memory card device
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 (en) 1993-03-11 1994-09-22 Hitachi Ltd Flash memory file storage device and information processor
US5367484A (en) 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
KR970008188B1 (en) 1993-04-08 1997-05-21 가나이 쯔또무 Control method of flash memory and information processing apparatus using the same
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (en) 1993-09-21 1999-02-01 사토 후미오 Nonvolatile semiconductor memory device
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 (en) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp Semiconductor disk device
US5797033A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Direct memory access for storing and retrieving data based on packet size
JP3153730B2 (en) 1995-05-16 2001-04-09 株式会社東芝 Nonvolatile semiconductor memory device
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
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
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
JP3604466B2 (en) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ Flash disk card
JP3707854B2 (en) * 1996-03-01 2005-10-19 株式会社東芝 Computer and the cache memory control method having a cache function
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 (en) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション The semiconductor memory device and a control method thereof
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
US6490649B2 (en) 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
US6477627B1 (en) * 1996-05-31 2002-11-05 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
JPH1027444A (en) * 1996-07-10 1998-01-27 Fujitsu Ltd Position sensitivity adjusting method of disk device
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
JP3919261B2 (en) * 1996-07-31 2007-05-23 キヤノン株式会社 Memory controller and the memory access method
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
JP3072722B2 (en) 1997-06-20 2000-08-07 ソニー株式会社 Data management apparatus and a data management method and a storage medium using the flash memory using a flash memory
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 (en) 1998-07-28 2008-05-14 ソニー株式会社 Storage medium and electronic device system
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
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
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
JP3699890B2 (en) 2000-08-30 2005-09-28 シャープ株式会社 Nonvolatile semiconductor memory device
JP4184586B2 (en) 2000-09-28 2008-11-19 株式会社東芝 Semiconductor memory device
JP2002133878A (en) 2000-10-23 2002-05-10 Hitachi Ltd Non-volatile semiconductor memory circuit and semiconductor integrated circuit
DE10165027C5 (en) * 2000-10-27 2019-10-02 Nsk Ltd. Rolling bearing and spindle device for machine tool
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
JP3828376B2 (en) 2001-05-07 2006-10-04 株式会社東芝 Storage system
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
JP4256600B2 (en) * 2001-06-19 2009-04-22 Tdk株式会社 Memory controller, flash memory system provided with memory controller, and flash memory control method
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
JP4689137B2 (en) * 2001-08-08 2011-05-25 株式会社日立製作所 Remote copy control method and storage system
US7356641B2 (en) * 2001-08-28 2008-04-08 International Business Machines Corporation Data management in flash memory
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
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
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 (en) 2001-12-11 2007-08-29 株式会社ルネサステクノロジ File system, the file system control method and program for controlling the file system
US6728849B2 (en) * 2001-12-14 2004-04-27 Hitachi, Ltd. Remote storage system and method
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
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory 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
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling 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
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
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 (en) 2003-02-20 2008-12-24 ソニー株式会社 Recording medium recording control method, recording control apparatus, and electronic apparatus
DE10349595B3 (en) 2003-10-24 2004-12-09 Hyperstone Ag Writing sectors of block-deletable memory, writes to alternative memory block sectors in sequence, storing their positions in sector table
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
WO2005066970A2 (en) 2003-12-30 2005-07-21 Sandisk Corporation Robust data duplication and improved update method in a multibit non-volatile memory
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050144363A1 (en) 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
JP2007519996A (en) * 2003-12-30 2007-07-19 サンディスク コーポレイション Methods involving program failure handling that is non-volatile memory and phasing
KR20060134011A (en) 2003-12-30 2006-12-27 쌘디스크 코포레이션 Non-volatile memory and method with memory planes alignment
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
KR20070007264A (en) 2003-12-30 2007-01-15 쌘디스크 코포레이션 Non-volatile memory and method with non-sequential update block management
US7315916B2 (en) 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US8008202B2 (en) 2007-08-01 2011-08-30 Cabot Microelectronics Corporation Ruthenium CMP compositions and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002058074A2 (en) * 2001-01-19 2002-07-25 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2002366423A (en) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd Method for managing flash memory

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116465A (en) * 2007-11-02 2009-05-28 Hitachi Information & Control Solutions Ltd Storage device and memory control method
WO2009118917A1 (en) * 2008-03-26 2009-10-01 Suzuki Masumi Storage device using flash memory
JP2012514794A (en) * 2009-01-05 2012-06-28 サンディスク コーポレイション Maintaining mapping address tables in storage
KR101584048B1 (en) 2009-01-05 2016-01-13 샌디스크 테크놀로지스, 인코포레이티드 Spare block management in non-volatile memories
JP2013525886A (en) * 2010-04-16 2013-06-20 マイクロン テクノロジー, インク. Memory device and boot partition in the system
US8762703B2 (en) 2010-04-16 2014-06-24 Micron Technology, Inc. Boot partitions in memory devices and systems
US9342371B2 (en) 2010-04-16 2016-05-17 Micron Technology, Inc. Boot partitions in memory devices and systems
WO2013161398A1 (en) * 2012-04-25 2013-10-31 ソニー株式会社 Non-volatile memory device for sequential writing
JPWO2013161398A1 (en) * 2012-04-25 2015-12-24 ソニー株式会社 Nonvolatile memory device for sequential writing
US10372367B2 (en) 2012-04-25 2019-08-06 Sony Corporation Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method
WO2017183153A1 (en) * 2016-04-21 2017-10-26 富士通フロンテック株式会社 Write control program, write control device, and write control method
JPWO2017183153A1 (en) * 2016-04-21 2018-07-19 富士通フロンテック株式会社 Write control program, write control device, and write control method

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100771521B1 (en) Flash memory device having a multi-leveled cell and programming method thereof
JP4511576B2 (en) Memory system
EP2156299B1 (en) Method and system for storage address re-mapping for a memory device
EP0691008B1 (en) Flash memory mass storage architecture
EP1700204B1 (en) Data run programming
EP1782211B1 (en) Fat analysis for optimized sequential cluster management
JP4362534B2 (en) Scheduling housekeeping operations in flash memory systems
CN1295622C (en) Address mapping method and mapping information managing method, and flash memory using the same
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
US7171513B2 (en) Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US7340581B2 (en) Method of writing data to non-volatile memory
US8595424B2 (en) Cluster based non-volatile memory translation layer
KR101751571B1 (en) Non-volatile memory and method having block management with hot/cold data sorting
US8806113B2 (en) Method for efficient storage of metadata in flash memory
KR100684887B1 (en) Data storing device including flash memory and merge method of thereof
EP2254053B1 (en) FAT-analysis for optimized sequential cluster management
CN1918552B (en) Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7877569B2 (en) Reduction of fragmentation in nonvolatile memory using alternate address mapping
JP5130646B2 (en) Storage device
JP4058322B2 (en) Memory card
US7441067B2 (en) Cyclic flash memory wear leveling
KR20150084817A (en) Methods, devices and systems for physical-to-logical mapping in solid state drives
US9116791B2 (en) Method for flash-memory management
CN1129848C (en) Method for performing continuous over write of file in nonvolatile memory
JP4967680B2 (en) Storage device, computer system, and storage device management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120223

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250