(57)【特許請求の範囲】
【請求項１】
不揮発性記憶システムを動作させる方法であって、
ページデータの記録ユニット（ＲＵ４、ＲＵ５）に伝えられる第１の論理ページのデータ（Ｍ２、Ｕ１）をホスト（１５５）から受信するステップと、
受信した前記第１の論理ページのデータをバッファ（６１６）でバッファするステップと、
前記第１の論理ページのデータを前記バッファからメモリアレイ（１０５、６２２）に転送するステップと、
前記第１の論理ページのデータを受信してバッファした後に、ページデータの記録ユニットに伝えられる第２の論理ページのデータ（Ｌ３、Ｍ３）を前記ホストから受信し、前記第２の論理ページのデータを前記バッファでバッファするステップと、
前記バッファから転送される前記第１の論理ページのデータを用いて前記メモリアレイをプログラムするステップであって、受信した前記第２の論理ページのデータを前記バッファでバッファすることに平行して、前記バッファから転送される前記第１の論理ページのデータを用いて前記メモリアレイをプログラムするステップと、
前記第２の論理ページのデータを前記バッファから前記メモリアレイに転送するステップと、
前記バッファから転送される前記第２の論理ページのデータを用いて前記メモリアレイをプログラムするステップ、
を備えており、
前記第１の論理ページのデータは、前記第２の論理ページのデータよりもプログラムするのに長い時間を要し、
前記メモリアレイは、下位、中位、および上位ページのデータを記憶し、
以下の何れか、すなわち、
（ａ）前記第１の論理ページのデータは前記中位ページのデータ（Ｍ２）であり、前記第２の論理ページのデータは前記下位ページのデータ（Ｌ３）であること、または
（ｂ）前記第１の論理ページのデータは前記上位ページのデータ（Ｕ１）であり、前記第２の論理ページのデータは前記中位ページのデータ（Ｍ３）であること、
を特徴とする方法。
【請求項２】
前記第１および第２の論理ページのデータを伝えるページデータの前記記録ユニットを含むページデータの複数の連続する記録ユニットが、一度に１記録ユニットずつ受信され、
ページデータの各記録ユニットが、最高プログラミング時間を最初に、それらに必要なプログラミング時間に基づく順序で配列された論理ページのデータを含む、
請求項１に記載の方法。
【請求項３】
ページデータの各記録ユニットは、ページデータの次の記録ユニットが前記ホストから受信される前にプログラミングを完了する請求項２に記載の方法。
【請求項４】
前記メモリアレイは、連続するワード線ＷＬｘ、ＷＬｘ＋１、ＷＬｘ＋２、および、ＷＬｘ＋３の記憶素子を備え、
前記第１の論理ページのデータは、ＷＬｘ＋２に対して中位ページデータであり、前記第２の論理ページのデータは、ＷＬｘ＋３に対して下位ページデータであり、
前記ページデータの記録ユニットのプログラミングの完了に応じて、ページデータの次の記録ユニットを前記ホストから受信するステップをさらに備え、
前記ページデータの次の記録ユニットは、ＷＬｘに対する上位ページデータとこれに続くＷＬｘ＋３に対する中位ページデータを備える、
請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記第１の論理ページのデータは、複数の連続するセグメントで受信され、
前記第１の論理ページのデータは、前記バッファから前記メモリアレイに複数組のセグメントで異なるタイミングで転送され、
前記第１の論理ページのデータを用いた前記メモリアレイのプログラミングは、前記第１の論理ページのセグメントのすべてが前記バッファから前記メモリアレイに転送されるまで開始されず、
前記第２の論理ページのデータは、複数の連続するセグメントで受信され、
前記第２の論理ページのデータは、前記バッファから前記メモリアレイに、前記第２の論理ページのデータの複数組のセグメントで異なるタイミングで転送され、
前記第２の論理ページのデータを用いた前記メモリアレイのプログラミングは、前記第２の論理ページのセグメントのすべてが前記バッファから前記メモリアレイに転送されるまで開始しない、
請求項１〜４のいずれか１項に記載の方法。
【請求項６】
メモリアレイ（１０５、６２２）と、
前記メモリアレイと通信する１つまたは複数の制御回路（１１０、１５０、６１４）と、
前記１つまたは複数の制御回路に関連するバッファ（６１６）と、
を備える不揮発性記憶システムであって、
前記１つまたは複数の制御回路は、
ページデータの記録ユニット（ＲＵ４、ＲＵ５）に伝えられる第１の論理ページのデータ（Ｍ２、Ｕ１）をホスト（１５５）から受信し、
受信した前記第１の論理ページのデータをバッファでバッファし、
前記第１の論理ページのデータを前記バッファから前記メモリアレイに転送し、
前記第１の論路ページのデータを受け取ってバッファした後に、ページデータの記録ユニットで伝えられる第２の論理ページのデータ（Ｌ３、Ｍ３）を前記ホストから受信し、前記第２の論理データページを前記バッファでバッファし、
前記バッファから転送される前記第１の論理ページのデータを用いて前記メモリアレイをプログラムし、ここで、プログラミングを、受信した前記第２の論理ページのデータを前記バッファでバッファすることと平行して行い、
前記第２の論理ページのデータを前記バッファから前記メモリアレイに転送し、
前記バッファから転送される前記第２の論理ページのデータを用いて前記メモリアレイをプログラムし、ここで、前記第１の論理ページのデータは、前記第２の論理ページのデータよりもプログラムするのに長い時間を要し、
前記メモリアレイは、下位、中位、および上位ページのデータを記憶し、
以下の何れか、すなわち、
（ａ）前記第１の論理ページのデータは前記中位ページのデータ（Ｍ２）であり、前記第２の論理ページのデータは前記下位ページのデータ（Ｌ３）であること、または
（ｂ）前記第１の論理ページのデータは前記上位ページのデータ（Ｕ１）であり、前記第２の論理ページのデータは前記中位ページのデータ（Ｍ３）であること、
を特徴とする不揮発性記憶システム。
【請求項７】
前記ページデータの記録ユニットが、ページデータの複数の連続する記録ユニットで一度に１記録ユニットずつ受信され、
ページデータの各記録ユニットが、最高プログラミング時間を最初に、それらに必要なプログラミング時間に基づく順序で配列された論理ページのデータを含む、
請求項６に記載の不揮発性記憶システム。
【請求項８】
ページデータの各記録ユニットは、ページデータの次の記録ユニットが前記ホストから受信される前にプログラミングを完了する請求項６または７に記載の不揮発性記憶システム。
【請求項９】
前記メモリアレイ、前記１つまたは複数の制御回路、および、前記バッファが、メモリカード（１９６）内に提供され、
前記ホスト（１５５）は、前記メモリカードの外部にある、
請求項６〜８のいずれか１項に記載の不揮発性記憶システム。
【請求項１０】
前記メモリアレイは、連続するワード線ＷＬｘ、ＷＬｘ＋１、ＷＬｘ＋２、および、ＷＬｘ＋３の記憶素子を備え、
前記第１の論理ページのデータは、ＷＬｘ＋２に対して中位ページデータであり、前記第２の論理ページのデータは、ＷＬｘ＋３に対して下位ページデータであり、
前記ページデータの記録ユニットのプログラミングの完了に応じて、ページデータの次の記録ユニットを前記ホストから受信するステップをさらに備え、
前記ページデータの次の記録ユニットは、ＷＬｘに対する上位ページデータとこれに続くＷＬｘ＋３に対する中位ページデータを備える、
請求項６に記載の不揮発性記憶システム。
【請求項１１】
前記第１の論理ページのデータは、複数の連続するセグメントで受信され、
前記第１の論理ページのデータは、前記バッファから前記メモリアレイに複数組のセグメントで異なるタイミングで転送され、
前記第１の論理ページのデータを用いた前記メモリアレイのプログラミングは、前記第１の論理ページのセグメントのすべてが前記バッファから前記メモリアレイに転送されるまで開始されず、
前記第２の論理ページのデータは、複数の連続するセグメントで受信され、
前記第２の論理ページのデータは、前記バッファから前記メモリアレイに、前記第２の論理ページのデータの複数組のセグメントで異なるタイミングで転送され、
前記第２の論理ページのデータを用いた前記メモリアレイのプログラミングは、前記第２の論理ページのセグメントのすべてが前記バッファから前記メモリアレイに転送されるまで開始しない、
請求項６に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、データ記憶に関する技術を説明する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスで次第に広く使用されるようになっている。たとえば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、携帯情報端末、モバイル・コンピューティング・デバイス、非モバイル・コンピューティング・デバイスなどのデバイスで使用される。電気的に消去可能なＰＲＯＭ（ＥＥＰＲＯＭ）およびＮＡＮＤメモリなどのフラッシュメモリは、不揮発性半導体メモリの中で最もよく使用されるものである。
【０００３】
メモリデバイスは、ホスト携帯電話、デジタルカメラ、その他のデバイスなど、ホスト／ユーザーデバイスに挿入あるいは接続され得るカードやその他の構成要素の形をとり得る。取り外し可能なメディアフォーマットのメモリデバイスの例は、ＣＯＭＰＡＣＴＦＬＡＳＨ、ＳＭＡＲＴＭＥＤＩＡ、ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬ、ＭＥＭＯＲＹ  ＳＴＩＣＫ、およびＸＤ−ＰＩＣＴＵＲＥ  ＣＡＲＤを含む様々な商標名で販売されている。小形の因子の新世代のメモリカード形式は、ＲＳ−ＭＭＣ、ＭＩＮＩＳＤ  ＡＮＤ  ＭＩＣＲＯＳＤ、およびＩＮＴＥＬＬＩＧＥＮＴ  ＳＴＩＣＫを含む商標名で販売されている。ほかの事例として、メモリデバイスは、ホストデバイスに恒久的に組み込まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
書込み性能は、常にこのようなメモリデバイスに対する関心である。たとえば、業界標準化団体であるＳＤアソシエーションは、２、４、および６ＭＢ／ｓｅｃの最小ホスト−メモリデバイス転送速度を有する速度クラスを規定している。性能目標を満たしこれを超えるためには、メモリデバイスの書込み性能を向上させる技術が求められる。
【課題を解決するための手段】
【０００５】
上記および他の課題は、書込み性能を向上させる方法および不揮発性記憶システムを提供することによって解決される。
【図面の簡単な説明】
【０００６】
【図１】単一の行／列デコーダおよび読出し／書込み回路を用いた不揮発性メモリシステムのブロック図である。
【０００７】
【図２ａ】不揮発性記憶システムにおけるプレーンおよびブロックと、ダイページの一例とを示す。
【０００８】
【図２ｂ】不揮発性記憶システムにおけるプレーンおよびブロックと、ダイページの別の例とを示す。
【０００９】
【図３】メモリアレイの例を示す。
【００１０】
【図４】図４（ａ）〜図４（ｃ）は、２ビット、４レベル記憶素子の下位および上位ページのプログラミングを示す。
【００１１】
【図５】図５（ａ）〜図５（ｄ）は、３ビット、８レベル記憶素子の下位、中位、および上位ページのプログラミングを示す。
【００１２】
【図６ａ】不揮発性記憶システムの例を示す。
【００１３】
【図６ｂ】不揮発性記憶システムのユーザー領域におけるアロケーションユニットの例を示す。
【００１４】
【図７ａ】ページ伝送およびプログラミング順序の例を示す。
【００１５】
【図７ｂ】図７ａの伝送およびプログラミング順序に基づく種々のワード線のプログラミングを示す。
【００１６】
【図７ｃ】書込み時間を短縮するページ伝送およびプログラミング順序の別の例を示す。
【００１７】
【図７ｄ】図７ｃの伝送およびプログラミング順序に基づく種々のワード線のプログラミングを示す。
【００１８】
【図８ａ】プログラミングプロセスの概要を示す。
【００１９】
【図８ｂ】ホストによって実施されるプログラミングプロセスの詳細を示す。
【００２０】
【図９】メモリデバイスによって実施されるプログラミングプロセスの詳細を示す。
【発明を実施するための形態】
【００２１】
書込み性能を向上させる方法および不揮発性記憶システムを提供する。
【００２２】
ホストからメモリデバイスにプログラムすべきデータを転送する際に、論理ページのデータを特定の順序で送信することによって、プログラミング時間が短縮され得る。特に、マルチレベル・メモリ・デバイスでは、２ビット、３ビット、またはそれ以上のビットが、論理ページのデータに従って各記憶素子に記憶される。データは、２ページまたはそれ以上の論理ページ単位で転送可能であり、プログラムするのにより長い時間を要する論理ページは、プログラムするのにさほど時間がかからない論理ページの前に提供される。たとえば、中位ページは下位ページよりもプログラムするのに長い時間を要し、上位ページは中位ページよりもプログラムするのに長い時間を要する。所与のワード線では、論理ページは、２つのページがあるものと仮定すれば下位ページ、上位ページの順番にプログラムされ、３つのページがあるものと仮定すれば下位ページ、中位ページ、上位ページの順番にプログラムされる。しかしながら、別のワード線をプログラムする前にすべての論理ページで１つのワード線を全体にプログラムする必要はない。すなわち、所与のワード線が１ページのデータでプログラムされ、その後、その所与のワード線に戻って別のページのデータでプログラミングが継続する前に、１つまたは複数の他のワード線がプログラムされる、バック・アンド・フォース・プログラミング法（ｂａｃｋ  ａｎｄ  ｆｏｒｔｈ  ｐｒｏｇｒａｍｍｉｎｇ  ｔｅｃｈｎｉｑｕｅ）が採用されてもよい。より高度な並列処理が行われるので、全プログラミング時間が短縮される。
【００２３】
図１は、採用される可能性のある不揮発性記憶システムの１つの可能な例を表す。特に、図１は、単一の行／列デコーダおよび読出し／書込み回路を用いた不揮発性メモリシステムのブロック図である。不揮発性メモリシステムは、取り外し可能な記憶カードなどのメモリデバイス１９６、および、ホスト１５５を含んでいてもよい。メモリデバイス１９６は、記憶素子のページを並列に読み取り、プログラムする読出し／書込み回路を有し、１つまたは複数のメモリダイ１９８を含んでいてもよい。メモリダイ１９８は、記憶素子の二次元アレイ１０５、制御回路１１０、および、読出し／書込み回路１６５を含む。一部の実施形態では、記憶素子のアレイは三次元であり得る。たとえば、セキュアデジタル（ＳＤ）メモリカードなどのデバイスは、複数の積層チップを有し得る。
【００２４】
メモリアレイ１０５は、行デコーダ１３０を介してワード線によって、また列デコーダ１６０を介してビット線によって、アドレス指定可能である。読出し／書込み回路１６５は、複数のセンスブロック１０２を含み、記憶素子のページを並列に読み出したり、プログラムしたりすることができる。典型的には、制御モジュール１５０は、１つまたは複数のメモリダイ１９８と同じメモリデバイス１９６に含まれる。コマンドおよびデータは、線１２０を介してホスト１５５と制御モジュール１５０との間で、また線１１８を介して制御モジュール１５０と１つまたは複数のメモリダイ１９８との間で転送される。
【００２５】
制御回路１１０は、メモリアレイ１０５上でメモリ動作を実施するために読出し／書込み回路１６５と協働する。制御回路１１０は、状態機械１１２、オンチップ・アドレス・デコーダ１１４、およびパワー制御モジュール１１６を含む。状態機械１１２は、メモリ動作のチップレベル制御を提供する。オンチップ・アドレス・デコーダ１１４は、ホストまたはメモリコントローラによって使用されるアドレスとデコーダ１３０および１６０によって使用されるハードウェアアドレスとの間のアドレスインターフェースを提供する。パワー制御モジュール１１６は、メモリ動作中にワード線とビット線に供給される電力および電圧を制御する。
【００２６】
一部の実施例では、図１の構成要素の一部は結合され得る。様々な設計では、記憶素子アレイ１０５以外の構成要素の１つまたは複数（単独または組合せ）は、管理または制御回路として考えられ得る。たとえば、１つまたは複数の管理または制御回路は、制御回路１１０、状態機械１１２、デコーダ１１４／１６０、パワー制御１１６、センスブロック１０２、読出し／書込み回路１６５、制御モジュール１５０などのいずれか１つまたは組合せを含んでいてもよい。
【００２７】
別の実施形態において、不揮発性メモリシステムに、２つの行／列デコーダおよび読出し／書込み回路が使用される。様々な周辺回路によるメモリアレイ１０５へのアクセスは、アレイの反対側で対称的に実施され、したがって、アクセス線の密度および各側の回路は半減される。それゆえ、行デコーダは２つの行デコーダに分割され、列デコーダは２つの列デコーダに分割される。同様に、読出し／書込み回路は、最下部からビット線に接続する読出し／書込み回路と、アレイ１０５の最上部からビット線に接続する読出し／書込み回路とに分割される。このようにして、読出し／書込みモジュールの密度は半減される。
【００２８】
図２ａは、不揮発性記憶システムにおけるプレーンおよびブロックを示す。メモリ・デバイス・チップは、１つの可能な実施例では、典型的に、プレーンおよびブロックに配列された記憶素子の多くのアレイを含む。記憶素子は階層構造に配列されているものと考えられ、チップレベルは最高レベルおよびプレーン、ブロックを表し、かつ／またはページレベルは連続する下位レベルを表す。チップはメモリモジュールを含んでいてもよく、プレーンは複数のブロックを含んでいてもよく、ブロックは１組のワード線と通信する１組の不揮発性記憶素子を含んでいてもよく、ページは１つの可能なアプローチにおいて、所与のワード線に関連する不揮発性記憶素子を含んでいてもよい。例として、プレーン２１０はブロック２１２、２１４、．．．２１６を含み、プレーン２２０はブロック２２２、２２４、．．．２２６を含む。
【００２９】
さらに、記憶素子にデータをプログラムする際に、データは、各プレーンに１ブロックずつ、両プレーンにわたって並列にプログラムされ得る。このプロセスでは、単一のダイページが一度にプログラムされ得る。ダイページは、たとえば、種々のプレーンに２ブロックの各ワード線を含む。たとえば、ダイページ２３０は、ブロック２１２におけるｎ番目のワード線ＷＬｎの記憶素子と、ブロック２２２におけるＷＬｎの記憶素子とを含んでいてもよい。それゆえ、記憶素子は、それぞれのプレーン内の対応する位置にある、ブロック内の同じ番号のワード線上にある。たとえば、ブロック２１２および２２２は、それぞれ、プレーン２１０および２２０内の第１のブロックである。それゆえ、ブロック２１２のＷＬｎとブロック２２２のＷＬｎのプログラミングは、並列に行われ得る。
【００３０】
図２ｂに示す別の可能なアプローチでは、ダイページの記憶素子は、それぞれのプレーン内の異なる位置にあるブロック内の同じ番号のワード線上にある。図２ｂは、不揮発性記憶システム内のプレーンおよびブロックと、ダイページの別の例とを示す。たとえば、ダイページ２４０は、プレーン２１０の第１のブロックであるブロック２１２のＷＬｎ上の記憶素子と、プレーン２２４の第２のブロックであるブロック２２４のＷＬｎ上の記憶素子とを含み得る。それゆえ、ブロック２１２のＷＬｎとブロック２２４のＷＬｎとのプログラミングは、並列に行われ得る。さらに、以下でさらに議論するように、ダイページの記憶素子は、データの１つまたは複数の論理ページを記憶し得る。それゆえ、論理ページは、２つまたはそれ以上のプレーンにおける２つまたはそれ以上のブロックにわたって広がり得る。
【００３１】
図３は、メモリアレイの例を示す。一例では、ＮＡＮＤフラッシュＥＥＰＲＯＭは、１，０２４ブロックに分割され得る。各ブロックに記憶されたデータは、同時に消去され得る。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。各ブロックにおいて、この例では、ビット線ＢＬ０、ＢＬ１、．．．ＢＬ８５１１に対応する８，５１２の列がある。すべてのビット線（ＡＢＬ）アーキテクチャと称される一実施形態では、ブロックのすべてのビット線が、読出しおよびプログラム動作中に同時に選択され得る。共通ワード線に沿って任意のビット線に接続される記憶素子は、同時にプログラムされ得る。
【００３２】
多数の（この例では６４個の）記憶素子は、直列に接続されてＮＡＮＤストリングを形成する。ＮＡＮＤストリングの１つの端子は、ドレイン選択ゲート（選択ゲートドレイン線ＳＧＤに接続された）を介して対応するビット線に接続され、別の端子は、ソース選択ゲート（選択ゲートソース線ＳＧＳに接続された）を介してｃ−ソースに接続される。
【００３３】
奇数−偶数アーキテクチャと称する別の実施形態では、ビット線は偶数ビット線と奇数ビット線に分割され、共通のワード線に沿って奇数ビット線に接続された記憶素子は一度にプログラムされるが、共通のワード線に沿って偶数ビット線に接続された記憶素子は別の時にプログラムされる。
【００３４】
図４（ａ）〜（ｃ）は、２ビット、４レベル記憶素子の下位および上位ページのプログラミングを示す。各グラフは、横軸に、閾値電圧ＶＴＨを示し、縦軸に、閾値電圧分布内の記憶素子の数を示す。この場合、各記憶素子は、状態Ｅ、Ａ、Ｂ、およびＣと称される４つの可能な閾値電圧範囲の１つに２ビットのデータを記憶し得る。さらに、ビットは、下位ページのデータと上位データページに分類される。それゆえ、各記憶素子の第１のビットは下位ページのデータを形成し、各記憶素子の第２のビットは上位ページのデータを形成する。
【００３５】
プログラミングは、下位ページに続いて上位ページが一度に１つの論理ページずつ実施され得る。最初は、すべての記憶素子が、図４（ａ）で分布４００によって表される消去（Ｅ）状態にある。図４（ｂ）は、下位ページのデータのプログラミングを示す。下位ページがビット＝１を有する場合、関連する記憶素子は分布４００を維持し、データはｘ１によって表される（ここで、ｘは未知のビットである）。下位ページがビット＝０を有する場合、記憶素子は分布４０２によって表されるより高いＶＴＨにプログラムされる。分布４０２は検証レベルＶｖ１を用いた第１の中間分布である。これらの記憶素子のデータは、ｘ０によって表される。なお、中間分布は、最終分布でなく最終データ状態を表さないので、比較的広くなり得る。
【００３６】
図４（ｃ）は、上位ページのデータのプログラミングを示す。上位ページがビット＝１を有する場合、分布４００の関連記憶素子は分布４００を維持してデータビット１１を記憶し、分布４０２の関連記憶素子はＣ状態である分布４０８にプログラムされてデータビット１０を記憶する。このプログラミングでは検証レベルＶｖｃが使用される。上位ページがビット＝０を有する場合、分布４００の関連記憶素子はＡ状態である分布４０４にプログラムされてデータビット０１を記憶する。このプログラミングでは検証レベルＶｖａが使用される。同様に、分布４０２の関連記憶素子はＢ状態である分布４０６にプログラムされてデータビット００を記憶する。このプログラミングでは検証レベルＶｖｂが使用される。読出し電圧Ｖｒａ、Ｖｒｂ、およびＶｒｃも示されている。
【００３７】
プログラミングは、セル当たり３ビットまたはそれ以上のビットまで同様に拡大され得る。たとえば、図５（ａ）〜（ｄ）は、３ビット、８レベル記憶素子の下位、中位、および上位ページのプログラミングを示す。最初は、すべての記憶素子が、図５（ａ）で分布５００によって表される消去（Ｅ）状態にある。下位ページは図５（ｂ）でプログラムされる。下位ページがビット＝１である場合、分布５００の記憶素子はその分布を保つ。下位ページがビット＝０である場合、分布５００の記憶素子は検証レベルＶｖ１を用いて中間分布５０２にプログラムされる。中位ページは図５（ｂ）でプログラムされる。中位ページがビット＝１である場合、分布５００の記憶素子はその分布を保ち、分布５０２の記憶素子は検証レベルＶｖ４を用いて中間分布５０８にプログラムされる。中位ページがビット＝０である場合、分布５００の記憶素子は検証レベルＶｖ２を用いて中間分布５０４にプログラムされ、分布５０２の記憶素子は検証レベルＶｖ３を用いて中間分布５０６にプログラムされる。
【００３８】
上位ページは図５（ｃ）でプログラムされる。上位ページがビット＝１である場合、分布５００の記憶素子はその分布を保ち、分布５０４の記憶素子は検証レベルＶｖｃを用いて分布５１４（状態Ｃ）にプログラムされ、分布５０６の記憶素子は検証レベルＶｖｄを用いて分布５１６（状態Ｄ）にプログラムされ、分布５０８の記憶素子は検証レベルＶｖｇを用いて分布５２２（状態Ｇ）にプログラムされる。上位ページがビット＝０である場合、分布５００の記憶素子は検証レベルＶｖａを用いて分布５１０（状態Ａ）にプログラムされ、分布５０４の記憶素子は検証レベルＶｖｂを用いて分布５１２（状態Ｂ）にプログラムされ、分布５０６の記憶素子は検証レベルＶｖｅを用いて分布５１８（状態Ｅ）にプログラムされ、分布５０８の記憶素子は検証レベルＶｖｆを用いて分布５２０（状態Ｆ）にプログラムされる。読出し電圧Ｖｒａ、Ｖｒｂ、Ｖｒｃ、Ｖｒｄ、Ｖｒｅ、Ｖｒｆ、およびＶｒｇも示されている。
【００３９】
セル当たり４ビット（１６レベル）を用いたプログラミングは、同様に、下位、中下位、中上位、および上位ページを含み得る。
【００４０】
図６ａは、不揮発性記憶システムの例を示す。不揮発性記憶システムは、ホスト１５５と通信する図１のメモリデバイス１９６を含み得る。メモリデバイスは、取り外し可能なカードであってもよいし、あるいは、携帯電話またはデジタルカメラなどの電子デバイスに組み込まれていてもよい。メモリデバイス１９６は、ホスト、制御モジュール１５０、およびメモリモジュール６１８へのインターフェース６０８を含む。制御モジュール１５０は、バス６１２と、バッファ６１６を有するコントローラ６１４とを含んでいてもよい。メモリモジュール６１８は、バス６２０と、不揮発性記憶素子のメモリアレイ６２２を含んでいてもよい。
【００４１】
データ書込み動作とも称されるプログラミング動作中に、ホストは、インターフェース６０８を介してメモリデバイス１９６にページのデータをデータ単位で伝送する。標準化のために、記録ユニットと称されるデータユニットが指定されてもよい。たとえば、記録ユニット（ＲＵ）６０２は、ページ６０４および６０６を含んでいてもよい。たとえば、セキュアデジタル（ＳＤ）仕様では、スピードクラス２および４に対する記録ユニット（ＲＵ）サイズが最近、１６ＫＢから３２ＫＢに増加された。１６ＫＢダイページ・サイズを有するメモリの場合、これによって、パイプラインデータ転送が可能になってＮＡＮＤに書込みが行われる。特に、書込み動作は、適切なページのプログラミング順序を用いて最適化され得る。書込み動作中に、ページは、インターフェース６０８およびバス６１２を介してホストからバッファ６１６に複数のセグメントで転送される。バッファ６１６が一杯になるか、一定量のセグメントが受け取られると、コントローラ６１４は、セグメントを、バス６２０を介してメモリモジュール６１８に転送し、さらにメモリアレイ６２２に転送する。全ページのデータがメモリモジュール６１８によって受け取られると、これがメモリアレイ６２２に書き込まれる。
【００４２】
図６ｂは、不揮発性記憶システムのユーザー領域におけるアロケーションユニットの例を示す。ＳＤ仕様では、オーディオおよびビデオデータなどのユーザーデータを記憶するために使用できるメモリデバイスのユーザー領域は、アロケーションユニット（ＡＵ）（たとえば、ＡＵ１、ＡＵ２、ＡＵ３、ＡＵ４、．．．ＡＵｎ）と呼ばれるｎ個のユニットに分割される。各メモリカードは、それ自体の固定ＡＵサイズ（ＳＡＵ）を有し、最大ＡＵサイズはカードの容量に応じて規定される。ＡＵ＿ＳＩＺＥはＡＵサイズを示す４ビットフィールドであり、ＡＵサイズは、たとえば、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、２５６ＫＢ、５１２ＫＢ、１ＭＢ、２ＭＢ、または４ＭＢなど、２の累乗で選択され得る。最大ＡＵサイズはカード容量に依存する。最大ＡＵサイズは、１６〜６４ＭＢのカード容量に対して５１２ＫＢであり、１２８〜２５６ＭＢのカード容量に対して１ＭＢであり、５１２ＭＢのカード容量に対して２ＭＢであり、１〜３２ＧＢのカード容量に対して４ＭＢである。
【００４３】
さらに、各ＡＵは、ＲＵ１、ＲＵ２、ＲＵ３、．．．ＲＵｎなどのようにｍ個の記録ユニット（ＲＵ）に分割される。ＲＵサイズ（ＳＲＵ）は、ＳＤファイルシステム仕様で指定された１つまたは複数のクラスタサイズであるべきである。ＡＵ（ＮＲＵ）におけるＲＵの数は、ｍ＝ＮＲＵ＝ＳＡＵ／ＳＲＵから計算される。
【００４４】
ホストは、ＡＵのユニットを有するデータ領域を管理すべきである。ＡＵ１からの複数のＡＵは、それらがシステム情報を含んでいてもよいので、それらは実時間記録に使用されるべきでない。ＡＶアプリケーションは、ユーザーデータのみが記録される第１の完全なＡＵから記録を開始すべきである。
【００４５】
図７ａは、ページ伝送およびプログラミング順序の例を示す。前述のように、ホストは、ページのデータを記録ユニット（ＲＵ）のユニット内のメモリデバイスに伝送する。シーケンス７００は、ＲＵおよび論理ページの順序を示しており、Ｌはデータの下位ページを示し、Ｍはデータの中位ページを示し、Ｕはデータの上位ページを示す。Ｌ、Ｍ、またはＵに続く数字は、ダイページ番号を示す。たとえば、Ｌ０はダイページ０の下位ページを示す。１つの可能な実施例では、３２ＫＢのＲＵサイズが採用される。これによって、ダイページにわたって広がる論理ページ当たり１６ＫＢ（ブロックにおけるワード線当たり論理ページ当たり８ＫＢ、ダイページ当たり２ワード線、全部で１６ＫＢ）と仮定すると、２つの論理ダイページのデータが伝えられ得る。この例では、３つの論理ページを含む完全なダイページに、４８ＫＢが使用される。
【００４６】
シーケンス７００の開始時に、ＲＵ１は、シーケンスＬ０、Ｍ０（ダイページ０の下位ページとこれに続くダイページ０の中位ページ）を含む。ＲＵ２は、シーケンスＬ１、Ｍ１（ダイページ１の下位ページとこれに続くダイページ１の中位ページ）を含む。ＲＵ３は、シーケンスＵ０、Ｌ２（ダイページ０の上位ページとこれに続くダイページ２の下位ページ）を含む。ＲＵ４は、シーケンスＭ２、Ｕ１（ダイページ２の中位ページとこれに続くダイページ１の上位ページ）を含む。ＲＵ５は、シーケンスＬ３、Ｍ３（ダイページ３の下位ページとこれに続くダイページ３の中位ページ）を含む。ＲＵ６は、シーケンスＵ２、Ｌ４（ダイページ２の上位ページとこれに続くダイページ４の下位ページ）を含む。ＲＵ７は、シーケンスＭ４、Ｕ３（ダイページ４の中位ページとこれに続くダイページ３の上位ページ）を含む。最後のＲＵ、ＲＵ８は、１５論理ページのこの例では１ページのみ、すなわちＵ４（ダイページ４の上位ページ）を含む。一般に、シーケンスは、すべての所望のデータがホストからメモリデバイスに転送されるまで続く。Ｕ、Ｌ、Ｍの繰返しパターンは、Ｕ０で始まって確立される。
【００４７】
さらに詳細には、各論理ページのデータは、ホストからメモリデバイスに連続するセグメントで伝送されてもよい。１つの可能なアプローチでは、１６ＫＢの論理ページは、８つの２ＫＢセグメントで転送される。たとえば、シーケンス７１０で示すように、論理ページＬ３は期間ｔ１〜ｔ９に８セグメントで転送され、論理ページＭ３は期間ｔ９〜ｔ１７に８セグメントで転送される。Ｌ３の最初の４セグメントはｔ１〜ｔ５の間に転送される。ｔ５において、コントローラのバッファ６１６は一杯になるか、あるいは、受け取られているセグメントの量を閾値レベルと比較することによってメモリモジュールへの転送が別途トリガーされる。この転送（「フラッシュｘｆｅｒ」）は、ｔ５とｔ５ａとして示されるある時期との間に行われる。この転送は、メモリデバイスの内部において、ホストからメモリデバイスへの転送に比べて比較的速く行われ得る。しかしながら、メモリアレイへのプログラミングは、論理ページ全体がまだ受け取られていないので、まだ行われない。
【００４８】
Ｌ３の次の４セグメントは、ｔ５〜ｔ９の間に転送される。ｔ９とｔ９ａの間では、これら４セグメントは、バッファ６１６からメモリモジュールに転送される。それゆえ、ｔ９ａにおいて、全論理ページのデータをメモリモジュールに利用可能となり、プログラミングが開始する。一般に、中位ページは記憶素子が下位ページよりも高い閾値電圧に達することを必要とし、かつより多くの検証レベルがあるので、データの中位ページは、プログラムするのに下位ページよりも多くの時間を要する。同様に、上位ページは記憶素子が中位ページよりも高い閾値電圧に達することを必要とし、かつより多くの検証レベルがあるので、データの上位ページは、プログラムするのに中位ページよりも多くの時間を要する。
【００４９】
この例では、Ｌ３は、ｔ９ａとｔ１１ａの間でメモリアレイにプログラムされる。たとえば、Ｍ３の第２および第３のセグメント中に、Ｌ３のプログラミングが完了し、フラッシュメモリがアイドル状態になりＭ３の残りの転送が完了するのを待つ。さらに、Ｌ３がプログラムされている間、および、Ｌ３のプログラミングが終了した後に、Ｍ３からの追加のセグメントがメモリデバイスによってホストデバイスから受け取られる。特に、シーケンス７００における次のページであるＭ３からのセグメントは、Ｌ３のプログラミングに伴って受け取られる。Ｍ３の最初の４セグメントがホストからバッファ６１６に転送されると、ｔ１３において、これらのセグメントは、バッファ６１６からメモリモジュールに転送される。この転送はｔ１３とｔ１３ａの間に行われる。Ｍ３の次の４セグメントがホストからバッファ６１６に転送されると、ｔ１７において、ｔ１７とｔ１７ａの間にこれらのセグメントはバッファ６１６からメモリモジュールに転送される。Ｍ３は、ｔ１７ａとｔ２３ａの間にメモリアレイにプログラムされる。
【００５０】
中位ページＭ３のプログラミング時間は、下位ページＬ３のプログラミング時間よりも実質的に長い。Ｍ３がプログラムされている間に、現在のＲＵであるＲＵ５が無事に受け取られてメモリアレイに書き込まれていることを示す確認をメモリデバイスから受け取るまで、ホストは次のＲＵを送信するのを待つ。その結果、中位ページのプログラミング時間に起因して著しい遅延が生じる。ｔ２３ａにおいて、ＲＵ５が無事にプログラムされている確認をホストが受け取ると、ホストは、次のページとＲＵ、すなわち、ＲＵ６のＵ２の転送を開始する。Ｕ２の第１のセグメントがｔ２０において受け取られる。Ｕ２の残りのセグメントは示されていない。
【００５１】
図７ｂは、図７ａの伝送およびプログラミング順序に基づく種々のワード線のプログラミングを示す。一般に、所与のワード線に対して、２つのページがある場合には下位ページ、上位ページの順番で論理ページがプログラムされ、３つのページがある場合には下位ページ、中位ページ、上位ページの順番で論理ページがプログラムされる。しかしながら、別のワード線をプログラムする前にすべての論理ページを１つのワード線で全体にプログラムする必要はない。すなわち、所与のワード線がデータの１ページでプログラムされるその後、１つまたは複数の他のワード線が、所与のワード線に戻って別のページデータでプログラミングが継続する前にプログラムされるバック・アンド・フォース・プログラミング法が採用されてもよい。
【００５２】
ここで、ブロックのソース側からドレイン側へのワード線の例は、ＷＬｘ、ＷＬｘ＋１、ＷＬｘ＋２、ＷＬｘ＋３、およびＷＬｘ＋４を含む。論理ページはシーケンス７００に示したものと同じであるが、これらの論理ページは、時系列に基づいて、これらがプログラムされるワード線、および、プログラミング順序を示すように配列されている。矢印は、プログラミング順序とワード線間の遷移を示す。たとえば、Ｌ０およびＭ０がＷＬｘでプログラムされ、その後、Ｌ１およびＭ１がＷＬｘ＋１でプログラムされ、その後、Ｕ０がＷＬｘでプログラムされ、その後、Ｌ２およびＭ２がＷＬｘ＋２でプログラムされ、その後、Ｕ１がＷＬｘ＋１でプログラムされ、その後、Ｌ３およびＭ３がＷＬｘ＋３でプログラムされ、その後、Ｕ２がＷＬｘ＋２でプログラムされ、その後、Ｌ４およびＭ４がＷＬｘ＋４でプログラムされ、その後、Ｕ３がＷＬｘ＋３でプログラムされ、最後に、Ｕ４がＷＬｘ＋４でプログラムされる。
【００５３】
図に見られるように、図７ａの実施例では、データがホストからメモリデバイスに３２ＫＢチャンクで書き込まれ、ページは各ＲＵにペアで書き込まれる。このシーケンスは、Ｌ−Ｍ−Ｌ−Ｍ−Ｕ−Ｌ−Ｍ−Ｕ−Ｌ−Ｍ−Ｕ−Ｌ−Ｍ−Ｕ−Ｕと書かれ得る。しかしながら、ＲＵにおけるより速いページ（Ｌ）のプログラミングが最初に行われるので、ペアＬ−Ｍ（たとえば、シーケンス７００のＬ３−Ｍ３）は最適でない。同様に、ＲＵにおけるより速いページ（Ｍ）のプログラミングが最初に行われるので、シーケンスＭ−Ｕ（たとえば、シーケンス７００のＭ２−Ｕ１）は最適でない。
【００５４】
ＲＵにおいて２つ以上のページを一緒にパイプライン化するときは、最も長い時間がかかりそうなページを最初にプログラムする方が速い。こうすると、ホストと第２のページのフラッシュバス転送時間を、遅い方の第１のページと並列に実施することができる。ホストからメモリデバイスへのページ伝送の順序は、この時間節約を実現するために修正され得る。
【００５５】
図７ｃは、書込み時間を短縮するページ伝送およびプログラミング順序の別の例を示す。前述のように、ＲＵでは、長いプログラム時間のページを最初にプログラムすることが最も効率的である。この結果を実現するシーケンスの例は、Ｌ−Ｍ−Ｌ−Ｍ−Ｕ−Ｌ−Ｍ−Ｌ−Ｕ−Ｍ−Ｕ−Ｌ−Ｍ−Ｕ−Ｕである。Ｌ−Ｍ−Ｌ−Ｍの初期シーケンスの後に、Ｕ、Ｌ、Ｍ、Ｌ、Ｕ、Ｍの繰返しパターンが確立される。この新しいページシーケンスによって、書込み性能を著しく向上させることが可能である。３２ＫＢ  ＲＵで書き込む１つの状況では、７％の改善が見られた。
【００５６】
２レベルデバイスの場合、ＲＵ０（Ｌ０〜Ｌ１）、ＲＵ１（Ｕ０〜Ｌ２）、ＲＵ２（Ｕ１〜Ｌ３）、ＲＵ３（Ｕ２〜Ｌ４）、．．．のシーケンス例が採用されてもよい。Ｕ−Ｌの繰返しパターンは、Ｌ〜Ｌの初期シーケンス後に確立される。
【００５７】
図７ｃの時間スケールは、図７ａの時間スケールに対応する。シーケンス７５０では、たとえば、ＲＵ４において、より遅い中位ページＭ２のプログラミングが、より速い下位ページＬ３のプログラミングの前に最初にプログラムされる。より遅い中位ページＭ２のプログラミングは、Ｌ３からの複数のセグメントの転送と同時に並列にプログラムされる。この場合、Ｌ３に対するホスト転送時間とＭ２に対するプログラミング時間は同程度である。それゆえ、Ｍ２のプログラミングの終了とＬ３のプログラミングの開始との間のフラッシュアイドル時間は、図７ａにおけるＬ３のプログラミングの終了とＭ３のプログラミングの開始に比べて小さい。同様に、図７ｃでは、たとえば、ＲＵ５において、より遅い上位ページＵ１のプログラミングが、より速い中位ページＭ３のプログラミングの前に最初にプログラムされる。
【００５８】
さらに詳細には、シーケンス７５０の開始時に、ＲＵ１は、シーケンスＬ０、Ｍ０（ダイページ０の下位ページとこれに続くダイページ０の中位ページ）を含む。ＲＵ２は、シーケンスＬ１、Ｍ１（ダイページ１の下位ページとこれに続くダイページ１の中位ページ）を含む。ＲＵ３は、シーケンスＵ０、Ｌ２（ダイページ０の上位ページとこれに続くダイページ２の下位ページ）を含む。ＲＵ４は、シーケンスＭ２、Ｌ３（ダイページ２の中位ページとこれに続くダイページ３の下位ページ）を含む。ＲＵ５は、シーケンスＵ１、Ｍ３（ダイページ１の上位ページとこれに続くダイページ３の中位ページ）を含む。ＲＵ６は、シーケンスＵ２、Ｌ４（ダイページ２の上位ページとこれに続くダイページ４の下位ページ）を含む。ＲＵ７は、シーケンスＭ４、Ｕ３（ダイページ４の中位ページとこれに続くダイページ３の上位ページ）を含む。最後のＲＵ、ＲＵ８は、１ページのみ、すなわち、Ｕ４（ダイページ４の上位ページ）を含む。
【００５９】
さらに、シーケンス７６０によって示すように、論理ページＭ２は期間ｔ１〜ｔ９に８セグメントで転送され、論理ページＬ３はｔ９〜ｔ１７に８セグメントで転送される。Ｍ２の最初の４セグメントは、ｔ１〜ｔ５の間に転送される。メモリモジュールへの転送はｔ５〜ｔ５ａに行われる。
【００６０】
Ｍ２の次の４セグメントは、ｔ５〜ｔ９の間で転送される。ｔ９〜ｔ９ａでは、これらのセグメントは、バッファ６１６からメモリモジュールに転送される。Ｍ２は、ｔ９ａとｔ１１ａの間でメモリアレイにプログラムされる。Ｍ２がプログラムされている間に、Ｌ３からの新たなセグメントが、Ｍ２のプログラミングと同時にメモリデバイスによってホストデバイスから受け取られる。Ｌ３の最初の４セグメントが、ｔ１３において、ホストからバッファ６１６に転送されたとき、これらのセグメントはバッファ６１６からメモリモジュールに転送される。この転送は、ｔ１３とｔ１３ａの間に行われる。Ｌ３の次の４セグメントが、ｔ１７において、ホストからバッファ６１６に転送されたとき、これらのセグメントは、ｔ１７とｔ１７ａの間に、バッファ６１６からメモリモジュールに転送される。Ｌ３は、ｔ１７ａとｔ１９ａの間にメモリアレイにプログラムされる。
【００６１】
下位ページのプログラミング時間は中位ページのプログラミング時間よりも実質的に短いので、全転送およびプログラム時間は、図７ａの場合に比べて著しく短縮される。ＲＵ４がプログラミングを終了した後に次のＲＵであるＲＵ５を受け取る際の遅延は、図７ａにおいてＲＵ５がプログラミングを終了した後でＲＵ６を受け取る際の遅延に比べて、短縮される。
【００６２】
ＲＵ４が、ｔ１９ａにおいて、無事にプログラムされている確認をホストが受け取ると、ホストは、次のページおよびＲＵ、すなわち、ＲＵ５のＵ１の転送を開始する。Ｕ１の最初の５セグメントはｔ２０〜ｔ２４に受け取られ、最初の４セグメントはｔ２４とｔ２４ａの間にバッファからメモリモジュールに転送される。Ｕ１の残りのセグメントは示されていない。
【００６３】
図７ｄは、図７ｃの伝送およびプログラム順序に基づく種々のワード線のプログラミングを示す。論理ページはシーケンス７５０に示したものと同じであるが、これらの論理ページは、時系列に基づいて、これらがプログラムされるワード線、および、プログラミング順序を示すように配列されている。さらに、矢印は、プログラミング順序とワード線間の遷移を示す。たとえば、Ｌ０およびＭ０は、ＷＬｘでプログラムされ、その後、Ｌ１およびＭ１がＷＬｘ＋１でプログラムされ、その後、Ｕ０がＷＬｘでプログラムされ、その後、Ｌ２およびＭ２がＷＬｘ＋２でプログラムされ、その後、Ｌ３がＷＬｘ＋３でプログラムされ、その後、Ｕ１がＷＬｘ＋１でプログラムされ、その後、Ｍ３がＷＬｘ＋３でプログラムされ、その後、Ｕ２がＷＬｘ＋２でプログラムされ、その後、Ｌ４およびＭ４がＷＬｘ＋４でプログラムされ、その後、Ｕ３がＷＬｘ＋３でプログラムされ、最後に、Ｕ４がＷＬｘ＋４でプログラムされる。
【００６４】
図８ａは、ステップ８００において始まるプログラミングデータ転送プロセスの概要を示す。ステップ８０２において、ホストは、最高のプログラミング時間を有するページを最初に、２番目に高いプログラミング時間を有するページを次に、といった具合に、所要のプログラミング時間順に記録ユニット内の複数の論理ページのデータを転送する。それゆえ、ページは、それらのプログラミング時間とは逆の順序になる。２つまたはそれ以上のページが記録ユニットに提供される。ステップ８０４において、メモリデバイスは、ページが受け取られる順番にページをバッファする。ステップ８０６において、メモリデバイスは、ページまたはページの一部をバッファからメモリモジュールに転送する。ステップ８０８において、メモリデバイスは、ページがホストから受け取られる順番にページをプログラムする。
【００６５】
図８ｂは、ステップ８５０において始まるプログラミングデータ転送プロセスの詳細を示す。ステップ８５２において、ホストは、記録ユニットの最初のページをメモリデバイスに転送し始める。これを実現するために、ステップ８５４において、ホストは、最初のページのセグメント、または、一部をメモリデバイスに転送する。判断ステップ８５６において、ページに次のセグメントがあれば、ホストは、ステップ８５４において、次のセグメントを転送する。転送する次のセグメントがなければ、ホストは、ステップ８５８において、記録ユニットの第２のページの転送を開始する。これを実現するために、ステップ８６０において、ホストは、第２のページのセグメント、または、一部をメモリデバイスに転送する。判断ステップ８６２において、ページに次のセグメントがあれば、ホストは、ステップ８６０において、次のセグメントを転送する。転送する次のセグメントがなければ、ホストは、記録ユニットのプログラミングが無事に完了したことのメモリデバイスからの確認を待つ。
【００６６】
確認が受け取られると、判断ステップ８６６において、メモリデバイスに転送すべき次の記録ユニットがあるかどうかに関する判断がなされる。転送する次の記録ユニットがあれば、ステップ８５２において開始するプロセスが繰り返される。転送する次の記録ユニットがなければ、ステップ８６８において、プログラミングデータ転送プロセスは終了する。
【００６７】
図９は、メモリデバイスによって実施されるプログラミングプロセスの詳細を示しており、図８ｂのホストプロセスに対応する。プログラミング動作はステップ９００において始まる。ステップ９０２において、メモリデバイスは、記録ユニットの最初のページの受け取りを開始する。これを実現するために、メモリデバイスは、ステップ９０４において、最初のページのセグメントを受け取ってバッファする。ステップ９０４から、プロセスは２つの経路に同時に分岐する。第１の経路では、判断ステップ９０６において次のセグメントがあれば、セグメントはステップ９０４において受け取られる。ページに次のセグメントがなければ、メモリデバイスは、ステップ９０８において、記録ユニットの第２のページの受け取りを開始する。これを実現するために、メモリデバイスは、ステップ９１０において、第２のページのセグメントを受け取ってバッファする。ステップ９１０から、プロセスは再び２つの経路に同時に分岐する。第１の経路では、判断ステップ９１２において、次のセグメントがあれば、セグメントはステップ９１０において受け取られる。ページに次のセグメントがなければ、ステップ９１３において待機が実施される。
【００６８】
ステップ９０４の後に、第２の経路では、判断ステップ９１８において、メモリデバイスのバッファが一杯であるかどうかに関する判断がなされる。バッファが一杯でなければ、ステップ９２０において待機が実施される。バッファが一杯であれば、バッファの内容がステップ９２２においてメモリモジュールに転送される。図７ａおよび７ｃの例では、ページデータの半分（８セグメントのうちの４セグメント）が受け取られると、バッファ転送が行われる。判断ステップ９２４において、ページ全体（たとえば、記録ユニットの最初のページ）が転送されると、メモリモジュールは、ステップ９２８において、メモリアレイへの最初のページのプログラミングを開始する。判断ステップ９２４において、第１のページ全体がまだメモリモジュールに転送されていなければ、ステップ９２６において待機が実施される。
【００６９】
同様に、ステップ９１０の後に、第２の経路では、判断ステップ９３０において、メモリデバイスのバッファが一杯であるかどうかに関する判断がなされる。バッファが一杯でなければ、ステップ９３２において待機が実施される。バッファが一杯であれば、ステップ９３４において、バッファの内容がメモリモジュールに転送される。図７ａおよび７ｃの例では、ページデータの半分（８セグメントのうちの４セグメント）が受け取られると、バッファ転送が行われる。判断ステップ９３６において、ページ全体（たとえば、記録ユニットの第２のページ）が転送されると、メモリモジュールは、ステップ９４０において、メモリアレイへの第２のページのプログラミングを開始する。判断ステップ９３６において、第２のページ全体がまだメモリモジュールに転送されていなければ、ステップ９３８において待機が実施される。
【００７０】
ステップ９４２において、メモリデバイスは、記録ユニットに対するプログラミングが終了したときに、確認メッセージをホストに提供する。判断ステップ９１４において、ホストから受け取るべき次の記録ユニットがあれば、ステップ９０２において開始するプロセスが繰り返される。受け取る次の記録ユニットがなければ、ステップ９１６において、プログラミングデータ転送は終了する。
【００７１】
本明細書に記載する技術の一実施形態では、不揮発性記憶システムを動作させる方法は、（ａ）ページデータの記録ユニットに伝えられる第１の論理ページのデータをホストから受信するステップと、（ｂ）受信された第１の論理ページのデータをバッファにバッファするステップと、（ｃ）第１の論理ページのデータをバッファからメモリアレイに転送するステップと、（ｄ）第１の論理ページのデータを受信してバッファした後に、ページデータの記録ユニットに伝えられる第２の論理ページのデータをホストから受信し、第２の論理ページのデータをバッファでバッファするステップとを含む。方法は、さらに、（ｅ）バッファから転送される第１の論理ページのデータを用いてメモリアレイをプログラムするステップであって、受信した第２の論理ページのデータをバッファでバッファすることに平行してバッファから転送される第１の論理ページのデータを用いてメモリアレイをプログラムするステップと、（ｆ）第２の論理ページのデータをバッファからメモリアレイに転送するステップと、（ｇ）バッファから転送される第２の論理ページのデータを用いてメモリアレイをプログラムするステップであって、第１の論理ページのデータは、第２の論理ページのデータよりもプログラムするのに長い時間を要するステップを含む。
【００７２】
別の実施形態では、不揮発性記憶システムを動作させる方法は、（ａ）ホストからページデータの複数の連続するユニットを一度に１ユニットずつ受信するステップであって、ページデータの各ユニットが、最高プログラミング時間を最初に、それらに必要なプログラミング時間に基づく順序で配列された複数の論理ページのデータを含むステップと、（ｂ）最高プログラミング時間を最初に、それらに必要なプログラミング時間に基づく順序で、バッファにページデータの各ユニットの論理ページのデータをバッファするステップとを含む。方法は、さらに、（ｃ）最高プログラミング時間を最初に、それらに必要なプログラミング時間に基づく順序で、ページデータの各ユニットの論理ページのデータをバッファからメモリアレイに転送するステップと、（ｄ）バッファからメモリアレイに転送されたページデータの各ユニットの論理ページのデータを用いてメモリアレイをプログラムするステップであって、プログラミングは、最高プログラミング時間を最初に、それらに必要なプログラミング時間に基づく順序でプログラミングを行うステップを含む。ページデータの各ユニットは、ページデータの次のユニットがホストから受信される前にプログラミングを終了する。
【００７３】
別の実施形態では、不揮発性記憶システムは、メモリアレイ、メモリアレイと通信する１つまたは複数の制御回路、および、１つまたは複数の制御回路に関連するバッファを含む。１つまたは複数の制御回路は、ページデータの記録ユニットに伝えられる第１の論理ページのデータをホストから受信し、受信した第１の論理ページのデータをバッファでバッファし、第１の論理ページのデータをバッファからメモリアレイに転送する。第１の論理ページのデータを受信してバッファした後に、１つまたは複数の制御回路は、ページデータの記録ユニットに伝えられる第２の論理ページのデータをホストから受信し、第２の論理ページのデータをバッファでバッファする。さらに、１つまたは複数の制御回路は、バッファから転送される第１の論理ページのデータを用いてメモリアレイをプログラムし（ここで、プログラミングは、受信された第２の論理ページのデータをバッファでバッファすることと平行して行われる）、第２の論理ページのデータをバッファからメモリアレイに転送する。また、１つまたは複数の制御回路は、バッファから転送される第２の論理ページのデータを用いてメモリアレイをプログラムし、ここで、第１の論理ページのデータは、第２の論理ページのデータよりもプログラムするのに長い時間を要する。
【００７４】
本明細書で提供される方法を実施するための対応する方法、システム、およびコンピュータまたはプロセッサ可読記憶デバイスが説明された。
【００７５】
前述の詳細な説明は、例示および説明を目的として提示されている。これは、網羅的なものでなく、開示された通りの形態に限定されるものでもない。上記の教示に照らした多くの修正形態および変形形態が考えられる。記載した実施形態は、技術およびその実際的応用の原理を最もよく説明し、当業者が様々な実施形態で、検討される特定の使用に適するように様々に修正して技術を最もよく利用し得るように選定された。技術の範囲は、本明細書に添付される特許請求の範囲によって規定されるものとする。
【図１】
0005415617.tif 000002
【図２ａ】
0005415617.tif 000003
【図２ｂ】
0005415617.tif 000004
【図３】
0005415617.tif 000005
【図４ａ−４ｃ】
0005415617.tif 000006
【図５ａ−５ｄ】
0005415617.tif 000007
【図６ａ】
0005415617.tif 000008
【図６ｂ】
0005415617.tif 000009
【図７ａ】
0005415617.tif 000010
【図７ｂ】
0005415617.tif 000011
【図７ｃ】
0005415617.tif 000012
【図７ｄ】
0005415617.tif 000013
【図８ａ】
0005415617.tif 000014
【図８ｂ】
0005415617.tif 000015
【図９】
0005415617.tif 000016