JPH0844675A - 処理エレメント間の制御メッセージ分散のための装置及び方法 - Google Patents

処理エレメント間の制御メッセージ分散のための装置及び方法

Info

Publication number
JPH0844675A
JPH0844675A JP7117539A JP11753995A JPH0844675A JP H0844675 A JPH0844675 A JP H0844675A JP 7117539 A JP7117539 A JP 7117539A JP 11753995 A JP11753995 A JP 11753995A JP H0844675 A JPH0844675 A JP H0844675A
Authority
JP
Japan
Prior art keywords
processing element
control
processing
elements
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7117539A
Other languages
English (en)
Inventor
Henry Grant Karl
カール・ヘンリー・グラント
Jace W Krull
ジェイス・ウィリアム・クラル
Charles Edward Kuhlmann
チャールズ・エドワード・クールマン
Saramian Shahram
シャーラム・サラミアン
Mitchell Thomas Eugene
ユージーン・ミッチェル・トマス
Theodor Chebdos James
ジェイムズ・テオドール・チェブドス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0844675A publication Critical patent/JPH0844675A/ja
Pending legal-status Critical Current

Links

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
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 システム中で相互接続された非同期的に動作
する複数の処理エレメントの1つで実行中のプログラム
と別の処理エレメント上のメモリとの間の通信を可能と
する。 【構成】 各処理エレメント上に配置された相互処理通
信ロジックが、上記の通信を可能とする。相互接続媒体
と相互処理通信ロジックとの間をインタフェースするた
めに相互配信サポート・ハードウェアが設けられ、これ
は、処理エレメント上で実行中のプログラムに対して非
同期的に動作する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にはコンピュー
タ・システムに関し、特に、分散オペレーティング・シ
ステムにおいて緩やかに相互接続された個別の処理エレ
メント上の機能エンティティ間で互いに制御メッセージ
を伝送するための、ハードウェア・サポートの形態をも
つコンピュータ・ロジックに関する。
【0002】
【従来の技術】コンピュータやコンピュータ・ユーザの
数が増大してきたことに伴って、ユーザ間及びマシン間
の通信に対する要求が大きくなってきた。このような通
信を可能とするコンピュータ・ネットワークは、複数の
処理エレメントからなるように構築されてきた。これら
の処理エレメントとしては、例えば、携帯用すなわちラ
ップトップ・コンピュータ、パーソナル・コンピュー
タ、ミニコンピュータ、またはこれらの各コンピュータ
内部のサブシステム等が含まれる。通常、これらの処理
エレメントの各々は、ネットワーク内で他の処理エレメ
ントとは非同期でかつ独立して動作するが、そのネット
ワーク内で他の処理エレメントと通信することができ
る。
【0003】ネットワーク内で互いに接続され非同期的
に動作する個々の処理エレメントは、ともに並列処理を
実行する機能を提供することができる。並列処理の際に
は、複数のプロセスすなわち機能エンティティを、互い
に接続された処理エレメントによって同時に実行するこ
とにより非常に多数のタスクを同時に処理することが可
能である。
【0004】並列処理ネットワーク内の処理エレメント
間の接続状況は、ネットワークによって大きく異なって
いる。いくつかのネットワークでは、各々の処理エレメ
ントが、他の全ての処理エレメントと接続されている。
言い替えるならば、近隣のプロセッサのみが接続されて
いる。ネットワーク内の個々の処理エレメントを接続す
る媒体もまた、ネットワークによって様々である。並列
処理が可能ないくつかのネットワークは、バス・アーキ
テクチャの周りに構築されており、各処理エレメント
は、通信を行うためのバスへ接続されている。いずれの
処理エレメントも、バスへアクセスしてそのバスを制御
することによって、別の処理ユニットのメモリへアクセ
スすることができる。この方法においては、情報が、各
処理エレメント上に配置されたメモリまたはシステム内
の拡張メモリを介して処理エレメントから処理エレメン
トへと渡される。
【0005】バス・アーキテクチャの周りに構築された
ネットワークは、システム内の各処理エレメントが直接
そのバスへ接続されていることから、通常、いわゆる強
固にに結合されたものとなっている。このようなシステ
ムでは同期エラーの可能性があるため、バスの制御にお
いて競合する処理エレメント間の調停を行うべくバス・
アクセス制御機構を設けなければならない。さらにバス
制御機構は、送信側処理エレメントがそのメッセージを
送り終える以前には受信側処理エレメントがそれを読み
取ることができないことを確保し、さらに、受信側処理
エレメントが最後の書き込み情報を読み取るまでは送信
側処理エレメントが書き込みを開始しないことを確保し
なければならない。
【0006】緩やかに結合されたシステムは、複数の処
理エレメントから構成されており、これらの処理エレメ
ントは、1つの処理エレメントが別の処理エレメント上
のメモリに対して直接アクセスできないように直列形式
の相互接続により接続されている。しかしながら、緩や
かに結合されたシステムは、各処理エレメントが同時に
協同的処理を行うことが可能であり、またさらに、メッ
セージを渡すことが可能である。メッセージは、これら
の処理エレメントが相互に認知できるプロトコルを用い
て各処理エレメント間で渡される。ネットワーク通信に
関する不確定性のために、送信側と受信側の双方の処理
エレメントが、通信リンクの一貫性を確認する義務があ
る。従って、プロトコルには、通常、エラー検知方法が
備えられている。さらに、プロトコルは、通信チャネル
を開始しかつ終了する方式を特定しなければならない。
いつでも同時に複数のチャネルがオープンされる可能性
があることから、所与のメッセージ差別化形式もまた、
備えていなければならない。
【0007】緩やかに結合されたネットワーク等のコン
ピュータ・システム内の処理エレメントが、各々、1ま
たは複数のプログラムを実行するための複数のアクティ
ブ・エンティティすなわち機能及びそれらに関連するサ
ポート・ハードウェアを備える場合がある。これらのプ
ログラムは、アプリケーションまたは入出力(I/O)
サポートを実行し、かつ個別のプロセス実行スレッド上
で動作する。一般的に、これらのプログラムは、プロセ
ス間通信(IPC)ソフトウェアを用いて同じ処理エレ
メント上の他のプログラムと通信できる。しかしなが
ら、緩やかに結合した個別の処理エレメント上のプログ
ラムの間での通信は、依然として設計困難な状況にあ
る。
【0008】
【発明が解決しようとする課題】本発明の目的は、緩や
かに接続されたコンピュータ・システム内のIPCソフ
トウェアと相互接続媒体との間をインタフェースするロ
ジックを、ハードウェア・サポート形態で提供すること
である。このハードウェア・サポートは、システム内で
非同期的に動作する処理エレメント上の機能を個別に実
行することによって、システム内の他の処理エレメント
上のメモリと間接的に通信することができる。
【0009】
【課題を解決するための手段】本発明は、コンピュータ
・システム内で相互に接続された処理エレメントの間に
制御メッセージを分散するための機構を提供する。これ
らの処理エレメントは、1または複数のプログラムの実
行を通して1または複数の機能を各々実行する。各プロ
グラムは、システム内の他の処理エレメント上のプログ
ラムの実行に関して非同期的に動作する。
【0010】さらに、このコンピュータ・システムは、
(i)複数の処理エレメントを相互に接続するための相互
接続媒体(ローカル・エリア・ネットワーク(LA
N)、直列デジタル・スイッチング・ネットワーク、ま
たは並列コンピュータ・バス等)と、(ii)任意の処理エ
レメント上の実行中のプログラム間での通信を可能とす
るために各処理エレメント上に置かれた相互処理通信ロ
ジックと、(iii)相互接続媒体と相互処理通信ロジック
との間をインタフェースするための相互配信サポート・
ハードウェアとを備えている。
【0011】相互配信サポート・ハードウェアは、処理
エレメント上で実行中のプログラムに関して非同期的に
動作することによって、(i)第1の処理エレメント上の
物理メモリから第1の処理エレメント上の機能により得
られる制御エレメントをエンキュー(enqueu:キューに
入れる)し、(ii)エンキューされた制御エレメントを第
1の処理エレメントに関連する第1のメモリ・デバイス
内に一時的に記憶し、(iii)複写トランザクションを介
して、一時的に記憶された制御エレメントを第1のメモ
リ・デバイスから相互接続媒体を通して第2の処理エレ
メントに関連する第2のメモリ・デバイスへ複写し、そ
して(iv)複写された制御エレメントを第2のメモリ・デ
バイスから第2の処理エレメント上の物理メモリへとデ
キュー(dequeu:キューから取り除く)する。
【0012】各処理エレメント上の相互配信サポート・
ハードウェアは、(i)同じ処理エレメント上で動作する
機能によってのみアドレス指定可能な物理メモリと、(i
i)エンキューされた制御エレメントを一時的に記憶する
ためのメモリ・デバイスと、(iii)相互接続媒体を通し
て複写される前に一時的に記憶された制御エレメントが
マッピングされる配信アドレッサブル(アドレス指定可
能)空間とを有する。配信アドレッサブル空間は、別の
処理エレメントへの相互接続媒体上の相互配信サポート
によってのみアドレス指定可能である。
【0013】制御エレメントが一時的に記憶される第1
のメモリ・デバイス及び第2のメモリ・デバイスは、F
IFOバッファである。FIFOバッファは、システム
内の他の処理エレメントの各々に対して設けられてい
る。各FIFOバッファは、入ってくる制御エレメント
を一時的に記憶するための1つの先入れ先出しパイプ
と、出ていく制御エレメントを一時的に記憶するための
1つの先入れ先出しパイプとを含む。相互配信サポート
・ハードウェアは、FIFOバッファ内に記憶される制
御エレメントのために継続的にFIFOバッファを走査
している。
【0014】
【実施例】図1は、本発明の原理に従って構築されたコ
ンピュータ・システム10のブロック図である。システ
ム10は、相互接続媒体14により相互に接続された複
数の処理エレメント12から構成される。図1には、簡
潔とするために2つの処理エレメント(12a及び12
n)のみが示されているが、このシステムは、相互接続
媒体14を介して複数の処理エレメントを相互に接続す
ることによって実装化することができる。さらにこのシ
ステムは、個々の処理エレメントへ直接接続された外部
デバイス16a乃至16nを任意に含んでいてもよい。
【0015】システム10の処理エレメント12は、パ
ーソナル・コンピュータまたは別のタイプのプロセッサ
のいずれであってもよい。処理エレメント12a乃至1
2nの各々は、1または複数のプログラムを実行するた
めの機能エンティティすなわちアクティブ・エンティテ
ィ18と、これらのアクティブ・エンティティの動作を
強化するための関連するサポート・ハードウェアとを有
する。アクティブ・エンティティは、アプリケーション
またはI/Oサポートを実行するために各処理エレメン
ト内にプログラミングされたタスクまたはプロセスを含
む。サポート・ハードウェアは、実行サポート20、管
理サポート22、デバイス付設サポート24、及び相互
接続サポート26を含む。サポート・ハードウェアは、
処理エレメント12自身の上に実装化することもできる
し、または相互接続媒体14へ接続する別個のカード上
に実装化することもできる。
【0016】本発明では、様々なタイプの相互接続媒体
14を対象とした。図2乃至図4は、対象とした相互接
続媒体のタイプを示しており、ローカル・エリア・ネッ
トワーク(LAN)、IBMのマイクロチャネル(Micr
ochannel:米国登録商標)・バス等の双方向性コンピュ
ータ・バス、または高速デジタル交換ネットワークが含
まれる。図4に示されたような高速デジタル交換ネット
ワークは、通常、同軸ケーブルまたは光ファイバ・ケー
ブルを用いて構築される。本発明の対象とされた他のタ
イプの相互接続媒体14としては、例えば、データ・キ
ューブ型ネットワークまたはポイント・ツー・ポイント
網状ネットワークがある。さらに、本システム内の処理
エレメントは、直列にも接続可能であるしまたバス・ア
ーキテクチャを介しても接続可能である。マイクロ・チ
ャネル・バス等のバス・アーキテクチャが用いられた場
合(図3)、処理エレメント12間の直列の相互接続を
シミュレートするためにシミュレートされたリンクが設
けられる。
【0017】一般的に、機能的エンティティすなわちア
クティブ・エンティティ18は、図5に示されたよう
に、様々なコンフィギュレーションのシステムにおいて
処理エレメント12の間に分散されまたはマッピングさ
れる。例えば、いずれのプロセス30にも1または複数
のアクティブ・エンティティ18があり、いずれの処理
エレメント12にも1または複数のプロセスがある。各
アクティブ・エンティティ18は、プログラムとして実
装化され、そして特定のプロセス30の全てまたは一部
を規定する1または複数の機能を実行するために適応化
される。エンティティは、例えば、処理エレメント12
内のローカル層上及びシステム10内のシステム層上等
の層構造をとる場合もある。
【0018】エンティティ18は、制御メッセージを受
信することによってプロセス30またはプロセス・スレ
ッド内で実行される。各エンティティは、個別のプロセ
ス・スレッド上で動作する。プロセス・スレッドは、プ
ロセス30内で他のスレッドと並列に実行される最小の
動作単位である。概念的にいえば、スレッドは、プログ
ラムを通した実行経路であって、特定の機能を実行する
コードの本体である。スレッドとプロセスとの違いは、
多くのスレッドが単一のプロセス内で同時に実行できる
ことである。個別のプロセスの代わりにマルチプル・プ
ロセス・スレッドを使用することによって、オーバヘッ
ド(オペレーティング・システム機能のために使用され
る時間、オペレーション、及び資源)を低減させ、より
多くの資源をアプリケーション・プログラムのために残
すことができる。さらに、マルチプル・スレッドによっ
て、プログラムは並列にいくつかのコアを実行する機能
が与えられる。例えば、ユーザの視点から見たシステム
性能を低下させることなく多くの異種のI/O装置を同
時に用いることができる。
【0019】アクティブ・エンティティ18を相互接続
媒体14と接続する相互接続サポート26(図1参照)
は、ハードウェアとソフトウェアとの組合せにより実装
化され、次のことを実行する機構を備えている。すなわ
ち、(i)同じ処理エレメント内のアクティブ・エンティ
ティが互いに通信し合う。(ii)1つの処理エレメント内
のアクティブ・エンティティが別の処理エレメント内の
エンティティと通信する。機能的エンティティすなわち
アクティブ・エンティティ18が同じ処理エレメント1
2内のローカル・レベル上で互いに通信し合うためのソ
フトウェア機構は、相互接続サポート26内に実装化さ
れており、プロセス間通信(IPC)32と称される。
IPC32は、特定の処理エレメント12内の様々なプ
ロセスまたはスレッド間で、読出しオペレーション及び
書込みオペレーション等のデータや制御メッセージの形
で情報を渡すために用いられる機構である。制御メッセ
ージ及びデータは、本発明により設けられる機構によっ
て個別に管理される。データ及び制御メッセージの転送
は双方とも本明細書で触れられるているが、本発明は特
に、相互に接続された処理エレメント間に制御メッセー
ジを分散するための機構に関連する。
【0020】異なる処理エレメント12上のアクティブ
・エンティティが互いに通信するためのハードウェア機
構もまた、相互接続サポート26内に組み込まれてお
り、相互配信サポート(IDS)34と称される。ID
Sは、別々の処理エレメント上のエンティティ間での通
信を可能とするような方法を用いて様々な処理エレメン
ト間に制御メッセージ及びデータを分散する。そして、
IDS34は、システム内通信の処理エレメント・ツー
・処理エレメント層として機能し、IPC32は、同一
処理エレメント内通信のエレメント・ツー・エレメント
層として機能する。相互接続サポート26は、IPC3
2とIDS34の双方を含む。
【0021】IPC32と同様に、IDS34は、エン
ティティ間の制御メッセージの転送及びデータ配信を担
うが、その制御メッセージ及びデータが、相互接続媒体
14を介してIDS34からシステム10内の別の処理
エレメント上のエンティティへと渡される点が異なる。
アクティブ・エンティティ18は、IPC32を通して
同じ処理エレメント上で互いに通信し合う一方、IDS
34を通して別の処理エレメント上のアクティブ・エン
ティティとも互いに通信し合う。さらに、IDS34
は、処理エレメント間に相互に認知できる通信プロトコ
ルを設けており、このプロトコルが、異なる処理エレメ
ント内の様々なプロセスまたはスレッド間で制御メッセ
ージ及びデータの形で情報を渡すために用いられる。
【0022】図6に示すように、第1のエレメントの物
理メモリに含まれる制御メッセージは、第1の処理エレ
メント上の配信(デリバリ)アドレッサブル空間へマッ
ピングされるかまたは移動され、リンク・フレームの形
で媒体(メディア)空間にマッピングされ、第2の処理
エレメント上の配信アドレッサブル空間へ複写され、そ
して第2の処理エレメント上の物理メモリへ移動され
る。マッピングの概念は、IDS34により双方のエン
ティティの処理エレメントにアドレス指定することがで
きる配信アドレッサブル空間を使用することによって、
メッセージを1つのエンティティの物理メモリ空間から
別のエンティティの物理メモリ空間へ移動することを含
む。
【0023】図7乃至図9は、システム内の異なる処理
エレメント上のエンティティ間でのエンティティ・ツー
・エンティティ通信及び同じ処理エレメント内のエンテ
ィティ・ツー・エンティティ通信の双方を可能とするI
PC32及びIDS34を含む相互接続サポート26の
2層アーキテクチャを示した図である。さらに図7乃至
図9は、配信アドレッサブル空間を含む機能の分解図を
も示している。特に図7には、各処理エレメント12が
いずれのメモリも共有しない(非共有メモリ)ような本
発明の実装化が示されており、図8及び図9には、各処
理エレメント12がメモリを共有する(共有メモリ)よ
うな本発明の実装化示されている。
【0024】非共有メモリ図7は、非共有メモリの場合
の本発明の実装化を示す図である。この場合、各処理エ
レメントは、例えば、図2のLANまたは図4の直列交
換等の直列形式で相互に接続可能でありかつ他の処理エ
レメントのメモリに直接アクセスすることはできない
(図3に示した所与のバスによる相互接続システムもま
た、処理エレメント間の共有メモリ・アクセスをサポー
トできない)。
【0025】アーキテクチャの第1のレベル上では、特
定の処理エレメント12上のエンティティ18が、その
処理エレメント上に常駐する記憶デバイス(物理メモ
リ)に置かれた制御メッセージに対してIPC32を介
してアクセスできる。アーキテクチャの第2のレベル上
では、特定の処理エレメント12上のIDS34が、そ
の処理エレメント上の物理メモリ38から相互接続媒体
14へ制御メッセージを配信するために用いられる。相
互接続媒体14から、第2の処理エレメント上のIDS
34を介して第2の処理エレメント上のエンティティへ
制御メッセージを渡すことができる。
【0026】エンティティ18は、同じ処理エレメント
内の物理メモリ38に置かれた制御メッセージへアクセ
スする。この場合、物理メモリ38は、IPC32、空
間管理ハードウェア/ソフトウェア40、及びメモリ・
アクセス・ハードウェア/ソフトウェア42を通して常
駐する。同じ処理エレメント12上の他のエンティティ
18は、同じ経路を介して物理メモリ38へアクセスす
ることができる。特定の処理エレメント上の様々なエン
ティティは、IPC32を用いて物理メモリ38から得
られた制御メッセージを互いに共有することができる。
【0027】第1の処理エレメント上のエンティティ1
8は、次のような方法で、IDS34及び相互接続媒体
14を介して第2の処理エレメントの物理メモリ38に
置かれた制御メッセージへアクセスする(図7を参
照)。第1の処理エレメント上のアドレス空間管理46
は、物理メモリ38から制御メッセージを得るためにメ
モリ・アクセス・ハードウェア/ソフトウェア42との
インタフェースを行う。制御メッセージは、第2の処理
エレメント上のIDS32によって相互接続媒体14を
通してアクセスされる配信アドレッサブル空間48に中
に移動される。物理的な詳細部分が伏せられているの
は、種々の理由による。それらの理由の中に、処理エレ
メントのアーキテクチャに依存しないことがあり、また
セキュリティに関連する。制御メッセージは、媒体アク
セス・ハードウェア52を介して相互接続媒体14へア
クセスする媒体空間管理50によって、配信アドレッサ
ブル空間48から相互接続媒体15へ転送される。媒体
アクセス・ハードウェア52は、制御メッセージが相互
接続媒体14を通して送られるに先立って記憶されるバ
ッファを備えている。
【0028】第2の処理エレメント上のIDS34は、
相互接続媒体14へアクセスする個によって制御メッセ
ージを受信することができる。そして、受信するIDS
は、第1の処理エレメント上の物理メモリ38から制御
メッセージを得たプロセスを逆行する。特に、第2の処
理エレメント上のIDS34は、第1の処理エレメント
の配信アドレッサブル空間48からの制御メッセージを
自身の配信アドレッサブル空間へと複写する。それか
ら、制御メッセージは、第2の処理エレメントの物理メ
モリへと移動され、ここで、第2の処理エレメント内で
動作する1または複数のエンティティによるアクセスが
可能となる。
【0029】さらに、第2の処理エレメント上のエンテ
ィティは、次のプロセスを通して、第1の処理エレメン
トの物理メモリに常駐する制御メッセージにアクセスし
かつこれを獲得することができる。(i)第1の処理エレ
メント上のIDSが、その物理メモリから第1の処理エ
レメント上のIDSにより設けられたアドレス空間へと
制御メッセージを移動させる。(ii)制御メッセージが、
第1の処理エレメント上のアドレス空間から第2の処理
エレメント上のアドレス空間へ複写される。(iii)第2
の処理エレメント上のIDSが、第2の処理エレメント
上のアドレス空間から第2の処理エレメント上の物理メ
モリへ制御メッセージを移動させる。
【0030】このように、IDS34は、種々の処理エ
レメント上のエンティティ18に関して非同期的に動作
する。本明細書において用いられる「同期的」とは、同
じ処理スレッド上のIDSの動作が、同じ処理エレメン
ト上のエンティティの動作と同じことを意味する。ま
た、「非同期的」とは、IDSを通して配信を要求する
エンティティとは異なるスレッド上でIDSが動作する
ことを意味する。別の処理エレメント上の各アクティブ
・エンティティすなわち機能は、互いに独立にかつ非同
期的に実行される。
【0031】本発明は、システム内の別の処理エレメン
トで動作する種々のプロセスまたはスレッド間で制御メ
ッセージを渡すために用いられる、IDS34内のハー
ドウェア・サポートに関連する。制御メッセージは、制
御エレメントにより形成され、可変長とすることができ
る。制御メッセージは、通常、要求または返答を表し、
そしてそのメッセージの中に制御パラメータやデータを
含んだり、エンティティ間で転送される何らかのデータ
域を指示したりできる。
【0032】共有メモリ 図8及び図9は、共有メモリの場合における本発明の実
装化を示す図であり、この場合処理エレメントは、通
常、例えば図3に示したマイクロチャネル等のバス形式
の相互接続を介して接続され、他の処理エレメント内の
メモリへの直接アクセスが可能である。共有メモリ54
は、(i)各処理エレメント12の物理メモリ38内の物
理メモリ記憶空間、(ii)各処理エレメントのメモリ・ア
クセス・ハードウェア/ソフトウェア42、(iii)各処
理エレメントの配信アドレッサブル空間48、及び(iv)
各処理エレメントの媒体アクセス・ハードウェアのこと
を云う。物理メモリ記憶空間は、制御メッセージが物理
的に置かれる実際のメモリ場所を規定する。配信アドレ
ッサブル空間は制御アドレスを含み、この中に、制御メ
ッセージが、相互接続媒体14を通して別の処理エレメ
ント上の配信アドレッサブル空間48へ複写される前に
物理メモリ記憶空間から移動される。
【0033】互いに制御エレメントを交換するエンティ
ティにとって、共有メモリは、その処理エレメント上に
位置する物理メモリ及び配信アドレッサブル空間のよう
に見える。IDSにとって、共有メモリは、異なる処理
エレメント上のIDS間で共有される配信アドレッサブ
ル空間のように見える。共有メモリ54を利用すること
によって、IDS34は、異なる処理エレメント上のエ
ンティティが、別の処理エレメント上に位置する物理メ
モリ空間へのアクセスを共有することにより互いに通信
し合うことを可能とする。配信アドレッサブル空間は、
その存在するエンティティによりアクセス可能な制御メ
ッセージのためのアドレスを与えるが、これによって、
同じ処理エレメント上のエンティティと物理メモリとの
間のアクティビティを損なうことなく相互接続媒体を通
して処理エレメント間で制御メッセージを複写すること
ができる。
【0034】共有メモリ54は、種々の処理エレメント
上のエンティティにより普通にアドレス指定可能ないず
れの物理メモリ空間も含まない。種々の処理エレメント
によりアドレス指定可能な空間のみが、各処理エレメン
ト上の配信アドレッサブル空間である。このアドレス指
定可能空間は、物理メモリ38内の1または複数の実時
間アドレスへマッピングする。
【0035】パイプ・アーキテクチャ並びにエンキュー
及びデキューの論理 図10乃至図12は、別の処理エレメント上のエンティ
ティ間でIDS34により制御メッセージ配信される指
定経路をさらに詳細に示す図である。別の処理エレメン
ト上でIDS34へのまたはIDS34からの制御メッ
セージの配信は、先入れ先出し(FIFO)バッファす
なわちパイプ56を通して制御メッセージをエンキュー
することによって生じる。各処理エレメントに関連する
IDSハードウェアは、システム内の他の処理エレメン
トの各々についての一対の配信パイプ56を備えてい
る。第1の配信パイプの対は、出て行く制御メッセージ
をバッファするために用いられる。パイプにおいて制御
メッセージをエンキューすることによってバッファが設
けられ、それによって、送信側の処理エレメント内のソ
ース・エンティティがオペレーションの実行を続けられ
る一方で、制御メッセージは宛先処理エレメントへ送ら
れるのを待っている。
【0036】簡潔とするために、図10乃至図12にお
いては、処理エレメント12aが、2つの機能エンティ
ティのみとともに示され、2対のパイプを備えている。
処理エレメント12b及び12nは、ただ1つの機能エ
ンティティと各一対のパイプとを有するように示されて
いる。しかしながら、本発明は、3つ以上の処理エレメ
ントを有しかつ各々の処理エレメントがいくつかの機能
的エンティティを備え得るようなコンピュータ・システ
ムにおいて実装化可能であることを注記する。
【0037】制御メッセージは、経路指定キューすなわ
ち経路指定機構58を用いてエンティティへの入出にお
いて経路指定される。これによって、入ったり出たりす
るメッセージがキュー状態にある一方で、送信側エンテ
ィティ及び受信側エンティティが処理を続行することが
できる。制御エレメントを配信パイプ56上またはIP
C経路指定キュー58上に入れることを、エンキュー・
オペレーションと称し、そして、制御エレメントを配信
パイプまたはIPC経路指定キューから取り除くことを
デキュー・オペレーションと称する。
【0038】図10乃至図12に示すように、特定の処
理エレメントのIPC経路指定キュー58は、出て行く
制御メッセージのための第1の経路指定キューの組と、
入ってくる制御メッセージのための第2の経路指定キュ
ーの組とに分割される。出て行く制御メッセージについ
ては、IPCソフトウェアは先ず、制御メッセージの送
り先エンティティが同じ処理エレメント上にあるかまた
は異なる処理エレメント上にあるかを判断する。送り先
エンティティが同じ処理エレメント上にある場合、制御
メッセージは、第1の経路指定キューの組から第2の経
路指定キューへと経路指定され、そしてその同じ処理エ
レメント上の送り先エンティティへ直接送られる。
【0039】出て行く制御メッセージが、別の処理エレ
メント上のエンティティを送り先としている場合、IP
Cソフトウェアは、制御エレメントから制御メッセージ
を構築してそのエレメントを適切な配信パイプ56上に
エンキューさせる。それによて、出力用IPC経路指定
キューは、処理エレメント上の特定のエンティティから
受け取った制御エレメントを多重分離しかつそれらをI
DSハードウェア34内の適切なパイプ56に入れる作
業キューとして働く。出て行くメッセージは、エンキュ
ー・ロジック60によって配信パイプ56内にエンキュ
ーされ、一時的に配信パイプ内に記憶され、そしてデキ
ュー・ロジック62によりデキューされる。それから、
デキューされたメッセージは、同じ処理エレメント上の
配信アドレッサブル空間48にマッピングされる。
【0040】IPCソフトウェアについての全てのオペ
レーションは、ローカル・メモリへ向けられるので、出
て行く制御メッセージが配信アドレッサブル空間に複写
された後は、IPCソフトウェアのオペレーションは影
響を受けない。IPCソフトウェアは、通常のオペレー
ションへ戻るに先立って、相互接続媒体14が媒体アク
セス・ハードウェア(送信)によりアクセスされるのを
待つ必要はない。なぜなら、制御メッセージは、IPC
オペレーションとは独立にかつ非同期的に、相互接続媒
体を介しIDSによって異なる処理エレメント上の配信
アドレッサブル空間48同士の間で複写することができ
るからである。さらに、送り側処理エレメント上のID
Sのプロトコルは、制御メッセージを送るエンティティ
に関して非同期的動作するので、IDSは、配信パイプ
56にエンキューされたメッセージを継続的に走査する
ことができる。この非同期オペレーションによって、処
理エレメント同士の間のエンティティ間通信が、それら
の処理エレメント上のエンティティの処理性能を低下さ
せることがない。
【0041】出力用配信パイプ56内で待っている制御
メッセージが検知されると、送り側処理エレメントのI
DSは、相互接続媒体14が利用可能か否かを判断す
る。相互接続媒体14は、システム内の全ての処理エレ
メントの間で共有されるか、または、別の処理エレメン
トによって特定の送り先処理エレメントの専用とされる
かのいずれかであるので、IDSがパイプ内で待ってい
る制御メッセージを最初に検知した時点では、相互接続
媒体14が利用できない可能性がある。相互接続媒体に
はこの共有性があることから、相互接続媒体の利用をス
ケジューリングすることによって、特定の処理エレメン
トを送り先とする複数のキュー状態のメッセージを同時
に転送できるようにすることは効率的である。
【0042】相互接続媒体14が利用可能でありかつ必
要な数の制御メッセージがエンキューされていると判断
されたならば、相互接続セッションが確立され、相互接
続媒体を介してエンキューされた制御メッセージを受信
側処理エレメントへ渡すことができる。
【0043】送り先処理エレメントにおいて、媒体アク
セス・ハードウェア(受信)52は、相互接続媒体から
制御メッセージを取り除き、そしてこれらをその配信ア
ドレッサブル空間へ複写する。IDS配信パイプ56の
オペレーションは各方向に対して同じであるので、制御
メッセージは、エンキュー・ロジック60によりエンキ
ューされ、配信パイプ56内に一時的に記憶され、そし
てデキュー・ロジック62によりデキューされて適切な
入力用IPC経路指定キュー58へ入れられる。送り先
処理エレメント上には、制御エレメントをデキューしか
つそれらを適切な入力用IPC経路指定キュー上へとエ
ンキューするためのサポート・スレッドがある。
【0044】受信側処理エレメント上のIPCの入力用
経路指定キューは、制御メッセージを多重分離しかつそ
れらを受信側処理エレメント上の適切なローカル・プロ
セス・スレッドへと指し向ける。この多重分離サポート
は、別のスレッド上で動作し、プロセッサ割り込みを要
求する代わりに、最適なプロセッサ・オペレーションに
都合のよいときに実行することができる。これによって
オーバヘッドが低減される。多重分離のためのソフトウ
ェア実行は、ローカル・メモリ・アクセスのみを用いて
行われる。その後、受信側エンティティ18は、確認メ
ッセージを送り側エンティティへ送り返すことによって
制御メッセージの受信を確認する。従って、IDS34
は、送り側処理エレメント及び受信側処理エレメントの
双方の上のエンティティに関して非同期的に動作する。
【0045】共有メモリ・システム及び非共有メモリ・
システムの実装化のための配信パイプの関係が図13乃
至図15に示されている。処理エレメント間で共有メモ
リへの直接アクセスが可能な通常のバス接続システムに
おいては、論理的かつ物理的パイプ及び信号制御領域
が、共有メモリ領域内に実装化される(図13)。直列
通信相互接続形式を用いる非共有メモリ・システムにお
いては、論理パイプが、送り元及び送り先の処理エレメ
ントの双方の物理パイプからなる(図14及び図1
5)。論理信号制御領域もまた、送り元及び送り先の処
理エレメントの双方の物理信号制御領域からなる。この
ように、相互配信サポートは、「論理共有メモリ」領域
が、送り元及び送り先の各処理エレメントのローカル物
理メモリに含まれているかのように見せる。配信パイプ
56のアーキテクチャ並びに関連するエンキュー・ロジ
ック及びデキュー・ロジックは、図16乃至図18にさ
らに適切に示されている。「論理共有メモリ」という用
語は、共有メモリまたは非共有メモリを含むシステムに
おける本発明の実装化を示す以下の記述全体を通して用
いられる。
【0046】配信パイプ56は、論理共有メモリ内に維
持される制御領域である。パイプ記憶空間は、一方の端
においては、1つの処理エレメント内のエンティティが
制御エレメントを挿入し、そして他方の端においては、
別の処理エレメント内のエンティティがその制御エレメ
ントを取り除くようなFIFOバッファとして管理され
る。図10乃至図12に示されたように、各パイプは循
環的なキューを表しており、よって、制御エレメントが
エンキューされ、保持されそして続いてデキューされる
領域を含む。
【0047】エンキュー・ロジック60は、1または複
数の可変長制御メッセージを論理共有メモリの配信パイ
プ56内に入れ、そして送り先処理エレメントに関連す
る制御領域へのアクセスを可能とする。エンキュー機能
を呼び出すための機構は、システム内部のものであり、
システム・アーキテクチャによっては規定されない。し
かしながら、次のパラメータは、エンキュー機能を呼び
出すときに必要とされる。すなわちENQUEUE(アドレス、
計数、緊急性、リターン・コード)である。アドレス・
パラメータは、配信パイプ56に置かれるべき制御エレ
メントの呼出者の、アドレス空間における場所を示す。
計数パラメータは、エンキューされる制御エレメントの
数を示す。もし複数の制御エレメントが指定される場合
は、全ての制御エレメントが、アドレス・パラメータに
より識別されるメモリ空間において連続的でなければな
らない。緊急性パラメータは、制御エレメントをエンキ
ューさせる要求の相対的な優先度(通常であるか急を要
するか)を識別する。リターン・コード・パラメータ
は、呼出者へ返されて、エンキュー・オペレーションの
成功または失敗を示す。
【0048】IDS34のデキュー部分は、配信パイプ
56から制御エレメントを取り除く機能を行う。制御エ
レメントは、IPC経路指定キュー58によって配信パ
イプ56空間定義により指定された制御領域を用いてエ
ンキューされる。IDS34のデキュー機能は、配信パ
イプ56の全ての状態を判断するために規則的な間隔で
それらの状態をポーリングする。そして、IDS34ハ
ードウェアは、その配信パイプから制御エレメントを取
り除き、配信パイプ56空間領域内の変化を反映するた
めに配信パイプの制御領域を更新する。その後、IDS
ハードウェアは、制御エレメントの送り先である処理エ
レメントへ制御エレメントを配信する。IDSハードウ
ェアは、別の制御エレメント配信パイプのために働く前
に1つの配信パイプから多重制御エレメントをデキュー
することができる。
【0049】処理エレメント内の各エンティティは、別
のスレッド上で動作していることがあるので、送信側処
理エレメントの種々のパイプへのアクセスを管理しなけ
ればならない。それによってパイプへのエンキュー・オ
ペレーションが、同じパイプへの別のスレッドからのエ
ンキュー・オペレーションと混同されることが無くな
る。異なる処理エレメントのサポート間で共有されるパ
イプ空間へアクセスするために用いられるエンキュー機
能及びデキュー機能は、処理エレメント間のロッキング
を不要とするべく規定される。
【0050】パイプのオペレーションは、ローカル・エ
ンキュー制御領域64、代用エンキュー制御領域66、
ローカル・デキュー制御領域68、及び代用デキュー制
御領域70により制御される(図17)。代用エンキュ
ー制御領域66は、エンキュー・ロジック60のみに対
する書込み及びデキュー・ロジック62のみに対する読
取りを行うために機能する。一方、代用デキュー制御領
域70は、エンキュー・ロジック60のみに対する読取
り及びデキュー・ロジック62のみに対する書込みを行
うために機能する。ローカル・エンキュー領域及びロー
カル・デキュー領域は、各処理エレメントに対してロー
カルなメモリ内にあり、そして代用エンキュー領域及び
代用デキュー領域は、論理共有メモリに配置される。
【0051】各配信パイプ56は、ローカル・エンキュ
ー制御領域64内及びローカル・デキュー制御領域68
内に一組のポインタを有する。ローカル・エンキュー制
御領域64内のポインタは、配信パイプ内の空き空間の
始まりと終わりとを示し、ローカル・デキュー制御領域
68内のポインタは、エレメントの始まりと終わりとを
示す(図16参照)。これらの制御領域は双方とも、配
信パイプのTOP(通常のエンキュー・オペレーション
のしきい値ポイント)と、配信パイプのBASE(パイ
プ内の利用可能な空間の始まり)と、配信パイプのEN
D(パイプ内の利用可能な空間の終わり)とを示すポイ
ンタを有する。制御エレメントが、現在のエレメントの
終わりとパイプのTOPとの間に残る空間に合わない場
合は、制御エレメントで循環パイプ56の周りを取り巻
くことができる。
【0052】配信パイプ56へのアクセスは、2つの隣
接するエンティティ間の一組の基本命令、すなわち対話
単位を介して行われる。共有メモリ・システムにおいて
は、これらの基本命令が、パイプの常駐する実時間パケ
ットメモリがプロセッサに対してローカルであるか、ま
たは、他の何らかのプロセッサに配置されているかをマ
スクする。これらの基本命令は、プッシュ・プル・オペ
レーションと称される。図18に示すように、プッシュ
・プル・オペレーションは、配信パイプ56を通る、エ
ンキュー・ロジック60とデキュー・ロジック62との
間の制御メッセージの流れを記述する。制御メッセージ
は、エンキュー・ロジック62から「プッシュ」されて
出され配信パイプ56へ入れられ、デキュー・ロジック
62により配信パイプから「プル」される。制御メッセ
ージはまた、デキュー・ロジック62から「プッシュ」
されて出され代用デキュー制御領域入れられ、そして、
エンキュー・ロジック60により代用デキュー制御領域
からプルされる。
【0053】ローカル・エンキュー制御領域 所与の処理エレメント内に、各配信パイプ56に対して
1つのローカル・エンキュー制御領域64がある。各制
御領域は、構造的に同じであり、ローカル・メモリ内ま
たは論理共有メモリ内のいずれかに設置されかつ保持さ
れる。各制御領域内のフィールドは、関連する配信パイ
プ56の場所を識別し、そのパイプの現在の状態(空き
状態、満杯状態、またはラップ状態)を識別し、そのパ
イプ内の制御エレメントの始まりオフセットと終わりオ
フセットとを識別する状態情報を与える(図16を参
照)。
【0054】図19は、ローカル・エンキュー制御領域
64の構造及びフォーマット、並びにその情報フィール
ドを示す図である。パイプ・アドレス・フィールド(B
ASE)は、32ビット倍ワード配列フィールドであ
り、制御エレメントの循環的キューが保持される論理共
有メモリ内の領域の32ビットの物理アドレスを含む。
エンキュー状態フィールド(ES)は、16ビットのワ
ード配列フィールドであり、ローカル・エンキュー・ロ
ジック60により検知されたパイプ56の現在の状態情
報を保持するために用いられるビットを含む。ビット0
は、フル(full)・ビットであり、パイプが満杯であるか
否かを示す。エンキュー・ロジック60が制御エレメン
トをパイプ内へ入れようとするときに十分な空間がない
場合、エンキュー・ロジック60はこのビットを「1」
(満杯)にセットする。エンキュー・ロジック60は、
制御エレメントをパイプ内へ無事に入れる毎にこのビッ
トをリセットする。このビットはまた、初期化中または
配信パイプ56の両端が同期された後にも「0」(満杯
でない)にリセットされる。ビット1は、空きビットで
あり、代用デキュー制御領域70内の代用デキュー状態
フィールドの空きビットの設定を反映するべくセットさ
れる。ビット2−7、9−10、及び12−15は、予
備である。ビット8は、ラップ・ビットであり、パイプ
内の空き空間の始まりとトップ(TOP)との間に残っ
ている空間に制御エレメントを入れられないことを示
す。エンキュー・ロジック60は、このビットの現在の
設定をトグル(toggle)させる。このビットは、初期化
中または配信パイプ56の両端が同期された後に「0」
にセットされる。ビット11は、キュー・ビットであ
り、制御エレメントがエンキュー・ロジック60により
無事にパイプ中に入れられたことを示す。
【0055】ラップ・エレメント・オフセット・フィー
ルド(WE)は、16ビットのワード配列フィールドで
あり、パイプ内におけるパイプ・アドレス(BASE)
からラップ制御エレメントの場所までのオフセットをバ
イト単位で含む。このフィールドは、ラップ制御エレメ
ントがパイプ内へ入れられる毎に更新される。
【0056】空き空間終わりフィールド(EF)は、1
6ビットのワード配列フィールドであり、パイプ内にお
ける空き空間の終わりまでのオフセットをバイト単位で
含む。このフィールドは、制御エレメントをそのパイプ
内に入れるために利用できる空間の終わりを表す。この
フィールドは、エンキュー・ロジック60が呼び出され
る毎に更新される。このフィールドは、デキューされて
いない制御エレメントが上書きされないことを保証する
ために、代用デキュー制御領域70内のエレメント・フ
ィールドの始まりに対して検査される。
【0057】空き空間始まりフィールド(SF)は、1
6ビットのワード配列フィールドであり、パイプ内にお
ける空き空間の始まりまでのオフセットをバイト単位で
含む。この空き空間の始まりは、パイプへ入れられる次
の制御エレメントのための場所に対応する。このフィー
ルドは、制御エレメントがパイプ内へ入れられる毎に更
新される。
【0058】TOPまでのオフセット(TOP)は、1
6ビットのワード配列フィールドであり、制御エレメン
トを保持するために用いることができるパイプの利用可
能領域の終わりまでのオフセットをバイト単位で含む。
このフィールドの状態は、初期化時にセットされる。
【0059】ENDまでのオフセット(END)は、1
6ビットのワード配列フィールドであり、パイプの物理
的終端までのオフセットをバイト単位で含む。このフィ
ールドは、パイプのために論理共有メモリ内の空間を割
り当てるときのパイプの物理的大きさを表す。TOPま
でのオフセット及びENDまでのオフセットは、ラップ
制御エレメントを保持するためにパイプの端において十
分な空間が残されていることを確保する。
【0060】代用エンキュー制御領域 代用エンキュー制御領域66は、論理共有メモリ54内
に設置されかつ保持される。この制御領域内にある2つ
のフィールドは、代用空き始まりフィールド(SSF)
及び代用エンキュー状態フィールド(SES)である。
これらのフィールド内の情報は、代用情報と称される。
なぜなら、これらの情報は、ローカル・エンキュー制御
領域64内で見い出される情報の複写だからである。代
用エンキュー制御領域に含まれる代用情報は、パイプの
もう一方の端において、ローカル・エンキュー制御領域
64内の情報と同様にデキュー・ロジック62により用
いられる。これは、分散態様のパイプを管理するためで
ある。
【0061】代用空き空間始まりフィールド(SSF)
は、16ビットのワード配列フィールドであり、パイプ
内におけるパイプ・アドレス(BASE)からエンキュ
ー・ロジックが次の制御エレメントを入れる場所までの
オフセットをバイト単位で含む。代用空き空間始まりフ
ィールドは、各制御エレメントがパイプ内に入れられる
毎に更新される。エンキュー・ロジック60は、このフ
ィールドへ書込み、そして、デキュー・ロジック62
は、このフィールドから読取る。
【0062】代用エンキュー状態フィールド(SES)
は、16ビットのワード配列フィールドであり、エンキ
ュー・ロジック60により検知された現在のパイプの状
態をデキュー・ロジック62へ伝えるために用いられる
ビットを含む。エンキュー・ロジック60は、このフィ
ールドへ書込み、そして、デキュー・ロジック62は、
このフィールドから読取る。エンキュー・ロジック60
は、制御エレメントがパイプ内へ入れられる毎に、代用
エンキュー状態フィールド内の全てのビットを更新す
る。代用空き空間始まりフィールド(SSF)は、パイ
プへのアクセス整合性を保つために、代用エンキュー状
態フィールド(SES)の前に書込まれなければならな
い。
【0063】ローカル・デキュー制御領域 ローカル・エンキュー制御領域64と同様に、所与の処
理エレメント内に、各配信パイプ56に対して1つのロ
ーカル・デキュー制御領域68がある。各制御領域68
は、構造的に同じであり、ローカル・メモリまたは論理
共有メモリのいずれかに設置されかつ維持される。各制
御領域内のフィールドは、関連する配信パイプ56の場
所を識別し、そのパイプの現在の状態(空き状態、満杯
状態、またはラップ状態)を示し、パイプ内の制御エレ
メントの始まりオフセットと終わりオフセットとを識別
する状態情報を与える。
【0064】図20は、ローカル・デキュー制御領域6
8の構造及びフォーマット、並びにその情報フィールド
を示す図である。パイプ・アドレス・フィールド(BA
SE)は、32ビット倍ワード配列フィールドであり、
制御エレメントの循環的キューが保持される論理共有メ
モリ内の領域の32ビットの物理アドレスを含む。デキ
ュー状態フィールド(DS)は、16ビットのワード配
列フィールドであり、ローカル・デキュー・ロジック6
2により検知されたパイプ56の現在の状態情報を保持
するために用いられるビットを含む。ビット0は、フル
(full)・ビットであり、パイプが満杯であるか否かを示
す。このビットは、代用エンキュー状態フィールド内の
ビット0の設定を反映するべくセットされる。ビット1
は、空きビットであり、パイプが空いているか否かを示
す。デキュー・ロジック62は、パイプが空いていると
判断したとき、このビットを「1」(空いている)にセ
ットする。デキュー・ロジックは、代用エンキュー状態
領域の空きビットが「0」にセットされたと判断したと
き、このビットを「0」(空いていない)にリセットす
る。このビットはまた、初期化中または配信パイプ56
の両端が同期された後にも「0」にセットされる。ビッ
ト2−7、9、及び12−15は、予備である。ビット
8は、ラップ・ビットであり、パイプのトップと空き空
間の始まりとの間に制御エレメントのための十分な空間
がなかったために制御エレメントがパイプ内に入れられ
なかったことを示す。デキュー・ロジック62は、ラッ
プ制御エレメントを取り除いた後にこのビットの現在の
設定をトグルさせる。このビットは、初期化中または配
信パイプ56の両端が同期された後に「0」にセットさ
れる。ビット10は、内部先取りビットであり、パイプ
が空でない場合であっても更なる制御エレメントをパイ
プから取り除かないことを示す。ビット11は、内部デ
キュー・ビットであり、制御エレメントがデキュー・ロ
ジック62により無事にパイプから取り除かれたことを
示す。このビットは、デキュー・ロジックから出る前に
「0」にリセットされる。
【0065】ラップ・エレメント・オフセット・フィー
ルド(WE)は、16ビットのワード配列フィールドで
あり、パイプ内におけるパイプ・アドレス(BASE)
からラップ制御エレメントの場所までのオフセットをバ
イト単位で含む。
【0066】エレメント終わりフィールド(EE)は、
16ビットのワード配列フィールドであり、パイプ内に
おける制御エレメントの終わりに対するオフセットをバ
イト単位で含む。このフィールドは、パイプ内の最後の
制御エレメントの直後のバイトを指示し、デキュー・ロ
ジックが呼び出される毎に更新される。このフィールド
は、代用エンキュー制御領域の空き空間始まりフィール
ドにオフセットとして保持された情報の複写である。
【0067】エレメント始まりフィールド(SE)は、
16ビットのワード配列フィールドであり、パイプ内に
おける次の制御エレメントの始まりまでのオフセットを
バイト単位で含む。このフィールドは、制御エレメント
がパイプから取り除かれる毎に更新される。
【0068】TOPまでのオフセット(TOP)は、1
6ビットのワード配列フィールドであり、制御エレメン
トを保持するために用いることができるパイプの利用可
能領域の終わりまでのオフセットをバイト単位で含む。
このフィールドの状態は、初期化時にセットされる。
【0069】ENDまでのオフセット(END)は、1
6ビットのワード配列フィールドであり、パイプの物理
的終端までのオフセットをバイト単位で含む。このフィ
ールドは、パイプのために論理共有メモリ内の空間を割
り当てるときのパイプの物理的大きさを表す。TOPま
でのオフセット及びENDまでのオフセットは、ラップ
制御エレメントを保持するためにパイプの端において十
分な空間が残されていることを確保する。
【0070】代用デキュー制御領域 代用デキュー制御領域70は、論理共有メモリ54内に
設置されかつ保持される。この制御領域内にある2つの
フィールドは、代用エレメント始まりフィールド(SS
E)及び代用デキュー状態フィールド(SDS)であ
る。これらのフィールド内の情報は、代用情報と称され
る。なぜなら、これらの情報は、ローカル・デキュー制
御領域68内で見い出される情報の複写だからである。
代用デキュー制御領域に含まれる代用情報は、パイプの
もう一方の端において、ローカル・デキュー制御領域6
8内の情報と同様にエンキュー・ロジック60により用
いられる。これは、分散態様のパイプを管理するためで
ある。
【0071】代用エレメント始まりフィールド(SS
E)は、16ビットのワード配列フィールドであり、パ
イプ内におけるパイプ・アドレス(BASE)からデキ
ュー・ロジックが次の制御エレメントを取り除く場所ま
でのオフセットをバイト単位で含む。代用エレメント始
まりフィールドは、各制御エレメントがパイプ56から
取り除かれる毎にデキュー・ロジック62により更新さ
れる。代用エレメント始まりフィールドは、エンキュー
・ロジック60により読取られるが書込まれることはな
い。
【0072】代用デキュー状態フィールド(SDS)
は、16ビットのワード配列フィールドであり、デキュ
ー・ロジック62により検知された現在のパイプの状態
をエンキュー・ロジック60へ伝えるために用いられる
ビットを含む。代用エレメント始まりフィールド(SS
E)は、パイプへのアクセス整合性を保つために、代用
デキュー状態フィールド(SDS)の前に書込まれなけ
ればならない。
【0073】信号制御領域 各処理エレメント12は、論理共有メモリ54内に信号
制御領域72を維持する。図21に示すように、信号制
御領域は、各処理エレメントに対してセグメント化され
た固有領域を有しており、各処理エレメントはその固有
領域から信号を受信する。信号制御領域は、信号の送り
元を識別するかまたは割込むための手段と、信号または
割込みに対する理由を示すための手段とを備える。
【0074】図22は、信号制御領域72の構造を示
す。信号制御領域の構造の中のエンキュー・フィールド
は、8ビット・フィールドである。エンキュー・フィー
ルドのビット1−7は、予備である。ビット0は、パイ
プ56の状態の変化が、パイプのもう一方の端において
デキュー・ロジック62によりエンキュー・ロジック6
0に対して信号として送られていることを示す。状態の
変化とは、例えば、制御エレメントがパイプに入れられ
たこと等である。状態変化についての正確な理由は、代
用デキュー制御領域70の代用デキュー状態フィールド
の内容を調べることによって判断することができる。
【0075】信号制御領域72の管理フィールドもま
た、8ビット・フィールドである。管理フィールドのビ
ット1−7は、予備である。ビット0は、配信パイプ5
6の一端における配信ロジックの状態の変化を示すため
に用いられる。配信パイプの一端における配信ロジック
は、もう一方の端における配信ロジックの配慮を必要と
する。
【0076】信号制御領域72のデキュー・フィールド
は、同様の8ビット・フィールドである。デキュー・フ
ィールドのビット1−7は、予備である。ビット0は、
パイプの状態の変化が、パイプのもう一方の端において
エンキュー・ロジック60によりデキュー・ロジック6
2に対して信号として送られていることを示す。状態の
変化とは、例えば、制御エレメントがパイプから取り除
かれたこと等である。状態変化についての正確な理由
は、代用エンキュー制御領域70の代用エンキュー状態
フィールドの内容を調べることによって判断することが
できる。
【0077】エンキュー・プロトコル及びデキュー・プ
ロトコルは、論理共有メモリ内に保持された状態情報を
用いて動作し、信号発生オペレーションを必要としな
い。しかしながら、所定の実施例及びプロトコルにおい
ては、配信パイプ内に所定の状態変化が発生したとき、
別の処理エレメントの信号発生を必要とするような条件
が存在し得る。信号発生を必要とするようないくつかの
条件としては、配信パイプが空き状態から空いてない状
態へともしくは空いてない状態から空き状態へと変化し
たとき、配信パイプが満杯でない状態から満杯状態へと
もしくは満杯状態から満杯でない状態へと変化したと
き、または、制御エレメントが配信パイプへ入れられた
ときもしくは配信パイプから取り除かれたとき、があ
る。
【0078】エンキュー・プロトコル エンキュー・プロトコルは、制御エレメントを配信パイ
プ内へエンキューしかつそのパイプの動作を管理するエ
ンキュー・ロジック60のオペレーションを規定する。
制御エレメントの大きさは、バイト単位で指定される。
いくつかの制御エレメントは、1つのエンキュー・オペ
レーションの呼出しによってエンキュー可能であるが、
1つのオペレーションでエンキューされる全ての制御エ
レメントは、メモリ内で連続的でなければならない。配
信パイプ56が、送信側処理エレメント内に物理的に位
置しているとき、制御エレメントのエンキューは、ロー
カル・オペレーションである。配信パイプ56が、受信
側処理エレメント上に位置しているとき、オペレーショ
ンは、相互接続媒体を通した制御エレメントのプッシュ
を含む。代用空き空間開始フィールド及び代用エンキュ
ー状態フィールドへのアクセスに必要なオペレーション
のタイプ(ローカル型であるか分散型であるか)は、そ
れらのオペレーションが論理共有メモリ内のどこにある
かに依存する。信号発生条件の変更を可能とするため
に、エンキュー・ロジック60が配信パイプ56のもう
一方の端のデキュー・ロジック62へ信号を送るべき条
件を識別するシステム・コンフィギュレーションの際
に、オプションを選択することができる。
【0079】デキュー・プロトコル デキュー・プロトコルは、制御エレメントを配信パイプ
内へデキューしかつそのパイプの動作を管理するデキュ
ー・ロジック62のオペレーションを規定する。配信パ
イプ56が、受信側処理エレメント内に物理的に位置し
ているとき、制御エレメントのデキューは、ローカル・
オペレーションである。配信パイプ56が、送信側処理
エレメント上に位置しているとき、オペレーションは、
相互接続媒体を通した制御エレメントのプッシュを含
む。代用デキュー制御領域へのアクセスに必要なオペレ
ーションのタイプ(ローカル型であるか分散型である
か)は、それらのオペレーションが論理共有メモリ内の
どこにあるかに依存する。信号発生条件の変更を可能と
するために、デキュー・ロジック62が配信パイプ56
のもう一方の端のエンキュー・ロジック60へ信号を送
るべき条件を識別するシステム・コンフィギュレーショ
ンの際に、オプションを選択することができる。
【0080】単純読取りオペレーション 次のプロセスは、第2の処理エレメント上のエンティテ
ィが、第1の処理エレメント内の物理メモリに位置する
制御メッセージを読み取りたい場合に発生する。ソース
・エンティティ(第1の処理エレメント)は、その読取
り要求の参照空間として用いられる配信アドレッサブル
空間を割当て、そしてその割当てられた空間に対して独
自の識別子の割付けを要求する。ソース・エンティティ
は、制御エレメントを構築し、そしてその処理エレメン
ト上の出力用IPC経路指定キューへそのエレメントを
エンキューする。
【0081】制御エレメントは、適切な配信パイプへと
エンキューされ、デキューされ、そしてアドレス空間管
理機構46により第1の処理エレメント上の配信アドレ
ッサブル空間48へと移動される。媒体空間管理機構5
0は、相互接続媒体14上の空間へリンク・フレームの
形で制御エレメントをマッピングする。制御エレメント
を含むリンク・フレームは、送り先処理エレメント上の
媒体空間管理機構50へと送られる。媒体空間管理機構
50は、リンク・フレームから制御エレメントを取り除
き、その制御エレメントを配信アドレッサブル空間へと
マッピングしかつ複写する。アドレス空間管理機構46
は、送り先処理エレメント上の適切なパイプ56へ制御
エレメントをエンキューする。
【0082】最後に、制御エレメントは、適切な入力用
IPC経路指定キュー上へとデキューされ、送り先処理
エレメント上の適切なエンティティへと経路指定され
る。それから、そのエンティティは、その制御エレメン
トの場所に対応する配信アドレッサブル空間の参照空間
をその物理メモリへと複写する。上記のプロセスが完了
すると、その配信を要求した送り先処理エレメント上の
受信側エンティティは、状態制御エレメント(応答)
を、ソース・エンティティへの経路指定のためにそのI
PC32へと返すべくエンキューする。
【0083】単純書込みオペレーション 次のプロセスは、第1の処理エレメントが、その物理メ
モリ内に位置する制御メッセージを第2の処理エレメン
トは書込みたい場合に発生する。送り先エンティティ
は、その書込みオペレーションを受信するために必要な
参照空間として用いられる配信アドレッサブル空間48
を割当て、その割当てられた空間に対して独自の識別子
の割付けを要求する。送り先エンティティは、参照空間
の場所を知らせるためのイベント制御エレメントをソー
ス・エンティティへと送る。
【0084】ソース・エンティティ(第1の処理エレメ
ント)は、書込み要求制御エレメントを構築し、そして
IPC32に対して、制御メッセージを第2の処理エレ
メント上のエンティティへ送る必要があることを通知す
る。その要求は、ソース・エンティティが送り先エンテ
ィティへ書込もうとする制御エレメントの長さを示す。
IPCは、その制御メッセージのアドレスを読み取るこ
とによって、それが第1の処理エレメント上にはないこ
と及びIDSがその制御メッセージの送り先エンティテ
ィへの書込みを要求されることを判断する。出力用IP
C経路指定キューは、その制御メッセージを適切なID
Sパイプへと経路指定する。
【0085】制御エレメントは、適切な配信パイプへと
エンキューされ、デキューされ、そしてアドレス空間管
理機構46によって第1の処理エレメント上の配信アド
レッサブル空間48へと移動される。媒体空間管理機構
50は、相互接続媒体14上の空間へリンク・フレーム
の形で制御エレメントをマッピングする。制御エレメン
トを含むリンク・フレームは、送り先処理エレメント上
の媒体空間管理機構50へと送られる。媒体空間管理機
構50は、リンク・フレームから制御エレメントを取り
除き、その制御エレメントを配信アドレッサブル空間へ
とマッピングしかつ複写する。アドレス空間管理機構4
6は、送り先処理エレメント上の適切なパイプへ制御エ
レメントをエンキューする。
【0086】最後に、制御エレメントは、適切な入力用
IPC経路指定キュー上へとデキューされ、送り先処理
エレメント上の適切なエンティティへと経路指定され
る。それから、そのエンティティは、その制御エレメン
トの場所に対応する配信アドレッサブル空間の参照空間
をその物理メモリへと複写する。上記の書込みオペレー
ションが完了すると、受信側処理エレメント上の送り先
エンティティは、オペレーションが完了したことを示す
状態制御エレメント(応答)を、ソース・エンティティ
へと返す。
【0087】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0088】(1)コンピュータ・システムであって、
(a)複数の処理エレメントであって、各前記処理エレ
メントが1または複数のプログラムの実行を通して1ま
たは複数の機能を実行しかつ各前記プログラムが前記コ
ンピュータ・システム内の他の処理エレメント上で実行
中のプログラムに対して非同期的に動作するような上記
複数の処理エレメントと、(b)前記複数の処理エレメ
ントを相互接続するための相互接続媒体と、(c)前記
複数の処理エレメントのいずれの上で実行中のプログラ
ム同士の間においても通信を可能とするために前記複数
の処理エレメントの各々に配置された相互処理通信ロジ
ックと、(d)前記相互接続媒体と前記相互処理通信ロ
ジックとの間をインタフェースするための相互配信サポ
ート・ハードウェアであって、(i)第1の処理エレメン
ト上の物理メモリから前記第1の処理エレメント上の機
能により得られた制御エレメントをエンキューし、(ii)
前記エンキューされた制御エレメントを前記第1の処理
エレメントに関連する第1のメモリ・デバイスに一時的
に記憶し、(iii)複写トランザクションを介し前記相互
接続媒体を通して、前記一時的に記憶された制御エレメ
ントを、前記第1のメモリ・デバイスから第2の処理エ
レメントに関連する第2のメモリ・デバイスへと複写
し、(iv)前記複写された制御エレメントを、前記第2の
メモリ・デバイスから前記第2の処理エレメント上の物
理メモリへとデキューするために、前記複数の処理エレ
メント上で実行中の前記プログラムに対して非同期的に
動作する上記相互配信サポート・ハードウェアとを有す
るコンピュータ・システム。 (2)前記相互接続媒体が、ローカル・エリア・ネット
ワークからなる上記(1)に記載のコンピュータ・シス
テム。 (3)前記相互接続媒体が、直列デジタル交換ネットワ
ークからなる上記(1)に記載のコンピュータ・システ
ム。 (4)前記相互接続媒体が、双方向性コンピュータ・バ
スからなる上記(1)に記載のコンピュータ・システ
ム。 (5)前記相互接続媒体が、データ・キューブ型ネット
ワークからなる上記(1)に記載のコンピュータ・シス
テム。 (6)前記相互接続媒体が、ポイント・ツー・ポイント
型網状ネットワークからなる上記(1)に記載のコンピ
ュータ・システム。 (7)各前記処理エレメント上の前記相互配信サポート
・ハードウェアが、(i)前記物理メモリの配置された処
理エレメント上で動作する機能によってのみアドレス指
定可能な前記物理メモリと、(ii)前記エンキューされた
制御エレメントを一時的に記憶するための前記メモリ・
デバイスと、(iii)前記一時的に記憶された制御エレメ
ントが前記相互接続媒体を通して複写される前にマッピ
ングされる配信アドレッサブル空間であって、その配信
アドレッサブル空間が配置された処理エレメント以外の
処理エレメント上で動作する機能によりアドレス指定可
能である上記配信アドレッサブル空間とを有する上記
(1)に記載のコンピュータ・システム。 (8)前記第1のメモリ・デバイス及び前記第2のメモ
リ・デバイスが、FIFOバッファからなる上記(7)
に記載のコンピュータ・システム。 (9)処理エレメント上の各機能が、関連する1つの前
記FIFOバッファを有し、かつ各前記FIFOバッフ
ァが、入ってくる制御エレメントを一時的に記憶するた
めの1つの先入れ先出しパイプと出ていく制御エレメン
トを一時的に記憶するための1つの先入れ先出しパイプ
とを有する上記(8)に記載のコンピュータ・システ
ム。 (10)前記制御エレメントが、読取りオペレーション
及び書込みオペレーションを表し、かつ、いずれの一の
複写トランザクション中においても、前記相互接続媒体
を通して前記第1のメモリ・デバイスから前記第2のメ
モリ・デバイスへと複数の制御エレメントを複写可能で
ある上記(7)に記載のコンピュータ・システム。 (11)前記相互配信サポート・ハードウェアのオペレ
ーションが、同じ処理エレメント上で動作している機能
に対して非同期的である上記(7)に記載のコンピュー
タ・システム。 (12)前記第2の処理エレメント上の相互配信サポー
ト・ハードウェアが、前記第1の処理エレメント上の相
互配信サポート・ハードウェアに対して、複写トランザ
クションが完了したことを通知する上記(11)に記載
のコンピュータ・システム。 (13)前記相互配信サポート・ハードウェアが、前記
FIFOバッファの中に記憶された制御エレメントを制
御するために前記FIFOバッファを継続的に走査する
上記(9)に記載のコンピュータ・システム。 (14)相互接続媒体により接続されることによりコン
ピュータ・システムを形成する個別の処理エレメント上
で非同期的に動作する機能同士の間で制御エレメントを
交換するための方法であって、(a)第1の処理エレメ
ント上で動作する第1の機能を用いて、前記第1の処理
エレメント上に配置された物理メモリから制御エレメン
トを得るステップと、(b)前記第1の処理エレメント
に関連する第1のメモリ・デバイスに前記制御エレメン
トをエンキューするステップと、(c)前記第1の機能
が自由に動作を継続する一方で、前記第1のメモリ・デ
バイスに前記制御エレメントを一時的に記憶するステッ
プと、(d)前記第1の処理エレメントに関連する配信
アドレッサブル空間へと前記制御エレメントをマッピン
グしかつ移動させるステップと、(e)複写トランザク
ションを介し前記相互接続媒体を通して、第2の処理エ
レメントに関連する配信アドレッサブル空間へと前記制
御エレメントを複写するステップと、(f)前記第2の
処理エレメントに関連する前記配信アドレッサブル空間
から前記第2の処理エレメントに関連する第2のメモリ
・デバイスへと前記制御エレメントをマッピングしかつ
移動させるステップと、(g)前記第2のメモリ・デバ
イスから前記第2の処理エレメント上に配置された物理
メモリへと前記制御エレメントをデキューするステップ
とを有する制御エレメントを交換するための方法。 (15)前記制御エレメントを前記第1のメモリ・デバ
イスからデキューするステップと、前記制御エレメント
を前記第2のメモリ・デバイスへとエンキューするステ
ップとを有する前記(14)に記載の方法。 (16)前記物理メモリが、前記物理メモリが配置され
た処理エレメント上で動作する機能によってのみアドレ
ス指定可能であり、かつ前記配信アドレッサブル空間
が、前記配信アドレッサブル空間が配置された処理エレ
メント以外の処理エレメント上で動作する機能によって
アドレス指定可能である前記(14)に記載の方法。 (17)前記第1のメモリ・デバイス及び前記第2のメ
モリ・デバイスが、FIFOバッファからなる前記(1
6)に記載の方法。 (18)処理エレメント上の各機能が、関連する1つの
前記FIFOバッファを有し、かつ各前記FIFOバッ
ファが、入ってくる制御エレメントを一時的に記憶する
ための1つの先入れ先出しパイプと出ていく制御エレメ
ントを一時的に記憶するための1つの先入れ先出しパイ
プとを有する上記(17)に記載の方法。 (19)前記制御エレメントが、読取りオペレーション
及び書込みオペレーションを表し、かつ、いずれの一の
複写トランザクション中においても、前記相互接続媒体
を通して前記第1のメモリ・デバイスから前記第2のメ
モリ・デバイスへと複数の制御エレメントを複写可能で
ある前記(18)に記載の方法。 (20)前記第1の処理エレメントに対して、複写トラ
ンザクションが完了したことを通知する前記(18)に
記載の方法。 (21)前記FIFOバッファが、その中に記憶された
制御エレメントを制御するために継続的に走査される前
記(18)に記載の方法。
【0089】
【発明の効果】以上、送り先処理エレメント上のエンテ
ィティが、送り元処理エレメントの物理メモリ内に含ま
れる制御メッセージヘとアクセスしかつこれを獲得する
ことができるような装置及び方法について説明した。こ
れは、次のプロセスによるものである。すなわち、(i)
送り元処理エレメント上のIDSが、制御メッセージ
を、その物理メモリから送り元処理エレメント上のID
Sにより設けられるアドレス空間へと移動させ、(ii)制
御メッセージが、送り元処理エレメント上のアドレス空
間から送り先処理エレメント上のアドレス空間へと複写
され、(iii)送り先処理エレメント上のIDSが、制御
メッセージを、送り先処理エレメント上のアドレス空間
から送り先処理エレメント上の物理メモリへと移動させ
る。
【図面の簡単な説明】
【図1】本発明の原理に従って構築されたコンピュータ
・システムのブロック図である。
【図2】図1のシステムの処理エレメントを接続する相
互接続媒体の各種の実装化を示した図である。
【図3】図1のシステムの処理エレメントを接続する相
互接続媒体の各種の実装化を示した図である。
【図4】図1のシステムの処理エレメントを接続する相
互接続媒体の各種の実装化を示した図である。
【図5】図1のシステムの処理エレメントのアーキテク
チャの詳細な構成図である。
【図6】異なる処理エレメント上に配置された物理メモ
リ同士の間で制御エレメントを交換することができるメ
モリ空間構造を示した図である。
【図7】非共有メモリを示す図3の処理エレメント同士
の間で通信を担う相互配信サポート・ハードウェアのア
ーキテクチャの詳細な構成図である。
【図8】図9とともに、共有メモリを示す図3の処理エ
レメント同士の間で通信を担う相互配信サポート・ハー
ドウェアのアーキテクチャの詳細な構成図である。
【図9】図8とともに、共有メモリを示す図3の処理エ
レメント同士の間で通信を担う相互配信サポート・ハー
ドウェアのアーキテクチャの詳細な構成図である。
【図10】図11及び図12とともに、相互接続された
処理エレメント同士の間での制御メッセージのフロー経
路を示した詳細な構成図である。
【図11】図10及び図12とともに、相互接続された
処理エレメント同士の間での制御メッセージのフロー経
路を示した詳細な構成図である。
【図12】図10及び図11とともに、相互接続された
処理エレメント同士の間での制御メッセージのフロー経
路を示した詳細な構成図である。
【図13】処理エレメント同士の間での共有メモリへの
直接アクセスを備えたシステムにおいて実装化された配
信パイプのアーキテクチャを示す図である。
【図14】図15とともに、処理エレメント同士の間で
の共有メモリへの直接アクセスをもたない(非共有メモ
リ)システムにおいて実装化された配信パイプのアーキ
テクチャを示す図である。
【図15】図14とともに、処理エレメント同士の間で
の共有メモリへの直接アクセスをもたない(非共有メモ
リ)システムにおいて実装化された配信パイプのアーキ
テクチャを示す図である。
【図16】図7乃至図9の相互配信サポート・ハードウ
ェアに用いられた配信パイプのアーキテクチャを示す図
である。
【図17】図16の配信パイプに関連するエンキュー領
域及びデキュー領域の構成図である。
【図18】図16の配信パイプに関連するエンキュー領
域及びデキュー領域の構成図である。
【図19】図17及び図18のエンキュー制御領域の構
造を示す図である。
【図20】図17及び図18のデキュー制御領域の構造
を示す図である。
【図21】システムの処理エレメントに関連する信号制
御領域を示した図である。
【図22】図21の信号制御領域の構造を示した図であ
る。
【符号の説明】
12 処理エレメント 14 相互接続媒体 16 外部デバイス 18 機能エンティティ 20 実行サポート 22 管理サポート 24 デバイス付設サポート 26 相互接続サポート 30 プロセス 32 IPC 34 IDS 38 物理メモリ 40 物理空間管理機構 42 メモリ・アクセス 46 アドレス空間管理機構 48 配信アドレッサブル空間 50 媒体空間管理機構 52 媒体アクセス 54 論理共有メモリ 56 配信パイプ 58 IPC経路指定キュー 60 エンキュー・ロジック 62 デキュー・ロジック 64 ローカル・エンキュー制御領域 66 代用エンキュー制御領域 68 ローカル・デキュー制御領域 70 代用デキュー制御領域 72 信号制御領域
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイス・ウィリアム・クラル アメリカ合衆国33486 フロリダ州、ボ カ・ラトン、ヘザーヒル・レイン 5096− 4 (72)発明者 チャールズ・エドワード・クールマン アメリカ合衆国33431 フロリダ州、ボ カ・ラトン、ノースイースト・サーティフ ァースト・ストリート 383 (72)発明者 シャーラム・サラミアン アメリカ合衆国78759 テキサス州、オー スチン、スパイスウッド・メサ 10219 (72)発明者 ユージーン・ミッチェル・トマス アメリカ合衆国34712 フロリダ州、クラ ーモント、ピー・オー・ボックス 120862 (72)発明者 ジェイムズ・テオドール・チェブドス アメリカ合衆国33308 フロリダ州、エフ ティ・ローダーデール、ノースイースト・ フィフティセブンス・ストリート 2711

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムであって、(a)
    複数の処理エレメントであって、各前記処理エレメント
    が1または複数のプログラムの実行を通して1または複
    数の機能を実行しかつ各前記プログラムが前記コンピュ
    ータ・システム内の他の処理エレメント上で実行中のプ
    ログラムに対して非同期的に動作するような上記複数の
    処理エレメントと、(b)前記複数の処理エレメントを
    相互接続するための相互接続媒体と、(c)前記複数の
    処理エレメントのいずれの上で実行中のプログラム同士
    の間においても通信を可能とするために前記複数の処理
    エレメントの各々に配置された相互処理通信ロジック
    と、(d)前記相互接続媒体と前記相互処理通信ロジッ
    クとの間をインタフェースするための相互配信サポート
    ・ハードウェアであって、(i)第1の処理エレメント上
    の物理メモリから前記第1の処理エレメント上の機能に
    より得られた制御エレメントをエンキューし、(ii)前記
    エンキューされた制御エレメントを前記第1の処理エレ
    メントに関連する第1のメモリ・デバイスに一時的に記
    憶し、(iii)複写トランザクションを介し前記相互接続
    媒体を通して、前記一時的に記憶された制御エレメント
    を、前記第1のメモリ・デバイスから第2の処理エレメ
    ントに関連する第2のメモリ・デバイスへと複写し、(i
    v)前記複写された制御エレメントを、前記第2のメモリ
    ・デバイスから前記第2の処理エレメント上の物理メモ
    リへとデキューするために、前記複数の処理エレメント
    上で実行中の前記プログラムに対して非同期的に動作す
    る上記相互配信サポート・ハードウェアとを有するコン
    ピュータ・システム。
  2. 【請求項2】前記相互接続媒体が、ローカル・エリア・
    ネットワークからなる請求項1に記載のコンピュータ・
    システム。
  3. 【請求項3】前記相互接続媒体が、直列デジタル交換ネ
    ットワークからなる請求項1に記載のコンピュータ・シ
    ステム。
  4. 【請求項4】前記相互接続媒体が、双方向性コンピュー
    タ・バスからなる請求項1に記載のコンピュータ・シス
    テム。
  5. 【請求項5】前記相互接続媒体が、データ・キューブ型
    ネットワークからなる請求項1に記載のコンピュータ・
    システム。
  6. 【請求項6】前記相互接続媒体が、ポイント・ツー・ポ
    イント型網状ネットワークからなる請求項1に記載のコ
    ンピュータ・システム。
  7. 【請求項7】各前記処理エレメント上の前記相互配信サ
    ポート・ハードウェアが、(i)前記物理メモリの配置さ
    れた処理エレメント上で動作する機能によってのみアド
    レス指定可能な前記物理メモリと、(ii)前記エンキュー
    された制御エレメントを一時的に記憶するための前記メ
    モリ・デバイスと、(iii)前記一時的に記憶された制御
    エレメントが前記相互接続媒体を通して複写される前に
    マッピングされる配信アドレッサブル空間であって、そ
    の配信アドレッサブル空間が配置された処理エレメント
    以外の処理エレメント上で動作する機能によりアドレス
    指定可能である上記配信アドレッサブル空間とを有する
    請求項1に記載のコンピュータ・システム。
  8. 【請求項8】前記第1のメモリ・デバイス及び前記第2
    のメモリ・デバイスが、FIFOバッファからなる請求
    項7に記載のコンピュータ・システム。
  9. 【請求項9】処理エレメント上の各機能が、関連する1
    つの前記FIFOバッファを有し、かつ各前記FIFO
    バッファが、入ってくる制御エレメントを一時的に記憶
    するための1つの先入れ先出しパイプと出ていく制御エ
    レメントを一時的に記憶するための1つの先入れ先出し
    パイプとを有する請求項8に記載のコンピュータ・シス
    テム。
  10. 【請求項10】前記制御エレメントが、読取りオペレー
    ション及び書込みオペレーションを表し、かつ、いずれ
    の一の複写トランザクション中においても、前記相互接
    続媒体を通して前記第1のメモリ・デバイスから前記第
    2のメモリ・デバイスへと複数の制御エレメントを複写
    可能である請求項7に記載のコンピュータ・システム。
  11. 【請求項11】前記相互配信サポート・ハードウェアの
    オペレーションが、同じ処理エレメント上で動作してい
    る機能に対して非同期的である請求項7に記載のコンピ
    ュータ・システム。
  12. 【請求項12】前記第2の処理エレメント上の相互配信
    サポート・ハードウェアが、前記第1の処理エレメント
    上の相互配信サポート・ハードウェアに対して、複写ト
    ランザクションが完了したことを通知する請求項11に
    記載のコンピュータ・システム。
  13. 【請求項13】前記相互配信サポート・ハードウェア
    が、前記FIFOバッファの中に記憶された制御エレメ
    ントを制御するために前記FIFOバッファを継続的に
    走査する請求項9に記載のコンピュータ・システム。
  14. 【請求項14】相互接続媒体により接続されることによ
    りコンピュータ・システムを形成する個別の処理エレメ
    ント上で非同期的に動作する機能同士の間で制御エレメ
    ントを交換するための方法であって、(a)第1の処理
    エレメント上で動作する第1の機能を用いて、前記第1
    の処理エレメント上に配置された物理メモリから制御エ
    レメントを得るステップと、(b)前記第1の処理エレ
    メントに関連する第1のメモリ・デバイスに前記制御エ
    レメントをエンキューするステップと、(c)前記第1
    の機能が自由に動作を継続する一方で、前記第1のメモ
    リ・デバイスに前記制御エレメントを一時的に記憶する
    ステップと、(d)前記第1の処理エレメントに関連す
    る配信アドレッサブル空間へと前記制御エレメントをマ
    ッピングしかつ移動させるステップと、(e)複写トラ
    ンザクションを介し前記相互接続媒体を通して、第2の
    処理エレメントに関連する配信アドレッサブル空間へと
    前記制御エレメントを複写するステップと、(f)前記
    第2の処理エレメントに関連する前記配信アドレッサブ
    ル空間から前記第2の処理エレメントに関連する第2の
    メモリ・デバイスへと前記制御エレメントをマッピング
    しかつ移動させるステップと、(g)前記第2のメモリ
    ・デバイスから前記第2の処理エレメント上に配置され
    た物理メモリへと前記制御エレメントをデキューするス
    テップとを有する制御エレメントを交換するための方
    法。
  15. 【請求項15】前記制御エレメントを前記第1のメモリ
    ・デバイスからデキューするステップと、前記制御エレ
    メントを前記第2のメモリ・デバイスへとエンキューす
    るステップとを有する請求項14に記載の方法。
  16. 【請求項16】前記物理メモリが、前記物理メモリが配
    置された処理エレメント上で動作する機能によってのみ
    アドレス指定可能であり、かつ前記配信アドレッサブル
    空間が、前記配信アドレッサブル空間が配置された処理
    エレメント以外の処理エレメント上で動作する機能によ
    ってアドレス指定可能である請求項14に記載の方法。
  17. 【請求項17】前記第1のメモリ・デバイス及び前記第
    2のメモリ・デバイスが、FIFOバッファからなる請
    求項16に記載の方法。
  18. 【請求項18】処理エレメント上の各機能が、関連する
    1つの前記FIFOバッファを有し、かつ各前記FIF
    Oバッファが、入ってくる制御エレメントを一時的に記
    憶するための1つの先入れ先出しパイプと出ていく制御
    エレメントを一時的に記憶するための1つの先入れ先出
    しパイプとを有する請求項17に記載の方法。
  19. 【請求項19】前記制御エレメントが、読取りオペレー
    ション及び書込みオペレーションを表し、かつ、いずれ
    の一の複写トランザクション中においても、前記相互接
    続媒体を通して前記第1のメモリ・デバイスから前記第
    2のメモリ・デバイスへと複数の制御エレメントを複写
    可能である請求項18に記載の方法。
  20. 【請求項20】前記第1の処理エレメントに対して、複
    写トランザクションが完了したことを通知する請求項1
    8に記載の方法。
  21. 【請求項21】前記FIFOバッファが、その中に記憶
    された制御エレメントを制御するために継続的に走査さ
    れる請求項18に記載の方法。
JP7117539A 1994-07-19 1995-05-16 処理エレメント間の制御メッセージ分散のための装置及び方法 Pending JPH0844675A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/277,394 US5606666A (en) 1994-07-19 1994-07-19 Method and apparatus for distributing control messages between interconnected processing elements by mapping control messages of a shared memory addressable by the receiving processing element
US277394 1999-03-26

Publications (1)

Publication Number Publication Date
JPH0844675A true JPH0844675A (ja) 1996-02-16

Family

ID=23060676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7117539A Pending JPH0844675A (ja) 1994-07-19 1995-05-16 処理エレメント間の制御メッセージ分散のための装置及び方法

Country Status (3)

Country Link
US (1) US5606666A (ja)
EP (1) EP0694850A3 (ja)
JP (1) JPH0844675A (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
GB9606833D0 (en) * 1996-03-30 1996-06-05 Int Computers Ltd Multi-processor system
EP0877985B1 (en) * 1996-11-04 2000-03-01 Koninklijke Philips Electronics N.V. Signal processing device, using more than one processing element
US6557056B1 (en) * 1998-12-30 2003-04-29 Nortel Networks Limited Method and apparatus for exchanging data between transactional and non-transactional input/output systems in a multi-processing, shared memory environment
US6636883B1 (en) * 1999-02-22 2003-10-21 International Business Machines Corporation Mechanism for passing information between queuing and de-queuing processes
US6363444B1 (en) * 1999-07-15 2002-03-26 3Com Corporation Slave processor to slave memory data transfer with master processor writing address to slave memory and providing control input to slave processor and slave memory
EP1224560A2 (en) * 1999-10-13 2002-07-24 Times N Systems, Inc. Low latency, high bandwidth multi-computer system interconnect
US6766358B1 (en) * 1999-10-25 2004-07-20 Silicon Graphics, Inc. Exchanging messages between computer systems communicatively coupled in a computer system network
NO311656B1 (no) * 1999-11-25 2001-12-27 Ericsson Telefon Ab L M Kommunikasjon mellom prosesser som kjörer på forskjellige prosessorer ved bruk av s¶rskilte kommunikasjonsprosesser
US6829769B2 (en) * 2000-10-04 2004-12-07 Microsoft Corporation High performance interprocess communication
US7096498B2 (en) * 2002-03-08 2006-08-22 Cipher Trust, Inc. Systems and methods for message threat management
US7586888B2 (en) * 2005-02-17 2009-09-08 Mobitrum Corporation Method and system for mesh network embedded devices
US7630736B2 (en) * 2005-10-11 2009-12-08 Mobitrum Corporation Method and system for spatial data input, manipulation and distribution via an adaptive wireless transceiver
US8305935B2 (en) * 2006-07-27 2012-11-06 Mobitrum Corporation Method and system for dynamic information exchange on location aware mesh network devices
US8411590B2 (en) 2006-07-27 2013-04-02 Mobitrum Corporation Mesh network remote control device
US8305936B2 (en) 2006-07-27 2012-11-06 Mobitrum Corporation Method and system for dynamic information exchange on a mesh network in a vehicle
US7801058B2 (en) * 2006-07-27 2010-09-21 Mobitrum Corporation Method and system for dynamic information exchange on mesh network devices
US8427979B1 (en) 2006-07-27 2013-04-23 Mobitrum Corporation Method and system for dynamic information exchange on location aware mesh network devices
USRE47894E1 (en) 2006-07-27 2020-03-03 Iii Holdings 2, Llc Method and system for dynamic information exchange on location aware mesh network devices
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US20090189739A1 (en) * 2008-01-25 2009-07-30 Mobitrum Corporation Passive voice enabled rfid devices

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1281167A (en) * 1969-01-02 1972-07-12 Plessey Telecomm Res Ltd Improvements relating to data processing systems
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
JPS57154690A (en) * 1981-03-20 1982-09-24 Fujitsu Ltd Control system of main storage device
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US4503499A (en) * 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
US4482956A (en) * 1982-11-04 1984-11-13 International Business Machines Corporation Parallel queueing method
US4630196A (en) * 1983-04-13 1986-12-16 At&T Information Systems, Inc. Store and forward facility for use in multiprocessing environment
GB2156554B (en) * 1984-03-10 1987-07-29 Rediffusion Simulation Ltd Processing system with shared data
FR2570525B1 (fr) * 1984-09-20 1986-12-12 Inst Nal Rech Informatiq Procede et dispositif electronique pour l'execution repartie d'une activite entre plusieurs sites differents
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
CA1244142A (en) * 1985-06-17 1988-11-01 William E. Hammer Distributed data management mechanism
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
JPS62159239A (ja) * 1985-12-30 1987-07-15 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想マシンの編集システム
US4851988A (en) * 1986-03-31 1989-07-25 Wang Laboratories, Inc. Loosely-coupled computer system using global identifiers to identify mailboxes and volumes
US4757446A (en) * 1986-04-01 1988-07-12 Wang Laboratories, Inc. High-speed link for connecting peer systems
JPH0778781B2 (ja) * 1986-06-02 1995-08-23 株式会社日立製作所 情報転送方法
JPS63129456A (ja) * 1986-11-19 1988-06-01 Nec Corp 自動プログラム切換/端末割当方式
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
US4953078A (en) * 1987-10-28 1990-08-28 Digital Equipment Corporation Apparatus and method for multi-threaded program execution in a microcoded data processing system
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
US4924384A (en) * 1988-09-21 1990-05-08 International Business Machines Corporation Method for controlling the peer-to-peer processing of a distributed application across a synchronous request/response interface using push-down stack automata
US5063500A (en) * 1988-09-29 1991-11-05 Ibm Corp. System for executing segments of application program concurrently/serially on different/same virtual machine
US4991089A (en) * 1988-09-30 1991-02-05 Ibm Corp. Method for establishing current terminal addresses for system users processing distributed application programs in an SNA LU 6.2 network environment
EP0366583B1 (en) * 1988-10-24 1995-08-30 International Business Machines Corporation Method of exchanging data between programs in a data processing system
US4937734A (en) * 1989-02-21 1990-06-26 Sun Microsystems, Inc. High speed bus with virtual memory data transfer and rerun cycle capability
US5072371A (en) * 1989-03-01 1991-12-10 The United States Of America As Represented By The United States Department Of Energy Method for simultaneous overlapped communications between neighboring processors in a multiple
US5369749A (en) * 1989-05-17 1994-11-29 Ibm Corporation Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
GB9012970D0 (en) * 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
US5185862A (en) * 1989-10-30 1993-02-09 International Business Machines Corp. Apparatus for constructing data frames for transmission over a data link
EP0472829A3 (en) * 1990-08-31 1993-01-07 International Business Machines Corporation Multicomputer complex and distributed shared data memory
US5448708A (en) * 1992-10-30 1995-09-05 Ward; James P. System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置

Also Published As

Publication number Publication date
US5606666A (en) 1997-02-25
EP0694850A3 (en) 1996-02-28
EP0694850A2 (en) 1996-01-31

Similar Documents

Publication Publication Date Title
JPH0844675A (ja) 処理エレメント間の制御メッセージ分散のための装置及び方法
KR0169248B1 (ko) 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법
JP4624110B2 (ja) 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法
JP2003178039A (ja) 分散共有仮想メモリーとその構成方法
US5446915A (en) Parallel processing system virtual connection method and apparatus with protection and flow control
JP2565652B2 (ja) インターネットワーキング・パケット経路指定装置
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
US5253342A (en) Intermachine communication services
EP0543512B1 (en) Multiprocessor system
US5761427A (en) Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt
US6804731B1 (en) System, method and article of manufacture for storing an incoming datagram in switch matrix in a switch fabric chipset system
USRE38134E1 (en) System for communications where first priority data transfer is not disturbed by second priority data transfer and where allocated bandwidth is removed when process terminates abnormally
US6731631B1 (en) System, method and article of manufacture for updating a switching table in a switch fabric chipset system
JP3072646B2 (ja) 並列計算機間通信制御方式
EP0622922B1 (en) Method and device of multicasting data in a communications system
US5970510A (en) Distributed memory addressing system
US7788334B2 (en) Multiple node remote messaging
EP0797335A2 (en) Network adapter
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
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
US20030037096A1 (en) Method and apparatus for the management of queue pointers by multiple processors in a digital communications network
JPH06202883A (ja) プロセス間通信装置及び通信方法
EP0381645A2 (en) System and method for communicating between a plurality of processors
US20020178306A1 (en) Method and system for over-run protection in amessage passing multi-processor computer system using a credit-based protocol
AU9601898A (en) I/o forwarding in a cache coherent shared disk computer system