(57)【要約】【課題】マスタ／スレーブ・エージェント・ネットワーク・トポロジのバスを介する同時通信の方法、装置、およびコンピュータ可読媒体を提供すること。【解決手段】ネットワーク上の各通信エージェントは、入力および出力を有する、マスタ・エージェントまたはスレーブ・エージェントのいずれかである。１実施形態で、入力および出力が、ラッチである。この方法では、リング上のトークンの数を、リング上のエージェントの総数より１つ少ない数にまですることができる。
2005516477.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバスを介する同時通信の方法であって、前記バスへの入力および出力を有するマスタ・エージェント上の前記方法は、
前記マスタからのデータまたは前記バスからのデータがあるかどうかを判定し、前記マスタからのデータがある場合に、
前記バスからの前記データがトークンであるかどうかをテストするサブステップと、
前記バスからの前記データがトークンである場合に、前記マスタからの前記データを前記バスに移動し、前記バスからの前記トークンを破棄するサブステップと、
前記バスからの前記データがトークンでない場合に、前記バスの前記入力からのデータを前記バスの前記出力に移動するサブステップと
を実行し、
前記データが前記バスからである場合に、前記データを前記バスの前記入力から前記バスの前記出力に移動するステップ
を含む方法。
【請求項２】
前記出力にデータがないかどうか、または前進線がアサートされるかどうかを判定し、前記出力にデータがない場合、または前進線がアサートされる場合に、前記バスからのデータがあるかどうか、または前記マスタからのデータがあるかどうかを判定するステップを実行するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記マスタ・エージェントが、アクセス・マクロに結合されるかどうかを判定し、前記マスタ・エージェントが、アクセス・マクロに結合される場合に、前記バスが初期化される時に、前記バスにトークンを置くステップを実行し、前記バス上のトークンの最大個数が、マスタ・エージェントの総数とスレーブ・エージェントの総数との合計から１を引いた数と等しくなるようにセットされる、ステップ
をさらに含む、請求項１または請求項２に記載の方法。
【請求項４】
リセット・コマンドを受け取るステップと、
リセットされた後に、前記マスタ・エージェントがアクセス・マクロに結合されるかどうかを判定し、前記マスタ・エージェントがアクセス・マクロに結合される場合に、ｎ−１個のトークンを前記バスに置くステップであって、ｎが、前記バスで通信するマスタ・エージェントおよびスレーブ・エージェントの総数である、ステップと
をさらに含む、請求項１または請求項２に記載の方法。
【請求項５】
少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバスを介する同時通信の方法であって、前記バスへの入力および出力を有するスレーブ・エージェント上の前記方法は、
前記バスからのデータまたは前記スレーブからのデータがあるかどうかを判定し、前記バスからであって前記スレーブからでないデータがある場合に、前記データを前記バスから前記出力に移動し、前記スレーブからであって前記バスからでないデータがある場合に、前記データを前記スレーブから前記出力に移動するステップと、
前記バスからおよび前記スレーブからの両方のデータがあるかどうかを判定し、前記バスからおよび前記スレーブからの両方のデータがある場合に、
前記バスが優先権を有する場合に、前記データを前記バスから前記出力に移動し、前記スレーブに前記優先権をセットするサブステップと、
前記バスが優先権を有しない場合に、前記データを前記スレーブから前記出力に移動し、前記バスに前記優先権をセットするサブステップと
を実行するステップと
を含む方法。
【請求項６】
出力にデータがないかどうか、または前進線がアサートされるかどうかを判定し、出力にデータがない場合、または前進線がアサートされる場合に、前記バスからのデータがあるかどうか、または前記スレーブからのデータがあるかどうかを判定するステップを実行するステップ
をさらに含む、請求項５に記載の方法。
【請求項７】
複数のエージェントの間の同時通信のデータ通信ネットワークであって、
通信バスに結合された、スレーブ・エージェントとして指定された少なくとも１つのエージェントと、
前記通信バスに結合された、マスタ・エージェントとして指定された少なくとも１つのエージェントと、
前記バスからの入力および前記バスへの出力を有する前記マスタ・エージェントへのインターフェースと
を含み、前記インターフェースは、
データがあるかどうかをテストし、前記マスタからのデータがある場合に、前記バスからのデータがトークンであるかどうかをテストする複数のラッチであって、
前記バスからの前記データがトークンである場合に、前記データを前記マスタから前記バスに移動し、前記トークンを破棄し、
前記データが前記バスからのトークンでない場合に、前記データを前記バスの前記入力から前記バスの前記出力に移動し、
前記データが前記マスタからでなく、かつ前記データが前記バスからである場合に、前記データを前記バスの前記入力から前記バスの前記出力に移動する
複数のラッチを含む、データ通信ネットワーク。
【請求項８】
前記マスタ・エージェントへの前記インターフェースが、前記データが前記マスタ・エージェントに関するかどうかをテストし、前記データが前記マスタ・エージェントに関する場合に前記データを前記マスタに渡す、複数のラッチをさらに含む、請求項７に記載のデータ通信ネットワーク。
【請求項９】
複数のエージェントの間の同時通信のデータ通信ネットワークであって、
通信バスに結合された、スレーブ・エージェントとして指定された少なくとも１つのエージェントと、
前記通信バスに結合された、マスタ・エージェントとして指定された少なくとも１つのエージェントと、
前記バスへの入力および前記バスへの出力を有する、各スレーブ・エージェント上のインターフェースと
を含み、前記インターフェースは、前記バスからまたは前記スレーブ・エージェントからのデータがあるかどうかをテストする複数のラッチであって、前記スレーブからではなく前記バスからのデータがある場合に、前記データを前記バスから前記出力に移動し、前記バスからではなく前記スレーブからのデータがある場合に、前記データを前記スレーブから前記出力に移動する複数のラッチを含み、
前記複数のラッチは、前記バスからのデータおよび前記スレーブからのデータの両方があるかどうかをテストし、前記バスからおよび前記スレーブからの両方のデータがある場合に、前記バスが優先権を有するかどうかをテストし、
前記バスが優先権を有する場合に、前記データを前記バスから前記出力に移動し、前記スレーブに前記優先権をセットし、
前記バスが優先権を有しない場合に、前記データを前記スレーブから前記出力に移動し、前記バスに前記優先権をセットする
データ通信ネットワーク。
【請求項１０】
各スレーブ上の前記インターフェースが、前記データが前記スレーブ・エージェントに関するかどうかをテストし、前記データが前記スレーブ・エージェントに関する場合に前記データを前記スレーブに転送する、複数のラッチをさらに含む、請求項９に記載のデータ通信ネットワーク。
【請求項１１】
複数のエージェントの間の同時通信のデータ通信ネットワークであって、
請求項７または請求項８に記載の通信バスに結合された、マスタ・エージェントとして指定される少なくとも１つのエージェントと、
請求項９または請求項１０に記載の通信バスに結合された、スレーブ・エージェントとして指定される少なくとも１つのエージェントと
を含むデータ通信ネットワーク。
【請求項１２】
コンピュータで実行される時に、請求項１ないし４のすべてのステップを実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
【請求項１３】
コンピュータで実行される時に、請求項５ないし６のすべてのステップを実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にコンピュータ・ネットワークの分野に関する。
【背景技術】
【０００２】
コンピュータ・ネットワークを用いると、接続された装置が互いに通信できるようになる。ネットワークには、周辺装置へのコンピュータの近接に基づいて定義される、３つの基本タイプがある。最小のネットワークが、ＰＡＮ（パーソナル・エリア・ネットワーク）である。ＰＡＮの例が、コンピュータ、プリンタ、スキャナなどを接続する、ＵＳＢ（Universal Serial Bus）方法を使用するホーム・コンピュータである。このＰＡＮは、近接している限り互いに通信するのに使用される。
【０００３】
通信は、シリアル・バスに基づき、複数の制限を有し、この制限の１つが、同時通信が不能であることである。したがって、改善された同時ネットワークを可能にする通信の必要がある。
【０００４】
通常のビジネス環境で、多数のオフィスが、一緒に接続され、その結果、コンピュータ、プリンタ、および関連する機器が、一緒に通信できるようになっている。この構成を、ＬＡＮ（ローカル・エリア・ネットワーク）と称する。ＬＡＮには、２つの広く展開されているタイプがある。ＬＡＮの１つのタイプが、イーサネット（Ｒ）・ネット（ＩＥＥＥ  ８０２．３）であり、もう１つのタイプのＬＡＮが、トークン・リング（ＩＥＥＥ  ８０２．５）ネットワークである。イーサネット（Ｒ）・ネットワークは、より幅広く展開されているが、これは、通常は展開がより安価になるからである。しかし、複数の通信装置が同時に通信について競合する場合に、ボトルネックが発生し、この間は、１つの装置を除くすべての装置が、ある装置が通信を完了するまで「後戻りする」か、通信を避けなければならない。その後、もう１つの装置が、通信を開始し、すべての装置が完了するまでこれが繰り返される。これが、「同時」通信に関する問題である。イーサネット（Ｒ）・ネットワーク・トポロジでは、制御されたローディングの欠如に起因して、ネットワークの集約された帯域幅が、増分帯域幅に達することができない。
【０００５】
イーサネット（Ｒ）・ネットワーク・トポロジと異なって、トークン・リングでは、制御されたローディングが可能である。名前が示すように、トークン・リング・ネットワークは、より高い共用帯域幅のためにトークン・パッシングに基づき、トークンの制御に基づいて衝突が防がれる。
【０００６】
イーサネット（Ｒ）・ネットワークおよびトークン・リングのこれらのＬＡＮ標準規格は、両方とも有用ではあるが、短所がないわけではない。短所の１つは、イーサネット（Ｒ）・ネットワークおよびトークン・リング・ネットワークの両方が、同時通信を可能にしないことである。したがって、同時通信を提供し、通信帯域幅を改善する必要がある。
【０００７】
上で述べたように、ネットワーク展開のコストは、しばしば、ネットワーク・トポロジの選定における主要な要因である。かなりの追加コストを必要とする、同時通信に関する従来技術の他の解決策は、選定のコストが高いので望ましくない。したがって、適度なコストで同時通信を提供する方法および装置の必要がある。
【０００８】
ＷＡＮ（広域ネットワーク）では、名前が示すように、コンピュータおよびコンピュータ機器が遠く離されている。これらのコンピュータを接続する複数の方法がある。インターネットは、断然普及している。ＷＡＮを使用している間の他のコンピュータとのネットワーク競合は、さまざまな接続速度およびフィード・レートの同時接続を有することによって制御される。言い換えると、コンピュータは、通常、ＷＡＮを使用して他のコンピュータと同時に通信するが、通信は、通信するユニットの間の長い距離に起因して、長時間を要する。したがって、ＬＡＮの一部である間に同時通信を可能にする方法および装置の必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
すなわち、本発明によれば、マスタ／スレーブ・エージェント・ネットワーク・トポロジのバスを介する同時通信の方法、装置、およびコンピュータ可読媒体が開示される。ネットワーク上の各通信エージェントは、入力および出力を有する、マスタ・エージェントまたはスレーブ・エージェントのいずれかである。１実施形態で、入力および出力がラッチされる。この方法では、任意の所与の時にリング上の複数のトークンが可能になる。マスタ・エージェントは、要求を開始することができ、スレーブ・エージェントは、要求を開始することができない。マスタ・エージェントは、リングからトークンを受け取り、保留中の要求を有する時に、リングからトークンを除去し、要求を発行する。トークンは、マスタ・エージェントが、指定されたスレーブ・エージェントから要求への応答を受け取るまで、リングに戻されない。すなわち、トークン時間スロットが、単純な要求または応答の送信ではなく、完全なラウンド・トリップ・トランザクションについて使用される。スレーブ・エージェントは、要求を受け取る時に、応答を生成し、トークンを待たずにできる限り早くその応答をリングに置く。本発明では、本明細書に記載の技術を使用して、同一のバスに結合された複数のマスタ・エージェントをサポートする。
【課題を解決するための手段】
【００１０】
第１の態様によれば、少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバスを介する同時通信の方法であって、前記バスへの入力および出力を有するマスタ・エージェント上の前記方法は、前記マスタからのデータまたは前記バスからのデータがあるかどうかを判定し、前記マスタからのデータがある場合に、前記バスからの前記データがトークンであるかどうかをテストするサブステップと、前記バスからの前記データがトークンである場合に、前記データを前記マスタから前記バスに移動し、前記バスからの前記トークンを破棄するサブステップと、前記バスからの前記データがトークンでない場合に、前記バスの前記入力からのデータを前記バスの前記出力に移動するサブステップとを実行し、前記データが前記バスからである場合に、前記バスの前記入力からのデータを前記バスの前記出力に移動するステップを含む方法が提供される。
【００１１】
前記出力にデータがない場合、または前進線がアサートされる場合、かつ前記出力にデータがないか前進線がアサートされる場合に、前記バスからのデータがあるかどうか、または前記マスタからのデータがあるかどうかを判定するステップを実行することが好ましい。好ましい実施形態では、この方法が、さらに、前記マスタ・エージェントが、アクセス・マクロに結合されるかどうかを判定するステップであって、前記マスタ・エージェントが、アクセス・マクロに結合される場合に、前記バスが初期化される時に、前記バスにトークンを置くステップを実行し、前記バス上のトークンの最大個数が、マスタ・エージェントの総数とスレーブ・エージェントの総数の合計から１を引いた数と等しくなるようにセットされる、ステップを含む。この方法は、さらに、適切に、リセット・コマンドを受け取るステップと、リセットされた後に、前記マスタ・エージェントがアクセス・マクロに結合されるかどうかを判定し、前記マスタ・エージェントがアクセス・マクロに結合される場合に、ｎ−１個のトークンを前記バスに置くステップであって、ｎが、前記バスで通信するマスタ・エージェントおよびスレーブ・エージェントの総数である、ステップとを含む。
【００１２】
第２の態様によれば、コンピュータ・プログラムであって、前記プログラムがコンピュータで実行される時に、上記の方法のステップのすべてを実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラムが提供される。
【００１３】
第３の態様によれば、少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバスを介する同時通信の方法であって、前記バスへの入力および出力を有するスレーブ・エージェント上の前記方法は、前記バスからのデータまたは前記スレーブからのデータがあるかどうかを判定し、前記バスからであって前記スレーブからでないデータがある場合に、前記データを前記バスから前記出力に移動し、前記スレーブからであって前記バスからでないデータがある場合に、前記データを前記スレーブから前記出力に移動するステップと、前記バスからおよび前記スレーブからの両方のデータがあるかどうかを判定し、前記バスからおよび前記スレーブからの両方のデータがある場合に、前記バスが優先権を有する場合に、前記データを前記バスから前記出力に移動し、前記スレーブに前記優先権をセットするサブステップと、前記バスが優先権を有しない場合に、前記データを前記スレーブから前記出力に移動し、前記バスに前記優先権をセットするサブステップとを実行するステップとを含む方法が提供される。適切に、この方法は、さらに、出力にデータないかどうか、または前進線がアサートされるかどうかを判定し、出力にデータがないか前進線がアサートされる場合に、前記バスからのデータがあるかどうか、または前記スレーブからのデータがあるかどうかを判定するステップを実行するステップを含む。
【００１４】
第４の態様によれば、コンピュータ・プログラムであって、前記プログラムがコンピュータで実行される時に、上記の方法のステップのすべてを実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラムが提供される。
【００１５】
第５の態様によれば、本発明は、複数のエージェントの間の同時通信のデータ通信ネットワークであって、通信バスに結合された、スレーブ・エージェントとして指定された少なくとも１つのエージェントと、前記通信バスに結合された、マスタ・エージェントとして指定された少なくとも１つのエージェントと、前記バスからの入力および前記バスへの出力を有する前記マスタ・エージェントへのインターフェースとを含み、前記インターフェースは、データがあるかどうかをテストし、前記マスタからのデータがある場合に、前記バスからのデータがトークンであるかどうかをテストする複数のラッチであって、前記バスからの前記データがトークンである場合に、前記データを前記マスタから前記バスに移動し、前記トークンを破棄し、前記データが前記バスからのトークンでない場合に、前記データを前記バスの前記入力から前記バスの前記出力に移動し、前記データが前記マスタからでなく、前記データが前記バスからである場合に、前記データを前記バスの前記入力から前記バスの前記出力に移動する複数のラッチを含む、データ通信ネットワークを提供する。
【００１６】
第６の態様によれば、本発明は、複数のエージェントの間の同時通信のデータ通信ネットワークであって、通信バスに結合された、スレーブ・エージェントとして指定された少なくとも１つのエージェントと、前記通信バスに結合された、マスタ・エージェントとして指定された少なくとも１つのエージェントと、前記バスへの入力および前記バスへの出力を有する、各スレーブ・エージェント上のインターフェースとを含み、前記インターフェースは、前記バスからまたは前記スレーブ・エージェントからのデータがあるかどうかをテストする複数のラッチであって、前記スレーブからではなく前記バスからのデータがある場合に、前記データを前記バスから前記出力に移動し、前記バスからではなく前記スレーブからのデータがある場合に、前記データを前記スレーブから前記出力に移動する複数のラッチを含み、前記複数のラッチは、前記バスからのデータおよび前記スレーブからのデータの両方があるかどうかをテストし、前記バスからおよび前記スレーブからの両方のデータがある場合に、前記バスが優先権を有するかどうかをテストし、前記バスが優先権を有する場合に、前記データを前記バスから前記出力に移動し、前記スレーブに前記優先権をセットし、前記バスが優先権を有しない場合に、前記データを前記スレーブから前記出力に移動し、前記バスに前記優先権をセットするデータ通信ネットワークを提供する。
【００１７】
データに、さらに、制御、データ、およびパリティ・データが含まれることが好ましい。通信エージェントの少なくとも１つが、第１ブランドのコンピュータに接続され、通信エージェントの少なくとも１つが、第２ブランドのコンピュータに接続されて、異機種環境が形成されることが、より好ましい。バスが、有線、無線、および赤外線からなるバスの群から選択されることが、さらに好ましい。
【００１８】
好ましい実施形態では、各スレーブ・エージェントのインターフェースに、データがそのスレーブ・エージェントに関するものであるかどうかをテストし、データがスレーブ・エージェントに関する場合にそのデータをスレーブに転送する複数のラッチが含まれる。マスタ・エージェントへのインターフェースに、さらに、データがそのマスタ・エージェントに関するものであるかどうかをテストし、データがマスタ・エージェントに関する場合にそのデータをマスタに渡す複数のラッチが含まれることが好ましい。
【００１９】
第７の態様によれば、複数のエージェントの間の同時通信のデータ通信ネットワークであって、上に記載の通信バスに結合された、マスタ・エージェントとして指定される少なくとも１つのエージェントと、上に記載の通信バスに結合された、スレーブ・エージェントとして指定される少なくとも１つのエージェントとを含むデータ通信ネットワークが提供される。
【００２０】
第８の態様によれば、少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバス上の同時通信のプログラミング命令を含むコンピュータ可読媒体であって、マスタ・エージェントの方法がバスへの入力および出力を有し、前記プログラミング命令が、リセット・コマンドを受け取ることと、リセットされた後に、前記マスタ・エージェントがアクセス・マクロに結合されるかどうかを判定し、前記マスタ・エージェントが前記アクセス・マクロに結合される場合にｎ−１個のトークンを前記バスに置くことであって、ｎが、前記バス上のマスタ・エージェント・エージェントおよびスレーブ・エージェント通信の総数である、置くことを含む、コンピュータ可読媒体が提供される。
【００２１】
第９の態様によれば、少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバス上の同時通信のプログラミング命令を含むコンピュータ可読媒体であって、マスタ・エージェントの方法が、前記バスへの入力および出力を有し、前記プログラミング命令が、前記マスタからのデータがあるかどうかを判定し、前記マスタからのデータがある場合に、前記入力からのデータがトークンであるかどうかをテストするプログラミング命令と、前記バスからのデータがトークンである場合に、前記データを前記マスタから前記バスに移動し、前記トークンを破棄するプログラミング命令と、前記バスからのデータがトークンでない場合に、前記データを前記バスの前記入力から前記バスの前記出力に移動するプログラミング命令であって、前記データが、前記マスタからではなく、前記データが、前記バスからである場合に前記データを前記バスの前記入力から前記バスの前記出力に移動するプログラミング命令とを実行することを含む、コンピュータ可読媒体が提供される。
【００２２】
本発明を、例としてのみ、添付図面に示された好ましい実施形態に関して説明する。
【発明を実施するための最良の形態】
【００２３】
この開示で使用される用語の用語集
エージェント  要求側（マスタ）または応答側（スレーブ）を通信構造に接続するデータ通信論理の組。
【００２４】
バス  ２つのノードの間でデータおよび制御を送るのに使用されるワイヤまたはワイヤのグループ。用語バスは、閉ループ・バス・トポロジについて、本発明では用語リングと交換可能に使用される。
【００２５】
異機種ネットワーク  異なる製品によって共通して使用され、したがってそれらが互いに通信できるようにする、標準規格に適合するハードウェア・インターフェースおよびソフトウェア・インターフェースに基づくネットワーク。インターネット自体が、異機種ネットワークの例である。
【００２６】
ＬＡＮ  ローカル・エリア・ネットワーク（ＬＡＮ）は、共通の通信信号線を共用し、通常は小さい地理的区域（たとえば、オフィス・ビルディング内）の単一のプロセッサまたはサーバのリソースを共用する、コンピュータおよび関連装置のグループである。通常、サーバは、複数のコンピュータ・ユーザによって共通して共用されるアプリケーションおよびデータのストレージを有する。ローカル・エリア・ネットワークは、２、３人程度のユーザ（たとえば、ホーム・ネットワークで）または数千人のユーザ（たとえば、ＦＤＤＩネットワークで）にサービスすることができる。
【００２７】
マスタ／スレーブ  マスタ：要求を生成し、応答を消費する、通信する実体。マスタは、マスタ・エージェントを介して通信ファブリックに接続される。スレーブ：要求を消費し、応答を生成する、通信する実体。スレーブは、スレーブ・エージェントを介して通信ファブリックに接続される。
【００２８】
リング  論理リングを形成する、閉ループ・トポロジ。トークン・リング・トポロジによって、論理リングが形成されるが、そのケーブル・レイアウトは、中央ハブを有するスター・トポロジである。スター・トポロジの方が計画およびインストールが簡単なので、真のリング・トポロジは、まれである。
【００２９】
ラウンド・トリップ  マスタ・エージェントからリングまたはバスを介する、要求と応答の両方を含む完全な送信および受信のトランザクション。スレーブ・エージェントは、要求を開始することができない。
【００３０】
同時  マスタ・エージェントまたはスレーブ・エージェントのいずれかである複数のエージェントが、クロック信号と独立に同時に通信する、バス上の通信。アイソクロナスおよび同期式と対照をなす。通信は、バスに結合された複数のエージェントの間で行われ、その結果、要求および応答が、バスの１ラウンド・トリップまたは１サイクルで達成される。
【００３１】
トークン・リング・ネットワーク  トークン・リング・ネットワークは、すべてのコンピュータがリングまたはスター・トポロジで接続され、同時にメッセージを送ろうとする２台のコンピュータの間のデータの衝突を防ぐために２進数またはトークン・パッシング方式が使用される、ローカル・エリア・ネットワーク（ＬＡＮ）である。トークン・リング・プロトコルは、ローカル・エリア・ネットワークでイーサネット（Ｒ）に次いで広く使用されているプロトコルである。ＩＢＭトークン・リング・プロトコルは、ＩＥＥＥ  ８０２．５として指定される標準版につながった。両方のプロトコルが、使用され、非常に似ている。ＩＥＥＥ  ８０２．５トークン・リング技術によって、４メガビット毎秒または１６メガビット毎秒のいずれかのデータ転送レートが提供される。この技術の簡単な説明を下に示す。
１．空の情報フレームが、継続的にリングを循環する。
２．コンピュータは、送信すべきメッセージを有する時に、空のフレームにトークンを挿入し（これは、フレームのトークン・ビット部分の０を１に単純に変更することからなるものとすることができる）、そのフレームにメッセージおよび宛先識別子を挿入する。
３．その後、フレームが、各連続するワークステーションによって検査される。ワークステーションは、それがメッセージの宛先であることを知った場合に、フレームからメッセージをコピーし、トークンを０に戻す。
４．フレームが、発信元に達した時に、発信元は、トークンが０に変更され、メッセージがコピーされ、受信されたことを知る。発信元は、フレームからメッセージを除去する。
５．フレームは、「空の」フレームとして循環し続け、送信すべきメッセージを有するワークステーションによって取り上げられる準備ができている。
【００３２】
ＷＡＮ  （広域ネットワーク）は、地理的に分散した遠隔通信ネットワークであり、この用語によって、より広い遠隔通信構造が、ローカル・エリア・ネットワーク（ＬＡＮ）から区別される。広域ネットワークは、私有または賃貸とすることができるが、この用語は、通常は、公衆（共用ユーザ）ネットワークの包含を意味する。
【００３３】
リング・トポロジとパケットの定義
図１（ａ）は、本発明による、２つのマスタ・エージェント１０２および１０６（Ｍ１およびＭ２）および２つのスレーブ・エージェント１０４および１０８（Ｓ１およびＳ２）を示す、通常のトークン・リング・ネットワーク１００のブロック図である。各エージェント１０２、１０４、１０６、および１０８は、シリアルまたはパラレルのバスまたはリング１１０によって接続される。マスタ・エージェント１０２は、パラレル・リング１１０からポート１１２に接続され、リング１１０にポート１１４で接続される。
【００３４】
図１（ｂ）は、本発明による、データ・ビット１２２および制御ビット１２４がどのように定義されるかの例を示す、パケット１２０のブロック図である。この実施形態では、データ・パケット１２０が、６４ビット幅または８バイトとして図示されている。各バイトに関連するのが、パリティ・ビットである。これによって、データ・ビット全体の幅が７２ビットになる。データ・ビット１２２および制御ビット１２４の総数ビットおよび割振りが、変更可能であり、本発明の教示に対して制限的でないことに留意することが重要である。
【００３５】
プロトコルの概要
マスタ／スレーブ・エージェント通信デバイスを有する通常のトークン・リング・ネットワークでは、マスタ・エージェントは、普通のトークン・リング・プロトコルと同様に、トークンを有する時だけ新しい要求を発行することができる。しかし、普通のトークン・プロトコルからの複数の新展開がある。
【００３６】
・ラウンド・トリップは、要求と応答の両方を含む、マスタ・エージェントからのリングまたはバスを介するラウンド・トリップである。スレーブ・エージェントは、要求を開始することができない。
【００３７】
・マスタ・エージェントが、リングからトークンを受け取り、保留中の要求を有する時に、マスタ・エージェントは、リングからトークンを除去し、要求を発行する。トークンは、指定されたスレーブ・エージェントからの要求に対する応答が受け取られるまで、リングに戻されない。すなわち、トークン時間スロットが、要求または応答の単純な送出ではなく、完全なラウンド・トリップ・トランザクションに使用される。これによって、スレーブ応答のスロットを事前に割り振ることによるデッドロックが回避される。
【００３８】
・スレーブ・エージェントは、要求を受け取る時に、応答を生成し、トークンを待たずにできる限り早くリングに置く。トークンは、マスタ・エージェントによって、完全なラウンド・トリップを開始するのに使用される。マスタ・エージェントによって使用されるトークンによって、要求と応答の両方のスペースが予約される。
【００３９】
・複数のトークンが、同時にリングを循環することができる。
【００４０】
エージェント・インターフェース
図２に移ると、バス１１０と、マスタ・エージェント（１０２および１０６）またはスレーブ・エージェント（１０４および１０８）とすることができるエージェント（１０２、１０４、１０６、および１０８）との間のインターフェース２００の実施形態を示す論理ブロック図が示されている。Ｌ２ラッチ２０２が、ポート１１２で前のエージェント（図示せず）に接続される。Ｌ２ラッチ２０２は、信号線２１０を介してパケット１２０から制御情報およびデータ情報を受け取る。制御ビット１２４が、Ｌ２にラッチされたならば、ＣＴＳ（送信可）２１２信号が、上流の前のエージェント（図示せず）に送り返される。Ｌ２の受信された制御ビット１２４に基づいて、関連するデータがこのエージェント２００に関するものであるかどうかを判断する。そうである場合には、制御ビット１２４が、このエージェントによる処理のために信号線２２８を介してＬ３ラッチ２０８に渡される。これによって、このエージェントの制御ビットおよびデータ・ビットの受取を説明した。
【００４１】
エージェントが、リング２１８に置かれなければならない情報を有する場合に、その情報が、接続２３０を使用してＬ４ラッチ２０６によってＬ１ラッチ２０４に提示される。この情報は、ポート１１４でバス１１０に提示される。これが、送信／受信ラウンド・トリップの完了である場合には、マスタ・エージェント（１０２および１０６）が、そのトークンを、同一のパス２３０を使用してバス１１０に提示する（図示せず）。これによって、バス１１０上でポート１１４でのエージェントからの制御およびデータの送信を説明した。
【００４２】
Ｌ２ラッチ２０２で受信されたデータが、このエージェントに関するものでない場合には、このデータは、接続２２６を使用してＬ１ラッチ２０４に提示される。Ｌ１ラッチ２０４によって、このエージェントに関して識別されない情報が渡される。これは、下流エージェントのＬ２（図示せず）によってＬ１ラッチ２０４にＣＴＳ信号２１６が提示された後に、この情報をバス１１０でパス２１４を介してポート１１４に提示することによって達成される。
【００４３】
送信側のマスタ・エージェントが、別のエージェントによって処理されずにバス１１０から要求を受信する場合には、送信側のマスタ・エージェントは、再試行するか、タイムアウトを行い、その後に試行することができる。
【００４４】
リングでのデータ・フロー
図３から９に移ると、本発明による、図１のリング・ネットワーク・トポロジ１００の例示的な時間期間Ｔ０からＴ６の同時通信を示す一連の論理図が示されている。
【００４５】
図３から９の、左から右の順番の各英数字のラベル付け規約は、＃がプレース・ホルダであるものとして、次の通りである。
１．最初の数字、たとえば３＃＃＃＃および８＃＃＃＃は、図面の番号である
２．次の英数字、たとえば＃Ｍ１＃＃および＃Ｓ２＃＃は、エージェントのタイプとその番号であり、Ｍはマスタ・エージェント、Ｓはスレーブ・エージェントである
３．次のラベル、たとえば＃＃＃Ｌ２および＃＃＃Ｌ３は、ラッチのＬとラッチの番号である。
【００４６】
ケーブルの表記は、下記のような６つのプレース・ホルダすなわち＃＃＃−＃＃を有する。最初の数は、図面番号である。次の番号は、接続されたエージェントのラベルであり、「Ｍ」はマスタ・エージェント、「Ｓ」はスレーブ・エージェント＃＃＃−＃＃であり、「−」は、「から」を表し、たとえば、４Ｍ２−Ｓ２は、図４のマスタ・エージェント２（Ｍ２）からスレーブ・エージェント２（Ｓ２）へのケーブルである。
【００４７】
時刻Ｔ−０
図３を参照すると、４つのリング・エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−０と定義されるこの時刻に、リング・エージェントは、電源投入またはリセットの直後である。リセットによって、トークンに関してｎ−１個のエージェントが初期化される。ｎは、リング・エージェントの総数である。この例では、４つのリング・エージェント（１０２、１０４、１０６、および１０８）があり、したがって、トークンの総数は３になる。
【００４８】
マスタ・エージェント１のＬ１  ３Ｍ１Ｌ１、Ｌ３  ３Ｍ１Ｌ３、およびＬ４  ３Ｍ１Ｌ４は、空白である。Ｌ２  ３Ｍ１Ｌ２は、Ｔ１というラベルが付けられたトークンを有する。
【００４９】
スレーブ・エージェント１のＬ１  ３Ｓ１Ｌ１、Ｌ３  ３Ｓ１Ｌ３、およびＬ４  ３Ｓ１Ｌ４は、空白である。  Ｌ２  ３Ｓ１Ｌ２は、Ｔ２というラベルが付けられたトークンを有する。
【００５０】
マスタ・エージェント２のＬ１  ３Ｍ２Ｌ１、Ｌ３  ３Ｍ２Ｌ３、およびＬ４  ３Ｍ２Ｌ４は、空白である。Ｌ２  ３Ｍ２Ｌ２は、Ｔ３というラベルが付けられたトークンを有する。
【００５１】
スレーブ・エージェント２のＬ１  ３Ｓ２Ｌ１、Ｌ３  ３Ｓ２Ｌ３、およびＬ４  ３Ｓ２Ｌ４は、空白である。Ｌ２  ３Ｓ２Ｌ２も空白である。バス１１０では、リング・エージェントより１つ少ないトークンが循環していなければならない。
【００５２】
時刻Ｔ−１
図４に移ると、４つのリング・エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−１と定義されるこの時刻に、マスタ・エージェントは、下で説明するように、与えられたトークンを引き込み、要求をバス１１０に置くことによって、個々の制御に同時に反応している。
【００５３】
マスタ・エージェント１は、Ｔ１トークンを引き込み、要求ＲＥＡＤ  Ｓ２をバス１１０に置く。したがって、
・Ｌ１  ４Ｍ１Ｌ１のレジスタは、要求Ｍ１：  Ｒｅａｄ  Ｓ２を有する。
・Ｌ２  ４Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ４Ｍ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ４Ｍ１Ｌ４のレジスタは、空白を有する。
【００５４】
スレーブ・エージェント１は、Ｔ２トークンを受け取るが、要求を開始することができず、したがって、
・Ｌ１  ４Ｓ１Ｌ１のレジスタは、Ｔ２トークンを有する。
・Ｌ２  ４Ｓ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ４Ｓ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ４Ｓ１Ｌ４のレジスタは、空白を有する。
【００５５】
マスタ・エージェント２は、Ｔ３トークンを引き込み、要求ＷＲＩＴＥ  Ｓ１をバス１１０に置く。したがって、
・Ｌ１  ４Ｍ２Ｌ１のレジスタは、コマンドＭ２：  ＷＲＩＴＥ  Ｓ１を有する。
・Ｌ２  ４Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ４Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ４Ｍ２Ｌ４のレジスタは、空白を有する。
【００５６】
スレーブ・エージェント２は、トークンを受け取っておらず、したがって、
・Ｌ１  ４Ｍ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ４Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ４Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ４Ｍ２Ｌ４のレジスタは、空白を有する。
【００５７】
これによって、Ｔ−１の説明が完了する。
【００５８】
時刻Ｔ−２
図５を参照すると、４つのバス１１０エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−２と定義されるこの時刻に、バス１１０エージェントは、次のバス１１０エージェントへの個々の内容の送信を完了したばかりである。
【００５９】
マスタ・エージェント１は、スレーブ・エージェント２から空白の情報を受け取っている。したがって、
・Ｌ１  ５Ｍ１Ｌ１のレジスタは、空白を有する。
・Ｌ２  ５Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ５Ｍ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ５Ｍ１Ｌ４のレジスタは、空白を有する。
【００６０】
スレーブ・エージェント１は、マスタ・エージェント１エージェントから情報を受け取っており、次の通信サイクルの準備ができている。このコマンドは、このスレーブ・エージェントに関するものではない。したがって、
・Ｌ１  ５Ｓ１Ｌ１のレジスタは、コマンドＭ１：  ｒｅａｄ  Ｓ２を有する。
・Ｌ２  ５Ｓ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ５Ｓ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ５Ｓ１Ｌ４のレジスタは、空白を有する。
【００６１】
マスタ・エージェント２は、スレーブ・エージェント１エージェントから情報を受け取っている。この情報は、Ｔ２トークンである。したがって、
・Ｌ１  ５Ｍ２Ｌ１は、Ｔ２トークンを有する。
・Ｌ２  ５Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ５Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ５Ｍ２Ｌ４のレジスタは、空白を有する。
【００６２】
スレーブ・エージェント２は、マスタ・エージェント２エージェントから情報を受け取ったばかりである。したがって、
・Ｌ１  ５Ｓ２Ｌ１のレジスタは、Ｍ２：  Ｗｒｉｔｅ  Ｓ１を有する。
・Ｌ２  ５Ｓ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ５Ｓ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ５Ｓ２Ｌ４のレジスタは、空白を有する。
【００６３】
時刻Ｔ−３
図６を参照すると、４つのバス１１０エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−３と定義されるこの時刻に、バス１１０エージェントは、次のバス１１０エージェントへの個々の内容のもう１つの送信を完了したばかりである。
【００６４】
マスタ・エージェント１は、マスタ・エージェント２の、Ｓ１に書き込むコマンドを受け取っている。このコマンドは、このマスタ・エージェントに関するものではない。したがって、
・Ｌ１  ６Ｍ１Ｌ１のレジスタは、コマンドＭ２：  ｗｒｉｔｅ  Ｓ１を有する。
・Ｌ２  ６Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｍ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ６Ｍ１Ｌ４のレジスタは、空白を有する。
【００６５】
スレーブ・エージェント１は、空白の情報を受け取っている。したがって、
・Ｌ１  ６Ｓ１Ｌ１のレジスタは、空白を有する。
・Ｌ２  ６Ｓ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｓ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ６Ｓ１Ｌ４のレジスタは、空白を有する。
【００６６】
マスタ・エージェント２は、Ｍ１：  ｒｅａｄ  Ｓ２コマンドを受け取っている。このコマンドは、このマスタ・エージェントに関するものではない。したがって、
・Ｌ１  ６Ｍ２Ｌ１のレジスタは、Ｍ１：  ｒｅａｄ  Ｓ２コマンドを有する。
・Ｌ２  ６Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ６Ｍ２Ｌ４のレジスタは、空白を有する。
【００６７】
スレーブ・エージェント２は、Ｔ２トークンを受け取っている。したがって、
・Ｌ１  ６Ｓ２Ｌ１のレジスタは、Ｔ２トークンを有する。
・Ｌ２  ６Ｓ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｓ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ６Ｓ２Ｌ４のレジスタは、空白を有する。
【００６８】
これによって、Ｔ−３の説明が完了する。
【００６９】
時刻Ｔ−４
図７を参照すると、４つのバス１１０エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−４と定義されるこの時刻に、バス１１０エージェントは、次のバス１１０エージェントへの個々の内容のもう１つの送信を完了したばかりである。
【００７０】
マスタ・エージェント１は、Ｔ２を受け取っている。したがって、
・Ｌ１  ６Ｍ１Ｌ１のレジスタは、Ｔ２トークンを有する。
・Ｌ２  ６Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｍ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ６Ｍ１Ｌ４のレジスタは、空白を有する。
【００７１】
スレーブ・エージェント１は、コマンドＭ２：  Ｗｒｉｔｅ  Ｓ１を受け取っている。このコマンドは、このスレーブ・エージェントに関するものであり、マスタ２からのＷｒｉｔｅコマンドが実行される。したがって、
・Ｌ１  ６Ｓ１Ｌ１のレジスタは、何も有しない。
・Ｌ２  ６Ｓ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｓ１Ｌ３のレジスタは、コマンドＭ２：  Ｗｒｉｔｅ  Ｓ１を有する。このコマンドは、このスレーブ・エージェントに関するものであり、したがって、マスタ・エージェント２からのＷｒｉｔｅコマンドが実行される。このコマンドの結果が、Ｌ４レジスタに置かれる。
・Ｌ４  ６Ｓ１Ｌ４のレジスタは、空白を有する。
【００７２】
マスタ・エージェント２は、スレーブ・エージェント１バス１１０エージェントから空白を受け取っている。したがって、
・Ｌ１  ６Ｍ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ６Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ６Ｍ２Ｌ４のレジスタは、空白を有する。
【００７３】
スレーブ・エージェント２は、そのレジスタにコマンドＭ１：  Ｒｅａｄ  Ｓ２を有する。このコマンドは、このスレーブ・エージェントに関するものなので、マスタ・エージェント１からのＲｅａｄコマンドが実行される。したがって、
・Ｌ１  ６Ｓ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ６Ｓ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ６Ｓ２Ｌ３のレジスタは、コマンドＭ１：  Ｒｅａｄ  Ｓ２を有する。このコマンドは、このスレーブ・エージェントに関するものなので、マスタ・エージェント１からのＲｅａｄコマンドが実行される。このコマンドの結果は、Ｌ４レジスタに置かれる。
・Ｌ４  ６Ｓ２Ｌ４のレジスタは、空白を有する。
【００７４】
これによって、Ｔ−４の説明が完了する。
【００７５】
時刻Ｔ−５
図８を参照すると、４つのバス１１０エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−５と定義されるこの時刻に、バス１１０エージェントは、次のバス１１０エージェントへの個々の内容のもう１つの送信を完了したばかりである。
【００７６】
マスタ・エージェント１は、スレーブ・エージェント１バス１１０から空白を受け取っている。したがって、
・Ｌ１  ８Ｍ１Ｌ１のレジスタは、空白を有する。
・Ｌ２  ８Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ８Ｍ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ８Ｍ１Ｌ４のレジスタは、空白を有する。
【００７７】
スレーブ・エージェント１は、Ｔ２トークンを受け取り、応答Ｍ２：  Ｗｒｉｔｅ  Ｖｅｒｉｆｙ  Ｓ１をバス１１０に置いている。したがって、
・Ｌ１  ８Ｓ１Ｌ１のレジスタは、コマンドＭ２：  Ｗｒｉｔｅ  Ｖｅｒｉｆｙ  Ｓ１を有する。
・Ｌ２  ８Ｓ１Ｌ２のレジスタは、トークンＴ２を有する。
・Ｌ３  ８Ｓ１Ｌ３のレジスタは、空白を有する。応答Ｍ２：  Ｗｒｉｔｅ  ｖｅｒｉｆｙ  Ｓ１は、Ｌ１に置かれる。
・Ｌ４  ８Ｓ１Ｌ４のレジスタは、空白を有する。
【００７８】
マスタ・エージェント２は、スレーブ・エージェント１バス１１０から空白を受け取っている。したがって、
・Ｌ１  ８Ｍ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ８Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ８Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ８Ｍ２Ｌ４のレジスタは、空白を有する。
【００７９】
スレーブ・エージェント２は、トークンを受け取っていないが、応答Ｍ１：  Ｄａｔａ  ｆｒｏｍ  Ｓ２をバス１１０に置いている。したがって、
・Ｌ１  ８Ｓ２Ｌ１のレジスタは、応答Ｍ１：  Ｄａｔａ  ｆｒｏｍ  Ｓ２を有する。
・Ｌ２  ８Ｓ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ８Ｓ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ８Ｓ２Ｌ４のレジスタは、空白を有する。
【００８０】
これによって、Ｔ−５の説明が完了する。
【００８１】
時刻Ｔ−６
図９を参照すると、４つのバス１１０エージェントおよび４つの相互接続ケーブルが示されている。Ｔ−６と定義されるこの時刻に、バス１１０エージェントは、次のバス１１０エージェントへの個々の内容のもう１つの送信を完了したばかりである。
【００８２】
マスタ・エージェント１は、保留中のコマンドの結果を受け取っている。この時に、マスタ・エージェント１バス１１０エージェントによる要求が、完了している。マスタ・エージェント１は、Ｔ１トークンをバス１１０に置く。したがって、
・Ｌ１  ９Ｍ１Ｌ１のレジスタは、空白を有する。
・Ｌ２  ９Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ９Ｍ１Ｌ３のレジスタは、応答Ｍ１：  Ｄａｔａ  ｆｒｏｍ  Ｓ２を有する。
・Ｌ４  ９Ｍ１Ｌ４のレジスタは、空白を有する。
【００８３】
スレーブ・エージェント１は、Ｔ２トークンを受け取っている。したがって、
・Ｌ１  ９Ｓ１Ｌ１のレジスタは、空白を有する。
・Ｌ２  ９Ｓ１Ｌ２のレジスタは、トークンＴ２を有する。
・Ｌ３  ９Ｓ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ９Ｓ１Ｌ４のレジスタは、空白を有する。
【００８４】
マスタ・エージェント２は、保留中のコマンドの結果を受け取っている。この時に、マスタ・エージェント２による要求が完了している。マスタ・エージェント２は、トークンをバス１１０に置く。したがって、
・Ｌ１  ９Ｍ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ９Ｍ２Ｌ２のレジスタは、応答Ｍ２：  Ｗｒｉｔｅ  ｖｅｒｉｆｙ  Ｓ１を有する。
・Ｌ３  ９Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ９Ｍ２Ｌ４のレジスタは、空白を有する。
【００８５】
スレーブ・レジスタ２は、トークンを受け取らなかった。したがって、
・Ｌ１  ９Ｓ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ９Ｓ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ９Ｓ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ９Ｓ２Ｌ４のレジスタは、空白を有する。
【００８６】
これによって、Ｔ−６の説明が完了し、本発明のトークン・リング同時情報転送の例の説明が完了する。
【００８７】
各エージェントのリング・ルールの要約
要約では、下記が、図２のインターフェース２００に関するリング上の各構成要素のルールおよび挙動の説明である。
【００８８】
１．初期化時に、１つのマスタ・エージェントが、ｎ−１個のトークンをリングに置く。ここで、ｎは、リング・エージェントの総数である。トークンは、単に短いメッセージであり、これによって、マスタ・エージェントが要求を開始することの許可が示される。このトークンのすべてを、同一とすることができる。もう１つの実施形態では、初期化時に、アクセス・マクロに結合されたエージェント以外のすべてのリング・エージェントが、リングにトークンを置く。
【００８９】
２．Ｌ２ラッチは、単一のバッファを有する。バッファが空の場合に、送信可であることの信号が、上流Ｌ１に提示される。
【００９０】
３．Ｌ４のどれかが、送信すべきデータを有する時に、そのＬ４は、Ｖａｌｉｄ（有効）と、Ｒｅｑｕｅｓｔ（要求）またはＲｅｓｐｏｎｓｅ（応答）のいずれか適当なものをＬ１に示す。Ｌ４は、Ｌ１からＣＴＳ（送信可）を受け取る時にこれを送ることができる。
【００９１】
４．Ｌ１ラッチは、下流エージェントからのＣＴＳ（送信可）信号を受け取る時に、下記の順序付け方式を介してデータを見つけることを試みる。
【００９２】
Ａ）Ｌ４からのＶａｌｉｄを探す
【００９３】
・Ｌ４がＶａｌｉｄおよびＲｅｓｐｏｎｓｅを示す場合に、Ｌ１は、Ｌ４へのＣＴＳをセットし、そのデータを受け取る。
【００９４】
・Ｌ４がＶａｌｉｄおよびＲｅｑｕｅｓｔを示す場合に、Ｌ１は、下流エージェントからＣＴＳを受け取り、Ｌ２がＶａｌｉｄおよびＴｏｋｅｎを示す場合に、Ｌ４へのＣＴＳをセットすることだけができる。この場合に、Ｌ１は、Ｌ２およびＬ４の両方にＣＴＳを発行する。Ｌ４のデータが、バス１１０で転送され、Ｌ２のデータ（トークン）は破棄される。
【００９５】
Ｂ）Ｌ２がＶａｌｉｄを示す場合に、Ｌ２へのＣＴＳをセットし、データを受け取る。
【００９６】
・Ｌ２のいずれかが、Ｌ３に応答を送る場合に、そのＬ２は、バス１１０上でトークンを転送する（ＶａｌｉｄおよびＴｏｋｅｎをＬ１に示す）。これは、必ず、トランザクションを完了し、トークンを使用可能にするマスタ・エージェントである。
【００９７】
・Ｌ３のいずれかが要求を受け取る時には、特別な機能を実行する必要がない。しかし、付加される論理によって、Ｌ４が要求を送信するまで、Ｌ３が別の要求を受け取らないことを保証する必要がある。これは、必ず、要求を受け取るスレーブ・エージェントである。このエージェントは、トランザクションを完了するために、暗黙の送信許可を有する。１実施形態では、Ｌ３は、Ｌ４が空になるまで上流Ｌ２へのＣＴＳをアサートしない。
【００９８】
マスタ・エージェントの流れ図
図１０に、前に説明したバスまたはリング１１０での、マスタ・エージェントのＬ１ラッチの展望からの流れ図１０００を示す。ページの最上部に、要約ノード１００２があり、このノードから処理が開始される。
【００９９】
要約ノード１００２の下に、判断ブロックであるステップ１００４がある。Ｌ１にデータがなく、次のバス１１０エージェントが前進線（advance line）（Ａ）を送らない場合に、要約ノード１００２に戻ることによってリング１１０がインデクシングされる。Ｌ１にデータがないか、次のバス・エージェントが前進線を送る場合には、この処理は、下のステップ１００６で継続される。
【０１００】
ステップ１００６で、バス１１０またはこのマスタ・ユニット（１０２および１０６）からの有効なデータがあるかどうか関する判定を行う。バス１１０またはマスタからでは「ない」場合に、要約ノード１００２に戻ることによってリング１１０をインデクシングする。リング１１０またはこのマスタからの有効なデータがある場合には、この処理は、ステップ１００８で継続される。
【０１０１】
ステップ１００８で、データが、バス１１０からであってマスタからで「ない」かどうかに関する判定を行う。ステップ１００８で、データ１２０が、バス１１０からであってマスタからで「ない」場合に、この処理は、ステップ１００９で継続される。データ１２０が、バス１１０からでは「なく」マスタからである場合には、この処理はステップ１０１０で継続される。
【０１０２】
ステップ１００９で、バス１１０のデータがこのマスタ・エージェントに関するものであるかどうかの判定を行う。バス１１０のデータが、このマスタ・エージェントに関するものである場合には、ステップ１０１７で、バス１１０のデータが、マスタに渡され、要約ノード１００２に戻ることによってリングをインデクシングする。バス１１０のデータが、このマスタ・エージェントに関するもので「ない」場合には、ステップ１０１６で、バス１１０のデータをＬ１に渡し、要約ノード１００２に戻ることによってリングをインデクシングする。
【０１０３】
ステップ１０１０では、データが、マスタからであってバス１００からで「ない」かどうかに関する判定を行う。データが、マスタからであってバス１１０からで「ない」場合には、要約ノード１００２に戻ることによってリングをインデクシングする。そうでない場合には、データは、マスタからで「ない」か、バス１１０からであり、処理は、ステップ１０１２で継続される。
【０１０４】
ステップ１０１２では、バス１１０からのデータがトークンと等しい場合に、ステップ１０１４で、マスタ要求をＬ１に置き、ビット・バケット内で破棄することによってトークンをデシメート（decimate）し、要約ノード１００２に戻ることによってリングをインデクシングする。そうではなく、バス１１０からのデータがトークンと等しく「ない」場合には、ステップ１０１８で、バス１１０からのデータをＬ１に渡し、要約ノード１００２に戻ることによってリング１１０をインデクシングする。
【０１０５】
スレーブ・エージェントの流れ図
図１１に移ると、スレーブ・エージェントのプログラミング流れ図１１００が示されている。ページの最上部に、要約ノード１１０２がある。この点は、進入される場合にリング１１０のサイクルを表す。
【０１０６】
要約ノード１１０２ステップの下に、ステップ１１０４の第１の判断ブロックＮＯＴ  Ｌ１またはＡｄｖａｎｃｅがある。どちらもが有効でない場合に、要約ノード１１０２に戻ることによってリング１１０をインデクシングする。どちらかが有効である場合には、処理はステップ１１０６で継続される。
【０１０７】
ステップ１１０６で、情報がこのスレーブ・エージェントに関するものか、リング１１０に渡されるかに関する判定を行う。データが、リング１１０またはこのスレーブ・エージェントに関するもので「ない」場合に、要約ノード１１０２に戻ることによってリング１１０をインデクシングする。情報が、リングまたはこのスレーブ・エージェントのいずれかに関するものである場合に、処理は、ステップ１１０７で継続される。
【０１０８】
ステップ１１０７で、情報がこのスレーブ・エージェントに関するものであるかどうかに関する判定を行う。データが、このスレーブ・エージェントに関するものである場合に、ステップ１１０５で、リング１１０によって、この情報がスレーブに転送され、ステップ１１０２で処理が継続される。
【０１０９】
リング情報が、このスレーブ・エージェントに関するものでない場合には、ステップ１１０８で、リング情報とスレーブ・タグの排他的論理和（すなわちＸＯＲ）をとる。情報がリングに関する「または」情報がスレーブから提示されつつあるのいずれかである場合に、ステップ１１１０で、データがＬ１に転送されるか、スレーブ応答がＬ１に転送され、要約ノード１１０２に戻ることによってリングをインデクシングする。そうではなく、情報が、リングからのものであり「かつ」スレーブ・エージェントに関するものである場合には、この処理は、ステップ１１１２で継続される。
【０１１０】
ステップ１１１２で、優先順位（Ｐ）を、リング情報と比較する。優先順位が、一致する場合には、ステップ１１１４で、リング情報をＬ１に置き、要約ノード１１０２に戻ることによってリングをインデクシングした後に、スレーブ情報が処理される。そうではなく、ステップ１１１２で優先順位がリング情報と等しく「ない」場合には、１１１４で、スレーブ情報をＬ１に置き、リングをインデクシングした後にリング情報が処理される。ステップ１１１２から１１１６によって、ラウンドロビン法でスレーブ・エージェント１０４および１０９の優先順位を設定できるが、この場合に、優先順位が、各サイクル中にリング１１０とスレーブの間で切り替えられることを理解されたい。
【０１１１】
本発明は、当業者に既知のように、ハードウェアまたはソフトウェア、あるいはハードウェアおよびソフトウェアの組合せで作ることができる。好ましい実施形態に関して開示された発明的原理によるシステムまたは方法は、記載されまたは請求される個々の機能またはステップを実行する別々の要素または手段あるいは記載されまたは請求される機能またはステップのいずれかの実行を組み合わせる１つまたは複数の要素または手段を有する単一のコンピュータ・システムで作ることができ、あるいは、当業者に既知の適当な手段によって相互接続された分散コンピュータ・システムに配置することができる。
【０１１２】
好ましい実施形態に関して開示された発明的原理によれば、本発明および発明的原理は、特定の種類のコンピュータ・システムに制限されるのでは「なく」、当業者に既知の、説明された機能および説明された方法ステップを実行するように配置されたすべての汎用コンピュータと共に使用することができる。そのようなコンピュータの動作は、上で説明したように、当業者に既知のように、コンピュータの動作または制御に使用される、媒体に含まれるコンピュータ・プログラムによるものとすることができる。コンピュータ・プログラム製品を保持または含むのに使用することができるコンピュータ媒体は、当業者に既知のように、組込みメモリなどのコンピュータの備品とすることができ、あるいは、ディスクなどの移動可能媒体とすることができる。
【０１１３】
本発明は、特定のコンピュータ・プログラムまたは論理または言語あるいは命令に制限されるのではなく、当業者に既知のように、任意の適当なプログラム、言語、または論理あるいは命令を用いて実践することができる。開示される発明の原理を制限せずに、そのようなコンピューティング・システムに、なかんずく、少なくとも、コンピュータがデータ、命令、メッセージ、またはメッセージ・パケットを読み取れるようにするコンピュータ可読媒体、およびコンピュータ可読媒体からの他のコンピュータ可読情報を含めることができる。コンピュータ可読媒体には、ＲＯＭ、フラッシュ・メモリ、フロッピ・ディスク、ディスク・ドライブ・メモリ、ＣＤＲＯＭ、および他の永続記憶装置などの不揮発性メモリを含めることができる。さらに、コンピュータ可読媒体に、たとえば、ＲＡＭ、バッファ、キャッシュ・メモリ、およびネットワーク回路などの揮発性記憶装置を含めることができる。
【０１１４】
さらに、コンピュータ可読媒体に、ネットワーク・リンクまたはネットワーク・インターフェースあるいはその両方など、コンピュータがコンピュータ可読情報を読み取れるようにする、有線ネットワークおよび無線ネットワークを含む一時的状態媒体内のコンピュータ可読情報を含めることができる。
【０１１５】
本発明の特定の実施形態を説明した。当業者は、本発明の趣旨および範囲から逸脱せずに、この特定の実施形態に対して変更を行えることを理解するであろう。したがって、本発明の範囲は、この特定の実施形態に制限されず、添付請求項によって、すべてのそのような応用例、修正形態、および実施形態が、本発明の範囲内に含まれることが意図されている。
【図面の簡単な説明】
【０１１６】
【図１】２つのマスタ・エージェントおよび２つのスレーブ・エージェントを示す通常のトークン・リング・ネットワークを示すブロック図、およびデータおよび制御を定義する方法の例を示す、パケットを示すブロック図である。
【図２】マスタ・エージェントまたはスレーブ・エージェントとすることができるエージェントとバスの間のインターフェースの実施形態を示す論理ブロック図である。
【図３】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ０の同時通信を示す論理図である。
【図４】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ１の同時通信を示す論理図である。
【図５】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ２の同時通信を示す論理図である。
【図６】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ３の同時通信を示す論理図である。
【図７】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ４の同時通信を示す論理図である。
【図８】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ５の同時通信を示す論理図である。
【図９】図１（ａ）のリング・ネットワーク・トポロジの例示的な時間期間Ｔ６の同時通信を示す論理図である。
【図１０】前に説明したバスまたはリング上のマスタ・エージェントのＬ１ラッチの展望からの流れ図である。
【図１１】スレーブ・エージェントのプログラミング流れ図１１００である。
【図１】
2005516477.tif 000003
【図２】
2005516477.tif 000004
【図３】
2005516477.tif 000005
【図４】
2005516477.tif 000006
【図５】
2005516477.tif 000007
【図６】
2005516477.tif 000008
【図７】
2005516477.tif 000009
【図８】
2005516477.tif 000010
【図９】
2005516477.tif 000011
【図１０】
2005516477.tif 000012
【図１１】
2005516477.tif 000013
【手続補正書】
【提出日】平成16年1月22日(2004.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのマスタ・エージェントを少なくとも１つのスレーブ・エージェントに結合するバスを介する同時通信の方法であって、前記バスへの入力および出力を有するスレーブ・エージェント上の前記方法は、
前記バスからのデータまたは前記スレーブからのデータがあるかどうかを判定し、前記バスからであって前記スレーブからでないデータがある場合に、前記データを前記バスから前記出力に移動し、前記スレーブからであって前記バスからでないデータがある場合に、前記データを前記スレーブから前記出力に移動するステップと、
前記バスからおよび前記スレーブからの両方のデータがあるかどうかを判定し、前記バスからおよび前記スレーブからの両方のデータがある場合に、
前記バスが優先権を有する場合に、前記データを前記バスから前記出力に移動し、前記優先権を前記スレーブにセットするサブステップと、
前記バスが優先権を有しない場合に、前記データを前記スレーブから前記出力に移動し、前記優先権を前記バスにセットするサブステップと
を実行するステップと
を含む方法。
【請求項２】
前記出力にデータがないかどうか、または前進線がアサートされるかどうかを判定し、前記出力にデータがないか前進線がアサートされる場合に、前記バスからのデータがあるかどうか、または前記マスタからのデータがあるかどうかを判定するステップを実行するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記マスタ・エージェントが、アクセス・マクロに結合されるかどうかを判定し、前記マスタ・エージェントが、アクセス・マクロに結合される場合に、前記バスが初期化される時に、前記バスにトークンを置くステップを実行し、前記バス上のトークンの最大個数が、マスタ・エージェントの総数とスレーブ・エージェントの総数との合計から１を引いた数と等しくなるようにセットされる、ステップ
をさらに含む、請求項１または請求項２に記載の方法。
【請求項４】
リセット・コマンドを受け取るステップと、
リセットされた後に、前記マスタ・エージェントがアクセス・マクロに結合されるかどうかを判定し、前記マスタ・エージェントがアクセス・マクロに結合される場合に、ｎ−１個のトークンを前記バスに置くステップであって、ｎが、前記バスで通信するマスタ・エージェントおよびスレーブ・エージェントの総数である、ステップと
をさらに含む、請求項１または請求項２に記載の方法。
【請求項５】
複数のエージェントの間の同時通信のデータ通信ネットワークであって、
通信バスに結合された、スレーブ・エージェントとして指定された少なくとも１つのエージェントと、
前記通信バスに結合された、マスタ・エージェントとして指定された少なくとも１つのエージェントと、
前記バスからの入力および前記バスへの出力を有する前記マスタ・エージェントへのインターフェースであって、前記インターフェースは、データがあるかどうかをテストし、前記マスタからのデータがある場合に、前記バスからのデータがトークンであるかどうかをテストする複数のラッチを含む、インターフェースと
を含み、
前記インターフェースは、前記バスからの前記データがトークンである場合に、前記データを前記マスタから前記バスに移動し、前記トークンを破棄する手段を含み、
前記インターフェースは、前記データが前記バスからのトークンでない場合に、前記バスの前記入力からの前記データを前記バスの前記出力に移動する手段を含み、
前記インターフェースは、前記データが前記マスタからではなく、かつ前記データが前記バスからである場合に、前記データを前記バスの前記入力から前記バスの出力に移動する手段を含む、
データ通信ネットワーク。
【請求項６】
前記マスタ・エージェントへの前記インターフェースが、前記データが前記マスタ・エージェントに関するかどうかをテストし、前記データが前記マスタ・エージェントに関する場合に前記データを前記マスタに渡す、複数のラッチをさらに含む、請求項５に記載のデータ通信ネットワーク。
【請求項７】
複数のエージェントの間の同時通信のデータ通信ネットワークであって、
通信バスに結合された、スレーブ・エージェントとして指定された少なくとも１つのエージェントと、
前記通信バスに結合された、マスタ・エージェントとして指定された少なくとも１つのエージェントと、
前記バスへの入力および前記バスへの出力を有する、各スレーブ・エージェント上のインターフェースであって、前記インターフェースは、前記バスからまたは前記スレーブ・エージェントからのデータがあるかどうかをテストする複数のラッチであって、前記スレーブからではなく前記バスからのデータがある場合に、前記データを前記バスから前記出力に移動し、前記バスからではなく前記スレーブからのデータがある場合に、前記データを前記スレーブから前記出力に移動する複数のラッチを含む、インターフェースと
を含み、前記複数のラッチは、前記バスからのデータおよび前記スレーブからのデータの両方があるかどうかをテストし、前記バスからおよび前記スレーブからの両方のデータがある場合に、前記バスが優先権を有するかどうかをテストし、
前記インターフェースは、前記バスが優先権を有する場合に、前記データを前記バスから前記出力に移動し、前記スレーブに前記優先権をセットする手段を含み、
前記インターフェースは、前記バスが優先権を有しない場合に、前記データを前記スレーブから前記出力に移動し、前記バスに前記優先権をセットする手段を含む
データ通信ネットワーク。
【請求項８】
各スレーブ上の前記インターフェースが、前記データが前記スレーブ・エージェントに関するかどうかをテストし、前記データが前記スレーブ・エージェントに関する場合に前記データを前記スレーブに転送する、複数のラッチをさらに含む、請求項７に記載のデータ通信ネットワーク。
【請求項９】
複数のエージェントの間の同時通信のデータ通信ネットワークであって、
請求項５または請求項６に記載の通信バスに結合された、マスタ・エージェントとして指定される少なくとも１つのエージェントと、
請求項７または請求項８に記載の通信バスに結合された、スレーブ・エージェントとして指定される少なくとも１つのエージェントと
を含むデータ通信ネットワーク。
【請求項１０】
コンピュータで実行される時に、請求項１ないし４のいずれかのすべてのステップを実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
エージェント・インターフェース
図２に移ると、バス１１０と、マスタ・エージェント（１０２および１０６）またはスレーブ・エージェント（１０４および１０８）とすることができるエージェント（１０２、１０４、１０６、および１０８）との間のインターフェース２００の実施形態を示す論理ブロック図が示されている。Ｌ２ラッチ２０２が、ポート１１２で前のエージェント（図示せず）に接続される。Ｌ２ラッチ２０２は、信号線２１０を介してパケット１２０から制御情報およびデータ情報を受け取る。制御ビット１２４が、Ｌ２にラッチされたならば、ＣＴＳ（送信可）２１２信号が、上流の前のエージェント（図示せず）に送り返される。Ｌ２の受信された制御ビット１２４に基づいて、関連するデータがこのエージェントに関するものであるかどうかを判断する。そうである場合には、制御ビット１２４が、このエージェントによる処理のために信号線２２８を介してＬ３ラッチ２０８に渡される。これによって、このエージェントの制御ビットおよびデータ・ビットの受取を説明した。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
エージェントが、リングに置かれなければならない情報２１８を有する場合に、その情報が、接続２３０を使用してＬ４ラッチ２０６によってＬ１ラッチ２０４に提示される。この情報は、ポート１１４でバス１１０に提示される。これが、送信／受信ラウンド・トリップの完了である場合には、マスタ・エージェント（１０２および１０６）が、そのトークンを、同一のパス２３０を使用してバス１１０に提示する（図示せず）。これによって、バス１１０上でポート１１４でのエージェントからの制御およびデータの送信を説明した。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
マスタ・エージェント１は、Ｔ２を受け取っている。したがって、
・Ｌ１  ７Ｍ１Ｌ１のレジスタは、Ｔ２トークンを有する。
・Ｌ２  ７Ｍ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ７Ｍ１Ｌ３のレジスタは、空白を有する。
・Ｌ４  ７Ｍ１Ｌ４のレジスタは、空白を有する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
スレーブ・エージェント１は、コマンドＭ２：  Ｗｒｉｔｅ  Ｓ１を受け取っている。このコマンドは、このスレーブ・エージェントに関するものであり、マスタ２からのＷｒｉｔｅコマンドが実行される。したがって、
・Ｌ１  ７Ｓ１Ｌ１のレジスタは、何も有しない。
・Ｌ２  ７Ｓ１Ｌ２のレジスタは、空白を有する。
・Ｌ３  ７Ｓ１Ｌ３のレジスタは、コマンドＭ２：  Ｗｒｉｔｅ  Ｓ１を有する。このコマンドは、このスレーブ・エージェントに関するものであり、したがって、マスタ・エージェント２からのＷｒｉｔｅコマンドが実行される。このコマンドの結果が、Ｌ４レジスタに置かれる。
・Ｌ４  ７Ｓ１Ｌ４のレジスタは、空白を有する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
マスタ・エージェント２は、スレーブ・エージェント１バス１１０エージェントから空白を受け取っている。したがって、
・Ｌ１  ７Ｍ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ７Ｍ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ７Ｍ２Ｌ３のレジスタは、空白を有する。
・Ｌ４  ７Ｍ２Ｌ４のレジスタは、空白を有する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
スレーブ・エージェント２は、そのレジスタにコマンドＭ１：  Ｒｅａｄ  Ｓ２を有する。このコマンドは、このスレーブ・エージェントに関するものなので、マスタ・エージェント１からのＲｅａｄコマンドが実行される。したがって、
・Ｌ１  ７Ｓ２Ｌ１のレジスタは、空白を有する。
・Ｌ２  ７Ｓ２Ｌ２のレジスタは、空白を有する。
・Ｌ３  ７Ｓ２Ｌ３のレジスタは、コマンドＭ１：  Ｒｅａｄ  Ｓ２を有する。このコマンドは、このスレーブ・エージェントに関するものなので、マスタ・エージェント１からのＲｅａｄコマンドが実行される。このコマンドの結果は、Ｌ４レジスタに置かれる。
・Ｌ４  ７Ｓ２Ｌ４のレジスタは、空白を有する。


【国際調査報告】
2005516477.tif 000014
2005516477.tif 000015
2005516477.tif 000016