JP2005100230A - インターフェース装置及びパケット転送方法 - Google Patents

インターフェース装置及びパケット転送方法 Download PDF

Info

Publication number
JP2005100230A
JP2005100230A JP2003334986A JP2003334986A JP2005100230A JP 2005100230 A JP2005100230 A JP 2005100230A JP 2003334986 A JP2003334986 A JP 2003334986A JP 2003334986 A JP2003334986 A JP 2003334986A JP 2005100230 A JP2005100230 A JP 2005100230A
Authority
JP
Japan
Prior art keywords
packet
command
data
transfer
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003334986A
Other languages
English (en)
Other versions
JP4460867B2 (ja
Inventor
Katsuhiko Takeuchi
克彦 竹内
Shinichi Utsunomiya
晋一 宇都宮
Nobuyuki Myoga
信行 茗茄
Sumie Matsubayashi
澄恵 松林
Hirohide Sugawara
博英 菅原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003334986A priority Critical patent/JP4460867B2/ja
Priority to US10/777,937 priority patent/US7818479B2/en
Publication of JP2005100230A publication Critical patent/JP2005100230A/ja
Application granted granted Critical
Publication of JP4460867B2 publication Critical patent/JP4460867B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】データ転送中に実行中のコマンドをキャンセルすることなく次のコマンドを受け取れるようにする。
【解決手段】デバイス用のインターフェース回路部30は、ホスト11との間でシリアル伝送によりコマンド及びデータをパケット形式により転送する。トランスポート層46に受信用FIFO50、コマンド検出回路52及び送信用FIFO60を設け、アプリケーション層48に受信用のタスクファイルレジスタ54と送信用のタスク制御ファイルレジスタ58を設ける。データ転送中のパケットの区切り毎にホスト11から別のコマンドパケットを受信するための空き時間を生成する。データ転送中の空き時間にホスト11からコマンドパケットを受信すると、データ転送を一時停止して受信コマンドを解読してデータ転送継続かキャンセルかの処理を実行した後に、データ転送を再開する。
【選択図】 図2

Description

本発明は、ホストとデバイスとの間でコマンド及びデータをパケットにより転送するインターフェース装置及びパケット転送方法に関し、特にホストとデバイスの間をシリアル転送線により接続してパケットを転送するインターフェース装置及びパケット転送方法に関する。
従来、ホストコンピュータとハードディスクドライブ等のデバイスとの間のインターフェースは、パラレル伝送線を使用したATAインターフェース(AT Attachment Interface)が主流であったが、近年、インターフェースの高速化とハードディスクドライブの大容量化に対応するため、シリアル伝送線を使用したシリアルATAインターフェース(SATA)の実用化が推し進められている。
特開2001−229115号公報 特開2001−117724号公報 特開2002−051072号公報
しかしながら、従来のパラレルATAインターフェースにあっては、ホストからデバイス側となるハードディスクドライブのライトアクセス又はリードアクセスについては、ライトコマンド又はリードコマンドの発行からデータ転送を終了するまでの一連の伝送シーケンスの途中で、ホストが新たなコマンドを発行したとしても、コマンドに基づくデータ転送が完了するまで、ホストが新たに発行したコマンドは待たされる。
これは従来のパラレルATAインターフェースが、ホスト側及びデバイス側が同じタスクファイルレジスタを参照する構成を採用しているためであり、デバイス側のインターフェース回路にタスクファイルレジスタは1つしか設けられておらず、もしデータ転送中に、次のコマンドを受付けた場合、現在のコマンド実行中のタスクファイルレジスタの内容が破壊されてしまう。
このため、データ転送中は次のコマンドを受け取ることができず、データ転送中に次のコマンドを受け取るためには、実行中のデータ転送を強制的にキャンセルして次のコマンドを受け取るといった方法しかとれなかった。
現在、実用化が進展しているシリアルATAインターフェース(SATA)にあっても、基本的に従来のパラレルATAインターフェースと同じ考えを流用しており、このためデバイス側の設けるタスクファイルレジスタは1つになる。このためシリアルATAインターフェースにあっても、従来のパラレルATAインターフェースと同様、データ転送中に次のコマンドの受信は不可能となる。
また従来のパラレルATAインターフェースにおいて、実行中のデータ転送をキャンセルして次のコマンドを受け取るといった方法を採用する場合、コマンド処理のキャンセルの判断をハードウェアで行っていたため、予め想定したケースに対してのみの対応となり、ファームウェアで行うよりも想定外のケースに対する柔軟性に欠けるという問題があり、これをシリアルATAインターフェースに流用すると、全く同じ問題が起きることになる。
本発明は、データ転送中に実行中のコマンドをキャンセルすることなく次のコマンドを受け取ることができるデバイス用のインターフェース装置及びパケット伝送方法を提供することを目的とする。
(データ転送中のコマンド受信)
本発明は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、トランスポート層に設けられ、物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、データ転送中に受信用FIFOに格納されたコマンドを検出してコマンド検出信号(割込み信号)を出力するコマンド検出回路と、アプリケーション層に設けられ、受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部とを備えたことを特徴とする。
ここで転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、空き時間に受信して受信用FIFOに格納されたコマンドパケットにつきコマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、コマンド解読部がデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用FIFOにコマンド受信応答情報を格納してリンク層及び物理層を介してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部とを備えたことを特徴とする。
このような本発明のデバイス用のインターフェース装置によれば、データパケット転送中に1つのデータパケットの転送が終了するパケット区切りで空き時間を生成して次のコマンドを受信できるように、トランスポート層にパケット受信用FIFO、コマンド検出回路及び送信用FIFOを、アプリケーション層に受信用タスクファイルレジスタ(タスクファイルレジスタTFR)と送信用タスクファイルレジスタ(タスク制御ファイルレジスタTCR)の2つのタスクファイルレジスタを追加し、データ転送中であってもコマンド検出回路で次のコマンドを検出したらファームウェアへ割り込みを発生させ、パケット受信用FIFOにコマンドをストアしたまま実行中のコマンド処理を再開可能なように一時停止(サスペンド)させ、ファームウェアの指示によりパケット受信用FIFOの次のコマンド内容を受信用タスクファイルレジスタのみにロードする。これにより送信用タスクファイルレジスタの内容を破壊せずにデータ転送中に次のコマンドを受け取ることができ、例えばデータ転送の継続かキャンセルかのコマンド処理が可能となる。
空き時間生成部は、ホストとの間で送信又は受信されるデータパケットの転送終了を検出して一定の空き時間を設定する。
転送再開部は、送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させる。
本発明の別の形態にあっては、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、データ転送中に受信用FIFOに格納されたコマンドを検出してコマンド検出信号(割込み信号)を出力するコマンド検出回路と、受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットをホストに送信させる送信用FIFOと、データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部とを備えたことを特徴とする。
この場合にも、転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、空き時間に受信して受信用FIFOに格納されたコマンドパケットにつきコマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、コマンド解読部がデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用FIFOにコマンド受信応答情報を格納してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部とを備えたことを特徴とする。
本発明は、デバイス用インターフェースのパケット転送方法を提供する。このパケット伝送方法が適用されるデバイス用のインターフェース装置は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、トランスポート層に設けられ、物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、データ転送中に受信用FIFOに格納されたコマンドを検出してコマンド検出信号(割込み信号)を出力するコマンド検出回路と、アプリケーション層に設けられ、受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットをホストに送信させる送信用FIFOとを備える。
そして本発明によるデバイス用インターフェースのパケット伝送方法は、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とする。
ここで、転送中コマンド処理ステップは、
空き時間に受信して受信用FIFOに格納されたコマンドパケットにつきコマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
コマンド解読ステップでデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用FIFOにコマンド受信応答情報を格納してリンク層及び物理層を介してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とする。
また本発明のパケット転送方法の別の形態にあっては、デバイス用インターフェースは、ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号(割込み信号)を出力するコマンド検出回路と、受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットをホストに送信させる送信用FIFOとを備え、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とする。
ここで転送中コマンド処理ステップは、
空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
コマンド解読ステップでデータ転送の継続を判別した場合は、受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、送信用FIFOにコマンド受信応答情報を格納してホストにコマンド受信応答パケットを送信した後、データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とする。
(エラー時のパケット転送の完結)
また本発明の別の形態にあっては、データ転送中にエラーによりインターフェースに対するデータ入力が停止しても、それまでのデータによるパケット転送を完結させて転送が中断したままとなる異常を回避するインターフェース装置が提供される。
このため、本発明にあっては、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、トランスポート層に設けられ、物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、アプリケーション層に設けられ、受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットをホストに送信させる送信用FIFOと、送信用FIFOに常に所定の1単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御部と、データ送信中にエラーによりデータ入力が停止した場合、送信用FIFOに滞留している1単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御部とを備えたことを特徴とする。
ここで入出力制御部は、テール信号がない場合に1単位のデータを送信用FIFOに滞留させ、テール信号がある場合はデータを滞留させないようにする。また入出力制御部は、シリアルATAインターフェースに対応して送信用FIFOに1単位のデータとして最小単位データ、例えばシリアルATAインターフェースでは1ダブルワードデータ(4バイトデータ)を滞留させる。
このような本発明のインターフェース装置によれば、ホストに対しデバイス側となる例えばハードディスクドライブにおいてパケット転送用のリードデータをインターフェース回路部に対し入力中に、データのエラー訂正が不可能なアンコレクタブル・エラーが発生してデータ入力が停止しても、送信用FIFOには、エラーによる入力停止前の最後のデータが残っており、この残留しているデータをエラー検出に基づき最後のデータとしてテール信号と共にリンク層に出力することで、パケットデータを完結させ、エラー発生までに得られたデータのパケットをホストに転送することができ、パケット転送がエラーにより途中で中断停止したままになってしまう問題を解消する。
本発明は、エラーによりインターフェースに対するデータ入力が停止しても、それまでのデータによるパケット転送を完結させて転送停止を回避するデバイス用インターフェースのパケット転送方法装置を提供する。
即ち、本発明は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、アプリケーション層に設けられ、受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、トランスポート層に設けられ、送信用タスクファイルレジスタの内容を先入れ先出しで格納し、リンク層及び物理層を介してコマンドパケット又はデータパケットをホストに送信させる送信用FIFOとを備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
送信用FIFOに常に所定の1単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御ステップと、
データ送信中にエラーによりデータ入力が停止した場合、送信用FIFOに滞留している1単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御ステップと、
を備えたことを特徴とする。
(パケット数の監視)
本発明の別の形態にあっては、ホストからのコマンド受信解読後のパケット転送においてパケット数の設定によりコマンド送信要求に対する抑止制御やシーク要求コマンドに対するパワーモード投入等の制御を簡単にできるようにするインターフェース回路及びパケット転送方法を提供する。
このため本発明は、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別と制御処理の終了時点又は開始時点を決める送信パケット又は受信パケットのパケット数を設定するファームウェアとしてのパケット制御条件設定部と、パケット転送中における設定パケット数への到達を検出して制御処理の停止又は起動を指示するハードウェアとしてのパケット制御実行回路部とを備えたことを特徴とする。
例えばパケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答(RRDY応答)の抑止と抑止を解除するパケット数を設定し、パケット制御実行回路部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時点で前記抑止動作を解除する。
また別の例として、パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、パケット制御実行回路部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時点でパワーモードへの突入を指示することを特徴とする。
このような本発明のインターフェース装置によれば、デバイス側となるハードディスクドライブのパケット転送プロトコルにおいて、送信又は受信するパケット数、即ちプロトコルに依存しないパケット数により特定の機能を制御するため、ファームウェアは特定の機能を制御するためのパケット転送状態の監視から開放されて他の処理が可能となり、またパケット転送のシーケンスに変更があった場合でも、ファームウェアによるパケット数の設定変更だけで済むため、コストのかかるハードウェアの変更に比べて低コストで迅速に対応できる。
またパケット数により制御する機能としては、一定の期間パケットを受信しないように受信準備応答信号(受信レディ信号)の抑止を設定した場合にパケット数で抑止解除する場合や、シーク動作を伴うコマンド受領といった特定の処理が完了した時に、パケット数により低消費電力に結びつくパワーモードを実行する場合などがあり、いずれについても、ファームウェアはパケット転送状態の監視から開放され、他の処理に時間を割くことができ、またパケット転送のシーケンスに変更に対し低コストで迅速に対応できる。
また本発明は、パケット転送方法を提供するものであり、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別と制御処理の終了時点又は開始時点を決める送信パケット又は受信パケットのパケット数を制御レジスタに設定するパケット制御条件設定ステップと、
パケット転送中における設定パケット数への到達を検出して制御処理の停止又は起動するパケット制御実行ステップと、
を備えたことを特徴とする。
例えばパケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止と前記抑止を解除するパケット数を設定し、パケット制御実行ステップは、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時点で抑止動作を解除する。
また別の例として、制御条件設定ステップは、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、制御指示ステップは、パケット転送開始後に転送パケット数が設定パケット数に到達した時点でパワーモードへの突入を指示する。
また本発明の別の形態にあっては、ファームウェアによってパケット数を監視するようにしたインターフェース装置を提供する。即ち、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別を設定するパケット制御条件設定部と、パケット転送開始後に、前記制御処理の終了時点又は開始時点を決める送信パケット又は受信パケットの状態を検出して前記制御処理の停止又は起動を指示するパケット制御条件監視部とを備えたことを特徴とする。
この場合にも、具体例としては、既に説明したパケット数の監視によるコマンド送信要求に対する受信準備応答の抑止と抑止解除、或いはシーク要求コマンドに対するパケット応答後のパワーモードの投入を行う。
このようなファームウェアにより特定の機能を制御するためにパケット転送を監視する本発明のインターフェース装置によれば、パケット転送のシーケンスに変更があった場合でも、ファームウェアの変更だけで済むため、コストのかかるハードウェアの変更に比べて低コストで迅速に対応できる。
本発明は、ファームウェアによりパケット数を監視するパケット転送方法を提供するものであり、物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御処理の種別を設定するパケット制御条件設定ステップと、
パケット転送開始後に、前記制御処理の終了時点又は開始時点を決めるパケット転送状態を検出して前記制御処理の停止又は起動を指示するパケット制御条件監視ステップと、
を備えたことを特徴とする。
本発明によれば、デバイスはデータ転送中にも次のコマンドの受け取りが可能になる。また本発明は、コマンドキューイング・プロトコルで特に有効であり、ハードウェア及びファームウェアが共に小規模な変更で容易にかつ柔軟にコマンドキューイング・プロトコルを実現できる。コマンドキューイング・プロトコルは、性能向上を目的としたプロトコルであり、それまでシーケンシャルにしかコマンド処理が出来なかった問題を解決し、コマンド処理の効率化を実現する。これにより従来のプロトコルに比べシステム全体として約25%の性能向上が見込まれている。
発明は、従来は実現不可能であったデータ転送中のコマンド受信を可能にしたため、更に5〜10%程度の性能改善が期待できる。
本発明は、データ転送中に次のコマンドの検出と受信をハードウェアで行った後、ファームウェアへ割り込みを通知して処理するため、割り込み時のハードウェアの状態が変わらずファームウェアとしてはその後の処理が楽になるという効果もある。
発明では、データ転送中に受け取ったコマンドの解読によるデータ転送の継続又はキャンセルをファームウェアで判断を行うため、想定外のケースに対してハードウェアの場合よりも柔軟性に対応できる。即ち、ハードウェアによりデータ転送の継続又はキャンセルを処理する場合、想定外のケースに対してはハードウェア改版が必要となる。一般的にハードウェア改版には、1ヶ月半程度の日数を要し開発工程に多大なインパクトを与えるが、本発明によりファームウェアでの対応が可能であれば、その分の工程短縮が期待できる。
本発明は、データ転送中のパケットの区切りで次のコマンドを受け取るための空き時間を生成しており、その分、データ転送に時間がかかる。しかし、一般的に、ディスクへの書込み速度に対しとホストとデバイス間のインターフェースの転送速度は倍近く高速であり、データ転送中に空き時間を生成しても、この時間遅れは速度差で吸収されデバイスとしての性能には影響しない。逆に本発明はデータ転送中にもホストのコマンド発行が可能になるため、ホストのMPUは今まで待たされていた期間に別のタスクが可能になり、結果的にシステム全体としてのスループットを向上できる。
本発明のインターフェース装置によれば、ホストに対しデバイス側となる例えばハードディスクドライブにおいてパケット転送用のリードデータをインターフェース回路部に対し入力中に、データのエラー訂正が不可能なアンコレクタブル・エラーが発生してデータ入力が停止しても、送信用FIFOには、エラーによる入力停止前の最後のデータが残っており、この残留しているデータをエラー検出に基づき最後のデータとしてテール信号と共にリンク層に出力することで、パケットデータを完結させ、エラー発生までに得られたデータのパケットをホストに転送することができ、パケット転送がエラーにより途中で中断停止したままになってしまう異常を確実に防止できる。
また本発明のインターフェース装置によれば、デバイス側となるハードディスクドライブのパケット転送プロトコルにおいて、送信又は受信するパケット数、即ちプロトコルに依存しないパケット数により特定の機能を制御するため、ファームウェアは特定の機能を制御するためのパケット転送状態の監視から開放されて他の処理が可能となり、またパケット転送のシーケンスに変更があった場合でも、ファームウェアによるパケット数の設定変更だけで済むため、コストのかかるハードウェアの変更に比べて低コストで迅速に対応できる。
またパケット数により制御する機能としては、一定の期間パケットを受信しないように受信準備応答信号(受信レディ信号)の抑止を設定した場合にパケット数で抑止解除する場合や、シーク動作を伴うコマンド受領といった特定の処理が完了した時に、パケット数により低消費電力に結びつくパワーモードを実行する場合などがあり、いずれについても、ファームウェアはパケット転送状態の監視から開放され、他の処理に時間を割くことができ、またパケット転送のシーケンスに変更に対し低コストで迅速に対応できる。
(データ転送中のコマンド受信)
図1は、本発明によるデバイス用のインターフェース装置が適用されるハードディスクドライブ(HDD)のブロック図である。磁気ディスク装置としてのハードディスクドライブ10は、コントロールボード12とディスクエンクロージャ14で構成され、ホスト11に対しシリアル伝送線15を介して接続される。
ディスクエンクロージャ14にはスピンドルモータ16が設けられ、スピンドルモータ(SPM)16の回転軸に磁気ディスク20−1,20−2を装着し、一定速度で回転させている。またディスクエンクロージャ14にはボイスコイルモータ(VCM)18が設けられ、ボイスコイルモータ18はヘッドアクチュエータのアームの先端に、ヘッド22−1〜22−4を搭載しており、磁気ディスク20−1〜20−2の記録面に対するヘッドの位置決めを行う。
なお、ヘッド22−1〜22−4にはライトヘッドとリードヘッドが一体化されて搭載されている。ヘッド22−1〜22−4はヘッドIC24に対し信号線接続されており、ヘッドIC24は上位装置となるホスト11からのライトコマンドまたはリードコマンドに基づくヘッドセレクト信号で書込みまたは読出しを行ういずれか1つのヘッドを選択する。
また、ヘッドIC24には、ライト系については書込アンプが設けられ、リード系についてはプリアンプが設けられている。コントロールボード12には、リードチャネル(リードライトLSI)26、ハードディスクコントローラ(HDC)28、本発明の対象となるインターフェース回路部30、RAM32、ファームウェアとして機能するMPU34、ROM36、モータ制御、位置決め制御などを行うDSP38が設けられている。
ハードディスクコントローラ28に設けられているインターフェース回路部30は、シリアル伝送線15を介してホスト11のインターフェース回路部40に接続され、この実施形態にあっては例えばシリアルATAインターフェース(SATインターフェース)を適用している。
図2は、図1のハードディスクドライブ10に設けている本発明によるインターフェース回路部の実施形態のブロック図である。
図2において、ハードディスクコントローラ28に設けられたインターフェース回路部30は、物理層42、リンク層44、トランスポート層46及びアプリケーション層48で構成されており、各層はそれぞれの機能を実現するハードウェアで構成されている。
シリアルATAインターフェースの仕様に従えば、物理層42はシリアル物理インターフェースプラントと呼ばれ、またリンク層44はシリアルリンクデジタルコントロールと呼ばれ、トランスポート層46はシリアルデジタルトランスポートコントロールと呼ばれ、更にアプリケーション層48はソフトウェアコントロールバッファメモリDMAエンジンと呼ばれている。
本発明のインターフェース回路部30にあっては、ホスト11のインターフェース回路部40より発行されたハードディスクドライブに対するライトアクセスまたはリードアクセスのためのコマンドパケットを受信して、コマンド実行中に次のコマンドを受信可能とするため、トランスポート層46に受信コマンドを先入れ先出しで記憶する受信用FIFO50と、コマンド実行によるデータ転送中に受信して受信用FIFO50に格納した次のコマンドを検出して割込み信号(コマンド検出信号)55をファームウェアとしてのMPU34に発行するコマンド検出回路52と、送信用FIFO60を設けている。
またアプリケーション層48には、受信用のタスクファイルレジスタ54に加え、送信用のタスクファイルレジスタとしてタスク制御ファイルレジスタ58が設けられている。
このようなハードウェア構成のインターフェース回路部30に加え、ファームウェアとして機能するMPU34側にプログラム制御により実現される空き時間生成部64と転送中コマンド処理部66を設けている。
転送中コマンド処理部66は、一時停止処理部68、コマンド解読部70、転送打切部72、転送再開部74の各機能を備えている。空き時間生成部64は、コマンド受信に基づくデータ転送中にホストから次のコマンドを受信するための一定の空き時間を生成する。
この空き時間を生成するタイミングは、複数回に分けて転送されるデータパケットの切れ目の部分を検出して空き時間を設定する。この場合の空き時間としては、ホスト11からのコマンドパケット転送に必要な例えば100〜300ns程度の時間でよい。
転送中コマンド処理部66は、空き時間生成部64により設定された空き時間の間にホスト11からコマンドパケットを受信した場合、インターフェース回路部30のハードウェアによって現在実行中のデータ転送を一時停止(サスペンド)して受信コマンドを解読して処理を実行した後に、データ転送を再開する。
データ転送中にホスト11から受信する次のコマンドのコマンド内容としては、この実施形態にあっては、現在実行中のデータ転送を継続するかキャンセルするかの指示内容を持っている。
このような転送中コマンド処理部66の処理は、更に詳細には、一時停止処理部68、コマンド解読部70、転送打切部72及び転送再開部74の各機能によって実現される。一時停止処理部68は、空き時間に受信して受信用FIFO50に格納された次のコマンドにつきコマンド検出回路52がコマンド検出の割込み信号55を出力した際に、インターフェース回路部30のハードウェアに対しデータ転送を一時停止(サスペンド)を指示し、この一時停止時のパラメータをRAM32に退避させる。
コマンド解読部70は、受信用FIFO50に格納しているコマンド内容をタスクファイルレジスタ54にロードし、ロードされたコマンド内容を解読する。この実施形態にあっては、コマンド実行中のデータ転送中に受信された次のコマンドはデータ転送の継続またはキャンセルのいずれかのコマンド指示内容を持っていることから、コマンド解読部70でデータ転送の打切りを判別した場合には、転送打切部72がRAM32に退避した現在実行中のコマンド及びパラメータを破棄して、インターフェース回路部30のデータ転送を終了させる。
一方、コマンド解読部70がデータ転送の継続を判別した場合には、転送再開部74が動作し、受信用のタスクファイルレジスタ54に格納している次のコマンドのコマンド内容をRAM32のコマンドキュー56に投入すると共に、トランスポート層46の送信用FIFO60に次のコマンドの受信に対する受信応答情報を格納し、更にリンク層44、物理層42を介してホスト11に対しコマンド受信の応答パケットを送信させ、インターフェース回路部30の一時停止を解除すると共に、RAM32に退避したパラメータをセットしてデータ転送を再開させる。
図3は、本発明のインターフェース装置によるライトアクセス時のパケット転送のタイムチャートであり、これと対比するため図4に、データ転送中に次のコマンドを受信できない従来のライトアクセス時のパケット転送のタイムチャートを示している。
また図5は本発明によるリードアクセス時のパケット転送のタイムチャートであり、同じくデータ転送中に次のコマンドを受信できない従来のリードアクセス時のパケット転送を図6に示している。
ここで、図3〜図6のパケット伝送処理で使用するシリアルATAインターフェースで定義されるパケットには主なものとして次のものがある。
(1)RegHDパケット
(2)RegDHパケット
(3)DMAセットアップパケット(DMA Setup)
(4)DMA起動パケット(DMA Activate)
(5)データパケット(Data)
(6)セットデバイスビットパケット(Set Device Bits)
また図7は本発明が対象としているシリアルATA伝送シーケンス148の基本的な形態であり、先頭のスタートオブフレーム(SOF)150で始まり、末尾のエンドオブフレーム(EOF)162で終了する伝送シーケンスである。
先頭のスタートオブフレーム150に続いては、フレーム情報構成内容(FIS)152が設けられ、この内容が図8〜図13に示したパケットで構成される。次のホールドデータ転送154は、転送元でパケットのペイロードが準備できない場合の待ち時間について設定される。
次のフレーム情報構成内容(FIS)156は、同じく図8〜図13のパケットの集合で構成されている。ホールドアクノリッジ158は、ホールドデータ転送154に対する応答である。続いて、それまでの伝送データに対するCRC160を設けた後、エンドオブフレーム162となっている。
図8はRegHDパケット164の説明図であり、RegHDパケット164はホストからデバイスに対しコマンドを送るコマンドパケットである。
図9はRegDHパケット166であり、RegDHパケット166はデバイスからホストに対しエラー情報やステータス情報を送るためのステータスパケットである。
図10はDMAセットアップパケット168であり、図8のRegHDパケット164によりデバイス側でライトコマンドを受信解読した際に、デバイス側からホストに対しデータのDMA転送に必要なパラメータを送ってセットアップするためのコマンドである。
図11はDMA起動パケット170であり、図10のDMAセットアップパケット168に続いて、デバイス側からホストに対し発行され、これによりホストからデバイスに対しデータパケットのDMA転送が開始される。
図12はデータパケット172であり、0〜nセクタに分かれており、1セクタは512バイトで、最大セクタ数nはn=16となる。シリアルATAインターフェースにあっては、1ワードが2バイトであることから4バイトデータを1ダブルワードと定義し、データパケット172には1〜2048個の範囲でダブルワードを搭載することができる。
図13はセットデバイスビットパケット174であり、データ転送終了時にデバイスからパケットに転送され、エラー情報やステータス情報をホストに通知する。
そこで図3を参照して本発明によるライトアクセス時のパケット伝送処理を説明すると次のようになる。図3(A)において、ホスト11側でライトアクセスのためのコマンド発行要求76が行われると、コマンドスタート77となり、ホスト11のインターフェース回路部40はハードディスクドライブ側となるデバイス10aに対しRegHDパケット78としてコマンドパケットを転送する。
ここでホスト11とデバイス10aとの間のパケット転送プロトコルは、RegHDパケット78を例にとると、図3(B)のようになる。
(1)パケット送信要求に基づき転送元から転送先に送信レディ信号(XRDY信号)78−1を送信する。
(2)転送先は転送OKであれば、受信レディ信号(RRDY信号)78−2を送信する。
(3)受信レディ信号(RRDY信号)78−2の受信に基づき転送元はパケット信号78−3を転送する。
このようなパケット転送プロトコルを図3(A)は、説明を簡単にするため、ひとつにまとめ太線の矢印でパケット転送として示している。
再び図3(A)を参照するに、RegHDパケット78を受信したデバイス10aは、コマンドパケットの正常受信終了を示すステータスパケットとしてRegDHパケット80をホスト11に転送する。
続いて、解読したライトコマンドに基づきDMAセットアップパケット82をホスト11に転送した後に、DMA起動パケット84をホスト11に転送し、これに基づきホスト11からDMA転送に基づいてデータパケット86がデバイス10aに転送される。
デバイス10a側にあっては、ホスト11からのデータパケット86の終端となる切れ目88を検出すると、図2のMPU34に設けた空き時間生成部64によって、ホスト11に次のコマンドの発行を許可する空き時間90を生成する。
このときホスト11側にデータパケット86の転送に続いて次のコマンドをコマンド発行要求85が発生したとすると、このタイミングでデバイス10a側はコマンド発行受付可能な空き時間90を設定しているため、次のコマンドをRegHDパケット94によりデバイス10aに転送し、これをデバイス10a側で受信解読して処理した後、コマンド受信終了を示す応答用のステータスパケットとしてRegDHパケット96をホスト11に送信する。
続いてデバイス10a側にあっては、一時停止したデータ転送を空き時間90の終了時点92で再開し、DMA起動パケット98をホスト11に転送することで、ホスト11から次のデータパケット100の転送を受ける。このデータパケット100の転送についても、デバイス10a側にあっては、データパケット100の区切り102を検出して次のコマンド発行を許可する空き時間104を生成する。
この空き時間104については、ホスト11側から次のコマンド発行はないことから、一定時間104が経過した時点106でデバイス10a側は再びデータ転送を再開し、この場合にはホスト11から全てのデータが受信終了となっていることから、コマンド正常終了を示すセットデバイスビットパケット108をホスト11に転送し、コマンド終了110となる。
このような本発明のライトアクセスにおけるパケット転送の途中でホスト11から次のコマンドが受信可能となるのに対し、図4の従来のライトアクセスのパケット転送にあっては、図3と同じパケット転送であるが、コマンドスタート78からコマンド終了110の途中で次のコマンドのコマンド発行要求85が発生しても、現在実行中のコマンドによるデータ転送が中断されることはなく、コマンド発行要求85はコマンド終了110まで待たされることになる。
具体的なプロトコルとしては、コマンド発行要求85に基づきデバスイ10aに送信レディ信号(XRDY)が送られるが、デバイス10a側はパケット受信準備ができないことから受信レディ信号(RRDY)を送信せず、コマンド終了110でパケット受信OKとなって受信レディ信号(RRDY)を送信することで次のコマンドがパケット転送されることになる。
図5は、本発明によるリードアクセス時のパケット転送処理のタイムチャートである。図5において、ホスト11にリードアクセスのコマンド発行要求112があると、この時点でコマンドスタート114となり、コマンドパケットとしてRegHDパケット116をデバイス10aに転送する。
このコマンドパケットが正常に受信されると、デバイス10aはステータスパケットとしてRegDHパケット118をホスト11に転送する。続いてデバイス10aからリードデータをホスト11に転送するため、まずDMAセットアップパケット120を転送した後、データパケット122をホスト11に転送する。
ここでデータパケット122の転送直前のタイミングでホスト11に次のコマンドのコマンド発行要求124が発生したとすると、データパケット122の転送が終了したパケットの切れ目126をデバイス10aのMPU34に設けている空き時間生成部64が検出し、ホスト11からの次のコマンドを受信可能とする一定の空き時間128を発生する。
このため、ホスト11で発生したコマンド発行要求124は直ちに実行され、RegHDパケット132としてデバイス10aに転送され、受信したコマンドの解読処理を行った後に、コマンドの正常受信を示すステータスパケットとしてのRegDHパケット134をホスト11に転送する。
続いて、一定空き時間128の終了時点130で、デバイス10aは一時停止したデータ転送を再開し、データパケット136をホスト11に転送する。このデータパケット136についても、その終了時点となる区切り138でホスト11のコマンド発行を許可する空き時間140を生成する。
この場合にはホスト11側に次のコマンドの発行要求がないことから、一定時間140の経過時点142でデータ転送を再開し、全てのリードデータの転送が終了していることから、この場合にはセットデバイスビットパケット144をホスト11に転送し、コマンド終了146となる。
このような図5の本発明によるリードアクセスにおけるパケット転送に対し、図6の従来のパケット転送にあっては、ホスト11でコマンド発行要求112が発生してコマンドスタート114となり、デバイス10aとの間でコマンド及びデータのパケット転送が行われ、そのコマンド終了146となるまでは、途中でホスト11に次のコマンド発行要求124が発生しても、これは無視され、コマンド終了146まで待たされることになる。
ここで図3のライトアクセス時のパケット転送、及び図5のリードアクセス時のパケット転送にあっては、データ転送の途中で一定の空き時間90,104,128,140が設けた分、図4や図6の従来のパケット転送処理に比べ時間がかかることになる。
しかしながら、図1のホスト11とハードディスクドライブ10におけるデータ転送にあっては、ハードディスクドライブ10におけるハードディスクコントローラ28からディスクエンクロージャ14の磁気ディスク20−1〜20−2との間のデータ転送速度に対し、ハードディスクドライブ10とホスト11のインターフェース回路部30,40の間のデータ転送速度は約2倍程度高速である。
このため図3及び図5のようにデータ転送中に空き時間を生成しても、この程度の時間は伝送速度の遅い磁気ディスク媒体側の伝送速度により吸収され、ホスト11とハードディスクドライブ10間のデータ転送の性能が低下することはない。
図14は、本発明のインターフェース回路部30によるパケット転送処理のフローチャートである。図14において、ステップS1でホスト11からのコマンドパケットの受信をチェックしており、コマンドパケットを受信すると、ステップS2に進み、コマンドパケットの正常受信を応答するステータスパケットを転送する。続いて、ステップS3でDMA転送用のパケットを応答する。
具体的には、ライトアクセスであれば図3のDMAセットアップパケット82とDMA起動パケット84を応答し、リードアクセスであれば図5のDMAセットアップパケット120のみを応答する。
続いて、ステップS4でデータパケットを受信すると、その切れ目のタイミングでステップS5の転送中コマンド受信処理を実行し、このときホスト側からコマンド発行要求があれば次のコマンドを受信処理する。続いて、ステップS6でデータ転送終了の有無をチェックしており、データ転送が終了するまで、ステップS4からの処理を繰り返す。ステップS6でデータ転送が終了すると、データ転送正常終了を示すパケット即ちセットデバイスビットパケットを応答し、ステップS1に戻って次のコマンド発行を待つ。
図15は、図2のMPU34に設けた空き時間生成部64による空き時間生成処理のフローチャートである。この空き時間生成処理にあっては、ステップS1で初期化処理としてカウンタ値をある値にセットした後、ステップS2でデータパケットの区切りを監視している。
データパケットの区切りを検出すると、ステップS3に進み、カウンタをスタートした後、ステップS4でカウンタ最終値への到達を判別している。カウンタ最終値に達すると、ステップS5に進み、パケット転送の再開を指示する。
更に、ステップS6でカウンタ値変更要求があれば、ステップS1に戻ってカウンタ値を要求値にセットし、一方、カウンタ値の変更要求がなければ、ステップS2に戻り、現在のカウンタ値のまま、次の空き時間生成処理を待つことになる。
図16及び図17は、図14のステップS5における転送中コマンド受信処理の詳細を示したフローチャートであり、図15の空き時間生成処理で設定された一定の空き時間ごとに実行される。
図16の転送中コマンド受信処理を図2を参照して説明すると次のようになる。まずステップS1でホストからの次のコマンドの発行要求によるコマンドパケットの受信の有無をチェックしており、コマンドパケット受信でなければ、ステップS2で空き時間終了の有無をチェックし、空き時間終了となれば、図17を経て図14のメインルーチンにリターンする。
ステップS1において空き時間終了前にホストから次のコマンドの発行要求によるコマンドパケットを受信すると、ステップS3に進み、トランスポート層46に設けている受信用FIFO50にコマンドパケットを格納する。
続いてステップS4でコマンド検出回路52が格納したコマンドパケットが最終段に達したタイミングでコマンド検出を行い、コマンド検出に基づいて割込信号55を発生し、この割込信号ありを判別した場合、ステップS5に進み、インターフェース回路部30を構成するハードウェアに対しデータ転送の一時停止(サスペンド)を要求する。
この一時停止の要求に対し、インターフェース回路部30よりステップS6で一時停止の完了応答があったことを判別すると、ステップS7に進み、現在転送中のインターフェース回路部30におけるパラメータをRAM32に退避し、次にステップS8で受信用FIFO50に格納している次のコマンドのコマンド内容をアプリケーション層48のタスクファイルレジスタ54にロードする。
続いて、ステップS9でタスクファイルレジスタ54のコマンドを解読する。この実施形態にあっては、データ転送中の次のコマンドのコマンド内容はデータ転送の継続またはキャンセルを指示している。したがって、ステップS10でコマンド解読結果からデータ転送継続であればステップS12に進み、一方、データ転送キャンセルであればステップS11に進む。
コマンド解読でデータ転送のキャンセルを判別した場合、ステップS11にあっては、現在実行中のデータ転送のキャンセル指示をインターフェース回路部30に行い、またRAM32に退避したパラメータを消去し、インターフェース回路部30を初期状態に復旧させる。
ステップS10でコマンド解読結果からデータ転送継続であった場合には、ステップS12でタスクファイルレジスタ54のコマンド内容をRAM32のコマンドキュー56に退避した後、ステップS13でタスク制御ファイルレジスタ58の応答内容をデータ転送中に受信したコマンドの受信応答に変更して図17のステップS14に進み、タスク制御ファイルレジスタ58の内容を、トランスポート層46の送信用FIFO60、リンク層44、更に物理層42を介して、シリアル伝送線15によりホスト11に転送する。
ここでステップS5のインターフェース回路部30に対する指示で一時停止が行われた場合、タスク制御ファイルレジスタ58には、例えば図3のデータパケット86の受信終了のタイミングであることから、これに対する応答パケットとしてDMA起動パケット98を転送するためのデータが既に書き込まれている。
そこで本発明にあっては、ステップS13で、このDMA起動パケット転送のためのデータを、データ転送の途中で受信した次のコマンドの受信終了を示す図3のRegDHパケット96を転送するためのデータに変更し、ステップS14で、これをRegDHパケットとしてホストに転送することになる。
続いて、ステップS15で一時停止によりRAM32に退避したパラメータをインターフェース回路部30にセットし、データ転送再開を準備する。このときタスク制御ファイルレジスタ58には、ステップS13で変更した変更前の例えば図3のDMA起動パケット98の転送に必要なデータが再度書き込まれることになる。そして、ステップS16でインターフェース回路部30の一時停止を解除してデータ転送を再開する。
(エラー時のデータパケット転送の完結)
図18は、送信用FIFO60に対するデータ入力がエラー停止した場合にもホストに対し、データパケットの転送を完結させる本発明の実施形態となる図1のハードディスクコントローラ28に設けたインターフェース回路部30のブロック図である。
図18において、ハードディスクコントローラ28にハードウェアとして設けられた本発明の対象となるインターフェース回路部30は、図2の実施形態と同様、物理層42、リンク層44、トランスポート層46、アプリケーション層48で構成される。
トランスポート層46には受信用FIFO50と送信用FIFO60が設けられる。またアプリケーション層48にはタスクファイルレジスタ54とタスク制御ファイルレジスタ58が設けられる。
このようなインターフェース回路部30における受信系と送信系に加え、この実施形態にあっては更に送信用FIFO60に対し入出力制御部182とエラー終了転送制御部184を設けている。
またエラー終了転送制御部184に対しエラー検出を通知するため、例えばこの実施形態にあってはMPU34のファームウェアとしてプログラム制御により実現されるエラー検出部180を設けている。
入出力制御部182は、ホスト11からのリードアクセスのためのコマンドパケットを受信したリードデータのパケット転送時において、トランスポート層46の送信用FIFO60に常に所定の1単位のデータが滞留するようにタスク制御ファイルレジスタ58からの入力制御とリンク層44に対する出力制御を行い、同時にパケットの先頭に位置するデータの入出力に同期してヘッド信号を入出力し、またパケットの終端データの入出力に同期してテール信号を入出力する。
具体的には、入出力制御部182はテール信号がない場合に1単位のデータを送信用FIFO60に滞留させ、テール信号がある場合はデータを滞留させないようにする。
このパケット先頭データに対応したヘッド信号とパケット終端データに対応したテール信号は、リードデータのパケット転送の際に転送するデータのバイト数が受信コマンドから判明しているため、アプリケーション層48に対しハードディスクコントローラ28を経由して入力するデータのバイト数をカウントすることで、先頭データと終端データを判別してヘッド信号及びテール信号を発生することができる。
エラー終了転送制御部184は、MPU34に設けているエラー検出部180によりデータのエラー訂正不可能なエラー、いわゆるアンコレクタブルエラーの検出通知を受けた際に、このエラー発生により送信用FIFO60に対するデータ入力が停止することから、この状態で送信用FIFO60に滞留しているデータをテール信号と共にリンク層44に出力し、これによりデータパケットのデータが最後まで達したこと擬似的にリンク層44に認識させ、エラーが発生してもデータパケットに必要な入力データを完結させ、リンク層44から物理層42を介してホスト11のインターフェース回路部40にデータパケットの転送を完結させる。
ここで送信用FIFO60に滞留させる1単位のデータとしては、この実施形態にあってはシリアルATAインターフェースを例にとっていることから、その最小単位となる4バイトの1ダブルワードデータを滞留させる。また送信用FIFO60の容量としては、インターフェース回路部40がホスト11に対し転送するデータパケットのサイズに対し、十分小さな容量とする。
具体的にはシリアルATAインターフェースにあっては図12に示したデータパケット172のようにパケット転送可能なデータサイズは最小1ダブルワードから最大2048ダブルワードまでであり、送信用FIFO60の容量として最大となる2048ダブルワード(8192バイト)とすることも考えられる。
しかし、このようなサイズの大きな送信用FIFO60とするとインターフェース回路部40のハードウェア量が増加し且つ送信用FIFO60に対する入出力処理も時間がかかることから、本発明における送信用FIFO60としては入出力制御の際に最小単位となる1ダブルワードデータが常にひとつ残る処理を可能とする最小構成として2ダブルワード分の記憶容量(8バイト)とすれば良い。もちろん必要に応じて2ダブルワード以上とすることもできるが、余り容量を増やす必要はない。
図19は、図18の送信用FIFO60を最小構成とした場合のデータ入出力制御の説明図であり、テール信号がない状態でデータを滞留させる動作を示している。図19(A)はパケット転送のための最初の先頭データD1が入力した場合であり、送信用FIFO60は最小構成として1ダブルワードサイズの領域60−1,60−2を備えており、例えば領域60−1に先頭データD1が格納される。
次に図19(B)のように次のデータD2が受信された場合には前に受信して格納したデータD1を出力した後に次のD2を格納する。続いて図19(C)のように、3番目のデータD3を受信した場合には前に受信したデータD2を出力した後にデータD3を格納する。このデータD3を受信した後に図19(D)のようにエラー185が発生してそれ以上データを受信できなくなっても、送信用FIFO60にはエラー発生前の最後のデータD3が常に残ることとなる。
このようにエラー185の発生でデータD3が送信用FIFO60に残っていれば、このデータD3の出力に同期して強制的にテール信号を出力すれば、リンク層44においてパケットデータの終端データを認識し、これに基づきデータパケットを生成してホスト側に転送してデータパケットの転送処理を完結させることができる。
図20は、図18の送信用FIFO60における正常値の入出力制御のタイムチャートである。図20(A)(B)(C)(D)は送信用FIFO60に対する入力制御用の入力バリッド信号、入力ヘッド信号、入力テール信号及び入力データである。
これに対し図20(E)(F)(G)(H)は送信用FIFO60からの出力のための出力バリット信号、出力ヘッド信号、出力テール信号及び出力データである。まず図20(A)〜(D)のようにデータパケットの転送に必要な最初のヘッドデータD1を受信すると、これに同期して入力バリット信号及び入力ヘッド信号を発生する。
このようにして送信用FIFO60に格納されたヘッドデータD1は次に2番目のデータD2が受信されて送信用FIFO60に格納された後に、図20(E)〜(H)のようにヘッドデータD1として読み出され、同時に出力バリッド信号及び出力ヘッド信号を生成してリンク層44に送られる。以下同様にしてデータD2〜D9の入力に対し、それぞれの入力を待ってリンク層44に対するデータの出力とこれに同期した出力バリッド信号の生成が行われる。
入力データのバリッドカウントにより受信したデータD10がパケットの終端データであることを認識すると、テールデータD10の受信に伴い図20(C)の入力テール信号を発生し、その後の図20(E)〜(H)の出力制御によってテールデータD10の読出しに同期して出力テール信号、出力バリッド信号がリンク層44に送られる。即ちテール信号があることからデータD10は滞留されることなく転送される。
リンク層44にあっては、出力ヘッド信号が得られると、図7に示したスタートオブフレーム(SOF)150を生成して送信させ、続いてフレーム情報構成(FIS)に従った図12パケット172の構築して転送させ、最後に出力テール信号が得られると、図7に示したエンドオブフレーム(EOF)162を生成して送信させる。
図21は、図18の送信用FIFO60におけるエラー発生時の入出力制御のタイムチャートである。図21(A)〜(D)の入力制御及び図21(E)〜(H)の出力制御におけるデータD1〜D5の入力及び出力は図19の正常時と同じである。
しかしながら、図21(D)の入力データとしてデータD6を送信用FIFO60に格納した直後にエラー185が発生して、それ以降のデータの受信が停止したとする。このようなエラー185の発生によるデータ入力の停止時にあっては、送信用FIFO60にはエラー185の発生直前に受信したデータD6が残っている。
このため図18におけるエラー検出部180からのエラー通知を受けたエラー終了転送制御部184は、入出力制御部182に対する指示により図21(E),(H)のエラー発生185の後のタイミングで示すように、送信用FIFO60に残っているデータD6を出力すると同時に出力バリッド信号を発生し、エラー停止に伴いデータD6をテールデータとして扱うため、図21(G)のように出力テール信号を生成してリンク層44に送る。
このためリンク層44にあっては送信用FIFO60から出力されたデータD6が入出力制御部182により出力された出力テール信号により終端データであると認識し、物理層42を介してホスト11のインターフェース回路部40にデータパケットを転送し、更に図12のエンドオブフレーム(EOF)162を生成して転送することで、伝送シーケンスを終了させることができる。
図22は、図21の本発明のタイムチャートによる比較例としての送信用FIFOにエラー発生時にデータが残っていないことによる動作停止となる場合のタイムチャートである。
図22にあっては、エラー185の発生直前で受信したデータD6については、通常のFIFOにおける出力側の条件が成立した場合の出力制御により、図22(E)〜(H)のようにデータD6の出力が出力バリッド信号と共に行われる。
そして、その後についてはエラー185の発生により送信用FIFO60に対するデータ入力は完全に断たれるため、リンク層44に対するデータ転送及びテール信号の出力は不可能となり、リンク層44はデータ入力を待ち続け、最終的にはオーバータイムとなってエラー終了をする。その間、ホスト11に対するパケット転送が中断して待ち状態となり、他のパケット転送ができないことで転送性能を悪化させる。
このような問題に対し、本発明にあっては送信用FIFO60に対するデータ入力がエラー発生により停止しても、テール信号がない場合は、次のデータを受信しない限り前に受信したデータを出力しないという入出力条件の設定により常にデータが残っており、エラー検出であることからパケット用のデータを完結させるためのテール信号の強制発生に同期して、残っている最後のデータを出力することで、リンク層44に対するパケットデータを完結させ、エラー発生にかかわらずエラー発生までに得られたデータについては正常にホスト11にデータパケットを転送することができる。
尚、エラー発生により途中までの受信データをホスト11側にパケット転送した後の処理にあっては、デバイス側からエラー発生をステータスパケットでホスト11に通知することで、このエラー発生通知を受けてホスト11側が対応する処理、具体的にはエラー発生前のデータが正常に受信できていることから残りデータに対するリードアクセスなどの対応処理を行なうことになる。
また図18の実施形態にあっては、受信用FIFO50及びタスクファイルレジスタ54側については特に処理を示していないが、この点については図2の実施形態をそのまま適用しても良い。
(パケット数による制御)
図23は、転送パケット数によりデバイス用インターフェースの特定の機能を制御する本発明の他の実施形態を示したブロック図であり、図1のハードディスクドライブ10に設けているハードディスクコントローラ28のインターフェース回路部30のハードウェア構成とMPU34のファームウェアとしての機能を示している。
図23において、ハードディスクコントローラ28に設けられたインターフェース回路部30は、図3の実施形態と同様、物理層42、リンク層44、トランスポート層46及びアプリケーション層48で構成される。
トランスポート層46には受信用FIFO50と送信用FIFO60を設け、またアプリケーション層48にタスクファイルレジスタ54とタスク制御ファイル58を設けている。
これに加えてこの実施形態にあっては、ファームウェアとして機能するMPU34にコマンド処理部190とパケット制御条件設定部192が設けられ、これに対応してインターフェース回路部30のアプリケーション層48のハードウェアとして制御レジスタ198を備えたパケット制御実行回路196、受信レディ抑止回路(RRDY抑止回路)200及びパワーモード回路202を設けている。
ファームウェアとしてのMPU34に設けたコマンド処理部190は、ホスト11のインターフェース回路部40からのパケット転送によって受信した受信コマンドのインターフェース回路部30によるハードウェアによる解析結果に基づき、コマンド種別に応じてホスト11に対するパケット転送制御準備を実行し、インターフェース回路部30のアプリケーション層48に対し、ホスト11に対するパケット転送のプロトコルを開始させる。
パケット制御条件設定部192、コマンド処理部190がホスト11から受信したコマンドを解読して、パケット転送を開始する際にパケット転送開始後に実行する特定の制御機能の種別と制御機能の開始または終了を決める受信又は送信パケットのパケット数をパケット制御実行回路196の制御レジスタ198に設定する。
この実施形態にあっては、転送パケット数により制御する機能として
(1)受信準備応答(受信レディ)の抑止解除、
(2)特定のコマンドを受信してパケットを転送した後のパワーモードへの突入制御、
の2つを例にとっている。
このような転送パケット数による制御機能を実現させるため、アプリケーション層48には受信レディ抑止回路200とパワーモード回路202が設けられている。パケット制御条件設定部192によりパケット転送準備の際に制御種別及びパケット数を設定する制御レジスタ198は、例えば図24の構成を有する。
制御レジスタ198は、例えば16ビットの制御レジスタであり、上位ビット側から見ると15ビット目に受信レディ抑止ビット204を設け、14ビット目に受信レディ抑止解除ビット206を設け、13ビット目にパワーモード開始ビット208を設け、更にビット12−0にパケット数210を設定できるようにしている。そこでまず転送パケット数による受信応答の抑止と抑止解除の制御について説明する。
図23の実施形態が適用されるシリアルATAインターフェースにあっては、例えばホスト11からハードディスクコントローラ28に対するDMA転送によるライトコマンドを例にとると、次の4種類がある。
(1)ライトDAMコマンド(Write DMA Command)
(2)レガシィキューライトDAMコマンド(Regacy Queued Write DMA Command)
(3)第1パターンのファーストパーティキューライトDMAコマンド(First Party Queued Write Command)
(4)第2パターンのファーストパーティキューライトDMAコマンド(First Party Queued Write Command)
そしてこれらのDMAタイプのライトコマンドは、コマンドごとにデバイス側のインターフェース回路部30によるパケット転送のコマンド処理が異なっている。
図25は、ライトDMAコマンド処理のフローチャートであり、ホスト11から受信したコマンドを解析した後のパケット転送処理の手順を示している。
このライトDMAコマンド処理にあっては、まずステップS1でDMA起動パケット(DMACTパケット)をホスト11に転送した後、ステップS2でホスト11からデータパケットを受信し、ステップS3で受信データ分だけ増加させたセクタカウンタSCが0に達したか否かをチェックし、0に達するまでステップS1からの処理を繰り返す。
セクタカウンタSCが0に達するとデータパケットの転送終了を判別し、ステップS3からステップS4に進み、転送終了を示すRegDHパケットをホスト11に転送する。
図26はレガシーキューライトDMAコマンド処理であり、ホスト11からの受信コマンドを解読してパケット転送を開始すると、まずステップS1でセットデバイスビットパケット(SETDBパケット)をホスト11に転送した後、ステップS2でホスト11からサービスコマンドを受領する。
続いてステップS3でRegDHパケットをホスト11に転送した後、ステップS4でDMA起動パケット(DMACTパケット)をホスト11に転送した後、ステップS5でデータパケットをホストから受信し、ステップS6でセクタカウンタSCをチェックする。
そしてステップS6でセクタカウンタSCが0になるまでステップS4,S5のパケット転送を繰り返し、データパケットの転送が終了してセクタカウンタSCが0になるとステップS7に進み、パケット転送終了を通知するためRegDHパケットをホスト11に転送する。
図27は、第1パターンのファーストパーティキューライトDMAコマンド処理のフローチャートである。この場合にはホスト11から受信したコマンドを解析した後にパケット転送を開始し、まずステップS1でホスト11に対しDMAセットアップパケット(DMASUパケット)を転送する。
続いてステップS2でホスト11に対しDMA起動パケット(DMACTパケット)を転送した後、ステップS3でホスト11からデータパケットを受信する。そしてステップS4でセクタカウンタSCをチェックし、これが0になるまでステップS2,S3のパケット転送を繰り返す。セクタカウンタSCが0になるとステップS5に進み、パケット転送終了を示すセットデバイスビットパケット(SETDBパケット)を転送する。
図28は、図27と同じファーストパーティキューライトDMAコマンド処理であるが、図27の第1パターンに対し異なった第2パターンとなっている。なお、図27の第1パターンとするか図28の第2パターンとするかは、装置の製造段階で設定することとなる。
図28の第2パターンのコマンド処理にあっては、ステップS1でDMAセットアップパケット(DMASUパケット)をホスト11に転送する点は図27の第1パターンと同じであるが、パターン2の場合は次のステップS2で直ちにホスト11からデータパケットを受信し、その後にステップS3,S4のDMA起動パケット(DMACTパケット)とデータパケットの転送をステップS5でセクタカウンタSCが0になるまで繰り返す。
セクタカウンタSCが0になればステップS6でパケット転送終了を示すセットデバイスビットパケット(SETDBパケット)をホスト11に転送する。このため第2パターンのほうがデータパケット転送の効率が高い。
この図25〜図28に示したようなホスト11からのライトDMAコマンドのパケット転送中にホスト11で次のコマンドのパケット転送要求が発生して送信レディ信号を送ってきた場合にデバイス側のインターフェース回路部30にあっては、現在実行中のコマンドのパケット転送処理を一度中断して、ホスト11からの次のコマンドのパケット受信を行なうようになる。
しかしながら、コマンドの使い方によってはパケット転送の途中でホスト11から次のコマンドの送信要求があってもこれを抑止してパケット転送をあるパケットまで続けたい場合がある。
例えば図28の第2パターンのファーストパーティキューライトDMAコマンド処理にあっては、ホスト11からコマンド受信してパケット転送準備を行なった後、コマンド受信に対する応答用のRegDHパケットとこれに続く図27のステップS1のDMASUパケットを転送するまでは、ホスト11からの次のコマンドによるパケット転送要求を抑止する必要がある。
このような場合に図23の実施形態にあっては、コマンド処理部190によるコマンド解析結果に基づくパケット転送準備処理の段階で、パケット制御条件設定部192がインターフェース回路部30のアプリケーション層48に設けたパケット制御実行回路196の制御レジスタ198に対し、即ち図24の制御レジスタ198に対し、その受信レディ抑止ビット204にビット1をセットすると同時にパケット数210としてパケット数=2を設定し、パケット転送を開始する。
制御レジスタ198に対する受信レディ抑止ビット204のセットと、パケット数210の「2」の設定を行ってパケット転送を開始すると、デバイス11に対するコマンド受信応答用のRegDHパケットに続いて図28のステップS1でDMAセットアップパケット(DMASUパケット)の転送が完了した段階で、転送パケット数が制御レジスタ198の設定パケット数に一致し、この時点でパケット制御実行回路196がそのハードウェアによって図24の制御レジスタ198の受信レディ抑止ビット204をそれまでの1から0にリセットし、同時に受信レディ抑止解除ビット205を0から1にセットする。
この結果、アプリケーション層48に設けている受信レディ抑止回路200にあっては、インターフェース回路部30によるパケット転送の開始でパケットを2つ転送するまでは受信レディ抑止制御が行われ、その間にホスト11のインターフェース回路部40より次のコマンドの送信レディ信号を受けても受信レディ信号を応答せず、パケット転送が中断することを抑止する。
そして2つめのパケットが転送した後は、受信レディ信号の抑止解除がハードウェアで自動的に行われ、それ以降のパケット転送中にホスト11側より次のコマンドの送信要求があればこれを許容して現在のパケット転送を中断して新たなコマンドの受信処理を行なうことになる。
図29は、図23の実施形態において図28のコマンド処理におけるパケット転送のタイムチャートであり、パケット転送中にホスト側から次のコマンドの送信要求が無かった場合である。
図29において、ホスト11でコマンドパケット送信要求212が発生するとハードディスクドライブとなるデバイス10aに対し送信レディ信号(XRDY)送信214を行い、デバイス10a側でパケット受信OK状態216であれば受信レディ信号(RRDY)送信218を行い、これを受けてホスト11はコマンドパケット送信220を行い、パケット送信224によりデバイス10aにコマンドパケットが送信され、コマンドRegHDパケット受信完了226となる。
ここでホスト11からコマンドをデバイス10aに転送するためのプロトコルは
(1)送信レディ信号(XRDY)送信214
(2)受信レディ信号(RRDY)送信218
(3)パケット送信224
の3段階の信号送信を経てパケット転送が行われ、この3つの転送処理をまとめたものが点線で囲むようにRegHDパケット224の転送を表すこととなる。
そこで説明に簡単にするためRegHDパケット224以降のパケット転送についてはブロック矢印により示すことで送信レディ信号(XRDY)送信、受信レディ信号(RRDY)送信及びパケット送信をひとつにまとめて示している。この点は図2の実施形態に対応して図3〜図6に示した各パケットについても同じである。
再び図29を参照するに、デバイス10aはコマンドRegHDパケット受信完了226が済むと、アプリケーション層48のハードウェアによってコマンド解析が行われ、このコマンド解析結果に基づきファームウェアとしてのMPU34がパケット準備処理228を実行する。
このパケット準備処理228は次の処理ステップからなる。
ステップS1:ハードウェアによって解析されたパケット情報を処理する。
ステップS2:送信するパケットを準備する。
ステップS3:パケット転送の開始を設定する。
このようなファームウェアによるパケット準備処理228が行われると、まずコマンドの正常受信を示す応答パケットとしてRegDHパケット230をホスト11に転送し、ホスト11はRegDHパケット受信完了232となる。
続いてデバイス10aはDMAセットアップパケット(DMASUパケット)234を転送し、これを受けてホスト11はDMASUパケット受信完了236となる。次にホスト11がデバイス10aに対しデータパケット238を転送し、これを受けてデバイス10aはデータパケット受信完了240となる。
次にデバイス10aはDMA起動パケット(DMACTパケット)242をホスト11に送り、これを受けてDMACTパケット受信完了244となる。それ以降はデバイス10a側でデータパケットの受信によるセクタカウンタが0となるまでホスト11からのデータパケットの受信とホストに対するDMACTパケットの送信を繰り返し、最終的に図26ステップS6のようにデバイス10aからホスト11に対し、セットデバイスビットパケット(SETDBパケット)を転送して処理を終了する。
図30は、図29と同じ図28の第2パターンのコマンド受信に対するパケット転送処理のタイムチャートであり、この場合にはデバイス10aでRegDHパケット230の転送処理を行ってホスト11でRegDHパケット受信完了となった後、次コマンドパケット送信要求246が発生している。
このような次コマンドパケット送信要求246が発生した場合、デバイス10a側において受信レディ抑止が行われていない場合には、ホスト11からの次コマンドパケット送信要求246に伴う送信レディ信号(XRDY)送信248受けて、受信レディ信号(RRDY)送信250が行われ、次コマンドパケット送信252によりパケット送信254が行われ、レディバイス10aにおいて次コマンドについてのパケット受信完了256となる。
この送信レディ信号(XRDY)送信248、受信レディ信号(RRDY)送信250及びパケット送信254は次のコマンド転送におけるRegDHパケット255の転送となり、この間、デバイス10aにあっては図29で行っていたDMASUパケット234以降のパケット転送を中断することとなり、現在実行中のパケット転送に時間遅れを生ずることとなる。
そこでこのような場合には図23の実施形態にあってはコマンド受信完了に伴うファームウェアとしてのMPU34によるパケット準備処理の際にパケット制御条件設定部192により、制御レジスタ198に受信レディ信号(RRDY)の抑止と抑止を解除するまでの転送パケット数をセットし、設定したパケット数の転送が完了するまではホスト11からの次のコマンドのパケット送信要求を抑止させる。
図31は、パケット転送中にホスト11からの次のコマンド要求を抑止し、パケット準備処理の段階で設定したパケット数の転送がすんだ後に抑止を解除する図23の実施形態によるパケット転送処理のタイムチャートである。
図31において、ホスト11のコマンドパケット送信要求212からデバイス10aのRegHDパケット受信完了226までは図30と同じであるが、次のファームウェアとしてのMPU34によるパケット準備処理260において、図24の制御レジスタ198に対する受信レディ信号(RRDY)抑止ビット204のセット、受信レディ信号(RRDY)抑止解除ビット206のリセット及びパケット数210の「パケット数=2」のセットを行った後パケット転送を開始する。
この場合には転送開始後のパケット数=2に達するまで受信レディ信号(RRDY)の抑止262が行われる。このため図30の場合と同様にしてRegDHパケット230の転送後にホスト11で次コマンドパケット送信要求246が発生して、送信レディ信号(XRDY)送信248が行われた後、受信レディ信号(RRDY)抑止262によりホスト11に対する受信応答信号(RRDY)の送信は行われず、現在実行中のコマンドに基づく次のDAMSUパケット234の転送が行われる。
このDMASUパケット234の転送が完了するとデバイス10a側のインターフェース回路部30におけるハードウェアにより設定パケット数に転送パケット数が一致したことが判別され、図24の制御レジスタ198の受信レディ信号(RRDY)抑止ビット204が1から0にリセットされ、同時に受信レディ信号(RRDY)抑止解除ビット206が0から1にセットされることによって、図31に示すハードウェア抑止解除266が行われる。
このためデバイス10aからはすでに受信している次のコマンドパケット送信要求246に伴う送信レディ信号(XRDY)送信248に対し、抑止解除をうけて受信レディ信号(RRDY)送信250を行い、次コマンドパケット送信252となってパケット送信254が行われディバイス10aにおいて次コマンドパケット受信完了256となり、ファームウェアとしてのMPU34は次コマンド処理268を実行することとなる。
ここでデバイス10aのインターフェース回路部30における受信レディ信号(RRDY)抑止262に処理中にあっては、ファームウェアとしてのMPU34にあっては受信レディ信号の抑止解除を行なうためのパケット転送状態監視が不要となる監視フリー状態264となり、監視フリー状態264にあっては他の内部処理を実行することができる。
図32は、図31のデバイス10aにおけるファームウェアとしてのMPU34によるパケット準備処理260の処理手順を示したフローチャートである。このパケット準備処理にあっては、ステップS1でインターフェース回路部30のハードウェアにより解析されたパケット情報を処理し、ステップS2で送信パケットを準備した後、ステップS3で図24の制御レジスタ198に受信レディ信号(RRDY)の抑止ビットと抑止解除を行なうパケット数を設定した後、ステップS4で転送開始ビットを設定してパケット転送処理を開始することとなる。
次に図23の実施形態で特定のコマンドを受信してパケット転送を終了した際のパワーモードの制御処理を説明する。このパケット転送にともなうパワーモード処理としては例えばホスト11からシーク要求コマンドを受信した場合の処理がある。
図33は、シーク要求コマンドを受信した後のパケット数の設定によりパワーモードに突入させる制御のタイムチャートである。
図33において、ホスト11からシーク要求コマンドパケット送信要求270が発生すると、RegHDパケット282にまとめて示すように、送信レディ信号(XRDY)送信272が行われディバイス10a側でパケット受信OK状態274にあれば受信レディ信号(RRDY)送信276を行う。
これを受けてホスト11はシーク要求コマンドパケット送信278によりパケット送信280を行い、デバイス10a側でシーク要求コマンドパケット受信完了284となる。続いてファームウェアとしてのMPU34としてはパケット準備処理296を実行する。
このパケット準備処理296は図34のフローチャートに示すようになる。まずステップS1でインターフェース回路部30のハードウェアにより解析されたパケット情報を処理し、シーク及びパワーモードの準備処理を行なう。
次にステップS2で送信するパケットを準備し、同時にパワーモードに突入するための転送パケット数をこの例では「パケット数=1」に設定する。次にステップS3でシーク動作を起動する処理を行なった後、ステップS4で図24の制御レジスタ198のパワーモード開始ビット208を0から1に設定し、ステップS5で転送開始ビットをセットし転送処理を開始する。
再び図33を参照するに、このようなパケット準備処理296により、パケット転送が開始されると、すでに受け取ったホスト11からのRegHDパケット282に対する応答パケットとしてRegDHパケット288を転送し、ホスト11でRegDHパケット受信完了290となる。
そしてホスト11に対するRegDHパケット288の転送が完了すると、転送済みのパケット数が図24の制御レジスタ198のパケット数210に設定した「パケット数=1」に一致することから、図23のパケット制御実行回路196による信号出力を受けてパワーモード回路202が動作し、パワーモード突入294となる。
このパワーモード突入294による処理は図23のインターフェース回路部30においてシーク動作が完了するまでの間ホスト11側からのコマンド転送要求がない限り、インターフェース回路部30における電力消費を抑えるパワーセーブ制御を行なうことになる。
そしてパワーモード突入294に突入するための転送パケット数と設定パケット数との比較は、インターフェース回路部30のハードウェアにより行われており、その間、ファームウェアとしてのMPU34はフリー状態298となり、他の内部処理を実行することができる。
図35は、ホストからのコマンドを受信した後の転送パケット数により特定の機能を制御する本発明の他の実施形態のブロック図であり、図23の実施形態にあっては、特定の機能を制御するための転送パケット数の判断をインターフェース回路部30側のハードウェアで行うようにしていたが、この実施形態にあっては、ファームウェアとしてのMPU34側で行うようにしたことを特徴とする。
このため図35の実施形態にあっては、ファームウェアとしてのMPU34にコマンド処理部190、パケット制御条件設定部300に加えて、パケット制御条件監視部302を設けている。
またインターフェース回路部30側には、図23と同様に受信レディ信号(RRDY)抑止回路200とパワーモード回路202が設けられるが、転送パケット数の監視はMPU34側で行われることから制御レジスタ304のみが設けられ、この制御レジスタ304は図36のように、受信レディ信号(RRDY)抑止ビット305、受信レディ信号(RRDY)抑止解除ビット306及びパワーモード開始ビット308を設けているが、図24のようにパケット数の設定は行っていない。
図37は、図35の実施形態において、図28の第2パターンのコマンド処理においてデバイスからのパケット転送の先頭の2パケットの間、ホスト11からの次のコマンドの転送要求を抑止する場合のタイムチャートである。
この図37を図31の転送パケット数をハードウェアにより監視する場合に比べると、デバイス10aにおけるパケット準備処理310とパケット監視処理314がファームウェアにより行われる点が相違し、他の処理は同じである。
図37におけるファームウェアによるパケット準備処理310とパケット監視処理314の処理手順は、図38のフローチャートのようになる。図38において、ステップS1〜S4は図37のパケット準備処理310であり、次のステップS5〜S9が図37のパケット監視処理314となる。
この転送パケット監視処理にあっては、準備処理としてステップS1でインターフェース回路部30のハードウェアにより解析されたパケット情報を処理し、ステップS2で送信パケットを準備した後、ステップS3で図36の制御レジスタ304に対し受信レディ信号(RRDY)抑止ビットとパケット数を設定する。
この場合、抑止を行うパケット数は「パケット数=2」を設定する。続いてステップS4で転送開始ビットを設定し、パケット転送処理を開始した後は、ステップS5以降の監視処理に入る。パケット監視処理にあっては、ステップS5でパケット送信開始を確認し、ステップS6でパケット送信完了を確認すると、ステップS7で転送パケット数を1つインクリメントし、ステップS8で制御レジスタ304の設定パケット数と比較して、一致するか否か判別し、一致するまでステップS5からの処理を繰り返す。
転送パケット数が設定パケット数に一致すると、ステップS9に進み、図36の受信レディ信号(RRDY)抑止解除ビット306をセットし、これによってホスト11からの次のコマンドの送信要求を受け入れ可能とする。
図39は、図35の実施形態においてホスト11からシーク要求コマンドを受信して、その後のパケット転送で所定パケット数を転送した後に、パワーモードに突入する制御処理のタイムチャートである。
このシーク要求コマンドの実行に伴う転送でパワーモードに突入する制御は、基本的には図33の転送パケット数をインターフェース回路部のハードウェアにより監視する実施形態と同じであるが、パケット準備処理320及びパケット監視処理322をファームウェアとしてのMPU36で行っている点が相違する。
このファームウェアにより行うパケット準備処理320及びパケット監視処理322の処理手順は、図40のパケット準備監視処理のフローチャートのようになる。
図40のフローチャートにあっては、ステップS1〜S5が図39のパケット準備処理320であり、残りのステップS6〜S10が図39のパケット監視処理322となる。まずパケット準備処理は、ステップS1でインターフェース回路部30のハードウェアにより解析されたシーク要求コマンドに対するパケット情報を処理し、シーク及びパワーモードを準備処理する。
次に、ステップS2で転送するパケットを準備する。更にステップS3でシーク動作を起動した後、ステップS4で図36の制御レジスタ304のパワーモード開始ビット308を設定した後、ステップS5で転送開始ビットを設定して転送を開始する。
転送中の監視処理にあっては、ステップS6でパケット送信開始を確認し、ステップS7でパケット送信完了を確認すると、ステップS8で送信パケット数を1つインクリメントし、ステップS9で予め設定しているパワーモード突入に必要な転送パケット数、例えば「転送パケット数=1」と比較する。
この場合には、転送パケット1つの転送で設定パケット数に達することから、ステップS10に進み、パワーモードへの投入指示をパワーモード回路202に対し行い、インターフェース回路部30において電力消費を節減するパワーセーブの動作状態とする。
ここで図23及び図35の実施形態については、転送パケット数により制御する特定の機能として受信レディ信号の抑止と抑止解除、シーク要求コマンドを受信した後のパワーモードへの投入を例に取るものであったが、これ以外にデバイス側でホストとのパケット転送に伴って必要とする転送パケット数で制御の開始または停止を可能とする適宜の機能の制御につき、そのまま適用することができる。
なお、上記の実施形態は、シリアル伝送線を使用したパケット転送としてシリアルATAインターフェースに本発明を適用した場合を例にとっているが、本発明はこれに限定されず、適宜のシリアルインターフェースにつきそのまま適用できる。
また上記の実施形態は、ホストとハードディスクドライブとの間のデータ転送を例に取るものであったが、デバイスとしてはハードディスクドライブ以外に適宜のデバイスとすることができる。
ここで、本発明の特徴をまとめると次の付記のようになる。
(付記)
(付記1)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェース装置に於いて、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部と、
を備えたことを特徴とするインターフェース装置。(1)
(付記2)
付記1記載のインターフェース装置に於いて、前記転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、
前記空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、
前記受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、
前記コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、
前記コマンド解読部がデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用FIFOにコマンド受信応答情報を格納して前記リンク層及び物理層を介して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部と、
を備えたことを特徴とするインターフェース装置。(2)
(付記3)
付記1記載のインターフェース装置に於いて、前記空き時間生成部は、前記ホストとの間で送信又は受信するデータパケットの転送完了を検出して一定の空き時間を設定することを特徴とするインターフェース装置。(3)
(付記4)
付記2記載のインターフェース装置に於いて、前記転送再開部は、前記送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするインターフェース装置。(4)
(付記5)
ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部と、
を備えたことを特徴とするインターフェース装置(5)
(付記6)
付記5記載のインターフェース装置に於いて、前記転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、
前記空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、
前記前記受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、
前記コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、
前記コマンド解読部がデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用FIFOにコマンド受信応答情報を格納して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部と、
を備えたことを特徴とするインターフェース装置。(6)
(付記7)
付記5記載のインターフェース装置に於いて、前記空き時間生成部は、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするインターフェース装置。
(付記8)
付記6記載のインターフェース装置に於いて、前記転送再開部は、前記送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするインターフェース装置。
(付記9)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット伝送方法に於いて、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とするパケット転送方法。(6)
(付記10)
付記9記載のパケット転送方法に於いて、前記転送中コマンド処理ステップは、
前記空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
前記受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
前記コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
前記コマンド解読ステップでデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用FIFOにコマンド受信応答情報を格納して前記リンク層及び物理層を介して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とするパケット転送方法。(7)
(付記11)
付記9記載のパケット転送方法に於いて、前記空き時間生成ステップは、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするパケット転送方法。(8)
(付記12)
付記10記載のパケット転送に於いて、前記転送再開ステップは、前記送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするパケット転送方法。(9)
(付記13)
ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
を備え、ホストとの間でシリアル伝送によりコマンのパケット転送方法に於いて、
データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
を備えたことを特徴とするパケット転送方法。(10)
(付記14)
付記13記載のパケット転送方法に於いて、前記転送中コマンド処理ステップは、
前記空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路でコマンドからコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
前記受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
前記コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
前記コマンド解読ステップでデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用FIFOにコマンド受信応答情報を格納して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
を備えたことを特徴とするパケット転送方法。
(付記15)
付記13記載のパケット転送方法に於いて、前記空き時間生成ステップは、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするパケット転送方法。
(付記16)
付記14記載のパケット転送方法に於いて、前記転送再開ステップは、前記送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするパケット転送方法。
(付記17)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
前記送信用FIFOに常に所定の1単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御部と、
データ送信中にエラーによりデータ入力が停止した場合、前記送信用FIFOに滞留している1単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御部と、
を備えたことを特徴とするインターフェース装置。(11)
(付記18)
付記17記載のインターフェース装置に於いて、前記入出力制御部は、前記送信用FIFOに受信データを格納する場合、前に受信したデータを出力した後に格納することを特徴とするインターフェース装置。(12)
(付記19)
付記17記載のインターフェース装置に於いて、前記入出力制御部は、前記送信用FIFOに1単位のデータとして最小単位データを滞留させることを特徴とするインターフェース装置。(13)
(付記20)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、
前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
前記送信用FIFOに常に所定の1単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御ステップと、
データ送信中にエラーによりデータ入力が停止した場合、前記送信用FIFOに滞留している1単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御ステップと、
を備えたことを特徴とするパケット転送方法。(14)
(付記21)
付記20記載のパケット転送方法に於いて、前記入出力制御ステップは、前記送信用FIFOに受信データを格納する場合、前に受信したデータを出力した後に格納することを特徴とするパケット転送方法。
(付記22)
付記20記載のパケット転送方法に於いて、前記入出力制御ステップは、前記送信用FIFOに1単位のデータとして最小単位データを滞留させることを備えたことを特徴とするパケット転送方法。
(付記23)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信又は受信するパケット数を設定するパケット制御条件設定部と、
パケット転送中における前記設定パケット数への到達を検出して前記制御機能を停止又は起動するパケット制御実行回路部と、
を備えたことを特徴とするインターフェース装置。(15)
(付記24)
付記23記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を解除するパケット数を設定し、
前記パケット制御実行回路部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時に前記抑止動作を解除することを特徴とするインターフェース装置。(16)
(付記25)
付記23記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、
前記パケット制御実行回路部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時に前記パワーモードへの突入を指示することを特徴とするインターフェース装置。(17)
(付記26)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信パケット又は受信パケットのパケット数を制御レジスタに設定するパケット制御条件設定ステップと、
パケット転送中における前記制御レジスタの設定パケット数への到達を検出して前記制御機能を起動又は停止するパケット制御実行ステップと、
を備えたことを特徴とするパケット転送方法。(18)
(付記27)
付記26記載のパケット転送方法に於いて、
前記パケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を解除するパケット数を設定し、
前記パケット制御実行ステップは、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時点で前記抑止動作を解除することを特徴とするパケット転送方法。
(付記28)
付記26記載のパケット転送方法に於いて、
前記制御条件設定ステップは、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、
前記制御指示ステップは、パケット転送開始後に転送パケット数が設定パケット数に到達した時点で前記パワーモードへの突入を指示することを特徴とするパケット転送方法。
(付記29)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定部と、
パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能を起動又は停止するパケット制御条件監視部と、
を備えたことを特徴とするインターフェース装置。(19)
(付記30)
付記29記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を設定し、
前記パケット制御条件監視部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が所定のパケット数に到達した時点で前記抑止動作を解除することを特徴とするインターフェース装置。
(付記31)
付記29記載のインターフェース装置に於いて、
前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードを設定し、
前記パケット制御条件監視部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時点で前記パワーモードへの突入を指示することを特徴とするインターフェース装置。
(付記32)
物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定ステップと、
パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能の起動又は停止を指示するパケット制御条件監視ステップと、
を備えたことを特徴とするパケット転送方法。(20)
(付記33)
付記32記載のパケット転送方法に於いて、
前記パケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を設定し、
前記パケット制御条件監視ステップは、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が所定のパケット数に到達した時点で前記抑止動作を解除することを特徴とするパケット転送方法。
(付記34)
付記32記載のパケット転送方法に於いて、
前記パケット制御条件設定ステップは、パケット転送開始に先立って、パケット転送後のパワーモードを設定し、
前記パケット制御条件監視ステップは、パケット転送開始後に転送パケット数が設定パケット数に到達した時点で前記パワーモードへの突入を指示することを特徴とするパケット転送方法。
本発明が適用されるハードディスクドライブのブロック図 図1のインターフェース回路部の実施形態のブロック図 本発明によるライトアクセス時のパケット転送のタイムチャート 従来のライトアクセス時のパケット転送のタイムチャート 本発明によるリードアクセス時のパケット転送のタイムチャート 従来のリードアクセス時のパケット転送のタイムチャート 本発明が適用されるシリアルATA伝送シーケンスの説明図 ホストからデバイスにコマンドを転送するRegHDパケットの説明図 デバイスからホストにパケット受信応答を転送するRegDHパケットの説明図 デバイスからホストに転送するDMAセットアップパケットの説明図 デバイスからホストに転送するDMA起動パケットの説明図 データパケットの説明図 デバイスからホストに転送するセットデバイスビットパケットの説明図 本発明によるパケット転送処理のフローチャート 本発明による空き時間生成処理のフローチャート 図14のステップS5における転送中コマンド受信処理のフローチャート 図16に続く転送中コマンド受信処理のフローチャート 送信用FIFOに対するデータ入力がエラー停止した場合にもホストに対しデータパケットの転送を完結させる本発明の実施形態を示したブロック図 送信用FIFOに対するデータの入出力制御の説明図 図18の送信用FIFOにおける正常時の入出力制御のタイムチャート 図18の送信用FIFOにおけるエラー発生時の入出力制御のタイムチャート エラー発生時に送信用FIFOにデータが残っていないことにより動作が停止する本発明の比較例としてのタイムチャート 転送パケット数により特定の機能を制御する本発明の他の実施形態のブロック図 図23の実施形態で使用する制御レジスタの説明図 ライトDMAコマンド処理のフローチャート レガシィー・キュー・ライトDMAコマンド処理のフローチャート 第1パターンとしてのファースト・パーティ・キュー・ライトDMAコマンド処理のフローチャート 第2パターンとしてのファースト・パーティ・キュー・ライトDMAコマンド処理のフローチャート 図28のコマンド処理におけるパケット転送処理のタイムチャート 図22のパケット転送中にホストから次のコマンド送信要求が発生した場合のタイムチャート パケット転送中にホストから次のコマンド送信要求を抑止する図23の実施形態によるパケット転送制御のタイムチャート 図31のデバイス側のファームウェアによるパケット準備処理のフローチャート シーク要求コマンドに対する応答パケットの転送終了でパワーモードに突入する図23の実施形態によるパケット転送制御のタイムチャート 図33のデバイス側のファームウェアによるパケット準備処理のフローチャート パケット数により特定の制御をファームウェアで監視して起動又は停止する本発明の他の実施形態のブロック図 図35の実施形態で使用する制御レジスタの説明図 パケット転送中にホストから次のコマンド送信要求をファームウェアで監視して抑止する図35の実施形態によるパケット転送制御のタイムチャート 図37のファームウェアによるパケット監視処理のフローチャート シーク要求コマンドに対する応答パケットの転送終了をファームウェアで監視してパワーモードに突入する図23の実施形態によるパケット転送制御のタイムチャート 図39のファームウェアによるパケット準備処理のフローチャート
符号の説明
10:ハードディスクドライブ
10a:デバイス
11:ホスト
12:コントロールボード
14:ディスクエンクロージャ
15:シリアル伝送線
16:スピンドルモータ(SPM)
18:ボイスコイルモータ(VCM)
20−1,20−2:磁気ディスク
22−1〜22−4:ヘッド
24:ヘッドIC
26:リードチャネル(RDC)
28:ハードディスクコントローラ(HDC)
30:インターフェース回路部
32:RAM
34:MPU(ファームウェア)
36:ROM
38:DSP
40:インターフェース回路部
42:物理層
44:リンク層
46:トランスポート層
48:アプリケーション層
50:受信用FIFO
52:コマンド検出回路
54:タスクファイルレジスタ
56:キュー
58:タスク制御ファイルレジスタ
60:送信用FIFO
64:空き時間生成部
66:転送中コマンド処理部
68:一時停止処理部
70:コマンド解読部
72:転送打切部
74:転送再開部
180:エラー検出部
182:入出力制御部
184:エラー終了転送制御部
190:コマンド処理部
192,300:パケット制御条件設定部
196:パケット制御実行回路
198,304:制御レジスタ
200:受信レディ抑止回路
202:パワーモード回路
302:パケット制御条件監視部

Claims (20)

  1. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
    前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
    データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
    前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
    前記トランスポート層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
    前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
    データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、
    前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部と、
    を備えたことを特徴とするインターフェース装置。
  2. 請求項1記載のインターフェース装置に於いて、前記転送中コマンド処理部は、プログラムの実行で実現されるファームウェアで構成され、
    前記空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理部と、
    前記受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読部と、
    前記コマンド解読部がデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切部と、
    前記コマンド解読部がデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用FIFOにコマンド受信応答情報を格納して前記トランスポート層、リンク層及び物理層を介して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開部と、
    を備えたことを特徴とするインターフェース装置。
  3. 請求項1記載のインターフェース装置に於いて、前記空き時間生成部は、前記ホストとの間で送信又は受信するデータパケットの転送完了を検出して一定の空き時間を設定することを特徴とするインターフェース装置。
  4. 請求項2記載のインターフェース装置に於いて、前記転送再開部は、前記送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするインターフェース装置。
  5. ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
    前記ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
    データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
    前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
    パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
    前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
    データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成部と、
    前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理部と、
    を備えたことを特徴とするインターフェース装置。
  6. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、
    前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
    データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
    前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
    前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
    前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
    を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット伝送方法に於いて、
    データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
    前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
    を備えたことを特徴とするパケット転送方法。
  7. 請求項6記載のパケット転送方法に於いて、前記転送中コマンド処理ステップは、
    前記空き時間に受信して前記受信用FIFOに格納されたコマンドパケットにつき前記コマンド検出回路からコマンド検出信号が出力された場合、実行中のデータ転送を一時停止させて停止時のパラメータをメモリに退避させる一時停止処理ステップと、
    前記受信用FIFOから受信用タスクファイルレジスタにロードされたコマンド内容を解読するコマンド解読ステップと、
    前記コマンド解読ステップでデータ転送の打切りを判別した場合、現在実行中のコマンド及び退避したパラメータを廃棄してデータ転送を終了させるデータ転送打切ステップと、
    前記コマンド解読ステップでデータ転送の継続を判別した場合は、前記受信用タスクファイルレジスタのコマンド内容をコマンドキューに投入すると共に、前記送信用FIFOにコマンド受信応答情報を格納して前記リンク層及び物理層を介して前記ホストにコマンド受信応答パケットを送信した後、前記データ転送の一時停止を解除すると共に退避したパラメータをセットしてデータ転送を再開させる転送再開ステップと、
    を備えたことを特徴とするパケット転送方法。
  8. 請求項6記載のパケット転送方法に於いて、前記空き時間生成ステップは、前記ホストとの間で送信又は受信するデータパケットの転送終了を検出して一定の空き時間を設定することを特徴とするパケット転送方法。
  9. 請求項7記載のパケット転送に於いて、前記転送再開ステップは、前記送信用FIFOにデータ転送の一時停止の際に格納されていたデータを受信コマンドの応答データに書替えてコマンド受信応答パケットを転送させた後に、退避したパラメータをセットしてデータ転送を再開させることを特徴とするパケット転送方法。
  10. ホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
    データ転送中に前記受信用FIFOに格納されたコマンドを検出してコマンド検出信号を出力するコマンド検出回路と、
    前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
    パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
    前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、コマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
    を備え、ホストとの間でシリアル伝送によりコマンのパケット転送方法に於いて、
    データ転送中に、ホストから別のコマンドパケットを受信するための空き時間を生成する空き時間生成ステップと、
    前記空き時間にホストからコマンドパケットを受信した場合、データ転送を一時停止して受信コマンドを解読して処理を実行した後に、データ転送を再開する転送中コマンド処理ステップと、
    を備えたことを特徴とするパケット転送方法。
  11. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
    前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
    前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
    前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
    前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
    前記送信用FIFOに常に所定の1単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御部と、
    データ送信中にエラーによりデータ入力が停止した場合、前記送信用FIFOに滞留している1単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御部と、
    を備えたことを特徴とするインターフェース装置。
  12. 請求項11記載のインターフェース装置に於いて、前記入出力制御部は、前記テール信号がない場合に1単位のデータを前記送信用FIFOに滞留させ、前記テール信号がある場合はデータを滞留させないことを特徴とするインターフェース装置。
  13. 請求項11記載のインターフェース装置に於いて、前記入出力制御部は、前記送信用FIFOに1単位のデータとして最小単位データを滞留させることを特徴とするインターフェース装置。
  14. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、
    前記トランスポート層に設けられ、前記物理層及びリンク層を介してホストから受信されたコマンドパケット又はデータパケットを先入れ先出しにより格納する受信用FIFOと、
    前記アプリケーション層に設けられ、前記受信用FIFOのコマンド内容をロードする受信用タスクファイルレジスタと、
    前記アプリケーション層に設けられ、パケット送信用のコマンド又はデータをロードする送信用タスクファイルレジスタと、
    前記トランスポート層に設けられ、前記送信用タスクファイルレジスタの内容を先入れ先出しで格納し、前記リンク層及び物理層を介してコマンドパケット又はデータパケットを前記ホストに送信させる送信用FIFOと、
    を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
    前記送信用FIFOに常に所定の1単位のデータが滞留するようにデータを入出力する共に、パケットの先頭データの入出力に同期してヘッド信号を出力し、パケットの終端データの入出力に同期してテール信号を出力する入出力制御ステップと、
    データ送信中にエラーによりデータ入力が停止した場合、前記送信用FIFOに滞留している1単位のデータをテール信号と共にリンク層に出力してホストにデータパケットを転送させるエラー終了転送制御ステップと、
    を備えたことを特徴とするパケット転送方法。
  15. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
    ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信又は受信するパケット数を設定するパケット制御条件設定部と、
    パケット転送中における前記設定パケット数への到達を検出して前記制御機能を停止又は起動するパケット制御実行回路部と、
    を備えたことを特徴とするインターフェース装置。
  16. 請求項15記載のインターフェース装置に於いて、
    前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送中のホストからのコマンド送信要求に対する受信準備応答の抑止を解除するパケット数を設定し、
    前記パケット制御実行回路部は、パケット転送開始時にホストからのコマンド送信要求に対する受信準備応答の抑止動作を起動し、転送パケット数が設定パケット数に到達した時に前記抑止動作を解除することを特徴とするインターフェース装置。
  17. 請求項15記載のインターフェース装置に於いて、
    前記パケット制御条件設定部は、パケット転送開始に先立って、パケット転送後のパワーモードとパワーモードに突入するパケット数を設定し、
    前記パケット制御実行回路部は、パケット転送開始後に転送パケット数が設定パケット数に到達した時に前記パワーモードへの突入を指示することを特徴とするインターフェース装置。
  18. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
    ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別と前記制御機能の開始又は終了を決める送信パケット又は受信パケットのパケット数を制御レジスタに設定するパケット制御条件設定ステップと、
    パケット転送中における前記制御レジスタの設定パケット数への到達を検出して前記制御機能を起動又は停止するパケット制御実行ステップと、
    を備えたことを特徴とするパケット転送方法。
  19. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用のインターフェース装置に於いて、
    ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定部と、
    パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能を起動又は停止するパケット制御条件監視部と、
    を備えたことを特徴とするインターフェース装置。
  20. 物理層、リンク層、トランスポート層及びアプリケーション層を備え、ホストとの間でシリアル伝送によりコマンド及びデータをパケット形式により転送するデバイス用インターフェースのパケット転送方法に於いて、
    ホストから受信したコマンドを解読してパケット転送を開始する際に、パケット転送開始後に実行する制御機能の種別を設定するパケット制御条件設定ステップと、
    パケット転送開始後に、前記制御機能の開始又は終了を決めるパケット転送状態を検出して前記制御機能の起動又は停止を指示するパケット制御条件監視ステップと、
    を備えたことを特徴とするパケット転送方法。
JP2003334986A 2003-09-26 2003-09-26 インターフェース装置及びパケット転送方法 Expired - Fee Related JP4460867B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003334986A JP4460867B2 (ja) 2003-09-26 2003-09-26 インターフェース装置及びパケット転送方法
US10/777,937 US7818479B2 (en) 2003-09-26 2004-02-12 Interface apparatus and packet transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003334986A JP4460867B2 (ja) 2003-09-26 2003-09-26 インターフェース装置及びパケット転送方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009266014A Division JP2010092493A (ja) 2009-11-24 2009-11-24 インターフェース装置及びパケット転送方法

Publications (2)

Publication Number Publication Date
JP2005100230A true JP2005100230A (ja) 2005-04-14
JP4460867B2 JP4460867B2 (ja) 2010-05-12

Family

ID=34419054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003334986A Expired - Fee Related JP4460867B2 (ja) 2003-09-26 2003-09-26 インターフェース装置及びパケット転送方法

Country Status (2)

Country Link
US (1) US7818479B2 (ja)
JP (1) JP4460867B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533800A (ja) * 2009-07-17 2012-12-27 サンドフォース インク. ドライブからホスト装置に送信される情報にギャップを挿入する方法
JP2018517201A (ja) * 2015-04-08 2018-06-28 ティントリ・インコーポレーテッドTintri Incorporated 仮想マシンのためのネイティブなストレージサービス品質

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124248B2 (en) * 2003-10-20 2006-10-17 Intel Corporation Current media status determination for a storage device
US8854652B2 (en) * 2007-01-26 2014-10-07 Samsung Electronics Co., Ltd. Host device and printing control method thereof
US7925799B2 (en) * 2007-04-27 2011-04-12 Ricoh Company, Ltd. Serial ATA interface control circuit and power management method wherein start and completion of data transfer is monitored during DMA operations using memory control unit
TW200847087A (en) * 2007-05-18 2008-12-01 Beyond Innovation Tech Co Ltd Method and system for protecting information between a master terminal and a slave terminal
US8005995B2 (en) * 2007-08-16 2011-08-23 Micron Technology, Inc. Command interface systems and methods
US8856390B1 (en) 2008-03-28 2014-10-07 Western Digital Technologies, Inc. Using device control field to implement non-disruptive notification of an ATA device
US7827320B1 (en) 2008-03-28 2010-11-02 Western Digital Technologies, Inc. Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state
KR101662729B1 (ko) * 2009-05-08 2016-10-06 삼성전자주식회사 시리얼 인터페이스 프로토콜을 사용하여 호스트와 인터페이스하는 비휘발성 메모리 기반 저장 장치의 커맨드 처리 방법 및 상기 방법을 수행하기 위한 메모리 컨트롤러
US11755510B2 (en) 2011-11-08 2023-09-12 Seagate Technology Llc Data detection and device optimization
US20130166795A1 (en) * 2011-12-23 2013-06-27 Stec, Inc. System and method for streaming data in flash memory applications
JP2013156731A (ja) * 2012-01-27 2013-08-15 Toshiba Corp コントローラおよびデバイス装置
TWI495999B (zh) * 2012-07-05 2015-08-11 Compal Electronics Inc 切換資料傳輸路徑以傳輸資料的方法及儲存裝置
US20140068218A1 (en) * 2012-08-31 2014-03-06 Shinya IEMURA Storage device and communication method
KR101932920B1 (ko) * 2012-09-14 2019-03-18 삼성전자 주식회사 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법
KR101919903B1 (ko) * 2012-09-14 2018-11-19 삼성전자 주식회사 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법
US9632711B1 (en) 2014-04-07 2017-04-25 Western Digital Technologies, Inc. Processing flush requests by utilizing storage system write notifications
US9645752B1 (en) 2014-04-07 2017-05-09 Western Digital Technologies, Inc. Identification of data committed to non-volatile memory by use of notification commands
US9792046B2 (en) * 2014-07-31 2017-10-17 Sandisk Technologies Llc Storage module and method for processing an abort command
US9940097B1 (en) * 2014-10-29 2018-04-10 Netronome Systems, Inc. Registered FIFO
CN107451268B (zh) * 2017-08-03 2020-12-15 爱普(福建)科技有限公司 一种面向实时数据库的断网续传的方法
JP2022050018A (ja) 2020-09-17 2022-03-30 キオクシア株式会社 電子装置及び転送方法
US11902207B2 (en) 2020-12-01 2024-02-13 Texas Instruments Incorporated TCP power optimization protocol for connected and low throughput devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63185252A (ja) 1987-01-28 1988-07-30 Nec Corp パケツト交換網を利用したトラヒツク制御通信方式
JPH0628046Y2 (ja) 1989-12-21 1994-08-03 タカノ株式会社 椅 子
JPH03201152A (ja) 1989-12-28 1991-09-03 Nec Eng Ltd 先取り制御方式
JPH0798633A (ja) 1993-04-26 1995-04-11 Hitachi Ltd 情報記憶媒体利用システム
JPH07264262A (ja) 1994-03-18 1995-10-13 Fujitsu Ltd データ転送速度制御方式
DE19730159B4 (de) 1997-07-14 2006-01-19 Telefonaktiebolaget Lm Ericsson (Publ) Kommunikationsverfahren und System
JPH11298458A (ja) 1998-04-14 1999-10-29 Matsushita Electric Ind Co Ltd 同期確立装置
JP3142815B2 (ja) 1998-06-04 2001-03-07 松下電送システム株式会社 ファクシミリモデム装置
US6323867B1 (en) * 1999-04-26 2001-11-27 Mediaq Inc. Parsing graphics data structure into command and data queues
JP2001117724A (ja) 1999-10-19 2001-04-27 Hitachi Ltd 半導体集積回路装置及びシステム
JP2001197067A (ja) 2000-01-06 2001-07-19 Nippon Telegr & Teleph Corp <Ntt> データ連結転送方法及びシステム、並びにデータ連結転送プログラムを記録した記録媒体
JP2001229115A (ja) 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd Atapiコマンド処理方式
JP2001325204A (ja) 2000-05-17 2001-11-22 Hitachi Ltd 半導体集積回路及び光ディスクドライブ装置
JP4203979B2 (ja) 2000-08-02 2009-01-07 富士通株式会社 パケット処理装置
US20020144004A1 (en) * 2001-03-29 2002-10-03 Gaur Daniel R. Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing
JP2003006144A (ja) 2001-06-26 2003-01-10 Hitachi Ltd 半導体集積回路及びコンピュータ読取り可能な記録媒体
JP2003023471A (ja) 2001-07-10 2003-01-24 Matsushita Electric Ind Co Ltd パケット送受信処理回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533800A (ja) * 2009-07-17 2012-12-27 サンドフォース インク. ドライブからホスト装置に送信される情報にギャップを挿入する方法
JP2018517201A (ja) * 2015-04-08 2018-06-28 ティントリ・インコーポレーテッドTintri Incorporated 仮想マシンのためのネイティブなストレージサービス品質

Also Published As

Publication number Publication date
JP4460867B2 (ja) 2010-05-12
US20050080842A1 (en) 2005-04-14
US7818479B2 (en) 2010-10-19

Similar Documents

Publication Publication Date Title
JP4460867B2 (ja) インターフェース装置及びパケット転送方法
JP5186382B2 (ja) メモリ・システム内で不確定な読み取りデータ待ち時間を可能にする方法及びシステム
EP1794681B1 (en) Memory card controller, memory card drive device, and computer program
TWI332614B (en) Method, apparatus, system and article for managing a connection in a connection orientated environment
WO2020000485A1 (zh) 一种基于NVMe的数据写入方法、装置及系统
JP2010092493A (ja) インターフェース装置及びパケット転送方法
JP2010267345A (ja) ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
US20100306417A1 (en) Transfer of Commands And Storage Data To A Data Storage Device
JP2006127300A (ja) ホストと記憶デバイスとの間における通信方法、記憶デバイス、ホスト、記憶デバイスとホストを備えるシステム
US8554976B2 (en) Single pipe non-blocking architecture
US6948025B2 (en) System and method for transferring data between an IEEE 1394 device and a SCSI device
JP2014010759A (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
JP2007122816A (ja) 記憶装置、制御方法及びプログラム
US6640274B1 (en) Method and apparatus for reducing the disk drive data transfer interrupt service latency penalty
TW591510B (en) Control method for data transfer control unit
KR20020019437A (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
JP4323476B2 (ja) メモリカードコントローラ、メモリカードドライブ装置、及びプログラム
JP3233073B2 (ja) ディスクアクセス方式
JP2008118211A (ja) データ転送装置及びデータ転送方法
JP2013015912A (ja) データ転送装置及びデータ転送方法
JP2004139482A (ja) 磁気ディスク制御装置のコマンド処理時間監視設定方法
JP2000020398A (ja) ディスク記憶装置及び同装置に適用するディスクコントローラ
JP2848099B2 (ja) 多重ドライブ制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090924

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091124

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100119

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees