JPS6081649A - タスクを実行する方法 - Google Patents
タスクを実行する方法Info
- Publication number
- JPS6081649A JPS6081649A JP59151958A JP15195884A JPS6081649A JP S6081649 A JPS6081649 A JP S6081649A JP 59151958 A JP59151958 A JP 59151958A JP 15195884 A JP15195884 A JP 15195884A JP S6081649 A JPS6081649 A JP S6081649A
- Authority
- JP
- Japan
- Prior art keywords
- activity
- processor
- record
- caller
- activities
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
ユ」Jと血!−
この発明はディジタルコンピュータに関し、特に複数の
独立なプロセッサが種々のタスク内のそれぞれの活動を
実行するために互いに作用するディジタルコンビ1−タ
システムに関するものである。 従来、データ処理タスクは単一のコンピュータによって
そっくりそのまま実行されでいる。そのタスクは、たと
えば特定の問題を解くことであったり、給料の計算など
があるであろう。()かし、いずれの場合にも、そのタ
スクが1Ji−の−Iンピ−2−タによって実行される
速度は、そのコンビコータが単一のサイクルにおいて処
1!Iiできるデータビットの数とそのサイクルの速度
とに直接依存する。 したがって、従来、単一のコンピュータのB1算能力は
、そのコンピュータが単一の9−イクルにおいて動作す
ることができるビットの数を増大さぜるか、またはその
コンピュータのサイクル11)間を短くすることにJ:
って高められている。しかしながら、そのサイクル時間
が短くされ1qる範囲は集積回路の動作速度によって制
限される。J、た、コンピュータが単一のナイクルにA
3い−C動作Jることができるビットの数を増大さ1L
るご、と(jlそのコンピュータの設削と保守管理の複
層1さを増大させる。 この代わりに、データ処理タスクが丈(ゴされろ速度は
、各々がそのタスク範囲内の1つまたはそれ以上の動作
を実行する複数の独flなブ「IL!ツリを備えること
によって高めることかでさ″よう。そのようなマルチプ
ロセッサシステムにJ5い(、個々のプロセッサは全体
のタスクの実行時間を減少さけるそれぞれの活ΦIJを
行4工うように仕立−(られる。さらに、そのシステム
の個々のプ]]セッ1ノは本来的にシステムをモジトル
化し、イれににってそのシステムの設計と保守管理の複
利ざを減少させる。また、そのマルチプロセッサシステ
ムにおいて、種々のプロセッサ゛がいくっかの互いに関
係しないタスクのための活動を同時に実行することがで
きる。これはそのシステム内の高い並列主義を意図して
おり、それによってそのシステムのR1算能力をさらに
高める。 しかし、マルチプロセッサシステムにおいては、プロセ
ッサが実行する種々の活動を整合させるためにいくつか
の手段を備えなければならない。ターなわち、正しいシ
ーケンスでタスク内の活動の実行を相持するだめの手段
を備えなければならない。 また、同時に多数のプロセッサの活動を維持するための
手段を備えなければならない。しかし、プロセッサの数
、タスクの数、および各タスク内の動作の数が増加する
につれて、これは非常に複雑になる。 したがって、本発明の主要な目的は、複数の独立なディ
ジタルプロセッサ内の吐出された活動のシーケンスとし
てのタスクを実行する方法であって、それらの活動の成
るもの(、未そのシーケンスが完了した後にも戻されな
い方法を提供することである。 &」ジグtL 本発明において、複数の独立なブr+ L?ツリー内の
呼出された活動のシーケンスを実TFツるブフ法であっ
てそれらの活動の成るものはでのシーケンスが完了した
ときに戻されない方法は、第1のプ[1セツ4)内のシ
ーケンスの第1の活動の部分を実行して次に第2のプロ
セッサ内の第2の活動へrNTERPROCESSOR
CALL命令を実行りζステップと、前記CALLに応
答して前記第1の活動の実行を中止しかつ前記第2の活
動が前記第1の活動によって呼出されたことを前記第2
のプロセッサへ信号で知らせるステップと、Or+記第
2のプロセッサ内の前記第2の活動を完全に実行して次
に第3のプ
独立なプロセッサが種々のタスク内のそれぞれの活動を
実行するために互いに作用するディジタルコンビ1−タ
システムに関するものである。 従来、データ処理タスクは単一のコンピュータによって
そっくりそのまま実行されでいる。そのタスクは、たと
えば特定の問題を解くことであったり、給料の計算など
があるであろう。()かし、いずれの場合にも、そのタ
スクが1Ji−の−Iンピ−2−タによって実行される
速度は、そのコンビコータが単一のサイクルにおいて処
1!Iiできるデータビットの数とそのサイクルの速度
とに直接依存する。 したがって、従来、単一のコンピュータのB1算能力は
、そのコンピュータが単一の9−イクルにおいて動作す
ることができるビットの数を増大さぜるか、またはその
コンピュータのサイクル11)間を短くすることにJ:
って高められている。しかしながら、そのサイクル時間
が短くされ1qる範囲は集積回路の動作速度によって制
限される。J、た、コンピュータが単一のナイクルにA
3い−C動作Jることができるビットの数を増大さ1L
るご、と(jlそのコンピュータの設削と保守管理の複
層1さを増大させる。 この代わりに、データ処理タスクが丈(ゴされろ速度は
、各々がそのタスク範囲内の1つまたはそれ以上の動作
を実行する複数の独flなブ「IL!ツリを備えること
によって高めることかでさ″よう。そのようなマルチプ
ロセッサシステムにJ5い(、個々のプロセッサは全体
のタスクの実行時間を減少さけるそれぞれの活ΦIJを
行4工うように仕立−(られる。さらに、そのシステム
の個々のプ]]セッ1ノは本来的にシステムをモジトル
化し、イれににってそのシステムの設計と保守管理の複
利ざを減少させる。また、そのマルチプロセッサシステ
ムにおいて、種々のプロセッサ゛がいくっかの互いに関
係しないタスクのための活動を同時に実行することがで
きる。これはそのシステム内の高い並列主義を意図して
おり、それによってそのシステムのR1算能力をさらに
高める。 しかし、マルチプロセッサシステムにおいては、プロセ
ッサが実行する種々の活動を整合させるためにいくつか
の手段を備えなければならない。ターなわち、正しいシ
ーケンスでタスク内の活動の実行を相持するだめの手段
を備えなければならない。 また、同時に多数のプロセッサの活動を維持するための
手段を備えなければならない。しかし、プロセッサの数
、タスクの数、および各タスク内の動作の数が増加する
につれて、これは非常に複雑になる。 したがって、本発明の主要な目的は、複数の独立なディ
ジタルプロセッサ内の吐出された活動のシーケンスとし
てのタスクを実行する方法であって、それらの活動の成
るもの(、未そのシーケンスが完了した後にも戻されな
い方法を提供することである。 &」ジグtL 本発明において、複数の独立なブr+ L?ツリー内の
呼出された活動のシーケンスを実TFツるブフ法であっ
てそれらの活動の成るものはでのシーケンスが完了した
ときに戻されない方法は、第1のプ[1セツ4)内のシ
ーケンスの第1の活動の部分を実行して次に第2のプロ
セッサ内の第2の活動へrNTERPROCESSOR
CALL命令を実行りζステップと、前記CALLに応
答して前記第1の活動の実行を中止しかつ前記第2の活
動が前記第1の活動によって呼出されたことを前記第2
のプロセッサへ信号で知らせるステップと、Or+記第
2のプロセッサ内の前記第2の活動を完全に実行して次
に第3のプ
【]I?ツリ内の第3の活動l\INTER
PROCESSORN[ミX 1−命令を実行するステ
ップと、前記第3の活動が前記第2の活動によってでは
なくて前記第2の故v)の呼出子によって呼出されたこ
とを前記N E X T命令に応答して前記第3のプロ
セッサへ信号で知らI!るステップと、前記第3のプロ
セッサ内の前記第3の活動を完全に実行してその完了時
において前記中井された第1の活動の実行を再開づるに
うに前記第3の活動の呼出子へ信号で知ら1Lるステッ
プとを含む。 友塵j」已わ1 本発明の種々の特徴や(1」点はここに添イ]されに図
面とともに計測に述べられる。 第1図にJ3いて、複数の′、、、 +1個の独立なデ
ィジタルプロセッサはP、、P、、、・・・1〕。と名
付けられた数個のボックスによっ−(表わされている。 これらのブロセッυ−は何らかのプログラム可能なタイ
プのものであって、それらは同一のまたは互いに異なっ
/こものであってもよい。都合良< 1.、+、ブロセ
ッ’J−P、からPl、は、t−1、P otast+
等ニci:る゛プログラム可能な構造を有づるディジ
タルコンピュータ″という題名であってバロース・=+
−ボレーションに譲渡された米国特許第4,346゜
438号または)−1,potas+を等にょる゛′相
相接接続マトリックス備えたディジタル装置″という題
名であっ−Cバ「j−ス・コーポレーションに譲渡され
た米国特許第4,327,3Fi艷;号にJ3い−C)
玉べられたタイプのものである。 プロセッサP + + P 21 ・・・PoLよそれ
ぞれメ;しすM、、M2.・・・M)、に接続されてい
る。これらのメモリは何らかのディジタルタイプのメモ
リであればJ:い。たとえば、それら(、Lスタディツ
クまたは夕゛イナミックタイプの半導体メーしりであっ
てもよく、それらはMOSまlζ(,1,バイポーラの
回路で作ることができる。また、それらのメモリの記憶
容量と動作速度は同一またLL Tiいに巽なっていて
もよい。 メモリM1の1つの部分はブ1−+ ′L!ツリ1″1
がそれに基づいて動作するデータを含/υでJ5す、一
方、メモリM、のもう1つの部分はプ[II?ツリP・
が実行するプロセッサ内活動を含んでいる。ここで用い
られているように、プ[II?ツリ内活ΦIJ kLブ
1コセッサにそのプロセッサのリソースのみを用いて特
定のタスクを実行させるプ1コグラム′c1、た(−L
プログラムの組からなっている。そのにうなリソースは
そのプロセッサ自身の内部ハードウェアやそのプロセッ
サのメモリを含み、さらにそのプL1セツザに接続され
たディスクやテープなど(図示Uず)のような何らかの
周辺装置をも含んでいる。第1図において、プロセッサ
P、が実行するそれぞれのプロセッリー内活動はA、P
、、△2P1.・・・。 などの記号で示されている。 同様に、メモリM2の一部分はブ[1しツリーP2がそ
れに基づいて活動するデータを含んでおり、メモリM2
のもう1つの部分はブロレッリP2が実行するプロセッ
サ内活動を含・んでいる。それらの活動は第1図におい
てA、P、、A2 P7.・・・。 などで示されている。同様に、メモリM、、LJノブ−
]セッザPnがそれに基づいて活動するデータを含んで
おり、またプロセッサp nが実行づるプロセッサ内活
動A、Pn、△2Pn、・・・、を含んでいる。 メモリM + + M 2 +・・・Mnの各々はブ臼
セッナ間命令をも含んでいる。それらはINTERPR
OCESSOR0ALL命令、INTERPROCE
S S ORRE T IJ RN命令、およびINT
EIでP1又0CESSORNEX王命令である。 一般に、これらのプロレツザ間命令I:Lグ1コゼツリ
P、、P2.・・・1〕、が互いに通信りる手段を与え
る。より特定的に言えば、それら(よブ1」ヒラ4)内
活動△、P1.△、P2.・・・Δ11〕。などのすべ
てが1つにリンクされて順序正しく同1vJさfIたシ
ーケンスで実行される手段をノブえ、それIJ 後−(
”さらに詳しく説明される。 プロセッサP I + P 2 +・・・1〕。は11
1−のタイムシェアされたバスを介してインテリジJン
トメモリコントローラIMOに接続されており、:1ン
トロ一ラIMcはシコアされたメモリSMに接続されて
いる。コントローラI M CuttJしくけ上記のタ
イプのプログラム可能なコントローラであって、メモリ
SMはどのようなタイプの読出し/@込みメモリでもよ
い。 メモリSMはそれらのブ[1t?ツリの各々のために1
つの独立したブOセツリーレコードを含んでおり、その
ような各レコードはここでP R1として示されている
。また、メモリSMはそれらのプロセッサにおけるプロ
セッサ内活動の各々の)〔めに独立の活動レコードを含
んでおり、そのような化レコードはΔRy、P、で示さ
れている。さらに、メモリCMはプロセッサ間命令を介
して1つのプロセッサからもう1つのブロセツザヘシェ
アされて送られるパラメータを含んでいる。 各プロセッサレコードPR,内に含まれているのは、プ
ロセッサ−P6が現在成る活動を大行していてBIJS
Yであるかまた【まN OT−B LJ S Yのいず
れであるかを示すフラグである。プ]二1セッサレコー
ドPR,は、プロセッサP1がB 1.J S Yのと
きにそのブロレッサが実行している現在の11−1セツ
サ内活動を指し示すCtJ RRE N Tエン1〜り
をも含んでいる。 ブロセツーリレコードPR,はさら【こP RCI C
ESSORQUEUE HEADエントリ(PQl−1
) と RROCU S S ORQ U E U E
T A 1しエントリ<PQ工)を含んでいる。これ
らの2′つのエントリはそれぞれプに11?ツリP1か
実行づべき異なった種類のブロセツナ内活動のために活
動レコードの待ち行列の先端と後端を指し示づ。 すなわら、同じ種類の活動のポインタは、たとえその活
動が数回呼ばれるとしてもlζだ一度だけそのプロセラ
1ノー持ち行列内に入れられる。ブ+:+1ツサレコー
ドPR,は、設計士の選択として、−j二連のものに加
えて他のエントリをし含んでもよい。 活動レコードARX P: は対応する活動がD OR
MANTまタハA CT L V F アルイl;L
S U S PUNDEDであるときを示すフラグの組
を含んでいる。活動は、プロセッサがその活動を実i−
jづるために実際に使用されているとき八〇TI\/F
である。活動が完了の途中まで実1:iし、′Cもう1
つのプロセッサにおけるもう1つの活動の結果を待つ間
に停止しているとき、活動はA C’I−I M F
$こ留まるが5USPENDEDステートにある。その
ような結果ハl N T E RP ROCE、 S
S ORlN5TRUCT l0NSを介してリフニス
トされて得られる。他のすべての場合において、活動は
D ORM A N Tである。 活動レコードARX P、は、最初に活動△yP1を呼
ぶべき活動の活動レコードのポインタであるCALLE
Rエントりをも含む、、活動AyP。 の後続のいずれの呼出子も、その後には活動レコード内
のA CT I V I T Y Q LJ E U
E T A ILエン1〜す(△QT)とへCTIVI
TY QUEUE HEADエントリ(△QH)が続く
。 特定的に言えば、活動△。Plの後続の呼出子のポイン
タはその活動の待ち行列内に置かれる。 エントリ八〇 l−1は活動A x P :の第2の呼
出子の活動レコードを指し示し、エン]−り△QTは活
動△χP1の最後の呼出子の活動レコードを指し示づ“
。活動待ち行列すたけプロセッサ待ち行列のいずれかの
中間エントリは、活動の種々の呼出子の活動レコード内
のN E X T I N Q tJ E IJ Eエ
ントリ(NIQ)によって1つにリンクされる。 また、活動レコードΔR,P、は、INTERPROC
ESSORlN5TRUCTIONSを介して、2つの
活動間で送られるパラメータのポインタを含むP A
RA M E T E f3エンlへり(P△RAM)
を有している。たとえば、活動△vP1が活動AyP)
を呼・Sとき、次に活動レコードARyP、のPARA
MエンドI)は活動AyPJがそれに基づいて動作Jべ
きシ]アされたメモリ8M内のパラメータを指し示−リ
。逆に、活動AIPJ が完了したとぎ、活動1ノコ一
ドA]文XP、内のPARAMエントリは活動A y
P J によって活動△、P1へ)苫られつつあるシJ
アされl、ニメモリ内のパラメータを指し示づ。 第1図のシステムに関りるプロセッサレコードと活動レ
コードの完全なヒラ1〜の1′つの例が第2図に示され
ている。この例において、PR,かうPR,、までの1
1個のブ[1t?ッリレ′:I−ドがあり、それらはそ
れぞれP、からPnまでの11個の物理的に独立なプロ
セッサを表わしでいる。さらにこの例において、各々の
ブ1コレツリーが実行する活動の数はプロセッサごとに
おい−を異なっている。 第2図はプロセッサ1が5つのブ1コヒツリー内括動を
実行することを示しており、これらのン古動のための上
述のポインタはそれぞれ△R4P、から△R5P、まで
の活動レコード内にある。同様に、第2図はプロセッサ
2が11個のプロセッサ内活動を実1行、し、プロヒッ
ザ3が9つのプ1]セッザ内活動を実行し、プロセッサ
4が3つのブロセッ+J−内活動を実行づることなどを
示している。また、これらの活動レコードとプロセッサ
レコードの各々はどの活動がどれを呼んでいるかを追跡
づ−るそれら自身のポインタを有しており、種々のプロ
セッサがそれぞれのプロセッサ内活動を実b ”Jる順
序を決定する。 ここで、INTERPROCESSORC△L1命令に
応答してコントーラIMCににって実行される動作の詳
細について考えよう。下記の表1はブロセッザP、内の
活動AyP、がプロセッサPJ′□内の活動A、l)j
を呼ぶ一般的な場合に関するそれらの動作を示してい
る。 (以下余白) 活動AyP、がDORMANTであってプロセッサPj
がNOT BIJSYであるとき、コン1−ローラI
MOは以下のタスクを実行する。まず、それは活動し]
−1’AR/P、 内ノAcT I VEフラグをセッ
トすることによって活動A、P、を△CTIVEにする
。次に、活動レコード△R/P1のポインタを活動レコ
ード△Ry P J のCAL L E Rエントリ内
ヘロードする。また、活動レコードAR7P、のポイン
タはプロセッサレコードPR,のC()RPENTエン
(〜り内ヘロードされる。次に、プロセッサレコードP
R,のためのBUSYフラグがセットされて、活動△y
P、の実行を開始させるように通知するメッセージがプ
ロセッサP、に)Σられる。 しかし、活動△ンPJがD ORM A N T テ(
15ってプロセッサP、がINTERPROCESSO
RCALLのときにBUSYであれば、そのときコント
ローラIMGは以下のように動作する。 まず、それは活動レコードAR,PJ 内のA CTI
VEフラグをセットする。次にそれは活動レコードΔR
x P +のポインタを活動レー暑−ド△R/Pj の
CALLER位置内へ[j−ドする。次に、それは活動
レコードAR/PjのポインタをプロセッサレコードP
Rjの持ち行列内へロードする。 この後者の動作は、プロセラリレ:1−ドl)R,のP
ROCESSORQUEUE ]△11によって指1ノ
示される活動レコードのNLXT 1NQUEUEエン
トリ内への活動し」−ド△R/PJのポインタのローデ
ィングを伴い、次に活動レニ〕−ドΔR/P)をも指し
示J−ようにブII tッ1ナレコードPRのP RO
CE S S ORQ l、、I E l−I ETA
ILエントリを変える。 最後ニ、活動A /PJ がINTERPROCESS
ORCAL、、l−のときにA 、C−1−I\/「で
あれば、そのときインテリジエンI〜メモリコン1〜ロ
ーラは活動レコード△R,P;のポインタを活動レコー
ドARyPj の待ち行列内にロードづ゛る。これは活
動レコードA R/P J の△C1’l\/ITYQ
U E U E 1−Δ11によって指jノ示される
活動レコードのNEX丁 IN QUI三U[Jントリ
内への活動レコードARyP、のポインタのローディン
グを伴い、次に活動レコードAR,yP:を指し示ず活
動レコードAR,P、内の△C丁IVITY QUEU
E TAILを変える。 上記動作は単にCA L L E D活動レコードとC
ALLEDプロセッサレコードに影響を及ぼすだけであ
ることに注目づべきである。しかし、これに加えて種々
の動作がCALLING活動レコードとCALLING
プロセッサレ−1−ドにおいてら実行されなければなら
ない。これらの動作は以下のようである。 CA L L I N GプロセッリレコードPR1内
の待ち行列がNOT EMPTYであるとき、1つのエ
ントリがその待ち行列から取り出されてブ1−IL ・
y +l−V D −トP R、(f) CIJ RR
I三N T エンh ’)内ヘロードされる。このアン
ロープインク動作はプロセッサレコードPR,のPRO
CL:5SORQ U E U E l−I E A
DエントリをプロセッサレコードPR,のCIJR’R
EN下エントリ内へ移動さけ−ることを伴い、次にプロ
セッサレコードPR。 内のPROCE’5SORQUI三()E +I「A
Dによって指し示される活動し:I−ドからのNEXT
IN QUEUEエントリかプ11L?ツリ゛レコー
ド PR,の P ROCE S S ORQ lノ
F しノ EHEAD内ヘロードされる。3Llこ、
コン1〜L1−ラIMCによってメツセージがプロロツ
リpH\送られ、それはブ[1セツサレコード1〕R1
内のCURRENTエントリによって指し示される新し
い活動をそのプロセッサに知らμる。 一方、プロセッサレコードPR,内のliら行列がFM
PTYであるとき、そのブLII?ッυレコード内のフ
ラグはプロセッサP1がN OT +3 LJ SYで
あることを示づようにLツ1〜される。J、た、そのよ
うな条件において、プロセラ薔ナレコードPR,内のC
IJRRENTエントリは空白(1(+にしットされる
。さらに、上記とこの場合の両グツにおいて、たとえ呼
出し活動が中止された状態にあっても、その呼出し活動
レコードARxP+内の△CTIVEフラグはセットさ
れたままであることを注目すべきである。 次に、プロセッサの1つからのINTERPROCES
SORRET’LIRN命令に応答し7てコントローラ
IMCによって実行される動作について考えよう。特定
的に、プロセッサP、内の活動A y P’3 がプロ
セッサP、内の活動△8P1へ戻る場合を考えJ:う。 これらの動作は以下の表2に示されている。 (以下余白) RETUREが起こったときに活動レニ]−ドARノP
Jの持ち行列がNOT EMPTYであれば、そのとき
コン1ヘローラーMCは以下の動作を実行する。まず、
1つのエントリが活動レコードAR,pJの持ち行列か
ら取出される。これは、活動レコード△R/PノのAC
丁■\/ITY QU [E IJ E 、1−I E
A D内のポインタを活動レコード△Ry PJのC
A L L IE R位置内へ移動させるこ、!: ニ
J:つて達成され、そして活動レコード八R/Pj の
A C’r I V I T Y Q IJ E U
E +−11三 △ Dににつで指し示される活動し]
−ドのNEX丁■N QUEIJEエントリを活動レコ
ード△RyPJ(7) A CT I V I −r
Y Q IJ E U E l−t E A D 内’
\移動させる。その後に、その活動の新しい呼出子(7
) tcめに活11i1JA P、i を再実行するた
めにメッセ/ 一ジがプロセッサP、に送られる。 一方、RETURN命令がJ ンI−ロー 71 M
Cへ送られるときに活動A、PJの待ち行列がEMPT
YであるがプロセッサPJ の侍し行列がN OT E
MPTYであるならば、そのときそのコントiコーラは
以下の動作を実行する。、:l:ず、活動レコh’A
Ry PJ 内’DV 5 クハIJ ORMA N
’1’ステー1へを示づように変えられる。次に、1つ
の」ニントりがプロセッサレコードP RJの持し行列
から取出されて、そのプロレツリー1ノロード内のCU
RRENTエントリはその待ち行列からJIM出される
そのエントリとともに更新される。次(J、メツセージ
がプロセッサPJ に送られ−C1それ(まプロセッサ
レコードPRj 内のCURRE N l’ 1−ソト
すによって指し示されている新しい活動し]−ドをプロ
セッサに知らせる。 最後に、RE T U R’ N命令が]ントローラI
MOへ送られるときに活動レコードAR,Pj の待ち
行列とプロセッサレコードP 、RJ ’I) (!l
’s待行列どちらもEMPTYであれば、そのときプ
(]I?ツサPj に関して現在実行J−へ8他の活動
は存在しない。したがって、プロセッサレコードl”
F<j 内のフラグはプロセッサPJ がNOT BU
SYであることを示づようにセラ1〜され、そしてブ1
」セッサレコードPRJ内のCl−J RRE N−r
コニントリが空白ステー1−にセットされる。 RET’URN命令に関づ′る一L:記のづべての動作
はCALLED活動レコード△し/P、とCALIED
プロレッサレ=1−ドPRJ において実行される。ざ
らに、以下の動作はそのRE T IJ RN 命令に
応答してCΔLLJNG活動レーl−ドAしRxPlと
CALLINGプロセッサレ:]−ドP r’< 。 において実行される。 CA’LLINGプロゼッサレコードPRi内のフラグ
がプロセッサP、がBUSYであることを示していれば
、そのとぎインプリジエントメモリコントローラは活動
レコード△R,P、のポインタをプ「1セツザレコード
PR,の待ら行列内にロードする。これは、プロセッサ
レコードPR,の侍ら行列が空でないときに、ブロセッ
ザレ]−ドPR,内のP ROCE S S ORQ
IJ E U E 丁AILによって指し示される活動
シー1−ドのNEXT IN QUEUEエン]へり内
へ活動レコードARx P:のポインタをロードづるこ
とによって、またPROCESSORQUEUE T△
IL、エントリを活動レー゛j−ドARXP、を指し示
すように変えることによって実行される。可1: kそ
れは、プロセッサレコードPR,の1.4ち行列が空で
あるときに、ブロヒッザレー1−ドP R、のPROC
ESSORQLノ E () El−IJ三へ1) ど
1つROCE S S OR−Q U E U E T
△IL内へ活動レコード△R,P、のポインタをロード
JることにJ:つて達成される。 しかし、もしプロセッナP1がNo−1” +3 U
SYであれば、そのとき活動レコードΔRXP、のポイ
ンタはプロセッサレコードP R、のcURRENTエ
ントリ内ヘロードされ、ブLI1.?ツリレコードPR
,のフラグはプロセッサ1〕1がBUSYであることを
示すようにセットされる。次に、メツセージがプロセ・
ンサP1に送られ(、ブにルッサレコードPR,内の新
しいCtJ RRE N ’rエントリによって示され
ている実行されるべき新しい活動をそのプロセッサに通
知する。 ここで、1つのプロセッサーがらのJN丁I RPRO
CESSORNEXT命令に応答し−(コントローラI
MCによって実行される動作について考えよう、、特定
的に、プロレッサP、内の活動へ/PjがプロセッサP
k内の活動ΔzPHへのNEXT命令を実行する一般的
な場合に行なわれる動作について考えよう。これらの動
作は以下の表3に示されている。 (以−ト余白) そのNEXT命令に応答して活動レコードA RyP」
とプロセッサレコードPR,において実行される動作は
、上述のRETURN命令に応答してi5動レコードA
R/P、、 とブ1]セッサレコードPRjにおいて実
行される動作と同じである。しかし、NEXT命令に応
答して活動レコード△R−P4、とプロセッサレコード
PR,において実行される動作は以下のようである。活
動△、:カが△CTIVEであるとき、活動レコード△
R:<P:のポインタ【よ活動レコードへR2P、の活
動待ち行列内ヘロードされる。これは、活動レコードA
R7の活動待ち行列内へ活動レコード△R/PJのCA
LLERエントリを移動させることによって達成される
。 しかし、NEXT命令がコン1−[1−ラIMCへ送ら
れたときに活動Az ptがDORMへNTでかつプロ
セッナP、がB U S Yであれば、そのときそのコ
ントローラは以下の動作を実行づる。まり゛、活動し:
1−ドARz P、のポインタはプロセッサレコードP
R,の待ち行列内へロードされる。 次に、活動レコードARχ1〕、のCΔLLERエント
リ(それは活動レコードAI<y、1)iのポインタ)
G、を活動レコード△Rz P、のC△l−1−[R
エントリへ移動させられる。次に、活動シー1−ド△R
z P、内のフラグはA C’l−T V Eステー1
−にセットされる。 一方、NEXT命令がインプリジエン1〜メモリコント
ローラへ送られたときにプ「1t?ツ」)’PiがNO
T BUS’Yであれば、そのときそのコントローラは
以下の動作を実行する。活動レコードARz P、のポ
インタはプロセッサレコード[)R1のCURRENT
エントリ内へ[=1−ドされる。また、活動レコード△
RyPJ l/)C△1.−1− E、 R]。ントリ
くそれは活動レコード△R,Pi のポインタ)は、活
動レコード△R2PhのC△l−IL E Rエントリ
内へロードされる。次に、活動レコード△R2P、内の
フラグは△CT I V IEスデー1−にセットされ
る。 ここで、第3図が参照されるべきである。それは、0A
LLとそれに対応するRETURN動作の間にプロセッ
サレコードと活動レコードに起こる上述の変化の典型的
なシーケンスを図解している。そのシーケンスは瞬間[
1から[Sの間に起こり、以下の表4は各瞬間に起こる
出来小の概略を示している。 (以下余白) この例において、2つのプロセッサP7とPXが存在し
、それらはそれぞれブロセ・ンサレコードPRxとPR
χを有している。最初、ブロヒツサPXIよ、活動レコ
ードAR)、PXを有する活動AQ。 Pyを実行していてBIJSYである。また、活動レコ
ードARo、Pxを有するもう1つの活動へ3Pxは実
行されるべきPR,プロセツナ待ら行列内で待機してお
り、プロセッサP7は活動△1.P/を実行していてB
USYである。これらの初期条件は第3図において参照
番号1を右するポインタによって示されている。 特に、プロセツーナレコードPRy内の参照番号1のC
URRENTエントリは、ブロセ・ンサP、。 が最初に活動AI)P工を実行していることを示すよう
に活動し]−ドAR6P:<を指1ノ示づ。また、プロ
セッサレコードPRy内の参照番号1で示されたP R
OCE S S ORQ U E U E HE A
DエンドIJ トP ROCE S S ORQ U
E U E 、TAnエントリは、活動AユPxが最初
にプロセッサレコードPRXの待ち行列内にあることを
示づように活動レコードAR,PXを指し示7+。 さらに、プロセッサレコードP Ryの参照番号1で示
されたC U RRE N Tエン1−りは最初にプロ
セッサP が活動AあPyを実行していることを示づ゛
ように活動レコードAR,(+〕X を指し示J−0ま
た、プロセッサレコードPR,の参!(α番号1で示さ
れたP ROCE S S ORQ U E U E
l−I EADエントリは、他のいかなる活動もプロセ
ッサP/において実行されるよう待機(〕−(いないこ
とを示ずように空白値を有づる。 その後、参照番@2を有するレ−」−ド内のポインタに
よって示されているJ:うに、活動△b P:<が活動
AcP、を呼ぶ。その結果、活ΦJlレコード△RcP
/内のCALLER,J−ント1) kl、それが活動
レコード△RbPxを指し示!Jように書込まれて、プ
ロセッサレコードpR/内のl) ROCES S O
RQ U E U E HE A D 、:+ントりど
PROCE S S ORQ U E IJ E TΔ
l1j−ン1〜りは、それらが活動レコードARC+〕
/を指し示すように書込まれる。また、活動△bP、は
CへしLERであったので、プロセッサP、)よその活
動の実行を中止して、それがその待ち行列から1qるも
う1つの活動の実行を開始する1、シたがって、ブ1]
I?ッサレコード’PR,内のCU RRl三NTエン
トリは活動1リコードARユ P5.を指し示づように
書込まれ、プIJ tッサレコー1〜’ P R、<の
PROCF S S ORQ U E LJ E l−
I E A、 Dエントリは空白値に書込まれる。 その後、参照番号3を有J゛るし」−ドエン1〜りにに
つて示されているように、プロセッサPXは活動A 、
I P y の実行を完了し7、イしてそれはその待ち
行列内のもう1つの活動の実行を開始する。 したパ°ドブ1セツサレ1−トPR/内のcuRREN
Tエンドl) fは活動△RcP/を指し示づ−ように
書込まれ、プロロツ[ル−、−+−t” P RyのP
ROCE S S ORQ U E U [三 HEへ
D T ’/ l−りは空白値に丁む込まれろ。 その後に、参照番号4を有づるレコードエン1−りによ
って示されているように、プロセッサ−Pχは活動A
c P yの実行を完了する。従って、活動A、Pyを
呼出した活動が実行を再開づることができ、そして活動
レコード△RAPyのポインタはプロセッサレコードP
R,の)) ROClESSORQ U E U E
HE A I)エントりとP ROCESSORQUE
UE TA[l−エン1〜り内へロードされる。また、
プロセッサ1〕Xは自由にもう1つの活動を実行づるこ
とができるが、イのブ]−Jセツサ待ち行列はE M
P T Yであるので、ブ[1セツサレコードPRyの
CU RRE N Tポインタ(よ空白値に書込まれる
。 プロセッサPxは、活動が完了するか21、たけもう1
つの活動を呼ぶときまで活動△。1〕9の実行を続ける
。そわは[5のときに起こる。次に、プロセッサレコー
ドPRXのプロセツリ−持ち行列によって活動レコード
AR1)Pyが指し示されるので、プロセッサP、は活
動AI)P、の実行を再開する。 ここで第4図と第5図を参照して、いくつかのCALL
動作とRETURN動作の間にプロセッサレコードと活
動レコードに起こる変化のシーケンスのもう1つの例が
述ぺらねる。この例において、プロセッサP8が実行す
る活動A、Pyは3回呼出され、プロセッサP工が実行
でるbう1つの活動へ2PXは2回呼出される。 この呼出しのターベてはブ1」セックP9がもう1つの
活動を実行していてビジーのときに起こり、そしてゾロ
セッサレコードPR,と活動レアー1−ドAR,Pxと
ΔR2PX内の待ち行列はその呼出しが起こっている間
にロードされる。その後に、プロセッサP y、はそれ
が実行していたタスクを終了して、次にそれはゾロセッ
サレコードと活動レコードの待も行列内で指し示されて
いる活動を実行する。以下の表5は種々の出来事が起こ
るシーケンスを示している。 (以−(・余白) 第3図はプロセッサと活動し]−ドの待ち行列がロード
されるシーケンスを図解しており、一方、第4図はそれ
らの待ち行列がアンロードされるシーケンスを図解して
いる。これらの両図において、参照番号1から11を右
するポインタはそれぞれそれらの番号に対応したシーケ
ンスの瞬間におけるプロセッサと活動のシー1−ド内の
種々のエントリを示している。 第4図を見れば、瞬間1 、、、−16の間に、プ[]
セッサレコードPR)のCIJRRENTIントリはプ
ロセッサPyが現在実行している活動レニl−ドを指し
示している。しかし、[2の瞬間にJ3いて、プロセッ
リP、内の活動A、P+はブ【」レツザP・内の活動△
、P1、を貯、ト。その結ψ、活動レコードAR,P、
のCA L L E Rエン1〜す(−りそれが活動レ
コードARc、、P、を指し示づように8込まれ、ゾロ
セッサレコードPRyのP ROCES S ORQ
U E U E HE−へDとPROCESSORQU
EUE TAILの[ントリはそれらが活動レコードΔ
R,P、を指し示す、」コうに占込まれる。 その後に、瞬間T、において、ブ1]ゼツリT2内の活
動A6 PzはブDセッサPx内の活動A2PAを呼ぶ
。このCALLの結果、活動レニ1−ドAR2P、内の
CA L L−E Rlントりは活動レニ】−ドARC
R2を指し示′?JJ、うに7■込まれる。また、プロ
セッサレコードP R、、<のP1又OCE S SO
RQUEUE TA■LTン(・す(よ活動レコード△
R2P yを指し示覆にうに変えられて、活動レコード
ΔR,P、のN E X T−I N Q U [:U
Eエントリ;ま活動レコード△R2P1.を指し示ずよ
うに書込まれる。その後、1l111′l:I 1”
4 にA3いて、プロセッサP、内の活動AcP、は活
動△、P>を呼ぶ。活動A、]〕、のこのCA L l
−はプロセッサレコードPR,,,の待ち行列内へ活〃
ノ1リコード△R,P、を再[]−ドしないが、イの代
4つり活動レコードARCR3のポインタは活動1リコ
ード△R1P・の活動侍ら行列内へ再込まf+イ)。ご
れ1.L、活動レコードAR,P、、の△CT I V
f T Y QUEUE 1−IEA’DとACTI
VITY QUEUETAl、LのエンI・りを書込む
ことによって達成され、それらのエンド1月4活動レコ
ード△R0P、を指し示す。 次に、瞬間15において、ブ「II?ツリーP、内の活
動△d R4は活動AzP>を呼ぶ。再び、活動レコー
ドAR2Pxは既にブOj?ツリ」ノー1−ドPR>の
ブロセツリ”待ち行列内にあるので、活動レコードAR
,(Pうのポインタレ;に単に活動レコード△R2Py
の活動待ち行列内ヘロードされる。これは活動レコード
ARzPxのへCTIVi1’YQUEUE 1−IE
ADとACTIVIT’Y QUEUE TAILのエ
ントリを書込むことによつ−(達成され、それらのエン
1−りは活動レコード△R沃P、を指し示す。 次に、瞬間16のとぎ、プロレッナP、内の活動△2P
sは活動△1P、を呼ぶ。その結果、活動レコードA
Re P 5は活動レコードAR,Pyの活動待ら行列
内ヘロードされる。これ(J、活動レコードAR,PX
のACTJVITY QUELJ E 下AILエント
リを活動レコード△IReP5を指し示づように変える
ことによって、まlこ活動し二薯−ト’ARcP、のN
[E X T I N Q U EUEエントリをも
活動シー1−ド△ReI〕、を指し示J゛ように書込む
ことによつ−l達成される。 ここで第5図に移って、ブn I:7ツ1月ノーI−ド
PR1,活動レコード△R+ Px 、 J3よびA
+:< 2 +−)。内の侍ら行列のアンローディング
が述へられる。 第5図において、参照番号6をイコJるそれらのポイン
タは第4図にお(プる参照番号6をイ1するポインタと
同じである。 瞬間[7において、ブ「1セツIJ−1) 、、は瞬間
11からtGにおいて動作していた活動を完了覆る。 そして、それはI N T E RP ROCE S
S01犬RETURN命令を実行づる。それ(、=応答
し−C、コントローラIMC+まプにルツ1ルニ+−l
〜1ツ[犬、内の待ち行列から1つの活動レーi−ドを
取出して、プロセッサレコードPRy、へその取出さね
た活動を通知する。この取出し動作t、1.−:lント
1:]−ラIMOを介してプ[1t7ツリーレ]−ドP
R8内のP ROCE S S ORQ U E U
E l−I E A l)エン1−りをそのプロセッ
サレコード内のC、IJ RR[N 1− I ントリ
ヘ移動させ、また活動レコードΔR,P、、のNEXT
IN QUEUEエン1へりをブロセ゛ン!ナレコー
ドP RxのPROCESSORQUEU E l−I
E A D Iントリヘ移動させることに、よって達
成される。 その後に、瞬間18におい−C、ブlコ亡ツサPVは活
動△1P3を完了する。そして、それ(よもう1つのI
N T E RP ROCE S S ORRE T
IJRN命令を実行する。そのRE T U tべN
命令に応答して、コン1〜ローラ■MCは活動レコード
八「くIPXの活動待ち行列から1つの活動レコー(ζ
を取出す。そしてそれは、活動レコードへRtPy内の
△CT I V I T Y Q IJ iE IJ
LE l−I EへD−エントリをそのレコードのCA
LIERエン1−リl\移動させることによって、また
活動レコード△[尺+Px の ACTI \/ f
T Y Q U E t−+ F l−I E へDエ
ントリ内へ活動レコード△R1、Pa(7)NEXT
I N (、l U E U Eエントリを移動さt↓
ることによって達成する。次に、プロセッサP、はそれ
がその活動の第2の呼出子のために?1IiQノ△1P
。 を再実行しな(−)ればならないことを通知さf+る。 瞬間し、1において、プロロツリーp 、: i、;J
i−1jび活動A、PXの実行を完rづる。そ()−(
、イれIよ再び1つのI N T [RP ROCFS
S Ol”2 RE 1− LJRN命令を実行−り
る。それに応答し・−Cに1ント]」−ラIMCはr1
!iu」レコードA1ヌ、ID1の活動1′05行列か
らもう1つの活動シー1−ドを取出11oそしで、その
活動し〕−ド△RI +−)x 17)A Cl I
V IT Y Q U E U E l−l E A
D Jン1〜りをその活動のCへLL、 E R上ント
リ内へ移動さ11ろことによって、また活動レコード八
R1))。の△CI I Vl 1− Y Q U E
Uピ l−I EA11−1’ントりを空白値にレッ
トづることにj:つて)ヱ成すイ)9次に、T1ント[
]−ラIMCはその活動の第3の呼出子のために活動活
動A、P、を再実行1jる、−1、うにント11.?ツ
、ザP、<へ通知−4る。 その後に、瞬間j+oにおいで、ゾ[1しノツリP9(
ユ活動△、Pyの実行を完了lノー乙、そし−(それは
再び1つのINTEI犬P ROC1−、S 801文
1〈ETURN命令を実行する。これに応答して、コン
1−1フ一ラIMCはプロセラ(ノーレコードPRXの
ブロセツザ待ち行列からもう1つの活動レコードを取出
して、それは実行すべき新しい活動をブロセッナPyに
通知する。この取出@作Vよプロゼツザレコード1)R
VのPROCESSORQIJFU E l−I E
A D エントリをそのレコードのCU R「マE N
i−エン1〜り内へ移動さ牲ることによて)で、゛し
たプロレツtJ−L/ 71−1” P Rx内のPR
OCESS ORQ U E U E l−I EA
Dエン1−りを空白値に変えることによって達成されろ
。 次に、瞬間[11において、ブロセツ→J’Pxl;↓
4rl動A2P、、の実行を完了する。イして、それは
再びl−M)INTERPROCESSORREl−U
RN命令を実行づ−る。それに応答して、−ントロー
ラ[MCは活動1リコード△R2P :<の活動待ち行
列から1つのエントリを取出して、その活動の第2の呼
出子のために活動へ2P、、を再実行1)るようにブ[
11,?ッサPVl\通知する。この取出し動作(よ、
活動レコードAR2PXのΔCl’ I VITY Q
UEUE HEADエントリをその活動のCALLER
エン]〜りへ移動さμることによって、また活動レコー
ドAR,,I)アのΔCTrVI T Y Q U E
U E l−I EΔDエンI・りを空白(直にセッ
トすることによって達成される。 ブロセッ丈PXが活動Δ2P、7の実行を完了し1、:
後に、それ(よ再び1つのI N −r [三[又1〕
1又○C1三5SORRETIJRN命令を実1’i
:Jル。? (7)とき、プロセッサP9が実行すべき
・伯の活動は存在しておらず、そしてコントローラIM
Oは単にプロLツサレコードPRx内にBtJSYフラ
グをり口・ントして、そのレニ1−ドのCU RRIE
N T Tlエントリ空白値にセットする。 上記の動作のシーケンスから、ブ1ニ1 山ツリ1〕、
が活動△1P、とAzPxを実行1ノたlll′1IY
−はそれらの活動が呼ばれた順序と完全に巽’x’L−
)たbのであったことがわかる。具体的には、ぞれらの
活動は△T P、、、、A2P、、Δ+ P x +△
21〕ア、およびA、P、の順序で吐出されたが、それ
らの活動が実行された順序は△+Px+八It〕へ+△
1Px 、 A2 PX 、およびA2PXの順序でd
うった。 言い換えれば、活動A、P、はその呼出子のそれぞれの
1つに関して1回実行されて、そ()て活動Δ2 P
x I’;iその呼出子のそれぞれの1つについて1回
実行された。そして、これはイれらの活動が呼出された
順序と関係なく起こる。、活動のそのような順序位えは
重要であって、なぜならば、それGELブロセツザが1
つの活動の実行からもう1つのものへ切換わる回数を最
小にするからである。 切換えが起こるたびに、その新しい活動に関する]−ド
はその活動を実行1ぺぎプロロツリーのメモリ内へ読込
まれな(ブればならない。また、活動かそれに基づいて
実行するデータのためにそのメモリ内においてスペース
が再割当されなければならない。これらのリソース割当
動作は時間を潤比するものであって、したがってそれl
(Lシステムの全体的性能を低■させる。 ここで、INTERPROCFSSORNEXT命令の
動作を図解している第6図が参照されるべきである。こ
の図にJ3いて、以前の第3図ないし第5図におけるよ
うに、参照?fr、M 1から9を有するポインタは、
それらの参照香弓にえj応する瞬間におりる活動レコー
ドとブロレッリ1リコード内のそれぞれのエン1〜りを
示している。 Jメ下の表6は、概略的な第6図で起こる出来事のシー
ケンスを示している。この概略【よ、活動A。Plがも
う1つの活動AI)P2を呼出しで、次に活動AbP2
が活IJAcP、へNEXT命令を実行して、次に活動
A、P、が活動Δ、LP、へNEXT命令を実行して、
次に活動へべ1〕、が活動AI)P2またはA、:P8
へ再入づることl> <直接A、P、へもどるというシ
ーケンスを示し−Cいる。 (以下余白) 第6図を見れば、時間1.においでプロしツリーP、は
活動A P、を実行していることがわかる。 それは、時間t、においてプロピッリレー1−ドPR1
内のCIJRRENTエン1へりが活千カレコード△R
ユP、を指し示しているからである。 次に、時間[2において、活動へ(、Plはブロセツナ
P2内のCALLING活動△1)P活動上1でその実
行を中止する。その結果、活動レコードARbP2内の
CA L L E Rxン1〜りはそれが活動レコード
AR,P+を指し示Jようにコン1〜ローラIMOによ
って書込まれる。また、ブ1−1セッサレコードP R
2はプロセッサ1〕2が瞬間[lにおいて現在もう1つ
の活動を実(1し−Cいてビジーであることを示してい
るので、ブロセツリレコードPR2のPROCESSO
RQLJEUFl−1[EAD とP ROCE S
S ORQ (l l三 UETAILのエントリは活
動レコード△Rb l−’2を指し示すようにコント]
」−ラIMOににつ−C書込まれる。 その後、時間[、において、プロしツリP2はINTE
RPROCESS’ORREV−URN命令を実行づ゛
ることによってその現在の活動の実行を完了する。その
結果、=1ント[1−ラIMCはプロセッサレコードP
R2のPROCESSORQ U E U E HE
A DエントリをそのレコードのCURRENTエン
トリへ移動させて、そ(〕で活動A6Pzの実行が始ま
る。 その後、時間1−2において、もう1つの活動AxPy
は活動A6Pzを呼ぶ。したがって、活動AbPzは△
CTIVEステートにあるので、活動レコードARxP
yのポインタはコン1〜ローラIMcによって活動レコ
ード△RしP2の活動持ち行列内へ書込まれる。 次に、時間[5において、活動△l、P、!は活動△、
P8へINTER,PROCESSORNEXT命令を
実行する。その結果、コント[l−ラIMCGよ活動レ
コード△R)P2のCALLFRエントリを活動レコー
ドAR,P、のCΔL、 L−E Rエントリへ移動さ
せる。したがって、活動レコードARcP、内のポイン
タは、丁Ifあたかも活動A、P、が活動A、P、にJ
:って直接呼出されたかのようである。 C△LLERエントリの上記の移動の結果どして、活動
△b P2は活動A、P、かIうどんインパラメータも
受取らないであろう。その代わり、それらのパラメータ
は直接活動△。l〕1へ送られる。 そして、INTERP’ROCESSORNEXT命令
の実行によって、活動へシ1〕2はその活動の付加的な
呼出子によって自由に再実行されることができる。した
がって、開開[5にA3いて、コントローラIMCは活
動レコード△[<ら1〕2の△CT I V I T
Y Q U E U E ’l−11三△D[ントリを
その活動レコードのCALLERエントリ内へ移動ぎせ
て、それはその新しい呼出子のために活動AbP2を再
実行するようにブ1]I?ツリーP2へ通知する。 時間t6において、プロレッリP3は前に実行していた
活動の実行を完了して、イーしてイれ(j1ツ(7)
I N T E RP ROCE S S ORRE
T U RN命令を実行する。その結果、コン1−〇−
ラrMCは活動レコードAR,:P、のポインタをブロ
セッυレコードPR,のP ROCE S S ORQ
UEUE HEADエン1−りからCURRENT玉
ントリヘ移動させる。次に、ブ[II?ッサP3は活動
△CP3の実行を開始する。 時間tヮにおける活動△、P3の完了にJ:って、ブロ
セツ1すP、は1つのIN’丁ERPROCESS O
RRE T LI RN命令またはもう1つのINTE
RPROCESSOP NEXT命令のいずれかを実行
づ−るオプションを有ヅる。第6図において、INTF
RPROCESSORNEXT命令は活動AdP、へ実
行される。その結果、コントローラIMCは活動レコー
ドへR,P、のCALLERエン1へりを活動レコード
ARdP、のCALLERエントリへ移動させる。また
、ブロレッナP、はビジーではないので、ブ[II?ツ
リーレコードPR4のCURREN丁エントリはコンl
−ローラIMCによって活動レコードARaP、のポイ
ンタとともにロードされて、プC1txツサP。 は活動Δd P4の実行を開始するように通知される。 時間下。において、ブ[lピラリ[)、は活動A、(P
、の実行を完了する。そして、プロしツリーP、。 ハI N ’T’ E RP ROCE S S Oi
’< +’(IE ’l’ U II N命令また(ま
+rrrERpRocEsso1で NEXT命令のい
ずれかを実行する訓プシーコンを右づ−る。第6図にお
いて、プロセツ1月つl;l:INTERP ROCE
S S ORRIE T U RN命令を実行づる。 I N T E RP RQ CE S S OII
R[T IJ RNによって、コントローラIMCは活
動1)L」−ド△RPうのCALLERエントリをブl
:l 1?ツリレコードPR,のブロセッリ持ち行列内
へ[」−ドする。その後に、時間19にJ3いて、ブ1
」ヒツサP、は以前実行していた活動の実11を完了)
ノて、それは時間t2において以前中小した活動△。P
。 の実行を再開する。 活動△。Plの実行の再開は1り能である。<丁、yな
らば、その活動がvj機していたC△l−L E o活
動△。P:lからのパラメータは時間tBにおいて利用
可能であったからである。しかし、上記のことから、そ
れらのパラメータは中にCへl LFD活i%JrA)
、P2から来lこのではないことが明らか又ある。そう
で(よなくて、それら(ま3つの活動へbP2.AcP
、、おJ:ひ△、lP4のシーケンシャルな実行の結果
であった。 しかし、INTERPROCI三S S ORN [−
EXT命令の動作によって、このシーケンシャルな実行
はすべて完全に活動A。Plから隠され/こ。 したがって、活動へ。Plと他の活動へ、、l:)、と
A改P、とのリンケージは人さく簡略化された。 さらに、活動△しP、とへ、P8は活動へ、xl)。 から活動A。Plへ送られるハラス〜りのように再実行
される必要がなかったので、そのパラメータの送りは非
゛帛に迅速に起こる。 ここで、複ジ文のブロセツ(、j、p、、P、、・・・
Pl、が少数のプロレッサレー1−ト′、活動レニ1−
ド、 A3よびシェアされたメモ98M内のパラメータ
をアクセスして変えるもう1つのシステムを図解しくい
る第7図を参照すべきである。このシステム(J、主に
ファイルアクヒスコン1へ[1−ラ20を含んでいる点
において上述の第1図のシスーIムと異なっている。そ
のコントローラ20は、従来のメモリ読出しとメモリ書
込みml ′:/ンドにJ、って直接レコードをアクセ
スして変えることを1+−+ L?ツリーに認める。 ヅなわら、第7図のシステムにおりる1ノミ1−1〜は
従来のメモリ内にストアされ、それらiJ従来の非イン
テリジェントメモリー1ントfi+−ラM Cを介して
アクセスされ、そして第7図のシステムのプロセッサは
1ワードのメモリ読出しどメ−しり占込みのコマンドの
シーケンスを直接非インテリジェントメモリコントロー
ラMC/\送ることによ−)てI N T E RP
ROCE S S ORff1l 令ヲ実行?Iる。 しかし、いずれかのプロセッサがシ1アされたメモ98
M内のレコードを読出すかJ、Iζ+i?+込むために
非インテリジェントメモリコンl−lll−ラへそのよ
うなコマンドを送る11qに、プロセッサはファイルア
クセス]ントO−ラ20からイのようにづることについ
ての認可を受取らな(ジればならない。 第8図はファイルアクセスコントローラ20の1つの好
ましい実施例の詳細を示している。イれは21−1から
21−nの複数のn″個のフリップ70ツブを含んでい
る。1つの実施例において、各フリップフロップ(まシ
ェアされたメモ98M内の1つのレコードに対応してい
る。うなわら、各フリップフロップは1つのプロセッサ
レコードまたは1つの活動レコードに対応している。こ
の代わりに、設泪の3パ択によって、各フリップ−70
ツブは1つのプロセッサレコードとその1つのプロセッ
サレコードに関1〕で対応する活動1ノ」−ドのすべて
と対応する。 最初に、JべてのフリップフロップはりピッI〜されて
いる。次に、1つのプロセッサーがいり”かのレコード
をアクセスリ−ることが醸される萌に、それがアクセス
しようと望ん℃゛いるレコードに対t、i5するものが
現在リセッ1〜されているかどうかを確認ツーるために
、まづ“それらのフリップフロップに間合わせしなEプ
ればならない。その目的のために、そのリクエストして
いるプロセッサ′(ヨ、バスを通してコントローラ内の
モジュール22ヘメツセージを送る。都合良くは、モジ
コール22は?イクロプロセッサである。 モジコール22へ送られるそのメツレージはリクエスト
しているプロセッサを識別し、またアクセスがシークさ
れているづべでのレニ■−トを識別づる。たとえば、4
つのブロセツリlリコードPRへ、PRし 、PRc、
およびPR,(とづべての対応する活動レコードはその
メツセージ内の4つのエンコードされたフィールドFへ
+Fb+Fc+おJ:び「ぺによって識別され得る。 メツセージを受取って、モジ、フール22はそれを内部
バス23を介してレジスタ2/lへ送る。そこから、フ
ィールドF。+F6.l:2.およびF硫がそれぞれマ
ルチプレクサ25a 、25b 、25c 、 J5よ
び25dの制御人力端末I\送られる。また、各マルチ
プレクサは21−1 /〕s +ら21−nのフッツブ
フロップのすべでのO出力へ接続されたそのデータ入ノ
J@末を有している。 従って、レジスタ24のフィールド[へは、マルチプレ
クサ25aの出ノノヘゲートされるフィールド「6に対
応した1つのフリツブフl]ツブの0出力を生じる。同
様に、レジスタ24のフィールドFしはマルチプレクサ
251)の出力ヘグートされるそのフィールドに対応し
/ζ1つのフリップフロップの0出力を生じ、他のフィ
ールドし同様である。それらのザベての○出力は次にA
NDゲート26によって1つにANDされ、そして、そ
の結果はそれが調べられるモジコール22へ)スリ返さ
れる。 ANDゲート26からの信号がロジック1であるとき、
モジコール22はバスを介()でメツセージを送って、
そのリフニストL、−(いるブに1ゼッ復に識別された
レコードの内容を変えることを望1i■Jる。内部バス
23はリフボストしているjロレツサの識別を調べる/
ζめの手段をりえ、イしてこのメツレージはそこへ送ら
れる。 また、ANDグー1−26からの信号が1であるとぎ、
モジコール22ば21−1から21− nのフリップフ
ロップのすべてに単一のクロツクバルスを送る。それら
のフリツブフ1」ツブはJKフリップ70ツブであって
、それらの0人力に活動的信号を有しているものはレジ
スタ24内のFa 。 Fb 、F、、およびFdのフィールドによって制御さ
れる。したがって、フィールド「4 、Fら。 FC,JJよび「dに対応づるイれらのフリップフロッ
プはすべて単一のり]コックパルスに応答してセラ1−
される。 より具体的には、レジスタ24内のF、 、 Fi、
。 Fc、およびFd のフィールド1まそれぞれデコーダ
27a 、 27b 、27C、おJ、び27〔1へ送
られる。それらのデコーダの各々は複数の出力信号を発
生するが、一時にはそれらの信号のただ1つのみが高レ
ベルになる。高レベルになるその出力信号はデコーダが
レジスタ24から受取る′二1−ドと対応する。 言い換えれば、デコーダ27aの第1の出力はレジスタ
24内のフィールドF。がバイナリ1に等しいときに高
レベルになり、f]−ダ27aの第2の出力はレジスタ
24内のフ、C−ルドFαがバイナリ2であるときに高
レベルになり、以下同様である。また、デコーダ27a
、27b 、27C1および27dの第1(7)出力(
、&WIRED−OR様式でずべてか1つに接続されて
いる。したがって、レジスタ24内のフィールドFa
、 Fb 。 FClまたはF、+のいずれががバイナリ1に等しいと
き、それはフリップフロップ21−1へ311らレル。 同様ニ、デコーダ27a 、27b 、27c 。 ;J5J:び27(J(D第2の出カバW [RE D
−OR様式で1つに接続されており、以下同様である
。 ここで、モジュール22はFlがらF、までのフィール
ドによって特定される種々のレコードをアクセスするプ
ロセッサからのりクエストを受取るが、ゲート26の出
力は対応づ゛るフリップフロップの少なくとも1がセッ
トされていることを示′1J′Oであると仮定しよう。 その場合、モジコール22はレジスタ24内の内容を先
入先出<Frr:O)待ち行列28内ヘロードし、それ
はモジュール22の内部のカウンタに1を加える。 次に、いくつかのレコードと間合わせ覆ることを以前に
認可されたプロセッサの1つがそのタスクを完了したと
仮定しよう。この場合、そのプL1セツザは問合わせを
終了し1ζレコードを示J−メツセージをモジュール2
2へ送らな(プればならない。 好ましくは、それらのレコードはそのメツレージ内にお
いて複数のエンコードされlζフィールドによって識別
される。 そのメツセージは次にモジュール22ににつてレジスタ
29へ送られる。そこから、間合わされたレコードの数
を含むフィールドはそれぞれのデコーダへ送られる。た
とえば、4つのγコーグ3Qa 、30b 、30c’
、 #3J:び3 Q d 4;L、レジスタ2つ内の
メツセージが4つの、1ニンコードされたフィールドF
、、−,Fら−、F、c −、JJJ:びFd−を含む
ときに与えられる。 デコーダ30aから30dのザベ−C(まw s RE
D−OR様式で1つに接続されたそれらの第1の出力を
有しており、またそれらはノリツブ7[゛1ツブ21−
1のに入力へも接続されLいる。したがって、レジスタ
2つ内の4つのフィールドのいザれかがバイナリ1を含
んでいれば、フリップフロップ21−1はすべてのフリ
ップフロップがロックされているときにりけツ1〜され
る。 同様に、デコーダ30a−30dの第2の出力は1−べ
てか1つに接続され”CJljす、それらはフリップフ
ロップ21−2のに入力へ接続されており、以下同様で
ある。したがって、間合わされたレコードに対応するフ
リップフロップをリセットづるために、モジュール22
はレジスタ2つをCI−ドした後に単一のパルスによっ
てすべてのフリップフロップを単にクロックするだけで
ある。 次に、モジ]−−ル22はどれ/ど(すの数のエン1−
りがFIFO28内にあるかを確認するためにその内部
カウンタを調べる。もしそのカウントが0でなければ、
モジュール22は待ち行列1ン1〜す1を一時にレジス
タ24内へ移す。そのにうな各移動の後に、1ステート
にあるかどうかを確認するためにANDゲート26の出
力を調べる。 ANDゲー1〜26が1スデートにあるとき、モジュー
ル22はレジスタ24のリクエスタ部分をバス23上に
読出して、リクーrストしたレコードを今修正してもよ
いことを承りメツセージをそのレジスタへ送る。また、
フリツブフし1ツブ2〇−1から21−nのすべてはモ
ジ“1−ル22によつ−(単一のパルスでクロックされ
、ぞのパルス【、Li?コーダ27aから276の出力
によって指揮されるようにフリップフロップをセラ1−
する。さらに、モジュール22の内部のカウンタは1に
よってデクリメントされる。 これとは逆に、ANDゲー1〜26の出力がOステート
にあれば、モジュール22は1ノジスタ24の内容をF
I FO28内へ単にロードしiI!iづだけである
。第8図において、6木の破線の相は、十述の動作が起
こるように、モジュール22によってそれぞれの制御信
号が送られるそれぞれの導線を表わしている。具体的に
は、り[−1ツクパルスはワードをP I F028内
へロードづるために導線Aで送られ、クロックパルスは
F I FO28からのワードをアンロード覆るために
導線Bで送られる。 また、制御信号はFIFO28上たはバス23からのレ
ジスタ24への人力データを選択づるために導線Eによ
って送られ、クロックパルスはその選択された入力デー
タをレジスタ2I!I内へ11−ドするために導線Fに
よって送られる。さらに、クロックパルスはフリップフ
[1ツブ21−1から21−nをクロックするために導
線1−によって送られ、さらにクロックパルスはレジス
タ29をロードするために導線Mによって送られる。 上述の)7/イルアクセスコン1−ローラ2oの1つの
特徴(J1シェアされたメモリ内の種々のレコードを同
時にアクレスし・て変えるようにプ[1[?ッサP 1
. P 2 、・・・pHのいくつかを能動化すること
である。この場合の唯一の制限は、2つのプロセッサが
同一のレコードを変えることはできないことである。し
たがって、たとえば、プ【]ヒッザP2がレコt”2.
12.31 、 J5よび40を変えていてプロしツ
ナP、がレコード3,11,20、おにび32を変えて
いても、プロゼツ]ノP。 はレコード1,15,30.おJ:び56を同時に変え
ることができる。第7図のシスデl\のもう1つの特徴
はその柔軟性である。一度ブ111?ツリーが特定のレ
コードを間合わせて変えることをファイルアクセスコン
トローラ20から認可されれば、それはメモリ読出しや
メモリn)込みの−,+ v7ンドのどのようなシーケ
ンスによってしfTなうことができる。したがって、最
初にレー二1−ドを読出すことができ、次にプロセッサ
は読出したレコードの内容に基づいて1つの活動または
もう1つの活動を呼出すことができる。これはC0ND
ITIONΔL INTERPROCESSORC△[
1−命令を実行する。 C0NDITIONAL INTERPROCESSO
RCALL命令の有用性の1つの例として、2つのプロ
セッサが同じ活動を実行することを仮定しよう。たとえ
ば、両刀のブ1」レツサは高速浮動小数点の数学的活動
を実行し得る場合である。この場合、C0NDITIO
NAL INT E RP ROCE S S ORC
A L’ L、、命令を実行することによって、呼出子
は最初にそれらの浮動小数点活動を実行する2つのプロ
セッサの活動レコードを調べることができ、次に、でれ
はどちらのプロセッサが現在ビジーでなかったかに依存
して1つのプロセッサまた(J他方の1にlL?ツリ内
の活動を呼出づことができる。 第7図のシステムのもう1つの特徴は、プロセッサがシ
ェアされたメモリS IVI内のレコードへアクセスす
ることができるスピードである。制御ワードをファイル
アクセスコン1〜ローラ20へ送るためにバスは1つの
サイクルを必要とし、メツセージをレジスタ24へ送る
ためには第2のリイクルが必要で、ANDゲー1〜26
からのtス]・条イ!1が安定づるのを待つために第3
のサーイクルが必要で、さらにANDゲート26に基づ
いてリフ1−ストされたレコードをアクセスづるCこと
を認可づ−るメツセージをそのリフニス[〜しているブ
[1セツサへ送り返すこととその対応ツーるフリップフ
ロップ21−1から21−nをゼッ(〜づるり[:)ツ
クパルスを送るために第4のサイクルが必要である。し
たがって、たとえば100ナノ秒のナイクル時間であれ
ば、レコードのアクセスには400ナノ秒かかるだげで
ある。 これで、本発明の種々の実施例が詳細に述べられた。し
かしながら、さらに多くの変化や一部変更が発明の本質
や精神から離れることなくこれらの詳細になされ得る。 したがって、本発明は前記の詳細に限られるものではな
くて添(=Jされた特許請求の範囲によって限定される
ことを理解づべきである。
PROCESSORN[ミX 1−命令を実行するステ
ップと、前記第3の活動が前記第2の活動によってでは
なくて前記第2の故v)の呼出子によって呼出されたこ
とを前記N E X T命令に応答して前記第3のプロ
セッサへ信号で知らI!るステップと、前記第3のプロ
セッサ内の前記第3の活動を完全に実行してその完了時
において前記中井された第1の活動の実行を再開づるに
うに前記第3の活動の呼出子へ信号で知ら1Lるステッ
プとを含む。 友塵j」已わ1 本発明の種々の特徴や(1」点はここに添イ]されに図
面とともに計測に述べられる。 第1図にJ3いて、複数の′、、、 +1個の独立なデ
ィジタルプロセッサはP、、P、、、・・・1〕。と名
付けられた数個のボックスによっ−(表わされている。 これらのブロセッυ−は何らかのプログラム可能なタイ
プのものであって、それらは同一のまたは互いに異なっ
/こものであってもよい。都合良< 1.、+、ブロセ
ッ’J−P、からPl、は、t−1、P otast+
等ニci:る゛プログラム可能な構造を有づるディジ
タルコンピュータ″という題名であってバロース・=+
−ボレーションに譲渡された米国特許第4,346゜
438号または)−1,potas+を等にょる゛′相
相接接続マトリックス備えたディジタル装置″という題
名であっ−Cバ「j−ス・コーポレーションに譲渡され
た米国特許第4,327,3Fi艷;号にJ3い−C)
玉べられたタイプのものである。 プロセッサP + + P 21 ・・・PoLよそれ
ぞれメ;しすM、、M2.・・・M)、に接続されてい
る。これらのメモリは何らかのディジタルタイプのメモ
リであればJ:い。たとえば、それら(、Lスタディツ
クまたは夕゛イナミックタイプの半導体メーしりであっ
てもよく、それらはMOSまlζ(,1,バイポーラの
回路で作ることができる。また、それらのメモリの記憶
容量と動作速度は同一またLL Tiいに巽なっていて
もよい。 メモリM1の1つの部分はブ1−+ ′L!ツリ1″1
がそれに基づいて動作するデータを含/υでJ5す、一
方、メモリM、のもう1つの部分はプ[II?ツリP・
が実行するプロセッサ内活動を含んでいる。ここで用い
られているように、プ[II?ツリ内活ΦIJ kLブ
1コセッサにそのプロセッサのリソースのみを用いて特
定のタスクを実行させるプ1コグラム′c1、た(−L
プログラムの組からなっている。そのにうなリソースは
そのプロセッサ自身の内部ハードウェアやそのプロセッ
サのメモリを含み、さらにそのプL1セツザに接続され
たディスクやテープなど(図示Uず)のような何らかの
周辺装置をも含んでいる。第1図において、プロセッサ
P、が実行するそれぞれのプロセッリー内活動はA、P
、、△2P1.・・・。 などの記号で示されている。 同様に、メモリM2の一部分はブ[1しツリーP2がそ
れに基づいて活動するデータを含んでおり、メモリM2
のもう1つの部分はブロレッリP2が実行するプロセッ
サ内活動を含・んでいる。それらの活動は第1図におい
てA、P、、A2 P7.・・・。 などで示されている。同様に、メモリM、、LJノブ−
]セッザPnがそれに基づいて活動するデータを含んで
おり、またプロセッサp nが実行づるプロセッサ内活
動A、Pn、△2Pn、・・・、を含んでいる。 メモリM + + M 2 +・・・Mnの各々はブ臼
セッナ間命令をも含んでいる。それらはINTERPR
OCESSOR0ALL命令、INTERPROCE
S S ORRE T IJ RN命令、およびINT
EIでP1又0CESSORNEX王命令である。 一般に、これらのプロレツザ間命令I:Lグ1コゼツリ
P、、P2.・・・1〕、が互いに通信りる手段を与え
る。より特定的に言えば、それら(よブ1」ヒラ4)内
活動△、P1.△、P2.・・・Δ11〕。などのすべ
てが1つにリンクされて順序正しく同1vJさfIたシ
ーケンスで実行される手段をノブえ、それIJ 後−(
”さらに詳しく説明される。 プロセッサP I + P 2 +・・・1〕。は11
1−のタイムシェアされたバスを介してインテリジJン
トメモリコントローラIMOに接続されており、:1ン
トロ一ラIMcはシコアされたメモリSMに接続されて
いる。コントローラI M CuttJしくけ上記のタ
イプのプログラム可能なコントローラであって、メモリ
SMはどのようなタイプの読出し/@込みメモリでもよ
い。 メモリSMはそれらのブ[1t?ツリの各々のために1
つの独立したブOセツリーレコードを含んでおり、その
ような各レコードはここでP R1として示されている
。また、メモリSMはそれらのプロセッサにおけるプロ
セッサ内活動の各々の)〔めに独立の活動レコードを含
んでおり、そのような化レコードはΔRy、P、で示さ
れている。さらに、メモリCMはプロセッサ間命令を介
して1つのプロセッサからもう1つのブロセツザヘシェ
アされて送られるパラメータを含んでいる。 各プロセッサレコードPR,内に含まれているのは、プ
ロセッサ−P6が現在成る活動を大行していてBIJS
Yであるかまた【まN OT−B LJ S Yのいず
れであるかを示すフラグである。プ]二1セッサレコー
ドPR,は、プロセッサP1がB 1.J S Yのと
きにそのブロレッサが実行している現在の11−1セツ
サ内活動を指し示すCtJ RRE N Tエン1〜り
をも含んでいる。 ブロセツーリレコードPR,はさら【こP RCI C
ESSORQUEUE HEADエントリ(PQl−1
) と RROCU S S ORQ U E U E
T A 1しエントリ<PQ工)を含んでいる。これ
らの2′つのエントリはそれぞれプに11?ツリP1か
実行づべき異なった種類のブロセツナ内活動のために活
動レコードの待ち行列の先端と後端を指し示づ。 すなわら、同じ種類の活動のポインタは、たとえその活
動が数回呼ばれるとしてもlζだ一度だけそのプロセラ
1ノー持ち行列内に入れられる。ブ+:+1ツサレコー
ドPR,は、設計士の選択として、−j二連のものに加
えて他のエントリをし含んでもよい。 活動レコードARX P: は対応する活動がD OR
MANTまタハA CT L V F アルイl;L
S U S PUNDEDであるときを示すフラグの組
を含んでいる。活動は、プロセッサがその活動を実i−
jづるために実際に使用されているとき八〇TI\/F
である。活動が完了の途中まで実1:iし、′Cもう1
つのプロセッサにおけるもう1つの活動の結果を待つ間
に停止しているとき、活動はA C’I−I M F
$こ留まるが5USPENDEDステートにある。その
ような結果ハl N T E RP ROCE、 S
S ORlN5TRUCT l0NSを介してリフニス
トされて得られる。他のすべての場合において、活動は
D ORM A N Tである。 活動レコードARX P、は、最初に活動△yP1を呼
ぶべき活動の活動レコードのポインタであるCALLE
Rエントりをも含む、、活動AyP。 の後続のいずれの呼出子も、その後には活動レコード内
のA CT I V I T Y Q LJ E U
E T A ILエン1〜す(△QT)とへCTIVI
TY QUEUE HEADエントリ(△QH)が続く
。 特定的に言えば、活動△。Plの後続の呼出子のポイン
タはその活動の待ち行列内に置かれる。 エントリ八〇 l−1は活動A x P :の第2の呼
出子の活動レコードを指し示し、エン]−り△QTは活
動△χP1の最後の呼出子の活動レコードを指し示づ“
。活動待ち行列すたけプロセッサ待ち行列のいずれかの
中間エントリは、活動の種々の呼出子の活動レコード内
のN E X T I N Q tJ E IJ Eエ
ントリ(NIQ)によって1つにリンクされる。 また、活動レコードΔR,P、は、INTERPROC
ESSORlN5TRUCTIONSを介して、2つの
活動間で送られるパラメータのポインタを含むP A
RA M E T E f3エンlへり(P△RAM)
を有している。たとえば、活動△vP1が活動AyP)
を呼・Sとき、次に活動レコードARyP、のPARA
MエンドI)は活動AyPJがそれに基づいて動作Jべ
きシ]アされたメモリ8M内のパラメータを指し示−リ
。逆に、活動AIPJ が完了したとぎ、活動1ノコ一
ドA]文XP、内のPARAMエントリは活動A y
P J によって活動△、P1へ)苫られつつあるシJ
アされl、ニメモリ内のパラメータを指し示づ。 第1図のシステムに関りるプロセッサレコードと活動レ
コードの完全なヒラ1〜の1′つの例が第2図に示され
ている。この例において、PR,かうPR,、までの1
1個のブ[1t?ッリレ′:I−ドがあり、それらはそ
れぞれP、からPnまでの11個の物理的に独立なプロ
セッサを表わしでいる。さらにこの例において、各々の
ブ1コレツリーが実行する活動の数はプロセッサごとに
おい−を異なっている。 第2図はプロセッサ1が5つのブ1コヒツリー内括動を
実行することを示しており、これらのン古動のための上
述のポインタはそれぞれ△R4P、から△R5P、まで
の活動レコード内にある。同様に、第2図はプロセッサ
2が11個のプロセッサ内活動を実1行、し、プロヒッ
ザ3が9つのプ1]セッザ内活動を実行し、プロセッサ
4が3つのブロセッ+J−内活動を実行づることなどを
示している。また、これらの活動レコードとプロセッサ
レコードの各々はどの活動がどれを呼んでいるかを追跡
づ−るそれら自身のポインタを有しており、種々のプロ
セッサがそれぞれのプロセッサ内活動を実b ”Jる順
序を決定する。 ここで、INTERPROCESSORC△L1命令に
応答してコントーラIMCににって実行される動作の詳
細について考えよう。下記の表1はブロセッザP、内の
活動AyP、がプロセッサPJ′□内の活動A、l)j
を呼ぶ一般的な場合に関するそれらの動作を示してい
る。 (以下余白) 活動AyP、がDORMANTであってプロセッサPj
がNOT BIJSYであるとき、コン1−ローラI
MOは以下のタスクを実行する。まず、それは活動し]
−1’AR/P、 内ノAcT I VEフラグをセッ
トすることによって活動A、P、を△CTIVEにする
。次に、活動レコード△R/P1のポインタを活動レコ
ード△Ry P J のCAL L E Rエントリ内
ヘロードする。また、活動レコードAR7P、のポイン
タはプロセッサレコードPR,のC()RPENTエン
(〜り内ヘロードされる。次に、プロセッサレコードP
R,のためのBUSYフラグがセットされて、活動△y
P、の実行を開始させるように通知するメッセージがプ
ロセッサP、に)Σられる。 しかし、活動△ンPJがD ORM A N T テ(
15ってプロセッサP、がINTERPROCESSO
RCALLのときにBUSYであれば、そのときコント
ローラIMGは以下のように動作する。 まず、それは活動レコードAR,PJ 内のA CTI
VEフラグをセットする。次にそれは活動レコードΔR
x P +のポインタを活動レー暑−ド△R/Pj の
CALLER位置内へ[j−ドする。次に、それは活動
レコードAR/PjのポインタをプロセッサレコードP
Rjの持ち行列内へロードする。 この後者の動作は、プロセラリレ:1−ドl)R,のP
ROCESSORQUEUE ]△11によって指1ノ
示される活動レコードのNLXT 1NQUEUEエン
トリ内への活動し」−ド△R/PJのポインタのローデ
ィングを伴い、次に活動レニ〕−ドΔR/P)をも指し
示J−ようにブII tッ1ナレコードPRのP RO
CE S S ORQ l、、I E l−I ETA
ILエントリを変える。 最後ニ、活動A /PJ がINTERPROCESS
ORCAL、、l−のときにA 、C−1−I\/「で
あれば、そのときインテリジエンI〜メモリコン1〜ロ
ーラは活動レコード△R,P;のポインタを活動レコー
ドARyPj の待ち行列内にロードづ゛る。これは活
動レコードA R/P J の△C1’l\/ITYQ
U E U E 1−Δ11によって指jノ示される
活動レコードのNEX丁 IN QUI三U[Jントリ
内への活動レコードARyP、のポインタのローディン
グを伴い、次に活動レコードAR,yP:を指し示ず活
動レコードAR,P、内の△C丁IVITY QUEU
E TAILを変える。 上記動作は単にCA L L E D活動レコードとC
ALLEDプロセッサレコードに影響を及ぼすだけであ
ることに注目づべきである。しかし、これに加えて種々
の動作がCALLING活動レコードとCALLING
プロセッサレ−1−ドにおいてら実行されなければなら
ない。これらの動作は以下のようである。 CA L L I N GプロセッリレコードPR1内
の待ち行列がNOT EMPTYであるとき、1つのエ
ントリがその待ち行列から取り出されてブ1−IL ・
y +l−V D −トP R、(f) CIJ RR
I三N T エンh ’)内ヘロードされる。このアン
ロープインク動作はプロセッサレコードPR,のPRO
CL:5SORQ U E U E l−I E A
DエントリをプロセッサレコードPR,のCIJR’R
EN下エントリ内へ移動さけ−ることを伴い、次にプロ
セッサレコードPR。 内のPROCE’5SORQUI三()E +I「A
Dによって指し示される活動し:I−ドからのNEXT
IN QUEUEエントリかプ11L?ツリ゛レコー
ド PR,の P ROCE S S ORQ lノ
F しノ EHEAD内ヘロードされる。3Llこ、
コン1〜L1−ラIMCによってメツセージがプロロツ
リpH\送られ、それはブ[1セツサレコード1〕R1
内のCURRENTエントリによって指し示される新し
い活動をそのプロセッサに知らμる。 一方、プロセッサレコードPR,内のliら行列がFM
PTYであるとき、そのブLII?ッυレコード内のフ
ラグはプロセッサP1がN OT +3 LJ SYで
あることを示づようにLツ1〜される。J、た、そのよ
うな条件において、プロセラ薔ナレコードPR,内のC
IJRRENTエントリは空白(1(+にしットされる
。さらに、上記とこの場合の両グツにおいて、たとえ呼
出し活動が中止された状態にあっても、その呼出し活動
レコードARxP+内の△CTIVEフラグはセットさ
れたままであることを注目すべきである。 次に、プロセッサの1つからのINTERPROCES
SORRET’LIRN命令に応答し7てコントローラ
IMCによって実行される動作について考えよう。特定
的に、プロセッサP、内の活動A y P’3 がプロ
セッサP、内の活動△8P1へ戻る場合を考えJ:う。 これらの動作は以下の表2に示されている。 (以下余白) RETUREが起こったときに活動レニ]−ドARノP
Jの持ち行列がNOT EMPTYであれば、そのとき
コン1ヘローラーMCは以下の動作を実行する。まず、
1つのエントリが活動レコードAR,pJの持ち行列か
ら取出される。これは、活動レコード△R/PノのAC
丁■\/ITY QU [E IJ E 、1−I E
A D内のポインタを活動レコード△Ry PJのC
A L L IE R位置内へ移動させるこ、!: ニ
J:つて達成され、そして活動レコード八R/Pj の
A C’r I V I T Y Q IJ E U
E +−11三 △ Dににつで指し示される活動し]
−ドのNEX丁■N QUEIJEエントリを活動レコ
ード△RyPJ(7) A CT I V I −r
Y Q IJ E U E l−t E A D 内’
\移動させる。その後に、その活動の新しい呼出子(7
) tcめに活11i1JA P、i を再実行するた
めにメッセ/ 一ジがプロセッサP、に送られる。 一方、RETURN命令がJ ンI−ロー 71 M
Cへ送られるときに活動A、PJの待ち行列がEMPT
YであるがプロセッサPJ の侍し行列がN OT E
MPTYであるならば、そのときそのコントiコーラは
以下の動作を実行する。、:l:ず、活動レコh’A
Ry PJ 内’DV 5 クハIJ ORMA N
’1’ステー1へを示づように変えられる。次に、1つ
の」ニントりがプロセッサレコードP RJの持し行列
から取出されて、そのプロレツリー1ノロード内のCU
RRENTエントリはその待ち行列からJIM出される
そのエントリとともに更新される。次(J、メツセージ
がプロセッサPJ に送られ−C1それ(まプロセッサ
レコードPRj 内のCURRE N l’ 1−ソト
すによって指し示されている新しい活動し]−ドをプロ
セッサに知らせる。 最後に、RE T U R’ N命令が]ントローラI
MOへ送られるときに活動レコードAR,Pj の待ち
行列とプロセッサレコードP 、RJ ’I) (!l
’s待行列どちらもEMPTYであれば、そのときプ
(]I?ツサPj に関して現在実行J−へ8他の活動
は存在しない。したがって、プロセッサレコードl”
F<j 内のフラグはプロセッサPJ がNOT BU
SYであることを示づようにセラ1〜され、そしてブ1
」セッサレコードPRJ内のCl−J RRE N−r
コニントリが空白ステー1−にセットされる。 RET’URN命令に関づ′る一L:記のづべての動作
はCALLED活動レコード△し/P、とCALIED
プロレッサレ=1−ドPRJ において実行される。ざ
らに、以下の動作はそのRE T IJ RN 命令に
応答してCΔLLJNG活動レーl−ドAしRxPlと
CALLINGプロセッサレ:]−ドP r’< 。 において実行される。 CA’LLINGプロゼッサレコードPRi内のフラグ
がプロセッサP、がBUSYであることを示していれば
、そのとぎインプリジエントメモリコントローラは活動
レコード△R,P、のポインタをプ「1セツザレコード
PR,の待ら行列内にロードする。これは、プロセッサ
レコードPR,の侍ら行列が空でないときに、ブロセッ
ザレ]−ドPR,内のP ROCE S S ORQ
IJ E U E 丁AILによって指し示される活動
シー1−ドのNEXT IN QUEUEエン]へり内
へ活動レコードARx P:のポインタをロードづるこ
とによって、またPROCESSORQUEUE T△
IL、エントリを活動レー゛j−ドARXP、を指し示
すように変えることによって実行される。可1: kそ
れは、プロセッサレコードPR,の1.4ち行列が空で
あるときに、ブロヒッザレー1−ドP R、のPROC
ESSORQLノ E () El−IJ三へ1) ど
1つROCE S S OR−Q U E U E T
△IL内へ活動レコード△R,P、のポインタをロード
JることにJ:つて達成される。 しかし、もしプロセッナP1がNo−1” +3 U
SYであれば、そのとき活動レコードΔRXP、のポイ
ンタはプロセッサレコードP R、のcURRENTエ
ントリ内ヘロードされ、ブLI1.?ツリレコードPR
,のフラグはプロセッサ1〕1がBUSYであることを
示すようにセットされる。次に、メツセージがプロセ・
ンサP1に送られ(、ブにルッサレコードPR,内の新
しいCtJ RRE N ’rエントリによって示され
ている実行されるべき新しい活動をそのプロセッサに通
知する。 ここで、1つのプロセッサーがらのJN丁I RPRO
CESSORNEXT命令に応答し−(コントローラI
MCによって実行される動作について考えよう、、特定
的に、プロレッサP、内の活動へ/PjがプロセッサP
k内の活動ΔzPHへのNEXT命令を実行する一般的
な場合に行なわれる動作について考えよう。これらの動
作は以下の表3に示されている。 (以−ト余白) そのNEXT命令に応答して活動レコードA RyP」
とプロセッサレコードPR,において実行される動作は
、上述のRETURN命令に応答してi5動レコードA
R/P、、 とブ1]セッサレコードPRjにおいて実
行される動作と同じである。しかし、NEXT命令に応
答して活動レコード△R−P4、とプロセッサレコード
PR,において実行される動作は以下のようである。活
動△、:カが△CTIVEであるとき、活動レコード△
R:<P:のポインタ【よ活動レコードへR2P、の活
動待ち行列内ヘロードされる。これは、活動レコードA
R7の活動待ち行列内へ活動レコード△R/PJのCA
LLERエントリを移動させることによって達成される
。 しかし、NEXT命令がコン1−[1−ラIMCへ送ら
れたときに活動Az ptがDORMへNTでかつプロ
セッナP、がB U S Yであれば、そのときそのコ
ントローラは以下の動作を実行づる。まり゛、活動し:
1−ドARz P、のポインタはプロセッサレコードP
R,の待ち行列内へロードされる。 次に、活動レコードARχ1〕、のCΔLLERエント
リ(それは活動レコードAI<y、1)iのポインタ)
G、を活動レコード△Rz P、のC△l−1−[R
エントリへ移動させられる。次に、活動シー1−ド△R
z P、内のフラグはA C’l−T V Eステー1
−にセットされる。 一方、NEXT命令がインプリジエン1〜メモリコント
ローラへ送られたときにプ「1t?ツ」)’PiがNO
T BUS’Yであれば、そのときそのコントローラは
以下の動作を実行する。活動レコードARz P、のポ
インタはプロセッサレコード[)R1のCURRENT
エントリ内へ[=1−ドされる。また、活動レコード△
RyPJ l/)C△1.−1− E、 R]。ントリ
くそれは活動レコード△R,Pi のポインタ)は、活
動レコード△R2PhのC△l−IL E Rエントリ
内へロードされる。次に、活動レコード△R2P、内の
フラグは△CT I V IEスデー1−にセットされ
る。 ここで、第3図が参照されるべきである。それは、0A
LLとそれに対応するRETURN動作の間にプロセッ
サレコードと活動レコードに起こる上述の変化の典型的
なシーケンスを図解している。そのシーケンスは瞬間[
1から[Sの間に起こり、以下の表4は各瞬間に起こる
出来小の概略を示している。 (以下余白) この例において、2つのプロセッサP7とPXが存在し
、それらはそれぞれブロセ・ンサレコードPRxとPR
χを有している。最初、ブロヒツサPXIよ、活動レコ
ードAR)、PXを有する活動AQ。 Pyを実行していてBIJSYである。また、活動レコ
ードARo、Pxを有するもう1つの活動へ3Pxは実
行されるべきPR,プロセツナ待ら行列内で待機してお
り、プロセッサP7は活動△1.P/を実行していてB
USYである。これらの初期条件は第3図において参照
番号1を右するポインタによって示されている。 特に、プロセツーナレコードPRy内の参照番号1のC
URRENTエントリは、ブロセ・ンサP、。 が最初に活動AI)P工を実行していることを示すよう
に活動し]−ドAR6P:<を指1ノ示づ。また、プロ
セッサレコードPRy内の参照番号1で示されたP R
OCE S S ORQ U E U E HE A
DエンドIJ トP ROCE S S ORQ U
E U E 、TAnエントリは、活動AユPxが最初
にプロセッサレコードPRXの待ち行列内にあることを
示づように活動レコードAR,PXを指し示7+。 さらに、プロセッサレコードP Ryの参照番号1で示
されたC U RRE N Tエン1−りは最初にプロ
セッサP が活動AあPyを実行していることを示づ゛
ように活動レコードAR,(+〕X を指し示J−0ま
た、プロセッサレコードPR,の参!(α番号1で示さ
れたP ROCE S S ORQ U E U E
l−I EADエントリは、他のいかなる活動もプロセ
ッサP/において実行されるよう待機(〕−(いないこ
とを示ずように空白値を有づる。 その後、参照番@2を有するレ−」−ド内のポインタに
よって示されているJ:うに、活動△b P:<が活動
AcP、を呼ぶ。その結果、活ΦJlレコード△RcP
/内のCALLER,J−ント1) kl、それが活動
レコード△RbPxを指し示!Jように書込まれて、プ
ロセッサレコードpR/内のl) ROCES S O
RQ U E U E HE A D 、:+ントりど
PROCE S S ORQ U E IJ E TΔ
l1j−ン1〜りは、それらが活動レコードARC+〕
/を指し示すように書込まれる。また、活動△bP、は
CへしLERであったので、プロセッサP、)よその活
動の実行を中止して、それがその待ち行列から1qるも
う1つの活動の実行を開始する1、シたがって、ブ1]
I?ッサレコード’PR,内のCU RRl三NTエン
トリは活動1リコードARユ P5.を指し示づように
書込まれ、プIJ tッサレコー1〜’ P R、<の
PROCF S S ORQ U E LJ E l−
I E A、 Dエントリは空白値に書込まれる。 その後、参照番号3を有J゛るし」−ドエン1〜りにに
つて示されているように、プロセッサPXは活動A 、
I P y の実行を完了し7、イしてそれはその待ち
行列内のもう1つの活動の実行を開始する。 したパ°ドブ1セツサレ1−トPR/内のcuRREN
Tエンドl) fは活動△RcP/を指し示づ−ように
書込まれ、プロロツ[ル−、−+−t” P RyのP
ROCE S S ORQ U E U [三 HEへ
D T ’/ l−りは空白値に丁む込まれろ。 その後に、参照番号4を有づるレコードエン1−りによ
って示されているように、プロセッサ−Pχは活動A
c P yの実行を完了する。従って、活動A、Pyを
呼出した活動が実行を再開づることができ、そして活動
レコード△RAPyのポインタはプロセッサレコードP
R,の)) ROClESSORQ U E U E
HE A I)エントりとP ROCESSORQUE
UE TA[l−エン1〜り内へロードされる。また、
プロセッサ1〕Xは自由にもう1つの活動を実行づるこ
とができるが、イのブ]−Jセツサ待ち行列はE M
P T Yであるので、ブ[1セツサレコードPRyの
CU RRE N Tポインタ(よ空白値に書込まれる
。 プロセッサPxは、活動が完了するか21、たけもう1
つの活動を呼ぶときまで活動△。1〕9の実行を続ける
。そわは[5のときに起こる。次に、プロセッサレコー
ドPRXのプロセツリ−持ち行列によって活動レコード
AR1)Pyが指し示されるので、プロセッサP、は活
動AI)P、の実行を再開する。 ここで第4図と第5図を参照して、いくつかのCALL
動作とRETURN動作の間にプロセッサレコードと活
動レコードに起こる変化のシーケンスのもう1つの例が
述ぺらねる。この例において、プロセッサP8が実行す
る活動A、Pyは3回呼出され、プロセッサP工が実行
でるbう1つの活動へ2PXは2回呼出される。 この呼出しのターベてはブ1」セックP9がもう1つの
活動を実行していてビジーのときに起こり、そしてゾロ
セッサレコードPR,と活動レアー1−ドAR,Pxと
ΔR2PX内の待ち行列はその呼出しが起こっている間
にロードされる。その後に、プロセッサP y、はそれ
が実行していたタスクを終了して、次にそれはゾロセッ
サレコードと活動レコードの待も行列内で指し示されて
いる活動を実行する。以下の表5は種々の出来事が起こ
るシーケンスを示している。 (以−(・余白) 第3図はプロセッサと活動し]−ドの待ち行列がロード
されるシーケンスを図解しており、一方、第4図はそれ
らの待ち行列がアンロードされるシーケンスを図解して
いる。これらの両図において、参照番号1から11を右
するポインタはそれぞれそれらの番号に対応したシーケ
ンスの瞬間におけるプロセッサと活動のシー1−ド内の
種々のエントリを示している。 第4図を見れば、瞬間1 、、、−16の間に、プ[]
セッサレコードPR)のCIJRRENTIントリはプ
ロセッサPyが現在実行している活動レニl−ドを指し
示している。しかし、[2の瞬間にJ3いて、プロセッ
リP、内の活動A、P+はブ【」レツザP・内の活動△
、P1、を貯、ト。その結ψ、活動レコードAR,P、
のCA L L E Rエン1〜す(−りそれが活動レ
コードARc、、P、を指し示づように8込まれ、ゾロ
セッサレコードPRyのP ROCES S ORQ
U E U E HE−へDとPROCESSORQU
EUE TAILの[ントリはそれらが活動レコードΔ
R,P、を指し示す、」コうに占込まれる。 その後に、瞬間T、において、ブ1]ゼツリT2内の活
動A6 PzはブDセッサPx内の活動A2PAを呼ぶ
。このCALLの結果、活動レニ1−ドAR2P、内の
CA L L−E Rlントりは活動レニ】−ドARC
R2を指し示′?JJ、うに7■込まれる。また、プロ
セッサレコードP R、、<のP1又OCE S SO
RQUEUE TA■LTン(・す(よ活動レコード△
R2P yを指し示覆にうに変えられて、活動レコード
ΔR,P、のN E X T−I N Q U [:U
Eエントリ;ま活動レコード△R2P1.を指し示ずよ
うに書込まれる。その後、1l111′l:I 1”
4 にA3いて、プロセッサP、内の活動AcP、は活
動△、P>を呼ぶ。活動A、]〕、のこのCA L l
−はプロセッサレコードPR,,,の待ち行列内へ活〃
ノ1リコード△R,P、を再[]−ドしないが、イの代
4つり活動レコードARCR3のポインタは活動1リコ
ード△R1P・の活動侍ら行列内へ再込まf+イ)。ご
れ1.L、活動レコードAR,P、、の△CT I V
f T Y QUEUE 1−IEA’DとACTI
VITY QUEUETAl、LのエンI・りを書込む
ことによって達成され、それらのエンド1月4活動レコ
ード△R0P、を指し示す。 次に、瞬間15において、ブ「II?ツリーP、内の活
動△d R4は活動AzP>を呼ぶ。再び、活動レコー
ドAR2Pxは既にブOj?ツリ」ノー1−ドPR>の
ブロセツリ”待ち行列内にあるので、活動レコードAR
,(Pうのポインタレ;に単に活動レコード△R2Py
の活動待ち行列内ヘロードされる。これは活動レコード
ARzPxのへCTIVi1’YQUEUE 1−IE
ADとACTIVIT’Y QUEUE TAILのエ
ントリを書込むことによつ−(達成され、それらのエン
1−りは活動レコード△R沃P、を指し示す。 次に、瞬間16のとぎ、プロレッナP、内の活動△2P
sは活動△1P、を呼ぶ。その結果、活動レコードA
Re P 5は活動レコードAR,Pyの活動待ら行列
内ヘロードされる。これ(J、活動レコードAR,PX
のACTJVITY QUELJ E 下AILエント
リを活動レコード△IReP5を指し示づように変える
ことによって、まlこ活動し二薯−ト’ARcP、のN
[E X T I N Q U EUEエントリをも
活動シー1−ド△ReI〕、を指し示J゛ように書込む
ことによつ−l達成される。 ここで第5図に移って、ブn I:7ツ1月ノーI−ド
PR1,活動レコード△R+ Px 、 J3よびA
+:< 2 +−)。内の侍ら行列のアンローディング
が述へられる。 第5図において、参照番号6をイコJるそれらのポイン
タは第4図にお(プる参照番号6をイ1するポインタと
同じである。 瞬間[7において、ブ「1セツIJ−1) 、、は瞬間
11からtGにおいて動作していた活動を完了覆る。 そして、それはI N T E RP ROCE S
S01犬RETURN命令を実行づる。それ(、=応答
し−C、コントローラIMC+まプにルツ1ルニ+−l
〜1ツ[犬、内の待ち行列から1つの活動レーi−ドを
取出して、プロセッサレコードPRy、へその取出さね
た活動を通知する。この取出し動作t、1.−:lント
1:]−ラIMOを介してプ[1t7ツリーレ]−ドP
R8内のP ROCE S S ORQ U E U
E l−I E A l)エン1−りをそのプロセッ
サレコード内のC、IJ RR[N 1− I ントリ
ヘ移動させ、また活動レコードΔR,P、、のNEXT
IN QUEUEエン1へりをブロセ゛ン!ナレコー
ドP RxのPROCESSORQUEU E l−I
E A D Iントリヘ移動させることに、よって達
成される。 その後に、瞬間18におい−C、ブlコ亡ツサPVは活
動△1P3を完了する。そして、それ(よもう1つのI
N T E RP ROCE S S ORRE T
IJRN命令を実行する。そのRE T U tべN
命令に応答して、コン1〜ローラ■MCは活動レコード
八「くIPXの活動待ち行列から1つの活動レコー(ζ
を取出す。そしてそれは、活動レコードへRtPy内の
△CT I V I T Y Q IJ iE IJ
LE l−I EへD−エントリをそのレコードのCA
LIERエン1−リl\移動させることによって、また
活動レコード△[尺+Px の ACTI \/ f
T Y Q U E t−+ F l−I E へDエ
ントリ内へ活動レコード△R1、Pa(7)NEXT
I N (、l U E U Eエントリを移動さt↓
ることによって達成する。次に、プロセッサP、はそれ
がその活動の第2の呼出子のために?1IiQノ△1P
。 を再実行しな(−)ればならないことを通知さf+る。 瞬間し、1において、プロロツリーp 、: i、;J
i−1jび活動A、PXの実行を完rづる。そ()−(
、イれIよ再び1つのI N T [RP ROCFS
S Ol”2 RE 1− LJRN命令を実行−り
る。それに応答し・−Cに1ント]」−ラIMCはr1
!iu」レコードA1ヌ、ID1の活動1′05行列か
らもう1つの活動シー1−ドを取出11oそしで、その
活動し〕−ド△RI +−)x 17)A Cl I
V IT Y Q U E U E l−l E A
D Jン1〜りをその活動のCへLL、 E R上ント
リ内へ移動さ11ろことによって、また活動レコード八
R1))。の△CI I Vl 1− Y Q U E
Uピ l−I EA11−1’ントりを空白値にレッ
トづることにj:つて)ヱ成すイ)9次に、T1ント[
]−ラIMCはその活動の第3の呼出子のために活動活
動A、P、を再実行1jる、−1、うにント11.?ツ
、ザP、<へ通知−4る。 その後に、瞬間j+oにおいで、ゾ[1しノツリP9(
ユ活動△、Pyの実行を完了lノー乙、そし−(それは
再び1つのINTEI犬P ROC1−、S 801文
1〈ETURN命令を実行する。これに応答して、コン
1−1フ一ラIMCはプロセラ(ノーレコードPRXの
ブロセツザ待ち行列からもう1つの活動レコードを取出
して、それは実行すべき新しい活動をブロセッナPyに
通知する。この取出@作Vよプロゼツザレコード1)R
VのPROCESSORQIJFU E l−I E
A D エントリをそのレコードのCU R「マE N
i−エン1〜り内へ移動さ牲ることによて)で、゛し
たプロレツtJ−L/ 71−1” P Rx内のPR
OCESS ORQ U E U E l−I EA
Dエン1−りを空白値に変えることによって達成されろ
。 次に、瞬間[11において、ブロセツ→J’Pxl;↓
4rl動A2P、、の実行を完了する。イして、それは
再びl−M)INTERPROCESSORREl−U
RN命令を実行づ−る。それに応答して、−ントロー
ラ[MCは活動1リコード△R2P :<の活動待ち行
列から1つのエントリを取出して、その活動の第2の呼
出子のために活動へ2P、、を再実行1)るようにブ[
11,?ッサPVl\通知する。この取出し動作(よ、
活動レコードAR2PXのΔCl’ I VITY Q
UEUE HEADエントリをその活動のCALLER
エン]〜りへ移動さμることによって、また活動レコー
ドAR,,I)アのΔCTrVI T Y Q U E
U E l−I EΔDエンI・りを空白(直にセッ
トすることによって達成される。 ブロセッ丈PXが活動Δ2P、7の実行を完了し1、:
後に、それ(よ再び1つのI N −r [三[又1〕
1又○C1三5SORRETIJRN命令を実1’i
:Jル。? (7)とき、プロセッサP9が実行すべき
・伯の活動は存在しておらず、そしてコントローラIM
Oは単にプロLツサレコードPRx内にBtJSYフラ
グをり口・ントして、そのレニ1−ドのCU RRIE
N T Tlエントリ空白値にセットする。 上記の動作のシーケンスから、ブ1ニ1 山ツリ1〕、
が活動△1P、とAzPxを実行1ノたlll′1IY
−はそれらの活動が呼ばれた順序と完全に巽’x’L−
)たbのであったことがわかる。具体的には、ぞれらの
活動は△T P、、、、A2P、、Δ+ P x +△
21〕ア、およびA、P、の順序で吐出されたが、それ
らの活動が実行された順序は△+Px+八It〕へ+△
1Px 、 A2 PX 、およびA2PXの順序でd
うった。 言い換えれば、活動A、P、はその呼出子のそれぞれの
1つに関して1回実行されて、そ()て活動Δ2 P
x I’;iその呼出子のそれぞれの1つについて1回
実行された。そして、これはイれらの活動が呼出された
順序と関係なく起こる。、活動のそのような順序位えは
重要であって、なぜならば、それGELブロセツザが1
つの活動の実行からもう1つのものへ切換わる回数を最
小にするからである。 切換えが起こるたびに、その新しい活動に関する]−ド
はその活動を実行1ぺぎプロロツリーのメモリ内へ読込
まれな(ブればならない。また、活動かそれに基づいて
実行するデータのためにそのメモリ内においてスペース
が再割当されなければならない。これらのリソース割当
動作は時間を潤比するものであって、したがってそれl
(Lシステムの全体的性能を低■させる。 ここで、INTERPROCFSSORNEXT命令の
動作を図解している第6図が参照されるべきである。こ
の図にJ3いて、以前の第3図ないし第5図におけるよ
うに、参照?fr、M 1から9を有するポインタは、
それらの参照香弓にえj応する瞬間におりる活動レコー
ドとブロレッリ1リコード内のそれぞれのエン1〜りを
示している。 Jメ下の表6は、概略的な第6図で起こる出来事のシー
ケンスを示している。この概略【よ、活動A。Plがも
う1つの活動AI)P2を呼出しで、次に活動AbP2
が活IJAcP、へNEXT命令を実行して、次に活動
A、P、が活動Δ、LP、へNEXT命令を実行して、
次に活動へべ1〕、が活動AI)P2またはA、:P8
へ再入づることl> <直接A、P、へもどるというシ
ーケンスを示し−Cいる。 (以下余白) 第6図を見れば、時間1.においでプロしツリーP、は
活動A P、を実行していることがわかる。 それは、時間t、においてプロピッリレー1−ドPR1
内のCIJRRENTエン1へりが活千カレコード△R
ユP、を指し示しているからである。 次に、時間[2において、活動へ(、Plはブロセツナ
P2内のCALLING活動△1)P活動上1でその実
行を中止する。その結果、活動レコードARbP2内の
CA L L E Rxン1〜りはそれが活動レコード
AR,P+を指し示Jようにコン1〜ローラIMOによ
って書込まれる。また、ブ1−1セッサレコードP R
2はプロセッサ1〕2が瞬間[lにおいて現在もう1つ
の活動を実(1し−Cいてビジーであることを示してい
るので、ブロセツリレコードPR2のPROCESSO
RQLJEUFl−1[EAD とP ROCE S
S ORQ (l l三 UETAILのエントリは活
動レコード△Rb l−’2を指し示すようにコント]
」−ラIMOににつ−C書込まれる。 その後、時間[、において、プロしツリP2はINTE
RPROCESS’ORREV−URN命令を実行づ゛
ることによってその現在の活動の実行を完了する。その
結果、=1ント[1−ラIMCはプロセッサレコードP
R2のPROCESSORQ U E U E HE
A DエントリをそのレコードのCURRENTエン
トリへ移動させて、そ(〕で活動A6Pzの実行が始ま
る。 その後、時間1−2において、もう1つの活動AxPy
は活動A6Pzを呼ぶ。したがって、活動AbPzは△
CTIVEステートにあるので、活動レコードARxP
yのポインタはコン1〜ローラIMcによって活動レコ
ード△RしP2の活動持ち行列内へ書込まれる。 次に、時間[5において、活動△l、P、!は活動△、
P8へINTER,PROCESSORNEXT命令を
実行する。その結果、コント[l−ラIMCGよ活動レ
コード△R)P2のCALLFRエントリを活動レコー
ドAR,P、のCΔL、 L−E Rエントリへ移動さ
せる。したがって、活動レコードARcP、内のポイン
タは、丁Ifあたかも活動A、P、が活動A、P、にJ
:って直接呼出されたかのようである。 C△LLERエントリの上記の移動の結果どして、活動
△b P2は活動A、P、かIうどんインパラメータも
受取らないであろう。その代わり、それらのパラメータ
は直接活動△。l〕1へ送られる。 そして、INTERP’ROCESSORNEXT命令
の実行によって、活動へシ1〕2はその活動の付加的な
呼出子によって自由に再実行されることができる。した
がって、開開[5にA3いて、コントローラIMCは活
動レコード△[<ら1〕2の△CT I V I T
Y Q U E U E ’l−11三△D[ントリを
その活動レコードのCALLERエントリ内へ移動ぎせ
て、それはその新しい呼出子のために活動AbP2を再
実行するようにブ1]I?ツリーP2へ通知する。 時間t6において、プロレッリP3は前に実行していた
活動の実行を完了して、イーしてイれ(j1ツ(7)
I N T E RP ROCE S S ORRE
T U RN命令を実行する。その結果、コン1−〇−
ラrMCは活動レコードAR,:P、のポインタをブロ
セッυレコードPR,のP ROCE S S ORQ
UEUE HEADエン1−りからCURRENT玉
ントリヘ移動させる。次に、ブ[II?ッサP3は活動
△CP3の実行を開始する。 時間tヮにおける活動△、P3の完了にJ:って、ブロ
セツ1すP、は1つのIN’丁ERPROCESS O
RRE T LI RN命令またはもう1つのINTE
RPROCESSOP NEXT命令のいずれかを実行
づ−るオプションを有ヅる。第6図において、INTF
RPROCESSORNEXT命令は活動AdP、へ実
行される。その結果、コントローラIMCは活動レコー
ドへR,P、のCALLERエン1へりを活動レコード
ARdP、のCALLERエントリへ移動させる。また
、ブロレッナP、はビジーではないので、ブ[II?ツ
リーレコードPR4のCURREN丁エントリはコンl
−ローラIMCによって活動レコードARaP、のポイ
ンタとともにロードされて、プC1txツサP。 は活動Δd P4の実行を開始するように通知される。 時間下。において、ブ[lピラリ[)、は活動A、(P
、の実行を完了する。そして、プロしツリーP、。 ハI N ’T’ E RP ROCE S S Oi
’< +’(IE ’l’ U II N命令また(ま
+rrrERpRocEsso1で NEXT命令のい
ずれかを実行する訓プシーコンを右づ−る。第6図にお
いて、プロセツ1月つl;l:INTERP ROCE
S S ORRIE T U RN命令を実行づる。 I N T E RP RQ CE S S OII
R[T IJ RNによって、コントローラIMCは活
動1)L」−ド△RPうのCALLERエントリをブl
:l 1?ツリレコードPR,のブロセッリ持ち行列内
へ[」−ドする。その後に、時間19にJ3いて、ブ1
」ヒツサP、は以前実行していた活動の実11を完了)
ノて、それは時間t2において以前中小した活動△。P
。 の実行を再開する。 活動△。Plの実行の再開は1り能である。<丁、yな
らば、その活動がvj機していたC△l−L E o活
動△。P:lからのパラメータは時間tBにおいて利用
可能であったからである。しかし、上記のことから、そ
れらのパラメータは中にCへl LFD活i%JrA)
、P2から来lこのではないことが明らか又ある。そう
で(よなくて、それら(ま3つの活動へbP2.AcP
、、おJ:ひ△、lP4のシーケンシャルな実行の結果
であった。 しかし、INTERPROCI三S S ORN [−
EXT命令の動作によって、このシーケンシャルな実行
はすべて完全に活動A。Plから隠され/こ。 したがって、活動へ。Plと他の活動へ、、l:)、と
A改P、とのリンケージは人さく簡略化された。 さらに、活動△しP、とへ、P8は活動へ、xl)。 から活動A。Plへ送られるハラス〜りのように再実行
される必要がなかったので、そのパラメータの送りは非
゛帛に迅速に起こる。 ここで、複ジ文のブロセツ(、j、p、、P、、・・・
Pl、が少数のプロレッサレー1−ト′、活動レニ1−
ド、 A3よびシェアされたメモ98M内のパラメータ
をアクセスして変えるもう1つのシステムを図解しくい
る第7図を参照すべきである。このシステム(J、主に
ファイルアクヒスコン1へ[1−ラ20を含んでいる点
において上述の第1図のシスーIムと異なっている。そ
のコントローラ20は、従来のメモリ読出しとメモリ書
込みml ′:/ンドにJ、って直接レコードをアクセ
スして変えることを1+−+ L?ツリーに認める。 ヅなわら、第7図のシステムにおりる1ノミ1−1〜は
従来のメモリ内にストアされ、それらiJ従来の非イン
テリジェントメモリー1ントfi+−ラM Cを介して
アクセスされ、そして第7図のシステムのプロセッサは
1ワードのメモリ読出しどメ−しり占込みのコマンドの
シーケンスを直接非インテリジェントメモリコントロー
ラMC/\送ることによ−)てI N T E RP
ROCE S S ORff1l 令ヲ実行?Iる。 しかし、いずれかのプロセッサがシ1アされたメモ98
M内のレコードを読出すかJ、Iζ+i?+込むために
非インテリジェントメモリコンl−lll−ラへそのよ
うなコマンドを送る11qに、プロセッサはファイルア
クセス]ントO−ラ20からイのようにづることについ
ての認可を受取らな(ジればならない。 第8図はファイルアクセスコントローラ20の1つの好
ましい実施例の詳細を示している。イれは21−1から
21−nの複数のn″個のフリップ70ツブを含んでい
る。1つの実施例において、各フリップフロップ(まシ
ェアされたメモ98M内の1つのレコードに対応してい
る。うなわら、各フリップフロップは1つのプロセッサ
レコードまたは1つの活動レコードに対応している。こ
の代わりに、設泪の3パ択によって、各フリップ−70
ツブは1つのプロセッサレコードとその1つのプロセッ
サレコードに関1〕で対応する活動1ノ」−ドのすべて
と対応する。 最初に、JべてのフリップフロップはりピッI〜されて
いる。次に、1つのプロセッサーがいり”かのレコード
をアクセスリ−ることが醸される萌に、それがアクセス
しようと望ん℃゛いるレコードに対t、i5するものが
現在リセッ1〜されているかどうかを確認ツーるために
、まづ“それらのフリップフロップに間合わせしなEプ
ればならない。その目的のために、そのリクエストして
いるプロセッサ′(ヨ、バスを通してコントローラ内の
モジュール22ヘメツセージを送る。都合良くは、モジ
コール22は?イクロプロセッサである。 モジコール22へ送られるそのメツレージはリクエスト
しているプロセッサを識別し、またアクセスがシークさ
れているづべでのレニ■−トを識別づる。たとえば、4
つのブロセツリlリコードPRへ、PRし 、PRc、
およびPR,(とづべての対応する活動レコードはその
メツセージ内の4つのエンコードされたフィールドFへ
+Fb+Fc+おJ:び「ぺによって識別され得る。 メツセージを受取って、モジ、フール22はそれを内部
バス23を介してレジスタ2/lへ送る。そこから、フ
ィールドF。+F6.l:2.およびF硫がそれぞれマ
ルチプレクサ25a 、25b 、25c 、 J5よ
び25dの制御人力端末I\送られる。また、各マルチ
プレクサは21−1 /〕s +ら21−nのフッツブ
フロップのすべでのO出力へ接続されたそのデータ入ノ
J@末を有している。 従って、レジスタ24のフィールド[へは、マルチプレ
クサ25aの出ノノヘゲートされるフィールド「6に対
応した1つのフリツブフl]ツブの0出力を生じる。同
様に、レジスタ24のフィールドFしはマルチプレクサ
251)の出力ヘグートされるそのフィールドに対応し
/ζ1つのフリップフロップの0出力を生じ、他のフィ
ールドし同様である。それらのザベての○出力は次にA
NDゲート26によって1つにANDされ、そして、そ
の結果はそれが調べられるモジコール22へ)スリ返さ
れる。 ANDゲート26からの信号がロジック1であるとき、
モジコール22はバスを介()でメツセージを送って、
そのリフニストL、−(いるブに1ゼッ復に識別された
レコードの内容を変えることを望1i■Jる。内部バス
23はリフボストしているjロレツサの識別を調べる/
ζめの手段をりえ、イしてこのメツレージはそこへ送ら
れる。 また、ANDグー1−26からの信号が1であるとぎ、
モジコール22ば21−1から21− nのフリップフ
ロップのすべてに単一のクロツクバルスを送る。それら
のフリツブフ1」ツブはJKフリップ70ツブであって
、それらの0人力に活動的信号を有しているものはレジ
スタ24内のFa 。 Fb 、F、、およびFdのフィールドによって制御さ
れる。したがって、フィールド「4 、Fら。 FC,JJよび「dに対応づるイれらのフリップフロッ
プはすべて単一のり]コックパルスに応答してセラ1−
される。 より具体的には、レジスタ24内のF、 、 Fi、
。 Fc、およびFd のフィールド1まそれぞれデコーダ
27a 、 27b 、27C、おJ、び27〔1へ送
られる。それらのデコーダの各々は複数の出力信号を発
生するが、一時にはそれらの信号のただ1つのみが高レ
ベルになる。高レベルになるその出力信号はデコーダが
レジスタ24から受取る′二1−ドと対応する。 言い換えれば、デコーダ27aの第1の出力はレジスタ
24内のフィールドF。がバイナリ1に等しいときに高
レベルになり、f]−ダ27aの第2の出力はレジスタ
24内のフ、C−ルドFαがバイナリ2であるときに高
レベルになり、以下同様である。また、デコーダ27a
、27b 、27C1および27dの第1(7)出力(
、&WIRED−OR様式でずべてか1つに接続されて
いる。したがって、レジスタ24内のフィールドFa
、 Fb 。 FClまたはF、+のいずれががバイナリ1に等しいと
き、それはフリップフロップ21−1へ311らレル。 同様ニ、デコーダ27a 、27b 、27c 。 ;J5J:び27(J(D第2の出カバW [RE D
−OR様式で1つに接続されており、以下同様である
。 ここで、モジュール22はFlがらF、までのフィール
ドによって特定される種々のレコードをアクセスするプ
ロセッサからのりクエストを受取るが、ゲート26の出
力は対応づ゛るフリップフロップの少なくとも1がセッ
トされていることを示′1J′Oであると仮定しよう。 その場合、モジコール22はレジスタ24内の内容を先
入先出<Frr:O)待ち行列28内ヘロードし、それ
はモジュール22の内部のカウンタに1を加える。 次に、いくつかのレコードと間合わせ覆ることを以前に
認可されたプロセッサの1つがそのタスクを完了したと
仮定しよう。この場合、そのプL1セツザは問合わせを
終了し1ζレコードを示J−メツセージをモジュール2
2へ送らな(プればならない。 好ましくは、それらのレコードはそのメツレージ内にお
いて複数のエンコードされlζフィールドによって識別
される。 そのメツセージは次にモジュール22ににつてレジスタ
29へ送られる。そこから、間合わされたレコードの数
を含むフィールドはそれぞれのデコーダへ送られる。た
とえば、4つのγコーグ3Qa 、30b 、30c’
、 #3J:び3 Q d 4;L、レジスタ2つ内の
メツセージが4つの、1ニンコードされたフィールドF
、、−,Fら−、F、c −、JJJ:びFd−を含む
ときに与えられる。 デコーダ30aから30dのザベ−C(まw s RE
D−OR様式で1つに接続されたそれらの第1の出力を
有しており、またそれらはノリツブ7[゛1ツブ21−
1のに入力へも接続されLいる。したがって、レジスタ
2つ内の4つのフィールドのいザれかがバイナリ1を含
んでいれば、フリップフロップ21−1はすべてのフリ
ップフロップがロックされているときにりけツ1〜され
る。 同様に、デコーダ30a−30dの第2の出力は1−べ
てか1つに接続され”CJljす、それらはフリップフ
ロップ21−2のに入力へ接続されており、以下同様で
ある。したがって、間合わされたレコードに対応するフ
リップフロップをリセットづるために、モジュール22
はレジスタ2つをCI−ドした後に単一のパルスによっ
てすべてのフリップフロップを単にクロックするだけで
ある。 次に、モジ]−−ル22はどれ/ど(すの数のエン1−
りがFIFO28内にあるかを確認するためにその内部
カウンタを調べる。もしそのカウントが0でなければ、
モジュール22は待ち行列1ン1〜す1を一時にレジス
タ24内へ移す。そのにうな各移動の後に、1ステート
にあるかどうかを確認するためにANDゲート26の出
力を調べる。 ANDゲー1〜26が1スデートにあるとき、モジュー
ル22はレジスタ24のリクエスタ部分をバス23上に
読出して、リクーrストしたレコードを今修正してもよ
いことを承りメツセージをそのレジスタへ送る。また、
フリツブフし1ツブ2〇−1から21−nのすべてはモ
ジ“1−ル22によつ−(単一のパルスでクロックされ
、ぞのパルス【、Li?コーダ27aから276の出力
によって指揮されるようにフリップフロップをセラ1−
する。さらに、モジュール22の内部のカウンタは1に
よってデクリメントされる。 これとは逆に、ANDゲー1〜26の出力がOステート
にあれば、モジュール22は1ノジスタ24の内容をF
I FO28内へ単にロードしiI!iづだけである
。第8図において、6木の破線の相は、十述の動作が起
こるように、モジュール22によってそれぞれの制御信
号が送られるそれぞれの導線を表わしている。具体的に
は、り[−1ツクパルスはワードをP I F028内
へロードづるために導線Aで送られ、クロックパルスは
F I FO28からのワードをアンロード覆るために
導線Bで送られる。 また、制御信号はFIFO28上たはバス23からのレ
ジスタ24への人力データを選択づるために導線Eによ
って送られ、クロックパルスはその選択された入力デー
タをレジスタ2I!I内へ11−ドするために導線Fに
よって送られる。さらに、クロックパルスはフリップフ
[1ツブ21−1から21−nをクロックするために導
線1−によって送られ、さらにクロックパルスはレジス
タ29をロードするために導線Mによって送られる。 上述の)7/イルアクセスコン1−ローラ2oの1つの
特徴(J1シェアされたメモリ内の種々のレコードを同
時にアクレスし・て変えるようにプ[1[?ッサP 1
. P 2 、・・・pHのいくつかを能動化すること
である。この場合の唯一の制限は、2つのプロセッサが
同一のレコードを変えることはできないことである。し
たがって、たとえば、プ【]ヒッザP2がレコt”2.
12.31 、 J5よび40を変えていてプロしツ
ナP、がレコード3,11,20、おにび32を変えて
いても、プロゼツ]ノP。 はレコード1,15,30.おJ:び56を同時に変え
ることができる。第7図のシスデl\のもう1つの特徴
はその柔軟性である。一度ブ111?ツリーが特定のレ
コードを間合わせて変えることをファイルアクセスコン
トローラ20から認可されれば、それはメモリ読出しや
メモリn)込みの−,+ v7ンドのどのようなシーケ
ンスによってしfTなうことができる。したがって、最
初にレー二1−ドを読出すことができ、次にプロセッサ
は読出したレコードの内容に基づいて1つの活動または
もう1つの活動を呼出すことができる。これはC0ND
ITIONΔL INTERPROCESSORC△[
1−命令を実行する。 C0NDITIONAL INTERPROCESSO
RCALL命令の有用性の1つの例として、2つのプロ
セッサが同じ活動を実行することを仮定しよう。たとえ
ば、両刀のブ1」レツサは高速浮動小数点の数学的活動
を実行し得る場合である。この場合、C0NDITIO
NAL INT E RP ROCE S S ORC
A L’ L、、命令を実行することによって、呼出子
は最初にそれらの浮動小数点活動を実行する2つのプロ
セッサの活動レコードを調べることができ、次に、でれ
はどちらのプロセッサが現在ビジーでなかったかに依存
して1つのプロセッサまた(J他方の1にlL?ツリ内
の活動を呼出づことができる。 第7図のシステムのもう1つの特徴は、プロセッサがシ
ェアされたメモリS IVI内のレコードへアクセスす
ることができるスピードである。制御ワードをファイル
アクセスコン1〜ローラ20へ送るためにバスは1つの
サイクルを必要とし、メツセージをレジスタ24へ送る
ためには第2のリイクルが必要で、ANDゲー1〜26
からのtス]・条イ!1が安定づるのを待つために第3
のサーイクルが必要で、さらにANDゲート26に基づ
いてリフ1−ストされたレコードをアクセスづるCこと
を認可づ−るメツセージをそのリフニス[〜しているブ
[1セツサへ送り返すこととその対応ツーるフリップフ
ロップ21−1から21−nをゼッ(〜づるり[:)ツ
クパルスを送るために第4のサイクルが必要である。し
たがって、たとえば100ナノ秒のナイクル時間であれ
ば、レコードのアクセスには400ナノ秒かかるだげで
ある。 これで、本発明の種々の実施例が詳細に述べられた。し
かしながら、さらに多くの変化や一部変更が発明の本質
や精神から離れることなくこれらの詳細になされ得る。 したがって、本発明は前記の詳細に限られるものではな
くて添(=Jされた特許請求の範囲によって限定される
ことを理解づべきである。
第1図はディジタルプロセッサ内の活動のシーケンスが
本発明に従って同期されるシステムを示す図である。 第2図は第1図のシステムのシェアされたメモリ内のプ
ロセッサレコードと活動レコードの典型的な構成を示す
図である。 第3図ないし第6図は第1図のシステムのプロセッサレ
コードと活動レコード内のポインタがINTERPRO
CESSORCAL、l−命令、■N T E RP
ROCE S S ORRE T U RN命令。 およびINTERPROCESSORNEXT命令に応
答してどのように変わるかを例示する図である。 第7図は本発明によるディジタルプロセッサ内の活動の
シーケンスを同期させるもう1つのシステムを示す図で
ある。 第8A図と第8B図は第7図のシステムにおけるファイ
ルアクセスコントローラの詳細なロジックを示す図であ
る。 図において、P、はプロセッサ、Mllはメモリ、An
pnは活動、PR+はブロセッ督ナレコード、ARx
P+は活動レコード、へyPlは活動、20はファイル
アクセスコントローラ、21−1ないし21−nはフリ
ップフl]ツブ、22はモジュール、23は内部バス、
24はレジスタ、25(jマルチプクレザ、26はAN
Dゲート、27はデコーダ、28は先入先出待ち行列、
2つはレジスタ、30はデコーダを示す。 なお各図において同一符号は同一内容または相当部分を
示す。 手続補正@(方式) 1.事件の表示 昭和59年特許願第151958号 2、発明の名称 タスクを実行する方法とデータ処理システム3、補正を
する者 事件との関係 特許出願人 住所 アメリカ合衆国、ミシガン州、ブトロイ1〜バロ
ース・ブレイス (番地なし) 名称 バロース・]−ボレーション 代表者 ポペット・ジョーンズ 4、代理人 住 所 大阪市北区天神橋2丁目3番9号 八千代第一
ビル自発補正 6、補正の対象 願書の4.特許出願人の代表者の欄、図面企図、委任状
おJ:び訳文、」ニ申四 7、補正の内容 (1)願出の4.特許出願人の代表者の欄に「ポペット
・ジョーンズ」を補充致します。その目的で新たに調像
したj]正願書を添イ」致しまづ。 (2)製出て描いた図面企図を別紙の通り補充致しまず
。なJ3、内容についての変更(まありま「ん。 (3)委任状および訳文を別紙の通り補充数しまず。 (4)委任状の発明の名称ど願書の発明の名称とが相違
致しますので、上申出を提出致します。 以 −ヒ
本発明に従って同期されるシステムを示す図である。 第2図は第1図のシステムのシェアされたメモリ内のプ
ロセッサレコードと活動レコードの典型的な構成を示す
図である。 第3図ないし第6図は第1図のシステムのプロセッサレ
コードと活動レコード内のポインタがINTERPRO
CESSORCAL、l−命令、■N T E RP
ROCE S S ORRE T U RN命令。 およびINTERPROCESSORNEXT命令に応
答してどのように変わるかを例示する図である。 第7図は本発明によるディジタルプロセッサ内の活動の
シーケンスを同期させるもう1つのシステムを示す図で
ある。 第8A図と第8B図は第7図のシステムにおけるファイ
ルアクセスコントローラの詳細なロジックを示す図であ
る。 図において、P、はプロセッサ、Mllはメモリ、An
pnは活動、PR+はブロセッ督ナレコード、ARx
P+は活動レコード、へyPlは活動、20はファイル
アクセスコントローラ、21−1ないし21−nはフリ
ップフl]ツブ、22はモジュール、23は内部バス、
24はレジスタ、25(jマルチプクレザ、26はAN
Dゲート、27はデコーダ、28は先入先出待ち行列、
2つはレジスタ、30はデコーダを示す。 なお各図において同一符号は同一内容または相当部分を
示す。 手続補正@(方式) 1.事件の表示 昭和59年特許願第151958号 2、発明の名称 タスクを実行する方法とデータ処理システム3、補正を
する者 事件との関係 特許出願人 住所 アメリカ合衆国、ミシガン州、ブトロイ1〜バロ
ース・ブレイス (番地なし) 名称 バロース・]−ボレーション 代表者 ポペット・ジョーンズ 4、代理人 住 所 大阪市北区天神橋2丁目3番9号 八千代第一
ビル自発補正 6、補正の対象 願書の4.特許出願人の代表者の欄、図面企図、委任状
おJ:び訳文、」ニ申四 7、補正の内容 (1)願出の4.特許出願人の代表者の欄に「ポペット
・ジョーンズ」を補充致します。その目的で新たに調像
したj]正願書を添イ」致しまづ。 (2)製出て描いた図面企図を別紙の通り補充致しまず
。なJ3、内容についての変更(まありま「ん。 (3)委任状および訳文を別紙の通り補充数しまず。 (4)委任状の発明の名称ど願書の発明の名称とが相違
致しますので、上申出を提出致します。 以 −ヒ
Claims (1)
- 【特許請求の範囲】 (1) 複数のディジタルブロセッIす内の呼出された
活動のシーケンスとしてのタスクを実行づ“る方法であ
って、それらの活動のいくつかはそのシーケンスが完了
した後にも戻されない方法において、 I N T E RPROCE S S ORCA L
L命令があるまで第1のプロセッサ内の11ム記シー
ケンスの第1の活動の部分を実行づるステップと、前記
CALLに応答して前記第1の活動の実行を中止し、そ
して第2の活動が前記第1の活動によって呼出されたこ
とを第2の/l:I tツリに信号で知らせるステップ
と、 前記0ALLに応答して前記第2のブト1セツナ内の前
記第2の活動を完全に実行し、そしてさらに第3のプロ
セッサ内の第3の活動にINTERP ROCE S
S ORN E X ’r命令を実行覆るステップと、 前記第3の活動が前記第2の活動によってでなくその第
2の活動の呼出子によって呼出されたことを前記NEX
T命令に応答して前記第3のプロセッサに信号で知らせ
るステップと、 前記第3のプロセッサ内の前記第3の活動を完全に実行
して、その完了時に前記中止された活動の実行を再開す
るように前記第3の活動の呼出子に信号で知らせるステ
ップと を含むことを特徴とするタスクを実行する方法。 く2) 前記第3の活動が前記第3のプロセッサによっ
て実行されている間に、前記第2の活動をそのいずれか
の他の呼出子のために再実行するように前記NEXT命
令に応答して前記第2のプロセッサへ信号で知らせるス
テップを含むことを特徴とする特許請求の範囲第1項記
載の方法。 〈3) 各活動にその活動のそれぞれの呼出子のポイン
タを含む待ち行列を与えるステップと、前記N E X
’ T命令に応答して、前記第2の活動の持ち行列から
前記呼出子ポインタを前記第3の活動の待ち行列内へ移
動させるステップとをさらに含むことを特徴とする特許
請求の範囲第1項記載の方法。 (4) 前記ポインタは複数のり一イクルの間に一時に
はただ1つのプロセラ(少に・)r:ロードされてアン
ロードされるように前記時ら行列へのアクセスを制限す
るステップをさらに含むことを特徴とする特許請求の範
囲第3項記載の方法。 (5) 前記第1の活動が中止されている間に前記第1
のプロセッサ内のもう1つの活動を実施するステップを
さらに含むことを特徴とする特許請求の範囲第1項記載
の方法。 (6) 呼出された活動のシーケンスとしてのタスクを
実行するための第1.in2.および第3のディジタル
プロセッサを含むデータ処理システムであって、それら
のタスクのいくつかはそのシーケンスが完了したときに
戻されないシステムにおいて、 INTERPROCESSORCALL命令があるまで
前記シーケンスの第1の活動の部分を実行するように前
記第1のプロはツサに指示するための手段と、 第2の活動が前記第1の活動によって呼出されたことを
前記CALL命令に応答して第2のプロセッサに信号で
知らせるだめの手段と、前記第2の活動を完全に実施し
て、ざらにINTERPROCESSORNEXT命令
を第3のプロセッサ内の第3の活動へ実行づるように前
記第2のプロセッサに指示するための手段と、前記第3
の活動が前記第2の活動によってではなくて前記第1の
活動の呼出子によって呼出され!、:ことを前記NFX
T命令に応答して前記第3のプロセッサに信号で知らせ
るための手段と、前記第3の活動を完全に実行して、そ
の完了時に前記中止された活動の実行を再開づるように
前記第3の活動の呼出子へ信号で知らせるように前記第
3のプロセッサに指示するための手段とを含むことを特
徴とするデータ処理システム。 (7) 前記NEXT命令に応答して、前記第3の活動
が前記第3のプロセッサによって実行されている間に前
記第2の活動をそのいずれかの他の呼出子のために実行
づるJ:うに前記第2のプロセッサへ信号で知らせるl
ζめの手段をさらに含むことを特徴とする特W[請求の
範囲第6項記載のシステム。 (8) 各活動のそれぞれの呼出子のボーrンタを含む
その活動のための待ち行列手段と、前記NEXT命令に
応答して前記第2の活動の持し行列から前記活動子ポイ
ンタを前記第3の活動の待ち行列内へ移動させる手段を
さらに含むことを特徴とする特許請求の範囲第6Tfj
記載のシステム。 くっ) 前記ポインタは複数の′IJ−イクルσ〉1ト
■において一時にはただ1つのプロロツ→j(、: J
、ってのみロードされてアンロードされるように前記時
ら行列へのアクセスを制限づ′るための手段をさらに含
むことを特徴とする特許請求の範囲第Q Iji記載の
システム。 (10) 前記第1の活動が中山されCいる間に前記第
1のプロセッサ内のもう1つの活動を実行するための手
段をさらに含むことを特徴とする特許請求の範囲第6項
記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US515852 | 1983-07-21 | ||
US06/515,852 US4564901A (en) | 1983-07-21 | 1983-07-21 | Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6081649A true JPS6081649A (ja) | 1985-05-09 |
JPH0535453B2 JPH0535453B2 (ja) | 1993-05-26 |
Family
ID=24053033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59151958A Granted JPS6081649A (ja) | 1983-07-21 | 1984-07-20 | タスクを実行する方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4564901A (ja) |
EP (1) | EP0132158B1 (ja) |
JP (1) | JPS6081649A (ja) |
CA (1) | CA1214564A (ja) |
DE (1) | DE3479930D1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62154164A (ja) * | 1985-12-27 | 1987-07-09 | Toshiba Corp | プロセス間通信制御装置 |
JPH02297632A (ja) * | 1989-05-11 | 1990-12-10 | Matsushita Graphic Commun Syst Inc | 画像表示装置 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4947316A (en) * | 1983-12-29 | 1990-08-07 | International Business Machines Corporation | Internal bus architecture employing a simplified rapidly executable instruction set |
JPH0776932B2 (ja) * | 1984-12-07 | 1995-08-16 | 日本電気株式会社 | デ−タ伝送方式 |
US4882674A (en) * | 1985-03-05 | 1989-11-21 | Wang Laboratories, Inc. | Apparatus and method for control of one computer system by another computer system |
AU589400B2 (en) * | 1985-03-05 | 1989-10-12 | Wang Laboratories, Inc. | Apparatus and method for control of one computer system by another computer system |
CA1244555A (en) * | 1985-06-17 | 1988-11-08 | Walter H. Schwane | Process transparent multi storage mode data transfer and buffer control |
CA1244142A (en) * | 1985-06-17 | 1988-11-01 | William E. Hammer | Distributed data management mechanism |
US4649473A (en) * | 1985-06-17 | 1987-03-10 | International Business Machines Corporation | Flexible data transmission for message based protocols |
US4782463A (en) * | 1985-09-12 | 1988-11-01 | International Business Machines Corp. | Method for generating display screens for a set of application programs by calling screen management subroutines |
US4868763A (en) * | 1986-02-21 | 1989-09-19 | Hitachi, Ltd. | Knowledge-based system having plural processors |
JPH0778785B2 (ja) * | 1986-03-29 | 1995-08-23 | 株式会社東芝 | プロセッサ選択方法 |
US4825360A (en) * | 1986-07-30 | 1989-04-25 | Symbolics, Inc. | System and method for parallel processing with mostly functional languages |
US4829425A (en) * | 1986-10-21 | 1989-05-09 | Intel Corporation | Memory-based interagent communication mechanism |
US4901231A (en) * | 1986-12-22 | 1990-02-13 | American Telephone And Telegraph Company | Extended process for a multiprocessor system |
US5142683A (en) * | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
JP3053092B2 (ja) * | 1987-06-05 | 2000-06-19 | 株式会社日立製作所 | 並列化コンパイル方法 |
JPH0695347B2 (ja) * | 1988-01-22 | 1994-11-24 | シャープ株式会社 | データ処理装置 |
NL8801116A (nl) * | 1988-04-29 | 1989-11-16 | Oce Nederland Bv | Werkwijze en inrichting voor het converteren van omtrekgegevens naar rastergegevens. |
US5109514A (en) * | 1988-07-28 | 1992-04-28 | Sun Microsystems, Inc. | Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions |
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 |
US5146587A (en) * | 1988-12-30 | 1992-09-08 | Pitney Bowes Inc. | System with simultaneous storage of multilingual error messages in plural loop connected processors for transmission automatic translation and message display |
US4992950A (en) * | 1988-12-30 | 1991-02-12 | Pitney Bowes Inc. | Multiple processing station message communication |
US5182798A (en) * | 1988-12-30 | 1993-01-26 | Pitney Bowes Inc. | Multiple material processing system start-up |
US4962623A (en) * | 1988-12-30 | 1990-10-16 | Pitney Bowes Inc. | Asynchronous rejection in an inserter |
US5003485A (en) * | 1988-12-30 | 1991-03-26 | Pitney Bowes Inc. | Asynchronous, peer to peer, multiple module control and communication protocol |
US4970654A (en) * | 1988-12-30 | 1990-11-13 | Pitney Bowes Inc. | Asynchronous queuing and collation passage in an inserter |
US5185866A (en) * | 1988-12-30 | 1993-02-09 | Pitney Bowes Inc. | Dual mode communication among plurality of processors using three distinct data channels each having different function and operations |
US5274810A (en) * | 1989-01-10 | 1993-12-28 | Bull Hn Information Systems Inc. | Dynamic control of program execution order on a personal computer |
US5075840A (en) * | 1989-01-13 | 1991-12-24 | International Business Machines Corporation | Tightly coupled multiprocessor instruction synchronization |
US5404519A (en) * | 1989-10-11 | 1995-04-04 | Texas Instruments Incorporated | System for extending software calls to functions on another processor by means of a communications buffer |
JP2991242B2 (ja) * | 1989-10-12 | 1999-12-20 | テキサス インスツルメンツ インコーポレーテッド | マルチプロセッサコンピュータシステム使用方法 |
JPH04242852A (ja) * | 1990-02-13 | 1992-08-31 | Internatl Business Mach Corp <Ibm> | 多重処理のための先入れ先出しバッファ待ち行列の管理機構および方法 |
US5797515A (en) * | 1995-10-18 | 1998-08-25 | Adds, Inc. | Method for controlling a drug dispensing system |
SE518492C2 (sv) * | 1998-11-24 | 2002-10-15 | Ericsson Telefon Ab L M | System och förfarande för överföring av lokalt lagrad information i ett datorkomplex |
KR101805462B1 (ko) * | 2017-06-29 | 2018-01-10 | 주식회사 티맥스소프트 | 스레드에서 처리되는 서비스 처리량을 증가시키기 위한 방법 및 컴퓨팅 장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS50120747A (ja) * | 1974-03-08 | 1975-09-22 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL6500562A (ja) * | 1965-01-16 | 1966-07-18 | ||
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4493027A (en) * | 1981-05-22 | 1985-01-08 | Data General Corporation | Method of performing a call operation in a digital data processing system having microcode call and return operations |
US4454579A (en) * | 1981-09-11 | 1984-06-12 | Data General Corporation | System for performing call and return operations |
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
-
1983
- 1983-07-21 US US06/515,852 patent/US4564901A/en not_active Expired - Lifetime
-
1984
- 1984-07-19 DE DE8484304923T patent/DE3479930D1/de not_active Expired
- 1984-07-19 EP EP84304923A patent/EP0132158B1/en not_active Expired
- 1984-07-20 CA CA000459419A patent/CA1214564A/en not_active Expired
- 1984-07-20 JP JP59151958A patent/JPS6081649A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS50120747A (ja) * | 1974-03-08 | 1975-09-22 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62154164A (ja) * | 1985-12-27 | 1987-07-09 | Toshiba Corp | プロセス間通信制御装置 |
JPH02297632A (ja) * | 1989-05-11 | 1990-12-10 | Matsushita Graphic Commun Syst Inc | 画像表示装置 |
Also Published As
Publication number | Publication date |
---|---|
DE3479930D1 (en) | 1989-11-02 |
EP0132158A3 (en) | 1987-11-04 |
CA1214564A (en) | 1986-11-25 |
US4564901A (en) | 1986-01-14 |
EP0132158B1 (en) | 1989-09-27 |
JPH0535453B2 (ja) | 1993-05-26 |
EP0132158A2 (en) | 1985-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6081649A (ja) | タスクを実行する方法 | |
JPS6081650A (ja) | データ処理システム | |
US4084224A (en) | System of controlling procedure execution using process control blocks | |
US4077058A (en) | Method and apparatus for executing an extended decor instruction | |
US3651482A (en) | Interlocking data subprocessors | |
US3480914A (en) | Control mechanism for a multi-processor computing system | |
US3629854A (en) | Modular multiprocessor system with recirculating priority | |
JPS58151655A (ja) | 情報処理装置 | |
JPS646488B2 (ja) | ||
JPH04505818A (ja) | 並列多重糸データ処理システム | |
DE2317870A1 (de) | Programmgesteuertes unterbrechungssystem fuer ein- und ausgabe in einem digitalen rechenwerk | |
US4862351A (en) | Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same | |
NZ201809A (en) | Microprocessor | |
EP0034634B1 (en) | Microcomputer arranged for direct memory access | |
US3698007A (en) | Central processor unit having simulative interpretation capability | |
WO1989001203A1 (en) | Mimd computer system | |
JPS6030984B2 (ja) | 多重共通バスを有するデ−タ処理システム | |
US4567562A (en) | Controller for controlling access to a plurality of records that can be accessed and changed by several independent processors | |
US3480917A (en) | Arrangement for transferring between program sequences in a data processor | |
Bauer | Computer design from the programmer's viewpoint | |
KR102643031B1 (ko) | 프로그램 가능 시퀀서와 이를 이용한 시스템 온 칩 장치 | |
JP2581080B2 (ja) | デバック用マイクロプロセッサ | |
US3573447A (en) | Logical multiply scheme for binary computer | |
JPH0731527B2 (ja) | プログラマブルコントロ−ラ | |
JPS6250855B2 (ja) |