(57)【要約】  オンチップ書き込みキャッシュを用いて不揮発性メモリアレイをプログラムする方法を開示する。メモリシステムによって受信された個々のデータパケットはキャッシュメモリ内に記憶される。このようにして２つ以上のデータパケットを記憶し、次に、不揮発性アレイの単一ページにプログラムすることができる。この結果、不揮発性アレイ内の記憶空間の使用を効率良くする。
2008524747.tif 000002
【特許請求の範囲】
【請求項１】
１つのアドレス可能なデータパケットよりも大きいプログラミングの最小単位を有する不揮発性メモリセルのアレイを、キャッシュメモリを用いてプログラムする方法であって、アドレス可能なデータパケットは、選択された物理アドレスにマッピングされている論理アドレスを有する、方法において、
論理アドレスを有するアドレス可能なデータパケットを受信するステップと、
前記アドレス可能なデータパケットを記憶する前記不揮発性メモリアレイ内の物理位置を選択するステップと、
前記アドレス可能なデータパケット用の前記物理位置を記録するステップと、
前記キャッシュメモリ内にキャッシュされたデータがない場合、前記アドレス可能なデータパケットを前記キャッシュメモリ内に記憶するステップと、
前記キャッシュメモリ内にキャッシュされたデータがある場合で、かつ前記選択された物理位置が、前記キャッシュされたデータの選択された物理位置と同じ前記アレイのプログラミングの単位内にある場合、前記アドレス可能なメモリパケットを前記キャッシュメモリ内に記憶するステップと、
前記キャッシュメモリ内にキャッシュされたデータがある場合で、かつ前記選択された物理位置が、前記キャッシュされたデータの選択された物理位置と同じ前記アレイのプログラミングの単位内にない場合、前記キャッシュされたデータを前記メモリセルのアレイにプログラムし、前記アドレス可能なデータパケットを前記キャッシュメモリ内に記憶するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
低電力状態が存在するかどうかを検出するステップと、低電力状態が存在する場合には、前記キャッシュされたデータを前記メモリセルのアレイにプログラムするステップとをさらに含む方法。
【請求項３】
請求項１記載の方法において、
特定の不活性期間の後に、キャッシュされたデータを前記メモリセルのアレイにプログラムするステップをさらに含む方法。
【請求項４】
請求項１記載の方法において、
前記メモリセルのアレイが基板上に形成され、同基板上には前記キャッシュメモリが形成されている方法。
【請求項５】
請求項１記載の方法において、
前記アドレス可能なデータパケットが、セクタである方法。
【請求項６】
請求項１記載の方法において、
前記プログラミングの単位が、４つのアドレス可能なデータパケットを含む方法。
【請求項７】
請求項１記載の方法において、
前記メモリセルのアレイが、前記プログラミングの最小単位よりも大きい消去の最小単位を有する方法。
【請求項８】
請求項１記載の方法において、
アドレス可能なデータパケットが前記キャッシュメモリ内に記憶された時に信号をホストに送信するステップをさらに含み、前記信号は、前記アドレス可能なデータパケットのプログラミング動作が完了したことを前記ホストに示す方法。
【請求項９】
請求項１記載の方法において、
プログラミング動作が必要とされることを示す信号をホストが送信した時に、前記キャッシュされたデータを前記メモリセルのアレイにプログラムするステップをさらに含む方法。
【請求項１０】
請求項１記載の方法において、
前記キャッシュメモリが、揮発性メモリである方法。
【請求項１１】
請求項１記載の方法において、
前記キャッシュが、不揮発性メモリである方法。
【請求項１２】
メモリシステムにおいて、
基板上の不揮発性メモリセルのアレイと、
ホストから受信したアドレス可能なデータパケットを記憶する前記不揮発性メモリセルのアレイ内の物理アドレスを決定するコントローラと、
前記基板上のキャッシュメモリであって、前記キャッシュメモリは前記アドレス可能なデータパケットを受信し、前記アドレス可能なデータパケットが前記キャッシュメモリ内にある間、前記アドレス可能なデータパケットを更新できるように保持するように構成され、前記キャッシュメモリは前記アレイのプログラミングの最小単位で前記メモリアレイにデータをプログラムするように構成され、前記アレイの前記プログラミングの最小単位が２つ以上のアドレス可能なデータパケットを備える、キャッシュメモリと、
を備えるメモリシステム。
【請求項１３】
請求項１２記載のメモリシステムにおいて、
前記キャッシュメモリが、揮発性メモリから成るメモリシステム。
【請求項１４】
請求項１２記載のメモリシステムにおいて、
前記キャッシュメモリが、不揮発性メモリであるメモリシステム。
【請求項１５】
請求項１２記載のメモリシステムにおいて、
前記メモリシステムに供給された電力が低い時、または低くなる可能性がある時を検出する低電力検出回路をさらに備え、この状態が発生すると、前記回路は前記キャッシュメモリ内のデータを前記アレイに送信させるメモリシステム。
【請求項１６】
請求項１２記載のメモリシステムにおいて、
前記メモリシステムの外部にあるホストへの接続部をさらに備えるメモリシステム。
【請求項１７】
請求項１２記載のメモリシステムにおいて、
前記システムはカード内にあり、前記カードは前記カードをホストに取り外し可能に接続できる接続部を有するメモリシステム。
【請求項１８】
請求項１２記載のメモリシステムにおいて、
前記不揮発性メモリセルのアレイが、ＮＡＮＤフラッシュメモリアレイであるメモリシステム。
【請求項１９】
複数の受信されたアドレス可能なデータパケットで不揮発性メモリアレイをプログラムする方法であって、前記メモリアレイはプログラミングの最小単位のページと消去の最小単位の消去ブロックとを有し、消去ブロックはページよりも大きく、ページはアドレス可能なデータパケットよりも大きい、方法において、
論理アドレスを有するアドレス可能なデータパケットをホストから受信するステップと、
前記アドレス可能なデータパケットを書き込む前記不揮発性メモリアレイ内の物理アドレスを選択するステップと、
前記論理アドレスと前記物理アドレスとの間の関係を記録するステップと、
キャッシュメモリが空である場合、前記アドレス可能なデータパケットを前記キャッシュメモリ内に記憶するステップと、
データが前記キャッシュメモリ内にあり、前記キャッシュメモリ内の前記データを書き込む前記物理アドレスと、前記アドレス可能なデータパケットを書き込む前記物理アドレスとが前記メモリアレイの単一ページ内にある場合、受信されたアドレス可能なデータパケットをキャッシュメモリ内に記憶するステップと、
前記キャッシュメモリ内の前記データを書き込む前記物理アドレスと、前記アドレス可能なデータパケットを書き込む前記物理アドレスとが前記メモリアレイの単一ページ内にない場合、前記キャッシュメモリから前記メモリアレイにデータを書き込むステップと、
を含む方法。
【請求項２０】
請求項１９記載の方法において、
前記受信されたアドレス可能なデータパケットと、以前に記憶されたアドレス可能なデータパケットとが同じ論理アドレスを有する場合に、前記受信されたアドレス可能なデータパケットを、前記以前に記憶されたアドレス可能なデータパケットの代わりに前記キャッシュメモリ内に記憶するステップをさらに含む方法。
【請求項２１】
不揮発性メモリアレイ内のデータを更新する方法において、
データのページを前記不揮発性メモリ内の第１の物理位置からキャッシュ内に読み出すステップであって、前記データのページがデータの複数のアドレス可能な単位を含む、ステップと、
データのアドレス可能な単位を受信し、前記受信したデータのアドレス可能な単位の論理アドレスを前記データの複数のアドレス可能な単位の論理アドレスと比較するステップと、
前記受信したデータのアドレス可能な単位が、前記データの複数のアドレス可能な単位のうちの１つの前記論理アドレスである論理アドレスを有する場合、前記データの複数のアドレス可能な単位のうちの前記１つと、前記受信したデータのアドレス可能な単位とを前記キャッシュ内で交換するステップと、
その後、前記キャッシュの内容を前記不揮発性メモリアレイ内の第２の物理位置に書き込むステップと、
を含む方法。
【請求項２２】
請求項２１記載の方法において、
前記受信したデータのアドレス可能な単位が、前記データの複数のアドレス可能な単位のうちの１つの前記論理アドレスでない論理アドレスを有する場合、前記データの複数のアドレス可能な単位を第２の物理位置に書き戻し、その後、前記受信したデータのアドレス可能な単位を前記キャッシュ内に記憶する方法。
【請求項２３】
不揮発性メモリと通信する揮発性メモリを含むメモリシステムを動作する方法であって、前記不揮発性メモリは複数レベルのセル内にデータを記憶し、前記メモリシステムはホストと通信する、方法において、
前記メモリシステムが、前記不揮発性メモリ内に記憶するデータの一部を前記ホストから受信するステップと、
前記データの一部を前記揮発性メモリ内に記憶するステップと、
低電力状態が示されていない場合、前記データの一部を不揮発性メモリに複写することなく前記データの一部を前記揮発性メモリ内に維持し、次の命令を待つステップと、
低電力状態が示された場合、前記揮発性メモリ内の前記データの一部を前記不揮発性メモリに複写し、前記データの一部を２進形式で前記不揮発性メモリに書き込むステップと、
を含む方法。
【請求項２４】
請求項２３記載の方法において、
低電力状態が示された場合、前記データの一部が、前記不揮発性メモリの専用部分に書き込まれる方法。
【請求項２５】
請求項２４記載の方法において、
前記メモリシステムが、低電力または電力オフ状態から電力オン状態に移ると、前記不揮発性メモリの前記専用部分にデータが記憶されているかどうかを判断するため、前記不揮発性メモリの前記専用部分が検査されることをさらに含む方法。
【請求項２６】
請求項２３記載の方法において、
低電力状態が示されていない場合、所定の期間、次の命令を待ち、前記所定の期間の後、前記データの一部を前記不揮発性メモリに複写し、前記データの一部を複数レベル形式で前記不揮発性メモリに書き込むステップをさらに含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、半導体メモリシステムに関し、特に、不揮発性メモリシステムに関し、フラッシュＥＥＰＲＯＭ（電気的に消去可能でプログラム可能な読み出し専用メモリ）に基づくデータ記憶装置システムについて適用される。
【背景技術】
【０００２】
今日、商業的に成功している数多くの不揮発性メモリ製品は、特に、１つ以上の集積回路チップ上に形成されたフラッシュＥＥＰＲＯＭ（電気的に消去可能でプログラム可能な読み出し専用メモリ）セルのアレイを用いる小形形状のファクタカードの形態で用いられている。通常、別個の集積回路チップ上に形成されているが必ずしもそうとは限らないメモリコントローラは、カードが取り外し可能に接続されているホストとインターフェイスをとり、カード内のメモリアレイの動作を制御する。一般的に、このようなコントローラは、マイクロプロセッサ、不揮発性読み出し専用メモリ（ＲＯＭ）のような何らかのプログラムメモリ、揮発性ランダムアクセスメモリ（ＲＡＭ）およびデータのプログラミングおよび読み出し中にデータがコントローラを通過するとデータから誤り訂正符号（ＥＣＣ）を計算する回路のような１つ以上の特殊回路を含む。市販のカードの一部は、コンパクトフラッシュ（登録商標）（ＣＦ）カード、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）カード、スマートメディアカード、パーソナルタグ（Ｐ−Ｔａｇ）およびメモリスティックカードである。ホストは、パーソナルコンピュータ、ノートブック形コンピュータ、個人用携帯情報端末（ＰＤＡ）、様々なデータ通信装置、デジタルカメラ、携帯電話、携帯オーディオプレーヤ、自動車サウンドシステムおよび類似の機器を含む。メモリカードの実施例以外に、この種のメモリを様々な種類のホストシステム内に代わりに埋め込むこともできる。
【０００３】
商業用途で見られる２つの汎用メモリセルアレイ構造は、ＮＯＲおよびＮＡＮＤである。一般的なＮＯＲアレイでは、メモリセルは、列方向に延在する隣接のビット線のソース拡散領域とドレイン拡散領域との間に接続され、セルの行に沿って延在するワード線にはコントロールゲートが接続されている。メモリセルは、ソースとドレインとの間のセルチャネル領域の少なくとも一部分にわたって位置付けられた少なくとも１つの記憶素子を含む。従って、記憶素子上の電荷のプログラムレベルはセルの動作特性を制御し、アドレス指定されたメモリセルに適切な電圧を印加することによってセルを読み出すことができる。このようなセル、メモリシステムでの使用および製造方法の例が、米国特許第５，０７０，０３２号（特許文献１）、第５，０９５，３４４号（特許文献２）、第５，３１３，４２１号（特許文献３）、第５，３１５，５４１号（特許文献４）、第５，３４３，０６３号（特許文献５）、第５，６６１，０５３号（特許文献６）、および第６，２２２，７６２号（特許文献７）に示されている。本願明細書で説明した他のすべての特許および特許出願と同様に、これら特許もその全体が本願明細書において参照により援用されている。
【０００４】
ＮＡＮＤアレイは、セルの列を形成するため、個々のビット線と基準電位との間の１つ以上の選択トランジスタと一緒に接続された１６または３２のような３つ以上のメモリセルの直列ストリングを用いる。ワード線は、多数のこれら列内のセルにまたがって延在する。ストリングに流れる電流が、アドレス指定されたセルに記憶された電荷のレベルに依存するようにストリング内の残りのセルを確実にオンに転換させることにより列内の個々のセルはプログラミング中、読み出され、検証される。ＮＡＮＤ構造アレイおよびメモリシステムの一部としての動作の例が、米国特許第５，５７０，３１５号（特許文献８）、第５，７７４，３９７号（特許文献９）、第６，０４６，９３５号（特許文献１０）および第６，５２２，５８０号（特許文献１１）で見られる。
【０００５】
前述した援用されている特許に説明されているような現在のフラッシュＥＥＰＲＯＭアレイの電荷記憶素子は、最も一般的には導電性フローティングゲートであり、導電的にドープされたポリシリコン材料から一般的に形成されている。フラッシュＥＥＰＲＯＭシステムで有用であるメモリセルの代替の種類は、導電性フローティングゲートの代わりに非導電性の誘電体材料を用いて、不揮発的に電荷を記憶する。酸化シリコン、窒化シリコンおよび酸化シリコン（ＯＮＯ）から形成された３層誘電体は、メモリセルチャネル上の半導体基板の表面と導電性コントロールゲートとの間に挟まれている。セルは、セルチャネルから窒化物へ電子を注入し、窒化物で電子が捕捉され、限定領域内に記憶されることによってプログラムされ、ホットホールを窒化物へ注入することによって消去される。誘電性の記憶素子を用いる幾つかの特定のセル構造およびアレイは、ハラリらの米国公開特許出願第２００３／０１０９０９３号（特許文献１２）に説明されている。
【０００６】
大部分の集積回路用途でのように、ある集積回路機能を実装するのに必要とされるシリコン基板領域を縮小させるという圧力は、フラッシュＥＥＰＲＯＭメモリセルアレイの場合にも存在する。所定の大きさのメモリカードおよび他の種類のパッケージの記憶容量を増大させるため、シリコン基板の所定の領域に記憶することができるデジタルデータの量を増大させること、または容量を増大させかつ大きさを減少させることが絶えず望まれている。データの記憶密度を増大させる１つ方法は、１メモリセル当たりおよび／または１記憶ユニットまたは素子当たり２ビット以上のデータを記憶することである。このことは、記憶素子の電荷レベル電圧範囲のウィンドウ（窓）を３つ以上の状態に分割することによって達成される。例えば、このような状態を４つ使用することによって、各セルが２ビットのデータを記憶することが可能となり、８つの状態が１記憶素子当たり３ビットのデータを記憶する。フローティングゲートを用いる多状態のフラッシュＥＥＰＲＯＭ構造およびその動作は米国特許第５，０４３，９４０号（特許文献１３）および第５，１７２，３３８号（特許文献１４）に説明され、誘電性のフローティングゲートを用いる構造については前述した米国公開特許出願第２００３／０１０９０９３号（特許文献１２）に説明されている。また、米国特許第５，９３０，１６７号（特許文献１５）および第６，４５６，５２８号（特許文献１６）に説明されているように、多状態メモリセルアレイの選択された部分を、様々な理由で２つの状態（２値）で動作することができる。
【０００７】
一般的なフラッシュＥＥＰＲＯＭアレイのメモリセルは、同時に消去されるセルの離散的なブロックに分割されている。すなわち、ブロックは消去単位であり、最小数のセルは同時に消去できる。一般的に、各ブロックはデータの２つ以上のページを記憶し、ページは、プログラミングおよび読み出しの最小単位である。しかし、２つ以上のページを、異なるサブアレイまたはプレーンに並行してプログラムまたは読み出すことができる。一般的に、各ページはデータの１つ以上のセクタを記憶し、セクタの大きさはホストシステムによって定義される。例示的なセクタは、磁気ディスクドライブよって確立された規格に従う５１２バイトのユーザデータと、ユーザデータおよび／またはそれらが記憶されるブロックに関する幾らかのバイト数のオーバーヘッド情報とを含む。一般的に、このようなメモリは、各ブロック内に１６、３２またはそれ以上のページを有し、各ページが１つまたはごくわずかのホストセクタのデータを記憶するように構成されている。
【０００８】
ユーザデータをメモリアレイ内にプログラムし、そこからユーザデータを読み出す間、並列性の度合いを増大させるため、従って、性能を改善するため、一般的に、アレイは、プレーンと一般に称されるサブアレイに分割され、プレーンは、データのセクタを幾つかまたはすべてのプレーンの各々に同時にプログラムするかまたはそこから読み出すことができるように並列動作を可能にするデータレジスタおよび他の回路を含む。単一集積回路上のアレイをプレーンに物理的に分割することができ、または分離した１つ以上の集積回路チップから各プレーンを形成することができる。このようなメモリの実施例が、米国特許第５，７９８，９６８号（特許文献１７）および第５，８９０，１９２号（特許文献１８）に説明されている。
【０００９】
メモリをさらに効率良く管理するため、ブロックを結合して仮想ブロックまたはメタブロックを形成することができる。すなわち、各メタブロックは、各プレーンから１つのブロックを含むように定義されている。メタブロックの使用は、米国特許第６，７６３，４２４号（特許文献１９）に説明されている。本願明細書で説明した他のすべての特許および特許出願と同様に、この特許も本願明細書において参照により援用されている。メタブロックは、データをプログラムし読み出す出力先としてホスト論理ブロックアドレスによって識別される。同様に、メタブロックのブロックのすべては同時に消去される。このような大規模なブロックおよび／またはメタブロックで動作されるメモリシステム内のコントローラは、ホストから送信された論理ブロックアドレス（ＬＢＡ）と、メモリセルアレイ内の物理ブロック番号（ＰＢＮ）との間の変換を含む多くの機能を実行する。一般的に、ブロック内の個々のページは、ブロックアドレス内のオフセットによって識別される。アドレス変換は、論理ブロック番号（ＬＢＮ）および論理ページの中間の使用を含むことが多い。
【００１０】
メタブロックに記憶されたデータは更新されることが多く、更新の可能性はメタブロックのデータ容量として増大する。１つのメタブロックの更新されたセクタは、通常、別のメタブロックに書き込まれる。また、変更されなかったセクタは、データを統合するため、通常、同じプログラミング動作の一部として元のメタブロックから新たなメタブロックへ複写される。代替例として、変更されなかったデータは、更新されたデータと単一メタブロック内で後で再び統合するまで元のメタブロック内にとどまることができる。
【００１１】
消去ブロックプール内に維持された幾つかの余分なブロックで大規模なブロックまたはメタブロックシステムを動作することは一般的である。ブロックの容量に満たないデータの１つ以上のページが更新される場合、一般的に、更新されたページを、プールから消去されるブロックに書き込み、次に、変更されていないページのデータを元のブロックから消去プールブロックに複写する。この手法の変形例が、前述した米国特許第６，７６３，４２４号（特許文献１９）に説明されている。長期にわたると、ホストデータファイルが再度書き込まれ更新された結果として、多くのブロックは、有効データを含む比較的少数のページと、もはや最新ではないデータを含む残りのページとになる。アレイのデータ記憶容量を効率良く用いることができるため、有効データの論理的に関連するデータページは、時々、複数のブロックの断片から集められ、少数のブロックに統合される。この処理は、「ガーベッジコレクション」と一般に称される。
【００１２】
幾つかのメモリシステムでは、物理メモリセルは２つ以上の区域にも分類される。区域を、物理メモリまたはメモリシステムの任意の区画されたサブセットとすることができ、これらサブセットには、指定された範囲の論理ブロックアドレスがマッピングされる。例えば、６４メガバイトのデータを記憶できるメモリシステムを４つの区域に区画することができ、１区域当たり１６メガバイトのデータを記憶する。次に、論理ブロックアドレスの範囲も４つの群に分割され、１つの郡は、４つの各々の区域の物理ブロックに割り当てられる。一般的な実施例において、論理ブロックアドレスは制約されているので、論理ブロックアドレスがマッピングされた単一物理区域の外には各々のデータは決して書き込まれない。アドレス指定、プログラミングおよび読み出し回路を各々有するプレーン（サブアレイ）に分割されたメモリセルアレイでは、各区域は、複数のプレーンからブロックを含むのが好ましく、一般的には、各プレーンから同数のブロックを含む。主として、区域は、論理−物理変換のようなアドレス管理を単純にして、その結果、変換テーブルを小さくし、これらテーブルを保持するのに必要とされるＲＡＭメモリを小さくし、メモリの現在アクティブな領域をアドレス指定するためのアクセス時間を速めるために用いられているが、制限された性質のため、結果として、最適な消耗平均化に満たないことがある。
【００１３】
個々のフラッシュＥＥＲＯＭセルは、１ビット以上のデータを表す電荷量を電荷記憶素子またはユニット内に記憶する。記憶素子の電荷レベルは、セルの記憶状態を読み出す基準として用いられるメモリセルの（一般にＶT と称される）しきい値電圧を制御する。一般に、しきい値電圧のウィンドウ（窓）は、メモリセルの２つ以上の記憶状態の各々にそれぞれ１つ対応する多数の範囲に分割されている。これら範囲は、個々のセルの記憶状態を決定させる公称感知レベルを含む保護帯域によって分離されている。これら記憶レベルは、隣接または他の関連するメモリセル、ページまたはブロックに実行される電荷による妨害プログラミング動作、妨害読み出し動作または妨害消去動作の結果として変化する。従って、誤り訂正符号（ＥＣＣ）は一般的にコントローラによって計算され、プログラムされるホストデータと一緒に記憶され、読み出し中、データを検証し、必要に応じて、あるレベルのデータ訂正を実行するのに用いられる。また、妨害動作が電荷レベルを所定範囲から大きく変化させ、従って、誤りデータを読み出させる前に、変化した電荷レベルを時々、それらの状態範囲の中心に戻し復元することができる。この処理は、データリフレッシュまたは消し込みと称され、米国特許第５，５３２，９６２号（特許文献２０）および第５，９０９，４４９号（特許文献２１）に説明されている。
【００１４】
メモリセルアレイの１つの構造は、好適には、セルのサブアレイまたは他の単位内にあって共通の消去ゲートを共有するメモリセルの１行または２行からブロックを形成する。この構造の一例として、サンディスク  コーポレイションの米国特許第５，６７７，８７２号（特許文献２２）および第５，７１２，１７９号（特許文献２３）が挙げられる。これら特許は、その全体が本願明細書において参照により援用されている。サンディスク
コーポレイションの米国特許第５，９３０，１６７号（特許文献２４）に説明されているように、各メモリセルの動作を２つの状態（１セル当たり１データビット）、または４つの状態（１セル当たり２データビット）のような複数に選択できるようにもブロック構造を形成することができる。これら特許は、その全体が本願明細書において参照により援用されている。
【００１５】
フローティングゲートメモリセルへのデータのプログラミング動作にかなりの時間がかかることがあるので、一般的に、１行内の多数のメモリセルは同時にプログラムされる。単一単位としてプログラムできる最小のデータ量は１ページである。１ページは２つ以上のセクタを備えることができる。従って、単一プログラミング動作は、メモリアレイの幾つかのセクタを同時にプログラムすることができる。並列性の増大は、電力要件と、隣接セルの電荷または隣接セル間の相互作用による潜在的な妨害とを増大させる。サンディスク  コーポレイションの米国特許第５，８９０，１９２号（特許文献２５）および第６，４２６，８９３号（特許文献２６）には、これらの影響を最小化するシステムについて説明されている。これら特許は、その全体が本願明細書において参照により援用されている。
【００１６】
メモリセルアレイとの間でデータを移動するために１つ以上のレジスタを用いることができる。複数のレジスタメモリシステムの例が、米国特許第６，３４９，０５６号（特許文献２７）および第６，５６０，１４３号（特許文献２８）に説明されている。一般的に、レジスタは、メモリセルアレイの１行内のデータに等しいデータを保持する。一般的に、レジスタは揮発性であって、従って、電源が失われた場合、このようなレジスタ内のデータのいずれも損失する。
【００１７】
読み出しおよび書き込み動作を加速するために不揮発性メモリアレイと併せてキャッシュメモリを用いることができる。読み出しキャッシュは、ホストによって頻繁に要求されるデータを記憶することができる。このことは、不揮発性アレイがアクセスされる回数を減少させる。ハラリらの米国特許第６，５２３，１３２号（特許文献２９）に説明されているように、不揮発性アレイへの書き込みの数を減少させるために書き込みキャッシュを用いることができる。この特許は、その全体が本願明細書において参照により援用されている。このことは、必要とされる書き込み動作の数を減少させることによって不揮発性アレイの消耗を減少させることができる。一般的に、キャッシュメモリはメモリコントローラシステムの一部であり、キャッシュメモリを、コントローラと同じチップ上に形成することができる。一般的に、不揮発性アレイは別個のチップ上に形成され、または２つ以上の別個のチップを備えることができる。
【００１８】
２ビット以上のデータがセル内に記憶されている場合、記憶された電荷のわずかな変化は、記憶されたデータを破損することがある。このことは、同じ行を２回以上プログラムさせないことがある。行の空き部分をプログラムしようとすることは、既にプログラムされたセルのフローティングゲートへ電荷を追加させることによって行のプログラム部分にプログラム妨害を生じさせることがある。幾つかのメモリシステムでは、消去が実行されない限り、メモリセルアレイの各行を１回だけ書き込むことができる。従って、セルの行は、プログラミングの最小単位（ページ）を定義することがある。このようなメモリシステムでは、データの単一セクタをアレイに記憶することは、複数のセクタを記憶できるページを占有することがある。例えば、ホストが単一セクタを送信する場合、このセクタは、図１Ａに示されているように、アレイ内のページに書き込まれる。書き込み動作は、ページの残りを空にしておく。この例では、ページ内のこの空き空間は、データの３つのセクタを保持することができる。セクタが逐次受信されても、セクタ間に遅延が生じるようにセクタを別々にプログラムすることがある。これによって、メモリアレイ内で利用できる空間の使用に非効率が生じる。
【００１９】
この問題に対応する１つの方法は、満杯でないページ内に記憶されたセクタを結合するということである。例えば、図１Ｂには、メモリアレイ内の２つのページを示し、各ページは、データの４つのセクタを記憶することができる。セクタが前述したようにプログラムされたので、各ページはデータの１つのセクタのみを保持する。２つの記憶されたセクタを第３のページに複写することができる。従って、２つのセクタは、前にこれらセクタが占有した２つのページの代わりにアレイ内の１ページの空間のみを占有する。しかし、ページを用いて、より多くのデータを記憶することができる前に最初の２つのページを依然として消去する必要がある。このシステムは、記憶されたセクタを第１および第２のページから読み出し、結合されたセクタを第３のページに書き込み、次に、セクタが占有したページを再使用するために、元のセクタを含む１つ以上のブロックの消去を実行するための追加のステップを含む。これらの動作をガーベッジコレクションの一部として行うことができる。ガーベッジコレクションによって、データをメモリアレイ内に効率良く構成することができるが、ガーベッジコレクションは時間がかかり、システムの資源を用い、従って、不要なオーバーヘッドを強いる。ページの大きさが増大するにつれて、このようなページのガーベッジコレクションはオーバーヘッドを増大するようになる。
【００２０】
従って、メモリアレイのプログラミングの最小単位よりも小さい個々のアドレス可能なデータパケットでデータが受信される場合、メモリアレイ内にデータを記憶する効率良い方法が必要とされる。
【特許文献１】米国特許第５，０７０，０３２号
【特許文献２】米国特許第５，０９５，３４４号
【特許文献３】米国特許第５，３１３，４２１号
【特許文献４】米国特許第５，３１５，５４１号
【特許文献５】米国特許第５，３４３，０６３号
【特許文献６】米国特許第５，６６１，０５３号
【特許文献７】米国特許第６，２２２，７６２号
【特許文献８】米国特許第５，５７０，３１５号
【特許文献９】米国特許第５，７７４，３９７号
【特許文献１０】米国特許第６，０４６，９３５号
【特許文献１１】米国特許第６，５２２，５８０号
【特許文献１２】米国公開特許出願第２００３／０１０９０９３号
【特許文献１３】米国特許第５，０４３，９４０号
【特許文献１４】米国特許第５，１７２，３３８号
【特許文献１５】米国特許第５，９３０，１６７号
【特許文献１６】米国特許第６，４５６，５２８号
【特許文献１７】米国特許第５，７９８，９６８号
【特許文献１８】米国特許第５，８９０，１９２号
【特許文献１９】米国特許第６，７６３，４２４号
【特許文献２０】米国特許第５，５３２，９６２号
【特許文献２１】米国特許第５，９０９，４４９号
【特許文献２２】米国特許第５，６７７，８７２号
【特許文献２３】米国特許第５，７１２，１７９号
【特許文献２４】米国特許第５，９３０，１６７号
【特許文献２５】米国特許第５，８９０，１９２号
【特許文献２６】米国特許第６，４２６，８９３号
【特許文献２７】米国特許第６，３４９，０５６号
【特許文献２８】米国特許第６，５６０，１４３号
【特許文献２９】米国特許第６，５２３，１３２号
【特許文献３０】米国特許第６，４２６，８９３号
【特許文献３１】米国特許出願第１０／７５０，１５５号
【特許文献３２】米国特許第６，７１７，８４７号
【発明の開示】
【００２１】
データを不揮発性メモリ内に記憶する効率良い方法は、不揮発性メモリアレイに接続されたキャッシュメモリを用いる。このことによって、メモリシステムに送信されたアドレス可能なデータパケットを、メモリアレイにプログラムするための大規模なデータの単位内に組み立てることができる。例えば、メモリシステムに送信された個々のセクタはメモリアレイに直接にプログラムされない。その代わりに、セクタはキャッシュメモリ内に記憶される。データの別のセクタが受信された場合、２つのセクタは、それらを単一ページ内に同時にプログラムできるかどうかを確かめるために比較される。２つのセクタを同じページ内にプログラムすることができる場合、新たなセクタは、キャッシュされたセクタと一緒にキャッシュメモリ内に記憶される。受信される次のセクタも同様に、２つのキャッシュされたセクタと比較され、キャッシュされたセクタと一緒にプログラムできる場合にキャッシュメモリ内に記憶される。キャッシュされたセクタと同じページにプログラムすることができないセクタが受信された場合、キャッシュされたセクタは不揮発性メモリにプログラムされ、従って、キャッシュメモリを空にする。次に、新たに受信されたセクタはキャッシュメモリ内に記憶される。従って、各々がデータの１つのセクタを含む２つのページをプログラムする代わりに、２つのセクタは単一ページに同時プログラムされる。この例は、１つのページに２つのみのセクタをプログラムすることを含む。しかし、このようにして単一ページに３つ以上のセクタをプログラムすることができる。ページがデータの４つのセクタを含む場合、このようにして４つものセクタを同時にプログラムすることができる。
【００２２】
キャッシュされたデータと一緒にプログラムすることができない新たなデータが受信された時に不揮発性メモリにプログラムすることと同様に、プログラミング動作を他の事象によって起動することができる。例えば、揮発性メモリがキャッシュメモリとして用いられる場合、低電力状態が検出された時に、キャッシュされたデータをアレイにプログラムすることができる。これによって、電源が取り外された時に、揮発性キャッシュ内に記憶されたデータの損失を防止する。代替例として、不揮発性メモリをキャッシュとして用いることができる。一定の不活性期間の後にも、キャッシュされたデータをアレイに書き込むことができる。
【００２３】
キャッシュメモリは不揮発性メモリとして同じチップ上に存在しうる。既に多くの不揮発性メモリシステムの一部であるレジスタを用いてキャッシュメモリを実施することができる。例えば、キャッシュメモリシステムは、米国特許第６，４２６，８９３号（特許文献３０）に説明されているレジスタのようなレジスタを用いることができる。
【発明を実施するための最良の形態】
【００２４】
メモリ構造およびその動作
最初に図２Ａを参照する。フラッシュメモリは、メモリセルアレイおよびコントローラを含む。図に示されている例では、２つの集積回路装置（チップ）１１，１３は、メモリセルのアレイ１５および様々な論理回路１７を含む。論理回路１７は、データ、命令および状態回路を介して別個のチップ上のコントローラ１９とインターフェイスをとり、しかも、アドレス指定、データ転送および感知を行い、アレイ１３への他の支援を行う。設けられている記憶容量に応じてメモリアレイチップの数を１から多数とすることができる。代替例として、コントローラと、一部または全部のアレイとを単一集積回路チップ上に結合することができる。しかし、この代替例は現在のところ経済的ではない。
【００２５】
一般的なコントローラ１９は、マイクロプロセッサ２１と、主としてファームウェアを記憶するプログラムメモリ２３と、主として、メモリチップ１１，１３へ書き込むか、そこから読み出されるユーザデータを一時的に記憶するデータバッファメモリ（ＲＡＭ）２５とを含む。プログラムメモリを、揮発性メモリまたは不揮発性メモリとすることができる。プログラムメモリは、コントローラの動作に関するデータを記憶するのに専用である。一例では、プログラムメモリは読み出し専用メモリ（ＲＯＭ）である。回路２７は（１つ以上の）メモリアレイチップとインターフェイスをとり、回路２９は接続部３１を介してホストとインターフェイスをとる。この例では、データの整合性は、コードを計算するのに専用である回路３３でＥＣＣを計算することによって決定される。ユーザデータが記憶のためにホストからフラッシュメモリアレイへ転送されると、回路はデータからＥＣＣを計算し、コードはメモリ内に記憶される。このユーザデータが後でメモリから読み出される場合、このユーザデータは再び回路３３に通され、回路３３は、同じアルゴリズムによってＥＣＣを計算し、このコードを、データを用いて計算され記憶されたコードと比較する。これらコードが匹敵する場合、データの整合性は確認される。これらコードが異なる場合、使用された特定のＥＣＣアルゴリズムに応じて、アルゴリズムによって支援されている数まで、誤りのこれらビットを識別し訂正することができる。
【００２６】
図２Ａのメモリの接続部３１は、一例として図２Ｂに示されているホストシステムの接続部３１’と結合する。ホストと図２Ａのメモリとの間のデータ転送は、インターフェイス回路３５を介する。また、一般的なホストは、マイクロプロセッサ３７と、ファームウェアコードを記憶するＲＯＭ３９と、ＲＡＭ４１とを含む。他の回路およびサブシステム４３は、特定のホストシステムに応じて大容量磁気データ記憶ディスクドライブ、キーボード用のインターフェイス回路、モニタなどを含むことが多い。このようなホストの幾つかの例として、ディスクトップ形コンピュータ、ラップトップ形コンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、個人用携帯情報端末（ＰＤＡ）、ＭＰ３および他のオーディオプレーヤ、デジタルカメラ、ビデオカメラ、電子ゲーム機、無線および有線電話装置、留守番電話機、音声録音装置、ネットワークルータなどが挙げられる。
【００２７】
図２Ａのメモリは、図２Ｂのホストと取り外し可能に接続できる形態をとるコントローラおよびすべてのメモリアレイ回路装置を含む小形の封入カードとして実装することができる。すなわち、結合している接続部３１，３１’によって、カードを外し別のホストに移動し、または別のカードをホストに接続することによりカードを取り替えることができる。代替例として、コントローラおよび接続部３１を含むカードと電気的かつ機械的に接続可能である別個のカード内にメモリアレイ装置を封入することができる。更なる代替例として、図２Ａのメモリを図２Ｂのホスト内に埋め込むことができ、接続部３１，３１’は取り外せないように形成される。この場合、通常、メモリは、他の構成要素と一緒にホストの筐体内に含まれる。
【００２８】
図３Ａには、メモリアレイの一部を示し、メモリセルはブロックに分類され、各ブロック内のセルは、通常同時に生じる単一消去動作の一部として同時に消去可能である。ブロックは消去の最小単位である。
【００２９】
図３Ａの個々のメモリセルのブロックの大きさは異なることができる。しかし、１つの商業的に実施されている形態は、個々のブロック内に単一セクタのデータを含む。このようなデータセクタの内容は図３Ｂに示されている。ユーザデータ５１は一般的に５１２バイトである。ユーザデータから計算されたＥＣＣ５３と、セクタデータに関連し、および／またはセクタがプログラムされたブロックに関連するパラメータ５５と、パラメータ５５から計算されたＥＣＣ５７とを含むオーバーヘッドデータと、を含めることができる任意の他のオーバーヘッドデータとがユーザデータ５１に追加されている。
【００３０】
パラメータ５５は、「ローテーション」と称する、メモリセルの記憶状態の各々に割り当てられたビット値の指標を含むことができる。このことは、消耗平均化にも有益な効果がある。状況または状態を示す１つ以上のフラグもパラメータ５５に含めることができる。ブロックをプログラムおよび／または消去するのに用いるべき電圧レベルの指標をもパラメータ５５内に記憶することができ、これら電圧は、ブロックによって体験された周期の数および他の要素が変化すると更新される。パラメータ５５の別の例として、ブロック内の任意の欠陥セルの識別子と、この物理ブロックにマッピングされたブロックの論理アドレスと、主なブロックに欠陥がある場合には任意の代替ブロックのアドレスとが挙げられる。任意のメモリシステムに用いられるパラメータ５５の特定の組み合わせは、設計に従って異なる。また、ユーザデータを含むブロック、またはオーバーヘッドデータが関連するブロック内というよりも、このような機能専用のブロックにオーバーヘッドデータの一部または全部を記憶することができる。
【００３１】
図４の複数セクタのブロックは、図３Ａの単一データセクタのブロックとは異なる。一例のブロック５９は依然として消去の最小単位であり、４つのページ０〜３を含み、各ページ０〜３はプログラミングの最小単位である。１つ以上のホストセクタのデータは、一般的に、セクタのデータから計算された少なくともＥＣＣを含むオーバーヘッドデータと一緒に各ページに記憶され、図３Ｂのデータセクタの形態をとることができる。
【００３２】
全ブロックのデータの再書き込みは、通常、消去ブロックプールの消去されるブロック内に新たなデータをプログラムすることを含み、この場合、元のブロックは消去され、消去プール内に配置される。ブロックの全ページには満たないページのデータが更新される場合、更新されたデータは一般的に、消去ブロックプールから、消去されるブロックのページ内に記憶され、残りの変更されなかったページのデータは、元のブロックから新たなブロックへ複写される。次に、元のブロックは消去される。この大規模なブロック管理手法の変形例には、元のブロックからデータを移動しないで、またはそれを消去しないで、更新されたデータを別のブロックのページに書き込むことが含まれる。この結果、同じ論理アドレスを有する複数のページを生じさせる。最新のページのデータは、セクタ内のフィールドまたはページオーバーヘッドデータとして記録されたプログラムの時間のような何らかの都合良い技術によって識別される。
【００３３】
図５には、更なる複数セクタのブロック配置を示す。この場合、全メモリセルアレイは２つ以上のプレーンに物理的に分割され、図には４つのプレーン０〜３が示されている。各プレーンは、それ自体のデータレジスタ、センス増幅器、およびアドレスデコーダなどを有するので、他のプレーンに大規模に独立して動作できるメモリセルのサブアレイである。単一集積回路装置または複数の装置上にすべてのプレーンを設けることができる。複数の装置の一例では、１つ以上の異なる集積回路装置から各プレーンを形成する。図５の例示的なシステム内の各ブロックは１６つのページＰ０〜Ｐ１５を含み、各ページは、１つ、２つまたはそれ以上のホストデータセクタおよび幾つかのオーバーヘッドデータの容量を有する。
【００３４】
図６には、別のメモリセル配置を示す。各プレーンはセルの多数のブロックを含む。動作の並列性の度合いを増大させるため、異なるプレーン内のブロックは、メタブロックを形成するように論理的に結合されている。１つのこのようなメタブロックは、図６に示されているように、プレーン０のブロック３、プレーン１のブロック１、プレーン２のブロック１、およびプレーン３のブロック２から形成される。メモリコントローラは、個々のメタブロックを形成するブロックのトラックを割り当て保持する。ホストシステムは、セクタのようなデータのアドレス可能な単位でメモリシステムとインターフェイスをとるのが好ましい。メモリコントローラは、複数のセクタを備えるデータの他の単位を用いることができる。例えば、論理データブロックは、個々のメタブロックの容量に等しいデータを備えるデータの単位である。図６のこのような論理データブロック６１は、例えば、メタブロックを形成するブロックへコントローラによってマッピングされている。メタブロックの全ブロックは同時に消去され、好ましくは、各ブロックからのページを同時にプログラムし読み出す。
【００３５】
大部分のフラッシュメモリシステムでは、コントローラは、データの一部（例えば、セクタ）が記憶されている物理位置の記録を維持する。不揮発性メモリアレイにおける特定のセクタの位置を決定することができるように論理−物理マッピングは実行される。多くの例では、論理−物理情報も更新されるようにデータが更新される時、データは新たな物理位置に書き込まれる。データのセクタを逐次的な順序でブロック内に維持することができ、または「不揮発性メモリおよびブロック管理システムを伴う方法」という米国特許出願第１０／７５０，１５５号（特許文献３１）に説明されるように非逐次的な順序で書き込むことができる。この特許出願は、その全体が本願明細書において参照により援用されている。
【００３６】
図３〜図６を参照して前述したメモリを実施するのに用いることができる多くの異なるメモリアレイ構造、構成、および特定のセル構造が存在する。図７には、ＮＡＮＤ形のメモリアレイの１つの一ブロックが示されている。直列接続されたメモリセルの多数の列方向ストリングは、電圧Ｖｓｓの共通源６５とビット線ＢＬ０〜ＢＬＮの１つとの間に接続され、ビット線ＢＬ０〜ＢＬＮは、アドレスデコーダ、ドライバ、読み出しセンス増幅器などを含む回路６７と接続されている。特に、１つのこのようなストリングは、ストリングの反対端にある選択トランジスタ７７，７９間に直列に接続された電荷記憶トランジスタ７０，７１．．７２，７４を含む。この例では、各ストリングは１６の記憶トランジスタを含む。しかし、他の数も実現可能である。ワード線ＷＬ０〜ＷＬ１５は、各ストリングの１つの記憶トランジスタにわたって延在し、ワード線のアドレスデコーダおよび電圧源ドライバを含む回路８１に接続されている。線８３，８４上の電圧は、選択トランジスタを介して電圧源６５および／またはビット線ＢＬ０〜ＢＬＮへのブロック内の全ストリングの接続を同時に制御する。データおよびアドレスはメモリコントローラによってもたらされる。
【００３７】
ブロックの電荷記憶トランジスタ（メモリセル）の各行は、同時にプログラムされ読み出されるページを形成する。適切な電圧は、このようなページのワード線（ＷＬ）に、ページのデータをプログラムまたは読み出すために印加され、その間、残りのワード線に印加された電圧が選択されて、それぞれの記憶トランジスタを導電状態にする。記憶トランジスタの１行（ページ）をプログラミングまたは読み出す過程では、全ストリングにわたり、かつワード線に印加された電圧のせいで、非選択の行に以前に記憶された電荷レベルを妨害することがある。
【００３８】
図８には、本発明を用いるメモリシステム８００の一例を示す。メモリアレイ８０２は、メモリアレイ８０２の隣接する縁に沿ってメモリアレイ８０２に接続されたワード線デコーダ８０４およびビット線デコーダ８０６を有する。ワード線デコーダ８０４はコントローラ８０８に接続されている。ビット線デコーダ８０６はキャッシュメモリ８１０に接続されている。キャッシュメモリ８１０はコントローラ８０８に接続されている。従って、キャッシュメモリ８１０はコントローラ８０８とビット線デコーダ８０６との間で一列に並んでいる。コントローラ８０８とメモリアレイ８０２との間を行き来するデータはキャッシュメモリ８１０を通過する。特に、メモリアレイ８０２内に記憶するためにコントローラ８０８から送信されたデータはキャッシュメモリ８１０を通過する。データがメモリアレイ８０２に書き込まれる前にデータをキャッシュメモリ８１０に記憶することができる。図８に示されている例では、コントローラ８０８はホストに接続されている。図に示された種類のメモリシステムを、ホストシステムと取り外し可能に接続されている封入カード内で用いることができる。例えば、このメモリシステムを、前述した規格（ＰＣＭＣＩＡ，ＣＦ，ＭＭＣ，ＳＤ）の１つに準拠するカード内に実装することができる。ホストをデジタルカメラ、携帯電話、またはメモリカードを用いる他の装置とすることができる。代替例として、メモリシステムをホストシステム内に組み入れることができる。
【００３９】
図９Ａには、空のキャッシュメモリ８１０に送信されるデータのアドレス可能な単位９１２を示す。このようなアドレス可能な単位の一例として、５１２バイトを備えるデータのセクタが挙げられる。この例では、セクタ９１２はホストから受信され、メモリアレイ８０２に書き込まれる代わりにキャッシュメモリ８１０に記憶される。このことは、図１の従来技術の例と対照をなしている。図１の例では、セクタがレジスタに転送された後、メモリアレイに書き込まれる。図９Ａでは、セクタ９１２は、データの４つのセクタを含むことができるキャッシュメモリ８１０に記憶される。その理由は、メモリアレイ８０２に対する１つのページ（プログラミングの単位）の大きさが４つのセクタであるためである。さらに多くのページを有するメモリアレイは、さらに大規模なキャッシュメモリを必要とする。
【００４０】
セクタがキャッシュメモリに記憶される時に、セクタがプログラムされたことを示す信号をホストに送信することができる。このことは、ホストがさらに多くのデータをメモリシステムに送信することを可能にする。キャッシュメモリへの書き込みは、多くの不揮発性メモリアレイへの書き込みよりも高速であるので、キャッシュへのセクタの記憶はシステム速度を改善することができ、書き込み動作が実行された場合よりも高速にホストに別のセクタを送信させることができる。
【００４１】
図９Ｂには、図９Ｂのキャッシュメモリによって受信されるデータの別のセクタ９１４を示す。新たなセクタ９１４と、キャッシュされたセクタ９１２とは、それらを同じページのメモリアレイに書き込むことができるかどうかを決定するために比較される。この決定を、新たなセクタ９１４と、キャッシュされたデータ、この場合にはセクタ９１２を記憶する物理ページ位置とを比較することによって行うことができる。図に示されている例では、データの２つのセクタ９１２，９１４を同じページに書き込むことができる。セクタ９１２，９１４を同時に書き込むことができるので、新たなセクタ９１４は、キャッシュされたセクタ９１２と一緒にキャッシュメモリ８１０内に記憶されている。次のセクタ９１４がプログラムされたことを示す信号はホストに送信される。一般的には、セクタが論理的に逐次的である場合、セクタを同時にプログラムすることができる。コントローラがセクタをメモリアレイに逐次送信することが多いので、このような受信されたセクタを頻繁に単一ページにプログラムすることができる。
【００４２】
図９Ｃには、キャッシュメモリ８１０によって受信されるデータの別のセクタ９１６を示す。新たなセクタ９１６は、キャッシュされたデータと再度比較される。この場合、２つのセクタ９１２，９１４は既にキャッシュメモリ８１０内にあり、これらは同時にプログラムされるべきである。新たなセクタ９１６が、キャッシュされたセクタ９１２，９１４と同じページにプログラムされる場合、新たなセクタ９１６は、キャッシュされたセクタ９１２，９１４と一緒にキャッシュメモリ８１０内に記憶されることになっている。しかし、この例では、新たなセクタ９１６は、メモリアレイ８０２の異なるページに割り当てられる。従って、セクタ９１６は、キャッシュされたセクタ９１２，９１４と一緒に記憶されない。
【００４３】
新たなセクタ９１６とキャッシュされたデータとを別々にプログラムする必要があるので、キャッシュされたデータはメモリアレイ８０２に書き込まれる。キャッシュは単一ページに書き込まれ、従って、キャッシュメモリ８１０に記憶された２つのセクタ９１２，９１４は単一ページに書き込まれる。キャッシュ８１０をメモリアレイ８０２に書き込むことはキャッシュ８１０を空にする。次に、新たなセクタ９１６はキャッシュ８１０に記憶される。図９Ｃに示されているように、結果として、２つのセクタ９１２，９１４はページの更なる複写、または追加の消去ステップなしに単一ページ内に記憶される。しかし、潜在的な空間の更なる多くの節約を達成することができる。例えば、４つのセクタを備えるページ内に４つのセクタまで同時にプログラムすることができ、メモリアレイ内に３ページもの空間が節約される。より多くのセクタを含むためにページの大きさが大きくなる場合、メモリアレイ内の空間に起こりうる節約はさらに大規模になる。
【００４４】
以前には２つの別個の書き込み動作が必要とされた２つのセクタ９１２，９１４をプログラムすることが、この例では１つのみの書き込み動作で足りる。書き込み動作は多大な時間を必要とすることがあるので、ホストとメモリシステムとの間でデータを転送する速度を増大させることができる。しかも、１つのみのページを用いて２つのセクタを記憶するので、メモリアレイ内の空間は効率良く用いられる。セクタがキャッシュ内に記憶された後、ホストは、書き込み動作を実行するまで以前にホストが待機することになっていた別のセクタを送信することができる。
【００４５】
図１０Ａには、逐次受信されたセクタ１０１，１０２，１０３，１０４のプログラミング動作を示す。この例では、セクタが論理的に逐次的であるので、またはメモリシステムがセクタの非逐次的な記憶を可能にするので、セクタを単一ページ１０６内に同時にプログラムすることができる。一般的に、ホストから受信された単一セクタは逐次的である。この例では、４つのセクタがデータの完全なページを形成するように示されているが、幾つかの場合では、データの全ページに満たないページをプログラムすることができる。
【００４６】
図１０Ｂには、ホストがデータのセクタ１０７を送信し、セクタ１０７が以前に送信されたセクタ１０８に取って代わる場合を示す。新たなセクタ１０７および古いセクタ１０８は同じ論理アドレスを有する。キャッシュされたセクタ１０８をメモリアレイに書き込むことなく、新たなセクタ１０７はキャッシュ８１０内の古いセクタ１０８に取って代わることができる。このことはアレイ８０２の消耗を減少させ、しかも、メモリシステム８００の速度を増大させる。
【００４７】
図１１には、オンチップキャッシュ８１０を用いる別の例を示す。ページ１１１のデータは最初にメモリアレイ８０２からキャッシュメモリ８１０に読み出される。次に、ページ１１１からのデータがキャッシュメモリ８１０内にある間、そのデータは変更される。この例で、変更とは、新たなセクタ１１３が古いセクタ１１２に取って代わることによってデータの１つのセクタを更新することである。他の例では、データの複数のページを更新することができる。キャッシュ８１０内のデータが変更された後、データはメモリアレイ８０２に書き込み直される。この例では、データは、データが読み出されたページ１１１とは異なる位置を有するページ１１４に書き込み直される。その理由は、同じ位置への書き込みが、消去ブロックのみに対して行うことができる消去動作を必要とするためである。このことは、大量のデータを消去することを含み、かなりの時間がかかることがあるので、一般的に、変更したデータを異なる位置に書き込むのが好ましい。データをメモリアレイの同じ消去ブロック内の異なる位置に書き込むことができ、または異なる消去ブロックに書き込むことができる。一般的に、コントローラは、論理アドレス−物理アドレスマッピングを記録する１つ以上のテーブルによって特定のデータが物理メモリ内に位置付けられたトラックを保持する。
【００４８】
本発明のキャッシュメモリの大きさは１つのみのページに限定されない。キャッシュメモリは、幾つかのページに対するデータを記憶することができる。このことによって、受信されたセクタをキャッシュして幾つかのページの１つにプログラムすることができる。このことは、メモリアレイに書き込む前にキャッシュメモリ内でセクタを結合する機会を増大させ、従って、メモリ記憶性能を増大させる。
【００４９】
一実施形態では、特定のメモリシステムに用いられるデータレジスタを用いてキャッシュメモリを実施することができる。このことは、メモリアレイと同じチップ上にある比較的小形でかつ簡単なキャッシュメモリを提供する。従って、更なるハードウェアを必要とすることなしに本発明を実施することができる。一般的に、このようなレジスタは揮発性ラッチから成る。メモリアレイまたはサブアレイに接続された１つ以上のレジスタは、メモリアレイまたはサブアレイの１つの行に記憶されたデータに等しいデータを記憶する。他の例では、アレイの２つ以上の行に対するデータがレジスタ内に記憶される。このことは、このようなレジスタを、メモリアレイの行に沿って延在する幅広いページにプログラムすべきデータをキャッシュするのに適するようにする。図１２には、キャッシュメモリとして用いることができる主レジスタ４０３および従属レジスタ４０４を有するメモリアレイ４００の一例を示す。
【００５０】
キャッシュメモリからメモリアレイへの書き込み動作を、異なる事象によって起動させることができる。一例として、前述したように、キャッシュされたデータと一緒にプログラムできないデータのセクタを受信することが挙げられる。別の例として、書き込み動作が必要とされていることを示す信号をホストから受信することが挙げられる。起動させるための別の事象は、低電力状態を検出するということである。低電力状態をメモリシステム内の回路によって検出することができる。例えば、不足電圧状態の検出（低電圧検出すなわち、ＬＶＤ）を用いて、低電力状態が差し迫っているかどうかを示すことができる。代替例として、低電力状態をホストによって検出することができ、低電力状態を示す信号をメモリシステムに送信することができる。低電力状態は、ホストに接続された取り外し可能なカード内にメモリシステムが実装されている場合に特定の問題となる。このようなカードは一般にホストから電力を獲得するので、カードの取り外しによって電源が失われる。データが揮発性キャッシュ内に記憶されている時にカードの取り外しが生じた場合、データを損失することがある。従って、低電力状態を検出し、キャッシュされたデータをメモリアレイに保存する幾つかの方法が必要とされる。
【００５１】
キャッシュされたデータを低電力状態中に保存する１つの方法として、このデータをメモリアレイに書き込むことが挙げられる。キャッシュされたデータが複数レベルのデータである場合、データを２進データとして保存することができる。一般的に、２進データは、複数レベルのデータよりも高速に書き込まれ、必要とされる電力は小さい。複数レベルのデータと２進データとの双方を同じメモリアレイに書き込む例は、「二進モードでの多状態不揮発性メモリシステムの選択的動作」という米国特許第６，７１７，８４７号（特許文献３２）に説明されている。この特許は、その全体が本願明細書において参照により援用されている。キャッシュされたデータをメモリアレイの所定のアドレスに書き込むことができる。低電力が検出された時、状態マシンは、キャッシュ内のデータをメモリアレイの所定のアドレスにプログラムすることを開始する。いかなるプログラム命令も必要とされない。この機能をコントローラによって使用可能にし、使用不可にすることができる。電力上昇中、コントローラは、所定のアドレスに書き込まれたデータがあるかどうかを確かめる検査をする。所定のアドレスにデータがある場合、このことは、最後の電力低下中にデータがキャッシュメモリ内に存在したことをコントローラに示す。従って、コントローラはデータをキャッシュメモリにロードすることができる。次に、データはメモリアレイから消去され、これによって、所定のアドレスは、その後の使用に利用可能になる。キャッシュ内にデータがなく、電力低下が生じた場合、データは所定のアドレスに書き込まれず、次の電力上昇では、コントローラは、所定のアドレスにデータが存在しないことを、従って、キャッシュメモリに復元するデータが存在しないことを単にベリファイする。
【００５２】
メモリシステム内のコンデンサのような電力貯蔵装置によって一時的な電力を提供することができる。低電力状態が差し迫っていることを示す信号をホストによって発信することができる。例えば、ホストシステム内でカードが保護されている場合、カードにアクセスする機会を与えることによって、ホストは、メモリアレイへの書き込みが必要とされているという信号を送信することができる。次に、カードがホストから取り外される前に揮発性キャッシュはメモリアレイに書き込まれる。
【００５３】
不活性期間の後にも、キャッシュされたデータをメモリアレイに書き込むことができる。従って、メモリシステムがデータを受信している限り、キャッシュは、アレイ内に記憶されるべきデータを維持する。データがホストから到着するのを停止した後の特定の期間、キャッシュメモリ内に残っているすべてのデータがメモリアレイに書き込まれる。このことは、電源の損失に備えてメモリシステムに準備を施す。
【００５４】
図１３には、新たな命令またはＬＶＤがメモリシステム内のコントローラによって受信されることを示すフローチャートを示す。命令が書き込み命令である（３３０）場合、セクタに対して一連のホストセクタ書き込みを開始する（３３２）。キャッシュが有効でないと判断した（３３４）場合（すなわち、キャッシュ内にデータが存在しない場合）、セクタをキャッシュに送信する（３３８）。キャッシュが有効であると判断した（３３４）場合（すなわち、キャッシュ内にデータが存在する場合）、セクタをキャッシュ内のデータと比較して、セクタがキャッシュ範囲内に物理アドレスを有するかどうかを決定する（３３６）。単一ページキャッシュの場合、このことは、キャッシュされたデータが割り当てられたメモリアレイ内の同じページにコントローラによってセクタが割り当てられたことを意味する。一般的に、このことは、キャッシュされたデータと、セクタとが同じ範囲内の論理アドレスを有することをも意味する。しかし、幾つかのシステムでは、キャッシュされたデータとセクタとの論理アドレスの間に間隔がある場合であっても、セクタを同時に記憶することができる。セクタがキャッシュ範囲内にある場合、セクタを、以前キャッシュされたデータと一緒にキャッシュメモリ内に記憶する（３３８）。セクタがキャッシュ範囲内にない場合、キャッシュフラッシュ処理を行う（３４０）。このことは、キャッシュの内容がメモリアレイにプログラムされることを意味する。プログラミング動作が完了した（３４２）後、セクタをキャッシュメモリに転送する。書き込むべきデータがさらにある（３４４）場合、この循環をその後のセクタについて繰り返す。書き込むべきデータがこれ以上ない場合、システムは所定の期間、待機すること（３４６）ができ、その後、キャッシュをフラッシュする（３４８）。キャッシュの内容を不揮発性メモリにプログラムした（３５０）後、システムは、新たな命令を待つ（３５２）。書き込み命令（３３０）ではない命令を受信した場合、キャッシュをフラッシュし（３５４）、フラッシュが完了した（３５６）時、ＬＶＤが生じたかどうかを判断する（３５８）。ＬＶＤが生じた場合、キャッシュの内容が既に不揮発性メモリ内に保存されているので、システムは、休止モード（３６０）に入ることができる。ＬＶＤが生じなかった場合、新たな命令に対する所定の処理に従ってこの命令を処理する（３６２）。
【００５５】
前述した説明は本発明の特定の実施形態を詳述している。しかし、本発明は、開示された実施形態、または示された例に用いられる特定の構造に限定されない。当然のことながら、本発明は、特許請求の範囲の全範囲内でその権利が保護されるべきである。
【図面の簡単な説明】
【００５６】
【図１Ａ】従来技術によるデータのセクタのプログラミング動作を示す。
【図１Ｂ】従来技術によってプログラムされたページのガーベッジコレクションを示す。
【図２Ａ】ホストシステムと一緒に動作する不揮発性メモリのブロック図である。
【図２Ｂ】不揮発性メモリと一緒に動作するホストシステムのブロック図である。
【図３Ａ】図２Ａのメモリアレイの第１の編成例を示す。
【図３Ｂ】図２Ａのメモリアレイに記憶されたオーバーヘッドデータを有するホストデータセクタの一例を示す。
【図４】図２Ａのメモリアレイの第２の編成例を示す。
【図５】図２Ａのメモリアレイの第３の編成例を示す。
【図６】図２Ａのメモリアレイの第３の編成例の拡張を示す。
【図７】１つの特定の構成における図２Ａのアレイの一群のメモリセルを示す回路図である。
【図８】キャッシュメモリを用いるメモリシステムを示す。
【図９Ａ】第１のセクタがメモリシステムによって受信され、キャッシュメモリ内に記憶されることを示す。
【図９Ｂ】第２のセクタがメモリシステムによって受信され、第１のセクタと一緒にキャッシュメモリ内に記憶されることを示す。
【図９Ｃ】第３のセクタがメモリシステムによって受信され、キャッシュメモリ内に記憶され、最初の２つのセクタがメモリアレイにプログラムされることを示す。
【図１０Ａ】逐次的な単一セクタが、キャッシュメモリを有するメモリシステムによって受信されることを示す。
【図１０Ｂ】セクタが受信され、このセクタが、キャッシュメモリ内に記憶されたデータのセクタに取って代わることを示す。
【図１１】データのページを更新する一連の読み出し−変更−書き込み動作を示す。
【図１２】オンチップキャッシュを実施するのに適するメモリシステムを示す。
【図１３】本発明の一実施形態に対するフローチャートを示す。
【図１Ａ】
2008524747.tif 000003
【図１Ｂ】
2008524747.tif 000004
【図２Ａ】
2008524747.tif 000005
【図２Ｂ】
2008524747.tif 000006
【図３Ａ】
2008524747.tif 000007
【図３Ｂ】
2008524747.tif 000008
【図４】
2008524747.tif 000009
【図５】
2008524747.tif 000010
【図６】
2008524747.tif 000011
【図７】
2008524747.tif 000012
【図８】
2008524747.tif 000013
【図９Ａ】
2008524747.tif 000014
【図９Ｂ】
2008524747.tif 000015
【図９Ｃ】
2008524747.tif 000016
【図１０Ａ】
2008524747.tif 000017
【図１０Ｂ】
2008524747.tif 000018
【図１１】
2008524747.tif 000019
【図１２】
2008524747.tif 000020
【図１３】
2008524747.tif 000021
【国際調査報告】
2008524747.tif 000022
2008524747.tif 000023
2008524747.tif 000024