JP3944326B2 - Flash EEprom system - Google Patents
Flash EEprom system Download PDFInfo
- Publication number
- JP3944326B2 JP3944326B2 JP02384299A JP2384299A JP3944326B2 JP 3944326 B2 JP3944326 B2 JP 3944326B2 JP 02384299 A JP02384299 A JP 02384299A JP 2384299 A JP2384299 A JP 2384299A JP 3944326 B2 JP3944326 B2 JP 3944326B2
- Authority
- JP
- Japan
- Prior art keywords
- sector
- memory
- sectors
- computer system
- address
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は一般的には半導体の電気的に消去可能なプログラムリードオンリーメモリ(EEprom)に関し、さらに詳しく言えばフラッシュEEpromチップ回路を集積したシステムに関する。
【0002】
【従来の技術】
コンピュータシステムは、通常、大量のデータを蓄積するために磁気ディスクを使用する。しかしながら、ディスクドライブはそれらが大型であること、およびそれらが高度に精密な機械的な駆動機構を必要とする点において欠点をもっている。したがって、それらは頑丈なものではなく、信頼性について問題があるばかりでなく、かなりの電力を消費する。固体記憶装置であるDRAMとSRAMはこれらの欠点を持ち合わせていない。しかしながら、それらはかなり高価なものであり、それらの記憶(揮発性)を維持するためには定常的に電力を必要とし、かつ高価である。
【0003】
EEpromとフラッシュEEpromは同様に固体記憶装置である。しかしながら、不揮発性であり、そして電力が落とされた後でも、その記憶を維持している。しかしながら、通常のフラッシュEEpromは、それらが耐えられる書込み(またはプログラム)/消去回数の数において有限の寿命をもっている。典型的にはそれらの装置は102 から103 の書込み/消去回数を過ぎると信頼できなくなる。そこで従来そのような素子、それらは半永久的なデータとかプログラムの蓄積が要求される場合であって、再プログラムの必要性にある種の制限があってもいい場合において利用されている。
【0004】
【発明が解決しようとする課題】
したがって、本発明の一つの目的はかなりの数の書込み/消去回数に耐性で信頼性を維持することができる機能を拡張したフラッシュEEprom記憶システムを提供することである。
さらに他の目的はコンピュータシステムにおける不揮発性メモリとして使用することができる改良されたフラッシュEEpromシステムを提供することである。
本発明のさらに他の目的は、コンピュータシステムの磁気ディスク装置の代わりに使用することができる改良されたフラッシュEEpromシステムを提供することである。
本発明のさらに他の目的は、消去動作において改良を施されたフラッシュEEpromシステムを提供することにある。
本発明のさらに他の目的は、改良された誤り訂正を行なうことができるフラッシュEEpromシステムを提供することにある。
本発明のさらに他の目的は、書込み動作を改良することによりフラッシュEEpromシステムに対するストレスを最小にすることができるフラッシュEEpromを提供することにある。
本発明のさらに他の目的は書込み動作において向上させたフラッシュEEpromシステムを提供することにある。
【0005】
【課題を解決するための手段】
上記および追加の目的はEEpromチップのシステムの構造や回路や技術における改良によって達成される。
【0006】
本発明の一つの特徴はチップ上のEEpromセルのアレイがセクタに構成され、そしてその各々のセルに含まれる全てのセルが同時に消去されることである。
フラッシュEEpromメモリシステムは、コントローラの制御下にある1またはそれ以上のフラッシュEEpromチップを持っている。本発明においては、チップ間のセクタの任意の組合せを選択し、それらを同時に消去することを許容している。これにより、本発明によるシステムは従来のすべてのセクタが毎回消去されるか、または一つのセクタが一時に消去される従来の構成に比べて、より早くかつ効果的になっている。本発明においては、セクタの消去のための任意の組合せ、または、消去動作において、さらに消去されることを阻止するために、選ばれないという任意の組合せを可能にしている。この特徴は最初に正確に「消去された」状態にされたセクタを余分に消去することを停止することにおいて重要であり、これによりフラッシュEEpromシステムに不必要なストレスを与えることを防止している。本発明においては、全システムにおける全てのセクタを全体として選ばないことを許容することにより、消去のために全てのセクタが選ばれないという状態を可能にしている。この全体的なリセットは、このシステムをその当初の消去のために選択されるべきセクタを選択する状態に早急に戻すということである。本発明のさらに他の特徴は、特定のチップを書込み、読みまたは書込みの動作に選択するチップセレクト信号と独立して選択が行なわれることである。したがって、EEpromチップのあるチップを他の読み、または書込み動作が行なわれている他のチップに含まれないものを消去のために選択できるということである。
【0007】
本発明の他の特徴によれば、欠陥のあるフラッシュEEpromメモリセルから発生する誤りを訂正するために使用する改良された誤り訂正回路または、技術が使用されることである。本発明の一つの特徴はセルのレベルにおいて、欠陥セルのマッピングを許容することであり、それによって同じセクタのセルで欠陥のセルを置き換えることを可能にしている。欠陥セルを置き換えられたセルのアドレスに接続するための欠陥ポインタは欠陥マップに記憶されている。欠陥のあるセルはアクセスされるたびごとに、その悪いデータは、代替のセルの良いデータに置き換えられる。
【0008】
本発明のさらに他の特徴はセクタレベルにおいて欠陥マッピングを許容することである。一つのセクタにおける欠陥セルの数がある一定の数を超えたときにその欠陥セルを含むセクタは他のセクタによって代替される。
【0009】
本発明の重要な特徴は、欠陥のあるセルや欠陥のあるセクタが発見されると、直ちにリマップされることである。これにより、誤り訂正コードを適当に修正することにより、そのシステムで生じる可能性がある誤りを最小にすることができる。
【0010】
本発明のさらに他の特徴によれば、書込みキャッシュを設けることにより、フラッシュEEpromへの書込みの回数を最小にすることができることである。これにより、このフラッシュEEpromメモリは書込み/消去回数によって発生させられる、より少ないストレスに従属させることにより、その老朽化を防止することである。最もアクティブなデータファイルは、フラッシュEEpromメモリの代わりにキャッシュメモリに書込まれる。活動のレベルが予め定められたレベルに減少されたときは、データファイルがキャッシュメモリからフラッシュEEpromメモリに書込まれる。本発明の他の利点はより早いキャッシュメモリを使用することによって増大させられる。
【0011】
本発明のさらに他の特徴によれば、コンピュータシステムメモリとして長期間、不揮発性蓄積のためにコントローラとEEprom回路チップを持つプリント回路基板が提供されるが、ハードディスクシステムの代わりに提供されることである。そしてそのプリント回路カードは本発明の他のいろいろな特徴を単独で、または組合せて盛り込むことができる。
【0012】
さらに他の目的,特徴および本発明の利点は、添付の図面を参照して本発明の好適な実施例の以下の記載により理解されたい。
【0013】
【発明の実施の形態】
(EEpromシステム)
本発明の種々の特徴が盛り込まれているコンピュータシステムが一般的に図1Aに示されている。典型的なコンピュータシステムはバスライン23に接続されているマイクロプロセッサ21、それにより主システムメモリ25にランダムアクセスすることができ、そして少なくとも1または2以上の入出力装置27、例えばキーボード、モニタ、モデム等々が設けられている。典型的なコンピュータシステムバス23に接続されている他の主たるコンピュータの要素は大量の長期間使用可能な不揮発性メモリ29である。典型的にそのようなメモリは10メガバイトのデータ蓄積能力をもつディスク駆動システムである。データは、システムの中の揮発性メモリ25の中に容易に引き出されて利用され、容易に補充されたり、または変えられたり、変更されたりする。
【0014】
本発明の一つの態様は、前記のようなディスクドライブのシステムをある半導体メモリに変えることであるが、その際に不揮発性,メモリへのデータの消去および再書込の容易性,アクセス速度,コストおよび信頼性を犠牲にしないことである。これは電気的に消去可能でありプログラム可能なリードオンリーメモリ(EEprom)の半導体回路チップを用いることによって、完成される。この形式のメモリはハードディスクで磁気的なメモリ媒体を駆動するものに比較して、動作電力が少なく、非常に軽量という付加的な利点を備えるものであり、これにより電池で動作させられる可搬型のコンピュータに適しているということができる。
【0015】
全体の記憶装置29はコンピュータのシステムバス23に接続されているメモリコントローラ31とEEpromの集積回路チップのアレイ33から構成されている。データと命令はコントローラ31からシリアルデータ線35を介して一義的にEEpromアレイ33に通信される。同様にして、データとステータス信号は、EEprom33からコントローラ30にシリアルデータ線37を介して通信される。図1Aにはコントローラ31とEEpromアレイ33間のその他の制御やステータス回路は示されていない。
【0016】
図1Bを参照すると、コントローラ31は、好ましくは一つの集積回路チップ上に形成されている。システムバス23の一部であるシステムアドレスとデータバス39はシ、ステム制御線41に接続されており、そのシステム制御線41は読込み,書込みおよにその他通常のコンピュータシステム制御線を含んでいる。
【0017】
EEpromアレイ33はEEpromの集積回路チップ43、45、47等々を複数個含んでいる。それぞれはインタフェース回路40からのそれぞれのチップセレクトおよびイネーブル線49、51、53を含んでいる。インタフェース回路40は、さらに回路57とシリアルデータ線35、37とのインタフェースとして働く。EEpromチップ43、45、47に書込まれるか、または読出されるメモリの位置アドレスとデータはバス55、論理およびレジスタ回路57、さらに他のバス59を通してメモリチップ43、45、47等々に伝達される。
【0018】
図1Aと図1Bに示されている全体のメモリ29は、1枚のプリント回路カードに適当なメモリの大きさで製造されている。図1Bの種々のシステムバス39と41は他のコンピュータシステムとともに、そのようなカードの接続ピンに接続されている。さらに前記カードやその要素には種々の標準的な電力供給電圧(図示せず)が接続されている。
【0019】
大量のメモリのためには、一つのアレイ33に形成されているものでは十分でない場合がありえる。そのような場合には、制御チップ31のシリアルデータ線35、37に付加的なEEpromアレイを接続することができる。このことは好ましくは一つのプリント回路カードによって行なわれることが望ましいのであるが、それをするために十分なスペースのない場合には、1またはそれ以上のEEpromアレイを第2のプリント回路カードの上に形成し、そしてそれを物理的に第1のものの上に設けるか、設けてそれを共通のコントローラチップ31に接続することによって行なうことができる。
【0020】
(メモリ構造の消去)
蓄積されるデータがファイルまたはブロックとして行なわれるシステムデザインにおいては、そのデータは定期的に改定されたり、または新しい情報が挿入される必要がある。そして、もはや不必要となった情報の上に、さらに書込みを行なうことにより、追加の情報を収容することが望まれる場合がある。フラッシュEEpromメモリにおいては、メモリセルはまず初めに情報を蓄積する前に消される必要がある。すなわち、このことは書込み(またはプログラム)の操作の前に常に消去の動作が先行されるということである。
【0021】
従来のフラッシュ消去メモリ装置においては、消去の動作はいくつかの方法があり、その一つより行なわれる。例えば、インテル・コーポレイションの27F−256、CMOSはフラッシュEEpromにおいては、全体のチップが一時に消去される。もしチップの中の情報の全てが消去されるべきではないときには、まず初めに一時的にその情報が救済されなくてはならない。そしてそれは、他のメモリ(典型的にはRAM)に書込まれる。そしてその情報はその装置に再度プログラムすることによって、不揮発性のフラッシュ消去メモリの中に回復される。これは時間を要することであり、費用もかかり、作業空間も必要である。
【0022】
他の装置、例えばシーク・テクノロジー・インコーポレイテッドのモデル48512フラッシュEEpromチップにおいては、メモリはブロック(またはセクタ)に分割されており、それらは別々に分離して消去可能である。しかしながら、毎回一つずつ行なわなければならない。希望するセクタの選択により、消去の段階に入り、指定された領域が消去される。
一時的な記憶装置の必要はなくなるのであるが、種々のメモリ領域の消去は依然として時間がかかる逐次作業を必要とする。
【0023】
本発明においては、フラッシュEEpromメモリはいくつかのセクタに分割され、そこにおいてそのセクタに含まれるセルは同時に消去することができる。各々のセクタは、別々にアドレスされ、そして選択的に消去される。最も重要な特徴は一緒に消去すべきいくつかのセクタの組合せを選択できることである。これにより、各々を独立して消去するという従来の技術に見られるものに比較してより早い消去システムを提供することができるのである。
【0024】
図2は、消去のために選ばれたいくつかのセクタを略図示している。一つのフラッシュEEpromシステムは、例えば、201、203、205のように1またはそれ以上のフラッシュEEpromチップを含んでいる。それらは線209を介してコントローラ31と通信している。典型的にはコントローラ31それ自身は図示されていないマイクロプロセサシステムと通信している。各フラッシュEEpromチップの中のメモリはセクタに分離されており、その一つのセクタの中の全ての記憶セルは同時に消去できる。使用者に利用可能なものとして、例えば各々のセクタは512バイト(すなわち512×8セル)あり、一つのチップは1024セクタを持っている。各セクタは独立してアドレス可能に分割されており、そして例えばセクタに211、213、215、217等のように複数のセクタが消去可能に選択される。図2に図示されているように、選択されたセクタは一つのEEpromチップに限られるか、またはシステム中のいくつかのチップ内に分散させられることができる。選ばれたセクタは同時に消去されるであろう。この能力は、この発明によるメモリシステムに従来の構造のものよりも、より早い操作を許容するものである。
【0025】
図3Aは、フラッシュEEprom(例えば図2のチップ201など)で、1またはそれ以上のセクタが消去のために選択または選択されなかった状態を示すブロックダイヤグラムである。実際上は各セクタ、例えば211、または213が各セクタに関連して設けられている、例えば211、213のような消去可能レジスタの状態の設定または、設定によりタグをつけるとか選択されるかによって、各々のセクタ221、223が選択される。選択と引き続く消去動作は、コントローラ31(図2参照)のコントロールの下に行なわれる。回路220はコントローラ31と複数の線209によって通信させられている。コントロールからのコマンド情報は直列インタフェース227を介してコマンドレジスタ225によって、回路220内で捕捉される。そしてそれは、コマンドデコーダ229によってデコードされ、コマンドデコーダ229は種々の制御信号を出力する。同様にアドレス情報はアドレスレジスタ231によって補足され、そしてアドレスデコーダ233によってデコーダされる。
【0026】
一例として、セクタ211を消去のために選択するためには、前記コントローラはセクタ211のアドレスを回路220に送る。このアドレスは、線235の中にデコードされ、そしてそれは、レジスタ221の出力239をハイ(HIGH)にセットするためにイネーブルバス237の消去イネーブル信号と共同して組み合わせて用いられる。これにより、セクタ211は引き続く消去動作が可能になる。同様にして、もしセクタ213も同様に消去されるべきであると要求されているときは、レジスタ223のその関連するレジスタ23もハイにセットされるであろう。
【0027】
図3Bは、レジスタ221または223の構造をより詳細に示してある。消去イネーブルレジスタ221はSET/RESETラッチである。そのセット入力端子241はアドレスデコード線235によってゲートされたバス237の消去イネーブル信号セットから得られる。同様にして、リセット入力243は線235中のアドレスデコードによってゲートされるバス237中の消去イネーブル信号をクリアするものから得られる。このようにして消去イネーブル信号または消去イネーブル信号をクリアする信号がすべてのセクタに発生させられたときにアドレスされたセクタのみにその信号が有効となる。
【0028】
全ての消去されるべきセクタが選択された後にコントローラは回路220、同様に全てのグローバル消去コマンドが251によって現れているときに線209に沿って消去のための高電圧が発生させられる。かくしてその装置は、全ての選択されたセクタ(例えばセクタ211と213)が同時に消去されるでろう。チップ内の希望するセクタが消去されることに加えて本発明による構造では、同時消去のために異なる種類のチップ上のセクタの選択を許容している。
【0029】
図4の(1)〜(11)は、図3Aの回路220に関連して用いられるアルゴリズムを図示している。図4の(1)でコントローラは回路220の中でデコードされた消去されるべきセクタに関連させられている消去イネーブルレジスタにアドレスをシフトさせる。図4の(2)においてコントローラはアドレスされたセクタの消去イネーブルレジスタへアドレスデコードされた信号をラッチするために用いられる消去イネーブルコマンドをセットするためにデコードする。このタグはそのセクタの引き続く消去のためである。図4の(3)において、もしそれ以上のより多くのセクタがタグが付されるべきであるときには消去されるべき全てのセクタにタグが付加されるまで図4の(1)から図4の(2)に示されている関連して記述されている操作を繰り返す。消去されるべき全てのセクタにタグが付された後にコントローラは図4の(4)に示されている消去のサイクルを開始させる。
【0030】
最適化された消去の構成は同時継続中の米国特許出願に開示されている。それらは同時出願継続中の米国特許出願第204,175号でエリヤホウ ハラリ博士により1988年6月8日に出願されたものと本出願と同時に、サンジャイ メハロトラとハラリ博士によって出願された「多状態EEprom読み書き回路およびその技術」に示されているものである。フラッシュEEpromセルは消去パルスを印加することによって消去され、引続き読みによりそのセルが消去されて消去状態にあるかどうかということが検証される。もしそうでない場合、そのセルが消された状態にあると検証されるまでパルスの印加と検証が繰り返される。この制御された方法によって消去することによりセルはEEpromを老化させるかまたはプログラムを困難にするであろう過剰消去にさらされないようにする。
【0031】
選択されたセクタのグループが消去サイクルにあるときに他のものはより早く消去された状態に達することもある。本発明の他の重要な特徴は選択されたグループの中から消去用に検証されたセクタを除去する能力であり、これにより過剰消去を防いでいる。
【0032】
図4(4)を再度参照すると、全ての消去されるべきセクタにタグが付されるとコントローラはタグが付されたセクタのグループの消去サイクルを開始する。図4の(5)では、消去が行なわれるべきタグEEpromチップ中にグローバル消去イネーブルと呼ばれるグローバルコマンドをシフトさせる。これは図4の(5)において、コントローラが一定の持続する期間、一定の値だけ消去電圧(VE)を上げるということになる。コントローラはこの電圧を消去期間経過の終わりに低下させる。図4の(6)において、コントローラは消去のために選択されたセクタの読み出し検証を実行する。図4の(7)において、セクタのいずれもが検証されない場合には図4の(5)〜(7)に図示されているシーケンスが繰り返される。図4の(8)から図4の(9)において、もし1または2以上のセクタが消去されたと検証されたときは、それらはそのシーケンスから取り出される。同様に図3Aを参照すると、このことは各検証されたセクタに対応するコントローラのアドレスをバス237の中の消去コマンドをクリアすることによって、消去可能なレジスタを低電圧にする。図4の(5)から(10)に示されているシーケンスは図4の(11)に示されているようにそのグループが消去されたと検証されるまで繰り返される。その消去サイクルの完了によってコントローラは不動作状態(NOP)命令に移行し、そして、グローバル消去可能コマンドは引き上げられて誤った消去から保護される。
【0033】
どのセクタを消去すべきであるか、消去すべきでないかを選択する能力は、どの消去を止めることが有効であるかと同様に有効である。これにより遅く消去されるセクタより前に消去が完了されたものが消去のシーケンスから分離されてその装置により以上のストレスを与えることから保護することができる。このことにより、システムの信頼性を向上させることができるであろう。もしセクタが良くないものであるとき、あるいはある理由によって使用できないときそのセクタをとばし、そのセクタにおいて消去が起こらないようにすることに利点がある。例えばもしあるセクタが欠陥をもっていて回路の短絡があったならば、それはより多くの電力を消去するであろう。本発明によっては消去サイクルをとばすことにより、そのチップの中で消去に必要とする電力を減少させることができるという有意義なシステムの利点を得ることができる。
【0034】
その装置の中で消去されるべきセクタを選びだす能力を持つことはそのシステムの電力消費を少なくするという他の配慮に繋がる。本発明における消去構造の弾力性により、そのシステムの電力の能力にしたがって、消去の要求を採用することができる。これは、このシステムをソフトウエアによって、異なった消去の状態を与えるか、または他のシステムとの間の基本的な構造によって与えるかによって成し遂げられるであろう。それは例えばラップトップコンピュータのようなシステムで電圧のレベルを監視することによって消去の量を変化するようにコントローラにさせることもできるだろう。
【0035】
本発明におけるシステムのさらに他の動作の能力は、すべての消去イネーブルラッチをクリアするフラッシュEEpromチップにリセットコマンドを発する能力であり、そして消去サイクルがさらに発生しないようにすることである。これは図3Aおよび図3Bに線261のリセット信号によって図示されている。全てのチップに不変的にこの作業を行なうことによって全ての消去イネーブルレジスタをリセットする時間を短くすることができるであろう。
【0036】
その他の付加的な能力はチップセレクトに無関係に消去動作をする能力をもつことである。あるメモリチップにおいて消去動作が開始されるとコントローラは他のメモリチップにアクセスしてそれらの読み、書きの動作をさせることができる。加得るに消去装置の消去を行なっているということが選択され、そして次の消去のためのコマンドのアドレスを蓄積することもできる。
【0037】
(欠陥マッピング)
メモリ装置における物理的な欠陥は困難な誤動作を巻き起こす。データは、欠陥のあるセルに蓄積される度に破壊されてしまう。従来のメモリ装置、例えばRAMやディスクにおいては、製造過程で生じるあらゆる物理的な欠陥は工場において修正されている。RAMにおいては、予備の冗長メモリセルがチップに設けられていて、それが欠陥セルの代わりに接続される。従来のディスクドライブ装置において媒体が不完全であるときには、欠陥の問題となりやすかった。これらの問題を解決するために製造業者は存在するこれらの欠陥についての様々な方法を案出しており、そしてもっとも通常用いられるものはセクタの欠陥のマッピングである。通常のディスクシステムにおいては、媒体はシリンダとセクタに分割されている。セクタはデータが蓄積される基本単位である。システムにおいて、種々のセクタに分けられ、悪いものであるとマークをつけられたものは、そのシステムにおいては使用されないようにする。これは、種々の方法によって実現されている。欠陥マップのテーブルが使用されるディスクの特定の位置に設けられており、インターフェイスコントローラを介して利用される。さらに、欠陥のある悪いセクタは物理的に特殊なIDが施されて、IDとフラッグマーカーが付されている。欠陥のあるものがアドレスされたときは、そのデータは通常は他の代替位置に配置されている。この代わりのセクタの要請のために、余分なセクタがある間隔で、またはある位置離れて設けられている。これは、メモリの容量を減少させるものであり、どのように代わりのセクタを設けられているかという問題を提供している。
【0038】
本発明の一つの重要な応用は、フラッシュEEpromチップのアレイによって実現されるシステムによって、通常のディスク記憶装置を置き換えることである。このEEpromシステムは従来のディスクと同等、またはそれ以上であるように設定することが好ましく、「固体ディスク」とみなすことができる。
【0039】
そのような固体メモリ装置により作られた「ディスク」システムにおいては、欠陥を効率的に処理するために、低価格でそれが成し遂げられるという配慮が必要となる。本発明の他の重要な特徴は、より多くのメモリを可能な限り保存することができるように誤り訂正を可能にすることである。現実問題として、それはセルごとに欠陥セルが捜し出されることにより全体のセクタ,例えば(通常512バイト)において、欠陥が起こる度に捨ててしまうことをなくすことである。この提案は特にフラッシュEEprom媒体に適している。なぜならば、大多数の誤りはビットの誤りとして起こり、従来のディスク媒体に通常みられるストリームが長い近接した欠陥ではないことによる。
【0040】
RAMと磁気ディスクの両方の先行技術においては、一度その装置が工場から出荷されるとそこでは、通常の動作の後に現れる物理的欠陥から生ずるハードの誤りを置き換えるための手段がほとんどもしくは全くないことである。そのために、欠陥の訂正は主として誤り訂正コード(ECC)を用いることに依存して行なわれている。
【0041】
フラッシュEEprom装置の性質上、書込み/消去の回数が増加するにしたがって、セルの欠陥が次第に増加することが予想できる。使用して蓄積されるハードの誤りが最終的にはECCを圧倒してしまい、その装置を使用不能なものにしてしまうのである。本発明の一つの重要な特徴は、そのシステムのハードの誤りが発生するごとに、そのシステムのハードの誤りを訂正するという能力をもっていることである。また、読出し操作の期間においても、欠陥セルが発見され、そしてECCにより位置づけられる。欠陥のセルが特定されると直ちにコントローラはその欠陥セルを通常はそれと同じセクタに存在する空きセルによって置き換えるための欠陥マッピングを供給するであろう。この動的なハードの誤りの訂正は、通常の誤り訂正スキームに加えて装置の寿命を有効に引き延ばすことができる。
【0042】
本発明の他の特徴は、誤り訂正へのアプローチに適していることである。誤り訂正コード(ECC)は常時ソフトの誤りを訂正するとともに、発生するであろうハードの誤りの訂正に利用される。ハードの誤りが検出されるとすぐに、欠陥マッピングはその欠陥セルをそれの同じセクタブロックに存在する予備のセルと置き換えるために使用される。欠陥セルの数がその特定のセクタのための欠陥マッピングの能力を越えた場合においてのみ、その全体のセクタは、通常のディスクシステムのように置き換えられる。このスキームにより、信用性を損なうことなく最小の損失で食い止めることができる。
【0043】
図5は、セルをリマッピングするスキームのメモリ構造を図示したものである。
前述したように、このフラッシュEEpromメモリはセクタに分割されており、各セクタに属するセルは同時に消去可能である。典型的なセクタ401のメモリ構造は、データ部403と予備(または影)部405に分けられている。データ部403はユーザによって使用可能なメモリ空間である。予備部405はさらに欠陥データの代替部領域407、欠陥マッピング領域409、ヘッダ領域411、およびECCと他の領域413に分けられている。これらの領域は、コントローラにより、ヘッダやECC等のように欠陥領域や他のオーバーヘッド情報を操作するために使用することもできる情報を含む。
【0044】
セクタの中で、一つの欠陥セルが発見される度に欠陥データ領域の代替部407の中の一つの良いセルが欠陥セルと指定されたデータをバックアップするために割当てられる。かくして、もし欠陥セルにデータが誤って記憶されたとしても、バックアップセルの中には誤りのないコピーが記憶される。欠陥セルとバックアップセルのアドレスは欠陥マップ409の中の欠陥ポインタに記憶される。
【0045】
ユーザデータ領域403と予備部405間は、厳格に区別される必要がないというように理解されたい。各々に割当られた領域の相対的な大きさは論理的に再割当することができる。さらにまた、種々の領域のグループ分けは、主として議論のために必要であって、物理的に必要なものではない。例えば欠陥データ領域の代替部407は、予備部405の中にそれが専有する領域はユーザーは利用できないものであることを示すだけのものである。
【0046】
読出し動作において、コントローラは最初にヘッダ、欠陥マップ、それから代替欠陥データ部分を読出す。その後実際のデータを読む。それは欠陥マップによって欠陥セルのトラックと代替データの位置を保っている。欠陥セルに遭遇するために、コントローラはその不良データを欠陥代替セルの良いデータで代用する。
【0047】
図6は、好適な実施例におけるの読出データパス制御を図示している。メモリ装置33はコントローラ31の制御下にある複数のフラッシュEEpromチップを含んでいる。コントローラ31それ自体は、マイクロプロセッサ(図示せず)の制御下にあるマイクロプロセッサシステムの一部を形成している。セクタの読出しを開始するにあたり、マイクロプロセッサはコントローラ中のアドレス発生器503に読出し操作を開始するためのアドレスをロードする。この情報は、マイクロプロセッサのインターフェイスポート505を介してロードされる。それから、マイクロプロセッサはDMAコントローラ507にバッファメモリまたはデータリードが送られるべきアドレスバスのスタート位置をロードする。それからマイクロプロセッサはヘッダの情報(ヘッド、シリンダ、セクタ)を保持レジスタファイル509にロードする。最終的にマイクロプロセッサはコマンドシーケンサ511にコントローラ31への制御前にリードコマンドをロードする。
【0048】
制御開始後に、コントローラ31はまず初めにセクタのヘッダにアドレスし、そしてユーザが指定したアドレスの位置でメモリがアクセスされたことを検証する。これは次のシーケンスによって実現される。コントローラはメモリ装置33の中の一つのメモリチップ(チップセレクト)を選択し、そしてヘッダ領域のアドレスをアドレス発生器503の出力からメモリ装置33の選択されたメモリへシフトする。コントローラはマルチプレクサ513をスイッチし、そしてメモリ装置33にリードコマンド出力をシフトする。それからメモリ装置は送られたアドレスを読み、そしてコントローラにアドレスされたセクタからの直列データの送信を開始する。コントローラ中のレシーバ515はこのデータを受け、そしてそれを並列形式にする。一つの実施形態においては、1バイト(8ビット)が一度にコンパイルされ、マイクロプロセッサによって保持レジスタファイル509に予め記憶されたヘッダ情報と受信したデータとを比較する。もし、その比較の結果が正しければ、正しい情報、正しい位置がベリファイ(検証)されて動作は継続する。
【0049】
次にコントローラ31は欠陥ポインタを読出し、これらの不良アドレスの位置をホールディングレジスタファイル509にロードする。これにコントローラの欠陥データの読出しが続き、その欠陥データの代替はそれが書込まれたときに、その誤ったビットを置き換えるために書込まれているものであった。代替ビットは、欠陥データの代替ファイル517の中に記憶されており、それはデータビットが読出されるときにアクセスされる。
【0050】
ヘッダがマッチしており、そして欠陥ポインタと代替ビットのロードが完了すると、コントローラは読まれるべき希望するセクタの最低のアドレスのシフトアウトを開始する。メモリ装置33の中のセクタからのデータはコントローラチップ31に移送される。受信機515はそのデータを並列形式に変換し、各バイトを一時的なホルダであるFIFO519へコントローラから送り出されるべく移送する。
【0051】
パイプライン構造が受信機515から、FIFO519へコントローラを開始してデータがゲートされるときの有効な処理能力を提供するために用いられる。各々のデータビットがメモリから受信されたときに、コントローラは送られるべきデータのアドレス(アドレス発生器507に蓄積されたもの)を欠陥ポインタマップ(レジスタファイル509に蓄積されたもの)と比較を続ける。もし、比較器521の出力のマッチにより、そのアドレスが悪い位置にあると決定されると、受信器515により受信されたメモリからの悪いビットは、その位置の良いビットと置き換えられる。良いビットは欠陥データ代替ファイルから得られる。これは受信機515からの悪いビットの代わりに、欠陥データ代替ファイルからの良いビットを受信するようにマルチプレクサ523をスイッチングすることによってなされる。FIFOの中に訂正されたデータがあるときに、それはバッファメモリまたはシステムメモリ(図示せず)へ送られるべき状態にある。そのデータはコントローラのFIFO519からコントローラのDMAコントローラ507によってシステムメモリへ送られる。このコントローラ507はそれからリクエストしてシステムバスへのアクセスを得、そして一つのアドレスを出し、そしてデータを出力インタフェース255経由でゲートしてシステムバスへ出す。これは各バイトがFIFO519へロードすることによってなされる。訂正されたデータがFIFOにロードされると、それはまたECCハードウエア527にもゲートされ、そこでデータファイルはECCによって処理される。
【0052】
このように前述した方法により、メモリ装置33から読まれたデータはコントローラ31を介して前記システムに送り出されるべくゲートされる。このプロセスはアドレスされたデータの最後のビットが移送されるまで続く。
【0053】
前もって検出された欠陥セルの欠陥マッピングにもかかわらず、最後のマッピング移行に新しいハードの誤りが発生するかもしれない。ダイナミック欠陥マッピングが恒久的に新しい欠陥セルを押し出すにしたがって欠陥マッピングの間に発生するであろう最新のハードの誤りはECCによって十分に取り扱われる。
データがコントローラ31によってゲートされるにしたがってコントローラは蓄積されていた値がちょうど計算された残りの値とマッチするかどうかを決定するために、ECCビットをECCハードウエア227へゲートとして入れる。
もしそれがマッチすればシステムメモリに移送されたデータは正しいものであったとして、読み込み動作は完成させられた。しかしながら、もしECCレジスタに誤りがあったならば、システムメモリに送られるデータについての訂正計算が行なわれる。そして訂正されたデータが再送信される。誤りを計算する方法はハードウエアでもソフトウエアでも通常の方法によって行なわれる。ECCは誤りに原因する欠陥セルについての計算と位置出しをすることができる。これはコントローラ31によって欠陥セルが発見されたセクタに関連して欠陥マップを更新するのに用いられる。このようにしてハードエラーは常にフラッシュEEpromシステムから除かれる。
【0054】
図7は、好適な実施例における書込みデータパス制御を図示している。書込みの順序の最初の部分は既に説明した読みのシーケンスと共通している。マイクロプロセッサはまず初めに読みのシーケンスと同様にメモリ装置33とDMAのためのアドレスポインタをロードする。それは望まれるヘッダをアドレス発生器503にロードし、そしてコマンドキューをコマンドシーケンサ511にロードする。コマンドキューはリードヘッダコマンドファーストと一緒にロードされる。その後、制御はコントローラ31に渡される。コントローラはそれからアドレスとコマンドをメモリ装置33にリードシーケンスと同様にゲートする。メモリ装置は、ヘッダデータをコントローラの受信機515を介して戻す。コントローラは受信したヘッダデータを予期された値(ホールディングレジスタ509に蓄積されていたもの)と比較する。もし比較の結果が正しかったならば、正常な位置がベリファイされたものであって、シーケンスが連続する。それからコントローラはメモリ装置33からの欠陥アドレスポインタをホールディングレジスタファイル509にロードし、代替データを欠陥データ代替ファイル527へロードする。
【0055】
次にコントローラはシステムメモリ(図示せず)から書込みデータのフェッチを開始する。コントローラはこれをシステムバスにアクセスすることにより行い、記憶またはバスアドレスを出力し、リードサイクルを行なう。コントローラはデータをインプット入力インタフェース603を介してFIFO601に引き込む。そしてコントローラはそれから、スターティングセクタのアドレス(最も低いバイトのアドレス)をアドレス発生器503から選ばれたメモリ装置33へシフトする。これはFIFO601からのデータによって追従される。これらのデータはマルチプレクサ605と513を通じて送られ、そしてメモリ装置33に送り出される前に直列フォーマットに変換される。このシーケンスは書きサイクルのためのすべてのバイトが選ばれたメモリにロードされるまで続く。
【0056】
データがFIFO601からゲートされて、選択されたメモリ33にゲートされるときに効果的な有効な処理能力を提供するためにパイプライン構造が採用されている。データはFIFO601からゲートされてECCハードウエア527へ送られ、ここにおいて、残りの値はECCの中で計算されるであろう。次のステージにおいてデータがマルチプレクサ605と513を介してメモリ装置に送られているときに比較器521はアドレス発生器503からのそのアドレスをホールディングレジスタファイル509にある欠陥ポインタのアドレスと比較する。
マッチが発生したときは、欠陥位置が書込まれようとしていることを示し、コントローラはこのビットを欠陥データ代替ファイル517へ記憶する。同時にメモリに送られる全ての誤りビットは0として送られるであろう。
【0057】
選ばれたメモリ装置の中に書込みサイクルのバイトがロードされた後に、コントローラはプログラムコマンドをメモリ装置に発生して書込みサイクルを開始する。フラッシュEEprom装置のための書込み操作の理想的な構造は先に引用した同時継続中の米国特許出願第204、175号であって、一つは多状態EEpromの読み、書き回路と技術と呼ばれているものに示されており、前記関連する部分をここで参考として挙げる。簡単に言えば、書込みのサイクルの間中にコントローラはプログラム(または書込み)電圧パルスを供給していることである。これは、全てのビットのプログラムが適当であるかということを決定するためのベリファイ読みが続く。もし、そのビットがベリファイされなかったときは、コントローラはプログラム/ベリファイサイクルを全てのビットが正しくプログラムされるまで繰り返す。
【0058】
もし、一つのビットがプログラム/ベリファイサイクルを延ばした後でもベリファイに失敗したときは、コントローラはそのビットを欠陥ビットであると指定し、そしてそれにしたがって欠陥マップを更新するであろう。更新は欠陥セルが検出されるや否や、ダイナミックに行なわれる。同様な操作が消去ベリファイの失敗の場合においても、採用される。
【0059】
全てのビットがプログラムされてベリファイされた後に、コントローラはFIFO601から次のデータビットをロードし、アドレスセクタの中の次の位置をアドレスする。そしてコントローラはそれから他のプログラム/ベリファイシーケンスを次のバイトについて行なう。このシーケンスはそのセクタの最後のデータまで、連続して行なわれる。一度このことが発生するとセクタ(図5参照)に関連する影のメモリ(ヘッダ領域)をアドレスし、そしてECCレジスタの内容をこの領域に書込む。
【0060】
さらに、欠陥があるとしてフラグがたてられそして欠陥データ代替ファイル516の中に蓄積されたビットの集合は代替欠陥データ位置(図5参照)に書き込まれ、これによって引き続く読みに使用される良いビットの価値を保つ。一度これらのデータグループが書込まれ、そして検証されるとそのセクタの書込みは完全なものと考えられる。
【0061】
この発明は全体のセクタの欠陥をマッピングする規定をもっているが、しかしそれはその特定のセクタの欠陥セクタマッピング能力を越える欠陥が存在した後のことである。各セクタの中における欠陥セルの数としてカウントが保存される。
あるセクタの中の数がある一定量を越えたときに、コントローラはそのセクタは欠陥としてそれを他のセクタにマップする。関連するセクタの欠陥ポインタは欠陥セクタマップの中に保存されるであろう。セクタ欠陥マップは最初の欠陥セクタにおいて、その余分な領域が欠陥がない場合において設け、そのセクタの中に設けられる。しかしながら、セクタのデータ領域が大量の欠陥が発生した場合においては、その余白の領域も同時に欠陥が多くなる可能性が強い。
【0062】
そのような理由により、他の実施例においては、コントローラに保持される他のメモリの中に、セクタマップを位置させることが好ましい。メモリはコントローラのハードウエアか、またはフラッシュEEpromのメモリから離れた部分に位置させられるであろう。コントローラがアクセスで多領域のアドレスを与えられると、そのコントローラはこのアドレスをセクタ欠陥マップと比較する。
もし、マッチが起こるならば欠陥セクタへのアクセスが拒否され、そして欠陥マップの中に存在する代替アドレスが入力され、そして対応する代替セクタが代わりにアクセスされる。
【0063】
さらに他の具体例においてはセクタの再マッピングはマイクロプロセッサによって遂行される。マイクロプロセッサは入ってきたアドレスとアドレスを見てそれをセクタ欠陥マップと比較する。もしマッチがあれば、それはコントローラにコマンドを発生する代わりに、新しいコマンドとして他の位置を代替する。
【0064】
固体ディスクのより速いスピードから離れて、さらに他の利点は、機械的な部分が存在しないということである。ディスク駆動に本来的に存在する回転性に原因する長いサーチ時間は存在しない。さらにこれに加得るに、長い同期時間、同期マークの検出時間、書込みギャップ等も必要でない。かくして、どこに読出されるべきデータが存在するか、またはどこに書込まれるべきであるかという位置にアクセスするために必要なオーバーヘッド時間はより少なくなる。
これらの単純性、および無理がないということは、オーバーヘッドを少なくしたより速いシステムとして現れる。加得るに、ファイルはメモリの中に希望する任意のアドレスの順序で配列され、そしてコントローラには必要なデータにどうして得るかということが必要なだけである。
【0065】
本発明のさらに他の特徴は欠陥マッピングは、セクタにまたはセクタからの移動させられるデータの流れを妨げる必要がない状態で構成されていることである。
ブロック中で誤りを含むデータはそれに係わらず返送され、そしてそれは後に訂正される。順次アドレスを保存することによって、それ自身高い速い速度を得ることができるであろう。さらにまた、それはその装置の読み書きのデータパスにおける効果的なパイプライン構造の実現を許容する。
【0066】
(書込みキャッシュシステム)
キャッシュメモリは一般的に遅いアクセスの装置のシステムの能力の速度を上げるために用いられている。例えば、コンピュータシステムにおいてディスク記憶装置からのデータのアクセスは遅い。そしてもしデータがより速いラムRAMから得られるならば、スピードはより速くなるであろう。典型的に、RAMのシステムの部分はディスクからもっとも最近にアクセスされたものを仮に保持するためにキャッシュが使用されている。次にそのデータが要るときには遅いディスクの代わりにより速いキャッシュからそれを得ることができる。そのシステムは、同じデータが繰り返されて使用されるような状況において、うまく動作する。これは最も多くの構成やプログラムにおいて見られるものであり、これはコンピュータというものはプログラムを走らせているときには、非常に狭い記憶領域でのみ働く傾向があるからである。キャッシングの他の例は通常より安いが、しかし遅いDRAMにアクセスする時間を速くするために、より速いSRAMキャッシュを利用することである。
【0067】
ほとんどの従来のキャッシュの設計は、メモリからの読み取りのスピードアップのための読出し(リード)キャッシュである。ある状況においては、メモリに書き込む速度を上げるために、書込みキャッシュが使用される。しかしながら、キャッシュには同時に書込まれるのに対して、システムメモリ(例えばディスク)への書込みの場合においては、データはそれらが発生するごとにその都度直接書込まれる。これは電力がなくなったときに更新され、ファイルが無くなってしまうという懸念のために、このことが成されるのである。もし書込みデータがキャッシュメモリ(揮発性)にのみに記憶されているときに、電力が無くなるということは新しく更新されたデータが、システムメモリ(不揮発性)の中の古いデータを更新する前に、キャッシュメモリから更新されたファイルがなくなってしまうということである。これらのファイルが引き続き利用されるときには、そのシステムは古いデータに基づいて操作されるということになるであろう。主メモリを毎回書き込む必要性は、キャッシュ機構を書込みのために壊してしまうことになる。読出しキャッシュにおいては、この懸念は全くなく、キャッシュからなくなるであろうデータはディスクでバックアップされているからである。
【0068】
本発明においては、フラッシュEEpromのシステムは従来のディスク形の記憶装置をもつシステムに置き換えられて用いられる。しかしながら、フラッシュEEpromは過度のプログラム(消去サイクル)による消耗に曝されている。
同時継続中の米国特許出願第No204、175号,発明の名称「多状態のEEprom読みおよび書きサーキットとその技術」、サンジャイ・メハロポラとエリヤホウ・ハラリ博士により本発明と同時に出願された願書に開示されている改良されたフラッシュEEpromメモリ装置においてさえ、耐久力の限界はほぼ106 のプログラム/消去サイクルに限定されている。この装置の寿命を10年に引き延ばして考えてみると5分間に1回ずつの消去に限定される。これは通常のコンピュータの使用においては限界的なものである。
【0069】
この問題を解決するために、キャッシュメモリシステムは、非常に多くのプログラム/消去サイクルに耐えることから切り離すことができるように新規な方法で用いられる。キャッシュの第1次的な機能は、フラッシュEEpromメモリに書込むために用いられ、従来のキャッシュの使用とは違ってフラッシュEEpromメモリからの読みには用いない。フラッシュEEpromメモリに書込む代わりに、毎回データは更新され、そのデータはフラッシュEEpromメモリへ送られる前に、キャッシュの中で、数回動作させられるであろう。これにより、フラッシュEEpromメモリへの書込みの回数を減らすことができる。さらにまた、主としてより速いキャッシュメモリの中に書込むことにより、より遅いフラッシュEEpromへの書込みの回数を減らし、全体のシステムにおける書込み効率を増強させることができるという利点が得られる。
【0070】
本発明を実現するにあたって、比較的小さい大きさのキャッシュメモリが極めて有効である。これは電源断の間に揮発性のキャッシュメモリの中におけるデータ損失の問題を克服するのに役立つ。そのようなときには、キャッシュメモリを十分長い時間、十分な電源で維持することと、フラッシュEEpromメモリの中に特別に予約された空間である不揮発性メモリの中にそれらのデータを詰め込んでおくということもできる。このシステムにおける電力断、または電力障害において、書込みキャッシュシステムは全体のシステムから切り離されて、準備されていた再充電可能な電力供給はキャッシュシステムの電源とフラッシュEEpromメモリに準備された空間への電源にのみ利用される。
【0071】
図8は、本発明による装置のコントローラの一部を形成するキャッシュシステム701を略図的に示した図である。キャッシュシステム701の一方側はフラッシュEEpromメモリアレイ33に接続されている。一方側において、それはマイクロプロセッサシステム(図示せず)にホストインタフェース703を介して接続されている。このキャッシュシステム708は2つのメモリをもっている。1つは一時的に書込みデータファイルを保持するキャッシュメモリ705である。他はキャッシュメモリ705の中に保持されるデータファイルに関連する情報を記憶するためのタグメモリ709である。メモリタイミング/コントロール回路713はキャッシュメモリ705からフラッシュEEpromメモリ33へのデータファイルの書込みを制御する。メモリコントロール回路713はタグメモリの中に蓄積されている情報と同様にマイクロプロセッサシステムの電源装置にホストインタフェース703と線717を介して接続されている電力検出入力715に応答させられる。マイクロプロセッサシステムの電力の劣化はメモリコントロール回路713によって検出され、それは揮発性のキャッシュメモリ705の中のデータファイルの全てを不揮発性のフラッシュEEpromメモリ33にダウンロードするであろう。
【0072】
本発明において、フラッシュEEpromメモリアレイ33は、セクタ(典型的には512バイトの大きさ)に組織されており、各セクタ内の全てのメモリセルは、一緒に消去可能である。かくして各々のセクタは、データファイルとみなされ、そしてメモリアレイ上の書込み操作は、1または2以上のそのようなファイルにおいて行なわれる。
【0073】
フラッシュEEpromメモリ33の中における新しいセクタの読みの間、データファイルは読み出されて直接的にホストを介してコントローラに送られる。このファイルは通常のキャッシュシステムにおいて行なわれていたようにキャッシュメモリ705を満たすために使用されない。
【0074】
ホストシステムがファイルの中のデータの処理を完了して、それをフラッシュEEpromメモリ33の中に書き戻そうと希望したときに、それはキャッシュシステム701に書込みサイクルの要求によりアクセスする。コントローラはこれによりこの要求を受け入れてそのサイクルで動作させる。
【0075】
本発明の1つの具体例においてはデータファイルはキャッシュメモリ705へ書込まれる。同時にデータファイルに関連する他の2つの情報片はタグメモリ709に書込まれる。第1のものはファイルポインタであってキャッシュメモリ705の中に存在するファイルを規定する。第2のものはタイムスタンプであり、それはキャッシュメモリの中に最も最後にファイルされたかの時間を物語るものである。このようにしてホストがフラッシュEEpromメモリ33に書込みを欲するときはいつでも、そのデータファイルはポインタとタグメモリ709の中のタイムスタンプとともにキャッシュメモリ705の中に最初に現実に記憶されたものである。
【0076】
本発明のさらに他の具体例によれば、ホストからの書込みがあったときは、コントローラはまず初めにそのファイルが既にキャッシュメモリの中に存在していたものであったのか、またはタグメモリ709の中においてタグが着けられたもののいずれかであったかを見ることによりチェックする。もしそれがタグが着けられていなかったならばフラッシュメモリ33に書込まれる。一方、その標識とタイムスタンプはタグメモリ709に書込まれる。もし、そのファイルすでにキャッシュメモリの中に存在するか、タグが着けられたものであったならば、それはキャッシュメモリの中で更新され、フラッシュメモリの中には書込まれない。この方法によりしばしば用いられないデータファイルのみがフラッシュメモリに書込まれる一方、しばしば用いられるデータファイルはキャッシュメモリの中に捉えられている。
【0077】
本発明のさらに他の具体例によれば、ホストからの書込みがあったときは、予め定めた時間(例えば5分間のみ)の間にどこかでさらに書込まれたデータファイルであるかどうかを見てチェックする。もしそうでなかったならばフラッシュメモリ33に書込まれる。一方、その標識とタイムスタンプはタグメモリ709に書込まれる。もし、そのデータファイルが予め定めた時間間隔内に書込まれたものであったならば、それはキャッシュメモリ705の中に書込まれ、フラッシュメモリへは書込まれない。同時に、その標識とタイムスタンプはタグメモリ709へ他の実施例と同様に書込まれる。この方法においても同様にほとんど使用されないデータファイルのみがフラッシュメモリに記録される一方、しばしば使用されるデータファイルはキャッシュの中に捉えられている。
【0078】
全ての具体例において、いつでもキャッシュメモリ705は充填されるように使われる。コントローラが予め決めた十分に満たされた状態に達したことを検出したときにはコントローラはキャッシュメモリ705の中のその他のファイルに優先してフラッシュメモリ33の中に書込むことによって保存することを開始する。
【0079】
いずれの具体例においても、キャッシュメモリ705はいつでも充填される方向にスタートさせられている。コントローラがある定められた満たされた状態に達したことを検出したときにはコントローラはキャッシュメモリ705の中に他のものに優先してあるファイルの保存をフラッシュメモリ35の中にそれらを書込むことによって開始する。これらのファイルのためのファイルの標識であるタグビットはそのときにリセットさせる。そしてこれらのファイルが書き終わったものであることを示す。これにより、キャッシュメモリに入ろうとする新しいデータのための空間が形成される。
【0080】
コントローラは新しいよく働くファイルのための空間を形成するために、最初に動かされた最も活用されないファイルをフラッシュメモリ33にもどすことに対する責任ももたされている。各ファイルの活動の水準を追跡して保持するために各ファイルのためのタイムスタンプはそのファイルの新しい活動のためにリセットされない限り、動作させられる度ごとにコントローラによって集積される。このタイミングはタイマ711によって提供されている。すべてのタイムステップ(カウント)にコントローラはキャッシュメモリの中のデータファイルに系統的にアクセスしてこのデータファイルのために、最後に書き込まれスタンプを読む。コントローラはそれからこのタイムスタンプを他のタイムステップ(すなわちカウントを1上昇)でインクリメントする。
【0081】
ファイルのタイムスタンプに対して、そのファイルの活動にしたがって2つのことが起こる。1つの可能性は、そのタイムスタンプが新しい活動が発生したという事象によってリセットされることである。他の可能性はそのファイルについて新しい活動を発生しないで、そのタイムスタンプがキャッシュから除去されるまでインクリメントされることである。実際、タイムスタンプが無制限に増加すると最大の限界に達する。例えば、システムによりタイムスタンプが最大5分の不活動期間までインクリメントされる場合がある。したがって データファイルがキャシュメモリに書込まれるとき、ファイルのタイムスタンプは初期値に設定される。その後、タイムスタンプは、別の書込み更新により初期値に再度設定されなければ、タイムステップ毎にインクリメントしながら増加し始める。例えば、5分の不活動状態後には、タイムスタンプは最大値の終端カウントまでインクリメントされる。
【0082】
カウントを維持する1つの実施例において、ファイルのカウントインクリメントが生じる度に、シフトレジスタのある場所にビットがシフトされる場合がある。もしファイルが更新(新しい活動が発生したこと)のときにビットの位置は、シフトレジスタの当初の位置にセットされるであろう。一方、ファイルが不活動状態にあるときにはある場合においてビットは次第に最終的なシフト位置に向かってシフトされるであろう。各ファイルのカウント値は各タイムステップごとに記憶され、それからインクリメントされていく。各インクリメント後、カウント値はマスターカウンタと比較され、その差は問題の時間遅れである。
【0083】
かくして、もしファイルが活動状態であれば、その加算されたタイムスタンプはデータファイルが書き換えられる度に当初の値にリセットされてもどされる。この方法により、常に更新されているファイルは低いスタンプ標識を持ち、そしてその動作が減少するまで、キャッシュメモリの中に保存されるであろう。不活動の期間が経過した後に、それらは最大のタイムスタンプ標識を得る。使われていないファイルは次第にフラッシュメモリの中に記憶され、新しい、より使用されるファイルのためにキャッシュメモリの中のスペースを空けていく。タグメモリの中においてもスペースはこれらの不活性なファイルがフラッシュメモリに移動されるにしたがってあけられていく。
【0084】
いつでもキャッシュメモリに入ろうとする新しいデータファイルのために場所が空けられている必要があり、コントローラはいくつかの古いファイルを除去してそれをフラッシュメモリ33の中に保存する。スケジューリングはコントローラの中のメモリタイミング/コントロール回路713によってなされる。ファイルを保存することについての決定はいろいろな領域に基礎づけられている。コントローラがそのシステムにおける書込みの発生頻度をいつも監視しており、キャッシュがどの程度満たされているかをみている。
もし、キャッシュの中に、空き部屋、空間、空き間がときには保存がされる必要はない。もし、より多くの空き部屋が要求されるときは、最も速い時間のタイムスタンプをもつファイルが最初に移動され、フラッシュメモリに記憶される。
【0085】
本発明はコントローラの中のハードウエアの中の構成に関連して記述されてきたが、他の構成が可能であるというようにも理解されたい。例えば、キャッシュメモリはそのシステムの中のどこに存在してもよいし、また現存するマイクロプロセッサシステムに用いられるソフトウエアによって実現されても良い。そのような変形は本発明の方の範囲内にある。
【0086】
いかに多くの回数データがフラッシュメモリに書き戻されたかというプロファイルはいろいろな要素のもとで決定される。それは、キャッシュメモリの大きさとそのシステムにおける書込みの発生頻度に依存する。小さなキャッシュメモリシステムの場合では、最も頻度の高いファイルのみがキャッシュ化されるだろう。より少ない頻度でアクセスされるファイルはキャッシュメモリの大きさを増大することに関連してキャッシュ化されるであろう。本発明、すなわち比較的安くて小さい量のキャッシュメモリを使用する場合においては、好ましくは1メガバイト程度のものの利用が有効である。最も良く用いられるファイル(例えば上位5%)に定常的に書込まないようにすることにより、フラッシュEEpromの書込み頻度は、各ミリ秒ごとのものを5分毎秒程度に減少させることができるであろう。これにより、メモリの使い尽くし時間は、ほとんど永久というように延ばすことができる。この改良は書込み時間中のシステムの動作能率を向上させるという改良になって現れる。
【0087】
タイムタグをライトキャッシュの概念の中に実現するということは、ライトキャッシュバッファメモリを比較的小さくするという利点となり、その理由は.それがしばしば、書かれるデータファイルの記憶に用いられ、その他のファイルはフラッシュEEpromメモリに直接書込まれるのである。第2の特徴は、ライトキャッシュバッファの入出で、ある移動データファイルの管理は、次にどのデータファイルが呼ばれるかという進んだ知識を要求されないので、自動化できることである。
【0088】
上述した本発明の種々の点は、フラッシュEEpromメモリが従来の不揮発性大容量記憶装置と代替可能なものになるフラッシュEEpromメモリアレイのシステムに関連するものである。
【0089】
上述した本発明の種々の点の実施例は好適な実施例であるが、当業者はそれらの変形例もまた実施可能であると理解されたい。したがって、本発明は、添付の請求の範囲の全範囲内に保護が与えられるべきものである。
【図面の簡単な説明】
【図1A】本発明によるフラッシュEEpromメモリシステムを含むマイクロプロセッサシステムのブロック図である。
【図1B】ある数のフラッシュEEpromメモリチップと一つのコントローラチップを含むシステムを示すブロック図である。
【図2】消去されるべく選択されるメモリセクタを含むフラッシュEEpromチップシステムの略図である。
【図3A】本発明による多数のセクタの選択的消去を実現するためのコントローラの回路を示すブロック図である。
【図3B】図2Aに示された消去のために一つのセクタを選択するために使用される典型的なレジスタの詳細を示す回路図である。
【図4】複数のセクタ消去選択の消去シーケンスを図示した流れ図である。
【図5】一つのフラッシュEEpromセクタをデータ領域と予備の冗長領域に分けたことを示す略図である。
【図6】本発明による欠陥マッピングを使用した読込み操作中におけるデータパスを示したブロック図である。
【図7】本発明による欠陥マッピングを使用した書込み時におけるデータの制御パスを図示したブロック図である。
【図8】コントローラの中の書込みキャッシュ回路を図示したブロック図である。
【符号の説明】
21 マイクロプロセッサ
23 システムバス
25 RAM
27 I/O装置
29 バルクメモリ
31 メモリコントローラ
33 EEpromアレイ(メモリ)
35,37 シリアルデータ線
39 データバス
40 インタフェース回路
41 システム制御線
43,45,47 EEpromチップ
49,51,53 チップセレクト(イネイブル)
57 論理およびレジスタ回路
59 バス
201,203,205 EEpromチップ
209 線
211,213 セクタ
221,223 レジスタ
225 コマンドレジスタ
227 シリアルインタフェース
229 コマンドデコーダ
231 アドレスレジスタ
233 アドレスデコーダ
503 メモリアドレス発生器
505 ポート(μpインタフェース)
507 DMAコントローラ
509 ホールディングレジスタファイル
511 コマンドシーケンサ
513 マルチプレクサ
515 受信器
517 欠陥データ代替ファイル
519 FIFO
521 コンパレータ
523 マルチプレクサ
525 出力インタフェース
527 ECCハードウエア
601 FIFO
603 インタフェース
605 マルチプレクサ[0001]
BACKGROUND OF THE INVENTION
The present invention relates generally to semiconductor electrically erasable program read only memory (EEprom), and more particularly to a system with integrated flash EEprom chip circuitry.
[0002]
[Prior art]
Computer systems typically use magnetic disks to store large amounts of data. However, disk drives have drawbacks in that they are large and they require a highly precise mechanical drive mechanism. Therefore, they are not rugged and not only have problems with reliability, but also consume considerable power. DRAM and SRAM, which are solid-state storage devices, do not have these drawbacks. However, they are quite expensive, require constant power to maintain their memory (volatile), and are expensive.
[0003]
EEprom and flash EEprom are solid state storage devices as well. However, it is non-volatile and maintains its memory even after power is removed. However, normal flash EEproms have a finite lifetime in the number of write (or program) / erase times they can withstand. Typically those devices are 10 2 To 10 Three When the number of times of writing / erasing is exceeded, it is no longer reliable. Therefore, such elements are conventionally used in cases where semi-permanent data or program storage is required, and there may be certain restrictions on the need for reprogramming.
[0004]
[Problems to be solved by the invention]
Accordingly, it is an object of the present invention to provide a flash EEprom storage system with enhanced functionality that can withstand and maintain reliability for a significant number of write / erase cycles.
Yet another object is to provide an improved flash EEprom system that can be used as a non-volatile memory in a computer system.
It is still another object of the present invention to provide an improved flash EEprom system that can be used in place of a computer system magnetic disk drive.
It is still another object of the present invention to provide a flash EEprom system with improved erase operation.
It is still another object of the present invention to provide a flash EEprom system that can perform improved error correction.
It is yet another object of the present invention to provide a flash EEprom that can minimize stress on the flash EEprom system by improving the write operation.
It is yet another object of the present invention to provide a flash EEprom system that is improved in write operations.
[0005]
[Means for Solving the Problems]
These and additional objects are achieved by improvements in the structure, circuitry and technology of the EEprom chip system.
[0006]
One feature of the present invention is that an array of EEprom cells on a chip is organized into sectors and all cells contained in each cell are erased simultaneously.
The flash EEprom memory system has one or more flash EEprom chips under the control of the controller. In the present invention, any combination of sectors between chips is selected and allowed to be erased simultaneously. This makes the system according to the present invention faster and more effective than conventional arrangements in which all conventional sectors are erased each time or one sector is erased at a time. In the present invention, any combination for erasing a sector, or any combination not selected in order to prevent further erasure in an erase operation is made possible. This feature is important in stopping the extra erasure of sectors that were initially accurately "erased", thereby preventing unnecessary stress on the flash EEprom system. . In the present invention, it is possible to prevent all sectors from being selected for erasing by allowing all sectors in all systems not to be selected as a whole. This global reset is an immediate return of the system to the state of selecting the sector to be selected for its original erase. Yet another feature of the present invention is that selection is performed independently of a chip select signal that selects a particular chip for writing, reading or writing operations. Therefore, a chip having an EEprom chip can be selected for erasing a chip that is not included in another chip in which another read or write operation is performed.
[0007]
According to another aspect of the invention, an improved error correction circuit or technique is used that is used to correct errors arising from defective flash EEprom memory cells. One feature of the present invention is to allow mapping of defective cells at the cell level, thereby allowing replacement of defective cells with cells in the same sector. A defect pointer for connecting the defective cell to the address of the replaced cell is stored in the defect map. Each time a defective cell is accessed, its bad data is replaced with good data from an alternative cell.
[0008]
Yet another feature of the present invention is to allow defect mapping at the sector level. When the number of defective cells in one sector exceeds a certain number, the sector including the defective cell is replaced by another sector.
[0009]
An important feature of the present invention is that as soon as defective cells or defective sectors are found, they are remapped. Thus, by appropriately correcting the error correction code, errors that may occur in the system can be minimized.
[0010]
According to still another feature of the present invention, the number of writes to the flash EEprom can be minimized by providing a write cache. Thus, the flash EEprom memory is subject to less stress caused by the number of write / erase times, thereby preventing its aging. The most active data file is written to cache memory instead of flash EEprom memory. When the level of activity is reduced to a predetermined level, the data file is written from the cache memory to the flash EEprom memory. Another advantage of the present invention is increased by using faster cache memory.
[0011]
According to still another aspect of the present invention, a printed circuit board having a controller and an EEprom circuit chip for non-volatile storage is provided as computer system memory for a long period of time. is there. The printed circuit card can incorporate various other features of the present invention alone or in combination.
[0012]
Still other objects, features and advantages of the present invention will be understood by the following description of preferred embodiments of the present invention with reference to the accompanying drawings.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
(EEprom system)
A computer system incorporating the various features of the present invention is generally illustrated in FIG. 1A. A typical computer system has a
[0014]
One aspect of the present invention is to change the disk drive system as described above to a semiconductor memory, in which case it is non-volatile, easy to erase and rewrite data in the memory, access speed, Don't sacrifice cost and reliability. This is accomplished by using an electrically erasable and programmable read only memory (EEprom) semiconductor circuit chip. This type of memory has the additional advantage of being very light in weight and operating power compared to driving a magnetic memory medium with a hard disk, which makes it possible to run on batteries. It can be said that it is suitable for computers.
[0015]
The
[0016]
Referring to FIG. 1B, the
[0017]
The
[0018]
The
[0019]
For a large amount of memory, what is formed in one
[0020]
(Erase memory structure)
In a system design in which accumulated data is performed as a file or block, the data needs to be periodically revised or new information inserted. Then, it may be desired to accommodate additional information by writing further on information that is no longer needed. In flash EEprom memory, memory cells must first be erased before storing information. That is, this means that an erase operation is always preceded before a write (or program) operation.
[0021]
In the conventional flash erase memory device, the erase operation has several methods, one of which is performed. For example, in the case of Intel Corporation 27F-256, CMOS, flash EEprom erases the entire chip at a time. If not all of the information in the chip should be erased, it must first be temporarily rescued. It is then written to other memory (typically RAM). The information is then restored into the non-volatile flash erase memory by reprogramming the device. This is time consuming, expensive and requires work space.
[0022]
In other devices, such as Seek Technology Inc.'s Model 48512 Flash EEprom chip, the memory is divided into blocks (or sectors) that can be separately separated and erased. However, one must be done each time. Depending on the selection of the desired sector, an erasing stage is entered and the specified area is erased.
Although the need for temporary storage is eliminated, erasing various memory areas still requires time-consuming sequential work.
[0023]
In the present invention, the flash EEprom memory is divided into several sectors, in which cells contained in that sector can be erased simultaneously. Each sector is addressed separately and selectively erased. The most important feature is that several sector combinations can be selected to be erased together. This provides a faster erasure system compared to that found in the prior art of erasing each independently.
[0024]
FIG. 2 schematically illustrates some sectors selected for erasure. Indication is doing. One flash EEprom system includes one or more flash EEprom chips, such as 201, 203, 205, for example. They are in communication with
[0025]
FIG. 3A is a block diagram illustrating a state where one or more sectors are selected or not selected for erasure in a flash EEprom (eg,
[0026]
As an example, to select
[0027]
FIG. 3B shows the structure of the
[0028]
After all sectors to be erased have been selected, the controller generates a high voltage for erasure along
[0029]
4 (1)-(11) illustrate the algorithm used in connection with the
[0030]
An optimized erasure configuration is disclosed in a co-pending US patent application. They were filed on June 8, 1988 by Dr. Eriyaho Harari in US Patent Application No. 204,175, which was filed concurrently, and at the same time as this application, “Multistate EEprom” filed by Sanjay Mehalotra and Dr. Harari. Read / write circuit and its technology ". The flash EEprom cell is erased by applying an erase pulse, and subsequent reading verifies that the cell is erased and in the erased state. If not, the pulse application and verification is repeated until it is verified that the cell is in the erased state. By erasing in this controlled manner, the cell is not exposed to over-erasing that would age EEprom or make programming difficult.
[0031]
Others may reach the erased state earlier when the selected sector group is in the erase cycle. Another important feature of the present invention is the ability to remove verified sectors for erasure from a selected group, thereby preventing over-erasure.
[0032]
Referring again to FIG. 4 (4), once all sectors to be erased are tagged, the controller begins an erase cycle for the group of sectors that are tagged. In FIG. 4 (5), a global command called global erase enable is shifted into the tag EEprom chip to be erased. This means that in (5) of FIG. 4, the controller increases the erase voltage (VE) by a certain value for a certain duration. The controller reduces this voltage at the end of the erase period. In (6) of FIG. 4, the controller performs read verification of the sector selected for erasure. If none of the sectors is verified in (7) of FIG. 4, the sequence shown in (5) to (7) of FIG. 4 is repeated. 4 (8) to 4 (9), if it is verified that one or more sectors are erased, they are taken from the sequence. Referring also to FIG. 3A, this lowers the erasable register by clearing the erase command in
[0033]
The ability to select which sectors should be erased or not erased is as effective as which erasures are effective. As a result, those that have been erased before the sector to be erased later can be protected from being stressed by the device by being separated from the erase sequence. This will improve the reliability of the system. If a sector is bad or cannot be used for some reason, it is advantageous to skip the sector and prevent erasure in that sector. For example, if a sector is defective and there is a short circuit, it will erase more power. By skipping the erase cycle, the present invention can provide a significant system advantage in that the power required for erasing in the chip can be reduced.
[0034]
Having the ability to select sectors to be erased in the device leads to another consideration of reducing the power consumption of the system. Due to the elasticity of the erase structure in the present invention, the erase requirement can be adopted according to the power capability of the system. This may be accomplished by providing this system with software, with different erasure states, or with a basic structure with other systems. It could also cause the controller to change the amount of erasure by monitoring the voltage level in a system such as a laptop computer.
[0035]
Still another system of the present invention Capability of movement Is the ability to issue a reset command to the flash EEprom chip that clears all erase enable latches, and prevents further erase cycles from occurring. This is a figure 3A And figure 3B This is illustrated by the reset signal on
[0036]
Another additional ability is to have the ability to perform an erase operation regardless of chip select. When an erase operation is started in a certain memory chip, the controller can access other memory chips to perform reading and writing operations. In addition, it is selected that the erasing device is erasing and the address of the command for the next erasing can be stored.
[0037]
(Defect mapping)
Physical defects in the memory device can cause difficult malfunctions. Data is destroyed every time it accumulates in a defective cell. In conventional memory devices, such as RAM and disks, any physical defects that occur during the manufacturing process are corrected at the factory. In RAM, a spare redundant memory cell is provided on a chip, and it is connected instead of a defective cell. When the medium is incomplete in the conventional disk drive device, it is likely to cause a defect. To solve these problems, manufacturers have devised various methods for these existing defects, and the most commonly used is sector defect mapping. In a normal disk system, the medium is divided into cylinders and sectors. A sector is a basic unit in which data is stored. A system that is divided into various sectors and marked as bad is not used in that system. This is realized by various methods. A table of defect maps is provided at a specific location on the disk to be used and is utilized via an interface controller. Further, a defective bad sector is physically given a special ID, and has an ID and a flag marker. When a defective one is addressed, the data is usually located at another alternate location. In order to request this alternative sector, an extra sector is provided at a certain interval or at a certain position apart. This reduces the capacity of the memory and provides the problem of how to provide alternative sectors.
[0038]
One important application of the present invention is to replace conventional disk storage with a system implemented by an array of flash EEprom chips. This EEprom system is preferably set to be equal to or greater than a conventional disk and can be considered a “solid disk”.
[0039]
In “disk” systems made with such solid state memory devices, consideration must be given that they can be accomplished at low cost in order to efficiently handle defects. Another important feature of the present invention is that it enables error correction so that more memory can be saved as much as possible. As a practical matter, it is to eliminate every time a defect occurs in the whole sector, for example (usually 512 bytes), by finding a defective cell for each cell. This proposal is particularly suitable for flash EEprom media. This is because the majority of errors occur as bit errors and the streams normally found on conventional disk media are not long, close defects.
[0040]
In the prior art for both RAM and magnetic disks, once the device is shipped from the factory, there is little or no means to replace the hardware error resulting from physical defects that appear after normal operation. It is. For this reason, defect correction is mainly performed by using an error correction code (ECC).
[0041]
Due to the nature of the flash EEprom device, the number of cell defects can be expected to increase gradually as the number of write / erase operations increases. The hardware errors that are accumulated through use eventually overwhelm the ECC, rendering the device unusable. One important feature of the present invention is the ability to correct a hardware error in the system whenever a hardware error occurs in the system. Also during the read operation, defective cells are found and positioned by ECC. As soon as a defective cell is identified, the controller will provide a defect mapping to replace the defective cell with a free cell that normally resides in the same sector. This dynamic hard error correction can effectively extend the lifetime of the device in addition to the normal error correction scheme.
[0042]
Another feature of the present invention is that it is suitable for an approach to error correction. The error correction code (ECC) is always used for correcting a soft error and correcting a hardware error that may occur. As soon as a hard error is detected, the defect mapping is used to replace the defective cell with a spare cell present in its same sector block. Only when the number of defective cells exceeds the capability of defect mapping for that particular sector, the entire sector is As Is replaced by With this scheme, it is possible to stop with minimal loss without compromising credibility.
[0043]
FIG. 5 illustrates a memory structure of a scheme for remapping cells.
As described above, the flash EEprom memory is divided into sectors, and cells belonging to the sectors can be erased simultaneously. A typical memory structure of the
[0044]
Each time one defective cell is found in the sector, one good cell in the
[0045]
It should be understood that the
[0046]
In a read operation, the controller first reads the header, the defect map, and then the replacement defect data portion. Then read the actual data. It keeps track of defective cells and the position of alternative data by defect map. In order to encounter a defective cell, the controller substitutes the defective data with good data from the defective replacement cell.
[0047]
FIG. 6 illustrates read data path control in the preferred embodiment. The
[0048]
After starting the control, the
[0049]
Next, the
[0050]
When the header matches and the loading of the defective pointer and alternate bit is complete, the controller begins shifting out the lowest address of the desired sector to be read. Data from the sector in the
[0051]
A pipeline structure is used to start the controller from the
[0052]
As described above, the data read from the
[0053]
Despite previously detected defect mapping of defective cells, new hard errors may occur in the last mapping transition. As hard defect mapping permanently pushes out new defect cells, the latest hard errors that will occur during defect mapping are fully handled by the ECC.
As data is gated by the
If it matches, the read operation is completed assuming that the data transferred to system memory is correct. However, if there is an error in the ECC register, a correction calculation is performed on the data sent to the system memory. The corrected data is then retransmitted. The method for calculating the error is performed by a normal method in both hardware and software. The ECC can calculate and locate a defective cell caused by an error. This is used by the
[0054]
FIG. 7 illustrates write data path control in the preferred embodiment. The first part of the writing order is the same as the reading sequence already described. The microprocessor first loads the
[0055]
Next, the controller starts fetching write data from system memory (not shown). The controller does this by accessing the system bus, outputs the storage or bus address, and performs a read cycle. The controller pulls data into the
[0056]
A pipeline structure is employed to provide effective processing power that is effective when data is gated from the
When a match occurs, it indicates that a defect location is about to be written and the controller stores this bit in the defect
[0057]
After the write cycle byte is loaded into the selected memory device, the controller issues a program command to the memory device to initiate the write cycle. The ideal structure of the write operation for the flash EEprom device is the previously cited co-pending US Patent Application No. 204,175, one called multi-state EEprom read, write circuit and technique. The relevant parts are cited here for reference. Simply put, the controller is supplying a program (or write) voltage pulse during the write cycle. This is followed by a verify read to determine if all bits are properly programmed. If the bit is not verified, the controller repeats the program / verify cycle until all bits are programmed correctly.
[0058]
If a bit fails verification after extending a program / verify cycle, the controller will designate that bit as a defective bit and update the defect map accordingly. The update is performed dynamically as soon as a defective cell is detected. A similar operation is adopted even when the erase verify fails.
[0059]
After all bits are programmed and verified, the controller loads the next data bit from
[0060]
In addition, the set of bits flagged as defective and accumulated in the defect data replacement file 516 is written to the replacement defect data location (see FIG. 5), thereby allowing good bits to be used for subsequent reading. Keep the value of. Once these data groups have been written and verified, the sector write is considered complete.
[0061]
The present invention has provisions for mapping defects in the entire sector, but after a defect exists that exceeds the defective sector mapping capability of that particular sector. A count is stored as the number of defective cells in each sector.
When the number in a sector exceeds a certain amount, the controller maps that sector as a defect to another sector. The defect pointer for the associated sector will be stored in the defective sector map. The sector defect map is provided in the first defective sector when the extra area has no defect, and is provided in the sector. However, when a large number of defects occur in the data area of the sector, there is a strong possibility that the margin area also has many defects at the same time.
[0062]
For that reason, in other embodiments, it is preferable to locate the sector map in other memory held in the controller. The memory may be located in the controller hardware or in a portion of the flash EEprom remote from the memory. When a controller is given a multi-region address for access, it compares this address with a sector defect map.
If a match occurs, access to the defective sector is denied, and the alternate address present in the defect map is entered, and the corresponding alternate sector is accessed instead.
[0063]
In yet another embodiment, sector remapping is performed by a microprocessor. The microprocessor looks at the incoming address and address and compares it to the sector defect map. If there is a match, it substitutes another position as a new command instead of issuing a command to the controller.
[0064]
Apart from the faster speed of solid disks, yet another advantage is that there are no mechanical parts. There is no long search time due to the rotational nature inherent in disk drive. In addition, a long synchronization time, a synchronization mark detection time, a write gap and the like are not necessary. Thus, less overhead time is required to access the location where the data to be read exists or where it should be written.
These simplicity, and lack of overreaching, appear as a faster system with less overhead. In addition, the files are arranged in any desired address order in memory, and the controller only needs to know how to get the necessary data.
[0065]
Yet another feature of the present invention is that defect mapping is configured in a manner that does not need to interfere with the flow of data that is moved into or out of the sector.
Data containing errors in the block is nevertheless returned and it is later corrected. By storing sequential addresses, it would be possible to obtain high speeds themselves. Furthermore, it allows the implementation of an effective pipeline structure in the read / write data path of the device.
[0066]
(Write cache system)
Cache memory is typically used to speed up the system capabilities of slow access devices. For example, data access from a disk storage device is slow in a computer system. And if the data is obtained from a faster ram RAM, the speed will be faster. Typically, the RAM system portion uses a cache to temporarily hold what was most recently accessed from disk. The next time you need that data, you can get it from a faster cache instead of a slower disk. The system works well in situations where the same data is used repeatedly. This is the case in most configurations and programs because computers tend to work only in very small storage areas when running programs. Another example of caching is cheaper than usual, but to make use of a faster SRAM cache to speed up access to slow DRAM.
[0067]
Most conventional cache designs are read caches for speeding up reads from memory. In some situations, a write cache is used to speed up writing to memory. However, while being written to the cache at the same time, in the case of writing to system memory (eg, disk), data is written directly each time they occur. This is done because of concerns that files are lost when power is lost. If write data is stored only in cache memory (volatile), the loss of power means that the newly updated data is updated before the old data in system memory (non-volatile) is updated. This means that the updated file is lost from the cache memory. As these files continue to be used, the system will operate on old data. The need to write main memory each time breaks the cache mechanism for writing. In a read cache, there is no concern about this, because data that will disappear from the cache is backed up on disk.
[0068]
In the present invention, the flash EEprom system is used in place of a system having a conventional disk-type storage device. However, the flash EEprom is exposed to wear due to excessive programming (erase cycles).
US Patent Application No. 204,175, co-pending US Patent Application No. 204,175, entitled “Multi-state EEprom Reading and Writing Circuit and its Technology”, disclosed in an application filed concurrently with the present invention by Sanjay Mehalopola and Dr. Eliyaho Harari Even in the improved flash EEprom memory device, the endurance limit is almost 10 6 Is limited to the program / erase cycle. If the lifetime of this apparatus is extended to 10 years, it is limited to erasing once every 5 minutes. This is a limit in normal computer use.
[0069]
In order to solve this problem, cache memory systems are used in a novel way so that they can be decoupled from withstanding numerous program / erase cycles. The primary function of the cache is used for writing to the flash EEprom memory and not for reading from the flash EEprom memory, unlike the use of a conventional cache. Instead of writing to flash EEprom memory, the data will be updated each time and the data will be run several times in the cache before being sent to the flash EEprom memory. As a result, the number of writes to the flash EEprom memory can be reduced. Furthermore, the advantage of writing mainly in faster cache memory is that the number of writes to the slower flash EEprom can be reduced and write efficiency in the overall system can be increased.
[0070]
In realizing the present invention, a relatively small cache memory is extremely effective. This helps to overcome the problem of data loss in volatile cache memory during power loss. In such a case, the cache memory must be maintained with a sufficient power supply for a sufficiently long time, and the data is packed in a non-volatile memory that is a specially reserved space in the flash EEprom memory. You can also. In the event of a power loss or power failure in this system, the write cache system is disconnected from the entire system, and the prepared rechargeable power supply is the power source for the cache system and the space prepared in the flash EEprom memory. Used only for
[0071]
FIG. 8 schematically shows a
[0072]
In the present invention, the flash
[0073]
During the reading of a new sector in the
[0074]
When the host system has finished processing the data in the file and wishes to write it back into the
[0075]
In one embodiment of the invention, the data file is written to
[0076]
According to yet another embodiment of the present invention, when there is a write from the host, the controller initially either the file was already in the cache memory or the
[0077]
According to yet another embodiment of the present invention, when there is a write from the host, it is determined whether the data file is further written somewhere during a predetermined time (for example, only 5 minutes). Look and check. If not, it is written into the
[0078]
In all embodiments, the
[0079]
In either embodiment, the
[0080]
The controller is also responsible for returning the least utilized file that was moved first to the
[0081]
For a file timestamp, two things happen according to the activity of the file. One possibility is that the timestamp is reset by an event that a new activity has occurred. Another possibility is that no new activity is generated for the file and the timestamp is incremented until it is removed from the cache. In fact, the maximum limit is reached when the time stamp increases indefinitely. For example, the system may increment the time stamp up to a maximum inactivity period of 5 minutes. Thus, when a data file is written to cache memory, the file timestamp is set to an initial value. Thereafter, unless the time stamp is reset to the initial value by another write update, the time stamp starts to increment while being incremented at each time step. For example, after 5 minutes of inactivity, the time stamp is incremented to the maximum end count.
[0082]
In one embodiment of maintaining a count, a bit may be shifted to a location in the shift register each time a file count increment occurs. If the file is updated (a new activity has occurred), the bit position will be set to the original position of the shift register. On the other hand, in some cases when the file is inactive, the bits will be gradually shifted towards the final shift position. The count value for each file is stored at each time step and then incremented. After each increment, the count value is compared with the master counter, the difference being the time delay in question.
[0083]
Thus, if the file is active, the added timestamp is reset to its original value every time the data file is rewritten. With this method, files that are constantly being updated will have a low stamp indicator and will be stored in cache memory until their activity is reduced. After the period of inactivity, they get the largest time stamp indicator. Unused files are gradually stored in flash memory, freeing up space in the cache memory for new, more used files. Even in the tag memory, space is made as these inactive files are moved to the flash memory.
[0084]
The space needs to be freed for new data files that are about to enter the cache memory at any time, and the controller removes some old files and stores them in the
If there are empty rooms, spaces, and spaces in the cache, there is no need to save them. If more room is required, the file with the fastest time stamp is moved first and stored in flash memory.
[0085]
Although the present invention has been described with respect to configuration in hardware within the controller, it should be understood that other configurations are possible. For example, the cache memory may exist anywhere in the system, or may be realized by software used in an existing microprocessor system. Such variations are within the scope of the present invention.
[0086]
The profile of how many times data has been written back to the flash memory is determined under various factors. It depends on the size of the cache memory and the frequency of writes in the system. In the case of a small cache memory system, only the most frequent files will be cached. Files that are accessed less frequently will be cached in conjunction with increasing the size of the cache memory. In the present invention, that is, in the case of using a relatively cheap and small amount of cache memory, it is preferable to use a memory having a capacity of about 1 megabyte. By not writing regularly to the most commonly used files (eg top 5%), the flash EEprom write frequency can be reduced from every millisecond to about 5 minutes per second. Let's go. As a result, the memory exhaustion time can be extended to be almost permanent. This improvement manifests itself as an improvement in the operating efficiency of the system during the write time.
[0087]
Realizing the time tag in the concept of the write cache has the advantage of making the write cache buffer memory relatively small. It is often used to store data files to be written, and other files are written directly to flash EEprom memory. The second feature is that the management of a certain moving data file can be automated by entering and leaving the write cache buffer because it does not require advanced knowledge of which data file is called next.
[0088]
The various aspects of the present invention described above relate to a system of flash EEprom memory arrays in which flash EEprom memory can replace conventional non-volatile mass storage devices.
[0089]
The various embodiments of the present invention described above are preferred. Example However, those skilled in the art will recognize these variations as well. Implementation It should be understood that it is possible. Therefore, the present invention , Protection should be given within the full scope of the appended claims.
[Brief description of the drawings]
FIG. 1A is a block diagram of a microprocessor system including a flash EEprom memory system according to the present invention.
FIG. 1B is a block diagram illustrating a system including a number of flash EEprom memory chips and a controller chip.
FIG. 2 is a schematic diagram of a flash EEprom chip system including memory sectors selected to be erased.
FIG. 3A is a block diagram illustrating a controller circuit for realizing selective erasure of multiple sectors according to the present invention.
3B is a circuit diagram illustrating details of an exemplary register used to select a sector for erasure shown in FIG. 2A.
FIG. 4 is a flowchart illustrating an erase sequence of a plurality of sector erase selections.
FIG. 5 is a schematic diagram showing that one flash EEprom sector is divided into a data area and a spare redundant area.
FIG. 6 is a block diagram illustrating a data path during a read operation using defect mapping according to the present invention.
FIG. 7 is a block diagram illustrating a data control path during writing using defect mapping according to the present invention;
FIG. 8 is a block diagram illustrating a write cache circuit in a controller.
[Explanation of symbols]
21 Microprocessor
23 System bus
25 RAM
27 I / O device
29 Bulk memory
31 Memory controller
33 EEprom array (memory)
35, 37 Serial data line
39 Data bus
40 Interface circuit
41 System control line
43, 45, 47 EEprom chip
49, 51, 53 Chip select (enable)
57 Logic and register circuits
59 Bus
201, 203, 205 EEprom chip
209 line
211,213 sectors
221 and 223 registers
225 Command register
227 Serial interface
229 Command decoder
231 Address register
233 Address decoder
503 Memory address generator
505 port (μp interface)
507 DMA controller
509 Holding register file
511 Command sequencer
513 multiplexer
515 Receiver
517 Defect data substitution file
519 FIFO
521 Comparator
523 multiplexer
525 output interface
527 ECC hardware
601 FIFO
603 interface
605 multiplexer
Claims (23)
任意の不揮発性メモリセクタのグループを選択し、
前記不揮発性メモリセクタの選択されたグループのみ消去動作を同時に行い、
前記不揮発性メモリセクタの選択されたグループ内の個々のセクタ内に少なくとも各1つのユーザデータ部と予備部を設け、
少なくとも1つの磁気ディスクセクタを指定する形式のアドレスをプロセッサから受けると、それに応じて、前記少なくとも1つの磁気ディスクセクタに対応する少なくとも1つの不揮発性メモリセクタのアドレスを指定し、
前記少なくとも1つの消去された不揮発性メモリセクタのユーザデータ部にユーザデータを書込むか、もしくは前記ユーザデータ部からユーザデータを読出し、そして
前記少なくとも1つの不揮発性メモリセクタに関する情報およびユーザデータ部に記憶されるデータに関する情報を前記予備部に書込むか、もしくは読出す、コンピュータシステムの操作方法。 Ri Operation der computer system including a processor and a memory system, said memory system includes an array of memory cells having a floating gate non-volatile, the array is divided into a plurality of sectors, each sector In a method of operating a computer system, which comprises a plurality of partitioned memory cells that can be erased simultaneously ,
Select any non-volatile memory sector group,
Only the selected group of the nonvolatile memory sectors is erased simultaneously,
Providing at least one user data portion and a spare portion in each sector in a selected group of the non-volatile memory sectors;
When the address of the format for specifying at least one magnetic disk sector receives from the processor, in response thereto, the address of at least one non-volatile memory sectors corresponding to the at least one magnetic disk sector,
Write user data to or read user data from the user data portion of the at least one erased non-volatile memory sector, and store information and user data about the at least one non-volatile memory sector into the user data portion. A method for operating a computer system, wherein information relating to stored data is written to or read from the spare part .
さらに個々のセクタが使用不能になるときの予め規定した状態を検出し、前記使用不能なセクタのアドレスと使用可能な他のセクタのアドレスをマップする操作を含む、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 1 .
Previously detecting a specified state, including the operation to map the address of the address and the available other sectors of the unavailable sector, operating method of the computer system when individual to further people sectors unusable.
予め規定した状態の検出は、個々のセクタが欠陥になるときを検出することである、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 2 ,
A method of operating a computer system, wherein the detection of a predefined state is to detect when an individual sector becomes defective.
個々のセクタが欠陥になるときを検出することは、セクタ内の個々の欠陥メモリセルの数が所定の数を超えたことの検出である、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 3 ,
A method of operating a computer system, wherein detecting when an individual sector becomes defective is detecting that the number of individual defective memory cells in the sector exceeds a predetermined number.
個々のセクタの予備部に記憶される情報は、個々のセクタの対応するセクタのユーザデータ部に記憶されるデータから算出される誤り訂正コードを含む、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 1 .
A method of operating a computer system, wherein information stored in a spare part of each sector includes an error correction code calculated from data stored in a user data part of a corresponding sector of each sector.
使用不能なセクタのアドレスと使用可能なセクタをマップすることは、前記使用不能なセクタと使用可能な他のセクタに対応するセクタのアドレスをマップするリストを維持し、使用不能なセクタのアドレスを使用可能なセクタのアドレスに変えるためにリストを参照する、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 2 ,
Mapping the addresses and available sectors of unusable sectors, address of the address of unusable sectors with sectors corresponding to the other sectors available to maintain a list of maps to, non use sectors that references list to change the addresses of available sectors, the operation method of a computer system.
前記使用不能なセクタのアドレスに対応する使用可能なセクタのアドレスを個々の欠陥セクタのセクタ内に記憶し、使用不能なセクタに記憶される使用可能なセクタのアドレスを参照して、使用不能なセクタに対応する使用可能なセクタにアクセスする、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 2 ,
The addresses of available sectors that correspond to addresses of unusable sectors stored in the sectors of each defective sector by referring to the address of available stored in an unusable sector sector, to access the available sector corresponding to an unusable sector, operating method of the computer system.
コントローラは、1つの磁気ディスクセクタに対応する1つの不揮発性メモリセクタのアドレスを発生し、個々の不揮発性メモリセクタのユーザデータ部は、前記1つの磁気ディスクセクタのユーザデータ部と実質的に同じ容量をもつものである、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 2 ,
Controller generates the address of one of the non-volatile memory sectors corresponding to one magnetic disk sectors, the user data portion of each non-volatile memory sectors, essentially the user data portion of said one magnetic disk sector to those having the same capacity, the operation method of a computer system.
予備部に代替メモリセル部分が含まれるようにする、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 1 .
A method of operating a computer system, wherein a spare memory cell part is included in a spare part .
個々のセクタの予備部は、そのセクタのユーザデータ内の欠陥セルの指定を有し、コントローラは前記アドレスされた不揮発性メモリセクタの予備部から前記欠陥セルの指定を読出し、前記欠陥セルは不揮発性メモリセクタの前記予備部内にある対応する欠陥セルの代替部メモリセル部分に置き換える、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 9 ,
Preliminary of the individual sectors, with designated defective cells within the user data of the sector, the controller reads the designation of the defective cell from the preliminary part of the non-volatile memory sector that is the address, the defective cell A method for operating a computer system, wherein a replacement memory cell part of a corresponding defective cell in the spare part of a nonvolatile memory sector is replaced .
前記コントローラは、アレイの動作を制御するための前記プロセッサに脱着接続可能なコントローラである、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 1 .
Wherein the controller is detachable connectable controller to said processor for controlling the operation of the array, the operation method of a computer system.
メモリシステムは、コンピュータシステムに取り外し可能に接続されるカード内に設けられる、コンピュータシステムの操作方法。 The operation method of the computer system according to claim 1 ,
A method of operating a computer system, wherein the memory system is provided in a card removably connected to the computer system.
コントローラは、コンピュータシステムに取り外し可能に接続されるカード内に設けられる、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 11 ,
Controller is provided in the card that is removably connected to the computer system, an operation method of a computer system.
コントローラおよびメモリシステムは、コンピュータシステムに取り外し可能に接続されるカード内に設けられる、コンピュータシステムの操作方法。 The method of operating a computer system according to claim 11 ,
Controller and the memory system is provided in the card that is removably connected to the computer system, an operation method of a computer system.
複数のセクタに分割された不揮発性フローティングゲートメモリセルのアレイであり、
前記各セクタは1つのユニットとして同時に消去可能な区画された複数のメモリセルからなり、個々のセクタはユーザデータと予備部のデータを記憶するのに十分なセルを有する不揮発性フローティングゲートメモリセルのアレイと、
アレイの動作を制御するために前記電気端子と前記メモリセルアレイ間に接続されるコントローラと、を含み、
前記コントローラは、ホストコンピュータシステムの命令により、
任意の不揮発性メモリセクタのグループを選択し、前記不揮発性メモリセクタの選択されたグループのみ消去動作を同時に行い、前記不揮発性メモリセクタの選択されたグループ内の個々のセクタ内に少なくとも各1つのユーザデータ部と予備部を設ける手段と、
使用可能なセクタに置き換えるために使用不能なセクタを指定する手段と、
少なくとも1つの磁気ディスクセクタを指定する形式のアドレスをプロセッサから受けると、それに応じて、前記少なくとも1つの磁気ディスクセクタに対応する少なくとも1つの不揮発性メモリセクタのアドレスを指定し、前記少なくとも1つの消去された不揮発性メモリセクタのユーザデータ部にユーザデータを書込むか、もしくは前記ユーザデータ部からユーザデータを読出し、前記少なくとも1つの不揮発性メモリセクタに関する情報およびユーザデータ部に記憶されるデータに関する情報を前記予備部に書込むか、もしくは読出す手段と、
を含むメモリシステム。In a memory system having electrical terminals for establishing a connection with a host computer system,
Array der of divided into a plurality of sectors nonvolatile floating gate memory cell is,
The result from each sector a plurality of memory cells erasable compartments simultaneously as a unit, the nonvolatile floating gate that individual sectors have sufficient cells for storing data of the user data and the spare unit An array of memory cells;
Anda Turkey controller is connected the electrical terminals and between said memory cell array for controlling operation of the array,
Before Kiko controller is, by the command of the host computer system,
Selecting an arbitrary group of non-volatile memory sectors, simultaneously performing an erase operation on only the selected group of non-volatile memory sectors, and at least one each in each sector in the selected group of non-volatile memory sectors; Means for providing a user data part and a spare part;
A means to designate an unusable sector to replace it with an available sector;
Upon receiving an address of a format designating at least one magnetic disk sector from the processor, the address of at least one non-volatile memory sector corresponding to the at least one magnetic disk sector is designated accordingly, and the at least one erase is performed. Write user data to the user data portion of the read nonvolatile memory sector, or read user data from the user data portion, and information on the at least one nonvolatile memory sector and data stored in the user data portion Means for writing to or reading from the spare part;
Including memory system.
使用不能なセクタの指定は、使用不能なセクタのアドレスを使用可能なセクタにマップするためのリストをメモリシステム内に維持することである、メモリシステム。 The memory system of claim 15 , wherein
The designation of the unusable sector is to maintain a list in the memory system for mapping the address of the unusable sector to the usable sector.
使用不能なセクタの指定は、そのセクタの予備部のデータの一部として前記使用不能なセクタに対応するそのセクタの代替用の使用可能な個々のセクタの記録を含む、メモリシステム。 The memory system of claim 15 , wherein
The unusable sector designation includes a record of individual usable sectors for replacement of the sector corresponding to the unusable sector as part of the spare portion of the sector .
使用不能なセクタの指定は、動作不能なセクタもしくは欠陥セクタの指定を含む、メモリシステム。 The memory system according to any one of claims 15 to 17 ,
Specifying unusable sectors includes a designation of inoperable sectors or defective sectors, the memory system.
使用不能なセクタの指定は、予め設定した数を超える複数の欠陥セルを保有するセクタの指定を含む、メモリシステム。 The memory system according to any one of claims 15 to 17 ,
Specifying unusable sectors includes a designation of a sector carrying a plurality of defective cells in excess of a preset number, a memory system.
前記個々の不揮発性メモリセクタは、前記所定量のユーザデータおよび前記予備部のデータを記憶するのに必要な数のセルを超える冗長メモリセルをさらに有し、前記コントローラは、個々のセクタ内の欠陥メモリセルの代わりに個々のセクタの冗長メモリセルに置き換える手段をさらに含む、メモリシステム。 The memory system of claim 15 , wherein
The individual non-volatile memory sectors further include redundant memory cells that exceed the number of cells required to store the predetermined amount of user data and the spare portion data, and the controller includes: further comprising a memory system means for replacing the redundant memory cells of each sector in place of defective memory cells.
前記端子を介して不揮発性大容量記憶装置からの1以上のブロックを指定する形式のアドレスを受信するアドレス指定手段をさらに含み、
個々のセクタに記憶可能なユーザデータの所定量は、ホストコンピュータシステムの不揮発性大容量記憶装置の個々のメモリのブロックの大きさと実質的に等しいものであり、
前記アドレス指定手段は、不揮発性大容量記憶装置の個々のブロックのアドレスを不揮発性メモリセクタの固有の個々のセクタのアドレスにマッピングする、メモリシステム。 The memory system of claim 15 , wherein
Further comprising an addressing means for receiving an address in a format for designating one or more blocks from the nonvolatile mass storage device via the terminal;
The predetermined amount of user data that can be stored in each sector is substantially equal to the size of the individual memory block of the non-volatile mass storage device of the host computer system,
It said addressing means maps the addresses of the individual blocks of the nonvolatile mass storage device to a unique address of each sector of the nonvolatile memory sector, the memory system.
前記メモリシステムは、単一のプリント回路カード上で実行される、メモリシステム。 The memory system of claim 15 , wherein
The memory system may be performed on a single printed circuit card, a memory system.
前記端子を介して不揮発性大容量記憶装置からの1以上のブロックを指定する形式のアドレスを受信するアドレス指定手段をさらに含み、
前記アドレス指定手段が受信する不揮発性大容量記憶装置の1以上のブロックを指定する形式のアドレスは、アドレスの形式が同じ1以上の磁気ディスクセクタのアドレスを指定する、メモリシステム。 The memory system of claim 15 , wherein
Further comprising an addressing means for receiving an address in a format for designating one or more blocks from the nonvolatile mass storage device via the terminal;
Wherein the address in the form that specifies one or more blocks of non-volatile mass storage device addressing means receives, formats the address is an address in the same one or more magnetic disk sector, the memory system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02384299A JP3944326B2 (en) | 1999-02-01 | 1999-02-01 | Flash EEprom system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02384299A JP3944326B2 (en) | 1999-02-01 | 1999-02-01 | Flash EEprom system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9911490A Division JP3226042B2 (en) | 1989-04-13 | 1990-04-12 | Flash EEprom system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007027673A Division JP4090071B2 (en) | 2007-02-07 | 2007-02-07 | Flash EEprom system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11339485A JPH11339485A (en) | 1999-12-10 |
JP3944326B2 true JP3944326B2 (en) | 2007-07-11 |
Family
ID=12121663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02384299A Expired - Lifetime JP3944326B2 (en) | 1999-02-01 | 1999-02-01 | Flash EEprom system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3944326B2 (en) |
-
1999
- 1999-02-01 JP JP02384299A patent/JP3944326B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11339485A (en) | 1999-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3226042B2 (en) | Flash EEprom system | |
US7492660B2 (en) | Flash EEprom system | |
US6462992B2 (en) | Flash EEprom system | |
US5535328A (en) | Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells | |
JP3944326B2 (en) | Flash EEprom system | |
JP4090071B2 (en) | Flash EEprom system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040531 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040604 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050222 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050520 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050920 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060119 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20060822 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070409 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
EXPY | Cancellation because of completion of term |