JPH08180001A - Communication system, communication method and network interface - Google Patents
Communication system, communication method and network interfaceInfo
- 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)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】この発明は、コンピュータ・ネッ
トワークインタフェースとプロトコルとさらに特に低い
オーバヘッドの通信のためのインタフェースとプロトコ
ルに関するものである。この発明は、特に、非同期転送
方式(ATM)ネットワークとローカル・エリア・ネッ
トワーク(LAN)に適用できる。This invention relates to computer network interfaces and protocols and more particularly to interfaces and protocols for low overhead communication. The invention is particularly applicable to asynchronous transfer method (ATM) networks and local area networks (LAN).
【0002】[0002]
従来例1.通信システムは、現代のコンピュータシステ
ムの重要な部門である。通信のためのオーバヘッドが、
このような通信システムにとって基本的な特徴となる。
低いオーバヘッドの通信(以下に定義するように、ホス
トコンピュータに対して、少ない遅延時間と低い影響の
通信)は、並列、分散、リアルタイム・コンピュータ・
システムにおいて特に重要である。Conventional example 1. Communication systems are an important division of modern computer systems. The overhead for communication is
This is a basic feature for such a communication system.
Low overhead communication (as defined below, communication with low latency and low impact to the host computer) allows parallel, distributed, real-time computer
Of particular importance to the system.
【0003】一般に、二つの基本的な特性が、コミュニ
ケーション・システムにおけるオーバヘッドの要因とな
る。第一はデータの受け渡しであり、第二はメッセージ
アクションである。特に、データの受け渡しには、受信
側コンピュータのアドレス指定が必要であり、メッセー
ジアクションには、受信側コンピュータでメッセージア
クションを引き起こすための割り込みが必要である。こ
のように、通信は、データ受け渡しと、メッセージアク
ションを伴う。データ受け渡しは、送信側コンピュータ
から受信側コンピュータにデータを転送する場合に起き
る。メッセージアクションは、受信側コンピュータにデ
ータが到着するとき、例えば、同期化のような、ある特
別なアクションを伴う。メッセージアクションは受信側
コンピュータのプロセッサに割り込みを要求する。Two basic characteristics generally contribute to the overhead in communication systems. The first is the passing of data, and the second is the message action. In particular, passing data requires addressing the receiving computer and message actions require interrupts to trigger the message action at the receiving computer. Thus, communication involves passing data and message actions. Data passing occurs when transferring data from a sending computer to a receiving computer. Message actions involve some special action when the data arrives at the receiving computer, eg, synchronization. The message action requests an interrupt from the receiving computer processor.
【0004】通信システムは送信側コンピュータと受信
側コンピュータのどちらに負荷を分担させるかによって
分類できる。レシーバ・ベースド・システムでは、デー
タ受け渡しとメッセージアクションをコントロールする
情報は受信側コンピュータに置かれている。反対に、セ
ンダ・ベースド・システムでは、送信側コンピュータ
が、データ受け渡しとメッセージアクションを制御する
ために、それぞれのメッセージに情報を記載すること
で、送信側コンピュータがより直接的な役割を果たす。
この場合、データ受け渡しのためのキーとなる情報は、
データの着アドレスである。レシーバ・ベースド・アド
レッシングにおいて、送信側コンピュータは、メッセー
ジを置く最終アドレスに直接メッセージを入力すること
はできない。即ち、送信側コンピュータは受信側コンピ
ュータのバッファを指定することができるが、受信側コ
ンピュータは例えばポインタに順序づけをすることによ
って、送信側コンピュータにはわからない位置に自動的
にメッセージが記憶される。これに対し、センダ・ベー
スド・アドレッシングでは、メッセージを記憶する受信
側コンピュータのアドレスを、それぞれのメッセージに
送信側コンピュータが直接指定することができる。セン
ダ・ベースド・アドレッシングに比べ、レシーバ・ベー
スド・アドレッシングは、かなりのオーバヘッドを生ず
る。しかしながら、センダ・ベースド・アドレッシング
には保護の問題が発生する。Communication systems can be classified according to whether the load is shared by the sending computer or the receiving computer. In receiver-based systems, the information that controls data passing and message actions resides on the receiving computer. On the contrary, in the sender-based system, the sender computer plays a more direct role by describing information in each message in order to control data passing and message actions.
In this case, the key information for passing data is
This is the destination address of the data. In receiver-based addressing, the sending computer cannot enter the message directly at the final address where it will be placed. That is, the sending computer can specify the buffer of the receiving computer, but the receiving computer automatically stores the message at a position unknown to the sending computer by, for example, ordering the pointers. In sender-based addressing, on the other hand, the address of the receiving computer that stores the message can be directly specified by the sending computer in each message. Receiver-based addressing introduces significant overhead compared to sender-based addressing. However, sender-based addressing presents protection issues.
【0005】メッセージアクションのためのキーとなる
情報は、メッセージの到着に際し、割り込みを発生する
かどうかという情報である。レシーバ・ベースド・イン
ターラプトを用いたシステムの場合、メッセージの到着
毎に、受信側コンピュータが割り込みを発生させる。セ
ンダ・ベースド・インターラプトを用いたシステムの場
合、そのメッセージの到着によって割り込みを発生させ
るかどうかという情報が、送信側コンピュータによっ
て、それぞれのメッセージに書きこまれる。The key information for a message action is whether to generate an interrupt upon arrival of a message. In a system using receiver-based interrupt, the receiving computer generates an interrupt each time a message arrives. In the case of a system using sender-based interrupts, the sender computer writes information about whether or not the arrival of the message causes an interrupt in each message.
【0006】従来の通信システムの多くは、例えばイン
ターネット・プロトコルを使用するイーサーネット・ネ
ットワークのような、レシーバ・ベースド・システムで
ある。同様に、多くの開放的でかつ公共的なローカル・
エリア・ネットワーク(LAN)の多くは、この種のプ
ロトコルを用いている。Many conventional communication systems are receiver-based systems, such as Ethernet networks using the Internet Protocol. Similarly, many open and public local
Many area networks (LANs) use this type of protocol.
【0007】図13に第一のコンピュータ(以後、送信
側コンピュータと呼ぶ)50と第2のコンピュータ(以
後、受信側コンピュータと呼ぶ)52を含む典型的なコ
ンピュータシステムを示す。送信側コンピュータと受信
側コンピュータは、どちらが50でも52でもよい。送
信側コンピュータ50と受信側コンピュータ52は、そ
れぞれのネットワークインタフェース84と86を介し
てネットワークにより相互に連結される。図13には2
台のコンピュータ(即ち、送信側コンピュータ50と受
信側コンピュータ52)が示されているが、システムは
2台と限らない。複数の送信側コンピュータと1台の受
信側コンピュータ、或いは1台の送信側コンピュータと
複数の受信側コンピュータ、或いは複数の送信側コンピ
ュータと複数の受信側コンピュータでも良い。また、そ
れぞれのコンピュータは相互に連結させたプロセッサか
ら構成されていても良い。すなわち、送信側コンピュー
タと受信側コンピュータは、1台の並列コンピュータの
ように単一のコンピュータ内の相互に連結されたプロセ
ッサから構成されている場合でもかまわない。以下で使
われるノードという言葉は、送信側コンピュータまたは
受信側コンピュータのいずれかを意味する。また各ノー
ドは、他のノードとは別の独立したそれ自身の仮想アド
レス空間を持つと仮定する。即ち、ノードは仮想メモリ
を持つと仮定する。FIG. 13 shows a typical computer system including a first computer (hereinafter referred to as a sender computer) 50 and a second computer (hereinafter referred to as a receiver computer) 52. Either the sending computer or the receiving computer may be 50 or 52. The sending computer 50 and the receiving computer 52 are interconnected by a network via respective network interfaces 84 and 86. 2 in FIG.
Although two computers (i.e., sending computer 50 and receiving computer 52) are shown, the system is not limited to two. It may be a plurality of sending side computers and one receiving side computer, or one sending side computer and a plurality of receiving side computers, or a plurality of sending side computers and a plurality of receiving side computers. Further, each computer may be composed of processors connected to each other. That is, the transmitting side computer and the receiving side computer may be composed of mutually connected processors in a single computer such as one parallel computer. The term node as used below means either the sending computer or the receiving computer. Also assume that each node has its own virtual address space, independent of other nodes. That is, it is assumed that the node has virtual memory.
【0008】ネットワークは、複数の独立したユーザに
よって使われる可能性がある。各ノードは、1以上の複
数のユーザにより使われるかもしれない。そのため、あ
るユーザのプロセスを他のユーザが事故或いは悪意によ
り妨害することに対して保護する典型的な保護機構が用
意されている。例を次にあげる。 1)他のユーザへの権限のないメッセージの送信を防
ぐ。 2)他のユーザのメモリへの許可のないアクセスを防
ぐ。 3)受信側コンピュータに対して許可されたユーザのふ
りをしてアクセスしてくるものを排除する。 これらの保護機構は、複数のユーザを相互に連結する標
準的な拡張性のあるネットワークにふつう見られる。こ
れらの保護機構は、閉じた専有のネットワークにはあま
り見られない。Networks may be used by multiple independent users. Each node may be used by more than one user. Therefore, a typical protection mechanism is provided to protect one user's process from accidentally or maliciously disturbing another user. Here is an example: 1) Prevent sending unauthorized messages to other users. 2) Prevent unauthorized access to the memory of other users. 3) Exclude access to the receiving computer by pretending to be an authorized user. These protection mechanisms are commonly found in standard scalable networks that interconnect multiple users. These protection mechanisms are rarely found in closed, proprietary networks.
【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に適合するようにプログラムされてい
る。The sending computer 50 is a processor 5
Including 4. The processor 54 is connected to the network interface 84 and is programmed to be compatible with the desired operating system 56. The operating system 56 manages node resources such as memory, processor time, network access, and arbitrates and protects requests from applications. Operating system 56 also controls interactions between applications 58 and 60 of FIG. 13 and applications such as processor 54. The operating system 56 has message buffers 62 and 64. Message buffers 62 and 64 are used to send messages to recipient computer 52 via network interface 84. Each application 58, 60 operates using memories 66 and 68, respectively. Memories 66 and 68 are referred to as endpoint buffers or simply endpoints. Similarly, the receiving computer 52 includes a processor 70 connected to a network interface 86. Processor 7
0 is programmed to match the desired operating system 72, as shown in FIG.
【0010】オペレーティングシステム72と受信側コ
ンピュータ52は、同じように送信側コンピュータ50
に対するメッセージバッファ74と76を含む。アプリ
ケーション78と80も又メモリポーション79と81
に関連付けられている。メモリポーション79と81
は、エンドポイントバッファあるいは単にエンドポイン
トと呼ぶ。一般的に送信側コンピュータあるいは受信側
コンピュータは、ネットワーク・コプロセッサ或いは他
のコプロセッサのような、その他のプロセッサを含むか
もしれない。曖昧さをなくすために、プロセッサ54と
70はこれより”ホストプロセッサ”と呼ぶことにす
る。従来のシステムにおけるメッセージ83はヘッダを
含む。ヘッダはネットワーク82とネットワークインタ
フェース84,86により適切なノードとエンドポイン
トにメッセージを導くために使われる。送信側コンピュ
ータ50と受信側コンピュータ52におけるアプリケー
ション(例えば58)は、ネットワーク82を介してお
互いにメッセージを送ることにより通信する。メッセー
ジは、プロシージャーコールを含むどのようなデータで
も送ることができる。The operating system 72 and the receiving computer 52 are similar to the sending computer 50.
Message buffers 74 and 76 for Applications 78 and 80 also have memory portions 79 and 81
Associated with. Memory potions 79 and 81
Is called the endpoint buffer or simply the endpoint. Generally, the sending or receiving computer may include other processors, such as a network coprocessor or other coprocessor. To avoid ambiguity, processors 54 and 70 will be hereinafter referred to as "host processors." The message 83 in the conventional system includes a header. The header is used by the network 82 and network interfaces 84, 86 to direct the message to the appropriate node and endpoint. Applications (eg, 58) at the sending computer 50 and the receiving computer 52 communicate with each other by sending messages over the network 82. The message can be any data, including a procedure call.
【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にコピーしてもよい。As shown in FIG. 14, conventional communication includes at least the following steps. In step 99, the application 58 issues a send command. One way for application 58 to issue a send instruction is by executing the command described by "send" command 67. The command is an identifier (I
D), the source address from which the message data is retrieved and a size indicating the amount of data to be sent.
Part of the identifier is used to identify the receiving computer. Then, in step 100, the operating system copies the message from the application memory, such as endpoint 66, to a message buffer, eg 62, in operating system 56 of sending computer 50. This step
It is often optimized by mapping locations in the application memory to locations in the message buffer 62 to avoid the actual copying operation. if,
If necessary, in step 102 the operating system 56 executes the protocol. That is, the data sent is converted to the appropriate format as required by network 82. If the amount of data is large, it is divided into several messages, and the messages are
At 04, it is sent to the network 82 via the network interface 84. In step 106, the message normally arriving at the receiving computer causes an interrupt to processor 70. The operating system 72 then retrieves the message directly from the network (meaning network and network interface) and copies it into a message buffer 74 in the operating system. Alternatively, in a system with suitable hardware, the operating system may set up a direct memory access (DMA) with a network interface and use the DMA to retrieve the message and copy it to the message buffer 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における位置にマッピング
することによりコピー作業が行われることがよくある。In some communication systems, an intelligent network interface is proposed.
That is, the receiving computer 52 has a second processor (for example, Intel Paragon).
a communication coprocessor in n), and the second processor retrieves the message from the network 82 and copies the message into the message buffer 74. The operating system 72 executes the protocol, if necessary, at step 108. Then, in step 110, the operating system 72 copies the message from the message buffer 74 of the receiving computer 52 to application memory, such as endpoint 79. Normal operating system 7
2 copies this data to the application memory in response to an apparent receive request by the application, such as a "receive" command 77. The command contains an ID. A part of the ID is used to specify the message buffer 74, for example. The data is then received from the designated message buffer 74. The command further includes a receive address to which the message is copied and a size indicating the amount of data. The previously stored state information allows the operating system to automatically copy data from the message buffer 74 to the endpoint 79 without a request from the application for receipt. Also, like the sending computer, the copy operation is often performed by mapping a location in the application memory to a location in the message buffer 74 to avoid the actual copy operation.
【0013】通信システムはオーバヘッドを持ってい
る。オーバヘッドは通信による遅延時間と、送信側コン
ピュータ50と、受信側コンピュータ52のプロセッサ
54と70に対する影響を含んでいる。説明を単純にす
るために、ここでは通信遅延時間と通信オーバヘッド
を、単に遅延時間とオーバヘッドと呼ぶことにする。遅
延時間はメッセージを、例えばエンドポイント66のよ
うな送信側コンピュータ50におけるアプリケーション
メモリから、例えばエンドポイント79のような受信側
コンピュータ52におけるアプリケーションメモリに移
すための時間の総量として定義される。プロセッサに対
する影響は、割り込み処理、データ・フロー・コントロ
ールとプロトコル処理を含んでいる。ホストプロセッサ
における遅延時間と影響を減らすためには、図14で説
明した各ステップを最適化することによりオーバヘッド
を減らす必要がある。Communication systems have overhead. The overhead includes the communication delay and the effect on the sending computer 50 and the receiving computer 52 processors 54 and 70. For simplicity of explanation, the communication delay time and the communication overhead will be simply referred to as delay time and overhead here. The delay time is defined as the total amount of time to move a message from application memory at the sending computer 50, such as endpoint 66, to application memory at the receiving computer 52, such as endpoint 79. Impacts on the processor include interrupt handling, data flow control and protocol handling. In order to reduce the delay time and influence in the host processor, it is necessary to reduce the overhead by optimizing each step described in FIG.
【0014】並列、分散のコンピュータシステムと、リ
アルタイム制御システムのような速い応答を必要とされ
るアプリケーションにとって少ないオーバヘッドは重要
である。並列コンピュータシステムにおいて、少ない遅
延時間は送信側コンピュータ50における処理の時間を
減らすために、欠くことの出来ないものである。送信側
コンピュータ50における処理の時間は、例えば受信側
コンピュータ52のアプリケーションメモリ79のよう
な離れた位置にあるメモリから、データを読むために待
つ時間である。あるいは(例えばロックを獲得したり、
開放したりするような)リモート・シンクロナイゼーシ
ョン・オペレーションのための遅延時間である。分散コ
ンピュータシステムにおける、クライアント−サーバ・
モデルの性能は、しばしばリモート・プロシージャ・コ
ール(RPC)を実行するために必要とされる時間によ
って限定される。このリモート・プロシージャ・コール
の実行時間は遅延時間に影響されるものである。少ない
遅延時間の重要性はリアルタイム・システムにおいて最
も明らかである。リアルタイム・システムにおける過度
の遅延は大きな事故を引き起こすであろう。少ない遅延
時間がそれほど重要ではないアプリケーションにおいて
さえ、少ない遅延時間はアプリケーションの適用範囲を
広げ、システム構成の自由度を広げる。Small overhead is important for parallel, distributed computer systems and applications requiring fast response such as real-time control systems. In the parallel computer system, the small delay time is indispensable for reducing the processing time in the transmitting computer 50. The processing time at the sending computer 50 is the time to wait to read the data from a remote memory, such as the application memory 79 of the receiving computer 52. Or (for example, to get a lock,
The delay time for remote synchronization operations (such as releasing). Client-server in a distributed computer system
Model performance is often limited by the time required to execute a remote procedure call (RPC). The execution time of this remote procedure call is sensitive to the delay time. The importance of low latency is most apparent in real-time systems. Excessive delays in real-time systems will cause major accidents. Even in applications where low delay time is not very important, low delay time expands the application range of the application and expands the freedom of system configuration.
【0015】並列コンピュータシステムにおいては、少
ない遅延時間により、よりすばらしいコンピュータシス
テムを効果的に開発することができる。又、並列性を増
大させることができる。分散コンピュータシステムにお
いては、十分な少ない遅延時間は、例えば送信側コンピ
ュータ50によりネットワーク82を介して受信側コン
ピュータ52のリモート・ノードのメモリをページング
することができる。そしてこれは(図示していないが)
ローカルディスクにページングするよりも速くできる。
即ち、少ない遅延時間によりクライアント−サーバ・コ
ンピュータシステムにおいて融通性のあるリアルタイム
・コンピュータ・システムを実現する助けとなる。ホス
トプロセッサにおける影響を少なくすることにより、プ
ロセッサが利用状態にあることへの予測性とプロセッサ
の利用可能性が高まり、アプリケーションの実行効率を
向上させるために重要である。ホストプロセッサによっ
て実行されるリアルタイム・タスクにとって、プロセッ
サの利用が予測可能であることは特に重要である。この
ようなリアルタイムに用いられるアプリケーションを、
関係の無い非同期ネットワークの事象から遮断し、リア
ルタイムでの実行を確保することは重要である。In a parallel computer system, a better computer system can be effectively developed with a small delay time. Also, parallelism can be increased. In a distributed computer system, a sufficiently low delay time can be paged by the sending computer 50, for example, through the network 82 to the memory of the remote node of the receiving computer 52. And this (not shown)
Can be faster than paging to local disk.
That is, it helps to realize a flexible real-time computer system in a client-server computer system with a small delay time. Reducing the impact on the host processor increases the predictability of the processor being in use and the availability of the processor, which is important for improving the execution efficiency of applications. Predictable processor utilization is especially important for real-time tasks performed by the host processor. Such an application used in real time,
It is important to isolate from unrelated asynchronous network events and ensure real-time execution.
【0016】占有のネットワークを持った現世代の並列
コンピュータシステムは、1μsecから100μse
cのレンジの遅延時間で動作する。ローカル・エリア・
ネットワークでの遅延時間は、1000サイクル未満で
あることが望ましい。将来可能となる1GHzのプロセ
ッサに対しては、1000サイクルとは1μsecであ
る。従来の10Mbpsのイーサーネット(Ether
net)LANでは遅延時間は、約1msecが典型的
なものである。100Mbpsの最初の世代のATMネ
ットワークは、従来のネットワークプロトコルとインタ
フェースを使って、約250μsecの遅延時間で動作
する。ネットワークのスピードの増加が必ずしも遅延時
間を減少させるものではないために、遅延時間を減少さ
せるために、オペレーティングシステムとネットワーク
インタフェースとネットワークプロトコルの改善を必要
とする。The current-generation parallel computer system having an exclusive network is 1 μsec to 100 μse.
It operates with a delay time in the range of c. Local area
The delay time in the network is preferably less than 1000 cycles. For a 1 GHz processor that will be possible in the future, 1000 cycles is 1 μsec. Conventional 10 Mbps Ethernet
In the case of a net) LAN, the delay time is typically about 1 msec. The 100 Mbps first generation ATM network operates using conventional network protocols and interfaces with a delay time of approximately 250 μsec. Since the increase in network speed does not necessarily reduce the delay time, the improvement of the operating system, the network interface and the network protocol is required to reduce the delay time.
【0017】オーバヘッドのない通信を得るための障害
物を明らかにするために、更に詳しく従来の方法につい
て述べる。従来の通信システム、例えばTCP−IPの
ような分散システム、あるいはインテルパラゴンのよう
な並列コンピュータマシンにおいて、従来の通信システ
ムは大容量のストリームデータを扱っている。このよう
なシステムにおいて、メッセージは大きなサイズである
ことが多い。メッセージはバッファ識別子(バッファI
D)とデータを含む。インタフェース・ハードウェアと
オペレーティングシステムのソフトウェアは、ネットワ
ークから到着したメッセージを、バッファIDにより指
定されたメッセージバッファ(例えばメッセージバッフ
ァ74)における連続した位置に分離する。多くの場
合、ネットワークインタフェースはホストプロセッサに
対し、割り込みを発生する。オペレーティングシステム
は、ネットワークインタフェースからメッセージバッフ
ァ74にデータを直接コピーする。メッセージバッファ
74は、オペレーティングシステムの中にあっても良
い。またはオペレーティングシステムは、このようなメ
ッセージのコピーを行うDMA転送を設定しても良い。In order to clarify the obstacles for obtaining communication without overhead, the conventional method will be described in more detail. In a conventional communication system, for example, a distributed system such as TCP-IP or a parallel computer machine such as Intel Paragon, the conventional communication system handles a large amount of stream data. In such systems, messages are often large in size. The message is a buffer identifier (buffer I
D) and data. The interface hardware and operating system software separate the message arriving from the network into consecutive locations in the message buffer specified by the buffer ID (eg, message buffer 74). In many cases, the network interface will generate an interrupt to the host processor. The operating system copies the data directly from the network interface to the message buffer 74. The message buffer 74 may reside in the operating system. Alternatively, the operating system may set up a DMA transfer that copies such a message.
【0018】先に述べたように、このメッセージバッフ
ァ74はオペレーティングシステム72の中にあるの
で、受信側コンピュータ52におけるオペレーティング
システム72は、メッセージバッファ74からエンドポ
イント79のようなアプリケーションメモリにデータを
コピーしなければならない。このようなコピーのために
生ずるバッファリングのオーバヘッドを除く1つの方法
は、エンドポイント79のアプリケーションメモリをメ
ッセージバッファ74へマッピングすることである。コ
ピーのために生ずるバッファリングのオーバヘッドを除
く他の方法は、データをネットワークインタフェースか
ら、直接アプリケーションメモリにコピーすることであ
る。実現方法にかかわりなく、メッセージはオペレーテ
ィングシステムのメッセージバッファの連続した位置に
分割して記憶される。あるいは、メッセージはアプリケ
ーションメモリ(もし直接にネットワークインタフェー
スからアプリケーションメモリにコピーされる場合であ
るが)のメッセージバッファの連続した位置に分割して
記憶される。As mentioned above, this message buffer 74 is in the operating system 72 so that the operating system 72 at the receiving computer 52 copies the data from the message buffer 74 to application memory, such as the endpoint 79. Must. One way to eliminate the buffering overhead incurred for such a copy is to map the application memory of the endpoint 79 to the message buffer 74. Another way to eliminate the buffering overhead caused by the copy is to copy the data from the network interface directly into the application memory. Regardless of the implementation, the message is stored in contiguous locations in the operating system's message buffer. Alternatively, the message is divided and stored in successive locations in the message buffer of the application memory (if directly copied from the network interface to the application memory).
【0019】メッセージが、メッセージバッファ内に記
憶される位置は自動的に決定される。例えば、ポインタ
により順番に位置決めされる。一般的に、受信される各
メッセージは受信側コンピュータのプロセッサとオペレ
ーティングシステムに割り込みを引き起こす。この割り
込みは、ネットワークからメッセージバッファにメッセ
ージを取り出すためのものである。送信側コンピュータ
はメッセージの最終的なアドレスを直接制御することは
ない。或いは、送信側コンピュータは、メッセージを受
け取った送信側コンピュータの割り込みの状態を直接制
御することはない。このような、メッセージ処理の方式
は、レシーバ・ベースド・アドレッシングと呼ばれる。
一つのプロセッサに対してアプリケーションとメッセー
ジ処理を多重化させて処理することは、このような従来
のネットワークプロトコルにとって普通のことである。
しかし、この多重化は、かなりのオーバヘッドをもたら
す。なぜならば、割り込み処理のために多くのサイクル
を必要とする。始めに、オペレーティングシステムのカ
ーネルに対する割り込み要求が発生し、それから多くの
サイクルが割り込みの解析処理及び分岐のために使われ
る。最後に、割り込み処理が行われる。この多重化によ
り生じるオーバヘッドは、メッセージの配送の遅延を招
く。また受信側コンピュータにおけるアプリケーション
の処理の遅延を招く。The location where the message is stored in the message buffer is automatically determined. For example, they are sequentially positioned by the pointer. Generally, each message received causes an interrupt to the receiving computer's processor and operating system. This interrupt is to retrieve a message from the network into a message buffer. The sending computer does not directly control the final address of the message. Alternatively, the sending computer does not directly control the interrupt status of the sending computer that received the message. Such a message processing method is called receiver-based addressing.
It is common for such conventional network protocols to process applications and message processing in a multiplexed manner on one processor.
However, this multiplexing introduces considerable overhead. Because, it requires many cycles for interrupt processing. First, an interrupt request is made to the operating system kernel, and then many cycles are used for interrupt parsing and branching. Finally, interrupt processing is performed. The overhead caused by this multiplexing causes delays in message delivery. In addition, the processing of the application in the receiving computer is delayed.
【0020】非同期に発生するメッセージの到着により
引き起こされる割り込みは、予知することができないと
いう性格を持つ。この予知できない割り込み処理は、リ
アルタイム・システムにとって問題である。またたび重
なる割り込みは更にアプリケーションを遅らせるという
問題がある。インテル(Intel) iPSCのよう
な初期のマルチコンピュータにおいてアドレッシング
は、次のように行われる。受信側コンピュータにおける
オペレーティングシステムのカーネルは、ネットワーク
からメッセージをメッセージバッファに分離し、アプリ
ケーションはバッファの内容をアプリケーションメモリ
に分離する。このようなオペレーティングシステムのカ
ーネルによる処理は、IBM(Internation
al Business Machines)により開
発されたSP1のように並列ワークステーションの技術
分野に示されたような現在の技術として用いられている
ものである。Interrupts caused by the arrival of asynchronously generated messages have the property that they cannot be predicted. This unpredictable interrupt handling is a problem for real-time systems. Also, there is a problem that repeated interrupts further delay the application. Addressing is done as follows in early multi-computers such as Intel iPSCs. The operating system kernel at the receiving computer separates the message from the network into message buffers, and the application separates the buffer contents into application memory. The processing by the kernel of such an operating system is performed by the IBM (International)
It is used as a current technology as shown in the technical field of parallel workstations such as SP1 developed by Al Busines Machines.
【0021】従来の通信プロトコルに使われている別の
方法は、通信コプロセッサのような他のプロセッサを加
える方法である。例えば、Intel Paragon
は、非同期のメッセージの到着を扱うものである。この
ような通信コプロセッサは、複雑なgather−sc
atter操作にたいしても有用である。複雑なgat
her−scatter操作は、大きなサイズのメッセ
ージが使われるときに発生する。このようなコプロセッ
サの利用はハードウェアの重複となり、費用がかかる。
受信側コンピュータにおいて、コプロセッサを用いるよ
うな、リソースを増加させる方式をとらない方式もとれ
る。即ち、どこにメッセージを置くか、どのようにメッ
セージを処理するかを決定するために、受信側コンピュ
ータに著しいリソースの増加や複雑な処理を増す代わり
に、送信側コンピュータがこの決定をしてもよい。Another method used in conventional communication protocols is to add another processor, such as a communication coprocessor. For example, Intel Paragon
Handles the arrival of asynchronous messages. Such a communication coprocessor has a complicated gather-sc
It is also useful for atter operations. Complex gat
The her-scatter operation occurs when large size messages are used. The use of such coprocessors results in redundant hardware and is expensive.
In the receiving computer, there is a method that does not take a method of increasing resources such as using a coprocessor. That is, instead of adding significant resource or complexity to the receiving computer to determine where to put the message and how to process the message, the sending computer may make this decision. .
【0022】図15に他の従来の、送信側コンピュータ
が主導権を有するシステムのブロック・ダイアグラムを
示す。このシステムでは、送信側コンピュータ87と受
信側コンピュータ88が、ネットワークインタフェース
89と90を介してネットワーク82により接続されて
いる。それぞれのオペレーティングシステム91と92
は、メッセージバッファを持つ必要がない。このシステ
ムでは、送信側コンピュータが、受信側コンピュータの
どこにメッセージを置くか指定する。図15にコマンド
の例を示す。”センド”コマンド95は、コマンドに受
信アドレスを含むことにより、メッセージが受信側コン
ピュータのどこにおかれるかをも示す。メッセージ94
が、送信側コンピュータ87から受信側コンピュータ8
8に送られる。メッセージ94は、ヘッダとデータ以外
に、受信側コンピュータ88でメッセージを置くべきア
ドレスも含む。送信側コンピュータは、受信側コンピュ
ータにメッセージが到着した時点で、受信側コンピュー
タにインターラプトを発生させるかどうか直接指定して
もよい。FIG. 15 shows a block diagram of another conventional system in which the sending computer takes the initiative. In this system, a sending computer 87 and a receiving computer 88 are connected by a network 82 via network interfaces 89 and 90. Operating systems 91 and 92 respectively
Does not need to have a message buffer. In this system, the sending computer specifies where on the receiving computer to put the message. FIG. 15 shows an example of the command. The "send" command 95 also indicates where the message is located on the receiving computer by including the receiving address in the command. Message 94
From the sending computer 87 to the receiving computer 8
Sent to 8. The message 94 includes, in addition to the header and data, the address where the message should be placed at the receiving computer 88. The sending computer may directly specify whether the receiving computer should generate an interrupt when the message arrives at the receiving computer.
【0023】図16は図15のシステムにおける一般的
な動作を述べたフローチャートである。ステップ111
において、始めに、送信側コンピュータが受信側コンピ
ュータのどのアドレスにメッセージを置くか決定する。
このアドレスでセンドコマンドを作成する。ステップ1
12において、アプリケーションメモリからメッセージ
を直接ネットワークに送出する。これに対して図14で
示した従来のシステムでは、オペレーティングシステム
のメッセージバッファからメッセージが送出される。ス
テップ113において、ネットワークからメッセージが
取り出される。ステップ114において、ネットワーク
インタフェースからメッセージが直接メッセージの中の
受信アドレスに分離される。図14で示した従来のシス
テムは、メッセージをオペレーティングシステムのメッ
セージバッファに取り出す。このシステムでは、図14
のステップ100と110に示したような、アプリケー
ションメモリとオペレーティングシステムのメッセージ
バッファの間でメッセージデータのコピーはしない。む
しろ、メッセージは送信側コンピュータのアプリケーシ
ョンメモリから受信側コンピュータのアプリケーション
メモリに直接コピーされる。プロセッサに対する割り込
みは、メッセージにより指定されてもよいし、指定され
なくてもよい。割り込みの状態は、受信側コンピュータ
による指定による。このようなシステムの様々な実現方
法は、図15、97と98で示したように、保護機構の
存否、程度、詳細によって異なってくる。FIG. 16 is a flow chart describing the general operation of the system of FIG. Step 111
In, first, the sending computer determines to which address of the receiving computer to put the message.
Create a send command with this address. Step 1
At 12, the message is sent directly from the application memory to the network. On the other hand, in the conventional system shown in FIG. 14, a message is sent from the message buffer of the operating system. In step 113, the message is retrieved from the network. In step 114, the message is separated from the network interface directly into the receiving address in the message. The conventional system shown in FIG. 14 fetches a message into the operating system message buffer. In this system, FIG.
It does not copy message data between the application memory and the operating system message buffer as shown in steps 100 and 110 of FIG. Rather, the message is copied directly from the application memory of the sending computer to the application memory of the receiving computer. The interrupt to the processor may or may not be specified by the message. The interrupt status is specified by the receiving computer. Various implementations of such a system depend on the presence, extent, and details of the protection mechanism, as shown in FIGS.
【0024】このようなネットワークプロトコルとイン
タフェースは、クレー・リサーチ社(Cray Res
arch Inc.of Minnesota)のTe
ra3Dや、スタンフォード大学のDASH mach
ineのような並列マシーンに主として使われている。
グローバル・アドレス・スペースを伴ったこのような並
列マシーンは、たいてい小さなサイズ(例えば、ワード
あるいはキャッチブロック)のメッセージを使う。この
メッセージは、受信アドレスとデータを伝える。データ
は、メッセージに含まれている受信アドレスに直接記憶
される。この方法で、受信側コンピュータにおける分離
は、通常の処理として行われる。送信側コンピュータが
すべての情報を指定する。従って、メッセージ処理のこ
の方法は、センダ・ベースド・アドレッシングと呼ばれ
る。同様に、”センダ・ベースド・インターラプト”と
いう用語が、割り込み生成の方法について使われる。Such a network protocol and interface is available from Cray Res.
arch Inc. of Minnesota) Te
ra3D and DASH match of Stanford University
It is mainly used for parallel machines such as ine.
Such parallel machines with a global address space often use messages of small size (eg words or catch blocks). This message carries the receiving address and data. The data is stored directly at the receiving address contained in the message. In this way, the separation at the receiving computer is done as a normal process. The sending computer specifies all the information. Therefore, this method of message processing is called sender-based addressing. Similarly, the term "sender-based interrupt" is used for the method of interrupt generation.
【0025】このような並列マシーンはシングル・ユー
ザまたは複数の正直な関連ユーザがマシーンを使用する
ことを前提としているので、保護機構については複数の
関連プロセッサに専属的に接続されるネットワークシス
テムの内部で、あまり考慮されていない。即ち、図15
の保護機構97、98は省かれることが多い。Since such a parallel machine presupposes that a single user or a plurality of honest related users use the machine, the protection mechanism is internal to a network system exclusively connected to a plurality of related processors. So, it is not considered so much. That is, FIG.
Often, the protection mechanisms 97, 98 are omitted.
【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環境のための保護機構につ
いて十分記載されている。しかし、ハムリンについての
出版物には、どのようなネットワークに対しても、この
保護機構を適用することができる旨の記載はない。ハム
リンについての出版物は、「プライベート・マルチコン
ピュータ・インターコネクト」という特定されないネッ
トワークに対する保護機構についての記載のみであり、
この保護機構は並列コンピュータのための他の保護機構
と同様のものである。Next, an example of a system using pure sender-based addressing will be described. For example, there is a system called "Hamlyn""Hamlyn". For examples of "Hamlin" hardware, see "Hamlin: Interface for sender-based communication" Hamlyn: An.
Interface for Sender-Base
d Communication "(John Wilkes) Technical
Report HPL-OSR-92-13 Hew
lett-Packard Laboratories
(November 1992). The difficulty with publications on Hamlin is that there is little mention of the examples, but merely a high level design overview. In this system, protection mechanisms for a multi-user LAN environment are well described. However, the publication about Hamlin does not mention that this protection mechanism can be applied to any network. The publication on Hamlin only describes the protection mechanism for the unspecified network of "private multi-computer interconnects",
This protection mechanism is similar to other protection mechanisms for parallel computers.
【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の為の、純粋なセン
ダ・ベースド・アドレッシングのソフトウェア・ベース
のエミュレーションである。このシステムは、分散シス
テムのアプリケーションのために設計されたものであ
る。テッカー他は、センダ・ベースド・アドレッシング
のためのハードウェア・サポートについてはふれていな
い。As another system similar to Hamlin,
"Effective Support for Multi-Computers in ATM Networks""Effective Supp
ortfor Multicomputing on
ATM Networks "(C. Tecker et al. (C.T.
hekkath et al. ) By Technica
l Report TR93-04-03 Dept.
of Computer Science and E
ngineering, Univ. of Washi
ngton, Seattle, Washingto
n April 12, 1993). This system is a pure sender-based addressing software-based emulation for an ATM LAN. This system is designed for distributed system applications. Tecker et al. Did not mention hardware support for sender-based addressing.
【0028】純粋なセンダ・ベースド・アドレッシング
を用いるシステムでは、多くの場合、受信側コンピュー
タでデータを置こうとする位置が、受信側コンピュータ
の状態によって左右されるという問題がある。たとえ
ば、入力されたメッセージが受信側コンピュータで待ち
状態となると、待ち行列の最終位置は受信側コンピュー
タの状態によって決まる。完全なるセンダ・ベースド・
アドレッシングのシステムが待ち行列を処理するには、
送信側コンピュータは、受信側コンピュータの状態を知
っていることが必要である。送信側コンピュータは、こ
の位置のトラックを保っていなければならない。この場
合、同一の受信側コンピュータに対して複数の送信側コ
ンピュータからデータをおくることは困難になる。もし
くは、送信側コンピュータは受信側コンピュータの状態
を知るための追加メッセージを使用しなければならない
が、これは処理のアトミック性の問題を生ずる。このふ
たつのどちらを選んでも、送信側コンピュータと受信側
コンピュータの両ホストプロセッサにおける遅延時間を
増し、影響を与える。さらに、送信側コンピュータが受
信側コンピュータについてこのように知識を増すことは
保護上の問題を生む。同様に、センダ・ベースド・イン
ターラプトにも問題点がある。センダ・ベースの特徴に
より可能な割り込みが限定される。たとえば、受信側コ
ンピュータの割り込み状態が送信側コンピュータが取り
扱う状態の一つの機能によってのみ生ずるものならば、
受信側コンピュータにおいて割り込みスケジュールに優
先度を付けることが困難になる。Systems using pure sender-based addressing often suffer from the problem that the state of the receiving computer determines the position at which the receiving computer will place the data. For example, when an incoming message is queued at the receiving computer, the final position in the queue depends on the state of the receiving computer. Complete sender-based
For the addressing system to process the queue,
The sending computer needs to know the state of the receiving computer. The sending computer must keep track of this position. In this case, it becomes difficult to send data from a plurality of transmitting side computers to the same receiving side computer. Alternatively, the sending computer must use an additional message to know the state of the receiving computer, which raises the issue of atomicity of processing. Whichever of these two is selected, the delay time in both the host computer of the transmitting side computer and the receiving side computer is increased and it has an influence. Moreover, this increased knowledge of the sending computer about the receiving computer creates protection problems. Similarly, sender-based interrupts also have problems. The sender-based features limit the possible interrupts. For example, if the interrupted state of the receiving computer is caused by only one function of the states handled by the transmitting computer,
It becomes difficult for the receiving computer to prioritize the interrupt schedule.
【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)では、共通メモリ・トラフィック用のキャ
ッシュ・ブロックはセンダ・ベースド・アドレッシング
を用い、大量のデータ送信用と送受信トラフィック用に
はレシーバ・ベースド・アドレッシングを用いている。
一般的に、センダ・ベースド・アドレッシングはランダ
ム・アクセス通信に、レシーバ・ベースド・アドレッシ
ングは保護されたクロス・ドメイン通信に用いられる。Whether it is pure sender-based communication or pure receiver-based communication, in order to solve the overhead problem in the communication system, sender-based addressing is required in the new parallel machine. Many use variations of receiver-based addressing. For example, Meiko CS-2 (the Mei
ko CS-2, of Waltham, Massa
Chusetts) is a conventional transmitter / receiver system using receiver-based addressing and a remote read / receiver system using sender-based addressing.
Both light models are used. Like many machines, this CS-2 is designed for large data transfers,
It has a coprocessor for data separation and DMA to memory. Although this DMA can scatter / gather, it is often a constant stride and therefore runs short of sender-based addressing. Sender-based addressing and receiver-based addressing are combined exclusively with each other. Sender
In other new parallel computers that use base-based addressing and receiver-based addressing, these are mutually exclusive combinations. MI
T Ale Wife Machine (the MIT Alewi
fe machine) and the Stanford flash machine (the Stanford FLASH ma
In the cache), the cache block for common memory traffic uses sender-based addressing, and the receiver-based addressing is used for transmitting and receiving a large amount of data.
Generally, sender-based addressing is used for random access communication and receiver-based addressing is used for protected cross-domain communication.
【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月)に著されたシステムがあ
る。このシステムでは、送信側コンピュータは、受信側
コンピュータにあるインターラプト・ハンドラーのアド
レスをそれぞれのメッセージに付ける。このインターラ
プト・ハンドラーはメッセージを受け取ったとき、ネッ
トワークからメッセージを抽出し、所望のところにメッ
セージを配置したり処理する。このメッセージには他の
引数も含まれる。インタラプト・ハンドラの長さとアク
ションは拘束されており、インタラプト・ハンドラは、
受信側コンピュータのアドレス・スペースでホストプロ
セッサを用いて実行される。このため、新しいスレッド
のためにコンテクストをスイッチングするコストはいら
ない。このシステムの大きな難点は、少なくともハード
ウェアのサポート無しでは、シングル・ユーザ・アプリ
ケーションに限られることである。多くのユーザが使え
るようにするには、コンテクストのスイッチングが必要
となる。また、このシステムのもう一つの問題は、受信
側コンピュータにおいて、すべてのメッセージが割り込
みを必要とし、そのためプロセッサへの影響を減らせな
いという点である。Similarly, in a system in which sender-based addressing and receiver-based addressing are combined, "Active Message: Integrated Communication and Computing Mechanism""Active M
messages: A mechanism for
Integrated Communicationa
nd Computation "(" International Computer Architecture Symposium "Int'l Sy
mpodium of Computer Archit
image 256-266 T.W. von eiken et a
l. ) Work May 1992). In this system, the sending computer attaches to each message the address of the interrupt handler at the receiving computer. When the interrupt handler receives a message, it extracts the message from the network and places and processes it where desired. This message also contains other arguments. The length and action of the interrupt handler are bound, and the interrupt handler is
It is executed using the host processor in the address space of the receiving computer. Therefore, there is no cost to switch context for new threads. A major drawback of this system is that it is limited to single-user applications, at least without hardware support. Context switching is required to make it available to many users. Another problem with this system is that at the receiving computer, every message requires an interrupt, which does not reduce the impact on the processor.
【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ネットワークには適用しにくい。Yet another related technique is the message driven processor system by William Dally. References include "Architecture of Message-Driven Processors,""Architecture of a Massa."
ge-Driven Processor "(Darry,
W. J. (Dally, WJ) et al. "International Computer Architecture Symposium" Inter
national Symposium on Comp
uter Architecture (1987),
"Message Driven Processor: Integrated Multi-Computer Processing Element""The Message Drive
en Processor: An Integrat
ed Multicomputer Processi
ng Element "(Darry, WJ (Dall
y, W. J. ) Proceedings of "The minutes of the 1982 IEEE International Computer Design Conference"
of the 1982 IEEE Internet
Ional Conference On Compu
ter Design: VLSI In Compu
ters & Processors, Cambridge, Massachusetts, October 11-14, 1992),
"Fine grain concurrent computing""Fine
-Grain Current Computi
ng "(Dally, WJ) et al.," Research Direction in Computer Science, "Resea
rch Directions in Compute
r Science: AnMIT Perspect
ive Albert Meyer
er) edited by MIT Press 1991).
In a message driven processor system, a host processor different from the conventional one executes a communication action by using a built-in communication primitive without using a separate network interface. The basic problem with this system is that it lacks a separate network interface and therefore cannot be used with conventional processors. This system also provides multi-user systems, especially multi-user systems such as user-to-user level communication.
I have not touched on the protection issues in the system. Also, this system is not compatible with ATM networks due to the incompatibility of message formats.
【0032】ローカル・エリア・ネットワーク(LA
N)のようなマルチユーザ・ネットワーク環境では、通
信はグローバルなリソースであり、他のプロセッサの他
のユーザからの偶然の干渉、また故意の干渉から、ユー
ザを隔離するために、保護機構が必要となる。同様に、
ノードがマルチユーザである場合、同一プロセッサ上の
複数のユーザを互いに隔離するために、保護機構が必要
である。このようなマルチユーザ・ネットワークやマル
チユーザ・プロセッサ環境では、オーバヘッドを低くす
るための研究がほとんどされてきていない。Local Area Network (LA
In a multi-user network environment such as N), communication is a global resource and a protection mechanism is needed to isolate the user from accidental and deliberate interference from other users of other processors. Becomes Similarly,
If the node is multi-user, a protection mechanism is needed to isolate multiple users on the same processor from each other. In such a multi-user network or multi-user processor environment, little research has been done to reduce the overhead.
【0033】[0033]
【発明が解決しようとする課題】上記のような従来技術
の問題や限界を克服するために、この発明は、ダイレク
ト・デポジット・メッセージングを用いるマルチユーザ
・コンピュータのネットワークにおいて、保護機構を伴
うオーバヘッドの少ない通信のためのネットワークプロ
トコルとインタフェースを供給する。SUMMARY OF THE INVENTION In order to overcome the above-mentioned problems and limitations of the prior art, the present invention provides a network of multi-user computers using direct deposit messaging, which involves the overhead of a protection mechanism. Provides network protocols and interfaces for less communication.
【0034】[0034]
【課題を解決するための手段】この発明に係わる通信方
式は、送信側コンピュータと受信側コンピュータをネッ
トワークで接続し、受信側コンピュータはオペレーティ
ングシステムにより制御されたプロセッサに接続された
ネットワークインタフェースを有しているコンピュータ
システムの通信方式において、送信側コンピュータにお
いて、オペランドと、実行されるべきアクションの識別
子と、受信側コンピュータに記憶されている情報へのリ
ファレンスとを含んだメッセージを受信側コンピュータ
に送る送信手段と、上記ネットワークインタフェースに
おいて、メッセージを受信する受信手段と、上記ネット
ワークインタフェースにおいて、上記メッセージを受信
することにより動作する手段であって、受信側コンピュ
ータでの上記アクションの実行が許されているかを決定
する決定手段と、上記ネットワークインタフェースにお
いて、上記アクションの実行が許されている場合に動作
する手段であって、受信側コンピュータのプロセッサと
オペレーティングシステムとは別個に、上記メッセージ
のオペランドと受信側コンピュータに記憶された情報に
基づいてオペレーションを実行し、そのオペレーション
によって上記アクションを実行する実行手段を有するこ
とを特徴とする。A communication system according to the present invention connects a sending computer and a receiving computer via a network, and the receiving computer has a network interface connected to a processor controlled by an operating system. In a communication method of a computer system, the sending computer sends to the receiving computer a message including an operand, an identifier of an action to be performed, and a reference to information stored in the receiving computer. Means, receiving means for receiving a message at the network interface, and means for operating by receiving the message at the network interface, the means being operable at the receiving computer. Means for deciding whether execution of the action is permitted, and means for operating when the action of the action is permitted in the network interface, wherein the processor of the receiving computer and the operating system are separate. In addition, there is provided an executing means for executing an operation based on the operand of the message and the information stored in the receiving computer and executing the action according to the operation.
【0035】この発明に係わる通信方式において、上記
オペランドは、受信側コンピュータのメモリのアドレス
を示すものであり、上記実行手段は、上記メッセージの
アドレスと受信側コンピュータに記憶された情報に基づ
いて、受信側コンピュータのメモリの所定の位置にメッ
セージを格納するメッセージ格納手段を備えたことを特
徴とする。In the communication system according to the present invention, the operand indicates an address of the memory of the receiving computer, and the executing means is based on the address of the message and the information stored in the receiving computer. It is characterized in that a message storage means for storing a message is provided at a predetermined position in the memory of the receiving computer.
【0036】この発明に係わる通信方式において、上記
オペランドは、受信側コンピュータのメモリのアドレス
を記憶するネットワークインタフェース内のアドレスレ
ジスタを示すものであり、上記受信側コンピュータに記
憶された情報は、アドレスレジスタに記憶されたアドレ
スであり、上記通信方式は、さらに、オペランドにより
示されたアドレスレジスタからアドレスを得る手段と、
得られたアドレスに基づいて、メモリにメッセージを記
憶する手段を備えたことを特徴とする。In the communication system according to the present invention, the operand indicates an address register in the network interface which stores the address of the memory of the receiving computer, and the information stored in the receiving computer is the address register. The communication system further includes means for obtaining an address from an address register indicated by an operand,
It is characterized in that a means is provided for storing a message in the memory based on the obtained address.
【0037】この発明に係わる通信方式において、上記
オペランドは、さらに、オフセットを示すものであり、
上記通信方式は、さらに、オフセットによりアドレスレ
ジスタのアドレスを修飾する手段を備えたことを特徴と
する。In the communication system according to the present invention, the operand further indicates an offset,
The above communication method is further characterized by including means for modifying the address of the address register by the offset.
【0038】この発明に係わる通信方式において、上記
実行手段はオペランドと受信側コンピュータに記憶され
た情報を比較する比較手段と、上記比較手段の比較結果
によりメッセージが即座の実行を要求するものであると
判断される場合に、プロセッサに対して、割り込みを発
生する割り込み手段を備えたことを特徴とする。In the communication system according to the present invention, the execution means is a comparison means for comparing the operand and the information stored in the receiving computer, and the message requests immediate execution according to the comparison result of the comparison means. If it is determined that the processor is interrupted, the processor is provided with an interrupting unit for generating an interrupt.
【0039】この発明に係わる通信方式は、さらに、受
信側コンピュータに記憶された情報を更新する更新手段
を備えたことを特徴とする。The communication system according to the present invention is further characterized by further comprising updating means for updating the information stored in the receiving computer.
【0040】この発明に係わる通信方式は、さらに、上
記比較手段の比較の結果によりメッセージが即座の実行
を要求していないと判断される場合に、メッセージを待
ち行列にキューイングするキューイング手段を備えたこ
とを特徴とする。The communication system according to the present invention further comprises queuing means for queuing a message in a queue when it is judged from the result of the comparison by the comparing means that the message does not require immediate execution. It is characterized by having.
【0041】この発明に係わる通信方式において、上記
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられた、アドレスレジスタを
示すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方式はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る手段と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する手段を備えたことを特徴とする。In the communication system according to the present invention, the operand represents an offset and an address register provided in a network interface for storing the address of the memory of the receiving computer. The information stored in is the address stored in the address register, and the communication method is further based on the means for obtaining the address from the address register indicated by the operand and the value indicated by the offset from the obtained address. It is characterized by comprising means for storing a message in the memory.
【0042】この発明に係わる通信方式は、メッセージ
の送信を要求するプロセッサと、プロセッサと接続され
ており、プロセッサからの要求に基づいて、オペランド
と、所望のアクションの指示と、受信側コンピュータに
記憶された情報へのリファレンスとを含んだメッセージ
を作成するネットワークインタフェースを有する送信側
コンピュータと、オペレーティングシステムによって制
御されたプロセッサと、プロセッサに接続されたネット
ワークインタフェースを有する受信側コンピュータと、
送信側コンピュータのネットワークインタフェースと受
信側コンピュータのネットワークインタフェースを接続
し、送信側コンピュータと受信側コンピュータの間でメ
ッセージを変換するためのネットワークとを備え、上記
受信側コンピュータのネットワークインタフェースは、
メッセージを受信し、メッセージに示されたアクション
を実行するにあたり、受信側コンピュータでそのアクシ
ョンの実行が許されている場合に、オペランドと受信側
コンピュータに記憶された情報に基づいてアクションを
実行することを特徴とする。In the communication system according to the present invention, a processor that requests message transmission, and a processor that is connected to the processor, store an operand, an instruction of a desired action, and a receiver computer based on the request from the processor. A computer having a network interface that creates a message including a reference to the information provided, a processor controlled by the operating system, and a computer having a network interface connected to the processor;
A network for connecting a network interface of the sending computer and a network interface of the receiving computer, and for converting a message between the sending computer and the receiving computer, wherein the network interface of the receiving computer is
When receiving a message and performing the action indicated in the message, if the receiving computer is allowed to perform the action, perform the action based on the operand and the information stored in the receiving computer. Is characterized by.
【0043】この発明に係わる通信方式において、上記
オペランドは受信側コンピュータのメモリのアドレスを
示すものであり、上記アクションはメッセージに含まれ
ているアドレスと、受信側コンピュータに記憶されてい
る情報に基づいて、受信側コンピュータのメモリの所定
の位置にメッセージを格納するものであることを特徴と
する。In the communication system according to the present invention, the operand indicates the address of the memory of the receiving computer, and the action is based on the address contained in the message and the information stored in the receiving computer. Then, the message is stored at a predetermined position in the memory of the receiving computer.
【0044】この発明に係わる通信方式において、上記
オペランドは受信側コンピュータのメモリのアドレスを
記憶するアドレスレジスタを示すものであり、上記受信
側コンピュータに記憶された情報はアドレスレジスタに
記憶されたアドレスであり、上記受信側コンピュータは
オペランドにより示されたアドレスレジスタからアドレ
スを得る手段と、得られたアドレスに基づいてメモリに
メッセージを記憶する手段とを備えたことを特徴とす
る。In the communication system according to the present invention, the operand indicates an address register for storing the address of the memory of the receiving computer, and the information stored in the receiving computer is the address stored in the address register. The receiving computer is characterized by comprising means for obtaining an address from an address register indicated by an operand and means for storing a message in a memory based on the obtained address.
【0045】この発明に係わる通信方式において、上記
オペランドはさらにオフセットを示すものであり、上記
通信方式はさらにアドレスレジスタに記憶されたアドレ
スを、オフセットで修飾する手段を備えたことを特徴と
する。In the communication system according to the present invention, the operand further indicates an offset, and the communication system further comprises means for modifying the address stored in the address register with the offset.
【0046】この発明に係わる通信方式において、上記
受信側コンピュータは上記オペランドと受信側コンピュ
ータにより、管理された状態とを比較する比較手段と、
上記比較手段による比較結果によりメッセージが即座の
アクションを要求するものであると判断される場合に、
割り込みを生成する割り込み手段を備えたことを特徴と
する。In the communication system according to the present invention, the receiving side computer has a comparing means for comparing the operand and the state managed by the receiving side computer,
When it is determined that the message requires an immediate action based on the comparison result by the comparison means,
It is characterized in that an interrupting means for generating an interrupt is provided.
【0047】この発明に係わる通信方式は、さらに受信
側コンピュータに記憶された情報を更新する更新手段を
備えたことを特徴とする。The communication system according to the present invention is characterized by further comprising updating means for updating the information stored in the receiving computer.
【0048】この発明に係わる通信方式は、さらに上記
比較手段の比較結果により、メッセージが即座のアクシ
ョンを要求していないと判断される場合に、メッセージ
を待ち行列にキューイングするキューイング手段を備え
たことを特徴とする。The communication system according to the present invention further comprises queuing means for queuing the message in the queue when it is determined from the comparison result of the comparing means that the message does not require an immediate action. It is characterized by that.
【0049】この発明に係わる通信方式において、上記
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられたアドレスレジスタを示
すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方式はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る手段と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する手段を備えたことを特徴とする。In the communication system according to the present invention, the operand indicates an offset and an address register provided in a network interface for storing the address of the memory of the receiving computer. The stored information is the address stored in the address register, and the communication method further includes means for obtaining the address from the address register indicated by the operand and memory based on the value indicated by the offset from the obtained address. And a means for storing a message.
【0050】この発明に係わる通信方法は、送信側コン
ピュータと受信側コンピュータをネットワークで接続
し、受信側コンピュータはオペレーティングシステムに
より制御されたプロセッサに接続されたネットワークイ
ンタフェースを有しているコンピュータシステムの通信
方法において、送信側コンピュータからネットワークを
介して受信側コンピュータへ、オペランドと、実行すべ
きアクションの指示と、受信側コンピュータに記憶され
た情報のリファレンスとを含むをメッセージを送信する
送信工程と、受信側コンピュータでメッセージを受信す
る受信工程と、受信側コンピュータにおいて、送信側コ
ンピュータから実行要求があったアクションが許可され
たものであるかを確認する確認工程と、上記確認工程に
よりアクションが実行可能であると判断される場合に、
プロセッサとオペレーティングシステムとは別個に、メ
ッセージのオペランドと受信側コンピュータに記憶され
た情報とに基づいて受信側コンピュータにおいてアクシ
ョンを実行する実行工程とを備えたことを特徴とする。The communication method according to the present invention is a communication of a computer system in which a sender computer and a receiver computer are connected by a network, and the receiver computer has a network interface connected to a processor controlled by an operating system. A method for transmitting a message from a sending computer to a receiving computer over a network, the message including operands, an instruction of an action to be performed, and a reference to information stored in the receiving computer; The receiving computer receives the message, the receiving computer confirms whether the action requested by the transmitting computer is permitted, and the above-mentioned confirming action is executed. If it is determined that possible,
It is characterized in that the processor and the operating system are separately provided with an execution step of executing an action in the receiving computer based on the operand of the message and the information stored in the receiving computer.
【0051】この発明に係わる通信方法において、上記
オペランドは受信側コンピュータのメモリのアドレスを
示すものであり、上記実行工程は、メッセージのアドレ
スと受信側コンピュータに記憶された情報に基づいて、
受信側コンピュータのメモリの所定の位置にメッセージ
を格納するメッセージ格納工程を備えたことを特徴とす
る。In the communication method according to the present invention, the operand indicates the address of the memory of the receiving computer, and the execution step is based on the address of the message and the information stored in the receiving computer.
It is characterized by comprising a message storing step of storing the message in a predetermined position of the memory of the receiving computer.
【0052】この発明に係わる通信方法において、上記
オペランドは、受信側コンピュータのメモリのアドレス
を記憶するネットワークインタフェース内のアドレスレ
ジスタを示すものであり、上記受信側コンピュータに記
憶された情報は、アドレスレジスタに記憶されたアドレ
スであり、上記通信方法は、さらに、オペランドにより
示されたアドレスレジスタからアドレスを得る工程と、
得られたアドレスに基づいて、メモリにメッセージを記
憶する工程を備えたことを特徴とする。In the communication method according to the present invention, the operand indicates an address register in the network interface that stores the address of the memory of the receiving computer, and the information stored in the receiving computer is the address register. Stored in the address register, the communication method further comprising obtaining an address from an address register indicated by an operand,
The method is characterized in that a step of storing a message in a memory based on the obtained address is provided.
【0053】この発明に係わる通信方法において、上記
オペランドは、さらに、オフセットを示すものであり、
上記通信方法は、さらに、オフセットによりアドレスレ
ジスタのアドレスを修飾する工程を備えたことを特徴と
する。In the communication method according to the present invention, the operand further indicates an offset,
The above communication method is characterized by further comprising the step of modifying the address of the address register with the offset.
【0054】この発明に係わる通信方法において、上記
実行工程はオペランドと受信側コンピュータに記憶され
た情報を比較する比較工程と、上記比較工程の比較結果
によりメッセージが即座の実行を要求するものである場
合に、プロセッサに対して、割り込みを発生する割り込
み工程を備えたことを特徴とする。In the communication method according to the present invention, the execution step is a comparison step for comparing the operand and the information stored in the receiving computer, and the message requires immediate execution according to the comparison result of the comparison step. In this case, an interrupt process for generating an interrupt to the processor is provided.
【0055】この発明に係わる通信方法は、さらに、受
信側コンピュータに記憶された情報を更新する更新工程
を備えたことを特徴とする。The communication method according to the present invention is characterized by further comprising an updating step of updating the information stored in the receiving computer.
【0056】この発明に係わる通信方法は、さらに、上
記比較工程の比較の結果メッセージが即座の実行を要求
していない場合に、メッセージを待ち行列にキューイン
グするキューイング工程を備えたことを特徴とする。The communication method according to the present invention further comprises a queuing step of queuing the message in the queue when the result of the comparison in the comparison step does not require immediate execution. And
【0057】この発明に係わる通信方法において、上記
オペランドは、オフセットを示すとともに、受信側コン
ピュータのメモリのアドレスを記憶するためのネットワ
ークインタフェースに設けられたアドレスレジスタを示
すものであり、受信側コンピュータに記憶された情報
は、アドレスレジスタに記憶されたアドレスであり、上
記通信方法はさらに、オペランドにより示されたアドレ
スレジスタからアドレスを得る工程と、得られたアドレ
スからオフセットで示される値に基づいてメモリにメッ
セージを記憶する工程を備えたことを特徴とする。In the communication method according to the present invention, the operand indicates an offset and also an address register provided in the network interface for storing the address of the memory of the receiving computer. The stored information is an address stored in an address register, and the communication method further includes obtaining an address from the address register indicated by the operand and a memory based on a value indicated by an offset from the obtained address. And storing a message.
【0058】この発明に係わる通信方式は、マルチユー
ザコンピュータのネットワークの通信方式であって、送
信側コンピュータと受信側コンピュータを備え、受信側
コンピュータはプロセッサとメモリを有しており、上記
メモリの一部は上記プロセッサによって実行されるアプ
リケーションプログラムに割り当てられている通信方式
において、送信側コンピュータにおいて、オペランド
と、受信側コンピュータに記憶された情報のリファレン
スと、アプリケーションプログラムに引き渡すデータを
含むメッセージを、ネットワークを介して受信側コンピ
ュータに送信する送信手段と、受信側コンピュータにお
いて、上記メッセージの受信により動作する手段であっ
て、アプリケーションプログラムに割り当てられたメモ
リの所定の位置であって、上記所定の位置は、そのメッ
セージ以前に受信したメッセージのデータの格納位置と
は独立した位置であって、送信側コンピュータのステー
トと受信側コンピュータに記憶された情報によって決定
される所定の位置にメッセージのデータを直接格納する
直接格納手段と、受信側コンピュータにおいて、上記メ
ッセージの受信により動作する手段であって、送信側コ
ンピュータのステートと受信側コンピュータに記憶され
た情報に基づいて、プロセッサに対して条件的に割り込
みを発生する割り込み手段を備えたことを特徴とする。A communication system according to the present invention is a network communication system of multi-user computers, which comprises a transmitting side computer and a receiving side computer, and the receiving side computer has a processor and a memory. In the communication method assigned to the application program executed by the processor, the section sends a message including the operand, the reference of information stored in the receiving computer, and the data to be delivered to the application program to the network in the sending computer. Transmitting means for transmitting to the receiving side computer through the receiving side computer, and means for operating in the receiving side computer by receiving the message, at a predetermined position of the memory allocated to the application program. The predetermined position is independent of the storage position of the data of the message received before the message, and is the predetermined position determined by the state of the sending computer and the information stored in the receiving computer. Direct storing means for directly storing the message data, and means for operating in the receiving computer by receiving the message, wherein the processor is based on the state of the sending computer and the information stored in the receiving computer. On the other hand, it is characterized in that an interrupting means for conditionally generating an interrupt is provided.
【0059】この発明に係わる通信方式は、さらに、受
信側コンピュータにおいて、送信側コンピュータが情報
をアクセスすることを受信側コンピュータによって許可
されていない場合に、受信側コンピュータに記憶された
情報をアクセスすることを防止する手段を備えたことを
特徴とする。The communication system according to the present invention further accesses the information stored in the receiving computer when the receiving computer does not allow the receiving computer to access the information in the receiving computer. It is characterized in that it is provided with a means for preventing this.
【0060】この発明に係わる通信方式は、さらに、受
信側コンピュータにおいて、上記メッセージの受信によ
り動作する手段であって、送信側コンピュータのステー
トに基づいて、受信側コンピュータに記憶された情報を
変更する手段を備えたことを特徴とする。The communication system according to the present invention is a means that operates by receiving the message in the receiving computer, and changes the information stored in the receiving computer based on the state of the transmitting computer. It is characterized by having means.
【0061】この発明に係わるネットワークインタフェ
ースは、マルチユーザコンピュータのネットワークの通
信方式であって、送信側コンピュータと受信側コンピュ
ータを備え、受信側コンピュータはプロセッサとメモリ
を有しており、上記メモリの一部は上記プロセッサによ
って実行されるアプリケーションプログラムに割り当て
られており、上記送信側コンピュータは、送信側コンピ
ュータのステートを示すオペランドと、受信側コンピュ
ータに記憶された情報へのリファレンスと、アプリケー
ションプログラムへ引き渡すデータとを含むメッセージ
をネットワークを介して受信側コンピュータに送信する
ネットワークインタフェースにおいて、受信側コンピュ
ータにおいて、上記メッセージの受信により動作する手
段であって、アプリケーションプログラムに割り当てら
れたメモリの所定の位置であって、上記所定の位置は、
そのメッセージ以前に受信したメッセージのデータの格
納位置とは独立した位置であって、送信側コンピュータ
のステートと受信側コンピュータに記憶された情報とに
よって決定される所定の位置であって、そのメッセージ
以前に受信したメッセージを格納するために使われた位
置とは独立に決定される所定の位置に、メッセージのデ
ータを直接格納する直接格納手段と、上記メッセージの
受信により動作する手段であって、送信側コンピュータ
のステートと受信側コンピュータに記憶された情報とに
基づいて、プロセッサに対して条件的に割り込みを発生
する割り込み手段を備えたことを特徴とする。A network interface according to the present invention is a network communication system of multi-user computers, and includes a sending side computer and a receiving side computer, and the receiving side computer has a processor and a memory. The section is assigned to an application program executed by the processor, and the sending computer uses an operand indicating a state of the sending computer, a reference to information stored in the receiving computer, and data to be passed to the application program. In a network interface for transmitting a message including a message to a receiving computer through a network, the receiving computer is a means that operates by receiving the message. A predetermined position of the memory allocated to the application program, the predetermined position,
It is a position independent of the storage position of the data of the message received before the message, and is a predetermined position determined by the state of the sending computer and the information stored in the receiving computer, and before the message. A direct storage means for directly storing the data of the message at a predetermined position that is determined independently of the position used for storing the received message, and means for operating by receiving the message, It is characterized in that an interrupting means for conditionally generating an interrupt to the processor based on the state of the side computer and the information stored in the receiving side computer is provided.
【0062】この発明に係わるネットワークインタフェ
ースは、さらに、送信側コンピュータが情報をアクセス
することを受信側コンピュータによって許可されていな
い場合に、受信側コンピュータに記憶された情報をアク
セスすることを防止する手段を備えたことを特徴とす
る。The network interface according to the present invention further comprises means for preventing access to the information stored in the receiving computer when the sending computer is not permitted to access the information. It is characterized by having.
【0063】この発明に係わるネットワークインタフェ
ースは、さらに上記メッセージの受信により動作する手
段であって、送信側コンピュータのステートに基づい
て、受信側コンピュータに記憶された情報を変更する手
段を備えたことを特徴とする。The network interface according to the present invention further comprises means for operating upon receipt of the above message, and means for changing the information stored in the receiving computer based on the state of the transmitting computer. Characterize.
【0064】[0064]
【作用】この発明の通信方式は、実行手段が受信側コン
ピュータのプロセッサとオペレーティングシステムとは
別個に動作し、メッセージのオペランドと受信側コンピ
ュータに記憶された情報に基づいて、メッセージに指定
されたアクションを実行するので、受信側コンピュータ
のプロセッサとオペレーティングシステムに何ら負荷を
かけない。従って、オーバヘッドの少ない通信方式とな
る。According to the communication system of the present invention, the execution means operates independently of the processor and operating system of the receiving computer, and the action specified in the message is performed based on the operand of the message and the information stored in the receiving computer. Does not place any load on the receiving computer's processor and operating system. Therefore, the communication method has a small overhead.
【0065】またこの発明の通信方式は、オペランドに
受信側コンピュータのメモリアドレスを指定することに
より、送信するメッセージをオペランドで指定したメモ
リのアドレスに格納する。Further, in the communication system of the present invention, the message to be transmitted is stored in the address of the memory designated by the operand by designating the memory address of the receiving computer as the operand.
【0066】またこの発明の通信方式は、オペランドに
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。Further, in the communication system of the present invention, by designating the address register of the receiving computer as the operand, the transmitted message is stored at the address stored in the address register indicated by the operand.
【0067】またこの発明の通信方式は、オペランドに
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。Further, in the communication system of the present invention, the operand is provided with an offset value, and the message is stored in the address obtained by the modification by the offset.
【0068】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み手段により処理を即座に行なう。In the communication system of the present invention, the comparing means determines whether or not the sent message is urgent, and if the message is urgent,
The processing is immediately performed by the interruption means.
【0069】またこの発明の通信方式は、更新手段によ
り受信側コンピュータに記憶された情報を更新する。In the communication system of the present invention, the updating means updates the information stored in the receiving computer.
【0070】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。Further, in the communication system of the present invention, the message is queued in the queue when it is judged by the comparison means that the sent message does not require an emergency.
【0071】またこの発明の通信方式は、オペランドに
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。Further, in the communication system of the present invention, the offset and the address register are designated by the operand. The receiving computer adds the offset value to the address of the designated address register, and stores the message in the memory based on the obtained address.
【0072】またこの発明の通信方式は、送信側コンピ
ュータと受信側コンピュータがそれぞれプロセッサとネ
ットワークインタフェースを有しており、受信側コンピ
ュータのネットワークインタフェースは、メッセージに
示されたアクションを実行する場合にそのアクションが
受信側コンピュータで実行できるアクションであるかど
うかをチェックする。そして、実行が許可されている場
合に、メッセージのオペランドと受信側コンピュータに
記録された情報に基づいてアクションを実行する。In the communication system of the present invention, the sending computer and the receiving computer each have a processor and a network interface, and the network interface of the receiving computer executes the action indicated by the message. Check if the action is an action that can be performed on the receiving computer. Then, when the execution is permitted, the action is executed based on the operand of the message and the information recorded in the receiving computer.
【0073】またこの発明の通信方式は、オペランドに
より受信側コンピュータのメモリのアドレスを指定す
る。そしてオペランドにより指定されたアドレスに送ら
れてきたメッセージを格納する。Further, in the communication system of the present invention, the address of the memory of the receiving computer is designated by the operand. Then, the message sent to the address designated by the operand is stored.
【0074】またこの発明の通信方式は、オペランドに
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。Further, according to the communication system of the present invention, by designating the address register of the receiving computer as the operand, the transmitted message is stored at the address stored in the address register indicated by the operand.
【0075】またこの発明の通信方式は、オペランドに
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。In the communication system of the present invention, the operand is provided with an offset value, and the message is stored in the address obtained by the modification by the offset.
【0076】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み手段により処理を即座に行なう。In the communication system of the present invention, the comparing means determines whether or not the sent message is urgent, and if the message is urgent,
The processing is immediately performed by the interruption means.
【0077】またこの発明の通信方式は、更新手段によ
り受信側コンピュータに記憶された情報を更新する。Further, in the communication system of the present invention, the information stored in the receiving computer is updated by the updating means.
【0078】またこの発明の通信方式は、比較手段によ
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。Further, in the communication system of the present invention, the message is queued in the queue when it is judged by the comparison means that the sent message is not urgent.
【0079】またこの発明の通信方式は、オペランドに
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。Further, in the communication system of the present invention, the offset and the address register are designated by the operand. The receiving computer adds the offset value to the address of the designated address register, and stores the message in the memory based on the obtained address.
【0080】この発明の通信方法は、実行工程が受信側
コンピュータのプロセッサとオペレーティングシステム
とは別個に動作し、メッセージのオペランドと受信側コ
ンピュータに記憶された情報に基づいて、メッセージに
指定されたアクションを実行するので、受信側コンピュ
ータのプロセッサとオペレーティングシステムに何ら負
荷をかけない。従って、オーバヘッドの少ない通信方式
となる。In the communication method of the present invention, the execution step operates independently of the processor of the receiving computer and the operating system, and based on the operand of the message and the information stored in the receiving computer, the action specified in the message. Does not place any load on the receiving computer's processor and operating system. Therefore, the communication method has a small overhead.
【0081】またこの発明の通信方法は、オペランドに
受信側コンピュータのメモリアドレスを指定することに
より、送信するメッセージをオペランドで指定したメモ
リのアドレスに格納する。Further, in the communication method of the present invention, the memory address of the receiving computer is designated in the operand, and the message to be transmitted is stored in the memory address designated by the operand.
【0082】またこの発明の通信方法は、オペランドに
受信側コンピュータの持つアドレスレジスタを指定する
ことにより、オペランドにより示したアドレスレジスタ
に記憶されているアドレスに送信したメッセージを格納
する。In the communication method of the present invention, the address register of the receiving computer is designated as the operand to store the transmitted message at the address stored in the address register indicated by the operand.
【0083】またこの発明の通信方法は、オペランドに
オフセットの値を持たせ、オフセットによる修飾により
得られたアドレスに、メッセージを格納する。Further, according to the communication method of the present invention, the operand is provided with an offset value, and the message is stored in the address obtained by the modification by the offset.
【0084】またこの発明の通信方法は、比較工程によ
り、送られたメッセージが緊急を要するものであるかを
判断し、そのメッセージが緊急を要するものであれば、
割り込み工程により処理を即座に行なう。Further, in the communication method of the present invention, it is judged in the comparing step whether or not the message sent is urgent, and if the message is urgent,
The process is immediately performed by the interrupt process.
【0085】またこの発明の通信方法は、更新工程によ
り受信側コンピュータに記憶された情報を更新する。Further, the communication method of the present invention updates the information stored in the receiving computer in the updating step.
【0086】またこの発明の通信方法は、比較工程によ
り、送られたメッセージが緊急を要さないものであると
判断された場合に、メッセージを待ち行列にキューイン
グする。Further, the communication method of the present invention queues the message in the queue when it is judged by the comparison step that the sent message is not urgent.
【0087】またこの発明の通信方法は、オペランドに
よりオフセットとアドレスレジスタを指定する。受信側
コンピュータは指定されたアドレスレジスタのアドレス
に対して、オフセットの値を加算して、得られたアドレ
スに基づいてメッセージをメモリに格納する。Further, in the communication method of the present invention, the offset and the address register are designated by the operand. The receiving computer adds the offset value to the address of the designated address register, and stores the message in the memory based on the obtained address.
【0088】この発明の通信方式は、送信側コンピュー
タから送信されたメッセージを直接受信側コンピュータ
のメモリに格納する。そして、必要があれば割り込み手
段により、メッセージに指定されたアクションが即座に
実行される。このようにして、オーバヘッドの少ない通
信方式が得られる。According to the communication system of the present invention, the message sent from the sending computer is directly stored in the memory of the receiving computer. Then, if necessary, the action specified in the message is immediately executed by the interrupting means. In this way, a communication system with less overhead can be obtained.
【0089】またこの発明の通信方式は、権限のないア
クセスを防止することにより保護機能をもっている。The communication system of the present invention also has a protection function by preventing unauthorized access.
【0090】またこの発明の通信方式は、変更手段が送
信側コンピュータのステートにもとづいて受信側コンピ
ュータの情報を変更する。Further, in the communication system of the present invention, the changing means changes the information of the receiving computer based on the state of the transmitting computer.
【0091】この発明のネットワークインタフェース
は、アプリケーションプログラムに割り当てられたメモ
リにメッセージを直接格納するので、オーバヘッドを低
減させたシステムを得ることができる。メッセージが格
納される場所は、以前に格納されたメッセージの格納場
所からも独立性が保たれる。また、緊急性を要するメッ
セージが送られた場合には、割り込み手段により即座に
処理が実行される。Since the network interface of the present invention stores the message directly in the memory allocated to the application program, a system with reduced overhead can be obtained. The location where the message is stored is also independent of the location of the previously stored message. When an urgent message is sent, the interrupting means immediately executes the process.
【0092】この発明のネットワークインタフェース
は、権限のないアクセスを防止することにより保護機能
をもっている。The network interface of the present invention has a protection function by preventing unauthorized access.
【0093】またこの発明のネットワークインタフェー
スは、変更手段が送信側コンピュータのステートに基づ
いて、受信側コンピュータの情報を変更する。Further, in the network interface of the present invention, the changing means changes the information of the receiving computer based on the state of the transmitting computer.
【0094】[0094]
実施例1.この実施例は、ダイレクト・デポジット・メ
ッセージングによるマルチユーザ・コンピュータのネッ
トワークにおいて、オーバヘッドの低い通信のためのネ
ットワークプロトコルとインタフェースについて述べ
る。始めにこの実施例で説明する発明の特徴について述
べる。Example 1. This embodiment describes network protocols and interfaces for low overhead communication in a network of multi-user computers with direct deposit messaging. First, the features of the invention described in this embodiment will be described.
【0095】ダイレクト・デポジット・メッセージング
では直接分離するメッセージを指定する。また、例えば
メモリ中でデータをどこに置くかやホストプロセッサへ
の(条件付き)割り込みの制御のように、ダイレクト・
デポジット・メッセージングはデータや制御情報を必要
な場所に直接置くものである。このようなシステムで
は、ホストプロセッサが必要に応じて事象を分けること
で、非同期に発生する事象をコントロールする。例え
ば、データをユーザ・メモリに直接置くような、データ
の受け渡しの事象は、ホストプロセッサを使用せずに直
接処理する。ホストプロセッサが処理する必要がある事
象は、それは主に同期事象であるが、即時の処理が必要
なアクションと、ためておいて都合の良いときに処理す
ればよい遅延可能なアクションとに分けられる。このよ
うにデータと事象を分けるので、すべての事象をバイパ
スするのに必要なリソースを追加する必要はなく、ホス
トプロセッサに関連しない事象をバイパスするに十分な
だけのリソースを追加するだけでよい。In direct deposit messaging, a message to be directly separated is specified. You can also use a direct
Deposit messaging puts data and control information directly where it is needed. In such a system, the host processor divides events as necessary to control the events that occur asynchronously. Data passing events, such as placing data directly in user memory, are handled directly without the use of a host processor. The events that the host processor needs to handle are mainly synchronous events, but they are divided into actions that require immediate processing and deferrable actions that can be processed at a convenient time. . Because data and events are separated in this way, it is not necessary to add the resources needed to bypass all events, only enough resources to bypass events not associated with the host processor.
【0096】これら事象の効率的な分離を行うために、
受信側コンピュータは、送信側コンピュータからのメッ
セージの中の情報を用いてメッセージを処理する。メッ
セージに対する受信側コンピュータの応答は、この送信
側コンピュータからの情報と、受信側コンピュータに記
憶されている情報の両方による。メッセージには、送信
側コンピュータの望むオペレーションの指示を含む。つ
まり送信側コンピュータにより指定されたひとつ以上の
オペランド、また受信側コンピュータのステートについ
てのひとつ以上のオペランドが含まれる。受信側コンピ
ュータは必要なアクションが許可されているかどうか確
認し、許可されていれば、送信側コンピュータにより指
定されたオペランドと受信側コンピュータのステートに
従ってそのアクションを実行する。In order to efficiently separate these events,
The receiving computer processes the message using the information in the message from the sending computer. The response of the receiving computer to the message depends on both the information from this sending computer and the information stored on the receiving computer. The message contains instructions for the operation desired by the sending computer. That is, it includes one or more operands specified by the sending computer and one or more operands for the state of the receiving computer. The receiving computer checks whether the required action is permitted, and if so, executes the action according to the operand specified by the transmitting computer and the state of the receiving computer.
【0097】受信側コンピュータで実行されるアクショ
ンは、メッセージの受け渡しがある。その場合、ダイレ
クト、インダイレクト、ポストインクリメント、またイ
ンデックスモードといった種々のアドレス指定モードに
用いる値を、メッセージ中のオペランドが指定してい
る。マルチユーザを保護しながら、かつ、ホストプロセ
ッサやオペレーティングシステムの介入なしに、データ
はこのようなアドレスに直接書き込まれ、直接読み込ま
れる。受信側コンピュータのアクションが、条件付きで
発生される割り込みである場合もある。その場合、メッ
セージが、即時のアクションを要求しているか、または
遅延可能なアクションを要求しているかどうかを、受信
側コンピュータのステートも考慮してオペランドにより
判定する。受信側コンピュータのアクションは、ネット
ワークインタフェースにおけるアドレスレジスタと呼ば
れる特別なメモリの位置に対し起こる場合もある。この
ネットワークインタフェースは、特に、非同期転送方式
(ATM)ネットワークに有効である。そのネットワー
ク内では、メッセージは、セルと呼ばれる一定の規格の
基本的なデータユニットとされる。The action executed by the receiving computer is passing a message. In that case, the operands in the message specify values used for various addressing modes such as direct, indirect, post-increment, and index modes. Data is directly written to and read from such addresses while protecting multiple users and without the intervention of the host processor or operating system. The action of the receiving computer may also be a conditionally generated interrupt. In that case, the operand determines whether the message requires an immediate action or a deferrable action, also considering the state of the receiving computer. The actions of the receiving computer may also occur at special memory locations called address registers in the network interface. This network interface is particularly effective for an asynchronous transfer method (ATM) network. Within that network, the messages are the basic data units of certain standards called cells.
【0098】この発明のインタフェースデザインにおい
ても、マルチ・セル・フォーマットをサポートする。マ
ルチ・セル・フォーマットでは、セルのストリームの中
で、はじめのセルはコントロールセル、それに続くセル
は純粋にデータからなる。このような方法で、帯域幅を
広げている。The interface design of the present invention also supports the multi-cell format. In the multi-cell format, the first cell in the stream of cells is the control cell and the following cells are pure data. In this way, the bandwidth is expanded.
【0099】また、この発明においては、エンドポイン
ト同士の共有が自由にできるように、重複するエンドポ
イントを備える。アドレスレジスタへのアクセスは、ウ
ィンドウと呼ばれる連続したレジスタ・ブロックに限ら
れる。エンドポイントと同様、アドレスレジスタ・ウィ
ンドウは、他のアドレスレジスタ・ウィンドウとの間で
重複とネスティングを許す。これにより、アドレスレジ
スタ・ウィンドウの共有を自在に制御することができ
る。また、この発明は、送信側コンピュータの異なるレ
ジスタへのアクセスをさせないように、アドレスレジス
タの保護機構を備えている。Further, in the present invention, overlapping end points are provided so that the end points can be freely shared. Access to the address registers is limited to contiguous register blocks called windows. Like the endpoints, the address register window allows overlap and nesting with other address register windows. As a result, sharing of the address register window can be freely controlled. The present invention also includes a protection mechanism for the address register so as to prevent access to different registers of the sending computer.
【0100】また、この発明では、他にも種々の強化策
が採られている。例えば、例外処理とフロー・コントロ
ールを統合したり、コネクションとエンドポイント・テ
ーブルのページング、グローバル・レジスタの追加、ト
ランスレーション・ルックアサイド・バッファのミスを
減らすためハイブリッド・マッピングを使うといったこ
とである。Further, in the present invention, various other strengthening measures are adopted. For example, integrating exception handling and flow control, paging connection and endpoint tables, adding global registers, and using hybrid mapping to reduce translation lookaside buffer misses.
【0101】また、メッセージのオペレーション・フィ
ールドに命令ポインタを記述し、命令ポインタにより受
信側コンピュータのインストラクションメモリをアクセ
ス可能とし、命令ポインタによりアクセス可能なインス
トラクション・メモリの部分に、受信側コンピュータで
実施できるハイ・レベル・オペレーションを備えること
も可能である。その結果、送信側コンピュータは受信側
コンピュータの知識から隔離される。こうして、センダ
・ベースド・アドレッシングとレシーバ・ベースド・ア
ドレッシングのフル・スペクトラム・オペレーションが
得られる。Also, an instruction pointer is described in the operation field of the message, the instruction memory makes the instruction memory of the receiving computer accessible, and the instruction memory can be implemented in the portion of the instruction memory accessible by the instruction pointer. It is also possible to have high level operations. As a result, the sending computer is isolated from the knowledge of the receiving computer. Thus, full spectrum operation of sender-based addressing and receiver-based addressing is obtained.
【0102】このシステムによれば、送信側コンピュー
タは、メッセージに対して必要なアクションについて可
能な限りの指定をすることができる。一方、受信側コン
ピュータでは、保護のためのメッセージ受信を制御する
ことができる。また、受信側コンピュータに付随するオ
ペレーションのためにメッセージ受信を制御することが
できる。このようにすることで、通信オーバヘッドが少
なくできる。また、送信側コンピュータと受信側コンピ
ュータ双方の情報を使って、メッセージを必要な場所へ
直接分離するので、遅延時間を少なくできる。受信側コ
ンピュータのプロセッサは、同期化が必要なときだけ動
作する。つまり、割り込みはメッセージ毎に必要か否
か、ふるいにかけられる。そのメッセージが即時のアク
ションを必要とする場合のみ、割り込みが発生するの
で、プロセッサへの影響が少ない。このように、非同期
事象のコントロールと、ダイレクト・デポジット・メッ
セージングを組み合わせることにより、柔軟性が増す。
制御とデータとの分離が行えるとともに、完全な保護機
構を伴うことができ、オーバヘッドの少ないシステムを
提供する。このネットワークインタフェースとプロトコ
ルは、各種のネットワークに、また並列、分散、リアル
タイム・コンピュータにおいて、幅広く応用できる。According to this system, the sending computer can specify the necessary action for the message as much as possible. On the other hand, the receiving computer can control the reception of messages for protection. Also, message reception can be controlled for operations associated with the receiving computer. By doing so, communication overhead can be reduced. Further, since the message is directly separated into a necessary place by using the information of both the sending computer and the receiving computer, the delay time can be reduced. The receiving computer's processor operates only when synchronization is required. That is, interrupts can be screened to see if they are needed for each message. Interrupts occur only if the message requires immediate action, so the processor is less impacted. Thus, the combination of asynchronous event control and direct deposit messaging adds flexibility.
It provides a system with low overhead, which allows for the separation of control and data and can be accompanied by a complete protection mechanism. This network interface and protocol can be widely applied to various networks and in parallel, distributed, and real-time computers.
【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に貯えられ
る。The above is the features of the invention described in this embodiment, and the invention will be described more specifically with reference to the drawings. FIG. 1 is a block diagram of the communication system of this embodiment. The transmission side computer 270 and the reception side computer 272 have network interfaces 274 and 27.
Network 82 via 6. The sending computer 270 and the receiving computer 272 have the desired operating systems 278 and 280, respectively.
Processors 54 and 7 programmed to suit
Has 0. To describe the present invention, the terms endpoint and connection are used below. The invention is adaptable to many types of computer networks, and the endpoints and connections described below are not limiting of the invention. In this example, an endpoint shall refer to a contiguous area of virtual memory. The two endpoints are coupled by a virtual channel set up to communicate. This combination may be one-to-many or many-to-one multicast. That is, the combination of endpoints of 1: 1 or n: n is not limited. Applications 58 and 60
Are executed on the sending computer 270, and the applications 78 and 80 are executed on the receiving computer 272. These applications are assigned one or more endpoints. For example, endpoints 66, 68, 79, 81. The operating systems 278 and 280 have connection state information and mapping information 282 and 284. These indicate the states of the sending computer 270 and the receiving computer 272. This information is stored in 286,288 on the network interfaces 274,276.
【0104】メッセージ290は、制御情報とデータと
供に受信側コンピュータ270から送信側コンピュータ
272に送られる。制御情報は、実行される処理の指示
と、送信側コンピュータの状態を示す1つ以上のオペラ
ンドと、受信側コンピュータに記憶された情報への1つ
以上のリファレンスを含むこともある。受信側コンピュ
ータに記憶されたこの情報は、受信側コンピュータによ
り維持されるステートあるいはレシーバステートとよば
れる。The message 290 is sent from the receiving computer 270 to the transmitting computer 272 together with the control information and data. The control information may include an indication of the operation to be performed, one or more operands indicating the state of the sending computer, and one or more references to information stored in the receiving computer. This information stored in the receiving computer is called the state maintained by the receiving computer or the receiver state.
【0105】図2は、図1に示すシステムの一般的な動
作のフローチャートである。ステップ115において、
送信側コンピュータは、始めに制御情報とデータを個別
に生成し、1つのメッセージを組み立てる。図1に示す
コマンド101の例のように、”センド”コマンドはコ
ネクション識別子、データのアドレス、制御情報、送ら
れるデータの量を含む。ステップ112において、この
メッセージは、アプリケーションメモリからネットワー
クに直接送出される。ステップ113において、メッセ
ージはネットワークからネットワークインタフェースに
取り出される。ステップ116において、ネットワーク
インタフェースはメッセージを分離し、メモリに直接デ
ータを置く。そして/あるいは、場合によってはプロセ
ッサに割り込みをかける。FIG. 2 is a flow chart of the general operation of the system shown in FIG. In step 115,
The sending computer first generates control information and data separately and assembles a message. As with the example command 101 shown in FIG. 1, a "send" command includes a connection identifier, data address, control information, and the amount of data sent. In step 112, this message is sent directly from the application memory to the network. In step 113, the message is retrieved from the network to the network interface. In step 116, the network interface separates the message and places the data directly in memory. And / or interrupt the processor as the case may be.
【0106】エンドポイント66からのメッセージは、
送信側コンピュータのオペレーティングシステムとホス
トプロセッサをバイパスする。場合によってプロセッサ
70と受信側コンピュータ272に割り込みをかけるか
どうか決定するために、受信側コンピュータにおいて、
オペランドがコネクション・ステート情報と比較される
こともあるかもしれない。また、これらのオペランド
は、コネクション、ステート、マッピング情報と結びつ
くこともある。マッピング情報は、例えば、メッセージ
データを置くためのメモリ上のエンドポイント79のア
ドレスを決定する。The message from the endpoint 66 is
Bypasses the operating system and host processor of the sending computer. In order to determine whether to interrupt the processor 70 and the receiving computer 272 in some cases, at the receiving computer,
Operands may also be compared to connection state information. Also, these operands may be associated with connection, state, and mapping information. The mapping information determines, for example, the address of the endpoint 79 on the memory for storing the message data.
【0107】このように、メッセージデータをオペレー
ティングシステムのメッセージバッファからアプリケー
ションメモリへコピーする事が省かれている。さらに、
割り込みは、送信側コンピュータと受信側コンピュータ
双方の状態により、場合によって発生する。メッセージ
データが置かれるアドレスは、送信側コンピュータの状
態と受信側コンピュータの状態によって決定される。そ
のため、送信側コンピュータは、受信側コンピュータに
ついて過度の情報を持つ必要はない。In this way, copying the message data from the message buffer of the operating system to the application memory is omitted. further,
Interrupts are occasionally generated depending on the state of both the sending computer and the receiving computer. The address where the message data is placed is determined by the state of the sending computer and the state of the receiving computer. As such, the sending computer need not have undue information about the receiving computer.
【0108】このシステムは、メッセージの送信は単純
であるべきであるという考えに基づく。ところが、メッ
セージを受け取るという性質は非同期であることから、
メッセージの受信は複雑である。受信側コンピュータに
おけるメッセージの処理は、メッセージの受け渡しとメ
ッセージアクションの実行は分けるべきである。このよ
うに別々に処理することにより、メッセージが非同期に
到着しても対応できる。メッセージの受け渡しやメッセ
ージアクションの実行という事象は、受信側コンピュー
タのホストプロセッサの必要性により見分けられる。メ
ッセージの受け渡しのような事象は、ホストプロセッサ
が直接処理する必要はない。他の事象は、主に同期をと
るための事象であるが、ホストプロセッサとの対話を必
要とする。他の事象はさらにすぐに処理される必要があ
るアクションと処理が遅れてもよいアクションに分けら
れる。処理が遅れてよいものは集められて、ホストプロ
セッサにとって都合の良いときに処理される。以上のよ
うにデータと事象の分離により、追加すべきリソース
は、全ての事象をバイパスするのに必要なリソースでは
なく、ホストプロセッサに関連しない事象をバイパスす
るリソースだけでよくなる。This system is based on the idea that sending a message should be simple. However, since the nature of receiving messages is asynchronous,
Receiving messages is complicated. Message processing at the receiving computer should separate message passing and message action execution. By separately processing in this way, even if messages arrive asynchronously, they can be dealt with. The events of passing messages and executing message actions can be identified by the need of the host processor of the receiving computer. Events such as message passing do not need to be processed directly by the host processor. Other events, primarily for synchronization purposes, require interaction with the host processor. Other events are further divided into actions that need to be processed immediately and actions that may be delayed. Those that may be delayed may be collected and processed at a time convenient to the host processor. Due to the separation of data and events as described above, the resources to be added are not the resources required to bypass all events, but only the resources that bypass events not related to the host processor.
【0109】メッセージの受け渡しは、受信側コンピュ
ータ上のメモリの所望の位地にメッセージをおくことを
意味する。例えば、リモート・ライトまたは、ダイレク
ト・メモリ・アクセス(DMA)がある。メッセージア
クションは、メッセージを受信した応答としてなにか処
理をすることである。例えば、値を返すとか、読み出し
を実行するとか、データが到着したことをタスクに知ら
せるとか、スケジューラの待ち行列にあるタスクを実行
可能とするとか、(ここで、スケジューラの待ち行列と
は、プロセッサによって実行されるタスクであることを
示すデータ構造である。)または、任意の割り込み処理
の実行があげられる。具体例として、リモート・プロシ
ージャ・コール(RPC)の実行があげられる。処理を
即座に行うか、あるいは後に行うかは以下のことによ
る。 1)リモートプロセスが、アクションを要求しており、
要求したアクションの結果を待っているかどうか?(こ
れ以降、このリモートプロセスをウェイティングタスク
と呼ぶ。このウェイティングタスクは常に、送信側コン
ピュータに存在しているとは限らない。) 2)アクションの優先順位と受信側コンピュータの他の
処理の優先順位との関係はどうか? すぐに実行しなければならない処理の例は、ウェイティ
ングタスクが実行の結果を必要とする読み出し処理や、
同期処理である。または、オペレーティングシステムの
処理のような、高い優先度を持つ制御処理である。通常
の遅れてもよい処理の例は、データが到着したことをタ
スクの知らせたり、スケジューラの待ち行列にあるタス
クを処理可能とするものである。リレーテッドメッセー
ジも、すぐに処理しなくてもよいメッセージのひとつで
ある。Passing a message means placing the message at a desired location in the memory on the receiving computer. For example, there is remote write or direct memory access (DMA). A message action is to do something in response to receiving a message. For example, returning a value, performing a read, notifying a task that data has arrived, or making a task in the scheduler's queue ready for execution (where the scheduler's queue is the processor It is a data structure that indicates that it is a task that is executed by) or the execution of an arbitrary interrupt process. A specific example is the execution of a remote procedure call (RPC). Whether to perform the processing immediately or later depends on the following. 1) The remote process is requesting an action,
Are you waiting for the outcome of the requested action? (Hereinafter, this remote process is called a waiting task. This waiting task does not always exist in the sending computer.) 2) Priority of action and priority of other processing of receiving computer How is your relationship with Examples of processing that must be executed immediately include read processing in which the waiting task needs the result of execution,
This is a synchronous process. Alternatively, it is a control process having a high priority such as a process of an operating system. An example of a process that may be delayed normally is one in which a task is notified that data has arrived, or a task in a queue of a scheduler can be processed. Relayed messages are another type of message that does not have to be processed immediately.
【0110】多くの場合、システムは即座に応答する必
要がないように構成される。例えば、リモート・ノード
はメッセージアクションからの応答を待つ間、他のタス
クを実行する。例えばデータが到着したということを動
作中でないプロセスに知らせるというような、今実行さ
れていないウェイティングタスクに対してメッセージが
到着した場合でも、そのメッセージに対する応答に関す
るアクションは、遅れてしまうかもしれない。処理が遅
れるとき、後で受信側コンピュータのもっと都合の良い
ときに、処理するよう待ち行列にいれられる場合もあ
る。このように処理が遅れてもよいメッセージは、同期
事象となる。メッセージを待ち行列にいれるということ
は、メッセージを送り、キューポインタを更新すること
である。In many cases, the system is configured so that it does not need to respond immediately. For example, the remote node performs other tasks while waiting for a response from the message action. Even if a message arrives for a waiting task that is not currently executing, such as notifying an inactive process that the data has arrived, the action on the response to that message may be delayed. When processing is delayed, it may be queued for processing later at a more convenient time for the receiving computer. Messages that may be delayed in this way become synchronization events. Enqueuing a message means sending the message and updating the queue pointer.
【0111】この種のプロトコルをここではダイレクト
・デポジット・メッセージングと呼ぶ。ダイレクト・デ
ポジット・メッセージングを実施するため、メッセージ
はコネクションと制御情報とデータを含む。コネクショ
ンは、受信側コンピュータのエンドポイントを暗黙に識
別する識別子である。制御情報は、実行すべきアクショ
ンと1つ以上のオペランドを指す。各オペランドは、受
信側コンピュータにより使われるアドレスのこともあ
る。あるいは、各オペランドは、そのアクションがすぐ
に実行されるべきものか、遅れてもよいものかを決定す
るのに使うパラメータのこともある。あるいは、あるレ
シーバの状態の名前のこともある。アドレスは、エンド
ポイントのベースからのオフセットとしてコード化され
る。オフセットは、ネットワークのロジカルアドレスで
あることが必須である。ネットワークのロジカルアドレ
スを用いることにより、例えば、アドレススペースの大
きさや、仮想空間と実空間のマッピングや、ページサイ
ズなどのアドレスを決める際の細かな点を、受信側コン
ピュータと送信側コンピュータは考慮しなくてよい。こ
のため、アドレスの変更や、異種ノードの収容が容易に
なる。さらに、オフセットは、仮想アドレスまたは実ア
ドレスの全範囲を示すことが必要とされないため、より
少ないビット数でメッセージにコード化できる。This type of protocol is referred to herein as direct deposit messaging. To implement direct deposit messaging, the message contains connection and control information and data. A connection is an identifier that implicitly identifies the endpoint of the receiving computer. Control information refers to the action to be performed and one or more operands. Each operand may be an address used by the receiving computer. Alternatively, each operand may be a parameter used to determine whether the action should be performed immediately or may be delayed. Or it could be the name of the state of a receiver. The address is coded as an offset from the base of the endpoint. It is essential that the offset is a logical address of the network. By using the logical address of the network, for example, the receiving computer and the sending computer take into consideration the details of address space size, mapping between virtual space and real space, and page size. You don't have to. Therefore, it is easy to change the address and accommodate a heterogeneous node. Moreover, the offset can be encoded in the message with a smaller number of bits, as it need not indicate the full range of virtual or real addresses.
【0112】ホストプロセッサまたはオペレーティング
システムを介在せずに、単純に実施されるような単純な
アクションつまり、通常のオペレーションが提供され
る。更に複雑なアクションは、ホストプロセッサによっ
て処理される。単純なアクションとは、ここでは単純な
データの移動を意味する。つまり、エンドポイントの位
置へ読み出しあるいは書き出しをしたり、遅れてもよい
または直ちに処理をする条件付き割り込みをホストプロ
セッサに出す。単純なオペレーションとは、送信側コン
ピュータが出す直接の読み出し、書き出しのようなデー
タ転送である。送信側コンピュータは、直接の書き出し
のために、送信側コンピュータのエンドポイントのベー
スからのオフセットにより、ソースデータを指定し、受
信側の位置は受信側コンピュータのエンドポイントのベ
ースからのオフセットにより指定する。メッセージは、
受信側のオフセットとデータを含む。読み出しのために
送信側コンピュータは、受信側コンピュータへの直接書
き出しの要求を伴ったメッセージを送る。このメッセー
ジは、受信側コンピュータにおけるオフセットと、返答
のための送信側コンピュータにおけるデータを読み込む
ためのオフセットで指定する。メッセージは、コネクシ
ョンが全二重通信可能でなければ、応答用コネクション
に指示を含む。Simple actions, ie, normal operations, are provided that are simply performed without the intervention of a host processor or operating system. More complex actions are processed by the host processor. A simple action here means a simple data movement. That is, a conditional interrupt for reading or writing to the position of the end point, or processing which may be delayed or immediate is issued to the host processor. A simple operation is a data transfer such as a direct read or write issued by the sending computer. The sender specifies the source data by offset from the base of the sender's endpoint for direct writing, and the receiver's position by the offset from the base of the receiver's endpoint. . The message is
Includes offset and data on the receiving side. For reading, the sending computer sends a message with a request for a direct write to the receiving computer. This message is specified by the offset on the receiving computer and the offset for reading the data on the transmitting computer for reply. The message includes an indication in the response connection if the connection is not capable of full duplex communication.
【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は異なる必要はない。Action execution is one of the functions of the states of the receiving computer and the transmitting computer. To enable the action to be performed, the receiving computer of each connection maintains a state. In other words, the operand of the message stores information whose name is the name or obtains the address of the receiving computer. For simplicity, this state shall be stored in a register at a special address, called the "address register" here. This state is not a special register and can generally be stored in memory. Thus, a message action is an operational function specified by the sending computer. A message action is also an operation function, such as the contents of an address register, specified by an operand indicated by the state of the sending and receiving computers. Here is an example of a primitive operation that uses the states of the sending and receiving computers. (1) Generation of address 1 Direct addressing: effaddr = operand 2 Indirect addressing: effaddr = <addreg i > 3 Indexed addressing: effaddr = <addreg i > + operand (2) Register operation 1 addreg i ← operand 2 add i ← unary-op <addreg i > 3 addreg i ← <addreg i > binary-op <addreg j > i and j need not be different. (3) Conditional operation 1 if (<addreg i> compare -op operand) then generate interrupt at end 2 if (<addreg i> compare-op <addreg j>) then generate interrupt at end i and j is necessary to differ Absent.
【0114】上記(1)の「アドレスの生成」のある例
は、実効アドレス(effaddr)を計算することで
ある。実効アドレスは、データを読み書きするアドレス
である。<x>は、メモリ位置Xの内容を意味する。”
operand”は、メッセージ中のデータまたは、他
のオペランドである。メッセージオペレーションは、メ
モリに対し読み出しまたは書き込みが起きるかを制御す
る。また、メッセージオペレーションは上記プリミティ
ブ・オペレーションの選択とその実行順序を制御する。
上記(3)の「条件付きオペレーション」は、いかなる
ときでも起きるが、割り込みは複合したオペレーション
の最後に起きることが望ましい。これらの基本的なプリ
ミティブ・オペレーションを結合することにより、各種
の自由な複合オペレーションを作成できる。例えば、ポ
ストインクリメントを伴った間接書き込みは、上記
(2)のレジスタオペレーションを伴った間接処理によ
り作成することができる。 <addregi >←MSG addregi ←<addregi >+operand 最後のステップはaddregi ←<addregi >
+<addregj >でもよい。One example of the "address generation" in the above (1) is to calculate an effective address (effaddr). The effective address is an address for reading and writing data. <X> means the contents of memory location X. ”
"operand" is data in the message or another operand. The message operation controls whether a read or write occurs in the memory. The message operation controls the selection of the primitive operation and its execution order. To do.
The “conditional operation” of (3) above occurs at any time, but it is desirable that the interrupt occurs at the end of the combined operation. By combining these basic primitive operations, you can create a variety of free compound operations. For example, the indirect write with post-increment can be created by the indirect process with the register operation of (2) above. <Addreg i > ← MSG addreg i ← <addreg i > + operand The last step is addreg i ← <addreg i >
+ <Addreg j > may be used.
【0115】セルを単位として考えると、この複合オペ
レーションは増加する値がスライドに等しいDMAと等
価である。しかし、変化するオペランドまたは<add
regi >は、さまざまなスライドを生じる。他の例と
して、プライオリティを伴ったキューイングや割り込み
は次のような命令の組み合わせでつくることができる。Considering cells as a unit, this composite operation is equivalent to a DMA whose increasing value is equal to the slide. But changing operands or <add
reg i > results in various slides. As another example, priority queuing and interrupts can be created by the following instruction combinations.
【0116】 <addregi >←MSG addregp ←<addregp >+<addregs > if(operand greater than<addregj >) generate interrupt at end addregi ←<addregi >bitwise−or operand[0116] <addreg i> ← MSG addreg p ← <addreg p> + <addreg s> if (operand greater than <addreg j>) generate interrupt at end addreg i ← <addreg i> bitwise-or operand
【0117】”operand”がメッセージの優先順
位を示す場合、addregp はこの優先順位のメッセ
ージが加えられる待ち行列の終わりを示す。addre
gsは、MSGのサイズを含む。addregi は、受
信側コンピュータの優先レベルを持つ。ここで、p,
i,sは、それぞれ異なった値を持つ。p,i,sは、
オペランドやレジスタのインデックスとして用いられる
ものであり、メッセージによって指定されるものであ
る。このプライオリティを伴ったキューイングのような
複雑な複合オペレーションは、多数の複合オペレーショ
ンからなる。例えば、プライオリティを伴ったキューイ
ングを実行するためには、受信側コンピュータがメッセ
ージごとにひとつのレジスタオペレーションを実行する
場合、2つの複合オペレーションメッセージが必要であ
る。If "operand" indicates the priority of the message, addreg p indicates the end of the queue to which the message of this priority is added. addre
g s includes the size of MSG. addreg i has the priority level of the receiving computer. Where p,
i and s have different values. p, i, s are
It is used as an index of operands and registers, and is specified by the message. Complex compound operations like queuing with this priority consist of a number of compound operations. For example, to perform priority queuing, two complex operation messages are required if the receiving computer performs one register operation per message.
【0118】最後の例をあげる。いくつかの異なった待
ち行列のひとつに、割り込みを発生しないでメッセージ
を加えるようにしたい場合がある。この場合は、空では
ない待ち行列のビットベクタを維持管理する。この機構
は、一般的に優先順位に基づく割り込みと同じ方法で実
施することができるが、addregi の最上位ビット
を使って、割り込みをブロックする。この実施方法は、
符号なしの比較をすることとaddregi のビットよ
り少ない待ち行列が存在していることの両方を前提して
いる。addregi のビットより少ない待ち行列が存
在していることという2番目の前提は、マルチプル・ア
ドレスレジスタを使うことによって制限をゆるやかにす
ることができる。オペレーティングシステム内の特定の
エンドポイント内の待ち行列にメッセージをつけ加えて
もよい。この場合は、オペレーティングシステムによる
遅延アクションの実行となる。A final example will be given. You may want to add a message to one of several different queues without interrupting it. In this case, maintain a non-empty queue bit vector. This mechanism can generally be implemented in the same manner as priority based interrupts, but the most significant bit of addreg i is used to block the interrupt. This method of implementation is
It assumes both unsigned comparisons and that there are fewer queues than addreg i bits. The second assumption that there are fewer queues than addreg i bits can be relaxed by using multiple address registers. The message may be added to a queue within a particular endpoint within the operating system. In this case, the deferred action is executed by the operating system.
【0119】他の例として、フェッチ・アンド・インク
リメント、リード・モディファイ・ライト、コンペア・
アンド・スワップのような様々な不可分な一体化された
オペレーションは、宛先位置のための1つ以上のアドレ
スレジスタを使用するとともに、増加と比較のためのレ
ジスタオペレーションを行うことによって実施できる。
バリア・シンクロナイゼーションもまたこの方法で実施
できる。プロセスがバリア・ポイントに達したとき、”
バリア・セット”で全てのプロセスの指定されたアドレ
スレジスタにおけるビットのトグル動作をする。それか
ら、全てのビットがセットされた(又は、クリアされ
た)時に、条件付き割り込みのためにウェイトする。As another example, fetch and increment, read modify write, compare
Various atomic operations, such as AND-SWAP, can be performed by using one or more address registers for the destination location and performing register operations for increment and compare.
Barrier synchronization can also be performed in this way. When the process reaches the barrier point,
Toggle the bits in the specified address registers of all processes with "barrier set." Then wait for a conditional interrupt when all bits are set (or cleared).
【0120】この実施例のプロトコルは、少なくとも次
の利益をもたらす。第1に、この実施例のプロトコル
は、送信側コンピュータのステート、受信側コンピュー
タのステートとその双方のオペレーションの組み合わせ
がとても強力になる。この実施例のプロトコルは、従来
のレシーバ・ベースド・アドレッシングとセンダ・ベー
スド・アドレッシングの両方の全機能をもうらしたもの
である。この実施例のプロトコルは、送信側コンピュー
タが知っていることについての種々の要求を伝送でき
る。または、送信側コンピュータと受信側コンピュータ
間の知識の分離についての種々の要求を伝送できる。ま
た、この実施例のプロトコルは、送信側コンピュータと
受信側コンピュータの入り交じった情報を、メッセージ
毎に変更することができる。間接的オペレーションを用
いることにより、送信側コンピュータが受信側コンピュ
ータについての過度の知識を持ちすぎるという欠点をな
くし、このように、送信側コンピュータを受信側コンピ
ュータから隔離することにより保護機構を付加してい
る。なぜならば、実際のストレージ・アドレスは、送信
側コンピュータが知らないアドレスであり、受信側コン
ピュータのアドレス機能の一部により決定されるもので
あるかもしれない。同様に割り込みの状態は、送信側コ
ンピュータがその存在を知らないプロセスによって(メ
ッセージを介して)生成される受信側コンピュータの情
報の一部であるかもしれない。以下に述べるように、送
信側コンピュータがアクセスしないようにレジスタを保
護する機構を用意してもよい。この保護機構は、送信側
コンピュータに対して例えば、受信側コンピュータのア
ドレスレジスタに対しリード、ライト、あるいは指定さ
れた受信側コンピュータのステートの内容を設定したり
変更することを禁止するものである。The protocol of this example provides at least the following benefits. First, the protocol of this embodiment makes the state of the sending computer, the state of the receiving computer and the combination of both operations very powerful. The protocol of this embodiment has the full functionality of both conventional receiver-based addressing and sender-based addressing. The protocol of this embodiment can carry various requests of what the sending computer knows. Alternatively, various requests for knowledge separation between the sending and receiving computers can be transmitted. Further, the protocol of this embodiment can change the information mixed between the sending computer and the receiving computer for each message. The use of indirect operations eliminates the drawback that the sending computer has too much knowledge about the receiving computer, thus adding a protection mechanism by isolating the sending computer from the receiving computer. There is. The actual storage address is an address that the sending computer does not know and may be determined by some of the address functions of the receiving computer. Similarly, the interrupted state may be part of the receiving computer's information (via a message) generated by a process that the sending computer does not know its existence. A mechanism may be provided to protect the register from being accessed by the sending computer, as described below. This protection mechanism prohibits the sending computer, for example, from reading, writing, or setting or changing the state content of the designated receiving computer to the address register of the receiving computer.
【0121】第2に、この実施例のプロトコルにより、
リアルタイム・システムで重要な予測性を増すことがで
きる。適切に定議されたポイントで割り込みを制限する
ことにより予測性を増すことができる。この実施例のプ
ロトコルにより、非同期性と不確実性が非同期ネットワ
ークの事象から除かれる。第3に、この実施例のプロト
コルにより、アクション・ハンドリングは、より効果的
になり、オーバヘッドを減らすことができる。なぜな
ら、割り込みのオーバヘッドが、多数のアクションで少
しずつ償却されるからである。上記プロトコルにポーリ
ングを組み合わせて、ハイブリッド・インターラプト・
ポーリング方式を使うようにしてもよい。。Secondly, according to the protocol of this embodiment,
Real-time systems can add significant predictability. Predictability can be increased by limiting interrupts at well-coordinated points. The protocol of this embodiment removes asynchrony and uncertainty from the events of an asynchronous network. Thirdly, the protocol of this embodiment allows the action handling to be more effective and reduce the overhead. This is because the interrupt overhead is gradually amortized over many actions. Combining polling with the above protocol, hybrid interrupt
A polling method may be used. .
【0122】最後に、この実施例のプロトコルにより、
更に複雑なオペレーションは、マルチプル・コマンド・
メッセージ・オペレーションの結果を組み合わせてつく
ることができる。以上のように、この実施例のプロトコ
ルは、エンドポイントとコネクションをベースにしたプ
ロトコルである。エンドポイントとコネクションはカー
ネル・コールで配置、再配置される。エンドポイントは
ページ単位に再配置されるのが望ましい。このように、
ホストの仮想メモリにおけるページ・プロテクションは
エンドポイントに使われる。コネクションは、同じノー
ドのエンドポイントを含むどのエンドポイントの組み合
わせの間に確立できる。コネクションを確立するプロト
コルは、バークレーUNIXソケット(Barkele
y UNIX sockets)において用いられるセ
ッション確立によく似ている。カーネルのエンドポイン
トとコネクションで使われるブート・タイムのようなア
ウト・オブ・バンド・メカニズムを準備し、このアウト
・オブ・バンド・メカニズムにより、受信側コンピュー
タにおけるエンドポイントとコネクションの配置を行
う。Finally, according to the protocol of this embodiment,
More complex operations include multiple commands
It can be created by combining the results of message operations. As described above, the protocol of this embodiment is based on the endpoint and the connection. Endpoints and connections are placed and relocated by kernel calls. It is desirable to relocate the endpoint on a page-by-page basis. in this way,
Page protection in host virtual memory is used for endpoints. A connection can be established between any combination of endpoints, including endpoints on the same node. The protocol for establishing the connection is Berkeley UNIX socket (Barkere).
It is very similar to the session establishment used in y UNIX sockets). Prepare an out-of-band mechanism, such as boot time, used for kernel endpoints and connections, and use this out-of-band mechanism to arrange the endpoints and connections on the receiving computer.
【0123】ひとつのエンドポイントは、複数のオリジ
ネーティング・コネクションそして/または複数のター
ミネーティング・コネクションを持つ場合もある。コネ
クションは、シンプレックスまたはディユープレック
ス、またはマルチキャストの場合もある。ひとつのエン
ドポイントから始まる複数のコネクションまたは、ひと
つのエンドポイントで終わる複数のコネクションは、同
じマッピング情報を共有する。しかしながら、エンドポ
イントは、より複雑なプロテクション・パターンを形成
するために重複させるか、あるいはネストすることがで
きる。例えば、コネクションAは、仮想アドレスの領域
(vl ,vu )で第1のエンドポイントを作ることがで
きる。コネクションBは、第2のエンドポイントを作る
ことができる。第2のエンドポイントは、コネクション
Aの第1のエンドポイントの領域内での一部分である。
コネクションAはコネクションBのエンドポイント全て
にアクセスできるが、コネクションBは、コネクション
Aのエンドポイントの一部分だけをアクセスできる。ま
たは、コネクションBはコネクションAの領域(vl ,
vu )に部分的にオーバラップしたエンドポイントを作
ってもよい。こうして、一方のエンドポイントがもう一
方のエンドポイント全てに影響を与えることなく、共有
する限られた領域のみをコネクションAとコネクション
Bがともにアクセスできる。あるいは、異なるタイプの
ページ保護機構を持つ仮想アドレス領域にエンドポイン
トの物理ページをマッピングすることにより、異なる保
護機構を実現することもできる。An endpoint may have multiple originating connections and / or multiple terminating connections. The connection may be simplex or duplex, or multicast. Multiple connections starting from one endpoint or ending at one endpoint share the same mapping information. However, endpoints can be overlapping or nested to form more complex protection patterns. For example, connection A can create a first endpoint in the virtual address domain (v l , v u ). Connection B can create a second endpoint. The second endpoint is a portion of the connection A within the domain of the first endpoint.
Connection A can access all of the endpoints of connection B, but connection B can access only part of the endpoints of connection A. Alternatively, the connection B is the area of the connection A (v l ,
You may create endpoints that partially overlap v u ). Thus, both the connection A and the connection B can access only the limited shared area without the one end point affecting all the other end points. Alternatively, different protection mechanisms can be implemented by mapping the physical pages of the endpoints to virtual address areas with different types of page protection mechanisms.
【0124】ネットワークの保護は、次のように提供さ
れる。アウト・ゴーイング・コネクションを経たネット
ワークへのアクセスは、カーネルにより維持されるコネ
クションごとのステートにより制御される。ネットワー
クからのメッセージの到着は、受信側コンピュータのカ
ーネルにより維持される受信側コンピュータのコネクシ
ョン・ステートで許可するか否かの判定をする。インカ
ミング・コネクションからメッセージを受け取ることの
許可は、関連づけられたエンドポイントにそのメッセー
ジを書き込むことを意味する。しかし、受信側のアドレ
スは、適切なエンドポイントのアドレスにマップされな
ければならない。このオペレーションは、ページごとの
アクセス権によって許可される。保護機構は、受信側コ
ンピュータが、要求されたオペレーションと受信側コン
ピュータで使われるアドレスが適切であることを確かめ
ることによりシステムに提供されるようにしてもよい。
例えば、メモリ領域を、各アプリケーションに対して指
定する。そしてデータが書かれるアドレスが、その指定
された領域にない場合、アクセスは拒否される。Network protection is provided as follows. Access to the network through out-going connections is controlled by the per-connection state maintained by the kernel. The arrival of a message from the network determines whether to allow it in the receiving computer's connection state maintained by the receiving computer's kernel. Permission to receive a message from an incoming connection means to write the message to the associated endpoint. However, the recipient's address must be mapped to the appropriate endpoint's address. This operation is allowed by page-wise access rights. A protection mechanism may be provided to the system by the receiving computer verifying that the requested operation and the address used by the receiving computer are appropriate.
For example, a memory area is designated for each application. If the address where the data is written is not in the specified area, access is denied.
【0125】次にATMネットワークにおけるこのシス
テムの実施例について述べる。以下は一例であり、この
発明は他のネットワークに対しては異なる方法で実施さ
れうるものである。図3は、この実施例における53バ
イトのATMセル120のフォーマットの一例である。
もっとも単純なフォーマットでは、セルはデータと標準
のネットワークヘッダと他の情報を伴った制御情報を含
む。図のフォーマットにおけるデータ・フィールドのサ
イズは、単なる一例であり、この発明を限定するもので
はない。図3において、ATMヘッダ・フィールド13
2は、リンク・ルーティングとトラフィック・コントロ
ール・インフォメーションを含む。リンク・ルーティン
グは、受信側コンピュータを間接的に指定する。このA
TMヘッダ・フィールドは、5バイトであり、標準のA
TMスイッチによる処理に適する。以下に説明するコネ
クション・ナンバーは、図示してないがこのヘッダの中
のバーチャルチャネル/バーチャル・パス・アイデンテ
ィファイア(VCI/VPI)・フィールドにエンコー
ドされる。Next, an embodiment of this system in the ATM network will be described. The following is an example and the invention may be implemented in different ways for other networks. FIG. 3 shows an example of the format of the 53-byte ATM cell 120 in this embodiment.
In its simplest format, a cell contains data and control information along with a standard network header and other information. The size of the data fields in the format of the diagram is merely an example and is not a limitation of the present invention. In FIG. 3, ATM header field 13
2 includes link routing and traffic control information. Link routing indirectly specifies the receiving computer. This A
The TM header field is 5 bytes and is standard A
Suitable for processing by TM switch. Although not shown, the connection number described below is encoded in the virtual channel / virtual path identifier (VCI / VPI) field in this header.
【0126】データ・フィールド122は、32バイト
のフィールドである。また、以下で述べるセル120毎
に付けられたコントロール・データは16バイトであ
る。データ・フィールド122の大きさは、32バイト
のメモリ・ブロック・サイズとキャッシュ・ブロック・
サイズに一致している。これにより、実行速度が速くな
りハードウェア化が効果的となる。以下に述べるマスク
・フィールドは、受信側コンピュータにおいて不必要な
メッセージ・データを除くために使う。2バイトのサイ
クル・リダンダンシイ・チェック(CRC)・フィール
ド124が、データ・フィールド122に対応して、セ
ル120の最後に用意されている場合もある。このフィ
ールドは、誤ったメッセージが正しいメッセージとして
みなされてしまうのを防ぐために使う。他の2バイトは
使われていない。The data field 122 is a 32-byte field. The control data attached to each cell 120 described below is 16 bytes. The size of data field 122 is 32 bytes memory block size and cache block size.
It matches the size. As a result, the execution speed becomes faster and the hardware implementation becomes effective. The mask field described below is used to remove unnecessary message data in the receiving computer. A 2-byte Cycle Redundancy Check (CRC) field 124 may be provided at the end of the cell 120, corresponding to the data field 122. This field is used to prevent false messages from being considered as valid messages. The other 2 bytes are unused.
【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は、セル全
体が到着するのを待たずにコントロール情報のデコーデ
ィングを始められるように、先行するコントロール・フ
ィールドのシンプル・チェック・サムを保持している。The control information is an operation of 4 bytes.
The field 130 is included. The operation field 130 specifies the type of operation performed on the receiving computer. The operation field 130 includes a mask field 131 and an opcode field 129. Opcode field 129 specifies the operation. The mask field is used to block the reading and writing of a 4-byte word in the block when the data field 122 is blocked. That is, bit i of the mask field indicates whether data word i is read or written. This function is useful for updating a location within a block with the value of the location adjacent to that location, for example without changing the variable. A 4-byte operand field 126 is prepared. The operand specified by operand field 126 is a 32-bit direct source operand (offset or data). On the other hand, the destination operand is a 4-byte index field 1
3 separate registers encoded at 28
Specified by index. These three index fields are indicated by 121, 123 and 125 in the figure. The check field 127 holds a simple checksum of the preceding control field so that control information decoding can be started without waiting for the entire cell to arrive.
【0128】リモート・ノードに対するリード・リクエ
ストのために、データ・フィールド122は、ライト・
メッセージの返答のためのコントロール・フィールドを
含む。複数のセルを用いたマルチプルセルメッセージフ
ォーマットが、ブロック転送のために用いられる。この
フォーマットにおける最初のセルは、図3で示したライ
ト・フォーマットをもつ”コントロール”セルである。
これに続くセルは、標準のAAL5(ATM アダプシ
ョン・レイヤー5、ATMのシグナリング標準)セルで
ある。最後のAAL5セルにおけるセル・バウンダリと
長さとCRCの混乱を避けるため、全ブロック転送は1
6バイトずつに区切って行う。For read requests to remote nodes, the data field 122 is write
Contains control fields for replying to messages. A multiple cell message format with multiple cells is used for block transfers. The first cell in this format is the "control" cell with the write format shown in FIG.
The cells that follow are standard AAL5 (ATM adaptation layer 5, ATM signaling standard) cells. All block transfers are 1 to avoid confusion of cell boundary, length and CRC in the last AAL5 cell.
Divide into 6 bytes each.
【0129】以上で述べたように、この実施例の通信シ
ステムは、直接メッセージを置くモデルであることを特
徴としており、このモデルは、エンドポイントとコネク
ションの使用に基づくものである。即ち、アプリケーシ
ョンがエンドポイントを割り付け、エンドポイント間の
コネクションを設定し、それからこれらのコネクション
介してメッセージを送る。このような直接メッセージを
格納するオペレーションをサポートするために各ノード
のオペレーティングシステムは、次のようなデータスト
ラクチャーを維持管理する。後述する図5で詳しく説明
するように、高速オペレーションを可能にするために、
ハードウェア上では、これらのデータストラクチャーの
いくつか又は全てをキャッシュ化するようにしても良
い。As described above, the communication system of this embodiment is characterized in that it is a model for directly placing a message, and this model is based on the use of endpoints and connections. That is, the application allocates endpoints, sets up connections between the endpoints, and then sends messages over these connections. In order to support the operation of storing such a direct message, the operating system of each node maintains the following data structure. In order to enable high speed operation, as described in detail in FIG. 5 described later,
On hardware, some or all of these data structures may be cached.
【0130】エンドポイント・テーブルは、そのノード
(例えば送信側コンピュータ)における各エンドポイン
トのためのエントリを有している。エンドポイント・テ
ーブルは、エンドポイント番号で検索できる。このテー
ブルの各エントリは、エンドポイントのベースメモリア
ドレス、エンドポイント・サイズ、仮想から物理へのマ
ッピング情報、アクセス情報を記憶する。エンドポイン
トのメモリアドレスとは、例えば受信側コンピュータ2
72ではメモリの79と81のスタートアドレスのこと
である。アクセス情報とは、例えばエンドポイントがプ
ライベートメモリ、リード・オンリメモリ又は、シェア
ードメモリのいずれであるかを示す。また、テーブルの
各エントリは、エンドポイントに対する利用可能な全て
のコネクションとエンドポイントに付随するプロセスを
記憶する。コネクション・テーブルは、そのノードで始
まるかあるいは終わる各コネクションに対応するエント
リを含み、コネクション・ナンバーで検索できる。この
テーブルの各エントリは、エンドポイント番号、アドレ
スレジスタのベースと領域、コネクション・ステート情
報と応答コネクション情報を記憶する。The endpoint table has an entry for each endpoint at that node (eg, the sending computer). The endpoint table can be searched by endpoint number. Each entry in this table stores the base memory address of the endpoint, the endpoint size, virtual to physical mapping information, and access information. The memory address of the endpoint is, for example, the receiving computer
At 72, the start addresses of memory 79 and 81 are shown. The access information indicates, for example, whether the endpoint is a private memory, a read-only memory, or a shared memory. Each entry in the table also stores all available connections to the endpoint and the processes associated with the endpoint. The connection table contains an entry for each connection that begins or ends at that node and can be searched by connection number. Each entry in this table stores the endpoint number, the base and area of the address register, the connection state information and the response connection information.
【0131】ノード・アドレス・テーブルもまた使われ
る。ノードの各エントリは、リモート・ノードの名前と
コネクション・ナンバーを含む。コネクション・ナンバ
ーは、リモート・ノードのオペレーティングシステムに
対する直接あるいは間接のコネクションのためのもので
ある。テーブルに対するインデックスは、各ノードに対
し、ユニークであり、かつグローバルな識別子である。
このテーブルは、コネクションを設定する際に、リモー
ト・ノードとのコンタクトに使われる。このテーブル
は、例えばインターネット・プロトコル(IP)のアド
レスのような、ある他のシグナリング・メカニズムを経
由するためのネーミング情報を含んでも良い。データ
は、エンドポイントに送られる。割り込みは、オペレー
ティングシステムに送られる。特に、データはエンドポ
イントに付随するプロセスに送られるのではなく、コネ
クションで指定された受信側コンピュータのエンドポイ
ントに送られる。割り込みは、指定されたプロセスに送
られるのではなく、受信側コンピュータで動いているオ
ペレーティングシステムに送られる。その後、オペレー
ティングシステムは、割り込みを指定されたプロセッサ
に送る。A node address table is also used. Each entry in the node contains the name of the remote node and the connection number. The connection number is for a direct or indirect connection to the remote node's operating system. The index to the table is a unique and global identifier for each node.
This table is used to contact the remote node when setting up a connection. The table may include naming information for going through some other signaling mechanism, such as an Internet Protocol (IP) address. The data is sent to the endpoint. The interrupt is sent to the operating system. In particular, the data is not sent to the process associated with the endpoint, but to the endpoint of the receiving computer specified in the connection. The interrupt is not sent to the specified process, but to the operating system running on the receiving computer. The operating system then sends an interrupt to the designated processor.
【0132】このようなシステムのオペレーションの流
れを、図8のフローチャートに示す。ステップ200に
おいて、送信側コンピュータ270は、最初に送信側コ
ンピュータの仮想アドレス空間にエンドポイントを割り
付ける。エンドポイント・テーブルであいているスロッ
トを見つけるか、作るかし、あいているスロットにエン
ドポイントのベースアドレスを書き込み、仮想から物理
へのマッピング情報を書き込む。ステップ201におい
て、あるコネクションを経由して、送信側コンピュータ
は、意図する受信側コンピュータとコンタクトを取る。
あるコネクションとは、トランスポート・コントロール
・プロトコル/インターネット・プロトコル(TCP/
IP)コネクションのような専用のオペレーティングシ
ステムのコネクション、あるいはその他のネットワーク
である。そして、送信側コンピュータは、受信側コンピ
ュータに対して適当なエンドポイント・バッファ・サイ
ズでコネクションを設定するように要求を出す。ステッ
プ203において、受信側コンピュータは、その仮想ア
ドレス空間にその要求されたエンドポイント・バッファ
・サイズのバッファ領域を割り付ける。そして、エンド
ポイント・テーブルの空きスロットを見つけるか、作る
かし、バッファ・ベース・アドレスと仮想から物理への
マッピング情報を書き込む。それから、受信側コンピュ
ータは、コネクションを認可する。マルチキャスト・コ
ネクションにおいては、マルチキャストの対象となった
送信側コンピュータと受信側コンピュータの各組で上記
処理が繰り返して行われる。ステップ204において、
送信側コンピュータからエンドポイントのベースからの
オフセットを含むメッセージが、設定されたコネクショ
ンを介して受信側コンピュータへ送られる。The operation flow of such a system is shown in the flowchart of FIG. In step 200, the sending computer 270 first allocates an endpoint in the sending computer's virtual address space. Find or create a matching slot in the endpoint table, write the base address of the endpoint into the open slot, and write the virtual to physical mapping information. In step 201, the sending computer contacts the intended receiving computer via a connection.
A connection is a Transport Control Protocol / Internet Protocol (TCP /
A dedicated operating system connection, such as an IP) connection, or other network. The sending computer then issues a request to the receiving computer to set up the connection with the appropriate endpoint buffer size. In step 203, the receiving computer allocates in its virtual address space a buffer area of the requested endpoint buffer size. Then, it finds or creates an empty slot in the endpoint table, and writes the buffer base address and virtual-to-physical mapping information. The receiving computer then authorizes the connection. In a multicast connection, the above processing is repeatedly performed in each set of the sending-side computer and the receiving-side computer that are the targets of multicast. In step 204,
A message containing the offset from the base of the endpoint is sent from the sending computer to the receiving computer via the established connection.
【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)からすでに提供可能とされて
いる。This protocol may be implemented on hardware other than special purpose hardware. So this protocol is
It can be realized by using a commercially available computer and a computer program for network interface. For example, two DEC Station 5000 /
240 Workstation (Digital Equ
It can be carried out using the equipment Corporation). Each workstation has a Fore System
It has an ems TCA-100 ATM network interface and is connected to the "TURBOchannel" I / O bus, and the two workstations are connected back to back, not via an ATM switch. DECSt
ation 5000 / 240s is 40MHz MI
PS R3000 processor and 64K bytes, direct mapped off-chip instructions
It has an AND data cache and 32MB of main memory. The main memory and I / O subsystem are equipped with a 32-bit word TURBO channel and operate at 25 MHz. Fore TCA-100
Is a very simple interface with two FIFO queues, one for the transmit FIFO and the other for the receive FIFO, and some control and status registers. There are 14 32 ATM cells
It is sent to the TCA-100 interface over the TURBO channel by a processor that creates data in bit words. ATM cells have an expression format of 5
It has an ATM header of bytes, an ATM payroll of 48 bytes and padding of 3 bytes. 14 ATM cells
Is received by a processor that reads the data in thirty-two bit words. The TURBO channel supports DMA, but TCA-100 does not use DMA. When a cell arrives, the TCA-100 will generate a TURBO channel interrupt. Or the receive cell counter of the TCA-100 is polled to determine if a cell has arrived. The data rate of the fiber connecting the TCA-100 is 140 Mbps. DECStation is a Carnegie Mellon University (CMU) microkernel based operating system Mach 3.0 (MK83, U
X41) works. The source code of this operating system is CMU (Pittsburgh, P
Ennsylvania) is already available.
【0134】シンプル・リモート・ライト・ファンクシ
ョンは、実験的にこのシステムで実施された。32バイ
ト・ブロックの送信データは、送信側コンピュータのエ
ンドポイントから任意のオフセットで与えられている。
この32バイト・ブロックのデータは、受信側コンピュ
ータの送信側コンピュータにより指定されたエンドポイ
ントの、送信側コンピュータにより与えられたオフセッ
トの位置に届けられる。データ、オフセット、バッファ
情報は、ひとつのセルにいれられる。データブロック・
サイズは、キャッシュ・ブロック・サイズと等しい32
バイトであり、オフセットは実施しやすいように32バ
イト・ブロックに一致するように指定が制限される。送
信側コンピュータにおいて、ロー・レベルのMachカ
ーネル・エクセプション・ハンドリング・コードが、イ
リーガル・インストラクション・トラップにより、セル
を送るために変更される。受信側コンピュータにおいて
は、Machマイクロカーネルが、インターラプト・パ
スを部分的に最適化するために変更される。具体的に
は、TCA−100ハンドラーは、カーネル・インター
ラプト・トラップ・ハンドラーから直接呼び出される。The simple remote write function was experimentally implemented on this system. The 32-byte block of transmission data is given at an arbitrary offset from the endpoint of the transmitting computer.
This 32-byte block of data is delivered to the end point specified by the sending computer of the receiving computer at the offset position given by the sending computer. Data, offset and buffer information can be put in one cell. Data block
Size is equal to cache block size 32
It is a byte, and the offset is restricted to match a 32-byte block for ease of implementation. At the sending computer, the low level Mach kernel exception handling code is modified to send cells by illegal instruction traps. At the receiving computer, the Mach microkernel is modified to partially optimize the interrupt path. Specifically, the TCA-100 handler is called directly from the kernel interrupt trap handler.
【0135】上述の装置を使って次のような実験をし
た。ユーザ・レベルからあらかじめ送信側コンピュータ
であるワークステーションに記憶させておいたデータの
ブロックを、受信側コンピュータに送る。受信側コンピ
ュータにおいてユーザ・レベル・プロセスを、動作中に
しておき、このユーザ・レベル・プログラムにより、エ
ンドポイント・エアリアへのデータの到着をテストす
る。一度データが受信側のエンドポイントに到着する
と、受信側のプロセスはそれを送信側のワークステーシ
ョンに送り返す。この送信側のワークステーションで
は、別のユーザ・レベルのプロセスが実行されており、
データの到着をテストしている。このようにして、トー
タル・ラウンド・トリップ・タイムを測定した。この測
定結果には、ワン・ウェイ・リモート・ライトが2回
と、ループ・オーバヘッドと、測定によるオーバヘッド
とが含まれている。ループ・オーバヘッドには、ラウン
ド・トリップを20回繰り返したので、そのオーバヘッ
ドが含まれる。測定結果を図10に示す。The following experiment was conducted using the above apparatus. From the user level, a block of data stored in advance in the workstation, which is the sending computer, is sent to the receiving computer. A user level process is kept running at the receiving computer and this user level program tests the arrival of data at the endpoint area. Once the data arrives at the receiving endpoint, the receiving process sends it back to the sending workstation. On this sending workstation, another user-level process is running,
Testing the arrival of data. In this way, the total round trip time was measured. This measurement result includes two one-way remote writes, loop overhead, and measurement overhead. The loop overhead includes the overhead because the round trip is repeated 20 times. The measurement result is shown in FIG.
【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倍早い。The first row of FIG. 10 is the average time for cell transmission by illegal instruction trap send. The second line is the round trip send-receive time corrected for loop overhead and measurement overhead. The first column in FIG. 10 shows the time taken for the first iteration. The second column is the average of the next 19 repeat times. First two
After the repetitions, there were very few variations in the measurement results. The first iteration is a cache miss or translation lookaside buffer (TLB)
Contains mistakes. Therefore, the send-receive time at the first repetition takes much longer than the measurement result at the subsequent repetitions. (But it's not clear why the send-receive time took such a long time on the first iteration. The send overhead on the first iteration is more than expected.)
Eventually, cache miss, TLB miss, and other temporary factors disappeared, and round trip time was 49.1μ.
It became sec. This means the following: The one-way send-receive time for remote write is at best about 24.5 μsec. This is about 80 times faster than similar tests with Fore System's AAL3 / 4 running on Ultrax 4.3 on the same hardware.
【0137】図11は、連続的なリモート・ライトを送
信した場合の帯域幅の測定結果である。ブロックサイズ
は、連続的なリモート・ライトの数である。ブロックサ
イズが大きくなるにつれ帯域幅が増加する。しかし、割
り込みオーバヘッドが、より多くのデータで償却される
ので、ブロックサイズが2倍、4倍になっても帯域幅
は、漸近線状に次第に増加する。TCA−100インタ
ーラプト・ハンドラーは、受信側コンピュータの受信F
IFOが空になるまで受信FIFOからセルを読む。こ
のようにセルが、間をおかず送られてくるなら、全ての
セルを読むために1回の割り込みでよい。すなわちイン
ターラプト・トラップ・ハンドラーへの1回のパスでよ
い。連続的なブロックが通常の”for”ループを使っ
て送られるときでさえ、イリーガル・インストラクショ
ン・トラップ・メソッドを用いるため、セルの送信が速
い。このためこの割り込みオーバヘッドが、より多くの
データで償却されるという償却効果がすぐに得られる。
図11に示した漸近線状に増加する帯域幅は、受信側コ
ンピュータのFIFOからセルを処理するときのセル毎
のオーバヘッドの程度を示す尺度となる。FIG. 11 shows the bandwidth measurement result when continuous remote lights are transmitted. Block size is the number of consecutive remote lights. Bandwidth increases as block size increases. However, since the interrupt overhead is amortized with more data, the bandwidth increases asymptotically as the block size doubles or quadruples. The TCA-100 interrupt handler uses the receiving F of the receiving computer.
Read cells from the receive FIFO until the IFO is empty. Thus, if cells are sent in time, one interrupt is needed to read all cells. That is, one pass to the interrupt trap handler. Sending cells is fast because it uses the illegal instruction trap method, even when consecutive blocks are sent using a regular "for" loop. As a result, the interrupt overhead is immediately amortized with more data being amortized.
The asymptotically increasing bandwidth shown in FIG. 11 is a measure of the degree of overhead for each cell when processing the cell from the FIFO of the receiving computer.
【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ピーク帯域幅よりかなり良い。The above-mentioned 24 Mbps in this embodiment.
The bandwidth is for 32 data bytes / cell. 44 data bytes / cell, approximately 48 Mb using AAL3 / 4 format, using the same hardware
The peak bandwidth of ps has been reported by others. This cell rate translates into a peak bandwidth of (48 Mbps / 44) × 32 = approximately 35 Mbps when using 32 data bytes / cell. The partially optimized single cell remote write of this example has a peak bandwidth of 24 Mb, which is obtained with 32 data bytes / cell.
This corresponds to ps / 35 Mbps = about 68%. Also, the 24 Mbps bandwidth obtained in this example is
Fore Sy with the same hardware running on 4.3
14 Mb measured using a system's AAL3 / 4
Much better than ps peak bandwidth.
【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)であると結論ずけても良いだろう。FIG. 12 shows what kind of elements the delay time of 24 μsec is composed of. Since the TCA-100 ATM interface does not have DMA, all access to the interface for sending and receiving cells uses programmed I / O. Programmed I / O on the TURBO channel is slow. As a result, the delay time (7 μsec) in the TURBO channel is equal to the total delay time (24 μs).
Approximately one third of μsec) is spent. The ATM cell time (3 μsec) is the time required for the receiving computer connected to the fiber having the transfer rate of 140 Mbps to obtain the entire 53 bytes (1 cell). 24 μs
The remaining time (14 μsec) of ec is the CPU time and memory time of the sending computer and the receiving computer, which is 14 μsec / 24 μ of the total delay time.
sec = 58%. Therefore, optimizing the interrupt handler code by 20% to improve CPU time and memory time is a total delay time of 24 μs.
ec of about 3 μsec (14 μsec × 20% = 2.
8 μsec) only. From the above points, the minimum delay time for remote writing on commonly used hardware is approximately 20 μsec (24 μs).
It may be concluded that it is ec-3 μsec).
【0140】これらの実験結果を見ると、プロセッサの
負荷を減らし、メモリとI/Oバス・タイムを減らす為
に、特別な目的のハードウェアがもちいられるべきであ
る。この特別な目的のハードウェアにより、保護機構を
提供するとともにメモリにデータを直接おく機構を提供
する。このハードウェア・サポートにより、単独のセル
・タイムを終了するためのトータルな遅延時間を減ら
す。セル・タイムは、155Mbpsのデータ・レート
で、2.7μsecと、622Mbpsのデータ・レー
トで、0.68μsecである。プロセッサの負荷を減
らすことは、通信負荷が大きい分散システムにおけるフ
ァイル・サーバのようなサーバにとっても重要なことで
ある。遅延時間の長短の変化もまた減少し、最悪の場合
の遅延時間も改善される。この発明によるネットワーク
インタフェースのアーキテクチャーを実現するこのよう
なハードウェアについて述べる。通常、ノードは、受信
側コンピュータと送信側コンピュータとして両方の働き
をするので、ノードのためのネットワークインタフェー
スは、受信と送信両方のファンクションを扱うべきであ
る。受信側コンピュータ272の機能は、アドレスマッ
ピング、保護機構、アドレスレジスタ、データとアドレ
ス・パスの制御、フロー制御を含む。送信側コンピュー
タの機能を次に述べる。Looking at the results of these experiments, special purpose hardware should be used to reduce the load on the processor and reduce memory and I / O bus time. This special purpose hardware provides a protection mechanism as well as a mechanism for putting data directly into memory. This hardware support reduces the total delay time for ending a single cell time. The cell time is 2.7 μsec at a data rate of 155 Mbps and 0.68 μsec at a data rate of 622 Mbps. Reducing the processor load is also important for servers such as file servers in distributed systems with heavy communication loads. Changes in the delay time are also reduced, and the worst case delay time is improved. Such hardware implementing the network interface architecture according to the present invention will be described. Normally, a node acts as both a receiving computer and a sending computer, so the network interface for the node should handle both inbound and outbound functions. Receiving computer 272 functions include address mapping, protection mechanisms, address registers, data and address path control, and flow control. The function of the sending computer is described below.
【0141】実施例は次の2つの部分に分かれる。第一
の部分は、アドレスマッピング、アドレスレジスタの制
御メカニズムのためのフロントエンド・アーキテクチャ
ーである。この部分は、複数の方法で実施することが可
能であるが、そのどれもが同じ機能を持つ。図4に一般
的なブロック図を示す。第2の部分は、ネットワークイ
ンタフェースとホストメモリを接続するバックエンドに
ついてである。この部分も複数の方法で実施することが
可能である。例えば、メインメモリへのダイレクト・コ
ネクション、昔からあるI/Oバス・コネクト、セカン
ダリ・キャッシュへのダイレクト・コネクションの3つ
の方法について以下に述べる。The embodiment is divided into the following two parts. The first part is the front-end architecture for address mapping, address register control mechanism. This part can be implemented in several ways, all of which have the same function. FIG. 4 shows a general block diagram. The second part is the back end that connects the network interface and the host memory. This part can also be implemented in several ways. For example, three methods will be described below: direct connection to main memory, traditional I / O bus connect, and direct connection to secondary cache.
【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を用いてより詳しく後に説明する。The front end architecture will be described with reference to FIG. 210 is a front end of the network interface. Front end 21
0 connects to the host memory 212 via the bus 214. The connection of the bus 214 to the host memory 212 is called the back end, which will be described in detail later. The reception side of the front end 210 comprises a reception buffer memory 216 with flow control. This receive buffer is preferably a first in first out (FIFO) memory. Header separation check unit 2
18 processes the input cells and stores the information in VCI / VP
It is decomposed into an I mapping unit 220, a control decoder 222 and a data separation check unit 224. The data separation check unit 224 passes the block of data to the block transfer unit 226. The block transfer unit 226 passes the data to the host memory via the bus 214. VCI / VPI mapping
Unit 220 determines the connection number. The connection number is used by the operation logic 230. The operation logic will be described later in more detail with reference to FIG.
【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セルの該当フィールド
にこれらの情報を書き込む。The control decoder 222 decodes the control information of the input cell. The control information determines the index and the operand to be passed to the operation logic 230, respectively. The index and operand are the same as those shown for the ATM cell in FIG.
The control decoder 222 outputs the operation code in the ATM cell to the receive controller 228. Receive controller 228 provides operation logic 230 with control information. The operation logic 230 outputs an address, state information, a condition code, a connection number for response, and an interrupt. Addresses and interrupts go to the backend. The response connection number is passed to the VCI / VPI mapping unit 232 on the transmission side of the front end 210. Also, on the transmission side of the front end 210, there is a send controller 234. Send
Controller 234 receives information from the host processor via bus 214, provides control information to operation logic 230, and provides a connection number to VCI / VPI mapping unit 232. The send controller 234 uses the send register 2
36 is provided. The send register 236 provides the operation code, operand, and index information to the control encoder 238. The control encoder 238 writes these pieces of information in the corresponding fields of the ATM cell shown in FIG.
【0144】送信側のブロック転送ユニット240は、
ホストメモリからデータバッファ242にデータを移
す。セル・フォーミング・ユニット244は、コネクシ
ョン情報、制御情報とデータをデータバッファ242か
ら受け取り、適切なヘッダ情報を備えたセルを作る。セ
ルは送信バッファとフロー・コントロール246に送ら
れる。送信バッファとフロー・コントロール246は、
FIFOメモリであることが望ましい。メッセージ・デ
ータは、データバッファ242から受け取る代わりに、
センドレジスタ236の中のひとつであるデータ・レジ
スタから取り出してもよい。レシーブ・コントローラ2
28とセンド・コントローラ234とオペレーション・
ロジック230以外の残りの機能ブロックは、ネットワ
ークインタフェースでは標準的なものであるか、また
は、比較的単純な機能を持つものである。そのため、残
りの機能ブロックについては説明を省く。The block transfer unit 240 on the transmission side is
Data is transferred from the host memory to the data buffer 242. The cell forming unit 244 receives connection information, control information and data from the data buffer 242 and creates a cell with appropriate header information. The cell is sent to the transmit buffer and flow control 246. The transmit buffer and flow control 246
It is preferably a FIFO memory. Instead of receiving the message data from the data buffer 242,
It may be retrieved from a data register, which is one of the send registers 236. Receive controller 2
28, send controller 234 and operation
The remaining functional blocks other than the logic 230 are standard for network interfaces or have relatively simple functions. Therefore, the description of the remaining functional blocks is omitted.
【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のことであ
る。これらのフィールドの使い方について更に詳しく後
に述べる。The operation logic 230 of FIG. 4 will be described in more detail with reference to FIG. Latches between elements and control signals have been omitted for simplicity of illustration and illustration. The signal input from the left side of the figure is a signal coming from the data field of the ATM cell described with reference to FIG. For example,
Connection number is VC of ATM cell header
Obtained from I / VPI. Operation logic 230
Has a connection table 140. The operation logic 230 is the connection table 1
Cache all or part of 40. Also, the connection table 140 is stored by the operating system. For each connection, the connection table 140 has an entry 1
Hold 42. The entry 142 includes an endpoint number 146, address register information, connection state information 150, and a response connection 151. The address register information is the address register base 148 and the address register area 149. The use of these fields will be described in more detail below.
【0146】エンドポイント・テーブル160は、先に
述べたエンドポイント・テーブルの全てあるいは一部を
キャッシュ化したものである。エンドポイント・テーブ
ル160は、オペレーティングシステムによって維持管
理される。各エンドポイントに対応して、このエンドポ
イント・テーブル160は、エンドポイント・ナンバー
によってインデックスされたエントリ162を備える。
エントリ162は、エンドポイントのベース164と、
エンドポイントの領域166とアドレスマッピング情報
168からなる。アドレスマッピング情報は、ホストメ
モリに記憶されたエンドポイントのためのページマップ
構造を参照するためのものである。このエンドポイント
情報は、別のテーブルの中に備えられているので、同じ
エンドポイントを使用する多数のコネクションが、同じ
情報を共有できる。The endpoint table 160 is a cache of all or part of the above-mentioned endpoint table. The endpoint table 160 is maintained by the operating system. For each endpoint, this endpoint table 160 comprises an entry 162 indexed by endpoint number.
The entry 162 includes the endpoint base 164,
It consists of an endpoint area 166 and address mapping information 168. The address mapping information is for referencing the page map structure for the endpoint stored in host memory. This endpoint information is stored in a separate table so that multiple connections using the same endpoint can share the same information.
【0147】オペレーション・ロジック230には、ア
ドレスレジスタ170も備えられている。アドレスレジ
スタ170を実現する方法は多くの方法の中から選ぶこ
とができる。アドレスレジスタ170は、限られたリソ
ースを複数のアクティビティが競合して使うことを回避
するため、各コネクションに対し専用とした方がよい。
エンドポイント内のどのアドレスも、間接アドレスに対
応したレジスタとして使える。しかしこのような一般化
は、アクセススピードの問題と保護の問題を生む。アク
セススピードの問題を、次に示す。間接アドレッシング
されたメッセージが、メッセージを記憶する位置を決定
するためにクリティカルパスで第1回目のホストメモリ
へのアクセスを要求し、更新されたインデックスを記憶
するためにポストインクリメントモードで第2回目のホ
ストメモリへのアクセスを要求する。従って、アクセス
スピードが遅くなる。保護の問題は、間接的なアドレス
で指定される位置が、どのアドレスも含むことができる
ために起こる。このアドレスを変換することにより、保
護の問題は解決できる。しかし、クリティカルパスにお
いて2つのアドレス変換が必要である。ひとつは間接的
な位置を示すアドレスの変換であり、もう一つは、間接
的な位置へアドレスを変換することである。これらの理
由により、間接指定は、インタフェース・メモリ上のコ
ネクションごとに専用に設けられたアドレスレジスタに
限るようにしておいた方がよい。このようにすることに
より、個別のネイム・スペースが必要となり不便ではあ
るが、間接指定のために発生するクリティカルパス上で
のホストメモリへのアクセスをさけることができる。各
コネクションは、レジスタ”ウィンドウ”として多数の
連続した位置にレジスタを配置する。使いやすさと自由
度を考えて、各コネクションは、コネクション・セット
・アップ時にウィンドウ・サイズを動的に割り当てるこ
とができる。コネクション・テーブル・エントリ142
のベース148と領域149は、それぞれこのウィンド
ウの開始位置と終わりを指す。このような仕様によれ
ば、レジスタ・ウィンドウの重複とネスティングを許す
事ができる。こうして、レジスタ・ウィンドウの異なる
方法での共有化と保護ができる。The operation logic 230 also includes an address register 170. The method of realizing the address register 170 can be selected from many methods. The address register 170 is preferably dedicated to each connection in order to avoid a plurality of activities competing for use of limited resources.
Any address in the endpoint can be used as a register corresponding to an indirect address. However, such generalization creates access speed issues and protection issues. The problem of access speed is shown below. Indirectly addressed messages require access to host memory on the first pass on the critical path to determine where to store the message, and second time on post-increment mode to store the updated index. Request access to host memory. Therefore, the access speed becomes slow. The problem of protection arises because the location specified by the indirect address can contain any address. By translating this address, the protection issue can be solved. However, two address translations are needed in the critical path. One is translation of an address indicating an indirect position, and the other is translation of an address to an indirect position. For these reasons, it is better to limit the indirect designation to the address register provided exclusively for each connection on the interface memory. By doing so, although it is inconvenient because a separate name space is required, it is possible to avoid access to the host memory on the critical path that occurs due to indirect designation. Each connection arranges registers in a number of contiguous locations as a register "window". For ease of use and flexibility, each connection can be dynamically assigned a window size at connection setup. Connection table entry 142
The base 148 and area 149 of the window point to the start and end of this window, respectively. According to such a specification, overlapping and nesting of register windows can be allowed. In this way, the register windows can be shared and protected differently.
【0148】アドレスレジスタを使う時、受信側コンピ
ュータがあるアドレスレジスタについて送信側コンピュ
ータのアクセスを制限したい場合、問題が起きる。送信
側コンピュータがキューに対するポインタの増減を直接
行うことを、受信側コンピュータが許可したくない場合
がこの例である。このため、アドレスレジスタ170
は、プロテクション・ビット144を備える。プロテク
ション・ビット144は、これらのレジスタのデータに
対し送信側コンピュータが許されているアクセスの種類
を示す。リード、ライト、インダイレクトのようなこれ
らのアクセスから、アドレスレジスタを保護する。間接
アクセスを行うとき、送信側コンピュータがこの情報の
値を決定することはできないが、この情報を送信側コン
ピュータが使うことはできる。例えば、送信側コンピュ
ータが、レジスタを直接読んだり書いたりすることを許
可されていない場合であっても、ポストインクリメント
を伴うインダイレクト・アドレス・オペレーションは、
レジスタの値を読んだり、指定した値でレジスタの値を
増加させることができる。ただし、許可されていない方
法で、アドレスレジスタをアクセスすることを伴うオペ
レーションを、送信側コンピュータが指定する場合は、
例外である。ホストプロセッサは、この時レジスタを直
接アクセスすることができる。When using the address register, a problem arises if the receiving computer wants to limit the access of the sending computer to certain address registers. An example of this is when the receiving computer does not want to allow the transmitting computer to directly increase or decrease the pointer to the queue. Therefore, the address register 170
Comprises a protection bit 144. Protection bit 144 indicates the type of access that the sending computer is allowed to access to the data in these registers. Protects the address register from these accesses such as read, write and indirect. When making an indirect access, the sending computer cannot determine the value of this information, but this information can be used by the sending computer. For example, an indirect address operation with post-increment, even if the sending computer is not allowed to read or write the register directly,
You can read the value of a register or increment the value of a register by a specified value. However, if the sending computer specifies an operation that involves accessing the address register in an unauthorized way,
There is an exception. The host processor can directly access the register at this time.
【0149】アドレスレジスタの保護のために、受信側
コンピュータが送信側コンピュータのアクセスを制限す
ることが許されているが、それでもなお送信側コンピュ
ータがオペレーションを指定する際、送信側コンピュー
タは全てのオペランドを指定することができる。このよ
うに、受信側コンピュータと送信側コンピュータの間が
完全に独立でないため、また別の保護上の問題が起き
る。例えば、オペランドのプライオリティとプライオリ
ティ・キューが合わない、あるいは間違ったレジスタを
指定するというような、矛盾するオペランドを送信側コ
ンピュータが、指定することもなお起こりうる。この問
題を解決するため、オペランド名は、受信側コンピュー
タだけが使えるようにして、送信側コンピュータと受信
側コンピュータの分離をはかる。Because of the protection of the address registers, the receiving computer is allowed to restrict access to the sending computer, but nevertheless, when the sending computer specifies an operation, the sending computer has all operands. Can be specified. Thus, another protection problem arises because the receiving and sending computers are not completely independent. It is still possible for the sending computer to specify conflicting operands, for example, the priority of the operands and the priority queue do not match, or the wrong register is specified. In order to solve this problem, the operand name is made available only to the receiving computer, and the transmitting computer and the receiving computer are separated.
【0150】このように送信側コンピュータと受信側コ
ンピュータを分離するために、受信側コンピュータは、
受信側コンピュータのオペランドを、送られてきたオペ
ランドの中から見つけデコードするか、あるいはホスト
プロセッサに対する割り込みを実行すればよいことにな
る。しかし、オペランドをデコードする場合でも、割り
込みを実行する場合でも、ホストプロセッサはこれによ
りオーバヘッドが増加する。オペランドを自由に使える
ようにするため、受信側コンピュータ側はプログラマブ
ル・コントロールである必要がある。受信側コンピュー
タは、このため複雑になるが、それでもかなり単純な実
施例を後に述べる。ポストインクリメントを伴うインデ
ィレクションは、非常によく使うが、これをサポートす
るため、上記プリミティブ・オペレーションに、さら
に、次に示す特別な場合を加える。 effaddr=<addregi >; addregi ←<addregi >+<addregi+1 > この特別なインダイレクト・アドレッシング・モードを
使うために、送信側コンピュータは、オペランドにイン
デックスiを指定するだけでよい。受信側コンピュータ
は、インディレクション用にアドレスレジスタiを使
い、自動的に次のアドレスレジスタi+1をポストイン
クリメント・アマウントとしてに使う。In order to separate the sending computer and the receiving computer in this way, the receiving computer
It is only necessary to find the operand of the receiving computer from the received operand and decode it, or execute the interrupt to the host processor. However, this causes additional overhead for the host processor, whether it is decoding the operands or performing the interrupt. The receiving computer side must be programmable control so that the operands can be used freely. The receiving computer is complicated by this, but a fairly simple embodiment will be described later. Indirection with post-increment is very often used, but in order to support this, the following special case is added to the above primitive operation. effaddr = <addreg i >; addreg i ← <addreg i > + <addreg i + 1 > To use this special indirect addressing mode, the sender computer only needs to specify the index i in the operand. . The receiving computer uses the address register i for indirection and automatically uses the next address register i + 1 as a post-increment amount.
【0151】コネクション・テーブル140、エンドポ
イント・テーブル160とアドレスレジスタ170は、
ネットワークインタフェースのメモリに配置してもよ
い。このネットワークインタフェースにあるメモリは、
スタティック・ランダム・アクセス・メモリ(SRA
M)か、またはダイナミック・ランダム・アクセス・メ
モリ(DRAM)である。従来のトランスレーション・
ルックアサイド・バッファ(TLB)180は、メッセ
ージで指定されたアドレスを物理アドレス(PA)に再
配置するために使われる。TLBは、フルリー・アソシ
エイティブ・キャッシュであることが望ましい。複数の
エンドポイントが、同じ仮想アドレス(VA)を使うこ
ともあるので、TLBは、エンドポイントのVAとエン
ドポイントを指定するビットとのマッチングにより物理
アドレスを探し出す。また、TLBは、物理アドレスに
アクセスしてよいかどうかの適否も記憶している。The connection table 140, the endpoint table 160 and the address register 170 are
It may be arranged in the memory of the network interface. The memory on this network interface is
Static Random Access Memory (SRA
M) or dynamic random access memory (DRAM). Conventional translation
The lookaside buffer (TLB) 180 is used to relocate the address specified in the message to the physical address (PA). The TLB is preferably a Fully Associative Cash. Since multiple endpoints may use the same virtual address (VA), the TLB finds the physical address by matching the endpoint's VA with the bits that specify the endpoint. The TLB also stores whether or not the physical address may be accessed.
【0152】コネクション・テーブル140と、エンド
ポイント・テーブル160と、アドレスレジスタ170
と、TLB180の関連を、説明する。コネクション・
テーブル140のエントリ142から出力されるエンド
ポイント・ナンバー146は、エンドポイント・テーブ
ル160に対する入力として使われる。コネクション・
テーブル140からのベース148と領域情報149
は、それぞれ加算器156と比較器158に与えられ
る。加算器156は、受信したATMセルからインデッ
クス128(図3参照)も受け取る。そしてこの加算器
156からの出力もまた比較器158に与えられる。比
較器158は、適切なアドレスをアドレスレジスタ17
0に与えるためのフィルターの働きをする。もし比較器
158で適切でないとされたならば、エラートラップが
起きる。Connection table 140, endpoint table 160, and address register 170
And the relationship between the TLB 180 will be described. connection·
The endpoint number 146 output from entry 142 of table 140 is used as an input to endpoint table 160. connection·
Base 148 and area information 149 from table 140
Are provided to the adder 156 and the comparator 158, respectively. The adder 156 also receives the index 128 (see FIG. 3) from the received ATM cell. The output from the adder 156 is also given to the comparator 158. Comparator 158 sends the appropriate address to address register 17
Acts as a filter for giving 0. If the comparator 158 determines that it is not appropriate, an error trap will occur.
【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に入
力される。The endpoint table 160 outputs the base 164 and the area 166 of the endpoint. The base 164 and the region 166 are connected to the adder 172 and the comparator 174, respectively. The adder 172 receives the received ATM cell from the operand field 126 (see FIG. 3).
See also). Multiplexer 1
76 receives the output of adder 172, the base 164 from endpoint table 160 and the offset from the received ATM cell. The output of the multiplexer 176 is an Arismetic Logic Unit (ALU)
178 is input. The value read from the address register 170 is also input to the ALU 178. ALU17
8 outputs the condition code and the result. This condition code is the receive controller 228
(See FIG. 4). In addition, the result from the ALU 178 is the demultiplexer 179 and the address register 1
Given to 70. Demultiplexer 179 receives the output from adder 172 as another input. The output of the demultiplexer 179 becomes another input of the comparator 174. The comparator 174 outputs an error or an address within the area that the endpoint can take. In the latter case, the address is input to TLB 180.
【0154】レシーブ・コントローラ228は、マルチ
プレクサ176の制御と、ALU178の制御と、デマ
ルチプレクサ179の制御と、アドレスレジスタ170
の読み書きの制御に使われる。この際、コネクション・
テーブル140からのステート情報と、受信したATM
セルからのオペコード/制御情報と、ALU178から
のコンディションコードに従って制御を行こなう。レシ
ーブ・コントローラ228でサポートされる機能や、こ
れらの機能の実現方法については様々な方法がある。上
述したような基本的な5つのアドレッシングモードだけ
で実施される場合、このモードはとても単純なので、有
限状態マシーンを用いたハードウェア回路で実現でき
る。図6は、テーブルを用いた場合の実施方法について
示す。センダ・コントローラ234は、レシーブ・コン
トローラ228と類似した方法で実現できる。The receive controller 228 controls the multiplexer 176, the ALU 178, the demultiplexer 179, and the address register 170.
Used to control reading and writing of. At this time, the connection
State information from table 140 and received ATM
Control is performed according to the operation code / control information from the cell and the condition code from the ALU178. There are various methods for the functions supported by the receive controller 228 and how to realize these functions. If implemented with only the five basic addressing modes described above, this mode is so simple that it can be implemented with a hardware circuit using a finite state machine. FIG. 6 shows an implementation method using a table. The sender controller 234 can be implemented in a manner similar to the receive controller 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向かって
出力される”コントロール”とラベル付けされた矢印に
よって表示されている。FIG. 6 is a diagram showing a case where the receive controller 228 is operated with a table inside. The condition code 184, the state 186, and the operation code 188 are input to the table 190. Condition code 184, state 186, opcode 1
88 is used as an index of the table 190. The output from the table 190 is the control signal 1
92, new state information 196, and mask 194. The control signal 192 is sent to the multiplexer 17
6, output to the demultiplexer 179, the ALU 178 and a latch (not shown). The use of these outputs will be described in further detail below. In FIG. 4, all of these outputs are represented together by the arrow labeled "Control" which is output from the receive controller 228 towards the operation logic 230.
【0156】図5において図示されていないが、コネク
ション・テーブル140、エンドポイント・テーブル1
60、アドレスレジスタ170及びTLB180に対し
てデータを返送するデータバスが存在している。従って
ホストプロセッサはこれらの各種テーブルの内容を読み
書きすることができる。これによりオペレーティングシ
ステムが、テーブルとTLBの内容を管理することがで
き、また、アプリケーションがアドレスレジスタに対し
てアクセスすることができる。しかしながらアプリケー
ションが直接アドレスレジスタをアクセスすることは、
保護の面から問題が生ずる。この問題を解決する最も簡
単な方法は、アプリケーションが直接アドレスレジスタ
をアクセスすることを禁止し、オペレーティングシステ
ムのシステムコールによってのみ、アドレスレジスタを
アクセスできるようにしてしまうことである。しかし、
この解決方法は、アドレスレジスタをアクセスするため
に多くの犠牲を払うことになる。保護の問題を解決する
もう一つの方法は、アプリケーションが持っている仮想
アドレス空間の中にアドレスレジスタをマッピングする
ことである。すなわち各コネクションのアドレスレジス
タは、それぞれ異なる物理アドレス領域にマッピングさ
れる。そして追加の回路を設けることにより、追加の回
路がこの物理アドレスからコネクション・ナンバーを抽
出し、コネクション・テーブル140に記憶されたアド
レスレジスタのベース148と領域149を用いて、ア
ドレスレジスタ170が記憶された領域をまちがいなく
アクセスすることができる。この解決方法によれば、オ
ペレーティングシステムのシステムコールは、マッピン
グを生成するためだけに要求される。一旦マッピングが
生成されたのちは、アプリケーションは受信したメッセ
ージに用いられているアドレスレジスタベースと領域を
用いて、アドレスレジスタをアクセスすることができ
る。Although not shown in FIG. 5, the connection table 140 and the endpoint table 1
60, an address register 170, and a data bus for returning data to the TLB 180. Therefore, the host processor can read and write the contents of these various tables. This allows the operating system to manage the contents of tables and TLBs, and allows applications to access the address registers. However, if the application directly accesses the address register,
Problems arise in terms of protection. The simplest way to solve this problem is to prohibit the application from accessing the address register directly and only allow the address register to be accessed by an operating system system call. But,
This solution comes at the cost of many access to address registers. Another way to solve the protection problem is to map the address registers into the virtual address space that the application has. That is, the address register of each connection is mapped to a different physical address area. By providing an additional circuit, the additional circuit extracts the connection number from this physical address, and the address register 170 is stored using the base 148 and the area 149 of the address register stored in the connection table 140. You will definitely be able to access the area. According to this solution, operating system system calls are only required to generate the mapping. Once the mapping is created, the application can access the address register using the address register base and area used in the received message.
【0157】また、前述した説明においては、エンドポ
イントベースは、仮想アドレスであると説明したが、物
理的アドレスであってもかまわない。もし、エンドポイ
ントベースが物理的アドレスであれば、マッピングが簡
単化する。すなわち単に領域のチェックをするだけでよ
い。しかしこの方法は二つの欠点を生ずる。最初の欠点
はエンドポイントのサイズがあるサイズを持ったページ
のサイズよりも大きい場合、エンドポイントが物理的に
連続する複数のページにまたがって配置される点であ
る。第2番目の欠点はアドレスレジスタが相対アドレス
か物理アドレスの何れかしか記憶できなことである。こ
のようなふたつの欠点を避けるためには、エンドポイン
トベースを仮想アドレスとし、この仮想アドレスから物
理アドレスへのマッピングを行なう必要がある。前述し
た最初の欠点はホストメモリの使用を制限する。特にエ
ンドポイントのサイズが動的に変化するような場合には
好ましくない。また第2の欠点は、アプリケーションが
間接アドレスポインタを充分に使用できないということ
を意味している。あるいはポインタをアドレスレジスタ
に格納する場合、そのポインタを物理アドレスにマッピ
ングするために、オペレーティングシステムが必ず起動
されなければならないということを意味している。In the above description, the endpoint base has been described as a virtual address, but it may be a physical address. If the endpoint base is a physical address then the mapping is simplified. That is, it is only necessary to check the area. However, this method has two drawbacks. The first drawback is that if the endpoint size is larger than the size of a page with a certain size, the endpoint will be placed across multiple physically contiguous pages. The second drawback is that the address register can store either a relative address or a physical address. In order to avoid these two drawbacks, it is necessary to use an endpoint base as a virtual address and perform mapping from this virtual address to a physical address. The first drawback mentioned above limits the use of host memory. In particular, it is not preferable when the size of the endpoint dynamically changes. The second drawback also means that the application cannot fully use the indirect address pointer. Alternatively, if the pointer is stored in the address register, it means that the operating system must be activated in order to map the pointer to the physical address.
【0158】次にオペレーション・ロジック230の機
能について、以下に説明する。コネクション・ナンバー
はメッセージから抽出される番号である。コネクション
・ナンバーは、コネクション・テーブル140のインデ
ックスとして用いられる。コネクション・ナンバーがコ
ネクション・テーブルのテーブルサイズ以内であるかど
うかを、チェックするための保護機構が用意されてい
る。すなわち比較器150によって、コネクション・ナ
ンバーが適切なものであるかどうかがチェックされる。Next, the function of the operation logic 230 will be described below. The connection number is the number extracted from the message. The connection number is used as an index of the connection table 140. A protection mechanism is provided to check whether the connection number is within the table size of the connection table. That is, the comparator 150 checks whether the connection number is proper.
【0159】加算器156はATMセルからのインデッ
クスの値と、コネクション・テーブル140から求めら
れたアドレスレジスタベースを加算する。比較器158
は加算された値と、コネクション・テーブル140から
得られた領域149とを比較する。もし加算された値が
領域以下であれば、その加算された値はアドレスレジス
タ170へのアドレスとして送られる。もし加算した値
が領域よりも大きい場合には、エラーであると判断され
エラートラップ処理が実行される。このようにしてアド
レスレジスタから、アドレスレジスタに記憶された値が
得られ、得られた値はALU178に送られる。The adder 156 adds the index value from the ATM cell and the address register base obtained from the connection table 140. Comparator 158
Compares the added value with the area 149 obtained from the connection table 140. If the added value is less than or equal to the area, the added value is sent as an address to the address register 170. If the added value is larger than the area, it is determined that there is an error, and the error trap processing is executed. In this way, the value stored in the address register is obtained from the address register, and the obtained value is sent to the ALU 178.
【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
にある他の部分よりも、早いクロックで動作することが
望ましい。The endpoint number obtained from the connection table 140 is the endpoint table 1
Used to search the endpoint base 164 at 60. The endpoint base 164 is retrieved and then sent to the adder 172. The adder 172 is
Searched endpoint base 164 and received A
The offset value extracted from the TM cell is added. The added value is sent to the multiplexer 176 and the demultiplexer 179. The multiplexer includes an endpoint base 164, a value added by the adder 172, and A
The offset value extracted from the TM cell is input.
The multiplexer 176 is controlled to select one from these values and send it to the ALU 178. ALU
178 is controlled to perform an operation based on the value received from address register 170 and the output from the multiplexer. Multiplexer to ALU
The condition code and address are output to 178. The operations executed by the ALU 178 include operations relating to the contents of the address register, such as addition processing in the post-increment mode, logic operations, and comparison operations such as conditional interrupts. However, the operation of the ALU 178 is not limited to the above-mentioned operation. ALU 178 is used to perform various other operations regarding the contents of address registers. If the operations on conditional interrupts and address registers are not restricted to the address mode of not using the address registers, then the memory used for the address registers is preferably a multi-port memory. Alternatively, the memory used for the address register is the operation logic 230.
It is desirable to operate at a faster clock than the other parts in.
【0161】ALU178による処理結果は、アドレス
レジスタ170に送られる場合がある。デマルチプレク
サ179は、加算器172の加算値とALU178の処
理結果のいずれかを選択するように制御される。デマル
チプレクサ179からの出力は、エンドポイント・テー
ブル160から検索された領域166と比較器174に
より比較される。これは保護機能の一部である。The processing result by the ALU 178 may be sent to the address register 170. The demultiplexer 179 is controlled to select either the added value of the adder 172 or the processing result of the ALU 178. The output from the demultiplexer 179 is compared by the comparator 174 with the region 166 retrieved from the endpoint table 160. This is part of the protection function.
【0162】比較器174から出力されたアドレスはT
LB180に出力される。TLB180においても、保
護の機能が存在する。比較器174から出力されたアド
レスが、TLB180に適合するものであるかどうかが
チェックされる。もし、比較器174から出力されたア
ドレスが、TLBのエントリとマッチしないというTL
Bミスが発生した場合には、オペレーティングシステム
に対して例外処理を要求することになる。このTLBミ
スは、比較器174から出力されたアドレスに基づくア
ドレスマッピングが、TLBの中に存在していないこと
により生ずる。あるいはこのTLBミスはアクセス権を
有していないことにより生ずる。TLBミスをホストプ
ロセッサにより例外処理として、処理させることはハー
ドウェアをほとんど使用することにはならないが、TL
Bミスの例外処理が実行されている間、到着するセルの
処理を邪魔してしまうという不利益がある。これらの到
着するセルは、例外処理が行われる場合には、その数を
制限されたり、あるいはバッファに溜められたりするこ
とが望ましい。しかし廃棄されてしまう場合も存在す
る。TLBミスを処理する他の案として、ネットワーク
インタフェースがTLBミスを処理するためのハードウ
ェアを持つようにしてもかまわない。あるいはネットワ
ークインタフェースがTLBミスを減少させる、あるい
は、TLBミスを除去するために、エンドポイント毎に
専用のマッピングを持つようにしてもかまわない。ネッ
トワークインタフェースがハードウェアを追加する場合
は、ハードウェアに依存してしまい、処理が柔軟でなく
なる。また、ハードウェアで処理するにもかかわらず、
マッピング情報をホストメモリからアクセスしなければ
ならないため、遅延が生じてしまい、セルの処理に遅延
を生じてしまう。一方、エンドポイント毎に専用のマッ
ピングを持つ方法は、各々のエンドポイントに対して一
つあるいは二つのマッピングエントリを持てるように、
エンドポイント・テーブルが拡張されている場合、可能
な方法である。しかし、このような拡張はメモリ空間の
増加と性能の減少を生じさせるものである。The address output from the comparator 174 is T
It is output to the LB 180. The TLB 180 also has a protection function. It is checked whether the address output from the comparator 174 conforms to the TLB 180. If the address output from the comparator 174 does not match the entry of the TLB, the TL
When the B miss occurs, exception handling is requested to the operating system. This TLB miss occurs because the address mapping based on the address output from the comparator 174 does not exist in the TLB. Alternatively, this TLB miss is caused by not having the access right. Although processing the TLB miss as an exception processing by the host processor requires almost no hardware, the TL
There is a disadvantage that it interferes with the processing of arriving cells while the B miss exception processing is being executed. It is desirable that these arriving cells be limited in number or stored in a buffer when exception processing is performed. However, there are cases where they are discarded. As an alternative to handling TLB misses, the network interface may have hardware to handle TLB misses. Alternatively, the network interface may have a dedicated mapping for each endpoint in order to reduce TLB misses or eliminate TLB misses. When the network interface adds hardware, the processing becomes inflexible because it depends on the hardware. Also, despite processing with hardware,
Since the mapping information has to be accessed from the host memory, a delay occurs, which causes a delay in cell processing. On the other hand, the method of having a dedicated mapping for each endpoint allows one or two mapping entries for each endpoint.
This is possible if the endpoint table is extended. However, such expansion causes an increase in memory space and a decrease in performance.
【0163】レシーブ・コントローラ228はオペコー
ド129をデコードする。また、レシーブ・コントロー
ラ228は、ALU178から出力されたコンディショ
ンコードと、コネクション・テーブル140から出力さ
れたステート情報150を用いて到着したATMセルに
対して為すべきアクションを決定する。レシーブ・コン
トローラ228によって出力されるコントロール信号
は、オペコードとコンディションコードとによって決定
される。これらのコントロール信号は、所望のアドレッ
シングモードを有効にするために、使われる。また、デ
ータを記憶するために使われる。図6に示すマスク19
4の出力は、データのうちどのエレメントが受信側コン
ピュータのメモリに、実際に記憶されるものであるかを
選択するために用いられる。例えば、マスクは4バイト
を一つの単位としてデータを選択する。マスクは32バ
イトのデータブロックに対して、4ビット必要であり、
図3に示すようにオペコードのマスクに割り当てられた
4ビットから直接マスク131を得ることができる。The receive controller 228 decodes the opcode 129. Further, the receive controller 228 determines the action to be performed on the arrived ATM cell by using the condition code output from the ALU 178 and the state information 150 output from the connection table 140. The control signal output by the receive controller 228 is determined by the operation code and the condition code. These control signals are used to activate the desired addressing mode. It is also used to store data. Mask 19 shown in FIG.
The output of 4 is used to select which element of the data is actually stored in the memory of the receiving computer. For example, the mask selects data in units of 4 bytes. The mask requires 4 bits for a 32-byte data block,
As shown in FIG. 3, the mask 131 can be obtained directly from the 4 bits assigned to the opcode mask.
【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のセル数でデー
タを送ることが可能になる。The state information 150 of the connection table 140 is used for a multiple cell message in which the message is composed of a plurality of cells.
The state information 150 records connection addressing information for these plural cells. The first cell when a multiple cell message is received is called the control cell. This control cell contains information for selecting the addressing mode. Also,
The offset and index are specified. The information of this control cell is stored in the state information 150 of the connection table 140. Subsequent cells included in the same multiple cell message need not include these control information and can carry more data. For example, the first cell can have 32 bytes of data while the subsequent cells can have 48 bytes of data. This is the case with the AAL5 format. Subsequent cells use the control information stored in the state information 150 of the connection table 140. The end of this multiple cell message can be identified by storing the cell count in the state information 150. Alternatively, the standardized AAL5 format can be used to identify the final cell. According to the AAL5 format, the last cell of the multiple cell message is supposed to transmit the length and the CRC, so that it is possible to determine the last cell by identifying these. All received cells are checked by whether the CRC of the finally received cell is correct. Assuming that the multiple cell message ends with CRC, [2/3 (N-1)] + 2 cells are used to transmit N (N> 1) blocks with 32 bytes as one block. Become. By using this method, it becomes possible to send data in approximately 2/3 of the number of cells as compared with the case of sending one block in which one block is 32 bytes in one cell.
【0165】前述した機能以外にいろいろな機能を追加
することができる。この機能の追加はレシーブ・コント
ローラ228によって解釈されるオペコードの追加によ
ってなされる。Various functions can be added in addition to the functions described above. The addition of this function is done by the addition of an opcode interpreted by the receive controller 228.
【0166】オペレーティングシステムに報告されたエ
ラートラップの処理は、セルを廃棄することによって行
われる。あるいは、そのセルをエラー用の待ち行列に追
加するとともに、オペレーティングシステムに対して例
外処理をリクエストすることによって行われる。Processing of error traps reported to the operating system is done by discarding cells. Alternatively, it is done by adding the cell to the error queue and requesting exception handling from the operating system.
【0167】今まではフロントエンドの受信側について
説明してきたが、以下にフロントエンドの送信側につい
て説明する。セルを送信するためには、コントロール情
報とデータが準備されなければならない。コントロール
情報は、一組のセンドレジスタ236から得ることがで
きる。各コネクションはセルを送信するために、各々一
組のセンドレジスタ236を持っている。この一組のセ
ンドレジスタ236の最初の3つのレジスタは、制御情
報を記憶する。すなわち、セルに格納されるオペコード
とオペランドとインデックスを記憶する。一方、送信用
のデータは、コネクションに関連したエンドポイントか
ら得られる。あるいは送信用のデータはセンドレジスタ
の中の特別なブロックから得ることができる。データを
センドレジスタの特別なブロックから得る場合は、リー
ド要求を形成する場合に非常に便利である。Up to now, the reception side of the front end has been described, but the transmission side of the front end will be described below. Control information and data must be prepared in order to transmit a cell. Control information can be obtained from the set of send registers 236. Each connection has a set of send registers 236 for transmitting cells. The first three registers of this set of send registers 236 store control information. That is, the operation code, operand, and index stored in the cell are stored. On the other hand, data for transmission is obtained from the endpoint associated with the connection. Alternatively, the data for transmission can be obtained from a special block in the send register. If the data comes from a special block of send registers, it is very convenient in forming a read request.
【0168】それぞれのコネクションに対して設けられ
たセンドレジスタは、ステータスレジスタとモードレジ
スタとゴーレジスタを備えている。ステータスレジスタ
は送信されたセルの数を記憶する。もしステータスレジ
スタの値が予め1にイニシャライズされている場合に
は、ネットワークインタフェースがセルを実際に送信し
たとき、その値は0に設定される。このように、ステー
タスレジスタを用いる場合は、ステータスレジスタを送
信すべきセルが、ネットワークインタフェースを実際に
離れて送信されてしまったという、確認として用いるこ
とができ便利である。なぜならばセルは、フロー・コン
トロールや例外処理のおかげですぐに送信されるとは限
らないからである。一方モードレジスタは後に述べるよ
うな二つの機能を持っている。また、ゴーレジスタは後
に述べるように、セルを実際に送信するために使われる
レジスタである。The send register provided for each connection includes a status register, a mode register and a go register. The status register stores the number of cells transmitted. If the value of the status register has been initialized to 1 beforehand, its value is set to 0 when the network interface actually sends the cell. As described above, when the status register is used, it is convenient because it can be used as confirmation that the cell to which the status register is to be transmitted has actually been transmitted by leaving the network interface. This is because cells are not always delivered immediately due to flow control and exception handling. On the other hand, the mode register has two functions as described later. Further, the go register is a register used for actually transmitting the cell, as described later.
【0169】前述したように、いろいろなオプションが
フロントエンドの各部分に対して可能である。ここでい
くつかの異なる実施例について以下に説明する。第1の
フロントエンドの構成は図5に示すように、最小限のハ
ードウェアを用いる場合である。アドレスレジスタのオ
ペレーションとしては、一つのセルに対して、多くとも
一つのアドレスレジスタに対するリードとライトだけに
制限されている。また、エンドポイントのページは物理
的なメモリに拘束されており、またバッファが備わって
いる。リモートリードは割り込みを介してホストプロセ
ッサにより処理される。前述したアドレスレジスタのオ
ペレーションが一つのアドレスレジスタに限られている
ということは、アドレスレジスタに対して実行可能なオ
ペレーションが、すべて同じアドレスレジスタに対して
行われるということである。また、バイナリオペレーシ
ョンはメッセージのオペランドから一つの引数を得ると
いうことを意味している。このようにして、間接アドレ
ッシングオペレーションのためのポストインクリメント
の値がメッセージによって指定される。このような状態
では、受信側コンピュータのステートを送信側コンピュ
ータから完全に独立させているということはできない。
そこで、代替え案として、所望の機能を連続するメッセ
ージにより構成する場合が考えられる。例えば、ポスト
インクリメントの値が後続のメッセージに指定されたレ
ジスタへの加算により、指定されるようにすればよい。
前述したエンドポイントのページが物理メモリによって
制限されているということは、エンドポイントのサイズ
が大きくなるということを防止しているとともに、エン
ドポイントのサイズが小さくなり、数多くのエンドポイ
ントができてしまうということを防いでいる。したがっ
て、エンドポイントのサイズを物理メモリによって、制
限するということは、構造を単純化するのに役立ってい
る。As mentioned above, various options are possible for each part of the front end. Several different embodiments will now be described below. The configuration of the first front end is a case where minimum hardware is used as shown in FIG. The operation of the address register is limited to reading and writing at most one address register for one cell. Also, the endpoint page is bound to physical memory and has a buffer. Remote reads are processed by the host processor via interrupts. The operation of the address register described above is limited to one address register, which means that all operations that can be performed on the address register are performed on the same address register. Binary operations also mean getting one argument from the message operands. In this way, the post increment value for the indirect addressing operation is specified by the message. In such a state, it cannot be said that the state of the receiving computer is completely independent from the state of the transmitting computer.
Therefore, as an alternative, it may be possible to configure a desired function with continuous messages. For example, the post-increment value may be specified by addition to the register specified in the subsequent message.
The fact that the page of the endpoint is limited by the physical memory described above prevents the size of the endpoint from increasing, and also reduces the size of the endpoint, resulting in many endpoints. It prevents that. Therefore, limiting the size of the endpoint by physical memory helps simplify the structure.
【0170】この実施例の受信側は、前述したような構
成を持つ。この例では、エンドポイントのページが物理
メモリにより指定されるという構成をとっているため
に、エンドポイント・テーブル160が、エンドポイン
トベースとして物理アドレスを記憶している点が特徴で
ある。物理的なページは、必ずしも連続的に配置される
とは限らないので、TLB180が物理ページから物理
アドレスへの変換のために用いられる。TLB180は
アドレスを変換するためのマッピングをキャッシュの中
に記憶させているものである。TLB180は、図5に
おいてVAと記載された値を対応する物理アドレスに変
換するものである。このVAはエンドポイントベースア
ドレスとオフセットを加算した値である。この実施例に
おいては、エンドポイントベースアドレスがエンドポイ
ントのページを示している。もし、エンドポイントのサ
イズが1ページ以下である場合には、TLB180に記
憶されている物理アドレスが、直接エンドポイント・テ
ーブル160のエンドポイントベース164のエントリ
162に記憶されていてもかまわない。このように、物
理アドレスがエンドポイントベース164に記憶される
ような構造をとる場合には、エンドポイント・テーブル
の各エントリ162すべてに対して、ダイレクトマッピ
ングビットが付加される。このダイレクトマッピングビ
ットを用いることにより、物理アドレスが直接エンドポ
イントベース164に記載されているかどうかを判定す
ることができ、エンドポイントベースの解釈を正しく行
うことができる。なお、エンドポイントのサイズが1ペ
ージのサイズよりも大きい場合には、エンドポイント・
テーブルに対して、マッピングエントリを追加すること
により大きいサイズのエンドポイントを処理することが
可能になる。The receiving side of this embodiment has the above-mentioned configuration. This example is characterized in that the page of the endpoint is specified by the physical memory, so that the endpoint table 160 stores the physical address as the endpoint base. Since the physical pages are not always arranged continuously, the TLB 180 is used for conversion from the physical page to the physical address. The TLB 180 stores a mapping for converting an address in a cache. The TLB 180 converts the value described as VA in FIG. 5 into a corresponding physical address. This VA is a value obtained by adding the endpoint base address and the offset. In this example, the endpoint base address points to the page of endpoints. If the size of the endpoint is one page or less, the physical address stored in the TLB 180 may be directly stored in the entry 162 of the endpoint base 164 of the endpoint table 160. In this way, when the physical address is stored in the endpoint base 164, the direct mapping bit is added to all the entries 162 of the endpoint table. By using this direct mapping bit, it is possible to determine whether or not the physical address is directly described in the endpoint base 164, and the endpoint base can be correctly interpreted. If the size of the endpoint is larger than the size of one page, the endpoint
Adding a mapping entry to the table allows handling larger sized endpoints.
【0171】送信側のオペレーションについて以下に説
明する。送信のためのエンドポイントはページサイズに
よって制限される。カーネルをコールすることなく、特
定のコネクションに対して送信を許可するために、各コ
ネクションはそれぞれユニークな仮想的にマッピングさ
れたコマンドエリアを有している。このコマンドエリア
は、エンドポイント用に使われている仮想ページから所
定のオフセットだけ離れた場所に設けられる。例えば、
このオフセットの値として、仮想アドレスを示すビット
のうち、高い位のビットを用いることができる。このコ
マンドエリアのサイズは、エンドポイントのサイズと同
じサイズを持つ。これらのコマンドエリアは、ネットワ
ークインタフェースに対して、キャッシュ化されずにマ
ッピングされる。前述したセンドレジスタ236は、こ
のコマンドエリアのベースより下にあるページにマッピ
ングされる。The operation of the transmitting side will be described below. The endpoint for sending is limited by the page size. Each connection has its own unique virtual mapped command area in order to allow transmission for a particular connection without calling the kernel. This command area is provided at a position apart from the virtual page used for the endpoint by a predetermined offset. For example,
Of the bits indicating the virtual address, the higher order bit can be used as the offset value. The size of this command area is the same as the size of the endpoint. These command areas are mapped to the network interface without being cached. The send register 236 described above is mapped to a page below the base of this command area.
【0172】コネクションCを用いてネットワークに対
して、送信側のエンドポイントのベースからあるオフセ
ットだけ離れた1ブロックのデータを送信をするために
は、ライトオペレーションを実行する。このライトオペ
レーションはコネクションCのためのコマンドエリアの
ベースから、同じオフセットだけ離れたロケーションに
対して実行される。この場合のライトオペレーションに
より書かれた値は無視される。物理アドレスの下位のビ
ットは、送信側のエンドポイントのデータブロックの物
理アドレスを示している。あるいは後述するが、下位の
ビットはオフセットを示す場合もある。そして、物理ア
ドレスの上位のビットはコネクション・ナンバーを意味
している。送信コントローラは、そのコネクションのセ
ンドレジスタに236から制御情報を抽出する。また、
セルを構成するためのデータブロックをリードする。あ
るいはデータはセンドレジスタ236の特別なブロック
から得るようにしてもかまわない。In order to transmit one block of data, which is separated from the base of the endpoint on the transmission side by an offset, to the network using the connection C, a write operation is executed. This write operation is performed for locations that are the same offset away from the base of the command area for connection C. The value written by the write operation in this case is ignored. The lower bits of the physical address indicate the physical address of the data block of the transmitting end point. Alternatively, as described later, the lower bit may indicate an offset. The upper bits of the physical address mean the connection number. The transmit controller extracts the control information from 236 into the send register for that connection. Also,
Read a block of data to make up a cell. Alternatively, the data may be obtained from a special block of send register 236.
【0173】ホストプロセッサによっては、データブロ
ックの物理アドレスとコネクション・ナンバーの両方を
示すために充分なビットの数を持たない場合がある。あ
るいはホストプロセッサによっては、センド・コントロ
ーラ234で用いるアドレスを示すには、充分なビット
数を持たない場合がある。このようなシステムにおいて
は、次のような二つの案が考えられる。第1の案はデー
タブロックの物理アドレスを、エンドポイントベースか
らのオフセットで置き換えてしまうものである。このよ
うに物理アドレスをエンドポイントのベースからのオフ
セットで置き換えてしまう場合は、センド・コントロー
ラ234により、エンドポイントのベースアドレスをア
クセス可能なように構成しなければならない。また、エ
ンドポイントの物理ページを連続的に配置させることが
望ましい。Some host processors do not have a sufficient number of bits to indicate both the physical address of the data block and the connection number. Alternatively, some host processors may not have a sufficient number of bits to indicate the address used by the send controller 234. In such a system, the following two plans can be considered. The first alternative is to replace the physical address of the data block with an offset from the endpoint base. When the physical address is thus replaced with the offset from the base of the endpoint, the send controller 234 must be configured to make the base address of the endpoint accessible. In addition, it is desirable to continuously arrange the physical pages of the endpoints.
【0174】第2案はデータブロックのセルアドレスを
右側にシフトする案である。最も単純な方法は、5ビッ
トだけ右にシフトすることである。データブロックは3
2バイトを一つの単位として、アクセスすることができ
るので、物理アドレスの下位5ビットは使用されない。
これは計算機がバイト単位にアドレスを行う場合を前提
としている。このように5ビット右側にシフトすること
により、5ビットの余裕が生まれる。この自由になった
5ビットを用いることにより、コネクション・ナンバー
の表示、および送信コントローラ234の用いるアドレ
スの表示を行うことが可能になる。しかし、この右側へ
のシフトは、以下のような欠点がある。ページオフセッ
トは仮想メモリのマッピングによっても変更されないの
で、エンドポイントのコマンドエリアが格納された仮想
アドレスと、データブロックが格納された物理アドレス
は以下のような制限によってリンクされている。エンド
ポイントのコマンドエリアの仮想ページのオフセットを
示す上位の5ビットは、データブロックを記憶した物理
ページの下位5ビットに対応している。このような制限
は、以下のような結果をもたらす。第1に、エンドポイ
ントのコマンドエリアのサイズは、エンドポイントより
も小さくて32バイトの倍数である。このようにしてコ
マンドエリアは、一つのデータブロックのベースアドレ
スにマッピングされる。エンドポイントの中の連続した
32ページからなる各ブロックは、このようにして同様
なメモリ保護を持つことができる。第2に、エンドポイ
ントのサイズは32ページの倍数である。この欠点は、
センド・コントローラ234がエンドポイントベースと
そのサイズをアクセスすることができればさほど問題で
はない。第3に、エンドポイントは、32個のページメ
モリ領域の中に割当られた32ページの連続するかたま
りにマッピングされる。The second method is to shift the cell address of the data block to the right. The simplest way is to shift right by 5 bits. 3 data blocks
Since 2 bytes can be accessed as one unit, the lower 5 bits of the physical address are not used.
This is premised on the case where the computer carries out addressing in byte units. By shifting to the right by 5 bits in this way, a margin of 5 bits is created. By using the free 5 bits, it becomes possible to display the connection number and the address used by the transmission controller 234. However, this shift to the right has the following drawbacks. Since the page offset is not changed even by the virtual memory mapping, the virtual address where the command area of the endpoint is stored and the physical address where the data block is stored are linked by the following restrictions. The upper 5 bits indicating the offset of the virtual page of the command area of the endpoint correspond to the lower 5 bits of the physical page storing the data block. Such restrictions have the following consequences. First, the size of the endpoint command area is smaller than the endpoint and is a multiple of 32 bytes. In this way, the command area is mapped to the base address of one data block. Each block of 32 consecutive pages in the endpoint can thus have similar memory protection. Second, the endpoint size is a multiple of 32 pages. This drawback is
It does not matter as long as the send controller 234 can access the endpoint base and its size. Third, the endpoint is mapped into a contiguous chunk of 32 pages allocated in the 32 page memory area.
【0175】センドレジスタ内のモードレジスタはセル
を送信するにあたり、二つの機能をもっている。まず第
1に、コネクションに用意されたコマンドエリアに実際
に書かれた値からオペランドを得る。そして第2に、ス
テータスの値が0以外の値のときに、送信を試みようと
した場合に例外処理を発生させる。この実施例において
は、ゴーレジスタは使用されないので説明を省く。The mode register in the send register has two functions for transmitting cells. First of all, the operand is obtained from the value actually written in the command area prepared for the connection. Secondly, when the status value is a value other than 0, exception processing occurs when an attempt is made to transmit. In this embodiment, the go register is not used and will not be described.
【0176】コネクション・テーブル140に記憶され
るステート情報150は、オペレーションが完了するま
では更新されない。このオペレーションの完了は、最後
の例外処理が生ずる可能性があるTLBミスがなかった
ことにより判定される。例えばアドレスレジスタへの書
き込み処理は、TLBミスが発生しないことが確定した
時点で、完了したものと見なされ、ステート情報150
が更新される。セルはインプット用に設けられたFIF
Oに一時蓄えられる。コネクションから発生したセル
が、一旦FIFOにためられると、ポストプロセッサに
より必要とされるまでFIFOの中にためられる。FI
FOの中にためられたセルは、前述したように最後の例
外処理を通過し、処理がコミットされたとき、FIFO
から取り出される。The state information 150 stored in the connection table 140 is not updated until the operation is completed. Completion of this operation is determined by the absence of a TLB miss that could result in the last exception handling. For example, the write processing to the address register is regarded as completed when it is determined that the TLB miss does not occur, and the state information 150
Will be updated. Cell is a FIF provided for input
It is temporarily stored in O. Once the cells originating from the connection have been stored in the FIFO, they are stored in the FIFO until needed by the post processor. FI
The cells stored in the FO go through the last exception handling as described above, and when the processing is committed, the FIFO
Taken from.
【0177】次に第2番目の実施例について以下に説明
する。この第2の実施例においては、第1の実施例で述
べた3つの制限がはずされる。すなわちこの第2の実施
例においては、(1)エンドポイントはページ単位によ
って制約されない。(2)リモートリードはホストプロ
セッサの割り込み処理を必要としない。(3)アドレス
レジスタに関するオペレーションがより自由に行える。
上記(1)のエンドポイントがページサイズに左右され
ないようにするために、エンドポイント・テーブル16
0は、仮想アドレスを記憶する。また、TLBは仮想ア
ドレスから物理アドレスへのマッピングを行う。この改
良は新たな問題点を生ずる。即ち、エンドポイントのペ
ージとして、割当られたページ以外への参照を行ってし
まうページフォールトを発生させてしまうかもしれな
い。このページフォールトの発生により、今までとは違
う例外処理を設けなければならない。そしてこれらのペ
ージフォールトはホストプロセッサによって処理されな
ければならない。ホストプロセッサは仮想マッピングテ
ーブルを管理しており、この仮想マッピングテーブルに
より、ページフォールトの例外処理を行う。この実施例
においては、オペレーティングシステムが、メモリのマ
ッピングインフォメーションを保持する責任を持つ。こ
のマッピング情報は、ホストプロセッサのメモリの状態
と適合したものでなければならない。Next, the second embodiment will be described below. In this second embodiment, the three restrictions mentioned in the first embodiment are removed. That is, in the second embodiment, (1) the endpoint is not restricted by the page unit. (2) Remote read does not require interrupt processing by the host processor. (3) The operation related to the address register can be performed more freely.
In order to prevent the endpoint of (1) above from being affected by the page size, the endpoint table 16
0 stores a virtual address. The TLB also maps virtual addresses to physical addresses. This improvement creates new problems. That is, a page fault may occur that refers to a page other than the assigned page as the endpoint page. Due to the occurrence of this page fault, exception handling different from the past must be provided. And these page faults must be handled by the host processor. The host processor manages a virtual mapping table, and this virtual mapping table performs exception handling of page faults. In this embodiment, the operating system is responsible for maintaining the memory mapping information. This mapping information should be compatible with the memory state of the host processor.
【0178】また、上記(2)のホストプロセッサの割
り込み処理を用いずに、リモートリードを処理するため
に、リードデータのためのアドレスマッピングが計算さ
れなければならない。この計算をするために、マッピン
グの機能を持っている受信側コンピュータが利用され
る。すなわち、リモートリードを要求したセルを送信す
る場合に、リードするデータのアドレスを計算するため
に、自分自身のマッピング機能を用いてアドレスを計算
するのである。従って、オペレーション・ロジック23
0は受信側の機能と送信側の機能の両方を実行しなけれ
ばならない。この実施例においては、オペレーション・
ロジック230は、リモートリードによる要求を送信す
るためばかりでなく、全ての送信に用いられる。結果と
して、この実施例においては、保護のために用いていた
仮想的にマッピングされたコマンドエリアを使用する必
要がなくなる。しかしながらこの実施例においては、仮
想的にマッピングされたセンドレジスタは必要である。
送信側のエンドポイントベースからオフセットの値だけ
離れた位置に存在するデータブロックを送信するため
に、オフセットの値がゴーレジスタの中に書き込まれ
る。このゴーレジスタへのオフセットの書き込みによ
り、そのオフセットで示されるデータが読み込まれてセ
ルのデータとして送信される。データブロックは、32
バイトを一つの単位として配置されており、オフセット
はその中の一つのデータブロックを読み込むために用い
られる。読み込まれたデータは、制御情報と一緒になり
セルを形成して出力される。制御情報はオペコードレジ
スタ、オペランドレジスタとインデックスレジスタの中
に格納されている。マルチプルセンドモードを指定する
ことも可能である。ステータスレジスタの中にセルの数
を設定することにより、指定されたオフセットから指定
された数のセルを連続して送信することができる。Further, the address mapping for the read data must be calculated in order to process the remote read without using the interrupt processing of the host processor of the above (2). To do this calculation, a receiving computer with mapping function is used. That is, when a cell requesting remote read is transmitted, the address is calculated using its own mapping function in order to calculate the address of the data to be read. Therefore, the operation logic 23
0 must perform both receiver and sender functions. In this example, the operation
Logic 230 is used for all transmissions, not just for transmitting requests by remote reads. As a result, in this embodiment, there is no need to use the virtually mapped command area used for protection. However, in this embodiment, virtually mapped send registers are required.
The offset value is written into the go register in order to transmit the data block located at a position offset by the offset value from the sender's endpoint base. By writing the offset to the go register, the data indicated by the offset is read and transmitted as cell data. 32 data blocks
The bytes are arranged as one unit, and the offset is used to read one data block in the byte. The read data, together with the control information, form a cell and are output. The control information is stored in the operation code register, operand register and index register. It is also possible to specify the multiple send mode. By setting the number of cells in the status register, the specified number of cells can be continuously transmitted from the specified offset.
【0179】この実施例においては、上記(3)の場合
より自由なオペレーションとして、3つの基本的なオペ
レーションが各メッセージ毎に実行できる。その3つの
基本的なオペレーションとは、アドレスジェネレーショ
ン、レジスタオペレーション、条件設定である。オペコ
ードはこれら基本的なオペレーションの選択と順序づけ
を制御する。オペコードの例として、リード、マルチプ
ルリード、ライト、マルチプルライト、ソフトウェア例
外処理がある。ソフトウェア例外処理は、ホストプロセ
ッサに割り込みを生ずる処理である。この実施例に用い
るインストラクションは直接指定するオペランドの他
に、3つのレジスタをオペランドとして指定することが
できる。アドレスレジスタ170への複数のアクセスを
すべて可能にするため、レジスタのオペレーションはす
べて3倍のクロックスピードで行われる。このように3
倍のクロックスピードを用いて、レジスタオペレーショ
ンを行うことにより、例外処理が起こった場合の状態復
帰の方法は、より複雑になってしまうという欠点があ
る。In this embodiment, three basic operations can be executed for each message as a more free operation than the case of the above (3). The three basic operations are address generation, register operation, and condition setting. Opcodes control the selection and ordering of these basic operations. Examples of opcodes are read, multiple read, write, multiple write, and software exception handling. The software exception process is a process that causes an interrupt to the host processor. In the instruction used in this embodiment, three registers can be designated as operands in addition to the operands directly designated. All register operations are performed at three times the clock speed to allow all multiple accesses to the address register 170. Like this 3
By performing the register operation using the double clock speed, there is a drawback in that the method of returning the state when exception processing occurs becomes more complicated.
【0180】第1と第2の実施例によって提供された制
御機能およびセルの処理機能よりもさらに、柔軟性に富
んだ機能を持ちたい場合が存在する。例えば、ロッキン
グのためのオペレーションや、スワップと比較のオペレ
ーションが望まれるかもしれない。あるいはあるアプリ
ケーションにとっては、セルを処理するプロトコルをカ
スタマイズする場合があるかもしれない。柔軟性という
のは、自由にプログラムできるかどうかということにか
かってくる。そして柔軟性というのは、常に複雑性とコ
ストの間のトレードオフによって決まってくるものであ
る。前述した二つの実施例に対して、柔軟性を増すため
の一つの方法は、レシーブ・コントローラ228とセン
ド・コントローラ234を、書き込み可能にすることで
ある。また、柔軟性を増す第2の方法は、セルの処理を
プログラマブルな有限状態マシンにより行うことであ
る。前述したレシーブ・コントローラ228とセンド・
コントローラ234を書き込み可能とする方法として、
以下のようなことが考えられる。ATMセルのヘッダに
続く最初のワードを、インデックスとして用いる。この
インデックスは、レシーブ・コントローラとセンド・コ
ントローラの内部にあるコントロールメモリのインデッ
クスとして用いられる。このコントロールメモリは、書
き込み可能になっており、コントロールメモリにはセル
の残りのフィールドを解釈したりする情報が記憶されて
いる。また、このコントロールメモリには、制御信号が
すべて設定されている。このコントロールメモリは、ハ
ードウェアにより結線されたセルの処理機能備えてい
る。あるいはプログラマブルなセルの処理機能を備えて
いる。これらの機能は、コネクションに依存した処理を
行うものであり、いろいろな種類のセル処理機能を持た
せることができる。あるいは、柔軟性を持たせるという
観点から、マイクロプロセッサを用いるようにしてもか
まわない。There are cases where it is desired to have more flexible functions than the control functions and cell processing functions provided by the first and second embodiments. For example, a locking operation or a swap and compare operation may be desired. Alternatively, for some applications, the cell handling protocol may be customized. Flexibility depends on being free to program. And flexibility is always a trade-off between complexity and cost. One way to increase flexibility over the two embodiments described above is to make the receive controller 228 and send controller 234 writable. A second method of increasing flexibility is to process cells with a programmable finite state machine. The receive controller 228 and the send
As a method for making the controller 234 writable,
The following can be considered. The first word following the header of the ATM cell is used as the index. This index is used as an index of the control memory inside the receive controller and the send controller. This control memory is writable, and the control memory stores information for interpreting the remaining fields of the cell. Further, all control signals are set in this control memory. This control memory has a processing function of cells connected by hardware. Alternatively, it has a programmable cell processing function. These functions perform processing depending on the connection and can have various kinds of cell processing functions. Alternatively, a microprocessor may be used from the viewpoint of providing flexibility.
【0181】このような観点から第3の実施例において
は、一般的に用いられているマイクロプロセッサを用い
た例を説明する。このマイクロプロセッサはフロントエ
ンド全体の処理を司るためのものであり、例えば通信用
のコプロセッサであることが望ましい。マイクロプロセ
ッサを用いることにより、ハードウェアを簡単化するこ
とができる。なぜならば、マイクロプロセッサの内部の
コントロールロジックのすべてを用いることができると
ともに、そのマイクロプロセッサ自身のTLBを前述し
たTLB180として、そのまま用いることができるか
らである。エンドポイント番号は、仮想アドレスの上位
のビットを用いて表現するようにしてもかまわない。ま
た、マイクロプロセッサを用いることにより、完全にプ
ログラマブルな、セルの処理およびセルの制御をするこ
とができる。From such a viewpoint, in the third embodiment, an example using a commonly used microprocessor will be described. This microprocessor is for controlling the entire processing of the front end, and is preferably a coprocessor for communication, for example. By using a microprocessor, the hardware can be simplified. This is because all the control logic inside the microprocessor can be used, and the TLB of the microprocessor itself can be used as it is as the above-mentioned TLB 180. The endpoint number may be expressed by using the upper bits of the virtual address. Also, the use of a microprocessor allows for fully programmable cell processing and cell control.
【0182】この第3の実施例によれば、155Mbp
sのスピードを持つときでさえ、充分な柔軟性を提供し
てくれるが、すべての場合に対してマイクロプロセッサ
を使えるとは限らない。ハイレベルなオペレーションを
処理しなければならない場合には、マイクロプロセッサ
を使用するのは妥当性がある。例えば、マイクロプロセ
ッサを用いることは、ホストプロセッサをリードオペレ
ーションから開放するという点については、非常に効果
的である。このようなマイクロプロセッサを用いる場合
においても、ハードウェアで結線されたアドレスジェネ
レーションや、ハードウェアで結線されたマッピング回
路を用いることは、マイクロプロセッサの負荷を減少さ
せるために有効である。According to this third embodiment, 155 Mbp
It provides sufficient flexibility even at speeds of s, but may not be available for microprocessors in all cases. If you have to handle high-level operations, it makes sense to use a microprocessor. For example, using a microprocessor is very effective in relieving the host processor from read operations. Even when such a microprocessor is used, using an address generation connected by hardware or a mapping circuit connected by hardware is effective in reducing the load on the microprocessor.
【0183】次に第4の実施例について説明する。第4
の実施例はプログラマブルなセルインタプリタを用い
る。即ち第4の実施例は、第1と第2に述べたハードウ
ェア制御による場合と、第3の実施例で述べたマイクロ
プロセッサによる制御の場合の混合された場合を示して
いる。複雑なデコーディングや複雑なオペレーション
は、ホストプロセッサかコプロセッサの何れかによって
処理される。この第4の実施例においては、各種の機能
はプログラマブルなゲートアレイによって、提供される
ことが望ましい。このプログラマブルなゲートアレイ
は、各種テーブルを格納したDRAMと共同して各種機
能を実行する。このプログラマブルゲートアレイにより
提供される機能の中に、コプロセッサによってフロント
エンドに提供されていた機能を含ませるようにしてもか
まわない。ゲートアレイがコプロセッサの行っていた機
能を含むことにより、コプロセッサの負荷を減少させる
ことができる。このようにコプロセッサの負荷を減少さ
せることは、622Mbpsあるいは1.2Gbpsの
ような、高速なデータレートを扱う場合に効率と柔軟性
の両方の点から非常に重要なことである。Next, the fourth embodiment will be described. Fourth
Embodiment uses a programmable cell interpreter. That is, the fourth embodiment shows a mixed case of the hardware control described in the first and second embodiments and the microprocessor control described in the third embodiment. Complex decoding and complex operations are handled by either the host processor or coprocessor. In this fourth embodiment, the various functions are preferably provided by a programmable gate array. This programmable gate array executes various functions in cooperation with a DRAM that stores various tables. The functions provided by the coprocessor to the front end may be included in the functions provided by the programmable gate array. Since the gate array includes the function performed by the coprocessor, the load on the coprocessor can be reduced. Reducing the coprocessor load in this way is very important both in terms of efficiency and flexibility when dealing with high data rates such as 622 Mbps or 1.2 Gbps.
【0184】前述した実施例1から4において、可能で
ある限り、パイプライン処理を行うことにより、さら
に、高効率を達成することができる。しかしながら、1
55Mbpsのデータレートを用いる場合には、データ
が到着する間隔は約50nsecである。この50ns
ecのインターバルは、アドレスの設定と制御を完了さ
せるために充分な時間である。パイプライン処理を行う
場合に、メモリを階層的にアクセスする場合が生ずるか
もしれない。その場合には、メモリを階層的にアクセス
するアクセス時間を満足させるために、1ワードかそれ
に相当するデータをバッファに一時的に蓄える必要が生
ずるかもしれない。622Mbpsのデータレートを使
用する場合には、パイプライン処理は2,3の段階に分
けて、行われるだけでよい。In the above-described first to fourth embodiments, the pipeline processing is performed as much as possible to achieve higher efficiency. However, 1
When using a data rate of 55 Mbps, the data arrival interval is about 50 nsec. This 50 ns
The ec interval is a sufficient time to complete the address setting and control. When performing pipeline processing, it may occur that memory is accessed hierarchically. In that case, in order to satisfy the access time for hierarchically accessing the memory, it may be necessary to temporarily store one word or the corresponding data in the buffer. When using a data rate of 622 Mbps, the pipeline processing need only be performed in a few stages.
【0185】前述したいくつかの実施例は、フロントエ
ンド210の実施例を説明したものである。このフロン
トエンドは、ネットワークインタフェースのバス214
(バックエンドともいう)に接続されている。バックエ
ンドとなるバス214はフロントエンドをホストプロセ
ッサのメモリに接続するためのものである。このバック
エンドとなるバス214の実施例として、以下に3つの
実施例をあげて説明する。The several embodiments described above describe embodiments of the front end 210. This front end is the bus 214 of the network interface.
(Also called the back end). The back end bus 214 is for connecting the front end to the memory of the host processor. As examples of the back end bus 214, three examples will be described below.
【0186】第1の実施例として、前述したフロントエ
ンドが、メインメモリのバスに直接接続される場合が考
えられる。キャッシュコントローラが準備されており、
キャッシュコントローラがキャッシュの整合性を保つた
めに、メインメモリのバスを監視する。第2の実施例と
して、汎用バスインタフェースを用いる場合が考えられ
る。第1の実施例に示したメインメモリのバスに直接フ
ロントエンドを接続する方式は、性能の点から魅力的で
あるが、それは一つのオプションである。この実施例で
は、PCIバスのような汎用バスを用いてフロントエン
ドを接続する。このような汎用バスインタフェースを用
いることにより、このシステムをより開かれたマーケッ
トに対して適合させることができる。PCIバスのよう
な、汎用バスを用いる欠点は遅延が生ずることである。
この遅延はバスの主導権を得るために発生する。汎用バ
スに接続された他のデバイスとの競合が発生し、バスの
主導権を得るために遅延が発生してしまう。このように
遅延が発生してしまうことにより、データをバッファリ
ングしなければならない場合が存在する。データのバッ
ファリングを行うことにより、さらに遅延を増加させる
可能性が生ずる。As a first embodiment, it is conceivable that the front end described above is directly connected to the main memory bus. A cache controller is prepared,
The cache controller monitors the main memory bus to maintain cache coherency. As a second embodiment, it is possible to use a general-purpose bus interface. The method of connecting the front end directly to the main memory bus shown in the first embodiment is attractive in terms of performance, but it is an option. In this embodiment, a general-purpose bus such as a PCI bus is used to connect the front ends. By using such a general-purpose bus interface, this system can be adapted to a more open market. The disadvantage of using a general purpose bus, such as the PCI bus, is that it introduces delay.
This delay occurs to gain control of the bus. Contention with other devices connected to the general-purpose bus occurs, and a delay occurs to take control of the bus. Due to such a delay, data may need to be buffered in some cases. Buffering the data may increase the delay even further.
【0187】バックエンドとなるバスの第3の実施例と
して、キャッシュメモリに直接接続するインタフェース
が考えられる。この方法によればプロセッサを修正変更
する必要がない。この実施例においては、ネットワーク
がプロセッサの外部に設けられたキャッシュに対して直
接接続される。ネットワークをキャッシュに直接接続す
ることにより、メッセージデータを複写するという作業
をなくすことができる。ネットワークトラフィックによ
り、このキャッシュの機能を必要以上に弱めることがな
いようにするために、そして、結果としてそのキャッシ
ュに接続されたプロセッサの性能を減少させることがな
いようにするために、図7に示すように、別個のメッセ
ージキャッシュ252を用意してこのメッセージキャッ
シュをネットワークに接続するようにしてもかまわな
い。As a third embodiment of the back end bus, an interface directly connected to the cache memory can be considered. This method does not require modification of the processor. In this embodiment, the network connects directly to a cache external to the processor. By connecting the network directly to the cache, the work of copying the message data can be eliminated. In order to prevent network caches from unnecessarily weakening the function of this cache and, consequently, reducing the performance of the processors connected to that cache, FIG. As shown, a separate message cache 252 may be provided and this message cache may be connected to the network.
【0188】図7においては、メッセージキャッシュ2
52がバス256を介して、マイクロプロセッサ250
に接続されている。メッセージキャッシュ252は、バ
ス258を介してデータキャッシュ254とメインメモ
リ(あるいはホストメモリ、図示せず)に接続されてい
る。マッピング・ユニット260はバス262を介し
て、メッセージキャッシュ252をネットワークに接続
する。In FIG. 7, the message cache 2
52 via the bus 256 to the microprocessor 250
It is connected to the. The message cache 252 is connected to the data cache 254 and the main memory (or host memory, not shown) via the bus 258. Mapping unit 260 connects message cache 252 to the network via bus 262.
【0189】このメッセージキャッシュ252は、階層
化されたメモリの中の一部として構成されている。すな
わち、メッセージキャッシュ252はデータキャッシュ
254と同じ層に存在しており、メインメモリという別
な層とマイクロプロセッサ250の間に存在している。
メッセージキャッシュ252がデータキャッシュ254
と同じ層に存在しているのは、バス256とバス258
の間に両者とも存在していることにより明かである。従
って、メッセージキャッシュに一旦データが書き込まれ
た場合には、メッセージキャッシュからそのデータを他
の層にあるメモリにコピーする必要はない。すなわちメ
ッセージバッファにデータが書き込まれることにより、
プロセスはそのデータをアクセスすることができる。メ
ッセージキャッシュ252へのインタフェースは、予め
準備されているデータキャッシュのインタフェースをそ
のまま流用することにより達成するこができる。従っ
て、開発の費用を伴うこともなく、特別な目的を持った
修正や変更も行う必要もなく、また、プロセッサをカス
タマイズすることもない。キャッシュのブロックサイズ
を例えば32バイトにしている場合、メッセージのサイ
ズをそのキャッシュのブロックサイズと等しくするとい
う制限を付け加えることにより、キャッシュの各ブロッ
クがブロック毎に自動的に更新されるので、効率が良い
キャッシュアクセスができる。すなわち、メッセージの
サイズとキャッシュのブロックサイズを等しくすること
により、キャッシュのブロックの一部分を更新するとい
う複雑でかつ遅い処理を除去することができる。The message cache 252 is constructed as a part of a hierarchical memory. That is, the message cache 252 exists in the same layer as the data cache 254, and exists between another layer called the main memory and the microprocessor 250.
The message cache 252 is the data cache 254
Bus 256 and bus 258 exist in the same layer as
It is clear that both exist during the period. Therefore, once the data is written to the message cache, it is not necessary to copy the data from the message cache to the memory in another layer. In other words, by writing data in the message buffer,
The process can access the data. The interface to the message cache 252 can be achieved by diverting the interface of the data cache prepared in advance. Thus, there is no development expense, no special purpose modifications or changes are required, and no processor customization is required. For example, if the block size of the cache is 32 bytes, each block of the cache is automatically updated for each block by adding a restriction that the size of the message is equal to the block size of the cache. You have good cache access. That is, by making the message size equal to the cache block size, the complicated and slow process of updating a part of the cache block can be eliminated.
【0190】図7に示すキャッシュを直接アクセスする
インタフェースを用いる場合の問題は、メッセージキャ
ッシュ252とデータキャッシュ254の間の整合性を
とる場合に、如何にしてオーバヘッドを少なくするかと
いう点である。この問題を解決するためにメッセージキ
ャッシュ252への書き込み処理は、ネットワークから
だけのみ行われるようにする。このようにネットワーク
からのみの書き込みを許すことにより、キャッシュ25
2と254間の整合性の問題が減少する。メッセージキ
ャッシュ252への書き込みがあるたびに、データキャ
ッシュ254にある対応するブロックをチェックすると
ともに、そのブロックを無効にする。このチェックはメ
ッセージキャッシュ252とデータキャッシュ254
に、それぞれ備えられているマッチングタグを用いるこ
とにより行われる。データキャッシュ254をチェック
することにより生ずる悪影響は、データキャッシュ25
4のキャッシュタグのシャドウコピーをチェックするこ
とにより、最小に抑えられる。前述したキャッシュを直
接するアクセスするインタフェースの詳細に関しては、
1993年11月16日付けでアメリカ特許庁に出願さ
れた「ロー・レーティンシー・ネットワークインタフェ
ース」(ランディ・オズボーン)に記述されている。A problem in using the interface for directly accessing the cache shown in FIG. 7 is how to reduce the overhead when the consistency between the message cache 252 and the data cache 254 is maintained. In order to solve this problem, the writing process to the message cache 252 is performed only from the network. By allowing writing only from the network in this way, the cache 25
Consistency issues between 2 and 254 are reduced. Each time there is a write to the message cache 252, it checks the corresponding block in the data cache 254 and invalidates that block. This check is performed by the message cache 252 and the data cache 254.
Is performed by using the matching tags provided in each. The adverse effect caused by checking the data cache 254 is the data cache 25
It is minimized by checking the shadow copy of the 4 cache tag. For details on the interface to access the cache directly,
It is described in "Low Latency Network Interface" (Randy Osbourne), filed with the United States Patent Office on Nov. 16, 1993.
【0191】前述したネットワークインタフェースの各
種実施例に対して、いろいろな修正や変形を加えること
が可能である。例えば、前述した例外処理やフロー・コ
ントロールをフロントエンドで実行させるようにしても
かまわない。例外処理は、エラートラップ、保護違反、
予定されていないオペレーション、TLBミスおよびペ
ージフォールトにより発生される。この例外処理は、シ
ステムのセルの処理を遅らせる。そしてセルのフロー・
コントロールに悪影響を及ぼす。また、セルの処理はホ
ストプロセッサがシステムのメモリにアクセスする場合
に、アトミック性を確実なものとするために中断される
場合がある。例外処理の中でも特に、エラートラップが
生じた場合には、この問題は、異常があったセルを即座
に廃棄してしまうことにより、完全に排除することがで
きる。あるいは異常があったセルを、例外処理のための
待ち行列に入れてしまうことにより問題を解決すること
ができる。例外処理の待ち行列に入れられたセルは、任
意の時刻にオペレーティングシステムにより検査され
る。このように異常があったセルを廃棄してしまうとい
う方法は、エラートラップ以外の他の例外処理に対して
は、用いることがない。なぜならば異常があったセルが
廃棄されたとしても、リトライのためのメッセージが送
信側コンピュータから送られてくるからである。このよ
うにリトライのためのメッセージが送られてくる場合に
は、次の処理を行う前に障害の発生した状況を修復して
おかなければならない。その修復作業の間、到着したセ
ルは廃棄されるかバッファに一時蓄えられる。あるい
は、セルの到着を制限する。Various modifications and variations can be made to the various embodiments of the network interface described above. For example, the above-mentioned exception handling and flow control may be executed in the front end. Exception handling includes error traps, protection violations,
Raised by unscheduled operations, TLB misses and page faults. This exception handling delays the processing of cells in the system. And the flow of cells
It adversely affects control. Also, cell processing may be interrupted to ensure atomicity when the host processor accesses the system memory. Especially in the exception handling, when an error trap occurs, this problem can be completely eliminated by immediately discarding the abnormal cell. Alternatively, the problem can be solved by putting the abnormal cell in the queue for exception processing. The cells queued for exception handling are examined by the operating system at any time. The method of discarding an abnormal cell in this way is not used for exception processing other than the error trap. This is because even if the abnormal cell is discarded, a message for retry is sent from the sending computer. When a message for retry is sent in this way, the faulty situation must be repaired before the next process is performed. During the repair work, the arriving cells are either discarded or temporarily stored in a buffer. Alternatively, it limits the arrival of cells.
【0192】前述した場合は、障害が発生したコネクシ
ョンに属しているセルに当てはまるものである。他の障
害が発生していないコネクションに属するセルは、障害
の状況が保存されてから、直ちに処理が続行される。障
害が発生したコネクションに属するセルは処理されな
い。例え、その障害によってセルが影響を受けないよう
な場合であっても、そのセルは処理されない。例えば、
新たに到着するセル自身がTLBミスやページフォール
トを発生させないような場合であっても、それらの後続
の新たなセルは処理されない。なぜならば、アプリケー
ションによってはATMセルの到着順序を保証しなけれ
ばならない場合があるからである。この到着順序の保証
は、チャネル毎に行われるものである。このチャネル
は、このシステムにおいてコネクションの中に確立され
るものである。したがって、障害が発生したエンドポイ
ントと、同じエンドポイントに接続されている他のコネ
クションに属するセルの処理を続行することには何ら問
題はない。但し、これらのセルが新たな障害を生ずる可
能性を含んでいる。The above case applies to cells belonging to a failed connection. For other cells belonging to the connection in which no failure has occurred, the status of the failure is saved and then the processing is continued immediately. Cells belonging to the failed connection are not processed. Even if the failure does not affect the cell, it is not processed. For example,
Even if the newly arriving cell itself does not cause a TLB miss or page fault, those subsequent new cells are not processed. This is because the arrival order of ATM cells may have to be guaranteed depending on the application. The guarantee of the arrival order is performed for each channel. This channel is the one established in the connection in this system. Therefore, there is no problem in continuing the processing of the cell belonging to the failed endpoint and the other connection connected to the same endpoint. However, there is a possibility that these cells will cause new failures.
【0193】以下に例外処理に対処する場合の、対策に
ついて説明する。まず第1に問題のあったセルを出来る
だけ早く、フロントエンドから取り去る必要がある。エ
ラートラップを生ずるセルは、廃棄するか待ち行列に入
れてしまうことができる。その他の問題となったセル
は、インプット用のFIFOに一時的に格納する。問題
が生じたコネクションは、障害が発生したコネクション
であるというマークがなされる。次にその問題が発生し
たコネクションに対して、セルを送信している送信側コ
ンピュータに対して、セル送信の抑制を行うフロー・コ
ントロールが起動される。フロー・コントロールが立ち
上がるまでの間に、その障害があったコネクションに到
着したセルは、バッファの中に一時蓄えられる。一方障
害がなかった他のコネクションは通常通りのセルの処理
を続行する。エラートラップが発生した場合には、前述
したセルの廃棄という処理のみが行われる。ホストプロ
セッサによるアクセス処理のために、システムが一時中
断されるというような他の例外処理の場合には、すべて
のコネクションに対して、データの送信抑圧やバッファ
リングが行われる。データの送信抑圧処理とバッファリ
ング処理は、セルのフロー・コントロールを行うという
点からみれば、どちらも等価的な処理である。Measures for dealing with exception processing will be described below. First of all, you need to remove the offending cell from the front end as soon as possible. The cell that causes the error trap can be discarded or queued. Other problematic cells are temporarily stored in the input FIFO. The failed connection is marked as the failed connection. Then, for the connection in which the problem occurs, the flow control that suppresses cell transmission is activated for the transmitting computer that is transmitting the cell. By the time flow control is up, cells arriving at the failed connection are temporarily stored in a buffer. On the other hand, the other connections that have not failed continue to process cells normally. When an error trap occurs, only the above-mentioned cell discard process is performed. In the case of other exceptional processing in which the system is temporarily suspended due to the access processing by the host processor, data transmission suppression and buffering are performed for all connections. The data transmission suppressing process and the buffering process are both equivalent processes from the viewpoint of performing cell flow control.
【0194】TLBのサイズが非常に大きなものとなる
場合には、ハイブリッドアドレスマッピングを用いるよ
うにしてもかまわない。このハイブリッドアドレスマッ
ピングというのは、エンドポイント・テーブル160と
TLB180の両方を用いてマッピングを行う場合をい
う。エンドポイント・テーブル160の各エンドポイン
トベースのエントリ162には、一つあるいは二つのマ
ッピングを記憶するようにさせ、TLBに残りのマッピ
ングを記憶させるようにする。このハイブリッドアドレ
スマッピングの考え方は、フロントエンドの第1の実施
例で述べたものをさらに一般的に拡張したものである。
フロントエンドの第1の実施例においては、エンドポイ
ントのページサイズが、一つのページサイズ以下である
場合に、エンドポイント・テーブル160のエンドポイ
ントベース164に対して、直接エンドポイントのペー
ジを得るためのマッピングを記憶させている場合を説明
した。このハイブリッドアドレスマッピングは、そのよ
うな考え方とTLBを用いる考え方との両方を合成した
考え方である。エンドテーブル160のエンドポイント
ベース164のマッピング処理は、アプリケーションに
よって行われてもよい。アプリケーションにより、マッ
ピングを行う場合は、アプリケーションによってまもな
く使われる可能性が高いマッピングを常に記憶すること
ができる。When the size of the TLB becomes very large, hybrid address mapping may be used. This hybrid address mapping refers to a case where mapping is performed using both the endpoint table 160 and the TLB 180. Each endpoint-based entry 162 of the endpoint table 160 is made to store one or two mappings and the TLB is stored the remaining mappings. The concept of this hybrid address mapping is a general extension of the one described in the first embodiment of the front end.
In the first example of the front end, in order to obtain the page of the endpoint directly from the endpoint base 164 of the endpoint table 160 when the page size of the endpoint is less than or equal to one page size. The case where the mapping of is stored is explained. This hybrid address mapping is a concept that combines both such a concept and the concept using TLB. The mapping process of the endpoint base 164 of the end table 160 may be performed by an application. When the application does the mapping, it can always store the mapping that is likely to be used by the application soon.
【0195】コネクション・テーブル140とエンドポ
イント・テーブル160のローカル化を行うようにして
もかまわない。多くのコネクションがある場合、および
多くのエンドポイントが存在する場合、コネクション・
テーブル140とエンドポイント・テーブル160のサ
イズが大きくなる。テーブルのサイズを減少させるため
の一つの方策は、テーブルからエントリをページアウト
することによって、ローカリティを達成することであ
る。このようにローカリティが達成されたテーブルをア
クセスして、ページフォールトが生じた場合には、ネッ
トワークインタフェースは、ページフォールトが生じた
セルを、処理するパイプラインから除去し、バッファの
中に一時格納する。そしてページフォールトが生じたコ
ネクションに対して、到着するセルのフロー・コントロ
ールを行う。ホストプロセッサはテーブルのページング
を行い状態を復元する。そしてページフォールトが起こ
ったコネクションのセルの処理を再開させる。The connection table 140 and the endpoint table 160 may be localized. If you have many connections, and many endpoints,
The sizes of the table 140 and the endpoint table 160 are increased. One way to reduce the size of a table is to achieve locality by paging out entries from the table. In the case where a page fault occurs by accessing the table having the thus achieved locality, the network interface removes the cell having the page fault from the processing pipeline and temporarily stores it in the buffer. . Then, for the connection in which the page fault has occurred, flow control of the arriving cell is performed. The host processor pages the table and restores the state. Then, processing of the cell of the connection in which the page fault has occurred is restarted.
【0196】また、ネットワークに対する適切なアクセ
スを提供するため、及びネットワークのデッドロックを
防ぐためのいくつかの構成が追加されてもかまわない。
このような構造を追加することにより、複数のプロセス
が互いに妨害し合うことを防ぐことができる。複数のプ
ロセスが実行されている場合には、ネットワークがブロ
ッキングされたり、あるいはネットワークに渋滞が生ず
る。最悪な場合にはデッドロックを生ずる場合がある。
新たに追加する構成は、これらの障害を防止するための
ものである。また、ネットワークへのアクセスを公正に
保つために、アクセスを許可する許可制御が行われるよ
うにしてもかまわない。この許可制御は、他のコネクシ
ョンが動作を保留中である場合に、あるコネクションが
ネットワークへデータを送ることができる期間を制限す
るものである。すなわち、この許可制御はフロー・コン
トロールが成されていないトラフィックが生ずることを
防止するものである。性能の観点から、オペレーティン
グシステムのトラフィックにプライオリティを与えるよ
うにしてもかまわない。デッドロックを防止するために
は、以上のような幾つかのステップを必要とする。まず
第1に、各コネクションは独立したフロー・コントロー
ルを有していなければならない。通常の標準化されたA
TMネットワークや標準化されたインタフェースを用い
る場合には、VCI/VPI毎に独立したフロー・コン
トロールを行うことができる。第2に、全てのセルの処
理を中断させてしまう例外処理が発生した場合には、そ
の例外処理の期間を限らなければならない。第3に、ネ
ットワークから返答を要求するセルを除去しなければな
らない。たとえ応答用コネクションがフロー・コントロ
ールされている場合でも、返答を要求するセルを出力し
ないようにする。この返答を要求するセルの除去は、返
答を伝えるためのコネクションを設け、この返答のため
のコネクションごとにバッファを設けることにより可能
になる。例えば、返答のための各コネクションに対し
て、フロー・コントロールがなされたバッファを準備す
るとともに、各セルに別個のVCI/VPIを割り当て
ることによって行われる。また、送信のための許可制御
は、新たな送信に対してよりも、返答の送信のトラフィ
ックに対してより優先度を高くすべきである。Also, some configurations may be added to provide appropriate access to the network and to prevent network deadlock.
By adding such a structure, it is possible to prevent a plurality of processes from interfering with each other. When multiple processes are executed, the network is blocked or the network is congested. In the worst case, deadlock may occur.
The newly added configuration is to prevent these failures. Further, in order to keep the access to the network fair, permission control for permitting the access may be performed. This admission control limits the period during which one connection can send data to the network when another connection is pending operation. That is, this admission control prevents the generation of traffic for which flow control is not performed. From the viewpoint of performance, it is possible to give priority to the traffic of the operating system. In order to prevent deadlock, several steps as described above are required. First of all, each connection must have independent flow control. Normal standardized A
When using a TM network or a standardized interface, independent flow control can be performed for each VCI / VPI. Secondly, when an exceptional process that interrupts the process of all cells occurs, the period of the exceptional process must be limited. Third, the cells requesting a reply from the network must be removed. Do not output cells requesting a reply, even if the response connection is flow controlled. The cell requesting this reply can be removed by providing a connection for transmitting the reply and providing a buffer for each connection for this reply. This is done, for example, by preparing a flow-controlled buffer for each connection for reply and assigning a separate VCI / VPI to each cell. Also, the admission control for the transmission should have a higher priority for the traffic of the reply transmission than for the new transmission.
【0197】オペレーティングシステム自身が、常に処
理を続行できるようにするために、オペレーティングシ
ステム自身がそれ自身のためのコネクションを持つべき
である。オペレーティングシステムが使用するページへ
のアクセスは、どのようなページであってもページ単位
に行われるべきである。オペレーティングシステムが使
用するページには、コネクション・テーブルやエンドポ
イント・テーブルやアドレスレジスタが記憶される。こ
れらの情報は、ページをまたがって記憶されないように
する。ページをまたがって記憶された場合には、ページ
をまたがったアクセス処理による生ずる遅延を生じてし
まうからである。In order for the operating system itself to always be able to continue processing, it should have a connection for itself. Access to pages used by the operating system should be performed on a page-by-page basis, regardless of the type of page. A page used by the operating system stores a connection table, an endpoint table, and address registers. This information is not stored across pages. This is because if the data is stored across pages, a delay occurs due to the access processing across the pages.
【0198】グローバルアドレスレジスタというもの
を、フロントエンドで使用するようにしてもかまわな
い。前述した各種の実施例においては、アドレスレジス
タ170は、各コネクション毎に設けられたプライベー
トなものであった。このようにアドレスレジスタを各コ
ネクション毎に設ける場合は、複数のコネクションが同
一のエンドポイントに対して接続され、かつ、複数のコ
ネクションが共通の待ち行列を使用する場合には不便で
ある。このような不便さを解決するための方法として、
そのエンドポイントに対して共通に用いられるグローバ
ルなアドレスレジスタを設ける。このグローバルなアド
レスレジスタは、コネクション毎に割り当てられるもの
ではない。エンドポイント・テーブル160は、グロー
バルアドレスレジスタに対して、エンドポイントベース
と領域を出力する。グローバルアドレスレジスタは、ロ
ーカルなアドレスレジスタと同じメモリの中に生成する
ことができる。A global address register may be used in the front end. In the various embodiments described above, the address register 170 is a private one provided for each connection. When the address register is provided for each connection as described above, it is inconvenient when a plurality of connections are connected to the same end point and a plurality of connections use a common queue. As a method to solve such inconvenience,
A global address register commonly used for the endpoint is provided. This global address register is not assigned for each connection. The endpoint table 160 outputs the endpoint base and area to the global address register. The global address register can be created in the same memory as the local address register.
【0199】バッファのフラグメンテーションをフロン
トエンドの中で行うようにしてもかまわない。マルチプ
ルセルメッセージの場合には、ATMのAAL5による
48バイトのペイロードを2のべきじょうのサイズメモ
リにマッチングさせること、および48バイトのペイロ
ードをキャッシュブロックのサイズにマッチングさせる
ことが、バッファのフラグメンテーションの問題を生ず
る。もし、32バイトを1ブロックとする場合には、1
6バイトのフラグメンテーションを用いることができ
る。送信側コンピュータと受信側コンピュータの両方
が、データを32バイトのブロックに区切ったり合成す
るために、フラグメンテーションバッファを用いること
ができる。このサイズは、メモリとキャッシュブロック
のサイズによってどのようなものでもかまわない。しか
しながら、標準のATMインタフェースに、すでに存在
しているセグメンテーションとリアッセンブリをサポー
トするというのが、最も効果的な方法であると考えられ
る。The fragmentation of the buffer may be performed in the front end. In the case of multiple cell messages, matching a 48-byte payload with ATM AAL5 to a power-of-two size memory and matching a 48-byte payload to the size of a cache block can cause buffer fragmentation problems. Cause If 32 bytes make one block, 1
6-byte fragmentation can be used. Both the sending and receiving computers can use fragmentation buffers to partition or combine data into blocks of 32 bytes. This size can be anything depending on the size of the memory and cache block. However, supporting the already existing segmentation and reassembly on the standard ATM interface seems to be the most effective way.
【0200】送信側コンピュータと受信側コンピュータ
のアドレスは、メモリのブロックとキャッシュのブロッ
クに適合しない場合であってもかまわない。送信側コン
ピュータと受信側コンピュータが同じアライメントを持
っていると仮定すれば、送信側コンピュータから、その
アライメントされたブロックが送信され、受信側コンピ
ュータで必要のない部分はマスクされ除去される。この
ように、必要とされないデータの除去は、セルの有効利
用には結びつかない。しかし、アライメントのミスによ
るデータの伝送はまれである。他に考えられる性能上の
欠陥としては、いくつかのアーキテクチャーのもとにお
いては、サブブロックへのアドレッシングを禁止してい
るものがあるということである。その場合には、ブロッ
ク全体を読み込み、マスク処理を行って選択的にそのサ
ブブロックの書き込みを行わなければならない。このよ
うなマスクオペレーション、あるいはスキャターオペレ
ーションは、受信側コンピュータによって行われる。あ
るいは、送信側コンピュータがマスキングを行うように
してもかまわない。送信側コンピュータがマスキング処
理を行う場合には、ギャザー機能がない限り、その処理
はオプションとなる。ネットワークに対して、あるフィ
ールドのデータが出力されることを防ぐようにすること
は、セキュリティの面から非常に有効である。しかし、
そのような処理は、効率の点からは何もメリットがな
い。The addresses of the sending computer and the receiving computer may not match the memory block and the cache block. Assuming the sending and receiving computers have the same alignment, the sending computer will send the aligned blocks and the receiving computer will mask and remove the unwanted parts. Thus, the removal of unnecessary data does not lead to effective use of cells. However, data transmission due to misalignment is rare. Another possible performance flaw is that under some architectures, sub-block addressing is prohibited. In that case, the entire block must be read, masked, and selectively written to the sub-block. Such mask operation or scatter operation is performed by the receiving computer. Alternatively, the transmitting computer may perform masking. If the sending computer performs a masking process, the process is optional unless it has a gather function. It is very effective in terms of security to prevent the data of a certain field from being output to the network. But,
Such processing has no merit in terms of efficiency.
【0201】ある場合においては、送信するアドレス
は、ブロックのバウンダリおよび受信側コンピュータの
アドレスという点からみて、いずれも適合しないもので
あるかもしれない。そのような場合には、マスキングと
シフティングを行うことによりその問題に対して、対処
することができる。この問題を解決するためにアライメ
ントシフターを準備しておけばよい。In some cases, the address to be transmitted may not match in terms of the boundary of the block and the address of the receiving computer. In such a case, the problem can be dealt with by performing masking and shifting. An alignment shifter should be prepared to solve this problem.
【0202】また、フロントエンドにおいて、プリフェ
ッチキューを使用するようにしてもかまわない。データ
を前もってフェッチしておくことは、遅延を防止するた
めに有効である。先に述べたシステムにおいては、すで
にプリフェッチキューをサポートしている。完全なプリ
フェッチを提供するために、プリフェッチを使用するこ
とができるプロセッサを使用すべきである。例えばDE
Cアルファのようなプロセッサを用いる。また、プリフ
ェッチを行うために、プロセッサからのプリフェッチ要
求をデコードするとともに、その要求に基づいて実際の
フェッチを行うハードウェアが準備されなければならな
い。このようなプリフェッチのハードウェアを汎用バス
を使用したインタフェースに搭載することは難しい。し
かし、それはCray Tera 3Dによりなされた
ように、それは不可能ではない。そのような場合には、
ネットワークインタフェースがデータバスに直接接続さ
れるというデザインが成されるであろう。フェッチの実
行を起動する何等かの方法が準備されている場合、フェ
ッチのリターンアドレスは単に待ち行列の後部に格納さ
れてゆく。そのリターンアドレスを格納したキューが空
でない場合には、通常の割り込み処理を用いてキューに
リターンアドレスが残っていることを知らせることがで
きる。The front end may use the prefetch queue. Fetching data in advance is effective in preventing delay. The system described above already supports prefetch queues. To provide full prefetch, a processor capable of using prefetch should be used. For example DE
Use a processor such as C alpha. Further, in order to perform prefetching, hardware for decoding a prefetch request from a processor and actually performing a fetch based on the request must be prepared. It is difficult to mount such prefetch hardware in an interface using a general-purpose bus. But it is not impossible, as was done by Cray Tera 3D. In such cases,
The design will be such that the network interface is directly connected to the data bus. The return address of the fetch is simply stored at the back of the queue if some way is set up to trigger execution of the fetch. If the queue storing the return address is not empty, normal interrupt processing can be used to notify that the return address remains in the queue.
【0203】また、あるアプリケーションにおいては、
送信側コンピュータと受信側コンピュータの間に独立性
を高く保つことが望ましい場合がある。前述したよう
な、メッセージを直接受信側コンピュータに送り込む方
式においては、送信側コンピュータがメッセージの中に
命令とオペランドを書き込んでおく。このメッセージの
中に書き込まれたオペランドは、直接参照する値である
かもしれない。あるいは受信側コンピュータに記憶され
た(アドレスレジスタに記憶された)ステートへの参照
かもしれない。受信側コンピュータはメッセージに書き
込まれたインストラクションを実行する。先に述べたよ
うに、アドレスレジスタに対するアクセスの制限は、あ
る程度の保護と独立性を保つことができる。しかしなが
ら、その独立性は、あるアプリケーションにとっては、
まだ充分なものではないかもしれない。なぜならば、送
信側コンピュータはオペランドにアクセスすることが出
来ないにもかかわらず、オペランドのすべてを指定しな
ければならないからである。このような独立性を確保し
たいという問題を解決するための一つの方法は、独立性
を要求しているアクションを実行する場合には、ホスト
プロセッサに対して、割り込みを発生させることであ
る。このように受信側コンピュータのホストプロセッサ
に対して割り込みを発生させることにより、送信側コン
ピュータと受信側コンピュータの独立性が確立し、受信
側コンピュータをベースにしたアドレッシングシステム
を作成することができる。Further, in an application,
It may be desirable to maintain a high degree of independence between the sending and receiving computers. In the method of directly sending a message to the receiving computer as described above, the sending computer writes an instruction and an operand in the message. The operands written in this message may be directly referenced values. Or it may be a reference to a state stored in the receiving computer (stored in an address register). The receiving computer executes the instructions written in the message. As mentioned above, the restricted access to the address register can maintain some protection and independence. However, that independence is, for some applications,
It may not be enough. Because the sending computer cannot access the operands, it must specify all of the operands. One method for solving the problem of wanting to secure the independence is to generate an interrupt to the host processor when the action requiring the independence is executed. By thus generating an interrupt to the host processor of the receiving computer, the independence of the transmitting computer and the receiving computer is established, and an addressing system based on the receiving computer can be created.
【0204】この独立性の問題を解決する他の方法は、
メッセージの内部に指定される命令を受信側コンピュー
タに記憶された命令のポインタで置き換えてしまうこと
である。すなわち、メッセージには、オペレーションが
指示されるのではなく、受信側コンピュータに準備され
たインストラクションポインタが記録される。このよう
に、実際に実行されるインストラクションは受信側コン
ピュータ側に準備されているため、そのインストラクシ
ョンは、送信側コンピュータ側が認識していない受信側
コンピュータ側のオペランドを、直接参照してもかまわ
ない。例えば受信側コンピュータのインストラクション
は送信側コンピュータ側が認識していないアドレスレジ
スタの内部にあるフィールドを、オペランドどとして参
照してもかまわない。また、メッセージは直接実行され
るオペランドを記憶してもよいし、受信側コンピュータ
のオペランドを指定してもかまわない。しかし、受信側
コンピュータはこれらのメッセージに指定されたオペラ
ンドを使用しなくてもかまわない。このようにして受信
側コンピュータ側の独立性を保つことができる。Another way to solve this independence problem is to
The instruction specified in the message is replaced by the pointer of the instruction stored in the receiving computer. That is, the message does not indicate the operation but records the instruction pointer prepared in the receiving computer. As described above, since the instruction to be actually executed is prepared on the receiving computer side, the instruction may directly refer to the operand on the receiving computer side that the transmitting computer side does not recognize. For example, the instruction of the receiving computer may refer to a field inside the address register which the transmitting computer does not recognize as an operand. Further, the message may store the operand directly executed, or may specify the operand of the receiving computer. However, the receiving computer does not have to use the operands specified in these messages. In this way, the independence of the receiving computer can be maintained.
【0205】前述したようなインストラクションポイン
タを用いた解決方法をとる場合の実施例を、図9を用い
て説明する。図9において特徴となっている点は、コネ
クション・テーブル142、インストラクションポイン
タのためのポインタベース300と、インストラクショ
ンポインタの領域を示す領域302が設けられている点
である。また、インストラクションメモリ304が設け
られている点である。インストラクションポインタベー
ス300は、インストラクションメモリ304のベース
アドレスを示しており、領域302はインストラクショ
ンメモリ304のサイズを示している。設計を単純にす
るために、各々のインストラクションは、オペレーショ
ンとオペランドから構成されており、各インストラクシ
ョンのサイズは、前述したようなATMセルに用いられ
るフォーマットと全く同じようなフォーマットを持つも
のである。受信側コンピュータのインストラクションメ
モリ304からオペランドを得るべきか、メッセージの
中からオペランドを得るべきかということがオペレーシ
ョンによって制御される。インストラクションメモリ3
04は、保護ビットを有している。保護ビットは、アド
レスレジスタ170にあるプロテクション・ビット14
4と同様の働きをする。すなわちインストラクションメ
モリ304の保護ビットは、どのインストラクションが
送信側コンピュータから指定されるものであるかを判断
するために用いられる。An embodiment in the case of adopting the solution method using the above-mentioned instruction pointer will be described with reference to FIG. The feature of FIG. 9 is that a connection table 142, a pointer base 300 for instruction pointers, and an area 302 indicating the area of instruction pointers are provided. In addition, the instruction memory 304 is provided. The instruction pointer base 300 indicates the base address of the instruction memory 304, and the area 302 indicates the size of the instruction memory 304. To simplify the design, each instruction is composed of an operation and an operand, and the size of each instruction has a format exactly the same as the format used for the ATM cell as described above. The operation controls whether the operand should be obtained from the instruction memory 304 of the receiving computer or from the message. Instruction memory 3
04 has a protection bit. The protection bit is the protection bit 14 in the address register 170.
Works the same as 4. That is, the protection bits of the instruction memory 304 are used to determine which instruction is designated by the sending computer.
【0206】前述したような方式においては、以下のよ
うな3つの改良点が考えられる。まず第1番目の改良点
として、グローバルインストラクションというものが考
えられる。多くのコネクションが同じオペレーションを
共通に使用することが考えられる。但しその場合には、
異なるオペランドを用いる場合が多い。このような状況
のもとに、グローバルインストラクションというものを
追加することが考えられる。このグローバルインストラ
クションというのは、すべてのコネクションからアクセ
スすることが可能なインストラクションである。グロー
バルインストラクションは送信側コンピュータによっ
て、供給されたオペランドに対してだけ動作できるよう
にする。もし、受信側コンピュータにあるオペランドを
用いて動作できるようにする場合には、混乱が伴う。In the system as described above, the following three improvements can be considered. As the first improvement point, global instruction can be considered. It is possible that many connections commonly use the same operation. However, in that case,
Often use different operands. Under such circumstances, it is possible to add something called global instruction. This global instruction is an instruction that can be accessed from all connections. Global instructions allow the sending computer to operate only on the supplied operands. It would be confusing if the receiving computer were to be able to work with certain operands.
【0207】第2番目の改良点は、インストラクション
とオペランドのメモリを別個に持つことである。インス
トラクションとオペランドのメモリを分ける場合には、
使用するメモリ容量を節約することができるが、オペレ
ーションが複雑になるという欠点を持っている。The second improvement is to have separate instruction and operand memories. If you want to separate instruction and operand memory,
It can save the memory capacity to be used, but has a drawback that the operation is complicated.
【0208】第3番目の改良点は、セル毎に複数のイン
ストラクションを実行するというマルチプルインストラ
クションを備えることである。この場合には、各セルに
対して、複数のインストラクションを実行できるよう
に、シーケンサーが備わっていなければならない。その
ような、シーケンスを持ったマルチプルインストラクシ
ョンの最初のインストラクションが、エントリポイント
として取り扱われる。The third improvement is to provide a multiple instruction for executing a plurality of instructions for each cell. In this case, a sequencer must be provided so that multiple instructions can be executed for each cell. The first instruction of such a sequenced multiple instruction is treated as the entry point.
【0209】その他に条件付きのオペレーションやサブ
ルーチン等を付け加えることも考えられる。しかしなが
ら、インタフェースを単純に保つためには、より複雑な
機能は、ホストプロセッサに割り込みを発生させること
により、あるいはマイクロプロセッサなどのコプロセッ
サを付け加えることにより、達成することが望ましい。It is also conceivable to add conditional operations, subroutines, and the like. However, in order to keep the interface simple, more complex functions are desired to be achieved by interrupting the host processor or by adding a coprocessor such as a microprocessor.
【0210】前述した実施例は、この発明の実施例であ
り、これらの実施例に対する修正や変形が考えられる。
これらの修正や変形は、同業者が容易に行う範囲である
限り、この発明の範囲に含まれるものである。The above-described embodiments are embodiments of the present invention, and modifications and variations to these embodiments are possible.
These modifications and variations are included in the scope of the present invention as long as they can be easily performed by those skilled in the art.
【0211】ここで、この発明に関して最後にまとめる
と次のようになる。ダイレクト・デポジット・メッセー
ジングを使用するネットワークプロトコルとインタフェ
ースは、マルチユーザ・コンピュータのネットワークに
おいて、オーバヘッドの少ない通信システムを提供す
る。このシステムでは、送信側コンピュータ、受信側コ
ンピュータ双方からの情報を用いて、受信したメッセー
ジを処理し、データと制御情報を直接格納する。つま
り、データをメモリへ記憶し、制御情報により条件付き
/オプションでホストプロセッサに割り込みをかける。
メッセージの処理は、ホストプロセッサとオペレーティ
ングシステムの処理を必要としないデータの受け渡し
と、ホストプロセッサのインターアクションを必要とす
るか又は必要としないメッセージアクションとに分けら
れる。このプロトコルでは、メッセージには、送信側コ
ンピュータによって望まれたオペレーションの指示と、
送信側コンピュータによって指定されたオペランドと、
受信側コンピュータの持つ情報を参照するオペランドが
含まれる。受信側コンピュータは、送信側コンピュータ
の要求するアクションが実行可能かどうか確認し、もし
可能であれば、送信側コンピュータにより指定されたオ
ペランドと受信側コンピュータのステートとに従って、
アクションを実行する。アクションがメッセージの受け
渡しであれば、メッセージ中のオペランドはダイレク
ト、インダイレクト、ポストインクリメント、またイン
デックスモードなど、様々なアドレス指定モードに用い
る値を指定する。アクションが条件付きで発生する割り
込みであれば、メッセージが即時のアクションを要求し
ているかどうかを、受信側コンピュータのステートも考
慮して、オペランドにより決定する。アクションは、ネ
ットワークインタフェースのレジスタに対するオペレー
ションの場合もある。また受信側コンピュータが記憶す
る他の情報によるオペレーションの場合もある。この発
明のネットワークインタフェースとプロトコルはローカ
ル・エリア・ネットワークに使用できる。このインタフ
ェースとプロトコルは、特に非同期転送方式(ATM)
ネットワークにふさわしいものである。この発明のネッ
トワークインタフェースには、重複したまたはネスティ
ングしたエンドポイントと、重複したまたはネスティン
グしたウィンドウにより作られるアドレスレジスタと、
アドレスレジスタの保護機構と、例外処理とフロー・コ
ントロールを統合したものとが備えられている。Here, the final summary of the present invention is as follows. Network protocols and interfaces using direct deposit messaging provide a low overhead communication system in a network of multi-user computers. In this system, information from both the sending and receiving computers is used to process the received message and store the data and control information directly. That is, the data is stored in the memory, and the host processor is conditionally / optionally interrupted by the control information.
Message processing is divided into passing data that does not require processing by the host processor and the operating system, and message actions that require or do not require host processor interaction. In this protocol, the message contains an indication of the operation desired by the sending computer,
The operand specified by the sending computer,
It includes an operand that refers to the information that the receiving computer has. The receiving computer checks if the action requested by the sending computer can be performed, and if so, according to the operands specified by the sending computer and the state of the receiving computer,
Take action. If the action is message passing, the operands in the message specify values for various addressing modes such as direct, indirect, post-increment, and index mode. If the action is a conditionally generated interrupt, the operand determines whether the message requires an immediate action, taking into account the state of the receiving computer. Actions may also be operations on network interface registers. It may also be an operation with other information stored by the receiving computer. The network interfaces and protocols of this invention can be used in local area networks. This interface and protocol are especially asynchronous transfer method (ATM)
It is suitable for the network. The network interface of the present invention includes an overlapping or nesting endpoint, an address register created by the overlapping or nesting window,
An address register protection mechanism and an integrated exception handling and flow control are provided.
【0212】[0212]
【発明の効果】以上のようにこの発明によれば、送信側
コンピュータから送られたメッセージを受信側コンピュ
ータのプロセッサとオペレーションの処理を介さずに、
受信側コンピュータのメモリに格納することができ、オ
ーバヘッドの少ない効率のよい通信方式を得ることがで
きる。As described above, according to the present invention, the message sent from the sending computer can be processed without the intervention of the processor of the receiving computer and the operation.
Since it can be stored in the memory of the receiving computer, an efficient communication system with little overhead can be obtained.
【0213】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのメモリアドレスを指定す
ることにより、受信側コンピュータのメモリにメッセー
ジを直接格納することができる。According to the present invention, the message can be directly stored in the memory of the receiving computer by designating the memory address of the receiving computer as the operand of the message.
【0214】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。Further, according to the present invention, the message can be directly stored in the address indicated by the address register by storing the address register of the receiving computer in the operand of the message.
【0215】またこの発明によれば、オペランドにオフ
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。According to the present invention, by indicating the offset in the operand, the address of the address register can be modified with the offset, and the message can be directly stored in the modified address.
【0216】またこの発明によれば、緊急性を要するメ
ッセージの処理を即座に行なうことができる。Further, according to the present invention, it is possible to immediately process a message which requires urgency.
【0217】またこの発明によれば、受信側コンピュー
タの情報を送信側コンピュータによって更新することが
できる。Further, according to the present invention, the information of the receiving computer can be updated by the transmitting computer.
【0218】またこの発明によれば、緊急性のないメッ
セージをキューイングし、任意の時点で処理することが
できる。Further, according to the present invention, non-urgent messages can be queued and processed at any time.
【0219】またこの発明によれば、送信側コンピュー
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータ側でアドレスレジスタに格
納されたアドレスに対してオフセットによる修飾を行っ
たのち、メモリにメッセージを格納することができる。Further, according to the present invention, by designating the address register and the offset from the sending side computer, the receiving side computer modifies the address stored in the address register by the offset, and then the memory is stored in the memory. Can store messages.
【0220】またこの発明の通信方式によれば、受信側
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。Further, according to the communication system of the present invention, if the receiving computer is permitted to execute the received message, the receiving computer receives the operand described in the received message. And processing based on the information stored in the receiving computer. In this way, processing with a protection function can be performed.
【0221】またこの発明によればオペランドにアドレ
スを指定することにより、オペランドにより指定された
アドレスにメッセージを直接格納することができる。According to the present invention, by designating the address in the operand, the message can be directly stored in the address designated by the operand.
【0222】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。According to the present invention, by storing the address register of the receiving computer in the operand of the message, the message can be directly stored in the address indicated by the address register.
【0223】またこの発明によれば、オペランドにオフ
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。Further, according to the present invention, by indicating the offset in the operand, the address of the address register can be modified with the offset, and the message can be directly stored in the modified address.
【0224】またこの発明によれば、緊急性を要するメ
ッセージの処理を即座に行なうことができる。Further, according to the present invention, it is possible to immediately process a message that requires urgency.
【0225】またこの発明によれば、受信側コンピュー
タの情報を送信側コンピュータによって更新することが
できる。According to the present invention, the information of the receiving computer can be updated by the transmitting computer.
【0226】またこの発明によれば、緊急性のないメッ
セージをキューイングし、任意の時点で処理することが
できる。Further, according to the present invention, non-urgent messages can be queued and processed at any time.
【0227】またこの発明によれば、送信側コンピュー
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータ側でアドレスレジスタに格
納されたアドレスに対してオフセットによる修飾を行っ
たのち、メモリにメッセージを格納することができる。Further, according to the present invention, by designating the address register and the offset from the transmitting side computer, the receiving side computer modifies the address stored in the address register with the offset, and then the memory is stored in the memory. Can store messages.
【0228】またこの発明の通信方法によれば、受信側
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。Further, according to the communication method of the present invention, when the receiving computer is permitted to execute the received message, the receiving computer receives the operand described in the message. And processing based on the information stored in the receiving computer. In this way, processing with a protection function can be performed.
【0229】また、この発明によれば、送信側コンピュ
ータから送られたメッセージを受信側コンピュータのプ
ロセッサとオペレーションの処理を介さずに、受信側コ
ンピュータのメモリに格納することができ、オーバヘッ
ドの少ない効率のよい通信方式を得ることができる。Further, according to the present invention, the message sent from the sending computer can be stored in the memory of the receiving computer without going through the processing of the processor of the receiving computer and the operation, and the efficiency with less overhead can be achieved. It is possible to obtain a good communication method.
【0230】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのメモリアドレスを指定す
ることにより、受信側コンピュータのメモリにメッセー
ジを直接格納することができる。According to the present invention, the message can be directly stored in the memory of the receiving computer by designating the memory address of the receiving computer in the operand of the message.
【0231】またこの発明によれば、メッセージのオペ
ランドに受信側コンピュータのアドレスレジスタを記憶
することにより、アドレスレジスタに示されたアドレス
にメッセージを直接格納することができる。Further, according to the present invention, the message can be directly stored in the address indicated by the address register by storing the address register of the receiving computer in the operand of the message.
【0232】またこの発明によれば、オペランドにオフ
セットを示すことにより、アドレスレジスタのアドレス
をオフセットで修飾でき、修飾したアドレスに対してメ
ッセージを直接格納することができる。またこの発明に
よれば、緊急性を要するメッセージの処理を即座に行な
うことができる。Further, according to the present invention, by indicating the offset in the operand, the address of the address register can be modified with the offset, and the message can be directly stored in the modified address. Further, according to the present invention, it is possible to immediately process a message that requires urgency.
【0233】またこの発明によれば、受信側コンピュー
タの情報を送信側コンピュータによって更新することが
できる。Further, according to the present invention, the information of the receiving computer can be updated by the transmitting computer.
【0234】またこの発明によれば、緊急性のないメッ
セージをキューイングし、任意の時点で処理することが
できる。Further, according to the present invention, non-urgent messages can be queued and processed at any time.
【0235】またこの発明によれば、送信側コンピュー
タ側からアドレスレジスタとオフセットを指定すること
により、受信側コンピュータでアドレスレジスタに格納
されたアドレスに対してオフセットによる修飾を行った
のち、メモリにメッセージを格納することができる。According to the present invention, by designating the address register and the offset from the sending computer, the receiving computer modifies the address stored in the address register with the offset, and then the message is stored in the memory. Can be stored.
【0236】またこの発明の通信方式によれば、受信側
コンピュータは受け取ったメッセージが受信側コンピュ
ータにおいて実行可能であることが許可されている場合
に、そのメッセージを受け取ったメッセージに記載され
ているオペランドと受信側コンピュータに記憶された情
報に基づいて処理する。このようにして保護機能を持っ
た処理を行える。またこの発明によれば、アプリケーシ
ョンプログラムに割り当てられたメモリに対して直接メ
ッセージを格納することができる。もしそのメッセージ
が緊急性を要するものであれば、割り込み処理により即
座に実行される。このようにしてオーバヘッドの少ない
通信方式を得ることができる。Further, according to the communication system of the present invention, when the receiving computer is permitted to execute the received message, the receiving computer receives the operand described in the message. And processing based on the information stored in the receiving computer. In this way, processing with a protection function can be performed. Further, according to the present invention, the message can be directly stored in the memory assigned to the application program. If the message is urgent, it will be executed immediately by interrupt handling. In this way, a communication system with less overhead can be obtained.
【0237】またこの発明によれば権限のないアクセス
が否定されるため、保護機能が付加されたシステムを提
供することができる。Further, according to the present invention, since unauthorized access is denied, it is possible to provide a system to which a protection function is added.
【0238】またこの発明によれば送信側コンピュータ
から受信側コンピュータの情報を変更することができ
る。Further, according to the present invention, the information of the receiving computer can be changed from the transmitting computer.
【0239】またこの発明のネットワークインタフェー
スによれば、アプリケーションプログラムに割り当てら
れたメモリに対して直接メッセージを格納することがで
きる。もし受信したメッセージが緊急性を要するもので
あれば、割り込み処理により即座に実行される。このよ
うにしてオーバヘッドの少ないシステムを提供すること
ができる。Further, according to the network interface of the present invention, a message can be directly stored in the memory allocated to the application program. If the received message is urgent, it is immediately executed by interrupt processing. In this way, a system with low overhead can be provided.
【0240】また、この発明によれば権限のないアクセ
スが否定されるので、保護機能を付加したシステムを提
供することができる。Further, according to the present invention, since unauthorized access is denied, it is possible to provide a system having a protection function.
【0241】また、この発明によれば送信側コンピュー
タ側から受信側コンピュータに記憶された情報を変更す
ることができる。Further, according to the present invention, the information stored in the receiving computer can be changed from the transmitting computer side.
【図1】 この発明の一実施例におけるダイレクト・デ
ポジット・メッセージングを用いた通信システムのブロ
ック図。FIG. 1 is a block diagram of a communication system using direct deposit messaging according to an embodiment of the present invention.
【図2】 この発明の一実施例における図1の通信シス
テムの処理の流れを表すフローチャート図。FIG. 2 is a flowchart showing a processing flow of the communication system of FIG. 1 according to the embodiment of the present invention.
【図3】 この発明の一実施例における53バイトのA
TMセルの適切なフォーマットを表すブロック図。FIG. 3 is a 53-byte A according to an embodiment of the present invention.
The block diagram showing the suitable format of TM cell.
【図4】 この発明の一実施例における図1で示したネ
ットワークインタフェースのブロック図。FIG. 4 is a block diagram of the network interface shown in FIG. 1 according to an embodiment of the present invention.
【図5】 この発明の一実施例における図4で示した受
信側のオペレーション・ロジックでの保護機構とアドレ
ス生成を説明するためのブロック図。5 is a block diagram for explaining a protection mechanism and address generation in the operation logic on the receiving side shown in FIG. 4 in an embodiment of the present invention.
【図6】 この発明の一実施例における図4で示したレ
シーブ・コントローラを説明するためのブロック図。FIG. 6 is a block diagram for explaining the receive controller shown in FIG. 4 in an embodiment of the present invention.
【図7】 この発明の一実施例におけるダイレクト・キ
ャッシュ・インタフェースのブロック図。FIG. 7 is a block diagram of a direct cache interface according to an embodiment of the present invention.
【図8】 この発明の一実施例におけるエンドポイント
・アンド・コネクション・ベースド・コミュニケーショ
ンを開始するための処理の流れを表すフローチャート
図。FIG. 8 is a flowchart showing the flow of processing for starting endpoint-and-connection-based communication in an embodiment of the present invention.
【図9】 この発明の一実施例における受信側における
オペレーション・ロジックの別の実施方法を示すブロッ
ク図。FIG. 9 is a block diagram showing another implementation method of the operation logic on the receiving side in the embodiment of the present invention.
【図10】 この発明の一実施例で実験されたリモート
・ライト遅延時間の測定結果を示す図。FIG. 10 is a diagram showing a measurement result of a remote write delay time tested in an embodiment of the present invention.
【図11】 この発明の一実施例で実験された連続的な
リモート・ライトを送信した場合に得られた帯域幅の測
定結果を示す図。FIG. 11 is a diagram showing the measurement result of the bandwidth obtained when transmitting the continuous remote light that was tested in the embodiment of the present invention.
【図12】 この発明の一実施例における遅延時間の内
訳を示す図。FIG. 12 is a diagram showing a breakdown of delay time according to the embodiment of the present invention.
【図13】 従来例におけるレシーバ・ベースド・アド
レッシングを用いた通信システムのブロック図。FIG. 13 is a block diagram of a communication system using receiver-based addressing in a conventional example.
【図14】 従来例における図13の通信システムの処
理の流れを表すフローチャート図。FIG. 14 is a flowchart showing a processing flow of the communication system of FIG. 13 in the conventional example.
【図15】 従来例におけるセンダ・ベースド・アドレ
ッシングを用いた通信システムのブロック図。FIG. 15 is a block diagram of a communication system using sender-based addressing in a conventional example.
【図16】 従来例における図15の通信システムの処
理の流れを表すフローチャート図。16 is a flowchart showing a processing flow of the communication system of FIG. 15 in the conventional example.
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 インストラクションメモリ。50, 87, 270 Transmitting computer, 52, 8
8,272 receiving computer, 54,70 processor (host processor), 56,72,91,92,
278,280 operating system, 58,7
8 Application 1, 60, 80 Application 2, 62, 64, 74, 76 Message buffer,
66, 68, 79, 81 Endpoint (Endpoint buffer), 67, 95, 101 Send command, 77 Receive command, 82 Network, 8
3,94,290 messages, 84,86,89,9
0,274,276 network interface, 9
7,98 Protection mechanism, 282, 284, 286, 288
Connection state information and mapping information, 12
0 cell, 121, 123, 125, 128 index field, 122 data field, 12
4-cycle redundancy check (CRC) field, 126 operand field, 129
Opcode field, 130 operation field, 131 mask field, 132 AT
M header field, 140 connection table, 142 (connection table) entry,
144 protection bits, 146 endpoint numbers, 148 address register base,
149 address register area, 150 connection state information, 151 response connection, 15
2, 158, 174 Comparator, 156, 172 Adder, 160 Endpoint Table, 162 (Endpoint) Entry, 164 Endpoint Base, 166 Endpoint Area, 168 Address Mapping Information, 170 Address Register, 17
6 multiplexers, 178 Arismetic Logic Units (ALUs), 179 demultiplexers, 180 translation lookaside buffers (TLBs), 184 condition codes, 1
86 states, 188 opcodes, 190 tables, 192 control signals, 194 masks, 19
6 new states, 210 front end, 212 host memory, 214 bus, 216 receive buffer and flow control, 218 header separation check unit, 220,232 VCI / VPI mapping unit, 222 control decoder, 224 data separation check unit Unit, 226,240 Block Transfer Unit, 228 Receive Controller, 2
30 operation logic, 234 send controller, 236 send register, 238 control encoder, 242 data buffer, 244
Cell forming unit, 246 transmit buffer and flow control, 250 microprocessor, 252 message cache, 254 data cache, 256, 258, 262 bus, 260 mapping unit, 300 pointer base, 302
Area, 304 instruction memory.
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 12/00 12/28 29/08 H04L 13/00 307 Z ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 6 Identification number Office reference number FI technical display location H04L 12/00 12/28 29/08 H04L 13/00 307 Z
Claims (30)
タをネットワークで接続し、受信側コンピュータはオペ
レーティングシステムにより制御されたプロセッサに接
続されたネットワークインタフェースを有しているコン
ピュータシステムの通信方式において、 送信側コンピュータにおいて、オペランドと、実行され
るべきアクションの識別子と、受信側コンピュータに記
憶されている情報へのリファレンスとを含んだメッセー
ジを受信側コンピュータに送る送信手段と、 上記ネットワークインタフェースにおいて、メッセージ
を受信する受信手段と、 上記ネットワークインタフェースにおいて、上記メッセ
ージを受信することにより動作する手段であって、受信
側コンピュータでの上記アクションの実行が許されてい
るかを決定する決定手段と、 上記ネットワークインタフェースにおいて、上記アクシ
ョンの実行が許されている場合に動作する手段であっ
て、受信側コンピュータのプロセッサとオペレーティン
グシステムとは別個に、上記メッセージのオペランドと
受信側コンピュータに記憶された情報に基づいてオペレ
ーションを実行し、そのオペレーションによって上記ア
クションを実行する実行手段を有することを特徴とする
通信方式。1. A communication system of a computer system, wherein a sender computer and a receiver computer are connected by a network, and the receiver computer has a network interface connected to a processor controlled by an operating system. A sending means for sending to the receiving computer a message containing an operand, an identifier of the action to be performed, and a reference to information stored in the receiving computer; and receiving the message at the network interface. Receiving means and means for operating in the network interface by receiving the message, and determining whether or not the receiving computer is allowed to execute the action. Means for operating in the network interface when the action is permitted to be performed, the operand of the message being stored in the receiving computer separately from the processor of the receiving computer and the operating system. A communication system comprising an executing means for executing an operation based on the information and executing the action according to the operation.
のメモリのアドレスを示すものであり、 上記実行手段は、上記メッセージのアドレスと受信側コ
ンピュータに記憶された情報に基づいて、受信側コンピ
ュータのメモリの所定の位置にメッセージを格納するメ
ッセージ格納手段を備えたことを特徴とする請求項1記
載の通信方式。2. The operand indicates an address of a memory of the receiving computer, and the executing means stores the memory of the receiving computer based on the address of the message and the information stored in the receiving computer. 2. The communication system according to claim 1, further comprising a message storing means for storing the message at a predetermined position.
のメモリのアドレスを記憶するネットワークインタフェ
ース内のアドレスレジスタを示すものであり、 上記受信側コンピュータに記憶された情報は、アドレス
レジスタに記憶されたアドレスであり、 上記通信方式は、さらに、オペランドにより示されたア
ドレスレジスタからアドレスを得る手段と、得られたア
ドレスに基づいて、メモリにメッセージを記憶する手段
を備えたことを特徴とする請求項2記載の通信方式。3. The operand is an address register in a network interface that stores an address of a memory of a receiving computer, and the information stored in the receiving computer is an address stored in the address register. 3. The communication system according to claim 2, further comprising means for obtaining an address from an address register indicated by an operand, and means for storing a message in a memory based on the obtained address. Communication method.
を示すものであり、上記通信方式は、さらに、オフセッ
トによりアドレスレジスタのアドレスを修飾する手段を
備えたことを特徴とする請求項3記載の通信方式。4. The communication system according to claim 3, wherein the operand further indicates an offset, and the communication system further comprises means for modifying the address of the address register by the offset. .
ピュータに記憶された情報を比較する比較手段と、 上記比較手段の比較結果によりメッセージが即座の実行
を要求するものであると判断される場合に、プロセッサ
に対して、割り込みを発生する割り込み手段を備えたこ
とを特徴とする請求項1記載の通信方式。5. The executing means compares the operand and the information stored in the receiving computer, and the comparing result of the comparing means determines that the message requires immediate execution. 2. The communication system according to claim 1, further comprising interrupt means for generating an interrupt to the processor.
ータに記憶された情報を更新する更新手段を備えたこと
を特徴とする請求項5記載の通信方式。6. The communication system according to claim 5, further comprising update means for updating the information stored in the receiving computer.
比較の結果によりメッセージが即座の実行を要求してい
ないと判断される場合に、メッセージを待ち行列にキュ
ーイングするキューイング手段を備えたことを特徴とす
る請求項5記載の通信方式。7. The communication method further comprises queuing means for queuing a message in a queue when it is determined that the message does not require immediate execution according to the result of the comparison by the comparing means. The communication system according to claim 5, characterized in that.
ともに、受信側コンピュータのメモリのアドレスを記憶
するためのネットワークインタフェースに設けられた、
アドレスレジスタを示すものであり、 受信側コンピュータに記憶された情報は、アドレスレジ
スタに記憶されたアドレスであり、 上記通信方式はさらに、オペランドにより示されたアド
レスレジスタからアドレスを得る手段と、得られたアド
レスからオフセットで示される値に基づいてメモリにメ
ッセージを記憶する手段を備えたことを特徴とする請求
項5記載の通信方式。8. The operand is provided in a network interface for storing an address of a memory of a receiving computer while indicating an offset,
The information stored in the receiving computer is an address stored in the address register, and the communication method further includes means for obtaining the address from the address register indicated by the operand. 6. The communication system according to claim 5, further comprising means for storing a message in a memory based on a value indicated by an offset from the address.
と、プロセッサと接続されており、プロセッサからの要
求に基づいて、オペランドと、所望のアクションの指示
と、受信側コンピュータに記憶された情報へのリファレ
ンスとを含んだメッセージを作成するネットワークイン
タフェースを有する送信側コンピュータと、 オペレーティングシステムによって制御されたプロセッ
サと、プロセッサに接続されたネットワークインタフェ
ースを有する受信側コンピュータと、 送信側コンピュータのネットワークインタフェースと受
信側コンピュータのネットワークインタフェースを接続
し、送信側コンピュータと受信側コンピュータの間でメ
ッセージを変換するためのネットワークとを備え、 上記受信側コンピュータのネットワークインタフェース
は、メッセージを受信し、メッセージに示されたアクシ
ョンを実行するにあたり、受信側コンピュータでそのア
クションの実行が許されている場合に、オペランドと受
信側コンピュータに記憶された情報に基づいてアクショ
ンを実行することを特徴とする通信方式。9. A processor requesting transmission of a message, a processor connected to the processor, and based on a request from the processor, an operand, an instruction of a desired action, and a reference to information stored in a receiving computer. A sender computer having a network interface for creating a message including a message, a processor controlled by an operating system, a receiver computer having a network interface connected to the processor, a sender computer network interface and a receiver computer And a network for converting messages between the sending computer and the receiving computer, the network interface of the receiving computer being connected. When receiving a message and performing the action indicated in the message, the action is based on the operand and the information stored in the receiving computer when the receiving computer is allowed to perform the action. A communication method characterized by executing.
のメモリのアドレスを示すものであり、上記アクション
はメッセージに含まれているアドレスと、受信側コンピ
ュータに記憶されている情報に基づいて、受信側コンピ
ュータのメモリの所定の位置にメッセージを格納するも
のであることを特徴とする請求項9記載の通信方式。10. The operand indicates an address in the memory of the receiving computer, and the action is based on the address contained in the message and the information stored in the receiving computer. The communication system according to claim 9, wherein the message is stored in a predetermined position of the memory.
のメモリのアドレスを記憶するアドレスレジスタを示す
ものであり、上記受信側コンピュータに記憶された情報
はアドレスレジスタに記憶されたアドレスであり、 上記受信側コンピュータはオペランドにより示されたア
ドレスレジスタからアドレスを得る手段と、得られたア
ドレスに基づいてメモリにメッセージを記憶する手段と
を備えたことを特徴とする請求項10記載の通信方式。11. The operand is an address register that stores an address of a memory of the receiving computer, and the information stored in the receiving computer is the address stored in the address register. 11. The communication system according to claim 10, further comprising means for obtaining an address from the address register indicated by the operand, and means for storing a message in the memory based on the obtained address.
示すものであり、 上記通信方式はさらにアドレスレジスタに記憶されたア
ドレスを、オフセットで修飾する手段を備えたことを特
徴とする請求項11記載の通信方式。12. The communication system according to claim 11, wherein the operand further indicates an offset, and the communication system further comprises means for modifying the address stored in the address register with the offset. .
ンドと受信側コンピュータにより、管理された状態とを
比較する比較手段と、上記比較手段による比較結果によ
りメッセージが即座のアクションを要求するものである
と判断される場合に、割り込みを生成する割り込み手段
を備えたことを特徴とする請求項9記載の通信方式。13. The receiving computer determines that the message requires an immediate action based on the comparison result obtained by comparing the operand and the state managed by the receiving computer and the comparison result obtained by the comparing device. 10. The communication system according to claim 9, further comprising an interrupting unit that generates an interrupt when the communication is performed.
ュータに記憶された情報を更新する更新手段を備えたこ
とを特徴とする請求項13記載の通信方式。14. The communication system according to claim 13, wherein the communication system further comprises update means for updating information stored in the receiving computer.
の比較結果により、メッセージが即座のアクションを要
求していないと判断される場合に、メッセージを待ち行
列にキューイングするキューイング手段を備えたことを
特徴とする請求項13記載の通信方式。15. The communication method further comprises queuing means for queuing the message in a queue when it is determined from the comparison result of the comparing means that the message does not require an immediate action. 14. The communication method according to claim 13, wherein:
とともに、受信側コンピュータのメモリのアドレスを記
憶するためのネットワークインタフェースに設けられた
アドレスレジスタを示すものであり、 受信側コンピュータに記憶された情報は、アドレスレジ
スタに記憶されたアドレスであり、 上記通信方式はさらに、オペランドにより示されたアド
レスレジスタからアドレスを得る手段と、得られたアド
レスからオフセットで示される値に基づいてメモリにメ
ッセージを記憶する手段を備えたことを特徴とする請求
項13記載の通信方式。16. The operand represents an offset and an address register provided in a network interface for storing an address of a memory of a receiving computer, and the information stored in the receiving computer is: An address stored in an address register, the communication method further includes means for obtaining an address from the address register indicated by the operand, and means for storing a message in the memory based on a value indicated by an offset from the obtained address. The communication system according to claim 13, further comprising:
ータをネットワークで接続し、受信側コンピュータはオ
ペレーティングシステムにより制御されたプロセッサに
接続されたネットワークインタフェースを有しているコ
ンピュータシステムの通信方法において、 送信側コンピュータからネットワークを介して受信側コ
ンピュータへ、オペランドと、実行すべきアクションの
指示と、受信側コンピュータに記憶された情報のリファ
レンスとを含むメッセージを送信する送信工程と、 受信側コンピュータでメッセージを受信する受信工程
と、 受信側コンピュータにおいて、送信側コンピュータから
実行要求があったアクションが許可されたものであるか
を確認する確認工程と、上記確認工程によりアクション
が実行可能であると判断される場合に、プロセッサとオ
ペレーティングシステムとは別個に、メッセージのオペ
ランドと受信側コンピュータに記憶された情報とに基づ
いて受信側コンピュータにおいてアクションを実行する
実行工程とを備えたことを特徴とする通信方法。17. A communication method of a computer system, wherein a sender computer and a receiver computer are connected by a network, and the receiver computer has a network interface connected to a processor controlled by an operating system. Sending a message containing an operand, an instruction of an action to be performed, and a reference to information stored in the receiving computer from the computer to the receiving computer via the network; and receiving the message at the receiving computer. The receiving step, the confirming step of confirming whether the action requested by the transmitting computer is permitted in the receiving computer, and the case where the action is judged to be executable by the above confirming step. In this case, the communication method is characterized in that the processor and the operating system are separately provided with an execution step of executing an action in the receiving computer based on the operand of the message and the information stored in the receiving computer.
のメモリのアドレスを示すものであり、 上記実行工程は、メッセージのアドレスと受信側コンピ
ュータに記憶された情報に基づいて、受信側コンピュー
タのメモリの所定の位置にメッセージを格納するメッセ
ージ格納工程を備えたことを特徴とする請求項17記載
の通信方法。18. The operand indicates an address of a memory of the receiving computer, and the executing step determines a predetermined memory of the receiving computer based on the address of the message and the information stored in the receiving computer. 18. The communication method according to claim 17, further comprising a message storing step of storing a message at a position.
タのメモリのアドレスを記憶するネットワークインタフ
ェース内のアドレスレジスタを示すものであり、 上記受信側コンピュータに記憶された情報は、アドレス
レジスタに記憶されたアドレスであり、 上記通信方法は、さらに、オペランドにより示されたア
ドレスレジスタからアドレスを得る工程と、得られたア
ドレスに基づいて、メモリにメッセージを記憶する工程
を備えたことを特徴とする請求項18記載の通信方法。19. The operand is an address register in a network interface that stores an address of a memory of a receiving computer, and the information stored in the receiving computer is an address stored in the address register. 19. The communication method further comprises the steps of obtaining an address from an address register indicated by an operand and storing a message in a memory based on the obtained address. Communication method.
トを示すものであり、上記通信方法は、さらに、オフセ
ットによりアドレスレジスタのアドレスを修飾する工程
を備えたことを特徴とする請求項19記載の通信方法。20. The communication method according to claim 19, wherein the operand further indicates an offset, and the communication method further comprises the step of modifying the address of the address register with the offset. .
ンピュータに記憶された情報を比較する比較工程と、 上記比較工程の比較結果によりメッセージが即座の実行
を要求するものである場合に、プロセッサに対して、割
り込みを発生する割り込み工程を備えたことを特徴とす
る請求項17記載の通信方法。21. The executing step comprises a comparing step of comparing operands and information stored in a receiving computer, and a processor, if the result of the comparing step indicates that the message requires immediate execution. 18. The communication method according to claim 17, further comprising an interrupt process for generating an interrupt.
ュータに記憶された情報を更新する更新工程を備えたこ
とを特徴とする請求項21記載の通信方法。22. The communication method according to claim 21, further comprising an updating step of updating the information stored in the receiving computer.
の比較の結果メッセージが即座の実行を要求していない
場合に、メッセージを待ち行列にキューイングするキュ
ーイング工程を備えたことを特徴とする請求項21記載
の通信方法。23. The communication method further comprises a queuing step of queuing a message in a queue if the message resulting from the comparing step does not require immediate execution. The communication method according to claim 21.
とともに、受信側コンピュータのメモリのアドレスを記
憶するためのネットワークインタフェースに設けられた
アドレスレジスタを示すものであり、 受信側コンピュータに記憶された情報は、アドレスレジ
スタに記憶されたアドレスであり、 上記通信方法はさらに、オペランドにより示されたアド
レスレジスタからアドレスを得る工程と、得られたアド
レスからオフセットで示される値に基づいてメモリにメ
ッセージを記憶する工程を備えたことを特徴とする請求
項21記載の通信方法。24. The operand indicates an offset and an address register provided in a network interface for storing the address of the memory of the receiving computer, and the information stored in the receiving computer is: An address stored in an address register, the communication method further comprising: obtaining an address from an address register indicated by an operand; and storing a message in a memory based on a value indicated by an offset from the obtained address. 22. The communication method according to claim 21, further comprising:
ークの通信方式であって、送信側コンピュータと受信側
コンピュータを備え、受信側コンピュータはプロセッサ
とメモリを有しており、上記メモリの一部は上記プロセ
ッサによって実行されるアプリケーションプログラムに
割り当てられている通信方式において、 送信側コンピュータにおいて、オペランドと、受信側コ
ンピュータに記憶された情報のリファレンスと、アプリ
ケーションプログラムに引き渡すデータを含むメッセー
ジを、ネットワークを介して受信側コンピュータに送信
する送信手段と、 受信側コンピュータにおいて、上記メッセージの受信に
より動作する手段であって、 アプリケーションプログラムに割り当てられたメモリの
所定の位置であって、上記所定の位置は、そのメッセー
ジ以前に受信したメッセージのデータの格納位置とは独
立した位置であって、送信側コンピュータのステートと
受信側コンピュータに記憶された情報によって決定され
る所定の位置にメッセージのデータを直接格納する直接
格納手段と、 受信側コンピュータにおいて、上記メッセージの受信に
より動作する手段であって、 送信側コンピュータのステートと受信側コンピュータに
記憶された情報に基づいて、プロセッサに対して条件的
に割り込みを発生する割り込み手段を備えたことを特徴
とする通信方式。25. A network communication system of multi-user computers, comprising a sending computer and a receiving computer, the receiving computer having a processor and a memory, part of the memory being executed by the processor. In the communication method assigned to the application program, the sending computer sends a message including the operand, the reference of the information stored in the receiving computer, and the data to be delivered to the application program to the receiving computer via the network. And a means for operating in the receiving computer to receive the message, which is a predetermined position in the memory allocated to the application program, and the predetermined position is The message data is directly stored in a predetermined position that is independent of the storage position of the data of the message received before the message and is determined by the state of the sending computer and the information stored in the receiving computer. Direct storing means and means for operating in the receiving computer by receiving the above message, and conditionally generating an interrupt to the processor based on the state of the transmitting computer and the information stored in the receiving computer. A communication method comprising an interrupting means for enabling
報をアクセスすることを受信側コンピュータによって許
可されていない場合に、受信側コンピュータに記憶され
た情報をアクセスすることを防止する手段を備えたこと
を特徴とする請求項25記載の通信方式。26. The communication method further comprises, at the receiving computer, accessing the information stored in the receiving computer when the transmitting computer is not permitted to access the information. 26. The communication system according to claim 25, further comprising means for preventing the above.
ピュータにおいて、上記メッセージの受信により動作す
る手段であって、送信側コンピュータのステートに基づ
いて、受信側コンピュータに記憶された情報を変更する
手段を備えたことを特徴とする請求項25記載の通信方
式。27. The communication system further comprises means for operating in the receiving computer by receiving the message, and means for changing information stored in the receiving computer based on the state of the transmitting computer. The communication system according to claim 25, further comprising:
ークの通信方式であって、送信側コンピュータと受信側
コンピュータを備え、受信側コンピュータはプロセッサ
とメモリを有しており、上記メモリの一部は上記プロセ
ッサによって実行されるアプリケーションプログラムに
割り当てられており、上記送信側コンピュータは、送信
側コンピュータのステートを示すオペランドと、受信側
コンピュータに記憶された情報へのリファレンスと、ア
プリケーションプログラムへ引き渡すデータとを含むメ
ッセージをネットワークを介して受信側コンピュータに
送信するネットワークインタフェースにおいて、 受信側コンピュータにおいて、上記メッセージの受信に
より動作する手段であって、 アプリケーションプログラムに割り当てられたメモリの
所定の位置であって、上記所定の位置は、そのメッセー
ジ以前に受信したメッセージのデータの格納位置とは独
立した位置であって、送信側コンピュータのステートと
受信側コンピュータに記憶された情報とによって決定さ
れる所定の位置であって、そのメッセージ以前に受信し
たメッセージを格納するために使われた位置とは独立に
決定される所定の位置に、メッセージのデータを直接格
納する直接格納手段と、 上記メッセージの受信により動作する手段であって、送
信側コンピュータのステートと受信側コンピュータに記
憶された情報とに基づいて、プロセッサに対して条件的
に割り込みを発生する割り込み手段を備えたことを特徴
とするネットワークインタフェース。28. A network communication system of multi-user computers, comprising a sending computer and a receiving computer, the receiving computer having a processor and a memory, part of said memory being executed by said processor. Is assigned to an application program to be stored in the network, and the transmission side computer sends a message including a operand indicating a state of the transmission side computer, a reference to information stored in the reception side computer, and data to be passed to the application program. In the network interface for transmitting to the receiving computer via the, the receiving computer is a means that operates by receiving the message, and is a memo assigned to the application program. , The predetermined position is independent of the storage position of the data of the message received before the message, and the state of the sending computer and the information stored in the receiving computer. A direct storage means for directly storing the data of the message in a predetermined position determined by the predetermined position determined independently of the position used for storing the message received before the message; , Means for operating upon receipt of the message, which comprises an interrupting means for conditionally generating an interrupt to the processor based on the state of the sending computer and the information stored in the receiving computer. A characteristic network interface.
らに、送信側コンピュータが情報をアクセスすることを
受信側コンピュータによって許可されていない場合に、
受信側コンピュータに記憶された情報をアクセスするこ
とを防止する手段を備えたことを特徴とする請求項28
記載のネットワークインタフェース。29. The network interface further comprises: if the sending computer is not authorized to access the information by the receiving computer,
29. Means for preventing access to information stored in a receiving computer.
The listed network interface.
さらに上記メッセージの受信により動作する手段であっ
て、送信側コンピュータのステートに基づいて、受信側
コンピュータに記憶された情報を変更する手段を備えた
ことを特徴とする請求項28記載のネットワークインタ
フェース。30. The network interface comprises:
29. The network interface according to claim 28, further comprising means for operating upon receipt of the message, the means including means for changing information stored in the receiving computer based on the state of the transmitting computer.
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 (en) | 1996-07-12 |
Family
ID=22849335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8267395A Pending JPH08180001A (en) | 1994-04-12 | 1995-04-07 | Communication system, communication method and network interface |
Country Status (2)
Country | Link |
---|---|
US (1) | US5790804A (en) |
JP (1) | JPH08180001A (en) |
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 (en) * | 2000-01-19 | 2001-09-28 | Wiznot Corp | Device for processing tcp/ip in manner of hardware and operating method therefor |
JP2015091330A (en) * | 2014-12-08 | 2015-05-14 | 任天堂株式会社 | Game device and game program |
WO2016186093A1 (en) * | 2015-05-18 | 2016-11-24 | 国立大学法人名古屋大学 | Communication device and communication restricting program |
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 (111)
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 |
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 |
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 |
JP3168908B2 (en) * | 1996-04-11 | 2001-05-21 | 日本電気株式会社 | Method of exchanging information of payload portion of ATM cell |
JP2830833B2 (en) * | 1996-04-30 | 1998-12-02 | 日本電気株式会社 | Communication method between processors and processor used therefor |
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 |
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 |
US6098105A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupt method for message arrival notification |
FR2764757B1 (en) * | 1997-06-13 | 1999-08-27 | Thomson Csf | TRANSLATION METHOD OF A CELL HEADER FOR ATM SWITCH |
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 |
US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US7237036B2 (en) | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US7042898B2 (en) | 1997-10-14 | 2006-05-09 | Alacritech, Inc. | Reducing delays associated with inserting a checksum into a network message |
US6807581B1 (en) | 2000-09-29 | 2004-10-19 | Alacritech, Inc. | Intelligent network storage interface system |
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 |
US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
US7133940B2 (en) * | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
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 |
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 |
US6697868B2 (en) | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6470415B1 (en) | 1999-10-13 | 2002-10-22 | Alacritech, Inc. | Queue system involving SRAM head, SRAM tail and DRAM body |
US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
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 (en) * | 1999-05-14 | 2003-02-17 | 日本電気株式会社 | Communication device between processors |
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 (en) * | 2000-08-02 | 2002-04-26 | Sanyo Electric Co Ltd | Information distributing device |
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 |
US20030204618A1 (en) * | 2001-04-27 | 2003-10-30 | Foster Michael S. | Using virtual identifiers to process received data routed through a network |
JP4226816B2 (en) * | 2001-09-28 | 2009-02-18 | 株式会社東芝 | Microprocessor |
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 |
WO2004017220A1 (en) * | 2002-08-19 | 2004-02-26 | Broadcom Corporation | One-shot rdma |
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 |
US20040064430A1 (en) * | 2002-09-27 | 2004-04-01 | Klein Jonathan D. | Systems and methods for queuing data |
US7337241B2 (en) | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20040088262A1 (en) * | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
US7444637B2 (en) * | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
JP3984929B2 (en) * | 2003-06-11 | 2007-10-03 | Necインフロンティア株式会社 | VoIP system, VoIP server, and multicast packet communication method |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
JP4608936B2 (en) * | 2004-04-28 | 2011-01-12 | パナソニック株式会社 | Communication method and communication apparatus |
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 (en) * | 2004-10-11 | 2007-02-02 | 삼성전자주식회사 | Apparatus and Method for performing an one to one name-based socket-communication |
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 |
EP1955154A2 (en) * | 2005-10-25 | 2008-08-13 | 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 |
KR20180041898A (en) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
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 (en) * | 1991-09-18 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | How to coordinate heterogeneous transactions |
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/en 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 (en) * | 2000-01-19 | 2001-09-28 | Wiznot Corp | Device for processing tcp/ip in manner of hardware and operating method therefor |
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 (en) * | 2014-12-08 | 2015-05-14 | 任天堂株式会社 | Game device and game program |
WO2016186093A1 (en) * | 2015-05-18 | 2016-11-24 | 国立大学法人名古屋大学 | Communication device and communication restricting program |
JP2016219944A (en) * | 2015-05-18 | 2016-12-22 | 国立大学法人名古屋大学 | Communication device and communication restriction program |
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 (en) | Communication system, communication method and network interface | |
JP4755390B2 (en) | Method and apparatus for controlling the flow of data between data processing systems via a memory | |
US5925099A (en) | Method and apparatus for transporting messages between processors in a multiple processor system | |
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 | |
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 | |
JP2933885B2 (en) | Network interface and how to handle incoming messages | |
US5579503A (en) | Direct cache coupled network interface for low latency | |
JP4755391B2 (en) | Method and apparatus for controlling the flow of data between data processing systems via a memory | |
KR100640515B1 (en) | Method and Apparatus for transferring interrupts from a peripheral device to a host computer system | |
Dubnicki et al. | Software support for virtual memory-mapped communication | |
WO2004109432A2 (en) | Method and apparatus for local and distributed data memory access ('dma') control | |
WO2004088462A2 (en) | Hardware assisted firmware task scheduling and management | |
JPH06309252A (en) | Interconnection interface | |
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 | |
US20070079077A1 (en) | System, method, and computer program product for shared memory queue | |
JP2736237B2 (en) | Remote memory access controller | |
Blumrich et al. | Two virtual memory mapped network interface designs | |
Damianakis et al. | Stream sockets on SHRIMP | |
US6308147B1 (en) | Data structure synthesis in hardware using memory transaction translation techniques | |
Osborne | A hybrid deposit model for low overhead communication in high speed lans | |
Heinlein et al. | Integrating multiple communication paradigms in high performance multiprocessors | |
Liaaen et al. | Dolphin SCI Adapter Cards. |