(57)【特許請求の範囲】
【請求項１】
ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する制御手段と、
前記コマンドに対応した転送要求コマンドをキューイングするコマンドキュー手段と、
前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する複数のステージ処理手段と、
前記複数のステージ処理手段のうち記憶媒体に対するデータアクセス処理を実行するステージ処理手段に少なくとも設けられ、前記制御手段からの停止命令を受けた場合に、自己が設けられるステージ処理手段におけるステージ処理が終了後であって後段のステージ処理手段に前記転送要求コマンドを渡す前に、前記転送要求コマンドに係るステージ処理を実行せずにスキップさせるためのスキップフラグを前記転送要求コマンドに付与して後段のステージ処理手段に渡すとともに、前記スキップフラグが付与されている転送要求コマンドを前段のステージ処理手段から受取った場合に、該受け取った転送要求コマンドを後段のステージ処理手段へ受け渡すスキップ手段と、
を有するメモリ制御装置。
【請求項２】
前記スキップ手段は、前記不揮発性メモリに対するデータアクセス処理を実行するステージ処理手段にのみ設けられている、請求項１に記載のメモリ制御装置。
【請求項３】
前記スキップ手段でスキップされた転送要求コマンドの処理結果を示すレスポンスを、キューイングするレスポンスキュー手段を更に有することを特徴とする請求項１または２に記載のメモリ制御装置。
【請求項４】
前記スキップ手段でスキップされた転送要求コマンドの情報を、前記制御手段に通知する通知手段を更に有する請求項１〜３のいずれか一項に記載のメモリ制御装置。
【請求項５】
データを保持する不揮発性メモリと、
ホストからの前記不揮発性メモリに対するデータアクセスのコマンドを処理制御する制御手段と、
前記コマンドに対応した転送要求コマンドをキューイングするコマンドキュー手段と、
前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する複数のステージ処理手段と、
ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する制御手段と、
前記コマンドに対応した転送要求コマンドをキューイングするコマンドキュー手段と、
前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する複数のステージ処理手段と、
前記複数のステージ処理手段のうち記憶媒体に対するデータアクセス処理を実行するステージ処理手段に少なくとも設けられ、前記制御手段からの停止命令を受けた場合に、自己が設けられるステージ処理手段におけるステージ処理が終了後であって後段のステージ処理手段に前記転送要求コマンドを渡す前に、前記転送要求コマンドに係るステージ処理を実行せずにスキップさせるためのスキップフラグを前記転送要求コマンドに付与して後段のステージ処理手段に渡すとともに、前記スキップフラグが付与されている転送要求コマンドを前段のステージ処理手段から受取った場合に、該受け取った転送要求コマンドを後段のステージ処理手段へ受け渡すスキップ手段と、
を有するメモリ装置。
【請求項６】
前記スキップ手段は、前記不揮発性メモリに対するデータアクセス処理を実行するステージ処理手段にのみ設けられている、請求項５に記載のメモリ装置。
【請求項７】
前記スキップ手段でスキップされた転送要求コマンドの処理結果を示すレスポンスを、キューイングするレスポンスキュー手段を更に有することを特徴とする請求項５または６に記載のメモリ装置。
【請求項８】
前記スキップ手段でスキップされた転送要求コマンドの情報を、前記制御手段に通知する通知手段を更に有する請求項５〜７のいずれか一項に記載のメモリ制御装置。
【請求項９】
メモリ制御装置で実行される停止制御方法であって、
制御手段が、ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する制御ステップと、
コマンドキュー手段が、前記コマンドに対応した転送要求コマンドをキューイングするコマンドキューステップと、
複数のステージ処理手段のそれぞれが、前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行するステージ処理ステップと、
前記複数のステージ処理手段のうち記憶媒体に対するデータアクセス処理を実行するステージ処理手段に少なくとも設けられたスキップ手段が、前記制御手段からの停止命令を受けた場合に、自己が設けられるステージ処理手段におけるステージ処理が終了後であって後段のステージ処理手段に前記転送要求コマンドを渡す前に、前記転送要求コマンドに係るステージ処理を実行せずにスキップさせるためのスキップフラグを前記転送要求コマンドに付与して後段のステージ処理手段に渡すとともに、前記スキップフラグが付与されている転送要求コマンドを前段のステージ処理手段から受取った場合に、該受け取った転送要求コマンドを後段のステージ処理手段へ受け渡すスキップステップと、
を含む停止制御方法。
【請求項１０】
前記スキップ手段は、前記不揮発性メモリに対するデータアクセス処理を実行するステージ処理手段にのみ設けられている、請求項９に記載の停止制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリ制御装置、メモリ装置および停止制御方法に関する。
【背景技術】
【０００２】
従来、ホストからのコマンドの投入により、ＮＡＮＤ型フラッシュメモリに対するデータアクセスを制御するＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）コントローラを備えたＳＳＤ装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２４０８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、この種のＳＳＤ装置では、電源断による緊急停止命令などの停止命令があった場合に、当該ＳＳＤ装置の電源を落とすまでに時間がかかるという課題があった。
【０００５】
そこで、本発明は、前記課題に鑑みてなされたものであり、停止命令があった場合の装置の電源を落とすまでに要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
本実施形態のメモリ制御装置は、制御手段と、コマンドキュー手段と、複数のステージ処理手段と、スキップ手段と、を有する。制御手段は、ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する。コマンドキュー手段は、前記コマンドに対応した転送要求コマンドをキューイングする。ステージ処理手段は、前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する。スキップ手段は、前記複数のステージ処理手段のうち記憶媒体に対するデータアクセス処理を実行するステージ処理手段に少なくとも設けられ、前記制御手段からの停止命令を受けた場合に、自己が設けられるステージ処理手段におけるステージ処理が終了後であって後段のステージ処理手段に前記転送要求コマンドを渡す前に、前記転送要求コマンドに係るステージ処理を実行せずにスキップさせるためのスキップフラグを前記転送要求コマンドに付与して後段のステージ処理手段に渡すとともに、前記スキップフラグが付与されている転送要求コマンドを前段のステージ処理手段から受取った場合に、該受け取った転送要求コマンドを後段のステージ処理手段へ受け渡す。
【０００７】
また、本実施形態のメモリ装置は、不揮発性メモリと、制御手段と、コマンドキュー手段と、複数のステージ処理手段と、スキップ手段と、を有する。不揮発性メモリは、データを保持する。制御手段は、ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する。コマンドキュー手段は、前記コマンドに対応した転送要求コマンドをキューイングする。ステージ処理手段は、前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する。スキップ手段は、前記複数のステージ処理手段のうち記憶媒体に対するデータアクセス処理を実行するステージ処理手段に少なくとも設けられ、前記制御手段からの停止命令を受けた場合に、自己が設けられるステージ処理手段におけるステージ処理が終了後であって後段のステージ処理手段に前記転送要求コマンドを渡す前に、前記転送要求コマンドに係るステージ処理を実行せずにスキップさせるためのスキップフラグを前記転送要求コマンドに付与して後段のステージ処理手段に渡すとともに、前記スキップフラグが付与されている転送要求コマンドを前段のステージ処理手段から受取った場合に、該受け取った転送要求コマンドを後段のステージ処理手段へ受け渡す。
【０００８】
また、実施形態の停止制御方法は、メモリ制御装置で実行される。また、停止制御方法は、制御ステップと、コマンドキューステップと、ステージ処理ステップと、スキップステップと、を含む。制御ステップは、制御手段が、ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する。コマンドキューステップは、コマンドキュー手段が、前記コマンドに対応した転送要求コマンドをキューイングする。ステージ処理ステップは、複数のステージ処理手段のそれぞれが、前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する。スキップステップは、前記複数のステージ処理手段のうち記憶媒体に対するデータアクセス処理を実行するステージ処理手段に少なくとも設けられたスキップ手段が、前記制御手段からの停止命令を受けた場合に、自己が設けられるステージ処理手段におけるステージ処理が終了後であって後段のステージ処理手段に前記転送要求コマンドを渡す前に、前記転送要求コマンドに係るステージ処理を実行せずにスキップさせるためのスキップフラグを前記転送要求コマンドに付与して後段のステージ処理手段に渡すとともに、前記スキップフラグが付与されている転送要求コマンドを前段のステージ処理手段から受取った場合に、該受け取った転送要求コマンドを後段のステージ処理手段へ受け渡す。
【図面の簡単な説明】
【０００９】
【図１】図１は、ＳＳＤの構成を説明するためのブロック図である。
【図２】図２は、図１に示したフラッシュメモリコントローラの詳細な構成を説明するための図である。
【図３】図３は、本実施形態のＳＳＤ装置の具体的な処理動作を説明するための図である。
【図４】図４は、本実施形態のＳＳＤ装置の具体的な処理動作を説明するための図である。
【図５】図５は、本実施形態のＳＳＤ装置の具体的な処理動作を説明するための図である。
【図６】図６は、本実施形態のＳＳＤ装置の具体的な処理動作を説明するための図である。
【図７】図７は、従来のＳＳＤ装置の具体的な処理動作を説明するための図である。
【図８】図８は、従来のＳＳＤ装置の具体的な処理動作を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付図面を参照して説明する。
【００１１】
なお、以下では、本実施形態のメモリ制御装置、メモリ装置及び停止制御方法を、ホスト装置としてのパーソナルコンピュータに接続されるＳＳＤ装置に適用した場合について説明する。
【００１２】
図１は、本実施形態に係るＳＳＤ装置１の構成を説明するためのブロック図である。
【００１３】
図１に示すように、このＳＳＤ装置（メモリ装置）１は、パーソナルコンピュータなどのホスト装置Ｈの外部メモリとして機能するものであり、ＳＳＤコントローラ（メモリ制御装置）２と、ＤＲＡＭ３と、ＮＡＮＤ型フラッシュメモリ（不揮発性メモリ）４とを備えている。
【００１４】
ＳＳＤコントローラ２は、ＣＰＵ（制御手段）２１、ホストインタフェース回路２２、ＤＲＡＭコントローラ２３、フラッシュメモリコントローラ２４などを備えており、それら各構成要素部２１〜２４が、バスラインＢＬを介して相互にデータ通信可能に接続されている。なお、このＳＳＤコントローラ２は、一般的にＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ）と呼ばれている。
【００１５】
ここで、ＣＰＵ２１は、ホストインタフェース回路２２、ＤＲＡＭコントローラ２３及びフラッシュメモリコントローラ２４を制御するとともに、ホスト装置ＨからのＮＡＮＤ型フラッシュメモリ４に対するライト（ＷＲＩＴＥ）やリード（ＲＥＡＤ）などのデータアクセスのコマンド（命令）を処理制御する制御手段である。
【００１６】
ホストインタフェース回路２２は、ホスト装置Ｈと通信接続する機能を有する回路である。
【００１７】
ＤＲＡＭコントローラ２３は、ＤＲＡＭ３に対するライト（ＷＲＩＴＥ）やリード（ＲＥＡＤ）などのデータアクセスを制御する機能を有する回路である。
【００１８】
フラッシュメモリコントローラ２４は、ＮＡＮＤ型フラッシュメモリ４に対するライト（ＷＲＩＴＥ）やリード（ＲＥＡＤ）などのデータアクセスを制御する機能を有する回路である。
【００１９】
また、ＤＲＡＭ３は、ホスト装置Ｈから受信してＮＡＮＤ型フラッシュメモリ４にライトするデータや、ＮＡＮＤ型フラッシュメモリ４からリードしてホスト装置Ｈに送信するデータなどを一時的に記憶する揮発性メモリである。
【００２０】
また、ＮＡＮＤ型フラッシュメモリ４は、電源供給が遮断された場合でも前記データなどの記憶内容を保持し続けることが可能な不揮発性メモリである。
【００２１】
なお、このＳＳＤ装置１では、ホスト装置ＨとＮＡＮＤ型フラッシュメモリ４の両者の転送レートが相違することから、ホスト装置ＨからＮＡＮＤ型フラッシュメモリ４に対するライトコマンドを受け取った場合、そのライトコマンドを、当該ホスト装置Ｈから受け取ってＤＲＡＭ３に一時記憶したライトデータを、ＤＲＡＭ３からＮＡＮＤ型フラッシュメモリ４に転送する転送要求コマンドとして処理する。
【００２２】
また、一方、ＳＳＤ装置１では、前記したような転送レートの相違から、ホスト装置ＨからＮＡＮＤ型フラッシュメモリ４に対するリードコマンドを受け取った場合、そのリードコマンドを、ＮＡＮＤ型フラッシュメモリ４からリードしてＤＲＡＭ３に一時記憶したリードデータを、ＤＲＡＭ３からホスト装置Ｈへ転送する転送要求コマンドとして処理する。
【００２３】
また、このＳＳＤ装置１では、起動時に、不図示のブートＲＯＭに格納されたブート用プログラムをＤＲＡＭ３などにリードすることにより、ＣＰＵ２１が、ファームウエア（以下、単に「ＦＷ」という。）を実行する。
【００２４】
なお、ＦＷとは、ホスト装置Ｈからのコマンド解析処理や、フラッシュメモリコントローラ２４への前記転送要求コマンドの投入処理を実行したり、ＬＢＡ重複チェック、コンパクション、パトロール、エラー回復処理、統計情報計測処理などの各種処理を実行したりするものである。
【００２５】
図２は、図１に示したフラッシュメモリコントローラ２４の詳細な構成を説明するための図である。
【００２６】
図２に示すように、このフラッシュメモリコントローラ２４は、コマンドキュー（コマンドキュー手段）２４１、ＮＡＮＤアドレス決定部（ステージ処理手段）２４２、ＮＡＮＤコントローラ（ステージ処理手段）２４３、情報更新部（ステージ処理手段）２４４、レスポンスキュー（レスポンスキュー手段）２４５、レジスタ２４６、バスインタフェース２４７などを備えており、各構成要素部２４１〜２４７が、バスインタフェース２４７を介してバスラインＢＬにデータ通信可能に接続されている。
【００２７】
ここで、コマンドキュー２４１は、ホスト装置Ｈからのライトコマンドまたはリードコマンドに対応する前記転送要求コマンドをキューイングする内部バッファである。
【００２８】
ＮＡＮＤアドレス決定部２４２は、コマンドキュー２４１にキューイングされた転送要求コマンドに係るステージ（段階）処理を実行するステージ処理手段であり、前記転送要求コマンドが有する情報に基づいてデータアクセスするＮＡＮＤ型フラッシュメモリ４のアドレスを決定する回路である。
【００２９】
ＮＡＮＤコントローラ２４３は、コマンドキュー２４１にキューイングされた転送要求コマンドに係るステージ処理を実行するステージ処理手段であり、ＮＡＮＤ型フラッシュメモリ４に対するデータライトまたはデータリードなどのデータアクセスを実行する回路である。なお、このＮＡＮＤコントローラ２４３は、ランダマイズ処理などのデータ加工処理や誤り訂正符号付与などのエラー訂正を行うデータ処理部（ステージ処理手段）２４３Ａと、ＮＡＮＤ型フラッシュメモリ４に対するアクセスを実行するインタフェース制御部（ステージ処理手段）２４３Ｂとを有している。
【００３０】
情報更新部２４４は、コマンドキュー２４１にキューイングされた転送要求コマンドに係るステージ処理を実行するステージ処理手段であり、ＤＲＡＭ３上に展開された情報テーブル（不図示）で管理されるアドレス情報やアクセス履歴情報などの各種情報を更新する回路である。なお、アドレス情報とは、例えば、ホスト装置Ｈから送信されてきたライトデータを格納したＮＡＮＤ型フラッシュメモリ４のアドレスや、ホスト装置Ｈへ送信するリードデータを格納したＮＡＮＤ型フラッシュメモリ４のアドレスのことである。
【００３１】
なお、前記したＮＡＮＤアドレス決定部２４２と、ＮＡＮＤコントローラ２４３のデータ処理部２４３Ａ及びインタフェース制御部２４３Ｂと、情報更新部２４４は、それぞれ、ＣＰＵ（ＦＷ）２１からの停止命令を受けた場合に、ステージ処理を実行せずにスキップさせるパージ処理部（スキップ手段）Ｐを有している。
【００３２】
このパージ処理部Ｐは、レジスタ２４６から後述の通知を受けた場合に、フラッシュメモリコントローラ２４でコマンドキュー２４１から引き抜かれて現在実行中の転送要求コマンドに係る各ステージ処理手段におけるステージ処理をスキップすべく、現在実行中の転送要求コマンドにパージフラグを付与して後段のステージ処理手段へ出力するとともに、既にパージフラグが付与されている転送要求コマンドを後段のステージ処理手段へ受け渡すパージ処理を実行する。
【００３３】
レスポンスキュー２４５は、ホスト装置Ｈからの転送要求の処理結果を示すレスポンス、特に、本実施形態では、パージ処理部（スキップ手段）Ｐでスキップされた転送要求コマンドの処理結果を示すレスポンスを、キューイングする内部バッファである。
【００３４】
レジスタ２４６は、フラッシュメモリコントローラ２４がＣＰＵ（ＦＷ）２１から停止命令を受けた場合に、その情報を保持するとともに、前記したパージ処理部Ｐに停止命令があった旨を通知する回路である。
【００３５】
バスインタフェース２４７は、バスラインＢＬと通信接続する機能を有する回路である。
【００３６】
なお、特に図示していないが、本実施形態のフラッシュメモリコントローラ２４は、各ステージ処理手段で実行途中の転送要求コマンドが全てスキップされたことを検知し、スキップされた転送要求コマンドの情報を含めて、フラッシュメモリコントローラ２４内のパージ処理が終了したことをＣＰＵ（ＦＷ）２１に通知する通知手段を有している。
【００３７】
即ち、本実施形態のＳＳＤ装置１では、電源断などにより、フラッシュメモリコントローラ２４がＣＰＵ（ＦＷ）２１から停止命令を受取った場合に、フラッシュメモリコントローラ２４でコマンドキュー２４１から引き抜かれて現在実行中の転送要求コマンドに係る各ステージ処理をスキップすべく、各パージ処理部Ｐが、現在実行中の転送要求コマンドにパージフラグを付与して後段のステージ処理手段へ出力するとともに、既にパージフラグが付与されている転送要求コマンドを後段のステージ処理手段へ受け渡すパージ処理を行う。
【００３８】
その後、本実施形態のＳＳＤ装置１では、各パージ処理部Ｐでスキップされてレスポンスキュー２４５にスキップした旨を示すレスポンスがキューイングされ、ＣＰＵ（ＦＷ）２１に通知された後に、ＳＳＤ装置１の電源を落とす。
【００３９】
次に、前記した構成のフラッシュメモリコントローラ２４の具体的な処理動作について図３〜図６を用いて説明する。
【００４０】
図３は、フラッシュメモリコントローラ２４が、ホスト装置Ｈからのライトコマンドに対応する転送要求コマンドを実行する場合のフローを説明するための図である。
【００４１】
図３に示すように、まず、ＳＳＤ装置１は、ＳＳＤコントローラ２が、ホスト装置Ｈからのライトコマンドを入力すると、まず、ステップＳ１において、ＣＰＵ２１、ホストインタフェース回路２２およびＤＲＡＭコントローラ２３が、コマンド解析処理などのフロントエンド処理を実行する。
【００４２】
続いて、ステップＳ２において、コマンドキュー２４１が、解析されたライトコマンドに対応する転送要求コマンドをキューイングし、ＤＲＡＭコントローラ２３が、ライトデータをＤＲＡＭ３に一時記憶する。
【００４３】
そして、ＣＰＵ２１が、コマンドキュー２４１にキューイングされた転送要求コマンドを順次引き抜いて実行する。
【００４４】
具体的には、まず、ステップＳ３において、ＮＡＮＤアドレス決定部２４２が、ＣＰＵ２１により引き抜かれた転送要求コマンドに係る段階（ステージ）処理として、ＮＡＮＤ型フラッシュメモリ４の書き込み先のアドレスを決定する。
【００４５】
続いて、ステップＳ４において、ＣＰＵ２１の制御のもと、ＤＲＡＭコントローラ２３が、ＤＲＡＭ３に一時記憶したライトデータを読み出す。
【００４６】
続いて、ステップＳ５において、ＮＡＮＤコントローラ２４３のデータ処理部２４３Ａが、前記読み出されたライトデータに対してランダマイズ処理などのデータ加工処理や誤り訂正符号付与などのエラー訂正処理を実行する。
【００４７】
続いて、ステップＳ６において、ＮＡＮＤコントローラ２４３のインタフェース制御部２４３Ｂが、ＮＡＮＤ型フラッシュメモリ４に対するライトデータのライト処理を実行する。
【００４８】
前記ライトデータのライト処理が終了すると、ＮＡＮＤ型フラッシュメモリ４がレスポンスを返してくるので、続いて、ステップＳ７において、ＮＡＮＤコントローラ２４３が、レスポンスをチェックし、続いて、ステップＳ８において、情報更新部２４４が、ＤＲＡＭ３上の情報、即ち、ホスト装置４から受け取ったライトデータと、そのライトデータをライトしたＮＡＮＤ型フラッシュメモリ４のアドレスとを一意に特定するための情報を更新する。
【００４９】
最後に、ステップＳ９において、レスポンスキュー２４５が、ＮＡＮＤ型フラッシュメモリ４に対してライトデータが正常にライトされたなどの処理結果を示すレスポンスをキューイングする。これにより、フラッシュメモリコントローラ２４における処理フローが完了する。
【００５０】
その後、ステップＳ１に移行して、ＣＰＵ２１が、レスポンスキュー２４５からレスポンスを順次引き抜いて、フロントエンド処理を実行し、ホスト装置Ｈにライトコマンドの完了を通知することにより、ＳＳＤコントローラ２における処理が完了する。
【００５１】
図４は、フラッシュメモリコントローラ２４が、ホスト装置Ｈからのリードコマンドに対応する転送要求コマンドを実行する場合のフローを説明するための図である。
【００５２】
図４に示すように、まず、ＳＳＤ装置１は、ＳＳＤコントローラ２が、ホスト装置Ｈからのリードコマンドを入力すると、まず、ステップＳ１０において、ホストインタフェース回路２２、ＤＲＡＭコントローラ２３およびＣＰＵ２１が、コマンド解析処理などのフロントエンド処理を実行する。
【００５３】
続いて、ステップＳ１１において、コマンドキュー２４１が、解析されたリードコマンドに対応する転送要求コマンドをキューイングする。
【００５４】
そして、ＣＰＵ２１が、コマンドキュー２４１にキューイングされた転送要求コマンドを順次引き抜いて実行する。
【００５５】
具体的には、まず、ステップＳ１２において、ＣＰＵ２１の制御のもと、ＤＲＡＭコントローラ２３が、リード対象となるリードデータがＮＡＮＤ型フラッシュメモリ４のどのアドレスにライトされているかの情報をＤＲＡＭ３からリードする。なお、その情報は、図３のステップＳ８などでライトした情報である。
【００５６】
続いて、ステップＳ１３において、前記リードした情報に基づいて、ＮＡＮＤコントローラ２４３のインタフェース制御部２４３Ｂが、ＮＡＮＤ型フラッシュメモリ４に対するリードデータのリード処理を実行する。
【００５７】
前記リードデータのリード処理が終了すると、続いて、ステップＳ１４において、ＮＡＮＤコントローラ２４３のデータ処理部２４３Ａが、ライト処理時に追加した誤り訂正符号のチェックやランダマイズしたデータを元に戻すなどのデータチェック処理を実行する。
【００５８】
続いて、ステップＳ１５において、ＣＰＵ２１の制御のもと、ＤＲＡＭコントローラ２３が、リードしたリードデータをＤＲＡＭ３にライトし、ステップＳ１６において、レスポンスキュー２４５が、当該リード処理の結果を示すレスポンスをキューイングする。これにより、フラッシュメモリコントローラ２４における処理フローが完了する。
【００５９】
その後、ステップＳ１０に移行して、ＣＰＵ２１が、レスポンスキュー２４５からレスポンスを順次引き抜いて、フロントエンド処理を実行し、ホスト装置Ｈにリードコマンドの完了を通知することにより、ＳＳＤコントローラ２における処理が完了する。
【００６０】
図５及び図６は、本実施形態のＳＳＤ装置１において、ＳＳＤ装置１の電源断などによりＣＰＵ（ＦＷ）２１から停止命令が発行された場合の処理を説明するための図であり、特に、フラッシュメモリコントローラ２４が、ＣＰＵ２１（ＦＷ）からの停止命令を受けた場合の処理を説明するための図である。
【００６１】
なお、図５が、図３に示したライト時の処理フローにおいて各ステージ間で実行途中の転送要求コマンドに対するステージ（段階）処理をパージする様子を示し、図６が、図４に示したリード時の処理フローにおいて各ステージ間で実行途中の転送要求コマンドに対するステージ（段階）処理をパージする様子を示している。なお、図５及び図６の説明では、図１〜図４を適宜参照するものとする。
【００６２】
図５及び図６に示すように、ＳＳＤ装置１では、電源断などによりＣＰＵ（ＦＷ）２１において停止命令が発生すると、ＣＰＵ（ＦＷ）２１の制御のもと、ホスト装置Ｈからのコマンドの受付を停止するとともに、フラッシュメモリコントローラ２４のコマンドキュー２４１にキューイングされている転送要求コマンドを破棄する処理動作を実行するとともに、ＣＰＵ（ＦＷ）２１から停止命令を受け取ったフラッシュメモリコントローラ２４のレジスタ２４６が、各ステージ処理を実行するステージ処理手段としてのＮＡＮＤアドレス決定部２４２、ＮＡＮＤコントローラ２４３及び情報更新部２４４に搭載されたパージ処理部Ｐに対して停止命令が来た旨を通知する。
【００６３】
すると、各パージ処理部Ｐが、自己が搭載されたステージ処理手段で実行中の転送要求コマンドに対してパージ処理を実行するためのパージフラグの付与を行うとともに、パージフラグが付与されている転送要求コマンドを受取った場合に、その転送要求コマンドに対するステージ処理を実行せずに後段のステージ処理手段へ受け渡す。これにより、各ステージ処理手段における転送要求コマンドに対するステージ処理を省略することが可能である。
【００６４】
図７及び図８は、従来のＳＳＤ装置において、ＳＳＤ装置の電源断などによりＣＰＵ（ＦＷ）から停止命令が発行された場合の処理を説明するための図である。
【００６５】
なお、図７が、ライト時における停止命令の処理フローを示し、図８が、リード時における停止命令の処理フローを示している。
【００６６】
図７及び図８に示すように、従来のＳＳＤ装置では、電源断などによりＣＰＵ（ＦＷ）において停止命令が発生すると、ＣＰＵ（ＦＷ）の制御のもと、ホスト装置Ｈからのコマンドの受付を停止するとともに、フラッシュメモリコントローラ（不図示）のコマンドキューにキューイングされている転送要求コマンドを破棄する処理動作を実行する。即ち、このような処理は、停止命令の発生後に、新しい転送要求コマンドが実行されるのを防ぐ方法である。
【００６７】
その後、従来のＳＳＤ装置では、フラッシュメモリコントローラ（不図示）内部で既に実行中の転送要求コマンドに対する各ステージ処理（ステップＳ１０２〜ステップＳ１０９や、ステップＳ２０２〜ステップＳ２０７）が全て終了するまで待機し、全て終了した後、ＳＳＤ装置の回路動作を停止する。
【００６８】
以上説明した実施形態によれば、ＦＷの処理を煩雑化することなく、停止命令が発生した場合のＳＳＤ装置の電源を落とすまでに要する時間を短縮することができる。また、そのように電源を落とすまでに要する時間を短縮することができることにより、電源断などの緊急停止時にキャパシタに確保する電力量を低減することが可能であるため、ＳＳＤ装置に搭載するキャパシタを小型化することができ、ＳＳＤ装置を小型化でき且つ安価に製造することができる。
【００６９】
より具体的には、前記した実施形態によれば、従来のようにフラッシュメモリコントローラで実行中の転送要求コマンドの各ステージ処理が全て終了するのを待機することなく、ＳＳＤ装置の電源を落とすことができるので、従来に比べて停止命令があった場合のＳＳＤ装置の電源を落とすまでに要する時間を短縮することができる。
【００７０】
また、本実施形態によれば、各パージ処理部Ｐが、自己が搭載されるステージ処理手段におけるステージ処理が完了して後段のステージ処理手段に出力するタイミングでパージフラグの付与を行うように構成したため、ＤＲＡＭ３やＮＡＮＤ型フラッシュメモリ４などの記憶媒体に対するデータアクセスを途中で中段せずに済むので、それら記憶媒体を壊さずに済む。
【００７１】
以上、例示的な実施形態に基づいて説明したが、本実施形態のメモリ制御装置、メモリ装置及び停止制御方法は、前記した実施形態により限定されるものではない。
【００７２】
例えば、前記した実施形態では、フラッシュメモリコントローラ２４のＮＡＮＤアドレス決定部２４２と、ＮＡＮＤコントローラ２４３のデータ処理部２３４Ａ及びインタフェース制御部２４３Ｂと、情報更新部２４４とが、それぞれパージ処理部Ｐを有している形態について説明したが、これに限定されず、それら各構成要素部２４２、２４３及び２４４の少なくとも一つがパージ処理部Ｐを有していれば良く、例えば、ＮＡＮＤコントローラ２４３のみがパージ処理部Ｐを有しているような形態とすることも可能である。
【００７３】
また、前記した実施形態では、ＳＳＤ装置１のＳＳＤコントローラ（ＳｏＣチップ）２が、１つのＣＰＵ２１を搭載する形態について説明したが、これ以外にも、例えば、２つ以上のＣＰＵを搭載する形態とすることも可能である。
【００７４】
また、前記した実施形態では、本実施形態のメモリ制御装置として、ＮＡＮＤ型フラッシュメモリを制御するＳＳＤコントローラ（ＳｏＣチップ）２の場合について説明し、本実施形態のメモリ装置として、前記ＳＳＤコントローラ（ＳｏＣチップ）２を備えたＳＳＤ装置１の場合について説明したが、これ以外にも、例えば、本実施形態のメモリ制御装置として、ＮＡＮＤ型フラッシュメモリ以外の不揮発性メモリとしての記憶媒体を制御する他のメモリ制御装置とし、本実施形態のメモリ装置として、前記した他のメモリ制御装置とすることも可能である。
【００７５】
その他、前記した実施形態におけるＳＳＤ装置及びＳＳＤコントローラ（ＳｏＣチップ）や、ＮＡＮＤ型フラッシュメモリのハードウエア構成（回路構成）などは、単なる例として記載したものであり、本実施形態は、これらにより限定されない。
【符号の説明】
【００７６】
１  ＳＳＤ装置（メモリ装置）
２  ＳＳＤコントローラ（ＳｏＣチップ）（メモリ制御装置）
２１  ＣＰＵ（制御手段）
２２  ホストインタフェース回路
２３  ＤＲＡＭコントローラ
２４  フラッシュメモリコントローラ
２４１  コマンドキュー（コマンドキュー手段）
２４２  ＮＡＮＤアドレス決定部（ステージ処理手段）
２４３  ＮＡＮＤコントローラ（ステージ処理手段）
２４３Ａ  データ処理部（ステージ処理手段）
２４３Ｂ  インタフェース制御部（ステージ処理手段）
Ｐ  パージ処理部（スキップ手段）
２４４  情報更新部（ステージ処理手段）
２４５  レスポンスキュー（レスポンスキュー手段）
２４６  レジスタ
２４７  バスインタフェース
３  ＤＲＡＭ
４  ＮＡＮＤ型フラッシュメモリ（不揮発性メモリ）
Ｈ  ホスト装置
【要約】
【課題】停止命令があった場合の装置の電源を落とすまでに要する時間を短縮する。
【解決手段】本実施形態のメモリ制御装置は、制御手段と、コマンドキュー手段と、複数のステージ処理手段と、スキップ手段と、を有する。制御手段は、ホストからの不揮発性メモリに対するデータアクセスのコマンドを処理制御する。コマンドキュー手段は、前記コマンドに対応した転送要求コマンドをキューイングする。ステージ処理手段は、前記コマンドキュー手段にキューイングされた転送要求コマンドに係るステージ処理を実行する。スキップ手段は、前記制御手段からの停止命令を受けた場合に、前記ステージ処理手段におけるステージ処理を実行せずにスキップさせる。
【選択図】図２【図１】
0004829370.tif 000002
【図２】
0004829370.tif 000003
【図３】
0004829370.tif 000004
【図４】
0004829370.tif 000005
【図５】
0004829370.tif 000006
【図６】
0004829370.tif 000007
【図７】
0004829370.tif 000008
【図８】
0004829370.tif 000009