(57)【特許請求の範囲】
【請求項１】
データを書き込みかつ読み取るための揮発性メモリと、
データを書き込みかつ読み取るための不揮発性メモリと、
前記揮発性メモリと前記不揮発性メモリとへデータを書き込みかつ読み取るために通信するためのメモリコントローラであって、
ａ）データ読み取り要求に応答し、前記データ読み取り要求のアドレスに応じて前記揮発性メモリ又は前記不揮発性メモリからデータを受信し、
ｂ）データ書き込み要求に応答して、前記揮発性メモリの中へ書き込むために外部から受信したデータを供給し、
c）前記揮発性メモリ内の容量が不足しているという測定に基づいて、前記揮発性メモリ内から前記不揮発性メモリへ最も陳腐化したデータを転送する
ように構成されたメモリコントローラと、
前記メモリコントローラから前記揮発性メモリと前記不揮発性メモリとへ結合するためのバス
とを具備し、
前記最も陳腐化したデータは、最も長い間読み取りも書き込みもされてこなかったアドレスのデータであるソリッド-ステートメモリシステム。
【請求項２】
揮発性メモリおよび不揮発性メモリを具備し、前記揮発性及び不揮発性メモリのそれぞれはデータを保存するとともに前記保存されたデータを読み取るように構成されるソリッド-ステートメモリシステムにおけるデータのストレージを制御する方法であって、前記方法は、
データ読み取り要求に応答し、前記データ読み取り要求のアドレスに応じて前記揮発性メモリ又は前記不揮発性メモリからデータを読み取るステップと、
データ書き込み要求に応答して、前記揮発性メモリの中へ書き込むために外部から受信したデータを供給するステップと、
前記揮発性メモリ内の容量が不足しているという測定に基づいて、前記揮発性メモリ内から前記不揮発性メモリへ最も陳腐化したデータを転送するステップと
を含み、
前記最も陳腐化したデータは、最も長い間読み取りも書き込みもされてこなかったアドレスのデータである、ことを特徴とする方法。
【請求項３】
それぞれデータを読み取るとともに書き込むために構成された複数の揮発性メモリと、
それぞれデータを読み取るとともに書き込むために構成された複数の不揮発性メモリと、
複数の揮発性メモリと複数の不揮発性メモリとへ通信するためのメモリコントローラであって、
ａ）データ読み取り要求に応答し、前記データ読み取り要求のアドレスに応じて前記揮発性メモリ又は前記不揮発性メモリからデータを受信し、
ｂ）データ書き込み要求に応答して前記揮発性メモリの中へ書き込むために外部から受信したデータを供給し、
c）前記揮発性メモリ内の容量が不足しているという測定に基づいて、前記揮発性メモリ内から前記不揮発性メモリへ最も陳腐化したデータを転送する
ように構成されたメモリコントローラと、
前記メモリコントローラから前記複数の揮発性メモリおよび前記複数の不揮発性メモリに結合するための複数のバス
とを具備し、
前記最も陳腐化したデータは、最も長い間読み取りも書き込みもされてこなかったアドレスのデータであるシステム。
【請求項４】
前記メモリコントローラはさらに、
前記データ読み取り要求に応答するとともに前記揮発性メモリへ前記外部から受信したデータを書き込む前に、前記揮発性メモリの利用可能な空き容量は、前記揮発性メモリに前記データを書き込むために十分かを決定するように構成されることを特徴とする請求項１に記載のソリッド-ステートメモリシステム。
【請求項５】
前記揮発性及び不揮発性メモリは、共通バスを通じて前記メモリコントローラへ結合されることを特徴とする請求項１に記載のソリッド-ステートメモリシステム。
【請求項６】
前記揮発性及び不揮発性メモリは、複数のバスを通じて前記メモリコントローラへ結合し、前記バスは同時にアクセスされることが可能なことを特徴とする請求項１に記載のソリッド-ステートメモリシステム。
【請求項７】
前記複数のバスのそれぞれは前記揮発性メモリまたは前記不揮発性メモリのいずれかに結合されることを特徴とする請求項６に記載のソリッド-ステートメモリシステム。
【請求項８】
前記揮発性メモリに書き込まれるデータはさらに、前記データが読み取り要求または書き込み要求に応答して書き込まれたかを識別するタグを具備することを特徴とする請求項１に記載の前記ソリッド-ステートメモリシステム。
【請求項９】
前記データ読み取り要求に応答するとともに前記揮発性メモリへ前記外部から受信したデータを書き込む前に、前記揮発性メモリの空き容量は、前記揮発性メモリへ前記データを書き込むために十分かを決定するステップをさらに具備する
請求項２に記載の方法。
【請求項１０】
データ転送要求が、前記揮発性メモリから前記不揮発性メモリへ全てのデータを転送することを要求するコマンドに応答して行われることを特徴とする請求項２に記載の方法。
【請求項１１】
前記全てのデータの転送を要求するコマンドは、電源切断コマンドを具備することを特徴とする請求項１０に記載の方法。
【請求項１２】
データの前記転送は前記揮発性メモリの利用可能な空き容量が事前定義された閾値を下回ったときに発生することを特徴とする請求項２に記載の前記方法。
【請求項１３】
要求されたコマンドを実行するための前記揮発性メモリの利用可能な空き容量が不足しているときにデータの前記転送が発生することを特徴とする請求項２に記載の方法。
【請求項１４】
前記メモリコントローラはさらに、
前記データ読み取り要求に応答するとともに前記揮発性メモリへ前記外部から受信したデータを書き込む前に、前記揮発性メモリの利用可能な空き容量は、前記揮発性メモリへ前記データを書き込むために十分かを決定するように構成されることを特徴とする請求項３に記載のシステム。
【請求項１５】
前記揮発性メモリに書き込まれるデータはさらに、前記データが読み取り要求もしくは書き込み要求に応答して書き込まれたかを識別するタグを具備することを特徴とする請求項３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に固体メモリシステムに関するものであり、詳しくは、揮発性メモリおよび不揮発性メモリの両方を備えるハイブリッド固体メモリシステムに関するものである。
【背景技術】
【０００２】
今日のコンピュータシステムにおいて最も一般的な大容量記憶装置は、1つまたは複数の回転ディスクを使用し、データを磁気的に記録するハードディスクドライブ(HDD)である。HDDは大量の情報を記憶することができるが、固体メモリと比較した場合、短所もある。特にHDDの方が読み書き速度が遅く、消費電力が多く、装置規模が大きく、機械的衝撃に対する耐性も低い。
【０００３】
固体メモリは、データを記憶するためにメモリチップを使用するデータ記憶装置である。例えばフラッシュメモリなどの不揮発性固体メモリは、その記録密度が増加するにつれてますます普及しつつある。上述のように、その利点のため、ノートブックコンピュータなどのモバイルコンピュータでは最終的に固体メモリがHDDに取って代わることが想像される。
【０００４】
しかし、フラッシュメモリの使用に関連する知られた問題がある。知られた問題の1つは、フラッシュメモリセルの書き換えサイクルの回数が限られていることである。例えば、典型的な書き換えサイクルの最大回数は、100,000サイクルから1,000,000サイクルに及ぶ。さらに、記録密度および低コストの要件を満たすため、マルチレベルセル(MLC)技術が使用されるものと考えられる。しかしMLCは、フラッシュメモリセルごとの書き換えサイクルの最大回数を典型的には2桁、例えば1,000,000サイクルから10,000サイクルに低減させる。
【０００５】
フラッシュメモリの別の問題は、読出し/プログラム動作と消去動作との間のサイズ不整合である。具体的には、フラッシュメモリでは、読出し動作およびプログラム動作はページ単位で行われるのに対し、消去動作はブロック単位で行われる。したがって、最小消去可能サイズは、読出し/プログラムサイズよりも典型的には16倍から64倍大きい。フラッシュメモリデバイス中のメモリセルは、新しいデータでプログラムされる前に消去される必要があるため、新しいページを書き込むためにはブロック全体を消去する必要がある。このことは、書き換えサイクルの回数が限られている問題をさらに深刻にする。
【０００６】
したがって、これらの問題に対処するためにいくつかの解決策が提案されている。これらの試みられた解決策の多くは、Conleyに発行された米国特許第6763424号に記載されている。しかし、これらの解決策はある一定の改善をもたらすとはいえ、それらは尚かなりのページ数を書き換えることを要求する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第6763424号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、フラッシュメモリが実行する読み書き動作の回数をさらに減らし、それによりメモリシステムの平均寿命を延ばすメモリシステムが求められていることが認められる。
【０００９】
本発明の目的は、上述の短所の少なくとも一部を取り除くまたは軽減することである。しかるべく、DRAM(ダイナミックRAM)やSRAM(スタティックRAM)などの揮発性メモリと、フラッシュメモリなどの不揮発性メモリとの両方を組み合わせた固体メモリストレージシステムを提供する。これらのメモリは、各タイプのメモリの利点をうまく活かして全体的なシステム性能を向上させ、ストレージデバイスの平均寿命を向上させる方法で組み合わせられる。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、揮発性固体メモリと、不揮発性固体メモリと、揮発性メモリ中に書込みデータを記憶するように構成されるメモリ制御部であって、データ転送要求に応答して揮発性メモリから不揮発性メモリにデータを転送するようにさらに構成されるメモリ制御部と、を備える固体メモリシステムが提供されている。
【００１１】
本発明のさらなる態様によれば、揮発性固体メモリ、不揮発性固体メモリおよびメモリ制御部を備える固体メモリシステム中にデータを記憶するための方法であって、書込みデータを記憶するためのコマンドを受け取るステップと、それに応答して揮発性メモリ中にその書込みデータを記憶するステップと、データ転送要求に応答して揮発性メモリから不揮発性メモリにデータを転送するステップと、を含む方法が提供されている。
【００１２】
次に本発明の実施形態を添付の図面を参照して説明する。
【図面の簡単な説明】
【００１３】
【図１】固体メモリシステムを示すブロック図である。
【図２ａ】複数のブロックを有するメモリセルアレイ構造を示すブロック図である。
【図２ｂ】複数のページを有するブロック構造を示すブロック図である。
【図２ｃ】ページ構造を示すブロック図である。
【図３ａ】揮発性メモリおよび不揮発性メモリのメモリ空間マップをそれぞれ示す図である。
【図３ｂ】揮発性メモリおよび不揮発性メモリのメモリ空間マップをそれぞれ示す図である。
【図４】固体メモリシステムによって実施されるプロセスを示す流れ図である。
【図５】固体メモリシステムによって実施されるプロセスを示す流れ図である。
【図６】複数のメモリデバイスと通信するために共通バスを使用する固体メモリシステムのブロック図である。
【図７】複数のメモリデバイスと通信するために複数の共通バスを使用する固体メモリシステムのブロック図である。
【図８】複数のメモリデバイスと通信するために複数の共通バスを使用し、バスのそれぞれが1つのタイプのメモリデバイスと通信する固体メモリシステムのブロック図である。
【図９】複数のメモリデバイスと通信するためにデイジーチェーン構成を使用する固体メモリシステムのブロック図である。
【図１０】複数のメモリデバイスと通信するために複数のチェーンを使用する固体メモリシステムのブロック図である。
【図１１】複数のメモリデバイスと通信するために複数のチェーンを使用し、チェーンのそれぞれが1つのタイプのメモリデバイスと通信する固体メモリシステムのブロック図である。
【発明を実施するための形態】
【００１４】
便宜上、本明細書における同一の符号は各図面の同一の構成物を指す。図1を参照すると、符号100により、固体メモリシステムのブロック図が全体的に示されている。この固体メモリシステム100は、メモリ制御部102および固体メモリ104を備える。外部デバイス106は、メモリ制御部102を介して固体メモリ104と通信する。
【００１５】
本実施形態では、メモリ制御部102は、仮想マッピングシステム108(または単にマッピングシステム108)を含む。マッピングシステム108は、要求に関連する論理アドレスを固体メモリ104に関連する物理アドレスにマッピングするために使用される。
【００１６】
固体メモリ104は、揮発性メモリ104aおよび不揮発性メモリ104bを含む。理解されるであろうが、揮発性メモリ104aも不揮発性メモリ104bも1個または複数個のメモリデバイスを含むことができる。
【００１７】
本実施形態では、揮発性メモリ104aはDRAMメモリを含み、不揮発性メモリ104bはNANDフラッシュメモリを含む。しかし、揮発性メモリ104aも不揮発性メモリ104bも他のタイプのものを使用することができることを理解されたい。
【００１８】
固体メモリシステム100は揮発性メモリを含むので、データを保持するための内部バッテリ(不図示)を実装することもできる。固体メモリシステム100への電力が途絶えた場合、このバッテリが揮発性メモリ104aから不揮発性メモリ104bにデータをコピーするための十分な電力を維持することになる。しかし、より多くの場合、バッテリ電源は外部システムの一部として提供される。
【００１９】
図2aを参照すると、符号200により、メモリセルアレイ構造を示すブロック図が全体的に示されている。このセルアレイ200は、ブロック0からブロックn-1とラベル表示されたn個の消去可能ブロック202からなる。
【００２０】
図2bを参照すると、セルアレイブロック202をより詳細に示すブロック図が示されている。ブロック202のそれぞれは、ページ0からページm-1とラベル表示されたm個のプログラム可能ページ252からなる。
【００２１】
図2cを参照すると、プログラム可能ページ252をより詳細に示すブロック図が示されている。ページ252のそれぞれは、データを記憶するためのデータフィールド262、およびエラー管理ファンクションなど、そのデータに関係する追加情報を記憶するための予備フィールド264からなる。このデータフィールドはjバイト(B)で構成され、予備フィールド264はkバイト(B)で構成される。
【００２２】
したがって、ページ252のそれぞれが(j+k)バイト(B)で構成されることが理解できる。ブロック202のそれぞれはm個のページ252からなり、したがって、1個のブロック202は、(j+k)*mバイト(B)となる。さらに、n個のブロック202からなるセルアレイ200の総記憶容量は、(j+k)*m*nバイト(B)となる。便宜上、1B=8ビット、1K=1024、1M=1024Kおよび1G=1024Mという簡略形を使用する。
【００２３】
図3aおよび図3bを参照すると、本実施形態による揮発性メモリ104aおよび不揮発性メモリ104bをそれぞれ示すブロック図が示されている。以下の説明では、ページ、ブロックおよびセルの例示的なサイズを提供する。しかし、これらのサイズは様々な実施形態で大幅に異なる可能性があり、技術が進歩するにつれて変化し続けることを理解されたい。さらに、例えばDRAMなどの揮発性メモリ104aは、必ずしもブロックおよびページ構造を有さないことを理解されたい。したがって、揮発性メモリ104a中に一時的に記憶される任意のデータは、対応するブロックアドレスおよび/またはページアドレスを含むこともできる。このブロックアドレスおよび/またはページアドレスは、データが不揮発性メモリ104b中に転送される際に参照される。したがって、揮発性メモリ104a中のデータがブロックおよびページのアドレスで参照可能な限り、揮発性メモリ104a自体が不揮発性メモリ104bに対して物理的にマッピングされる必要はない。
【００２４】
本実施形態では、ページ252のサイズは、揮発性メモリ104aと不揮発性メモリ104bとの両方で同じである。具体的には、ページ252は、データフィールド262の2048Bと予備フィールド264の64Bとの2112Bで構成される。
【００２５】
さらに、ブロック202のサイズは、揮発性メモリ104aと不揮発性メモリ104bとの両方で同じである。具体的には、ブロック202のそれぞれがページ252を64個含むので、ブロック202はそれぞれ、データフィールド262の128KBと予備フィールド264の4KBとの132KBで構成される。
【００２６】
本実施形態によると、揮発性メモリ104a中のブロック202の数は、不揮発性メモリ104b中のブロック202の数より少ない。具体的には、揮発性メモリ104aは8Kブロックからなり、不揮発性メモリ104bは256Kブロックからなる。したがって、揮発性メモリ104aは、データフィールド262の1GBと予備フィールド264の32MBとの1,056MBで構成される。不揮発性メモリ104bは、データフィールド262の32GBと予備フィールド264の1GBとの33GBで構成される。
【００２７】
明確にするために、NANDフラッシュデバイスの全体的な動作を以下の通り説明する。読出し動作およびプログラム動作はページ単位で行われるのに対し、消去動作はブロック単位で行われる。
【００２８】
読出し動作の場合、READコマンドと、その後に続く論理アドレスが固体メモリシステム100に送信される。マッピングシステムが、この論理アドレスに対応する物理アドレスを特定する。その物理アドレスに対応するデータが、揮発性メモリ104aから、またはその物理アドレスが揮発性メモリ104a中にない場合は不揮発性メモリ104bから読み出される。
【００２９】
データが不揮発性メモリ104bから読み出される場合、読み出したデータを揮発性メモリ104a中にプログラムすることができる。それについての詳細は、図4および図5を参照して説明する。
【００３０】
プログラム動作の場合、PROGRAMコマンドと、その後に続くアドレスおよび入力データが固体メモリシステム100に送出される。このデータは最初に揮発性メモリ104a中にプログラムされる。PROGRAMコマンドによって参照されるアドレスが、すでに揮発性メモリ104a中でプログラムされている場合、そのデータがそのアドレスに上書きされる。PROGRAMコマンドによって参照されるアドレスが、まだ揮発性メモリ104a中でプログラムされていない場合、そのアドレス用の空間が揮発性メモリ104a中に設けられる。
【００３１】
ブロック消去動作の場合、BLOCK ERASEコマンドと、その後に続くブロックアドレスが固体メモリシステム100に送出される。ブロック内の128Kバイトのデータが、あらかじめ定義されたブロック消去時間tBERS未満に消去される。図4を参照すると、符号400により、一実施形態にしたがって固体メモリシステム100が実施するプロセスを示す流れ図が全体的に示されている。ステップ402で、メモリ制御部102が動作要求を受け取る。この動作要求は、典型的にはコマンドを含む。コマンドの種類には、例えば、読出し、プログラムおよび消去が含まれる。コマンドに応じて、動作要求の一部として他の情報を含めることもできる。例えば、読出しコマンドも書込みコマンドも論理アドレスを含む。さらに書込みコマンドは、書き込まれるデータも含む。
【００３２】
ステップ404で、メモリ制御部102がその要求を処理し、要求された動作が特定される。ステップ406で、その要求が揮発性メモリ104aから不揮発性メモリ104bへのデータの転送を伴う動作を含むかどうかが判定される。データを転送しなければならない、いくつかの状況が存在する。例えば、システム再始動動作、システム電源切断動作またはメモリメンテナンス動作は、データ転送要求をもたらすことができる。したがって、データを転送する要求がメモリ制御部102で受け取られた場合、このプロセスはステップ408で続行する。その他の場合、このプロセスはステップ414で続行する。
【００３３】
ステップ408で、揮発性メモリ104a中に記憶されたデータが不揮発性メモリ104bに転送され、それに応じてマッピングシステム108が更新される。この転送は、不揮発性メモリ104b中のデータを更新するための、任意の最新の方法に従って行うことができる。ステップ409で、不揮発性メモリ104b中にある転送済みデータの物理アドレスでマッピングシステム108が更新される。ステップ410で、そのデータ転送が電源切断動作に応答してのものであったかどうかが判定される。そのデータ転送が電源切断動作に応答して実行された場合、ステップ412で、固体メモリシステム100の電源が切られる。そのデータ転送が別の動作に応答して実行された場合、このプロセスはステップ402に戻る。
【００３４】
ステップ414で、要求された動作が読出し動作であるかそれとも書込み動作であるかが判定される。動作が読出し動作であると判定された場合、このプロセスはステップ416で続行する。その他の場合、このプロセスはステップ420で続行する。
【００３５】
ステップ416で、メモリ制御部102が、読み出されるデータの受け取った論理アドレスを、マッピングシステム108を使用して物理アドレスに変換する。ステップ418で、そのデータが不揮発性メモリ104bから当技術分野で標準的なように読み出され、このプロセスはステップ402に戻る。
【００３６】
ステップ420で、メモリ制御部102が、書き込まれるデータの受け取った論理アドレスを、マッピングシステム108を使用して物理アドレスに変換する。ステップ422で、マッピングシステム108は、その物理アドレスが不揮発性メモリのアドレスに一致するかそれとも揮発性メモリのアドレスに一致するかを判定する。
【００３７】
その物理アドレスが揮発性メモリのアドレスに一致する場合、このプロセスはステップ424で続行する。ステップ424で、書込み動作に伴うデータが揮発性メモリ中のその物理アドレスに書き込まれ、既存のデータを上書きする。DRAMなどの揮発性メモリ104aにデータを書き込むことは、その書込み動作より前にそのメモリを消去することを必要としない。さらに揮発性メモリ104aは、フラッシュメモリなどの不揮発性メモリ104bに付随する、書き換えサイクルの制限を受けることはない。揮発性メモリ104aにデータが書き込まれると、このプロセスはステップ434で続行する。ステップ434で、書込みデータの物理アドレスでマッピングシステム108が更新され、ある動作が待ち状態にある場合は、次の動作を実行するためにこのプロセスはステップ402に戻る。
【００３８】
その物理アドレスが不揮発性メモリのアドレスに一致する場合、このプロセスはステップ426で続行する。ステップ426で、メモリ制御部が、揮発性メモリ104a中の利用可能な空き容量を特定する。ステップ428で、その利用可能な空き容量がデータを書き込むために必要な空き容量を上回るかどうかが判定される。十分な空きがない場合、このプロセスはステップ430で続行する。その他の場合、このプロセスはステップ432で続行する。
【００３９】
ステップ430で、揮発性メモリ104a中に記憶されたデータの少なくとも一部が、不揮発性メモリ104bに転送される。本実施形態では、あらかじめ定義された数のブロックが揮発性メモリ104aから不揮発性メモリ104bに転送される。さらに本実施形態では、転送用に選択されるブロックは、最も「陳腐化」したものである。つまり、転送されるブロックは、最も長い間アクセスされてこなかったものである。ステップ408に関連して説明したように、これらのページは、いくつかの最新の方法のうちの1つにしたがって不揮発性メモリ104bに書き込むことができる。ステップ431で、転送済みデータについての物理アドレスの変更を反映するためにマッピングシステム108が更新され、このプロセスはステップ428に戻る。
【００４０】
ステップ432で、そのデータが揮発性メモリ104aに書き込まれる。当業者によって理解されるように、データを揮発性メモリ104aに書き込むために使用する方法は、任意の最新の方法とすることができる。ステップ434で、書込みデータの物理アドレスでマッピングシステム108が更新され、ある動作が待ち状態にある場合は、次の動作を実行するためにこのプロセスはステップ402に戻る。
【００４１】
したがって本実施形態では、揮発性メモリおよび不揮発性メモリの両方を組み合わせて使用して、固体メモリシステムの全体的性能を向上させることが理解できる。具体的には、永続的なデータの記憶を実現するために比較的安価な不揮発性メモリを使用する。不揮発性メモリの使用に関係する制限を改善するために、揮発性メモリを使用する。例えば、上述のように揮発性メモリを使用することは、固体メモリシステムの全体的な時間性能を向上させる。さらに、不揮発性メモリに対してより少ない書込み動作が実行されるため、不揮発性メモリの実効平均寿命が改善される。
【００４２】
さらに本実施形態では、読出し動作は、単に不揮発性メモリ104bからデータを読み出し、そのデータを要求デバイスまたはプロセッサに出力することによって実施される。しかし、一部の例では、読み出したデータを揮発性メモリ104a中にもロードすることが好ましい場合もあることを理解されたい。
【００４３】
したがって、図5を参照すると、符号500により、代替実施形態にしたがって固体メモリシステム100が実施するプロセスを示す流れ図が全体的に示されている。本実施形態では、データ転送および書込み動作は、図4を参照して説明したのと同じ方法で処理される。したがって、図5は読出し動作に関する代替プロセスを示し、説明をステップ414で始める。
【００４４】
ステップ414で、動作要求が読出し動作に関するものであると判定され、このプロセスはステップ502で続行する。ステップ502で、メモリ制御部102が、読み出されるデータの受け取った論理アドレスを、マッピングシステム108を使用して物理アドレスに変換する。ステップ504で、マッピングシステム108は、その物理アドレスが不揮発性メモリのアドレスに一致するかそれとも揮発性メモリのアドレスに一致するかを判定する。
【００４５】
その物理アドレスが揮発性メモリのアドレスに一致する場合、このプロセスはステップ506で続行する。ステップ506で、その読出し動作に関連する揮発性メモリ中のその物理アドレスからデータが読み出される。データは最新の方法を使用して読み出すことができることを理解されたい。揮発性メモリ104aからデータが読み出されると、このプロセスはステップ402に戻る。
【００４６】
その物理アドレスが不揮発性メモリのアドレスに一致する場合、このプロセスはステップ508で続行する。ステップ508で、読出し動作に関連する不揮発性メモリ104b中のその物理アドレスから、要求されたデータが読み出される。ステップ506で説明したように、データは最新の方法を使用して読み出すことができる。ステップ510で、不揮発性メモリ104bから読み出されたデータが要求デバイス106に提供される。
【００４７】
ステップ552で、メモリ制御部102が、揮発性メモリ104a中の利用可能な空き容量、およびその利用可能な空き容量が揮発性メモリ104aにデータを書き込むために必要な空き容量を上回るかどうかを判定する。十分な空きがない場合、このプロセスはステップ554で続行する。その他の場合、このプロセスはステップ512で続行する。
【００４８】
ステップ554で、揮発性メモリ104a中に記憶されたデータの少なくとも一部が、不揮発性メモリ104bに転送される。本実施形態では、あらかじめ定義された数のブロックが揮発性メモリ104aから不揮発性メモリ104bに転送される。さらに本実施形態では、転送用に選択されるブロックは最も「陳腐化」したものである。ステップ408およびステップ430に関連して説明したように、これらのページは、いくつかの最新の方法のうちの1つにしたがって不揮発性メモリ104bに書き込むことができる。ステップ555で、転送済みデータについての物理アドレスの変更を反映するためにマッピングシステム108が更新され、このプロセスはステップ552に戻る。ステップ512で、不揮発性メモリ104bから読み出されたデータが揮発性メモリ104aに書き込まれる。ステップ514で、読み出されたデータに関する新しい物理アドレスでマッピングシステム108が更新され、ある動作が待ち状態にある場合は、次の動作を実行するためにこのプロセスはステップ402に戻る。
【００４９】
したがって、図4および図5を参照して説明した実施形態では、書込み動作だけでなく読出し動作についてもデータが揮発性メモリ104a中にロードされることが理解できる。これにより、同じデータが不揮発性メモリに転送し戻される前にアクセスされる場合、揮発性メモリのより一層のアクセス速度によって固体メモリシステムの性能を向上させることができる。
【００５０】
先の実施形態では、読出し動作または書込み動作に応答してデータを揮発性メモリ104aに書き込むことができる。さらなる実施形態では、そのデータが読出し動作の結果であるのかそれとも書込み動作の結果であるのかを識別するためのタグが、揮発性メモリ104aに書き込まれるデータのページごとに提供される。このタグは、ページ252の予備フィールド264内またはマッピングシステム108内のいずれかに保持することができる。
【００５１】
次いで、このタグはこのプロセスの他のステップで使用することができる。例えば、揮発性メモリ104aから不揮発性メモリ104bにデータが転送される場合、書込みタグを有するページのみが転送される。読出しタグを有するページは、関連する不揮発性メモリのアドレスにデータが依然として記憶されているので、揮発性メモリ104aから削除可能とすることができる。それに応じて、マッピングシステム108を更新しなければならない。
【００５２】
さらに、先の実施形態では、最も陳腐化したデータに基づいて揮発性メモリ104aから空間を開放することを説明した。しかし、どのブロックを消去するかを決定するこのプロセスでは、ページが読出しタグまたは書込みタグを含むかどうかを検討することもできる。例えば、一部の例では、書込みタグを含む古いページよりも、読出しタグを含む新しいページを削除することが好ましい場合がある。これらのまたは他の検討事項のうちの1つまたは複数を使用することに関し、様々なアルゴリズムを実装することができることを理解されたい。
【００５３】
図6を参照すると、符号600により、代替実施形態による固体メモリシステムのブロック図が示されている。固体メモリシステム600は、メモリ制御部102および固体メモリ104を備える。本実施形態では、固体メモリ104は、複数の揮発性メモリデバイス104aおよび複数の不揮発性メモリデバイス104bを含む。揮発性メモリデバイス104aおよび不揮発性メモリデバイス104bは、共通バス602を介してメモリ制御部102に結合される。
【００５４】
例示的目的でのみ、揮発性メモリデバイス104aをDRAMデバイスとし、不揮発性メモリデバイス104bをフラッシュメモリデバイスとする。さらに、この図では2個のDRAMデバイスと4個のフラッシュメモリデバイスとを示すが、デバイスの数は実施形態に応じて異なり得る。
【００５５】
固体メモリデバイス104aまたは104bのうちの1個にアクセスするために、共通バス602は、一度に複数の揮発性メモリデバイス104aのうちの1個だけ、または複数の不揮発性メモリデバイス104bのうちの1個だけをイネーブルするためのデバイスイネーブル信号を含む。共通バス上の複数のメモリデバイスのうちの1個をアクティブにするためにイネーブル信号を使用する方法は当技術分野で周知のものであり、詳しく説明する必要はない。
【００５６】
図7を参照すると、符号700により、さらなる代替実施形態による固体メモリシステムのブロック図が示されている。固体メモリシステム700は、メモリ制御部102および固体メモリ104を備える。本実施形態では、固体メモリ104は、複数の揮発性メモリデバイス104aおよび複数の不揮発性メモリデバイス104bを含む。揮発性メモリデバイス104aおよび不揮発性メモリデバイス104bは、共通バス602を介してメモリ制御部102に結合される。しかし、先の実施形態とは異なり、メモリ制御部102は、チャネルと呼ばれる複数のバスを制御する。
【００５７】
固体メモリデバイス104aまたは104bのうちの1個にアクセスするために、チャネル602のそれぞれは、一度にメモリデバイスのうちの1個だけをイネーブルするためのデバイスイネーブル信号を含む。要求された動作が読出し動作の場合、イネーブルされたメモリデバイスがそのデータをチャネル602上に出力する。要求された動作が書込み動作の場合、イネーブルされたメモリデバイスがそのデータをチャネル602から書き込む。
【００５８】
チャネル602のそれぞれは独立して機能する。さらに、複数のチャネル602が同時にアクティブになることもできる。各チャネル602は並列して動作するので、この機構を使用すると、実装するチャネル602の数と共にシステム性能は向上する。
【００５９】
図8を参照すると、符号800により、代替実施形態による固体メモリシステムのブロック図が示されている。本実施形態は先の実施形態と似ており、複数のチャネル602を備える。しかし、本実施形態では、各チャネルに特定のタイプの固体メモリデバイスが割り当てられる。つまり、nチャネルの固体メモリシステム800の場合、m本のチャネルが揮発性メモリデバイス104a専用に結合され、n-m本のチャネルが不揮発性メモリデバイス104b専用に結合される。
【００６０】
図9を参照すると、符号900により、さらなる代替実施形態による固体メモリシステムのブロック図が示されている。固体メモリシステム900は、メモリ制御部102および固体メモリ104を備える。本実施形態では、固体メモリ104は、複数の揮発性メモリデバイス104aおよび複数の不揮発性メモリデバイス104bを含む。揮発性メモリデバイス104aおよび不揮発性メモリデバイス104bは、デイジーチェーン構成でメモリ制御部102に結合される。つまりメモリ制御部102は、メモリデバイス104aまたは104bのうちの1個目902に結合される。残りのメモリデバイス104aおよび104bは連続的に結合され、最後に連続的に結合される904メモリデバイス104aまたは104bがメモリ制御部102に結合し戻される。
【００６１】
固体メモリデバイス104aまたは104bのうちの1個にアクセスするために、メモリ制御部102は1個目のメモリデバイス902に要求を出力する。この要求は、目的のデバイスに到達するまでメモリデバイス104aおよび104bを通過する。目的のデバイスが要求された動作を実行し、結果がある場合はその結果が、最後のデバイス904に到達するまでメモリデバイスのチェーンを通過し、最後のデバイス904はその結果をメモリ制御部102に戻す。複数のメモリデバイスのうちの1個をアクティブにするためにデイジーチェーンを使用する方法は当技術分野で周知のものであり、詳しく説明する必要はない。
【００６２】
図10を参照すると、符号1000により、さらなる代替実施形態による固体メモリシステムのブロック図が示されている。固体メモリシステム1000は、メモリ制御部102および固体メモリ104を備える。本実施形態では、固体メモリ104は、複数の揮発性メモリデバイス104aおよび複数の不揮発性メモリデバイス104bを含む。揮発性メモリデバイス104aおよび不揮発性メモリデバイス104bは、デイジーチェーン構成でメモリ制御部102に結合される。しかし、先の実施形態とは異なり、メモリ制御部102は複数のチェーンを制御する。
【００６３】
各チェーンは独立して機能する。さらに、複数のチェーンが同時にアクティブになることもできる。各チェーンは並列して動作するので、この機構を使用すると、実装するチェーンの数と共にシステム性能は向上する。
【００６４】
図11を参照すると、符号1100により、さらなる代替実施形態による固体メモリシステムのブロック図が示されている。本実施形態は先の実施形態と似ており、複数のチェーンを備える。しかし、本実施形態では、各チェーンに特定のタイプの固体メモリデバイスが割り当てられる。つまり、nチェーンの固体メモリシステム1100の場合、m本のチェーンが揮発性メモリデバイス104a専用に結合され、n-m本のチェーンが不揮発性メモリデバイス104b専用に結合される。
【００６５】
先の実施形態のすべてが、揮発性メモリデバイスおよび不揮発性メモリデバイスの両方を含む固体メモリデバイスを実装する様々な方法を説明した。各デバイスは、固体メモリデバイスの性能および実効平均寿命を向上させるような方法で組み合わせられる。
【００６６】
先の実施形態では、揮発性メモリ104aが不揮発性メモリ104bよりも少ないブロック202を有すると説明したが、これは必ずしも当てはまる必要はない。コスト、サイズおよび永続性に関する揮発性メモリ104aの制限のため、この取合わせが最も適当な実施形態であろう。しかし、揮発性メモリ104aおよび不揮発性メモリ104bそれぞれのブロック数が同じである状況もあり得る。さらに、揮発性メモリ104a中のブロック数が、不揮発性メモリ104b中のブロック数を上回る状況もあり得る。
【００６７】
最後に、本発明を特定の具体的な実施形態を参照して説明してきたが、添付の特許請求の範囲に定義する本発明の趣旨および範囲から逸脱することなく、その様々な修正が当業者には明らかであろう。
【符号の説明】
【００６８】
100  固体メモリシステム
102  メモリ制御部
104  固体メモリ
104a  固体メモリデバイス
104a  揮発性メモリデバイス
104a  揮発性メモリ
104b  固体メモリデバイス
104b  不揮発性メモリデバイス
104b  不揮発性メモリ
106  外部デバイス
108  仮想マッピングシステム
108  マッピングシステム
200  セルアレイ
202  ブロック
252  ページ
262  データフィールド
264  予備フィールド
600  固体メモリシステム
602  共通バス
602  チャネル
700  固体メモリシステム
800  固体メモリシステム
900  固体メモリシステム
902  1個目のメモリデバイス
904  最後のデバイス
1000  固体メモリシステム
1100  固体メモリシステム
【図１】
0005619423.tif 000002
【図２ａ】
0005619423.tif 000003
【図２ｂ】
0005619423.tif 000004
【図２ｃ】
0005619423.tif 000005
【図３ａ】
0005619423.tif 000006
【図３ｂ】
0005619423.tif 000007
【図６】
0005619423.tif 000008
【図７】
0005619423.tif 000009
【図８】
0005619423.tif 000010
【図９】
0005619423.tif 000011
【図１０】
0005619423.tif 000012
【図１１】
0005619423.tif 000013
【図４】
0005619423.tif 000014
【図５】
0005619423.tif 000015