(57)【特許請求の範囲】
【請求項１】
メモリを制御する方法であって、
ユーザにとって使用可能なメモリ内の最大容量を定義する蓄積容量とメモリ内での内部使用のために取っておかれるメモリ容量を定義する作業領域容量とを有する前記メモリにて入力を受信するステップと、
前記入力が第１の入力を備える場合に、第１の書き込み性能レベルと第１の蓄積容量として構成された蓄積容量とを提供する第１の動作モードに前記メモリを構成するステップと、
前記入力が第２の入力を備える場合に、第２の書き込み性能レベルと第２の蓄積容量として構成された蓄積容量とを提供する第２の動作モードに前記メモリを構成するステップと、を含み、
前記第１の書き込み性能レベルは、前記第２の書き込み性能レベルより低く、
前記第１の蓄積容量は、前記第２の蓄積容量より大きく、
前記第１の動作モードと前記第２の動作モードは、１セル当たり同一数のビットを前記メモリに蓄積し、
前記第１の動作モードの第１の蓄積容量に関連する第１の作業領域容量は、前記第２の動作モードの第２の蓄積容量に関連する第２の作業領域容量より少なく、
前記第１の書き込み性能レベルは第１の書き込み速度であり、前記第２の書き込み性能レベルは第２の書き込み速度であり、
前記第１および第２の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を備える方法。
【請求項２】
請求項１記載の方法において、
前記メモリが既にフォーマット済みである場合に、前記第２の動作モードに前記メモリを構成することを禁止するステップをさらに含む方法。
【請求項３】
請求項１記載の方法において、
前記入力を受信するステップは、前記メモリがフォーマットされる前または前記メモリがフォーマットされているときに、入力を受信することを含む方法。
【請求項４】
請求項１記載の方法において、
前記第１および第２の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を備える方法。
【請求項５】
請求項１記載の方法において、
前記第１の動作モードに前記メモリを構成するステップは、合計容量から前記第１の蓄積容量を引いたものに満たないかこれに等しい第１の作業領域容量のための容量を割り当てることを含み、
前記第２の動作モードに前記メモリを構成するステップは、合計容量から前記第２の蓄積容量を引いたものに満たないかこれに等しい第２の作業領域容量のための容量を割り当てることを含む方法。
【請求項６】
請求項１記載の方法において、
前記入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドを備える方法。
【請求項７】
請求項６記載の方法において、
前記ソフトウェアコマンドは、ホストから受信される方法。
【請求項８】
請求項１記載の方法において、
前記入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するハードウェア設定を備える方法。
【請求項９】
請求項８記載の方法において、
前記ハードウェア設定は、スイッチおよびジャンパのうちの少なくとも一方を備える方法。
【請求項１０】
請求項１記載の方法において、
前記入力は、前記メモリの蓄積容量の一部分にのみ作用する方法。
【請求項１１】
メモリデバイスであって、
ユーザにとって使用可能なメモリ内の最大容量を定義する蓄積容量とメモリ内での内部使用のために取っておかれるメモリ容量を定義する作業領域容量とを有するメモリと、
前記メモリを制御するコントローラであって、
前記メモリにて入力を受信し、
前記入力が第１の入力を備える場合に、第１の書き込み性能レベルと第１の蓄積容量として構成された蓄積容量とを提供する第１の動作モードに前記メモリを構成し、かつ
前記入力が第２の入力を備える場合に、第２の書き込み性能レベルと第２の蓄積容量として構成された蓄積容量とを提供する第２の動作モードに前記メモリを構成するように構成されたコントローラと、を備え、
前記第１の書き込み性能レベルは、前記第２の書き込み性能レベルより低く、
前記第１の蓄積容量は、前記第２の蓄積容量より大きく、
前記第１の動作モードと前記第２の動作モードは、１セル当たり同一数のビットを前記メモリに蓄積し、
前記第１の動作モードの第１の蓄積容量に関連する第１の作業領域容量は、前記第２の動作モードの第２の蓄積容量に関連する第２の作業領域容量より少なく、
前記第１の書き込み性能レベルは第１の書き込み速度であり、前記第２の書き込み性能レベルは第２の書き込み速度であり、
前記第１および第２の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を備えるメモリデバイス。
【請求項１２】
請求項１１記載のメモリデバイスにおいて、
前記コントローラは、前記メモリが既にフォーマット済みである場合に、前記第２の動作モードに前記メモリを構成することを禁止するようにさらに構成されるメモリデバイス。
【請求項１３】
請求項１１記載のメモリデバイスにおいて、
前記入力を受信することは、前記メモリがフォーマットされる前または前記メモリがフォーマットされているときに、入力を受信することを含むメモリデバイス。
【請求項１４】
請求項１１記載のメモリデバイスにおいて、
前記第１および第２の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を備えるメモリデバイス。
【請求項１５】
請求項１１記載のメモリデバイスにおいて、
前記コントローラは、前記第１の動作モードにおいて、前記メモリデバイスの合計容量から前記第１の蓄積容量を引いたものに満たないかこれに等しい第１の作業領域容量のための容量を割り当てるようにさらに構成され、
前記コントローラは、前記第２の動作モードにおいて、前記メモリデバイスの合計容量から前記第２の蓄積容量を引いたものに満たないかこれに等しい第２の作業領域容量のための容量を割り当てるようにさらに構成されるメモリデバイス。
【請求項１６】
請求項１１記載のメモリデバイスにおいて、
前記入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドを備えるメモリデバイス。
【請求項１７】
請求項１６記載のメモリデバイスにおいて、
前記メモリデバイスは、前記ソフトウェアコマンドを受信するように配設されたインターフェイスを備えるメモリデバイス。
【請求項１８】
請求項１１記載のメモリデバイスにおいて、
前記メモリデバイスは入力を受信するハードウェアインターフェイスを備え、前記入力は書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するメモリデバイス。
【請求項１９】
請求項１８記載のメモリデバイスにおいて、
前記ハードウェアインターフェイスは、スイッチまたはジャンパのうちの少なくとも一方を備えるメモリデバイス。
【請求項２０】
請求項１１記載のメモリデバイスにおいて、
前記入力は、前記メモリの蓄積容量の一部分にのみ作用するメモリデバイス。
【請求項２１】
メモリを制御する方法であって、
メモリとやり取りするコントローラを有するメモリデバイスにて、前記コントローラは、
書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定する入力を受信するステップと、
前記入力が第１の入力を備える場合に、前記メモリを第１の比に構成するステップと、
前記入力が第２の入力を備える場合に、前記メモリを第２の比に構成するステップと、を含み、
前記メモリは、合計容量を備え、
前記第１の比は第１の作業領域容量に対する第１の蓄積容量の比を備え、前記第１の蓄積容量はユーザにとってメモリデバイスにて使用可能なメモリ内の第１の蓄積容量を定義し、前記第１の作業領域容量は合計容量から前記第１の蓄積容量を引いたものに満たないかこれに等しく、
前記第２の比は第２の作業領域容量に対する第２の蓄積容量の比を備え、前記第２の蓄積容量はユーザにとってメモリデバイスにて使用可能なメモリ内の第２の蓄積容量を定義し、前記第２の作業領域容量は合計容量から前記第２の蓄積容量を引いたものに満たないかこれに等しく、
前記第１の比は、前記第２の比より高く、
前記第１の比は、前記第２の比よりも高い書き込み性能レベルに対応し、
前記第２の比よりも高い書き込み性能レベルは、高い書き込み速度に対応し、
前記第１および第２の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を備える方法。
【請求項２２】
請求項２１記載の方法において、
前記メモリが既にフォーマット済みである場合に、前記メモリを前記第２の比に構成することを禁止するステップをさらに含む方法。
【請求項２３】
請求項２１記載の方法において、
前記入力を受信するステップは、前記メモリがフォーマットされる前または前記メモリがフォーマットされているときに、前記入力を受信することを含む方法。
【請求項２４】
請求項２１記載の方法において、
前記入力は、ソフトウェアコマンドまたはハードウェア設定のうちの少なくとも一方を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはメモリデバイスに関する。本発明は、より具体的には再プログラム可能な不揮発性半導体フラッシュメモリの性能モードを設定することに関する。
【背景技術】
【０００２】
消費者製品にはフラッシュメモリ等の不揮発性メモリシステムが幅広く採用され使用されている。ホストデバイス間で持ち運べるポータブルメモリカードやホストデバイスに埋め込まれたソリッドステートディスク（ＳＳＤ）等、様々な形のフラッシュメモリが見られる。従来のフラッシュメモリシステムへデータを書き込む場合、ホストは通常メモリシステムの論理アドレス空間内のアドレスでデータを読み書きする。次に、メモリシステムは通常、論理アドレス空間とメモリの物理ブロックまたはメタブロックとの間でデータをマッピングし、データが論理アドレス空間内の範囲に相当する一定の論理グループに蓄積される。通常、一定の論理グループはメモリシステムの別々の物理ブロックに蓄積される。メモリシステムは論理アドレス空間がどのように物理メモリにマッピングされるかを把握するが、ホストはこれを認識しない。ホストは論理アドレス空間の中でデータファイルのアドレスを把握するが、メモリシステムは通常、このマッピングを認識せずに作動する。
【０００３】
このように作動するメモリシステムには断片化という欠点がある。例えば、ＮＴＦＳファイルシステムにより作動するパーソナルコンピュータ（ＰＣ）のソリッドステートディスク（ＳＳＤ）に書き込まれるデータはしばしば、ドライブの論理アドレス空間の中で広範にわたり分散した短い連続アドレスからなるパターンによって特徴づけられる。ホストによって使用されるファイルシステムが相次ぐファイルの新規データに一連のアドレスを割り当てても、削除または更新されるファイルの恣意的パターンによって使用可能な空きメモリ空間は断片化され、これをブロック単位で新規ファイルデータに割り当てることはできなくなる。
【０００４】
ホストによるファイルの削除または更新によってメモリシステムの物理ブロックにある一部のデータは用済みとなり、有効データと用済みデータの両方を含む部分的に用済みのブロックになることがある。用済みデータによって部分的に埋められた物理ブロックのメモリ容量は、ブロック内の有効データを別のブロックへ移し、元のブロックを消去しデータを受け入れ可能となるまでは使用できない。有効データを別のブロックへ移し、新規データを受け入れるように元のブロックを準備するプロセスはハウスキーピング機能またはガーベッジコレクションと呼ばれることがある。用済みデータによって部分的に埋められたブロック等、メモリシステムに用済みブロックがたまると、それらのブロックで新規データを受け入れられなくなる。相当量の用済みブロックがたまるとメモリデバイスはホストからの要求に応じることができなくなり、ハウスキーピング機能が必要となることがある。
【０００５】
通常は２つの数値によってメモリデバイスの書き込み性能が指定される。最初の数値はバースト書き込み速度である。バースト書き込み速度は、メモリデバイスに十分な空間があって入力データストリームを吸収できるレートである。２番目の数値はサステインド書き込み速度である。サステインド書き込み速度は、メモリデバイスが使用可能な書き込みブロックよりかなり大きい入力データストリームを吸収できるレートである。
【０００６】
メモリデバイスの書き込み性能は、メモリデバイスにどれくらい多くのデータが蓄積されているかに左右される。蓄積容量が満杯に近いとガーベッジコレクションが必要となる場合がある。ブロックを解放して新規データを受け入れられるようにするには、ガーベッジコレクションが行われるブロックの有効データを別の位置へコピーしなければならない。ガーベッジコレクションによって空きブロックが用意されるまでは新規データを書き込めないため、ガーベッジコレクションが行われるとメモリデバイスの書き込み性能は低下する。したがって、蓄積容量に対する、ガーベッジコレクションやその他のハウスキーピング操作に使われる作業領域容量は、メモリデバイスの書き込み性能に影響をおよぼす。蓄積される一定量のデータに対して、典型的なメモリデバイスはその蓄積容量と作業領域容量とに基づく単一の書き込み性能レベルを有する。
【発明の概要】
【０００７】
前述した問題に対処するため、メモリデバイスの性能モードを制御する方法およびシステムを開示する。
本発明の第１の態様によると、メモリを制御する方法が開示される。この方法は、メモリにて入力を受信することを含む。この方法は、入力が第１の入力を備える場合に、第１の書き込み性能レベルと第１の蓄積容量とを提供する第１の動作モードにメモリを構成する。この方法は、入力が第２の入力を備える場合に、第２の書き込み性能レベルと第２の蓄積容量とを提供する第２の動作モードにメモリを構成する。第１の書き込み性能レベルは第２の書き込み性能レベルより低く、第１の蓄積容量は第２の蓄積容量より大きく、かつ第１の動作モードと第２の動作モードは１セル当たり同一数のビットをメモリに蓄積する。
【０００８】
この方法は、メモリが既にフォーマット済みである場合に、第２の動作モードにメモリを構成することを禁止することをさらに含む。入力を受信することは、メモリがフォーマットされる前またはメモリがフォーマットされているときに、入力を受信することを含む。第１および第２の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を含むことができる。第１の動作モードにメモリを構成することは、合計容量から第１の蓄積容量を引いたものに満たないかこれに等しい第１の作業領域容量を、メモリ内での内部使用のため、割り当てることを含むことができる。第２の動作モードにメモリを構成することは、合計容量から第２の蓄積容量を引いたものに満たないかこれに等しい第２の作業領域容量を、メモリ内での内部使用のため、割り当てることを含むことができる。第１および第２の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を含むことができる。入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドまたはハードウェア設定を含むことができる。ソフトウェアコマンドはホストから受信されうる。ハードウェア設定は、スイッチおよびジャンパのうちの少なくとも一方を含むことができる。受信された入力は、メモリの蓄積容量の一部分にのみ作用する。
【０００９】
本発明の別の態様において、メモリデバイスは、メモリと、メモリを制御するコントローラと、を備える。コントローラは、メモリにて入力を受信するように構成される。コントローラは、入力が第１の入力を備える場合に、第１の書き込み性能レベルと第１の蓄積容量とを提供する第１の動作モードにメモリを構成する。コントローラは、入力が第２の入力を備える場合に、第２の書き込み性能レベルと第２の蓄積容量とを提供する第２の動作モードにメモリを構成する。第１の書き込み性能レベルは第２の書き込み性能レベルより低く、第１の蓄積容量は第２の蓄積容量より大きく、かつ第１の動作モードと第２の動作モードは１セル当たり同一数のビットをメモリに蓄積する。
【００１０】
コントローラは、メモリが既にフォーマット済みである場合に、第２の動作モードにメモリを構成することを禁止するようにさらに構成されうる。入力を受信することは、メモリがフォーマットされる前またはメモリがフォーマットされているときに、入力を受信することを含むことができる。第１および第２の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を含むことができる。コントローラは、合計容量から第１の蓄積容量を引いたものに満たないかこれに等しい第１の作業領域容量を、メモリ内での内部使用のため、割り当てるようにさらに構成される。コントローラはまた、合計容量から第２の蓄積容量を引いたものに満たないかこれに等しい第２の作業領域容量を、メモリ内での内部使用のため、割り当てるように構成される。第１および第２の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を含むことができる。入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドを含み、メモリデバイスは、ソフトウェアコマンドを受信するように配設されたインターフェイスを含むことができる。あるいは、メモリデバイスは、書き込み性能レベルと蓄積容量のうちの少なくとも一方を指定する入力を受信するハードウェアインターフェイスを含むことができる。ハードウェアインターフェイスは、スイッチまたはジャンパのうちの少なくとも一方を含むことができる。受信された入力は、メモリの蓄積容量の一部分にのみ作用する。
【００１１】
本発明のさらに別の態様において、メモリにて入力を受信することを含む、メモリを制御する方法が開示される。この方法は、入力が第１の入力を備える場合に、メモリを第１の比に構成し、かつ入力が第２の入力を備える場合に、メモリを第２の比に構成する。メモリは合計容量を含む。第１の比は第１の作業領域容量に対する第１の蓄積容量の比を含み、第１の作業領域容量は合計容量から第１の蓄積容量を引いたものに満たないかこれに等しい。第２の比は第２の作業領域容量に対する第２の蓄積容量の比を含み、第２の作業領域容量は合計容量から第２の蓄積容量を引いたものに満たないかこれに等しい。第１の比は第２の比より高い。この方法はさらに、メモリが既にフォーマット済みである場合に、メモリを第２の比に構成することを禁止することを含むことができる。入力を受信することは、メモリがフォーマットされる前またはメモリがフォーマットされているときに、入力を受信することを含むことができる。第１および第２の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を含むことができる。入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドまたはハードウェア設定のうちの少なくとも一方を備えることができる。
【図面の簡単な説明】
【００１２】
【図１】不揮発性メモリを有するメモリシステムに接続されたホストのブロック図である。
【図２】図１のシステムの物理メモリ編成例を示す。
【図３】図２の物理メモリの一部分の拡大図を示す。
【図４】代表的なデータ管理方式において割り当て済みおよび空きクラスタの典型的パターンをブロックごとに示す。
【図５】クラスタブロック割り当ての状態図である。
【図６】ブロック内の割り当て済みおよび空きクラスタとホストからメモリシステムへ書き込まれるデータのパターン例を示す。
【図７】物理ブロックのフラッシュ操作の一例を示す。
【図８】図７のフラッシュ操作の後に続く、物理ブロックのフラッシュ操作の第２の例を示す。
【図９】メモリ容量の編成例を示す。
【図１０】複数のパーティションがある場合のメモリ容量の編成例を示す。
【図１１】一実施形態によりメモリデバイスの性能モードを設定する方法を示す流れ図である。
【発明を実施するための形態】
【００１３】
本発明の態様を実装するのに適した例示的なフラッシュメモリシステムを図１〜３に示す。他のメモリシステムも本発明の実装に適している。図１のホストシステム１００はフラッシュメモリ１０２にデータを蓄積し、かつフラッシュメモリ１０２からデータを取り出す。フラッシュメモリは、例えばパーソナルコンピュータに設置されたソリッドステートディスク（ＳＳＤ）ドライブの形をとり、ホスト内に埋め込まれることがある。あるいは、メモリ１０２はカードの形をとることがあり、図１に示された機械的・電気的コネクタの嵌合部分１０４および１０６を通じてホストへ取り外し可能な状態で接続されることもある。内蔵または埋め込みＳＳＤドライブとして構成されたフラッシュメモリは図１の概略図に類似し、主な違いはメモリシステム１０２がホストの内部に位置することである。ＳＳＤドライブは単体モジュールの形をとり、回転磁気ディスクドライブの当座の代替品となることもある。
【００１４】
サンディスク  コーポレイションによって製造されている３２ギガバイトＳＳＤは市販ＳＳＤドライブの一例である。市販のリムーバブルフラッシュメモリカードの例は、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）、ミニＳＤ、メモリスティック、スマートメディア、およびマイクロＳＤカードを含む。これらのカードは規格化された仕様により固有の機械的および／または電気的インターフェイスを有するが、それぞれのカードに含まれるフラッシュメモリシステムは類似している。これらのカードはいずれも本願の譲受人であるサンディスク  コーポレイションから入手できる。サンディスク  コーポレイションはまた、Ｃｒｕｚｅｒという商標のもとで一連のフラッシュドライブを提供している。これは、ユニバーサルシリアルバス（ＵＳＢ）プラグを有する小型のハンドヘルド型メモリであり、このプラグをホストのＵＳＢ差込口に差し込むことによりホストと接続する。これらのメモリカードとフラッシュドライブはコントローラを内蔵し、このコントローラがホストシステムと連係し、ホストシステムの中にあるフラッシュメモリの動作を制御する。
【００１５】
ＳＳＤ、メモリカード、およびフラッシュドライブを使用するホストシステムは数多く様々であり、デスクトップまたはラップトップならびに他のポータブルコンピュータ等のパーソナルコンピュータ（ＰＣ）、携帯電話機、個人用携帯情報端末（ＰＤＡ）、デジタル静止画カメラ、デジタル動画カメラ、およびポータブルオーディオプレイヤを含む。ホストは、ポータブルメモリカード用として１種類以上のメモリカードまたはフラッシュドライブに対応する内蔵差込口を含むこともあれば、メモリカードを差し込むアダプタを要することもある。メモリシステムは通常、独自のメモリコントローラとドライバを具備するが、メモリの接続先にあたるホストによって実行されるソフトウェアにより制御されるメモリのみのシステムもある。コントローラを具備するメモリシステムでは、特にホストの中に埋め込まれるメモリシステムでは、メモリと、コントローラと、ドライバとがしばしば単一の集積回路チップ上に形成される。
【００１６】
図１のホストシステム１００は、メモリ１０２が関する限り、回路とソフトウェアとの組み合わせからなる２つの主要部分を有するものと見ることができる。２つの主要部分とは、アプリケーション部分１０８と、メモリ１０２と連係するドライバ部分１１０である。例えば、ＰＣのアプリケーション部分１０８は、プロセッサで実行するワープロ、グラフィックス、制御等、一般的なアプリケーションソフトウェアを含むことができる。カメラや携帯電話機等、１組の機能を実行する専用ホストシステムのアプリケーション部分１０８は、カメラを操作して写真を撮影したり保存したりするソフトウェアや、携帯電話機を操作して電話をかけたり電話を受けたりするソフトウェア等を含む。
【００１７】
図１のメモリシステム１０２はフラッシュメモリ１１２と回路１１４とを含み、この回路はカードの接続先にあたるホストと連係しながらデータをやり取りし、かつメモリ１１２を制御する。コントローラ１１４は通常、データのプログラミングと読み出しのときにホスト１００によって使用されるデータの論理アドレスとメモリ１１２の物理アドレスとを変換する。メモリシステム１０２はまた、ハードウェア設定１１６を構成し、メモリシステム１０２の書き込み性能レベルや蓄積容量等、メモリシステム１０２のパラメータを調整するスイッチまたはジャンパ１１８を含むことがある。
【００１８】
図２は、以降のさらなる説明で一例として使用するフラッシュメモリセルアレイ１１２（図１）の編制を概念的に示すものである。メモリセルからなる４つのプレーンまたはサブアレイ２０２、２０４、２０６、および２０８は、１つの集積メモリセルチップ上にあるか、２つのチップ上にあるか（各チップ上に２プレーン）、４つの別々のチップ上にある。具体的な配置は以降の説明にとって重要ではない。もちろん、これとは異なるプレーン数が、例えば１、２、８、１６以上のプレーンが、システムに存在することもある。プレーンは、これ以降消去ブロックと呼ぶ最小消去単位を形成するメモリセル集団にそれぞれ分割される。プレーン２０２、２０４、２０６、および２０８に位置する消去ブロック２１０、２１２、２１４、および２１６等、図２ではメモリセルの消去ブロックが矩形で表示されている。各プレーンには何十、何百もの消去ブロックが存在し得る。
【００１９】
前述したように、メモリセルの消去ブロックは消去の単位であって、物理的にまとめて消去できる最小数のメモリセルである。ただし、並列性を高めるためには、これよりも大きいメタブロック単位で消去ブロックを操作する。それぞれのプレーンから１つの消去ブロックが論理的にリンクされることによってメタブロックが形成される。４つの消去ブロック２１０、２１２、２１４、および２１６によって１つのメタブロック２１８が形成されていることを図に示す。通常は１メタブロック内の全てのセルがまとめて消去される。消去ブロック２２２、２２４、２２６、および２２８からなる第２のメタブロック２２０に見られるように、メタブロックを形成する消去ブロックの各プレーンにおける相対的位置は同じでなくてもよい。システム性能を高めるため、通常は全てのプレーンにまたがって延在するメタブロックが好ましいが、別々のプレーンにある１つ、２つ、または３つの消去ブロックのいずれかまたは全部から動的にメタブロックを形成しながらメモリシステムを操作することもできる。この場合は、１回のプログラミング操作で蓄積するデータ量にメタブロックのサイズをより精密に整合させることができる。
【００２０】
操作上の目的から、それぞれの消去ブロックはさらに図３に示すようにメモリセルページに分割される。例えば、ブロック２１０、２１２、２１４、および２１６のメモリセルはそれぞれ８つのページＰ０〜Ｐ７に分割されている。代わりに、１６、３２、またはそれ以上のメモリセルページが各ブロックに存在することもある。ページは消去ブロックの中でデータをプログラムしかつ読み出す単位であり、一度にプログラムされるかまたは読み出される最少量のデータを収容する。ただし、メモリシステム動作の並列性を高めるため、２つ以上の消去ブロックにあるページをメタページとして論理的にリンクすることもできる。図３には、４つの消去ブロック２１０、２１２、２１４、および２１６の各ブロックにつき１つの物理ページから形成されたメタページ３０２が示されている。例えば、メタページ３０２は４つの各ブロックのページＰ２を含んでいるが、メタページのページは必ずしもブロック内で同じ相対的位置を占めるとは限らない。メタページは最大プログラミング単位である。
【００２１】
メモリシステム１０２に使用できる代表的なデータ管理方式の概要を図４〜８に示す。ストレージアドレス再マッピング(storage address remapping) とも呼ばれるこのデータ管理方式は、ホストによって送信されるデータの論理ブロックアドレス（ＬＢＡ）を取り、ホストからデータを受信する順にそれらを第２の論理アドレス空間あるいは物理アドレス空間に直接再マッピングする。各ＬＢＡは、ホストによってアドレスされる論理アドレス空間の最小単位であるセクタに対応する。ホストは通常、１つ以上のセクタからなるクラスタでデータを割り当てる。また、以降の説明で用語「ブロック」はフレキシブルな蓄積空間表現であり、個々の消去ブロックを指すこともあれば、前述したようにメタブロックという論理的に相互接続された１組の消去ブロックを指すこともある。用語「ブロック」がメタブロックを指す場合、対応するＬＢＡの論理ブロックは、物理的メタブロック全体をアドレスするにあたって十分なサイズのアドレスブロックからなる。
【００２２】
図４は、メモリシステム１０２とフラッシュメモリ１１２における割り当て済みおよび空きクラスタの典型的なパターンをブロックごとに示すものである。ホストシステム１００からメモリシステム１０２へ書き込まれるデータは、１つ以上のセクタからなるクラスタによってアドレスされ、ブロック内で管理される。書き込み操作を処理するにはブロックにデータを書き込み、データのＬＢＡ順序にかかわりなくデータの受信順に当該ブロックをデータで完全に埋めた後、次の使用可能なブロックへ進む。完了したブロックにデータを書き込むには、用済みデータと有効データを含む部分的に用済みのブロックに対するフラッシュ操作により未書き込み容量のみのブロックを作る。以降の説明では、有効データで完全に埋められたブロックをレッドブロック４０２と呼び、未書き込み容量のみのブロックをホワイトブロック４０４と呼び、有効（割り当て済み）データ４０６と用済み（割り当て解除済み）データ４０８とを含む部分的に用済みのブロックをピンクブロック４１０と呼ぶ。
【００２３】
例えば、データを書き込む唯一の場所としてホワイトブロック４０４を割り当てることができ、ホストからデータが提供される順に書き込みポインタの現在位置でホワイトブロック４０４のアドレスがデータに順次対応付けられる。１ブロックの蓄積アドレスが有効データに完全に割り当てられると、そのブロックはレッドブロック４０２として認識される。ホストによってファイルが削除または更新されると、レッドブロック４０２でいくつかのアドレスが有効データに割り当てられなくなり、そのブロックはピンクブロック４１０として認識される。
【００２４】
ホワイトブロック４０４は、ピンクブロック４１０から再配置ブロックへ有効データを移すことによって作ることができる。フラッシングと呼ばれるガーベッジコレクション操作である。再配置ブロックに未書き込み容量が存在しなければ、新たに割り当てられるホワイトブロック４０４が再配置ブロックとなる。前述したホストからの書き込み操作と同様に、フラッシュ操作における有効データの再配置によって、ひとまとまりのアドレスブロックが維持されるとは限らない。つまり、ピンクブロック４１０から目下の再配置ブロックへフラッシュされる有効データは、ピンクブロック内での順序に従って再配置ブロック内の連続位置にコピーされるが、再配置ブロックには、他の無関係のピンクブロックから移された別の有効データが入ることがある。ピンクブロック４１０をホワイトブロック４０４に変えるには、バックグラウンド操作またはフォアグラウンド操作としてフラッシュ操作を実行する。ピンクブロックのバックグラウンドフラッシュはホストインターフェイスがアイドル状態のときに作動し、ホストインターフェイスが活動すると停止される。ピンクブロックのフォアグラウンドフラッシュはホストインターフェイスが活動しているときに作動し、書き込みコマンドが完了するまでデータ書き込み操作と物理ブロックのフラッシュ操作を交互に行う。
【００２５】
フラッシュ操作にあたっては、ピンクブロック４１０の特性に従ってピンクブロックが選ばれる。有効データのアドレスが少ないほど、ピンクブロックをフラッシュするときに移動の必要があるデータが少なくなるため、一実施例において、有効データが最も少ない（図４で網掛けされたクラスタが最も少ない）ピンクブロック４１０が選ばれる。この実施例では、ホストによって行われる書き込み操作、読み出し操作、および／または消去操作に応じてピンクブロック４１０が選ばれるのではない。図４の例では、有効データのアドレスが少ないピンクブロックＢがピンクブロックＡより優先的に選ばれる。このようにフラッシュブロックとして選ばれたピンクブロックでは、ホストによるファイルの削除または更新により割り当てが解除されたデータの量が最大となるため、有効データの再配置を最小限に抑えてブロックフラッシュ操作を実行できる。フラッシュ操作にあたっては、特定のピンクブロックにおけるさらなる消去または更新の算出確率等、他のパラメータに基づきピンクブロックを選ぶこともできる。
【００２６】
フラッシングアルゴリズムの一実施例において、メモリシステム１０２によって管理されるブロック情報テーブル（ＢＩＴ）に基づきフラッシュ操作のピンクブロックが選択される。ＢＩＴはメモリシステム１０２によって作成され、フラッシュメモリ１１２に蓄積される。ＢＩＴはブロック種別（ピンクブロック、ホワイトブロック等）のリストを収容するほか、ピンクブロックについては、各ピンクブロックのＬＢＡランデータを蓄積する。メモリシステム１０２はＢＩＴにあるピンクブロックのＬＢＡラン情報を取り、蓄積アドレステーブル（ＳＡＴ）の中でＬＢＡランに関連する有効データの量を調べる。ＳＡＴはメモリシステムによって管理されるもうひとつのテーブルであり、メモリシステムの蓄積アドレスに対するホスト割り当てＬＢＡアドレスの関係を追跡する。
【００２７】
図５は、フラッシュアルゴリズムの一実施形態によるブロック割り当ての状態図である。前述したように、アドレス空間はブロック単位で割り当てられ、１つのブロックが一杯になってから別のクラスタブロックを割り当てる。まずは、ホストからのデータが書き込まれる目下の書き込みブロックとしてホワイトブロック４０４を割り当てる（ステップ５０２）。ホストからのデータは、データの受信時間に従って順次書き込みブロックへ書き込まれる。目下の書き込みブロックで最後のページが埋まると目下の書き込みブロックがレッドブロックになり（ステップ５０４）、ホワイトブロックのプールから新たな書き込みブロックが割り当てられる。なお、目下の書き込みブロックが一杯になる前に目下の書き込みブロックの中に既に用済みとなっているページがある場合は、目下の書き込みブロックからピンクブロックへ直接遷移することもある。明瞭にするためにこの遷移を図に示していないが、書き込みブロックからピクセルブロックへ至る矢印により表すこともできる。
【００２８】
レッドブロックの中で１つ以上のページがファイルの削除または更新により用済みになると、レッドブロックはピンクブロックになる（ステップ５０６）。メモリシステムは、ホワイトブロックの量あるいは未書き込み容量を少なくとも部分的には含むメモリブロックの量を含む、使用可能なメモリ量を検出できる。さらなるホワイトブロックが必要な場合は、フラッシュ操作でピンクブロックから使用可能なメモリへ有効データを移し、ピンクブロックをホワイトブロックにする（ステップ５０８）。ピンクブロックをフラッシュするには、再配置ブロックに指定されたホワイトブロックへピンクブロックの有効データを順次移していく（ステップ５０８および５１０）。一杯になった再配置ブロックはレッドブロックになる（ステップ５１２）。書き込みブロックを参照し前述したように、再配置ブロックの中に既に用済みとなっているページがある場合は、再配置ブロックからピンクブロックへ直接遷移することもある。明瞭にするためにこの遷移を図に示していないが、図５で再配置ブロックからピンクブロックへ至る矢印により表すこともできる。
【００２９】
図６は、メモリシステムにおける有効データ（網掛けされた正方形）と、用済みデータ（ピンクブロックＡ〜Ｃ  ４１０で網掛けされていない正方形）と、未書き込み容量（書き込みブロック６０２とホワイトブロック４０４で網掛けされていない正方形）のパターン例を示すものである。図６〜８に示された正方形からなるブロックの網掛けされた正方形または網掛けされていない正方形は、消去ブロックまたはメタブロックにおけるアドレスのサブユニットを表す。図を簡略化するために図に示されたアドレスのサブユニットはサイズが等しいが、同じサイズでもよく、あるいは異なるサイズでもよい。
【００３０】
図６の物理ブロックで、用済みデータ４０８は基本的にランダムな位置に散らばっている。メモリデバイスへ書き込むデータがホストにある場合は、書き込みブロック６０２に順次書き込まれ、書き込みブロック６０２の連続する位置が埋められていく。書き込みブロック６０２内の位置は必ずしも１回の操作で埋まらない。書き込みブロック６０２が埋まると、次の書き込みブロック６０２としてホワイトブロック４０４が割り当てられる。
【００３１】
図６〜８には物理ブロックのフラッシュ操作の図が見られる。再配置ブロック７０２としてホワイトブロック４０４を指定でき、選択されたピンクブロックからここにデータをフラッシュすることによりさらなるホワイトブロックが作られる。データは、フラッシュブロックをホワイトブラック４０４へ移すため、フラッシュブロックの中で有効データを含む位置（この例では図６のピンクブロックＡの網掛けされた正方形）から、再配置ブロック７０２の中で連続するクラスタ（ホワイトブロック４０４で網掛けされていない正方形として図に示されている）の使用可能な容量へ移される。図８に示されているように、残りのピンクブロックから次のフラッシュブロック（図６のピンクブロックＢ）が特定されうる。ここでも有効データの量が最も少ないピンクブロック４１０がフラッシュブロックとして指定され、選択されたピンクブロック４１０の有効データは再配置ブロックの空いている連続位置に移される。
【００３２】
書き込みブロックとして指定されたホワイトブロックの消費を補償できるレートでホワイトブロックを作るため、ピンクブロックに対するフラッシュ操作はバックグラウンド操作として実行できる。必要に応じてさらなるホワイトブロックを作るため、フラッシュ操作をフォアグラウンド操作として実行することもできる。図６〜８の例は、ホストからの新規データとピンクブロックから再配置されるデータとで書き込みブロックと再配置ブロックが別々に管理される様子を示している。別の実施例では、新規データと再配置データが１つの書き込みブロックへ移されるため、書き込みブロックと再配置ブロックを区別する必要はない。また、ホストＬＢＡデータの再マッピングを追跡するため、前述した蓄積アドレステーブル（ＳＡＴ）が生成されメモリシステム１０２に蓄積される。蓄積アドレステーブルには、ホストによって物理蓄積アドレスへマッピングされるホストＬＢＡアドレスが記録される。
【００３３】
メモリシステム１０２のメモリ容量の編成例を図９に示す。メモリシステム１０２の合計容量９０２は蓄積容量９０４と作業領域容量９０６とを含む。蓄積容量９０４はデータ蓄積に使用できる。ホストシステム１００はメモリシステム１０２のデータ蓄積領域でデータを読み書きする。作業領域容量９０６は、ガーベッジコレクション空間および／または着信データのバッファとして使用できる。作業領域容量９０６は前述したようにガーベッジコレクション空間として使用され、必要に応じてホワイトブロックを作るためにピンクブロックから有効データがフラッシュされる。作業領域容量９０６は、合計容量９０２から蓄積容量９０４を引いたものに満たないかこれに等しい。
【００３４】
蓄積容量９０４と作業領域容量９０６とによる合計容量９０２の分割は必ずしも永久に固定されたものではなく、物理的分割ではなく論理的分割である。ある１つのブロックが一時点に蓄積容量９０４に含まれ、かつ別の時点に作業領域容量９０６に含まれることもある。例えば、前述したように、作業領域容量９０６のホワイトブロックであったブロックが蓄積容量９０４のレッドブロックになることもある。
【００３５】
作業領域容量９０６は、メモリシステム１０２のユーザにとって使用可能な蓄積容量９０４の最大量を合計容量９０２から引いたものに等しいか、若干これを下回る。例えば、メモリシステム１０２がそれぞれ１ＭＢのブロックを４，０９６ブロック含み（合計物理容量は４，０９６ＭＢ）、ユーザが使用できる蓄積容量９０４が４，０００ＭＢなら、作業領域容量９０６は９６ＭＢである。この例で、製造または保守データの記録等、いくつかのブロックが他の機能に使われるなら、作業領域容量９０６は９６ＭＢを若干下回ることになる。
【００３６】
蓄積容量９０４はユーザにとって使用可能な最大許容容量を指し、必ずしも一時点における瞬間的な使用可能な容量を指さない。メモリシステム１０２は、使われていない蓄積容量を作業領域容量として使用することにより、現在使われていない蓄積容量を活用し性能を向上させることができる。例えば、合計物理容量が４，０９６ＭＢのデバイスでユーザが３，０００ＭＢ蓄積した場合、メモリシステム１０２はその時点で１，０９６ＭＢを作業領域として使用できる。ただし、蓄積容量９０４は常に４，０００ＭＢであり、瞬間的なメモリ使用の変動にかかわりなく作業領域容量９０６は常に高々９６ＭＢである。
【００３７】
合計容量９０２に対する蓄積容量９０４の量はメモリシステム１０２の書き込み性能に影響をおよぼすことがある。書き込み性能はメモリシステム１０２のバースト書き込み速度および／またはサステインド書き込み速度を含むことがある。蓄積容量９０４が増加すると使用可能な作業領域容量９０６は少なくなる。着信データが書き込まれる使用可能なホワイトブロックを確保するため、より多くのガーベッジコレクション操作が必要となる。ガーベッジコレクションが行われるブロックを検出する際、メモリシステム１０２は通常、移動しなければならない有効データの量を減らすため、有効ページ数が少ないブロックを見つけようとする。蓄積データのランダムなアドレシングのため、そして着信データがデータのアドレスにかかわりなく順次ブロックに書き込まれるため、作業領域容量９０６が比較的小さいとブロックの有効ページ数が多くなり、用済みページ数が少なくなる可能性がある。この場合は有効ページを移すために行われる書き込み操作の回数が多くなる。
【００３８】
逆に、蓄積容量９０４が減少すると使用可能な作業領域容量９０６が多くなり、ガーベッジコレクション操作の回数は減る。ガーベッジコレクションが行われるブロックでは有効ページ数が少なくなり、用済みページ数が多くなる。このため使用可能な作業領域容量９０６が多ければ、有効ページを移すために行われる書き込み操作の回数は減る。
【００３９】
非限定的な例として、メモリシステム１０２の合計容量９０２が１００ＧＢで、蓄積容量９０４は９９ＧＢに設定され、作業領域容量９０６は１ＧＢに設定されると仮定する。蓄積容量９０４が一杯になっていないときのメモリシステム１０２の純書き込み性能を１００ＭＢ／秒と仮定する。ただし、書き込み性能は、蓄積容量９０４が埋められていくにつれ変化する。蓄積容量９０４が一杯で、書き込むべき着信データが受信されると、着信データを蓄積するためにブロックに対してガーベッジコレクションを行う必要がある。
【００４０】
合計容量９０２に対して作業領域容量９０６が少ないため、ブロック内の用済みページ数も少なくなることが見込まれる。例えば、ブロック内の１２８ページ中１０ページが用済みページとなる。蓄積容量９０４がほぼ一杯のときには全てのブロックが使用中となり、使用できるホワイトブロックがなくなるため、用済みページ数がこのような数になることが見込まれる。着信入力データが論理アドレス空間でランダムにアドレスされる場合は特に、ピンクブロックの用済みページがごく僅かになる可能性は高い。
【００４１】
用済みページが１０ページあるブロックに対してガーベッジコレクションを行う場合は、残りの１１８の有効ページを移す必要がある。したがって、着信データを蓄積するには合計１１９回の書き込み操作が必要となる。つまり、有効ページを移してホワイトブロックを作るための書き込み操作１１８回と、ホワイトブロックに着信データを蓄積するための書き込み操作１回が必要となる。メモリシステム１０２の実効書き込み性能は、純書き込み性能（１００ＭＢ／秒）を着信データの蓄積にかかる書き込み操作数（１１９）で割ったものに等しく、この例では０．８４ＭＢ／秒になる。
【００４２】
対照的に、合計容量９０２に対する蓄積容量９０４の量が少ないと、メモリシステム１０２の実効書き込み性能は向上しうる。ここでも合計容量９０２は１００ＧＢ、蓄積容量９０４は５０ＧＢ、作業領域容量９０６は５０ＧＢと仮定する。前の例と同様に、蓄積容量９０４が一杯で、書き込むべき着信データが受信されると、着信データを蓄積するためにブロックに対してガーベッジコレクションを行う必要がある。この例では、合計容量９０２に対して作業領域容量９０６が多いから、ブロック内の用済みページ数は前の例より多くなることが見込まれる。例えば、ブロック内の１２８ページ中７４ページが用済みページとなる。この例で、蓄積容量９０４が一杯になると合計容量は５０％フルになるから、用済みページ数がこのような数になることが見込まれる。この場合、ピンクブロックは平均で６４の有効ページと６４の用済みページにより５０％フルになる。前の例を続け、ガーベッジコレクションが行われる可能性が最も高いピンクブロックの用済みページ数は平均６４ページより１０ページ多く、７４の用済みページとなる。
【００４３】
用済みページが７４ページあるブロックに対してガーベッジコレクションを行う場合は、残りの５４の有効ページを移す必要がある。したがって、着信データを蓄積するには合計５５回の書き込み操作が必要となる。つまり、有効ページを移してホワイトブロックを作るための書き込み操作５４回と、ホワイトブロックに着信データを蓄積するための書き込み操作１回が必要となる。この例の実効書き込み性能は、純書き込み性能（１００ＭＢ／秒）を着信データの蓄積にかかる５５回の書き込み操作数で割ったものに等しく、１．８２ＭＢ／秒になる。作業領域容量９０６の増加により、この例の実効書き込み性能は前の例より向上する。
【００４４】
メモリシステム１０２がアイドル状態のときにガーベッジコレクションやその他のハウスキーピング操作を実行する場合は、大きい作業領域容量９０６による実効書き込み性能をさらに向上させることができる。前述した部分的に用済みのブロックに対するバックグラウンドフラッシュ操作は、着信データの書き込みに使用できるホワイトブロックを大量に作る。書き込みに使用できるブロックが既にあるなら、新規データが着信するときに必ずしもガーベッジコレクションを行う必要はない。この場合、アイドル状態のときに行われるバックグラウンドフラッシュ操作によって片付けられたホワイトブロックがある限りは、実効書き込み性能は純書き込み性能に接近する。大きい作業領域容量９０６には、高速バースト性能によりサポートされるデータバーストの長さを増加させる効果もある。
【００４５】
蓄積容量９０４と書き込み性能レベルはメモリシステム１０２への入力により設定することができる。あるいは、作業領域容量９０６、書き込み性能レベル、および／または作業領域容量９０６に対する蓄積容量９０４の比を入力により設定することができる。この入力はソフトウェアコマンドかあるいはハードウェア設定である。蓄積容量、作業領域容量、書き込み性能レベル、および／または比を異なる設定に構成することにより、書き込み性能と蓄積容量９０４とのトレードオフにより所望の書き込み性能レベルを達成できる。いくつもの異なる書き込み性能レベルを使用できる。蓄積容量、作業領域容量、書き込み性能レベル、および／または比を設定するソフトウェアコマンドは、ホスト１００からメモリシステム１０２へ送信されるコマンドを含む。ハードウェア設定１１６は、スイッチ、ジャンパ、または他の適切なコントロールを含む。
【００４６】
所望の設定を含む入力が受信された後には、メモリシステム１０２のコントローラが所望の設定に応じて蓄積可能な最大データ量に蓄積容量９０４を構成しうる。コントローラがホストに使用を許可する論理アドレス空間を所望の設定に整合されるように設定でき、コントローラは有効論理アドレス空間以外の論理アドレスをホストが使用することを禁止する。
【００４７】
ソフトウェアまたはハードウェアによる蓄積容量、作業領域容量、書き込み性能レベル、および／または比の設定は、メモリシステム１０２をフォーマットするときおよび／またはフォーマットの後に、例えばメモリシステム１０２の正常動作中に実行できる。一実施形態では、正常動作中に設定を行う場合に蓄積容量９０４を現在の容量から増加させることだけを許可する。この場合は正常動作中に蓄積容量９０４を減少させる試みが阻止され、以前の蓄積容量９０４が維持され、低い蓄積容量には設定されない。この場合、メモリシステム１０２のコントローラは蓄積容量９０４を減少させる試みを無視する。こうすることで、メモリシステム１０２の蓄積容量９０４部分に既に書き込まれているデータが失われたり壊れたりすることはない。
【００４８】
メモリシステム１０２は、一実施形態において、蓄積容量、作業領域容量、書き込み性能レベル、および／または比の設定にかかわりなく１セル当たり同一数のビットを蓄積する。例えば、メモリシステム１０２は、１セル当たり単一ビットのデータまたは１セル当たり複数ビットのデータをそれぞれ収容できるシングルレベルセル（ＳＬＣ）またはマルチレベルセル（ＭＬＣ）を含むことがある。ただし、蓄積容量９０４および作業領域容量９０６を変えることによって一定の書き込み性能レベルを持つようにメモリシステム１０２を構成することは、セルの蓄積ビット数を変えることに依存しない。
【００４９】
メモリシステム１０２のパーティションが複数ある場合のメモリ容量の編成例を図１０に示す。それぞれのパーティションには合計容量１００４および１００６があり、それぞれの合計容量１００４および１００６には蓄積容量１００８および１０１２と作業領域容量１０１０および１０１４とがある。ホストシステム１００は、蓄積容量１００８および１０１２を持つデータ蓄積領域の一方または両方でデータを読み書きする。作業領域容量１０１０および１０１４は、ガーベッジコレクション空間および／または書き込まれる着信データのバッファとして使用できる。メモリシステム１０２には、合計容量、蓄積容量、および作業領域容量を持つパーティションをいくらでも含めることができる。
【００５０】
合計容量１００４および１００６に対する蓄積容量１００８および１０１２はパーティションごとに設定できる。既に述べたように、この設定はメモリシステム１０２への入力によって、例えばソフトウェアコマンドによって、あるいはハードウェア設定によって構成できる。各パーティションの蓄積容量１００８および１０１２は同じか、さもなければ異なり、各パーティションの作業領域容量１０１０および１０１４は同じか、さもなければ異なり、パーティションの書き込み性能レベルは、蓄積容量１００８および１０１２と作業領域容量１０１０および１０１４とに応じて変化する。パーティションが１つの実施形態と同様に、それぞれのパーティションで蓄積容量１００８および１００２が増加すると、使用可能な作業領域容量１０１０および１０１４は少なくなる。データが書き込まれるホワイトブロックを確保するには、より多くのガーベッジコレクション操作が必要となる。逆に、蓄積容量１００８および１０１２が減少すると、使用可能な作業領域容量１０１０および１０１４が多くなり、ガーベッジコレクション操作の回数は減る。使用可能な作業領域容量１０１０および１０１４が多ければ、有効ページを移すために行われる書き込み操作の回数は減る。
【００５１】
蓄積容量はパーティションごとに異なることがあるため、書き込み性能レベルはパーティションによって異なることがある。このため、着信データは、所望の書き込み性能に応じて一方のパーティションまたはもう一方のパーティションへ書き込まれる。例えば、着信データが至極ランダムにアドレスされたデータを含む場合は、作業領域容量の増加により蓄積容量が小さいパーティションへ高い書き込み性能レベルにより着信データを書き込むことができる。各パーティションは同じ合計容量を有する必要がないため、高性能の比較的小さいパーティションと低性能の比較的大きいパーティションを作ることができる。このようにしてメモリシステムは至極ランダムなアドレスによる入力データを受信でき、蓄積容量全体に対して増加された作業領域容量を必要としない。
【００５２】
図１１は、一実施形態によりメモリデバイスの書き込み性能モードを設定する方法１１００を示す流れ図である。書き込み性能モードはメモリデバイスの蓄積容量に対応させることができる。作業領域容量はメモリデバイスの合計容量の残りの部分を構成する。蓄積容量はデータを蓄積するために使用でき、作業領域容量はガーベッジコレクションやその他のハウスキーピング操作に使用できる。書き込み性能モードはメモリデバイスのバースト書き込み速度かサステインド書き込み速度に対応させることができる。蓄積容量が増加するとメモリデバイスの書き込み性能は低下し、蓄積容量が減少するとメモリデバイスの書き込み性能は向上する。
【００５３】
ステップ１１０２では、メモリが、所望の蓄積容量、作業領域容量、書き込み性能レベル、および／またはメモリデバイスの作業領域容量に対する蓄積容量の比を設定する入力を受信する。この入力は、ホスト上で実行するアプリケーションからのソフトウェアコマンドとして、あるいは例えばジャンパまたはスイッチ設定等のハードウェア設定として受信される。ステップ１１０４ではメモリデバイスがフォーマット済みか否かを判断する。メモリデバイスがフォーマット済みか否かによって蓄積容量を増加および／または減少させるか否かが決まる。メモリがフォーマット済みなら、方法１１００はステップ１１０６へ続く。
【００５４】
ステップ１１０６では、ステップ１１０２で受信した入力がメモリデバイスの蓄積容量の減少を試みるものであるか否かを判断する。入力が蓄積容量の減少を試みるものなら、方法１１００は完了する。蓄積容量により指定されたデータ蓄積領域には既にデータが蓄積されているかもしれないため、データの損失や破壊を防ぐため、メモリデバイスがフォーマットされた後には蓄積容量を減少させるべきではない。ただし、ステップ１１０２で受信した入力がステップ１１０６において蓄積容量の増加または維持を試みるものなら、ステップ１１０８で所望の蓄積容量が設定され、方法１１００は完了する。ステップ１１０４でメモリがフォーマットされていなければ、ステップ１１０８で所望の蓄積容量が設定され、方法１１００は完了する。メモリが、蓄積容量、作業領域容量、または性能設定を各々有する複数のパーティションを含む場合は、パーティションごとに方法１１００を実行できる。
【００５５】
メモリデバイスの書き込み性能モードを設定するシステムおよび方法を開示した。書き込み性能モードは、メモリデバイスの合計容量に対するメモリデバイスの蓄積容量を変えることによって設定される。ソフトウェアコマンドまたはハードウェア設定を受信することにより、所望の書き込み性能モードを設定できる。蓄積容量は、メモリデバイスがフォーマット済みか否かに応じて変えることができる。蓄積容量が減少するとメモリデバイスの作業領域容量が増加し、書き込み性能は向上する。逆に、蓄積容量が増加すると作業領域容量が減少し、書き込み性能は低下する。
【図１】
0005580311.tif 000002
【図２】
0005580311.tif 000003
【図３】
0005580311.tif 000004
【図４】
0005580311.tif 000005
【図５】
0005580311.tif 000006
【図６】
0005580311.tif 000007
【図７】
0005580311.tif 000008
【図８】
0005580311.tif 000009
【図９】
0005580311.tif 000010
【図１０】
0005580311.tif 000011
【図１１】
0005580311.tif 000012