(57)【要約】【課題】ＩＥＥＥ１３９４インターフェースで接続されているイニシエータとターゲットとの間で行うデータ転送を効率化する。【解決手段】イニシエータ１０によりログイン時にターゲット１１〜１４のバッファ情報を取得し、イニシエータ１０により取得したバッファ情報に基づき、少なくとも、ターゲット１１〜１４のノードＩＤ情報、バッファメモリのアドレス情報及びデータの送信又は受信を特定するデータ送受信特定情報を含むデータ転送用テーブルを生成し、イニシエータ１０により生成したデータ転送用テーブルを各ターゲットに供給し、データの転送を指示する信号の入力により、イニシエータ１０とターゲット１１〜１４との間で、インターフェースの転送用のプロトコルに付加した所定の情報に基づくハンドシェークを行い、データ転送用テーブルに基づきデータの転送を行なう。【選択図】　図１
2004013634.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を行うイニシエータと複数のターゲットとがインターフェースで接続されており、イニシエータとターゲットとの間及びターゲットとターゲットと間でデータの転送を行うデータ転送方法において、
上記イニシエータによりログイン時に上記ターゲットのバッファ情報を取得し、
上記イニシエータにより取得したバッファ情報に基づき、少なくとも、ターゲットのノードＩＤ情報、バッファメモリのアドレス情報及びデータの送信又は受信を特定するデータ送受信特定情報を含むデータ転送用テーブルを生成し、
上記イニシエータにより生成したデータ転送用テーブルを各ターゲットに供給し、
データの転送を指示する信号の入力により、イニシエータとターゲットとの間及びターゲットとターゲットとの間で、上記インターフェースの転送用のプロトコルに付加した所定の情報に基づくハンドシェークを行い、データ転送用テーブルに基づきデータの転送を行なうこと
を特徴とするデータ転送方法。
【請求項２】
上記バッファ情報は、少なくともバッファメモリの数とバッファメモリのアドレスが含まれていること
を特徴とする請求項１記載のデータ転送方法。
【請求項３】
上記インターフェースは、ＩＥＥＥ１３９４であり、上記インターフェースの転送用プロトコルは、シリアルバスプロトコル２（ＳＢＰ２）であること
を特徴とする請求項１記載のデータ転送方法。
【請求項４】
上記データ転送用テーブルは、さらに、データの上書きを許可するかどうかの情報が含まれていること
を特徴とする請求項１記載のデータ転送方法。
【請求項５】
上記転送用プロトコルは、データの転送が可能かどうかを示す情報、データエラーの有無を示す情報及びデータの転送が完了したことを示す情報が含まれていること
を特徴とする請求項１記載のデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、イニシエータと複数のターゲットとの間でデータの転送を行うデータ転送方法に関する。
【０００２】
【従来の技術】
現在、音響や映像などのディジタルデータを転送するのに適した高速インターフェースが求められている。既に次世代のインターフェース規格が幾つか提唱されており、コンピュータやその周辺機器だけでなく、ディジタルビデオカメラなどの家庭用機器を含めたディジタル機器間でデータを高速に転送するためのインターフェースとして、ＩＥＥＥ１３９４インターフェースを採用したディジタル機器が商品化され始めている。このインターフェース規格は、ＩＥＥＥ（Ｔｈｅ　Ｉｎｓｔｉｔｕｔｅ　ｏｆ　Ｅｌｅｃｔｒｉｃａｌ　ａｎｄ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｅｎｇｉｎｅｅｒｓ，Ｉｎｃ．；米国電気電子技術者協会）により提唱され、ＩＥＥＥ　Ｓｔｄ．１３９４−１９９５　ＩＥＥＥ　Ｓｔａｎｄａｒｄ　ｆｏｒ　ａ　Ｈｉｇｈ　Ｐｅｒｆｏｒｍａｎｃｅ　Ｓｅｒｉａｌ　Ｂｕｓとして規定されたものであり、数１００Ｍビット／秒の高速な転送速度を有しながら，同期転送や活線挿抜、自由度の高い接続トポロジをサポートするなど、一般家庭での使用も考慮した利便性の高いシリアルインターフェース規格である。
【０００３】
このようなＩＥＥＥ１３９４インターフェースを採用した技術は、例えば、特許第３０９１１８４号公報などに記載されている。上記公報にも記載されている通り、所定のデータブロックに送信先などの情報が付加されたパケットを用いてディジタルデータの伝送を行う場合、データ伝送の信頼性を高めるために、送信機器から送出されたパケットが受信機器により受信されると、受信機器が当該パケットの受信状態を表すアクノリッジＡＣＫを、送信元の送信機器へ返送し、必要に応じて当該パケットを送信機器から再送信させるように構成することが多い。例えば、ＩＥＥＥ１３９４インターフェースを介して互いに接続された第１の機器と第２の機器との間のパケット通信においても、図１１に示すように、第１の機器１から所定の動作を要求するための要求パケットが第２の機器２に送出され、第２の機器２により受信されると、第２の機器２から上記要求パケットの受信状態を表すアクノリッジＡＣＫが第１の機器１に返送される。このアクノリッジＡＣＫには、再送の必要性や受信の完了などを送信元に知らせるための情報が含まれており、例えば、再送信を要求するアクノリッジＡＣＫが上記第１の機器１により受信された場合には、同じ要求パケットが第１の機器１から第２の機器２へ再送信される。そして、上記アクノリッジＡＣＫにより受信完了が第１の機器１に知らされた場合には、第２の機器２において所定の動作が行われていることになり、第１の機器１は上記要求パケットに対応した応答パケットが第２の機器２から送信されるまで待機状態となる。そして、第２の機器２において所定の動作が完了すると、上記所定の動作の結果を含む応答パケットが第２の機器２から第１の機器１へ送信される。第１の機器１により上記応答パケットが受信されると、再送要求又は処理完了を示すアクノリッジＡＣＫが第１の機器１から第２の機器２へ返送される。この場合にも、上記アクノリッジＡＣＫが再送を要求するものであれば、第２の機器２から第１の機器１へ同じ応答パケットが再送される。また、上記アクノリッジＡＣＫが処理完了を示すものであれば、第２の機器２は次の処理に向けて開放された状態に設定される。
【０００４】
ところで、上記ＩＥＥＥ１３９４インターフェスにおけるアプリケーション・プロトコロルの一つに、ＳＢＰ−２（Ｓｅｒｉａｌ　Ｂｕｓ　Ｐｒｏｔｏｃｏｌ　２）がある。ここで、上記ＳＢＰ−２を説明するために、図１２にＩＥＥＥ１３９４インターフェスのレイヤ構造とＳＢＰ−２　との関係を示す。上記ＩＥＥＥ１３９４インターフェスのレイヤ構造は、図１２に示すように、物理層、リンク層、トランザクション層という３つの層から基本的になるが、上記ＳＢＰ−２は、トランザクション層よりも上位のトランスポート層に属するものであり、例えば、ディスク、テープ、プリンタ、スキャナ又はディジタルカメラなどの各種デバイス（以下、ノードという。）間で効率的にコマンドやデータの転送を行ったり、コマンドの動作状況及びその結果やデータの転送完了可否などの状態をＳＢＰ−２よりさらに上位のアプリケーションに通知する機能を有する。上記ＳＢＰ−２では，接続要求のログイン、接続完了のログアウトなどの管理要求コマンドやデータの読み出し／書き込みなどの実コマンドの発行を行う機能を担う、例えば、スキャナやディジタルカメラなどのノードは、イニシエータと呼ばれ、イニシエータからコマンドを受信して実際に処理を行う機能を担う例えばディスク、ＣＤ−ＲＯＭ及びプリンタなどのノードはターゲットと呼ばれ、これらイニシエータとターゲットとの間で通信が行われる。なお、ターゲットについては、厳密にはディスク、ＣＤ−ＲＯＭ及びプリンタといった実デバイスに相当する論理ユニットが単位として扱われ、ターゲットに少なくとも一つ備えられた論理ユニットとイニシエータとが対となって通信が行われる。
【０００５】
イニシエータとターゲットの論理ユニットとの間で行われる通信の手順は、図１３に示す通りである。なお、図１４はＳＢＰ−２におけるログイン要求ブロックのデータ構造を示す図であり、図１５は、ＩＥＥＥ１３９４インターフェスにおける通信パケットのフォーマットを示す図であり、図１６は、ログイン応答ブロックのデータ構造を示す図であり、図１７は、ログアウト要求ブロックのデータ構造を示す図である。図１３に示すように、イニシエータ２１は、ターゲット２２への全てのコマンドの送信に先立ち、まず通信しようとするターゲット２２の論理ユニットにログイン要求を発行する必要がある。ログイン要求ブロックのデータ構造は、図１４に示す通りである。上記ＳＢＰ−２におけるブロックのデータ構造は、ＯＲＢ（Ｏｐｅｒａｔｉｏｎ　Ｒｅｑｕｅｓｔ　Ｂｌｏｃｋｓ）と呼ばれ、図１４に示すように、管理ブロックの一種であるログイン要求ブロックのｆｕｎｃｔｉｏｎフィールドには、ログインを表す「０」が記述される。また、イニシエータ２１がログインしようとするターゲット２２の論理ユニットは、論理ユニット番号を表すｌｕｎフィールドにより指定される。このＯＲＢは、図１５に示すようなＩＥＥＥ１３９４インターフェスにおけるトランザクションパケットのデータ部に内挿され、上記トランザクションパケットにより運ばれて、当該パケットのヘッダの送信元ＩＤフィールドで指定されたイニシエータ２１から、当該パケットのヘッダの送信先ＩＤフィールドで指定されたターゲット２２に送られる。イニシエータ２１からのログイン要求パケットが受信されると、ターゲット２２の上記ｌｕｎフィールドにより指定された論理ユニットにおいて、管理ブロックを処理する管理エージェントと呼ばれる機構によって受け付けが行われる。この管理エージェントのレジスタ（ＣＳＲ、Ｃｏｎｔｒｏｌ　ａｎｄ　Ｓｔａｔｕｓ　Ｒｅｇｉｓｔｅｒ）のベースアドレスに関する情報は、コンフィグレーションＲＯＭと呼ばれるＲＯＭに予め格納されており、上記コンフィグレーションＲＯＭを参照することにより、ログイン要求パケットに対して管理エージェントに受け付けを行わせることができる。そして、上記管理エージェントにより、当該ログイン要求に対してログインを許可しても良い状態（通信が可能な状態）にあるか否かが判断され、ログインを許可しても良い状態にあれば、ターゲット２２からイニシエータ２１に当該ログイン要求パケットに対応したログイン応答が返送される。ログイン応答ブロックのデータ構造は、図１６に示す通りである。図１６に示すように、このログイン応答ブロックには、当該ログインを識別するためのｌｏｇｉｎＩＤフィールドと、以後イニシエータ２１が、このターゲット２２に対して発行するコマンド要求を受け付けてターゲット２２内で処理を行うフェッチエージェントと呼ばれる機構の上記ＣＳＲのベースアドレスを記述するためのｃｏｍｍａｎｄ　ｂｌｏｃｋ　ａｇｅｎｔフィールドとが含まれている。上記管理エージェントと異なり、上記フェッチエージェントに対しては、レジスタ内の相対的なアドレス関係は予め定められているものの、ベースアドレス自体は、ログイン毎に上記ＩＥＥＥ１３９４インターフェスにおけるアドレス空間に確保されたレジスタ空間内のいずれかの位置に割り当てられるため、イニシエータ２１がフェッチエージェントによりコマンドを実行させるためには、上記ベースアドレスが必要となる。このようにしてログインが成功すると、次にイニシエータ２１では、ログイン応答パケットに指定されたフェッチエージェントのＣＳＲのベースアドレスが参照され、当該ベースアドレスを用いてイニシエータ２１からコマンド（書き込み、読み出し及びロック）の実行要求がターゲット２２に送出される。ターゲット２２には、各ログインそれぞれに対して、論理ユニット番号ｌｕｎ、ログインオーナーＩＤ、・・・、ログインＩＤ（ｌｏｇｉｎＩＤ）を含むログイン識別子が保持されており、ターゲット２２においてコマンドの実行要求が受信されると、上記ログイン識別子から上記送信元ＩＤに対応したログインＩＤが参照され、これと対応したベースアドレスを用いてフェッチエージェントが選択されて当該コマンドが実行され、コマンドの処理が完了すると、その結果がステータスブロックを用いてイニシエータ２１に通知される。そして、上記した手順に従って必要なコマンドがターゲット２２において実行されると、イニシエータ２１はターゲット２２に対してログアウト要求を発行する。ログアウト要求ブロックのデータ構造は、図１７に示す通りである。図１７に示すように、上記ログアウト要求ブロックには、ｌｏｇｉｎＩＤフィールドが含まれており、この通信で用いられてきたｌｏｇｉｎＩＤが記述される。また、ｆｕｎｃｔｉｏｎフィールドには、ログアウトを表す「７」が記述される。ログアウト要求パケットがターゲット２２において受信されると、当該ターゲット２２において、管理エージェントにより受け付けが行われ、上記ｌｏｇｉｎＩＤに基づいて、今まで使用されていたフェッチエージェントのベースアドレスが再利用可能な状態に設定され、ログアウト処理が終了するとステータスブロックを用いてイニシエータ２１に完了通知が行われる。これにより通信が終了し、上記ターゲット２２の指定された論理ユニットが開放される。
【０００６】
また、図１８に示すようなデータ転送システム２では、上述した技術を利用してデータの転送が行なわれる。データ転送システム２は、図１８に示すように、イニシエータ２０と、ターゲット２１と、ターゲット２２と、ターゲット２３と、ターゲット２４とを備えており、各機器は、上述したＩＥＥＥ１３９４インターフェースにより接続されている。
【０００７】
また、図１８では、ターゲット２１は、イニシエータ２０と、ターゲット２２と、ターゲット２３にデータを転送し、ターゲット２２は、イニシエータ２０にデータを転送し、ターゲット２４は、ターゲット２２とターゲット２３にデータを転送することを表している。
【０００８】
【発明が解決しようとする課題】
図１８に示すように、すべてのデータは、必ずイニシエータ２０を経由しなければならないため、例えば、ターゲット２１からターゲット２２へデータの転送を行う場合でも、まずターゲット２１からイニシエータ２０にデータを転送し、イニシエータ２０からターゲット２２にデータを転送する必要があるため、転送レートを上げにくい問題がある。
【０００９】
また、ＳＢＰ２では、データの転送以外に上述したＯＲＢによる双方向のトランザクションがある。このトランザクションによりデータ転送に空白時間が生じるためにデータの転送速度が落ち、転送レートを上げにくい問題がある。
【００１０】
また、データ転送を行う際に必要となる各機器間のハンドシェイクは、少なくともＳＢＰ２の仕様の範囲である６５５３５バイトに一回行う必要があり、データ転送に時間がかかる問題がある。
【００１１】
また、ターゲットに接続された外部デバイスからデータを読み出し、読み出したデータを複数のターゲットに転送する場合、ターゲットごとに外部デバイスからデータを読み出し、各ターゲットに転送するため、ターゲット内部のバスとＩＥＥＥ１３９４上のトランザクションが複数回生じるため、データの転送レートが落ちる問題がある。
【００１２】
さらに、等時性通信を使用してデータの転送を行っている場合、従来のデータ転送方法を用いると、データにエラーが発生したときに、１ページ単位での再送信しか行えないため、リアルタイム性が損なわれる問題がある。また、上述のようなエラー処理を考慮した場合には、ひとつのターゲットにしかデータを転送することができなくなる。
【００１３】
そこで、本発明は、上述したような実情に鑑みて提案されたものであり、データの転送レートの向上ができ、転送効率が高く、かつデータ転送のリアルタイム性を確保しつつデータの再送信を行うことが可能なデータ転送方法を提案することを目的とする。
【００１４】
【課題を解決するための手段】
本発明に係るデータ転送方法は、所定の処理を行うイニシエータと複数のターゲットとがインターフェースで接続されており、上記インターフェースの転送用プロトコルに基づきイニシエータとターゲットとの間及びターゲットとターゲットと間でデータの転送を行うデータ転送方法において、上記イニシエータ及び上記ターゲットのログイン時に、データ転送する際にハンドシェークに使用する少なくともデータの送受信が行われているかどうかを判定するデータ送受信判定情報を上記転送用プロトコルに付加し、上記イニシエータは、ログイン時に上記ターゲットのバッファ情報を取得し、取得したバッファ情報に基づき、少なくとも、ターゲットのノードＩＤ情報、バッファメモリのアドレス情報及びデータの送信又は受信を特定するデータ送受信特定情報を有しているデータ転送用テーブルを生成し、生成したデータ転送用テーブルを各ターゲットに供給し、各ターゲットは、供給されたデータ転送用テーブルを記憶し、データの転送を指示する信号に応じて、イニシエータとターゲットとの間及びターゲットとターゲットとの間でデータ転送用テーブルに基づきデータの転送を開始することを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００１６】
本発明に係るデータ転送方法は、ＰＣ（ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）等の少なくとも表示部を有するイニシエータと、外部デバイスが接続されているＨＤＤ、テープドライブ又は演算モジュール等のターゲットとがＩＥＥＥ１３９４インターフェースで接続されており、ＩＥＥＥ１３９４インターフェースの転送用のプロトコルであるＳＢＰ２（Ｓｅｒｉａｌ　Ｂｕｓ　Ｐｒｏｔｏｃｏｌ　２）に基づきイニシエータとターゲットとの間及びターゲットとターゲットとの間でデータの転送を行うものであり、ログイン時に上記ターゲットのバッファ情報を取得し、取得したバッファ情報に基づき、データ転送用のテーブルを生成し、生成したデータ転送用テーブルを各ターゲットに供給し、供給されたデータ転送用テーブルをバッファに記憶し、イニシエータからのコマンド又は外部からのトリガ信号の入力により、イニシエータとターゲットとの間及びターゲットとターゲットとの間で、上記ＳＢＰ２に付加した所定の情報に基づくハンドシェークを行い、データ転送用テーブルに基づきデータの転送を行う。
【００１７】
このようなデータ転送方法を用いたシステムの一例を以下に述べる。
上記データ転送方法を適用したデータ転送システム１は、例えば、図１に示すように、イニシエータ１０と、ターゲット１１と、ターゲット１２と、ターゲット１３と、ターゲット１４とを備えており、各機器は、ＩＥＥＥ１３９４インターフェースにより接続されている。なお、接続のトポロジは、図２（ａ）及び（ｂ）に示すように、ＩＥＥＥ１３９４インターフェースの規格内のトポロジであれば良い。
【００１８】
イニシエータ１０は、例えば、ＨＤＤを搭載していない表示装置であり、ターゲット１１は、例えば、ＣＣＤカメラが外部デバイスとして接続された記憶装置であり、ターゲット１２は、例えば、ノイズを除去するノイズ除去装置であり、ターゲット１３は、例えば、データを記録するテープドライブであり、ターゲット１４は、例えば、映像処理を行う処理装置である。
【００１９】
ここで、データ転送システム１により行われるデータ転送の動作について説明する。
【００２０】
イニシエータ１０、ターゲット１１、ターゲット１２、ターゲット１３及びターゲット１４を起動した後、イニシエータ１０は、各ターゲットにログインを行う。イニシエータ１０は、各ターゲットから図３に示すようなバッファ情報を取得する。
【００２１】
ここで、バッファ情報について説明する。図３に示すバッファ情報は、ＭＳＢからＬＳＢまで、「予約」、「転送許可自ノードオフセットＨＩＧＨアドレス」、「転送許可自ノードオフセットＬＯＷアドレス」、「転送許可他ノードＩＤ」、「転送許可他ノードオフセットＨＩＧＨアドレス」、「転送許可他ノードオフセットＬＯＷアドレス」、「転送許可データサイズ」、「上書き許可ビット」、「送受信ビット」、「予約」及び「データ転送分周比」を１バッファとして構成されている。「転送許可自ノードオフセットＨＩＧＨアドレス」及び「転送許可自ノードオフセットＬＯＷアドレス」には、例えば、自ノードが、イニシエータ１０ならイニシエータ１０のアドレスが書き込まれ、「転送許可他ノードＩＤ」には、データを転送する相手のノードＩＤが書き込まれ、「転送許可他ノードオフセットＨＩＧＨアドレス」及び「転送許可他ノードオフセットＬＯＷアドレス」には、「転送許可他ノードＩＤ」に書き込んだ転送相手の機器のアドレスが書き込まれ、「転送許可データサイズ」には、例えば、ＳＢＰ２仕様の最大の範囲である６５５３５バイトが書き込まれ、「上書き許可ビット」には、上書きを許可する（１）又は許可しない（０）が書き込まれ、「送受信ビット」には、データの送信側（１）であるかデータの受信側（０）であるかが書き込まれる。なお、「転送許可データサイズ」は、後述するターゲットに内蔵されているバンクメモリの容量以内とする。
【００２２】
つぎに、イニシエータ１０が各ターゲットから図４に示すようなバッファ情報を取得した場合について説明する。なお、イニシエータ１０のノードＩＤは、「ＦＣＣ４ｈ」とし、バッファが４つあることとする。
【００２３】
イニシエータ１０は、ターゲット１１から取得したバッファ情報から、ターゲット１１のノードＩＤが「ＦＦＣ０ｈ」であり、バッファ数が「０００００００４ｈ」、すなわち４つであることを取得し、ターゲット１２から取得したバッファ情報から、ターゲット１２のノードＩＤが「ＦＦＣ１ｈ」であり、バッファ数が「０００００００４ｈ」、すなわち４つであることを取得し、ターゲット１３から取得したバッファ情報から、ターゲット１３のノードＩＤが「ＦＦＣ２ｈ」であり、バッファ数が「０００００００４ｈ」、すなわち４つであることを取得し、ターゲット１４から取得したバッファ情報から、ターゲット１４のノードＩＤが「ＦＦＣ３ｈ」であり、バッファ数が「０００００００４ｈ」、すなわち４つであることを取得する。なお、バッファ数は、各ターゲットのバッファ情報の最後尾に付加されているバッファ数表示領域から取得する。　また、バッファ数が４ということは、４つの機器とデータの転送ができることを意味しており、バッファ数に応じた数の機器とデータ転送を行うことができる。
【００２４】
イニシエータ１０は、図４のようなバッファ情報を各ターゲットから取得し、データの転送を行なうフローを予めテーブル化しておく。ここで、イニシエータ１０が例えば、図１に示すような形態でデータ転送を行う場合のデータ転送テーブルの生成について以下に述べる。なお、ターゲット１１は、接続されているデバイスから入力されたデータを、イニシエータ１０、ターゲット１２及びターゲット１３に転送する。ターゲット１２は、ターゲット１１とターゲット１４からデータが転送され転送されたデータをイニシエータ１０に転送する。ターゲット１３は、ターゲット１１とターゲット１４からデータが転送される。ターゲット１４は、イニシエータ１０、ターゲット１２及びターゲット１３にデータを転送する。イニシエータ１０は、ターゲット１１、ターゲット１２及びターゲット１４からデータが転送される。
【００２５】
イニシエータ１０は、各ノード間の情報の整合が取れるようにデータ転送用テーブルを生成する。例えば、ターゲット１１からイニシエータ１０にデータを転送する場合には、イニシエータ１０は、イニシエータ１０のバッファ１をターゲット１１のバッファ３に対応するようにし、同様に、ターゲット１１のバッファ３をイニシエータ１０のバッファ１に対応するようにデータ転送用テーブルを生成する。図５に示すように、イニシエータ１０は、イニシエータ１０のバッファ１の「転送許可自ノードオフセットＬＯＷアドレス」に、「０００００１００ｈ」を書き込み、「転送許可他ノードＩＤ」に、ターゲット１１のノードＩＤである「ＦＦＣ０ｈ」を書き込み、「転送許可他ノードオフセットＬＯＷアドレス」に、ターゲット１１のバッファ３の番地である「Ｃ００００３００ｈ」を書き込み、「転送許可データサイズ」に、「８０００ｈ」を書き込み、「上書き許可ビット」に、上書きを許可しない「０」を書き込み、「送受信ビット」に、データの受信側である「０」を書き込む。また、イニシエータ１０は、ターゲット１１のバッファ３の「転送許可自ノードオフセットＬＯＷアドレス」に、「Ｃ００００３００ｈ」を書き込み、「転送許可他ノードＩＤ」に、イニシエータ１０のノードＩＤである「ＦＦＣ４ｈ」を書き込み、「転送許可他ノードオフセットＬＯＷアドレス」に、イニシエータ１０のバッファ１の番地である「０００００１００ｈ」を書き込み、「転送許可データサイズ」に、「８０００ｈ」を書き込み、「上書き許可ビット」に、上書きを許可しない「０」を書き込み、「送受信ビット」に、データの送信側である「１」を書き込む。イニシエータ１０は、他のデータ転送についても上述のようにして、データ転送用テーブルを生成する。
【００２６】
イニシエータ１０は、図５のように生成したデータ転送用テーブルを各ターゲットに供給する。各ターゲットは、図６に示すように、イニシエータ１０から供給されたデータ転送用テーブルをバッファに記憶する。なお、イニシエータ１０は、すべてのデータ転送用テーブルを保持し、ターゲット１１は、ターゲット１１用のデータ転送用テーブルを保持し、ターゲット１２は、ターゲット１２用のデータ転送用テーブルを保持し、ターゲット１３は、ターゲット１３用のデータ転送用テーブルを保持し、ターゲット１４は、ターゲット１４用のデータ転送用テーブルを保持する。
【００２７】
このようにしてデータ転送システム１では、データを実際に転送する前にイニシエータ１０でデータ転送用テーブルを生成し、生成したデータ転送用テーブルを各ターゲットに供給しておく。
【００２８】
つぎに、各ターゲットの構成について図７を用いて説明する。データ転送システム１が備えるターゲットは、図７に示すように、ＣＰＵと、バンクメモリＡと、バンクメモリＢとを有する。また、ターゲットは、Ａ部を介して外部デバイスが接続され、Ｂ部を介してイニシエータ１０及び各ターゲットに接続されている。
【００２９】
本願発明のデータ転送方法を適用したデータ転送システム１では、上述したデータ転送用テーブルをデータの転送を行なう前に生成し、生成したデータ転送用テーブルを各機器に持たせておくので、ターゲットから他のターゲットにデータを転送する場合には、イニシエータ１０を経由することなくデータの転送を行なうことができる。
【００３０】
また、本発明のデータ転送方法を適用したデータ転送システム１のターゲットは、同一のデータを複数の機器に転送する場合には、Ａ部を介してデバイスからデータを読み出し、読み出したデータをバンクメモリＡ又はバンクメモリＢに一時記憶させておき、バンクメモリＡ又はバンクメモリＢからＢ部を介して接続されている各機器にデータを転送する。こうすることにより、データの転送レートの向上を図ることができる。
【００３１】
また、ターゲットでは、例えば、バンクメモリＡにデータを一時記憶し、バンクメモリＡからＢ部を介して各機器にデータを転送しているときに、Ａ部を介してデバイスから次のデータを読み出し、読み出したデータをメモリバンクＢに一時記憶させておき、バンクメモリＡによるデータ転送の終了後にデータ転送を行うメモリをバンクメモリＢに切り換え、切り換えたバンクメモリＢからＢ部を介して各機器にデータ転送する。このように、バンクメモリを効率よく切り換えることにより、さらにデータの転送レートの向上を図ることができる。なお、バンクメモリＡ及びバンクメモリＢは、１パケットを６５５３５バイトとして各機器にデータ転送する。
【００３２】
また、データの転送側であるターゲットから各機器にデータを転送する場合には、データ転送を行う際のハンドシェークが必要となるが、本発明のデータ転送方法を適用したデータ転送システム１では、図８に示すように、ＳＢＰ２　ｄｅｐｅｎｄｅｎｔに情報を付加し、この付加した情報を取得することでハンドシェークを行う。ＳＢＰ２に付加する情報には、図８に示すように、データの送信が可能かどうかを示す「ｄａｔａ　ｓｅｎｄｉｎｇ」と、データの受信状態を示す「ｄａｔａ　ｒｅｃｅｉｖｉｎｇ」と、データ転送のエラーを示す「ｔｒａｎｓｆｅｒ　ｅｒｒｏｒ」と、データ転送が完了したことを示す「ｒｅｃｅｉｖｅｄ　ｃｏｕｎｔ」とが含まれている。また、ＳＢＰ２に付加する情報は、データ容量として８バイトを確保している。
【００３３】
なお、従来のデータ転送システムでは、ターゲット１１からイニシエータ１０にデータを転送する場合、以下のように転送を行っていた。
（ａ−１）イニシエータ１０は、ターゲット１１にＢ部を介してデータの転送を要求するコマンドを発行する。
（ａ−２）ターゲット１１は、上記コマンドに応じてデバイスからＡ部を介してデータを読み出し、メモリに記憶する。
（ａ−３）ターゲット１１は、メモリに記憶したデータをパケット化し、パケット化したデータをＢ部を介してイニシエータ１０に転送する。
（ａ−４）イニシエータ１０は、上記パケット化されたデータの転送終了後に、ターゲット１１にＢ部を介して次のデータの転送を要求するコマンドを発行する。以下、（ａ−２）〜（ａ−３）を繰り返す。
【００３４】
このような転送方法だと、１パケットのデータを転送する度にハンドシェークが必要となりデータの転送に時間がかかってしまう。
【００３５】
また、従来のデータ転送システムでは、ターゲット１１からイニシエータ１０とターゲット１２にデータを転送する場合、以下のように転送を行っていた。
（ｂ−１）イニシエータ１０は、ターゲット１１にＢ部を介してデータの転送を要求するコマンドを発行する。
（ｂ−２）ターゲット１１は、上記コマンドに応じてデバイスからＡ部を介してデータを読み出し、メモリに記憶する。
（ｂ−３）ターゲット１１は、メモリに記憶したデータをパケット化し、パケット化したデータをＢ部を介してイニシエータ１０に転送する。
（ｂ−４）イニシエータ１０は、上記パケット化されたデータの転送終了後に、ターゲット１１にＢ部を介して（ｂ−３）と同一のデータの転送を要求するコマンドを発行する。
（ｂ−５）ターゲット１１は、上記コマンドに応じてデバイスからＡ部を介して先ほどと同一のデータを読み出し、メモリに記憶する。
（ｂ−６）ターゲット１１は、メモリに記憶したデータをパケット化し、パケット化したデータをＢ部を介してイニシエータ１０に転送する。
（ｂ−７）イニシエータ１０は、ターゲット１２にデータを転送を行う旨のコマンドを発行する。
（ｂ−８）イニシエータ１０は、ターゲット１２からデータ転送を許可する旨のコマンドを受信し、（ｂ−６）で受信したデータをターゲット１２に転送する。
【００３６】
このように従来のデータ転送システムでは、ターゲットから他のターゲットにデータを転送する場合でも、必ずイニシエータ１０を経由しなければならなず、転送レートの向上を図るのに困難があった。
【００３７】
また、従来のデータ転送システムでは、（ｂ−４）〜（ｂ−５）に示したように、ターゲット１１は、イニシエータ１０に転送したデータと同一のデータを再びデバイスからＡ部を介して読み出し、読み出したデータをメモリに記憶するトランザクションが必要となる。したがって、従来のデータ転送システムでは、データを転送する機器がＢ部を介して接続されている数のトランザクションが必要となり、データの転送レートの向上を図るのに困難があった。
【００３８】
ここで、データ転送システム１により、上述したＳＢＰ２の付加情報を利用したハンドシェークにより、データ送信側の機器からデータ受信側の機器にデータを転送する方法について、図９及び図１０に示すフローチャートを用いて説明する。なお、以下では、ターゲット１１をデータの送信を行う機器とし、イニシエータ１０、ターゲット１２及びターゲット１３をデータの受信を行う機器とする。
【００３９】
ステップＳＴ１において、ターゲット１１は、データの送信を行う機器のＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」に「１」を書き込む。例えば、ターゲット１１は、イニシエータ１０のＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」に「１」を書き込むことにより、これからデータの送信を行う旨をイニシエータ１０に伝え、イニシエータ１０を予約する。
【００４０】
ステップＳＴ２において、ターゲット１１は、データの送信を行うすべての機器のＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」に「１」を書き込んだかどうかを判断する。ターゲット１１は、例えば、データ転送用テーブルを参照することにより、データの送信を行う機器を特定し、特定した機器のＳＢＰ２の付加情報「ｄａｔａｓｅｎｄｉｎｇ」を確認する。データの送信を行うすべての機器のＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」に「１」を書き込んでいない場合には、ステップＳＴ１に戻り、書き込みが完了している場合には、ステップＳＴ３に進む。ＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」が「０」とは、現在、他の機器から予約されていないことを意味する。
【００４１】
ステップＳＴ３において、ターゲット１１は、データの送信を行うすべての機器のＳＢＰ２の付加情報「ｄａｔａ　ｒｅｃｅｉｖｉｎｇ」が「１」であるか「０」であるかを判断する。なお、ＳＢＰ２の付加情報「ｄａｔａ　ｒｅｃｅｉｖｉｎｇ」は、「１」であれば、現在、他の機器との間でデータの転送が行われていることを意味し、「０」であれば、現在、他の機器との間ではデータの転送が行われていないことを意味する。
【００４２】
ＳＢＰ２の付加情報「ｄａｔａ　ｒｅｃｅｉｖｉｎｇ」が「１」である場合には、ステップＳＴ４に進み、ＳＢＰ２の付加情報「ｄａｔａ　ｒｅｃｅｉｖｉｎｇ」が「０」である場合には、ステップＳＴ５に進む。
【００４３】
ステップＳＴ４において、ターゲット１１は、データの送信を行う機器を他の機器に変更し、ステップＳＴ３に戻る。
【００４４】
ステップＳＴ５において、ターゲット１１は、データの送信を行う機器が上書きの禁止をされているものかどうかを判断する。上書きが禁止されている場合には、ステップＳＴ６に進み、上書きが禁止されていない場合には、ステップＳＴ７に進む。
【００４５】
ステップＳＴ６において、ターゲット１１は、データの送信を行う機器のＳＢＰ２の付加情報「ｒｅｃｅｉｖｅｄ　ｃｏｕｎｔ」を参照し、値が以前と同一かどうかを判断する。ＳＢＰ２の付加情報「ｒｅｃｅｉｖｅｄ　ｃｏｕｎｔ」が以前と同一の場合には、ステップＳＴ４に戻り、ＳＢＰ２の付加情報「ｒｅｃｅｉｖｅｄ　ｃｏｕｎｔ」が以前と異なっている場合には、ステップＳＴ７に進む。なお、ＳＢＰ２の付加情報「ｒｅｃｅｉｖｅｄ　ｃｏｕｎｔ」が「０」のときには、異なっていることとし、ステップＳＴ７に進む。
【００４６】
ステップＳＴ７において、ターゲット１１は、データの送信を行う。なお、データの送信が行われた各機器では、データを受信した後に、所定のエラーチェックを行い、エラーが発生しているかどうかを確認し、エラーが発生している場合には、ＳＢＰ２の付加情報「ｔｒａｎｓｆｅｒ　ｅｒｒｏｒ」に「１」を書き込み、エラーが発生した旨を記しておく。
【００４７】
ステップＳＴ８において、ターゲット１１は、ステップＳＴ７によるデータの送信の完了後、データの送信を行った機器のＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」に「０」を書き込む。
【００４８】
ステップＳＴ９において、ターゲット１１は、データの送信を行った機器のＳＢＰ２の付加情報「ｒｅｃｅｉｖｅｄ　ｃｏｕｎｔ」を変更する。
【００４９】
ステップＳＴ１０において、ターゲット１１は、データの送信を行うすべての機器にデータを送信したかどうかを判断する。データの送信が完了していない機器がある場合には、ステップＳＴ４に戻り、すべての機器にデータの送信が完了している場合には、ステップＳＴ１１に進む。なお、ターゲット１１では、送信する１回のデータ量は１パケット（最大、６５５３５バイト）である。
【００５０】
ステップＳＴ１１において、ターゲット１１は、データの送信を行ったすべての機器のＳＢＰ２の付加情報「ｔｒａｎｓｆｅｒ　ｅｒｒｏｒ」を確認し、送信エラーがあったかどうかを判断する。送信エラーが生じている場合には、ステップＳＴ１２に進み、送信エラーが生じていない場合には、ステップＳＴ１５に進む。
【００５１】
ステップＳＴ１２において、ターゲット１１は、データを再送信を行う機器のＳＢＰ２の付加情報「ｄａｔａ　ｓｅｎｄｉｎｇ」に「１」を書き込む。なお、データの再送信を行う際に、再送信を行う機器のＳＢＰ２の付加情報「ｔｒａｎｓｆｅｒ　ｅｒｒｏｒ」を「０」にする。
【００５２】
ステップＳＴ１３において、ターゲット１１は、データの再送信を行う。なお、データの再送信が行われた機器では、データを受信した後に、所定のエラーチェックを行い、エラーが発生しているかどうかを確認し、エラーが発生している場合には、ＳＢＰ２の付加情報「ｔｒａｎｓｆｅｒ　ｅｒｒｏｒ」に「１」を書き込み、エラーが発生した旨を記しておく。
【００５３】
ステップＳＴ１４において、ターゲット１１は、ステップＳＴ１３によるデータの再送信の完了後、データの再送信を行った機器のＳＢＰ２の付加情報「ｄａｔａｓｅｎｄｉｎｇ」に「０」を書き込む。データの再送信を行った機器がデータを取り込むのを待ちステップＳＴ１１に戻る。
【００５４】
ステップＳＴ１５において、ターゲット１１は、すべてのデータの送信が完了したかどうかを判断する。すべてのデータの送信が完了していない場合には、ステップＳＴ１に戻る。なお、次のデータを各機器に送信する場合には、上述したバンクメモリの切り換えにより行なうこととする。
【００５５】
このようにして、本発明に係るデータ転送方法を適用したデータ転送システム１は、ＩＥＥＥ１３９４インターフェースで接続されたイニシエータ１０と複数のターゲットとの間及びターゲット間でのデータ転送を行う際に、予めデータ転送を行なうためのテーブルを生成し、上記テーブルに従ってデータ転送を行ない、また、ＩＥＥＥ１３９４インターフェースの転送用のプロトコル（ＳＢＰ２）に付加した情報に応じてハンドシェークを行なうので、従来必要だったデータ転送中のＯＲＢによるハンドシェークによる付加を軽減することができるので、データの転送レートを向上することができ、また、ターゲットからターゲットへ直接データの転送を行なうことができるので、標準のＳＢＰ２を使用してターゲットからターゲットにデータを転送する場合に比べて、転送効率が最大で２倍に向上することができる。
【００５６】
また、本発明に係るデータ転送方法を適用したデータ転送システム１は、上述に加え、ターゲット内に複数のバンクメモリを備え、同一データの転送時に、上記バンクメモリから各機器へデータの転送を行なうので、同一のデータを複数の機器に転送する場合、ターゲット内部におけるデバイスからバンクメモリへのデータの転送が一回で済み、ターゲット内部のハードウェアがデータ転送レートが低い場合でもＩＥＥＥ１３９４インターフェース上では、データの転送レート（ターゲット内部のバスの能力×相手先のノードの数）を向上することが可能となる。
【００５７】
また、本発明に係るデータ転送方法を適用したデータ転送システム１は、データの上書きを許可するかどうかの情報を含んだデータ転送用テーブルを生成するので、特定のターゲットのみデータを間引くことができ、処理能力の低いＣＰＵでのデータの表示等の負荷の軽減を行なうことができる。
【００５８】
さらに、データ転送システム１は、データエラーの有無を示す情報及びデータの転送が完了したことを示す情報をＩＥＥＥ１３９４インターフェースの転送用のプロトコル（ＳＢＰ２）に付加するので、データが転送された機器において、データの転送が行なわれた直後に転送のエラー処理を行い、当該エラー処理の結果をＳＢＰ２に書き込むことができるので、データ転送のリアルタイム性を確保しつつデータの再転送を行なうことができ、また、送信先の機器にデータを取りこぼすことなくデータを送信することができる。
【００５９】
【発明の効果】
本発明に係るデータ転送方法は、所定の処理を行うイニシエータと複数のターゲットとがインターフェースで接続されており、上記インターフェースの転送用プロトコルに基づきイニシエータとターゲットとの間及びターゲットとターゲットと間でデータの転送を行うデータ転送方法であって、イニシエータ及びターゲットのログイン時に、データ転送する際にハンドシェークに使用する少なくともデータの送受信が行われているかどうかを判定するデータ送受信判定情報を上記転送用プロトコルに付加し、上記イニシエータは、　ログイン時に上記ターゲットのバッファ情報を取得し、取得したバッファ情報に基づき、少なくとも、ターゲットのノードＩＤ情報、バッファメモリのアドレス情報及びデータの送信又は受信を特定するデータ送受信特定情報を有しているデータ転送用テーブルを生成し、生成したデータ転送用テーブルを各ターゲットに供給し、各ターゲットは、供給されたデータ転送用テーブルを記憶し、データの転送を指示する信号に応じて、イニシエータとターゲットとの間及びターゲットとターゲットとの間でデータ転送用テーブルに基づきデータの転送を開始するので、データの転送レートを向上することができ、転送効率が高く、かつデータ転送のリアルタイム性を確保しつつデータの再送信を行なうことができる。
【図面の簡単な説明】
【図１】本発明のデータ転送方法を適用したデータ転送システムの構成を示すブロック図である。
【図２】ＩＥＥＥ１３９４インターフェースによる接続のトポロジの一例を示す図である。
【図３】本発明に係るバッファ情報のデータ構造を示す図である。
【図４】イニシエータ及び各ターゲットが有するバッファ情報の具体的なデータ構造を示す図である。
【図５】イニシエータにより生成されるデータ転送用テーブルのデータ構造を示す図である。
【図６】各ターゲットがイニシエータにより生成されたデータ転送用テーブルをバッファに記憶した際のデータ構造を示す図である。
【図７】本発明のデータ転送方法を適用したデータ転送システムが有するターゲットの構成を示すブロック図である。
【図８】所定の情報を付加したＳＢＰ２のデータ構造を示す図である。
【図９】本発明のデータ転送方法を適用したデータ転送システムによるデータ転送を示す第１のフローチャートである。
【図１０】本発明のデータ転送方法を適用したデータ転送システムによるデータ転送を示す第２のフローチャートである。
【図１１】パケット通信を行なう複数の機器間で行なわれる通信シーケンスの一例を説明するための図である。
【図１２】ＩＥＥＥ１３９４インターフェースのレイヤ構造とＳＢＰ２との関係を示す図である。
【図１３】イニシエータとターゲットの論理ユニットとの間で行なわれる通信手順を説明するための図である。
【図１４】ＳＢＰ２におけるログイン要求ブロックのデータ構造を示す図である。
【図１５】ＩＥＥＥ１３９４インターフェースにおける通信パケットのフォーマットを示す図である。
【図１６】ログイン応答ブロックのデータ構造を示す図である。
【図１７】ログアウト要求ブロックのデータ構造を示す図である。
【図１８】従来のデータ転送システムの構成を示すブロック図である。
【符号の説明】
１　データ転送システム、１０　イニシエータ、１１，１２，１３，１４　ターゲット
【図１】
2004013634.tif 000003
【図２】
2004013634.tif 000004
【図３】
2004013634.tif 000005
【図４】
2004013634.tif 000006
【図５】
2004013634.tif 000007
【図６】
2004013634.tif 000008
【図７】
2004013634.tif 000009
【図８】
2004013634.tif 000010
【図９】
2004013634.tif 000011
【図１０】
2004013634.tif 000012
【図１１】
2004013634.tif 000013
【図１２】
2004013634.tif 000014
【図１３】
2004013634.tif 000015
【図１４】
2004013634.tif 000016
【図１５】
2004013634.tif 000017
【図１６】
2004013634.tif 000018
【図１７】
2004013634.tif 000019
【図１８】
2004013634.tif 000020