説明

1セル当り単一ビットNANDフラッシュメモリをエミュレートする1セル当り多ビットNANDフラッシュメモリ用コントローラ

1セル当り単一ビットNANDフラッシュメモリデバイスをエミュレートする1セル当り多ビットNANDフラッシュメモリデバイスのコントローラを開示する。コントローラは、NANDホストデバイスからホストデータを受信するホストNANDインターフェイスと、ホストデータに補足データを統合することによりNANDフラッシュメモリデバイスのNANDフラッシュメモリセルアレイのデバイスページに記憶可能なデバイスデータを作成するデータ統合部とを含む。コントローラはデバイスデータを作成した後にNANDフラッシュメモリセルのデバイスページにデバイスデータを書き込む。コントローラはまた、データ読み出し操作を実行するときにデバイスデータからホストデータを解析するデータ解析部を含む。コントローラは、データ書き込み操作を実行するときに、必要に応じて、データ解析部を使用してデバイスデータから補足データを解析しデバイスデータを作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にはフラッシュメモリデバイスに関し、より具体的には、ある種のNANDフラッシュメモリデバイス(1セル当り単一ビット(「SBC」)フラッシュメモリデバイス等)を別種のNANDフラッシュメモリデバイス(1セル当り多ビット(「MBC」)フラッシュメモリデバイス等)でエミュレートすることに関する。
【背景技術】
【0002】
フラッシュメモリデバイスは、不揮発性メモリデバイスの一種で、長年にわたり知られている。フラッシュメモリデバイスのメモリセルアレイを構成する各メモリセルは、フローティングゲート領域と、ドレイン領域と、ソース領域とを通常具備する半導体トランジスタによって実装される。メモリセルは2つ以上の異なる状態をとることができ、それらの状態はフローティングゲートの中に記憶される電荷の量によって実現される。つまり、フローティングゲートに記憶される異なる電荷量を各状態に対応付ける。実際にメモリセルを使用するには、それぞれの状態に2進値を対応付ける。
【0003】
フラッシュメモリデバイスの1種に「1セル当り単一ビット」(SBC)として一般に知られる技術に基づくものがある。これは、SBCメモリデバイスの各メモリセルに1ビットが記憶されることを意味する。1セル当り1ビットを記憶するということは、2通りある状態のいずれか一方の状態をとるように(2通りある状態のいずれか一方を記憶するように)セルが構成されることを意味する。通常、一方の状態はセルのフローティングゲートに記憶されるゼロ電荷に対応する。これは「書き込まれていない」セル状態であり、通常は2進数「1」に相当する。通常、もうひとつの状態はフローティングゲート内のある程度の負電荷に対応する。これは「書き込み済み」のセル状態であり、通常は2進数「0」に相当する。フローティングゲートに負電荷があるとセルのトランジスタのしきい値電圧が増加し、結果的に、トランジスタを導通させるにあたってトランジスタのコントロールゲートに印加しなければならない電圧が増加する。
【0004】
フラッシュメモリデバイスは3つの操作を実行できる。つまり、メモリセルにデータを書き込む(歴史的な理由からしばしば「プログラムする」という)操作と、メモリセルからデータを読み出す操作と、メモリセルからデータを消去する操作とが可能である。これらの操作は外部のホストデバイスから始まるが、フラッシュメモリデバイスのコントローラによって処理される。メモリセルに2進数(「0」または「1」)を書き込むには、トランジスタのフローティングゲートで電荷を変化させ、セルのしきい値電圧を変える。メモリセルに記憶された2進数を読み出すには、セルのしきい値電圧レベルをチェックする。このしきい値電圧が高い状態にあるならば、ビット値を論理値「0」と解釈する。しかし、しきい値電圧が低い状態にあるならば、ビット値を論理値「1」と解釈する。実際にはセルのしきい値電圧を正確に読み出す必要はなく、セルが現在2つの状態のどちらにあるかを正確に識別すればよい。それには、2つの状態の中間にあたる基準電圧にセルのしきい値電圧を比較し、セルのしきい値電圧がこの基準値より低いか高いかを判断しなければならない。
【0005】
多くのタイプのフラッシュメモリ、例えばNANDフラッシュメモリでは、書き込み操作と消去操作を個々のメモリセルに対して行うのではなく、メモリセルの集団に対して行う。書き込み操作は比較的小さい「ページ」(NANDフラッシュメモリデバイスの場合は通常512バイト、2キロバイト、または4キロバイト)に対して行われ、消去操作はページより大きい「ブロック」(NANDフラッシュメモリデバイスの場合は通常32キロバイトか128キロバイト)に対して行われる。
「1セル当り多ビット」(MBC)として一般に知られる技術に基づくタイプのフラッシュメモリデバイスもある。MBCメモリデバイスでは、それぞれのメモリセルにN個のビット(N≧2)が記憶される。つまり、MBCメモリセルは2N通りの状態を記憶するように構成される。例えば2ビットを記憶するメモリセルは4通りの状態を記憶し、それぞれの状態には4つの2進値「00」、「01」、「10」、「11」のいずれか1つが対応付けられている。
セルの状態はセルのしきい値電圧によって表されるため、2ビットを記憶するMBCセルなら4通りのしきい値電圧範囲をサポートする。SBCセルと同様に、MBCセルの各状態は、実際にはひとつの電圧ではなく電圧範囲である。セルの内容(記憶された2進値)を読み出すときには、セルのしきい値電圧に適切な電圧範囲を適切に対応付けなければならない。例えば、Harariの米国特許第5,434,825号(特許文献1)では、MBCフラッシュデバイスが説明されている。
【0006】
フラッシュメモリ技術の概念が最初に考案された当時、MBC NANDフラッシュデバイスは比較的珍しく、SBCデバイスが標準だった。したがって、フラッシュメモリ技術を利用する従来のホスト設計はSBC向けで、MBCデバイスには適合しない。このため、MBC NAND技術が成熟し、SBCデバイスより費用効果的で(少なくとも1ドル当りのメガバイト数の点では費用効果的)、既に市販されてはいるが、SBC対応ホストデバイスではMBCベースのNANDデバイスを使用できないため、同じ物理的面積でもSBCデバイスよりMBCデバイスのほうが面積当りの記憶容量が大きいにもかかわらず、MBC技術のさらなる普及は妨げられている。NANDインターフェイスには規格がなく、ストレージデバイスの供給元で使用するNANDインターフェイスは供給元によって種類が異なることがあり、事実異なっているから、たとえ1セル当りのビット数が同じメモリセルでも、供給元が異なれば技術的なミスマッチがほかにも生じるおそれがある。
【0007】
SBCデバイスとMBCデバイスは数々の技術的態様において本質的に異なるため、適合性の問題を克服する(MBCフラッシュデバイスとSBC対応ホストが互いにやり取りできるようにする)のは容易ではない。例えば、データページとデータブロックのサイズはSBCデバイスとMBCデバイスとで異なる。また、SBCセルの2状態間の電圧間隔(「エラーマージン」)はMBCの2つの近傍状態間のエラーマージンより大きいため、SBCセルのほうが信頼性の水準が高く、コンピュータシステムの起動にはSBCセルを使うのが普通である。比較的低い信頼性の埋め合わせとして、MBCデバイスではより強力な誤り訂正方式を採用している。例えば、より強力な誤り訂正符合(ECC)を採用している。
【0008】
SBCフラッシュメモリデバイスのほうが、信頼性が高く応答が速いため、SBCの能力をMBCに組み合わせる取り組みがこれまでなされてきた。しかし、そのような改善への取り組みは、MBCフラッシュメモリデバイスの特定の技術的態様に限ったものであった。一部の先行技術では起動の態様に取り組んでいる。つまり、「純粋な」SBC技術とほぼ同等の起動信頼性を得るため、MBCフラッシュメモリデバイスの特定領域に初期化(起動)プログラムを記憶することを提案している。他の先行技術には信頼性の態様に取り組み、強力な誤り訂正メカニズムを提供するものもある。応答速度の態様に取り組み専用のSLCキャッシュをMBCデバイスに用意するものもある。しかし、先行技術には、SBCデータを通常のMBCデータとしてMBCフラッシュメモリデバイスに書き込むことや、MBCデータの中からSBCデータを読み出すことを教示するものはない。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】米国特許第5,434,825号
【発明の概要】
【0010】
以下、例示的な実施形態とその態様をシステム、ツール、方法との関係で説明、例証するが、これらは典型的かつ例証的なものであって範囲を制限するものではない。
本開示の一部として、ホストデータをフラッシュメモリデバイスに書き込む方法が提供され、この方法は、個別に書き込み可能なデバイスページにグループ化されたNANDフラッシュメモリセルアレイにホストデータを書き込む書き込み命令を、ホストデバイスからフラッシュメモリデバイスのコントローラにより受信することを含む。コントローラは、ホストデータに補足データを統合することにより1つ以上のデバイスページに記憶可能なデバイスデータを作成し、そのデバイスデータを1つ以上のデバイスページに書き込む。
【0011】
本開示の一部として、フラッシュメモリデバイスからホストデータを読み出す方法が提供され、この方法は、個別に読み出し可能なデバイスページにグループ化されたNANDフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスページに記憶されているホストデータを読み出す読み出し命令を、ホストデバイスから受信するステップと、デバイスデータからホストデータを解析するステップと、解析されたホストデータをホストデバイスへ送信するステップとを含む。
【0012】
本開示の一部として、フラッシュメモリデバイスからホストデータを消去する消去命令を実行する方法が提供され、この方法は、個別に消去可能なデバイスブロックにグループ化されたNANDフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスブロックに記憶されているホストデータを消去する消去命令を、ホストデバイスから受信するステップと、ホストデータを消去済みとマークするステップと、ホストデータが消去されたことを伝えるメッセージをホストデバイスへ送信するステップとを含む。この方法は、ホストデータを収容するデバイスブロックを実際に消去するステップをさらに含む。
【0013】
本開示の一部として、書き込む方法と、読み出す方法と、消去する方法とを実現するフラッシュメモリデバイス用コントローラが提供される。このコントローラは、NANDホストデバイスからホストデータを受信するホストNANDインターフェイスと、ホストデータに補足データを統合することでデバイスデータを作成するデータ統合部とを含む。コントローラは、フラッシュメモリデバイスのNANDフラッシュメモリセルアレイのデバイスページにデバイスデータを書き込む。コントローラはまた、データ書き込み操作を実行するときに補足データを解析し、かつデータ読み出し操作を実行するときにデバイスデータからホストデータを解析するデータ解析部を含む。
【0014】
ホストデータは、1セル当りMビットのデータを記憶するNANDメモリセルアレイ向けにフォーマットされ、NANDフラッシュメモリセルは、1セル当りNビットのデータを記憶するように設計され、NとMは整数であり、NはMより大きい。一例示的な実施形態において、Nは2に等しく、Mは1に等しい。別の例示的な実施形態において、Nは4に等しく、Mは1に等しい。さらに別の例示的な実施形態において、Nは4に等しく、Mは2に等しい。
【0015】
図を参照し以降の詳細な説明を精査することにより、前述した典型的な態様と実施形態のほかにさらなる態様と実施形態が明らかになる。
参照する図には典型的な実施形態が描かれている。ここに開示する例示的な実施形態は制限ではなく例証のためのものである。しかし、以降の詳細な説明を添付の図と併せて読むことにより開示の内容をより良く理解できるはずである。
図解を簡潔明瞭にするために、図に見られる要素が必ずしも一定の縮尺で描かれていないことが理解されるはずである。また、同様の要素、対応する要素、類似する要素を指示するために図の中で参照番号が適宜繰り返されることがある。
【図面の簡単な説明】
【0016】
【図1】本開示の一例示的な実施形態によるフラッシュメモリデバイスを概略的に示す。
【図2】本開示の一例示的な実施形態によるフラッシュメモリデバイスによりホストコマンド列を処理する典型的な方法を示す。
【図3】本開示の一例示的な実施形態による擬似PPPの使用を示す。
【発明を実施するための形態】
【0017】
添付の特許請求の範囲は、本発明の例示的な実施形態の詳細な説明を参照することにより、より良く理解されるはずである。この説明は、特許請求の範囲の範囲を制限するのではなく、例を提示するためのものである。
前述したように、NANDフラッシュメモリデバイスは個別に扱われるページにデータを記憶するようになっている。ホストデバイスから始まる操作の種類に応じて(すなわち、フラッシュメモリデバイスへのホストデータ書き込み、フラッシュメモリデバイスからのホストデータ読み出し、フラッシュメモリデバイスからのホストデータ消去)、「個別に扱われるページ」は「個別に書き込み可能な」ページか「個別に読み出し可能な」ページを指すことができる。「消去」操作の場合は、データがブロック単位で消去され、それぞれのブロックは数個のページからなる。「ページ」のサイズとブロックのサイズはNANDフラッシュメモリデバイスのタイプによって異なり、前述したように、NANDフラッシュメモリデバイスは通常、特定のページサイズとブロックサイズ向けに設計されるため、あるいは少なくとも特定のページサイズとブロックサイズ向けに最適化されるため、様々なサイズのデータページを同じフラッシュメモリデバイスで扱うのは簡単ではない。このため、ある特定のページサイズ向けに設計されたホストデバイスは普通、別のページサイズ向けに設計されたフラッシュメモリデバイスと、少なくとも効率的には、やり取りできない。
【0018】
通常、ホストデバイスから出る「コマンド列」は、データ(これ以降「ホストデータ」と呼ぶ)と、フラッシュメモリデバイス内の物理ページに対応する論理ページアドレスと、その論理アドレスを使って物理ページにホストデータを書き込むためのフラッシュメモリデバイス向け書き込み命令とを含む。ホスト論理アドレスからデバイスページの物理アドレスへのマッピングを行うには、ホスト論理アドレスを対応するデバイスページの論理アドレスにマッピングし、さらにその後デバイスページの論理アドレスをデバイスページの物理アドレスにマッピングする。これとは別に、「コマンド列」は論理アドレスと、その論理アドレスを使ってフラッシュメモリデバイスの物理ページからホストデータを読み出すためのフラッシュメモリデバイス向け読み出し命令とを含むこともあれば、論理アドレスと、その論理アドレスを使ってフラッシュメモリデバイスからホストデータを消去するための消去命令とを含むこともある。「コマンド列」はまた、管理データと、フラッシュメモリデバイスによって使用されるその他のデータもしくは情報を含むこともある。ホストデバイスからフラッシュメモリデバイスへ転送されるコマンド列のことを、これ以降は「ホストコマンド列」と呼ぶ。NANDフラッシュデバイスのデータはページにグループ化されるから、「ホストデータ」は「ホストページ」にグループ化されると言うこともできる。
【0019】
図1に、本開示の一例示的な実施形態によるフラッシュメモリデバイス(102に示される)を示す。NANDフラッシュメモリシステム100は、NANDホストデバイス101と、ホストデバイス101と連絡するNANDフラッシュメモリデバイス102とを含む。フラッシュメモリデバイス102は、ホストインターフェイス(I/F)105と、コントローラ103と、NANDメモリセルアレイ130とを含み、このNANDメモリセルアレイは1セル当りNビットのデータを記憶し、Nは2以上である。
【0020】
ホストデバイス101は、ホストI/F 105を通じてフラッシュメモリデバイス102へホストコマンド列を転送(104に示される)する。ホストコマンド列はフラッシュメモリデバイス102に記憶するホストデータを含み、このホストデータは、デバイスページのサイズより小さいホストサイズのページにまとめられている。例えば、ホストデバイス101がSBCフラッシュメモリデバイスとやり取りするように設計されたSBCデバイスならば、ホストデータのサイズやその他の特性はSBCデータのものとなり、ホストコマンド列はSBCコマンド列になるか、またはそれに似たものとなる。SBCページのサイズは通常4キロバイトに満たない(例えば、2キロバイト)。
【0021】
メモリセルアレイ130に記憶できるデータはこれ以降「デバイスデータ」と呼び、メモリセルアレイ130の中でデバイスデータの記憶に用いるメモリセル群はこれ以降「デバイスページ」と呼ぶ。デバイスページには、メモリセルアレイ130の中でページの相対的位置を示す物理アドレスと、ホストデバイス101から見たページの相対的位置を示す論理アドレスがある。通常は、翻訳表を用いて1タイプのアドレスを別タイプのアドレスに翻訳する。
【0022】
例えば、フラッシュメモリデバイスがMBCデバイスならば、デバイスページのサイズやその他の特性はMBCページのサイズや特性となり、同様に、コントローラ103によって内部で使用されるデバイスコマンド列は、MBC技術に準拠するように構築もしくはフォーマットされる。MBCページのサイズは通常、少なくとも4キロバイトである。関係する技術(例えば、SBC、MBC等)が何であれ、本開示の文脈ではホストデータがデバイスデータより小さいことに留意するべきである。
【0023】
フラッシュメモリデバイスは通常、メモリデバイスとホストデバイスとのデータ交換や様々な内部処理(例えば、ウェアレベリング)を管理する一体形フラッシュコントローラ(図1に示されていない)を含む。フラッシュメモリデバイスとホストデバイスとで使用するページとブロックのサイズが同じならば、フラッシュメモリデバイスは、図1のコントローラ103等のコントローラを使わずにホストデバイスとやり取りできる。しかし、本開示は、それぞれ異なる技術(例えば、SBC対MBC)に準拠するホストデバイス101とフラッシュメモリデバイス102に当てはまるほか、技術(MBC等)は同じであっても使用するNANDインターフェイスが合わないホストデバイスとフラッシュメモリデバイスにも当てはまる。前述したように、ホストデバイス101がSBC技術に準拠し、フラッシュメモリデバイス102がMBC技術に準拠することもある。コントローラ103が、ホスト101とフラッシュメモリデバイス102との技術的な食い違いを、以下に述べるような方法で解決する。
【0024】
コントローラ103は、ホストコマンド解析部(「HCP」)110と、制御回路150と、データ統合部120と、データ解析部140とを含む。HCP 110は、ホストI/F 105へ接続され(106に示される)、データ統合部120へ接続され(121に示される)、かつ制御回路150へ接続される(151に示される)。ホストデータや場合によってはその他のデータ(ダミーデータ等)を一時的に記憶するため、データ統合部120はRAM 160等のランダムアクセスメモリ(「RAM」)へ接続できる。データ統合部120はデータ解析部140へ接続される(142に示される)。データ統合部120とデータ解析部140はNANDメモリセルアレイ130へ接続される(131と141にそれぞれ示される)。「ダミーデータ」とは、デバイスページ内の空白を代表する以外何ら意味を持たないデータとしてコントローラ103によって識別される特別なデータであり、ホストデバイス101等の外部デバイスはこれにアクセスできない。
【0025】
コントローラ103はホストデバイス101からホストI/F 105を通じてホストコマンド列(例えば、SBCコマンド列)を受信し、SBCデータ等のホストデータを処理するように構成される。メモリセルアレイ130のデバイスページ操作(例えば、MBC操作)に合わせてホストデータを処理するため、ホストコマンド解析部(HCP)110は、ホストコマンド列からデバイスコマンド列を生成するように構成される。ここで「ホストデータを処理する」とは、フラッシュメモリデバイスに記憶する(書き込む、プログラムする)ホストデータがホストコマンド列の中に実際にあるか、ホストデータが既にフラッシュメモリデバイスに記憶されていてメモリセルアレイ130から読み出すか消去する必要がある状況を指す。
【0026】
ホストコマンド解析部(HCP)110は、ホストコマンド列をホストオペコード(「HOC」)111と、ホスト論理アドレス(「HLA」)112と、ホストデータ113とに解析し、さらに(必要に応じ)オペコードをフラッシュメモリデバイス102で使えるように翻訳することにより、デバイスコマンド列を生成する。ホストコマンド列から解析されたデータ(ホストデータ)は後述するように処理される。「ホストデータ」はデータ、メタデータ、および/またはデータ処理(書き込み、読み出し、消去)に関連する管理データを指すことがある。
【0027】
代替の実施形態は、より多くの、より少ない、別の、そうでなくて機能的に同等の、モジュール、構成品、素子を含むことがある。例えば、従来のフラッシュメモリデバイスはフラッシュマネージャを内蔵する。フラッシュマネージャは、着信・発信データや、ウェアレベリング、論理アドレスから物理アドレスへの翻訳、物理アドレスから論理アドレスへの翻訳等の内部処理を管理するコントローラの一種である。図1のコントローラ103が独立したデバイスとしてフラッシュマネージャとやり取りすることもあれば、フラッシュマネージャの機能がコントローラ103に一体化、内蔵、併合されることもある。ホストインターフェイス105は、図1では独立した構成品として示されているが、コントローラ103の一部であってもよい。RAM 160と翻訳表154は、図1ではコントローラ103の一部として示されているが、コントローラ103の外部にあってもよい。
【0028】
「書き込み」操作
HCP 110は、ホストオペコード111をチェックした後にホストデータをメモリセルアレイ130に書き込む書き込み命令がホストコマンド列の中にあると判断し、その書き込み命令がメモリデバイスに適合しないものである場合に、ホストの書き込みコマンドをフラッシュメモリデバイス102で使用できる書き込み命令に翻訳する。そうでなければ(すなわち、命令の翻訳が不要であれば)、制御回路150はそのホスト書き込み命令を現状のまま利用できる。したがって、HCP 110は当初の書き込み命令を、または(すなわち、フラッシュメモリデバイス102で使用できない場合には)その翻訳を、制御回路150へ転送する(151に示される)。次に、制御回路150はデータ統合部120の動作を制御し(153に示される)、さらにホストデバイスによって発行された書き込み命令に適合するため、必要であれば、データ解析部140の動作も制御する(152に示される)ことができる。
【0029】
参照番号170は、受信ホストコマンド列の中でホストデバイス101から受け取る典型的なホストデータを示す。オペコード111が書き込み命令ならば、コントローラ103はホストデータ170をメモリセルアレイ130に書き込まなければならないということを意味する。この場合、HCP 110は、ホストデータ170、すなわち典型的なホストデータ113を処理するためにデータ統合部120へ転送する(121に示される)。
【0030】
参照番号173、174、および175は、典型的なデバイスページを示す。これらのデバイスページには、サイズがデバイスページと同じ(すなわち、4KB)デバイスデータしか書き込めない。あるいはデバイスページとサイズが同じデータしか読み出せない。簡潔を図るために、図1には3つの典型的なデバイスページ(デバイスページ173、174、および175)しか示されていないが、メモリセルアレイ130は実際には多数のデバイスページを有する。ホストデータ170はデバイスページ(すなわち、デバイスページ175)より小さく、ページサイズには様々な技術的事情があるため、現状のままメモリセルアレイ130に書き込むことはできず、メモリセルアレイ130への書き込みに先立ちコントローラ103でこれを処理しなければならない。
【0031】
ホストデータ170(あるいは他の何らかのホストデータ)をメモリセルアレイ130に書き込むため、コントローラ103のデータ統合部120は、メモリセルアレイ130にある1つ以上のデバイスページ、例えばデバイスページ175に記憶可能なデバイスデータを作成するように構成されている。データ統合部120は、ホストデータ170に補足データを統合することによってデバイスデータを作る。データ統合処理を完了したデータ統合部120は、例えば、新たに作成されたデバイスデータを1つ以上のデバイスページ173、174、および175に書き込む(131に示される)。
【0032】
データ統合部120によるホストデータと補足データとの統合にあたっては様々なオプションがある。第1のオプションでは、補足データは、ホストデバイス101から受信しフラッシュメモリデバイス102のキューに投入されている別のホストデータである。このオプションは、十分な数の新規ホストデータがホストデバイス101から受信され、例えばランダムアクセスメモリ(RAM)160のキューに投入するまで待つことが含まれる。
【0033】
フラッシュメモリデバイス102のキューに十分な数のホストデータが投入されない場合は、第2のオプションを使うことができる。このオプションは、残っている補足データをメモリセルアレイ130から読み出すことが含まれる。第2のオプションを促進するため、制御回路150はデバイスページ173、174、および175の物理アドレスを必要なだけデータ解析部140へ送信する(152に示される)。データ解析部140はこれらのデバイスページから残っている補足データを読み出すことができる。(この第2のオプションは、フラッシュメモリデバイス102のキューに入っているホストデータが不足していない場合にも使用することが可能である。)データ解析部140は、物理アドレスによって指定されたデバイスページから該当するデバイスデータを引き出すことによってメモリセルアレイ130からデータを読み出す。読み出すべきデータがホストデータならば、データ解析部140がデバイスデータからホストデータを解析する。
【0034】
第3のオプションでは、所定の時間内に新たなホストデータが到着しない場合に限り、メモリセルアレイ130から補足データを引き出す。第4のオプションでは、現在受信しているホストデータをメモリセルアレイ130内のいずれかのデバイスページ(すなわち、デバイスページ173、174、175か他のデバイスページ)に一時的に記憶し、後ほど追加のホストデータを受信した後に補足データと統合する。
【0035】
デバイスページの物理アドレスに関していうと、制御回路150は、例えば翻訳表154を使用して、ある1つのデバイスページに記憶された補足データの存在に気づいた場合には、そのデバイスページ(例えば、デバイスページ175)の物理アドレスだけをデータ解析部140へ送信すればよい(152に示される)。しかし、制御回路150は、メモリセルアレイ130内の複数のデバイスページに補足データが分散されていることに気づいた場合には、それらのデバイスページに対応する複数の物理アドレスをデータ解析部140へ送信する(152に示す)。
【0036】
データ解析部140は制御回路150から送信された物理アドレスを使ってメモリセルアレイ130からデバイスデータを引き出し(141に示される)、そこから必要な補足データを解析する。次に、データ解析部140はデータ統合部120へ補足データを転送し(142に示される)、データ統合部120は、これをホストデータに統合し、新たなデバイスデータを作成する。次に、制御回路150から送信(153に示される)された物理アドレスに該当する目標デバイスページ(例えば、デバイスページ175)にデータ統合部120がデバイスデータを書き込むと(131に示される)、「書き込み」命令111は完了する。図3との関係で後述するダミーデータが補足データとなることもあるので留意するべきである。つまり、デバイスページに記憶すべきホストデータにはダミーデータを統合することもでき、コントローラ103は、このデバイスページにホストデータしか入っていないものとみなす。例えば、デバイスページ175にはホストデータ176と、ホストデータ177と、ダミーデータ178とが見られる。この例のデータ統合部120はホストデータ176を受信し、さらなるホストデータ177を待ってからホストデータ176とホストデータ177の両方をメモリセルアレイのフラッシュメモリセルアレイ130に書き込むことにした。データ統合部120はさらなるホストデータ(すなわち、ホストデータ177)を待っている間、RAM 160にホストデータ176を一時的に保管した。そして、データ統合部120はホストデータ177を受信し、ホストデータ176にホストデータ177とダミーデータ178を統合した。最後にデータ統合部120は、図1に示すように統合済みのデータをデバイスページ175に書き込んだ。
【0037】
デバイスページの物理アドレスをデータ解析部140に送信(152に示される)し、かつデータ統合部120に送信(153に示される)する代わりに、制御回路150は、デバイスページの物理アドレスを使ってメモリセルアレイ130から該当するデバイスデータを読み出し、これをデータ解析部140かデータ統合部120へ送信することもできる。
【0038】
「読み出し」操作
受信オペコード111が、制御回路150によって、「読み出し」命令と解釈される場合に、制御回路150は「読み出し」命令を実行するが、このとき制御回路150は、メモリセルアレイ130の中でホストデータ(これ以降「要求ホストデータ」と呼ぶ)の読み出し先にあたるデバイスページ(これ以降「要求デバイスページ」と呼ぶ)の物理アドレスにホスト論理アドレス112を翻訳する。ホストデータはデバイスデータの一部としてデバイスページに記憶されるため、該当するデバイスページに記憶されたデバイスデータから要求ホストデータ(すなわち、読み出すべきホストデータ)を解析しなければならない。そこで制御回路150は、要求デバイスページの物理アドレスをデータ解析部140へ転送する(152に示される)。データ解析部140は要求デバイスページの物理アドレスを使って所望のデバイスデータを読み出す(141に示される)。データ解析部140が引き出したデバイスデータから要求ホストデータを解析し、ホストI/F 105を通じてホストデバイス101へ要求ホストデータを送信(143に示される)すると、それによって「読み出し」コマンド111を完了する。
要求デバイスページの物理アドレスをデータ解析部140へ送信(152に示される)する代わりに、制御回路150が要求デバイスページの物理アドレスを使って所望のデバイスデータを取り出し、データ解析部140へ送信することもできる。
【0039】
「消去」操作
受信オペコード111が制御回路150によって「消去」命令と解釈される場合に、制御回路150は「消去」命令を実行する。「ページ」に対して実行される「書き込み」操作や「読み出し」操作と違って、NANDフラッシュデバイスでは「ブロック」単位でデータを消去する。「ホストブロック」は複数のホストページからなり、「デバイスブロック」は複数のデバイスページからなる。したがって、制御回路150はホストデータを消去する消去命令を識別する場合に、制御回路150は、メモリセルアレイ130の中で、消去対象のホストデータを含むデバイスデータを記憶しているデバイスブロックのアドレスを翻訳表154で調べる。制御回路150は翻訳表154の中でそのホストデータを消去済みとマークし、ホストデータが消去されたことを伝えるメッセージをホストデバイス101へ送信する。制御回路150は、後ほど適当なときに、あるいは都合のよいときに、メモリセルアレイ130から実際にホストデータを消去することができる。制御回路150はホストデータを実際に消去するにあたって、ホストデータのホスト論理アドレス112を、ホストデータが入っているデバイスブロックの物理アドレスに翻訳し、そのデバイスブロックを消去する。
【0040】
図2は、本開示によるフラッシュメモリデバイスによりホストコマンド列を処理する典型的な方法を示す。図2は、図1と関連して説明され、ホストデバイス101がSBC技術に準拠し、フラッシュメモリデバイス102がMBC技術に準拠すると仮定している。前に説明したように、デバイスに違いを生じさせる様々な技術的態様に配慮しない限り、SBCホストデバイスとMBCフラッシュメモリデバイスは互いにやり取りできない。ページサイズとブロックサイズの違いのほかに、SBCフラッシュメモリデバイスでは、新たなデータをページに書き込む前にそのページ全体を消去する。しかし、そのページに十分に大きい空きスペースがあって新規データを書き込めるならば、「消去」ステップは省略される。当該技術分野でパーシャルページプログラミング(「PPP」)と一般に呼ばれている機能である。SBCフラッシュメモリデバイスとは対照的に、MBCフラッシュメモリデバイスでは常にページへの新規データ書き込みに先立ちページ全体を消去する。加えて、SBCフラッシュメモリデバイスはデータをページにランダムに書き込むが、MBCフラッシュメモリデバイスはデータをページに順次書き込む。つまり、データはページ0へ書き込まれ、次にページ1、ページ2へと書き込まれていく。図1との関係で前に説明したように、コントローラ103はホストコマンド解析部110と、データ統合部120と、データ解析部140とを使用することによってこれらの技術的違いを解決する。
【0041】
ステップ201では、NANDフラッシュメモリデバイス102のコントローラ103がホストデバイス101からホストコマンド列を受信する(図1に104として示す)。この例のホストコマンド列はSBCコマンド列である。ステップ202では、ホストコマンド解析部(HCP)110がSBCコマンド列をSBCオペコード111と、SBC論理アドレス112と、この例ではSBCデータであるホストデータ113とに解析する。ステップ203では、オペコードが「書き込み」命令か否かをチェックする。SBCオペコードが「書き込み」命令ならば(203にて「Yes(はい)」と示される)、次に、制御回路150はステップ204で、SBCデータ113に補足データを統合もしくは併合するようにデータ統合部120に指示し(153に示される)、補足データは他のSBCデータでよく、この統合により、MBCセルアレイ130の1つ以上のデバイスページに記憶可能なデバイスデータ(この例では、MBCデータ)ができあがる。SBCデータを含むこのデバイスデータ(すなわち、MBCデータ)をMBCセルアレイ130のデバイスページに書き込むことを制御回路150がデータ統合部120に指示すると、ステップ205でSBCデータが該当するMBCページに書き込まれる。
【0042】
補足データは、ホストデバイス101から受信しフラッシュメモリデバイス102のキューに投入されている別のホストデータであることができる。補足データは、他のデバイスデータの一部として予めNANDフラッシュメモリセルアレイ130に記憶され、そこから解析されるホストデータであることができる。補足データはダミーデータであることができる。書き込み操作についていうと、メモリセルアレイ130のデバイスページはブロックにグループ化され、それぞれのブロックの中で論理的観点から逐次書き込まれていくから、デバイスページの物理アドレスは必ずしも連続しない。換言すると、データを、不連続のデバイスページ、散在するデバイスページ、あるいは配置が不規則なデバイスページに書き込むことができ、不連続のデバイスページ、散在するデバイスページ、あるいは配置が不規則なデバイスページに書き込まれたデータは、あたかも隣接するデバイスページに記憶されていたかのように、論理的にホストデバイスに導入される。
【0043】
コントローラ103は、パーシャルプログラミング(「PPP」)方式を使ってホストデータを書き込もうとするホストデバイス101に応じて、擬似パーシャルページプログラミング方式を使ってこれをフラッシュメモリセルアレイ130に書き込むことができる。擬似PPP方式を使用すると、補足データとしてダミーデータを使用することを含むことができる。例えば、停電保護を改善するため、書き込み済みデバイスページに隣接しないデバイスページにホストデータをコントローラ103によって書き込むことができる。
【0044】
しかし、SBCオペコード111が「書き込み」命令でなければ(ステップ203にて「No(いいえ)」と示される)、オペコードが「読み出し」命令か否かをステップ204でチェックする。SBCオペコードがMBCデータの一部としてデバイスページに記憶されているSBCデータをメモリセルアレイ130から読み出す「読み出し」命令ならば(ステップ206にて「Yes(はい)」と示される)、次に制御回路150はステップ207で、メモリセルアレイ130からMBCデータを読み出し(141に示される)、MBCデータからSBCデータを解析することをデータ解析部140に指示する(152に示される)。ステップ208で制御回路150が解析されたSBCデータをホストデバイス101へ送信することをデータ解析部140に指示すると(152に示される)、それによって読み出し操作を完了する。
【0045】
しかし、SBCオペコード111が「読み出し」命令でなければ(206にて「No(いいえ)」と示される)、オペコード111は、MBCデータの一部としてデバイスブロックに記憶されているSBCデータをメモリセルアレイ130から消去する「消去」命令である。ステップ209では、コントローラ103が内部で(例えば、翻訳表154で)SBCデータを消去済みとマークし、SBCデータが消去されたことを伝えるメッセージをホストデバイス101へ送信する。コントローラ103は、論理アドレス112を用いてMBCブロックの物理アドレスを特定した後、オプションステップ210で、SBCデータが入っているMBCブロックからSBCデータを実際に消去する。
【0046】
図1のコントローラ103のようなコントローラを使用することにより、あたかもMBCフラッシュメモリデバイスがSBCフラッシュメモリデバイスであるかのように、SBCホストデバイスがMBCフラッシュメモリデバイスと連動できる(つまり、MBCフラッシュメモリデバイスに向けて「書き込み」、「読み出し」、「消去」命令を発行できる)ことに留意するべきである。また、本開示がNAND MBCフラッシュメモリデバイスと連動するNAND SBCホストデバイスに限定されないことに留意するべきである。ホストデータがデバイスページより小さいホストページにグループ化されるのならば、どんなNANDホストデバイスならびにNANDフラッシュメモリデバイスにも本開示を適用できる。例えば、MBCホストデバイスのデータページがMBCフラッシュメモリデバイスのデータページより小さいならば、MBCフラッシュメモリデバイスと連動するMBCホストデバイスにも本開示を適用できる。
【0047】
SBCパーシャルページプログラミング(「PPP」)のエミュレーション
図3は、SBCフラッシュメモリデバイスで使われているパーシャルページプログラミング(「PPP」)の本開示による典型的なエミュレーションを示す。ホストデバイス101(一例において、SBCデバイス)は、PPPの使用を望む場合にこれを通常どおり使用でき、フラッシュメモリデバイス102は、後述する擬似PPP方式を用いてホストデバイスから発行される「書き込み」命令に応じる。通常、ホストデバイスが様々なデータ要素を1つの論理SBCページに書き込むことを望む場合には、擬似PPP方式によりMBCフラッシュメモリデバイスの1つの物理MBCページにそれらのデータ要素が書き込まれる。
【0048】
図3を図1と関連して説明する。簡潔を図るために、ホストデバイス101はSBCデバイスと仮定し(つまり、ホストデバイス101はSBCページにグループ化されたデータを扱う)、フラッシュメモリデバイス102はMBCデバイスと仮定する。ホストデバイス101はSBCデータ(310、311、および312と指示)をフラッシュメモリデバイス102へ一度に1データ要素ずつ送信する。SBCホストデバイスはパーシャルページプログラミング(PPP)を使用できるため、従来のMBCフラッシュメモリデバイスはそのような操作を処理できるようにはなっていなくても、図3はMBCフラッシュメモリデバイス102がどのようにしてPPPを処理するかを示す。
【0049】
ホストデバイス101は、MBCフラッシュメモリデバイス102へSBCデータ310を送信するため、論理アドレス301のSBCページに典型的なSBCデータ310を書き込み、時間t1にSBCページ301を「書き込み」コマンド列に埋め込んでフラッシュメモリデバイス102へ送信する。データページ301内の記憶スペース320はデータがない、すなわち、空の状態で、SBCストレージデバイスでは、データ310を消去せずともページ301に追加のデータを1つずつ書き込むことができるため、ここで説明するやり方でページ301にデータを書き込むことは「パーシャルページプログラミング」と呼ばれている。MBCフラッシュメモリデバイス102はホストインターフェイス105を通じてデータ310を受信する。MBCセルアレイ130にデータ310を書き込んでホストデバイス101から発行された書き込みコマンドを完了するにあたっては、数通りのオプションがある。1オプションでは、データ統合部120を使ってデータ310に補足データを統合し、メモリセルアレイ130のMBCページに書き込めるデータ構造(すなわち、デバイスデータ)を作る。このオプションでは、前述したように、補足データはフラッシュメモリデバイス102でこれから受信する別のホストデータか、フラッシュメモリデバイス102のキューに入っているホストデータか、予めメモリセルアレイ130に記憶されているデータである。後ほど詳述する第2のオプションでは、フラッシュメモリデバイス102でPPPに似たやり方でデータ310を扱う(PPP操作に似ていることを、ここでは「擬似PPP」と呼ぶ)。この擬似PPPオプションを実施するには、MBCページ330にデータ310を記憶して記憶スペース331を空のまま放置するか、データ統合部120でデータ310にダミーデータを統合してMBCデータを作成し、作成したMBCデータをメモリセルアレイ130に書き込む。
【0050】
SBCホストデバイス101は時間t2に、論理ページ301の空きスペース320にデータ311を書き込み、ページ301を記憶するためにフラッシュメモリデバイス102へ送信する。データ311をページ301に書き込むことにより、ページ301の空きスペースは小さくなる(321に示される)。一部のMBCフラッシュメモリデバイスでは事前に物理ページを消去しない限り物理ページへの書き込みは1回しか行えないため、メモリセルアレイ130の物理ページ330に空きスペースが残っていても(すなわち、スペース331)、物理ページ330にはデータ311を書き込めない。つまり、フラッシュメモリデバイスは、受信するデータをメモリセルアレイ130内の別の空きMBC物理ページに書き込むことを余儀なくされる。しかし、PPP操作のように振舞うため、データ解析部140は物理ページ330からデータ310を抽出し、データ統合部120がこれに受信したデータ311を統合する(すなわち、付け足す)。そして、データ統合部120はデータ310と付け足されたデータ311をメモリセルアレイ130内の別の空き物理ページ340に書き込む。同様に、ホストデバイス101は時間t3にデータ312をフラッシュメモリデバイス102へ送信するが、たとえ物理ページ340に十分な空きスペース(すなわち、スペース341)が残っていても、物理ページ340にはデータ312を書き込めない。代わりに、データ解析部140が物理ページ340からデータ310とデータ311を抽出し、データ統合部120がデータ310とデータ311に受信データ312を統合する(すなわち、付け足す)。そして、データ統合部120はデータ310と、データ311と、新たに付け足されたデータ312とをメモリセルアレイ130内の別の空き物理ページ350に書き込む。代替の操作モードとして、データ310、311、および312を物理ページ330、340、および350にそれぞれ書き込み、それらをデータ統合部120で統合し、メモリセルアレイ130内の別の空き物理ページに書き込むこともできる。図3の例ではMBCページへの書き込みが相次いで行われるので、物理MBCページ330、340、および350は物理的に互いに隣接している。
【0051】
ホストデバイス101等のホストデバイスは、パーシャルプログラミング(すなわち、PPP)を使ってデータ310、311、および312等のデータ要素を論理ページ301等の論理ページに書き込む場合に、相手方のフラッシュメモリデバイス(フラッシュメモリデバイス102等)があたかもSBCフラッシュメモリデバイスであるかのごとく、書き込みを果たすことができる。相手方のフラッシュメモリデバイスは、前述した擬似PPP方式を用いて個々のホストデバイスデータ要素を同じ物理MBCページ(この例では、MBCページ350)に書き込むことでホストが発行した書き込み命令に応じる。ホストデバイス101が擬似PPP方式を意識することはなく、ホストデバイス101にとっては、フラッシュメモリデバイス102がデータ要素310、311、および312を1つの物理SBCページに書き込んだことになる。
【0052】
コントローラ103は、ホストデバイス101から届くSBCページの論理アドレスをメモリアレイ14内のMBCページ(すなわち、デバイスページ)の物理アドレスに翻訳する翻訳表154を管理する。コントローラ103はメモリセルアレイ130の中でデータを記憶するデバイスページの物理アドレスを翻訳表154から絶えず把握し、データ解析部140がメモリセルアレイ130からデータを抽出したり、データ統合部120がメモリセルアレイ130にデータを書き込むたびに、翻訳表154を更新したりする。また、場合によってはホストデバイスからメモリコマンドを受信次第直ちに、あるいはメモリコマンドに応じて、コントローラ103がメモリセルアレイ130の中でデバイスデータの一部または全部を一時的にまたは永久的に配置換えする必要がある。このときコントローラ103は、データの一部または全部の配置換えにともない一時的な論理および物理アドレスや最終的な論理および物理アドレスにより翻訳表154を更新する。フラッシュメモリ管理における翻訳表の取り扱いは当該技術分野で周知であり、ここでは詳述しない。
【0053】
ページ間依存、P/Eサイクル、信頼性
フラッシュメモリでは、個々のフラッシュセルに記憶できるビットが多いほど動作上の問題が増え、フラッシュセルが有用になるようにするには、それらの問題を解決する必要がある。ここではMBCフラッシュメモリとSBCフラッシュメモリに言及するが、1セル当り2ビットを記憶するMBCデバイスや1セル当り3ビット以上を記憶するMBCデバイスにも同じ原理が当てはまる。
【0054】
ページ間依存に関していうと、MBCフラッシュメモリは停電時に致命的なデータ書き込み/読み出しエラーを被りやすい。これは、2ページ間の物理的な近さに部分的に起因する。他方、SBCフラッシュメモリでそのようなエラーが生じる度合いは低い。このためMBCホストデバイスの場合は、SBCホストデバイスと違って、停電に対して特別な対策を講じる必要がある。データ統合部は、SBCホストデバイスが連続するホストページの形でホストデータを送信する場合に、停電の影響を最小限にとどめるように特別な物理デバイスページ順序(通常は隣接しない順序)でホストページを書き込む。換言すると、連続して受け取るホストページが連続するデバイスページ順序でデバイスページに記憶されるとは限らない。ときには(すなわち、ホストデバイスによって送信されるデータのタイプによっては)、さらなる停電対策としてデータの少なくとも一部分については内部でバックアップをとる必要がある。
【0055】
プログラミング/消去(P/E)サイクルと信頼性に関していうと、MBCフラッシュメモリの最大成功P/Eサイクル数はSBCフラッシュメモリより格段に低く、その信頼性は低P/Eサイクル数によって損なわれている。一部のSBCホストデバイスではさほど厳密ではないフラッシュ管理アルゴリズムが使われているが、これはSBCデバイスのP/E限界が高く信頼性に優れるという前提によるもので、実際、多くのタイプのSBCフラッシュメモリに当てはまる。制御回路150は、結果的にP/Eサイクル数が増えるようなやり方でメモリセルアレイ130のデバイスページにホストデータを移す。つまり、制御回路150は、翻訳表154に入っている情報をもとに各デバイスページのP/Eサイクル数を割り出し、データ統合部120を使って消耗が少ないデバイスページにホストデータを書き込む。さもないと(前述した対策がコントローラ103で実施されないと)、いわゆる「標準」SLCフラッシュメモリで、後ほどSBCホストデバイスが読み出すことになるかもしれないデータが、思ったより早く壊れてしまう。「早く」とはP/Eサイクルが少ないことを意味する。
【0056】
P/Eサイクルのほかにもフラッシュメモリデバイスの信頼性を左右する要因はある。例えば、エラー数やフラッシュセルのデータ保持能力に左右される。ホストデバイスが期待する信頼性を達成するには、場合によっては制御回路150で1つ以上の内部パラメータ(デバイスページの機能に関するパラメータ)を使ってメモリセルアレイ130の中でデバイスデータを再配置しなければならない。
【0057】
前述した対策を促進するため(すなわち、ホストデータを特別な順序で物理デバイスページに書き込むこと、ホストデータをデバイスページに移すこと、デバイスページ内でデバイスデータを再配置すること)、データ統合部はマッピングアルゴリズムを使用し、関係する論理・物理アドレスとデータ位置に関する情報により翻訳表154を更新する。この情報は、前述した種々の性能態様に関連する。
【0058】
本願の説明と特許請求の範囲で動詞「備える」、「含む」、および「有する」とこれらの同根語が使われる場合には、動詞の目的語は必ずしも動詞の主語の部材、構成品、要素、部品を網羅しているとは限らない。
ここで使用する冠詞「a 」および「an」は、冠詞の文法的対象が文脈次第で1つであったり、2つ以上であったりすること(少なくとも1つであること)を意味する。例えば、「an element(要素)」は、文脈次第で1つの要素を意味することもあれば2つ以上の要素を意味することもある。
ここで使用する用語「含まれる」は、句「含まれるが限定されるわけではない」を意味し、かつこれと互換的に使われる。
ここで使用する用語「または」と「および」は、文脈から別様が明白でない限り用語「および/または」を意味し、かつこれと互換的に使われる。
ここで使用する用語「例えば」は、句「例えるが、限定されるわけではない」ことを意味し、かつこれと互換的に使われる。
【0059】
これまで本発明の典型的な実施形態を説明してきたが、開示された例示的な実施形態の修正が本発明の範囲内にあることは当業者にとって明白である。例えば、ホストデバイスは必ずしもSBCホストデバイスでなくともよく、本開示は、タイプの異なるホストデバイスやタイプの異なるNANDフラッシュデバイスにも、変更すべきところは変更し、同様に応用できる。開示された発明のさらなる変更、修正、改良は、前述した説明に明記されていないが本発明の趣旨と範囲の中にある。

【特許請求の範囲】
【請求項1】
フラッシュメモリデバイスにホストデータを書き込む方法であって、
a)個別に書き込み可能なデバイスページにグループ化されたNANDフラッシュメモリセルアレイにホストデータを書き込む書き込み命令を、フラッシュメモリデバイスのコントローラにより、ホストデバイスから受信するステップと、
b)1つ以上の前記デバイスページに記憶可能なデバイスデータを作成するため、前記コントローラにより前記ホストデータに補足データを統合するステップと、
c)前記コントローラにより1つ以上の前記デバイスページに前記デバイスデータを書き込むステップと、
を含む方法。
【請求項2】
請求項1記載の方法において、
前記補足データは、前記ホストデバイスから受信され、かつ前記フラッシュメモリデバイスのキューに投入されている別のホストデータである方法。
【請求項3】
請求項1記載の方法において、
前記補足データは、他のデバイスデータの一部として予め前記NANDフラッシュメモリセルアレイに記憶されていて、かつそこから解析されるホストデータである方法。
【請求項4】
請求項1記載の方法において、
前記デバイスページはブロックにグループ化され、各ブロック内で論理的観点から逐次書き込まれていくため、それらの物理アドレスは必ずしも連続しない方法。
【請求項5】
請求項1記載の方法において、
前記ホストデータは、パーシャルページプログラミング方式を用いてホストデータを書き込む前記ホストデバイスに応じて、擬似パーシャルページプログラミング方式を用いて前記NANDフラッシュメモリセルアレイに前記コントローラにより書き込まれる方法。
【請求項6】
請求項5記載の方法において、
前記コントローラによる前記擬似パーシャルページプログラミング方式を用いることは、前記補足データとしてダミーデータを用いることを含む方法。
【請求項7】
請求項1記載の方法において、
前記ホストデータは、書き込み済みデバイスページに隣接しないデバイスページに前記コントローラにより書き込まれる方法。
【請求項8】
フラッシュメモリデバイスからホストデータを読み出す方法であって、
a)個別に読み出し可能なデバイスページにグループ化されたNANDフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスページに記憶されているホストデータを読み出す読み出し命令を、ホストデバイスから受信するステップと、
b)前記デバイスデータから前記ホストデータを解析するステップと、
c)前記解析されたホストデータを前記ホストデバイスへ送信するステップと、
を含む方法。
【請求項9】
フラッシュメモリデバイスからホストデータを消去する消去命令を実行する方法であって、
a)個別に消去可能なデバイスブロックにグループ化されたNANDフラッシュメモリセルアレイから、デバイスデータの一部としてデバイスブロックに記憶されているホストデータを消去する消去命令を、ホストデバイスから受信するステップと、
b)前記ホストデータを消去済みとマークするステップと、
c)前記ホストデータが消去されたことを伝えるメッセージを前記ホストデバイスへ送信するステップと、
を含む方法。
【請求項10】
請求項9記載の方法において、
d)前記ホストデータを含む前記デバイスブロックを消去するステップをさらに含む方法。
【請求項11】
フラッシュメモリデバイス用コントローラであって、
a)ホストデバイスからホストデータを受信するように構成されたホストNANDインターフェイスと、
b)前記ホストデータに補足データを統合することでデバイスデータを作成し、かつ前記フラッシュメモリデバイスのNANDフラッシュメモリセルアレイのデバイスページに前記デバイスデータを書き込むように構成されたデータ統合部と、
を備えるコントローラ。
【請求項12】
請求項11記載のコントローラにおいて、
前記補足データは、前記ホストデバイスから受信され、かつ前記NANDフラッシュメモリセルアレイに記憶するために前記フラッシュメモリデバイスのキューに投入されている別のホストデータであるコントローラ。
【請求項13】
請求項11記載のコントローラにおいて、
c)デバイスデータから補足データを解析するように構成されたデータ解析部をさらに備えるコントローラ。
【請求項14】
請求項13記載のコントローラにおいて、
前記補足データは、デバイスデータから解析される別のホストデータであるコントローラ。
【請求項15】
請求項12記載のコントローラにおいて、
前記データ解析部は、所定のホストデータを読み出すコマンドを前記ホストデバイスから受信すると、デバイスデータから前記所定のホストデータを解析するようにさらに構成されるコントローラ。
【請求項16】
請求項11記載のコントローラにおいて、
前記デバイスページは、デバイスブロックにグループ化され、前記データ統合部は、各ブロック内でデータを論理的観点から逐次デバイスページに書き込むようにさらに構成されるため、それらの物理アドレスは必ずしも連続しないコントローラ。
【請求項17】
請求項11記載のコントローラにおいて、
所定のホストデータを消去する命令を前記ホストデバイスから受信すると、前記所定のホストデータは前記コントローラにより「消去済み」とマークされ、前記所定のホストデータが消去されたことを伝えるメッセージが前記ホストデバイスへ送信されるコントローラ。
【請求項18】
請求項11記載のコントローラにおいて、
d)パーシャルページプログラミング方式を用いてホストデータを書き込む前記ホストデバイスに応じて、擬似パーシャルページプログラミング方式を用いて前記フラッシュメモリセルアレイに前記ホストデータを書き込むように構成された制御回路をさらに備えるコントローラ。
【請求項19】
請求項18記載のコントローラにおいて、
前記擬似パーシャルページプログラミング方式を用いるにあたって、前記制御回路は前記補足データとしてダミーデータを用いるコントローラ。
【請求項20】
請求項18記載のコントローラにおいて、
前記制御回路は、所定のホストデータを消去する命令を前記ホストデバイスから受信すると、前記所定のホストデータを消去済みとマークし、かつ前記所定のホストデータが消去されたことを伝えるメッセージを前記ホストデバイスへ送信するように構成されるコントローラ。
【請求項21】
請求項11記載のコントローラにおいて、
前記ホストデータは1セル当りMビットのデータを記憶するメモリセルアレイ向けにフォーマットされ、前記フラッシュメモリデバイスのメモリセルアレイは1セル当りNビットのデータを記憶し、NとMは整数であり、NはMより大きいコントローラ。
【請求項22】
請求項21記載のコントローラにおいて、
Nは2に等しく、Mは1に等しいコントローラ。
【請求項23】
請求項21記載のコントローラにおいて、
Nは4に等しく、Mは1に等しいコントローラ。
【請求項24】
請求項21記載のコントローラにおいて、
Nは4に等しく、Mは2に等しいコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2011−508357(P2011−508357A)
【公表日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2010−540215(P2010−540215)
【出願日】平成20年1月8日(2008.1.8)
【国際出願番号】PCT/IL2008/000040
【国際公開番号】WO2009/083945
【国際公開日】平成21年7月9日(2009.7.9)
【出願人】(508159260)サンディスク アイエル リミテッド (33)
【Fターム(参考)】