(57)【要約】不揮発性メモリの記憶ユニット上のポインタ構造によって、物理アドレスと論理アドレスとの間の対応関係が保持される。コントローラおよび記憶ユニットによって、論理セクタアドレスに基づいてデータが転送され、物理アドレスと論理アドレスとの間の変換が記憶ユニット上で行なわれる。ポインタには、現在のデータの論理セクタアドレスと物理アドレスとの間の対応関係が含まれ、さらには古いデータが記憶されている論理アドレスと物理アドレスとの間の１つ以上の以前の対応関係も保持される。古いデータと新しいデータとをある時点に至るまで同時に保つことができる。バックグラウンド消去と組み合わせることで、性能が向上する。例示の実施形態において、ポインタ構造は、それぞれが独自の行デコーダを有する１つ以上の独立した不揮発性サブアレイである。各ポインタは、アクティブであるかどうか、さらに論理アドレスと物理アドレスとの間の現在の対応関係と１つ以上の以前の対応関係とを記憶するかどうかを示すために、フラグを有する。新しいデータを書き込むときには、それを利用可能な空のメモリセクタに書き込み、ポインタを同時に更新する。欠陥のあるセクタを行冗長方式において利用可能なセクタのプールから取り除くことができる。ランダム検索、バイナリ検索、または他の検索技術を用いて、利用可能な消去されたセクタを見つけることができる。
2005517260.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリシステムにおいて、
論理セクタアドレスによって識別されるデータを外部へ転送するためのコントローラと、
コントローラに接続されるメモリと、を備え、前記メモリは、
複数のセクタで構成されるアレイであって、各セクタは複数のデータ記憶エレメントを含み、物理アドレスによって識別されるものであるアレイと、
論理セクタアドレスと物理セクタアドレスとの間の対応関係を記憶するポインタ構造であって、前記ポインタ構造は、論理セクタアドレスによって識別される現在有効なデータが記憶される論理セクタアドレスと第１の物理セクタアドレスとの間の第１の対応関係と、論理セクタアドレスによって識別される以前に有効なデータが記憶されていた論理セクタアドレスと第２の別個の物理セクタアドレスとの間の第２の対応関係とを同時に保持するポインタ構造と、
を備える不揮発性メモリシステム。
【請求項２】
前記対応関係は、ポインタ構造の不揮発性記憶エレメント内に記憶される請求項１記載の不揮発性メモリシステム。
【請求項３】
アレイとポインタ構造に結合される読み取り回路構成および書き込み回路構成をさらに備え、前記アレイとポインタ構造とは別個のデコーダ構造を有する請求項２記載の不揮発性メモリシステム。
【請求項４】
前記対応関係はバイナリ不揮発性記憶エレメント内に記憶され、データ記憶エレメントはマルチ状態である請求項２記載の不揮発性メモリシステム。
【請求項５】
前記コントローラおよび前記メモリは、別個の集積回路上に形成される請求項１記載の不揮発性メモリシステム。
【請求項６】
前記メモリは、論理セクタアドレスによって識別される現在有効なデータと、論理セクタアドレスによって識別される以前に有効なデータとを同時に保持する請求項１記載の不揮発性メモリシステム。
【請求項７】
前記コントローラは、コマンドに応答して、論理セクタアドレスによって識別される以前に有効なデータにアクセスすることができる請求項１記載の不揮発性メモリシステム。
【請求項８】
前記メモリは、メモリアレイとポインタ構造とに結合される書き込み回路構成を備え、書き込み処理の間に、特定の論理セクタアドレスに対応する新しいデータが、アレイ内にアレイの新しい物理セクタアドレスに書き込まれるのと同時に、特定の論理セクタアドレスと新しい物理セクタアドレスとの間の新しい対応関係がポインタ構造内に記憶される請求項１記載の不揮発性メモリシステム。
【請求項９】
前記メモリは、アレイに結合される消去回路構成をさらに備え、それによって前記以前に有効なデータがバックグラウンド消去処理において消去可能である請求項８記載の不揮発性メモリシステム。
【請求項１０】
アレイの各セクタは付随するフラグビットを有し、集積回路は、
書き込み回路構成とアレイとに接続される決定回路をさらに備え、それによって前記付随するフラグビットに基づいて利用可能なセクタが新しい物理セクタアドレスに対して決定される請求項８記載の不揮発性メモリシステム。
【請求項１１】
集積回路において、
複数のセクタで構成される不揮発性メモリアレイであって、各セクタは複数のデータ記憶エレメントを含み、物理アドレスによって識別されるものである不揮発性メモリアレイと、
論理セクタアドレスによって識別されるデータを外部へ集積回路に向けて転送するためにメモリアレイに接続されるインタフェースと、
前記論理セクタアドレスを受け取るためにインタフェースに接続され、論理セクタアドレスと物理セクタアドレスとの間の対応関係を記憶するポインタであって、ポインタ構造は、第１の論理セクタアドレスによって識別される現在有効なデータが記憶される第１の論理セクタアドレスと第１の物理セクタアドレスとの間の第１の対応関係と、第１の論理セクタアドレスによって識別される以前に有効なデータが記憶されていた第１の論理セクタアドレスと第２の別個の物理セクタアドレスとの間の第２の対応関係とを同時に保持するものであるポインタと、
を備える集積回路。
【請求項１２】
前記ポインタは、不揮発性記憶エレメントから構成される請求項１１記載の集積回路。
【請求項１３】
前記データ記憶エレメントがマルチ状態の記憶ユニットであり、前記ポインタの記憶エレメントがバイナリ記憶エレメントである請求項１２記載の集積回路。
【請求項１４】
アレイとポインタ構造とに結合される読み取り回路構成および書き込み回路構成をさらに備え、前記アレイとポインタ構造とは別個のデコーダ構造を有する請求項１２記載の集積回路。
【請求項１５】
前記メモリアレイは、第１の論理セクタアドレスによって識別される現在有効なデータと、第１の論理セクタアドレスによって識別される以前に有効なデータとを同時に保持する請求項１１記載の集積回路。
【請求項１６】
前記メモリは、メモリアレイとポインタとに結合される書き込み回路構成をさらに備え、書き込み処理の間に、特定の論理セクタアドレスに対応する新しいデータが、アレイ内にメモリアレイの新しい物理セクタアドレスに書き込まれるのと同時に、特定の論理セクタアドレスと新しい物理セクタアドレスとの間の新しい対応関係がポインタ内に記憶される請求項１１記載の集積回路。
【請求項１７】
アレイに結合される消去回路構成をさらに備え、それによって前記以前に有効なデータがバックグラウンド消去処理において消去可能である請求項１６記載の集積回路。
【請求項１８】
メモリアレイの各セクタは付随するフラグビットを有し、集積回路は、
書き込み回路とメモリアレイとに接続される決定回路をさらに備え、それによって前記付随するフラグビットに基づいて、利用可能なセクタが新しい物理セクタアドレスに対して決定される請求項１６記載の集積回路。
【請求項１９】
第１の論理セクタによって識別される以前に有効なデータは、外部コマンドに応答してアクセス可能である請求項１１記載の集積回路。
【請求項２０】
コントローラとメモリとを備え、前記メモリはポインタ構造と複数のセクタで構成されるアレイとを含み、各セクタは物理アドレスによって識別され、複数の不揮発性データ記憶エレメントを含むものであるメモリシステムの動作方法において、
コントローラユニットにおいてホストから第１のデータセットと論理セクタアドレスとを受け取るステップであって、それによってホストが第１のデータセットを識別するものである受け取るステップと、
前記第１のデータセットと論理セクタアドレスとをコントローラからメモリへ転送するステップと、
前記第１のデータセットをアレイの第１の物理セクタアドレスに記憶するステップと、
前記論理セクタアドレスと第１の物理セクタアドレスとの間の第１の対応関係をポインタ構造内に記憶するステップと、
前記第１のデータセットを記憶するステップと前記第１の対応関係を記憶するステップとの後に、コントローラにおいてホストから論理セクタアドレスに記憶すべき第２のデータセットを受け取るステップと、
前記第２のデータセットをコントローラからメモリへ転送するステップと、
前記第２のデータセットをアレイの第２の物理セクタアドレスに記憶するステップと、
前記論理セクタアドレスと第２の物理セクタアドレスとの間の第２の対応関係をポインタ構造内に記憶するステップであって、前記メモリは、前記第２のデータセットを記憶するステップと前記第２の対応関係を記憶するステップとの後に、第１のデータセットを第１の物理セクタアドレスに保持し第１の対応関係をポインタ構造内に保持するものである第２の対応関係を記憶するステップと、
を含むメモリシステムの動作方法。
【請求項２１】
前記第１の対応関係と前記第１のデータセットとを同時に記憶し、前記第２の対応関係と前記第２のデータセットとを同時に記憶する請求項２０記載の方法。
【請求項２２】
前記第２のデータセットおよび第２の対応関係を記憶するステップの後に、第１の物理セクタを消去するステップをさらに含む請求項２０記載の方法。
【請求項２３】
前記消去するステップをバックグラウンド処理で行なう請求項２２記載の方法。
【請求項２４】
前記ポインタ構造は、不揮発性である請求項２０記載の方法。
【請求項２５】
前記第２のデータセットおよび第２の対応関係を記憶するステップの後に、コントローラにおいてホストから論理セクタアドレスに記憶されるデータに対する要求を受け取るステップと、
前記要求をコントローラからメモリに論理セクタアドレスの形で与えるステップと、
メモリが前記要求を論理セクタアドレスの形で受け取ることに応答して、第２のデータセットをメモリからコントローラに与えるステップと、
をさらに含む請求項２０記載の方法。
【請求項２６】
前記第２のデータセットおよび第２の対応関係を記憶するステップの後に、メモリにおいて第１の物理セクタアドレスに記憶されるデータに対する要求を受け取るステップと、
メモリが前記要求を受け取ることに応答して、第１のデータセットをメモリからコントローラへ与えるステップと、
をさらに含む請求項２０記載の方法。
【請求項２７】
前記第１のデータセットを記憶するステップの前に、一組の利用可能なセクタアドレスから第１の物理セクタアドレスを選択するステップと、
前記第２のデータセットを記憶するステップの前に、一組の利用可能なセクタアドレスから第２の物理セクタアドレスを選択するステップと、
をさらに含む請求項２０記載の方法。
【請求項２８】
前記一組の利用可能なセクタアドレスは、良好な物理セクタのみに対応する請求項２０記載の方法。
【請求項２９】
ポインタ構造と複数のセクタを有するアレイとを含み、各セクタは複数の記憶エレメントを含むものである不揮発性メモリの動作方法であって、
論理セクタアドレスによって外部からメモリにアクセス可能な第１のデータセットを第１の物理セクタ内に書き込むステップと、
前記論理セクタアドレスと第１の物理セクタとの間の第１の対応関係をポインタ構造内に記憶するステップと、
前記第１のデータセットを書き込むステップと第１の対応関係を記憶するステップとの後に、論理セクタアドレスによって外部からメモリにアクセス可能な第２のデータセットを第２の物理セクタ内に書き込むステップと、
前記論理セクタアドレスと第２の物理セクタとの間の第２の対応関係をポインタ構造内に記憶するステップであって、第２のデータセットを書き込むステップと第２の対応関係を記憶するステップとの後に、第１のデータセットが第１の物理セクタアドレスに保持され、第１の対応関係がポインタ内に保持されるものである第２の対応関係を記憶するステップと、
を含む不揮発性メモリの動作方法。
【請求項３０】
前記第１の対応関係を前記第１のデータセットを書き込むステップと同時に記憶し、前記第２の対応関係を前記第２のデータセットを書き込むステップと同時に記憶する請求項２９記載の方法。
【請求項３１】
前記第２のデータセットを書き込むステップと前記第２の対応関係を記憶するステップとの後に、第１の物理セクタを消去するステップをさらに含む請求項２９記載の方法。
【請求項３２】
前記消去するステップをバックグラウンド処理で行なう請求項３１記載の方法。
【請求項３３】
前記ポインタ構造は、不揮発性である請求項２９記載の方法。
【請求項３４】
前記第２のデータセットを書き込むステップと前記第２の対応関係を記憶するステップとの後に、メモリにおいて論理セクタアドレスに記憶されるデータに対する外部要求を受け取るステップと、
前記要求に応答して、第２のデータセットを外部にメモリに向けて送るステップと、
をさらに含む請求項２９記載の方法。
【請求項３５】
前記第２のデータセットを書き込むステップと前記第２の対応関係を記憶するステップとの後に、メモリにおいて、第１の物理セクタに記憶されるデータに対する外部要求を受け取るステップと、
前記要求に応答して、第１のデータセットを外部にメモリに向けて送るステップと、
をさらに含む請求項２９記載の方法。
【請求項３６】
前記第１のデータセットを書き込むステップの前に、一組の利用可能なセクタから第１の物理セクタを選択するステップと、
前記第２のデータセットを書き込むステップの前に、一組の利用可能なセクタから第２の物理セクタを選択するステップと、
をさらに含む請求項２９記載の方法。
【請求項３７】
前記一組の利用可能なセクタは、良好なセクタのみを含む請求項２９記載の方法。
【請求項３８】
コントローラとメモリとを備え、データがメモリ内に物理アドレスに基づいて記憶されるものである不揮発性メモリシステムの動作方法であって、
データをホストとコントローラとの間で論理セクタアドレスに基づいて転送するステップと、
データをコントローラとメモリとの間で論理セクタアドレスに基づいて転送するステップと、
メモリ上で論理セクタアドレスを対応する物理セクタアドレスに変換するステップと、
対応する物理アドレスにおいてメモリ内に記憶されるデータにアクセスするステップと、
を含む不揮発性メモリシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに関し、より詳細には、これらのタイプのメモリに対するデータの読み取りをメモリ記憶ユニット上で論理アドレスと物理アドレスとの間の対応関係を保持するポインタ構造を用いることによって行なう技術に関する。
【背景技術】
【０００２】
本発明の原理は、種々のタイプの不揮発性メモリ、すなわち現在存在しているものおよび開発中の新しい技術を用いることが意図されるものに対して応用される。しかし、本発明の具現化についての説明は、フラッシュ形の電気的に消去可能でプログラム可能なリード・オンリ・メモリ（ＥＥＰＲＯＭ）に対して行なう。このメモリは、記憶エレメントがフローティングゲートである。
【０００３】
このような不揮発性メモリシステムは、通常コントローラを含む１つの集積回路チップと、それぞれメモリアレイ並びに関連する制御回路、入出力回路、および状態マシーン回路を含む１つ以上の集積回路チップとを含む。傾向としては、当然のことながら、システムのメモリアレイとコントローラ回路とを１つ以上の集積回路チップ上で一体化することである。メモリシステムは、ホストシステムの一部として埋め込まれている場合もあるし、またはホストシステムの嵌め込みソケットに取り外し可能で挿入可能なメモリカード内に含まれている場合もある。このようなカード内にメモリシステム全体が含まれている場合もあるし、または別個のカード内にコントローラおよびメモリアレイが、付随する周辺回路とともに設けられている場合もある。
【０００４】
メモリシステムは、そのホストとの通信をデータが識別される論理アドレスを用いて行なう。データは、アレイ上に物理アドレスによって識別される物理的位置に記憶される。物理アドレスと論理アドレスとを同じにすることもできるが、普通はこれらの間に違いを設けて、例えば欠陥マネージメントまたは消耗均等化の理由から、論理アドレスによって識別される物理アドレスを変えられるようにする。このような欠陥マネージメントの例は、例えば米国特許第５，６０２，９８７号（特許文献１）に示されている。この特許はその全体が本願明細書において参照により援用され、かつこの特許にはセルおよびセクタのレベルの両方におけるメモリの再マッピングが記載されている。ここで、セクタとは、ホストとの間のデータ転送単位のサイズである。
【０００５】
論理アドレスと物理アドレスとの間の対応関係をシステムによって保持する必要があるので、変換を通常はコントローラ上で、または場合によってはホスト上で（例えば、フラッシュアレイの埋め込まれた実施形態において）行うことができる。マップそれ自体は、メモリアレイ内に保持される場合もあるが、通常は、（始動時にまたは必要に応じて）揮発性ポインタ構造内またはコントローラ（またはホスト）上のテーブル内にロードされ、そこで論理から物理への識別および変換が行なわれる。このように、記憶単位それ自体は物理アドレス空間内で機能するが、ホストは論理アドレスを用いてメモリと通信する場合がある。論理アドレスは、記憶部分と通信するために、コントローラによって物理アドレスに変換される。
【０００６】
データを不揮発性メモリ内に書き込む場合には、新しいデータを対応する物理アドレスに書き込む前に、対応する論理アドレスにそれまで付随しているデータを消去するのが普通である。古いデータ、古いポインタ、またはその両方が保持されないため、古いデータにアクセスすることはできない。そのため、書き込みが成功しないときには、古いデータが失われる場合がある。ある一群の従来技術のアプローチでは、新しいデータは、対応する物理位置ではなく異なる位置に一時的に書き込まれるデータである。
【特許文献１】米国特許第５，６０２，９８７号
【特許文献２】米国特許出願第０９／８９３，２７７号
【特許文献３】米国特許出願第０９／５０５，５５５号
【特許文献４】米国特許出願第０９／７０３，０８３号
【特許文献５】米国特許第５，７６８，１９２号
【特許文献６】米国特許第４，６３０，０８６号
【特許文献７】米国特許第５，９９１，１９３号
【特許文献８】米国特許第５，８９２，７０６号
【発明の開示】
【課題を解決するための手段】
【０００７】
したがって、本発明の１つの主要な態様によれば、論理アドレスと物理アドレスとは同一ではない。不揮発性メモリの記憶ユニット上のポインタ構造によって、物理アドレスと論理アドレスとの間の対応関係が保持される。コントローラおよび記憶ユニットによって、論理セクタアドレスに基づいてデータが転送され、物理アドレスと論理アドレスとの間の変換が記憶ユニット上で行なわれる。ポインタには、現在のデータの論理セクタアドレスと物理アドレスとの間の対応関係が含まれ、さらには古いデータが記憶されている論理アドレスと物理アドレスとの間の１つ以上の以前の対応関係も保持される。古いデータと新しいデータとをある時点に至るまで同時に保つことができる。バックグラウンド消去と組み合わせることで、性能が向上する。
【０００８】
例示の実施形態において、ポインタ構造は、それぞれが独自の行デコーダを有する１つ以上の独立した不揮発性サブアレイである。複数のポインタを用いることで、信頼性が向上する。各ポインタは、アクティブであるかどうか、さらに論理アドレスと物理アドレスとの間の現在の対応関係と１つ以上の以前の対応関係とを記憶するかどうかを示すために、フラグを有する。新しいデータを書き込むときには、それを利用可能な空のメモリセクタに書き込み、ポインタを同時に更新する。欠陥のあるセクタを行冗長方式において利用可能なセクタのプールから取り除くことができる。ランダム検索、バイナリ検索、または他の検索技術を用いて、利用可能な消去されたセクタを見つけることができる。
【０００９】
本発明のさらなる態様、特徴、および利点は、以下の例示の実施形態の説明の中に含まれ、この説明は、添付の図面とともに考慮されるべきである。
【発明を実施するための最良の形態】
【００１０】
本発明は、アレイ内の物理アドレスとホストからの論理アドレスとの間の対応関係がポインタ構造内で保持される不揮発性メモリを提供するものである。ポインタ構造は、不揮発性メモリアレイ構造上にあり、論理アドレスのみを扱うメモリコントローラに対して透明である。書き込み処理では、新しいデータとその対応する論理アドレスとが、コントローラによってメモリアレイに供給される。新しいデータは新しい物理アドレス内に書き込まれ、論理アドレスと新しい物理アドレスとの間の対応関係が、アレイのポインタ構造内で更新される。ポインタ構造には、以前の物理アドレスと論理アドレスとの間の対応関係も保持される。また、新しいデータを書き込んだ後で、かつそれと同時に、以前のデータを以前の物理セクタに保持することができ、またバックグラウンド処理の一部として後で除去することもできる。読み取り処理では、データの論理アドレスが、コントローラによってメモリアレイに供給される。メモリアレイは対応する物理アドレスからのデータをコントローラへ戻す。
【００１１】
以下の説明において、便宜上、本発明を主に別個のコントローラとメモリチップとを有する実施形態の点から説明するが、他の実施形態においては、これらは単一の集積回路上で組み合わせてもよい。また、以下の説明を簡略化するために、データの書き込みおよび消去の両方に対する単位をセクタとし、メモリアレイの列に対応させるが、より一般的には構造は必ずしも対応していない。本発明を用いることができるメモリ構造についてのさらなる詳細が、Jian Chen らによる２００１年６月２７日出願の「複数データ状態で動作する不揮発性メモリの記憶エレメント間の結合の効果を減らすための動作技法」という米国特許出願第０９／８９３，２７７号（特許文献２）、Kevin Conleyらによる２０００年２月１７日出願の「同時複数データセクタ・プログラミングおよび他の指定ブロックでの物理ブロック特性の記憶を伴うフラッシュＥＥｐｒｏｍシステム」という米国特許出願第０９／５０５，５５５号（特許文献３）、John S. Manganらによる２０００年１０月３１日出願の「フラッシュメモリ用の可変ビットライン・ランプレート・コントロール」という米国特許出願第０９／７０３，０８３号（特許文献４）に記載されている。これらの特許出願のすべて、またはそれらの中に含まれる参考文献もその全体が本願明細書において参照により援用されている。
【００１２】
不揮発性メモリにおけるフリー・アドレッシング
Ｘ行およびＹ列からなるフラッシュメモリアレイにおいて、フリー・アドレッシング方式を用いることによる、すなわち論理アドレスとは異なる物理アドレスに情報を書き込めることによる利点があり得る。例示の実施形態を図１に関連して説明する。本発明を主にフラッシュメモリの点から説明するが、データを記憶装置内へどのように記憶し、読み取り、書き込むかについての詳細は、以下の説明にはまったく入らないので、他の不揮発性記憶ユニットへの拡張も容易である。
【００１３】
図１は、不揮発性メモリの一部を示すブロック図であり、メモリコントローラ１０１およびメモリ回路１０３が、ここでは別個の集積回路上にあり、データ、アドレス、およびコマンドを交換するように接続されている。また、コントローラ１０１も、ホストシステム（図示せず）に接続され、データ、アドレス、コマンドを交換する。メモリ回路１０３は、不揮発性メモリセルのアレイ１２５を含むように示されている。不揮発性メモリセルのアレイ１２５には、Ｙまたは列制御回路１２１と、Ｘまたは行制御回路１２７と、データ入出力回路１２３とが接続されている。これらの読み取り、書き込み、および消去回路についてのさらなる詳細は、米国特許第５，６０２，９８７号（特許文献１）、および他の援用されている参考文献に示されている。説明を簡略化するために、この例では、メモリアレイが、１つの連続コントロールゲートおよび／または１つの連続消去ゲートをワードラインに沿って有するものと考える。データ記憶ユニットは、バイナリ、または好ましくはマルチ状態のメモリセルを記憶してもよい。より一般的な場合については、本願明細書において参照によりすでに援用されている米国特許出願第０９／８９３，２７７号（特許文献２）および第０９／５０５，５５５号（特許文献３）に記載されているように、明らかにすることができる。
【００１４】
物理セクタアドレス（ＰＳＡ）を、インタフェースを介してコントローラからＸまたは行制御回路１２７へ供給するのではなく、その代わりに論理セクタアドレス（ＬＳＡ）をインタフェースを通してメモリ回路１０３へ供給して、そこで対応する物理セクタアドレスに変換する。この目的のために、メモリ回路には、独自のＸデコーダを有する別個の小形アレイ１１０を用いるポインタ構造も含まれる。簡略化した例を図２に示す。
【００１５】
図２には、セクタの割り当てテーブルを構成するポインタ構造を示し、ここででは、ある論理アドレスの古いまたは以前の物理アドレスと、新しいまたは現在の物理アドレスとが同時に記憶され、すなわち、新しいデータが論理アドレス（ＬＳＡ）内に書き込まれるときには、新しいデータは、論理アドレスにそれまで対応していた物理アドレスとは異なる物理アドレス（ＰＳＡ）内に書き込まれ、このそれまでの対応関係はポインタ構造内に、それが更新された後に保持される。現在のデータはメモリアレイ内に部分２０１として概略的に示され、論理アドレスにそれまで対応していたデータは部分２０３として示されている。ここでは、各部分ともセクタ、すなわち消去の単位であるとする。
【００１６】
主アレイ１２５には、ワードラインと交わる数千のセルがあり得るが、ポインタアレイ１１０には、そのワードラインに沿って数ビットしかなく、ここでは、その数は行アドレスビットの数の２倍である。ある時間において、古いアドレスポインタと新しいアドレスポインタとが同時に存在する。同じことが、対応する位置に記憶される情報に対して起こり、これは、古いアドレスにおける古いデータ２０３と、新しいアドレスにおける新しいデータ２０１とに対して起こる。通常の読み取りに先行して、論理アドレスにおけるポインタ構造のＸデコーダに対して早いアクセスを行なうことによって、現在のまたは新しいワードラインに対するポインタが得られる。それに続いて、ポイントされたワードラインが選択される（論理アドレスに対応する物理アドレス）。このシーケンスが必要であるのは読み取り動作の間だけである。というのは、アクセス時間が、データのストリームアウトに要求される時間よりも短いからであるため、この予備的手順が読み取り性能に与える影響はまったくない。書き込みまたは消去動作の間は、このような余分なステップは必要ではない。
【００１７】
新しいデータが書き込まれた後、しばらくの間古いデータが保持されるため、古いデータには、それが消去されるまでアクセスすることができる。特別なコマンドによって、古いアドレス行にアクセスすることも、必要に応じて可能である。こうして、「メイク・ビフォア・ブレイク」の特徴が得られ、この結果、新しいデータを書き込む間に多少のエラーが発生するか、または他の何らかの理由で以前のデータが必要になったとしても、そのデータは依然として不揮発性メモリ内にあり、依然としてアクセスすることができる。論理アドレスの以前の対応関係を用いることによって古いデータにアクセスするだけでなく、物理アドレスモードによって古いデータに直接アクセスすることもできるが、このことは、通常ユーザにとっては直接利用できるものではない。
【００１８】
書き込みの際、アレイデータとアドレスポインタとを同時にプログラムすることができる。プログラムの検証を待つ間、古い物理アドレスにおける古いデータが利用可能である。論理アドレスに対応する新しいデータは、同じ物理アドレスには書き込まれないため、新しいワードラインの書き込みによって（または書き込み単位がどのように配置されようとも）、消去動作が必要となることは、メモリアレイ全体が一杯になる前にはない。しかし、セクタの割り当てテーブル（ＳＡＴ）レベルでは、古いアドレスポインタを消去して、その特定の論理アドレスの次の書き込み動作に対して利用できるようにしなければならない。膨大なブロックのデータを書き込む際に、性能が重要で要求されるならば、古いポインタの消去は厳格に要求されるわけではない。しかし、同じ論理アドレスを繰り返して書き込む場合には、ポインタ消去によって性能が劣化する。それでも、この場合には、ポインタ空間のクリーンアップ時間が書き込み性能に及ぼす影響を軽減するために、バッファを用いることができる。
【００１９】
アドレスの記憶に必要なセルの数は、主アレイの書き込み単位（ここでは、ワードラインとする）に沿ってのセルの数に比べれば小さい。例えば、１６Ｋ行の場合には１４ビットが必要であり、すなわち１６Ｋのセルのワードライン上で約１／１０００のオーバーヘッドである。このことに留意すれば、１０×バッファを用いることは、１％のオーバーヘッドのみで可能である。この場合、ポインタバッファの消去が起こるのは、１０回の書き込みサイクルの後だけであり、消去時間は何とか償却される。主アレイそれ自体は、消去する必要があるのは、一杯になったときだけである。性能を高めるために、バックグラウンド処理において消去単位を消去することができる。消去プロセスおよび利用可能な書き込み単位を見つけることについてのさらなる詳細は、以下の「消去セクタを見つけるためのアルゴリズム」の欄で示す。
【００２０】
アレイ内では、空の書き込み単位（この例では行）の利用可能性についての情報を書き込み単位それ自体に（この場合は、単一のワードライン上に）付属させて記憶させることによって、（水平に）あらゆるメモリセルが１行の経過を把握できるようにすることができる。この結果、本発明では、不良の書き込み単位の経過を把握することができる。図１および２の例では、図３ａ〜３ｆに関連してプロセスについて概略的に説明する。
【００２１】
これらの図では、ポインタ構造１１０は、論理アドレスが保持されるＸデコーダ３０３と、対応する第１の組の物理アドレス３０１と、第２の組の物理アドレス３０５とを有するように概略的に示されている。（ここでは、ポインタ１１０のセル３０１および３０５は、デコーダ３０３のそれぞれ左および右にあるとして示されているが、以下の「ポインタ構造」の欄のように、実際のレイアウトでは両方とも同じ側にすることもできる。）この例では、８つの可能な物理セクタアドレスが存在し、論理アドレスの数は、８から不良な行の数を引いたものである。論理アドレスは、ポインタのＸデコーダを１から良好な行の数まで下がるように示されている。
【００２２】
データアレイでは、Ｘデコーダ１２７が、行の物理アドレスを１から８までとして示されている。アレイ１２５は、これら８つの行のユーザデータメモリセルと、さらにセクタチャートとして機能する２つの列３２１および３２３のフラグ（各行に対して２つ）とを含んでいる。
【００２３】
図３ａには、フレッシュな、そうでなければ完全に消去されたアレイを示す。この例では、アレイは、１つの不良な書き込み単位、すなわち線で消されていることが示されている４番目のワードラインを伴うセクタを有する。その結果、論理アドレスは１〜７までとなり、３０３の最後のスロット（論理アドレス８であろう）が×として示され、３０１および３０５における対応するスロットが線で消されて、アレイが１つのワードラインを失っていることが示されている。ワードラインが不良であるとする決定は、さらにポインタ構造１１０を更新するための後の動作の間に、テストにおいて行なうことができる。メモリが空の場合でも、３２１におけるセクタチャート内の位置にマークをつけ、４番目の行が不良で書き込み用ではないことを示す。
【００２４】
この例では、論理セクタアドレス１〜３にそれぞれ対応するデータＡ〜Ｃが、メモリに届き、物理セクタアドレス１〜３にそれぞれ書き込まれる。その後、論理セクタ３に対応するデータ（Ｃデータ）が更新される。物理セクタ３のデータに上書きするのではなく、新しいＣデータが空のセクタに書き込まれる。物理セクタ４は不良であるため、新しいＣデータはセクタ５に書き込まれる。（この例では、物理セクタが順番に書き込まれているが、このことは一般的にそうであるとは限らず、アレイがいったん部分的に書き込まれたらそうではなくなる。）この時点での状況を図３ｂに示す。
【００２５】
図３ｂにおけるポインタ構造１１０では、論理アドレス１および２は物理セクタアドレス１および２にそれぞれ対応する。論理セクタ３に対応するのは、列３０１内の以前の物理セクタ３であり、現在対応する物理セクタアドレス５は列３０５内にある。アレイ１２５では、Ａ（論理アドレス１）データおよびＢ（論理アドレス２）データが、第１行および第２行にある。古いＣ（論理アドレス３）データが行３に示されているが、線で消されて、現在のものではなく、現在のＣデータは行５にあることが示されている。種々の行の状態が列３２１に示され、単一の線は、行を書き込みに利用できないことを示し、行３の×は、行３が書き込まれたこと、およびもはや現在のものではないことの両方を示している。この段階で、論理アドレス３は２回書き込まれ、この論理アドレスに対する２つのポインタに反映されている。必要に応じてこの時点で、物理セクタ３を消去することができ、これは、例えばバックグラウンド動作において、そうでなければ、単にアレイが一杯になるまで待つことによって行なう。論理アドレス３に対応する古いポインタ（物理アドレス３）も、必要に応じて消去することができる。
【００２６】
論理アドレス４〜６に対応するさらなるデータ（それぞれＤ〜Ｆ）の書き込みを続けることで、行６〜８が一杯になる。この段階で、（行３がバックグラウンド処理で消去されていないと仮定すると）メモリは一杯であり、論理セクタ３の古いポインタがクリーンアウトされていることもあり得る。結果として生じる状況を図３ｃに示す。
【００２７】
利用可能な行を見つけることは、以下のようにして具現化される。まずチャート（３２１および３２３）をセンス増幅器レジスタ（データ出力回路１２３内）の中へダンプした後に、行状態情報をストリームアウトするが、これは、必ずしもメモリチップ１０３の外にではない。書き込み時に、チャートが更新され、１つまたは２つのビットのみをプログラムする必要がある。また、チャートは２つの仕切り（新しいものおよび古いもの）を有し、これらは、この段階では３２１および３２３にそれぞれ対応するが、それらの役割は、図３ｆによって逆転する。
【００２８】
この例を続けて、対応する物理セクタ内のデータを×で消すことによって示されているように、論理アドレス４および６（データＤおよびＦ）を不用なものとすると次に考察する。すなわち、図３ｄに示すように、（３０１内の論理アドレス４および６に対して）消去すべきポインタがもう２つあり、３つのワードラインが消去可能である。
【００２９】
図３ｅでは、不要なセクタが消去され、ポインタ１１０がクリーンアップされている。セクタチャート３２１が消去され、更新されたセクタチャートが今度は列３２３内にある。論理アドレス７（データＧ）に対応する新しいデータがメモリにそのインタフェースを通して届いたときに、そのデータを今では空いている行３内に書き込むことができ、その結果を図３ｆに示す。すなわち、以前に論理セクタアドレス３に対応していた物理セクタ３が、今では論理セクタアドレス７に対応する。
【００３０】
この場合もやはり、この処理はすべてメモリチップ上で起こり、物理アドレスモードなどの特別な条件の場合を除いて、コントローラに対して透明であることに留意されたい。外見的には、論理アドレスおよび対応するデータのみが、コントローラとメモリチップとの間のインタフェースを介して交換され、物理アドレスが取り扱われているのはメモリチップ上だけである。
【００３１】
ポインタ構造
より詳細な例示の実施形態では、アーキテクチャが、物理的に隣接していない２つのゾーンに分離されるポインタ領域を含む。例えば、２つのゾーンは、メモリの最も左の領域と最も右の領域であり、独自のＸまたは行デコーダをそれぞれ有している。例示の実施形態において、各ハーフは５つの別個なゾーンを有している。すなわち、フラグビット、Ｘアドレスサイズのヒューズアドレス、メモリ「プレーン」の数に等しいＸアドレスの数、完全なＸ＋Ｙアドレスの任意の数、およびヘッダ空間である。Ｘアドレスはプレーン内のアドレスであり、Ｙアドレスはプレーンのアドレスである。このポインタ構造を図４に関連して示す。
【００３２】
図４では、メモリアレイ１２５が、Ｙデコーダ回路１２１とデータ入出力回路１２３とに接続されている。この例では、アレイ１２５は、８プレーンに分割される。これらのことは、本願明細書において参照によりすでに援用されている米国特許出願第０９／５０５，５５５号（特許文献３）および第０９／７０３，０８３号（特許文献４）に記載されている。プレーンに対するＸデコーダまたは行制御回路は、図４には明確には示されていないが、これらの参考文献に記載されているように援用されていてもよい。左および右のポインタ１１０ａおよび１１０ｂがより詳細に示され、それらは、明確に示された独自の別個のＸデコーダ３０３ａおよび３０３ｂを有する。ある論理Ｘ、またはセクタ、アドレスが与えられたとすると、その欠陥ポインタが、ポインタ空間の物理Ｘアドレスに（または後述するように、予備Ｓアドレスに）位置づけられる。ポインタ構造１１０ａおよび１１０ｂをアレイの異なる側上に配置することによって、処理問題または他のランダムな欠陥に起因して、両方のアレイが不良になるという可能性は最小限になる。
【００３３】
一度にアクティブになるのは、ハーフポインタ１１０ａおよび１１０ｂの一方のみであり、他方は準備の整った状態（消去された状態）に保たれる。３０１ａに示すように、フラグビットによって、どちらのハーフがアクティブかが知らされる。「０」フラグビット（消去された）によって、その特定のハーフがアクティブでなくなる。各ハーフポインタは、エンコードされたアドレスがＳであるかまたはＸとは異なる場合に、ポインタ全体が不良であることを宣言するヒューズアドレスを有する。この情報をデバイスの出荷前に行なうテスト中に、「ソート」時に「ヒューズ」することができる。
【００３４】
良好なアクティブ・ハーフポインタ内には、メモリ全体にわたるＮセクタの実際の位置を示し、各プレーン内に１つのセクタがあるＮ個のＸアドレスが存在する（ここで、Ｎはプレーンの数である）。８つのプレーンという特定の場合では、８つのＸアドレスを８つのプレーン位置に適合するように順序づけることができ、Ｙ（または「プレーン」）アドレスは、暗黙であるため、まったく必要ではない。これが、ヘッダデコーダと組み合わせて、基本的なポインタ構造である。メモリの書き込みが、常に８つのプレーン内に順序立てて位置づけられる８つのセクタのグループで行なわれるならば、バッファは必要ではない。これが常にそうであるわけではないため、明確なＹ部分を有するある数の全長Ｘ＋Ｙアドレス空間が、ポインタバッファのために確保される。この空間は、プレーンアドレスが今ではその順序が乱れるかまたは「スクランブル」される可能性があるということに関係なく、Ｘ論理アドレスに属する新しいセクタがプログラミングされる度に一杯になる。セクタの物理的Ｘ位置は、ランダムに決定され、そうでなければその対応するプレーン上ですでに利用可能となっている消去セクタアドレスを選択する。Ｙ（「プレーン」）アドレスを加えることによって、セクタをスクランブルされたシーケンスまたはプレーン順序が乱れたシーケンスで、プログラムすることができる。バッファが一杯になったらすぐに、クリーンアップされたバージョンの基本構造（Ｙアドレスがそれらの暗黙のＹ位置に再位置づけされている）をポインタの他方のハーフ上にコピーした後に、最初のハーフを消去することができる。ヘッダ情報は、変えずに転送される。
【００３５】
ヘッダ情報が更新されるときはいつも、完全なコピーポインタ動作が必要である。ユーザデータを記憶する記憶ユニットはマルチ状態であってもよいが、ポインタ空間内の情報はバイナリ・エンコードされ（２状態モード）、最良のデータ保護と最速の書き込み時間とが得られる。ヘッダは、ＥＣＣや、例えば本願明細書において参照によりすでに援用されている米国特許５，６０２，９８７号（特許文献１）に記載されている他のエレメントなどの標準の情報を含むことができる。
【００３６】
論理Ｘアドレスに沿ってのセクタのサイクルが一様でない場合には（最悪の場合には、同じセクタを繰り返しサイクルする）、バッファが用いられる。シーケンスが完全に一様である場合、すなわち第１のセクタが最初にプログラムされ、次に第２、そして第３などの場合には、バッファは必要ではないであろう。
【００３７】
ポインタ構造１１０をメモリチップ上に配置することによって、ポインタ動作は、メモリの自律性を高くすること、またはコントローラ関与を最小限にすること（透明であること）を目的とすることになる。読み取り動作では、物理アドレスアクセス、あるいは論理アドレスアクセスの２つのモードが利用可能である。論理アドレスアクセスまたは通常の動作モードでは、最初にＸアドレスをポインタアドレスレジスタ内にロードする。それから、その特定の行のポインタの両ハーフを読み取る。もし欠陥ポインタが不良である（「ヒューズアドレス」が実際の行アドレスと異なる）ことが判明した場合には、予備ポインタ（予備アドレスＳ）（そのアドレスがポインタの良好なハーフ上のヒューズゾーンにおいてエンコードされる）を考慮に入れる。物理的に分離されているために、ポインタの両ハーフが不良である確率は非常に低いため、そのようなダイを選別することができる。続いて、第２のポインタの読み取りが続く。これは、真のポインタを与える最大で２ステップの読み取り動作である。
【００３８】
物理アドレスアクセスモードは、ユーザにとっては通常はアクセスできるものではなく、外部コマンドによる呼び出しによって行なわれる。このコマンドは、システムエラーの場合に、コントローラが出すことができる。あるいは、物理アドレスモードは、ソート処理中のテストモードの一部として、またはその部分が破損した場合のデータ回収用として用いることができる。
【００３９】
何らかのポインタを読み取る際には、「フラグ＝１」のハーフのみを考慮する。読み取り時には、アドレスのみが重要であり、ヘッダビットは通常無視する。
【００４０】
まず、最初の８つのアドレス（Ｎ＝８、純粋なＸアドレス）をメモリの８つのプレーンＸデコーダに割り当てる（それらのレジスタ内にロードする）。次に、最初の「バッファ」アドレスを、もし空でなければ、読み取る。読み取りによって、「プレーン」（Ｙ）アドレスとＸアドレスとが得られる。その結果、その特定のプレーンのＸデコーダレジスタがオーバーライドされて、新しいＸアドレスがロードされる。この後に、次の「バッファ」アドレスが続き、以下同様である。Ｘデコーダが更新されて、Ｙアドレスのデスクランブルを表わすプロセスにおいて最新のエントリのみが残る。物理ドメイン内のポインタに行を割り当てる際に、行０００…０および１１１…１は省略される。したがって、バッファ内のどの行もゼロではないアドレスとなる。
【００４１】
この全体のシーケンスは、「すべて０」（またはすべて１）のビットストリングをチェックすること、および／またはシフトレジスタを通してデータを移動させることなどの非常に基本的な動作から構成される。「オンチップ」上で具現化することは非常に簡単に、すなわちコントローラの関与なしに、行なうことができる。
【００４２】
書き込み動作はさらに複雑であり、準備フェーズから始まる。準備フェーズには２つの動作が含まれる。真のポインタを見つけること（読み取りモードの場合と同様である）と同時に消去セクタを見つけること（必要に応じて各プレーン内で１つ）である。次にポインタの更新が続く。状況に応じて、最大で８つ（この特定の例において）のＸアドレスが、１つのサイクル内にエンコードされる。ポインタのプログラミング時に、記憶すべきセクタアドレスの数が、アクティブなハーフ上で利用可能な空の「バッファ」位置の数よりも大きい場合には、クリーンなバージョンのポインタが、その他方の（消去された）ハーフ用に準備されて、そこにコピーされる。プレーンに対する書き込み動作が、基本的なポインタ構造の自然な順序で行なわれる場合には、バッファ部分（完全なＸ＋Ｙアドレスを伴う）は必要ではない。そうでない場合には、上述したように、ある時点においてそれらを最終的にクリーンアップする必要があり、これは、費用対効果がある。書き込みプロセスを順々に行なう場合には、性能は向上し、ポインタ構造の持続時間は、その消去回数がしばしば減るため、アレイのユーザデータ部分とほぼ同じになる。
【００４３】
バッファのサイズは、最悪の場合のシナリオに基づき、これは、消去動作を必要とすることなく８つのアドレスをエンコードすることである。この場合、バッファのサイズは、Ｎ−１であり、３０１ａのバッファＡ〜Ｇとして示す。アレイが、例えば１６Ｋ列×１６Ｋ行の場合には、ポインタのサイズは（ヘッダ部分を考慮に入れないで）、次のように計算することができる。但し、どのＸアドレスにも１５ビットが含まれ、どのＹアドレスにも３ビットが含まれる。ポインタは、２×（８×１５＋７×１８＋１＋１５）＝５２４ビット、または（ポインタなしの）アレイサイズの３．２％を有する。ポインタに取り付けられた２つのＸデコーダが、別に３．０５％を取る。したがって、この例では、全領域のオーバーヘッドは、主アレイの６．２５％である。
【００４４】
上述したように、読み取りの間に、変換されたアドレスを得るための時間は比較的短い。ポインタはバイナリ記憶を用いることが好ましいため、ポインタのプログラミングは、マルチ状態の主アレイのプログラミングよりも早く、また主アレイと同時にプログラムすることができるため、時間的な不利益はない。バッファおよび左右ハーフポインタの配置に加えて、「古い」セクタと「新しい」セクタとが同時に存在して同じアドレスを共有することによって、プログラミングサイクルを中断したときに有用である少なくとも１つのレベルの「アンドゥ」動作が得られる。こうしてコピー動作を必要とすることなく「メイク・ビフォア・ブレイク」の特徴が得られる。加えて、プログラミングは、常に利用可能な消去セクタ上で行なわれるため、書き込み性能を大きく向上させることができる。次の欄で説明するように、消去セクタをランダムに選択することは、消耗均等化にとって望ましいことである。
【００４５】
消去セクタを見つけるためのアルゴリズム
本発明の１つの態様によれば、論理アドレスに対応する新しいデータが、論理アドレスにそれまで対応していた物理アドレス以外のオープンな物理アドレスに書き込まれる。オープンな物理アドレスは、それまで未使用のアドレスの可能性もあるし、それまでに使用されたアドレス、例えばバックグラウンド消去処理において消去されたアドレスの可能性もある。フラッシュメモリアレイのポインタベースのアーキテクチャでは、消去セクタを、ランダムに利用可能な消去プールから遅れを比較的最小にして見つけることによって、性能が向上する。
【００４６】
このタスクの例示の実施形態において、図３ａ〜ｆの例の列３２１および３２３に示すように、各セクタはその状態を知らせるための特別な「消去バー」のフラグビットを有する。多くのフラグビットを同時に読み取る能力はとても役に立つが、強制的なものではない。Ｘアドレスの形態のランダム検索シードが、デジタルカウンタに照会することによって生成される。カウンタの最大カウントは、例えば図３ａ〜ｆの例の７のような恒久的にＯＮである行の数に等しい。シードアドレスから始めて、異なる行のフラグビットがチェックされ、好ましくは、同一の最適化されたシーケンスで行なう。このように、チェックアルゴリズムは必ずしもランダムである必要はないが、多くのものが利用可能で、ランダムな開始によって与えられる場合には、動作の結果はランダムな消去セクタになる。消去セクタを見つける速度は、利用可能なプールのサイズとともに小さくなるが、複数行を同時にチェックするならば、最大数のステップを保証することができる。
【００４７】
メモリアレイが、隣接セル間に共通のソース／ドレイン接続が存在するセグメント（「仮想接地」アーキテクチャ）がＮＯＲ形で存在するように仕切られている場合には、消去された行は導通している。多数の行の一端に信号を同時に印加することによって、それらの任意の１つが導通し、したがって消去される場合に、他端に接続されたビットラインに電流が生じるため、セクタを同時にテストしてグループ内の１つ以上が消去されているかどうかを決定することができる。このように、純粋なバイナリ検索は、少なくとも１つの消去された行を見つけるために２K のうちの第１のセグメントを知らせるのに、Ｋステップしか必要としない。このバイナリ検索をメモリ全体に広げることは、所望のセグメントを見つける最速の方法であるが、消費電流を考慮すると、チェックされるアレイのサイズが限定されることが考えられる。したがって、リニア検索とバイナリ検索とを組み合わせることができる。
【００４８】
少なくとも１つの消去セクタを含むセグメントを見つけた後で、純粋なバイナリ検索によって、それを内部で特定することができる。一例として、メモリがそれぞれ６４行からなる２５６セグメントに分割された１６Ｋの行を有する場合、１６個のセグメントからなるブロックを１６シーケンスでリニア検索し、その後、ブロック内で４つのバイナリ検索を行なうことができる。したがって、セグメントを見つけるのに必要なステップの数は、１６＋４＝２０ステップである。さらに６ステップを用いてセグメント内で行を見つければ、ステップの総数は２６である。読み取りサイクルが１００ｎｓの場合、２．６μｓが必要であるが、これは、通常数１００μｓが必要な書き込みサイクルに対してそれほど大きな時間的オーバーヘッドではない。
【００４９】
消去された行は導通し、その消去バービットは必然的に０である。導通していない消去バービットを有する行のすべては、同時にまたは別個のいずれかによりチェックされたときに、消去プール検索から自動的に除外される。
【００５０】
ポインタ構成されたアーキテクチャにおける行冗長性
不揮発性メモリシステムでは、不良な行およびセクタのマッピングアウトをそれらのアドレスをどこかに記憶し、かつ与えられた何らかのアドレスをそのリストと比較し、そして必要に応じて予備位置コードを発生させることによって行なうことが普通である。このことは、例えば本願明細書において参照によりすでに援用されている米国特許第５，６０２，９８７号（特許文献１）に記載されている。本発明のポインタベースの環境では、ポインタ自体が変換マップを構成しているために、マッピングアウト動作をポインタエンコードレベルまで進めることができる。
【００５１】
消去されたセクタは、上述した欄で説明したように、プログラミング時に自動検索によって割り当て可能であるため、不良なセクタを消去プールから除外しなければならない。これは、欠陥に起因してワードラインが接地に短絡することでセクタが破損した場合には、自動的に起こり得る。この場合、消去バービットを含む任意のビットが、「１」となって表れる。あるいは、セクタは破損したが、ワードラインは接地に短絡していない場合には、ソート時に消去バービットをプログラムすることができる可能性がある。消去バービットそれ自体がプログラム不可能である場合には、セグメント全体を「不良」としてアレイのＲＯＭ部分またはメモリの他の特別に割り当てられた領域に記録することができる。始動時に、ＲＯＭを読み取って、セグメント内部のラッチをセグメントが不良であるとマークするように設定する。このような場合、ラッチによってセグメント選択が「０」に保たれるため、そのセグメント内のセクタはすべてプログラムされているように見える。このように、それらは、検索シーケンスには関与しない。
【００５２】
上述した場合では容易に取り扱われるが、最悪のシナリオでは、「非常に頑固な」セクタ（セクタをプログラムまたは消去することが難しい）を特別に割り当てられた行の上のリスト上に記録することが要求される。始動時に、リストをＲＡＭ内にダンプして調べることができ、その結果、消去検索における勝利者候補をそれがリスト上にあるならば拒否することができる。そして、その特定のアドレスを次の消去セクタ検索のためのシードにすることができる。
【００５３】
ポインタそれ自体に対しては、物理的に異なる２つのハーフをアレイの反対側に配置することによって、通常少なくともポインタの１つの良好なハーフが存在することになる。両方のハーフ上にある不良なセクタが適合するという極めて起こりそうにもない場合には、事実上歩留まり損失なしでダイを選別することができる。
【００５４】
ポインタの不良なハーフ上にある不良なセクタは、多かれ少なかれ、正常な行と同じ考え方に従う。しかし、このような不良なポインタセクタに対して要求されることは、フラグビットが「１」に固定されたならば、ヒューズアドレス位置において００…０００または１１…１１１コードのいずれかを表わすことである。不良なポインタの良好なハーフは、アクティブであるとフラグされると、ヒューズ位置において予備アドレスをエンコードする。アクティブなハーフ上で良好なポインタのすべては、ヒューズ位置においてエンコードされる独自のアドレスを有する。
【００５５】
上述したように、これまで、主にフローティングゲートＥＥＰＲＯＭまたはフラッシュセルなどの電荷蓄積デバイスを用いる実施形態について説明してきたが、メモリ素子に対して、磁気媒体または光媒体を含む他の実施形態に適用することもできる。記憶エレメントをどのように読み取り、書き込み、また記憶エレメントがどのようにデータを記憶するかについての詳細は、本発明の主要な態様には入らないため、本発明の種々の態様を０．１μｍ以下のトランジスタ、単電子トランジスタ、有機／カーボンベースのナノトランジスタ、および分子トランジスタを含むがこれらに限定されない他のメモリのタイプに適用してもよい。例として、例えば Eitanによる米国特許第５，７６８，１９２号（特許文献５）と、Satoらによる米国特許第４，６３０，０８６号（特許文献６）とにそれぞれ記載されているようなＮＲＯＭおよびＭＮＯＳセル、または Gallagherらによる米国特許第５，９９１，１９３号（特許文献７）と、 Shimizuらによる米国特許第５，８９２，７０６号（特許文献８）とにそれぞれ記載されているような磁気ＲＡＭおよびＦＲＡＭセルも用いることができる。これらの特許は、その全体が本願明細書において参照により援用されている。
【００５６】
本発明の種々の態様を特定の実施形態に関連して説明してきたが、本発明は添付の特許請求の範囲の最大の範囲内において権利が保護されるべきであることが理解されよう。
【図面の簡単な説明】
【００５７】
【図１】本発明の態様を具現化する不揮発性メモリの一部を示すブロック図である。
【図２】別個の小形アレイを用いるポインタ構造の簡略化した例を示す。
【図３ａ】図２の実施形態に対する例示の動作シーケンスを示す。
【図３ｂ】図２の実施形態に対する例示の動作シーケンスを示す。
【図３ｃ】図２の実施形態に対する例示の動作シーケンスを示す。
【図３ｄ】図２の実施形態に対する例示の動作シーケンスを示す。
【図３ｅ】図２の実施形態に対する例示の動作シーケンスを示す。
【図３ｆ】図２の実施形態に対する例示の動作シーケンスを示す。
【図４】本発明によるポインタ構造の例示の実施形態を用いるメモリアレイを示す。
【図１】
2005517260.tif 000003
【図２】
2005517260.tif 000004
【図３ａ】
2005517260.tif 000005
【図３ｂ】
2005517260.tif 000006
【図３ｃ】
2005517260.tif 000007
【図３ｄ】
2005517260.tif 000008
【図３ｅ】
2005517260.tif 000009
【図３ｆ】
2005517260.tif 000010
【図４】
2005517260.tif 000011
【国際調査報告】
2005517260.tif 000012