(57)【特許請求の範囲】
【請求項１】
自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、
記憶手段と、
他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成する送信パケット生成回路と、
上記要求パケットで要求するデータのサイズと上記記憶手段の残り容量とを比較する比較手段と、
上記比較手段の比較の結果、記憶手段の残り容量が要求データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記記憶手段に記憶させるデータ処理回路と
を有するシリアルインタフェース回路。
【請求項２】
自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、
第１の記憶手段と、
第２の記憶手段と、
他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成し、上記第１の記憶手段に記憶する送信パケット生成回路と、
上記要求パケットで要求するデータのサイズと上記第２の記憶手段の残り容量とを比較する比較手段と、
上記比較手段の比較の結果、第２の記憶手段の残り容量が要求データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記第２の記憶手段に記憶させるデータ処理回路と
を有するシリアルインタフェース回路。
【請求項３】
送信パケット生成回路は、他ノードのデータを自ノードへ転送する場合にはデータをパケット化して転送できるように、転送すべきデータサイズを含む複数の要求パケットを生成して上記シリアルインタフェースバスに送出する
請求項１記載のシリアルインタフェース回路。
【請求項４】
送信パケット生成回路は、他ノードのデータを自ノードへ転送する場合にはデータをパケット化して転送できるように、転送すべきデータサイズを含む複数の要求パケットを生成して上記シリアルインタフェースバスに送出する
請求項２記載のシリアルインタフェース回路。
【請求項５】
自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、
記憶手段と、
他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成する送信パケット生成回路と、
上記要求パケットで要求可能な最大のデータサイズを求める最大サイズ算出回路と、
上記最大サイズ算出回路で求めた最大データサイズと上記記憶手段の残り容量とを比較する比較手段と、
上記比較手段の比較の結果、記憶手段の残り容量が最大データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記記憶手段に記憶させるデータ処理回路と
を有するシリアルインタフェース回路。
【請求項６】
自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、
第１の記憶手段と、
第２の記憶手段と、
他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成し、上記第１の記憶手段に記憶する送信パケット生成回路と、
上記要求パケットで要求可能な最大のデータサイズを求める最大サイズ算出回路と、
上記最大サイズ算出回路で求めた最大データサイズと上記第２の記憶手段の残り容量とを比較する比較手段と、
上記比較手段の比較の結果、第２の記憶手段の残り容量が最大データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記第２の記憶手段に記憶させるデータ処理回路と
を有するシリアルインタフェース回路。
【請求項７】
送信パケット生成回路は、他ノードのデータを自ノードへ転送する場合にはデータをパケット化して転送できるように、転送すべきデータサイズを含む複数の要求パケットを生成して上記シリアルインタフェースバスに送出する
請求項５記載のシリアルインタフェース回路。
【請求項８】
送信パケット生成回路は、他ノードのデータを自ノードへ転送する場合にはデータをパケット化して転送できるように、転送すべきデータサイズを含む複数の要求パケットを生成して上記シリアルインタフェースバスに送出する
請求項６記載のシリアルインタフェース回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタルシリアルインタフェース回路に係り、特にＨＤＤ（Ｈard Disk Drive) 、ＤＶＤ(Digital Video Disk)−ＲＯＭ、ＣＤ(Compact Disk)−ＲＯＭ、テープストリーマ(Tape Streamer) 等のストレージ装置に接続するシリアルインタフェース回路およびその信号処理方法に関するものである。
【０００２】
【従来の技術】
近年、マルチメディア・データ転送のためのインタフェースとして、高速データ転送、リアルタイム転送を実現するＩＥＥＥ（The Institute of Electrical and Electronic Engineers) １３９４、Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｉｒｉａｌ  Ｂｕｓが規格化された。
【０００３】
このＩＥＥＥ１３９４シリアルインタフェースのデータ転送においては、ネットワーク内で行われる転送動作をサブアクションと呼び、２つのサブアクションが規定されている。
一つは、従来のRequest,Acknowledge の要求、受信確認を行うアシンクロナス（Asynchronous) 転送であり、他の一つはあるノードから１２５μｓに１回必ずデータが送られるアイソクロナス(Isochronous) 転送である。
【０００４】
このように、２つの転送モードを有するＩＥＥＥ１３９４シリアルインタフェースでのデータは、パケット単位で転送が行われるが、ＩＥＥＥ１３９４規格では、取り扱う最小データの単位は１クワドレット(quadlet) （＝４バイト＝３２ビット）である。
【０００５】
ＩＥＥＥ１３９４規格では、通常、コンピュータデータは、図４に示すように、アシンクロナス転送を用いて行われる。
アシンクロナス転送は、図４（ａ）に示すように、バスを獲得するためのアービレーション（ａｒｂ）、データを転送するパケットトランスミッション、およびアクノリッジメント（ａｃｋ）の３つの遷移状態をとる。
【０００６】
そして、パケットトランスミッションの実行は、図４（ｂ）に示すようなフォーマットで行われる。
転送パケットの第１クワドレットは、１６ビットのデスティネーションＩＤ(destination ID)領域、６ビットのトランザクション  ラベルｔｌ(transaction label) 領域、２ビットのリトライ  コードｒｔ(retry code)領域、４ビットのトランザクション  コードｔｃｏｄｅ(transanction code) 領域、および４ビットのプライオリティｐｒｉ(priority)領域から構成されている。
デスティネーションＩＤ領域はこのノードのバスナンバーとノードナンバー、プライオリティ領域は優先レベルを示す。
【０００７】
第２クワドレットおよび第３クワドレットは、１６ビットのソースＩＤ(source ID) 領域、および４８ビットのデスティネーション・オフセット(destination offset)領域により構成されている。
ソースＩＤ領域はこのパケットを送ったノードＩＤを示し、デスティネーション  オフセット領域はハイ(High)およびロー(Low) の連続した領域からなり、デスティネーション・ノードのアドレス空間のアドレスを示す。
【０００８】
第４クワドレットは、１６ビットのデータ長(data length) 領域、および１６ビットのイクステンディド・トランザクション・コード(extended tcode)領域に構成されている。
データ長領域は受信したパケットのバイト数を示し、イクステンディド tcode領域はｔｃｏｄｅがロック・トランザクション(Lock transaction)の場合、このパケットのデータが行う実際のロック動作(Lock Action) を示す領域である。
【０００９】
データフィールド領域(data field)の前のクワドレットに付加されたヘッダＣＲＣ（header CRC) 領域は、パケットヘッダの誤り検出符号である。
また、データ領域(data field)の後のクワドレットに付加されたデータＣＲＣ（data CRC) 領域は、データフィールドの誤り検出符号である。
【００１０】
【発明が解決しようとする課題】
ところで、上述したように、アシンクロナス転送で行われる通常のコンピュータデータの転送では、そのプロトコルとして、ＳＢＰ−２(Serial Bus Protocol-2) が用いられる。
このプロトコルによると、ストレージデバイス(Storage Device)であるターゲット(Target)からホストコンピュータ(Host Computer) であるイニシエータ(Initiator) にデータを転送するときは、ストレージデバイスからホストコンピュータのメモリへデータを書き込む形で、またホストコンピュータからターゲットにデータを転送するときは、ストレージデバイスがホストコンピュータのメモリのデータを読み出す形で転送が行われる。
【００１１】
しかしながら、ストレージデバイスに格納される、あるいはストレージデバイスから読み出される大容量のデータをＩＥＥＥ１３９４規格のパケットにして、送受信するための、いわゆるトランザクション・レイヤ(Transaction Layer) をコントロールする処理系回路システムが未だ確立されていない。
【００１２】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、大容量のデータを所定の規格に合わせてたパケットにして送受信することができ、また、円滑な送受信処理をことができるシリアルインタフェース回路を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、本発明は、自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、記憶手段と、他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成する送信パケット生成回路と、上記要求パケットで要求するデータのサイズと上記記憶手段の残り容量とを比較する比較手段と、上記比較手段の比較の結果、記憶手段の残り容量が要求データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記記憶手段に記憶させるデータ処理回路とを有する。
【００１４】
また、本発明は、自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、第１の記憶手段と、第２の記憶手段と、他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成し、上記第１の記憶手段に記憶する送信パケット生成回路と、上記要求パケットで要求するデータのサイズと上記第２の記憶手段の残り容量とを比較する比較手段と、上記比較手段の比較の結果、第２の記憶手段の残り容量が要求データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記第２の記憶手段に記憶させるデータ処理回路とを有する。
【００１５】
また、本発明は、自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、記憶手段と、他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成する送信パケット生成回路と、上記要求パケットで要求可能な最大のデータサイズを求める最大サイズ算出回路と、上記最大サイズ算出回路で求めた最大データサイズと上記記憶手段の残り容量とを比較する比較手段と、上記比較手段の比較の結果、記憶手段の残り容量が最大データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記記憶手段に記憶させるデータ処理回路とを有する。
【００１６】
また、本発明は、自ノードとシリアルインタフェースバスを介して接続された他ノード間でアシンクロナスパケットの送受信を行うシリアルインタフェース回路であって、第１の記憶手段と、第２の記憶手段と、他ノードのデータを自ノードへ転送する場合に、転送すべきデータサイズを含む要求パケットを生成し、上記第１の記憶手段に記憶する送信パケット生成回路と、上記要求パケットで要求可能な最大のデータサイズを求める最大サイズ算出回路と、上記最大サイズ算出回路で求めた最大データサイズと上記第２の記憶手段の残り容量とを比較する比較手段と、上記比較手段の比較の結果、第２の記憶手段の残り容量が最大データサイズ以上で有る場合に上記要求パケットを上記シリアルインタフェースバスに送出し、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部を上記第２の記憶手段に記憶させるデータ処理回路とを有する。
【００１７】
本発明の回路によれば、他ノードから自ノードへデータを転送する場合には、送信パケット生成回路により転送すべきデータサイズを含む要求パケットが生成されて、データ処理回路に入力（または第１の記憶手段に格納）される。
比較手段において要求パケットで要求するデータのサイズと記憶手段（または第２の記憶手段）の残り容量とが比較される。
比較の結果、記憶手段（または第２の記憶手段）の残り容量が要求データサイズ以上で有る場合に、データ処理回路から要求パケットがシリアルインタフェースバスに送出される。
そして、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部が記憶手段（または第２の記憶手段）に記憶される。
【００１８】
また、本発明の回路によれば、他ノードから自ノードへデータを転送する場合には、送信パケット生成回路によりデータをパケット化して転送できるように、転送すべきデータサイズを含む要求パケットが生成されて、データ処理回路に入力（または第１の記憶手段に格納）される。
また、最大サイズ算出回路で、要求パケットで要求可能な最大のデータサイズを求められ、比較手段に入力される。
比較手段においては、最大データサイズと記憶手段（または第２の記憶手段）の残り容量とが比較される。
比較の結果、記憶手段（または第２の記憶手段）の残り容量が最大データサイズ以上で有る場合に、データ処理回路から要求パケットがシリアルインタフェースバスに送出される。
そして、他ノードからの当該要求パケットに対する応答パケットを受信したときに、応答パケットの少なくともデータ部が記憶手段（または第２の記憶手段）に記憶される。
【００１９】
【発明の実施の形態】
図１は、本発明に係るＩＥＥＥ１３９４シリアルインタフェース回路の一実施形態を示すブロック構成図である。
なお、このシリアルインタフェース回路は、アシンクロナス通信で扱われるコンピュータデータの転送を行うことを目的として構成されている。このため、図１においては、アイソクロナス通信系回路の具体的な構成は図示していない。
【００２０】
このシリアルインタフェース回路は、リンク／トランザクション・レイヤ集積回路１０、フィジカル・レイヤ回路２０、ストレージデバイスとしての図示しないハードディスクドライバ（ＨＤＤ）のコントローラ３０、ホストコンピュータとしてのローカルプロセッサ４０により構成されている。
【００２１】
リンク／トランザクション・レイヤ集積回路１０は、リンク・レイヤ回路１００およびトランザクション・レイヤ回路１２０が集積化されて構成され、ローカルプロセッサ４０の制御の下、アシンクロナス転送の制御、並びにフィジカル・レイヤ回路２０の制御を行う。
【００２２】
リンク・レイヤ回路１００は、図１に示すように、リンクコア(Link Core))１０１、ＣＰＵインタフェース回路（Sub-CPU I/F ）１０２、アシンクロナス通信で用いられる送信用ＦＩＦＯ（AT-FIFO:First-In First-Out) １０３、受信用ＦＩＦＯ（AR-FIFO)１０４、受信パケットを判別する分別回路(DeMux) １０５、セルフＩＤ用リゾルバ(Resolver)１０６、およびコントロールレジスタ（Control Registers 、以下ＣＲという）１０７により構成されている。
【００２３】
リンクコア１０１は、コマンドやコンピュータデータが転送されるアシンクロナス通信用パケットおよびアイソクロナス通信用パケットの送信回路、受信回路、これらパケットのＩＥＥＥ１３９４シリアルバスＢＳを直接ドライブするフィジカル・レイヤ回路２０とのインタフェース回路、１２５μｓ毎にリセットされるサイクルタイマ、サイクルモニタやＣＲＣ回路から構成されている。
また、図示しないハードディスクから読み出され、トランザクション・レイヤ回路１２０で所定の送信パケットとして生成されたコンピュータデータの送信処理等を行う。
たとえば、後述するトランザクション・レイヤ回路１２０のトランザクションコントローラ１２６から送るべきデータがある旨の知らせを受けるとフィジカル・レイヤ回路２０を経由して１３９４シリアルバスのアービトレーションを行いバスを確保する。
なお、図１では、上述したように、アイソクロナス通信系のＦＩＦＯ等は省略している。
【００２４】
ＣＰＵインタフェース回路１０２は、ローカルプロセッサ４０と送信用ＦＩＦＯ１０３、受信用ＦＩＦＯ１０４とのアシンクロナス通信用パケットの書き込み、読み出し等の調停、並びに、ローカルプロセッサ４０とＣＲ１０７との各種データの送受信の調停を行う。
たとえば、イニシエータとしてのホストコンピュータからＩＥＥＥ１３９４インタフェースバスＢＳを送信され、受信用ＦＩＦＯに格納されたストレージデバイスとしてのハードディスクのコントロール用コマンドをローカルプロセッサ４０に伝送する。
そして、ローカルプロセッサ４０からは、コンピュータデータを送受信するためにトランザクション・レイヤ回路１２０を起動させるためのデータがＣＰＵインタフェース１０２を通してＣＲ１０７にセットされる。
【００２５】
さらに、ローカルプロセッサ４０からは、後述するようにトランザクション・レイヤ回路１２０における他ノードから自ノードへデータを転送する読み出し（受信）動作時に、応答パケットの最大データ長を計算するための最大データ長を指定するための４ビットの最大長データ(max-payload) がＣＰＵインタフェース１０２を通してＣＲ１０７にセットされる。
この最大長データは、トランザクション・レイヤ回路１２０の後述する要求パケット生成回路１２２に供給される。
【００２６】
送信用ＦＩＦＯ１０３には、ＩＥＥＥ１３９４シリアルバスＢＳに伝送させるアシンクロナス通信用パケットが格納され、格納データはリンクコア１０１に与えられる。
【００２７】
また、受信用ＦＩＦＯ１０４は、ＩＥＥＥ１３９４シリアルバスＢＳを伝送されてきたアシンクロナス通信用パケット、たとえばストレージデバイスとしてのハードディスクのコントロール用コマンド等が、分別回路１０５により格納される。
【００２８】
分別回路１０５は、リンクコア１０１を介したアシンクロナス通信用パケットの第１クワドレッドにあるトランザクションコードｔｃｏｄｅ(Transaction code)およびトランザクションラベルｔｌ(Transaction label) をチェックし、イニシエータであるホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別を行い、応答パケットのみをトランザクション・レイヤ回路１２０に入力させ、その他のパケットを受信用ＦＩＦＯ１０４に格納する。
【００２９】
なお、分別のチェックに用いられるトランザクションラベルｔｌは共通に「ａ」にセットされ、ｔｃｏｄｅ(Transaction code)は、書き込み(Write) の要求（request)および応答(Response)、読み出し(Read)の要求（Read request) および応答(Read Response) で異なるデータがセットされる。
具体的には、ｔｃｏｄｅは、書き込み要求（Write request)でクワドレット書き込み(Quadlet Write) の場合には「０」、ブロック書き込み(Block Write) の場合には「１」にセットされる。
また、書き込み応答(Write Response)の場合には「２」にセットされる。
読み出し要求（Read request) でクワドレット読み出し(Quadlet Read)の場合には「４」、ブロック読み出し(Block Read)の場合には「５」にセットされる。
また、読み出し応答(Read Response) の場合には「６／７」にセットされる。
【００３０】
リゾルバ１０６は、ＩＥＥＥ１３９４シリアルインタフェースバスＢＳを伝送されてきたセルフＩＤパケットを解析し、ＣＲ１０７に格納する。また、エラーチェック、ノード数のカウント等の機能も有する。
【００３１】
トランザクション・レイヤ回路１２０は、コンピュータ周辺機器（本実施形態ではハードディスク）のデータをＳＢＰ−２(Serial Bus Protocol-2) 規格に基づいて、アシンクロナスパケットとして自動的に送信、受信をする機能を備えている。
また、トランザクション・レイヤ回路１２０は、リトライ(Retry) 機能並びにスプリットタイムアウト(Split Timeout) 検出機能を備えている。
リトライ機能は、要求パケットを送信した後、ack busy* のＡｃｋコードが返ってきた場合、該当する要求パケットを再送信する機能である。パケットを再送信する場合、送信パケットの第１クワドレッドにある２ビットのｒｔ領域を「００」から「０１」にセットしてから送信する。
スプリットタイムアウト(Split Timeout) 検出機能は、応答パケットが返ってくるまでのタイムアウトを検出する機能である。
【００３２】
このトランザクション・レイヤ回路１２０は、トランスポートデータインタフェース回路１２１、要求パケット生成回路(SBPreq)１２２、応答パケットデコード回路(SBPRsp)１２３、要求用ＦＩＦＯ(Request FIFO:ADPTF)１２４、応答用ＦＩＦＯ(Response FIFO:ADPRF) １２５、およびトランザクションコントローラ１２６により構成されている。
そして、要求パケット生成回路１２２、応答パケットデコード回路１２３、要求用ＦＩＦＯ１２４、応答用ＦＩＦＯ１２５、およびトランザクションコントローラ１２６によりデータ処理回路ＡＤＰが構成される。
【００３３】
トランスポートデータインタフェース回路１２１は、ＨＤＤコントローラ３０と要求パケット生成回路１２２、応答パケットデコード回路１２３とのデータの送受信の調停を行う。
【００３４】
要求パケット生成回路１２２は、リンク・レイヤ回路１００のＣＲ１０７からデータ転送起動の指示を受けると、送信（書き込み）の場合、ＳＢＰ−２規格に従ってトランスポートデータインタフェース回路１２１を介して得た図示しないハードディスクに記録されたコンピュータデータをパケットに分けられるように１個以上のデータに分け、トランザクションラベルｔｌ（＝ａ）等を指定した１３９４ヘッダを付加して要求用ＦＩＦＯ１２４に格納する。
また、受信（読み出し）の場合には、ＳＢＰ−２規格に従って、指定されたアドレス、データ長分の１３９４ブロック読み出し要求コマンド(Block read Request Command)を１個以上のトランザクションラベルｔｌ（＝ａ）等を指定し、データ長を含むパケットにして要求用ＦＩＦＯ１２４に格納する。
さらに、この受信時には、ＣＲ１０７にて指定される最大長データmax-payload を受けて送信する要求パケットに対する応答パケットの最大データ長を計算し、最大データ長（バイト）maxpl を示す１２ビットの信号Ｓ１２２をトランザクションコントローラ１２６に出力する。
この最大データ長（バイト）maxpl は次式に基づいて求められる。
【００３５】
【数１】
maxpl ＝２(max,Payload+2) 
【００３６】
応答パケットデコード回路１２３は、受信時に応答用ＦＩＦＯ１２５に格納された応答用パケットデータを読み出し、１３９４ヘッダを取り除いたデータを所定のタイミングでトランスポートデータインタフェース回路１２１を介してＨＤＤコントローラ３０に出力する。
【００３７】
要求用ＦＩＦＯ１２４は、送信（書き込み）時にはパケット化された送信データが格納され、受信（読み出し）の場合には、１３９４ブロック読み出し要求コマンドが格納される。
なお、要求用ＦＩＦＯ１２４は、送るべきデータを記憶しているときは、その旨を示すたとえばローレベル（「０」）でアクティブの信号ＥＭＴをトランザクションコントローラ１２６に出力する。
【００３８】
応答用ＦＩＦＯ１２５は、受信（読み出し）の場合には、ホストコンピュータ側から１３９４シリアルバスＢＳを伝送されてきた受信データが格納される。
なお、応答用ＦＩＦＯ１２５は、残りの記憶容量を示す信号Ｓ１２５をトランザクションコントローラ１２６に出力する。
【００３９】
トランザクションコントローラ１２６は、送信時に要求用ＦＩＦＯ１２４に格納されたパケット化された送信データ、および受信時に要求用ＦＩＦＯ１２４に格納された１３９４ブロック読み出し要求コマンド（要求パケット）のリンク・レイヤコア回路１００のリンクコア１０１への出力制御を行う。
また、受信時には、要求パケット生成回路１２２から受けた信号Ｓ１２２で与えられる最大データ長（バイト）maxpl と応答用ＦＩＦＯ１２５から受けた信号Ｓ１２５で示される応答用ＦＩＦＯ１２５の残り記憶容量とを比較し、残り記憶容量が最大データ長maxpl 以上の場合に、要求パケットをリンクコア１０１に出力し、要求パケットの送信を行わせる。
一方、残り記憶容量が最大データ長maxpl より小さい場合には、送るべき要求パケットで要求され、その応答パケットとして送られてくるデータ長の方が長く応答用ＦＩＦＯ１２５の既記憶データが破壊されるおそれがあることから、要求パケットのリンクコア１０１への出力を、残り記憶容量が最大データ長maxpl 以上になるまで停止する。すなわち、要求パケットの他ノードへの送信を一時停止する。
また、送信時に、リンク・レイヤ回路１００の分別回路１０５からの応答パケットを受けて、そのリトライコードｒｃｏｄｅをＣＲ１０７に書き込み、受信時には分別回路１０５からの応答パケットを応答用ＦＩＦＯ１２５に格納する。
【００４０】
次に、上記構成において、ＳＢＰ−２規格で決められたパケットを転送する場合のコンピュータデータの送信および受信動作を説明する。
【００４１】
まず、送信動作、すなわち、ターゲットであるハードディスクからイニシエータであるホストコンピュータにデータを転送するときであって、ストレージデバイス（ハードディスク）からホストコンピュータのメモリへデータを書き込む動作を行う場合について説明する。
【００４２】
ホストコンピュータから１３９４シリアルバスＢＳを転送されてきたＳＢＰ−２規格に基づいたＯＲＢ(Operation Request Block) 等のパケットデータがフィジカル・レイヤ回路２０、リンク・レイヤ回路１００のリンクコア１０１を介して分別回路１０５に入力される。
【００４３】
分別回路１０５では、受信パケットを受けてホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別が行われる。
そしてこの場合、その他のパケットであることから受信データが受信用ＦＩＦＯ１０４に格納される。
受信用ＦＩＦＯ１０４に格納されたＯＲＢ等の受信データは、ＣＰＵインタフェース回路１０２を介してローカルプロセッサ４０に入力される。
ローカルプロセッサ４０では、ＣＰＵインタフェース回路１０２を介してＯＲＢの内容に従ってＣＲ１０７のトランザクション・レイヤ回路用レジスタの初期化が行われる。
これにより、トランザクション・レイヤ回路１２０が起動される。
【００４４】
起動されたトランザクション・レイヤ回路１２０では、要求パケット生成回路１２２において、トランスポートインタフェース１２１を介してＨＤＤコントローラ３０に対してのデータの要求が始められる。
要求に応じ、トランスポートインタフェース１２１を介して送られたきた送信データは、要求パケット生成回路１２２においてＳＢＰ−２規格に従ってパケットに分けられるように１個以上のデータに分けられ、トランザクションラベルｔｌ（＝ａ）等が指定された１３９４ヘッダが付加されて自動的に要求用ＦＩＦＯ１２４に格納される。
【００４５】
要求用１ＦＩＦＯ１２４に１つの１３９４パケットサイズ以上のデータが格納されると、そのデータはトランザクションコントローラ１２６によりリンク・レイヤ回路１００のリンクコア１０１に送られる。
そして、リンクコア１０１によって、フィジカル・レイヤ回路２０を介して１３９４シリアルバスＢＳに対しアービトレーションが掛けられる。
これにより、バスの獲得ができたならば、転送データを含む書き込み要求パケット(Write Request Packet)がフィジカル・レイヤ回路２０、１３９４シリアルバスＢＳを介してホストコンピュータに送信される。
【００４６】
送信後、ホストコンピュータから書き込み要求パケットに対するＡｃｋコードと、場合によっては書き込み応答パケット(Write Response Packet) が送られてきて、フィジカル・レイヤ回路２０、リンク・レイヤ回路１００のリンクコア１０１を介して分別回路１０５に入力される。
【００４７】
分別回路１０５では、受信パケットのトランザクションコードｔｃｏｄｅおよびトランザクションラベルｔｌのチェックが行われ、ホストコンピュータからターゲットであるトランザクション・レイヤ回路１２０に対しての応答パケット(Response Packet) であると判別されると、その応答パケットがトランザクション・レイヤ回路１２０のトランザクションコントローラ１２６に入力される。
【００４８】
トランザクションコントローラ１２６では、入力された応答パケットのＡｃｋコードと応答コード(Response code) が正常ならば次のデータのリンクコア１０１への送出が行われる。
以上の動作が繰り返されて、コンピュータデータのホストコンピュータのメモリへの書き込み（送信）動作が行われる。
【００４９】
以上の送信に関するトランザクション・レイヤ回路１２０の動作の概略を図２に示す。
【００５０】
次に、受信動作、すなわち、ホストコンピュータからターゲットにデータを転送するときであって、ストレージデバイス（ハードディスク）がホストコンピュータのメモリのデータを読み出す動作を行う場合について説明する。
【００５１】
ホストコンピュータから１３９４シリアルバスＢＳを転送されてきたＳＢＰ−２規格に基づいたＯＲＢ等のパケットデータがフィジカル・レイヤ回路２０、リンク・レイヤ回路１００のリンクコア１０１を介して分別回路１０５に入力される。
【００５２】
分別回路１０５では、受信パケットを受けてホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別が行われる。
そしてこの場合、その他のパケットであることから受信データが受信用ＦＩＦＯ１０４に格納される。
受信用ＦＩＦＯ１０４に格納されたＯＲＢ等の受信データは、ＣＰＵインタフェース回路１０２を介してローカルプロセッサ４０に入力される。
ローカルプロセッサ４０では、ＣＰＵインタフェース回路１０２を介してＯＲＢの内容に従ってＣＲ１０７のトランザクション・レイヤ回路用レジスタの初期化が行われる。
これにより、トランザクション・レイヤ回路１２０が起動される。
【００５３】
また、この初期化と並行して、ローカルプロセッサ４０からは、要求パケットで指定される応答パケットに含まれる最大データ長を計算するための最大データ長を指定するための４ビットの最大長データ(max-payload) がＣＰＵインタフェース１０２を通してＣＲ１０７にセットされる。
この最大長データは、トランザクション・レイヤ回路１２０の要求パケット生成回路１２２に供給される。
【００５４】
起動されたトランザクション・レイヤ回路１２０では、要求パケット生成回路１２２において、ＳＢＰ−２規格に従って、指定されたアドレス、データ長分の１３９４ブロック読み出し要求コマンド(Block read Request Command)がパケット化され、要求パケットして要求用ＦＩＦＯ１２４に格納される。
さらに、要求パケット生成回路１２２においては、ＣＲ１０７にて指定される最大長データmax-payload を受けて送信する要求パケットに対する応答パケットの最大データ長が計算され、最大データ長（バイト）maxpl を示す１２ビットの信号Ｓ１２２がトランザクションコントローラ１２６に出力される。
【００５５】
トランザクションコントローラ１２６においては、要求パケット生成回路１２２から受けた信号Ｓ１２２で与えられる最大データ長maxpl と応答用ＦＩＦＯ１２５から受けた信号Ｓ１２５で示される応答用ＦＩＦＯ１２５の残り記憶容量とが比較される。
比較の結果、残り記憶容量が最大データ長maxpl 以上の場合に、要求パケットがリンクコア１０１に出力される。
一方、残り記憶容量が最大データ長maxpl より小さい場合には、送るべき要求パケットで要求され、その応答パケットとして送られてくるデータ長の方が長く応答用ＦＩＦＯ１２５の既記憶データが破壊されるおそれがあることから、要求パケットのリンクコア１０１への出力が、残り記憶容量が最大データ長maxpl 以上になるまで、要求パケットの他ノードへの送信が一時停止される。
【００５６】
上述したように、残り記憶容量が最大データ長maxpl 以上の場合に、要求用ＦＩＦＯ１２４に格納された読み出し要求コマンドパケットは、トランザクションコントローラ１２６によりリンク・レイヤ回路１００のリンクコア１０１に送られる。
そして、リンクコア１０１によって、フィジカル・レイヤ回路２０を介して１３９４シリアルバスＢＳに対しアービトレーションが掛けられる。
これにより、バスの獲得ができたならば、読み出し要求パケット(Read Request Packet) がフィジカル・レイヤ回路２０、１３９４シリアルバスＢＳを介してホストコンピュータに送信される。
【００５７】
送信後、ホストコンピュータから読み出し要求パケットに対するＡｃｋコードと、指定されたデータ長分のデータを含んだ読み出し応答パケット（Read Response Packet) が送られてきて、フィジカル・レイヤ回路２０、リンク・レイヤ回路１００のリンクコア１０１を介して分別回路１０５に入力される。
【００５８】
分別回路１０５では、受信パケットのトランザクションコードｔｃｏｄｅおよびトランザクションラベルｔｌのチェックが行われ、ホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であると判別されると、その応答パケットがトランザクション・レイヤ回路１２０のトランザクションコントローラ１２６に入力される。
【００５９】
トランザクションコントローラ１２６では、分別回路１０５からの応答パケットデータが応答用ＦＩＦＯ１２５に格納される。
応答用ＦＩＦＯ１２５に格納されたデータは、応答パケットデコード回路１２３によって読み出され、１３９４ヘッダが取り除かれて所定のタイミングでトランスポートデータインタフェース回路１２１を介してＨＤＤコントローラ３０に出力される。
以上の動作が繰り返されて、コンピュータデータのストレージデバイス（ハードディスク）への書き込み（受信）動作が行われる。
【００６０】
以上の受信に関するトランザクション・レイヤ回路１２９の動作の概略を図３に示す。
【００６１】
以上説明したように、本第１の実施形態によれば、ストレージデバイスが接続され、ストレージデバイスのデータを読み出し、自己指定のトランザクションラベルを付加して送信アシンクロナスパケットとしてシリアルインタフェースバスＢＳに送出し、他ノードのデータを当該ストレージデバイスへ転送する場合に、自己指定のラベルを付加した要求パケットを生成してシリアルインタフェースバスＢＳに送出し、他ノードからのこの要求パケットに対する応答パケットを受信し、応答パケットからデータ部を取り出してストレージデバイスへ転送するデータ処理回路としてのトランザクション・レイヤ回路１２０を設けたので、ストレージデバイスに格納される、あるいはストレージデバイスから読み出される大容量のデータをＳＢＰ−２規格に合わせてたＩＥＥＥ１３９４パケットにして送受信することができ、ＩＥＥＥ１３９４シリアルバスインタフェースのアシンクロナス  パケットを用いて大容量のデータ転送を実現することができる。
そして、ＳＢＰ−２規格に基づいたＯＲＢのフェッチ、データ転送、イニシエータへのステイタス送信といったシーケンスを簡略化でき、ディスクドライバ、テープストリーマ等のコンピュータ周辺機器のデータをＩＥＥＥ１３９４シリアルバスに接続する際に最適な設計が可能となる。
【００６２】
また、受信動作時には、要求パケット生成回路１２２において、要求パケットを生成するとともに、送信する要求パケットに対する応答パケットの最大データ長を計算し、信号Ｓ１２２としてトランザクションコントローラ１２６に出力し、要求パケット生成回路１２２から受けた信号Ｓ１２２で与えられる最大データ長maxpl と応答用ＦＩＦＯ１２５から受けた信号Ｓ１２５で示される応答用ＦＩＦＯ１２５の残り記憶容量とを比較し、残り記憶容量が最大データ長maxpl 以上の場合に、要求パケットの送信を行わせ、残り記憶容量が最大データ長maxpl より小さい場合には、送るべき要求パケットで要求され、その応答パケットとして送られてくるデータ長の方が長く応答用ＦＩＦＯ１２５の既記憶データが破壊されるおそれがあることから、要求パケットのリンクコア１０１への出力を、残り記憶容量が最大データ長maxpl 以上になるまで、要求パケットの他ノードへの送信を一時停止するようにしたので、受信するに十分なＦＩＦＯ容量を確保して、自ノードが送信した要求パケットに対する応答パケットを受けることができる利点がある。
【００６３】
さらに、トランザクション・レイヤ回路１２０に要求用ＦＩＦＯ１２４および応答用ＦＩＦＯ１２５を設けるとともに、リンク・レイヤ回路１００に送信用ＦＩＦＯ１０３および受信用ＦＩＦＯ１０４を設けたので、要求用ＦＩＦＯ１２４および応答用ＦＩＦＯ１２５によるデータのやりとりと並列して、データ以外の通常の１３９４パケットの送受信を行うことできる。
【００６４】
また、リンクコア１０１を介したアシンクロナス通信用パケットの第１クワドレッドにあるトランザクションコードｔｃｏｄｅ(Transaction code)およびトランザクションラベルｔｌ(Transaction label) をチェックし、イニシエータであるホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別を行い、応答パケットのみをトランザクション・レイヤ回路１２０に入力させ、その他のパケットを受信用ＦＩＦＯ１０４に格納する分別回路１０５を設けたので、たとえばトランザクション・レイヤ回路１２０側で致命的なエラーがおきてデータの読み出し／書き込み動作が止まってしたっても、データの次の入力されてくるコマンドの読み出しができなることがなく、データの読み出し／書き込みの状況にかかわりなくコマンドの受信を円滑に行うことができる利点がある。
【００６５】
なお、上述した実施形態では、受信時に送信する要求パケットに対する応答パケットの最大データ長を計算し、この最大データ長maxpl と応答用ＦＩＦＯ１２５から受けた信号Ｓ１２５で示される応答用ＦＩＦＯ１２５の残り記憶容量とを比較して、要求パケットの送信をするか一時停止するかを判断するように構成したが、たとえば、要求パケットに含まれるデータ長データＤＬをトランザクションコントローラ１２６で読み出して、このデータ長データＤＬと応答用ＦＩＦＯ１２５の残り記憶容量とを要求パケット毎に比較して、その要求パケットの送信をするか一時停止するかを判断するように構成することも可能である。
このような構成においても、上述したと同様な構成を得ることができる。
【００６６】
【発明の効果】
以上説明したように、本発明によれば、大容量のデータを所定の規格に合わせてたパケットにして送受信することができ、また、円滑な送受信処理を行うことができる。
また、受信するに十分な記憶容量を確保して、自ノードが送信した要求パケットに対する応答パケットを受けることができる利点がある。
【図面の簡単な説明】
【図１】本発明に係るＩＥＥＥ１３９４シリアルインタフェース回路の一実施形態を示すブロック構成図である。
【図２】本発明に係るトランザクション・レイヤ回路における送信動作の概略を示す図である。
【図３】本発明に係るトランザクション・レイヤ回路における受信動作の概略を示す図である。
【図４】ＩＥＥＥ１３９４規格のアシンクロナス転送を説明するための図である。
【符号の説明】
１０…リンク／トランザクションレイヤ集積回路、２０…フィジカル・レイヤ回路、３０…ＨＤＤコントローラ、４０…ローカルプロセッサ、１００，１００ａ…リンク・レイヤ回路、１０１…リンクコア、１０２…ＣＰＵインタフェース回路、１０３…アシンクロナス送信用ＦＩＦＯ、１０４…アシンクロナス受信用ＦＩＦＯ、１０５，１０５ａ…分別回路、１０６…リゾルバ、１０７…コントロールレジスタ、１２０…トランザクション・レイヤ回路、１２１…トランスポートデータインタフェース回路、１２１…要求パケット生成回路、１２３…応答パケットデコード回路、１２４…要求用ＦＩＦＯ、１２５…応答用ＦＩＦＯ、１２６…トランザクションコントローラ。
【図１】
0003733699.tif 000002
【図２】
0003733699.tif 000003
【図３】
0003733699.tif 000004
【図４】
0003733699.tif 000005