(57)【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第１のインタフェースと、メモリドライブ装置を管理するための第２のインタフェースとを備えるメモリドライブ装置と、
前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部と、
前記第２のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第１のインタフェースにより、前記メモリドライブ装置を再起動させるドライブ制御部と
を備える情報処理装置。
【請求項２】
前記メモリドライブ装置は、前記メモリドライブ装置の異常による前記機能停止を検出した場合に、前記第２のインタフェースにより、前記メモリドライブ装置が前記機能停止の状態であることを示す停止検出情報を送信し、
前記ドライブ制御部は、前記停止検出情報に基づいて、前記機能停止を検出する
請求項１に記載の情報処理装置。
【請求項３】
前記ホスト制御部と独立して動作する組み込み制御部であって、前記メモリドライブ装置から前記第２のインタフェースにより前記停止検出情報を受信した場合に、前記停止検出情報を受信したことを、前記ドライブ制御部に通知する組み込み制御部を備え、
前記ドライブ制御部は、前記組み込み制御部を介して、前記機能停止を検出する
請求項２に記載の情報処理装置。
【請求項４】
前記ドライブ制御部は、
前記メモリドライブ装置との間の前記第１のインタフェースを制御し、前記機能停止を検出した場合に、前記メモリドライブ装置を再起動させる再起動要求を、前記第１のインタフェースにより送信するＢＩＯＳ（Basic Input Output System）と、
前記ＢＩＯＳを介して、前記メモリドライブ装置へのデータの入出力を制御し、前記機能停止を検出した場合に、前記入出力の要求の実行を一時停止させ、前記メモリドライブ装置が再起動して正常に動作する状態になった場合に、前記入出力の要求の実行を再開させるデバイスドライバ部と
を備える請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記デバイスドライバ部は、前記ＢＩＯＳが前記メモリドライブ装置を再起動させた後に、前記メモリドライブ装置を初期化する初期化要求を前記メモリドライブ装置に送信する
請求項４に記載の情報処理装置。
【請求項６】
前記メモリドライブ装置は、
前記第１のインタフェースを制御するメインシステムと、
前記第２のインタフェースを制御するとともに、前記メモリドライブ装置の異常による機能停止を検出可能なサブシステムと
を備える請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項７】
前記第１のインタフェースは、ＰＣＩｅ（Peripheral Component Interconnect Express）バスのＮＶＭｅ（Non Volatile Memory Express）プロトコルによるインタフェースであり、
前記第２のインタフェースは、ＳＭＢｕｓ（System Management Bus）のＮＶＭｅ−ＭＩ（NVM Express Management Interface）である
請求項１から請求項６のいずれか一項に記載の情報処理装置。
【請求項８】
書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第１のインタフェースと、メモリドライブ装置を管理するための第２のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部とを備える情報処理装置の制御方法であって、
ドライブ制御部が、前記第２のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第１のインタフェースにより、前記メモリドライブ装置を再起動させる
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及び制御方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下、ＰＣという）などの情報処理装置では、記憶装置に、ＳＳＤ（Solid State Drive）などのメモリドライブ装置を使用するものが知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１９−２１２２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述したような従来技術の情報処理装置では、例えば、ＳＳＤ（メモリドライブ装置）がハングアップした場合に、動作が停止したり、ブルー画面が表示されたして、情報処理装置のシステムもハングアップする。このような場合に、従来技術の情報処理装置では、システムを復帰する手段はなく例えば、一旦、電源をオフして再投入することにより、システムを再起動して復帰させる必要があった。
【０００５】
本発明は、上記問題を解決すべくなされたもので、その目的は、メモリドライブ装置がハングアップした場合に、システムを機能停止させずに、復帰させることができる情報処理装置、及び制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記問題を解決するために、本発明の一態様は、書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第１のインタフェースと、メモリドライブ装置を管理するための第２のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部と、前記第２のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第１のインタフェースにより、前記メモリドライブ装置を再起動させるドライブ制御部とを備える情報処理装置である。
【０００７】
また、本発明の一態様は、上記の情報処理装置において、前記メモリドライブ装置は、前記メモリドライブ装置の異常による前記機能停止を検出した場合に、前記第２のインタフェースにより、前記メモリドライブ装置が前記機能停止の状態であることを示す停止検出情報を送信し、前記ドライブ制御部は、前記停止検出情報に基づいて、前記機能停止を検出するようにしてもよい。
【０００８】
また、本発明の一態様は、上記の情報処理装置において、前記ホスト制御部と独立して動作する組み込み制御部であって、前記メモリドライブ装置から前記第２のインタフェースにより前記停止検出情報を受信した場合に、前記停止検出情報を受信したことを、前記ドライブ制御部に通知する組み込み制御部を備え、前記ドライブ制御部は、前記組み込み制御部を介して、前記機能停止を検出するようにしてもよい。
【０００９】
また、本発明の一態様は、上記の情報処理装置において、前記ドライブ制御部は、前記メモリドライブ装置との間の前記第１のインタフェースを制御し、前記機能停止を検出した場合に、前記メモリドライブ装置を再起動させる再起動要求を、前記第１のインタフェースにより送信するＢＩＯＳ（Basic Input Output System）と、前記ＢＩＯＳを介して、前記メモリドライブ装置へのデータの入出力を制御し、前記機能停止を検出した場合に、前記入出力の要求の実行を一時停止させ、前記メモリドライブ装置が再起動して正常に動作する状態になった場合に、前記入出力の要求の実行を再開させるデバイスドライバ部とを備えるようにしてもよい。
【００１０】
また、本発明の一態様は、上記の情報処理装置において、前記デバイスドライバ部は、前記ＢＩＯＳが前記メモリドライブ装置を再起動させた後に、前記メモリドライブ装置を初期化する初期化要求を前記メモリドライブ装置に送信するようにしてもよい。
【００１１】
また、本発明の一態様は、上記の情報処理装置において、前記メモリドライブ装置は、前記第１のインタフェースを制御するメインシステムと、前記第２のインタフェースを制御するとともに、前記メモリドライブ装置の異常による機能停止を検出可能なサブシステムとを備えるようにしてもよい。
【００１２】
また、本発明の一態様は、上記の情報処理装置において、前記第１のインタフェースは、ＰＣＩｅ（Peripheral Component Interconnect Express）バスのＮＶＭｅ（Non Volatile Memory Express）プロトコルによるインタフェースであり、前記第２のインタフェースは、ＳＭＢｕｓ（System Management Bus）のＮＶＭｅ−ＭＩ（NVM Express Management Interface）であってもよい。
【００１３】
また、本発明の一態様は、書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第１のインタフェースと、メモリドライブ装置を管理するための第２のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部とを備える情報処理装置の制御方法であって、ドライブ制御部が、前記第２のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第１のインタフェースにより、前記メモリドライブ装置を再起動させる制御方法である。
【発明の効果】
【００１４】
本発明の上記態様によれば、メモリドライブ装置がハングアップ（異常による機能停止）した場合に、システムを機能停止させずに、復帰させることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態によるノートＰＣの主要なハードウェア構成の一例を示す図である。
【図２】本実施形態によるノートＰＣの機能構成の一例を示すブロック図である。
【図３】本実施形態におけるＰＥＲＳＴ＃の信号線の接続例を示す図である。
【図４】本実施形態によるノートＰＣの動作の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態による情報処理装置、及び制御方法について、図面を参照して説明する。
【００１７】
図１は、本実施形態によるノートＰＣ１の主要なハードウェア構成の一例を示す図である。本実施形態では、情報処理装置の一例として、ノートブック型パーソナルコンピュータ（以下、ノートＰＣという）であるノートＰＣ１について説明する。
【００１８】
図１に示すように、ＣＰＵ１１と、メインメモリ１２と、ビデオサブシステム１３と、表示部１４と、チップセット２１と、ＢＩＯＳメモリ２２と、エンベデッドコントローラ３１と、入力部３２と、電源回路３３と、ＳＳＤ４０とを備える。
【００１９】
なお、本実施形態において、ＣＰＵ１１と、メインメモリ１２と、ビデオサブシステム１３と、表示部１４と、チップセット２１と、ＢＩＯＳメモリ２２と、エンベデッドコントローラ３１と、入力部３２と、電源回路３３とをホスト部５０として説明する。また、ＣＰＵ１１と、チップセット２１と、メインメモリ１２とを、ホスト制御部１０として説明する。
【００２０】
ＣＰＵ（Central Processing Unit）１１は、プログラム制御により種々の演算処理を実行し、ノートＰＣ１の全体を制御している。
【００２１】
メインメモリ１２は、ＣＰＵ１１の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ１２は、例えば、複数個のＤＲＡＭ（Dynamic Random Access Memory）チップで構成される。この実行プログラムには、ＯＳ（オペレーティングシステム）、周辺機器類をハードウェア操作するための各種ドライバ、各種サービス／ユーティリティ、アプリケーションプログラム等が含まれる。
【００２２】
ビデオサブシステム１３は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、ＣＰＵ１１からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、表示部１４に描画データ（表示データ）として出力する。
【００２３】
表示部１４は、例えば、液晶ディスプレイであり、ビデオサブシステム１３から出力された描画データ（表示データ）に基づく表示画面を表示する。
【００２４】
チップセット２１は、ＵＳＢ（Universal Serial Bus）、シリアルＡＴＡ（AT Attachment）、ＳＰＩ（Serial Peripheral Interface）バス、ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、及びＬＰＣ（Low Pin Count）バスなどのコントローラを備えており複数のデバイスが接続される。図１では、デバイスの例示として、ＢＩＯＳメモリ２２と、ＳＳＤ４０とが、チップセット２１に接続されている。
【００２５】
ＢＩＯＳ（Basic Input Output System）メモリ２２は、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）やフラッシュＲＯＭ（フラッシュメモリ）などの電気的に書き換え可能な不揮発性メモリで構成される。ＢＩＯＳメモリ２２は、ＢＩＯＳ、及びエンベデッドコントローラ３１などを制御するためのシステムファームウェアなどを記憶する。
【００２６】
ＳＳＤ（Solid State Drive）４０（メモリドライブ装置の一例）は、書き換え可能な不揮発性メモリを有するメモリドライブ装置であり、ＯＳ、各種ドライバ、各種サービス／ユーティリティ、アプリケーションプログラム、及び各種データを記憶する。ノートＰＣ１は、ＳＳＤ４０が記憶するデータを利用して各種情報処理を実行する。ＳＳＤ４０は、例えば、ＰＣＩ−Ｅｘｐｒｅｓｓバス（以下、ＰＣＩｅということがある）により、チップセット２１に接続されている。また、ＳＳＤ４０は、例えば、ＳＭＢｕｓ（System Management Bus）により、後述するエンベデッドコントローラ３１と接続されている。
【００２７】
また、ＳＳＤ４０は、複数のフラッシュメモリ４１と、メモリコントローラ４２と、サブコントローラ４３とを備える。
フラッシュメモリ４１は、例えば、ＮＡＮＤフラッシュメモリであり、書き換え可能な不揮発性メモリの一例である。
【００２８】
メモリコントローラ４２は、例えば、不図示のＣＰＵ、ＲＯＭ、ＲＡＭなどを含むプロセッサであり、ＳＳＤ４０を統括的に制御する。メモリコントローラ４２は、例えば、チップセット２１との間のホストインタフェース（ホストＩ／Ｆ）の制御処理、フラッシュメモリ４１との間のメモリインタフェース（メモリＩ／Ｆ）の制御処理、フラッシュメモリ４１のデータ管理処理などの処理を実行する。
【００２９】
サブコントローラ４３は、例えば、不図示のＣＰＵ、ＲＯＭ、ＲＡＭなどを含むプロセッサであり、ＳＳＤ４０のサブシステムを制御する。サブコントローラ４３は、ＳＳＤ４０を管理するサブシステムを制御するとともに、後述するエンベデッドコントローラ３１との間のインタフェースの制御処理を実行する。
【００３０】
エンベデッドコントローラ３１（組込み制御部の一例）は、ノートＰＣ１のシステム状態に関わらず、各種デバイス（周辺装置やセンサ等）を監視し制御するワンチップマイコン（One-Chip Microcomputer）である。また、エンベデッドコントローラ３１は、電源回路３３を制御する電源管理機能を有している。なお、エンベデッドコントローラ３１は、不図示のＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されるとともに、複数チャネルのＡ／Ｄ入力端子、Ｄ／Ａ出力端子、タイマ、及びデジタル入出力端子を備えている。エンベデッドコントローラ３１には、それらの入出力端子を介して、例えば、入力部３２、及び電源回路３３などが接続されており、エンベデッドコントローラ３１は、これらの動作を制御する。また、エンベデッドコントローラ３１は、ＳＭＢｕｓを備えており、ＳＭＢｕｓによって、ＳＳＤ４０と接続されている。
【００３１】
入力部３２は、例えば、キーボード、ポインティング・デバイス、タッチパッドなどの入力デバイスである。
【００３２】
電源回路３３は、例えば、ＤＣ／ＤＣコンバータ、充放電ユニット、ＡＣ／ＤＣアダプタなどを含んでおり、外部電源から、又はバッテリから供給される直流電圧を、情報処理装置１００を動作させるために必要な複数の電圧に変換する。また、電源回路３３は、エンベデッドコントローラ３１からの制御に基づいて、ノートＰＣ１の各部に電力を供給する。
【００３３】
次に、図２を参照して、本実施形態によるノートＰＣ１の機能構成について説明する。
図２は、本実施形態によるノートＰＣ１の機能構成の一例を示すブロック図である。
図２に示すように、ノートＰＣ１は、ホスト部５０と、ＳＳＤ４０とを備える。なお、図２において、本実施形態の発明に関する主要な機能構成のみを記載している。
【００３４】
ホスト部５０は、ＯＳ５１と、ＢＩＯＳ５２と、ＰＣＩｅＩ／Ｆ（インタフェース）部１５と、エンベデッドコントローラ３１とを備える。
また、ＳＳＤ４０は、メインシステム７０と、サブシステム８０とを備える。また、ＳＳＤ４０は、フラッシュメモリ４１にデータを入出力するインタフェースＩＦ１（第１のインタフェース）と、ＳＳＤ４０を管理するためのインタフェースＩＦ２（第２のインタフェース）とを備える。
【００３５】
ここで、インタフェースＩＦ１は、例えば、ＰＣＩｅバスのＮＶＭｅ（Non Volatile Memory Express）プロトコルによるインタフェースであり、主に、ＯＳ５１からＳＳＤ４０へのデータの入出力を制御する。なお、ここでのデータの入出力とは、ＳＳＤ４０へのデータの書き込み（データを記憶させること）、及びＳＳＤ４０からのデータの読み出しを示す。
【００３６】
また、インタフェースＩＦ２は、例えば、ＳＭＢｕｓのＮＶＭｅ−ＭＩ（NVM Express Management Interface）であり、ＳＳＤ４０（メモリドライブ装置）を管理するためのインタフェースである。
【００３７】
メインシステム７０は、上述したメモリコントローラ４２により実現される機能部であり、ＰＣＩｅによるインタフェースＩＦ１を制御する。メインシステム７０は、ＯＳ５１からＳＳＤ４０へのデータの入出力を制御する。メインシステム７０は、ＣＦＳ（Controller Fatal Status）を備えている。ここで、ＣＦＳは、メモリコントローラ４２（メインシステム７０）が、致命的な状態、すなわち、ＳＳＤ４０が異常による機能停止した状態を示すフラグである。ＣＦＳは、異常による機能停止した状態である場合に、“１”がセットされる。すなわち、メインシステム７０は、ＳＳＤ４０が異常による機能停止した状態になった場合に、ＣＦＳに“１”をセットする。
【００３８】
サブシステム８０は、上述したサブコントローラ４３により実現される機能部であり、メインシステム７０とは独立したシステムである。サブシステム８０は、インタフェースＩＦ２を制御するとともに、上述したＣＦＳにより、ＳＳＤ４０の異常による機能停止（ＳＳＤ４０のメインシステム７０のハングアップ）を検出可能である。サブシステム８０は、ＣＦＳが“１”になった場合に、インタフェースＩＦ２により、エンベデッドコントローラ３１に“ＡＬＥＲＴ＃”を送信する。ここで、“ＡＬＥＲＴ＃”は、ＳＳＤ４０が機能停止の状態であることを示す停止検出情報の一例である。
【００３９】
このように、ＳＳＤ４０は、ＳＳＤ４０の異常による機能停止を検出した場合に、インタフェースＩＦ２により、ＳＳＤ４０が機能停止の状態であることを示す“ＡＬＥＲＴ＃”（停止検出情報）を送信する。
【００４０】
エンベデッドコントローラ３１は、ＳＳＤ４０からインタフェースＩＦ２により“ＡＬＥＲＴ＃”を受信した場合に、“ＡＬＥＲＴ＃”を受信したことを、ＢＩＯＳ５２に通知する。
【００４１】
ホスト制御部１０は、例えば、ＣＰＵ１１と、チップセット２１と、メインメモリ１２とにより実現される機能部であり、ＳＳＤ４０へのデータの入出力を伴う情報処理を実行するなど各種処理を実行する。ホスト制御部１０は、ＯＳ５１と、ＢＩＯＳ５２と、ＰＣＩｅＩ／Ｆ部１５とを備えている。
【００４２】
ＢＩＯＳ５２は、ＢＩＯＳメモリ２２が記憶するＢＩＯＳのプログラムをＣＰＵ１１に実行させることで実現される機能部であり、各種周辺機器類とＯＳ５１との間の入出力処理を行う。ＢＩＯＳ５２は、エンベデッドコントローラ３１からのＳＳＤ４０が機能停止の状態であることの通知を受信した場合に、システムマネージメントモード（ＳＭＭ：System Management Mode）に移行させる。これにより、ＯＳ５１及びストレージドライバ６１は動作を停止する。
【００４３】
また、ＢＩＯＳ５２は、システムマネージメントモード（ＳＭＭ）の間、ＳＳＤ４０との間のインタフェースＩＦ１を制御し、ＳＳＤ４０の機能停止を検出した場合に、ＳＳＤ４０を再起動させる再起動要求を、インタフェースＩＦ１により送信する。すなわち、ＢＩＯＳ５２は、エンベデッドコントローラ３１からの通知により、ＳＳＤ４０の異常による機能停止を検出した場合に、インタフェースＩＦ１により、ＳＳＤ４０を再起動させる。
【００４４】
例えば、ＢＩＯＳ５２は、ＰＣＩｅＩ／Ｆ部１５を介して、ＰＥＲＳＴ＃を出力する。ここで、ＰＥＲＳＴ＃とは、ＰＣＩｅにおけるリセット信号であり、ＳＳＤ４０のメインシステム７０及びサブシステム８０を初期化して、ＳＳＤ４０を再起動させる再起動要求の一例である。
【００４５】
なお、ＰＥＲＳＴ＃の信号線は、例えば、図３に示すようにＳＳＤ４０に接続されている。
図３は、本実施形態におけるＰＥＲＳＴ＃の信号線の接続例を示す図である。
図３に示すように、ＰＥＲＳＴ＃の信号線は、ＯＲ回路１６（論理和回路）を介して、ＳＳＤ４０に接続されている。ＯＲ回路１６は、ホスト部５０（ＰＣＩｅＩ／Ｆ部１５）から出力されるＢＩＯＳ＿ＲＳＴ信号と、ノートＰＣ１の全体をリセットするＣＰＵ＿ＲＳＴ信号とを入力として、ＢＩＯＳ＿ＲＳＴ信号と、ＣＰＵ＿ＲＳＴ信号とを論理和した出力信号を、ＰＥＲＳＴ＃信号として出力する。
【００４６】
このように、ＰＥＲＳＴ＃信号は、ＢＩＯＳ５２からの出力と、ＣＰＵ＿ＲＳＴ信号ととのいずれかにより、ＳＳＤ４０（メインシステム７０及びサブシステム８０）を初期化又は再起動できるように構成されている。これにより、実行中であったメインシステム７０内のＩＯキューを消去することもできる。
【００４７】
図２の説明に戻り、ＢＩＯＳ５２は、システムマネージメントモード（ＳＭＭ）において、システムマネージメントモード（ＳＭＭ）から退出した後にＯＳ５１内のストレージドライバ６１が実行するコマンドを、例えば“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＲＥＳＥＴ＿ＤＥＶＩＣＥ”コマンドと“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＦＩＲＭＷＡＲＥ＿ＡＣＴＩＶＡＴＥ”コマンドを、ストレージドライバ６１へ送信する。ＢＩＯＳ５２は、送信が完了した後、システムマネージメントモード（ＳＭＭ）から退出する。
【００４８】
ＢＩＯＳ５２がシステムマネージメントモード（ＳＭＭ）から退出した後は、ＯＳ５１がストレージドライバ６１を介してＰＣＩｅＩ／Ｆ部１５を使用可能な状態になる。ストレージドライバ６１は、ＰＣＩｅＩ／Ｆ部１５を介して、インタフェースＩＦ１により、ＳＳＤ４０へのデータの入出力を制御する。
【００４９】
ＯＳ（オペレーティングシステム）５１は、例えば、Ｗｉｎｄｏｗｓ（登録商標）であり、例えば、ＳＳＤ４０が記憶するＯＳプログラムをＣＰＵ１１に実行させることで実現される機能部である。ＯＳ５１は、例えば、ストレージドライバ６１を備える。
【００５０】
ストレージドライバ６１（デバイスドライバ部の一例）は、ＳＳＤ４０を管理し、ＳＳＤ４０に対するデータの入出力を制御するデバイスドライバである。ストレージドライバ６１は、ＳＳＤ４０へのデータの入出力を制御する。また、ストレージドライバ６１は、ＳＳＤ４０の異常による機能停止を検出した場合に、入出力の要求の実行を一時停止させ、ＳＳＤ４０が再起動して正常に動作する状態になった場合に、入出力の要求の実行を再開させる。
【００５１】
具体的に、ストレージドライバ６１は、ＢＩＯＳ５２がシステムマネージメントモード（ＳＭＭ）を退出した後、予めＢＩＯＳ５２から送られた“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＲＥＳＥＴ＿ＤＥＶＩＣＥ”コマンドに応じて、実行中であったストレージドライバ６１内の全てのＩＯキュー（入出力キュー）を消去する。また、ストレージドライバ６１は、予めＢＩＯＳ５２から送られた“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＦＩＲＭＷＡＲＥ＿ＡＣＴＩＶＡＴＥ”コマンドに応じて、ＰＣＩｅＩ／Ｆ部１５を介して、インタフェースＩＦ１により、ＳＳＤ４０のメインシステム７０及びサブシステム８０を初期化し、ＯＳ５１がＳＳＤ４０を使用可能な状態にする。ストレージドライバ６１は、ＳＳＤ４０が再起動して正常に動作する状態になった場合に、一時停止させているＯＳ５１からのコマンドを再開させる。
【００５２】
なお、図２に示すように、本実施形態において、ストレージドライバ６１とＢＩＯＳ５２（又はＢＩＯＳ５２の一部）とは、ドライブ制御部６０に対応する。ドライブ制御部６０は、インタフェースＩＦ２により、ＳＳＤ４０の異常による機能停止を検出した場合に、インタフェースＩＦ１により、ＳＳＤ４０を再起動させる。すなわち、ドライブ制御部６０は、ＳＳＤ４０からの“ＡＬＥＲＴ＃”（停止検出情報）に基づいて、ＳＳＤ４０の機能停止を検出する。例えば、ドライブ制御部６０は、エンベデッドコントローラ３１を介して、“ＡＬＥＲＴ＃”を受信し、機能停止を検出する。
【００５３】
また、ドライブ制御部６０は、ＳＳＤ４０の機能停止を検出した場合に、インタフェースＩＦ１によりＰＥＲＳＴ＃を出力させて、ＳＳＤ４０を再起動させる。
また、ドライブ制御部６０は、ＳＳＤ４０の機能停止を検出した場合に、現在実行待ちの全てのＩＯキュー及びＯＳ５１のコマンドを一時停止させ、ＳＳＤ４０が再起動して正常に動作する状態になった場合に、一時停止させている現在実行待ちの全てのＩＯキューを消去し、停止していたＯＳ５１のコマンドを再開させる。
【００５４】
次に、図４を参照して、本実施形態によるノートＰＣ１の動作について説明する。
図４は、本実施形態によるノートＰＣ１の動作の一例を示す図である。この図により、ＳＳＤ４０の異常検出及びＳＳＤ４０の復帰処理について説明する。
【００５５】
図４に示すように、まず、ＳＳＤ４０は、ＣＦＳが“１”になるか否かを判定する（ステップＳ１０１）。すなわち、ＳＳＤ４０のサブシステム８０は、ＳＳＤ４０のメインシステム７０によって、ＳＳＤ４０の異常が検出されて機能停止し、ＣＦＳが“１”にされたか否かを判定する。サブシステム８０は、ＣＦＳが“１”である場合（ステップＳ１０１：ＹＥＳ）に、処理をステップＳ１０２に進める。また、サブシステム８０は、ＣＦＳが“１”でない場合（ステップＳ１０１：ＮＯ）に、処理をステップＳ１０１に戻す。
【００５６】
ステップＳ１０２において、ＳＳＤ４０は、“ＡＬＥＲＴ＃”をエンベデッドコントローラ３１に送信する。すなわち、サブシステム８０は、ＳＭＢｕｓのＮＶＭｅ−ＭＩであるインタフェースＩＦ２により、“ＡＬＥＲＴ＃”をエンベデッドコントローラ３１に送信する。
【００５７】
次に、エンベデッドコントローラ３１は、ＳＳＤ４０からの“ＡＬＥＲＴ＃”の受信に応じて、“ＳＳＤ  ＡＬＥＲＴ＃”を、ＢＩＯＳ５２に送信する（ステップＳ１０３）。ここで、“ＳＳＤ  ＡＬＥＲＴ＃”は、ＳＳＤ４０の機能停止が検出されたことを示す注意通知である。
【００５８】
次に、ＢＩＯＳ５２は、エンベデッドコントローラ３１からの“ＳＳＤ  ＡＬＥＲＴ＃”の注意通知の受信に応じて、システムマネージメントモード（ＳＭＭ）にする（ステップＳ１０４）。すなわち、ＢＩＯＳ５２は、ＣＰＵ１１をシステムマネージメントモードに移行させる。
【００５９】
これにより、ＢＩＯＳ５２は、ＳＳＤリセットアプリケーション６２を経由して、ＯＳ５１及びストレージドライバ６１に通知し（ステップＳ１０５）、ＯＳ５１及びストレージドライバ６１は活動を停止し、ストレージドライバ６１内の全てのＩＯキュー（入出力キュー）の実行と、ＯＳ５１のコマンドの処理を、一旦停止する（ステップＳ１０６）。
なお、ＳＳＤリセットアプリケーション６２は、ＳＳＤ４０のリセットに関する処理を行うアプリケーションプログラムにより実現される機能部であり、ドライブ制御部６０に含まれるものとする。
【００６０】
次に、ＢＩＯＳ５２は、ＳＳＤ４０にＰＥＲＳＴ＃を出力する（ステップＳ１０７）。ＢＩＯＳ５２は、例えば、ＰＣＩｅＩ／Ｆ部１５を介して、ＰＣＩｅバスのＮＶＭｅプロトコルによるインタフェースＩＦ１により、ＳＳＤ４０を再起動させるＰＥＲＳＴ＃信号をＳＳＤ４０に出力する。
【００６１】
次に、ＳＳＤ４０は、ＢＩＯＳ５２からのＰＥＲＳＴ＃に応じて、再起動する（ステップＳ１０８）。
また、ＢＩＯＳ５２は、ＳＳＤ４０の初期化要求をＳＳＤ４０に送信する（ステップＳ１０９）。ＢＩＯＳ５２は、ＰＣＩｅＩ／Ｆ部１５を介して、インタフェースＩＦ１により、ＳＳＤ４０を初期化するコマンド（初期化要求）をＳＳＤ４０に送信する。
【００６２】
次に、ＳＳＤ４０は、ＢＩＯＳ５２からのコマンド（初期化要求）に応じて、ＳＳＤ４０を初期化する（ステップＳ１１０）。すなわち、ＳＳＤ４０のメインシステム７０は、メインシステム７０及びサブシステム８０の初期化処理を実行し、メインシステム７０内で実行中であった全てのＩＯキュー（入出力キュー）を消去する。
【００６３】
次に、ＢＩＯＳ５２は、“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＲＥＳＥＴ＿ＤＥＶＩＣＥ”コマンド及び“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＦＩＲＭＷＡＲＥ＿ＡＣＴＩＶＡＴＥ”コマンドを、ＳＳＤリセットアプリケーション６２を経由して、ストレージドライバ６１に送信し、実行を予約する（ステップＳ１１１）。なお、ストレージドライバ６１は，不活性状態であるため、これらのコマンドの処理を行わない。
【００６４】
次に、ＢＩＯＳ５２は、システムマネージメントモード（ＳＭＭ）から退出する（ステップＳ１１２）。これにより、ＯＳ５１及びストレージドライバ６１は、動作を再開する（ステップＳ１１３）。すなわち、ストレージドライバ６１は、ＩＯキューの実行を再開する。
【００６５】
次に、予めＢＩＯＳ５２から送られた“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＲＥＳＥＴ＿ＤＥＶＩＣＥ”に応じて、ストレージドライバ６１は、ストレージドライバ６１内で実行中であった全てのＩＯキュー（入出力キュー）を消去する（ステップＳ１１４）。
【００６６】
次に、ストレージドライバ６１は、予めＢＩＯＳ５２から送られた“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＦＩＲＭＷＡＲＥ＿ＡＣＴＩＶＡＴＥ”に応じて、インタフェースＩＦ１により、ＳＳＤ４０に初期化要求を送信する（ステップＳ１１５）。ストレージドライバ６１は、ＰＣＩｅＩ／Ｆ部１５を介して、インタフェースＩＦ１により、ＳＳＤ４０のメインシステム７０を初期化させる。
【００６７】
次に、ストレージドライバ６１は、停止していた全てのＯＳ５１のコマンドの実行を再開する（ステップＳ１１６）。すなわち、ストレージドライバ６１は、ステップＳ１１０において、実行を停止したＯＳ５１のコマンドを再開する。
これにより、ノートＰＣ１は、ＳＳＤ４０がハングアップした場合であっても、迅速に復帰させることができる。
【００６８】
なお、上述した図４に示す例では、ドライブ制御部６０がＳＳＤリセットアプリケーション６２を備え、ＢＩＯＳ５２からＳＳＤリセットアプリケーション６２を経由して通知する例を説明したが、これに限定されるものではなく、ＳＳＤリセットアプリケーション６２を備えない形態であってもよい。
【００６９】
以上説明したように、本実施形態によるノートＰＣ１（情報処理装置）は、ＳＳＤ４０と、ホスト制御部１０と、ドライブ制御部６０とを備える。ＳＳＤ４０（メモリドライブ装置）は、書き換え可能なフラッシュメモリ４１（不揮発性メモリ）を内蔵し、フラッシュメモリ４１にデータを入出力するインタフェースＩＦ１（第１のインタフェース）と、ＳＳＤ４０（メモリドライブ装置）を管理するためのインタフェースＩＦ２（第２のインタフェース）とを備える。ホスト制御部１０は、ＳＳＤ４０へのデータの入出力を伴う情報処理を実行する。ドライブ制御部６０は、インタフェースＩＦ２により、ＳＳＤ４０の異常による機能停止を検出した場合に、インタフェースＩＦ１により、ＳＳＤ４０を再起動させる。
【００７０】
これにより、本実施形態によるノートＰＣ１は、ドライブ制御部６０がＳＳＤ４０の異常による機能停止を検出して、ＳＳＤ４０を再起動させるため、例えば、ＳＳＤ４０がハングアップ（異常による機能停止）した場合に、システム（ＯＳ５１）を機能停止させずに、復帰させることができる。例えば、本実施形態によるノートＰＣ１は、ＳＳＤ４０の異常が原因で、ノートＰＣ１（ＯＳ５１）の動作が停止したり、ブルー画面が表示されたして、ノートＰＣ１のシステム（ＯＳ５１）がハングアップすることを低減することができる。
【００７１】
また、本実施形態では、ＳＳＤ４０は、ＳＳＤ４０の異常による機能停止を検出した場合に、インタフェースＩＦ２により、ＳＳＤ４０が機能停止の状態であることを示す停止検出情報（例えば、ＡＬＥＲＴ＃）を送信する。ドライブ制御部６０は、停止検出情報（例えば、ＡＬＥＲＴ＃）に基づいて、機能停止を検出する。
【００７２】
これにより、本実施形態によるノートＰＣ１は、ＳＳＤ４０の異常による機能停止を、インタフェースＩＦ２により、ＳＳＤ４０から通知されるため、ドライブ制御部６０は、適切に、復帰させることができる。
【００７３】
また、本実施形態によるノートＰＣ１は、ホスト制御部１０と独立して動作する組み込み制御部であって、ＳＳＤ４０からインタフェースＩＦ２により停止検出情報を受信した場合に、停止検出情報を受信したことを、ドライブ制御部６０に通知するエンベデッドコントローラ３１（組み込み制御部）を備える。ドライブ制御部６０は、エンベデッドコントローラ３１を介して、ＳＳＤ４０の機能停止を検出する。
【００７４】
これにより、本実施形態によるノートＰＣ１は、ホスト制御部１０と独立して動作するエンベデッドコントローラ３１を利用して、ＳＳＤ４０の機能停止を検出するため、ホスト制御部１０の状態によらずに、確実にＳＳＤ４０の機能停止を検出することができる。
【００７５】
また、本実施形態では、ドライブ制御部６０は、ＢＩＯＳ５２と、ストレージドライバ６１（デバイスドライバ部）とを備える。ＢＩＯＳ５２は、ＳＳＤ４０との間のインタフェースＩＦ１を制御し、機能停止を検出した場合に、ＳＳＤ４０を再起動させる再起動要求（ＰＥＲＳＴ＃）を、インタフェースＩＦ１により送信する。ストレージドライバ６１は、ＢＩＯＳ５２を介して、ＳＳＤ４０へのデータの入出力を制御し、機能停止を検出した場合に、入出力の要求（ＩＯキュー）の実行を一時停止させ、ＳＳＤ４０が再起動して正常に動作する状態になった場合に、入出力の要求の実行を再開させる。
【００７６】
これにより、本実施形態によるノートＰＣ１は、ＢＩＯＳ５２により迅速にＳＳＤ４０を再起動することができる。また、本実施形態によるノートＰＣ１は、ストレージドライバ６１によって、実行中であった入出力の要求（ＩＯキュー）の実行を再起動中に消去し、再起動後にＯＳ５１の入出力の要求の実行を再開させるため、ＳＳＤ４０の異常で、システムが停止（ハングアップ）することを適切に低減することができる。
【００７７】
また、本実施形態では、ストレージドライバ６１は、ＢＩＯＳ５２がＳＳＤ４０を再起動させた後に、ＳＳＤ４０を初期化する初期化要求（“ＩＯＣＴＬ＿ＳＴＯＲＡＧＥ＿ＦＩＲＭＷＡＲＥ＿ＡＣＴＩＶＡＴＥ”コマンド）をＳＳＤ４０に送信する。
これにより、本実施形態によるノートＰＣ１は、ＳＳＤ４０の異常停止後に、適切に、ＳＳＤ４０を復帰させることができる。
【００７８】
また、本実施形態では、ＳＳＤ４０は、インタフェースＩＦ１を制御するメインシステム７０と、インタフェースＩＦ２を制御するとともに、ＳＳＤ４０の異常による機能停止を検出可能なサブシステム８０とを備える。
これにより、本実施形態によるノートＰＣ１は、メインシステム７０と独立したサブシステム８０により、ＳＳＤ４０の異常による機能停止を適切に検出することができる。
【００７９】
また、本実施形態では、インタフェースＩＦ１は、ＰＣＩｅ（Peripheral Component Interconnect Express）バスのＮＶＭｅ（Non Volatile Memory Express）プロトコルによるインタフェースである。また、インタフェースＩＦ２は、ＳＭＢｕｓ（System Management Bus）のＮＶＭｅ−ＭＩ（NVM Express Management Interface）である。
【００８０】
これにより、本実施形態によるノートＰＣ１は、既存の規格のインタフェースを利用して、システム（ＯＳ５１）を機能停止させずに、ＳＳＤ４０を適切に復帰させることができる。
【００８１】
また、本実施形態では、サブシステム８０は、ＣＦＳ（例えば、ＣＦＳ＝“１”）により、ＳＳＤ４０の異常による機能停止を検出する。
これにより、本実施形態によるノートＰＣ１は、既存の仕様であるＣＦＳを利用することで、迅速かつ確実に、ＳＳＤ４０の異常による機能停止を検出することができる。
【００８２】
また、本実施形態による制御方法は、書き換え可能なフラッシュメモリ４１を内蔵し、フラッシュメモリ４１にデータを入出力するインタフェースＩＦ１と、ＳＳＤ４０を管理するためのインタフェースＩＦ２とを備えるＳＳＤ４０と、ＳＳＤ４０へのデータの入出力を伴う情報処理を実行するホスト制御部１０とを備えるノートＰＣ１の制御方法であって、再起動ステップを含む。再起動ステップにおいて、ドライブ制御部６０が、インタフェースＩＦ２により、ＳＳＤ４０の異常による機能停止を検出した場合に、インタフェースＩＦ１により、ＳＳＤ４０を再起動させる。
これにより、本実施形態による制御方法は、上述したノートＰＣ１と同様の効果を奏し、例えば、ＳＳＤ４０がハングアップ（異常による機能停止）した場合に、システム（ＯＳ５１）を機能停止させずに、復帰させることができる。
【００８３】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、情報処理装置がノートＰＣ１である例を説明したが、これに限定されるものではなく、例えば、タブレット端末装置や、デスクトップ型ＰＣなどの他の情報処理装置であってもよい。
【００８４】
また、上記の実施形態において、ノートＰＣ１のＯＳ５１が、Ｗｉｎｄｏｗｓ（登録商標）である例を説明したが、これに限定されるものではなく、例えば、Ｌｉｎｕｘ（登録商標）などの他のＯＳを適用してもよい。
【００８５】
また、上記の実施形態において、ＳＳＤ４０のサブシステム８０が、ＣＦＳが“１”になるのを検出して、“ＡＬＥＲＴ＃”をインタフェースＩＦ２により、ＥＣ３１を介して、ＢＩＯＳ５２に通知することで、ＳＳＤ４０の異常による機能停止を検出する例を説明したが、ＳＳＤ４０の異常による機能停止の検出手法は、これに限定されるものではない。例えば、ドライブ制御部６０がエンベデッドコントローラ３１を介して、サブシステム８０に、ＣＦＳが“１”になったか否かを、定期的に問い合わせることで、ＳＳＤ４０の異常による機能停止の検出するようにしてもよい。
【００８６】
また、上記の実施形態において、ＯＲ回路１６を用いて、ＢＩＯＳ＿ＲＳＴ信号と、ＣＰＵ＿ＲＳＴ信号とのいずれかにより、ＰＥＲＳＴ＃信号を生成する例を説明したが、これに限定されるものではなく、例えば、ＯＲ回路１６以外の論理回路や、ダイオードなどの素子を用いて、ＰＥＲＳＴ＃信号を生成するようにしてもよい。
【００８７】
また、上記の実施形態において、ＳＳＤ４０を再起動するために、ＰＥＲＳＴ＃信号を生成する例を示したが、これに限定されるものではなく、例えば、ＰＣＩコントローラのレジストリに値を送信したり、ＮＶＭｅで定義されたＣｏｎｔｒｏｌｌｅｒ  Ｌｅｖｅｌ  Ｒｅｓｅｔを使用するなど、別のリセット信号やリセットコマンドの形態を使用してもよい。
【００８８】
また、上記の実施形態において、ＳＳＤ４０を再起動するために、ＰＥＲＳＴ＃信号を生成する例を示したが、これに限定されるものではなく、例えば、ＳＳＤ４０の供給電源を遮断した後に再投入することによってＳＳＤ４０を再起動するようにしてもよい。
【００８９】
また、上記の実施形態において、ストレージドライバ６１に対してＩＯキューの消去とＳＳＤ４０の初期化の実行を命令するために、ＢＩＯＳを用いる例を示したが、これに限定されるものではなく、例えば、ＯＳ５１上で動作するデバイスドライバであってもよい。
【００９０】
また、上記の実施形態において、インタフェースＩＦ２の一例として、ＳＭＢｕｓを用いる例を説明したが、これに限定されるものではなく、例えば、Ｉ２Ｃ（アイツ―シー）バスなどの他のインタフェースであったり、電圧の変化や電圧パルスなどを用いてもよい。
【００９１】
また、上記の実施形態において、ＳＳＤ４０が、メモリコントローラ４２と、サブコントローラ４３とを備える例を説明したが、これに限定されるものではなく、サブコントローラ４３を備えずに、メモリコントローラ４２により、メインシステム７０とサブシステム８０とを実現するようにしてもよい。
【００９２】
なお、上述したノートＰＣ１が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したノートＰＣ１が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したノートＰＣ１が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【００９３】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にノートＰＣ１が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９４】
また、上述した機能の一部又は全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【００９５】
１  ノートＰＣ
１０  ホスト制御部
１１  ＣＰＵ
１２  メインメモリ
１３  ビデオサブシステム
１４  表示部
１５  ＰＣＩｅＩ／Ｆ部
１６  ＯＲ回路
２１  チップセット
２２  ＢＩＯＳメモリ
３１  エンベデッドコントローラ（ＥＣ）
３２  入力部
３３  電源回路
４０  ＳＳＤ
４１  フラッシュメモリ
４２  メモリコントローラ
４３  サブコントローラ
５０  ホスト部
５１  ＯＳ
５２  ＢＩＯＳ
６０  ドライブ制御部
６１  ストレージドライバ
７０  メインシステム
８０  サブシステム
ＩＦ１、ＩＦ２  インタフェース
【要約】
【課題】メモリドライブ装置がハングアップした場合に、システムを機能停止させずに、復帰させる。
【解決手段】情報処理装置は、書き換え可能な不揮発性メモリを内蔵し、前記不揮発性メモリにデータを入出力する第１のインタフェースと、メモリドライブ装置を管理するための第２のインタフェースとを備えるメモリドライブ装置と、前記メモリドライブ装置へのデータの入出力を伴う情報処理を実行するホスト制御部と、前記第２のインタフェースにより、前記メモリドライブ装置の異常による機能停止を検出した場合に、前記第１のインタフェースにより、前記メモリドライブ装置を再起動させるドライブ制御部とを備える。
【選択図】図１【図１】
0006967639.tif 000002
【図２】
0006967639.tif 000003
【図３】
0006967639.tif 000004
【図４】
0006967639.tif 000005