(57)【特許請求の範囲】
【請求項１】
シリアルバスを分割して構築されかつ各々複数のノードが接続された第１及び第２のローカルバスを接続するローカルバスブリッジであって、
予め設定された特定ノードが接続された前記第１のローカルバスに前記第２のローカルバスの接続情報を通知する手段と、前記第２のローカルバスに前記特定ノードの情報のみを提示する手段とを有し、
前記第１のローカルバスに接続されたノードと前記第２のローカルバスに接続されたノードとの間のデータ転送を相互に可能とするためにＩＤ変換を行う手段と、前記特定ノードの情報と前記第２のローカルバスに接続されたノード各々の情報とを管理するＩＤ変換テーブルとを含み、
前記ＩＤ変換テーブルを用いて前記特定のノードと前記第２のローカルバスに接続されたノード各々とのデータ転送を可能とし、
前記ＩＤ変換テーブルは、前記特定ノード及び前記第２のローカルバスに接続されたノード各々に固有の認識番号を用いて管理することを特徴とするローカルバスブリッジ。
【請求項２】
前記第１のローカルバスにおいて確実にルートになることを特徴とする請求項１記載のローカルバスブリッジ。
【請求項３】
前記ＩＤ変換は、前記第１及び第２のローカルバス各々のトポロジを解析し、前記第１及び第２のローカルバス各々に接続されたノード各々の識別情報を管理することを特徴とする請求項１または請求項２記載のローカルバスブリッジ。
【請求項４】
前記固有の認識番号は、ｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ及びｃｈｉｐ  ＩＤであることを特徴とする請求項１から請求項３のいずれか記載のローカルバスブリッジ。
【請求項５】
前記ＩＤ変換テーブルは、前記特定ノード及び前記第２のローカルバスに接続されたノード各々の転送性能を管理し、前記特定ノードと前記第２のローカルバスに接続されたノード各々とのパケット転送時の転送速度を適性にすることを特徴とする請求項１から請求項４のいずれか記載のローカルバスブリッジ。
【請求項６】
前記ＩＤ変換は、ネットワークを初期化するためのバスリセットによる前記第１及び第２のローカルバス各々におけるトポロジの変化を前記ＩＤ変換テーブルにて吸収し、整合性を維持することを特徴とする請求項１から請求項５のいずれか記載のローカルバスブリッジ。
【請求項７】
前記第１及び第２のローカルバス各々における前記ＩＤ変換テーブルで吸収できない不整合が発生した時にバスリセットを発行してトポロジの再構築を行うことを特徴とする請求項１から請求項６のいずれか記載のローカルバスブリッジ。
【請求項８】
前記第２のローカルバスに接続されたノード各々から前記特定ノードへのアクセスに対して当該特定ノードに代行して動作することを特徴とする請求項１から請求項７のいずれか記載のローカルバスブリッジ。
【請求項９】
前記第２のローカルバスのトポロジを仮想ポートに割当てて当該トポロジを形成し、そのトポロジを前記第１のローカルバスに伝達することを特徴とする請求項１から請求項８のいずれか記載のローカルバスブリッジ。
【請求項１０】
前記第２のローカルバスのトポロジを前記第１のローカルバスに伝達する際に自己識別パケットを生成して送信することを特徴とする請求項１から請求項９のいずれか記載のローカルバスブリッジ。
【請求項１１】
前記第２のローカルバスにおけるリピータの情報を排除したトポロジを前記第１のローカルバスに伝達することを特徴とする請求項１から請求項９のいずれか記載のローカルバスブリッジ。
【請求項１２】
前記ローカルバスは、ＩＥＥＥ１３９４ローカルバスであることを特徴とする請求項１から請求項１１のいずれか記載のローカルバスブリッジ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はローカルバスブリッジに関し、特にシリアルバスを分割し、互いに送受信をするためのローカルバスブリッジに関する。
【０００２】
【従来の技術】
コンピュータの性能は年々加速化し、それに合わせて記憶装置等の周辺装置もますます高度化している。従来、家電製品とコンピュータ製品とは明確に区分されているが、近年、コンピュータの家電化と家電製品のディジタル化とが進み、両者が互いに共存することができる環境が必要となっている。
【０００３】
このような背景において、高速かつ大容量のデータ転送を実現できるインタフェースとしてＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１３９４で標準化された高速シリアルバス（以下、ＩＥＥＥ１３９４バスとする）があげられる。このＩＥＥＥ１３９４バスについては、「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｅｒｉａｌ  Ｂｕｓ」（以下、ＩＥＥＥ１３９４−１９９５とする）に記載されている。
【０００４】
ＩＥＥＥ１３９４−１９９５ではデータ転送速度として、１００Ｍｂｐｓ（メガビット／秒）、２００Ｍｂｐｓ、４００Ｍｂｐｓが規定されている。さらに、ＩＥＥＥ１３９４−１９９５の拡張規格であるＩＥＥＥ１３９４．ｂでは、最高３２００Ｍｂｐｓのデータ転送速度が規定されている。
【０００５】
信号線はシールドされたツイストペアで構成され、耐ノイズ性を考慮して小振幅の差動信号でドライブされている。このデータはデータとストローブとからなっており、クロックはデータとストローブとの排他的論理和によって受信側で生成される。
【０００６】
ＩＥＥＥ１３９４バスを用いて構築されたネットワークの一例を図４０に示す。ＩＥＥＥ１３９４バスは取り回しが容易かつシンプルな構成のケーブル２１００を用いる。また、接続形状はＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）のように、ノード（端末機器）２１０１〜２１０ｎのようなデイジーチェン接続に固定されず、ノード２１０１からノード２１１１，２１２１を通して、ノード２１３１〜２１３４のように複数のポート２１３０を持つノードで枝分かれさせて接続することも可能である。
【０００７】
ＩＥＥＥ１３９４バスの大きな特徴として、電源を切ることなく、ＩＥＥＥ１３９４バスのネットワークに新しくノードを追加したり、取り外したりすることができる。ＩＥＥＥ１３９４−１９９５ではＩＥＥＥ１２１２規格に従った６４ビット固定アドレシングを採用している。
【０００８】
ＩＥＥＥ１３９４のアドレスマップを図４１に示す。アドレスマップの上位１６ビットはＮＯＤＥ  ＩＤ２２０１を示す。ＮＯＤＥ  ＩＤ２２０１の上位１０ビットはＢＵＳ  ＩＤ２２０２と、下位６ビットをＰＨＹ（Ｐｈｙｓｉｃａｌ）ＩＤ２２０３とに分けられる。ＢＵＳ  ＩＤ２２０１は０から１０２３までを指定することができるが、１０２３はローカルバス２２０４（データ転送元であるノードに直接接続されているバス）を示す。また、ＰＨＹ  ＩＤ２２０３は０から６３までを指定することができるが、６３はブロードキャスト２２０５（バス内で接続されている全てのノードに宛てられるデータ）を示す。
【０００９】
よって、ＩＥＥＥ１３９４においてはバス数が１０２３、各々のバスに６３のノード、合計６４４４９台の接続が可能である。各々のノードに割当てられたアドレス空間は残りの４８ビット（２５６テラバイト）である。０から‘ＦＦＦＦＤＦＦＦ  ＦＦＦＦ’（‘’は１６進数を示す）がメモリ空間２２０８に、‘ＦＦＦＦ  Ｅ０００  ００００’から‘ＦＦＦＦ  ＥＦＦＦ  ＦＦＦＦ’がプライベート空間２２０７に、‘ＦＦＦＦ  Ｆ０００  ００００’から‘ＦＦＦＦ  ＦＦＦＦ  ＦＦＦＦ’がレジスタ空間２２０６にそれぞれ割当てられる。
【００１０】
ＩＥＥＥ１３９４のレジスタはＩＥＥＥ１２１２で規格されているＣＳＲ（Ｃｏｎｔｒｏｌ  ａｎｄ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒｓ）アーキテクチャを採用しているスタイルによって規定されている。ＣＳＲはレジスタ空間の‘０００  ００００’から‘０００  ０１ＦＦ’までをＣＳＲコアと基本的なレジスタ空間２２０９とによって構成されている。続けて、‘０００  ０２００’から‘０００  ０３ＦＦ’までをバス依存の用途２２１０で予約している。さらに‘０００  ０８００’以降の空間も初期ユニットの中にノード依存のリソースのための空間２２１２として予約している。
【００１１】
トランザクション対応のノードは、コンフィグレーションＲＯＭ空間２２１１に会社識別子等のノードの特徴や機能を示す情報を実装しなくてはならない。コンフィグレーションＲＯＭは、図４２に示すような内容が会社識別子のみの最小フォーマット形式と、図４３に示すような一般フォーマット形式とがある。一般フォーマットにはｂｕｓ  ｉｎｆｏ  ｂｌｏｃｋ２３０１内にｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２（すなわち、会社識別子）とｃｈｉｐ  ＩＤ２３０３とがある。
【００１２】
図４０において、各ノード間はツイストペア線２組をシールドしたケーブル２１００で接続されている。各ノードはポート２１３０からケーブル２１００の信号線に所定のバイアス電圧をかけている。図４０に示すネットワークにおいてノードの追加または取外しがおきた場合、例えば、新規にノード２１４１のポート２１４０とノード２１３４のポート２１３０とがケーブルで接続された場合、ポート２１３０において信号線のバイアス電圧の変動を検知したノード２１３４はネットワーク全体に、ネットワークを初期化するための信号であるバスリセット信号を送信する。
【００１３】
バスリセット信号を受信した各ノードと、バスリセット信号を送信したノード２１３４とは、これまでに記憶していたネットワークにあるバス及び接続されているノードに関する情報（以下、トポロジ情報とする）を破棄する。これによって、ネットワークの初期化が完了する。続いて、ネットワークではトポロジ情報の再構築が実行される。
【００１４】
その時、各ノードに図４１で示すＰＨＹ  ＩＤ２２０３が割当てられ、そのバスの制御権を管理するルートノードや後述するＩｓｏｃｈｒｏｎｏｕｓリソースを管理するＩｓｏｃｈｒｏｎｏｕｓ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｒ（以下、ＩＲＭとする）が決定する。これらのバスの初期化からトポロジの構築までの設定は、各ノード間で自動的に行われるので、ネットワークの使用者はノード毎に設定する必要はない。これらの特徴を有するＩＥＥＥ１３９４バスはコンピュータとその周辺機器との接続のための手段だけに留まらず、家庭内のあらゆる機器間の接続を可能にしている。
【００１５】
ＩＥＥＥ１３９４バス上では、パケットを転送するプロセスをサブアクション（ｓｕｂａｃｔｉｏｎ）と呼び、大きく分けて下記に示す二種類が存在する。一つはＩｓｏｃｈｒｏｎｏｕｓサブアクションと呼ばれ、ＩＥＥＥ１３９４バスの特徴でもあるパケットを規則的な間隔で転送するという機能をもっている。このサブアクションでは特定のノードに転送するのでなく、チャネルアドレスを使用してバス全体に転送する。
【００１６】
もう一つはＡｓｙｎｃｈｒｏｎｏｕｓサブアクションと呼ばれる、非同期の転送方法である。ＡｓｙｎｃｈｒｏｎｏｕｓサブアクションはＩｓｏｃｈｒｏｎｏｕｓサブアクションとは異なり、規則的な間隔でデータを転送することはできない。数バイトのヘッダ情報と実データとを、指定されたノードに転送し、データを受信したノードは必ず認識パケット（Ａｃｋｎｏｗｌｅｄｇｅ  Ｐａｃｋｅｔ）を返す。但し、転送先アドレス内のＰＨＹ  ＩＤ２２０３が６３のブロードキャストや、ＩＥＥＥ１３９４−１９９５の拡張規格であるＩＥＥＥ１３９４ａ−２０００から定義されているアシンクロナスストリームパケット（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｓｔｒｅａｍ  Ｐａｃｋｅｔ）等の認識パケットを必要としないサブアクションの場合、認識パケットは返らない。
【００１７】
ＩＥＥＥ１３９４のシステム構成の一例を図４４に示す。ＩＥＥＥ１３９４バスに接続されている、トランザクション対応のノードは物理層（Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）機能２４０３及びリンク層（Ｌｉｎｋ  Ｌａｙｅｒ）機能２４０４からなるハードウェア（ｈａｒｄｗａｒｅ）機能２４０１と、トランザクション層（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ）機能２４０５及びシリアルバス管理（Ｓｅｒｉａｌ  Ｂｕｓ  Ｍａｎａｇｅｍｅｎｔ）機能２４０６からなるファームウェア（ｆｉｒｍｗａｒｅ）機能２４０２とを有している。送信パケットはトランザクション層機能２４０５からリンク層機能２４０４、物理層機能２４０５を通ってＩＥＥＥ１３９４バス２４００に送信される。また、受信パケットはＩＥＥＥ１３９４バス２４００から物理層機能２４０３、リンク層機能２４０４を通ってトランザクション層機能２４０５へと送られる。
【００１８】
物理層機能２４０３はバスリセットによる初期化からトポロジの構築、ＩＥＥＥ１３９４バス２４００のシリアルバスとリンク層機能２４０４のパラレルバスの変換、ＩＥＥＥ１３９４バス２４００上におけるアービトレーションへの参加等である。この中のトポロジの構築フェーズにおいて、物理層機能２４０３はＳＥＬＦ  ＩＤパケットと呼ばれる、自分のＮＯＤＥ  ＩＤ２２０１やスピード、接続情報等を他ノードに対して伝えるためのパケットを自動的に送信する。
【００１９】
リンク層機能２４０４は、後述するサイクルスタートパケットの制御、パケット送信、リトライ制御、パケット受信制御、上記のＣＳＲの管理等である。トランザクション層機能２４０５は、送信パケットの生成、受信パケットの処理等である。シリアルバス管理機能２４０６は、ノードの制御や、上記のＩＲＭの機能等である。
【００２０】
Ｉｓｏｃｈｒｏｎｏｕｓサブアクション、Ａｓｙｎｃｈｒｏｎｏｕｓサブアクションが行われているバスの一例を図４５に示す。ＩＥＥＥ１３９４バスでは、上述した通り、バスリセット後のトポロジ構築によってルートノードが確定し、Ｉｓｏｃｈｒｏｎｏｕｓパケットがある環境ではこのルートノードがサイクルスタートパケット（Ｃｙｃｌｅ  Ｓｔａｒｔ  Ｐａｃｋｅｔ）２５０２を送信するサイクルマスタになる。
【００２１】
サイクルマスタは約１２５μｓ（マイクロ秒）の間隔で、サイクルスタートパケット２５０２を送出する。ＩＲＭからＩｓｏｃｈｒｏｎｏｕｓリソースを獲得したノードはサイクルスタートパケット２５０２を検知すると、Ｉｓｏｃｈｒｏｎｏｕｓパケット２５０３を送出する。その約１２５μｓのサイクル期間２５０１内のすべてのＩｓｏｃｈｒｏｎｏｕｓパケット２５０３が転送し終わり、サブアクションギャップ（Ｓｕｂａｃｔｉｏｎ  ｇａｐ）２５０６を検出すると、各ノードはＡｓｙｎｃｈｒｏｎｏｕｓパケット２５０４を送出し、それを受信したノードが認識パケット２５０５を返す。
【００２２】
尚、サイクルスタートパケット２５０２もＡｓｙｎｃｈｒｏｎｏｕｓパケットである。また、上記のＡｓｙｎｃｈｒｏｎｏｕｓサブアクションにおけるトランザクションの形態として、二種類のトランザクションがある。
【００２３】
トランザクションの形態の一つであるユニファイドトランザクションのデータの流れを図４６に示す。要求ノードのトランザクション層２６０１から送信された要求パケットは要求ノードのリンク層２６０２、応答ノードのリンク層２６０３を通って、応答ノードのトランザクション層２６０４が受信する。すると、応答ノードのトランザクション層２６０４はすぐにこのパケットに対する完了の認識パケットを送信し、これを要求ノードのトランザクション層２６０１が確認してトランザクションが完結する。
【００２４】
もう一つの形態であるスプリットトランザクションのデータの流れを図４７に示す。要求ノードのトランザクション層２６０１から送信された要求パケットが、上述したユニファイドトランザクションと同様にして、応答ノードのトランザクション層２６０４で受信する。すると、応答ノードのトランザクション層２６０４はこのパケットに対し、ペンディングの認識パケットを送信し、ひとまずトランザクションを終わらせる。その後、応答ノードのトランザクション層２６０４で前に受取った要求に対する応答が準備できた時点で、完了の応答パケットを送信する。そのパケットを要求ノードのトランザクション層２６０１が確認し、送信した認識パケットを応答ノードのトランザクション層２６０４が確認して、トランザクションが完結する。
【００２５】
ＩＥＥＥ１３９４バスではケーブルが挿抜される度に、上述したバスリセットが発生し、バスの初期化が行われるので、バスの使用効率が低下してしまう。この問題を解決するために、上記のＢＵＳ  ＩＤを使用してバスを分割するＩＥＥＥ１３９４バスブリッジがＰ１３９４．１の規格や特開平１１−２２０４８５号公報に示されている。
【００２６】
【発明が解決しようとする課題】
上述した従来のＩＥＥＥ１３９４バスでは、バスに接続されている全てのノードがあらゆるノードに対して使用権があるので、一つのノードがＩＥＥＥ１３９４バスに接続されている他のノードを占有することができないという問題がある。
【００２７】
また、ＩＥＥＥ１３９４バスブリッジを用いてＩＥＥＥ１３９４バスを分割した時には、バスリセットからトポロジ情報を構築するまでの工程も分割されるので、ＩＥＥＥ１３９４バスブリッジの先に接続されているノードの存在を知る術がないという問題がある。
【００２８】
そこで、本発明の目的は上記の問題点を解消し、ＩＥＥＥ１３９４バスに接続されるノードを特定のノードが確実に占有可能な環境を得ることができるローカルバスブリッジを提供することにある。
【００２９】
また、本発明の他の目的は、バスを分割しても双方のバスに接続されているノード同士が互いに存在を認識可能な環境を得ることができるローカルバスブリッジを提供することにある。
【００３０】
【課題を解決するための手段】
本発明によるローカルバスブリッジは、シリアルバスを分割して構築されかつ各々複数のノードが接続された第１及び第２のローカルバスを接続するローカルバスブリッジであって、
予め設定された特定ノードが接続された前記第１のローカルバスに前記第２のローカルバスの接続情報を通知する手段と、前記第２のローカルバスに前記特定ノードの情報のみを提示する手段とを備え、
前記第１のローカルバスに接続されたノードと前記第２のローカルバスに接続されたノードとの間のデータ転送を相互に可能とするためにＩＤ変換を行う手段と、前記特定ノードの情報と前記第２のローカルバスに接続されたノード各々の情報とを管理するＩＤ変換テーブルとを含み、
前記ＩＤ変換テーブルを用いて前記特定のノードと前記第２のローカルバスに接続されたノード各々とのデータ転送を可能とし、
前記ＩＤ変換テーブルは、前記特定ノード及び前記第２のローカルバスに接続されたノード各々に固有の認識番号を用いて管理している。
【００３１】
すなわち、本発明のローカルバスブリッジは、ＩＥＥＥ１３９４ローカルバスブリッジにおいて、ＢＵＳ  ＩＤを変えることなく、バスを分割し、各バスに接続されているノードにおいてバスが分割されていることを意識することなく、互いに認識しあい、パケットの送受信を可能にしたことを特徴としている。
【００３２】
本発明のローカルバスブリッジでは、一方のバスに対して他方のノードに接続されている特定のノードとして振舞い、その他のノードの存在を隠す。したがって、その特定のノードが同じバスに接続されているノードを占有することが可能となる。
【００３３】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるローカルバスブリッジの構成を示すブロック図である。図１において、ＩＥＥＥ１３９４ローカルバスブリッジ１はＬＩＮＫ機能２と、専用ＰＨＹ（Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）機能６と、標準ＰＨＹ機能７と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８とから構成されている。ここで、ＰＨＹ機能とはＩＥＥＥ１３９４−１９９５またはその拡張規格で規定された物理層の機能を持つハードウェアのことである。
【００３４】
また、ＬＩＮＫ機能２は内部ポータル３と、外部ポータル４と、制御部５とから構成されている。内部ポータル３及び外部ポータル４はＰＨＹ−ＬＩＮＫインタフェース１０２，１０３を通じてそれぞれ専用ＰＨＹ機能６及び標準ＰＨＹ機能７に接続されている。
【００３５】
内部ポータル３はローカルバス１０１上で一つのノードとして機能し、ローカルバス１０４に接続されているノードの情報を伝える。外部ポータル４はローカルバス１０４上でローカルバス１０１に接続されている特定のノードとして機能し、ローカルバス１０１に接続されているその他のノードの情報は伝えない。
【００３６】
また、内部ポータル３及び外部ポータル４と制御部５とは内部バス１１１，１１２で接続されており、互いに通信が可能である。また、制御部５からＲＯＭ８にコンフィグレーションＲＯＭの情報等の必要な情報を読み書きすることが可能である。
【００３７】
制御部５は上記のシリアルバス管理、トランザクション層、リンク層の機能の他に、バスリセット分割、コンフィグレーションＲＯＭのミラーリング、ＮＯＤＥ  ＩＤ変換、スピード変換の機能を行う。
【００３８】
ＩＥＥＥ１３９４ローカルバスブリッジ１は、内部ポータル３が接続されているローカルバス１０１に特定の端末を接続し、その識別情報をＲＯＭ８に事前に記録しておき、電源投入後、ＲＯＭ８からの識別情報により内部ポータル３側に接続されている特定の端末を検出する。
【００３９】
一方、ＩＥＥＥ１３９４ローカルバスブリッジ１は、外部ポータル４が接続されているローカルバス１０４に接続されているすべての端末の識別情報を読出し、制御部５に格納する。ＩＥＥＥ１３９４ローカルバスブリッジ１は、再度、ローカルバス１０１にバスリセットを発生させ、ローカルバス１０４の接続情報を通知するために自己識別パケットを制御部５で生成し、専用ＰＨＹ６を介して送信する。さらに、ＩＥＥＥ１３９４ローカルバスブリッジ１はローカルバス１０４にローカルバス１０１に接続されている特定の端末の情報のみを提示することによって、その特定の端末として振舞う。
【００４０】
図２は図１の内部ポータル３の構成を示すブロック図である。図２において、内部ポータル３はパケット受信制御部３１とパケット送信制御部３２とから構成されている。パケット受信制御部３１はパケット受信部３１１と、Ａｓｙｎｃｈｒｏｎｏｕｓパケット受信制御部３１２と、Ｉｓｏｃｈｒｏｎｏｕｓパケット受信制御部３１３とから構成されている。パケット送信制御部３２はパケット送信部３２１と、サイクルスタートパケット送信制御部３２２と、Ａｓｙｎｃｈｒｏｎｏｕｓパケット送信制御部３２３と、Ｉｓｏｃｈｒｏｎｏｕｓパケット送信制御部３２４とから構成されている。
【００４１】
パケット受信制御部３１においてはローカルバス１０１から受信したパケットを専用ＰＨＹ機能６を通して受信し、そのパケットをパケット受信部３１１によってＡｓｙｎｃｈｒｏｎｏｕｓパケットとＩｓｏｃｈｒｏｎｏｕｓパケットとに分割し、各受信制御部に転送する。Ａｓｙｎｃｈｒｏｎｏｕｓパケット受信制御部３１２はパケットを受信すると、必要な情報を制御部５に送り、許可を受けてから必要な情報を付加して制御部５に転送する。また、Ｉｓｏｃｈｒｏｎｏｕｓパケット受信制御部３１３はパケットを受信すると、転送に必要な情報を付加して制御部５に転送する。
【００４２】
パケット送信制御部３２においては制御部５からサイクルスタートパケット送信制御部３２２にパケットが転送されてきたら、そのパケットをパケット送信部３２１からＡｓｙｎｃｈｒｏｎｏｕｓのタイミングで専用ＰＨＹ機能６に送信し、ローカルバス１０１における上記のＡｓｙｎｃｈｒｏｎｏｕｓサブアクションを行う。
【００４３】
制御部５からＡｓｙｎｃｈｒｏｎｏｕｓ送信制御部３２３に転送されてきたパケットは、上記のサイクルスタートパケットと同様に、Ａｓｙｎｃｈｒｏｎｏｕｓのタイミングでパケット送信部３２１から送信を行う。尚、サイクルスタートパケットとＡｓｙｎｃｈｒｏｎｏｕｓパケットとにおいては、サイクルスタートパケットが優先して送信される。Ｉｓｏｃｈｒｏｎｏｕｓ送信制御部３２４も、上記と同様にして、ＩｓｏｃｈｒｏｎｏｕｓのタイミングでＩｓｏｃｈｒｏｎｏｕｓサブアクションを行う。
【００４４】
図３は図１の外部ポータル４の構成を示すブロック図である。図３において、外部ポータル４はパケット受信制御部４１とパケット送信制御部４２とから構成されている。パケット受信制御部４１はパケット受信部４１１と、サイクルスタートパケット受信制御部４１２と、Ａｓｙｎｃｈｒｏｎｏｕｓパケット受信制御部４１３と、Ｉｓｏｃｈｒｏｎｏｕｓパケット受信制御部４１４とから構成されている。パケット送信制御部４２はパケット送信部４２１と、サイクルスタートパケット送信制御部４２２と、Ａｓｙｎｃｈｒｏｎｏｕｓパケット送信制御部４２３と、Ｉｓｏｃｈｒｏｎｏｕｓパケット送信制御部４２４とから構成されている。外部ポータル４ではサイクルスタートパケット受信制御部４１２を除いて、上述した内部ポータル３と同様の動作をする。
【００４５】
内部ポータル３は後述する専用ＰＨＹ機能６の動作によって、確実に上記のサイクルマスタ及びＩＲＭになるので、サイクルスタートパケットは送信方向のみであるが、外部ポータル４ではバスリセットの度にサイクルマスタが変わり、サイクルスタートパケットの送受信の方向が決まる。送信する時は内部ポータル３と同様の動作となり、受信動作はローカルバス１０４からのパケットを標準ＰＨＹ機能７を通して受信し、パケット受信部４１１、サイクルスタートパケット受信制御部４１２と通じて制御部５に転送する動作となる。
【００４６】
図４は図１の制御部５の構成を示すブロック図である。図４において、制御部５はサイクルスタートパケット制御部５１と、トランザクション制御部５２と、ＩＤ変換部５３と、ＣＳＲ（Ｃｏｎｔｒｏｌ  ａｎｄ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒｓ）制御部５４とから構成されている。トランザクション制御部５２は内部ポータル３から外部ポータル４へパケットを転送するためのＡｓｙｎｃｈｒｏｎｏｕｓパケット転送ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）５２１と、Ｉｓｏｃｈｒｏｎｏｕｓパケット転送ＦＩＦＯ５２２と、外部ポータル４から内部ポータル３へパケットを転送するためのＡｓｙｎｃｈｒｏｎｏｕｓパケット転送ＦＩＦＯ５２３と、Ｉｓｏｃｈｒｏｎｏｕｓ転送ＦＩＦＯ５２４とから構成されている。
【００４７】
サイクルスタートパケット制御部５１は外部ポータル４がサイクルマスタであるか否かを調査し、サイクルマスタであれば、サイクルスタートパケットを送信するタイミングで内部ポータル３及び外部ポータル４の両方に送信し、サイクルマスタでなければ、外部ポータル４からサイクルスタートパケットが転送されてきたら、そのタイミングで内部ポータル３にサイクルスタートパケットを送信する。
【００４８】
トランザクション制御部５２は内部ポータル３からＡｓｙｎｃｈｒｏｎｏｕｓパケットを受信したら、Ａｓｙｎｃｈｒｏｎｏｕｓパケット転送用ＦＩＦＯ５２１に１パケット分受信してから外部ポータル４へ送信する。また、外部ポータル４からＡｓｙｎｃｈｒｏｎｏｕｓパケットが転送されてきた場合も、上記と同様である。
【００４９】
トランザクション制御部５２は内部ポータル３からＩｓｏｃｈｒｏｎｏｕｓパケットを受信したら、外部ポータル４で送受信するサイクルスタートパケットの後に送信するタイミングで外部ポータル４に転送する。外部ポータル４から転送してきた場合も基本的には同じであるが、後述するように、両者の送信タイミングは少々異なる。
【００５０】
ＩＤ変換部５３は内部ポータル３のローカルバス１０１に接続されているノードのトポロジと、外部ポータル４のローカルバス１０４に接続されているノードのトポロジとを認識するとともに、その情報をＩＤ変換テーブル５３１に保持する。
【００５１】
図５は図４のＩＤ変換テーブル５３１の構成を示す図である。ここで、内部ポータル３をポータルＡ、外部ポータル４をポータルＢとする。図５において、ＩＤ変換テーブル５３１はポータルＡノード管理番号５３１ａ、ポータルＡノード転送性能コード５３１ｂ、ポータルＡノードＩＤ５３１ｃ、ポータルＢノード管理番号５３１ｄ、ポータルＢノード転送性能コード５３１ｅ、ポータルＢノードＩＤ５３１ｆ、ポータルＢノード管理番号アクティブフラグ５３１ｇ、ポータルＢノードアクティブフラグ５３１ｈ、ポータルＢ自ノードフラグ５３１ｉ、ポータルＢルートフラグ５３１ｊ、ポータルＢコンテンダフラグ５３１ｋ、仮想ポート管理番号５３１ｌの各フィールドから構成されている。
【００５２】
ポータルＡノード管理番号５３１ａのフィールドには上記のポータルＡで検出した登録ノードのｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ（会社識別子）２３０２及びｃｈｉｐ  ＩＤ２３０３のデータが格納される。ポータルＡのバスリセット発生時に登録ノードを検出する動作では、このポータルＡノード管理番号５３１ａと比較し、一致したものを登録ノードと判断する。これは、各装置において、バスリセット時に不変である認識番号（装置固有の認識番号）を使うことで、各装置を識別しようとするものである。尚、図５ではｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３をマージして３２ビット構成としているが、ｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３をそのまま格納して６４ビット構成としてもよい。また、ｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３以外に、各装置を識別する手段があれば、それを管理コードとしても差し支えない。
【００５３】
ポータルＡノード転送性能コード５３１ｂのフィールドは２ビットで構成され、登録ノードの転送可能速度をあらわす。本発明のＩＥＥＥ１３９４ローカルバスブリッジは、ポータルＡからポータルＢへのパケット転送時及びポータルＢからポータルＡへのパケット転送時、接続相手に合わせた適正な転送速度に変換をも可能とさせているためである。尚、転送性能がＳ１００（１００Ｍｂｐｓ）の場合に＃０、Ｓ２００（２００Ｍｂｐｓ）の場合に＃１、Ｓ４００（４００Ｍｂｐｓ）の場合に＃２としている。
【００５４】
ポータルＡノードＩＤ５３１ｃのフィールドは６ビットで構成され、ポータルＡに登録されているノードのポータルＡでのノードＩＤ、及びポータルＡから見たポータルＢの各ノードのノードＩＤを示すものである。
【００５５】
ポータルＢノード管理番号５３１ｄのフィールドにはポータルＢに存在する各ノードのｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３のデータが格納される。ポータルＢのバスリセット発生時にノードを検出する動作では、このポータルＢノード管理番号５３１ｄを使って各ノードの識別を行う。これも、各装置において、バスリセット時に不変である認識番号を使うことで、各装置を識別しようとするものである。尚、図５ではｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３をマージして３２ビット構成としているが、ｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３をそのまま格納して６４ビット構成としてもよい。また、ｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３以外に、各装置を識別する手段があれば、それを管理コードとしても差し支えない。
【００５６】
ポータルＢノード転送性能コード５３１ｅのフィールドは２ビットで構成され、ポータルＢの各ノードの転送可能速度を表す。ポータルＡと同様に、転送性能がＳ１００（１００Ｍｂｐｓ）の場合に＃０、Ｓ２００（２００Ｍｂｐｓ）の場合に＃１、Ｓ４００（４００Ｍｂｐｓ）の場合に＃２としている。これは本発明のＩＥＥＥ１３９４ローカルバスブリッジ１において、ポータルＡからポータルＢへのパケット転送時、及びポータルＢからポータルＡへのパケット転送時に接続相手に合わせた適正な転送速度への変換をも可能とさせているためである。
【００５７】
ポータルＢノードＩＤ５３１ｆのフィールドは６ビットで構成され、ポータルＢ上での各ノードのノードＩＤを格納する。ポータルＢノード管理番号アクティブフラグ５３１ｇのフィールドは１ビットで構成され、ポータルＢノード管理番号５３１ｄが有効かどうかを表す。ポータルＢでバスリセットが発生した場合には各ノードの識別時に随時アクティブにしていく。
【００５８】
ポータルＢノードアクティブフラグ５３１ｈのフィールドは１ビットで構成され、ポータルＢの各仮想ポートにノードが存在するかどうかを示すものである。ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢのバスリセットで認識したノードに対応したポートをアクティブにする。例えば、ポータルＢのノードが抜かれた場合、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢノードアクティブフラグ５３１ｈをクリアさせる。もし、抜かれたノードが復活した場合、ＩＥＥＥ１３９４ローカルバスブリッジ１はそのポータルＢノード管理番号５３１ｄに一致すると、ポータルＢノードアクティブフラグ５３１ｈを有効にする。
【００５９】
これは、ポータルＢのバスリセットを、不用意にポータルＡへ伝えず、ポータルＡの転送効率を向上させるために用意している。但し、ポータルＢで新しいノードが発見された場合、すなわち、ポータルＢノード管理番号アクティブフラグ５３１ｇがアクティブであるポータルＢノード管理番号５３１ｄと一致するノードが存在しない場合には、初めてポータルＢに新しいノードが追加されたことを認識することができる。
【００６０】
ポータルＢ自ノードフラグ５３１ｉのフィールドは１ビットで構成され、ポータルＢのノード識別時、ＩＥＥＥ１３９４ローカルバスブリッジ１が割当てられたノードについてフラグをアクティブにする。
【００６１】
ポータルＢルートフラグ５３１ｊのフィールドは１ビットで構成され、ポータルＢのルートノードのノードについてアクティブにする。ポータルＢコンテンダフラグ５３１ｋのフィールドは１ビットで構成され、ポータルＢのコンテンダが可能なノードについてアクティブにする。もし、ポータルＢルートフラグ５３１ｊがアクティブでポータルＢコンテンダフラグ５３１ｋがアクティブでない場合、サイクルマスタが存在しなくなり、サイクルがポータルＡとの整合を取れなくなってしまう。そのうような不整合を生じさせないため、ポータルＢルートフラグ５３１ｊとポータルＢコンテンダフラグ５３１ｋとが用意されている。
【００６２】
仮想ポート管理番号５３１ｌのフィールドは４ビットで構成され、ポータルＢの各ノードをどのポートに割り振るかを管理するために用意されている。仮想ポート管理番号５３１ｌは仮想１６ポートＰＨＹのポート２からポート１５までに対応する。ポータルＢ自ノードフラグ５３１ｉが立っているところは、番号の読みを１つ飛ばして数える。ゆえに、それぞれの番号はそれぞれのポート番号と一致する。パケットの転送はこのＩＤ変換テーブル５３１の情報を基に行われる。
【００６３】
ＣＳＲ制御部５４は各ポータルに接続されたノードから自ノードのレジスタ空間２２０６宛てのパケットを受信した場合、自動的に応答パケットを生成して送信する。外部ポータル４から自ノードのコンフィグレーションＲＯＭ空間２２１１にアクセスがきた場合には、内部ポータル３側に接続されている特定のノードから事前にコピーしたコンフィグレーションＲＯＭの内容を返す。
【００６４】
上述のＩＤ変換を実現させるためには、ポータルＢのトポロジを、ポータルＡへ伝えることが必要となるが、単純に自ノードの自己識別パケットや、ポータルＢで発生した自己識別パケットのノードＩＤを変換した自己識別パケットを送出することはできない。なぜなら、ポータルＢとポータルＡとはそれぞれ独立したローカルバスとしてトポロジを構成しているため、ポータルＡでの各自己識別パケットのポート接続情報に不整合が生じてしまうためである。そこで、トポロジの不整合を生じさせないための方策が必要となる。これを実現するため、ポータルＡに対し、仮想１６ポートＰＨＹに見せかけることで、解決することができる。
【００６５】
図６は本発明の一実施例で用いる仮想１６ポートＰＨＹのイメージ図である。図６においては上記の解決策のイメージを示している。図６において、本発明ではＩＥＥＥ１３９４ローカルバスブリッジ１に仮想的に１６ポートが存在するように見せかけている。
【００６６】
ポータルＡに現実に存在するポートはポートＰ(0) １１及びＰ(1) １２である。残りのポートＰ(2) １３，Ｐ(3) １４，Ｐ(4) １５，Ｐ(5) １６，Ｐ(6) １７，Ｐ(7) １８，Ｐ(8) １９，Ｐ(9) ２０，Ｐ(10)２１，Ｐ(11)２２，Ｐ(12)２３，Ｐ(13)２４，Ｐ(14)２５，Ｐ(15)２６は仮想ポートとし、ポータルＢの各ノードがそれぞれに接続されているように見せかける。
【００６７】
図７は本発明の一実施例によるローカルバスブリッジの自ノードの自己識別パケットの詳細な構成を示す図であり、図８は本発明の一実施例によるポータルＢの各ノードの自己識別パケットの詳細な構成を示す図である。これら図７及び図８はポータルＢのトポロジをポータルＡへ伝える際の自己識別パケットを示している。
【００６８】
図７においてはＩＥＥＥ１３９４ローカルバスブリッジの自ノードの自己識別パケットの詳細な構成を示している。この自己識別パケットは３つのパケットＰＫＴ(0) ６０１，ＰＫＴ(1) ６０２，ＰＫＴ(2) ６０３で構成されており、Ｐ(0) ６０４，Ｐ(1) ６０５，Ｐ(2) ６０６，Ｐ(3) ６０７，Ｐ(4) ６０８，Ｐ(5) ６０９，Ｐ(6) ６１０，Ｐ(7) ６１１，Ｐ(8) ６１２，Ｐ(9) ６１３，Ｐ(10)６１４，Ｐ(11)６１５，Ｐ(12)６１６，Ｐ(13)６１７，Ｐ(14)６１８，Ｐ(15)６１９の各フィールドによってポート１５までのポートの状態を伝えることができる。
【００６９】
すなわち、この１６個のポートのうちＰ(2) ６０６，Ｐ(3) ６０７，Ｐ(4) ６０８，Ｐ(5) ６０９，Ｐ(6) ６１０，Ｐ(7) ６１１，Ｐ(8) ６１２，Ｐ(9) ６１３，Ｐ(10)６１４，Ｐ(11)６１５，Ｐ(12)６１６，Ｐ(13)６１７，Ｐ(14)６１８，Ｐ(15)６１９の各フィールドによって１４個のポートを仮想ポートに割当てることで、ポータルＢのトポロジ情報をポータルＡに伝えることができる。尚、各パケットの情報は、ＩＤ変換テーブル５３１の情報を基に生成されて送信される。
【００７０】
図８においてはポータルＢの各ノードの自己識別パケットの詳細な構成を示している。この自己識別パケットはあたかも仮想ポートに接続され、かつそれぞれのノードには１個のポートしか存在しないようにＰ(1) ７０２，Ｐ(2) ７０３を未接続と表す＃００に固定している。Ｐ(0) ７０１及びその他の情報はＩＤ変換テーブル５３１の情報を基に生成することができる。
【００７１】
このように、仮想１６ポートＰＨＹ構成を実現させることによって、後述するＩＤ変換を効率的に、かつ単純化させることができる。もし、ポータルＢのトポロジをそのまま反映させた場合、ＩＤ変換テーブル５３１は非常に複雑化し、ハードウェアロジックでは対応することができない。今回のような、ローカルバスブリッジを実現させるためには、高速でのＩＤ変換が必要であり、ＩＤ変換テーブル５３１を単純化させることによって、それを実現するものである。ちなみに、ＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌは、その仮想ポートに対応している。管理番号＃００は仮想ポートＰ(2) １３、管理番号＃０１は仮想ポートＰ(3) １４、以下順次、昇順に割当て、自ノードフラグの部分は飛ばして管理し、管理番号＃１４は仮想ポートＰ(15)２６と割り振る。したがって、ＩＤ変換テーブル５３１とトポロジ管理とが非常に簡略化され、高速な自己識別パケットの送信やＩＤ変換を可能とすることができる。
【００７２】
Ｉｓｏｃｈｒｏｎｏｕｓサブアクションは、サイクルスタートパケットによって等時性を保たせている。本発明のＩＥＥＥ１３９４ローカルバスブリッジ１では、ポータルＡとポータルＢとが別々のローカルバスであることから、その同期を取るため、ポータルＡまたはポータルＢのどちらかでルートを確保する必要がある。
【００７３】
ポータルＢには別のＩＥＥＥ１３９４ローカルバスブリッジが接続される場合が考えられ、その場合、互いにルートを取り合ってしまう可能性がある。したがって、ＩＥＥＥ１３９４ローカルバスブリッジ１のポータルＡにおいてルートを確実に取る方法を考える必要がある。そのため、ポータルＡ側のＰＨＹに専用ＰＨＹ機能６が必要となる。
【００７４】
次に、確実にルートを取る方法について説明する。通常ルートの決定は、ＰＨＹ同士でペアレントノティファイ信号とチャイルドノティファイ信号とのやり取りで行わる。バスリセットが発生すると、トポロジの構築が開始される。
【００７５】
各ＰＨＹは１つのポートを除いて接続されているポートが無いか、または１つのポートを除いて接続されたポートからペアレントノティファイ信号を受取った場合、残った１つのポートに対してペアレントノティファイ信号を受信するか否かを規定時間待って、ペアレントノティファイ信号を受取らなかった場合、自らペアレントノティファイ信号を出力する。
【００７６】
逆に、すべてのポートからペアレントノティファイ信号を受信した場合、そのＰＨＹがルートとなる。そこで、本発明で使用する専用ＰＨＹ機能６は、バスリセット後のトポロジ構築時、ペアレントノティファイ信号を出すタイミングをループ検出しないぎりぎりまで遅らせることによって、確実にルートを取ることを可能とさせている。
【００７７】
図９〜図１１は本発明の一実施例によるローカルバスブリッジ全体の動作を示すフローチャートである。図１２は本発明の一実施例における登録モード時の接続形態を示す図であり、図１３は本発明の一実施例における登録モード時にポータルＡへの最初のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図であり、図１４は本発明の一実施例における登録モード時にポータルＡへの最初のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【００７８】
これら図９〜図１４を参照して本実施例の動作について説明する。まず、本発明のＩＥＥＥ１３９４ローカルバスブリッジ１全体の動作について説明する。尚、以下の説明では上記の内部ポータル３をポータルＡ、外部ポータル４をポータルＢとする。
【００７９】
ＩＥＥＥ１３９４ローカルバスブリッジには、２つの動作方式があり、その動作方式の設定方法は、本実施例においてハードウェアリセットが解除された時の一入力端子の状態を見て動作方式を決定づけるものとする。動作方式は、ポータルＡに接続する特定のノードをＩＥＥＥ１３９４ローカルバスブリッジに事前に登録する動作方式と、通常運用する時の動作方式とがある。以下、前者を登録モード、後者を通常モードと称す。まず、登録モードについて説明する。
【００８０】
登録モード時の接続形態を図１２に示す。登録モード時にはＩＥＥＥ１３９４ローカルバスブリッジ１のポータルＡ側のポート９１，９２のいずれかに１台のＩＥＥＥ１３９４インタフェースを有する端末機器を接続する。ここではこの端末機器をノードＡ９とする。
【００８１】
ユーザはＩＥＥＥ１３９４ローカルバスブリッジ１を登録モードに設定した後、電源を投入する（図９ステップＳ１）。ＩＥＥＥ１３９４ローカルバスブリッジ１に接続されるハードウェアリセット信号が解除と同時に、ＩＥＥＥ１３９４ローカルバスブリッジ１は登録モードに入る。
【００８２】
まず、動作方式に関わらず、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）８の内容をＣＳＲ制御部５４内部のレジスタ（図示せず）にロードする（図９ステップＳ２）。このデータの内容はポータルＡ側に接続されるノードに示すためのＩＥＥＥ１３９４ローカルバスブリッジ１自身のコンフィグレーションＲＯＭの内容である。
【００８３】
続いて、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡ側にバスリセットを発生する（図９ステップＳ３，Ｓ４）。バスリセットが発生すると、自己識別フェーズが開始される。この自己識別フェーズの動作について、図１３及び図１４を参照して説明する。図１３は横軸が時間で、バスリセットが発生してから、自己識別フェーズの終了までを表している。図１４はノードＡの自己識別パケットの詳細ＰＫＴ(0) ９０１及びＩＥＥＥ１３９４ローカルバスの自己識別パケットの詳細ＰＫＴ(1) ９２１，ＰＫＴ(2) ９２２，ＰＫＴ(3) ９２３を示すものである。
【００８４】
ポータルＡのローカルバス上でバスリセットが発生すると、ＰＨＹからバスリセット開始を知らせるステート（Ｂｕｓ  Ｒｅｓｅｔ）８０１が通知される。次に、ノードＡ９とＩＥＥＥ１３９４ローカルバスブリッジ１との間でトポロジの構築がなされ、子ノード、親ノードが決定され、自己識別フェーズが開始される。
【００８５】
ポータルＡ側のＰＨＹは、上述した専用ＰＨＹ機能６であるので、必ずＩＥＥＥ１３９４ローカルバスブリッジ１がルートとなる。自己識別パケットの送信順番は、ルートから見て子ノードの中でポート０側から順次送信が許される。図１２での接続形態では、ノードＡ９及びＩＥＥＥ１３９４ローカルバスブリッジ１のみの構成であるため、子ノードであるノードＡ９の自己識別パケットが、ノードＡ９から発行されるノードＡの識別パケット（ＩＤ＃０）８０２がそれにあたる。この時の自己識別パケットの詳細は図１４に示すノードＡの自己識別パケットの詳細ＰＫＴ(0) ９０１の形になる。
【００８６】
この場合、最初の自己識別パケットであるため、上記の自己識別パケットのＰＨＹ  ＩＤ９０２は＃０となる。ｇａｐ  ｃｎｔ９０３は現在、ノードＡ９に設定されているギャップカウントの値が反映される。ここでは、全くの最初の自己識別フェーズであるため、＃３Ｆとなる。ｓｐ９０４、ｄｅｌ９０５、ｃビット９０６、ｐｗｒ９０７はノードＡ９の条件に準じる。
【００８７】
ｐ(0) ９０８はノードＡ９のＰ(0) ９１の状態を表し、ＩＥＥＥ１３９４ローカルバスブリッジ１に対して子ノードであるため、＃１０となる。ｐ(1) ９０９はノードＡ９のＰ(1) ９２の状態を表し、未接続であるため、＃０１となる。ｐ(2) ９１０はノードＡ９に存在しないため、＃００となる。
【００８８】
ｉビット９１１はバスリセットを発生させたかどうかを示すので、状況によって変化する。ここでは、ＩＥＥＥ１３９４ローカルバスブリッジ１がバスリセットを発行しているため、＃０となる。ノードＡ９には、これ以上ポートが存在しないため、ｍビット９１２を＃０とし、連結の自己識別パケットが無いことを表している。
【００８９】
ノードＡ９の自己識別パケットの発行が完了すると、他ノードが存在しないため、ルートであるＩＥＥＥ１３９４ローカルバスブリッジ１が自己識別パケットを発行する。ＩＥＥＥ１３９４ローカルバスブリッジ１には仮想１６ポートのポートが存在しているため、自己識別パケットは３個送出することになる。図１３におけるブリッジ識別パケットＩＤ＃１（１／３）８０３、ブリッジ識別パケットＩＤ＃１（２／３）８０４及びブリッジ識別パケットＩＤ＃１（３／３）８０５がそれにあたる。この時の自己識別パケットの詳細な構成は図１４に示すＩＥＥＥ１３９４ローカルバスの自己識別パケットの詳細ＰＫＴ(1) ９２１，ＰＫＴ(2) ９２２，ＰＫＴ(3) ９２３の形になる。
【００９０】
上記の自己識別パケットのＰＨＹ  ＩＤ９２４は２つ目のノードであることから＃１となる。ブリッジ識別パケットＩＤ＃１（１／３）８０３のｇａｐ  ｃｕｎｔ９２５は＃３Ｆ固定とする。但し、本発明のＩＥＥＥ１３９４ローカルバスブリッジ１の性能によって適正な値にするべきである。
【００９１】
ｓｐ９２６は使用条件によって事前に決めておけばよい。ここでは４００Ｍｂｐｓ対応とし、＃２としている。ｃビット９２７はＩＥＥＥ１３９４ローカルバスブリッジ１がポータルＡで必ずルートになる性質上、コンテンダ機能を有する必要がある。したがって、＃１とする。
【００９２】
ｐ(0) ９２８とｐ(1) ９２９とがＩＥＥＥ１３９４ローカルバスブリッジ１において実在するポートである。２つあるポートのうちの１つは必ず＃１１となる。もし、２ポートとも接続されていたならば、ｐ(0) ９２８、ｐ(1) ９２９ともに＃１１となる。
【００９３】
バスリセットを発生させたのは、ＩＥＥＥ１３９４ローカルバスブリッジ１であるので、ｉビット９３１は＃１となる。ｍビット９３２は自己識別パケットが３つ必要であるため＃１となる。ｐ(2) ９３０、ブリッジ識別パケットＩＤ＃１（２／３）８０４のｐ(3) 〜ｐ(10)９３３、ブリッジ識別パケットＩＤ＃１（３／３）８０５のｐ(11)〜ｐ(15)９３４については、ポータルＢの情報に割当てるが、ここではポータルＢの情報を有していないため、便宜上すべて未接続と見せかけるため、＃０１とする。
【００９４】
ＩＥＥＥ１３９４ローカルバスブリッジ１の自己識別パケットが終了し、規定時間が経過し、サブアクションギャップが発生すると、ステート（Ｓｕｂａｃｔｉｏｎ  Ｇａｐ）８０６がＰＨＹから通知され、自己識別フェーズが終了する。
【００９５】
図１５は本発明の一実施例における登録モード時にポータルＡの最初の自己識別フェーズの終了時の１６ポートＰＨＹの接続状態を示す図である。図１５においては１６ポートＰＨＹに置き換えたポータルＡ側から見たイメージ接続状態を示している。
【００９６】
ノードＡ９のノードＩＤは＃０となり、ＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤは＃１となる。その他の仮想ポート２７には何も繋がっていないように見せかけている。自己識別フェーズ（図５ステップＳ５）が完了した時点で、ノードＩＤは図１５に示す通りに割り振られる。
【００９７】
図１６は本発明の一実施例におけるリードリクエストパケットの詳細な構成を示す図であり、図１７は本発明の一実施例における応答パケットの詳細な構成を示す図である。
【００９８】
続いて、ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＡ９のコンフィグレーションＲＯＭの内容を読込むために、まず図１６に示すリードリクエストパケットを送信する。
【００９９】
図１６において、ｄｅｓｔｉｎａｔｉｏｎＩＤ１００１はパケット送信先のノードＩＤを示し、数値‘ＦＦＣ０’（１６進数）はローカルバスのＰＨＹ  ＩＤ＃０、すなわち宛先ノードＡ９を示す。ＴＬ１００２はトランザクションラベルを示し、送信側のリンク層ロジックが任意に割り振る。ＲＴ１００３はリトライコード、ｔｃｏｄｅ１００４はトランザクションコードで、数値の‘４’はＱｕａｄｌｅｔ（３２ビット幅）のデータリードリクエストパケットであることを示す。
【０１００】
ｓｏｕｒｃｅＩＤ１００５は送信元のノードＩＤを示し、数値‘ＦＦＣ１’は送信元であるＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤを示す。ｄｅｓｔｉｎａｔｉｏｎ  ｏｆｆｓｅｔ１００６はコンフィグレーションＲＯＭ領域の先頭アドレス番地‘ＦＦＦＦＦ００００４００’を示す。
【０１０１】
続いて、ノードＡ９はリードリクエストパケット受信後に、認識パケット（ペンディング）を送信する。ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＡ９がリードリクエストパケットを受信したことを認識する。続いて、ノードＡ９は図１７に示すような応答パケットを送信する。
【０１０２】
図１７において、ＴＬ１１０２は上述したリードリクエストパケットのＴＬと同じ数値が入る。ｑｕａｄｌｅｔ  ｄａｔａ１１０３はコンフィグレーションＲＯＭ先頭番地の３２ビットデータが読出される。ＩＥＥＥ１３９４ローカルバスブリッジ１はｑｕａｄｌｅｔ  ｄａｔａ１１０３をＣＳＲ制御部５４内のレジスタに格納し、これをノードＡ９のコンフィグレーションＲＯＭの最終アドレスまで繰り返す。
【０１０３】
コンフィグレーションＲＯＭの最終アドレスの算出はコンフィグレーションＲＯＭのｃｒｃ  ｌｅｎｇｔｈ（図４３参照）から算出される。ｃｒｃ  ｌｅｎｇｔｈはコンフィグレーションＲＯＭのｂｕｓ  ｉｎｆｏ  ｂｌｏｃｋ２３０１以降のデータ長をＱｕａｄｌｅｔ（３２ビット）単位で提示している。よって、コンフィグレーションＲＯＭの最終アドレスは‘ＦＦＦＦ  Ｆ０００  ０４００’＋ｃｒｃ  ｌｅｎｇｔｈ×４となる。
【０１０４】
ノードＡ９のコンフィグレーションＲＯＭの内容を全てＣＳＲ制御部５４のレジスタに格納したら（図９ステップＳ６）、ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＡ９のｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３の内容をＣＳＲ制御部５４からＥＥＰＲＯＭ８に格納する（図９ステップＳ７）。ここで、ＩＥＥＥ１３９４ローカルバスブリッジ１の登録モードを完了し（図９ステップＳ８）、通常モードに移行する。
【０１０５】
図１８は本発明の一実施例における通常モード時の接続形態を示す図であり、図１９は本発明の一実施例における通常モード時にポータルＡへの最初のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。図２０は本発明の一実施例における通常モード時にポータルＡへの最初のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図であり、図２１は本発明の一実施例における通常モード時にポータルＡの最初の自己識別フェーズの終了時の接続状態を示す図であり、図２２は本発明の一実施例における登録ノードの情報が反映された状態のＩＤ変換テーブルの構成を示す図である。
【０１０６】
続いて、図９〜図１１に示すフローチャートにしたがって、図１８〜図２２を参照して通常モードの動作について説明する。図１８は通常モード時の接続形態例を示す。
【０１０７】
ＩＥＥＥ１３９４ローカルバスブリッジ１は電源投入後（図９ステップＳ１）、上述した登録モード時と同様に、ＥＥＰＲＯＭ８から自ノードのコンフィグレーションＲＯＭ情報をＣＳＲ制御部５４内のレジスタに格納する（図９ステップＳ２）。続いて、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡ側にバスリセットを発生させる（図９ステップＳ３，Ｓ９）。
【０１０８】
バスリセットが発生すると、自己識別フェーズが開始される（図９ステップＳ１０）。この自己識別フェーズの動作について、図１９及び図２０を参照して説明する。
【０１０９】
図１９は横軸が時間で、バスリセットが発生してから、自己識別フェーズの終了までを表している。図２０はノードＢ９−２の自己識別パケットの詳細ＰＫＴ(0) １３０１、ノードＡの自己識別パケットの詳細ＰＫＴ(1) １３２１、ノードＣの自己識別パケットの詳細ＰＫＴ(2) １３４１、ＩＥＥＥ１３９４ローカルバスブリッジ１の自己識別パケットの詳細ＰＫＴ(3) １３６１，ＰＫＴ(4) １３６２，ＰＫＴ(5) １３６３を示すものである。
【０１１０】
ポータルＡのローカルバス上でバスリセットが発生すると、ＰＨＹからはバスリセット開始を知らせるステート（Ｂｕｓ  Ｒｅｓｅｔ）１２０１が通知される。次に、ノードＡ９−１、ノードＢ９−２、ノードＣ９−３及びＩＥＥＥ１３９４ローカルバスブリッジ１間でトポロジの構築がなされ、子ノード、親ノードが決定され、自己識別フェーズが開始される。
【０１１１】
ポータルＡ側のＰＨＹは、上述した専用ＰＨＹ機能６であるので、必ずＩＥＥＥ１３９４ローカルバスブリッジ１がルートとなる。自己識別パケットの送信順番は、ルートから見て子ノードの中でポート０側から順次送信が許される。図１８に示す接続形態では、ノードＢ９−２が最小番号の子ノードとなる。したがって、最初の自己識別パケットが、ノードＢ９−２から発行される。図１９におけるノードＢの識別パケット（ＩＤ＃０）１２０２がそれにあたる。この時の自己識別パケットの詳細は図２０のノードＢの自己識別パケットの詳細ＰＫＴ(0) １３０１に示される形になる。
【０１１２】
ＰＨＹ  ＩＤ１３０２は最初の自己識別パケットであるため、＃０となる。ｇａｐ  ｃｎｔ１３０３は現在、ノードＢ９−２に設定されているギャップカウントの値が反映される。ｓｐ１３０４、ｄｅｌ１３０５、ｃビット１３０６、ｐｗｒ１３０７はノードＢ９−２の条件に準じる。
【０１１３】
ｐ(0) １３０８はノードＢ９−２のＰ(0) ９１−２の接続状態を表し、ノードＡ９−１が親ノードであるため、＃１０となる。ｐ(1) １３０９はノードＢ９−２のＰ(1) ９２−２の状態を表し、未接続であるため、＃０１となる。ｐ(2) １３１０はノードＢ９−２に存在しないため、＃００となる。
【０１１４】
ｉビット１３１１はバスリセットを発生させたかどうかを示すので、状況によって変化する。ここでは、ＩＥＥＥ１３９４ローカルバスブリッジ１がバスリセットを発行しているため、＃０となる。ノードＢ９−２にはこれ以上ポートが存在しないため、ｍビット１３１２を＃０とし、連結の自己識別パケットが無いことを表している。
【０１１５】
次に、自己識別パケットの送信をルートから許可されるのは、２番目に最小番号をもつノードＡ９−１である。したがって、２番目の自己識別パケットが、ノードＡ９−１から発行される。図１９におけるノードＡの識別パケット（ＩＤ＃１）１２０３がそれにあたる。この時の自己識別パケットの詳細は図２０のノードＡの自己識別パケットの詳細ＰＫＴ(1) １３２１に示される形になる。
【０１１６】
ＰＨＹ  ＩＤ１３２２は２番目の自己識別パケットであるため、＃１となる。ｇａｐ  ｃｎｔ１３２３は現在、ノードＡ９−１に設定されているギャップカウントの値が反映される。ｓｐ１１３２４、ｄｅｌ１３２５、ｃビット１３２６、ｐｗｒ１３２７はノードＡ９−１の条件に準じる。
【０１１７】
ｐ(0) １３２８はノードＡ９−１のＰ(0) ９１−１の接続状態を表し、ＩＥＥＥ１３９４ローカルバスブリッジ１が親ノードであるため、＃１０となる。ｐ(1) １３２９はノードＡ９−１のＰ(1) ９２−１の状態を表し、ノードＢ９−２が子ノードとして接続されているため、＃１１となる。ｐ(2) １３３０はノードＡ９−１に存在しないため、＃００となる。
【０１１８】
ｉビット１３３１はバスリセットを発生させたかどうかを示すので、状況によって変化する。ここでは、ＩＥＥＥ１３９４ローカルバスブリッジ１がバスリセットを発行しているため、＃０となる。ノードＡ９−１にはこれ以上ポートが存在しないため、ｍビット１３３２を＃０とし、連結の自己識別パケットが無いことを表している。
【０１１９】
次に、自己識別パケットの送信をルートから許可されるのは、３番目に最小番号をもつノードＣ９−３である。したがって、３番目の自己識別パケットが、ノードＣ９−３から発行される。図１９におけるノードＣの識別パケット（ＩＤ＃２）１２０４がそれにあたる。この時の自己識別パケットの詳細は図２０のノードＣの自己識別パケットの詳細ＰＫＴ(2) １３４１に示される形になる。
【０１２０】
ＰＨＹ  ＩＤ１３４２は３番目の自己識別パケットであるため、＃２となる。ｇａｐ  ｃｎｔ１３４３は現在、ノードＣ９−３に設定されているギャップカウントの値が反映される。ｓｐ１３４４、ｄｅｌ１３４５、ｃビット１３４６、ｐｗｒ１３４７はノードＣ９−３の条件に準じる。
【０１２１】
ｐ(0) １３４８はノードＣ９−３のＰ(0) ９１−３の接続状態を表し、ＩＥＥＥ１３９４ローカルバスブリッジ１が親ノードであるため、＃１０となる。ｐ(1) １３４９はノードＣ９−３のＰ(1) ９２−３の状態を表し、未接続のため、＃０１となる。ｐ(2) １３５０はノードＣ９−３に存在しないため、＃００となる。
【０１２２】
ｉビット１３５１はバスリセットを発生させたかどうかを示すので、状況によって変化する。ここでは、ＩＥＥＥ１３９４ローカルバスブリッジ１がバスリセットを発行しているため、＃０となる。ノードＣ９−３にはこれ以上ポートが存在しないため、ｍビット１３５２を＃０とし、連結の自己識別パケットが無いことを表している。
【０１２３】
ノードＣ９−３の自己識別パケットの発行が完了すると、他ノードが存在しないため、ルートであるＩＥＥＥ１３９４ローカルバスブリッジ１が自己識別パケットを発行する。ＩＥＥＥ１３９４ローカルバスブリッジ１には仮想１６ポートのポートが存在しているため、自己識別パケットは３個送出することになる。図１９におけるブリッジ識別パケットＩＤ＃１（１／３）１２０５、ブリッジ識別パケットＩＤ＃１（２／３）１２０６、ブリッジ識別パケットＩＤ＃１（３／３）１２０７がそれにあたる。この時の自己識別パケットの詳細は図２０のＩＥＥＥ１３９４ローカルバスの自己識別パケットの詳細ＰＫＴ(3) １３６１、ＰＫＴ(4) １３６２、ＰＫＴ(5) １３６３に示される形になる。
【０１２４】
ＰＨＹ  ＩＤ１３６４は４番目のノードであることから＃３となる。ｇａｐ  ｃｕｎｔ１３６５、ｓｐ１３６６、ｃビット１３６７に関しては、上記の登録モード時と同じである。
【０１２５】
ｐ(0) １３６８とｐ(1) １３６９とがＩＥＥＥ１３９４ローカルバスブリッジ１において実在するポートである。図１８に示す実施形態では２ポートとも接続されているため、ｐ(0) １３６８及びｐ(1) １３６９がともに＃１１となる。バスリセットを発生させたのは、ＩＥＥＥ１３９４ローカルバスブリッジ１であるので、ｉビット１３７１は＃１となる。ｍビット１３７２は自己識別パケットが３つ必要であり、続く自己識別パケットが存在するので、＃１となる。
【０１２６】
ｐ(2) １３７０、ブリッジ識別パケットＩＤ＃１（２／３）１２０６のｐ(3) 〜ｐ(10)１３７３と、ブリッジ識別パケットＩＤ＃１（３／３）１２０７のｐ(11)〜ｐ(15)１３７４とについては、ポータルＢの情報に割当てるが、この時点ではまだ、ポータルＢの情報を有していないため、便宜上すべて未接続と見せかけるため、＃０１とする。
【０１２７】
ＩＥＥＥ１３９４ローカルバスブリッジ１の自己識別パケットが終了し、規定時間が経過し、サブアクションギャップが発生すると、ステート（Ｓｕｂａｃｔｉｏｎ  Ｇａｐ）１２０８がＰＨＹから通知され、自己識別フェーズが終了する。この時点でのトポロジは図２１に示すノードＡ９−１、ノードＢ９−２、ノードＣ９−３及びＩＥＥＥ１３９４ローカルバスブリッジ１のようになる。
【０１２８】
続いて、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡ側のバス上から登録ノードを検出する。その検出動作ではＥＥＰＲＯＭ８からＣＳＲ制御部５４内のレジスタに、上述した登録モードで格納したノードＡ９−１のｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３のデータを格納する（図９ステップＳ１１）。
【０１２９】
まず、ノードＩＤ＃０であるノードＢ宛てにコンフィグレーションＲＯＭのｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３の値を転送スピードＳ１００（１００Ｍｂｐｓ）で読出す。上記のようにして登録したｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３のデータを比較し、登録したデータはノードＡ９−１のものなので不一致となる。同様に、ノードＩＤ＃０であるノードＢ９−２から読出しを行い、これも不一致になる。さらに、ノードＩＤ＃１であるノードＡ９−１から読出しを行う。この時、ｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３の値は上記の登録モードで登録した値と一致する（図９ステップＳ１２，Ｓ１３、図１１ステップＳ１９，Ｓ２０）。
【０１３０】
続いて、同じリードリクエストパケットを転送スピードＳ２００（２００Ｍｂｐｓ）で送信するノードＡ９−１から認識パケット及び応答パケットを受信したら、さらに転送スピードＳ４００（４００Ｍｂｐｓ）でリードリクエストパケットで送信する。Ｓ４００のリードリクエストパケットに対し、ノードＡ９−１が認識パケットを送信しなかった場合、ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＡ９−１の転送性能がＳ２００までであると判断する。認識パケット及び応答パケットを受信した場合には、転送性能がＳ４００であると判断する。ここで、登録したノードＡのノードＩＤは＃１であり、その転送性能コード（Ｓ１００、またはＳ２００、あるいはＳ４００）をＩＤ変換部５３に通知する。
【０１３１】
登録ノードの決定時に得られたノードＩＤ及び登録ノードの検出時に得られた転送性能コードはＩＤ変換部５３に配置されているＩＤ変換テーブル５３１に格納して管理する。その反映された状態を図２２に示す。
【０１３２】
図２２において、ポータルＡノード管理番号５２１ａに、登録されているノードのｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３の値が入っている。ここでは、仮に＃１としている。このポータルＡノード管理番号５３１ａと一致したノードであるノードＡ９−１の転送性能コードはポータルＡ転送性能コード５３１ｂのフィールドに格納される。その値は、登録ノードの検出時に決定さる。ここでは、仮にＳ２００であったと仮定して＃０１が格納されている。
【０１３３】
そして、ポータルＡノード管理番号５３１ａと一致したノードＡ９−１のノードＩＤは、ポータルＡノードＩＤ５３１ｃのフィールドに格納される。これで、ＩＤ変換テーブル５３１のポータルＡについて情報がすべて得られたことになる。この間、ポータルＢ側に関し、ポータルＡ側のテーブルが確定していないため、ＩＤ変換動作はさせない。その方法として、ポータルＢ側へ対して、「ＡＣＫＢＵＳＹ」を送信することでそれを実現している。もちろん、「ＮＯ  ＡＣＫ」と送信することでも、同じ効果が得られる。ようは、ポータルＢのトランザクションに対して反応させないことである。
【０１３４】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢのトポロジ情報を得るため、ポータルＢにバスリセットを発生させる（図１０ステップＳ１４，Ｓ１５）。バスリセットの起動は外部ポータル４に接続されている標準ＰＨＹ機能７に対して、バスリセット要求を発行することで実施する。
【０１３５】
図２３は本発明の一実施例における通常モード時にポータルＢへの最初のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図であり、図２４は本発明の一実施例におけるポータルＢの自己識別フェーズによって構築されたＩＤ変換テーブルの構成を示す図である。これら図２３及び図２４を用いてポータルＢの自己識別フェーズ動作について説明する。
【０１３６】
図２３はその自己識別フェーズの動作遷移で、横軸が時間で、バスリセットが発生してから、自己識別フェーズの終了までを表している。図２４はその時のＩＤ変換テーブル５３１を示すものである。ポータルＢのローカルバス上でバスリセットが発生すると、ＰＨＹからバスリセット開始を知らせるステート（ＢｕｓＲｅｓｅｔ）１４０１が通知される。
【０１３７】
次に、ノードＤ９−４、ノードＥ９−５、ノードＦ９−６及びＩＥＥＥ１３９４ローカルバスブリッジ１間でトポロジの構築がなされ、子ノード、親ノードが決定され、自己識別フェーズが開始される（図１０ステップＳ１６）。ポータルＢ側のＰＨＹは、標準ＰＨＹ機能７であるので、ＩＥＥＥ１３９４規格通り、自己識別フェーズが行われる。
【０１３８】
図２１に示す接続形態において、ノードＥ９−５がルートになったと仮定すると、自己識別パケットの送信順番はルートから見て子ノードの中でポート０側から順次送信が許されるので、ノードＤ９−４から最初の自己識別パケットが発行される。図２３におけるノードＤの自己識別パケット（ＩＤ＃０）１４０２がそれにあたる。この自己識別パケットはポータルＢのローカルバスの最初の自己識別パケットであるため、ノードＤ９−４のノードＩＤは＃０となる。
【０１３９】
ＩＥＥＥ１３９４ローカルバスブリッジ１がこの自己識別パケットを受信した時、ＩＤ変換部５３はＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌの番号＃００にポインタを設定する。そして、ＩＤ変換部５３はその行に相当するポータルＢノードＩＤ５３１ｆのフィールドに＃０を格納する。さらに、ＩＤ変換部５３はポータルＢノードアクティブフラグ５３１ｈを＃１に設定する。もしも、このノードがコンテンダであったならば、ＩＤ変換部５３はポータルＢコンテンダフラグ５３１ｋを＃１に設定するが、ここでは、仮にコンテンダではないものとしている。
【０１４０】
次に、自己識別パケットの送信をルートから許可されるのは、２番目に最小番号をもつＩＥＥＥ１３９４ローカルバスブリッジ１である。したがって、２番目の自己識別パケットが、ＩＥＥＥ１３９４ローカルバスブリッジ１から発行される。図２３におけるブリッジの自己識別パケット（ＩＤ＃１）１４０３がそれにあたる。
【０１４１】
ブリッジの自己識別パケット（ＩＤ＃１）１４０３は２番目の自己識別パケットであるため、ＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤは＃１となる。ＩＥＥＥ１３９４ローカルバスブリッジ１がこの自己識別パケットを受信した時、ＩＤ変換部５３はＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌの番号＃０１にポインタを設定する。そして、ＩＤ変換部５３はその行に相当するポータルＢノードＩＤ５３１ｆのフィールドに＃１を格納する。また、ＩＤ変換部５３はポータルＢノードアクティブフラグ３５１ｈを＃１に設定する。さらに、ＩＤ変換部５３はＩＥＥＥ１３９４ローカルバスブリッジ１がコンテンダであるため、明らかに、ポータルＢコンテンダフラグ５３１ｋを＃１に設定することになる。
【０１４２】
このブリッジの自己識別パケット（ＩＤ＃１）１４０３の後に、標準ＰＨＹ機能７から、自ノードのノードＩＤが＃１である通知として、ステート（ＩＤ＃１）１４０４がＩＥＥＥ１３９４ローカルバスブリッジ１に通知される。ＩＥＥＥ１３９４ローカルバスブリッジ１はこの通知を受信すると、先の自己識別パケットを自ノードのＰＨＹが送信したものと認識し、さらにポータルＢ自ノードフラグ５３１ｉを＃１に設定する。
【０１４３】
３番目に最小番号をもつノードはノードＦ９−６である。したがって、３番目の自己識別パケットがノードＦ９−６から発行される。図２３におけるノードＦの識別パケット（ＩＤ＃２）１４０５がそれにあたる。
【０１４４】
ノードＦの識別パケット（ＩＤ＃２）１４０５は３番目の自己識別パケットであるため、ノードＦ９−６のノードＩＤは＃２となる。ＩＥＥＥ１３９４ローカルバスブリッジ１がこの自己識別パケットを受信した時、ＩＤ変換部５３はＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌの番号＃０２にポインタを設定する。そして、ＩＤ変換部５３はその行に相当するポータルＢノードＩＤ５３１ｆのフィールドに＃２を格納する。さらに、ＩＤ変換部５３はポータルＢノードアクティブフラグ５３１ｈを＃１に設定する。尚、本実施例ではノードＦ９−６は仮にコンテンダではないものとしている。
【０１４５】
ノードＦ９−６の自己識別パケットの発行が完了すると、他ノードが存在しないため、ルートであるノードＥ９−５が自己識別パケットを発行する。図２３におけるノードＥ自己識別パケット（ＩＤ＃３）１４０６がそれにあたる。
【０１４６】
ノードＥ９−５のノードＩＤは４番目のノードであることから、＃３となる。ＩＥＥＥ１３９４ローカルバスブリッジ１がこの自己識別パケットを受信した時、ＩＤ変換部５３はＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌの番号＃０３にポインタを設定する。そして、ＩＤ変換部５３はその行に相当するポータルＢノードＩＤ５３１ｆのフィールドに＃３を格納する。さらに、ＩＤ変換部５３はポータルＢノードアクティブフラグ５３１ｈを＃１に設定する。さらにまた、このノードＥ９−５がコンテンダであると仮定すると、ＩＤ変換部５３はポータルＢコンテンダフラグ５３１ｋを＃１に設定することになる。
【０１４７】
ノードＥ９−５の自己識別パケット送信が終了し、規定時間が経過し、サブアクションギャップが発生すると、ステート（Ｓｕｂａｃｔｉｏｎ  Ｇａｐ）１４０７がＰＨＹから通知され、自己識別フェーズが終了したことをＩＥＥＥ１３９４ローカルバスブリッジ１が認識するととに、最後に自己識別パケットを送信したノードＥ９−５がルートであることが判り、さらに、ポータルＢルートフラグ５３１ｊを＃１に設定する。
【０１４８】
この時点で、ルートノードがコンテンダであるかどうかを検査する。本実施例ではルートノードのノードＩＤとコンテンダノードのノードＩＤとが一致するため、これで、ＩＤ変換テーブル５３１のポータルＢ側の構築が完了する。
【０１４９】
もし、ルートノードとコンテンダノードとが一致しない場合、ＩＥＥＥ１３９４ローカルバスブリッジ１は自ノードをフォースルートとした、ＰＨＹコンフィグパケットを送信してバスリセットを発行する。このパケットを送信し、バスリセットを発行すると、次のトポロジ構築で、コンテンダであるＩＥＥＥ１３９４ローカルバスブリッジ１がルートとなることができる。この仕組みの詳細はＩＥＥＥ１３９４規格で規定されているため、省略する。
【０１５０】
続いて、再度、自己識別フェーズが開始されるが、今度は、ＩＥＥＥ１３９４ローカルバスブリッジ１が確実にルートとなるため、確実にＩＤ変換テーブル５３１の構築を完了することができる。図２４はこれら一連のポータルＢの自己識別フェーズによって構築されたＩＤ変換テーブル５３１の状態を示すものである。
【０１５１】
自己識別フェーズが完了すると、ＩＥＥＥ１３９４ローカルバスブリッジ１は次にポータルＢの全ノードコンフィグレーションＲＯＭのノード識別子のリードを開始する（図１０ステップＳ１７）。コンフィグレーションＲＯＭのノード識別子とは、各ノードが保有するｎｏｄｅ  ｖｅｎｄｏｒ  ＩＤ２３０２及びｃｈｉｐ  ＩＤ２３０３のことである。
【０１５２】
トポロジの解析から得られた、ポータルＢの各ノードＩＤはそのまま、各ノードの識別に使うことはできない。なぜなら、次のバスリセットが発生した場合、ノードＩＤは全く違うＩＤになる可能性があるためである。そこで、各ノードに対してはコンフィグレーションＲＯＭのノード識別子で管理することが必要となる。
【０１５３】
ＩＤ変換部５３はポータルＢによるバスリセット時の自己識別フェーズに構築されたＩＤ変換テーブル５３１においてポータルＢノードＩＤ５３１ｆとポータルＢノードアクティブフラグ５３１ｈとポータルＢ自ノードフラグ５３１ｉとポータルＢルートフラグ５３１ｊとを用いながら、各ノードのコンフィグレーションＲＯＭのノード識別子を読出し、ポータルＢノード管理番号５３１ｄへ登録していく（図１０ステップＳ１８）。
【０１５４】
図２５は本発明の一実施例におけるポータルＢのノード管理番号の取得時のＩＤ変換テーブルの構成を示す図である。この図２５を用いてポータルＢノード管理番号５３１ｄの取得手順について説明する。
【０１５５】
上述の自己識別フェーズが完了した時点で、ＩＥＥＥ１３９４ローカルバスブリッジ１は仮想ポート管理番号５３１ｌのポインタを＃００にする。次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢルートフラグ５３１ｊ及びポータルＢ自ノードフラグ５３１ｉがアクティブでなく、且つポータルＢノードアクティブフラグ５３１ｈがアクティブであるかを調べる。
【０１５６】
ＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌのポインタ＃００の行を見ると、上記条件に当てはまる。そこで、ＩＥＥＥ１３９４ローカルバスブリッジ１は仮想ポート管理番号５３１ｌのポインタ＃００に対応するポータルＢノードＩＤ５３１ｆを調べる。本実施例では＃０となっている。次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢのノードＩＤが＃０のノードすなわちノードＤ９−４に対してコンフィグレーションＲＯＭのノード識別子を読みに行く。この時、ＩＥＥＥ１３９４ローカルバスブリッジ１は転送速度Ｓ４００で読出しを試みる。ここで、ノードＤ９−４の転送速度能力がＳ１００しかないと仮定する。
【０１５７】
ＩＥＥＥ１３９４ローカルバスブリッジ１からノードＤ９−４へのコンフィグレーションＲＯＭのノード識別子の読出し要求に対してノードＤ９−４は反応しない。次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はＳ２００でノードＤ９−４へのコンフィグレーションＲＯＭのノード識別子の読出し要求を行う。当然、ノードＤ９−４は反応することができない。
【０１５８】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はＳ１００でノードＤ９−４へのコンフィグレーションＲＯＭのノード識別子の読出し要求を行う。本転送速度はノードＤ９−４の転送性能に合致するため、ノードＤ９−４は反応し、コンフィグレーションＲＯＭのノード識別子に対して応答を返答する。ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＤ９−４の転送速度がＳ１００であることを認識するとともに、コンフィグレーションＲＯＭのノード識別子を取得することができる。
【０１５９】
取得したコンフィグレーションＲＯＭのノード識別子のデータは、ポータルＢノード管理番号５３１ｄに保存される。ここでは仮にノードＤ９−４のコンフィグレーションＲＯＭのノード識別子を＃２に仮定している。そして、ＩＥＥＥ１３９４ローカルバスブリッジ１は転送性能がＳ１００であることがわかったので、ポータルＢノード転送性能コード５３１ｅを＃００に設定する。これで、ノードＤ９−４に対する情報はすべて揃うことになる。
【０１６０】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１は仮想ポート管理番号５３１ｌのポインタを＃０１に設定する。ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢルートフラグ５３１ｊ及びポータルＢ自ノードフラグ５３１ｉがアクティブでなく、且つポータルＢノードアクティブフラグ５３１ｈがアクティブであるかを調べる。すると、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢ自ノードフラグ５３１ｉがアクティブであることを認識する。つまり、ＩＥＥＥ１３９４ローカルバスブリッジ１はコンフィグレーションＲＯＭのノード識別子の読出しが不要であることを理解する。但し、ポータルＢルートフラグ５３１ｊがアクティブでないため、まだ、コンフィグレーションＲＯＭのノード識別子の読出しが終了していないノードがあることが判る。
【０１６１】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１は仮想ポート管理番号５３１ｌのポインタを＃０２に設定する。ポータルＢルートフラグ５３１ｊ及びポータルＢ自ノードフラグ５３１ｉがアクティブでなく、且つポータルＢノードアクティブフラグ５３１ｈがアクティブであるかを調べる。ＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌのポインタ＃０２の行を見ると、上記条件に当てはまる。そこで、ＩＥＥＥ１３９４ローカルバスブリッジ１は仮想ポート管理番号５３１ｌのポインタ＃０２に対応するポータルＢノードＩＤ５３１ｆを調べる。本実施例では＃２となっている。
【０１６２】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢのノードＩＤが＃２のノード、すなわちノードＦ９−６に対してコンフィグレーションＲＯＭのノード識別子を読みに行く。上述したノードＤ９−４の時と同様に、ＩＥＥＥ１３９４ローカルバスブリッジ１は転送速度をＳ４００から読出しを試みる。ここで、ノードＦ９−６の転送速度能力がＳ２００と仮定する。
【０１６３】
ＩＥＥＥ１３９４ローカルバスブリッジ１からノードＦ９−６へのコンフィグレーションＲＯＭのノード識別子の読出し要求に対して、ノードＦ９−６は反応しない。次に、Ｓ２００でノードＦ９−６へのコンフィグレーションＲＯＭのノード識別子の読出し要求に対して、ノードＦ９−６は反応し、コンフィグレーションＲＯＭのノード識別子に対して応答を返答する。
【０１６４】
ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＦ９−６の転送速度がＳ２００であることを認識するとともに、コンフィグレーションＲＯＭのノード識別子を取得することができる。取得したコンフィグレーションＲＯＭのノード識別子のデータはポータルＢノード管理番号５３１ｄに保存される。
【０１６５】
ここでは仮にポータルＦ９−６のコンフィグレーションＲＯＭのノード識別子を＃３に仮定している。そして、転送性能がＳ２００であることがわかったので、ポータルＢノード転送性能コード５３１ｅを＃０１に設定する。これで、ノードＦ９−６に対する情報はすべて揃うことになる。
【０１６６】
次に、仮想ポート管理番号５３１ｌのポインタを＃０３に設定する。ポータルＢルートフラグ５３１ｊ及びポータルＢ自ノードフラグ５３１ｉがアクティブでなく、且つポータルＢノードアクティブフラグ５３１ｈがアクティブであるかを調べる。ＩＤ変換テーブル５３１の仮想ポート管理番号５３１ｌのポインタ＃０３の行を見ると、ポータルＢルートフラグ５３１ｊがアクティブであり、このノードが最大のノードＩＤをもち、これ以上のノードが無いことが判る。したがって、ＩＥＥＥ１３９４ローカルバスブリッジ１はこれが最後のコンフィグレーションＲＯＭのノード識別子読出し動作であると認識することができる。
【０１６７】
次に、仮想ポート管理番号５３１ｌのポインタ＃０３に対応するポータルＢノードＩＤ５３１ｆを調べる。本実施例では＃３となっている。ポータルＢのノードＩＤが＃３のノード、すなわちノードＥ９−５に対してコンフィグレーションＲＯＭのノード識別子を読みに行く。上述したノードＤ９−４の時と同様に、転送速度をＳ４００から読出しを試みる。ここで、ノードＥ９−５の転送速度能力がＳ４００と仮定する。
【０１６８】
ＩＥＥＥ１３９４ローカルバスブリッジ１からノードＥ９−５へのコンフィグレーションＲＯＭのノード識別子の読出し要求に対して、ノードＥ９−５は反応することができ、コンフィグレーションＲＯＭのノード識別子に対して応答を返答する。ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＥ９−５の転送速度がＳ４００であることを認識するとともに、コンフィグレーションＲＯＭのノード識別子を取得することができる。
【０１６９】
取得したコンフィグレーションＲＯＭのノード識別子のデータは、ポータルＢノード管理番号５３１ｄに保存される。ここでは仮にポータルＥ９−５のコンフィグレーションＲＯＭのノード識別子を＃４に仮定している。そして、転送性能がＳ４００であることがわかったので、ポータルＢノード転送性能コード５３１ｅを＃１０に設定する。これで、ノードＥ９−５に対する情報はすべて揃うことになる。さらに、先に述べたように、本ノードがルートであるので、これですべてのノードに対する情報を取得することができたことがわかる。
【０１７０】
上述した説明の中で、ポータルＢノードアクティブフラグ５３１ｈがアクティブでなかった場合の例が抜けているので、その場合の動作について以下に説明する。もし、ポータルＢノードアクティブフラグ５３１ｈがアクティブでなかった場合、その行のコンフィグレーションＲＯＭのノード識別子読出し動作は行わず、仮想ポート管理番号５３１ｌのポインタを１つ上げる。
【０１７１】
これらの動作を簡単にまとめると、ポータルＢノードアクティブフラグ５３１ｈがアクティブであるノードが、コンフィグレーションＲＯＭのノード識別子の調査対象であり、ポータルＢ自ノードフラグ５３１ｉが立っているノードは、対象から外す。ポータルＢルートフラグ５３１ｊが見つかると、それが最後のノードである。仮想ポート管理番号５３１ｌによるポインタは＃００から開始し、１つずつ加算して調べていくということになる。
【０１７２】
図２６は本発明の一実施例における通常モード時にポータルＡ及びポータルＢのＩＤ変換テーブル情報がそろった状態を示す図である。図２６においては、上記の手順によって、ポータルＡ及びポータルＢのＩＤ変換テーブル情報が確立された状態を示している。
【０１７３】
図２６において、ポータルＡはノードＡ９−１、ノードＢ９−２、ノードＣ９−３、ＩＥＥＥ１３９４ローカルバスブリッジ１が接続され、それぞれノードＩＤは＃１、＃０、＃２、＃３となっている。ポータルＢはノードＤ９−４、ノードＥ９−５、ノードＦ９−６、ＩＥＥＥ１３９４ローカルバスブリッジ１が接続され、それぞれノードＩＤは＃０、＃３、＃１、＃２となっている。
【０１７４】
この状態では、ポータルＡ及びポータルＢのローカルバスが独立した状態になっており、それぞれのローカルバス内ではパケットの転送が可能であるが、ポータルＡからはポータルＢが見えていないため、ポータルＡからポータルＢへのパケットの転送はできない。
【０１７５】
図２７は本発明の一実施例における通常モード時にポータルＡへの２回目のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図であり、図２８及び図２９は本発明の一実施例における通常モード時にポータルＡの２回目のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。図３０は本発明の一実施例におけるＩＤ変換テーブルの構築が完了時のポータルＡから見たイメージを示す図であり、図３１は本発明の一実施例におけるＩＤ変換テーブルの構築が完了時のノードＩＤの状態を示す図である。これら図２５と図２７〜図３１とを参照して、ポータルＢの情報をポータルＡに伝える方法について説明する。
【０１７６】
図２７は横軸が時間で、バスリセットが発生してから、自己識別フェーズの終了までを表している。図２８及び図２９はノードＢの自己識別パケットの詳細ＰＫＴ(0) １６０１、ノードＡの自己識別パケットの詳細ＰＫＴ(1) １６１１、ノードＣの自己識別パケットの詳細ＰＫＴ(2) １６０３、ノードＤの自己識別パケットの詳細ＰＫＴ(3) １６２１、ＩＥＥＥ１３９４ローカルバスの自己識別パケットの詳細ＰＫＴ(4) １６４１、ＰＫＴ(5) １６４２、ＰＫＴ(6) １６４３、ノードＦの自己識別パケットの詳細ＰＫＴ(7) １６６１、ノードＥの自己識別パケットの詳細ＰＫＴ(8) １６７１を示すものである。
【０１７７】
まず、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡにバスリセットを発行する。バスリセットが発生すると、ポータルＡの自己識別フェーズが開始される。この動作は上述したポータルＡの自己識別フェーズと同様の動作である。ポータルＡのローカルバス上でバスリセットが発生すると、ＰＨＹからバスリセット開始を知らせるステート（Ｂｕｓ  Ｒｅｓｅｔ）１５０１が通知され、ポータルＡ内でのトポロジの構築がなさる。
【０１７８】
次いで、ポータルＡの自己識別フェーズが開始される。自己識別パケットは図２７〜図２９に示す通り、ノードＢ９−２、ノードＡ９−１、ノードＣ９−３というように、順次、自己識別パケットが送信される。ポータルＡの各ノードの自己識別パケットを受信し終えると、次はＩＥＥＥ１３９４ローカルバスブリッジ１が送信する順番となる。ここで、ＩＤ変換部５３はＩＤ変換テーブル５３１において、まず、仮想ポート管理番号５３１ｌのポインタを＃００にする。
【０１７９】
次に、ＩＤ変換部５３はポータルＢノードアクティブフラグ５３１ｈがアクティブであるかを調べる。アクティブであった場合、ＩＤ変換部５３は次いでポータルＢ自ノードフラグ５３１ｉがアクティブであるかどうか調べる。そして、ＩＤ変換部５３はポータルＢルートフラグ５３１ｊの状態を調べる。もし、ポータルＢノードアクティブフラグ５３１ｊがアクティブでなければ、ＩＤ変換部５３は仮想ポート管理番号５３１ｌのポインタに＃１加算し、上記と同様の調査を行う。
【０１８０】
本実施例では、仮想ポート管理番号５３１ｌのポインタが＃００の行におけるポータルＢノードアクティブフラグ５３１ｈがアクティブである。そこで、ＩＤ変換部５３はＩＤ変換テーブル５３１にポータルＡノードＩＤ５３１ｃにポータルＡの各ノードから受信した自己識別パケットの最後のノードＩＤ＃２に＃１加算したノードＩＤ＃３を設定する。これは、自己識別パケットのノードＩＤはＩＥＥＥ１３９４規格上、連続した昇順の番号割当てになることに準じるためである。
【０１８１】
次に、ＩＤ変換部５３はポータルＢ自ノードフラグ５３１ｉを調べると、アクティブではない。したがって、ＩＤ変換部５３はポータルＢの仮想ポートの自己識別パケットを送信する必要があり、且つそのパケットはＩＥＥＥ１３９４ローカルバスブリッジ１の子ノードとして送信する必要があると判断する。さらに、ＩＤ変換部５３はポータルＢルートフラグ５３１ｊの状態を調べと、アクティブではなく、続く自己識別パケットがあることを認識する。ＩＤ変換部５３はこれらの確認が終わると、ＩＤ変換テーブル５３１の情報を基に自己識別パケットを生成する。図２８のノードＤの自己識別パケットの詳細ＰＫＴ(3) １６３１がそれになる。
【０１８２】
ＰＨＹ  ＩＤ１６３２にはＩＤ変換テーブル５３１のポータルＡノードＩＤ５３１ｃの値＃３が設定される。ｓｐ１６３３にはＩＤ変換テーブル５３１のポータルＢ転送性能コード５３１ｅの値＃０が設定される。ｃビット１６３４にはＩＤ変換テーブル５３１のポータルＢコンテンダフラグ５３１ｋの状態＃０を設定する。ｐ(0) １６３５には、まだポータルＢ自ノードフラグ５３１ｉがアクティブになったことがないため、子ノードとして＃１０を設定する。
【０１８３】
ノードＤ９−４に対応した自己識別パケットの生成が終了すると、ＩＤ変換部５３は自己識別パケットをポータルＡへ送信する。図２７のノードＤの識別パケット（ＩＤ＃３）１５０５がそれにあたる。先ほどのポータルＢルートフラグ５３１ｊがまだアクティブとなっていないため、次の自己識別パケットの送信準備に入る。
【０１８４】
まず、ＩＤ変換部５３は仮想ポート管理番号５３１ｌのポインタを＃１加算し、＃０１とする。この行におけるポータルＢノードアクティブフラグ５３１ｈはアクティブである。そこで、ＩＤ変換部５３はＩＤ変換テーブル５３１にポータルＡノードＩＤ５３１ｃに先ほど割り当てたノードＩＤの番号＃３に＃１加算したノードＩＤ＃４を設定する。
【０１８５】
次に、ＩＤ変換部５３はポータルＢ自ノードフラグ５３１ｉを調べると、アクティブである。したがって、ＩＥＥＥ１３９４ローカルバスブリッジ１はこれに続いて自己識別パケットを送信する必要があると判断する。ＩＤ変換部５３はＩＤ変換テーブル５３１の情報を基に自己識別パケットを生成する。図２９のブリッジ識別パケットの詳細ＰＫＴ(4) １６４１、ＰＫＴ(5) １６４２、ＰＫＴ(6) １６４３がそれになる。
【０１８６】
ＰＨＹ  ＩＤ１６４４にはＩＤ変換テーブル５３１のポータルＡノードＩＤ５３１ｃの値＃４が設定される。ｐ(0) １６４５、ｐ(1) １６４６、ｐ(2) １６４７には、ＩＥＥＥ１３９４ローカルバスブリッジ１より小さいノードと接続されているため、子ノードとして扱う。したがって、＃１１が設定される。ｐ(3) １６４８、ｐ(4) １６４９には、ＩＥＥＥ１３９４ローカルバスブリッジ１より大きいノードＩＤと接続されているため、親ノードとして扱い、＃１０が設定される。ｐ(5) 〜ｐ（10) １６５０及びｐ(11)〜ｐ(15)１６５１にはノードの割当てが無いため、未接続とし、＃０１を設定する。自ノードに対応した自己識別パケットの生成が終了すると、ＩＤ変換部５３は自己識別パケットをポータルＡへ送信する。図２７のブリッジ識別パケットＩＤ＃１（１／３）１５０５、ブリッジ識別パケットＩＤ＃１（２／３）１５０６、ブリッジ識別パケットＩＤ＃１（３／３）１５０７がそれにあたる。
【０１８７】
ＩＤ変換部５３はポータルＢルートフラグ５３１ｊがまだアクティブとなっていないため、次の自己識別パケットの送信準備に入る。ＩＤ変換部５３は仮想ポート管理番号５３１ｌのポインタを＃１加算して＃０２とする。この行におけるポータルＢノードアクティブフラグ５３１ｈはアクティブである。そこで、ＩＤ変換部５３はＩＤ変換テーブル５３１にポータルＡノードＩＤ５３１ｃに先ほど割当てたノードＩＤの番号＃４に＃１加算したノードＩＤ＃５を設定する。
【０１８８】
次に、ＩＤ変換部５３はポータルＢ自ノードフラグ５３１ｉがすでに送信済みであり、ポータルＢの仮想ポートの自己識別パケットを送信する必要があり、且つそのパケットがＩＥＥＥ１３９４ローカルバスブリッジ１の親ノードとして送信する必要があると判断する。ＩＤ変換部５３はこれらの確認が終わると、ＩＤ変換テーブル５３１の情報を基に自己識別パケットを生成する。図２９のノードＦの自己識別パケットの詳細ＰＫＴ(7) １６６１がそれになる。
【０１８９】
ＰＨＹ  ＩＤ１６６２にはＩＤ変換テーブル５３１のポータルＡノードＩＤ５３１ｃの値＃５が設定される。ｓｐ１６６３にはＩＤ変換テーブル５３１のポータルＢ転送性能コード５３１ｅの値＃１が設定される。ｃビット１６６４にはＩＤ変換テーブル５３１のポータルＢコンテンダフラグ５３１ｋの状態＃０を設定する。ｐ(0) １６６５にはすでにポータルＢ自ノードフラグ５３１ｉがアクティブになった後であるため、親ノードとして＃１１を設定する。ノードＦ９−６に対応した自己識別パケットの生成が終了すると、ＩＤ変換部５３は自己識別パケットをポータルＡへ送信する。図２７のノードＦの識別パケット（ＩＤ＃５）１５０９がそれにあたる。ＩＤ変換部５３はポータルＢルートフラグ５３１ｊがまだアクティブとなっていないため、次の自己識別パケットの送信準備に入る。
【０１９０】
ＩＤ変換部５３は仮想ポート管理番号５３１ｌのポインタを＃１加算し、＃０３とする。この行におけるポータルＢノードアクティブフラグ５３１ｈはアクティブである。そこで、ＩＤ変換部５３はＩＤ変換テーブル５３１に、ポータルＡノードＩＤ５３１ｃに先ほど割当てたノードＩＤの番号＃５に＃１加算したノードＩＤ＃６を設定する。
【０１９１】
次に、ＩＤ変換部５３はポータルＢ自ノードフラグ５３１ｉがすでに送信済みであり、ポータルＢの仮想ポートの自己識別パケットを送信する必要があり、且つそのパケットがＩＥＥＥ１３９４ローカルバスブリッジ１の親ノードとして送信する必要があると判断する。ＩＤ変換部５３はこれらの確認が終わると、ＩＤ変換テーブル５３１の情報を基に自己識別パケットを生成する。図２９のノードＥの自己識別パケットの詳細ＰＫＴ(8) １６７１がそれになる。
【０１９２】
ＰＨＹ  ＩＤ１６７２にはＩＤ変換テーブル５３１のポータルＡノードＩＤ５３１ｃの値＃６が設定される。ｓｐ１６７３にはＩＤ変換テーブル５３１のポータルＢ転送性能コード５３１ｅの値＃２が設定される。ｃビット１６７４にはＩＤ変換テーブル５３１のポータルＢコンテンダフラグ５３１ｋの状態＃１を設定する。ｐ(0) １６７５にはすでにポータルＢ自ノードフラグ５３１ｉがアクティブになった後であるため、親ノードとして＃１１を設定する。ノードＥ９−５に対応した自己識別パケットの生成が終了すると、ＩＤ変換部５３は自己識別パケットをポータルＡへ送信する。図２７のノードＥの識別パケット（ＩＤ＃６）１５１０がそれにあたる。ＩＤ変換部５３はポータルＢルートフラグ５３１ｊがアクティブとなっているため、これで自己識別パケットの送信がすべて完了したと判断し、次の送信準備に入らない。
【０１９３】
その後、規定時間が経過し、サブアクションギャップが発生すると、ステート（Ｓｕｂａｃｔｉｏｎ  Ｇａｐ）１５１１がＰＨＹから通知され、自己識別フェーズが終了する。これら一連のポータルＡの自己識別フェーズによって、ポータルＢの情報がポータルＡに伝えられる。
【０１９４】
図３０においては、ポータルＡからみたトポロジイメージを示しており、ノードＡ９−１のノードＩＤは＃１となり、ノードＢ９−２のノードＩＤは＃０となり、ノードＣ９−３のノードＩＤは＃２となる。次いで、ノードＤ９−４がＩＥＥＥ１３９４ローカルバスブリッジ１のＰ(2) １３に繋がっており、そのノードＩＤは＃３となり、ＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤは＃４となる。
【０１９５】
ノードＦ９−６はＩＥＥＥ１３９４ローカルバスブリッジ１のＰ(3) １４に繋がっており、そのノードＩＤは＃５となり、ノードＥ９−５はＩＥＥＥ１３９４ローカルバスブリッジ１のＰ(4) １５に繋がっており、そのノードＩＤは＃６でルートとなる。その他の仮想ポートには何も繋がっていないように見せかけている。このようにして、ポータルＢのトポロジをポータルＡへ伝達する自己識別フェーズが完了する。
【０１９６】
続いて、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡ側のバス上から登録ノードの検出する。動作は上述した動作と同様となるので、その説明を省略する。ＩＤ変換部５３に検出したノードＡ９−１のノードＩＤ番号＃２と転送性能コードとを通知する。
【０１９７】
これら一連の動作でＩＤ変換テーブル５３１の構築が完了し、通常のＩＤ変換が可能となる。ここで、ポータルＡから見たノードＩＤとポータルＢから見たノードＩＤの状態を整理すると、図３１に示すようになる。
【０１９８】
ポータルＡのトポロジはノードＩＤの低い順から、ノードＢ９−２、ノードＡ９−１、ノードＣ９−３、ノードＤ９−４、ＩＥＥＥ１３９４ローカルバスブリッジ１、ノードＦ９−６、ノードＥ９−５となる。これらのノードは登録ノードＡ９−１からすべてアクセスが可能である。
【０１９９】
次いで、ポータルＢのトポロジはノードＩＤの低い順から、ノードＤ９−４、ＩＥＥＥ１３９４ローカルバスブリッジ１、ノードＦ９−６、ノードＥ９−５となる。ＩＥＥＥ１３９４ローカルバスブリッジ１は登録ノードＡ９−１に成りすますので、実際のポータルＢのトポロジは、ノードＩＤの低い順から、ノードＤ９−４、ノードＡ９−１、ノードＦ９−６、ノードＥ９−５と見える。すなわち、登録ノードＡ９−１が所属するローカルバスに所属するノードＢ９−２、ノードＣ９−３はポータルＢから完全に隠すことができる。
【０２００】
次に、ＩＤ変換動作について図２５と図３１とを用いて説明する。図３１において、ノードＡ９−１からノードＥ９−５へのパケット転送が発生したとする。ポータルＡから見たノードＥ９−５のノードＩＤは＃６である。したがって、ノードＡ９−１からは、転送元ノードＩＤを＃１、転送先ノードＩＤを＃６、としてパケットを送信することになる。
【０２０１】
ＩＥＥＥ１３９４ローカルバスブリッジ１はそのパケットを受取ると、まず、図２５に示すＩＤ変換テーブル５３１を参照し、転送元ノードＩＤを検査する。ノードＩＤが＃１であることから、ノードＡ９−１からのパケットであり、ポータルＢへ転送許可されているノードであることを認識する。もしここで、ノードＡ９−１以外のノードからのパケットであった場合、ポータルＢへの転送は行わない。
【０２０２】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１は転送先ノードＩＤを検査する。ＩＥＥＥ１３９４ローカルバスブリッジ１はＩＤ変換テーブル５３１のポータルＡノードＩＤ５３１ｃを参照すると、ノードＩＤ＃６を見つけ、ポータルＢのノードであることがわかる。もしここで、ポータルＢのノードでなければ、ポータルＢへの転送は行わない。
【０２０３】
続いて、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢノードアクティブフラグ５３１ｈを検査し、アクティブであることを認識する。もしここで、ポータルＢノードアクティブフラグ５３１ｈが立っていない場合、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢのトポロジに変更が発生していて、かつポータルＡへその情報を通知していない状態であったと判断し、ポータルＡへバスリセットを発行し、ポータルＢのトポロジをポータルＡへ通知することになる。ＩＥＥＥ１３９４ローカルバスブリッジ１はこれら検査を終了し、ポータルＢへ転送すべきパケットであることを認識すると、ＩＤ変換を開始する。
【０２０４】
ＩＤ変換は次の手順で行う。ＩＤ変換部５３は図２５に示すＩＤ変換テーブル５３１のポータルＡノードＩＤ５３１ｃの＃６の行のポータルＢノードＩＤ５３１ｄを検索し、ノードＩＤ＃３を認識する。また、ＩＤ変換部５３はポータルＢノード転送性能コード５３１ｅから、Ｓ４００の転送が可能であることを認識する。ＩＤ変換部５３はこれらの情報から、転送元ノードＩＤをポータルＢにおけるＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤである＃１に変換する。ＩＤ変換部５３は転送先ノードＩＤをポータルＢのノードＥ９−５のノードＩＤである＃３に変換する。ＩＥＥＥ１３９４ローカルバスブリッジ１は変換が完了すると、ポータルＢへパケットを転送し、さらにＳ２００であったパケットをＳ４００にして、転送を開始する。
【０２０５】
次に、図３１においてノードＥ９−５からノードＡ９−１へのパケット転送が発生したとする。ポータルＢから見たノードＡ９−１のノードＩＤはＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤであり、＃１である。したがって、ノードＥ９−５からは、転送元ノードＩＤを＃３、転送先ノードＩＤを＃１、としてパケットを送信することになる。ＩＥＥＥ１３９４ローカルバスブリッジ１はそのパケットが自分へのパケットであり、それはポータルＡへのパケット転送を意味することを認識する。もしここで、自ノード宛以外へのパケットであった場合、ポータルＡへの転送は行わない。
【０２０６】
ＩＥＥＥ１３９４ローカルバスブリッジ１はこれら検査を終了し、ポータルＡへ転送すべきパケットであることを認識すると、ＩＤ変換を開始する。ＩＤ変換は次の手順で行う。ＩＤ変換部５３は図２５に示すＩＤ変換テーブル５３１のポータルＢノードＩＤ５３１ｄの＃３の行のポータルＡノードＩＤ５３１ｃを検索し、ノードＩＤ＃６を認識する。また、ＩＤ変換部５３はポータルＡノード転送性能コード５３１ｂから、Ｓ２００の転送が可能であることを認識する。ＩＤ変換部５３はこれらの情報から、転送元ノードＩＤをポータルＡにおけるノードＥ９−５のノードＩＤである＃６に変換する。転送先ノードＩＤはポータルＡのノードＡ９−１のノードＩＤである＃１に変換する。ＩＥＥＥ１３９４ローカルバスブリッジ１は変換が完了すると、ポータルＡへパケットを転送し、さらにＳ４００であったパケットをＳ２００にして、転送を開始する。
【０２０７】
ポータルＢでノードが抜かれた、または追加された、ルートノードの変更等、さまざまな要因によってバスリセットが発生することがある。バスリセットが発生すると、ポータルＢのトポロジが変更され、ポータルＡへ通知する必要があるが、不用意にすべてのバスリセットを通知すると、ポータルＡの転送効率が下がるため、ＩＥＥＥ１３９４ローカルバスブリッジ１は最低限のバスリセットのみを通知させることによって、ポータルＡの転送効率を向上させることができる。以下、ポータルＢのバスリセットをポータルＡに通知する条件を列記する。
【０２０８】
１つ目はＩＥＥＥ１３９４ローカルバスブリッジ１を設計する際、ポータルＡからポータルＢへのＬＯＣＫトランザクションにおいて、ＩＥＥＥ１３９４ローカルバスブリッジ１に代替させる機能を持たせた場合、ＩＥＥＥ１３９４ローカルバスブリッジ１が代替動作を行わないＬＯＣＫトランザクションが発生した後、またはＩＥＥＥ１３９４ローカルバスブリッジ１に代替させる機能を持たせなかった場合で、ＬＯＣＫトランザクションが発生した後のポータルＢのバスリセット発生した場合、ポータルＡとポータルＢとの不整合が生じることになる。この場合、ポータルＡへバスリセットを発生させ、再度、自発的にＬＯＣＫトランザクション発行を促し、整合をとる。
【０２０９】
２つ目はＩＥＥＥ１３９４ローカルバスブリッジ１を設計する際、ポータルＡへのＩｓｏｃｈｒｏｎｏｕｓパケットを転送させないことができる機能を持たせることによって、ポータルＡの転送効率を上げることができる。この機能を有効／無効にすることができる機能を持たせた場合、ポータルＡのアプリケーションによってバスリセットを期待している場合がある。したがって、Ｉｓｏｃｈｒｏｎｏｕｓパケット転送の有効／無効を切替える際には、そのことをアプリケーションへ知らせるためにバスリセットを発生させる。
【０２１０】
３つ目はポータルＢにおいて新たなノードが追加された場合、ポータルＡへバスリセットを発生させ、ノードの追加があったことを伝える必要がある。４つ目はポータルＢのルートノードが変更となった場合、リソースの取り直しが必要となる。そのため、ポータルＡへバスリセットを通知する必要がある。
【０２１１】
これらバスリセットをポータルＡへ伝えるべき項目を列挙したが、要は、ポータルＡとポータルＢとにおいて、ＩＥＥＥ１３９４ローカルバスブリッジ１にて吸収できない事態が発生した場合には、バスリセットにて整合を取ることになる。さて、ポータルＢからノードが抜かれた場合についてであるが、この場合、ポータルＡにバスリセットを発行することで、トポロジを伝えることも考えられるが、ＩＥＥＥ１３９４ローカルバスブリッジ１ではＩＤ変換テーブル５３１にて吸収することで、ポータルＡへバスリセットを発生させず、ポータルＡの転送効率を向上させることができる。
【０２１２】
図３２は本発明の一実施例においてノードＤが抜かれた時の接続を示す図であり、図３３は本発明の一実施例においてノードＤが抜かれた時のＩＤ変換テーブルの構成を示す図である。これら図３２及び図３３を参照して上記の方法について説明する。
【０２１３】
図３２は図３１の構成からノードＤ９−４が抜かれた状態を示す。図３１の状態からノードＤ９−４が抜かれると、ポータルＢにてバスリセットが発生する。ＩＥＥＥ１３９４ローカルバスブリッジ１はバスリセットが発生したことを受け、ＩＤ変換テーブル５３１のポータルＢノードアクティブフラグ５３１ｈをクリアさせる。ポータルＢではバスリセットが発生したため、自己識別プロセスが開始され、各ノード間で自己識別がなされる。図３２ではノードＥ９−５、ノードＦ９−６、ＩＥＥＥ１３９４ローカルバスブリッジ１間でそれが行われる。
【０２１４】
自己識別プロセスが終了すると、ＩＥＥＥ１３９４ローカルバスブリッジ１はＩＤ変換テーブル５３１の再構築を行うため、各ノードからコンフィグレーションＲＯＭのノード識別子の取得を開始する。コンフィグレーションＲＯＭのノード識別子の取得は、ポータルＢのノードＩＤの若い順から開始する。仮に、今回のバスリセットで、ノードＩＤの若い順をＩＥＥＥ１３９４ローカルバスブリッジ１、ノードＦ９−６、ノードＥ９−５の順だったとする。ＩＥＥＥ１３９４ローカルバスブリッジ１は、まずノードＩＤ＃０を調べる。このノードは自ノードであるため、図３３のポータルＢ自ノードフラグ５３１ｉがセットされている行、すなわち仮想ポート管理番号５３１ｌのポインタ＃０１のポータルＢノードアクティブフラグ５３１ｈをセットする。
【０２１５】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＩＤ＃１について調べ、ノードＩＤ＃１のコンフィグレーションＲＯＭのノード識別子の取得を行った結果と、ポータルＢノード管理番号５３１ｄとを比較し、一致するところがあるか調べる。その結果、ノードＩＤ＃１は従来より存在していたノードＦ９−６であり、仮想ポート管理番号５３１ｌのポインタ＃０２と一致する。ＩＥＥＥ１３９４ローカルバスブリッジ１は一致した行のポータルＢノードアクティブフラグ５３１ｈをセットするとともに、ポータルＢノードＩＤ５３１ｆ、ポータルＢノード転送性能コード５３１ｅを更新する。
【０２１６】
次に、ＩＥＥＥ１３９４ローカルバスブリッジ１はノードＩＤ＃２について調べ、ノードＩＤ＃２のコンフィグレーションＲＯＭのノード識別子の取得を行った結果と、ポータルＢノード管理番号５３１ｄとを比較し、一致するところがあるか調べる。その結果、ノードＩＤ＃２は従来より存在していたノードＥ９−５であり、仮想ポート管理番号５３１ｌのポインタ＃０３と一致する。ＩＥＥＥ１３９４ローカルバスブリッジ１は一致した行のポータルＢノードアクティブフラグ５３１ｈをセットするとともに、ポータルＢノードＩＤ５３１ｆ、ポータルＢノード転送性能コード５３１ｅを更新する。
【０２１７】
また、このノードが最上位ノード、すなわちルートノードであるので、ＩＥＥＥ１３９４ローカルバスブリッジ１はこのノードがバスリセット前のルートノードと一致するかどうか調べる。もし、ルートノードが変更されていたならば、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡへバスリセットを発行することになる。しかしながら、本例では、ルートノードは変わらなかったので、これでＩＤ変換テーブル５３１の更新を終える。その結果、図３３に示すように、ＩＤ変換テーブル５３１が更新される。
【０２１８】
ここで、注意すべき点はポータルＡノードＩＤを変更しないことである。ポータルＡとの関連付けはポータルＢノード管理番号５３１ｄを使って管理しているので、ポータルＢノードＩＤがどのように変更しても、不整合を生じることは無い。一点あるとすれば、ポータルＡのノードＡ９−１がノードＤ９−４が抜かれたことに気が付いていないということになる。もし、ノードＡ９−１がノードＤ９−４へアクセスした場合、ポータルＡへバスリセットを発生させ、ノードＤ９−４が抜かれたことを通知すれば不整合を生じさせなく済む。また、ノードＤ９−４が抜かれてから、一度もアクセスされること無く、ノードＤ９−４が再度、接続された場合、上述した手順によって、ＩＤ変換テーブル５３１が更新されるが、ルートの変更が無い限り、ポータルＡへはバスリセットを通知する必要はない。
【０２１９】
ポータルＡでバスリセットが発生した場合、基本的にはポータルＢへバスリセットを通知する必要は無い。但し、ポータルＡの登録ノードのコンフィグＲＯＭの内容が変更されている等、登録ノード状態をポータルＢへ伝える場合にのみ、ポータルＢへバスリセットを発行する必要がある。
【０２２０】
ポータルＡに接続されている登録ノードがポータルＢ側に対するパケットはＩＥＥＥ１３９４ローカルバスブリッジ１で受信され、ＩＥＥＥ１３９４ローカルバスブリッジ１が認識パケット（ペンディング）を返信する。ＩＥＥＥ１３９４ローカルバスブリッジ１は受信したパケットをポータルＢ用のＩＤに返還した後に、ポータルＢに送信する。
【０２２１】
ポータルＢ側でＩＥＥＥ１３９４ローカルバスブリッジ１が認識パケットを受信した時、ポータルＡ側に確認パケットを生成して送信する。ポータルＢでの通信がスプリットトランザクションの場合はさらにポータルＢのノードから確認パケットが送信される。ＩＥＥＥ１３９４ローカルバスブリッジ１はそれを受信し、認識パケット（ペンディング）を送信する一方、ポータルＡ側の登録ノード宛てのパケットにＩＤ変換して送信する。
【０２２２】
登録ノードは確認パケットに対する認識パケットを送信する。ＩＥＥＥ１３９４ローカルバスブリッジ１はそれを受信し、ポータルＢ側に確認パケットを生成して送信する。ポータルＡに接続されているノードからＩＥＥＥ１３９４ローカルバスブリッジ１宛てのパケットに対して、ＣＳＲのアクセスであればＣＳＲ制御部５４にてユニファイドトランザクションで応答する。それ以外は認識パケット（アドレスエラー）を返送して通信を終了させる。
【０２２３】
ポータルＡの登録ノード以外のノードからポータルＢのノード宛てのパケットに関してはＩＥＥＥ１３９４ローカルバスブリッジ１が認識パケット（アドレスエラー）を返送して通信を終了させる。
【０２２４】
ポータルＢに接続されているノードからＩＥＥＥ１３９４ローカルバスブリッジ１へのアクセスが来ると、ＩＥＥＥ１３９４ローカルバスブリッジ１はそのアクセスがＣＳＲへのアクセスであれば、ＣＳＲ制御部５４にてユニファイドトランザクションで応答し、それ以外に対するアクセスであれば、ひとまずペンディングの認識パケットを返し、ポータルＡへ転送する。
【０２２５】
その後、ポータルからの認識パケットがビジーとペンディング以外であれば、ＩＥＥＥ１３９４ローカルバスブリッジ１はそれに対応した応答パケットを自動生成し、ポータルＢへ送信し、スプリットトランザクションを完了させる。
【０２２６】
もし、ポータルＡからの認識パケットがビジーであれば、ＩＥＥＥ１３９４ローカルバスブリッジ１は再度、同じパケットをポータルＡへ送信し、ペンディングであればポータルＡからの応答パケットにゆだね、ポータルＢへ応答パケットを送信しない。また、パケットの転送方法については、ポータルＡからポータルＢに関しても、上記と同等である。
【０２２７】
ここで、サイクルスタートパケットについて説明する。上述したように、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡでは確実にルートノードになるが、ポータルＢではバスリセットの度にルートノードになったり、ならなかったりする。ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢでルートノードの時と、そうでない時とで違った動きをする。
【０２２８】
ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢでルートノードになった時に、サイクルスタートのタイミングで、先ずポータルＢにサイクルスタートパケットを送信し、一定時間後、ポータルＡにサイクルスタートパケットを送信する。また、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢでルートノードにならなかった時に、ポータルＢでサイクルスタートパケットを受信したら、受信が完了した時点でポータルＡにサイクルスタートパケットを送信開始する。このようにして、ポータルＡとポータルＢとのサイクルスタートタイミングのずれは、ポータルＢでルートノードになってもならなくても同等となる。
【０２２９】
ＩＥＥＥ１３９４ローカルバスブリッジ１周辺のバスでは上述のタイミングでサイクルスタートパケットが流れるので、ポータルＢからポータルＡへのＩｓｏｃｈｒｏｎｏｕｓパケットの転送は、受信と同時に送信することによって実現される。しかしながら、ポータルＡからポータルＢに転送する際には、ポータルＡでＩｓｏｃｈｒｏｎｏｕｓパケットを受信した時点で、ポータルＢではサブアクションギャップを検出している可能性があるので、１サイクル分のＩｓｏｃｈｒｏｎｏｕｓパケットをＦＩＦＯにためておき、次のサイクルスタートパケットを待ってから送信を開始する。
【０２３０】
現在、殆どのＩＥＥＥ１３９４機器はＰ１３９４．１で規定されているブリッジに対応することができない。このＰ１３９４．１規格はＩＥＥＥ１３９４−１９９５やＩＥＥＥ１３９４ａ−２０００において具体的な規定がなく、これらの規格に準拠した機器が、ＢＵＳ  ＩＤがローカルバスを示していないパケットを受信しても反応することができないからである。
【０２３１】
しかしながら、本発明のＩＥＥＥ１３９４ローカルバスブリッジを間に挟むことによって、ポータルＢからポータルＡへパケットを転送する際、送信先を示すＰＨＹ  ＩＤの中のＢＵＳ  ＩＤをローカルバスに変換して転送するので、ブリッジに対応することができない機器もブリッジとの接続が可能になる。
【０２３２】
本発明の他の実施例として、その基本的構成は上記の通りであるが、ポータルＢにてリピータがあった場合についてさらに工夫している。通常、リピータはノードＩＤが割当てられるが、機能は単にケーブルの延長と捕らえることができる。すなわち、ＩＥＥＥ１３９４ローカルバスブリッジにおいて、ポータルＡへ伝える必要がない。そこで、ポータルＢにおいて、リピータが存在した場合について説明する。
【０２３３】
図３４は本発明の他の実施例におけるリピータ有りの場合の接続を示す図であり、図３５は本発明の他の実施例におけるリピータ有りのノードＩＤを示す図であり、図３６は本発明の他の実施例におけるリピータ有りの時のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。
【０２３４】
また、図３７及び図３８は本発明の他の一実施例におけるリピータ有りの時のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図であり、図３９は本発明の他の実施例におけるリピータ有りの時のポータルＡから見た接続を示す図である。これら図３４〜図３９を参照して本発明の他の実施例について説明する。
【０２３５】
図３４に示すように、例えばノードＥ９−５がリピータだとすると、上述したように、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡのトポロジを確認し、続いてポータルＢのトポロジを確認し、最後にポータルＢのトポロジをポータルＡへ伝える。これら一連の基本的な動作は変わらない。違いは、ポータルＢのトポロジを確認する際にリピータの存在を認識することと、ポータルＢのトポロジをポータルＡへ伝える際、リピータの存在を伝えないことにある。
【０２３６】
リピータであるかどうかは自己識別パケットのＬビットを調べることで認識することができる。リピータの場合、このビットがインアクティブとなっている。ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＢのトポロジを調べる際、この自己識別パケットのＬビットも調査する。もし、このビットがインアクティブであったならば、ＩＤ変換テーブル５３１にも登録しない。
【０２３７】
実際のトポロジは、図３５に示されるように、ポータルＢではノードＥ９−５についてもノードＩＤ＃２が割当てられる。しかしながら、ノードＥ９−５はリピータであるので、ポータルＢのトポロジをポータルＡへ伝える場合、図３６〜図３８に示すように、自己識別パケットを送信することになる。
【０２３８】
図３６は横軸が時間で、バスリセットが発生してから、自己識別フェーズの終了までを表している。図３７及び図３８はノードＢの自己識別パケットの詳細ＰＫＴ(0) １８０１、ノードＡの自己識別パケットの詳細ＰＫＴ(1) １８１１、ノードＣの自己識別パケットの詳細ＰＫＴ(2) １８２１、ノードＤの自己識別パケットの詳細ＰＫＴ(3) １８３１、ノードＦの自己識別パケットの詳細ＰＫＴ(4) １８４１、ＩＥＥＥ１３９４ローカルバスの自己識別パケットの詳細ＰＫＴ(5) １８５１、ＰＫＴ(6) １８５２、ＰＫＴ(7) １８５３を示すものである。
【０２３９】
まず、ＩＥＥＥ１３９４ローカルバスブリッジ１はポータルＡにバスリセットを発行する。バスリセットが発生すると、ポータルＡの自己識別フェーズが開始される。この動作は上述した基本的な動作と同じである。ポータルＡのローカルバス上でバスリセットが発生すると、ＰＨＹからバスリセット開始を知らせるステート（Ｂｕｓ  Ｒｅｓｅｔ）１７０１が通知され、ポータルＡ内でのトポロジの構築がなさる。
【０２４０】
次いで，ポータルＡの自己識別フェーズが開始される。自己識別パケットは図３６に示すとおり、ノードＢの自己識別パケット（ＩＤ＃０）１７０２、ノードＡの自己識別パケット（ＩＤ＃１）１７０３、ノードＣの自己識別パケット（ＩＤ＃２）１７０４というように順次、自己識別パケットが送信される。
【０２４１】
ポータルＡの各ノードの自己識別パケットを受信し終えると、次はＩＥＥＥ１３９４ローカルバスブリッジ１がノードＤの自己識別パケット（ＩＤ＃３）１７０５、ノードＦの自己識別パケット（ＩＤ＃４）１７０６、次いで自己の自己識別パケットＩＤ＃５（１／３）１７０７、自己の自己識別パケットＩＤ＃５（２／３）１７０８、自己の自己識別パケットＩＤ＃５（３／３）１７０９を送信する。
【０２４２】
図３７及び図３８にその詳細な構成を示す。ここで注意すべきは、ノードＥ９−５の自己識別パケットを送信しないことにある。その後、規定時間が経過し、サブアクションギャップが発生すると、ステート（Ｓｕｂａｃｔｉｏｎ  Ｇａｐ）１７１０がＰＨＹから通知され、自己識別フェーズが終了する。これら一連のポータルＡの自己識別フェーズによって、ポータルＢの情報がポータルＡに伝えられる。
【０２４３】
図３９はポータルＡから見たトポロジイメージを示している。図３９において、ノードＡ９−１のノードＩＤは＃１となり、ノードＢ９−２のノードＩＤは＃０、ノードＣ９−３のノードＩＤは＃２となる。次いで、ノードＤ９−４がＩＥＥＥ１３９４ローカルバスブリッジ１のＰ(2) １３に繋がっており、そのノードＩＤは＃３となり、ノードＦ９−６はＩＥＥＥ１３９４ローカルバスブリッジ１のＰ(3) １４に繋がっており、そのノードＩＤは＃４、ＩＥＥＥ１３９４ローカルバスブリッジ１のノードＩＤは＃５となる。
【０２４４】
ノードＥ９−５は存在せず、その他の仮想ポートには何も繋がっていないように見せかけている。このようにしてポータルＢのトポロジをポータルＡへ伝達することによって、ポータルＡではポータルＢ上のリピータの存在をなくし、ポータルＢのノードＩＤを効率的に使うことが可能である。
【０２４５】
以上、本発明の各実施例について説明したが、本発明のローカルバスブリッジは専用ＰＨＹ等のハードウェア特有の部分を除いて、ハードウェア、ファームウェアのどちらでも実現が可能である。
【０２４６】
また、本発明のローカルバスブリッジはＩＥＥＥ１３９４のシステムだけによらず、同様のシリアルバスネットワークを形成するシステムにおいても実現可能である。尚、本発明は上記の各実施例に限定されず、本発明の技術思想の範囲内において、各実施例を適宜変更可能であるは明らかである。
【０２４７】
このように、本発明では、ＩＥＥＥ１３９４ローカルバスブリッジ１を使用することによって、ＢＵＳ  ＩＤを変えることなく、バスを分割し、各バスに接続されているノードにおいてバスが分割されていることを意識することなく、互いに認識することができる。
【０２４８】
また、本発明では、ＩＥＥＥ１３９４ローカルバスブリッジ１が一方のバスに対して他方のノードに接続されている特定のノードとして振舞うことによって、その他のノードを隠し、その特定のノードが同じバスに接続されているノードを占有することができる。
【０２４９】
さらに、本発明では、ＩＥＥＥ１３９４ローカルバスブリッジ１がバスリセットを分割し、バスリセットが起きたローカルバスに対して自動的に他方のローカルバスに接続されたノード情報を提示することによって、双方のバスの利用効率の低下を避けることができる。
【０２５０】
さらにまた、本発明では、片方のローカルバス内で閉ざされたパケットを他方のローカルバスへ通さないことによって、双方のバスの利用効率を向上させることができる。
【０２５１】
【発明の効果】
以上説明したように本発明のローカルバスブリッジは、各々複数のノードが接続された第１及び第２のローカルバスを接続するローカルバスブリッジであって、予め設定された特定ノードが接続された第１のローカルバスに第２のローカルバスの接続情報を通知し、第２のローカルバスに特定ノードの情報のみを提示することによって、ＩＥＥＥ１３９４バスに接続されるノードを特定のノードが確実に占有可能な環境を得ることができるという効果が得られる。
【０２５２】
また、本発明の他のローカルバスブリッジは、各々複数のノードが接続された第１及び第２のローカルバスを接続するローカルバスブリッジであって、予め設定された特定ノードが接続された第１のローカルバスに第２のローカルバスの接続情報を通知し、第２のローカルバスに特定ノードの情報のみを提示することによって、バスを分割しても双方のバスに接続されているノード同士が互いに存在を認識可能な環境を得ることができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施例によるローカルバスブリッジの構成を示すブロック図である。
【図２】図１の内部ポータルの構成を示すブロック図である。
【図３】図１の外部ポータルの構成を示すブロック図である。
【図４】図１の制御部の構成を示すブロック図である。
【図５】図４のＩＤ変換テーブルの構成を示す図である。
【図６】本発明の一実施例で用いる仮想１６ポートＰＨＹのイメージ図である。
【図７】本発明の一実施例によるローカルバスブリッジの自ノードの自己識別パケットの詳細な構成を示す図である。
【図８】本発明の一実施例によるポータルＢの各ノードの自己識別パケットの詳細な構成を示す図である。
【図９】本発明の一実施例によるローカルバスブリッジ全体の動作を示すフローチャートである。
【図１０】本発明の一実施例によるローカルバスブリッジ全体の動作を示すフローチャートである。
【図１１】本発明の一実施例によるローカルバスブリッジ全体の動作を示すフローチャートである。
【図１２】本発明の一実施例における登録モード時の接続形態を示す図である。
【図１３】本発明の一実施例における登録モード時にポータルＡへの最初のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。
【図１４】（ａ），（ｂ）は本発明の一実施例における登録モード時にポータルＡへの最初のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【図１５】本発明の一実施例における登録モード時にポータルＡの最初の自己識別フェーズの終了時の１６ポートＰＨＹの接続状態を示す図である。
【図１６】本発明の一実施例におけるリードリクエストパケットの詳細な構成を示す図である。
【図１７】本発明の一実施例における応答パケットの詳細な構成を示す図である。
【図１８】本発明の一実施例における通常モード時の接続形態を示す図である。
【図１９】本発明の一実施例における通常モード時にポータルＡへの最初のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。
【図２０】（ａ）〜（ｄ）は本発明の一実施例における通常モード時にポータルＡへの最初のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【図２１】本発明の一実施例における通常モード時にポータルＡの最初の自己識別フェーズの終了時の接続状態を示す図である。
【図２２】本発明の一実施例における登録ノードの情報が反映された状態のＩＤ変換テーブルの構成を示す図である。
【図２３】本発明の一実施例における通常モード時にポータルＢへの最初のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。
【図２４】本発明の一実施例におけるポータルＢの自己識別フェーズによって構築されたＩＤ変換テーブルの構成を示す図である。
【図２５】本発明の一実施例におけるポータルＢのノード管理番号の取得時のＩＤ変換テーブルの構成を示す図である。
【図２６】本発明の一実施例における通常モード時にポータルＡ及びポータルＢのＩＤ変換テーブル情報がそろった状態を示す図である。
【図２７】本発明の一実施例における通常モード時にポータルＡへの２回目のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。
【図２８】（ａ）〜（ｄ）は本発明の一実施例における通常モード時にポータルＡの２回目のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【図２９】（ａ）〜（ｃ）は本発明の一実施例における通常モード時にポータルＡの２回目のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【図３０】本発明の一実施例におけるＩＤ変換テーブルの構築が完了時のポータルＡから見たイメージを示す図である。
【図３１】本発明の一実施例におけるＩＤ変換テーブルの構築が完了時のノードＩＤの状態を示す図である。
【図３２】本発明の一実施例においてノードＤが抜かれた時の接続を示す図である。
【図３３】本発明の一実施例においてノードＤが抜かれた時のＩＤ変換テーブルの構成を示す図である。
【図３４】本発明の他の実施例におけるリピータ有りの場合の接続を示す図である。
【図３５】本発明の他の実施例におけるリピータ有りのノードＩＤを示す図である。
【図３６】本発明の他の実施例におけるリピータ有りの時のバスリセットを発行してから自己識別フェーズの終了までの流れを示す図である。
【図３７】（ａ）〜（ｄ）は本発明の他の一実施例におけるリピータ有りの時のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【図３８】（ａ），（ｂ）は本発明の他の一実施例におけるリピータ有りの時のバスリセット発行時の各ノードの自己識別パケットの詳細な構成を示す図である。
【図３９】本発明の他の実施例におけるリピータ有りの時のポータルＡから見た接続を示す図である。
【図４０】ＩＥＥＥ１３９４バスを用いて構築されたネットワークの一例を示す図である。
【図４１】ＩＥＥＥ１３９４のアドレスマップを示す図である。
【図４２】内容が会社識別子のみの最小フォーマット形式のコンフィグレーションＲＯＭの内容を示す図である。
【図４３】一般フォーマット形式のコンフィグレーションＲＯＭの内容を示す図である。
【図４４】ＩＥＥＥ１３９４のシステム構成の一例を示す図である。
【図４５】Ｉｓｏｃｈｒｏｎｏｕｓサブアクション及びＡｓｙｎｃｈｒｏｎｏｕｓサブアクションが行われているＩＥＥＥ１３９４バスの一例を示す図である。
【図４６】ユニファイドトランザクションのデータの流れを示す図である。
【図４７】スプリットトランザクションのデータの流れを示す図である。
【符号の説明】
１  ＩＥＥＥ１３９４ローカルバスブリッジ
２  ＬＩＮＫ機能
３  内部ポータル
４  外部ポータル
５  制御部
６  専用ＰＨＹ機能
７  標準ＰＨＹ機能
８  ＲＯＭ
９，９−１〜９−６  ノード
３１，４１  パケット受信制御部
３２，４２  パケット送信制御部
５１  サイクルスタートパケット制御部
５２  トランザクション制御部
５３  ＩＤ変換部
５４  ＣＳＲ制御部
１０１，１０４  ローカルバス
１０２，１０３  ＰＨＹ−ＬＩＮＫインタフェース
１１１，１１２  内部バス
３１１，４１１  パケット受信部
３１２，４１３  Ａｓｙｎｃｈｒｏｎｏｕｓパケット受信制御部
３１３，４１４  Ｉｓｏｃｈｒｏｎｏｕｓパケット受信制御部
３２１，４２１  パケット送信部
３２２，４２２  サイクルスタートパケット送信制御部
３２３，４２３  Ａｓｙｎｃｈｒｏｎｏｕｓパケット送信制御部
３２４，４２４  Ｉｓｏｃｈｒｏｎｏｕｓパケット送信制御部
４１２  サイクルスタートパケット受信制御部
【図１】
0003683227.tif 000002
【図２】
0003683227.tif 000003
【図３】
0003683227.tif 000004
【図４】
0003683227.tif 000005
【図５】
0003683227.tif 000006
【図６】
0003683227.tif 000007
【図７】
0003683227.tif 000008
【図８】
0003683227.tif 000009
【図９】
0003683227.tif 000010
【図１０】
0003683227.tif 000011
【図１１】
0003683227.tif 000012
【図１２】
0003683227.tif 000013
【図１３】
0003683227.tif 000014
【図１４】
0003683227.tif 000015
【図１５】
0003683227.tif 000016
【図１６】
0003683227.tif 000017
【図１７】
0003683227.tif 000018
【図１８】
0003683227.tif 000019
【図１９】
0003683227.tif 000020
【図２０】
0003683227.tif 000021
【図２１】
0003683227.tif 000022
【図２２】
0003683227.tif 000023
【図２３】
0003683227.tif 000024
【図２４】
0003683227.tif 000025
【図２５】
0003683227.tif 000026
【図２６】
0003683227.tif 000027
【図２７】
0003683227.tif 000028
【図２８】
0003683227.tif 000029
【図２９】
0003683227.tif 000030
【図３０】
0003683227.tif 000031
【図３１】
0003683227.tif 000032
【図３２】
0003683227.tif 000033
【図３３】
0003683227.tif 000034
【図３４】
0003683227.tif 000035
【図３５】
0003683227.tif 000036
【図３６】
0003683227.tif 000037
【図３７】
0003683227.tif 000038
【図３８】
0003683227.tif 000039
【図３９】
0003683227.tif 000040
【図４０】
0003683227.tif 000041
【図４１】
0003683227.tif 000042
【図４２】
0003683227.tif 000043
【図４３】
0003683227.tif 000044
【図４４】
0003683227.tif 000045
【図４５】
0003683227.tif 000046
【図４６】
0003683227.tif 000047
【図４７】
0003683227.tif 000048