JP3641280B2 - フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 - Google Patents

フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 Download PDF

Info

Publication number
JP3641280B2
JP3641280B2 JP29382993A JP29382993A JP3641280B2 JP 3641280 B2 JP3641280 B2 JP 3641280B2 JP 29382993 A JP29382993 A JP 29382993A JP 29382993 A JP29382993 A JP 29382993A JP 3641280 B2 JP3641280 B2 JP 3641280B2
Authority
JP
Japan
Prior art keywords
block
data
blocks
comparison
array
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.)
Expired - Lifetime
Application number
JP29382993A
Other languages
English (en)
Other versions
JPH06223591A (ja
Inventor
スティーブン・イー・ウェルズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH06223591A publication Critical patent/JPH06223591A/ja
Application granted granted Critical
Publication of JP3641280B2 publication Critical patent/JP3641280B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Description

【0001】
【産業上の利用分野】
本発明は、コンピュータ・メモリ装置に関し、更に詳しくは、フラッシュ電気的消去可能プログラム可能読出し専用メモリ(フラッシュEEPROM)アレイの様々な部分で行なわれる消去・書込み(スイッチング動作の回数を等しくする方法に関する。
【0002】
【従来の技術】
最近のコンピュータ・システムでは、長期メモリが幅広く使用されている。代表的には、このメモリは、1つまたは複数のハード・ディスクから成る。ハード・ディスクは、中心軸の回りを高速回転するように固定された1つまたは複数の平坦な円形ディスクを含んでいる電気機械式装置である。平坦なディスクのそれぞれは、何らかの磁気材料でコートされた表裏の面を有している。電気信号により駆動される機械アームは、ディスク上の適所に対しての書込みや読出しを行うよう、各ディスクの各面に磁気ヘッドを位置決めする。それら位置はセクタ上にあり、複数(たとえば、17個)のセクタで、ディスク片方面における1つの完全なトラックを成している。各セクタは、一定数のバイト(代表的には512バイト)のデータを記憶することができる。フォーマットにしたがって、ディスクの一方の面は600個以上のトラックを有している。今日のパーソナル・コンピュータにおいて使用されている代表的なディスク・ドライブは、40メガバイトのデータを記憶することができる。
【0003】
このようなハード・ディスク・ドライブは、非常に有用で、パーソナル・コンピュータの操作にほとんど欠かせない。しかし、このような電気機械式ドライブには欠点がある。このようなドライブは比較的重いので、コンピュータ、特にポータブル・コンピュータの重量をかなり増すことになる。また、サイズも比較的大きいので、コンピュータにおいてかなりの空間を必要とする。しかも、使用の際、かなりの電力を必要とし、ポータブル・コンピュータにおいてはかなりのバッテリ電力を消費する。さらに重要なことは、電気機械式ハード・ディスク・ドライブは衝撃に対し非常に敏感なことである。ポータブル・コンピュータを落下させた場合、そのハード・ドライブの機能が停止することもあり得、これによりデータが壊滅的に失われる可能性がある。
【0004】
最近、電気機械式ハード・ディスクとは異なる長期記憶の装置が、コンピュータにおいて使用できるようになってきた。その1つに、フラッシュEEPROMがある。フラッシュEEPROMメモリは、行・列のメモリ・セルに配列された極めて多数の浮遊ゲート電界効果形トランジスタを有しており、各セルをアクセスし、そのセルのメモリ・トランジスタを、2つのメモリ状態の一方にセットする回路も備えている。フラッシュ・メモリ・セルは、DRAMメモリとは異なって典型的なEPROMのように、電力を取り去っても情報を保持している。フラッシュEEPROMメモリは、長期メモリとして使用するのに適した数多くの特性を有している。たとえば、軽量で、ほんのわずかな空間しか必要なく、電気機械式ディスク・ドライブよりも消費電力が低い。さらに重要なことは、極めて丈夫なことである。典型的な電気機械式ハード・ディスク・ドライブであれば1回の落下でも破壊されてしまうであろうが、そのような落下を繰返しても、悪影響を受けることがない。
【0005】
しかし、フラッシュEEPROMにおける問題は、消去をしないと再プログラムできないという点にある。フラッシュEEPROMは、メモリに用いられている全トランジスタ(セル)のソース端子に高電圧を同時に与えることによって消去される。しかし、これらのソース端子はアレイにおいて金属バスにより相互に接続されているので、全アレイを一度に消去しなければならない。電気機械式ハード・ディスクは、ディスクの第1領域に情報を記憶し、その後、情報の変化時には、ディスクのその同じ領域を再書込みをするが、フラッシュ・メモリ・アレイの場合には、無効(invalid)情報すなわちダーティ(dirty)情報とともにアレイに残っている有効(valid)情報の全てが消去されてしまう。1つのエントリの再書込みの度に全情報が消去されるならば、消去された全ての有効情報も、更新の度に再書込みしなければならない。データ変更にともなってエントリを更新するのに、このようなプロセスを使用した場合には、電気機械式ハード・ディスクの代りにフラッシュ・メモリを用いているコンピュータ・システムの動作は、相当にスローになる。さらに、有効情報の再書込みを要することもあって、フラッシュEEPROMの消去プロセスは極めて遅く、代表的には1〜2秒かかる。このような消去時間が、高速で変化するデータに対してフラッシュEEPROMを使用することを妨げていると考えられる。
【0006】
電気機械式ハード・ディスクにより記憶される情報の場合のように高速で変更するデータのための長期記憶装置としてフラッシュEEPROMを使用する場合には、電気機械式ハード・ディスクで通常使用されているものではない、システムの動作を遅らせることのない、フラッシュ・アレイを消去および再書込みを行なう方法が必要とされている。
【0007】
フラッシュ・アレイを、チップ・レイアウトの際に、一緒に消去するセルのグループ(ブロック)に物理的に分離しておくことによって、フラッシュ・メモリの一度に消去する量を減少できることがわかっている。このやり方はある程度まで再プログラミングの苦労を減少できるが、ブロックを別々にフラッシュ消去できるようにするため、セルの各ブロックをシリコン上で物理的に分離しなければならないので、限られた方法でしか使用することができない。なお、必要とされる物理的分離のために、フラッシュ・メモリのそのようなブロックを保持するのに要する領域が増加してしまう。
【0008】
たとえば、フラッシュ・メモリを、分離されたブロックに分割した新しい装置は、本願の出願人に譲渡され、同日出願された、発明者エス・ウェルスによる米国特許願「半導体メモリ・ディスクに関する方法および回路」に示されている。この装置において、代表的な長期記憶アレイは、一連のブロックに配列されたフラッシュ・メモリから成っている。実施例では、アレイは多くのシリコン・チップに分割され、それぞれのチップは16個のサブブロックに再分されている。各サブブロックは、別のシリコン・チップ上のサブブロックと物理的に対にされ、奇数のデータ・バイトが一方のチップのサブブロックに記憶され、偶数のデータ・バイトが他方のチップのサブブロックに記憶されるよう、アレイの論理ブロックを形成している。フラッシュ・メモリの各論理ブロックは、他の全ての同様の論理ブロックとは個別に消去できる。しかし、アレイの各論理ブロックは、電気機械式ハード・ディスク・ドライブのトラックに通常に記憶される256セクタの情報を保持するのに十分な128キロバイトのデータを保持する。したがって、1チップ当り16個の各々消去可能なサブブロックを備えた30チップのフラッシュ・アレイは、30メガバイトの電気機械式ハード・ディスクとほぼ同じ量のデータを保持する。240個の各々消去可能な部分(論理ブロック)にデータを分割したとしても、1ブロックの消去は、非常に沢山の情報を消去することになるので、その沢山の情報の全データの消去後に、セクタ毎の再書込みで正しいデータに置き換えることは実際に不可能である。
【0009】
このような問題の解決のために、データは、フラッシュ・メモリ・アレイのまだ使用可能なスペースが残っているブロックのいずれかに書込まれる。このようにして、データは、ブロック上の物理アドレスまたはデータのセクタ・アドレスに関係なく、アレイの空き位置に書込まれる。たとえば、セクタ5に書込まれるべきデータの一部は、ブロックの次の使用可能な空間(スペース)に、それがどこであろうと、書込まれ、ルックアップ・テーブル(参照用テーブル)には、論理アドレスの、ブロック上の物理位置(セクタ5)を記録される。アレイのこの構成により、第1ブロックにセクタごとに書込めるようになり、第2ブロックにも同様の順次操作で書込め、以下同じように書込めるようになる。セクタのデータに変更がありセクタを再書込みする必要が生じると、データは新しい物理位置に書込まれ、ルックアップ・テーブルのデータが、論理セクタ番号に対しての新しい物理位置を記録するよう変更され、データが書込まれていた最初の物理位置はダーティ(無効)とマークされ、その物理位置を読出そうとするとエラー信号が発生される。ある期間後、ブロックの相当数が一杯になると、特にダーティなブロックからその中の有効な情報を他のブロックへと移し、有効な情報が読出された後のブロック全体を消去することにより、空間を解放することが望まれる。これは、「ブロックのクリーン・アップ」と呼ばれ、消去されたブロック中でそれまでにダーティとマークされていたセクタの全数に等しい数のセクタが開放されるという効果がある。
【0010】
この構成での特別な利点は、ブロックのを消去を、バックグラウンドで行えることである。すなわち、各無効エントリは、再書込みをする時には消去されず、アレイの機能が読出しおよび書込みのために占有されていない時に、消去されるようにすることができることである。このようにして、外部のホストは、フラッシュ・アレイに書込んだりまたフラッシュ・アレイからの情報を受け取るに際して、たとえ消去に1〜2秒要しても、消去が行なわれていることをほとんど認識しなくてすむ。
【0011】
他の利点は、フラッシュ・メモリの各ブロックが、電気機械式ハード・ディスクにより記憶される一定の大きさのセクタではなく、物理領域に任意の大きさのデータのセクタを記憶できることである。これにより、一定の大きさのセクタを備えたハードおよびフロッピ・ディスクに特有な、スペース(空間)のロスをほとんどなくすことができる。なぜならば、フラッシュ・メモリのブロックに置かれるにデータのセクタそれぞれが、データを記憶するのに要する空間と同じ長さを必要とするだけだからである。したがって、セクタは、直前のセクタの最後の有効バイトに、セクタ相互間のブランクのスペース(平均では1データ・バイト)を挟んで接するよう、フラッシュ・メモリのブロックに配置できる。データが圧縮されると、512バイト・セクタの非圧縮データを記憶するのに要する空間よりもかなり少ない空間に記憶できる。一定の物理的寸法のセクタの最後に通常残される空間は、データが圧縮される場合には排除できる。上記のような構成の他の特性とこのような無駄な記憶空間の排除とにより、圧縮率1.5のデータを記憶するフラッシュ・メモリは、所与の大きさの代表的な電気機械式ハード・ディスクにより記憶されるデータと同じ量のデータを約四分の三の物理的記憶空間で記憶することができる。
【0012】
【発明が解決しようとする課題】
フラッシュ・メモリにおける問題点には、使用できる寿命が制限されていることがある。これは、消去・書込み(スイッチング動作を繰り返すと、アレイの浮遊ゲート・トランジスタのスイッチング動作に要する時間が長くなるためと思われる。そのような繰り返しの回数はかなり大きな数ではある。約10,000回の消去・書込み動作の後に、消去・書込み動作が遅くなり始めたとして、消去・書込み動作の長期化がシステム・オペレーションに何らかの影響を与えるようになるのは、約100,000回の消去・書込み動作を行った後であると見積られてきた。たとえそうでも、データを記憶するセルを選択するための代表的なプロセスでは、ブロック上のあるトランジスタ群およびあるトランジスタのブロック群は、他のトランジスタよりも一層頻繁に消去・書込み動作をさせられる傾向がある。アプリケーション・プログラムが記憶されているブロックのようなフラッシュ・メモリ・アレイのある領域は、めったに再書込みを受けないということがわかっている。一方、アプリケーション・プログラムにより特定の演算のためデータが蓄積されるブロックは、非常に頻繁に変更され従って再書込みされなければならない。さらに、すぐに変更されるデータを記憶するブロックは他のブロックよりも多くのダーティ・セクタを有しているので、これらブロックはより頻繁にクリーン・アップされることになる。一旦、ブロックは、動作中にクリーン・アップされると、あまり変更されないデータを受けよりも、頻繁に変更されるデータを受け取ることの方がはるかに多いであろう。したがって、迅速に変更されるデータを最初に含んでいるブロックは、データ・アーキテクチャの特性により、自動的に、頻繁に変更されるデータを更に受けることになる。データ変更は、そのようなブロックのクリーン・アップを要求することになる。したがって、アレイ全体における消去・書込み回数を等しくするために何も行なわなかった場合、特定のブロックが、他のブロックよりもかなり速く故障することになる。
【0013】
このため、フラッシュ・メモリの各ブロックの消去・書込みのサイクルの回数を制御する手段が大変に要求されている。そのような手段は、フラッシュ・メモリ・アレイのある部分が早期に故障することにつながってしまう統計学的むらを修正するのに、大いに効果があるであろう。本発明の目的は、フラッシュ・メモリ・アレイの寿命を大幅に延長する方法を提供することである。本発明の他の目的は、フラッシュ・メモリ・アレイの様々な部分での消去・書込みが等しく生じるようにする方法を提供することである。
【0014】
【課題を解決するための手段】
上記の目的は、本発明による、メモリ・セル・ブロックに分割されており、ブロック毎に消去可能であるフラッシュEEPROMアレイのクリーン・アップにおいて、全ての有効データをアレイの他のブロックに書込み、それから、そのブロック全体を消去して、フラッシュEEPROMアレイクリーン・アップする方法において、各ブロックに含まれる無効セクタの数と、各ブロックが受けた消去・書込み動作の数との比較に基いて、クリーン・アップするブロックを決定する過程を有することを特徴とするフラッシュEEPROMアレイをクリーン・アップする方法により、解決される。
【0015】
【実施例】
以下の詳細な説明において、コンピュータ・メモリにおけるデータ・ビットの操作をアルゴリズムおよび記号表示によって示している部分がある。これらのアルゴリズム記述や表示は、当業者に技術の内容を最も有効的に伝えるため、データ処理の分野における当業者が用いている方法である。ここでは、また一般にも、アルゴリズムは、目標結果に至る過程のシーケンスであると考えられる。これらの過程は物理量の物理操作を要する過程である。一般に、必ずしも必要ではないが、これらの量は、記憶、転送、結合、比較または操作可能な電気または磁気信号の形態である。これらの信号を、ビット、数値、エレメント、記号、文字、語句、数などで呼称することが、主に共通使用のため、時に便利であることがわかっている。しかし、これらおよび同様の語句は、いずれも、適切な物理量に関連しかつこれら量に用いられる便利な単なる名称であることに留意されるべきである。
【0016】
さらに、実行される操作は、一般に、ヒューマン・オペレータにより実行されるメンタル・オペレーションに関連した、たとえば、加算または比較のような言葉で呼ばれることがある。本発明の一部を成しているここで述べられているオペレーションのいずれにおいても、大抵の場合、ヒューマン・オペレータのこのような能力は必要でもまたは要求されてもいない。オペレーションはマシン・オペレーションである。いずれの場合も、コンピュータまたはその一部を操作する方法オペレーションと計算方法自体との間の相違を心に留めておかなければならない。本発明は、電気または他の(たとえば、機械的、化学的)物理信号を、他の目標物理信号を発生するよう処理する際のコンピュータを操作する装置および方法に関する。
【0017】
図1は、本発明が実施されるフラッシュEEPROMメモリ・アレイ10をブロックで示す。アレイ10は、フラッシュEEPROMメモリの複数のブロックB0〜B15を含む。各ブロックは、行および列に配列された浮遊ゲート電界効果形トランジスタ・メモリ・セル(図示せず)を含んでいる。これらのメモリ・セルは、メモリの特定のブロックおよびそのブロックの特定の行および列を選択するための回路を有しているので、特定の位置におけるメモリ・セルを読出したりまたは書込みを行なうことができる。トランジスタ・メモリ・アレイおよびそれに関連したアクセス回路の詳細は、当業者には周知であるので、ここでは省略する。
【0018】
多くの出版物に示されているように、フラッシュ・メモリは、基本的にはEPROMアレイであり、それの全メモリ・トランジスタのソース端子に同時に高電圧値を与えることにより全アレイを消去できる機能を備えたものである。このような消去により、各セルは1の状態になる。その状態の時に、ゼロまたは1をセルに書込むことができる。1はセルを同じ1の状態のままにし、一方、ゼロはセルを1状態からゼロ状態にスイッチングをさせる。セルは、消去に必要とされる高い電圧値(代表的には、12ボルト)をソース端子に供給されなければ、ゼロ状態から1の状態へとこれと逆のスイッチングすることはない。1つのブロックにおけるメモリ・トランジスタの全ソース端子は相互に結合されているので、ゼロ状態のセルは、アレイの全ブロックが再び消去されるまで、その状態のままである。
【0019】
図1に示されたアレイ10において、メモリのブロックB0〜B15は、アレイ10の第1チップ11に配置されている。別の(たとえば30個の)シリコン・チップ11は、アレイ10の他のブロックをそれぞれ保持し、実施例では合計240のブロックを与える。実施例では、前述したように、各ブロックは、隣接するチップに位置する一対のサブブロックから構成されている。サブブロックは、入力と出力を有し、奇数のデータ・バイトを一方のサブブロックに記憶させ且つ偶数のデータ・バイトを他方のサブブロックに記憶させるための選択導体をさらに有している。このことから、ブロックは、一対のサブブロックを含んでいると考えることができる。
【0020】
ホストが、アレイに記憶すべきデータ(たとえば、アプリケーション・プログラム)について、完全に消去されたアレイのいずれかのブロックに対して、その書込みを開始する際、記憶すべきデータは、ブロックに、それがデータで一杯になるまで、セクタからセクタへと順次に書込まれる。そして、書込みは、空きの空間を有する次のブロックに進む。書込みが完了した後は、いずれの時点においても、データが記憶されたブロックおよびセクタを問合せることにより、情報をアレイ10から読出すことができる。
【0021】
上記の構成において、データは、セクタの寸法が任意で良い(後述する)ことを除き、従来技術の電気機械式ハード・ディスクにデータを記憶するのに使用される物理セクタと同様のセクタに記憶される。アレイのセクタに記憶されたデータが変更されて、そのセクタに既に書込まれた情報を変更すべき時には、新しい変更後の情報は、アレイ10の空き空間を有するブロックのいずれかに位置する新しいセクタに書込まれ、古いセクタは無効(ダーティ、Dirty)とマークされる。古い情報に上書きするのではなく、このように行うのは、古い情報を含むブロックの全てが消去されて初めて、古い情報を再書込みできるからである。有効なデータを破壊することなく全ブロックを消去するには、有効(Valid)なデータの全てをアレイ10の他のブロックにコピーし、元のブロックを消去し、有効なデータを元のブロックに再書込みし、その後、元のブロックのダーティ・データが書込まれていたところに新しいデータを書込まなければならなかった。しかし、これは非常に時間がかかる作業であるので、各エントリの再書込みのためのこのようなプロセスを用いると、コンピュータの動作は遅くなり、動作停止といえるほどになる。したがって、これは実用的ではない。その代わりに、新しい情報を、別の空いているブロック(たとえば、ブロックB7)の新しい位置に書込み、古い位置は、エントリのセクタ番号とともに無効を示すゼロを書込むことにより、ダーティとマークされる。アレイのブロックを消去することなく、ゼロの値をいずれのメモリ・セルにも書込めることは認識されよう。
【0022】
この構成では、データが置き換えられるので、データがどこに記憶されているかを示すのに使用されるセクタ番号には、物理セクタ番号ではなく論理セクタ番号が用いられる。この点は、電気機械式ハード・ディスクでデータを配置するのに物理セクタ番号が使用されているのとは対照的である。論理セクタ番号を使用できるようにするため、アレイ10とともに用いられるランダム・アクセス・メモリ16に、物理セクタ番号と対比して論理セクタ番号を表にしたルックアップ・テーブル17が記憶されている。このテーブル17は、特定の論理セクタが存在する、アレイ10中の物理的位置を、決定するのに使用される。
【0023】
データが置き換えられる、このような構成では、しばらくすると、アレイの各ブロックは、ダーティとマークされて記憶には使用できない多くのエントリを、有することになる。その結果、アレイ10がデータで一杯になると、新しい情報を記憶するための空間を作るため、ブロックからダーティ情報をクリアしなけらばならなくなる。本発明の一実施例では、このクリアは、ダーティな空間の合計量が、ダーティ空間と空き空間の全合計の80%になった時に行なわれる。典型的には、アレイ10の最もダーティなブロックが消去べきものとして選択される。これにより、消去対象のブロックからアレイの別のブロックに移動する有効なデータの量を最少にすることができる。有効な情報が別のブロックに書込まれ、新しいアドレスがルックアップ・テーブル17に記録されると、情報を読出し終えたブロックは消去される。その後、消去されたブロックは、全くきれいなブロックとして動作に復帰する。このクリーン・アップ操作を行えるようにしておくために、ブロックのいくつかを、クリーン・アップの必要時のために確保しておかなければならない。本発明を用いた装置の一例では、使用可能な240のブロックのうちの14のブロックを使用して、書込み動作の継続のため、および、クリーン・アップ動作のために十分な空間を提供する。
【0024】
図2には、前述した利点を得るため個々のブロックで使用される論理構成が示されている。図2は、アレイ10の各ブロックにデータを記憶する方法を理解するのに有効な理想化した図である。図2では、代表的なブロックを方形で示している。この方形領域は、各ブロックにより与えられる128Kバイトの記憶用に配列された複数のトランジスタ・ディバイスを含んでいる。前述したように、個々のブロックの領域は、実際には、2つの物理チップそれぞれのサブブロックに分けられ、一方のチップのサブブロックは奇数のデータ・バイトを保持し、他方のチップのサブブロックは偶数のデータ・バイトを保持する。トランジスタ・メモリ・ディバイス、ブロックを操作する線、行および列の選択線は、図示されていないが、フラッシュ・メモリを設計する当業者には周知である。
【0025】
図2に示すように、データは、上と下から開始するブロック20に記憶される(ブロックの一番下の狭い領域21は、ブロック構造データのために確保される)。ブロック20の上部の、セクタ変換テーブル(ヘッダ)と呼ばれる識別フィールドには、データのアドレスとしてオペレーティング・システムにより用いられる論理セクタ番号が記憶される。たとえば、第1セクタ番号58112は、上部の第1エントリのためのヘッダに記憶される。セクタ番号に続いて、様々な属性ビットおよびポインタ値が記憶される。一実施例に含まれている属性には、エントリの妥当性(V)の表示、校正番号(Rev#)、データが圧縮されているかどうかの表示、エントリがデータを含んでいる(WD)か否(WOD)かを示すビットがある。エントリの妥当性(V)の表示は、1ならば有効を意味し、ゼロならば無効を意味する少なくとも1つのビットであり、このビットは、正しい妥当性を確実に記憶しておくめに二重にしておくことができる。校正番号(Rev#)は4ビットの番号である。エントリがデータを含んでいる(WD)か否(WOD)かを示すビットが使用されているので、セクタをデータなしに作ることができる。
【0026】
ポインタ値(ブロックへのオフセット)は、ブロック20のデータ領域において論理セクタ(例えば58112)のデータが記憶されている物理アドレスを示す。図2の左側の矢印は、論理セクタ(例えば58112)のデータの第1ビットが記憶されている物理位置を示している。記憶されるべきデータは、その量が書込み動作の時点では知れているので、ブロック20の実施例において、データは、それまでに記憶されたデータの次に書込むことにより記憶される。ブロック20の第1セクタである論理セクタ58112の場合、データは、セクタ番号58112に関するポインタとして記憶されたアドレスの最初から、データ領域の始まり(最下部)まで書込まれる。最下部でデータが始まる位置は、ブロックの上部における第1ヘッダ・エントリの前に記憶された開始ポインタ値によりマークされる。ブロックにおけるこれらの2つの位置は、ブロック20の左上の隅から左下の隅まで延びている矢印により結合されて示されている。
【0027】
論理セクタ58112に書込まれるデータの量は、固定されておらず、変更できる。しかし、コンピュータ・システムと記憶装置との間の代表的なインタフェイスでは、データは、512バイトのセクタに記憶するよう割当てられる。図2には、第2論理セクタ5と、ブロック20においてその論理セクタ5のデータの第1ビットを記憶する物理位置に向けられたポインタも模式的に示されている。セクタ5のデータは、その最後の行がセクタ58112のデータの第1行のすぐ上の行に位置するよう、書き込み済みの最新のデータ・セクタ(セクタ58112)のすぐ上で開始しして下方へ延びるデータ領域に記憶される。新しいセクタのデータは、最後に書込まれたセクタのデータのすぐ上のすべての行に書込まれるので、このブロック記憶構成において無駄になるデータ空間の量はほんのわずかである(平均1バイト)。記憶のために供給されるデータが圧縮されていれば、固定のセクタ・サイズの記憶装置において、通常、空のままにされる記憶空間の量は無視できる。これは、固定のセクタ・サイズを用いている外見上一杯になった電気機械式ハード・ディスクに代表される大量の未使用空間とは著しく対照的である。
【0028】
前述したように、セクタ番号の物理位置は、チップ番号、ブロック、データ検索に関する他情報(たとえば、行および列アドレス)とともに、ルックアップ・テーブル17(これは、アレイ10の他の構成要素を保持している回路板のスタティック・ランダム・アクセス・メモリに保持されているのが望ましい)に記憶されている。ブロック20のいずれかのセクタに記憶されたデータは、次のようにして検索できる。すなわち、ルックアップ・テーブル17からセクタ番号の物理アドレスを決定し、そのアドレスを用いてセクタ番号が記憶されたブロック20の物理位置を見つけ、そして、データの開始位置のポインタと、検索されるセクタ番号のすぐ上に記憶されているセクタ番号を有するセクタの開始位置のポインタと(これら2つの値は、データを探しているセクタの開始および終了位置を決定する。)を、検索することにより、検索できる。
【0029】
フラッシュ・メモリ・アレイにより使用される、データの再書き込みを行なう一般的でない装置では、メモリ割当てシステムが、書込みおよび再書込みされるデータ用に使用可能であるよう、メモリを継続的に新しくするすなわち新たに消去する必要がある。前述したように、これには、無効データを保持しているブロックをクリーン・アップして、そのダーティ・セクタを解放するため、ブロックのいくつかを常に利用できるようにしておくことが必要である。
【0030】
いずれのメモリ・アレイの操作においても生じる問題点は、そのメモリの読出し、書込みおよび消去しようとする時、時々失敗があることである。フラッシュ・メモリにおいて非常に重大な問題は、長期間使用した後、メモリ・トランジスタが、規定された期間内での消去・書込み能力を失うことである。この能力損耗は、実際には、信号がメモリ・セルから読出されて最終値に整定するまでに必要な時間が延びることが分った。データをセルに正しく記憶し、セルから読出すことはできるが、それに要する時間が長くなり、回路に要する規定の範囲内にはない。フラッシュ・メモリがこの症状を呈し始めると、整定時間が長くなり始め、結局、メモリは有用な範囲を超えてしまう。図4は、行なわれた消去・書込み動作の回数に対する、出力信号の整定時間をとった、フラッシュ・メモリ・アレイの代表的な使用特性を示している。図示のように、消去・書込み動作が約10,000回を超えると、フラッシュ・メモリのブロックの整定時間は長くなり始める。この10,000回という消去・書込み動作の回数が、このようなアレイにおける代表的な寿命として選択されている。
【0031】
前述したように、アレイのダーティ・セクタにより占められている記憶空間を解放する必要がある場合に、最もダーティなブロックをクリーン・アップするようにするものとすると、あるブロックの使用が、アレイの他のブロックよりも多くなることになろう。そうなるのは、あるブロックが、他のブロックに記憶されたデータよりも頻繁に変更されるデータを、最初に受け取るからである。たとえば、アプリケーション・プログラムは、典型的には使用中には変更されないが、アプリケーション・プログラムにより使用されるデータはしばしば変更される。頻繁に変更されるデータを受け取るブロックは、アレイの他のブロックよりも速くクリーン・アップされる。一旦、クリーン・アップされると、これらブロックは、おそらく、別のすぐに変更するデータを受け取ることになる。なぜならば、スタティック・データを含んでいるアプリケーション・プログラムは記憶済みであり、頻繁に変更されるデータは、通常、長期記憶装置に書込まれるタイプのデータであるからである。結局、これらブロックは、さらにクリーン・アップを受けることになろう。
【0032】
その結果は、あるブロックは、他のブロックよりもかなり頻繁に使用されることになり、他のブロックよりかなり頻繁にクリーン・アップされる、ということになろう。比較的短い期間では、頻繁に変更されるデータを記憶する、僅かなブロックが、消去・書込み動作の通常の寿命に至るだけで、多くのブロックはそれ程使用されない。わずかな数のブロックが著しく使用されて故障しても、アレイ全体の故障となるので、アレイを機能させるためには、多くのブロックが常にクリーン・アップの対象とするようにしておく必要がある。
【0033】
本発明の動作を可能にするため、ブロックが消去された回数のカウントが、他のデータから離れている、ブロック中の小さなブロック状態部分21に、保持される。この部分21は、図2おいて、ブロック20の下の方に示されている。
【0034】
フラッシュ・メモリ・アレイにおける消去・書込み動作の回数を均等化するため、本発明のプロセスは使用される。代表的には、必要的ではないが、このプロセスは、制御回路14のマイクロプロセッサにより実行されるソフトウェア・プロセスであり、その制御回路14は、そのソフトウェアとともに読出し専用メモリに記憶されている命令を使用する。図3は、フラッシュ・メモリ・アレイのブロック間で消去・書込み動作の回数を均等化するために実行される多くのオペレーションを示す図である。この図は、状態図の形式で示されているが、実際には操作のフローチャートに等しい。オペレーションは、読出し/書込み/消去の制御回路14の読出し専用メモリに記憶されたソフトウェアにより制御される。本発明の説明のため、読出し/書込みの制御回路14は、上記マイクロプロセッサおよび読出し専用メモリの他に、コマンド状態マシンおよび書込み状態マシンを含んでいると考えられる。これらのマシンは、読出し、書込み、消去のためのアレイ・チップのインタフェイスを形成する。この回路は、本願の出願人に譲渡され、1991年2月11日に出願された、発明者フランドリッチ他による米国特許願第07/655,643号「コマンド状態マシン」と、本願の出願人に譲渡され、1991年2月11日に出願された、発明者キネット他による米国特許願第07/654,374号「不揮発性半導体メモリのプログラムおよび消去をする回路および方法」とに述べられている。一実施例では、コマンド状態マシンと書込み状態マシンは、物理的には、各チップ11の一部である。
【0035】
オペレーションは第1のステップ30から始まる。第1のステップ30では、クリーン・アップ操作が必要かどうかの決定のための評価が行なわれる。クリーン・アップが必要かどうかは、情報を書込みまたは再書込みするために利用できる空間がブロックにあるかどうかの問題に基く。一実施例では、フラッシュ・メモリの全アレイ(使用中の有効セクタをまない)の80%以上がダーティである場合、使用できる空間は十分でないと考えられ、クリーン・アップ操作を行なう必要がある。この決定は、アレイ10に関連したスタティックRAM16における、小規模データ・ベース12に空きスペース量を、小規模データ・ベース13にダーティ空間の量を保持することによって行なわれる。データ・ベース13は各ブロックにおけるダーティ空間の量と全ダーティ空間をリストし、一方、第2データ・ベース12は各ブロックにおける空き空間の量とアレイにおける全空き空間をリストする。セクタがダーティであるとマークされる度に、そのセクタのサイズが、全ダーティ空間に加えられる。クリーンな未使用(空き)セクタが、書込みのために割当てられる度に、そのサイズが空き空間の全量から減算される。ブロックが不良であるとマークされる度に、そのブロックから全ユーザ・データが他にコピーされる。したがって、不良ブロックにおける空き空間の量は、空き空間の総量から減算され、不良ブロックにおけるダーティ空間の量は、ダーティ空間の量から減算される。データ・ベース12,13は、読出し/書込み/消去制御回路14のプロセッサにより、その読出し専用メモリに記憶されたソフトウェアを用いて保持される。データ・ベースをルーチンとして保持することにより、ダーティと空きの合計の空間に対するダーティ空間の比率は、ダーティである残りのアレイ空間のパーセンテージの有効な尺度として常に使用できる。十分な空き空間がある場合、クリーン・アップは必要とされない。しかし、十分な空き空間がない場合には、クリーン・アップが必要になる。
【0036】
クリーン・アップが必要であるとわかると、プログラムは、クリーン・アップに最も適したブロックを選択するステップ31に移動する。決定は、一組の基準に基いて行なわれる。
最初の基準は、どのブロックが最もダーティであるかということである。最もダーティなブロックの決定は、データ・ベース13に保持されている各ブロックに関するダーティ空間の量(すなわちダーティ・セクタの数)を、データ・ベース13に保持されている他の各ブロックのダーティ空間(すなわちダーティ・セクタの数)に比較することによって行なわれる。
2番目の基準は、どのブロックが最も少ない回数のクリーン・アップ操作(サイクル)を経過したかということである。どのブロックが最も少ない回数のクリーン・アップ操作を経過したかの決定は、各ブロックの下に示された固定ブロック構造領域に記憶された値を考察することにより行なわれる。示されているように、この領域は、ブロックが何回クリーン・アップ操作を経過したかを実質的に示す値(消去された回数のカウント(段落0033参照))を含んでいる。この評価には他の要因も含められるだろうが、本発明の目的に関しては意味がないので本明細書での検討は省略する。
【0037】
上記の最初の基準に関して更に説明をすると、各ブロックにおいて、ダーティ・セクタの数を調査することにより決定された値は、倍率(一実施例では80%)の重みを付けられる。このように、各ブロックについて、それに含まれるダーティ・セクタ(すなわち無効セクタ)の数を全ての他のブロックに含まれる無効セクタの数と比較しその比較により得られる値に重みがつけられる。
一方、上記の2番目の基準に関して更に説明をすると、クリーン・アップ操作の数は、(最も多くのサイクルを経験したブロックと、当該のブロックとに関するクリーン・アップ操作回数の差を見いだすことにより)他の倍率(同実施例では20%)の重みを付けられる。このように、各ブロックについて、それの受けた(クリーンアップ回数を実質的に示す)消去回数と、最も多くの消去を受けたブロックの消去回数との差を求めそれにより得られる値に重みがつけられる。
そして、これらの2つの結果は合計され、最も高い値を持つブロックがクリーン・アップのため選択される。クリーン・アップされるブロックの選択には、最もダーティなブロックの値が圧倒的な影響を持つが、2つのブロックがほぼ等しくダーティな場合には、最も少なく消去・書込みのサイクルを経験したブロックが選択される。このことは、少ない消去・書込み動作のブロックをクリーン・アップのために選択する効果がある。これは、最も頻繁に変更されると思われるデータが、クリーン・アップ後に書込まれるであろうブロックを選択するという最終的効果を有している。全体的な効果は、ブロックにおける消去・書込み動作が均等化され始めるということである。
【0038】
クリーン・アップに適したブロックが選択されると、プロセスは、他のブロックにおける使用し得る空きセクタ空間を見つけるステップ32に移動する。有効なセクタを記憶する空間が発見されると、プロセスは、ステップ33に移り、クリーン・アップ対象のブロックのセクタから有効なデータを使用可能な空間に書込む。図3は、使用可能な空間に有効なデータを書込む、20回繰り返されるプロセスを示している。これが生じるのは、現在使用されている本発明の一実施例においては、ホストにより要求されたオペレーションを遂行できるよう、クリーン・アップの種々のステップが割り込み可能であることが必要とされるからである。
【0039】
したがって、プロセスの様々なステップは論理部分に分割され、それぞれの部分は、500マイクロ秒で行なわれる。このように、図示されたプログラムは、プロセスの各論理ブロックの間で、ホストのオペレーションにより割り込み可能である。クリーン・アップ操作の(たとえば、他のブロックの使用可能なセクタ空間への有効なセクタの書込みのような)長い部分は、全オペレーションが終わるまで、各500マイクロ秒が割込まれる。
【0040】
クリーン・アップ対象のブロックのセクタにおける有効なデータを他のブロックのセクタへの書込むことが完了すると、プログラムは、アレイが保有する様々なデータ・ベースを更新するステップ34に移動する。これには、次が含まれている。すなわち、各ブロックの上部にあって、書込み操作により影響されて古いヘッダが無効にされているセクタ変換テーブル(ヘッダ)を更新すること、フラッシュ・メモリに関連し、論理セクタをメモリのいずれかに配置させる、SRAM中のルックアップ・テーブル17を、新しい物理アドレスで更新すること、ダーティおよび空き空間の量をリストする、SRAMに保持されたデータ・ベース12,13を更新すること、が含まれている。
【0041】
データ・ベースが更新された後、有効なデータを含んでいるセクタの書込みが継続され、クリーン・アップされるブロックにおける全ての有効なセクタが他のブロックに移動し終わるまでループされる。ヘッダ部分にクリーン・セクタを含まないブロックにより示されるようにこれが完了すると、プログラムはステップ35に移動する。ステップ35では、ブロックの消去プロセスが開始される。消去プロセスは典型的に1〜2秒で行なわれるので、消去のための待機を示している次のステップは、一実施例ではその期間中各500マイクロ秒で消去プロセスが割り込まれ得ることを示している。
【0042】
消去操作が行なわれたら、プログラムはステップ37に移動する。このステップ37において、データ・ベースが再び更新される。これらのデータ・ベースは、クリーン・アップされたブロックが経過したスイッチング動作のカウント(サイクル・カウント)、メモリにおける空き空間およびダーティ空間の量、本発明には関係ない他のデータを含んでいる。
【0043】
データ・ベースが更新された後、プログラムは、クリーン・アップが必要かどうかの評価を行う最初のステップ30に戻る。ダーティ・データに占有された記憶域を解放するためクリーン・アップがなお必要ならば、全プロセスが繰り返される。これは、クリーン・アップが必要とされなくなるまで継続される。
クリーン・アップがもう必要でなくなると、プログラムはステップ38に移動する。ステップ38において、消去・書込み動作の均等化をする(「消耗レベリング(wear leveling)」と呼ばれる)必要があるかどうかの決定が行なわれる。この消耗レベリングのかなりの部分は、プロセスの主要部分でクリーン・アップに最適なブロックを選択するステップにおいて、既に行なわれていることは明らかであろう。しかし、そうならない態様でフラッシュ・メモリのプロセッサが動作している時、アレイの様々なブロックにおける消去・書込み動作の総数を近づけるよう、上記のプロセスを用いることが有効であることがわかった。
この目的のため、各ブロックが行なった消去・書込み動作の数を比較することにより評価が行なわれ、アレイの最も多くサイクルされたブロックより500回少なくクリーン・アップされたブロックがあるかどうかを決定する。このようなブロックが生じていない場合、プログラムはそのプロセスから出る。又、このようなブロックがある場合には、消耗レベリング・クリーン・アップ操作が開始される。このように、利用できる空きをつくるためのクリーン・アップの必要性はないが、クリーン・アップ操作が可能である場合に、受けた消去回数に500以上の差があるブロックがあると、消耗レベリング・クリーン・アップ操作が開始される。
【0044】
この時点で消耗レベリング・クリーン・アップを開始するのは、クリーン・アップされたブロックが、頻繁な変更を受け易い新しいデータを受けるであろうと、言う点にある。したがって、プログラムは、クリーン・アップに最適なブロックであるかどうかの評価が消耗レベリングの基準に基いて行なわれるステップ39に進む。ダーティ・セクタや、行なわれた消去・書込み動作数など同じファクタについての考察がなされる。しかし、各値に与えられる重みは、消去・書込み動作の数に対してより高い重みが与えられるように変えられる。たとえば、ある実施例では、ダーティ・セクタの数には20%の重みが付けられ、一方、(最も多くサイクルされるブロックのクリーン・アップ操作と、当該ブロックのクリーン・アップ操作と間における差を見いだすことにより測定される)消去・書込みの数には80%の重みが付けられる。これらの数は合計され、最高値のブロックがクリーン・アップのために選択される。消去・書込みの数が、クリーン・アップ用のブロックの選択において、圧倒的な影響力を持つことがわかるであろう。消去・書込みの数が少ない程、そのブロックが選択される可能性は高くなる。しかし、同数の消去・書込み回数の2つのブロックがあるとすると、最もダーティなブロックが、最高合計値を有しかつ選択される。
したがって、消耗レベリング・クリーン・アップの一般的な効果は、これまでにクリーン・アップされた回数が最も少ないブロックをクリーン・アップすることである。適切なブロックが消耗レベリング・クリーン・アップ操作のために選択されると、プログラムは、クリーン・アップを開始するステップ32に移動する。その後は、前述したようにクリーン・アップのため同様のステップをたどる。
【0045】
本発明について、実施例に基づいて説明したが、本発明の思想から離れることなく様々に改変できることは当業者には明白であろう。
【0046】
【発明の効果】
本発明のプロセスを用いることにより、ブロック間での使用量が均等化されると同時に、継続的に使用できるメモリのブロックが提供される。これにより、メモリ・アレイの寿命を延ばす効果がもたらされ、通常の動作では寿命は約28年と算定される。これは代表的なコンピュータ・コンポーネントをはるかに超える寿命である。
【図面の簡単な説明】
【図1】 本発明が用いられるフラッシュ・メモリ・アレイの概要を示したブロック図である。
【図2】 図1に示したようなフラッシュ・メモリ・アレイの1つのブロックにおける情報の記憶パターンを示したブロック図である。
【図3】 フラッシュ・メモリ・アレイにおける消去・書込み動作を均等化する、本発明にしたがった方法の一部を示したフローチャートである。
【図4】 フラッシュ・メモリ・アレイに関する損耗特性を示したグラフである。
【符号の説明】
10 フラッシュEEPROMメモリ・アレイ
14 読出し/書込み/消去制御回路
16 ランダム・アクセス・メモリ
17 ルックアップ・テーブル
20 ブロック

Claims (6)

  1. メモリ・セル・ブロックに分割されたフラッシュEEPROMアレイクリーン・アップにあって、ブロックには有効データおよび無効データを含むセクタとしてデータが格納され、ブロック毎に消去可能であって、当該ブロック中の全ての有効データがアレイの他のブロックに書き込まれた後、当該ブロック全体が消去され、
    各ブロックに対する第1の比較・重み付け動作によって、すなわち、各ブロックについて、それに含まれる無効セクタの数を全ての他のブロックに含まれる無効セクタの数と比較しその比較により得られる値に重みをつけて第1の値とする動作によって、各ブロックについて第1の値を決定し、
    各ブロックに対する第2の比較・重み付け動作によって、すなわち、各ブロックについて、それの受けた消去数と、最も多くの消去を受けたブロックの消去数との差を求めそれにより得られる値に重みをつけて第2の値とする動作によって、各ブロックについて第2の値を決定し、
    各ブロックについて第1の値および第2の値を合計してクリーン・アップすべきブロックを決定する
    ことを特徴とする、クリーン・アップすべきブロックを決定する方法。
  2. 請求項1記載の方法において、
    前記第1の比較・重み付け動作において与えられる第1の重みと、前記第2の比較・重み付け動作において与えられる第2の重みとの選定は、既に受けた消去回数がより少ない方のブロックがクリーン・アップ対象として選択されるように、行われている
    ことを特徴とする、クリーン・アップすべきブロックを決定する方法。
  3. 請求項1記載の方法において、前記第1の比較・重み付け動作において与えられる第1の重みと、前記第2の比較・重み付け動作において与えられる第2の重みとの選定は、
    フラッシュEEPROMアレイへの書込みのための空きが必要であるときは、含まれる無効セクタの数が多い方のブロックがクリーン・アップ対象として選択されように行われ、
    空きを得るためのクリーン・アップの必要性はないけれどもクリーン・アップが可能であるときは、既に受けた消去回数がより少ない方のブロックがクリーン・アップ対象として選択されるように行われる
    ことを特徴とする、クリーン・アップすべきブロックを決定する方法。
  4. 請求項3記載の方法において、空きを得るためのクリーン・アップの必要性はないけれどもクリーン・アップが可能であるときのクリーン・アップは、既に受けた消去回数に500以上の差があるときに開始され、受けた消去回数がより少ない方のブロックがクリーン・アップ対象として選択されるように行われる
    ことを特徴とする、クリーン・アップすべきブロックを決定する方法。
  5. 請求項1記載の方法において、
    フラッシュEEPROMアレイへの書込みのための空きが必要であるときは、前記第1の比較・重み付け動作において第1の重み=0.8が与えられ、前記第2の比較・重み付け動作において第2の重み=−0.2が与えられ、
    クリーン・アップの必要性はないけれどもクリーン・アップが可能であるときは、前記第1の比較・重み付け動作において第1の重み=0.2が与えられ、前記第2の比較・重み付け動作において第2の重み=−0.8が与えられる
    ことを特徴とする、クリーン・アップすべきブロックを決定する方法。
  6. 請求項1記載の方法において、
    前記第1の比較・重み付け動作において与えられる第1の重みと、前記第2の比較・重み付け動作において与えられる第2の重みとの選定は、含まれる無効セクタの数が多い方のブロックがクリーン・アップ対象として選択されるように、行われている、
    ことを特徴とする、クリーン・アップすべきブロックを決定する方法。
JP29382993A 1992-10-30 1993-11-01 フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 Expired - Lifetime JP3641280B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US96946792A 1992-10-30 1992-10-30
US969,467 1992-10-30

Publications (2)

Publication Number Publication Date
JPH06223591A JPH06223591A (ja) 1994-08-12
JP3641280B2 true JP3641280B2 (ja) 2005-04-20

Family

ID=25515597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29382993A Expired - Lifetime JP3641280B2 (ja) 1992-10-30 1993-11-01 フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法

Country Status (2)

Country Link
US (1) US5341339A (ja)
JP (1) JP3641280B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583859B2 (en) 2010-08-31 2013-11-12 Kabushiki Kaisha Toshiba Storage controller for wear-leveling and compaction and method of controlling thereof

Families Citing this family (217)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JP3171901B2 (ja) * 1992-02-05 2001-06-04 セイコーインスツルメンツ株式会社 不揮発性メモリカードの書換え方法
JP3328321B2 (ja) 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US6549974B2 (en) * 1992-06-22 2003-04-15 Hitachi, Ltd. Semiconductor storage apparatus including a controller for sending first and second write commands to different nonvolatile memories in a parallel or time overlapped manner
JP2737562B2 (ja) * 1992-08-18 1998-04-08 日本電気株式会社 高密度磁気ディスク装置のパトロールシーク方式
US5369616A (en) * 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US5359570A (en) * 1992-11-13 1994-10-25 Silicon Storage Technology, Inc. Solid state peripheral storage device
US5491809A (en) * 1993-01-05 1996-02-13 Texas Instruments Incorporated Smart erase algorithm with secure scheme for flash EPROMs
US5740349A (en) * 1993-02-19 1998-04-14 Intel Corporation Method and apparatus for reliably storing defect information in flash disk memories
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
JPH0736806A (ja) * 1993-07-15 1995-02-07 Nec Corp Dma方式
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
US5400286A (en) * 1993-08-17 1995-03-21 Catalyst Semiconductor Corp. Self-recovering erase scheme to enhance flash memory endurance
US5566314A (en) * 1993-08-30 1996-10-15 Lucent Technologies Inc. Flash memory device employing unused cell arrays to update files
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5473569A (en) * 1994-08-01 1995-12-05 Motorola, Inc. Method for operating a flash memory
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
JP3088247B2 (ja) * 1994-09-12 2000-09-18 日本電気株式会社 不揮発性半導体記憶装置及びその消去方法
US5517453A (en) * 1994-09-15 1996-05-14 National Semiconductor Corporation Memory with multiple erase modes
ES2101584T3 (es) * 1994-09-30 1997-07-01 Sel Alcatel Ag Metodo de gestion de una memoria instantanea.
JPH08124393A (ja) * 1994-10-20 1996-05-17 Fujitsu Ltd データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置
US5563828A (en) * 1994-12-27 1996-10-08 Intel Corporation Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5930815A (en) * 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
US6801979B1 (en) 1995-07-31 2004-10-05 Lexar Media, Inc. Method and apparatus for memory control circuit
US6081878A (en) * 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6757800B1 (en) 1995-07-31 2004-06-29 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
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
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
US6170066B1 (en) * 1995-09-29 2001-01-02 Intel Corporation Power-off recovery management for sector based flash media managers
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
GB2317720A (en) * 1996-09-30 1998-04-01 Nokia Mobile Phones Ltd Managing Flash memory
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US5963970A (en) * 1996-12-20 1999-10-05 Intel Corporation Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US6279069B1 (en) 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US5928370A (en) * 1997-02-05 1999-07-27 Lexar Media, Inc. Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6411546B1 (en) 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6076137A (en) 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
GB9801373D0 (en) 1998-01-22 1998-03-18 Memory Corp Plc Memory system
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
KR100319598B1 (ko) 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
US6040997A (en) * 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
AU1729100A (en) 1998-11-17 2000-06-05 Lexar Media, Inc. Method and apparatus for memory control circuit
JP3511916B2 (ja) * 1998-11-17 2004-03-29 松下電器産業株式会社 記録再生装置
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US7538694B2 (en) * 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US6885319B2 (en) * 1999-01-29 2005-04-26 Quickshift, Inc. System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
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
EP1729304B1 (en) 1999-04-01 2012-10-17 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US6839821B2 (en) * 1999-11-16 2005-01-04 Lexar Media, Inc. Method and apparatus for memory control circuit
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US7102671B1 (en) 2000-02-08 2006-09-05 Lexar Media, Inc. Enhanced compact flash memory card
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
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US7155559B1 (en) 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6345001B1 (en) 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US7113432B2 (en) * 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
JP2003030993A (ja) * 2001-07-17 2003-01-31 Toshiba Corp 半導体記憶装置
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123417D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123419D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Data handling system
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
JP4280055B2 (ja) * 2001-11-28 2009-06-17 株式会社Access メモリ制御方法および装置
US6950918B1 (en) 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US7254668B1 (en) 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
JP2004164493A (ja) * 2002-11-15 2004-06-10 Wescom Inc 不揮発性メモリのデータ管理システム、不揮発性メモリのデータ管理方法、およびそのプログラム
JP3587842B2 (ja) * 2002-12-17 2004-11-10 沖電気工業株式会社 データ書き換え装置およびデータ書き換え方法ならびにフラッシュメモリ装置
WO2004061669A1 (ja) * 2003-01-06 2004-07-22 Matsushita Electric Industrial Co., Ltd. 映像及び音声信号記録装置及び記録方法
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7480760B2 (en) * 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
EP1695304A4 (en) 2003-12-17 2011-09-28 Lexar Media Inc POINT-OF-SALE ACTIVATION OF ELECTRONIC DEVICES TO AVOID THEFT
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060161724A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US7224604B2 (en) 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US20060236025A1 (en) * 2005-04-18 2006-10-19 Intel Corporation Method and apparatus to control number of erasures of nonvolatile memory
US8438647B2 (en) 2005-07-14 2013-05-07 Imation Corp. Recovery of encrypted data from a secure storage device
US8015606B1 (en) 2005-07-14 2011-09-06 Ironkey, Inc. Storage device with website trust indication
US8335920B2 (en) 2005-07-14 2012-12-18 Imation Corp. Recovery of data access for a locked secure storage device
US8321953B2 (en) * 2005-07-14 2012-11-27 Imation Corp. Secure storage device with offline code entry
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US20070067620A1 (en) * 2005-09-06 2007-03-22 Ironkey, Inc. Systems and methods for third-party authentication
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
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
US8639873B1 (en) 2005-12-22 2014-01-28 Imation Corp. Detachable storage device with RAM cache
US7831783B2 (en) 2005-12-22 2010-11-09 Honeywell International Inc. Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems
US8266378B1 (en) 2005-12-22 2012-09-11 Imation Corp. Storage device with accessible partitions
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US20070300031A1 (en) * 2006-06-22 2007-12-27 Ironkey, Inc. Memory data shredder
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
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
WO2008077284A1 (en) * 2006-12-27 2008-07-03 Intel Corporation Initiative wear leveling for non-volatile memory
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US7971023B2 (en) * 2008-04-30 2011-06-28 Sandisk Corporation Guaranteed memory card performance to end-of-life
US8356105B2 (en) * 2008-05-02 2013-01-15 Marblecloud, Inc. Enterprise device policy management
WO2009156877A1 (en) * 2008-06-24 2009-12-30 Sandisk Il Ltd. Method and apparatus for error correction according to erase counts of a solid-state memory
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US9772936B2 (en) * 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
KR101028291B1 (ko) * 2008-09-01 2011-04-11 주식회사 엘지화학 배터리 팩과 부하 간의 스위치부 제어장치 및 방법, 그리고 상기 장치를 포함하는 배터리 팩 및 배터리 관리 장치
CN101419838B (zh) * 2008-09-12 2011-01-19 中兴通讯股份有限公司 一种提高flash使用寿命的方法
JP4461187B1 (ja) * 2008-12-24 2010-05-12 株式会社東芝 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法
US20100228906A1 (en) * 2009-03-06 2010-09-09 Arunprasad Ramiya Mothilal Managing Data in a Non-Volatile Memory System
US8433843B2 (en) * 2009-03-31 2013-04-30 Qualcomm Incorporated Method for protecting sensitive data on a storage device having wear leveling
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8065469B2 (en) * 2009-04-20 2011-11-22 Imation Corp. Static wear leveling
TWI457940B (zh) * 2009-05-15 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8683088B2 (en) 2009-08-06 2014-03-25 Imation Corp. Peripheral device data integrity
US8745365B2 (en) * 2009-08-06 2014-06-03 Imation Corp. Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system
US9135190B1 (en) 2009-09-04 2015-09-15 Bitmicro Networks, Inc. Multi-profile memory controller for computing devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8234520B2 (en) * 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
US9396104B1 (en) 2010-03-22 2016-07-19 Seagate Technology, Llc Accessing compressed data of varying-sized quanta in non-volatile memory
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US8499116B2 (en) 2010-06-11 2013-07-30 Hewlett-Packard Development Company, L.P. Managing wear on independent storage devices
TWI457941B (zh) * 2010-06-25 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取的方法與裝置
US8239619B2 (en) 2010-07-09 2012-08-07 Macronix International Co., Ltd. Method and apparatus for high-speed byte-access in block-based flash memory
US8949506B2 (en) * 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
US8621328B2 (en) 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance
GB2490991B (en) * 2011-05-19 2017-08-30 Ibm Wear leveling
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9846641B2 (en) 2012-06-18 2017-12-19 International Business Machines Corporation Variability aware wear leveling
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US20140040536A1 (en) * 2012-08-01 2014-02-06 Genusion Inc. Storage medium using nonvolatile semiconductor storage device, data terminal having the storage medium mounted thereon, and file erasing method usable for the same
US9329948B2 (en) 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
KR20140038110A (ko) * 2012-09-20 2014-03-28 한국전자통신연구원 파일 시스템 관리 방법 및 이를 이용하는 장치
US20140115422A1 (en) * 2012-10-24 2014-04-24 Laurence H. Cooke Non-volatile memory error correction
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US9251253B2 (en) 2013-01-05 2016-02-02 Qualcomm Incorporated Expeditious citation indexing
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
EP2955633B1 (en) 2013-03-15 2018-05-23 Huawei Technologies Co., Ltd. Data erasing method and device for flash memory
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
JP6271939B2 (ja) * 2013-10-11 2018-01-31 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10394462B1 (en) 2014-12-04 2019-08-27 Amazon Technologies, Inc. Data shaping to reduce memory wear in a multi-tenant database
US10496288B1 (en) * 2014-12-04 2019-12-03 Amazon Technologies, Inc. Mechanism for distributing memory wear in a multi-tenant database
KR102258126B1 (ko) 2015-03-19 2021-05-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
IN2015CH01601A (ja) * 2015-03-28 2015-05-01 Wipro Ltd
US10209891B2 (en) 2015-08-24 2019-02-19 Western Digital Technologies, Inc. Methods and systems for improving flash memory flushing
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10740294B2 (en) * 2017-01-12 2020-08-11 Pure Storage, Inc. Garbage collection of data blocks in a storage system with direct-mapped storage devices
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US11159167B2 (en) 2017-09-25 2021-10-26 Intel Corporation Techniques for reducing uneven aging in integrated circuits
US11550727B2 (en) * 2020-06-18 2023-01-10 Micron Technology, Inc. Zone-aware memory management in memory subsystems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4644494A (en) * 1984-02-06 1987-02-17 Sundstrand Data Control, Inc. Solid state memory for aircraft flight data recorder systems
US4896262A (en) * 1984-02-24 1990-01-23 Kabushiki Kaisha Meidensha Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory
US4642759A (en) * 1984-04-02 1987-02-10 Targa Electronics Systems Inc. Bubble memory disk emulation system
US4958315A (en) * 1985-07-02 1990-09-18 The United States Of America As Represented By The Secretary Of The Navy Solid state electronic emulator of a multiple track motor driven rotating magnetic memory
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
US4763305A (en) * 1985-11-27 1988-08-09 Motorola, Inc. Intelligent write in an EEPROM with data and erase check
US4802117A (en) * 1985-12-16 1989-01-31 Pitney Bowes Inc. Method of preserving data storage in a postal meter
JPS63113623A (ja) * 1986-10-30 1988-05-18 Nec Corp セクタバツフア制御方式
US5070474A (en) * 1988-07-26 1991-12-03 Disk Emulation Systems, Inc. Disk emulation system
US5047989A (en) * 1989-03-10 1991-09-10 Intel Corporation Chapter mode selection apparatus for MOS memory
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5131089A (en) * 1989-06-12 1992-07-14 Grid Systems Corporation Solid state disk drive emulation
US5077737A (en) * 1989-08-18 1991-12-31 Micron Technology, Inc. Method and apparatus for storing digital data in off-specification dynamic random access memory devices
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5224070A (en) * 1991-12-11 1993-06-29 Intel Corporation Apparatus for determining the conditions of programming circuitry used with flash EEPROM memory
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583859B2 (en) 2010-08-31 2013-11-12 Kabushiki Kaisha Toshiba Storage controller for wear-leveling and compaction and method of controlling thereof

Also Published As

Publication number Publication date
US5341339A (en) 1994-08-23
JPH06223591A (ja) 1994-08-12

Similar Documents

Publication Publication Date Title
JP3641280B2 (ja) フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5581723A (en) Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5357475A (en) Method for detaching sectors in a flash EEPROM memory array
US5337275A (en) Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
JP3695766B2 (ja) メモリの欠陥管理方法
US10078449B2 (en) Flash memory architecture with separate storage of overhead and user data
US5341330A (en) Method for writing to a flash memory array during erase suspend intervals
JP5222232B2 (ja) フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング
US5835935A (en) Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
EP0691008B1 (en) Flash memory mass storage architecture
US5388083A (en) Flash memory mass storage architecture
KR101174308B1 (ko) 비휘발성 저장 시스템들에서 자동 웨어 레벨링
JP4787266B2 (ja) スクラッチパッドブロック
JP5001011B2 (ja) ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
JP4588431B2 (ja) 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作
US20060161724A1 (en) Scheduling of housekeeping operations in flash memory systems
US11003361B2 (en) Wear leveling
JPH11511879A (ja) メモリシステム
TW201308074A (zh) 具有熱/冷資料分類之區塊管理之非揮發性記憶體及方法

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040818

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041116

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: 20050111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050121

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: 20090128

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100128

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100128

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120128

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130128

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130128

Year of fee payment: 8

EXPY Cancellation because of completion of term