(57)【特許請求の範囲】
【請求項１】
ディジタルネットワーク上で通信する少なくとも２つの装置を備え、前記装置の一方が、前記ディジタルネットワーク上における前記少なくとも２つの装置間に確立された仮想回路を通じて、情報メッセージの形態で前記装置の前記一方とは異なる前記装置の他方へ情報を送信するシステムであって、
Ａ．前記装置の前記一方は、
ｉ．前記装置の前記他方から前記仮想回路を通じて送信される複数のシグナリングメッセージに含まれるシグナリング情報を格納する複数のメールボックスであって、前記複数のシグナリングメッセージの各々によって、該シグナリングメッセージの各々に含まれる前記シグナリング情報が格納される前記複数のメールボックスのうちの１つのメールボックスが識別される、複数のメールボックスと、
ｉｉ．前記装置の前記他方から前記仮想回路を通じてシグナリング情報を含むシグナリングメッセージを受信し、かつ該シグナリングメッセージによって識別された前記複数のメールボックスのうちの１つのメールボックスに、該シグナリングメッセージに含まれる該シグナリング情報をロードするよう構築されたシグナリングメッセージレシーバと、
ｉｉｉ．前記複数のメールボックスのうちの前記１つのメールボックスから前記シグナリング情報を検索し、該シグナリング情報と関連する所定の処理動作を遂行するよう構築されたプロセッサとを含み、
Ｂ．前記装置の前記他方は、
ｉ．前記仮想回路に関連する送信信号キューであって、該送信信号キューは、複数のエントリを含み、該複数のエントリの各々は、前記複数のメールボックスのうちの１つのメールボックスに関連し、かつ前記装置の前記他方から送信されてくるシグナリング情報を受信するよう構築されている、送信信号キューと、
ｉｉ．前記送信信号キュー内のシグナリング情報からシグナリングメッセージを生成し、かつ該生成したシグナリングメッセージを、前記仮想回路を通じて前記装置の前記一方に送信するよう構築されたシグナリングメッセージ送信器と、
ｉｉｉ．前記シグナリング情報を生成し、かつ該シグナリング情報を前記送信信号キューの個々のエントリにロードするよう構築されたシグナリング情報生成器と
を含むことを特徴とするシステム。
【請求項２】
前記装置の前記一方はシステムメモリを含み、前記複数のメールボックスは前記システムメモリ内に常駐しており、前記シグナリングメッセージレシーバはさらに、該システムメモリ内の該複数のメールボックスのベースアドレスを識別するメールボックスベースアドレスポインタを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記装置の前記一方はさらに、前記複数のメールボックスのうちの１つのメールボックスに関連する少なくとも１つの割込イネーブルフラグを含み、該少なくとも１つの割込イネーブルフラグがセットされ、かつ前記シグナリングメッセージレシーバが、シグナリング情報を前記複数のメールボックスのうちの前記１つのメールボックスにロードするときに、前記プロセッサに対する割込みを生成して該プロセッサに割り込むことを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、通例ディジタル通信システムの分野に、特に例えばディジタル画像、音声およびビデオ配布システム内、およびディジタルコンピュータシステム間におけるディジタルデータの通信を容易にするディジタルネットワークに関する。本発明は、特に、コンピュータネットワークの仮想回路に関する受信装置における状態を表す情報を転送するシステムおよび方法を提供する。
【０００２】
（発明の背景）
ディジタルコンピュータシステムと他のディジタル装置間でデータおよびプログラムなどの情報の転送を容易にするため、ディジタルネットワークが開発されている。ネットワークでは通常、情報は、例えば情報を送信すること、エラー検出および／または修正情報を追加して、情報転送プロセスにおけるエラーの検出および／または修正を容易にすること、情報を管理可能なブロックに分割してブロック順序付け情報を追加すること、アドレス指定および仮想回路情報を追加して、情報を受信すべきデスティネーション（destination）装置およびアプリケーションを識別し、ネットワークを通したブロックの転送を容易にすること、ネットワーク上を送信させるためにディジタル情報を電気または光信号に変換することなど、様々なタイプのサービスを提供する複数の層（layer）をそれぞれが含むプロトコルスタックによって、アプリケーション用に転送される。情報を受信するため、プロトコルスタックは、例えば、電気および／または光信号をディジタル情報に変換すること、アドレス指定情報から情報を受信すべきアプリケーションを判断すること、ブロック順序付け情報を使用してブロックを集約し、アプリケーションに提供する情報にすること、およびエラー検出および／または修正情報を使用して、情報が正確に転送されているか判断することなどのサービスを逆に実行する。
【０００３】
ネットワークを通した情報の転送に関連して発生した１つの問題は、プロトコルスタックが遂行する動作（operation）の多くが、他のプログラムによって提供されたサービスへ情報を転送するアプリケーションによる呼によって開始することであり、これによって大量のオーバヘッドを生じることがある。これを軽減するため、Ｃｏｍｐａｑ  Ｃｏｍｐｕｔｅｒ  Ｃｏｒｐ．、Ｉｎｔｅｌ  Ｃｏｒｐ．およびＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．が発行したＶｉｒｔｕａｌ  Ｉｎｔｅｒｆａｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ（「ＶＩＡ」）仕様第１版（１９９７年１２月１６日）に記載され、基本的にネットワークのインタフェースをアプリケーションが使用できるようにするアーキテクチャが提案されている。アプリケーション自体は、以前のプロトコルスタックにある様々な層が遂行するような動作の少なくとも一部を遂行する必要があるかもしれないが、オーバヘッドを伴う他のプログラムへの呼を必要とせずに、これを遂行することができる。しかし、ＶＩＡ仕様に記載されたアーキテクチャに関連して、問題が発生している。つまり、そのアーキテクチャは、その間の情報転送に関連する様々な状態を相互に通知することができるメカニズムを提供しない。具体的には、そのアーキテクチャは、メッセージを受信すべき装置がメッセージ送信側の装置に、メッセージが不正に転送されたこと、または仮想回路で受信されなかったことを通知することができるメカニズムを提供せず、あるいは特定の仮想回路で他の装置からの情報を受信する状態にあることを、装置が別の装置に通知することができるメカニズムを提供しない。
【０００４】
（発明の概要）
本発明は、コンピュータネットワークの仮想回路に関する受信側装置における状態を表す情報を転送する、新しくかつ改善されたシステムおよび方法を提供する。
【０００５】
簡単に要約すると、本発明は、ネットワーク上で通信する複数の装置を備えたシステムを提供する。装置の少なくとも１つが、少なくとも１つの他の装置に、ネットワークを使用してその間に確立された仮想回路を通じて情報メッセージ形態で（in information messages）情報を送信する。他方の装置は、例えば仮想回路に関連した他方の装置の所定の状況などに関する情報を、シグナリングメッセージを使用して送信することができ、これは他方の装置によって仮想回路を通して一方の装置に送信される。一方の装置は、仮想回路に関連する複数のメールボックスを含み、他方の装置、つまりシグナリングメッセージを送信する装置は、それぞれがメールボックスの１つに関連する複数のエントリを含む送信信号キューを含む。他方の装置のプロセッサは、送信される状態情報をメールボックスに関連する送信信号キューエントリにロードして、メールボックスに転送すべき状態情報を含むシグナリングメッセージが送信されるようにする。他方の装置は、交替で、シグナリングメッセージを一方の装置に送信し、これにより適切なメールボックスに状態情報をロードする。一方の装置のプロセッサは、メールボックスから状態情報を検索して、他方の装置から自身に通信された状態情報を判断する。
【０００６】
（例示的実施形態の詳細な説明）
図１は、図１でコンピュータ１２（１）から１２（Ｍ）（通例、参照番号１２（ｍ）で識別する）によって表される幾つかの装置間でデータを表す信号を転送するため、複数のスイッチングノード１１（１）から１１（Ｎ）（通例、参照番号１１（ｎ）で識別する）を含むネットワーク１０を概略的に示す。コンピュータ１２（ｍ）は、従来通りに、そのプログラム命令にしたがってデータを処理し、処理済みデータを生成する。コンピュータ１２（ｍS）（下付文字「Ｓ」は「ソース」を示す）は、その処理中にソースコンピュータとしてデータ、処理済みデータおよび／またはプログラム命令（これは全て本明細書では全体として「情報」と呼ぶ）を、転送された情報を動作中に使用する必要がある別のデスティネーションコンピュータ１２（ｍD）（下付文字「Ｄ」は「デスティネーション（destination）」を示す）に転送する必要がある。概して、コンピュータ１２（ｍ）は、従来のパーソナルコンピュータまたはコンピュータワークステーション、サーバコンピュータ、ミニまたはメインフレームコンピュータなど、任意のタイプの従来のコンピュータを備えることができる。各コンピュータ１２（ｍ）は、通例、参照番号１３（ｐ）で識別される通信リンクでスイッチングノード１１（ｎ）に接続され、それへのデータの送信またはそれからのデータの受信を容易にする。スイッチングノード１１（ｎ）は、コンピュータ１１（ｎ）および他のスイッチングノード１１（ｎ）から受信したデータを受信し、バッファに入れ、転送して、コンピュータ１２（ｍ）間のデータ転送を容易にする。スイッチングノード１１（ｎ）は、これも通例、参照番号１３（ｐ）で識別される通信リンクによって相互接続され、その間のデータ転送を容易にする。通信リンク１３（ｐ）は、任意の従来のデータ送信メディアを使用することができる。図１に描かれた各通信リンク１３（ｐ）は、双方向で、スイッチングノード１１（ｎ）が相互に、および同じリンクでこれに接続されたコンピュータ１２（ｍ）と信号を送受信できることが好ましく、双方向通信リンクに対応するため、各通信リンク１３（ｐ）に別個のメディアを設けることができ、それぞれが信号の一方向転送を容易にする。
【０００７】
１つの実施形態では、データはよく知られている「ＡＴＭ」（「非同期転送モード」）転送方法を使用して転送される。この方法は、Ｃ．ＰａｒｔｒｉｄｇｅのＧｉｇａｂｉｔ  Ｎｅｔｗｏｒｋｉｎｇ（Ｒｅａｄｉｎｇ  ＭＡ：Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ  Ｐｕｂｌｉｓｈｉｎｇ  Ｃｏｍｐａｎｙ，１９９４）の主に第３章および第４章、およびＤ．ＭｃＤｙｓａｎ他のＡＴＭ  Ｔｈｅｏｒｙ  Ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎ（ＭｃＧｒａｗ  Ｈｉｌｌ，１９９５）に詳細に記載されているので、詳細には説明しない。概して、ＡＴＭ方法では、コンピュータ１２（ｍ）およびスイッチングノード１１（ｎ）は、データを固定長「セル」の形態で、ネットワークを通してコンピュータ１２（ｍ）間に確立された「仮想回路」上を転送する。各仮想回路は、基本的にソースコンピュータ１２（ｍS）からデスティネーションコンピュータ１２（ｍD）までの１つまたは複数のスイッチングノード１１（ｎ）および個々の通信リンク１３（ｐ）を通るパスを定義する。ＡＴＭデータ転送方法では、ソースコンピュータ１２（ｍS）からデスティネーションコンピュータ１２（ｍD）まで、その間に確立された仮想回路上で情報のブロックを転送するため、ソースコンピュータ１２（ｍS）は、データブロックを、通信リンク１３（ｐ）上に順次、送信用の１つまたは一連の「セル」を割り当てる。ネットワーク１０を通して転送される各セルは、ヘッダ部分およびデータ部分を含み、ヘッダ部分は、ネットワーク１０を通るセルの転送を制御する仮想回路識別子情報を、「メッセージ終了（ｅｎｄ  ｏｆ  ｍｅｓｓａｇｅ）」（「ＥＯＭ」）フラグなどのプロトコルおよび他の制御情報とともに含む。データ部分は、セル中で転送されるべきデータブロックからのデータを含む。各セルのデータ部分は、固定された所定の長さであり、１つの実施形態では４８バイトである。ソースコンピュータ１２（ｍS）は、ブロック中のデータの量が各セルのデータ部分のサイズの整数倍でない場合は、（１つのセルが転送されるデータブロックに対応する場合）セルのデータ部分にデータを埋め込み、または（転送されるデータブロックに対応するために複数のセルが必要な場合）シリーズ中の最後のセルにデータを埋め込み、最終セルのデータ部分が必要な長さを有することを確実にする。データブロックの転送に一連のセルが必要である場合、ソースコンピュータ１２（ｍS）は、一連のセルのデータ部分にあるデータが、転送中のデータブロックにあるデータの順序と一致するよう、セルを送信する。また、セルがデスティネーションコンピュータ１２（ｍD）に適切に転送された場合、デスティネーションコンピュータはセルを同じ順序で受信する。データブロックからの情報を含むシリーズの最終セルには、ヘッダ部分のメッセージ終了フラグがセットされ、それによってデスティネーションコンピュータ１２（ｍD）に、データブロックのデータを含むセルを全部受信したことが通知される。
【０００８】
本発明は、各コンピュータ１２（ｍ）が仮想回路を通じて通信する他のコンピュータの個々の１つに、その間の個々の仮想回路を通じて、情報の転送に関して選択された状態を通知することができる構成を提供する。ネットワーク１０に使用するシグナリング構成（signalling arrangement）に関する詳細な説明に進む前に、メッセージを生成し、その間に確立された１つまたは複数の仮想回路を通じて送信する２つのコンピュータ１２（ｍ′）および１２（ｍ″）の構造および動作について説明すると役立つであろう。ネットワーク上に確立された仮想回路は、通例、双方向である。つまりコンピュータ１２（ｍ′）および１２（ｍ″）のそれぞれが、その間に確立された各仮想回路上でメッセージを送受信できる。図２および図３は、コンピュータ１２（ｍ′）および１２（ｍ″）の機能ブロック図を示す。具体的には、図２は、コンピュータ１２（ｍ′）がソースコンピュータである仮想回路上で情報を送信する要素を詳細に示す、コンピュータ１２（ｍ′）の機能ブロック図であり、図３は、コンピュータ１２（ｍ″）がデスティネーションコンピュータである仮想回路上で情報を受信する要素を詳細に示す、コンピュータ１２（ｍ″）の機能ブロック図である。
【０００９】
図２を参照すると、コンピュータ１２（ｍ′）は、プロセッサ２０、システムメモリ２１、およびネットワークインタフェース２２を含み、全てが相互接続構成２３によって相互接続される。１つの実施形態では、相互接続構成２３は従来のＰＣＩバスを含む。コンピュータ１２（ｍ′）は、相互接続構成２３に接続された従来のマスストレージサブシステム（図示せず）も含んでよく、これにより、通例、プロセッサ２０が処理できる情報の長期記憶を提供する。マスストレージサブシステムは、情報を記憶したり、情報を検索したりすることができる、ディスクまたはテープサブシステムなどの装置、光ディスクストレージ装置およびＣＤ−ＲＯＭ装置を含む。マスストレージサブシステムは、オペレータが取り外し、設置できる取外し可能ストレージメディアを使用することができ、これによってオペレータはプログラムおよびデータをコンピュータ１２（ｍ′）にロードし、そこから処理済みデータを獲得することができる。
【００１０】
コンピュータ１２（ｍ′）は、通例、オペレータにコンピュータ１２（ｍ′）とのインタフェースを提供するオペレータの入出力サブシステムなど、相互接続構成２３に接続された従来の入出力サブシステム（図示せず）も含むことができる。特に、オペレータ入力サブシステムは、例えばキーボードおよびマウス装置を含み、オペレータはこれを使用して、処理するためにコンピュータ１２（ｍ′）に情報を対話式に入力することができる。また、オペレータ入力サブシステムは、オペレータがコンピュータ１２（ｍ′）を制御できるメカニズムを提供することができる。オペレータ出力サブシステムは、プロセッサ２０の制御下にあるコンピュータ１２（ｍ′）が処理の結果をオペレータに表示するビデオディスプレイ装置などの装置を含むことができる。また、プリンタを設けて、オペレータにハードコピー出力を提供することができる。
【００１１】
ネットワークインタフェース２２は、デスティネーションコンピュータ１２（ｍ′）として作動する他のコンピュータに転送されるべきデータをシステムメモリ２１から検索して、そこからセルを生成し、図１に関連して上述した通信リンク１３（ｐ）の１つを形成して、これに接続された通信リンク１３（ｐ′）を通して、生成したセルを転送する。また、ネットワークインタフェース２２は、図１に関連して上述した通信リンク１３（ｐ）の１つを形成する通信リンク１３（ｐ′）からセルを受信して、そこからデータを抜き出し、記憶するためにシステムメモリ２１の適切なバッファにデータを転送する。ネットワークインタフェース２２は、送信部２４、受信部２５、およびシステムインタフェース回路２６を含む幾つかのコンポーネントを含む。送信部２４は、図２で詳細に図示される。送信部２４は、システムインタフェース回路２６と協働し、相互接続構成２３を介してシステムメモリ２１から送信すべきデータを検索して、セルを生成し、これを通信リンク１３（ｐ）上で送信する。受信部２５は通信リンク１３（ｐ′）に接続され、これによって受信されるセルを受信し、受信したセルからデータをバッファに入れ、システムインタフェース回路２６と協働して、バッファに入れたデータを相互接続構成２３を介してシステムメモリ２１へと記憶用に転送する。１つの実施形態では、コンピュータ１２（ｍ′）に使用される受信部２５は、コンピュータ１２（ｍ″）に使用のものと同様で、これについては図３に関連して以下で述べる。１つの実施形態では、システムインタフェース回路２６がＤＭＡ（直接メモリアクセス）方法で作動し、送信部２４により送信するためにシステムメモリ２１からデータを検索し、受信部２５により受信したデータを記憶するためにシステムメモリ２１に転送する。システムインタフェース回路２３はまた、プロセッサ２０から制御情報を受信するよう作動して、送信部２４および受信部２５、さらにシステムインタフェース回路２６自体の動作を制御する種々の制御レジスタに記憶させる。本発明の１つの実施形態に使用するネットワークインタフェース２４の詳細な説明は、前述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許出願に記載されている。
【００１２】
プロセッサ２０は、オペレーティングシステムの制御下で１つまたは複数のアプリケーションプログラムを処理する。ネットワーク１０でのデータ転送に特に関連して、仮想回路を通じてメッセージを送信するソースコンピュータ１２（ｍ′S）としてコンピュータ１２（ｍ′）が作動する転送では、プロセッサ２０が仮想回路に関連する１つまたは複数の記述子（ｄｅｓｃｒｉｐｔｏｒ）３０を確立することができ、記述子はそれぞれが、１つの実施形態ではＣｏｍｐａｑ  Ｃｏｍｐｕｔｅｒ  Ｃｏｒｐ．、Ｉｎｔｅｌ  Ｃｏｒｐ．およびＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．が発行したＶｉｒｔｕａｌ  Ｉｎｔｅｒｆａｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ（「ＶＩＡ」）仕様第１版（１９９７年１２月１６日）に記載されるように、コンピュータ１２（ｍ″）に転送されるデータのブロックがロードされるシステムメモリ２１の１つまたは複数の送信データバッファ３１を識別する。また、仮想回路に関して記述子３０がシステムメモリ２１にロードされたことをネットワークインタフェース２２に通知するため、プロセッサ２０は、仮想回路に関する提供された「ドアベル（ｄｏｏｒ  ｂｅｌｌ）」通知メカニズムを使用して、システムメモリ２１内の記述子の位置を識別するそのポインタを含む記述子の情報を、送信部２４内に仮想回路用に維持された送信作業キュー３２にロードする。上述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許明細書に記載されたように、コンピュータ１２（ｍ′）は、複数の仮想回路を使用してデータを送信することができ、その１つまたは複数はコンピュータ１２（ｍ″）との間に確立され、送信部２４は各仮想回路の送信作業キュー３２を提供する。各作業キュー３２は、ゼロ以上の記述子のポインタ情報を（コンピュータ１２（ｍ′）に仮想回路を通じて送信すべきデータがない場合、作業キューはゼロ記述子へのポインタを含むことができる）、作業キュー３２内のポインタ情報によってポイントされる記述子全てとともに含むことができる。
【００１３】
送信部２４は、作業キュー３２に加えて、データ検索およびメッセージ生成回路２７を含む。データ検索およびメッセージ生成回路２７は、送信作業キュー３２内の記述子ポインタ情報を使用して、個々の仮想回路に関するプロセッサ２０がシステムメモリ２１内に記憶していた送信記述子３０を識別する。データ検索およびメッセージ生成回路２７によって、システムインタフェース２６は送信記述子３０から記述子情報を検索することができる。送信記述子３０に含まれた送信データバッファ３１に対するポインタを使用して、データ検索およびメッセージ生成回路２７は、システムインタフェース２６が個々の送信バッファ３１から送信されたデータを検索できるようにする。データ検索およびメッセージ生成回路２７は、システムインタフェース２６により検索したデータを受信し、そこからＡＴＭセルを生成して、これに接続された通信リンク１３（ｐ）でそれを送信し、それによって、コンピュータ１２（ｍ′）がソースコンピュータである個々の仮想回路を介した送信を実行する。本発明の１つの実施形態について様々な仮想回路のデータ検索およびセル送信のスケジューリングに関連して、データ検索およびメッセージ生成回路２７によって遂行される動作は、前述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許出願に記載されている。
【００１４】
コンピュータ１２（ｍ′）は、メッセージを送信および／または受信する各仮想回路に関連して、システムメモリ２１内に送信信号キュー３３および「Ｎ」個のメールボックス３４（０）から３４（Ｎ−１）（通例、参照番号３４（ｎ）で識別する）も含むことができ、その目的を以下で説明する。送信信号キュー３３は、それぞれメールボックスに関連する「Ｎ」個のエントリ３３（０）から３３（Ｎ−１）（通例、参照番号３３（ｎ）で識別する）のセットを含む。
【００１５】
コンピュータ１２（ｍ″）が情報を送信する１つまたは複数の仮想回路を通じて情報を送信し、受信するコンピュータ１２（ｍ″）の機能ブロック図を、図３に示す。図３を参照すると、コンピュータ１２（ｍ″）は、プロセッサ４０、システムメモリ４１、およびネットワークインタフェース４２を含み、全てが相互接続構成４３によって相互接続される。１つの実施形態では、相互接続構成４３は従来のＰＣＩバスを含む。コンピュータ１２（ｍ″）は、相互接続構成４３に接続された従来のマスストレージサブシステム（図示せず）も含んでよく、これによって、通例、プロセッサ４０により処理できる情報の長期記憶を提供する。マスストレージサブシステムは、情報を記憶したり、情報を検索したりすることができる、ディスクまたはテープサブシステムなどの装置、光ディスクストレージ装置およびＣＤ−ＲＯＭ装置を含む。マスストレージサブシステムは、オペレータが取り出し、挿入可能なリムーバブルストレージメディアを使用することができ、これによってオペレータはプログラムおよびデータをコンピュータ１２（ｍ″）にロードし、そこから処理済みデータを獲得することができる。
【００１６】
コンピュータ１２（ｍ″）は、通例、オペレータにコンピュータ１２（ｍ″）とのインタフェースを提供するオペレータの入出力サブシステムなど、相互接続構成４３に接続された従来の入出力サブシステム（図示せず）も含むことができる。特に、オペレータ入力サブシステムは、例えばキーボードおよびマウス装置を含み、オペレータはこれを使用して、処理するためにコンピュータ１２（ｍ″）に情報を対話式に入力することができる。また、オペレータ入力サブシステムは、オペレータがコンピュータ１２（ｍ″）を制御できるメカニズムを提供することができる。オペレータ出力サブシステムは、プロセッサ４０の制御下にあるコンピュータ１２（ｍ″）が処理の結果をオペレータに表示するビデオディスプレイ装置などの装置を含むことができる。また、プリンタを設けて、オペレータにハードコピー出力を提供することができる。
【００１７】
ネットワークインタフェース４２は、デスティネーションコンピュータ１２（ｍ″D）として作動する他のコンピュータに転送されるべきデータをシステムメモリ４１から検索して、そこからセルを生成し、通信リンク１３（ｐ″）を通して、生成したセルを転送する。通信リンク１３（Ｐ″）は図１に関連して上述した通信リンク１３（ｐ）の１つを形成して、これに接続されている。また、ネットワークインタフェース４２は、通信リンク１３（ｐ″）からセルを受信して、そこからデータを抜き出し、記憶するためにシステムメモリ４１の適切なバッファにデータを転送する。ネットワークインタフェース４２は、受信部４４、送信部４５、およびシステムインタフェース回路４６を含む幾つかのコンポーネントを含む。１つの実施形態では、送信部４５は図２に関連して上述した送信部２４と同様のものである。送信部４５は、システムインタフェース回路４６と協働し、相互接続構成４３上でシステムメモリ４１から送信すべきデータを検索して、セルを生成し、これを通信リンク１３（ｐ″）上で送信する。受信部４４は通信リンク１３（ｐ″）に接続され、これによって受信されるセルを受信し、受信したセルからデータをバッファに入れ、システムインタフェース回路４６と協働して、バッファに入れたデータを相互接続構成４３によってシステムメモリ４１へと記憶用に転送する。１つの実施形態では、システムインタフェース回路４６がＤＭＡ（直接メモリアクセス）方法で作動し、送信部４５で送信するためにシステムメモリ４１からデータを検索して、受信部４４により受信したデータを記憶するためにシステムメモリ４１に転送する。システムインタフェース回路４３はまた、送信部４５および受信部４４、さらにシステムインタフェース回路４６自体の動作を制御する種々の制御レジスタに記憶させるため、プロセッサ４０から制御情報を受信するよう作動する。本発明の１つの実施形態に使用するネットワークインタフェース４５の詳細な説明は、前述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許出願に記載されている。
【００１８】
プロセッサ４０は、オペレーティングシステムの制御下で１つまたは複数のアプリケーションプログラムを処理する。ネットワーク１０でのデータ転送に特に関連して、仮想回路を通じてメッセージを受信するデスティネーションコンピュータとしてコンピュータ１２（ｍ″）が作動する転送では、プロセッサ４０が仮想回路に関連する１つまたは複数の記述子５０を確立することができ、記述子はそれぞれが、１つの実施形態では上記で参照したＶＩＡ仕様に記載されるように、仮想回路を通じて受信部４４が受信するメッセージからのデータがロードされるシステムメモリ４１の１つまたは複数の受信データバッファ５１を識別する。また、仮想回路のため受信記述子５０がシステムメモリ４１にロードされたことをネットワークインタフェース４２に通知するため、プロセッサ４０は、仮想回路に関する提供された「ドアベル」通知メカニズムを使用して、システムメモリ４１内の記述子の位置を識別するそのポインタを含め、記述子の情報を、受信部４４に仮想回路用に維持された受信作業キュー５２にロードする。上述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許出願に記載されたように、コンピュータ１２（ｍ″）は、複数の仮想回路を使用してデータを受信することができ、その１つまたは複数はコンピュータ１２（ｍ″）との間に確立され、受信部４４は各仮想回路の受信作業キュー５２を提供する。各作業キュー５２は、ゼロ以上の記述子のポインタ情報を、受信作業キュー５２内のポインタ情報によってポイントされる記述子全てとともに含むことができる。
【００１９】
受信部４４は、作業キュー５２に加えて、メッセージレシーバおよびデータプロセッサ回路４７を含む。メッセージレシーバおよびデータプロセッサ回路は、コンピュータ１２（ｍ″）がデスティネーションコンピュータである種々の仮想回路に関連したセルを受信し、そこからデータを抜き出す。メッセージレシーバおよびデータプロセッサ回路４７は、受信作業キュー５２内の記述子ポインタ情報も使用して、個々の仮想回路に関してプロセッサ４０がシステムメモリ４１に記憶した受信識別子５０を識別する。メッセージレシーバおよびデータプロセッサ回路４７により、システムインタフェース４６は受信記述子５０から記述子情報を検索することができる。受信記述子５０に含まれた状態の受信データバッファ５１へのポインタを使用して、メッセージレシーバおよびデータプロセッサ回路４７は、交替で、システムインタフェース４６が受信データを個々の受信バッファ５１に転送できるようにする。本発明の１つの実施形態について様々な仮想回路のデータ転送のスケジューリングに関連して、メッセージレシーバおよびデータプロセッサ回路４７によって遂行される動作は、前述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許出願に記載されている。
【００２０】
コンピュータ１２（ｍ″）は、メッセージを送信および／または受信する各仮想回路に関連して、システムメモリ４１内の「Ｎ」個のメールボックス５４（０）から５４（Ｎ−１）（通例、参照番号５４（ｎ）で識別する）のセット、メールボックス５４（０）をポイントするメールボックスベースアドレスポインタ５３、およびメールボックス割込イネーブルフラグ５５のセットも含むことができ、各メールボックス割込イネーブルフラグはメールボックス５４（ｎ）の１つと関連する。コンピュータ１２（ｍ″）によって提供される各メールボックス５４（ｎ）は、コンピュータ１２（ｍ′）によって提供される対応インデックス送信信号（correspondingly-indexed transmit signal）キューエントリ３３（ｎ）に関連する。上述したように、１つの実施形態では、コンピュータ１２（ｍ″）の送信部４５はコンピュータ１２（ｍ′）の送信部２４と同様であり、したがってコンピュータ１２（ｍ″）の送信部４５は、コンピュータ１２（ｍ′）によって提供されたメールボックス３４（ｎ）の１つとそれぞれ関連する複数のエントリを含む送信信号キューも含む。さらに上述したように、１つの実施形態では、コンピュータ１２（ｍ′）の受信部２５は、コンピュータ１２（ｍ″）の受信部４４と同様であり、したがってコンピュータ１２（ｍ′）の受信部２５は、メールボックスベースアドレスポインタおよびメールボックス割込イネーブルフラグのセットも含む。
【００２１】
本発明によると、メールボックス３４（ｎ）、５４（ｎ）および関連するコンポーネント（つまり送信信号キュー、メールボックスベースアドレスポインタおよびメールボックス割込イネーブルフラグ）は、各コンピュータ１２（ｍ′）、１２（ｍ″）が他方のコンピュータ１２（ｍ″）、１２（ｍ′）に、個々の仮想回路を通じてのメッセージ転送に関連して選択された状態を通知することができるメカニズムを提供する。例えば、メールボックス３４（ｎ）、５４（ｎ）および関連するコンポーネントは、各コンピュータ１２（ｍ′）、１２（ｍ″）が他方のコンピュータ１２（ｍ″）、１２（ｍ′）に、それ（つまりコンピュータ１２（ｍ′）、１２（ｍ″））が１つまたは複数の追加受信バッファ５１を提供して、仮想回路を通じて他方のコンピュータ１２（ｍ″）、１２（ｍ′）が送信したデータに対応したタイミングを通知できるメカニズムを提供する。また、メールボックス３４（ｎ）、５４（ｎ）および関連するコンポーネントは、各コンピュータ１２（ｍ′）、１２（ｍ″）が、仮想回路を通じて他方のコンピュータ１２（ｍ″）、１２（ｍ′）が送信したメッセージの受信を知ることができるメカニズムを提供する。メールボックス３４（ｎ）、５４（ｎ）および関連するコンポーネントを使用して対応することができる他の状態は、当業者には明白である。
【００２２】
これを達成するため、各コンピュータは、仮想回路を通じてメッセージを送信することにより他のコンピュータに選択した状態の通知を提供することができ、これは本明細書中でシグナリングメッセージとして識別され、この通知は、メールボックスのうちその状態に関連する１つを識別し、識別されたメールボックスにロードされたデータを含む。したがって、コンピュータ１２（ｍ′）が、１つまたは複数の追加の受信バッファを提供したことを他のコンピュータ１２（ｍ″）に通知しようとする場合は、特定の状態（つまり受信バッファの追加）に関連するメールボックス（ｎ）の識別を含み、追加バッファの数またはサイズに関する情報を含むシグナリングメッセージを生成し、シグナリングメッセージを仮想回路を通じてコンピュータ１２（ｍ″）に送信することができる。コンピュータ１２（ｍ″）のプロセッサ２０は、データ検索およびメッセージ生成回路２７が、送信信号キュー３３内の信号メッセージ送信イネーブル通知を仮想回路に関連する送信部２４にロードすることによって、シグナリングメッセージを生成して送信できるようにし、信号メッセージ送信イネーブル通知は、シグナリングメッセージで送信される情報、および情報がロードされるメールボックス５４（ｎ）の識別を含む。
【００２３】
特に、コンピュータ１２（ｍ″）のメールボックス５４（ｎ）のシグナリングメッセージを生成できるようにするため、コンピュータ１２（ｍ′）のプロセッサ２０は、信号メッセージ送信イネーブル通知を、その（つまりコンピュータ１２（ｍ′）等の）送信部２４の送信信号キュー３３の対応インデックス（correspondingly-indexed）エントリ３３（ｎ）にロードする。１つの実施形態では、情報およびメールボックス識別は、１つのＡＴＭセルに収容することができる。データ検索およびメッセージ生成回路２７は、信号メッセージ送信イネーブル通知を検索し、それに対応してシグナリングメッセージを生成し、それを仮想回路を通じて送信する。さらに１つの実施形態では、仮想回路に関連する送信信号キューのエントリ３３（ｎ）が、仮想回路のシグナリングメッセージの送信を可能にする信号メッセージ送信イネーブル通知を含む場合、データ検索およびメッセージ生成回路２７は、概して、送信作業キュー３２内の仮想回路の記述子ポインタ情報を処理する前に、その通知の信号メッセージを生成して送信し、したがって、各仮想回路にとって、仮想回路に送信されるシグナリングメッセージは、通例、仮想回路に送信される他のメッセージより高いスケジューリングの優先権を有する。
【００２４】
コンピュータ１２（ｍ″）、特にそのメッセージレシーバおよびデータプロセッサ４７は、シグナリングメッセージを受信し、メッセージのメールボックス識別から、メッセージの情報を格納すべき特定のメールボックス５４（ｎ）を識別して、システムインタフェース４６がシステムメモリ２１のメールボックス５４（ｎ）に情報を格納できるようにする。シグナリングメッセージのメールボックス識別は、仮想回路に関連するメールボックスへのオフセットの形態であり、メッセージレシーバおよびデータプロセッサ４７は、メールボックスベースアドレスポインタ５３およびオフセットを使用して、識別されたメールボックス５４（ｎ）を備えるシステムメモリ４１の特定の位置を識別する。また、複数のメールボックス割込イネーブルフラグ５４に１つのメールボックス割込イネーブルフラグがセットされると、メッセージレシーバおよびデータプロセッサ４７は、システムインタフェース４６がプロセッサ４０に割り込み、それ（つまりプロセッサ）に情報がメールボックス５４（ｎ）にロードされたことを通知できるようにする。プロセッサ４０は、割込通知に応答して、例えば仮想回路を通じてデータを受信するために、コンピュータ１２（ｍ′）が提供した追加バッファのことを処理中のアプリケーションプログラムに通知するなど、所定の動作を遂行することができ、アプリケーションプログラムは、これに応答して、例えば個々の送信バッファに、コンピュータ１２（ｍ′）に送信される追加データを提供し、必要に応じて追加の送信記述子も提供することができる。
【００２５】
コンピュータ１２（ｍ″）がコンピュータ１２（ｍ′）に送信するシグナリングメッセージの生成、転送および受信に関連して、コンピュータ１２（ｍ″）およびコンピュータ１２（ｍ′）が対応する動作を遂行できることが理解される。また、シグナリングメッセージで受信した情報に関連して、特定のコンピュータ１２（ｍ′）、１２（ｍ″）が遂行する特定の動作は、情報がロードされる個々のメールボックスに関連する特定の状態に依存することが理解される。例えば、メッセージ受信の応答または否定応答の通知を提供するため使用するメールボックスについては、メールボックスにロードされた情報が、メッセージがデスティネーションコンピュータに到達していないか、メッセージ中のデータが誤って転送されたために、メッセージが適切に受信されていないことを指示すると、このような通知を受信したコンピュータ１２（ｍ′）、１２（ｍ″）が不適切に受信したメッセージを再送することができる。
【００２６】
本発明は幾つかの利点を提供する。特に、特定の仮想回路を通じてメッセージを受信する各コンピュータが、メッセージ送信側のコンピュータに、仮想回路を通じてのメッセージ送信に関連して選択された状態を通知する構成を提供する。
【００２７】
また、個々のネットワークインタフェース２２、４２の送信部２４、４４に様々な仮想回路の送信信号キュー３３を提供することにより、データ検索およびメッセージ生成回路は、シグナリングメッセージの送信時に、個々のシステムメモリ２１、４１から情報を検索する必要がないことが理解される。これにより、ネットワークインタフェース２２、４２が実行する必要があるメモリアクセス数が減少し、シグナリングをより高速かつ効率的に処理し、送信することができる。
【００２８】
上述したように、ネットワーク１０およびコンピュータ１２（ｍ）には幾つかの修正ができることが理解される。例えば、本発明に関連するネットワーク１０は、例えば２つのコンピュータ１２（ｍ）のネットワークインタフェース２２、４２を相互接続し、その間でデータを転送する仮想回路を確立できるようにすることによって、スイッチングノード１１（ｎ）を必要とせずに、複数のコンピュータ１２（ｍ）を相互接続して構築できることが理解される。また、ネットワーク１０を他のネットワークと接続するため、ゲートウェイ、ブリッジなど、他のタイプのコンポーネントを設けてもよく、コンピュータ１２（ｍ）に関連して上述したのと同様の方法で、メッセージのソースおよび／またはデスティネーションとしてマスストレージシステムなどの他のタイプの装置をネットワークに接続できることが理解される。さらに、コンピュータ１２（ｍ′）、１２（ｍ″）は、前述したＧｕｔｉｅｒｒｅｚ他およびＣｌａｙｔｏｎ他の特許出願で記載されているのとは異なるネットワークインタフェースを使用することができる。
【００２９】
さらに、コンピュータ１２（ｍ′）、１２（ｍ″）は、各仮想回路に設けた対応インデックス（correspondingly-indexed）メールボックス５４（ｎ）に関連する送信信号キュー３３内に１つのエントリ３３（ｎ）を提供するよう記載されているが、コンピュータは複数のこのようなエントリ３３（ｎ）（１）．．．３３（ｎ）（Ｍ）（通例、参照数字３３（ｎ）（ｍ）で識別する）を提供することができ、全てメールボックス５４（ｎ）と関連し、従来のスケジューリング方法を使用して、そのメールボックス５４（ｎ）に転送されるべき情報を受信できることが理解される。メールボックス５４（ｎ）に関連して１つのエントリ３３（ｎ）を設ける実施形態では、送信部２４が以前に提供した状態情報を送信する前に、プロセッサ２０がメールボックス５４（ｎ）に更新状態情報を送信しようとする場合、プロセッサ２０は、送信信号キュー３３内の関連するエントリ３３（ｎ）にある情報に更新状態情報を上書きするだけでよい。この場合、送信部２４がシグナリングメッセージで更新状態情報を送信すると、メールボックス５４（ｎ）に配布される情報は、プロセッサ４０が以前に提供された状態情報を検索できる前に、以前に提供された状態情報およびその後に提供された状態情報を含む２つのシグナリングメッセージから状態情報をメールボックス５４（ｎ）にロードした場合に、プロセッサ４０が受信するような情報を含む。これは、シグナリングメッセージを使用して状態情報を転送するためにネットワークインタフェース２２、４２内に設けたメカニズムを単純化する働きをし、また、プロセッサ２０、４０によって提供された状態情報の各項目にシグナリングメッセージが必要である場合に必要とされるようなシグナリングメッセージの数を減少させることができる。
【００３０】
また、本発明は、送信信号キュー３３を利用して、シグナリングメッセージに使用する情報を提供するよう記載されているが、シグナリングメッセージに使用する情報は、代替的または追加的に、概して個々の仮想回路を通じてデータを転送するのに使用されるのと同様の方法で、送信データバッファ３１に設けて、送信記述子３０でポイントしてもよい。この場合、個々の送信記述子３０は、送信データバッファ３１にある情報を、コンピュータのメールボックスが情報を受信するためのものとして識別する。情報がロードされる特定のメールボックスは、記述子中でも、または送信データバッファに含まれるデータ中でも識別することができる。
【００３１】
また、本発明は、ＡＴＭセルを使用するデータの転送に関して記載されているが、他のデータ転送方法を使用してもよいことが理解される。
【００３２】
本発明によるシステムは、全体的に、または部分的に、特殊目的のハードウェアまたは汎用コンピュータシステム、あるいはその任意の組合せで構築し、その任意の部分を適切なプログラムで制御することができる。いずれのプログラムも、全体的に、または部分的に、従来の方法でシステムの一部を備えるか、システムに格納され、あるいは従来の方法で情報を転送するために、全体的に、または部分的にネットワークを通じてシステムに提供することができる。また、システムは、オペレータがシステムに直接接続するか、ネットワークまたは従来の方法で情報を転送する他のメカニズムでシステムに情報を転送するオペレータ入力要素（図示せず）を使用することにより提供した情報によって動作したり、他の方法で制御したりしてもよいことが理解される。
【００３３】
以上の記述は、本発明の特定の実施形態に制限されていた。しかし、本発明には様々な変更および修正が可能であり、本発明の利点の一部または全部を達成することができる。以上およびこのような他の変更および修正を本発明の真の精神および範囲に入るものとして扱うことが、添付の特許請求の範囲の目的である。
【００３４】
なお、本願特許請求の範囲は新規なもので、米国特許証による保護を求めるものである。
【図面の簡単な説明】
本発明は、添付の特許請求の範囲で詳細に指摘されている。本発明の上記およびさらなる利点は、以下の記述を添付図面と組み合わせて考察することにより、さらによく理解することができる。
【図１】  本発明により、仮想回路に関する受信側装置における状態を表す情報を転送するシステムおよび方法を実現するコンピュータネットワークを概略的に示す。
【図２】  図１で描かれたコンピュータネットワークに使用するコンピュータの機能ブロック図である。
【図３】  図１で描かれたコンピュータネットワークに使用するコンピュータの機能ブロック図である。
【図１】
0004365028.tif 000002
【図２】
0004365028.tif 000003
【図３】
0004365028.tif 000004