(57)【要約】【課題】フローコントロールが簡単で、データの分割および再構成が容易なデータ転送装置を提供する。【解決手段】送信装置から受信装置に対して接続を要求すると（２８０１）、受信装置は、書き込み可能なデータウインドウのアドレスとサイズとを応答する（２８０２）。送信装置はその通知に応じてデータウインドウにデータを書き込む（２８０３、２８０４）。受信装置は、メモリ空間を更に確保すると、それをウインドウ通知２８０６により送信装置に通知する。送信装置は受信装置から通知されるデータウインドウに従って、データを送信が終了するまで書き込む。【選択図】図２８
2004064665.tif 000002
【特許請求の範囲】
【請求項１】
メモリマップバスにより接続された第１の装置および第２の装置を有するデータ転送システムであって、
前記第１の装置は、
前記メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変にデータ領域を配置する配置手段と、
前記配置手段により配置した領域のアドレスおよびサイズ情報を前記第２の装置に通知する通知手段とを備え、
前記第２の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記第１の装置における前記データ領域を介して前記第１の装置との間においてデータ転送を遂行することを特徴とするデータ転送システム。
【請求項２】
前記第１の装置は、書き込み可能なデータ領域を前記配置手段により配置して前記通知手段によりそのアドレス及びサイズ情報を前記第２の装置に通知し、前記第２の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域にデータを書き込むことで、前記第２の装置から前記第１の装置に対するデータ転送を遂行することを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
前記第２の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第１の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成することを特徴とする請求項２に記載のデータ転送システム。
【請求項４】
前記第１の装置は、前記データ領域にデータを書き込んで、前記通知手段によりそのアドレス及びサイズ情報を前記第２の装置に通知し、前記第２の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域からデータを読み込むことで、前記第１の装置から前記第２の装置に対するデータ転送を遂行することを特徴とする請求項１に記載のデータ転送システム。
【請求項５】
前記第１の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第２の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成することを特徴とする請求項４に記載のデータ転送システム。
【請求項６】
前記第１の装置はさらに、前記配置手段により配置したデータ領域を解除する解除手段を備え、前記配置手段による配置と前記解除手段による解除との繰り返しにより前記データ領域をノードアドレス空間内で移動させることを特徴とする請求項１乃至５のいずれか１項に記載のデータ転送システム。
【請求項７】
前記メモリマップバスはＩＥＥＥ１３９４バスであり、前記通知手段による通知及び前記データ転送は、ＩＥＥＥ１３９４インターフェースのトランザクションレイヤにより提供されるトランザクションで行われることを特徴とする請求項１に記載のデータ転送システム。
【請求項８】
メモリマップバスにより送信装置と接続された受信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置する配置手段と、
前記領域のアドレスおよびサイズ情報を前記送信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを受信する受信手段と
を備えることを特徴とする受信装置。
【請求項９】
メモリマップバスにより受信装置と接続された送信装置であって、
前記受信装置よりアドレスおよびサイズ情報を受信する受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域にデータを書き込むことでデータを送信する送信手段と
を備えることを特徴とする送信装置。
【請求項１０】
メモリマップバスにより受信装置と接続された送信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置し、該領域に送信データを書き込む手段と、
前記領域のアドレスおよびサイズ情報を前記受信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを送信する送信手段と
を備えることを特徴とする送信装置。
【請求項１１】
メモリマップバスにより送信装置と接続された受信装置であって、
前記送信装置よりアドレスおよびサイズ情報を受信する第１受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域からデータを読み出すことでデータを受信する第２受信手段と
を備えることを特徴とする受信装置。
【請求項１２】
メモリマップバスにより送信装置と接続された受信装置の制御方法であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置する配置工程と、
前記領域のアドレスおよびサイズ情報を前記送信装置に通知する通知工程と、
前記領域に前記送信装置により書き込まれたデータを受信する受信工程と
を備えることを特徴とする受信装置の制御方法。
【請求項１３】
メモリマップバスにより受信装置と接続された送信装置の制御方法であって、
前記受信装置よりアドレスおよびサイズ情報を受信する受信工程と、
前記受信工程により受信した前記アドレス及びサイズ情報により特定される領域にデータを書き込むことでデータを送信する送信手段と
を備えることを特徴とする送信装置の制御方法。
【請求項１４】
メモリマップバスにより受信装置と接続された送信装置の制御方法であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置し、該領域に送信データを書き込む工程と、
前記領域のアドレスおよびサイズ情報を前記受信装置に通知する通知工程と、
前記領域に前記送信装置により書き込まれたデータを送信する送信工程と
を備えることを特徴とする送信装置の制御方法。
【請求項１５】
メモリマップバスにより送信装置と接続された受信装置の制御工程であって、
前記送信装置よりアドレスおよびサイズ情報を受信する第１受信工程と、
前記受信工程により受信した前記アドレス及びサイズ情報により特定される領域からデータを読み出すことでデータを受信する第２受信工程と
を備えることを特徴とする受信装置の制御方法。
【請求項１６】
請求項１２または１５のいずれか１項に記載の受信装置の制御方法をコンピュータにより実現するためのコンピュータプログラム。
【請求項１７】
請求項１３または１４のいずれか１項に記載の送信装置の制御方法をコンピュータにより実現するためのコンピュータプログラム。
【請求項１８】
請求項１６または１７のいずれか１項に記載のコンピュータプログラムを記録したコンピュータ可読記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばメモリマップバス等を介して接続してデータ転送を行うデータ転送装置および方法に関する。特にＩＥＥＥ１３９４バスを介して接続しデータ転送を行うデータ転送装置及び送信装置及び受信装置及びそれらの制御方法に関する。
【０００２】
【従来の技術】
従来、メモリマップバス特にＩＥＥＥ１３９４バスを用いた転送方式として、シン（Ｔｈｉｎ）プロトコル、ＡＶ／Ｃアシンクロナスコネクション（ＡＶ／Ｃ　Ａｓｙｎｃｈｒｏｎｏｕｓ　Ｃｏｎｎｅｃｔｉｏｎ）、ＳＢＰ２などがあった。シンプロトコルではネゴシエーションでデータ転送ウィンドウのアドレスとサイズが固定されている。ＡＶ／Ｃアシンクロナスコネクションのセグメントバッファ（Ｓｅｇｍｅｎｔ　Ｂｕｆｆｅｒ）もアドレス・サイズはあらかじめ固定されている。ＳＢＰ２では、データ領域等はＯＲＢで指定可能であるため可変だが、領域の転送が完了しないうちにダイナミックに領域を変化させることはない。なおメモリマップバスとは、マッピングされたメモリ空間に対してデータの書き込み及び読み出しが行えるアーキテクチャのことである。
【０００３】
【発明が解決しようとする課題】
送信装置の上のたとえばファイルのような連続した一塊のデータを受信装置に簡易に転送しようとする場合に、上記従来例においては、以下のような問題点がある。シンプロトコルではネゴシエーションでデータ転送ウィンドウ（セグメントレジスタ）のアドレスとサイズを固定して、転送するデータのサイズがこのサイズを超える場合には、データをセグメントに分割する必要があり、各セグメントにはセグメントヘッダを付加する必要がある。ＡＶ／Ｃアシンクロナスコネクションのセグメントバッファもアドレスはあらかじめ固定しており、送信装置は、受信装置がセグメントバッファのデータをすべて処理するまで、次のデータの転送をはじめられない。ＳＢＰ２ではＯＲＢで領域は可変だが、ＯＲＢで指定されている領域の転送が完了しないうちにダイナミックにその領域のアドレスをスライドさせることはないので、連続データを一度に転送しようとすると非常に大きな内部メモリ資源が必要になる。
【０００４】
このように、大量のデータ転送にあたっては、いずれの転送方式によっても、転送処理のためのオーバーヘッドが生じたり、あるいは大量のメモリ資源が必要となるなどの問題が生じていた。
【０００５】
本発明は上記従来例に鑑みてなされたもので、フローコントロールが簡単で、データの分割および再構成が容易なデータ転送装置及び送信装置及び受信装置及びそれらの制御方法を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成を備える。
【０００７】
メモリマップバスにより接続された第１の装置および第２の装置を有するデータ転送システムであって、
前記第１の装置は、
前記メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変にデータ領域を配置する配置手段と、
前記配置手段により配置した領域のアドレスおよびサイズ情報を前記第２の装置に通知する通知手段とを備え、
前記第２の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記第１の装置における前記データ領域を介して前記第１の装置との間においてデータ転送を遂行する。
【０００８】
更に好ましくは、前記第１の装置は、書き込み可能なデータ領域を前記配置手段により配置して前記通知手段によりそのアドレス及びサイズ情報を前記第２の装置に通知し、前記第２の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域にデータを書き込むことで、前記第２の装置から前記第１の装置に対するデータ転送を遂行する。
【０００９】
更に好ましくは、前記第２の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第１の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成する。
【００１０】
更に好ましくは、前記第１の装置は、前記データ領域にデータを書き込んで、前記通知手段によりそのアドレス及びサイズ情報を前記第２の装置に通知し、前記第２の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域からデータを読み込むことで、前記第１の装置から前記第２の装置に対するデータ転送を遂行する。
【００１１】
更に好ましくは、前記第１の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第２の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成する。
【００１２】
更に好ましくは、前記第１の装置はさらに、前記配置手段により配置したデータ領域を解除する解除手段を備え、前記配置手段による配置と前記解除手段による解除との繰り返しにより前記データ領域をノードアドレス空間内で移動させる。
【００１３】
更に好ましくは、前記メモリマップバスはＩＥＥＥ１３９４バスであり、前記通知手段による通知及び前記データ転送は、ＩＥＥＥ１３９４インターフェースのトランザクションレイヤにより提供されるトランザクションで行われる。
【００１４】
あるいは、メモリマップバスにより送信装置と接続された受信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置する配置手段と、
前記領域のアドレスおよびサイズ情報を前記送信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを受信する受信手段とを備える。
【００１５】
あるいは、メモリマップバスにより受信装置と接続された送信装置であって、
前記受信装置よりアドレスおよびサイズ情報を受信する受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域にデータを書き込むことでデータを送信する送信手段とを備える。
【００１６】
あるいは、メモリマップバスにより受信装置と接続された送信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置し、該領域に送信データを書き込む手段と、
前記領域のアドレスおよびサイズ情報を前記受信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを送信する送信手段とを備える。
【００１７】
あるいは、メモリマップバスにより送信装置と接続された受信装置であって、
前記送信装置よりアドレスおよびサイズ情報を受信する第１受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域からデータを読み出すことでデータを受信する第２受信手段とを備える。
【００１８】
この構成により、メモリマップバスのノードアドレス空間上に、データ転送のための領域の通知によりフローコントロールを簡単にし、転送データのアドレスとノードアドレス空間のアドレスを１対１に対応させることにより、送信時のデータ分割、受信後のデータ再構成を容易にして、簡易なデータ転送装置を提供することができる。
【００１９】
【発明の実施の形態】
（第１の実施の形態）
本発明の、第１の実施の形態として、送信装置と受信装置をＩＥＥＥ１３９４バスで接続したデータ転送システムを説明する。図１は、本実施の形態を示すブロック図である。図中、１は送信装置であり、２は受信装置であり、３はＩＥＥＥ１３９４ケーブルである。送信装置１は、システムバス１１を介して互いに接続するＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、外部装置１５、ＩＥＥＥ１３９４インターフェース１６からなり、ＣＰＵ１２はＲＯＭ１３に格納されたプログラムに基づいて、ＲＡＭ１３を作業域として使って、ストレージ装置である外部装置１５に格納されたファイルを、ＩＥＥＥ１３９４インターフェース１６を介して受信装置に送信する。受信装置２は、システムバス２１を介して互いに接続するＣＰＵ２２、ＲＯＭ２３、ＲＡＭ２４、外部装置２５、ＩＥＥＥ１３９４インターフェース２６からなり、ＣＰＵ２２はＲＯＭ２３に格納されたプログラムに基づいて、ＲＡＭ２３を作業域として使って、ストレージ装置である外部装置２５に、ＩＥＥＥ１３９４インターフェース２６を介して送信装置より受信したファイルを格納する。送信装置のＩＥＥＥ１３９４インターフェース１６と受信装置のＩＥＥＥ１３９４インターフェース２６はＩＥＥＥ１３９４ケーブル３を介して互いに接続する。
【００２０】
ここで本実施の形態において用いるＩＥＥＥ１３９４の技術について、その概要を説明する。
【００２１】
〈ＩＥＥＥ１３９４の技術の概要〉
以下、本実施例のデジタルインタフェースに適用されるＩＥＥＥ１３９４−１９９５規格の技術について簡単に説明する。尚、ＩＥＥＥ１３９４−１９９５規格（以下、ＩＥＥＥ１３９４規格）についての詳細は、１９９６年の８月３０日にＩＥＥＥ（Ｔｈｅ　Ｉｎｓｔｉｔｕｔｅ　ｏｆ　Ｅｌｅｃｔｒｉｃａｌ　ａｎｄ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｅｎｇｉｎｅｅｒｓ，　Ｉｎｃ．）から出版された「ＩＥＥＥ　Ｓｔａｎｄａｒｄ　ｆｏｒ　ａ　Ｈｉｇｈ　Ｐｅｒｆｏｒｍａｎｃｅ　Ｓｅｒｉａｌ　Ｂｕｓ」に記述されている。
【００２２】
（１）概要
図２にＩＥＥＥ１３９４規格に準拠したデジタルインタフェース（以下、１３９４インタフェース）を具備するノードにより構成される通信システム（以下、１３９４ネットワーク）の一例を示す。１３９４ネットワークは、シリアルデータの通信可能なバス型ネットワークを構成するものである。
【００２３】
図２において、各ノードＡ〜Ｆは、ＩＥＥＥ１３９４規格に準拠した通信ケーブルを介して接続されている。これらのノードＡ〜Ｈは、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）、デジタルＶＴＲ（Ｖｉｄｅｏ　Ｔａｐｅ　Ｒｅｃｏｒｄｅｒ）、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｉｄｅｏ　Ｄｉｓｃ）プレーヤ、デジタルカメラ、ハードディスク、モニタ等の電子機器である。
１３９４ネットワークの接続方式は、ディジーチェーン方式とノード分岐方式とに対応しており、自由度の高い接続を可能としている。
【００２４】
又、１３９４ネットワークでは、例えば、既存の機器を削除したり、新たな機器を追加したり、既存の機器の電源をＯＮ／ＯＦＦしたりした場合に、自動的にバスリセットを行う。このバスリセットを行うことにより、１３９４ネットワークは、新たな接続構成の認識と各機器に対するＩＤ情報の割り当てとを自動的に行うことができる。この機能によって、１３９４ネットワークは、ネットワークの接続構成を常時認識することができる。
【００２５】
又、１３９４ネットワークは、他の機器から転送されたデータを中継する機能を有している。この機能により、全ての機器がバスの動作状況を把握することができる。
【００２６】
又、１３９４ネットワークは、Ｐｌｕｇ＆Ｐｌａｙと呼ばれる機能を有している。この機能により、全ての機器の電源をＯＦＦにすることなく、接続するだけで自動に接続機器を認識することができる。
【００２７】
又、１３９４ネットワークは、１００／２００／４００Ｍｂｐｓのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【００２８】
更に、１３９４ネットワークは、２つの異なるデータ転送方式（即ち、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードとＩｓｏｃｈｒｏｎｏｕｓ転送モード）に対応している。
【００２９】
Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードは、必要に応じて非同期に転送することが要求されるデータ（即ち、コントロール信号やファイルデータ等）を転送する際に有効である。又、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、所定量のデータを一定のデータレートで連続的に転送することが要求されるデータ（即ち、ビデオデータやオーディオデータ等）を転送する際に有効である。
Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードとＩｓｏｃｈｒｏｎｏｕｓ転送モードとは、各通信サイクル（通常１サイクルは、１２５μＳ）内において、混在させることが可能である。各転送モードは、サイクルの開始を示すサイクル・スタート・パケット（以下、ＣＳＰ）の転送後に実行される。
【００３０】
尚、各通信サイクル期間において、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードよりも優先順位が高く設定されている。又、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードの転送帯域は、各通信サイクル内で保証されている。
【００３１】
（２）アーキテクチャ
次に、図３を用いて１３９４インタフェースの構成要素を説明する。
１３９４インタフェースは、機能的に複数のレイヤ（階層）から構成されている。図３において、１３９４インタフェースは、ＩＥＥＥ１３９４規格に準拠した通信ケーブル３０１を介して他のノードの１３９４インタフェースと接続される。又、１３９４インタフェースは、１つ以上の通信ポート３０２を有し、通信ポート３０２は、ハードウェア部に含まれるフィジカル・レイヤ３０３と接続される。
【００３２】
図３において、ハードウェア部は、フィジカル・レイヤ３０３とリンク・レイヤ３０４とから構成されている。フィジカル・レイヤ３０３は、他のノードとの物理的、電気的なインタフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化／復号化、バス使用権の調停等を行う。又、リンク・レイヤ３０４は、通信パケットの生成と送受信、サイクルタイマの制御等を行なう。
【００３３】
又、図３において、ファームウェア部は、トランザクション・レイヤ３０５とシリアル・バス・マネージメント３０６とを含んでいる。トランザクション・レイヤ３０５は、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードを管理し、各種のトランザクション（リード、ライト、ロック）を提供する。シリアル・バス・マネージメント３０６は、後述するＣＳＲアーキテクチャに基づいて、自ノードの制御、自ノードの接続状態の管理、自ノードのＩＤ情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。
【００３４】
以上、ハードウェア部とファームウェア部とが実質的に１３９４インタフェースを構成するものであり、それらの基本構成は、ＩＥＥＥ１３９４規格により規定されている。
【００３５】
又、ソフトウェア部に含まれるアプリケーション・レイヤ３０７は、使用するアプリケーションソフトによって異なり、ネットワーク上でどのようにデータを通信するのかを制御する。例えば、デジタルＶＴＲの動画像データの場合は、ＡＶ／Ｃプロトコルなどの通信プロトコルによって規定されている。
【００３６】
（２−１）リンク・レイヤ３０４
図４は、リンク・レイヤ３０４の提供可能なサービスを示す図である。図４において、リンク・レイヤ３０４は、次の４つのサービスを提供する。即ち、（１）応答ノードに対して所定のパケットの転送を要求するリンク要求（ＬＫ＿ＤＡＴＡ．ｒｅｑｕｅｓｔ）、（２）応答ノードに所定のパケットの受信を通知するリンク通知（ＬＫ＿ＤＡＴＡ．ｉｎｄｉｃａｔｉｏｎ）、（３）応答ノードからのアクノリッジを受信したことを示すリンク応答（ＬＫ＿ＤＡＴＡ．ｒｅｓｐｏｎｓｅ）、（４）要求ノードからのアクノリッジを確認するリンク確認（ＬＫ＿ＤＡＴＡ．ｃｏｎｆｉｒｍａｔｉｏｎ）である。尚、リンク応答（ＬＫ＿ＤＡＴＡ．ｒｅｓｐｏｎｓｅ）は、ブロードキャスト通信、Ｉｓｏｃｈｒｏｎｏｕｓパケットの転送の場合には存在しない。
又、リンク・レイヤ３０４は、上述のサービスに基づいて、上述の２種類の転送方式、即ち、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モード、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードを実現する。
【００３７】
（２−２）トランザクション・レイヤ３０５
図５は、トランザクション・レイヤ３０５の提供可能なサービスを示す図である。図５において、トランザクション・レイヤ３０５は、次の４つのサービスを提供する。即ち、（１）応答ノードに対して所定のトランザクションを要求するトランザクション要求（ＴＲ＿ＤＡＴＡ．ｒｅｑｕｅｓｔ）、（２）応答ノードに所定のトランザクション要求の受信を通知するトランザクション通知（ＴＲ＿ＤＡＴＡ．ｉｎｄｉｃａｔｉｏｎ）、（３）応答ノードからの状態情報（ライト、ロックの場合は、データを含む）を受信したことを示すトランザクション応答（ＴＲ＿ＤＡＴＡ．ｒｅｓｐｏｎｓｅ）、（４）要求ノードからの状態情報を確認するトランザクション確認（ＴＲ＿ＤＡＴＡ．ｃｏｎｆｉｒｍａｔｉｏｎ）である。
【００３８】
又、トランザクション・レイヤ３０５は、上述のサービスに基づいてＡｓｙｎｃｈｒｏｎｏｕｓ転送を管理し、次の３種類のトランザクション、即ち、（１）リード・トランザクション、（２）ライト・トランザクション、（３）ロック・トランザクションを実現する。
（１）リード・トランザクションは、要求ノードが応答ノードの特定アドレスに格納された情報を読み取る。
（２）ライト・トランザクションは、要求ノードが応答ノードの特定アドレスに所定の情報を書き込む。
（３）ロック・トランザクションは、要求ノードが応答ノードに対して参照データと更新データとを転送し、応答ノードの特定アドレスの情報とその参照データとを比較し、その比較結果に応じて特定アドレスの情報を更新データに更新する。
【００３９】
（２−３）シリアル・バス・マネージメント３０６
シリアル・バス・マネージメント３０６は、具体的に、次の３つの機能を提供することができる。３つの機能とは、即ち、（１）ノード制御、（２）アイソクロナス・リソース・マネージャ（以下、ＩＲＭ）、（３）バスマネージャである。
（１）ノード制御は、上述の各レイヤを管理し、他のノードとの間で実行されるＡｓｙｎｃｈｒｏｎｏｕｓ転送を管理する機能を提供する。
（２）ＩＲＭは、他のノードとの間で実行されるＩｓｏｃｈｒｏｎｏｕｓ転送を管理する機能を提供する。具体的には、転送帯域幅とチャネル番号の割り当てに必要な情報を管理し、これらの情報を他のノードに対して提供する。
ＩＲＭは、ローカルバス上に唯一存在し、バスリセット毎に他の候補者（ＩＲＭの機能を有するノード）の中から動的に選出される。又、ＩＲＭは、後述のバスマネージャの提供可能な機能（接続構成の管理、電源管理、速度情報の管理等）の一部を提供してもよい。
（３）バスマネージャは、ＩＲＭの機能を有し、ＩＲＭよりも高度なバス管理機能を提供する。具体的には、より高度な電源管理（通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理）、より高度な速度情報の管理（各ノード間の最大転送速度の管理）、より高度な接続構成の管理（トポロジ・マップの作成）、これらの管理情報に基づくバスの最適化等を行ない、更にこれらの情報を他のノードに提供する機能を有する。
【００４０】
又、バスマネージャは、シリアルバスネットワークを制御するためのサービスをアプリケーションに対して提供できる。ここで、サービスには、シリアルバス制御要求（ＳＢ＿ＣＯＮＴＲＯＬ．ｒｅｑｕｅｓｔ）、シリアルバス・イベント制御確認（ＳＢ＿ＣＯＮＴＲＯＬ．ｃｏｎｆｉｒｍａｔｉｏｎ）、シリアルバス・イベント通知（ＳＢ＿ＣＯＮＴＲＯＬ．ｉｎｄｉｃａｔｉｏｎ）等がある。
【００４１】
ＳＢ＿ＣＯＮＴＲＯＬ．ｒｅｑｕｅｓｔは、アプリケーションがバスリセットを要求するサービスである。ＳＢ＿ＣＯＮＴＲＯＬ．ｃｏｎｆｉｒｍａｔｉｏｎは、ＳＢ＿ＣＯＮＴＲＯＬ．ｒｅｑｕｅｓｔをアプリケーションに対して確認するサービスである。ＳＢ＿ＣＯＮＴＲＯＬ．ｉｎｄｉｃａｔｉｏｎは、非同期に発生するイベントをアプリケーションに対して通知するサービスである。
【００４２】
（３）アドレス指定
図６は、１３９４インタフェースにおけるアドレス空間を説明する図である。尚、１３９４インタフェースは、ＩＳＯ／ＩＥＣ　１３２１３：１９９４に準じたＣＳＲ（Ｃｏｍｍａｎｄ　ａｎｄ　Ｓｔａｔｕｓ　Ｒｅｇｉｓｔｅｒ）アーキテクチャに従い、６４ビット幅のアドレス空間を規定している。
【００４３】
図６において、最初の１０ビットのフィールド６０１は、所定のバスを指定するＩＤ番号に使用され、次の６ビットのフィールド６０２は、所定の機器（ノード）を指定するＩＤ番号に使用される。この上位１６ビットを「ノードＩＤ」と呼び、各ノードはこのノードＩＤにより他のノードを識別する。又、各ノードは、このノードＩＤを用いて相手を識別した通信を行うことができる。
【００４４】
残りの４８ビットからなるフィールドは、各ノードの具備するアドレス空間（２５６Ｍバイト構造）を指定する。このアドレス空間をノードアドレス空間と呼ぶ。その内の２０ビットのフィールド６０３は、アドレス空間を構成する複数の領域を指定する。
【００４５】
フィールド６０３において、「０〜０ｘＦＦＦＦＤ」の部分は、メモリ空間と呼ばれる。「０ｘＦＦＦＦＥ」の部分は、プライベート空間と呼ばれ、各ノードで自由に利用できるアドレスである。又、「０ｘＦＦＦＦＦ」の部分は、レジスタ空間と呼ばれ、バスに接続されたノード間において共通の情報を格納する。各ノードは、レジスタ空間の情報を用いることにより、各ノード間の通信を管理することができる。
【００４６】
最後の２８ビットのフィールド６０４は、各ノードにおいて共通或いは固有となる情報が格納されるアドレスを指定する。
例えば、レジスタ空間において、最初の５１２バイトは、ＣＳＲアーキテクチャーのコア（ＣＳＲコア）レジスタ用に使用される。ＣＳＲコア・レジスタに格納される情報のアドレス及び機能を図７に示す。図中のオフセットは、「０ｘＦＦＦＦＦ０００００００」からの相対位置である。
【００４７】
次の５１２バイトは、シリアルバス用のレジスタとして使用される。シリアルバス・レジスタに格納される情報のアドレス及び機能を図８に示す。図中のオフセットは、「０ｘＦＦＦＦＦ００００２００」からの相対位置である。
【００４８】
その次の１０２４バイトは、Ｃｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭ用に使用される。
【００４９】
Ｃｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭには最小形式と一般形式とがあり、「０ｘＦＦＦＦＦ００００４００」から配置される。最小形式のＣｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭを図９に示す。図９において、ベンダＩＤは、ＩＥＥＥにより各ベンダに対して固有に割り当てられた２４ビットの数値である。
【００５０】
又、一般形式のＣｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭを図１０に示す。図１０において、上述のベンダＩＤは、Ｒｏｏｔ　Ｄｉｒｅｃｔｏｒｙ１００２に格納されている。Ｂｕｓ　Ｉｎｆｏ　Ｂｌｏｃｋ１００１とＲｏｏｔ　Ｌｅａｆ１００５とには、各ノードを識別する固有のＩＤ情報としてノードユニークＩＤを保持することが可能である。
【００５１】
ここで、ノードユニークＩＤは、メーカ、機種に関わらず、１つのノードを特定することのできる固有のＩＤを定めるようになっている。ノードユニークＩＤは６４ビットにより構成され、上位２４ビットは上述のベンダＩＤを示し、下位４８ビットは各ノードを製造するメーカにおいて自由に設定可能な情報（例えば、ノードの製造番号等）を示す。尚、このノードユニークＩＤは、例えばバスリセットの前後で継続して特定のノードを認識する場合に使用される。
【００５２】
又、図１０において、Ｒｏｏｔ　Ｄｉｒｅｃｔｏｒｙ１００２には、ノードの基本的な機能に関する情報を保持することが可能である。詳細な機能情報は、Ｒｏｏｔ　Ｄｉｒｅｃｔｏｒｙ１００２からオフセットされるサブディレクトリ（Ｕｎｉｔ　Ｄｉｒｅｃｔｏｒｉｅｓ１００４）に格納される。Ｕｎｉｔ　Ｄｉｒｅｃｔｏｒｉｅｓ１００４には、例えば、ノードのサポートするソフトウェアユニットに関する情報が格納される。具体的には、ノード間のデータ通信を行うためのデータ転送プロトコル、所定の通信手順を定義するコマンドセット等に関する情報が保持される。
【００５３】
又、図１０において、Ｎｏｄｅ　Ｄｅｐｅｎｄｅｎｔ　Ｉｎｆｏ　Ｄｉｒｅｃｔｏｒｙ１００３には、デバイス固有の情報を保持することが可能である。Ｎｏｄｅ　Ｄｅｐｅｎｄｅｎｔ　Ｉｎｆｏ　Ｄｉｒｅｃｔｏｒｙ１００３は、Ｒｏｏｔ　Ｄｉｒｅｃｔｏｒｙ１００２によりオフセットされる。
【００５４】
更に、図１０において、Ｖｅｎｄｏｒ　Ｄｅｐｅｎｄｅｎｔ　Ｉｎｆｏｒｍａｔｉｏｎ１００６には、ノードを製造、或いは販売するベンダ固有の情報を保持することができる。
【００５５】
残りの領域は、ユニット空間と呼ばれ、各ノード固有の情報、例えば、各機器の識別情報（会社名、機種名等）や使用条件等が格納されたアドレスを指定する。ユニット空間のシリアルバス装置レジスタに格納される情報のアドレス及び機能を図１１に示す。図中のオフセットは、「０ｘＦＦＦＦＦ００００８００」からの相対位置である。
【００５６】
尚、一般的に、異種のバスシステムの設計を簡略化したい場合、各ノードは、レジスタ空間の最初の２０４８バイトのみを使うべきである。つまり、ＣＳＲコア・レジスタ、シリアルバス・レジスタ、Ｃｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭ、ユニット空間の最初の２０４８バイトの合わせて４０９６バイトで構成することが望ましい。
【００５７】
（４）通信ケーブルの構成
図１２にＩＥＥＥ１３９４規格に準拠した通信ケーブルの断面図を示す。
【００５８】
通信ケーブルは、２組のツイストペア信号線と電源ラインとにより構成されている。電源ラインを設けることによって、１３９４インタフェースは、主電源のＯＦＦとなった機器、故障により電力低下した機器等にも電力を供給することができる。尚、電源線内を流れる電源の電圧は８〜４０Ｖ、電流は最大電流ＤＣ１．５Ａと規定されている。
【００５９】
２組のツイストペア信号線には、ＤＳ−Ｌｉｎｋ（Ｄａｔａ／Ｓｔｒｏｂｅ　Ｌｉｎｋ）符号化方式にて符号化された情報信号が伝送される。図１３は、ＤＳ−Ｌｉｎｋ符号化方式を説明する図である。
【００６０】
このＤＳ−Ｌｉｎｋ符号化方式は、高速なシリアルデータ通信に適しており、その構成は、２組のより対線を必要とする。一組のより対線は、データ信号を送り、他のより対線は、ストローブ信号を送る構成になっている。受信側は、２組の信号線から受信したデータ信号とストローブ信号との排他的論理和をとることによって、クロックを再現することができる。
【００６１】
尚、ＤＳ−Ｌｉｎｋ符号化方式を用いることにより、１３９４インタフェースには、例えば次のような利点がある。（１）他の符号化方式に比べて転送効率が高い。（２）ＰＬＬ回路が不要となり、コントローラＬＳＩの回路規模を小さくできる。（３）アイドル状態であることを示す情報を送る必要が無いため、トランシーバ回路をスリープ状態とし易く、消費電力の低減が図れる。
【００６２】
（５）バスリセット
各ノードの１３９４インタフェースは、ネットワークの接続構成に変化が生じたことを自動的に検出することができる。この場合、１３９４ネットワークは以下に示す手順によりバスリセットと呼ばれる処理を行う。尚、接続構成に変化は、各ノードの具備する通信ポートかかるバイアス電圧の変化により検知することができる。
【００６３】
ネットワークの接続構成の変化（例えば、ノードの挿抜、ノードの電源のＯＮ／ＯＦＦなどによるノード数の増減）を検出したノード、又は新たな接続構成を認識する必要のあるノードは、１３９４インタフェースを介して、バス上にバスリセット信号を送信する。
【００６４】
バスリセット信号を受信したノードの１３９４インタフェースは、バスリセットの発生を自身のリンク・レイヤ３０４に伝達すると共に、そのバスリセット信号を他のノードに転送する。バスリセット信号を受信したノードは、今まで認識していたネットワークの接続構成及び各機器に割り当てられたノードＩＤをクリアにする。最終的に全てのノードがバスリセット信号を検知した後、各ノードは、バスリセットに伴う初期化処理（即ち、新たな接続構成の認識と新たなノードＩＤの割り当て）を自動的に行う。
【００６５】
尚、バスリセットは、先に述べたような接続構成の変化による起動の他に、ホスト側の制御によって、アプリケーション・レイヤ３０７がフィジカル・レイヤ３０３に対して直接命令を出すことによって起動させることも可能である。
【００６６】
又、バスリセットが起動するとデータ転送は一時中断され、バスリセットに伴う初期化処理の終了後、新しいネットワークのもとで再開される。
【００６７】
（６）バスリセット起動後のシーケンス
バスリセットの起動後、各ノードの１３９４インタフェースは、新たな接続構成の認識と新たなノードＩＤの割り当てとを自動的に実行する。以下、バスリセットの開始からノードＩＤの割り当て処理までの基本的なシーケンスを図１４〜１６を用いて説明する。
【００６８】
図１４は、図２の１３９４ネットワークにおけるバスリセット起動後の状態を説明する図である。
【００６９】
図１４において、ノードＡは１つの通信ポート、ノードＢは２つの通信ポート、ノードＣは２つの通信ポート、ノードＤは３つの通信ポート、ノードＥは１つの通信ポート、ノードＦは１つの通信ポートを具備している。各ノードの通信ポートには、各ポートを識別するためにポート番号を付されている。
【００７０】
以下、図１４におけるバスリセットの開始からノードＩＤの割り当てまでを図１５のフローチャートを用いて説明する。
【００７１】
図１５において、１３９４ネットワークを構成する各ノードＡ〜Ｆは、バスリセットが発生したか否かを常時監視している（ステップＳ１５０１）。接続構成の変化を検出したノードからバスリセット信号が出力されると、各ノードは以下の処理を実行する。
【００７２】
バスリセットの発生後、各ノードは、夫々の具備する通信ポート間において親子関係の宣言を行なう（ステップＳ１５０２）。
【００７３】
各ノードは、全てのノード間の親子関係が決定されるまで、ステップＳ１５０２の処理を繰り返し行なう（ステップＳ１５０３）。
【００７４】
全てのノード間の親子関係が決定した後、１３９４ネットワークは、ネットワークの調停を行なうノード、即ちルートを決定する。（ステップＳ１５０４）。
【００７５】
ルートを決定した後、各ノードの１３９４インタフェース夫々は、自己のノードＩＤを自動的に設定する作業を実行する（ステップＳ１５０５）。
【００７６】
全てのノードに対してノードＩＤの設定がなされるまで、各ノードは所定の手順に基づきステップＳ１５０５の処理を実行する（ステップＳ１５０６）。
【００７７】
最終的に全てのノードに対してノードＩＤが設定された後、各ノードは、Ｉｓｏｃｈｒｏｎｏｕｓ転送或いはＡｓｙｎｃｈｒｏｎｏｕｓ転送を実行する（ステップＳ１５０７）。
【００７８】
ステップＳ１５０７の処理を実行すると共に、各ノードの１３９４インタフェースは、再びバスリセットの発生を監視する。バスリセットが発生した場合には、ステップＳ１５０１以降の処理を再び実行する。
【００７９】
以上の手順により、各ノードの１３９４インタフェースは、バスリセットが起動する毎に、新たな接続構成の認識と新たなノードＩＤの割り当てとを自動的に実行することができる。
【００８０】
（７）親子関係の決定
次に、図１６を用いて、図１５に示したステップＳ１５０２の処理（即ち、各ノード間の親子関係を認識する処理）について詳細に説明する。
【００８１】
図１６において、バスリセットの発生後、１３９４ネットワーク上の各ノードＡ〜Ｆは、自分の具備する通信ポートの接続状態（接続又は未接続）を確認する（ステップＳ１６０１）。
【００８２】
通信ポートの接続状態の確認後、各ノードは、他のノードと接続されている通信ポート（以下、接続ポート）の数をカウントする（ステップＳ１６０２）。
【００８３】
ステップＳ１６０２の処理の結果、接続ポートの数が１つである場合、そのノードは、自分が「リーフ」であると認識する（ステップＳ１６０３）。ここで、リーフとは、１つのノードとのみ接続されているノードのことである。
【００８４】
リーフとなるノードは、その接続ポートに接続されているノードに対して、「自分は子（Ｃｈｉｌｄ）」であることを宣言する（ステップＳ１６０４）。このとき、リーフは、その接続ポートが「親ポート（親ノードと接続された通信ポート）」であると認識する。
【００８５】
ここで、親子関係の宣言は、まず、ネットワークの末端であるリーフとブランチとの間にて行われ、続いて、ブランチとブランチとの間で順次に行われる。各ノード間の親子関係は、早く宣言の行なえる通信ポートから順に決定される。又、各ノード間において、子であることを宣言した通信ポートは「親ポート」であると認識され、その宣言を受けた通信ポートは「子ポート（子ノードと接続された通信ポート）」であると認識される。例えば、図１４において、ノードＡ、Ｅ、Ｆは、自分がリーフであると認識した後、親子関係の宣言を行う。これにより、ノードＡ−Ｂ間では子−親、ノードＥ−Ｄ間では子−親、ノードＦ−Ｄ間では子−親と決定される。
【００８６】
又、ステップＳ１６０２の処理の結果、接続ポートの数が２つ以上の場合、そのノードは、自分を「ブランチ」であると認識する（ステップＳ１６０５）。ここで、ブランチとは、２つ以上のノードと接続されているノードのことである。
【００８７】
ブランチとなるノードは、各接続ポートのノードから親子関係の宣言を受け付ける（ステップＳ１６０６）。宣言を受け付けた接続ポートは、「子ポート」として認識される。
【００８８】
１つの接続ポートを「子ポート」と認識した後、ブランチは、まだ親子関係の決定されていない接続ポート（即ち、未定義ポート）が２つ以上あるか否かを検出する（ステップＳ１６０７）。その結果、未定義ポートが２つ以上ある場合、ブランチは、再びステップＳ１６０６の動作を行う。
【００８９】
ステップＳ１６０７の結果、未定義ポートが１つだけ存在する場合、ブランチは、その未定義ポートが「親ポート」であると認識し、そのポートに接続されているノードに対して「自分は子」であることを宣言する（ステップＳ１６０８、Ｓ１６０９）。
【００９０】
ここで、ブランチは、残りの未定義ポートが１つになるまで自分自身が子であると他のノードに対して宣言することができない。例えば、図１４において、ノードＢ、Ｃ、Ｄは、自分がブランチであると認識すると共に、リーフ或いは他のブランチからの宣言を受け付ける。ノードＤは、Ｄ−Ｅ間、Ｄ−Ｆ間の親子関係が決定した後、ノードＣに対して親子関係の宣言を行っている。又、ノードＤからの宣言を受けたノードＣは、ノードＢに対して親子関係の宣言を行っている。
【００９１】
又、ステップＳ１６０８の処理の結果、未定義ポートが存在しない場合（つまり、ブランチの具備する全ての接続ポートが親ポートとなった場合）、そのブランチは、自分自身がルートであることを認識する。（ステップＳ１６１０）。
【００９２】
例えば、図１４において、接続ポートの全てが親ポートとなったノードＢは、１３９４ネットワーク上の通信を調停するルートとして他のノードに認識される。ここで、ノードＢがルートと決定されたが、ノードＢの親子関係を宣言するタイミングが、ノードＣの宣言するタイミングに比べて早い場合には、他のノードがルートになる可能性もある。即ち、宣言するタイミングによっては、どのノードもルートとなる可能性がある。従って、同じネットワーク構成であっても同じノードがルートになるとは限らない。
【００９３】
このように全ての接続ポートの親子関係が宣言されることによって、各ノードは、１３９４ネットワークの接続構成を階層構造（ツリー構造）として認識することができる（ステップＳ１６１１）。尚、上述の親ノードは階層構造における上位であり、子ノードは階層構造における下位となる。
【００９４】
（８）ノードＩＤの割り当て
図１７は、図１５に示したステップＳ１５０５の処理（即ち、自動的に各ノードのノードＩＤを割り当てる処理）を詳細に説明するフローチャートである。ここで、ノードＩＤは、バス番号とノード番号とから構成されるが、本実施例では、各ノードを同一バス上に接続するものとし、各ノードには同一のバス番号が割り当てられるものとする。
【００９５】
図１７において、ルートは、ノードＩＤが未設定のノードが接続されている子ポートの内、最小番号を有する通信ポートに対してノードＩＤの設定許可を与える（ステップＳ１７０１）。
【００９６】
尚、図１７において、ルートは、最小番号の子ポートに接続されている全ノードのノードＩＤを設定した後、その子ポートを設定済とし、次に最小となる子ポートに対して同様の制御を行なう。最終的に子ポートに接続された全てのノードのＩＤ設定が終了した後、ルート自身のノードＩＤを設定する。尚、ノードＩＤに含まれるノード番号は、基本的にリーフ、ブランチの順に０、１、２…と割り当てられる。従って、ルートが最も大きなノード番号を有することになる。
【００９７】
ステップＳ１７０１において、設定許可を得たノードは、自分の子ポートの内、ノードＩＤが未設定となるノードを含む子ポートがあるか否かを判断する（ステップＳ１７０２）。
【００９８】
ステップＳ１７０２において、未設定ノードを含む子ポートが検出された場合、上述の設定許可を得たノードは、その子ポートに直接接続されたノードに対してその設定許可を与えるように制御する（ステップＳ１７０３）。
【００９９】
ステップＳ１７０３の処理後、上述の設定許可を得たノードは、自分の子ポートの内、ノードＩＤが未設定であるノードを含む子ポートがあるか否かを判断する（ステップＳ１７０４）。ここで、ステップＳ１７０４の処理後、未設定ノードを含む子ポートの存在が検出された場合、そのノードは、再びステップＳ１７０３の処理を実行する。
【０１００】
又、ステップＳ１７０２或いはＳ１７０４において、未設定ノードを含む子ポートが検出されなかった場合、設定許可を得たノードは、自分自身のノードＩＤを設定する（ステップＳ１７０５）。
【０１０１】
自分のノードＩＤを設定したノードは、自己のノード番号、通信ポートの接続状態に関する情報等を含んだセルフＩＤパケットをブロードキャストする（ステップＳ１７０６）。尚、ブロードキャストとは、あるノードの通信パケットを、１３９４ネットワークを構成する不特定多数のノードに対して転送することである。
【０１０２】
ここで、各ノードは、このセルフＩＤパケットを受信することにより、各ノードに割り当てられたノート番号を認識することができ、自分に割り当てられるノード番号を知ることができる。例えば、図１４において、ルートであるノードＢは、最小ポート番号「＃１」の通信ポートに接続されたノードＡに対してノードＩＤ設定の許可を与える。ノードＡは、自己のノード番号「Ｎｏ．０」と割り当て、自分自身に対してバス番号とノード番号とからなるノードＩＤを設定する。又、ノードＡは、そのノード番号を含むセルフＩＤパケットをブロードキャストする。
【０１０３】
図１８にセルフＩＤパケットの構成例を示す。図１８において、１８０１はセルフＩＤパケットを送出したノードのノード番号を格納するフィールド、１８０２は対応可能な転送速度に関する情報を格納するフィールド、１８０３はバス管理機能（バスマネージャの能力の有無等）の有無を示すフィールド、１８０４は電力の消費及び供給の特性に関する情報を格納するフィールドである。
【０１０４】
又、図１８において、１８０５はポート番号「＃０」となる通信ポートの接続状態に関する情報（接続、未接続、通信ポートの親子関係等）を格納するフィールド、１８０６はポート番号「＃１」となる通信ポートの接続状態に関する情報（接続、未接続、通信ポートの親子関係等）を格納するフィールド、１８０７はポート番号「＃２」となる通信ポートの接続状態に関する情報（接続、未接続、通信ポートの親子関係等）を格納するフィールドである。
【０１０５】
尚、セルフＩＤパケットを送出するノードにバスマネージャとなり得る能力がある場合には、フィールド１８０３に示すコンテンダビットを「１」とし、なり得る能力がなければ、コンテンダビットを０とする。
【０１０６】
ここで、バスマネージャとは、上述のセルフＩＤパケットに含まれる各種の情報に基づいて、バスの電源管理（通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理する）、速度情報の管理（各ノードの対応可能な転送速度に関する情報から各ノード間の最大転送速度を管理する）、トポロジ・マップ情報の管理（通信ポートの親子関係情報からネットワークの接続構成を管理する）、トポロジ・マップ情報に基づくバスの最適化等を行ない、それらの情報を他のノードに提供する機能を有するノードである。これらの機能により、バスマネージャとなるノードは１３９４ネットワーク全体のバス管理を行なうことができる。
【０１０７】
ステップＳ１７０６の処理後、ノードＩＤの設定を行ったノードは、親ノードがあるか否かを判断する（ステップＳ１７０７）。親ノードがある場合、その親ノードが、ステップＳ１７０２以下の処理を再び実行する。そして、まだノードＩＤの設定されていないノードに対して許可を与える。
【０１０８】
又、親ノードが存在しない場合、そのノードは、ルート自身であると判断される。ルートは、全ての子ポートに接続されたノードに対してノードＩＤが設定されたか否かを判別する（ステップＳ１７０８）。
【０１０９】
ステップＳ１７０８において、全てのノードに対するＩＤ設定処理が終了しなかった場合、ルートは、そのノードを含む子ポートの内、最小番号となる子ポートに対してＩＤ設定の許可を与える（ステップＳ１７０１）。その後、ステップＳ１７０２以下の処理を実行する。
【０１１０】
又、全てのノードに対するＩＤ設定処理が終了した場合、ルートは、自分自身のノードＩＤの設定を実行する（ステップＳ１７０９）。ノードＩＤの設定後、ルートは、セルフＩＤパケットをブロードキャストする（ステップＳ１７１０）。
【０１１１】
以上の処理によって、１３９４ネットワークは、各ノードに対して自動的にノードＩＤを割り当てることができる。
【０１１２】
ここで、ノードＩＤの設定処理後、複数のノードがバスマネージャの能力を具備する場合、ノード番号の最も大きいノードがバスマネージャとなる。つまり、ネットワーク内で最大となるノード番号を持つルートがバスマネージャになり得る機能を有している場合には、ルートがバスマネージャとなる。
【０１１３】
しかしながら、ルートにその機能が備わっていない場合には、ルートの次に大きいノード番号を具備するノードがバスマネージャとなる。又、どのノードがバスマネージャになったかについては、各ノードがブロードキャストするセルフＩＤパケット内のコンテンダビット１８０３をチェックすることにより把握することができる。
【０１１４】
（９）アービトレーション
図１９は、図１の１３９４ネットワークにおけるアービトレーションを説明する図である。
【０１１５】
１３９４ネットワークでは、データ転送に先立って、必ずバス使用権のアービトレーション（調停）を行なう。１３９４ネットワークは、論理的なバス型ネットワークであり、各ノードから転送された通信パケットを他のノードに中継することによって、ネットワーク内の全てのノードに同じ通信パケットを転送することのできる。従って、通信パケットの衝突を防ぐために、必ずアービトレーションが必要となる。これによって、ある時間において一つのノードのみが転送を行なうことができる。
【０１１６】
図１９（ａ）は、ノードＢとノードＦとが、バス使用権の要求を発している場合について説明する図である。
【０１１７】
アービトレーションが始まるとノードＢ、Ｆは、夫々親ノードに向かって、バス使用権の要求を発する。ノードＢの要求を受けた親ノード（即ち、ノードＣ）は、自分の親ノード（即ち、ノードＤ）に向かって、そのバス使用権を中継する。この要求は、最終的に調停を行なうルート（ノードＤ）に届けられる。
【０１１８】
バス使用要求を受けたルートは、どのノードにバスを使用させるかを決める。この調停作業はルートとなるノードのみが行なえるものであり、調停によって勝ったノードにはバスの使用許可が与えられる。
【０１１９】
図１９（ｂ）は、ノードＦの要求が許可され、ノードＢの要求が拒否されたことを示す図である。
【０１２０】
アービトレーションに負けたノードに対してルートは、ＤＰ（Ｄａｔａ　ｐｒｅｆｉｘ）パケットを送り、拒否されたことを知らせる。拒否されたノードは、次回のアービトレーションまでバス使用要求を待機する。
【０１２１】
以上のようにアービトレーションを制御することによって、１３９４ネットワークは、バスの使用権を管理することができる。
【０１２２】
（１０）通信サイクル
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードとＡｓｙｎｃｈｒｏｎｏｕｓ転送モードとは、各通信サイクル期間内において時分割に混在させることができる。ここで、通信サイクルの期間は、通常、１２５μＳである。
【０１２３】
図２０は、１通信サイクルにおいてＩｓｏｃｈｒｏｎｏｕｓ転送モードとＡｓｙｎｃｈｒｏｎｏｕｓ転送モードとを混在させた場合を説明する図である。
【０１２４】
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードより優先して実行される。その理由は、サイクル・スタート・パケットの後、Ａｓｙｎｃｈｒｏｎｏｕｓ転送を起動するために必要なアイドル期間（ｓｕｂａｃｔｉｏｎ　ｇａｐ）が、Ｉｓｏｃｈｒｏｎｏｕｓ転送を起動するため必要なアイドル期間（Ｉｓｏｃｈｒｏｎｏｕｓ　ｇａｐ）よりも長くなるように設定されているためである。これにより、Ｉｓｏｃｈｒｏｎｏｕｓ転送は、Ａｓｙｎｃｈｒｏｎｏｕｓ転送に優先して実行される。
【０１２５】
図２０において、各通信サイクルのスタート時には、サイクル・スタート・パケット（以下、ＣＳＰ）が所定のノードから転送される。各ノードは、このＣＳＰを用いて時刻調整を行うことによって、他のノードと同じ時間を計時することができる。
【０１２６】
（１１）Ｉｓｏｃｈｒｏｎｏｕｓ転送モード
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、同期型の転送方式である。Ｉｓｏｃｈｒｏｎｏｕｓモード転送は、通信サイクルの開始後、所定の期間において実行可能である。又、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、リアルタイム転送を維持するために、各サイクル毎に必ず実行される。
【０１２７】
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、特に動画像データや音声データ等のリアルタイムな転送を必要とするデータの転送に適した転送モードである。Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードのように１対１の通信ではなく、ブロードキャスト通信である。つまり、あるノードから送出されたパケットは、ネットワーク上の全てのノードに対して一様に転送される。尚、Ｉｓｏｃｈｒｏｎｏｕｓ転送には、ａｃｋ（受信確認用返信コード）は存在しない。
【０１２８】
図２０において、チャネルｅ（ｃｈ　ｅ）、チャネルｓ（ｃｈ　ｓ）、チャネルｋ（ｃｈｋ）は、各ノードがＩｓｏｃｈｒｏｎｏｕｓ転送を行う期間を示す。１３９４インタフェースでは、複数の異なるＩｓｏｃｈｒｏｎｏｕｓ転送を区別するために、夫々異なるチャネル番号を与えている。これにより、複数ノード間でのＩｓｏｃｈｒｏｎｏｕｓ転送が可能となる。ここで、このチャネル番号は、送信先を特定するものではなく、データに対する論理的な番号を与えているに過ぎない。
【０１２９】
又、図２０に示したＩｓｏｃｈｒｏｎｏｕｓ　ｇａｐとは、バスのアイドル状態を示すものである。このアイドル状態が一定時間を経過した後、Ｉｓｏｃｈｒｏｎｏｕｓ転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【０１３０】
次に、図２１にＩｓｏｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットのフォーマットを示す。以下、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットを、Ｉｓｏｃｈｒｏｎｏｕｓパケットと称する。
【０１３１】
図２１において、Ｉｓｏｃｈｒｏｎｏｕｓパケットはヘッダ部２１０１、ヘッダＣＲＣ２１０２、データ部２１０３、データＣＲＣ２１０４から構成される。
【０１３２】
ヘッダ部２１０１には、データ部２１０３のデータ長を格納するフィールド２１０５、Ｉｓｏｃｈｒｏｎｏｕｓパケットのフォーマット情報を格納するフィールド２１０６、Ｉｓｏｃｈｒｏｎｏｕｓパケットのチャネル番号を格納するフィールド２１０７、パケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード（ｔｃｏｄｅ）を格納するフィールド２１０８、同期化コードを格納するフィールド２１０９がある。
【０１３３】
（１２）Ａｓｙｎｃｈｒｏｎｏｕｓ転送モード
Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードは、非同期型の転送方式である。Ａｓｙｎｃｈｒｏｎｏｕｓ転送は、Ｉｓｏｃｈｒｏｎｏｕｓ転送期間の終了後、次の通信サイクルが開始されるまでの間（即ち、次の通信サイクルのＣＳＰが転送されるまでの間）、実行可能である。
【０１３４】
図２０において、最初のサブアクション・ギャップ（ｓｕｂａｃｔｉｏｎ　ｇａｐ）は、バスのアイドル状態を示すものである。このアイドル時間が一定値になった後、Ａｓｙｎｃｈｒｏｎｏｕｓ転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【０１３５】
アービトレーションによりバスの使用権を得たノードは、図２２に示すパケットを所定のノードに対して転送する。このパケットを受信したノードは、ａｃｋ（受信確認用返送コード）或いは応答パケットをａｃｋ　ｇａｐ後に返送する。
【０１３６】
図２２は、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードに基づく通信パケットのフォーマットを示す図である。以下、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットを、Ａｓｙｎｃｈｒｏｎｏｕｓパケットと称する。
【０１３７】
図２２において、Ａｓｙｎｃｈｒｏｎｏｕｓパケットは、ヘッダ部２２０１、ヘッダＣＲＣ２２０２、データ部２２０３、データＣＲＣ２２０４から構成される。
【０１３８】
ヘッダ部２２０１において、フィールド２２０５には宛先となるノードのノードＩＤ、フィールド２２０６にはソースとなるノードのノードＩＤ、フィールド２２０７には一連のトランザクションを示すためのラベル、フィールド２２０８には再送ステータスを示すコード、フィールド２２０９にはパケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード（ｔｃｏｄｅ）、フィールド２２１０には優先順位、フィールド２２１１には宛先のメモリ・アドレス、フィールド２２１２にはデータ部のデータ長、フィールド２２１３には拡張されたトランザクション・コードが格納される。
【０１３９】
又、Ａｓｙｎｃｈｒｏｎｏｕｓ転送は、自己ノードから相手ノードへの１対１の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視される。従って、宛先となるノードのみが、そのパケットを読み込むことができる。
【０１４０】
尚、Ａｓｙｎｃｈｒｏｎｏｕｓ転送中に次のＣＳＰを転送すべき時間に至った場合、無理に転送を中断せず、その転送が終了した後、次のＣＳＰを送信する。これにより、１つの通信サイクルが１２５μＳ以上続いたときは、その分、次の通信サイクル期間を短縮する。このようにすることによって、１３９４ネットワークは、ほぼ一定の通信サイクルを保持することができる。
【０１４１】
（１３）デバイス・マップ
デバイスマップを作成するためにアプリケーションが１３９４ネットワークのトポロジーを知る手段として、ＩＥＥＥ１３９４規格上は以下の手段がある。
１．バスマネージャーのトポロジーマップレジスターをリードする
２．バスリセット時にセルフＩＤパケットから推定する
しかし上記１、２の手段では、各ノードの親子関係によるケーブル接続順のトポロジーは判明するものの、物理的な位置関係のトポロジーを知ることは出来ない（実装されていないポートまで見えてしまう、といった問題もある）。
【０１４２】
また、デバイスマップを作成するための情報を、コンフィギュレーションＲＯＭ以外のデータベースとして持つ、といった手段もあるが、その場合、各種情報を得る手段はデータベースアクセスのためのプロトコルに依存してしまう。
【０１４３】
ところで、コンフィギュレーションＲＯＭ自体やコンフィギュレーションＲＯＭを読む機能は、ＩＥＥＥ１３９４規格を遵守したデバイスが必ず持つものである。そこで、デバイスの位置、機能等の情報を各ノードのコンフィギュレーションＲＯＭに格納し、それらをアプリケーションから読む機能を与えることにより、データベースアクセス、データ転送等の特定のプロトコルに依存することなく、各ノードのアプリケーションがいわゆるデバイスマップ表示機能を実装することができる。
【０１４４】
コンフィグレーションＲＯＭにはノード固有の情報として物理的な位置、機能などが格納可能であり、デバイスマップ表示機能の実現に使用することが可能である。
【０１４５】
この場合、アプリケーションが物理的な位置関係による１３９４ネットワークトポロジーを知る手段としては、バスリセット時やユーザーからの要求時に、各ノードのコンフィギュレーションＲＯＭを読み取ることによ　り、１３９４ネットワークのトポロジーを知る、という方法が可能となる。さらに、コンフィギュレーションＲＯＭ内にノードの物理的位置のみならず、機能などの各種ノード情報も記述することによって、コンフィギュレーションＲＯＭを読むことで、ノードの物理的位置と同時に各ノードの機能情報等も得ることができる。アプリケーションが各ノードのコンフィギュレーションＲＯＭ情報を取得する際には、指定ノードの任意のコンフィギュレーションＲＯＭ情報を取得するＡＰＩを用いる。
【０１４６】
このような手段を用いることにより、ＩＥＥＥ１３９４ネットワーク上のデバイスのアプリケーションは、物理的なトポロジーマップ、各ノードの機能マップなど、用途に応じて様々なデバイスマップを作成することができ、ユーザーが必要な機能をもつデバイスを選択する、といったことも可能となる。
【０１４７】
＜１３９４ブリッジの概要＞
本実施形態の構成、並びに接続デバイスについて説明する。
【０１４８】
以下、本実施例のデジタルインタフェースに適用されるＩＥＥＥ１３９４ブリッジの技術について簡単に説明する。尚、ＩＥＥＥ１３９４ブリッジ（以下、１３９４ブリッジ）規格はＩＥＥＥｐ１３９４．１分科会にて策定中である。
【０１４９】
１３９４規格では、ひとつの１３９４バス上には最大６３のノードまで接続可能であり、そのホップ数は１６までとされている。
６３個以上の１３９４ノードを１３９４ネットワークに接続したい場合、また遠隔地にあるなどの理由で１６ホップ以上の接続を行なう必要がある機器同士を接続したい場合などには一般に１３９４ブリッジが使われる。
【０１５０】
ＩＥＥＥ１３９４はＩＥＥＥ１２１２規格に従った６４ビット固定アドレッシングを使用し、１０ビットをバスＩＤとして定義をしている為、ローカルバスを指定するＩＤ１０２３を除いた最大１０２３個のバスを１３９４ブリッジ経由で接続し１３９４ネットワークを構成することが可能となる。
【０１５１】
１３９４ブリッジの果たす主な機能は、ブリッジを経由したバス間の１３９４ノードトランザクションの制御である。
【０１５２】
１３９４トランザクションの場合、トランザクションを発行するノード、発行先ノードの指定は〈ＩＥＥＥ１３９４の技術の概要〉の欄で記述のようにノードＩＤを使い行なわれる。１３９４ブリッジは接続する２つのバスのトポロジ情報、ノードＩＤ情報等の情報をテーブルとして持ち、接続する２つバスに相手のバス・ノード情報を開示することによりバス間のトランザクションを可能にしている。
【０１５３】
また、１３９４バスの場合、デバイスノードの追加接続といった接続形態に変化が生じたり、あるノードが意図的に指示を行なうことによりにバスリセットが発生し、バスリセットを起点に自動的にノードＩＤの再割り当てを行なうためにバスリセットのシーケンス、ノードＩＤ決定のシーケンスが行なわれ、新たなトポロジが生成される。このシーケンスの詳細については上記〈ＩＥＥＥ１３９４の技術の概要〉の〈バスリセットのシーケンス〉、〈ノードＩＤ決定のシーケンス〉の項で説明されているので割愛する。
【０１５４】
この特性により、接続するバスのトポロジ・ノードＩＤ情報は動的に変化する為、その情報のアップデートもブリッジは行なう。
【０１５５】
一方で、１３９４のバスリセットシーケンスが行なわれている間はそのバス内のデータ転送が中断される上に、ノードＩＤの再割り当てという複雑なシーケンスが行われる為、バスリセットシーケンスの発生が必要のない他のバスにバスリセット信号を伝搬させることは非常に非効率とされている為、１３９４ブリッジは接続された一方のバスリセット信号を他方のバスには伝搬させないということになっている。
【０１５６】
その他のブリッジの機能としては、複数のバスブリッジが接続された複数バス構成のネットワークにおいて、１３９４ブリッジ同士の調停、ブリッジの情報交換によるパケットルーティング機能などが挙げられる。
【０１５７】
以上が、１３９４インタフェースを用いて構成される通信システムの構成及び機能に関する説明である。
【０１５８】
＜データ転送手順＞
次に、図１の送信装置１、および受信装置２について説明する。送信装置１は、受信装置２に対して、トランザクションレイヤ３０５により提供される機能を利用して、データを送信する。もちろん送信装置と受信装置は双方とも送受信機能を備えた対等の装置であっても良い。そして、この本実施形態は、図３のトランザクションレイヤ３０５のサービスを利用してアプリケーションレイヤ３０７にサービスを提供する、中間的な層のプロトコルを開示するものである。本実施形態では、トランザクション３０５について既に説明したとおりに動作することから、この中間層プロトコルについて説明する。アプリケーションレイヤ３０７は例えばこの中間層プロトコルを実現するプログラム等に対して、送信側ではデータを提供する。一方受信側では、例えば受信したデータにより特定されるアプリケーションプログラム等が起動して受信したデータが処理される。以下では送信装置や受信装置の動作を説明しているが、説明の対象はこの中間層プロトコルであって、アプリケーションレイヤやトランザクションレイヤにおける手順は省略している。
【０１５９】
図２３は、本実施の形態の図１に示した送信装置１および受信装置２のノードアドレス空間を示す図である。ノードアドレス空間とは、図６に説明した通りのもので、４８ビットのアドレスで特定されるメモリ空間である。図２３中、コントロールウィンドウ２３０１は、送信装置１、および受信装置２とも備え、接続の制御、およびデータ転送のフローコントロールに用いる。本実施の形態においては、ノードアドレス空間のアドレスは、各装置のＣｏｎｆｉｇＲＯＭ２３００のＮｏｄｅＤｅｐｅｎｄｅｎｔＩｎｆｏＤｉｒｅｃｔｏｒｙに記述し（図示せず）、他ノードから知ることができるものとする。データウィンドウ２３０２は受信装置２が備えるもので、送信装置１はこの領域に、図５で説明したライト・トランザクションを用いてデータを送信する。データウインドウ２３０２のアドレスおよびサイズは、受信装置２によって記憶されており、データ転送の進行とともに更新される。そして、受信装置２から送信装置１に、前述のコントロールウィンドウ２３０１を用いて通知される。また、データイメージは送信装置１から送信されるファイルイメージをノードアドレス空間にマッピングしたイメージであり、データウィンドウ２３０２は、このデータイメージをカバーするようにスライドする。
【０１６０】
図２４はコントロールウィンドウのデータフォーマットを示す。図中、コマンド２４０１は、１６ビット幅のデータで接続およびフローコントロールのためのコマンドを記述する。ウィンドウアドレス上位２４０２は１６ビット幅でデータウィンドウのノードアドレス空間内でのアドレスの上位１６ビットを示す。ウィンドウアドレス下位２４０３は同じく下位３２ビットを示す。ウィンドウサイズ２４０４はデータウィンドウのバイトサイズを６４ビット幅で示す。
【０１６１】
図２４で示すコントロールウインドウと同じ形式のコマンドが送信装置と受信装置との間で交換される。このコマンドもデータと同様に、ある装置が他の装置のライト・トランザクションによりコントロールウインドウ２３０１に書き込むことで交換される。
【０１６２】
コマンドの値と意味を図２５に示す。接続要求コマンド（Ｃ）２５０１は、送信装置から受信装置に対してコネクションの設立のために送信されるコマンドであり、ウィンドウアドレス、ウィンドウサイズは使用しない。接続許可応答コマンド（Ａ）２５０２は受信装置から送信装置に対して送られる、接続要求コマンドに対して接続を許可する応答であり、必要な場合にはウィンドウアドレス、ウィンドウサイズを使用する。接続要求に対する接続拒否応答コマンド（Ｂ）２５０３は受信装置から送信装置に対して送られ、接続要求コマンドに対して接続を拒否する応答であり、ウィンドウアドレス、ウィンドウサイズは使用しない。ウィンドウ通知コマンド（Ｎ）２５０４は受信装置から送信装置に対してウインドウアドレスを通知するためのコマンドであり、ウィンドウアドレス、ウィンドウサイズを使用する。切断要求コマンド（Ｔ）２５０５は、送信装置から受信装置に対してコネクションの切断を要求するためのコマンドであり、ウィンドウアドレス、ウィンドウサイズは使用しない。
【０１６３】
図２６は送信装置１の状態遷移を示し、ＲＯＭ１３に格納されたプログラムをＣＰＵ１２が実行することにより実現する。図中、ＴＸ０は初期状態、ＴＸ１接続応答待ち状態、ＴＸ２はデータ送信状態、ＴＸ３はウィンドウ通知待ち状態、ＴＸ４はウィンドウ検出状態を示す。ＴＸ０ａは受信装置２への接続要求送信によるＴＸ１への状態遷移を示す。ＴＸ１ａは接続許可応答受信によるＴＸ２への状態遷移を示す。ＴＸ１ｂは接続応答を受信できずタイムアウトによるか、接続拒否応答の受信によるＴＸ０への状態遷移を示す。ＴＸ２ａはデータウィンドウへの書き込みがデータウィンドウサイズに達したことによるＴＸ３への状態遷移を示す。ＴＸ２ｂはウィンドウ通知の受信によるＴＸ４への状態遷移を示す。ＴＸ２ｃは終了要求送信によるＴＸ０への状態遷移を示す。ＴＸ３ａはウィンドウ通知の受信によるＴＸ４への状態遷移を示す。ＴＸ４ａは新たなウィンドウアドレス、ウィンドウサイズの検出によるＴＸ２への状態遷移を示す。
【０１６４】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、データ送信状態とウインドウ通知待ち状態とウインドウ検出状態とを、ＴＸ２ａ，ＴＸ３ａ，ＴＸ４ａあるいはＴＸ２ｂ，ＴＸ４ａの径路に沿って遷移する。
【０１６５】
すなわち、送信装置は、受信装置からウインドウ通知により通知されるデータウインドウのアドレス及びサイズをメモリ（送信データ管理メモリ）に記憶しておく。そして、データを送信する都度、送信したサイズに応じて送信データ管理メモリを更新する。すなわち、送信したサイズぶんだけ、送信データ管理メモリで表示される残りサイズから差し引く。そして、残りサイズが０になれば、すなわち、通知されたデータウインドウに空き領域がなくなればウインドウ通知待ち状態となる。
【０１６６】
ウインドウ通知待ち状態あるいはデータ送信状態においてウインドウ通知があれば、ウインドウ検出状態となる。その状態においては、ウインドウ通知からデータウインドウのアドレス及びサイズを検出して、検出したアドレス及びサイズによって送信データ管理メモリの内容を更新し、データ送信状態に移行する。送信データ管理メモリの更新は、ウインドウ通知により通知されたアドレス情報及びサイズ情報から得られるデータウインドウ末尾のアドレスが、送信データ管理メモリにより管理されているデータウインドウのアドレス及びサイズから得られるデータウインドウ末尾のアドレスと一致するように、サイズ情報を更新することで行われる。これは、データ送信とウインドウ通知が入れ違いになった場合には、送信装置が管理するデータウインドウのアドレスの方が最新の値となるためである。
【０１６７】
こうして、コネクションがいったん設定されたなら、送信装置はデータ送信と通知されたデータウインドウサイズの更新を繰返し、大サイズのデータをデータウインドウサイズに合わせて送信することができる。データ送信に際しては、送信順序がデータの並びそのものを表すために、受信側は、受信したデータを受信した順序で再配置することで、送信データを再構成でき、それをひとまとまりのデータとして処理することができる。
【０１６８】
図２７は受信装置２の状態遷移を示し、ＲＯＭ２３に格納されたプログラムをＣＰＵ２２が実行することにより実現する。図中、ＲＸ０は初期状態、ＲＸ１は受信開始状態、ＲＸ２はデータ受信状態、ＲＸ３はウィンドウ更新待ち状態、ＲＸ４はウィンドウ更新状態を示す。ＲＸ０ａは接続要求受信によるＲＸ１への状態遷移を示す。ＲＸ１ａはウィンドウ通知を含む接続許可応答の送信によるＲＸ２への状態遷移を示す。ＲＸ１ｂは接続拒否応答の送信によるＲＸ０への状態遷移を示す。ＲＸ２ａは受信データがウィンドウサイズに達したことによるＲＸ３への状態遷移を示す。ＲＸ２ｂは受信データ処理によるＲＸ４への状態遷移を示す。ＲＸ２ｃは終了要求受信によるＲＸ０への状態遷移を示す。ＲＸ３ａは受信データ処理によるＲＸ４への状態遷移を示す。ＲＸ４ａはウィンドウ更新によるＲＸ２への状態遷移を示す。
【０１６９】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、データ受信状態とウインドウ更新待ち状態とウインドウ更新状態とを、ＲＸ２ａ，ＲＸ３ａ，ＲＸ４ａあるいはＲＸ２ｂ，ＲＸ４ａの径路に沿って遷移する。
【０１７０】
すなわち、受信装置はコントロールウインドウのアドレス情報及びサイズ情報により空いているデータウインドウを管理し、サイズが０すなわち通知したデータウインドウに空き領域がなくなれば、ウインドウ更新待ち状態となる。
【０１７１】
ウインドウ更新待ち状態あるいはデータ受信状態において、データウインドウのために利用できる空き領域があれば、あるいはあらたに生じれば、ウインドウ更新状態となる。この状態では、コントロールウインドウに含まれるデータウインドウのアドレス及びサイズを更新し、送信装置に対して更新されたウインドウ通知を発行する。そしてデータ受信状態に戻る。
【０１７２】
こうして、コネクションがいったん設定されたなら、受信装置はデータ受信とデータウインドウの更新およびウインドウ通知を繰返し、大サイズのデータであってもデータウインドウサイズに合わせて送信させることができる。データ受信に際しては、受信順序がデータの並びそのものを表すために、受信装置は、受信したデータを受信した順序で再配置することで、ひとまとまりのデータとして処理することができる。例えば、ウインドウサイズずつ受信したデータを、アプリケーションプログラムにより指定されるバッファに一連のデータとして格納し、切断要求の受信によってそのコネクションにおける全データを受信したものと判断し、そのデータをアプリケーションプログラムに引き渡す。
【０１７３】
以下、データ通信フローの一例を示しながら、データ通信処理を説明する。送信装置１は外部装置１５に格納したサイズｎバイトのファイルを受信装置２に転送するものとし、受信装置２は受信したファイルを外部装置２５に格納するものとする。図２８は、データ通信フローの一例を示す。なお、コマンド名は図２５に示したような略称（かっこ書きで示したもの）で示しており、コマンド名に続くかっこ内の数値は（ウインドウ上位アドレス：ウインドウ下位アドレス，ウインドウサイズ）を示す。図２５に示したように、パラメータを使用しないコマンドについては（０：０，０）で示す。
【０１７４】
図２８において、コマンドＣ（０：０，０）２８０１は送信装置１から受信装置２への接続要求を示し、受信装置２のコントロールウィンドウにライト・トランザクションを使って書き込む。これにより送信装置１の状態は、初期状態ＴＸ０から接続応答待ち状態ＴＸ１に遷移する（ＴＸ１ａ）。
【０１７５】
受信装置２は接続要求を受け取って、その状態は初期状態ＲＸ０から受信開始状態ＲＸ１へ遷移する（ＲＸ１ａ）。受信装置２は、送信を許可する場合には、接続許可応答コマンドＡ（１：０，３０７２）２８０２を、送信装置１のコントロールウィンドウ２３０１にブロックライトトランザクションを使って書き込む。受信装置２の状態は、接続許可応答を送信して受信開始状態ＲＸ１からデータ受信状態ＲＸ２へ遷移する（ＲＸ１ａ）。送信装置１は接続許可応答を受け取って、受信装置２のデータウィンドウの上位アドレス１、下位アドレス０、サイズ３０７２バイトを検出し、その状態は、応答待ち状態ＴＸ１からデータ送信状態ＴＸ２へ遷移する（ＴＸ１ａ）。ここで、送信装置１はファイルの先頭からウインドウサイズである３０７２バイトを読み出して、送信の準備をする。
【０１７６】
コマンドＷ（１：０，１０２４）２８０３は送信装置１から受信装置２へのデータ転送を示す。送信装置１は、受信装置２のノードアドレス空間の上位アドレス１、下位アドレス０で特定されるアドレス（０１００００Ｈ：Ｈは１６進数を表す）に、ライト・トランザクションを使って先に読み出したファイルの先頭の１０２４バイトのデータを書き込む。続く、コマンドＷ（１：１０２４，１０２４）２８０４も、同じく送信装置１から受信装置２へのデータ転送を示す。送信装置１は、受信装置２のノードアドレス空間の上位アドレス１、下位アドレス１０２４で特定されるアドレス（０１０４００Ｈ）に、ライト・トランザクションを使って次の１０２４バイトの書き込みを行う。Ｗ（１：２０４８，１０２４）２８０５も同様である。送信装置１は、受信装置２のノードアドレス空間の上位アドレス１、下位アドレス２０４８で特定されるアドレス（０１０８００Ｈ）に、ライト・トランザクションを使って次の１０２４バイトの書き込みを行う。
【０１７７】
ここで、送信装置１は受信装置２から通知されたデータウィンドウサイズである３０７２バイト（１０２４バイト×３回）分のデータ送信を完了する。そしてその状態は、データ送信状態ＴＸ２からウインドウ通知待ち状態ＴＸ３へ遷移する（ＴＸ２ａ）。
【０１７８】
一方、受信装置２はＷ（１：１０２４，１０２４）２８０４を受信したあと受信データを処理して、データウィンドウを上位アドレス１、下位アドレス２０４８、サイズ３０７２バイトに更新し（ＲＸ２ｂ）、ウィンドウ通知Ｎ（１：２０４８，３０７２）２８０６を、送信装置１のコントロールウィンドウにライト・トランザクションを使って送信する（ＲＸ４ａ）。
【０１７９】
このあと、受信装置２は、送信装置１からＷ（１：２０４８，１０２４）２８０５を受信する。これによって上位アドレス１、下位アドレス２０４８で特定されるデータウィンドウのサイズである３０７２バイトのうち、空き領域は上位アドレス１、下位アドレス３０７２で特定されるアドレス（０１０Ｃ００Ｈ）から２０４８バイトになる。
【０１８０】
送信装置１はＷ（１：２０４８，１０２４）２８０５の送信後にウィンドウ通知Ｎ（１：２０４８，３０７２）２８０６を受信し（ＴＸ３ａ）、受信装置２のデータウィンドウが上位アドレス１、下位アドレス２０４８で特定されるアドレスから開始され、サイズ３０７２バイトであることを検出する。それにより送信装置２の状態はウインドウ検出状態ＴＸ４からデータ送信状態ＴＸ２へ遷移する（ＴＸ４ａ）。送信装置１はすでに、Ｗ（１：２０４８，１０２４）２８０５を送信しているので、続く２０４８バイトをファイルから読み出して、Ｗ（１：２０４８，１０２４）２８０５によって書き込まれたメモリ空間の続きアドレス（０１０Ｃ００Ｈ）を指定して、データ送信を行う。すなわち、Ｗ（１：３０７２，１０２４）２８０７を、ライト・トランザクションを使って送信する。同様に、Ｗ（１：４０９６，１０２４）２８０８を、Ｗ（１：３０７２，１０２４）２８０７で書き込んだ続きアドレスからライト・トランザクションを使用して受信装置２のメモリ空間に書き込む。これにより、受信装置２の、上位アドレス１、下位アドレス２０４８で開始アドレスが特定されるサイズ３０７２バイトのデータウィンドウへのデータ送信が完了し、送信装置１は、ウインドウ待ち状態ＴＸ３に遷移する（ＴＸ２ａ）。
【０１８１】
受信装置２は、Ｗ（１：２０４８，１０２４）２８０５、Ｗ（１：３０７２，１０２４）２８０７、Ｗ（１：４０９６，１０２４）２８０８を受信すると、データ受信状態ＲＸ２からウインドウ更新待ち状態ＲＸ３へ遷移する（ＲＸ２ａ）。そして受信データを処理して、データウィンドウのアドレスを、上位アドレス１、下位アドレス２０４８で特定されるアドレスから、それに受信した３０７２バイト分加えたアドレス、すなわち上位アドレスを１に、下位アドレスを５１２０に、サイズを３０７２バイトに更新する（ＲＸ３ａ）。更新されたデータウインドウのアドレス及びサイズを、ウィンドウ通知コマンドＮ（１：５１２０，３０７２）２８０９を送信装置１のコントロールウィンドウにライトトランザクションを使って書き込むことで送信する（ＲＸ４ａ）。
【０１８２】
送信装置１はウィンドウ通知、Ｎ（１：５１２０，３０７２）２８０９を受信し（ＴＸ３ａ）、受信装置２のデータウィンドウの上位アドレス１、下位アドレス５１２０、サイズ３０７２バイトを検出し、ウインドウ検出状態ＴＸ４からデータ送信状態ＴＸ２へ遷移する（ＴＸ４ａ）。
【０１８３】
以下、送信装置１および受信装置２は、上記処理を繰り返し、Ｗ（１：４０９６，１０２４）２８０２８０８から最後のデータＷ（１：ｎ−ｒ，ｒ）２８１１までの転送を行う。そのあと、送信装置１は切断要求Ｔ（０：０，０）２８１２を受信装置２のコントロールウィンドウにライトトランザクションを使って送信し、初期状態ＴＸ０に戻る（ＴＸ２ｂ）。
【０１８４】
受信装置２は接続要求Ｔ（０：０，０）２８１２を受信すると受信データを処理して受信処理を終了し、初期状態ＲＸ０に戻る（ＲＸ２ｂ）。
【０１８５】
以上説明したように、送信装置１は、受信装置２のノードアドレス空間の指定アドレスから指定バイトのデータを書き込むことにより、指定サイズのファイルの転送を行うことができる。
【０１８６】
すなわち、送信装置はデータ送信に先立ってまず受信装置に接続要求を発行し、コネクションの確立を試みる。受信装置は接続要求を受けると、データ受信用のメモリ空間をそのアドレス及びサイズによって通知する。これによりコネクションが確立される。送信装置は、そのコネクションを通じて通知されたメモリ空間に対して送信データを書き込むことでデータ送信する。この際、送信装置は、送信データの残りサイズと通知されたメモリ空間の空き容量とを比較し、通知されたメモリ空間の空き容量以下のサイズに区切ってデータを送信する。また受信装置は、そのリソースの使用状況に合わせて受信用のメモリ空間を確保し、その情報を送信側に通知することで、データ受信をデータのサイズに関わらず行える。
【０１８７】
これにより、受信側がデータ受信のために確保できるメモリを利用して大容量のデータを送信できる。
【０１８８】
受信側の用意するメモリ空間は、送信側によるデータ送信ごとに動的に変更可能であるために、受信側がそのリソースの利用状態等に応じて確保したメモリ空間を効率的に利用できる。
【０１８９】
さらに、送信時に、空き容量分のデータを送信する必要はない。送信側は、適切なサイズに区切ってデータを送信することで、トランザクションレイヤのデータのフローを制御することができる。本実施形態では、データ送信は受信メモリ空間のサイズに関わらず１０２４バイトずつ行われている。トランザクション処理はアシンクロナスモードを用いて行われ、アシンクロナスモードはアイソクロナスモードよりも優先度が低いことから、トランザクションのための十分な帯域が確保できない場合もあり得る。このような場合でも、一定サイズ以下のセグメントごとに区切って送信することで、データ送信のタイムアウトやそれに伴う再送等を防止でき、不要なトラフィックを抑制できる。
【０１９０】
また、１３９４ネットワークでは、ノードは家庭電化製品等の様々な機器であることが想定される。このような機器はかならずしも十分なデータ処理能力を有しているとは限らない。本実施形態においては、このような場合でも、受信装置がウインドウ通知により主導して、送信装置と受信装置との間に設定されたコネクションの帯域を制御できる。
【０１９１】
（第２の実施の形態）
本発明の、第２の実施の形態として、送信装置のノードアドレス空間内の領域から受信装置がデータを読み出すことにより転送を行う場合について説明する。本実施形態の構成は、前記第１の実施の形態の構成と同様であり、本実施形態の説明においても、図１、図２３、図２４、および図２５を用いる。
【０１９２】
図１は、本実施の形態を示すブロック図で、構成は、前述の第１の実施の形態と同様である。次に、送信装置１および受信装置２について説明する。
【０１９３】
図２３は、本実施の形態の送信装置１および受信装置２のノードアドレス空間を示す図である。図中、コントロールウィンドウは、送信装置１、および受信装置２とも備え、接続の制御、およびデータ転送のフローコントロールに用いる。本実施の形態においては、そのアドレスは、各装置のＣｏｎｆｉｇＲＯＭのＮｏｄｅＤｅｐｅｎｄｅｎｔＩｎｆｏＤｉｒｅｃｔｏｒｙに記述し（図示せず）、他ノードから知ることができるものとする。データウィンドウは送信装置１が備えるもので、受信装置２はこの領域から、リードトランザクションを用いてデータを受信する。そのアドレス、およびサイズは、データ転送の進行とともに更新され、送信装置１から受信装置２に、前述のコントロールウィンドウを用いて通知される。また、データイメージは送信装置１から送信されるファイルイメージをノードアドレス空間にマッピングしたイメージであり、前述のデータウィンドウはこのデータイメージをカバーするように、アドレスをスライドする。
【０１９４】
図２４はコントロールウィンドウのデータフォーマットを示す。図中コマンド、ウィンドウアドレス上位、ウィンドウアドレス下位、およびウィンドウサイズは、前述の、第１の実施の形態と同様である。コマンドの値と意味も図２５に示すとおり、前述の、第１の実施の形態と同様である。
【０１９５】
図２９は送信装置１の状態遷移を示し、ＲＯＭ１３に格納されたプログラムをＣＰＵ１２が実行することにより実現する。図中、ＴＸ１０は初期状態、ＴＸ１１接続応答待ち状態、ＴＸ１２はウィンドウ更新状態、ＴＸ１３はデータ送信状態、ＴＸ１４はウィンドウ更新待ち状態状態、を示す。ＴＸ１０ａは受信装置２への接続要求送信によるＴＸ１１への状態遷移を示す。ＴＸ１１ａは接続応答受信によるＴＸ１２への状態遷移を示す。ＴＸ１１ｂは接続許可応答を受信できずタイムアウトによるか、接続拒否応答の受信によるＴＸ１０への状態遷移を示す。ＴＸ１２ａはウィンドウ通知の送信によるＴＸ１３への状態遷移を示す。ＴＸ１２ｂは終了要求送信によるＴＸ１０への状態遷移を示す。ＴＸ１３ａは送信データがウィンドウサイズに達したことによるＴＸ１４への状態遷移を示す。ＴＸ１３ｂはデータウィンドウの更新によるＴＸ１２への状態遷移を示す。ＴＸ１４ａはデータウィンドウの更新によるＴＸ１２への状態遷移を示す。
【０１９６】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、データ送信状態とウインドウ更新待ち状態とウインドウ更新状態とを、ＴＸ１３ａ，ＴＸ１４ａ，ＴＸ１２ａあるいはＴＸ１２ａ，ＴＸ１３ｂの径路に沿って遷移する。
【０１９７】
すなわち、送信装置は、送信データをデータウインドウに格納して、そのアドレス及びサイズをコントロールウインドウによって受信装置に通知すると、データ送信状態となる。この状態において、受信装置がデータウインドウからデータを読み出すつど、コントロールウインドウのアドレス及びサイズを、読み出されたデータ量に応じて更新する。そして、サイズが０になれば、すなわちデータウインドウからデータが読み尽くされれば、ウインドウ更新待ち状態ＴＸ１４となる。
【０１９８】
ウインドウ更新待ち状態あるいはデータ送信状態において、あらたなデータがデータウインドウに用意されたならウインドウ更新状態ＴＸ１２に遷移して、データウインドウのアドレス及びサイズによりコントロールウインドウを更新し、ウインドウ通知を受信装置に発行する。そしてデータ送信状態ＴＸ１３となる。
【０１９９】
こうして、コネクションがいったん設定されたなら、送信装置は送信データの用意及びデータウインドウの更新とウインドウ通知とを繰返し、大サイズのデータであってもデータウインドウサイズに合わせて送信することができる。データ送信に際しては、送信順序がデータの並びそのものを表すために、受信側は、受信したデータを受信した順序で再配置することで、ひとまとまりのデータとして処理することができる。
【０２００】
図３０は受信装置２の状態遷移を示し、ＲＯＭ２３に格納されたプログラムをＣＰＵ２２が実行することにより実現する。図中、ＲＸ１０は初期状態、ＲＸ１１は受信開始状態、ＲＸ１２はウィンドウ通知待ち状態、ＲＸ１３はウィンドウ検出状態、ＲＸ１４はデータ受信状態、を示す。ＲＸ１０ａは接続要求受信によるＲＸ１１への状態遷移を示す。ＲＸ１１ａは接続許可応答の送信によるＲＸ１２への状態遷移を示す。ＲＸ１１ｂは接続拒否応答の送信によるＲＸ１０への状態遷移を示す。ＲＸ１２ａはウィンドウ通知受信によるＲＸ１３への状態遷移を示す。ＲＸ１２ｂは終了要求受信によるＲＸ１０への状態遷移を示す。ＲＸ１３ａはウィンドウ検出によるＲＸ１４への状態遷移を示す。ＲＸ１４ａは受信データがウィンドウサイズに達したことによるＲＸ１２への状態遷移を示す。ＲＸ１４ｂはデータ受信状態においてウィンドウ通知を受信したことによるＲＸ１３への状態遷移を示す。
【０２０１】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、ウインドウ通知待ち状態とウインドウ検出状態とデータ受信状態とを、ＲＸ１２ａ，ＲＸ１３ａ，ＲＸ１４ａあるいはＲＸ１４ｂ，ＲＸ１３ａの径路に沿って遷移する。
【０２０２】
すなわち、受信装置は、送信装置からウインドウ通知によって通知されるデータウインドウのアドレス及びサイズをメモリ（受信データ管理メモリ）に記憶しておく。そして、通知されたデータウインドウからデータを読むごとに、読み出したサイズに応じて受信データ管理メモリに記憶したアドレス及びサイズを更新し、残りデータのアドレス及びサイズが受信データ管理メモリに記憶されているように管理する。そして、送信装置が用意したデータを読み尽くせば、すなわち管理している残りデータサイズが０になれば、受信状態ＲＸ１４からウインドウ通知待ち状態ＲＸ１２に移る。
【０２０３】
そして、ウインドウ通知待ち状態ＲＸ１２あるいはデータ受信状態ＲＸ１４において、送信装置からウインドウ通知があれば、ウインドウ検出状態ＲＸ１３に遷移する。ウインドウ検出状態においては、ウインドウ通知に表示されたデータウインドウのアドレス及びサイズを読み取って、受信データ表示メモリを更新し、データ受信状態ＲＸ１４に戻る。
【０２０４】
こうして、コネクションがいったん設定されたなら、受信装置はデータ受信とデータウインドウの更新およびウインドウ通知を繰返し、大サイズのデータであってもデータウインドウサイズに合わせて送信させることができる。データ受信に際しては、受信順序がデータの並びそのものを表すために、受信装置は、受信したデータを受信した順序で再配置することで、ひとまとまりのデータとして処理することができる。例えば、ウインドウサイズずつ受信したデータを、アプリケーションプログラムにより指定されるバッファに一連のデータとして格納し、切断要求の受信によってそのコネクションにおける全データを受信したものと判断し、そのデータをアプリケーションプログラムに引き渡す。
【０２０５】
以下、データ通信フローの一例を示しながら、データ通信処理を説明する。送信装置１は外部装置１５に格納したサイズｎバイトのファイルを受信装置２に転送するものとし、受信装置２は受信したファイルを外部装置２５に格納するものとする。図２８は、データ通信フローの一例を示す。なお、コマンド名は図２５に示したような略称（かっこ書きで示したもの）で示しており、コマンド名に続くかっこ内の数値は（ウインドウ上位アドレス：ウインドウ下位アドレス，ウインドウサイズ）を示す。図２５に示したように、パラメータを使用しないコマンドについては（０：０，０）で示す。
送信装置１は外部装置１５に格納したサイズｎバイトのファイルを受信装置２に転送するものとし、受信装置２は受信したファイルを外部装置２５に格納するものとする。
【０２０６】
図３１は、データ通信フローの一例を示す。
【０２０７】
図中、Ｃ（０：０，０）３１０１は送信装置１から受信装置２への接続要求を示し、受信装置２のコントロールウィンドウにブロックライトトランザクションを使って書き込む。送信装置１の状態はＴＸ１０からＴＸ１１に遷移する（ＴＸ１１ａ）。受信装置２の状態は接続要求を受け取って、ＲＸ１０からＲＸ１１へ遷移する（ＲＸ１１ａ）。Ａ（０：０，０）３１０２は受信装置２からの接続許可応答を示し、送信装置１のコントロールウィンドウにライトトランザクションを使って書き込む。受信装置２の状態は接続許可応答を送信してＲＸ１１からＲＸ１２へ遷移する（ＲＸ１１ａ）。送信装置１の状態は接続許可応答を受け取って、ＴＸ１１からＴＸ１２へ遷移する（ＴＸ１１ａ）。このとき、送信装置１はファイルの先頭から３０７２バイトを読み出して、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス０、ウィンドウサイズ３０７２バイトを読み出し可能に設定し、送信の準備をする。
【０２０８】
次に、Ｎ（１：０，３０７２）３１０３は送信装置１から受信装置２へのウィンドウ通知を示し、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス０、ウィンドウサイズ３０７２バイトが読み出し可能であることを、受信装置２のコントロールウィンドウにブロックライトトランザクションを使って送信する（ＴＸ１２ａ）。受信装置２はウィンドウ通知を受信するとＲＸ１３に状態遷移し（ＲＸ１２ａ）、送信装置１の更新されたデータウィンドウを検出するとＲＸ１４に遷移する（ＲＸ１３ａ）。
Ｒ（１：０，１０２４）３１０４は受信装置２から送信装置１へのリードリクエストを示し、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス０から、ブロックリードトランザクションを使って先に読み出したファイルの先頭１０２４バイトのデータを読み出す。Ｄ（１：０，１０２４）３１０５は送信装置１から受信装置２へのリードレスポンスを示し、受信装置２からのノードアドレス空間の上位アドレス１、下位アドレス０への１０２４バイトのリードリクエストに対して、送信装置はファイルの先頭１０２４バイトのデータを返す。
【０２０９】
続く、Ｒ（１：１０２４，１０２４）３１０６も、同じく受信装置２から送信装置１へのリードリクエストを示し、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス１０２４から、ブロックリードトランザクションを使って先に読み出したファイルの、次の１０２４バイトのデータを読み出す。Ｄ（１：１０２４，１０２４）３１０７は送信装置１から受信装置２へのリードレスポンスを示し、受信装置２からのノードアドレス空間の上位アドレス１、下位アドレス１０２４への１０２４バイトのリードリクエストに対して、送信装置は次の１０２４バイトのデータを返す。
【０２１０】
ここで、送信装置１はファイルの先頭から３０７２バイトの、次の２０４８バイトを読み出して、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス２０４８、ウィンドウサイズ３０７２バイトを読み出し可能に設定し、データウィンドウを更新する（ＴＸ１３ｂ）。Ｎ（１：２０４８，３０７２）３１０８は送信装置１から受信装置２へのウィンドウ通知を示し、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス２０４８、ウィンドウサイズ３０７２バイトが読み出し可能であることを、受信装置２のコントロールウィンドウにブロックライトトランザクションを使って送信する（ＴＸ１２ａ）。受信装置２はウィンドウ通知を受信するとＲＸ１３に状態遷移し（ＲＸ１４ｂ）、送信装置１の更新されたデータウィンドウを検出するとＲＸ１４に遷移する（ＲＸ１３ａ）。
【０２１１】
Ｒ（１：２０４８，１０２４）３１０９、Ｒ（１：３０７２，１０２４）３１１１、Ｒ（１：４０９６，１０２４）３１１３は受信装置２から送信装置１へのリードリクエストを示し、Ｄ（１：２０４８，１０２４）３１１０、Ｄ（１：３０７２，１０２４）３１１２、Ｄ（１：４０９６，１０２４）３１１４は送信装置１から受信装置２へのリードレスポンスを示す。送信装置１はデータウィンドウの３０７２バイトの送信を完了して、ＴＸ１２に遷移し（ＴＸ１４ａ）、受信装置２は同じく３０７２バイトの受信を完了してＲＸ１２に遷移する（ＲＸ１４ａ）。
【０２１２】
送信装置１はファイルから次の３０７２バイトを読み出して、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス５１２０、ウィンドウサイズ３０７２バイトを読み出し可能に設定し、送信の準備をする。
【０２１３】
次に、Ｎ（１：５１２０，３０７２）３１１５は送信装置１から受信装置２へのウィンドウ通知を示し、送信装置１のノードアドレス空間の上位アドレス１、下位アドレス５１２０、ウィンドウサイズ３０７２バイトが読み出し可能であることを、受信装置２のコントロールウィンドウにブロックライトトランザクションを使って送信する（ＴＸ１２ａ）。受信装置２はウィンドウ通知を受信するとＲＸ１３に状態遷移し（ＲＸ１２ａ）、送信装置１の更新されたデータウィンドウを検出するとＲＸ１４に遷移する（ＲＸ１３ａ）。
【０２１４】
以下、送信装置１、および受信装置２は、上記処理を繰り返し、Ｒ（１：５１２０，１０２４）３１１６、Ｄ（１：５１２０，１０２４）３１１７から最後のＲ（１：ｎ−ｒ，ｒ）３１１８、Ｄ（１：ｎ−ｒ，ｒ）３１１９までの転送を行う。そのあと、送信装置１は接続要求Ｔ（０：０，０）を受信装置２のコントロールウィンドウにブロックライトトランザクションを使って送信し初期状態ＴＸ１０に戻る（ＴＸ１２ｂ）。受信装置２は接続要求Ｔ（０：０，０）３１２０を受信すると受信データを処理して受信処理を終了して初期状態ＲＸ１０に戻る（ＲＸ１２ｂ）。
【０２１５】
以上説明したように、受信装置２は、送信装置１のノードアドレス空間の指定されたアドレスから指定されたサイズのデータを読み込むことにより、指定サイズのファイルの転送を行うことができる。
【０２１６】
すなわち、送信装置はデータ送信に先立ってまず受信装置に接続要求を発行し、コネクションの確立を試みる。受信装置は接続要求を受けると、接続許可を通知する。これによりコネクションが確立される。送信装置は、そのコネクションを通じて、まず送信データのアドレスとサイズとを受信装置に通知し、受信装置は、通知されたメモリ空間から、すべてあるいは適当なセグメントに区切って送信データを読み込むことでデータを受信する。このセグメントは、例えば受信装置が用意できる受信用メモリサイズに応じて決定したり、あるいは、適当なサイズを予め決めておき、受信用メモリのサイズに関わらずそのサイズずつデータを読み出しても良い。
【０２１７】
これにより、受信側がデータ受信のために確保できるメモリを利用して大容量のデータを送信できる。
【０２１８】
受信側は、その主導によってデータ送信を進行させることができ、また、送信側で用意するメモリ空間は、データを送信しつつ動的に変更可能であるために、送信側がそのリソースの利用状態等に応じて確保したメモリ空間を効率的に利用できる。
【０２１９】
さらに、送信時に、送信側が用意したデータをすべて受信側が一括して読み出す必要はない。受信側は、適切なサイズに区切ってデータを読み出すことで、データのフローを制御することができる。
【０２２０】
また、１３９４ネットワークでは、ノードは家庭電化製品等の様々な機器であることが想定される。このような機器はかならずしも十分なデータ処理能力を有しているとは限らない。本実施形態においては、このような場合でも、受信装置がウインドウ通知により主導して、送信装置と受信装置との間に設定されたコネクションの帯域を制御できる。
【０２２１】
以上説明したように本実施形態によれば、データ転送のための領域の通知によりフローコントロールを簡単にし、転送データのアドレスとノードアドレス空間のアドレスを１対１に対応させることにより、送信時のデータ分割、受信後のデータ再構成を容易にするとともに、転送のためのリソース状況に合わせて、データ転送のための領域を移動させることにより、機器の処理能力に応じたデータ転送を可能にする、簡易なデータ転送装置を提供することができる。
【０２２２】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０２２３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【０２２４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２２５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０２２６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０２２７】
【発明の効果】
以上説明したように本発明によれば、メモリマップバスのノードアドレス空間上に確保した、データ転送のための領域の通知により、フローコントロールを簡単にした。
【０２２８】
さらに、転送データのアドレスとノードアドレス空間のアドレスを１対１に対応させることにより、送信時のデータ分割、受信後のデータ再構成を容易にした。
【０２２９】
さらに、転送のためのリソース状況に合わせて、データ転送のための領域を移動させることにより、機器の処理能力に応じたデータ転送を可能にした。
【図面の簡単な説明】
【図１】第１および第２の、実施の形態の構成を示すブロック図である。
【図２】１３９４シリアルバスのネットワークの構成を示した図である。
【図３】本発明の１３９４シリアルバスの構成要素を示した図である。
【図４】本発明の１３９４シリアルバスのリンク・レイヤ提供可能なサービスを示す図である。
【図５】本発明の１３９４シリアルバスのトランズアクション・レイヤ提供可能なサービスを示す図である。
【図６】１３９４インタフェースにおけるアドレス空間を説明する図である
【図７】１３９４インタフェースにおけるＣＳＲコア・レジスタに格納される情報のアドレス及び機能を示す図である。
【図８】１３９４インタフェースにおけるシリアルバス・レジスタに格納される情報のアドレス及び機能を示す図である。
【図９】１３９４インタフェースにおける最小形式のＣｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭを示す図である。
【図１０】１３９４インタフェースにおける一般形式のＣｏｎｆｉｇｕｒａｔｉｏｎ　ＲＯＭを示す図である。
【図１１】１３９４インタフェースにおけるシリアルバス装置レジスタに格納される情報のアドレス及び機能を示す図である。
【図１２】ＩＥＥＥ１３９４規格に準拠した通信ケーブルの断面図である。
【図１３】ＤＳ−Ｌｉｎｋ符号化方式を説明する図である。
【図１４】、
【図１５】、
【図１６】バスリセットの開始からノードＩＤの割り当て処理までの基本的なシーケンスを示した図である。
【図１７】図１５に示したステップＳ１５０５の処理（即ち、自動的に各ノードのノードＩＤを割り当てる処理）を詳細に説明するフローチャートである。
【図１８】１３９４インタフェースにおけるセルフＩＤパケットの構成を示した図である。
【図１９】１３９４ネットワークにおけるアービトレーションを説明する図である。
【図２０】１通信サイクルにおいてＩｓｏｃｈｒｏｎｏｕｓ転送モードとＡｓｙｎｃｈｒｏｎｏｕｓ転送モードとを混在させた場合を説明する図である。
【図２１】Ｉｓｏｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットのフォーマットを示した図である。
【図２２】本発明のアシンクロナス転送のパケットフォーマットを示した図である。
【図２３】第１および第２の、実施の形態のノードアドレス空間を示す図である。
【図２４】第１および第２の、実施の形態の、コントロールウィンドウのデータフォーマットを示す図である。
【図２５】第１および第２の、実施の形態の、コマンドの値と意味を示す図である。
【図２６】第１の、実施の形態の、送信装置１の状態遷移図である。
【図２７】第１の、実施の形態の、受信装置２の状態遷移図である。
【図２８】第１の、実施の形態の、通信フローの１例を示す図である。
【図２９】第２の、実施の形態の、送信装置１の状態遷移図である。
【図３０】第２の、実施の形態の、受信装置２の状態遷移図である。
【図３１】第２の、実施の形態の、通信フローの１例を示す図である。
【符号の説明】
１　送信装置
１１　システムバス
１２　ＣＰＵ
１３　ＲＯＭ
１４　ＲＡＭ
１５　外部装置
１６　ＩＥＥＥ１３９４インタフェース
２　受信装置
２１　システムバス
２２　ＣＰＵ
２３　ＲＯＭ
２４　ＲＡＭ
２５　外部装置
２６　ＩＥＥＥ１３９４インタフェース
３　ＩＥＥＥ１３９４ケーブル
【図１】
2004064665.tif 000003
【図２】
2004064665.tif 000004
【図３】
2004064665.tif 000005
【図４】
2004064665.tif 000006
【図５】
2004064665.tif 000007
【図６】
2004064665.tif 000008
【図７】
2004064665.tif 000009
【図８】
2004064665.tif 000010
【図９】
2004064665.tif 000011
【図１０】
2004064665.tif 000012
【図１１】
2004064665.tif 000013
【図１２】
2004064665.tif 000014
【図１３】
2004064665.tif 000015
【図１４】
2004064665.tif 000016
【図１５】
2004064665.tif 000017
【図１６】
2004064665.tif 000018
【図１７】
2004064665.tif 000019
【図１８】
2004064665.tif 000020
【図１９】
2004064665.tif 000021
【図２０】
2004064665.tif 000022
【図２１】
2004064665.tif 000023
【図２２】
2004064665.tif 000024
【図２３】
2004064665.tif 000025
【図２４】
2004064665.tif 000026
【図２５】
2004064665.tif 000027
【図２６】
2004064665.tif 000028
【図２７】
2004064665.tif 000029
【図２８】
2004064665.tif 000030
【図２９】
2004064665.tif 000031
【図３０】
2004064665.tif 000032
【図３１】
2004064665.tif 000033