JP2005517260A - セクタポインタを用いるメモリ・マッピング・デバイス - Google Patents

セクタポインタを用いるメモリ・マッピング・デバイス Download PDF

Info

Publication number
JP2005517260A
JP2005517260A JP2003566720A JP2003566720A JP2005517260A JP 2005517260 A JP2005517260 A JP 2005517260A JP 2003566720 A JP2003566720 A JP 2003566720A JP 2003566720 A JP2003566720 A JP 2003566720A JP 2005517260 A JP2005517260 A JP 2005517260A
Authority
JP
Japan
Prior art keywords
sector address
memory
address
data
correspondence
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.)
Pending
Application number
JP2003566720A
Other languages
English (en)
Inventor
セルニア,ラウル−エイドリアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2005517260A publication Critical patent/JP2005517260A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

不揮発性メモリの記憶ユニット上のポインタ構造によって、物理アドレスと論理アドレスとの間の対応関係が保持される。コントローラおよび記憶ユニットによって、論理セクタアドレスに基づいてデータが転送され、物理アドレスと論理アドレスとの間の変換が記憶ユニット上で行なわれる。ポインタには、現在のデータの論理セクタアドレスと物理アドレスとの間の対応関係が含まれ、さらには古いデータが記憶されている論理アドレスと物理アドレスとの間の1つ以上の以前の対応関係も保持される。古いデータと新しいデータとをある時点に至るまで同時に保つことができる。バックグラウンド消去と組み合わせることで、性能が向上する。例示の実施形態において、ポインタ構造は、それぞれが独自の行デコーダを有する1つ以上の独立した不揮発性サブアレイである。各ポインタは、アクティブであるかどうか、さらに論理アドレスと物理アドレスとの間の現在の対応関係と1つ以上の以前の対応関係とを記憶するかどうかを示すために、フラグを有する。新しいデータを書き込むときには、それを利用可能な空のメモリセクタに書き込み、ポインタを同時に更新する。欠陥のあるセクタを行冗長方式において利用可能なセクタのプールから取り除くことができる。ランダム検索、バイナリ検索、または他の検索技術を用いて、利用可能な消去されたセクタを見つけることができる。

Description

本発明は、不揮発性メモリに関し、より詳細には、これらのタイプのメモリに対するデータの読み取りをメモリ記憶ユニット上で論理アドレスと物理アドレスとの間の対応関係を保持するポインタ構造を用いることによって行なう技術に関する。
本発明の原理は、種々のタイプの不揮発性メモリ、すなわち現在存在しているものおよび開発中の新しい技術を用いることが意図されるものに対して応用される。しかし、本発明の具現化についての説明は、フラッシュ形の電気的に消去可能でプログラム可能なリード・オンリ・メモリ(EEPROM)に対して行なう。このメモリは、記憶エレメントがフローティングゲートである。
このような不揮発性メモリシステムは、通常コントローラを含む1つの集積回路チップと、それぞれメモリアレイ並びに関連する制御回路、入出力回路、および状態マシーン回路を含む1つ以上の集積回路チップとを含む。傾向としては、当然のことながら、システムのメモリアレイとコントローラ回路とを1つ以上の集積回路チップ上で一体化することである。メモリシステムは、ホストシステムの一部として埋め込まれている場合もあるし、またはホストシステムの嵌め込みソケットに取り外し可能で挿入可能なメモリカード内に含まれている場合もある。このようなカード内にメモリシステム全体が含まれている場合もあるし、または別個のカード内にコントローラおよびメモリアレイが、付随する周辺回路とともに設けられている場合もある。
メモリシステムは、そのホストとの通信をデータが識別される論理アドレスを用いて行なう。データは、アレイ上に物理アドレスによって識別される物理的位置に記憶される。物理アドレスと論理アドレスとを同じにすることもできるが、普通はこれらの間に違いを設けて、例えば欠陥マネージメントまたは消耗均等化の理由から、論理アドレスによって識別される物理アドレスを変えられるようにする。このような欠陥マネージメントの例は、例えば米国特許第5,602,987号(特許文献1)に示されている。この特許はその全体が本願明細書において参照により援用され、かつこの特許にはセルおよびセクタのレベルの両方におけるメモリの再マッピングが記載されている。ここで、セクタとは、ホストとの間のデータ転送単位のサイズである。
論理アドレスと物理アドレスとの間の対応関係をシステムによって保持する必要があるので、変換を通常はコントローラ上で、または場合によってはホスト上で(例えば、フラッシュアレイの埋め込まれた実施形態において)行うことができる。マップそれ自体は、メモリアレイ内に保持される場合もあるが、通常は、(始動時にまたは必要に応じて)揮発性ポインタ構造内またはコントローラ(またはホスト)上のテーブル内にロードされ、そこで論理から物理への識別および変換が行なわれる。このように、記憶単位それ自体は物理アドレス空間内で機能するが、ホストは論理アドレスを用いてメモリと通信する場合がある。論理アドレスは、記憶部分と通信するために、コントローラによって物理アドレスに変換される。
データを不揮発性メモリ内に書き込む場合には、新しいデータを対応する物理アドレスに書き込む前に、対応する論理アドレスにそれまで付随しているデータを消去するのが普通である。古いデータ、古いポインタ、またはその両方が保持されないため、古いデータにアクセスすることはできない。そのため、書き込みが成功しないときには、古いデータが失われる場合がある。ある一群の従来技術のアプローチでは、新しいデータは、対応する物理位置ではなく異なる位置に一時的に書き込まれるデータである。
米国特許第5,602,987号 米国特許出願第09/893,277号 米国特許出願第09/505,555号 米国特許出願第09/703,083号 米国特許第5,768,192号 米国特許第4,630,086号 米国特許第5,991,193号 米国特許第5,892,706号
したがって、本発明の1つの主要な態様によれば、論理アドレスと物理アドレスとは同一ではない。不揮発性メモリの記憶ユニット上のポインタ構造によって、物理アドレスと論理アドレスとの間の対応関係が保持される。コントローラおよび記憶ユニットによって、論理セクタアドレスに基づいてデータが転送され、物理アドレスと論理アドレスとの間の変換が記憶ユニット上で行なわれる。ポインタには、現在のデータの論理セクタアドレスと物理アドレスとの間の対応関係が含まれ、さらには古いデータが記憶されている論理アドレスと物理アドレスとの間の1つ以上の以前の対応関係も保持される。古いデータと新しいデータとをある時点に至るまで同時に保つことができる。バックグラウンド消去と組み合わせることで、性能が向上する。
例示の実施形態において、ポインタ構造は、それぞれが独自の行デコーダを有する1つ以上の独立した不揮発性サブアレイである。複数のポインタを用いることで、信頼性が向上する。各ポインタは、アクティブであるかどうか、さらに論理アドレスと物理アドレスとの間の現在の対応関係と1つ以上の以前の対応関係とを記憶するかどうかを示すために、フラグを有する。新しいデータを書き込むときには、それを利用可能な空のメモリセクタに書き込み、ポインタを同時に更新する。欠陥のあるセクタを行冗長方式において利用可能なセクタのプールから取り除くことができる。ランダム検索、バイナリ検索、または他の検索技術を用いて、利用可能な消去されたセクタを見つけることができる。
本発明のさらなる態様、特徴、および利点は、以下の例示の実施形態の説明の中に含まれ、この説明は、添付の図面とともに考慮されるべきである。
本発明は、アレイ内の物理アドレスとホストからの論理アドレスとの間の対応関係がポインタ構造内で保持される不揮発性メモリを提供するものである。ポインタ構造は、不揮発性メモリアレイ構造上にあり、論理アドレスのみを扱うメモリコントローラに対して透明である。書き込み処理では、新しいデータとその対応する論理アドレスとが、コントローラによってメモリアレイに供給される。新しいデータは新しい物理アドレス内に書き込まれ、論理アドレスと新しい物理アドレスとの間の対応関係が、アレイのポインタ構造内で更新される。ポインタ構造には、以前の物理アドレスと論理アドレスとの間の対応関係も保持される。また、新しいデータを書き込んだ後で、かつそれと同時に、以前のデータを以前の物理セクタに保持することができ、またバックグラウンド処理の一部として後で除去することもできる。読み取り処理では、データの論理アドレスが、コントローラによってメモリアレイに供給される。メモリアレイは対応する物理アドレスからのデータをコントローラへ戻す。
以下の説明において、便宜上、本発明を主に別個のコントローラとメモリチップとを有する実施形態の点から説明するが、他の実施形態においては、これらは単一の集積回路上で組み合わせてもよい。また、以下の説明を簡略化するために、データの書き込みおよび消去の両方に対する単位をセクタとし、メモリアレイの列に対応させるが、より一般的には構造は必ずしも対応していない。本発明を用いることができるメモリ構造についてのさらなる詳細が、Jian Chen らによる2001年6月27日出願の「複数データ状態で動作する不揮発性メモリの記憶エレメント間の結合の効果を減らすための動作技法」という米国特許出願第09/893,277号(特許文献2)、Kevin Conleyらによる2000年2月17日出願の「同時複数データセクタ・プログラミングおよび他の指定ブロックでの物理ブロック特性の記憶を伴うフラッシュEEpromシステム」という米国特許出願第09/505,555号(特許文献3)、John S. Manganらによる2000年10月31日出願の「フラッシュメモリ用の可変ビットライン・ランプレート・コントロール」という米国特許出願第09/703,083号(特許文献4)に記載されている。これらの特許出願のすべて、またはそれらの中に含まれる参考文献もその全体が本願明細書において参照により援用されている。
不揮発性メモリにおけるフリー・アドレッシング
X行およびY列からなるフラッシュメモリアレイにおいて、フリー・アドレッシング方式を用いることによる、すなわち論理アドレスとは異なる物理アドレスに情報を書き込めることによる利点があり得る。例示の実施形態を図1に関連して説明する。本発明を主にフラッシュメモリの点から説明するが、データを記憶装置内へどのように記憶し、読み取り、書き込むかについての詳細は、以下の説明にはまったく入らないので、他の不揮発性記憶ユニットへの拡張も容易である。
図1は、不揮発性メモリの一部を示すブロック図であり、メモリコントローラ101およびメモリ回路103が、ここでは別個の集積回路上にあり、データ、アドレス、およびコマンドを交換するように接続されている。また、コントローラ101も、ホストシステム(図示せず)に接続され、データ、アドレス、コマンドを交換する。メモリ回路103は、不揮発性メモリセルのアレイ125を含むように示されている。不揮発性メモリセルのアレイ125には、Yまたは列制御回路121と、Xまたは行制御回路127と、データ入出力回路123とが接続されている。これらの読み取り、書き込み、および消去回路についてのさらなる詳細は、米国特許第5,602,987号(特許文献1)、および他の援用されている参考文献に示されている。説明を簡略化するために、この例では、メモリアレイが、1つの連続コントロールゲートおよび/または1つの連続消去ゲートをワードラインに沿って有するものと考える。データ記憶ユニットは、バイナリ、または好ましくはマルチ状態のメモリセルを記憶してもよい。より一般的な場合については、本願明細書において参照によりすでに援用されている米国特許出願第09/893,277号(特許文献2)および第09/505,555号(特許文献3)に記載されているように、明らかにすることができる。
物理セクタアドレス(PSA)を、インタフェースを介してコントローラからXまたは行制御回路127へ供給するのではなく、その代わりに論理セクタアドレス(LSA)をインタフェースを通してメモリ回路103へ供給して、そこで対応する物理セクタアドレスに変換する。この目的のために、メモリ回路には、独自のXデコーダを有する別個の小形アレイ110を用いるポインタ構造も含まれる。簡略化した例を図2に示す。
図2には、セクタの割り当てテーブルを構成するポインタ構造を示し、ここででは、ある論理アドレスの古いまたは以前の物理アドレスと、新しいまたは現在の物理アドレスとが同時に記憶され、すなわち、新しいデータが論理アドレス(LSA)内に書き込まれるときには、新しいデータは、論理アドレスにそれまで対応していた物理アドレスとは異なる物理アドレス(PSA)内に書き込まれ、このそれまでの対応関係はポインタ構造内に、それが更新された後に保持される。現在のデータはメモリアレイ内に部分201として概略的に示され、論理アドレスにそれまで対応していたデータは部分203として示されている。ここでは、各部分ともセクタ、すなわち消去の単位であるとする。
主アレイ125には、ワードラインと交わる数千のセルがあり得るが、ポインタアレイ110には、そのワードラインに沿って数ビットしかなく、ここでは、その数は行アドレスビットの数の2倍である。ある時間において、古いアドレスポインタと新しいアドレスポインタとが同時に存在する。同じことが、対応する位置に記憶される情報に対して起こり、これは、古いアドレスにおける古いデータ203と、新しいアドレスにおける新しいデータ201とに対して起こる。通常の読み取りに先行して、論理アドレスにおけるポインタ構造のXデコーダに対して早いアクセスを行なうことによって、現在のまたは新しいワードラインに対するポインタが得られる。それに続いて、ポイントされたワードラインが選択される(論理アドレスに対応する物理アドレス)。このシーケンスが必要であるのは読み取り動作の間だけである。というのは、アクセス時間が、データのストリームアウトに要求される時間よりも短いからであるため、この予備的手順が読み取り性能に与える影響はまったくない。書き込みまたは消去動作の間は、このような余分なステップは必要ではない。
新しいデータが書き込まれた後、しばらくの間古いデータが保持されるため、古いデータには、それが消去されるまでアクセスすることができる。特別なコマンドによって、古いアドレス行にアクセスすることも、必要に応じて可能である。こうして、「メイク・ビフォア・ブレイク」の特徴が得られ、この結果、新しいデータを書き込む間に多少のエラーが発生するか、または他の何らかの理由で以前のデータが必要になったとしても、そのデータは依然として不揮発性メモリ内にあり、依然としてアクセスすることができる。論理アドレスの以前の対応関係を用いることによって古いデータにアクセスするだけでなく、物理アドレスモードによって古いデータに直接アクセスすることもできるが、このことは、通常ユーザにとっては直接利用できるものではない。
書き込みの際、アレイデータとアドレスポインタとを同時にプログラムすることができる。プログラムの検証を待つ間、古い物理アドレスにおける古いデータが利用可能である。論理アドレスに対応する新しいデータは、同じ物理アドレスには書き込まれないため、新しいワードラインの書き込みによって(または書き込み単位がどのように配置されようとも)、消去動作が必要となることは、メモリアレイ全体が一杯になる前にはない。しかし、セクタの割り当てテーブル(SAT)レベルでは、古いアドレスポインタを消去して、その特定の論理アドレスの次の書き込み動作に対して利用できるようにしなければならない。膨大なブロックのデータを書き込む際に、性能が重要で要求されるならば、古いポインタの消去は厳格に要求されるわけではない。しかし、同じ論理アドレスを繰り返して書き込む場合には、ポインタ消去によって性能が劣化する。それでも、この場合には、ポインタ空間のクリーンアップ時間が書き込み性能に及ぼす影響を軽減するために、バッファを用いることができる。
アドレスの記憶に必要なセルの数は、主アレイの書き込み単位(ここでは、ワードラインとする)に沿ってのセルの数に比べれば小さい。例えば、16K行の場合には14ビットが必要であり、すなわち16Kのセルのワードライン上で約1/1000のオーバーヘッドである。このことに留意すれば、10×バッファを用いることは、1%のオーバーヘッドのみで可能である。この場合、ポインタバッファの消去が起こるのは、10回の書き込みサイクルの後だけであり、消去時間は何とか償却される。主アレイそれ自体は、消去する必要があるのは、一杯になったときだけである。性能を高めるために、バックグラウンド処理において消去単位を消去することができる。消去プロセスおよび利用可能な書き込み単位を見つけることについてのさらなる詳細は、以下の「消去セクタを見つけるためのアルゴリズム」の欄で示す。
アレイ内では、空の書き込み単位(この例では行)の利用可能性についての情報を書き込み単位それ自体に(この場合は、単一のワードライン上に)付属させて記憶させることによって、(水平に)あらゆるメモリセルが1行の経過を把握できるようにすることができる。この結果、本発明では、不良の書き込み単位の経過を把握することができる。図1および2の例では、図3a〜3fに関連してプロセスについて概略的に説明する。
これらの図では、ポインタ構造110は、論理アドレスが保持されるXデコーダ303と、対応する第1の組の物理アドレス301と、第2の組の物理アドレス305とを有するように概略的に示されている。(ここでは、ポインタ110のセル301および305は、デコーダ303のそれぞれ左および右にあるとして示されているが、以下の「ポインタ構造」の欄のように、実際のレイアウトでは両方とも同じ側にすることもできる。)この例では、8つの可能な物理セクタアドレスが存在し、論理アドレスの数は、8から不良な行の数を引いたものである。論理アドレスは、ポインタのXデコーダを1から良好な行の数まで下がるように示されている。
データアレイでは、Xデコーダ127が、行の物理アドレスを1から8までとして示されている。アレイ125は、これら8つの行のユーザデータメモリセルと、さらにセクタチャートとして機能する2つの列321および323のフラグ(各行に対して2つ)とを含んでいる。
図3aには、フレッシュな、そうでなければ完全に消去されたアレイを示す。この例では、アレイは、1つの不良な書き込み単位、すなわち線で消されていることが示されている4番目のワードラインを伴うセクタを有する。その結果、論理アドレスは1〜7までとなり、303の最後のスロット(論理アドレス8であろう)が×として示され、301および305における対応するスロットが線で消されて、アレイが1つのワードラインを失っていることが示されている。ワードラインが不良であるとする決定は、さらにポインタ構造110を更新するための後の動作の間に、テストにおいて行なうことができる。メモリが空の場合でも、321におけるセクタチャート内の位置にマークをつけ、4番目の行が不良で書き込み用ではないことを示す。
この例では、論理セクタアドレス1〜3にそれぞれ対応するデータA〜Cが、メモリに届き、物理セクタアドレス1〜3にそれぞれ書き込まれる。その後、論理セクタ3に対応するデータ(Cデータ)が更新される。物理セクタ3のデータに上書きするのではなく、新しいCデータが空のセクタに書き込まれる。物理セクタ4は不良であるため、新しいCデータはセクタ5に書き込まれる。(この例では、物理セクタが順番に書き込まれているが、このことは一般的にそうであるとは限らず、アレイがいったん部分的に書き込まれたらそうではなくなる。)この時点での状況を図3bに示す。
図3bにおけるポインタ構造110では、論理アドレス1および2は物理セクタアドレス1および2にそれぞれ対応する。論理セクタ3に対応するのは、列301内の以前の物理セクタ3であり、現在対応する物理セクタアドレス5は列305内にある。アレイ125では、A(論理アドレス1)データおよびB(論理アドレス2)データが、第1行および第2行にある。古いC(論理アドレス3)データが行3に示されているが、線で消されて、現在のものではなく、現在のCデータは行5にあることが示されている。種々の行の状態が列321に示され、単一の線は、行を書き込みに利用できないことを示し、行3の×は、行3が書き込まれたこと、およびもはや現在のものではないことの両方を示している。この段階で、論理アドレス3は2回書き込まれ、この論理アドレスに対する2つのポインタに反映されている。必要に応じてこの時点で、物理セクタ3を消去することができ、これは、例えばバックグラウンド動作において、そうでなければ、単にアレイが一杯になるまで待つことによって行なう。論理アドレス3に対応する古いポインタ(物理アドレス3)も、必要に応じて消去することができる。
論理アドレス4〜6に対応するさらなるデータ(それぞれD〜F)の書き込みを続けることで、行6〜8が一杯になる。この段階で、(行3がバックグラウンド処理で消去されていないと仮定すると)メモリは一杯であり、論理セクタ3の古いポインタがクリーンアウトされていることもあり得る。結果として生じる状況を図3cに示す。
利用可能な行を見つけることは、以下のようにして具現化される。まずチャート(321および323)をセンス増幅器レジスタ(データ出力回路123内)の中へダンプした後に、行状態情報をストリームアウトするが、これは、必ずしもメモリチップ103の外にではない。書き込み時に、チャートが更新され、1つまたは2つのビットのみをプログラムする必要がある。また、チャートは2つの仕切り(新しいものおよび古いもの)を有し、これらは、この段階では321および323にそれぞれ対応するが、それらの役割は、図3fによって逆転する。
この例を続けて、対応する物理セクタ内のデータを×で消すことによって示されているように、論理アドレス4および6(データDおよびF)を不用なものとすると次に考察する。すなわち、図3dに示すように、(301内の論理アドレス4および6に対して)消去すべきポインタがもう2つあり、3つのワードラインが消去可能である。
図3eでは、不要なセクタが消去され、ポインタ110がクリーンアップされている。セクタチャート321が消去され、更新されたセクタチャートが今度は列323内にある。論理アドレス7(データG)に対応する新しいデータがメモリにそのインタフェースを通して届いたときに、そのデータを今では空いている行3内に書き込むことができ、その結果を図3fに示す。すなわち、以前に論理セクタアドレス3に対応していた物理セクタ3が、今では論理セクタアドレス7に対応する。
この場合もやはり、この処理はすべてメモリチップ上で起こり、物理アドレスモードなどの特別な条件の場合を除いて、コントローラに対して透明であることに留意されたい。外見的には、論理アドレスおよび対応するデータのみが、コントローラとメモリチップとの間のインタフェースを介して交換され、物理アドレスが取り扱われているのはメモリチップ上だけである。
ポインタ構造
より詳細な例示の実施形態では、アーキテクチャが、物理的に隣接していない2つのゾーンに分離されるポインタ領域を含む。例えば、2つのゾーンは、メモリの最も左の領域と最も右の領域であり、独自のXまたは行デコーダをそれぞれ有している。例示の実施形態において、各ハーフは5つの別個なゾーンを有している。すなわち、フラグビット、Xアドレスサイズのヒューズアドレス、メモリ「プレーン」の数に等しいXアドレスの数、完全なX+Yアドレスの任意の数、およびヘッダ空間である。Xアドレスはプレーン内のアドレスであり、Yアドレスはプレーンのアドレスである。このポインタ構造を図4に関連して示す。
図4では、メモリアレイ125が、Yデコーダ回路121とデータ入出力回路123とに接続されている。この例では、アレイ125は、8プレーンに分割される。これらのことは、本願明細書において参照によりすでに援用されている米国特許出願第09/505,555号(特許文献3)および第09/703,083号(特許文献4)に記載されている。プレーンに対するXデコーダまたは行制御回路は、図4には明確には示されていないが、これらの参考文献に記載されているように援用されていてもよい。左および右のポインタ110aおよび110bがより詳細に示され、それらは、明確に示された独自の別個のXデコーダ303aおよび303bを有する。ある論理X、またはセクタ、アドレスが与えられたとすると、その欠陥ポインタが、ポインタ空間の物理Xアドレスに(または後述するように、予備Sアドレスに)位置づけられる。ポインタ構造110aおよび110bをアレイの異なる側上に配置することによって、処理問題または他のランダムな欠陥に起因して、両方のアレイが不良になるという可能性は最小限になる。
一度にアクティブになるのは、ハーフポインタ110aおよび110bの一方のみであり、他方は準備の整った状態(消去された状態)に保たれる。301aに示すように、フラグビットによって、どちらのハーフがアクティブかが知らされる。「0」フラグビット(消去された)によって、その特定のハーフがアクティブでなくなる。各ハーフポインタは、エンコードされたアドレスがSであるかまたはXとは異なる場合に、ポインタ全体が不良であることを宣言するヒューズアドレスを有する。この情報をデバイスの出荷前に行なうテスト中に、「ソート」時に「ヒューズ」することができる。
良好なアクティブ・ハーフポインタ内には、メモリ全体にわたるNセクタの実際の位置を示し、各プレーン内に1つのセクタがあるN個のXアドレスが存在する(ここで、Nはプレーンの数である)。8つのプレーンという特定の場合では、8つのXアドレスを8つのプレーン位置に適合するように順序づけることができ、Y(または「プレーン」)アドレスは、暗黙であるため、まったく必要ではない。これが、ヘッダデコーダと組み合わせて、基本的なポインタ構造である。メモリの書き込みが、常に8つのプレーン内に順序立てて位置づけられる8つのセクタのグループで行なわれるならば、バッファは必要ではない。これが常にそうであるわけではないため、明確なY部分を有するある数の全長X+Yアドレス空間が、ポインタバッファのために確保される。この空間は、プレーンアドレスが今ではその順序が乱れるかまたは「スクランブル」される可能性があるということに関係なく、X論理アドレスに属する新しいセクタがプログラミングされる度に一杯になる。セクタの物理的X位置は、ランダムに決定され、そうでなければその対応するプレーン上ですでに利用可能となっている消去セクタアドレスを選択する。Y(「プレーン」)アドレスを加えることによって、セクタをスクランブルされたシーケンスまたはプレーン順序が乱れたシーケンスで、プログラムすることができる。バッファが一杯になったらすぐに、クリーンアップされたバージョンの基本構造(Yアドレスがそれらの暗黙のY位置に再位置づけされている)をポインタの他方のハーフ上にコピーした後に、最初のハーフを消去することができる。ヘッダ情報は、変えずに転送される。
ヘッダ情報が更新されるときはいつも、完全なコピーポインタ動作が必要である。ユーザデータを記憶する記憶ユニットはマルチ状態であってもよいが、ポインタ空間内の情報はバイナリ・エンコードされ(2状態モード)、最良のデータ保護と最速の書き込み時間とが得られる。ヘッダは、ECCや、例えば本願明細書において参照によりすでに援用されている米国特許5,602,987号(特許文献1)に記載されている他のエレメントなどの標準の情報を含むことができる。
論理Xアドレスに沿ってのセクタのサイクルが一様でない場合には(最悪の場合には、同じセクタを繰り返しサイクルする)、バッファが用いられる。シーケンスが完全に一様である場合、すなわち第1のセクタが最初にプログラムされ、次に第2、そして第3などの場合には、バッファは必要ではないであろう。
ポインタ構造110をメモリチップ上に配置することによって、ポインタ動作は、メモリの自律性を高くすること、またはコントローラ関与を最小限にすること(透明であること)を目的とすることになる。読み取り動作では、物理アドレスアクセス、あるいは論理アドレスアクセスの2つのモードが利用可能である。論理アドレスアクセスまたは通常の動作モードでは、最初にXアドレスをポインタアドレスレジスタ内にロードする。それから、その特定の行のポインタの両ハーフを読み取る。もし欠陥ポインタが不良である(「ヒューズアドレス」が実際の行アドレスと異なる)ことが判明した場合には、予備ポインタ(予備アドレスS)(そのアドレスがポインタの良好なハーフ上のヒューズゾーンにおいてエンコードされる)を考慮に入れる。物理的に分離されているために、ポインタの両ハーフが不良である確率は非常に低いため、そのようなダイを選別することができる。続いて、第2のポインタの読み取りが続く。これは、真のポインタを与える最大で2ステップの読み取り動作である。
物理アドレスアクセスモードは、ユーザにとっては通常はアクセスできるものではなく、外部コマンドによる呼び出しによって行なわれる。このコマンドは、システムエラーの場合に、コントローラが出すことができる。あるいは、物理アドレスモードは、ソート処理中のテストモードの一部として、またはその部分が破損した場合のデータ回収用として用いることができる。
何らかのポインタを読み取る際には、「フラグ=1」のハーフのみを考慮する。読み取り時には、アドレスのみが重要であり、ヘッダビットは通常無視する。
まず、最初の8つのアドレス(N=8、純粋なXアドレス)をメモリの8つのプレーンXデコーダに割り当てる(それらのレジスタ内にロードする)。次に、最初の「バッファ」アドレスを、もし空でなければ、読み取る。読み取りによって、「プレーン」(Y)アドレスとXアドレスとが得られる。その結果、その特定のプレーンのXデコーダレジスタがオーバーライドされて、新しいXアドレスがロードされる。この後に、次の「バッファ」アドレスが続き、以下同様である。Xデコーダが更新されて、Yアドレスのデスクランブルを表わすプロセスにおいて最新のエントリのみが残る。物理ドメイン内のポインタに行を割り当てる際に、行000…0および111…1は省略される。したがって、バッファ内のどの行もゼロではないアドレスとなる。
この全体のシーケンスは、「すべて0」(またはすべて1)のビットストリングをチェックすること、および/またはシフトレジスタを通してデータを移動させることなどの非常に基本的な動作から構成される。「オンチップ」上で具現化することは非常に簡単に、すなわちコントローラの関与なしに、行なうことができる。
書き込み動作はさらに複雑であり、準備フェーズから始まる。準備フェーズには2つの動作が含まれる。真のポインタを見つけること(読み取りモードの場合と同様である)と同時に消去セクタを見つけること(必要に応じて各プレーン内で1つ)である。次にポインタの更新が続く。状況に応じて、最大で8つ(この特定の例において)のXアドレスが、1つのサイクル内にエンコードされる。ポインタのプログラミング時に、記憶すべきセクタアドレスの数が、アクティブなハーフ上で利用可能な空の「バッファ」位置の数よりも大きい場合には、クリーンなバージョンのポインタが、その他方の(消去された)ハーフ用に準備されて、そこにコピーされる。プレーンに対する書き込み動作が、基本的なポインタ構造の自然な順序で行なわれる場合には、バッファ部分(完全なX+Yアドレスを伴う)は必要ではない。そうでない場合には、上述したように、ある時点においてそれらを最終的にクリーンアップする必要があり、これは、費用対効果がある。書き込みプロセスを順々に行なう場合には、性能は向上し、ポインタ構造の持続時間は、その消去回数がしばしば減るため、アレイのユーザデータ部分とほぼ同じになる。
バッファのサイズは、最悪の場合のシナリオに基づき、これは、消去動作を必要とすることなく8つのアドレスをエンコードすることである。この場合、バッファのサイズは、N−1であり、301aのバッファA〜Gとして示す。アレイが、例えば16K列×16K行の場合には、ポインタのサイズは(ヘッダ部分を考慮に入れないで)、次のように計算することができる。但し、どのXアドレスにも15ビットが含まれ、どのYアドレスにも3ビットが含まれる。ポインタは、2×(8×15+7×18+1+15)=524ビット、または(ポインタなしの)アレイサイズの3.2%を有する。ポインタに取り付けられた2つのXデコーダが、別に3.05%を取る。したがって、この例では、全領域のオーバーヘッドは、主アレイの6.25%である。
上述したように、読み取りの間に、変換されたアドレスを得るための時間は比較的短い。ポインタはバイナリ記憶を用いることが好ましいため、ポインタのプログラミングは、マルチ状態の主アレイのプログラミングよりも早く、また主アレイと同時にプログラムすることができるため、時間的な不利益はない。バッファおよび左右ハーフポインタの配置に加えて、「古い」セクタと「新しい」セクタとが同時に存在して同じアドレスを共有することによって、プログラミングサイクルを中断したときに有用である少なくとも1つのレベルの「アンドゥ」動作が得られる。こうしてコピー動作を必要とすることなく「メイク・ビフォア・ブレイク」の特徴が得られる。加えて、プログラミングは、常に利用可能な消去セクタ上で行なわれるため、書き込み性能を大きく向上させることができる。次の欄で説明するように、消去セクタをランダムに選択することは、消耗均等化にとって望ましいことである。
消去セクタを見つけるためのアルゴリズム
本発明の1つの態様によれば、論理アドレスに対応する新しいデータが、論理アドレスにそれまで対応していた物理アドレス以外のオープンな物理アドレスに書き込まれる。オープンな物理アドレスは、それまで未使用のアドレスの可能性もあるし、それまでに使用されたアドレス、例えばバックグラウンド消去処理において消去されたアドレスの可能性もある。フラッシュメモリアレイのポインタベースのアーキテクチャでは、消去セクタを、ランダムに利用可能な消去プールから遅れを比較的最小にして見つけることによって、性能が向上する。
このタスクの例示の実施形態において、図3a〜fの例の列321および323に示すように、各セクタはその状態を知らせるための特別な「消去バー」のフラグビットを有する。多くのフラグビットを同時に読み取る能力はとても役に立つが、強制的なものではない。Xアドレスの形態のランダム検索シードが、デジタルカウンタに照会することによって生成される。カウンタの最大カウントは、例えば図3a〜fの例の7のような恒久的にONである行の数に等しい。シードアドレスから始めて、異なる行のフラグビットがチェックされ、好ましくは、同一の最適化されたシーケンスで行なう。このように、チェックアルゴリズムは必ずしもランダムである必要はないが、多くのものが利用可能で、ランダムな開始によって与えられる場合には、動作の結果はランダムな消去セクタになる。消去セクタを見つける速度は、利用可能なプールのサイズとともに小さくなるが、複数行を同時にチェックするならば、最大数のステップを保証することができる。
メモリアレイが、隣接セル間に共通のソース/ドレイン接続が存在するセグメント(「仮想接地」アーキテクチャ)がNOR形で存在するように仕切られている場合には、消去された行は導通している。多数の行の一端に信号を同時に印加することによって、それらの任意の1つが導通し、したがって消去される場合に、他端に接続されたビットラインに電流が生じるため、セクタを同時にテストしてグループ内の1つ以上が消去されているかどうかを決定することができる。このように、純粋なバイナリ検索は、少なくとも1つの消去された行を見つけるために2K のうちの第1のセグメントを知らせるのに、Kステップしか必要としない。このバイナリ検索をメモリ全体に広げることは、所望のセグメントを見つける最速の方法であるが、消費電流を考慮すると、チェックされるアレイのサイズが限定されることが考えられる。したがって、リニア検索とバイナリ検索とを組み合わせることができる。
少なくとも1つの消去セクタを含むセグメントを見つけた後で、純粋なバイナリ検索によって、それを内部で特定することができる。一例として、メモリがそれぞれ64行からなる256セグメントに分割された16Kの行を有する場合、16個のセグメントからなるブロックを16シーケンスでリニア検索し、その後、ブロック内で4つのバイナリ検索を行なうことができる。したがって、セグメントを見つけるのに必要なステップの数は、16+4=20ステップである。さらに6ステップを用いてセグメント内で行を見つければ、ステップの総数は26である。読み取りサイクルが100nsの場合、2.6μsが必要であるが、これは、通常数100μsが必要な書き込みサイクルに対してそれほど大きな時間的オーバーヘッドではない。
消去された行は導通し、その消去バービットは必然的に0である。導通していない消去バービットを有する行のすべては、同時にまたは別個のいずれかによりチェックされたときに、消去プール検索から自動的に除外される。
ポインタ構成されたアーキテクチャにおける行冗長性
不揮発性メモリシステムでは、不良な行およびセクタのマッピングアウトをそれらのアドレスをどこかに記憶し、かつ与えられた何らかのアドレスをそのリストと比較し、そして必要に応じて予備位置コードを発生させることによって行なうことが普通である。このことは、例えば本願明細書において参照によりすでに援用されている米国特許第5,602,987号(特許文献1)に記載されている。本発明のポインタベースの環境では、ポインタ自体が変換マップを構成しているために、マッピングアウト動作をポインタエンコードレベルまで進めることができる。
消去されたセクタは、上述した欄で説明したように、プログラミング時に自動検索によって割り当て可能であるため、不良なセクタを消去プールから除外しなければならない。これは、欠陥に起因してワードラインが接地に短絡することでセクタが破損した場合には、自動的に起こり得る。この場合、消去バービットを含む任意のビットが、「1」となって表れる。あるいは、セクタは破損したが、ワードラインは接地に短絡していない場合には、ソート時に消去バービットをプログラムすることができる可能性がある。消去バービットそれ自体がプログラム不可能である場合には、セグメント全体を「不良」としてアレイのROM部分またはメモリの他の特別に割り当てられた領域に記録することができる。始動時に、ROMを読み取って、セグメント内部のラッチをセグメントが不良であるとマークするように設定する。このような場合、ラッチによってセグメント選択が「0」に保たれるため、そのセグメント内のセクタはすべてプログラムされているように見える。このように、それらは、検索シーケンスには関与しない。
上述した場合では容易に取り扱われるが、最悪のシナリオでは、「非常に頑固な」セクタ(セクタをプログラムまたは消去することが難しい)を特別に割り当てられた行の上のリスト上に記録することが要求される。始動時に、リストをRAM内にダンプして調べることができ、その結果、消去検索における勝利者候補をそれがリスト上にあるならば拒否することができる。そして、その特定のアドレスを次の消去セクタ検索のためのシードにすることができる。
ポインタそれ自体に対しては、物理的に異なる2つのハーフをアレイの反対側に配置することによって、通常少なくともポインタの1つの良好なハーフが存在することになる。両方のハーフ上にある不良なセクタが適合するという極めて起こりそうにもない場合には、事実上歩留まり損失なしでダイを選別することができる。
ポインタの不良なハーフ上にある不良なセクタは、多かれ少なかれ、正常な行と同じ考え方に従う。しかし、このような不良なポインタセクタに対して要求されることは、フラグビットが「1」に固定されたならば、ヒューズアドレス位置において00…000または11…111コードのいずれかを表わすことである。不良なポインタの良好なハーフは、アクティブであるとフラグされると、ヒューズ位置において予備アドレスをエンコードする。アクティブなハーフ上で良好なポインタのすべては、ヒューズ位置においてエンコードされる独自のアドレスを有する。
上述したように、これまで、主にフローティングゲートEEPROMまたはフラッシュセルなどの電荷蓄積デバイスを用いる実施形態について説明してきたが、メモリ素子に対して、磁気媒体または光媒体を含む他の実施形態に適用することもできる。記憶エレメントをどのように読み取り、書き込み、また記憶エレメントがどのようにデータを記憶するかについての詳細は、本発明の主要な態様には入らないため、本発明の種々の態様を0.1μm以下のトランジスタ、単電子トランジスタ、有機/カーボンベースのナノトランジスタ、および分子トランジスタを含むがこれらに限定されない他のメモリのタイプに適用してもよい。例として、例えば Eitanによる米国特許第5,768,192号(特許文献5)と、Satoらによる米国特許第4,630,086号(特許文献6)とにそれぞれ記載されているようなNROMおよびMNOSセル、または Gallagherらによる米国特許第5,991,193号(特許文献7)と、 Shimizuらによる米国特許第5,892,706号(特許文献8)とにそれぞれ記載されているような磁気RAMおよびFRAMセルも用いることができる。これらの特許は、その全体が本願明細書において参照により援用されている。
本発明の種々の態様を特定の実施形態に関連して説明してきたが、本発明は添付の特許請求の範囲の最大の範囲内において権利が保護されるべきであることが理解されよう。
本発明の態様を具現化する不揮発性メモリの一部を示すブロック図である。 別個の小形アレイを用いるポインタ構造の簡略化した例を示す。 図2の実施形態に対する例示の動作シーケンスを示す。 図2の実施形態に対する例示の動作シーケンスを示す。 図2の実施形態に対する例示の動作シーケンスを示す。 図2の実施形態に対する例示の動作シーケンスを示す。 図2の実施形態に対する例示の動作シーケンスを示す。 図2の実施形態に対する例示の動作シーケンスを示す。 本発明によるポインタ構造の例示の実施形態を用いるメモリアレイを示す。

Claims (38)

  1. 不揮発性メモリシステムにおいて、
    論理セクタアドレスによって識別されるデータを外部へ転送するためのコントローラと、
    コントローラに接続されるメモリと、を備え、前記メモリは、
    複数のセクタで構成されるアレイであって、各セクタは複数のデータ記憶エレメントを含み、物理アドレスによって識別されるものであるアレイと、
    論理セクタアドレスと物理セクタアドレスとの間の対応関係を記憶するポインタ構造であって、前記ポインタ構造は、論理セクタアドレスによって識別される現在有効なデータが記憶される論理セクタアドレスと第1の物理セクタアドレスとの間の第1の対応関係と、論理セクタアドレスによって識別される以前に有効なデータが記憶されていた論理セクタアドレスと第2の別個の物理セクタアドレスとの間の第2の対応関係とを同時に保持するポインタ構造と、
    を備える不揮発性メモリシステム。
  2. 前記対応関係は、ポインタ構造の不揮発性記憶エレメント内に記憶される請求項1記載の不揮発性メモリシステム。
  3. アレイとポインタ構造に結合される読み取り回路構成および書き込み回路構成をさらに備え、前記アレイとポインタ構造とは別個のデコーダ構造を有する請求項2記載の不揮発性メモリシステム。
  4. 前記対応関係はバイナリ不揮発性記憶エレメント内に記憶され、データ記憶エレメントはマルチ状態である請求項2記載の不揮発性メモリシステム。
  5. 前記コントローラおよび前記メモリは、別個の集積回路上に形成される請求項1記載の不揮発性メモリシステム。
  6. 前記メモリは、論理セクタアドレスによって識別される現在有効なデータと、論理セクタアドレスによって識別される以前に有効なデータとを同時に保持する請求項1記載の不揮発性メモリシステム。
  7. 前記コントローラは、コマンドに応答して、論理セクタアドレスによって識別される以前に有効なデータにアクセスすることができる請求項1記載の不揮発性メモリシステム。
  8. 前記メモリは、メモリアレイとポインタ構造とに結合される書き込み回路構成を備え、書き込み処理の間に、特定の論理セクタアドレスに対応する新しいデータが、アレイ内にアレイの新しい物理セクタアドレスに書き込まれるのと同時に、特定の論理セクタアドレスと新しい物理セクタアドレスとの間の新しい対応関係がポインタ構造内に記憶される請求項1記載の不揮発性メモリシステム。
  9. 前記メモリは、アレイに結合される消去回路構成をさらに備え、それによって前記以前に有効なデータがバックグラウンド消去処理において消去可能である請求項8記載の不揮発性メモリシステム。
  10. アレイの各セクタは付随するフラグビットを有し、集積回路は、
    書き込み回路構成とアレイとに接続される決定回路をさらに備え、それによって前記付随するフラグビットに基づいて利用可能なセクタが新しい物理セクタアドレスに対して決定される請求項8記載の不揮発性メモリシステム。
  11. 集積回路において、
    複数のセクタで構成される不揮発性メモリアレイであって、各セクタは複数のデータ記憶エレメントを含み、物理アドレスによって識別されるものである不揮発性メモリアレイと、
    論理セクタアドレスによって識別されるデータを外部へ集積回路に向けて転送するためにメモリアレイに接続されるインタフェースと、
    前記論理セクタアドレスを受け取るためにインタフェースに接続され、論理セクタアドレスと物理セクタアドレスとの間の対応関係を記憶するポインタであって、ポインタ構造は、第1の論理セクタアドレスによって識別される現在有効なデータが記憶される第1の論理セクタアドレスと第1の物理セクタアドレスとの間の第1の対応関係と、第1の論理セクタアドレスによって識別される以前に有効なデータが記憶されていた第1の論理セクタアドレスと第2の別個の物理セクタアドレスとの間の第2の対応関係とを同時に保持するものであるポインタと、
    を備える集積回路。
  12. 前記ポインタは、不揮発性記憶エレメントから構成される請求項11記載の集積回路。
  13. 前記データ記憶エレメントがマルチ状態の記憶ユニットであり、前記ポインタの記憶エレメントがバイナリ記憶エレメントである請求項12記載の集積回路。
  14. アレイとポインタ構造とに結合される読み取り回路構成および書き込み回路構成をさらに備え、前記アレイとポインタ構造とは別個のデコーダ構造を有する請求項12記載の集積回路。
  15. 前記メモリアレイは、第1の論理セクタアドレスによって識別される現在有効なデータと、第1の論理セクタアドレスによって識別される以前に有効なデータとを同時に保持する請求項11記載の集積回路。
  16. 前記メモリは、メモリアレイとポインタとに結合される書き込み回路構成をさらに備え、書き込み処理の間に、特定の論理セクタアドレスに対応する新しいデータが、アレイ内にメモリアレイの新しい物理セクタアドレスに書き込まれるのと同時に、特定の論理セクタアドレスと新しい物理セクタアドレスとの間の新しい対応関係がポインタ内に記憶される請求項11記載の集積回路。
  17. アレイに結合される消去回路構成をさらに備え、それによって前記以前に有効なデータがバックグラウンド消去処理において消去可能である請求項16記載の集積回路。
  18. メモリアレイの各セクタは付随するフラグビットを有し、集積回路は、
    書き込み回路とメモリアレイとに接続される決定回路をさらに備え、それによって前記付随するフラグビットに基づいて、利用可能なセクタが新しい物理セクタアドレスに対して決定される請求項16記載の集積回路。
  19. 第1の論理セクタによって識別される以前に有効なデータは、外部コマンドに応答してアクセス可能である請求項11記載の集積回路。
  20. コントローラとメモリとを備え、前記メモリはポインタ構造と複数のセクタで構成されるアレイとを含み、各セクタは物理アドレスによって識別され、複数の不揮発性データ記憶エレメントを含むものであるメモリシステムの動作方法において、
    コントローラユニットにおいてホストから第1のデータセットと論理セクタアドレスとを受け取るステップであって、それによってホストが第1のデータセットを識別するものである受け取るステップと、
    前記第1のデータセットと論理セクタアドレスとをコントローラからメモリへ転送するステップと、
    前記第1のデータセットをアレイの第1の物理セクタアドレスに記憶するステップと、
    前記論理セクタアドレスと第1の物理セクタアドレスとの間の第1の対応関係をポインタ構造内に記憶するステップと、
    前記第1のデータセットを記憶するステップと前記第1の対応関係を記憶するステップとの後に、コントローラにおいてホストから論理セクタアドレスに記憶すべき第2のデータセットを受け取るステップと、
    前記第2のデータセットをコントローラからメモリへ転送するステップと、
    前記第2のデータセットをアレイの第2の物理セクタアドレスに記憶するステップと、
    前記論理セクタアドレスと第2の物理セクタアドレスとの間の第2の対応関係をポインタ構造内に記憶するステップであって、前記メモリは、前記第2のデータセットを記憶するステップと前記第2の対応関係を記憶するステップとの後に、第1のデータセットを第1の物理セクタアドレスに保持し第1の対応関係をポインタ構造内に保持するものである第2の対応関係を記憶するステップと、
    を含むメモリシステムの動作方法。
  21. 前記第1の対応関係と前記第1のデータセットとを同時に記憶し、前記第2の対応関係と前記第2のデータセットとを同時に記憶する請求項20記載の方法。
  22. 前記第2のデータセットおよび第2の対応関係を記憶するステップの後に、第1の物理セクタを消去するステップをさらに含む請求項20記載の方法。
  23. 前記消去するステップをバックグラウンド処理で行なう請求項22記載の方法。
  24. 前記ポインタ構造は、不揮発性である請求項20記載の方法。
  25. 前記第2のデータセットおよび第2の対応関係を記憶するステップの後に、コントローラにおいてホストから論理セクタアドレスに記憶されるデータに対する要求を受け取るステップと、
    前記要求をコントローラからメモリに論理セクタアドレスの形で与えるステップと、
    メモリが前記要求を論理セクタアドレスの形で受け取ることに応答して、第2のデータセットをメモリからコントローラに与えるステップと、
    をさらに含む請求項20記載の方法。
  26. 前記第2のデータセットおよび第2の対応関係を記憶するステップの後に、メモリにおいて第1の物理セクタアドレスに記憶されるデータに対する要求を受け取るステップと、
    メモリが前記要求を受け取ることに応答して、第1のデータセットをメモリからコントローラへ与えるステップと、
    をさらに含む請求項20記載の方法。
  27. 前記第1のデータセットを記憶するステップの前に、一組の利用可能なセクタアドレスから第1の物理セクタアドレスを選択するステップと、
    前記第2のデータセットを記憶するステップの前に、一組の利用可能なセクタアドレスから第2の物理セクタアドレスを選択するステップと、
    をさらに含む請求項20記載の方法。
  28. 前記一組の利用可能なセクタアドレスは、良好な物理セクタのみに対応する請求項20記載の方法。
  29. ポインタ構造と複数のセクタを有するアレイとを含み、各セクタは複数の記憶エレメントを含むものである不揮発性メモリの動作方法であって、
    論理セクタアドレスによって外部からメモリにアクセス可能な第1のデータセットを第1の物理セクタ内に書き込むステップと、
    前記論理セクタアドレスと第1の物理セクタとの間の第1の対応関係をポインタ構造内に記憶するステップと、
    前記第1のデータセットを書き込むステップと第1の対応関係を記憶するステップとの後に、論理セクタアドレスによって外部からメモリにアクセス可能な第2のデータセットを第2の物理セクタ内に書き込むステップと、
    前記論理セクタアドレスと第2の物理セクタとの間の第2の対応関係をポインタ構造内に記憶するステップであって、第2のデータセットを書き込むステップと第2の対応関係を記憶するステップとの後に、第1のデータセットが第1の物理セクタアドレスに保持され、第1の対応関係がポインタ内に保持されるものである第2の対応関係を記憶するステップと、
    を含む不揮発性メモリの動作方法。
  30. 前記第1の対応関係を前記第1のデータセットを書き込むステップと同時に記憶し、前記第2の対応関係を前記第2のデータセットを書き込むステップと同時に記憶する請求項29記載の方法。
  31. 前記第2のデータセットを書き込むステップと前記第2の対応関係を記憶するステップとの後に、第1の物理セクタを消去するステップをさらに含む請求項29記載の方法。
  32. 前記消去するステップをバックグラウンド処理で行なう請求項31記載の方法。
  33. 前記ポインタ構造は、不揮発性である請求項29記載の方法。
  34. 前記第2のデータセットを書き込むステップと前記第2の対応関係を記憶するステップとの後に、メモリにおいて論理セクタアドレスに記憶されるデータに対する外部要求を受け取るステップと、
    前記要求に応答して、第2のデータセットを外部にメモリに向けて送るステップと、
    をさらに含む請求項29記載の方法。
  35. 前記第2のデータセットを書き込むステップと前記第2の対応関係を記憶するステップとの後に、メモリにおいて、第1の物理セクタに記憶されるデータに対する外部要求を受け取るステップと、
    前記要求に応答して、第1のデータセットを外部にメモリに向けて送るステップと、
    をさらに含む請求項29記載の方法。
  36. 前記第1のデータセットを書き込むステップの前に、一組の利用可能なセクタから第1の物理セクタを選択するステップと、
    前記第2のデータセットを書き込むステップの前に、一組の利用可能なセクタから第2の物理セクタを選択するステップと、
    をさらに含む請求項29記載の方法。
  37. 前記一組の利用可能なセクタは、良好なセクタのみを含む請求項29記載の方法。
  38. コントローラとメモリとを備え、データがメモリ内に物理アドレスに基づいて記憶されるものである不揮発性メモリシステムの動作方法であって、
    データをホストとコントローラとの間で論理セクタアドレスに基づいて転送するステップと、
    データをコントローラとメモリとの間で論理セクタアドレスに基づいて転送するステップと、
    メモリ上で論理セクタアドレスを対応する物理セクタアドレスに変換するステップと、
    対応する物理アドレスにおいてメモリ内に記憶されるデータにアクセスするステップと、
    を含む不揮発性メモリシステムの動作方法。
JP2003566720A 2002-02-06 2003-02-04 セクタポインタを用いるメモリ・マッピング・デバイス Pending JP2005517260A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/071,795 US6839826B2 (en) 2002-02-06 2002-02-06 Memory device with pointer structure to map logical to physical addresses
PCT/US2003/003418 WO2003067437A1 (en) 2002-02-06 2003-02-04 Memory mapping device utilizing sector pointers

Publications (1)

Publication Number Publication Date
JP2005517260A true JP2005517260A (ja) 2005-06-09

Family

ID=27659324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003566720A Pending JP2005517260A (ja) 2002-02-06 2003-02-04 セクタポインタを用いるメモリ・マッピング・デバイス

Country Status (7)

Country Link
US (2) US6839826B2 (ja)
EP (1) EP1472605A4 (ja)
JP (1) JP2005517260A (ja)
KR (1) KR20040101222A (ja)
CN (1) CN1300706C (ja)
AU (1) AU2003210853A1 (ja)
WO (1) WO2003067437A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016194928A (ja) * 2016-05-11 2016-11-17 株式会社日立製作所 ストレージシステム
CN109656835A (zh) * 2017-10-12 2019-04-19 拉碧斯半导体株式会社 非易失性存储器的数据改写方法以及半导体装置

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JP3976839B2 (ja) * 1996-07-09 2007-09-19 株式会社ルネサステクノロジ 不揮発性メモリシステムおよび不揮発性半導体メモリ
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US7185029B1 (en) * 2003-06-27 2007-02-27 Unisys Corporation Method and apparatus for maintaining, and updating in-memory copies of the first and second pointers to reference the new versions of the first and second control structures that indicate available and allocated portions of usable space in the data file
JP2005190161A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd データ処理装置およびコンパイラ装置
KR100533682B1 (ko) * 2003-12-26 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7792880B2 (en) * 2004-01-05 2010-09-07 International Business Machines Corporation Method and apparatus for efficient implementation of discontiguous objects
US8667249B2 (en) 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
JPWO2006067923A1 (ja) * 2004-12-22 2008-06-12 松下電器産業株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JP4643315B2 (ja) * 2005-03-11 2011-03-02 株式会社東芝 半導体集積回路装置
TWI275101B (en) * 2005-05-24 2007-03-01 Prolific Technology Inc Flash memory storage system
EP1739672A1 (en) * 2005-07-01 2007-01-03 Deutsche Thomson-Brandt Gmbh Method and apparatus for managing memory accesses in an AV decoder
US9009114B1 (en) * 2005-10-31 2015-04-14 Symantec Operating Corporation Version mapped incremental backups
FR2894709A1 (fr) * 2005-12-13 2007-06-15 Gemplus Sa "detecteur de destruction anormale de secteur memoire"
KR100781520B1 (ko) 2006-02-24 2007-12-03 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
JP2008009527A (ja) * 2006-06-27 2008-01-17 Toshiba Corp メモリシステム
JP4945186B2 (ja) * 2006-07-28 2012-06-06 株式会社東芝 記憶装置およびこれを含むメモリシステム
KR100843133B1 (ko) 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
US7577011B2 (en) * 2006-10-13 2009-08-18 Agere Systems Inc. Optimization of ROM structure by splitting
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
JP2010512584A (ja) 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US7525869B2 (en) * 2006-12-31 2009-04-28 Sandisk 3D Llc Method for using a reversible polarity decoder circuit
DE602008002278D1 (de) * 2007-05-02 2010-10-07 St Microelectronics Sa Nicht flüchtiger Speicher mit drehbaren Hilfssegmenten
FR2915829A1 (fr) * 2007-05-02 2008-11-07 St Microelectronics Sa Memoire non volatile a ecriture rapide
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7979670B2 (en) * 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7975111B2 (en) * 2008-11-13 2011-07-05 Macronix International Co., Ltd. Memory and method applied in one program command for the memory
US8296503B2 (en) * 2009-05-26 2012-10-23 Mediatek Inc. Data updating and recovering methods for a non-volatile memory array
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8381018B2 (en) 2010-05-21 2013-02-19 Mediatek Inc. Method for data recovery for flash devices
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9003247B2 (en) * 2011-04-28 2015-04-07 Hewlett-Packard Development Company, L.P. Remapping data with pointer
KR101797565B1 (ko) * 2011-08-22 2017-12-12 삼성전자 주식회사 불량 페이지를 관리하는 메모리 장치
US8885425B2 (en) 2012-05-28 2014-11-11 Kabushiki Kaisha Toshiba Semiconductor memory and method of controlling the same
TWI509615B (zh) * 2012-08-03 2015-11-21 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US9165633B2 (en) 2013-02-26 2015-10-20 Honeywell International Inc. Carbon nanotube memory cell with enhanced current control
US9842991B2 (en) 2013-03-15 2017-12-12 Honeywell International Inc. Memory cell with redundant carbon nanotube
US9569354B2 (en) * 2013-08-02 2017-02-14 Infineon Technologies Ag System and method to emulate an electrically erasable programmable read-only memory
US10698816B2 (en) * 2018-06-29 2020-06-30 Micron Technology, Inc. Secure logical-to-physical caching
US11860947B2 (en) * 2019-01-31 2024-01-02 International Business Machines Corporation Deleted data restoration
KR20230013558A (ko) 2021-07-19 2023-01-26 에스케이하이닉스 주식회사 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5955071A (ja) 1982-09-24 1984-03-29 Hitachi Micro Comput Eng Ltd 不揮発性半導体装置
EP0198935A1 (de) 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
DE69033262T2 (de) 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JPH07182879A (ja) 1993-12-24 1995-07-21 Fuji Film Micro Device Kk 半導体メモリ装置
JPH07281948A (ja) * 1994-04-06 1995-10-27 Mitsubishi Electric Corp メモリ制御装置
US5581736A (en) * 1994-07-18 1996-12-03 Microsoft Corporation Method and system for dynamically sharing RAM between virtual memory and disk cache
US5798964A (en) 1994-08-29 1998-08-25 Toshiba Corporation FRAM, FRAM card, and card system using the same
JPH08137634A (ja) 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH08212019A (ja) 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JP3706167B2 (ja) 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
US6108759A (en) 1995-02-23 2000-08-22 Powerquest Corporation Manipulation of partitions holding advanced file systems
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
JPH10124381A (ja) 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US6411546B1 (en) 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6122195A (en) 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US5946718A (en) * 1997-05-30 1999-08-31 National Semiconductor Corporation Shadow translation look-aside buffer and method of operation
JP2001515243A (ja) * 1997-09-05 2001-09-18 サン・マイクロシステムズ・インコーポレーテッド クラスタ保護メカニズムを使用する多重処理コンピュータ・システム
US5991193A (en) 1997-12-02 1999-11-23 International Business Machines Corporation Voltage biasing for magnetic ram with magnetic tunnel memory cells
US6351797B1 (en) * 1997-12-17 2002-02-26 Via-Cyrix, Inc. Translation look-aside buffer for storing region configuration bits and method of operation
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
US6141249A (en) 1999-04-01 2000-10-31 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US6618789B1 (en) * 1999-04-07 2003-09-09 Sony Corporation Security memory card compatible with secure and non-secure data processing systems
JP4282197B2 (ja) 2000-01-24 2009-06-17 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
EP1139210B1 (en) * 2000-03-28 2004-03-17 STMicroelectronics S.r.l. Method of logic partitioning of a nonvolatile memory array
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016194928A (ja) * 2016-05-11 2016-11-17 株式会社日立製作所 ストレージシステム
CN109656835A (zh) * 2017-10-12 2019-04-19 拉碧斯半导体株式会社 非易失性存储器的数据改写方法以及半导体装置
JP2019074797A (ja) * 2017-10-12 2019-05-16 ラピスセミコンダクタ株式会社 不揮発性メモリのデータ書換方法及び半導体装置
JP7153435B2 (ja) 2017-10-12 2022-10-14 ラピスセミコンダクタ株式会社 不揮発性メモリのデータ書換方法及び半導体装置
CN109656835B (zh) * 2017-10-12 2023-07-18 拉碧斯半导体株式会社 非易失性存储器的数据改写方法以及半导体装置

Also Published As

Publication number Publication date
KR20040101222A (ko) 2004-12-02
US6839826B2 (en) 2005-01-04
AU2003210853A1 (en) 2003-09-02
CN1628289A (zh) 2005-06-15
EP1472605A1 (en) 2004-11-03
CN1300706C (zh) 2007-02-14
WO2003067437A1 (en) 2003-08-14
US20050120266A1 (en) 2005-06-02
EP1472605A4 (en) 2007-05-30
US7549012B2 (en) 2009-06-16
US20030149856A1 (en) 2003-08-07

Similar Documents

Publication Publication Date Title
JP2005517260A (ja) セクタポインタを用いるメモリ・マッピング・デバイス
KR100663738B1 (ko) 동시 다중 데이터 섹터 프로그래밍 및 다른 지정 블럭들에대한 물리적 블럭 특성들의 저장기능을 갖는 플래시이이피롬 시스템
US7663950B2 (en) Method for column redundancy using data latches in solid-state memories
US8363495B2 (en) Non-volatile memory with redundancy data buffered in remote buffer circuits
US7092289B1 (en) Efficient redundancy system for flash memories with uniformly sized blocks
US7680977B2 (en) Page and block management algorithm for NAND flash
US7818492B2 (en) Source and shadow wear-leveling method and apparatus
JP5130646B2 (ja) 記憶装置
US7224605B1 (en) Non-volatile memory with redundancy data buffered in data latches for defective locations
JP5617079B2 (ja) 不揮発性メモリおよび制御データ管理を伴う方法
US7379330B2 (en) Retargetable memory cell redundancy methods
US7039775B2 (en) Non-volatile storage device and rewrite control method thereof
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US7352635B2 (en) Method for remote redundancy for non-volatile memory
US20040022249A1 (en) Semiconductor memory device having faulty cells
US7328301B2 (en) Dynamically mapping block-alterable memories
KR20090008214A (ko) 용장 데이터가 원격 버퍼 회로들에 버퍼되는 비휘발성 메모리 및 방법
KR100490603B1 (ko) 플래시 메모리 동작 제어 방법 및 장치
KR20080112278A (ko) 결함 위치들에 대한 데이터 래치들에 용장 데이터가 버퍼되는 비휘발성 메모리 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090825