(57)【要約】      （修正有）【課題】瞬断からの回復処理方法を提供する。【解決手段】瞬断からの回復処理方法は、電子装置の処理ユニットに実行され、電子装置が瞬断を発生したことを検出するステップと、ホストに伝送されるデータをシングルレベルセルモードで複数のチャンネルを介して複数の論理ユニット番号の疑似シングルレベルセルブロックに書き込むようにフラッシュメモリの接続インタフェースを駆動するステップと、ダイナミックランダムアクセスメモリのデータを最短時間で疑似シングルレベルセルブロックに書き込むステップとを含む。【選択図】図５
2020191055.tif 000002
【特許請求の範囲】
【請求項１】
瞬断からの回復処理方法であって、電子装置内の処理ユニットに実行され、
前記方法は、
前記電子装置が瞬断を発生したことを検出すると、フラッシュメモリの接続インタフェースを駆動して、ホストに転送されるデータをシングルレベルセルモードで複数のチャンネルを介して複数の論理ユニット番号の疑似シングルレベルセルブロックを書き込むステップを含み、
前記複数の疑似シングルレベルセルブロックは、正常動作中に、瞬断が検出されるまで保留され、データを書き込まない、ことを特徴とする瞬断からの回復処理方法。
【請求項２】
ホストより送信してきた予め設定されるコマンドを検出すると、前記電子装置が瞬断を発生することと判断するステップを含む、ことを特徴とする請求項１に記載の瞬断からの回復処理方法。
【請求項３】
コマンドキューにおいて、ロングデータライトコマンドの次に連続ライトコマンドを見つかると、前記電子装置が瞬断を発生することと判断するステップを含む、ことを特徴とする請求項１に記載の瞬断からの回復処理方法。
【請求項４】
コマンドキューにおいて、ホストが書き込むコマンドの開始論理アドレスがデフォルト空間にあることを見つかると、前記電子装置が瞬断を発生することと判断するステップを含む、ことを特徴とする請求項１に記載の瞬断からの回復処理方法。
【請求項５】
各前記論理ユニット番号内の各物理ブロックは、ノーマルブロック又は前記疑似シングルレベルセルブロックに分割され、前記疑似シングルレベルセルブロック内の保存セルがトリプルレベルセル又はクアッドレベルセルであり、且つ、前記シングルレベルセルモードでのデータ書き込みは、前記疑似シングルレベルセルブロック内の各保存セルを２つの状態のうちの一つにプログラミングする、ことを特徴とする請求項１〜４のいずれかに記載の瞬断からの回復処理方法。
【請求項６】
前記電子装置が瞬断を発生することを検出した後、前記フラッシュメモリの接続インタフェースを駆動して、前記ホストに転送されるデータを、インターリーブドページプログラミング方式で、前記複数の論理ユニット番号に前記疑似シングルレベルセルブロックに書き込む、ことを特徴とする請求項１〜４のいずれかに記載の瞬断からの回復処理方法。
【請求項７】
前記ホストが瞬断からの回復を完了したことを検出すると、前記フラッシュメモリの接続インタフェースを駆動して、すべての疑似シングルレベルセルブロックの保存セルを削除するステップを含む、ことを特徴とする請求項１に記載の瞬断からの回復処理方法。
【請求項８】
ホストがコマンドを送信して前記疑似シングルレベルセルブロックをトリムすることを検出すると、前記電子装置が瞬断からの回復を完了したことと判断するステップを含む、ことを特徴とする請求項７に記載の瞬断からの回復処理方法。
【請求項９】
すべての疑似シングルレベルセルブロックのデータがホストにより読み取られることを検出すると、前記電子装置が瞬断からの回復を完了したことと判断するステップを含む、ことを特徴とする請求項７に記載の瞬断からの回復処理方法。
【請求項１０】
瞬断からの回復処理のコンピュータ読み取り可能な記憶媒体であって、
処理ユニットが実行するコンピュータプログラムを格納するために用いられ、前記コンピュータプログラムは、前記処理ユニットに、
前記電子装置が瞬断を発生したことを検出すると、フラッシュメモリの接続インタフェースを駆動して、ホストに転送されるデータをシングルレベルセルモードで複数のチャンネルを介して複数の論理ユニット番号の疑似シングルレベルセルブロックを書き込むステップが実行され、
前記複数の疑似シングルレベルセルブロックは、正常動作中に、瞬断が検出されるまで保留され、データを書き込まない、ことを特徴とする瞬断からの回復処理のコンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記コンピュータプログラムは、前記処理ユニットに、
前記電子装置が瞬断を発生したことを検出すると、前記フラッシュメモリの接続インタフェースを駆動して、前記ホストに伝送されるデータを、インターリーブドページプログラミング方式で、前記複数の論理ユニット番号の前記疑似シングルレベルセルブロックに書き込むステップが実行される、ことを特徴とする請求項１０に記載の瞬断からの回復処理のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記コンピュータプログラムは、前記処理ユニットに、
前記ホストが瞬断からの回復を完了したことを検出すると、前記フラッシュメモリの接続インタフェースを駆動して、すべての疑似シングルレベルセルブロックの保存セルを削除するステップが実行される、ことを特徴とする請求項９又は１０に記載の瞬断からの回復処理のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
瞬断からの回復処理装置であって、
ホストのインタフェースと、フラッシュメモリの接続インタフェースと、処理ユニットとを備え、
前記処理ユニットは、前記ホストのインタフェースと前記フラッシュメモリの接続インタフェースとに接続され、前記瞬断からの回復処理装置が瞬断を発生することを検出すると、前記フラッシュメモリの接続インタフェースを駆動して、ホストが前記ホストのインタフェースを介して伝送されるデータを、シングルレベルセルモードで、複数のチャンネルを介して、複数の論理ユニット番号の疑似シングルレベルセルブロックに書き込む、ことを特徴とする瞬断からの回復処理装置。
【請求項１４】
各前記論理ユニット番号内の各物理ブロックは、ノーマルブロック又は前記疑似シングルレベルセルブロックに分割され、前記疑似シングルレベルセルブロック内の保存セルがトリプルレベルセル又はクアッドレベルセルであり、且つ前記シングルレベルセルモードでのデータ書き込みは、前記疑似シングルレベルセルブロック内の各保存セルを２つの状態のうちの一つにプログラミングする、ことを特徴とする請求項１３に記載の瞬断からの回復処理装置。
【請求項１５】
前記処理ユニットは、前記ホストがスタンバイ・イミーディエットコマンドを送信することを検出すると、前記電子装置が瞬断を発生することと判断する、ことを特徴とする請求項１３〜１４のいずれか一つに記載の瞬断からの回復処理装置。
【請求項１６】
前記処理ユニットは、前記ホストが瞬断からの回復を完了することを検出すると、前記フラッシュメモリの接続インタフェースを駆動して、すべての疑似シングルレベルセルブロックの保存セルを削除する、ことを特徴とする請求項１３〜１４のいずれか一つに記載の瞬断からの回復処理装置。
【請求項１７】
前記処理ユニットは、前記ホストがデータセットマネジメントコマンドを送信して前記疑似シングルレベルセルブロックをトリムすることを検出すると、前記ホストが瞬断からの回復を完了することと判断する、ことを特徴とする請求項１６に記載の瞬断からの回復処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存装置に関し、特にフラッシュメモリ装置の瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体に関するものである。
【背景技術】
【０００２】
フラッシュメモリ装置は、一般に、ＮＯＲフラッシュメモリ装置とＮＡＮＤフラッシュメモリ装置とに分類される。ＮＯＲフラッシュメモリ装置は、ランダムアクセス装置であり、ホスト（Ｈｏｓｔ）側は、アドレスピンにＮＯＲフラッシュメモリ装置のアドレスを任意にアクセスし、そのアドレスに格納されたデータをＮＯＲフラッシュメモリ装置のデータピンから取得することができる。一方、ＮＡＮＤフラッシュメモリ装置は、ランダムアクセスではなく、シーケンシャルアクセス装置である。ＮＡＮＤフラッシュメモリ装置は、ＮＯＲフラッシュメモリ装置のように、任意のランダムアドレスにアクセスすることができず、要請コマンド（Ｃｏｍｍａｎｄ）の種類（例えば、読み取り、書き込み、消去など）、及びコマンドでのアドレスを定義するために、ホスト側からＮＡＮＤフラッシュメモリ装置にシーケンスのバイト（Ｂｙｔｅｓ）の数値を書き込む必要がある。アドレスは、一つのページ（フラッシュメモリ装置における書き込む動作の最小データブロック）又は一つのブロック（フラッシュメモリ装置における削除操作の最小データブロック）を指定ことができる。
【０００３】
自然又は人間によって引き起こされる瞬断が揮発性ダイナミックランダムアクセスメモリに保存されたデータを失わせる可能性に対し、本発明の実施形態は、ＮＡＮＤフラッシュメモリを利用して上記の問題を解決できる、瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体を提供する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、このような事情に鑑みてなされたものであり、上述関連技術分野における欠点をどのように軽減または排除するかについては、解決すべき問題としている。
【０００５】
本発明は、瞬断からの回復処理方法を提供する。前記瞬断からの回復処理方法は、電子装置の処理ユニットで実行され、電子装置が瞬断を発生したことを検出すると、フラッシュメモリの接続インタフェースを駆動して、ホストに伝送されるデータをシングルレベルセルモードで複数のチャンネルを介して複数の論理ユニット番号の疑似シングルレベルセルブロックに書き込むステップを含む。疑似シングルレベルセルブロックは、正常動作中に、瞬断が検出されるまで保留され、データを書き込まない。
【０００６】
本発明は、処理ユニットが実行可能なコンピュータプログラムを格納し、且つ前記コンピュータプログラムが前記処理ユニットで実行され、前記の方法を実現できる、瞬断からの回復処理のコンピュータ読み取り可能な記憶媒体を提供する。
【０００７】
本発明は、瞬断からの回復処理装置を提供し、前記瞬断からの回復処理装置は、関連するハードウェア又はソフトウェアの指令をロードして前記の方法を実行するための処理ユニットを少なくとも備える。
【０００８】
上述した実施形態の優れる点は、疑似シングルレベルセルブロックを設置すること、及びマルチチャンネルのシングルレベルセルモードでのデータ書き込むことによって、ダイナミックランダムアクセスメモリのデータを、できる限り最短時間で疑似シングルレベルセルブロックに書き込むことができる。
【０００９】
本発明の他の利点は、以下の内容及び図面を参照しながら説明する。
【図面の簡単な説明】
【００１０】
以下の添付図面は、本発明、本発明の一部の構成、例示の実施形態またはそれらに関する説明をより理解しやすいためのものであり、本発明を限定するものではない。
【図１】本発明の実施形態に係るフラッシュメモリ装置のシステム構成の概念図である。
【図２】フラッシュメモリの接続インタフェースと論理ユニット番号（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ、ＬＵＮ）との接続を示す概念図である。
【図３】本発明の実施形態に係る論理パーティションの概念図。
【図４】本発明の実施形態に係るＬＵＮの物理ブロック分割の概念図。
【図５】本発明の実施形態に係る瞬断からの回復処理方法のフローチャート。
【図６】本発明の実施形態に係る論理−物理表（Ｌｏｇｉｃａｌ−ｔｏ−Ｐｈｙｓｉｃａｌ  Ｌ２Ｐ  Ｔａｂｌｅ）と物理位置との対応関係を示す概念図。
【図７】本発明の実施形態に係る瞬断からの回復処理方法のフローチャート。
【実施するための形態】
【００１１】
以下、図面を参照しながら本発明の実施形態を説明する。これらの図面において、同じ参照番号は、同じまたは類似の構成要素及び方法のステップを示している。
【００１２】
なお、本発明の明細書に使用されている「含む」、「備える」などの用語は、ある特定の技術的特徴、数値、動作ステップ、構造及び／又は構成要素を有することを意味しており、特定の技術的特徴、数値、動作ステップ、構造、構成要素、又はこれらの任意の組合せを更に備えることを排除しないことを留意されたい。
【００１３】
また、本発明の明細書及び特許請求の範囲に記載の「第１」、「第２」、「第３」などの用語は、請求項又は実施形態における構成要素を区別するための記載であり、構成の順位、方法の先行順位などを区別するものではない。
【００１４】
なお、ある構成要素が別の構成要素に「接続」または「結合」されている場合、その構成要素は他の構成要素に直接接続または結合することができ、または、別の構成要素を介して上記２つの構成要素同士を接続することもできる。つまり、中間の構成要素を有することを排除しない。これに対して、ある構成要素が別の構成要素に「直接接続」または「直接結合」されている場合は、中間の構成要素を有しない。また、構成要素間の関係を説明するために使用される他の用語について、例えば、「介して」に対する「直接介して」、又は「隣接」に対する「直接隣接」なども同様に解釈される。
【００１５】
図１に示すように、システム構成１００は、ホスト１１０と、制御部１３０と、ダイナミックランダムアクセスメモリ１５０（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）と、論理ユニット番号（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ、ＬＵＮ）１７０とを含む。前記システム構成１００は、サーバ、パーソナルコンピューター、ノートブックコンピューター（Ｌａｐｔｏｐ  ＰＣ）、タブレットコンピューター、携帯電話、デジタルカメラ、デジタルビデオカメラなどの電子製品に実装することができる。制御部１３０は、ＬＵＮ  １７０のデータアクセスを制御するための特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ＡＳＩＣ）であり、処理ユニット１３１と、ホストのインタフェース１３５と、フラッシュメモリの接続インタフェース１３９とを含む。ＬＵＮ  １７０が提供する保存場所（例えば１６、３２、６４  Ｇｉｇａｂｙｔｅｓ  ＧＢｓ）は、ブートディスク（Ｂｏｏｔ  Ｄｉｓｋ）及びキャッシュデータ（Ｃａｃｈｅ  Ｄａｔａ）の保存場所とすることができる。ＬＵＮ  １７０内の保存セルは、トリプルレベルセル（Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌｓ、ＴＬＣｓ）又はクアッドレベルセル（Ｑｕａｄ−Ｌｅｖｅｌ  Ｃｅｌｌｓ、ＱＬＣｓ）である。保存セルがＴＬＣであり且つ８つの状態を記録できる場合、一つの物理ワード線は、ページＰ＃０（最上位ビットページとも呼ばれる、Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ  ＭＳＢ  ｐａｇｅ）、ページＰ＃１（センタービットページとも呼ばれる、ＣＳＢ、Ｃｅｎｔｅｒ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ  ｐａｇｅ）及びページＰ＃２（最下位ビットページとも呼ばれる、Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ  ＬＳＢ  ｐａｇｅ）を含む。保存セルがＱＬＣであり且つ１６個の状態を記録できる場合、ＭＳＢ、ＣＳＢ及びＬＳＢページの他に、ＴＳＢ（トップビットとも呼ばれる、ＴＳＢ、Ｔｏｐ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）ページを更に含む。スタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  ＳＲＡＭ）１３７は、処理ユニット１３１が実行中に必要な変数、データテーブル（Ｄａｔａ  Ｔａｂｌｅｓ）などのデータを一時に格納することに用いられる。処理ユニット１３１は、フラッシュメモリの接続インタフェース１３９を介してＮＡＮＤフラッシュ１７０と通信する、例えば、オーペンＮＡＮＤフラッシュインタフェース（Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ  ＯＮＦＩ）、ダブルデータレートトグル（ＤＤＲ  Ｔｏｇｇｌｅ）、又は他のインタフェースを使用することができる。
【００１６】
制御部１３０は、ホストのインタフェース１３５を介してホスト１１０と通信する処理ユニット１３１を含む。ホストのインタフェース１３５は、ユニバーサル・フラッシュ・ストレージ（Ｕｎｉｖｅｒｓａｌ  Ｆｌａｓｈ  Ｓｔｏｒａｇｅ  ＵＦＳ）、高速不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ  ＮＶＭｅ）、ユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ、ＵＳＢ）、アドバンスド・テクノロジー・アタッチメント（ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＡＴＡ）、シリアルアドバンスド・テクノロジー・アタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）、ペリフェラル・コンポーネント・インターコネクト（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ、ＰＣＩ−Ｅ）又は他のインタフェースである。ホスト１１０及び処理ユニット１３１のいずれも、
汎用ハードウェア（例えば、単一プロセッサ、並列処理能力を有する複数のプロセッサ、又は他の運算機能を有するプロセッサ）を使用するなど、様々な方法で実施され、且つ、ファームウェアやソフトウェアの指令（Ｉｎｓｔｒｕｃｔｉｏｎｓ）を実行すると後述の機能を提供することができる。マルチプロセッサは、プログラム命令を読み込んで実行するための単一の運算コンポーネントであり、２つ以上の独立したプロセッサ（マルチコアとも呼ばれる）を装備することができる。
【００１７】
図２に示すように、フラッシュメモリの接続インタフェース１３９は、３つの入出力チャネル（Ｉ／Ｏ  ｃｈａｎｎｅｌｓ、以下チャンネルと称する）ＣＨ＃０〜ＣＨ＃２を含み、各チャンネルに３つのＬＵＮが接続され、例えば、チャンネルＣＨ＃０がＬＵＮ  １７０＃０〜１７０＃２に接続され、チャンネルＣＨ＃１がＬＵＮ  １７０＃３〜１７０＃５に接続される。つまり、複数のＬＵＮが一つのチャンネルを共有する。例えば、処理ユニット１３１は、イネーブル信号ＣＥ＃０を送信してＬＵＮ  １７０＃０、１７０＃３及び１７０＃６をイネーブルさせるようにフラッシュメモリの接続インタフェース１３９を駆動し、次いてイネーブルされたＬＵＮよりユーザーデータを並列に読み取り、又はユーザーデータをイネーブルされたＬＵＮに書き込む。
【００１８】
データ保存装置における保存場所は、異なる種類のデータを格納する複数のパーティション（Ｐａｒｔｉｔｉｏｎｓ）に論理的に分割されることができる。各パーティションは、連続の論理アドレス、例えば、論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ、ＬＢＡ）を利用して区分する。本実施形態において、各ＬＢＡは５１２バイト（Ｂｙｔｅｓ）、４ＫＢ、１６ＫＢなどのサイズを有するデータに対応付けることができ、以下の説明では４ＫＢを例に挙げて説明するが、これに限定されない。図３に示すように、第１パーティション３１０は、６ＧＢのスペースを有し、アドレスの範囲がＬＢＡ＃０〜ＬＢＡ＃１、５７２、８６３であり、ホスト１１０に対応するユーザーデータ（データと略称する）、例えば、オペレーティングシステム関連プログラムコードを含むことができる。第２パーティション３３０は、２ＧＢのスペースを有し、アドレスの範囲がＬＢＡ＃１、５７２、８６４〜ＬＢＡ＃２、０９７、１５１であり、ホスト１１０に対応するデータ、例えば、アプリケーション関連プログラムコードを含むことができる。第３パーティション３５０は、５ＧＢのスペースを有し、アドレスの範囲がＬＢＡ＃２、０９７、１５２〜ＬＢＡ＃３、４０７、８７１であり、ホスト１１０に対応するデータ、例えば、ホスト１１０が動作中に生じるキャッシュデータを含むことができる。ダイナミックランダムアクセスメモリ１５０は、ホスト１１０の動作に必要なデータ、例えば、変数、データテーブル、スレッドコンテキスト（Ｔｈｒｅａｄ  Ｃｏｎｔｅｘｔ）などを格納する。瞬断によりダイナミックランダムアクセスメモリ１５０に格納されるデータが失われることを防止するために、ホスト１１０が瞬断を検出すると、直ちに、ダイナミックランダムアクセスメモリ１５０に格納されるデータを、ホストのインタフェース１３５を介して、ＬＵＮ  １７０に書き込むように、データ保存装置を指令する。上記の目的を達成するために、データ保存装置には、５ＧＢのスペースを有し、アドレスの範囲がＬＢＡ＃３、４０７、８７２〜ＬＢＡ＃４、７１８、５９１であり、ダイナミックランダムアクセスメモリ１５０に格納されるデータに対応する第４パーティション３７０が設けられても良い。第４パーティション３７０のザイズは、例えば５ＧＢなどの固定値とすることができ、又はダイナミックランダムアクセスメモリ１５０のサイズと等しくすることができる。その後、ホスト１１０は、システムが回復すると、第４パーティション３７０のデータを提供するようにデータ保存装置を要請することができる。これによって、ホスト１１０は、元のダイナミックランダムアクセスメモリ１５０に格納されるデータを迅速に取り戻すことができる。
【００１９】
図４に示すように、データ保存装置内の各ＬＵＮの物理ブロック（Ｐｈｙｓｉｃａｌ  Ｂｌｏｃｋｓ）は、異なる動作目的又はプログラミング方式に応じて、ノーマルブロック（Ｎｏｒｍａｌ  Ｂｌｏｃｋｓ）と疑似シングルレベルセルブロック（ｐｓｅｕｄｏ  ＳＬＣ、ｐＳＬＣ  Ｂｌｏｃｋｓ）とに分割されることができる。図４を参照すると、例えば、ＬＵＮ  １７０＃０内の物理ブロックは、８００個のノーマルブロック１７０＃０−０と、４００個のｐＳＬＣブロック１７０＃０−１とを含むように配置されることができる。ＬＵＮ  １７０＃１内の物理ブロックは、８００個のノーマルブロック１７０＃１−０と４００個のｐＳＬＣブロック１７０＃１−１とを含むように配置されることができる。処理ユニット１３１は、ＬＵＮ  １７０＃０〜１７０＃８内の物理ブロック及び疑似シングルレベルセルブロックの配置情報をスタティックランダムアクセスメモリ１３７に記録することが好ましい。ノーマルブロックは、第１パーティション３１０と、第２パーティション３３０と、第３パーティション３５０との保存場所を提供することに用いられ、ホストの正常動作中に、オペレーティングシステム、アプリケーションプログラムのコンテンツなどのデータを書き込む。各ＬＵＮ内の保存セルがＴＬＣ又はＱＬＣであるため、処理ユニット１３１は、フォギープログラミングおよびファインプログラミングなどのマルチセグメントプログラミングを使用してノーマルブロックの保存セルにデータを書き込むように、フラッシュメモリの接続インタフェース１３９を駆動する。
【００２０】
一方、キャッシュデータなどの疑似シングルレベルセルブロックは第４パーティション３７０の保存場所を提供するので、ｐＳＬＣブロックは、正常動作時にデータを書き込まずに、保留される。処理ユニット１３１が瞬断の発生を検出すると、ホスト１１０の要求に従って、ダイナミックランダムアクセスメモリ１５０に保存されたデータをｐＳＬＣブロックに書き込む。瞬断を検出した後、ホスト１１０からの電力はデータ保存装置の動作を数秒間（例えば１〜５秒間）しか維持できないので、データ保存装置はこの時間を利用してダイナミックランダムアクセスメモリ１５０に保存されるデータをＬＵＮ  １７０に書き込ませる必要がある。正常動作時にｐＳＬＣブロック内の保存セルを占有するデータがある場合、処理ユニット１３１は、時間をかけてｐＳＬＣブロックに保存されるデータをノーマルブロックに移行させ、削除動作などを実行する必要がある。これは、時間がかかるだけではなく、わずかの残電力も消費されるため、許容時間内にダイナミックランダムアクセスメモリ１５０のデータをｐＳＬＣブロックに書き込むことができない。処理ユニット１３は、シングルレベルセル（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌｓ、ＳＬＣ）モード及びインターリーブドページプログラミング（Ｉｎｔｅｒｌｅａｖｅ  Ｐａｇｅ  Ｐｒｏｇｒａｍｍｉｎｇ）方式によって、すべてのチャンネルを利用してダイナミックランダムアクセスメモリ１５０のデータをｐＳＬＣブロック内の保存セルに書き込み、すなわち、最速でダイナミックランダムアクセスメモリ１５０のデータをデータ保存装置のｐＳＬＣブロックに書き込み、例えば、３００ＭＢ／ｓ、又はそれより以上のデータ伝送速度でデータをデータ保存装置のｐＳＬＣブロックに書き込む。なお、本実施形態では、３つのチャンネルがあり、且つ各チャンネルに３つのＬＵＮを接続する例を示しているが、当業者は、ＮＡＮＤフラッシュアーキテクチャを変更して、より多く又はより少なくのチャンネル及びＬＵＮを含んでも良いが、本発明はこれに限定されない。
【００２１】
図５に示されているデータプログラミング方法のフローチャートは、関連するソフトウェアまたはファームウェアプログラムコードをドーロする時に、処理ユニット１３１によって実行される。ステップＳ５１０において、処理ユニット１３１は、電源断のイベントを有するかどうかを検出する。電源断のイベントを有する場合、ステップＳ５２０が実行され、電源断のイベントを有しない場合、ステップＳ５４０が実行される。
【００２２】
ステップＳ５２０において、処理ユニット１３１は、マルチチャンネル及びインターリーブドページプログラミングにより、ホスト１１０に伝送されてきたデータをｐＳＬＣブロックに書き込み、ここで、ｐＳＬＣブロックは、ＳＬＣモードでデータプログラミングを実行する物理ブロックである。
【００２３】
ステップＳ５３０において、処理ユニット１３１は、ｐＳＬＣブロックに格納されるデータに従って論理−物理（Ｌｏｇｉｃａｌ−ｔｏ−Ｐｈｙｓｉｃａｌ、Ｌ２Ｐ）マッピングテーブルを更新し、ここで、Ｌ２ＰマッピングテーブルはＳＲＡＭ  １３７に格納されることが好ましい。
【００２４】
ステップＳ５４０において、処理ユニット１３１は、マルチチャンネル及びインターリーブドページプログラミングにより、ホスト１１０に伝送されてきたデータをノーマルブロックに書き込む。
【００２５】
ステップＳ５５０において、処理ユニット１３１は、ノーマルブロックに格納されるデータに従って論理−物理Ｌ２Ｐマッピングテーブルを更新する。
【００２６】
ステップＳ５６０において、処理ユニット１３１は、更新されたＬ２Ｐマッピングテーブルをノーマルブロックに書き込み、ここで、処理ユニット１３１は、ＳＬＣモードで更新されたＬ２Ｐマッピングテーブルをノーマルブロックに書き込むことが好ましい。
【００２７】
そして、ホスト１１０の電源が再投入された後、データ保存装置は、ホスト１１０の要請に応じて、ｐＳＬＣブロックに格納されるデータをダイナミックランダムアクセスメモリ１５０にアップロードした後、処理ユニット１３１はｐＳＬＣブロックを消去することができる。そのため、再び電源断が発生すると、処理ユニット１３１はデータをｐＳＬＣブロックに再書き込むことができる。
【００２８】
論理位置（ホスト１１０で管理）と物理位置（制御部１３０で管理）との間の対応関係を記録するために、制御部１３０は、ＳＲＡＭ  １３７にＬ２Ｐマッピングテーブルを保守し、各論理アドレスのデータがどの物理アドレスに実際に格納されるかの情報を順次格納し、制御部１３０が特定の論理アドレスのリード又はライトコマンドを処理する際、対応の物理アドレスを速やかに探し出すことができる。また、ＳＲＡＭ  １３７のサイズに制約があるため、Ｌ２Ｐマッピングテーブルは複数のサブテーブルに分割可能であり、制御部１３０は、サブテーブルを順番にＳＲＡＭ  １３７にアップロードする。図６に例示されるように、サブテーブル６１０は、各論理アドレスに対応する物理アドレス情報を順次記憶することが好ましい。サブテーブル６１０に必要なスペースは、論理アドレスの総数に比例することが好ましい。論理アドレスは、ＬＢＡで表示されても良く、各ＬＢＡは一定サイズの論理ブロック、例えば、５１２Ｂ又は４ＫＢに対応し、且つこのＬＢＡのデータがＬＵＮ  １７０の物理アドレスに格納される。サブテーブル６１０は、ＬＢＡ＃２６６２４からＬＢＡ＃２７６４７までの物理アドレス情報を順次格納する。物理アドレス情報６３０、例えば、４バイトを含む例とする場合、バイト６３０−０が（物理）ブロック番号を記録し、バイト６３０−１がページ番号及びオフセット（ｏｆｆｓｅｔ）を記録し、バイト６３０−２がフレーム番号を記録し、バイト６３０−３が論理ユニット番号及び入出力チャネル番号などを記録する。例えば、ＬＢＡ＃２６６２６に対応する物理アドレス情報６３０はブロック６５０内の局在部６５５を指しても良い。
【００２９】
ステップＳ５１０の別の実施形態では、処理ユニット１３１は、ホスト１１０に送信されるコマンドがスタンバイ・イミーディエットコマンド（ＳＴＡＮＤＢＹ  ＩＭＭＥＤＩＡＴＥ  ｃｏｍｍａｎｄ）であるかどうかを検出することができ、スタンバイ・イミーディエットコマンドの内容はＡＴＡコマンドセット−４（ＡＴＡ  Ｃｏｍｍａｎｄ  Ｓｅｔ−４、ＡＣＳ−４）の７．４８節の規定を参照できる。スタンバイ・イミーディエットコマンドは、元々ホスト１１０がデータ保存装置をスタンバイモード（Ｓｔａｎｄｂｙ  Ｍｏｄｅ）に入ることを指示するものであるが、ホスト１１０と制御部１３０とは、ホスト１１０が瞬断の発生を検出する時、スタンバイ・イミーディエットコマンドを送信し、処理ユニット１３１は、続いて送信されるデータを最速でＬＵＮ  １７０に書き込む。なお、本実施形態では、スタンバイ・イミーディエットコマンドを例示しているが、ホスト１１０は他のコマンドを用いて処理ユニット１３１を指示して、同様の技術的効果を奏しても良い。
【００３０】
ステップＳ５１０のいくつかの実施形態では、処理ユニット１３１は、コマンドキュー（Ｃｏｍｍａｎｄ  Ｑｕｅｕｅ）内のホストライトコマンド（Ｈｏｓｔ  Ｗｒｉｔｅ  Ｃｏｍｍａｎｄｓ）を観察して、電子装置が瞬断を起こしているかどうかを判断することができる。１００ＧＢ以上の保存容量を提供する大容量記憶装置（Ｍａｓｓ  Ｓｔｏｒａｇｅ）を応用する場合では、ホスト１１０がＬＵＮ  １７０をブートディスク及びキャッシュデータの保存場所とすると、正常動作の状態において、ホスト１１０がロングデータライトコマンドを送信することが極めて稀である。したがって、処理ユニット１３１は、コマンドキュー内でロングデータライトコマンドとそれに続く連続ライトコマンドとを見つかる場合、電子装置が瞬断を起こっている可能性が高いと判断することができる。ホストコマンドは、通常、開始論理アドレスおよび長さのパラメーターを含んでおり、ロングデータライトコマンドは、ホストライトコマンド内の長さがデフォルト閾値（例えば１ＭＢ）を超えるコマンドを指し、連続ライトコマンドは、ホストライトコマンドの開始論理アドレスがコマンドキュー内のより前のホストライトコマンドの終了論理アドレスの次のアドレスに書き込みコマンドを指す。
【００３１】
ステップＳ５１０のいくつかの実施形態では、処理ユニット１３１は、コマンドキュー内のホストライトコマンドの開始論理アドレスがデフォルト間隔内にあるかどうかを観察して、電子装置が瞬断を起こしているかどうかを判断する。例えば、図３に示すように、いずれかのホストライトコマンドの開始論理アドレスがＬＢＡ＃２６６２４とＬＢＡ＃２７６４７との間にあることを判明した場合、処理ユニット１３１は、電子装置が瞬断を起こしている可能性が高いと判断する。
【００３２】
ステップＳ５２０において、処理ユニット１３１は、フラッシュメモリの接続インタフェース１３９を介して最初にＳＬＣモードイネーブルコマンド（ＳＬＣ  ＭＯＤＥ  ＥＮＡＢＬＥ  Ｃｏｍｍａｎｄ）を送信し、次いて、一連のプログラムページコマンド（ＰＲＯＧＲＡＭ  ＰＡＧＥ  Ｃｏｍｍａｎｄｓ）を送信して、予め配置されたｐＳＬＣブロックにデータを書き込む。ＳＬＣモードでのデータ書き込みは、フラッシュメモリの接続インタフェース１３９がｐＳＬＣブロック内の各保存セルを、８つ又は１６つの状態のうちの一つにではなく、２つの状態のうちの一つにプログラムすることを指している。当業者であれば、ＳＬＣモードでのデータ書込速度は、ＴＬＣ又はＱＬＣモードにおけるフォーギアンドファイン（Ｆｏｇｇｙ  ａｎｄ  ｆｉｎｅ）技術を使用したデータ書込速度よりも優れていることを理解である。
【００３３】
ステップＳ５２０の好ましい実施形態では、処理ユニット１３１は、インターリーブドページプログラミング方式でデータを書き込むようにフラッシュメモリの接続インタフェースを駆動することができ、例えば、図４に示すチャンネルＣＨ＃０を例として、フラッシュメモリの接続インタフェース１３９は、イネーブル信号ＣＥ＃０を送信して、ＬＵＮ  １７０＃０をイネーブルさせ、且つ、チャンネルＣＨ＃０を介してｐＳＬＣブロック１７０＃０−１にデータを伝送し、次いて、データの伝送が完了した後に、ｐＳＬＣブロック１７０＃０−１にコマンドを送信して、保存セルのプログラミングを開始するように指示する。ｐＳＬＣブロック１７０＃０−１が保存セルをプログラミングする実際の期間中、フラッシュメモリの接続インタフェース１３９がＬＵＮ  １７０＃１をイネーブルさせるためのイネーブル信号ＣＥ＃１を送信し、且つチャンネルＣＨ＃０を介してｐＳＬＣブロック１７０＃１−１にデータを伝送していく。
【００３４】
ステップＳ５２０の好ましい実施形態では、処理ユニット１３１は、すべてのチャンネルを介してホスト１１０に伝送されたデータを書き込むように、フラッシュメモリの接続インタフェース１３９を駆動することもできる。
【００３５】
図７に示されている方法のフローチャートは、関連するソフトウェア又はファームウェアプログラムコードをロードする時に、処理ユニット１３１によって実行される。電子装置が瞬断からの回復（ステップＳ７１０）を完了したこと検出すると、処理ユニット１３１は、ＬＵＮ  １７０内のすべてのｐＳＬＣブロックの保存セルを削除し、ｐＳＬＣブロックは次の発生しうる瞬断への準備状態（ステップＳ７３０）になるように、フラッシュメモリの接続インタフェース１７０を駆動する。
【００３６】
処理ユニット１３１は、ホスト１１０から送信された各データセットマネジメントコマンド（ＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴ  ｃｏｍｍａｎｄ）の内容により、ｐＳＬＣブロックをドリム（Ｔｒｉｍ）することを指示するかどうかを判断し、ここでのデータセットマネジメントコマンドの内容はＡＴＡコマンドセット−４（ＡＴＡ  Ｃｏｍｍａｎｄ  Ｓｅｔ−４  ＡＣＳ−４）の７．６節の規定を参考することができる。データセットマネジメントコマンドは、ＬＢＡおよびトリムビット（Ｔｒｉｍ  Ｂｉｔ）などのパラメーターを含み、処理ユニット１３１は、Ｌ２Ｐマッピングテーブルの情報により、データセットマネジメントコマンド内のＬＢＡが一つのｐＳＬＣブロックに関連するかどうか、且つ、トリムビットが「１」であるかどうかを判断する。もしそうであれば、処理ユニット１３１は、電子装置が瞬断からの回復を完了したと判断する。実施形態では、データセットマネジメントコマンドを例示しているが、ホスト１１０は、他のコマンドで処理ユニット１３１を指示して、同様の技術的効果を奏しても良い。
【００３７】
ステップＳ７１０の他の実施形態では、処理ユニット１３１は、ホストリードコマンド（Ｈｏｓｔ  Ｒｅａｄ  Ｃｏｍｍａｎｄｓ）の実行を記録して、電子装置が瞬断からの回復を完了したかどうかを判断することができる。処理ユニット１３１は、Ｌ２Ｐマッピングテーブルの内容を参考して、ｐＳＬＣブロックに関連する各ホストリードコマンドの実行を記録しても良い。Ｌ２ＰマッピングテーブルのｐＳＬＣブロックに対応するすべてのＬＢＡのデータがホスト１１０に読み出された場合、処理ユニット１３１は、電子装置が瞬断からの回復を完了していると判断する。
【００３８】
本発明の方法におけるステップの全部または一部は、コンピュータのオペレーティングシステム、コンピュータ内の特定のハードウェアのドライバプログラム、またはソフトウェアプログラムなどのコンピュータプログラムで実行することができる。また、上記したプログラムに加え、他の種類のプログラムでも実行することができる。当業者は、本発明の実施形態に係る方法をコンピュータプログラムに書き込むことができるが、ここでは詳細説明されない。本発明の実施形態に係る方法を実行するコンピュータプログラムは、ＤＶＤ、ＣＤ-ＲＯＭ、ＵＳＢ、またはハードディスクなどのコンピュータ可読データ記憶媒体、または、ネットワーク（たとえばインターネット、または他の記憶媒体）を介してアクセスできるＷｅｂサーバに格納することができる。
【００３９】
以上、本発明が図１に示すような構成要素を含むことを示しているが、本発明の精神から逸脱することなく他の追加の構成要素を使用して、より良い技術的効果を達成することもできる。また、図５および図７のフローチャートは特定の順序で実行されるが、当業者であれば、本発明の趣旨を逸脱することなく、同じ効果を得ることなくステップ順を変更することができる。したがって、本発明は、上述したような順序のみの使用に限定されない。さらに、当業者であれば、いくつかのステップを１つのステップに統合すること、またはこれらのステップよりも順次にまたは並行して多くのステップを実行することもでき、本発明は限定されない。
【００４０】
本発明は、上述の実施形態のように説明したが、上述の説明は本発明を限定するものではないことを留意されたい。本発明は、当業者による修正および類似の設計変更を包含し、いずれも本願の特許請求の範囲に含まれている。
【符号の簡単な説明】
【００４１】
１００        システム構成
１１０      ホスト
１３０      制御部
１３１      処理ユニット
１３５      ホストのインタフェース
１３７      スタティックランダムアクセスメモリ
１３９      フラッシュメモリの接続インタフェース
１５０      ダイナミックランダムアクセスメモリ
１７０      ＬＵＮ
１７０＃０〜１７０＃８      ＬＵＮ
１７０＃０−０〜１７０＃８−０      正常ブロック
１７０＃０−１〜１７０＃８−１      疑似シングルレベルセルブロック
ＣＨ＃０〜ＣＨ＃２      入出力チャネル
ＣＥ＃０〜ＣＥ＃２      チップイネーブル制御信号
３１０〜３７０      論理パーティション
ＬＢＡ＃０〜ＬＢＡ＃３６８６３      論理ブロックアドレス
Ｓ５１０〜Ｓ５６０      方法のステップ
６１０      論理−物理表
６３０      物理的位置情報
６３０−０      （物理）ブロック番号
６３０−１      （物理）ページ番号
６３０−２      （物理）フレーム番号
６３０−３      論理ユニット番号および入出力チャネル番号
６５０      物理ブロック
６５５      物理局在部
Ｓ７１０〜Ｓ７３０      方法ステップ
【図１】
2020191055.tif 000003
【図２】
2020191055.tif 000004
【図３】
2020191055.tif 000005
【図４】
2020191055.tif 000006
【図５】
2020191055.tif 000007
【図６】
2020191055.tif 000008
【図７】
2020191055.tif 000009
【外国語明細書】
2020191055000001.pdf