(57)【要約】  １つ以上のキャッシュ管理ポリシーを実施するための方法、装置およびコンピュータ媒体を本願明細書で開示する。或る実施形態では、記憶デバイスのフラッシュメモリは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域とそれぞれの主記憶領域とを含む。外部ホストデバイスから受け取ったデータについて、受け取ったデータがどの主記憶領域に宛てられているかを判定し、これによりその受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定する。受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータは指定されたターゲットダイのキャッシュ記憶領域に書き込まれる。
2012507768.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリデバイスであって、
ａ）それぞれのキャッシュ記憶領域およびそれぞれの主記憶領域をそれぞれ含む複数のフラッシュメモリダイを含むフラッシュメモリと、
ｂ）制御回路であって、
ｉ）外部ホストデバイスからデータを受け取り、
ｉｉ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、
ｉｉｉ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むように動作し得る制御回路と、
を備えるフラッシュメモリデバイス。
【請求項２】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記外部ホストデバイスから受け取ったデータのすべてが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるように動作し得るフラッシュメモリデバイス。
【請求項３】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記外部ホストデバイスから受け取った一部のデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれ、前記外部ホストデバイスから受け取った他のデータが初めにキャッシュ記憶領域に書き込まれることなく主記憶領域に書き込まれるように動作し得るフラッシュメモリデバイス。
【請求項４】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを唯一のキャッシュ記憶領域に書き込むように動作し得るフラッシュメモリデバイス。
【請求項５】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記外部ホストデバイスから受け取る前記受け取ったデータのためのアドレス情報に従って前記受け取ったデータがどの主記憶領域に宛てられているかを判定するように動作し得るフラッシュメモリデバイス。
【請求項６】
請求項１記載のフラッシュメモリデバイスにおいて、
前記複数のフラッシュメモリダイの各ダイのために、それぞれの主記憶領域は、フラッシュセル当たりにそれぞれのキャッシュ記憶領域より多くのビットを記憶するように構成されるフラッシュメモリデバイス。
【請求項７】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記指定されたターゲットダイのキャッシュ記憶領域から前記指定されたターゲットダイの主記憶領域への前記受け取ったデータの局所的コピー操作を、前記局所的コピー操作中にデータが前記ターゲットダイの記憶領域から消えないように、行うようにさらに動作し得るフラッシュメモリデバイス。
【請求項８】
請求項７記載のフラッシュメモリデバイスにおいて、
ｉ）前記制御回路は、前記複数のフラッシュメモリダイの各ダイのためにそれぞれの局所的コピー操作を実行するように動作し、
ｉｉ）前記制御回路は、前記複数のフラッシュメモリダイのうちの別々のダイのために前記局所的コピー操作を同時に実行するように動作し得るフラッシュメモリデバイス。
【請求項９】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、ソフトウェアおよびファームウェアのうちの少なくとも一方を含むフラッシュメモリデバイス。
【請求項１０】
請求項１記載のフラッシュメモリデバイスにおいて、
Ａ）前記複数のフラッシュメモリダイの各ダイはそれぞれの複数のプレーンを含み、各プレーンはそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含み、
Ｂ）前記制御回路は、
ｉｖ）前記受け取ったデータが前記ターゲットダイ上のどのプレーン主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットプレーンとして前記ターゲットダイのプレーンのうちの１つを指定し、
ｖ）前記受け取ったデータがプレーン主記憶領域に書き込まれる前にプレーンキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイ上の前記指定されたターゲットプレーンのプレーンキャッシュ記憶領域に書き込むようにさらに動作し得るフラッシュメモリデバイス。
【請求項１１】
外部ホストデバイスに結合されているフラッシュメモリデバイスを備えるシステムにおけるデータキャッシングの方法であって、前記フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含む方法において、
ａ）前記フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取るステップと、
ｂ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定するステップと、
ｃ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
を含む方法。
【請求項１２】
請求項１１記載の方法において、
ｄ）前記受け取ったデータが主記憶領域に書き込まれるたびに、前記受け取ったデータを対応するキャッシュ記憶領域に、データが前記主記憶領域に書き込まれる前に、書き込むステップをさらに含む方法。
【請求項１３】
請求項１１記載の方法において、
ｄ）前記受け取ったデータの第１の部分を前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
ｅ）前記受け取ったデータの第２の部分を、初めに前記第２の部分をどのキャッシュ記憶領域にも書き込まずに、前記指定されたターゲットダイの主記憶領域に書き込むステップと、
をさらに含む方法。
【請求項１４】
請求項１１記載の方法において、
ｄ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを唯一のキャッシュ記憶領域に書き込むステップをさらに含む方法。
【請求項１５】
請求項１１記載の方法において、
ステップ（ｂ）の前記指定するステップは、前記外部ホストデバイスから受け取る前記受け取ったデータのためのアドレス情報に従って実行される方法。
【請求項１６】
請求項１１記載の方法において、
ｄ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、
ｉ）フラッシュセル当たりに第１の数のビットを提供する第１の書き込みモードを用いて、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
ｉｉ）その後、フラッシュセル当たりに第１の数を上回る第２の数のビットを提供する第２の書き込みモードを用いて、前記受け取ったデータを前記指定されたターゲットダイの主記憶領域に書き込むステップと、
をさらに含む方法。
【請求項１７】
請求項１１記載の方法において、
ｄ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記指定されたターゲットダイのキャッシュ記憶領域から前記指定されたターゲットダイの主記憶領域へのデータの局所的コピー操作を、前記局所的コピー操作中にデータが前記ターゲットダイの記憶領域から消えないように、行うステップをさらに含む方法。
【請求項１８】
請求項１７記載の方法において、
ｉ）前記複数のフラッシュメモリダイの各ダイのためにそれぞれの局所的コピー操作を実行し、
ｉｉ）前記複数のフラッシュメモリダイのうちの別々のダイのために前記局所的コピー操作を同時に実行する方法。
【請求項１９】
請求項１１記載の方法において、
ｉ）前記方法は、前記複数のフラッシュメモリダイの各ダイがそれぞれの複数のプレーンを含み、各プレーンがそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含むシステムにおいて実行され、
ｉｉ）前記方法は、
ｄ）前記受け取ったデータが前記ターゲットダイ上のどのプレーン主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットプレーンとして前記ターゲットダイのプレーンのうちの１つを指定するステップと、
ｅ）前記受け取ったデータがプレーン主記憶領域に書き込まれる前にプレーンキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイ上の前記指定されたターゲットプレーンのプレーンキャッシュ記憶領域に書き込むステップと、
をさらに含む方法。
【請求項２０】
外部ホストデバイスに結合されているフラッシュメモリデバイスを備えるシステムにおけるデータキャッシングのためのコンピュータ可読プログラムコードが格納されるコンピュータ可読媒体であって、前記フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含み、前記プログラムコードは、
ａ）前記フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取り、
ｂ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、
ｃ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むように動作し得るコンピュータ可読媒体。
【請求項２１】
請求項２０記載のコンピュータ可読媒体において、
前記フラッシュメモリダイは複数のプレーンを含み、各プレーンはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含むコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリデバイスに関し、特に１つ以上のフラッシュキャッシュ管理ポリシーを実施するように動作し得るフラッシュメモリデバイスに関する。
【背景技術】
【０００２】
シングルビットのフラッシュメモリセルおよびマルチビットのフラッシュメモリセル
フラッシュメモリデバイスは幾年も前から知られている。多くの「従来の」フラッシュメモリデバイスにおいて、フラッシュメモリデバイスの中の各メモリセルは１ビットの情報を記憶する。従って、１つのビットをフラッシュメモリセルに格納する従来の方法は、メモリセルの２つの状態をサポートすることによっている。１つの状態は論理「０」を表し、他方の状態は論理「１」を表す。
【０００３】
フラッシュメモリセルにおいて、その２つの状態は、セルのチャネル（セルのトランジスタのソース部とドレイン部とを結合させる領域）より上にフローティングゲートを位置させ、フローティングゲート内に蓄積されている電荷の量について２つの有効な状態を有することにより実現される。通例、一方の状態は、フローティングゲート内の電荷がゼロであって、消去された後のセルの書かれていない状態であり（普通、「１」状態を表すと定義される）、他方の状態は、フローティングゲートに或る量の負電荷が存在する（普通、「０」状態を表すと定義される）。ゲートに負電荷があると、セルのトランジスタのしきい値電圧（すなわち、トランジスタを導通させるためにトランジスタのコントロールゲートに印加されなければならない電圧）が増大する。セルのしきい値電圧を検査することによって、記憶されているビットを読むことが可能である。しきい値電圧が高いほうの状態であればビット値は「０」であり、しきい値電圧が低いほうの状態であればビット値は「１」である。実際には、セルのしきい値電圧を精密に読む必要はない。必要なのは、２つの状態のうちのどちらにセルが現在置かれているかを正しく識別することだけである。この目的のためには、セルのしきい値電圧を２つの状態の間に存在する基準電圧と比較し、セルのしきい値電圧が基準値より下にあるか上にあるかを判定すれば充分である。
【０００４】
図１Ａ（従来技術）は、これがどのように働くかを図表によって示す。具体的には、図１Ａは、セルの大集団のしきい値電圧の分布を示す。フラッシュデバイスの中のセルは、その特性および挙動に関して正確に同一ではないので（例えば、シリコン構造の中の不純物濃度の小さな変動あるいは欠陥に起因して）、セルのすべてに同じプログラミング操作を加えてもセルのすべてが正確に同じしきい値電圧を持つようにはならない。代わりに、しきい値電圧は、図１Ａに示されているように分散する。「１」の値を記憶するセルは通例負のしきい値電圧を有し、セルのほとんどは図１Ａの左側のピーク（１と称されている）の中央電圧値に近いしきい値電圧を有し、少数のセルが左側ピークの中央電圧より低いかあるいは高いしきい値電圧を有する。同様に、「０」の値を記憶するセルは通例正のしきい値電圧を有し、セルのほとんどは図１Ａの右側ピーク（０と称されている）の中央電圧に近いしきい値電圧を有し、少数のセルが右側ピークの中央電圧より低いかあるいは高いしきい値電圧を有する。
【０００５】
近年、「マルチレベルセル（ＭＬＣ）」を用いる新種のフラッシュデバイスが市場に現れた。前に説明したように、セル当たりに単一のビットを有するフラッシュメモリは複数、すなわち２つのレベルを使用するので、「マルチレベルセル」という用語は紛らわしい。従って、２レベルのメモリセルを指すために以降は「シングルビットセル（ＳＢＣ）」という用語が使用され、２より多いレベル、すなわちセル当たりに１より多いビットのメモリセルを指すために、これ以降は「マルチビットセル（ＭＢＣ）」という用語が使用される。現在最も一般的なＭＢＣフラッシュメモリはセル当たりに２ビットを有するものであるので、そのようなＭＢＣメモリを用いて以下で例が挙げられる。しかし、本願明細書での開示がセル当たりに２より多いビットをサポートするフラッシュメモリデバイスにも同様に当てはまることが理解できるはずである。２ビットの情報を記憶する単一のＭＢＣセルは、４つの異なる状態のうちの１つにある。セルの「状態」はセルのしきい値電圧によって表されるので、ＭＢＣセルは、セルのしきい値電圧について４つの異なる有効な範囲をサポートする。図１Ｂ（従来技術）は、セル当たりに２ビットの代表的なＭＢＣセルについてのしきい値電圧分布を示す。期待されるとおりに、図１Ｂは、それぞれ１つの状態に対応する４つのピークを有する。ＳＢＣの場合と同じく、各状態は実際には１つの電圧範囲であって、単一の電圧ではない。セルの内容を読むとき、セルのしきい値電圧は一定の電圧範囲内に正しく識別されなければならない。例えば４状態でのＭＢＣ動作向けに設計されているセルは、通例、２状態を有するＳＢＣセルとして動作し得る。例えば、同じデバイスの中でＭＢＣモードとＳＢＣモードとが共存し得ることが知られている。従って、デバイスの或る部分がＭＢＣモードで最高密度で動作し、他の部分がＳＢＣモードでより良い性能を提供するように使用されるように指定することができる。
【０００６】
ＭＢＣデバイスは、著しいコスト優位性を提供する。セル当たりに２ビットを有するＭＢＣデバイスは、同様の容量のＳＢＣより約半分のシリコンウェハ面積を必要とする。しかし、ＭＢＣフラッシュを使用することには問題が存在する。ＭＢＣメモリの平均読み取り時間および平均書き込み時間はＳＢＣメモリのよりも長く、性能が悪くなるという結果が生じる。また、ＭＢＣの信頼性はＳＢＣより低い。ＭＢＣにおけるしきい値電圧範囲間の差はＳＢＣの場合より遥かに小さい。従って、ＳＢＣでは２状態間のギャップが大きいために取るに足りないしきい値電圧の外乱（例えば、しきい値電圧のドリフトを引き起こす蓄積電荷のリークあるいは動作している近隣のセルからの干渉）でも、ＭＢＣセルを１つの状態から別の状態に転移させ、誤りビットを生じさせる結果をもたらすことがある。最終結果は、ＭＢＣセルの性能仕様はデータ保持時間の観点から、あるいは多数の書き込み／消去サイクルに対するデバイスの耐久性の観点から、より低いということである。
【０００７】
フラッシュパルスパラメータについての第１の議論
前のセクションは、ＭＢＣデバイスと、マルチビットセルおよびシングルビットセルの両方を含む「ハイブリッド」デバイスとに関連していた。次の３つのセクションは、ＭＢＣデバイス、ハイブリッドデバイスの両方、およびＳＢＣだけのデバイスに関連する。
図１Ｃおよび１Ｄは、フラッシュメモリの１つのセルにおける０のビットまたは１のビットである１つのビットの格納を示す。図１Ｃ〜１Ｄの例はＳＢＣメモリに関連する。歴史的理由から、フラッシュメモリにデータを格納するこのプロセスは、フラッシュメモリを「プログラミング」すると呼ばれる。名目上、０のビットはセルのしきい値電圧ＶO により表され、１のビットはセルのしきい値電圧Ｖ1 により表される。初めは、セルは名目しきい値電圧Ｖ1 を有する。例えば、フラッシュメモリの１つのブロックが消去された後、すべてのセルが名目しきい値電圧Ｖ1 を有する。セルの初期化において不正確さが避けられないために、実際のしきい値電圧は、分布曲線１０に従って名目しきい値電圧Ｖ1 の周りに分布する。次に、ゼロのビットを記憶するべき各セルに対して、セルのシリコン基板からセルの酸化物層を通してセルのフローティングゲートに電子を注入するために、プログラミング電圧パルス１４の列１２が印加される。電子は量子力学的トンネリングあるいはホットインジェクションによって酸化物層を通って移動し、さらにセルの構造が不均一であるので、しきい値電圧をＶ1 からＶ0 へ増大させるために充分な電子を注入するのに必要な電圧を前もって正確に予測することはできない。第１のパルス１４の電圧は開始電圧ＶS ＋プログラミング電圧増加分ΔＶである。その後のどのパルス１４も、その前のものよりΔＶだけ高い。各パルス１４が印加された後、セルは、そのしきい値電圧がＶ0 に充分に近いかどうか調べるためにテストされる。しきい値電圧がＶ0 に充分に近ければ、セルのプログラミングは完了している。そうでなければ、次のパルス１４がセルに印加されてセルのしきい値電圧が再びテストされる。初めのしきい値電圧が名目電圧Ｖ1 の周りに分布し、さらにプログラミングには不正確さがあるので、０のビットを記憶するセルのしきい値電圧も、分布曲線１６に従って、名目しきい値電圧Ｖ0 の周りに分布する。
【０００８】
データは、セルのしきい値電圧を感知することによってフラッシュメモリセルから読み出される。Ｖ0 とＶ1 とから等距離の遷移しきい値電圧ＶT より大きなしきい値電圧は０のビットと解釈される。ＶT より小さなしきい値電圧は１のビットと解釈される。時間が経つと、主としてフローティングゲートから基板へ戻る電子のトンネリングのために、分布１０および１６は広がりがちである。しきい値電圧Ｖ0 およびＶ1 の間の差は、フラッシュメモリの寿命全体を通じて、分布１６の下端１８がＶT より下がる可能性および分布１０の上端２０がＶT より上がる可能性が無視し得るように、充分に大きく選択される。
【０００９】
フラッシュパルスパラメータおよび
「低速」書き込みモード対「高速」書き込みモードについての議論
図１Ｅおよび１Ｆは、図１Ｃ〜１Ｄに示されている書き込みモードに対して「高速」書き込みモードである書き込みモードに従うフラッシュメモリのセルにおける０のビットのプログラミングを示す。図１Ｃのプログラミング電圧増加分ΔＶの２倍の大きさのプログラミング電圧増加分を有するプログラミング電圧パルスの列２２が、セルのしきい値電圧がＶ0 に充分近くなるまで、セルに印加される。図１Ｅおよび１Ｆのセルは、図１Ｃおよび１Ｄのセルより短い時間でプログラムされる。事情によっては、この「スピード利点」は、結果として得られたしきい値電圧のＶ0 の周りでの分布２４が、参考のために図１Ｅに極めて細い線で示されている分布１６より広いという犠牲を払って得られ得る。従って、図１Ｅ〜１Ｆのプログラミング手法は、図１Ｃ〜１Ｄの比較的に「低速の」書き込みモードに比べて割合に「高速の」書き込みモードを提供する。
【００１０】
前述したように、ＭＢＣメモリの平均読み取り時間および平均書き込み時間はＳＢＣメモリよりも長く、その結果として性能が悪い。従って、ＳＢＣメモリへのデータ書き込みは、ＭＢＣメモリへのデータ書き込みと比べて比較的に「高速の」書き込みモードを提供することができる。さらに、図１Ｅ〜１Ｆのプログラミング手法を用いるデータ書き込みは、図１Ｃ〜１Ｄのプログラミング手法を用いるデータ書き込みと比べて比較的に「高速の」書き込みモードを提供する。
【００１１】
これらが単に２つの例であるに過ぎず、比較的に「低速の書き込みモード」および比較的に「高速の書き込みモード」を得るための他の方法が当該技術分野にあるということが当業者であれば理解できるはずである。さらに、図１Ｃ〜１Ｆの議論はＳＢＣという特定の場合に関連したけれども、図１Ｃ〜１Ｆを参照して記載された原理がＭＢＣにも同様に当てはまるということが分かる。
【００１２】
ホストデバイスに結合されたフラッシュデバイスについての議論
図２Ａは、ホストデバイス３１０と、コントローラ２８０およびフラッシュメモリ２７０を含むフラッシュメモリデバイス２６０とを含む代表的なシステムのブロック図である。ホストデバイス３１０とフラッシュメモリデバイス２６０とは、それぞれのデバイスポート３５０、２５０を介して結合され、通信リンク３００を介して通信する。
ホストデバイス３１０とフラッシュデバイス２６０とは、図２Ａでは別個のデバイスとして示されているけれども、或る実施形態ではフラッシュデバイス２６０はホストデバイスのハウジングの中に配置され得るということが分かる。あるいは、フラッシュデバイス２６０は、ホストデバイスのハウジングの外に配置され得る。
【００１３】
別のインプリメンテーションでは、ホストデバイス３１０は、フラッシュメモリ２７０に格納されているデータを読み出しおよび／またはフラッシュメモリ２７０にデータを書き込む要求をフラッシュメモリ記憶デバイス２６０に送る。
ホストデバイス３１０が書き込みコマンドをフラッシュデバイス２６０に送るときには、フラッシュデバイス２６０がデータをフラッシュメモリ２７０になるべく速く書き込む必要があるかもしれないということが特に言及される。一方、前述したように、時には他の考慮事項（例えば、より大きなデバイス容量および／または信頼性が必要であること）が、可能な最高速書き込みモードより遅い「より低速の」書き込みモードの使用を必要とすることがある。
この目的のために、図２Ｂに示されているように、フラッシュデバイスではフラッシュメモリ２７０がキャッシュ記憶領域２７２と主記憶領域２７４との両方を含むのが普通である。受信データを、少なくともいくらかの時間、キャッシュ記憶領域２７２に書き込むことができ、後でキャッシュ記憶領域２７２から主記憶領域２７４にコピーすることができる。
【００１４】
別のインプリメンテーションでは、主記憶領域２７４のために使用される書き込みモードより速い「より高速の書き込みモード」を用いてキャッシュ記憶領域２７２への書き込みが行われ、また／あるいは主記憶領域２７４はキャッシュ記憶領域２７２より大きい（すなわち、より大きな容量を有する）。
１つの特定の例では、キャッシュ記憶領域２７２は、各フラッシュセルにＫビットのデータが格納されるフラッシュブロックを含み、Ｋは正の整数であり、主記憶領域２７４は、各フラッシュセルにＬビットのデータが格納されるフラッシュブロックを含み、ＬはＫを上回る正の整数である。
キャッシュ記憶領域および主記憶領域を含むフラッシュメモリにデータを格納するための改善された手法および装置に対する継続的なニーズが存在する。
【発明の概要】
【００１５】
或る実施形態は、ダイ内キャッシュデータ転送操作を許し、同時にダイ間キャッシュデータ転送操作を禁じる第１のフラッシュキャッシングポリシーを実施するための方法および装置に関連する。或る実施形態は、プレーン内キャッシュデータ転送操作を許し、同時にプレーン間キャッシュデータ転送操作を禁じる第２のフラッシュキャッシングポリシーを実施するための方法および装置に関連する。
【００１６】
フラッシュメモリデバイスが初めて本願明細書で開示され、このフラッシュメモリデバイスは、ａ）それぞれのキャッシュ記憶領域およびそれぞれの主記憶領域をそれぞれ含む複数のフラッシュメモリダイを含むフラッシュメモリと、ｂ）制御回路であって、ｉ）外部ホストデバイスからデータを受け取り、ｉｉ）受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、ｉｉｉ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットダイのキャッシュ記憶領域に書き込むように動作し得る制御回路と、を備える。
【００１７】
或る実施形態では、制御回路は外部ホストデバイスから受け取ったデータのすべてが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるように動作し得る。
或る実施形態では、制御回路は外部ホストデバイスから受け取った一部のデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれ、外部ホストデバイスから受け取った他のデータが初めにキャッシュ記憶領域に書き込まれることなく主記憶領域に書き込まれるように動作し得る。
或る実施形態では、制御回路は受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを唯一のキャッシュ記憶領域に書き込むように動作し得る。
或る実施形態では、制御回路は外部ホストデバイスから受け取る受け取ったデータのためのアドレス情報に従って受け取ったデータがどの主記憶領域に宛てられているかを判定するように動作し得る。
【００１８】
或る実施形態では、複数のフラッシュメモリダイの各ダイのために、それぞれの主記憶領域は、フラッシュセル当たりにそれぞれのキャッシュ記憶領域より多くのビットを記憶するように構成される。
或る実施形態では、制御回路は指定されたターゲットダイのキャッシュ記憶領域から指定されたターゲットダイの主記憶領域への受け取ったデータの局所的コピー操作を、局所的コピー操作中にデータがターゲット記憶ダイから消えないように、行うようにさらに動作し得る。
或る実施形態では、ｉ）制御回路は複数のダイの各ダイのためにそれぞれの局所的コピー操作を実行するように動作し、ｉｉ）制御回路は複数のダイのうちの別々のダイのために局所的コピー操作を同時に実行するように動作し得る。
或る実施形態では、制御回路はソフトウェアおよびファームウェアのうちの少なくとも一方を含む。
或る実施形態では、Ａ）複数のダイの各ダイはそれぞれの複数のプレーンを含み、各プレーンはそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含み、Ｂ）制御回路は、ｉｖ）受け取ったデータがターゲットダイ上のどのプレーン主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットプレーンとしてターゲットダイのプレーンのうちの１つを指定し、ｖ）受け取ったデータがプレーン主記憶領域に書き込まれる前にプレーンキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットダイ上の指定されたターゲットプレーンのプレーンキャッシュ記憶領域に書き込むようにさらに動作し得る。
【００１９】
外部ホストデバイスに結合されているフラッシュメモリデバイスを含むシステムにおけるデータキャッシングの方法が本願明細書で初めて開示され、フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含み、この方法は、ａ）フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取ることと、ｂ）受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定することと、ｃ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットダイのキャッシュ記憶領域に書き込むことと、を含む。
【００２０】
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれるたびに、受け取ったデータを対応するキャッシュ記憶領域に、データが主記憶領域に書き込まれる前に、書き込むことをさらに含む。
或る実施形態では、この方法は、ｄ）受け取ったデータの第１の部分を指定されたターゲットダイのキャッシュ記憶領域に書き込むことと、ｅ）受け取ったデータの第２の部分を、初めに第２の部分をどのキャッシュ記憶領域にも書き込まずに、指定されたターゲットダイの主記憶領域に書き込むことと、をさらに含む。
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを唯一のキャッシュ記憶領域に書き込むことをさらに含む。
【００２１】
或る実施形態では、ステップ（ｂ）の指定することは、外部ホストデバイスから受け取るデータのためのアドレス情報に従って実行される。
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、ｉ）フラッシュセル当たりに第１の数のビットを提供する第１の書き込みモードを用いて、受け取ったデータを指定されたターゲットダイのキャッシュ記憶領域に書き込むことと、ｉｉ）その後、フラッシュセル当たりに第１の数を上回る第２の数のビットを提供する第２の書き込みモードを用いて、受け取ったデータを指定されたターゲットダイの主記憶領域に書き込むことと、をさらに含む。
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、指定されたターゲットダイのキャッシュ記憶領域から指定されたターゲットダイの主記憶領域へのデータの局所的コピー操作を、局所的コピー操作中にデータがターゲット記憶ダイから消えないように、行うことをさらに含む。
【００２２】
或る実施形態では、ｉ）複数のダイの各ダイのためにそれぞれの局所的コピー操作を実行し、ｉｉ）複数のダイのうちの別々のダイのために局所的コピー操作を同時に実行する。
或る実施形態では、ｉ）この方法は、複数のダイの各ダイがそれぞれの複数のプレーンを含み、各プレーンがそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含むシステムにおいて実行され、ｉｉ）この方法は、ｄ）受け取ったデータがターゲットダイ上のどのプレーン主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットプレーンとしてターゲットダイのプレーンのうちの１つを指定することと、ｅ）受け取ったデータがプレーン主記憶領域に書き込まれる前にプレーンキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットダイ上の指定されたターゲットプレーンのプレーンキャッシュ記憶領域に書き込むことと、をさらに含む。
【００２３】
フラッシュメモリデバイスが初めて本願明細書で開示され、このフラッシュメモリデバイスは、ａ）それぞれのキャッシュ記憶領域およびそれぞれの主記憶領域をそれぞれ含む複数のプレーンを含む少なくとも１つのフラッシュメモリダイを含むフラッシュメモリと、ｂ）制御回路であって、ｉ）外部ホストデバイスからデータを受け取り、ｉｉ）受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットプレーンとして複数のフラッシュメモリプレーンのうちの１つを指定し、ｉｉｉ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットプレーンのキャッシュ記憶領域に書き込むように動作し得る制御回路と、を備える。
【００２４】
或る実施形態では、制御回路は外部ホストデバイスから受け取ったデータのすべてが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるように動作し得る。
或る実施形態では、制御回路は外部ホストデバイスから受け取った一部のデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれ、外部ホストデバイスから受け取った他のデータが初めにキャッシュ記憶領域に書き込まれることなく主記憶領域に書き込まれるように動作し得る。
或る実施形態では、制御回路は受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを唯一のキャッシュ記憶領域に書き込むように動作し得る。
【００２５】
或る実施形態では、制御回路は外部ホストデバイスから受け取るデータのためのアドレス情報に従って受け取ったデータがどの主記憶領域に宛てられているかを判定するように動作し得る。
或る実施形態では、複数のフラッシュメモリプレーンの各プレーンのために、それぞれの主記憶領域はフラッシュセル当たりにそれぞれのキャッシュ記憶領域より多くのビット数を記憶するように構成される。
或る実施形態では、制御回路は指定されたターゲットプレーンのキャッシュ記憶領域から指定されたターゲットプレーンの主記憶領域への受け取ったデータの局所的コピー操作を、局所的コピー操作中にデータがターゲット記憶プレーンから消えないように、行うようにさらに動作し得る。
【００２６】
或る実施形態では、ｉ）制御回路は複数のプレーンの各プレーンのためにそれぞれの局所的コピー操作を実行するように動作し、ｉｉ）制御回路は複数のプレーンのうちの別々のプレーンのために局所的コピー操作を同時に実行するように動作し得る。
或る実施形態では、制御回路はソフトウェアおよびファームウェアのうちの少なくとも一方を含む。
【００２７】
外部ホストデバイスに結合されているフラッシュメモリデバイスを含むシステムにおけるデータキャッシングの方法が初めて本願明細書で開示され、フラッシュメモリデバイスは少なくとも１つのフラッシュメモリダイを含み、フラッシュメモリダイは複数のプレーンを含み、各プレーンはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含む。この方法は、ａ）フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取ることと、ｂ）受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットプレーンとして複数のフラッシュメモリプレーンのうちの１つを指定することと、ｃ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットプレーンのキャッシュ記憶領域に書き込むことと、を含む。
【００２８】
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれるたびに、受け取ったデータを対応するキャッシュ記憶領域に、データが主記憶領域に書き込まれる前に、書き込むことをさらに含む。
或る実施形態では、この方法は、ｄ）受け取ったデータの第１の部分を指定されたターゲットプレーンのキャッシュ記憶領域に書き込むことと、ｅ）受け取ったデータの第２の部分を、初めに第２の部分をどのキャッシュ記憶領域にも書き込まずに、指定されたターゲットプレーンの主記憶領域に書き込むことと、をさらに含む。
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを唯一のキャッシュ記憶領域に書き込むことをさらに含む。
或る実施形態では、ステップ（ｂ）の指定することは、外部ホストデバイスから受け取るデータのためのアドレス情報に従って実行される。
【００２９】
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、ｉ）フラッシュセル当たりに第１の数のビットを提供する第１の書き込みモードを用いて、受け取ったデータを指定されたターゲットプレーンのキャッシュ記憶領域に書き込むことと、ｉｉ）その後、フラッシュセル当たりに第１の数を上回る第２の数のビットを提供する第２の書き込みモードを用いて、受け取ったデータを指定されたターゲットプレーンの主記憶領域に書き込むことと、をさらに含む。
或る実施形態では、この方法は、ｄ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、指定されたターゲットプレーンのキャッシュ記憶領域から指定されたターゲットプレーンの主記憶領域へのデータの局所的コピー操作を、局所的コピー操作中にデータがターゲット記憶プレーンから消えないように、行うことをさらに含む。
或る実施形態では、ｉ）複数のプレーンの各プレーンのためにそれぞれの局所的コピー操作を実行し、ｉｉ）複数のプレーンのうちの別々のプレーンのために局所的コピー操作を同時に実行する。
【００３０】
外部ホストデバイスに結合されているフラッシュメモリデバイスを含むシステムにおけるデータキャッシングのためのコンピュータ可読プログラムコードが格納されるコンピュータ可読媒体が初めて本願明細書で開示され、フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含み、プログラムコードは、ａ）フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取り、ｂ）受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、ｃ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットダイのキャッシュ記憶領域に書き込むように動作し得る。
【００３１】
外部ホストデバイスに結合されているフラッシュメモリデバイスを含むシステムにおけるデータキャッシングのためのコンピュータ可読プログラムコードが格納されるコンピュータ可読媒体が初めて本願明細書で開示され、フラッシュメモリデバイスは少なくとも１つのフラッシュメモリダイを含み、フラッシュメモリダイは複数のプレーンを含み、各プレーンはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含み、プログラムコードは、ａ）フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取り、ｂ）受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより受け取ったデータのためのターゲットプレーンとして複数のフラッシュメモリプレーンのうちの１つを指定し、ｃ）受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、受け取ったデータを指定されたターゲットプレーンのキャッシュ記憶領域に書き込むように動作し得る。
一定の実施形態に関連すると前に記載されている特徴は、以下で逆に指摘されていない限り、他の実施形態にも含まれ得るということが特に言及される。
【図面の簡単な説明】
【００３２】
【図１Ａ】従来技術のメモリセルの大集団のしきい値電圧の分布のグラフ図である。
【図１Ｂ】従来技術のメモリセルの大集団のしきい値電圧の分布のグラフ図である。
【図１Ｃ】従来技術の２レベルＥＰＲＯＭセルのしきい値電圧の分布を示す。
【図１Ｄ】従来技術のＥＰＲＯＭセルのプログラミングパルス列を示す。
【図１Ｅ】従来技術の、図１Ｄの従来技術の場合より大きなプログラミング電圧増加分および／または幅の広いプログラミングパルスを用いてプログラムされた２レベルＥＰＲＯＭセルのしきい値電圧の分布を示す。
【図１Ｆ】従来技術の、図１Ｅの上側しきい値電圧をプログラムするために使用されるプログラミングパルス列を示す。
【図２Ａ】従来技術のホストデバイスおよびフラッシュメモリデバイスを含む代表的なシステムのブロック図である。
【図２Ｂ】従来技術のキャッシュ記憶領域および主記憶領域を含むフラッシュメモリのブロック図である。
【図３】或る実施形態に従う複数のフラッシュメモリダイを含む代表的なフラッシュメモリのブロック図である。
【図４】或る実施形態に従うマルチダイ型フラッシュメモリのためのフラッシュメモリキャッシングポリシーを実施するための代表的なルーチンのフローチャートである。
【図５Ａ】データを受け取って同時並行にダイ内キャッシュフラッシング操作を行うための代表的なルーチンのフローチャートである。
【図５Ｂ】図５Ａのルーチンについて使用事例を示す。
【図６Ａ】同時コピー操作に関連する種々の使用事例を示す。
【図６Ｂ】同時コピー操作に関連する種々の使用事例を示す。
【図６Ｃ】同時コピー操作に関連する種々の使用事例を示す。
【図７】或る実施形態に従う複数のプレーンを含む代表的なフラッシュメモリダイのブロック図である。
【図８】或る実施形態に従うマルチプレーン型フラッシュメモリダイのためのフラッシュメモリキャッシングポリシーを実施するための代表的なルーチンのフローチャートである。
【図９Ａ】データを受け取って同時並行にプレーン内キャッシュフラッシング操作を行うための代表的なルーチンのフローチャートである。
【図９Ｂ】図９Ａのルーチンについて使用事例を示す。
【図１０】複数のプレーンを含むフラッシュメモリダイの略図であって、各プレーンがそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含む。
【発明を実施するための形態】
【００３３】
添付の特許請求の範囲は、図面を参照して例示的な実施形態についての本願明細書の詳細な説明を参照することによってより良く理解されるはずである。この説明、実施形態および図面は、特許請求の範囲を限定すると解されてはならない。フラッシュキャッシュ管理のための現在開示されている方法および装置のすべての特長がすべてのインプリメンテーションにおいて必要とは限らないということが理解できるはずである。本願明細書における開示全体にわたって、プロセスあるいは方法が示されたりあるいは記述されたりする場合、１つのステップが、初めに実行される他のステップに依存することが文脈から明らかでない限り、その方法のステップは任意の順序であるいは同時に実行され得るということも理解できるはずである。本願明細書全体において使用される場合には、「〜し得る」という語は、強制的意味（すなわち、「ねばならない」を意味する）ではなくて、許容的意味（すなわち、「〜する可能性を有する」を意味する）に用いられている。
【００３４】
或る実施形態は、ダイ内キャッシュデータ転送操作を許し、同時にダイ間キャッシュデータ転送操作を禁じる第１のフラッシュキャッシングポリシーを実施するための方法および装置に関連する。このデバイスキャッシングポリシーは、例えば図４に示されている複数のフラッシュメモリダイを含むフラッシュメモリのために実施され得る。
或る実施形態は、プレーン内キャッシュデータ転送操作を許し、同時にプレーン間キャッシュデータ転送操作を禁じる第２のフラッシュキャッシングポリシーを実施するための方法および装置に関連する。このデバイスキャッシングポリシーは、例えば図８に示されている複数のメモリプレーンを含むフラッシュメモリダイのために実施され得る。
【００３５】
図３についての簡単な議論
図３は、複数のフラッシュメモリダイ１１０（すなわち、Ｎ個のフラッシュメモリダイであって、Ｎは２以上の整数である）を含む代表的なフラッシュメモリ２７０のブロック図である。図３の非限定的な例では、各フラッシュメモリダイ１１０は、データを格納できるそれぞれのフラッシュセル１１８と、それぞれのダイ制御回路１１４とを含む。ダイ制御回路１１４はハードウェア、ファームウェアおよび／またはソフトウェアの任意の組み合わせを含むことができる。１つの特定の例では、各ダイ制御回路１１４は、データをプログラムするためのそれぞれの専用読み出し／書き込み回路（例えば、それぞれの専用ダイローカルデータバスを含む）を含むことができる。さらに、或る実施形態では、フラッシュメモリ２７０は図３に示されているもの以外の付加的なダイを含み得るということも分かる。
【００３６】
図３に示されているように、各フラッシュメモリダイ１１０は、それぞれの主記憶領域１２４およびそれぞれのキャッシュ記憶領域１２２を含む。フラッシュメモリダイは、フラッシュメモリ記憶デバイス２６０の中で、デバイス側ポート２５０を介してホストデバイス３１０から受け取った少なくともいくつかの「受信」データが（ｉ）初めにキャッシュ記憶領域１２２の１つに（例えば、ホストデバイス１６０から「受信」データを受け取ったことに応答して）書き込まれ、その後、そのキャッシュ記憶領域１２２から主記憶領域１２４の１つにコピーされるか、あるいは（ｉｉ）初めにキャッシュ記憶領域の１つに書き込まれることなく主記憶領域１２４の１つに「直接」書き込まれるように構成される。
【００３７】
キャッシュ記憶領域１２２および主記憶領域１２４は、好ましくは、次の特徴を提供する。
特徴Ａ：各キャッシュ記憶領域１２２ｋ（すなわち、ｋは正の整数）は、同じフラッシュ上に共存するそれぞれの主記憶領域１２４ｋより小さい（すなわち、より小さな記憶容量を有する）。
特徴Ｂ：各キャッシュ記憶領域１２２ｋは、それぞれの「第１の書き込み速度モード」を用いてデータを記憶するように構成され、各主記憶領域１２４ｋは、それぞれの「第２の書き込み速度モード」を用いてデータを記憶するように構成される。それぞれのキャッシュ記憶領域のそれぞれの「第１の書き込み速度モード」は、それぞれの「第２の書き込み速度モード」より速いフラッシュプログラミングを提供する。
【００３８】
「特徴Ａ」および「特徴Ｂ」は、ダイ毎の特徴であって、例えば第１のダイのサイズおよび／または書き込み速度と、第１のダイとは異なる第２のダイのサイズおよび／または書き込み速度との間にいかなる関係も必要としないということが分かる。
フラッシュダイの「キャッシュ記憶領域」または「主記憶領域」が特定の特徴を提供するように「構成」されている（例えば、所与の書き込み速度モードを提供するように構成され、かつ／またはフラッシュセル当たりに所与の数のビットを記憶するように構成されている）場合には、その特徴はフラッシュメモリデバイス２６０内の任意のエレメント（例えば、フラッシュコントローラ２８０および／またはフラッシュメモリ２７０またはその任意の部分）により提供され得るということが分かる。その特徴がもっぱらそのフラッシュダイ上のエレメントによって提供されなければならないという必要はない。
【００３９】
従って、１つの非限定的な例では、キャッシュ記憶領域１２２および主記憶領域１２４のフラッシュセルは同様の物理的構造を有するけれども、フラッシュコントローラ２８０および／またはダイ制御回路１１４は、（ｉ）第１の書き込み速度と関連付けられた第１の書き込みモード（例えば、セル当たりにＫビットであって、Ｋは正の整数である）を用いてキャッシュ記憶領域１２２のフラッシュセルにデータを書き込み、（ｉｉ）第１の書き込み速度より遅い第２の書き込み速度と関連付けられた第２の書き込みモード（例えば、セル当たりにＬビットであって、ＬはＫより大きい正の整数である）を用いて主記憶領域１２４のフラッシュセルにデータを書き込むように構成される。「より遅い書き込みモード」および「より速い書き込みモード」を提供するための他の手法が使用され得ることが分かる。
従って、或る実施形態では、複数のフラッシュメモリダイの各ダイは、それぞれの主記憶領域がフラッシュセル当たりにそれぞれのキャッシュ記憶領域より多くのビットを記憶するように構成される。
【００４０】
定義
便宜上、この説明の文脈において、種々の用語が本願明細書で提示される。本願明細書のあらゆるところで、明示的にあるいは暗黙裡に、定義が与えられる限りにおいて、そのような定義は、それらの定義された用語の当業者による使用法と矛盾しないと理解されるべきである。さらに、そのような定義は、そのような使用法と矛盾しない最も広い可能な意味に解釈されるべきである。
【００４１】
「受信データ」は、フラッシュメモリデバイス２６０のフラッシュメモリ２７０に未だ格納されていない、ホストデバイス３１０からフラッシュメモリデバイス２６０により受け取ったデータを指す。「受信データ」は、フラッシュメモリデバイス２６０内の揮発性メモリ（図示せず）に一時的に（例えば、フラッシュコントローラ２８０* により）格納され得る。
ホストデバイス３１０からフラッシュデバイス２６０により受け取られた受信データは、同じくホストデバイス３１０から受け取った「アドレス情報」と関連付けられ得る。アドレス情報は、フラッシュデバイス２６０が受信データを格納するべき主記憶領域１２４の１つの中の位置（および／または図７の主記憶領域５２４の１つの中の位置）を記述する。「アドレス情報」の例は、絶対物理アドレス、絶対論理アドレス、セクタまたはブロック識別子、およびデータオブジェクトの名前（例えば、ファイル名）を含むが、これらに限定されるものではない。或る実施形態では、アドレス情報は主記憶領域１２４の１つ（および／または図７の主記憶領域５２４の１つ）の中の物理的ターゲット位置を間接的に記述するに過ぎないことが分かる。これらの実施形態では、フラッシュデバイス２６０は、ホストから受け取ったアドレス情報とターゲットダイとの関係を記述する１つ以上の「マッピングデータ構造」（例えば、論理対物理アドレスマッピングテーブルまたは他の任意のデータ構造）を維持し使用することができる。
【００４２】
「ターゲットダイ」は、アドレス情報において指定された（すなわち、直接的にまたは間接的に）（すなわち、従ってホスト３１０から受け取ったアドレス情報により「目標とされた」）主記憶領域（すなわち、１２４Ａ・・・１２４Ｎのいずれか）が存在するダイである。
データが第１のメモリダイのキャッシュ記憶領域１２２ｉから第２のメモリダイの主記憶領域１２２ｊにコピーされ、そのｉとｊとが互いに等しくない正の整数であるとき、これは「ダイ間キャッシュデータ転送操作」と称される。「ダイ間キャッシュデータ転送操作」の一例は、（ｉ）「受信データ」が初めに第１のメモリダイのキャッシュ記憶領域１２２ｉに書き込まれ（例えば、ホストデバイス３１０からの「受信データ」の受け取りに応答してフラッシュコントローラ２８０によって書かれ）、（ｉｉ）その後、後のダイ間キャッシュデータ転送操作で、第１のメモリダイのキャッシュ記憶領域１２２ｉから第２のメモリダイの主記憶領域１２４ｊにコピーされるときである。
【００４３】
データが所与のメモリダイのキャッシュ記憶領域１２２ｉから同じメモリダイの主記憶領域１２２ｉにコピーされ、ｉが正の整数であるとき、これは「ダイ内キャッシュデータ転送操作」と称される。「ダイ内キャッシュデータ転送操作」の一例は、（ｉ）「受信データ」が初めにメモリダイのキャッシュ記憶領域１２２ｉに書き込まれ（例えば、ホストデバイス３１０からの「受信データ」の受け取りに応答してフラッシュコントローラ２８０により書かれ）、（ｉｉ）その後、後のダイ内キャッシュデータ転送操作で、メモリダイのキャッシュ記憶領域１２２ｉから同じメモリダイの主記憶領域１２４ｉにコピーされるときである。
【００４４】
データが「局所的に」コピー（すなわち、データがその「ダイ内キャッシュデータ転送操作」の特定のダイ上に、ダイのキャッシュ記憶領域１２２ｉから主記憶領域１２４ｉへ通過中、留まるようにコピー）されなければならないという必要はない。従って、１つの非限定的な例では、フラッシュコントローラ２８０はフラッシュメモリダイとは異なる「コントローラダイ」上にあり、データはフラッシュコントローラ２８０によってダイのキャッシュ記憶領域１２２ｉから同じダイの主記憶領域１２４ｉにコピーされる。この非限定的な例では、データは、例えば、ダイのキャッシュ記憶領域１２２ｉから主記憶領域１２４ｉへ通過中、いくらかの期間にわたって揮発性メモリ（例えば、ＲＡＭまたは１つ以上のレジスタ）の中に存在することができる。
【００４５】
非常に好ましい代替例では、データは「局所的にコピーされ」、実際に「ダイ内キャッシュデータ転送操作」の特定のダイ上に、ダイのキャッシュ記憶領域１２２ｉから主記憶領域１２４ｉへ通過中に留まる。例えば、データはキャッシュ記憶領域１２２ｉおよび主記憶領域１２４ｉと同じダイ上に共存するダイ制御回路１１４ｉによって「局所的に」コピーされ得る。或る実施形態では、この代替例はキャッシュ領域から主領域にデータをコピーしている間、コントローラのリソースあるいはコントローラ−フラッシュ間バス帯域幅を節約できるので、非常に好ましいかもしれない。これは、複数の同時並行キャッシュコピー操作が別々のダイにおいて並行して行われることを可能にし（以下でさらに説明するように）、従って記憶システムの性能を改善する。
【００４６】
図４についての議論
図４は、ダイ内キャッシュデータ転送操作を許し、同時にダイ間キャッシュデータ転送操作を禁じるフラッシュキャッシングポリシーを実施するための代表的な手法のフローチャートである。
ステップＳ４１１で、そのデータのためのアドレス情報と関連付けられている受信データがホストデバイス３１０からフラッシュデバイス２６０の中に受け取られる（例えば、書き込みコマンドの一部として）。
ステップＳ４１３で、アドレス情報から、その受け取ったデータがどの主記憶領域（すなわち、１１０Ａ・・・１１０Ｎの１つ）に宛てられているかを判定する（例えば、デバイスコントローラ２８０により）。その受け取ったデータがどの主記憶領域記憶領域に宛てられているかを判定することにより、Ｎ個のフラッシュダイのうちの１つのフラッシュダイが指定される。
【００４７】
前述したように、データ全体が主記憶領域１２４ｉに格納される前にキャッシュ記憶領域１２２ｉにキャッシュされる必要はない。これは、いくつかの実施形態においてのみの場合である。従って、図４の例では、データが主記憶領域（すなわち、１２４Ａ・・・１２４Ｎのうちの１つ）に書き込まれる前にキャッシュ記憶領域（すなわち、１２２Ａ・・・１２２Ｎのうちの１つ）に書き込まれるか否かを判定する。１つの非限定的な例では、データをキャッシュするか否かというステップＳ４１７の判定は、多数の因子に応じて、例えば、フラッシュデバイス２６０にデータが受け取られる速度に応じておよび／またはキャッシュがどのくらい満たされているかに応じておよび／またはフラッシュデバイス２６０の「動作モード」に応じておよび／または他の任意の因子に応じて、実行され得る。
【００４８】
データがキャッシュされない場合、データはステップＳ４２１で、アドレス情報により直接的にまたは間接的に指定されるターゲットダイの主記憶領域に書き込まれる（例えば、フラッシュデバイス２６０内の揮発性ストレージから書かれる）。
そうではなくて、データが主記憶領域（すなわち、１２４Ａ・・・１２４Ｎのうちの１つ）に書き込まれる前にキャッシュ記憶領域（すなわち、１２２Ａ・・・１２２Ｎのうちの１つ）に書き込まれる場合、データはステップＳ４１９で、そのデータのためのアドレス情報において直接的にまたは間接的に指定されている主記憶領域１２４ｉと同じ「ターゲットダイ」１１０ｉ上に共存するキャッシュ記憶領域１２２ｉ（ｉは正の整数である）に書き込まれる。
【００４９】
或る実施形態では、データは唯一のキャッシュ記憶領域１２２ｉに書き込まれる。デバイスは、受け取ったデータが主記憶領域１２４に書き込まれる前にキャッシュ記憶領域１２２に書き込まれるたびに、受け取ったデータが唯一のキャッシュ記憶領域１２２ｉ（すなわち、「ターゲットダイ」１１０ｉ上に存在する主記憶領域だけ）に書き込まれるように動作し得る。従って、これらの実施形態では、受け取ったデータは他のどのキャッシュ記憶領域１２２ｊにも書き込まれない（ｊはｉに等しくない正の整数である）。
【００５０】
ステップＳ４２１で（すなわち、ステップＳ４１９後にステップＳ４２１が実行されるとき）、データは「ダイ内キャッシュデータ転送操作」でキャッシュ記憶領域１２２ｉから主記憶領域１２４ｉにコピーされる。ステップＳ４１９で、アドレス情報により指定されている（すなわち、直接的にまたは間接的に）主記憶領域と同じダイ上に共存するキャッシュ記憶領域にデータを書き込むことにより、ダイ内キャッシュデータ転送操作を許し（すなわち、これがステップＳ４１９後に実行されデータがキャッシュ記憶領域１２２ｉから主記憶領域１２４ｉにコピーされるステップＳ４２１において）、ダイ間キャッシュデータ転送操作を禁じるキャッシングポリシーを実施することが可能である。前に説明したように、キャッシュコピー操作をダイ内キャッシュデータ転送操作に限定してダイ間キャッシュデータ転送操作を避けることにより性能向上をもたらすことができて非常に望ましい。
【００５１】
図５Ａ〜５Ｂについての議論
図５Ａは、データの様々の「チャンク」が或る期間にわたって受け取られるルーチンのフローチャートであり、その各チャンクは、特定のターゲットダイ上に存在する特定の主記憶領域に宛てられている。図５Ａのルーチンの実行がフラッシュメモリダイの内容にどのように影響を及ぼすかの１つの非限定的な例が図５Ｂに示されている。
【００５２】
図５Ｂにおいて、ｔ０は第１の時点であり、ｔ１はｔ０後の１つの時点であり、ｔ２はｔ１後の１つの時点であり、ｔ３はｔ１後の１つの時点である。図５Ｂの例では、データｄ１はダイ１１０ｉ上の主記憶領域１２４ｉに宛てられ（すなわち、ホスト３１０から受け取ったアドレス情報に従って）、データｄ２はダイ１１０ｊ上の主記憶領域１２４ｊに宛てられ、ここでｉおよびｊは互いに等しくない正の整数である。
図５Ｂの例では、ｔ０より後でｔ１よりは前の時点で、データｄ１およびｄ２も、データｄ１およびｄ２のためのアドレス情報も、ホストデバイス３１０からフラッシュデバイス２６０内に受け取られる。これは、図５ＡのステップＳ４３１で示されているように、それぞれのデータおよびそれぞれのアドレス情報をそれぞれ含む複数の書き込みコマンドをフラッシュデバイス２６０がホストから受け取ったときに起こり得る。
【００５３】
図５Ａに示されているステップＳ４３５で、ホストデバイス３１０から受け取ったデータは、図４に記載されているポリシーに従って複数のキャッシュ記憶領域に書き込まれる。従って、データが複数の主記憶領域１２４Ａ・・・１２４Ｎのうちの所与の主記憶領域（すなわち、「ターゲット」ダイ上に存在する）に宛てられ、このデータが主記憶領域に書き込まれる前にキャッシュ記憶領域１２２Ａ・・・１２２Ｎのうちの１つにキャッシュされるたびに、データはデータが宛てられている所与の主記憶領域と同じダイ（すなわち、ターゲットダイ）上に共存するキャッシュ記憶領域に書き込まれる（ステップＳ４１９を参照）。
これは図５Ｂの例において見られ得る。データｄ１は主記憶領域１２４ｉに宛てられているので、データｄ１はｔ０後でｔ１前の時点でキャッシュ記憶領域１２２ｉに書き込まれる。同様に、データｄ２は主記憶領域１２４ｊに宛てられているので、データｄ２はｔ０後でｔ１前の時点でキャッシュ記憶領域１２２ｊに書き込まれる。
【００５４】
ステップＳ４３９で、同時並行ダイ内キャッシュ局所的コピー操作が実行される。すなわち、それぞれの「局所的コピー操作」が各ダイ上で実行され、別々のダイのための局所的コピー操作は同時に実行される。
図６Ａ〜６Ｃに示されているように、別々のダイ上で（あるいは、図７〜１０に示されているルーチンの場合のように別々のメモリプレーンにおいて）２つの局所的コピー操作が「同時に」実行されるためには、それらのコピー操作が行われる時間同士の間に少なくとも部分的な時間的重なりが存在する必要がある。
【００５５】
図７についての簡単な議論
図７は、複数のフラッシュメモリプレーン５１０（すなわち、Ｍ個のフラッシュメモリプレーンであって、Ｍは２以上の正の整数である）を含む代表的なフラッシュメモリダイ１１０のブロック図である。図７の非限定的な例では、各フラッシュメモリプレーン１１０は、データが格納され得るそれぞれのフラッシュセル５１８とそれぞれのプレーン制御回路５１４とを含む。プレーン制御回路５１４は、ハードウェア、ファームウェアおよび／またはソフトウェアの任意の組み合わせを含むことができる。１つの特定の例では、プレーン制御回路５１４は、データをプログラムするための専用読み出し／書き込み回路（例えば、それぞれの専用プレーンローカルデータバスを含む）を含むことができる。さらに、或る実施形態では、フラッシュメモリダイ１１０は、図７に示されているもの以外の追加のプレーン５１０を含むことができるということが分かる。
【００５６】
図７に示されているように、各フラッシュメモリプレーン５１０は、それぞれの主記憶領域５２４とそれぞれのキャッシュ記憶領域５２２とを含む。フラッシュメモリプレーンは、フラッシュメモリ記憶デバイス２６０の中で、デバイス側ポート２５０を介してホストデバイス３１０から受け取った少なくともいくつかの「受信」データが（ｉ）初めにキャッシュ記憶領域５２２のうちの１つに（例えば、ホストデバイス１６０から「受信」データを受け取ったことに応答して）書き込まれ、その後、そのキャッシュ記憶領域５２２から主記憶領域５２４の１つにコピーされるか、あるいは（ｉｉ）初めにキャッシュ記憶領域の１つに書き込まれることなく主記憶領域５２４の１つに「直接」書き込まれるように構成される。
【００５７】
キャッシュ記憶領域５２２および主記憶領域５２４は、好ましくは、次の特徴を提供する。
特徴Ａ：各キャッシュ記憶領域５２２ｋ（すなわち、ｋは正の整数である）は、同じフラッシュ上に共存するそれぞれの主記憶領域５２４ｋより小さい（すなわち、より小さな記憶容量を有する）。
特徴Ｂ：各キャッシュ記憶領域５２２ｋは、それぞれの「第１の書き込み速度モード」を用いてデータを記憶するように構成され、各主記憶領域５２４ｋは、それぞれの「第２の書き込み速度モード」を用いてデータを記憶するように構成される。それぞれのキャッシュ記憶領域のそれぞれの「第１の書き込み速度モード」は、それぞれの「第２の書き込み速度モード」より速いフラッシュプログラミングを提供する。
【００５８】
「特徴Ａ」および「特徴Ｂ」は、プレーン毎の特徴であって、例えば第１のプレーンのサイズおよび／または書き込み速度と、第１のプレーンとは異なる第２のプレーンのサイズおよび／または書き込み速度との間にいかなる関係も必要としないということが分かる。
フラッシュプレーンの「キャッシュ記憶領域」または「主記憶領域」が特定の特徴を提供するように「構成」されている（例えば、所与の書き込み速度モードを提供するように構成され、かつ／またはフラッシュセル当たりに所与の数のビットを記憶するように構成されている）場合には、その特徴はフラッシュメモリデバイス２６０内の任意のエレメント（例えば、フラッシュコントローラ２８０および／またはフラッシュメモリ２７０またはその任意の部分）により提供され得るということが分かる。その特徴がもっぱらそのフラッシュプレーン上のエレメントによって提供されなければならないという必要はない。
【００５９】
従って、１つの非限定的な例では、キャッシュ記憶領域５２２および主記憶領域５２４のフラッシュセルは同様の物理的構造を有するけれども、フラッシュコントローラ２８０および／またはダイ制御回路１１４および／またはプレーン制御回路５１４は、（ｉ）第１の書き込み速度と関連付けられた第１の書き込みモード（例えば、セル当たりにＫビットであって、Ｋは正の整数である）を用いてキャッシュ記憶領域５２２のフラッシュセルにデータを書き込み、（ｉｉ）第１の書き込み速度より遅い第２の書き込み速度と関連付けられた第２の書き込みモード（例えば、セル当たりにＬビットであって、ＬはＫより大きい正の整数である）を用いて主記憶領域５２４のフラッシュセルにデータを書き込むように構成される。「より遅い書き込みモード」および「より速い書き込みモード」を提供するための他の手法が使用され得ることが分かる。
従って、或る実施形態では、複数のプレーンの各プレーンは、それぞれの主記憶領域がフラッシュセル当たりにそれぞれのキャッシュ記憶領域より多くのビットを記憶するように構成される。
【００６０】
いくつかの追加の定義
便宜上、この説明の文脈において、種々の用語が本願明細書で提示される。本願明細書のあらゆるところで、明示的にあるいは暗黙裡に、定義が与えられる限りにおいて、そのような定義は、それらの定義された用語の当業者による使用法と矛盾しないと理解されるべきである。さらに、そのような定義は、そのような使用法と矛盾しない最も広い可能な意味に解釈されるべきである。
【００６１】
或る実施形態では、フラッシュダイは複数の「プレーン」を含む。
フラッシュダイの「プレーン」は、そのフラッシュダイのセルの、同じフラッシュダイの他の「プレーン」と並行して書き込まれ得るサブアレイである。
「ターゲットプレーン」は、アドレス情報において指定された（すなわち、直接的にまたは間接的に）（すなわち、従ってホスト３１０から受け取ったアドレス情報により「目標とされた」）主記憶領域（すなわち、５２４Ａ・・・５２４Ｎのいずれか）が存在するプレーンである。
【００６２】
データが第１のメモリプレーンのキャッシュ記憶領域５２２ｉから第２のメモリプレーンの主記憶領域５２２ｊにコピーされ、そのｉとｊとが互いに等しくない正の整数であるとき、これは「プレーン間キャッシュデータ転送操作」と称される。「プレーン間キャッシュデータ転送操作」の一例は、（ｉ）「受信データ」が初めに第１のメモリプレーンのキャッシュ記憶領域５２２ｉに書き込まれ（例えば、ホストデバイス３１０からの「受信データ」の受け取りに応答してフラッシュコントローラ２８０によって書かれ）、（ｉｉ）その後、後のプレーン間キャッシュデータ転送操作で、第１のメモリプレーンのキャッシュ記憶領域５２２ｉから第２のメモリプレーンの主記憶領域５２４ｊにコピーされるときである。
【００６３】
データが所与のメモリプレーンのキャッシュ記憶領域５２２ｉから同じメモリプレーンの主記憶領域５２２ｉにコピーされ、ｉが正の整数であるとき、これは「プレーン内キャッシュデータ転送操作」と称される。「プレーン内キャッシュデータ転送操作」の一例は、（ｉ）「受信データ」が初めにメモリプレーンのキャッシュ記憶領域５２２ｉに書き込まれ（例えば、ホストデバイス３１０からの「受信データ」の受け取りに応答してフラッシュコントローラ２８０により書かれ）、（ｉｉ）その後、後のプレーン内キャッシュデータ転送操作で、メモリプレーンのキャッシュ記憶領域５２２ｉから同じメモリプレーンの主記憶領域５２４ｉにコピーされるときである。
【００６４】
データが「局所的に」コピー（すなわち、データがその「プレーン内キャッシュデータ転送操作」の特定のプレーン上に、プレーンのキャッシュ記憶領域５２２ｉから主記憶領域５２４ｉへ通過中に留まるようにコピー）されなければならないという必要はない。従って、１つの非限定的な例では、フラッシュコントローラ２８０はフラッシュメモリダイ１１０とは異なる「コントローラダイ」上にあり、データはフラッシュコントローラ２８０によってプレーン５１０ｉのキャッシュ記憶領域５２２ｉから同じプレーン５１０ｉの主記憶領域５２４ｉにコピーされる。この非限定的な例では、データは、例えば、プレーン５１０ｉのキャッシュ記憶領域５２２ｉから主記憶領域５２４ｉへ通過中、いくらかの期間にわたって揮発性メモリ（例えば、ＲＡＭまたは１つ以上のレジスタ）の中に存在することができる。
【００６５】
非常に好ましい代替例では、データは「局所的にコピーされ」、実際に「プレーン内キャッシュデータ転送操作」の特定のプレーン５１０ｉ上に、プレーン５１０ｉのキャッシュ記憶領域５２２ｉから主記憶領域５２４ｉへ通過中に留まる。例えば、データはキャッシュ記憶領域５２２ｉおよび主記憶領域５２４ｉと同じプレーン５１０ｉに共存するプレーン制御回路５１４ｉによって「局所的に」コピーされ得る。或る実施形態では、この代替例はキャッシュ領域から主領域へデータをコピーしている間、コントローラのリソースあるいはコントローラ−フラッシュ間バス帯域幅を節約できるので非常に好ましいかもしれない。これは、複数の同時並行キャッシュコピー操作が別々のプレーンにおいて並行して行われることを可能にし（以下でさらに説明されるように）、従って記憶システムの性能を改善する。
【００６６】
図８についての議論
図８は、プレーン内キャッシュデータ転送操作を許し、同時にプレーン間キャッシュデータ転送操作を禁じるフラッシュキャッシングポリシーを実施するための代表的な手法のフローチャートである。
ステップＳ６１１で、そのデータのためのアドレス情報と関連付けられている受信データがホストデバイス３１０からフラッシュデバイス２６０の中に受け取られる（例えば、書き込みコマンドの一部として）。
ステップＳ４６３で、アドレス情報から、その受け取ったデータがどの主記憶領域（すなわち、５１０Ａ・・・５１０Ｎのうちの１つ）に宛てられているかを判定される（例えば、デバイスコントローラ２８０により）。その受け取ったデータがどの主記憶領域に宛てられているかを判定することにより、Ｍ個のフラッシュプレーンのうちの１つのフラッシュプレーンが指定される。
【００６７】
前述したように、データ全体が主記憶領域５２４ｉに格納される前にキャッシュ記憶領域５２２ｉにキャッシュされる必要はない。これは、いくつかの実施形態においてのみの場合である。従って、図８の例では、データが、主記憶領域（すなわち、５２４Ａ・・・５２４Ｎのうちの１つ）に書き込まれる前にキャッシュ記憶領域（すなわち、５２２Ａ・・・５２２Ｎのうちの１つ）に書き込まれるか否かを判定する。１つの非限定的な例では、データをキャッシュするか否かというステップＳ６１７の判定は、多数の因子に応じて、例えば、フラッシュデバイス２６０にデータが受け取られる速度に応じておよび／またはキャッシュがどのくらい満たされているかに応じておよび／またはフラッシュデバイス２６０の「動作モード」に応じておよび／または他の任意の因子に応じて、実行され得る。
【００６８】
データがキャッシュされない場合、データは、ステップＳ６２１で、アドレス情報により直接的にまたは間接的に指定されるターゲットプレーンの主記憶領域に書き込まれる（例えば、フラッシュデバイス２６０内の揮発性ストレージから書かれる）。
そうではなくて、データが主記憶領域（すなわち、５２４Ａ・・・５２４Ｎのうちの１つ）に書き込まれる前にキャッシュ記憶領域（すなわち、５２２Ａ・・・５２２Ｎのうちの１つ）に書き込まれる場合、データは、ステップＳ６１９で、そのデータのためのアドレス情報において直接的にまたは間接的に指定されている主記憶領域５２４ｉと同じ「ターゲットプレーン」５１０ｉ上に共存するキャッシュ記憶領域５２２ｉ（ｉは正の整数である）に書き込まれる。
【００６９】
或る実施形態では、データは唯一のキャッシュ記憶領域５２２ｉに書き込まれる。デバイスは、受け取ったデータが主記憶領域５２４に書き込まれる前にキャッシュ記憶領域５２２に書き込まれるたびに、受け取ったデータが唯一のキャッシュ記憶領域５２２ｉ（すなわち、「ターゲットダイ」５１０ｉに存在する主記憶領域だけ）に書き込まれるように動作し得る。従って、これらの実施形態では、受け取ったデータは他のどのキャッシュ記憶領域５２２ｊにも書き込まれない（ｊはｉに等しくない正の整数である）。
【００７０】
ステップＳ６２１で（すなわち、ステップＳ６１９後にステップＳ６２１が実行されるとき）、データは「プレーン内キャッシュデータ転送操作」でキャッシュ記憶領域５２２ｉから主記憶領域５２４ｉにコピーされる。ステップＳ６１９で、アドレス情報により指定されている（すなわち、直接的にまたは間接的に）主記憶領域と同じダイ上に共存するキャッシュ記憶領域にデータを書き込むことにより、プレーン内キャッシュデータ転送操作を許し（すなわち、これがステップＳ６１９後に実行されデータがキャッシュ記憶領域５２２ｉから主記憶領域５２４ｉにコピーされるステップＳ６２１において）、プレーン間キャッシュデータ転送操作を禁じるキャッシングポリシーを実施することが可能である。
【００７１】
図９Ａ〜９Ｂについての議論
図９Ａは、或る期間にわたってデータの様々の「チャンク」が受け取られ、各チャンクが特定のターゲットプレーン上に存在する特定の主記憶領域に宛てられるルーチンのフローチャートである。図９Ａのルーチンの実行がフラッシュメモリプレーンの内容にどのように影響を及ぼすかの１つの非限定的な例が図９Ｂに示されている。
【００７２】
図９Ｂにおいて、ｔ０は第１の時点であり、ｔ１はｔ０後の１つの時点であり、ｔ２はｔ１後の１つの時点であり、ｔ３はｔ１後の１つの時点である。図９Ｂの例では、データｄ１はプレーン５１０ｉ上の主記憶領域５２４ｉに宛てられ（すなわち、ホスト３１０から受け取ったアドレス情報に従って）、データｄ２はプレーン５１０ｊ上の主記憶領域５２４ｊに宛てられ、ここでｉおよびｊは互いに等しくない正の整数である。
図９Ｂの例では、ｔ０より後でｔ１よりは前の時点で、データｄ１およびｄ２も、データｄ１およびｄ２のためのアドレス情報も、ホストデバイス３１０からフラッシュデバイス２６０内に受け取られる。これは、フラッシュデバイス２６０が、図９ＡのステップＳ６３１において示されているようにそれぞれのデータおよびそれぞれのアドレス情報をそれぞれ含む複数の書き込みコマンドをホストから受け取ったときに起こり得る。
【００７３】
図９Ａに示されているステップＳ６３５で、ホストデバイス３１０から受け取ったデータは、図８に記載されているポリシーに従って複数のキャッシュ記憶領域に書き込まれる。従って、データが複数の主記憶領域５２４Ａ・・・５２４Ｍのうちの所与の主記憶領域（すなわち、「ターゲット」プレーン上に存在する）に宛てられ、このデータが主記憶領域に書き込まれる前にキャッシュ記憶領域５２２Ａ・・・５２２Ｍのうちの１つにキャッシュされるたびに、データはデータが宛てられている所与の主記憶プレーンと同じプレーン（すなわち、ターゲットプレーン）に共存するキャッシュ記憶領域に書き込まれる（ステップＳ６１９を参照）。
これは図９Ｂの例において見られ得る。データｄ１は主記憶領域５２４ｉに宛てられているので、データｄ１はｔ０後でｔ１前の時点でキャッシュ記憶領域５２２ｉに書き込まれる。同様に、データｄ２は主記憶領域５２４ｊに宛てられているので、データｄ２はｔ０後でｔ１前の時点でキャッシュ記憶領域５２２ｊに書き込まれる。
【００７４】
ステップＳ６３９で、同時並行ダイ内キャッシュ局所的コピー操作が実行される。すなわち、それぞれの「局所的コピー操作」が各プレーンにおいて実行され、別々のプレーンのための局所的コピー操作は同時に実行される。
当業者は、別々のプレーン上で２つの局所的コピー操作が「同時に」実行されるためには、それらのコピー操作が行われる時間同士の間に少なくとも部分的な時間的重なりが存在する必要があることを特筆している図６Ａ〜６Ｃ（および付随する議論）を参照されたい。
【００７５】
図１０についての議論
図１０は、Ｎ個のフラッシュメモリダイ１１０のアレイのブロック図であり、ここでＮは１より大きい整数である。図１０の例では、各フラッシュダイはＭ個のプレーンを有し、ここでＭは１より大きい整数である。図１０の記法では、下付き添え字はフラッシュダイを特定し（すなわち、１とＮとの間）、上付き添え字はフラッシュプレーンを特定する（すなわち１とＭとの間）。
【００７６】
或る実施形態では、フラッシュメモリデバイス２６０は図４および８の手法を同時に実行するように動作可能である。デバイスは、受け取ったデータがどのダイに宛てられかつダイ内のどのプレーンに宛てられているかの両方を判定し（すなわち、ステップＳ４１３およびＳ４６３を参照）、これによって「ターゲットダイ」１１０i （ｉは１以上Ｎ以下の整数である）とターゲットダイ１１０i 内の「ターゲットプレーン」５１０i j （ｊは１以上Ｍ以下の整数である）との両方を指定し、さらに（ｉ）受け取ったデータが主記憶領域１２４i に書き込まれる前にキャッシュ記憶領域１２２に書き込まれるたびに、受け取ったデータが指定されたターゲットダイ１１０i のキャッシュ記憶領域１２２i に書き込まれ、かつ（ｉｉ）受け取ったデータがプレーン主記憶領域５２４i j に書き込まれる前にプレーンキャッシュ記憶領域５２２i j に書き込まれるたびに、受け取ったデータが、指定されたターゲットダイ１１０i j 上の指定されたターゲットプレーン５１０i のプレーンキャッシュ記憶領域５２２に書き込まれるというポリシーを実施する。
【００７７】
図１０の非限定的な例では、各フラッシュダイが同数のプレーン（すなわち、Ｍ個のプレーン）を有するということが特に言及される。これは限定ではなくて、或る実施形態では各フラッシュダイはそれぞれの数のフラッシュプレーンＭi を有し、Ｍi は１より大きい正の整数であり、少なくとも２つのフラッシュダイは異なる数のフラッシュプレーンを有し（すなわち、整数ｋおよびｌが存在して（ｉ）ｋはｌに等しくはなく、（ｉｉ）ｋおよびｌの両方が１以上であり、（ｉｉｉ）Ｍk はＭl に等しくない）、図４および８の手法が同時に実行されるということが分かる。
【００７８】
付加的な議論
様々の実施形態において、フラッシュメモリデバイスは、本願明細書に記載されたルーチンのいずれかを実行するように構成され得る。或る実施形態では、これは少なくとも部分的に、フラッシュコントローラ２８０を用いて実行される。本願明細書で開示されたどのフラッシュコントローラ２８０も、ハードウェア（例えば、マイクロプロセッサと、任意にＲＡＭまたはレジスタなどの揮発性メモリとを含む）、ファームウェアおよび／またはソフトウェア（例えば、揮発性および／または不揮発性メモリに格納されてマイクロプロセッサにより実行可能なコンピュータコード）の任意の組み合わせを用いて実現され得る。コントローラ２８０は、任意のソフトウェアおよび／またはファームウェアおよび／またはフィールドプログラマブルロジックアレイ（ＦＰＬＡ：field programmable logic array）素子、ハードワイヤードロジック回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array ）素子、および特定用途向ＩＣ（ＡＳＩＣ：application-specific integrated circuit ）を含むがこれらに限定されないハードウェア素子を含むことができる。縮小命令セットコンピュータ（ＲＩＳＣ：reduced instruction set computer）アーキテクチャおよび／または複合命令セットコンピュータ（ＣＩＳＣ：complex instruction set computer）アーキテクチャを含むが、これらに限定されない任意の命令セットアーキテクチャがコントローラ２８０に使用され得る。
【００７９】
前述したいずれの実施形態も、コンピュータ可読媒体上の、図面と関連して前に記載された操作を実現する命令および／またはデータを受け取ること、送ることあるいは格納することをさらに含み得るということがさらに特に言及される。一般的に言えば、コンピュータ可読媒体は、例えばディスクまたはＣＤ−ＲＯＭ、ＲＡＭ、ＲＯＭ等の揮発性または不揮発性媒体などの磁気またはフラッシュまたは光学式媒体などの記憶媒体またはメモリ媒体、および伝送媒体、またはネットワークおよび／または無線リンクなどの通信媒体を介して伝達される電気、電磁もしくはデジタル信号などの信号を含むことができる。
【００８０】
代表的な実施形態を前に説明してきたが、それらの種々の同等物、変更、改変、および改良が、添付の特許請求の範囲および趣旨から逸脱することなく可能であることは当業者にとっては明白なことである。特に、様々の実施形態が、本願明細書に記載されたもの以外の特徴の組み合わせを含むことができる。従って、特許請求の範囲は前の議論に限定されるものではない。
【図１Ａ】
2012507768.tif 000003
【図１Ｂ】
2012507768.tif 000004
【図１Ｃ】
2012507768.tif 000005
【図１Ｄ】
2012507768.tif 000006
【図１Ｅ】
2012507768.tif 000007
【図１Ｆ】
2012507768.tif 000008
【図２Ａ】
2012507768.tif 000009
【図２Ｂ】
2012507768.tif 000010
【図３】
2012507768.tif 000011
【図４】
2012507768.tif 000012
【図５Ａ】
2012507768.tif 000013
【図５Ｂ】
2012507768.tif 000014
【図６Ａ】
2012507768.tif 000015
【図６Ｂ】
2012507768.tif 000016
【図６Ｃ】
2012507768.tif 000017
【図７】
2012507768.tif 000018
【図８】
2012507768.tif 000019
【図９Ａ】
2012507768.tif 000020
【図９Ｂ】
2012507768.tif 000021
【図１０】
2012507768.tif 000022
【手続補正書】
【提出日】平成23年8月23日(2011.8.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フラッシュメモリデバイスであって、
ａ）それぞれのキャッシュ記憶領域およびそれぞれの主記憶領域をそれぞれ含む複数のフラッシュメモリダイを含むフラッシュメモリと、
ｂ）制御回路であって、
ｉ）外部ホストデバイスからデータを受け取り、
ｉｉ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、
ｉｉｉ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込み、
ｉｖ）前記外部ホストデバイスから受け取った一部のデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれ、前記外部ホストデバイスから受け取った他のデータが初めにキャッシュ記憶領域に書き込まれることなく主記憶領域に書き込まれるように動作し得る制御回路と、
を備えるフラッシュメモリデバイス。
【請求項２】
フラッシュメモリデバイスであって、
ａ）それぞれのキャッシュ記憶領域およびそれぞれの主記憶領域をそれぞれ含む複数のフラッシュメモリダイを含むフラッシュメモリと、
ｂ）制御回路であって、
ｉ）外部ホストデバイスからデータを受け取り、
ｉｉ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、
ｉｉｉ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込み、
ｉｖ）前記外部ホストデバイスから受け取ったデータのすべてが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるように動作し得る制御回路と、
を備えるフラッシュメモリデバイス。
【請求項３】
フラッシュメモリデバイスであって、
ａ）それぞれのキャッシュ記憶領域およびそれぞれの主記憶領域をそれぞれ含む複数のフラッシュメモリダイを含むフラッシュメモリと、
ｂ）制御回路であって、
ｉ）外部ホストデバイスからデータを受け取り、
ｉｉ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、
ｉｉｉ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込み、
ｉｖ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを唯一のキャッシュ記憶領域に書き込むように動作し得る制御回路と、
を備えるフラッシュメモリデバイス。
【請求項４】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記外部ホストデバイスから受け取る前記受け取ったデータのためのアドレス情報に従って前記受け取ったデータがどの主記憶領域に宛てられているかを判定するように動作し得るフラッシュメモリデバイス。
【請求項５】
請求項１記載のフラッシュメモリデバイスにおいて、
前記複数のフラッシュメモリダイの各ダイのために、それぞれの主記憶領域は、フラッシュセル当たりにそれぞれのキャッシュ記憶領域より多くのビットを記憶するように構成されるフラッシュメモリデバイス。
【請求項６】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、前記指定されたターゲットダイのキャッシュ記憶領域から前記指定されたターゲットダイの主記憶領域への前記受け取ったデータの局所的コピー操作を、前記局所的コピー操作中にデータが前記ターゲットダイの記憶領域から消えないように、行うようにさらに動作し得るフラッシュメモリデバイス。
【請求項７】
請求項６記載のフラッシュメモリデバイスにおいて、
ｉ）前記制御回路は、前記複数のフラッシュメモリダイの各ダイのためにそれぞれの局所的コピー操作を実行するように動作し、
ｉｉ）前記制御回路は、前記複数のフラッシュメモリダイのうちの別々のダイのために前記局所的コピー操作を同時に実行するように動作し得るフラッシュメモリデバイス。
【請求項８】
請求項１記載のフラッシュメモリデバイスにおいて、
前記制御回路は、ソフトウェアおよびファームウェアのうちの少なくとも一方を含むフラッシュメモリデバイス。
【請求項９】
請求項１記載のフラッシュメモリデバイスにおいて、
Ａ）前記複数のフラッシュメモリダイの各ダイはそれぞれの複数のプレーンを含み、各プレーンはそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含み、
Ｂ）前記制御回路は、
ｖ）前記受け取ったデータが前記ターゲットダイ上のどのプレーン主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットプレーンとして前記ターゲットダイのプレーンのうちの１つを指定し、
ｖｉ）前記受け取ったデータがプレーン主記憶領域に書き込まれる前にプレーンキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイ上の前記指定されたターゲットプレーンのプレーンキャッシュ記憶領域に書き込むようにさらに動作し得るフラッシュメモリデバイス。
【請求項１０】
外部ホストデバイスに結合されているフラッシュメモリデバイスを備えるシステムにおけるデータキャッシングの方法であって、前記フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含む方法において、
ａ）前記フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取るステップと、
ｂ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定するステップと、
ｃ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
ｄ）前記受け取ったデータが主記憶領域に書き込まれるたびに、前記受け取ったデータを対応するキャッシュ記憶領域に、データが前記主記憶領域に書き込まれる前に、書き込むステップと、
を含む方法。
【請求項１１】
外部ホストデバイスに結合されているフラッシュメモリデバイスを備えるシステムにおけるデータキャッシングの方法であって、前記フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含む方法において、
ａ）前記フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取るステップと、
ｂ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定するステップと、
ｃ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
ｄ）前記受け取ったデータの第１の部分を前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
ｅ）前記受け取ったデータの第２の部分を、初めに前記第２の部分をどのキャッシュ記憶領域にも書き込まずに、前記指定されたターゲットダイの主記憶領域に書き込むステップと、
を含む方法。
【請求項１２】
請求項１０記載の方法において、
ｅ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを唯一のキャッシュ記憶領域に書き込むステップをさらに含む方法。
【請求項１３】
請求項１０記載の方法において、
ステップ（ｂ）の前記指定するステップは、前記外部ホストデバイスから受け取る前記受け取ったデータのためのアドレス情報に従って実行される方法。
【請求項１４】
請求項１０記載の方法において、
ｅ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、
ｉ）フラッシュセル当たりに第１の数のビットを提供する第１の書き込みモードを用いて、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込むステップと、
ｉｉ）その後、フラッシュセル当たりに第１の数を上回る第２の数のビットを提供する第２の書き込みモードを用いて、前記受け取ったデータを前記指定されたターゲットダイの主記憶領域に書き込むステップと、
をさらに含む方法。
【請求項１５】
請求項１０記載の方法において、
ｅ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記指定されたターゲットダイのキャッシュ記憶領域から前記指定されたターゲットダイの主記憶領域へのデータの局所的コピー操作を、前記局所的コピー操作中にデータが前記ターゲットダイの記憶領域から消えないように、行うステップをさらに含む方法。
【請求項１６】
請求項１５記載の方法において、
ｉ）前記複数のフラッシュメモリダイの各ダイのためにそれぞれの局所的コピー操作を実行し、
ｉｉ）前記複数のフラッシュメモリダイのうちの別々のダイのために前記局所的コピー操作を同時に実行する方法。
【請求項１７】
請求項１０記載の方法において、
ｉ）前記方法は、前記複数のフラッシュメモリダイの各ダイがそれぞれの複数のプレーンを含み、各プレーンがそれぞれのプレーンキャッシュ記憶領域およびそれぞれのプレーン主記憶領域を含むシステムにおいて実行され、
ｉｉ）前記方法は、
ｅ）前記受け取ったデータが前記ターゲットダイ上のどのプレーン主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットプレーンとして前記ターゲットダイのプレーンのうちの１つを指定するステップと、
ｆ）前記受け取ったデータがプレーン主記憶領域に書き込まれる前にプレーンキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイ上の前記指定されたターゲットプレーンのプレーンキャッシュ記憶領域に書き込むステップと、
をさらに含む方法。
【請求項１８】
外部ホストデバイスに結合されているフラッシュメモリデバイスを備えるシステムにおけるデータキャッシングのためのコンピュータ可読プログラムコードが格納されるコンピュータ可読媒体であって、前記フラッシュメモリデバイスは複数のフラッシュメモリダイを含み、各フラッシュメモリダイはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含み、前記プログラムコードは、
ａ）前記フラッシュメモリデバイスによって外部ホストデバイスからデータを受け取り、
ｂ）前記受け取ったデータがどの主記憶領域に宛てられているかを判定し、これにより前記受け取ったデータのためのターゲットダイとして複数のフラッシュメモリダイのうちの１つを指定し、
ｃ）前記受け取ったデータが主記憶領域に書き込まれる前にキャッシュ記憶領域に書き込まれるたびに、前記受け取ったデータを前記指定されたターゲットダイのキャッシュ記憶領域に書き込み、
ｄ）前記受け取ったデータが主記憶領域に書き込まれるたびに、前記受け取ったデータを対応するキャッシュ記憶領域に、データが前記主記憶領域に書き込まれる前に、書き込むように動作し得るコンピュータ可読媒体。
【請求項１９】
請求項１８記載のコンピュータ可読媒体において、
前記フラッシュメモリダイは複数のプレーンを含み、各プレーンはそれぞれのキャッシュ記憶領域およびそれぞれの主記憶領域を含むコンピュータ可読媒体。
【国際調査報告】
2012507768.tif 000023
2012507768.tif 000024