JP3553634B2 - 相互接続インターフェース - Google Patents

相互接続インターフェース Download PDF

Info

Publication number
JP3553634B2
JP3553634B2 JP06758494A JP6758494A JP3553634B2 JP 3553634 B2 JP3553634 B2 JP 3553634B2 JP 06758494 A JP06758494 A JP 06758494A JP 6758494 A JP6758494 A JP 6758494A JP 3553634 B2 JP3553634 B2 JP 3553634B2
Authority
JP
Japan
Prior art keywords
message
interface
interconnect
packet
slot
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.)
Expired - Lifetime
Application number
JP06758494A
Other languages
English (en)
Other versions
JPH06309252A (ja
Inventor
アンドリュー・ジョン・ウィルクス
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH06309252A publication Critical patent/JPH06309252A/ja
Application granted granted Critical
Publication of JP3553634B2 publication Critical patent/JP3553634B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Description

【0001】
【産業上の利用分野】
この発明は、データ処理システムに関するものであり、より詳細にはマルチプロセッサ式のデータ処理システムにおいて用いるための改良された通信システムにおける相互接続インターフェースに関するものである。
【0002】
【従来の技術】
一つのクラスのマルチプロセッサ式のデータ処理システムは、ある一つの相互接続組織によって接続された複数のプロセッサノードからなるものである。各プロセッサのノードに典型的に含まれているものは、一つのプロセッサ及びローカルRAMである。高速の相互接続組織によれば、ノード間での通信が維持される。ある一つの演算上の問題が複数のノード間で分割されて、異なるノードにおいて利用可能な特別の資源を用いることによってその効率性を改善し、又は、ある一つの結果が利用可能であるのに先だって経過されねばならないリアルタイムを改善するようにされる。従って、一つのノード上で実行するプロセスは、該当のシステムの他のノードにおいて実行される演算に依存することになる。種々のプロセスが相互接続組織を介して通信され、情報の交換がなされるとともにプロセスの同期がとられる。
【0003】
このようなシステムの実行能力のレベルは、第1のノード上を実行するプロセスから第2のノード上を実行するプロセスへと、メッセージを伝送することができる速度に依存している。各ノードに典型的に含まれているインターフェース回路は、メッセージの送信及び受信を管理するものである。先行技術の通信システムにおいては、メッセージを受信しているノードが、該当のメッセージが受信されたか否かの制御をする。第1のノード上のプロセスが第2のノード上のプロセスへのメッセージの伝送を所望するときには、第1のノード上のインターフェース回路が相互接続組織を介してメッセージを伝送し、そして、第2のノードにおけるインターフェース回路からの確認(acknowledgement )を待つ。
【0004】
【発明が解決しようとする課題】
該当のメッセージが第2のノード上のインターフェース回路に到達したときには、メッセージが受信されるか、又は、該メッセージが失われるかの二つの可能性がある。ノードがビジー過ぎるか又はメッセージを処理するのには満杯であるときには、このッセージは失われることになる。受信側は、メッセージが失われたことを指示するメッセージを戻すか若しくは沈黙の状態に留まる。いずれの場合にしても、送信側はある時間の経過後に該当のメッセージを再送せねばならない。不都合なことに、送信側には別の通信を試行するための最適の時点を定める手段が備えられていない。その理由は、最適の時点で要求されることは受信側のノードにおいて実行しているプロセスについての知識であり、これらのプロセスは送信側には明白ではないことにある。その結果として、この送信は、典型的には、ある所定の時間だけ待機し、これに次いで別の通信を試行するようにプログラムされている。送信の通信開始が早すぎるときには、受信側はまだビジー状態にあり、メッセージは再び失われることになる。メッセージが伝送され、失われる度に、相互接続組織の使用の効率性が低下される。この低下した効率性により、他のノードで実行している他のプロセスがより遅くなるようにされるが、その理由は、これら他のプロセスは、相互接続組織における十分なバンド幅を最大の速度で実行するようにアクセスできないことにある。メッセージを再送する前の送信の待機時間が長過ぎるときには、第1のメッセージの主題として委任されたタスクの結果を含む第2のノードからの戻りのメッセージを待機して止められていることから、この送信上のプロセスは、より低い最大速度で実行することができる。
【0005】
メッセージが第2のノードによって受け入れられるときであっても、この先行技術の通信技術はまだ非効率のものである。ある一つのメッセージが受信側に到達すると、受信側におけるインターフェース回路がプロセッサを中断して、入来するメッセージを扱う必要のあることが、このセッサに対して告知される。このメッセージが長いものであるときには、それは典型的には幾つかのブロックに分割される。各ブロックの到達により典型的には個別の中断が発生される。これらの中断を処理することにより、プロセッサが他のタスクに関してビジー状態にある場合の、このプロセッサのスループットに重大な低下が生じるようにされる。原理的にいえば、幾つかのブロックに分割された一つの長いメッセージに関連する中断は、その最大のメッセージを格納するのに十分なバッファを備えたインターフェース回路を用いることによって回避することができる。しかしながら、このようなシステムでも、まだメッセージ毎に1回だけプロセッサを中断させる。これに加えて、受信側では、入来するメッセージが受信側のローカルメモリに配置されるべき場所及びこのメッセージを移動させる際の受信側のローカルメモリにおけるそれらの宛先を定めるために、典型的に著しく長い処理時間を費やす。
【0006】
また、先行技術によるこのタイプのシステムは、送信の観点からも非効率のものである。第1に、プロセスにおいてメッセージの伝送が所望される毎に、オペレーティングシステムの呼出しを求めることによって実行されねばならない。多くのプロセスが単一のノード上を実行しているときには、他のプロセスにより用いられて、一つのプロセスを悪化させる資源の可能性が常に存在する。一つのプロセスがインターフェース回路及び/又は相互接続組織に対する無制限のアクセスを有するときには、このような悪化は可能性があるものである。これに加えて、保護がなされねばならないものは、第2のノード上でプロセスを「アタック」し、又は、相互接続組織に優越する第1のノード上のプロセスに対してである。先行技術においては、これらの保護は典型的にはオペレーティングシステム内で構築されている。通信の受信側においては、そのオペレーティングシステムにより、受信側のメモリに書き込むことの許容がテストされる。送信側においては、そのオペレーティングシステムにより、一つのプロセスが他のプロセスとして仮装することを停止される。不都合なことに、オペレーティングシステムの呼出しにより、通信のプロセスが低速にされる。
【0007】
先行技術に係る別の問題は、初めてオンラインになったとき、システムが新規なプロセッサノードの弱点であることにある。新規なプロセッサがマルチプロセッサシステムに付加されたときには、それは保護されない状態で起動される。この時間中は、それは誤りをともなってロードされ、その結果として不可能化される。先行技術においては、この問題に対する解決策として利用可能なものはない。
【0008】
先行技術の相互接続システムに係る更に別の問題は、規則的なメッセージを搬送する同じ相互接続組織を用いることにより、プロセスに待ち時間の短い(low-latency )同期化を付与する技術が欠如していることである。異なるノードを実行させるプロセスを同期化させることは重要なことが多い。例えば、多くの適用において、プロセッサの全てによって用いられるデータ値を変更することは、一時に一つのプロセスだけに与えることができる。先行技術のシステムにおいては、個別の相互接続組織を通して、又は、オペレーティングシステムの呼出しを介してのいずれかによって同期が与えられる。前者の解決策によれば相互接続組織のハードウエアのコストが著しく上昇することは明かであり、また、後者の解決策は多くの適用に対して遅過ぎるものである。
【0009】
広範な言い方をすれば、この発明の目的は、改良されたマルチコンピュータの相互接続インターフェースを提供することにある。
【0010】
この発明の別の目的は、受信側がビジー状態にあるために失われるメッセージの数が、先行技術のシステムと比較して著しく減少される相互接続インターフェースを提供することにある。
【0011】
この発明の更に別の目的は、既にビジー状態にあるときに、受信側が入来メッセージによって中断されることがない相互接続インターフェースを提供することにある。
【0012】
この発明の更に別の目的は、メッセージを伝送する間にシステム上の他のプロセスからの偶発的な又は悪意のあるアタックから各プロセスを保護するための、オペレーティングシステムの呼び出しが必要とされない相互接続インターフェースを提供することにある。
【0013】
この発明の更に別の目的は、入来メッセージを受信側のメモリに格納する場所を定めるために、受信側で消費される時間量が節減される相互接続インターフェースを提供することにある。
【0014】
この発明の更に別の目的は、規則的なメッセージトラフィックのために用いられるのと同じ相互接続組織を用い、集積化され、保護され、待ち時間の短い同期化操作がなされる相互接続インターフェースを提供することにある。
【0015】
【課題を解決するための手段】
この発明は、ある一つのホストコンピュータを複数のホストコンピュータを含むマルチコンピュータのデータ処理システム内の相互接続組織に接続させるための相互接続インターフェースである。ホストコンピュータは相互に通信する相互接続組織に接続されている。それぞれのホストコンピュータは、相互接続組織上でメッセージの送信及び受信をすることにより、同種の相互接続インターフェースを有する他のホストコンピュータと通信する。それぞれのメッセージには一つ又は複数のパケットが含まれており、それぞれのパケットには、パケット本体、パケット識別情報、保護キー及びスロット識別値である。相互接続インターフェースに含まれているものは、一つの受信用ターミナル及び一つ又は複数の送信用ターミナルである。受信用ターミナルにおいては、相互接続組織に接続されている他のコンピュータからのメッセージを受信する。受信用端末には複数のレコードを格納するためのスロットテーブルが含まれており、それぞれのレコードは、相互接続組織上を伝送されるメッセージに含まれているスロット識別値の可能性のある一つのものに対応している。各レコードに含まれている情報は、ホストコンピュータのメモリにおける対応領域の位置及びサイズを識別するものである。メモリのこの領域は、対応するスロット識別値を有する受信したメッセージを格納するために用いられる。各レコードには、保護キー及び入来メッセージの構成を特定する情報も含まれている。ある一つの特定のレコードを参照する入来メッセージ内の保護キーは、レコードに格納されている保護キーに合致せねばならない。ある一つの受信用ターミナルは、パケットにおける保護キーがレコードに格納されている保護キーと合致したときには、相互接続組織を介して受信されたパケットを、入来メッセージ内のスロット識別値に対応するレコードにおいて識別されるホストコンピュータのメモリ領域に格納する。受信用ターミナルには、ホストコンピュータによる処理を待機している受信メッセージを特定する情報を格納するための複数のリストも含まれている。
【0016】
送信用ターミナルは、相互接続組織上でメッセージを伝送するために用いられる。各送信用ターミナルに含まれている保護レジスタは、送信用ターミナルによって伝送されるメッセージのパケットに含まれるべき送信用保護キーを格納するためのものである。各送信用ターミナルに設けられるものは、相互接続組織上をメッセージの意図された受信側に伝送されるべき、メッセージの位置上の情報である。送信用ターミナルにおいてはメッセージのためのパケットが発生され、そして、相互接続組織を介してパケットが伝送される。各パケットには送信用の保護キーが含まれている。この発明の好適な実施例においては、保護キーが格納されるレジスタはオペレーティングシステムによってのみ書き込むことが可能にされる。
【0017】
【実施例】
図1は、この発明による相互接続インターフェースシステムが用いられる典型的なマルチプロセッサシステムのブロック図である。データ処理システム10には複数のプロセッサノード(以下、ノードという)が含まれている。例示的なノードは12及び14で示されている。各ノードにはローカルRAM16を有するホストコンピュータであるプロセッサ15が含まれている。ある一つの特定のノードにおけるプロセッサは、相互接続組織11を介して他のノードにおけるプロセッサとの通信をする。該当する技術においては多様なインターフェース組織の設計が知られている。ここでの検討の目的のためには、相互接続組織11がある一つの送信用ノードからある一つの受信用ノードまでの経路を提供することを注意すれば十分である。それぞれの処理用ノードは、相互接続インターフェース17を介して相互接続組織11に接続されている。
【0018】
この発明と先行技術の相互接続インターフェースとの間の一つのキーの差異は、送信側と受信側との間の通信をいずれの相互接続インターフェースが制御するかの識別をすることにある。先行技術の設計においては、受信側が制御することは、受信側に対するメッセージの伝送が成功したかどうか、及び、受信側のメモリのどこにこのメッセージが配置されたかということである。一般的にいって、各インターフェース回路は、そのノードにおいてメモリのブロックを制御する。典型的には、メモリの一部はインターフェース回路内にあり、メモリの一部はローカルRAM内にある。先行技術のシステムにおいて、ある一つの特定のノード上でメモリの割当てをすることは、問題のノードにおける相互接続インターフェース及び/又はプロセッサによって制御される。利用可能なメモリがフルであるとき、又は、インターフェース上を到来するメッセージを処理するために、プロセッサがより優先度の高いタスクによってビジー過ぎるときには、先行技術においてはメッセージが失われることになる。
【0019】
この発明に係る相互接続インターフェースを用いるシステムにおいては、各潜在的な送信は、受信側でのメモリの部分を管理する。このメモリは送信側によって伝送されるデータを格納するために用いられる。ノード12上でのプロセスに対する特定のタスクを実行するためにノード14上でのプロセスに命令を出す、ノード12からノード14へのメッセージについて考察する。ノード12上での相互接続インターフェース17はメッセージが挿入されるべきスペースのブロックを管理していることから、ノード12上での相互接続インターフェースは、ノード14にメッセージのためのスペースがあることを「知る」。ノード14上でのプロセスがそのタスクを完了したときには、受信側のプロセスは通常は「タスク処理完了(done with task)」メッセージを伝送する。このメッセージは、また、該当のタスクを開始させたメッセージのために用いられたメモリが現在はフリーであることを、ノード12上での相互接続インターフェースに信号を出すためにも用いられる。このために、ノード12上での相互接続インターフェース17は、各潜在的な受信側に割り当てられるメモリの状態を常に知っていることになる。送信側としては受信側での送信の資源の状態を知っていることから、メッセージを受信するために受信側で割り当てられたメモリが不十分であるときには、送信側はメッセージの伝送を回避することができる。このために、受信側でのスペースの欠如のためにメッセージが失われる問題は、この発明によって回避される。
【0020】
また、この発明に係る相互接続インターフェースによれば、ホストがビジー過ぎて、新規なメッセージが到来した旨の信号を出して中断をするサービスができないときに、ホストの中断の防止もする。この発明を用いるデータ処理システムにおいては、相互接続インターフェースで導出されたタスクについて作業していないときにのみ、相互接続インターフェースによりそのノードにおけるプロセッサの中断がなされる。ホストプロセッサが相互接続インターフェースを介して伝送されたタスクについて既に作業をしているときには、ホストプロセッサを中断することなく、新規のメッセージが作業キューに対して付加される。この発明の実施例では、実行されているタスクよりも優先度が低い相互接続インターフェース導出のタスクについてホストプロセッサが作業しているときに、中断がホストプロセッサに伝送されることも、当業者には明かなことである。
【0021】
ここで、この発明に係る相互接続インターフェース100の部分のより詳細なブロック図である図2を参照すると、データ及びプログラムの格納のためのローカルRAM103がホストコンピュータである中央演算装置(以下、CPUと記す)102が含まれているプロセッサに対する相互接続組織からのメッセージを受信するようにされている。送信用ターミナル、受信用ターミナルとしての機能を含む相互接続インターフェース100に含まれているインターフェースである相互接続組織インターフェース104は、相互接続組織上でメッセージを送受信するためのものである。相互接続組織インターフェース104によれば、相互接続組織上でデータを実際に伝送することが必要とされる種々のプロトコルが管理される。このような相互接続組織インターフェースは当業者には周知のことであるから、ここではインターフェース104について詳述しない。また、相互接続インターフェース100には受信制御手段であるコントローラ105も含まれていて、下記に説明される種々の論理的な動作がなされる。コントローラ105も、該当の技術においては通常のものである。
【0022】
これも相互接続インターフェース100に含まれている固有のローカルメモリ106は、入来するメッセージに関連した情報を格納するために用いられる。スロット107のレコードを格納するためのスロットテーブルとしてのローカルメモリ106には、「スロット」として参照される複数のレコードが含まれている。例示的なスロットは107において示されている。各スロットに格納されている情報は、相互接続組織上の相互接続インターフェース100に接続されているある一つの特定のプロセッサに割り当てられたローカルRAM103におけるメッセージ領域を記述するためのものである。ある一つのスロットに格納された情報にはローカルRAM103におけるアドレスが含まれており、問題のプロセッサからのメッセージはここで格納され、また、その量のスペースが割り当てられることになる。
【0023】
これも各スロットに含まれている保護キーは、誤指向のメッセージに対して保護を与えるためのものである。メッセージ内の各入来パケットが、このメッセージにおいて特定されたスロットに格納されたと同じ保護キーを有していることを要求することにより、保護を与えることがなされる。
【0024】
これも各スロットに含まれているスペースは、当該スロット内のデータによって制御される受信メッセージの構成を特定する情報を格納するためのものである。ある一つの特定のメッセージに対して、このスペースは2個のサブグループの値に分割されているものとして観察される。その第1のサブグループにおいては、ある一つの受信メッセージについての事項が特定される。これに含まれるものは、該当するメッセージの長さ、及び、このスロットによって制御されるメモリブロックの始まりに関してメッセージが始まる位置である。その第2のサブグループは、マルチパケットメッセージの受信を制御するために用いられる。
【0025】
上述された実施例ではローカルメモリ106に格納されたスロット「テーブル」が用いられているけれども、当業者には明かであるように、実際のテーブルをローカルメモリとしてのローカルRAM103に格納することができる。この場合において、スロットテーブルからのエントリは、キャッシュメモリにおいて用いられるのと類似の態様で、ローカルRAM103との間で移動することができる。
【0026】
長文のメッセージは典型的にはパケットに分割されて、相互接続組織を介して個別に伝送される。多くのインターフェース組織はパケットからパケットへと変化する予測不能な通過時間を有しているために、ある特定のメッセージに対するパケットの到着は順不同になる。ある時点において唯一のメッセージだけがある一つの特定のスロットに伝送されている、という簡単な場合について考察してみる。コントローラ105は、該当のメッセージが完全である時点を決定できねばならない。このタスクにおいてコントローラ105を助けるためには、各々のスロットにはメッセージ識別フィールド及びカウンタ用のフィールドが含まれており、メッセージ識別フィールドに格納されている識別値を有するメッセージに対して受信されるべく残留しているパケットのトラックが維持される。送信側がメッセージの伝送をセットアップすると、メッセージ識別及びパケットカウントがこれらのフィールドにロードされる。
【0027】
新規なメッセージの到着は、残っているパケットのカウントが0であることによって検知される。新規なメッセージの到着では、メッセージ内のパケットのカウントは0ではない。このパケットのために、パケット残留カウンタは、該新規なメッセージ及び再ロードされるべきメッセージ識別フィールドに対応するカウントに適切にセットされるようになる。このメッセージに対する各連続するパケットはカウントが減少するようになる。より詳細に後述されるように、いずれのパケットでも相互接続組織において遅れる可能性があることから、相互接続インターフェースは、メッセージのパケットが、いかなる既知の順序でも受信されることを予測することはできない。このために、各々のパケットは、スロット情報のセットアップのために必要な、全ての決定的な情報を反復する。例えば各々のパケットに含まれているものは、メッセージ内のパケットの数、問題のパケットのパケットナンバー、メッセージ識別値及び保護キーである。
【0028】
メッセージ識別フィールドは、メッセージの再伝送の間のエラーを回避するために用いられる。メッセージの伝送の間にエラーが生じたときには、送信側はメッセージの再伝送をするように指示される。受信側は、再伝送の間に到着する先行の試行からパケットを防護し、パケット残留カウンタが誤って減少することがないようにせねばならない。先行するメッセージのパケットの一つが相互接続組織内で遅れるときには、このような状況が生起する可能性がある。このような状況を回避するために、メッセージ識別フィールドは、それぞれの新規なメッセージの始めにおいて再ロードされる。先行するメッセージからの遅いパケットは、そのメッセージ識別フィールドにおいて異なる値を有していることから、遅いパケットは無視される。
【0029】
上記の説明では、スロット毎に進行しているメッセージは一つだけであるとされた。各スロットに対して多くのメッセージが進行することが許容される場合には、各スロットに含まれるものは、許容されたメッセージ毎の、複数のメッセージ識別フィールド及びパケットカウントフィールドである。ローカルRAM103におけるオフセット及びメッセージ長フィールドも、可能性のある多くのメッセージの各々に対して含まれる。
【0030】
これに加えて、多くのメッセージが存在するときには、各スロットに対してメッセージカウントが格納される。このメッセージカウントにより、ホストコンピュータとしてのCPU102に対するメッセージ到着の告知が、指示された数のメッセージが到着した後でのみなされることを、送信側に対して特定化するために許容するようにされる。このフィールドに対するデフォルト値は0である。即ち、各入来するメッセージにおける受信側に告知するようにされる。カウントが0よりも大きい値にセットされたときには、カウントは各完了したメッセージ上で減少し、カウントが0に到達したときにのみ告知がなされる。
【0031】
メッセージが完全に受信されたときには、コントローラ105は、告知のレコードを作業キュー108に配置する。CPU102が先行のメッセージに応答して既に満杯であるときには、中断が生起することはない。この場合において、CPU102は、作業キュー108を介して受け入れたタスクが終了した後で、作業キュー108をチェックするようにプログラムされている。メッセージが完了したときに、CPU102が相互接続インターフェースで導出されたタスクについて作業していなかったとすると、CPU102はCPU102に対する中断を発生させて、メッセージが待機している旨をこのCPUに告知するようにされる。
【0032】
コントローラ105は、また、種々のプロトコルエラーに対する入来メッセージのチェックもする。例えば、プロセッサに対して割り当てられたメモリ領域に対して長過ぎるメッセージの伝送要求、誤りの保護キーを有するパケット等に対するチェックをする。エラーの状態は、好適には、送信側よりもメッセージを受信する側で処理される。エラーが受信側において検出されたときには、受信側のオペレーティングシステムは、更に別の問題が送信によって発生されることを防止するための動作をするように告知される。誤りのあるメッセージを発生させる問題を送信側が有しているときに好適であることは、該メッセージの受信側が、マルチプロセッサの環境を管理するオペレーティングシステムの部分に対して、このような状態の存在を指示することである。オペレーティングシステムのこの部分は、これに次いで、欠点のあるノードを再ブートさせるための動作をすることができる。送信側がこのようなエラーをしているときには、それ自体でそれらを訂正することに依存することはできない。実際のところ、エラーは伝送ノードにおける悪意のあるプロセスの結果である可能性がある。後の場合においては、伝送ノードから離れるような制御がされねばならない。
【0033】
上述された実施例では相互接続インターフェースに格納された単一の作業キューが用いられているけれども、当業者には明かであるように、異なる優先度を有する多くの作業キューを用いることができる。これに加えて、実際の作業キューはホストメモリ、すなわちローカルRAM103に配置することができる。この場合においては、作業キューに対するポインタが相互接続インターフェースに格納されることになる。
【0034】
この発明による相互接続インターフェースの受信部分についての上述された実施例は、小さいメッセージに対して最も良好に使用される。その理由は、この実施例においては、ローカルRAM103における物理的メモリが、送信側がメッセージを伝送できる全体的な時間的周期にわたり、それぞれに有効な可能性のある送信側に対して割り当てられることにある。メモリの大きさは、対応の送信から予測される最長のメッセージを受信するのに十分なものでなければならない。
【0035】
大きいデータの伝送のために、この発明による相互接続インターフェースにおいては、伝送と同時にスペースが割り当てられるプロトコルが好適に用いられる。この状況においては、送信側は、受信する側が要求するスペースにおいて、オペレーティングシステムに対してメッセージを伝送する。受信側のオペレーティングシステムがスペースを割当て、そして、それを記述した情報を新規なスロットに配置する。これに次いで、スロットナンバー及び保護キーが、伝送を実行する際に用いられる希望の送信に対して戻される。データが受信側において処理されるときには、スロットが再指定されて、メモリ(ローカルメモリ)が他の使用に戻される。
【0036】
その開始において、各ノードには、システム内の他のノードと互いにメッセージのサービスをするための最低限の大きさのメモリが割り当てられ、これらのメモリブロックを指摘するためにローカルメモリ106における対応のスロットが初期化される。このために、システムがパワーアップされたときには、各ノードは全ての他のノードからのメッセージを受信できるようにされる。これらの初期的なスロットは、ブートストラップスロットととして参照される。
【0037】
ブートストラップスロットに対して選択されるキーは、スロットが割り当てられるノードアドレスを伝送する機能である。初期のキーは、いずれのノードでもキーを算出できるように選択される。しかしながら、可能性のあるキーから用いられるキーの数は、劣性のあるノードが偶発的にキーを発生させる公算が小さいように、十分に小さいものとされる。新規なノードの始めの動作は、より低い予測性の態様において導出されるものに対して、これらのキーにおける変更を協議することである。このようにすることで、あるノードにおける悪意のある処理(例えば、ウイルス)に対する防護が付与されて、他のノードに対するメッセージの伝送が可能にされる。
【0038】
実行中のシステムに対するノードの動的な付加は、通常のブートストラップと同じやり方で達成される。ある一つのノードは、それと通信していないノードと、システムを排除された(又は付加されなかった)ものとの間の差異を決定することができない。このために、各ノードがローカルメモリとシステム内に潜在的に存在する可能性があるすべてのノードに対するスロットとを保留するときには、新規なノードは常に付加されることができる。
【0039】
最大数のノードは大きいけれども、活動的なノードの数が小さいときには、この手順により、各ノードにおけるメモリについて、受け入れ難い大きさの無駄が生じる可能性がある。この無駄を回避するために、幾つかのノードは「ブートサーバ」として指定されることができる。全ての可能性のあるノードのために、メモリはこれらのノードに割り当てられる。ブートサーバにより、いずれのノードが活動的であるかが決定される。他のノードに保留されるスロットは、活動的であるとして知られているノードに対するだけのものである。ある一つの新規なノードがオンラインにされると、この新規なノードは、それに応答するブートサーバに対するシステムを探索する。ブートサーバは、これに次いで、ノードにおけるオペレーティングシステム間での通信のためのスロットを割り当てることを開始する他のノードに対して、新規なノードの存在を通知する。
【0040】
一つのノードにおいて実行中のプロセスが、他のノードにおいて動作しているプロセスに対してメッセージの伝送を所望したとすると、この希望の伝送プロセスにより、そのノードにおけるオペレーティングシステムに対するセットアップの要求がなされる。オペレーティングシステムにより、メッセージの戻りに対する送信側のノードにおけるスロットが設定され、これに次いで、受信側ノードにおけるオペレーティングシステムに対する開始の間に、オペレーティングシステムのスロットセットアップに対して、オペレーティングシステムを介してメッセージが伝送される。受信側ノードにおけるオペレーティングシステムは、これに次いで、伝送側のプロセスに対するスロットを設定し、受信側のプロセスに対して、制御される送信側におけるスロットの数を告知する。
【0041】
この発明による相互接続インターフェースが他の相互接続インターフェースからのメッセージを受信するやり方について上記のように説明してきたが、これからは、送信及び受信の双方において相互接続インターフェースによって用いられるデータ構成及びコントロールレジスタについて、より詳細な検討をする。この発明を用いるデータプロセッサにおいては、全ての通信は、ターミナルとして参照される端点を介して実行される。図3のブロック図は、この発明による相互接続インターフェース300の好適な実施例を示すものである。相互接続インターフェース300に備えられているものは、一つの受信用ターミナル302及び一つ又は複数の送信用ターミナル303である。ターミナルの全ては、ホストコンピュータのメモリにおける参照位置に対する単一のメモリマッピングテーブルを共有しており、また、この発明において用いられる種々のレジスタが、ホストコンピュータにおけるメモリアドレスとして現れている。かくして、ホストコンピュータは、ロード命令及び格納命令をそれぞれに介して、種々のレジスタの読み取り及び書き込みをすることができる。また、メモリマッピングテーブルは、種々のレジスタに対するアクセスを制限する手段も付与するようにされる。オペレーティングシステムにのみアクセス可能なアドレスにレジスタを指定することにより、レジスタを駄目にする誤りのあるプロセスの可能性が著しく低下される。インターフェース手段としてのインターフェース・ハードウェア308により、相互接続組織に対するインターフェースが付与される。
【0042】
一般的に、ターミナルで格納又は抽出されるメッセージは、それぞれに、ホスト・コンピュータ・メモリ304で受け入れられ、又は、これから送出されるものである。この配列により、種々のターミナルにおける中間バッファに対するメッセージの転送コストが軽減される。インターフェース・ハードウェアは図2においては100で示されているものであり、上記されたインターフェース・ハードウェア受信用ターミナルの一例である。
【0043】
この発明による好適な実施例において用いられる送信用ターミナルは、DMA(ダイレクトメモリアクセス)モード及びダイレクトモードとして参照される二つの異なるモードで動作することができる。図4のブロック図は、送信用ターミナル400を示すものである。送信用ターミナル400によって実行される種々の動作は、受信制御手段であるコントローラ401によって制御される。DMAモードにおいて、送信用ターミナルは、好適にはホストコンピュータシステムメモリの一部である入力キュー408からの作業をする。より詳細に後述されるように、入力キューに含まれているディスクリプタのリストは、相互接続組織を介して伝送される用意のある、ホスト・コンピュータ・メモリにおけるメッセージの位置を特定するものである。これらのメッセージは適当な順序でコントローラ401により処理される。ダイレクトモードにおいては、相互接続組織を介して伝送されるべき単一のメッセージが、ダイレクト送信レジスタ406の内容によって識別される。メッセージはバッファ400が典型的である一つ又は複数のFIFO(先入れ先出し)バッファ409に格納されている。ダイレクトモードは典型的には短い待ち時間を必要とする短いメッセージのために用いられる。
【0044】
先に記載されたように、多くのプロセスがシステムの各ノードで実行することができるマルチコンピュータシステムにおいて、防護の事項は極めて重要なことである。システムは、異なるプロセスを装い、また、システムの他のノードにおいて格納されているデータを駄目にする一つのノードにおける誤りのあるプロセスから保護されねばならない。通信の防護を確実にするこの発明によって用いられる一つの方法は、各メッセージに保護キーを含ませることである。このメッセージにおける保護キーの値は、受信側ノードの受信用ターミナルにおける対応のエントリの値と合致せねばならない。このレジスタは、送信用ターミナルに接続されたノードにおけるオペレーティングシステムによって書き込まれるだけである。保護キーのレジスタは「信託された」オペレーティングシステムソフトウエアによってのみアクセスされることから、誤りのあるメッセージを伝送することによって他のノードにおけるプロセスを駄目にできる、一つのノードにおいて実行しているプロセスの可能性が著しく低減される。
【0045】
DMAモードで動作しているときには、ターミナルのメッセージ伝送は、ホストメモリから相互接続組織に対して直接的になされる。保護レジスタ、レジスタセット402は、このモードの動作に必要とされる種々の値を格納するために設けられている。ターミナルによって完成されるべき伝送タスクのリストは、ノードのローカルRAM内に配置されたDMA入力キュー408に格納されている。各タスクに含まれているものは、ターミナルを介して伝送されるべきメッセージの記述である。この記述は、以下の検討においてはセンド・ワーク・ディスクリプタ(send-work-descriptor)として参照される。キューの位置及びサイズを特定するデータは、レジスタセットとしてのDMAレジスタ402におけるレジスタに格納されている。この情報は、オペレーティングシステムによってのみ書き込まれるものである。DMAレジスタ402に含まれているポインタは、DMA入力キューにおいてターミナルによって調査された最後のセンド・ワーク・ディスクリプタの物理アドレスに対するものである。
【0046】
この発明の好適な実施例におけるセンド・ワーク・ディスクリプタの内容は4個のフィールドに分割される。その第1のフィールドでは、意図された受信が識別される。これに含まれているものは、このーバのノードの識別、受信側のメモリ受け入れターミナルにおけるスロットの数、及び、問題のメッセージが受信側のメッセージスペースに配置されるべきアドレスを特定するオフセットである。その第2のフィールドで識別されるものは、送信側のメモリにおける物理アドレスに対するポインタ、及び、このポインタによって特定された送信のメッセージスペースにおけるメッセージのオフセットである。その第3のフィールドはメッセージタイプを特定するために用いられる。この発明の好適な実施例において、メッセージは、伝送メッセージ又は「リモートゲット(remote-get)」メッセージのいずれかである。ある一つのリモートゲットメッセージのために、受信側のメモリにおいて特定された領域のコピーが、送信側に戻るように伝送される。このプロトコルは、データを含む戻りメッセージによって追従される、受信側からのデータを要求するメッセージと同等のものである。しかしながら、この場合においては、受信側におけるインターフェース・ハードウェアにより、受信側を擾乱させることなく戻りメッセージが発生される。終りに、最後のフィールドで特定されるものは、メッセージの長さ、及び、受信側の告知のために用いられる識別コードである。
【0047】
DMAレジスタ402には、DMA入力キュー408の開始の物理アドレス及びキューの長さを格納するためのレジスタグループも含まれている。これらのレジスタはオペレーティングシステムによって書き込まれる。DMAレジスタセット402には、相互接続インターフェースがキューにおいて処理を開始したという、最後のセンド・ワーク・ディスクリプタの物理アドレスを特定する現在位置ポインタも含まれている。
【0048】
これもDMAレジスタ402に含まれているものは、メッセージの処理の間に多くの例外のいずれかが生じたときのエラーデータを格納するためのステイタスレジスタ、問題のターミナルに対する優先レベルを格納するためのレジスタ、及び、現在のタスクの状態を指示するためのレジスタである。それぞれの送信用ターミナルは関連した優先度を有している。この発明の好適な実施例においては二つの優先レベルが用いられている。その一つはコントロールメッセージのような高い優先度のトラフィックであり、他の一つはバルクデータ転送のようなより低い優先度のトラフィックである。優先度はパケットレベルにおいて賦課される。即ち、より高い優先度のメッセージは、次に続くパケット境界において、より低い優先度のメッセージに先立つことになる。この発明の好適な実施例において、ターミナルの優先度を特定するレジスタは、オペレーティングシステムによる書き込みが可能なものだけである。
【0049】
DMAレジスタ402には、その中に格納されている動作を開始させるためのコントロールレジスタも含まれている。ある適切なコードがこのレジスタに書き込まれると、コントローラ401においては、このコードによって識別された伝送動作が開始される。
【0050】
この発明の好適な実施例においては、DMA入力キュー408におけるワークアイテムのリストが、物理的メモリの隣接ブロックにおけるサーキュラーベクトル(circular vector )としてフォーマット化される。送信用ターミナルは始めのセンド・ワーク・ディスクリプタを開始させることにより動作され、その処理がなされ、そして、これに次いで次続のものに進行される。送信用ターミナルが0のノード識別を有するセンド・ワーク・ディスクリプタに到達すると、作業が停止され、継続に先立つノード内のプロセッサからの入力を待機するようにされる。送信用ターミナルがベクトルの端部に到達すると、受信用ターミナルはベクトルにおける始めのアドレスに対して再び巻き込まれる。
【0051】
当業者には明かであるように、リスト構造を用いて各ターミナルとホストプロセッサとの間で通信を体系化するためには、多くの異なる可能性のある配列がある。相互接続インターフェースにおける種々のターミナルの状態を定めることをホストプロセッサが許容するいかなる構成のものでも、この発明から離れることなく使用することができる。
【0052】
先に注意されたように、ダイレクトモードは、短い待ち時間を要する短いメッセージの伝送のために用いられる。この発明の好適な実施例においては、これらのメッセージは、短いコントロールメッセージ又はフェッチアンドオピメッセージ(Fetch-and-Opmessage )のいずれかである。ある一つのフェッチアンドオピメッセージによれば、受信側のメモリにおいて特定された位置の内容が戻され、また、メッセージの一部である一つ又は複数のオペランドにおいて、受信側である種の動作をするようにされる。直接的なターミナルに含まれている付加的なコントロールレジスタセット404は、アプリケーションのアドレススペースにマッピングされ、そして、ロード/格納命令を用いて、アプリケーションによって直接的にアクセスされる。付加的なレジスタによれば、センド・ワーク・ディスクリプタにおいて正常に生成された情報が格納される。メッセージが格納されるローカルRAMにおけるアドレスを特定するのに代えて、メッセージが格納されるFIFOバッファ409の識別が付与される。DMAレジスタには、進行中の活動のタイプ、例外が生じたときのエラーデータ、及び、ある一つの結果がフェッチアンドオピオペレーションから利用可能であるか否かを指示するレジスタを指示するような、ステイタスレジスタのセットも含まれている。DMAレジスタに含まれている一つのレジスタは、最後のフェッチアンドオピからの戻りの値を保持するためのものである。
【0053】
直接的なターミナルを用いてメッセージを伝送するために、ローカルプロセッサは、ターミナルがアイドル状態になるまで待機する。そして、受信側のノード、スロット、開始アドレス及び告知データが、ダイレクトターミナルにおけるコントロールレジスタセットに書き込まれる。これに次いで、伝送されるべきパケットがFIFOバッファ409に書き込まれる。このことは、単一アドレスに対する単一ワード格納動作のシーケンス、又は、幾つかのバイトを一時に発するためのキャッシュラインフラッシュ(cache-line-flush)動作のいずれかとして達成できる。最後に、ある一つの伝送コマンドが送信用ターミナルにおけるコントロールレジスタセットに書き込まれる。
【0054】
リモートのフェッチアンドオピが、伝送動作と同様な態様で実行される。ただし、メッセージ本体に代えてオペランドが付与されている。そして、この動作の結果は、通常、動作が一度完了されると検索されるべきことが必要とされる。オペランドがFIFOバッファ409に書き込まれ、OPコマンドがコントロールレジスタセットに書き込まれることを除き、その手順は上述されたことと同様である。フェッチアンドオピメッセージに供されるステイタスレジスタが、結果が用意されていることを指示したときには、結果を求めている受信側に対してメッセージが伝送される。
【0055】
この発明による相互接続インターフェースにおける活動的な送信用ターミナルの数は、ハードウエアによってセットされる最大数まで動的に変動させることができる。これで付与される方法は、システムの実行能力に対するハードウエアのコストの妥協をさせることである。大きなシステム又は短い待ち時間の相互接続が特に重要であるシステムは、より多くのターミナルを用いることが可能であり、付加的なハードウエアのコストを受ける。要求される厳しさがより緩やかなより小さいシステムでは、僅かなターミナルで十分な実行能力を達成することができる。ハードウエアにおいて備えられているよりも多くのターミナルがシステムに求められたときには、そのオペレーティングシステムは、ターミナルの数を効果的に多重化させるソフトウエアを用いることができる。しかしながら、このような増大では、ノードにおける実行能力に鑑みて遥かに高いコストが加えられる。
【0056】
ターミナルは、ダイレクトモード及びDMAモードの双方で同時に活動的になることができる。ダイレクトモードの転送は、それらがDMAキューの先頭に挿入されているかのようにして扱われる。この発明の好適な実施例においては、各モードに対して、個別の保護キーレジスタがコントロールレジスタセット404において備えられる。
【0057】
基本的なターミナルの動作は非同期のものである。初期的には伝送が要求され、必要であるときには、幾らかの時間後に結果との集合(rendezvous)がなされる。「送信」動作に対しては、集合を明白にすることを必要としない。
【0058】
「リモートゲット」動作では、ターミナルがより同期的なモードで動作することが要求される。この場合においては、送信用ターミナルは、戻りを「得る」までブロックされる。センド・ワーク・ディスクリプタはメッセージの本体として組み立てられ、そのメッセージは「リモートゲット」の動作タイプをもって伝送される。メッセージが受信側に到着したときには、それは送信側からの戻りメッセージを発生させるために用いられる。メッセージが受信側に到着したときには、それはこのようなメッセージのために保留されたバッファに入力され、適当な優先レベルが付与される。この発明の好適な実施例においては、要求側の優先レベルが用いられる。メッセージの機能フィールドは、値「送信」に強制される。より高い優先度のメッセージが存在しないときには、送信は実際にはローカルの相互接続インターフェースによって処理される。
【0059】
受信ターミナルは、告知システム及びそれに関連のキューについて、殆ど単独で関係している。告知キューは、DMAの要求を処理するために用いられたものと類似の態様で管理されている。しかしながら、この場合においては、告知キユーにおいてアイテムを扱う際に進行される距離及び現在の告知のセットを処理することが終了したかどうかを、インターフェースに指示するものはローカルプロセッサである。このデータの交換は、受信用ターミナルの一部によりレジスタに書き込むことによって処理される。
【0060】
メッセージが受信されると、このメッセージを記述したデータが、受信用ターミナルによって告知キュー301における次続のフリースロットに書き込まれる。メッセージエントリに含まれているものは、告知を発生した受信用ターミナルにおけるスロットのスロット数、メッセージ識別タグ、メッセージ領域におけるメッセージの位置、及び、このメッセージの長さである。告知キューにおけるエントリの処理の終了をプロセッサが指示したとき、そして、このときにのみ、この発明の好適な実施例においては中断が発生される。プロセッサによって告知が取り扱われると、告知キューのスロットにおける値がクリアされて、エントリの再使用が可能であることを、インターフェースに対して指示するようにされる。
【0061】
この発明の好適な実施例においては、告知キュー301が複数のテーブルに分割される。各テーブルは異なる優先レベルを有している。プロセッサにより、優先度が最高のテーブルにおける動作が始めに完了される。
【0062】
当業者には明かであるように、この発明は、通常のASICセル及び/又はゲートアレイを含むマイクロプロセッサ又は専用ハードウエアから構成することができる。
【0063】
この発明に対する種々の修正は、これまでの説明や添付された図面から、当業者には明かなところである。従って、この発明は、特許請求の範囲の欄における記載事項によってのみ限定されるべきである。
【0064】
以上、本発明の各実施例について詳述したが、以下、各実施例を要約する。
【0065】
1. 相互に通信する相互接続組織(11)に接続されるように、複数のホストコンピュータ(15,102)を含むマルチコンピュータデータ処理システム内の相互接続組織(11)に対してローカルメモリ(16,103,304)を有するホストコンピュータ(15,102)を接続するための相互接続インターフェース(17,300)であり、各前記ホストコンピュータ(15,102)が、前記相互接続組織(11)上でメッセージを伝送することにより、同種の相互接続インターフェース(17,300)を有する他の前記ホストコンピュータ(15,102)と通信し、各前記メッセージが1つ又は複数のパケットを有し、各パケットが、パケット本体、パケット識別情報、保護キー及びスロット識別値を有する相互接続インターフェースにおいて、前記相互接続組織(11)及び前記ホストコンピュータ(15,102)に対して接続を付与するためのインターフェース手段(104,308)と、前記相互接続組織(11)からのメッセージを受信するために前記インターフェース手段(104,308)に接続され、夫々前記スロット識別値のある1つの可能性があるものに対応し、かつ前記ホストコンピュータ(15,102)の前記ローカルメモリ(16,103,304)の対応領域を識別する情報、保護用キー及び入来メッセージの構成を特定する情報を含む複数のレコードを格納するためのスロットテーブル手段(106)を有する受信ターミナル(100,302,400)と、前記相互接続インターフェースに対する入来メッセージを処理するために前記インターフェース手段(104,308)に接続され、前記パケットの前記保護キーが前記レコード(107)に格納された前記保護キーと合致しているときは、前記入来メッセージの前記スロット識別値に対応する前記レコード(107)内で識別された前記ホストコンピュータ(15,102)の前記ローカルメモリ(16,103,304)領域に、前記パケット本体を格納させる受信制御手段(105,401)と、を具備した相互接続インターフェース(17,300)である。
【0066】
2. 前記受信制御手段(105,401)が、前記ホストコンピュータによる処理を待機するリストを格納するための手段と、入来メッセージの全てのパケットが前記ホストコンピュータ(15,102)の前記ローカルメモリ(16,103,304)領域に格納されるとき、処理を待機するメッセージの前記リスト(108,301)に登録させるための手段とを含む前記1に記載の相互接続インターフェース(17,300)である。
【0067】
3. 前記受信制御手段(105,401)が、入来メッセージの全てのパケットが前記ホストコンピュータ(15,102)の前記ローカルメモリ(16,103,304)領域に格納されたとき、そして前記ホストコンピュータ(15,102)がメッセージの前記リストによって特定されたメッセージを処理していないときにのみ、前記ホストコンピュータ(15,102)を中断させるための手段を含む前記2に記載の相互接続インターフェース(17,300)である。
【0068】
4. 前記相互接続組織(11)上にメッセージを送信するための送信用ターミナル(303,400)が、前記送信用ターミナルによって送信されるメッセージの全パケットに含まれるべき送信保護キーを格納するための保護レジスタ(404)と、前記相互接続組織(11)上で伝送されるべきメッセージの位置及び前記メッセージについて意図される受信を特定するためのメッセージ識別手段と、前記相互接続組織(11)上で前記特定されたメッセージを含むパケットを発生及び伝送するための送信制御手段(401)とを有し、各前記パケットが、前記送信保護キーと前記メッセージの前記受信側に取り付けられた前記相互接続インターフェース(17,300)上で、前記スロットテーブル手段(106)内のレコード(107)を特定するスロット識別値とを有する前記1に記載の相互接続インターフェース(17,300)である。
【0069】
5. 前記保護レジスタ(404)の内容が、前記相互接続インターフェース(17,300)に接続された前記ホストコンピュータ(15,102)のオペレーティングシステムによってのみ変更可能である前記4に記載の相互接続インターフェース(17,300)である。
【0070】
6. 前記メッセージ識別手段が、入力ジョブキュー(408)の位置を特定するための手段と、前記入力ジョブキューの前記ワーク・ディスクリプタ・レコードの1つに対して、1つのポインタを格納するためのDMAポインタ手段とを有し、前記入力ジョブキュー(408)が、夫々メッセージについて意図された受信、前記スロットテーブル手段(106)におけるレコード(107)及び前記ホストコンピュータ(15,102)における前記メッセージの位置を特定する情報を含む複数のワーク・ディスクリプタ・レコードを有する前記4に記載の相互接続インターフェース(17,300)である。
【0071】
7. 前記入力ジョブキューの位置を特定するための前記手段が、前記ホストコンピュータ(15,102)の前記入力ジョブキューのアドレスを格納するための手段と、前記ホストコンピュータ(15,102)のオペレーティングシステムによってのみ変更可能である前記6に記載の相互接続インターフェース(17,300)である。
【0072】
8. 前記メッセージ識別手段が、メッセージについて意図された受信を特定する情報を格納するための受信識別手段、前記スロットテーブル手段(106)のレコード及び前記メッセージが格納されるバッファを含む前記4に記載の相互接続インターフェース(17,300)である。
【0073】
9. 1つ又は複数のFIFOバッファ(409)を有し、前記受信識別手段によって特定される前記バッファが、前記FIFOバッファの1つを有する前記8に記載の相互接続インターフェース(17,300)である。
【0074】
10. プロセッサノード及び該プロセッサノードが相互通信するためのメッセジを送受信する相互接続機構を有するマルチコンピュータデータ処理システムのプロセッサノード間を通信するための方法であって、(a). 第1のプロセッサノードから第2のプロセッサノードに、パケット本体、送信用保護キー及びスロット識別値を有する少なくとも一つのパケットを有するメッセージを伝送する工程と、(b). 第1のプロセッサノードから入来したメッセージのパケットに含まれている送信用保護キーが、第2のプロセッサノードにおいて格納されている保護キーと合致したときに、第2のプロセッサノードにおいて決定する工程と、(c). 送信用保護キーが格納された保護キーと合致したことが前記決定工程(b)において決定されたとき、第1のプロセッサノードから到来したメッセージのパケット本体を第2のプロセッサノードのローカルメモリの格納領域に格納する工程であって、このローカルメモリの格納領域が第1のプロセッサノードから入来したメッセージのパケットに含まれているスロット識別値を用いて識別される工程と、を含む方法である。
【0075】
11. 前記スロット識別値が第2のプロセッサノード内のスロットテーブルのレコードを識別し、前記レコードが少なくともローカルメモリの格納領域及び格納されている保護キーを識別する情報を含む前記10に記載の方法である。
【0076】
12. 前記レコードが、入来するメッセージの構成を特定する情報を含む前記11に記載の方法である。
【0077】
13. 前記スロットテーブルの各レコードが、前記相互接続組織に接続されたプロセッサノードの一つに関連される前記11に記載の方法である。
【0078】
【発明の効果】
以上詳細に説明したように、本発明によれば、ローカルメモリを有する複数のホストコンピュータが相互に相互接続組織を介して通信を行うに際に、パケット本体、パケット識別情報、保護キー、スロット識別値を有する1個又は複数のパケットを含むメッセージをインターフェース手段及びローカルメモリの対応領域を識別する情報、保護キー、入来メッセージを識別する情報を含むレコードを格納するスロットテーブルを有する受信ターミナルからなる相互接続インターフェースを介して相互接続組織に伝送し、パケットの保護キーがレコードに含まれる保護キーと合致している場合には、入来メッセージのスロット識別値に対応してレコードにおいて識別されたホストコンピュータのローカルメモリの領域にパケット本体を相互接続インターフェースの受信制御手段で格納するようにしたので、受信側がビジー状態でも、入来メッセージで中断されることがなく、且つメッセージの失われる数を減少できる。また、メッセージ伝送中に、他のプロセスからの偶発的あるいは悪意のあるアタックから各プロセスを保護するためのオペレーティングシステムの呼び出しが不要であるとともに、入来メッセージを受信側で格納する場所を決定するのに要する時間を短縮できる。さらに、規則的なメッセージを用いるのと同じ相互接続組織を使用して集積化とプロセスの保護及び待ち時間の短縮が可能となる。
【図面の簡単な説明】
【図1】本発明による相互接続インターフェースが用いられる典型的なマルチプロセッサのブロック図である。
【図2】メッセージを受信する本発明による相互接続インターフェース100の部分についてのより詳細にされたブロック図である。
【図3】本発明による相互接続インターフェースの好適な実施例のブロック図である。
【図4】本発明による相互接続インターフェースにおける送信用ターミナルのブロック図である。
【符号の説明】
10 データ処理システム
11 相互接続組織
12,14 ノード
15 プロセッサ
16,103 ローカルRAM
17,100,300 相互接続インターフェース
102 CPU
104 相互接続組織インターフェース
105,401 コントローラ
106 ローカル・メモリ
107 スロット
108 作業キュー
302 受信用ターミナル
303 送信用ターミナル
304 ホスト・コンピュータ・メモリ
308 インターフェース・ハードウェア
400 送信用ターミナル
408 入力キュー
409 FIFOバッファ

Claims (12)

  1. 相互接続組織に接続する複数のホストコンピュータを含み該ホストコンピュータが該相互接続組織上で互いに通信するマルチコンピュータデータ処理システムにおける、ローカルメモリを有する該ホストコンピュータと該相互接続組織とを接続する相互接続インターフェースであって、該ホストコンピュータのそれぞれが、メッセージを該相互接続組織に送信することによって同様の該相互接続インターフェースを有する他のホストコンピュータと通信し、該メッセージのそれぞれが、パケット本体、パケット識別情報、保護キー、およびスロット識別値をそれぞれ含む1つまたは複数のパケットを有し、
    前記相互接続インターフェースは、
    前記相互接続組織と前記ホストコンピュータへの接続を提供するインターフェース手段と、
    前記相互接続組織からメッセージを受信するために、前記インターフェース手段に接続された受信ターミナルと、を含み、
    前記受信ターミナルは、複数のレコード格納するスロットテーブル手段を含み、該レコードのそれぞれが、前記スロット識別値の1つおよび前記相互接続組織上のメッセージの送り手の1つに対応し、該スロット識別値によって該送り手が識別され、該レコードのそれぞれが、前記ホストコンピュータのメモリにおける対応領域を識別する情報、前記保護キー、および入来するメッセージの構成を特定する情報を含んでおり、
    また、前記受信ターミナルは、前記相互接続インターフェースに入来するメッセージを処理する、前記インターフェース手段に接続された受信制御手段を含み、該受信制御手段は、前記パケットの保護キーが前記レコード含まれた保護キーと合致する場合、該入来するメッセージにおけるスロット識別値に対応するレコードで識別された前記ホストコンピュータのメモリ領域に前記パケット本体を記憶させるよう構成されている、
    前記相互接続インターフェース。
  2. 前記受信制御手段は、前記ホストコンピュータによる処理を待っているメッセージのリストを格納する手段と、
    入来するメッセージにおける全パケットが前記ホストコンピュータの前記メモリ領域に記憶されたときに、当該メッセージを、前記処理を待っているメッセージのリストに登録させるための手段と、を含む請求項1に記載の相互接続インターフェース。
  3. 前記受信制御手段は、入来メッセージの全パケットが前記ホストコンピュータの前記メモリ領域に記憶されているとき、該ホストコンピュータが前記メッセージのリストにより特定されるメッセージの処理中でなければ該ホストコンピュータに割込む手段を含む請求項2に記載の相互接続インターフェース。
  4. 前記相互接続組織上でメッセージを伝送する送信用ターミナルを含み、該送信用ターミナルは、
    前記ターミナルにより送られるメッセージの全パケットに含まれる送信保護キーを格納する保護レジスタと、
    前記相互接続組織上で送られるメッセージの位置および該メッセージの意図される受け手を特定するメッセージ識別手段と、
    前記特定されたメッセージを含むパケットを前記相互接続組織上で生成および送信する送信制御手段と、を含み、
    前記パケットのそれぞれが前記送信保護キーおよびスロット識別値を含み、該スロット識別値が、該メッセージの受け手に取り付けられた前記相互接続インターフェース上で前記スロットテーブル手段におけるレコードを特定するよう構成されている、
    請求項1に記載の相互接続インターフェース。
  5. 前記保護レジスタの内容が、前記相互接続インターフェースに接続された前記ホストコンピュータのオペレーティングシステムによってのみ変更することができる請求項4に記載の相互接続インターフェース。
  6. 前記メッセージ識別手段は、複数のワーク・ディスクリプタ・レコードを含む入力ジョブキューの位置を特定する手段を含み、該ワーク・ディスクリプタ・レコードのそれぞれが、意図されるメッセージの受け手を特定する情報、前記スロットテーブル手段におけるレコード、および前記ホストコンピュータにおける該メッセージの位置を含んでおり、
    また、前記メッセージ識別手段は、前記入力ジョブキューにおける前記ワーク・ディスクリプタ・レコードの1つに対するポインタを格納するDMAポインタ手段を含む請求項4に記載の相互接続インターフェース。
  7. 前記入力ジョブキューの位置特定手段は、前記ホストコンピュータにおける該入力ジョブキューのアドレスを格納する手段を含み、該アドレスが該ホストコンピュータのオペレーティングシステムによってのみ変更することができる請求項6に記載の相互接続インターフェース。
  8. 前記メッセージ識別手段は、意図されるメッセージの受け手、前記スロットテーブル手段におけるレコード、および該メッセージが格納されるバッファを特定する情報を格納する受信識別手段を、含む請求項4に記載の相互接続インターフェース。
  9. 1つまたは複数のFIFOバッファを含み、前記受信識別手段により特定されるバッファの場所が、該FIFOバッファの1つを含む請求項8に記載の相互接続インターフェース。
  10. プロセッサノードおよび相互接続組織を有し、該プロセッサノードが該相互接続組織上でメッセージを送受信して互いに通信するマルチコンピュータデータ処理システムにおける、プロセッサノード間での通信方法であって、該プロセッサノード間での通信方法は、
    (a)第1のプロセッサノードから第2のプロセッサノードに少なくとも1つのパケットを有するメッセージを送信するステップであって、該パケットがパケット本体、送信用保護キー、および該第1のプロセッサノード上での処理を識別するスロット識別値を含む該送信ステップと
    (b)第1のプロセッサノードから入来したメッセージのパケットに含まれる送信用保護キーが、第2のプロセッサノードに格納された保護キーと合致するかどうかを、第2のプロセッサノードで判断するステップと、
    (c)前記判断ステップ(b)で送信用保護キーが格納された保護キーと合致すると判断されたとき、第1のプロセッサノードから入来したメッセージのパケット本体を、第2のプロセッサノードのローカルメモリ記憶領域に記憶するステップと、を含み、
    第1のプロセッサノードから入来したメッセージのパケットに含まれるスロット識別値を使用して、該ローカルメモリ記憶領域が識別される前記プロセッサノード間での通信方法。
  11. スロット識別値が第2のプロセッサノード内のスロットテーブルにおけるレコードを識別し、該レコードが、ローカルメモリ記憶領域および格納された保護キーを識別する情報を少なくとも含む請求項10に記載の方法。
  12. 前記レコードが、入来するメッセージの構成を特定する情報を含む請求項11に記載の方法。
JP06758494A 1993-04-05 1994-03-11 相互接続インターフェース Expired - Lifetime JP3553634B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/042,957 US5448698A (en) 1993-04-05 1993-04-05 Inter-processor communication system in which messages are stored at locations specified by the sender
US042,957 1993-04-05

Publications (2)

Publication Number Publication Date
JPH06309252A JPH06309252A (ja) 1994-11-04
JP3553634B2 true JP3553634B2 (ja) 2004-08-11

Family

ID=21924664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06758494A Expired - Lifetime JP3553634B2 (ja) 1993-04-05 1994-03-11 相互接続インターフェース

Country Status (2)

Country Link
US (1) US5448698A (ja)
JP (1) JP3553634B2 (ja)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962526A (ja) * 1995-08-28 1997-03-07 Fujitsu Ltd 耐故障型rpcシステムおよび方法
JPH0991223A (ja) * 1995-09-20 1997-04-04 Nec Corp リソースビジー制御方式
US5956486A (en) * 1995-12-20 1999-09-21 Hickman; Paul Lawrence Method and apparatus for monitoring multiple electronic mail systems
JP3134808B2 (ja) * 1997-06-04 2001-02-13 日本電気株式会社 フレームリレー伝送装置
US6158008A (en) * 1997-10-23 2000-12-05 At&T Wireless Svcs. Inc. Method and apparatus for updating address lists for a packet filter processor
US6092110A (en) * 1997-10-23 2000-07-18 At&T Wireless Svcs. Inc. Apparatus for filtering packets using a dedicated processor
US6212610B1 (en) * 1998-01-07 2001-04-03 Fujitsu Limited Memory protection mechanism for a distributed shared memory multiprocessor with integrated message passing support
US6209064B1 (en) 1998-01-07 2001-03-27 Fujitsu Limited Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system
US6631448B2 (en) 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6253321B1 (en) * 1998-06-19 2001-06-26 Ssh Communications Security Ltd. Method and arrangement for implementing IPSEC policy management using filter code
DE19843249A1 (de) * 1998-09-11 2000-03-16 Francotyp Postalia Gmbh Verfahren zur Dateneingabe in ein Dienstgerät und Anordnung zur Durchführung des Verfahrens
US6526452B1 (en) 1998-11-17 2003-02-25 Cisco Technology, Inc. Methods and apparatus for providing interfaces for mixed topology data switching system
US6484207B1 (en) 1998-11-17 2002-11-19 Cisco Technology, Inc. Switching system having interconnects dedicated to store and retrieve data including management of dedicated memory segments allocated when a general memory is depleted
US6463065B1 (en) 1998-11-17 2002-10-08 Cisco Technology, Inc. Mixed topology data switching system
US6665673B1 (en) 1998-11-17 2003-12-16 Cisco Technology, Inc. Channel communication system
AU4238100A (en) * 1999-04-12 2000-11-14 Sony Electronics Inc. Asynchronous data transmission with scattering page tables
US6445711B1 (en) 1999-04-23 2002-09-03 Sony Corporation Method of and apparatus for implementing and sending an asynchronous control mechanism packet used to control bridge devices within a network of IEEE STD 1394 serial buses
JP2003525481A (ja) * 1999-05-07 2003-08-26 モーフィックス テクノロジー インコーポレイテッド プログラマブル機密保護プロセッサのための装置及び方法
US7073069B1 (en) * 1999-05-07 2006-07-04 Infineon Technologies Ag Apparatus and method for a programmable security processor
US6487186B1 (en) * 1999-06-28 2002-11-26 Rockwell Collins, Inc. Method and apparatus for managing communication resources using bootstrap slots
US6587959B1 (en) * 1999-07-28 2003-07-01 Emc Corporation System and method for addressing scheme for use on clusters
US6839562B2 (en) * 2000-04-11 2005-01-04 Telecommunication Systems, Inc. Intelligent delivery agent for short message distribution center
US6791994B1 (en) 2000-04-19 2004-09-14 Rockwell Collins, Inc. Method and apparatus for assigning receive slots in a dynamic assignment environment
JP2001333137A (ja) * 2000-05-23 2001-11-30 Mitsubishi Electric Corp 自主動作通信制御装置及び自主動作通信制御方法
US6885651B1 (en) 2000-08-29 2005-04-26 Rockwell Collins Maintaining an adaptive broadcast channel using both transmitter directed and receiver directed broadcasts
US6810022B1 (en) 2000-08-29 2004-10-26 Rockwell Collins Full duplex communication slot assignment
US6781967B1 (en) 2000-08-29 2004-08-24 Rockwell Collins, Inc. Scheduling techniques for receiver directed broadcast applications
US7328232B1 (en) 2000-10-18 2008-02-05 Beptech Inc. Distributed multiprocessing system
US6657632B2 (en) * 2001-01-24 2003-12-02 Hewlett-Packard Development Company, L.P. Unified memory distributed across multiple nodes in a computer graphics system
US7865440B2 (en) * 2001-10-11 2011-01-04 International Business Machines Corporation Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
US6873331B2 (en) * 2002-03-29 2005-03-29 Hewlett-Packard Development Company, L.P. System and method for passing messages among processing nodes in a distributed system
US7176914B2 (en) * 2002-05-16 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for directing the flow of data and instructions into at least one functional unit
US20040107240A1 (en) * 2002-12-02 2004-06-03 Globespan Virata Incorporated Method and system for intertask messaging between multiple processors
US7149897B2 (en) * 2003-07-25 2006-12-12 The United States Of America As Represented By The Secretary Of The Navy Systems and methods for providing increased computer security
US7629979B2 (en) * 2003-08-20 2009-12-08 Hewlett-Packard Development Company, L.P. System and method for communicating information from a single-threaded application over multiple I/O busses
US7385999B1 (en) 2003-10-20 2008-06-10 Rockwell Collins, Inc. Heuristics for combining inter-channel and intra-channel communications in a wireless communications environment
US7403780B2 (en) 2004-02-19 2008-07-22 Rockwell Collins, Inc. Hybrid open/closed loop filtering for link quality estimation
US7826372B1 (en) 2004-03-26 2010-11-02 Rockwell Collins, Inc. Network routing process for regulating traffic through advantaged and disadvantaged nodes
US7382799B1 (en) 2004-05-18 2008-06-03 Rockwell Collins, Inc. On-demand broadcast protocol
US7310380B1 (en) 2004-05-28 2007-12-18 Rockwell Collins, Inc. Generic transmission parameter configuration
US7397810B1 (en) 2004-06-14 2008-07-08 Rockwell Collins, Inc. Artery nodes
US20060233174A1 (en) * 2005-03-28 2006-10-19 Rothman Michael A Method and apparatus for distributing switch/router capability across heterogeneous compute groups
US7606171B1 (en) 2005-07-28 2009-10-20 Rockwell Collins, Inc. Skeletal node rules for connected dominating set in ad-hoc networks
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7889657B2 (en) * 2007-05-04 2011-02-15 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7948999B2 (en) * 2007-05-04 2011-05-24 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7890670B2 (en) * 2007-05-09 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US7779173B2 (en) * 2007-05-29 2010-08-17 International Business Machines Corporation Direct memory access transfer completion notification
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7765337B2 (en) * 2007-06-05 2010-07-27 International Business Machines Corporation Direct memory access transfer completion notification
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7890597B2 (en) * 2007-07-27 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
US20090119460A1 (en) * 2007-11-07 2009-05-07 Infineon Technologies Ag Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space
US8249072B2 (en) * 2009-03-12 2012-08-21 Oracle America, Inc. Scalable interface for connecting multiple computer systems which performs parallel MPI header matching
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9596186B2 (en) * 2009-06-30 2017-03-14 Oracle America, Inc. Multiple processes sharing a single infiniband connection
US8234407B2 (en) * 2009-06-30 2012-07-31 Oracle America, Inc. Network use of virtual addresses without pinning or registration
US8122301B2 (en) * 2009-06-30 2012-02-21 Oracle America, Inc. Performing remote loads and stores over networks
US8843651B2 (en) * 2009-06-30 2014-09-23 Oracle America, Inc. Software aware throttle based flow control
US8095617B2 (en) * 2009-06-30 2012-01-10 Oracle America Inc. Caching data in a cluster computing system which avoids false-sharing conflicts
US8544026B2 (en) 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
US20130227243A1 (en) * 2012-02-23 2013-08-29 Freescale Semiconductor, Inc Inter-partition communication in multi-core processor
US9632973B2 (en) * 2014-09-02 2017-04-25 Intel Corporation Supporting RMA API over active message
JP6668908B2 (ja) * 2016-04-13 2020-03-18 富士通株式会社 情報処理システム、送信装置および情報処理システムの制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4802220A (en) * 1985-03-20 1989-01-31 American Telephone And Telegraph Company, At&T Bell Laboratories Method and apparatus for multi-channel communication security
US4774707A (en) * 1986-09-10 1988-09-27 General Electric Company Random access communication system with scheduled data transmission and asynchronous contention scheduling
US5048085A (en) * 1989-10-06 1991-09-10 International Business Machines Corporation Transaction system security method and apparatus
US5243643A (en) * 1990-11-01 1993-09-07 Voiceples Corporation Voice processing system with configurable caller interfaces
US5347514A (en) * 1993-03-26 1994-09-13 International Business Machines Corporation Processor-based smart packet memory interface

Also Published As

Publication number Publication date
US5448698A (en) 1995-09-05
JPH06309252A (ja) 1994-11-04

Similar Documents

Publication Publication Date Title
JP3553634B2 (ja) 相互接続インターフェース
US20180375782A1 (en) Data buffering
US7610413B2 (en) Queue depth management for communication between host and peripheral device
JP5282115B2 (ja) ユーザーレベルスタック
EP1856623B1 (en) Including descriptor queue empty events in completion events
US5253342A (en) Intermachine communication services
US4777595A (en) Apparatus for transferring blocks of information from one node to a second node in a computer network
KR100326864B1 (ko) 네트워크통신방법및네트워크시스템
EP2362298A1 (en) Transmit completion event batching
JPH03130863A (ja) 制御要素転送システム
US7640549B2 (en) System and method for efficiently exchanging data among processes
Wilkes Hamlyn—an interface for sender-based communications
EP2383658B1 (en) Queue depth management for communication between host and peripheral device
EP0094177A2 (en) Apparatus for direct memory-to-memory intercomputer communication
US7130936B1 (en) System, methods, and computer program product for shared memory queue
US20070079077A1 (en) System, method, and computer program product for shared memory queue
JP3644158B2 (ja) 並列計算機におけるデータ送受信方法
KR20010095103A (ko) 데이터 블록 전송 방법 및 장치
JPH1145220A (ja) Tcp/ipソケット・アプリケーションを使用したシステム資源削減装置および方法
JP3983926B2 (ja) マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム
Swanson et al. PPE-level protocols for carpet clusters
KR19980086586A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴
KR19980086589A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴
KR19980086587A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040309

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: 20040427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040430

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term