(57)【要約】      （修正有）【課題】データ転送中に実行中のコマンドをキャンセルすることなく次のコマンドを受け取れるようにする。【解決手段】ホスト１１に対しデバイス側となるハードディスクコントローラ２８においてパケット転送用のリードデータをインターフェース回路部３０に対し入力中に、データのエラー訂正が不可能なアンコレクタブル・エラーが発生してデータ入力が停止しても、送信用ＦＩＦＯ６０には、エラーによる入力停止前の最後のデータが残っており、エラー転送終了転送制御部１８４が送信用ＦＩＦＯ６０に残留しているデータをエラー検出に基づき最後のデータとしてテール信号と共にリンク層４４に出力することで、パケットデータを完結させ、エラー発生までに得られたデータのパケットをホスト１１に転送する。【選択図】図１８
2010092493.tif 000002
【特許請求の範囲】
【請求項１】
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
前記アプリケーション層に設けられ、前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
前記送信用ＦＩＦＯに常に所定の１単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御部と、
データ送信中にエラーによりデータ入力が停止した場合、前記送信用ＦＩＦＯに滞留している１単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御部と、
を備えたことを特徴とするインターフェース装置。
【請求項２】
請求項１記載のインターフェース装置に於いて、前記入出力制御部は、前記テール信号がない場合に１単位のデータを前記送信用ＦＩＦＯに滞留させ、前記テール信号がある場合はデータを滞留させないことを特徴とするインターフェース装置。
【請求項３】
請求項１記載のインターフェース装置に於いて、前記入出力制御部は、前記送信用ＦＩＦＯに１単位のデータとして最小単位データを滞留させることを特徴とするインターフェース装置。
【請求項４】
物理層、リンク層、トランスポート層及びアプリケーション層を備え、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
前記アプリケーション層に設けられ、前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
前記送信用ＦＩＦＯに常に所定の１単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御ステップと、
データ送信中にエラーによりデータ入力が停止した場合、前記送信用ＦＩＦＯに滞留している１単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御ステップと、
を備えたことを特徴とするパケット転送方法。
【請求項５】
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信又は受信するパケット数を設定するパケット制御条件設定部と、
パケット転送中における前記設定パケット数への到達を検出して前記制御機能を停止又は起動するパケット制御実行回路部と、
を備えたことを特徴とするインターフェース装置。
【請求項６】
請求項５記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を解除するパケット数を設定し、
前記パケット制御実行回路部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時に前記抑止動作を解除することを特徴とするインターフェース装置。
【請求項７】
請求項５記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、
前記パケット制御実行回路部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時に前記パワーモードへの突入を指示することを特徴とするインターフェース装置。
【請求項８】
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信パケット又は受信パケットのパケット数を制御レジスタに設定するパケット制御条件設定ステップと、
パケット転送中における前記制御レジスタの設定パケット数への到達を検出して前記制御機能を起動又は停止するパケット制御実行ステップと、
を備えたことを特徴とするパケット転送方法。
【請求項９】
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定部と、
パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能を起動又は停止するパケット制御条件監視部と、
を備えたことを特徴とするインターフェース装置。
【請求項１０】
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定ステップと、
パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能の起動又は停止を指示するパケット制御条件監視ステップと、
を備えたことを特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストとデバイスとの間でコマンド及びデータをパケットにより転送するインターフェース装置及びパケット転送方法に関し、特にホストとデバイスの間をシリアル転送線により接続してパケットを転送するインターフェース装置及びパケット転送方法に関する。
【背景技術】
【０００２】
従来、ホストコンピュータとハードディスクドライブ等のデバイスとの間のインターフェースは、パラレル伝送線を使用したＡＴＡインターフェース（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）が主流であったが、近年、インターフェースの高速化とハードディスクドライブの大容量化に対応するため、シリアル伝送線を使用したシリアルＡＴＡインターフェース（ＳＡＴＡ）の実用化が推し進められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２２９１１５号公報
【特許文献２】特開２００１−１１７７２４号公報
【特許文献３】特開２００２−０５１０７２号公報
【特許文献４】特開平７−２６４２６２号公報
【特許文献５】特開２００３０２３４７１号公報
【特許文献６】特開平１１−３５５４９５号公報
【特許文献７】特開平７−９８６３３号公報
【特許文献８】特開平１１−２９８４５８号公報
【特許文献９】特開２００１−１９７０６７号公報
【特許文献１０】特開平３−２０１１５２号公報
【特許文献１１】特開２００１−３２５２０４号公報
【特許文献１２】実用新案登録第３０８７３５０号公報
【特許文献１３】特開２００３−６１４４号公報
【特許文献１４】特開２００１−５１０９６０号公報
【特許文献１５】特開昭６３−１８５２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のパラレルＡＴＡインターフェースにあっては、ホストからデバイス側となるハードディスクドライブのライトアクセス又はリードアクセスについては、ライトコマンド又はリードコマンドの発行からデータ転送を終了するまでの一連の伝送シーケンスの途中で、ホストが新たなコマンドを発行したとしても、コマンドに基づくデータ転送が完了するまで、ホストが新たに発行したコマンドは待たされる。
【０００５】
これは従来のパラレルＡＴＡインターフェースが、ホスト側及びデバイス側が同じタスクファイルレジスタを参照する構成を採用しているためであり、デバイス側のインターフェース回路にタスクファイルレジスタは１つしか設けられておらず、もしデータ転送中に、次のコマンドを受付けた場合、現在のコマンド実行中のタスクファイルレジスタの内容が破壊されてしまう。
【０００６】
このため、データ転送中は次のコマンドを受け取ることができず、データ転送中に次のコマンドを受け取るためには、実行中のデータ転送を強制的にキャンセルして次のコマンドを受け取るといった方法しかとれなかった。
【０００７】
現在、実用化が進展しているシリアルＡＴＡインターフェース（ＳＡＴＡ）にあっても、基本的に従来のパラレルＡＴＡインターフェースと同じ考えを流用しており、このためデバイス側の設けるタスクファイルレジスタは１つになる。このためシリアルＡＴＡインターフェースにあっても、従来のパラレルＡＴＡインターフェースと同様、データ転送中に次のコマンドの受信は不可能となる。
【０００８】
また従来のパラレルＡＴＡインターフェースにおいて、実行中のデータ転送をキャンセルして次のコマンドを受け取るといった方法を採用する場合、コマンド処理のキャンセルの判断をハードウェアで行っていたため、予め想定したケースに対してのみの対応となり、ファームウェアで行うよりも想定外のケースに対する柔軟性に欠けるという問題があり、これをシリアルＡＴＡインターフェースに流用すると、全く同じ問題が起きることになる。
【０００９】
本発明は、データ転送中に実行中のコマンドをキャンセルすることなく次のコマンドを受け取ることができるデバイス用のインターフェース装置及びパケット伝送方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
（データ転送中のコマンド受信）
本発明は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、トランスポート層に設けられ、物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、データ転送中に受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号（割込み信号）を出力するコマンド検出回路と、アプリケーション層に設けられ、受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部とを備えたことを特徴とする。
【００１１】
ここで転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、空き時間に受信して受信用ＦＩＦＯに格納されたコマンドパケットにつきコマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、コマンド解読部がデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用ＦＩＦＯにコマンド受信応答情報を格納してリンク層及び物理層を介してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部とを備えたことを特徴とする。
【００１２】
このような本発明のデバイス用のインターフェース装置によれば、データパケット転送中に１つのデータパケットの転送が終了するパケット区切りで空き時間を生成して次のコマンドを受信できるように、トランスポート層にパケット受信用ＦＩＦＯ、コマンド検出回路及び送信用ＦＩＦＯを、アプリケーション層に受信用タスクファイルレジスタ（タスクファイルレジスタＴＦＲ）と送信用タスクファイルレジスタ（タスク制御ファイルレジスタＴＣＲ）の２つのタスクファイルレジスタを追加し、データ転送中であってもコマンド検出回路で次のコマンドを検出したらファームウェアへ割り込みを発生させ、パケット受信用ＦＩＦＯにコマンドをストアしたまま実行中のコマンド処理を再開可能なように一時停止（サスペンド）させ、ファームウェアの指示によりパケット受信用ＦＩＦＯの次のコマンド内容を受信用タスクファイルレジスタのみにロードする。これにより送信用タスクファイルレジスタの内容を破壊せずにデータ転送中に次のコマンドを受け取ることができ、例えばデータ転送の継続かキャンセルかのコマンド処理が可能となる。
【００１３】
空き時間生成部は、ホストとの間で送信又は受信されるデータパケットの転送終了を検出して一定の空き時間を設定する。
【００１４】
転送再開部は、送信用ＦＩＦＯにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させる。
【００１５】
本発明の別の形態にあっては、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、データ転送中に受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号（割込み信号）を出力するコマンド検出回路と、受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットをホストに送信させる送信用ＦＩＦＯと、データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部とを備えたことを特徴とする。
【００１６】
この場合にも、転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、空き時間に受信して受信用ＦＩＦＯに格納されたコマンドパケットにつきコマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、コマンド解読部がデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用ＦＩＦＯにコマンド受信応答情報を格納してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部とを備えたことを特徴とする。
【００１７】
本発明は、デバイス用インターフェースのパケット転送方法を提供する。このパケット伝送方法が適用されるデバイス用のインターフェース装置は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、トランスポート層に設けられ、物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、データ転送中に受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号（割込み信号）を出力するコマンド検出回路と、アプリケーション層に設けられ、受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットをホストに送信させる送信用ＦＩＦＯとを備える。
【００１８】
そして本発明によるデバイス用インターフェースのパケット伝送方法は、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とする。
【００１９】
ここで、転送中コマンド処理ステップは、
空き時間に受信して受信用ＦＩＦＯに格納されたコマンドパケットにつきコマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
コマンド解読ステップでデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用ＦＩＦＯにコマンド受信応答情報を格納してリンク層及び物理層を介してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とする。
【００２０】
また本発明のパケット転送方法の別の形態にあっては、デバイス用インターフェースは、ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、データ転送中に前記受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号（割込み信号）を出力するコマンド検出回路と、受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットをホストに送信させる送信用ＦＩＦＯとを備え、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とする。
【００２１】
ここで転送中コマンド処理ステップは、
空き時間に受信して前記受信用ＦＩＦＯに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
コマンド解読ステップでデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用ＦＩＦＯにコマンド受信応答情報を格納してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とする。
【００２２】
（エラー時のパケット転送の完結）
また本発明の別の形態にあっては、データ転送中にエラーによりインターフェースに対するデータ入力が停止しても、それまでのデータによるパケット転送を完結させて転送が中断したままとなる異常を回避するインターフェース装置が提供される。
【００２３】
このため、本発明にあっては、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、トランスポート層に設けられ、物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、アプリケーション層に設けられ、受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットをホストに送信させる送信用ＦＩＦＯと、送信用ＦＩＦＯに常に所定の１単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御部と、データ送信中にエラーによりデータ入力が停止した場合、送信用ＦＩＦＯに滞留している１単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御部とを備えたことを特徴とする。
【００２４】
ここで入出力制御部は、テール信号がない場合に１単位のデータを送信用ＦＩＦＯに滞留させ、テール信号がある場合はデータを滞留させないようにする。また入出力制御部は、シリアルＡＴＡインターフェースに対応して送信用ＦＩＦＯに１単位のデータとして最小単位データ、例えばシリアルＡＴＡインターフェースでは１ダブルワードデータ（４バイトデータ）を滞留させる。
【００２５】
このような本発明のインターフェース装置によれば、ホストに対しデバイス側となる例えばハードディスクドライブにおいてパケット転送用のリードデータをインターフェース回路部に対し入力中に、データのエラー訂正が不可能なアンコレクタブル・エラーが発生してデータ入力が停止しても、送信用ＦＩＦＯには、エラーによる入力停止前の最後のデータが残っており、この残留しているデータをエラー検出に基づき最後のデータとしてテール信号と共にリンク層に出力することで、パケットデータを完結させ、エラー発生までに得られたデータのパケットをホストに転送することができ、パケット転送がエラーにより途中で中断停止したままになってしまう問題を解消する。
【００２６】
本発明は、エラーによりインターフェースに対するデータ入力が停止しても、それまでのデータによるパケット転送を完結させて転送停止を回避するデバイス用インターフェースのパケット転送方法装置を提供する。
【００２７】
即ち、本発明は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、アプリケーション層に設けられ、受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットをホストに送信させる送信用ＦＩＦＯとを備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
送信用ＦＩＦＯに常に所定の１単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御ステップと、
データ送信中にエラーによりデータ入力が停止した場合、送信用ＦＩＦＯに滞留している１単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御ステップと、
を備えたことを特徴とする。
【００２８】
（パケット数の監視）
本発明の別の形態にあっては、ホストからのコマンド受信解読後のパケット転送においてパケット数の設定によりコマンド送信要求に対する抑止制御やシーク要求コマンドに対するパワーモード投入等の制御を簡単にできるようにするインターフェース回路及びパケット転送方法を提供する。
【００２９】
このため本発明は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別と制御処理の終了時点又は開始時点を決める送信パケット又は受信パケットのパケット数を設定するファームウェアとしてのパケット制御条件設定部と、パケット転送中における設定パケット数への到達を検出して制御処理の停止又は起動を指示するハードウェアとしてのパケット制御実行回路部とを備えたことを特徴とする。
【００３０】
例えばパケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答（ＲＲＤＹ応答）の抑止と抑止を解除するパケット数を設定し、パケット制御実行回路部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時点で前記抑止動作を解除する。
【００３１】
また別の例として、パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、パケット制御実行回路部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時点でパワーモードへの突入を指示することを特徴とする。
【００３２】
このような本発明のインターフェース装置によれば、デバイス側となるハードディスクドライブのパケット転送プロトコルにおいて、送信又は受信するパケット数、即ちプロトコルに依存しないパケット数により特定の機能を制御するため、ファームウェアは特定の機能を制御するためのパケット転送状態の監視から開放されて他の処理が可能となり、またパケット転送のシーケンスに変更があった場合でも、ファームウェアによるパケット数の設定変更だけで済むため、コストのかかるハードウェアの変更に比べて低コストで迅速に対応できる。
【００３３】
またパケット数により制御する機能としては、一定の期間パケットを受信しないように受信準備応答信号（受信レディ信号）の抑止を設定した場合にパケット数で抑止解除する場合や、シーク動作を伴うコマンド受領といった特定の処理が完了した時に、パケット数により低消費電力に結びつくパワーモードを実行する場合などがあり、いずれについても、ファームウェアはパケット転送状態の監視から開放され、他の処理に時間を割くことができ、またパケット転送のシーケンスに変更に対し低コストで迅速に対応できる。
【００３４】
また本発明は、パケット転送方法を提供するものであり、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別と制御処理の終了時点又は開始時点を決める送信パケット又は受信パケットのパケット数を制御レジスタに設定するパケット制御条件設定ステップと、
パケット転送中における設定パケット数への到達を検出して制御処理の停止又は起動するパケット制御実行ステップと、
を備えたことを特徴とする。
【００３５】
例えばパケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止と前記抑止を解除するパケット数を設定し、パケット制御実行ステップは、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時点で抑止動作を解除する。
【００３６】
また別の例として、制御条件設定ステップは、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、制御指示ステップは、パケット転送開始後に転送パケット数が設定パケット数に到達した時点でパワーモードへの突入を指示する。
【００３７】
また本発明の別の形態にあっては、ファームウェアによってパケット数を監視するようにしたインターフェース装置を提供する。即ち、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別を設定するパケット制御条件設定部と、パケット転送開始後に、前記制御処理の終了時点又は開始時点を決める送信パケット又は受信パケットの状態を検出して前記制御処理の停止又は起動を指示するパケット制御条件監視部とを備えたことを特徴とする。
【００３８】
この場合にも、具体例としては、既に説明したパケット数の監視によるコマンド送信要求に対する受信準備応答の抑止と抑止解除、或いはシーク要求コマンドに対するパケット応答後のパワーモードの投入を行う。
【００３９】
このようなファームウェアにより特定の機能を制御するためにパケット転送を監視する本発明のインターフェース装置によれば、パケット転送のシーケンスに変更があった場合でも、ファームウェアの変更だけで済むため、コストのかかるハードウェアの変更に比べて低コストで迅速に対応できる。
【００４０】
本発明は、ファームウェアによりパケット数を監視するパケット転送方法を提供するものであり、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別を設定するパケット制御条件設定ステップと、
パケット転送開始後に、前記制御処理の終了時点又は開始時点を決めるパケット転送状態を検出して前記制御処理の停止又は起動を指示するパケット制御条件監視ステップと、
を備えたことを特徴とする。
【発明の効果】
【００４１】
本発明によれば、デバイスはデータ転送中にも次のコマンドの受け取りが可能になる。また本発明は、コマンドキューイング・プロトコルで特に有効であり、ハードウェア及びファームウェアが共に小規模な変更で容易にかつ柔軟にコマンドキューイング・プロトコルを実現できる。コマンドキューイング・プロトコルは、性能向上を目的としたプロトコルであり、それまでシーケンシャルにしかコマンド処理が出来なかった問題を解決し、コマンド処理の効率化を実現する。これにより従来のプロトコルに比べシステム全体として約２５％の性能向上が見込まれている。
【００４２】
発明は、従来は実現不可能であったデータ転送中のコマンド受信を可能にしたため、更に５〜１０％程度の性能改善が期待できる。
【００４３】
本発明は、データ転送中に次のコマンドの検出と受信をハードウェアで行った後、ファームウェアへ割り込みを通知して処理するため、割り込み時のハードウェアの状態が変わらずファームウェアとしてはその後の処理が楽になるという効果もある。
【００４４】
発明では、データ転送中に受け取ったコマンドの解読によるデータ転送の継続又はキャンセルをファームウェアで判断を行うため、想定外のケースに対してハードウェアの場合よりも柔軟性に対応できる。即ち、ハードウェアによりデータ転送の継続又はキャンセルを処理する場合、想定外のケースに対してはハードウェア改版が必要となる。一般的にハードウェア改版には、１ヶ月半程度の日数を要し開発工程に多大なインパクトを与えるが、本発明によりファームウェアでの対応が可能であれば、その分の工程短縮が期待できる。
【００４５】
本発明は、データ転送中のパケットの区切りで次のコマンドを受け取るための空き時間を生成しており、その分、データ転送に時間がかかる。しかし、一般的に、ディスクへの書込み速度に対しとホストとデバイス間のインターフェースの転送速度は倍近く高速であり、データ転送中に空き時間を生成しても、この時間遅れは速度差で吸収されデバイスとしての性能には影響しない。逆に本発明はデータ転送中にもホストのコマンド発行が可能になるため、ホストのＭＰＵは今まで待たされていた期間に別のタスクが可能になり、結果的にシステム全体としてのスループットを向上できる。
【００４６】
本発明のインターフェース装置によれば、ホストに対しデバイス側となる例えばハードディスクドライブにおいてパケット転送用のリードデータをインターフェース回路部に対し入力中に、データのエラー訂正が不可能なアンコレクタブル・エラーが発生してデータ入力が停止しても、送信用ＦＩＦＯには、エラーによる入力停止前の最後のデータが残っており、この残留しているデータをエラー検出に基づき最後のデータとしてテール信号と共にリンク層に出力することで、パケットデータを完結させ、エラー発生までに得られたデータのパケットをホストに転送することができ、パケット転送がエラーにより途中で中断停止したままになってしまう異常を確実に防止できる。
【００４７】
また本発明のインターフェース装置によれば、デバイス側となるハードディスクドライブのパケット転送プロトコルにおいて、送信又は受信するパケット数、即ちプロトコルに依存しないパケット数により特定の機能を制御するため、ファームウェアは特定の機能を制御するためのパケット転送状態の監視から開放されて他の処理が可能となり、またパケット転送のシーケンスに変更があった場合でも、ファームウェアによるパケット数の設定変更だけで済むため、コストのかかるハードウェアの変更に比べて低コストで迅速に対応できる。
【００４８】
またパケット数により制御する機能としては、一定の期間パケットを受信しないように受信準備応答信号（受信レディ信号）の抑止を設定した場合にパケット数で抑止解除する場合や、シーク動作を伴うコマンド受領といった特定の処理が完了した時に、パケット数により低消費電力に結びつくパワーモードを実行する場合などがあり、いずれについても、ファームウェアはパケット転送状態の監視から開放され、他の処理に時間を割くことができ、またパケット転送のシーケンスに変更に対し低コストで迅速に対応できる。
【図面の簡単な説明】
【００４９】
【図１】本発明が適用されるハードディスクドライブのブロック図
【図２】図１のインターフェース回路部の実施形態のブロック図
【図３】本発明によるライトアクセス時のパケット転送のタイムチャート
【図４】従来のライトアクセス時のパケット転送のタイムチャート
【図５】本発明によるリードアクセス時のパケット転送のタイムチャート
【図６】従来のリードアクセス時のパケット転送のタイムチャート
【図７】本発明が適用されるシリアルＡＴＡ伝送シーケンスの説明図
【図８】ホストからデバイスにコマンドを転送するＲｅｇＨＤパケットの説明図
【図９】デバイスからホストにパケット受信応答を転送するＲｅｇＤＨパケットの説明図
【図１０】デバイスからホストに転送するＤＭＡセットアップパケットの説明図
【図１１】デバイスからホストに転送するＤＭＡ起動パケットの説明図
【図１２】データパケットの説明図
【図１３】デバイスからホストに転送するセットデバイスビットパケットの説明図
【図１４】本発明によるパケット転送処理のフローチャート
【図１５】本発明による空き時間生成処理のフローチャート
【図１６】図１４のステップＳ５における転送中コマンド受信処理のフローチャート
【図１７】図１６に続く転送中コマンド受信処理のフローチャート
【図１８】送信用ＦＩＦＯに対するデータ入力がエラー停止した場合にもホストに対しデータパケットの転送を完結させる本発明の実施形態を示したブロック図
【図１９】送信用ＦＩＦＯに対するデータの入出力制御の説明図
【図２０】図１８の送信用ＦＩＦＯにおける正常時の入出力制御のタイムチャート
【図２１】図１８の送信用ＦＩＦＯにおけるエラー発生時の入出力制御のタイムチャート
【図２２】エラー発生時に送信用ＦＩＦＯにデータが残っていないことにより動作が停止する本発明の比較例としてのタイムチャート
【図２３】転送パケット数により特定の機能を制御する本発明の他の実施形態のブロック図
【図２４】図２３の実施形態で使用する制御レジスタの説明図
【図２５】ライトＤＭＡコマンド処理のフローチャート
【図２６】レガシィー・キュー・ライトＤＭＡコマンド処理のフローチャート
【図２７】第１パターンとしてのファースト・パーティ・キュー・ライトＤＭＡコマンド処理のフローチャート
【図２８】第２パターンとしてのファースト・パーティ・キュー・ライトＤＭＡコマンド処理のフローチャート
【図２９】図２８のコマンド処理におけるパケット転送処理のタイムチャート
【図３０】図２２のパケット転送中にホストから次のコマンド送信要求が発生した場合のタイムチャート
【図３１】パケット転送中にホストから次のコマンド送信要求を抑止する図２３の実施形態によるパケット転送制御のタイムチャート
【図３２】図３１のデバイス側のファームウェアによるパケット準備処理のフローチャート
【図３３】シーク要求コマンドに対する応答パケットの転送終了でパワーモードに突入する図２３の実施形態によるパケット転送制御のタイムチャート
【図３４】図３３のデバイス側のファームウェアによるパケット準備処理のフローチャート
【図３５】パケット数により特定の制御をファームウェアで監視して起動又は停止する本発明の他の実施形態のブロック図
【図３６】図３５の実施形態で使用する制御レジスタの説明図
【図３７】パケット転送中にホストから次のコマンド送信要求をファームウェアで監視して抑止する図３５の実施形態によるパケット転送制御のタイムチャート
【図３８】図３７のファームウェアによるパケット監視処理のフローチャート
【図３９】シーク要求コマンドに対する応答パケットの転送終了をファームウェアで監視してパワーモードに突入する図２３の実施形態によるパケット転送制御のタイムチャート
【図４０】図３９のファームウェアによるパケット準備処理のフローチャート
【発明を実施するための形態】
【００５０】
（データ転送中のコマンド受信）
図１は、本発明によるデバイス用のインターフェース装置が適用されるハードディスクドライブ（ＨＤＤ）のブロック図である。磁気ディスク装置としてのハードディスクドライブ１０は、コントロールボード１２とディスクエンクロージャ１４で構成され、ホスト１１に対しシリアル伝送線１５を介して接続される。
【００５１】
ディスクエンクロージャ１４にはスピンドルモータ１６が設けられ、スピンドルモータ（ＳＰＭ）１６の回転軸に磁気ディスク２０−１，２０−２を装着し、一定速度で回転させている。またディスクエンクロージャ１４にはボイスコイルモータ（ＶＣＭ）１８が設けられ、ボイスコイルモータ１８はヘッドアクチュエータのアームの先端に、ヘッド２２−１〜２２−４を搭載しており、磁気ディスク２０−１〜２０−２の記録面に対するヘッドの位置決めを行う。
【００５２】
なお、ヘッド２２−１〜２２−４にはライトヘッドとリードヘッドが一体化されて搭載されている。ヘッド２２−１〜２２−４はヘッドＩＣ２４に対し信号線接続されており、ヘッドＩＣ２４は上位装置となるホスト１１からのライトコマンドまたはリードコマンドに基づくヘッドセレクト信号で書込みまたは読出しを行ういずれか１つのヘッドを選択する。
【００５３】
また、ヘッドＩＣ２４には、ライト系については書込アンプが設けられ、リード系についてはプリアンプが設けられている。コントロールボード１２には、リードチャネル（リードライトＬＳＩ）２６、ハードディスクコントローラ（ＨＤＣ）２８、本発明の対象となるインターフェース回路部３０、ＲＡＭ３２、ファームウェアとして機能するＭＰＵ３４、ＲＯＭ３６、モータ制御、位置決め制御などを行うＤＳＰ３８が設けられている。
【００５４】
ハードディスクコントローラ２８に設けられているインターフェース回路部３０は、シリアル伝送線１５を介してホスト１１のインターフェース回路部４０に接続され、この実施形態にあっては例えばシリアルＡＴＡインターフェース（ＳＡＴインターフェース）を適用している。
【００５５】
図２は、図１のハードディスクドライブ１０に設けている本発明によるインターフェース回路部の実施形態のブロック図である。
【００５６】
図２において、ハードディスクコントローラ２８に設けられたインターフェース回路部３０は、物理層４２、リンク層４４、トランスポート層４６及びアプリケーション層４８で構成されており、各層はそれぞれの機能を実現するハードウェアで構成されている。
【００５７】
シリアルＡＴＡインターフェースの仕様に従えば、物理層４２はシリアル物理インターフェースプラントと呼ばれ、またリンク層４４はシリアルリンクデジタルコントロールと呼ばれ、トランスポート層４６はシリアルデジタルトランスポートコントロールと呼ばれ、更にアプリケーション層４８はソフトウェアコントロールバッファメモリＤＭＡエンジンと呼ばれている。
【００５８】
本発明のインターフェース回路部３０にあっては、ホスト１１のインターフェース回路部４０より発行されたハードディスクドライブに対するライトアクセスまたはリードアクセスのためのコマンドパケットを受信して、コマンド実行中に次のコマンドを受信可能とするため、トランスポート層４６に受信コマンドを先入れ先出しで記憶する受信用ＦＩＦＯ５０と、コマンド実行によるデータ転送中に受信して受信用ＦＩＦＯ５０に格納した次のコマンドを検出して割込み信号（コマンド検出信号）５５をファームウェアとしてのＭＰＵ３４に発行するコマンド検出回路５２と、送信用ＦＩＦＯ６０を設けている。
【００５９】
またアプリケーション層４８には、受信用のタスクファイルレジスタ５４に加え、送信用のタスクファイルレジスタとしてタスク制御ファイルレジスタ５８が設けられている。
【００６０】
このようなハードウェア構成のインターフェース回路部３０に加え、ファームウェアとして機能するＭＰＵ３４側にプログラム制御により実現される空き時間生成部６４と転送中コマンド処理部６６を設けている。
【００６１】
転送中コマンド処理部６６は、一時停止処理部６８、コマンド解読部７０、転送打切部７２、転送再開部７４の各機能を備えている。空き時間生成部６４は、コマンド受信に基づくデータ転送中にホストから次のコマンドを受信するための一定の空き時間を生成する。
【００６２】
この空き時間を生成するタイミングは、複数回に分けて転送されるデータパケットの切れ目の部分を検出して空き時間を設定する。この場合の空き時間としては、ホスト１１からのコマンドパケット転送に必要な例えば１００〜３００ｎｓ程度の時間でよい。
【００６３】
転送中コマンド処理部６６は、空き時間生成部６４により設定された空き時間の間にホスト１１からコマンドパケットを受信した場合、インターフェース回路部３０のハードウェアによって現在実行中のデータ転送を一時停止（サスペンド）して受信コマンドを解読して処理を実行した後に、データ転送を再開する。
【００６４】
データ転送中にホスト１１から受信する次のコマンドのコマンド内容としては、この実施形態にあっては、現在実行中のデータ転送を継続するかキャンセルするかの指示内容を持っている。
【００６５】
このような転送中コマンド処理部６６の処理は、更に詳細には、一時停止処理部６８、コマンド解読部７０、転送打切部７２及び転送再開部７４の各機能によって実現される。一時停止処理部６８は、空き時間に受信して受信用ＦＩＦＯ５０に格納された次のコマンドにつきコマンド検出回路５２がコマンド検出の割込み信号５５を出力した際に、インターフェース回路部３０のハードウェアに対しデータ転送を一時停止（サスペンド）を指示し、この一時停止時のパラメータをＲＡＭ３２に退避させる。  
【００６６】
コマンド解読部７０は、受信用ＦＩＦＯ５０に格納しているコマンド内容をタスクファイルレジスタ５４にロードし、ロードされたコマンド内容を解読する。この実施形態にあっては、コマンド実行中のデータ転送中に受信された次のコマンドはデータ転送の継続またはキャンセルのいずれかのコマンド指示内容を持っていることから、コマンド解読部７０でデータ転送の打切りを判別した場合には、転送打切部７２がＲＡＭ３２に退避した現在実行中のコマンド及びパラメータを破棄して、インターフェース回路部３０のデータ転送を終了させる。
【００６７】
一方、コマンド解読部７０がデータ転送の継続を判別した場合には、転送再開部７４が動作し、受信用のタスクファイルレジスタ５４に格納している次のコマンドのコマンド内容をＲＡＭ３２のコマンドキュー５６に投入すると共に、トランスポート層４６の送信用ＦＩＦＯ６０に次のコマンドの受信に対する受信応答情報を格納し、更にリンク層４４、物理層４２を介してホスト１１に対しコマンド受信の応答パケットを送信させ、インターフェース回路部３０の一時停止を解除すると共に、ＲＡＭ３２に退避したパラメータをセットしてデータ転送を再開させる。
【００６８】
図３は、本発明のインターフェース装置によるライトアクセス時のパケット転送のタイムチャートであり、これと対比するため図４に、データ転送中に次のコマンドを受信できない従来のライトアクセス時のパケット転送のタイムチャートを示している。
【００６９】
また図５は本発明によるリードアクセス時のパケット転送のタイムチャートであり、同じくデータ転送中に次のコマンドを受信できない従来のリードアクセス時のパケット転送を図６に示している。
【００７０】
ここで、図３〜図６のパケット伝送処理で使用するシリアルＡＴＡインターフェースで定義されるパケットには主なものとして次のものがある。
【００７１】
・  ＲｅｇＨＤパケット
・  ＲｅｇＤＨパケット
・  ＤＭＡセットアップパケット（ＤＭＡ  Ｓｅｔｕｐ）
・  ＤＭＡ起動パケット（ＤＭＡ  Ａｃｔｉｖａｔｅ）
・  データパケット（Ｄａｔａ）
・  セットデバイスビットパケット（Ｓｅｔ  Ｄｅｖｉｃｅ  Ｂｉｔｓ）
【００７２】
また図７は本発明が対象としているシリアルＡＴＡ伝送シーケンス１４８の基本的な形態であり、先頭のスタートオブフレーム（ＳＯＦ）１５０で始まり、末尾のエンドオブフレーム（ＥＯＦ）１６２で終了する伝送シーケンスである。
【００７３】
先頭のスタートオブフレーム１５０に続いては、フレーム情報構成内容（ＦＩＳ）１５２が設けられ、この内容が図８〜図１３に示したパケットで構成される。次のホールドデータ転送１５４は、転送元でパケットのペイロードが準備できない場合の待ち時間について設定される。
【００７４】
次のフレーム情報構成内容（ＦＩＳ）１５６は、同じく図８〜図１３のパケットの集合で構成されている。ホールドアクノリッジ１５８は、ホールドデータ転送１５４に対する応答である。続いて、それまでの伝送データに対するＣＲＣ１６０を設けた後、エンドオブフレーム１６２となっている。
【００７５】
図８はＲｅｇＨＤパケット１６４の説明図であり、ＲｅｇＨＤパケット１６４はホストからデバイスに対しコマンドを送るコマンドパケットである。
【００７６】
図９はＲｅｇＤＨパケット１６６であり、ＲｅｇＤＨパケット１６６はデバイスからホストに対しエラー情報やステータス情報を送るためのステータスパケットである。
【００７７】
図１０はＤＭＡセットアップパケット１６８であり、図８のＲｅｇＨＤパケット１６４によりデバイス側でライトコマンドを受信解読した際に、デバイス側からホストに対しデータのＤＭＡ転送に必要なパラメータを送ってセットアップするためのコマンドである。
【００７８】
図１１はＤＭＡ起動パケット１７０であり、図１０のＤＭＡセットアップパケット１６８に続いて、デバイス側からホストに対し発行され、これによりホストからデバイスに対しデータパケットのＤＭＡ転送が開始される。
【００７９】
図１２はデータパケット１７２であり、０〜ｎセクタに分かれており、１セクタは５１２バイトで、最大セクタ数ｎはｎ＝１６となる。シリアルＡＴＡインターフェースにあっては、１ワードが２バイトであることから４バイトデータを１ダブルワードと定義し、データパケット１７２には１〜２０４８個の範囲でダブルワードを搭載することができる。
【００８０】
図１３はセットデバイスビットパケット１７４であり、データ転送終了時にデバイスからパケットに転送され、エラー情報やステータス情報をホストに通知する。
【００８１】
そこで図３を参照して本発明によるライトアクセス時のパケット伝送処理を説明すると次のようになる。図３（Ａ）において、ホスト１１側でライトアクセスのためのコマンド発行要求７６が行われると、コマンドスタート７７となり、ホスト１１のインターフェース回路部４０はハードディスクドライブ側となるデバイス１０ａに対しＲｅｇＨＤパケット７８としてコマンドパケットを転送する。
【００８２】
ここでホスト１１とデバイス１０ａとの間のパケット転送プロトコルは、ＲｅｇＨＤパケット７８を例にとると、図３（Ｂ）のようになる。
（１）パケット送信要求に基づき転送元から転送先に送信レディ信号（ＸＲＤＹ信号）７８−１を送信する。
（２）転送先は転送ＯＫであれば、受信レディ信号（ＲＲＤＹ信号）７８−２を送信する。
（３）受信レディ信号（ＲＲＤＹ信号）７８−２の受信に基づき転送元はパケット信号７８−３を転送する。
【００８３】
このようなパケット転送プロトコルを図３（Ａ）は、説明を簡単にするため、ひとつにまとめ太線の矢印でパケット転送として示している。
【００８４】
再び図３（Ａ）を参照するに、ＲｅｇＨＤパケット７８を受信したデバイス１０ａは、コマンドパケットの正常受信終了を示すステータスパケットとしてＲｅｇＤＨパケット８０をホスト１１に転送する。
【００８５】
続いて、解読したライトコマンドに基づきＤＭＡセットアップパケット８２をホスト１１に転送した後に、ＤＭＡ起動パケット８４をホスト１１に転送し、これに基づきホスト１１からＤＭＡ転送に基づいてデータパケット８６がデバイス１０ａに転送される。
【００８６】
デバイス１０ａ側にあっては、ホスト１１からのデータパケット８６の終端となる切れ目８８を検出すると、図２のＭＰＵ３４に設けた空き時間生成部６４によって、ホスト１１に次のコマンドの発行を許可する空き時間９０を生成する。
【００８７】
このときホスト１１側にデータパケット８６の転送に続いて次のコマンドをコマンド発行要求８５が発生したとすると、このタイミングでデバイス１０ａ側はコマンド発行受付可能な空き時間９０を設定しているため、次のコマンドをＲｅｇＨＤパケット９４によりデバイス１０ａに転送し、これをデバイス１０ａ側で受信解読して処理した後、コマンド受信終了を示す応答用のステータスパケットとしてＲｅｇＤＨパケット９６をホスト１１に送信する。
【００８８】
続いてデバイス１０ａ側にあっては、一時停止したデータ転送を空き時間９０の終了時点９２で再開し、ＤＭＡ起動パケット９８をホスト１１に転送することで、ホスト１１から次のデータパケット１００の転送を受ける。このデータパケット１００の転送についても、デバイス１０ａ側にあっては、データパケット１００の区切り１０２を検出して次のコマンド発行を許可する空き時間１０４を生成する。
【００８９】
この空き時間１０４については、ホスト１１側から次のコマンド発行はないことから、一定時間１０４が経過した時点１０６でデバイス１０ａ側は再びデータ転送を再開し、この場合にはホスト１１から全てのデータが受信終了となっていることから、コマンド正常終了を示すセットデバイスビットパケット１０８をホスト１１に転送し、コマンド終了１１０となる。
【００９０】
このような本発明のライトアクセスにおけるパケット転送の途中でホスト１１から次のコマンドが受信可能となるのに対し、図４の従来のライトアクセスのパケット転送にあっては、図３と同じパケット転送であるが、コマンドスタート７８からコマンド終了１１０の途中で次のコマンドのコマンド発行要求８５が発生しても、現在実行中のコマンドによるデータ転送が中断されることはなく、コマンド発行要求８５はコマンド終了１１０まで待たされることになる。
【００９１】
具体的なプロトコルとしては、コマンド発行要求８５に基づきデバスイ１０ａに送信レディ信号（ＸＲＤＹ）が送られるが、デバイス１０ａ側はパケット受信準備ができないことから受信レディ信号（ＲＲＤＹ）を送信せず、コマンド終了１１０でパケット受信ＯＫとなって受信レディ信号（ＲＲＤＹ）を送信することで次のコマンドがパケット転送されることになる。
【００９２】
図５は、本発明によるリードアクセス時のパケット転送処理のタイムチャートである。図５において、ホスト１１にリードアクセスのコマンド発行要求１１２があると、この時点でコマンドスタート１１４となり、コマンドパケットとしてＲｅｇＨＤパケット１１６をデバイス１０ａに転送する。
【００９３】
このコマンドパケットが正常に受信されると、デバイス１０ａはステータスパケットとしてＲｅｇＤＨパケット１１８をホスト１１に転送する。続いてデバイス１０ａからリードデータをホスト１１に転送するため、まずＤＭＡセットアップパケット１２０を転送した後、データパケット１２２をホスト１１に転送する。
【００９４】
ここでデータパケット１２２の転送直前のタイミングでホスト１１に次のコマンドのコマンド発行要求１２４が発生したとすると、データパケット１２２の転送が終了したパケットの切れ目１２６をデバイス１０ａのＭＰＵ３４に設けている空き時間生成部６４が検出し、ホスト１１からの次のコマンドを受信可能とする一定の空き時間１２８を発生する。
【００９５】
このため、ホスト１１で発生したコマンド発行要求１２４は直ちに実行され、ＲｅｇＨＤパケット１３２としてデバイス１０ａに転送され、受信したコマンドの解読処理を行った後に、コマンドの正常受信を示すステータスパケットとしてのＲｅｇＤＨパケット１３４をホスト１１に転送する。
【００９６】
続いて、一定空き時間１２８の終了時点１３０で、デバイス１０ａは一時停止したデータ転送を再開し、データパケット１３６をホスト１１に転送する。このデータパケット１３６についても、その終了時点となる区切り１３８でホスト１１のコマンド発行を許可する空き時間１４０を生成する。
【００９７】
この場合にはホスト１１側に次のコマンドの発行要求がないことから、一定時間１４０の経過時点１４２でデータ転送を再開し、全てのリードデータの転送が終了していることから、この場合にはセットデバイスビットパケット１４４をホスト１１に転送し、コマンド終了１４６となる。
【００９８】
このような図５の本発明によるリードアクセスにおけるパケット転送に対し、図６の従来のパケット転送にあっては、ホスト１１でコマンド発行要求１１２が発生してコマンドスタート１１４となり、デバイス１０ａとの間でコマンド及びデータのパケット転送が行われ、そのコマンド終了１４６となるまでは、途中でホスト１１に次のコマンド発行要求１２４が発生しても、これは無視され、コマンド終了１４６まで待たされることになる。
【００９９】
ここで図３のライトアクセス時のパケット転送、及び図５のリードアクセス時のパケット転送にあっては、データ転送の途中で一定の空き時間９０，１０４，１２８，１４０が設けた分、図４や図６の従来のパケット転送処理に比べ時間がかかることになる。
【０１００】
しかしながら、図１のホスト１１とハードディスクドライブ１０におけるデータ転送にあっては、ハードディスクドライブ１０におけるハードディスクコントローラ２８からディスクエンクロージャ１４の磁気ディスク２０−１〜２０−２との間のデータ転送速度に対し、ハードディスクドライブ１０とホスト１１のインターフェース回路部３０，４０の間のデータ転送速度は約２倍程度高速である。
【０１０１】
このため図３及び図５のようにデータ転送中に空き時間を生成しても、この程度の時間は伝送速度の遅い磁気ディスク媒体側の伝送速度により吸収され、ホスト１１とハードディスクドライブ１０間のデータ転送の性能が低下することはない。
【０１０２】
図１４は、本発明のインターフェース回路部３０によるパケット転送処理のフローチャートである。図１４において、ステップＳ１でホスト１１からのコマンドパケットの受信をチェックしており、コマンドパケットを受信すると、ステップＳ２に進み、コマンドパケットの正常受信を応答するステータスパケットを転送する。続いて、ステップＳ３でＤＭＡ転送用のパケットを応答する。
【０１０３】
具体的には、ライトアクセスであれば図３のＤＭＡセットアップパケット８２とＤＭＡ起動パケット８４を応答し、リードアクセスであれば図５のＤＭＡセットアップパケット１２０のみを応答する。
【０１０４】
続いて、ステップＳ４でデータパケットを受信すると、その切れ目のタイミングでステップＳ５の転送中コマンド受信処理を実行し、このときホスト側からコマンド発行要求があれば次のコマンドを受信処理する。続いて、ステップＳ６でデータ転送終了の有無をチェックしており、データ転送が終了するまで、ステップＳ４からの処理を繰り返す。ステップＳ６でデータ転送が終了すると、データ転送正常終了を示すパケット即ちセットデバイスビットパケットを応答し、ステップＳ１に戻って次のコマンド発行を待つ。
【０１０５】
図１５は、図２のＭＰＵ３４に設けた空き時間生成部６４による空き時間生成処理のフローチャートである。この空き時間生成処理にあっては、ステップＳ１で初期化処理としてカウンタ値をある値にセットした後、ステップＳ２でデータパケットの区切りを監視している。
【０１０６】
データパケットの区切りを検出すると、ステップＳ３に進み、カウンタをスタートした後、ステップＳ４でカウンタ最終値への到達を判別している。カウンタ最終値に達すると、ステップＳ５に進み、パケット転送の再開を指示する。
【０１０７】
更に、ステップＳ６でカウンタ値変更要求があれば、ステップＳ１に戻ってカウンタ値を要求値にセットし、一方、カウンタ値の変更要求がなければ、ステップＳ２に戻り、現在のカウンタ値のまま、次の空き時間生成処理を待つことになる。
【０１０８】
図１６及び図１７は、図１４のステップＳ５における転送中コマンド受信処理の詳細を示したフローチャートであり、図１５の空き時間生成処理で設定された一定の空き時間ごとに実行される。
【０１０９】
図１６の転送中コマンド受信処理を図２を参照して説明すると次のようになる。まずステップＳ１でホストからの次のコマンドの発行要求によるコマンドパケットの受信の有無をチェックしており、コマンドパケット受信でなければ、ステップＳ２で空き時間終了の有無をチェックし、空き時間終了となれば、図１７を経て図１４のメインルーチンにリターンする。
【０１１０】
ステップＳ１において空き時間終了前にホストから次のコマンドの発行要求によるコマンドパケットを受信すると、ステップＳ３に進み、トランスポート層４６に設けている受信用ＦＩＦＯ５０にコマンドパケットを格納する。
【０１１１】
続いてステップＳ４でコマンド検出回路５２が格納したコマンドパケットが最終段に達したタイミングでコマンド検出を行い、コマンド検出に基づいて割込信号５５を発生し、この割込信号ありを判別した場合、ステップＳ５に進み、インターフェース回路部３０を構成するハードウェアに対しデータ転送の一時停止（サスペンド）を要求する。
【０１１２】
この一時停止の要求に対し、インターフェース回路部３０よりステップＳ６で一時停止の完了応答があったことを判別すると、ステップＳ７に進み、現在転送中のインターフェース回路部３０におけるパラメータをＲＡＭ３２に退避し、次にステップＳ８で受信用ＦＩＦＯ５０に格納している次のコマンドのコマンド内容をアプリケーション層４８のタスクファイルレジスタ５４にロードする。
【０１１３】
続いて、ステップＳ９でタスクファイルレジスタ５４のコマンドを解読する。この実施形態にあっては、データ転送中の次のコマンドのコマンド内容はデータ転送の継続またはキャンセルを指示している。したがって、ステップＳ１０でコマンド解読結果からデータ転送継続であればステップＳ１２に進み、一方、データ転送キャンセルであればステップＳ１１に進む。
【０１１４】
コマンド解読でデータ転送のキャンセルを判別した場合、ステップＳ１１にあっては、現在実行中のデータ転送のキャンセル指示をインターフェース回路部３０に行い、またＲＡＭ３２に退避したパラメータを消去し、インターフェース回路部３０を初期状態に復旧させる。
【０１１５】
ステップＳ１０でコマンド解読結果からデータ転送継続であった場合には、ステップＳ１２でタスクファイルレジスタ５４のコマンド内容をＲＡＭ３２のコマンドキュー５６に退避した後、ステップＳ１３でタスク制御ファイルレジスタ５８の応答内容をデータ転送中に受信したコマンドの受信応答に変更して図１７のステップＳ１４に進み、タスク制御ファイルレジスタ５８の内容を、トランスポート層４６の送信用ＦＩＦＯ６０、リンク層４４、更に物理層４２を介して、シリアル伝送線１５によりホスト１１に転送する。
【０１１６】
ここでステップＳ５のインターフェース回路部３０に対する指示で一時停止が行われた場合、タスク制御ファイルレジスタ５８には、例えば図３のデータパケット８６の受信終了のタイミングであることから、これに対する応答パケットとしてＤＭＡ起動パケット９８を転送するためのデータが既に書き込まれている。
【０１１７】
そこで本発明にあっては、ステップＳ１３で、このＤＭＡ起動パケット転送のためのデータを、データ転送の途中で受信した次のコマンドの受信終了を示す図３のＲｅｇＤＨパケット９６を転送するためのデータに変更し、ステップＳ１４で、これをＲｅｇＤＨパケットとしてホストに転送することになる。
【０１１８】
続いて、ステップＳ１５で一時停止によりＲＡＭ３２に退避したパラメータをインターフェース回路部３０にセットし、データ転送再開を準備する。このときタスク制御ファイルレジスタ５８には、ステップＳ１３で変更した変更前の例えば図３のＤＭＡ起動パケット９８の転送に必要なデータが再度書き込まれることになる。そして、ステップＳ１６でインターフェース回路部３０の一時停止を解除してデータ転送を再開する。
【０１１９】
（エラー時のデータパケット転送の完結）
図１８は、送信用ＦＩＦＯ６０に対するデータ入力がエラー停止した場合にもホストに対し、データパケットの転送を完結させる本発明の実施形態となる図１のハードディスクコントローラ２８に設けたインターフェース回路部３０のブロック図である。
【０１２０】
図１８において、ハードディスクコントローラ２８にハードウェアとして設けられた本発明の対象となるインターフェース回路部３０は、図２の実施形態と同様、物理層４２、リンク層４４、トランスポート層４６、アプリケーション層４８で構成される。
【０１２１】
トランスポート層４６には受信用ＦＩＦＯ５０と送信用ＦＩＦＯ６０が設けられる。またアプリケーション層４８にはタスクファイルレジスタ５４とタスク制御ファイルレジスタ５８が設けられる。
【０１２２】
このようなインターフェース回路部３０における受信系と送信系に加え、この実施形態にあっては更に送信用ＦＩＦＯ６０に対し入出力制御部１８２とエラー終了転送制御部１８４を設けている。
【０１２３】
またエラー終了転送制御部１８４に対しエラー検出を通知するため、例えばこの実施形態にあってはＭＰＵ３４のファームウェアとしてプログラム制御により実現されるエラー検出部１８０を設けている。
【０１２４】
入出力制御部１８２は、ホスト１１からのリードアクセスのためのコマンドパケットを受信したリードデータのパケット転送時において、トランスポート層４６の送信用ＦＩＦＯ６０に常に所定の１単位のデータが滞留するようにタスク制御ファイルレジスタ５８からの入力制御とリンク層４４に対する出力制御を行い、同時にパケットの先頭に位置するデータの入出力に同期してヘッド信号を入出力し、またパケットの終端データの入出力に同期してテール信号を入出力する。
【０１２５】
具体的には、入出力制御部１８２はテール信号がない場合に１単位のデータを送信用ＦＩＦＯ６０に滞留させ、テール信号がある場合はデータを滞留させないようにする。
【０１２６】
このパケット先頭データに対応したヘッド信号とパケット終端データに対応したテール信号は、リードデータのパケット転送の際に転送するデータのバイト数が受信コマンドから判明しているため、アプリケーション層４８に対しハードディスクコントローラ２８を経由して入力するデータのバイト数をカウントすることで、先頭データと終端データを判別してヘッド信号及びテール信号を発生することができる。
【０１２７】
エラー終了転送制御部１８４は、ＭＰＵ３４に設けているエラー検出部１８０によりデータのエラー訂正不可能なエラー、いわゆるアンコレクタブルエラーの検出通知を受けた際に、このエラー発生により送信用ＦＩＦＯ６０に対するデータ入力が停止することから、この状態で送信用ＦＩＦＯ６０に滞留しているデータをテール信号と共にリンク層４４に出力し、これによりデータパケットのデータが最後まで達したこと擬似的にリンク層４４に認識させ、エラーが発生してもデータパケットに必要な入力データを完結させ、リンク層４４から物理層４２を介してホスト１１のインターフェース回路部４０にデータパケットの転送を完結させる。
【０１２８】
ここで送信用ＦＩＦＯ６０に滞留させる１単位のデータとしては、この実施形態にあってはシリアルＡＴＡインターフェースを例にとっていることから、その最小単位となる４バイトの１ダブルワードデータを滞留させる。また送信用ＦＩＦＯ６０の容量としては、インターフェース回路部４０がホスト１１に対し転送するデータパケットのサイズに対し、十分小さな容量とする。
【０１２９】
具体的にはシリアルＡＴＡインターフェースにあっては図１２に示したデータパケット１７２のようにパケット転送可能なデータサイズは最小１ダブルワードから最大２０４８ダブルワードまでであり、送信用ＦＩＦＯ６０の容量として最大となる２０４８ダブルワード（８１９２バイト）とすることも考えられる。
【０１３０】
しかし、このようなサイズの大きな送信用ＦＩＦＯ６０とするとインターフェース回路部４０のハードウェア量が増加し且つ送信用ＦＩＦＯ６０に対する入出力処理も時間がかかることから、本発明における送信用ＦＩＦＯ６０としては入出力制御の際に最小単位となる１ダブルワードデータが常にひとつ残る処理を可能とする最小構成として２ダブルワード分の記憶容量（８バイト）とすれば良い。もちろん必要に応じて２ダブルワード以上とすることもできるが、余り容量を増やす必要はない。
【０１３１】
図１９は、図１８の送信用ＦＩＦＯ６０を最小構成とした場合のデータ入出力制御の説明図であり、テール信号がない状態でデータを滞留させる動作を示している。図１９（Ａ）はパケット転送のための最初の先頭データＤ１が入力した場合であり、送信用ＦＩＦＯ６０は最小構成として１ダブルワードサイズの領域６０−１，６０−２を備えており、例えば領域６０−１に先頭データＤ１が格納される。
【０１３２】
次に図１９（Ｂ）のように次のデータＤ２が受信された場合には前に受信して格納したデータＤ１を出力した後に次のＤ２を格納する。続いて図１９（Ｃ）のように、３番目のデータＤ３を受信した場合には前に受信したデータＤ２を出力した後にデータＤ３を格納する。このデータＤ３を受信した後に図１９（Ｄ）のようにエラー１８５が発生してそれ以上データを受信できなくなっても、送信用ＦＩＦＯ６０にはエラー発生前の最後のデータＤ３が常に残ることとなる。
【０１３３】
このようにエラー１８５の発生でデータＤ３が送信用ＦＩＦＯ６０に残っていれば、このデータＤ３の出力に同期して強制的にテール信号を出力すれば、リンク層４４においてパケットデータの終端データを認識し、これに基づきデータパケットを生成してホスト側に転送してデータパケットの転送処理を完結させることができる。
【０１３４】
図２０は、図１８の送信用ＦＩＦＯ６０における正常値の入出力制御のタイムチャートである。図２０（Ａ）（Ｂ）（Ｃ）（Ｄ）は送信用ＦＩＦＯ６０に対する入力制御用の入力バリッド信号、入力ヘッド信号、入力テール信号及び入力データである。
【０１３５】
これに対し図２０（Ｅ）（Ｆ）（Ｇ）（Ｈ）は送信用ＦＩＦＯ６０からの出力のための出力バリット信号、出力ヘッド信号、出力テール信号及び出力データである。まず図２０（Ａ）〜（Ｄ）のようにデータパケットの転送に必要な最初のヘッドデータＤ１を受信すると、これに同期して入力バリット信号及び入力ヘッド信号を発生する。
【０１３６】
このようにして送信用ＦＩＦＯ６０に格納されたヘッドデータＤ１は次に２番目のデータＤ２が受信されて送信用ＦＩＦＯ６０に格納された後に、図２０（Ｅ）〜（Ｈ）のようにヘッドデータＤ１として読み出され、同時に出力バリッド信号及び出力ヘッド信号を生成してリンク層４４に送られる。以下同様にしてデータＤ２〜Ｄ９の入力に対し、それぞれの入力を待ってリンク層４４に対するデータの出力とこれに同期した出力バリッド信号の生成が行われる。
【０１３７】
入力データのバリッドカウントにより受信したデータＤ１０がパケットの終端データであることを認識すると、テールデータＤ１０の受信に伴い図２０（Ｃ）の入力テール信号を発生し、その後の図２０（Ｅ）〜（Ｈ）の出力制御によってテールデータＤ１０の読出しに同期して出力テール信号、出力バリッド信号がリンク層４４に送られる。即ちテール信号があることからデータＤ１０は滞留されることなく転送される。
【０１３８】
リンク層４４にあっては、出力ヘッド信号が得られると、図７に示したスタートオブフレーム（ＳＯＦ）１５０を生成して送信させ、続いてフレーム情報構成（ＦＩＳ）に従った図１２パケット１７２の構築して転送させ、最後に出力テール信号が得られると、図７に示したエンドオブフレーム（ＥＯＦ）１６２を生成して送信させる。
【０１３９】
図２１は、図１８の送信用ＦＩＦＯ６０におけるエラー発生時の入出力制御のタイムチャートである。図２１（Ａ）〜（Ｄ）の入力制御及び図２１（Ｅ）〜（Ｈ）の出力制御におけるデータＤ１〜Ｄ５の入力及び出力は図１９の正常時と同じである。
【０１４０】
しかしながら、図２１（Ｄ）の入力データとしてデータＤ６を送信用ＦＩＦＯ６０に格納した直後にエラー１８５が発生して、それ以降のデータの受信が停止したとする。このようなエラー１８５の発生によるデータ入力の停止時にあっては、送信用ＦＩＦＯ６０にはエラー１８５の発生直前に受信したデータＤ６が残っている。
【０１４１】
このため図１８におけるエラー検出部１８０からのエラー通知を受けたエラー終了転送制御部１８４は、入出力制御部１８２に対する指示により図２１（Ｅ），（Ｈ）のエラー発生１８５の後のタイミングで示すように、送信用ＦＩＦＯ６０に残っているデータＤ６を出力すると同時に出力バリッド信号を発生し、エラー停止に伴いデータＤ６をテールデータとして扱うため、図２１（Ｇ）のように出力テール信号を生成してリンク層４４に送る。
【０１４２】
このためリンク層４４にあっては送信用ＦＩＦＯ６０から出力されたデータＤ６が入出力制御部１８２により出力された出力テール信号により終端データであると認識し、物理層４２を介してホスト１１のインターフェース回路部４０にデータパケットを転送し、更に図１２のエンドオブフレーム（ＥＯＦ）１６２を生成して転送することで、伝送シーケンスを終了させることができる。
【０１４３】
図２２は、図２１の本発明のタイムチャートによる比較例としての送信用ＦＩＦＯにエラー発生時にデータが残っていないことによる動作停止となる場合のタイムチャートである。
【０１４４】
図２２にあっては、エラー１８５の発生直前で受信したデータＤ６については、通常のＦＩＦＯにおける出力側の条件が成立した場合の出力制御により、図２２（Ｅ）〜（Ｈ）のようにデータＤ６の出力が出力バリッド信号と共に行われる。
【０１４５】
そして、その後についてはエラー１８５の発生により送信用ＦＩＦＯ６０に対するデータ入力は完全に断たれるため、リンク層４４に対するデータ転送及びテール信号の出力は不可能となり、リンク層４４はデータ入力を待ち続け、最終的にはオーバータイムとなってエラー終了をする。その間、ホスト１１に対するパケット転送が中断して待ち状態となり、他のパケット転送ができないことで転送性能を悪化させる。
【０１４６】
このような問題に対し、本発明にあっては送信用ＦＩＦＯ６０に対するデータ入力がエラー発生により停止しても、テール信号がない場合は、次のデータを受信しない限り前に受信したデータを出力しないという入出力条件の設定により常にデータが残っており、エラー検出であることからパケット用のデータを完結させるためのテール信号の強制発生に同期して、残っている最後のデータを出力することで、リンク層４４に対するパケットデータを完結させ、エラー発生にかかわらずエラー発生までに得られたデータについては正常にホスト１１にデータパケットを転送することができる。
【０１４７】
尚、エラー発生により途中までの受信データをホスト１１側にパケット転送した後の処理にあっては、デバイス側からエラー発生をステータスパケットでホスト１１に通知することで、このエラー発生通知を受けてホスト１１側が対応する処理、具体的にはエラー発生前のデータが正常に受信できていることから残りデータに対するリードアクセスなどの対応処理を行なうことになる。
【０１４８】
また図１８の実施形態にあっては、受信用ＦＩＦＯ５０及びタスクファイルレジスタ５４側については特に処理を示していないが、この点については図２の実施形態をそのまま適用しても良い。
【０１４９】
（パケット数による制御）
図２３は、転送パケット数によりデバイス用インターフェースの特定の機能を制御する本発明の他の実施形態を示したブロック図であり、図１のハードディスクドライブ１０に設けているハードディスクコントローラ２８のインターフェース回路部３０のハードウェア構成とＭＰＵ３４のファームウェアとしての機能を示している。
【０１５０】
図２３において、ハードディスクコントローラ２８に設けられたインターフェース回路部３０は、図３の実施形態と同様、物理層４２、リンク層４４、トランスポート層４６及びアプリケーション層４８で構成される。
【０１５１】
トランスポート層４６には受信用ＦＩＦＯ５０と送信用ＦＩＦＯ６０を設け、またアプリケーション層４８にタスクファイルレジスタ５４とタスク制御ファイル５８を設けている。
【０１５２】
これに加えてこの実施形態にあっては、ファームウェアとして機能するＭＰＵ３４にコマンド処理部１９０とパケット制御条件設定部１９２が設けられ、これに対応してインターフェース回路部３０のアプリケーション層４８のハードウェアとして制御レジスタ１９８を備えたパケット制御実行回路１９６、受信レディ抑止回路（ＲＲＤＹ抑止回路）２００及びパワーモード回路２０２を設けている。
【０１５３】
ファームウェアとしてのＭＰＵ３４に設けたコマンド処理部１９０は、ホスト１１のインターフェース回路部４０からのパケット転送によって受信した受信コマンドのインターフェース回路部３０によるハードウェアによる解析結果に基づき、コマンド種別に応じてホスト１１に対するパケット転送制御準備を実行し、インターフェース回路部３０のアプリケーション層４８に対し、ホスト１１に対するパケット転送のプロトコルを開始させる。
【０１５４】
パケット制御条件設定部１９２、コマンド処理部１９０がホスト１１から受信したコマンドを解読して、パケット転送を開始する際にパケット転送開始後に実行する特定の制御機能の種別と制御機能の開始または終了を決める受信又は送信パケットのパケット数をパケット制御実行回路１９６の制御レジスタ１９８に設定する。
【０１５５】
この実施形態にあっては、転送パケット数により制御する機能として
（１）受信準備応答（受信レディ）の抑止解除、
（２）特定のコマンドを受信してパケットを転送した後のパワーモードへの突入制御、
の２つを例にとっている。
【０１５６】
このような転送パケット数による制御機能を実現させるため、アプリケーション層４８には受信レディ抑止回路２００とパワーモード回路２０２が設けられている。パケット制御条件設定部１９２によりパケット転送準備の際に制御種別及びパケット数を設定する制御レジスタ１９８は、例えば図２４の構成を有する。
【０１５７】
制御レジスタ１９８は、例えば１６ビットの制御レジスタであり、上位ビット側から見ると１５ビット目に受信レディ抑止ビット２０４を設け、１４ビット目に受信レディ抑止解除ビット２０６を設け、１３ビット目にパワーモード開始ビット２０８を設け、更にビット１２−０にパケット数２１０を設定できるようにしている。そこでまず転送パケット数による受信応答の抑止と抑止解除の制御について説明する。
【０１５８】
図２３の実施形態が適用されるシリアルＡＴＡインターフェースにあっては、例えばホスト１１からハードディスクコントローラ２８に対するＤＭＡ転送によるライトコマンドを例にとると、次の４種類がある。
（１）ライトＤＡＭコマンド(Write DMA Command)
（２）レガシィキューライトＤＡＭコマンド(Regacy Queued Write DMA Command)
（３）第１パターンのファーストパーティキューライトＤＭＡコマンド(First Party Queued Write Command)
（４）第２パターンのファーストパーティキューライトＤＭＡコマンド(First Party Queued Write Command)
【０１５９】
そしてこれらのＤＭＡタイプのライトコマンドは、コマンドごとにデバイス側のインターフェース回路部３０によるパケット転送のコマンド処理が異なっている。
【０１６０】
図２５は、ライトＤＭＡコマンド処理のフローチャートであり、ホスト１１から受信したコマンドを解析した後のパケット転送処理の手順を示している。
【０１６１】
このライトＤＭＡコマンド処理にあっては、まずステップＳ１でＤＭＡ起動パケット（ＤＭＡＣＴパケット）をホスト１１に転送した後、ステップＳ２でホスト１１からデータパケットを受信し、ステップＳ３で受信データ分だけ増加させたセクタカウンタＳＣが０に達したか否かをチェックし、０に達するまでステップＳ１からの処理を繰り返す。
【０１６２】
セクタカウンタＳＣが０に達するとデータパケットの転送終了を判別し、ステップＳ３からステップＳ４に進み、転送終了を示すＲｅｇＤＨパケットをホスト１１に転送する。
【０１６３】
図２６はレガシーキューライトＤＭＡコマンド処理であり、ホスト１１からの受信コマンドを解読してパケット転送を開始すると、まずステップＳ１でセットデバイスビットパケット（ＳＥＴＤＢパケット）をホスト１１に転送した後、ステップＳ２でホスト１１からサービスコマンドを受領する。
【０１６４】
続いてステップＳ３でＲｅｇＤＨパケットをホスト１１に転送した後、ステップＳ４でＤＭＡ起動パケット（ＤＭＡＣＴパケット）をホスト１１に転送した後、ステップＳ５でデータパケットをホストから受信し、ステップＳ６でセクタカウンタＳＣをチェックする。
【０１６５】
そしてステップＳ６でセクタカウンタＳＣが０になるまでステップＳ４，Ｓ５のパケット転送を繰り返し、データパケットの転送が終了してセクタカウンタＳＣが０になるとステップＳ７に進み、パケット転送終了を通知するためＲｅｇＤＨパケットをホスト１１に転送する。
【０１６６】
図２７は、第１パターンのファーストパーティキューライトＤＭＡコマンド処理のフローチャートである。この場合にはホスト１１から受信したコマンドを解析した後にパケット転送を開始し、まずステップＳ１でホスト１１に対しＤＭＡセットアップパケット（ＤＭＡＳＵパケット）を転送する。
【０１６７】
続いてステップＳ２でホスト１１に対しＤＭＡ起動パケット（ＤＭＡＣＴパケット）を転送した後、ステップＳ３でホスト１１からデータパケットを受信する。そしてステップＳ４でセクタカウンタＳＣをチェックし、これが０になるまでステップＳ２，Ｓ３のパケット転送を繰り返す。セクタカウンタＳＣが０になるとステップＳ５に進み、パケット転送終了を示すセットデバイスビットパケット（ＳＥＴＤＢパケット）を転送する。
【０１６８】
図２８は、図２７と同じファーストパーティキューライトＤＭＡコマンド処理であるが、図２７の第１パターンに対し異なった第２パターンとなっている。なお、図２７の第１パターンとするか図２８の第２パターンとするかは、装置の製造段階で設定することとなる。
【０１６９】
図２８の第２パターンのコマンド処理にあっては、ステップＳ１でＤＭＡセットアップパケット（ＤＭＡＳＵパケット）をホスト１１に転送する点は図２７の第１パターンと同じであるが、パターン２の場合は次のステップＳ２で直ちにホスト１１からデータパケットを受信し、その後にステップＳ３，Ｓ４のＤＭＡ起動パケット（ＤＭＡＣＴパケット）とデータパケットの転送をステップＳ５でセクタカウンタＳＣが０になるまで繰り返す。
【０１７０】
セクタカウンタＳＣが０になればステップＳ６でパケット転送終了を示すセットデバイスビットパケット（ＳＥＴＤＢパケット）をホスト１１に転送する。このため第２パターンのほうがデータパケット転送の効率が高い。
【０１７１】
この図２５〜図２８に示したようなホスト１１からのライトＤＭＡコマンドのパケット転送中にホスト１１で次のコマンドのパケット転送要求が発生して送信レディ信号を送ってきた場合にデバイス側のインターフェース回路部３０にあっては、現在実行中のコマンドのパケット転送処理を一度中断して、ホスト１１からの次のコマンドのパケット受信を行なうようになる。
【０１７２】
しかしながら、コマンドの使い方によってはパケット転送の途中でホスト１１から次のコマンドの送信要求があってもこれを抑止してパケット転送をあるパケットまで続けたい場合がある。
【０１７３】
例えば図２８の第２パターンのファーストパーティキューライトＤＭＡコマンド処理にあっては、ホスト１１からコマンド受信してパケット転送準備を行なった後、コマンド受信に対する応答用のＲｅｇＤＨパケットとこれに続く図２７のステップＳ１のＤＭＡＳＵパケットを転送するまでは、ホスト１１からの次のコマンドによるパケット転送要求を抑止する必要がある。
【０１７４】
このような場合に図２３の実施形態にあっては、コマンド処理部１９０によるコマンド解析結果に基づくパケット転送準備処理の段階で、パケット制御条件設定部１９２がインターフェース回路部３０のアプリケーション層４８に設けたパケット制御実行回路１９６の制御レジスタ１９８に対し、即ち図２４の制御レジスタ１９８に対し、その受信レディ抑止ビット２０４にビット１をセットすると同時にパケット数２１０としてパケット数＝２を設定し、パケット転送を開始する。
【０１７５】
制御レジスタ１９８に対する受信レディ抑止ビット２０４のセットと、パケット数２１０の「２」の設定を行ってパケット転送を開始すると、デバイス１１に対するコマンド受信応答用のＲｅｇＤＨパケットに続いて図２８のステップＳ１でＤＭＡセットアップパケット（ＤＭＡＳＵパケット）の転送が完了した段階で、転送パケット数が制御レジスタ１９８の設定パケット数に一致し、この時点でパケット制御実行回路１９６がそのハードウェアによって図２４の制御レジスタ１９８の受信レディ抑止ビット２０４をそれまでの１から０にリセットし、同時に受信レディ抑止解除ビット２０５を０から１にセットする。
【０１７６】
この結果、アプリケーション層４８に設けている受信レディ抑止回路２００にあっては、インターフェース回路部３０によるパケット転送の開始でパケットを２つ転送するまでは受信レディ抑止制御が行われ、その間にホスト１１のインターフェース回路部４０より次のコマンドの送信レディ信号を受けても受信レディ信号を応答せず、パケット転送が中断することを抑止する。
【０１７７】
そして２つめのパケットが転送した後は、受信レディ信号の抑止解除がハードウェアで自動的に行われ、それ以降のパケット転送中にホスト１１側より次のコマンドの送信要求があればこれを許容して現在のパケット転送を中断して新たなコマンドの受信処理を行なうことになる。
【０１７８】
図２９は、図２３の実施形態において図２８のコマンド処理におけるパケット転送のタイムチャートであり、パケット転送中にホスト側から次のコマンドの送信要求が無かった場合である。
【０１７９】
図２９において、ホスト１１でコマンドパケット送信要求２１２が発生するとハードディスクドライブとなるデバイス１０ａに対し送信レディ信号（ＸＲＤＹ）送信２１４を行い、デバイス１０ａ側でパケット受信ＯＫ状態２１６であれば受信レディ信号（ＲＲＤＹ）送信２１８を行い、これを受けてホスト１１はコマンドパケット送信２２０を行い、パケット送信２２４によりデバイス１０ａにコマンドパケットが送信され、コマンドＲｅｇＨＤパケット受信完了２２６となる。
【０１８０】
ここでホスト１１からコマンドをデバイス１０ａに転送するためのプロトコルは
（１）送信レディ信号（ＸＲＤＹ）送信２１４
（２）受信レディ信号（ＲＲＤＹ）送信２１８
（３）パケット送信２２４
の３段階の信号送信を経てパケット転送が行われ、この３つの転送処理をまとめたものが点線で囲むようにＲｅｇＨＤパケット２２４の転送を表すこととなる。
【０１８１】
そこで説明に簡単にするためＲｅｇＨＤパケット２２４以降のパケット転送についてはブロック矢印により示すことで送信レディ信号（ＸＲＤＹ）送信、受信レディ信号（ＲＲＤＹ）送信及びパケット送信をひとつにまとめて示している。この点は図２の実施形態に対応して図３〜図６に示した各パケットについても同じである。
【０１８２】
再び図２９を参照するに、デバイス１０ａはコマンドＲｅｇＨＤパケット受信完了２２６が済むと、アプリケーション層４８のハードウェアによってコマンド解析が行われ、このコマンド解析結果に基づきファームウェアとしてのＭＰＵ３４がパケット準備処理２２８を実行する。
【０１８３】
このパケット準備処理２２８は次の処理ステップからなる。
ステップＳ１：ハードウェアによって解析されたパケット情報を処理する。
ステップＳ２：送信するパケットを準備する。
ステップＳ３：パケット転送の開始を設定する。
【０１８４】
このようなファームウェアによるパケット準備処理２２８が行われると、まずコマンドの正常受信を示す応答パケットとしてＲｅｇＤＨパケット２３０をホスト１１に転送し、ホスト１１はＲｅｇＤＨパケット受信完了２３２となる。
【０１８５】
続いてデバイス１０ａはＤＭＡセットアップパケット（ＤＭＡＳＵパケット）２３４を転送し、これを受けてホスト１１はＤＭＡＳＵパケット受信完了２３６となる。次にホスト１１がデバイス１０ａに対しデータパケット２３８を転送し、これを受けてデバイス１０ａはデータパケット受信完了２４０となる。
【０１８６】
次にデバイス１０ａはＤＭＡ起動パケット（ＤＭＡＣＴパケット）２４２をホスト１１に送り、これを受けてＤＭＡＣＴパケット受信完了２４４となる。それ以降はデバイス１０ａ側でデータパケットの受信によるセクタカウンタが０となるまでホスト１１からのデータパケットの受信とホストに対するＤＭＡＣＴパケットの送信を繰り返し、最終的に図２６ステップＳ６のようにデバイス１０ａからホスト１１に対し、セットデバイスビットパケット（ＳＥＴＤＢパケット）を転送して処理を終了する。
【０１８７】
図３０は、図２９と同じ図２８の第２パターンのコマンド受信に対するパケット転送処理のタイムチャートであり、この場合にはデバイス１０ａでＲｅｇＤＨパケット２３０の転送処理を行ってホスト１１でＲｅｇＤＨパケット受信完了となった後、次コマンドパケット送信要求２４６が発生している。
【０１８８】
このような次コマンドパケット送信要求２４６が発生した場合、デバイス１０ａ側において受信レディ抑止が行われていない場合には、ホスト１１からの次コマンドパケット送信要求２４６に伴う送信レディ信号（ＸＲＤＹ）送信２４８受けて、受信レディ信号（ＲＲＤＹ）送信２５０が行われ、次コマンドパケット送信２５２によりパケット送信２５４が行われ、レディバイス１０ａにおいて次コマンドについてのパケット受信完了２５６となる。
【０１８９】
この送信レディ信号（ＸＲＤＹ）送信２４８、受信レディ信号（ＲＲＤＹ）送信２５０及びパケット送信２５４は次のコマンド転送におけるＲｅｇＤＨパケット２５５の転送となり、この間、デバイス１０ａにあっては図２９で行っていたＤＭＡＳＵパケット２３４以降のパケット転送を中断することとなり、現在実行中のパケット転送に時間遅れを生ずることとなる。
【０１９０】
そこでこのような場合には図２３の実施形態にあってはコマンド受信完了に伴うファームウェアとしてのＭＰＵ３４によるパケット準備処理の際にパケット制御条件設定部１９２により、制御レジスタ１９８に受信レディ信号（ＲＲＤＹ）の抑止と抑止を解除するまでの転送パケット数をセットし、設定したパケット数の転送が完了するまではホスト１１からの次のコマンドのパケット送信要求を抑止させる。
【０１９１】
図３１は、パケット転送中にホスト１１からの次のコマンド要求を抑止し、パケット準備処理の段階で設定したパケット数の転送がすんだ後に抑止を解除する図２３の実施形態によるパケット転送処理のタイムチャートである。
【０１９２】
図３１において、ホスト１１のコマンドパケット送信要求２１２からデバイス１０ａのＲｅｇＨＤパケット受信完了２２６までは図３０と同じであるが、次のファームウェアとしてのＭＰＵ３４によるパケット準備処理２６０において、図２４の制御レジスタ１９８に対する受信レディ信号（ＲＲＤＹ）抑止ビット２０４のセット、受信レディ信号（ＲＲＤＹ）抑止解除ビット２０６のリセット及びパケット数２１０の「パケット数＝２」のセットを行った後パケット転送を開始する。
【０１９３】
この場合には転送開始後のパケット数＝２に達するまで受信レディ信号（ＲＲＤＹ）の抑止２６２が行われる。このため図３０の場合と同様にしてＲｅｇＤＨパケット２３０の転送後にホスト１１で次コマンドパケット送信要求２４６が発生して、送信レディ信号（ＸＲＤＹ）送信２４８が行われた後、受信レディ信号（ＲＲＤＹ）抑止２６２によりホスト１１に対する受信応答信号（ＲＲＤＹ）の送信は行われず、現在実行中のコマンドに基づく次のＤＡＭＳＵパケット２３４の転送が行われる。
【０１９４】
このＤＭＡＳＵパケット２３４の転送が完了するとデバイス１０ａ側のインターフェース回路部３０におけるハードウェアにより設定パケット数に転送パケット数が一致したことが判別され、図２４の制御レジスタ１９８の受信レディ信号（ＲＲＤＹ）抑止ビット２０４が１から０にリセットされ、同時に受信レディ信号（ＲＲＤＹ）抑止解除ビット２０６が０から１にセットされることによって、図３１に示すハードウェア抑止解除２６６が行われる。
【０１９５】
このためデバイス１０ａからはすでに受信している次のコマンドパケット送信要求２４６に伴う送信レディ信号（ＸＲＤＹ）送信２４８に対し、抑止解除をうけて受信レディ信号（ＲＲＤＹ）送信２５０を行い、次コマンドパケット送信２５２となってパケット送信２５４が行われディバイス１０ａにおいて次コマンドパケット受信完了２５６となり、ファームウェアとしてのＭＰＵ３４は次コマンド処理２６８を実行することとなる。
【０１９６】
ここでデバイス１０ａのインターフェース回路部３０における受信レディ信号（ＲＲＤＹ）抑止２６２に処理中にあっては、ファームウェアとしてのＭＰＵ３４にあっては受信レディ信号の抑止解除を行なうためのパケット転送状態監視が不要となる監視フリー状態２６４となり、監視フリー状態２６４にあっては他の内部処理を実行することができる。
【０１９７】
図３２は、図３１のデバイス１０ａにおけるファームウェアとしてのＭＰＵ３４によるパケット準備処理２６０の処理手順を示したフローチャートである。このパケット準備処理にあっては、ステップＳ１でインターフェース回路部３０のハードウェアにより解析されたパケット情報を処理し、ステップＳ２で送信パケットを準備した後、ステップＳ３で図２４の制御レジスタ１９８に受信レディ信号（ＲＲＤＹ）の抑止ビットと抑止解除を行なうパケット数を設定した後、ステップＳ４で転送開始ビットを設定してパケット転送処理を開始することとなる。
【０１９８】
次に図２３の実施形態で特定のコマンドを受信してパケット転送を終了した際のパワーモードの制御処理を説明する。このパケット転送にともなうパワーモード処理としては例えばホスト１１からシーク要求コマンドを受信した場合の処理がある。
【０１９９】
図３３は、シーク要求コマンドを受信した後のパケット数の設定によりパワーモードに突入させる制御のタイムチャートである。
【０２００】
図３３において、ホスト１１からシーク要求コマンドパケット送信要求２７０が発生すると、ＲｅｇＨＤパケット２８２にまとめて示すように、送信レディ信号（ＸＲＤＹ）送信２７２が行われディバイス１０ａ側でパケット受信ＯＫ状態２７４にあれば受信レディ信号（ＲＲＤＹ）送信２７６を行う。
【０２０１】
これを受けてホスト１１はシーク要求コマンドパケット送信２７８によりパケット送信２８０を行い、デバイス１０ａ側でシーク要求コマンドパケット受信完了２８４となる。続いてファームウェアとしてのＭＰＵ３４としてはパケット準備処理２９６を実行する。
【０２０２】
このパケット準備処理２９６は図３４のフローチャートに示すようになる。まずステップＳ１でインターフェース回路部３０のハードウェアにより解析されたパケット情報を処理し、シーク及びパワーモードの準備処理を行なう。
【０２０３】
次にステップＳ２で送信するパケットを準備し、同時にパワーモードに突入するための転送パケット数をこの例では「パケット数＝１」に設定する。次にステップＳ３でシーク動作を起動する処理を行なった後、ステップＳ４で図２４の制御レジスタ１９８のパワーモード開始ビット２０８を０から１に設定し、ステップＳ５で転送開始ビットをセットし転送処理を開始する。
【０２０４】
再び図３３を参照するに、このようなパケット準備処理２９６により、パケット転送が開始されると、すでに受け取ったホスト１１からのＲｅｇＨＤパケット２８２に対する応答パケットとしてＲｅｇＤＨパケット２８８を転送し、ホスト１１でＲｅｇＤＨパケット受信完了２９０となる。
【０２０５】
そしてホスト１１に対するＲｅｇＤＨパケット２８８の転送が完了すると、転送済みのパケット数が図２４の制御レジスタ１９８のパケット数２１０に設定した「パケット数＝１」に一致することから、図２３のパケット制御実行回路１９６による信号出力を受けてパワーモード回路２０２が動作し、パワーモード突入２９４となる。
【０２０６】
このパワーモード突入２９４による処理は図２３のインターフェース回路部３０においてシーク動作が完了するまでの間ホスト１１側からのコマンド転送要求がない限り、インターフェース回路部３０における電力消費を抑えるパワーセーブ制御を行なうことになる。
【０２０７】
そしてパワーモード突入２９４に突入するための転送パケット数と設定パケット数との比較は、インターフェース回路部３０のハードウェアにより行われており、その間、ファームウェアとしてのＭＰＵ３４はフリー状態２９８となり、他の内部処理を実行することができる。
【０２０８】
図３５は、ホストからのコマンドを受信した後の転送パケット数により特定の機能を制御する本発明の他の実施形態のブロック図であり、図２３の実施形態にあっては、特定の機能を制御するための転送パケット数の判断をインターフェース回路部３０側のハードウェアで行うようにしていたが、この実施形態にあっては、ファームウェアとしてのＭＰＵ３４側で行うようにしたことを特徴とする。
【０２０９】
このため図３５の実施形態にあっては、ファームウェアとしてのＭＰＵ３４にコマンド処理部１９０、パケット制御条件設定部３００に加えて、パケット制御条件監視部３０２を設けている。
【０２１０】
またインターフェース回路部３０側には、図２３と同様に受信レディ信号（ＲＲＤＹ）抑止回路２００とパワーモード回路２０２が設けられるが、転送パケット数の監視はＭＰＵ３４側で行われることから制御レジスタ３０４のみが設けられ、この制御レジスタ３０４は図３６のように、受信レディ信号（ＲＲＤＹ）抑止ビット３０５、受信レディ信号（ＲＲＤＹ）抑止解除ビット３０６及びパワーモード開始ビット３０８を設けているが、図２４のようにパケット数の設定は行っていない。
【０２１１】
図３７は、図３５の実施形態において、図２８の第２パターンのコマンド処理においてデバイスからのパケット転送の先頭の２パケットの間、ホスト１１からの次のコマンドの転送要求を抑止する場合のタイムチャートである。
【０２１２】
この図３７を図３１の転送パケット数をハードウェアにより監視する場合に比べると、デバイス１０ａにおけるパケット準備処理３１０とパケット監視処理３１４がファームウェアにより行われる点が相違し、他の処理は同じである。
【０２１３】
図３７におけるファームウェアによるパケット準備処理３１０とパケット監視処理３１４の処理手順は、図３８のフローチャートのようになる。図３８において、ステップＳ１〜Ｓ４は図３７のパケット準備処理３１０であり、次のステップＳ５〜Ｓ９が図３７のパケット監視処理３１４となる。
【０２１４】
この転送パケット監視処理にあっては、準備処理としてステップＳ１でインターフェース回路部３０のハードウェアにより解析されたパケット情報を処理し、ステップＳ２で送信パケットを準備した後、ステップＳ３で図３６の制御レジスタ３０４に対し受信レディ信号（ＲＲＤＹ）抑止ビットとパケット数を設定する。
【０２１５】
この場合、抑止を行うパケット数は「パケット数＝２」を設定する。続いてステップＳ４で転送開始ビットを設定し、パケット転送処理を開始した後は、ステップＳ５以降の監視処理に入る。パケット監視処理にあっては、ステップＳ５でパケット送信開始を確認し、ステップＳ６でパケット送信完了を確認すると、ステップＳ７で転送パケット数を１つインクリメントし、ステップＳ８で制御レジスタ３０４の設定パケット数と比較して、一致するか否か判別し、一致するまでステップＳ５からの処理を繰り返す。
【０２１６】
転送パケット数が設定パケット数に一致すると、ステップＳ９に進み、図３６の受信レディ信号（ＲＲＤＹ）抑止解除ビット３０６をセットし、これによってホスト１１からの次のコマンドの送信要求を受け入れ可能とする。
【０２１７】
図３９は、図３５の実施形態においてホスト１１からシーク要求コマンドを受信して、その後のパケット転送で所定パケット数を転送した後に、パワーモードに突入する制御処理のタイムチャートである。
【０２１８】
このシーク要求コマンドの実行に伴う転送でパワーモードに突入する制御は、基本的には図３３の転送パケット数をインターフェース回路部のハードウェアにより監視する実施形態と同じであるが、パケット準備処理３２０及びパケット監視処理３２２をファームウェアとしてのＭＰＵ３６で行っている点が相違する。
【０２１９】
このファームウェアにより行うパケット準備処理３２０及びパケット監視処理３２２の処理手順は、図４０のパケット準備監視処理のフローチャートのようになる。
【０２２０】
図４０のフローチャートにあっては、ステップＳ１〜Ｓ５が図３９のパケット準備処理３２０であり、残りのステップＳ６〜Ｓ１０が図３９のパケット監視処理３２２となる。まずパケット準備処理は、ステップＳ１でインターフェース回路部３０のハードウェアにより解析されたシーク要求コマンドに対するパケット情報を処理し、シーク及びパワーモードを準備処理する。
【０２２１】
次に、ステップＳ２で転送するパケットを準備する。更にステップＳ３でシーク動作を起動した後、ステップＳ４で図３６の制御レジスタ３０４のパワーモード開始ビット３０８を設定した後、ステップＳ５で転送開始ビットを設定して転送を開始する。
【０２２２】
転送中の監視処理にあっては、ステップＳ６でパケット送信開始を確認し、ステップＳ７でパケット送信完了を確認すると、ステップＳ８で送信パケット数を１つインクリメントし、ステップＳ９で予め設定しているパワーモード突入に必要な転送パケット数、例えば「転送パケット数＝１」と比較する。
【０２２３】
この場合には、転送パケット１つの転送で設定パケット数に達することから、ステップＳ１０に進み、パワーモードへの投入指示をパワーモード回路２０２に対し行い、インターフェース回路部３０において電力消費を節減するパワーセーブの動作状態とする。
【０２２４】
ここで図２３及び図３５の実施形態については、転送パケット数により制御する特定の機能として受信レディ信号の抑止と抑止解除、シーク要求コマンドを受信した後のパワーモードへの投入を例に取るものであったが、これ以外にデバイス側でホストとのパケット転送に伴って必要とする転送パケット数で制御の開始または停止を可能とする適宜の機能の制御につき、そのまま適用することができる。
【０２２５】
なお、上記の実施形態は、シリアル伝送線を使用したパケット転送としてシリアルＡＴＡインターフェースに本発明を適用した場合を例にとっているが、本発明はこれに限定されず、適宜のシリアルインターフェースにつきそのまま適用できる。
【０２２６】
また上記の実施形態は、ホストとハードディスクドライブとの間のデータ転送を例に取るものであったが、デバイスとしてはハードディスクドライブ以外に適宜のデバイスとすることができる。
【０２２７】
ここで、本発明の特徴をまとめると次の付記のようになる。
【０２２８】
（付記）
（付記１）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェース装置に於いて、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
データ転送中に前記受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記アプリケーション層に設けられ、前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部と、
を備えたことを特徴とするインターフェース装置。（１）
【０２２９】
（付記２）
付記１記載のインターフェース装置に於いて、前記転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、
前記空き時間に受信して前記受信用ＦＩＦＯに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、
前記受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、
前記コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、
前記コマンド解読部がデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用ＦＩＦＯにコマンド受信応答情報を格納して前記リンク層及び物理層を介して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部と、
を備えたことを特徴とするインターフェース装置。（２）
【０２３０】
（付記３）
付記１記載のインターフェース装置に於いて、前記空き時間生成部は、前記ホストとの間で送信又は受信するデータパケットの転送完了を検出して一定の空き時間を設定することを特徴とするインターフェース装置。（３）
【０２３１】
（付記４）
付記２記載のインターフェース装置に於いて、前記転送再開部は、前記送信用ＦＩＦＯにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするインターフェース装置。（４）
【０２３２】
（付記５）
ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
データ転送中に前記受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部と、
を備えたことを特徴とするインターフェース装置（５）
【０２３３】
（付記６）
付記５記載のインターフェース装置に於いて、前記転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、
前記空き時間に受信して前記受信用ＦＩＦＯに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、
前記前記受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、
前記コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、
前記コマンド解読部がデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用ＦＩＦＯにコマンド受信応答情報を格納して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部と、
を備えたことを特徴とするインターフェース装置。（６）
【０２３４】
（付記７）
付記５記載のインターフェース装置に於いて、前記空き時間生成部は、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするインターフェース装置。
【０２３５】
（付記８）（ＲｅｇＤＨの応答パケット）
付記６記載のインターフェース装置に於いて、前記転送再開部は、前記送信用ＦＩＦＯにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするインターフェース装置。
【０２３６】
（付記９）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
データ転送中に前記受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記アプリケーション層に設けられ、前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット伝送方法に於いて、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とするパケット転送方法。（６）
【０２３７】
（付記１０）
付記９記載のパケット転送方法に於いて、前記転送中コマンド処理ステップは、
前記空き時間に受信して前記受信用ＦＩＦＯに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
前記受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
前記コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
前記コマンド解読ステップでデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用ＦＩＦＯにコマンド受信応答情報を格納して前記リンク層及び物理層を介して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とするパケット転送方法。（７）
【０２３８】
（付記１１）
付記９記載のパケット転送方法に於いて、前記空き時間生成ステップは、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするパケット転送方法。（８）
【０２３９】
（付記１２）
付記１０記載のパケット転送に於いて、前記転送再開ステップは、前記送信用ＦＩＦＯにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするパケット転送方法。（９）
【０２４０】
（付記１３）
ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
データ転送中に前記受信用ＦＩＦＯに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
を備え、ホストとの間でシリアル伝送によりコマンのパケット転送方法に於いて、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とするパケット転送方法。（１０）
【０２４１】
（付記１４）
付記１３記載のパケット転送方法に於いて、前記転送中コマンド処理ステップは、
前記空き時間に受信して前記受信用ＦＩＦＯに格納されたコマンドパケットにつき前記コマンド検出回路でコマンドからコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
前記受信用ＦＩＦＯから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
前記コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
前記コマンド解読ステップでデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用ＦＩＦＯにコマンド受信応答情報を格納して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とするパケット転送方法。
【０２４２】
（付記１５）
付記１３記載のパケット転送方法に於いて、前記空き時間生成ステップは、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするパケット転送方法。
【０２４３】
（付記１６）
付記１４記載のパケット転送方法に於いて、前記転送再開ステップは、前記送信用ＦＩＦＯにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするパケット転送方法。
【０２４４】
（エラー時のデータパケット転送完結）
（付記１７）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
前記アプリケーション層に設けられ、前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
前記送信用ＦＩＦＯに常に所定の１単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御部と、
データ送信中にエラーによりデータ入力が停止した場合、前記送信用ＦＩＦＯに滞留している１単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御部と、
を備えたことを特徴とするインターフェース装置。（１１）
【０２４５】
（付記１８）
付記１７記載のインターフェース装置に於いて、前記入出力制御部は、前記送信用ＦＩＦＯに受信データを格納する場合、前に受信したデータを出力した後に格納することを特徴とするインターフェース装置。（１２）
【０２４６】
（付記１９）
付記１７記載のインターフェース装置に於いて、前記入出力制御部は、前記送信用ＦＩＦＯに１単位のデータとして最小単位データを滞留させることを特徴とするインターフェース装置。（１３）
【０２４７】
（付記２０）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用ＦＩＦＯと、
前記アプリケーション層に設けられ、前記受信用ＦＩＦＯのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用ＦＩＦＯと、
を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
前記送信用ＦＩＦＯに常に所定の１単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御ステップと、
データ送信中にエラーによりデータ入力が停止した場合、前記送信用ＦＩＦＯに滞留している１単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御ステップと、
を備えたことを特徴とするパケット転送方法。（１４）
【０２４８】
（付記２１）
付記２０記載のパケット転送方法に於いて、前記入出力制御ステップは、前記送信用ＦＩＦＯに受信データを格納する場合、前に受信したデータを出力した後に格納することを特徴とするパケット転送方法。
【０２４９】
（付記２２）
付記２０記載のパケット転送方法に於いて、前記入出力制御ステップは、前記送信用ＦＩＦＯに１単位のデータとして最小単位データを滞留させることを備えたことを特徴とするパケット転送方法。
【０２５０】
（パケット数の監視）
（付記２３）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信又は受信するパケット数を設定するパケット制御条件設定部と、
パケット転送中における前記設定パケット数への到達を検出して前記制御機能を停止又は起動するパケット制御実行回路部と、
を備えたことを特徴とするインターフェース装置。（１５）
【０２５１】
（付記２４）
付記２３記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を解除するパケット数を設定し、
前記パケット制御実行回路部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時に前記抑止動作を解除することを特徴とするインターフェース装置。（１６）
【０２５２】
（付記２５）
付記２３記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、
前記パケット制御実行回路部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時に前記パワーモードへの突入を指示することを特徴とするインターフェース装置。（１７）
【０２５３】
（付記２６）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信パケット又は受信パケットのパケット数を制御レジスタに設定するパケット制御条件設定ステップと、
パケット転送中における前記制御レジスタの設定パケット数への到達を検出して前記制御機能を起動又は停止するパケット制御実行ステップと、
を備えたことを特徴とするパケット転送方法。（１８）
【０２５４】
（付記２７）
付記２６記載のパケット転送方法に於いて、
前記パケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を解除するパケット数を設定し、
前記パケット制御実行ステップは、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時点で前記抑止動作を解除することを特徴とするパケット転送方法。
【０２５５】
（付記２８）
付記２６記載のパケット転送方法に於いて、
前記制御条件設定ステップは、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、
前記制御指示ステップは、パケット転送開始後に転送パケット数が設定パケット数に到達した時点で前記パワーモードへの突入を指示することを特徴とするパケット転送方法。
【０２５６】
（付記２９）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定部と、
パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能を起動又は停止するパケット制御条件監視部と、
を備えたことを特徴とするインターフェース装置。（１９）
【０２５７】
（付記３０）
付記２９記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を設定し、
前記パケット制御条件監視部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が所定のパケット数に到達した時点で前記抑止動作を解除することを特徴とするインターフェース装置。
【０２５８】
（付記３１）
付記２９記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードを設定し、
前記パケット制御条件監視部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時点で前記パワーモードへの突入を指示することを特徴とするインターフェース装置。
【０２５９】
（付記３２）
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定ステップと、
パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能の起動又は停止を指示するパケット制御条件監視ステップと、
を備えたことを特徴とするパケット転送方法。（２０）
【０２６０】
（付記３３）
付記３２記載のパケット転送方法に於いて、
前記パケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を設定し、
前記パケット制御条件監視ステップは、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が所定のパケット数に到達した時点で前記抑止動作を解除することを特徴とするパケット転送方法。
【０２６１】
（付記３４）
付記３２記載のパケット転送方法に於いて、
前記パケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送後のパワーモードを設定し、
前記パケット制御条件監視ステップは、パケット転送開始後に転送パケット数が設定パケット数に到達した時点で前記パワーモードへの突入を指示することを特徴とするパケット転送方法。
【符号の説明】
【０２６２】
１０：ハードディスクドライブ
１０ａ：デバイス
１１：ホスト
１２：コントロールボード
１４：ディスクエンクロージャ
１５：シリアル伝送線
１６：スピンドルモータ（ＳＰＭ）
１８：ボイスコイルモータ（ＶＣＭ）
２０−１，２０−２：磁気ディスク
２２−１〜２２−４：ヘッド
２４：ヘッドＩＣ
２６：リードチャネル（ＲＤＣ）
２８：ハードディスクコントローラ（ＨＤＣ）
３０：インターフェース回路部
３２：ＲＡＭ
３４：ＭＰＵ（ファームウェア）
３６：ＲＯＭ
３８：ＤＳＰ
４０：インターフェース回路部
４２：物理層
４４：リンク層
４６：トランスポート層
４８：アプリケーション層
５０：受信用ＦＩＦＯ
５２：コマンド検出回路
５４：タスクファイルレジスタ
５６：キュー
５８：タスク制御ファイルレジスタ
６０：送信用ＦＩＦＯ
６４：空き時間生成部
６６：転送中コマンド処理部
６８：一時停止処理部
７０：コマンド解読部
７２：転送打切部
７４：転送再開部
１８０：エラー検出部
１８２：入出力制御部
１８４：エラー終了転送制御部
１９０：コマンド処理部
１９２，３００：パケット制御条件設定部
１９６：パケット制御実行回路
１９８，３０４：制御レジスタ
２００：受信レディ抑止回路
２０２：パワーモード回路
３０２：パケット制御条件監視部
【図１】
2010092493.tif 000003
【図２】
2010092493.tif 000004
【図３】
2010092493.tif 000005
【図４】
2010092493.tif 000006
【図５】
2010092493.tif 000007
【図６】
2010092493.tif 000008
【図７】
2010092493.tif 000009
【図８】
2010092493.tif 000010
【図９】
2010092493.tif 000011
【図１０】
2010092493.tif 000012
【図１１】
2010092493.tif 000013
【図１２】
2010092493.tif 000014
【図１３】
2010092493.tif 000015
【図１４】
2010092493.tif 000016
【図１５】
2010092493.tif 000017
【図１６】
2010092493.tif 000018
【図１７】
2010092493.tif 000019
【図１８】
2010092493.tif 000020
【図１９】
2010092493.tif 000021
【図２０】
2010092493.tif 000022
【図２１】
2010092493.tif 000023
【図２２】
2010092493.tif 000024
【図２３】
2010092493.tif 000025
【図２４】
2010092493.tif 000026
【図２５】
2010092493.tif 000027
【図２６】
2010092493.tif 000028
【図２７】
2010092493.tif 000029
【図２８】
2010092493.tif 000030
【図２９】
2010092493.tif 000031
【図３０】
2010092493.tif 000032
【図３１】
2010092493.tif 000033
【図３２】
2010092493.tif 000034
【図３３】
2010092493.tif 000035
【図３４】
2010092493.tif 000036
【図３５】
2010092493.tif 000037
【図３６】
2010092493.tif 000038
【図３７】
2010092493.tif 000039
【図３８】
2010092493.tif 000040
【図３９】
2010092493.tif 000041
【図４０】
2010092493.tif 000042