(57)【要約】【課題】シリアルＡＴＡインタフェースのパワーマネージメント制御において、ホストとデバイスとの間の通信がデッドロック状態に陥ることを回避すること。【解決手段】デバイス１０のシリアルＡＴＡインタフェース制御部１２は、ホスト２０にパワーマネージメント要求（ＰＭＲＥＱ４０２）を送信し、ホストから返された応答に応じてシリアルＡＴＡバス３０をパワーセーブモードへ切り替える。そして、ホストにＰＭＲＥＱ４０２を送信後、所定時間Ｔ０を経過してもホストから応答がなく、ホストからのパワーマネージメント要求（ＰＭＲＥＱ４０１）を受信し続ける場合、ホストへのＰＭＲＥＱ４０２の送信を止めるとともに、ホストからのＰＭＲＥＱ４０１を否定する応答（ＰＭＮＡＫ４０３）を返す。【選択図】図４
2010055230.tif 000002
【特許請求の範囲】
【請求項１】
シリアルＡＴＡインタフェースを持ち、シリアルＡＴＡバスを介してホストと通信可能な電子機器であって、
上記シリアルＡＴＡバスに対しパワーセーブモードへの切り替えを制御するシリアルＡＴＡインタフェース制御部と、
時間を計測するタイマと、
制御プログラムに従い当該電子機器の各部を制御するＣＰＵとを備え、
上記シリアルＡＴＡインタフェース制御部は、上記シリアルＡＴＡバスを介して上記ホストにパワーマネージメント要求（ＰＭＲＥＱ１）を送信し、該ホストから返された応答（ＰＭＡＣＫまたはＰＭＮＡＫ）に応じて上記シリアルＡＴＡバスをパワーセーブモードへ切り替えるものであって、
上記シリアルＡＴＡバスを介して上記ホストにパワーマネージメント要求（ＰＭＲＥＱ１）を送信後、上記タイマにより計測した時間が所定時間を経過しても上記ホストから応答がなく、該ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）を受信し続ける場合、上記ホストへの要求（ＰＭＲＥＱ１）の送信を止めるとともに、上記ホストからの要求（ＰＭＲＥＱ２）を否定する応答（ＰＭＮＡＫ）を返し、上記シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させることを特徴とする電子機器。
【請求項２】
シリアルＡＴＡインタフェースを持ち、シリアルＡＴＡバスを介してホストと通信可能な電子機器であって、
上記シリアルＡＴＡバスに対しパワーセーブモードへの切り替えを制御するシリアルＡＴＡインタフェース制御部と、
制御プログラムに従い当該電子機器の各部を制御するＣＰＵとを備え、
上記シリアルＡＴＡインタフェース制御部は、上記ホストから、当該電子機器からのパワーマネージメント要求機能（ＤＩＰＭ）を有効にさせるためのＳＥＴ＿ＦＥＡＴＵＲＥＳコマンドを受信すると、当該電子機器のパワーマネージメント要求機能（ＤＩＰＭ）を有効にするともに、上記ホストからのパワーマネージメント要求機能（ＨＩＰＭ）を無効に設定し、上記ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）に対し常に否定する応答（ＰＭＮＡＫ）を返し、上記シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させることを特徴とする電子機器。
【請求項３】
シリアルＡＴＡインタフェースを持つ電子機器とホストを接続するシリアルＡＴＡバスのパワーマネージメント方法であって、
上記電子機器は、上記シリアルＡＴＡバスを介して上記ホストにパワーマネージメント要求（ＰＭＲＥＱ１）を送信し、該ホストから返された応答（ＰＭＡＣＫまたはＰＭＮＡＫ）に応じて上記シリアルＡＴＡバスをパワーセーブモードへ切り替えるステップと、
上記電子機器が上記要求（ＰＭＲＥＱ１）を送信後、所定時間を経過しても上記ホストから応答がなく、該ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）を受信し続ける場合、当該電子機器は、上記ホストへの要求（ＰＭＲＥＱ１）の送信を止めるとともに、上記ホストからの要求（ＰＭＲＥＱ２）を否定する応答（ＰＭＮＡＫ）を返し、上記シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させるステップと、
を備えることを特徴とするシリアルＡＴＡバスのパワーマネージメント方法。
【請求項４】
シリアルＡＴＡインタフェースを持つ電子機器とホストを接続するシリアルＡＴＡバスのパワーマネージメント方法であって、
上記ホストは上記電子機器に対して、該電子機器からのパワーマネージメント要求機能（ＤＩＰＭ）を有効にさせるためのＳＥＴ＿ＦＥＡＴＵＲＥＳコマンドを送信するステップと、
上記電子機器は受信したコマンドに従い、当該電子機器のパワーマネージメント要求機能（ＤＩＰＭ）を有効にするともに、上記ホストからのパワーマネージメント要求機能（ＨＩＰＭ）を無効に設定するステップと、
上記電子機器は、上記ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）に対し常に否定する応答（ＰＭＮＡＫ）を返し、上記シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させるステップと、
を備えることを特徴とするシリアルＡＴＡバスのパワーマネージメント方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルＡＴＡ（ＡＴ  Ａｔａｃｈｍｅｎｔ）インタフェースを持つ電子機器におけるパワーマネージメント方法に関するものである。
【背景技術】
【０００２】
従来のパラレル伝送方式に代えて、シリアル伝送方式によるＡＴＡインタフェースの規格が制定され、ハードディスク装置や光ディスク装置などの電子機器（以下、デバイス）に採用されている。シリアルＡＴＡ方式によれば、ホストとデバイスの間のデータ通信速度を向上させ、デバイスを好適に制御することができる。
【０００３】
シリアルＡＴＡのフロー制御はプリミティブと呼ばれるデータで実行するが、ホストとデバイスの間でプリミティブが常に送受信されている。シリアルＡＴＡの規格には、このプリミティブの送受信（通信）を一時的に止めるパワーマネージメントの機能が存在し、これによりシリアルＡＴＡバスを対象にパワーセーブすることができる。
【０００４】
パワーマネージメントのエントリー方法は２種類有り、ホスト側からパワーマネージメント要求を出す方法（ＨＩＰＭ：Host initiated power management）と、デバイス側からパワーマネージメント要求を出す方法（ＤＩＰＭ：Device initiated power management）が存在する。その際、パワーマネージメントの要求側はＰＭＲＥＱ＿Ｐ、またはＰＭＲＥＱ＿Ｓと呼ばれるプリミティブを送信する。ここにシリアルＡＴＡの規格では、通常の通信可能な非パワーセーブモード（通常の消費電力）としてのアイドル（ＩＤＬＥ）状態と、通信を停止して消費電力を抑えるパワーセーブモードがある。パワーセーブモードには、消費電流と通信復帰時間の違いによりパーシャル（ＰＡＲＴＩＡＬ）とスランバ（ＳＬＵＭＢＥＲ）の２種類の状態が定義されている。ＩＤＬＥからＰＡＲＴＩＡＬへの移行を要求する場合はＰＭＲＥＱ＿Ｐプリミティブを、ＩＤＬＥからＳＬＵＭＢＥＲへの移行を要求する場合はＰＭＲＥＱ＿Ｓプリミティブを使用する。以下、簡単のために、これらの要求をまとめてＰＭＲＥＱとして説明する。ＰＭＲＥＱを受信した相手は、パワーマネージメントの準備が出来たことを意味するＰＭＡＣＫプリミティブ（肯定応答）、または、パワーマネージメントの準備が出来ていないことを意味するＰＭＮＡＫプリミティブ（否定応答）を返す。要求側は、相手からＰＭＡＣＫが返ってきた場合は通信を停止しパワーセーブモードへ移行し、ＰＭＮＡＫが返ってきた場合は通信を継続する。
【０００５】
シリアルＡＴＡを対象としたパワーセーブ技術に関して、次のような提案がなされている。
特許文献１には、シリアルＡＴＡバスを持つ電子機器において、送信すべきデータを直ちに送信することが不可能であると判定し、且つそのデータを予め定められた時間内に準備できないことが予想される場合、シリアルＡＴＡバスをパワーセーブモードに切り替えることが開示される。これにより、データ送信時に、データの送信順部が整うまでの間、シリアルＡＴＡバスをパワーセーブモードに設定することで、消費電力を効果的に低減できると述べられている。
【０００６】
また特許文献２には、シリアルＡＴＡバスによる伝送にて、ホストからのシステム・クロック停止を含むパワーセーブモードへの移行要求に対して、ドライブ側はクロックに拠らない制御信号によりホストがモード移行要求を行うことへの承認要求を送信することが開示される。そして、ホストから承認を受信した場合、ドライブ側はシステム・クロック停止を含むパワーセーブモードに移行することが開示される。これにより、クロック停止した場合であっても、ホストからドライブにシリアルデータ通信によるモード移行要求を送信することができると述べられている。
【０００７】
【特許文献１】特開２００５−１９０２０２号公報
【特許文献２】特開２００６−９９６６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記したように、シリアルＡＴＡ方式におけるパワーマネージメントのエントリー方法として、ホスト側から要求を送信する場合（ＨＩＰＭ）と、デバイス側から要求を送信する場合（ＤＩＰＭ）とが存在する。そして、ＨＩＰＭとＤＩＰＭの両方を使用する場合、ホストとデバイスからのそれぞれの要求（ＰＭＲＥＱ）の送信が重なる状態（コンフリクト状態）が考えられる。規格では、ホストとデバイスのＰＭＲＥＱが重なった場合は、ホストがＰＭＲＥＱの送信を止めてデバイスへ応答（ＰＭＡＣＫかＰＭＮＡＫ）を返すことでこれを回避することになっている。
【０００９】
しかしながら、ホストがパワーマネージメントの規格に沿った機能を備えていない場合や、機能を備えていても何らかの不具合（タイミングずれなどの要因を含む）があって回避処理が正常になされない場合、ホストとデバイスは互いにＰＭＲＥＱを出し続けて互いに応答（ＰＭＡＣＫかＰＭＮＡＫ）を待ち続けることになる。その結果、シリアルＡＴＡのプロトコルがデッドロック状態に陥ってしまい、ホストがハングアップしその後の動作が不能になる。
【００１０】
前記特許文献１や特許文献２には、ホストとデバイスのパワーマネージメント要求が重なり、デッドロック状態に陥る場合については何ら考慮されていない。
【００１１】
本発明の目的は、シリアルＡＴＡインタフェースのパワーマネージメント制御において、ホストとデバイスとの間の通信がデッドロック状態に陥ることを回避し、快適にパワーマネージメント制御を行う電子機器及びパワーマネージメント方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の電子機器は、シリアルＡＴＡインタフェースを持ち、シリアルＡＴＡバスを介してホストと通信可能な電子機器であって、シリアルＡＴＡバスに対しパワーセーブモードへの切り替えを制御するシリアルＡＴＡインタフェース制御部と、時間を計測するタイマと、制御プログラムに従い当該電子機器の各部を制御するＣＰＵとを備える。
【００１３】
シリアルＡＴＡインタフェース制御部は、シリアルＡＴＡバスを介してホストにパワーマネージメント要求（ＰＭＲＥＱ１）を送信し、ホストから返された応答（ＰＭＡＣＫまたはＰＭＮＡＫ）に応じてシリアルＡＴＡバスをパワーセーブモードへ切り替えるものである。そして、シリアルＡＴＡバスを介してホストにパワーマネージメント要求（ＰＭＲＥＱ１）を送信後、タイマにより計測した時間が所定時間を経過してもホストから応答がなく、ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）を受信し続ける場合、ホストへの要求（ＰＭＲＥＱ１）の送信を止めるとともに、ホストからの要求（ＰＭＲＥＱ２）を否定する応答（ＰＭＮＡＫ）を返し、シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させる。
【００１４】
また本発明の電子機器は、シリアルＡＴＡインタフェース制御部とＣＰＵとを備える。シリアルＡＴＡインタフェース制御部は、ホストから、当該電子機器からのパワーマネージメント要求機能（ＤＩＰＭ）を有効にさせるためのＳＥＴ＿ＦＥＡＴＵＲＥＳコマンドを受信すると、当該電子機器のパワーマネージメント要求機能（ＤＩＰＭ）を有効にするともに、ホストからのパワーマネージメント要求機能（ＨＩＰＭ）を無効に設定する。そして、ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）に対し常に否定する応答（ＰＭＮＡＫ）を返し、シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させる。
【００１５】
本発明は、シリアルＡＴＡインタフェースを持つ電子機器とホストを接続するシリアルＡＴＡバスのパワーマネージメント方法であって、電子機器は、シリアルＡＴＡバスを介してホストにパワーマネージメント要求（ＰＭＲＥＱ１）を送信し、ホストから返された応答（ＰＭＡＣＫまたはＰＭＮＡＫ）に応じてシリアルＡＴＡバスをパワーセーブモードへ切り替えるステップと、電子機器が上記要求（ＰＭＲＥＱ１）を送信後、所定時間を経過してもホストから応答がなく、ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）を受信し続ける場合、当該電子機器は、ホストへの要求（ＰＭＲＥＱ１）の送信を止めるとともに、ホストからの要求（ＰＭＲＥＱ２）を否定する応答（ＰＭＮＡＫ）を返し、シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させるステップとを備える。
【００１６】
また本発明のパワーマネージメント方法は、ホストは電子機器に対して、該電子機器からのパワーマネージメント要求機能（ＤＩＰＭ）を有効にさせるためのＳＥＴ＿ＦＥＡＴＵＲＥＳコマンドを送信するステップと、電子機器は受信したコマンドに従い、当該電子機器のパワーマネージメント要求機能（ＤＩＰＭ）を有効にするともに、ホストからのパワーマネージメント要求機能（ＨＩＰＭ）を無効に設定するステップと、電子機器は、ホストからのパワーマネージメント要求（ＰＭＲＥＱ２）に対し常に否定する応答（ＰＭＮＡＫ）を返し、シリアルＡＴＡバスをパワーセーブモードへ切り替えずに通信を継続させるステップとを備える。
【発明の効果】
【００１７】
本発明によれば、ホストに何らかの不具合がある場合でも、ホストとデバイスとの間の通信がデッドロック状態に陥ることを回避し、快適にパワーマネージメント制御を行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて説明する。
【実施例１】
【００１９】
図１は、本発明の一実施例にかかる電子機器を備えたシステムの構成を示す図である。本実施例のシステムは、デバイス側の電子機器が光ディスク装置１０、ホスト側の電子機器がパソコン２０の場合であり、両者をシリアルＡＴＡバス３０を介して接続している。光ディスク装置１０とパソコン２０はシリアルＡＴＡインタフェースを持つとともに、シリアルＡＴＡバス３０上のデータの送受信を一時的に止めてパワーセーブするパワーマネージメントの機能を持つ。
【００２０】
デバイス側の光ディスク装置１０は、装置全体の制御を行うＣＰＵ１１、制御プログラムなどを格納するフラッシュＲＯＭ１３、光ディスクに対して情報を記録または再生するディスク記録再生部１４、時間を計測するタイマ１５、およびシリアルＡＴＡバス３０に接続しホスト２０との間で通信を行うためのシリアルＡＴＡインタフェース制御回路１２を有する。なお、記録再生用の光ヘッドや光ディスクを駆動するモータなどの機構系は省略している。ここで、フラッシュＲＯＭ１３が格納するプログラムには、パワーマネージメント制御の際にデッドロック状態を回避するための制御プログラムが含まれ、タイマ１５はデッドロック状態などの継続時間を計測する。
【００２１】
ホスト側のパソコン２０は、光ディスク装置１０の動作を制御するＣＰＵ２１と、シリアルＡＴＡバス３０に接続し光ディスク装置１０との間で通信を行うためのシリアルＡＴＡインタフェース制御回路２２を有する。ここにＣＰＵ２１においても、シリアルＡＴＡのパワーマネージメント制御の機能を有することは言うまでもない。光ディスク装置１０とパソコン２０を接続するシリアルＡＴＡバス３０には、コマンドやデータなどのプリミティブ（送信信号Ｔｘ、受信信号Ｒｘ）が流れる。
【００２２】
図２は、シリアルＡＴＡのパワーマネージメント動作の基本的なシーケンスを説明する図である。（ａ）はホスト（パソコン）２０からパワーマネージメント要求を送る場合（ＨＩＰＭ）で、（ｂ）はデバイス（光ディスク装置）１０からパワーマネージメント要求を送る場合（ＤＩＰＭ）である。
【００２３】
例えば（ａ）のＨＩＰＭの場合、ホスト２０とデバイス１０はアイドル状態でプリミティブ（データ）を通信中である。そして、ホストからデバイスに対してパワーマネージメント要求ＰＭＲＥＱ（ＰＭＲＥＱ＿ＰまたはＰＭＲＥＱ＿Ｓ）２０１を送信したとする。送信後のホストは、デバイスからの応答（ＰＭＡＣＫまたはＰＭＮＡＫ）待ちの状態に入る。一方デバイスは、ホストからＰＭＲＥＱ２０１を受信すると、デバイスのパワーマネージメントの準備状況に応じて応答を送信する。ここでは、ＰＭＡＣＫ（肯定応答）２０２を送信したとする。デバイスはＰＭＡＣＫ２０２を送信するとパワーセーブ状態に切り替え通信を停止する。一方ホストも、ＰＭＡＣＫ２０２を受信するとパワーセーブ状態に切り替え通信を停止する。このようにして、ホストとデバイスの両方は、ホストが要求したパワーセーブモードに移行する。もし、デバイスの応答がＰＭＮＡＫ（否定応答）であれば、パワーセーブモードに切り替えずにそのまま通信を継続する。なお、パワーセーブモードからアイドル状態に復帰するときは、復帰要求の信号（ＣＯＭＷＡＫＥ）を送信する。
【００２４】
（ｂ）のＤＩＰＭの場合も同様で、デバイスからパワーマネージメント要求ＰＭＲＥＱ２０３を送信し、ホストからＰＭＡＣＫ２０４の応答を返すことで、両者はデバイスの要求したパワーセーブモードに移行し、通信を停止する。
【００２５】
図３は、従来のパワーマネージメント動作で生じるデッドロック状態を説明する図である。これは、ホスト（パソコン）２０からのパワーマネージメント要求とデバイス（光ディスク装置）１０からのパワーマネージメント要求とが重なった場合（コンフリクト状態）に生じる。
【００２６】
ホスト２０はパワーマネージメント要求ＰＭＲＥＱ３０１を送信し、相手（デバイス）からの応答待ち状態に入る。一方デバイス１０もパワーマネージメント要求ＰＭＲＥＱ３０２を送信し、相手（ホスト）からの応答待ち状態に入る。これらが同じタイミングで実行されると、両者は互いに相手からの応答を待ち続ける状態、すなわちデッドロック状態に陥ることになる。このような場合、規格では、ホスト側がＰＭＲＥＱ３０１の送信を止めてデバイスへＰＭＡＣＫまたはＰＭＮＡＫの応答３０３を返すことで、デッドロック状態を回避することになっている。
【００２７】
しかしながら、ホストがパワーマネージメントの規格に沿った機能を備えていない場合や、機能を備えていても何らかの不具合（応答タイミングずれなどの要因を含む）があって正常な応答３０３を返すことができない場合には、デッドロック状態から脱出することができない。
【００２８】
図４は、本実施例におけるデッドロック状態からの回避方法を説明する図である。前記図３のように、ホスト２０とデバイス１０からのパワーマネージメント要求が重なり、かつホスト２０がこれを回避するための応答を返さない場合には、デッドロック状態が継続する。このような場合には、デバイス１０側においてホスト２０に対するＰＭＲＥＱの送信を止めてＰＭＮＡＫの応答を返し、デッドロック状態から脱出させるようにした。
【００２９】
図４において、ホスト２０からのパワーマネージメント要求ＰＭＲＥＱ４０１とデバイス１０からのパワーマネージメント要求ＰＭＲＥＱ４０２とが重なり、両者は互いに相手からの応答を待ち続けるデッドロック状態に入っている。このときホストには何らかの不具合が発生して、これを回避するための応答３０３（図３）を返すことができず、ＰＭＲＥＱ４０１を送信し続けている。
【００３０】
このデッドロック状態が所定時間Ｔ０継続した場合、デバイスはＰＭＲＥＱ４０２の送信を止めてホストへＰＭＮＡＫ（否定応答）４０３を返す。ここで、デバイスがＰＭＲＥＱ４０２を送信した場合、ホストからの応答の待ち時間は正常な場合約０．４μｓｅｃ程度である。よって、上記所定時間Ｔ０をこれよりも大きい例えば１ｓｅｃ程度に設定すれば、ホストの異常を判別することができる。ホストはＰＭＮＡＫ４０３を受信すると、パワーセーブモードへの切り替えを止めてアイドル状態にて通信を継続する。またデバイスもアイドル状態にて通信を継続する。
このようにホストに何らかの不具合であっても、デバイス側の応答処理によりデッドロック状態から脱出することができる。
【００３１】
図５は、デバイスにおけるデッドロック状態の回避方法を示すフローチャートである。
Ｓ５０１で、デバイス１０はタイマ１５をスタートさせる。Ｓ５０２で、ホスト２０に対してパワーマネージメント要求ＰＭＲＥＱ４０２を送信する。送信後、ホスト２０からの応答を待ちながら、次の項目についてチェックする。Ｓ５０３では、ホスト２０からＰＭＡＣＫ（肯定応答）を受信したかどうかを判定し、これを受信していればＳ５０４に進み通信を止める（パワーセーブ状態に移行する）。Ｓ５０５では、ホスト２０からＰＭＮＡＫ（否定応答）を受信したかどうかを判定し、これを受信していればＳ５０６に進み通信をそのまま継続する（非パワーセーブ状態）。
【００３２】
Ｓ５０７では、ホスト２０からパワーマネージメント要求ＰＭＲＥＱ４０１を受信したかどうかを判定する。これを受信していればＳ５０８に進み、タイマ１５が所定時間Ｔ０経過したかどうか判定する。所定時間Ｔ０が経過していればデッドロック状態と判断し、Ｓ５０９に進み、ホストに対してＰＭＲＥＱ４０２の送信を止めてＰＭＮＡＫ（否定応答）４０３を送信する。これにより、デッドロック状態から脱出してホストとデバイスの通信を継続する。上記判定（Ｓ５０３，Ｓ５０５，Ｓ５０７）においていずれも受信せず、またＳ５０８にて所定時間Ｔ０未満の場合は、Ｓ５０３に戻りホストからの受信チェックを繰り返す。
【００３３】
このように、デバイスがＰＭＲＥＱを送信してから所定時間Ｔ０が経過してもホストからＰＭＲＥＱを受信し続ける場合は、ホストの不具合と判定し、デバイスはＰＭＲＥＱの送信を止めてＰＭＮＡＫを返し、デッドロック状態から脱出することができる。
【実施例２】
【００３４】
次に、前記実施例１の処理をより簡単に実行するための実施例２を述べる。
本実施例は、デバイスからのパワーマネージメント要求機能（ＤＩＰＭ）が有効にされた場合は、ホストからの要求機能（ＨＩＰＭ）を無効にするように設定することで、ＰＭＲＥＱが重なった場合の処理を簡略化するものである。
【００３５】
図６は、従来のパワーマネージメント要求の設定とデッドロック状態を説明する図である。ホスト２０はデバイス１０にＳＥＴ＿ＦＥＡＴＵＲＥＳ６０１というコマンドを送り、デバイス１０からホスト２０へ向けたパワーマネージメント要求機能ＤＩＰＭを有効にさせる。すると、ホスト２０とデバイス１０のいずれからもパワーマネージメント要求ＰＭＲＥＱを送信することができる。そして、これらの要求ＰＭＲＥＱ６０２，６０３が重なると、両者は互いに相手からの応答を待ち続ける状態、すなわちデッドロック状態に陥ることになる。この場合、ホスト２０が規格に従って回避処理を行わないと、デッドロック状態が継続してしまう。
【００３６】
図７は、本実施例におけるデッドロック状態からの回避方法を説明する図である。
ホスト２０からデバイス１０にＳＥＴ＿ＦＥＡＴＵＲＥＳ７０１というコマンドを送ると、デバイス１０からホスト２０へ向けたパワーマネージメント要求機能ＤＩＰＭが有効になる。そのときデバイス１０は、ホストからのパワーマネージメント要求機能ＨＩＰＭを無効にするように設定する。ここでＨＩＰＭを無効にするとは、ホストからパワーマネージメント要求ＰＭＲＥＱを受けた場合に、常にＰＭＮＡＫ（否定応答）を返すように設定することである。
【００３７】
ホスト２０とデバイス１０の両者からのパワーマネージメント要求ＰＭＲＥＱ７０２，７０３が重なると、両者は一旦互いに相手からの応答を待ち続ける状態に移行する。そのときデバイス１０は、ホスト２０からＰＭＲＥＱ７０２を受けているので、設定に従い直ちにＰＭＮＡＫ（否定応答）７０４を返す。ホスト２０はＰＭＮＡＫ７０４を受けると、応答待ちを止めてアイドル状態に戻し通信を継続する。
【００３８】
このようにホストに不具合があっても、デバイス側の回避処理によりデッドロック状態から脱出することができる。そしてこの回避処理は、ホストからの応答を待たずに実行するので、デッドロック状態からの回避を迅速に実行することができる。
【００３９】
図８は、デバイスにおけるデッドロック状態の回避方法を示すフローチャートである。
Ｓ８０１で、デバイス１０はホスト２０からＡＴＡコマンドを受信する。Ｓ８０２で、受信したコマンドが「ＳＥＴ＿ＦＥＡＴＵＲＥＳ」であるかどうかを判定する。Ｙｅｓの場合は、Ｓ８０３で、そのコマンドがＤＩＰＭを有効（Ｅｎａｂｌｅ）にするものであるかどうかを判定する。Ｙｅｓの場合は、Ｓ８０４でデバイスのＤＩＰＭ機能を有効にする。
【００４０】
さらにＳ８０５で、デバイスのＨＩＰＭ機能を無効にする。すなわち、ホストからＰＭＲＥＱを受けても常にＰＭＮＡＫを返すように設定する。Ｓ８０２，Ｓ８０３でのコマンド判定が他のコマンドであれば、Ｓ８０６，Ｓ８０７にてそれらに対する処理を行う。
【００４１】
この処理により、デバイス側において、デバイスからホストへの要求機能ＤＩＰＭを有効に設定するとともに、ホストからデバイスへの要求機能ＨＩＰＭを無効に設定することができる。この設定により、両者からのパワーマネージメント要求ＰＭＲＥＱが重なった場合でも排他的な処理が実現し、デッドロック状態を迅速に回避することができる。
【００４２】
本実施例の処理は、ホストからデバイスへの要求機能ＨＩＰＭを無効に設定するものであるが、無効にするかどうかをユーザが選択できることが望ましい。また、前記実施例１の処理と組合わせて、ホストの機能に不具合があると判定した場合に、それ以後の処理において、ホストからの要求機能ＨＩＰＭを無効とするように設定することもできる。
【００４３】
上記実施例では、ホストとしてパソコン、デバイスとして光ディスク装置を例にあげて説明したが、シリアルＡＴＡを適用できる電子機器であれば、本発明はどの機器にも適用できることは言うまでもない。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施例にかかる電子機器を備えたシステムの構成を示す図。
【図２】パワーマネージメント動作の基本的なシーケンスを説明する図。
【図３】従来のパワーマネージメント動作で生じるデッドロック状態を説明する図。
【図４】実施例１におけるデッドロック状態からの回避方法を説明する図。
【図５】デバイスにおけるデッドロック状態の回避方法を示すフローチャート。
【図６】従来のパワーマネージメント要求の設定とデッドロック状態を説明する図。
【図７】実施例２におけるデッドロック状態からの回避方法を説明する図。
【図８】デバイスにおけるデッドロック状態の回避方法を示すフローチャート。
【符号の説明】
【００４５】
１０…光ディスク装置（デバイス）
１１…ＣＰＵ
１２…シリアルＡＴＡインタフェース制御回路
１３…フラッシュＲＯＭ
１４…ディスク記録再生部
１５…タイマ
２０…パソコン（ホスト）
２１…ＣＰＵ
２２…シリアルＡＴＡインタフェース制御回路
３０…シリアルＡＴＡバス。
【図１】
2010055230.tif 000003
【図２】
2010055230.tif 000004
【図３】
2010055230.tif 000005
【図４】
2010055230.tif 000006
【図５】
2010055230.tif 000007
【図６】
2010055230.tif 000008
【図７】
2010055230.tif 000009
【図８】
2010055230.tif 000010