(57)【要約】【課題】コマンド制御装置に対し、ｅ−ＳＡＴＡのデバイスポートを介して複数の外部装置が接続された際に、コマンド応答速度を高速化する。【解決手段】接続された外部機器の種類や動作速度、発行されたコマンドの種類、コマンドごとの発行頻度、レスポンスを構成するＦＩＳの数、転送するデータ量に応じて優先度を定め、優先度の高いコマンド処理を優先して行い、これが終了するまで他のコマンド処理を待機させる。例えば動作速度の速いＨＤＤに対するコマンド処理を実行中であれば、これよりも動作速度の遅いＯＤＤからの割込みがあっても、前者が全て終了するまでは後者を待機させる。【選択図】図６
2011145870.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部装置に対してコマンドを発行して送信し該コマンドに応じて前記外部装置が発行したレスポンスを受信して処理するコマンド制御装置であって、
前記外部装置が接続され該外部装置との間で前記コマンドとレスポンスをＦＩＳで授受する複数のデバイスポートと、
該複数のデバイスポートに対して前記コマンドを分配して供給し、前記複数のデバイスポートから供給された前記レスポンスからいずれかを選択するポートマルチプライヤと、
前記コマンドを発行して前記ポートマルチプライヤに供給し、前記ポートマルチプライヤから供給された前記レスポンスを処理し、前記ポートマルチプライヤにおける前記コマンドの分配と前記レスポンスの選択を制御するホストポートを有し、
該ホストポートは、前記複数のデバイスポートの一つを所定の事項に基づき優先デバイスポートと定め、前記優先デバイスポートを介して前記外部装置と前記コマンドとレスポンスを授受する場合には、前記コマンドとレスポンスを構成するＦＩＳの授受が完了するまでは他のデバイスポートとのＦＩＳの授受を行わないように前記ポートマルチプライヤを制御することを特徴とするコマンド制御装置。
【請求項２】
請求項１に記載のコマンド制御装置において、前記優先デバイスポートを定めるための所定の事項とは、前記外部機器の種類、前記外部機器の動作速度、前記コマンドの種類、前記コマンドの発行頻度、前記レスポンスを構成するＦＩＳの数、前記レスポンスが含む転送データ量のうち少なくも一つであることを特徴とするコマンド制御装置。
【請求項３】
一つの優先デバイスポートを含む複数のデバイスポートを介して、外部装置に対してコマンドを発行して送信し該コマンドに応じて前記外部装置が発行したレスポンスを受信して処理するホストポートを有するコマンド制御装置のコマンド制御方法であって、
前記ホストポートが前記デバイスポートに対してＲｅａｄコマンドを発行した際に、前記優先デバイスポートに対して前記コマンドを発行したか否かを判定するＲｅａｄコマンド判定ステップと、
該Ｒｅａｄコマンド判定ステップでの判定の結果、前記優先デバイスポートに対して前記Ｒｅａｄコマンドを発生したと判定された場合にはコマンド処理中であることを示すフラグを有効にする有効フラグ設定ステップ
を有するＲｅａｄコマンド発行時のフラグ設定フローと、
前記Ｒｅａｄコマンドに対するレスポンスが終了した際に、前記優先デバイスポートに対するコマンド処理が終了したか否かを判定するコマンド処理終了判定ステップと、
該コマンド処理終了判定ステップでの判定の結果、前記優先デバイスポートに対するコマンド処理が終了したと判定された場合にはコマンド処理中であることを示すフラグを無効にする無効フラグ設定ステップ
を有する無効フラグ設定フローと、
前記外部装置が前記デバイスポートに対してデータ割込みを行った際に、前記優先デバイスポートに対するデータ割込みであるか否かを判定する割込み判定ステップを有し、
該割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みであると判定された場合には、前記割込みデータを前記ホストポートに送信し、
前記割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みではないと判定されない場合には、前記有効フラグ設定フロー及び前記無効フラグ設定フローで設定された前記フラグを参照し、
前記フラグが有効である場合には、前記フラグが無効になるまで前記割込みデータを待機させ、
前記フラグが無効である場合には、前記割込みデータを前記ホストポートに送信することを特徴とするコマンド制御装置のコマンド制御方法。
【請求項４】
一つの優先デバイスポートを含む複数のデバイスポートを介して、外部装置に対してコマンドを発行して送信し該コマンドに応じて前記外部装置が発行したレスポンスを受信して処理するホストポートを有するコマンド制御装置のコマンド制御方法であって、
前記ホストポートが前記デバイスポートに対してコマンドを発行した際に、前記優先デバイスポートに対して前記コマンドが発行されたか否かを判定するコマンド判定ステップと、
該コマンド判定ステップでの判定の結果、前記優先デバイスポートに対して前記コマンドが発行されたと判定された場合には前記コマンドがＨＤＤへのＲｅａｄコマンドであるか否かを判定するＨＤＤＲｅａｄコマンド判定ステップと、
該ＨＤＤＲｅａｄコマンド判定ステップでの判定の結果、前記コマンドがＨＤＤへのＲｅａｄコマンドであると判定された場合には前記優先デバイスポートがコマンド処理中であることを示すフラグを有効にする優先デバイスポートの有効フラグ設定ステップと、
前記コマンド判定ステップでの判定の結果、前記優先デバイスポートに対して前記コマンドが発行されていないと判定された場合には前記コマンドがＯＤＤへのＲｅａｄコマンドであるか否かを判定するＯＤＤＲｅａｄコマンド判定ステップと、
該ＯＤＤＲｅａｄコマンド判定での判定の結果、前記コマンドがＯＤＤへのＲｅａｄコマンドであると判定された場合には、前記優先デバイスポートの有効フラグ設定ステップで設定された前記フラグを参照し、前記フラグが有効である場合には前記コマンドを受信したデバイスポートがコマンド処理中であることを示すフラグを有効にする非優先デバイスポートの有効フラグ設定ステップ
を有する有効フラグ設定フローと、
前記コマンドに対するレスポンスが終了した際に、前記優先デバイスポートに対するコマンド処理が終了したか否かを判定するコマンド処理終了判定ステップと、
該コマンド処理終了判定ステップでの判定の結果、前記優先デバイスポートに対するコマンド処理が終了したと判定された場合には前記優先デバイスポートがコマンド処理中であることを示すフラグを無効にし、前記優先デバイスポート以外のデバイスポートに対するコマンド処理が終了したと判定された場合には前記非優先デバイスポートがコマンド処理中であることを示すフラグを無効にする無効フラグ設定ステップ
を有する無効フラグ設定フローと、
前記外部装置が前記デバイスポートに対してデータ割込みを行った際に、前記優先デバイスポートに対するデータ割込みであるか否かを判定する割込み判定ステップを有し、
該割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みであると判定された場合には、前記割込みデータを前記ホストポートに送信し、
前記割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みではないと判定されない場合には、前記有効フラグ設定フロー及び前記無効フラグ設定フローで設定された前記非優先デバイスポートのフラグを参照し、
前記フラグが有効である場合には、前記フラグが無効になるまで前記割込みデータを待機させ、
前記フラグが無効である場合には、前記割込みデータを前記ホストポートに送信することを特徴とするコマンド制御装置のコマンド制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンド制御装置、及びコマンド制御装置のコマンド制御方法に係り、特にコマンド応答速度を向上したコマンド制御装置、及びコマンド制御装置のコマンド制御方法に関するものである。
【背景技術】
【０００２】
ＰＣ（Personal Computer）などのホスト装置と、内蔵するＨＤＤ（Hard Disk Drive）やＯＤＤ（Optical Disk Drive）との間のインタフェース方式は、処理速度の高速化と省スペース化のため、データを並列に送るＰＡＴＡ（Parallel Advanced Technology Attachment）から直列に送るＳＡＴＡ（Serial Advanced Technology Attachment）への移行が進んでいる。ＳＡＴＡにおいては伝送するデータのビットレートが高く処理速度が速いため、例えば消費電力を低減するための技術開発が進められている。
特許文献１においては、ＳＡＴＡのプロトコルを維持しながらパワーセーブを行う方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１８６４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
昨今のＰＣでは、前記したＳＡＴＡのようなＰＣに内蔵した機器に対するインタフェースとは別に、ＵＳＢ（Universal Serial Bus）３．０やｅ−ＳＡＴＡのようにＰＣの外部機器に対するインタフェースの高速化が進んでいる。これらは複数の外部機器を接続できるようにすることで、いっそう利便性を高めており、例えばＰＣに複数のＨＤＤやＯＤＤを外付けして拡張メモリとする際のインタフェースを提供している。
【０００５】
例えばｅ−ＳＡＴＡの場合、ＳＡＴＡケーブル一本で最大１５個の外部機器との接続をするための取決めであるポートマルチプライヤやマルチレーンに基づき、外部機器を接続するようにしている。そのうち、ポートマルチプライヤでは外部機器との通信をＦＩＳ（File Input Stream）単位で行っている。ＦＩＳはコマンドやレスポンスを構成する要素であり、機能に応じて必要とするデータ容量を有する。そのデータ容量は４バイトの倍数であって、冒頭に付されたコードでデータ容量を知ることができる。
【０００６】
ＰＣのホスト装置と接続された複数の外部機器との間では、発生した割込みに応じて、コマンドやレスポンスのＦＩＳが完結するまでＦＩＳを転送しながら通信を行っている。一つのコマンドやレスポンスは、複数のＦＩＳにより構成される。従って、通信の途中で割込みが発生することにより、一つの外部機器とのコマンドとレスポンスの通信が完了しないうちに、他の外部機器と通信を行うこととなる。すなわち、個々のＦＩＳに応じた重み付けなどをしてＦＩＳを振分け、外部機器と通信を行うような配慮はされていなかった。
【０００７】
従い、例えばホスト装置が高速転送のできる外部機器からのレスポンスを受信中であっても、転送速度の遅い外部機器からのレスポンスが割込んだ場合に、後者のＦＩＳが先に送受信されて前者のＦＩＳは送受信待ちとなる。このため実質的に前者の応答速度が低下するなどの問題があった。
本発明の目的は前記した問題に鑑み、コマンド応答速度を向上したコマンド制御装置、及びコマンド制御装置のコマンド制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
前記課題を解決するため本発明は、複数の外部装置に対してコマンドを発行して送信し該コマンドに応じて前記外部装置が発行したレスポンスを受信して処理するコマンド制御装置であって、前記外部装置が接続され該外部装置との間で前記コマンドとレスポンスをＦＩＳで授受する複数のデバイスポートと、該複数のデバイスポートに対して前記コマンドを分配して供給し、前記複数のデバイスポートから供給された前記レスポンスからいずれかを選択するポートマルチプライヤと、前記コマンドを発行して前記ポートマルチプライヤに供給し、前記ポートマルチプライヤから供給された前記レスポンスを処理し、前記ポートマルチプライヤにおける前記コマンドの分配と前記レスポンスの選択を制御するホストポートを有し、該ホストポートは、前記複数のデバイスポートの一つを所定の事項に基づき優先デバイスポートと定め、前記優先デバイスポートを介して前記外部装置と前記コマンドとレスポンスを授受する場合には、前記コマンドとレスポンスを構成するＦＩＳの授受が完了するまでは他のデバイスポートとのＦＩＳの授受を行わないように前記ポートマルチプライヤを制御することを特徴としている。
【０００９】
また本発明は、一つの優先デバイスポートを含む複数のデバイスポートを介して、外部装置に対してコマンドを発行して送信し該コマンドに応じて前記外部装置が発行したレスポンスを受信して処理するホストポートを有するコマンド制御装置のコマンド制御方法であって、前記ホストポートが前記デバイスポートに対してＲｅａｄコマンドを発行した際に、前記優先デバイスポートに対して前記コマンドを発行したか否かを判定するＲｅａｄコマンド判定ステップと、該Ｒｅａｄコマンド判定ステップでの判定の結果、前記優先デバイスポートに対して前記Ｒｅａｄコマンドを発生したと判定された場合にはコマンド処理中であることを示すフラグを有効にする有効フラグ設定ステップを有するＲｅａｄコマンド発行時のフラグ設定フローと、前記Ｒｅａｄコマンドに対するレスポンスが終了した際に、前記優先デバイスポートに対するコマンド処理が終了したか否かを判定するコマンド処理終了判定ステップと、該コマンド処理終了判定ステップでの判定の結果、前記優先デバイスポートに対するコマンド処理が終了したと判定された場合にはコマンド処理中であることを示すフラグを無効にする無効フラグ設定ステップを有する無効フラグ設定フローと、前記外部装置が前記デバイスポートに対してデータ割込みを行った際に、前記優先デバイスポートに対するデータ割込みであるか否かを判定する割込み判定ステップを有し、該割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みであると判定された場合には、前記割込みデータを前記ホストポートに送信し、前記割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みではないと判定されない場合には、前記有効フラグ設定フロー及び前記無効フラグ設定フローで設定された前記フラグを参照し、前記フラグが有効である場合には、前記フラグが無効になるまで前記割込みデータを待機させ、前記フラグが無効である場合には、前記割込みデータを前記ホストポートに送信することを特徴としている。
【００１０】
また本発明は、一つの優先デバイスポートを含む複数のデバイスポートを介して、外部装置に対してコマンドを発行して送信し該コマンドに応じて前記外部装置が発行したレスポンスを受信して処理するホストポートを有するコマンド制御装置のコマンド制御方法であって、前記ホストポートが前記デバイスポートに対してコマンドを発行した際に、前記優先デバイスポートに対して前記コマンドが発行されたか否かを判定するコマンド判定ステップと、該コマンド判定ステップでの判定の結果、前記優先デバイスポートに対して前記コマンドが発行されたと判定された場合には前記コマンドがＨＤＤへのＲｅａｄコマンドであるか否かを判定するＨＤＤＲｅａｄコマンド判定ステップと、該ＨＤＤＲｅａｄコマンド判定ステップでの判定の結果、前記コマンドがＨＤＤへのＲｅａｄコマンドであると判定された場合には前記優先デバイスポートがコマンド処理中であることを示すフラグを有効にする優先デバイスポートの有効フラグ設定ステップと、前記コマンド判定ステップでの判定の結果、前記優先デバイスポートに対して前記コマンドが発行されていないと判定された場合には前記コマンドがＯＤＤへのＲｅａｄコマンドであるか否かを判定するＯＤＤＲｅａｄコマンド判定ステップと、該ＯＤＤＲｅａｄコマンド判定での判定の結果、前記コマンドがＯＤＤへのＲｅａｄコマンドであると判定された場合には、前記優先デバイスポートの有効フラグ設定ステップで設定された前記フラグを参照し、前記フラグが有効である場合には前記コマンドを受信したデバイスポートがコマンド処理中であることを示すフラグを有効にする非優先デバイスポートの有効フラグ設定ステップを有する有効フラグ設定フローと、前記コマンドに対するレスポンスが終了した際に、前記優先デバイスポートに対するコマンド処理が終了したか否かを判定するコマンド処理終了判定ステップと、該コマンド処理終了判定ステップでの判定の結果、前記優先デバイスポートに対するコマンド処理が終了したと判定された場合には前記優先デバイスポートがコマンド処理中であることを示すフラグを無効にし、前記優先デバイスポート以外のデバイスポートに対するコマンド処理が終了したと判定された場合には前記非優先デバイスポートがコマンド処理中であることを示すフラグを無効にする無効フラグ設定ステップを有する無効フラグ設定フローと、前記外部装置が前記デバイスポートに対してデータ割込みを行った際に、前記優先デバイスポートに対するデータ割込みであるか否かを判定する割込み判定ステップを有し、該割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みであると判定された場合には、前記割込みデータを前記ホストポートに送信し、前記割込み判定ステップでの判定の結果、前記優先デバイスポートに対するデータ割込みではないと判定されない場合には、前記有効フラグ設定フロー及び前記無効フラグ設定フローで設定された前記非優先デバイスポートのフラグを参照し、前記フラグが有効である場合には、前記フラグが無効になるまで前記割込みデータを待機させ、前記フラグが無効である場合には、前記割込みデータを前記ホストポートに送信することを特徴としている。
【発明の効果】
【００１１】
本発明によれば、コマンド応答速度を向上したコマンド制御装置、及びコマンド制御装置のコマンド制御方法を提供でき、ユーザの使い勝手の向上に寄与できるという効果がある。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例に関わるコマンド制御装置のブロック図である。
【図２】従来のコマンド制御装置の動作を示すシーケンス図である。
【図３】本発明の一実施例に関わるコマンド制御装置のシーケンス図である。
【図４】本発明の一実施例に関わるコマンド受信割込み処理のフロー図である。
【図５】本発明の一実施例に関わるコマンド終了割込み処理のフロー図である。
【図６】本発明の一実施例に関わるデータ送信割込み処理のフロー図である。
【図７】本発明の一実施例に関わるコマンド受信割込み処理の別なフロー図である。
【図８】本発明の一実施例に関わるコマンド終了割込み処理の別なフロー図である。
【図９】本発明の一実施例に関わるデータ送信割込み処理の別なフロー図である。
【発明を実施するための形態】
【００１３】
本発明の実施例においては、個々のＦＩＳに応じた重み付けなどをしたうえでＦＩＳを振分けて、ホスト装置と外部機器が通信を行うことに一つの特徴がある。
前記した重み付けの例を述べる。一つ目の例として、接続された外部機器の転送速度に応じてポートマルチプライヤを切替えることでＦＩＳを振分ける場合がある。例えば転送速度が６．０Ｇｂｐｓと３．０Ｇｂｐｓの外部機器が接続されているとすれば、前者に係るレスポンスのＦＩＳを優先する。
【００１４】
二つ目の例として、接続された外部装置に対してホスト装置が発行するコマンドに応じてポートマルチプライヤを切替える場合がある。詳しくは後記する。
三つ目の例として、接続された外部装置の種類に応じてポートマルチプライヤを切替える場合がある。例えばＨＤＤとＯＤＤが接続されるとすれば、一般に応答速度の速いＨＤＤからのレスポンスのＦＩＳを優先する。
【００１５】
四つ目の例として、接続された外部装置の使用頻度に応じてポートマルチプライヤを切替える場合がある。例えばホスト装置が発行するコマンドの数を集計して、発行数の多い外部装置からのレスポンスのＦＩＳを優先する。
五つ目の例として、接続された外部装置に対してホスト装置が発行するコマンドから、例えば通信に必要なＦＩＳの数を算出し、これに応じてポートマルチプライヤを切替える場合がある。ＦＩＳの数が大きい方を優先するか否かは、その場合に応じて定めれば良い。
六つ目の例として、レスポンスにデータ転送が伴う際に転送するデータ量の大小に応じて、ポートマルチプライヤを切替える場合がある。データ量が大きい方を優先するか否かは、やはりその場合に応じて定めれば良い。
【００１６】
以下、本発明の実施例について図を参照しながら説明する。
図１は、本発明の一実施例に関わるコマンド制御装置のブロック図である。ここではＳＡＴＡのデバイスポートとして、デバイスポート０（１０６）とデバイスポート１（１０７）の二つを有する場合を示したが、もちろんこれは一例であって、さらに多くのデバイスポートを有する場合も本実施例の範疇にある。
【００１７】
ホストポート１０１は、デバイスポート０（１０６）やデバイスポート１（１０７）に接続された外部機器（図示せず）に対するコマンドを生成し、ポートマルチプライヤ１０３を制御して対象とする外部機器にコマンドを送信する。ポートマルチプライヤ１０３は分配器（切替え器）であって、ホストポート１０１の制御に従い、前記コマンドを対象とする外部機器に、前記いずれかのデバイスポートを介して分配する。
【００１８】
外部機器から供給されたレスポンスは、デバイスポート０（１０６）ないしデバイスポート１（１０７）より入力され、ポートマルチプライヤ１０３でホストポート１０１の指示に基づきいずれかが選択されて、前記コマンドを発生したホストポート１０１に供給される。ホストポート１０１は供給されたレスポンスに応じて所定の処理を行う。なお、バッファ１０２、１０４、１０５は、前記した各構成要素の間で送受信されるコマンドやレスポンスを一時的に格納するバッファメモリである。ＰＬＬ（Phase Lock Loop）１０８はポートマルチプライヤ１０３へ供給する動作クロックの発生器である。例えば前記したデバイスポートが二つであれば、少なくも基本動作クロックと、これに対して２倍の周波数である位相同期した動作クロックを生成して、ポートマルチプライヤ１０３へ供給する。
【００１９】
図２は、従来のコマンド制御装置の動作を示すシーケンス図であり、図３は、本発明の一実施例に関わるコマンド制御装置のシーケンス図である。これを用いて、例えば前記した一つ目の例や三つ目の例、すなわち接続された外部機器の転送速度や種類に応じてポートマルチプライヤを切替える場合のシーケンスを説明する。
【００２０】
図２に示すように、従来のコマンド制御装置では前記したような重み付けによるＦＩＳの振分けは行っていない。前記したホストポート１０１やポートマルチプライヤ１０３を含むホスト装置からＨＤＤに対して、ＨＤＤに対するＲｅａｄコマンドとして定められたＲｅａｄＤＭＡのＲｅａｄコマンド２０１が発せられ、これに対してＨＤＤからホスト装置に対してデータのレスポンス２０５と２０７を返す場合を考える。レスポンス２０５と２０７は各々一つのＦＩＳである。この時、既にホスト装置からＯＤＤに対してＲｅａｄコマンド２０４が発せられており、レスポンス２０５と２０７の間のタイミングで、ＯＤＤからホスト装置に対してデータのレスポンス２０６が割込んだとする。レスポンス２０６、及びこれに続くレスポンス２０８も各々一つのＦＩＳである。ポートマルチプライヤ１０３は、ＨＤＤからのレスポンスの途中からＯＤＤからのレスポンスに切替えてホスト装置にＦＩＳを送ることになる。したがいＨＤＤからのレスポンス２０５に引続きレスポンス２０７があったとしても、レスポンス２０７はＯＤＤからのレスポンス２０６よりも後でホスト装置へ供給されることとなる。この場合、ＨＤＤは応答速度が速いことが特徴であるにもかかわらず、実質的な応答速度は低下する問題がある。
【００２１】
これに対して本実施例においては、外部装置の転送速度ないし種類に応じてレスポンスを構成するＦＩＳの重み付けをしており、例えばＨＤＤからのレスポンスを優先している。このため、図３に示すようにＨＤＤからの全てのレスポンスであるレスポンス２０５と２０７が終了するまで、ＯＤＤからのホスト装置へのレスポンス２０６を待機させている。このため、ＨＤＤの実質的な応答速度が低下する問題は解消される。
なお図２と図３において、ＯＤＤに対するＲｅａｄコマンド２０４に先行して、ＡＴＡＰＩ２０２と記したＲｅａｄコマンドと、これに対するレスポンス２０３を記している。これは、ＯＤＤとのインタフェースでは、ＡＴＡＰＩコマンド２０２に対してＯＤＤがＲｅａｄできる状態にあることを示すレスポンス２０３をホスト装置に返した後、さらにＲｅａｄコマンド２０４をホスト装置からＯＤＤに送ることで、データのレスポンス２０６を得る取決めであることを反映している。
【００２２】
次に図３のシーケンスに対応したフロー図を説明する。図４は、本発明の一実施例に関わるコマンド受信割込み処理のフロー図である。図５は、本発明の一実施例に関わるコマンド終了割込み処理のフロー図である。図６は、本発明の一実施例に関わるデータ送信割込み処理のフロー図である。
以下、デバイスポートとしてはデバイスポート０（１０６）とデバイスポート１（１０７）の二つがある場合を例にとって説明する。またデバイスポート１（１０７）に対してデバイスポート０（１０６）は優先デバイスポートとする。例えば装置を起動し、あるいは外部機器が接続された際の機器認証において、ホストポート１０１は外部機器の種類や動作速度を判別する。外部機器として例えばＨＤＤとＯＤＤが接続されていた場合には、ホストポート１０１は動作速度の速いＨＤＤが接続されたデバイスポートをデバイスポート０（１０６）と定義し、ＯＤＤが接続されたデバイスポートをデバイスポート１（１０７）と定義するものとする。
【００２３】
図４のフローは、ホストポート１０１がＲｅａｄコマンドを発行した時に開始される。ステップＳ４０１では、ホストポート１０１は発行したＲｅａｄコマンドがデバイスポート０（１０６）へのコマンド（たとえばＲｅａｄＤＭＡコマンド）であるか否かを判定する。デバイスポート０（１０６）へのコマンドである場合には（図中のＹ）、ステップＳ４０２でホストポート１０１は、デバイスポート０（１０６）がコマンド処理中であることを示すフラグを有効にし、内蔵するメモリ（或いは先のバッファメモリ１０２でも良い。以下同様）に記憶して次のＲｅａｄコマンドが発行されるまで待機する。デバイスポート０（１０６）へのコマンドでない場合には（図中のＮ）、そのまま次のＲｅａｄコマンドが発行されるまで待機する。
【００２４】
図５のフローは、Ｒｅａｄコマンドに対するレスポンスが終了した時に開始される。ステップＳ５０１ではホストポート１０１は、デバイスポート０（１０６）のコマンド処理が終了したか否かを判定する。すなわち、レスポンスの中のあるＦＩＳが終了した際に、全てのレスポンスのＦＩＳが終了したか否かをＦＩＳが有する情報に基づき判定する。デバイスポート０（１０６）のコマンド処理が終了した場合には（図中のＹ）、ステップＳ５０２でホストポート１０１は、デバイスポート０（１０６）がコマンド処理中であることを示すフラグを無効にし、内蔵するメモリに記憶して次のレスポンスの終了まで待機する。デバイスポート０（１０６）のコマンド処理の終了ではない場合には（図中のＮ、例えばデバイスポート１（１０７）のコマンド処理終了の場合が該当する）、そのまま次のレスポンスの終了まで待機する。
【００２５】
図６のフローは、いずれかのデバイスポートにデータ割込みが発生した時に開始される。ステップＳ６０１ではホストポート１０１は、デバイスポート０（１０６）に対して外部装置からのデータ割込みがあるか否かを判定する。デバイスポート０（１０６）に対してデータ割込みがある場合には（図中のＹ）、ステップＳ６０３でポートマルチプライヤ１０３は、割込んだデータをホストポート１０１へ送信して次のデータ割込みまで待機する。デバイスポート０（１０６）へのデータ割込みでない場合には（図中のＮ）、デバイスポート１（１０７）へのデータ割込みであるので、ステップＳ６０２でホストポート１０１は、デバイスポート０（１０６）が現在コマンド処理中であるか否かを判定する。この判定は、先に図４のステップＳ４０２と図５のステップＳ５０２で記載した、コマンド処理に係るフラグを参照することにより行われる。
【００２６】
デバイスポート０（１０６）が現在コマンド処理中である場合には（図中のＹ）、そのままデバイスポート０（１０６）の処理を優先させるため、ポートマルチプライヤ１０３は、デバイスポート１（１０７）に割込んだデータをホストポート１０１に送信せずに、前記処理が終了するまで待機させる。デバイスポート０（１０６）が現在コマンド処理中でない場合には（図中のＮ）、ステップＳ６０３でポートマルチプライヤ１０３は、デバイスポート１（１０７）に割込んだデータをホストポート１０１へ送信して、次のデータ割込みまで待機する。ステップＳ６０２でデバイスポート０（１０６）が現在コマンド処理中である（図中のＹ）と判定された場合でも、デバイスポート１（１０７）に割込んだデータは、デバイスポート０（１０６）のコマンド処理が終了した後、ホストポート１０１へ送信される。
【００２７】
図６はＨＤＤがデバイスポート０（１０６）に、ＯＤＤがデバイスポート１（１０７）に接続された場合に、前記したようなＨＤＤの実質的な応答速度を低下させない効果を有する。すなわち図５において、ホストポート１０１がデバイスポート０（１０６）へ送信したコマンドに対するレスポンスのＦＩＳが完了するまでは（例えば図３の例ではレスポンス２０７が完了するまでは）、デバイスポート０（１０６）がコマンド処理中であることを示すフラグを有効にしていることにより、この効果を得ている。
【００２８】
次に本発明の別な実施例について説明する。図７は、本発明の一実施例に関わるコマンド受信割込み処理の別なフロー図である。図８は、本発明の一実施例に関わるコマンド終了割込み処理の別なフロー図である。図９は、本発明の一実施例に関わるデータ送信割込み処理の別なフロー図である。これらはホスト装置とＨＤＤがＨＤＤに対するＲｅａｄコマンドであるｒｅａｄＤＭＡを処理している際に、ホストポート１０１がＯＤＤに対するＲｅａｄコマンドであるＲｅａｄ１０／１２を発行した場合、ＯＤＤのこのコマンドに対するレスポンスであるデータ転送を待機させる例を示している。これは例えば前記した二つ目の例、すなわちコマンドの種類に応じてポートマルチプライヤ１０３を切替える場合に対応している。
【００２９】
図７のフローは、ホストポート１０１がコマンドを発行した時に開始される。ステップＳ７０１でホストポート１０１は、発行したコマンドがデバイスポート０（１０６）へのコマンドであるか否かを判定する。ステップＳ７０１での判定の結果、デバイスポート０（１０６）へのコマンドである場合には（図中のＹ）、ステップＳ７０２でホストポート１０１は、コマンドはＨＤＤに対するＲｅａｄコマンドであるｒｅａｄＤＭＡであるか否かを判定する。ステップＳ７０２での判定の結果、コマンドがｒｅａｄＤＭＡであると判定された場合には（図中のＹ）、ステップＳ７０３でホストポート１０１は、デバイスポート０（１０６）がコマンド処理中であることを示すフラグを有効にし、内蔵するメモリに記憶して次のコマンドが発行されるまで待機する。コマンドがｒｅａｄＤＭＡではないと判定された場合には（図中のＮ）、そのまま次のコマンドが発行されるまで待機する。
【００３０】
先のステップＳ７０１で、デバイスポート０（１０６）へのコマンドではないと判定された場合には（図中のＮ）、ステップＳ７０４でホストポート１０１は、デバイスポート１（１０７）にＯＤＤに対するＲｅａｄコマンドであるｒｅａｄ１０／１２が発行されているか否かを判定する。ｒｅａｄ１０／１２が発行された場合には（図中のＹ）、ステップＳ７０５でホストポート１０１は、デバイスポート０（１０６）がｒｅａｄＤＭＡコマンドを処理中であるか否かを判定する。この判定は、先にステップＳ７０３（或いは後記するステップＳ８０２）で設定されるフラグを参照して行われる。ステップＳ７０５での判定の結果、デバイスポート０（１０６）がｒｅａｄＤＭＡコマンドを処理中であると判定された場合には（図中のＹ）、ステップＳ７０６でホストポート１０１は、デバイスポート１（１０７）がコマンド処理中であることを示すフラグを有効にし、内蔵するメモリに記憶して次のコマンドが発行されるまで待機する。
【００３１】
先のステップＳ７０４でｒｅａｄ１０／１２が発生されていないと判定された場合（図中のＮ）、及びステップＳ７０５でデバイスポート０（１０６）がｒｅａｄＤＭＡコマンドを処理中でないと判定された場合には（図中のＮ）、そのまま次のコマンドが発行されるまで待機する。
【００３２】
図８のフローは、コマンドに対するレスポンスが終了した時に開始される。ステップＳ８０１でホストポート１０１は、デバイスポート０（１０６）のコマンド処理が終了したか否かを判定する。ステップＳ８０１での判定の結果、コマンド処理が終了したと判定された場合には（図中のＹ）、ステップＳ８０２でホストポート１０１は、デバイスポート０（１０６）がコマンド処理中であることを示すフラグを無効にし、内蔵するメモリに記憶して次のレスポンス終了まで待機する。デバイスポート０（１０６）のコマンド処理の終了ではない場合には（図中のＮ）、デバイスポート１（１０７）のコマンド処理の終了であるので、ステップＳ８０３でホストポート１０１は、デバイスポート１（１０７）がコマンド処理中であることを示すフラグを無効にし、内蔵するメモリに記憶して次のレスポンス終了まで待機する。
【００３３】
すなわち、デバイスポート１（１０７）がコマンド処理中であることを示すフラグとは、デバイスポート０（１０６）がｒｅａｄＤＭＡのコマンドに対する処理中である際、デバイスポート１（１０７）にｒｅａｄ１０／１２のコマンドがある場合に有効とされる。この時、後記するようにｒｅａｄ１０／１２のコマンドに応じてデバイスポート１（１０７）に割込んだレスポンスは、ホストポート１０１への転送を一時待機させられる。デバイスポート０（１０６）の前記した処理が終了して前記フラグは無効となると、後記するようにデバイスポート１（１０７）に割込んだデータの転送処理が行われる。
【００３４】
図９のフローは、いずれかのデバイスポートにデータ割込みが発生した時に開始される。ステップＳ９０１ではホストポート１０１は、デバイスポート０（１０６）に対して外部装置からのデータの割込みがあるか否かを判定する。ステップＳ９０１での判定の結果、データ割込みがあると判定された場合には（図中のＹ）、ステップＳ９０３でポートマルチプライヤ１０３は、割込んだデータをホストポート１０１へ送信して、次のデータ割込みまで待機する。デバイスポート０（１０６）へのデータ割込みではないと判定された場合には（図中のＮ）、デバイスポート１（１０７）へのデータ割込みであるので、ステップＳ９０２でホストポート１０１は、デバイスポート１（１０７）が現在Ｒｅａｄコマンド処理中であるか否かを判定する。この判定は、先に図７のステップＳ７０６と図８のステップＳ８０３で記載した、デバイスポート１（１０７）のコマンド処理に係るフラグを参照することにより行われる。すなわち、デバイスポート１（１０７）がＲｅａｄコマンド処理中であるとは、ＯＤＤに対するＲｅａｄコマンドであるｒｅａｄ１０／１２が発行されおり、一方デバイスポート０（１０６）はＨＤＤに対するＲｅａｄコマンドであるＲｅａｄＤＭＡに対する処理を行っている状態を示す。
【００３５】
ステップＳ９０２での判定の結果、デバイスポート１（１０７）がコマンド処理中であると判定された場合には（図中のＹ）、デバイスポート０（１０６）側の処理を優先させるため、ポートマルチプライヤ１０３は、デバイスポート１（１０７）に割込んだデータをホストポート１０１に送信せずに、前記処理が終了するまで待機させる。デバイスポート１（１０７）がコマンド処理中でないと判定された場合には（図中のＮ）、ステップＳ９０３でポートマルチプライヤ１０３は、デバイスポート１（１０７）に割込んだデータをホストポート１０１へ送信して、次のデータ割込みまで待機する。ステップＳ９０２でデバイスポート１（１０７）が現在コマンド処理中であると判定された場合でも、デバイスポート１（１０７）に割込んだデータは、デバイスポート０（１０６）のコマンド処理が終了した後、ホストポート１０１へ送信される。
図９は、Ｒｅａｄコマンドの種類を判別したうえで、ＨＤＤからのレスポンスであるデータを優先し、前記したようなＨＤＤの実質的な応答速度を低下させない効果を有する。すなわち図８において、ホストポート１０１がデバイスポート０（１０６）へ送信したコマンドに対するレスポンスのＦＩＳが完了するまでは（例えば図３の例ではレスポンス２０７が完了するまでは）、デバイスポート１（１０７）がコマンド処理中であることを示すフラグを有効にしていることにより、この効果を得ている。
【００３６】
ここまで示した実施形態は一例であって、本発明を限定するものではない。例えば図１に示したコマンド制御装置については、いくつかの変形例が考えられる。このほかにも本発明の趣旨に基づきながら異なる実施形態を考えられるが、いずれも本発明の範疇にある。
【符号の説明】
【００３７】
１０１：ホストポート、１０３：ポートマルチプライヤ、１０６，１０７：デバイスポート。
【図１】
2011145870.tif 000003
【図２】
2011145870.tif 000004
【図３】
2011145870.tif 000005
【図４】
2011145870.tif 000006
【図５】
2011145870.tif 000007
【図６】
2011145870.tif 000008
【図７】
2011145870.tif 000009
【図８】
2011145870.tif 000010
【図９】
2011145870.tif 000011