(57)【要約】【課題】パワーダウンモードによる低消費電力化とパワーダウンモード中における適正な処理を両立できるデータ転送制御装置及び電子機器を提供すること。【解決手段】データ転送制御装置は、ＰＡＴＡバスに接続されるＰＡＴＡＩ／Ｆ１０と、ＳＡＴＡバスに接続されるＳＡＴＡＩ／Ｆ５０と、転送シーケンス制御を行うシーケンスコントローラ３０と、パワーマネージメント制御を行うパワーマネージメントコントローラ３０を含む。パワーマネージメントコントローラ３０は、パワーダウンモード中にホストによるソフトリセットビットへの書き込みが検出された場合に、ソフトリセットビットへの書き込みが検出されたことをＳＲＳＴ１キュー２４に保持して、ＳＡＴＡＩ／Ｆ５０に対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、ソフトリセットビットへの書き込みが検出されたことをシーケンスコントローラ３０に通知する。【選択図】図４
2008242701.tif 000002
【特許請求の範囲】
【請求項１】
パラレルＡＴＡとシリアルＡＴＡのバスブリッジ機能を有するデータ転送制御装置であって、
パラレルＡＴＡバスに接続され、ホストとの間のインターフェースを行うパラレルＡＴＡインターフェースと、
シリアルＡＴＡバスに接続され、シリアルＡＴＡのデバイスとの間のインターフェースを行うシリアルＡＴＡインターフェースと、
転送シーケンス制御を行うシーケンスコントローラと、
パワーマネージメント制御を行うパワーマネージメントコントローラとを含み、
前記パワーマネージメントコントローラは、
パワーダウンモード中に前記ホストによるソフトリセットビットへの書き込みが検出された場合に、ソフトリセットビットへの書き込みが検出されたことをソフトリセットキューに保持して、前記シリアルＡＴＡインターフェースに対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、ソフトリセットビットへの書き込みが検出されたことを前記シーケンスコントローラに通知することを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
前記シリアルＡＴＡインターフェースは、
前記ソフトリセットキューがクリアされた後に、ソフトリセットビットの状態を伝えるレジスタＦＩＳを前記デバイスに送信することを特徴とするデータ転送制御装置。
【請求項３】
請求項１又は２において、
前記パワーマネージメントコントローラは、
パワーダウンモード中に前記ホストによるソフトリセットビットへの１の書き込みが検出された場合に、ソフトリセットビットへの１の書き込みが検出されたことを第１のソフトリセットキューに保持して、前記シリアルＡＴＡインターフェースに対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、ソフトリセットビットへの書き込みが検出されたことを前記シーケンスコントローラに通知し、
前記ホストによるソフトリセットビットへの０の書き込みが検出された場合に、ソフトリセットビットへの０の書き込みが検出されたことを第２のソフトリセットキューに保持して、ソフトリセットビットへの書き込みが検出されたことを前記シーケンスコントローラに通知することを特徴とするデータ転送制御装置。
【請求項４】
請求項３において、
前記シリアルＡＴＡインターフェースは、
前記第１のソフトリセットキューがクリアされた後に、ソフトリセットビットが１に設定されたレジスタＦＩＳを前記デバイスに送信し、前記第２のソフトリセットキューがクリアされた後に、ソフトリセットビットが０に設定されたレジスタＦＩＳを前記デバイスに送信することを特徴とするデータ転送制御装置。
【請求項５】
請求項３又は４において、
前記パワーマネージメントコントローラは、
前記第１のソフトリセットキューがクリアされる前に、前記ホストによるソフトリセットビットへの０の書き込みが検出された場合に、ソフトリセットビットへの０の書き込みが検出されたことを前記第２のソフトリセットキューに保持し、ウェイクアップが完了し、前記第１のソフトリセットキューがクリアされた後に、前記第２のソフトリセットキューをクリアすることを特徴とするデータ転送制御装置。
【請求項６】
請求項３乃至５のいずれかにおいて、
前記パワーマネージメントコントローラは、
ソフトリセットビットの論理レベルを知らせるためのビットレベル通知信号を前記シーケンスコントローラに出力することを特徴とするデータ転送制御装置。
【請求項７】
請求項６において、
前記パワーマネージメントコントローラは、
前記第１のソフトリセットキューがクリアされた場合に、前記ビットレベル通知信号の論理レベルを１に設定し、前記第２のソフトリセットキューがクリアされた場合に、前記ビットレベル通知信号の論理レベルを０にすることを特徴とするデータ転送制御装置。
【請求項８】
パラレルＡＴＡとシリアルＡＴＡのバスブリッジ機能を有するデータ転送制御装置であって、
パラレルＡＴＡバスに接続され、ホストとの間のインターフェースを行うパラレルＡＴＡインターフェースと、
シリアルＡＴＡバスに接続され、シリアルＡＴＡのデバイスとの間のインターフェースを行うシリアルＡＴＡインターフェースと、
転送シーケンス制御を行うシーケンスコントローラと、
パワーマネージメント制御を行うパワーマネージメントコントローラとを含み、
前記パワーマネージメントコントローラは、
パワーダウンモード中に前記ホストによるコマンドの発行が検出された場合に、コマンド発行が検出されたことをコマンドキューに保持して、前記シリアルＡＴＡインターフェースに対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、コマンド発行が検出されたことを前記シーケンスコントローラに通知することを特徴とするデータ転送制御装置。
【請求項９】
請求項８において、
前記シリアルＡＴＡインターフェースは、
前記コマンドキューがクリアされた後に、発行されたコマンドを含むレジスタＦＩＳを送信することを特徴とするデータ転送制御装置。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記パラレルＡＴＡインターフェースは、
パラレルＡＴＡとシリアルＡＴＡとのバスブリッジ用に擬似的に設けられたタスクファイル・レジスタを含み、
前記シリアルＡＴＡインターフェースは、
前記タスクファイル・レジスタとの間でレジスタ値が転送されるシャドウ・タスクファイル・レジスタを含むことを特徴とするデータ転送制御装置。
【請求項１１】
請求項１０において、
前記ホスト、前記デバイスの間で転送されるデータのバッファリングを行うデータバッファを含み、
前記ホスト、前記デバイスの間で転送されるデータについては、前記データバッファを介して転送され、
前記タスクファイル・レジスタ、前記シャドウ・タスクファイル・レジスタの間で転送されるレジスタ値については、前記シーケンスコントローラを介して転送されることを特徴とするデータ転送制御装置。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記シリアルＡＴＡインターフェースは、
パワーダウンモード時に動作を停止しない第１のクロックと、パワーダウンモード時に動作を停止する第２のクロックを出力し、
前記パラレルＡＴＡインターフェース及び前記パワーマネージメントコントローラは前記第１のクロックに基づいて動作し、前記シーケンスコントローラは前記第２のクロックに基づいて動作することを特徴とするデータ転送制御装置。
【請求項１３】
請求項１２において、
前記シリアルＡＴＡインターフェースは、
基準クロックである前記第１のクロックに基づき物理層回路により生成された前記第２のクロックが供給され、前記第２のクロックに基づき動作するトランスポートコントローラと、
前記第１、第２のクロックが供給され、前記第１、第２のクロックに基づき動作するリンクコントローラとを含み、
前記リンクコントローラは、
前記第２のクロックに基づき動作し、前記リンクコントローラのステート制御を行うリンクステート制御回路と、
前記第１のクロックに基づき動作し、パワーマネージメントのステート制御を行うパワーマネージメント制御回路を含むことを特徴とするデータ転送制御装置。
【請求項１４】
請求項１３において、
前記パワーマネージメント制御回路は、
パワーダウンモードからのウェイアップリクエストを受けた場合に、前記物理層回路のパワーダウンモードを解除し、その後に、インターフェースの初期化のための処理を行うインターフェース初期化制御回路のパワーダウンモードを解除することを特徴とするデータ転送制御装置。
【請求項１５】
請求項１４において、
前記パワーマネージメント制御回路は、
前記インターフェース初期化制御回路のパワーダウンモードを解除した後に、前記リンクステート制御回路に対してパワーダウンモードの解除を通知することを特徴とするデータ転送制御装置。
【請求項１６】
請求項１乃至１５のいずれかに記載のデータ転送制御装置と、
前記データ転送制御装置に接続される前記ホストと、
前記データ転送制御装置に接続される前記デバイスと、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置及び電子機器に関する。
【背景技術】
【０００２】
近年、ストレージデバイス等のシリアルインターフェースとして、シリアルＡＴＡ（Serial AT Attachment）と呼ばれる規格が脚光を浴びている。このシリアルＡＴＡは、パラレルＡＴＡ（ＩＤＥ）との間のソフトウェアレベルでの互換性を備えた規格である。そして最初の規格であるシリアルＡＴＡ Iのデータ転送速度は１．５Ｇｂｐｓであったが、次の規格であるシリアルＡＴＡ II  Ｇｅｎ２ではデータ転送速度が３．０Ｇｂｐｓに高速化している。このシリアルＡＴＡを用いれば、電子機器が内蔵する回路基板間の配線本数を減らすことができ、電子機器のコンパクト化を図れる。
【０００３】
ところが、電子機器のホスト（ホストデバイス、ホスト基板）は、パラレルＡＴＡ（以下、適宜、ＰＡＴＡと呼ぶ）のインターフェース（以下、適宜、Ｉ／Ｆと呼ぶ）は備えているが、シリアルＡＴＡ（以下、適宜、ＳＡＴＡと呼ぶ）のＩ／Ｆについては備えていないものが多い。このため、ＰＡＴＡＩ／Ｆのみを備えた既存のホストに対しては、ＳＡＴＡのデバイスを接続できないという問題がある。従って、ＰＡＴＡとＳＡＴＡのブリッジ機能を有するデータ転送制御装置の提供が望まれる。
【０００４】
またＳＡＴＡでは、パーシャル（PARTIAL）やスランバ（SLUMBER）というパワーダウン（パワーセーブ）モードが規格化されている。パーシャルモードでは当該モードからの復帰時間が１０μｓを越えてはならないと定義されており、スランバモードでは当該モードからの復帰時間が１０ｍｓを越えてはならないと定義されている。
【０００５】
しかしながら、データ転送制御装置にＰＡＴＡとＳＡＴＡのバスブリッジ機能を持たせた場合におけるパワーダウンモードからのウェイクアップ・シーケンスについては、ＳＡＴＡ規格には規定されていない。
【０００６】
なお特許文献１、２には、ＳＡＴＡとＰＡＴＡのブリッジＩＣが開示されている。しかしながらこの特許文献１、２は、ブリッジＩＣを使用した回路基板などに関する発明であり、ブリッジＩＣの具体的な構成に関する発明ではない。
【０００７】
また特許文献３には、ＳＡＴＡブリッジを内蔵するＨＤＤが開示されている。しかしながら、この特許文献３のＳＡＴＡブリッジは、ＳＡＴＡ側にホストが接続されＰＡＴＡ側にデバイスが接続されるブリッジであり、ＰＡＴＡ側にホストが接続されＳＡＴＡ側にデバイスが接続されるブリッジに関する発明ではない。また特許文献３は、ファームウェアによるプロトコル制御に特徴がある発明であり、回路構成に特徴がある発明ではない。
【特許文献１】特開２００５−３４６１２３号公報
【特許文献２】特開２００６−１２１６２１号公報
【特許文献３】特開２００６−１８４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、パワーダウンモードによる低消費電力化とパワーダウンモード中における適正な処理を両立できるデータ転送制御装置及びこれを含む電子機器を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、パラレルＡＴＡとシリアルＡＴＡのバスブリッジ機能を有するデータ転送制御装置であって、パラレルＡＴＡバスに接続され、ホストとの間のインターフェースを行うパラレルＡＴＡインターフェースと、シリアルＡＴＡバスに接続され、シリアルＡＴＡのデバイスとの間のインターフェースを行うシリアルＡＴＡインターフェースと、転送シーケンス制御を行うシーケンスコントローラと、パワーマネージメント制御を行うパワーマネージメントコントローラとを含み、前記パワーマネージメントコントローラは、パワーダウンモード中に前記ホストによるソフトリセットビットへの書き込みが検出された場合に、ソフトリセットビットへの書き込みが検出されたことをソフトリセットキューに保持して、前記シリアルＡＴＡインターフェースに対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、ソフトリセットビットへの書き込みが検出されたことを前記シーケンスコントローラに通知するデータ転送制御装置に関係する。
【００１０】
本発明によれば、パワーダウンモード中にソフトリセットビットへの書き込みが行われると、書き込みが検出されたことが、直ぐにはシーケンスコントローラに通知されずに、ソフトリセットキューに一旦保持される。そしてシリアルＡＴＡインターフェースに対してウェイクアップが要求され、ウェイクアップの完了後に、ソフトリセットビットの書き込みが検出されたことがシーケンスコントローラに通知される。このようにすれば、ウェイクアップによりシーケンスコントローラが動作を開始した後の適正なタイミングで、ソフトリセットビットの書き込み検出がシーケンスコントローラに通知されるようになる。従って、パワーダウンモードによる低消費電力化とパワーダウンモード中における適正なソフトリセット処理を両立できる。
【００１１】
また本発明では、前記シリアルＡＴＡインターフェースは、前記ソフトリセットキューがクリアされた後に、ソフトリセットビットの状態を伝えるレジスタＦＩＳを前記デバイスに送信してもよい。
【００１２】
このようにすれば、ソフトリセットキューがクリアされ、シーケンスコントローラが適正に動作を開始した後に、シリアルＡＴＡインターフェースによりレジスタＦＩＳの生成及び送信が行われるようになり、適正なソフトリセット処理を実現できる。
【００１３】
また本発明では、前記パワーマネージメントコントローラは、パワーダウンモード中に前記ホストによるソフトリセットビットへの１の書き込みが検出された場合に、ソフトリセットビットへの１の書き込みが検出されたことを第１のソフトリセットキューに保持して、前記シリアルＡＴＡインターフェースに対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、ソフトリセットビットへの書き込みが検出されたことを前記シーケンスコントローラに通知し、前記ホストによるソフトリセットビットへの０の書き込みが検出された場合に、ソフトリセットビットへの０の書き込みが検出されたことを第２のソフトリセットキューに保持して、ソフトリセットビットへの書き込みが検出されたことを前記シーケンスコントローラに通知してもよい。
【００１４】
このようにすれば、ソフトリセットビットへの１の書き込み検出と０の書き込み検出とを、各々、第１，第２のソフトリセットキューに別々に保持できる。従って、ソフトリセットビットへの１の書き込みと０の書き込みが様々なタイミングでなされた場合にも、これに柔軟に対応できる。
【００１５】
また本発明では、前記シリアルＡＴＡインターフェースは、前記第１のソフトリセットキューがクリアされた後に、ソフトリセットビットが１に設定されたレジスタＦＩＳを前記デバイスに送信し、前記第２のソフトリセットキューがクリアされた後に、ソフトリセットビットが０に設定されたレジスタＦＩＳを前記デバイスに送信してもよい。
【００１６】
このようにすれば、ソフトリセットビットが１に設定されたレジスタＦＩＳとソフトリセットビットが０に設定されたレジスタＦＩＳがデバイスに送信され、デバイスの適正なソフトリセット処理を実現できる。
【００１７】
また本発明では、前記パワーマネージメントコントローラは、前記第１のソフトリセットキューがクリアされる前に、前記ホストによるソフトリセットビットへの０の書き込みが検出された場合に、ソフトリセットビットへの０の書き込みが検出されたことを前記第２のソフトリセットキューに保持し、ウェイクアップが完了し、前記第１のソフトリセットキューがクリアされた後に、前記第２のソフトリセットキューをクリアしてもよい。
【００１８】
このようにすれば、ウェイクアップの完了前にソフトリセットビットへの０の書き込みが行われた場合にも、適正なソフトリセットシーケンスを実行できる。
【００１９】
また本発明では、前記パワーマネージメントコントローラは、ソフトリセットビットの論理レベルを知らせるためのビットレベル通知信号を前記シーケンスコントローラに出力してもよい。
【００２０】
このようにすれば、ソフトリセットビットへの書き込み検出のみならず、ソフトリセットビットの論理レベルについてもシーケンスコントローラに伝えることができる。これによりシーケンスコントローラは、ソフトリセットビットの論理レベルに応じた適切な処理を実行できる。
【００２１】
また本発明では、前記パワーマネージメントコントローラは、前記第１のソフトリセットキューがクリアされた場合に、前記ビットレベル通知信号の論理レベルを１に設定し、前記第２のソフトリセットキューがクリアされた場合に、前記ビットレベル通知信号の論理レベルを０にしてもよい。
【００２２】
このようにすれば、第１、第２のソフトリセットキューがクリアされたことを条件に、ソフトリセットビットの論理レベルをシーケンスコントローラに伝えることができる。
【００２３】
また本発明は、パラレルＡＴＡとシリアルＡＴＡのバスブリッジ機能を有するデータ転送制御装置であって、パラレルＡＴＡバスに接続され、ホストとの間のインターフェースを行うパラレルＡＴＡインターフェースと、シリアルＡＴＡバスに接続され、シリアルＡＴＡのデバイスとの間のインターフェースを行うシリアルＡＴＡインターフェースと、転送シーケンス制御を行うシーケンスコントローラと、パワーマネージメント制御を行うパワーマネージメントコントローラとを含み、前記パワーマネージメントコントローラは、パワーダウンモード中に前記ホストによるコマンドの発行が検出された場合に、コマンド発行が検出されたことをコマンドキューに保持して、前記シリアルＡＴＡインターフェースに対してパワーダウンモードからのウェイクアップを要求し、ウェイクアップが完了した後に、コマンド発行が検出されたことを前記シーケンスコントローラに通知するデータ転送制御装置に関係する。
【００２４】
本発明によれば、パワーダウンモード中にコマンドが発行されると、コマンド発行が検出されたことが、直ぐにはシーケンスコントローラに通知されずに、コマンドキューに一旦保持される。そしてシリアルＡＴＡインターフェースに対してウェイクアップが要求され、ウェイクアップの完了後に、コマンド発行が検出されたことがシーケンスコントローラに通知される。このようにすれば、ウェイクアップによりシーケンスコントローラが動作を開始した後の適正なタイミングで、コマンド発行の検出がシーケンスコントローラに通知されるようになる。従って、パワーダウンモードによる低消費電力化とパワーダウンモード中における適正なコマンド処理を両立できる。
【００２５】
また本発明では、前記シリアルＡＴＡインターフェースは、前記コマンドキューがクリアされた後に、発行されたコマンドを含むレジスタＦＩＳを送信してもよい。
【００２６】
このようにすれば、コマンドキューがクリアされ、シーケンスコントローラが適正に動作を開始した後に、シリアルＡＴＡインターフェースによりレジスタＦＩＳの生成及び送信が行われるようになり、適正なコマンド処理を実現できる。
【００２７】
また本発明では、前記パラレルＡＴＡインターフェースは、パラレルＡＴＡとシリアルＡＴＡとのバスブリッジ用に擬似的に設けられたタスクファイル・レジスタを含み、前記シリアルＡＴＡインターフェースは、前記タスクファイル・レジスタとの間でレジスタ値が転送されるシャドウ・タスクファイル・レジスタを含んでもよい。
【００２８】
このような擬似的なタスクファイル・レジスタを設ければ、ホストは、シリアルＡＴＡのデバイスを、あたかもパラレルＡＴＡのデバイスのように扱ってデータのリードやライトをできるようになる。従って、例えばパラレルＡＴＡインターフェースを有するホストを、データ転送制御装置を介してシリアルＡＴＡのデバイスに接続することが可能になる。
【００２９】
また本発明では、前記ホスト、前記デバイスの間で転送されるデータのバッファリングを行うデータバッファを含み、前記ホスト、前記デバイスの間で転送されるデータについては、前記データバッファを介して転送され、前記タスクファイル・レジスタ、前記シャドウ・タスクファイル・レジスタの間で転送されるレジスタ値については、前記シーケンスコントローラを介して転送されてもよい。
【００３０】
このようにすれば、シーケンスコントローラは、タスクファイル・レジスタとシャドウ・タスクファイル・レジスタの間で転送されるレジスタ値のモニタ等を行いながら、レジスタ値の転送シーケンス制御や、データバッファを介したデータの転送シーケンス制御を行うことが可能になる。
【００３１】
また本発明では、前記シリアルＡＴＡインターフェースは、パワーダウンモード時に動作を停止しない第１のクロックと、パワーダウンモード時に動作を停止する第２のクロックを出力し、前記パラレルＡＴＡインターフェース及び前記パワーマネージメントコントローラは前記第１のクロックに基づいて動作し、前記シーケンスコントローラは前記第２のクロックに基づいて動作してもよい。
【００３２】
このようにすれば、パワーダウンモード時にシーケンスコントローラ等の動作を停止させることが可能になり、省電力化を図れる。またパワーダウンモード時にパラレルＡＴＡインターフェースやパワーマネージメントコントローラは動作するようになるため、ホストによるソフトリセットビットやコマンドの書き込みに対して適正に対処できると共に、パワーダウンモードからの適正なウェイクアップシーケンスを実現できる。
【００３３】
また本発明では、前記シリアルＡＴＡインターフェースは、基準クロックである前記第１のクロックに基づき物理層回路により生成された前記第２のクロックが供給され、前記第２のクロックに基づき動作するトランスポートコントローラと、前記第１、第２のクロックが供給され、前記第１、第２のクロックに基づき動作するリンクコントローラとを含み、前記リンクコントローラは、前記第２のクロックに基づき動作し、前記リンクコントローラのステート制御を行うリンクステート制御回路と、前記第１のクロックに基づき動作し、パワーマネージメントのステート制御を行うパワーマネージメント制御回路を含んでもよい。
【００３４】
本発明によれば、基準クロックである第１のクロックに基づき、物理層回路（クロック生成回路）により第２のクロックが生成される。そしてトランスポートコントローラは第２のクロックに基づき動作し、リンクコントローラは第１、第２のクロックに基づき動作する。そして、リンクコントローラのメインのステート制御については、第２のクロックに基づき動作するリンクステート制御回路により行われる。一方、パワーダウンモードへの移行等のためのパワーマネージメント制御については、第１のクロックに基づき動作するパワーマネージメント制御回路により行われる。従って、パワーダウンモードに移行して第２のクロックが停止することで、トランスポートコントローラやリンクコントローラの動作を停止させることが可能になり、低消費電力化を図れる。一方、パワーダウンモードに移行して第２のクロックが停止しても、基準クロックである第１のクロックは停止しない。従って、第１のクロックに基づき動作するパワーマネージメント制御回路により、適正なパワーマネージメント制御を実現できる。
【００３５】
また本発明では、前記パワーマネージメント制御回路は、パワーダウンモードからのウェイアップリクエストを受けた場合に、前記物理層回路のパワーダウンモードを解除し、その後に、インターフェースの初期化のための処理を行うインターフェース初期化制御回路のパワーダウンモードを解除してもよい。
【００３６】
このようにすれば、物理層回路のパワーダウンモードが解除された後に、インターフェース初期化制御回路のパワーダウンモードが解除されて、インターフェース初期化制御回路によるインターフェースの初期化処理が行われるようになり、適正なパワーマネージメント制御を実現できる。
【００３７】
また本発明では、前記パワーマネージメント制御回路は、前記インターフェース初期化制御回路のパワーダウンモードを解除した後に、前記リンクステート制御回路に対してパワーダウンモードの解除を通知してもよい。
【００３８】
このようにすれば、物理層回路、インターフェース初期化制御回路のパワーダウンモードが解除された後に、パワーマネージメント制御回路からリンクステート制御回路に対してステート制御を引き継ぐことが可能になる。
【００３９】
また本発明は、上記のいずれかに記載のデータ転送制御装置と、前記データ転送制御装置に接続される前記ホストと、前記データ転送制御装置に接続される前記デバイスとを含む電子機器に関係する。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００４１】
１．データ転送制御装置の構成
図１に本実施形態のデータ転送制御装置の構成例を示す。このデータ転送制御装置はＰＡＴＡ（Parallel AT Attachment）とＳＡＴＡ（Serial AT Attachment）のバスブリッジ機能を有する。なお本実施形態のデータ転送制御装置は図１の構成に限定されず、その構成要素の一部（例えばデータバッファ）を省略したり、他の構成要素（例えば外部Ｉ／Ｆ回路、ＣＰＵ）を追加するなどの種々の変形実施が可能である。
【００４２】
ＰＡＴＡＩ／Ｆ１０（パラレルＡＴＡインターフェース）は、ＰＡＴＡバス（ＡＴＡバス、ＩＤＥバス）に接続され、ホスト２（ホストデバイス）との間のインターフェースを行う。具体的にはＰＡＴＡＩ／Ｆ１０は、ホスト２が有するホスト側のＰＡＴＡＩ／ＦにＰＡＴＡバスを介して接続される。そしてＡＴＡで規格化された後述する各種信号によりやり取りを行い、ＰＡＴＡ（ＩＤＥ）のデータ転送を実現する。またＰＡＴＡＩ／Ｆ１０は、データバッファ７０を介したＳＡＴＡＩ／Ｆ５０との間のデータ転送制御も行う。
【００４３】
なおホスト２としては、例えばＣＰＵ、ＭＰＵ、ＤＳＰなどのプロセッサや、専用制御ＩＣや、これらのプロセッサ又は専用制御ＩＣが実装されたホスト回路基板などが考えられる。またデバイス４としては、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ（ＣＤ、ＤＶＤ）、磁気ディスクドライブなどのＳＡＴＡＩ／Ｆを備える各種デバイスが考えられる。
【００４４】
ＳＡＴＡＩ／Ｆ５０（シリアルＡＴＡインターフェース）は、ＳＡＴＡバス（高速シリアルバス）に接続され、ＳＡＴＡのデバイス４との間のインターフェースを行う。具体的にはＳＡＴＡＩ／Ｆ５０は、デバイス４が有するデバイス側のＳＡＴＡＩ／Ｆに接続され、小振幅の差動信号によりやり取りを行い、ＳＡＴＡのデータ転送を実現する。またＳＡＴＡＩ／Ｆ５０は、データバッファ７０を介したＰＡＴＡＩ／Ｆ１０との間のデータ転送制御も行う。
【００４５】
シーケンスコントローラ３０は転送のシーケンス制御を行う。具体的には、ＰＡＴＡとＳＡＴＡのブリッジ機能を実現するために、ＰＡＴＡＩ／Ｆ１０、ＳＡＴＡＩ／Ｆ５０、データバッファ７０の間のデータ転送のシーケンス制御を行ったり、レジスタ値の転送シーケンス制御を行う。
【００４６】
データバッファ７０は、ホスト２（ＰＡＴＡＩ／Ｆ）、デバイス４（ＳＡＴＡＩ／Ｆ）の間で転送されるデータのバッファリングを行う。そしてＰＡＴＡ側とＳＡＴＡ側のクロック周波数の差を吸収するための緩衝用のバッファ（ＦＩＦＯ）として機能する。即ちＰＡＴＡ側のクロック周波数が例えば５０ＭＨｚ（或いは６０ＭＨｚ）で、ＳＡＴＡ側のクロック周波数が例えば３７．５ＭＨｚである場合に、データバッファ７０を設けることでこのクロック周波数の差を吸収できる。このデータバッファ７０は、例えば５０ＭＨｚ（第１の周波数）でデータが入出力されるＰＡＴＡＩ／Ｆ１０側の第１のポートと、例えば３７．５ＭＨｚ（第２の周波数）でデータが入出力されるＳＡＴＡＩ／Ｆ５０側の第２のポートとを有するデュアルポートのメモリ（ＲＡＭ）などにより実現できる。
【００４７】
パワーマネージメントコントローラ２０は、パワーマネージメント制御を行う。具体的には、パワーダウンモード中にタスクファイルレジスタ１２のソフトリセットビット（以下、ソフトリセットを、適宜、ＳＲＳＴと呼ぶ）への書き込みが検出された場合に、ＳＲＳＴビットへの書き込みが検出されたことを（書き込み検出フラグを）、ＳＲＳＴキューに保持する。またＳＡＴＡＩ／Ｆ５０に対してパワーダウンモードからのウェイクアップを要求する。そしてウェイクアップが完了すると、ＳＲＳＴビットへの書き込みが検出されたことをシーケンスコントローラ３０に通知する。具体的には書き込み検出の通知信号をアクティブにする。例えばパワーマネージメントコントローラ２０は、ＳＲＳＴビットへの１の書き込みが検出された場合には、１の書き込みが検出されたことをＳＲＳＴ１キュー（第１のソフトリセットキュー）に保持し、ＳＡＴＡＩ／Ｆ５０に対してウェイクアップを要求する。そしてウェイクアップが完了すると、ＳＲＳＴビットへの１の書き込みが検出されたことをシーケンスコントローラ３０に通知する。またＳＲＳＴビットへの０の書き込みが検出された場合には、０の書き込みが検出されたことをＳＲＳＴ０キュー（第２のソフトリセットキュー）に保持する。そしてＳＲＳＴビットへの０の書き込みが検出されたことをシーケンスコントローラ３０に通知する。
【００４８】
またパワーマネージメントコントローラ２０は、ソフトリセットビットの論理レベルを知らせるためのビットレベル通知信号をシーケンスコントローラ３０に出力する。具体的には例えばＳＲＳＴ１キューがクリアされた場合には、ビットレベル通知信号の論理レベルを１に設定し、ＳＲＳＴ０キューがクリアされた場合には、ビットレベル通知信号の論理レベルを０にする。
【００４９】
またパワーマネージメントコントローラ２０は、パワーダウンモード中にホスト２によるコマンドの発行が検出された場合に、コマンド発行が検出されたことを（コマンド発行検出フラグを）、コマンドキューに保持する。またＳＡＴＡＩ／Ｆ５０に対してパワーダウンモードからのウェイクアップを要求する。そしてウェイクアップが完了すると、コマンド発行が検出されたことをシーケンスコントローラ３０に通知する。具体的にはコマンド検出の通知信号をアクティブにする。
【００５０】
ＳＡＴＡＩ／Ｆ５０は、ＳＲＳＴキューがクリアされた後に、ソフトリセットビットの状態（情報）を伝えるためのレジスタＦＩＳをデバイス４に送信する。具体的にはＳＲＳＴ１キューがクリアされた後に、ＳＲＳＴビットが１に設定されたレジスタＦＩＳをデバイス４に送信する。またＳＲＳＴ０キューがクリアされた後に、ＳＲＳＴビットが０に設定されたレジスタＦＩＳをデバイス４に送信する。またＳＡＴＡＩ／Ｆ５０は、コマンドキューがクリアされた場合に、発行されたコマンドを含むレジスタＦＩＳを送信する。
【００５１】
ＰＡＴＡＩ／Ｆ１０は、タスクファイル・レジスタ（以下、適宜、ＴＦＲと呼ぶ）１２を含む。ここでＴＦＲ１２は、ＰＡＴＡとＳＡＴＡのバスブリッジ用に擬似的（仮想的）に設けられたレジスタである。このＴＦＲ１２を設けることで、ホスト２は、ＳＡＴＡのデバイス４を、あたかもＰＡＴＡのデバイスのように扱ってデータのリードやライトを行うことが可能になる。即ちホスト２は、既存のＰＡＴＡ用のファームウェアやソフトウェアを使用して、ＳＡＴＡのデバイス４を制御できるようになる。
【００５２】
ＳＡＴＡＩ／Ｆ５０は、シャドウ・タスクファイル・レジスタ（以下、適宜、ＳＦＲと呼ぶ）５２を含む。このＳＦＲ５２は、ＴＦＲ１２との間でレジスタ値が転送されるレジスタであり、ＳＡＴＡで規格化されているレジスタである。
【００５３】
そしてシーケンスコントローラ３０は、コマンド発行検出等の通知をパワーマネージメントコントローラ２０から受けると、ＴＦＲ１２からＳＦＲ５２へのレジスタ値の転送を行う。
【００５４】
例えば図２（Ａ）に従来のＰＡＴＡ（ＩＤＥ）のシステム構成例を示す。図２（Ａ）では、ホスト４００のＣＰＵ４１０は、ＰＡＴＡバスを介してデバイス側のタスクファイル・レジスタ４３２にアクセスする。即ちタスクファイル・レジスタ４３２は、ＣＰＵ４１０のアドレス空間にマッピングされる。そしてＣＰＵ４１０で動作するソフトウェアが、デバイス側のタスクファイル・レジスタ４３２に直接にリード・ライトを行い、ＨＤＤ（ハードディスクドライブ）４５０等を有するデバイス４３０を制御する。このタスクファイル・レジスタ４３２はデバイス側のファームウェアによってもアクセスされる。
【００５５】
図２（Ｂ）に従来のＳＡＴＡのシステム構成例を示す。図２（Ｂ）では、ホスト４００はＣＰＵ４１０とＳＡＴＡホストコントローラ４２０を含み、ＳＡＴＡホストコントローラ４２０は、シャドウ・タスクファイル・レジスタ４２２や物理層回路（ＰＨＹ）４２４等を含む。またデバイス４３０は、ＳＡＴＡデバイスコントローラ４４０とＨＤＤ４５０を含み、ＳＡＴＡデバイスコントローラ４４０はタスクファイル・レジスタ４４２や物理層回路（ＰＨＹ）４４４等を含む。そしてＳＡＴＡホストコントローラ４２０の物理層回路４２４とＳＡＴＡデバイスコントローラ４４０の物理層回路４４４との間で、ＳＡＴＡバスを介した小振幅の差動信号によるデータ転送が行われる。
【００５６】
図２（Ｂ）において、ホスト側のシャドウ・タスクファイル・レジスタ４２２は、ＣＰＵ４１０上で動作するソフトウェアによりアクセスされ、デバイス側のタスクファイル・レジスタ４４２は、デバイス側のファームウェア（ＨＤＤ）によりアクセスされる。
【００５７】
このＳＡＴＡでは、従来のＰＡＴＡ（ＩＤＥ）との間でソフトウェアレベルでの互換性が維持されており、タスクファイル・レジスタが２つ存在することが特徴になっている。即ちホスト（ＨＢＡ）側のシャドウ・タスクファイル・レジスタ４２２とデバイス側の本来のタスクファイル・レジスタ４４２である。ＳＡＴＡでは、これらのレジスタ４２２と４４２の間で、ＳＡＴＡバスを介してレジスタ値を転送する通信制御を行うことで、図２（Ａ）の従来のＰＡＴＡ（ＩＤＥ）とのソフトウェアレベルでの互換性を維持している。
【００５８】
そして本実施形態のデータ転送制御装置では、図１のシャドウ・タスクファイル・レジスタ５２が、図２（Ｂ）のホスト側のシャドウ・タスクファイル・レジスタ４２２に相当し、図１のデバイス４が有するタスクファイル・レジスタ５が、図２（Ｂ）のデバイス側のタスクファイル・レジスタ４４２に相当する。
【００５９】
一方、図１においてＰＡＴＡＩ／Ｆ１０に設けられたタスクファイル・レジスタ（ＴＦＲ）１２はＳＡＴＡで規格化されるレジスタではなく、ＰＡＴＡとＳＡＴＡのブリッジ用に設けられた擬似的（仮想的）なレジスタである。ホスト２（ＣＰＵ上で動作するソフトウェア）は、レジスタ１２をＰＡＴＡのタスクファイル・レジスタとして認識してアクセスし、レジスタ値を書き込んだり、レジスタ値を読み出す。即ち図２（Ａ）のＰＡＴＡ（ＩＤＥ）のタスクファイル・レジスタ４３２のように認識して、レジスタ値の書き込み、読み出しを行う。するとシーケンスコントローラ３０が、タスクファイル・レジスタ１２のレジスタ値をシャドウ・タスクファイル・レジスタ５２に転送したり、シャドウ・タスクファイル・レジスタ５２のレジスタ値をタスクファイル・レジスタ１２に転送するなどの処理を行う。
【００６０】
このようにすれば、ホスト２が、ＰＡＴＡのタスクファイル・レジスタ１２にレジスタ値を書き込むと、そのレジスタ値がＳＡＴＡのシャドウ・タスクファイル・レジスタ５２に転送されて書き込まれ、ＳＡＴＡバスを介してＦＩＳによりデバイス４に転送されるようになる。またデバイス４からのＦＩＳによりシャドウ・タスクファイル・レジスタ５２に書き込まれたレジスタ値が、タスクファイル・レジスタ１２に転送されてホスト２に読み出されるようになる。従ってホスト２は、ＳＡＴＡのデバイス４を、あたかもＰＡＴＡのデバイスのように扱ってデータのリードやライトを行うことが可能になり、ＰＡＴＡとＳＡＴＡのブリッジ機能を効率良く実現できる。
【００６１】
このように図１の構成によれば、ホスト２がＰＡＴＡＩ／Ｆしか備えていない場合にも、ＳＡＴＡＩ／Ｆを有するデバイス４をデータ転送制御装置を介してホスト２に接続できる。従って、ホスト２のファームウェア、ソフトウェアとして、既存のＰＡＴＡ（ＩＤＥ）用のファームウェア、ソフトウェアを使用できる。即ちホスト２側は、そのハードウェアやソフトウェアの構成を変更しなくても、ＳＡＴＡに準拠したデバイス４を接続することが可能になる。従って、新たな開発期間や開発コストの発生を最小限に抑えることが可能になり、ホスト２及びデバイス４を備えた電子機器の開発期間の短縮化や低コスト化を図れる。またデバイス４として、市場供給量が多い大容量のＨＤＤをホスト２に接続できるようになり、電子機器の内蔵ＨＤＤの大容量化を図れる。
【００６２】
またホスト２が搭載される回路基板とデバイス４が搭載される回路基板の間を、シリアルバスであるＳＡＴＡバスで接続できるため、回路基板間の配線本数を減らすことができ、電子機器のコンパクト化を図れる。
【００６３】
２．自動ウェイクアップ
図３にＳＲＳＴ（ソフトリセット、ソフトウェアリセット）処理のシーケンス図を示す。ホスト２は、ＳＲＳＴをかけてデバイス４の初期化を行う場合には、図３のＨ１に示すように、ＴＦＲ１２のＳＲＳＴビットに１をセットする。具体的にはＴＦＲ１２のデバイスコントロールレジスタ（Device Control）のＳＲＳＴビットを１にセットする。
【００６４】
このようにＳＲＳＴビットが１にセットされると、図３のＨ２に示すようにシーケンスコントローラ３０は、ＳＲＳＴビットが１にセットされたレジスタ値をＴＦＲ１２からＳＦＲ５２に転送する。
【００６５】
するとＨ３に示すようにＳＡＴＡＩ／Ｆ５０は、ＳＲＳＴビットが１にセットされたレジスタＦＩＳ（Host to Device）をデバイス４に送信する。即ちレジスタＦＩＳのコマンドレジスタのＳＲＳＴビットを１にセットして、デバイス４に送信する。デバイス４は、ＳＲＳＴビットが１にセットされたレジスタＦＩＳを受信すると、ＳＲＳＴによる初期化シーケンス処理の準備に入る。
【００６６】
次にホスト２は、Ｈ４に示すようにＴＦＲ１２のＳＲＳＴビットをクリアして、ＳＲＳＴビットを１から０にトグルする。このようにＳＲＳＴビットが０にトグルされてクリアされると、Ｈ５に示すようにシーケンスコントローラ３０は、ＳＲＳＴビットが０にクリアされたレジスタ値をＴＦＲ１２からＳＦＲ５２に転送する。
【００６７】
ＴＦＲ１２からＳＦＲ５２へのレジスタ値の転送が行われると、Ｈ６に示すようにＳＡＴＡＩ／Ｆ５０は、ＳＲＳＴビットが０にクリアされたレジスタＦＩＳ（Host to Device）をデバイス４に送信する。そしてデバイス４は、ＳＲＳＴビットが０にクリアされたレジスタＦＩＳを受信すると、ＳＲＳＴによる初期化シーケンス処理を開始する。
【００６８】
データ転送制御装置は、このようなホスト２からのＳＲＳＴの要求を、自身がどのステートにいる場合でも受け付ける必要がある。またホスト２がコマンドを発行した場合にも、そのコマンドを受け付ける必要がある。一方、ＳＡＴＡでは、パーシャルやスランバというパワーダウンモードが用意されており、このようなパワーダウンモード中に、ホスト２がＳＲＳＴを要求したり、コマンドを発行する場合がある。
【００６９】
そこで本実施形態では、パワーダウンモード中にホスト２からＳＲＳＴの要求があった場合やホスト２がコマンドが発行した場合に、自動的にＳＡＴＡのウェイクアップシーケンスを実行する。そしてウェイクアップの完了後にＳＲＳＴの状態を知らせるレジスタＦＩＳや、発行されたコマンドを知らせるレジスタＦＩＳをデバイス４に転送する。
【００７０】
図４にデータ転送制御装置の各ブロックの詳細な構成及びその接続関係を示す。ＩＤＥのホスト２により、ＰＡＴＡＩ／Ｆ１０のＴＦＲ１２に対して書き込みが行われることで、データ転送制御装置のバスブリッジ動作が開始する。そしてパワーダウンモード中においても、ＰＡＴＡＩ／Ｆ１０に供給されるクロックＣＬＫ１（第１のクロック、非スリープクロック）は停止しない。こうすることで、パワーダウンモード中においても、ホスト２によるＴＦＲ１２へのＳＲＳＴビットやコマンドの書き込みが可能になる。
【００７１】
ＴＦＲ（タスクファイル・レジスタ）１２はコマンドレジスタ１６とコントロールレジスタ１８を含む。このコマンドレジスタ１６にホスト２からコマンドが書き込まれることで、ＩＤＥのデバイス４の動作が制御される。またコントロールレジスタ１８には、ＳＲＳＴと呼ばれるビットがあり、このＳＲＳＴビットに１を書き込んだ後に０を書き込むことで、デバイス４がリセットされる。
【００７２】
パワーマネージメントコントローラ２０は、通常動作時にはＰＡＴＡＩ／Ｆ１０のＴＦＲ１２へのコマンドやＳＲＳＴビットへの書き込みを、シーケンスコントローラ３０（ブリッジコントローラ）にそのまま渡す。一方、パワーダウンモード中には、コマンドやＳＲＳＴビットの書き込みを、一旦、パワーマネージメントコントローラ２０中に保持（キュー）する。具体的には、パワーダウンモード中にコマンドが書き込まれた場合には、その書き込みをコマンドキュー２２に保持する。またパワーダウンモード中にＳＲＳＴ＝１が書き込まれた場合には、その書き込みをＳＲＳＴ１キュー２４（第１のソフトリセットキュー）に保持し、ＳＲＳＴ＝０が書き込まれた場合には、その書き込みをＳＲＳＴ０キュー２６（第２のソフトリセットキュー）に保持する。そしてＳＡＴＡＩ／Ｆ５０に対してウェイクアップを指示する。パワーマネージメントコントローラ２０は、ウェイクアップが完了して、クロックＣＬＫ１のみならずクロックＣＬＫ２（第２のクロック。スリープクロック）も有効になると、キューされていたコマンドやＳＲＳＴビットの状態をシーケンスコントローラ３０に渡す。なおパワーダウンモード中においても、パワーマネージメントコントローラ２０に供給されるクロックＣＬＫ１は停止しない。こうすることで、パワーダウンモード中においても適正なパワーマネージメントシーケンスを実行できる。
【００７３】
コマンドキュー２２は、パワーダウンモード中にホスト２によりＴＦＲ１２のコマンドレジスタ１６にコマンドが書き込まれると、１にセットされる。そしてコマンド発行が完了すると０にクリアされる。コマンドキュー２２がクリアされた場合に、ＳＡＴＡＩ／Ｆ５０は、そのコマンドを伝えるレジスタＦＩＳをデバイス４に送信する。
【００７４】
ＳＲＳＴ１キュー２４は、パワーダウンモード中にホスト２によりＴＦＲ１２のコントロールレジスタ１８のＳＲＳＴビットに１が書き込まれると、１にセットされる。ＳＲＳＴ１キュー２４がクリアされた場合に、ＳＡＴＡＩ／Ｆ５０は、ＳＲＳＴ＝１を知らせるレジスタＦＩＳをデバイス４に送信する。同様にＳＲＳＴ０キュー２６は、パワーダウンモード中にコントロールレジスタ１８のＳＲＳＴビットに０が書き込まれると、１にセットされる。ＳＲＳＴ０キュー２６がクリアされた場合に、ＳＡＴＡＩ／Ｆ５０は、ＳＲＳＴ＝０を知らせるレジスタＦＩＳをデバイス４に送信する。
【００７５】
なおコマンドキュー２２，ＳＲＴＳ１キュー２４，ＳＲＳＴ０キュー２６は、ＳＲＳＴ書き込み検出フラグやコマンド発行検出フラグを記憶するレジスタやメモリなどにより実現できる。
【００７６】
シーケンスコントローラ３０は、通常動作時は、ＴＦＲ１２に書き込まれたコマンド等のレジスタ値を、ＳＡＴＡＩ／Ｆ５０のＳＦＲ５２に転送（コピー）したり、デバイス４から返信されてきたコマンドの実行結果（ステータス）をＳＡＴＡＩ／Ｆ５０から受け取って、ＴＦＲ１２に反映させる動作を行う。なおパワーダウンモード中は、シーケンスコントローラ３０に供給されるクロックＣＬＫ２は停止しており、これにより低消費電力化を図れる。
【００７７】
ＳＡＴＡＩ／Ｆ５０はＳＡＴＡのホスト動作を行う。このＳＡＴＡＩ／Ｆ５０はＳＦＲ５２というＴＦＲ１２に対応するレジスタを持つ。このＳＦＲ５２にコマンド等のレジスタ値が書き込まれると、ＳＡＴＡＩ／Ｆ５０は、レジスタＦＩＳと呼ばれるＳＡＴＡパケットを生成し、ＳＡＴＡのデバイス４に送信する。デバイス４は、コマンドを含むレジスタＦＩＳを受信すると、指定されたコマンドに従った動作を行い、その結果（ステータス）をレジスタＦＩＳとしてＳＡＴＡＩ／Ｆ５０に送信する。ＳＡＴＡＩ／Ｆ５０は、受信したレジスタＦＩＳに含まれるステータス値をＳＦＲ５２に反映させることで、コマンドの完了となる。
【００７８】
ＳＡＴＡＩ／Ｆ５０は、ＳＡＴＡ規格で定義されるパワーマネージメントの制御も行う。具体的には外部モジュールからＳＡＴＡのパワーダウンモード移行を指示されると、ＳＡＴＡＩ／Ｆ５０はＳＡＴＡ規格にしたがいパーシャルやスランバなどのパワーダウンモードに移行する。
【００７９】
ＳＡＴＡＩ／Ｆ５０が含むクロック生成回路２４０（ＰＬＬ等）は、ＰＡＴＡ−ＳＡＴＡブリッジで使用されるクロックを生成する。パーシャルやスランバのパワーダウンモードでは、非スリープクロックＣＬＫ１を除く全てのクロックが停止する。そして非スリープクロックＣＬＫ１は、電源がオンしている間は常に動作する。この非スリープクロックＣＬＫ１は、ＰＡＴＡＩ／Ｆ１０やパワーマネージメントコントローラ２０に供給されるため、これらのブロックはパワーダウンモード中においても動作することになる。
【００８０】
なお図４において、信号ＧｅｔＣｏｍｍａｎｄは、ホスト２によるコマンド発行（書き込み）が検出されたことを、ＰＡＴＡＩ／Ｆ１０がパワーマネージメントコントローラ２０に通知するための信号である。信号ＧｅｔＣｏｍｍａｎｄＳＣは、コマンド発行が検出されたことを、パワーマネージメントコントローラ２０がシーケンスコントローラ３０に通知するための信号である。
【００８１】
信号ＤｅｔＳＲＳＴは、ホスト２によるＳＲＳＴビットへの１や０の書き込みが検出されたことを、ＰＡＴＡＩ／Ｆ１０がパワーマネージメントコントローラ２０に通知するための信号である。信号ＤｅｔＳＲＳＴＳＣは、ＳＲＳＴビットへの１や０の書き込みが検出されたことを、パワーマネージメントコントローラ２０がシーケンスコントローラ３０に通知するための信号である。
【００８２】
信号ＳＲＳＴＰＡは、ＳＲＳＴビットの論理レベル（１、０）を、ＰＡＴＡＩ／Ｆ１０がパワーマネージメントコントローラ２０に知らせるためのビットレベル通信信号である。信号ＳＲＳＴＳＣは、ＳＲＳＴビットの論理レベルを、パワーマネージメントコントローラ２０がシーケンスコントローラ３０に知らせるためのビットレベル通知信号である。例えばＳＲＳＴ１キュー２４がクリアされると、信号ＳＲＳＴＳＣの論理レベルが１に設定され、ＳＲＳＴ０キュー２６がクリアされると、信号ＳＲＳＴＳＣの論理レベルが０に設定される。これによりシーケンスコントローラ３０は、信号ＤｅｔＳＲＳＴＳＣがアクティブになったときに、ＳＲＳＴビットの論理レベルを知ることができる。
【００８３】
信号ＩｎＰＡＲＴＩＡＬ、ＩｎＳＬＵＭＢＥＲは、各々、ＳＡＴＡＩ／Ｆ５０の物理層回路がパーシャル状態、スランバ状態であることを、ＳＡＴＡＩ／Ｆ５０がパワーマネージメントコントローラ２０に知らせるための信号である。信号ＷａｋｅＵｐＲｅｑは、パワーダウンモードからのウェイクアップを、パワーマネージメントコントローラ２０がＳＡＴＡＩ／Ｆ５０に指示するための信号である。信号ＳＣＲＤＥＴＯＫは、ＳＡＴＡインターフェースの接続が確立したことを、ＳＡＴＡＩ／Ｆ５０がパワーマネージメントコントローラ２０に知らせるための信号である。
【００８４】
３．ＳＲＳＴ書き込み
次にＳＲＳＴ書き込み時の本実施形態の動作の詳細について説明する。図５（Ａ）〜図６（Ｃ）はパワーダウンモード中のＳＲＳＴ処理の説明図であり、図７、図８はその時の信号波形例である。
【００８５】
図５（Ａ）に示すようにパワーダウンモード中にホスト２がＴＦＲ１２のＳＲＳＴビットに１を書き込むと、図７のＡ１に示すようにＰＡＴＡＩ／Ｆ１０からの検出信号ＤｅｔＳＲＳＴがＨレベル（アクティブ）になり、ＳＲＳＴビットの書き込みが検出されたことがパワーマネージメントコントローラ２０に通知される。またＡ２に示すようにＰＡＴＡＩ／Ｆ１０からのビットレベル通知信号ＳＲＳＴＰＡがＨレベルになり、ＳＲＳＴビットが１になったことが通知される。
【００８６】
するとパワーマネージメントコントローラ２０は、図７のＡ３に示すようにＳＲＳＴ１キュー２４に１の書き込みフラグを立てて、保持する。また信号ＷａｋｅＵｐＲｅｑをＨレベルにして、ＳＡＴＡＩ／Ｆ５０に対してウェイクアップを要求し、図７のＡ４に示すようにウェイクアップが完了するのを待つ。
【００８７】
図５（Ｂ）に示すように、ＳＡＴＡ側のウェイクアップが完了し、図７のＡ５に示すように信号ＳＣＲＤＥＴＯＫがＨレベルになり、ＳＡＴＡインターフェースの接続が確立すると、パワーマネージメントコントローラ２０はＡ６に示すようにＳＲＳＴ１キュー２４をクリアする。そしてウェイクアップ完了によりクロックＣＬＫ２が供給されて動作を再開したシーケンスコントローラ３０に対して、図７のＡ７に示すようにＨレベルの検出信号ＤｅｔＳＲＳＴＳＣを出力して、ＳＲＳＴビットの書き込みが検出されたことを通知する。またＡ８に示すように、ビットレベル通知信号ＳＲＳＴＳＣをＨレベルにして、ＳＲＳＴビットが１になったことをシーケンスコントローラ３０に通知する。
【００８８】
するとＳＦＲ５２のＳＲＳＴビットに１が書き込まれ、図５（Ｃ）に示すように、ＳＡＴＡＩ／Ｆ５０はＳＲＳＴビットが１に設定されたレジスタＦＩＳをデバイス４に送信する。
【００８９】
次に図６（Ａ）に示すようにホスト２がＴＦＲ１２のＳＲＳＴビットに０を書き込むと、図７のＡ９に示すように検出信号ＤｅｔＳＲＳＴがＨレベルになり、ＳＲＳＴビットの書き込みが検出されたことがパワーマネージメントコントローラ２０に通知される。またＡ１０に示すように通知信号ＳＲＳＴＰＡがＬレベルになり、ＳＲＳＴビットが０になったことが通知される。するとパワーマネージメントコントローラ２０は、Ａ１１に示すようにＳＲＳＴ０キュー２６に１の書き込みフラグを立てて、保持する。
【００９０】
次に図６（Ｂ）、図７のＡ１２に示すようにパワーマネージメントコントローラ２０は、ＳＲＳＴ１キュー２４をクリアする。そしてＡ１３に示すようにＨレベルの検出信号ＤｅｔＳＲＳＴＳＣを出力して、ＳＲＳＴビットの書き込みが検出されたことをシーケンスコントローラ３０に通知する。またＡ１４に示すように、通知信号ＳＲＳＴＳＣをＬレベルにして、ＳＲＳＴビットが０になったことをシーケンスコントローラ３０に通知する。
【００９１】
するとＳＦＲ５２のＳＲＳＴビットに０が書き込まれ、図６（Ｃ）に示すように、ＳＡＴＡＩ／Ｆ５０はＳＲＳＴビットが０に設定されたレジスタＦＩＳをデバイス４に送信する。これによりデバイス４の初期化シーケンスが行われ、ソフトリセットが実現される。
【００９２】
以上のように本実施形態によれば、パワーダウンモード中にホスト２によりＳＲＳＴビットの書き込みが行われた場合に、自動ウェイクアップシーケンスが実行される。そしてウェイクアップによりシーケンスコントローラ３０が動作を開始した後の適正なタイミングで、ホスト２によるＳＲＳＴビットへの１や０の書き込みがシーケンスコントローラ３０に対して伝えられる。そしてＳＲＳＴビットの状態を知らせるレジスタＦＩＳがデバイス４に送信される。従って本実施形態によれば、パワーダウンモードによる低消費電力化と、パワーダウンモード中におけるＳＲＳＴの適正な書き込み処理とを両立できる。
【００９３】
ところで図７は、ＳＲＳＴ＝１の書き込みが行われ、ウェイクアップが完了した後に、ＳＲＳＴ＝０の書き込みが行われた場合の信号波形例である。これに対して図８は、ウェイクアップの完了前にＳＲＳＴ＝０の書き込みが行われた場合の信号波形例である。即ちホスト２によるＳＲＳＴビットの書き込みタイミングはホスト２側の事情に依存し、任意である。またウェイクアップの完了に要する期間も変動する。従って、図７のようなケースのみならず図８のようなケースが起こる。
【００９４】
図８のようなケースでも、本実施形態ではＳＲＳＴ１キュー２４のみならずＳＲＳＴ０キュー２６を用意しているため、これに対処できる。即ち図８では、ＳＲＳＴ１キュー２４がクリアされる前に、Ｂ１に示すようにホスト２によるＳＲＳＴビットへの０の書き込みが検出されている。この場合に本実施形態ではＢ２に示すようにＳＲＳＴビットへの０の書き込みが検出されたことをＳＲＳＴ０キュー２６に保持する。即ちＳＲＳＴ＝０の書き込み検出フラグを立てる。そしてＢ３に示すようにウェイクアップが完了して信号ＳＣＲＤＥＴＯＫがＨレベルになり、Ｂ４に示すようにＳＲＳＴ１キュー２４がクリアされた後に、Ｂ５に示すようにＳＲＳＴ０キュー２６をクリアする。具体的にはＳＲＳＴ１キュー２４がクリアされ、ＳＲＳＴ＝１のレジスタＦＩＳが送信された後に、ＳＲＳＴ０キュー２６をクリアする。
【００９５】
このようにすれば、図８のようにウェイクアップの完了前にＳＲＳＴ＝０の書き込みが行われた場合にも、適正なＳＲＳＴシーケンスを実行できる。即ち、ホスト２側の事情によるＳＲＳＴビットの書き込みタイミングの変動にも対応でき、より柔軟なシステムを提供できる。
【００９６】
４．コマンド発行
次にコマンド発行時の本実施形態の動作の詳細について図９（Ａ）〜図９（Ｃ）を用いて説明する。
【００９７】
図９（Ａ）に示すように、パワーダウンモード中にホスト２がコマンドを発行してＴＦＲ１２にコマンドを書き込むと、ＰＡＴＡＩ／Ｆ１０からの検出信号ＧｅｔＣｏｍｍａｎｄがＨレベル（アクティブ）になり、コマンドの書き込みが検出されたことがパワーマネージメントコントローラ２０に通知される。
【００９８】
するとパワーマネージメントコントローラ２０は、コマンドキュー２２に１の書き込みフラグを立てて、保持する。また信号ＷａｋｅＵｐＲｅｑをＨレベルにして、ＳＡＴＡＩ／Ｆ５０に対してウェイクアップを要求し、ウェイクアップが完了するのを待つ。
【００９９】
図９（Ｂ）に示すように、ＳＡＴＡ側のウェイクアップが完了し、信号ＳＣＲＤＥＴＯＫがＨレベルになり、ＳＡＴＡインターフェースの接続が確立すると、パワーマネージメントコントローラ２０はコマンドキュー２２をクリアする。そしてウェイクアップ完了によりクロックＣＬＫ２が供給されて動作を再開したシーケンスコントローラ３０に対して、Ｈレベルの検出信号ＧｅｔＣｏｍｍａｎｄＳＣを出力して、コマンドの書き込みが検出されたことを通知する。
【０１００】
すると図９（Ｃ）に示すようにシーケンスコントローラ３０は、ＴＦＲ１２のレジスタ値をＳＦＲ５２に転送（コピー）する処理を行う。これによりホスト２により発行されたコマンドがＳＦＲ５２に書き込まれる。そしてＳＡＴＡＩ／Ｆ５０は、発行されたコマンドを含むレジスタＦＩＳをデバイス４に送信する。
【０１０１】
以上のように本実施形態によれば、パワーダウンモード中にホスト２によりコマンドが発行された場合に、自動ウェイクアップシーケンスが実行される。そしてウェイクアップによりシーケンスコントローラ３０が動作を開始した後の適正なタイミングで、コマンド発行が検出されたことがシーケンスコントローラ３０に対して伝えられ、そのコマンドを含むレジスタＦＩＳがデバイス４に送信される。従って本実施形態によれば、パワーダウンモードによる低消費電力化と、パワーダウンモード中における適正なコマンド処理とを両立できる。
【０１０２】
なお図１０に本実施形態の自動ウェイクアップのシーケンスフローのステート遷移図を示す。パワーダウンモードステート（Ｓ１）においてコマンドキューが１になると、ウェイクアップステート（Ｓ２）に移行し、ＳＡＴＡＩ／Ｆ５０へウェイクアップ要求信号が出力される。するとウェイクアップ完了待ちステート（Ｓ３）に移行し、ＳＡＴＡＩ／Ｆ５０がＳＡＴＡのウェイクアップシーケンスを実行する。そしてＳＡＴＡバスの初期化の完了を待ち、クロックの動作が再開する。
【０１０３】
ＳＡＴＡＩ／Ｆ５０から信号ＳＣＲＤＥＴＯＫが出力されると、コマンド送信ステート（Ｓ４）に移行し、コマンドキューが０にクリアされる。そしてシーケンスコントローラ３０に対して、コマンドが発行されたことを通知する（ＧｅｔＣｏｍｍａｎｄＳＣをアサートする）。
【０１０４】
またパワーダウンモードステート（Ｓ１）において、ＳＲＳＴ１キューが１になると、ウェイクアップステート（Ｓ５）に移行し、ＳＡＴＡＩ／Ｆ５０へウェイクアップ要求信号が出力される。するとウェイクアップ完了待ちステート（Ｓ６）に移行し、ＳＡＴＡＩ／Ｆ５０がＳＡＴＡのウェイクアップシーケンスを実行する。そしてＳＡＴＡバスの初期化の完了を待ち、クロックの動作が再開する。
【０１０５】
ＳＡＴＡＩ／Ｆ５０から信号ＳＣＲＤＥＴＯＫが出力されると、ＳＲＳＴ１送信ステート（Ｓ７）に移行し、ＳＲＳＴ１キューが０にクリアされる。するとシーケンスコントローラ３０に対して、ＳＲＳＴ１が発行されたことを通知し、ＳＲＳＴ０キュー待ちのステート（Ｓ８）に移行する。そしてＳＲＳＴ０キューが１になるのを待ち、ＳＲＳＴ０キューが１になると、ＳＲＳＴ０送信ステート（Ｓ９）に移行する。するとＳＲＳＴ０キューをクリアし、シーケンスコントローラ３０に対して、ＳＲＳＴ０が発行されたことを通知する。
【０１０６】
５．詳細な構成例
図１１にデータ転送制御装置の詳細な構成例を示す。ＰＡＴＡＩ／Ｆ１０はＴＦＲ１２、転送コントローラ１４を含む。
【０１０７】
転送コントローラ１４は、ＰＡＴＡ用の信号ＸＣＳ〜ＸＰＤＩＡＧを用いてＰＡＴＡ（ＩＤＥ）のインターフェースを実現したり、データ転送用の制御信号を用いて、データバッファ７０との間のデータ転送を制御する。
【０１０８】
データバッファ７０は、メモリコントローラ７２、ＦＩＦＯメモリ（ＦＩＦＯＲＡＭ）７４を含む。メモリコントローラ７２は、ＦＩＦＯメモリ７４のデータの書き込み制御や読み出し制御を行う。またＰＡＴＡＩ／Ｆ１０やＳＡＴＡＩ／Ｆ５０との間で、例えばＲＥＱ信号やＡＣＫ信号などの制御信号を用いたデータ転送制御を行う。
【０１０９】
ＳＡＴＡＩ／Ｆ５０は、ＳＦＲ５２、トランスポートコントローラ１１０、リンクコントローラ１５０、物理層回路２００を含む。
【０１１０】
トランスポートコントローラ１１０、リンクコントローラ１５０、物理層回路２００は、各々、ＳＡＴＡ規格のトランスポート層、リンク層、物理層の処理を行う回路である。
【０１１１】
６．ＰＡＴＡＩ／Ｆ
次に、ＰＡＴＡＩ／Ｆ１０のデータ転送処理について、図１１の構成及び図１２（Ａ）〜図１３（Ｂ）の信号波形を用いて説明する。
【０１１２】
ＸＣＳ［１：０］は、ＰＡＴＡの各レジスタにアクセスするために使用するチップセレクト信号である。ＤＡ［２：０］は、データ又はデータポートにアクセスするためのアドレス信号である。ＤＭＡＲＱ、ＤＭＡＣＫは、ＤＭＡ転送に使用される信号である。データ転送の準備が整った時にデバイス側がＤＭＡＲＱをアクティブ（アサート）にし、これに応答して、ホスト側がＤＭＡＣＫをアクティブにする。
【０１１３】
ＸＤＩＯＷは、レジスタ又はデータポートの書き込み時に使用するライト信号である。ＸＤＩＯＲは、レジスタ又はデータポートの読み出し時に使用するリード信号である。ＩＯＲＤＹは、デバイス側のデータ転送の準備が整っていない時のウェイト信号等に使用される。
【０１１４】
ＩＮＴＲＱは、デバイス側が、ホスト側に対して割り込みを要求するために使用される信号である。このＩＮＴＲＱがアクティブになった後、ホスト側がデバイス側のＴＦＲ１２のステータスレジスタの内容を読むと、所定時間後にデバイス側はＩＮＴＲＱを非アクティブ（ネゲート）にする。このＩＮＴＲＱを用いることで、デバイス側は、コマンド処理の終了をホスト側に通知できる。
【０１１５】
図１２（Ａ）、図１２（Ｂ）は、ＰＩＯ（Programmed I/O）リード、ＰＩＯライトの信号波形例である。ＰＡＴＡのＴＦＲ１２のステータスレジスタのリードは図６（Ａ）のＰＩＯリードにより行い、コマンドレジスタへのライトは図６（Ｂ）のＰＩＯライトにより行う。例えばホスト２によるＡＴＡコマンドの発行は、ＰＩＯライトにより実現できる。
【０１１６】
図１３（Ａ）、図１３（Ｂ）は、ＤＭＡリード、ＤＭＡライトの信号波形例である。データ転送の準備ができると、デバイス側（データ転送制御装置）が、ＤＭＡＲＱをアクティブにする。そして、それを受けて、ホスト側が、ＤＭＡＣＫをアクティブにして、ＤＭＡ転送を開始する。その後、ＸＤＩＯＲ（リード時）又はＸＤＩＯＷ（ライト時）を使用して、データＤＤ［１５：０］のＤＭＡ転送を行う。
【０１１７】
７．ＳＡＴＡＩ／Ｆ
次にＳＡＴＡＩ／Ｆ５０のデータ転送処理について説明する。図１４はＳＡＴＡの送信側のデータ転送処理の流れを示し、図１５は受信側のデータ転送処理の流れを示している。
【０１１８】
図１４に示すように送信側のトランスポートコントローラ（トランスポート層）では、シャドウ・タスクファイル・レジスタに書き込まれたコマンドやデータポートに入力されたデータによりＦＩＳが生成される。ここでＦＩＳは、フレームのペイロード部であり、Ｄｗｏｒｄ（３２ビット）単位で構成される。またフレームは、ホストとデバイスの間で交換される情報ユニットであり、ＳＯＦ（Start Of Frame）プリミティブと、ＦＩＳと、ＦＩＳに対して計算されたＣＲＣ（Cyclic Redundancy Check）と、ＥＯＦ（End Of Frame）プリミティブにより構成される。
【０１１９】
送信側のリンクコントローラでは、ＦＩＳに対するＣＲＣが演算されてＦＩＳの最後尾に付加される。そしてＦＩＳ及びＣＲＣとスクランブルデータとの排他的論理和（ＸＯＲ）をとるスクランブル処理が行われる。このようにスクランブルされたＦＩＳ及びＣＲＣに対して、８ｂ／１０ｂのエンコードが行われる。ここで８ｂ／１０ｂエンコードは、８ビットのデータを１０ビットの伝送キャラクタに変換するデータ伝送符号化のアルゴリズムであり、符号列内の１と０の数を揃え、連続的な伝送を保証する。そして８ｂ／１０ｂエンコード後のＦＩＳ及びＣＲＣに対してＳＯＦ、ＥＯＦなどのプリミティブが付加される。
【０１２０】
送信側の物理層回路では、リンクコントローラからのパラレルデータがシリアルデータに変換され、小振幅の差動信号としてＳＡＴＡバスに送信される。
【０１２１】
図１５に示すように受信側の物理層回路では、ＳＡＴＡバスを介して受信したシリアルデータがパラレルデータに変換される。
【０１２２】
受信側のリンクコントローラでは、ＦＩＳ及びＣＲＣに付加されたプリミティブに対するデコードが行われる。またＦＩＳ及びＣＲＣに対する８ｂ／１０ｂのデコードが行われる。即ち１０ビットの伝送キャラクタが８ビットのデータに変換される。次に、スクランブルされたＦＩＳ及びＣＲＣとスクランブルデータとの排他的論理和をとるデスクランブル処理が行われる。そしてＦＩＳの最後尾に付加されたＣＲＣがチェックされる。
【０１２３】
受信側のトランスポートコントローラでは、ＦＩＳのコマンドがシャドウ・タスクファイル・レジスタに書き込まれ、ステータスや割り込みが出力されると共に、データがデータポートを介して出力される。
【０１２４】
図１６にＳＡＴＡＩ／Ｆ５０の構成例を示す。なおＳＡＴＡＩ／Ｆ５０の構成は図１６に限定されず、その構成要素の一部を削除したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば物理層回路２００を設けない構成としてもよい。
【０１２５】
ＳＡＴＡでは、データは３２ビット単位で処理される。この３２ビットのデータが、リンクコントローラ１５０により８ｂ／１０ｂでエンコードされて４０ビットのデータになり、物理層回路２００に送られる。物理層回路２００は、この４０ビットのデータをシリアル化してＳＡＴＡのケーブルに送信する。受信も逆の手順で、シリアルデータが物理層回路２００で４０ビットのデータに変換され、リンクコントローラ１５０で３２ビットのデータに変換され、トランスポートコントローラ１１０に送られる。
【０１２６】
トランスポートコントローラ１１０はトランスポート層の制御を行うものである。具体的にはトランスポートコントローラ１１０は、上位層（アプリケーション層）からＦＩＳの送信要求が来た時に、以下の処理を行う。
【０１２７】
まずトランスポートコントローラ１１０は、ＦＩＳタイプの要件に基づいてＦＩＳの内容を収集する。また送信する情報をＦＩＳのタイプ毎に定義フォーマットに配置する。次にリンクコントローラ１５０に対して送信要求を通知する。これによりリンクコントローラ１５０はＸ＿ＲＤＹの送信処理を行う。そして相手ノードからのＲ＿ＲＤＹを受信し、リンクコントローラ１５０から受信のアクノリッジが来ると、トランスポートコントローラ１１０はＦＩＳをリンクコントローラ１５０に転送する。そして送信ＦＩＦＯ１２０のフロー管理を行い、必要なフロー制御をリンクコントローラ１５０に通知する。その後、リンクコントローラ１５０から送信結果を受信すると、必要に応じて上位層に送信結果を通知する。
【０１２８】
トランスポートコントローラ１１０は、リンクコントローラ１５０からＦＩＳを受信した時には、以下の処理を行う。
【０１２９】
トランスポートコントローラ１１０は、リンクコントローラ１５０からＦＩＳを受信すると、受信したＦＩＳのタイプを判別する。そしてＦＩＳのタイプに応じた適切なレジスタやＦＩＦＯにデータを転送する。そして受信ＦＩＦＯ１２２のフロー管理を行い、必要なフロー制御をリンクコントローラ１５０に通知する。その後、リンクコントローラ１５０及び上位層（アプリケーション層）に受信結果を通知する。
【０１３０】
リンクコントローラ１５０はリンク層の制御を行うものである。具体的にはリンクコントローラ１５０は、送信時には以下の処理を行う。
【０１３１】
まずリンクコントローラ１５０はトランスポートコントローラ１１０からのデータ（ＦＩＳ）を受け取る。そしてＦＩＳのＣＲＣを生成し、ＦＩＳの最後尾に付加する。次にデータのスクランブルを行い、その後、８ｂ／１０ｂのエンコードを行う。そしてＳＡＴＡ通信のプロトコルにしたがったプリミティブ、ＦＩＳの送信を行う。そして送信結果をトランスポートコントローラ１１０に通知する。
【０１３２】
リンクコントローラ１５０は受信時には以下の処理を行う。即ちリンクコントローラ１５０は物理層回路２００から、８ｂ／１０ｂエンコードキャラクタを受信する。そして８ｂ／１０ｂエンコードキャラクタをデコードし、デコードしたプリミティブを処理部等に通知する。次にデコードしたＦＩＳのデスクランブル処理を行い、ＣＲＣをチェックする。そしてトランスポートコントローラ１１０にデータを渡す。またデコード結果やＣＲＣのチェック結果をトランスポートコントローラ１１０に通知する。
【０１３３】
物理層回路２００は物理層を実現するアナログフロントエンド回路である。この物理層回路２００は、シリアルデータ（シリアルストリーム）の送受信や、シリアルデータからパラレルデータへの変換や、パラレルデータからシリアルデータへの変換を行う。また８ｂ／１０ｂのＫ２８．５キャラクタの検出や、ＯＯＢ(Out Of Band）信号の検出と送信を行う。またデバイスステータス（デバイスの有無、転送状態、パワー状態）の提供や、通信制御用のインターフェース（転送レート制御、ループバック）の提供を行う。またオプションでパワーマネージメントも行う。
【０１３４】
物理層回路（ＰＨＹ）２００はトランスミッタ（ドライバ）２１０、レシーバ２２０、ＯＯＢ検出回路２３０、クロック生成回路２４０を含む。
【０１３５】
トランスミッタ２１０は、差動信号線（差動信号線ペア）ＴＸ＋／−を介してシリアルデータ（パケット）の送信を行い、レシーバ２２０は、差動信号線（差動信号線ペア）ＲＸ＋／−を介してシリアルデータ（パケット）の受信を行う。ＴＸ＋／−、ＲＸ＋／−のＳＡＴＡバス（広義にはシリアルバス）では、振幅電圧＋／−２５０ｍＶのＮＲＺ差動信号によるシリアルストリーム転送が行われる。
【０１３６】
ＯＯＢ検出回路２３０はＯＯＢ信号の検出処理を行う。このＯＯＢ信号は、ＳＡＴＡインターフェースのリセット／初期化、通信の確立や、スピード・ネゴシエーションをつかさどる信号である。
【０１３７】
クロック生成回路２４０はＰＬＬなどにより実現される。具体的にはクロック生成回路２４０は基準クロック（システムクロック）であるＣＬＫ１（第１のクロック）を受ける。このＣＬＫ１は、例えば外部の発振器等から供給され、その周波数は例えば２５ＭＨｚとなっている。
【０１３８】
そしてクロック生成回路２４０は、原振であるクロックＣＬＫ１に基づいて、ＣＬＫ１に同期したクロックＣＬＫ２（第２のクロック）を生成する。このＣＬＫ２の周波数は例えば３７．５ＭＨｚとなっている。具体的にはクロック生成回路２４０は、ＣＬＫ１に基づき１００ＭＨｚのクロックを生成して、ＯＯＢ検出回路２３０に供給すると共に、１．５ＧＨｚのクロックを生成してトランスミッタ２１０に供給する。トランスミッタ（ドライバ）２１０は、この１．５ＧＨｚのクロック（ＴＸクロック）に基づいて高速シリアルストリームの送信を行う。またこの１．５ＧＨｚのクロックが分周されて３７．５ＭＨｚのクロックＣＬＫ２が生成されて、トランスポートコントローラ１１０、リンクコントローラ１５０に供給される。トランスポートコントローラ１１０は、このＣＬＫ２（第２のクロック）に基づき動作する。またリンクコントローラ１５０は、ＣＬＫ１、ＣＬＫ２（第１、第２のクロック）に基づき動作する。なおトランスポートコントローラ１１０の一部の回路をＣＬＫ１に基づき動作させてもよい。
【０１３９】
リンクコントローラ１５０は、リンクステート制御回路１６０、パワーマネージメント制御回路１７０、インターフェース初期化制御回路１８０、フレーム生成回路１９０、フレームデコード回路１９２を含む。
【０１４０】
リンクステート制御回路（メインステート制御回路）１６０は、物理層回路２００で生成されたクロックＣＬＫ２に基づき動作し、リンクコントローラ１５０のメインのステート制御を行う。即ちリンクコントローラ１５０が行う各処理のステート制御を行うメインのステートマシーンとして動作する。例えばリセットステート、アイドルステート、送信ステート、受信ステート等のステート間の遷移処理等を行う。
【０１４１】
パワーマネージメント制御回路（パワーステート制御回路）１７０は、パワーダウンモード時にも停止しないクロックＣＬＫ１に基づき動作し、パワーマネージメント（パワーダウンモード）のステート制御を行う。即ちパワーダウンモード時にリンクコントローラ１５０が行う各パワーマネージメント処理のステート制御を行うステートマシーンとして動作する。例えばノーマルステート、パワーダウンステート、ウェイクアップステートなどのステート間の遷移処理等を行う。
【０１４２】
インターフェース初期化制御回路１８０（物理層初期化制御回路）は、インターフェース（物理層）の初期化のための各処理を行う。即ちフレーム生成回路１９０に対して初期化制御信号を出力し、ＣＯＭＲＥＳＥＴ（ＣＯＭＩＮＩＴ）やＣＯＭＷＡＫＥの発行や、キャリブレーションや、スピード・ネゴシエーションのための処理などを行う。
【０１４３】
フレーム生成回路１９０は、トランスポートコントローラ１１０からの送信データ（ＦＩＳ）や、リンクステート制御回路１６０からの送信制御信号などに基づいてフレームの生成処理を行う。具体的には、トランスポートコントローラ１１０からのＦＩＳのＣＲＣを演算したり、スクランブル処理を行ったり、８ｂ／１０ｂエンコード処理を行ったり、プリミティブを生成して付加する処理などを行う。
【０１４４】
フレームデコード回路１９２は、受信したフレームの解析（分解）処理を行い、受信解析信号（パワーダウンリクエスト信号等）をリンクステート制御回路１６０に出力する。具体的には、ＦＩＳに付加されたプリミティブを解析したり、８ｂ／１０ｂのデコード処理を行ったり、デスクランブル処理を行ったり、ＣＲＣを演算してチェックする処理などを行う。
【０１４５】
そして本実施形態ではリンクステート制御回路１６０は、パワーダウンリクエストを受けると、パワーダウン条件が満たされたか否かを判断する。そしてパワーダウン条件が満たされた場合には、パワーマネージメント制御回路１７０に対してパワーマネージメント（パーシャル、スランバ）のステート制御のイネーブル信号ＰＭＳｔａｔｅＥｎｂを出力する。
【０１４６】
パワーマネージメント制御回路１７０は、イネーブル信号ＰＭＳｔａｔｅＥｎｂを受けた場合（ＰＭＳｔａｔｅＥｎｂがアサートされた場合）に、パワーマネージメントのステート制御を行う。具体的にはパワーマネージメント制御回路１７０は、パワーマネージメントのステート制御におてい、信号ＨＲＤＯＷＮをアサートして、インターフェース初期化制御回路１８０に対してパワーダウンモードへの移行を指示する。その後に、信号ＰＡＲＴＩＡＬ（ＳＬＵＭＢＥＲ）をアサートして、物理層回路２００に対してパワーダウンモードへの移行を指示する。即ちパワーダウンモード（パーシャルモード、スランバモード）への移行指示に対するレディ信号ＳｙｎｃＲｅａｄｙをインターフェース初期化制御回路１８０から受けた場合に、物理層回路２００に対してパワーダウンモードへの移行を指示する。
【０１４７】
またパワーマネージメント制御回路１７０は、パワーダウンモードからのウェイアップリクエストを受けると、信号ＰＡＲＴＩＡＬ（ＳＬＵＭＢＥＲ）をネゲートして、物理層回路２００のパワーダウンモードを解除する。その後に、信号ＨＲＤＯＷＮをネゲートして、インターフェース初期化制御回路１８０のパワーダウンモードを解除する。具体的には、パワーダウンモードの解除に対するレディ信号ＰｈｙＲｅａｄｙを物理層回路２００から受けた場合に、インターフェース初期化制御回路１８０のパワーダウンモードを解除する。
【０１４８】
そしてパワーマネージメント制御回路１７０は、インターフェース初期化制御回路１８０のパワーダウンモードを解除した後に、リンクステート制御回路１６０に対して信号ＬｉｎｋＡｇａｉｎを用いてパワーダウンモードの解除を通知する。これによりリンクコントローラ１５０のウェイクアップ動作が完了する。
【０１４９】
トランスポートコントローラ１１０は、割りこみコントローラ１１８、ＤＭＡ制御回路１１９、送信ＦＩＦＯ１２０、受信ＦＩＦＯ１２２、ＦＩＳ生成回路１３０、ＦＩＳデコード回路１３２、トランスポートステート制御回路１４０を含む。
【０１５０】
割り込みコントローラ１１８は、デバイス４からの受信ＦＩＳ情報などを知らせるための割り込み信号を生成する。ＤＭＡ制御回路１１９は、ＦＩＳに含まれる送信データや受信データ（コンテンツ・データ）のＤＭＡ転送を制御する。送信ＦＩＦＯ１２０は、ＤＭＡ制御回路１１９からの送信データのバッファとなるＦＩＦＯである。受信ＦＩＦＯ１２２は、リンクコントローラ１５０からの受信データのバッファとなるＦＩＦＯである。ＦＩＳ生成回路１３０はＦＩＳの生成を行う回路であり、ＦＩＳデコード回路１３２はＦＩＳの解析を行う回路である。トランスポートステート制御回路１４０は、トランスポートコントローラ１１０のステート制御を行う。
【０１５１】
ＳＡＴＡでは、スランバ（SLUMBER）やパーシャル（PARTIAL）というパワーダウンモードが用意されている。スランバモードでは、復帰時間が１０ｍｓを越えてはならないと定義され、パーシャルモードに比べて復帰時間が長い。このためＰＬＬの動作についても停止させることができ、消費電力をより低減できる。
【０１５２】
一方、ＳＡＴＡ規格に忠実にデータ転送制御装置を設計すると、トランスポートコントローラはシステム（ＣＰＵ）側のクロックで動作するようになる。従って上記のようなパーシャルやスランバなどのパワーダウンモードにおいても、トランスポートコントローラは、システム側のクロックが供給されて動作する。従って物理層回路やリンクコントローラがパワーダウンモードに移行したとしても、トランスポートコントローラについてはパワーダウンモードに移行できない。即ちＳＡＴＡバスがパワーダウンしているのにもかかわらず、トランスポートコントローラにおいて無駄に電力が消費されてしまう。そしてトランスポートコントローラは、その論理ゲート数が多いため、消費される電力は非常に大きい。
【０１５３】
この場合、ＰＣ（パーソナルコンピュータ）用途のＳＡＴＡのデータ転送制御装置では、消費電力が大きくてもそれほど問題にはならない。ところが、携帯型音楽プレーヤ、携帯型映像プレーヤ、ハードディスレコーダなどの家電の電子機器にデータ転送制御装置を組み込んだ場合には、データ転送制御装置の低消費電力化は重要な技術的課題となる。
【０１５４】
そこで本実施形態では図１６に示すように、トランスポートコントローラ１１０を、システム側のクロックではなくて、リンクコントローラ１５０用のクロックＣＬＫ２（３７．５ＭＨｚ）で動作させる構成としている。このようにすれば、パーシャルやスランバなどのパワーダウンモードに移行し、クロックＣＬＫ２が停止した場合に、物理層回路２００やリンクコントローラ１５０のみならず、ＣＬＫ２に基づき動作するトランスポートコントローラ１１０についてもその動作が停止し、パワーダウンモードに移行する。この結果、従来のＳＡＴＡのデータ転送制御装置に比べて、消費電力を大幅に低減できる。
【０１５５】
更に本実施形態では、リンクコントローラ１５０の中に、ＣＬＫ２で動作する回路のみならずＣＬＫ１で動作する回路も設けている。具体的にはリンクコントローラ１５０のメインのステート制御を行うリンクステート制御回路１６０については、クロックＣＬＫ２で動作させる一方で、パワーマネージメントのステート制御を行うパワーマネージメント制御回路１７０については、クロックＣＬＫ１で動作させている。このようにすれば、物理層回路２００がパワーダウンモードに移行して、ＣＬＫ２が停止した場合にも、パワーマネージメント制御回路１７０については、原振クロックであるＣＬＫ１に基づき、停止せずにその動作を維持する。従って、パワーマネージメント制御回路１７０の制御の下で、インターフェース初期化制御回路１８０や物理層回路２００を段階的にパワーダウンモードに移行させる制御が可能になる。またパワーマネージメント制御回路１７０以外の回路がパワーダウンモードに移行した状態にあっても、ウェイクアップリクエストを受けたパワーマネージメント制御回路１７０が、インターフェース初期化制御回路１８０や物理層回路２００のパワーダウンモードを段階的に解除する制御が可能になる。
【０１５６】
このように本実施形態によれば、トランスポートコントローラ１１０をシステム側ではなくリンク用のクロックＣＬＫ２で動作させることで低消費電力化を実現しながら、ＣＬＫ１で動作するパワーマネージメント制御回路１７０を設けることで、パワーダウンモードへの適正な移行やパワーダウンモードからの適正な復帰の実現に成功している。
【０１５７】
８．シーケンスコントローラ
図１７にシーケンスコントローラ３０の構成例を示す。シーケンスコントローラ３０はレジスタ更新部３２、初期化シーケンス管理部３４、パラメータ書き換え部３６、ＤＭＡモード設定記憶部３８、転送制御部４０を含む。なおシーケンスコントローラ３０の構成は図１７に限定されず、その構成要素の一部を削除したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【０１５８】
レジスタ更新部３２はＴＦＲ１２（タスクファイル・レジスタ）、ＳＦＲ５２（シャドウ・タスクファイル・レジスタ）のレジスタ値の更新処理を行う。具体的にはＴＦＲ１２のレジスタ値をＳＦＲ５２に転送してＳＦＲ５２のレジスタ値を更新したり、ＳＦＲ５２のレジスタ値をＴＦＲ１２に転送してＴＦＲ１２のレジスタ値を更新する。
【０１５９】
例えばＴＦＲ１２にホスト２によりＡＴＡコマンドが書き込まれると、ＰＡＴＡＩ／Ｆ１０はコマンドライト検出信号をアクティブにする。そしてコマンドライト検出信号がアクティブになると、レジスタ更新部３２はＴＦＲ１２のレジスタ値をＳＦＲ５２に転送する処理を行う。
【０１６０】
またＳＡＴＡＩ／Ｆ５０は、デバイス４から受信したＦＩＳをデコードし、デコード結果に基づいて、ＦＩＳの種類を知らせるための割り込み信号（広義には受信ＦＩＳ情報）を生成して出力する。レジスタ更新部３２は、この割り込み信号に基づいて受信ＦＩＳの種類を判別して、ＳＦＲ５２からＴＦＲ１２へのレジスタ値の転送処理などを行って、レジスタ値の更新処理を行う。
【０１６１】
初期化シーケンス管理部３４は、ＨＲＳＴ（ハードリセット）、ＳＲＳＴ（ソフトリセット）に伴う初期化シーケンスを管理する。具体的には、マスター、スレーブなどの設定をモニタして、ＰＡＴＡの初期化シーケンスを管理する。
【０１６２】
パラメータ書き換え部３６は、ホスト２がデバイス４に対してアイデンティファイ・デバイス・コマンドを発行し、デバイス４からデバイス情報のパラメータを受信した場合に、パラメータの書き換え処理を行う。即ち転送速度などのパラメータを自身が対応可能なパラメータに書き換える。
【０１６３】
ＤＭＡモード設定記憶部３８は、ホスト２がセットフューチャー・コマンドを発行した場合に、セットフューチャー・コマンドを解析して、ＤＭＡ転送のモード設定を記憶する。
【０１６４】
転送制御部４０はデータ転送制御装置の転送シーケンスを制御するものであり、モニタ部４２、制御信号生成部４４を含む。モニタ部４２は、ＰＡＴＡＩ／Ｆ１０からのコマンドライト検出信号や、ＳＡＴＡＩ／Ｆ５０からの割り込み信号（受信ＦＩＳ情報）などの信号をモニタする。そして制御信号生成部４４は、モニタ結果に基づいて、転送方向設定信号、転送開始信号、転送停止信号などの制御信号を生成し、ＰＡＴＩ／Ｆ１０、データバッファ７０、ＳＡＴＡＩ／Ｆ５０に出力して、転送シーケンス制御を実行する。なおデータバッファ７０に対しては転送開始信号、転送停止信号は出力せず、転送方向設定信号を出力する。
【０１６５】
図１８にＡＴＡのタスクファイル・レジスタのフォーマット例を示す。タスクファイル・レジスタはコントロールブロックレジスタとコマンドブロックレジスタを有し、チップセレクト信号ＸＣＳ０、ＸＣＳ１が、Ｈレベル（ネゲート）、Ｌレベル（アサート）である場合にはコントロールブロックレジスタが選択され、Ｌレベル、Ｈレベルである場合にはコマンドブロックレジスタが選択される。またコマンドブロックレジスタには、ステータスレジスタ（Status）やＡＴＡコマンドレジスタ（ATA Command）が設けられる。
【０１６６】
９．電子機器
図１９に本実施形態の電子機器の構成例を示す。この電子機器は、本実施形態で説明したデータ転送制御装置３１０とホスト３０２とデバイス３０４を含む。ホスト３０２とデータ転送制御装置３１０はＰＡＴＡバスを介して接続され、データ転送制御装置３１０とデバイス３０４はＳＡＴＡバスを介して接続される。なお本実施形態の電子機器の構成は図１９に限定されず、その構成要素の一部を省略したり、他の構成要素を付加する変形実施が可能である。
【０１６７】
同図においてデバイス３０４は、ＨＤＤ（ハードディスクドライブ）等のストレージデバイスである。但しデバイス３０４はＨＤＤ等のストレージデバイスに限定されず、例えば光ディスクドライブ（ＣＤ、ＤＶＤ）等であってもよい。
【０１６８】
ホスト３０２は、処理部３３０（ＣＰＵ）、ＲＯＭ３４０、ＲＡＭ３５０、表示部３６０、操作部３７０を含むことができる。処理部３３０（ＣＰＵ）はデータ転送制御装置３１０や電子機器の全体制御を行う。なおデータ転送制御装置３１０を制御する処理部と、電子機器を制御する処理部とを別々に設けてもよい。ＲＯＭ３４０は制御プログラムや各種データを記憶する。ＲＡＭ３５０は処理部３３０やデータ転送制御装置３１０のワーク領域やデータ格納領域として機能する。表示部３６０は種々の情報をユーザに表示する。操作部３７０はユーザが電子機器を操作するためのものである。
【０１６９】
本実施形態の電子機器によれば、ホスト３０２がＳＡＴＡＩ／Ｆを有していない場合にも、データ転送制御装置３１０を介してＳＡＴＡのデバイス３０４をホスト３０２に接続して、あたかもＰＡＴＡのデバイスのように扱うことが可能になる。
【０１７０】
なお、本実施形態を適用できる電子機器としては、カーナビゲーションシステム、車載用オーディオ機器、ＨＤＤレコーダ、ビデオカメラ、携帯型音楽プレーヤ、携帯型映像プレーヤ、ゲーム装置、又は携帯型ゲーム装置等の種々のものが考えられる。
【０１７１】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またデータ転送制御装置、電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。
【０１７２】
また本実施形態では、ＳＡＴＡへの本発明の適用例について説明したが、本発明は、ＳＡＴＡと同様の思想に基づく規格や、ＳＡＴＡ（ＳＡＴＡ Ｉ、ＳＡＴＡ II、ＳＡＳ）を発展させた規格等にも適用できる。
【図面の簡単な説明】
【０１７３】
【図１】本実施形態のデータ転送制御装置の構成例。
【図２】図２（Ａ）、図２（Ｂ）はＰＡＴＡ、ＳＡＴＡのシステム構成例。
【図３】ＳＲＳＴ処理の説明図。
【図４】データ転送制御装置の各ブロックの詳細な構成及び接続関係を示す図。
【図５】図５（Ａ）〜図５（Ｃ）はＳＲＳＴ処理における本実施形態の動作の説明図。
【図６】図６（Ａ）〜図６（Ｃ）はＳＲＳＴ処理における本実施形態の動作の説明図。
【図７】ＳＲＳＴ処理における信号波形例。
【図８】ＳＲＳＴ処理における信号波形例。
【図９】図９（Ａ）〜図９（Ｃ）はコマンド処理における本実施形態の動作の説明図。
【図１０】自動ウェイクアップのシーケンスフローのステート遷移図。
【図１１】本実施形態のデータ転送制御装置の詳細な構成例。
【図１２】図１２（Ａ）、図１２（Ｂ）はＰＩＯリード、ＰＩＯライトの信号波形例。
【図１３】図１３（Ａ）、図１３（Ｂ）はＤＭＡリード、ＤＭＡライトの信号波形例。
【図１４】ＳＡＴＡの送信側のデータ処理の説明図。
【図１５】ＳＡＴＡの受信側のデータ処理の説明図。
【図１６】ＳＡＴＡＩ／Ｆの構成例。
【図１７】シーケンスコントローラの構成例。
【図１８】タスクファイル・レジスタのフォーマット例。
【図１９】電子機器の構成例。
【符号の説明】
【０１７４】
２  ホスト、４  デバイス、１０  ＰＡＴＡＩ／Ｆ、
１２  タスクファイル・レジスタ（ＴＦＲ）、１４  転送コントローラ、
１６  コマンドレジスタ、１８  コントロールレジスタ、
２０  パワーマネージメントコントローラ、２２  コマンドキュー、
２４  ＳＲＳＴ１キュー、２６  ＳＲＳＴ０キュー、
３０  シーケンスコントローラ、３２  レジスタ更新部、
３４  初期化シーケンス管理部、
３６  パラメータ書き換え部、３８  ＤＭＡ転送設定記憶部、４０  転送制御部、
４２  モニタ部、４４  制御信号生成部、５０  ＳＡＴＡＩ／Ｆ、
５２  シャドウ・タスクファイル・レジスタ（ＳＦＲ）、５４  コマンドレジスタ、
５８  コントロールレジスタ、７０  データバッファ、７２  メモリコントローラ、
７４  ＦＩＦＯメモリ、１１０  トランスポートコントローラ、
１１８  割りこみコントローラ、１２０  送信ＦＩＦＯ、１２２  受信ＦＩＦＯ、
１３０  ＦＩＳ生成回路、１３２  ＦＩＳデコード回路、１５０  リンクコントローラ、
１６０  リンクステート制御回路、１７０  パワーマネージメント制御回路、
１８０  インターフェース初期化制御回路、１９０  フレーム生成回路、
１９２  フレームデコード回路、２００  物理層回路、２１０  トランスミッタ、
２２０  レシーバ、２３０  ＯＯＢ検出回路、２４０  クロック生成回路
【図１】
2008242701.tif 000003
【図２】
2008242701.tif 000004
【図３】
2008242701.tif 000005
【図４】
2008242701.tif 000006
【図５】
2008242701.tif 000007
【図６】
2008242701.tif 000008
【図７】
2008242701.tif 000009
【図８】
2008242701.tif 000010
【図９】
2008242701.tif 000011
【図１０】
2008242701.tif 000012
【図１１】
2008242701.tif 000013
【図１２】
2008242701.tif 000014
【図１３】
2008242701.tif 000015
【図１４】
2008242701.tif 000016
【図１５】
2008242701.tif 000017
【図１６】
2008242701.tif 000018
【図１７】
2008242701.tif 000019
【図１８】
2008242701.tif 000020
【図１９】
2008242701.tif 000021