(57)【特許請求の範囲】
【請求項１】
ホストとシリアルＡＴＡバスを介して接続される、シリアルＡＴＡインタフェースを持つ電子機器において、
前記ホストからの予め定められたコマンドの実行完了を前記ホストに報告する報告手段と、
前記報告手段による前記実行完了報告後にシリアルＡＴＡインタフェースのパワーセーブモードに移行する制御を行う制御手段とを具備し、
前記制御手段は、前記実行完了報告後、前記シリアルＡＴＡインタフェースのパワーセーブモードに移行するまでの移行時間を決定する決定手段を含み、前記実行完了報告後、前記決定された時間を待って前記シリアルＡＴＡインタフェースのパワーセーブモードに遷移させる
ことを特徴とするシリアルＡＴＡインタフェースを持つ電子機器。
【請求項２】
前記予め定められたコマンドが電子機器を第１のパワーセーブモードに設定することを指定するコマンドであり、
前記シリアルＡＴＡインタフェースのパワーセーブモードが前記第１のパワーセーブモードに対応付けられたシリアルＡＴＡインタフェースの第２のパワーセーブモードである
ことを特徴とする請求項１記載の電子機器。
【請求項３】
前記決定手段は、前記ホストからのコマンドの受信頻度から前記移行時間を決定することを特徴とする請求項１記載のシリアルＡＴＡインタフェースを持つ電子機器。
【請求項４】
前記ホストからのコマンドの受信時刻を表す受信時刻情報を記憶する手段と、
前記記憶手段に記憶されている受信時刻情報によって示されるコマンド受信時刻の系列から前記コマンドの受信頻度を算出する手段と
を更に具備することを特徴とする請求項３記載のシリアルＡＴＡインタフェースを持つ電子機器。
【請求項５】
前記第１のパワーセーブモードを指定するコマンドがＡＴＡインタフェース規格で定められたスリープコマンド、スタンバイコマンドまたはアイドルコマンドであり、
前記第２のパワーセーブモードがスランバモードまたはパーシャルモードである
ことを特徴とする請求項２記載のシリアルＡＴＡインタフェースを持つ電子機器。
【請求項６】
前記制御手段による前記制御に基づいて、前記ホスト側がシリアルＡＴＡインタフェースのパワーセーブ機能をサポートしているか否かを検出する手段と、
前記検出結果を示すフラグ情報を記憶する手段とを更に具備し、
前記制御手段は、前記制御の前に前記フラグ情報を参照し、当該フラグ情報により前記ホスト側が前記シリアルＡＴＡインタフェースのパワーセーブ機能をサポートしていないことが検出された場合、前記制御を控えることを特徴とする請求項１記載のシリアルＡＴＡインタフェースを持つ電子機器。
【請求項７】
前記シリアルＡＴＡインタフェースがアイドルモード、またはパワーセーブモードの１つであるパーシャルモードに移行する毎に予め設定された一定時間を計測するための時間計測を開始する計測手段と、
前記計測手段により前記一定時間が計測されているときに前記ホストからのコマンドが受信されなかった場合に、前記シリアルＡＴＡインタフェースを、前記アイドルモードまたはパーシャルモードから、それぞれパーシャルモードまたはスランバモードに移行する移行手段と
を更に具備することを特徴とする請求項１記載のシリアルＡＴＡインタフェースを持つ電子機器。
【請求項８】
前記電子機器はディスクドライブを備える
ことを特徴とする請求項１乃至７のいずれかに記載のシリアルＡＴＡインタフェースを持つ電子機器。
【請求項９】
ホストとシリアルＡＴＡバスを介して接続される、シリアルＡＴＡインタフェースを持つ電子機器に設けられたコントローラにおいて、
前記ホストからの予め定められたコマンドの実行完了を前記ホストに報告する報告手段と、
前記コマンドの実行完了報告後にシリアルＡＴＡインタフェースのパワーセーブモードに移行する制御を行う制御手段とを具備し、
前記制御手段は、前記実行完了報告後、前記シリアルＡＴＡインタフェースのパワーセーブモードに移行するまでの移行時間を決定する決定手段を含み、前記実行完了報告後、前記決定された時間を待って前記シリアルＡＴＡインタフェースのパワーセーブモードに遷移させる
ことを特徴とするコントローラ。
【請求項１０】
前記請求項２に記載の電子機器と、
前記電子機器を利用するホストと、
前記電子機器と前記ホストが接続されるシリアルＡＴＡバスと
を具備することを特徴とする情報機器。
【請求項１１】
前記第１のパワーセーブモードを指定するコマンドがＡＴＡインタフェース規格で定められたスリープコマンド、スタンバイコマンドまたはアイドルコマンドであり、
前記第２のパワーセーブモードがスランバモードまたはパーシャルモードである
ことを特徴とする請求項１０記載の情報機器。
【請求項１２】
ホストとシリアルＡＴＡバスを介して接続される、シリアルＡＴＡインタフェースを持つ電子機器におけるシリアルＡＴＡバスのパワーセーブ方法であって、
前記ホストからの予め定められたコマンドの実行完了を前記ホストに報告するステップと、
前記予め定められたコマンドの実行完了が前記ホストに報告されてから前記シリアルＡＴＡインタフェースのパワーセーブモードに移行するまでの移行時間を予め決定するステップと、
前記実行完了報告後、前記決定された時間を待って前記シリアルＡＴＡインタフェースのパワーセーブモードに移行するステップと
を具備することを特徴とするシリアルＡＴＡバスのパワーセーブ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルＡＴＡ（AT Attachment）インタフェースを持つ電子機器に係り、特にシリアルＡＴＡインタフェースの規格に準拠したシリアルＡＴＡバスのパワーセーブに好適な、ディスクドライブに代表される電子機器に関する。
【背景技術】
【０００２】
現在、ディスクドライブの新インタフェースであるシリアルＡＴＡインタフェースの規格が策定中である。シリアルＡＴＡインタフェースは、従来のＡＴＡインタフェース（つまりパラレルＡＴＡインタフェース）と同様に、磁気ディスクドライブに代表される周辺機器とホストシステム（ホスト）との間のインタフェースとして用いられる。
【０００３】
シリアルＡＴＡインタフェースを持つ周辺機器、例えば磁気ディスクドライブ（以下、ＨＤＤと称する）は、ホストとシリアルＡＴＡバスにより接続される。このようなＨＤＤでは、従来のＡＴＡインタフェースとの互換性を確保するために、従来のＡＴＡインタフェースをシリアルＡＴＡインタフェースに、そしてシリアルＡＴＡインタフェースを従来のＡＴＡインタフェースに、それぞれ変換する必要がある。このようなインタフェース変換は、例えばシリアルＡＴＡブリッジと呼ばれるＬＳＩ（ブリッジＬＳＩ）で行われる。
【０００４】
シリアルＡＴＡ規格では、機能別に３つの層、つまりＰＨＹ（Physcal Layer）層（物理層）、ＬＩＮＫ層（リンク層）及びトランスポート（Transport）層が定義されている。ＰＨＹ層は高速の信号送受信を実行する機能を持つ部分であり、受信内容を解釈してＬＩＮＫ層に伝達し、またＬＩＮＫ層からの要求に応じて信号の出力を実施する。ＬＩＮＫ層はＴｒａｎｓｐｏｒｔ層（トランスポート層）からの要求内容に応じてＰＨＹ層に信号出力の要求を出し、またＰＨＹ層からの受信入力をＴｒａｎｓｐｏｒｔ層へ伝達する。Ｔｒａｎｓｐｏｒｔ層は従来のＡＴＡ規格における動作への変換を行う。このＴｒａｎｓｐｏｒｔ層の役割は、従来のＡＴＡ接続の場合と比較すると、ブリッジＬＳＩが磁気ディスクドライブに用いられたとき、ホスト側のＡＴＡ信号出力を行う部分に相当する。このブリッジＬＳＩとＨＤＤ内のディスクコントローラ（ＨＤＣ）との間は、従来のＡＴＡインタフェース規格に準拠したＡＴＡバス（またはそれに準じたバス）で接続される。このためブリッジＬＳＩとＨＤＤ内のＨＤＣとの間の接続部分は、従来のＡＴＡインタフェース規格と同等の、またはそれに準じた動作となる。このように、シリアルＡＴＡインタフェースにおいては、論理的コマンド等のプロトコルについては従来のＡＴＡ規格との互換性を有する一方、従来パラレルで接続されていた部分がシリアル信号に変換される。
【０００５】
シリアルＡＴＡインタフェースでは、従来のＡＴＡインタフェース（つまりパラレルＡＴＡインタフェース）の規格に準拠したパワーセーブの状態（モード）の他に、周辺機器とホストとを接続するシリアルＡＴＡバス自体を対象としてパワーセーブする状態が定義されている。このシリアルＡＴＡバス自体のパワーをセーブするという概念は従来のＡＴＡ規格では存在しない。
【０００６】
シリアルＡＴＡインタフェースの規格では、シリアルＡＴＡインタフェースの電力管理モードとして、“ＰＨＹ  ＲＥＡＤＹ（ＩＤＬＥ）”，“ＰＡＲＴＩＡＬ（パーシャル）”及び“ＳＬＵＭＢＥＲ（スランバ）”の３種類が定義されている。“ＰＨＹ  ＲＥＡＤＹ”モードとは、ＰＨＹ層の動作を実現する回路（ＰＨＹ回路）と主ＰＬＬ（Phase-Locked Loop）回路とが動作し、ホスト側及び周辺機器側の各々のインタフェース状態が同期している状態をいう。“ＰＡＲＴＩＡＬ”及び“ＳＬＵＭＢＥＲ”モードとは、ＰＨＹ回路は動作しているが、インタフェース信号は中立になっている状態をいう。
【０００７】
“ＰＡＲＴＩＡＬ”及び“ＳＬＵＭＢＥＲ”モードの定義上の違いは、それらのモードから“ＰＨＹ  ＲＥＡＤＹ（ＩＤＬＥ）”モードへの復帰時間にある。即ち、“ＰＡＲＴＩＡＬ”モードでは、当該モードからの復帰時間は１０μｓを超えてはならないと定義されている。これに対し、“ＳＬＵＭＢＥＲ”モードでは、当該モードからの復帰時間は１０ｍｓを超えてはならないと定義されている。“ＰＡＲＴＩＡＬ”または“ＳＬＵＭＢＥＲ”モードで、機器内のどの部分の省電力機能を動作させるか（つまり、どの回路の電源を遮断するか）は、復帰時間、インタフェースの電源状態を遵守している限り製造者側で任意に規定できる。
【０００８】
従来のＡＴＡインタフェース規格に準拠したパワーセーブ（つまりＡＴＡパワーセーブ）の状態への遷移は、基本的には、ホスト側の主導により実現される。このＡＴＡパワーセーブの状態として、“ＩＤＬＥ（アイドル）”，“ＳＴＡＮＤＢＹ（スタンバイ）”及び“ＳＬＥＥＰ（スリープ）”等が定義されている。これに対し、シリアルＡＴＡインタフェース規格に準拠したシリアルＡＴＡバス自体のパワーセーブ（つまりシリアルＡＴＡパワーセーブ）の状態（“ＰＡＲＴＩＡＬ”または“ＳＬＵＭＢＥＲ”）への遷移は、ホスト側または周辺機器側のどちらの主導によって実現されても構わない。しかし、シリアルＡＴＡパワーセーブの状態を制御する技術（特にＡＴＡパワーセーブの状態にシリアルＡＴＡパワーセーブの状態を連携させる技術）に関しては、シリアルＡＴＡインタフェースの規格が策定中であることから、従来は何も知られておらず、文献も存在しない。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記したように、ＨＤＤのインタフェースにシリアルＡＴＡインタフェースを適用して当該ＨＤＤをシリアルＡＴＡバスによりホストと接続する場合、ＨＤＤには、従来のＡＴＡインタフェースをシリアルＡＴＡインタフェースに変換するシリアルＡＴＡインタフェース制御回路回路（シリアルＡＴＡブリッジ）を設ける必要がある。このようなＨＤＤでは、シリアルＡＴＡインタフェース制御回路とＨＤＤのディスクコントローラ（ＨＤＣ）との接続部分の動作は、従来のＡＴＡインタフェース規格と同等、またはそれに準じた動作となる。このため、ディスクコントローラからは、シリアルＡＴＡブリッジが、命令を発行するホストであるかのように認識される。よって、ＨＤＤにおけるシリアルＡＴＡブリッジ周辺を除く部分の動作は従来のＨＤＤと変わらない。このシリアルＡＴＡインタフェースを適用するＨＤＤでは、シリアルＡＴＡインタフェース制御回路とディスクコントローラ（ＨＤＣ）とを接続する従来のＡＴＡバスは、当該ＨＤＤにおける印刷配線基板（ＰＣＢ）上に実現可能であることから、ＡＴＡバスの配線長が短縮される。このため、シリアルＡＴＡインタフェースを適用するＨＤＤでは、従来のＡＴＡバスで実現が難しかったデータ転送速度の向上が期待される。
【００１０】
さて、シリアルＡＴＡインタフェースは、従来のＡＴＡ規格との互換性を確保することを前提として検討されている規格である。このため、シリアルＡＴＡインタフェースで規定されている新たなパワーセーブの概念を実現するには、その旨の指示を行うための新たな手段をホスト側に設ける必要がある。しかし、新たな手段を適用することにより、従来のＡＴＡ規格から逸脱する虞がある。特に、新たな手段をホスト側に設けることはシステム全体への影響が大きい。
【００１１】
本発明は上記事情を考慮してなされたものでその目的は、シリアルＡＴＡ規格で定義されたシリアルＡＴＡバスのパワーセーブ機能を有効に活用して消費電力を低減できる、シリアルＡＴＡインタフェースを持つ電子機器を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の１つの観点によれば、シリアルＡＴＡインタフェースを持つ電子機器が提供される。この電子機器は、予め定められたコマンドの発行または受信を検知する手段と、この検知手段によって検知されたコマンドの実行完了を確認する手段と、この確認手段によるコマンド実行完了確認に応じてシリアルＡＴＡインタフェースのパワーセーブモードに移行する制御を行う手段とを備えることを特徴とする。
【００１３】
このような構成の電子機器においては、予め定められたコマンドの発行または受信が検知された場合に、当該コマンドの実行完了が確認されたことに応じて、シリアルＡＴＡインタフェース（シリアルＡＴＡバス）のパワーセーブモードへの移行が制御される。これにより、上記予め定められたコマンドとして、例えばＡＴＡインタフェースのパワーセーブ系のコマンドであるスリープコマンドのように、リード／ライトモードへの復帰に時間がかかるコマンドが定義されるならば、当該コマンドの発行または受信が検知された場合に、シリアルＡＴＡバスもパワーセーブモードに移行される。この結果、消費電力を低減できる。つまり本発明によれば、シリアルＡＴＡ規格で定義されたシリアルＡＴＡバスのパワーセーブ機能を、従来のＡＴＡ規格との互換性を維持しながら有効に活用して消費電力を低減できる。
【００１４】
ここで、シリアルＡＴＡインタフェースのパワーセーブモードへの移行制御を、シリアルＡＴＡインタフェースとＡＴＡインタフェースとの間のインタフェース変換を行うシリアルＡＴＡインタフェース制御回路で自律的に行わせることも可能である。そのため、シリアルＡＴＡインタフェース制御回路に、次の各手段、即ちインタフェース変換の対象となるコマンドの受信に応じてシリアルＡＴＡインタフェースのアイドルモードに移行する毎に予め設定された一定時間を計測するための時間計測を開始する計測手段と、この計測手段により上記一定時間が計測されても新たなコマンドが受信されなかった場合に、シリアルＡＴＡインタフェースの所定のパワーセーブモードに移行する手段とを持たせると良い。
【００１５】
また、上記電子機器がホストとシリアルＡＴＡバスを介して接続されるディスクドライブである場合には、当該ディスクドライブに、次の各手段、即ちホストからのコマンドの実行完了を当該コマンドの発行元に報告するための手段と、この報告手段による予め定められたコマンドの実行完了報告後にシリアルＡＴＡインタフェースのパワーセーブモードに移行する制御を行う手段とを持たせると良い。また、予め定められたコマンドとして、ＡＴＡインタフェースのパワーセーブ系のコマンドを定義するならば、シリアルＡＴＡ規格で定義されたシリアルＡＴＡバスのパワーセーブ機能を、従来のＡＴＡ規格との互換性を維持しながら有効に活用して、ディスクドライブでの消費電力を低減できる。このため、上記ディスクドライブを記憶装置として用いるホスト、例えば電池で駆動されるノートブック型のパーソナルコンピュータの稼働可能時間を延ばすことができる。
【００１６】
さて、上記予め定められたコマンドの実行完了報告後にシリアルＡＴＡインタフェースのパワーセーブモードに直ちに移行すると、その移行直後にホストからコマンドが発行された場合、リード／ライトコマンドが実行可能なリード／ライトモード（アクティブモード）に復帰（遷移）するのに時間を要する。例えば、スピンドルモータが完全に停止したかをディスクドライブに問い合わせるのに用いられるチェックパワーモードコマンドは、ＡＴＡインタフェースのパワーセーブ系のコマンドの実行完了報告直後に発行される可能性が高い。そこで、コマンドの実行完了報告後、ホストからのコマンドの受信頻度から決定される時間が経過するのを待ってシリアルＡＴＡインタフェースのパワーセーブモードに移行する構成とすると良い。この受信頻度は、ホストからのコマンドの受信時刻を表す受信時刻情報を記憶手段に記憶し、当該記憶手段に記憶されている受信時刻情報によって示されるコマンド受信時刻の系列から算出すれば良い。
【００１７】
また、シリアルＡＴＡインタフェースのパワーセーブモードに移行可能とするためには、ディスクドライブ側だけでなくホスト側でもシリアルＡＴＡインタフェースのパワーセーブ機能をサポートしている必要がある。そこで上記ディスクドライブに、上記制御手段によるシリアルＡＴＡインタフェースのパワーセーブモードへの移行制御の結果をもとに、ホスト側が当該シリアルＡＴＡインタフェースのパワーセーブ機能をサポートしているか否かを判定する手段と、この判定手段による判定結果を示すフラグ情報を記憶する手段とを追加し、上記フラグ情報によりホスト側がシリアルＡＴＡインタフェースのパワーセーブ機能をサポートしていないことが示されている場合、当該シリアルＡＴＡインタフェースのパワーセーブモードへの移行制御が抑止される構成とすると良い。このような構成においては、ホスト側がシリアルＡＴＡインタフェースのパワーセーブ機能をサポートしていないにも拘わらずに、ディスクドライブ側から無用なシリアルＡＴＡインタフェースのパワーセーブモードへの移行制御が行われるのを防止できる。これにより、シリアルＡＴＡバスでの無駄な状態遷移を発生させず当該シリアルＡＴＡバスを安定した状態に保つことができる。
【発明の効果】
【００１８】
本発明によれば、予め定められたコマンドの発行または受信が検知された場合に、当該コマンドの実行完了が確認されたことに応じて、シリアルＡＴＡインタフェース（シリアルＡＴＡバス）のパワーセーブモードへの移行が制御される構成とすることにより、シリアルＡＴＡ規格で定義されたシリアルＡＴＡバスのパワーセーブ機能を有効に活用して消費電力を低減できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る磁気ディスクドライブ（ＨＤＤ）１０を備えたシステムの構成を示すブロック図。
【図２】図１中のＨＤＤ１０に含まれているＨＤＤ本体１１の構成を示すブロック図。
【図３】同実施形態で適用されるＡＴＡパワーセーブモードの状態遷移を示す図。
【図４】図３中の各ＡＴＡパワーセーブモードと当該各ＡＴＡパワーセーブモードにおけるＨＤＤ本体１１内の各回路の電源ＯＦＦ状態との対応関係を示す図。
【図５】図３中の各ＡＴＡパワーセーブモード（Ｍ１〜Ｍ５）からリード／ライトモードＭ０に復帰するのに要する時間の一例を示す図。
【図６】図３中の各ＡＴＡパワーセーブモードと、ＨＤＤ１０が当該モードに設定された場合に設定されるＳＡＴＡパワーセーブモードとの関係を示す図。
【図７】ＨＤＤ１０内のＨＤＤ本体１１においてホスト２０からのコマンドを受信した場合に行われるパワー制御の手順を示すフローチャート。
【図８】同実施形態の変形例で適用されるＳＡＴＡパワーセーブモードの状態遷移を示す図。
【発明を実施するための形態】
【００２０】
以下、本発明をシリアルＡＴＡインタフェース（以下、ＳＡＴＡインタフェースと称する）を持つ磁気ディスクドライブを備えたシステムに適用した一実施形態につき図面を参照して説明する。図１は本発明の一実施形態に係る磁気ディスクドライブ（以下、ＨＤＤと称する）１０を備えたシステムの構成を示すブロック図である。ＨＤＤ１０は、従来から知られている、ＡＴＡインタフェースを用いてパラレルデータ転送を行うＨＤＤの構成であるＨＤＤ本体１１に加えて、ＳＡＴＡインタフェース制御回路１２を備えている。ＳＡＴＡインタフェース制御回路１２は、ＨＤＤ本体１１とＡＴＡバス（パラレルＡＴＡバス）１３を介して接続されると共に、ホスト（ホストシステム）２０とＳＡＴＡバス（シリアルＡＴＡバス）３０を介して接続される周辺機器用のＳＡＴＡブリッジである。ＳＡＴＡインタフェース制御回路１２は、ＡＴＡインタフェースとＳＡＴＡインタフェースとの間のインタフェース変換を行う例えば１チップのＬＳＩ（Large Scale Integlated Circuit）である。ＳＡＴＡインタフェース制御回路１２は特に、ＳＡＴＡバス３０を介して与えられた指示をＡＴＡバス１３（ＡＴＡインタフェース）の信号規則に変換し、当該ＡＴＡバス１３を介してＨＤＤ本体１１に送信する機能を有する。
【００２１】
ホスト２０はＨＤＤ１０を記憶装置として利用する電子機器であり、例えばパーソナルコンピュータである。ホスト２０は、従来から知られている、ＡＴＡインタフェースを用いてパラレルデータ転送を行うホストの構成であるホスト本体２１に加えて、ＳＡＴＡインタフェース制御回路２２を備えている。ＳＡＴＡインタフェース制御回路２２は、ホスト本体２１とＡＴＡバス（パラレルＡＴＡバス）２３を介して接続されると共に、ＨＤＤ１０とＳＡＴＡバス（シリアルＡＴＡバス）３０を介して接続される、ＡＴＡバス接続のホスト型ブリッジである。ＳＡＴＡインタフェース制御回路２２は、ＨＤＤ１０内のＳＡＴＡインタフェース制御回路１２と同様に、ＡＴＡインタフェースとＳＡＴＡインタフェースとの間のインタフェース変換を行う１チップのＬＳＩである。ＳＡＴＡインタフェース制御回路２２は特に、ホスト２０側のＡＴＡバス２３を介して与えられた指示をＳＡＴＡバス３０（ＳＡＴＡインタフェース）の信号規則に変換し、当該ＳＡＴＡバス３０を介してＨＤＤ１０に送信する機能を有する。
【００２２】
ＳＡＴＡインタフェース制御回路１２，２２は、それぞれ、物理層処理部１２１，２２１と、リンク／トランスポート層処理部１２２，２２２とを備えている。物理層処理部１２１，２２１は、ＳＡＴＡバス３０を介して高速のシリアルデータ転送（送受信）を実行する機能を有する。ここでのデータ転送速度は、１．５Ｇｂｐｓ（ギガビット／秒）である。物理層処理部１２１，２２１は、ＳＡＴＡバス３０から受信した内容を解釈してリンク／トランスポート層処理部１２２，２２２（中のリンク層処理部）に伝達する。また物理層処理部１２１，２２１は、リンク／トランスポート層処理部１２２，２２２（中のリンク層処理部）からの要求に応じてシリアルデータ信号を出力（送信）する。リンク／トランスポート層処理部１２２，２２２は、リンク層処理部とトランスポート層処理部（図示せず）とを備えている。リンク層処理部は、トランスポート層処理部からの要求内容に応じて物理層処理部１２１，２２１に信号出力の要求を出し、また物理層処理部１２１，２２１からの受信入力をトランスポート層処理部へ伝達する。トランスポート層処理部はＡＴＡインタフェースとＳＡＴＡインタフェースとの間のインタフェース変換を行う。
【００２３】
なお、ＡＴＡバス１３，２３に代えて、当該ＡＴＡバスに準じたバス、例えばＰＣＩバス（Peripheral Component Interconnect Bus）を用いることも可能である。この場合、ＳＡＴＡインタフェース制御回路１２，２２（を構成するＳＡＴＡブリッジ）をＰＣＩブリッジ内に設けることが可能である。また、ＳＡＴＡインタフェース制御回路１２，２２（を構成するＳＡＴＡブリッジ）には、ＳＡＴＡバス３０との間でシリアルＡＴＡインタフェースの信号を送受信する機能を持たせれば良い。
【００２４】
図２は、図１中のＨＤＤ本体１１の構成を示すブロック図である。ＨＤＤ本体１１は、記録媒体としてのディスク１１１を備えている。このディスク１１１の２つのディスク面の少なくとも一方のディスク面は、データが磁気記録される記録面をなしている。この記録面をなす、ディスク１１１の一方のディスク面に対応して、ヘッド（磁気ヘッド）１１２が配置されている。なお、図１では、作図の都合上、ヘッド１１２が１つであるＨＤＤ１０の例が示されている。しかし、一般には、ディスク１１１の２つのディスク面が共に記録面をなしており、各々のディスク面に対応してヘッドが配置される。また図１の構成では、単一枚のディスク１１１を備えたＨＤＤ１０を想定している。しかし、ディスク１１１が複数枚積層配置されたＨＤＤであっても構わない。
【００２５】
ディスク１１１はスピンドルモータ（以下、ＳＰＭと称する）１１３により高速に回転させられる。ヘッド１１２は、ディスク１１１へのデータ書き込み（データ記録）及びディスク１１１からのデータ読み出し（データ再生）に用いられる。ヘッド１１２は、アクチュエータ１１４の先端に取り付けられている。アクチュエータ１１４は、当該アクチュエータ１１４の駆動源となるボイスコイルモータ（以下、ＶＣＭと称する）１１５を有している。アクチュエータ１１４は、このＶＣＭ１１５により駆動されて、ヘッド１１２をディスク１１１の半径方向に移動する。これにより、ヘッド１１２は、目標トラック上に位置付けられる。ＳＰＭ１１３及びＶＣＭ１１５は、モータドライバＩＣ１１６からそれぞれ供給される駆動電流（ＳＰＭ電流及びＶＣＭ電流）により駆動される。モータドライバＩＣ１１６は、ＣＰＵ１２１から指定された量のＳＰＭ電流をＳＰＭ１１３に対して供給する。またモータドライバＩＣ１１６は、ＣＰＵ１２１から指定された量のＶＣＭ電流をＶＣＭ１１５に対して供給する。
【００２６】
ヘッド１１２はヘッドＩＣ（ヘッドアンプ回路）１１７と接続されている。ヘッドＩＣ１１７はヘッド１１２により読み出されたリード信号を増幅するリードアンプ、及びライトデータをライト電流に変換するライトアンプを含む。ヘッドＩＣ１１７は、リード／ライトＩＣ（リード／ライトチャネル）１１８と接続されている。リード／ライトＩＣ１１８は、リード信号に対するＡ／Ｄ（アナログ／デジタル）変換処理、ライトデータの符号化処理及びリードデータの復号化処理等の各種の信号処理を実行する信号処理デバイスである。リード／ライトＩＣ１１８はディスクコントローラ（以下、ＨＤＣと称する）１１９と接続されている。
【００２７】
ＨＤＣ１１９は当該ＨＤＣ１１９とディスク１１１との間のデータ転送を制御するディスク制御機能を有する。ＨＤＣ１１９はまた、ＡＴＡインタフェースを持つ。即ちＨＤＣ１１９は、ホスト２０との間で、ＡＴＡバス１３を介してコマンド（リード／ライトコマンド等）、及びデータをＡＴＡインタフェースにより送受信するＡＴＡインタフェース制御機能を有する。但し、ＨＤＤ１０がＳＡＴＡインタフェースを持つ本実施形態では、ＨＤＣ１１９は、従来のＨＤＤとは異なって、ＡＴＡバス１３を介してＳＡＴＡインタフェース制御回路１２と接続され、当該ＳＡＴＡインタフェース制御回路１２及びＳＡＴＡバス３０を介してホスト２０と接続されている。ＨＤＣ１１９はまた、バッアァＲＡＭ１２０を制御するバッファ制御機能を有する。ＨＤＣ１１９は、ＨＤＤ１０の状態をホスト２０に通知するためのステータスレジスタ１１９ａを含む。
【００２８】
バッファＲＡＭ１２０の記憶領域の一部は、ホスト２０とＨＤＤ１０内のＨＤＣ１１９との間で転送されるデータを一時格納するデータバッファのための領域に用いられる。バッアァＲＡＭ１２０の記憶領域の別の一部は、後述するＳＡＴＡパワーセーブ不可フラグＦを記憶するフラグ記憶領域１２０ａと、受信コマンドの受信時刻を表す時刻情報を記憶するコマンド受信時刻記憶領域１２０ｂとに用いられる。コマンド受信時刻記憶領域１２０ｂは最新の一定数の受信コマンドの受信時刻情報を記憶するリングバッファとして用いられる。
【００２９】
ＣＰＵ１３０は、制御プログラムが予め格納された図示せぬ不揮発性メモリ（例えば書き換えが可能な不揮発性メモリであるフラッシュＲＯＭ）を有している。ＣＰＵ１３０は、この不揮発性メモリに格納されている制御プログラムに従ってＨＤＤ１０内の各部を制御する。特にＣＰＵ１３０は、ＨＤＣ１１９によって受信されたホスト２０からのコマンドがＡＴＡインタフェースのパワーセーブモード（以下、ＡＴＡパワーセーブモードと称する）を指定する特定コマンド（ＡＴＡパワーセーブコマンド）の場合に、ＨＤＤ１０を当該コマンドで指定されたＡＴＡパワーセーブモードに設定する。またＣＰＵ１３０は、ＡＴＡパワーセーブモードの設定時に、そのモードに予め対応付けられたＳＡＴＡパワーセーブモードをＨＤＣ１１９、ＡＴＡバス１３を介してＳＡＴＡインタフェース制御回路１２によって設定させる。
【００３０】
図３は、本実施形態で適用されるＡＴＡパワーセーブモード（ＡＴＡインタフェース規格に準拠したパワーセーブの状態）の状態遷移を示す図である。本実施形態では、ＡＴＡパワーセーブモードとして、アクティブ・アイドルモードＭ１、パフォーマンス・アイドルモードＭ２、ローパワー・アイドルモードＭ３、スタンバイモードＭ４及びスリープモードＭ５の５種類が用意されている。また、ＡＴＡインタフェースのモードとして、これらのパワーセーブ系のモードＭ１〜Ｍ５の他に、リード／ライトコマンドが実行可能なリード／ライトモード（アクティブモード）Ｍ０が用意される。ここで、消費電力は、リード／ライトモードＭ０→アクティブ・アイドルモードＭ１→パフォーマンス・アイドルモードＭ２→ローパワー・アイドルモードＭ３→スタンバイモードＭ４→スリープモードＭ５の順に小さくなる。
【００３１】
ＨＤＤ１０（内のＨＤＤ本体１１）では、リード／ライトモードＭ０におけるリード／ライトコマンドに従うリード／ライトの実行が終了すると、当該ＨＤＤ１０での消費電力の節約のために、ＣＰＵ１３０の制御によってアクティブ・アイドルモードＭ１に遷移させられる。アクティブ・アイドルモードＭ１に遷移した後一定時間Ｔ１が経過してもホスト２０から新たなコマンドが送られなかった場合には、当該ＨＤＤ１０での消費電力の一層の節約のために、ＣＰＵ１３０の制御によってパフォーマンス・アイドルモードＭ２に自動的に遷移させられる。モードＭ１及びＭ２は、製造者側で任意に規定されたＡＴＡパワーセーブモードである。
【００３２】
パフォーマンス・アイドルモードＭ２に遷移した後一定時間Ｔ２が経過してもホスト２０から新たなコマンドが送られなかった場合には、当該ＨＤＤ１０での消費電力の一層の節約のために、ＣＰＵ１３０の制御によってローパワー・アイドルモードＭ３に遷移させられる。このモードＭ３は、ＡＴＡインタフェース規格の“ＩＤＬＥ（アイドル）”に相当する。このため、上記各モードＭ１，Ｍ２においてホスト２０からアイドルコマンドが送られた場合、ＨＤＤ１０のＡＴＡパワーセーブモードは、当該コマンドに従ってローパワー・アイドルモードＭ３に遷移される。同様に、上記各モードＭ１，Ｍ２，Ｍ３においてホスト２０からスタンバイコマンドが送られた場合、ＨＤＤ１０のＡＴＡパワーセーブモードは、当該コマンドに従ってスタンバイモードＭ４に遷移される。なお、スタンバイコマンドの一種に、スタンバイモードに遷移するまでの時間を指定可能なスタンバイ・イミーディエット（Standby Immediate）コマンドが知られている。スタンバイ・イミーディエットコマンドの場合には、当該コマンドで指定された時間後に、スタンバイモードＭ４に遷移される。また、上記各モードＭ１，Ｍ２，Ｍ３，Ｍ４においてホスト２０からスリープコマンドが送られた場合、ＨＤＤ１０のＡＴＡパワーセーブモードは、当該コマンドに従ってスリープモードＭ５に遷移される。また、上記各モードＭ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５においてホスト２０からリード／ライトコマンドが送られた場合、ＨＤＤ１０のＡＴＡパワーセーブモードは、当該コマンドに従ってリード／ライトモードＭ０に遷移される。
【００３３】
図４は、上記各モードＭ０〜Ｍ５と当該モードＭ０〜Ｍ５におけるＨＤＤ本体１１内の各回路の電源ＯＦＦ状態との対応関係を示す。リード／ライトモードＭ０では、ＨＤＤ本体１１内の各回路に、当該ＨＤＤ本体１１にてリード／ライト動作を即時に実行できるように電源が供給される。アクティブ・アイドルモードＭ１、パフォーマンス・アイドルモードＭ２及びローパワー・アイドルモードＭ３の各アイドルモードでは、ＨＤＤ本体１１内の一部の回路への電源供給が遮断（ＯＦＦ）される。アクティブ・アイドルモードＭ１では、ディスク１１１はＳＰＭ１１３により回転されており、ヘッド１１２は、サーボ制御によりディスク１１１上のあるトラックに位置決めされている。パフォーマンス・アイドルモードＭ２では、ディスク１１１はＳＰＭ１１３により回転されており、ヘッド１１２はサーボ制御されずにディスク１１１上の任意のトラック上に存在する。ローパワー・アイドルモードＭ３では、ディスク１１１はＳＰＭ１１３により回転されているが、ヘッド１１２はディスク１１１から外れた退避箇所に移動されている。このためアクティブ・アイドルモードＭ１ではリード／ライトＩＣ１１８内の一部の回路（ライトチャネル）への電源供給だけが遮断される。これに対し、パフォーマンス・アイドルモードＭ２ではモータドライバＩＣ１１６内の一部の回路（ＶＣＭドライバ）及びリード／ライトＩＣ１１８内の一部の回路への電源供給が遮断される。また、ローパワー・アイドルモードＭ３では、モータドライバＩＣ１１６内の一部の回路への電源供給が遮断されると共に、ヘッドＩＣ１１７及びリード／ライトＩＣ１１８への電源供給が遮断される。リード／ライトモードＭ０に復帰するまでの時間（つまり、リード／ライトを再び実行可能とするまでの復帰時間）は、上記各アイドルモードによって異なり、アクティブ・アイドルモードＭ１→パフォーマンス・アイドルモードＭ２→ローパワー・アイドルモードＭ３の順に長くなる。上記各アイドルモードで必要となる消費電力は、アクティブ・アイドルモードＭ１→パフォーマンス・アイドルモードＭ２→ローパワー・アイドルモードＭ３の順に小さくなり、復帰時間が長い方が小さい。
【００３４】
スタンバイモードＭ４では、ＳＰＭ１１３の回転は停止される。ここでは、ＳＰＭ１１３、モータドライバＩＣ１１６、ヘッドＩＣ１１７、リード／ライトＩＣ１１８及びバッアァＲＡＭ１２０への電源供給が遮断される。このため、スタンバイモードＭ４での消費電力は、ローパワー・アイドルモードＭ３よりも更に小さくなり、逆に復帰時間は長くなる。
【００３５】
スリープモードＭ５では、ＨＤＣ１１９内の一部の回路（リセット処理回路）だけに電源が供給されるだけで、殆どの回路への電源供給が遮断される。ここでは、リード／ライトモードＭ０への復帰はリセット動作によってのみ可能であり、復帰時間はスタンバイモードＭ４から復帰する場合と同程度である。スリープモードＭ５における消費電力は、上記各モードＭ０〜Ｍ５の中で最も小さい。
【００３６】
図５は、上記各モードＭ１〜Ｍ５からリード／ライトモードＭ０に復帰するのに要する時間の一例を示す。
【００３７】
図６は、上記モードＭ０〜Ｍ５と、ＨＤＤ１０が当該モードＭ０〜Ｍ５に設定された場合に、当該ＨＤＤ１０内のＣＰＵ１３０の制御によって設定されるＳＡＴＡパワーセーブモードとの関係を示す。図６の例では、ＡＴＡパワーセーブモード（ＡＴＡインタフェースモード）がリード／ライトモードＭ０の場合、ＳＡＴＡパワーセーブモード（ＳＡＴＡインタフェースモード）はアイドル（Ｉｄｌｅ）モードＭ１１に設定される。また、ＡＴＡパワーセーブモードがアクティブ・アイドルモードＭ１またはパフォーマンス・アイドルモードＭ２の場合、ＳＡＴＡパワーセーブモードはパーシャル（Ｐａｒｔｉａｌ）モードＭ１２に設定される。但し、パフォーマンス・アイドルモードＭ２はアクティブ・アイドルモードＭ１からしか遷移しないため、パフォーマンス・アイドルモードＭ２への遷移時には、パーシャルモードＭ１２が継続されることになる。また、ＡＴＡパワーセーブモードがローパワー・アイドルモードＭ３、スタンバイモードＭ４またはスリープモードＭ５の場合、ＳＡＴＡパワーセーブモードはスランバ（Ｓｌｕｍｂｅｒ）モードＭ１３に設定される。
【００３８】
次に、図１のシステムにおける動作を、ＨＤＤ１０内のＨＤＤ本体１１においてホスト２０からのコマンドを受信した場合に行われるパワー制御を例に、図７のフローチャートを参照して説明する。
【００３９】
今、ホスト２０のホスト本体２１からＡＴＡバス２３にＡＴＡインタフェース規格に準拠したＨＤＤ１０宛てのコマンドが送出されたものとする。このＡＴＡバス２３上のコマンドはホスト２０のＳＡＴＡインタフェース制御回路２２で受信される。ＳＡＴＡインタフェース制御回路２２のリンク／トランスポート層処理部２２２は、受信コマンドをＳＡＴＡインタフェース規格に準拠したコマンド（ＳＡＴＡバス３０の信号規則）に変換してＳＡＴＡバス３０に送出する。このＳＡＴＡバス３０上のコマンドはＨＤＤ１０のＳＡＴＡインタフェース制御回路１２で受信される。ＳＡＴＡインタフェース制御回路１２のリンク／トランスポート層処理部１２２は、受信コマンドをＡＴＡインタフェース規格に準拠したコマンド（ＡＴＡバス１３の信号規則）に変換してＡＴＡバス１３に送出する。このＡＴＡバス１３上のコマンドはＨＤＤ１０のＨＤＤ本体１１に設けられたＨＤＣ１１９で受信される。ＨＤＣ１１９からは、ＳＡＴＡインタフェース制御回路１２がホストとして認識される。ＨＤＣ１１９によって受信されたコマンドはＣＰＵ１３０に渡される。
【００４０】
ＣＰＵ１３０は、ＨＤＣ１１９から渡されたコマンドを受け取ると、当該コマンドの受信時刻を表すコマンド受信時刻情報をバッアァＲＡＭ１２０内のコマンド受信時刻記憶領域１２０ｂに格納する（ステップＳ１）。次にＣＰＵ１３０は、受信コマンドが予め定められたコマンドの１つであるか否かを判定する（ステップＳ２）。ここで、予め定められたコマンドは、パワーセーブに関係するコマンドであり、アイドルコマンド、スタンバイコマンド、及びスリープコマンドである。
【００４１】
受信コマンドが予め定められたコマンドの１つである場合、ＣＰＵ１３０は以下に述べる処理を実行する。まずＣＰＵ１３０は、受信コマンドを解釈して当該コマンドの指示する動作を実行する（ステップＳ３）。つまり、受信コマンドがアイドルコマンドである場合、ＣＰＵ１３０はＨＤＤ１０のＡＴＡパワーセーブモードをローパワー・アイドルモードＭ３に遷移させる。また、受信コマンドがスタンバイコマンドである場合、ＣＰＵ１３０はＨＤＤ１０のＡＴＡパワーセーブモードをスタンバイモードＭ４に遷移させる。また、受信コマンドがスリープコマンドである場合、ＣＰＵ１３０はＨＤＤ１０のＡＴＡパワーセーブモードをスリープモードＭ５に遷移させる。
【００４２】
ＣＰＵ１３０は、受信コマンドを実行し終えて、当該コマンドの実行完了を確認すると、当該コマンドの実行完了をホスト２０に報告するための処理を行う（ステップＳ４）。即ちＣＰＵ１３０は、コマンド実行完了を示す応答ステータスをステータスレジスタ１１９ａに設定して、ＡＴＡバス１３に割り込み信号を送出する。ＳＡＴＡインタフェース制御回路１２は、この割り込み信号に応じて、ＨＤＣ１１９内のステータスレジスタ１１９ａの内容をリードする。ＳＡＴＡインタフェース制御回路１２は、リードしたステータスレジスタ１１９ａの内容をもとに、ＳＡＴＡインタフェース規格に準拠したコマンド実行完了報告をＳＡＴＡバス３０を介してホスト２０に送出する。ホスト２０内のＳＡＴＡインタフェース制御回路２２は、ＳＡＴＡバス３０上のコマンド実行完了報告を受信すると、ホスト本体２１に対してＡＴＡバス２３を介して割り込み信号を送出する。ホスト本体２１は、この割り込み信号に応じてＳＡＴＡインタフェース制御回路２２からコマンド実行完了報告（コマンド完了応答）を受け取る。
【００４３】
さて本実施形態では、ホスト２０からＨＤＤ１０に送られたコマンドが、予め定められたコマンド、即ちパワーセーブに関係するコマンドの１つである場合、ＣＰＵ１３０はＳＡＴＡインタフェース制御回路１２に対し、ＳＡＴＡパワーセーブモードの制御（つまりＡＴＡバス１３のパワー制御）を実行する。ここでは、アイドルコマンド、スタンバイコマンド、またはスリープコマンドの場合、いずれもスランバモードＭ１３に遷移するように制御される。
【００４４】
ＣＰＵ１３０によるＳＡＴＡパワーセーブモードの制御は、ＳＡＴＡインタフェース規格に準拠したＳＡＴＡパワーセーブモードを指定する信号パターンが設定されたプリミティブをＡＴＡバス１３を介してＳＡＴＡインタフェース制御回路１２のリンク／トランスポート層処理部１２２（に含まれているリンク処理部）に送信することにより実現される。なお、ＳＡＴＡインタフェース制御回路１２内にＳＡＴＡパワーセーブモードの制御のための制御レジスタを設け、当該レジスタをＣＰＵ１３０から制御することにより、ＳＡＴＡバス３０を目的のＳＡＴＡパワーセーブモードに遷移させても良い。
【００４５】
本実施形態では以下に示す理由により、ＡＴＡパワーセーブに関係するコマンドの実行完了の報告（コマンド完了応答）後、対応するＳＡＴＡパワーセーブモードに直ちに遷移させる構成を適用していない。まず、コマンド実行完了報告後に、ＳＡＴＡバス３０を即時にスランバモードＭ１３に遷移させると、当該スランバモードＭ１３の定義から、コマンドの応答に対して最大１０ｍｓの復帰時間を要する。ここで、ホスト２０がスタンバイコマンド、例えばスタンバイ・イミーディエットコマンドをＨＤＤ１０に対して発行し、しかる後にチェックパワーモードコマンドを用いてＨＤＤ１０内のＳＰＭ１１３の停止を確実に監視しようという場合を想定する。この場合、スタンバイ・イミーディエットコマンドの実行完了報告（コマンド完了応答）後、ＳＡＴＡパワーセーブモードを即時にスランバモードＭ１３に移行してしまうと、引き続くチェックパワーモードコマンドに対する完了応答の速度が低下してしまう。このため本実施形態では、コマンド完了応答後にＳＡＴＡバス３０を無条件で即時にスランバモードＭ１３に遷移させることはしない。
【００４６】
このことについて、更に詳細に説明する。まず、スタンバイ・イミーディエットコマンドの終了時点で即時にスランバモードＭ１３に遷移した場合に、その直後にホスト２０がＨＤＤ１０に対してチェックパワーモードコマンドを発行したものとする。この場合、チェックパワーモードコマンドの発行時点には、ＳＡＴＡバス３０は既にスランバモードＭ１３移行している。この状態でＳＡＴＡバス３０を通してホスト２０からＨＤＤ１０のＨＤＣ１１９にコマンドが伝達されるためには、当該ＳＡＴＡバス３０が通信可能な状態、つまりアイドルモードＭ１１に復帰されなければならない。このとき、ホスト２０内のＳＡＴＡインタフェース制御回路２２では、チェックパワーモードコマンドに応じて、ＳＡＴＡインタフェースの状態遷移規則に従って復帰手順が実施される。この場合、ホスト２０では、チェックパワーモードコマンドの完了応答が、ＳＡＴＡバス３０の復帰時間だけ遅くなったように認識される。
【００４７】
さて、ホスト２０から発行されたコマンド（チェックパワーモードコマンド）は、当該コマンドの発行に応じて、ＳＡＴＡバス３０の状態がスランバモードＭ１３（パワーセーブ状態）からアイドルモードＭ１１に復帰し、ホスト２０とＨＤＤ１０との間の交信が可能となった後にＨＤＤ１０に到達する。そして、ＳＡＴＡインタフェース制御回路１２のリンク／トランスポート層処理部１２２（に含まれているトランスポート層処理部）が作動して、ＨＤＤ１０内のＨＤＣ１１９に対してコマンドを発行する。このため、ホスト２０から発行されたコマンドは、ＳＡＴＡバス３０の復帰時間だけ遅れてＨＤＤ１０内のＨＤＣ１１９に到達する。しかし、ＨＤＣ１１９は、その遅れを認識できない。
【００４８】
そこで本実施形態では、ＨＤＤ１０内のＣＰＵ１３０は、ＳＡＴＡパワーセーブモードを制御しようとする場合、まずバッアァＲＡＭ１２０のコマンド受信時刻記憶領域１２０ｂに記憶されているコマンド受信時刻情報の示す例えば一定個数のコマンド受信時刻の系列から、コマンドの受信頻度を算出する（ステップＳ７）。ここで、コマンド受信頻度には、例えばコマンド受信時刻系列で示されるコマンド受信時間間隔の平均値、或いは最も確率の高いコマンド受信時間間隔を用いることができる。なお、一定個数のコマンド受信時刻の系列に代えて、現在時刻を基準とする一定時間内に受信されたコマンド受信時刻の系列を用いても構わない。
【００４９】
ＣＰＵ１３０は、算出されたコマンド受信頻度（コマンド受信時間間隔）から、今回受信したコマンドで決まるＳＡＴＡパワーセーブモードに遷移するタイミングを決定し、そのタイミングが到来するのを待って、当該ＳＡＴＡパワーセーブモードへの遷移を制御する（ステップＳ８）。ここでは、算出されたコマンド受信頻度、つまりコマンド受信時間間隔をＴcとすると、ＣＰＵ１３０は時間Ｔcを待っても次のコマンドがＨＤＣ１１９で受信されなかった場合に、ＳＡＴＡバス３０を、今回受信したコマンドで決まるＳＡＴＡパワーセーブモードにＳＡＴＡインタフェース制御回路１２によって遷移させる（ステップＳ９）。これにより、ＡＴＡパワーセーブ系のコマンドの実行時に、当該コマンドで決まるＳＡＴＡパワーセーブモードへの遷移を制御しても、ホスト２０から次のコマンドが送られた場合に、当該次のコマンドに対する完了応答が遅れることを防止できる。
【００５０】
なお、ＡＴＡパワーセーブ系のコマンドの後にホスト２０からＨＤＤ１０にチェックパワーモードコマンドが発行される可能性が高いことを考慮して、ＡＴＡパワーセーブ系のコマンドの完了応答後に、ＣＰＵ１３０がＳＰＭ１１３の停止状態を確認し、その確認時点から予め定められた一定時間後にスランバモードＭ１３への遷移を制御するようにしても、次のコマンドに対する完了応答が遅れることを防止できる。また、ＳＰＭ１１３の再起動を必要としないコマンドを最も最近に受信した時点から一定時間後にスランバモードＭ１３への遷移を制御するようにしても良い。また本実施形態では、ホスト２０からのＡＴＡパワーセーブ系のコマンドが、アイドルコマンド、スタンバイコマンドコマンドまたはスリープコマンドのいずれの場合にも、ＳＡＴＡパワーセーブモードをスランバモードＭ１３としている。しかし、コマンドの種類、或いはＳＡＴＡインタフェース制御回路１２の構成（アイドルモードＭ１１に復帰する能力）によっては、より短時間で復帰できるパーシャルモードＭ１２に遷移するようにしても良い。
【００５１】
さて本実施形態では、ＨＤＤ１０における消費電力を低減するために、図３に示すように、ホスト２０からのＡＴＡパワーセーブ系のコマンドとは別に、ＨＤＤ１０内部で自律的にＡＴＡパワーセーブモードの遷移が行われる構成が適用されている。つまり、ＨＤＤ１０内のＣＰＵ１３０は、リード／ライトモードＭ０でのリード／ライト実行が終了すると、直ちにリード／ライトモードＭ０からアクティブ・アイドルモードＭ１に遷移させる。またアクティブ・アイドルモードＭ１への遷移後、一定時間Ｔ１を経過してもホスト２０から新たなコマンドが送られなかった場合には、ＨＤＤ１０内のＣＰＵ１３０はアクティブ・アイドルモードＭ１からパフォーマンス・アイドルモードＭ２に遷移させる。またパフォーマンス・アイドルモードＭ２への遷移後、一定時間Ｔ２を経過してもホスト２０から新たなコマンドが送られなかった場合には、ＣＰＵ１３０はパフォーマンス・アイドルモードＭ２からローパワー・アイドルモードＭ３に遷移させる。ここで、上記時間Ｔ１，Ｔ２を、先に述べたコマンド受信頻度（コマンド受信時間間隔）から、例えば一定周期で動的に変更すると良い。
【００５２】
本実施形態では、このＨＤＤ１０内部でのＣＰＵ１３０の制御による自律的なＡＴＡパワーセーブモードの遷移時に、図３に示すように、その遷移に連動してＳＡＴＡパワーセーブモードも遷移させている。具体的には、リード／ライトモードＭ０からアクティブ・アイドルモードＭ１への遷移時に、アイドルモードＭ１１からパーシャルモードＭ１２に遷移される。また、アクティブ・アイドルモードＭ１からパフォーマンス・アイドルモードＭ２に遷移した場合には、パーシャルモードＭ１２が継続される。また、パフォーマンス・アイドルモードＭ２からローパワー・アイドルモードＭ３の遷移時には、パーシャルモードＭ１２からスランバモードＭ１３に遷移される。ローパワー・アイドルモードＭ３では、ヘッド１１２はディスク１１１から外れた退避箇所に移動される。ＨＤＤ１０が、この状態になると、その後ホスト２０からリード／ライトコマンドが与えられた場合に、リード／ライトモードＭ０に復帰するにのに要する時間は３０ms以上（図６参照）と比較的長い。そこで、このような場合に、本実施形態のようにＳＡＴＡバス３０をスランバモードＭ１３に設定してＳＡＴＡバス３０（ＳＡＴＡインタフェース）での消費電力を抑えることは有効である。
【００５３】
ホスト２０からＨＤＤ１０へのアクセスは時系列的に集中、或いは分散の傾向がある。例えばコマンド受信時間間隔が非常に短い状態が続いた後に、一定時間を超えてコマンドが受信されないことがある。このような場合、ＣＰＵ１３０が、ホスト２０におけるアプリケーションの実行が終了したものと推定して、比較的短時間で消費電力を下げるＡＴＡパワーセーブモードに設定すると良い。また、コマンド受信時間間隔は比較的長いものの、その状態が長時間続く場合、つまり継続してＨＤＤ１０がアクセスされる場合には、ＣＰＵ１３０が消費電力を下げる状態にするまでの時間が比較的長いＡＴＡパワーセーブモードに設定すると良い。ここでも、これらのＳＡＴＡパワーセーブモードと連動してＳＡＴＡパワーセーブモードを制御すると良い。
【００５４】
また、本実施形態では、ＳＡＴＡパワーセーブモード（ＳＡＴＡバス３０のパワーセーブ）がＨＤＤ１０内のＣＰＵ１３０によって制御される。しかし、この制御が、ＳＡＴＡインタフェース制御回路１２によって行われる構成とすることも可能である。図８は、ＳＡＴＡインタフェース制御回路１２によってＳＡＴＡパワーセーブモードが制御される場合の状態遷移を示す。今、ホスト２０からのコマンドがＳＡＴＡインタフェース制御回路１２で受信された結果、ＳＡＴＡバス３０がアイドルモードＭ１１に遷移（復帰）したものとする。このアイドルモードＭ１１への遷移時点から一定時間Ｔを経過しても新たなコマンドがホスト２０から送られなかった場合、ＳＡＴＡインタフェース制御回路１２は、ＳＡＴＡバス３０をアイドルモードＭ１１からパーシャルモードＭ１２に遷移させる制御を行う。このパーシャルモードＭ１２への遷移時点から一定時間Ｔを経過しても新たなコマンドがホスト２０から送られなかった場合、ＳＡＴＡインタフェース制御回路１２は、ＳＡＴＡバス３０をパーシャルモードＭ１２からスランバモードＭ１３に遷移させる制御を行う。このスランバモードＭ１３は、新たなコマンドがホスト２０から送られるまで継続される。ここで、一定時間Ｔは、タイマ（時間計測手段）を用いて計測すれば良い。なお、アイドルモードＭ１１からパーシャルモードＭ１２に遷移した場合、新たなコマンドがホスト２０から送られるまで当該パーシャルモードＭ１２が継続される構成としても良い。またアイドルモードＭ１１から直接スランバモードＭ１３に遷移させる構成とすることも可能である。また、このＳＡＴＡインタフェース制御回路１２によるＳＡＴＡパワーセーブモード制御機能を、ＨＤＤ１０内のＨＤＣ１１９に持たせることも可能である。
【００５５】
本実施形態では、ＳＡＴＡパワーセーブモードの制御（ＳＡＴＡバス３０のパワーセーブ）がＨＤＤ１０側から（つまりＨＤＤ１０の主導により）行われる。このＳＡＴＡパワーセーブモードの制御のためには、ＨＤＤ１０側のＳＡＴＡインタフェース制御回路１２だけでなく、ホスト２０側のＳＡＴＡインタフェース制御回路２２も共にＳＡＴＡパワーセーブモードに対応していること（つまりＳＡＴＡパワーセーブ機能をサポートしていること）が必要となる。もし、ＳＡＴＡインタフェース制御回路２２がＳＡＴＡパワーセーブモード（パーシャルモードＭ１２及びスランバモードＭ１３の各モード）に対応していない場合、指示されたＳＡＴＡパワーセーブモードへの遷移は不可能となる。この状態については、ＳＡＴＡバスにより相互接続されたＳＡＴＡインタフェース制御回路（本実施形態では、ＳＡＴＡインタフェース制御回路１２及び２２）相互の動作で知ることができる方法が、ＳＡＴＡインタフェース規格で定義されている。今、ＨＤＤ１０がＳＡＴＡバス３０を介して接続されているホスト２０が、スランバモードＭ１３に対応していない（ＳＡＴＡインタフェース制御回路２２を含む）ものとする。この場合、ＨＤＤ１０側からスランバモードＭ１３への移行指示（を表すパターンを含むプリミティブ）がホスト２０に発行される都度、当該ホスト２０（内のＳＡＴＡインタフェース制御回路２２）からはスランバモードＭ１３への移行不能の応答が返される。このように、ＨＤＤ１０がＳＡＴＡバス３０を介して接続されているホスト２０がＳＡＴＡパワーセーブモードに対応していない場合、ＨＤＤ１０側からホスト２０に対してＳＡＴＡパワーセーブモードへの移行指示を発行しても、ホスト２０からは常に移行不能の応答が返されるだけであり、ＳＡＴＡパワーセーブモードの制御は失敗する。つまり、ＨＤＤ１０がＳＡＴＡパワーセーブモードに対応していないホスト２０とＳＡＴＡバス３０を介して接続されている場合、ＨＤＤ１０がＳＡＴＡパワーセーブモードの制御を実行することは無駄である。
【００５６】
そこで本実施形態では、ホスト２０から指示されたＳＡＴＡパワーセーブモードへの移行不能の応答が返された場合、つまりＳＡＴＡパワーセーブモードの制御に失敗した場合、ＨＤＤ１０内のＣＰＵ１３０は、バッアァＲＡＭ１２０内のフラグ記憶領域１２０ａに記憶されているＳＡＴＡパワーセーブ不可フラグＦをＯＮ状態にする（ステップＳ９，Ｓ１０）。これにより、次にＳＡＴＡパワーセーブモードの制御が必要となった場合、ＣＰＵ１３０はＳＡＴＡパワーセーブ不可フラグＦの状態を参照することで、ＳＡＴＡパワーセーブが不可であるか否かを判定することができる（ステップＳ５，Ｓ６）。ＳＡＴＡパワーセーブ不可フラグＦがＯＮ状態にある場合、ＣＰＵ１３０はＳＡＴＡパワーセーブが不可であると判定する。この場合、ＣＰＵ１３０はＳＡＴＡパワーセーブモードの制御の実行（ステップＳ７，Ｓ８）を控える。これにより、ホスト２０のＳＡＴＡインタフェース制御回路２２がＳＡＴＡパワーセーブモードに対応していないにも拘わらずに、不要なＳＡＴＡパワーセーブモードの状態遷移のための制御が行われることを防止でき、シリアルＡＴＡバス３０の動作を安定させることができる。
【００５７】
ＨＤＤ１０及びホスト２０の双方がＳＡＴＡパワーセーブモードに対応している場合、ホスト２０側から（つまりホスト２０の主導により）ＳＡＴＡパワーセーブモードを制御することも可能である。しかし、ＨＤＤ１０内では、ホスト２０からのＡＴＡパワーセーブ系のコマンドとは別に自律的にＡＴＡパワーセーブモードへの状態遷移が行われている。したがって、このＨＤＤ１０内のＡＴＡパワーセーブモードに無関係にホスト２０側からＳＡＴＡバス３０のＳＡＴＡパワーセーブモードを制御するよりも、上記実施形態のようにＨＤＤ１０内のＡＴＡパワーセーブモードに連動させてＨＤＤ１０側からＳＡＴＡバス３０のＳＡＴＡパワーセーブモードを制御する方が、ＨＤＤ１０内のＡＴＡパワーセーブモードに適したＳＡＴＡパワーセーブモードを設定することができる。
【００５８】
上記実施形態では、本発明をＨＤＤ（磁気ディスクドライブ）を備えたシステムに適用した場合について説明した。しかし本発明は、光ディスクドライブ、光磁気ディスクドライブなどＨＤＤ以外のディスクドライブを備えたシステム、更にはディスクドライブ以外の電子機器を備えたシステムでも、ＳＡＴＡインタフェースを持つ電子機器を備えたシステムであれば、適用可能である。
【００５９】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【符号の説明】
【００６０】
１０…ＨＤＤ（磁気ディスクドライブ、電子機器）、１１…ＨＤＤ本体、１２，２２…ＳＡＴＡインタフェース制御回路（シリアルＡＴＡインタフェース制御回路）、１３，２３…ＡＴＡバス、２０…ホスト、２１…ホスト本体、３０…ＳＡＴＡバス（シリアルＡＴＡバス）、１１１…ディスク、１１２…ヘッド、１１３…ＳＰＭ（スピンドルモータ）、１１６…モータドライバ、１１７…ヘッドＩＣ、１１８…リード／ライトＩＣ、１１９…ＨＤＣ（ディスクコントローラ）、１１９ａ…ステータスレジスタ、１２０…バッアァＲＡＭ、１２０ａ…フラグ記憶領域、１２０ｂ…コマンド受信時刻記憶領域、１３０…ＣＰＵ。
【図１】
0004410298.tif 000002
【図２】
0004410298.tif 000003
【図３】
0004410298.tif 000004
【図４】
0004410298.tif 000005
【図５】
0004410298.tif 000006
【図６】
0004410298.tif 000007
【図７】
0004410298.tif 000008
【図８】
0004410298.tif 000009