JPH10293754A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH10293754A
JPH10293754A JP10132097A JP10132097A JPH10293754A JP H10293754 A JPH10293754 A JP H10293754A JP 10132097 A JP10132097 A JP 10132097A JP 10132097 A JP10132097 A JP 10132097A JP H10293754 A JPH10293754 A JP H10293754A
Authority
JP
Japan
Prior art keywords
reception
field
message
request
pool
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.)
Granted
Application number
JP10132097A
Other languages
English (en)
Other versions
JP3697831B2 (ja
Inventor
Hamilton Patrick
ハミルトン パトリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10132097A priority Critical patent/JP3697831B2/ja
Priority to US09/061,328 priority patent/US6125399A/en
Publication of JPH10293754A publication Critical patent/JPH10293754A/ja
Application granted granted Critical
Publication of JP3697831B2 publication Critical patent/JP3697831B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 (修正有) 【課題】データ転送ネットワークを介してメッセージ通
信を行うコンピュータシステムを提供する。 【解決手段】受信要求にタイムスタンプを付加したの
ち、これらの要求をローカルメモリ内のハッシュテーブ
ルにポストする。メッセージが到着すると、受信回路が
ハッシュテーブルを検索して、最も古くて一致する有効
受信要求の検出を試みる。一致するポスト受信要求が検
出されると、当該受信要求が実行される。一致したメッ
セージデータを受信回路が直接書き込むためのデータバ
ッファを受信要求で指定する。ソフトウェアはたとえ
ば、各コミュニケータ値につき、持続性であって、遠い
未来を指すタイムスタンプ値を有する送信元及びタグが
無指定の受信要求をポストする。これらの要求は、他の
ポスト受信要求のいずれにも一致しないメッセージに対
するデフォルト受信要求として作用する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ転送ネット
ワークを介してデータをメッセージの形式で転送するコ
ンピュータシステムに関する。
【0002】
【従来の技術】並列コンピュータシステムのうち、特に
分散型記憶装置を有するシステムに使用する目的で記述
されたソフトウェアの多くのアプリケーションでは、ア
プリケーションソフトウェアと通信ネットワークのハー
ドウェアとの間のインタフェースとしてメッセージ通信
ソフトウェアライブラリを使用する。こうしたライブラ
リの一例として、MPI(Message‐Passi
ng Interface Standard; メッ
セージ通信インタフェース規格)がある。
【0003】MPIの場合、ライブラリはソフトウェア
のルーチンとして作成される。これらのルーチンは、ア
プリケーションソフトウェアによって呼び出され、並列
コンピュータの各ノードにおける命令処理装置によって
実行される。命令処理装置は、ノードの送信回路と受信
回路とを制御する。これらの回路は、ネットワークを介
してシステムの他のノードへと接続されている。
【0004】MPI規格に準ずるライブラリにおいて
は、基本的に2種類のソフトウェアルーチンが存在す
る。一方のルーチンは、送信要求ルーチンであって、シ
ステムの他のノード宛てにメッセージの送信を要求する
ために使用される。他方のルーチンは、受信要求ルーチ
ンであって、メッセージの受信を要求するために使用さ
れる。
【0005】アプリケーションが送信要求ルーチンを呼
び出してメッセージを送信する場合、アプリケーション
は複数のパラメータを指定する。これらのパラメータと
しては、メッセージの宛先ノード番号(各ノードは一意
な識別番号を有する)、タグ値(アプリケーションがメ
ッセージの種類を識別するために使用する値)、コミュ
ニケータ値(送信における通信のコンテキストを指定す
るために使用され、メッセージは同一の通信コンテキス
トにおいてのみ受信可能である)、送信データのローカ
ルメモリ内のアドレス、送信データの量などがある。
【0006】アプリケーションが受信要求ルーチンを呼
び出す場合、アプリケーションは、受信したいメッセー
ジと、そのメッセージのローカルメモリ内の書込アドレ
スとを指定する。かかる指定に関するパラメータは、受
信要求ルーチンに渡される。これらのパラメータとして
は、タグ指定(特定のタグもしくは任意の無指定(Wi
ldcard)タグ値を指定する)、送信元指定(特定
の送信元もしくは任意の無指定(Wildcard)送
信元値を指定する)、コミュニケータ値(受信時の通信
のコンテキストを指定するために使用され、受信要求は
同一の通信コンテキストで送信されたメッセージにのみ
対応する)、宛先バッファのローカルメモリ内のアドレ
ス、宛先バッファの大きさなどがある。
【0007】受信ルーチンを実行すると、メッセージが
すでに当該ノード宛てに送信済みであれば、受信メッセ
ージ指定に対応する該メッセージが直ちにアプリケーシ
ョンへと返送される。要求が直ちに実行できない場合、
該要求に関する情報が記録され、かかる情報はポスト受
信要求と呼ばれる。ついでこのようなメッセージの送信
要求が発行されると、受信ルーチンは、当該メッセージ
を完成してアプリケーションソフトウェアへと返送す
る。またMPI規格は、複数のメッセージが互いを追い
越さないことを定めている。すなわち複数の保留状態の
受信要求が一メッセージに対応する場合、保留時間のも
っとも長い受信要求がかかるメッセージによって満たさ
れる。
【0008】あるノードのローカルメモリから他のノー
ドのローカルメモリへとメッセージを転送するためのハ
ードウェアの従来技術が特開平6ー324998に開示
されている。この従来技術の発明の一実施例を図3に示
す。複数のノードがメッセージ転送ネットワーク(90
2)に接続されるが、ここでは説明を簡単にするために
1個のノード(901)のみを示す。各ノードは、命令
処理装置IP(903)と、ローカルメモリ(904)
と、ネットワークインタフェースアダプタNIA(90
5)とを含む。これらの構成はすべてバス(906)に
よって接続される。ネットワークインタフェースアダプ
タNIA(905)は、送信回路(908)と受信回路
(910)とを含む。送信回路(908)と受信回路
(910)は、それぞれ送信ネットワーク接続機構(9
09)と受信ネットワーク接続機構(911)とを介し
て、ネットワーク(902)へと接続される。ネットワ
ークメッセージ(912)は、メッセージデータ(91
7)とメッセージヘッダとから構成される。メッセージ
ヘッダは、DNNフィールド(913)とタグフィール
ド(916)とを有し、DNNフィールド(913)は
どのノードが当該メッセージを受信するかを指定する。
受信回路内には、入力ポート(918)と、受信シーケ
ンサ(919)と、直接メモリアクセス制御装置DMA
C(921)と、受信ポストレジスタ(920)とが含
まれる。メッセージが入力ポート(918)に到着する
と、該メッセージのタグフィールド(916)とポスト
レジスタ(920)に格納されたタグフィールドとが照
合される。両フィールドが一致すれば、受信シーケンサ
(919)の指令によって、直接メモリアクセス制御装
置DMAC(921)はユーザ受信バッファ(933)
を使用してメッセージデータ(917)を受信する。ユ
ーザ受信バッファ(933)を指すアドレスポインタ
(932)もまた、ポストレジスタ(920)内にあ
る。ユーザ受信バッファ(933)は、一例としてロー
カルメモリ(904)のユーザのアプリケーション空間
に置かれる。メッセージのタグフィールド(916)と
ポストレジスタ(920)のタグフィールドとが一致し
ない場合、当該メッセージはローカルメモリのメッセー
ジバッファ(941)で受信・格納される。
【0009】上記従来技術の発明では、各メッセージに
つき1個のみのポスト受信要求をサポートする受信装置
を記述している。また上記の従来技術では、受信ポスト
レジスタと一致しないメッセージを記録するメッセージ
バッファも示している。このメッセージバッファは、メ
ッセージプールとみなしてよい。従来技術では、メッセ
ージプールを1個のみサポートしている。
【0010】上記従来技術のハードウェアで受信ポスト
レジスタを使用すれば、一時に1個ずつのメッセージの
受信を要求できる。MPIも含めてほとんどのメッセー
ジ通信ライブラリでは、多数の同時に有効な受信要求と
無指定(Wildcard)受信要求とをサポートして
いる。
【0011】ここで、上記従来技術の発明で示された単
一受信ポストレジスタを利用したMPIメッセージ通信
ライブラリを作成したとする。この場合、ライブラリは
このレジスタを使用して1個の保留受信要求をポストで
きるのみであり、しかもこれはかかる要求が無指定(W
ildcard)を使用しない場合にのみ限られる。ま
た保留時間のもっとも長い要求以外の要求をポストした
い場合、MPIのメッセージの順番付けの規則を犯さな
いという制約上、かかる要求のポストは、該要求の保留
時間より短い保留時間を有する要求がすべて当該メッセ
ージに一致しない場合にのみ可能である。これは、受信
時の矛盾を検査するためのソフトウェアのオーバヘッド
を増加させる。受信ポストレジスタを使用してメッセー
ジを受信したのち、受信回路は命令処理装置に割り込む
必要がある。これは、受信ポストレジスタを使用して、
命令処理装置に別な要求をポストさせるためである。結
果として、命令処理装置の割り込みが頻発し、ソフトウ
ェアのオーバヘッドが増大するため、命令処理装置の有
効処理能力を低下させてしまう。一方、ソフトウェアの
発行した受信要求の順序と異なる順序で受信回路が受信
したメッセージは、プールに書き込まれる。プールに受
信・格納されたこれらのメッセージもまた、命令処理装
置によって宛先バッファへと複写されなければならない
ため、さらに性能が低下することになる。
【0012】従来技術のハードウェアを使用したMPI
ライブラリを実施する別な方法としては、メッセージを
実際に転送する前にノード間で制御メッセージを交換す
るという方法が考えられる。これらの制御メッセージを
使用すれば、実際にメッセージが転送される前に受信ポ
ストレジスタを形成することができるため、メッセージ
データを宛先バッファに一括して複写する必要がなくな
る。しかしながら、この解決法には性能上重大な問題が
ある。第一に、制御メッセージを転送するためのオーバ
ヘッドによって、メッセージ転送の待ち時間が長くな
る。第二に、制御メッセージは、その性質上非同期であ
るため、これらのメッセージを処理するためには命令処
理装置に頻繁に割り込む必要があり、結果的に命令処理
装置の有効処理能力が低下する。
【0013】さらに、ノード上で動作する通信タスク以
外のソフトウェアタスクと、通信タスクとを、メッセー
ジの待機中にスリープ状態に入れたいとする。この場
合、受信回路を設定して行なう命令処理装置の割り込み
は、特定の一メッセージに対してのみ可能である。メッ
セージプールへとメッセージを受信・格納するための割
り込みを許可する必要がある。割り込み処理のソフトウ
ェアルーチンは、一メッセージが受信回路によって受信
されると、その都度、上記の特定のメッセージが受信さ
れたか否かを調べるために、メッセージプールを検査し
なければならない。
【0014】また、ある単一のノードが使用する通信の
コンテキストが複数存在する場合、これら複数の通信コ
ンテキストに属するメッセージを対象として、別個のメ
ッセージプールをそれぞれ割り当てることは不可能であ
る。単一の通信コンテキストにおいて多数のメッセージ
が送信された場合、すべての通信処理用のプール空間を
使い切ってしまう可能性がある。
【0015】
【発明が解決しようとする課題】本発明の第1の課題
は、同時に保留状態となりうる複数の受信要求をいかに
ポストするかという問題を解決するとともに、中間的な
受信バッファプールからローカルメモリ内の最終宛先バ
ッファへのメッセージデータの不用な複写をなくすこと
にある。ローカルメモリ内の最終宛先バッファは、メッ
セージが実際に受信される前に該最終宛先バッファのア
ドレスが判明している場合、受信要求によって指定され
る。ローカルメモリ内の領域間におけるデータの複写
は、命令処理装置の処理時間の浪費であり、メッセージ
転送の待ち時間を増加させる。
【0016】本発明の第2の課題は、受信すべきメッセ
ージの指定方法を拡大することによって、無指定(Wi
ldcard)値を含む複数のパラメータをメッセージ
に持たせることにある。これによって、何も指定しない
受信要求をサポートするメッセージ通信ライブラリを簡
単に実現できるとともに、メッセージデータの不用な複
写をなくすことができる。
【0017】本発明の第3の課題は、受信要求をその発
行順に、到着するメッセージに対応させることにある。
これによって、メッセージと受信要求との対応を、規定
の順序で行なうことを定めたMPIのようなメッセージ
通信ライブラリを簡単に実現することができる。
【0018】本発明の第4の課題は、複数の通信コンテ
キストに異なるメッセージプールをいかにしてか割り当
てることによって、一通信コンテキストにおけるプール
のオーバーフローが、他の通信コンテキストのメッセー
ジプールへの受信に影響を及ぼさないようにするかとい
う問題を解決することにある。
【0019】本発明の第5の課題は、命令処理装置が、
特定のメッセージの受信、特定の種類のメッセージの受
信、もしくは特定の送信元からのメッセージの受信を待
つ間に、命令処理装置の不用な割り込みが発生するとい
う問題を解決することにある。不用な割り込みは、命令
処理装置の有効処理性能を低下させる。
【0020】
【課題を解決するための手段】本発明のデータ転送ネッ
トワークを介したメッセージ通信において、メッセージ
ヘッダは、送信元フィールドと、宛先フィールドと、タ
グフィールドと、コミュニケータフィールドとを含む。
送信元フィールドは、送信ノードを一意に識別する。宛
先フィールド、タグフィールド、ならびにコミュニケー
タフィールドは、送信回路に対して発行されるメッセー
ジ送信要求によって指定される。メッセージは、宛先フ
ィールドによって一意に指定される目標ノードへとネッ
トワークを介して送られる。受信要求が、受信すべきメ
ッセージの送信元フィールド、タグフィールド、コミュ
ニケータフィールドを指定してもよい。送信元フィール
ドとタグフィールドは、無指定としてもよい。受信要求
にはタイムスタンプが記され、それぞれローカルメモリ
のハッシュテーブルにポストされる。メッセージが到着
すると、このハッシュテーブルは受信回路によって検索
される。この検索は、経過時間がもっとも長くて有効な
受信要求指定、送信元無指定もしくはタグ無指定に対し
て行なわれ、送信元フィールドもしくはタグフィールド
に関してメッセージと一致した指定が確定される。一致
するポスト受信要求が検出されると、当該受信要求が実
行される。受信要求は、一致するメッセージデータを受
信回路が直接書き込むバッファを指定することもでき
る。この場合、当該受信要求は処理済みとされ、ハッシ
ュテーブルから削除される。もしくは、受信要求は、メ
ッセージをその内部に受信する特定のメッセージプール
を指定してもよい。この場合、受信要求は、実行後も有
効な持続性受信要求として指定できる。一例として、ソ
フトウェアは、各コミュニケータ値につき、持続性であ
って、遠い未来を指すタイムスタンプ値を持ち、無指定
送信元フィールドおよび無指定タグフィールドを持つ受
信要求をポストする。これらの要求は、他のポスト受信
要求のいずれにも一致しないメッセージに対するデフォ
ルト受信要求として作用する。この場合、アプリケーシ
ョンソフトウェアがメッセージ到着後に発行した特定の
受信要求は、ソフトウェアがメッセージプール内のメッ
セージと照合してもよい。一致したメッセージはアプリ
ケーションへと複写される。
【0021】不用な割り込み要求は、次のようにして減
少させる。各受信要求に対応するローカルメモリ内の制
御データ構造に、割り込み要求ビットフィールドを設け
る。このビットフィールドを受信回路に検査させる手段
を設け、これによって命令処理装置に割り込むか否かを
決定する。
【0022】ハードウェア上でポスト受信検索機構を実
現する。該機構は、送信すべき制御メッセージの数量を
減少させ、割り込み要求に関連した命令処理オーバヘッ
ドを減らすことによって、メッセージの待ち時間を相当
程度短縮する。また該機構は、メッセージの到着前に受
信要求が発行された場合、データの一括複写動作を不用
とする。
【0023】各ノードにおけるライブラリソフトウェア
は、最初にポスト受信ハッシュテーブル構造をローカル
メモリに形成するとともに、持続性であって、遠い未来
を指すタイムスタンプ値を持ち、無指定送信元フィール
ドおよび無指定タグフィールドを持つ受信要求を、各通
信コンテキストにおいてポストする。これらのデフォル
ト受信要求は、他のいずれのポスト受信要求にも一致し
ないメッセージを、メッセージプールへと受信するため
に使用される。
【0024】いずれかのノードで実行されるアプリケー
ションソフトウェアは、任意の時点で、通信ライブラリ
ソフトウェアに対して送信要求を発行できる。この場
合、ライブラリは、該送信要求と、該要求の通信コンテ
キストを識別するコミュニケータ値とを、送信回路へと
転送する。送信回路はメッセージヘッダを作成する。こ
のメッセージヘッダには、送信要求に基づいた宛先フィ
ールドとタグフィールド、送信ノードを一意に識別する
送信元フィールド、ならびにコミュニケータフィールド
が含まれる。ついで送信回路は、ヘッダにメッセージデ
ータを付加して、完成したメッセージをネットワークへ
と送出する。
【0025】メッセージは、メッセージヘッダの宛先フ
ィールドによって一意に指定された目標ノードへとネッ
トワークを介して転送される。このネットワークは固定
経路アルゴリズムを使用していることに注目されたい。
このアルゴリズムによれば、一ノードから送出されたメ
ッセージは、すべて同一の経路を通って他の一ノードへ
と送信される。これによってメッセージ間の追い越しを
防いでいる。
【0026】いずれかのノードで実行されるアプリケー
ションソフトウェアは、任意の時点で、通信ライブラリ
ソフトウェアに対して受信要求を発行できる。この場
合、ライブラリはまず、当該通信コンテキストに対応す
るメッセージプールを検索して、以前に受信したメッセ
ージのなかで該当するものを検出しようとする。該当す
るメッセージが検出されない場合、ライブラリは、タイ
ムスタンプを記した受信要求をハッシュテーブルにポス
トする。この要求には、当該受信要求の通信コンテキス
トを識別するコミュニケータ値と、当該受信要求で指定
されたタグフィールドと送信元フィールドの値とが含ま
れる。送信元フィールドとタグフィールドは、無指定と
してもよい。また各受信要求には、該要求の完了時に命
令処理装置の割り込みを要求する制御ビットが含まれ
る。この制御ビットは、受信が完了するまでの任意の時
点で変更することができる。
【0027】メッセージが到着すると、宛先ノードのポ
スト受信ハッシュテーブルが受信回路によって検索され
る。この検索は、経過時間がもっとも長くて有効な受信
要求指定、送信元無指定、もしくはタグ無指定に対して
行なわれ、送信元フィールドもしくはタグフィールドに
関してメッセージと一致した指定が確定される。一例と
して、以前にポストされた受信要求がメッセージに一致
しないとする。この場合、メッセージは、デフォルト受
信要求を使用してメッセージプールへと受信・格納され
る。続いてアプリケーションソフトウェアが受信要求を
発行すると、該メッセージは、メッセージプールからア
プリケーションへと複写される。他の例として、一致す
るポスト受信要求が検出されたとする。この場合、当該
受信要求は実行され、該要求によって指定された受信バ
ッファは、受信回路によって直接書き込まれる。受信要
求の割り込み要求制御ビットが、検査によってセットさ
れていると判明した場合、命令処理装置の割り込みが発
生する。
【0028】
【発明の実施の形態】本発明の実施例を詳細に説明する
に先立ち、MPIを以下で簡単に要約する。
【0029】MPIの仕様では、アプリケーションソフ
トウェアプログラムとソフトウェア通信ライブラリとの
間のソフトウェアインタフェースを規定する。MPIソ
フトウェアライブラリは、アプリケーションソフトウェ
アに対して、たとえばアプリケーションソフトウェアが
呼び出せるソフトウェアサブルーチン一式として提供さ
れる。
【0030】通信は、たとえば異なるノード上で実行さ
れるソフトウェアの処理間で転送されるメッセージによ
って実行される。MPIライブラリソフトウェアのサブ
ルーチンのうち、もっとも原始的なものは送信サブルー
チンと受信サブルーチンである。メッセージをあるソフ
トウェア処理から別なソフトウェア処理へと送信するた
めの要求を発行する場合、送信元の処理は送信サブルー
チンを呼び出す。受信側の処理が、メッセージを受信す
るための要求を発行する場合、受信側の処理は受信サブ
ルーチンを呼び出す必要がある。受信側処理が指定した
メッセージに一致するメッセージがすでに送られている
場合、受信は直ちに完了する。受信側処理が指定したメ
ッセージに一致するメッセージがまだ送られていない場
合、かかるメッセージが到着するまで該受信要求は保留
状態に置かれる。
【0031】MPI仕様によれば、MPIメッセージ
は、データ部に加えて「メッセージエンベロープ」を含
む。かかるエンベロープは、一定数のフィールドからな
り、これらのフィールドはメッセージを識別して選択的
に受信するために使用される。これらフィールドには、
送信元フィールド、宛先フィールド、タグフィールド、
およびコミュニケータフィールドが含まれる。メッセー
ジの送信元は、送信元の存在によって暗黙に決定され
る。他のフィールドは、送信動作の引数によって指定さ
れる。コミュニケータフィールドは、通信動作の通信コ
ンテキストを指定する。各通信コンテキストは、別個な
「通信領域」を規定する。メッセージは、それらが送信
されたコンテキストにおいてのみ受信され、異なるコン
テキストで送られたメッセージは互いに干渉することが
ない。
【0032】MPI規格はまた、メッセージ間で追い越
しがあってはならないことを定めている。ある送信元
が、2個のメッセージを同一の宛先に対して連続して送
信した場合であって、いずれのメッセージも同一の受信
要求に一致する場合、最初のメッセージが保留とされる
と、2番目のメッセージはこの動作においては受信でき
ない。また受信側が2個の受信要求を連続してポストし
た場合であって、いずれの要求も同一のメッセージに一
致する場合、最初の受信要求が保留とされると、2番目
の要求は当該メッセージによって満たされることがな
い。
【0033】本発明の目的は、MPI仕様の定めるイン
タフェースと同様な、ハードウェアとソフトウェアとの
間のインタフェースを有する通信システムを提供するこ
とによって、MPIに適合したソフトウェアライブラリ
を実施することにある。このライブラリは、ライブラリ
ソフトウェアの待ち時間オーバヘッドと、命令処理装置
割り込み要求に起因するオーバヘッドとをほぼ伴わず
に、機器インタフェースを使用できるライブラリとして
機能する。
【0034】本発明の実施例を図1に示す。この実施例
は、ネットワーク(2)によって接続された複数のノー
ドからなるコンピュータシステムである。説明を簡単に
するため、1個のノード(1)のみを示す。図2に、複
数のノード(50、51、52)をネットワーク(2)
に接続する方法を示す。この方法によって、任意の複数
のノードをネットワーク(2)によって接続することが
できる。図1のノード(1)は、このシステムを構成す
るノードのうちのひとつである。他のノードはいずれ
も、ノード(1)と同様な構造を有する。各ノードは、
システムにおいて該ノードを一意に識別するノード番号
を有し、また各ノードはシステム内の各通信処理を一意
に識別する。
【0035】ノード(1)は、命令処理装置IP(3)
と、ローカルメモリ(4)と、ネットワークインタフェ
ースアダプタNIA(5)とを含む。これらの構成は、
バス(6)によって当該ノード内で連係されている。命
令処理装置(3)とネットワークインタフェースアダプ
タ(5)は、バス(6)を介してローカルメモリ(4)
へのアクセスを共有する。また命令処理装置(3)は、
バス(6)を介して、ネットワークインタフェースアダ
プタ(5)内の所定のレジスタに直接アクセスできる。
ネットワークインタフェースアダプタ(5)から命令処
理装置(3)へと至る割り込み要求線(7)が設けら
れ、これによって、ネットワークインタフェースアダプ
タ(5)は、命令処理装置(3)のサービスを要求する
ことができる。
【0036】ネットワークインタフェースアダプタ
(5)は、ネットワーク(2)に送信するための送信ポ
ート接続機構(9)を有する送信回路部(8)と、ネッ
トワーク(2)から受信するための受信ポート接続機構
(11)を有する受信回路部(10)とを含む。メッセ
ージは送信回路(8)によって組み立てられて、ネット
ワークへと送出される。かかるメッセージ(12)の一
例を図1に示す。メッセージ(12)は、メッセージヘ
ッダ部と、データ部(17)とを有する。メッセージヘ
ッダ部は、宛先ノード番号(DNN)フィールド(1
3)、送信元ノード番号(SNN)フィールド(1
4)、コミュニケータ(Comm)フィールド(1
5)、ならびにタグ(Tag)フィールドを含む。ネッ
トワーク(2)は、DNNフィールド(13)を使用し
て、メッセージの転送先を決定する。SNNフィールド
(14)は、送信元ノードに対応する一意なノード番号
を含む。コミュニケータフィールド(15)は、送信元
ノードのソフトウェアが割り当てた値であって、当該メ
ッセージが所属する通信コンテキストを指定する値を含
む。タグフィールド(16)の値は、複数のメッセージ
を区別するためにアプリケーションソフトウェアによっ
て割り当てられる。
【0037】ネットワーク(2)は、パケット交換ネッ
トワークであって、各メッセージのヘッダ部に含まれる
DNNフィールドに基づいて、送信回路から適当な受信
回路へとメッセージを転送するネットワークである。メ
ッセージは、メッセージ間の追い越しを禁じたMPI規
格に準じて、互いを追い越すことなく転送される。
【0038】受信回路(10)を使用して、当該ノード
に対して送られたメッセージをネットワーク(2)から
受信する。受信回路(10)は、入力ポート制御装置
(18と)、受信シーケンサ(19)と、ハッシュテー
ブル検索制御装置(20)と、直接メモリアクセス制御
装置DMAC(21)とを含む。これらの制御装置はバ
ス(6)に接続され、制御/状態信号(22)によって
相互に連係されている。入力ポート制御装置(18)
は、受信ポート接続機構(11)を介してネットワーク
(2)へと接続され、ネットワーク(2)からメッセー
ジを受信するために使用される。直接メモリアクセス制
御装置DMAC(21)は、ローカルメモリ(4)から
の読み出しと該メモリへの書き込みとを、バス(6)を
介して制御するために使用される。ハッシュ検索制御装
置(20)は、ローカルメモリ(4)内のポスト受信ハ
ッシュテーブル(23)を検索して、メッセージヘッダ
のSNNフィールドと、コミュニケータフィールドと、
タグフィールドとに一致するエントリを確定するために
使用される。受信シーケンサ(19)は、他の制御装置
の動作を監視し、ローカルメモリ(4)内のメモリ構造
における取り出しと更新とを制御するとともに、受信回
路(10)が生成した割り込み要求を制御する。
【0039】本発明の一面は、メッセージの受信に関す
る動作に特に関わっている。メッセージを受信するため
には、ソフトウェアはローカルメモリ(4)にあらかじ
め各種のメモリ構造を生成しなければならない。これら
の構造は、受信回路とソフトウェアとの双方によって使
用される。ポスト受信要求は、ポスト受信ハッシュテー
ブル(23)を使用して行なわれる。このテーブルに
は、ハッシュテーブルエントリ(以下ではHTEと呼
ぶ)が格納される。参照番号(24)で示すHTEは、
有効HTEの一例である。有効HTE(24)には、S
NNフィールド(26)と、コミュニケータフィールド
(27)と、タグフィールド(28)とが含まれる。S
NNフィールド(26)とタグフィールド(28)は、
無指定(Wildcard)値を表わす特別な値を含む
ように、ソフトウェアによってプログラムしてもよい。
受信回路(10)がメッセージを受信すると、ハッシュ
テーブルが検索されて、メッセージヘッダのSNNフィ
ールドと、コミュニケータフィールドと、タグフィール
ドとに一致する受信指定を有するHTEが検出される。
HTE(24)はまた、受信回路(10)が、複数の有
効なハッシュテーブルエントリを一致したものとして検
出した場合に使用される時間フィールド(29)を有す
る。この場合、受信回路(10)は、時間フィールドの
値がもっとも古いハッシュテーブルエントリを選択す
る。参照番号(24)のHTEはさらに、ポスト受信制
御語(ポストRCWと称する)(31)を指すポインタ
(30)を含む。ポストRCW(31)は、受信回路
(10)によって取り出され、メッセージの受信先を指
定する。ポストRCW(31)は、ローカルメモリ内の
データバッファ(33)を指すポインタ(32)を含
む。一例として、データポインタ(33)は、受信要求
を発行したアプリケーションのアプリケーション空間
(34)に含まれる。受信回路(10)は、HTE(2
4)を更新することによって、ポストRCW(31)が
使用されていることを示すとともに、メッセージヘッダ
をポストRCW(31)に記録し、メッセージデータを
データバッファ(33)へと書き込む。他の一例とし
て、参照番号(25)のHTEは、プール制御語(PC
Wと称する)(36)を指すポインタ(35)を含む。
PCW(36)は、一連の空きプール受信制御語(プー
ルRCWと称する)を指すポインタ(37)と、データ
プール(41)の先頭ポインタ(39)と末尾ポインタ
(40)とを保持するために使用される。複数のプール
RCWは、連鎖の形式をとる。PCW(36)は、連鎖
内の最初の空きプールRCW(38)を指すために保持
されるポインタ(37)を含む。このプールRCW(3
8)は、別なプールRCW(43)を指すポインタ(4
2)を含む。メッセージが受信されて、一致するとして
検出されたHTEがPCWを指す場合、受信回路は、該
PCWを使用して、メッセージヘッダを記録するための
空きプールRCWと、メッセージデータを記録するため
のデータプールの空間とを割り当てる。
【0040】ソフトウェアはたとえば、使用中の各コミ
ュニケータ値に対して、SNN無指定(Wildcar
d)とタグ無指定(Wildcard)とを有する有効
HTEを生成する。これらのHTEはそれぞれ、PCW
を指すポインタを含む。ソフトウェアはまた、各PCW
に対して、一連の空きプールRCWと一データプールと
を生成する。これは、一致するポストRCWのないメッ
セージを、ソフトウェアが受信できるようにすることを
目的としている。他のいずれの受信要求にも一致しない
メッセージが受信されると、これらのメッセージはデー
タプールへと受信・格納される。メッセージが実際に受
信されたのちに該メッセージの受信を求めて発行された
ソフトウェアの要求は、データプールからアプリケーシ
ョンの受信バッファへとデータを複写することによって
処理される。
【0041】送信回路と受信回路の説明を続ける前に、
メッセージの形式と、メッセージの送信を制御するため
に使用されるデータ構造の形式と、受信要求をポストす
るために使用されるデータ構造の形式とについて説明す
る。これらのデータ構造は、ローカルメモリ(4)内に
設けられる。
【0042】図4に、本実施例で使用するメッセージ
(100)の詳細な形式を示す。最初のフィールドはD
NNフィールド(101)である。ネットワーク(2)
は、DNNフィールド(101)を使用して、正しい宛
先ノードの受信回路へとメッセージを転送する。DNN
フィールド(101)は、MPIメッセージエンベロー
プの宛先フィールドと同じ機能を有する。SNNフィー
ルド(102)は、受信ノードに対してメッセージ(1
00)の送信元を識別する。SNNフィールド(10
2)は、MPIメッセージエンベロープの送信元フィー
ルドと同じ機能を有する。コミュニケータフィールド
(103)の値は、メッセージの送られた通信コンテキ
ストを識別するMPIメッセージエンベロープのコミュ
ニケータ値と同様な意味をもつ値であるとともに、該メ
ッセージを受信するための受信要求の通信コンテキスト
の値でもある。タグフィールド(104)の値は、送信
要求によって指定されたMPIメッセージエンベロープ
のタグ値と同様な意味を持つ値である。ソフトウェアヘ
ッダ(WSH)フィールド(105)は、送信元処理の
ライブラリソフトウェア用として確保されたフィールド
である。遠隔割り込み要求Rビットフィールド(10
6)は、送信元処理のライブラリソフトウェアによって
指定される制御ビットである。遠隔割り込み要求ビット
R(106)がセットされると、宛先ノードの受信回路
によるメッセージ(100)の受信時に、受信ノードで
命令処理装置(IP)割り込み要求が発生するように指
定される。データ長さ(DataLen)フィールド
(107)は、メッセージ(100)のデータフィール
ド(109)の長さを指定する。ヘッダCRCフィール
ド(108)には、先行するすべてのヘッダフィールド
を使用して計算されるCRCエラーチェック値が格納さ
れる。データフィールド(109)にはメッセージデー
タが格納される。データCRC(110)には、データ
フィールド(109)のみを使用して計算されるCRC
エラーチェック値が格納される。いずれのフィールドを
メッセージの先頭にするかをネットワークと受信回路と
で決定するために、メッセージヘッダとメッセージデー
タの2バイト語ごとに、同期ビットフィールド(11
1)が付加される。メッセージヘッダの最初の2バイト
語に付加された同期ビット(112)のみがセットさ
れ、他の同期ビットフィールドはすべてクリアされる。
【0043】メッセージを送信するための要求は、送信
制御語(TCWと称する)の形式でローカルメモリに格
納される。複数のTCWを連鎖すると、複数のメッセー
ジの送信が可能になる。これらのTCWは、連鎖と同一
の順序で送信回路によって処理される。図5にTCW
(120)の詳細な形式を示す。次ポインタ連鎖フィー
ルド(NTCWPtr)(121)は、次の連鎖TCW
を指すアドレスポインタを含む。次TCW連鎖制御ビッ
ト(NC)(122)は、NTCWPtr(121)フ
ィールドが有効であって、TCW連鎖内の次のTCWを
指す場合にセットされる。DNNフィールド(12
6)、コミュニケータ(Comm)フィールド(12
7)、タグ(Tag)フィールド(128)、SWHフ
ィールド(129)、Rフィールド(130)、データ
長さ(DataLen)フィールド(131)は、送信
すべきメッセージヘッダのそれぞれ該当するフィールド
を含む。データポインタ(DataPtr)フィールド
(125)は、送信すべきメッセージデータを指すポイ
ンタを含む。割り込み要求IRビットフィールド(12
4)がセットされると、送信動作の完了時に、送信回路
が割り込み要求を発行する。IMビットフィールド(1
23)は、割り込み要求機能の動作を制御する。IMビ
ット(123)をクリアすると、送信動作の完了時に、
IRビット(124)が送信回路によって再度読まれ
る。IMビット(123)がセットされると、IRビッ
ト(124)は再度読まれることはなく、送信回路によ
るTCWの最初の読み込み時のIRビットの値が記憶さ
れ、該ビット値が割り込み要求を生成するか否かの決定
に使用される。TCWの状態は、残りのSフィールド
(132)、Fフィールド(133)、Iフィールド
(134)、Eフィールド(135)ならびにECフィ
ールド(136)から構成される。これらのフィールド
の書き込みは、送信回路によって2回実行される。すな
わち、送信回路がTCWを取り出した直後に1回、メッ
セージの送信の完了時に1回行なわれる。開始状態Sビ
ット(132)は、TCWが最初に取り出されたのちに
送信回路によってセットされる。終了状態Fビット(1
33)は、送信回路によるTCWの処理が終了した時点
でセットされる。割り込み要求状態Iビット(134)
は、Fビット(133)と同時にセットされるが、これ
はIRビット(124)を介して割り込み要求が出され
た場合にのみ行なわれる。エラー状態Eビット(13
5)もFビット(133)と同時にセットされるが、こ
れは送信元によるTCWの処理中にエラーが発生した場
合にのみ行なわれる。エラーコードECフィールド(1
36)には、Eビット(135)のセットと同時に書き
込みが行なわれる。ECフィールド(136)には、ソ
フトウェアによってエラーを表わすと解釈されたコード
が格納される。ライブラリがローカルメモリ中にTCW
を生成したのち、ライブラリは次のいずれかの動作を行
なう。すなわち、ライブラリは、TCWを指すポインタ
を、送信回路内にあるNTCWPtrレジスタ(後で説
明する)へと書き込む。もしくは、送信回路による他の
TCWの処理がすでに行なわれているため該レジスタが
使用中である場合は、ライブラリは、TCW連鎖内の最
後のTCWに当該TCWを連結する。送信要求を処理す
る場合、送信回路はTCWを取り出し、TCW内の状態
フィールドを更新するとともに、送信要求を実行する。
TCWの処理が完了すると、送信回路は、再度状態ビッ
トを更新し、連鎖内に次のTCWがあればこれを取り出
す。
【0044】ポスト受信要求は、非持続性受信要求と持
続性受信要求の2種類に大別される。非持続性受信要求
は単一のメッセージを受信するための要求であり、持続
性受信要求は任意の複数のメッセージを受信するための
要求である。非持続性受信要求は、ポストRCWの形式
でローカルメモリに格納され、要求されたメッセージが
受信されるとその処理が完了する。複数のメッセージを
受信するための持続性受信要求は、ポストPCWの形式
でローカルメモリに格納される。持続性受信要求は、一
メッセージを受信したのちも有効である。
【0045】ネットワークの受信回路にメッセージが到
着すると、受信回路はポスト受信ハッシュテーブルを検
索して、一致する受信要求を検出しようとする。図6に
ハッシュテーブルエントリ(140)(HTEと称す
る)の詳細な形式を示す。ポスト受信要求のメッセージ
指定は、SNNフィールド(141)と、コミュニケー
タ(Comm)フィールド(142)と、タグ(Ta
g)フィールド(143)とから構成される。SNNフ
ィールド(141)には、メッセージの送信元ノード番
号か、もしくは無指定の送信元値を表わす特別な値(全
ビットがセットされている)かのいずれかが格納され
る。コミュニケータフィールド(142)には、受信コ
ンテキストのコミュニケータ値が格納される。この値
は、メッセージの送信コンテキストの値と同一である。
受信コンテキストと送信コンテキストのコミュニケータ
値は同一でなければならない。タグフィールド(14
3)には、メッセージのタグか、もしくは無指定のタグ
値を表わす特別な値(全ビットがセットされている)か
のいずれかが格納される。RCWもしくはPCWの形式
の受信要求は、HTEから始まるこれらRCWもしくは
PCWの連鎖を形成することによってポストされる。こ
の場合の受信指定は、要求の指定と同一である。ポイン
タ(Ptr)フィールド(144)は、RCWもしくは
PCWを指す連鎖アドレスポインタを含む。連鎖有効ビ
ットC(145)は、ポインタフィールド(144)が
有効であることを示す。Pビット(146)は、ポイン
タフィールド(144)がポストPCWを直接指してい
る場合にセットされ、ポストRCWを指す場合にはクリ
アされる。時間フィールド(148)には、RCWもし
くはPCWがポストされた時間(ポインタフィールド
(144)によって示される)に対応するタイムスタン
プ値が格納される。
【0046】特定の受信指定を有するHTEのポスト受
信ハッシュテーブル内における格納場所は、2つのステ
ップからなる処理によって決定される。第1のステップ
では、ハッシュ機能を使用して受信指定のハッシングが
行なわれる。ハッシュ機能は、同一の入力パラメータに
対しては常に同一の結果値を発生するが、他の場合には
ランダムな結果値を発生する数学的機能である。受信指
定のSNNフィールドの値、コミュニケータフィールド
の値ならびにタグフィールドの値が、ハッシュ機能に与
えられる入力パラメータとなる。出力値、すなわちハッ
シュテーブル内のHTEの個数の非等価演算の結果は、
ハッシュテーブルの基底アドレスから最初の検索点に至
るインデックスを構成する。第2のステップでは、これ
らのHTEが最初の検索点から逐次検索される。検索が
ハッシュテーブルの上限に達すると、基底アドレスへと
戻る。この処理は、当該HTEが検出されるか、もしく
は無効なHTEが検出されるまで行なわれる。無効なH
TEが検出された場合、当該HTEは存在しない。新た
なHTEを生成する必要がある場合、検索中に検出され
た古いHTE(そのCビットがクリアされたもの)に重
ね書きするか、もしくは検索中に最初に検出された有効
なHTEに重ね書きする。この検索手順において注目す
べき点は、メッセージに一致する受信指定を有するHT
Eを検索・確定するわけではなく、特定の受信指定を有
するHTEを確定するために検索が行なわれるという点
である。
【0047】すべての非持続性受信要求は、それぞれに
付加された一意なタイムスタンプ値を有する。低いタイ
ムスタンプ値は受信要求が古いことを示し、高いタイム
スタンプ値はより新しい受信要求を表わす。持続性受信
要求にもタイムスタンプ値が付加されているが、通常こ
のタイムスタンプ値は遠い未来を指す最大値にセットさ
れている。
【0048】ポストすべき各受信要求に対応するRCW
もしくはPCWは、当該受信要求の受信指定を含むHT
Eから連鎖を行ない、必要に応じて新たなHTEを形成
しなければならない。特定の受信指定に対しては、有効
なHTEが1個のみハッシュテーブル内に存在するが、
同一の受信指定を有する要求が複数存在する場合もあ
る。後者の場合、RCWやPCWは、相互に連鎖を行な
って、ポストRCWを生成時刻順に繋げた単一の連鎖を
形成する。生成時刻のもっとも古いRCWが、連鎖の最
後尾でHTE(もしあればPCW)に直接付加される。
ただし、同一の受信指定を有するPCWを1個以上ポス
トすることは不可能であり、無意味である。またPCW
の後にRCWを連鎖することもできない。受信要求は、
RCWとPCWが連鎖された順序で処理され、もっとも
古い要求が最初に処理される。
【0049】到着するメッセージに一致する受信指定
は、最大4種類存在する。第1の種類は、SNNフィー
ルド、タグフィールド、コミュニケータフィールドのい
ずれも一致の場合からなり、第2の種類は、SNNフィ
ールドは無指定、タグフィールドが一致、コミュニケー
タフィールドが一致の場合からなり、第3の種類は、S
NNフィールドが一致、タグフィールドは無指定、コミ
ュニケータフィールドが一致の場合からなり、第4の種
類は、SNNフィールドは無指定、タグフィールドも無
指定、コミュニケータフィールドが一致の場合からな
る。メッセージが到着すると、受信回路は、一致する受
信指定を有する4個のHTEをすべて確定しようと試み
る。これらのHTEのうち任意の個数が検出されるが、
検出された複数のHTEに有効なポインタフィールドを
示すCビットがセットされている場合には、受信回路
は、時間フィールドを利用して、もっとも古い保留ポス
ト受信要求のHTEを、該当するHTEの中から選択す
る。4個のHTEがいずれも検出されないか、もしくは
各HTEのCビットがすべてクリアされている場合、一
致する受信要求は存在せず、受信回路はエラーを発生さ
せてメッセージを廃棄する。
【0050】次に、受信回路は選択されたHTEのPビ
ットを検査する。Pビットがセットされていれば、ポイ
ンタフィールドは、持続性受信要求に対応するポストP
CWを指している。Pビットがクリアされていれば、ポ
インタフィールドは非持続性受信要求に対応するポスト
RCWを指している。
【0051】PCWは、ローカルメモリ内のデータ構造
であって、2種類の受信プールを管理するために使用さ
れる。一方の受信プールは、連鎖された一連のプールR
CWである。これらのプールRCWは、PCWが受信回
路によってポストPCWとしてアクセスされる場合に、
受信されるメッセージに関する情報を記録するために使
用される。他方の受信プールは、データプールである。
このプールは、ポストRCWに接続された受信バッファ
に受信されないメッセージデータを記録するために使用
される。単一のPCWは、それぞれ異なる受信指定を有
する複数のHTEを使用して複数回ポストしてもよい。
これによって、他のいずれのポスト受信要求にも一致し
ないメッセージを受信するためのデフォルト持続性要求
の機能が実現される。対応するバッファを持たないポス
トRCWをPCWに連係すると、PCWのデータプール
を使用することにより、ポストRCWに一致するメッセ
ージデータを受信することができる。
【0052】図7にPCW(150)の詳細な形式を示
す。PoolRCWPtrフィールド(151)には、
空きプールRCWの一連鎖内における最初のプールRC
Wを指すアドレスポインタが格納される。NCビット
(152)がセットされると、PoolRCWPtrフ
ィールド(151)が有効であることを示す。NCビッ
ト(152)がクリアされると、PoolRCWPtr
フィールド(151)が無効であって、空きプールRC
Wが残っていないことを示す。Nビット(153)はR
CWエラー状態ビットであって、Nビットがセットされ
ると、プールRCWが残っていないためエラーが発生し
たことを示す。Wビット(154)はRCW警告状態ビ
ットである。Wビットがセットされると、プールRCW
の連鎖が短くなりつつあるため、できるだけ早く該連鎖
を延長する必要があることを示す。Oビット(155)
はプールエラー状態ビットであって、メッセージデータ
を記録するデータプール空間が残り少ないためにエラー
が発生したことを示す。Lビット(156)はプール警
告状態ビットであって、データプールが残り少ないた
め、これをできるだけ早く増加させる必要があることを
示す。Seqフィールド(157)は、当該PCWを使
用してこれまでに受信したメッセージの個数を示す。先
頭ポインタ(HeadPtr)フィールド(158)、
末尾ポインタ(TailPtr)フィールド(159)
ならびにLWMPtrフィールド(160)は、先頭ポ
インタ、末尾ポインタ、ウォータマークアドレスポイン
タをそれぞれ有するフィールドである。これらのフィー
ルドは、データプールの管理に使用される。
【0053】図10に空きプールRCW(220)の詳
細な形式を示す。NCビット(222)がセットされて
いる場合、NPoolRCWPtrフィールド(22
1)には、プールRCWの連鎖における次のプールRC
Wを指すアドレスポインタが格納されている。NCビッ
ト(222)がクリアされていれば、このプールRCW
は連鎖内の最後のプールRCWである。メッセージを受
信するためにいずれかのプールRCWを使用すると、N
PoolRCWPtrフィールド(221)とNCビッ
ト(222)は、PCWのPoolRCWPtrフィー
ルド(151)とNCビットフィールド(152)とに
それぞれ複写される。SWビット(223)がソフトウ
ェアによってセットされると、このプールRCWが連鎖
の終端の近くにあり、このプールRCWが使用されると
警告が出されることを示す。またSWビット(223)
がセットされると、受信の完了時に、受信回路は割り込
み要求を発行する。IMビット(224)は、割り込み
要求機能の動作を制御する。IMビット(224)がク
リアされると、IRビット(225)は、受信の完了時
に受信回路によって再度読まれる。IMビット(22
4)がセットされると、IRビット(225)は再度読
まれることはない。この場合、受信回路によるプールR
CWの最初の読み出し時のIRビットの値が記憶され
て、この値が割り込み要求を発生させるか否かの決定に
使用される。受信状態を書き込む格納場所(226)
は、ゼロに初期化される。
【0054】受信回路がプールRCWを取り出すと、こ
のプールRCWは受信メッセージに関する情報によって
直ちに更新される。更新されたプールRCW(230)
の形式を図11に示す。NPoolPtrフィールド
(231)、NCフィールド(232)、SWフィール
ド(233)、IMフィールド(234)、IRフィー
ルド(235)は受信回路によって書き込まれることは
ない。Seqフィールド(236)には、PCWが取り
出された時点のPCWSeqフィールド(157)の値
が格納される。DataPtrフィールド(237)に
は、メッセージデータを受信するために使用されるデー
タプールから割り当てられたデータバッファを指すポイ
ンタが格納される。SNNフィールド(238)、コミ
ュニケータ(Comm)フィールド(239)、タグ
(Tag)フィールド(240)、SWHフィールド
(241)、Rフィールド(242)、データ長さ(D
ataLen)フィールド(243)にはそれぞれ、メ
ッセージヘッダからの対応する値が格納される。プール
RCWの状態は、残りのSフィールド(244)、Bフ
ィールド(249)、Fフィールド(245)、Iフィ
ールド(246)、Eフィールド(247)ならびにE
Cフィールド(248)から構成される。これらのフィ
ールドは、受信回路によって2回書き込まれる。すなわ
ち、受信回路が他のフィールドを書き込む時点でプール
RCWを取り出した直後に1回、メッセージの受信の完
了時に1回書き込まれる。Sビット(244)がセット
されると、このプールRCWを使用したメッセージの受
信が開始されたことを示す。Bフィールド(249)は
使用されず、その値は不定である。Fビット(245)
は、このプールRCWを使用したメッセージの受信が終
了した時点でセットされる。Iビット(246)は、I
Rビット(225)がすでにセットされていて、割り込
み要求が発行されたことを示す。Eビット(247)
は、エラーが発生した場合にセットされる。この場合、
ECフィールド(248)には、発生したエラーの種類
を示すエラーコードが格納される。
【0055】図12にデータプール(250)の構成を
示す。データプールは、ローカルメモリ内の空き空間か
らなる連続ブロックであって、メッセージデータの受信
に使用される。HeadPtr(253)と示されたポ
インタは、当該PCWのHeadPtrフィールド(1
58)にあるデータプールのヘッドポインタに対応して
いる。このポインタは、空き空間ブロックの基底アドレ
スを指す。このアドレスポインタより低い格納場所に
は、データプール内にすでに受信されたメッセージデー
タ(252)が格納されている。データプール(25
0)から受信バッファ(251)が割り当てられる場
合、この受信バッファは、HeadPtr(253)の
指す基底アドレスに基づいて割り当てられる。ヘッドポ
インタは、新たなヘッドポインタNheadPtr(2
54)を生成するために割り当てられたブロックのサイ
ズ分だけ増分される。TailPtr(256)と示さ
れたポインタは、PCWのTailPtrフィールド
(159)にあるデータプールのポインタに対応してい
る。このポインタは、空き空間ブロックの限界を示す。
データプールのサイズを越えるブロックを割り当てよう
とする試みは、TailPtr(256)の示すデータ
プールの限界を越えてNHeadPtr(254)を増
分しようとすることに相当し、この場合エラーが発生す
る。LWMPtr(255)と示されたポインタは、P
CWのLWMPtrフィールド(160)にあるデータ
プールのウォータマークポインタに対応している。この
ポインタは、空き空間ブロックのウォータマークを指
す。NHeadPtr(254)が、PCWのLWMP
trフィールド(160)にあるウォータマークポイン
タを越える場合、データプールの空き空間が残り少ない
ことを示す警告が出される。PCWのLWMPtrフィ
ールド(160)は、たとえばPCWのTailPtr
フィールド(159)より十分に低く設定される。これ
によって、警告が出された場合、データプールの空き空
間がなくなる前にデータプールを拡張することができ
る。データプールの空き空間の割り当てに成功した場
合、PCWのHeadPtrフィールド(158)は、
NHeadPtr(254)の値によって更新される。
空き空間の割り当てに失敗した場合、PCWのOビット
(155)がセットされる。ウォータマークを越えた場
合はLビット(156)がセットされる。
【0056】図8に保留状態のポストRCW(170)
を示す。NPtrフィールド(171)、NPフィール
ド(173)、NTimeフィールド(176)は、同
一の受信指定を有する次に古いポストRCWもしくはP
CWに繋がる連鎖のリンクを形成している。これらのフ
ィールドは、NCビット(172)がセットされている
場合にのみ有効である。NPtrフィールド(171)
には、HTEに連鎖される次に古いポストRCWまたは
PCWを指すアドレスポインタが格納される。NPビッ
ト(173)がセットされると、次にポストPCWが連
鎖されていることを示す。NPビット(173)がクリ
アされている場合、次にポストRCWが連鎖されている
ことを示す。BEビット(174)はバッファイネーブ
ルビットである。BEビット(174)がセットされる
と、BuffPtrフィールド(180)とBuffS
izeフィールド(181)とが有効であって、対応す
るデータバッファのアドレスポインタとサイズとをそれ
ぞれ有することを示す。この対応するデータバッファ
は、要求されたメッセージのメッセージデータが受信さ
れるバッファである。BEビット(175)がクリアさ
れている場合、PCWPtrフィールド(179)が有
効であって、PCWのうち、そのデータプールがメッセ
ージの受信に使用されるPCWのアドレスポインタが該
フィールドに格納される。
【0057】受信回路は、ポストRCWを検出すると、
NPtrフィールド(171)、NCフィールド(17
2)、NPフィールド(173)、NTimeフィール
ド(176)を、HTEのPtrフィールド(14
4)、Cフィールド(145)、Pフィールド(14
4)、Timeフィールド(148)へとそれぞれ複写
し、HVフィールド(147)をセットする。これによ
って、ハッシュテーブルにポストされていた当該RCW
のポストが解除される。これに続くポストRCWもしく
はポストPCWがある場合、HTEは次にこれを指し示
す。ポストRCWもしくはポストPCWが存在しない場
合、HTEは有効であるが、示す対象を持たない。注目
すべき点は、無効なHTEを検出するとハッシュテーブ
ル検索アルゴリズムが停止するため、HTEを無効とし
ないことが重要であるとういう点である。これによっ
て、別なHTEの検索中に、他のHTEが検出されると
いう不具合を防ぐことができる。IRビット(178)
は割り込み要求ビットである。このビットがセットされ
ると、受信回路は、受信の完了時に割り込み要求を発行
する。IMビット(177)は、割り込み要求機能の動
作を制御する。IMビット(177)がクリアされてい
ると、IRビット(178)は受信の完了時に受信回路
によって再度読まれる。IMビット(177)がセット
されていると、IRビット(178)は再度読まれるこ
とがなく、受信回路がRCWを最初に読んだ時点でのI
Rビットの値が記憶され、この値を使用して、割り込み
要求を発行するか否かが決定される。受信状態の格納場
所(182)は、ゼロに初期化される。
【0058】受信回路がポストRCWを取り出すと、こ
のポストRCWは受信メッセージに関する情報によって
直ちに更新される。更新されたポストRCW(190)
の形式を図9に示す。NPtrフィールド(191)、
NCフィールド(192)、NPフィールド(19
3)、BEフィールド(194)、Ntimeフィール
ド(195)、IMフィールド(197)、IRフィー
ルド(198)は、受信回路によって書き込まれること
はない。BEビット(174)がセットされていれば、
Seqフィールド(199)とDataPtrフィール
ド(200)はいずれも書き込まれず、PCWPtrフ
ィールド(179)とBuffPtrフィールド(18
0)は、ソフトウェアによってセットされたままの状態
となる。BEビット(174)がクリアされていれば、
Seqフィールド(199)が書き込まれ、PCWが受
信回路によって取り出された時点でのPCWのSeqフ
ィールド(157)の値がこのフィールド(199)に
格納される。またDataPtrフィールド(200)
には、メッセージデータの受信に使用されるデータプー
ルから割り当てられたデータバッファの基底アドレスが
書き込まれる。SNNフィールド(201)、Comm
フィールド(202)、Tagフィールド(203)、
SWHフィールド(204)、Rフィールド(20
5)、DataLenフィールド(206)には、メッ
セージヘッダからの対応する値がそれぞれ格納される。
残りのSフィールド(207)、Bフィールド(20
8)、Fフィールド(209)、Iフィールド(21
0)、Eフィールド(211)、ECフィールド(21
2)は、受信回路によって2回書き込まれる。すなわ
ち、受信回路が他のフィールドを書き込む時点でポスト
RCWを取り出した直後に1回、メッセージの受信の完
了時に1回書き込まれる。Sビット(207)がセット
されると、このポストRCWを使用したメッセージの受
信が開始されたことを示す。Bビット(208)がセッ
トされるのは、受信回路がポストRCWを取り出した時
点で、バッファがBEビット(194)を介してイネー
ブルされた場合である。このポストRCWを使用したメ
ッセージの受信が終了すると、Fビット(209)がセ
ットされる。Iビット(210)は、IRビット(17
8)がセットされ、割り込み要求が発行されたことを示
す。Eビット(211)は、エラーが発生するとセット
される。この場合、ECフィールド(212)には、発
生したエラーの種類を示すエラーコードが格納される。
【0059】本実施例に関して、NIA(ネットワーク
インタフェースアダプタ)に含まれる回路を以下で説明
する。図13にNIA(5)の詳細な回路図を示す。N
IA(5)には、送信回路(300)と、受信回路(3
01)と、両回路が共有する他の回路とが含まれる。さ
らに、割り込み要求状態レジスタ(265)と、割り込
み要求マスクレジスタ(277)と、割り込み要求回路
(304、305)と、動作状態レジスタ(260)
と、保留制御レジスタ(257)と、ノード番号レジス
タ(250)とがNIA(5)に含まれる。
【0060】送信回路(300)から出力される割り込
み要求信号IRQs(302)と、受信回路(301)
から出力される割り込み要求信号IRQs(303)と
によって、割り込み要求状態レジスタ(265)の割り
込み要求ビットがセットされる。ANDゲート(30
4)によって、各割り込み要求ビットと、割り込み要求
マスクレジスタ(277)内の対応する割り込みマスク
ビットとの間で論理積演算が行なわれる。これらAND
ゲート(304)のすべての出力は、ORゲート(30
5)によって論理和がとられ、その結果IP割り込み要
求信号(7)が生成されてIP(命令処理装置)(3)
へと送られる。IP(3)は、バス(6)を介して割り
込み要求ビットのいずれもチェックもしくはクリアする
ことができるとともに、バス(6)を介して割り込みマ
スクビットをプログラムすることができる。割り込み要
求状態レジスタ(265)の形式を図16に示す。割り
込みマスクレジスタ(277)の形式は、割り込み要求
状態レジ 送信回路(300)から出力される割り込み要求信号I
RQs(302)と、受信回路(301)から出力され
る割り込み要求信号IRQs(303)とによって、割
り込み要求状態レジスタ(265)の割り込み要求ビッ
トがセットされる。ANDゲート(304)によって、
各割り込み要求ビットと、割り込み要求マスクレジスタ
(277)内の対応する割り込みマスクビットとの間で
論理積演算が行なわれる。これらANDゲート(30
4)のすべての出力は、ORゲート(305)によって
論理和がとられ、その結果IP割り込み要求信号(7)
が生成されてIP(命令処理装置)(3)へと送られ
る。IP(3)は、バス(6)を介して割り込み要求ビ
ットのいずれもチェックもしくはクリアするこスクビッ
トである。この割り込み回路を使用することにより、送
信回路(300)や受信回路(301)は、割り込み要
求をIPへと発行することができる。
【0061】割り込み要求状態レジスタ(265)の詳
細な形式を図16に示す。各割り込み要求ビットの意味
を以下で説明する。TIビット(266)は、送信割り
込み要求ビットである。IRビット(124)をセット
したTCWの処理を送信回路が完了すると、TIビット
(266)がセットされる。TEビット(267)は、
送信エラー割り込み要求ビットである。エラーの発生を
示すTCWのEビット(135)を送信回路がセットす
ると、TEビット(267)がセットされる。RIビッ
ト(268)は、受信割り込み要求ビットである。IR
ビット(178)をセットしたポストRCW、もしくは
IRビット(225)をセットしたプールRCWのいず
れかの処理を受信回路が完了した時点で、RIビット
(268)がセットされる。REビット(269)は、
受信エラー割り込み要求ビットである。エラーの発生を
示すポストRCWのEビット(211)、もしくはプー
ルRCWのEビット(247)を受信回路がセットする
と、REビット(269)がセットされる。RRビット
(270)は、受信回路によってセットされる遠隔割り
込み要求ビットである。受信回路がポストRCWのFビ
ット(209)もしくはプールRCWのFビット(24
5)をセットした場合であって、受信されたメッセージ
にRビット(106)がセットされている場合にのみ、
RRビット(270)はセットされる。PN(27
1)、PW(272)、PO(273)、PL(27
4)の各ビットは、それぞれPCWの割り込み要求ビッ
トである。受信回路がPCWのNビット(153)、W
ビット(154)、Oビット(155)もしくはLビッ
ト(156)をそれぞれセットすると、対応するPNビ
ット(271)、PWビット(272)、POビット
(273)、PLビット(274)が受信回路によって
セットされる。NMビット(275)は、不一致検出エ
ラー割り込み要求ビットである。受信回路がポストRC
W、プールRCWのいずれも確定できなかった場合、N
Mビット(274)が受信回路によってセットされる。
CE割り込み要求ビット(276)は、ヘッダCRCエ
ラービットであって、メッセージヘッダに不正なヘッダ
CRCが含まれていた場合に受信回路によってセットさ
れる。この場合、メッセージは破棄される。
【0062】ノード番号レジスタ(250)は、ノード
に割り当てられた一意なノード番号を保持するために使
用される。このレジスタは、バス(6)を介してIP
(命令処理装置)(3)によってプログラムできる。た
とえばノード番号レジスタ(250)は、システムの初
期化においてIPによってのみ書き込みが可能である。
ノード番号レジスタ(250)の出力(310)は、送
信回路(300)へと送られる。送信回路(300)で
は、この出力(310)を使用して、ノードから送られ
た各メッセージのSNNフィールド(102)を格納す
る。
【0063】保留制御レジスタ(257)は、バス
(6)を介してIP(3)によってプログラムできる。
図14にこのレジスタの形式を示す。保留制御レジスタ
(257)には2個の制御ビットが含まれる。すなわ
ち、送信保留ビットTH(258)と、受信保留ビット
RH(259)とである。動作状態レジスタ(260)
は、バス(6)を介してIP(3)によって読み出すこ
とができる。図15に動作状態レジスタ(260)の形
式を示す。動作状態レジスタ(260)には4個の状態
ビットがある。すなわち、送信動作開始ビットTS(2
61)と、送信動作終了ビットTF(262)と、受信
動作開始ビットRS(263)と、受信動作終了ビット
RF(264)とである。これらのレジスタは、データ
構造にアクセスするためのロック機構を形成しており、
NIAとソフトウェアライブラリとの間でアクセスを共
有している。
【0064】図13において、保留制御レジスタ(25
7)からのTHビットの出力(348)は、送信回路
(300)に接続されている。この出力は、送信回路を
一時的に保留して、次の送信要求の処理を保留とするた
めに使用される。送信回路(300)から出力されるT
S動作信号(349)は、TSビット(261)に接続
され、また送信回路(300)からのTF動作信号(3
50)は、TFビット(262)に接続される。これら
のビットは、送信回路のシーケンサの現在の状態を反映
している。保留制御レジスタ(257)からのRHビッ
トの出力(426)は、受信回路へと接続される。この
出力は、受信回路を一時的に保留することによって、い
ずれのメッセージも失わずに別なメッセージの受信の開
始を保留にするために使用される。受信回路からのRS
動作信号(427)はRSビット(263)に接続さ
れ、また受信回路から出されるRF動作信号(428)
はRFビット(264)に接続される。これらのビット
は、受信回路のシーケンサの現在の状態を反映してい
る。
【0065】図17に送信回路(300)の詳細な回路
図を示す。図18に示す送信回路の動作のフローを参照
しながら、送信回路について以下で説明する。送信シー
ケンサ(320)が送信回路全体を制御する。送信回路
の動作は、THビット(258)からのTH保留信号
(348)を介して保留とすることができる。シーケン
サの状態は、TSビット(261)とTFビット(26
2)とにそれぞれ接続されたTS動作信号(349)と
TF動作信号(350)とを介して、動作状態レジスタ
(260)に反映される。送信シーケンサ(320)
は、送信シーケンサ(320)と直接メモリアクセス制
御装置DMAC(321)との間で転送されるDMA制
御信号(345)を介して、DMAC(321)を制御
する。DMAC(321)は、バス(6)を制御するこ
とによって、送信回路にローカルメモリのTCWの取り
出しと更新を行なわせることができるとともに、ローカ
ルメモリからのメッセージデータの取り出しを制御でき
る。また送信シーケンサは、他の様々な制御信号(34
4)を介してネットワーク出力ポート(322)を制御
する。ネットワーク出力ポート(322)は、送信ヘッ
ダバッファ(335)の出力(354)との接続を有す
るとともに、ノード番号レジスタとの接続(310)を
有し、メッセージヘッダを生成する。またネットワーク
出力ポート(322)は、ローカルメモリから取り出さ
れたメッセージデータを、バス(6)を介して受信し、
これによってメッセージのデータフィールドを形成す
る。さらにネットワーク出力ポート(322)は、各メ
ッセージのヘッダCRCフィールドとデータCRCフィ
ールドを計算して、形成されたメッセージを送信回路の
ネットワーク接続機構(9)を介してネットワークへと
送出する。TCW連鎖バッファ(331)には、NTC
WPtrレジスタ(332)とNCビットレジスタ(3
33)とが含まれている。TCW連鎖バッファ(33
1)は、次に処理すべきTCWに関する連鎖情報を保持
するために使用される。また、NTCWPtrレジスタ
(332)は、バス(6)を介してIP(命令処理装
置)によってアクセスできる。送信シーケンサ(32
0)が次のTCWの処理を開始すると、送信シーケンサ
は、その他の制御信号(344)のうちのいずれか1個
をアサートして、NTCWPtrレジスタ(332)の
内容のコピーをTCWPtrレジスタ(334)へとラ
ッチする。TCWPtrレジスタ(334)は、現在処
理中のTCWを指すアドレスポインタを含む。TCWP
trレジスタ(334)の出力(351)は、現在のT
CWを判定する場合に、DMAC(321)によってT
CWのアドレスポインタとして使用される。TCWは、
ローカルメモリ(4)からバス(6)を介して取り出さ
れ、その内容は送信回路内のレジスタに格納される。T
CWのNTCWPtrフィールド(121)とNCビッ
ト(122)は、NTCWPtrレジスタ(332)と
NCビットレジスタ(333)とにそれぞれ格納され
る。TCWのIMビット(123)とIRビット(12
4)は、IMビットレジスタ(323)とIRビットレ
ジスタ(324)とにそれぞれ格納される。これらのビ
ットの出力と、NCビットレジスタ(333)の出力と
で状態入力信号(343)が構成され、これらの信号
(343)は送信シーケンサ(320)へと送られる。
DataPtrレジスタ(342)は、TCWからのD
ataPtrフィールド(125)を保持するために使
用される。送信ヘッダバッファ(335)は、DNNレ
ジスタ(336)と、Commレジスタ(337)と、
Tagレジスタ(338)と、SWHレジスタ(33
9)と、Rビットレジスタ(340)と、DataLe
nレジスタ(341)とで構成される。これらのレジス
タは、TCWのDNNフィールド(126)、Comm
フィールド(127)、Tagフィールド(128)、
SWHフィールド(129)、Rフィールド(13
0)、DataLenフィールド(131)をそれぞれ
保持するために使用される。またDataPtrレジス
タ(342)とDataLenレジスタ(341)は、
DMAC(321)への出力接続(353)、(35
2)をそれぞれ有しており、これらの接続は、DMAC
が送信シーケンサによってメッセージデータの取り出し
を要求された場合に使用される。TCWの取り出しの直
後と、TCWの処理の完了時とに、送信回路はTCWの
状態フィールドを更新する。送信回路はTCW状態バッ
ファ(325)を有しており、送信シーケンサ(32
0)からの状態出力(346)は、TCW状態フィール
ドに書き戻される前にこのバッファ(325)に入れら
れる。TCW状態バッファの内容がTCWに書き込まれ
るとき、TCW状態バッファのSレジスタ(326)、
Fレジスタ(327)、Iレジスタ(328)、Eレジ
スタ(329)、ECレジスタ(330)は、TCWの
Sフィールド(132)、Fフィールド(133)、I
フィールド(134)、Eフィールド(135)、EC
フィールド(136)へとそれぞれ書き込まれる。
【0066】送信回路の動作フローを図18に示す。電
源を投入すると、NIA内のすべてのレジスタと状態と
がクリアされ、送信シーケンサは開始ステップ(50
0)から動作を開始する。ステップ(501)におい
て、送信シーケンサは、THビット(258)がクリア
されて、NCビット(333)がセットされるのを待
つ。クリアされたTHビット(258)は、ソフトウェ
アライブラリが送信回路によるTCWの処理を妨げない
ことを示しており、セットされたNCビット(333)
は、次に処理すべきTCWのアドレスがNTCWPtr
レジスタ(332)に格納されていることを示す。ステ
ップ(502)において、TSビット(261)がセッ
トされて、送信回路がTCWの処理を開始したことを示
す。ステップ(503)において、TCWPtrレジス
タ(334)にNTCWPtrレジスタ(332)から
のTCWのアドレスが格納されるとともに、Fレジスタ
(327)と、Iレジスタ(328)と、Eレジスタ
(329)と、ECレジスタ(330)とが初期状態へ
とクリアされて、エラーが発生していないことを示す。
ステップ(504)において、送信シーケンサ(32
0)は、TCWPtrレジスタ(334)内のTCWア
ドレスポインタを使用して、送信回路のDMAC(32
1)に対してメモリからのTCWの取り出しを要求す
る。TCWの内容は、ローカルメモリから取り出される
と、送信回路の各レジスタに次のように格納される。す
なわち、NTCWPtrフィールド(121)とNCビ
ット(122)は、NTCWPtrレジスタ(332)
とNCビットレジスタ(333)とにそれぞれ格納さ
れ、IMビット(123)とIRビット(124)は、
IMビットレジスタ(323)とIRビットレジスタ
(324)とにそれぞれ格納され、DataPtrフィ
ールド(125)はDataPtrレジスタ(324)
に格納され、DNNフィールド(126)、Comフィ
ールド(127)、Tagフィールド(128)、SW
Hフィールド(129)、Rフィールド(130)、D
ataLenフィールド(131)は、送信ヘッダバッ
ファ(335)のDNNレジスタ(336)と、Com
レジスタ(337)と、Tagレジスタ(338)と、
SWHレジスタ(339)と、Rレジスタ(340)
と、DataLenレジスタ(341)とにそれぞれ格
納される。ステップ(505)において、送信シーケン
サ(320)は、ネットワーク出力ポート(322)に
対してメッセージの送信開始を命令する。この時点で、
ネットワーク出力ポート(322)は、DNNレジスタ
(336)、ノード番号レジスタ(250)、Comレ
ジスタ(337)、Tagレジスタ(338)、SWH
レジスタ(339)、Rレジスタ(340)およびDa
taLenレジスタ(341)の内容を、この順序で取
り出して送信することによって、メッセージヘッダのD
NNフィールド(101)、SNNフィールド(10
2)、Comフィールド(103)、Tagフィールド
(104)、SWHフィールド(105)、Rフィール
ド(106)およびDataLenフィールド(10
7)をそれぞれ形成する。ステップ(506)におい
て、ネットワーク出力ポート(322)は、先行するヘ
ッダフィールドから計算されたヘッダCRCフィールド
(108)を送信する。ステップ(507)において、
送信シーケンサ(320)は、DMAC(321)に対
して、TCW状態バッファ(325)のSレジスタ(3
26)と、Fレジスタ(327)と、Iレジスタ(32
8)と、Eレジスタ(329)と、ECレジスタ(33
0)とを、TCW内のSフィールドと、Fフィールド
と、Iフィールドと、Eフィールドと、ECフィールド
とに書き込むことを要求する。書き込みがステップ(5
08)において完了すると、TSビットがクリアされ
る。ステップ(509)において、送信シーケンサ(3
20)は、DMAC(321)に対して、ローカルメモ
リからメッセージデータを取り出すことを要求する。メ
ッセージデータのアドレスと長さは、DataPtrレ
ジスタ(342)とDataLenレジスタ(341)
にそれぞれ格納されている。データがバス(6)を介し
てローカルメモリから取り出されると、ネットワーク出
力ポート(322)は、該データをネットワークへと送
信して、メッセージのデータフィールド(109)を形
成する。すべてのデータの送信が完了すると、ステップ
(510)において、送信シーケンサはデータCRCフ
ィールド(110)をメッセージの終端に付加する。ス
テップ(511)において、送信シーケンサ(320)
はIMビットレジスタ(323)の値を検査する。この
ビットがクリアされていれば、送信シーケンサ(32
0)は、ステップ(512)においてTFビット(26
2)をセットする。ステップ(513)において、送信
シーケンサはDMAC(321)に対して、TCWから
IRビット(124)をIRビットレジスタ(324)
へと再度取り出すことを要求する。IRビットが再度取
り出されるか、もしくはこの取り出しが不用である場
合、送信シーケンサはステップ(514)へと進み、F
レジスタ(327)をセットし、Iレジスタ(328)
をIRビットレジスタ(324)の値へとセットする。
TCWの処理中にエラーが発生した場合、ECレジスタ
(330)にエラーコードを表わす値がセットされると
ともに、Eレジスタ(329)がセットされる。ステッ
プ(515)において、送信シーケンサ(320)はD
MAC(321)に対して、TCW状態バッファ(32
5)のSレジスタ、Fレジスタ、Iレジスタ、Eレジス
タ、ECレジスタを、それぞれTCWのSフィールド
と、Fフィールドと、Iフィールドと、Eフィールド
と、ECフィールドとに再度書き込むことを要求する。
ステップ(516)において書き込み要求が完了する
と、送信シーケンサ(320)はTCWIRQ信号(3
47)をアサートする。TCWIRQ信号(347)
は、2個のANDゲート(355)、(356)によっ
てTCW状態バッファ(325)のIビット(328)
とEビット(329)との間で論理積がとられる。これ
らのANDゲート(355)、(356)の出力(35
7)、(358)は、TI割り込み要求ビット(26
6)とTE割り込み要求ビット(267)とに接続され
る。TCW内のIRビット(124)がセットされて割
り込みが要求されると、TI割り込み要求ビット(26
6)がセットされる。この割り込みが、割り込み要求マ
スクレジスタ(277)によってマスクされていなけれ
ば、処理装置に接続されている割り込み要求線(7)も
アサートされる。同様にして、エラーが発生すると、T
CW状態バッファ(325)のEレジスタがセットさ
れ、当該割り込みが割り込み要求マスクレジスタ(27
7)によってマスクされていなければ、処理装置へと至
る割り込み要求線(7)もアサートされる。ステップ
(517)において、送信シーケンサはTFビット(2
62)をクリアしたのちステップ(501)へと戻り、
次のTCWの処理に備える。
【0067】アプリケーションソフトウェアは、送信ラ
イブラリソフトウェアサブルーチンを呼び出すことによ
って、単一または複数のメッセージを送信するための要
求を発行する。ライブラリソフトウェアは、送信すべき
各メッセージに対してTCWを生成し、これらのTCW
を繋げてサブ連鎖を形成する。送信回路がすでにTCW
の一連鎖を処理している場合、新しいTCWのサブ連鎖
は現行の連鎖の末尾に付加される。送信回路が、連鎖の
最後のTCWを処理しているか、もしくはアイドル状態
にある場合、ライブラリソフトウェアは、新たなTCW
の連鎖の処理を開始するように送信回路をプログラムす
る。送信回路はTCWの処理とメッセージの送信とを、
常にTCW連鎖中の順序に基づいて行なうため、上記の
送信命令の待ち行列法を使用すれば、メッセージが送信
要求の発行順に送信されることが保証される。ネットワ
ーク上ではメッセージが互いを追い越すことなく転送さ
れるため、送信回路から受信回路へと送られるメッセー
ジは、送信要求の発行順に到着する。
【0068】図19に受信回路(301)の詳細な回路
図を示す。以下での受信回路の説明は、受信回路の動作
フローを表わす図20、23、24、25、26と、受
信回路内にあるハッシュテーブル検索制御回路とを参照
しながら行なう。図21にハッシュテーブル検索制御回
路(363)の詳細な回路図を示す。この回路は、図2
2に示す該回路の動作フローを参照して説明する。
【0069】最初に図19を参照して受信回路を説明す
る。受信シーケンサ(360)が受信回路全体を制御す
る。受信DMAC(361)は、バス(6)の動作を制
御することによって、ローカルメモリ内のHTE、ポス
トRCW、PCWならびにプールRCWの取り出しと更
新とを受信回路に実行させることができるとともに、メ
ッセージデータのローカルバッファへの書き込みを制御
することができる。受信シーケンサ(360)は、ネッ
トワーク接続機構(11)を有するネットワーク入力ポ
ート(362)を制御して、この機構(11)を介して
メッセージを受信する。ハッシュテーブル検索制御装置
(363)は、ハッシュテーブル内で、もっとも古いポ
ストRCWまたはPCWであって、一致する受信指定を
有するポストRCWまたはPCWを指すHTEを確定す
る。また受信回路には、多数の他のレジスタ、演算装
置、ゲート等が含まれる。これらの構成部品については
後で説明する。
【0070】受信回路の主要動作フローを図20に示
す。電源が投入されると、NIA内のすべてのレジスタ
の状態は初期化され、ステップ(520)から動作が開
始される。ステップ(521)において、ネットワーク
入力ポート(362)は、受信ネットワーク接続機構
(11)を介してメッセージヘッダの受信が開始される
のを待つ。ネットワーク入力ポート(362)は、メッ
セージ同期ビット(112)によってメッセージヘッダ
の開始を確認する。ステップ(522)において、ネッ
トワーク入力ポート(362)は、メッセージヘッダの
SNNフィールド(102)、Commフィールド(1
03)、Tagフィールド(104)、SWHフィール
ド(105)、Rフィールド(106)、DataLe
nフィールド(107)を、SNNレジスタ(36
5)、Commレジスタ(366)、Tagレジスタ
(367)、SWHレジスタ(402)、Rレジスタ
(403)、DataLenレジスタ(404)へとそ
れぞれ転送する。この転送は、これらのレジスタに接続
されたメッセージヘッダデータバス(435)を使用し
て行なわれる。ステップ(523)において、ネットワ
ーク入力ポート(362)はメッセージヘッダのヘッダ
CRCフィールド(108)を検査する。ここでエラー
が検出されると、ステップ(524)においてヘッダC
RCエラー信号(429)を介してCE割り込み要求ビ
ット(276)がセットされて、メッセージヘッダCR
Cエラーがソフトウェアに通知される。エラーの通知
後、処理はステップ(521)へと戻り、ネットワーク
入力ポート(362)は次のメッセージヘッダの受信開
始を待つ。ステップ(523)においてエラーが検出さ
れなければ、ネットワーク入力ポート(362)は、受
信シーケンサ(360)に対して、有効なメッセージヘ
ッダの到着を入力ポート制御信号(144)を使用して
通知する。
【0071】受信保留ビットRH(259)の状態は、
RH保留信号(426)を介して受信シーケンサへと転
送される。ステップ(525)において、受信シーケン
サ(360)はRH(259)がクリアされるのを待
つ。このビットがすでにクリアされている場合か、もし
くは該ビットがその後クリアされた場合に、受信シーケ
ンサ(360)は、ステップ(526)において、RS
動作信号(427)をアサートすることによって受信動
作開始ビットRS(263)をセットする。
【0072】ポスト受信要求を保持するために使用され
る制御構造を、ソフトウェアと受信回路とが同時にアク
セスや変更をしないことが重要である。これが仮に行な
われると、動作の整合性が失われることになる。この問
題は、RSビット(263)とRHビット(259)を
使用することによって避けられる。これらのビットは、
ソフトウェアによってバス(6)を介してアクセスでき
る。RSビット(263)は、受信要求をポストするた
めに使用される制御構造のアクセスを受信回路が開始す
る直前に、受信シーケンサによってセットされる。RS
ビット(263)は受信回路によってクリアされるが、
このクリア動作は、メッセージ受信時の必要に応じて、
ポストRCWのポストを解除するか、プールRCWを割
り当てるか、データプール空間を割り当てるかのいずれ
かの動作を行なうための制御構造の変更が完了したのち
に行なわれる。RHビット(259)によって、ソフト
ウェアは受信回路の動作を一時的に保留することができ
るため、受信回路によるメッセージの処理は開始されな
い。これによって受信回路による制御構造へのアクセス
を抑制することができる。RHビット(259)がセッ
トされていれば、受信回路がRSビット(263)をセ
ットすることは決してない。RSビットは、セットされ
たのちできるだけ早い時期に受信回路によってクリアさ
れるが、このクリア動作は、制御構造に対する所要のア
クセスが完了してから行なわれる。このように、RHビ
ット(259)がセットされたのち、RSビット(26
3)がクリアされるのをソフトウェアが待つとすれば、
RHビット(259)がクリアされるまで受信回路によ
って制御構造がアクセスされることはないことがソフト
ウェア側に対して保証される。RHビット(259)と
RSビット(263)をこのように使用することによっ
て、ソフトウェアは、受信回路の動作の整合性を乱すこ
となく、これらの制御構造を独占的にアクセスし、変更
することができる。
【0073】ステップ(526)において、RSビット
(263)がセットされると、受信シーケンサ(36
0)はステップ(527)へと移行する。ステップ(5
27)において、受信シーケンサ(360)は検索要求
信号(415)をアサートし、この信号はハッシュテー
ブル検索制御装置(363)へと送られる。ハッシュテ
ーブル検索制御装置(363)は、メッセージヘッダバ
ッファ(364)のSNNレジスタ(365)、Com
mレジスタ(366)、Tagレジスタ(367)の中
の値を、検索用の入力パラメータとして使用する。受信
回路の他の構成部品の説明を再開する前に、ハッシュテ
ーブル検索制御装置(363)とその動作とについて説
明する。
【0074】図21にハッシュテーブル検索制御装置
(363)の詳細な回路図を示す。この回路は、もっと
も古いポストRCWまたはPCWであって、一致する受
信指定を有するポストRCWまたはPCWを指すHTE
を確定する。このハッシュテーブル検索制御装置の回路
図を、該回路の動作フローを示す図22を参照しながら
説明する。
【0075】ハッシュテーブル検索制御装置(363)
は、その機能の実行にあたって、メッセージヘッダバッ
ファ(364)の内容と一致する可能性のある受信指定
を有する各HTEを検索し、一致したHTEであってそ
の時点までに判明したもっとも古いHTEに関する情報
を保持する。HTEバッファ(457)は、MPtrレ
ジスタ(458)と、MPレジスタ(459)と、MT
imeレジスタ(460)とを有し、最も古い一致した
HTEのPtrフィールド(144)と、Pフィールド
(146)と、Timeフィールド(148)とを含
む。このHTEのインデックスは、MIndexレジス
タ(479)に保持されている。これらのレジスタは、
検出(Found)信号(433)によって有効である
ことが表わされる。
【0076】ハッシュテーブル構成レジスタ(751)
にはHTBPtrレジスタ(752)とサイズSize
レジスタ(753)とが含まれ、命令処理装置IP
(3)で実行されるソフトウェアからバス(6)を介し
てプログラムできる。HTBPtrレジスタ(752)
はハッシュテーブルの基底アドレスを指定し、Size
レジスタ(753)はハッシュテーブル中のHTEの個
数を指定する。本実施例では、説明を簡単にするため
に、ハッシュテーブル内のHTEの個数を2の累乗に限
定している。
【0077】メッセージが到着してメッセージヘッダバ
ッファ(364)へと格納されると、ステップ(54
0)において、検索要求信号(415)によってハッシ
ュテーブル検索シーケンサ(450)が起動される。ハ
ッシュテーブル検索シーケンサ(450)は、制御信号
(497)を介して、ハッシュテーブル検索制御装置内
のセレクタとラッチの動作を制御するとともに、DMA
制御信号(432)を介して、DMAC(361)に対
してHTEの取り出しを請求する。各メッセージに一致
する4種類の受信指定があり、これらの指定は無指定値
を使用する際の4種類の組み合わせに対応する。ハッシ
ュテーブル検索シーケンサ(450)は、これら4種類
の組み合わせに該当する各HTEを検索するが、この検
索のために、検索対象のHTEの受信指定を選択するた
めのループカウンタnを有する。ステップ(541)に
おいて、ハッシュテーブル検索シーケンサ(450)
は、ループカウンタnをゼロに初期化して、検出状態信
号(433)をクリアする。
【0078】ループの第1のステップは、ステップ(5
42)である。ステップ(542)において、HTEの
受信指定のうち無指定の組み合わせが選択される。無指
定選択信号(461,462)は、ハッシュテーブル検
索シーケンサ(450)によって制御され、これらの信
号にはnの値に対応する値が割り当てられる。1または
3に等しいnに対してはSNN無指定選択信号(46
1)がアサートされ、2または3に等しいnに対しては
Tag無指定選択信号(462)がアサートされる。ス
テップ(543)において、検索すべきHTEの最初の
検索インデックスが計算される。受信指定は最大3個の
構成部分、すなわちSNN受信指定、Comm受信指
定、Tag受信指定からなる。SNN受信指定は、SN
Nレジスタ(365)の出力(463)と、SNN無指
定選択信号(461)とを、ORゲート(464)によ
って論理和演算した結果である。Comm受信指定(4
66)は、Commレジスタ(366)の出力そのもの
である。Tag受信指定(470)は、Tagレジスタ
(367)の出力(468)と、Tag無指定選択信号
(462)とを、ORゲート(469)によって論理和
演算した結果である。SNN受信指定(465)とCo
mm受信指定(466)とを合成して、合成SNN/C
omm受信指定(467)を生成すると便利である。最
初の検出インデックスを生成するには、2種類の受信指
定(つまり合成SNN/Comm受信指定(467))
とTag受信指定(470)とを、ハッシュ機能回路
(471)によってハッシングする必要がある。ハッシ
ュ機能回路(471)の出力は、セレクタ(472)に
よって選択され、ANDゲート(474)によってこの
出力値とマスク値との論理積がとられる。マスク値は、
Sizeレジスタ(753)の値に基づいてマスク回路
(473)によって生成され、インデックス値の可能な
範囲を限定するために使用される。これによってハッシ
ュテーブルのサイズが限定される。マスク後の値は、イ
ンデックスレジスタ(475)によってラッチされる。
インデックスレジスタ(475)は、検査すべき最初の
HTEの最初の検索インデックスを保持する。
【0079】ステップ(544)において、HTE検索
アルゴリズムの最も内側のループに入る。インデックス
レジスタ(475)のインデックス値は、セレクタ(4
76)によって選択され、乗算回路(477)によって
HTEのバイトサイズで乗算され、加算器(478)に
よってHTBPtrレジスタ(752)内のハッシュテ
ーブルの基底アドレスへと加算される。こうしてHTE
Ptr信号(431)が生成される。ついでステップ
(545)において、HTEPtr信号(431)は、
受信側のDMAC(361)へと送られる。ハッシュテ
ーブル検索シーケンサ(450)と受信側DMAC(3
61)との間で転送されるDMA制御信号(432)を
使用して、ローカルメモリからのHTEの読み出しが要
求される。バス(6)を介してHTEが到着すると、H
TEのSNNフィールド(141)とCommフィール
ド(142)とからなる最初の語が、等値比較器(48
1)によってSNN/Comm受信指定(467)と比
較される。比較の結果が等値であれば、S0状態レジス
タ(482)がセットされ、等値でなければこのレジス
タ(482)はクリアされる。HTEのTagフィール
ド(143)からなる第2の語は、別な等価比較器(4
83)によってTag受信指定(470)と比較され
る。比較の結果が等値であれば、S1状態レジスタ(4
84)がセットされ、等値でなければこのレジスタ(4
84)はクリアされる。Ptr(144)、C(14
5)、P(146)、HV(147)、Time(14
8)の各フィールドからなるHTEの第3と第4の語
は、HTE読み出しバッファ(451)のPtr(45
2)、HC(453)、P(454)、HV(45
5)、Time(456)の各レジスタにそれぞれラッ
チされる。
【0080】ステップ(546)において、ANDゲー
ト(489)が、HVレジスタ(455)の出力(HT
E有効信号(486)と称する)と、S0状態レジスタ
(482)ならびにS1状態レジスタ(484)との論
理積演算を行なう。ANDゲート(489)の出力は一
致信号(490)を構成する。この一致信号(490)
は、HTEが検出されたこと、該HTEが有効であって
一致する受信指定を有すること、ただし有効なポスト受
信要求が該HTEに連鎖されているか否かは不明である
こと、を示している。ORゲート(493)が、一致信
号(490)と、HTE有効信号(486)の反転信号
との論理和演算を行なう。この結果、検索終了信号(4
94)が生成されて、ハッシュテーブル検索シーケンサ
(450)へとこの信号が転送される。HTEの検索
は、検索対象のHTEが検出された時点か、もしくは無
効なHTEが検出された時点で終了する。このように検
索終了信号(494)は、特定の受信指定を有するHT
Eの検索に関して、これ以上HTEを取り出す必要のな
いことを示す。
【0081】ステップ(547)において、ハッシュテ
ーブル検索シーケンサ(450)は検索終了信号(49
4)を検査する。この信号がアサートされていなけれ
ば、処理はステップ(548)へと進み、次のHTEを
取り出して検査する。ステップ(548)において、検
査すべき次のHTEのインデックスが計算される。ハッ
シュテーブル検索シーケンサ(450)は、増分器(4
80)によって増分されたインデックスレジスタ(47
5)の値を、セレクタ(472)を介して選択する。こ
の値は、ANDゲート(474)によって、マスク回路
(473)からのマスク値でマスクされる。マスクされ
た値は、再びインデックスレジスタ(479)へとラッ
チされる。インデックスレジスタ(479)の値を増分
したのちマスクすることによって、ハッシュテーブル内
の次のHTEのインデックスが与えられる。ハッシュテ
ーブルのサイズの限界が越えられた場合には、テーブル
の先頭へと戻る。処理のフローはステップ(544)へ
と戻り、次のHTEが取り出される。ソフトウェア側で
は、無効なHTEを少なくとも1個ハッシュテーブルに
格納しておく必要がある。これはハッシュテーブル検索
シーケンサが無限ループに入ってしまう可能性を防ぐた
めである。
【0082】ステップ(547)において検索終了信号
(494)がアサートされると、処理のフローはステッ
プ(549)へと至る。別なANDゲート(491)
が、一致信号(490)とHCビット(453)との論
理積演算を行なって、一致ポスト信号(492)を生成
する。比較器(495)によってOlder信号(49
6)が生成される。Timeレジスタ(456)の値が
Mtimeレジスタ(460)の値より低い場合、Ol
der信号(496)がアサートされる。これらの信号
もハッシュテーブル検索シーケンサ(450)へと送ら
れる。ステップ(550)において、有効なポスト受信
要求についてのHTEが検出されたか、またかかるポス
ト受信要求がその時点までに検出された最も古いポスト
受信要求より古いかが、ハッシュテーブル検索シーケン
サ(450)によって検査される。一致ポスト信号(4
92)がアサートされる場合であって、検出状態信号
(433)がアサートされないか、もしくはOlder
信号(496)がアサートされているかのいずれかであ
る場合、有効なポスト受信要求についてのHTEが検出
されて該ポスト受信要求がその時点で最も古いことが示
される。この場合、ステップ(551)において、検出
状態信号(433)がアサートされ、Ptr(45
2)、P(454)、Time(456)、Index
(475)の各レジスタの内容が、MPtr(45
8)、MP(459)、Mtime(460)、MIn
dex(479)の各レジスタへとそれぞれ複写され
る。
【0083】処理のフローはステップ(552)へと至
り、ここでnの値が1だけ増分される。ステップ(55
3)において、nが4未満であって、受信指定が無指定
の順列のすべてが検査されたわけではないことが示され
ると、処理はステップ(542)へと戻って、次の受信
指定を有するHTEの検索が開始される。
【0084】nの値が4に等しければ、検索は完了した
ことになる。ステップ(554)において、ハッシュテ
ーブル検索シーケンサ(450)は、セレクタ(47
6)を使用してMindexレジスタ(479)を選択
したのち、検索完了信号(416)をアサートする。検
出信号(433)がすでにアサートされていれば、有効
なポスト受信要求についてのHTEがすでに検出された
ことを意味しているため、HTEPtr信号(431)
は、最も古くて有効なポスト受信要求についてのHTE
のアドレスポインタに対応する。MPtrレジスタ(4
58)とMPレジスタ(459)から送られたMPtr
信号(437)とMP信号(436)は、HTEのPt
rフィールド(144)とPフィールド(146)とに
それぞれ対応する。ステップ(555)において、ハッ
シュテーブル検出シーケンサ(450)は検出完了信号
(416)をアサートする。この信号は、受信シーケン
サ(360)に対して、ハッシュテーブル検索制御装置
(363)が当該検索要求の処理を完了したことを通知
する。
【0085】ここで受信回路の他の構成部品の説明に戻
る。検索完了信号(416)がアサートされると、受信
回路の処理フローはステップ(528)から再開され
る。ハッシュテーブル検索制御装置(363)から送ら
れた検出(Found)信号(433)が検査される。
この検査を行なう場合、ANDゲート(434)が、検
出完了信号(416)と検出信号(433)の反転信号
との論理積演算を行なって、その結果をNM割り込み要
求ビット(275)へと転送する。検索の結果、一致す
るものが検出できなければ、ステップ(529)におい
てNM割り込み要求ビット(275)がセットされる。
これによって、有効なポスト受信要求について一致した
HTEが検出されなかったことが、ソフトウェア側に通
知される。検出信号(433)は受信シーケンサ(36
0)にも送られる。この場合も検索により一致するもの
が検出できなければ、受信シーケンサ(360)はRS
ビット(263)をステップ(530)においてクリア
する。処理フローは最初のステップ(521)へともど
り、ネットワーク入力ポート(362)は次のメッセー
ジヘッダの受信開始を待つ。
【0086】HTEが検出されると、処理フローはステ
ップ(531)へと進む。ステップ(531)におい
て、実行すべき受信動作の種類により、必要に応じてポ
ストRCWもしくはポストPCWの取り出し、ポストR
CWのポストの解除、プールRCWの割り当て、データ
プール空間の割り当て等が行なわれる。ポストRCWも
しくはプールRCWは更新されて、メッセージの受信が
開始されたことが示される。
【0087】このステップ(531)は実際はさらに複
雑なサブルーチンであって、このサブルーチンの拡大フ
ローを図23、24、25に示す。フローをこれら3図
に分割したのは見やすさを考慮したためであって、参照
記号のA(570)、B(571)、C(575)、D
(577)、E(587)によって各図の間の繋がりを
示す。このサブルーチンの最初のステップはステップ
(560)である。受信回路は、現在のメッセージの受
信に関するさまざまな状態を保持している。これらの状
態は、受信状態バッファ(382)のSレジスタ(38
3)と、Bレジスタ(384)と、Fレジスタ(38
5)と、Iレジスタ(386)と、Eレジスタ(38
7)と、ECレジスタ(388)とに保持されており、
その後受信回路によって、ポストRCWのS(20
7)、B(208)、F(209)、I(210)、E
(211)、EC(212)の各フィールドにそれぞれ
書き込まれる。プールRCWの場合、これらの状態は、
S(244)、B(249)、F(245)、I(24
6)、E(247)、EC(248)の各フィールドに
それぞれ書き込まれる。これによって、メッセージの受
信状態がソフトウェアへと通知される。Sレジスタ(3
83)は、「1」の値でハードワイヤドされている。こ
れは、受信回路が、RCWのSフィールドにセット値以
外の値を書き込む必要がまったくないためである。この
ビットは、受信動作が開始されたことをソフトウェアに
通知する。BEビット(174)のセットされたポスト
RCWによって指定されたバッファが、受信動作で使用
されると、Bレジスタ(384)がセットされる。受信
動作が終了すると、Fレジスタ(385)がセットされ
る。ポストRCWのIRビット(178)もしくはプー
ルRCWのIRビット(225)による指定に準じて割
り込みが要求される場合、Iレジスタ(386)がセッ
トされる。Eレジスタ(387)は、エラー状態が検出
されるとセットされる。この場合、検出されたエラーの
種類を示すエラーコードがECレジスタ(388)にセ
ットされる。ステップ(561)において、B(38
4)、F(385)、I(386)、E(387)、E
C(388)の各レジスタは、すべてセット値以外の状
態にクリアされる。ステップ(562)において、受信
シーケンサ(360)は、ハッシュテーブル検索制御装
置(363)から送られたMPビット信号(436)を
検査して、ポストRCWもしくはポストPCWが検出さ
れたか否かを判定する。ここではまず、MPビット(4
36)がクリアされた場合を説明する。これは、検索に
よって、ポストRCWを指すポインタを含むHTEの一
致が検出された場合である。MPビット(436)がセ
ットされた場合については後述する。ポストRCWを指
すアドレスポインタは、MPtr信号(437)を介し
てハッシュテーブル検索制御装置(363)から出力さ
れる。このアドレスポインタは、ステップ(563)に
おいてRCWPtrレジスタ(369)によってラッチ
される。このレジスタ(369)の出力(439)は、
受信側DMAC(361)へと送られる。次に受信シー
ケンサ(360)は、ステップ(564)において、受
信側DMAC(361)に対して、DMA制御信号(4
19)を使用してローカルメモリ(4)からポストRC
Wを取り出すよう要求する。ポストRCWのデータフィ
ールドは、バス(6)を介して返送される。ポストRC
WもしくはプールRCWから読み出されたリンク情報
は、次リンクバッファ(371)によって一時的に保持
される。ポストRCWの場合には、ステップ(564)
の場合と同様に、次リンクバッファ(371)内のNP
tr(372)、NC(373)、NP(374)、N
Time(376)の各レジスタが、バス(6)を介し
て読み出された当該ポストRCWの対応するフィールド
からそれぞれラッチされる。NHVレジスタ(375)
は、ハードワイヤドされた2進値「1」を有しており、
この値は変更されない。ポストRCWのBE(17
4)、IM(177)、IR(178)、PCWPtr
(179)、BuffPtr(180)の各フィールド
は、BE(378)、IM(380)、IR(38
1)、PCWPtr(368)、BuffPtr(40
7)の各レジスタにそれぞれラッチされる。ポストRC
WのBuffSizeフィールド(181)は、レジス
タに直接ラッチされず、バス(6)上に到着した時点で
比較器(405)によってDataLenレジスタの出
力(440)と比較される。比較の結果は、CBレジス
タ(406)にラッチされる。DataLenレジスタ
にはメッセージデータフィールドの長さの値が格納され
ており、この値がポストRCWのBufSizeフィー
ルド(181)の値より大きい場合、CBレジスタ(4
06)がセットされる。これによって、ポストRCWの
バッファの大きさが不十分であるため、すべてのメッセ
ージデータを格納できないことが示される。
【0088】ステップ(565)において、ポストRC
Wのポストが解除される。これは、受信回路が、次のポ
ストRCWもしくはポストPCWに関する連鎖情報をH
TEに複写することによって行なわれる。連鎖されたポ
ストRCWやポストPCWがなければ、受信回路は、現
在のポストRCWに関するフィールドを無効とすること
によってポストの解除を行なう。この場合、受信シーケ
ンサ(360)は、受信側のDMAC(361)に対し
て、次リンクバッファ(371)の内容を、ハッシュテ
ーブル検索制御装置(363)からのHTEPtr出力
(431)によって示されたHTEへと書き込むことを
要求する。NPtr(372)、NC(373)、NP
(374)、NHV(375)、NTime(376)
の各レジスタの値は、HTEのPtr(144)、C
(145)、P(146)、HV(147)、Time
(148)の各フィールドへとそれぞれ書き込まれる。
HVフィールド(147)に2進値の「1」を書き込む
と、HTEの有効性を保証する効果がある。NCレジス
タ(373)がクリアされている場合のように、連鎖さ
れたポスト項がなくても、ハッシュテーブル内の将来の
検索において異なるHTEの検出を可能とすることを保
証するためには、当該HTEが有効であることが重要で
ある。連鎖されたポストRCWやポストPCWがない場
合であって、HTEが無効とされた場合は、無効なHT
Eの取り出し時点で直ちに将来の検索は終了し、一致す
る有効なHTEの検出は行なわれない。ステップ(56
6)において、BEビット(378)の値が受信シーケ
ンサ(360)によって検査される。BEビットがセッ
トされていれば、ポストRCWのBuffPtrフィー
ルド(180)とBuffSizeフィールド(18
1)が有効であるため、DataPtrレジスタ(40
7)とCBレジスタ(406)も有効である。ここで、
BEビット(378)がセットされた場合について説明
する。BEビット(378)がクリアされた場合につい
ては後述する。処理のフローはステップ(567)へと
進む。ステップ(567)において、受信状態バッファ
(382)のBレジスタ(384)が受信シーケンサ
(360)によってセットされる。これによってRCW
のデータバッファが有効であることが示される。ステッ
プ(568)において、CBレジスタ(406)の値が
受信シーケンサによって検査される。CBレジスタ(4
06)がセットされていれば、RCWのバッファの大き
さが不十分であることがわかる。ステップ(569)に
おいて、受信シーケンサ(360)は、受信状態バッフ
ァ(382)のEレジスタ(387)とECレジスタ
(388)をセットする。これによって、受信バッファ
の大きさが不十分であってメッセージデータを格納でき
なかったため、エラーが発生したことが示される。CB
レジスタ(406)がセットされたか否かにかかわら
ず、処理フローはステップ(588)へと進む。ステッ
プ(588)において、ローカルメモリ(4)内の当該
ポストRCWが受信回路によって更新される。受信シー
ケンサ(360)は、受信側DMAC(361)に対し
て、PCWPtrレジスタ(369)によって指定され
たポストRCWの更新を要求する。SNN(365)、
Comm(366)、Tag(367)、SWH(40
2)、R(403)、DataLen(404)の各レ
ジスタ内のメッセージヘッダフィールドの値は、ポスト
RCWのSNN(201)、Comm(202)、Ta
g(203)、SWH(204)、R(205)、Da
taLen(206)の各フィールドへとそれぞれ書き
込まれる。受信状態バッファ(382)のS(38
3)、B(384)、F(385)、I(386)、E
(387)、EC(388)の各レジスタは、ポストR
CWのS(207)、B(208)、F(209)、I
(210)、E(211)、EC(212)の各フィー
ルドへと書き込まれる。ついで処理フローはステップ
(594)へと進む。以上で受信開始局面が完了する。
先に説明を延期した各状態の説明を以下で終えたのち
に、ステップ(594)に続く受信回路の処理のフロー
を説明する。
【0089】ステップ(566)においてBEビット
(378)がクリアされた場合、処理フローはステップ
(578)へと進む。この時点では、受信回路はメッセ
ージデータを書き込む場所をまだ決定していない。受信
回路がメッセージデータを受信するためには、まずデー
タプールから空間を割り当てる必要がある。PCWPt
rレジスタには、特定のPCWを指定するポストRCW
からのPCWPtrフィールドが格納されている。使用
すべきデータプールは、このPCWによって管理され
る。PCWPtrレジスタ(368)の出力(438)
は、受信側DMAC(361)へと送られる。ステップ
(578)において、受信シーケンサ(360)は受信
側DMAC(361)に対して、PCWの取り出しを要
求する。このPCWは、バス(6)を介してローカルメ
モリ(4)から返送される。PCWのN(153)、W
(154)、O(155)、L(156)、Seq(1
57)の各フィールドは、PCW状態バッファ(38
9)のN(390)、W(391)、O(392)、L
(393)、Seq(394)の各レジスタによってそ
れぞれラッチされる。PCWのHeadPtrフィール
ド(158)は、DataPtrレジスタ(407)と
NHeadPtrレジスタ(413)とによってラッチ
される。加算器(408)は、DataPtrレジスタ
(407)の出力(441)とDataLenレジスタ
(404)の出力(440)とを加算する。加算器の出
力(409)は、データプールのヘッドポインタの新し
い値となる。比較器(410)によって、新しいヘッド
ポインタの値(409)が、PCWのLWMPtrフィ
ールド(160)またはTailPtrフィールド(1
59)の値を越えるか否かが検査される。これらのフィ
ールドは、PCWの異なる語内にあるため、異なる周期
でバス(6)上に到着する。比較器(410)の出力
は、CLレジスタ(411)とCTレジスタ(412)
とによってラッチされる。このラッチ動作は、ヘッドポ
インタの値(409)がLWMPtrフィールドの値を
越えていれば、CLビット(411)がセットされ、T
ailPtrフィールドの値を越えていればCTビット
(412)がセットされるように行なわれる。ステップ
(579)において、受信シーケンサ(360)は、N
(390)、W(391)、O(392)、L(39
3)の各レジスタの値を、PCW書き込み状態バッファ
(396)のNN(397)、NW(398)、NO
(399)、NL(400)の各レジスタへとそれぞれ
複写する。さらに受信シーケンサは、増分器(395)
を使用してSeqレジスタ(394)の値を増分すると
ともに、この値をPCW書き込み状態バッファ(39
6)のNSeqレジスタ(401)にラッチする。PC
W書き込み状態バッファ(396)によって、PCWへ
の書き込みのバッファリングが行なわれる。NN(39
7)、NW(398)、NO(399)、NL(40
0)、NSeq(401)の各レジスタには、書き込む
べきPCWのN(153)、W(154)、O(15
5)、L(156)、Seq(157)の各フィールド
の新しい値がそれぞれ格納される。処理フローは次にス
テップ(582)へと進む。ステップ(582)におい
て、受信回路はデータプールの割り当てエラーの有無を
検査する。Oレジスタ(392)がセットされていれ
ば、PCWのデータプールにはすでにデータプールオー
バーフローエラーが発生している。CTレジスタ(41
2)がセットされていれば、現在のメッセージのデータ
を受信するための空間を割り当てるのに十分なデータプ
ール空間がないことを意味する。いずれの場合でも、デ
ータプール空間の割り当ては行なわれない。ステップ
(583)において、受信シーケンサ(360)は、E
レジスタ(387)とECレジスタ(388)とをセッ
トする。これによって、データプール空間の不足が検出
されたことと、空間の割り当てが不可能であることとが
示される。さらに受信シーケンサ(360)はNOレジ
スタ(399)をセットする。これによって、PCWが
書き込まれた場合、当該PCWのOビットフィールド
(155)がセットされてデータプールオーバーフロー
エラーが検出されたことが示される。データプールオー
バーフローエラーが検出されなければ、割り当てが成功
したことを意味する。ステップ(584)において、受
信シーケンサ(360)は、NHeadPtrレジスタ
(413)によって、加算器出力(409)からのデー
タプールヘッドポインタ出力の新しい値をラッチする。
またデータプールオーバーフローエラーが発生しなかっ
た場合、受信シーケンサ(360)はステップ(58
5)においてCLレジスタ(411)を検査する。CL
レジスタ(411)がセットされていれば、受信シーケ
ンサはステップ(586)において、NLレジスタ(4
00)をセットする。これによってヘッドポインタがウ
ォータマークを超過したことが示される。データプール
空間の割り当てが成功したか否かにかかわらず、処理フ
ローはステップ(589)へと進む。ステップ(58
9)において、ローカルメモリ内のポストRCWが受信
回路によって更新される。受信シーケンサ(360)
は、RCWPtrレジスタ(369)によって指定され
たポストRCWの書き込みを、受信側DMAC(36
1)に対して要求する。Seqレジスタ(394)とD
ataPtrレジスタ(407)の値は、ポストRCW
のSeqフィールド(199)とDataPtrフィー
ルド(200)とに書き込まれる。SNN(365)、
Comm(366)、Tag(367)、SWH(40
2)、R(403)、DataLen(404)の各レ
ジスタにあるメッセージヘッダフィールドの値は、ポス
トRCWのSNN(201)、Comm(202)、T
ag(203)、SWH(204)、R(205)、D
ataLen(206)の各フィールドへとそれぞれ書
き込まれる。受信状態バッファ(382)のS(38
3)、B(384)、F(385)、I(386)、E
(387)、EC(388)の各レジスタは、ポストR
CWのS(207)、B(208)、F(209)、I
(210)、E(211)、EC(212)の各フィー
ルドへとそれぞれ書き込まれる。ステップ(590)に
おいて、受信シーケンサ(360)は、HTE検索制御
装置(363)からのMP信号(436)の値を再度検
査する。以上の説明は、MP信号がクリアされている場
合に該当するため、処理フローはステップ(592)へ
と進む。ステップ(592)において、ローカルメモリ
内のPCWが受信回路によって更新される。受信シーケ
ンサ(360)は、PCWPtrレジスタ(368)に
よって指定されたPCWの書き込みを、受信側のDMA
C(361)に対して要求する。PCW書き込み状態バ
ッファ(396)内のNN(397)、NW(39
8)、NO(399)、NL(400)、NSeq(4
01)の各レジスタの値と、NheadPtrレジスタ
(413)の値とが、バス(6)を介して、PCWの
N、W、O、L、Seq、HeadPtrの各フィール
ドにそれぞれ書き込まれる。PCWの書き込み動作が完
了すると、受信シーケンサ(360)は、ステップ(5
93)においてPCWIRQ信号(420)をアサート
する。4個のANDゲート(421)が、この信号と、
NN(397)、NW(398)、NO(399)、N
L(400)の各レジスタの出力との論理積をとるとと
もに、N(390)、W(391)、O(392)、L
(393)の反転出力との論理積をそれぞれとる。この
結果、4個の出力信号は、PN(271)、PW(27
2)、PO(273)、PL(274)の各割り込み要
求ビットをそれぞれセットする。このため、PCWの
N、W、O、Lの各ビットのうち過去にクリアされてい
たビットのいずれかを受信回路がセットすると、対応す
る割り込み要求ビットがセットされる。このビットによ
って、PCWに関する警告もしくはエラー状態が存在す
る場合、かかる警告もしくはエラー状態がソフトウェア
に通知される。処理フローはステップ(594)へと進
み、上記の受信開始局面が完了する。
【0090】ここでステップ(562)へと戻って、ハ
ッシュテーブル検索処理装置(363)からのMP信号
がセットされていた場合の受信回路の処理フローを説明
する。この場合、検索において、ポストPCWを指すポ
インタを含むHTEとの一致が検出されて、処理はステ
ップ(572)へと進む。当該PCWを指すポインタ
は、MPtr信号(437)を介してハッシュテーブル
検索制御装置(363)から出力され、ステップ(57
2)においてPCWPtrレジスタ(368)によって
ラッチされる。PCWPtrレジスタ(368)の出力
(438)は、受信側のDMAC(361)へと送られ
る。ステップ(573)において、受信シーケンサは、
DMAC(361)に対して、ローカルメモリ(4)か
らポストPCWを取り出すことを要求する。PCWのデ
ータフィールドはバス(6)を介して返送される。PC
WのRCWPtrフィールドとCフィールドは、RCW
Ptrレジスタ(369)とCビットレジスタ(37
0)とによってラッチされる。PCWのN、W、O、
L、Seqの各フィールドは、PCW状態バッファ(3
89)のN(390)、W(391)、O(392)、
L(393)、Seq(394)の各レジスタによって
ラッチされる。PCWのHeadPtrフィールドは、
DataPtrレジスタ(407)とNHeadPtr
レジスタ(413)とによってラッチされる。対応する
データバッファのない上記のRCWの場合と同様に、新
しいデータプールヘッドポインタがLWMPtrの値を
越えていれば、CLレジスタ(411)がセットされ、
TailPtrの値を越えていればCTレジスタ(41
2)がセットされる。ステップ(595)において、受
信シーケンサ(360)は、N(390)、W(39
1)、O(392)、L(393)の各レジスタの値
を、PCW書き込み状態バッファ(396)のNN(3
97)、NW(398)、NO(399)、NL(40
0)の各レジスタへとそれぞれ複写する。また受信シー
ケンサ(360)は、増分器(395)を使用してSe
qレジスタ(394)内の値を増分したのち、この値を
PCW書き込み状態バッファ(396)のNSeqレジ
スタ(401)にラッチする。ステップ(574)にお
いて、受信シーケンサ(360)は、プールPCWの取
得が可能か否かを検査する。Nレジスタ(390)がセ
ットされていれば、プールPCWの不足によるエラーが
すでに検出されていることを意味する。Cレジスタ(3
70)がクリアされていれば、PCWPtrレジスタ
(369)にラッチされたPoolRCWPtrフィー
ルドが無効であることと、PCWから連鎖されたプール
RCWがないことを意味する。Nレジスタ(390)が
セットされているか、もしくはCレジスタ(370)が
クリアされていれば、受信シーケンサ(360)はNN
レジスタ(397)をセットし、処理フローはステップ
(592)へと進む。ステップ(592)において、P
CWがローカルメモリに書き戻される。これは、対応す
るバッファのないポストRCWの受信に関して以前に説
明した例と同様である。ただし今回の例では、Nレジス
タがすでにセットされていなければ、受信回路はPCW
のNビットとPN割り込み要求ビット(271)とをセ
ットする。これによってプールPCWの不足によるエラ
ーが示される。ステップ(574)の説明に戻り、取得
可能なプールRCWがあれば、処理フローはステップ
(580)へと進む。ステップ(580)では、当該プ
ールRCWがローカルメモリ(4)から取り出される。
RCWPtrレジスタ(369)にはプールRCWのポ
インタが格納されている。このレジスタの出力(43
9)は、受信側DMAC(361)へと送られる。受信
シーケンサ(360)は、プールRCWを取り出すこと
を受信側DMAC(361)に対して要求する。このプ
ールRCWはバス(6)を介して到着する。ポストPC
Wを使用した受信の場合、次リンクバッファ(371)
を使用して次のプールRCWへのリンクを一時的に保留
する。プールRCWのNPoolRCWPtrフィール
ドとNCフィールドは、このバッファのNPtrレジス
タ(372)とNCレジスタ(373)とにそれぞれラ
ッチされる。プールRCWのSW、IM、IRの各フィ
ールドは、SW(377)、IM(380)、IR(3
81)の各レジスタにそれぞれラッチされる。SWビッ
トフィールドがセットされたプールRCWは、プールR
CWの連鎖が残り少ないことを示す。受信回路がこのよ
うなプールRCWを取り出した場合、受信回路はこの状
態をソフトウェアに警告しなければならない。ステップ
(581)において、SWレジスタ(377)がセット
されていれば、受信シーケンサはNWレジスタ(39
7)をセットする。NWレジスタ(397)は後でPC
WのWビットフィールドへと書き戻される。処理フロー
は次いでステップ(582)へと進む。ステップ(58
2)において、受信回路はデータプール割り当てエラー
の存在を検査する。これは、対応するバッファのないポ
ストRCWを使用した受信の前述の例と同様である。処
理フローは前回の例と同じように進行するが、ステップ
(589)において、プールRCWが更新される点が異
なる。ステップ(591)において、MP信号(43
6)が再度検査される。処理フローのここまでの説明で
は、この信号がセットされていたことを前提にしてるの
で、フローはここでステップ(591)へと進む。ステ
ップ(591)において、ローカルメモリ内のPCWが
受信回路によって更新される。受信シーケンサ(36
0)は、受信側DMAC(361)に対して、PCWP
trレジスタ(368)によって指されたPCWの書き
込みを要求する。NPtrレジスタ(372)とNCレ
ジスタ(373)の値は、バス(6)を介してPCWの
PoolRCWPtrフィールドとCフィールドとに書
き込まれる。PCW書き込み状態バッファ(396)の
NN(397)、NW(398)、NO(399)、N
L(400)、NSeq(401)の各レジスタの値
と、NHeadPtrレジスタ(413)の値は、PC
WのN、W、O、L、Seq、HeadPtrの各フィ
ールドへとそれぞれ書き込まれる。PCW書き込み動作
が完了すると、処理フローはステップ(593)へと至
る。このステップは、対応するバッファのないポストR
CWを使用した前述の受信の例ですでに説明した。次に
処理フローはステップ(594)へと進む。これで上記
の受信開始局面が完了する。
【0091】ステップ(594)へと至る処理のさまざ
まな変形例をこれまで説明した。処理フローは次に図2
0のステップ(532)へと戻る。ステップ(532)
において、受信シーケンサはRSビット(263)をク
リアする。ステップ(533)において、受信シーケン
サは、プールRCWの不足によるエラーが発生したか否
かを再度検査する。MP信号(436)がアサートされ
ていて、Nレジスタ(390)がセットされているかも
しくはCレジスタ(370)がクリアされていれば、プ
ールRCWの不足によるエラーが発生したことを意味す
る。この場合、処理フローは最初のステップ(521)
へと戻り、ネットワーク入力ポート(362)は次のメ
ッセージヘッダの受信開始を待つ。ステップ(533)
でエラーが検出されなければ、RCWPtrレジスタ
(369)の値は、有効なポストRCWもしくは有効な
プールRCWのいずれかを示す。処理フローは次にステ
ップ(534)へと進む。ステップ(534)におい
て、データがバッファに書き込まれるとともに、最終状
態がポストRCWもしくはプールRCWへと書き込まれ
る。実際にはこのステップはさらに複雑なフローであっ
て、ステップ(600)から始まるこのフローを図26
に示す。ステップ(601)において、受信シーケンサ
はEレジスタ(387)を検査する。Eレジスタ(38
7)がクリアされていれば、DataPtrレジスタ
(407)は有効であって、このレジスタはローカルメ
モリ(4)内のバッファを指すアドレスポインタを含
む。このアドレスポインタで示されたバッファは、Da
taLenレジスタ(404)内のメッセージデータの
長さの値を書き込むのに十分なサイズのバッファであ
る。DataPtrレジスタ(407)の出力(44
1)と、DataLenレジスタ(404)の出力(4
40)は、受信側DMAC(361)へと送られる。ス
テップ(602)において、受信シーケンサ(360)
は、受信側DMAC(361)に対して、ネットワーク
入力ポート(362)からのメッセージデータをバス
(6)を介してローカルメモリ(4)へと書き込むこと
を要求する。ステップ(603)において書き込み動作
が完了した時点で、データCRCエラーがネットワーク
入力ポート(362)によって検出されると、受信シー
ケンサ(360)はEレジスタ(387)とECレジス
タ(388)とをセットする。これによってステップ
(604)においてエラーが発生したことが示される。
エラーの有無にかかわらず、処理フローはステップ(6
05)へと進み、このステップで受信の完了局面が開始
される。
【0092】ソフトウェアは、特定の受信要求の処理が
完了した時点で、命令処理装置への割り込み要求を発行
するか否かを制御できる。割り込み要求を発行する場
合、ソフトウェアは対応するポストRCWもしくはプー
ルRCWのIRビットをセットする。このIRビットは
受信回路によって読まれる。IRビットがセットされて
いれば、当該受信要求の完了後、割り込み要求が発行さ
れる。ソフトウェア側では、受信要求の処理が完了する
まで割り込み要求が必要かどうかわからないことが多
い。たとえば多重タスクのソフトウェア環境において、
ある受信要求の完了を待っているタスクは別な作業を実
行できるが、メッセージの処理が終るまでソフトウェア
のタスクが実行すべき作業がなければ、このタスクはス
リープ状態に入る必要がある。あるタスクがスリープ状
態に入れば、他のタスクが命令処理装置の処理能力を利
用して別な作業を実行できる。スリープ状態に入る前
に、当該タスクはポストRCWまたはプールRCWのI
Rビットをセットする。これによって、受信要求の処理
が完了すると、当該タスクはスリープ状態を離脱して作
業を続行できる。この場合、IRビットは、受信処理が
完了するまでの任意の時点でソフトウェアによって動的
にセットできる。これは、受信回路が、受信処理の終了
後、IRビットの状態を判定するためにポストRCWも
しくはプールRCWを再度読まなければならないことを
意味する。残念ながら、受信回路による再度の読み出し
要求には時間がかかるため、受信の実際の終了時間を遅
らせる可能性がある。このため本発明では、各ポストR
CWおよびプールRCWに特別なフィールド(IMビッ
トフィールド)を設けている。このフィールドは、再度
の読み出し要求が不用の場合にこれを避けるために使用
される。IMビットは、IRフィールドに関する動作状
態を制御するビットである。IMビットがソフトウェア
によってセットされると、再度の読み出しは実行され
ず、ポストRCWもしくはプールRCWに対する最初の
読み出し要求で得られたIRビットが使用される。この
場合、ソフトウェアはIRビットの状態を動的に変更し
ない。IMビットがソフトウェアによってクリアされる
と、受信処理の終了時にIRフィールドの値が再度取り
出される。IRフィールドの変更を受信回路に知らせる
か否かをソフトウェア側で検査できるようにするため、
受信回路はRFビット(264)を備えている。このビ
ットは、バス(6)を介してソフトウェアによってアク
セスできる。ポストRCWとプールRCWはそれぞれ、
受信回路の読んだIRビットの条件を反映するIビット
フィールドを有する。RFビット(264)は、IRビ
ットを再度取り出すための再度読み出し要求が発行され
る前に、受信回路によってセットされる。Iビットがポ
ストRCWもしくはプールRCWに最終的に書き込まれ
たのち、RFビット(264)はクリアされる。ソフト
ウェアは、いずれかのポストRCWもしくはプールRC
WのIRビットをセットしたのち、RFビット(26
4)をポーリングして、このビット(264)がクリア
されるまで待つ必要がある。RFビット(264)がや
がてクリアされるか、もしくは該ビットがすでにクリア
されている場合、次の2種類の状態のうちいずれかが該
当する。第1の状態は、受信要求の処理がまだ完了して
いない状態であって、受信動作に対応するポストRCW
もしくはプールRCWが更新されていない状態である。
この場合、ソフトウェアによるIRビットの変更がのち
ほど受信回路に通知される。第2の状態は、受信要求の
処理が完了した状態であって、受信動作に対応するポス
トRCWもしくはプールRCWは最終的に更新されてい
る状態である。この場合、Iビットフィールドは、受信
回路から見たIRビットの状態を反映している。
【0093】ステップ(605)において、受信シーケ
ンサ(360)はRF信号(428)をアサートする。
この信号はRFビット(264)をセットする。ステッ
プ(606)において、IMレジスタ(380)が検査
される。このレジスタは、ポストRCWもしくはプール
RCWの最初の読み出しでラッチされたIMフィールド
の値を保持している。IMレジスタ(380)がクリア
されていれば、受信シーケンサ(360)は、受信側D
MAC(361)に対して、ポストRCWもしくはプー
ルRCWを再度取り出すことを要求する。IRビット
(385)はIRレジスタ(381)に再度ラッチされ
る。次にステップ(608)において、受信シーケンサ
は、Fビット(385)をセットし、Iビット(38
6)をIRレジスタ(381)の内容にセットする。ス
テップ(609)において、受信シーケンサ(360)
は、受信側DMAC(361)に対して、S(38
3)、B(384)、F(385)、I(386)、E
(387)、EC(388)の各レジスタの内容を、ポ
ストRCWもしくはプールRCWのS、B、F、I、
E、ECの各フィールドへとそれぞれ書き込むことを要
求する。ステップ(610)において、受信シーケンサ
(360)はRCWIRQ信号(422)をアサートす
る。3個のANDゲート(425、424、423)
が、RCWIRQ信号(422)と、I(400)、E
(398)、R(403)の各レジスタからの出力との
論理積をそれぞれとる。これらゲートの出力信号は、R
R(270)、RE(269)、RI(268)の各割
り込み要求ビットをそれぞれセットする。このため、受
信処理の終了時に、受信回路がRCWのRビット、Eビ
ット、Iビットのうちいずれかをセットすると、対応す
る割り込み要求ビットがセットされる。ステップ(61
1)において、受信回路はRF信号(428)のアサー
トを解除して、RFビット(264)をクリアする。ス
テップ(612)において、処理フローは図20の最初
のステップ(521)へと戻る。ステップ(621)に
おいて、入力ポートは次のメッセージヘッダの受信開始
を待つ。
【0094】以下では、通信ソフトウェアがシステムの
ノード間においてメッセージをいかに転送するかについ
て、例を挙げて説明する。ここでは1個のノードのみを
説明するが、この説明はシステムの他のノードも同様に
該当する。
【0095】ソフトウェアは最初に、ローカルメモリ内
に必要なデータ構造を形成しなければならない。ソフト
ウェアはまず、無効なHTEだけから構成されるハッシ
ュテーブルをローカルメモリ内に生成する。各ノード
は、アプリケーションソフトウェアの複数のタスクを実
行できる。異なるタスクとの通信を区別するため、ここ
では上記のComm(コミュニケータ)フィールドを2
分割して、タスク識別フィールドと、コミュニケータ識
別フィールドとを形成する。アプリケーションソフトウ
ェアの各タスクをノードで実行するためには、各アプリ
ケーションタスクに使用される通信コンテキストを識別
するためのコミュニケータを表わす一連のコミュニケー
タ値を割り当てる必要がある。アプリケーションソフト
ウェアの各タスクに対しては、ソフトウェアは、データ
プール1個と、空きプールRCWCW1個を生成しなけ
ればならない。特に限定されないが、アプリケーション
ソフトウェアの各タスクが、別個のPCWと、別個のデ
ータプールと、別個のプールPCWの連鎖とをそれぞれ
使用することが望ましい。理由は、こうすればデータの
オーバーフローエラーやプールPCW不足エラーが、エ
ラーを生じたアプリケーションタスク1個のみに限定さ
れるからである。通信ソフトウェアは次に、送信元無指
定と、タグ無指定と、当該アプリケーションタスクに割
り当てられたコミュニケータ値とに対応する受信指定を
有する有効なHTEを生成することによって、ハッシュ
テーブルにPCWをポストする。PCWに対応するHT
E内のTime(時間)値は最大値にセットしておく。
この値は、将来における受信要求、すなわち今後発行さ
れる受信要求に対応する値である。PCWは、アプリケ
ーションソフトウェアのタスクに割り当てられた各コミ
ュニケータ値につき、別個のHTEを使用して同一の方
法で複数回ポストする。PCWのこれらのポスト受信要
求は、アプリケーションソフトウェアによって発行され
た保留状態の受信要求のうちのいずれにも一致しないメ
ッセージに対するデフォルト受信要求として使用され
る。
【0096】メモリ構造の初期化後の任意の時点で、ノ
ード上で実行されるアプリケーションソフトウェアは、
通信ライブラリソフトウェアにメッセージを送信するた
めの要求を発行できる。ライブラリソフトウェアは、こ
の要求を、送信回路が実行する送信のためのキューに登
録する。メッセージ送信要求をキューに登録するために
は、通信ライブラリソフトウェアは、すでに説明したT
CWを生成する。このTCWには、送信すべきデータの
コミュニケータ(Comm)値と、タグ(Tag)値
と、バッファアドレスとが格納される。次にライブラリ
ソフトウェアは、TCWのSビット(132)を検査し
て、先行する送信対象メッセージに対応するTCWが送
信回路によって開始されたか否かを調べる。Sビット
(132)がセットされていれば、ソフトウェアは現在
のTCWのアドレスを送信回路のNTCWPtrレジス
タ(331)にセットするとともに、NCビット(33
3)をセットする。先行するTCWのSビットがクリア
されていれば、ソフトウェアはNIA(ネットワークイ
ンタフェースアダプタ)のTHビット(258)をセッ
トする。これによって送信回路が別なTCWを開始しな
いことが保証される。ソフトウェアは次に、TSビット
(261)のポーリングを行なって、このビットがクリ
アされるまで待つ。TSビット(261)がクリアされ
ると、送信回路が別なTCWを開始しないことが保証さ
れる。ソフトウェアは再び先行するTCWのSビットを
検査する。Sビットがクリアされていれば、ソフトウェ
アは現在のTCWを指すポインタをNTCWPtrフィ
ールド(121)へと書き込むとともに、先行するTC
WのNCビット(122)をセットして、THビット
(333)をクリアする。先行するTCWのSビットが
この時点でセットされていれば、ソフトウェアが先行す
るTCWに現在のTCWを連鎖するにはすでに遅すぎる
ことを意味する。この場合、ソフトウェアは、現在のT
CWのアドレスを送信回路のNTCWPtrレジスタ
(331)にセットするとともに、NCビット(33
3)をセットしなければならない。ソフトウェアはこの
ようにして、送信回路がメッセージの送信を完了するま
で待たずに、任意の個数のメッセージ送信要求をキュー
に登録することができる。ソフトウェアが、メッセージ
の送信が終るまでスリープ状態に入り、送信完了時にス
リープ状態から離脱したい場合には、ソフトウェアは任
意の時点でTCWのIRビットをセットする。こうすれ
ば、送信動作の終了時に処理装置割り込み要求が発行さ
れる。送信動作が完了したか否かは、ソフトウェアが対
応するTCWのFビット(132)の状態を検査するこ
とによって容易に調べることができる。
【0097】メモリ構造の初期化後の任意の時点で、ノ
ード上で実行されるアプリケーションソフトウェアは、
通信ライブラリソフトウェアに対して受信要求を発行す
ることができる。ライブラリソフトウェアは、受信回路
が使用したプールRCWの連鎖を最初に検索する。これ
らのプールRCWは、各プールRCWのSビット(24
4)によって容易に識別できる。各Sビットは、対応す
るPCWが使用された場合にはセットされている。これ
らのプールRCWは、最も古いものから検索しなければ
ならない。これはMPIのメッセージの順序要件を犯さ
ないためである。当該受信要求に一致するSNNフィー
ルドと、コミュニケータフィールドと、タグフィールド
とを含むプールRCWがソフトウェアによって検出され
ると、この要求は満たされる。次にソフトウェアは、プ
ールRCWのFビット(245)がセットされるのを待
って受信の完了を確認する。ソフトウェアは、Data
Ptrフィールド(237)によって示されたデータを
アプリケーションのバッファに複写してもよい。メッセ
ージがプールRCWの連鎖内で検出されない場合、受信
側ではポストRCWを生成しなければならない。このポ
ストRCWには、アプリケーション空間内のユーザバッ
ファの指定と、PCWの有効なポインタとが格納されて
いる必要がある。ポストRCWのBEビット(174)
はクリアされていなければならない。理由は、当該ポス
トRCWは当初仮にポストされるだけであって、後にバ
ッファがイネーブルされるからである。次にソフトウェ
アは、受信指定のハッシュ値を計算して、ハッシュテー
ブル内で該当するHTEを検索する。HTEが検出され
ない場合、ソフトウェアがHTEを生成しなければなら
ない。このため、受信側では最初にRHビット(25
9)をセットしたのち、RSビット(263)がクリア
されるまでこのビット(263)のポーリングを実行す
る。これによって、ソフトウェアがハッシュテーブルを
変更している間に、受信回路がこのテーブルの検索を開
始しないことが保証される。次にソフトウェアは、HT
Eをハッシュテーブルへと書き込み、タイムスタンプと
ポインタをHTE内のポストRCWへと格納したのち、
RHビット(259)をクリアする。HTEが検出され
ても連鎖としてこれに何も付加されていなければ、ソフ
トウェアはRHビット(259)をまずセットしたの
ち、RSビット(263)がクリアされるまでこのビッ
ト(263)のポーリングを行なう。その後ソフトウェ
アは、ポストRCWをポストRCWの連鎖の最後に挿入
するが、このポストRCWはすべてのポストPCWに先
行する必要がある。この動作をソフトウェアが行なう場
合、連鎖内の最後のポストRCWのNPtr、NC、N
P、NTimeの各フィールドを、ポストすべきRCW
の対応するフィールドへとそれぞれ複写するとともに、
先行するRCWのNC、NP、NPtr、NTimeの
各フィールドを、現在の受信要求のポストRCWのタイ
ムスタンプとポインタとに対応するようにセットする。
ソフトウェアは次に、RHビット(259)をクリアし
て、受信回路の動作を再度イネーブルする。次いでソフ
トウェアは、前回の検査以降に使用されたすべてのプー
ルRCWのなかから当該受信要求に一致するメッセージ
を検索する。このメッセージが受信されていなければ、
ソフトウェアはRCWのBEビット(174)をセット
してバッファをイネーブルする。次にソフトウェアはR
Sビット(263)のポーリングを行ない、このビット
がクリアされるまでポーリングを続ける。RSビット
(263)がクリアされると、ソフトウェアはRCWの
Sビット(207)とBビット(208)とを検査し
て、要求されたメッセージの受信開始前にバッファのイ
ネーブルが成功したかどうかを調べる。ポストRCWを
使用したメッセージの受信開始後にバッファがイネーブ
ルされていれば、ライブラリソフトウェアによってデー
タをアプリケーションバッファへと複写しなければなら
ない。バッファがイネーブルされる前にプールRCWを
使用してメッセージが受信されていれば、仮にポストし
たRCWのポストの解除を行なう。ソフトウェアが仮ポ
ストRCWのポストを解除するには、前述のように、ソ
フトウェアは最初にRHビット(259)をセットした
のち、RSビット(263)のポーリングを行ない、こ
のビット(263)がクリアされるまでポーリングを続
ける。RSビット(263)がクリアされると、ソフト
ウェアは、HTEもしくはポストRCWの連鎖からRC
Wを外す。要求されたメッセージに加えて、仮ポストR
CWを使用して別なメッセージが受信されると、連鎖か
ら外された仮ポストRCWは使用済みのプールRCWと
して扱われる。対応するバッファのない使用済みのポス
トRCWと、使用済みのプールRCWはそれぞれSeq
フィールドを有する。このSeqフィールドは、PCW
のSeqフィールドから複写されたカウント値から得ら
れる。このカウント値は、PCWが受信回路によって更
新される度に、受信回路によって増分される。このた
め、Seqフィールドを使用すると、プールRCWと仮
ポストRCWとに受信されたメッセージの相対順序を決
定できる。ポストの解除が間に合わなかった使用済みの
仮ポストRCWは、使用済みプールRCWの連鎖のなか
で、メッセージの受信順序に対応する場所に挿入する。
この場合、受信回路の動作を保留にする必要がないこと
が注目すべき点である。理由は、これらのプールRCW
がすでに使用されているためである。任意のアプリケー
ションタスクを、スリープ状態に入れたのち、受信要求
の完了時にスリープ状態から離脱させたい場合、ソフト
ウェアは、任意の時点でプールRCWもしくはポストR
CWのIRビットをセットすることによって、対応する
受信動作の完了時に処理装置割り込み請求を発行するこ
とができる。受信動作が完了したか否かは、対応するポ
ストRCWの状態か、もしくは対応するポストRCWの
Fビットのいずれかをソフトウェアが検査することによ
って容易に調べることができる。
【0098】上記の実施例の多数の変形を本発明を使用
して実施することができる。以下に例を示す。
【0099】送信回路がノード番号レジスタからSNN
ヘッダフィールドを取り出す代りに、SNNフィールド
をTCWに付加することによって、メッセージヘッダの
SNN(送信元ノード番号)をメッセージごとに命令処
理装置によって指定してもよい。このようなシステム
は、ノード1個につき複数のアプリケーション処理が実
行される場合に有効である。この場合、SNNを使用し
てメッセージの送信元処理を識別してもよい。
【0100】メッセージヘッダフィールドのうちいずれ
かを不用とするシステムでは、これらの不用なフィール
ドを省略してもよい。たとえば、単一の通信コンテキス
トのみを使用するシステムにおいてはCommフィール
ドを省略できる。また無指定の使用を必要としないアプ
リケーションを実行するシステムでは、検索アルゴリズ
ムを簡略化して、ハッシュテーブル内で該当するHTE
1個のみを検索すればよい。
【0101】上記の実施例では、ハッシュテーブルを、
到着するメッセージとポスト受信要求との照合の手段と
して使用している。これに代えて、ポスト受信要求を保
持するための連想メモリを使用してもよい。このような
連想メモリには、メッセージをメッセージヘッダから識
別するための識別フィールドを設けて、メッセージに対
応する受信要求をメモリから返送する。こうした実施例
も本発明の範囲から逸脱するものではない。
【0102】メッセージを受信要求に照合する際に厳密
な順序要件を必要としないソフトウェアを使用するシス
テムでは、前述の実施例で使用したタイムスタンプフィ
ールドや時間比較器を使用しなくてよい。このような変
形例も本発明の範囲から逸脱するものではない。
【0103】また本発明の実施例では、メッセージプー
ルの設置を必ずしも必要としない。受信側のソフトウェ
アにおいて、受信すべきメッセージが常にあらかじめわ
かっていれば、受信したメッセージをメッセージプール
へと格納する必要はない。このような実施例も本発明の
範囲から逸脱しない。
【0104】
【発明の効果】本発明によれば、ポスト受信要求検索機
構をハードウェアで実現することにより、ソフトウェア
のオーバヘッドを減らすことによってメッセージの待ち
時間を大幅に短縮することができるとともに、MPI
(メッセージ通信インタフェース)規格に準じたメッセ
ージ通信ライブラリを簡単に実現することができる。
【図面の簡単な説明】
【図1】メッセージ通信ネットワークに接続された本発
明のノードのブロック図である。
【図2】メッセージ通信ネットワークに接続された多重
ノードシステムのブロック図である。
【図3】従来のシステムを示すブロック図である。
【図4】本発明によって送受信されるメッセージの形式
を示す図である。
【図5】メッセージの送信を要求するために本発明で使
用する送信制御語(TCW)の形式を示す図である。
【図6】保留状態の受信要求をポストするために本発明
で使用するハッシュテーブルエントリ(HTE)の形式
を示す図である。
【図7】データプールとプールRCWの連鎖を管理する
ために本発明で使用するプール制御語(PCW)の形式
を示す図である。
【図8】メッセージの受信を要求するために本発明で使
用するポスト受信制御語(ポストRCW)の形式を示す
図である。
【図9】受信回路によって更新された後のポストRCW
の形式を示す図である。
【図10】保留状態のポストRCWのいずれにも一致し
ないメッセージを受信するために本発明で使用するプー
ル受信制御語(プールRCW)の形式を示す図である。
【図11】保留状態のポストRCWのいずれにも一致し
ないメッセージの受信時に受信回路によって更新された
プールRCWの形式を示す図である。
【図12】データプールの形式を示す図である。
【図13】ネットワークインタフェースアダプタ(NI
A)の回路図である。
【図14】NIA保留制御レジスタの形式を示す図であ
る。
【図15】NIA動作状態レジスタの形式を示す図であ
る。
【図16】NIA割り込み要求状態レジスタの形式を示
す図である。
【図17】送信回路の回路図である。
【図18】送信回路の動作を表わすフローチャートであ
る。
【図19】受信回路の回路図である。
【図20】受信回路の動作の全体を表わすフローチャー
トである。
【図21】ハッシュテーブル検索制御装置の回路図であ
る。
【図22】ハッシュテーブル検索制御装置の動作を表わ
すフローチャートである。
【図23】メッセージの受信開始に関する受信回路の動
作を表わすフローチャートである。
【図24】メッセージの受信開始に関する受信回路の動
作を表わすフローチャートである。
【図25】メッセージの受信開始に関する受信回路の動
作を表わすフローチャートである。
【図26】メッセージデータの受信とメッセージの受信
の終了とに関する受信回路の動作を表わすフローチャー
トである。
【符号の説明】
1、50、51、52、901…ノード、2、902…
ネットワーク、3、903…命令処理装置、4、904
…ローカルメモリ、5、905…NIA、6、906…
バス、8、908、300…送信回路、10、910、
301…受信回路、12、912…メッセージ、919
…シーケンサ、920…ポストレジスタ 320…送信シーケンサ、321…送信DMAC 360…受信シーケンサ、363…ハッシュテーブル検
索制御装置、

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】メッセージ転送ネットワークによって相互
    接続される複数の処理ノードを含むコンピュータシステ
    ムであって、 各ノードは、命令処理装置と、前記ネットワークを介し
    て他の処理ノードにメッセージを転送する送信回路と、
    前記メッセージはヘッダ部とデータ部とを含み、前記ヘ
    ッダ部はメッセージを識別するための識別フィールドを
    有し、 記憶装置と、複数のメッセージを受信するための受信要
    求であって前記記憶装置に格納される複数の受信要求
    と、前記受信要求は前記メッセージの前記ヘッダ部の前
    記識別フィールドに対応するメッセージ指定フィールド
    を含み、前記メッセージ指定フィールドは前記識別フィ
    ールドに選択的に対応し、前記受信要求はまた受信制御
    フィールドを含み、 受信回路と、前記受信回路は前記ネットワークを介して
    他の処理ノードから送信された前記メッセージを受信す
    る受信手段と、前記メッセージの受信時に前記メッセー
    ジの前記識別フィールドに対応する前記メッセージ指定
    フィールドを有する受信要求を検索して確定する検索手
    段と、任意の受信要求の検索及び確定時に、前記受信制
    御フィールドを使用して、前記受信回路の前記メッセー
    ジの受信動作を制御する受信制御手段とを有することを
    特徴とするコンピュータシステム。
  2. 【請求項2】請求項1に記載のコンピュータシステムで
    あって、 前記識別フィールドは、送信ノードの命令処理装置によ
    って設定されるコミュニケータフィールドと、タグフィ
    ールドと、メッセージの送信元を識別する送信元フィー
    ルドを含み、前記メッセージ指定フィールドは、コミュ
    ニケータ指定フィールドと、タグ指定フィールドと、送
    信元指定フィールドを含み、 前記検索手段は、前記記憶装置を検索して前記受信メッ
    セージの前記コミュニケータフィールドと、前記タグフ
    ィールドと、前記送信元フィールドに対応する前記コミ
    ュニケータ指定フィールドと、前記タグ指定フィールド
    と、前記送信元指定フィールドとを含む前記メッセージ
    指定フィールドを有する前記受信要求を確定することを
    特徴とするコンピュータシステム。
  3. 【請求項3】請求項2に記載のコンピュータシステムで
    あって、 前記タグ指定フィールドは、特定のタグ指定フィールド
    もしくは無指定タグ指定フィールドのいずれかであり、
    前記検索手段は、前記記憶装置を検索して、前記受信メ
    ッセージの前記タグフィールドに対応する特定のタグ指
    定フィールドもしくは無指定タグ指定フィールドのいず
    れかを有する受信要求を確定することを特徴とするコン
    ピュータシステム。
  4. 【請求項4】請求項3に記載のコンピュータシステムで
    あって、 前記送信元指定フィールドは、特定の送信元指定フィー
    ルドもしくは無指定送信元指定フィールドのいずれかで
    あり、前記検索手段は、前記記憶装置を検索して、前記
    受信メッセージの送信元フィールドに対応する特定の送
    信元指定フィールドもしくは無指定送信元指定フィール
    ドのいずれかを有する受信要求を確定することを特徴と
    するコンピュータシステム。
  5. 【請求項5】請求項1に記載のコンピュータシステムで
    あって、 前記受信要求は、前記記憶装置内にあるハッシュテーブ
    ルの有効なエントリであり、前記検索手段は、前記受信
    メッセージの前記識別フィールドに対応する前記受信要
    求を確定するために行なう前記記憶装置の検索におい
    て、検索すべき前記受信要求の前記メッセージ指定フィ
    ールドのハッシュ値を最初に計算し、前記ハッシュ値は
    前記ハッシュテーブル内のエントリを検索するための最
    初のインデックスとして使用され、次いで前記検索手段
    は、各ハッシュテーブルエントリの検索を前記最初のイ
    ンデックスから開始して、無効なハッシュテーブルエン
    トリまたは所望の受信要求のいずれかが検出されるまで
    行なうことを特徴とするコンピュータシステム。
  6. 【請求項6】請求項5に記載のコンピュータシステムで
    あって、 前記各受信要求は、前記各受信要求が発行された後の相
    対経過時間を示す時間フィールドをさらに含み、 前記検索手段は、前記受信メッセージに対応する複数の
    受信要求を検出した場合、各受信要求の前記時間フィー
    ルドに基づいて決定された最長経過時間を有する受信要
    求を確定することを特徴とするコンピュータシステム。
  7. 【請求項7】請求項1に記載のコンピュータシステムで
    あって、 前記各受信要求は、前記受信制御フィールドが有効かま
    たは使用中かを示す受信要求有効フィールドを含み、前
    記検索手段は前記記憶装置の検索において前記有効な受
    信要求のみを検索し、 前記受信回路は、受信要求無効化手段を有し、任意の受
    信要求が検索及び確定された場合、前記受信要求無効化
    手段は、前記受信要求の前記受信要求有効フィールドを
    変更することによって前記受信要求が使用中であること
    を示すことを特徴とするコンピュータシステム。
  8. 【請求項8】請求項7に記載のコンピュータシステムで
    あって、 前記各受信要求は、前記受信要求が持続性受信要求かま
    たは非持続性受信要求かを示す持続性制御フィールドを
    さらに含み、前記受信要求無効化手段は、前記持続性受
    信要求以外の受信要求のみの前記受信要求有効フィール
    ドを変更することを特徴とするコンピュータシステム。
  9. 【請求項9】請求項7に記載のコンピュータシステムで
    あって、 前記受信制御フィールドは受信制御語アドレスポインタ
    を含み、前記記憶装置には複数の前記受信制御語が格納
    され、 前記受信制御手段は、任意の受信要求が検索及び確定さ
    れた場合、前記受信要求の前記受信制御フィールド内の
    前記受信制御語アドレスポインタを使用して対応する受
    信制御語を読み出し、前記受信制御語を使用して前記受
    信回路の前記メッセージの受信動作を制御することを特
    徴とするコンピュータシステム。
  10. 【請求項10】請求項9に記載のコンピュータシステム
    であって、 各受信制御語は、次受信制御語アドレスポインタと、前
    記次受信制御語アドレスポインタが有効か否かを示す次
    受信要求有効フィールドとを含み、前記次受信制御語ア
    ドレスポインタと前記次受信要求有効フィールドとによ
    って前記複数の受信制御語が連鎖され、該連鎖における
    最終受信制御語は無効と示された次受信制御語アドレス
    ポインタを含み、 前記受信要求無効化手段は、前記受信制御語が検索及び
    確定された場合、前記次受信制御語アドレスポインタを
    前記受信制御フィールドの前記受信制御語アドレスポイ
    ンタへと複写するとともに、前記次受信要求有効フィー
    ルドを前記受信制御フィールドの前記受信要求有効フィ
    ールドへと複写し、前記連鎖における前記最終受信制御
    語が検索及び確定された場合においてのみ前記受信要求
    が使用中であることを示すように前記受信要求有効フィ
    ールドを変更することを特徴とするコンピュータシステ
    ム。
  11. 【請求項11】請求項9に記載のコンピュータシステム
    であって、 前記受信制御語は、前記受信回路による前記メッセージ
    の受信状態を示す受信状態フィールドを含み、 前記受信回路は、前記受信制御語の前記受信状態フィー
    ルドを更新する受信状態更新手段を有することを特徴と
    するコンピュータシステム。
  12. 【請求項12】請求項11に記載のコンピュータシステ
    ムであって、 前記受信状態更新手段は、前記メッセージの受信開始時
    に、前記受信状態フィールドを更新し、前記メッセージ
    の受信終了時に、前記受信状態フィールドを再度更新す
    ることを特徴とするコンピュータシステム。
  13. 【請求項13】請求項8に記載のコンピュータシステム
    であって、 前記受信制御フィールドは受信制御語アドレスポインタ
    を含み、前記受信制御後アドレスポインタは、非持続性
    受信要求の受信制御語アドレスポインタまたは持続性受
    信要求のプール制御語アドレスポインタのいずれかであ
    り、前記記憶装置には複数の受信制御語及び複数のプー
    ル制御語が格納され、 前記受信制御手段は、前記非持続性受信要求が検索及び
    確定された場合、前記非持続性受信要求の前記受信制御
    フィールド内の前記受信制御語アドレスポインタを使用
    して対応する受信制御語を読み出し、前記受信制御語を
    使用して前記受信回路の前記メッセージの受信動作を制
    御し、 前記持続性受信要求が検索及び確定された場合、前記持
    続性受信要求の前記受信制御フィールド内の前記プール
    制御語アドレスポインタを使用して対応するプール制御
    語を読み出し、前記プール制御語を使用して前記受信回
    路の前記メッセージの受信動作を制御することを特徴と
    するコンピュータシステム。
  14. 【請求項14】請求項13に記載のコンピュータシステ
    ムであって、 各受信制御語またはプール制御語は、次制御語アドレス
    ポインタと、前記次制御語アドレスポインタが有効か否
    かを示す次受信要求有効フィールドと、次制御語アドレ
    スポインタが次受信制御語アドレスポインタまたは次プ
    ール制御語アドレスポインタのいずれであるかを示す次
    持続性制御フィールドとを含み、次制御語アドレスポイ
    ンタと次受信要求有効フィールドとによって前記複数の
    受信制御語またはプール制御語が連鎖され、該連鎖にお
    ける最終受信制御語または最終プール制御語は無効と示
    された次制御語アドレスポインタを含み、 前記受信要求無効化手段は、前記受信制御語またはプー
    ル制御語が検索及び確定された場合、前記次制御語アド
    レスポインタを前記受信制御フィールドの前記受信制御
    語アドレスポインタへ複写し、前記次持続性制御フィー
    ルドを前記持続性制御フィールドへ複写し、対応する次
    受信要求有効フィールドを前記受信要求有効フィールド
    へ複写し、前記連鎖における前記最終受信制御語が検索
    及び確定された場合であって、前記最終受信制御語の前
    記次持続性制御フィールドが、次制御語アドレスポイン
    タが次プール制御語アドレスポインタであることを示す
    場合においてのみ前記受信要求が持続性であることを示
    すように前記持続性制御フィールドを変更し、前記プー
    ル制御語が連鎖されていない場合であって、前記連鎖に
    おける前記最終受信制御語が検索及び確定された場合に
    おいてのみ前記受信要求が使用中であることを示すよう
    に前記受信要求有効フィールドを変更することを特徴と
    するコンピュータシステム。
  15. 【請求項15】請求項13に記載のコンピュータシステ
    ムであって、 前記記憶装置に形成され、前記記憶装置の空き記憶領域
    である複数のデータプールと、前記記憶装置に形成さ
    れ、複数の受信状態語が格納される複数の受信状態語プ
    ールと、各プール制御語は前記データプールと前記受信
    状態語プールとを管理する制御情報を含み、 前記受信回路は、前記プール制御語に対応するデータプ
    ールにプール受信バッファを割り当て、前記受信したメ
    ッセージの前記データ部を前記プール受信バッファに書
    き込み、また、前記プール制御語に対応する受信状態語
    プールに前記受信状態語を割り当て、前記受信したメッ
    セージに関する状態情報及び制御情報を前記受信状態語
    に記録するプール受信手段を有することを特徴とするコ
    ンピュータシステム。
  16. 【請求項16】請求項15に記載のコンピュータシステ
    ムであって、 各受信制御語は、前記記憶装置に形成された受信バッフ
    ァを指すアドレスポインタと、前記受信バッファの使用
    を許可する受信バッファ許可フィールドと、前記受信バ
    ッファの使用が許可されない場合に、前記受信回路によ
    って使用される前記プール制御語を指すプール制御語ア
    ドレスポインタとを含み、 前記受信回路は、前記受信バッファの使用が許可される
    場合に、前記受信したメッセージの前記アドレスポイン
    タを使用して前記データ部を前記受信バッファに書き込
    む受信バッファ手段をさらに有し、 前記受信制御語において前記受信バッファの使用が許可
    されない場合、前記プール受信手段は、前記受信制御語
    内の前記プール制御語アドレスポインタを使用して前記
    プール制御語を検索及び確定し、前記プール制御語に対
    応するデータプールに前記プール受信バッファを割り当
    て、前記受信したメッセージの前記データ部を前記プー
    ル受信バッファに書き込むことを特徴とするコンピュー
    タシステム。
  17. 【請求項17】請求項16に記載のコンピュータシステ
    ムであって、 前記プール制御語は、受信シーケンスフィールドを含
    み、前記受信制御語は、受信状態フィールドを含み、 前記プール受信手段は、前記プール制御語を使用して前
    記メッセージを受信する際、前記受信シーケンスフィー
    ルドを増分する手段と、前記プール制御語における前記
    受信シーケンスフィールドの現在値を記録する手段とを
    有することを特徴とするコンピュータシステム。
  18. 【請求項18】請求項1に記載のコンピュータシステム
    であって、 前記受信制御フィールドは、前記記憶装置に形成された
    受信バッファを指すアドレスポインタを含み、 前記受信回路は、前記受信したメッセージの前記受信制
    御フィールド内の前記アドレスポインタを使用して前記
    データ部を前記受信バッファに書き込む受信バッファ手
    段を有することを特徴とするコンピュータシステム。
  19. 【請求項19】請求項18に記載のコンピュータシステ
    ムであって、 各受信制御フィールドは、前記受信バッファの大きさを
    示すサイズフィールドをさらに含み、 前記受信回路は、前記受信したメッセージの前記データ
    部の長さを前記受信バッファに対応する前記サイズフィ
    ールドと比較する長さ検査手段を有することを特徴とす
    るコンピュータシステム。
JP10132097A 1997-04-18 1997-04-18 コンピュータシステム Expired - Fee Related JP3697831B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10132097A JP3697831B2 (ja) 1997-04-18 1997-04-18 コンピュータシステム
US09/061,328 US6125399A (en) 1997-04-18 1998-04-17 Computer system including a plurality of nodes for transferring through a data transfer network messages having distinguishing fields used for distinguishing the messages and controlling receipt thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10132097A JP3697831B2 (ja) 1997-04-18 1997-04-18 コンピュータシステム

Publications (2)

Publication Number Publication Date
JPH10293754A true JPH10293754A (ja) 1998-11-04
JP3697831B2 JP3697831B2 (ja) 2005-09-21

Family

ID=14297528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10132097A Expired - Fee Related JP3697831B2 (ja) 1997-04-18 1997-04-18 コンピュータシステム

Country Status (2)

Country Link
US (1) US6125399A (ja)
JP (1) JP3697831B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009193430A (ja) * 2008-02-15 2009-08-27 Toshiba Corp 通信制御装置、情報処理装置およびプログラム
US8510491B1 (en) * 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
WO2021161909A1 (ja) * 2020-02-13 2021-08-19 ソニーセミコンダクタソリューションズ株式会社 送信装置、受信装置および通信システム

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK0909068T3 (da) * 1997-10-13 2001-05-07 X Way Rights B V Fremgangsmåde og apparat til struktureret kommunikation
US6385659B1 (en) * 1998-08-19 2002-05-07 International Business Machines Corporation Handling of asynchronous message packet in a multi-node threaded computing environment
US6412018B1 (en) * 1998-08-19 2002-06-25 International Business Machines Corporation System for handling asynchronous message packet in a multi-node threaded computing environment
US6415332B1 (en) * 1998-08-19 2002-07-02 International Business Machines Corporation Method for handling of asynchronous message packet in a multi-node threaded computing environment
US6711206B1 (en) * 1998-09-25 2004-03-23 Intel Corporation Modem using a digital signal processor and separate transmit and receive sequencers
US6502138B2 (en) * 1998-09-25 2002-12-31 Intel Corporation Modem with code execution adapted to symbol rate
US6625208B2 (en) * 1998-09-25 2003-09-23 Intel Corporation Modem using batch processing of signal samples
US6711205B1 (en) 1998-09-25 2004-03-23 Intel Corporation Tone detector for use in a modem
US6661848B1 (en) 1998-09-25 2003-12-09 Intel Corporation Integrated audio and modem device
US6374312B1 (en) * 1998-09-25 2002-04-16 Intel Corporation System for dedicating a host processor to running one of a plurality of modem programs and dedicating a DSP to running another one of the modem programs
US6490628B2 (en) * 1998-09-25 2002-12-03 Intel Corporation Modem using a digital signal processor and a signal based command set
US6834343B1 (en) * 1999-05-27 2004-12-21 Microsoft Corporation Method for watermarking computer programs
US7069335B1 (en) * 1999-08-10 2006-06-27 Microsoft Corporation Method and system for exchanging messages between entities on a network comprising an actor attribute and a mandatory attribute in the header data structure
US6782537B1 (en) * 1999-09-23 2004-08-24 International Business Machines Corporation Establishing a communicator across multiple processes in a multithreaded computing environment
US6954799B2 (en) * 2000-02-01 2005-10-11 Charles Schwab & Co., Inc. Method and apparatus for integrating distributed shared services system
US7039050B1 (en) * 2000-02-16 2006-05-02 Tibco Software Inc. Intra-process message switch
WO2001082561A1 (en) * 2000-04-20 2001-11-01 Nokia Corporation A communication terminal
US6553438B1 (en) * 2000-04-24 2003-04-22 Intel Corporation Methods and system for message resource pool with asynchronous and synchronous modes of operation
US6647428B1 (en) * 2000-05-05 2003-11-11 Luminous Networks, Inc. Architecture for transport of multiple services in connectionless packet-based communication networks
FR2824215B1 (fr) * 2001-04-27 2003-07-18 Canon Kk Procede et dispositif de traitement d'un message dans un reseau de communication
US7577631B2 (en) * 2001-09-10 2009-08-18 Feldhake Michael J Cognitive image filtering
US7464138B2 (en) * 2002-03-29 2008-12-09 International Business Machines Corporation Mirror queue in a shared queue environment
US7404061B2 (en) * 2005-02-14 2008-07-22 Jordan David A Permanent pool memory management method and system
US7653070B2 (en) * 2005-06-07 2010-01-26 Broadcom Corporation Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8095847B2 (en) * 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8249072B2 (en) * 2009-03-12 2012-08-21 Oracle America, Inc. Scalable interface for connecting multiple computer systems which performs parallel MPI header matching
US8387067B2 (en) * 2008-03-14 2013-02-26 Lsi Corporation Method for tracking and/or verifying message passing in a simulation environment
WO2010006696A2 (en) * 2008-06-30 2010-01-21 University Of Oslo Method for event-based intergration using on-the-fly matching
US8843651B2 (en) * 2009-06-30 2014-09-23 Oracle America, Inc. Software aware throttle based flow control
US9596186B2 (en) * 2009-06-30 2017-03-14 Oracle America, Inc. Multiple processes sharing a single infiniband connection
US8095617B2 (en) * 2009-06-30 2012-01-10 Oracle America Inc. Caching data in a cluster computing system which avoids false-sharing conflicts
US8122301B2 (en) * 2009-06-30 2012-02-21 Oracle America, Inc. Performing remote loads and stores over networks
US8234407B2 (en) * 2009-06-30 2012-07-31 Oracle America, Inc. Network use of virtual addresses without pinning or registration
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US9146776B1 (en) 2011-08-16 2015-09-29 Marvell International Ltd. Systems and methods for controlling flow of message signaled interrupts
US9128920B2 (en) * 2011-11-30 2015-09-08 Marvell World Trade Ltd. Interrupt handling systems and methods for PCIE bridges with multiple buses
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US9582426B2 (en) * 2013-08-20 2017-02-28 International Business Machines Corporation Hardware managed compressed cache
US9325658B2 (en) * 2014-02-05 2016-04-26 International Business Machines Corporation Providing contextual relevance of an unposted message to an activity stream after a period of time elapses
US9442941B1 (en) * 2014-03-28 2016-09-13 Emc Corporation Data structure for hash digest metadata component
US9836587B2 (en) * 2014-05-20 2017-12-05 2236008 Ontario Inc. System and method for granting permission for a machine action
US10574733B2 (en) * 2015-09-18 2020-02-25 Intel Corporation Technologies for handling message passing interface operations
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10324782B1 (en) 2016-03-24 2019-06-18 Emc Corporation Hiccup management in a storage array
US10705907B1 (en) 2016-03-24 2020-07-07 EMC IP Holding Company LLC Data protection in a heterogeneous random access storage array
US9857990B1 (en) 2016-03-24 2018-01-02 EMC IP Holding Company LLC Fast startup for modular storage systems
US10101934B1 (en) 2016-03-24 2018-10-16 Emc Corporation Memory allocation balancing for storage systems
DE102016206109A1 (de) * 2016-04-13 2017-10-19 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit
US10152371B1 (en) 2016-09-30 2018-12-11 EMC IP Holding Company LLC End-to-end data protection for distributed storage
US10255172B1 (en) 2016-09-30 2019-04-09 EMC IP Holding Company LLC Controlled testing using code error injection
US10223008B1 (en) 2016-09-30 2019-03-05 EMC IP Holding Company LLC Storage array sizing for compressed applications

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723208A (en) * 1981-07-31 1988-02-02 Norand Corporation System and method for communication between nodes of a closed loop local communication path
US5377327A (en) * 1988-04-22 1994-12-27 Digital Equipment Corporation Congestion avoidance scheme for computer networks
GB8821410D0 (en) * 1988-09-13 1988-10-12 Int Computers Ltd Data processing system
US5167019A (en) * 1989-06-23 1992-11-24 Digital Equipment Corporation Apparatus and method for interconnecting a plurality of devices to a single node in a node-limited serial data bus computer network
AU639088B2 (en) * 1990-04-13 1993-07-15 Digital Equipment Corporation Telecommunications network with plesiochronous transfer mode
EP0608653A1 (en) * 1993-01-26 1994-08-03 International Business Machines Corporation Method and system for routing information between nodes in a communication network
US5530806A (en) * 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510491B1 (en) * 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
JP2009193430A (ja) * 2008-02-15 2009-08-27 Toshiba Corp 通信制御装置、情報処理装置およびプログラム
US8423689B2 (en) 2008-02-15 2013-04-16 Kabushiki Kaisha Toshiba Communication control device, information processing device and computer program product
WO2021161909A1 (ja) * 2020-02-13 2021-08-19 ソニーセミコンダクタソリューションズ株式会社 送信装置、受信装置および通信システム

Also Published As

Publication number Publication date
JP3697831B2 (ja) 2005-09-21
US6125399A (en) 2000-09-26

Similar Documents

Publication Publication Date Title
JP3697831B2 (ja) コンピュータシステム
JP4516941B2 (ja) プロセッサとメモリ・フロー・コントローラとの間でコマンド・パラメータを通信するためのシステム、方法、コンピュータ・プログラム、および装置
US5925099A (en) Method and apparatus for transporting messages between processors in a multiple processor system
US7533197B2 (en) System and method for remote direct memory access without page locking by the operating system
US5752078A (en) System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US9047093B2 (en) Data transfer bus communication to receive data by sending request instruction attached with identifier indicating processor and thread context identities
EP0592117A2 (en) Asynchronous inter-process communications arrangement
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
US20080109573A1 (en) RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
JPH06309252A (ja) 相互接続インタフェース
US6862595B1 (en) Method and apparatus for implementing a shared message queue using a list structure
JP4317365B2 (ja) 周辺デバイスからホスト・コンピュータ・システムに割込みを転送する方法および装置
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
JPH08180001A (ja) 通信方式及び通信方法及びネットワークインタフェース
JPH11175454A (ja) 自動直接メモリ・アクセス機能を備えたコンピュータ・システム
JPH06511585A (ja) データ伝送の自動開始装置
JP2002182976A (ja) マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
JPH11175455A (ja) コンピュータ・システムにおける通信方法及び装置
US5625800A (en) SCB array external to a host adapter integrated circuit
US5901328A (en) System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area
US6253274B1 (en) Apparatus for a high performance locking facility
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
US5386514A (en) Queue apparatus and mechanics for a communications interface architecture

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050627

LAPS Cancellation because of no payment of annual fees