(57)【要約】データストレージデバイスは、複数の下位ページ及び対応する複数の高位ページを含む複数のマルチレベルセル（ＭＬＣ）不揮発性メモリデバイスを備えてもよい。コントローラは、複数の下位ページ及び対応する複数の高位ページにデータを書き込む及び複数の下位ページ及び対応する複数の高位ページからデータを読み出すように構成されてもよい。バッファは、コントローラに接続されてもよく、コントローラは、複数のＭＬＣ不揮発性メモリデバイスに書き込まれるデータを蓄積し、バッファにスペースを割り当て、蓄積されたデータを、割り当てたスペースに書き込み無用に構成されてもよい。蓄積されたデータの少なくとも一部は、ＭＬＣ不揮発性メモリデバイスの下位ページに書き込まれてもよく、下位ページに書き込まれるデータを格納する前記バッファにおけるスペースは、下位ページに対応する全ての高位ページが複数のＭＬＣ不揮発性メモリデバイスに書き込まれている場合に割り当てを解除するように構成されてもよい。【選択図】図２
2015535118.tif 000002
【特許請求の範囲】
【請求項１】
データストレージデバイスであって、
複数の下位ページ及び対応する複数の高位ページを含む複数のマルチレベルセル（ＭＬＣ）不揮発性メモリデバイスと、
前記複数のＭＬＣ不揮発性メモリデバイスに接続され、かつ前記複数の下位ページ及び前記対応する複数の高位ページにデータを書き込む又は前記複数の下位ページ及び前記対応する複数の高位ページからデータを読み出すように構成されるコントローラと、
前記コントローラに接続されるバッファと、を備え、
前記コントローラは、
前記複数のＭＬＣ不揮発性メモリデバイスに書き込まれるデータを蓄積し、
前記バッファにスペースを割り当て、蓄積された前記データを前記バッファの割り当てられた前記スペースに書き込み、
前記複数のＭＬＣ不揮発性メモリデバイスの下位ページに、蓄積された前記データの少なくとも一部を書き込み、
前記下位ページに対応する全ての高位ページが前記複数のＭＬＣ不揮発性メモリデバイスに書き込まれている場合、前記下位ページに書き込まれるデータを格納する前記バッファにおけるスペースの割り当てを解除する
ように構成される、データストレージデバイス。
【請求項２】
前記バッファは、不揮発性メモリを備える請求項１に記載のデータストレージデバイス。
【請求項３】
前記不揮発性メモリは、磁気ランダムアクセスメモリ（ＭＲＡＭ）を備える請求項２に記載のデータストレージデバイス。
【請求項４】
前記コントローラは、更に、電力の損失後に前記データストレージデバイスに電力が復旧した後に、前記バッファからデータを読み出し、読み出たデータの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスに書き込むように構成される請求項１に記載のデータストレージデバイス。
【請求項５】
前記バッファは、前記データストレージデバイスへの電力の損失後に、下位ページの破損から回復可能にするために少なくとも十分な大きさである請求項１に記載のデータストレージデバイス。
【請求項６】
前記ＭＬＣ不揮発性メモリデバイスは、下位ページのみモード又はシングルレベルセル（ＳＬＣ）モードで動作するように構成される請求項１に記載のデータストレージデバイス。
【請求項７】
前記コントローラは、更に、蓄積された前記データが、前記バッファに割り当てられた前記スペースに書き込まれた後に、書き込み許可を生成し、ホストへ送信するように構成される請求項１に記載のデータストレージデバイス。
【請求項８】
前記ＭＬＣ不揮発性メモリデバイスは、複数のブロックを含み、前記複数のブロックのそれぞれは、複数の物理ページを含み、ブロックの集合は、スーパーブロック（Ｓ−ブロック）を定義し、Ｓ−ブロックにおけるブロック当たりに１つの物理ページを有する物理ページの集合は、スーパーページ（Ｓ−ページ）を定義し、前記データは、Ｓ−ページのユニットに蓄積、書き込み及び格納される請求項１に記載のデータストレージデバイス。
【請求項９】
バックアップ電源及び不揮発性メモリを更に備え、前記バッファは、揮発性メモリを含み、前記バックアップ電源は、前記バッファから前記不揮発性メモリへ前記データを書き込むために、前記コントローラにとって少なくとも必要なだけ前記データストレージデバイスの少なくとも一部に電源供給するように構成される請求項１に記載のデータストレージデバイス。
【請求項１０】
前記不揮発性メモリは、磁気ランダムアクセスメモリ（ＭＲＡＭ）を備える請求項９に記載のデータストレージデバイス。
【請求項１１】
前記コントローラは、更に、電力の損失後に前記データストレージデバイスに電力が復旧した後に、前記不揮発性メモリの前記データの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスに書き込むように構成される請求項９に記載のデータストレージデバイス。
【請求項１２】
書き込みストアを更に備え、前記コントローラは、更に、蓄積された前記データが前記バッファの割り当てられたスペースに書き込まれたとき、蓄積された前記データを前記書き込みストアに書き込むように構成される請求項１に記載のデータストレージデバイス。
【請求項１３】
前記コントローラは、更に、前記下位ページに対応する全ての高位ページが前記ＭＬＣ不揮発性メモリデバイスに書き込まれている場合に、前記高位ページに書き込まれるデータを格納する前記バッファにもスペースの割り当て解除を行うように構成される請求項１に記載のデータストレージデバイス。
【請求項１４】
データストレージデバイスコントローラであって、
バッファに接続されるように構成され、かつ複数の下位ページ及び対応する複数の高位ページを含む複数のマルチレベルセル（ＭＬＣ）不揮発性メモリデバイスに接続されるように構成されるプロセッサを備え、
前記プロセッサは、更に、
前記複数の下位ページ及び前記対応する複数の高位ページからデータを読み出し、
少なくとも
前記ＭＬＣ不揮発性メモリデバイスに書き込まれるデータを蓄積し、
前記バッファにスペースを割り当て、かつ蓄積された前記データを、前記バッファに割り当てた前記スペースへ書き込み、
蓄積された前記データの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスの下位ページ内に書き込み、
前記下位ページに対応する全ての高位ページが前記ＭＬＣ不揮発性メモリデバイスに書き込まれている場合、前記下位ページに書き込まれるデータを格納する前記バッファにスペースの割り当てを解除する
ことにより、前記複数の下位ページ及び前記対応する複数の高位ページにデータを書き込むように構成される、データストレージデバイスコントローラ。
【請求項１５】
前記バッファは、不揮発性メモリを備える請求項１４に記載のデータストレージデバイスコントローラ。
【請求項１６】
前記不揮発性メモリは、磁気ランダムアクセスメモリ（ＭＲＡＭ）を備える請求項１５に記載のデータストレージデバイスコントローラ。
【請求項１７】
前記プロセッサは、更に、電力の損失後にデータストレージデバイスに電力が復旧した後に、前記バッファからデータを読み出し、読み出たデータの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスに書き込むように構成される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項１８】
前記バッファは、データストレージデバイスへの電力の損失後に、下位ページの破損から回復可能にするために少なくとも十分な大きさである請求項１４に記載のデータストレージデバイスコントローラ。
【請求項１９】
前記ＭＬＣ不揮発性メモリデバイスは、下位ページのみモード又はシングルレベルセル（ＳＬＣ）モードで動作するように構成される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項２０】
前記プロセッサは、更に、蓄積された前記データが、前記バッファに割り当てられたスペースに書き込まれた後に、書き込み許可を生成し、ホストへ送信するように構成される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項２１】
前記ＭＬＣ不揮発性メモリデバイスは、複数のブロックを含み、前記複数のブロックのそれぞれは、複数の物理ページを含み、ブロックの集合は、スーパーブロック（Ｓ−ブロック）を定義し、Ｓ−ブロックにおけるブロック当たりに１つの物理ページを有する物理ページの集合は、スーパーページ（Ｓ−ページ）を定義し、前記データは、Ｓ−ページのユニットに蓄積、書き込み及び格納される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項２２】
バックアップ電源及び不揮発性メモリを更に備え、前記バッファは、揮発性メモリを含み、前記バックアップ電源は、前記バッファから前記不揮発性メモリへ前記データを書き込むために、コントローラにとって少なくとも必要なだけデータストレージデバイスの少なくとも一部に電源供給するように構成される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項２３】
前記不揮発性メモリは、磁気ランダムアクセスメモリ（ＭＲＡＭ）を備える請求項２２に記載のデータストレージデバイスコントローラ。
【請求項２４】
前記プロセッサは、更に、電力の損失後に前記データストレージデバイスに電力が復旧した後に、前記不揮発性メモリの前記データの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスに書き込むように構成される請求項２２に記載のデータストレージデバイスコントローラ。
【請求項２５】
書き込みストアを更に備え、前記プロセッサは、更に、蓄積された前記データが、前記バッファの割り当てられたスペースに書き込まれたとき、蓄積された前記データを前記書き込みストアに書き込むように構成される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項２６】
前記プロセッサは、更に、前記下位ページに対応する全ての高位ページが前記ＭＬＣ不揮発性メモリデバイスに書き込まれている場合に、前記高位ページに書き込まれるデータを格納する前記バッファにもスペースの割り当て解除を行うように構成される請求項１４に記載のデータストレージデバイスコントローラ。
【請求項２７】
データストレージデバイスを制御する方法であって、前記データストレージデバイスは、バッファと、複数の下位ページ及び対応する複数の高位ページを含む複数のマルチレベルセル（ＭＬＣ）不揮発性メモリデバイスと、を備え、前記方法は、
前記複数の下位ページ及び前記対応する複数の高位ページからデータを読み出すステップと、
少なくとも
前記ＭＬＣ不揮発性メモリデバイスに書き込まれるデータを蓄積し、
前記バッファにスペースを割り当て、かつ蓄積された前記データを、前記バッファに割り当てられた前記スペースへ書き込み、
蓄積された前記データの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスの下位ページ内に書き込み、
前記下位ページに対応する全ての高位ページが前記ＭＬＣ不揮発性メモリデバイスに書き込まれている場合、前記下位ページに書き込まれるデータを格納する前記バッファにおけるスペースの割り当てを解除する
ことにより、前記複数の下位ページ及び前記対応する複数の高位ページにデータを書き込むステップと、
を備える方法。
【請求項２８】
前記バッファは、不揮発性メモリを備える請求項２７に記載の方法。
【請求項２９】
前記不揮発性メモリは、磁気ランダムアクセスメモリ（ＭＲＡＭ）を備える請求項２８に記載の方法。
【請求項３０】
電力の損失後に前記データストレージデバイスに電力が復旧した後に、前記バッファからデータを読み出し、読み出たデータの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスに書き込むステップを更に備える請求項２７に記載の方法。
【請求項３１】
前記バッファは、前記データストレージデバイスへの電力の損失後に、下位ページの破損から回復可能にするために少なくとも十分な大きさである請求項２７に記載の方法。
【請求項３２】
前記ＭＬＣ不揮発性メモリデバイスは、下位ページのみモード又はシングルレベルセル（ＳＬＣ）モードで動作するように構成される請求項２７に記載の方法。
【請求項３３】
蓄積された前記データが、前記バッファにおける割り当てられた前記スペースに書き込まれた後に、書き込み許可を生成し、ホストへ送信するステップを更に備える請求項２７に記載の方法。
【請求項３４】
前記ＭＬＣ不揮発性メモリデバイスは、複数のブロックを含み、前記複数のブロックのそれぞれは、複数の物理ページを含み、ブロックの集合は、スーパーブロック（Ｓ−ブロック）を定義し、Ｓ−ブロックにおけるブロック当たりに１つの物理ページを有する物理ページの集合は、スーパーページ（Ｓ−ページ）を定義し、蓄積、書き込み及び格納は、Ｓ−ページのユニットで行われる、請求項２７に記載の方法。
【請求項３５】
バックアップ電源及び不揮発性メモリを更に備え、前記バッファは、揮発性メモリを含み、前記方法は、前記バッファから前記不揮発性メモリへ前記データを書き込むために、コントローラにとって少なくとも必要なだけ前記データストレージデバイスの少なくとも一部にバックアップ電源を供給するステップを更に備える請求項２７に記載の方法。
【請求項３６】
前記不揮発性メモリは、磁気ランダムアクセスメモリ（ＭＲＡＭ）を備える請求項３５に記載の方法。
【請求項３７】
電力の損失後に前記データストレージデバイスに電力が復旧した後に、前記不揮発性メモリのデータの少なくとも一部を前記ＭＬＣ不揮発性メモリデバイスに書き込むステップを更に備える請求項３５に記載の方法。
【請求項３８】
前記データストレージデバイスは、書き込みストアを更に備え、前記データを書き込むステップは、更に、蓄積された前記データが、前記バッファにおける割り当てられた前記スペースに書き込まれたとき、蓄積された前記データを前記書き込みストアに書き込むことを含む請求項２７に記載の方法。
【請求項３９】
前記下位ページに対応する全ての高位ページが前記ＭＬＣ不揮発性メモリデバイスに書き込まれている場合に、前記高位ページに書き込まれるデータを格納する前記バッファにおけるスペースの割り当て解除を行うステップを更に備える請求項２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
フラッシュメモリは、電気的に消去及び再プログラムされることが可能な不揮発性コンピュータストレージ技術である。フラッシュメモリは、典型的には、ブロックに書き込まれ、より大きなスーパーブロック又はＳブロックに割り当てられ、ガベージコレクションされ、かつ消去される。
【背景技術】
【０００２】
フラッシュメモリは、複数のセルを備え、各セルは、セル当たり１つ又は２以上のビットを格納するように構成される。ＳＬＣは、「シングル−レベルセル（Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ）」の略語であり、各セルが１ビットを格納する構成を意味する。ＳＬＣは、転送速度が速い、低消費電力及び高いセル耐久性だけでなく、相対的にコストが高いことにより特徴付けられる。ＭＬＣは、「マルチレベルセル（Ｍｕｌｔｉ−ｌｅｖｅｌ  Ｃｅｌｌ）」の略語であり、セル当たり２以上のビットを格納する構成を意味する。略語ＭＬＣは、セル当たり２ビットを格納するセルを有するフラッシュメモリを意味するために頻繁に使用される。しかし、セル当たり３ビット（「ＴＬＣ」又はトリプル又はスリーレベルセル）又はそれ以上の数のビットを格納するように構成されるセルを有するフラッシュメモリを示すためにも同じ略語ＭＬＣが使用される。ＭＬＣが、各セルに２ビットを格納するメモリを示すために用いられる場合、このようなＭＬＣ、フラッシュメモリは、転送速度が遅く、電力消費が多く、シングル−レベルセルメモリよりもセル耐久性が低いことにより特徴付けられる。しかし、このようなＭＬＣメモリは、ビット当たりの製造コストがＳＬＣメモリよりも比較的低い製造コストである。
【発明の概要】
【０００３】
ＭＬＣ  ＮＡＮＤフラッシュメモリでは、メモリセルの同一ページは、データの２以上の論理ページを格納するために使用されてもよく、各セルは、２以上のビットを格納するように構成される。セル当たり２ビットが格納される場合、下位ページの第１のビットが初めに格納され、その後、次のビット又は１以上高位のページのビットが格納される。下位ページが初めにプログラムされ、続いて高位のページがプログラムされる。上位ページをプログラムするとき、電圧のプログラミングは、下位ページの有効なデータを既に格納している同一のセルに適用される。高位ページのプログラミング時に電力損失がある場合、下位ページの記憶されたデータは、回復できないほどに破損してしまい、高位ページに記憶されるはずのデータも破損してしまう。この課題は、下位ページに記憶されたデータがフラッシュメモリに既に記憶されていることを示すホストがデータストレージデバイスからの許可を受け取っているという事実によって複合化される。
【０００４】
図１は、従来のフラッシュデータストレージデバイスの態様のブロック図である。図１に示されるように、フラッシュデータストレージデバイス１００は、コントローラ１０４を備える。コントローラ１０４は、参照番号１０２で集合的に参照される不揮発性メモリ（例えば、フラッシュメモリデバイス）のアレイと接続される。従来、電力損失保護を提供するために、従来のフラッシュデータストレージデバイスは、図１の１０６に示されるように、バックアップ電源を含む。１０６に示されるように、スーパーキャパシタ又はディスクリートキャパシタのアレイは、従来、電力損失時、典型的には、フラッシュメモリデバイス１０２へのデータのプログラム（ｐｒｏｇｒａｍｍｉｎｇ）を終了するために十分な長さだけ電源投入されるコントローラ１０４及び不揮発性メモリ１０２を維持するために用いられる。実際、これらのスーパーキャパシタ又はディスクリートキャパシタのアレイは、電力を損失すると、コントローラ１０４がファームウェアオペレーション（例えば、書き込みオペレーション）を完了することを可能にするために、十分な量のエネルギーを蓄積するように構成される。しかし、スーパーキャパシタは、大きく、信頼性が低く、問題に陥りやすく、高額であるため、最適ではない。
【図面の簡単な説明】
【０００５】
【図１】図１は、従来のフラッシュデータストレージデバイスの態様のブロック図である。
【図２】図２は、一実施形態に係るデータストレージデバイスの物理及び論理データ構造の態様を示す図である。
【図３】図３は、一実施形態に係るＳブロックのブロック図である。
【図４】図４は、一実施形態に係るＳページのブロック図である。
【図５】図５は、一実施形態に係るデータストレージデバイスのブロック図である。
【図６】図６は、一実施形態に係るデータストレージデバイスを制御する方法のフローチャートである。
【発明を実施するための形態】
【０００６】
本開示の範囲内では、略語“ＭＬＣ”は、セル当たりに２以上のビットを格納するセルを備えるフラッシュメモリを明示的に示す。このようなＭＬＣフラッシュメモリがセル当たり２ビットを格納するように構成される場合には、データは、下位ページ及び対応する上位ページに格納される。このようなＭＬＣフラッシュメモリがセル当たり３以上のビットを格納するように構成される場合には、データは、下位ページ及び１以上の対応する高位ページに格納される。“高位ページ（ｈｉｇｈｅｒ−ｏｒｄｅｒ  ｐａｇｅｓ）”の語は、上位ページ及び／又は上位ページ及び高位の１以上のページに及ぶことが明示的に意図される。
【０００７】
図２は、一実施形態に係るデータストレージデバイス２００の物理及び論理データ構造の態様を示す図である。一実施形態では、データストレージデバイスは、ＳＳＤである。別の実施形態では、データストレージデバイスは、フラッシュメモリと回転磁気ストレージメディアを含むハイブリッドデバイスである。本開示は、ＳＳＤ及びハイブリッド実装のいずれにも適用可能であるが、簡略化のために、各種実施形態は、ＳＳＤベースの実装を参照して説明される。一実施形態に係るデータストレージデバイスコントローラ２０２は、参照番号２１８に示されるように、ホストに接続されるように構成されてもよい。ホスト２１８は、論理ブロックアドレッシング（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｉｎｇ（ＬＢＡ））スキームを使用してもよい。ＬＢＡサイズは、通常、固定されているが、ホストは、ＬＢＡのサイズを動的に変更することができる。例えば、物理データストレージデバイスは、異なるサイズのＬＢＡのために構成されるパーティションをサポートするように論理分配（ｌｏｇｉｃａｌｌｙ  ｐｏｒｔｉｏｎｅｄ）されてもよい。しかし、このようなパーティションは、同時に異なるサイズのＬＢＡをサポートするために物理デバイスには要求されない。例えば、ＬＢＡサイズは、インターフェース及びインターフェースモードによって変化してもよい。実際には、５１２バイトが最も一般的であるが、４ＫＢも一般的となっており、５１２＋（５２０，５２８等）及び４ＫＢ＋（４ＫＢ＋８，４Ｋ＋１６等）がある。本明細書に示されるように、データストレージデバイスコントローラ２０２は、ページレジスタ２０４を備える又はページレジスタ２０４に接続されてもよい。ページレジスタ２０４は、コントローラ２０２がデータストレージデバイスからデータを読み出す、及びデータストレージデバイスへデータを記憶することを可能にするように構成されてもよい。コントローラ２０２は、ホスト２１８からのデータアクセスコマンドに対応するフラッシュメモリデバイスのアレイからデータを書き込み及び読み出すように構成されてもよい。本明細書の説明は、一般的なフラッシュメモリについて示されているが、メモリデバイスのアレイは、フラッシュ集積回路、カルコゲナイドＲＡＭ（Ｃｈａｌｃｏｇｅｎｉｄｅ  ＲＡＭ（Ｃ−ＲＡＭ））、相変化メモリ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ（ＰＣ−ＲＡＭ又はＰＲＡＭ））、プログラマブルメタライゼーションセルＲＡＭ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｍｅｔａｌｌｉｚａｔｉｏｎ  Ｃｅｌｌ  ＲＡＭ（ＰＭＣ−ＲＡＭ又はＰＭＣｍ）、Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ（ＯＵＭ）、抵抗ＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ（ＲＲＡＭ（登録商標）））、ＮＡＮＤメモリ（例えば、ｓｉｎｇｌｅ−ｌｅｖｅｌ  ｃｅｌｌ（ＳＬＣ）メモリ、ｍｕｌｔｉ−ｌｅｖｅｌ  ｃｅｌｌ（ＭＬＣ）メモリ又はそれらの任意の組み合わせ）、ＮＯＲメモリ、ＥＥＰＲＯＭ、強誘電体メモリ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｍｅｍｏｒｙ（ＦｅＲＡＭ））、磁気抵抗ＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ（ＭＲＡＭ））、他のディスクリートＮＶＭ（不揮発性メモリ）チップ又はそれらの任意の組み合わせのような不揮��性メモリデバイスの１以上を備えてもよいことが理解される。
【０００８】
ページレジスタ２０４は、コントローラ２０２が、アレイからデータを読み出し、アレイにデータを記憶するように構成されてもよい。一実施形態によれば、フラッシュメモリデバイスのアレイは、複数のダイ（例えば、１２８ダイ）の不揮発性メモリデバイスを備えてもよく、図２の２０６で示されるように、それぞれが複数のブロックを備える。他のページレジスタ２０４（図示せず）は、他のダイのブロックに接続されてもよい。共にグループ化された、フラッシュブロックの組み合わせは、スーパーブロック又はＳ−ブロックと呼ばれる。一部の実施形態では、Ｓ−ブロックを形成する個々のブロックは、１以上のダイ、プレーン又は他のレベルの粒度から選択されてもよい。よって、Ｓ−ブロックは、共に組み合わせられた、１以上のダイに亘る、複数のフラッシュブロックを備えてもよい。この手法では、Ｓ−ブロックは、フラッシュマネージメントシステム（ＦＭＳ）が動作するユニットを形成してもよい。一部の実施形態では、Ｓ−ブロックを形成する個々のブロックは、メモリデバイスが、プレーンのような構造に細分化されたダイを含む場合のような、ダイレベルとは異なる粒度に基づいて選ばれてもよい（すなわち、ブロックは、個々のプレーンから取得されてもよい）。一実施形態によれば、アロケーション、消去及びガベージコレクションは、Ｓ−ブロックレベルで実行されてもよい。別の実施形態では、ＦＭＳは、ページ、ブロック、プレーン、ダイ等のような他の論理グループに従ってデータオペレーションを実行してもよい。
【０００９】
一実施形態によれば、ＭＬＣ不揮発性メモリデバイスのアレイは、複数の下位ページ及び対応する複数の高位ページを備えてもよい。つまり、各下位ページは、対応する単一の上位ページ又は対応する複数の（すなわち、２以上の）高位ページと関連付けられてもよい。ＭＬＣ不揮発性メモリデバイスは、図２に示されるように、複数のフラッシュページ（Ｆ‐ページ）２０７を含む各フラッシュブロックにより、フラッシュブロック２０６に編成されてもよい。それに代えて、異なる物理的な編成が採用されてもよい。一実施形態によれば、Ｆ‐ページは、不揮発性メモリデバイスのプログラムの最小単位の大きさであってもよい。コントローラ２０２は、複数の不揮発性メモリデバイスに接続され、データを複数の下位ページから読み出し、データを１以上の高位ページに書き込むように構成されてもよい。従来のデータストレージデバイスを悩ます下位ページ破損の問題を特定するために、データストレージデバイス２００の一実施形態は、バッファ２０８を備える。一実施形態では、バッファは、不揮発性メモリを備える。書き込みコマンドは、ホスト２１８から受信され、コントローラ２０２により実行され、ＭＬＣ不揮発性メモリデバイス（つまり、フラッシュブロック２０６）に書き込まれるデータを蓄積してもよい。一実施形態によれば、書き込まれるデータは、書き込みストア（ｗｒｉｔｅ  ｓｔｏｒｅ）２０３内に蓄積されてもよい。書き込みストア２０３は、コントローラ２０２に接続されてもよい。一実施形態では、書き込みストア２０３は、コントローラ２０２の内部のストアである。書き込みストア２０３にデータを蓄積するのと同時に（又は少なくとも少し前、又はこのような蓄積の後に）、コントローラ２０２は、バッファ２０８にメモリスペースを割り当て、蓄積されたデータを、バッファ２０８における割り当てられたスペースに書き込んでもよい。一実施形態によれば、ＭＬＣ不揮発性メモリデバイスに書き込まれるデータは、バッファ２０８及び書き込みストア２０３が互いにミラーリングする又は実質的にミラーリングするように、書き込みストア２０３及びバッファ２０８の両方に記憶されてもよい。一実施形態によれば、コントローラ２０２は、完全なＦ‐ページが構築されるまで、書き込みストア２０３及びバッファ２０８に書き込まれるデータを蓄積するように構成されてもよい。一実施形態によれば、部分的なＦ‐ページは、所定のコード化値が詰め込まれ、完了されたとみなされてもよい。完了したＦ−ページは、ＭＬＣ不揮発性メモリデバイスに書き込まれてもよい。つまり、蓄積されたデータの少なくとも一部は、ＭＬＣ不揮発性メモリデバイスの下位ページに書き込まれてもよい。一実施形態によれば、バッファ２０８の以前に割り当てられたスペースは、下位ページに対応する全ての高位ページが、ＭＬＣ不揮発性メモリデバイスに書き込まれている場合、割り当てを解除してもよい。すなわち、コントローラ２０２は、下位ページに対応する上位ページ又は高位ページがプログラムされるまで、バッファ２０８に下位ページデータを保持するように構成されてもよい。これは、データが電力損失及び破損の危険がない（ｃｏｒｒｕｐｔｉｏｎ  ｓａｆｅ）とみなさ��た後に、下位ページ及び高位ページの両方がプログラムされるまで、書き込みデータのパワーセーフコピー（ｐｏｗｅｒ−ｓａｆｅ  ｃｏｐｙ）がバッファ２０８に維持されることを保証する。
【００１０】
一実施形態によれば、データストレージデバイス２００の動作の通常コースにおいて、完全なＦ−ページが構築され（かつ書き込みストア２０３に蓄積され、バッファ２０８に書き出され）ると、それらは、ＭＬＣ不揮発性メモリデバイスに書き出される。一実施形態によれば、書き込みストア２０３に格納される完全なＦ−ページは、ＭＬＣ不揮発性メモリデバイスに書き出される。実際、書き込みストア２０３がバッファ２０８よりも広い帯域をサポートすることができるため、バッファ２０８からよりも書き込みストア２０３からの完全なＦ−ページに書き出すことが好ましい。
【００１１】
一実施形態によれば、バッファ２０８は、不揮発性メモリを備えてもよい。例えば、バッファ２０８は、不揮発性であり、かつアクセス、読み出し、及び書き込み速度が速いことを特徴とするメモリを備えてもよい。一実施形態によれば、バッファ２０８は、磁気ランダムアクセスメモリ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＭＲＡＭ））を備えてもよい。他の型のメモリを使用してもよい。ＭＲＡＭは、ＳＲＡＭと同様の性能、ＤＲＡＭに匹敵する密度及び低消費電力を示す。また、ＭＲＡＭは、時間を経ると劣化することは知られていない。相対的に高価であるが、ＭＲＡＭは、バッファ２０８のタスク、すなわち、少なくとも、対応する高位ページが、フラッシュブロック２０６に安全に記憶されているまで、下位ページデータのパワーセーフコピー（ｐｏｗｅｒ−ｓａｆｅ  ｃｏｐｙ）を記憶することに適している。しかし、この書き込みの時点では、ＭＲＡＭにおいてバッファ２０８を実装するコストは、スーパーキャパシタ又はディスクリートキャパシタのアレイの従来の使用よりもコストが低いことを留意すべきである。バッファ２０８が、ＭＲＡＭのような不揮発性メモリを備える実装では、フラッシュブロック２０６に安全に記憶されていない書き込まれたデータ（例えば、対応する高位ページの下位ページデータが、電力損失イベントの前にフラッシュに記憶されない）は、データストレージデバイス２００に対して電力が復旧すると、コントローラ２０２によってバッファ２０８から読み出され、フラッシュブロック２０６に記憶されてもよい。すなわち、コントローラ２０２は、電力の損失に続いて、電力がデータストレージデバイス２００に復旧した後に、バッファ２０８からデータを読み出し、読み出したデータの少なくとも一部をフラッシュブロック２０６の不揮発性メモリデバイスに書き込むように更に構成されてもよい。
【００１２】
一実施形態によれば、バッファ２０８は、データストレージデバイスの電力損失の後に、下位ページ破損から回復可能にするために、少なくとも十分な大きさであるように構成されてもよい。したがって、バッファ２０８の大きさは、例えば、下位ページと高位ページとの間のページの数、Ｆ−ページのサイズ、並びにデータストレージデバイスのプレーン及びダイの数と共に変化してもよい。例えば、バッファ２０８の大きさは、数ＭＢから数百ＭＢまで変化するが、他の実装は、良好な効果を奏する他のサイズを使用してもよい。一実施形態によれば、バッファ２０８は、各ダイが異なる時間でそのプログラミングを完了したとき、各ダイごとに複数のバッファを備えてもよい。これは、ダイ当たりの複数のページを独立して管理することを可能にし、バッファ２０８の効果的な構成をもたらす。バッファ２０８は、例えば、対応する下位ページの高位ページがフラッシュブロック２０６に格納されるとき、コントローラ２０２がスペースを割り当て、データを格納し、スペースの割り当てを解除する複数のバッファとして実装されてもよい。このようなバッファ構成は、電力損失時に下位ページ破損の確率を許容できる程度に小さい又はゼロになるまで、ホスト書き込みコマンドからの書き込みデータのストリームをバッファすることに適している。一実施形態によれば、コントローラ２０２は、蓄積されたデータが、バッファの割り当てられたスペースに書き込まれた後（例えば、直ぐに）ホスト２１８へ書き込み許可を生成及び送信するように構成されてもよい。すなわち、ホストの観点から、データは、バッファ２０８に記憶されるとすぐにフラッシュに安全に記憶されているとみなされてもよい。一実施形態によれば、ＭＬＣ不揮発性デバイスは、下位ページのみモード又は「ＳＬＣ」モードで実行されてもよい。その場合、競合する高位ページがなく、バッファ２０８におけるスペースの割り当て解除は、ＭＬＣ下位ページのみモードのページ又はＳＬＣモードのページがプログラムされるとすぐに実行され、プログラムされるべき任意の高位ページを待つ間に遅延される必要がない。
【００１３】
図３は、一実施形態に係るＳブロックのブロック図である。図３に示されるように、Ｓブロック３０２は、ダイ当たりに１つのフラッシュブロック（Ｆ−ブロック）２０６を備えてもよい。したがって、Ｓブロックは、Ｆ−ブロックの集合、ダイ当たり１つのＦ−ブロックと考えられ、データストレージデバイスのフラッシュマネジメントシステム（ＦＭＳ）の一つのユニットを形成するために共に組み合わせられる。一実施形態によれば、割り当て、消去及びＧＣは、Ｓ−ブロックレベルで管理されてもよい。図３に示されるように、各Ｆ−ブロック２０６は、例えば、２５６又は５１２のＦ−ページのような複数のフラッシュページ（Ｆ−ページ）を備えてもよい。一実施形態によれば、Ｆ−ページは、与えられた不揮発性メモリデバイスについてプログラムの最小単位の大きさであってもよい。図４は、一実施形態に係るスーパーページ（Ｓページ）を示す。図４に示されるように、Ｓページ４０２は、Ｓ−ブロックのＦ−ブロック当たりに１つのＦ−ページを備えてもよく、Ｓ−ページがＳ−ブロック全体に及ぶことを意味する。図２に示される一実施形態によれば、データは、Ｓ−ページ４０２のユニットに蓄積、書き込み及び格納されてもよい。バッファ２０８は、具体的な実装に応じて、Ｓ−ページとは異なるように編成された書き込みデータを記憶するように構成されてもよい。
【００１４】
図５は、一実施形態に係る別のデータストレージデバイス５００のブロック図である。図２を参照すると、同様の参照番号は、同様の要素を示しており、このような同様の要素の説明は、簡略化のために省略される。この実施形態では、コントローラ５０２は、図２の書き込みストア２０３のような書き込みストアを備える必要がない（しかし、備えてもよい）。揮発性メモリバッファ５０４（又は複数のこのような揮発性メモリバッファ）は、コントローラ５０２に接続されてもよい。例えば、揮発性メモリバッファ５０４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）に含まれる又は構成されてもよい。揮発性メモリバッファ５０４は、コントローラ５０２の外部にあるように図５に示されている。しかし、揮発性メモリバッファ５０４は、コントローラ５０２の内部にあってもよく、これは、コントローラ５０２による高速なアクセス時間に変わる。しかし、大きさ及び／他の考慮事項は、揮発性メモリバッファ５０４が、コントローラ５０２に接続される外部メモリとして構成されることを推奨する。図５のデータストレージデバイス５００は、５０６のようにバックアップ電源を備え、５０８に示すように不揮発性メモリを備えてもよい。バックアップ電源５０６は、バッファ５０４、コントローラ５０２及び不揮発性メモリ５０８に接続されてもよい。バックアップ電源５０６は、（少なくともその内容が不揮発性メモリ５０８に保存されることができるまで）揮発性メモリ５０４のデータが損失せずに、電力損失イベント発生時の期間に電力供給される少なくとも揮発性メモリバッファ５０４、コントローラ５０２及び／又は不揮発性メモリ５０８を維持するように構成される。一実施形態によれば、データを揮発性メモリバッファ５０４から不揮発性メモリ５０８に書き込むために、コントローラ５０２にとって少なくとも必要なだけ、バックアップ電源５０６は、図５のデータストレージデバイスの少なくとも一部に電力供給するように構成されてもよい。バックアップ電源５０６は、キャパシタ、スーパーキャパシタ及び／又はエネルギーストレージ素子を備えてもよい。データストレージデバイスが、ハードディスクドライブに接続されたハイブリッドディスクドライブ又はソリッドステートドライブである一実施形態では、電源５０６は、ハードディスクドライブのスピンドルモータから生じるＢＥＭＦ（ｂａｃｋ  ｅｌｅｃｔｒｏｍｏｔｉｖｅ  ｆｏｒｃｅ（逆起電力））により提供されてもよい。
【００１５】
事実、通常動作時に、書き込みコマンドがホスト２１８から受信され、コントローラ５０２により実行されると、ＭＬＣ不揮発性メモリデバイス（すなわち、フラッシュブロック２０６）に書き込まれるデータは、揮発性メモリバッファ５０４及びＭＬＣ不揮発性メモリデバイスの両方に書き込まれてもよい。一実施形態によれば、コントローラ５０２は、完全なＦ−ページが構築されるまで、内部に書き込まれるデータ（例えば、ホスト２１８により発せられる書き込みコマンドにより指示されるような）を蓄積するように構成されてもよい。それに代えて、一実施形態によれば、部分的なＦ−ページは、所定のコード化値が詰め込まれ、完了されたとみなされてもよい。完全なＦ−ページは、揮発性メモリバッファ５０４及びＭＬＣ不揮発性メモリデバイスの両方に書き込まれる。一実施形態によれば、データは、Ｓ−ページのユニット４０２又は任意の他のデータ編成ユニットに蓄積、書き込み及び格納されてもよい。事実、揮発性メモリバッファ５０４は、特定の実装に応じて、Ｓ−ページ４０２とは異なる編成の書き込みデータを格納するように構成されてもよい。したがって、一実施形態によれば、蓄積されたデータ（又はその一部）を揮発性メモリバッファ５０４に書き込むことに加えて、蓄積されたデータ（又はその一部）は、ＭＬＣ不揮発性メモリデバイス（フラッシュブロック２０６）の１以上の下位ページ及び／又は上位ページに書き込まれてもよい。一実施形態によれば、揮発性メモリバッファ５０４において事前に割り当てられたスペースは、割り当て解除され、新たな書き込みデータに対して再利用される、割り当て解除されたスペースは、全ての高位ページが事前にプログラムされた下位ページに対応するとき、ＭＬＣ不揮発性メモリデバイスに書き込まれており、それにより、効果的に破損の危険がない（ｃｏｒｒｕｐｔｉｏｎ−ｓａｆｅ）とみなされる。すなわち、コントローラ２０２は、少なくとも、下位ページに対応する上位ページ又は高位ページが、ＭＬＣ不揮発性メモリデバイスにプログラムされるまで、揮発性メモリバッファ５０４に下位ページデータを保持するように構成されてもよい。
【００１６】
電力損失のイベントでは、バックアップ電源５０６は、少なくともコントローラ５０２、揮発性メモリバッファ５０４及び／又は不揮発性メモリ５０８に電力を供給することを留意すべきである。コントローラ５０２、揮発性メモリバッファ５０４及び／又は不揮発性メモリ５０８が、バックアップ電源５０６により電源供給されている間、コントローラ５０２は、揮発性メモリバッファ５０４に格納されたデータを、不揮発性メモリ５０８にコピーし、それによって、破損に安全な態様でＭＬＣ不揮発性メモリデバイスに保存されていないデータを保存し、よって、コントローラが、書き込みをホスト２１８に許可することができる。ＭＬＣ不揮発性メモリデバイスに電力が復旧したとき、不揮発性メモリ５０８に保存されたデータは、ＭＬＣ不揮発性メモリデバイスにプログラムされてもよい。
【００１７】
一実施形態によれば、不揮発性メモリ５０８は、電力損失のイベントにおいてのみ書き込まれてもよい。また、電力損失のイベントにおいてコントローラ５０２、揮発性メモリバッファ５０４及び不揮発性メモリ５０８のみに電力供給することにより、ＭＬＣ不揮発性メモリデバイスのダイ（例えば、フラッシュブロック２０６）に電力供給するために必要な電力よりも少ない電力で済む。不揮発性メモリ５０８は、その電力を、バックアップ電源５０６により電源供給されるコントローラ５０２から流してもよいことを留意すべきである。一実施形態によれば、不揮発性メモリ５０８は、ＭＲＡＭを備えてもよい。一実施形態によれば、バックアップ電源５０６は、コントローラ５０２及び揮発性メモリバッファ５０４に接続されることのみが必要である。また、データ経路における初期書き込み位置として揮発性メモリバッファ５０４を用い、かつ電力損失のイベントにおいて不揮発性メモリ５０８を用いることにより、不揮発性メモリ５０８での損傷が低減される。
【００１８】
図６は、一実施形態に係るデータストレージデバイスを制御する方法のフローチャートである。データストレージデバイスは、バッファと、複数のマルチレベルセル（Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ（ＭＬＣ））不揮発性メモリデバイス（例えば、フラッシュブロック２０６を含む）と、を備えてもよい。ＭＬＣ不揮発性メモリデバイスは、本明細書で説明されるように、複数の下位ページ及び対応する複数の高位ページを備えてもよい。５０２で示されるようなコントローラは、複数の下位ページ及び対応する複数の高位ページへデータを書き込む、及び複数の下位ページ及び対応する複数の高位ページからデータを読み出すように構成されてもよい。一実施形態によれば、図６に示されるように、本方法は、ブロックＢ６１において示されるような、ＭＬＣ不揮発性メモリデバイスへ書き込まれるデータを蓄積することを備えてもよい。ブロックＢ６２は、バッファ２０８，５０４にスペースを割り当て、バッファ２０８，５０４において割り当てられたスペースに、蓄積されたデータを書き込むことを要求する。Ｂ６３に示されるように、蓄積されたデータの少なくとも一部は、ＭＬＣ不揮発性メモリデバイスの１以上の下位ページに書き込まれてもよい。蓄積されたデータの一部は、ＭＬＣ不揮発性メモリデバイスの１以上の上位ページへも書き込まれてもよい。下位ページに対応する全ての高位ページが、ＭＬＣ不揮発性メモリデバイスに書き込まれているとき、ブロックＢ６４で要求されるように、下位ページに書き込まれるデータを記憶するバッファのスペースは、安全に割り当て解除される。
【００１９】
一実施形態によれば、図２に示されるように、バッファは、例えば、磁気ランダムアクセスメモリ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＭＲＡＭ））のような不揮発性メモリを備える又は不揮発性メモリとして構成されてもよい。図２について説明され、図５のＢ６５に示されるように、本方法は、電力損失の後に電力がデータストレージデバイスに復旧した後に、バッファ２０８からデータを読み出し、読み出したデータの少なくとも一部をＭＬＣ不揮発性メモリデバイスに書き込むことも含んでもよい。図５について説明されるように、本方法は、図６のＢ６５に示されるように、電力損失の後に電力が（例えば、バックアップ電源５０６により）データストレージデバイスに復旧した後に、揮発性メモリ５０４からデータを読み出し、読み出したデータの少なくとも一部を不揮発性メモリ５０８に書き込むことも含んでもよい。一実施形態によれば、バッファ２０８，５０４は、データストレージデバイスへの電力損失の後に、あり得る下位ページ破損から回復することを可能にするために、少なくとも十分な大きさであってもよい。一実施形態によれば、バッファ２０８，５０４は、１以上のバッファとして構成されてもよい。データが、その時点より後に、破損の危険がないとみなされるとき、蓄積されたデータがバッファ２０８，５０４において割り当てられたスペースに書き込まれた後に、ホスト２１８への書き込み許可は、生成及び送信されてもよい。一実施形態によれば、ＭＬＣ不揮発性メモリデバイスは、複数のブロックを備えるように構成されてもよく、その各々は、複数の物理ページを備える。このようなブロックの集合は、スーパーブロック（Ｓ−ブロック）を定義してもよい。Ｓ−ブロックにおいてブロック当たりに１つの物理ページを有する物理ページの集合は、スーパーページ（Ｓ−ページ）を定義してもよく、これは、コントローラ２０２が、ホスト及び／又は他のデータを蓄積、書き込み及び格納することによるユニットであってもよい。他のデータ編成及びユニットは、本開示内に実装されてもよい。
【００２０】
図５に示され、かつ説明されるように、本方法は、バックアップ電源５０６及び５０８において示されるような不揮発性メモリのような不揮発性メモリを提供することを含んでもよい。本実施形態では、バッファ５０４は、揮発性メモリを備えてもよい。一実施形態によれば、本方法は、更に、データをバッファ５０４から不揮発性メモリ５０８へ書き込むために、コントローラ５０２にとって少なくとも必要なだけデータストレージデバイス５００の少なくとも一部に電力供給することを含んでもよい。一実施形態によれば、電力損失の後に電力がデータストレージデバイスに復旧した後に、不揮発性メモリ５０８のデータの少なくとも一部は、ＭＬＣ不揮発性メモリデバイスに書き込まれてもよい。書き込みストア（図２及び５の２０３）が設けられてもよく、コントローラ２０２，５０２は、蓄積されたデータがバッファ２０８，５０４における割り当てられたスペースに書き込まれたとき、蓄積されたデータを書き込みストア２０３に書き込むように構成されてもよい。一実施形態によれば、コントローラ２０２，５０２は、バッファ２０８，５０４において下位ページに対応する高位ページの全てがＭＬＣ不揮発性メモリデバイスに書き込まれたときに、高位ページに書き込まれたデータを記憶するスペースの割り当てを解除するようにも構成され、このようなデータは破損の危険がないとみなされる。
【００２１】
本開示の特定の実施形態が説明されてきたが、これらの実施形態は、例示のために示されているものであり、本開示の範囲を限定することを意図するものではない。実際、本明細書に説明される新規な方法、デバイス及びシステムは、各種の他の形態で具現化されてもよい。更に、本明細書で説明された方法及びシステムの形態の様々な省略、置き換え及び変更は、本開示の趣旨から逸脱しない範囲でなされてもよい。添付の特許請求の範囲及びそれらの等価物は、本開示の範囲及び趣旨の範囲内であるとして、このような形態又は修正を包含することが意図される。例えば、当業者は、各種実施形態において、実際の物理及び論理構造が図面に示されたものとは異なることを理解するであろう。実施形態に応じて、上記の実施例で説明された特定のステップは、除去され、別のものが追加されてもよい。また、上記に開示された特定の実施形態の特徴及び特質は、別の実施形態を形成するために異なる手法で組み合わせられてもよく、その全てが本開示の範囲に及ぶ。本開示は、特定の好ましい実施形態及び用途を提供するが、本明細書で明らかにされた特徴及び利点のすべてを提供しない実施形態を含む、当業者にとって自明な他の実施形態もまた本開示の範囲内である。したがって、本開示の範囲は、添付の特許請求の範囲を参照することによってのみ定義されることを意図するものである。
【図１】
2015535118.tif 000003
【図２】
2015535118.tif 000004
【図３】
2015535118.tif 000005
【図４】
2015535118.tif 000006
【図５】
2015535118.tif 000007
【図６】
2015535118.tif 000008
【国際調査報告】
2015535118.tif 000009
2015535118.tif 000010