(57)【要約】【課題】接続インタフェース規格により記録することが規定されているステータス情報をファームウェアを複雑化することなく不揮発性メモリに書き込む。【解決手段】第１記憶部３に、ホストインターフェース管理機能部１２１が更新管理するステータス情報２０１を記憶するステータス領域を確保し、第２記憶部５に、ステータス情報２０１のバックアップを記憶するバックアップ領域を確保し、ホストインターフェース管理機能部１２１は、ステータス情報２０１を更新するとともに、更新箇所を示す更新情報をデータ管理機能部１２０に通知し、データ管理機能部１２０は、ホストインターフェース管理機能部１２１から更新情報が通知されたとき、更新情報に基づいてステータス情報２０１の差分情報２０３を収集し、第２記憶部に蓄積記憶させる。【選択図】図６−２
2010186341.tif 000002
【特許請求の範囲】
【請求項１】
揮発性の第１記憶部と、
不揮発性の第２記憶部と、
ホスト装置と第１記憶部との間のデータ転送を制御するホストインターフェース管理機能部および前記第１記憶部と前記第２記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、
を備えるメモリシステムにおいて、
前記第１記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、
前記第２記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、
前記ホストインターフェース管理機能部は、自メモリシステムのステータスに応じて前記ステータス領域に記憶されているステータス情報を更新するとともに、この更新による更新箇所を示す更新情報を前記データ管理機能部に通知し、
前記データ管理機能部は、前記ホストインターフェース管理機能部から更新情報が通知されたとき、前記通知された更新情報に基づいて前記ステータス領域から前記ステータス情報の更新前後の差分内容である差分情報を収集し、収集した差分情報を前記第２記憶部におけるバックアップ領域に蓄積記憶させる、
ことを特徴とするメモリシステム。
【請求項２】
揮発性の第１記憶部と、
不揮発性の第２記憶部と、
ホスト装置とのデータ転送を制御するホストインターフェース管理機能部および前記第１記憶部を介して前記ホストインターフェース管理機能部と前記第２記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、
を備えるメモリシステムにおいて、
前記第１記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、
前記第２記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、
前記ホストインターフェース管理機能部は、前記ステータス領域に記憶されているステータス情報と自メモリシステムの各時点におけるステータスとの差分内容である差分情報を前記ステータス領域に蓄積記憶させ、
前記データ管理機能部は、所定のタイミングで前記ステータス領域に蓄積記憶された差分情報を前記ステータス領域におけるステータス情報に反映させるとともに前記差分情報を前記バックアップ記憶部に蓄積記憶させる、
ことを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリを備えたメモリシステムに関する。
【背景技術】
【０００２】
コンピュータシステムに用いられる外部記憶装置として、不揮発性メモリであるフラッシュメモリ（フラッシュＥＥＰＲＯＭ）を搭載したＳＳＤ（Solid State Drive）が注目されている。フラッシュメモリは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
【０００３】
ＳＳＤ内には、複数のフラッシュメモリチップ、ホスト装置からの要求に応じて不揮発性メモリのリード／ライト制御を行うコントローラ、不揮発性メモリとホスト装置との間でデータ転送を行うための揮発性のバッファメモリ、電源回路、ホスト装置に対する接続インタフェースなどを備えている（例えば、特許文献１）。
【０００４】
一般的に広く普及しているホスト装置に対する接続インタフェースとして、ＡＴＡインタフェース規格がある。このＡＴＡインタフェース規格における記憶装置の信頼性を向上させる手段として、ＳＭＡＲＴ（Self-Monitoring Analysis and Reporting Technology）機能がある。ＳＭＡＲＴ機能は、外部記憶装置内部で、リード／ライトエラーの累積回数や累積稼働時間などを記録し、除々に進行するような障害（経年劣化）を予測し、ホスト装置に事前に通知することにより、重大障害の発生によるデータの消失を未然に防止する機能である。電源遮断時におけるＳＭＡＲＴ機能のための記録は、次回の起動時に引き継がれる必要があるため、外部記憶装置自身が備える不揮発性の記憶領域に格納される。ＳＳＤにおいては、コントローラのリード／ライト制御を実行させるためのファームウェアを複雑化することなく、上述した記録のように接続インタフェース規格により記録することが規定されている各種管理情報（以下、ステータス情報という）を不揮発性メモリに書き込むことができる技術が要望されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３６８８８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、各種管理情報を、ファームウェアを複雑化することなく不揮発性メモリに書き込むことができるメモリシステムを提供する。
【課題を解決するための手段】
【０００７】
本願発明の一態様によれば、揮発性の第１記憶部と、不揮発性の第２記憶部と、ホスト装置と第１記憶部との間のデータ転送を制御するホストインターフェース管理機能部および前記第１記憶部と前記第２記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、を備えるメモリシステムにおいて、前記第１記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、前記第２記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、前記ホストインターフェース管理機能部は、自メモリシステムのステータスに応じて前記ステータス領域に記憶されているステータス情報を更新するとともに、この更新による更新箇所を示す更新情報を前記データ管理機能部に通知し、前記データ管理機能部は、前記ホストインターフェース管理機能部から更新情報が通知されたとき、前記通知された更新情報に基づいて前記ステータス領域から前記ステータス情報の更新前後の差分内容である差分情報を収集し、収集した差分情報を前記第２記憶部におけるバックアップ領域に蓄積記憶させる、ことを特徴とするメモリシステムが提供される。
【０００８】
また、本願発明の一態様によれば、揮発性の第１記憶部と、不揮発性の第２記憶部と、ホスト装置とのデータ転送を制御するホストインターフェース管理機能部および前記第１記憶部を介して前記ホストインターフェース管理機能部と前記第２記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、を備えるメモリシステムにおいて、前記第１記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、前記第２記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、前記ホストインターフェース管理機能部は、前記ステータス領域に記憶されているステータス情報と自メモリシステムの各時点におけるステータスとの差分内容である差分情報を前記ステータス領域に蓄積記憶させ、前記データ管理機能部は、所定のタイミングで前記ステータス領域に蓄積記憶された差分情報を前記ステータス領域におけるステータス情報に反映させるとともに前記差分情報を前記バックアップ記憶部に蓄積記憶させる、ことを特徴とするメモリシステムが提供される。
【発明の効果】
【０００９】
本発明によれば、各種管理情報を、ファームウェアを複雑化することなく不揮発性メモリに書き込むことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施の形態のＳＳＤの構成例を示すブロック図。
【図２】図２は、ファームウェアの機能構成を示すブロック図。
【図３】図３は、スナップショット処理およびコミット処理による更新動作を示す図。
【図４】図４は、第１の実施の形態のＳＳＤの機能構成を説明するブロック図。
【図５】図５は、更新情報の一例を説明する図。
【図６−１】図６−１は、コミット処理、スナップショット処理実行時の動作を説明する図。
【図６−２】図６−２は、コミット処理、スナップショット処理実行時の動作を説明する図。
【図７】図７は、第２の実施の形態のＳＳＤの機能構成を説明する図。
【図８】図８は、コミット処理、スナップショット処理実行時の動作を説明する図。
【図９】図９は、ＳＳＤを搭載したパーソナルコンピュータの一例を示す斜視図。
【図１０】図１０は、ＳＳＤを搭載したパーソナルコンピュータのシステム構成例を示す図。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明の実施の形態にかかるメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１２】
（第１の実施の形態）
図１は、第１の実施の形態のＳＳＤ１００の構成例を示すブロック図である。ＳＳＤ１００は、ＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）２などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト装置１と接続され、ホスト装置１の外部記憶装置として機能する。ＳＳＤ１００は、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略す）３と、コントローラとしてのドライブ制御回路４と、揮発性半導体メモリとしてのＤＲＡＭ５とを備えている。ホスト装置１から書き込み要求されたデータ（ユーザデータ）は、ＤＲＡＭ５を介してＮＡＮＤメモリ３に書き込まれる。また、ホスト装置１から読み出し要求されたユーザデータは、ＮＡＮＤメモリ３から読み出されてＤＲＡＭ５を介してホスト装置１へ転送される。
【００１３】
ＮＡＮＤメモリ３は、ユーザデータを記憶するとともに、ホスト装置１から供給される論理アドレス（例えば、ＬＢＡ：Logical Block Addressing）とＳＳＤ１００で使用されるＮＡＮＤアドレス（物理アドレス）とをユーザデータ毎に対応付ける管理情報（論理アドレス−物理アドレス変換テーブル等の各種管理テーブル）を記憶する。また、ＮＡＮＤメモリ３は、ＡＴＡインタフェース規格に定められる機能の一つであるＳＭＡＲＴ機能に基づく記録（ステータス情報）であるリード／ライトエラー、ＮＡＮＤメモリ３の温度情報、稼働時間などを記憶する領域（ステータス領域）が確保されている。
【００１４】
ＤＲＡＭ５は、ホスト装置１とＮＡＮＤメモリ３間でのデータ転送用キャッシュおよび作業領域用メモリなどとして機能する。
【００１５】
ドライブ制御回路４は、ＮＡＮＤメモリ３とＤＲＡＭ５を制御してホスト装置１とＮＡＮＤメモリ３との間のデータ転送制御を行う。このデータ転送制御を行うための構成として、ドライブ制御回路４は以下の構成要素をさらに有する。すなわち、ドライブ制御回路４は、データアクセス用バス１０１および回路制御用バス１０２を備えている。回路制御用バス１０２には、ドライブ制御回路４全体を制御するプロセッサ１０３が接続されている。回路制御用バス１０２には、ＮＡＮＤメモリ３に記憶された管理プログラム（ファームウエア）をブートするブート用プログラムが格納されたブートＲＯＭ１０４がＲＯＭコントローラ１０５を介して接続されている。
【００１６】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）１０６、ＮＡＮＤコントローラ１０７、およびＤＲＡＭコントローラ１０８は、データアクセス用バス１０１と回路制御用バス１０２との両方に接続されている。ＡＴＡコントローラ１０６は、ＡＴＡインタフェース２を介してホスト装置１とユーザデータを送受信する。ＮＡＮＤコントローラ１０７はＮＡＮＤメモリ３とデータを送受信する。データアクセス用バス１０１には、データ作業領域およびファームウェア展開領域として使用されるＳＲＡＭ１０９がＳＲＡＭコントローラ１１０を介して接続されている。ＮＡＮＤメモリ３に記憶されているファームウェアは、起動時、ブートＲＯＭ１０４に記憶されたブート用プログラムによってＳＲＡＭ１０９に転送される。
【００１７】
図２は、プロセッサ１０３により実現されるファームウェアの機能構成を示すブロック図である。ファームウェアの各機能は、大きく、ＡＴＡコマンド処理部（ホストインターフェース管理機能部）１２１およびデータ管理部（データ管理機能部）１２０に分類される。
【００１８】
データ管理部１２０は、ＮＡＮＤコントローラ１０７、ＤＲＡＭコントローラ１０８を介して、ＮＡＮＤメモリ３−ＤＲＡＭ５間のデータ転送の制御を実行する。データ管理部１２０は、ＮＡＮＤメモリ３にアクセスする際、ＮＡＮＤメモリ３におけるアクセス先を求めるために、ホスト装置１から供給される論理アドレスとＮＡＮＤアドレスとをデータ毎に対応付ける情報である管理情報を使用する必要がある。管理情報は、前述したように、不揮発性のＮＡＮＤメモリ３に記憶されている。ＮＡＮＤメモリ３に記憶されていた管理情報は、ＳＳＤ１００の起動時に揮発性のＤＲＡＭ５の作業領域に展開される。データ管理部１２０は、この展開された管理情報に基づいてＮＡＮＤメモリ３に対するユーザデータの読み書き制御を実行するとともに、ＤＲＡＭ５上に展開された管理情報を逐次更新する。
【００１９】
ＤＲＡＭ５上に展開された管理情報は、電源が切れても、電源が切れる以前の状態に復元する必要がある。データ管理部１２０は、ＤＲＡＭ５上の管理情報を不揮発性のＮＡＮＤメモリ３に保存するために、スナップショット処理およびコミット処理を実行する機能を有している。スナップショットは、ＮＡＮＤメモリ３上の管理情報全体を指し、ＤＲＡＭ５に展開された管理テーブルをそのままＮＡＮＤメモリ３に保存することを、スナップショットをとると表現している。ログは、管理情報の変更差分のことである。ＤＲＡＭ５上の管理情報の更新の度に、スナップショットをとっていたのでは、速度も遅く、ＮＡＮＤメモリ３への書き込み数が増えるために、通常は変更差分としてのログだけをＮＡＮＤメモリ３に記録していく。ログをＤＲＡＭ上の管理情報に反映し、ＮＡＮＤメモリ３に保存することを、コミットすると表現している。
【００２０】
図３に、ＮＡＮＤメモリ３に記憶されている管理情報がスナップショット処理およびコミット処理によりどのように更新されるかを示す。データ管理部１２０がＤＲＡＭ５上の管理情報を更新する際に、ＤＲＡＭ５上の管理情報に加えた変更内容をＤＲＡＭ５上のログに蓄積する。ＤＲＡＭ５上の管理情報を直接更新し、更新内容をＤＲＡＭ５上のログに蓄積するケースと、ＤＲＡＭ５上の管理情報には直接変更を加えず、変更領域をＤＲＡＭログ上に確保して、その領域に更新内容を記録するケースとがある。ユーザデータの読み書き処理の際には、ＤＲＡＭ５上の管理情報の他に蓄積されたＤＲＡＭ５上のログも参照する。
【００２１】
データの更新が安定したら、ログのコミットを行う。コミット処理では、ＤＲＡＭ５上のログの内容を必要に応じて管理情報に反映させ、さらにＤＲＡＭログの内容をＮＡＮＤメモリ３に保存して不揮発化する。スナップショットをＮＡＮＤメモリ３に保存するのは、正常な電源断シーケンスの際、ログの保存領域が不足した場合などである。ログまたはスナップショットをＮＡＮＤメモリ３に書き終わった時点で、管理情報の不揮発化が完了する。
【００２２】
ＡＴＡコマンド処理部１２１は、ＡＴＡコントローラ１０６、およびＤＲＡＭコントローラ１０８を介して、データ管理部１２０と協動してＤＲＡＭ４−ホスト装置１間のデータ転送処理を行う。また、ＡＴＡコマンド処理部１２１は、ＳＭＡＲＴ機能に基づくステータス情報の書き込み元としての機能を有している。具体的には、ＡＴＡコマンド処理部１２１は、リード／ライトエラーが新たに発生したり、ＮＡＮＤメモリ３の温度情報の記録タイミングになったり、稼働時間の記録タイミングになったりしたとき、ステータス情報の更新管理を実行する。
【００２３】
前述したとおり、ステータス情報は、次回の起動時に引き継ぐべき情報であるため、ＮＡＮＤメモリ３に記憶する必要がある。また、ＮＡＮＤメモリ３への書き込みはデータ管理部１２０の制御の下に実行される。ＡＴＡコマンド処理部１２１が直接ＮＡＮＤメモリ３にステータス情報の書き込みを行うように構成すると、データ管理部１２０からのアクセスとの競合を引き起こすことになる。この競合を解消するための機構をファームウェアに実装するとなると、ファームウェアの構造が非常に複雑になってしまう。ファームウェアの複雑化はＳＳＤ１００全体の性能低下の一因となりうる。本発明の第１の実施の形態によれば、スナップショット、ログの機構を利用することによって、ファームウェアを複雑化することなくＡＴＡコマンド処理部１２１がＮＡＮＤメモリ３にステータス情報を書き込めるように構成したことが特徴となっている。具体的には、ＡＴＡコマンド処理部１２１はステータス情報をＤＲＡＭ５に書き込み、データ管理部１２０は管理情報だけでなくＤＲＡＭ５に書き込まれたステータス情報をもスナップショット、コミット対象とする。以降、データ管理部１２０により更新管理される管理情報をＤＭ（Ｄａｔａ  Ｍａｎａｇｅｒ）情報、ＡＴＡコマンド処理部１２１により更新管理されるステータス情報をＡＭ（ＡＴＡ  Ｍａｎａｇｅｒ）情報と表現することとする。
【００２４】
図４は、上記した特徴を実現するための第１の実施の形態のＳＳＤ１００の機能構成を説明するブロック図である。ＤＲＡＭ５には、ＤＲＡＭ５上に展開された管理情報であるＤＭ情報２００と、ＤＭ情報２００に加えた変更内容であるＤＭ情報ＤＲＡＭログ２０２と、ステータス情報であるＡＭ情報２０１と、ＡＭ情報２０１の変更内容であるＡＭ情報ＤＲＡＭログ２０３と、が記憶される。ＤＭ情報２００およびＡＭ情報２０１はスナップショット対象となっており、ＤＭ情報ＤＲＡＭログ２０２およびＡＭ情報ＤＲＡＭログ２０３がコミット対象となっている。言い換えると、ＤＲＡＭ５には、スナップショット対象となるデータの記憶領域およびコミット対象となる記憶領域の一部にステータス情報を記憶するステータス領域が確保されている。以下、ＤＭ情報２００およびＡＭ情報２０１を総称してスナップショット対象情報と表現することもある。また、以降、ＤＲＡＭログというと、ＤＭ情報ＤＲＡＭログ２０２およびＡＭ情報ＤＲＡＭログ２０３を含むこととする。
【００２５】
ＮＡＮＤメモリ３には、図示しないユーザデータのほか、スナップショット対象情報（ＤＭ情報２００およびＡＭ情報２０１）のスナップショットであるスナップショットデータ２０４と、コミット処理により不揮発化されたＤＭ情報ＤＲＡＭログ２０２であるＤＭ情報ＮＡＮＤログ２０５と、コミット処理により不揮発化されたＡＭ情報ＤＲＡＭログ２０３であるＡＭ情報ＮＡＮＤログ２０６とが記憶される。言い換えると、ＮＡＮＤメモリ３には、ステータス情報のバックアップであるスナップショットデータ２０４およびＡＭ情報ＮＡＮＤログ２０６を記憶するバックアップ領域が確保されている。以降、ＮＡＮＤログというと、ＤＭ情報ＮＡＮＤログ２０５およびＡＭ情報ＮＡＮＤログ２０６を含むこととする。
【００２６】
ＡＴＡコマンド処理部であるＡＴＡマネージャー１２１は、ＡＭ情報書き込み部２１０と、更新情報管理部２１１と、更新情報通知部２１２と、を有する。ＡＭ情報書き込み部２１０は、例えばリード／ライトエラーが新たに検出されるなど、ステータス情報が更新されるような事象が発生したとき、ＤＲＡＭ５に記憶されるＡＭ情報２０１を更新する。更新情報管理部２１１は、ＡＭ情報２０１の更新が行われる度に、ＤＲＡＭ５上のアドレスおよびサイズを更新情報として記録管理する。更新情報通知部２１２は、所定のタイミングで後述するデータマネージャー１２０に更新情報管理部２１１が管理していた更新情報を通知する。
【００２７】
図５は、更新情報の一例を説明する図である。図示するように、一つの更新部分は、更新部分の先頭アドレスとサイズとからなる一つのエントリーで記録管理される。一つのエントリーは、Ｍビット固定長の一つのデータで管理され、このＭビット長のデータのうち先頭のＮビットにＤＲＡＭ５におけるスナップショット対象情報の先頭アドレス（更新ベースアドレス）、その他のＭ−Ｎビットに前記先頭アドレスからの更新部分に相当するデータサイズ（１セクタあたり５１２バイトとしたときのセクタ数）が記述される。更新情報管理部２１１は、複数（ここでは８つ）の更新部分を記録管理することができるようになっている。更新情報は、例えばＤＲＡＭ５の所定の領域に記憶され、逐次更新管理されるようにしてもよいし、ＤＲＡＭ５以外の記憶領域において記憶管理されるようにしてもよい。更新情報通知部２１２は、８エントリー以下の更新部分が蓄積されている状態で、更新情報をデータマネージャー１２０に通知する。通知後、更新情報は消去される。
【００２８】
図４に戻り、データ管理機能部であるデータマネージャー１２０は、ＤＭ情報制御部２１３、コミット実行部２１４、スナップショット実行部２１５を有する。ＤＭ情報制御部２１３は、ＤＲＡＭ５に記憶されているＤＭ情報２００およびＤＭ情報２００の変更差分の蓄積情報であるＤＭ情報ＤＲＡＭログ２０２に基づいてユーザデータの読み書き制御を行う。ＤＭ情報制御部２１３は、ＤＭ情報２００を更新する際、ＤＭ情報２００に対する更新前後の差分情報のみをＤＭ情報ＤＲＡＭログ２０２にさらに蓄積記憶させる。コミット実行部２１４は、ユーザデータの読み書きが安定したら、ＤＭ情報ＤＲＡＭログ２０２の内容をＤＭ情報２００に反映させるとともに、ＤＭ情報ＤＲＡＭログ２０２の内容をＤＭ情報ＮＡＮＤログ２０５として保存して不揮発化する（第１のコミット処理）。また、コミット実行部２１４は、更新情報通知部２１２から更新情報を受信すると、受信した更新情報に基づいてＡＭ情報２０１から更新差分をＡＭ情報ＤＲＡＭログ２０３として収集し、ＤＭ情報ＤＲＡＭログ２０２の内容をＤＭ情報２００に反映させるとともに、ＡＭ情報ＤＲＡＭログ２０３およびＤＭ情報ＤＲＡＭログ２０２を夫々ＡＭ情報ＮＡＮＤログ２０６、ＤＭ情報ＮＡＮＤログ２０５としてＮＡＮＤメモリ３に書き込んで不揮発化する（第２のコミット処理）。スナップショット実行部２１５は、正常な電源遮断が実行される際や、ＤＲＡＭ５またはＮＡＮＤメモリ３上のログの保存領域が不足した際、スナップショット対象情報をスナップショットしてスナップショットデータ２０４として不揮発化する。スナップショット処理またはコミット処理が行われると、ＤＲＡＭ５上に蓄積記憶されてきたＤＲＡＭログは、削除される。スナップショット処理が行われると、ＮＡＮＤログも削除される。
【００２９】
次に、図６−１および図６−２を参照して、コミット処理、スナップショット処理実行時の動作を説明する。
【００３０】
図６−１（ａ）は、通常動作時、すなわちコミット処理およびスナップショット処理のどちらの処理も実行中ではない時の動作を説明する図である。図示するように、通常動作時においては、ＤＭ情報制御部２１３は、ＤＭ情報２００を読み出し（ステップＳ１）、ＤＭ情報ＤＲＡＭログ２０２を読み出し（ステップＳ２）、読み出したＤＭ情報２００およびＤＭ情報ＤＲＡＭログ２０２に基づいてユーザデータの読み書きを実行する。そして、ＤＭ情報２００を更新する場合、ＤＭ情報２００の更新部分をＤＭ情報ＤＲＡＭログ２０２に蓄積記憶させる（ステップＳ３）。ステップＳ１〜ステップＳ３は、ユーザデータへのアクセスを行う毎に繰り返し実行される。なお、ここではＤＲＡＭ５上のＤＭ情報２００には直接変更を加えず、ＤＭ情報ＤＲＡＭログ２０２を記録するケースについて説明しているが、ＤＲＡＭ５上のＤＭ情報１００を直接更新し、更新内容をＤＭ情報ＤＲＡＭログ２０２に蓄積するケースもある。一方、ＡＭ情報書き込み部２１０は、ステータス情報の更新がある毎にＡＭ情報２０１を更新し（ステップＳ４）、更新情報管理部２１１は、ＡＭ情報書き込み部２１０が更新した部分の情報を更新情報として管理する（ステップＳ５）。
【００３１】
図６−１（ｂ）は、第１のコミット処理の動作を説明する図である。コミット実行部２１４は、ＤＭ情報ＤＲＡＭログ２０２を読み出して（ステップＳ１１）、読み出したＤＭ情報ＤＲＡＭログ２０２をＤＭ情報２００に反映させ（ステップＳ１２）、さらに読み出したＤＭ情報ＤＲＡＭログ２０２をＮＡＮＤメモリ３にＤＭ情報ＮＡＮＤログ２０５として書き込む（ステップＳ１３）。第１のコミット処理実行後は、ＤＭ情報ＤＲＡＭログ２０２は消去される。これにより、不正な終了などが起こって電源が遮断され、ＤＲＡＭ５に記憶されている内容が消滅したとしても、スナップショットデータ２０４とＤＭ情報ＮＡＮＤログ２０５に基づいて最新の状態のＤＭ情報、すなわち管理情報を復元することができる。
【００３２】
図６−２（ｃ）は、第２のコミット処理の動作を説明する図である。コミット実行部２１４は、更新情報通知部２１２からの更新情報を受信すると（ステップＳ２１）、受信した更新情報に記述されている更新部分の先頭アドレスとサイズに基づいてＡＭ情報２０１における更新部分のデータを読み出して（ステップＳ２２）、読み出した更新部分のデータをＡＭ情報ＤＲＡＭログ２０３としてＤＲＡＭ５に書き込む（ステップＳ２３）。さらに、コミット実行部２１４は、ＤＭ情報ＤＲＡＭログ２０２を読み出して（ステップＳ２４）、読み出したＤＭ情報ＤＲＡＭログ２０２をＤＭ情報２００に反映させる（ステップＳ２５）。そして、コミット実行部２１４は、ＤＲＡＭ５上の２種類のＤＲＡＭログ（ＤＭ情報ＤＲＡＭログ２０２およびＡＭ情報ＤＲＡＭログ２０３）を読み出して（ステップＳ２６）、読み出した２種類のＤＲＡＭログをＮＡＮＤメモリ３に書き込んで夫々ＤＲＡＭ情報ＮＡＮＤログ２０５、ＡＭ情報ＮＡＮＤログ２０６とする（ステップＳ２７）。ステップＳ２７の動作が終了すると、コミット実行部２１４は、更新情報通知部２１２へ更新終了通知を送信する（ステップＳ２８）。第２のコミット処理実行後、ＤＲＡＭログは消去される。第２のコミット処理により、スナップショットデータ２０４に含まれるＡＭ情報の差分内容が更新されるので、ＮＡＮＤメモリ３上のＡＭ情報は実質的に最新の状態に等しくなる。これにより、不正な終了などが起こっても、スナップショットデータ２０４とＡＭ情報ＮＡＮＤログ２０６に基づいて、最新の状態のＡＭ情報２０１、すなわちステータス情報を復元できるようになる。つまり、再起動後も終了直前のステータス情報を引き継ぐことができる。
【００３３】
図６−２（ｄ）は、スナップショット処理の動作を説明する図である。スナップショット実行部２１５は、ＤＭ情報２００およびＡＭ情報２０１を読み出して（ステップＳ３１）、ＮＡＮＤメモリ３にスナップショットデータ２０４として保存する（ステップＳ３２）。スナップショット処理実行後は、ＤＭ情報ＤＲＡＭログ２０２は消去される。なお、スナップショット処理においてはＤＲＡＭログの反映が実行されないので、スナップショット処理前に第１のコミット処理を実行するようにするとよい。これにより、正常な終了処理により終了され、再起動された後も、終了直前のステータス情報を引き継ぐことができる。
【００３４】
このように、第１の実施の形態によれば、ＤＲＡＭ（第１記憶部）に、ＡＴＡマネージャーが更新管理するホスト装置に通知するためのＡＭ情報（ステータス情報）を記憶するステータス領域を確保し、ＡＴＡマネージャーは、ＤＲＡＭ上のＡＭ情報を更新するとともに、この更新による更新箇所を示す更新情報をデータマネージャーに通知し、データマネージャーは、ＡＴＡマネージャーから更新情報が通知されたとき、通知された更新情報に基づいてＡＭ情報の更新前後の差分内容であるＡＭ情報ＤＲＡＭログを収集し、収集したＡＭ情報ＤＲＡＭログをＮＡＮＤメモリ（第２記憶部）にＡＭ情報ＮＡＮＤログとして蓄積記憶させる、不揮発化されているスナップショットデータとＡＭ情報ＮＡＮＤログとの夫々に基づいて最新のＡＭ情報を復元できるので、結果として、接続インタフェース規格により記録することが規定されているステータス情報をファームウェアを複雑化することなく不揮発性メモリに書き込むことができる。
【００３５】
なお、以上の説明においては、接続インタフェース規格に基づいて保存が要求される情報の例としてＳＭＡＲＴ機能に基づくステータス情報をあげて説明したが、ＡＴＡマネージャー１２０が書き込み元となるステータス情報は、ＳＭＡＲＴ機能に関する情報に限定しない。また、スナップショット、コミットによりＮＡＮＤメモリ３に保存される、ＡＴＡマネージャー１２１が使用する情報は、管理情報だけに限定しない。
【００３６】
（第２の実施の形態）
第１の実施の形態によれば、ステータス情報を更新するような事象が発生したとき、ＡＴＡマネージャーは、ＤＲＡＭ上に記憶されているステータス情報であるＡＭ情報を直接更新するが、第２の実施の形態によれば、ＡＭ情報ではなく、ＡＭ情報の変更内容であるＡＭ情報ＤＲＡＭログに更新内容を蓄積記憶させるようにした。
【００３７】
図７は、第２の実施の形態のＳＳＤの機能構成を説明する図である。ここでは、第１の実施の形態と同様の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００３８】
図７に示すように、第２の実施の形態のＳＳＤ１００においては、ＡＴＡマネージャー１３１は、ＡＭ情報ログ書き込み部２２０と、コミット依頼通知部２２１とを有する。ＡＭ情報ログ書き込み部２２０は、ステータス情報が更新されるような事象が発生したとき、更新内容をＡＭ情報ＤＲＡＭログ２０３に蓄積記憶させる。コミット依頼通知部２２１は、後述するデータマネージャー１３０にコミット依頼通知を送信する。所定のタイミングとは、例えばＡＭ情報ＤＲＡＭログ２０３が一つの更新内容をＡＭ情報ＤＲＡＭログ２０３に蓄積記憶させたタイミングであってもよいし、複数の更新内容を蓄積記憶させたタイミングであってもよい。
【００３９】
データマネージャー１３０は、ＤＭ情報制御部２１３、コミット実行部２２４、スナップショット実行部２１５を有する。ＤＭ情報制御部２１３およびスナップショット実行部２１５の機能は第１の実施の形態と同様である。
【００４０】
コミット実行部２２４は、ＤＲＡＭログを読み出してスナップショット対象情報に反映させるとともに、読み出したＤＲＡＭログをＮＡＮＤメモリ３に書き込んでＮＡＮＤログとして不揮発化させる（第３のコミット処理）。また、コミット実行部２２４は、コミット依頼通知を受信したときも、前記第３のコミット処理を実行する（第４のコミット処理）。
【００４１】
次に、図８を参照して、コミット処理実行時の動作を説明する。スナップショット処理の動作は実施の形態１と同様であるので、ここでは説明を省略する。図８（ａ）は、通常動作時の動作を説明する図である。図示するように、ＤＭ情報制御部２１３は、ステップＳ１〜ステップＳ３と同様の動作をステップＳ４１〜ステップＳ４３にて実行する。一方、ＡＭ情報ログ書き込み部２２０は、ステータス情報の更新がある毎にＡＭ情報ＤＲＡＭログ２０３を更新する（ステップＳ４４）。
【００４２】
図８（ｂ）は、第３のコミット処理の動作を説明する図である。コミット実行部２２４は、ＤＲＡＭログを読み出して（ステップＳ５１）、読み出したＤＲＡＭログをスナップショット対象情報に反映させ（ステップＳ５２）、さらに読み出したＤＲＡＭログをＮＡＮＤメモリ３にＮＡＮＤログとして書き込む（ステップＳ５３）。第３のコミット処理実行後は、ＤＲＡＭログは消去される。
【００４３】
図８（ｃ）は、第４のコミット処理の動作を説明する図である。コミット依頼通知部２２１からコミット依頼通知を受信すると（ステップＳ６１）、前記したステップＳ５１〜ステップＳ５３の動作と同様の動作がステップＳ６２〜ステップＳ６４にて実行される。ステップＳ６４の動作が終了すると、コミット実行部２２４は、コミット依頼通知部２２１へ更新終了通知を送信する（ステップＳ６５）。
【００４４】
以上のように、第２の実施の形態によれば、ＡＴＡマネージャーはＡＭ情報ＤＲＡＭログをＤＲＡＭに蓄積記憶させ、データマネージャーは、所定のタイミングで蓄積記憶されているＡＭ情報ＤＲＡＭログをＡＭ情報に反映させるとともにＡＭ情報ＤＲＡＭログをＮＡＮＤメモリにＡＭ情報ＮＡＮＤログとして蓄積記憶させるように構成したので、第１の実施の形態と同様の効果を得ることができる。
【００４５】
以上の説明においては、コミット依頼通知部２２１はコミット依頼通知を発行し、第４のコミット処理のトリガとしてこのコミット依頼通知を使用するように説明したが、ＡＭ情報は実質的に第３のコミット処理でも不揮発化されるので、コミット依頼通知部２２１を省略した構成とすることも可能である。
【００４６】
（第３の実施の形態）
図９は、ＳＳＤ１００を搭載したパーソナルコンピュータ１０００の一例を示す斜視図である。パーソナルコンピュータ１０００は、本体１００１、及び表示ユニット１００２を備えている。表示ユニット１００２は、ディスプレイハウジング１００３と、このディスプレイハウジング１００３に収容された表示装置１００４とを備えている。
【００４７】
本体１００１は、筐体１００５と、キーボード１００６と、ポインティングデバイスであるタッチパッド１００７とを備えている。筐体１００５内部には、メイン回路基板、ＯＤＤ（optical  disk  device）ユニット、カードスロット、及びＳＳＤ１００等が収容されている。
【００４８】
カードスロットは、筐体１００５の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部１００８が設けられている。ユーザは、この開口部１００８を通じて筐体１００５の外部から追加デバイスをカードスロットに挿抜することが可能である。
【００４９】
ＳＳＤ１００は、従来のＨＤＤの置き換えとして、パーソナルコンピュータ１０００内部に実装された状態として使用してもよいし、パーソナルコンピュータ１０００が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。
【００５０】
図１０は、ＳＳＤを搭載したパーソナルコンピュータのシステム構成例を示している。パーソナルコンピュータ１０００は、ＣＰＵ１１０１、ノースブリッジ１１０２、主メモリ１１０３、ビデオコントローラ１１０４、オーディオコントローラ１１０５、サウスブリッジ１１０９、ＢＩＯＳ−ＲＯＭ１１１０、ＳＳＤ１００、ＯＤＤユニット１１１１、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１１２、及びネットワークコントローラ１１１３等を備えている。
【００５１】
ＣＰＵ１１０１は、パーソナルコンピュータ１０００の動作を制御するために設けられたプロセッサであり、ＳＳＤ１００から主メモリ１１０３にロードされるオペレーティングシステム（ＯＳ）を実行する。更に、ＯＤＤユニット１１１１が、装填された光ディスクに対して読出し処理及び書込み処理の少なくとも１つの処理の実行を可能にした場合に、ＣＰＵ１１０１は、それらの処理の実行をする。
【００５２】
また、ＣＰＵ１１０１は、ＢＩＯＳ−ＲＯＭ１１１０に格納されたシステムＢＩＯＳ（Basic  Input  Output  System）も実行する。尚、システムＢＩＯＳは、パーソナルコンピュータ１０００内のハードウェア制御のためのプログラムである。
【００５３】
ノースブリッジ１１０２は、ＣＰＵ１１０１のローカルバスとサウスブリッジ１１０９との間を接続するブリッジデバイスである。ノースブリッジ１１０２には、主メモリ１１０３をアクセス制御するメモリコントローラも内蔵されている。
【００５４】
また、ノースブリッジ１１０２は、ＡＧＰ（Accelerated  Graphics  Port）バス等を介してビデオコントローラ１１０４との通信、及びオーディオコントローラ１１０５との通信を実行する機能も有している。
【００５５】
主メモリ１１０３は、プログラムやデータを一時的に記憶し、ＣＰＵ１１０１のワークエリアとして機能する。主メモリ１１０３は、例えばＤＲＡＭから構成される。
【００５６】
ビデオコントローラ１１０４は、パーソナルコンピュータ１０００のディスプレイモニタとして使用される表示ユニット１００２を制御するビデオ再生コントローラである。
【００５７】
オーディオコントローラ１１０５は、パーソナルコンピュータ１０００のスピーカ１１０６を制御するオーディオ再生コントローラである。
【００５８】
サウスブリッジ１１０９は、ＬＰＣ（Low  Pin  Count）バス１１１４上の各デバイス、及びＰＣＩ（Peripheral  Component  Interconnect）バス１１１５上の各デバイスを制御する。また、サウスブリッジ１１０９は、各種ソフトウェア及びデータを格納する記憶装置であるＳＳＤ１００を、ＡＴＡインタフェースを介して制御する。
【００５９】
パーソナルコンピュータ１０００は、セクタ単位でＳＳＤ１００へのアクセスを行う。ＡＴＡインタフェースを介して、書き込みコマンド、読出しコマンド、フラッシュコマンド等がＳＳＤ１００に入力される。
【００６０】
また、サウスブリッジ１１０９は、ＢＩＯＳ−ＲＯＭ１１１０、及びＯＤＤユニット１１１１をアクセス制御するための機能も有している。
【００６１】
ＥＣ／ＫＢＣ１１１２は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１００６及びタッチパッド１００７を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。
【００６２】
このＥＣ／ＫＢＣ１１１２は、ユーザによるパワーボタンの操作に応じてパーソナルコンピュータ１０００の電源をＯＮ／ＯＦＦする機能を有している。ネットワークコントローラ１１１３は、例えばインターネット等の外部ネットワークとの通信を実行する通信装置である。
【符号の説明】
【００６３】
１  ホスト装置、２  ＡＴＡインタフェース、３  ＮＡＮＤメモリ、４  ドライブ制御回路、５  ＤＲＡＭ、１０３  プロセッサ、１０６  ＡＴＡコントローラ、１０７  ＮＡＮＤコントローラ、１０８  ＤＲＡＭコントローラ、１２０、１３０  データマネージャー（データ管理機能部）、１２１、１３１  ＡＴＡマネージャー（ＡＴＡコマンド処理部）、２００  ＤＭ情報、２０１  ＡＭ情報、２０２  ＤＭ情報ＤＲＡＭログ、２０３  ＡＭ情報ＤＲＡＭログ、２０４  スナップショットデータ、２０５  ＤＭ情報ＮＡＮＤログ、２０６  ＡＭ情報ＮＡＮＤログ、２１０  ＡＭ情報書き込み部、２１１  更新情報管理部、２１２  更新情報通知部、２１３  ＤＭ情報制御部、２１４  コミット実行部、２１５  スナップショット実行部、２２０  ＡＭ情報ログ書き込み部、２２１  コミット依頼通知部、２２４  コミット実行部、１０００  パーソナルコンピュータ。
【図１】
2010186341.tif 000003
【図２】
2010186341.tif 000004
【図３】
2010186341.tif 000005
【図４】
2010186341.tif 000006
【図５】
2010186341.tif 000007
【図６−１】
2010186341.tif 000008
【図６−２】
2010186341.tif 000009
【図７】
2010186341.tif 000010
【図８】
2010186341.tif 000011
【図９】
2010186341.tif 000012
【図１０】
2010186341.tif 000013