JPS616759A - メモリ共有マルチプロセツサシステム - Google Patents

メモリ共有マルチプロセツサシステム

Info

Publication number
JPS616759A
JPS616759A JP60122840A JP12284085A JPS616759A JP S616759 A JPS616759 A JP S616759A JP 60122840 A JP60122840 A JP 60122840A JP 12284085 A JP12284085 A JP 12284085A JP S616759 A JPS616759 A JP S616759A
Authority
JP
Japan
Prior art keywords
descriptor
command
response
unused
processor
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
JP60122840A
Other languages
English (en)
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
AT&T 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 American Telephone and Telegraph Co Inc, AT&T Corp filed Critical American Telephone and Telegraph Co Inc
Publication of JPS616759A publication Critical patent/JPS616759A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 技術分野 本発明は、複数のプロセッサから構成されるシステム、
特に共有メモリを介、してプロセッサ間の通信を行なう
ための方法と装置とに関するものである。
本発明の背景 ビジネス応用や科学技術研究分野において、今後とも計
算機能力に対する需要はますます増大する。この需要に
答える一つの方法は、いくつかの非同期に動くプロセッ
サが一つの仕事のそれぞれ異なる一部分を実行し、その
部分的な結果をまとめて一つの最終結果を得るという形
で動作するよう構成するという方法である。非同期プロ
セッサをうまく組合せるための主要な課題は、プロセッ
サ間通信機構にあるので、それぞれの相互接続されたプ
ロセッサの動作に対する妨げがなるべく少なくなるよう
にしなければならない。それ故、各プロセッサが可能な
限り独立して動作することが望まれる。
マルチプロセッサシステムには、バス共有システムとメ
モリ共有システムとがめる。メモリ共有システムでは、
すべての相互接続されたプロセッサがアクセスできるよ
うな、共有メモリ空間を通してプロセッサが通信する。
送信側プロセッサは既定のメモリ空間に伝文を書込み、
受信側プロセッサに対し既定のメモリ空間から読み出す
よう信号を送る。著者エム・サチャナラヤナン(M、 
5atyanarayanan )によってプレンティ
スホール(Prentice−Hall )社から出版
された[マルチプロセッサその比較研究J (” MU
TIPROCESSOR8:A Comparatiu
eStudy ” Jという本の中で、前述のバス共刊
システムやメモリ共有システムを含む周知のマルチプロ
セッサシステムのいくつかについて記述されている。
この種の装置は、ちょうど二つのプロセッサしかない場
合にうまく動作する。王台以上のプロセッサになると、
特に構成を父えたシプロセッサ数を増減するような場合
に装置構成が複雑になる。各プロセッサ内のすべてのソ
フトウェアは、すべてのプロセッサを識別できるように
変更を反映すべく、修正をほどこさなければならない。
それ故、前述の制限が除去されるような方法でプロセッ
サを相互接続する方法を見出すことが期待されている。
本発明の要約 本発明の説明に用いる実施例に従えば、プロセッサ間通
信制御装置(rcc)によって相互接続されたプロセッ
サ系において、一つのプロセッサが他のプロセッサとI
CCを介して情報を転送する方法が公表てれている。
コマンドがプロセッサからICCに対して発行され、そ
の応答がICCからプロセッサに対して戻される。
プロセッサの一つからICCに対し、第2のプロセッサ
との間の通信路を開設するような要求が出される。IC
Cは第2のプロセッサが動作可能ならば要求に肘して応
答する。
その後、第1のプロセッサは、ICCが当該の第1のプ
ロセッサからの情報を受けて一順的に保持するのに必要
な空間を待っているかどうか1Iccに対して間貧わせ
る。ICCば、空間が使用可能ならば第1のプロセッサ
に通知する。次に、第1のプロセッサは情報ケTCCに
送信する。この情報を受信すると、ICCは第2のプロ
セッサに割込みをかけ、第2のプロセッサはICCから
情報を読み取る。第2のプロセッサがICCからの情報
を読み取った後に、通信路は取除かれる。
さらに詳しく述べると、コマンドは一つのプロセッサか
らアドレスバッファを介して、TCCに転送される。未
使用コマンド記述子バッファプールから一つのコマンド
記述子が選稠され、コマンドはこのコマンド記述子に格
納されて、コマンド記述子はコマンド記述子キューの末
尾に登録される。キューの中では、コマンド記述子は互
いにポインタでリンクされている。最後のコマンド記述
子のアドレスは、コマンドキュー記述子に格納される。
コマンドキュー記述子は、コマンド記述子キュー内のコ
マンド記述子の数、最初のコマンド記述子のアドレスお
よび最後のコマンド記述子のアドレスを待っている。各
プロセッサは一つのコマンド記述子キューと一つのコマ
ンドキュー記述子とに関連伺けられている。
ICCはコマンドに応答して、コマンドを処理し、未使
用応答記述子バッファプールから未使用応答記述子を捜
し、そして応答記述子に応答を格納する。その後、応答
記述子は応答記述子キューの末尾に格納される。応答記
述子キュー内の応答記述子は、キュー内の次の応答記述
子のアドレスを指し示すことによって互いにリンクされ
ている。最後の応答記述子のアドレスは応答キュー記述
子に格納される。
応答キュー記述子は、応答記述子キュー内の応答の数、
第1の応答記述子のアドレス、そして最後の応答記述子
のアドレスを持っている。各プロセッサは、一つの応答
記述子キューと一つの応答キュー記述子とに関連付けら
れている。
ICCは未使用データ記述子バツファプールから未使用
データ記述子を取出す。次に第1の未使用データ記述子
のアドレスは、データブロック内のデータ記述子の数と
ともに、応答記述子キューに格納される。各データ記述
子は、次のものとポインタによってリンクされており、
リンク・リストを構成している。
その後、第1のプロセッサは、前述のデータ記述子ブロ
ック内に第2のプロセッサ間送るべき情報を格納する。
次に、ICCは、肩22のプロセッサに関連する応答記
述子キュー内に応答を格納することによって、データカ
;使用可能であることを第2のプロセッサに通知する。
情報を読み取ると、第2のプロセ゛ンサは、ICCに対
し情報を読み取った旨のコマンドを発行する。
詳細な説明 第1図に関しては、本発明を実施するマJLチプロセッ
サシステムのブロック図力(示されている。アプリケー
ション・プロセッサ1゜2および3は、調停回路5の制
御の1にプロセッサ間通信制御装置(ICC)を介して
相互に通信する。
アドレスバッファ6.7および8は、それぞれプロセッ
サ1,2および3によって、工CCJ内のメモリ位置を
読むだめのアドレスを一時的に記憶するために使用され
る。データバッファ9,10および11は、それぞれプ
ロセッサ1,2および3によって、アドレスバッファ6
.7および8からの前述のアドレスによってアクセスさ
れるメモリ位置から受信したデータを記憶あるいは検索
するために使用される。送受信器13および14は、そ
れぞれバッファ対7,10および8,11をケーブル1
5および16を介してプロセ゛ンサ2および3のバック
プレーンに接続するために使用される。プロセッサ1に
対しても送受信器を設置することによって、ICC4を
独立したものにすることもできるが、実際には製造費用
を下けるために、プロセッサ1にばml有の送受信器を
直かない。図ではプロセッサ1に結合されているが、I
CC4は、プロセッサ2あるいは3と結合されていても
同様である。
通常、プロセッサ1,2あるいは3は時間割システムで
あり、工CC4は前述のプロセッサ間でデータを転送す
るため専用の機能を有している。従ってICC4は、端
子(a)、(b)あるいは(c)を介してそれぞれプロ
セッサ1゜2あるいは3に割込む必要がある。しかし、
プロセッサ1,2あるいは3はICC4には割込みを行
なわない。
第2、第3および第4図に関しては、さらに詳しくIC
C4の詳細を図示しだものである。中央処理装置(CP
U)17は制御・命令実行装置である。CPU17は、
ICC4の立上り時にのみ読出し占用メモリ(ROM)
8にあらかじめ記憶されている命令を実行する。わらか
しめ記憶されている命令は、1)ハードウェアの設定を
初期化し、2)■、C’C4の動作状態全般を検食し、
3)RAM19内のプログラムの実行にとりかかる、と
いうものでるる。
RAM19内のプログラムはプロセッサ1゜2あるいは
3のうちの一つからダウンロードされる。メモリ装置2
6に記憶された前述のダウンロードされたプロクラムは
、ICC4がデータ転送段階にある時にCPU17によ
って実行される。RAM1!l:I:プロセッサ1゜2
および3によって共有されているので、プロセッサ1.
2あるいは3は調停回路5の制御の下で読み出し・書込
みができる。調停回路5はある時点でプロセッサ1,2
あるいは3のどれがRAM19にアクセスできるかを決
定する。RAM1!l、前述のプロセッサの任意の2つ
の闇での実際の人力および出力データ交換のだめの空間
を与えるものである。
プロセッサ数が増大すると、RAM19に示されるメモ
リの異なる部分がメモリアクセスの速度を向上するため
にインタリーブプれる。この場合、複数の調停回路(図
示されていない)が使用される。この形では、各調停回
路はインタリーブされたメモリの既定の部分にのみアク
セスが訂される。さらにX各調停回路はプロセッサのう
ちのいくつかと関連付けられる。
再び第2、第3、および第4図に戻って、プロセッサ1
.2あるいは3が他のプロセッサ1,2あるいは3と通
信する心安が生じると、未使用バッファのアドレスを決
めるために、未使用コマンド記述子バッファプール30
への参照が行なわれる。そこで起動をかけた側のプロセ
ッサ1,2あるいは3からのコマンドがそれぞれ未使用
コマンド記述子に格納され、そのアドレスが未使用コマ
ンドバッファ記述子プール30から得られてコマンド記
述子キュー27.33あるいは35に置かれる。キュー
27.33あるいは35の各コマンド記述子(り、以下
に詳細に述べるその他の情報とともにコマンドを保持す
る。
各コマンドがコマンド記述子キュー27゜33めるいは
35に格納されると、対応するコマンドキュー記述子2
0,21,6るいは22、も捷た更新される。コマンド
キュー記述子20,21.あるいは22は、プロセッサ
1.2あるいは3と対応しており、キュー27゜33あ
るいは35内のコマンドの総数、実行待ちのキュー27
,33,6るいは35内の最初のコマンドへのポインタ
、およびキュー27.33.あるいは35内の最後のコ
マンドへのポインタを保持する。
コマンドが処理されると、工CC4はコマンドキュー記
述子20.21あるいは22を更新し、キュー27,3
3.あるいは35から今未使用となったバッファアドレ
スを、未使用コマンドバッファ記述子プール30に返す
キュー27.33あるいは35からのコマンドが実行さ
れた後、ICC4は未使用応答記述子のアドレスを未使
用応答記述子バッファプール31から取出し、その応答
を応答記述子キュー28.37るるいは39の一部とな
る前述の未使用応答記述子内に格納する。
その後、対応する応−答キュー記述子23 、24ある
いは25もまた更新される。応答キュー記述子23.2
4あるいは25は、それぞれプロセッサ1,2あるいは
3に対応しており、キュー28.27あるいは39内の
応答の数、キュー28.37.あるいは39内の最初の
応答へのポインタおよびキュー2B、37.Sるいは3
9内の最後の応答へのポインタを保持する。
、さらに筐た、工CC4およびプロセッサ1゜2あるい
は3の双方からアクセス可能な未使用データバッファプ
ール29がある。データ、コマンドおよび応答の長さが
異なるために、3棟類のバッファプール29.30およ
び31が使用される。
コマンドキュー27,33および35と、応答キュー2
8.37および39はいづれもリンク・リストである。
すなわち一つの記述子はキュー内の次の記述子をポイン
トする。
このような手法の利点は隣接しないメモリ空間を使用で
きる点にるる。
コマンドキューおよび応答キューと同様に、データキュ
ー(図示されていない)も存在し、同じくリンク・リス
トである。別々のデータキューが各プロセッサに与えら
れているが、本実施例では1つのデータキューのみが使
用される。
未使用バッファプール29.30および31もまたリン
クリストである。リンク・リストに関する情報は、ジエ
ー、エム、フォスター(J、 M、 Foster )
  によって書かれたマクドナルドロンドン(MACD
ONALD;LONDON )  およびアメリカンエ
ルスピユー(American Elseviw )社
より出版された「リスト処理」(ListProces
sing ” )  という本の中に記述されている。
未使用バッファプール29,30.および31の処理は
、排他制御プリミティブによって保護された危険部分(
critical 5ection )  内で閉じて
おシ、2つのプロセッサが同時に一つのバッファプール
にアクセスでき彦いようにしている。このことはポイン
タが混同しないようにするために必要である。このポイ
ンタの混同は、ICC4がコマンド処理中にプロセッサ
によって割込丑れた場合に発生し得る。危険部分は危険
領域とも呼ばれるが、ピー、ブリニヒハンセン(P、 
Br1nch Hansen )による「オペレーティ
ングシステム原理」(” Operating Sys
tem Pr1nciples  ”)という本の中で
記述されている。
前述のコマンドキュー記述子20,21.Sるいは22
はキュー内のコマンドの数および最初と最後のコマンド
のアドレスを保持しており、、ICC4およびプロセッ
サ1,2あるいは3によってアクセス可能である。C言
語で表わしたキュー記述子の一般的な構造体は次のよう
になる。
5truct QIJETJE ( short no J)escriptors; /4
キュー内の記述子の数十/char *headJtr
;    /+最初の記述子へのポインタ餐/ char *tai ] ptr;    /”最後の
記述子へのポインタ餐/ );。
コマンドキュー記述子20,21.Sるいは22は次の
文によって割付けることができる。
5truct QIJEIJE cmd queue 
;heacjptr  とtail−ptr  とが同
じ位置を示している場合は、キューは空である。故に、
常に少なくとも一つの空の記述子がキュー内に存在しな
ければならない。プロセッサ1.2あるいは3だけがコ
マンド・キューのtail ptrを変更できる。同様
にI CC4だけがコマンドキューのherd ptr
  葡に更できる。
コマンドキュー27.33あるいは35内の要素はコマ
ンド記述子と呼はれる。コマンド記述子の構造体は次の
ように6つのフィールドから構成される。
5truct corrrnand descript
or (char   *ptr−next;  /+
次のコマンド記述子へのポインタV′ char   corrmand:   /mコマンド
簀/char   cdevice;   /チコマン
ドに対するプロセッサ番号黄/ char   *bufp;    /チコマンドのデ
ータバッファポインタ*/ unaiqned count;    /*転送コマ
ンドツバイト数チ/char   *com−id; 
  /蒼要求の一意識別用のIDタグ藁/ );。
コマンド記述子の第1のフィールドは次のコマンド記述
子へのポインタである。コマンド記述子キューの最後の
コマンド記述子では第1のフィールドの値はO(零)で
ある。
プロセッサ1,2あるいは3は、コマンド’1Icc4
へ送信するために第2から第6のフィールドを使用する
。これらのフィールドの意味は次のような説明になる。
command−プロセッサ1,2あるいは3からIC
C4あるいは他のプロセ ッサ1,2るるいは3への要求; cdevice−コマンドの対象であるプロセッサの識
別; bufp   −相手プロセッサへの転送のためにデー
タを格納するバッファ構 遺体の先頭のポインタ; count  −バッファ構造体内のバイト数;eom
−id  −コマンドを一意識別するだめの識別子。
規定されているコマンドは次ノ通シ。
BFREE  −READ  コマンド完了後プロセッ
サ1.2あるいは3に与えられ たバッファを未使用にし、その バッファを未1更川バツフアプー ルに戻す: BALLOC−プ′ロセツサ1,2あるいは3が未使用
バッフアラ安来する。必 要と1−るバッファの大きさが、 ICC4の容量より大きい場合 は、応答B TOOBIG が返される。
必要とするバッファの大きさが ICC4がその時点で用意でざ るものよりも大きい場合は、応 答B No SPCが返される。
READ   −コマンド記述子のcdeviceに記
憶された識別子のプロセッサか ら送られたデータを返すよう、 I CC4に命令を与える。指定 されたプロセッサからのデータ がない場合には、応答NCjDATA が返される。プロセッサがバラ ファ空間の使用を完了すると、 BFREEコマンドが発行される。
■ITE  −コマンド記述子のcdevjceフィー
ルドによって指定された識別 子を持つプロセッサに対し、ポ インタbuf p  で指でれるデータを転送するよう
ICC4に命令 を与える。転送されるデータの バイト数はコマンド記述子の countという名称のフィールド 内の値に等しい。この空間は ■ITEコマンドが完了すると、 未使用状態にされる。
0PEN   −プロセッサがICC4に対して、この
コマンド記述子内のcdeviceに等しい識別子を持
つ他のプロ セッサとの間でのデータ転送路 を確立するよう要求する。
CLO8E  −プpt’yすがICC4に対して、こ
のコマンド記述子のcdevice に等しい識別子の他のプロセラ サとの間のデータ転送路をとり やめるように通知する。
コマンドキューに関するプロトコルは次のようである 呼出し側プロセッサの要求il(より、プロセッサ1,
2あるいは3はコマンド記述子をキューに入れる前に、
その記述子の数を検査することによって呼び出し1則プ
ロセッサに関するコマンドキューが満杯でないことを確
認する; プロセッサはコマンド記述子の数とコマンドキューの最
後をさすポインタを更新する。
複数プロセッサによるコマンド記述子数へのアクセスの
同期をとるために、この数は相互排他プリミティブによ
って保獲された危険部分内に置かれている。
コマンドキューが満杯の場合、呼出し側プロセッサは空
間が利用できるようになるまで待つ;プロセッサには、
応答処理段階にスペースが利用可能であることが通知さ
れる。
1CC4がコマンドに対して応答していない時間に、I
CC4はコマンド記述子キュー27.33および35を
順々に見回シ、1でに応答を返したコマンド記゛述子を
取除く。
I CC4はコマンド記述子の数と各コマンドキュー記
述子20.21および22の先頭へのポインタを更新す
る。
ICC4がプロセッサに対する応答を送る用意ができる
と、応答キュー28,37.あるいは39内に応答記述
子を挿入する。応答キュー記述子23.24あるいは2
5は、コマンドキュー記述子と同じ構造体である。応答
キュー記述子23.24あるいは25は、応答キューの
状態を記述するのに用いられ、次の文によって割付ける
ことができる。
5truct QUEITE response qu
eue; 。
コマンドキューを処理するために考えられた方法は、プ
ロセッサ1,2あるいは3と、I CC4との役割りが
逆転する点を除いては、応答キューの処理にそのi!ま
適用できる。
応答キュー内の安素は応答nピ述子28.27あるいは
39と呼ばれる。応答記述子の構造体は7つのフィール
ドを持ち次のようになる。
5truct response descripto
r (char *ptr next:   /’X次
の応答記述子へのポインタ繋/ char response;    /+91求され
たコマンドへの応答黄/ char rcomnand;    /+応答に対応
するコマンドポ/char rdevice;    
/%応答のプロセッサ番号チ/char *rbuf;
     7条応答に対するデータバッファポインタ釜
/ unsigned rcount;   /’に文字数
繋/char *rcorn id;    /+応答
に対するコマンドの■Dタグ餐/ ); 第1のフィールドはキュー28.37.あるいは39内
の次の応答記述子へのポインタとして使われる。ICC
’4は応答記述子の第2から第7のフィールドをプロセ
ッサー、2あるいは3へ応答するために使用する。これ
らのフィールドの意味は次のような説明になる。
response  −コマンドに対する応答rcom
mand  −この応答を要求しているコマンド rdevice  一応答のあて先のプロセッサの識別
子 rbuf    一応答データへのポインタrcoun
t−゛  一応答データのバイト数あるいは文字数 rcom id  一応答に対応するコマンドの識別子 規定されているコマンドは次の通り GOOD    −コマンドは正常に完了した。
BAD COM  −コマンドが不当である、あるいは
認識できない BAD CDEV  −不当なcdevi ceが指定
された;0PEN  コマンドが正常にlfTなわれな
かった場合の返答であ る IOERR−データ転送時のエラーか元年した B TOOBLG  −I CC4で利用可能な空間よ
−9大きい空間を要求する BALLOCコマンドに対する応 答 B No SPC−バッファ空間が一時的に不足してい
るため、この時点で実 行でき々いBALLOCコマンド に対する応答 DATA    一応答記述子のrdeviceフィー
ルドに指定された識別子のプ ロセッサに対してデータが用 意できていることを指示する。
No DATA  −READ  コマンドが与えられ
たが、応答記述子のrdeviceフ ィールドに指定された識別子 のプロセッサからはデータが ない 応答キューに関連するプロトコルは次のようである ・コマンドの完了時に、ICC4は共有メモリ内の未使
用応答バッファプールから未使用応答バッファを要求し
応答記述子を構成する。
・応答キューが満杯でなければ、工CC4は応答キュー
に応答記述子を格納する。
・I CC4は応答記述子の数、および応答キュー記述
子23.24あるいは25の最後ケ指すポインタを更新
する。応答記述子の数ハ、相互排他プリミティブにより
保議された危険部分に置かれている。
・応答キューが満杯であれは、工CC4は応答処理を行
なわずに応答記述子をキュー28゜37あるいは39に
格納し、後で処理しようとする。
・応答キューが満杯あるいけタイマによって時間が切ら
れた場合には’1 1cc4はプロセッサ1,2あるい
(L′:i3に対する割込みを起こす。
・割込みを受けた後、プロセッサは応答キューが空でな
いことを確認し、キュー28゜37あるいは39から得
られる応答記述子をすべて取除く。
・プロセッサ1,2あるいは3は応答記述子の数と応答
キュー28.37あるいは39の先頭を指すポインタを
更新する。
・プロセッサ1,2あるいは3は、未使用バッファ空間
を待っているプロセッサ1,2あるいは3に対して、コ
マンドバッファ空間が利用できるようになったことを通
知する。
CPU17によって実行される記憶領域26内にタウン
ロードされたプログラムは、典型的には主ルーチンと特
別な機能を実現する各種の支援サブルーチンとから構成
される。主ルーチンは初期化の段階とプロセッサ1,2
めるいは3からのコマンドを検索し処理するために呼・
ぶサブルーチン呼出しを含むような無限ループとから構
成される。
ループ内には、プロセッサ1,2あるいは3に応答を送
信するサブルーチンもある。初期化の段階はハードウェ
アの初期値、未使用バッファブール、ソフトウェアデー
タ構造についての標準値を設定し、■CC4が動作可能
であることをプロセッサ1,2あるいは3に通知する。
ループに起動された後に入ると、回復不能な障害が発生
するまで止まらすに走る。ループ内の制御の流れは第4
図に示されるが、その説明は自明であろう。
動作 本発明の動作については、プロセッサ1がプロセッサ2
にデータを送信しようとする場合を例として、以下に説
明を行なう。コマンドキュー記述子20がコマンドキュ
ー27に関する情報を保持していると仮定する。プロセ
ッサ1はコマンド記述子ゲコマンドキュー27に挿入す
るために、キューに入っているコマンドの数やキュー2
7の先頭と最後へのポインタなどを利用する。捷だ応答
キュー記述子23は応答キュー28に関する情報を保持
していると仮定する。プロセッサ1は、応答キュー28
から応答記述子を取除いて読み込むことができる。ざら
に、領域21と24およびキュー33と37はプロセッ
サ2に対して同じ機能を果し、領域20と23およびキ
ュー27と28はプロセッサ1に対して同じ機能を果す
プロセッサ2ヘデータを送信するために、プロセッサ1
はプロセッサ2との間のデータ転送路を形成するようI
’CC4に対して0PENコマンドを発行する必要があ
る。データ転送路を形成した後で、プロセッサ1はコマ
ンドキュー27にBALLOCコマンド記述子を挿入し
なければならない。すなわち、コマンド記述子内のコマ
ンドフィールドの値はBALLOCに設定される。コマ
ンド記述子のアドレスは未使用コマンドバッファ30か
ら持って来られ、コマンドキュー記述子20内の最後を
指すポインタの値が修正される。
BALLOCコマンドは転送するデータを記憶するため
のメモリ19内のバッファ空間を要求するものである。
BALLOCコマンドを受信した後で、空間が利用可能
ならば、応答記述子GOOD が応答キュー28に挿入
され、応答GOOD のアドレスが応答キュー記述子2
3内の最後を指すポインタに格納される。応答記述子G
OOD の中では、バッファポインタおよびバッファ空
間の長さがそれぞれフィールドrbufpおよびrco
unt  に蓄えられる。応答キュー28からの応答を
受信ずなと、プロセッサ1は応答記述子のポインタによ
って指示されるバッファ空間にデータを書込むことがで
きる。
プロセッサ1はまたコマンドキュー27にコマンド記述
子■ITEを挿入する。コマンド記述子のアドレスは、
コマンドWRI TEが最も新しくキューに加わったも
のであるから、コマンドキュー記述子20に格納される
。受取り先の指足の他にも、データのアドレスと艮でも
コマンド記述子内で指示されている。換言すれ(げ、フ
ィールドcdeviceはプロセッサ2のアドレスを持
つ; bufp  はデータの開始アドレスを待つ;そ
してcountはデータの長さを持つ。
プロセッサγからWRITEコマンドケ受信すると、D
ATA 応答記述子がICC4によって応答キュー28
に挿入される。応答記述子のアドレスはキュー記述子2
4内の最後を指すポインタに格納される。応答DATA
 は、端子6上の割込み信号を介して、一定量のデータ
がポインタrbufpによって指示されるアドレスに用
意されているということを通知する。
データの量は応答記述子のフィールドrcountで1
旨示される。
プロセッサ2がI CC4に対しREAD  コマンド
を発行すると、キュー記述子24内の最後を指すポイン
タにアドレスが格納されている応答キュー37の応答が
読み込1れ、メモリ19からのデータがデータバッファ
10を介してプロセッサ2に転送され、その結果として
プロセッサ間通信が達成される。コマンドCLO8Eが
データ転送路を取除くだめに発行される。
この手法において、プロセッサ1はプロセッサ2につい
ての情報やプロセッサ2との間の直接の物理的接続を用
いずに通信することができる。それ故、本発明によって
共有メモリを介して疎に結合したマルチプロセッサ構成
が可能となる。これは、共有メモリ方式を用いる他の従
来の発明では実現されない利点の一つである。
本発明のもう一つの利点は、工CC4とプロセッサ1,
2あるいは3との間のREAD およびWRITE動作
が非同期的であるという点である。言換えれは、次の動
作がREAD でろれWR,I TEでめれ、以前の動
作の完了を待たずに次に進めることである。それ故、デ
ータ転送は二方向交互転送ではなく真の意味での二方向
同時転送となる。
【図面の簡単な説明】
第1図は、プロセッサ間通信制御装置によって相互接続
されたプロセッサ系統図;第2、第3および第4図は、
第1図のRAMの詳細を示す図; 第5図は、制御の流れを示す図である。 〔主要符号の説明〕 1.2.3・・・アプリケーションプロセッサ4・・・
・プロセッサ間通信制御装置(ICC)5・・・・・調
停回路 6、γ、8・・・アドレスバッファ 9.10.11・・・データバッファ 13.14・・・送受信器

Claims (1)

  1. 【特許請求の範囲】 1、複数のプロセッサの任意の二つのものの間で通信を
    実現するシステムにおいて、該 システムが、 プロセッサ間通信制御装置(ICC)と 任意の時点において、前記のプロセッサ のどれがICCにアクセスするかを決定す る調停回路と、 前記のプロセッサの一つからコマンドを 受信し、前記のコマンドをアドレスバッフ ァに送信し、また、データバッファからの 応答を受信し、前記のプロセッサに送信す るための、複数の送受信器と、 前記のICCに対し、前記のプロセッサ のそれぞれに対し選択的に割込みをかける ための割込み信号発生手段とを含むことを 特徴とするシステム。 2、特許請求の範囲第1項に記載のシステムにおいて、
    ICCが、 前記のプロセッサの任意の一つから、応 用プログラムを受信し記憶するための、随 時書込み可能メモリ(RAM)と、 制御プログラムを記憶するための、読み 出し専用メモリ(ROM)と、 前記の制御プログラムと前記のアプリケ ーションプログラムとを実行するための中 央処理装置(CPU)とを含むことを特徴 とするシステム。 3、特許請求の範囲第2項に記載のシステムにおいて、
    前記のRAMが、 未使用コマンド記述子バッファプールと、 未使用応答記述子バッファプールと、 未使用データバッファプールと、 複数のコマンド記述子キューと、 複数の応答記述子キューと、 複数のデータキューと、 複数のコマンドキュー記述子と、 複数の応答キュー記述子とを含むことを 特徴とするシステム。 4 特許請求の範囲第3項に記載のシステムにおいて、
    前記の未使用コマンド記述子バ ッファプールが、 前記の未使用コマンド記述子バッファプ ール内の未使用コマンド記述子の数と、 前記の未使用コマンド記述子バッファプ ール内の第1の未使用コマンド記述子のア ドレスを指すポインタと、 前記の未使用コマンド記述子バッファプ ール内の最後のコマンド記述子のアドレス を指すポインタとを含み、前記の、未使用 コマンド記述子が、前記の、未使用コマン ド記述子のそれぞれが、前記の未使用コマ ンド記述子の次のものを指し示すという形 でリンクリストを形成することを特徴とす るシステム。 5、特許請求の範囲第3項に記載のシステムにおいて、
    前記の未使用応答記述子バッフ ァプールが、 前記の応答記述子バッファプール内の未 使用応答記述子の数と、 前記の未使用応答記述子バッファプール 内の第1の未使用応答記述子のアドレスを 指すポインタと、 前記の未使用応答記述子バッファプール 内の最後の応答記述子のアドレスを指すポ インタとを含み、前記の未使用応答記述子 が、前記の未使用応答記述子のそれぞれが 前記の未使用コマンド記述子の次のものを 指し示すという形でリンクリストを形成す ることを特徴とするシステム。 6、特許請求の範囲第3項に記載のシステムにおいて、
    前記の未使用データ記述子バッ ファプールが、 前記のデータ記述子バッファプール内の、 未使用データ記述子の数と、 前記の未使用データ記述子バッファプー ル内の、第1の未使用データ記述子のアド レスを指し示すポインタと、 前記の未使用データ記述子バッファプー ル内の最後の未使用データ記述子のアドレ スを指し示すポインタとを含み、前記の未 使用データ記述子が、前記の未使用データ 記述子のそれぞれが前記の未使用データ記 述子の次のものを指し示すという形でリン クリストを形成することを特徴とするシス テム。 7、特許請求の範囲第3項記載のシステムにおいて、前
    記のコマンド記述子キューのそ れぞれが、 それぞれがコマンド記述子キュー内の次 のコマンド記述子を指し示すような複数の リンクされたコマンド記述子を含み、コマ ンド記述子のそれぞれがコマンド名とコマ ンドに関する情報とを保持するために複数 のフィールドを含むことを特徴とするシス テム。 8、特許請求の範囲第3項に記載のシステムにおいて、
    前記の応答記述子のそれぞれが、前記の応答記述子キュ
    ー内の前記の応答 記述子の次のものを指し示すための複数の リンクされた応答記述子を含み、前記の応 答記述子が、応答の名称と応答に関する情 報とを保持する複数のフィールドを含むこ とを特徴とするシステム。 9、特許請求の範囲第3項に記載のシステムにおいて、
    前記のコマンドキュー記述子の それぞれが、 前記のコマンド記述子キュー内のコマン ドの数が前記のICCによつて制御され、 一つのポインタが前記のコマンド記述子 キュー内の前記の第1のコマンド記述子の アドレスを指し示すためにICCによつて 制御され、 第2のポインタが前記のコマンド記述子 キュー内の最後のコマンド記述子のアドレ スを指し示すために、プロセッサの一つに よつて制御されることを特徴とするシステ ム。 10、特許請求の範囲第3項に記載のシステムにおいて
    、前記の応答キュー記述子のそれ ぞれが、 前記の応答記述子キュー内の応答の数が 前記のICCによつて制御され、 前記の応答記述子キュー内の第1の応答 記述子のアドレスを指す一つのポインタが 前記のプロセッサの一つによつて制御され、前記の応答
    記述子キュー内の最後の応答 記述子のアドレスを指す第二のポインタが 前記のICCによつて制御されることを特 徴とするシステム。 11、複数のプロセッサを含むシステムにおいて任意の
    2つのプロセッサ間の情報転送を 行なう方法において、 前記のプロセッサの第1のものからの要 求を、プロセッサ間通信制御装置(ICC)に対して最
    初に与え、前記のプロセッサの うちの第2のものとの通信路を開設するこ とと、 前記の第2のプロセッサが動作可能なら ば、前記のICCによつて前記の要求に対 して応答することと、 前記のICCが、前記の第1のプロセッ サからの情報を受信し、一時的に保持する ために必要な空間を持つていることを判定 するために、前記の第1のプロセッサによ つて前記のICCに要求を出すことと、 前記の必要な空間が利用可能であるとき、 前記の第1のプロセッサに対して前記のI CCが応答することと、 前記の第1のプロセッサから前記のIC Cに対して前記の情報を送信することと、 前記の第2のプロセッサが前記のICC によつて割込まれることと、 前記の第2のプロセッサによつて前記の 情報が読込まれることを特徴とする方法。 12、特許請求の範囲第11項に記載の方法において、
    さらに、 前記のICC内の未使用コマンド記述子 バッファプールを前記の第1のプロセッサ により探索することと、 前記の未使用コマンド記述子バッファプ ールからの未使用コマンド記述子を取り出 すことと、 前記のコマンドを前記の未使用コマンド 記述子内に格納し、前記の第1のプロセッ サに関連するコマンド記述子キューの終り に前記のコマンド記述子を置くことと、 最も新しく、前記のコマンド記述子キュ ーに格納された、前記のコマンド記述子の アドレスを格納するということで、前記の 第1のプロセッサに関連したコマンドキュ ー記述子内の第2のポインタを変更する段 階とを含むことを特徴とする方法。
JP60122840A 1984-06-08 1985-06-07 メモリ共有マルチプロセツサシステム Pending JPS616759A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61887284A 1984-06-08 1984-06-08
US618872 1984-06-08

Publications (1)

Publication Number Publication Date
JPS616759A true JPS616759A (ja) 1986-01-13

Family

ID=24479475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60122840A Pending JPS616759A (ja) 1984-06-08 1985-06-07 メモリ共有マルチプロセツサシステム

Country Status (3)

Country Link
EP (1) EP0164972A3 (ja)
JP (1) JPS616759A (ja)
CA (1) CA1229421A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142856A (ja) * 1987-11-28 1989-06-05 Nec Corp 待ち行列の管理方式

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02128267A (ja) * 1988-11-09 1990-05-16 Fujitsu Ltd 共有メモリによる通信方式
EP0424715A3 (en) * 1989-10-23 1993-08-18 International Business Machines Corporation Computer system
US5446843A (en) * 1990-12-20 1995-08-29 Alcatel Italia Spa Interface unit for dynamically configuring a buffer in different modes to store data transfers based upon different connection details of connected processing units
IT1264644B1 (it) * 1993-07-02 1996-10-04 Alcatel Italia Metodo per permettere lo scambio di informazioni fra processi attraverso un dispositivo di comunicazione
US5644575A (en) * 1995-12-06 1997-07-01 Dsc Communications Corporation Managing memory within a local telecommunications network
GB2375408A (en) * 2001-05-12 2002-11-13 At & T Lab Cambridge Ltd Data transmission via a network, using shared memory
US10489056B2 (en) 2017-11-09 2019-11-26 Nvidia Corporation Queue manager for streaming multiprocessor systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS547252A (en) * 1977-06-20 1979-01-19 Hitachi Ltd Program control system
JPS57153359A (en) * 1981-03-18 1982-09-21 Ibm Data processing system with common memory
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142856A (ja) * 1987-11-28 1989-06-05 Nec Corp 待ち行列の管理方式

Also Published As

Publication number Publication date
EP0164972A2 (en) 1985-12-18
EP0164972A3 (en) 1987-12-02
CA1229421A (en) 1987-11-17

Similar Documents

Publication Publication Date Title
US5594882A (en) PCI split transactions utilizing dual address cycle
US4418382A (en) Information exchange processor
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US4792896A (en) Storage controller emulator providing transparent resource sharing in a computer system
EP0139563B1 (en) Control mechanism for multiprocessor system
EP0138676B1 (en) Retry mechanism for releasing control of a communications path in a digital computer system
JPS60150147A (ja) デジタルコンピュータシステム
JPS58501923A (ja) サブシステムコントロ−ラのためのインタ−フェイス回路
US5507032A (en) Multiprocessor I/O request control system forming device drive queue and processor interrupt queue from rows and cells of I/O request table and interrupt request table
JPS6217876Y2 (ja)
US6105080A (en) Host adapter DMA controller with automated host reply capability
US5471638A (en) Bus interface state machines with independent access to memory, processor and registers for concurrent processing of different types of requests
JP3639319B2 (ja) 並列計算機システム,データ転送制御方法および送受信制御装置
JPH07225727A (ja) 計算機システム
JPS616759A (ja) メモリ共有マルチプロセツサシステム
EP0522582A2 (en) Memory sharing for communication between processors
CN109992539B (zh) 双主机协同工作装置
KR910001788B1 (ko) 다중 프로세서 시스템용 메세지 전송 인터럽팅 장치 및 이의 실행방법
JPS623361A (ja) ステ−タス通報方式
JPH08314854A (ja) データ転送システムおよびこれに関連する装置
US7921238B2 (en) USB host system and method for transferring transfer data
JPH04286048A (ja) 競合最小化プロセッサおよびシステム・バス・システム
JPH0528856B2 (ja)
JP2505298B2 (ja) スプリットバスにおける可変バス幅指定方式及び可変バス幅情報受信方式
JPS5834858B2 (ja) デ−タ交換制御方式