(57)【要約】  １セル当り単一ビットＮＡＮＤフラッシュメモリデバイスをエミュレートする１セル当り多ビットＮＡＮＤフラッシュメモリデバイスのコントローラを開示する。コントローラは、ＮＡＮＤホストデバイスからホストデータを受信するホストＮＡＮＤインターフェイスと、ホストデータに補足データを統合することによりＮＡＮＤフラッシュメモリデバイスのＮＡＮＤフラッシュメモリセルアレイのデバイスページに記憶可能なデバイスデータを作成するデータ統合部とを含む。コントローラはデバイスデータを作成した後にＮＡＮＤフラッシュメモリセルのデバイスページにデバイスデータを書き込む。コントローラはまた、データ読み出し操作を実行するときにデバイスデータからホストデータを解析するデータ解析部を含む。コントローラは、データ書き込み操作を実行するときに、必要に応じて、データ解析部を使用してデバイスデータから補足データを解析しデバイスデータを作成する。
2011508357.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリデバイスにホストデータを書き込む方法であって、
ａ）個別に書き込み可能なデバイスページにグループ化されたＮＡＮＤフラッシュメモリセルアレイにホストデータを書き込む書き込み命令を、フラッシュメモリデバイスのコントローラにより、ホストデバイスから受信するステップと、
ｂ）１つ以上の前記デバイスページに記憶可能なデバイスデータを作成するため、前記コントローラにより前記ホストデータに補足データを統合するステップと、
ｃ）前記コントローラにより１つ以上の前記デバイスページに前記デバイスデータを書き込むステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記補足データは、前記ホストデバイスから受信され、かつ前記フラッシュメモリデバイスのキューに投入されている別のホストデータである方法。
【請求項３】
請求項１記載の方法において、
前記補足データは、他のデバイスデータの一部として予め前記ＮＡＮＤフラッシュメモリセルアレイに記憶されていて、かつそこから解析されるホストデータである方法。
【請求項４】
請求項１記載の方法において、
前記デバイスページはブロックにグループ化され、各ブロック内で論理的観点から逐次書き込まれていくため、それらの物理アドレスは必ずしも連続しない方法。
【請求項５】
請求項１記載の方法において、
前記ホストデータは、パーシャルページプログラミング方式を用いてホストデータを書き込む前記ホストデバイスに応じて、擬似パーシャルページプログラミング方式を用いて前記ＮＡＮＤフラッシュメモリセルアレイに前記コントローラにより書き込まれる方法。
【請求項６】
請求項５記載の方法において、
前記コントローラによる前記擬似パーシャルページプログラミング方式を用いることは、前記補足データとしてダミーデータを用いることを含む方法。
【請求項７】
請求項１記載の方法において、
前記ホストデータは、書き込み済みデバイスページに隣接しないデバイスページに前記コントローラにより書き込まれる方法。
【請求項８】
フラッシュメモリデバイスからホストデータを読み出す方法であって、
ａ）個別に読み出し可能なデバイスページにグループ化されたＮＡＮＤフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスページに記憶されているホストデータを読み出す読み出し命令を、ホストデバイスから受信するステップと、
ｂ）前記デバイスデータから前記ホストデータを解析するステップと、
ｃ）前記解析されたホストデータを前記ホストデバイスへ送信するステップと、
を含む方法。
【請求項９】
フラッシュメモリデバイスからホストデータを消去する消去命令を実行する方法であって、
ａ）個別に消去可能なデバイスブロックにグループ化されたＮＡＮＤフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスブロックに記憶されているホストデータを消去する消去命令を、ホストデバイスから受信するステップと、
ｂ）前記ホストデータを消去済みとマークするステップと、
ｃ）前記ホストデータが消去されたことを伝えるメッセージを前記ホストデバイスへ送信するステップと、
を含む方法。
【請求項１０】
請求項９記載の方法において、
ｄ）前記ホストデータを含む前記デバイスブロックを消去するステップをさらに含む方法。
【請求項１１】
フラッシュメモリデバイス用コントローラであって、
ａ）ホストデバイスからホストデータを受信するように構成されたホストＮＡＮＤインターフェイスと、
ｂ）前記ホストデータに補足データを統合することでデバイスデータを作成し、かつ前記フラッシュメモリデバイスのＮＡＮＤフラッシュメモリセルアレイのデバイスページに前記デバイスデータを書き込むように構成されたデータ統合部と、
を備えるコントローラ。
【請求項１２】
請求項１１記載のコントローラにおいて、
前記補足データは、前記ホストデバイスから受信され、かつ前記ＮＡＮＤフラッシュメモリセルアレイに記憶するために前記フラッシュメモリデバイスのキューに投入されている別のホストデータであるコントローラ。
【請求項１３】
請求項１１記載のコントローラにおいて、
ｃ）デバイスデータから補足データを解析するように構成されたデータ解析部をさらに備えるコントローラ。
【請求項１４】
請求項１３記載のコントローラにおいて、
前記補足データは、デバイスデータから解析される別のホストデータであるコントローラ。
【請求項１５】
請求項１２記載のコントローラにおいて、
前記データ解析部は、所定のホストデータを読み出すコマンドを前記ホストデバイスから受信すると、デバイスデータから前記所定のホストデータを解析するようにさらに構成されるコントローラ。
【請求項１６】
請求項１１記載のコントローラにおいて、
前記デバイスページは、デバイスブロックにグループ化され、前記データ統合部は、各ブロック内でデータを論理的観点から逐次デバイスページに書き込むようにさらに構成されるため、それらの物理アドレスは必ずしも連続しないコントローラ。
【請求項１７】
請求項１１記載のコントローラにおいて、
所定のホストデータを消去する命令を前記ホストデバイスから受信すると、前記所定のホストデータは前記コントローラにより「消去済み」とマークされ、前記所定のホストデータが消去されたことを伝えるメッセージが前記ホストデバイスへ送信されるコントローラ。
【請求項１８】
請求項１１記載のコントローラにおいて、
ｄ）パーシャルページプログラミング方式を用いてホストデータを書き込む前記ホストデバイスに応じて、擬似パーシャルページプログラミング方式を用いて前記フラッシュメモリセルアレイに前記ホストデータを書き込むように構成された制御回路をさらに備えるコントローラ。
【請求項１９】
請求項１８記載のコントローラにおいて、
前記擬似パーシャルページプログラミング方式を用いるにあたって、前記制御回路は前記補足データとしてダミーデータを用いるコントローラ。
【請求項２０】
請求項１８記載のコントローラにおいて、
前記制御回路は、所定のホストデータを消去する命令を前記ホストデバイスから受信すると、前記所定のホストデータを消去済みとマークし、かつ前記所定のホストデータが消去されたことを伝えるメッセージを前記ホストデバイスへ送信するように構成されるコントローラ。
【請求項２１】
請求項１１記載のコントローラにおいて、
前記ホストデータは１セル当りＭビットのデータを記憶するメモリセルアレイ向けにフォーマットされ、前記フラッシュメモリデバイスのメモリセルアレイは１セル当りＮビットのデータを記憶し、ＮとＭは整数であり、ＮはＭより大きいコントローラ。
【請求項２２】
請求項２１記載のコントローラにおいて、
Ｎは２に等しく、Ｍは１に等しいコントローラ。
【請求項２３】
請求項２１記載のコントローラにおいて、
Ｎは４に等しく、Ｍは１に等しいコントローラ。
【請求項２４】
請求項２１記載のコントローラにおいて、
Ｎは４に等しく、Ｍは２に等しいコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはフラッシュメモリデバイスに関し、より具体的には、ある種のＮＡＮＤフラッシュメモリデバイス（１セル当り単一ビット（「ＳＢＣ」）フラッシュメモリデバイス等）を別種のＮＡＮＤフラッシュメモリデバイス（１セル当り多ビット（「ＭＢＣ」）フラッシュメモリデバイス等）でエミュレートすることに関する。
【背景技術】
【０００２】
フラッシュメモリデバイスは、不揮発性メモリデバイスの一種で、長年にわたり知られている。フラッシュメモリデバイスのメモリセルアレイを構成する各メモリセルは、フローティングゲート領域と、ドレイン領域と、ソース領域とを通常具備する半導体トランジスタによって実装される。メモリセルは２つ以上の異なる状態をとることができ、それらの状態はフローティングゲートの中に記憶される電荷の量によって実現される。つまり、フローティングゲートに記憶される異なる電荷量を各状態に対応付ける。実際にメモリセルを使用するには、それぞれの状態に２進値を対応付ける。
【０００３】
フラッシュメモリデバイスの１種に「１セル当り単一ビット」（ＳＢＣ）として一般に知られる技術に基づくものがある。これは、ＳＢＣメモリデバイスの各メモリセルに１ビットが記憶されることを意味する。１セル当り１ビットを記憶するということは、２通りある状態のいずれか一方の状態をとるように（２通りある状態のいずれか一方を記憶するように）セルが構成されることを意味する。通常、一方の状態はセルのフローティングゲートに記憶されるゼロ電荷に対応する。これは「書き込まれていない」セル状態であり、通常は２進数「１」に相当する。通常、もうひとつの状態はフローティングゲート内のある程度の負電荷に対応する。これは「書き込み済み」のセル状態であり、通常は２進数「０」に相当する。フローティングゲートに負電荷があるとセルのトランジスタのしきい値電圧が増加し、結果的に、トランジスタを導通させるにあたってトランジスタのコントロールゲートに印加しなければならない電圧が増加する。
【０００４】
フラッシュメモリデバイスは３つの操作を実行できる。つまり、メモリセルにデータを書き込む（歴史的な理由からしばしば「プログラムする」という）操作と、メモリセルからデータを読み出す操作と、メモリセルからデータを消去する操作とが可能である。これらの操作は外部のホストデバイスから始まるが、フラッシュメモリデバイスのコントローラによって処理される。メモリセルに２進数（「０」または「１」）を書き込むには、トランジスタのフローティングゲートで電荷を変化させ、セルのしきい値電圧を変える。メモリセルに記憶された２進数を読み出すには、セルのしきい値電圧レベルをチェックする。このしきい値電圧が高い状態にあるならば、ビット値を論理値「０」と解釈する。しかし、しきい値電圧が低い状態にあるならば、ビット値を論理値「１」と解釈する。実際にはセルのしきい値電圧を正確に読み出す必要はなく、セルが現在２つの状態のどちらにあるかを正確に識別すればよい。それには、２つの状態の中間にあたる基準電圧にセルのしきい値電圧を比較し、セルのしきい値電圧がこの基準値より低いか高いかを判断しなければならない。
【０００５】
多くのタイプのフラッシュメモリ、例えばＮＡＮＤフラッシュメモリでは、書き込み操作と消去操作を個々のメモリセルに対して行うのではなく、メモリセルの集団に対して行う。書き込み操作は比較的小さい「ページ」（ＮＡＮＤフラッシュメモリデバイスの場合は通常５１２バイト、２キロバイト、または４キロバイト）に対して行われ、消去操作はページより大きい「ブロック」（ＮＡＮＤフラッシュメモリデバイスの場合は通常３２キロバイトか１２８キロバイト）に対して行われる。
「１セル当り多ビット」（ＭＢＣ）として一般に知られる技術に基づくタイプのフラッシュメモリデバイスもある。ＭＢＣメモリデバイスでは、それぞれのメモリセルにＮ個のビット（Ｎ≧２）が記憶される。つまり、ＭＢＣメモリセルは２N通りの状態を記憶するように構成される。例えば２ビットを記憶するメモリセルは４通りの状態を記憶し、それぞれの状態には４つの２進値「００」、「０１」、「１０」、「１１」のいずれか１つが対応付けられている。
セルの状態はセルのしきい値電圧によって表されるため、２ビットを記憶するＭＢＣセルなら４通りのしきい値電圧範囲をサポートする。ＳＢＣセルと同様に、ＭＢＣセルの各状態は、実際にはひとつの電圧ではなく電圧範囲である。セルの内容（記憶された２進値）を読み出すときには、セルのしきい値電圧に適切な電圧範囲を適切に対応付けなければならない。例えば、Harariの米国特許第５，４３４，８２５号（特許文献１）では、ＭＢＣフラッシュデバイスが説明されている。
【０００６】
フラッシュメモリ技術の概念が最初に考案された当時、ＭＢＣ  ＮＡＮＤフラッシュデバイスは比較的珍しく、ＳＢＣデバイスが標準だった。したがって、フラッシュメモリ技術を利用する従来のホスト設計はＳＢＣ向けで、ＭＢＣデバイスには適合しない。このため、ＭＢＣ  ＮＡＮＤ技術が成熟し、ＳＢＣデバイスより費用効果的で（少なくとも１ドル当りのメガバイト数の点では費用効果的）、既に市販されてはいるが、ＳＢＣ対応ホストデバイスではＭＢＣベースのＮＡＮＤデバイスを使用できないため、同じ物理的面積でもＳＢＣデバイスよりＭＢＣデバイスのほうが面積当りの記憶容量が大きいにもかかわらず、ＭＢＣ技術のさらなる普及は妨げられている。ＮＡＮＤインターフェイスには規格がなく、ストレージデバイスの供給元で使用するＮＡＮＤインターフェイスは供給元によって種類が異なることがあり、事実異なっているから、たとえ１セル当りのビット数が同じメモリセルでも、供給元が異なれば技術的なミスマッチがほかにも生じるおそれがある。
【０００７】
ＳＢＣデバイスとＭＢＣデバイスは数々の技術的態様において本質的に異なるため、適合性の問題を克服する（ＭＢＣフラッシュデバイスとＳＢＣ対応ホストが互いにやり取りできるようにする）のは容易ではない。例えば、データページとデータブロックのサイズはＳＢＣデバイスとＭＢＣデバイスとで異なる。また、ＳＢＣセルの２状態間の電圧間隔（「エラーマージン」）はＭＢＣの２つの近傍状態間のエラーマージンより大きいため、ＳＢＣセルのほうが信頼性の水準が高く、コンピュータシステムの起動にはＳＢＣセルを使うのが普通である。比較的低い信頼性の埋め合わせとして、ＭＢＣデバイスではより強力な誤り訂正方式を採用している。例えば、より強力な誤り訂正符合（ＥＣＣ）を採用している。
【０００８】
ＳＢＣフラッシュメモリデバイスのほうが、信頼性が高く応答が速いため、ＳＢＣの能力をＭＢＣに組み合わせる取り組みがこれまでなされてきた。しかし、そのような改善への取り組みは、ＭＢＣフラッシュメモリデバイスの特定の技術的態様に限ったものであった。一部の先行技術では起動の態様に取り組んでいる。つまり、「純粋な」ＳＢＣ技術とほぼ同等の起動信頼性を得るため、ＭＢＣフラッシュメモリデバイスの特定領域に初期化（起動）プログラムを記憶することを提案している。他の先行技術には信頼性の態様に取り組み、強力な誤り訂正メカニズムを提供するものもある。応答速度の態様に取り組み専用のＳＬＣキャッシュをＭＢＣデバイスに用意するものもある。しかし、先行技術には、ＳＢＣデータを通常のＭＢＣデータとしてＭＢＣフラッシュメモリデバイスに書き込むことや、ＭＢＣデータの中からＳＢＣデータを読み出すことを教示するものはない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第５，４３４，８２５号
【発明の概要】
【００１０】
以下、例示的な実施形態とその態様をシステム、ツール、方法との関係で説明、例証するが、これらは典型的かつ例証的なものであって範囲を制限するものではない。
本開示の一部として、ホストデータをフラッシュメモリデバイスに書き込む方法が提供され、この方法は、個別に書き込み可能なデバイスページにグループ化されたＮＡＮＤフラッシュメモリセルアレイにホストデータを書き込む書き込み命令を、ホストデバイスからフラッシュメモリデバイスのコントローラにより受信することを含む。コントローラは、ホストデータに補足データを統合することにより１つ以上のデバイスページに記憶可能なデバイスデータを作成し、そのデバイスデータを１つ以上のデバイスページに書き込む。
【００１１】
本開示の一部として、フラッシュメモリデバイスからホストデータを読み出す方法が提供され、この方法は、個別に読み出し可能なデバイスページにグループ化されたＮＡＮＤフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスページに記憶されているホストデータを読み出す読み出し命令を、ホストデバイスから受信するステップと、デバイスデータからホストデータを解析するステップと、解析されたホストデータをホストデバイスへ送信するステップとを含む。
【００１２】
本開示の一部として、フラッシュメモリデバイスからホストデータを消去する消去命令を実行する方法が提供され、この方法は、個別に消去可能なデバイスブロックにグループ化されたＮＡＮＤフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスブロックに記憶されているホストデータを消去する消去命令を、ホストデバイスから受信するステップと、ホストデータを消去済みとマークするステップと、ホストデータが消去されたことを伝えるメッセージをホストデバイスへ送信するステップとを含む。この方法は、ホストデータを収容するデバイスブロックを実際に消去するステップをさらに含む。
【００１３】
本開示の一部として、書き込む方法と、読み出す方法と、消去する方法とを実現するフラッシュメモリデバイス用コントローラが提供される。このコントローラは、ＮＡＮＤホストデバイスからホストデータを受信するホストＮＡＮＤインターフェイスと、ホストデータに補足データを統合することでデバイスデータを作成するデータ統合部とを含む。コントローラは、フラッシュメモリデバイスのＮＡＮＤフラッシュメモリセルアレイのデバイスページにデバイスデータを書き込む。コントローラはまた、データ書き込み操作を実行するときに補足データを解析し、かつデータ読み出し操作を実行するときにデバイスデータからホストデータを解析するデータ解析部を含む。
【００１４】
ホストデータは、１セル当りＭビットのデータを記憶するＮＡＮＤメモリセルアレイ向けにフォーマットされ、ＮＡＮＤフラッシュメモリセルは、１セル当りＮビットのデータを記憶するように設計され、ＮとＭは整数であり、ＮはＭより大きい。一例示的な実施形態において、Ｎは２に等しく、Ｍは１に等しい。別の例示的な実施形態において、Ｎは４に等しく、Ｍは１に等しい。さらに別の例示的な実施形態において、Ｎは４に等しく、Ｍは２に等しい。
【００１５】
図を参照し以降の詳細な説明を精査することにより、前述した典型的な態様と実施形態のほかにさらなる態様と実施形態が明らかになる。
参照する図には典型的な実施形態が描かれている。ここに開示する例示的な実施形態は制限ではなく例証のためのものである。しかし、以降の詳細な説明を添付の図と併せて読むことにより開示の内容をより良く理解できるはずである。
図解を簡潔明瞭にするために、図に見られる要素が必ずしも一定の縮尺で描かれていないことが理解されるはずである。また、同様の要素、対応する要素、類似する要素を指示するために図の中で参照番号が適宜繰り返されることがある。
【図面の簡単な説明】
【００１６】
【図１】本開示の一例示的な実施形態によるフラッシュメモリデバイスを概略的に示す。
【図２】本開示の一例示的な実施形態によるフラッシュメモリデバイスによりホストコマンド列を処理する典型的な方法を示す。
【図３】本開示の一例示的な実施形態による擬似ＰＰＰの使用を示す。
【発明を実施するための形態】
【００１７】
添付の特許請求の範囲は、本発明の例示的な実施形態の詳細な説明を参照することにより、より良く理解されるはずである。この説明は、特許請求の範囲の範囲を制限するのではなく、例を提示するためのものである。
前述したように、ＮＡＮＤフラッシュメモリデバイスは個別に扱われるページにデータを記憶するようになっている。ホストデバイスから始まる操作の種類に応じて（すなわち、フラッシュメモリデバイスへのホストデータ書き込み、フラッシュメモリデバイスからのホストデータ読み出し、フラッシュメモリデバイスからのホストデータ消去）、「個別に扱われるページ」は「個別に書き込み可能な」ページか「個別に読み出し可能な」ページを指すことができる。「消去」操作の場合は、データがブロック単位で消去され、それぞれのブロックは数個のページからなる。「ページ」のサイズとブロックのサイズはＮＡＮＤフラッシュメモリデバイスのタイプによって異なり、前述したように、ＮＡＮＤフラッシュメモリデバイスは通常、特定のページサイズとブロックサイズ向けに設計されるため、あるいは少なくとも特定のページサイズとブロックサイズ向けに最適化されるため、様々なサイズのデータページを同じフラッシュメモリデバイスで扱うのは簡単ではない。このため、ある特定のページサイズ向けに設計されたホストデバイスは普通、別のページサイズ向けに設計されたフラッシュメモリデバイスと、少なくとも効率的には、やり取りできない。
【００１８】
通常、ホストデバイスから出る「コマンド列」は、データ（これ以降「ホストデータ」と呼ぶ）と、フラッシュメモリデバイス内の物理ページに対応する論理ページアドレスと、その論理アドレスを使って物理ページにホストデータを書き込むためのフラッシュメモリデバイス向け書き込み命令とを含む。ホスト論理アドレスからデバイスページの物理アドレスへのマッピングを行うには、ホスト論理アドレスを対応するデバイスページの論理アドレスにマッピングし、さらにその後デバイスページの論理アドレスをデバイスページの物理アドレスにマッピングする。これとは別に、「コマンド列」は論理アドレスと、その論理アドレスを使ってフラッシュメモリデバイスの物理ページからホストデータを読み出すためのフラッシュメモリデバイス向け読み出し命令とを含むこともあれば、論理アドレスと、その論理アドレスを使ってフラッシュメモリデバイスからホストデータを消去するための消去命令とを含むこともある。「コマンド列」はまた、管理データと、フラッシュメモリデバイスによって使用されるその他のデータもしくは情報を含むこともある。ホストデバイスからフラッシュメモリデバイスへ転送されるコマンド列のことを、これ以降は「ホストコマンド列」と呼ぶ。ＮＡＮＤフラッシュデバイスのデータはページにグループ化されるから、「ホストデータ」は「ホストページ」にグループ化されると言うこともできる。
【００１９】
図１に、本開示の一例示的な実施形態によるフラッシュメモリデバイス（１０２に示される）を示す。ＮＡＮＤフラッシュメモリシステム１００は、ＮＡＮＤホストデバイス１０１と、ホストデバイス１０１と連絡するＮＡＮＤフラッシュメモリデバイス１０２とを含む。フラッシュメモリデバイス１０２は、ホストインターフェイス（Ｉ／Ｆ）１０５と、コントローラ１０３と、ＮＡＮＤメモリセルアレイ１３０とを含み、このＮＡＮＤメモリセルアレイは１セル当りＮビットのデータを記憶し、Ｎは２以上である。
【００２０】
ホストデバイス１０１は、ホストＩ／Ｆ  １０５を通じてフラッシュメモリデバイス１０２へホストコマンド列を転送（１０４に示される）する。ホストコマンド列はフラッシュメモリデバイス１０２に記憶するホストデータを含み、このホストデータは、デバイスページのサイズより小さいホストサイズのページにまとめられている。例えば、ホストデバイス１０１がＳＢＣフラッシュメモリデバイスとやり取りするように設計されたＳＢＣデバイスならば、ホストデータのサイズやその他の特性はＳＢＣデータのものとなり、ホストコマンド列はＳＢＣコマンド列になるか、またはそれに似たものとなる。ＳＢＣページのサイズは通常４キロバイトに満たない（例えば、２キロバイト）。
【００２１】
メモリセルアレイ１３０に記憶できるデータはこれ以降「デバイスデータ」と呼び、メモリセルアレイ１３０の中でデバイスデータの記憶に用いるメモリセル群はこれ以降「デバイスページ」と呼ぶ。デバイスページには、メモリセルアレイ１３０の中でページの相対的位置を示す物理アドレスと、ホストデバイス１０１から見たページの相対的位置を示す論理アドレスがある。通常は、翻訳表を用いて１タイプのアドレスを別タイプのアドレスに翻訳する。
【００２２】
例えば、フラッシュメモリデバイスがＭＢＣデバイスならば、デバイスページのサイズやその他の特性はＭＢＣページのサイズや特性となり、同様に、コントローラ１０３によって内部で使用されるデバイスコマンド列は、ＭＢＣ技術に準拠するように構築もしくはフォーマットされる。ＭＢＣページのサイズは通常、少なくとも４キロバイトである。関係する技術（例えば、ＳＢＣ、ＭＢＣ等）が何であれ、本開示の文脈ではホストデータがデバイスデータより小さいことに留意するべきである。
【００２３】
フラッシュメモリデバイスは通常、メモリデバイスとホストデバイスとのデータ交換や様々な内部処理（例えば、ウェアレベリング）を管理する一体形フラッシュコントローラ（図１に示されていない）を含む。フラッシュメモリデバイスとホストデバイスとで使用するページとブロックのサイズが同じならば、フラッシュメモリデバイスは、図１のコントローラ１０３等のコントローラを使わずにホストデバイスとやり取りできる。しかし、本開示は、それぞれ異なる技術（例えば、ＳＢＣ対ＭＢＣ）に準拠するホストデバイス１０１とフラッシュメモリデバイス１０２に当てはまるほか、技術（ＭＢＣ等）は同じであっても使用するＮＡＮＤインターフェイスが合わないホストデバイスとフラッシュメモリデバイスにも当てはまる。前述したように、ホストデバイス１０１がＳＢＣ技術に準拠し、フラッシュメモリデバイス１０２がＭＢＣ技術に準拠することもある。コントローラ１０３が、ホスト１０１とフラッシュメモリデバイス１０２との技術的な食い違いを、以下に述べるような方法で解決する。
【００２４】
コントローラ１０３は、ホストコマンド解析部（「ＨＣＰ」）１１０と、制御回路１５０と、データ統合部１２０と、データ解析部１４０とを含む。ＨＣＰ  １１０は、ホストＩ／Ｆ  １０５へ接続され（１０６に示される）、データ統合部１２０へ接続され（１２１に示される）、かつ制御回路１５０へ接続される（１５１に示される）。ホストデータや場合によってはその他のデータ（ダミーデータ等）を一時的に記憶するため、データ統合部１２０はＲＡＭ  １６０等のランダムアクセスメモリ（「ＲＡＭ」）へ接続できる。データ統合部１２０はデータ解析部１４０へ接続される（１４２に示される）。データ統合部１２０とデータ解析部１４０はＮＡＮＤメモリセルアレイ１３０へ接続される（１３１と１４１にそれぞれ示される）。「ダミーデータ」とは、デバイスページ内の空白を代表する以外何ら意味を持たないデータとしてコントローラ１０３によって識別される特別なデータであり、ホストデバイス１０１等の外部デバイスはこれにアクセスできない。
【００２５】
コントローラ１０３はホストデバイス１０１からホストＩ／Ｆ  １０５を通じてホストコマンド列（例えば、ＳＢＣコマンド列）を受信し、ＳＢＣデータ等のホストデータを処理するように構成される。メモリセルアレイ１３０のデバイスページ操作（例えば、ＭＢＣ操作）に合わせてホストデータを処理するため、ホストコマンド解析部（ＨＣＰ）１１０は、ホストコマンド列からデバイスコマンド列を生成するように構成される。ここで「ホストデータを処理する」とは、フラッシュメモリデバイスに記憶する（書き込む、プログラムする）ホストデータがホストコマンド列の中に実際にあるか、ホストデータが既にフラッシュメモリデバイスに記憶されていてメモリセルアレイ１３０から読み出すか消去する必要がある状況を指す。
【００２６】
ホストコマンド解析部（ＨＣＰ）１１０は、ホストコマンド列をホストオペコード（「ＨＯＣ」）１１１と、ホスト論理アドレス（「ＨＬＡ」）１１２と、ホストデータ１１３とに解析し、さらに（必要に応じ）オペコードをフラッシュメモリデバイス１０２で使えるように翻訳することにより、デバイスコマンド列を生成する。ホストコマンド列から解析されたデータ（ホストデータ）は後述するように処理される。「ホストデータ」はデータ、メタデータ、および／またはデータ処理（書き込み、読み出し、消去）に関連する管理データを指すことがある。
【００２７】
代替の実施形態は、より多くの、より少ない、別の、そうでなくて機能的に同等の、モジュール、構成品、素子を含むことがある。例えば、従来のフラッシュメモリデバイスはフラッシュマネージャを内蔵する。フラッシュマネージャは、着信・発信データや、ウェアレベリング、論理アドレスから物理アドレスへの翻訳、物理アドレスから論理アドレスへの翻訳等の内部処理を管理するコントローラの一種である。図１のコントローラ１０３が独立したデバイスとしてフラッシュマネージャとやり取りすることもあれば、フラッシュマネージャの機能がコントローラ１０３に一体化、内蔵、併合されることもある。ホストインターフェイス１０５は、図１では独立した構成品として示されているが、コントローラ１０３の一部であってもよい。ＲＡＭ  １６０と翻訳表１５４は、図１ではコントローラ１０３の一部として示されているが、コントローラ１０３の外部にあってもよい。
【００２８】
「書き込み」操作
ＨＣＰ  １１０は、ホストオペコード１１１をチェックした後にホストデータをメモリセルアレイ１３０に書き込む書き込み命令がホストコマンド列の中にあると判断し、その書き込み命令がメモリデバイスに適合しないものである場合に、ホストの書き込みコマンドをフラッシュメモリデバイス１０２で使用できる書き込み命令に翻訳する。そうでなければ（すなわち、命令の翻訳が不要であれば）、制御回路１５０はそのホスト書き込み命令を現状のまま利用できる。したがって、ＨＣＰ  １１０は当初の書き込み命令を、または（すなわち、フラッシュメモリデバイス１０２で使用できない場合には）その翻訳を、制御回路１５０へ転送する（１５１に示される）。次に、制御回路１５０はデータ統合部１２０の動作を制御し（１５３に示される）、さらにホストデバイスによって発行された書き込み命令に適合するため、必要であれば、データ解析部１４０の動作も制御する（１５２に示される）ことができる。
【００２９】
参照番号１７０は、受信ホストコマンド列の中でホストデバイス１０１から受け取る典型的なホストデータを示す。オペコード１１１が書き込み命令ならば、コントローラ１０３はホストデータ１７０をメモリセルアレイ１３０に書き込まなければならないということを意味する。この場合、ＨＣＰ  １１０は、ホストデータ１７０、すなわち典型的なホストデータ１１３を処理するためにデータ統合部１２０へ転送する（１２１に示される）。
【００３０】
参照番号１７３、１７４、および１７５は、典型的なデバイスページを示す。これらのデバイスページには、サイズがデバイスページと同じ（すなわち、４ＫＢ）デバイスデータしか書き込めない。あるいはデバイスページとサイズが同じデータしか読み出せない。簡潔を図るために、図１には３つの典型的なデバイスページ（デバイスページ１７３、１７４、および１７５）しか示されていないが、メモリセルアレイ１３０は実際には多数のデバイスページを有する。ホストデータ１７０はデバイスページ（すなわち、デバイスページ１７５）より小さく、ページサイズには様々な技術的事情があるため、現状のままメモリセルアレイ１３０に書き込むことはできず、メモリセルアレイ１３０への書き込みに先立ちコントローラ１０３でこれを処理しなければならない。
【００３１】
ホストデータ１７０（あるいは他の何らかのホストデータ）をメモリセルアレイ１３０に書き込むため、コントローラ１０３のデータ統合部１２０は、メモリセルアレイ１３０にある１つ以上のデバイスページ、例えばデバイスページ１７５に記憶可能なデバイスデータを作成するように構成されている。データ統合部１２０は、ホストデータ１７０に補足データを統合することによってデバイスデータを作る。データ統合処理を完了したデータ統合部１２０は、例えば、新たに作成されたデバイスデータを１つ以上のデバイスページ１７３、１７４、および１７５に書き込む（１３１に示される）。
【００３２】
データ統合部１２０によるホストデータと補足データとの統合にあたっては様々なオプションがある。第１のオプションでは、補足データは、ホストデバイス１０１から受信しフラッシュメモリデバイス１０２のキューに投入されている別のホストデータである。このオプションは、十分な数の新規ホストデータがホストデバイス１０１から受信され、例えばランダムアクセスメモリ（ＲＡＭ）１６０のキューに投入するまで待つことが含まれる。
【００３３】
フラッシュメモリデバイス１０２のキューに十分な数のホストデータが投入されない場合は、第２のオプションを使うことができる。このオプションは、残っている補足データをメモリセルアレイ１３０から読み出すことが含まれる。第２のオプションを促進するため、制御回路１５０はデバイスページ１７３、１７４、および１７５の物理アドレスを必要なだけデータ解析部１４０へ送信する（１５２に示される）。データ解析部１４０はこれらのデバイスページから残っている補足データを読み出すことができる。（この第２のオプションは、フラッシュメモリデバイス１０２のキューに入っているホストデータが不足していない場合にも使用することが可能である。）データ解析部１４０は、物理アドレスによって指定されたデバイスページから該当するデバイスデータを引き出すことによってメモリセルアレイ１３０からデータを読み出す。読み出すべきデータがホストデータならば、データ解析部１４０がデバイスデータからホストデータを解析する。
【００３４】
第３のオプションでは、所定の時間内に新たなホストデータが到着しない場合に限り、メモリセルアレイ１３０から補足データを引き出す。第４のオプションでは、現在受信しているホストデータをメモリセルアレイ１３０内のいずれかのデバイスページ（すなわち、デバイスページ１７３、１７４、１７５か他のデバイスページ）に一時的に記憶し、後ほど追加のホストデータを受信した後に補足データと統合する。
【００３５】
デバイスページの物理アドレスに関していうと、制御回路１５０は、例えば翻訳表１５４を使用して、ある１つのデバイスページに記憶された補足データの存在に気づいた場合には、そのデバイスページ（例えば、デバイスページ１７５）の物理アドレスだけをデータ解析部１４０へ送信すればよい（１５２に示される）。しかし、制御回路１５０は、メモリセルアレイ１３０内の複数のデバイスページに補足データが分散されていることに気づいた場合には、それらのデバイスページに対応する複数の物理アドレスをデータ解析部１４０へ送信する（１５２に示す）。
【００３６】
データ解析部１４０は制御回路１５０から送信された物理アドレスを使ってメモリセルアレイ１３０からデバイスデータを引き出し（１４１に示される）、そこから必要な補足データを解析する。次に、データ解析部１４０はデータ統合部１２０へ補足データを転送し（１４２に示される）、データ統合部１２０は、これをホストデータに統合し、新たなデバイスデータを作成する。次に、制御回路１５０から送信（１５３に示される）された物理アドレスに該当する目標デバイスページ（例えば、デバイスページ１７５）にデータ統合部１２０がデバイスデータを書き込むと（１３１に示される）、「書き込み」命令１１１は完了する。図３との関係で後述するダミーデータが補足データとなることもあるので留意するべきである。つまり、デバイスページに記憶すべきホストデータにはダミーデータを統合することもでき、コントローラ１０３は、このデバイスページにホストデータしか入っていないものとみなす。例えば、デバイスページ１７５にはホストデータ１７６と、ホストデータ１７７と、ダミーデータ１７８とが見られる。この例のデータ統合部１２０はホストデータ１７６を受信し、さらなるホストデータ１７７を待ってからホストデータ１７６とホストデータ１７７の両方をメモリセルアレイのフラッシュメモリセルアレイ１３０に書き込むことにした。データ統合部１２０はさらなるホストデータ（すなわち、ホストデータ１７７）を待っている間、ＲＡＭ  １６０にホストデータ１７６を一時的に保管した。そして、データ統合部１２０はホストデータ１７７を受信し、ホストデータ１７６にホストデータ１７７とダミーデータ１７８を統合した。最後にデータ統合部１２０は、図１に示すように統合済みのデータをデバイスページ１７５に書き込んだ。
【００３７】
デバイスページの物理アドレスをデータ解析部１４０に送信（１５２に示される）し、かつデータ統合部１２０に送信（１５３に示される）する代わりに、制御回路１５０は、デバイスページの物理アドレスを使ってメモリセルアレイ１３０から該当するデバイスデータを読み出し、これをデータ解析部１４０かデータ統合部１２０へ送信することもできる。
【００３８】
「読み出し」操作
受信オペコード１１１が、制御回路１５０によって、「読み出し」命令と解釈される場合に、制御回路１５０は「読み出し」命令を実行するが、このとき制御回路１５０は、メモリセルアレイ１３０の中でホストデータ（これ以降「要求ホストデータ」と呼ぶ）の読み出し先にあたるデバイスページ（これ以降「要求デバイスページ」と呼ぶ）の物理アドレスにホスト論理アドレス１１２を翻訳する。ホストデータはデバイスデータの一部としてデバイスページに記憶されるため、該当するデバイスページに記憶されたデバイスデータから要求ホストデータ（すなわち、読み出すべきホストデータ）を解析しなければならない。そこで制御回路１５０は、要求デバイスページの物理アドレスをデータ解析部１４０へ転送する（１５２に示される）。データ解析部１４０は要求デバイスページの物理アドレスを使って所望のデバイスデータを読み出す（１４１に示される）。データ解析部１４０が引き出したデバイスデータから要求ホストデータを解析し、ホストＩ／Ｆ  １０５を通じてホストデバイス１０１へ要求ホストデータを送信（１４３に示される）すると、それによって「読み出し」コマンド１１１を完了する。
要求デバイスページの物理アドレスをデータ解析部１４０へ送信（１５２に示される）する代わりに、制御回路１５０が要求デバイスページの物理アドレスを使って所望のデバイスデータを取り出し、データ解析部１４０へ送信することもできる。
【００３９】
「消去」操作
受信オペコード１１１が制御回路１５０によって「消去」命令と解釈される場合に、制御回路１５０は「消去」命令を実行する。「ページ」に対して実行される「書き込み」操作や「読み出し」操作と違って、ＮＡＮＤフラッシュデバイスでは「ブロック」単位でデータを消去する。「ホストブロック」は複数のホストページからなり、「デバイスブロック」は複数のデバイスページからなる。したがって、制御回路１５０はホストデータを消去する消去命令を識別する場合に、制御回路１５０は、メモリセルアレイ１３０の中で、消去対象のホストデータを含むデバイスデータを記憶しているデバイスブロックのアドレスを翻訳表１５４で調べる。制御回路１５０は翻訳表１５４の中でそのホストデータを消去済みとマークし、ホストデータが消去されたことを伝えるメッセージをホストデバイス１０１へ送信する。制御回路１５０は、後ほど適当なときに、あるいは都合のよいときに、メモリセルアレイ１３０から実際にホストデータを消去することができる。制御回路１５０はホストデータを実際に消去するにあたって、ホストデータのホスト論理アドレス１１２を、ホストデータが入っているデバイスブロックの物理アドレスに翻訳し、そのデバイスブロックを消去する。
【００４０】
図２は、本開示によるフラッシュメモリデバイスによりホストコマンド列を処理する典型的な方法を示す。図２は、図１と関連して説明され、ホストデバイス１０１がＳＢＣ技術に準拠し、フラッシュメモリデバイス１０２がＭＢＣ技術に準拠すると仮定している。前に説明したように、デバイスに違いを生じさせる様々な技術的態様に配慮しない限り、ＳＢＣホストデバイスとＭＢＣフラッシュメモリデバイスは互いにやり取りできない。ページサイズとブロックサイズの違いのほかに、ＳＢＣフラッシュメモリデバイスでは、新たなデータをページに書き込む前にそのページ全体を消去する。しかし、そのページに十分に大きい空きスペースがあって新規データを書き込めるならば、「消去」ステップは省略される。当該技術分野でパーシャルページプログラミング（「ＰＰＰ」）と一般に呼ばれている機能である。ＳＢＣフラッシュメモリデバイスとは対照的に、ＭＢＣフラッシュメモリデバイスでは常にページへの新規データ書き込みに先立ちページ全体を消去する。加えて、ＳＢＣフラッシュメモリデバイスはデータをページにランダムに書き込むが、ＭＢＣフラッシュメモリデバイスはデータをページに順次書き込む。つまり、データはページ０へ書き込まれ、次にページ１、ページ２へと書き込まれていく。図１との関係で前に説明したように、コントローラ１０３はホストコマンド解析部１１０と、データ統合部１２０と、データ解析部１４０とを使用することによってこれらの技術的違いを解決する。
【００４１】
ステップ２０１では、ＮＡＮＤフラッシュメモリデバイス１０２のコントローラ１０３がホストデバイス１０１からホストコマンド列を受信する（図１に１０４として示す）。この例のホストコマンド列はＳＢＣコマンド列である。ステップ２０２では、ホストコマンド解析部（ＨＣＰ）１１０がＳＢＣコマンド列をＳＢＣオペコード１１１と、ＳＢＣ論理アドレス１１２と、この例ではＳＢＣデータであるホストデータ１１３とに解析する。ステップ２０３では、オペコードが「書き込み」命令か否かをチェックする。ＳＢＣオペコードが「書き込み」命令ならば（２０３にて「Ｙｅｓ（はい）」と示される）、次に、制御回路１５０はステップ２０４で、ＳＢＣデータ１１３に補足データを統合もしくは併合するようにデータ統合部１２０に指示し（１５３に示される）、補足データは他のＳＢＣデータでよく、この統合により、ＭＢＣセルアレイ１３０の１つ以上のデバイスページに記憶可能なデバイスデータ（この例では、ＭＢＣデータ）ができあがる。ＳＢＣデータを含むこのデバイスデータ（すなわち、ＭＢＣデータ）をＭＢＣセルアレイ１３０のデバイスページに書き込むことを制御回路１５０がデータ統合部１２０に指示すると、ステップ２０５でＳＢＣデータが該当するＭＢＣページに書き込まれる。
【００４２】
補足データは、ホストデバイス１０１から受信しフラッシュメモリデバイス１０２のキューに投入されている別のホストデータであることができる。補足データは、他のデバイスデータの一部として予めＮＡＮＤフラッシュメモリセルアレイ１３０に記憶され、そこから解析されるホストデータであることができる。補足データはダミーデータであることができる。書き込み操作についていうと、メモリセルアレイ１３０のデバイスページはブロックにグループ化され、それぞれのブロックの中で論理的観点から逐次書き込まれていくから、デバイスページの物理アドレスは必ずしも連続しない。換言すると、データを、不連続のデバイスページ、散在するデバイスページ、あるいは配置が不規則なデバイスページに書き込むことができ、不連続のデバイスページ、散在するデバイスページ、あるいは配置が不規則なデバイスページに書き込まれたデータは、あたかも隣接するデバイスページに記憶されていたかのように、論理的にホストデバイスに導入される。
【００４３】
コントローラ１０３は、パーシャルプログラミング（「ＰＰＰ」）方式を使ってホストデータを書き込もうとするホストデバイス１０１に応じて、擬似パーシャルページプログラミング方式を使ってこれをフラッシュメモリセルアレイ１３０に書き込むことができる。擬似ＰＰＰ方式を使用すると、補足データとしてダミーデータを使用することを含むことができる。例えば、停電保護を改善するため、書き込み済みデバイスページに隣接しないデバイスページにホストデータをコントローラ１０３によって書き込むことができる。
【００４４】
しかし、ＳＢＣオペコード１１１が「書き込み」命令でなければ（ステップ２０３にて「Ｎｏ（いいえ）」と示される）、オペコードが「読み出し」命令か否かをステップ２０４でチェックする。ＳＢＣオペコードがＭＢＣデータの一部としてデバイスページに記憶されているＳＢＣデータをメモリセルアレイ１３０から読み出す「読み出し」命令ならば（ステップ２０６にて「Ｙｅｓ（はい）」と示される）、次に制御回路１５０はステップ２０７で、メモリセルアレイ１３０からＭＢＣデータを読み出し（１４１に示される）、ＭＢＣデータからＳＢＣデータを解析することをデータ解析部１４０に指示する（１５２に示される）。ステップ２０８で制御回路１５０が解析されたＳＢＣデータをホストデバイス１０１へ送信することをデータ解析部１４０に指示すると（１５２に示される）、それによって読み出し操作を完了する。
【００４５】
しかし、ＳＢＣオペコード１１１が「読み出し」命令でなければ（２０６にて「Ｎｏ（いいえ）」と示される）、オペコード１１１は、ＭＢＣデータの一部としてデバイスブロックに記憶されているＳＢＣデータをメモリセルアレイ１３０から消去する「消去」命令である。ステップ２０９では、コントローラ１０３が内部で（例えば、翻訳表１５４で）ＳＢＣデータを消去済みとマークし、ＳＢＣデータが消去されたことを伝えるメッセージをホストデバイス１０１へ送信する。コントローラ１０３は、論理アドレス１１２を用いてＭＢＣブロックの物理アドレスを特定した後、オプションステップ２１０で、ＳＢＣデータが入っているＭＢＣブロックからＳＢＣデータを実際に消去する。
【００４６】
図１のコントローラ１０３のようなコントローラを使用することにより、あたかもＭＢＣフラッシュメモリデバイスがＳＢＣフラッシュメモリデバイスであるかのように、ＳＢＣホストデバイスがＭＢＣフラッシュメモリデバイスと連動できる（つまり、ＭＢＣフラッシュメモリデバイスに向けて「書き込み」、「読み出し」、「消去」命令を発行できる）ことに留意するべきである。また、本開示がＮＡＮＤ  ＭＢＣフラッシュメモリデバイスと連動するＮＡＮＤ  ＳＢＣホストデバイスに限定されないことに留意するべきである。ホストデータがデバイスページより小さいホストページにグループ化されるのならば、どんなＮＡＮＤホストデバイスならびにＮＡＮＤフラッシュメモリデバイスにも本開示を適用できる。例えば、ＭＢＣホストデバイスのデータページがＭＢＣフラッシュメモリデバイスのデータページより小さいならば、ＭＢＣフラッシュメモリデバイスと連動するＭＢＣホストデバイスにも本開示を適用できる。
【００４７】
ＳＢＣパーシャルページプログラミング（「ＰＰＰ」）のエミュレーション
図３は、ＳＢＣフラッシュメモリデバイスで使われているパーシャルページプログラミング（「ＰＰＰ」）の本開示による典型的なエミュレーションを示す。ホストデバイス１０１（一例において、ＳＢＣデバイス）は、ＰＰＰの使用を望む場合にこれを通常どおり使用でき、フラッシュメモリデバイス１０２は、後述する擬似ＰＰＰ方式を用いてホストデバイスから発行される「書き込み」命令に応じる。通常、ホストデバイスが様々なデータ要素を１つの論理ＳＢＣページに書き込むことを望む場合には、擬似ＰＰＰ方式によりＭＢＣフラッシュメモリデバイスの１つの物理ＭＢＣページにそれらのデータ要素が書き込まれる。
【００４８】
図３を図１と関連して説明する。簡潔を図るために、ホストデバイス１０１はＳＢＣデバイスと仮定し（つまり、ホストデバイス１０１はＳＢＣページにグループ化されたデータを扱う）、フラッシュメモリデバイス１０２はＭＢＣデバイスと仮定する。ホストデバイス１０１はＳＢＣデータ（３１０、３１１、および３１２と指示）をフラッシュメモリデバイス１０２へ一度に１データ要素ずつ送信する。ＳＢＣホストデバイスはパーシャルページプログラミング（ＰＰＰ）を使用できるため、従来のＭＢＣフラッシュメモリデバイスはそのような操作を処理できるようにはなっていなくても、図３はＭＢＣフラッシュメモリデバイス１０２がどのようにしてＰＰＰを処理するかを示す。
【００４９】
ホストデバイス１０１は、ＭＢＣフラッシュメモリデバイス１０２へＳＢＣデータ３１０を送信するため、論理アドレス３０１のＳＢＣページに典型的なＳＢＣデータ３１０を書き込み、時間ｔ１にＳＢＣページ３０１を「書き込み」コマンド列に埋め込んでフラッシュメモリデバイス１０２へ送信する。データページ３０１内の記憶スペース３２０はデータがない、すなわち、空の状態で、ＳＢＣストレージデバイスでは、データ３１０を消去せずともページ３０１に追加のデータを１つずつ書き込むことができるため、ここで説明するやり方でページ３０１にデータを書き込むことは「パーシャルページプログラミング」と呼ばれている。ＭＢＣフラッシュメモリデバイス１０２はホストインターフェイス１０５を通じてデータ３１０を受信する。ＭＢＣセルアレイ１３０にデータ３１０を書き込んでホストデバイス１０１から発行された書き込みコマンドを完了するにあたっては、数通りのオプションがある。１オプションでは、データ統合部１２０を使ってデータ３１０に補足データを統合し、メモリセルアレイ１３０のＭＢＣページに書き込めるデータ構造（すなわち、デバイスデータ）を作る。このオプションでは、前述したように、補足データはフラッシュメモリデバイス１０２でこれから受信する別のホストデータか、フラッシュメモリデバイス１０２のキューに入っているホストデータか、予めメモリセルアレイ１３０に記憶されているデータである。後ほど詳述する第２のオプションでは、フラッシュメモリデバイス１０２でＰＰＰに似たやり方でデータ３１０を扱う（ＰＰＰ操作に似ていることを、ここでは「擬似ＰＰＰ」と呼ぶ）。この擬似ＰＰＰオプションを実施するには、ＭＢＣページ３３０にデータ３１０を記憶して記憶スペース３３１を空のまま放置するか、データ統合部１２０でデータ３１０にダミーデータを統合してＭＢＣデータを作成し、作成したＭＢＣデータをメモリセルアレイ１３０に書き込む。
【００５０】
ＳＢＣホストデバイス１０１は時間ｔ２に、論理ページ３０１の空きスペース３２０にデータ３１１を書き込み、ページ３０１を記憶するためにフラッシュメモリデバイス１０２へ送信する。データ３１１をページ３０１に書き込むことにより、ページ３０１の空きスペースは小さくなる（３２１に示される）。一部のＭＢＣフラッシュメモリデバイスでは事前に物理ページを消去しない限り物理ページへの書き込みは１回しか行えないため、メモリセルアレイ１３０の物理ページ３３０に空きスペースが残っていても（すなわち、スペース３３１）、物理ページ３３０にはデータ３１１を書き込めない。つまり、フラッシュメモリデバイスは、受信するデータをメモリセルアレイ１３０内の別の空きＭＢＣ物理ページに書き込むことを余儀なくされる。しかし、ＰＰＰ操作のように振舞うため、データ解析部１４０は物理ページ３３０からデータ３１０を抽出し、データ統合部１２０がこれに受信したデータ３１１を統合する（すなわち、付け足す）。そして、データ統合部１２０はデータ３１０と付け足されたデータ３１１をメモリセルアレイ１３０内の別の空き物理ページ３４０に書き込む。同様に、ホストデバイス１０１は時間ｔ３にデータ３１２をフラッシュメモリデバイス１０２へ送信するが、たとえ物理ページ３４０に十分な空きスペース（すなわち、スペース３４１）が残っていても、物理ページ３４０にはデータ３１２を書き込めない。代わりに、データ解析部１４０が物理ページ３４０からデータ３１０とデータ３１１を抽出し、データ統合部１２０がデータ３１０とデータ３１１に受信データ３１２を統合する（すなわち、付け足す）。そして、データ統合部１２０はデータ３１０と、データ３１１と、新たに付け足されたデータ３１２とをメモリセルアレイ１３０内の別の空き物理ページ３５０に書き込む。代替の操作モードとして、データ３１０、３１１、および３１２を物理ページ３３０、３４０、および３５０にそれぞれ書き込み、それらをデータ統合部１２０で統合し、メモリセルアレイ１３０内の別の空き物理ページに書き込むこともできる。図３の例ではＭＢＣページへの書き込みが相次いで行われるので、物理ＭＢＣページ３３０、３４０、および３５０は物理的に互いに隣接している。
【００５１】
ホストデバイス１０１等のホストデバイスは、パーシャルプログラミング（すなわち、ＰＰＰ）を使ってデータ３１０、３１１、および３１２等のデータ要素を論理ページ３０１等の論理ページに書き込む場合に、相手方のフラッシュメモリデバイス（フラッシュメモリデバイス１０２等）があたかもＳＢＣフラッシュメモリデバイスであるかのごとく、書き込みを果たすことができる。相手方のフラッシュメモリデバイスは、前述した擬似ＰＰＰ方式を用いて個々のホストデバイスデータ要素を同じ物理ＭＢＣページ（この例では、ＭＢＣページ３５０）に書き込むことでホストが発行した書き込み命令に応じる。ホストデバイス１０１が擬似ＰＰＰ方式を意識することはなく、ホストデバイス１０１にとっては、フラッシュメモリデバイス１０２がデータ要素３１０、３１１、および３１２を１つの物理ＳＢＣページに書き込んだことになる。
【００５２】
コントローラ１０３は、ホストデバイス１０１から届くＳＢＣページの論理アドレスをメモリアレイ１４内のＭＢＣページ（すなわち、デバイスページ）の物理アドレスに翻訳する翻訳表１５４を管理する。コントローラ１０３はメモリセルアレイ１３０の中でデータを記憶するデバイスページの物理アドレスを翻訳表１５４から絶えず把握し、データ解析部１４０がメモリセルアレイ１３０からデータを抽出したり、データ統合部１２０がメモリセルアレイ１３０にデータを書き込むたびに、翻訳表１５４を更新したりする。また、場合によってはホストデバイスからメモリコマンドを受信次第直ちに、あるいはメモリコマンドに応じて、コントローラ１０３がメモリセルアレイ１３０の中でデバイスデータの一部または全部を一時的にまたは永久的に配置換えする必要がある。このときコントローラ１０３は、データの一部または全部の配置換えにともない一時的な論理および物理アドレスや最終的な論理および物理アドレスにより翻訳表１５４を更新する。フラッシュメモリ管理における翻訳表の取り扱いは当該技術分野で周知であり、ここでは詳述しない。
【００５３】
ページ間依存、Ｐ／Ｅサイクル、信頼性
フラッシュメモリでは、個々のフラッシュセルに記憶できるビットが多いほど動作上の問題が増え、フラッシュセルが有用になるようにするには、それらの問題を解決する必要がある。ここではＭＢＣフラッシュメモリとＳＢＣフラッシュメモリに言及するが、１セル当り２ビットを記憶するＭＢＣデバイスや１セル当り３ビット以上を記憶するＭＢＣデバイスにも同じ原理が当てはまる。
【００５４】
ページ間依存に関していうと、ＭＢＣフラッシュメモリは停電時に致命的なデータ書き込み／読み出しエラーを被りやすい。これは、２ページ間の物理的な近さに部分的に起因する。他方、ＳＢＣフラッシュメモリでそのようなエラーが生じる度合いは低い。このためＭＢＣホストデバイスの場合は、ＳＢＣホストデバイスと違って、停電に対して特別な対策を講じる必要がある。データ統合部は、ＳＢＣホストデバイスが連続するホストページの形でホストデータを送信する場合に、停電の影響を最小限にとどめるように特別な物理デバイスページ順序（通常は隣接しない順序）でホストページを書き込む。換言すると、連続して受け取るホストページが連続するデバイスページ順序でデバイスページに記憶されるとは限らない。ときには（すなわち、ホストデバイスによって送信されるデータのタイプによっては）、さらなる停電対策としてデータの少なくとも一部分については内部でバックアップをとる必要がある。
【００５５】
プログラミング／消去（Ｐ／Ｅ）サイクルと信頼性に関していうと、ＭＢＣフラッシュメモリの最大成功Ｐ／Ｅサイクル数はＳＢＣフラッシュメモリより格段に低く、その信頼性は低Ｐ／Ｅサイクル数によって損なわれている。一部のＳＢＣホストデバイスではさほど厳密ではないフラッシュ管理アルゴリズムが使われているが、これはＳＢＣデバイスのＰ／Ｅ限界が高く信頼性に優れるという前提によるもので、実際、多くのタイプのＳＢＣフラッシュメモリに当てはまる。制御回路１５０は、結果的にＰ／Ｅサイクル数が増えるようなやり方でメモリセルアレイ１３０のデバイスページにホストデータを移す。つまり、制御回路１５０は、翻訳表１５４に入っている情報をもとに各デバイスページのＰ／Ｅサイクル数を割り出し、データ統合部１２０を使って消耗が少ないデバイスページにホストデータを書き込む。さもないと（前述した対策がコントローラ１０３で実施されないと）、いわゆる「標準」ＳＬＣフラッシュメモリで、後ほどＳＢＣホストデバイスが読み出すことになるかもしれないデータが、思ったより早く壊れてしまう。「早く」とはＰ／Ｅサイクルが少ないことを意味する。
【００５６】
Ｐ／Ｅサイクルのほかにもフラッシュメモリデバイスの信頼性を左右する要因はある。例えば、エラー数やフラッシュセルのデータ保持能力に左右される。ホストデバイスが期待する信頼性を達成するには、場合によっては制御回路１５０で１つ以上の内部パラメータ（デバイスページの機能に関するパラメータ）を使ってメモリセルアレイ１３０の中でデバイスデータを再配置しなければならない。
【００５７】
前述した対策を促進するため（すなわち、ホストデータを特別な順序で物理デバイスページに書き込むこと、ホストデータをデバイスページに移すこと、デバイスページ内でデバイスデータを再配置すること）、データ統合部はマッピングアルゴリズムを使用し、関係する論理・物理アドレスとデータ位置に関する情報により翻訳表１５４を更新する。この情報は、前述した種々の性能態様に関連する。
【００５８】
本願の説明と特許請求の範囲で動詞「備える」、「含む」、および「有する」とこれらの同根語が使われる場合には、動詞の目的語は必ずしも動詞の主語の部材、構成品、要素、部品を網羅しているとは限らない。
ここで使用する冠詞「a 」および「an」は、冠詞の文法的対象が文脈次第で１つであったり、２つ以上であったりすること（少なくとも１つであること）を意味する。例えば、「an element（要素）」は、文脈次第で１つの要素を意味することもあれば２つ以上の要素を意味することもある。
ここで使用する用語「含まれる」は、句「含まれるが限定されるわけではない」を意味し、かつこれと互換的に使われる。
ここで使用する用語「または」と「および」は、文脈から別様が明白でない限り用語「および／または」を意味し、かつこれと互換的に使われる。
ここで使用する用語「例えば」は、句「例えるが、限定されるわけではない」ことを意味し、かつこれと互換的に使われる。
【００５９】
これまで本発明の典型的な実施形態を説明してきたが、開示された例示的な実施形態の修正が本発明の範囲内にあることは当業者にとって明白である。例えば、ホストデバイスは必ずしもＳＢＣホストデバイスでなくともよく、本開示は、タイプの異なるホストデバイスやタイプの異なるＮＡＮＤフラッシュデバイスにも、変更すべきところは変更し、同様に応用できる。開示された発明のさらなる変更、修正、改良は、前述した説明に明記されていないが本発明の趣旨と範囲の中にある。
【図１】
2011508357.tif 000003
【図２】
2011508357.tif 000004
【図３】
2011508357.tif 000005
【手続補正書】
【提出日】平成22年10月19日(2010.10.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フラッシュメモリデバイスにホストデータを書き込む方法であって、
ａ）個別に書き込み可能なデバイスページにグループ化されたＮＡＮＤフラッシュメモリセルアレイにホストデータを書き込む書き込み命令を、フラッシュメモリデバイスのコントローラにより、ホストデバイスから受信するステップと、
ｂ）１つ以上の前記デバイスページに記憶可能なデバイスデータを作成するため、前記コントローラにより前記ホストデータに補足データを統合するステップと、
ｃ）前記コントローラにより１つ以上の前記デバイスページに前記デバイスデータを書き込むステップと、を含み、
前記ホストデータは、パーシャルページプログラミング方式を用いてホストデータを書き込む前記ホストデバイスに応じて、擬似パーシャルページプログラミング方式を用いて前記ＮＡＮＤフラッシュメモリセルアレイに前記コントローラにより書き込まれる方法。
【請求項２】
請求項１記載の方法において、
前記補足データは、前記ホストデバイスから受信され、かつ前記フラッシュメモリデバイスのキューに投入されている別のホストデータである方法。
【請求項３】
請求項１記載の方法において、
前記補足データは、他のデバイスデータの一部として予め前記ＮＡＮＤフラッシュメモリセルアレイに記憶されていて、かつそこから解析されるホストデータである方法。
【請求項４】
請求項１記載の方法において、
前記デバイスページはブロックにグループ化され、各ブロック内で論理的観点から逐次書き込まれていくため、それらの物理アドレスは必ずしも連続しない方法。
【請求項５】
請求項１記載の方法において、
前記コントローラによる前記擬似パーシャルページプログラミング方式を用いることは、前記補足データとしてダミーデータを用いることを含む方法。
【請求項６】
請求項１記載の方法において、
前記ホストデータは、書き込み済みデバイスページに隣接しないデバイスページに前記コントローラにより書き込まれる方法。
【請求項７】
フラッシュメモリデバイスからホストデータを読み出す方法であって、
ａ）個別に読み出し可能なデバイスページにグループ化されたＮＡＮＤフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスページに記憶されているホストデータを読み出す読み出し命令を、ホストデバイスから受信するステップと、
ｂ）前記デバイスデータから前記ホストデータを解析するステップと、
ｃ）前記解析されたホストデータを前記ホストデバイスへ送信するステップと、
を含む方法。
【請求項８】
フラッシュメモリデバイスからホストデータを消去する消去命令を実行する方法であって、
ａ）個別に消去可能なデバイスブロックにグループ化されたＮＡＮＤフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスブロックに記憶されているホストデータを消去する消去命令を、ホストデバイスから受信するステップと、
ｂ）前記ホストデータを消去済みとマークするステップと、
ｃ）前記ホストデータが消去されたことを伝えるメッセージを前記ホストデバイスへ送信するステップと、
を含む方法。
【請求項９】
請求項８記載の方法において、
ｄ）前記ホストデータを含む前記デバイスブロックを消去するステップをさらに含む方法。
【請求項１０】
フラッシュメモリデバイス用コントローラであって、
ａ）ホストデバイスからホストデータを受信するように構成されたホストＮＡＮＤインターフェイスと、
ｂ）前記ホストデータに補足データを統合することでデバイスデータを作成し、かつ前記フラッシュメモリデバイスのＮＡＮＤフラッシュメモリセルアレイのデバイスページに前記デバイスデータを書き込むように構成されたデータ統合部と、
ｃ）パーシャルページプログラミング方式を用いてホストデータを書き込む前記ホストデバイスに応じて、擬似パーシャルページプログラミング方式を用いて前記ＮＡＮＤフラッシュメモリセルアレイに前記ホストデータを書き込むように構成された制御回路と、
を備えるコントローラ。
【請求項１１】
請求項１０記載のコントローラにおいて、
前記補足データは、前記ホストデバイスから受信され、かつ前記ＮＡＮＤフラッシュメモリセルアレイに記憶するために前記フラッシュメモリデバイスのキューに投入されている別のホストデータであるコントローラ。
【請求項１２】
請求項１０記載のコントローラにおいて、
ｄ）デバイスデータから補足データを解析するように構成されたデータ解析部をさらに備えるコントローラ。
【請求項１３】
請求項１２記載のコントローラにおいて、
前記補足データは、デバイスデータから解析される別のホストデータであるコントローラ。
【請求項１４】
請求項１１記載のコントローラにおいて、
前記データ解析部は、所定のホストデータを読み出すコマンドを前記ホストデバイスから受信すると、デバイスデータから前記所定のホストデータを解析するようにさらに構成されるコントローラ。
【請求項１５】
請求項１０記載のコントローラにおいて、
前記デバイスページは、デバイスブロックにグループ化され、前記データ統合部は、各ブロック内でデータを論理的観点から逐次デバイスページに書き込むようにさらに構成されるため、それらの物理アドレスは必ずしも連続しないコントローラ。
【請求項１６】
請求項１０記載のコントローラにおいて、
所定のホストデータを消去する命令を前記ホストデバイスから受信すると、前記所定のホストデータは前記コントローラにより「消去済み」とマークされ、前記所定のホストデータが消去されたことを伝えるメッセージが前記ホストデバイスへ送信されるコントローラ。
【請求項１７】
請求項１０記載のコントローラにおいて、
前記擬似パーシャルページプログラミング方式を用いるにあたって、前記制御回路は前記補足データとしてダミーデータを用いるコントローラ。
【請求項１８】
請求項１０記載のコントローラにおいて、
前記制御回路は、所定のホストデータを消去する命令を前記ホストデバイスから受信すると、前記所定のホストデータを消去済みとマークし、かつ前記所定のホストデータが消去されたことを伝えるメッセージを前記ホストデバイスへ送信するように構成されるコントローラ。
【請求項１９】
請求項１０記載のコントローラにおいて、
前記ホストデータは１セル当りＭビットのデータを記憶するメモリセルアレイ向けにフォーマットされ、前記フラッシュメモリデバイスのメモリセルアレイは１セル当りＮビットのデータを記憶し、ＮとＭは整数であり、ＮはＭより大きいコントローラ。
【請求項２０】
請求項１９記載のコントローラにおいて、
Ｎは２に等しく、Ｍは１に等しいコントローラ。
【請求項２１】
請求項１９記載のコントローラにおいて、
Ｎは４に等しく、Ｍは１に等しいコントローラ。
【請求項２２】
請求項１９記載のコントローラにおいて、
Ｎは４に等しく、Ｍは２に等しいコントローラ。
【国際調査報告】
2011508357.tif 000006
2011508357.tif 000007
2011508357.tif 000008