JPH08180001A - 通信方式及び通信方法及びネットワークインタフェース - Google Patents
通信方式及び通信方法及びネットワークインタフェースInfo
- Publication number
- JPH08180001A JPH08180001A JP8267395A JP8267395A JPH08180001A JP H08180001 A JPH08180001 A JP H08180001A JP 8267395 A JP8267395 A JP 8267395A JP 8267395 A JP8267395 A JP 8267395A JP H08180001 A JPH08180001 A JP H08180001A
- Authority
- JP
- Japan
- Prior art keywords
- message
- computer
- address
- receiving computer
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5614—User Network Interface
- H04L2012/5616—Terminal equipment, e.g. codecs, synch.
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5652—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
(57)【要約】
【目的】 ダイレクト・デポジット・メッセージを用い
るマルチユーザ・コンピュータのネットワークにおい
て、保護機構を伴うオーバヘッドの低い通信のためのネ
ットワークプロトコルとインタフェースを供給する。 【構成】 送信側コンピュータ270は、制御情報とデ
ータからなるメッセージを作成する。センドコマンド1
01は、コネクション識別子、データのアドレス、制御
情報、送るデータの量を含む。このメッセージは、エン
ドポイント66からネットワークに直接送出される。受
信側コンピュータ272において、ネットワークからメ
ッセージをネットワークインタフェースに取り出し、ネ
ットワークインタフェースは、メッセージを分離しエン
ドポイント79に直接データをおき、場合によってはプ
ロセッサに割り込みをかける。
るマルチユーザ・コンピュータのネットワークにおい
て、保護機構を伴うオーバヘッドの低い通信のためのネ
ットワークプロトコルとインタフェースを供給する。 【構成】 送信側コンピュータ270は、制御情報とデ
ータからなるメッセージを作成する。センドコマンド1
01は、コネクション識別子、データのアドレス、制御
情報、送るデータの量を含む。このメッセージは、エン
ドポイント66からネットワークに直接送出される。受
信側コンピュータ272において、ネットワークからメ
ッセージをネットワークインタフェースに取り出し、ネ
ットワークインタフェースは、メッセージを分離しエン
ドポイント79に直接データをおき、場合によってはプ
ロセッサに割り込みをかける。
Description
【0001】
【産業上の利用分野】この発明は、コンピュータ・ネッ
トワークインタフェースとプロトコルとさらに特に低い
オーバヘッドの通信のためのインタフェースとプロトコ
ルに関するものである。この発明は、特に、非同期転送
方式(ATM)ネットワークとローカル・エリア・ネッ
トワーク(LAN)に適用できる。
トワークインタフェースとプロトコルとさらに特に低い
オーバヘッドの通信のためのインタフェースとプロトコ
ルに関するものである。この発明は、特に、非同期転送
方式(ATM)ネットワークとローカル・エリア・ネッ
トワーク(LAN)に適用できる。
【0002】
従来例1.通信システムは、現代のコンピュータシステ
ムの重要な部門である。通信のためのオーバヘッドが、
このような通信システムにとって基本的な特徴となる。
低いオーバヘッドの通信(以下に定義するように、ホス
トコンピュータに対して、少ない遅延時間と低い影響の
通信)は、並列、分散、リアルタイム・コンピュータ・
システムにおいて特に重要である。
ムの重要な部門である。通信のためのオーバヘッドが、
このような通信システムにとって基本的な特徴となる。
低いオーバヘッドの通信(以下に定義するように、ホス
トコンピュータに対して、少ない遅延時間と低い影響の
通信)は、並列、分散、リアルタイム・コンピュータ・
システムにおいて特に重要である。
【0003】一般に、二つの基本的な特性が、コミュニ
ケーション・システムにおけるオーバヘッドの要因とな
る。第一はデータの受け渡しであり、第二はメッセージ
アクションである。特に、データの受け渡しには、受信
側コンピュータのアドレス指定が必要であり、メッセー
ジアクションには、受信側コンピュータでメッセージア
クションを引き起こすための割り込みが必要である。こ
のように、通信は、データ受け渡しと、メッセージアク
ションを伴う。データ受け渡しは、送信側コンピュータ
から受信側コンピュータにデータを転送する場合に起き
る。メッセージアクションは、受信側コンピュータにデ
ータが到着するとき、例えば、同期化のような、ある特
別なアクションを伴う。メッセージアクションは受信側
コンピュータのプロセッサに割り込みを要求する。
ケーション・システムにおけるオーバヘッドの要因とな
る。第一はデータの受け渡しであり、第二はメッセージ
アクションである。特に、データの受け渡しには、受信
側コンピュータのアドレス指定が必要であり、メッセー
ジアクションには、受信側コンピュータでメッセージア
クションを引き起こすための割り込みが必要である。こ
のように、通信は、データ受け渡しと、メッセージアク
ションを伴う。データ受け渡しは、送信側コンピュータ
から受信側コンピュータにデータを転送する場合に起き
る。メッセージアクションは、受信側コンピュータにデ
ータが到着するとき、例えば、同期化のような、ある特
別なアクションを伴う。メッセージアクションは受信側
コンピュータのプロセッサに割り込みを要求する。
【0004】通信システムは送信側コンピュータと受信
側コンピュータのどちらに負荷を分担させるかによって
分類できる。レシーバ・ベースド・システムでは、デー
タ受け渡しとメッセージアクションをコントロールする
情報は受信側コンピュータに置かれている。反対に、セ
ンダ・ベースド・システムでは、送信側コンピュータ
が、データ受け渡しとメッセージアクションを制御する
ために、それぞれのメッセージに情報を記載すること
で、送信側コンピュータがより直接的な役割を果たす。
この場合、データ受け渡しのためのキーとなる情報は、
データの着アドレスである。レシーバ・ベースド・アド
レッシングにおいて、送信側コンピュータは、メッセー
ジを置く最終アドレスに直接メッセージを入力すること
はできない。即ち、送信側コンピュータは受信側コンピ
ュータのバッファを指定することができるが、受信側コ
ンピュータは例えばポインタに順序づけをすることによ
って、送信側コンピュータにはわからない位置に自動的
にメッセージが記憶される。これに対し、センダ・ベー
スド・アドレッシングでは、メッセージを記憶する受信
側コンピュータのアドレスを、それぞれのメッセージに
送信側コンピュータが直接指定することができる。セン
ダ・ベースド・アドレッシングに比べ、レシーバ・ベー
スド・アドレッシングは、かなりのオーバヘッドを生ず
る。しかしながら、センダ・ベースド・アドレッシング
には保護の問題が発生する。
側コンピュータのどちらに負荷を分担させるかによって
分類できる。レシーバ・ベースド・システムでは、デー
タ受け渡しとメッセージアクションをコントロールする
情報は受信側コンピュータに置かれている。反対に、セ
ンダ・ベースド・システムでは、送信側コンピュータ
が、データ受け渡しとメッセージアクションを制御する
ために、それぞれのメッセージに情報を記載すること
で、送信側コンピュータがより直接的な役割を果たす。
この場合、データ受け渡しのためのキーとなる情報は、
データの着アドレスである。レシーバ・ベースド・アド
レッシングにおいて、送信側コンピュータは、メッセー
ジを置く最終アドレスに直接メッセージを入力すること
はできない。即ち、送信側コンピュータは受信側コンピ
ュータのバッファを指定することができるが、受信側コ
ンピュータは例えばポインタに順序づけをすることによ
って、送信側コンピュータにはわからない位置に自動的
にメッセージが記憶される。これに対し、センダ・ベー
スド・アドレッシングでは、メッセージを記憶する受信
側コンピュータのアドレスを、それぞれのメッセージに
送信側コンピュータが直接指定することができる。セン
ダ・ベースド・アドレッシングに比べ、レシーバ・ベー
スド・アドレッシングは、かなりのオーバヘッドを生ず
る。しかしながら、センダ・ベースド・アドレッシング
には保護の問題が発生する。
【0005】メッセージアクションのためのキーとなる
情報は、メッセージの到着に際し、割り込みを発生する
かどうかという情報である。レシーバ・ベースド・イン
ターラプトを用いたシステムの場合、メッセージの到着
毎に、受信側コンピュータが割り込みを発生させる。セ
ンダ・ベースド・インターラプトを用いたシステムの場
合、そのメッセージの到着によって割り込みを発生させ
るかどうかという情報が、送信側コンピュータによっ
て、それぞれのメッセージに書きこまれる。
情報は、メッセージの到着に際し、割り込みを発生する
かどうかという情報である。レシーバ・ベースド・イン
ターラプトを用いたシステムの場合、メッセージの到着
毎に、受信側コンピュータが割り込みを発生させる。セ
ンダ・ベースド・インターラプトを用いたシステムの場
合、そのメッセージの到着によって割り込みを発生させ
るかどうかという情報が、送信側コンピュータによっ
て、それぞれのメッセージに書きこまれる。
【0006】従来の通信システムの多くは、例えばイン
ターネット・プロトコルを使用するイーサーネット・ネ
ットワークのような、レシーバ・ベースド・システムで
ある。同様に、多くの開放的でかつ公共的なローカル・
エリア・ネットワーク(LAN)の多くは、この種のプ
ロトコルを用いている。
ターネット・プロトコルを使用するイーサーネット・ネ
ットワークのような、レシーバ・ベースド・システムで
ある。同様に、多くの開放的でかつ公共的なローカル・
エリア・ネットワーク(LAN)の多くは、この種のプ
ロトコルを用いている。
【0007】図13に第一のコンピュータ(以後、送信
側コンピュータと呼ぶ)50と第2のコンピュータ(以
後、受信側コンピュータと呼ぶ)52を含む典型的なコ
ンピュータシステムを示す。送信側コンピュータと受信
側コンピュータは、どちらが50でも52でもよい。送
信側コンピュータ50と受信側コンピュータ52は、そ
れぞれのネットワークインタフェース84と86を介し
てネットワークにより相互に連結される。図13には2
台のコンピュータ(即ち、送信側コンピュータ50と受
信側コンピュータ52)が示されているが、システムは
2台と限らない。複数の送信側コンピュータと1台の受
信側コンピュータ、或いは1台の送信側コンピュータと
複数の受信側コンピュータ、或いは複数の送信側コンピ
ュータと複数の受信側コンピュータでも良い。また、そ
れぞれのコンピュータは相互に連結させたプロセッサか
ら構成されていても良い。すなわち、送信側コンピュー
タと受信側コンピュータは、1台の並列コンピュータの
ように単一のコンピュータ内の相互に連結されたプロセ
ッサから構成されている場合でもかまわない。以下で使
われるノードという言葉は、送信側コンピュータまたは
受信側コンピュータのいずれかを意味する。また各ノー
ドは、他のノードとは別の独立したそれ自身の仮想アド
レス空間を持つと仮定する。即ち、ノードは仮想メモリ
を持つと仮定する。
側コンピュータと呼ぶ)50と第2のコンピュータ(以
後、受信側コンピュータと呼ぶ)52を含む典型的なコ
ンピュータシステムを示す。送信側コンピュータと受信
側コンピュータは、どちらが50でも52でもよい。送
信側コンピュータ50と受信側コンピュータ52は、そ
れぞれのネットワークインタフェース84と86を介し
てネットワークにより相互に連結される。図13には2
台のコンピュータ(即ち、送信側コンピュータ50と受
信側コンピュータ52)が示されているが、システムは
2台と限らない。複数の送信側コンピュータと1台の受
信側コンピュータ、或いは1台の送信側コンピュータと
複数の受信側コンピュータ、或いは複数の送信側コンピ
ュータと複数の受信側コンピュータでも良い。また、そ
れぞれのコンピュータは相互に連結させたプロセッサか
ら構成されていても良い。すなわち、送信側コンピュー
タと受信側コンピュータは、1台の並列コンピュータの
ように単一のコンピュータ内の相互に連結されたプロセ
ッサから構成されている場合でもかまわない。以下で使
われるノードという言葉は、送信側コンピュータまたは
受信側コンピュータのいずれかを意味する。また各ノー
ドは、他のノードとは別の独立したそれ自身の仮想アド
レス空間を持つと仮定する。即ち、ノードは仮想メモリ
を持つと仮定する。
【0008】ネットワークは、複数の独立したユーザに
よって使われる可能性がある。各ノードは、1以上の複
数のユーザにより使われるかもしれない。そのため、あ
るユーザのプロセスを他のユーザが事故或いは悪意によ
り妨害することに対して保護する典型的な保護機構が用
意されている。例を次にあげる。 1)他のユーザへの権限のないメッセージの送信を防
ぐ。 2)他のユーザのメモリへの許可のないアクセスを防
ぐ。 3)受信側コンピュータに対して許可されたユーザのふ
りをしてアクセスしてくるものを排除する。 これらの保護機構は、複数のユーザを相互に連結する標
準的な拡張性のあるネットワークにふつう見られる。こ
れらの保護機構は、閉じた専有のネットワークにはあま
り見られない。
よって使われる可能性がある。各ノードは、1以上の複
数のユーザにより使われるかもしれない。そのため、あ
るユーザのプロセスを他のユーザが事故或いは悪意によ
り妨害することに対して保護する典型的な保護機構が用
意されている。例を次にあげる。 1)他のユーザへの権限のないメッセージの送信を防
ぐ。 2)他のユーザのメモリへの許可のないアクセスを防
ぐ。 3)受信側コンピュータに対して許可されたユーザのふ
りをしてアクセスしてくるものを排除する。 これらの保護機構は、複数のユーザを相互に連結する標
準的な拡張性のあるネットワークにふつう見られる。こ
れらの保護機構は、閉じた専有のネットワークにはあま
り見られない。
【0009】送信側コンピュータ50は、プロセッサ5
4を含む。プロセッサ54は、ネットワークインタフェ
ース84に接続され、所望のオペレーティングシステム
56に適合するようにプログラムされている。オペレー
ティングシステム56は、メモリ、プロセッサ・タイ
ム、ネットワーク・アクセスのようなノード資源を管理
し、アプリケーションからの要求を調停し保護する。ま
た、オペレーティングシステム56は、図13のアプリ
ケーション58と60とプロセッサ54のようなアプリ
ケーション間の相互作用を制御する。オペレーティング
システム56は、メッセージバッファ62と64を有し
ている。メッセージバッファ62と64は、受信側コン
ピュータ52へネットワークインタフェース84を介し
てメッセージを送るために使われる。各アプリケーショ
ン58、60は、それぞれメモリ66と68を用いて動
作する。メモリ66と68は、エンドポイント・バッフ
ァあるいは単にエンドポイントと呼ばれる。同様に、受
信側コンピュータ52は、ネットワークインタフェース
86に接続されたプロセッサ70を含む。プロセッサ7
0は、図13に図示したように、所望のオペレーティン
グシステム72に適合するようにプログラムされてい
る。
4を含む。プロセッサ54は、ネットワークインタフェ
ース84に接続され、所望のオペレーティングシステム
56に適合するようにプログラムされている。オペレー
ティングシステム56は、メモリ、プロセッサ・タイ
ム、ネットワーク・アクセスのようなノード資源を管理
し、アプリケーションからの要求を調停し保護する。ま
た、オペレーティングシステム56は、図13のアプリ
ケーション58と60とプロセッサ54のようなアプリ
ケーション間の相互作用を制御する。オペレーティング
システム56は、メッセージバッファ62と64を有し
ている。メッセージバッファ62と64は、受信側コン
ピュータ52へネットワークインタフェース84を介し
てメッセージを送るために使われる。各アプリケーショ
ン58、60は、それぞれメモリ66と68を用いて動
作する。メモリ66と68は、エンドポイント・バッフ
ァあるいは単にエンドポイントと呼ばれる。同様に、受
信側コンピュータ52は、ネットワークインタフェース
86に接続されたプロセッサ70を含む。プロセッサ7
0は、図13に図示したように、所望のオペレーティン
グシステム72に適合するようにプログラムされてい
る。
【0010】オペレーティングシステム72と受信側コ
ンピュータ52は、同じように送信側コンピュータ50
に対するメッセージバッファ74と76を含む。アプリ
ケーション78と80も又メモリポーション79と81
に関連付けられている。メモリポーション79と81
は、エンドポイントバッファあるいは単にエンドポイン
トと呼ぶ。一般的に送信側コンピュータあるいは受信側
コンピュータは、ネットワーク・コプロセッサ或いは他
のコプロセッサのような、その他のプロセッサを含むか
もしれない。曖昧さをなくすために、プロセッサ54と
70はこれより”ホストプロセッサ”と呼ぶことにす
る。従来のシステムにおけるメッセージ83はヘッダを
含む。ヘッダはネットワーク82とネットワークインタ
フェース84,86により適切なノードとエンドポイン
トにメッセージを導くために使われる。送信側コンピュ
ータ50と受信側コンピュータ52におけるアプリケー
ション(例えば58)は、ネットワーク82を介してお
互いにメッセージを送ることにより通信する。メッセー
ジは、プロシージャーコールを含むどのようなデータで
も送ることができる。
ンピュータ52は、同じように送信側コンピュータ50
に対するメッセージバッファ74と76を含む。アプリ
ケーション78と80も又メモリポーション79と81
に関連付けられている。メモリポーション79と81
は、エンドポイントバッファあるいは単にエンドポイン
トと呼ぶ。一般的に送信側コンピュータあるいは受信側
コンピュータは、ネットワーク・コプロセッサ或いは他
のコプロセッサのような、その他のプロセッサを含むか
もしれない。曖昧さをなくすために、プロセッサ54と
70はこれより”ホストプロセッサ”と呼ぶことにす
る。従来のシステムにおけるメッセージ83はヘッダを
含む。ヘッダはネットワーク82とネットワークインタ
フェース84,86により適切なノードとエンドポイン
トにメッセージを導くために使われる。送信側コンピュ
ータ50と受信側コンピュータ52におけるアプリケー
ション(例えば58)は、ネットワーク82を介してお
互いにメッセージを送ることにより通信する。メッセー
ジは、プロシージャーコールを含むどのようなデータで
も送ることができる。
【0011】図14に示すように、従来の通信は少なく
とも次に示すステップを含む。ステップ99においてア
プリケーション58はセンドコマンドを発動する。アプ
リケーション58がセンド命令を発動するための1つの
方法として”センド”コマンド67により記述されたコ
マンドを実行することによる。コマンドは識別子(I
D)と、メッセージデータが取り出されるソースアドレ
スと、送られるデータの量を示すサイズを含んでいる。
識別子の一部は受信側コンピュータを識別するために使
われる。それからステップ100において、オペレーテ
ィングシステムはエンドポイント66のようなアプリケ
ーションメモリから送信側コンピュータ50のオペレー
ティングシステム56におけるメッセージバッファ、例
えば62にメッセージをコピーする。このステップは、
実際のコピー作業を避けるためにアプリケーションメモ
リの位置をメッセージバッファ62の位置にマッピング
することにより、最適化されることが多々ある。もし、
必要ならば、ステップ102において、オペレーティン
グシステム56はプロトコルを実行する。即ち、送られ
るデータはネットワーク82により要求されるような適
切な形式に変換される。データの量が多ければ、いくつ
かのメッセージに分けられ、メッセージは、ステップ1
04において、ネットワークインタフェース84を介し
て、ネットワーク82に送出される。ステップ106に
おいて、通常受信側コンピュータに到着したメッセージ
はプロセッサ70に割り込みを引きおこす。そして、オ
ペレーティングシステム72はネットワーク(ネットワ
ークとネットワークインタフェースを意味する)からメ
ッセージを直接取り出し、オペレーティングシステムに
あるメッセージバッファ74にコピーする。あるいは適
切なハードウェアをもつシステムにおいて、オペレーテ
ィングシステムはネットワークインタフェースを持つダ
イレクト・メモリ・アクセス(DMA)をセットアップ
し、DMAを用いてメッセージを取り出しメッセージバ
ッファ74にコピーしてもよい。
とも次に示すステップを含む。ステップ99においてア
プリケーション58はセンドコマンドを発動する。アプ
リケーション58がセンド命令を発動するための1つの
方法として”センド”コマンド67により記述されたコ
マンドを実行することによる。コマンドは識別子(I
D)と、メッセージデータが取り出されるソースアドレ
スと、送られるデータの量を示すサイズを含んでいる。
識別子の一部は受信側コンピュータを識別するために使
われる。それからステップ100において、オペレーテ
ィングシステムはエンドポイント66のようなアプリケ
ーションメモリから送信側コンピュータ50のオペレー
ティングシステム56におけるメッセージバッファ、例
えば62にメッセージをコピーする。このステップは、
実際のコピー作業を避けるためにアプリケーションメモ
リの位置をメッセージバッファ62の位置にマッピング
することにより、最適化されることが多々ある。もし、
必要ならば、ステップ102において、オペレーティン
グシステム56はプロトコルを実行する。即ち、送られ
るデータはネットワーク82により要求されるような適
切な形式に変換される。データの量が多ければ、いくつ
かのメッセージに分けられ、メッセージは、ステップ1
04において、ネットワークインタフェース84を介し
て、ネットワーク82に送出される。ステップ106に
おいて、通常受信側コンピュータに到着したメッセージ
はプロセッサ70に割り込みを引きおこす。そして、オ
ペレーティングシステム72はネットワーク(ネットワ
ークとネットワークインタフェースを意味する)からメ
ッセージを直接取り出し、オペレーティングシステムに
あるメッセージバッファ74にコピーする。あるいは適
切なハードウェアをもつシステムにおいて、オペレーテ
ィングシステムはネットワークインタフェースを持つダ
イレクト・メモリ・アクセス(DMA)をセットアップ
し、DMAを用いてメッセージを取り出しメッセージバ
ッファ74にコピーしてもよい。
【0012】ある通信システムにおいては、インテリジ
ェント・ネットワークインタフェースを提案している。
すなわち、受信側コンピュータ52に第2のプロセッサ
(例えばインテルパラゴン(Intel Parago
n)における通信コプロセッサ)を持ち、第2のプロセ
ッサがネットワーク82からメッセージを取り出しメッ
セージをメッセージバッファ74にコピーする。オペレ
ーティングシステム72はステップ108において、も
し必要ならばプロトコルを実行する。そして、ステップ
110において、オペレーティングシステム72はメッ
セージを受信側コンピュータ52のメッセージバッファ
74からエンドポイント79のようなアプリケーション
メモリにコピーする。通常オペレーティングシステム7
2は”レシーブ”コマンド77のようなアプリケーショ
ンによる、明らかな受信要求に対する応答して、このデ
ータをアプリケーションメモリにコピーする。コマンド
はIDを含んでいる。IDの一部は、例えばメッセージ
バッファ74を指定するために使われる。そして、その
データは指定したメッセージバッファ74から受け取ら
れる。コマンドは更にメッセージがコピーされるレシー
ブアドレスを含み、またデータの量を示すサイズを含
む。アプリケーションからの受信要求がなくても以前に
保存されたステート情報により、オペレーティングシス
テムがデータをメッセージバッファ74からエンドポイ
ント79へ自動的にコピーすることを可能とする。ま
た、送信側コンピュータと同じように、実際のコピー作
業を避けるために、アプリケーションメモリにおける位
置をメッセージバッファ74における位置にマッピング
することによりコピー作業が行われることがよくある。
ェント・ネットワークインタフェースを提案している。
すなわち、受信側コンピュータ52に第2のプロセッサ
(例えばインテルパラゴン(Intel Parago
n)における通信コプロセッサ)を持ち、第2のプロセ
ッサがネットワーク82からメッセージを取り出しメッ
セージをメッセージバッファ74にコピーする。オペレ
ーティングシステム72はステップ108において、も
し必要ならばプロトコルを実行する。そして、ステップ
110において、オペレーティングシステム72はメッ
セージを受信側コンピュータ52のメッセージバッファ
74からエンドポイント79のようなアプリケーション
メモリにコピーする。通常オペレーティングシステム7
2は”レシーブ”コマンド77のようなアプリケーショ
ンによる、明らかな受信要求に対する応答して、このデ
ータをアプリケーションメモリにコピーする。コマンド
はIDを含んでいる。IDの一部は、例えばメッセージ
バッファ74を指定するために使われる。そして、その
データは指定したメッセージバッファ74から受け取ら
れる。コマンドは更にメッセージがコピーされるレシー
ブアドレスを含み、またデータの量を示すサイズを含
む。アプリケーションからの受信要求がなくても以前に
保存されたステート情報により、オペレーティングシス
テムがデータをメッセージバッファ74からエンドポイ
ント79へ自動的にコピーすることを可能とする。ま
た、送信側コンピュータと同じように、実際のコピー作
業を避けるために、アプリケーションメモリにおける位
置をメッセージバッファ74における位置にマッピング
することによりコピー作業が行われることがよくある。
【0013】通信システムはオーバヘッドを持ってい
る。オーバヘッドは通信による遅延時間と、送信側コン
ピュータ50と、受信側コンピュータ52のプロセッサ
54と70に対する影響を含んでいる。説明を単純にす
るために、ここでは通信遅延時間と通信オーバヘッド
を、単に遅延時間とオーバヘッドと呼ぶことにする。遅
延時間はメッセージを、例えばエンドポイント66のよ
うな送信側コンピュータ50におけるアプリケーション
メモリから、例えばエンドポイント79のような受信側
コンピュータ52におけるアプリケーションメモリに移
すための時間の総量として定義される。プロセッサに対
する影響は、割り込み処理、データ・フロー・コントロ
ールとプロトコル処理を含んでいる。ホストプロセッサ
における遅延時間と影響を減らすためには、図14で説
明した各ステップを最適化することによりオーバヘッド
を減らす必要がある。
る。オーバヘッドは通信による遅延時間と、送信側コン
ピュータ50と、受信側コンピュータ52のプロセッサ
54と70に対する影響を含んでいる。説明を単純にす
るために、ここでは通信遅延時間と通信オーバヘッド
を、単に遅延時間とオーバヘッドと呼ぶことにする。遅
延時間はメッセージを、例えばエンドポイント66のよ
うな送信側コンピュータ50におけるアプリケーション
メモリから、例えばエンドポイント79のような受信側
コンピュータ52におけるアプリケーションメモリに移
すための時間の総量として定義される。プロセッサに対
する影響は、割り込み処理、データ・フロー・コントロ
ールとプロトコル処理を含んでいる。ホストプロセッサ
における遅延時間と影響を減らすためには、図14で説
明した各ステップを最適化することによりオーバヘッド
を減らす必要がある。
【0014】並列、分散のコンピュータシステムと、リ
アルタイム制御システムのような速い応答を必要とされ
るアプリケーションにとって少ないオーバヘッドは重要
である。並列コンピュータシステムにおいて、少ない遅
延時間は送信側コンピュータ50における処理の時間を
減らすために、欠くことの出来ないものである。送信側
コンピュータ50における処理の時間は、例えば受信側
コンピュータ52のアプリケーションメモリ79のよう
な離れた位置にあるメモリから、データを読むために待
つ時間である。あるいは(例えばロックを獲得したり、
開放したりするような)リモート・シンクロナイゼーシ
ョン・オペレーションのための遅延時間である。分散コ
ンピュータシステムにおける、クライアント−サーバ・
モデルの性能は、しばしばリモート・プロシージャ・コ
ール(RPC)を実行するために必要とされる時間によ
って限定される。このリモート・プロシージャ・コール
の実行時間は遅延時間に影響されるものである。少ない
遅延時間の重要性はリアルタイム・システムにおいて最
も明らかである。リアルタイム・システムにおける過度
の遅延は大きな事故を引き起こすであろう。少ない遅延
時間がそれほど重要ではないアプリケーションにおいて
さえ、少ない遅延時間はアプリケーションの適用範囲を
広げ、システム構成の自由度を広げる。
アルタイム制御システムのような速い応答を必要とされ
るアプリケーションにとって少ないオーバヘッドは重要
である。並列コンピュータシステムにおいて、少ない遅
延時間は送信側コンピュータ50における処理の時間を
減らすために、欠くことの出来ないものである。送信側
コンピュータ50における処理の時間は、例えば受信側
コンピュータ52のアプリケーションメモリ79のよう
な離れた位置にあるメモリから、データを読むために待
つ時間である。あるいは(例えばロックを獲得したり、
開放したりするような)リモート・シンクロナイゼーシ
ョン・オペレーションのための遅延時間である。分散コ
ンピュータシステムにおける、クライアント−サーバ・
モデルの性能は、しばしばリモート・プロシージャ・コ
ール(RPC)を実行するために必要とされる時間によ
って限定される。このリモート・プロシージャ・コール
の実行時間は遅延時間に影響されるものである。少ない
遅延時間の重要性はリアルタイム・システムにおいて最
も明らかである。リアルタイム・システムにおける過度
の遅延は大きな事故を引き起こすであろう。少ない遅延
時間がそれほど重要ではないアプリケーションにおいて
さえ、少ない遅延時間はアプリケーションの適用範囲を
広げ、システム構成の自由度を広げる。
【0015】並列コンピュータシステムにおいては、少
ない遅延時間により、よりすばらしいコンピュータシス
テムを効果的に開発することができる。又、並列性を増
大させることができる。分散コンピュータシステムにお
いては、十分な少ない遅延時間は、例えば送信側コンピ
ュータ50によりネットワーク82を介して受信側コン
ピュータ52のリモート・ノードのメモリをページング
することができる。そしてこれは(図示していないが)
ローカルディスクにページングするよりも速くできる。
即ち、少ない遅延時間によりクライアント−サーバ・コ
ンピュータシステムにおいて融通性のあるリアルタイム
・コンピュータ・システムを実現する助けとなる。ホス
トプロセッサにおける影響を少なくすることにより、プ
ロセッサが利用状態にあることへの予測性とプロセッサ
の利用可能性が高まり、アプリケーションの実行効率を
向上させるために重要である。ホストプロセッサによっ
て実行されるリアルタイム・タスクにとって、プロセッ
サの利用が予測可能であることは特に重要である。この
ようなリアルタイムに用いられるアプリケーションを、
関係の無い非同期ネットワークの事象から遮断し、リア
ルタイムでの実行を確保することは重要である。
ない遅延時間により、よりすばらしいコンピュータシス
テムを効果的に開発することができる。又、並列性を増
大させることができる。分散コンピュータシステムにお
いては、十分な少ない遅延時間は、例えば送信側コンピ
ュータ50によりネットワーク82を介して受信側コン
ピュータ52のリモート・ノードのメモリをページング
することができる。そしてこれは(図示していないが)
ローカルディスクにページングするよりも速くできる。
即ち、少ない遅延時間によりクライアント−サーバ・コ
ンピュータシステムにおいて融通性のあるリアルタイム
・コンピュータ・システムを実現する助けとなる。ホス
トプロセッサにおける影響を少なくすることにより、プ
ロセッサが利用状態にあることへの予測性とプロセッサ
の利用可能性が高まり、アプリケーションの実行効率を
向上させるために重要である。ホストプロセッサによっ
て実行されるリアルタイム・タスクにとって、プロセッ
サの利用が予測可能であることは特に重要である。この
ようなリアルタイムに用いられるアプリケーションを、
関係の無い非同期ネットワークの事象から遮断し、リア
ルタイムでの実行を確保することは重要である。
【0016】占有のネットワークを持った現世代の並列
コンピュータシステムは、1μsecから100μse
cのレンジの遅延時間で動作する。ローカル・エリア・
ネットワークでの遅延時間は、1000サイクル未満で
あることが望ましい。将来可能となる1GHzのプロセ
ッサに対しては、1000サイクルとは1μsecであ
る。従来の10Mbpsのイーサーネット(Ether
net)LANでは遅延時間は、約1msecが典型的
なものである。100Mbpsの最初の世代のATMネ
ットワークは、従来のネットワークプロトコルとインタ
フェースを使って、約250μsecの遅延時間で動作
する。ネットワークのスピードの増加が必ずしも遅延時
間を減少させるものではないために、遅延時間を減少さ
せるために、オペレーティングシステムとネットワーク
インタフェースとネットワークプロトコルの改善を必要
とする。
コンピュータシステムは、1μsecから100μse
cのレンジの遅延時間で動作する。ローカル・エリア・
ネットワークでの遅延時間は、1000サイクル未満で
あることが望ましい。将来可能となる1GHzのプロセ
ッサに対しては、1000サイクルとは1μsecであ
る。従来の10Mbpsのイーサーネット(Ether
net)LANでは遅延時間は、約1msecが典型的
なものである。100Mbpsの最初の世代のATMネ
ットワークは、従来のネットワークプロトコルとインタ
フェースを使って、約250μsecの遅延時間で動作
する。ネットワークのスピードの増加が必ずしも遅延時
間を減少させるものではないために、遅延時間を減少さ
せるために、オペレーティングシステムとネットワーク
インタフェースとネットワークプロトコルの改善を必要
とする。
【0017】オーバヘッドのない通信を得るための障害
物を明らかにするために、更に詳しく従来の方法につい
て述べる。従来の通信システム、例えばTCP−IPの
ような分散システム、あるいはインテルパラゴンのよう
な並列コンピュータマシンにおいて、従来の通信システ
ムは大容量のストリームデータを扱っている。このよう
なシステムにおいて、メッセージは大きなサイズである
ことが多い。メッセージはバッファ識別子(バッファI
D)とデータを含む。インタフェース・ハードウェアと
オペレーティングシステムのソフトウェアは、ネットワ
ークから到着したメッセージを、バッファIDにより指
定されたメッセージバッファ(例えばメッセージバッフ
ァ74)における連続した位置に分離する。多くの場
合、ネットワークインタフェースはホストプロセッサに
対し、割り込みを発生する。オペレーティングシステム
は、ネットワークインタフェースからメッセージバッフ
ァ74にデータを直接コピーする。メッセージバッファ
74は、オペレーティングシステムの中にあっても良
い。またはオペレーティングシステムは、このようなメ
ッセージのコピーを行うDMA転送を設定しても良い。
物を明らかにするために、更に詳しく従来の方法につい
て述べる。従来の通信システム、例えばTCP−IPの
ような分散システム、あるいはインテルパラゴンのよう
な並列コンピュータマシンにおいて、従来の通信システ
ムは大容量のストリームデータを扱っている。このよう
なシステムにおいて、メッセージは大きなサイズである
ことが多い。メッセージはバッファ識別子(バッファI
D)とデータを含む。インタフェース・ハードウェアと
オペレーティングシステムのソフトウェアは、ネットワ
ークから到着したメッセージを、バッファIDにより指
定されたメッセージバッファ(例えばメッセージバッフ
ァ74)における連続した位置に分離する。多くの場
合、ネットワークインタフェースはホストプロセッサに
対し、割り込みを発生する。オペレーティングシステム
は、ネットワークインタフェースからメッセージバッフ
ァ74にデータを直接コピーする。メッセージバッファ
74は、オペレーティングシステムの中にあっても良
い。またはオペレーティングシステムは、このようなメ
ッセージのコピーを行うDMA転送を設定しても良い。
【0018】先に述べたように、このメッセージバッフ
ァ74はオペレーティングシステム72の中にあるの
で、受信側コンピュータ52におけるオペレーティング
システム72は、メッセージバッファ74からエンドポ
イント79のようなアプリケーションメモリにデータを
コピーしなければならない。このようなコピーのために
生ずるバッファリングのオーバヘッドを除く1つの方法
は、エンドポイント79のアプリケーションメモリをメ
ッセージバッファ74へマッピングすることである。コ
ピーのために生ずるバッファリングのオーバヘッドを除
く他の方法は、データをネットワークインタフェースか
ら、直接アプリケーションメモリにコピーすることであ
る。実現方法にかかわりなく、メッセージはオペレーテ
ィングシステムのメッセージバッファの連続した位置に
分割して記憶される。あるいは、メッセージはアプリケ
ーションメモリ(もし直接にネットワークインタフェー
スからアプリケーションメモリにコピーされる場合であ
るが)のメッセージバッファの連続した位置に分割して
記憶される。
ァ74はオペレーティングシステム72の中にあるの
で、受信側コンピュータ52におけるオペレーティング
システム72は、メッセージバッファ74からエンドポ
イント79のようなアプリケーションメモリにデータを
コピーしなければならない。このようなコピーのために
生ずるバッファリングのオーバヘッドを除く1つの方法
は、エンドポイント79のアプリケーションメモリをメ
ッセージバッファ74へマッピングすることである。コ
ピーのために生ずるバッファリングのオーバヘッドを除
く他の方法は、データをネットワークインタフェースか
ら、直接アプリケーションメモリにコピーすることであ
る。実現方法にかかわりなく、メッセージはオペレーテ
ィングシステムのメッセージバッファの連続した位置に
分割して記憶される。あるいは、メッセージはアプリケ
ーションメモリ(もし直接にネットワークインタフェー
スからアプリケーションメモリにコピーされる場合であ
るが)のメッセージバッファの連続した位置に分割して
記憶される。
【0019】メッセージが、メッセージバッファ内に記
憶される位置は自動的に決定される。例えば、ポインタ
により順番に位置決めされる。一般的に、受信される各
メッセージは受信側コンピュータのプロセッサとオペレ
ーティングシステムに割り込みを引き起こす。この割り
込みは、ネットワークからメッセージバッファにメッセ
ージを取り出すためのものである。送信側コンピュータ
はメッセージの最終的なアドレスを直接制御することは
ない。或いは、送信側コンピュータは、メッセージを受
け取った送信側コンピュータの割り込みの状態を直接制
御することはない。このような、メッセージ処理の方式
は、レシーバ・ベースド・アドレッシングと呼ばれる。
一つのプロセッサに対してアプリケーションとメッセー
ジ処理を多重化させて処理することは、このような従来
のネットワークプロトコルにとって普通のことである。
しかし、この多重化は、かなりのオーバヘッドをもたら
す。なぜならば、割り込み処理のために多くのサイクル
を必要とする。始めに、オペレーティングシステムのカ
ーネルに対する割り込み要求が発生し、それから多くの
サイクルが割り込みの解析処理及び分岐のために使われ
る。最後に、割り込み処理が行われる。この多重化によ
り生じるオーバヘッドは、メッセージの配送の遅延を招
く。また受信側コンピュータにおけるアプリケーション
の処理の遅延を招く。
憶される位置は自動的に決定される。例えば、ポインタ
により順番に位置決めされる。一般的に、受信される各
メッセージは受信側コンピュータのプロセッサとオペレ
ーティングシステムに割り込みを引き起こす。この割り
込みは、ネットワークからメッセージバッファにメッセ
ージを取り出すためのものである。送信側コンピュータ
はメッセージの最終的なアドレスを直接制御することは
ない。或いは、送信側コンピュータは、メッセージを受
け取った送信側コンピュータの割り込みの状態を直接制
御することはない。このような、メッセージ処理の方式
は、レシーバ・ベースド・アドレッシングと呼ばれる。
一つのプロセッサに対してアプリケーションとメッセー
ジ処理を多重化させて処理することは、このような従来
のネットワークプロトコルにとって普通のことである。
しかし、この多重化は、かなりのオーバヘッドをもたら
す。なぜならば、割り込み処理のために多くのサイクル
を必要とする。始めに、オペレーティングシステムのカ
ーネルに対する割り込み要求が発生し、それから多くの
サイクルが割り込みの解析処理及び分岐のために使われ
る。最後に、割り込み処理が行われる。この多重化によ
り生じるオーバヘッドは、メッセージの配送の遅延を招
く。また受信側コンピュータにおけるアプリケーション
の処理の遅延を招く。
【0020】非同期に発生するメッセージの到着により
引き起こされる割り込みは、予知することができないと
いう性格を持つ。この予知できない割り込み処理は、リ
アルタイム・システムにとって問題である。またたび重
なる割り込みは更にアプリケーションを遅らせるという
問題がある。インテル(Intel) iPSCのよう
な初期のマルチコンピュータにおいてアドレッシング
は、次のように行われる。受信側コンピュータにおける
オペレーティングシステムのカーネルは、ネットワーク
からメッセージをメッセージバッファに分離し、アプリ
ケーションはバッファの内容をアプリケーションメモリ
に分離する。このようなオペレーティングシステムのカ
ーネルによる処理は、IBM(Internation
al Business Machines)により開
発されたSP1のように並列ワークステーションの技術
分野に示されたような現在の技術として用いられている
ものである。
引き起こされる割り込みは、予知することができないと
いう性格を持つ。この予知できない割り込み処理は、リ
アルタイム・システムにとって問題である。またたび重
なる割り込みは更にアプリケーションを遅らせるという
問題がある。インテル(Intel) iPSCのよう
な初期のマルチコンピュータにおいてアドレッシング
は、次のように行われる。受信側コンピュータにおける
オペレーティングシステムのカーネルは、ネットワーク
からメッセージをメッセージバッファに分離し、アプリ
ケーションはバッファの内容をアプリケーションメモリ
に分離する。このようなオペレーティングシステムのカ
ーネルによる処理は、IBM(Internation
al Business Machines)により開
発されたSP1のように並列ワークステーションの技術
分野に示されたような現在の技術として用いられている
ものである。
【0021】従来の通信プロトコルに使われている別の
方法は、通信コプロセッサのような他のプロセッサを加
える方法である。例えば、Intel Paragon
は、非同期のメッセージの到着を扱うものである。この
ような通信コプロセッサは、複雑なgather−sc
atter操作にたいしても有用である。複雑なgat
her−scatter操作は、大きなサイズのメッセ
ージが使われるときに発生する。このようなコプロセッ
サの利用はハードウェアの重複となり、費用がかかる。
受信側コンピュータにおいて、コプロセッサを用いるよ
うな、リソースを増加させる方式をとらない方式もとれ
る。即ち、どこにメッセージを置くか、どのようにメッ
セージを処理するかを決定するために、受信側コンピュ
ータに著しいリソースの増加や複雑な処理を増す代わり
に、送信側コンピュータがこの決定をしてもよい。
方法は、通信コプロセッサのような他のプロセッサを加
える方法である。例えば、Intel Paragon
は、非同期のメッセージの到着を扱うものである。この
ような通信コプロセッサは、複雑なgather−sc
atter操作にたいしても有用である。複雑なgat
her−scatter操作は、大きなサイズのメッセ
ージが使われるときに発生する。このようなコプロセッ
サの利用はハードウェアの重複となり、費用がかかる。
受信側コンピュータにおいて、コプロセッサを用いるよ
うな、リソースを増加させる方式をとらない方式もとれ
る。即ち、どこにメッセージを置くか、どのようにメッ
セージを処理するかを決定するために、受信側コンピュ
ータに著しいリソースの増加や複雑な処理を増す代わり
に、送信側コンピュータがこの決定をしてもよい。
【0022】図15に他の従来の、送信側コンピュータ
が主導権を有するシステムのブロック・ダイアグラムを
示す。このシステムでは、送信側コンピュータ87と受
信側コンピュータ88が、ネットワークインタフェース
89と90を介してネットワーク82により接続されて
いる。それぞれのオペレーティングシステム91と92
は、メッセージバッファを持つ必要がない。このシステ
ムでは、送信側コンピュータが、受信側コンピュータの
どこにメッセージを置くか指定する。図15にコマンド
の例を示す。”センド”コマンド95は、コマンドに受
信アドレスを含むことにより、メッセージが受信側コン
ピュータのどこにおかれるかをも示す。メッセージ94
が、送信側コンピュータ87から受信側コンピュータ8
8に送られる。メッセージ94は、ヘッダとデータ以外
に、受信側コンピュータ88でメッセージを置くべきア
ドレスも含む。送信側コンピュータは、受信側コンピュ
ータにメッセージが到着した時点で、受信側コンピュー
タにインターラプトを発生させるかどうか直接指定して
もよい。
が主導権を有するシステムのブロック・ダイアグラムを
示す。このシステムでは、送信側コンピュータ87と受
信側コンピュータ88が、ネットワークインタフェース
89と90を介してネットワーク82により接続されて
いる。それぞれのオペレーティングシステム91と92
は、メッセージバッファを持つ必要がない。このシステ
ムでは、送信側コンピュータが、受信側コンピュータの
どこにメッセージを置くか指定する。図15にコマンド
の例を示す。”センド”コマンド95は、コマンドに受
信アドレスを含むことにより、メッセージが受信側コン
ピュータのどこにおかれるかをも示す。メッセージ94
が、送信側コンピュータ87から受信側コンピュータ8
8に送られる。メッセージ94は、ヘッダとデータ以外
に、受信側コンピュータ88でメッセージを置くべきア
ドレスも含む。送信側コンピュータは、受信側コンピュ
ータにメッセージが到着した時点で、受信側コンピュー
タにインターラプトを発生させるかどうか直接指定して
もよい。
【0023】図16は図15のシステムにおける一般的
な動作を述べたフローチャートである。ステップ111
において、始めに、送信側コンピュータが受信側コンピ
ュータのどのアドレスにメッセージを置くか決定する。
このアドレスでセンドコマンドを作成する。ステップ1
12において、アプリケーションメモリからメッセージ
を直接ネットワークに送出する。これに対して図14で
示した従来のシステムでは、オペレーティングシステム
のメッセージバッファからメッセージが送出される。ス
テップ113において、ネットワークからメッセージが
取り出される。ステップ114において、ネットワーク
インタフェースからメッセージが直接メッセージの中の
受信アドレスに分離される。図14で示した従来のシス
テムは、メッセージをオペレーティングシステムのメッ
セージバッファに取り出す。このシステムでは、図14
のステップ100と110に示したような、アプリケー
ションメモリとオペレーティングシステムのメッセージ
バッファの間でメッセージデータのコピーはしない。む
しろ、メッセージは送信側コンピュータのアプリケーシ
ョンメモリから受信側コンピュータのアプリケーション
メモリに直接コピーされる。プロセッサに対する割り込
みは、メッセージにより指定されてもよいし、指定され
なくてもよい。割り込みの状態は、受信側コンピュータ
による指定による。このようなシステムの様々な実現方
法は、図15、97と98で示したように、保護機構の
存否、程度、詳細によって異なってくる。
な動作を述べたフローチャートである。ステップ111
において、始めに、送信側コンピュータが受信側コンピ
ュータのどのアドレスにメッセージを置くか決定する。
このアドレスでセンドコマンドを作成する。ステップ1
12において、アプリケーションメモリからメッセージ
を直接ネットワークに送出する。これに対して図14で
示した従来のシステムでは、オペレーティングシステム
のメッセージバッファからメッセージが送出される。ス
テップ113において、ネットワークからメッセージが
取り出される。ステップ114において、ネットワーク
インタフェースからメッセージが直接メッセージの中の
受信アドレスに分離される。図14で示した従来のシス
テムは、メッセージをオペレーティングシステムのメッ
セージバッファに取り出す。このシステムでは、図14
のステップ100と110に示したような、アプリケー
ションメモリとオペレーティングシステムのメッセージ
バッファの間でメッセージデータのコピーはしない。む
しろ、メッセージは送信側コンピュータのアプリケーシ
ョンメモリから受信側コンピュータのアプリケーション
メモリに直接コピーされる。プロセッサに対する割り込
みは、メッセージにより指定されてもよいし、指定され
なくてもよい。割り込みの状態は、受信側コンピュータ
による指定による。このようなシステムの様々な実現方
法は、図15、97と98で示したように、保護機構の
存否、程度、詳細によって異なってくる。
【0024】このようなネットワークプロトコルとイン
タフェースは、クレー・リサーチ社(Cray Res
arch Inc.of Minnesota)のTe
ra3Dや、スタンフォード大学のDASH mach
ineのような並列マシーンに主として使われている。
グローバル・アドレス・スペースを伴ったこのような並
列マシーンは、たいてい小さなサイズ(例えば、ワード
あるいはキャッチブロック)のメッセージを使う。この
メッセージは、受信アドレスとデータを伝える。データ
は、メッセージに含まれている受信アドレスに直接記憶
される。この方法で、受信側コンピュータにおける分離
は、通常の処理として行われる。送信側コンピュータが
すべての情報を指定する。従って、メッセージ処理のこ
の方法は、センダ・ベースド・アドレッシングと呼ばれ
る。同様に、”センダ・ベースド・インターラプト”と
いう用語が、割り込み生成の方法について使われる。
タフェースは、クレー・リサーチ社(Cray Res
arch Inc.of Minnesota)のTe
ra3Dや、スタンフォード大学のDASH mach
ineのような並列マシーンに主として使われている。
グローバル・アドレス・スペースを伴ったこのような並
列マシーンは、たいてい小さなサイズ(例えば、ワード
あるいはキャッチブロック)のメッセージを使う。この
メッセージは、受信アドレスとデータを伝える。データ
は、メッセージに含まれている受信アドレスに直接記憶
される。この方法で、受信側コンピュータにおける分離
は、通常の処理として行われる。送信側コンピュータが
すべての情報を指定する。従って、メッセージ処理のこ
の方法は、センダ・ベースド・アドレッシングと呼ばれ
る。同様に、”センダ・ベースド・インターラプト”と
いう用語が、割り込み生成の方法について使われる。
【0025】このような並列マシーンはシングル・ユー
ザまたは複数の正直な関連ユーザがマシーンを使用する
ことを前提としているので、保護機構については複数の
関連プロセッサに専属的に接続されるネットワークシス
テムの内部で、あまり考慮されていない。即ち、図15
の保護機構97、98は省かれることが多い。
ザまたは複数の正直な関連ユーザがマシーンを使用する
ことを前提としているので、保護機構については複数の
関連プロセッサに専属的に接続されるネットワークシス
テムの内部で、あまり考慮されていない。即ち、図15
の保護機構97、98は省かれることが多い。
【0026】次に、純粋なセンダ・ベースド・アドレッ
シングを用いるシステムの例について述べる。たとえ
ば、「ハムリン」”Hamlyn”というシステムがあ
る。「ハムリン」のハードウェアに関する実施例につい
ては、「ハムリン:センダ・ベースド・コミュニケーシ
ョンのためのインタフェース」”Hamlyn: An
Interface for Sender−Base
d Communication”(ジョン・ウィルク
ス(John Wilkes)著 Technical
Report HPL−OSR−92−13 Hew
lett−Packard Laboratories
1992年11月刊)で、検討されている。ハムリン
についての出版物の難点は、実施例についての記載はほ
とんどなく、単にハイレベルなデザインの概略を提供す
るにとどまっていることである。このシステムでは、マ
ルチユーザが使用するLAN環境のための保護機構につ
いて十分記載されている。しかし、ハムリンについての
出版物には、どのようなネットワークに対しても、この
保護機構を適用することができる旨の記載はない。ハム
リンについての出版物は、「プライベート・マルチコン
ピュータ・インターコネクト」という特定されないネッ
トワークに対する保護機構についての記載のみであり、
この保護機構は並列コンピュータのための他の保護機構
と同様のものである。
シングを用いるシステムの例について述べる。たとえ
ば、「ハムリン」”Hamlyn”というシステムがあ
る。「ハムリン」のハードウェアに関する実施例につい
ては、「ハムリン:センダ・ベースド・コミュニケーシ
ョンのためのインタフェース」”Hamlyn: An
Interface for Sender−Base
d Communication”(ジョン・ウィルク
ス(John Wilkes)著 Technical
Report HPL−OSR−92−13 Hew
lett−Packard Laboratories
1992年11月刊)で、検討されている。ハムリン
についての出版物の難点は、実施例についての記載はほ
とんどなく、単にハイレベルなデザインの概略を提供す
るにとどまっていることである。このシステムでは、マ
ルチユーザが使用するLAN環境のための保護機構につ
いて十分記載されている。しかし、ハムリンについての
出版物には、どのようなネットワークに対しても、この
保護機構を適用することができる旨の記載はない。ハム
リンについての出版物は、「プライベート・マルチコン
ピュータ・インターコネクト」という特定されないネッ
トワークに対する保護機構についての記載のみであり、
この保護機構は並列コンピュータのための他の保護機構
と同様のものである。
【0027】ハムリンと同様の他のシステムとして、
「ATMネットワークにおけるマルチコンピュータのた
めの効果的サポート」”Efficient Supp
ortfor Multicomputing on
ATM Networks”(C.テッカー他(C.T
hekkath et al.)著 Technica
l Report TR93−04−03 Dept.
of Computer Science and E
ngineering, Univ.of Washi
ngton, Seattle, Washingto
n 1993年4月12日)に記載されたシステムがあ
る。このシステムはATM LANの為の、純粋なセン
ダ・ベースド・アドレッシングのソフトウェア・ベース
のエミュレーションである。このシステムは、分散シス
テムのアプリケーションのために設計されたものであ
る。テッカー他は、センダ・ベースド・アドレッシング
のためのハードウェア・サポートについてはふれていな
い。
「ATMネットワークにおけるマルチコンピュータのた
めの効果的サポート」”Efficient Supp
ortfor Multicomputing on
ATM Networks”(C.テッカー他(C.T
hekkath et al.)著 Technica
l Report TR93−04−03 Dept.
of Computer Science and E
ngineering, Univ.of Washi
ngton, Seattle, Washingto
n 1993年4月12日)に記載されたシステムがあ
る。このシステムはATM LANの為の、純粋なセン
ダ・ベースド・アドレッシングのソフトウェア・ベース
のエミュレーションである。このシステムは、分散シス
テムのアプリケーションのために設計されたものであ
る。テッカー他は、センダ・ベースド・アドレッシング
のためのハードウェア・サポートについてはふれていな
い。
【0028】純粋なセンダ・ベースド・アドレッシング
を用いるシステムでは、多くの場合、受信側コンピュー
タでデータを置こうとする位置が、受信側コンピュータ
の状態によって左右されるという問題がある。たとえ
ば、入力されたメッセージが受信側コンピュータで待ち
状態となると、待ち行列の最終位置は受信側コンピュー
タの状態によって決まる。完全なるセンダ・ベースド・
アドレッシングのシステムが待ち行列を処理するには、
送信側コンピュータは、受信側コンピュータの状態を知
っていることが必要である。送信側コンピュータは、こ
の位置のトラックを保っていなければならない。この場
合、同一の受信側コンピュータに対して複数の送信側コ
ンピュータからデータをおくることは困難になる。もし
くは、送信側コンピュータは受信側コンピュータの状態
を知るための追加メッセージを使用しなければならない
が、これは処理のアトミック性の問題を生ずる。このふ
たつのどちらを選んでも、送信側コンピュータと受信側
コンピュータの両ホストプロセッサにおける遅延時間を
増し、影響を与える。さらに、送信側コンピュータが受
信側コンピュータについてこのように知識を増すことは
保護上の問題を生む。同様に、センダ・ベースド・イン
ターラプトにも問題点がある。センダ・ベースの特徴に
より可能な割り込みが限定される。たとえば、受信側コ
ンピュータの割り込み状態が送信側コンピュータが取り
扱う状態の一つの機能によってのみ生ずるものならば、
受信側コンピュータにおいて割り込みスケジュールに優
先度を付けることが困難になる。
を用いるシステムでは、多くの場合、受信側コンピュー
タでデータを置こうとする位置が、受信側コンピュータ
の状態によって左右されるという問題がある。たとえ
ば、入力されたメッセージが受信側コンピュータで待ち
状態となると、待ち行列の最終位置は受信側コンピュー
タの状態によって決まる。完全なるセンダ・ベースド・
アドレッシングのシステムが待ち行列を処理するには、
送信側コンピュータは、受信側コンピュータの状態を知
っていることが必要である。送信側コンピュータは、こ
の位置のトラックを保っていなければならない。この場
合、同一の受信側コンピュータに対して複数の送信側コ
ンピュータからデータをおくることは困難になる。もし
くは、送信側コンピュータは受信側コンピュータの状態
を知るための追加メッセージを使用しなければならない
が、これは処理のアトミック性の問題を生ずる。このふ
たつのどちらを選んでも、送信側コンピュータと受信側
コンピュータの両ホストプロセッサにおける遅延時間を
増し、影響を与える。さらに、送信側コンピュータが受
信側コンピュータについてこのように知識を増すことは
保護上の問題を生む。同様に、センダ・ベースド・イン
ターラプトにも問題点がある。センダ・ベースの特徴に
より可能な割り込みが限定される。たとえば、受信側コ
ンピュータの割り込み状態が送信側コンピュータが取り
扱う状態の一つの機能によってのみ生ずるものならば、
受信側コンピュータにおいて割り込みスケジュールに優
先度を付けることが困難になる。
【0029】純粋なセンダ・ベースド・コミュニケーシ
ョンにしろ、また、純粋なレシーバ・ベースド・コミュ
ニケーションにしろ、通信システムでのオーバヘッドの
問題を解決するために、新しい並列マシーンにおいて
は、センダ・ベースド・アドレッシングとレシーバ・ベ
ースド・アドレッシングのヴァリエーションを用いるも
のが多い。たとえば、メイコCS−2(the Mei
ko CS−2, ofWaltham, Massa
chusetts)では、レシーバ・ベースド・アドレ
ッシングを用いた従来の送信/受信システムと、センダ
・ベースド・アドレッシングを用いたリモートリード/
ライト・モデルのどちらも用いている。多くのマシーン
と同様、このCS−2では大量のデータ転送のために、
データの分離とメモリへのDMAの為のコプロセッサを
備える。このDMAは、スキャター/ギャザーができる
が、多くは一定のストライドであるので、センダ・ベー
スド・アドレッシングの際、不足に陥る。センダ・ベー
スド・アドレッシングと、レシーバ・ベースド・アドレ
ッシングは、互いに排他的に組み合わされる。センダ・
ベースド・アドレッシングとレシーバ・ベースド・アド
レッシングを用いる他の新しい並列コンピュータにおい
ても、これらは互いに排他的な組み合わせである。MI
Tエールワイフ・マシン(the MIT Alewi
fe machine)とスタンフォード・フラッシュ
マシン(the Stanford FLASH ma
chine)では、共通メモリ・トラフィック用のキャ
ッシュ・ブロックはセンダ・ベースド・アドレッシング
を用い、大量のデータ送信用と送受信トラフィック用に
はレシーバ・ベースド・アドレッシングを用いている。
一般的に、センダ・ベースド・アドレッシングはランダ
ム・アクセス通信に、レシーバ・ベースド・アドレッシ
ングは保護されたクロス・ドメイン通信に用いられる。
ョンにしろ、また、純粋なレシーバ・ベースド・コミュ
ニケーションにしろ、通信システムでのオーバヘッドの
問題を解決するために、新しい並列マシーンにおいて
は、センダ・ベースド・アドレッシングとレシーバ・ベ
ースド・アドレッシングのヴァリエーションを用いるも
のが多い。たとえば、メイコCS−2(the Mei
ko CS−2, ofWaltham, Massa
chusetts)では、レシーバ・ベースド・アドレ
ッシングを用いた従来の送信/受信システムと、センダ
・ベースド・アドレッシングを用いたリモートリード/
ライト・モデルのどちらも用いている。多くのマシーン
と同様、このCS−2では大量のデータ転送のために、
データの分離とメモリへのDMAの為のコプロセッサを
備える。このDMAは、スキャター/ギャザーができる
が、多くは一定のストライドであるので、センダ・ベー
スド・アドレッシングの際、不足に陥る。センダ・ベー
スド・アドレッシングと、レシーバ・ベースド・アドレ
ッシングは、互いに排他的に組み合わされる。センダ・
ベースド・アドレッシングとレシーバ・ベースド・アド
レッシングを用いる他の新しい並列コンピュータにおい
ても、これらは互いに排他的な組み合わせである。MI
Tエールワイフ・マシン(the MIT Alewi
fe machine)とスタンフォード・フラッシュ
マシン(the Stanford FLASH ma
chine)では、共通メモリ・トラフィック用のキャ
ッシュ・ブロックはセンダ・ベースド・アドレッシング
を用い、大量のデータ送信用と送受信トラフィック用に
はレシーバ・ベースド・アドレッシングを用いている。
一般的に、センダ・ベースド・アドレッシングはランダ
ム・アクセス通信に、レシーバ・ベースド・アドレッシ
ングは保護されたクロス・ドメイン通信に用いられる。
【0030】同様にセンダ・ベースド・アドレッシング
とレシーバ・ベースド・アドレッシングを組み合わせた
システムに、「アクティブ・メッセージ:統合通信とコ
ンピューテイションのメカニズム」”Active M
essages: A mechanism for
Integrated Communicationa
nd Computation”(「国際コンピュータ
・アーキテクチャー・シンポジウム」Int’l Sy
mposium of ComputerArchit
ecture 256ー266ページ T.von エ
イケン他(T. von Eicken et a
l.)著 1992年5月)に著されたシステムがあ
る。このシステムでは、送信側コンピュータは、受信側
コンピュータにあるインターラプト・ハンドラーのアド
レスをそれぞれのメッセージに付ける。このインターラ
プト・ハンドラーはメッセージを受け取ったとき、ネッ
トワークからメッセージを抽出し、所望のところにメッ
セージを配置したり処理する。このメッセージには他の
引数も含まれる。インタラプト・ハンドラの長さとアク
ションは拘束されており、インタラプト・ハンドラは、
受信側コンピュータのアドレス・スペースでホストプロ
セッサを用いて実行される。このため、新しいスレッド
のためにコンテクストをスイッチングするコストはいら
ない。このシステムの大きな難点は、少なくともハード
ウェアのサポート無しでは、シングル・ユーザ・アプリ
ケーションに限られることである。多くのユーザが使え
るようにするには、コンテクストのスイッチングが必要
となる。また、このシステムのもう一つの問題は、受信
側コンピュータにおいて、すべてのメッセージが割り込
みを必要とし、そのためプロセッサへの影響を減らせな
いという点である。
とレシーバ・ベースド・アドレッシングを組み合わせた
システムに、「アクティブ・メッセージ:統合通信とコ
ンピューテイションのメカニズム」”Active M
essages: A mechanism for
Integrated Communicationa
nd Computation”(「国際コンピュータ
・アーキテクチャー・シンポジウム」Int’l Sy
mposium of ComputerArchit
ecture 256ー266ページ T.von エ
イケン他(T. von Eicken et a
l.)著 1992年5月)に著されたシステムがあ
る。このシステムでは、送信側コンピュータは、受信側
コンピュータにあるインターラプト・ハンドラーのアド
レスをそれぞれのメッセージに付ける。このインターラ
プト・ハンドラーはメッセージを受け取ったとき、ネッ
トワークからメッセージを抽出し、所望のところにメッ
セージを配置したり処理する。このメッセージには他の
引数も含まれる。インタラプト・ハンドラの長さとアク
ションは拘束されており、インタラプト・ハンドラは、
受信側コンピュータのアドレス・スペースでホストプロ
セッサを用いて実行される。このため、新しいスレッド
のためにコンテクストをスイッチングするコストはいら
ない。このシステムの大きな難点は、少なくともハード
ウェアのサポート無しでは、シングル・ユーザ・アプリ
ケーションに限られることである。多くのユーザが使え
るようにするには、コンテクストのスイッチングが必要
となる。また、このシステムのもう一つの問題は、受信
側コンピュータにおいて、すべてのメッセージが割り込
みを必要とし、そのためプロセッサへの影響を減らせな
いという点である。
【0031】さらに他の関連技術としては、ウィリアム
・ダリィ(William Dally)によるメッセ
ージ駆動プロセッサ・システムがある。参考文献として
は、「メッセージ駆動プロセッサのアーキテクチャ
ー」”Architectureof a Massa
ge−Driven Processor”(ダリィ,
W.J.(Dally,W.J.)他著 「国際コンピ
ュータ・アーキテクチャー・シンポジウム」Inter
national Symposium onComp
uter Architecture 1987年)、
「メッセージ駆動プロセッサ:統合マルチコンピュータ
処理エレメント」”The Message Driv
en Processor: An Integrat
ed Multicomputer Processi
ng Element”(ダリィ,W.J.(Dall
y,W.J.)他著 「1982年IEEE国際コンピ
ュータ・デザイン会議議事録」Proceedings
of the 1982IEEE Internat
ional Conference On Compu
ter Design: VLSI In Compu
ters & Processors,マサチューセッ
ツ ケンブリッジ 1992年10月11ー14日)、
「細粒コンカレント・コンピューティング」”Fine
−Grain Concurrent Computi
ng”(ダリィ,W.J.(Dally,W.J.)他
著 「コンピュータ科学における研究方向」Resea
rch Directions in Compute
r Science: AnMIT Perspect
ive アルバート・メイヤー(Albert Mey
er)編 MIT Press 1991年)がある。
メッセージ・ドリブン・プロセッサ・システムでは、従
来と異なったホストプロセッサが、セパレート・ネット
ワークインタフェースを使わずにビルト・イン・コミュ
ニケーション・プリミティブを用いて、コミュニケーシ
ョン・アクションを実行する。このシステムの基本的問
題は、セパレート・ネットワークインタフェースがない
ため、従来のプロセッサが使用できない点である。ま
た、このシステムでは、マルチユーザ・システム、特に
ユーザ対ユーザのレベルの通信のようなマルチユーザ・
システムでの保護問題にもふれていない。また、このシ
ステムでは、メッセージ・フォーマットに互換性がない
ので、ATMネットワークには適用しにくい。
・ダリィ(William Dally)によるメッセ
ージ駆動プロセッサ・システムがある。参考文献として
は、「メッセージ駆動プロセッサのアーキテクチャ
ー」”Architectureof a Massa
ge−Driven Processor”(ダリィ,
W.J.(Dally,W.J.)他著 「国際コンピ
ュータ・アーキテクチャー・シンポジウム」Inter
national Symposium onComp
uter Architecture 1987年)、
「メッセージ駆動プロセッサ:統合マルチコンピュータ
処理エレメント」”The Message Driv
en Processor: An Integrat
ed Multicomputer Processi
ng Element”(ダリィ,W.J.(Dall
y,W.J.)他著 「1982年IEEE国際コンピ
ュータ・デザイン会議議事録」Proceedings
of the 1982IEEE Internat
ional Conference On Compu
ter Design: VLSI In Compu
ters & Processors,マサチューセッ
ツ ケンブリッジ 1992年10月11ー14日)、
「細粒コンカレント・コンピューティング」”Fine
−Grain Concurrent Computi
ng”(ダリィ,W.J.(Dally,W.J.)他
著 「コンピュータ科学における研究方向」Resea
rch Directions in Compute
r Science: AnMIT Perspect
ive アルバート・メイヤー(Albert Mey
er)編 MIT Press 1991年)がある。
メッセージ・ドリブン・プロセッサ・システムでは、従
来と異なったホストプロセッサが、セパレート・ネット
ワークインタフェースを使わずにビルト・イン・コミュ
ニケーション・プリミティブを用いて、コミュニケーシ
ョン・アクションを実行する。このシステムの基本的問
題は、セパレート・ネットワークインタフェースがない
ため、従来のプロセッサが使用できない点である。ま
た、このシステムでは、マルチユーザ・システム、特に
ユーザ対ユーザのレベルの通信のようなマルチユーザ・
システムでの保護問題にもふれていない。また、このシ
ステムでは、メッセージ・フォーマットに互換性がない
ので、ATMネットワークには適用しにくい。
【0032】ローカル・エリア・ネットワーク(LA
N)のようなマルチユーザ・ネットワーク環境では、通
信はグローバルなリソースであり、他のプロセッサの他
のユーザからの偶然の干渉、また故意の干渉から、ユー
ザを隔離するために、保護機構が必要となる。同様に、
ノードがマルチユーザである場合、同一プロセッサ上の
複数のユーザを互いに隔離するために、保護機構が必要
である。このようなマルチユーザ・ネットワークやマル
チユーザ・プロセッサ環境では、オーバヘッドを低くす
るための研究がほとんどされてきていない。
N)のようなマルチユーザ・ネットワーク環境では、通
信はグローバルなリソースであり、他のプロセッサの他
のユーザからの偶然の干渉、また故意の干渉から、ユー
ザを隔離するために、保護機構が必要となる。同様に、
ノードがマルチユーザである場合、同一プロセッサ上の
複数のユーザを互いに隔離するために、保護機構が必要
である。このようなマルチユーザ・ネットワークやマル
チユーザ・プロセッサ環境では、オーバヘッドを低くす
るための研究がほとんどされてきていない。
【0033】
【発明が解決しようとする課題】上記のような従来技術
の問題や限界を克服するために、この発明は、ダイレク
ト・デポジット・メッセージングを用いるマルチユーザ
・コンピュータのネットワークにおいて、保護機構を伴
うオーバヘッドの少ない通信のためのネットワークプロ
トコルとインタフェースを供給する。
の問題や限界を克服するために、この発明は、ダイレク
ト・デポジット・メッセージングを用いるマルチユーザ
・コンピュータのネットワークにおいて、保護機構を伴
うオーバヘッドの少ない通信のためのネットワークプロ
トコルとインタフェースを供給する。
【0034】
【課題を解決するための手段】この発明に係わる通信方
式は、送信側コンピュータと受信側コンピュータをネッ
トワークで接続し、受信側コンピュータはオペレーティ
ングシステムにより制御されたプロセッサに接続された
ネットワークインタフェースを有しているコンピュータ
システムの通信方式において、送信側コンピュータにお
いて、オペランドと、実行されるべきアクションの識別
子と、受信側コンピュータに記憶されている情報へのリ
ファレンスとを含んだメッセージを受信側コンピュータ
に送る送信手段と、上記ネットワークインタフェースに
おいて、メッセージを受信する受信手段と、上記ネット
ワークインタフェースにおいて、上記メッセージを受信
することにより動作する手段であって、受信側コンピュ
ータでの上記アクションの実行が許されているかを決定
する決定手段と、上記ネットワークインタフェースにお
いて、上記アクションの実行が許されている場合に動作
する手段であって、受信側コンピュータのプロセッサと
オペレーティングシステムとは別個に、上記メッセージ
のオペランドと受信側コンピュータに記憶された情報に
基づいてオペレーションを実行し、そのオペレーション
によって上記アクションを実行する実行手段を有するこ
とを特徴とする。
式は、送信側コンピュータと受信側コンピュータをネッ
トワークで接続し、受信側コンピュータはオペレーティ
ングシステムにより制御されたプロセッサに接続された
ネットワークインタフェースを有しているコンピュータ
システムの通信方式において、送信側コンピュータにお
いて、オペランドと、実行されるべきアクションの識別
子と、受信側コンピュータに記憶されている情報へのリ
ファレンスとを含んだメッセージを受信側コンピュータ
に送る送信手段と、上記ネットワークインタフェースに
おいて、メッセージを受信する受信手段と、上記ネット
ワークインタフェースにおいて、上記メッセージを受信
することにより動作する手段であって、受信側コンピュ
ータでの上記アクションの実行が許されているかを決定
する決定手段と、上記ネットワークインタフェースにお
いて、上記アクションの実行が許されている場合に動作
する手段であって、受信側コンピュータのプロセッサと
オペレーティングシステムとは別個に、上記メッセージ
のオペランドと受信側コンピュータに記憶された情報に
基づいてオペレーションを実行し、そのオペレーション
によって上記アクションを実行する実行手段を有するこ
とを特徴とする。
【0035】この発明に係わる通信方式において、上記
オペランドは、受信側コンピュータのメモリのアドレス
を示すものであり、上記実行手段は、上記メッセージの
アドレスと受信側コンピュータに記憶された情報に基づ
いて、受信側コンピュータのメモリの所定の位置にメッ
セージを格納するメッセージ格納手段を備えたことを特
徴とする。
オペランドは、受信側コンピュータのメモリのアドレス
を示すものであり、上記実行手段は、上記メッセージの
アドレスと受信側コンピュータに記憶された情報に基づ
いて、受信側コンピュータのメモリの所定の位置にメッ
セージを格納するメッセージ格納手段を備えたことを特
徴とする。
【0036】この発明に係わる通信方式において、上記
オペランドは、受信側コンピュータのメモリのアドレス
を記憶するネットワークインタフェース内のアドレスレ
ジスタを示すものであり、上記受信側コンピュータに記
憶された情報は、アドレスレジスタに記憶されたアドレ
スであり、上記通信方式は、さらに、オペランドにより
示されたアドレスレジスタからアドレスを得る手段と、
得られたアドレスに基づいて、メモリにメッセージを記
憶する手段を備えたことを特徴とする。
オペランドは、受信側コンピュータのメモリのアドレス
を記憶するネットワークインタフェース内のアドレスレ
ジスタを示すものであり、上記受信側コンピュータに記
憶された情報は、アドレスレジスタに記憶されたアドレ
スであり、上記通信方式は、さらに、オペランドにより
示されたアドレスレジスタからアドレスを得る手段と、
得られたアドレスに基づいて、メモリにメッセージを記
憶する手段を備えたことを特徴とする。
【0037】この発明に係わる通信方式において、上記
オペランドは、さらに、オフセットを示すものであり、
上記通信方式は、さらに、オフセットによりアドレスレ
ジスタのアドレスを修飾する手段を備えたことを特徴と
する。
オペランドは、さらに、オフセットを示すものであり、
上記通信方式は、さらに、オフセットによりアドレスレ
ジスタのアドレスを修飾する手段を備えたことを特徴と
する。
【0038】この発明に係わる通信方式において、上記
実行手段はオペランドと受信側コンピュータに記憶され
た情報を比較する比較手段と、上記比較手段の比較結果
によりメッセージが即座の実行を要求するものであると
判断される場合に、プロセッサに対して、割り込みを発
生する割り込み手段を備えたことを特徴とする。
実行手段はオペランドと受信側コンピュータに記憶され
た情報を比較する比較手段と、上記比較手段の比較結果
によりメッセージが即座の実行を要求するものであると
判断される場合に、プロセッサに対して、割り込みを発
生する割り込み手段を備えたことを特徴とする。
【0039】この発明に係わる通信方式は、さらに、受
信側コンピュータに記憶された情報を更新する更新手段
を備えたことを特徴とする。
信側コンピュータに記憶された情報を更新する更新手段
を備えたことを特徴とする。
【0040】この発明に係わる通信方式は、さらに、上
記比較手段の比較の結果によりメッセージが即座の実行
を要求していないと判断される場合に、メッセージを待
ち行列にキューイングするキューイング手段を備えたこ
とを特徴とする。
記比較手段の比較の結果によりメッセージが即座の実行
を要求していないと判断される場合に、メッセージを待
ち行列にキューイングするキューイング手段を備えたこ
とを特徴とする。
【0041】この発明に係わる通信方式において、上記
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられた、アドレスレジスタを
示すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方式はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る手段と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する手段を備えたことを特徴とする。
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられた、アドレスレジスタを
示すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方式はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る手段と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する手段を備えたことを特徴とする。
【0042】この発明に係わる通信方式は、メッセージ
の送信を要求するプロセッサと、プロセッサと接続され
ており、プロセッサからの要求に基づいて、オペランド
と、所望のアクションの指示と、受信側コンピュータに
記憶された情報へのリファレンスとを含んだメッセージ
を作成するネットワークインタフェースを有する送信側
コンピュータと、オペレーティングシステムによって制
御されたプロセッサと、プロセッサに接続されたネット
ワークインタフェースを有する受信側コンピュータと、
送信側コンピュータのネットワークインタフェースと受
信側コンピュータのネットワークインタフェースを接続
し、送信側コンピュータと受信側コンピュータの間でメ
ッセージを変換するためのネットワークとを備え、上記
受信側コンピュータのネットワークインタフェースは、
メッセージを受信し、メッセージに示されたアクション
を実行するにあたり、受信側コンピュータでそのアクシ
ョンの実行が許されている場合に、オペランドと受信側
コンピュータに記憶された情報に基づいてアクションを
実行することを特徴とする。
の送信を要求するプロセッサと、プロセッサと接続され
ており、プロセッサからの要求に基づいて、オペランド
と、所望のアクションの指示と、受信側コンピュータに
記憶された情報へのリファレンスとを含んだメッセージ
を作成するネットワークインタフェースを有する送信側
コンピュータと、オペレーティングシステムによって制
御されたプロセッサと、プロセッサに接続されたネット
ワークインタフェースを有する受信側コンピュータと、
送信側コンピュータのネットワークインタフェースと受
信側コンピュータのネットワークインタフェースを接続
し、送信側コンピュータと受信側コンピュータの間でメ
ッセージを変換するためのネットワークとを備え、上記
受信側コンピュータのネットワークインタフェースは、
メッセージを受信し、メッセージに示されたアクション
を実行するにあたり、受信側コンピュータでそのアクシ
ョンの実行が許されている場合に、オペランドと受信側
コンピュータに記憶された情報に基づいてアクションを
実行することを特徴とする。
【0043】この発明に係わる通信方式において、上記
オペランドは受信側コンピュータのメモリのアドレスを
示すものであり、上記アクションはメッセージに含まれ
ているアドレスと、受信側コンピュータに記憶されてい
る情報に基づいて、受信側コンピュータのメモリの所定
の位置にメッセージを格納するものであることを特徴と
する。
オペランドは受信側コンピュータのメモリのアドレスを
示すものであり、上記アクションはメッセージに含まれ
ているアドレスと、受信側コンピュータに記憶されてい
る情報に基づいて、受信側コンピュータのメモリの所定
の位置にメッセージを格納するものであることを特徴と
する。
【0044】この発明に係わる通信方式において、上記
オペランドは受信側コンピュータのメモリのアドレスを
記憶するアドレスレジスタを示すものであり、上記受信
側コンピュータに記憶された情報はアドレスレジスタに
記憶されたアドレスであり、上記受信側コンピュータは
オペランドにより示されたアドレスレジスタからアドレ
スを得る手段と、得られたアドレスに基づいてメモリに
メッセージを記憶する手段とを備えたことを特徴とす
る。
オペランドは受信側コンピュータのメモリのアドレスを
記憶するアドレスレジスタを示すものであり、上記受信
側コンピュータに記憶された情報はアドレスレジスタに
記憶されたアドレスであり、上記受信側コンピュータは
オペランドにより示されたアドレスレジスタからアドレ
スを得る手段と、得られたアドレスに基づいてメモリに
メッセージを記憶する手段とを備えたことを特徴とす
る。
【0045】この発明に係わる通信方式において、上記
オペランドはさらにオフセットを示すものであり、上記
通信方式はさらにアドレスレジスタに記憶されたアドレ
スを、オフセットで修飾する手段を備えたことを特徴と
する。
オペランドはさらにオフセットを示すものであり、上記
通信方式はさらにアドレスレジスタに記憶されたアドレ
スを、オフセットで修飾する手段を備えたことを特徴と
する。
【0046】この発明に係わる通信方式において、上記
受信側コンピュータは上記オペランドと受信側コンピュ
ータにより、管理された状態とを比較する比較手段と、
上記比較手段による比較結果によりメッセージが即座の
アクションを要求するものであると判断される場合に、
割り込みを生成する割り込み手段を備えたことを特徴と
する。
受信側コンピュータは上記オペランドと受信側コンピュ
ータにより、管理された状態とを比較する比較手段と、
上記比較手段による比較結果によりメッセージが即座の
アクションを要求するものであると判断される場合に、
割り込みを生成する割り込み手段を備えたことを特徴と
する。
【0047】この発明に係わる通信方式は、さらに受信
側コンピュータに記憶された情報を更新する更新手段を
備えたことを特徴とする。
側コンピュータに記憶された情報を更新する更新手段を
備えたことを特徴とする。
【0048】この発明に係わる通信方式は、さらに上記
比較手段の比較結果により、メッセージが即座のアクシ
ョンを要求していないと判断される場合に、メッセージ
を待ち行列にキューイングするキューイング手段を備え
たことを特徴とする。
比較手段の比較結果により、メッセージが即座のアクシ
ョンを要求していないと判断される場合に、メッセージ
を待ち行列にキューイングするキューイング手段を備え
たことを特徴とする。
【0049】この発明に係わる通信方式において、上記
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられたアドレスレジスタを示
すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方式はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る手段と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する手段を備えたことを特徴とする。
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられたアドレスレジスタを示
すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方式はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る手段と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する手段を備えたことを特徴とする。
【0050】この発明に係わる通信方法は、送信側コン
ピュータと受信側コンピュータをネットワークで接続
し、受信側コンピュータはオペレーティングシステムに
より制御されたプロセッサに接続されたネットワークイ
ンタフェースを有しているコンピュータシステムの通信
方法において、送信側コンピュータからネットワークを
介して受信側コンピュータへ、オペランドと、実行すべ
きアクションの指示と、受信側コンピュータに記憶され
た情報のリファレンスとを含むをメッセージを送信する
送信工程と、受信側コンピュータでメッセージを受信す
る受信工程と、受信側コンピュータにおいて、送信側コ
ンピュータから実行要求があったアクションが許可され
たものであるかを確認する確認工程と、上記確認工程に
よりアクションが実行可能であると判断される場合に、
プロセッサとオペレーティングシステムとは別個に、メ
ッセージのオペランドと受信側コンピュータに記憶され
た情報とに基づいて受信側コンピュータにおいてアクシ
ョンを実行する実行工程とを備えたことを特徴とする。
ピュータと受信側コンピュータをネットワークで接続
し、受信側コンピュータはオペレーティングシステムに
より制御されたプロセッサに接続されたネットワークイ
ンタフェースを有しているコンピュータシステムの通信
方法において、送信側コンピュータからネットワークを
介して受信側コンピュータへ、オペランドと、実行すべ
きアクションの指示と、受信側コンピュータに記憶され
た情報のリファレンスとを含むをメッセージを送信する
送信工程と、受信側コンピュータでメッセージを受信す
る受信工程と、受信側コンピュータにおいて、送信側コ
ンピュータから実行要求があったアクションが許可され
たものであるかを確認する確認工程と、上記確認工程に
よりアクションが実行可能であると判断される場合に、
プロセッサとオペレーティングシステムとは別個に、メ
ッセージのオペランドと受信側コンピュータに記憶され
た情報とに基づいて受信側コンピュータにおいてアクシ
ョンを実行する実行工程とを備えたことを特徴とする。
【0051】この発明に係わる通信方法において、上記
オペランドは受信側コンピュータのメモリのアドレスを
示すものであり、上記実行工程は、メッセージのアドレ
スと受信側コンピュータに記憶された情報に基づいて、
受信側コンピュータのメモリの所定の位置にメッセージ
を格納するメッセージ格納工程を備えたことを特徴とす
る。
オペランドは受信側コンピュータのメモリのアドレスを
示すものであり、上記実行工程は、メッセージのアドレ
スと受信側コンピュータに記憶された情報に基づいて、
受信側コンピュータのメモリの所定の位置にメッセージ
を格納するメッセージ格納工程を備えたことを特徴とす
る。
【0052】この発明に係わる通信方法において、上記
オペランドは、受信側コンピュータのメモリのアドレス
を記憶するネットワークインタフェース内のアドレスレ
ジスタを示すものであり、上記受信側コンピュータに記
憶された情報は、アドレスレジスタに記憶されたアドレ
スであり、上記通信方法は、さらに、オペランドにより
示されたアドレスレジスタからアドレスを得る工程と、
得られたアドレスに基づいて、メモリにメッセージを記
憶する工程を備えたことを特徴とする。
オペランドは、受信側コンピュータのメモリのアドレス
を記憶するネットワークインタフェース内のアドレスレ
ジスタを示すものであり、上記受信側コンピュータに記
憶された情報は、アドレスレジスタに記憶されたアドレ
スであり、上記通信方法は、さらに、オペランドにより
示されたアドレスレジスタからアドレスを得る工程と、
得られたアドレスに基づいて、メモリにメッセージを記
憶する工程を備えたことを特徴とする。
【0053】この発明に係わる通信方法において、上記
オペランドは、さらに、オフセットを示すものであり、
上記通信方法は、さらに、オフセットによりアドレスレ
ジスタのアドレスを修飾する工程を備えたことを特徴と
する。
オペランドは、さらに、オフセットを示すものであり、
上記通信方法は、さらに、オフセットによりアドレスレ
ジスタのアドレスを修飾する工程を備えたことを特徴と
する。
【0054】この発明に係わる通信方法において、上記
実行工程はオペランドと受信側コンピュータに記憶され
た情報を比較する比較工程と、上記比較工程の比較結果
によりメッセージが即座の実行を要求するものである場
合に、プロセッサに対して、割り込みを発生する割り込
み工程を備えたことを特徴とする。
実行工程はオペランドと受信側コンピュータに記憶され
た情報を比較する比較工程と、上記比較工程の比較結果
によりメッセージが即座の実行を要求するものである場
合に、プロセッサに対して、割り込みを発生する割り込
み工程を備えたことを特徴とする。
【0055】この発明に係わる通信方法は、さらに、受
信側コンピュータに記憶された情報を更新する更新工程
を備えたことを特徴とする。
信側コンピュータに記憶された情報を更新する更新工程
を備えたことを特徴とする。
【0056】この発明に係わる通信方法は、さらに、上
記比較工程の比較の結果メッセージが即座の実行を要求
していない場合に、メッセージを待ち行列にキューイン
グするキューイング工程を備えたことを特徴とする。
記比較工程の比較の結果メッセージが即座の実行を要求
していない場合に、メッセージを待ち行列にキューイン
グするキューイング工程を備えたことを特徴とする。
【0057】この発明に係わる通信方法において、上記
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられたアドレスレジスタを示
すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方法はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る工程と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する工程を備えたことを特徴とする。
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられたアドレスレジスタを示
すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方法はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る工程と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する工程を備えたことを特徴とする。
【0058】この発明に係わる通信方式は、マルチユー
ザコンピュータのネットワークの通信方式であって、送
信側コンピュータと受信側コンピュータを備え、受信側
コンピュータはプロセッサとメモリを有しており、上記
メモリの一部は上記プロセッサによって実行されるアプ
リケーションプログラムに割り当てられている通信方式
において、送信側コンピュータにおいて、オペランド
と、受信側コンピュータに記憶された情報のリファレン
スと、アプリケーションプログラムに引き渡すデータを
含むメッセージを、ネットワークを介して受信側コンピ
ュータに送信する送信手段と、受信側コンピュータにお
いて、上記メッセージの受信により動作する手段であっ
て、アプリケーションプログラムに割り当てられたメモ
リの所定の位置であって、上記所定の位置は、そのメッ
セージ以前に受信したメッセージのデータの格納位置と
は独立した位置であって、送信側コンピュータのステー
トと受信側コンピュータに記憶された情報によって決定
される所定の位置にメッセージのデータを直接格納する
直接格納手段と、受信側コンピュータにおいて、上記メ
ッセージの受信により動作する手段であって、送信側コ
ンピュータのステートと受信側コンピュータに記憶され
た情報に基づいて、プロセッサに対して条件的に割り込
みを発生する割り込み手段を備えたことを特徴とする。
ザコンピュータのネットワークの通信方式であって、送
信側コンピュータと受信側コンピュータを備え、受信側
コンピュータはプロセッサとメモリを有しており、上記
メモリの一部は上記プロセッサによって実行されるアプ
リケーションプログラムに割り当てられている通信方式
において、送信側コンピュータにおいて、オペランド
と、受信側コンピュータに記憶された情報のリファレン
スと、アプリケーションプログラムに引き渡すデータを
含むメッセージを、ネットワークを介して受信側コンピ
ュータに送信する送信手段と、受信側コンピュータにお
いて、上記メッセージの受信により動作する手段であっ
て、アプリケーションプログラムに割り当てられたメモ
リの所定の位置であって、上記所定の位置は、そのメッ
セージ以前に受信したメッセージのデータの格納位置と
は独立した位置であって、送信側コンピュータのステー
トと受信側コンピュータに記憶された情報によって決定
される所定の位置にメッセージのデータを直接格納する
直接格納手段と、受信側コンピュータにおいて、上記メ
ッセージの受信により動作する手段であって、送信側コ
ンピュータのステートと受信側コンピュータに記憶され
た情報に基づいて、プロセッサに対して条件的に割り込
みを発生する割り込み手段を備えたことを特徴とする。
【0059】この発明に係わる通信方式は、さらに、受
信側コンピュータにおいて、送信側コンピュータが情報
をアクセスすることを受信側コンピュータによって許可
されていない場合に、受信側コンピュータに記憶された
情報をアクセスすることを防止する手段を備えたことを
特徴とする。
信側コンピュータにおいて、送信側コンピュータが情報
をアクセスすることを受信側コンピュータによって許可
されていない場合に、受信側コンピュータに記憶された
情報をアクセスすることを防止する手段を備えたことを
特徴とする。
【0060】この発明に係わる通信方式は、さらに、受
信側コンピュータにおいて、上記メッセージの受信によ
り動作する手段であって、送信側コンピュータのステー
トに基づいて、受信側コンピュータに記憶された情報を
変更する手段を備えたことを特徴とする。
信側コンピュータにおいて、上記メッセージの受信によ
り動作する手段であって、送信側コンピュータのステー
トに基づいて、受信側コンピュータに記憶された情報を
変更する手段を備えたことを特徴とする。
【0061】この発明に係わるネットワークインタフェ
ースは、マルチユーザコンピュータのネットワークの通
信方式であって、送信側コンピュータと受信側コンピュ
ータを備え、受信側コンピュータはプロセッサとメモリ
を有しており、上記メモリの一部は上記プロセッサによ
って実行されるアプリケーションプログラムに割り当て
られており、上記送信側コンピュータは、送信側コンピ
ュータのステートを示すオペランドと、受信側コンピュ
ータに記憶された情報へのリファレンスと、アプリケー
ションプログラムへ引き渡すデータとを含むメッセージ
をネットワークを介して受信側コンピュータに送信する
ネットワークインタフェースにおいて、受信側コンピュ
ータにおいて、上記メッセージの受信により動作する手
段であって、アプリケーションプログラムに割り当てら
れたメモリの所定の位置であって、上記所定の位置は、
そのメッセージ以前に受信したメッセージのデータの格
納位置とは独立した位置であって、送信側コンピュータ
のステートと受信側コンピュータに記憶された情報とに
よって決定される所定の位置であって、そのメッセージ
以前に受信したメッセージを格納するために使われた位
置とは独立に決定される所定の位置に、メッセージのデ
ータを直接格納する直接格納手段と、上記メッセージの
受信により動作する手段であって、送信側コンピュータ
のステートと受信側コンピュータに記憶された情報とに
基づいて、プロセッサに対して条件的に割り込みを発生
する割り込み手段を備えたことを特徴とする。
ースは、マルチユーザコンピュータのネットワークの通
信方式であって、送信側コンピュータと受信側コンピュ
ータを備え、受信側コンピュータはプロセッサとメモリ
を有しており、上記メモリの一部は上記プロセッサによ
って実行されるアプリケーションプログラムに割り当て
られており、上記送信側コンピュータは、送信側コンピ
ュータのステートを示すオペランドと、受信側コンピュ
ータに記憶された情報へのリファレンスと、アプリケー
ションプログラムへ引き渡すデータとを含むメッセージ
をネットワークを介して受信側コンピュータに送信する
ネットワークインタフェースにおいて、受信側コンピュ
ータにおいて、上記メッセージの受信により動作する手
段であって、アプリケーションプログラムに割り当てら
れたメモリの所定の位置であって、上記所定の位置は、
そのメッセージ以前に受信したメッセージのデータの格
納位置とは独立した位置であって、送信側コンピュータ
のステートと受信側コンピュータに記憶された情報とに
よって決定される所定の位置であって、そのメッセージ
以前に受信したメッセージを格納するために使われた位
置とは独立に決定される所定の位置に、メッセージのデ
ータを直接格納する直接格納手段と、上記メッセージの
受信により動作する手段であって、送信側コンピュータ
のステートと受信側コンピュータに記憶された情報とに
基づいて、プロセッサに対して条件的に割り込みを発生
する割り込み手段を備えたことを特徴とする。
【0062】この発明に係わるネットワークインタフェ
ースは、さらに、送信側コンピュータが情報をアクセス
することを受信側コンピュータによって許可されていな
い場合に、受信側コンピュータに記憶された情報をアク
セスすることを防止する手段を備えたことを特徴とす
る。
ースは、さらに、送信側コンピュータが情報をアクセス
することを受信側コンピュータによって許可されていな
い場合に、受信側コンピュータに記憶された情報をアク
セスすることを防止する手段を備えたことを特徴とす
る。
【0063】この発明に係わるネットワークインタフェ
ースは、さらに上記メッセージの受信により動作する手
段であって、送信側コンピュータのステートに基づい
て、受信側コンピュータに記憶された情報を変更する手
段を備えたことを特徴とする。
ースは、さらに上記メッセージの受信により動作する手
段であって、送信側コンピュータのステートに基づい
て、受信側コンピュータに記憶された情報を変更する手
段を備えたことを特徴とする。
【0064】
【作用】この発明の通信方式は、実行手段が受信側コン
ピュータのプロセッサとオペレーティングシステムとは
別個に動作し、メッセージのオペランドと受信側コンピ
ュータに記憶された情報に基づいて、メッセージに指定
されたアクションを実行するので、受信側コンピュータ
のプロセッサとオペレーティングシステムに何ら負荷を
かけない。従って、オーバヘッドの少ない通信方式とな
る。
ピュータのプロセッサとオペレーティングシステムとは
別個に動作し、メッセージのオペランドと受信側コンピ
ュータに記憶された情報に基づいて、メッセージに指定
されたアクションを実行するので、受信側コンピュータ
のプロセッサとオペレーティングシステムに何ら負荷を
かけない。従って、オーバヘッドの少ない通信方式とな
る。
【0065】またこの発明の通信方式は、オペランドに
受信側コンピュータのメモリアドレスを指定することに
より、送信するメッセージをオペランドで指定したメモ
リのアドレスに格納する。
受信側コンピュータのメモリアドレスを指定することに
より、送信するメッセージをオペランドで指定したメモ
リのアドレスに格納する。
【0066】またこの発明の通信方式は、オペランドに
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。
【0067】またこの発明の通信方式は、オペランドに
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。
【0068】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み手段により処理を即座に行なう。
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み手段により処理を即座に行なう。
【0069】またこの発明の通信方式は、更新手段によ
り受信側コンピュータに記憶された情報を更新する。
り受信側コンピュータに記憶された情報を更新する。
【0070】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。
【0071】またこの発明の通信方式は、オペランドに
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。
【0072】またこの発明の通信方式は、送信側コンピ
ュータと受信側コンピュータがそれぞれプロセッサとネ
ットワークインタフェースを有しており、受信側コンピ
ュータのネットワークインタフェースは、メッセージに
示されたアクションを実行する場合にそのアクションが
受信側コンピュータで実行できるアクションであるかど
うかをチェックする。そして、実行が許可されている場
合に、メッセージのオペランドと受信側コンピュータに
記録された情報に基づいてアクションを実行する。
ュータと受信側コンピュータがそれぞれプロセッサとネ
ットワークインタフェースを有しており、受信側コンピ
ュータのネットワークインタフェースは、メッセージに
示されたアクションを実行する場合にそのアクションが
受信側コンピュータで実行できるアクションであるかど
うかをチェックする。そして、実行が許可されている場
合に、メッセージのオペランドと受信側コンピュータに
記録された情報に基づいてアクションを実行する。
【0073】またこの発明の通信方式は、オペランドに
より受信側コンピュータのメモリのアドレスを指定す
る。そしてオペランドにより指定されたアドレスに送ら
れてきたメッセージを格納する。
より受信側コンピュータのメモリのアドレスを指定す
る。そしてオペランドにより指定されたアドレスに送ら
れてきたメッセージを格納する。
【0074】またこの発明の通信方式は、オペランドに
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。
【0075】またこの発明の通信方式は、オペランドに
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。
【0076】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み手段により処理を即座に行なう。
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み手段により処理を即座に行なう。
【0077】またこの発明の通信方式は、更新手段によ
り受信側コンピュータに記憶された情報を更新する。
り受信側コンピュータに記憶された情報を更新する。
【0078】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。
【0079】またこの発明の通信方式は、オペランドに
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。
【0080】この発明の通信方法は、実行工程が受信側
コンピュータのプロセッサとオペレーティングシステム
とは別個に動作し、メッセージのオペランドと受信側コ
ンピュータに記憶された情報に基づいて、メッセージに
指定されたアクションを実行するので、受信側コンピュ
ータのプロセッサとオペレーティングシステムに何ら負
荷をかけない。従って、オーバヘッドの少ない通信方式
となる。
コンピュータのプロセッサとオペレーティングシステム
とは別個に動作し、メッセージのオペランドと受信側コ
ンピュータに記憶された情報に基づいて、メッセージに
指定されたアクションを実行するので、受信側コンピュ
ータのプロセッサとオペレーティングシステムに何ら負
荷をかけない。従って、オーバヘッドの少ない通信方式
となる。
【0081】またこの発明の通信方法は、オペランドに
受信側コンピュータのメモリアドレスを指定することに
より、送信するメッセージをオペランドで指定したメモ
リのアドレスに格納する。
受信側コンピュータのメモリアドレスを指定することに
より、送信するメッセージをオペランドで指定したメモ
リのアドレスに格納する。
【0082】またこの発明の通信方法は、オペランドに
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。
【0083】またこの発明の通信方法は、オペランドに
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。
【0084】またこの発明の通信方法は、比較工程によ
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み工程により処理を即座に行なう。
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み工程により処理を即座に行なう。
【0085】またこの発明の通信方法は、更新工程によ
り受信側コンピュータに記憶された情報を更新する。
り受信側コンピュータに記憶された情報を更新する。
【0086】またこの発明の通信方法は、比較工程によ
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。
【0087】またこの発明の通信方法は、オペランドに
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。
【0088】この発明の通信方式は、送信側コンピュー
タから送信されたメッセージを直接受信側コンピュータ
のメモリに格納する。そして、必要があれば割り込み手
段により、メッセージに指定されたアクションが即座に
実行される。このようにして、オーバヘッドの少ない通
信方式が得られる。
タから送信されたメッセージを直接受信側コンピュータ
のメモリに格納する。そして、必要があれば割り込み手
段により、メッセージに指定されたアクションが即座に
実行される。このようにして、オーバヘッドの少ない通
信方式が得られる。
【0089】またこの発明の通信方式は、権限のないア
クセスを防止することにより保護機能をもっている。
クセスを防止することにより保護機能をもっている。
【0090】またこの発明の通信方式は、変更手段が送
信側コンピュータのステートにもとづいて受信側コンピ
ュータの情報を変更する。
信側コンピュータのステートにもとづいて受信側コンピ
ュータの情報を変更する。
【0091】この発明のネットワークインタフェース
は、アプリケーションプログラムに割り当てられたメモ
リにメッセージを直接格納するので、オーバヘッドを低
減させたシステムを得ることができる。メッセージが格
納される場所は、以前に格納されたメッセージの格納場
所からも独立性が保たれる。また、緊急性を要するメッ
セージが送られた場合には、割り込み手段により即座に
処理が実行される。
は、アプリケーションプログラムに割り当てられたメモ
リにメッセージを直接格納するので、オーバヘッドを低
減させたシステムを得ることができる。メッセージが格
納される場所は、以前に格納されたメッセージの格納場
所からも独立性が保たれる。また、緊急性を要するメッ
セージが送られた場合には、割り込み手段により即座に
処理が実行される。
【0092】この発明のネットワークインタフェース
は、権限のないアクセスを防止することにより保護機能
をもっている。
は、権限のないアクセスを防止することにより保護機能
をもっている。
【0093】またこの発明のネットワークインタフェー
スは、変更手段が送信側コンピュータのステートに基づ
いて、受信側コンピュータの情報を変更する。
スは、変更手段が送信側コンピュータのステートに基づ
いて、受信側コンピュータの情報を変更する。
【0094】
実施例1.この実施例は、ダイレクト・デポジット・メ
ッセージングによるマルチユーザ・コンピュータのネッ
トワークにおいて、オーバヘッドの低い通信のためのネ
ットワークプロトコルとインタフェースについて述べ
る。始めにこの実施例で説明する発明の特徴について述
べる。
ッセージングによるマルチユーザ・コンピュータのネッ
トワークにおいて、オーバヘッドの低い通信のためのネ
ットワークプロトコルとインタフェースについて述べ
る。始めにこの実施例で説明する発明の特徴について述
べる。
【0095】ダイレクト・デポジット・メッセージング
では直接分離するメッセージを指定する。また、例えば
メモリ中でデータをどこに置くかやホストプロセッサへ
の(条件付き)割り込みの制御のように、ダイレクト・
デポジット・メッセージングはデータや制御情報を必要
な場所に直接置くものである。このようなシステムで
は、ホストプロセッサが必要に応じて事象を分けること
で、非同期に発生する事象をコントロールする。例え
ば、データをユーザ・メモリに直接置くような、データ
の受け渡しの事象は、ホストプロセッサを使用せずに直
接処理する。ホストプロセッサが処理する必要がある事
象は、それは主に同期事象であるが、即時の処理が必要
なアクションと、ためておいて都合の良いときに処理す
ればよい遅延可能なアクションとに分けられる。このよ
うにデータと事象を分けるので、すべての事象をバイパ
スするのに必要なリソースを追加する必要はなく、ホス
トプロセッサに関連しない事象をバイパスするに十分な
だけのリソースを追加するだけでよい。
では直接分離するメッセージを指定する。また、例えば
メモリ中でデータをどこに置くかやホストプロセッサへ
の(条件付き)割り込みの制御のように、ダイレクト・
デポジット・メッセージングはデータや制御情報を必要
な場所に直接置くものである。このようなシステムで
は、ホストプロセッサが必要に応じて事象を分けること
で、非同期に発生する事象をコントロールする。例え
ば、データをユーザ・メモリに直接置くような、データ
の受け渡しの事象は、ホストプロセッサを使用せずに直
接処理する。ホストプロセッサが処理する必要がある事
象は、それは主に同期事象であるが、即時の処理が必要
なアクションと、ためておいて都合の良いときに処理す
ればよい遅延可能なアクションとに分けられる。このよ
うにデータと事象を分けるので、すべての事象をバイパ
スするのに必要なリソースを追加する必要はなく、ホス
トプロセッサに関連しない事象をバイパスするに十分な
だけのリソースを追加するだけでよい。
【0096】これら事象の効率的な分離を行うために、
受信側コンピュータは、送信側コンピュータからのメッ
セージの中の情報を用いてメッセージを処理する。メッ
セージに対する受信側コンピュータの応答は、この送信
側コンピュータからの情報と、受信側コンピュータに記
憶されている情報の両方による。メッセージには、送信
側コンピュータの望むオペレーションの指示を含む。つ
まり送信側コンピュータにより指定されたひとつ以上の
オペランド、また受信側コンピュータのステートについ
てのひとつ以上のオペランドが含まれる。受信側コンピ
ュータは必要なアクションが許可されているかどうか確
認し、許可されていれば、送信側コンピュータにより指
定されたオペランドと受信側コンピュータのステートに
従ってそのアクションを実行する。
受信側コンピュータは、送信側コンピュータからのメッ
セージの中の情報を用いてメッセージを処理する。メッ
セージに対する受信側コンピュータの応答は、この送信
側コンピュータからの情報と、受信側コンピュータに記
憶されている情報の両方による。メッセージには、送信
側コンピュータの望むオペレーションの指示を含む。つ
まり送信側コンピュータにより指定されたひとつ以上の
オペランド、また受信側コンピュータのステートについ
てのひとつ以上のオペランドが含まれる。受信側コンピ
ュータは必要なアクションが許可されているかどうか確
認し、許可されていれば、送信側コンピュータにより指
定されたオペランドと受信側コンピュータのステートに
従ってそのアクションを実行する。
【0097】受信側コンピュータで実行されるアクショ
ンは、メッセージの受け渡しがある。その場合、ダイレ
クト、インダイレクト、ポストインクリメント、またイ
ンデックスモードといった種々のアドレス指定モードに
用いる値を、メッセージ中のオペランドが指定してい
る。マルチユーザを保護しながら、かつ、ホストプロセ
ッサやオペレーティングシステムの介入なしに、データ
はこのようなアドレスに直接書き込まれ、直接読み込ま
れる。受信側コンピュータのアクションが、条件付きで
発生される割り込みである場合もある。その場合、メッ
セージが、即時のアクションを要求しているか、または
遅延可能なアクションを要求しているかどうかを、受信
側コンピュータのステートも考慮してオペランドにより
判定する。受信側コンピュータのアクションは、ネット
ワークインタフェースにおけるアドレスレジスタと呼ば
れる特別なメモリの位置に対し起こる場合もある。この
ネットワークインタフェースは、特に、非同期転送方式
(ATM)ネットワークに有効である。そのネットワー
ク内では、メッセージは、セルと呼ばれる一定の規格の
基本的なデータユニットとされる。
ンは、メッセージの受け渡しがある。その場合、ダイレ
クト、インダイレクト、ポストインクリメント、またイ
ンデックスモードといった種々のアドレス指定モードに
用いる値を、メッセージ中のオペランドが指定してい
る。マルチユーザを保護しながら、かつ、ホストプロセ
ッサやオペレーティングシステムの介入なしに、データ
はこのようなアドレスに直接書き込まれ、直接読み込ま
れる。受信側コンピュータのアクションが、条件付きで
発生される割り込みである場合もある。その場合、メッ
セージが、即時のアクションを要求しているか、または
遅延可能なアクションを要求しているかどうかを、受信
側コンピュータのステートも考慮してオペランドにより
判定する。受信側コンピュータのアクションは、ネット
ワークインタフェースにおけるアドレスレジスタと呼ば
れる特別なメモリの位置に対し起こる場合もある。この
ネットワークインタフェースは、特に、非同期転送方式
(ATM)ネットワークに有効である。そのネットワー
ク内では、メッセージは、セルと呼ばれる一定の規格の
基本的なデータユニットとされる。
【0098】この発明のインタフェースデザインにおい
ても、マルチ・セル・フォーマットをサポートする。マ
ルチ・セル・フォーマットでは、セルのストリームの中
で、はじめのセルはコントロールセル、それに続くセル
は純粋にデータからなる。このような方法で、帯域幅を
広げている。
ても、マルチ・セル・フォーマットをサポートする。マ
ルチ・セル・フォーマットでは、セルのストリームの中
で、はじめのセルはコントロールセル、それに続くセル
は純粋にデータからなる。このような方法で、帯域幅を
広げている。
【0099】また、この発明においては、エンドポイン
ト同士の共有が自由にできるように、重複するエンドポ
イントを備える。アドレスレジスタへのアクセスは、ウ
ィンドウと呼ばれる連続したレジスタ・ブロックに限ら
れる。エンドポイントと同様、アドレスレジスタ・ウィ
ンドウは、他のアドレスレジスタ・ウィンドウとの間で
重複とネスティングを許す。これにより、アドレスレジ
スタ・ウィンドウの共有を自在に制御することができ
る。また、この発明は、送信側コンピュータの異なるレ
ジスタへのアクセスをさせないように、アドレスレジス
タの保護機構を備えている。
ト同士の共有が自由にできるように、重複するエンドポ
イントを備える。アドレスレジスタへのアクセスは、ウ
ィンドウと呼ばれる連続したレジスタ・ブロックに限ら
れる。エンドポイントと同様、アドレスレジスタ・ウィ
ンドウは、他のアドレスレジスタ・ウィンドウとの間で
重複とネスティングを許す。これにより、アドレスレジ
スタ・ウィンドウの共有を自在に制御することができ
る。また、この発明は、送信側コンピュータの異なるレ
ジスタへのアクセスをさせないように、アドレスレジス
タの保護機構を備えている。
【0100】また、この発明では、他にも種々の強化策
が採られている。例えば、例外処理とフロー・コントロ
ールを統合したり、コネクションとエンドポイント・テ
ーブルのページング、グローバル・レジスタの追加、ト
ランスレーション・ルックアサイド・バッファのミスを
減らすためハイブリッド・マッピングを使うといったこ
とである。
が採られている。例えば、例外処理とフロー・コントロ
ールを統合したり、コネクションとエンドポイント・テ
ーブルのページング、グローバル・レジスタの追加、ト
ランスレーション・ルックアサイド・バッファのミスを
減らすためハイブリッド・マッピングを使うといったこ
とである。
【0101】また、メッセージのオペレーション・フィ
ールドに命令ポインタを記述し、命令ポインタにより受
信側コンピュータのインストラクションメモリをアクセ
ス可能とし、命令ポインタによりアクセス可能なインス
トラクション・メモリの部分に、受信側コンピュータで
実施できるハイ・レベル・オペレーションを備えること
も可能である。その結果、送信側コンピュータは受信側
コンピュータの知識から隔離される。こうして、センダ
・ベースド・アドレッシングとレシーバ・ベースド・ア
ドレッシングのフル・スペクトラム・オペレーションが
得られる。
ールドに命令ポインタを記述し、命令ポインタにより受
信側コンピュータのインストラクションメモリをアクセ
ス可能とし、命令ポインタによりアクセス可能なインス
トラクション・メモリの部分に、受信側コンピュータで
実施できるハイ・レベル・オペレーションを備えること
も可能である。その結果、送信側コンピュータは受信側
コンピュータの知識から隔離される。こうして、センダ
・ベースド・アドレッシングとレシーバ・ベースド・ア
ドレッシングのフル・スペクトラム・オペレーションが
得られる。
【0102】このシステムによれば、送信側コンピュー
タは、メッセージに対して必要なアクションについて可
能な限りの指定をすることができる。一方、受信側コン
ピュータでは、保護のためのメッセージ受信を制御する
ことができる。また、受信側コンピュータに付随するオ
ペレーションのためにメッセージ受信を制御することが
できる。このようにすることで、通信オーバヘッドが少
なくできる。また、送信側コンピュータと受信側コンピ
ュータ双方の情報を使って、メッセージを必要な場所へ
直接分離するので、遅延時間を少なくできる。受信側コ
ンピュータのプロセッサは、同期化が必要なときだけ動
作する。つまり、割り込みはメッセージ毎に必要か否
か、ふるいにかけられる。そのメッセージが即時のアク
ションを必要とする場合のみ、割り込みが発生するの
で、プロセッサへの影響が少ない。このように、非同期
事象のコントロールと、ダイレクト・デポジット・メッ
セージングを組み合わせることにより、柔軟性が増す。
制御とデータとの分離が行えるとともに、完全な保護機
構を伴うことができ、オーバヘッドの少ないシステムを
提供する。このネットワークインタフェースとプロトコ
ルは、各種のネットワークに、また並列、分散、リアル
タイム・コンピュータにおいて、幅広く応用できる。
タは、メッセージに対して必要なアクションについて可
能な限りの指定をすることができる。一方、受信側コン
ピュータでは、保護のためのメッセージ受信を制御する
ことができる。また、受信側コンピュータに付随するオ
ペレーションのためにメッセージ受信を制御することが
できる。このようにすることで、通信オーバヘッドが少
なくできる。また、送信側コンピュータと受信側コンピ
ュータ双方の情報を使って、メッセージを必要な場所へ
直接分離するので、遅延時間を少なくできる。受信側コ
ンピュータのプロセッサは、同期化が必要なときだけ動
作する。つまり、割り込みはメッセージ毎に必要か否
か、ふるいにかけられる。そのメッセージが即時のアク
ションを必要とする場合のみ、割り込みが発生するの
で、プロセッサへの影響が少ない。このように、非同期
事象のコントロールと、ダイレクト・デポジット・メッ
セージングを組み合わせることにより、柔軟性が増す。
制御とデータとの分離が行えるとともに、完全な保護機
構を伴うことができ、オーバヘッドの少ないシステムを
提供する。このネットワークインタフェースとプロトコ
ルは、各種のネットワークに、また並列、分散、リアル
タイム・コンピュータにおいて、幅広く応用できる。
【0103】以上がこの実施例で述べる発明の特徴であ
り、以下図を用いてこの発明についてより具体的に説明
する。図1は、この実施例の通信システムのブロック図
である。送信側コンピュータ270と受信側コンピュー
タ272は、ネットワークインタフェース274と27
6を介してネットワーク82により結合される。送信側
コンピュータ270と受信側コンピュータ272は、そ
れぞれ所望のオペレーティングシステム278と280
に適合するようにプログラムされたプロセッサ54と7
0を持つ。この発明を説明するために、以下、エンドポ
イントとコネクションという用語を用いる。この発明は
コンピュータ・ネットワークの多くのタイプに適応でき
るものであり、以下に述べるエンドポイントとコネクシ
ョンはこの発明を限定するものではない。この実施例で
エンドポイントは、仮想メモリの連続する領域を指すも
のとする。2つのエンドポイントの間は、通信するよう
設定されたバーチャルチャネルにより結合される。この
結合は、1対多または多対1のマルチキャストでもよ
い。即ち1:1またはn:nのエンドポイントの組み合
わせには制限されない。アプリケーション58と60
は、送信側コンピュータ270上で実行され、アプリケ
ーション78と80は、受信側コンピュータ272上
で、実行される。これらのアプリケーションは1つ以上
のエンドポイントが割り当てられている。例えば、エン
ドポイント66、68、79、81である。オペレーテ
ィングシステム278と280は、コネクションのステ
ート情報とマッピング情報282と284を持つ。これ
らは、送信側コンピュータ270と受信側コンピュータ
272の状態を示す。この情報は、ネットワークインタ
フェース274、276上の286、288に貯えられ
る。
り、以下図を用いてこの発明についてより具体的に説明
する。図1は、この実施例の通信システムのブロック図
である。送信側コンピュータ270と受信側コンピュー
タ272は、ネットワークインタフェース274と27
6を介してネットワーク82により結合される。送信側
コンピュータ270と受信側コンピュータ272は、そ
れぞれ所望のオペレーティングシステム278と280
に適合するようにプログラムされたプロセッサ54と7
0を持つ。この発明を説明するために、以下、エンドポ
イントとコネクションという用語を用いる。この発明は
コンピュータ・ネットワークの多くのタイプに適応でき
るものであり、以下に述べるエンドポイントとコネクシ
ョンはこの発明を限定するものではない。この実施例で
エンドポイントは、仮想メモリの連続する領域を指すも
のとする。2つのエンドポイントの間は、通信するよう
設定されたバーチャルチャネルにより結合される。この
結合は、1対多または多対1のマルチキャストでもよ
い。即ち1:1またはn:nのエンドポイントの組み合
わせには制限されない。アプリケーション58と60
は、送信側コンピュータ270上で実行され、アプリケ
ーション78と80は、受信側コンピュータ272上
で、実行される。これらのアプリケーションは1つ以上
のエンドポイントが割り当てられている。例えば、エン
ドポイント66、68、79、81である。オペレーテ
ィングシステム278と280は、コネクションのステ
ート情報とマッピング情報282と284を持つ。これ
らは、送信側コンピュータ270と受信側コンピュータ
272の状態を示す。この情報は、ネットワークインタ
フェース274、276上の286、288に貯えられ
る。
【0104】メッセージ290は、制御情報とデータと
供に受信側コンピュータ270から送信側コンピュータ
272に送られる。制御情報は、実行される処理の指示
と、送信側コンピュータの状態を示す1つ以上のオペラ
ンドと、受信側コンピュータに記憶された情報への1つ
以上のリファレンスを含むこともある。受信側コンピュ
ータに記憶されたこの情報は、受信側コンピュータによ
り維持されるステートあるいはレシーバステートとよば
れる。
供に受信側コンピュータ270から送信側コンピュータ
272に送られる。制御情報は、実行される処理の指示
と、送信側コンピュータの状態を示す1つ以上のオペラ
ンドと、受信側コンピュータに記憶された情報への1つ
以上のリファレンスを含むこともある。受信側コンピュ
ータに記憶されたこの情報は、受信側コンピュータによ
り維持されるステートあるいはレシーバステートとよば
れる。
【0105】図2は、図1に示すシステムの一般的な動
作のフローチャートである。ステップ115において、
送信側コンピュータは、始めに制御情報とデータを個別
に生成し、1つのメッセージを組み立てる。図1に示す
コマンド101の例のように、”センド”コマンドはコ
ネクション識別子、データのアドレス、制御情報、送ら
れるデータの量を含む。ステップ112において、この
メッセージは、アプリケーションメモリからネットワー
クに直接送出される。ステップ113において、メッセ
ージはネットワークからネットワークインタフェースに
取り出される。ステップ116において、ネットワーク
インタフェースはメッセージを分離し、メモリに直接デ
ータを置く。そして/あるいは、場合によってはプロセ
ッサに割り込みをかける。
作のフローチャートである。ステップ115において、
送信側コンピュータは、始めに制御情報とデータを個別
に生成し、1つのメッセージを組み立てる。図1に示す
コマンド101の例のように、”センド”コマンドはコ
ネクション識別子、データのアドレス、制御情報、送ら
れるデータの量を含む。ステップ112において、この
メッセージは、アプリケーションメモリからネットワー
クに直接送出される。ステップ113において、メッセ
ージはネットワークからネットワークインタフェースに
取り出される。ステップ116において、ネットワーク
インタフェースはメッセージを分離し、メモリに直接デ
ータを置く。そして/あるいは、場合によってはプロセ
ッサに割り込みをかける。
【0106】エンドポイント66からのメッセージは、
送信側コンピュータのオペレーティングシステムとホス
トプロセッサをバイパスする。場合によってプロセッサ
70と受信側コンピュータ272に割り込みをかけるか
どうか決定するために、受信側コンピュータにおいて、
オペランドがコネクション・ステート情報と比較される
こともあるかもしれない。また、これらのオペランド
は、コネクション、ステート、マッピング情報と結びつ
くこともある。マッピング情報は、例えば、メッセージ
データを置くためのメモリ上のエンドポイント79のア
ドレスを決定する。
送信側コンピュータのオペレーティングシステムとホス
トプロセッサをバイパスする。場合によってプロセッサ
70と受信側コンピュータ272に割り込みをかけるか
どうか決定するために、受信側コンピュータにおいて、
オペランドがコネクション・ステート情報と比較される
こともあるかもしれない。また、これらのオペランド
は、コネクション、ステート、マッピング情報と結びつ
くこともある。マッピング情報は、例えば、メッセージ
データを置くためのメモリ上のエンドポイント79のア
ドレスを決定する。
【0107】このように、メッセージデータをオペレー
ティングシステムのメッセージバッファからアプリケー
ションメモリへコピーする事が省かれている。さらに、
割り込みは、送信側コンピュータと受信側コンピュータ
双方の状態により、場合によって発生する。メッセージ
データが置かれるアドレスは、送信側コンピュータの状
態と受信側コンピュータの状態によって決定される。そ
のため、送信側コンピュータは、受信側コンピュータに
ついて過度の情報を持つ必要はない。
ティングシステムのメッセージバッファからアプリケー
ションメモリへコピーする事が省かれている。さらに、
割り込みは、送信側コンピュータと受信側コンピュータ
双方の状態により、場合によって発生する。メッセージ
データが置かれるアドレスは、送信側コンピュータの状
態と受信側コンピュータの状態によって決定される。そ
のため、送信側コンピュータは、受信側コンピュータに
ついて過度の情報を持つ必要はない。
【0108】このシステムは、メッセージの送信は単純
であるべきであるという考えに基づく。ところが、メッ
セージを受け取るという性質は非同期であることから、
メッセージの受信は複雑である。受信側コンピュータに
おけるメッセージの処理は、メッセージの受け渡しとメ
ッセージアクションの実行は分けるべきである。このよ
うに別々に処理することにより、メッセージが非同期に
到着しても対応できる。メッセージの受け渡しやメッセ
ージアクションの実行という事象は、受信側コンピュー
タのホストプロセッサの必要性により見分けられる。メ
ッセージの受け渡しのような事象は、ホストプロセッサ
が直接処理する必要はない。他の事象は、主に同期をと
るための事象であるが、ホストプロセッサとの対話を必
要とする。他の事象はさらにすぐに処理される必要があ
るアクションと処理が遅れてもよいアクションに分けら
れる。処理が遅れてよいものは集められて、ホストプロ
セッサにとって都合の良いときに処理される。以上のよ
うにデータと事象の分離により、追加すべきリソース
は、全ての事象をバイパスするのに必要なリソースでは
なく、ホストプロセッサに関連しない事象をバイパスす
るリソースだけでよくなる。
であるべきであるという考えに基づく。ところが、メッ
セージを受け取るという性質は非同期であることから、
メッセージの受信は複雑である。受信側コンピュータに
おけるメッセージの処理は、メッセージの受け渡しとメ
ッセージアクションの実行は分けるべきである。このよ
うに別々に処理することにより、メッセージが非同期に
到着しても対応できる。メッセージの受け渡しやメッセ
ージアクションの実行という事象は、受信側コンピュー
タのホストプロセッサの必要性により見分けられる。メ
ッセージの受け渡しのような事象は、ホストプロセッサ
が直接処理する必要はない。他の事象は、主に同期をと
るための事象であるが、ホストプロセッサとの対話を必
要とする。他の事象はさらにすぐに処理される必要があ
るアクションと処理が遅れてもよいアクションに分けら
れる。処理が遅れてよいものは集められて、ホストプロ
セッサにとって都合の良いときに処理される。以上のよ
うにデータと事象の分離により、追加すべきリソース
は、全ての事象をバイパスするのに必要なリソースでは
なく、ホストプロセッサに関連しない事象をバイパスす
るリソースだけでよくなる。
【0109】メッセージの受け渡しは、受信側コンピュ
ータ上のメモリの所望の位地にメッセージをおくことを
意味する。例えば、リモート・ライトまたは、ダイレク
ト・メモリ・アクセス(DMA)がある。メッセージア
クションは、メッセージを受信した応答としてなにか処
理をすることである。例えば、値を返すとか、読み出し
を実行するとか、データが到着したことをタスクに知ら
せるとか、スケジューラの待ち行列にあるタスクを実行
可能とするとか、(ここで、スケジューラの待ち行列と
は、プロセッサによって実行されるタスクであることを
示すデータ構造である。)または、任意の割り込み処理
の実行があげられる。具体例として、リモート・プロシ
ージャ・コール(RPC)の実行があげられる。処理を
即座に行うか、あるいは後に行うかは以下のことによ
る。 1)リモートプロセスが、アクションを要求しており、
要求したアクションの結果を待っているかどうか?(こ
れ以降、このリモートプロセスをウェイティングタスク
と呼ぶ。このウェイティングタスクは常に、送信側コン
ピュータに存在しているとは限らない。) 2)アクションの優先順位と受信側コンピュータの他の
処理の優先順位との関係はどうか? すぐに実行しなければならない処理の例は、ウェイティ
ングタスクが実行の結果を必要とする読み出し処理や、
同期処理である。または、オペレーティングシステムの
処理のような、高い優先度を持つ制御処理である。通常
の遅れてもよい処理の例は、データが到着したことをタ
スクの知らせたり、スケジューラの待ち行列にあるタス
クを処理可能とするものである。リレーテッドメッセー
ジも、すぐに処理しなくてもよいメッセージのひとつで
ある。
ータ上のメモリの所望の位地にメッセージをおくことを
意味する。例えば、リモート・ライトまたは、ダイレク
ト・メモリ・アクセス(DMA)がある。メッセージア
クションは、メッセージを受信した応答としてなにか処
理をすることである。例えば、値を返すとか、読み出し
を実行するとか、データが到着したことをタスクに知ら
せるとか、スケジューラの待ち行列にあるタスクを実行
可能とするとか、(ここで、スケジューラの待ち行列と
は、プロセッサによって実行されるタスクであることを
示すデータ構造である。)または、任意の割り込み処理
の実行があげられる。具体例として、リモート・プロシ
ージャ・コール(RPC)の実行があげられる。処理を
即座に行うか、あるいは後に行うかは以下のことによ
る。 1)リモートプロセスが、アクションを要求しており、
要求したアクションの結果を待っているかどうか?(こ
れ以降、このリモートプロセスをウェイティングタスク
と呼ぶ。このウェイティングタスクは常に、送信側コン
ピュータに存在しているとは限らない。) 2)アクションの優先順位と受信側コンピュータの他の
処理の優先順位との関係はどうか? すぐに実行しなければならない処理の例は、ウェイティ
ングタスクが実行の結果を必要とする読み出し処理や、
同期処理である。または、オペレーティングシステムの
処理のような、高い優先度を持つ制御処理である。通常
の遅れてもよい処理の例は、データが到着したことをタ
スクの知らせたり、スケジューラの待ち行列にあるタス
クを処理可能とするものである。リレーテッドメッセー
ジも、すぐに処理しなくてもよいメッセージのひとつで
ある。
【0110】多くの場合、システムは即座に応答する必
要がないように構成される。例えば、リモート・ノード
はメッセージアクションからの応答を待つ間、他のタス
クを実行する。例えばデータが到着したということを動
作中でないプロセスに知らせるというような、今実行さ
れていないウェイティングタスクに対してメッセージが
到着した場合でも、そのメッセージに対する応答に関す
るアクションは、遅れてしまうかもしれない。処理が遅
れるとき、後で受信側コンピュータのもっと都合の良い
ときに、処理するよう待ち行列にいれられる場合もあ
る。このように処理が遅れてもよいメッセージは、同期
事象となる。メッセージを待ち行列にいれるということ
は、メッセージを送り、キューポインタを更新すること
である。
要がないように構成される。例えば、リモート・ノード
はメッセージアクションからの応答を待つ間、他のタス
クを実行する。例えばデータが到着したということを動
作中でないプロセスに知らせるというような、今実行さ
れていないウェイティングタスクに対してメッセージが
到着した場合でも、そのメッセージに対する応答に関す
るアクションは、遅れてしまうかもしれない。処理が遅
れるとき、後で受信側コンピュータのもっと都合の良い
ときに、処理するよう待ち行列にいれられる場合もあ
る。このように処理が遅れてもよいメッセージは、同期
事象となる。メッセージを待ち行列にいれるということ
は、メッセージを送り、キューポインタを更新すること
である。
【0111】この種のプロトコルをここではダイレクト
・デポジット・メッセージングと呼ぶ。ダイレクト・デ
ポジット・メッセージングを実施するため、メッセージ
はコネクションと制御情報とデータを含む。コネクショ
ンは、受信側コンピュータのエンドポイントを暗黙に識
別する識別子である。制御情報は、実行すべきアクショ
ンと1つ以上のオペランドを指す。各オペランドは、受
信側コンピュータにより使われるアドレスのこともあ
る。あるいは、各オペランドは、そのアクションがすぐ
に実行されるべきものか、遅れてもよいものかを決定す
るのに使うパラメータのこともある。あるいは、あるレ
シーバの状態の名前のこともある。アドレスは、エンド
ポイントのベースからのオフセットとしてコード化され
る。オフセットは、ネットワークのロジカルアドレスで
あることが必須である。ネットワークのロジカルアドレ
スを用いることにより、例えば、アドレススペースの大
きさや、仮想空間と実空間のマッピングや、ページサイ
ズなどのアドレスを決める際の細かな点を、受信側コン
ピュータと送信側コンピュータは考慮しなくてよい。こ
のため、アドレスの変更や、異種ノードの収容が容易に
なる。さらに、オフセットは、仮想アドレスまたは実ア
ドレスの全範囲を示すことが必要とされないため、より
少ないビット数でメッセージにコード化できる。
・デポジット・メッセージングと呼ぶ。ダイレクト・デ
ポジット・メッセージングを実施するため、メッセージ
はコネクションと制御情報とデータを含む。コネクショ
ンは、受信側コンピュータのエンドポイントを暗黙に識
別する識別子である。制御情報は、実行すべきアクショ
ンと1つ以上のオペランドを指す。各オペランドは、受
信側コンピュータにより使われるアドレスのこともあ
る。あるいは、各オペランドは、そのアクションがすぐ
に実行されるべきものか、遅れてもよいものかを決定す
るのに使うパラメータのこともある。あるいは、あるレ
シーバの状態の名前のこともある。アドレスは、エンド
ポイントのベースからのオフセットとしてコード化され
る。オフセットは、ネットワークのロジカルアドレスで
あることが必須である。ネットワークのロジカルアドレ
スを用いることにより、例えば、アドレススペースの大
きさや、仮想空間と実空間のマッピングや、ページサイ
ズなどのアドレスを決める際の細かな点を、受信側コン
ピュータと送信側コンピュータは考慮しなくてよい。こ
のため、アドレスの変更や、異種ノードの収容が容易に
なる。さらに、オフセットは、仮想アドレスまたは実ア
ドレスの全範囲を示すことが必要とされないため、より
少ないビット数でメッセージにコード化できる。
【0112】ホストプロセッサまたはオペレーティング
システムを介在せずに、単純に実施されるような単純な
アクションつまり、通常のオペレーションが提供され
る。更に複雑なアクションは、ホストプロセッサによっ
て処理される。単純なアクションとは、ここでは単純な
データの移動を意味する。つまり、エンドポイントの位
置へ読み出しあるいは書き出しをしたり、遅れてもよい
または直ちに処理をする条件付き割り込みをホストプロ
セッサに出す。単純なオペレーションとは、送信側コン
ピュータが出す直接の読み出し、書き出しのようなデー
タ転送である。送信側コンピュータは、直接の書き出し
のために、送信側コンピュータのエンドポイントのベー
スからのオフセットにより、ソースデータを指定し、受
信側の位置は受信側コンピュータのエンドポイントのベ
ースからのオフセットにより指定する。メッセージは、
受信側のオフセットとデータを含む。読み出しのために
送信側コンピュータは、受信側コンピュータへの直接書
き出しの要求を伴ったメッセージを送る。このメッセー
ジは、受信側コンピュータにおけるオフセットと、返答
のための送信側コンピュータにおけるデータを読み込む
ためのオフセットで指定する。メッセージは、コネクシ
ョンが全二重通信可能でなければ、応答用コネクション
に指示を含む。
システムを介在せずに、単純に実施されるような単純な
アクションつまり、通常のオペレーションが提供され
る。更に複雑なアクションは、ホストプロセッサによっ
て処理される。単純なアクションとは、ここでは単純な
データの移動を意味する。つまり、エンドポイントの位
置へ読み出しあるいは書き出しをしたり、遅れてもよい
または直ちに処理をする条件付き割り込みをホストプロ
セッサに出す。単純なオペレーションとは、送信側コン
ピュータが出す直接の読み出し、書き出しのようなデー
タ転送である。送信側コンピュータは、直接の書き出し
のために、送信側コンピュータのエンドポイントのベー
スからのオフセットにより、ソースデータを指定し、受
信側の位置は受信側コンピュータのエンドポイントのベ
ースからのオフセットにより指定する。メッセージは、
受信側のオフセットとデータを含む。読み出しのために
送信側コンピュータは、受信側コンピュータへの直接書
き出しの要求を伴ったメッセージを送る。このメッセー
ジは、受信側コンピュータにおけるオフセットと、返答
のための送信側コンピュータにおけるデータを読み込む
ためのオフセットで指定する。メッセージは、コネクシ
ョンが全二重通信可能でなければ、応答用コネクション
に指示を含む。
【0113】受信側コンピュータと送信側コンピュータ
のステートの機能のひとつとして、アクションの実行可
能化がある。アクションを実行可能にするために、それ
ぞれのコネクションの受信側コンピュータは、あるステ
ートを維持する。つまり、メッセージのオペランドが名
前である情報を記憶したり、受信側コンピュータのアド
レスを得る。簡単のために、ここで”アドレスレジス
タ”と呼ぶ特別なアドレスにあるレジスタにこのステー
トは記憶させておくものとする。このステートは特別な
レジスタではなく、一般的にメモリに記憶させることも
できる。このように、メッセージアクションは、送信側
コンピュータによって指定されたひとつのオペレーショ
ン機能である。また、メッセージアクションは、アドレ
スレジスタの内容のような、送信側コンピュータと受信
側コンピュータのステートによって示されたオペランド
によって指定されたひとつのオペレーション機能であ
る。送信側コンピュータと受信側コンピュータのステー
トを使ったプリミティブ・オペレーションの例を次に挙
げる。 (1)アドレスの生成 1 直接アドレス指定:effaddr=operand 2 間接アドレス指定:effaddr=<addregi > 3 インデックス付きアドレス指定: effaddr=<addregi >+operand (2)レジスタオペレーション 1 addregi ←operand 2 addregi ←unary−op<addregi > 3 addregi ←<addregi >binary−op<addregj > iとjは異なる必要はない。 (3)条件付きオペレーション 1 if(<addregi >compare−op operand) then generate interrupt at end 2 if(<addregi >compare−op<addregj >) then generate interrupt at end iとjは異なる必要はない。
のステートの機能のひとつとして、アクションの実行可
能化がある。アクションを実行可能にするために、それ
ぞれのコネクションの受信側コンピュータは、あるステ
ートを維持する。つまり、メッセージのオペランドが名
前である情報を記憶したり、受信側コンピュータのアド
レスを得る。簡単のために、ここで”アドレスレジス
タ”と呼ぶ特別なアドレスにあるレジスタにこのステー
トは記憶させておくものとする。このステートは特別な
レジスタではなく、一般的にメモリに記憶させることも
できる。このように、メッセージアクションは、送信側
コンピュータによって指定されたひとつのオペレーショ
ン機能である。また、メッセージアクションは、アドレ
スレジスタの内容のような、送信側コンピュータと受信
側コンピュータのステートによって示されたオペランド
によって指定されたひとつのオペレーション機能であ
る。送信側コンピュータと受信側コンピュータのステー
トを使ったプリミティブ・オペレーションの例を次に挙
げる。 (1)アドレスの生成 1 直接アドレス指定:effaddr=operand 2 間接アドレス指定:effaddr=<addregi > 3 インデックス付きアドレス指定: effaddr=<addregi >+operand (2)レジスタオペレーション 1 addregi ←operand 2 addregi ←unary−op<addregi > 3 addregi ←<addregi >binary−op<addregj > iとjは異なる必要はない。 (3)条件付きオペレーション 1 if(<addregi >compare−op operand) then generate interrupt at end 2 if(<addregi >compare−op<addregj >) then generate interrupt at end iとjは異なる必要はない。
【0114】上記(1)の「アドレスの生成」のある例
は、実効アドレス(effaddr)を計算することで
ある。実効アドレスは、データを読み書きするアドレス
である。<x>は、メモリ位置Xの内容を意味する。”
operand”は、メッセージ中のデータまたは、他
のオペランドである。メッセージオペレーションは、メ
モリに対し読み出しまたは書き込みが起きるかを制御す
る。また、メッセージオペレーションは上記プリミティ
ブ・オペレーションの選択とその実行順序を制御する。
上記(3)の「条件付きオペレーション」は、いかなる
ときでも起きるが、割り込みは複合したオペレーション
の最後に起きることが望ましい。これらの基本的なプリ
ミティブ・オペレーションを結合することにより、各種
の自由な複合オペレーションを作成できる。例えば、ポ
ストインクリメントを伴った間接書き込みは、上記
(2)のレジスタオペレーションを伴った間接処理によ
り作成することができる。 <addregi >←MSG addregi ←<addregi >+operand 最後のステップはaddregi ←<addregi >
+<addregj >でもよい。
は、実効アドレス(effaddr)を計算することで
ある。実効アドレスは、データを読み書きするアドレス
である。<x>は、メモリ位置Xの内容を意味する。”
operand”は、メッセージ中のデータまたは、他
のオペランドである。メッセージオペレーションは、メ
モリに対し読み出しまたは書き込みが起きるかを制御す
る。また、メッセージオペレーションは上記プリミティ
ブ・オペレーションの選択とその実行順序を制御する。
上記(3)の「条件付きオペレーション」は、いかなる
ときでも起きるが、割り込みは複合したオペレーション
の最後に起きることが望ましい。これらの基本的なプリ
ミティブ・オペレーションを結合することにより、各種
の自由な複合オペレーションを作成できる。例えば、ポ
ストインクリメントを伴った間接書き込みは、上記
(2)のレジスタオペレーションを伴った間接処理によ
り作成することができる。 <addregi >←MSG addregi ←<addregi >+operand 最後のステップはaddregi ←<addregi >
+<addregj >でもよい。
【0115】セルを単位として考えると、この複合オペ
レーションは増加する値がスライドに等しいDMAと等
価である。しかし、変化するオペランドまたは<add
regi >は、さまざまなスライドを生じる。他の例と
して、プライオリティを伴ったキューイングや割り込み
は次のような命令の組み合わせでつくることができる。
レーションは増加する値がスライドに等しいDMAと等
価である。しかし、変化するオペランドまたは<add
regi >は、さまざまなスライドを生じる。他の例と
して、プライオリティを伴ったキューイングや割り込み
は次のような命令の組み合わせでつくることができる。
【0116】 <addregi >←MSG addregp ←<addregp >+<addregs > if(operand greater than<addregj >) generate interrupt at end addregi ←<addregi >bitwise−or operand
【0117】”operand”がメッセージの優先順
位を示す場合、addregp はこの優先順位のメッセ
ージが加えられる待ち行列の終わりを示す。addre
gsは、MSGのサイズを含む。addregi は、受
信側コンピュータの優先レベルを持つ。ここで、p,
i,sは、それぞれ異なった値を持つ。p,i,sは、
オペランドやレジスタのインデックスとして用いられる
ものであり、メッセージによって指定されるものであ
る。このプライオリティを伴ったキューイングのような
複雑な複合オペレーションは、多数の複合オペレーショ
ンからなる。例えば、プライオリティを伴ったキューイ
ングを実行するためには、受信側コンピュータがメッセ
ージごとにひとつのレジスタオペレーションを実行する
場合、2つの複合オペレーションメッセージが必要であ
る。
位を示す場合、addregp はこの優先順位のメッセ
ージが加えられる待ち行列の終わりを示す。addre
gsは、MSGのサイズを含む。addregi は、受
信側コンピュータの優先レベルを持つ。ここで、p,
i,sは、それぞれ異なった値を持つ。p,i,sは、
オペランドやレジスタのインデックスとして用いられる
ものであり、メッセージによって指定されるものであ
る。このプライオリティを伴ったキューイングのような
複雑な複合オペレーションは、多数の複合オペレーショ
ンからなる。例えば、プライオリティを伴ったキューイ
ングを実行するためには、受信側コンピュータがメッセ
ージごとにひとつのレジスタオペレーションを実行する
場合、2つの複合オペレーションメッセージが必要であ
る。
【0118】最後の例をあげる。いくつかの異なった待
ち行列のひとつに、割り込みを発生しないでメッセージ
を加えるようにしたい場合がある。この場合は、空では
ない待ち行列のビットベクタを維持管理する。この機構
は、一般的に優先順位に基づく割り込みと同じ方法で実
施することができるが、addregi の最上位ビット
を使って、割り込みをブロックする。この実施方法は、
符号なしの比較をすることとaddregi のビットよ
り少ない待ち行列が存在していることの両方を前提して
いる。addregi のビットより少ない待ち行列が存
在していることという2番目の前提は、マルチプル・ア
ドレスレジスタを使うことによって制限をゆるやかにす
ることができる。オペレーティングシステム内の特定の
エンドポイント内の待ち行列にメッセージをつけ加えて
もよい。この場合は、オペレーティングシステムによる
遅延アクションの実行となる。
ち行列のひとつに、割り込みを発生しないでメッセージ
を加えるようにしたい場合がある。この場合は、空では
ない待ち行列のビットベクタを維持管理する。この機構
は、一般的に優先順位に基づく割り込みと同じ方法で実
施することができるが、addregi の最上位ビット
を使って、割り込みをブロックする。この実施方法は、
符号なしの比較をすることとaddregi のビットよ
り少ない待ち行列が存在していることの両方を前提して
いる。addregi のビットより少ない待ち行列が存
在していることという2番目の前提は、マルチプル・ア
ドレスレジスタを使うことによって制限をゆるやかにす
ることができる。オペレーティングシステム内の特定の
エンドポイント内の待ち行列にメッセージをつけ加えて
もよい。この場合は、オペレーティングシステムによる
遅延アクションの実行となる。
【0119】他の例として、フェッチ・アンド・インク
リメント、リード・モディファイ・ライト、コンペア・
アンド・スワップのような様々な不可分な一体化された
オペレーションは、宛先位置のための1つ以上のアドレ
スレジスタを使用するとともに、増加と比較のためのレ
ジスタオペレーションを行うことによって実施できる。
バリア・シンクロナイゼーションもまたこの方法で実施
できる。プロセスがバリア・ポイントに達したとき、”
バリア・セット”で全てのプロセスの指定されたアドレ
スレジスタにおけるビットのトグル動作をする。それか
ら、全てのビットがセットされた(又は、クリアされ
た)時に、条件付き割り込みのためにウェイトする。
リメント、リード・モディファイ・ライト、コンペア・
アンド・スワップのような様々な不可分な一体化された
オペレーションは、宛先位置のための1つ以上のアドレ
スレジスタを使用するとともに、増加と比較のためのレ
ジスタオペレーションを行うことによって実施できる。
バリア・シンクロナイゼーションもまたこの方法で実施
できる。プロセスがバリア・ポイントに達したとき、”
バリア・セット”で全てのプロセスの指定されたアドレ
スレジスタにおけるビットのトグル動作をする。それか
ら、全てのビットがセットされた(又は、クリアされ
た)時に、条件付き割り込みのためにウェイトする。
【0120】この実施例のプロトコルは、少なくとも次
の利益をもたらす。第1に、この実施例のプロトコル
は、送信側コンピュータのステート、受信側コンピュー
タのステートとその双方のオペレーションの組み合わせ
がとても強力になる。この実施例のプロトコルは、従来
のレシーバ・ベースド・アドレッシングとセンダ・ベー
スド・アドレッシングの両方の全機能をもうらしたもの
である。この実施例のプロトコルは、送信側コンピュー
タが知っていることについての種々の要求を伝送でき
る。または、送信側コンピュータと受信側コンピュータ
間の知識の分離についての種々の要求を伝送できる。ま
た、この実施例のプロトコルは、送信側コンピュータと
受信側コンピュータの入り交じった情報を、メッセージ
毎に変更することができる。間接的オペレーションを用
いることにより、送信側コンピュータが受信側コンピュ
ータについての過度の知識を持ちすぎるという欠点をな
くし、このように、送信側コンピュータを受信側コンピ
ュータから隔離することにより保護機構を付加してい
る。なぜならば、実際のストレージ・アドレスは、送信
側コンピュータが知らないアドレスであり、受信側コン
ピュータのアドレス機能の一部により決定されるもので
あるかもしれない。同様に割り込みの状態は、送信側コ
ンピュータがその存在を知らないプロセスによって(メ
ッセージを介して)生成される受信側コンピュータの情
報の一部であるかもしれない。以下に述べるように、送
信側コンピュータがアクセスしないようにレジスタを保
護する機構を用意してもよい。この保護機構は、送信側
コンピュータに対して例えば、受信側コンピュータのア
ドレスレジスタに対しリード、ライト、あるいは指定さ
れた受信側コンピュータのステートの内容を設定したり
変更することを禁止するものである。
の利益をもたらす。第1に、この実施例のプロトコル
は、送信側コンピュータのステート、受信側コンピュー
タのステートとその双方のオペレーションの組み合わせ
がとても強力になる。この実施例のプロトコルは、従来
のレシーバ・ベースド・アドレッシングとセンダ・ベー
スド・アドレッシングの両方の全機能をもうらしたもの
である。この実施例のプロトコルは、送信側コンピュー
タが知っていることについての種々の要求を伝送でき
る。または、送信側コンピュータと受信側コンピュータ
間の知識の分離についての種々の要求を伝送できる。ま
た、この実施例のプロトコルは、送信側コンピュータと
受信側コンピュータの入り交じった情報を、メッセージ
毎に変更することができる。間接的オペレーションを用
いることにより、送信側コンピュータが受信側コンピュ
ータについての過度の知識を持ちすぎるという欠点をな
くし、このように、送信側コンピュータを受信側コンピ
ュータから隔離することにより保護機構を付加してい
る。なぜならば、実際のストレージ・アドレスは、送信
側コンピュータが知らないアドレスであり、受信側コン
ピュータのアドレス機能の一部により決定されるもので
あるかもしれない。同様に割り込みの状態は、送信側コ
ンピュータがその存在を知らないプロセスによって(メ
ッセージを介して)生成される受信側コンピュータの情
報の一部であるかもしれない。以下に述べるように、送
信側コンピュータがアクセスしないようにレジスタを保
護する機構を用意してもよい。この保護機構は、送信側
コンピュータに対して例えば、受信側コンピュータのア
ドレスレジスタに対しリード、ライト、あるいは指定さ
れた受信側コンピュータのステートの内容を設定したり
変更することを禁止するものである。
【0121】第2に、この実施例のプロトコルにより、
リアルタイム・システムで重要な予測性を増すことがで
きる。適切に定議されたポイントで割り込みを制限する
ことにより予測性を増すことができる。この実施例のプ
ロトコルにより、非同期性と不確実性が非同期ネットワ
ークの事象から除かれる。第3に、この実施例のプロト
コルにより、アクション・ハンドリングは、より効果的
になり、オーバヘッドを減らすことができる。なぜな
ら、割り込みのオーバヘッドが、多数のアクションで少
しずつ償却されるからである。上記プロトコルにポーリ
ングを組み合わせて、ハイブリッド・インターラプト・
ポーリング方式を使うようにしてもよい。。
リアルタイム・システムで重要な予測性を増すことがで
きる。適切に定議されたポイントで割り込みを制限する
ことにより予測性を増すことができる。この実施例のプ
ロトコルにより、非同期性と不確実性が非同期ネットワ
ークの事象から除かれる。第3に、この実施例のプロト
コルにより、アクション・ハンドリングは、より効果的
になり、オーバヘッドを減らすことができる。なぜな
ら、割り込みのオーバヘッドが、多数のアクションで少
しずつ償却されるからである。上記プロトコルにポーリ
ングを組み合わせて、ハイブリッド・インターラプト・
ポーリング方式を使うようにしてもよい。。
【0122】最後に、この実施例のプロトコルにより、
更に複雑なオペレーションは、マルチプル・コマンド・
メッセージ・オペレーションの結果を組み合わせてつく
ることができる。以上のように、この実施例のプロトコ
ルは、エンドポイントとコネクションをベースにしたプ
ロトコルである。エンドポイントとコネクションはカー
ネル・コールで配置、再配置される。エンドポイントは
ページ単位に再配置されるのが望ましい。このように、
ホストの仮想メモリにおけるページ・プロテクションは
エンドポイントに使われる。コネクションは、同じノー
ドのエンドポイントを含むどのエンドポイントの組み合
わせの間に確立できる。コネクションを確立するプロト
コルは、バークレーUNIXソケット(Barkele
y UNIX sockets)において用いられるセ
ッション確立によく似ている。カーネルのエンドポイン
トとコネクションで使われるブート・タイムのようなア
ウト・オブ・バンド・メカニズムを準備し、このアウト
・オブ・バンド・メカニズムにより、受信側コンピュー
タにおけるエンドポイントとコネクションの配置を行
う。
更に複雑なオペレーションは、マルチプル・コマンド・
メッセージ・オペレーションの結果を組み合わせてつく
ることができる。以上のように、この実施例のプロトコ
ルは、エンドポイントとコネクションをベースにしたプ
ロトコルである。エンドポイントとコネクションはカー
ネル・コールで配置、再配置される。エンドポイントは
ページ単位に再配置されるのが望ましい。このように、
ホストの仮想メモリにおけるページ・プロテクションは
エンドポイントに使われる。コネクションは、同じノー
ドのエンドポイントを含むどのエンドポイントの組み合
わせの間に確立できる。コネクションを確立するプロト
コルは、バークレーUNIXソケット(Barkele
y UNIX sockets)において用いられるセ
ッション確立によく似ている。カーネルのエンドポイン
トとコネクションで使われるブート・タイムのようなア
ウト・オブ・バンド・メカニズムを準備し、このアウト
・オブ・バンド・メカニズムにより、受信側コンピュー
タにおけるエンドポイントとコネクションの配置を行
う。
【0123】ひとつのエンドポイントは、複数のオリジ
ネーティング・コネクションそして/または複数のター
ミネーティング・コネクションを持つ場合もある。コネ
クションは、シンプレックスまたはディユープレック
ス、またはマルチキャストの場合もある。ひとつのエン
ドポイントから始まる複数のコネクションまたは、ひと
つのエンドポイントで終わる複数のコネクションは、同
じマッピング情報を共有する。しかしながら、エンドポ
イントは、より複雑なプロテクション・パターンを形成
するために重複させるか、あるいはネストすることがで
きる。例えば、コネクションAは、仮想アドレスの領域
(vl ,vu )で第1のエンドポイントを作ることがで
きる。コネクションBは、第2のエンドポイントを作る
ことができる。第2のエンドポイントは、コネクション
Aの第1のエンドポイントの領域内での一部分である。
コネクションAはコネクションBのエンドポイント全て
にアクセスできるが、コネクションBは、コネクション
Aのエンドポイントの一部分だけをアクセスできる。ま
たは、コネクションBはコネクションAの領域(vl ,
vu )に部分的にオーバラップしたエンドポイントを作
ってもよい。こうして、一方のエンドポイントがもう一
方のエンドポイント全てに影響を与えることなく、共有
する限られた領域のみをコネクションAとコネクション
Bがともにアクセスできる。あるいは、異なるタイプの
ページ保護機構を持つ仮想アドレス領域にエンドポイン
トの物理ページをマッピングすることにより、異なる保
護機構を実現することもできる。
ネーティング・コネクションそして/または複数のター
ミネーティング・コネクションを持つ場合もある。コネ
クションは、シンプレックスまたはディユープレック
ス、またはマルチキャストの場合もある。ひとつのエン
ドポイントから始まる複数のコネクションまたは、ひと
つのエンドポイントで終わる複数のコネクションは、同
じマッピング情報を共有する。しかしながら、エンドポ
イントは、より複雑なプロテクション・パターンを形成
するために重複させるか、あるいはネストすることがで
きる。例えば、コネクションAは、仮想アドレスの領域
(vl ,vu )で第1のエンドポイントを作ることがで
きる。コネクションBは、第2のエンドポイントを作る
ことができる。第2のエンドポイントは、コネクション
Aの第1のエンドポイントの領域内での一部分である。
コネクションAはコネクションBのエンドポイント全て
にアクセスできるが、コネクションBは、コネクション
Aのエンドポイントの一部分だけをアクセスできる。ま
たは、コネクションBはコネクションAの領域(vl ,
vu )に部分的にオーバラップしたエンドポイントを作
ってもよい。こうして、一方のエンドポイントがもう一
方のエンドポイント全てに影響を与えることなく、共有
する限られた領域のみをコネクションAとコネクション
Bがともにアクセスできる。あるいは、異なるタイプの
ページ保護機構を持つ仮想アドレス領域にエンドポイン
トの物理ページをマッピングすることにより、異なる保
護機構を実現することもできる。
【0124】ネットワークの保護は、次のように提供さ
れる。アウト・ゴーイング・コネクションを経たネット
ワークへのアクセスは、カーネルにより維持されるコネ
クションごとのステートにより制御される。ネットワー
クからのメッセージの到着は、受信側コンピュータのカ
ーネルにより維持される受信側コンピュータのコネクシ
ョン・ステートで許可するか否かの判定をする。インカ
ミング・コネクションからメッセージを受け取ることの
許可は、関連づけられたエンドポイントにそのメッセー
ジを書き込むことを意味する。しかし、受信側のアドレ
スは、適切なエンドポイントのアドレスにマップされな
ければならない。このオペレーションは、ページごとの
アクセス権によって許可される。保護機構は、受信側コ
ンピュータが、要求されたオペレーションと受信側コン
ピュータで使われるアドレスが適切であることを確かめ
ることによりシステムに提供されるようにしてもよい。
例えば、メモリ領域を、各アプリケーションに対して指
定する。そしてデータが書かれるアドレスが、その指定
された領域にない場合、アクセスは拒否される。
れる。アウト・ゴーイング・コネクションを経たネット
ワークへのアクセスは、カーネルにより維持されるコネ
クションごとのステートにより制御される。ネットワー
クからのメッセージの到着は、受信側コンピュータのカ
ーネルにより維持される受信側コンピュータのコネクシ
ョン・ステートで許可するか否かの判定をする。インカ
ミング・コネクションからメッセージを受け取ることの
許可は、関連づけられたエンドポイントにそのメッセー
ジを書き込むことを意味する。しかし、受信側のアドレ
スは、適切なエンドポイントのアドレスにマップされな
ければならない。このオペレーションは、ページごとの
アクセス権によって許可される。保護機構は、受信側コ
ンピュータが、要求されたオペレーションと受信側コン
ピュータで使われるアドレスが適切であることを確かめ
ることによりシステムに提供されるようにしてもよい。
例えば、メモリ領域を、各アプリケーションに対して指
定する。そしてデータが書かれるアドレスが、その指定
された領域にない場合、アクセスは拒否される。
【0125】次にATMネットワークにおけるこのシス
テムの実施例について述べる。以下は一例であり、この
発明は他のネットワークに対しては異なる方法で実施さ
れうるものである。図3は、この実施例における53バ
イトのATMセル120のフォーマットの一例である。
もっとも単純なフォーマットでは、セルはデータと標準
のネットワークヘッダと他の情報を伴った制御情報を含
む。図のフォーマットにおけるデータ・フィールドのサ
イズは、単なる一例であり、この発明を限定するもので
はない。図3において、ATMヘッダ・フィールド13
2は、リンク・ルーティングとトラフィック・コントロ
ール・インフォメーションを含む。リンク・ルーティン
グは、受信側コンピュータを間接的に指定する。このA
TMヘッダ・フィールドは、5バイトであり、標準のA
TMスイッチによる処理に適する。以下に説明するコネ
クション・ナンバーは、図示してないがこのヘッダの中
のバーチャルチャネル/バーチャル・パス・アイデンテ
ィファイア(VCI/VPI)・フィールドにエンコー
ドされる。
テムの実施例について述べる。以下は一例であり、この
発明は他のネットワークに対しては異なる方法で実施さ
れうるものである。図3は、この実施例における53バ
イトのATMセル120のフォーマットの一例である。
もっとも単純なフォーマットでは、セルはデータと標準
のネットワークヘッダと他の情報を伴った制御情報を含
む。図のフォーマットにおけるデータ・フィールドのサ
イズは、単なる一例であり、この発明を限定するもので
はない。図3において、ATMヘッダ・フィールド13
2は、リンク・ルーティングとトラフィック・コントロ
ール・インフォメーションを含む。リンク・ルーティン
グは、受信側コンピュータを間接的に指定する。このA
TMヘッダ・フィールドは、5バイトであり、標準のA
TMスイッチによる処理に適する。以下に説明するコネ
クション・ナンバーは、図示してないがこのヘッダの中
のバーチャルチャネル/バーチャル・パス・アイデンテ
ィファイア(VCI/VPI)・フィールドにエンコー
ドされる。
【0126】データ・フィールド122は、32バイト
のフィールドである。また、以下で述べるセル120毎
に付けられたコントロール・データは16バイトであ
る。データ・フィールド122の大きさは、32バイト
のメモリ・ブロック・サイズとキャッシュ・ブロック・
サイズに一致している。これにより、実行速度が速くな
りハードウェア化が効果的となる。以下に述べるマスク
・フィールドは、受信側コンピュータにおいて不必要な
メッセージ・データを除くために使う。2バイトのサイ
クル・リダンダンシイ・チェック(CRC)・フィール
ド124が、データ・フィールド122に対応して、セ
ル120の最後に用意されている場合もある。このフィ
ールドは、誤ったメッセージが正しいメッセージとして
みなされてしまうのを防ぐために使う。他の2バイトは
使われていない。
のフィールドである。また、以下で述べるセル120毎
に付けられたコントロール・データは16バイトであ
る。データ・フィールド122の大きさは、32バイト
のメモリ・ブロック・サイズとキャッシュ・ブロック・
サイズに一致している。これにより、実行速度が速くな
りハードウェア化が効果的となる。以下に述べるマスク
・フィールドは、受信側コンピュータにおいて不必要な
メッセージ・データを除くために使う。2バイトのサイ
クル・リダンダンシイ・チェック(CRC)・フィール
ド124が、データ・フィールド122に対応して、セ
ル120の最後に用意されている場合もある。このフィ
ールドは、誤ったメッセージが正しいメッセージとして
みなされてしまうのを防ぐために使う。他の2バイトは
使われていない。
【0127】制御情報は、4バイトのオペレーション・
フィールド130を含んでいる。オペレーション・フィ
ールド130は、受信側コンピュータで実行されるオペ
レーションの種類を指定する。このオペレーション・フ
ィールド130は、マスク・フィールド131とオペコ
ード・フィールド129を含む。オペコード・フィール
ド129は、オペレーションを指定する。マスク・フィ
ールドは、データ・フィールド122をブロック化した
場合、ブロック内の4バイトのワードの読み書きを禁止
するのに使われる。即ち、マスク・フィールドのビット
iは、データ・ワードiが読み書きされるかどうか示
す。この機能は、ブロック内のあるロケーションに隣接
するロケーションの値で、例えば変数を変えることな
く、そのあるロケーションをアップデートするのに有効
である。4バイトのオペランド・フィールド126が用
意されている。オペランド・フィールド126により指
定されるオペランドは、32ビットの直接のソース・オ
ペランド(オフセットまたはデータ)である。一方宛先
オペランドは、4バイトのインデックス・フィールド1
28においてエンコードされた3つの別々のレジスタ・
インデックスによって指定される。これら3つのインデ
ックス・フィールドは、図中121、123、125で
示されている。チェック・フィールド127は、セル全
体が到着するのを待たずにコントロール情報のデコーデ
ィングを始められるように、先行するコントロール・フ
ィールドのシンプル・チェック・サムを保持している。
フィールド130を含んでいる。オペレーション・フィ
ールド130は、受信側コンピュータで実行されるオペ
レーションの種類を指定する。このオペレーション・フ
ィールド130は、マスク・フィールド131とオペコ
ード・フィールド129を含む。オペコード・フィール
ド129は、オペレーションを指定する。マスク・フィ
ールドは、データ・フィールド122をブロック化した
場合、ブロック内の4バイトのワードの読み書きを禁止
するのに使われる。即ち、マスク・フィールドのビット
iは、データ・ワードiが読み書きされるかどうか示
す。この機能は、ブロック内のあるロケーションに隣接
するロケーションの値で、例えば変数を変えることな
く、そのあるロケーションをアップデートするのに有効
である。4バイトのオペランド・フィールド126が用
意されている。オペランド・フィールド126により指
定されるオペランドは、32ビットの直接のソース・オ
ペランド(オフセットまたはデータ)である。一方宛先
オペランドは、4バイトのインデックス・フィールド1
28においてエンコードされた3つの別々のレジスタ・
インデックスによって指定される。これら3つのインデ
ックス・フィールドは、図中121、123、125で
示されている。チェック・フィールド127は、セル全
体が到着するのを待たずにコントロール情報のデコーデ
ィングを始められるように、先行するコントロール・フ
ィールドのシンプル・チェック・サムを保持している。
【0128】リモート・ノードに対するリード・リクエ
ストのために、データ・フィールド122は、ライト・
メッセージの返答のためのコントロール・フィールドを
含む。複数のセルを用いたマルチプルセルメッセージフ
ォーマットが、ブロック転送のために用いられる。この
フォーマットにおける最初のセルは、図3で示したライ
ト・フォーマットをもつ”コントロール”セルである。
これに続くセルは、標準のAAL5(ATM アダプシ
ョン・レイヤー5、ATMのシグナリング標準)セルで
ある。最後のAAL5セルにおけるセル・バウンダリと
長さとCRCの混乱を避けるため、全ブロック転送は1
6バイトずつに区切って行う。
ストのために、データ・フィールド122は、ライト・
メッセージの返答のためのコントロール・フィールドを
含む。複数のセルを用いたマルチプルセルメッセージフ
ォーマットが、ブロック転送のために用いられる。この
フォーマットにおける最初のセルは、図3で示したライ
ト・フォーマットをもつ”コントロール”セルである。
これに続くセルは、標準のAAL5(ATM アダプシ
ョン・レイヤー5、ATMのシグナリング標準)セルで
ある。最後のAAL5セルにおけるセル・バウンダリと
長さとCRCの混乱を避けるため、全ブロック転送は1
6バイトずつに区切って行う。
【0129】以上で述べたように、この実施例の通信シ
ステムは、直接メッセージを置くモデルであることを特
徴としており、このモデルは、エンドポイントとコネク
ションの使用に基づくものである。即ち、アプリケーシ
ョンがエンドポイントを割り付け、エンドポイント間の
コネクションを設定し、それからこれらのコネクション
介してメッセージを送る。このような直接メッセージを
格納するオペレーションをサポートするために各ノード
のオペレーティングシステムは、次のようなデータスト
ラクチャーを維持管理する。後述する図5で詳しく説明
するように、高速オペレーションを可能にするために、
ハードウェア上では、これらのデータストラクチャーの
いくつか又は全てをキャッシュ化するようにしても良
い。
ステムは、直接メッセージを置くモデルであることを特
徴としており、このモデルは、エンドポイントとコネク
ションの使用に基づくものである。即ち、アプリケーシ
ョンがエンドポイントを割り付け、エンドポイント間の
コネクションを設定し、それからこれらのコネクション
介してメッセージを送る。このような直接メッセージを
格納するオペレーションをサポートするために各ノード
のオペレーティングシステムは、次のようなデータスト
ラクチャーを維持管理する。後述する図5で詳しく説明
するように、高速オペレーションを可能にするために、
ハードウェア上では、これらのデータストラクチャーの
いくつか又は全てをキャッシュ化するようにしても良
い。
【0130】エンドポイント・テーブルは、そのノード
(例えば送信側コンピュータ)における各エンドポイン
トのためのエントリを有している。エンドポイント・テ
ーブルは、エンドポイント番号で検索できる。このテー
ブルの各エントリは、エンドポイントのベースメモリア
ドレス、エンドポイント・サイズ、仮想から物理へのマ
ッピング情報、アクセス情報を記憶する。エンドポイン
トのメモリアドレスとは、例えば受信側コンピュータ2
72ではメモリの79と81のスタートアドレスのこと
である。アクセス情報とは、例えばエンドポイントがプ
ライベートメモリ、リード・オンリメモリ又は、シェア
ードメモリのいずれであるかを示す。また、テーブルの
各エントリは、エンドポイントに対する利用可能な全て
のコネクションとエンドポイントに付随するプロセスを
記憶する。コネクション・テーブルは、そのノードで始
まるかあるいは終わる各コネクションに対応するエント
リを含み、コネクション・ナンバーで検索できる。この
テーブルの各エントリは、エンドポイント番号、アドレ
スレジスタのベースと領域、コネクション・ステート情
報と応答コネクション情報を記憶する。
(例えば送信側コンピュータ)における各エンドポイン
トのためのエントリを有している。エンドポイント・テ
ーブルは、エンドポイント番号で検索できる。このテー
ブルの各エントリは、エンドポイントのベースメモリア
ドレス、エンドポイント・サイズ、仮想から物理へのマ
ッピング情報、アクセス情報を記憶する。エンドポイン
トのメモリアドレスとは、例えば受信側コンピュータ2
72ではメモリの79と81のスタートアドレスのこと
である。アクセス情報とは、例えばエンドポイントがプ
ライベートメモリ、リード・オンリメモリ又は、シェア
ードメモリのいずれであるかを示す。また、テーブルの
各エントリは、エンドポイントに対する利用可能な全て
のコネクションとエンドポイントに付随するプロセスを
記憶する。コネクション・テーブルは、そのノードで始
まるかあるいは終わる各コネクションに対応するエント
リを含み、コネクション・ナンバーで検索できる。この
テーブルの各エントリは、エンドポイント番号、アドレ
スレジスタのベースと領域、コネクション・ステート情
報と応答コネクション情報を記憶する。
【0131】ノード・アドレス・テーブルもまた使われ
る。ノードの各エントリは、リモート・ノードの名前と
コネクション・ナンバーを含む。コネクション・ナンバ
ーは、リモート・ノードのオペレーティングシステムに
対する直接あるいは間接のコネクションのためのもので
ある。テーブルに対するインデックスは、各ノードに対
し、ユニークであり、かつグローバルな識別子である。
このテーブルは、コネクションを設定する際に、リモー
ト・ノードとのコンタクトに使われる。このテーブル
は、例えばインターネット・プロトコル(IP)のアド
レスのような、ある他のシグナリング・メカニズムを経
由するためのネーミング情報を含んでも良い。データ
は、エンドポイントに送られる。割り込みは、オペレー
ティングシステムに送られる。特に、データはエンドポ
イントに付随するプロセスに送られるのではなく、コネ
クションで指定された受信側コンピュータのエンドポイ
ントに送られる。割り込みは、指定されたプロセスに送
られるのではなく、受信側コンピュータで動いているオ
ペレーティングシステムに送られる。その後、オペレー
ティングシステムは、割り込みを指定されたプロセッサ
に送る。
る。ノードの各エントリは、リモート・ノードの名前と
コネクション・ナンバーを含む。コネクション・ナンバ
ーは、リモート・ノードのオペレーティングシステムに
対する直接あるいは間接のコネクションのためのもので
ある。テーブルに対するインデックスは、各ノードに対
し、ユニークであり、かつグローバルな識別子である。
このテーブルは、コネクションを設定する際に、リモー
ト・ノードとのコンタクトに使われる。このテーブル
は、例えばインターネット・プロトコル(IP)のアド
レスのような、ある他のシグナリング・メカニズムを経
由するためのネーミング情報を含んでも良い。データ
は、エンドポイントに送られる。割り込みは、オペレー
ティングシステムに送られる。特に、データはエンドポ
イントに付随するプロセスに送られるのではなく、コネ
クションで指定された受信側コンピュータのエンドポイ
ントに送られる。割り込みは、指定されたプロセスに送
られるのではなく、受信側コンピュータで動いているオ
ペレーティングシステムに送られる。その後、オペレー
ティングシステムは、割り込みを指定されたプロセッサ
に送る。
【0132】このようなシステムのオペレーションの流
れを、図8のフローチャートに示す。ステップ200に
おいて、送信側コンピュータ270は、最初に送信側コ
ンピュータの仮想アドレス空間にエンドポイントを割り
付ける。エンドポイント・テーブルであいているスロッ
トを見つけるか、作るかし、あいているスロットにエン
ドポイントのベースアドレスを書き込み、仮想から物理
へのマッピング情報を書き込む。ステップ201におい
て、あるコネクションを経由して、送信側コンピュータ
は、意図する受信側コンピュータとコンタクトを取る。
あるコネクションとは、トランスポート・コントロール
・プロトコル/インターネット・プロトコル(TCP/
IP)コネクションのような専用のオペレーティングシ
ステムのコネクション、あるいはその他のネットワーク
である。そして、送信側コンピュータは、受信側コンピ
ュータに対して適当なエンドポイント・バッファ・サイ
ズでコネクションを設定するように要求を出す。ステッ
プ203において、受信側コンピュータは、その仮想ア
ドレス空間にその要求されたエンドポイント・バッファ
・サイズのバッファ領域を割り付ける。そして、エンド
ポイント・テーブルの空きスロットを見つけるか、作る
かし、バッファ・ベース・アドレスと仮想から物理への
マッピング情報を書き込む。それから、受信側コンピュ
ータは、コネクションを認可する。マルチキャスト・コ
ネクションにおいては、マルチキャストの対象となった
送信側コンピュータと受信側コンピュータの各組で上記
処理が繰り返して行われる。ステップ204において、
送信側コンピュータからエンドポイントのベースからの
オフセットを含むメッセージが、設定されたコネクショ
ンを介して受信側コンピュータへ送られる。
れを、図8のフローチャートに示す。ステップ200に
おいて、送信側コンピュータ270は、最初に送信側コ
ンピュータの仮想アドレス空間にエンドポイントを割り
付ける。エンドポイント・テーブルであいているスロッ
トを見つけるか、作るかし、あいているスロットにエン
ドポイントのベースアドレスを書き込み、仮想から物理
へのマッピング情報を書き込む。ステップ201におい
て、あるコネクションを経由して、送信側コンピュータ
は、意図する受信側コンピュータとコンタクトを取る。
あるコネクションとは、トランスポート・コントロール
・プロトコル/インターネット・プロトコル(TCP/
IP)コネクションのような専用のオペレーティングシ
ステムのコネクション、あるいはその他のネットワーク
である。そして、送信側コンピュータは、受信側コンピ
ュータに対して適当なエンドポイント・バッファ・サイ
ズでコネクションを設定するように要求を出す。ステッ
プ203において、受信側コンピュータは、その仮想ア
ドレス空間にその要求されたエンドポイント・バッファ
・サイズのバッファ領域を割り付ける。そして、エンド
ポイント・テーブルの空きスロットを見つけるか、作る
かし、バッファ・ベース・アドレスと仮想から物理への
マッピング情報を書き込む。それから、受信側コンピュ
ータは、コネクションを認可する。マルチキャスト・コ
ネクションにおいては、マルチキャストの対象となった
送信側コンピュータと受信側コンピュータの各組で上記
処理が繰り返して行われる。ステップ204において、
送信側コンピュータからエンドポイントのベースからの
オフセットを含むメッセージが、設定されたコネクショ
ンを介して受信側コンピュータへ送られる。
【0133】このプロトコルは、特別な目的のハードウ
ェア以外でも実施できる。すなわちこのプロトコルは、
市販のコンピュータとネットワークインタフェース用の
コンピュータプログラムを用いて実現することができ
る。例えば、2台のDECStation 5000/
240 ワークステーション(Digital Equ
ipment Corporation)を使って実施
できる。各ワークステーションは、Fore Syst
ems TCA−100 ATMネットワークインタフ
ェースを持ち、”TURBOchannel”I/Oバ
スにつながり、2つのワークステーションはATMスイ
ッチを介さずに、背中合わせに接続される。DECSt
ation 5000/240sは、40MHz MI
PS R3000プロセッサと64Kバイト、ダイレク
ト・マップド・off−chipインストラクション・
アンド・データ・キャッシュと32Mバイトのメインメ
モリを搭載している。メインメモリとI/Oサブシステ
ムは、32ビット・ワードのTURBOチャネルを搭載
し,25MHzで動作する。Fore TCA−100
は、とても単純なインタフェースであり、1つの、送信
用FIFOと、もう1つの受信用FIFOからなる2つ
のFIFOキューを持ち、いくつかの制御レジスタとス
テータスレジスタを持つ。ATMセルは、14個の32
ビット・ワードでデータを作成するプロセッサによって
TURBOチャネルを介してTCA−100インタフェ
ースへ送信される。ATMセルは、その表現形式は、5
バイトのATMヘッダと48バイトのATMペイロール
と3バイトのパディングを有する。ATMセルは、14
個の32ビット・ワードでデータを読むプロセッサによ
って受信される。TURBOチャネルは、DMAをサポ
ートするが、TCA−100は、DMAを使わない。セ
ルが到着したとき、TCA−100はTURBOチャネ
ル割り込みを発生する。またはTCA−100のレシー
ブ・セル・カウンタが、セルが到着したかどうかを判断
をするためポーリングされる。TCA−100を接続し
たファイバーのデータレートは、140Mbpsであ
る。DECStationは、カーネギーメロン・ユニ
バーシティ(CMU)マイクロカーネル・ベースドオペ
レーティングシステムMach 3.0(MK83,U
X41)で動作する。このオペレーティングシステムの
ソース・コードは、CMU(Pittsburgh,P
ennsylvania)からすでに提供可能とされて
いる。
ェア以外でも実施できる。すなわちこのプロトコルは、
市販のコンピュータとネットワークインタフェース用の
コンピュータプログラムを用いて実現することができ
る。例えば、2台のDECStation 5000/
240 ワークステーション(Digital Equ
ipment Corporation)を使って実施
できる。各ワークステーションは、Fore Syst
ems TCA−100 ATMネットワークインタフ
ェースを持ち、”TURBOchannel”I/Oバ
スにつながり、2つのワークステーションはATMスイ
ッチを介さずに、背中合わせに接続される。DECSt
ation 5000/240sは、40MHz MI
PS R3000プロセッサと64Kバイト、ダイレク
ト・マップド・off−chipインストラクション・
アンド・データ・キャッシュと32Mバイトのメインメ
モリを搭載している。メインメモリとI/Oサブシステ
ムは、32ビット・ワードのTURBOチャネルを搭載
し,25MHzで動作する。Fore TCA−100
は、とても単純なインタフェースであり、1つの、送信
用FIFOと、もう1つの受信用FIFOからなる2つ
のFIFOキューを持ち、いくつかの制御レジスタとス
テータスレジスタを持つ。ATMセルは、14個の32
ビット・ワードでデータを作成するプロセッサによって
TURBOチャネルを介してTCA−100インタフェ
ースへ送信される。ATMセルは、その表現形式は、5
バイトのATMヘッダと48バイトのATMペイロール
と3バイトのパディングを有する。ATMセルは、14
個の32ビット・ワードでデータを読むプロセッサによ
って受信される。TURBOチャネルは、DMAをサポ
ートするが、TCA−100は、DMAを使わない。セ
ルが到着したとき、TCA−100はTURBOチャネ
ル割り込みを発生する。またはTCA−100のレシー
ブ・セル・カウンタが、セルが到着したかどうかを判断
をするためポーリングされる。TCA−100を接続し
たファイバーのデータレートは、140Mbpsであ
る。DECStationは、カーネギーメロン・ユニ
バーシティ(CMU)マイクロカーネル・ベースドオペ
レーティングシステムMach 3.0(MK83,U
X41)で動作する。このオペレーティングシステムの
ソース・コードは、CMU(Pittsburgh,P
ennsylvania)からすでに提供可能とされて
いる。
【0134】シンプル・リモート・ライト・ファンクシ
ョンは、実験的にこのシステムで実施された。32バイ
ト・ブロックの送信データは、送信側コンピュータのエ
ンドポイントから任意のオフセットで与えられている。
この32バイト・ブロックのデータは、受信側コンピュ
ータの送信側コンピュータにより指定されたエンドポイ
ントの、送信側コンピュータにより与えられたオフセッ
トの位置に届けられる。データ、オフセット、バッファ
情報は、ひとつのセルにいれられる。データブロック・
サイズは、キャッシュ・ブロック・サイズと等しい32
バイトであり、オフセットは実施しやすいように32バ
イト・ブロックに一致するように指定が制限される。送
信側コンピュータにおいて、ロー・レベルのMachカ
ーネル・エクセプション・ハンドリング・コードが、イ
リーガル・インストラクション・トラップにより、セル
を送るために変更される。受信側コンピュータにおいて
は、Machマイクロカーネルが、インターラプト・パ
スを部分的に最適化するために変更される。具体的に
は、TCA−100ハンドラーは、カーネル・インター
ラプト・トラップ・ハンドラーから直接呼び出される。
ョンは、実験的にこのシステムで実施された。32バイ
ト・ブロックの送信データは、送信側コンピュータのエ
ンドポイントから任意のオフセットで与えられている。
この32バイト・ブロックのデータは、受信側コンピュ
ータの送信側コンピュータにより指定されたエンドポイ
ントの、送信側コンピュータにより与えられたオフセッ
トの位置に届けられる。データ、オフセット、バッファ
情報は、ひとつのセルにいれられる。データブロック・
サイズは、キャッシュ・ブロック・サイズと等しい32
バイトであり、オフセットは実施しやすいように32バ
イト・ブロックに一致するように指定が制限される。送
信側コンピュータにおいて、ロー・レベルのMachカ
ーネル・エクセプション・ハンドリング・コードが、イ
リーガル・インストラクション・トラップにより、セル
を送るために変更される。受信側コンピュータにおいて
は、Machマイクロカーネルが、インターラプト・パ
スを部分的に最適化するために変更される。具体的に
は、TCA−100ハンドラーは、カーネル・インター
ラプト・トラップ・ハンドラーから直接呼び出される。
【0135】上述の装置を使って次のような実験をし
た。ユーザ・レベルからあらかじめ送信側コンピュータ
であるワークステーションに記憶させておいたデータの
ブロックを、受信側コンピュータに送る。受信側コンピ
ュータにおいてユーザ・レベル・プロセスを、動作中に
しておき、このユーザ・レベル・プログラムにより、エ
ンドポイント・エアリアへのデータの到着をテストす
る。一度データが受信側のエンドポイントに到着する
と、受信側のプロセスはそれを送信側のワークステーシ
ョンに送り返す。この送信側のワークステーションで
は、別のユーザ・レベルのプロセスが実行されており、
データの到着をテストしている。このようにして、トー
タル・ラウンド・トリップ・タイムを測定した。この測
定結果には、ワン・ウェイ・リモート・ライトが2回
と、ループ・オーバヘッドと、測定によるオーバヘッド
とが含まれている。ループ・オーバヘッドには、ラウン
ド・トリップを20回繰り返したので、そのオーバヘッ
ドが含まれる。測定結果を図10に示す。
た。ユーザ・レベルからあらかじめ送信側コンピュータ
であるワークステーションに記憶させておいたデータの
ブロックを、受信側コンピュータに送る。受信側コンピ
ュータにおいてユーザ・レベル・プロセスを、動作中に
しておき、このユーザ・レベル・プログラムにより、エ
ンドポイント・エアリアへのデータの到着をテストす
る。一度データが受信側のエンドポイントに到着する
と、受信側のプロセスはそれを送信側のワークステーシ
ョンに送り返す。この送信側のワークステーションで
は、別のユーザ・レベルのプロセスが実行されており、
データの到着をテストしている。このようにして、トー
タル・ラウンド・トリップ・タイムを測定した。この測
定結果には、ワン・ウェイ・リモート・ライトが2回
と、ループ・オーバヘッドと、測定によるオーバヘッド
とが含まれている。ループ・オーバヘッドには、ラウン
ド・トリップを20回繰り返したので、そのオーバヘッ
ドが含まれる。測定結果を図10に示す。
【0136】図10の第1行は、イリーガル・インスト
ラクション・トラップ・センドによるセル送信のための
平均時間である。第2行は、ループ・オーバヘッドと測
定によるオーバヘッドにより修正したラウンド・トリッ
プ・センド−レシーブ・タイムである。図10の第1列
は最初の繰り返しにかかった時間を示す。第2列は、次
に続く19回の繰り返し時間の平均である。はじめの2
回の繰り返しの後は、測定結果のばらつきは非常に少な
かった。最初の繰り返しは、キャッシュ・ミスやトラン
スレーション・ルックアサイド・バッファ(TLB)・
ミスを含んでいる。このため、最初の繰り返しの時のセ
ンド−レシーブ・タイムはその後の繰り返しでの測定結
果よりも大変多く時間がかかっている。(しかし、セン
ド−レシーブ・タイムがなぜ最初の繰り返しでこのよう
に大変時間がかかったのか明白ではない。最初の繰り返
しのセンド・オーバヘッドは予測以上のものである。)
結局、キャッシュ・ミスとTLB・ミスと他の一時的な
要因が消え、ラウンド・トリップ・タイムは49.1μ
secとなった。これは次のことを意味する。リモート
・ライトのためのワン・ウェイ・センド−レシーブ・タ
イムは、最もよい場合、約24.5μsecとなる。こ
れは、同じハードウェア上でUltrix 4.3で稼
働するFore System’s AAL3/4を使
って同様のテストをした結果より約80倍早い。
ラクション・トラップ・センドによるセル送信のための
平均時間である。第2行は、ループ・オーバヘッドと測
定によるオーバヘッドにより修正したラウンド・トリッ
プ・センド−レシーブ・タイムである。図10の第1列
は最初の繰り返しにかかった時間を示す。第2列は、次
に続く19回の繰り返し時間の平均である。はじめの2
回の繰り返しの後は、測定結果のばらつきは非常に少な
かった。最初の繰り返しは、キャッシュ・ミスやトラン
スレーション・ルックアサイド・バッファ(TLB)・
ミスを含んでいる。このため、最初の繰り返しの時のセ
ンド−レシーブ・タイムはその後の繰り返しでの測定結
果よりも大変多く時間がかかっている。(しかし、セン
ド−レシーブ・タイムがなぜ最初の繰り返しでこのよう
に大変時間がかかったのか明白ではない。最初の繰り返
しのセンド・オーバヘッドは予測以上のものである。)
結局、キャッシュ・ミスとTLB・ミスと他の一時的な
要因が消え、ラウンド・トリップ・タイムは49.1μ
secとなった。これは次のことを意味する。リモート
・ライトのためのワン・ウェイ・センド−レシーブ・タ
イムは、最もよい場合、約24.5μsecとなる。こ
れは、同じハードウェア上でUltrix 4.3で稼
働するFore System’s AAL3/4を使
って同様のテストをした結果より約80倍早い。
【0137】図11は、連続的なリモート・ライトを送
信した場合の帯域幅の測定結果である。ブロックサイズ
は、連続的なリモート・ライトの数である。ブロックサ
イズが大きくなるにつれ帯域幅が増加する。しかし、割
り込みオーバヘッドが、より多くのデータで償却される
ので、ブロックサイズが2倍、4倍になっても帯域幅
は、漸近線状に次第に増加する。TCA−100インタ
ーラプト・ハンドラーは、受信側コンピュータの受信F
IFOが空になるまで受信FIFOからセルを読む。こ
のようにセルが、間をおかず送られてくるなら、全ての
セルを読むために1回の割り込みでよい。すなわちイン
ターラプト・トラップ・ハンドラーへの1回のパスでよ
い。連続的なブロックが通常の”for”ループを使っ
て送られるときでさえ、イリーガル・インストラクショ
ン・トラップ・メソッドを用いるため、セルの送信が速
い。このためこの割り込みオーバヘッドが、より多くの
データで償却されるという償却効果がすぐに得られる。
図11に示した漸近線状に増加する帯域幅は、受信側コ
ンピュータのFIFOからセルを処理するときのセル毎
のオーバヘッドの程度を示す尺度となる。
信した場合の帯域幅の測定結果である。ブロックサイズ
は、連続的なリモート・ライトの数である。ブロックサ
イズが大きくなるにつれ帯域幅が増加する。しかし、割
り込みオーバヘッドが、より多くのデータで償却される
ので、ブロックサイズが2倍、4倍になっても帯域幅
は、漸近線状に次第に増加する。TCA−100インタ
ーラプト・ハンドラーは、受信側コンピュータの受信F
IFOが空になるまで受信FIFOからセルを読む。こ
のようにセルが、間をおかず送られてくるなら、全ての
セルを読むために1回の割り込みでよい。すなわちイン
ターラプト・トラップ・ハンドラーへの1回のパスでよ
い。連続的なブロックが通常の”for”ループを使っ
て送られるときでさえ、イリーガル・インストラクショ
ン・トラップ・メソッドを用いるため、セルの送信が速
い。このためこの割り込みオーバヘッドが、より多くの
データで償却されるという償却効果がすぐに得られる。
図11に示した漸近線状に増加する帯域幅は、受信側コ
ンピュータのFIFOからセルを処理するときのセル毎
のオーバヘッドの程度を示す尺度となる。
【0138】この実施例における前述した24Mbps
の帯域幅は、32データ・バイト/セルを用いた場合で
ある。同じハードウェアを使って、44データ・バイト
/セル,AAL3/4フォーマットを使って約48Mb
psのピーク帯域幅が他者により報告されている。この
セル・レートは、32データ・バイト/セルを使った場
合、(48Mbps/44)×32=約35Mbpsの
ピーク帯域幅に変換される。この実施例の部分的に最適
化されたシングル・セル・リモート・ライトは、32デ
ータ・バイト/セルで得られるピーク帯域幅の24Mb
ps/35Mbps=約68%にあたる。また、この実
施例で得られた、24Mbps帯域幅は、Ultrix
4.3で稼働する同じハードウェアでFore Sy
stem’s AAL3/4を使って測定した14Mb
psピーク帯域幅よりかなり良い。
の帯域幅は、32データ・バイト/セルを用いた場合で
ある。同じハードウェアを使って、44データ・バイト
/セル,AAL3/4フォーマットを使って約48Mb
psのピーク帯域幅が他者により報告されている。この
セル・レートは、32データ・バイト/セルを使った場
合、(48Mbps/44)×32=約35Mbpsの
ピーク帯域幅に変換される。この実施例の部分的に最適
化されたシングル・セル・リモート・ライトは、32デ
ータ・バイト/セルで得られるピーク帯域幅の24Mb
ps/35Mbps=約68%にあたる。また、この実
施例で得られた、24Mbps帯域幅は、Ultrix
4.3で稼働する同じハードウェアでFore Sy
stem’s AAL3/4を使って測定した14Mb
psピーク帯域幅よりかなり良い。
【0139】図12に、遅延時間24μsecがどのよ
うな要素からなるかを示す。TCA−100 ATMイ
ンタフェースは、DMAを持っていないので、セルを送
信し、受信するためのインタフェースへの全てのアクセ
スは、プログラムドI/Oを使う。TURBOチャネル
のプログラムドI/Oは遅い。その結果、TURBOチ
ャネルでの遅延時間(7μsec)は全遅延時間(24
μsec)のほぼ3分の1を費やしている。ATMセル
・タイム(3μsec)は、140Mbpsの転送速度
のファイバーに接続された受信側コンピュータが53バ
イト(1セル)全体を得るための時間である。24μs
ecのうちの残りの時間(14μsec)は、送信側コ
ンピュータと受信側コンピュータのCPUタイムとメモ
リ・タイムであり、全遅延時間の14μsec/24μ
sec=58%である。従って、インターラプト・ハン
ドラー・コードを20%だけ最適化してCPUタイムと
メモリ・タイムを改善することは、全遅延時間24μs
ecのうち約3μsec(14μsec×20%=2.
8μsec)減らすだけである。以上に点から、普通に
使われているハードウェアにおけるリモート・ライトの
ための最小の遅延時間は、ほぼ20μsec(24μs
ec−3μsec)であると結論ずけても良いだろう。
うな要素からなるかを示す。TCA−100 ATMイ
ンタフェースは、DMAを持っていないので、セルを送
信し、受信するためのインタフェースへの全てのアクセ
スは、プログラムドI/Oを使う。TURBOチャネル
のプログラムドI/Oは遅い。その結果、TURBOチ
ャネルでの遅延時間(7μsec)は全遅延時間(24
μsec)のほぼ3分の1を費やしている。ATMセル
・タイム(3μsec)は、140Mbpsの転送速度
のファイバーに接続された受信側コンピュータが53バ
イト(1セル)全体を得るための時間である。24μs
ecのうちの残りの時間(14μsec)は、送信側コ
ンピュータと受信側コンピュータのCPUタイムとメモ
リ・タイムであり、全遅延時間の14μsec/24μ
sec=58%である。従って、インターラプト・ハン
ドラー・コードを20%だけ最適化してCPUタイムと
メモリ・タイムを改善することは、全遅延時間24μs
ecのうち約3μsec(14μsec×20%=2.
8μsec)減らすだけである。以上に点から、普通に
使われているハードウェアにおけるリモート・ライトの
ための最小の遅延時間は、ほぼ20μsec(24μs
ec−3μsec)であると結論ずけても良いだろう。
【0140】これらの実験結果を見ると、プロセッサの
負荷を減らし、メモリとI/Oバス・タイムを減らす為
に、特別な目的のハードウェアがもちいられるべきであ
る。この特別な目的のハードウェアにより、保護機構を
提供するとともにメモリにデータを直接おく機構を提供
する。このハードウェア・サポートにより、単独のセル
・タイムを終了するためのトータルな遅延時間を減ら
す。セル・タイムは、155Mbpsのデータ・レート
で、2.7μsecと、622Mbpsのデータ・レー
トで、0.68μsecである。プロセッサの負荷を減
らすことは、通信負荷が大きい分散システムにおけるフ
ァイル・サーバのようなサーバにとっても重要なことで
ある。遅延時間の長短の変化もまた減少し、最悪の場合
の遅延時間も改善される。この発明によるネットワーク
インタフェースのアーキテクチャーを実現するこのよう
なハードウェアについて述べる。通常、ノードは、受信
側コンピュータと送信側コンピュータとして両方の働き
をするので、ノードのためのネットワークインタフェー
スは、受信と送信両方のファンクションを扱うべきであ
る。受信側コンピュータ272の機能は、アドレスマッ
ピング、保護機構、アドレスレジスタ、データとアドレ
ス・パスの制御、フロー制御を含む。送信側コンピュー
タの機能を次に述べる。
負荷を減らし、メモリとI/Oバス・タイムを減らす為
に、特別な目的のハードウェアがもちいられるべきであ
る。この特別な目的のハードウェアにより、保護機構を
提供するとともにメモリにデータを直接おく機構を提供
する。このハードウェア・サポートにより、単独のセル
・タイムを終了するためのトータルな遅延時間を減ら
す。セル・タイムは、155Mbpsのデータ・レート
で、2.7μsecと、622Mbpsのデータ・レー
トで、0.68μsecである。プロセッサの負荷を減
らすことは、通信負荷が大きい分散システムにおけるフ
ァイル・サーバのようなサーバにとっても重要なことで
ある。遅延時間の長短の変化もまた減少し、最悪の場合
の遅延時間も改善される。この発明によるネットワーク
インタフェースのアーキテクチャーを実現するこのよう
なハードウェアについて述べる。通常、ノードは、受信
側コンピュータと送信側コンピュータとして両方の働き
をするので、ノードのためのネットワークインタフェー
スは、受信と送信両方のファンクションを扱うべきであ
る。受信側コンピュータ272の機能は、アドレスマッ
ピング、保護機構、アドレスレジスタ、データとアドレ
ス・パスの制御、フロー制御を含む。送信側コンピュー
タの機能を次に述べる。
【0141】実施例は次の2つの部分に分かれる。第一
の部分は、アドレスマッピング、アドレスレジスタの制
御メカニズムのためのフロントエンド・アーキテクチャ
ーである。この部分は、複数の方法で実施することが可
能であるが、そのどれもが同じ機能を持つ。図4に一般
的なブロック図を示す。第2の部分は、ネットワークイ
ンタフェースとホストメモリを接続するバックエンドに
ついてである。この部分も複数の方法で実施することが
可能である。例えば、メインメモリへのダイレクト・コ
ネクション、昔からあるI/Oバス・コネクト、セカン
ダリ・キャッシュへのダイレクト・コネクションの3つ
の方法について以下に述べる。
の部分は、アドレスマッピング、アドレスレジスタの制
御メカニズムのためのフロントエンド・アーキテクチャ
ーである。この部分は、複数の方法で実施することが可
能であるが、そのどれもが同じ機能を持つ。図4に一般
的なブロック図を示す。第2の部分は、ネットワークイ
ンタフェースとホストメモリを接続するバックエンドに
ついてである。この部分も複数の方法で実施することが
可能である。例えば、メインメモリへのダイレクト・コ
ネクション、昔からあるI/Oバス・コネクト、セカン
ダリ・キャッシュへのダイレクト・コネクションの3つ
の方法について以下に述べる。
【0142】フロントエンド・アーキテクチュアを、図
4を参照して説明する。210は、ネットワークインタ
フェースのフロントエンドである。フロントエンド21
0は、バス214を介して、ホストメモリ212に接続
する。ホストメモリ212へのバス214の接続は、後
に詳しく述べるバックエンドと呼ばれる。フロントエン
ド210の受信側には、フロー・コントロールを備えた
受信バッファ・メモリ216を備える。この受信バッフ
ァは、なるべくなら先入れ先出し(FIFO)メモリで
あることが望ましい。ヘッダ分離チェック・ユニット2
18は、入力されたセルを処理し、情報をVCI/VP
Iマッピング・ユニット220と、コントロール・デコ
ーダ222とデータ分離チェック・ユニット224に分
解する。データ分離チェック・ユニット224は、デー
タのブロックをブロック転送ユニット226に渡す。ブ
ロック転送ユニット226は、データをバス214を介
してホストメモリに渡す。VCI/VPIマッピング・
ユニット220は、コネクション・ナンバーを決定す
る。コネクション・ナンバーは、オペレーション・ロジ
ック230で用いられる。オペレーション・ロジック
は、図5を用いてより詳しく後に説明する。
4を参照して説明する。210は、ネットワークインタ
フェースのフロントエンドである。フロントエンド21
0は、バス214を介して、ホストメモリ212に接続
する。ホストメモリ212へのバス214の接続は、後
に詳しく述べるバックエンドと呼ばれる。フロントエン
ド210の受信側には、フロー・コントロールを備えた
受信バッファ・メモリ216を備える。この受信バッフ
ァは、なるべくなら先入れ先出し(FIFO)メモリで
あることが望ましい。ヘッダ分離チェック・ユニット2
18は、入力されたセルを処理し、情報をVCI/VP
Iマッピング・ユニット220と、コントロール・デコ
ーダ222とデータ分離チェック・ユニット224に分
解する。データ分離チェック・ユニット224は、デー
タのブロックをブロック転送ユニット226に渡す。ブ
ロック転送ユニット226は、データをバス214を介
してホストメモリに渡す。VCI/VPIマッピング・
ユニット220は、コネクション・ナンバーを決定す
る。コネクション・ナンバーは、オペレーション・ロジ
ック230で用いられる。オペレーション・ロジック
は、図5を用いてより詳しく後に説明する。
【0143】コントロール・デコーダ222は、入力さ
れたセルの制御情報をデコードする。制御情報は、オペ
レーション・ロジック230に渡すインデックスとオペ
ランドをそれぞれ決定する。インデックスとオペランド
は、図3のATMセルで示したものと同じものである。
コントロール・デコーダ222は、ATMセルの中にあ
るオペコードをレシーブ・コントローラ228に出力す
る。レシーブ・コントローラ228は、オペレーション
・ロジック230に制御情報を与える。オペレーション
・ロジック230は、アドレス、ステート情報、コンデ
ィションコード、応答用コネクション・ナンバーと割り
込みを出力する。アドレスと割り込みは、バックエンド
に渡る。応答用コネクション・ナンバーは、フロントエ
ンド210の送信側のVCI/VPIマッピング・ユニ
ット232へ渡る。また、フロントエンド210の送信
側には、センド・コントローラ234がある。センド・
コントローラ234は、バス214を介して、ホストプ
ロセッサから情報を受け取り、オペレーション・ロジッ
ク230へ制御情報を提供し、VCI/VPIマッピン
グ・ユニット232へコネクション・ナンバーを提供す
る。センド・コントローラ234は、センドレジスタ2
36を備える。センドレジスタ236から、オペコー
ド、オペランド、インデックス情報がコントロール・エ
ンコーダ238に与えられる。コントロール・エンコー
ダ238は、図3で示したATMセルの該当フィールド
にこれらの情報を書き込む。
れたセルの制御情報をデコードする。制御情報は、オペ
レーション・ロジック230に渡すインデックスとオペ
ランドをそれぞれ決定する。インデックスとオペランド
は、図3のATMセルで示したものと同じものである。
コントロール・デコーダ222は、ATMセルの中にあ
るオペコードをレシーブ・コントローラ228に出力す
る。レシーブ・コントローラ228は、オペレーション
・ロジック230に制御情報を与える。オペレーション
・ロジック230は、アドレス、ステート情報、コンデ
ィションコード、応答用コネクション・ナンバーと割り
込みを出力する。アドレスと割り込みは、バックエンド
に渡る。応答用コネクション・ナンバーは、フロントエ
ンド210の送信側のVCI/VPIマッピング・ユニ
ット232へ渡る。また、フロントエンド210の送信
側には、センド・コントローラ234がある。センド・
コントローラ234は、バス214を介して、ホストプ
ロセッサから情報を受け取り、オペレーション・ロジッ
ク230へ制御情報を提供し、VCI/VPIマッピン
グ・ユニット232へコネクション・ナンバーを提供す
る。センド・コントローラ234は、センドレジスタ2
36を備える。センドレジスタ236から、オペコー
ド、オペランド、インデックス情報がコントロール・エ
ンコーダ238に与えられる。コントロール・エンコー
ダ238は、図3で示したATMセルの該当フィールド
にこれらの情報を書き込む。
【0144】送信側のブロック転送ユニット240は、
ホストメモリからデータバッファ242にデータを移
す。セル・フォーミング・ユニット244は、コネクシ
ョン情報、制御情報とデータをデータバッファ242か
ら受け取り、適切なヘッダ情報を備えたセルを作る。セ
ルは送信バッファとフロー・コントロール246に送ら
れる。送信バッファとフロー・コントロール246は、
FIFOメモリであることが望ましい。メッセージ・デ
ータは、データバッファ242から受け取る代わりに、
センドレジスタ236の中のひとつであるデータ・レジ
スタから取り出してもよい。レシーブ・コントローラ2
28とセンド・コントローラ234とオペレーション・
ロジック230以外の残りの機能ブロックは、ネットワ
ークインタフェースでは標準的なものであるか、また
は、比較的単純な機能を持つものである。そのため、残
りの機能ブロックについては説明を省く。
ホストメモリからデータバッファ242にデータを移
す。セル・フォーミング・ユニット244は、コネクシ
ョン情報、制御情報とデータをデータバッファ242か
ら受け取り、適切なヘッダ情報を備えたセルを作る。セ
ルは送信バッファとフロー・コントロール246に送ら
れる。送信バッファとフロー・コントロール246は、
FIFOメモリであることが望ましい。メッセージ・デ
ータは、データバッファ242から受け取る代わりに、
センドレジスタ236の中のひとつであるデータ・レジ
スタから取り出してもよい。レシーブ・コントローラ2
28とセンド・コントローラ234とオペレーション・
ロジック230以外の残りの機能ブロックは、ネットワ
ークインタフェースでは標準的なものであるか、また
は、比較的単純な機能を持つものである。そのため、残
りの機能ブロックについては説明を省く。
【0145】図4のオペレーション・ロジック230を
図5を用いて更に詳しく説明する。説明と図を簡単にす
るため、要素間のラッチと制御信号は省いた。図の左側
から入力される信号は、図3を用いて説明したATMセ
ルのデータ・フィールドからくる信号である。例えば、
コネクション・ナンバーは、ATMセル・ヘッダのVC
I/VPIから得る。オペレーション・ロジック230
は、コネクション・テーブル140を備える。オペレー
ション・ロジック230は、コネクション・テーブル1
40の全てあるいはその一部をキャッシュ化する。ま
た、コネクション・テーブル140は、オペレーティン
グシステムにより記憶される。各コネクションに対応し
て、このコネクション・テーブル140は、エントリ1
42を持つ。エントリ142は、エンドポイント・ナン
バー146、アドレスレジスタ情報、コネクション・ス
テート情報150、応答用コネクション151からな
る。アドレスレジスタ情報とは、アドレスレジスタのベ
ース148とアドレスレジスタの領域149のことであ
る。これらのフィールドの使い方について更に詳しく後
に述べる。
図5を用いて更に詳しく説明する。説明と図を簡単にす
るため、要素間のラッチと制御信号は省いた。図の左側
から入力される信号は、図3を用いて説明したATMセ
ルのデータ・フィールドからくる信号である。例えば、
コネクション・ナンバーは、ATMセル・ヘッダのVC
I/VPIから得る。オペレーション・ロジック230
は、コネクション・テーブル140を備える。オペレー
ション・ロジック230は、コネクション・テーブル1
40の全てあるいはその一部をキャッシュ化する。ま
た、コネクション・テーブル140は、オペレーティン
グシステムにより記憶される。各コネクションに対応し
て、このコネクション・テーブル140は、エントリ1
42を持つ。エントリ142は、エンドポイント・ナン
バー146、アドレスレジスタ情報、コネクション・ス
テート情報150、応答用コネクション151からな
る。アドレスレジスタ情報とは、アドレスレジスタのベ
ース148とアドレスレジスタの領域149のことであ
る。これらのフィールドの使い方について更に詳しく後
に述べる。
【0146】エンドポイント・テーブル160は、先に
述べたエンドポイント・テーブルの全てあるいは一部を
キャッシュ化したものである。エンドポイント・テーブ
ル160は、オペレーティングシステムによって維持管
理される。各エンドポイントに対応して、このエンドポ
イント・テーブル160は、エンドポイント・ナンバー
によってインデックスされたエントリ162を備える。
エントリ162は、エンドポイントのベース164と、
エンドポイントの領域166とアドレスマッピング情報
168からなる。アドレスマッピング情報は、ホストメ
モリに記憶されたエンドポイントのためのページマップ
構造を参照するためのものである。このエンドポイント
情報は、別のテーブルの中に備えられているので、同じ
エンドポイントを使用する多数のコネクションが、同じ
情報を共有できる。
述べたエンドポイント・テーブルの全てあるいは一部を
キャッシュ化したものである。エンドポイント・テーブ
ル160は、オペレーティングシステムによって維持管
理される。各エンドポイントに対応して、このエンドポ
イント・テーブル160は、エンドポイント・ナンバー
によってインデックスされたエントリ162を備える。
エントリ162は、エンドポイントのベース164と、
エンドポイントの領域166とアドレスマッピング情報
168からなる。アドレスマッピング情報は、ホストメ
モリに記憶されたエンドポイントのためのページマップ
構造を参照するためのものである。このエンドポイント
情報は、別のテーブルの中に備えられているので、同じ
エンドポイントを使用する多数のコネクションが、同じ
情報を共有できる。
【0147】オペレーション・ロジック230には、ア
ドレスレジスタ170も備えられている。アドレスレジ
スタ170を実現する方法は多くの方法の中から選ぶこ
とができる。アドレスレジスタ170は、限られたリソ
ースを複数のアクティビティが競合して使うことを回避
するため、各コネクションに対し専用とした方がよい。
エンドポイント内のどのアドレスも、間接アドレスに対
応したレジスタとして使える。しかしこのような一般化
は、アクセススピードの問題と保護の問題を生む。アク
セススピードの問題を、次に示す。間接アドレッシング
されたメッセージが、メッセージを記憶する位置を決定
するためにクリティカルパスで第1回目のホストメモリ
へのアクセスを要求し、更新されたインデックスを記憶
するためにポストインクリメントモードで第2回目のホ
ストメモリへのアクセスを要求する。従って、アクセス
スピードが遅くなる。保護の問題は、間接的なアドレス
で指定される位置が、どのアドレスも含むことができる
ために起こる。このアドレスを変換することにより、保
護の問題は解決できる。しかし、クリティカルパスにお
いて2つのアドレス変換が必要である。ひとつは間接的
な位置を示すアドレスの変換であり、もう一つは、間接
的な位置へアドレスを変換することである。これらの理
由により、間接指定は、インタフェース・メモリ上のコ
ネクションごとに専用に設けられたアドレスレジスタに
限るようにしておいた方がよい。このようにすることに
より、個別のネイム・スペースが必要となり不便ではあ
るが、間接指定のために発生するクリティカルパス上で
のホストメモリへのアクセスをさけることができる。各
コネクションは、レジスタ”ウィンドウ”として多数の
連続した位置にレジスタを配置する。使いやすさと自由
度を考えて、各コネクションは、コネクション・セット
・アップ時にウィンドウ・サイズを動的に割り当てるこ
とができる。コネクション・テーブル・エントリ142
のベース148と領域149は、それぞれこのウィンド
ウの開始位置と終わりを指す。このような仕様によれ
ば、レジスタ・ウィンドウの重複とネスティングを許す
事ができる。こうして、レジスタ・ウィンドウの異なる
方法での共有化と保護ができる。
ドレスレジスタ170も備えられている。アドレスレジ
スタ170を実現する方法は多くの方法の中から選ぶこ
とができる。アドレスレジスタ170は、限られたリソ
ースを複数のアクティビティが競合して使うことを回避
するため、各コネクションに対し専用とした方がよい。
エンドポイント内のどのアドレスも、間接アドレスに対
応したレジスタとして使える。しかしこのような一般化
は、アクセススピードの問題と保護の問題を生む。アク
セススピードの問題を、次に示す。間接アドレッシング
されたメッセージが、メッセージを記憶する位置を決定
するためにクリティカルパスで第1回目のホストメモリ
へのアクセスを要求し、更新されたインデックスを記憶
するためにポストインクリメントモードで第2回目のホ
ストメモリへのアクセスを要求する。従って、アクセス
スピードが遅くなる。保護の問題は、間接的なアドレス
で指定される位置が、どのアドレスも含むことができる
ために起こる。このアドレスを変換することにより、保
護の問題は解決できる。しかし、クリティカルパスにお
いて2つのアドレス変換が必要である。ひとつは間接的
な位置を示すアドレスの変換であり、もう一つは、間接
的な位置へアドレスを変換することである。これらの理
由により、間接指定は、インタフェース・メモリ上のコ
ネクションごとに専用に設けられたアドレスレジスタに
限るようにしておいた方がよい。このようにすることに
より、個別のネイム・スペースが必要となり不便ではあ
るが、間接指定のために発生するクリティカルパス上で
のホストメモリへのアクセスをさけることができる。各
コネクションは、レジスタ”ウィンドウ”として多数の
連続した位置にレジスタを配置する。使いやすさと自由
度を考えて、各コネクションは、コネクション・セット
・アップ時にウィンドウ・サイズを動的に割り当てるこ
とができる。コネクション・テーブル・エントリ142
のベース148と領域149は、それぞれこのウィンド
ウの開始位置と終わりを指す。このような仕様によれ
ば、レジスタ・ウィンドウの重複とネスティングを許す
事ができる。こうして、レジスタ・ウィンドウの異なる
方法での共有化と保護ができる。
【0148】アドレスレジスタを使う時、受信側コンピ
ュータがあるアドレスレジスタについて送信側コンピュ
ータのアクセスを制限したい場合、問題が起きる。送信
側コンピュータがキューに対するポインタの増減を直接
行うことを、受信側コンピュータが許可したくない場合
がこの例である。このため、アドレスレジスタ170
は、プロテクション・ビット144を備える。プロテク
ション・ビット144は、これらのレジスタのデータに
対し送信側コンピュータが許されているアクセスの種類
を示す。リード、ライト、インダイレクトのようなこれ
らのアクセスから、アドレスレジスタを保護する。間接
アクセスを行うとき、送信側コンピュータがこの情報の
値を決定することはできないが、この情報を送信側コン
ピュータが使うことはできる。例えば、送信側コンピュ
ータが、レジスタを直接読んだり書いたりすることを許
可されていない場合であっても、ポストインクリメント
を伴うインダイレクト・アドレス・オペレーションは、
レジスタの値を読んだり、指定した値でレジスタの値を
増加させることができる。ただし、許可されていない方
法で、アドレスレジスタをアクセスすることを伴うオペ
レーションを、送信側コンピュータが指定する場合は、
例外である。ホストプロセッサは、この時レジスタを直
接アクセスすることができる。
ュータがあるアドレスレジスタについて送信側コンピュ
ータのアクセスを制限したい場合、問題が起きる。送信
側コンピュータがキューに対するポインタの増減を直接
行うことを、受信側コンピュータが許可したくない場合
がこの例である。このため、アドレスレジスタ170
は、プロテクション・ビット144を備える。プロテク
ション・ビット144は、これらのレジスタのデータに
対し送信側コンピュータが許されているアクセスの種類
を示す。リード、ライト、インダイレクトのようなこれ
らのアクセスから、アドレスレジスタを保護する。間接
アクセスを行うとき、送信側コンピュータがこの情報の
値を決定することはできないが、この情報を送信側コン
ピュータが使うことはできる。例えば、送信側コンピュ
ータが、レジスタを直接読んだり書いたりすることを許
可されていない場合であっても、ポストインクリメント
を伴うインダイレクト・アドレス・オペレーションは、
レジスタの値を読んだり、指定した値でレジスタの値を
増加させることができる。ただし、許可されていない方
法で、アドレスレジスタをアクセスすることを伴うオペ
レーションを、送信側コンピュータが指定する場合は、
例外である。ホストプロセッサは、この時レジスタを直
接アクセスすることができる。
【0149】アドレスレジスタの保護のために、受信側
コンピュータが送信側コンピュータのアクセスを制限す
ることが許されているが、それでもなお送信側コンピュ
ータがオペレーションを指定する際、送信側コンピュー
タは全てのオペランドを指定することができる。このよ
うに、受信側コンピュータと送信側コンピュータの間が
完全に独立でないため、また別の保護上の問題が起き
る。例えば、オペランドのプライオリティとプライオリ
ティ・キューが合わない、あるいは間違ったレジスタを
指定するというような、矛盾するオペランドを送信側コ
ンピュータが、指定することもなお起こりうる。この問
題を解決するため、オペランド名は、受信側コンピュー
タだけが使えるようにして、送信側コンピュータと受信
側コンピュータの分離をはかる。
コンピュータが送信側コンピュータのアクセスを制限す
ることが許されているが、それでもなお送信側コンピュ
ータがオペレーションを指定する際、送信側コンピュー
タは全てのオペランドを指定することができる。このよ
うに、受信側コンピュータと送信側コンピュータの間が
完全に独立でないため、また別の保護上の問題が起き
る。例えば、オペランドのプライオリティとプライオリ
ティ・キューが合わない、あるいは間違ったレジスタを
指定するというような、矛盾するオペランドを送信側コ
ンピュータが、指定することもなお起こりうる。この問
題を解決するため、オペランド名は、受信側コンピュー
タだけが使えるようにして、送信側コンピュータと受信
側コンピュータの分離をはかる。
【0150】このように送信側コンピュータと受信側コ
ンピュータを分離するために、受信側コンピュータは、
受信側コンピュータのオペランドを、送られてきたオペ
ランドの中から見つけデコードするか、あるいはホスト
プロセッサに対する割り込みを実行すればよいことにな
る。しかし、オペランドをデコードする場合でも、割り
込みを実行する場合でも、ホストプロセッサはこれによ
りオーバヘッドが増加する。オペランドを自由に使える
ようにするため、受信側コンピュータ側はプログラマブ
ル・コントロールである必要がある。受信側コンピュー
タは、このため複雑になるが、それでもかなり単純な実
施例を後に述べる。ポストインクリメントを伴うインデ
ィレクションは、非常によく使うが、これをサポートす
るため、上記プリミティブ・オペレーションに、さら
に、次に示す特別な場合を加える。 effaddr=<addregi >; addregi ←<addregi >+<addregi+1 > この特別なインダイレクト・アドレッシング・モードを
使うために、送信側コンピュータは、オペランドにイン
デックスiを指定するだけでよい。受信側コンピュータ
は、インディレクション用にアドレスレジスタiを使
い、自動的に次のアドレスレジスタi+1をポストイン
クリメント・アマウントとしてに使う。
ンピュータを分離するために、受信側コンピュータは、
受信側コンピュータのオペランドを、送られてきたオペ
ランドの中から見つけデコードするか、あるいはホスト
プロセッサに対する割り込みを実行すればよいことにな
る。しかし、オペランドをデコードする場合でも、割り
込みを実行する場合でも、ホストプロセッサはこれによ
りオーバヘッドが増加する。オペランドを自由に使える
ようにするため、受信側コンピュータ側はプログラマブ
ル・コントロールである必要がある。受信側コンピュー
タは、このため複雑になるが、それでもかなり単純な実
施例を後に述べる。ポストインクリメントを伴うインデ
ィレクションは、非常によく使うが、これをサポートす
るため、上記プリミティブ・オペレーションに、さら
に、次に示す特別な場合を加える。 effaddr=<addregi >; addregi ←<addregi >+<addregi+1 > この特別なインダイレクト・アドレッシング・モードを
使うために、送信側コンピュータは、オペランドにイン
デックスiを指定するだけでよい。受信側コンピュータ
は、インディレクション用にアドレスレジスタiを使
い、自動的に次のアドレスレジスタi+1をポストイン
クリメント・アマウントとしてに使う。
【0151】コネクション・テーブル140、エンドポ
イント・テーブル160とアドレスレジスタ170は、
ネットワークインタフェースのメモリに配置してもよ
い。このネットワークインタフェースにあるメモリは、
スタティック・ランダム・アクセス・メモリ(SRA
M)か、またはダイナミック・ランダム・アクセス・メ
モリ(DRAM)である。従来のトランスレーション・
ルックアサイド・バッファ(TLB)180は、メッセ
ージで指定されたアドレスを物理アドレス(PA)に再
配置するために使われる。TLBは、フルリー・アソシ
エイティブ・キャッシュであることが望ましい。複数の
エンドポイントが、同じ仮想アドレス(VA)を使うこ
ともあるので、TLBは、エンドポイントのVAとエン
ドポイントを指定するビットとのマッチングにより物理
アドレスを探し出す。また、TLBは、物理アドレスに
アクセスしてよいかどうかの適否も記憶している。
イント・テーブル160とアドレスレジスタ170は、
ネットワークインタフェースのメモリに配置してもよ
い。このネットワークインタフェースにあるメモリは、
スタティック・ランダム・アクセス・メモリ(SRA
M)か、またはダイナミック・ランダム・アクセス・メ
モリ(DRAM)である。従来のトランスレーション・
ルックアサイド・バッファ(TLB)180は、メッセ
ージで指定されたアドレスを物理アドレス(PA)に再
配置するために使われる。TLBは、フルリー・アソシ
エイティブ・キャッシュであることが望ましい。複数の
エンドポイントが、同じ仮想アドレス(VA)を使うこ
ともあるので、TLBは、エンドポイントのVAとエン
ドポイントを指定するビットとのマッチングにより物理
アドレスを探し出す。また、TLBは、物理アドレスに
アクセスしてよいかどうかの適否も記憶している。
【0152】コネクション・テーブル140と、エンド
ポイント・テーブル160と、アドレスレジスタ170
と、TLB180の関連を、説明する。コネクション・
テーブル140のエントリ142から出力されるエンド
ポイント・ナンバー146は、エンドポイント・テーブ
ル160に対する入力として使われる。コネクション・
テーブル140からのベース148と領域情報149
は、それぞれ加算器156と比較器158に与えられ
る。加算器156は、受信したATMセルからインデッ
クス128(図3参照)も受け取る。そしてこの加算器
156からの出力もまた比較器158に与えられる。比
較器158は、適切なアドレスをアドレスレジスタ17
0に与えるためのフィルターの働きをする。もし比較器
158で適切でないとされたならば、エラートラップが
起きる。
ポイント・テーブル160と、アドレスレジスタ170
と、TLB180の関連を、説明する。コネクション・
テーブル140のエントリ142から出力されるエンド
ポイント・ナンバー146は、エンドポイント・テーブ
ル160に対する入力として使われる。コネクション・
テーブル140からのベース148と領域情報149
は、それぞれ加算器156と比較器158に与えられ
る。加算器156は、受信したATMセルからインデッ
クス128(図3参照)も受け取る。そしてこの加算器
156からの出力もまた比較器158に与えられる。比
較器158は、適切なアドレスをアドレスレジスタ17
0に与えるためのフィルターの働きをする。もし比較器
158で適切でないとされたならば、エラートラップが
起きる。
【0153】エンドポイント・テーブル160は、エン
ドポイントのベース164と領域166を出力する。ベ
ース164と領域166は、それぞれ加算器172と比
較器174に接続されている。加算器172は、受信し
たATMセルからオペランド・フィールド126(図3
参照)にあるオフセットも受け取る。マルチプレクサ1
76は、加算器172の出力と、エンドポイント・テー
ブル160からベース164と、受信したATMセルか
らオフセットを受け取る。マルチプレクサ176の出力
は、アリスメティック・ロジック・ユニット(ALU)
178に入力される。ALU178には、アドレスレジ
スタ170から読んだ値もまた入力される。ALU17
8は、コンディションコードと結果を出力する。このコ
ンディションコードは、レシーブ・コントローラ228
(図4参照)に与えられる。また、ALU178からの
結果は、デマルチプレクサ179とアドレスレジスタ1
70に与えられる。デマルチプレクサ179は、もう一
つの入力として加算器172からの出力を受け取る。デ
マルチプレクサ179の出力は、比較器174のもう一
つの入力となる。比較器174は、エラーを出力する
か、またはエンドポイントのとりうる領域内のアドレス
を出力する。後者の場合、アドレスはTLB180に入
力される。
ドポイントのベース164と領域166を出力する。ベ
ース164と領域166は、それぞれ加算器172と比
較器174に接続されている。加算器172は、受信し
たATMセルからオペランド・フィールド126(図3
参照)にあるオフセットも受け取る。マルチプレクサ1
76は、加算器172の出力と、エンドポイント・テー
ブル160からベース164と、受信したATMセルか
らオフセットを受け取る。マルチプレクサ176の出力
は、アリスメティック・ロジック・ユニット(ALU)
178に入力される。ALU178には、アドレスレジ
スタ170から読んだ値もまた入力される。ALU17
8は、コンディションコードと結果を出力する。このコ
ンディションコードは、レシーブ・コントローラ228
(図4参照)に与えられる。また、ALU178からの
結果は、デマルチプレクサ179とアドレスレジスタ1
70に与えられる。デマルチプレクサ179は、もう一
つの入力として加算器172からの出力を受け取る。デ
マルチプレクサ179の出力は、比較器174のもう一
つの入力となる。比較器174は、エラーを出力する
か、またはエンドポイントのとりうる領域内のアドレス
を出力する。後者の場合、アドレスはTLB180に入
力される。
【0154】レシーブ・コントローラ228は、マルチ
プレクサ176の制御と、ALU178の制御と、デマ
ルチプレクサ179の制御と、アドレスレジスタ170
の読み書きの制御に使われる。この際、コネクション・
テーブル140からのステート情報と、受信したATM
セルからのオペコード/制御情報と、ALU178から
のコンディションコードに従って制御を行こなう。レシ
ーブ・コントローラ228でサポートされる機能や、こ
れらの機能の実現方法については様々な方法がある。上
述したような基本的な5つのアドレッシングモードだけ
で実施される場合、このモードはとても単純なので、有
限状態マシーンを用いたハードウェア回路で実現でき
る。図6は、テーブルを用いた場合の実施方法について
示す。センダ・コントローラ234は、レシーブ・コン
トローラ228と類似した方法で実現できる。
プレクサ176の制御と、ALU178の制御と、デマ
ルチプレクサ179の制御と、アドレスレジスタ170
の読み書きの制御に使われる。この際、コネクション・
テーブル140からのステート情報と、受信したATM
セルからのオペコード/制御情報と、ALU178から
のコンディションコードに従って制御を行こなう。レシ
ーブ・コントローラ228でサポートされる機能や、こ
れらの機能の実現方法については様々な方法がある。上
述したような基本的な5つのアドレッシングモードだけ
で実施される場合、このモードはとても単純なので、有
限状態マシーンを用いたハードウェア回路で実現でき
る。図6は、テーブルを用いた場合の実施方法について
示す。センダ・コントローラ234は、レシーブ・コン
トローラ228と類似した方法で実現できる。
【0155】図6は、レシーブ・コントローラ228内
部にテーブルを持って動作させる場合を示した図であ
る。テーブル190にコンディションコード184、ス
テート186、オペコード188が入力される。コンデ
ィションコード184、ステート186、オペコード1
88はテーブル190のインデックスとして用いられ
る。テーブル190からの出力は、コントロール信号1
92、新しいステート情報196、マスク194であ
る。コントロール信号192は、マルチプレクサ17
6、デマルチプレクサ179、ALU178と図示して
いないラッチに出力される。これらの出力の利用に関し
てはさらに以下に詳細に説明する。図4においては、こ
れらの出力はすべてまとめられてレシーブ・コントロー
ラ228からオペレーション・ロジック230向かって
出力される”コントロール”とラベル付けされた矢印に
よって表示されている。
部にテーブルを持って動作させる場合を示した図であ
る。テーブル190にコンディションコード184、ス
テート186、オペコード188が入力される。コンデ
ィションコード184、ステート186、オペコード1
88はテーブル190のインデックスとして用いられ
る。テーブル190からの出力は、コントロール信号1
92、新しいステート情報196、マスク194であ
る。コントロール信号192は、マルチプレクサ17
6、デマルチプレクサ179、ALU178と図示して
いないラッチに出力される。これらの出力の利用に関し
てはさらに以下に詳細に説明する。図4においては、こ
れらの出力はすべてまとめられてレシーブ・コントロー
ラ228からオペレーション・ロジック230向かって
出力される”コントロール”とラベル付けされた矢印に
よって表示されている。
【0156】図5において図示されていないが、コネク
ション・テーブル140、エンドポイント・テーブル1
60、アドレスレジスタ170及びTLB180に対し
てデータを返送するデータバスが存在している。従って
ホストプロセッサはこれらの各種テーブルの内容を読み
書きすることができる。これによりオペレーティングシ
ステムが、テーブルとTLBの内容を管理することがで
き、また、アプリケーションがアドレスレジスタに対し
てアクセスすることができる。しかしながらアプリケー
ションが直接アドレスレジスタをアクセスすることは、
保護の面から問題が生ずる。この問題を解決する最も簡
単な方法は、アプリケーションが直接アドレスレジスタ
をアクセスすることを禁止し、オペレーティングシステ
ムのシステムコールによってのみ、アドレスレジスタを
アクセスできるようにしてしまうことである。しかし、
この解決方法は、アドレスレジスタをアクセスするため
に多くの犠牲を払うことになる。保護の問題を解決する
もう一つの方法は、アプリケーションが持っている仮想
アドレス空間の中にアドレスレジスタをマッピングする
ことである。すなわち各コネクションのアドレスレジス
タは、それぞれ異なる物理アドレス領域にマッピングさ
れる。そして追加の回路を設けることにより、追加の回
路がこの物理アドレスからコネクション・ナンバーを抽
出し、コネクション・テーブル140に記憶されたアド
レスレジスタのベース148と領域149を用いて、ア
ドレスレジスタ170が記憶された領域をまちがいなく
アクセスすることができる。この解決方法によれば、オ
ペレーティングシステムのシステムコールは、マッピン
グを生成するためだけに要求される。一旦マッピングが
生成されたのちは、アプリケーションは受信したメッセ
ージに用いられているアドレスレジスタベースと領域を
用いて、アドレスレジスタをアクセスすることができ
る。
ション・テーブル140、エンドポイント・テーブル1
60、アドレスレジスタ170及びTLB180に対し
てデータを返送するデータバスが存在している。従って
ホストプロセッサはこれらの各種テーブルの内容を読み
書きすることができる。これによりオペレーティングシ
ステムが、テーブルとTLBの内容を管理することがで
き、また、アプリケーションがアドレスレジスタに対し
てアクセスすることができる。しかしながらアプリケー
ションが直接アドレスレジスタをアクセスすることは、
保護の面から問題が生ずる。この問題を解決する最も簡
単な方法は、アプリケーションが直接アドレスレジスタ
をアクセスすることを禁止し、オペレーティングシステ
ムのシステムコールによってのみ、アドレスレジスタを
アクセスできるようにしてしまうことである。しかし、
この解決方法は、アドレスレジスタをアクセスするため
に多くの犠牲を払うことになる。保護の問題を解決する
もう一つの方法は、アプリケーションが持っている仮想
アドレス空間の中にアドレスレジスタをマッピングする
ことである。すなわち各コネクションのアドレスレジス
タは、それぞれ異なる物理アドレス領域にマッピングさ
れる。そして追加の回路を設けることにより、追加の回
路がこの物理アドレスからコネクション・ナンバーを抽
出し、コネクション・テーブル140に記憶されたアド
レスレジスタのベース148と領域149を用いて、ア
ドレスレジスタ170が記憶された領域をまちがいなく
アクセスすることができる。この解決方法によれば、オ
ペレーティングシステムのシステムコールは、マッピン
グを生成するためだけに要求される。一旦マッピングが
生成されたのちは、アプリケーションは受信したメッセ
ージに用いられているアドレスレジスタベースと領域を
用いて、アドレスレジスタをアクセスすることができ
る。
【0157】また、前述した説明においては、エンドポ
イントベースは、仮想アドレスであると説明したが、物
理的アドレスであってもかまわない。もし、エンドポイ
ントベースが物理的アドレスであれば、マッピングが簡
単化する。すなわち単に領域のチェックをするだけでよ
い。しかしこの方法は二つの欠点を生ずる。最初の欠点
はエンドポイントのサイズがあるサイズを持ったページ
のサイズよりも大きい場合、エンドポイントが物理的に
連続する複数のページにまたがって配置される点であ
る。第2番目の欠点はアドレスレジスタが相対アドレス
か物理アドレスの何れかしか記憶できなことである。こ
のようなふたつの欠点を避けるためには、エンドポイン
トベースを仮想アドレスとし、この仮想アドレスから物
理アドレスへのマッピングを行なう必要がある。前述し
た最初の欠点はホストメモリの使用を制限する。特にエ
ンドポイントのサイズが動的に変化するような場合には
好ましくない。また第2の欠点は、アプリケーションが
間接アドレスポインタを充分に使用できないということ
を意味している。あるいはポインタをアドレスレジスタ
に格納する場合、そのポインタを物理アドレスにマッピ
ングするために、オペレーティングシステムが必ず起動
されなければならないということを意味している。
イントベースは、仮想アドレスであると説明したが、物
理的アドレスであってもかまわない。もし、エンドポイ
ントベースが物理的アドレスであれば、マッピングが簡
単化する。すなわち単に領域のチェックをするだけでよ
い。しかしこの方法は二つの欠点を生ずる。最初の欠点
はエンドポイントのサイズがあるサイズを持ったページ
のサイズよりも大きい場合、エンドポイントが物理的に
連続する複数のページにまたがって配置される点であ
る。第2番目の欠点はアドレスレジスタが相対アドレス
か物理アドレスの何れかしか記憶できなことである。こ
のようなふたつの欠点を避けるためには、エンドポイン
トベースを仮想アドレスとし、この仮想アドレスから物
理アドレスへのマッピングを行なう必要がある。前述し
た最初の欠点はホストメモリの使用を制限する。特にエ
ンドポイントのサイズが動的に変化するような場合には
好ましくない。また第2の欠点は、アプリケーションが
間接アドレスポインタを充分に使用できないということ
を意味している。あるいはポインタをアドレスレジスタ
に格納する場合、そのポインタを物理アドレスにマッピ
ングするために、オペレーティングシステムが必ず起動
されなければならないということを意味している。
【0158】次にオペレーション・ロジック230の機
能について、以下に説明する。コネクション・ナンバー
はメッセージから抽出される番号である。コネクション
・ナンバーは、コネクション・テーブル140のインデ
ックスとして用いられる。コネクション・ナンバーがコ
ネクション・テーブルのテーブルサイズ以内であるかど
うかを、チェックするための保護機構が用意されてい
る。すなわち比較器150によって、コネクション・ナ
ンバーが適切なものであるかどうかがチェックされる。
能について、以下に説明する。コネクション・ナンバー
はメッセージから抽出される番号である。コネクション
・ナンバーは、コネクション・テーブル140のインデ
ックスとして用いられる。コネクション・ナンバーがコ
ネクション・テーブルのテーブルサイズ以内であるかど
うかを、チェックするための保護機構が用意されてい
る。すなわち比較器150によって、コネクション・ナ
ンバーが適切なものであるかどうかがチェックされる。
【0159】加算器156はATMセルからのインデッ
クスの値と、コネクション・テーブル140から求めら
れたアドレスレジスタベースを加算する。比較器158
は加算された値と、コネクション・テーブル140から
得られた領域149とを比較する。もし加算された値が
領域以下であれば、その加算された値はアドレスレジス
タ170へのアドレスとして送られる。もし加算した値
が領域よりも大きい場合には、エラーであると判断され
エラートラップ処理が実行される。このようにしてアド
レスレジスタから、アドレスレジスタに記憶された値が
得られ、得られた値はALU178に送られる。
クスの値と、コネクション・テーブル140から求めら
れたアドレスレジスタベースを加算する。比較器158
は加算された値と、コネクション・テーブル140から
得られた領域149とを比較する。もし加算された値が
領域以下であれば、その加算された値はアドレスレジス
タ170へのアドレスとして送られる。もし加算した値
が領域よりも大きい場合には、エラーであると判断され
エラートラップ処理が実行される。このようにしてアド
レスレジスタから、アドレスレジスタに記憶された値が
得られ、得られた値はALU178に送られる。
【0160】コネクション・テーブル140から得られ
たエンドポイント番号は、エンドポイント・テーブル1
60にある、エンドポイントベース164を検索するた
めに用いられる。エンドポイントベース164は、検索
された後、加算器172に送られる。加算器172は、
検索されたエンドポイントベース164と、受信したA
TMセルから抽出したオフセットの値を加算する。この
加算された値はマルチプレクサ176とデマルチプレク
サ179に送られる。マルチプレクサには、エンドポイ
ントベース164と、加算器172による加算値と、A
TMセルから抽出されたオフセットの値が入力される。
マルチプレクサ176はこれらの値から、一つのものを
選択してALU178に送るように制御される。ALU
178はアドレスレジスタ170から受け取った値とマ
ルチプレクサからの出力に基づいて、オペレーションを
実行するように制御される。マルチプレクサからALU
178へは、コンディションコードとアドレスが出力さ
れる。ALU178により実行されるオペレーションと
して、ポストインクリメントモードによる加算処理のよ
うな、アドレスレジスタの内容に関するオペレーション
や、ロジックオペレーションや、条件付き割り込み等の
比較オペレーション等がある。但し、ALU178のオ
ペレーションは前述したオペレーションに限るものでは
ない。ALU178は、アドレスレジスタの内容に関す
る他のいろいろなオペレーションを行なうために用いら
れる。もし条件付き割り込みとアドレスレジスタに関す
るオペレーションが、アドレスレジスタを使用しないと
いうアドレスモードに制限されるということがなけれ
ば、アドレスレジスタに用いれるメモリはマルチポート
メモリであることが望ましい。あるいはアドレスレジス
タに用いれるメモリはオペレーション・ロジック230
にある他の部分よりも、早いクロックで動作することが
望ましい。
たエンドポイント番号は、エンドポイント・テーブル1
60にある、エンドポイントベース164を検索するた
めに用いられる。エンドポイントベース164は、検索
された後、加算器172に送られる。加算器172は、
検索されたエンドポイントベース164と、受信したA
TMセルから抽出したオフセットの値を加算する。この
加算された値はマルチプレクサ176とデマルチプレク
サ179に送られる。マルチプレクサには、エンドポイ
ントベース164と、加算器172による加算値と、A
TMセルから抽出されたオフセットの値が入力される。
マルチプレクサ176はこれらの値から、一つのものを
選択してALU178に送るように制御される。ALU
178はアドレスレジスタ170から受け取った値とマ
ルチプレクサからの出力に基づいて、オペレーションを
実行するように制御される。マルチプレクサからALU
178へは、コンディションコードとアドレスが出力さ
れる。ALU178により実行されるオペレーションと
して、ポストインクリメントモードによる加算処理のよ
うな、アドレスレジスタの内容に関するオペレーション
や、ロジックオペレーションや、条件付き割り込み等の
比較オペレーション等がある。但し、ALU178のオ
ペレーションは前述したオペレーションに限るものでは
ない。ALU178は、アドレスレジスタの内容に関す
る他のいろいろなオペレーションを行なうために用いら
れる。もし条件付き割り込みとアドレスレジスタに関す
るオペレーションが、アドレスレジスタを使用しないと
いうアドレスモードに制限されるということがなけれ
ば、アドレスレジスタに用いれるメモリはマルチポート
メモリであることが望ましい。あるいはアドレスレジス
タに用いれるメモリはオペレーション・ロジック230
にある他の部分よりも、早いクロックで動作することが
望ましい。
【0161】ALU178による処理結果は、アドレス
レジスタ170に送られる場合がある。デマルチプレク
サ179は、加算器172の加算値とALU178の処
理結果のいずれかを選択するように制御される。デマル
チプレクサ179からの出力は、エンドポイント・テー
ブル160から検索された領域166と比較器174に
より比較される。これは保護機能の一部である。
レジスタ170に送られる場合がある。デマルチプレク
サ179は、加算器172の加算値とALU178の処
理結果のいずれかを選択するように制御される。デマル
チプレクサ179からの出力は、エンドポイント・テー
ブル160から検索された領域166と比較器174に
より比較される。これは保護機能の一部である。
【0162】比較器174から出力されたアドレスはT
LB180に出力される。TLB180においても、保
護の機能が存在する。比較器174から出力されたアド
レスが、TLB180に適合するものであるかどうかが
チェックされる。もし、比較器174から出力されたア
ドレスが、TLBのエントリとマッチしないというTL
Bミスが発生した場合には、オペレーティングシステム
に対して例外処理を要求することになる。このTLBミ
スは、比較器174から出力されたアドレスに基づくア
ドレスマッピングが、TLBの中に存在していないこと
により生ずる。あるいはこのTLBミスはアクセス権を
有していないことにより生ずる。TLBミスをホストプ
ロセッサにより例外処理として、処理させることはハー
ドウェアをほとんど使用することにはならないが、TL
Bミスの例外処理が実行されている間、到着するセルの
処理を邪魔してしまうという不利益がある。これらの到
着するセルは、例外処理が行われる場合には、その数を
制限されたり、あるいはバッファに溜められたりするこ
とが望ましい。しかし廃棄されてしまう場合も存在す
る。TLBミスを処理する他の案として、ネットワーク
インタフェースがTLBミスを処理するためのハードウ
ェアを持つようにしてもかまわない。あるいはネットワ
ークインタフェースがTLBミスを減少させる、あるい
は、TLBミスを除去するために、エンドポイント毎に
専用のマッピングを持つようにしてもかまわない。ネッ
トワークインタフェースがハードウェアを追加する場合
は、ハードウェアに依存してしまい、処理が柔軟でなく
なる。また、ハードウェアで処理するにもかかわらず、
マッピング情報をホストメモリからアクセスしなければ
ならないため、遅延が生じてしまい、セルの処理に遅延
を生じてしまう。一方、エンドポイント毎に専用のマッ
ピングを持つ方法は、各々のエンドポイントに対して一
つあるいは二つのマッピングエントリを持てるように、
エンドポイント・テーブルが拡張されている場合、可能
な方法である。しかし、このような拡張はメモリ空間の
増加と性能の減少を生じさせるものである。
LB180に出力される。TLB180においても、保
護の機能が存在する。比較器174から出力されたアド
レスが、TLB180に適合するものであるかどうかが
チェックされる。もし、比較器174から出力されたア
ドレスが、TLBのエントリとマッチしないというTL
Bミスが発生した場合には、オペレーティングシステム
に対して例外処理を要求することになる。このTLBミ
スは、比較器174から出力されたアドレスに基づくア
ドレスマッピングが、TLBの中に存在していないこと
により生ずる。あるいはこのTLBミスはアクセス権を
有していないことにより生ずる。TLBミスをホストプ
ロセッサにより例外処理として、処理させることはハー
ドウェアをほとんど使用することにはならないが、TL
Bミスの例外処理が実行されている間、到着するセルの
処理を邪魔してしまうという不利益がある。これらの到
着するセルは、例外処理が行われる場合には、その数を
制限されたり、あるいはバッファに溜められたりするこ
とが望ましい。しかし廃棄されてしまう場合も存在す
る。TLBミスを処理する他の案として、ネットワーク
インタフェースがTLBミスを処理するためのハードウ
ェアを持つようにしてもかまわない。あるいはネットワ
ークインタフェースがTLBミスを減少させる、あるい
は、TLBミスを除去するために、エンドポイント毎に
専用のマッピングを持つようにしてもかまわない。ネッ
トワークインタフェースがハードウェアを追加する場合
は、ハードウェアに依存してしまい、処理が柔軟でなく
なる。また、ハードウェアで処理するにもかかわらず、
マッピング情報をホストメモリからアクセスしなければ
ならないため、遅延が生じてしまい、セルの処理に遅延
を生じてしまう。一方、エンドポイント毎に専用のマッ
ピングを持つ方法は、各々のエンドポイントに対して一
つあるいは二つのマッピングエントリを持てるように、
エンドポイント・テーブルが拡張されている場合、可能
な方法である。しかし、このような拡張はメモリ空間の
増加と性能の減少を生じさせるものである。
【0163】レシーブ・コントローラ228はオペコー
ド129をデコードする。また、レシーブ・コントロー
ラ228は、ALU178から出力されたコンディショ
ンコードと、コネクション・テーブル140から出力さ
れたステート情報150を用いて到着したATMセルに
対して為すべきアクションを決定する。レシーブ・コン
トローラ228によって出力されるコントロール信号
は、オペコードとコンディションコードとによって決定
される。これらのコントロール信号は、所望のアドレッ
シングモードを有効にするために、使われる。また、デ
ータを記憶するために使われる。図6に示すマスク19
4の出力は、データのうちどのエレメントが受信側コン
ピュータのメモリに、実際に記憶されるものであるかを
選択するために用いられる。例えば、マスクは4バイト
を一つの単位としてデータを選択する。マスクは32バ
イトのデータブロックに対して、4ビット必要であり、
図3に示すようにオペコードのマスクに割り当てられた
4ビットから直接マスク131を得ることができる。
ド129をデコードする。また、レシーブ・コントロー
ラ228は、ALU178から出力されたコンディショ
ンコードと、コネクション・テーブル140から出力さ
れたステート情報150を用いて到着したATMセルに
対して為すべきアクションを決定する。レシーブ・コン
トローラ228によって出力されるコントロール信号
は、オペコードとコンディションコードとによって決定
される。これらのコントロール信号は、所望のアドレッ
シングモードを有効にするために、使われる。また、デ
ータを記憶するために使われる。図6に示すマスク19
4の出力は、データのうちどのエレメントが受信側コン
ピュータのメモリに、実際に記憶されるものであるかを
選択するために用いられる。例えば、マスクは4バイト
を一つの単位としてデータを選択する。マスクは32バ
イトのデータブロックに対して、4ビット必要であり、
図3に示すようにオペコードのマスクに割り当てられた
4ビットから直接マスク131を得ることができる。
【0164】コネクション・テーブル140のステート
情報150は、複数のセルからメッセージが構成されて
いるマルチプルセルメッセージに対してもちいられる。
ステート情報150は、これらの複数のセルに対するコ
ネクション・アドレッシング情報を記録する。マルチプ
ルセルメッセージを受信した場合の最初のセルは、コン
トロールセルと呼ばれる。このコントロールセルはアド
レッシングモードを選択する情報を含んでいる。また、
オフセットとインデックスを指定している。このコント
ロールセルの情報は、コネクション・テーブル140の
ステート情報150に記憶される。同一のマルチプルセ
ルメッセージに含まれる後続のセルは、これらの制御情
報を含む必要がなく、より多くのデータを運ぶことがで
きる。例えば、最初のセルは32バイトのデータを持つ
ことができるが、後続のセルは48バイトのデータを持
つことができる。これはAAL5によるフォーマットに
よる場合である。後続のセルは、コネクション・テーブ
ル140のステート情報150に記憶された制御情報を
利用する。このマルチプルセルメッセージの終了は、ス
テート情報150にセルカウントを記憶しておくことに
より、識別することができる。あるいは、標準化された
AAL5のフォーマットを用いることにより、最終のセ
ルを識別することができる。AAL5のフォーマットに
よれば、マルチプルセルメッセージの最後のセルは、レ
ングスとCRCを伝送することになっているので、これ
らを識別することにより最終のセルであることを判別で
きる。受信したすべてのセルは、最終的に受信したセル
のCRCが正しいかどうかによりチェックされる。マル
チプルセルメッセージがCRCで終了すると仮定すれ
ば、32バイトを1ブロックとしてN(N>1)ブロッ
クを伝送するために、[2/3(N−1)]+2個のセ
ルが用いられることになる。この方法を用いれば、一つ
のセルで32バイトを1ブロックとするブロックを一つ
送信する場合に較べて、おおよそ2/3のセル数でデー
タを送ることが可能になる。
情報150は、複数のセルからメッセージが構成されて
いるマルチプルセルメッセージに対してもちいられる。
ステート情報150は、これらの複数のセルに対するコ
ネクション・アドレッシング情報を記録する。マルチプ
ルセルメッセージを受信した場合の最初のセルは、コン
トロールセルと呼ばれる。このコントロールセルはアド
レッシングモードを選択する情報を含んでいる。また、
オフセットとインデックスを指定している。このコント
ロールセルの情報は、コネクション・テーブル140の
ステート情報150に記憶される。同一のマルチプルセ
ルメッセージに含まれる後続のセルは、これらの制御情
報を含む必要がなく、より多くのデータを運ぶことがで
きる。例えば、最初のセルは32バイトのデータを持つ
ことができるが、後続のセルは48バイトのデータを持
つことができる。これはAAL5によるフォーマットに
よる場合である。後続のセルは、コネクション・テーブ
ル140のステート情報150に記憶された制御情報を
利用する。このマルチプルセルメッセージの終了は、ス
テート情報150にセルカウントを記憶しておくことに
より、識別することができる。あるいは、標準化された
AAL5のフォーマットを用いることにより、最終のセ
ルを識別することができる。AAL5のフォーマットに
よれば、マルチプルセルメッセージの最後のセルは、レ
ングスとCRCを伝送することになっているので、これ
らを識別することにより最終のセルであることを判別で
きる。受信したすべてのセルは、最終的に受信したセル
のCRCが正しいかどうかによりチェックされる。マル
チプルセルメッセージがCRCで終了すると仮定すれ
ば、32バイトを1ブロックとしてN(N>1)ブロッ
クを伝送するために、[2/3(N−1)]+2個のセ
ルが用いられることになる。この方法を用いれば、一つ
のセルで32バイトを1ブロックとするブロックを一つ
送信する場合に較べて、おおよそ2/3のセル数でデー
タを送ることが可能になる。
【0165】前述した機能以外にいろいろな機能を追加
することができる。この機能の追加はレシーブ・コント
ローラ228によって解釈されるオペコードの追加によ
ってなされる。
することができる。この機能の追加はレシーブ・コント
ローラ228によって解釈されるオペコードの追加によ
ってなされる。
【0166】オペレーティングシステムに報告されたエ
ラートラップの処理は、セルを廃棄することによって行
われる。あるいは、そのセルをエラー用の待ち行列に追
加するとともに、オペレーティングシステムに対して例
外処理をリクエストすることによって行われる。
ラートラップの処理は、セルを廃棄することによって行
われる。あるいは、そのセルをエラー用の待ち行列に追
加するとともに、オペレーティングシステムに対して例
外処理をリクエストすることによって行われる。
【0167】今まではフロントエンドの受信側について
説明してきたが、以下にフロントエンドの送信側につい
て説明する。セルを送信するためには、コントロール情
報とデータが準備されなければならない。コントロール
情報は、一組のセンドレジスタ236から得ることがで
きる。各コネクションはセルを送信するために、各々一
組のセンドレジスタ236を持っている。この一組のセ
ンドレジスタ236の最初の3つのレジスタは、制御情
報を記憶する。すなわち、セルに格納されるオペコード
とオペランドとインデックスを記憶する。一方、送信用
のデータは、コネクションに関連したエンドポイントか
ら得られる。あるいは送信用のデータはセンドレジスタ
の中の特別なブロックから得ることができる。データを
センドレジスタの特別なブロックから得る場合は、リー
ド要求を形成する場合に非常に便利である。
説明してきたが、以下にフロントエンドの送信側につい
て説明する。セルを送信するためには、コントロール情
報とデータが準備されなければならない。コントロール
情報は、一組のセンドレジスタ236から得ることがで
きる。各コネクションはセルを送信するために、各々一
組のセンドレジスタ236を持っている。この一組のセ
ンドレジスタ236の最初の3つのレジスタは、制御情
報を記憶する。すなわち、セルに格納されるオペコード
とオペランドとインデックスを記憶する。一方、送信用
のデータは、コネクションに関連したエンドポイントか
ら得られる。あるいは送信用のデータはセンドレジスタ
の中の特別なブロックから得ることができる。データを
センドレジスタの特別なブロックから得る場合は、リー
ド要求を形成する場合に非常に便利である。
【0168】それぞれのコネクションに対して設けられ
たセンドレジスタは、ステータスレジスタとモードレジ
スタとゴーレジスタを備えている。ステータスレジスタ
は送信されたセルの数を記憶する。もしステータスレジ
スタの値が予め1にイニシャライズされている場合に
は、ネットワークインタフェースがセルを実際に送信し
たとき、その値は0に設定される。このように、ステー
タスレジスタを用いる場合は、ステータスレジスタを送
信すべきセルが、ネットワークインタフェースを実際に
離れて送信されてしまったという、確認として用いるこ
とができ便利である。なぜならばセルは、フロー・コン
トロールや例外処理のおかげですぐに送信されるとは限
らないからである。一方モードレジスタは後に述べるよ
うな二つの機能を持っている。また、ゴーレジスタは後
に述べるように、セルを実際に送信するために使われる
レジスタである。
たセンドレジスタは、ステータスレジスタとモードレジ
スタとゴーレジスタを備えている。ステータスレジスタ
は送信されたセルの数を記憶する。もしステータスレジ
スタの値が予め1にイニシャライズされている場合に
は、ネットワークインタフェースがセルを実際に送信し
たとき、その値は0に設定される。このように、ステー
タスレジスタを用いる場合は、ステータスレジスタを送
信すべきセルが、ネットワークインタフェースを実際に
離れて送信されてしまったという、確認として用いるこ
とができ便利である。なぜならばセルは、フロー・コン
トロールや例外処理のおかげですぐに送信されるとは限
らないからである。一方モードレジスタは後に述べるよ
うな二つの機能を持っている。また、ゴーレジスタは後
に述べるように、セルを実際に送信するために使われる
レジスタである。
【0169】前述したように、いろいろなオプションが
フロントエンドの各部分に対して可能である。ここでい
くつかの異なる実施例について以下に説明する。第1の
フロントエンドの構成は図5に示すように、最小限のハ
ードウェアを用いる場合である。アドレスレジスタのオ
ペレーションとしては、一つのセルに対して、多くとも
一つのアドレスレジスタに対するリードとライトだけに
制限されている。また、エンドポイントのページは物理
的なメモリに拘束されており、またバッファが備わって
いる。リモートリードは割り込みを介してホストプロセ
ッサにより処理される。前述したアドレスレジスタのオ
ペレーションが一つのアドレスレジスタに限られている
ということは、アドレスレジスタに対して実行可能なオ
ペレーションが、すべて同じアドレスレジスタに対して
行われるということである。また、バイナリオペレーシ
ョンはメッセージのオペランドから一つの引数を得ると
いうことを意味している。このようにして、間接アドレ
ッシングオペレーションのためのポストインクリメント
の値がメッセージによって指定される。このような状態
では、受信側コンピュータのステートを送信側コンピュ
ータから完全に独立させているということはできない。
そこで、代替え案として、所望の機能を連続するメッセ
ージにより構成する場合が考えられる。例えば、ポスト
インクリメントの値が後続のメッセージに指定されたレ
ジスタへの加算により、指定されるようにすればよい。
前述したエンドポイントのページが物理メモリによって
制限されているということは、エンドポイントのサイズ
が大きくなるということを防止しているとともに、エン
ドポイントのサイズが小さくなり、数多くのエンドポイ
ントができてしまうということを防いでいる。したがっ
て、エンドポイントのサイズを物理メモリによって、制
限するということは、構造を単純化するのに役立ってい
る。
フロントエンドの各部分に対して可能である。ここでい
くつかの異なる実施例について以下に説明する。第1の
フロントエンドの構成は図5に示すように、最小限のハ
ードウェアを用いる場合である。アドレスレジスタのオ
ペレーションとしては、一つのセルに対して、多くとも
一つのアドレスレジスタに対するリードとライトだけに
制限されている。また、エンドポイントのページは物理
的なメモリに拘束されており、またバッファが備わって
いる。リモートリードは割り込みを介してホストプロセ
ッサにより処理される。前述したアドレスレジスタのオ
ペレーションが一つのアドレスレジスタに限られている
ということは、アドレスレジスタに対して実行可能なオ
ペレーションが、すべて同じアドレスレジスタに対して
行われるということである。また、バイナリオペレーシ
ョンはメッセージのオペランドから一つの引数を得ると
いうことを意味している。このようにして、間接アドレ
ッシングオペレーションのためのポストインクリメント
の値がメッセージによって指定される。このような状態
では、受信側コンピュータのステートを送信側コンピュ
ータから完全に独立させているということはできない。
そこで、代替え案として、所望の機能を連続するメッセ
ージにより構成する場合が考えられる。例えば、ポスト
インクリメントの値が後続のメッセージに指定されたレ
ジスタへの加算により、指定されるようにすればよい。
前述したエンドポイントのページが物理メモリによって
制限されているということは、エンドポイントのサイズ
が大きくなるということを防止しているとともに、エン
ドポイントのサイズが小さくなり、数多くのエンドポイ
ントができてしまうということを防いでいる。したがっ
て、エンドポイントのサイズを物理メモリによって、制
限するということは、構造を単純化するのに役立ってい
る。
【0170】この実施例の受信側は、前述したような構
成を持つ。この例では、エンドポイントのページが物理
メモリにより指定されるという構成をとっているため
に、エンドポイント・テーブル160が、エンドポイン
トベースとして物理アドレスを記憶している点が特徴で
ある。物理的なページは、必ずしも連続的に配置される
とは限らないので、TLB180が物理ページから物理
アドレスへの変換のために用いられる。TLB180は
アドレスを変換するためのマッピングをキャッシュの中
に記憶させているものである。TLB180は、図5に
おいてVAと記載された値を対応する物理アドレスに変
換するものである。このVAはエンドポイントベースア
ドレスとオフセットを加算した値である。この実施例に
おいては、エンドポイントベースアドレスがエンドポイ
ントのページを示している。もし、エンドポイントのサ
イズが1ページ以下である場合には、TLB180に記
憶されている物理アドレスが、直接エンドポイント・テ
ーブル160のエンドポイントベース164のエントリ
162に記憶されていてもかまわない。このように、物
理アドレスがエンドポイントベース164に記憶される
ような構造をとる場合には、エンドポイント・テーブル
の各エントリ162すべてに対して、ダイレクトマッピ
ングビットが付加される。このダイレクトマッピングビ
ットを用いることにより、物理アドレスが直接エンドポ
イントベース164に記載されているかどうかを判定す
ることができ、エンドポイントベースの解釈を正しく行
うことができる。なお、エンドポイントのサイズが1ペ
ージのサイズよりも大きい場合には、エンドポイント・
テーブルに対して、マッピングエントリを追加すること
により大きいサイズのエンドポイントを処理することが
可能になる。
成を持つ。この例では、エンドポイントのページが物理
メモリにより指定されるという構成をとっているため
に、エンドポイント・テーブル160が、エンドポイン
トベースとして物理アドレスを記憶している点が特徴で
ある。物理的なページは、必ずしも連続的に配置される
とは限らないので、TLB180が物理ページから物理
アドレスへの変換のために用いられる。TLB180は
アドレスを変換するためのマッピングをキャッシュの中
に記憶させているものである。TLB180は、図5に
おいてVAと記載された値を対応する物理アドレスに変
換するものである。このVAはエンドポイントベースア
ドレスとオフセットを加算した値である。この実施例に
おいては、エンドポイントベースアドレスがエンドポイ
ントのページを示している。もし、エンドポイントのサ
イズが1ページ以下である場合には、TLB180に記
憶されている物理アドレスが、直接エンドポイント・テ
ーブル160のエンドポイントベース164のエントリ
162に記憶されていてもかまわない。このように、物
理アドレスがエンドポイントベース164に記憶される
ような構造をとる場合には、エンドポイント・テーブル
の各エントリ162すべてに対して、ダイレクトマッピ
ングビットが付加される。このダイレクトマッピングビ
ットを用いることにより、物理アドレスが直接エンドポ
イントベース164に記載されているかどうかを判定す
ることができ、エンドポイントベースの解釈を正しく行
うことができる。なお、エンドポイントのサイズが1ペ
ージのサイズよりも大きい場合には、エンドポイント・
テーブルに対して、マッピングエントリを追加すること
により大きいサイズのエンドポイントを処理することが
可能になる。
【0171】送信側のオペレーションについて以下に説
明する。送信のためのエンドポイントはページサイズに
よって制限される。カーネルをコールすることなく、特
定のコネクションに対して送信を許可するために、各コ
ネクションはそれぞれユニークな仮想的にマッピングさ
れたコマンドエリアを有している。このコマンドエリア
は、エンドポイント用に使われている仮想ページから所
定のオフセットだけ離れた場所に設けられる。例えば、
このオフセットの値として、仮想アドレスを示すビット
のうち、高い位のビットを用いることができる。このコ
マンドエリアのサイズは、エンドポイントのサイズと同
じサイズを持つ。これらのコマンドエリアは、ネットワ
ークインタフェースに対して、キャッシュ化されずにマ
ッピングされる。前述したセンドレジスタ236は、こ
のコマンドエリアのベースより下にあるページにマッピ
ングされる。
明する。送信のためのエンドポイントはページサイズに
よって制限される。カーネルをコールすることなく、特
定のコネクションに対して送信を許可するために、各コ
ネクションはそれぞれユニークな仮想的にマッピングさ
れたコマンドエリアを有している。このコマンドエリア
は、エンドポイント用に使われている仮想ページから所
定のオフセットだけ離れた場所に設けられる。例えば、
このオフセットの値として、仮想アドレスを示すビット
のうち、高い位のビットを用いることができる。このコ
マンドエリアのサイズは、エンドポイントのサイズと同
じサイズを持つ。これらのコマンドエリアは、ネットワ
ークインタフェースに対して、キャッシュ化されずにマ
ッピングされる。前述したセンドレジスタ236は、こ
のコマンドエリアのベースより下にあるページにマッピ
ングされる。
【0172】コネクションCを用いてネットワークに対
して、送信側のエンドポイントのベースからあるオフセ
ットだけ離れた1ブロックのデータを送信をするために
は、ライトオペレーションを実行する。このライトオペ
レーションはコネクションCのためのコマンドエリアの
ベースから、同じオフセットだけ離れたロケーションに
対して実行される。この場合のライトオペレーションに
より書かれた値は無視される。物理アドレスの下位のビ
ットは、送信側のエンドポイントのデータブロックの物
理アドレスを示している。あるいは後述するが、下位の
ビットはオフセットを示す場合もある。そして、物理ア
ドレスの上位のビットはコネクション・ナンバーを意味
している。送信コントローラは、そのコネクションのセ
ンドレジスタに236から制御情報を抽出する。また、
セルを構成するためのデータブロックをリードする。あ
るいはデータはセンドレジスタ236の特別なブロック
から得るようにしてもかまわない。
して、送信側のエンドポイントのベースからあるオフセ
ットだけ離れた1ブロックのデータを送信をするために
は、ライトオペレーションを実行する。このライトオペ
レーションはコネクションCのためのコマンドエリアの
ベースから、同じオフセットだけ離れたロケーションに
対して実行される。この場合のライトオペレーションに
より書かれた値は無視される。物理アドレスの下位のビ
ットは、送信側のエンドポイントのデータブロックの物
理アドレスを示している。あるいは後述するが、下位の
ビットはオフセットを示す場合もある。そして、物理ア
ドレスの上位のビットはコネクション・ナンバーを意味
している。送信コントローラは、そのコネクションのセ
ンドレジスタに236から制御情報を抽出する。また、
セルを構成するためのデータブロックをリードする。あ
るいはデータはセンドレジスタ236の特別なブロック
から得るようにしてもかまわない。
【0173】ホストプロセッサによっては、データブロ
ックの物理アドレスとコネクション・ナンバーの両方を
示すために充分なビットの数を持たない場合がある。あ
るいはホストプロセッサによっては、センド・コントロ
ーラ234で用いるアドレスを示すには、充分なビット
数を持たない場合がある。このようなシステムにおいて
は、次のような二つの案が考えられる。第1の案はデー
タブロックの物理アドレスを、エンドポイントベースか
らのオフセットで置き換えてしまうものである。このよ
うに物理アドレスをエンドポイントのベースからのオフ
セットで置き換えてしまう場合は、センド・コントロー
ラ234により、エンドポイントのベースアドレスをア
クセス可能なように構成しなければならない。また、エ
ンドポイントの物理ページを連続的に配置させることが
望ましい。
ックの物理アドレスとコネクション・ナンバーの両方を
示すために充分なビットの数を持たない場合がある。あ
るいはホストプロセッサによっては、センド・コントロ
ーラ234で用いるアドレスを示すには、充分なビット
数を持たない場合がある。このようなシステムにおいて
は、次のような二つの案が考えられる。第1の案はデー
タブロックの物理アドレスを、エンドポイントベースか
らのオフセットで置き換えてしまうものである。このよ
うに物理アドレスをエンドポイントのベースからのオフ
セットで置き換えてしまう場合は、センド・コントロー
ラ234により、エンドポイントのベースアドレスをア
クセス可能なように構成しなければならない。また、エ
ンドポイントの物理ページを連続的に配置させることが
望ましい。
【0174】第2案はデータブロックのセルアドレスを
右側にシフトする案である。最も単純な方法は、5ビッ
トだけ右にシフトすることである。データブロックは3
2バイトを一つの単位として、アクセスすることができ
るので、物理アドレスの下位5ビットは使用されない。
これは計算機がバイト単位にアドレスを行う場合を前提
としている。このように5ビット右側にシフトすること
により、5ビットの余裕が生まれる。この自由になった
5ビットを用いることにより、コネクション・ナンバー
の表示、および送信コントローラ234の用いるアドレ
スの表示を行うことが可能になる。しかし、この右側へ
のシフトは、以下のような欠点がある。ページオフセッ
トは仮想メモリのマッピングによっても変更されないの
で、エンドポイントのコマンドエリアが格納された仮想
アドレスと、データブロックが格納された物理アドレス
は以下のような制限によってリンクされている。エンド
ポイントのコマンドエリアの仮想ページのオフセットを
示す上位の5ビットは、データブロックを記憶した物理
ページの下位5ビットに対応している。このような制限
は、以下のような結果をもたらす。第1に、エンドポイ
ントのコマンドエリアのサイズは、エンドポイントより
も小さくて32バイトの倍数である。このようにしてコ
マンドエリアは、一つのデータブロックのベースアドレ
スにマッピングされる。エンドポイントの中の連続した
32ページからなる各ブロックは、このようにして同様
なメモリ保護を持つことができる。第2に、エンドポイ
ントのサイズは32ページの倍数である。この欠点は、
センド・コントローラ234がエンドポイントベースと
そのサイズをアクセスすることができればさほど問題で
はない。第3に、エンドポイントは、32個のページメ
モリ領域の中に割当られた32ページの連続するかたま
りにマッピングされる。
右側にシフトする案である。最も単純な方法は、5ビッ
トだけ右にシフトすることである。データブロックは3
2バイトを一つの単位として、アクセスすることができ
るので、物理アドレスの下位5ビットは使用されない。
これは計算機がバイト単位にアドレスを行う場合を前提
としている。このように5ビット右側にシフトすること
により、5ビットの余裕が生まれる。この自由になった
5ビットを用いることにより、コネクション・ナンバー
の表示、および送信コントローラ234の用いるアドレ
スの表示を行うことが可能になる。しかし、この右側へ
のシフトは、以下のような欠点がある。ページオフセッ
トは仮想メモリのマッピングによっても変更されないの
で、エンドポイントのコマンドエリアが格納された仮想
アドレスと、データブロックが格納された物理アドレス
は以下のような制限によってリンクされている。エンド
ポイントのコマンドエリアの仮想ページのオフセットを
示す上位の5ビットは、データブロックを記憶した物理
ページの下位5ビットに対応している。このような制限
は、以下のような結果をもたらす。第1に、エンドポイ
ントのコマンドエリアのサイズは、エンドポイントより
も小さくて32バイトの倍数である。このようにしてコ
マンドエリアは、一つのデータブロックのベースアドレ
スにマッピングされる。エンドポイントの中の連続した
32ページからなる各ブロックは、このようにして同様
なメモリ保護を持つことができる。第2に、エンドポイ
ントのサイズは32ページの倍数である。この欠点は、
センド・コントローラ234がエンドポイントベースと
そのサイズをアクセスすることができればさほど問題で
はない。第3に、エンドポイントは、32個のページメ
モリ領域の中に割当られた32ページの連続するかたま
りにマッピングされる。
【0175】センドレジスタ内のモードレジスタはセル
を送信するにあたり、二つの機能をもっている。まず第
1に、コネクションに用意されたコマンドエリアに実際
に書かれた値からオペランドを得る。そして第2に、ス
テータスの値が0以外の値のときに、送信を試みようと
した場合に例外処理を発生させる。この実施例において
は、ゴーレジスタは使用されないので説明を省く。
を送信するにあたり、二つの機能をもっている。まず第
1に、コネクションに用意されたコマンドエリアに実際
に書かれた値からオペランドを得る。そして第2に、ス
テータスの値が0以外の値のときに、送信を試みようと
した場合に例外処理を発生させる。この実施例において
は、ゴーレジスタは使用されないので説明を省く。
【0176】コネクション・テーブル140に記憶され
るステート情報150は、オペレーションが完了するま
では更新されない。このオペレーションの完了は、最後
の例外処理が生ずる可能性があるTLBミスがなかった
ことにより判定される。例えばアドレスレジスタへの書
き込み処理は、TLBミスが発生しないことが確定した
時点で、完了したものと見なされ、ステート情報150
が更新される。セルはインプット用に設けられたFIF
Oに一時蓄えられる。コネクションから発生したセル
が、一旦FIFOにためられると、ポストプロセッサに
より必要とされるまでFIFOの中にためられる。FI
FOの中にためられたセルは、前述したように最後の例
外処理を通過し、処理がコミットされたとき、FIFO
から取り出される。
るステート情報150は、オペレーションが完了するま
では更新されない。このオペレーションの完了は、最後
の例外処理が生ずる可能性があるTLBミスがなかった
ことにより判定される。例えばアドレスレジスタへの書
き込み処理は、TLBミスが発生しないことが確定した
時点で、完了したものと見なされ、ステート情報150
が更新される。セルはインプット用に設けられたFIF
Oに一時蓄えられる。コネクションから発生したセル
が、一旦FIFOにためられると、ポストプロセッサに
より必要とされるまでFIFOの中にためられる。FI
FOの中にためられたセルは、前述したように最後の例
外処理を通過し、処理がコミットされたとき、FIFO
から取り出される。
【0177】次に第2番目の実施例について以下に説明
する。この第2の実施例においては、第1の実施例で述
べた3つの制限がはずされる。すなわちこの第2の実施
例においては、(1)エンドポイントはページ単位によ
って制約されない。(2)リモートリードはホストプロ
セッサの割り込み処理を必要としない。(3)アドレス
レジスタに関するオペレーションがより自由に行える。
上記(1)のエンドポイントがページサイズに左右され
ないようにするために、エンドポイント・テーブル16
0は、仮想アドレスを記憶する。また、TLBは仮想ア
ドレスから物理アドレスへのマッピングを行う。この改
良は新たな問題点を生ずる。即ち、エンドポイントのペ
ージとして、割当られたページ以外への参照を行ってし
まうページフォールトを発生させてしまうかもしれな
い。このページフォールトの発生により、今までとは違
う例外処理を設けなければならない。そしてこれらのペ
ージフォールトはホストプロセッサによって処理されな
ければならない。ホストプロセッサは仮想マッピングテ
ーブルを管理しており、この仮想マッピングテーブルに
より、ページフォールトの例外処理を行う。この実施例
においては、オペレーティングシステムが、メモリのマ
ッピングインフォメーションを保持する責任を持つ。こ
のマッピング情報は、ホストプロセッサのメモリの状態
と適合したものでなければならない。
する。この第2の実施例においては、第1の実施例で述
べた3つの制限がはずされる。すなわちこの第2の実施
例においては、(1)エンドポイントはページ単位によ
って制約されない。(2)リモートリードはホストプロ
セッサの割り込み処理を必要としない。(3)アドレス
レジスタに関するオペレーションがより自由に行える。
上記(1)のエンドポイントがページサイズに左右され
ないようにするために、エンドポイント・テーブル16
0は、仮想アドレスを記憶する。また、TLBは仮想ア
ドレスから物理アドレスへのマッピングを行う。この改
良は新たな問題点を生ずる。即ち、エンドポイントのペ
ージとして、割当られたページ以外への参照を行ってし
まうページフォールトを発生させてしまうかもしれな
い。このページフォールトの発生により、今までとは違
う例外処理を設けなければならない。そしてこれらのペ
ージフォールトはホストプロセッサによって処理されな
ければならない。ホストプロセッサは仮想マッピングテ
ーブルを管理しており、この仮想マッピングテーブルに
より、ページフォールトの例外処理を行う。この実施例
においては、オペレーティングシステムが、メモリのマ
ッピングインフォメーションを保持する責任を持つ。こ
のマッピング情報は、ホストプロセッサのメモリの状態
と適合したものでなければならない。
【0178】また、上記(2)のホストプロセッサの割
り込み処理を用いずに、リモートリードを処理するため
に、リードデータのためのアドレスマッピングが計算さ
れなければならない。この計算をするために、マッピン
グの機能を持っている受信側コンピュータが利用され
る。すなわち、リモートリードを要求したセルを送信す
る場合に、リードするデータのアドレスを計算するため
に、自分自身のマッピング機能を用いてアドレスを計算
するのである。従って、オペレーション・ロジック23
0は受信側の機能と送信側の機能の両方を実行しなけれ
ばならない。この実施例においては、オペレーション・
ロジック230は、リモートリードによる要求を送信す
るためばかりでなく、全ての送信に用いられる。結果と
して、この実施例においては、保護のために用いていた
仮想的にマッピングされたコマンドエリアを使用する必
要がなくなる。しかしながらこの実施例においては、仮
想的にマッピングされたセンドレジスタは必要である。
送信側のエンドポイントベースからオフセットの値だけ
離れた位置に存在するデータブロックを送信するため
に、オフセットの値がゴーレジスタの中に書き込まれ
る。このゴーレジスタへのオフセットの書き込みによ
り、そのオフセットで示されるデータが読み込まれてセ
ルのデータとして送信される。データブロックは、32
バイトを一つの単位として配置されており、オフセット
はその中の一つのデータブロックを読み込むために用い
られる。読み込まれたデータは、制御情報と一緒になり
セルを形成して出力される。制御情報はオペコードレジ
スタ、オペランドレジスタとインデックスレジスタの中
に格納されている。マルチプルセンドモードを指定する
ことも可能である。ステータスレジスタの中にセルの数
を設定することにより、指定されたオフセットから指定
された数のセルを連続して送信することができる。
り込み処理を用いずに、リモートリードを処理するため
に、リードデータのためのアドレスマッピングが計算さ
れなければならない。この計算をするために、マッピン
グの機能を持っている受信側コンピュータが利用され
る。すなわち、リモートリードを要求したセルを送信す
る場合に、リードするデータのアドレスを計算するため
に、自分自身のマッピング機能を用いてアドレスを計算
するのである。従って、オペレーション・ロジック23
0は受信側の機能と送信側の機能の両方を実行しなけれ
ばならない。この実施例においては、オペレーション・
ロジック230は、リモートリードによる要求を送信す
るためばかりでなく、全ての送信に用いられる。結果と
して、この実施例においては、保護のために用いていた
仮想的にマッピングされたコマンドエリアを使用する必
要がなくなる。しかしながらこの実施例においては、仮
想的にマッピングされたセンドレジスタは必要である。
送信側のエンドポイントベースからオフセットの値だけ
離れた位置に存在するデータブロックを送信するため
に、オフセットの値がゴーレジスタの中に書き込まれ
る。このゴーレジスタへのオフセットの書き込みによ
り、そのオフセットで示されるデータが読み込まれてセ
ルのデータとして送信される。データブロックは、32
バイトを一つの単位として配置されており、オフセット
はその中の一つのデータブロックを読み込むために用い
られる。読み込まれたデータは、制御情報と一緒になり
セルを形成して出力される。制御情報はオペコードレジ
スタ、オペランドレジスタとインデックスレジスタの中
に格納されている。マルチプルセンドモードを指定する
ことも可能である。ステータスレジスタの中にセルの数
を設定することにより、指定されたオフセットから指定
された数のセルを連続して送信することができる。
【0179】この実施例においては、上記(3)の場合
より自由なオペレーションとして、3つの基本的なオペ
レーションが各メッセージ毎に実行できる。その3つの
基本的なオペレーションとは、アドレスジェネレーショ
ン、レジスタオペレーション、条件設定である。オペコ
ードはこれら基本的なオペレーションの選択と順序づけ
を制御する。オペコードの例として、リード、マルチプ
ルリード、ライト、マルチプルライト、ソフトウェア例
外処理がある。ソフトウェア例外処理は、ホストプロセ
ッサに割り込みを生ずる処理である。この実施例に用い
るインストラクションは直接指定するオペランドの他
に、3つのレジスタをオペランドとして指定することが
できる。アドレスレジスタ170への複数のアクセスを
すべて可能にするため、レジスタのオペレーションはす
べて3倍のクロックスピードで行われる。このように3
倍のクロックスピードを用いて、レジスタオペレーショ
ンを行うことにより、例外処理が起こった場合の状態復
帰の方法は、より複雑になってしまうという欠点があ
る。
より自由なオペレーションとして、3つの基本的なオペ
レーションが各メッセージ毎に実行できる。その3つの
基本的なオペレーションとは、アドレスジェネレーショ
ン、レジスタオペレーション、条件設定である。オペコ
ードはこれら基本的なオペレーションの選択と順序づけ
を制御する。オペコードの例として、リード、マルチプ
ルリード、ライト、マルチプルライト、ソフトウェア例
外処理がある。ソフトウェア例外処理は、ホストプロセ
ッサに割り込みを生ずる処理である。この実施例に用い
るインストラクションは直接指定するオペランドの他
に、3つのレジスタをオペランドとして指定することが
できる。アドレスレジスタ170への複数のアクセスを
すべて可能にするため、レジスタのオペレーションはす
べて3倍のクロックスピードで行われる。このように3
倍のクロックスピードを用いて、レジスタオペレーショ
ンを行うことにより、例外処理が起こった場合の状態復
帰の方法は、より複雑になってしまうという欠点があ
る。
【0180】第1と第2の実施例によって提供された制
御機能およびセルの処理機能よりもさらに、柔軟性に富
んだ機能を持ちたい場合が存在する。例えば、ロッキン
グのためのオペレーションや、スワップと比較のオペレ
ーションが望まれるかもしれない。あるいはあるアプリ
ケーションにとっては、セルを処理するプロトコルをカ
スタマイズする場合があるかもしれない。柔軟性という
のは、自由にプログラムできるかどうかということにか
かってくる。そして柔軟性というのは、常に複雑性とコ
ストの間のトレードオフによって決まってくるものであ
る。前述した二つの実施例に対して、柔軟性を増すため
の一つの方法は、レシーブ・コントローラ228とセン
ド・コントローラ234を、書き込み可能にすることで
ある。また、柔軟性を増す第2の方法は、セルの処理を
プログラマブルな有限状態マシンにより行うことであ
る。前述したレシーブ・コントローラ228とセンド・
コントローラ234を書き込み可能とする方法として、
以下のようなことが考えられる。ATMセルのヘッダに
続く最初のワードを、インデックスとして用いる。この
インデックスは、レシーブ・コントローラとセンド・コ
ントローラの内部にあるコントロールメモリのインデッ
クスとして用いられる。このコントロールメモリは、書
き込み可能になっており、コントロールメモリにはセル
の残りのフィールドを解釈したりする情報が記憶されて
いる。また、このコントロールメモリには、制御信号が
すべて設定されている。このコントロールメモリは、ハ
ードウェアにより結線されたセルの処理機能備えてい
る。あるいはプログラマブルなセルの処理機能を備えて
いる。これらの機能は、コネクションに依存した処理を
行うものであり、いろいろな種類のセル処理機能を持た
せることができる。あるいは、柔軟性を持たせるという
観点から、マイクロプロセッサを用いるようにしてもか
まわない。
御機能およびセルの処理機能よりもさらに、柔軟性に富
んだ機能を持ちたい場合が存在する。例えば、ロッキン
グのためのオペレーションや、スワップと比較のオペレ
ーションが望まれるかもしれない。あるいはあるアプリ
ケーションにとっては、セルを処理するプロトコルをカ
スタマイズする場合があるかもしれない。柔軟性という
のは、自由にプログラムできるかどうかということにか
かってくる。そして柔軟性というのは、常に複雑性とコ
ストの間のトレードオフによって決まってくるものであ
る。前述した二つの実施例に対して、柔軟性を増すため
の一つの方法は、レシーブ・コントローラ228とセン
ド・コントローラ234を、書き込み可能にすることで
ある。また、柔軟性を増す第2の方法は、セルの処理を
プログラマブルな有限状態マシンにより行うことであ
る。前述したレシーブ・コントローラ228とセンド・
コントローラ234を書き込み可能とする方法として、
以下のようなことが考えられる。ATMセルのヘッダに
続く最初のワードを、インデックスとして用いる。この
インデックスは、レシーブ・コントローラとセンド・コ
ントローラの内部にあるコントロールメモリのインデッ
クスとして用いられる。このコントロールメモリは、書
き込み可能になっており、コントロールメモリにはセル
の残りのフィールドを解釈したりする情報が記憶されて
いる。また、このコントロールメモリには、制御信号が
すべて設定されている。このコントロールメモリは、ハ
ードウェアにより結線されたセルの処理機能備えてい
る。あるいはプログラマブルなセルの処理機能を備えて
いる。これらの機能は、コネクションに依存した処理を
行うものであり、いろいろな種類のセル処理機能を持た
せることができる。あるいは、柔軟性を持たせるという
観点から、マイクロプロセッサを用いるようにしてもか
まわない。
【0181】このような観点から第3の実施例において
は、一般的に用いられているマイクロプロセッサを用い
た例を説明する。このマイクロプロセッサはフロントエ
ンド全体の処理を司るためのものであり、例えば通信用
のコプロセッサであることが望ましい。マイクロプロセ
ッサを用いることにより、ハードウェアを簡単化するこ
とができる。なぜならば、マイクロプロセッサの内部の
コントロールロジックのすべてを用いることができると
ともに、そのマイクロプロセッサ自身のTLBを前述し
たTLB180として、そのまま用いることができるか
らである。エンドポイント番号は、仮想アドレスの上位
のビットを用いて表現するようにしてもかまわない。ま
た、マイクロプロセッサを用いることにより、完全にプ
ログラマブルな、セルの処理およびセルの制御をするこ
とができる。
は、一般的に用いられているマイクロプロセッサを用い
た例を説明する。このマイクロプロセッサはフロントエ
ンド全体の処理を司るためのものであり、例えば通信用
のコプロセッサであることが望ましい。マイクロプロセ
ッサを用いることにより、ハードウェアを簡単化するこ
とができる。なぜならば、マイクロプロセッサの内部の
コントロールロジックのすべてを用いることができると
ともに、そのマイクロプロセッサ自身のTLBを前述し
たTLB180として、そのまま用いることができるか
らである。エンドポイント番号は、仮想アドレスの上位
のビットを用いて表現するようにしてもかまわない。ま
た、マイクロプロセッサを用いることにより、完全にプ
ログラマブルな、セルの処理およびセルの制御をするこ
とができる。
【0182】この第3の実施例によれば、155Mbp
sのスピードを持つときでさえ、充分な柔軟性を提供し
てくれるが、すべての場合に対してマイクロプロセッサ
を使えるとは限らない。ハイレベルなオペレーションを
処理しなければならない場合には、マイクロプロセッサ
を使用するのは妥当性がある。例えば、マイクロプロセ
ッサを用いることは、ホストプロセッサをリードオペレ
ーションから開放するという点については、非常に効果
的である。このようなマイクロプロセッサを用いる場合
においても、ハードウェアで結線されたアドレスジェネ
レーションや、ハードウェアで結線されたマッピング回
路を用いることは、マイクロプロセッサの負荷を減少さ
せるために有効である。
sのスピードを持つときでさえ、充分な柔軟性を提供し
てくれるが、すべての場合に対してマイクロプロセッサ
を使えるとは限らない。ハイレベルなオペレーションを
処理しなければならない場合には、マイクロプロセッサ
を使用するのは妥当性がある。例えば、マイクロプロセ
ッサを用いることは、ホストプロセッサをリードオペレ
ーションから開放するという点については、非常に効果
的である。このようなマイクロプロセッサを用いる場合
においても、ハードウェアで結線されたアドレスジェネ
レーションや、ハードウェアで結線されたマッピング回
路を用いることは、マイクロプロセッサの負荷を減少さ
せるために有効である。
【0183】次に第4の実施例について説明する。第4
の実施例はプログラマブルなセルインタプリタを用い
る。即ち第4の実施例は、第1と第2に述べたハードウ
ェア制御による場合と、第3の実施例で述べたマイクロ
プロセッサによる制御の場合の混合された場合を示して
いる。複雑なデコーディングや複雑なオペレーション
は、ホストプロセッサかコプロセッサの何れかによって
処理される。この第4の実施例においては、各種の機能
はプログラマブルなゲートアレイによって、提供される
ことが望ましい。このプログラマブルなゲートアレイ
は、各種テーブルを格納したDRAMと共同して各種機
能を実行する。このプログラマブルゲートアレイにより
提供される機能の中に、コプロセッサによってフロント
エンドに提供されていた機能を含ませるようにしてもか
まわない。ゲートアレイがコプロセッサの行っていた機
能を含むことにより、コプロセッサの負荷を減少させる
ことができる。このようにコプロセッサの負荷を減少さ
せることは、622Mbpsあるいは1.2Gbpsの
ような、高速なデータレートを扱う場合に効率と柔軟性
の両方の点から非常に重要なことである。
の実施例はプログラマブルなセルインタプリタを用い
る。即ち第4の実施例は、第1と第2に述べたハードウ
ェア制御による場合と、第3の実施例で述べたマイクロ
プロセッサによる制御の場合の混合された場合を示して
いる。複雑なデコーディングや複雑なオペレーション
は、ホストプロセッサかコプロセッサの何れかによって
処理される。この第4の実施例においては、各種の機能
はプログラマブルなゲートアレイによって、提供される
ことが望ましい。このプログラマブルなゲートアレイ
は、各種テーブルを格納したDRAMと共同して各種機
能を実行する。このプログラマブルゲートアレイにより
提供される機能の中に、コプロセッサによってフロント
エンドに提供されていた機能を含ませるようにしてもか
まわない。ゲートアレイがコプロセッサの行っていた機
能を含むことにより、コプロセッサの負荷を減少させる
ことができる。このようにコプロセッサの負荷を減少さ
せることは、622Mbpsあるいは1.2Gbpsの
ような、高速なデータレートを扱う場合に効率と柔軟性
の両方の点から非常に重要なことである。
【0184】前述した実施例1から4において、可能で
ある限り、パイプライン処理を行うことにより、さら
に、高効率を達成することができる。しかしながら、1
55Mbpsのデータレートを用いる場合には、データ
が到着する間隔は約50nsecである。この50ns
ecのインターバルは、アドレスの設定と制御を完了さ
せるために充分な時間である。パイプライン処理を行う
場合に、メモリを階層的にアクセスする場合が生ずるか
もしれない。その場合には、メモリを階層的にアクセス
するアクセス時間を満足させるために、1ワードかそれ
に相当するデータをバッファに一時的に蓄える必要が生
ずるかもしれない。622Mbpsのデータレートを使
用する場合には、パイプライン処理は2,3の段階に分
けて、行われるだけでよい。
ある限り、パイプライン処理を行うことにより、さら
に、高効率を達成することができる。しかしながら、1
55Mbpsのデータレートを用いる場合には、データ
が到着する間隔は約50nsecである。この50ns
ecのインターバルは、アドレスの設定と制御を完了さ
せるために充分な時間である。パイプライン処理を行う
場合に、メモリを階層的にアクセスする場合が生ずるか
もしれない。その場合には、メモリを階層的にアクセス
するアクセス時間を満足させるために、1ワードかそれ
に相当するデータをバッファに一時的に蓄える必要が生
ずるかもしれない。622Mbpsのデータレートを使
用する場合には、パイプライン処理は2,3の段階に分
けて、行われるだけでよい。
【0185】前述したいくつかの実施例は、フロントエ
ンド210の実施例を説明したものである。このフロン
トエンドは、ネットワークインタフェースのバス214
(バックエンドともいう)に接続されている。バックエ
ンドとなるバス214はフロントエンドをホストプロセ
ッサのメモリに接続するためのものである。このバック
エンドとなるバス214の実施例として、以下に3つの
実施例をあげて説明する。
ンド210の実施例を説明したものである。このフロン
トエンドは、ネットワークインタフェースのバス214
(バックエンドともいう)に接続されている。バックエ
ンドとなるバス214はフロントエンドをホストプロセ
ッサのメモリに接続するためのものである。このバック
エンドとなるバス214の実施例として、以下に3つの
実施例をあげて説明する。
【0186】第1の実施例として、前述したフロントエ
ンドが、メインメモリのバスに直接接続される場合が考
えられる。キャッシュコントローラが準備されており、
キャッシュコントローラがキャッシュの整合性を保つた
めに、メインメモリのバスを監視する。第2の実施例と
して、汎用バスインタフェースを用いる場合が考えられ
る。第1の実施例に示したメインメモリのバスに直接フ
ロントエンドを接続する方式は、性能の点から魅力的で
あるが、それは一つのオプションである。この実施例で
は、PCIバスのような汎用バスを用いてフロントエン
ドを接続する。このような汎用バスインタフェースを用
いることにより、このシステムをより開かれたマーケッ
トに対して適合させることができる。PCIバスのよう
な、汎用バスを用いる欠点は遅延が生ずることである。
この遅延はバスの主導権を得るために発生する。汎用バ
スに接続された他のデバイスとの競合が発生し、バスの
主導権を得るために遅延が発生してしまう。このように
遅延が発生してしまうことにより、データをバッファリ
ングしなければならない場合が存在する。データのバッ
ファリングを行うことにより、さらに遅延を増加させる
可能性が生ずる。
ンドが、メインメモリのバスに直接接続される場合が考
えられる。キャッシュコントローラが準備されており、
キャッシュコントローラがキャッシュの整合性を保つた
めに、メインメモリのバスを監視する。第2の実施例と
して、汎用バスインタフェースを用いる場合が考えられ
る。第1の実施例に示したメインメモリのバスに直接フ
ロントエンドを接続する方式は、性能の点から魅力的で
あるが、それは一つのオプションである。この実施例で
は、PCIバスのような汎用バスを用いてフロントエン
ドを接続する。このような汎用バスインタフェースを用
いることにより、このシステムをより開かれたマーケッ
トに対して適合させることができる。PCIバスのよう
な、汎用バスを用いる欠点は遅延が生ずることである。
この遅延はバスの主導権を得るために発生する。汎用バ
スに接続された他のデバイスとの競合が発生し、バスの
主導権を得るために遅延が発生してしまう。このように
遅延が発生してしまうことにより、データをバッファリ
ングしなければならない場合が存在する。データのバッ
ファリングを行うことにより、さらに遅延を増加させる
可能性が生ずる。
【0187】バックエンドとなるバスの第3の実施例と
して、キャッシュメモリに直接接続するインタフェース
が考えられる。この方法によればプロセッサを修正変更
する必要がない。この実施例においては、ネットワーク
がプロセッサの外部に設けられたキャッシュに対して直
接接続される。ネットワークをキャッシュに直接接続す
ることにより、メッセージデータを複写するという作業
をなくすことができる。ネットワークトラフィックによ
り、このキャッシュの機能を必要以上に弱めることがな
いようにするために、そして、結果としてそのキャッシ
ュに接続されたプロセッサの性能を減少させることがな
いようにするために、図7に示すように、別個のメッセ
ージキャッシュ252を用意してこのメッセージキャッ
シュをネットワークに接続するようにしてもかまわな
い。
して、キャッシュメモリに直接接続するインタフェース
が考えられる。この方法によればプロセッサを修正変更
する必要がない。この実施例においては、ネットワーク
がプロセッサの外部に設けられたキャッシュに対して直
接接続される。ネットワークをキャッシュに直接接続す
ることにより、メッセージデータを複写するという作業
をなくすことができる。ネットワークトラフィックによ
り、このキャッシュの機能を必要以上に弱めることがな
いようにするために、そして、結果としてそのキャッシ
ュに接続されたプロセッサの性能を減少させることがな
いようにするために、図7に示すように、別個のメッセ
ージキャッシュ252を用意してこのメッセージキャッ
シュをネットワークに接続するようにしてもかまわな
い。
【0188】図7においては、メッセージキャッシュ2
52がバス256を介して、マイクロプロセッサ250
に接続されている。メッセージキャッシュ252は、バ
ス258を介してデータキャッシュ254とメインメモ
リ(あるいはホストメモリ、図示せず)に接続されてい
る。マッピング・ユニット260はバス262を介し
て、メッセージキャッシュ252をネットワークに接続
する。
52がバス256を介して、マイクロプロセッサ250
に接続されている。メッセージキャッシュ252は、バ
ス258を介してデータキャッシュ254とメインメモ
リ(あるいはホストメモリ、図示せず)に接続されてい
る。マッピング・ユニット260はバス262を介し
て、メッセージキャッシュ252をネットワークに接続
する。
【0189】このメッセージキャッシュ252は、階層
化されたメモリの中の一部として構成されている。すな
わち、メッセージキャッシュ252はデータキャッシュ
254と同じ層に存在しており、メインメモリという別
な層とマイクロプロセッサ250の間に存在している。
メッセージキャッシュ252がデータキャッシュ254
と同じ層に存在しているのは、バス256とバス258
の間に両者とも存在していることにより明かである。従
って、メッセージキャッシュに一旦データが書き込まれ
た場合には、メッセージキャッシュからそのデータを他
の層にあるメモリにコピーする必要はない。すなわちメ
ッセージバッファにデータが書き込まれることにより、
プロセスはそのデータをアクセスすることができる。メ
ッセージキャッシュ252へのインタフェースは、予め
準備されているデータキャッシュのインタフェースをそ
のまま流用することにより達成するこができる。従っ
て、開発の費用を伴うこともなく、特別な目的を持った
修正や変更も行う必要もなく、また、プロセッサをカス
タマイズすることもない。キャッシュのブロックサイズ
を例えば32バイトにしている場合、メッセージのサイ
ズをそのキャッシュのブロックサイズと等しくするとい
う制限を付け加えることにより、キャッシュの各ブロッ
クがブロック毎に自動的に更新されるので、効率が良い
キャッシュアクセスができる。すなわち、メッセージの
サイズとキャッシュのブロックサイズを等しくすること
により、キャッシュのブロックの一部分を更新するとい
う複雑でかつ遅い処理を除去することができる。
化されたメモリの中の一部として構成されている。すな
わち、メッセージキャッシュ252はデータキャッシュ
254と同じ層に存在しており、メインメモリという別
な層とマイクロプロセッサ250の間に存在している。
メッセージキャッシュ252がデータキャッシュ254
と同じ層に存在しているのは、バス256とバス258
の間に両者とも存在していることにより明かである。従
って、メッセージキャッシュに一旦データが書き込まれ
た場合には、メッセージキャッシュからそのデータを他
の層にあるメモリにコピーする必要はない。すなわちメ
ッセージバッファにデータが書き込まれることにより、
プロセスはそのデータをアクセスすることができる。メ
ッセージキャッシュ252へのインタフェースは、予め
準備されているデータキャッシュのインタフェースをそ
のまま流用することにより達成するこができる。従っ
て、開発の費用を伴うこともなく、特別な目的を持った
修正や変更も行う必要もなく、また、プロセッサをカス
タマイズすることもない。キャッシュのブロックサイズ
を例えば32バイトにしている場合、メッセージのサイ
ズをそのキャッシュのブロックサイズと等しくするとい
う制限を付け加えることにより、キャッシュの各ブロッ
クがブロック毎に自動的に更新されるので、効率が良い
キャッシュアクセスができる。すなわち、メッセージの
サイズとキャッシュのブロックサイズを等しくすること
により、キャッシュのブロックの一部分を更新するとい
う複雑でかつ遅い処理を除去することができる。
【0190】図7に示すキャッシュを直接アクセスする
インタフェースを用いる場合の問題は、メッセージキャ
ッシュ252とデータキャッシュ254の間の整合性を
とる場合に、如何にしてオーバヘッドを少なくするかと
いう点である。この問題を解決するためにメッセージキ
ャッシュ252への書き込み処理は、ネットワークから
だけのみ行われるようにする。このようにネットワーク
からのみの書き込みを許すことにより、キャッシュ25
2と254間の整合性の問題が減少する。メッセージキ
ャッシュ252への書き込みがあるたびに、データキャ
ッシュ254にある対応するブロックをチェックすると
ともに、そのブロックを無効にする。このチェックはメ
ッセージキャッシュ252とデータキャッシュ254
に、それぞれ備えられているマッチングタグを用いるこ
とにより行われる。データキャッシュ254をチェック
することにより生ずる悪影響は、データキャッシュ25
4のキャッシュタグのシャドウコピーをチェックするこ
とにより、最小に抑えられる。前述したキャッシュを直
接するアクセスするインタフェースの詳細に関しては、
1993年11月16日付けでアメリカ特許庁に出願さ
れた「ロー・レーティンシー・ネットワークインタフェ
ース」(ランディ・オズボーン)に記述されている。
インタフェースを用いる場合の問題は、メッセージキャ
ッシュ252とデータキャッシュ254の間の整合性を
とる場合に、如何にしてオーバヘッドを少なくするかと
いう点である。この問題を解決するためにメッセージキ
ャッシュ252への書き込み処理は、ネットワークから
だけのみ行われるようにする。このようにネットワーク
からのみの書き込みを許すことにより、キャッシュ25
2と254間の整合性の問題が減少する。メッセージキ
ャッシュ252への書き込みがあるたびに、データキャ
ッシュ254にある対応するブロックをチェックすると
ともに、そのブロックを無効にする。このチェックはメ
ッセージキャッシュ252とデータキャッシュ254
に、それぞれ備えられているマッチングタグを用いるこ
とにより行われる。データキャッシュ254をチェック
することにより生ずる悪影響は、データキャッシュ25
4のキャッシュタグのシャドウコピーをチェックするこ
とにより、最小に抑えられる。前述したキャッシュを直
接するアクセスするインタフェースの詳細に関しては、
1993年11月16日付けでアメリカ特許庁に出願さ
れた「ロー・レーティンシー・ネットワークインタフェ
ース」(ランディ・オズボーン)に記述されている。
【0191】前述したネットワークインタフェースの各
種実施例に対して、いろいろな修正や変形を加えること
が可能である。例えば、前述した例外処理やフロー・コ
ントロールをフロントエンドで実行させるようにしても
かまわない。例外処理は、エラートラップ、保護違反、
予定されていないオペレーション、TLBミスおよびペ
ージフォールトにより発生される。この例外処理は、シ
ステムのセルの処理を遅らせる。そしてセルのフロー・
コントロールに悪影響を及ぼす。また、セルの処理はホ
ストプロセッサがシステムのメモリにアクセスする場合
に、アトミック性を確実なものとするために中断される
場合がある。例外処理の中でも特に、エラートラップが
生じた場合には、この問題は、異常があったセルを即座
に廃棄してしまうことにより、完全に排除することがで
きる。あるいは異常があったセルを、例外処理のための
待ち行列に入れてしまうことにより問題を解決すること
ができる。例外処理の待ち行列に入れられたセルは、任
意の時刻にオペレーティングシステムにより検査され
る。このように異常があったセルを廃棄してしまうとい
う方法は、エラートラップ以外の他の例外処理に対して
は、用いることがない。なぜならば異常があったセルが
廃棄されたとしても、リトライのためのメッセージが送
信側コンピュータから送られてくるからである。このよ
うにリトライのためのメッセージが送られてくる場合に
は、次の処理を行う前に障害の発生した状況を修復して
おかなければならない。その修復作業の間、到着したセ
ルは廃棄されるかバッファに一時蓄えられる。あるい
は、セルの到着を制限する。
種実施例に対して、いろいろな修正や変形を加えること
が可能である。例えば、前述した例外処理やフロー・コ
ントロールをフロントエンドで実行させるようにしても
かまわない。例外処理は、エラートラップ、保護違反、
予定されていないオペレーション、TLBミスおよびペ
ージフォールトにより発生される。この例外処理は、シ
ステムのセルの処理を遅らせる。そしてセルのフロー・
コントロールに悪影響を及ぼす。また、セルの処理はホ
ストプロセッサがシステムのメモリにアクセスする場合
に、アトミック性を確実なものとするために中断される
場合がある。例外処理の中でも特に、エラートラップが
生じた場合には、この問題は、異常があったセルを即座
に廃棄してしまうことにより、完全に排除することがで
きる。あるいは異常があったセルを、例外処理のための
待ち行列に入れてしまうことにより問題を解決すること
ができる。例外処理の待ち行列に入れられたセルは、任
意の時刻にオペレーティングシステムにより検査され
る。このように異常があったセルを廃棄してしまうとい
う方法は、エラートラップ以外の他の例外処理に対して
は、用いることがない。なぜならば異常があったセルが
廃棄されたとしても、リトライのためのメッセージが送
信側コンピュータから送られてくるからである。このよ
うにリトライのためのメッセージが送られてくる場合に
は、次の処理を行う前に障害の発生した状況を修復して
おかなければならない。その修復作業の間、到着したセ
ルは廃棄されるかバッファに一時蓄えられる。あるい
は、セルの到着を制限する。
【0192】前述した場合は、障害が発生したコネクシ
ョンに属しているセルに当てはまるものである。他の障
害が発生していないコネクションに属するセルは、障害
の状況が保存されてから、直ちに処理が続行される。障
害が発生したコネクションに属するセルは処理されな
い。例え、その障害によってセルが影響を受けないよう
な場合であっても、そのセルは処理されない。例えば、
新たに到着するセル自身がTLBミスやページフォール
トを発生させないような場合であっても、それらの後続
の新たなセルは処理されない。なぜならば、アプリケー
ションによってはATMセルの到着順序を保証しなけれ
ばならない場合があるからである。この到着順序の保証
は、チャネル毎に行われるものである。このチャネル
は、このシステムにおいてコネクションの中に確立され
るものである。したがって、障害が発生したエンドポイ
ントと、同じエンドポイントに接続されている他のコネ
クションに属するセルの処理を続行することには何ら問
題はない。但し、これらのセルが新たな障害を生ずる可
能性を含んでいる。
ョンに属しているセルに当てはまるものである。他の障
害が発生していないコネクションに属するセルは、障害
の状況が保存されてから、直ちに処理が続行される。障
害が発生したコネクションに属するセルは処理されな
い。例え、その障害によってセルが影響を受けないよう
な場合であっても、そのセルは処理されない。例えば、
新たに到着するセル自身がTLBミスやページフォール
トを発生させないような場合であっても、それらの後続
の新たなセルは処理されない。なぜならば、アプリケー
ションによってはATMセルの到着順序を保証しなけれ
ばならない場合があるからである。この到着順序の保証
は、チャネル毎に行われるものである。このチャネル
は、このシステムにおいてコネクションの中に確立され
るものである。したがって、障害が発生したエンドポイ
ントと、同じエンドポイントに接続されている他のコネ
クションに属するセルの処理を続行することには何ら問
題はない。但し、これらのセルが新たな障害を生ずる可
能性を含んでいる。
【0193】以下に例外処理に対処する場合の、対策に
ついて説明する。まず第1に問題のあったセルを出来る
だけ早く、フロントエンドから取り去る必要がある。エ
ラートラップを生ずるセルは、廃棄するか待ち行列に入
れてしまうことができる。その他の問題となったセル
は、インプット用のFIFOに一時的に格納する。問題
が生じたコネクションは、障害が発生したコネクション
であるというマークがなされる。次にその問題が発生し
たコネクションに対して、セルを送信している送信側コ
ンピュータに対して、セル送信の抑制を行うフロー・コ
ントロールが起動される。フロー・コントロールが立ち
上がるまでの間に、その障害があったコネクションに到
着したセルは、バッファの中に一時蓄えられる。一方障
害がなかった他のコネクションは通常通りのセルの処理
を続行する。エラートラップが発生した場合には、前述
したセルの廃棄という処理のみが行われる。ホストプロ
セッサによるアクセス処理のために、システムが一時中
断されるというような他の例外処理の場合には、すべて
のコネクションに対して、データの送信抑圧やバッファ
リングが行われる。データの送信抑圧処理とバッファリ
ング処理は、セルのフロー・コントロールを行うという
点からみれば、どちらも等価的な処理である。
ついて説明する。まず第1に問題のあったセルを出来る
だけ早く、フロントエンドから取り去る必要がある。エ
ラートラップを生ずるセルは、廃棄するか待ち行列に入
れてしまうことができる。その他の問題となったセル
は、インプット用のFIFOに一時的に格納する。問題
が生じたコネクションは、障害が発生したコネクション
であるというマークがなされる。次にその問題が発生し
たコネクションに対して、セルを送信している送信側コ
ンピュータに対して、セル送信の抑制を行うフロー・コ
ントロールが起動される。フロー・コントロールが立ち
上がるまでの間に、その障害があったコネクションに到
着したセルは、バッファの中に一時蓄えられる。一方障
害がなかった他のコネクションは通常通りのセルの処理
を続行する。エラートラップが発生した場合には、前述
したセルの廃棄という処理のみが行われる。ホストプロ
セッサによるアクセス処理のために、システムが一時中
断されるというような他の例外処理の場合には、すべて
のコネクションに対して、データの送信抑圧やバッファ
リングが行われる。データの送信抑圧処理とバッファリ
ング処理は、セルのフロー・コントロールを行うという
点からみれば、どちらも等価的な処理である。
【0194】TLBのサイズが非常に大きなものとなる
場合には、ハイブリッドアドレスマッピングを用いるよ
うにしてもかまわない。このハイブリッドアドレスマッ
ピングというのは、エンドポイント・テーブル160と
TLB180の両方を用いてマッピングを行う場合をい
う。エンドポイント・テーブル160の各エンドポイン
トベースのエントリ162には、一つあるいは二つのマ
ッピングを記憶するようにさせ、TLBに残りのマッピ
ングを記憶させるようにする。このハイブリッドアドレ
スマッピングの考え方は、フロントエンドの第1の実施
例で述べたものをさらに一般的に拡張したものである。
フロントエンドの第1の実施例においては、エンドポイ
ントのページサイズが、一つのページサイズ以下である
場合に、エンドポイント・テーブル160のエンドポイ
ントベース164に対して、直接エンドポイントのペー
ジを得るためのマッピングを記憶させている場合を説明
した。このハイブリッドアドレスマッピングは、そのよ
うな考え方とTLBを用いる考え方との両方を合成した
考え方である。エンドテーブル160のエンドポイント
ベース164のマッピング処理は、アプリケーションに
よって行われてもよい。アプリケーションにより、マッ
ピングを行う場合は、アプリケーションによってまもな
く使われる可能性が高いマッピングを常に記憶すること
ができる。
場合には、ハイブリッドアドレスマッピングを用いるよ
うにしてもかまわない。このハイブリッドアドレスマッ
ピングというのは、エンドポイント・テーブル160と
TLB180の両方を用いてマッピングを行う場合をい
う。エンドポイント・テーブル160の各エンドポイン
トベースのエントリ162には、一つあるいは二つのマ
ッピングを記憶するようにさせ、TLBに残りのマッピ
ングを記憶させるようにする。このハイブリッドアドレ
スマッピングの考え方は、フロントエンドの第1の実施
例で述べたものをさらに一般的に拡張したものである。
フロントエンドの第1の実施例においては、エンドポイ
ントのページサイズが、一つのページサイズ以下である
場合に、エンドポイント・テーブル160のエンドポイ
ントベース164に対して、直接エンドポイントのペー
ジを得るためのマッピングを記憶させている場合を説明
した。このハイブリッドアドレスマッピングは、そのよ
うな考え方とTLBを用いる考え方との両方を合成した
考え方である。エンドテーブル160のエンドポイント
ベース164のマッピング処理は、アプリケーションに
よって行われてもよい。アプリケーションにより、マッ
ピングを行う場合は、アプリケーションによってまもな
く使われる可能性が高いマッピングを常に記憶すること
ができる。
【0195】コネクション・テーブル140とエンドポ
イント・テーブル160のローカル化を行うようにして
もかまわない。多くのコネクションがある場合、および
多くのエンドポイントが存在する場合、コネクション・
テーブル140とエンドポイント・テーブル160のサ
イズが大きくなる。テーブルのサイズを減少させるため
の一つの方策は、テーブルからエントリをページアウト
することによって、ローカリティを達成することであ
る。このようにローカリティが達成されたテーブルをア
クセスして、ページフォールトが生じた場合には、ネッ
トワークインタフェースは、ページフォールトが生じた
セルを、処理するパイプラインから除去し、バッファの
中に一時格納する。そしてページフォールトが生じたコ
ネクションに対して、到着するセルのフロー・コントロ
ールを行う。ホストプロセッサはテーブルのページング
を行い状態を復元する。そしてページフォールトが起こ
ったコネクションのセルの処理を再開させる。
イント・テーブル160のローカル化を行うようにして
もかまわない。多くのコネクションがある場合、および
多くのエンドポイントが存在する場合、コネクション・
テーブル140とエンドポイント・テーブル160のサ
イズが大きくなる。テーブルのサイズを減少させるため
の一つの方策は、テーブルからエントリをページアウト
することによって、ローカリティを達成することであ
る。このようにローカリティが達成されたテーブルをア
クセスして、ページフォールトが生じた場合には、ネッ
トワークインタフェースは、ページフォールトが生じた
セルを、処理するパイプラインから除去し、バッファの
中に一時格納する。そしてページフォールトが生じたコ
ネクションに対して、到着するセルのフロー・コントロ
ールを行う。ホストプロセッサはテーブルのページング
を行い状態を復元する。そしてページフォールトが起こ
ったコネクションのセルの処理を再開させる。
【0196】また、ネットワークに対する適切なアクセ
スを提供するため、及びネットワークのデッドロックを
防ぐためのいくつかの構成が追加されてもかまわない。
このような構造を追加することにより、複数のプロセス
が互いに妨害し合うことを防ぐことができる。複数のプ
ロセスが実行されている場合には、ネットワークがブロ
ッキングされたり、あるいはネットワークに渋滞が生ず
る。最悪な場合にはデッドロックを生ずる場合がある。
新たに追加する構成は、これらの障害を防止するための
ものである。また、ネットワークへのアクセスを公正に
保つために、アクセスを許可する許可制御が行われるよ
うにしてもかまわない。この許可制御は、他のコネクシ
ョンが動作を保留中である場合に、あるコネクションが
ネットワークへデータを送ることができる期間を制限す
るものである。すなわち、この許可制御はフロー・コン
トロールが成されていないトラフィックが生ずることを
防止するものである。性能の観点から、オペレーティン
グシステムのトラフィックにプライオリティを与えるよ
うにしてもかまわない。デッドロックを防止するために
は、以上のような幾つかのステップを必要とする。まず
第1に、各コネクションは独立したフロー・コントロー
ルを有していなければならない。通常の標準化されたA
TMネットワークや標準化されたインタフェースを用い
る場合には、VCI/VPI毎に独立したフロー・コン
トロールを行うことができる。第2に、全てのセルの処
理を中断させてしまう例外処理が発生した場合には、そ
の例外処理の期間を限らなければならない。第3に、ネ
ットワークから返答を要求するセルを除去しなければな
らない。たとえ応答用コネクションがフロー・コントロ
ールされている場合でも、返答を要求するセルを出力し
ないようにする。この返答を要求するセルの除去は、返
答を伝えるためのコネクションを設け、この返答のため
のコネクションごとにバッファを設けることにより可能
になる。例えば、返答のための各コネクションに対し
て、フロー・コントロールがなされたバッファを準備す
るとともに、各セルに別個のVCI/VPIを割り当て
ることによって行われる。また、送信のための許可制御
は、新たな送信に対してよりも、返答の送信のトラフィ
ックに対してより優先度を高くすべきである。
スを提供するため、及びネットワークのデッドロックを
防ぐためのいくつかの構成が追加されてもかまわない。
このような構造を追加することにより、複数のプロセス
が互いに妨害し合うことを防ぐことができる。複数のプ
ロセスが実行されている場合には、ネットワークがブロ
ッキングされたり、あるいはネットワークに渋滞が生ず
る。最悪な場合にはデッドロックを生ずる場合がある。
新たに追加する構成は、これらの障害を防止するための
ものである。また、ネットワークへのアクセスを公正に
保つために、アクセスを許可する許可制御が行われるよ
うにしてもかまわない。この許可制御は、他のコネクシ
ョンが動作を保留中である場合に、あるコネクションが
ネットワークへデータを送ることができる期間を制限す
るものである。すなわち、この許可制御はフロー・コン
トロールが成されていないトラフィックが生ずることを
防止するものである。性能の観点から、オペレーティン
グシステムのトラフィックにプライオリティを与えるよ
うにしてもかまわない。デッドロックを防止するために
は、以上のような幾つかのステップを必要とする。まず
第1に、各コネクションは独立したフロー・コントロー
ルを有していなければならない。通常の標準化されたA
TMネットワークや標準化されたインタフェースを用い
る場合には、VCI/VPI毎に独立したフロー・コン
トロールを行うことができる。第2に、全てのセルの処
理を中断させてしまう例外処理が発生した場合には、そ
の例外処理の期間を限らなければならない。第3に、ネ
ットワークから返答を要求するセルを除去しなければな
らない。たとえ応答用コネクションがフロー・コントロ
ールされている場合でも、返答を要求するセルを出力し
ないようにする。この返答を要求するセルの除去は、返
答を伝えるためのコネクションを設け、この返答のため
のコネクションごとにバッファを設けることにより可能
になる。例えば、返答のための各コネクションに対し
て、フロー・コントロールがなされたバッファを準備す
るとともに、各セルに別個のVCI/VPIを割り当て
ることによって行われる。また、送信のための許可制御
は、新たな送信に対してよりも、返答の送信のトラフィ
ックに対してより優先度を高くすべきである。
【0197】オペレーティングシステム自身が、常に処
理を続行できるようにするために、オペレーティングシ
ステム自身がそれ自身のためのコネクションを持つべき
である。オペレーティングシステムが使用するページへ
のアクセスは、どのようなページであってもページ単位
に行われるべきである。オペレーティングシステムが使
用するページには、コネクション・テーブルやエンドポ
イント・テーブルやアドレスレジスタが記憶される。こ
れらの情報は、ページをまたがって記憶されないように
する。ページをまたがって記憶された場合には、ページ
をまたがったアクセス処理による生ずる遅延を生じてし
まうからである。
理を続行できるようにするために、オペレーティングシ
ステム自身がそれ自身のためのコネクションを持つべき
である。オペレーティングシステムが使用するページへ
のアクセスは、どのようなページであってもページ単位
に行われるべきである。オペレーティングシステムが使
用するページには、コネクション・テーブルやエンドポ
イント・テーブルやアドレスレジスタが記憶される。こ
れらの情報は、ページをまたがって記憶されないように
する。ページをまたがって記憶された場合には、ページ
をまたがったアクセス処理による生ずる遅延を生じてし
まうからである。
【0198】グローバルアドレスレジスタというもの
を、フロントエンドで使用するようにしてもかまわな
い。前述した各種の実施例においては、アドレスレジス
タ170は、各コネクション毎に設けられたプライベー
トなものであった。このようにアドレスレジスタを各コ
ネクション毎に設ける場合は、複数のコネクションが同
一のエンドポイントに対して接続され、かつ、複数のコ
ネクションが共通の待ち行列を使用する場合には不便で
ある。このような不便さを解決するための方法として、
そのエンドポイントに対して共通に用いられるグローバ
ルなアドレスレジスタを設ける。このグローバルなアド
レスレジスタは、コネクション毎に割り当てられるもの
ではない。エンドポイント・テーブル160は、グロー
バルアドレスレジスタに対して、エンドポイントベース
と領域を出力する。グローバルアドレスレジスタは、ロ
ーカルなアドレスレジスタと同じメモリの中に生成する
ことができる。
を、フロントエンドで使用するようにしてもかまわな
い。前述した各種の実施例においては、アドレスレジス
タ170は、各コネクション毎に設けられたプライベー
トなものであった。このようにアドレスレジスタを各コ
ネクション毎に設ける場合は、複数のコネクションが同
一のエンドポイントに対して接続され、かつ、複数のコ
ネクションが共通の待ち行列を使用する場合には不便で
ある。このような不便さを解決するための方法として、
そのエンドポイントに対して共通に用いられるグローバ
ルなアドレスレジスタを設ける。このグローバルなアド
レスレジスタは、コネクション毎に割り当てられるもの
ではない。エンドポイント・テーブル160は、グロー
バルアドレスレジスタに対して、エンドポイントベース
と領域を出力する。グローバルアドレスレジスタは、ロ
ーカルなアドレスレジスタと同じメモリの中に生成する
ことができる。
【0199】バッファのフラグメンテーションをフロン
トエンドの中で行うようにしてもかまわない。マルチプ
ルセルメッセージの場合には、ATMのAAL5による
48バイトのペイロードを2のべきじょうのサイズメモ
リにマッチングさせること、および48バイトのペイロ
ードをキャッシュブロックのサイズにマッチングさせる
ことが、バッファのフラグメンテーションの問題を生ず
る。もし、32バイトを1ブロックとする場合には、1
6バイトのフラグメンテーションを用いることができ
る。送信側コンピュータと受信側コンピュータの両方
が、データを32バイトのブロックに区切ったり合成す
るために、フラグメンテーションバッファを用いること
ができる。このサイズは、メモリとキャッシュブロック
のサイズによってどのようなものでもかまわない。しか
しながら、標準のATMインタフェースに、すでに存在
しているセグメンテーションとリアッセンブリをサポー
トするというのが、最も効果的な方法であると考えられ
る。
トエンドの中で行うようにしてもかまわない。マルチプ
ルセルメッセージの場合には、ATMのAAL5による
48バイトのペイロードを2のべきじょうのサイズメモ
リにマッチングさせること、および48バイトのペイロ
ードをキャッシュブロックのサイズにマッチングさせる
ことが、バッファのフラグメンテーションの問題を生ず
る。もし、32バイトを1ブロックとする場合には、1
6バイトのフラグメンテーションを用いることができ
る。送信側コンピュータと受信側コンピュータの両方
が、データを32バイトのブロックに区切ったり合成す
るために、フラグメンテーションバッファを用いること
ができる。このサイズは、メモリとキャッシュブロック
のサイズによってどのようなものでもかまわない。しか
しながら、標準のATMインタフェースに、すでに存在
しているセグメンテーションとリアッセンブリをサポー
トするというのが、最も効果的な方法であると考えられ
る。
【0200】送信側コンピュータと受信側コンピュータ
のアドレスは、メモリのブロックとキャッシュのブロッ
クに適合しない場合であってもかまわない。送信側コン
ピュータと受信側コンピュータが同じアライメントを持
っていると仮定すれば、送信側コンピュータから、その
アライメントされたブロックが送信され、受信側コンピ
ュータで必要のない部分はマスクされ除去される。この
ように、必要とされないデータの除去は、セルの有効利
用には結びつかない。しかし、アライメントのミスによ
るデータの伝送はまれである。他に考えられる性能上の
欠陥としては、いくつかのアーキテクチャーのもとにお
いては、サブブロックへのアドレッシングを禁止してい
るものがあるということである。その場合には、ブロッ
ク全体を読み込み、マスク処理を行って選択的にそのサ
ブブロックの書き込みを行わなければならない。このよ
うなマスクオペレーション、あるいはスキャターオペレ
ーションは、受信側コンピュータによって行われる。あ
るいは、送信側コンピュータがマスキングを行うように
してもかまわない。送信側コンピュータがマスキング処
理を行う場合には、ギャザー機能がない限り、その処理
はオプションとなる。ネットワークに対して、あるフィ
ールドのデータが出力されることを防ぐようにすること
は、セキュリティの面から非常に有効である。しかし、
そのような処理は、効率の点からは何もメリットがな
い。
のアドレスは、メモリのブロックとキャッシュのブロッ
クに適合しない場合であってもかまわない。送信側コン
ピュータと受信側コンピュータが同じアライメントを持
っていると仮定すれば、送信側コンピュータから、その
アライメントされたブロックが送信され、受信側コンピ
ュータで必要のない部分はマスクされ除去される。この
ように、必要とされないデータの除去は、セルの有効利
用には結びつかない。しかし、アライメントのミスによ
るデータの伝送はまれである。他に考えられる性能上の
欠陥としては、いくつかのアーキテクチャーのもとにお
いては、サブブロックへのアドレッシングを禁止してい
るものがあるということである。その場合には、ブロッ
ク全体を読み込み、マスク処理を行って選択的にそのサ
ブブロックの書き込みを行わなければならない。このよ
うなマスクオペレーション、あるいはスキャターオペレ
ーションは、受信側コンピュータによって行われる。あ
るいは、送信側コンピュータがマスキングを行うように
してもかまわない。送信側コンピュータがマスキング処
理を行う場合には、ギャザー機能がない限り、その処理
はオプションとなる。ネットワークに対して、あるフィ
ールドのデータが出力されることを防ぐようにすること
は、セキュリティの面から非常に有効である。しかし、
そのような処理は、効率の点からは何もメリットがな
い。
【0201】ある場合においては、送信するアドレス
は、ブロックのバウンダリおよび受信側コンピュータの
アドレスという点からみて、いずれも適合しないもので
あるかもしれない。そのような場合には、マスキングと
シフティングを行うことによりその問題に対して、対処
することができる。この問題を解決するためにアライメ
ントシフターを準備しておけばよい。
は、ブロックのバウンダリおよび受信側コンピュータの
アドレスという点からみて、いずれも適合しないもので
あるかもしれない。そのような場合には、マスキングと
シフティングを行うことによりその問題に対して、対処
することができる。この問題を解決するためにアライメ
ントシフターを準備しておけばよい。
【0202】また、フロントエンドにおいて、プリフェ
ッチキューを使用するようにしてもかまわない。データ
を前もってフェッチしておくことは、遅延を防止するた
めに有効である。先に述べたシステムにおいては、すで
にプリフェッチキューをサポートしている。完全なプリ
フェッチを提供するために、プリフェッチを使用するこ
とができるプロセッサを使用すべきである。例えばDE
Cアルファのようなプロセッサを用いる。また、プリフ
ェッチを行うために、プロセッサからのプリフェッチ要
求をデコードするとともに、その要求に基づいて実際の
フェッチを行うハードウェアが準備されなければならな
い。このようなプリフェッチのハードウェアを汎用バス
を使用したインタフェースに搭載することは難しい。し
かし、それはCray Tera 3Dによりなされた
ように、それは不可能ではない。そのような場合には、
ネットワークインタフェースがデータバスに直接接続さ
れるというデザインが成されるであろう。フェッチの実
行を起動する何等かの方法が準備されている場合、フェ
ッチのリターンアドレスは単に待ち行列の後部に格納さ
れてゆく。そのリターンアドレスを格納したキューが空
でない場合には、通常の割り込み処理を用いてキューに
リターンアドレスが残っていることを知らせることがで
きる。
ッチキューを使用するようにしてもかまわない。データ
を前もってフェッチしておくことは、遅延を防止するた
めに有効である。先に述べたシステムにおいては、すで
にプリフェッチキューをサポートしている。完全なプリ
フェッチを提供するために、プリフェッチを使用するこ
とができるプロセッサを使用すべきである。例えばDE
Cアルファのようなプロセッサを用いる。また、プリフ
ェッチを行うために、プロセッサからのプリフェッチ要
求をデコードするとともに、その要求に基づいて実際の
フェッチを行うハードウェアが準備されなければならな
い。このようなプリフェッチのハードウェアを汎用バス
を使用したインタフェースに搭載することは難しい。し
かし、それはCray Tera 3Dによりなされた
ように、それは不可能ではない。そのような場合には、
ネットワークインタフェースがデータバスに直接接続さ
れるというデザインが成されるであろう。フェッチの実
行を起動する何等かの方法が準備されている場合、フェ
ッチのリターンアドレスは単に待ち行列の後部に格納さ
れてゆく。そのリターンアドレスを格納したキューが空
でない場合には、通常の割り込み処理を用いてキューに
リターンアドレスが残っていることを知らせることがで
きる。
【0203】また、あるアプリケーションにおいては、
送信側コンピュータと受信側コンピュータの間に独立性
を高く保つことが望ましい場合がある。前述したよう
な、メッセージを直接受信側コンピュータに送り込む方
式においては、送信側コンピュータがメッセージの中に
命令とオペランドを書き込んでおく。このメッセージの
中に書き込まれたオペランドは、直接参照する値である
かもしれない。あるいは受信側コンピュータに記憶され
た(アドレスレジスタに記憶された)ステートへの参照
かもしれない。受信側コンピュータはメッセージに書き
込まれたインストラクションを実行する。先に述べたよ
うに、アドレスレジスタに対するアクセスの制限は、あ
る程度の保護と独立性を保つことができる。しかしなが
ら、その独立性は、あるアプリケーションにとっては、
まだ充分なものではないかもしれない。なぜならば、送
信側コンピュータはオペランドにアクセスすることが出
来ないにもかかわらず、オペランドのすべてを指定しな
ければならないからである。このような独立性を確保し
たいという問題を解決するための一つの方法は、独立性
を要求しているアクションを実行する場合には、ホスト
プロセッサに対して、割り込みを発生させることであ
る。このように受信側コンピュータのホストプロセッサ
に対して割り込みを発生させることにより、送信側コン
ピュータと受信側コンピュータの独立性が確立し、受信
側コンピュータをベースにしたアドレッシングシステム
を作成することができる。
送信側コンピュータと受信側コンピュータの間に独立性
を高く保つことが望ましい場合がある。前述したよう
な、メッセージを直接受信側コンピュータに送り込む方
式においては、送信側コンピュータがメッセージの中に
命令とオペランドを書き込んでおく。このメッセージの
中に書き込まれたオペランドは、直接参照する値である
かもしれない。あるいは受信側コンピュータに記憶され
た(アドレスレジスタに記憶された)ステートへの参照
かもしれない。受信側コンピュータはメッセージに書き
込まれたインストラクションを実行する。先に述べたよ
うに、アドレスレジスタに対するアクセスの制限は、あ
る程度の保護と独立性を保つことができる。しかしなが
ら、その独立性は、あるアプリケーションにとっては、
まだ充分なものではないかもしれない。なぜならば、送
信側コンピュータはオペランドにアクセスすることが出
来ないにもかかわらず、オペランドのすべてを指定しな
ければならないからである。このような独立性を確保し
たいという問題を解決するための一つの方法は、独立性
を要求しているアクションを実行する場合には、ホスト
プロセッサに対して、割り込みを発生させることであ
る。このように受信側コンピュータのホストプロセッサ
に対して割り込みを発生させることにより、送信側コン
ピュータと受信側コンピュータの独立性が確立し、受信
側コンピュータをベースにしたアドレッシングシステム
を作成することができる。
【0204】この独立性の問題を解決する他の方法は、
メッセージの内部に指定される命令を受信側コンピュー
タに記憶された命令のポインタで置き換えてしまうこと
である。すなわち、メッセージには、オペレーションが
指示されるのではなく、受信側コンピュータに準備され
たインストラクションポインタが記録される。このよう
に、実際に実行されるインストラクションは受信側コン
ピュータ側に準備されているため、そのインストラクシ
ョンは、送信側コンピュータ側が認識していない受信側
コンピュータ側のオペランドを、直接参照してもかまわ
ない。例えば受信側コンピュータのインストラクション
は送信側コンピュータ側が認識していないアドレスレジ
スタの内部にあるフィールドを、オペランドどとして参
照してもかまわない。また、メッセージは直接実行され
るオペランドを記憶してもよいし、受信側コンピュータ
のオペランドを指定してもかまわない。しかし、受信側
コンピュータはこれらのメッセージに指定されたオペラ
ンドを使用しなくてもかまわない。このようにして受信
側コンピュータ側の独立性を保つことができる。
メッセージの内部に指定される命令を受信側コンピュー
タに記憶された命令のポインタで置き換えてしまうこと
である。すなわち、メッセージには、オペレーションが
指示されるのではなく、受信側コンピュータに準備され
たインストラクションポインタが記録される。このよう
に、実際に実行されるインストラクションは受信側コン
ピュータ側に準備されているため、そのインストラクシ
ョンは、送信側コンピュータ側が認識していない受信側
コンピュータ側のオペランドを、直接参照してもかまわ
ない。例えば受信側コンピュータのインストラクション
は送信側コンピュータ側が認識していないアドレスレジ
スタの内部にあるフィールドを、オペランドどとして参
照してもかまわない。また、メッセージは直接実行され
るオペランドを記憶してもよいし、受信側コンピュータ
のオペランドを指定してもかまわない。しかし、受信側
コンピュータはこれらのメッセージに指定されたオペラ
ンドを使用しなくてもかまわない。このようにして受信
側コンピュータ側の独立性を保つことができる。
【0205】前述したようなインストラクションポイン
タを用いた解決方法をとる場合の実施例を、図9を用い
て説明する。図9において特徴となっている点は、コネ
クション・テーブル142、インストラクションポイン
タのためのポインタベース300と、インストラクショ
ンポインタの領域を示す領域302が設けられている点
である。また、インストラクションメモリ304が設け
られている点である。インストラクションポインタベー
ス300は、インストラクションメモリ304のベース
アドレスを示しており、領域302はインストラクショ
ンメモリ304のサイズを示している。設計を単純にす
るために、各々のインストラクションは、オペレーショ
ンとオペランドから構成されており、各インストラクシ
ョンのサイズは、前述したようなATMセルに用いられ
るフォーマットと全く同じようなフォーマットを持つも
のである。受信側コンピュータのインストラクションメ
モリ304からオペランドを得るべきか、メッセージの
中からオペランドを得るべきかということがオペレーシ
ョンによって制御される。インストラクションメモリ3
04は、保護ビットを有している。保護ビットは、アド
レスレジスタ170にあるプロテクション・ビット14
4と同様の働きをする。すなわちインストラクションメ
モリ304の保護ビットは、どのインストラクションが
送信側コンピュータから指定されるものであるかを判断
するために用いられる。
タを用いた解決方法をとる場合の実施例を、図9を用い
て説明する。図9において特徴となっている点は、コネ
クション・テーブル142、インストラクションポイン
タのためのポインタベース300と、インストラクショ
ンポインタの領域を示す領域302が設けられている点
である。また、インストラクションメモリ304が設け
られている点である。インストラクションポインタベー
ス300は、インストラクションメモリ304のベース
アドレスを示しており、領域302はインストラクショ
ンメモリ304のサイズを示している。設計を単純にす
るために、各々のインストラクションは、オペレーショ
ンとオペランドから構成されており、各インストラクシ
ョンのサイズは、前述したようなATMセルに用いられ
るフォーマットと全く同じようなフォーマットを持つも
のである。受信側コンピュータのインストラクションメ
モリ304からオペランドを得るべきか、メッセージの
中からオペランドを得るべきかということがオペレーシ
ョンによって制御される。インストラクションメモリ3
04は、保護ビットを有している。保護ビットは、アド
レスレジスタ170にあるプロテクション・ビット14
4と同様の働きをする。すなわちインストラクションメ
モリ304の保護ビットは、どのインストラクションが
送信側コンピュータから指定されるものであるかを判断
するために用いられる。
【0206】前述したような方式においては、以下のよ
うな3つの改良点が考えられる。まず第1番目の改良点
として、グローバルインストラクションというものが考
えられる。多くのコネクションが同じオペレーションを
共通に使用することが考えられる。但しその場合には、
異なるオペランドを用いる場合が多い。このような状況
のもとに、グローバルインストラクションというものを
追加することが考えられる。このグローバルインストラ
クションというのは、すべてのコネクションからアクセ
スすることが可能なインストラクションである。グロー
バルインストラクションは送信側コンピュータによっ
て、供給されたオペランドに対してだけ動作できるよう
にする。もし、受信側コンピュータにあるオペランドを
用いて動作できるようにする場合には、混乱が伴う。
うな3つの改良点が考えられる。まず第1番目の改良点
として、グローバルインストラクションというものが考
えられる。多くのコネクションが同じオペレーションを
共通に使用することが考えられる。但しその場合には、
異なるオペランドを用いる場合が多い。このような状況
のもとに、グローバルインストラクションというものを
追加することが考えられる。このグローバルインストラ
クションというのは、すべてのコネクションからアクセ
スすることが可能なインストラクションである。グロー
バルインストラクションは送信側コンピュータによっ
て、供給されたオペランドに対してだけ動作できるよう
にする。もし、受信側コンピュータにあるオペランドを
用いて動作できるようにする場合には、混乱が伴う。
【0207】第2番目の改良点は、インストラクション
とオペランドのメモリを別個に持つことである。インス
トラクションとオペランドのメモリを分ける場合には、
使用するメモリ容量を節約することができるが、オペレ
ーションが複雑になるという欠点を持っている。
とオペランドのメモリを別個に持つことである。インス
トラクションとオペランドのメモリを分ける場合には、
使用するメモリ容量を節約することができるが、オペレ
ーションが複雑になるという欠点を持っている。
【0208】第3番目の改良点は、セル毎に複数のイン
ストラクションを実行するというマルチプルインストラ
クションを備えることである。この場合には、各セルに
対して、複数のインストラクションを実行できるよう
に、シーケンサーが備わっていなければならない。その
ような、シーケンスを持ったマルチプルインストラクシ
ョンの最初のインストラクションが、エントリポイント
として取り扱われる。
ストラクションを実行するというマルチプルインストラ
クションを備えることである。この場合には、各セルに
対して、複数のインストラクションを実行できるよう
に、シーケンサーが備わっていなければならない。その
ような、シーケンスを持ったマルチプルインストラクシ
ョンの最初のインストラクションが、エントリポイント
として取り扱われる。
【0209】その他に条件付きのオペレーションやサブ
ルーチン等を付け加えることも考えられる。しかしなが
ら、インタフェースを単純に保つためには、より複雑な
機能は、ホストプロセッサに割り込みを発生させること
により、あるいはマイクロプロセッサなどのコプロセッ
サを付け加えることにより、達成することが望ましい。
ルーチン等を付け加えることも考えられる。しかしなが
ら、インタフェースを単純に保つためには、より複雑な
機能は、ホストプロセッサに割り込みを発生させること
により、あるいはマイクロプロセッサなどのコプロセッ
サを付け加えることにより、達成することが望ましい。
【0210】前述した実施例は、この発明の実施例であ
り、これらの実施例に対する修正や変形が考えられる。
これらの修正や変形は、同業者が容易に行う範囲である
限り、この発明の範囲に含まれるものである。
り、これらの実施例に対する修正や変形が考えられる。
これらの修正や変形は、同業者が容易に行う範囲である
限り、この発明の範囲に含まれるものである。
【0211】ここで、この発明に関して最後にまとめる
と次のようになる。ダイレクト・デポジット・メッセー
ジングを使用するネットワークプロトコルとインタフェ
ースは、マルチユーザ・コンピュータのネットワークに
おいて、オーバヘッドの少ない通信システムを提供す
る。このシステムでは、送信側コンピュータ、受信側コ
ンピュータ双方からの情報を用いて、受信したメッセー
ジを処理し、データと制御情報を直接格納する。つま
り、データをメモリへ記憶し、制御情報により条件付き
/オプションでホストプロセッサに割り込みをかける。
メッセージの処理は、ホストプロセッサとオペレーティ
ングシステムの処理を必要としないデータの受け渡し
と、ホストプロセッサのインターアクションを必要とす
るか又は必要としないメッセージアクションとに分けら
れる。このプロトコルでは、メッセージには、送信側コ
ンピュータによって望まれたオペレーションの指示と、
送信側コンピュータによって指定されたオペランドと、
受信側コンピュータの持つ情報を参照するオペランドが
含まれる。受信側コンピュータは、送信側コンピュータ
の要求するアクションが実行可能かどうか確認し、もし
可能であれば、送信側コンピュータにより指定されたオ
ペランドと受信側コンピュータのステートとに従って、
アクションを実行する。アクションがメッセージの受け
渡しであれば、メッセージ中のオペランドはダイレク
ト、インダイレクト、ポストインクリメント、またイン
デックスモードなど、様々なアドレス指定モードに用い
る値を指定する。アクションが条件付きで発生する割り
込みであれば、メッセージが即時のアクションを要求し
ているかどうかを、受信側コンピュータのステートも考
慮して、オペランドにより決定する。アクションは、ネ
ットワークインタフェースのレジスタに対するオペレー
ションの場合もある。また受信側コンピュータが記憶す
る他の情報によるオペレーションの場合もある。この発
明のネットワークインタフェースとプロトコルはローカ
ル・エリア・ネットワークに使用できる。このインタフ
ェースとプロトコルは、特に非同期転送方式(ATM)
ネットワークにふさわしいものである。この発明のネッ
トワークインタフェースには、重複したまたはネスティ
ングしたエンドポイントと、重複したまたはネスティン
グしたウィンドウにより作られるアドレスレジスタと、
アドレスレジスタの保護機構と、例外処理とフロー・コ
ントロールを統合したものとが備えられている。
と次のようになる。ダイレクト・デポジット・メッセー
ジングを使用するネットワークプロトコルとインタフェ
ースは、マルチユーザ・コンピュータのネットワークに
おいて、オーバヘッドの少ない通信システムを提供す
る。このシステムでは、送信側コンピュータ、受信側コ
ンピュータ双方からの情報を用いて、受信したメッセー
ジを処理し、データと制御情報を直接格納する。つま
り、データをメモリへ記憶し、制御情報により条件付き
/オプションでホストプロセッサに割り込みをかける。
メッセージの処理は、ホストプロセッサとオペレーティ
ングシステムの処理を必要としないデータの受け渡し
と、ホストプロセッサのインターアクションを必要とす
るか又は必要としないメッセージアクションとに分けら
れる。このプロトコルでは、メッセージには、送信側コ
ンピュータによって望まれたオペレーションの指示と、
送信側コンピュータによって指定されたオペランドと、
受信側コンピュータの持つ情報を参照するオペランドが
含まれる。受信側コンピュータは、送信側コンピュータ
の要求するアクションが実行可能かどうか確認し、もし
可能であれば、送信側コンピュータにより指定されたオ
ペランドと受信側コンピュータのステートとに従って、
アクションを実行する。アクションがメッセージの受け
渡しであれば、メッセージ中のオペランドはダイレク
ト、インダイレクト、ポストインクリメント、またイン
デックスモードなど、様々なアドレス指定モードに用い
る値を指定する。アクションが条件付きで発生する割り
込みであれば、メッセージが即時のアクションを要求し
ているかどうかを、受信側コンピュータのステートも考
慮して、オペランドにより決定する。アクションは、ネ
ットワークインタフェースのレジスタに対するオペレー
ションの場合もある。また受信側コンピュータが記憶す
る他の情報によるオペレーションの場合もある。この発
明のネットワークインタフェースとプロトコルはローカ
ル・エリア・ネットワークに使用できる。このインタフ
ェースとプロトコルは、特に非同期転送方式(ATM)
ネットワークにふさわしいものである。この発明のネッ
トワークインタフェースには、重複したまたはネスティ
ングしたエンドポイントと、重複したまたはネスティン
グしたウィンドウにより作られるアドレスレジスタと、
アドレスレジスタの保護機構と、例外処理とフロー・コ
ントロールを統合したものとが備えられている。
【0212】
【発明の効果】以上のようにこの発明によれば、送信側
コンピュータから送られたメッセージを受信側コンピュ
ータのプロセッサとオペレーションの処理を介さずに、
受信側コンピュータのメモリに格納することができ、オ
ーバヘッドの少ない効率のよい通信方式を得ることがで
きる。
コンピュータから送られたメッセージを受信側コンピュ
ータのプロセッサとオペレーションの処理を介さずに、
受信側コンピュータのメモリに格納することができ、オ
ーバヘッドの少ない効率のよい通信方式を得ることがで
きる。
【0213】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのメモリアドレスを指定す
ることにより、受信側コンピュータのメモリにメッセー
ジを直接格納することができる。
ランドに受信側コンピュータのメモリアドレスを指定す
ることにより、受信側コンピュータのメモリにメッセー
ジを直接格納することができる。
【0214】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。
【0215】またこの発明によれば、オペランドにオフ
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。
【0216】またこの発明によれば、緊急性を要するメ
ッセージの処理を即座に行なうことができる。
ッセージの処理を即座に行なうことができる。
【0217】またこの発明によれば、受信側コンピュー
タの情報を送信側コンピュータによって更新することが
できる。
タの情報を送信側コンピュータによって更新することが
できる。
【0218】またこの発明によれば、緊急性のないメッ
セージをキューイングし、任意の時点で処理することが
できる。
セージをキューイングし、任意の時点で処理することが
できる。
【0219】またこの発明によれば、送信側コンピュー
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータ側でアドレスレジスタに格
納されたアドレスに対してオフセットによる修飾を行っ
たのち、メモリにメッセージを格納することができる。
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータ側でアドレスレジスタに格
納されたアドレスに対してオフセットによる修飾を行っ
たのち、メモリにメッセージを格納することができる。
【0220】またこの発明の通信方式によれば、受信側
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。
【0221】またこの発明によればオペランドにアドレ
スを指定することにより、オペランドにより指定された
アドレスにメッセージを直接格納することができる。
スを指定することにより、オペランドにより指定された
アドレスにメッセージを直接格納することができる。
【0222】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。
【0223】またこの発明によれば、オペランドにオフ
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。
【0224】またこの発明によれば、緊急性を要するメ
ッセージの処理を即座に行なうことができる。
ッセージの処理を即座に行なうことができる。
【0225】またこの発明によれば、受信側コンピュー
タの情報を送信側コンピュータによって更新することが
できる。
タの情報を送信側コンピュータによって更新することが
できる。
【0226】またこの発明によれば、緊急性のないメッ
セージをキューイングし、任意の時点で処理することが
できる。
セージをキューイングし、任意の時点で処理することが
できる。
【0227】またこの発明によれば、送信側コンピュー
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータ側でアドレスレジスタに格
納されたアドレスに対してオフセットによる修飾を行っ
たのち、メモリにメッセージを格納することができる。
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータ側でアドレスレジスタに格
納されたアドレスに対してオフセットによる修飾を行っ
たのち、メモリにメッセージを格納することができる。
【0228】またこの発明の通信方法によれば、受信側
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。
【0229】また、この発明によれば、送信側コンピュ
ータから送られたメッセージを受信側コンピュータのプ
ロセッサとオペレーションの処理を介さずに、受信側コ
ンピュータのメモリに格納することができ、オーバヘッ
ドの少ない効率のよい通信方式を得ることができる。
ータから送られたメッセージを受信側コンピュータのプ
ロセッサとオペレーションの処理を介さずに、受信側コ
ンピュータのメモリに格納することができ、オーバヘッ
ドの少ない効率のよい通信方式を得ることができる。
【0230】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのメモリアドレスを指定す
ることにより、受信側コンピュータのメモリにメッセー
ジを直接格納することができる。
ランドに受信側コンピュータのメモリアドレスを指定す
ることにより、受信側コンピュータのメモリにメッセー
ジを直接格納することができる。
【0231】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。
【0232】またこの発明によれば、オペランドにオフ
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。またこの発明に
よれば、緊急性を要するメッセージの処理を即座に行な
うことができる。
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。またこの発明に
よれば、緊急性を要するメッセージの処理を即座に行な
うことができる。
【0233】またこの発明によれば、受信側コンピュー
タの情報を送信側コンピュータによって更新することが
できる。
タの情報を送信側コンピュータによって更新することが
できる。
【0234】またこの発明によれば、緊急性のないメッ
セージをキューイングし、任意の時点で処理することが
できる。
セージをキューイングし、任意の時点で処理することが
できる。
【0235】またこの発明によれば、送信側コンピュー
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータでアドレスレジスタに格納
されたアドレスに対してオフセットによる修飾を行った
のち、メモリにメッセージを格納することができる。
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータでアドレスレジスタに格納
されたアドレスに対してオフセットによる修飾を行った
のち、メモリにメッセージを格納することができる。
【0236】またこの発明の通信方式によれば、受信側
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。またこの発明によれば、アプリケーシ
ョンプログラムに割り当てられたメモリに対して直接メ
ッセージを格納することができる。もしそのメッセージ
が緊急性を要するものであれば、割り込み処理により即
座に実行される。このようにしてオーバヘッドの少ない
通信方式を得ることができる。
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。またこの発明によれば、アプリケーシ
ョンプログラムに割り当てられたメモリに対して直接メ
ッセージを格納することができる。もしそのメッセージ
が緊急性を要するものであれば、割り込み処理により即
座に実行される。このようにしてオーバヘッドの少ない
通信方式を得ることができる。
【0237】またこの発明によれば権限のないアクセス
が否定されるため、保護機能が付加されたシステムを提
供することができる。
が否定されるため、保護機能が付加されたシステムを提
供することができる。
【0238】またこの発明によれば送信側コンピュータ
から受信側コンピュータの情報を変更することができ
る。
から受信側コンピュータの情報を変更することができ
る。
【0239】またこの発明のネットワークインタフェー
スによれば、アプリケーションプログラムに割り当てら
れたメモリに対して直接メッセージを格納することがで
きる。もし受信したメッセージが緊急性を要するもので
あれば、割り込み処理により即座に実行される。このよ
うにしてオーバヘッドの少ないシステムを提供すること
ができる。
スによれば、アプリケーションプログラムに割り当てら
れたメモリに対して直接メッセージを格納することがで
きる。もし受信したメッセージが緊急性を要するもので
あれば、割り込み処理により即座に実行される。このよ
うにしてオーバヘッドの少ないシステムを提供すること
ができる。
【0240】また、この発明によれば権限のないアクセ
スが否定されるので、保護機能を付加したシステムを提
供することができる。
スが否定されるので、保護機能を付加したシステムを提
供することができる。
【0241】また、この発明によれば送信側コンピュー
タ側から受信側コンピュータに記憶された情報を変更す
ることができる。
タ側から受信側コンピュータに記憶された情報を変更す
ることができる。
【図1】 この発明の一実施例におけるダイレクト・デ
ポジット・メッセージングを用いた通信システムのブロ
ック図。
ポジット・メッセージングを用いた通信システムのブロ
ック図。
【図2】 この発明の一実施例における図1の通信シス
テムの処理の流れを表すフローチャート図。
テムの処理の流れを表すフローチャート図。
【図3】 この発明の一実施例における53バイトのA
TMセルの適切なフォーマットを表すブロック図。
TMセルの適切なフォーマットを表すブロック図。
【図4】 この発明の一実施例における図1で示したネ
ットワークインタフェースのブロック図。
ットワークインタフェースのブロック図。
【図5】 この発明の一実施例における図4で示した受
信側のオペレーション・ロジックでの保護機構とアドレ
ス生成を説明するためのブロック図。
信側のオペレーション・ロジックでの保護機構とアドレ
ス生成を説明するためのブロック図。
【図6】 この発明の一実施例における図4で示したレ
シーブ・コントローラを説明するためのブロック図。
シーブ・コントローラを説明するためのブロック図。
【図7】 この発明の一実施例におけるダイレクト・キ
ャッシュ・インタフェースのブロック図。
ャッシュ・インタフェースのブロック図。
【図8】 この発明の一実施例におけるエンドポイント
・アンド・コネクション・ベースド・コミュニケーショ
ンを開始するための処理の流れを表すフローチャート
図。
・アンド・コネクション・ベースド・コミュニケーショ
ンを開始するための処理の流れを表すフローチャート
図。
【図9】 この発明の一実施例における受信側における
オペレーション・ロジックの別の実施方法を示すブロッ
ク図。
オペレーション・ロジックの別の実施方法を示すブロッ
ク図。
【図10】 この発明の一実施例で実験されたリモート
・ライト遅延時間の測定結果を示す図。
・ライト遅延時間の測定結果を示す図。
【図11】 この発明の一実施例で実験された連続的な
リモート・ライトを送信した場合に得られた帯域幅の測
定結果を示す図。
リモート・ライトを送信した場合に得られた帯域幅の測
定結果を示す図。
【図12】 この発明の一実施例における遅延時間の内
訳を示す図。
訳を示す図。
【図13】 従来例におけるレシーバ・ベースド・アド
レッシングを用いた通信システムのブロック図。
レッシングを用いた通信システムのブロック図。
【図14】 従来例における図13の通信システムの処
理の流れを表すフローチャート図。
理の流れを表すフローチャート図。
【図15】 従来例におけるセンダ・ベースド・アドレ
ッシングを用いた通信システムのブロック図。
ッシングを用いた通信システムのブロック図。
【図16】 従来例における図15の通信システムの処
理の流れを表すフローチャート図。
理の流れを表すフローチャート図。
50,87,270 送信側コンピュータ、52,8
8,272 受信側コンピュータ、54,70 プロセ
ッサ(ホストプロセッサ)、56,72,91,92,
278,280 オペレーティングシステム、58,7
8 アプリケーション1、60,80 アプリケーショ
ン2、62,64,74,76 メッセージバッファ、
66,68,79,81 エンドポイント(エンドポイ
ント・バッファ)、67,95,101 センドコマン
ド、77 レシーブコマンド、82ネットワーク、8
3,94,290 メッセージ、84,86,89,9
0,274,276 ネットワークインタフェース、9
7,98 保護機構、282,284,286,288
コネクション・ステート情報とマッピング情報、12
0 セル、121,123,125,128 インデッ
クス・フィールド、122 データ・フィールド、12
4 サイクル・リダンダンシイ・チェック(CRC)フ
ィールド、126 オペランド・フィールド、129
オペコード・フィールド、130 オペレーション・フ
ィールド、131 マスク・フィールド、132 AT
Mヘッダ・フィールド、140 コネクション・テーブ
ル、142 (コネクション・テーブルの)エントリ、
144 プロテクション・ビット、146 エンドポイ
ント・ナンバー、148 アドレスレジスタのベース、
149 アドレスレジスタの領域、150 コネクショ
ン・ステート情報、151応答用コネクション、15
2,158,174 比較器、156,172 加算
器、160 エンドポイント・テーブル、162 (エ
ンドポイントの)エントリ、164 エンドポイントの
ベース、166 エンドポイントの領域、168 アド
レスマッピング情報、170 アドレスレジスタ、17
6 マルチプレクサ、178 アリスメティック・ロジ
ック・ユニット(ALU)、179 デマルチプレク
サ、180 トランスレーション・ルックアサイド・バ
ッファ(TLB)、184 コンディションコード、1
86 ステート、188 オペコード、190 テーブ
ル、192 コントロール信号、194 マスク、19
6新ステート、210 フロントエンド、212 ホス
トメモリ、214 バス、216 受信バッファとフロ
ー・コントロール、218 ヘッダ分離チェック・ユニ
ット、220,232 VCI/VPIマッピング・ユ
ニット、222 コントロール・デコーダ、224 デ
ータ分離チェック・ユニット、226,240 ブロッ
ク転送ユニット、228 レシーブ・コントローラ、2
30 オペレーション・ロジック、234 センド・コ
ントローラ、236 センドレジスタ、238 コント
ロール・エンコーダ、242 データバッファ、244
セル・フォーミング・ユニット、246 送信バッフ
ァとフロー・コントロール、250 マイクロプロセッ
サ、252 メッセージキャッシュ、254 データキ
ャッシュ、256,258,262 バス、260 マ
ッピング・ユニット、300 ポインタベース、302
領域、304 インストラクションメモリ。
8,272 受信側コンピュータ、54,70 プロセ
ッサ(ホストプロセッサ)、56,72,91,92,
278,280 オペレーティングシステム、58,7
8 アプリケーション1、60,80 アプリケーショ
ン2、62,64,74,76 メッセージバッファ、
66,68,79,81 エンドポイント(エンドポイ
ント・バッファ)、67,95,101 センドコマン
ド、77 レシーブコマンド、82ネットワーク、8
3,94,290 メッセージ、84,86,89,9
0,274,276 ネットワークインタフェース、9
7,98 保護機構、282,284,286,288
コネクション・ステート情報とマッピング情報、12
0 セル、121,123,125,128 インデッ
クス・フィールド、122 データ・フィールド、12
4 サイクル・リダンダンシイ・チェック(CRC)フ
ィールド、126 オペランド・フィールド、129
オペコード・フィールド、130 オペレーション・フ
ィールド、131 マスク・フィールド、132 AT
Mヘッダ・フィールド、140 コネクション・テーブ
ル、142 (コネクション・テーブルの)エントリ、
144 プロテクション・ビット、146 エンドポイ
ント・ナンバー、148 アドレスレジスタのベース、
149 アドレスレジスタの領域、150 コネクショ
ン・ステート情報、151応答用コネクション、15
2,158,174 比較器、156,172 加算
器、160 エンドポイント・テーブル、162 (エ
ンドポイントの)エントリ、164 エンドポイントの
ベース、166 エンドポイントの領域、168 アド
レスマッピング情報、170 アドレスレジスタ、17
6 マルチプレクサ、178 アリスメティック・ロジ
ック・ユニット(ALU)、179 デマルチプレク
サ、180 トランスレーション・ルックアサイド・バ
ッファ(TLB)、184 コンディションコード、1
86 ステート、188 オペコード、190 テーブ
ル、192 コントロール信号、194 マスク、19
6新ステート、210 フロントエンド、212 ホス
トメモリ、214 バス、216 受信バッファとフロ
ー・コントロール、218 ヘッダ分離チェック・ユニ
ット、220,232 VCI/VPIマッピング・ユ
ニット、222 コントロール・デコーダ、224 デ
ータ分離チェック・ユニット、226,240 ブロッ
ク転送ユニット、228 レシーブ・コントローラ、2
30 オペレーション・ロジック、234 センド・コ
ントローラ、236 センドレジスタ、238 コント
ロール・エンコーダ、242 データバッファ、244
セル・フォーミング・ユニット、246 送信バッフ
ァとフロー・コントロール、250 マイクロプロセッ
サ、252 メッセージキャッシュ、254 データキ
ャッシュ、256,258,262 バス、260 マ
ッピング・ユニット、300 ポインタベース、302
領域、304 インストラクションメモリ。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 12/00 12/28 29/08 H04L 13/00 307 Z
Claims (30)
- 【請求項1】 送信側コンピュータと受信側コンピュー
タをネットワークで接続し、受信側コンピュータはオペ
レーティングシステムにより制御されたプロセッサに接
続されたネットワークインタフェースを有しているコン
ピュータシステムの通信方式において、 送信側コンピュータにおいて、オペランドと、実行され
るべきアクションの識別子と、受信側コンピュータに記
憶されている情報へのリファレンスとを含んだメッセー
ジを受信側コンピュータに送る送信手段と、 上記ネットワークインタフェースにおいて、メッセージ
を受信する受信手段と、 上記ネットワークインタフェースにおいて、上記メッセ
ージを受信することにより動作する手段であって、受信
側コンピュータでの上記アクションの実行が許されてい
るかを決定する決定手段と、 上記ネットワークインタフェースにおいて、上記アクシ
ョンの実行が許されている場合に動作する手段であっ
て、受信側コンピュータのプロセッサとオペレーティン
グシステムとは別個に、上記メッセージのオペランドと
受信側コンピュータに記憶された情報に基づいてオペレ
ーションを実行し、そのオペレーションによって上記ア
クションを実行する実行手段を有することを特徴とする
通信方式。 - 【請求項2】 上記オペランドは、受信側コンピュータ
のメモリのアドレスを示すものであり、 上記実行手段は、上記メッセージのアドレスと受信側コ
ンピュータに記憶された情報に基づいて、受信側コンピ
ュータのメモリの所定の位置にメッセージを格納するメ
ッセージ格納手段を備えたことを特徴とする請求項1記
載の通信方式。 - 【請求項3】 上記オペランドは、受信側コンピュータ
のメモリのアドレスを記憶するネットワークインタフェ
ース内のアドレスレジスタを示すものであり、 上記受信側コンピュータに記憶された情報は、アドレス
レジスタに記憶されたアドレスであり、 上記通信方式は、さらに、オペランドにより示されたア
ドレスレジスタからアドレスを得る手段と、得られたア
ドレスに基づいて、メモリにメッセージを記憶する手段
を備えたことを特徴とする請求項2記載の通信方式。 - 【請求項4】 上記オペランドは、さらに、オフセット
を示すものであり、上記通信方式は、さらに、オフセッ
トによりアドレスレジスタのアドレスを修飾する手段を
備えたことを特徴とする請求項3記載の通信方式。 - 【請求項5】 上記実行手段はオペランドと受信側コン
ピュータに記憶された情報を比較する比較手段と、 上記比較手段の比較結果によりメッセージが即座の実行
を要求するものであると判断される場合に、プロセッサ
に対して、割り込みを発生する割り込み手段を備えたこ
とを特徴とする請求項1記載の通信方式。 - 【請求項6】 上記通信方式はさらに、受信側コンピュ
ータに記憶された情報を更新する更新手段を備えたこと
を特徴とする請求項5記載の通信方式。 - 【請求項7】 上記通信方式はさらに、上記比較手段の
比較の結果によりメッセージが即座の実行を要求してい
ないと判断される場合に、メッセージを待ち行列にキュ
ーイングするキューイング手段を備えたことを特徴とす
る請求項5記載の通信方式。 - 【請求項8】 上記オペランドは、オフセットを示すと
ともに、受信側コンピュータのメモリのアドレスを記憶
するためのネットワークインタフェースに設けられた、
アドレスレジスタを示すものであり、 受信側コンピュータに記憶された情報は、アドレスレジ
スタに記憶されたアドレスであり、 上記通信方式はさらに、オペランドにより示されたアド
レスレジスタからアドレスを得る手段と、得られたアド
レスからオフセットで示される値に基づいてメモリにメ
ッセージを記憶する手段を備えたことを特徴とする請求
項5記載の通信方式。 - 【請求項9】 メッセージの送信を要求するプロセッサ
と、プロセッサと接続されており、プロセッサからの要
求に基づいて、オペランドと、所望のアクションの指示
と、受信側コンピュータに記憶された情報へのリファレ
ンスとを含んだメッセージを作成するネットワークイン
タフェースを有する送信側コンピュータと、 オペレーティングシステムによって制御されたプロセッ
サと、プロセッサに接続されたネットワークインタフェ
ースを有する受信側コンピュータと、 送信側コンピュータのネットワークインタフェースと受
信側コンピュータのネットワークインタフェースを接続
し、送信側コンピュータと受信側コンピュータの間でメ
ッセージを変換するためのネットワークとを備え、 上記受信側コンピュータのネットワークインタフェース
は、メッセージを受信し、メッセージに示されたアクシ
ョンを実行するにあたり、受信側コンピュータでそのア
クションの実行が許されている場合に、オペランドと受
信側コンピュータに記憶された情報に基づいてアクショ
ンを実行することを特徴とする通信方式。 - 【請求項10】 上記オペランドは受信側コンピュータ
のメモリのアドレスを示すものであり、上記アクション
はメッセージに含まれているアドレスと、受信側コンピ
ュータに記憶されている情報に基づいて、受信側コンピ
ュータのメモリの所定の位置にメッセージを格納するも
のであることを特徴とする請求項9記載の通信方式。 - 【請求項11】 上記オペランドは受信側コンピュータ
のメモリのアドレスを記憶するアドレスレジスタを示す
ものであり、上記受信側コンピュータに記憶された情報
はアドレスレジスタに記憶されたアドレスであり、 上記受信側コンピュータはオペランドにより示されたア
ドレスレジスタからアドレスを得る手段と、得られたア
ドレスに基づいてメモリにメッセージを記憶する手段と
を備えたことを特徴とする請求項10記載の通信方式。 - 【請求項12】 上記オペランドはさらにオフセットを
示すものであり、 上記通信方式はさらにアドレスレジスタに記憶されたア
ドレスを、オフセットで修飾する手段を備えたことを特
徴とする請求項11記載の通信方式。 - 【請求項13】 上記受信側コンピュータは上記オペラ
ンドと受信側コンピュータにより、管理された状態とを
比較する比較手段と、上記比較手段による比較結果によ
りメッセージが即座のアクションを要求するものである
と判断される場合に、割り込みを生成する割り込み手段
を備えたことを特徴とする請求項9記載の通信方式。 - 【請求項14】 上記通信方式は、さらに受信側コンピ
ュータに記憶された情報を更新する更新手段を備えたこ
とを特徴とする請求項13記載の通信方式。 - 【請求項15】 上記通信方式は、さらに上記比較手段
の比較結果により、メッセージが即座のアクションを要
求していないと判断される場合に、メッセージを待ち行
列にキューイングするキューイング手段を備えたことを
特徴とする請求項13記載の通信方式。 - 【請求項16】 上記オペランドは、オフセットを示す
とともに、受信側コンピュータのメモリのアドレスを記
憶するためのネットワークインタフェースに設けられた
アドレスレジスタを示すものであり、 受信側コンピュータに記憶された情報は、アドレスレジ
スタに記憶されたアドレスであり、 上記通信方式はさらに、オペランドにより示されたアド
レスレジスタからアドレスを得る手段と、得られたアド
レスからオフセットで示される値に基づいてメモリにメ
ッセージを記憶する手段を備えたことを特徴とする請求
項13記載の通信方式。 - 【請求項17】 送信側コンピュータと受信側コンピュ
ータをネットワークで接続し、受信側コンピュータはオ
ペレーティングシステムにより制御されたプロセッサに
接続されたネットワークインタフェースを有しているコ
ンピュータシステムの通信方法において、 送信側コンピュータからネットワークを介して受信側コ
ンピュータへ、オペランドと、実行すべきアクションの
指示と、受信側コンピュータに記憶された情報のリファ
レンスとを含むメッセージを送信する送信工程と、 受信側コンピュータでメッセージを受信する受信工程
と、 受信側コンピュータにおいて、送信側コンピュータから
実行要求があったアクションが許可されたものであるか
を確認する確認工程と、上記確認工程によりアクション
が実行可能であると判断される場合に、プロセッサとオ
ペレーティングシステムとは別個に、メッセージのオペ
ランドと受信側コンピュータに記憶された情報とに基づ
いて受信側コンピュータにおいてアクションを実行する
実行工程とを備えたことを特徴とする通信方法。 - 【請求項18】 上記オペランドは受信側コンピュータ
のメモリのアドレスを示すものであり、 上記実行工程は、メッセージのアドレスと受信側コンピ
ュータに記憶された情報に基づいて、受信側コンピュー
タのメモリの所定の位置にメッセージを格納するメッセ
ージ格納工程を備えたことを特徴とする請求項17記載
の通信方法。 - 【請求項19】 上記オペランドは、受信側コンピュー
タのメモリのアドレスを記憶するネットワークインタフ
ェース内のアドレスレジスタを示すものであり、 上記受信側コンピュータに記憶された情報は、アドレス
レジスタに記憶されたアドレスであり、 上記通信方法は、さらに、オペランドにより示されたア
ドレスレジスタからアドレスを得る工程と、得られたア
ドレスに基づいて、メモリにメッセージを記憶する工程
を備えたことを特徴とする請求項18記載の通信方法。 - 【請求項20】 上記オペランドは、さらに、オフセッ
トを示すものであり、上記通信方法は、さらに、オフセ
ットによりアドレスレジスタのアドレスを修飾する工程
を備えたことを特徴とする請求項19記載の通信方法。 - 【請求項21】 上記実行工程はオペランドと受信側コ
ンピュータに記憶された情報を比較する比較工程と、 上記比較工程の比較結果によりメッセージが即座の実行
を要求するものである場合に、プロセッサに対して、割
り込みを発生する割り込み工程を備えたことを特徴とす
る請求項17記載の通信方法。 - 【請求項22】 上記通信方法はさらに、受信側コンピ
ュータに記憶された情報を更新する更新工程を備えたこ
とを特徴とする請求項21記載の通信方法。 - 【請求項23】 上記通信方法はさらに、上記比較工程
の比較の結果メッセージが即座の実行を要求していない
場合に、メッセージを待ち行列にキューイングするキュ
ーイング工程を備えたことを特徴とする請求項21記載
の通信方法。 - 【請求項24】 上記オペランドは、オフセットを示す
とともに、受信側コンピュータのメモリのアドレスを記
憶するためのネットワークインタフェースに設けられた
アドレスレジスタを示すものであり、 受信側コンピュータに記憶された情報は、アドレスレジ
スタに記憶されたアドレスであり、 上記通信方法はさらに、オペランドにより示されたアド
レスレジスタからアドレスを得る工程と、得られたアド
レスからオフセットで示される値に基づいてメモリにメ
ッセージを記憶する工程を備えたことを特徴とする請求
項21記載の通信方法。 - 【請求項25】 マルチユーザコンピュータのネットワ
ークの通信方式であって、送信側コンピュータと受信側
コンピュータを備え、受信側コンピュータはプロセッサ
とメモリを有しており、上記メモリの一部は上記プロセ
ッサによって実行されるアプリケーションプログラムに
割り当てられている通信方式において、 送信側コンピュータにおいて、オペランドと、受信側コ
ンピュータに記憶された情報のリファレンスと、アプリ
ケーションプログラムに引き渡すデータを含むメッセー
ジを、ネットワークを介して受信側コンピュータに送信
する送信手段と、 受信側コンピュータにおいて、上記メッセージの受信に
より動作する手段であって、 アプリケーションプログラムに割り当てられたメモリの
所定の位置であって、上記所定の位置は、そのメッセー
ジ以前に受信したメッセージのデータの格納位置とは独
立した位置であって、送信側コンピュータのステートと
受信側コンピュータに記憶された情報によって決定され
る所定の位置にメッセージのデータを直接格納する直接
格納手段と、 受信側コンピュータにおいて、上記メッセージの受信に
より動作する手段であって、 送信側コンピュータのステートと受信側コンピュータに
記憶された情報に基づいて、プロセッサに対して条件的
に割り込みを発生する割り込み手段を備えたことを特徴
とする通信方式。 - 【請求項26】 上記通信方式は、さらに、 受信側コンピュータにおいて、送信側コンピュータが情
報をアクセスすることを受信側コンピュータによって許
可されていない場合に、受信側コンピュータに記憶され
た情報をアクセスすることを防止する手段を備えたこと
を特徴とする請求項25記載の通信方式。 - 【請求項27】 上記通信方式は、さらに、受信側コン
ピュータにおいて、上記メッセージの受信により動作す
る手段であって、送信側コンピュータのステートに基づ
いて、受信側コンピュータに記憶された情報を変更する
手段を備えたことを特徴とする請求項25記載の通信方
式。 - 【請求項28】 マルチユーザコンピュータのネットワ
ークの通信方式であって、送信側コンピュータと受信側
コンピュータを備え、受信側コンピュータはプロセッサ
とメモリを有しており、上記メモリの一部は上記プロセ
ッサによって実行されるアプリケーションプログラムに
割り当てられており、上記送信側コンピュータは、送信
側コンピュータのステートを示すオペランドと、受信側
コンピュータに記憶された情報へのリファレンスと、ア
プリケーションプログラムへ引き渡すデータとを含むメ
ッセージをネットワークを介して受信側コンピュータに
送信するネットワークインタフェースにおいて、 受信側コンピュータにおいて、上記メッセージの受信に
より動作する手段であって、 アプリケーションプログラムに割り当てられたメモリの
所定の位置であって、上記所定の位置は、そのメッセー
ジ以前に受信したメッセージのデータの格納位置とは独
立した位置であって、送信側コンピュータのステートと
受信側コンピュータに記憶された情報とによって決定さ
れる所定の位置であって、そのメッセージ以前に受信し
たメッセージを格納するために使われた位置とは独立に
決定される所定の位置に、メッセージのデータを直接格
納する直接格納手段と、 上記メッセージの受信により動作する手段であって、送
信側コンピュータのステートと受信側コンピュータに記
憶された情報とに基づいて、プロセッサに対して条件的
に割り込みを発生する割り込み手段を備えたことを特徴
とするネットワークインタフェース。 - 【請求項29】 上記ネットワークインタフェースはさ
らに、送信側コンピュータが情報をアクセスすることを
受信側コンピュータによって許可されていない場合に、
受信側コンピュータに記憶された情報をアクセスするこ
とを防止する手段を備えたことを特徴とする請求項28
記載のネットワークインタフェース。 - 【請求項30】 上記ネットワークインタフェースは、
さらに上記メッセージの受信により動作する手段であっ
て、送信側コンピュータのステートに基づいて、受信側
コンピュータに記憶された情報を変更する手段を備えた
ことを特徴とする請求項28記載のネットワークインタ
フェース。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US22654194A | 1994-04-12 | 1994-04-12 | |
| US08/226541 | 1994-04-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08180001A true JPH08180001A (ja) | 1996-07-12 |
Family
ID=22849335
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8267395A Pending JPH08180001A (ja) | 1994-04-12 | 1995-04-07 | 通信方式及び通信方法及びネットワークインタフェース |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5790804A (ja) |
| JP (1) | JPH08180001A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999066782A3 (en) * | 1998-06-24 | 2000-03-23 | Discovision Ass | Message system for asynchronous transfer mode |
| JP2001268159A (ja) * | 2000-01-19 | 2001-09-28 | Wiznot Corp | Tcp/ipをハードウェア的に処理する装置及びその動作方法 |
| JP2015091330A (ja) * | 2014-12-08 | 2015-05-14 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
| WO2016186093A1 (ja) * | 2015-05-18 | 2016-11-24 | 国立大学法人名古屋大学 | 通信装置及び通信制限プログラム |
| US10293264B2 (en) | 2006-11-17 | 2019-05-21 | Nintendo Co. Ltd. | Game apparatus and storage medium storing a game program for conducting data communications with a network |
Families Citing this family (112)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0733971A3 (en) * | 1995-03-22 | 1999-07-07 | Sun Microsystems, Inc. | Method and apparatus for managing connections for communication among objects in a distributed object system |
| US6084952A (en) * | 1996-01-18 | 2000-07-04 | Pocketscience, Inc. | System and method for communicating electronic messages over a telephone network using acoustical coupling |
| US6078733A (en) * | 1996-03-08 | 2000-06-20 | Mitsubishi Electric Information Technolgy Center America, Inc. (Ita) | Network interface having support for message processing and an interface to a message coprocessor |
| US5909546A (en) * | 1996-03-08 | 1999-06-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Network interface having support for allowing remote operations with reply that bypass host computer interaction |
| JP3168908B2 (ja) * | 1996-04-11 | 2001-05-21 | 日本電気株式会社 | Atmセルのペイロード部情報の交換方法 |
| JP2830833B2 (ja) * | 1996-04-30 | 1998-12-02 | 日本電気株式会社 | プロセッサ間通信方法及びそれに用いるプロセッサ |
| US6321274B1 (en) * | 1996-06-28 | 2001-11-20 | Microsoft Corporation | Multiple procedure calls in a single request |
| US6032179A (en) * | 1996-08-14 | 2000-02-29 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues |
| US6216168B1 (en) * | 1997-03-17 | 2001-04-10 | Cabletron Systems, Inc. | Perspective-based shared scope address resolution method and apparatus |
| US6105071A (en) * | 1997-04-08 | 2000-08-15 | International Business Machines Corporation | Source and destination initiated interrupt system for message arrival notification |
| US6098105A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupt method for message arrival notification |
| US6098104A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupts for message arrival notification, and related data structures |
| FR2764757B1 (fr) * | 1997-06-13 | 1999-08-27 | Thomson Csf | Procede de traduction d'un en-tete de cellule pour commutateur atm |
| US6138144A (en) * | 1997-06-24 | 2000-10-24 | At&T Corp. | Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network implemented over an ATM network |
| US5948136A (en) * | 1997-07-30 | 1999-09-07 | Sony Corporation | Hardware authentication mechanism for transmission of data between devices on an IEEE 1394-1995 serial bus network |
| US6192463B1 (en) | 1997-10-07 | 2001-02-20 | Microchip Technology, Inc. | Processor architecture scheme which uses virtual address registers to implement different addressing modes and method therefor |
| US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
| US7237036B2 (en) | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
| US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
| US6697868B2 (en) | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
| US7076568B2 (en) * | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
| US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
| US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
| US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
| US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
| US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
| US7133940B2 (en) * | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
| US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
| US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
| US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
| US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
| US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
| US7042898B2 (en) | 1997-10-14 | 2006-05-09 | Alacritech, Inc. | Reducing delays associated with inserting a checksum into a network message |
| US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
| US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
| US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
| US6807581B1 (en) | 2000-09-29 | 2004-10-19 | Alacritech, Inc. | Intelligent network storage interface system |
| US6470415B1 (en) | 1999-10-13 | 2002-10-22 | Alacritech, Inc. | Queue system involving SRAM head, SRAM tail and DRAM body |
| US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
| US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
| US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
| US6112983A (en) * | 1997-11-10 | 2000-09-05 | Diebold, Incorporated | Enhanced network monitor system for automated banking machines |
| EP1038220A2 (en) * | 1997-11-17 | 2000-09-27 | MCMZ Technology Innovations LLc | A high performance interoperable network communications architecture (inca) |
| US5948076A (en) * | 1997-12-31 | 1999-09-07 | Adaptec, Inc. | Method and system for changing peripheral component interconnect configuration registers |
| US6052812A (en) * | 1998-01-07 | 2000-04-18 | Pocketscience, Inc. | Messaging communication protocol |
| US6044415A (en) * | 1998-02-27 | 2000-03-28 | Intel Corporation | System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection |
| EP0964558A1 (en) * | 1998-06-08 | 1999-12-15 | THOMSON multimedia | Method for accessing internet applications from home network devices |
| US6836483B1 (en) * | 1998-06-24 | 2004-12-28 | Research Investment Network, Inc. | Message system for asynchronous transfer |
| US6700891B1 (en) * | 1998-06-25 | 2004-03-02 | Cisco Technology, Inc. | Apparatus and method for providing a device level security mechanism in a network |
| US7664883B2 (en) | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
| US6182182B1 (en) * | 1998-10-28 | 2001-01-30 | Adaptec, Inc. | Intelligent input/output target device communication and exception handling |
| US6691165B1 (en) * | 1998-11-10 | 2004-02-10 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
| US6487606B1 (en) * | 1998-11-18 | 2002-11-26 | Nortel Networks Limited | System and method for delivering messages through a totem communications system |
| US7937364B1 (en) | 1999-03-09 | 2011-05-03 | Oracle International Corporation | Method and system for reliable access of messages by multiple consumers |
| US6801949B1 (en) | 1999-04-12 | 2004-10-05 | Rainfinity, Inc. | Distributed server cluster with graphical user interface |
| US7299294B1 (en) * | 1999-11-10 | 2007-11-20 | Emc Corporation | Distributed traffic controller for network data |
| US8346971B2 (en) | 1999-05-04 | 2013-01-01 | At&T Intellectual Property I, Lp | Data transfer, synchronising applications, and low latency networks |
| JP3376956B2 (ja) * | 1999-05-14 | 2003-02-17 | 日本電気株式会社 | プロセッサ間通信装置 |
| US6516371B1 (en) * | 1999-05-27 | 2003-02-04 | Advanced Micro Devices, Inc. | Network interface device for accessing data stored in buffer memory locations defined by programmable read pointer information |
| US6668299B1 (en) * | 1999-09-08 | 2003-12-23 | Mellanox Technologies Ltd. | Software interface between a parallel bus and a packet network |
| US6625639B1 (en) * | 1999-10-20 | 2003-09-23 | International Business Machines Corporation | Apparatus and method for processing a task in a clustered computing environment |
| US7010606B1 (en) | 2000-06-05 | 2006-03-07 | International Business Machines Corporation | System and method for caching a network connection |
| US6611837B2 (en) | 2000-06-05 | 2003-08-26 | International Business Machines Corporation | System and method for managing hierarchical objects |
| JP2002123449A (ja) * | 2000-08-02 | 2002-04-26 | Sanyo Electric Co Ltd | 情報配信装置 |
| US8019901B2 (en) | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
| US6720074B2 (en) * | 2000-10-26 | 2004-04-13 | Inframat Corporation | Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof |
| US6745346B2 (en) * | 2000-12-08 | 2004-06-01 | Intel Corporation | Method for efficiently identifying errant processes in a computer system by the operating system (OS) for error containment and error recovery |
| US6467033B2 (en) * | 2000-12-12 | 2002-10-15 | International Business Machines Corporation | Method and apparatus for implementing locking of non-data page operations |
| US6845274B2 (en) * | 2001-01-24 | 2005-01-18 | Koninklijke Philips Electronics N.V. | Communication port control module for lighting systems |
| US7068666B2 (en) * | 2001-04-27 | 2006-06-27 | The Boeing Company | Method and system for virtual addressing in a communications network |
| JP4226816B2 (ja) * | 2001-09-28 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ |
| US20030093626A1 (en) * | 2001-11-14 | 2003-05-15 | Fister James D.M. | Memory caching scheme in a distributed-memory network |
| US20030115350A1 (en) * | 2001-12-14 | 2003-06-19 | Silverback Systems, Inc. | System and method for efficient handling of network data |
| US20030121835A1 (en) * | 2001-12-31 | 2003-07-03 | Peter Quartararo | Apparatus for and method of sieving biocompatible adsorbent beaded polymers |
| US7496689B2 (en) | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
| US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
| US7480697B2 (en) * | 2002-05-28 | 2009-01-20 | International Business Machines Corporation | Method and apparatus using attached hardware subsystem to communicate between attached hosts |
| US8700724B2 (en) * | 2002-08-19 | 2014-04-15 | Broadcom Corporation | System and method for transferring data over a remote direct memory access (RDMA) network |
| US7346701B2 (en) * | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
| US7191241B2 (en) * | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
| US7337241B2 (en) | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
| US20040064430A1 (en) * | 2002-09-27 | 2004-04-01 | Klein Jonathan D. | Systems and methods for queuing data |
| US20040088262A1 (en) * | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
| US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
| US7444637B2 (en) * | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
| JP3984929B2 (ja) * | 2003-06-11 | 2007-10-03 | Necインフロンティア株式会社 | VoIPシステム、VoIPサーバ、及びマルチキャストパケット通信方法 |
| US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
| JP4608936B2 (ja) * | 2004-04-28 | 2011-01-12 | パナソニック株式会社 | 通信方法および通信装置 |
| US7467078B2 (en) * | 2004-07-16 | 2008-12-16 | Agilent Technologies Inc. | Portable distributed application framework |
| US8248939B1 (en) | 2004-10-08 | 2012-08-21 | Alacritech, Inc. | Transferring control of TCP connections between hierarchy of processing mechanisms |
| KR100677141B1 (ko) * | 2004-10-11 | 2007-02-02 | 삼성전자주식회사 | 일대일 이름-기반 소켓 통신 수행 장치 및 방법 |
| IL165416A0 (en) * | 2004-11-28 | 2006-01-15 | Objective data regarding network resources | |
| US7937709B2 (en) * | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
| US7549151B2 (en) * | 2005-02-14 | 2009-06-16 | Qnx Software Systems | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment |
| US7634584B2 (en) * | 2005-04-27 | 2009-12-15 | Solarflare Communications, Inc. | Packet validation in virtual network interface architecture |
| US7840682B2 (en) | 2005-06-03 | 2010-11-23 | QNX Software Systems, GmbH & Co. KG | Distributed kernel operating system |
| US8667184B2 (en) * | 2005-06-03 | 2014-03-04 | Qnx Software Systems Limited | Distributed kernel operating system |
| WO2007050797A2 (en) * | 2005-10-25 | 2007-05-03 | Secure64 Software Corporation | Secure virtual-machine monitor |
| US20070106986A1 (en) * | 2005-10-25 | 2007-05-10 | Worley William S Jr | Secure virtual-machine monitor |
| US7680096B2 (en) * | 2005-10-28 | 2010-03-16 | Qnx Software Systems Gmbh & Co. Kg | System for configuring switches in a network |
| US7738500B1 (en) | 2005-12-14 | 2010-06-15 | Alacritech, Inc. | TCP timestamp synchronization for network connections that are offloaded to network interface devices |
| US7913009B2 (en) * | 2007-06-20 | 2011-03-22 | Microsoft Corporation | Monitored notification facility for reducing inter-process/inter-partition interrupts |
| US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
| US8341286B1 (en) | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
| US9306793B1 (en) | 2008-10-22 | 2016-04-05 | Alacritech, Inc. | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies |
| US9037669B2 (en) * | 2012-08-09 | 2015-05-19 | International Business Machines Corporation | Remote processing and memory utilization |
| US10152450B2 (en) | 2012-08-09 | 2018-12-11 | International Business Machines Corporation | Remote processing and memory utilization |
| US9632973B2 (en) * | 2014-09-02 | 2017-04-25 | Intel Corporation | Supporting RMA API over active message |
| GB2542562B (en) * | 2015-09-21 | 2018-06-27 | Displaylink Uk Ltd | Private access to HID |
| US10409762B2 (en) * | 2016-03-08 | 2019-09-10 | International Business Machines Corporation | Remote direct memory access-based on static analysis of asynchronous blocks |
| KR102897791B1 (ko) * | 2016-10-17 | 2025-12-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| CN116319457B (zh) * | 2023-03-09 | 2025-09-02 | 奇瑞汽车股份有限公司 | Canfd总线延迟率的计算方法、装置、电子设备及存储介质 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4947317A (en) * | 1988-10-12 | 1990-08-07 | Pitney Bowes Inc. | Communication protocol for a three nodes system having dedicated connections and bit indicating function of exchanged message |
| US5125096A (en) * | 1988-10-31 | 1992-06-23 | International Business Machines Corporation | System for implementing to a packet switch protocol for a multinode data communications network utilizing separate data and control paths |
| JPH0797782B2 (ja) * | 1991-09-18 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 異種トランザクションの調整方法 |
| US5412803A (en) * | 1992-02-20 | 1995-05-02 | International Business Machines Corporation | Communications system having plurality of originator and corresponding recipient buffers with each buffer having three different logical areas for transmitting messages in single transfer |
| US5317739A (en) * | 1992-03-30 | 1994-05-31 | International Business Machines Corp. | Method and apparatus for coupling data processing systems |
| US5434978A (en) * | 1994-02-18 | 1995-07-18 | International Business Machines Corporation | Communications interface employing unique tags which enable a destination to decode a received message structure |
-
1995
- 1995-04-07 JP JP8267395A patent/JPH08180001A/ja active Pending
-
1996
- 1996-02-05 US US08/596,708 patent/US5790804A/en not_active Expired - Fee Related
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999066782A3 (en) * | 1998-06-24 | 2000-03-23 | Discovision Ass | Message system for asynchronous transfer mode |
| JP2001268159A (ja) * | 2000-01-19 | 2001-09-28 | Wiznot Corp | Tcp/ipをハードウェア的に処理する装置及びその動作方法 |
| US10293264B2 (en) | 2006-11-17 | 2019-05-21 | Nintendo Co. Ltd. | Game apparatus and storage medium storing a game program for conducting data communications with a network |
| US10391407B2 (en) | 2006-11-17 | 2019-08-27 | Nintendo Co., Ltd. | Game apparatus and storage medium storing a game program for conducting data communications with a network |
| JP2015091330A (ja) * | 2014-12-08 | 2015-05-14 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
| WO2016186093A1 (ja) * | 2015-05-18 | 2016-11-24 | 国立大学法人名古屋大学 | 通信装置及び通信制限プログラム |
| JP2016219944A (ja) * | 2015-05-18 | 2016-12-22 | 国立大学法人名古屋大学 | 通信装置及び通信制限プログラム |
| US10384625B2 (en) | 2015-05-18 | 2019-08-20 | National University Corporation Nagoya University | Communication device and non-transitory recording medium |
Also Published As
| Publication number | Publication date |
|---|---|
| US5790804A (en) | 1998-08-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08180001A (ja) | 通信方式及び通信方法及びネットワークインタフェース | |
| JP4755390B2 (ja) | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 | |
| US5925099A (en) | Method and apparatus for transporting messages between processors in a multiple processor system | |
| US5864738A (en) | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller | |
| US6029212A (en) | Method of handling arbitrary size message queues in which a message is written into an aligned block of external registers within a plurality of external registers | |
| US5579503A (en) | Direct cache coupled network interface for low latency | |
| JP2933885B2 (ja) | ネットワーク・インタフェースおよび受信メッセージの処理方法 | |
| JP4755391B2 (ja) | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 | |
| KR100640515B1 (ko) | 주변장치로부터 호스트 컴퓨터 시스템에 인터럽트를전달하기 위한 방법 및 장치 | |
| Dubnicki et al. | Software support for virtual memory-mapped communication | |
| WO2004088462A2 (en) | Hardware assisted firmware task scheduling and management | |
| Ang et al. | StarT-Voyager: A flexible platform for exploring scalable SMP issues | |
| GB2301264A (en) | Computer network interface and interface protocol | |
| Ang et al. | Message passing support on StarT-Voyager | |
| US7130936B1 (en) | System, methods, and computer program product for shared memory queue | |
| Blumrich et al. | Two virtual memory mapped network interface designs | |
| JP2736237B2 (ja) | 遠隔メモリアクセス制御装置 | |
| Damianakis et al. | Stream sockets on SHRIMP | |
| US20020049875A1 (en) | Data communications interfaces | |
| US20070079077A1 (en) | System, method, and computer program product for shared memory queue | |
| US6308147B1 (en) | Data structure synthesis in hardware using memory transaction translation techniques | |
| Heinlein et al. | Integrating multiple communication paradigms in high performance multiprocessors | |
| Osborne | A hybrid deposit model for low overhead communication in high speed lans | |
| Lindenstruth et al. | 10. SCI Physical Layer API | |
| CN121693720A (zh) | 消息信道 |