JPS6081650A - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JPS6081650A JPS6081650A JP59151959A JP15195984A JPS6081650A JP S6081650 A JPS6081650 A JP S6081650A JP 59151959 A JP59151959 A JP 59151959A JP 15195984 A JP15195984 A JP 15195984A JP S6081650 A JPS6081650 A JP S6081650A
- Authority
- JP
- Japan
- Prior art keywords
- activity
- processor
- queue
- record
- pointer
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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
り立り丸1
この発明はディジタルコンピュータに関し、竹に複数の
独立なプロセッサが種々のタスク内のそれぞれの活動を
実行するために互いに作用り゛るディジタルコンピュー
タシステムに関するものである。 従来、データ処理タスクは単一のコンビコータによって
そっくりそのまま実行されている。そのタスクは、たと
えば特定の問題を解くことであったり、給料の計算など
があるCあろう。しかし、いずれの場合にも、そのタス
クが単一のコンビコータによって実行される速度は、そ
のコンビ7−−タが単一のサイクルにおいて処理できる
データビットの数とそのサイクルの速1女とに直接依存
する。 したがって、従来、単一のコンビノー夕の計算能力は、
そのコンピュータが単一のサイクルにJ3いて動作づ−
ることができるピットの数を増大させるか、またはその
コンピュータのサイクル時間を短くづることによって高
められている。しかしながら、そのサイクル時間が短く
され10るitむ囲は集積回路の動作速度にJ:って制
限される。まlζ、コンピュータが単一のサイクルに8
3いてiI!lI竹することができるビットの数を増大
させることは、そのコンピュータの設計と保守管理の複
雑さを増大さゼる。 この代わりに、データ処理タスクが実行される速度は、
各々がそのタスク範囲内の1つまたはそれ以上の動作を
実行覆る複数の独立なプロセッサを備えることによって
高めることができJ:う。ぞのようなマルチプロセッサ
システムにおいて、個々のプロセッサは全体のタスクの
実行局間を減少させるそれぞれの活動を行なうJ:うに
仕立てられる。ぎらに、そのシステムの個々のブ0ヒツ
ザは本来的にシステムをモジュール化し、くれによって
そのシステムの設計と保守管理の複雑さを減少させる。 また、そのマルチブ[IL!ツリーシステムにおいて、
種々のプロセッサがいくつかの互いに関係しないタスク
のための活動を同時に実行1′ることができる。これは
そのシステム内の高い並列主段を意図しており、それに
よってそのシステムの削算能力をさらに高める。 しかし、マルチブ0ヒツサシステムにおいて(よ、プロ
セッサが実行する種々の活動を整合さセるためにいくつ
かの手段を備えなければならない。りなわら、正しいシ
ーケンスでタスク内の活動の実行を維持するための手段
を備えなければならない。 また、同時に多数のプロセッサの活動を維持するための
手段を備えなけれは゛ならない。しかし、プロセッサの
数、タスクの数、おJ:び各タスク内の動作の数が増加
づるにつれて、これ(ま非常に複雑になる。 したがって、本発明の土要な目的はランダムに呼U)さ
れた4[1関のない種々の活動がデイジタルブロセッリ
ー内で実行されるシーケンスを同期化させる方法を提供
づ゛ることである。 1里1コL1 本発明によれば、種々の相関のない活動がディジタルプ
ロセッサ内で実行されるシーケンスを同期化させる方法
であってそれらの活動が複数の呼出子によってランダム
に呼出される方法は、そのプロヒッザが実行する各穴な
った種類の活動のそれぞれのポインタを保持するための
単一のプロセッサ待ち行列を用意するステップと、その
活動が初めて呼ばれたときにそのプロヒッリー袖ら行列
内へ活動のポインタを入れるステップと、そのプロセッ
サが実行する各穴なった種類の活動のためにそれぞれの
活動待ち行列を用意するステップと、活動がその最初の
呼出しに続いて呼出されるたびごとにその呼出された活
動のためにそれぞれの待ち行列内へ活動の呼出子のポイ
ンタを入れるステップと、ブロヒッ1−待ち行列内の1
つのポインタによって指し示された甲−の活動を繰返し
実行づ−るステップを含み、その実行はその単一の活動
がその呼出子の各々のために一度実行されるまで繰返さ
れ、ただし、その単一の活動がもう一つの活動を呼ぶと
ぎにはその呼出しが起こる1時点までだけ実行し、前記
方法はさらにプ[m+ tツザ待ち行列によって指し示
されたもう1つのn!i勤の実行を同様に進めるステッ
プを含んでいる。 実施例の畦」一 本発明の種々の特徴ヤ)利点はここに添付された図面と
ともに詳細に述べられる。 第1図において、複数のパ11°′個の独立なディジタ
ルプロセッサはP + 、 P−2、・・・1〕11
と名付けられた数個のボックスによって表わさflでい
る。 これらのプロセッサは何らかのプログラム0■能なタイ
プのものであって、ぞれらは同一のまた(まnいに異な
ったものであっでらにい。都合良くは、プロセッサP、
からPnは、l−l 、 p (ltasll等による
゛プログラム可能な構造を有するディジタル−]ンビュ
ータ″という題名であってバロース・二]〜ボレーショ
ンに譲渡された米国特許第4,346゜438@または
t−l 、 P otash等によル“相U接続マトリ
ックスを備えたディジタル装置″という題名であってバ
ロース・コーポレーションに譲渡された米国特許第4,
327,355号において述べられたタイプのものであ
る。 プロセッサl)、、p2.・・・pHはそれぞれメモリ
M4.M2.・・・M、に接続されている。これらのメ
モリは何らかのディジタルタイプのメモリであればJ:
い。たとえば、それらはスタティックまたはダイナミッ
クタイプの半導体メモリであってもJ:り、それらはM
OSまたはバイポーラの回路で作ることかできる。また
、それらのメtりの記憶容量と動作速度は同一または互
いに巽なっていてもよい。 メモリM、の1つの部分はプ「IL!ツリ」)1がそれ
に基づいて動作ブるデータを含んでおり、一方、メモリ
M、のもう1つの部分(まプロセッサ1〕、が実行する
プロセッサ内活動を含んでいる。ここで用いられている
ように、プロセッリー内活動はブロヒッ()−にそのプ
ロセッサーのリソースのみを用いて特定のタスクを実行
させるプログラムま1こはブ[1グラムの相からなって
いる。そのようなリソースはそのプロレッナ自身の内部
ハードウェアやそのプロセッサのメモリを含み、さらに
そのプロセッサに接続されたディスクヤ)デーゾなと(
図示せり゛)のにうな何らかの周辺装置をも含んでいる
。第1図において、プロセッサP1が実行づるそれぞれ
のプロセッサ内活動はA、p、、△2P1.・・・。 などの記号で示されている。 同様に、メモリM2の一部分はプロセッサ−P2がそれ
に基づいて活動するデータを含んでおり、メモリM2の
もう1つの部分はプf」セツリ−P2が実行するプロセ
ッサ内活動を含んでいる。イれらの活動は第1図におい
てA、P2.A2 Pz 、・・・。 などで示されている。同様に、メモリM、t、tブロセ
ッザP11がそれに基づいて活動するデータを含んでお
り、またプロセッサP、1が実行するプロセッサ内活動
A、Po、A2 P、、、・・・、を含んでいる。 メモリM、、M2.・・・M、の各ノンはプロし/フサ
間命令をも含んでいる。それら(よI N T E R
I) ROCESSORCALL命令、INTERPR
OCESSORRETURN命令、おJ:ヒlNT E
RP ROCE S S ORN E X T命令で
ある。 一般に、これらのプロセッサ間命令はプロセッサp、、
p2.・・・P、が互いに通信Jる手段を与える。より
特定的に言えば、それらはプロセッサ内活動Δ、P7.
△、P2.・・・AtPoなどのすべてが1つにリンク
されて順序正しく同+111されたシーケンスで実行さ
れる手段を与え、それは後でさらに詳しく説+111さ
れる。 プロセッサP I + P 2 *・・・Poは)11
−のタイムシェアされlζバスを介し
独立なプロセッサが種々のタスク内のそれぞれの活動を
実行するために互いに作用り゛るディジタルコンピュー
タシステムに関するものである。 従来、データ処理タスクは単一のコンビコータによって
そっくりそのまま実行されている。そのタスクは、たと
えば特定の問題を解くことであったり、給料の計算など
があるCあろう。しかし、いずれの場合にも、そのタス
クが単一のコンビコータによって実行される速度は、そ
のコンビ7−−タが単一のサイクルにおいて処理できる
データビットの数とそのサイクルの速1女とに直接依存
する。 したがって、従来、単一のコンビノー夕の計算能力は、
そのコンピュータが単一のサイクルにJ3いて動作づ−
ることができるピットの数を増大させるか、またはその
コンピュータのサイクル時間を短くづることによって高
められている。しかしながら、そのサイクル時間が短く
され10るitむ囲は集積回路の動作速度にJ:って制
限される。まlζ、コンピュータが単一のサイクルに8
3いてiI!lI竹することができるビットの数を増大
させることは、そのコンピュータの設計と保守管理の複
雑さを増大さゼる。 この代わりに、データ処理タスクが実行される速度は、
各々がそのタスク範囲内の1つまたはそれ以上の動作を
実行覆る複数の独立なプロセッサを備えることによって
高めることができJ:う。ぞのようなマルチプロセッサ
システムにおいて、個々のプロセッサは全体のタスクの
実行局間を減少させるそれぞれの活動を行なうJ:うに
仕立てられる。ぎらに、そのシステムの個々のブ0ヒツ
ザは本来的にシステムをモジュール化し、くれによって
そのシステムの設計と保守管理の複雑さを減少させる。 また、そのマルチブ[IL!ツリーシステムにおいて、
種々のプロセッサがいくつかの互いに関係しないタスク
のための活動を同時に実行1′ることができる。これは
そのシステム内の高い並列主段を意図しており、それに
よってそのシステムの削算能力をさらに高める。 しかし、マルチブ0ヒツサシステムにおいて(よ、プロ
セッサが実行する種々の活動を整合さセるためにいくつ
かの手段を備えなければならない。りなわら、正しいシ
ーケンスでタスク内の活動の実行を維持するための手段
を備えなければならない。 また、同時に多数のプロセッサの活動を維持するための
手段を備えなけれは゛ならない。しかし、プロセッサの
数、タスクの数、おJ:び各タスク内の動作の数が増加
づるにつれて、これ(ま非常に複雑になる。 したがって、本発明の土要な目的はランダムに呼U)さ
れた4[1関のない種々の活動がデイジタルブロセッリ
ー内で実行されるシーケンスを同期化させる方法を提供
づ゛ることである。 1里1コL1 本発明によれば、種々の相関のない活動がディジタルプ
ロセッサ内で実行されるシーケンスを同期化させる方法
であってそれらの活動が複数の呼出子によってランダム
に呼出される方法は、そのプロヒッザが実行する各穴な
った種類の活動のそれぞれのポインタを保持するための
単一のプロセッサ待ち行列を用意するステップと、その
活動が初めて呼ばれたときにそのプロヒッリー袖ら行列
内へ活動のポインタを入れるステップと、そのプロセッ
サが実行する各穴なった種類の活動のためにそれぞれの
活動待ち行列を用意するステップと、活動がその最初の
呼出しに続いて呼出されるたびごとにその呼出された活
動のためにそれぞれの待ち行列内へ活動の呼出子のポイ
ンタを入れるステップと、ブロヒッ1−待ち行列内の1
つのポインタによって指し示された甲−の活動を繰返し
実行づ−るステップを含み、その実行はその単一の活動
がその呼出子の各々のために一度実行されるまで繰返さ
れ、ただし、その単一の活動がもう一つの活動を呼ぶと
ぎにはその呼出しが起こる1時点までだけ実行し、前記
方法はさらにプ[m+ tツザ待ち行列によって指し示
されたもう1つのn!i勤の実行を同様に進めるステッ
プを含んでいる。 実施例の畦」一 本発明の種々の特徴ヤ)利点はここに添付された図面と
ともに詳細に述べられる。 第1図において、複数のパ11°′個の独立なディジタ
ルプロセッサはP + 、 P−2、・・・1〕11
と名付けられた数個のボックスによって表わさflでい
る。 これらのプロセッサは何らかのプログラム0■能なタイ
プのものであって、ぞれらは同一のまた(まnいに異な
ったものであっでらにい。都合良くは、プロセッサP、
からPnは、l−l 、 p (ltasll等による
゛プログラム可能な構造を有するディジタル−]ンビュ
ータ″という題名であってバロース・二]〜ボレーショ
ンに譲渡された米国特許第4,346゜438@または
t−l 、 P otash等によル“相U接続マトリ
ックスを備えたディジタル装置″という題名であってバ
ロース・コーポレーションに譲渡された米国特許第4,
327,355号において述べられたタイプのものであ
る。 プロセッサl)、、p2.・・・pHはそれぞれメモリ
M4.M2.・・・M、に接続されている。これらのメ
モリは何らかのディジタルタイプのメモリであればJ:
い。たとえば、それらはスタティックまたはダイナミッ
クタイプの半導体メモリであってもJ:り、それらはM
OSまたはバイポーラの回路で作ることかできる。また
、それらのメtりの記憶容量と動作速度は同一または互
いに巽なっていてもよい。 メモリM、の1つの部分はプ「IL!ツリ」)1がそれ
に基づいて動作ブるデータを含んでおり、一方、メモリ
M、のもう1つの部分(まプロセッサ1〕、が実行する
プロセッサ内活動を含んでいる。ここで用いられている
ように、プロセッリー内活動はブロヒッ()−にそのプ
ロセッサーのリソースのみを用いて特定のタスクを実行
させるプログラムま1こはブ[1グラムの相からなって
いる。そのようなリソースはそのプロレッナ自身の内部
ハードウェアやそのプロセッサのメモリを含み、さらに
そのプロセッサに接続されたディスクヤ)デーゾなと(
図示せり゛)のにうな何らかの周辺装置をも含んでいる
。第1図において、プロセッサP1が実行づるそれぞれ
のプロセッサ内活動はA、p、、△2P1.・・・。 などの記号で示されている。 同様に、メモリM2の一部分はプロセッサ−P2がそれ
に基づいて活動するデータを含んでおり、メモリM2の
もう1つの部分はプf」セツリ−P2が実行するプロセ
ッサ内活動を含んでいる。イれらの活動は第1図におい
てA、P2.A2 Pz 、・・・。 などで示されている。同様に、メモリM、t、tブロセ
ッザP11がそれに基づいて活動するデータを含んでお
り、またプロセッサP、1が実行するプロセッサ内活動
A、Po、A2 P、、、・・・、を含んでいる。 メモリM、、M2.・・・M、の各ノンはプロし/フサ
間命令をも含んでいる。それら(よI N T E R
I) ROCESSORCALL命令、INTERPR
OCESSORRETURN命令、おJ:ヒlNT E
RP ROCE S S ORN E X T命令で
ある。 一般に、これらのプロセッサ間命令はプロセッサp、、
p2.・・・P、が互いに通信Jる手段を与える。より
特定的に言えば、それらはプロセッサ内活動Δ、P7.
△、P2.・・・AtPoなどのすべてが1つにリンク
されて順序正しく同+111されたシーケンスで実行さ
れる手段を与え、それは後でさらに詳しく説+111さ
れる。 プロセッサP I + P 2 *・・・Poは)11
−のタイムシェアされlζバスを介し
【インテリジ]−
ントメモリコントローラIMCに接続されてJ3す、コ
ントローラI ’M CtヱシエアされたメモリSMに
接続されている。コントローラIMOは好ましくは上記
のタイプのプログラム可能なコンピュータであって、メ
モリSMはどのようなタイプの読出し、/出込みメモリ
でもよい。 メモリSMはそれらのプロセッサ“の各々のために1つ
の独立したプロセツリーレコー1rを含/υでおり、そ
のような各レコードはここでI)R、とじで示されてい
る。まIζ、メモリS M tJそれらのプロセッサに
お【プるプロセラ1ト内活動の各々のために独立の活動
レコードを含/υでおり、くのような各レコードはAR
X p:で示されている。さらに、メモリCMはプロセ
ッサ間命令を介し11つのプロセッサからもう1つのプ
ロヒツザヘシLアされて送られるパラメータを含んでい
る。 各プロセッサーレコードP R、内に含まれているのは
、プロセッサP1が現在成る活動を実iうしていてB
U S Y T”あるかまたはN0I−BUSYのいず
れであるかを示すフラグである。ブ【」ヒツリーレコー
ドP R、は、プロセッサP1がB U S Yのとき
にそのプロセッサが実行している現在のブ【」レツザ内
活動を指し示すCU RRE N 1−エン1〜りをも
含んでいる。 プロセッサレコードPR,はさらにP)犬OCItS
S ORQ IJ E U E l−I E A Dエ
ンl−リ(PQQ10) と RRO(jJssORQ
UEUE T Δ ILエントリ(1〕Q T )を含
んでいる。これらの2つのエントリはそれぞれブロヒッ
ナP1が実行覆べき異なった種類のプロセッサ内活動の
ために活動レコードの持ら行列の先端と後傾を指し示づ
。 7なわも、同じ種類の活動のポインタ(ま、たとえその
活動が数回呼ばれるどしてもただ一度だけそのプロセッ
サ持ち行列内に入れられる。ブ1]セッザレコードPR
,は、89姐上の選択として、上述のものに加えて他の
エントリをも含んでもよい。 活動レコードA、RXPlは対応する活動がDORMA
NTまたは△CTIVEあるい【よS U S 1)U
NDEDであるときを示づ゛フラグの組を含んでいる。 活動は、プロしツサがその活動を大f−jりるために実
際に使用されているとぎへC丁IVEである。活動が完
了の途中まで実行してもう1つのプロセッサにおけるし
う1つの活動の結果を持′つ間に停止しているとぎ、活
動はΔCTIVEに留まるが5USP)ENDEDステ
ートにある。そのにうな結果はINTERPROCES
SORlN5TRUCTIONSを介してリクニLスト
されて得られる。他のづべての場合においτ、活動はD
ORMANTである。 活動レー】−ドARxP+は、最初に活動Δ、(〕、を
呼ぶべき活動の活動レコードのポインタであるCALL
ERエントリをも含む。活動ΔyP1の後続のいずれの
呼出子も、その後に(よ活動レコード内のAC丁IV[
王Y Q U E U E T A [Lエントリ(A
QT)どAC−rIVITY (:)UEUE HEA
Dエントリ(A Q +−1)が続く。 特定的に君えば、活動Δy1)1の後続の呼出子のポイ
ンタはその活動の待ち行列内に置かれる。 エン1〜すA Q +−1は活動AX P、の第2の呼
出子の活動レコードを指し示し、エントリ△Q1−は活
動ΔxP+の最後の呼出子の活動レコードを指し示す。 活動待ち行列またはプロセッサ待ち行列のいずれかの中
間エントリは、活動の種々の呼出子の活動レコード内の
N E X T I N Q U E tノE丁ントリ
(NIQ>によって1つにリンクされる。 また、活動レコードAR,P、は、I N T E R
P’ROCESSORlN5T’RUCTIONSを介
して、2つの活動間で送られるパラメータのポインタを
含むI) A RAM E T’ E Rエントリ(P
ARAM)をイ5している。たとえば、活動△x Pl
が活動Ay PJ を呼ぶどぎ、次に活動レコードAR
xP+のPARAMエントリは活ll1IIA7P、j
がそれに基づいて動作すべきシェアされたメモ98M内
のパラメータを指し示す。逆に、活動A/(〕jが完了
したとき、活動レコードAR,P、内のPΔRAMエン
トリは活動Δ/]〕、にJ、って活動△、p、へ送られ
つつあるシェアされたメモリ内のパラメータを指し示す
。 第1図のシステムに関するプロセッサレコードと活動レ
コードの完全なヒツトの1つの例が第2図に示されてい
る。この例において、PR,からPR,、までの11個
のプロロッリーレ:1−ドがあり、それらはそれぞれP
lから1〕1、までの11個の物理的に独立なプロセッ
サーを表わしている。さらにこの例において、各々のプ
ロロツリーが実行する活動の数はプロセンナごとにおい
て異なっている。 第2図はプロセッサ1が5つのプLルッナ内活動を実行
でることを示してJ3つ、これらの活動のための上述の
ポインタはそれぞれ八R,I−’、がらAR5P、まで
の活動レコード内にある。同様に、第2図はプロセッサ
2が11個のブロセッナ内活動を実行し、プロセッサ3
が9つのプロセッサ内活動を実行し、プロセッサ4が3
つのプロセッサ内活動を実行することなどを示している
。また、これらの活動レコードとプロセッサレコードの
各々はどの活動がどれを呼んでいるかを追跡するそれら
自身のポインタを有しており、種々のプロセンナがそれ
ぞれのプロセッサ内活動を実行する順序を決定する。 ここで、INTERPROCESSORCALL命令に
応答してコントーラfMcによって実行される動作の詳
細について考えよう。下記の表1はプロセラ(J−p
、内の活動△XP1がプロセラFjPj 内の活動△、
PJ を呼ぶ一般的な場合に関するそれらの動作を示し
ている。 (以下余白) 活動ΔXPj がDORMANTであってブ[Iヒッサ
P、がNOT BUSYであるとき、コントローラIM
Cは以下のタスクを実行づる。まり゛、ぞれは活動レコ
ードAR/P、7 内)AC−1−I VEフラグをセ
ット覆ることによって活動A/1〕ヨ をACT[VE
にする。次に、活動レコードAR。 Plのポインタを活動シー1−ドAR7PJ のCΔL
LERエントリ内ヘロードする。また、活動レコードA
R/PJ のポインタはブロセッナレコードPRヨのC
’URRENTエントリ内ヘロードされる。次に、プロ
セッサレコードPRJのためのBUSYフラグがセット
されて、活動AXPJ の実行を開始させるように通知
覆るメツセージがプロセッサPj に送られる。 しかし、活動ΔχPJBND ORM A N Tであ
っ(プロセッサP Jカr N T E RP ROC
FSS ORCALLのときにBUSYであれば、その
とぎコントローラIMOは以下のように動作する。 まず、それは活動レコードΔR,P、内のへC丁IME
フラグをセットする。次にそれは活動レコード△RxP
、のポインタを活動レコードAR,yPj のCALL
ER位置内へロード夛る。次に、それは活動レコードA
R,PJ のポインタをブロセッ゛リーレコードPRJ
の待ら行列内へロードする。 この後者の動作は、プロセッサレコードPRJのPRO
CESSORQUEUE TAII−によって指し示さ
れる活動レコードのNEXl” INQUEUEエント
リ内への活動し:1−ドARンPJのポインタのローデ
ィングを伴い、次に活動レコード△R,P、をも指し示
JようにプロセッサレコードPR1のPROCESSO
RQU[:UETAILエントリを変える。 最後に、活動△y PJ lfi I N −l−1v
旧)ROCESSORCALLのとぎにA、C−1−1
\/Eであれば、イのときインテリジエン1−メtリコ
ントローラは活動レコードΔRXl)iのポインタを活
動レコード△Ry P Jの持ち行列内にロードづる。 これは活動1/D−ドΔR/P、’ (7)AC−r
I V I T ”1/QUEUE TAILにJ:つ
て指し示される活動レコードのNEXT IN QUI
=、UEエン[−リ内への活動レコードΔRx p:の
ポインタのローディングを伴い、次に活動レコードAR
,P、を指し示す活動レコード△RγPJ 内のACT
’ I[’TY QUEUE TA[1,−を変える。 上記動作は単にCA L、 1.、 E D活動レコー
ドとCALLEDプロセッサレコードに影響を及ぼすだ
けであることに注目すべきである。しかし、これに加え
て種々の動作がCALljNG活動レコードどCALL
INGプロヒッナレ丁」−ドにおいてら実行されなけれ
ばならない。これらの動作は以下のようである。 CΔLLINGプロLンサレコードP R、内の持ち行
列がNOT E M P −r Yであるとき、1つの
エントリがその侍し行列から取り出されてブ[1ヒツザ
レコードPR,のCU RRE N ’Tエン1−り内
ヘロードされる。このアンロープインク動作はプロセッ
サレコードPR,のP ROCE S S ORQUE
UE トIEADエントリをプ[]レッIナレコードP
R,のCU RRE N−rエンド・り内へ移動させる
ことを伴い、次にブロレッナレ]−ドl) R。 内のl) ROCE S S ORQ U E U E
11 E△Dによって指し示される活動レコードから
のNEX丁 IN QUEUEエントりがブロヒツリレ
コードP RiのP ROCE S S ORQ U
E LJ El−IE△1〕内ヘロードされる。また、
=1ン1〜ローラI M Cににつてメツセージがプロ
レツ1月〕1へ送られ、それはプロセツリーレコード1
)R1内のCURRにN Tエン[・りににつて指し示
される新しい活動をそのプロセッサに知らせる。 一方、プロセッサレコードPR,内の持ち行列がEMP
TYであるどき、そのプロしツリーレーコード内のフラ
グはプロセッサ1〕1がNO”l−BusYであること
を示づようにLツトされる。また、そのJ:うな条件に
おいて、プロロツリ゛レコードPR1内のCU RRE
N Tエントリは空白値にレットされる。さらに、上
記とこの場合の両方において、たとえ呼出し活動が中1
された状態にあっても、その呼出し活動レコード△Ry
I)、内の△CTIVEフラグはセットされたままであ
ることを注目すべきである。 次に、プロセッサの1つからのl N T IE RP
ROCESSORRETURN命令に応答してコント
ローラIMCにJ:つて実行される動作について考えJ
:う。特定的に、ブ[1セツリーP、内の活動△7PJ
がプロセッサP1内の活動△xP・へ戻る場合を考えよ
う。これらの動作は以下の表2に示されている。 (以下余白〉 RE T U REが起こったときに活動し」−ドΔR
,P、i の待ち行列がNo−r−EMI〕丁Yであれ
ば、そのときコントローラIMCは以下の動作を実行づ
る。まず、1つのエントリが活動レコード△R7PJの
持ち行列から取出される。これは、活動レコードARy
PJノAc王I V I 1−Y QU E U E
l−I E A D内のポインタを活Oル−」−ドA
R/PJのCALLER位置内へ移動さ迫ることによっ
て達成され、そしτ活動レコードA RyP、の△CT
IVITY QtJEUE HEADによって指し示さ
れる活動レコードのNEXTIN Q U E IJ
[Eエントリを活動レコードA Ry PJの△CT’
I V I T Y Q U E U E トI E
A D内へ移動さゼる。その後に、その活動の新しい
呼出子のために活WJAXPJ を再実行り”るために
メツセージがプロセッサPJ に送られる1゜一方、R
ETURN命令がコントローラIMCへ送られるときに
活動△’/PJ の待ち行列がEMPTYであるがプロ
セッサPjの侍ら行夕lJ h< N OT EMPT
Yであるならば、そのときそのコントローラは以下の動
作を実行づ゛る。まず、活動レコードΔR2PJ 内の
フラグはD ORM A N T’ステートを示すよう
に変えられる。次に、1つのエントリがプロセッサレコ
ードPRj の持ち行列から取出されて、そのプロセッ
サレコード内のCURRENTエントリはその持ち行列
から取出されるそのエントリとともに更新される。次に
、メツセージがプロセッサPjに送られて、それはプロ
セッサレコードPR,内のCU RRE N Tエント
リによって指し示されている新しい活動レコードをプロ
セッサに知らせる。 最後に、RETURN命令が=Jン1〜[」−ラIMC
へ送られるときに活動レコードΔRyP、の待ち行列と
プロセッサレコードI)I’<、iの持ら行列がどちら
もE M P T yであれば、そのときプロセッサP
j に関して現在実行すべき他の活動は存在しない。し
たがって、プロセッサレコードP Rj 内のフラグは
プロセッサP、がNOT’ BUSYであることを示す
ようにセットされ、ぞしてプロセッサレコードPRJ内
のCLJRRENTエントリが空白ステートにセットさ
れる。 RE T U RN命令に関づる上記のづべての動作は
CALLED活動レコードAしRy P J とCAI
−LEDプロヒッザレコードPR,において実行される
。さらに、以下の動作はそのRE ’1− U RN[
相]令に応答してCALLING活動レコード△RしP
、とC△ししINGプロセッサレコー1:P R。 において実行される。 CALLINGプロセッサレコードPR,内のフラグが
プロセッサP1がBUSYであることを示していれば、
そのときインテリジェントメモリ二】ントローラは活動
レコードARxP、のポインタをプロセッリーレコード
]〕R1の待ち行列内に■]−ドする。これは、プロセ
ッサレコードPRIの待ら行列が空でないとぎに、プロ
ヒッリーレコードPR,内のP ROCE S S O
RQ U E 1.J E rAILによって指し示さ
れる活動し]−ドのNEXT IN QUEUEエント
リ内へ活動レコードΔRx P +のポインタを[二1
−ドすることによって、ま1.:P ROCE S S
ORQ U E tJ E T A1L丁ントリを活
動レコードA R,X l) +を指し示すように変え
ることによって実行される。またそれは、ブロセッυ−
レコードPR,の持ら行列が空であるときに、プ[1t
?ッザレコードPR,のPROCE S S ORQ
U E U E l−I EΔDとPROCESSOR
QUEUE rAIL−内へ’(古動レコード△RxP
、のポインタを[1−ドすることによって達成される。 しかし、もしプロロツ゛す“PlがN OT’ F:3
U SYであれば、そのとき活動レコードAR,P、
のポインタはプロセッサレコード]〕R1のCU RR
E N 1−エントリ内ヘロードされ、プ1コレツリレ
コードP R、のフラグはプロセッサ1〕、が13US
Yであることを示すようにセットざ、れる。次に、メツ
セージがプロセッサP1に送られて、ブ[1セッサレコ
ードPR,内の新しいCU RR[三N−1−エントリ
によって示されている実行されるべき新しい活動をその
プロセッサに通知する。 ここで、1つのプロセッサからのINTERPROCE
SSORNEXT命令に応答してコン1−ローラーMC
によつC実行される動作について考えよう。特定的に、
プロセッサP 内の活動Δ/P がプロヒツザP、内の
活動へzPhへのNEXT命令を実行づ゛る一般的な場
合に行4丁ねれる動作について考えよう。これらのり」
作(:J、以下の表3に示されている。 (以−ト余白) そのNEXT命令に応答して活動レコードΔR,yPノ
とプロセッサレコードPR,l におい(実行される
動作は、上述のRE T U RN命令に応答しl活動
レコード△Ry’ P > とプロセッサレコードPJ
において実行される動作と同じである。しかし、N E
X 1”命令に応答して活動レコードA RンP k
とプロセッサレコードPR,において実行される動作は
以下のようである。活動△zPiが八〇T I VEで
あるとぎ、活動レコード△RxP。 のポインタは活動レコード△R,P、の活動待ち行列内
へロードされる。これは、活動し11−ド△Rzの活動
待ち行列内へ活動レコード△Ry)’JのCALLER
エントリを移1FIIさVることによって達成される。 しかし、NEXT命令が二IントローラIMOへ送られ
たときに活動△2P、がDORMANTでかつプロセッ
ナP、がBUSYであれば、そのときそのコント[1−
ラは以下の動作を実行づる。まず、活動レコードAR,
P、のポインタはブロレッ→)−レコードPR,の待ち
行列内へロードされる。 次に、活動レコード△[で7PJ のOA l−L E
Rエントリ(それは活動レコードARxP+のポイン
タ)は活動レコードARzPiのCA L L E R
エントリへ移動さμられる。次に、活動レコードARz
pi内のフラグは△CT’fEスデーI・にセットさ
れる。 一方、NEXT命令がインテリジェントメモリコントロ
ーラへ送られたときにブロセッ4す1〕、がNOT B
USYであれば、そのときそのコントローラは以下の動
作を実行する。、活動レコードAR,P、のポインタは
プロセンナレコードl) R。 のCURRENTエントリ内へ臼−ドされる。また、活
動レコード△R、Pj のCΔL−IER:hントリ(
それは活動レコード△R,XPi のポインタ)は、活
動レコード△Rz piのCA i L LE Rエン
ド・り内ヘロードされる。次に、活動レコードへR2P
、内のフラグはACT I VEスデー1−にレットさ
れる。 ここで、第3図が参照されるべきぐある。それは、0A
LLとそれに対応するR E T U i< N動作の
間にプロセッサレコードと活動レコードに起こる上)ホ
の変化の典型的なシーケンスを図解している。そのシー
ケンスは瞬間[、からt5の間に起こり、以下の表4は
各瞬間に起こる出来事の概略を示している。 (以ト余白) この例において、2つのプロセッサPyとPXが存在し
、それらはそれぞれプ[Jセラ4)−レコードPRxと
PRyを有している。最初、プロセッサPxは、活動レ
コードARbPxを有する活動△9Pyを実行していて
BUSYである。!、lζ、活動レコード△RQ PX
を有するもう1つの活動△八P、は実行されるべぎPR
y、プロセッサ持し行列内で待機しており、プロセッサ
P/は活動AcP/を実行していてBUSYである。こ
れらの初期条件(j第3図において参i11番号1を右
するポインタによって示されている。 特に、プo 吐ツサレコードPRx内の参照番号1のC
U RRE N T 、1ニントリは、プロセッサPy
が最初に活動AI、Pxを大行1)ていることを示ずに
“うに活動レコードΔRbP>、を指し示づ。また、プ
ロセッサレコードP Rx内の参照番号1で示されたP
ROCE S S ORo U E U E H[E
A DエントリとP ROCE S S ORQ U
E U E TAILエンドIJ t、t 、活動A
、、P、が最初にブロセッーナレコードPR,の待ら行
列内にあることを示すように活動レコードAR,PXを
指し示づ。 さらに、プロセッサレコードPR7の参+10番号1で
示されたCURRENTエントりは最初にプロセッサP
が活動ΔぺPXを実行していることχ を示ジように活動レコードARg+)/を指し示す。 また、プロセッサレコードPRyの参照番号1で示され
たP ROCE S S ORQ U E L、I E
l−I EADエントリは、他のいかなる活動らブに
1セッサPχにおいて実行されるよう袖機していないこ
とを示Iにうに空白値を有する。 その後、参照番号2を右Jるレボ1−ド内のポインタに
J二つて示されているように、活動△bPyが活動Ac
Pyを呼ぶ。その結果、活動レボ1−ドARcP/内の
CALLERエン1−りは、それが活動し:1−ドAR
bPy、を指し示Jように書込まれて、ブロセツザレコ
ードPR,内のl) ROCES S ORQ U E
U E HE A D ]: ントリトP ROCE
SSORQUEUE T△11−エントリは、それらが
活動レコードA Rc Pyを指し示すように書込まれ
る。また、活動A1. P x G、tCA l−L
E Rであったので、プロセッサPx1..tその活動
の実行を中止して、それがその待ら行列から得るもう1
つの活動の実行を開始づ−る。()たがって、プロセッ
サレコードPRx内のCU RI犬[ヨN −r 1ン
トリは活動レコードARaP、を指し示すように書込ま
れ、プロセッサレコードPRXのPROCE S S
ORQ tJ E U E l−I EΔ[)エンド・
りは空白(直に書込まれる。 その後、参照番号3を右Jるレコードエンし・りににっ
て示されているように、プロセッサPtよ活動A、t
PXの実行を完了し、そしてそれはその待ち行列内のも
う1つの活動の実行を開始する。 したがって、ブロセッ1ルコード1)Py内のCI、J
RRE N Tエントリは活動ARcP7を指し示づよ
うに書込まれ、プロセッサレコードPRyのPROCE
SSORQUEUE ト1 [三 △ D エ ン 1
〜りは空白値に書込まれる。 その後に、参照番号4を有するレコードエントリによっ
て示されているように、プa tツリ1)/は活動△c
Pyの実行を完了づる。従って、活動Ad)、を呼出し
た活動が実行を11j聞づることができ、そして活動レ
コードARbPyのポインタはプロセッサレコードPR
XのP ROClESSORQ U E U E HE
A D エンI−!J 、!: P ROCESSO
RQUEUE T△I I−、、Iニントリ内へロード
される。また、プロセッサP/は自由にもう1つの活動
を実行することができるが、そのプロしツリー持ち行列
はE M P T’ Yであるので、プD ロッサレコ
ードPR7のCU RRE N−1−ポインタは空白値
に書込まれる。 プロセッサP、は、活動が完了づるがまたはもう1つの
活動を呼ぶときまで活動△ヶPxの実行を続ける。それ
は1sのときに起こる。次に、プロセッサレコードP
RxのプC] :l?ツリ゛待ち行列によって活動レコ
ードARbPxが指し示されるので、プロセッサP、は
活動AI、Pxの実行を再開する。 ここで第4図と第5図を参照して、いくっがのC△1L
動作とRE 1− U RN動作の間にプロセッサレコ
ードと活動レコードに起こる変化のシーケンスのもう1
つの例が述べられる。この例にJ3いて、プロセッサP
xが実行する活動AIPXは3回呼出され、プロセッサ
−P7が実行するもう1つの活動Δ2PXは2回呼出さ
れる。 この呼出しのりべてはプロセッサPxがもう1つの活動
を実行していてビジーのとぎに起こり11.いア、ッ、
、−2っ” l−” P R9L’t !’、IJ L
/ J−1;AR,P、とAR2PX内の待ち行列は(
の呼出しが起口っでいる間にロードされる。その後に、
プロセッサP、はそれが実行し−Cいたタスクを終了し
て、次にそれはプロセッサレコードと活動レコードの待
ち行列内で指し示されている活動を実行する。以下の表
5は種々の出来事が起こるシーケンスを示している。 (以−ト余白) 第3図はブ[1セツナと活動レコードの侍ら行列がロー
ドされるシーケンスを図解しており、一方、第4図はそ
れらの持ち行列がアンロードされるシーケンスを図解1
)でいる。これらの両図において、参照番号1から11
をイjするポインタtよそれでねそれらの番号に対応し
たシーケンスの瞬間におけるプロセッサと活動のレコー
ド内の種々のエントリを示している。 第4図を見れば、瞬間1.−1.の間に、プロセッサレ
コードPRxのCURRENTエントリはプロはツリP
xが現在実行している括り)レコードを指し示し一〇い
る。しかし、t2の瞬間において、プロヒッリーP、内
の活動Δ。P、はブ[ルッザPx内の活動へ1P7、を
呼ぶ。その結果、活動レコード△R,PyのCΔLIF
R1,ン1〜りはそれが活動レコードAR,P、を指し
示すように書込まれ、プロセッサレコードPRyのPR
OCES S ORQ U E U E )−I EΔ
DとI−” ROCE 5SORQUEUE TAIL
の1−ントリはイれらが活動レコードAR,P、を指し
示Iにうに出込まれる。 その後に、瞬間T、において、プロレッナT2内の活動
△b[〕2はプロセツ→JPX内の活動△2P、を呼ぶ
。このCALLの結果、活動17コードAR2P、内の
CALLERエン)−リ(:L活動レコードA Rb’
P 2を指し示すように出込まれる。また、プロセッ
サレコードPRxのF) ROCE S SORQUE
UE TAILエンi−りは活動レコードAR2Pxを
指し示すにうに変えられて、活動レコードAR,Pxの
NEX−r’ IN QrUEUEエントリは活動レコ
ードAR2PXを指し示づように書込まれる。その後、
瞬間T、にJ5いて、プロセッサP3内の活動Δc P
a IJ、活動△lP8を呼ぶ。活動A、Pyのこの
CALLはプロレッザレコードPRXの持ち行列内へ活
動し」−ド△R5Pxを再ロードしないが、その代わり
活動レコードARcP、のポインタは活動レコード△R
+Pxの活動待ち行列内へ書込まれる。これは、活動レ
コードAR,PXのAC−1−IV[−rY QUEU
E HEADとACTIVI−1’Y QUEUET△
ILのエンl〜りを出込むことによって達成され、それ
らのエンし・りは活動レコード△R9P、を指し示J−
8 次に、瞬間t、においで、プロセラ1す1:I、内の活
動A P、は活動A2P、を呼ぶ。再び、活動レコード
AR2PXは既にブl:] L/ッサレコードPR8の
プロセッサ待ち行列内にあるので、活動レコードA R
a P 4のポインタは単に活動レコード△Rz Px
の活動待ち行列内ヘロードされる。これは活動1/1−
ドAR2P、 のAcT I V I TYQUEUE
HEADとACTIVITY QUEUE T△IL
のエントリをIf込むことに2しって達成され、それら
のエン1へりは活動し:]−ドARべP、を指し示す。 次に、−間[6のとぎ、プロ上ツリ1〕5内の活動Ae
Psは活動ATPXを呼、′S−0その結果、活動レコ
ードAR,P、は活動レコード△R,P。 の活動待ち行列内ヘロードされる。これは、活動レコー
ドAR1PxのACTIVITY QUEUE T/M
Lエントリを活動レコードAReP5を指()示すよう
に変えることにJ:って、また活動レコードAR,,P
aのNl三X−1’ IN QUEUEエントりをも活
動レコード△R,1つ、を指し示づように書込むことに
よつ”c’ 32成される。 ここで第5図に移って、ブロレツリーレコードPRX+
活動レコードΔRiPx、J>J:ひ△R21)、内の
待ち行列のアンローディングが述べられる。 第5図において、参照番号6をイJりるそれらのポイン
タは第4図における参照番号6を有Jるポインタと同じ
である。 瞬間t7において、プロセッサ−1〕。は瞬間t1から
[6において動作していた活動を完了づる。 そして、それはI N T E RP ROCE S
S ORRE T U RN 重合を実行する。それに
応答して、コン1−[1−ラIMOはブ[11セッリレ
−1−ドl)RX内の待ち行列から1つの活動レコード
を取出()て、プロヒッサレコードP Rxへその取出
された活動を通知する。この取出し動作はコン1−〇−
ラIMOを介してプ[1セツサレコードl) I< 、
内のI) R0CESSOR−Gl’UEIJE HE
ΔDエン1−りをそのプロセッサレコード内のCURR
ENTエントリへ移動さulまた活動レコード△R1P
xのNEXT IN QUEUEエントりをブロセ・
ンナレコードP[(6のP ROCF S S ORQ
U EUE HEADエントリへ移動さセることによ
って達成される。 その後に、瞬間t8において、プロセラ+’ P xは
活動△+Pxを完了づる。そして、それ(Jもう1つの
INTERPROCESSORRETURN命令を実行
する。そのRE王URN命令に応答して、コントローラ
IMCは活動レコード△R3P8の活動待ち行列から1
つの活動レコードを取出づ。そしてそれは、活動レコー
ド△R,I)X内のAC丁[V f T Y Q U
E U E ト][三△DエントリをそのレコードのC
A L 1.、、 IE Rエン[へりl\移動させる
ことににつて、また活動レコードΔR、P y のAC
TIVITY QLJEUE 1−ICADエントリ内
へ活動レコード△R,P、のNEXT IN QUEU
Eエントリを移動さUることによって達成する。次に、
プロセラ(〕−P7はそれがその活動の第2の呼出子の
ために活動△l[〕7、を再実行しな(プればならない
ことを通知される。 瞬間t9において、プロセッサ−Pxtよ再び活動Δ、
])Xの実行を完了J゛る。そして、そ4″lは11j
ひ1 つの l N T l三 RPROCI三 5S
ORIマ E −1−URN命令を実行する。それに応
答1. (、sントローラIMCは活動レコード△R,
PXの活動持ち行列からもう1つの活動1)=1−ドを
取出り。そして、そノ活動し−+−ドAR+ P>、
のACT IVITY QUEUE トIEADエン1
〜りをその活動のCΔLLERエントリ内へ移aノさせ
ることによって、また活動レコード△R,l)、の△C
T’ I V[T Y Q IJ E tJ E l−
I E A D I ント’J ’、y: ’2 白(
aにヒツトJることによって達成リ−る。次に、=)ン
トローラ[MOはその活動の第3の呼出子のために活動
活動A、PXを再実行覆るようにプロレツザP9へ通知
覆る。 その後に、瞬間tooにJ3いT 、プロヒツナP8は
活動△、Pxの実行を完了して、そ」2てそれは再び1
つのI N T E Rl) ROCE S S OR
RE T’ U RN命令を実行りる。これに応答し又
、:=1ントローラI M C);Lプロセン11レコ
ードPR,のプロしツサ待ち行列からもう1つの活動レ
ニコードを取出して、それは実行づ゛べぎ新しい活動を
プロヒツナP/に通知りる。この取出動作はプロセン(
ナレコードPRxのP ROC[’ S S○R(’)
U I三UE HEADエントリをそのし二1−ドの
0()RRE N 1エントリ内へ移動させることにJ
:つて、またプロしツリーレコードPRy内のPROC
ESS ORQ IJ E IJ E HE A Dエ
ン(・りを空白値に変えることによって達成される。 次に、瞬間1++におい又、プロセッサP、は活aAz
Pxの実行を完了りる。そして、それは再び1つのl
N T E RP ROCl三S S Of< RET
URN命令を実行づる。それに応答し−(、=」ント・
ローラIMCは活動レコードA R2P 、の活動待ち
行列から1つのエントリを取出して、その活動の第2の
呼出子のためi、:活動△、r〕、を再実行づるように
プロセッサPyへ通知覆る。この取出し動作は、活動レ
コードAR,,P、の△CTIVI T Y Q tJ
E U E HE A 01ントりをイの活動のCA
L L、 E Rエントリへ移動させることによって
、また活動し]−ドAR2PXのΔc −1−I VI
T Y Q U E U E トIEADエントリを
空白値にセットすることににつて達成される。 プロセッサPXが活動A2PXの実イラを完了した後ニ
、ツレG、U 再ヒ1−) (7) I N 1− E
RP ROCEs5ot閾 RETURN命令を実(
j′1Jる。そのどき、プロセッサP8が実行づべき他
の′rll!l1IIは存在しておらず、そしてコント
[1−ラI MC4よ単にブロヒッザレコードPRX内
にB U S 、Yフラグをリセットして、そのレコー
ド゛のCU RRE N T二+:ントリを空白1直に
セットづる。 上記の動作のシーケンスから、ブ1−ルッリ−1〕7が
活動△+PxとA z P xを実行しlζ順序はそれ
らの活動が呼ばれた順序と完全に異なったものく・あっ
たことがわかる。具体的には、それらの活動はΔ+ P
x + A2 PX +Δ+ Px + A2 Px
+およびAlPxの順序で呼出されたが、(れらの活動
が実行された順序はA、Px、A、P、、八〇PX、A
2PX、およびARPヶの順序であった。 言い換えれば、活動△+Pxlよその呼出子のそれぞれ
の1つに関して1回実行されて、イして活1JAzPx
はその呼出子のイれぞれの1つについて1回実行された
。そして、こされはそれらの活動が呼出された順序と関
係な(起こる。活動のそのような順序替えは重要であっ
て、なぜならば、でれはプロセッサが1つの活動の実行
からもう1つのものへ切換ねる回数を最小にリ−るから
である。 切換えが起こるlこぴに、その新しい活動に関づるコー
ドはその活動を実行1べきブロヒッリーのメモリ内へ読
込まれなければならない。まlζ、活動がそれに基づい
て実行づるデ′−夕のためにそのメモリ内においてスペ
ースが再割当されなりればならない。これらのリソース
割当動作は瞬間を消耗するものであって、しlζがって
それはシステムの全体的性能を低下させる。 ここで、fNTERPROC[三S S Of’?、N
EXT命令の動作を図解している第6図が参照さ(す
るべきである。この図において、以前の第3図ないし第
5図におけるJ:うに、参照番号1から9を有づるポイ
ンタは、それらの参照番号に対応する瞬間における活動
レコードとプ[]セセラリレコードのそれぞれのエント
リを示し−(いる。 以下の表6は、I駅路的な第6図で起こる出来事のシー
ケンスを示している。この1111iI8は、活動△O
P +がもう1つの活動A112を呼出して、次に活動
△しP2が活動Ac P、へNEXT命令を実行して、
次に活動ΔcP3が活動△、i P4へNE X T命
令を実行して、次に活動Δ4Pqが活動AI)P2まl
ζは△cPaへ再入づることなく直接A、P、へもどる
というシーケンスを示している。 (以下余白) 第6図を見れば、時間!、においてブl」レツサP1は
活動AユP1を実行していることがわかる。 それは、時間[、においでプロロツリーレニ1−ド1〕
R4内のCURR[ENTエントリが活動レニ1−ド△
RαP、を指し示しているからである。 次に、時間t2において、活動Δα1〕1はプロしツリ
1〕2内のCALLING活動△l)1〕2にJ、って
その実行を中止する。イのNi末、活動レコード△R1
,p2内のCA L l−E R:cン1〜す(よそれ
が活動レコード△R,P、を指し示ずJ:うにコントロ
ーラIMCによって書込まれる。また、ブ[コレツザレ
コードPR2はプロセツサP2が瞬間t2において現在
もう1つの活動を実行していてビジーであることを示し
ているので、プロセツザレコ−1:’PR2のPROC
ESSORQUEUEHEADとP ROCE S S
ORQ U E U E T△ILのエントリは活動
レコードΔRbP、、を指し示すようにコン1〜ローラ
[MCにJ:つて書込まれる。 その後、時間t、において、ブト11?ツ1すP2はI
NTERPROCESSORRET’L)RN 命令を
実行することによってその現在の活動の実行を完了する
。その結果、コントローラIMCはプロセツサレコード
P R2のP ROCE S S ORQ U E U
E l−I E A Dエン[−りをそのレコードの
CURRENTエントリへ移動させて、そして活動Δb
’Pzの実行が始まる。 その後、時間T、において、もう1つの活動△γP×は
活動AI)P2を呼ぶ。したがって、活動ΔbPzはA
C−r I V Eステーミルにあるので、活動レコー
ドARXP、のポインタはコント[1−ラIMOによっ
て活動レコードARbPzの活!111待ち行列内へ書
込まれる。 次に、時間15において、活動AI、、P2は活動△、
P3へINTERPROCESS○RNEX丁命令を実
行する。その結果、コント1」−ラ■MCは活動レコー
ド△Rb P、、のCA L L−E Rエントリを活
動シー1−ドARCP、のCΔL t−E RTシント
リへ動させる。したがって、活動レコードΔRcP、内
のポインタは、丁度あたかも活動A、P、が活動A、P
、によって直接呼出されたかのにうである。 CA L L E RJ:ントリの上記の移動のiIl
′I架として、活動AbPzは活動ΔCPJからど/υ
なパラメータも受取らないであろう。その代わり、それ
らのパラメータは直接活動△。P、へ送られる。 そl、T、INTERPROCESSORNLX]−命
令の実行にJ:つて、活動AI、 ’P z Gtイの
活動の(q加的な呼出子によって自由に山実行されるこ
とができる。したがって、時間t5において、コントロ
ーラIMCは活動レコード△RbP、、の△CT[V[
TY QLJEUE 1−IEAD■ントリをその活動
レコードのCA L L E RIントリ内へ移動させ
て、それはその新しい吐出子のために活動△bP2を再
実行づるようにブ+:+1ツリ1〕2へ通知する。 時間t、においで、プロヒラ瞥すpHは前に実行してい
た活動の実行を完了して、そして−てれは1つのINT
ERPROCESSORRE丁URN命令を実行する。 その結果、コントローラIMfjま活動レコードARc
P、のポインタをプロセッサレコードPR,のPROC
ESSORQUEUE 1−IEADエントリからCI
JRRENTエントリへ移動さμる。次に、プロセッサ
Paは括*Ac PGの実行を開始する。 時間[7にお(力る活動A、P、の完了によって、プロ
セッサP、は1つのI N T E Rl” ROCE
5SORRETURN命令またはもう1つのlN1−
ERPROCESSORNEX−r命令のいずれかを実
行ヅ゛るオプションを有Jる。第6図にrJ3いて、[
NTERPROCESSORNEXT命令は活動A、P
、へ実行される。その結末、コントローラIMCは活動
レコード△R,,P3のCA L L E Rエントリ
を活動レコードΔRd、 l) 、lのCALLERエ
ントリへ移動さ1iる。また、プロセッサP4はビジー
ではないので、プロレッリレコードPR,のCU RR
E N T−Tン「・りはコントl」−ラIMCによっ
て活動レーコードARべ1)、のポインタとともにロー
ドされて、プロセッサP4は活動A C1P 4の実行
を開始するように通知される。 時間T8において、ブ[1セツリP、は活動△dP、の
実行を完了する。そして、プロしツリ[〕4は INT
ERPROCESSORlで LE −1’ Lノドく
N命令またはI N l−E RP ROCF S S
ORN EXT命令のいずれかを実行りるAブシ:1
ンをイi覆る。第6図において、プロセッサP4+沫I
N T ERPROCESSQRRETURN命令を
実行する。 I N T E RP ROCE S S ORRE
T L、I RNによって、コント・ローラ(MOは活
動レコード△R,lP4のCΔLLERエントリをプ(
コレツリレコードPR,のブロセツザ待ち行列内へ[1
−ドづる。その後に、時間t9において、ブ]]F?ツ
リー1つ1は以前実行していた活動の実行を完了して、
それは時間[2において以前中止し1=活WJ)△QP
1の実行を再開(る。 活動A、PIの実行の再開は可能である。なぎならば、
その活動が待機していたCALLED活動A。P2から
のパラメータは11.1間t8において利用可能であっ
たからである。しかし、上記のことから、それらのパラ
メータは単にCA L L [E D活動AIP2から
来たのではないことが明らかである。そうではなくて、
それらは3つの活動△b1〕2.Δc P a + 6
>よびA、(P、のシーケンシャルな実行の結果であっ
た。 しかし、INTERPROCESSORNEX]−命令
の動作によって、このシーケンシャルな実行はり−へて
完全に活1FIJA、>P、から隠された。 したがって、活動△。Plと他の活動A、P、とA、1
llP4どのリンケージは大きく簡略化さ4′Iだ。 さらに、活動△b P2とACPJは活動A、(P・か
ら活動AQ+)、へ送られるパラメータのように再実行
される必要がなかったので、そのパラメータの送りは非
常に迅速に起こる。 ここで、複数のプロセッサp、、p2.・・・Pnが複
数のプロヒッザレコード、活動し−1−ド、おにびシェ
アされたメモ98M内のパラメータをアクセスして変え
るもう1つのシステムを図解している第7図を参照づ−
べきである。このシステムは、主にファイルアクヒスコ
ン1−〇−ラ20を含んでいる点において上述の第1図
のシステムと異なっている。そのコントローラ20は、
従来のメモリ読出しとメモリ書込みコマンドにJ、って
直接レコードをアクセスして変えることをブ111?ツ
サに認める。 りなわら、第7図のシステムにお1プるシー1−ドは従
来のメモリ内にストアされ、それらは従来の非インプリ
ジエントメモリコン1−ローラMCを介してアクセスさ
れ、そして第7図のシステムのプロセッサは1ワードの
メモリ読出しとメモリU!込みのコマンドのシーケンス
を直接非インプリジエントメモリコントローラMCへ送
ることによってIN”r’ERPROcEssORt?
I令を実行する。 しかし、いずれかのブロセッ1すがシェアされたメモ9
8M内のレコードを続出すかまた14由込むために非イ
ンテリジエン1−メモリコントlコーラへそのようなコ
マンドを送る前に、プ[]レツザはファイルアクセスコ
ントローラ20からそのようにJることについての認可
を受取らなりればならない。 第8図はファイルアクセス−コントローラ20の1つの
好ましい実施例の詳細を示している。それは21−1か
ら21〜nの複数のn″個のフリップフロップを含んで
いる。1つの実施例において、各7リツプフロツブはシ
ェアされたメモ98M内の1つのレコードに対応してい
る。すなわら、各フリップフロップは1つのプロセッサ
レコードまたは1つの活動レコードに対応している。こ
の代わりに、設計の選択によって、各フリップフロップ
は1つのプロセッサレコードとその1つのプロセッサレ
コードに関して対応する活動レコードのづべてと対応す
る。 最初に、づ−べてのノリツブフロップはリレットされて
いる。次に、1つのプロセッサがいずかのレニ1−ドを
アクセスすることが許される前に、それがアクセスしに
うと望んでいるレコードに対応゛するものが現在リセッ
トされでいるかどうかを確認するために、まずそれらの
フリップフロップに間合わせしなければならない。その
目的のために、そのリクエストしているプロセッサは、
バスを通しでコントローラ内のモジュール22ヘメツセ
ージを送る。都合良くは、モジコール22はマイクロプ
ロセッサである。 モジコール22へ送られるそのメツセージはリクエスト
()ているプロセッサを識別し、まl、=アクセスがシ
ークされているずべてのしT1−ドを識別する。たとえ
ば、4つのプロロツリーレコードP Rユ、PRb 、
PRC、およびPR,iとづべての対応する活動レコー
ドはそのメツセージ内の4つのエンコードされたフィー
ルドFユ、Fb、I”。。 およびF、ににって識別され得る。 メツレージを受取って、七ジュール22(まそれを内部
バス23を介しCレジスタ24へ送る。そこから、フィ
ールドF。、t’:b、、F、、おJ、びFdがそれぞ
れマルチプレクサ25a 、25b 、25C1および
25dの制御入力端末へ送られる。また、各マルチプレ
クサは21− ’Iから21−11のノリツブフロップ
のづべてのQ出力へ接続されたそのデータ入力端末を有
している。 従って、レジスタ24のフィールドFQ は、マルチプ
レクサ25aの出力ヘゲートされるフィールドヒケに対
応した1つのフリップフロップのご出力を生じる。同様
に、レジスタ24のフィールドFbはマルチプレクサ2
51)の出力ヘグートされるそのフィールドに対応した
1つのノリツブフロップの0出力を生じ、他のフィール
ドも同様である。それらのずべてのΦ出ノ゛ノ1よ次に
ANDゲー1へ26ににつて1つにANDされ、そして
、その結果はそれが調べらねるモジュール22へ送り返
される。 ANDゲート26からの信号がロジック1であるとき、
モジュール22はバスを介してメツセージを送って、ぞ
のリクエストしているブロセッ1すに識別されたレコー
ドの内容を変えることを認可りる。内部バス23はリク
エストしているプロセッサの識別を調べるための手段を
与え、そしてこのメツセージはそこへ送られる。 まIζ、ANDゲート26からの信号が1であるとき、
モジュール22は21−1から21−nのフリップフロ
ップのづべてに単一の夕ロックバルスを送る。それらの
フリップフロップ(よJKフリップフロップであって、
それらのJ入力に話動的信号を有しているものはレジス
タ24内のに〇。 Fb 、 F。、および「べのフィールドににって制御
される。したがって、フィールドF。、Fb。 FC,およびF〆に対応するそれらのソリツブフロップ
はづべて単一のクロックパルスに応答してセットされる
。 より具体的には、レジスタ2/l内のF、 、 Fb。 Fc+およびF4のフィールド(よそれぞれデコーダ2
7a 、27+)、270 、および27dへ送られる
。それらのデコーダの各々は複数の出力信号を発生ずる
が、一時にはそれらの信号のただ1つのみが高レベルに
なる。高レベルになるイの出力信号はデコーダがレジス
タ2/Iから受取るご1−ドと対応覆る。 言い換えれば、デコーダ27aの第1の出力はレジスタ
24内のフィールドF4 がバイナリ1に等しいとぎに
高レベルになり、1=1−ダ27aの第2の出力はレジ
スタ24内のフィールドFqがバイナリ2であるときに
高レベルになり、」メ下問様である。また、デーj−ダ
27a 、271)、27C2および27dの第1の出
力はVIR[ED−OR様式でづべてか1つに接続され
ている。したがって、レジスタ24内のフィーJl/ト
FQ 、 F6 。 F c、またはF、のいずねかかバイナリ1に等しいと
き、それ(まノリツブフロップ21−1へ送られる。同
様に、デコーダ27a 、2711.27c 。 および27dの第2の出力はW r RE D −OR
様式で1つに接続され又さjす、以下同様である。 ここで、モジュール22はFlからF、までのフィール
ドによって特定される梗々のレコードをアクセスするプ
ロセッサからのりクエストを受取るが、ゲート26の出
力は対応りるフリップフl」ツブの少なくとも1がヒツ
トされていることを示−10・であると仮定しよう。そ
の場合、モジコール22はレジスタ24内の内容を先入
先出(F I FO)待ち行列28内ヘロードし、それ
はモジコ、−ル22の内部のカウンタに1を加える。 次に、いくつかのレコードと間合わせりることを以前に
認可されたブ[1t?ツ°リ−の1つがそのタスクを完
了したと仮定しよう。この場合、そのプロセッサ(ま問
合わせを終了したし:1−ドを示すメッセージをモジュ
ール22へ送らなt〕ればならない。 好ましくは、それらのレコードはそのメツレージ内にお
いて複数のエンコードされたフィールドによって識別さ
れる。 そのメツセージは次にモジコール22によってレジスタ
29へ送られる。そこから、間合わされたレコードの数
を含むフィールドはそれぞれのデ′コーグへ送られる。 たとえば、4つのデコーダ30a 、30b 、30c
、および30(1は、レジスタ29内のメツセージが
4つのエンコードされたフィールドFへ′、Fし−・F
C・おJ゛ひ[d−を含むときに与えられる。 デコーダ30aから30dのりべてはWIRFD−OR
様式で1つに接続されたそれらの第1の出力を有してお
り、またそれらはフリツブフ]:1ツブ21−1のに入
力へも接続されでいる。したがって、レジスタ29内の
4つのフィールドのいずれかがバイナリ1を含んでいれ
ば、フリップフClツブ21−1はすべてのフリップフ
ロップがロックされているときにリヒツ1−される。 同様に、デコーダ30a−30dの第2の出ノJはすべ
てが1つに接続されており、それらはフリップフロップ
21−2のに人力へ接続されており、以下同様である。 しlζかって、間合わされた17コードに対応するノリ
ツブフロップをリセ・ソ卜するために、モジュール22
はレジスタ29をロードした後に単一のパルスににって
づ−べてのフリツプフ[1ツブを単にクロックJるたけ
Cある。 次に、モジュール22はどれたりの数のエン1−りがF
I FO28内にあるかを確認Jるためにその内筒’
r 、カウンタを調べる。もしその力・ンンl−が0で
なければ、七ジュール22は待ち行列二[ントリ1を一
時にレジスタ24内へ移づ。そのにうな各移動の後に、
1ステー1〜にあるかどうかを確認覆るためにANDグ
ー1−26の出力を調べる。 ANDゲート26が1ステートにあるどき、モジュール
22(Jレジスタ24のリクエスタ部分をバス23上に
続出して、リクエストシたレコードを分修正してもよい
ことを示すメッレージをそのレジスタへ送る。また、フ
リップノ1:」ツブ20−1から21−nのづべてはモ
ジコール22によってり1−のパルスでクロックされ、
そのパルス【まデコーダ27aから27dの出力によっ
て指Fl+δれるJ:うにフリップフロップをヒツトi
jる。さらに、モジ−トール22の内部のカウンタは1
によってデクリメントされる。 これとは逆に、ANDゲート2(3の出力か0ステート
にあれば、モジュール22(ユレジスタ24の内容をP
IF028内zXi1+に[1−ドしil:、iす1.
fIプである。第8図において、6木の破線の相は、上
述の動作が起こるように、モジュール22によってそれ
ぞれの制御信号が送られるそれぞれの導線を表わしてい
る。具体的には、り[1ンクバルスはワードをF I
FO28内へロード覆るために導線△で送られ、クロッ
クパルスはli= I F 028からのワードをアン
ロードづるために導線Bで送られる。 また、制御信@1まFIFO28またはバス23からの
レジスタ24への入力データを選択刀るために導線Eに
にって送られ、クロックパルスはその選択された入力デ
ータをレジスタ24内l\1]−卜するために導IFに
J:って送られる。さらに、クロックパルスはノリツブ
フロップ21−1から21−nをクロックづるために導
線しによって送られ、ざらにり[]ツクパルスはレジス
タ2つをロード覆るために導線MにJ、つ′C送られる
。 上述のファイルアクセスコン1〜ローラ20の1つの特
徴は、シェアされたメモリ内の種々のレコードを同時に
アクヒスして変えるJ、うにブ[ルッザP 1. P
2 、・・・P、のいくつかを能動化することである。 この場合の唯一の制限は、2つのプロセッサが同一のレ
コードを変えることはでさないことである。したがって
、たとえば、プロレソリー1〕2がレコード2.12.
3’1 、および/1. Oを変えていてプロセッサP
3がレコード3,11,20、J3よび32を変えてい
ても、プロセッサP1はレコード1,15.30’、お
よび56を同5.+iに変えることかできる。第7図の
システムのもう1つの特徴はその柔軟性である。一度ブ
1コセツサが特定のレコードを間合わして変えることを
ファイルアクセスコントローラ20から認可されれば、
それはメモリ読出しやメモリ出込みのコマンドのとのに
うなシーケンスによっても行なうことができる。したが
って、最初に1リコードを読出づ“ことがCき、次にプ
ロセッサは読出したレコードの内容に基づいて1つの活
動またはもう1つの活動を呼出づことができる。これは
CON D I −1−10N△L INTERPRO
cI:5SOR’CALL命令を実行する。 CON D I T I ON A L I N T’
E Rl) ROCESSORCAL+−命令の有用
性の1つの例として、2つのプロセッサーが同じ活動を
実行することを仮定しよう。たとえば、両方のプロセッ
サーは高速i!i!動小数点の数学的活動を実行し得る
場合でアル。コ(7) 場合、C0NDITIONAI
−INT E RI) ROCE S S ORCΔL
l−命令を実行することによつτ、呼出子は最初にそ
れらの浮動小数点活動を実行する2つのプロセッサの活
動レコードを調べることができ、次に、それはとしらの
プロセッサが現在ビジーでなかったかに依存して1つの
プロセッサまたは他方のプ[II?ッIJ−内の活動を
呼出ゴことができる。 第7図のシステムのもう1つの9′:f徴は、プロセッ
サがシェアされたメモ98M内のレコードへアクセスす
ることができるスピー1〜である。制御ワードをファイ
ルアクセスコン+−ローラ20へ送るためにバスは1つ
のナイクルを必要とし、メッロージをレジスタ24へ送
るためには第2のサイクルが必要で、ANDゲート26
からのjスト条件が安定するのを待つために第3 q)
サイクルが必要で、さらにANDゲート2Gに基づい又
リクJ−スト・されlζレコードをアクセスづることを
認可Jるメツセージをそのリフニス)−L ”Uいるブ
lコ[ごツリーへ送り返すこととその対応するフリップ
フロップ21−1から2l−neロッ1〜りるり[コッ
クパルスを送るために第4のサイクルが必要である。(
〕たがって、たとえば100ナノ秒のサイクルu9問で
あれば、レコードのアクレスには400ナノ秒かかるだ
げである。 これで、本発明の種々の実施例が詳細に述べられlζ。 しかしながら、さらに多くの変化や一部変更が発明の本
質や精神から1+11れることなくこれらの詳細になさ
れ得る。したがっ゛C1本光本発明前記の詳細に限られ
るものではなくて添イ」され1.:!lj」−′(請求
の範囲ににって限定されることを理解づべきである。
ントメモリコントローラIMCに接続されてJ3す、コ
ントローラI ’M CtヱシエアされたメモリSMに
接続されている。コントローラIMOは好ましくは上記
のタイプのプログラム可能なコンピュータであって、メ
モリSMはどのようなタイプの読出し、/出込みメモリ
でもよい。 メモリSMはそれらのプロセッサ“の各々のために1つ
の独立したプロセツリーレコー1rを含/υでおり、そ
のような各レコードはここでI)R、とじで示されてい
る。まIζ、メモリS M tJそれらのプロセッサに
お【プるプロセラ1ト内活動の各々のために独立の活動
レコードを含/υでおり、くのような各レコードはAR
X p:で示されている。さらに、メモリCMはプロセ
ッサ間命令を介し11つのプロセッサからもう1つのプ
ロヒツザヘシLアされて送られるパラメータを含んでい
る。 各プロセッサーレコードP R、内に含まれているのは
、プロセッサP1が現在成る活動を実iうしていてB
U S Y T”あるかまたはN0I−BUSYのいず
れであるかを示すフラグである。ブ【」ヒツリーレコー
ドP R、は、プロセッサP1がB U S Yのとき
にそのプロセッサが実行している現在のブ【」レツザ内
活動を指し示すCU RRE N 1−エン1〜りをも
含んでいる。 プロセッサレコードPR,はさらにP)犬OCItS
S ORQ IJ E U E l−I E A Dエ
ンl−リ(PQQ10) と RRO(jJssORQ
UEUE T Δ ILエントリ(1〕Q T )を含
んでいる。これらの2つのエントリはそれぞれブロヒッ
ナP1が実行覆べき異なった種類のプロセッサ内活動の
ために活動レコードの持ら行列の先端と後傾を指し示づ
。 7なわも、同じ種類の活動のポインタ(ま、たとえその
活動が数回呼ばれるどしてもただ一度だけそのプロセッ
サ持ち行列内に入れられる。ブ1]セッザレコードPR
,は、89姐上の選択として、上述のものに加えて他の
エントリをも含んでもよい。 活動レコードA、RXPlは対応する活動がDORMA
NTまたは△CTIVEあるい【よS U S 1)U
NDEDであるときを示づ゛フラグの組を含んでいる。 活動は、プロしツサがその活動を大f−jりるために実
際に使用されているとぎへC丁IVEである。活動が完
了の途中まで実行してもう1つのプロセッサにおけるし
う1つの活動の結果を持′つ間に停止しているとぎ、活
動はΔCTIVEに留まるが5USP)ENDEDステ
ートにある。そのにうな結果はINTERPROCES
SORlN5TRUCTIONSを介してリクニLスト
されて得られる。他のづべての場合においτ、活動はD
ORMANTである。 活動レー】−ドARxP+は、最初に活動Δ、(〕、を
呼ぶべき活動の活動レコードのポインタであるCALL
ERエントリをも含む。活動ΔyP1の後続のいずれの
呼出子も、その後に(よ活動レコード内のAC丁IV[
王Y Q U E U E T A [Lエントリ(A
QT)どAC−rIVITY (:)UEUE HEA
Dエントリ(A Q +−1)が続く。 特定的に君えば、活動Δy1)1の後続の呼出子のポイ
ンタはその活動の待ち行列内に置かれる。 エン1〜すA Q +−1は活動AX P、の第2の呼
出子の活動レコードを指し示し、エントリ△Q1−は活
動ΔxP+の最後の呼出子の活動レコードを指し示す。 活動待ち行列またはプロセッサ待ち行列のいずれかの中
間エントリは、活動の種々の呼出子の活動レコード内の
N E X T I N Q U E tノE丁ントリ
(NIQ>によって1つにリンクされる。 また、活動レコードAR,P、は、I N T E R
P’ROCESSORlN5T’RUCTIONSを介
して、2つの活動間で送られるパラメータのポインタを
含むI) A RAM E T’ E Rエントリ(P
ARAM)をイ5している。たとえば、活動△x Pl
が活動Ay PJ を呼ぶどぎ、次に活動レコードAR
xP+のPARAMエントリは活ll1IIA7P、j
がそれに基づいて動作すべきシェアされたメモ98M内
のパラメータを指し示す。逆に、活動A/(〕jが完了
したとき、活動レコードAR,P、内のPΔRAMエン
トリは活動Δ/]〕、にJ、って活動△、p、へ送られ
つつあるシェアされたメモリ内のパラメータを指し示す
。 第1図のシステムに関するプロセッサレコードと活動レ
コードの完全なヒツトの1つの例が第2図に示されてい
る。この例において、PR,からPR,、までの11個
のプロロッリーレ:1−ドがあり、それらはそれぞれP
lから1〕1、までの11個の物理的に独立なプロセッ
サーを表わしている。さらにこの例において、各々のプ
ロロツリーが実行する活動の数はプロセンナごとにおい
て異なっている。 第2図はプロセッサ1が5つのプLルッナ内活動を実行
でることを示してJ3つ、これらの活動のための上述の
ポインタはそれぞれ八R,I−’、がらAR5P、まで
の活動レコード内にある。同様に、第2図はプロセッサ
2が11個のブロセッナ内活動を実行し、プロセッサ3
が9つのプロセッサ内活動を実行し、プロセッサ4が3
つのプロセッサ内活動を実行することなどを示している
。また、これらの活動レコードとプロセッサレコードの
各々はどの活動がどれを呼んでいるかを追跡するそれら
自身のポインタを有しており、種々のプロセンナがそれ
ぞれのプロセッサ内活動を実行する順序を決定する。 ここで、INTERPROCESSORCALL命令に
応答してコントーラfMcによって実行される動作の詳
細について考えよう。下記の表1はプロセラ(J−p
、内の活動△XP1がプロセラFjPj 内の活動△、
PJ を呼ぶ一般的な場合に関するそれらの動作を示し
ている。 (以下余白) 活動ΔXPj がDORMANTであってブ[Iヒッサ
P、がNOT BUSYであるとき、コントローラIM
Cは以下のタスクを実行づる。まり゛、ぞれは活動レコ
ードAR/P、7 内)AC−1−I VEフラグをセ
ット覆ることによって活動A/1〕ヨ をACT[VE
にする。次に、活動レコードAR。 Plのポインタを活動シー1−ドAR7PJ のCΔL
LERエントリ内ヘロードする。また、活動レコードA
R/PJ のポインタはブロセッナレコードPRヨのC
’URRENTエントリ内ヘロードされる。次に、プロ
セッサレコードPRJのためのBUSYフラグがセット
されて、活動AXPJ の実行を開始させるように通知
覆るメツセージがプロセッサPj に送られる。 しかし、活動ΔχPJBND ORM A N Tであ
っ(プロセッサP Jカr N T E RP ROC
FSS ORCALLのときにBUSYであれば、その
とぎコントローラIMOは以下のように動作する。 まず、それは活動レコードΔR,P、内のへC丁IME
フラグをセットする。次にそれは活動レコード△RxP
、のポインタを活動レコードAR,yPj のCALL
ER位置内へロード夛る。次に、それは活動レコードA
R,PJ のポインタをブロセッ゛リーレコードPRJ
の待ら行列内へロードする。 この後者の動作は、プロセッサレコードPRJのPRO
CESSORQUEUE TAII−によって指し示さ
れる活動レコードのNEXl” INQUEUEエント
リ内への活動し:1−ドARンPJのポインタのローデ
ィングを伴い、次に活動レコード△R,P、をも指し示
JようにプロセッサレコードPR1のPROCESSO
RQU[:UETAILエントリを変える。 最後に、活動△y PJ lfi I N −l−1v
旧)ROCESSORCALLのとぎにA、C−1−1
\/Eであれば、イのときインテリジエン1−メtリコ
ントローラは活動レコードΔRXl)iのポインタを活
動レコード△Ry P Jの持ち行列内にロードづる。 これは活動1/D−ドΔR/P、’ (7)AC−r
I V I T ”1/QUEUE TAILにJ:つ
て指し示される活動レコードのNEXT IN QUI
=、UEエン[−リ内への活動レコードΔRx p:の
ポインタのローディングを伴い、次に活動レコードAR
,P、を指し示す活動レコード△RγPJ 内のACT
’ I[’TY QUEUE TA[1,−を変える。 上記動作は単にCA L、 1.、 E D活動レコー
ドとCALLEDプロセッサレコードに影響を及ぼすだ
けであることに注目すべきである。しかし、これに加え
て種々の動作がCALljNG活動レコードどCALL
INGプロヒッナレ丁」−ドにおいてら実行されなけれ
ばならない。これらの動作は以下のようである。 CΔLLINGプロLンサレコードP R、内の持ち行
列がNOT E M P −r Yであるとき、1つの
エントリがその侍し行列から取り出されてブ[1ヒツザ
レコードPR,のCU RRE N ’Tエン1−り内
ヘロードされる。このアンロープインク動作はプロセッ
サレコードPR,のP ROCE S S ORQUE
UE トIEADエントリをプ[]レッIナレコードP
R,のCU RRE N−rエンド・り内へ移動させる
ことを伴い、次にブロレッナレ]−ドl) R。 内のl) ROCE S S ORQ U E U E
11 E△Dによって指し示される活動レコードから
のNEX丁 IN QUEUEエントりがブロヒツリレ
コードP RiのP ROCE S S ORQ U
E LJ El−IE△1〕内ヘロードされる。また、
=1ン1〜ローラI M Cににつてメツセージがプロ
レツ1月〕1へ送られ、それはプロセツリーレコード1
)R1内のCURRにN Tエン[・りににつて指し示
される新しい活動をそのプロセッサに知らせる。 一方、プロセッサレコードPR,内の持ち行列がEMP
TYであるどき、そのプロしツリーレーコード内のフラ
グはプロセッサ1〕1がNO”l−BusYであること
を示づようにLツトされる。また、そのJ:うな条件に
おいて、プロロツリ゛レコードPR1内のCU RRE
N Tエントリは空白値にレットされる。さらに、上
記とこの場合の両方において、たとえ呼出し活動が中1
された状態にあっても、その呼出し活動レコード△Ry
I)、内の△CTIVEフラグはセットされたままであ
ることを注目すべきである。 次に、プロセッサの1つからのl N T IE RP
ROCESSORRETURN命令に応答してコント
ローラIMCにJ:つて実行される動作について考えJ
:う。特定的に、ブ[1セツリーP、内の活動△7PJ
がプロセッサP1内の活動△xP・へ戻る場合を考えよ
う。これらの動作は以下の表2に示されている。 (以下余白〉 RE T U REが起こったときに活動し」−ドΔR
,P、i の待ち行列がNo−r−EMI〕丁Yであれ
ば、そのときコントローラIMCは以下の動作を実行づ
る。まず、1つのエントリが活動レコード△R7PJの
持ち行列から取出される。これは、活動レコードARy
PJノAc王I V I 1−Y QU E U E
l−I E A D内のポインタを活Oル−」−ドA
R/PJのCALLER位置内へ移動さ迫ることによっ
て達成され、そしτ活動レコードA RyP、の△CT
IVITY QtJEUE HEADによって指し示さ
れる活動レコードのNEXTIN Q U E IJ
[Eエントリを活動レコードA Ry PJの△CT’
I V I T Y Q U E U E トI E
A D内へ移動さゼる。その後に、その活動の新しい
呼出子のために活WJAXPJ を再実行り”るために
メツセージがプロセッサPJ に送られる1゜一方、R
ETURN命令がコントローラIMCへ送られるときに
活動△’/PJ の待ち行列がEMPTYであるがプロ
セッサPjの侍ら行夕lJ h< N OT EMPT
Yであるならば、そのときそのコントローラは以下の動
作を実行づ゛る。まず、活動レコードΔR2PJ 内の
フラグはD ORM A N T’ステートを示すよう
に変えられる。次に、1つのエントリがプロセッサレコ
ードPRj の持ち行列から取出されて、そのプロセッ
サレコード内のCURRENTエントリはその持ち行列
から取出されるそのエントリとともに更新される。次に
、メツセージがプロセッサPjに送られて、それはプロ
セッサレコードPR,内のCU RRE N Tエント
リによって指し示されている新しい活動レコードをプロ
セッサに知らせる。 最後に、RETURN命令が=Jン1〜[」−ラIMC
へ送られるときに活動レコードΔRyP、の待ち行列と
プロセッサレコードI)I’<、iの持ら行列がどちら
もE M P T yであれば、そのときプロセッサP
j に関して現在実行すべき他の活動は存在しない。し
たがって、プロセッサレコードP Rj 内のフラグは
プロセッサP、がNOT’ BUSYであることを示す
ようにセットされ、ぞしてプロセッサレコードPRJ内
のCLJRRENTエントリが空白ステートにセットさ
れる。 RE T U RN命令に関づる上記のづべての動作は
CALLED活動レコードAしRy P J とCAI
−LEDプロヒッザレコードPR,において実行される
。さらに、以下の動作はそのRE ’1− U RN[
相]令に応答してCALLING活動レコード△RしP
、とC△ししINGプロセッサレコー1:P R。 において実行される。 CALLINGプロセッサレコードPR,内のフラグが
プロセッサP1がBUSYであることを示していれば、
そのときインテリジェントメモリ二】ントローラは活動
レコードARxP、のポインタをプロセッリーレコード
]〕R1の待ち行列内に■]−ドする。これは、プロセ
ッサレコードPRIの待ら行列が空でないとぎに、プロ
ヒッリーレコードPR,内のP ROCE S S O
RQ U E 1.J E rAILによって指し示さ
れる活動し]−ドのNEXT IN QUEUEエント
リ内へ活動レコードΔRx P +のポインタを[二1
−ドすることによって、ま1.:P ROCE S S
ORQ U E tJ E T A1L丁ントリを活
動レコードA R,X l) +を指し示すように変え
ることによって実行される。またそれは、ブロセッυ−
レコードPR,の持ら行列が空であるときに、プ[1t
?ッザレコードPR,のPROCE S S ORQ
U E U E l−I EΔDとPROCESSOR
QUEUE rAIL−内へ’(古動レコード△RxP
、のポインタを[1−ドすることによって達成される。 しかし、もしプロロツ゛す“PlがN OT’ F:3
U SYであれば、そのとき活動レコードAR,P、
のポインタはプロセッサレコード]〕R1のCU RR
E N 1−エントリ内ヘロードされ、プ1コレツリレ
コードP R、のフラグはプロセッサ1〕、が13US
Yであることを示すようにセットざ、れる。次に、メツ
セージがプロセッサP1に送られて、ブ[1セッサレコ
ードPR,内の新しいCU RR[三N−1−エントリ
によって示されている実行されるべき新しい活動をその
プロセッサに通知する。 ここで、1つのプロセッサからのINTERPROCE
SSORNEXT命令に応答してコン1−ローラーMC
によつC実行される動作について考えよう。特定的に、
プロセッサP 内の活動Δ/P がプロヒツザP、内の
活動へzPhへのNEXT命令を実行づ゛る一般的な場
合に行4丁ねれる動作について考えよう。これらのり」
作(:J、以下の表3に示されている。 (以−ト余白) そのNEXT命令に応答して活動レコードΔR,yPノ
とプロセッサレコードPR,l におい(実行される
動作は、上述のRE T U RN命令に応答しl活動
レコード△Ry’ P > とプロセッサレコードPJ
において実行される動作と同じである。しかし、N E
X 1”命令に応答して活動レコードA RンP k
とプロセッサレコードPR,において実行される動作は
以下のようである。活動△zPiが八〇T I VEで
あるとぎ、活動レコード△RxP。 のポインタは活動レコード△R,P、の活動待ち行列内
へロードされる。これは、活動し11−ド△Rzの活動
待ち行列内へ活動レコード△Ry)’JのCALLER
エントリを移1FIIさVることによって達成される。 しかし、NEXT命令が二IントローラIMOへ送られ
たときに活動△2P、がDORMANTでかつプロセッ
ナP、がBUSYであれば、そのときそのコント[1−
ラは以下の動作を実行づる。まず、活動レコードAR,
P、のポインタはブロレッ→)−レコードPR,の待ち
行列内へロードされる。 次に、活動レコード△[で7PJ のOA l−L E
Rエントリ(それは活動レコードARxP+のポイン
タ)は活動レコードARzPiのCA L L E R
エントリへ移動さμられる。次に、活動レコードARz
pi内のフラグは△CT’fEスデーI・にセットさ
れる。 一方、NEXT命令がインテリジェントメモリコントロ
ーラへ送られたときにブロセッ4す1〕、がNOT B
USYであれば、そのときそのコントローラは以下の動
作を実行する。、活動レコードAR,P、のポインタは
プロセンナレコードl) R。 のCURRENTエントリ内へ臼−ドされる。また、活
動レコード△R、Pj のCΔL−IER:hントリ(
それは活動レコード△R,XPi のポインタ)は、活
動レコード△Rz piのCA i L LE Rエン
ド・り内ヘロードされる。次に、活動レコードへR2P
、内のフラグはACT I VEスデー1−にレットさ
れる。 ここで、第3図が参照されるべきぐある。それは、0A
LLとそれに対応するR E T U i< N動作の
間にプロセッサレコードと活動レコードに起こる上)ホ
の変化の典型的なシーケンスを図解している。そのシー
ケンスは瞬間[、からt5の間に起こり、以下の表4は
各瞬間に起こる出来事の概略を示している。 (以ト余白) この例において、2つのプロセッサPyとPXが存在し
、それらはそれぞれプ[Jセラ4)−レコードPRxと
PRyを有している。最初、プロセッサPxは、活動レ
コードARbPxを有する活動△9Pyを実行していて
BUSYである。!、lζ、活動レコード△RQ PX
を有するもう1つの活動△八P、は実行されるべぎPR
y、プロセッサ持し行列内で待機しており、プロセッサ
P/は活動AcP/を実行していてBUSYである。こ
れらの初期条件(j第3図において参i11番号1を右
するポインタによって示されている。 特に、プo 吐ツサレコードPRx内の参照番号1のC
U RRE N T 、1ニントリは、プロセッサPy
が最初に活動AI、Pxを大行1)ていることを示ずに
“うに活動レコードΔRbP>、を指し示づ。また、プ
ロセッサレコードP Rx内の参照番号1で示されたP
ROCE S S ORo U E U E H[E
A DエントリとP ROCE S S ORQ U
E U E TAILエンドIJ t、t 、活動A
、、P、が最初にブロセッーナレコードPR,の待ら行
列内にあることを示すように活動レコードAR,PXを
指し示づ。 さらに、プロセッサレコードPR7の参+10番号1で
示されたCURRENTエントりは最初にプロセッサP
が活動ΔぺPXを実行していることχ を示ジように活動レコードARg+)/を指し示す。 また、プロセッサレコードPRyの参照番号1で示され
たP ROCE S S ORQ U E L、I E
l−I EADエントリは、他のいかなる活動らブに
1セッサPχにおいて実行されるよう袖機していないこ
とを示Iにうに空白値を有する。 その後、参照番号2を右Jるレボ1−ド内のポインタに
J二つて示されているように、活動△bPyが活動Ac
Pyを呼ぶ。その結果、活動レボ1−ドARcP/内の
CALLERエン1−りは、それが活動し:1−ドAR
bPy、を指し示Jように書込まれて、ブロセツザレコ
ードPR,内のl) ROCES S ORQ U E
U E HE A D ]: ントリトP ROCE
SSORQUEUE T△11−エントリは、それらが
活動レコードA Rc Pyを指し示すように書込まれ
る。また、活動A1. P x G、tCA l−L
E Rであったので、プロセッサPx1..tその活動
の実行を中止して、それがその待ら行列から得るもう1
つの活動の実行を開始づ−る。()たがって、プロセッ
サレコードPRx内のCU RI犬[ヨN −r 1ン
トリは活動レコードARaP、を指し示すように書込ま
れ、プロセッサレコードPRXのPROCE S S
ORQ tJ E U E l−I EΔ[)エンド・
りは空白(直に書込まれる。 その後、参照番号3を右Jるレコードエンし・りににっ
て示されているように、プロセッサPtよ活動A、t
PXの実行を完了し、そしてそれはその待ち行列内のも
う1つの活動の実行を開始する。 したがって、ブロセッ1ルコード1)Py内のCI、J
RRE N Tエントリは活動ARcP7を指し示づよ
うに書込まれ、プロセッサレコードPRyのPROCE
SSORQUEUE ト1 [三 △ D エ ン 1
〜りは空白値に書込まれる。 その後に、参照番号4を有するレコードエントリによっ
て示されているように、プa tツリ1)/は活動△c
Pyの実行を完了づる。従って、活動Ad)、を呼出し
た活動が実行を11j聞づることができ、そして活動レ
コードARbPyのポインタはプロセッサレコードPR
XのP ROClESSORQ U E U E HE
A D エンI−!J 、!: P ROCESSO
RQUEUE T△I I−、、Iニントリ内へロード
される。また、プロセッサP/は自由にもう1つの活動
を実行することができるが、そのプロしツリー持ち行列
はE M P T’ Yであるので、プD ロッサレコ
ードPR7のCU RRE N−1−ポインタは空白値
に書込まれる。 プロセッサP、は、活動が完了づるがまたはもう1つの
活動を呼ぶときまで活動△ヶPxの実行を続ける。それ
は1sのときに起こる。次に、プロセッサレコードP
RxのプC] :l?ツリ゛待ち行列によって活動レコ
ードARbPxが指し示されるので、プロセッサP、は
活動AI、Pxの実行を再開する。 ここで第4図と第5図を参照して、いくっがのC△1L
動作とRE 1− U RN動作の間にプロセッサレコ
ードと活動レコードに起こる変化のシーケンスのもう1
つの例が述べられる。この例にJ3いて、プロセッサP
xが実行する活動AIPXは3回呼出され、プロセッサ
−P7が実行するもう1つの活動Δ2PXは2回呼出さ
れる。 この呼出しのりべてはプロセッサPxがもう1つの活動
を実行していてビジーのとぎに起こり11.いア、ッ、
、−2っ” l−” P R9L’t !’、IJ L
/ J−1;AR,P、とAR2PX内の待ち行列は(
の呼出しが起口っでいる間にロードされる。その後に、
プロセッサP、はそれが実行し−Cいたタスクを終了し
て、次にそれはプロセッサレコードと活動レコードの待
ち行列内で指し示されている活動を実行する。以下の表
5は種々の出来事が起こるシーケンスを示している。 (以−ト余白) 第3図はブ[1セツナと活動レコードの侍ら行列がロー
ドされるシーケンスを図解しており、一方、第4図はそ
れらの持ち行列がアンロードされるシーケンスを図解1
)でいる。これらの両図において、参照番号1から11
をイjするポインタtよそれでねそれらの番号に対応し
たシーケンスの瞬間におけるプロセッサと活動のレコー
ド内の種々のエントリを示している。 第4図を見れば、瞬間1.−1.の間に、プロセッサレ
コードPRxのCURRENTエントリはプロはツリP
xが現在実行している括り)レコードを指し示し一〇い
る。しかし、t2の瞬間において、プロヒッリーP、内
の活動Δ。P、はブ[ルッザPx内の活動へ1P7、を
呼ぶ。その結果、活動レコード△R,PyのCΔLIF
R1,ン1〜りはそれが活動レコードAR,P、を指し
示すように書込まれ、プロセッサレコードPRyのPR
OCES S ORQ U E U E )−I EΔ
DとI−” ROCE 5SORQUEUE TAIL
の1−ントリはイれらが活動レコードAR,P、を指し
示Iにうに出込まれる。 その後に、瞬間T、において、プロレッナT2内の活動
△b[〕2はプロセツ→JPX内の活動△2P、を呼ぶ
。このCALLの結果、活動17コードAR2P、内の
CALLERエン)−リ(:L活動レコードA Rb’
P 2を指し示すように出込まれる。また、プロセッ
サレコードPRxのF) ROCE S SORQUE
UE TAILエンi−りは活動レコードAR2Pxを
指し示すにうに変えられて、活動レコードAR,Pxの
NEX−r’ IN QrUEUEエントリは活動レコ
ードAR2PXを指し示づように書込まれる。その後、
瞬間T、にJ5いて、プロセッサP3内の活動Δc P
a IJ、活動△lP8を呼ぶ。活動A、Pyのこの
CALLはプロレッザレコードPRXの持ち行列内へ活
動し」−ド△R5Pxを再ロードしないが、その代わり
活動レコードARcP、のポインタは活動レコード△R
+Pxの活動待ち行列内へ書込まれる。これは、活動レ
コードAR,PXのAC−1−IV[−rY QUEU
E HEADとACTIVI−1’Y QUEUET△
ILのエンl〜りを出込むことによって達成され、それ
らのエンし・りは活動レコード△R9P、を指し示J−
8 次に、瞬間t、においで、プロセラ1す1:I、内の活
動A P、は活動A2P、を呼ぶ。再び、活動レコード
AR2PXは既にブl:] L/ッサレコードPR8の
プロセッサ待ち行列内にあるので、活動レコードA R
a P 4のポインタは単に活動レコード△Rz Px
の活動待ち行列内ヘロードされる。これは活動1/1−
ドAR2P、 のAcT I V I TYQUEUE
HEADとACTIVITY QUEUE T△IL
のエントリをIf込むことに2しって達成され、それら
のエン1へりは活動し:]−ドARべP、を指し示す。 次に、−間[6のとぎ、プロ上ツリ1〕5内の活動Ae
Psは活動ATPXを呼、′S−0その結果、活動レコ
ードAR,P、は活動レコード△R,P。 の活動待ち行列内ヘロードされる。これは、活動レコー
ドAR1PxのACTIVITY QUEUE T/M
Lエントリを活動レコードAReP5を指()示すよう
に変えることにJ:って、また活動レコードAR,,P
aのNl三X−1’ IN QUEUEエントりをも活
動レコード△R,1つ、を指し示づように書込むことに
よつ”c’ 32成される。 ここで第5図に移って、ブロレツリーレコードPRX+
活動レコードΔRiPx、J>J:ひ△R21)、内の
待ち行列のアンローディングが述べられる。 第5図において、参照番号6をイJりるそれらのポイン
タは第4図における参照番号6を有Jるポインタと同じ
である。 瞬間t7において、プロセッサ−1〕。は瞬間t1から
[6において動作していた活動を完了づる。 そして、それはI N T E RP ROCE S
S ORRE T U RN 重合を実行する。それに
応答して、コン1−[1−ラIMOはブ[11セッリレ
−1−ドl)RX内の待ち行列から1つの活動レコード
を取出()て、プロヒッサレコードP Rxへその取出
された活動を通知する。この取出し動作はコン1−〇−
ラIMOを介してプ[1セツサレコードl) I< 、
内のI) R0CESSOR−Gl’UEIJE HE
ΔDエン1−りをそのプロセッサレコード内のCURR
ENTエントリへ移動さulまた活動レコード△R1P
xのNEXT IN QUEUEエントりをブロセ・
ンナレコードP[(6のP ROCF S S ORQ
U EUE HEADエントリへ移動さセることによ
って達成される。 その後に、瞬間t8において、プロセラ+’ P xは
活動△+Pxを完了づる。そして、それ(Jもう1つの
INTERPROCESSORRETURN命令を実行
する。そのRE王URN命令に応答して、コントローラ
IMCは活動レコード△R3P8の活動待ち行列から1
つの活動レコードを取出づ。そしてそれは、活動レコー
ド△R,I)X内のAC丁[V f T Y Q U
E U E ト][三△DエントリをそのレコードのC
A L 1.、、 IE Rエン[へりl\移動させる
ことににつて、また活動レコードΔR、P y のAC
TIVITY QLJEUE 1−ICADエントリ内
へ活動レコード△R,P、のNEXT IN QUEU
Eエントリを移動さUることによって達成する。次に、
プロセラ(〕−P7はそれがその活動の第2の呼出子の
ために活動△l[〕7、を再実行しな(プればならない
ことを通知される。 瞬間t9において、プロセッサ−Pxtよ再び活動Δ、
])Xの実行を完了J゛る。そして、そ4″lは11j
ひ1 つの l N T l三 RPROCI三 5S
ORIマ E −1−URN命令を実行する。それに応
答1. (、sントローラIMCは活動レコード△R,
PXの活動持ち行列からもう1つの活動1)=1−ドを
取出り。そして、そノ活動し−+−ドAR+ P>、
のACT IVITY QUEUE トIEADエン1
〜りをその活動のCΔLLERエントリ内へ移aノさせ
ることによって、また活動レコード△R,l)、の△C
T’ I V[T Y Q IJ E tJ E l−
I E A D I ント’J ’、y: ’2 白(
aにヒツトJることによって達成リ−る。次に、=)ン
トローラ[MOはその活動の第3の呼出子のために活動
活動A、PXを再実行覆るようにプロレツザP9へ通知
覆る。 その後に、瞬間tooにJ3いT 、プロヒツナP8は
活動△、Pxの実行を完了して、そ」2てそれは再び1
つのI N T E Rl) ROCE S S OR
RE T’ U RN命令を実行りる。これに応答し又
、:=1ントローラI M C);Lプロセン11レコ
ードPR,のプロしツサ待ち行列からもう1つの活動レ
ニコードを取出して、それは実行づ゛べぎ新しい活動を
プロヒツナP/に通知りる。この取出動作はプロセン(
ナレコードPRxのP ROC[’ S S○R(’)
U I三UE HEADエントリをそのし二1−ドの
0()RRE N 1エントリ内へ移動させることにJ
:つて、またプロしツリーレコードPRy内のPROC
ESS ORQ IJ E IJ E HE A Dエ
ン(・りを空白値に変えることによって達成される。 次に、瞬間1++におい又、プロセッサP、は活aAz
Pxの実行を完了りる。そして、それは再び1つのl
N T E RP ROCl三S S Of< RET
URN命令を実行づる。それに応答し−(、=」ント・
ローラIMCは活動レコードA R2P 、の活動待ち
行列から1つのエントリを取出して、その活動の第2の
呼出子のためi、:活動△、r〕、を再実行づるように
プロセッサPyへ通知覆る。この取出し動作は、活動レ
コードAR,,P、の△CTIVI T Y Q tJ
E U E HE A 01ントりをイの活動のCA
L L、 E Rエントリへ移動させることによって
、また活動し]−ドAR2PXのΔc −1−I VI
T Y Q U E U E トIEADエントリを
空白値にセットすることににつて達成される。 プロセッサPXが活動A2PXの実イラを完了した後ニ
、ツレG、U 再ヒ1−) (7) I N 1− E
RP ROCEs5ot閾 RETURN命令を実(
j′1Jる。そのどき、プロセッサP8が実行づべき他
の′rll!l1IIは存在しておらず、そしてコント
[1−ラI MC4よ単にブロヒッザレコードPRX内
にB U S 、Yフラグをリセットして、そのレコー
ド゛のCU RRE N T二+:ントリを空白1直に
セットづる。 上記の動作のシーケンスから、ブ1−ルッリ−1〕7が
活動△+PxとA z P xを実行しlζ順序はそれ
らの活動が呼ばれた順序と完全に異なったものく・あっ
たことがわかる。具体的には、それらの活動はΔ+ P
x + A2 PX +Δ+ Px + A2 Px
+およびAlPxの順序で呼出されたが、(れらの活動
が実行された順序はA、Px、A、P、、八〇PX、A
2PX、およびARPヶの順序であった。 言い換えれば、活動△+Pxlよその呼出子のそれぞれ
の1つに関して1回実行されて、イして活1JAzPx
はその呼出子のイれぞれの1つについて1回実行された
。そして、こされはそれらの活動が呼出された順序と関
係な(起こる。活動のそのような順序替えは重要であっ
て、なぜならば、でれはプロセッサが1つの活動の実行
からもう1つのものへ切換ねる回数を最小にリ−るから
である。 切換えが起こるlこぴに、その新しい活動に関づるコー
ドはその活動を実行1べきブロヒッリーのメモリ内へ読
込まれなければならない。まlζ、活動がそれに基づい
て実行づるデ′−夕のためにそのメモリ内においてスペ
ースが再割当されなりればならない。これらのリソース
割当動作は瞬間を消耗するものであって、しlζがって
それはシステムの全体的性能を低下させる。 ここで、fNTERPROC[三S S Of’?、N
EXT命令の動作を図解している第6図が参照さ(す
るべきである。この図において、以前の第3図ないし第
5図におけるJ:うに、参照番号1から9を有づるポイ
ンタは、それらの参照番号に対応する瞬間における活動
レコードとプ[]セセラリレコードのそれぞれのエント
リを示し−(いる。 以下の表6は、I駅路的な第6図で起こる出来事のシー
ケンスを示している。この1111iI8は、活動△O
P +がもう1つの活動A112を呼出して、次に活動
△しP2が活動Ac P、へNEXT命令を実行して、
次に活動ΔcP3が活動△、i P4へNE X T命
令を実行して、次に活動Δ4Pqが活動AI)P2まl
ζは△cPaへ再入づることなく直接A、P、へもどる
というシーケンスを示している。 (以下余白) 第6図を見れば、時間!、においてブl」レツサP1は
活動AユP1を実行していることがわかる。 それは、時間[、においでプロロツリーレニ1−ド1〕
R4内のCURR[ENTエントリが活動レニ1−ド△
RαP、を指し示しているからである。 次に、時間t2において、活動Δα1〕1はプロしツリ
1〕2内のCALLING活動△l)1〕2にJ、って
その実行を中止する。イのNi末、活動レコード△R1
,p2内のCA L l−E R:cン1〜す(よそれ
が活動レコード△R,P、を指し示ずJ:うにコントロ
ーラIMCによって書込まれる。また、ブ[コレツザレ
コードPR2はプロセツサP2が瞬間t2において現在
もう1つの活動を実行していてビジーであることを示し
ているので、プロセツザレコ−1:’PR2のPROC
ESSORQUEUEHEADとP ROCE S S
ORQ U E U E T△ILのエントリは活動
レコードΔRbP、、を指し示すようにコン1〜ローラ
[MCにJ:つて書込まれる。 その後、時間t、において、ブト11?ツ1すP2はI
NTERPROCESSORRET’L)RN 命令を
実行することによってその現在の活動の実行を完了する
。その結果、コントローラIMCはプロセツサレコード
P R2のP ROCE S S ORQ U E U
E l−I E A Dエン[−りをそのレコードの
CURRENTエントリへ移動させて、そして活動Δb
’Pzの実行が始まる。 その後、時間T、において、もう1つの活動△γP×は
活動AI)P2を呼ぶ。したがって、活動ΔbPzはA
C−r I V Eステーミルにあるので、活動レコー
ドARXP、のポインタはコント[1−ラIMOによっ
て活動レコードARbPzの活!111待ち行列内へ書
込まれる。 次に、時間15において、活動AI、、P2は活動△、
P3へINTERPROCESS○RNEX丁命令を実
行する。その結果、コント1」−ラ■MCは活動レコー
ド△Rb P、、のCA L L−E Rエントリを活
動シー1−ドARCP、のCΔL t−E RTシント
リへ動させる。したがって、活動レコードΔRcP、内
のポインタは、丁度あたかも活動A、P、が活動A、P
、によって直接呼出されたかのにうである。 CA L L E RJ:ントリの上記の移動のiIl
′I架として、活動AbPzは活動ΔCPJからど/υ
なパラメータも受取らないであろう。その代わり、それ
らのパラメータは直接活動△。P、へ送られる。 そl、T、INTERPROCESSORNLX]−命
令の実行にJ:つて、活動AI、 ’P z Gtイの
活動の(q加的な呼出子によって自由に山実行されるこ
とができる。したがって、時間t5において、コントロ
ーラIMCは活動レコード△RbP、、の△CT[V[
TY QLJEUE 1−IEAD■ントリをその活動
レコードのCA L L E RIントリ内へ移動させ
て、それはその新しい吐出子のために活動△bP2を再
実行づるようにブ+:+1ツリ1〕2へ通知する。 時間t、においで、プロヒラ瞥すpHは前に実行してい
た活動の実行を完了して、そして−てれは1つのINT
ERPROCESSORRE丁URN命令を実行する。 その結果、コントローラIMfjま活動レコードARc
P、のポインタをプロセッサレコードPR,のPROC
ESSORQUEUE 1−IEADエントリからCI
JRRENTエントリへ移動さμる。次に、プロセッサ
Paは括*Ac PGの実行を開始する。 時間[7にお(力る活動A、P、の完了によって、プロ
セッサP、は1つのI N T E Rl” ROCE
5SORRETURN命令またはもう1つのlN1−
ERPROCESSORNEX−r命令のいずれかを実
行ヅ゛るオプションを有Jる。第6図にrJ3いて、[
NTERPROCESSORNEXT命令は活動A、P
、へ実行される。その結末、コントローラIMCは活動
レコード△R,,P3のCA L L E Rエントリ
を活動レコードΔRd、 l) 、lのCALLERエ
ントリへ移動さ1iる。また、プロセッサP4はビジー
ではないので、プロレッリレコードPR,のCU RR
E N T−Tン「・りはコントl」−ラIMCによっ
て活動レーコードARべ1)、のポインタとともにロー
ドされて、プロセッサP4は活動A C1P 4の実行
を開始するように通知される。 時間T8において、ブ[1セツリP、は活動△dP、の
実行を完了する。そして、プロしツリ[〕4は INT
ERPROCESSORlで LE −1’ Lノドく
N命令またはI N l−E RP ROCF S S
ORN EXT命令のいずれかを実行りるAブシ:1
ンをイi覆る。第6図において、プロセッサP4+沫I
N T ERPROCESSQRRETURN命令を
実行する。 I N T E RP ROCE S S ORRE
T L、I RNによって、コント・ローラ(MOは活
動レコード△R,lP4のCΔLLERエントリをプ(
コレツリレコードPR,のブロセツザ待ち行列内へ[1
−ドづる。その後に、時間t9において、ブ]]F?ツ
リー1つ1は以前実行していた活動の実行を完了して、
それは時間[2において以前中止し1=活WJ)△QP
1の実行を再開(る。 活動A、PIの実行の再開は可能である。なぎならば、
その活動が待機していたCALLED活動A。P2から
のパラメータは11.1間t8において利用可能であっ
たからである。しかし、上記のことから、それらのパラ
メータは単にCA L L [E D活動AIP2から
来たのではないことが明らかである。そうではなくて、
それらは3つの活動△b1〕2.Δc P a + 6
>よびA、(P、のシーケンシャルな実行の結果であっ
た。 しかし、INTERPROCESSORNEX]−命令
の動作によって、このシーケンシャルな実行はり−へて
完全に活1FIJA、>P、から隠された。 したがって、活動△。Plと他の活動A、P、とA、1
llP4どのリンケージは大きく簡略化さ4′Iだ。 さらに、活動△b P2とACPJは活動A、(P・か
ら活動AQ+)、へ送られるパラメータのように再実行
される必要がなかったので、そのパラメータの送りは非
常に迅速に起こる。 ここで、複数のプロセッサp、、p2.・・・Pnが複
数のプロヒッザレコード、活動し−1−ド、おにびシェ
アされたメモ98M内のパラメータをアクセスして変え
るもう1つのシステムを図解している第7図を参照づ−
べきである。このシステムは、主にファイルアクヒスコ
ン1−〇−ラ20を含んでいる点において上述の第1図
のシステムと異なっている。そのコントローラ20は、
従来のメモリ読出しとメモリ書込みコマンドにJ、って
直接レコードをアクセスして変えることをブ111?ツ
サに認める。 りなわら、第7図のシステムにお1プるシー1−ドは従
来のメモリ内にストアされ、それらは従来の非インプリ
ジエントメモリコン1−ローラMCを介してアクセスさ
れ、そして第7図のシステムのプロセッサは1ワードの
メモリ読出しとメモリU!込みのコマンドのシーケンス
を直接非インプリジエントメモリコントローラMCへ送
ることによってIN”r’ERPROcEssORt?
I令を実行する。 しかし、いずれかのブロセッ1すがシェアされたメモ9
8M内のレコードを続出すかまた14由込むために非イ
ンテリジエン1−メモリコントlコーラへそのようなコ
マンドを送る前に、プ[]レツザはファイルアクセスコ
ントローラ20からそのようにJることについての認可
を受取らなりればならない。 第8図はファイルアクセス−コントローラ20の1つの
好ましい実施例の詳細を示している。それは21−1か
ら21〜nの複数のn″個のフリップフロップを含んで
いる。1つの実施例において、各7リツプフロツブはシ
ェアされたメモ98M内の1つのレコードに対応してい
る。すなわら、各フリップフロップは1つのプロセッサ
レコードまたは1つの活動レコードに対応している。こ
の代わりに、設計の選択によって、各フリップフロップ
は1つのプロセッサレコードとその1つのプロセッサレ
コードに関して対応する活動レコードのづべてと対応す
る。 最初に、づ−べてのノリツブフロップはリレットされて
いる。次に、1つのプロセッサがいずかのレニ1−ドを
アクセスすることが許される前に、それがアクセスしに
うと望んでいるレコードに対応゛するものが現在リセッ
トされでいるかどうかを確認するために、まずそれらの
フリップフロップに間合わせしなければならない。その
目的のために、そのリクエストしているプロセッサは、
バスを通しでコントローラ内のモジュール22ヘメツセ
ージを送る。都合良くは、モジコール22はマイクロプ
ロセッサである。 モジコール22へ送られるそのメツセージはリクエスト
()ているプロセッサを識別し、まl、=アクセスがシ
ークされているずべてのしT1−ドを識別する。たとえ
ば、4つのプロロツリーレコードP Rユ、PRb 、
PRC、およびPR,iとづべての対応する活動レコー
ドはそのメツセージ内の4つのエンコードされたフィー
ルドFユ、Fb、I”。。 およびF、ににって識別され得る。 メツレージを受取って、七ジュール22(まそれを内部
バス23を介しCレジスタ24へ送る。そこから、フィ
ールドF。、t’:b、、F、、おJ、びFdがそれぞ
れマルチプレクサ25a 、25b 、25C1および
25dの制御入力端末へ送られる。また、各マルチプレ
クサは21− ’Iから21−11のノリツブフロップ
のづべてのQ出力へ接続されたそのデータ入力端末を有
している。 従って、レジスタ24のフィールドFQ は、マルチプ
レクサ25aの出力ヘゲートされるフィールドヒケに対
応した1つのフリップフロップのご出力を生じる。同様
に、レジスタ24のフィールドFbはマルチプレクサ2
51)の出力ヘグートされるそのフィールドに対応した
1つのノリツブフロップの0出力を生じ、他のフィール
ドも同様である。それらのずべてのΦ出ノ゛ノ1よ次に
ANDゲー1へ26ににつて1つにANDされ、そして
、その結果はそれが調べらねるモジュール22へ送り返
される。 ANDゲート26からの信号がロジック1であるとき、
モジュール22はバスを介してメツセージを送って、ぞ
のリクエストしているブロセッ1すに識別されたレコー
ドの内容を変えることを認可りる。内部バス23はリク
エストしているプロセッサの識別を調べるための手段を
与え、そしてこのメツセージはそこへ送られる。 まIζ、ANDゲート26からの信号が1であるとき、
モジュール22は21−1から21−nのフリップフロ
ップのづべてに単一の夕ロックバルスを送る。それらの
フリップフロップ(よJKフリップフロップであって、
それらのJ入力に話動的信号を有しているものはレジス
タ24内のに〇。 Fb 、 F。、および「べのフィールドににって制御
される。したがって、フィールドF。、Fb。 FC,およびF〆に対応するそれらのソリツブフロップ
はづべて単一のクロックパルスに応答してセットされる
。 より具体的には、レジスタ2/l内のF、 、 Fb。 Fc+およびF4のフィールド(よそれぞれデコーダ2
7a 、27+)、270 、および27dへ送られる
。それらのデコーダの各々は複数の出力信号を発生ずる
が、一時にはそれらの信号のただ1つのみが高レベルに
なる。高レベルになるイの出力信号はデコーダがレジス
タ2/Iから受取るご1−ドと対応覆る。 言い換えれば、デコーダ27aの第1の出力はレジスタ
24内のフィールドF4 がバイナリ1に等しいとぎに
高レベルになり、1=1−ダ27aの第2の出力はレジ
スタ24内のフィールドFqがバイナリ2であるときに
高レベルになり、」メ下問様である。また、デーj−ダ
27a 、271)、27C2および27dの第1の出
力はVIR[ED−OR様式でづべてか1つに接続され
ている。したがって、レジスタ24内のフィーJl/ト
FQ 、 F6 。 F c、またはF、のいずねかかバイナリ1に等しいと
き、それ(まノリツブフロップ21−1へ送られる。同
様に、デコーダ27a 、2711.27c 。 および27dの第2の出力はW r RE D −OR
様式で1つに接続され又さjす、以下同様である。 ここで、モジュール22はFlからF、までのフィール
ドによって特定される梗々のレコードをアクセスするプ
ロセッサからのりクエストを受取るが、ゲート26の出
力は対応りるフリップフl」ツブの少なくとも1がヒツ
トされていることを示−10・であると仮定しよう。そ
の場合、モジコール22はレジスタ24内の内容を先入
先出(F I FO)待ち行列28内ヘロードし、それ
はモジコ、−ル22の内部のカウンタに1を加える。 次に、いくつかのレコードと間合わせりることを以前に
認可されたブ[1t?ツ°リ−の1つがそのタスクを完
了したと仮定しよう。この場合、そのプロセッサ(ま問
合わせを終了したし:1−ドを示すメッセージをモジュ
ール22へ送らなt〕ればならない。 好ましくは、それらのレコードはそのメツレージ内にお
いて複数のエンコードされたフィールドによって識別さ
れる。 そのメツセージは次にモジコール22によってレジスタ
29へ送られる。そこから、間合わされたレコードの数
を含むフィールドはそれぞれのデ′コーグへ送られる。 たとえば、4つのデコーダ30a 、30b 、30c
、および30(1は、レジスタ29内のメツセージが
4つのエンコードされたフィールドFへ′、Fし−・F
C・おJ゛ひ[d−を含むときに与えられる。 デコーダ30aから30dのりべてはWIRFD−OR
様式で1つに接続されたそれらの第1の出力を有してお
り、またそれらはフリツブフ]:1ツブ21−1のに入
力へも接続されでいる。したがって、レジスタ29内の
4つのフィールドのいずれかがバイナリ1を含んでいれ
ば、フリップフClツブ21−1はすべてのフリップフ
ロップがロックされているときにリヒツ1−される。 同様に、デコーダ30a−30dの第2の出ノJはすべ
てが1つに接続されており、それらはフリップフロップ
21−2のに人力へ接続されており、以下同様である。 しlζかって、間合わされた17コードに対応するノリ
ツブフロップをリセ・ソ卜するために、モジュール22
はレジスタ29をロードした後に単一のパルスににって
づ−べてのフリツプフ[1ツブを単にクロックJるたけ
Cある。 次に、モジュール22はどれたりの数のエン1−りがF
I FO28内にあるかを確認Jるためにその内筒’
r 、カウンタを調べる。もしその力・ンンl−が0で
なければ、七ジュール22は待ち行列二[ントリ1を一
時にレジスタ24内へ移づ。そのにうな各移動の後に、
1ステー1〜にあるかどうかを確認覆るためにANDグ
ー1−26の出力を調べる。 ANDゲート26が1ステートにあるどき、モジュール
22(Jレジスタ24のリクエスタ部分をバス23上に
続出して、リクエストシたレコードを分修正してもよい
ことを示すメッレージをそのレジスタへ送る。また、フ
リップノ1:」ツブ20−1から21−nのづべてはモ
ジコール22によってり1−のパルスでクロックされ、
そのパルス【まデコーダ27aから27dの出力によっ
て指Fl+δれるJ:うにフリップフロップをヒツトi
jる。さらに、モジ−トール22の内部のカウンタは1
によってデクリメントされる。 これとは逆に、ANDゲート2(3の出力か0ステート
にあれば、モジュール22(ユレジスタ24の内容をP
IF028内zXi1+に[1−ドしil:、iす1.
fIプである。第8図において、6木の破線の相は、上
述の動作が起こるように、モジュール22によってそれ
ぞれの制御信号が送られるそれぞれの導線を表わしてい
る。具体的には、り[1ンクバルスはワードをF I
FO28内へロード覆るために導線△で送られ、クロッ
クパルスはli= I F 028からのワードをアン
ロードづるために導線Bで送られる。 また、制御信@1まFIFO28またはバス23からの
レジスタ24への入力データを選択刀るために導線Eに
にって送られ、クロックパルスはその選択された入力デ
ータをレジスタ24内l\1]−卜するために導IFに
J:って送られる。さらに、クロックパルスはノリツブ
フロップ21−1から21−nをクロックづるために導
線しによって送られ、ざらにり[]ツクパルスはレジス
タ2つをロード覆るために導線MにJ、つ′C送られる
。 上述のファイルアクセスコン1〜ローラ20の1つの特
徴は、シェアされたメモリ内の種々のレコードを同時に
アクヒスして変えるJ、うにブ[ルッザP 1. P
2 、・・・P、のいくつかを能動化することである。 この場合の唯一の制限は、2つのプロセッサが同一のレ
コードを変えることはでさないことである。したがって
、たとえば、プロレソリー1〕2がレコード2.12.
3’1 、および/1. Oを変えていてプロセッサP
3がレコード3,11,20、J3よび32を変えてい
ても、プロセッサP1はレコード1,15.30’、お
よび56を同5.+iに変えることかできる。第7図の
システムのもう1つの特徴はその柔軟性である。一度ブ
1コセツサが特定のレコードを間合わして変えることを
ファイルアクセスコントローラ20から認可されれば、
それはメモリ読出しやメモリ出込みのコマンドのとのに
うなシーケンスによっても行なうことができる。したが
って、最初に1リコードを読出づ“ことがCき、次にプ
ロセッサは読出したレコードの内容に基づいて1つの活
動またはもう1つの活動を呼出づことができる。これは
CON D I −1−10N△L INTERPRO
cI:5SOR’CALL命令を実行する。 CON D I T I ON A L I N T’
E Rl) ROCESSORCAL+−命令の有用
性の1つの例として、2つのプロセッサーが同じ活動を
実行することを仮定しよう。たとえば、両方のプロセッ
サーは高速i!i!動小数点の数学的活動を実行し得る
場合でアル。コ(7) 場合、C0NDITIONAI
−INT E RI) ROCE S S ORCΔL
l−命令を実行することによつτ、呼出子は最初にそ
れらの浮動小数点活動を実行する2つのプロセッサの活
動レコードを調べることができ、次に、それはとしらの
プロセッサが現在ビジーでなかったかに依存して1つの
プロセッサまたは他方のプ[II?ッIJ−内の活動を
呼出ゴことができる。 第7図のシステムのもう1つの9′:f徴は、プロセッ
サがシェアされたメモ98M内のレコードへアクセスす
ることができるスピー1〜である。制御ワードをファイ
ルアクセスコン+−ローラ20へ送るためにバスは1つ
のナイクルを必要とし、メッロージをレジスタ24へ送
るためには第2のサイクルが必要で、ANDゲート26
からのjスト条件が安定するのを待つために第3 q)
サイクルが必要で、さらにANDゲート2Gに基づい又
リクJ−スト・されlζレコードをアクセスづることを
認可Jるメツセージをそのリフニス)−L ”Uいるブ
lコ[ごツリーへ送り返すこととその対応するフリップ
フロップ21−1から2l−neロッ1〜りるり[コッ
クパルスを送るために第4のサイクルが必要である。(
〕たがって、たとえば100ナノ秒のサイクルu9問で
あれば、レコードのアクレスには400ナノ秒かかるだ
げである。 これで、本発明の種々の実施例が詳細に述べられlζ。 しかしながら、さらに多くの変化や一部変更が発明の本
質や精神から1+11れることなくこれらの詳細になさ
れ得る。したがっ゛C1本光本発明前記の詳細に限られ
るものではなくて添イ」され1.:!lj」−′(請求
の範囲ににって限定されることを理解づべきである。
第1図はディジタルプロセッサ内の活動のシーケンスが
本発明に従って同期されるシステムを示す図である。 第2図は第1図のシステムのシェアされたメ七り内のプ
ロセッサレコードと活動レコードの典型的な構成を示す
′図である。 第3図ないし第4図は第1図のシス1ムのプロセッザレ
コードと活動レコード内のポインタがINTERPRO
CESSOR命令の実行に応答してどのように変わるか
を例示しlζ因である。 第7図は本発明によるディジタルプロレッリ内の活動の
シーケンスを同期させるもう1つのシステムを示す図で
ある。 第8A図と第8B図は第7図のシステムにおけるファイ
ルアクセスコント・ローラの詳1なロジ・ンクを示す図
である。 図において、Poはブ「ルツリ−1Mnはメモリ、An
Poは活動、PR,fよプロセッサレコード、ARX
P、はf5動し:1−ド、△61〕1は活動、20はフ
ァイルアクセスコントローラ、21−1ないし21−0
はフリツプフロツプ、22はモジーJ−−ル、23は内
部バス、24(よレジスタ、25)よマルチブクレザ、
26はANDゲート、27はデコーダ、28は先入先出
侍15行η月、29はレジスタ、30はデコーダを示づ
。 なお各図において同一符号(j同−内容または相当部分
を示す。 特許出願人 バロース・コーポ1ノーシコン手続補正書
く方式) 昭和59年10月8日 特許庁長官殿 2 2、発明の名称 シーケンスを同期させる方法とデータ処理システム3、
補正をする者 事件との関係 特許出願人 住所 アメリカ合衆国、ミシガン州、ブトロイ1〜バロ
ース・ブレイス (番地なし) 名称 バロース・コーポレーション 代表者 ポペット・ジョーンズ 4、代理人 住 所 大阪市北区天神412丁目3番9弓 八千代第
一ビル自発補正 願用の4.特許出願人の代表者の1閑、図面全図、委任
状おにび訳文、上申寵 7、補正の内容 (1)願書の4.特許出願人の代表古の欄に「ポペット
・ジョーンズ」を補充致しま、1.(の目的で新たに調
製したバ]正願!3を添f」致しlづ。 (2)濃墨で描いた図面全図を別層(の通り?10充致
しまず。なお、内容についての変更(よihりよけん。 (3)委任状および訳文を別紙の通り?+li光致()
まづ。 (4)委任状の発明の名称と願7jfの発明の名称とが
相違致しますので、」−申、′むを提出独しJ、す。 以上 手続補正書(方式) %式% 1、事件の表示 2、弁明の名称 シーケンスを同期させる方法とデータ処理システム3、
補正をする者 事件との関係 特許出願人 住所 アメリカ合衆国、ミシガン州、デトロイトバロー
ス・ブレイス (番地なし) 名称 バロース・コーポレーション 代表者 ポペット・ジョーンズ 4、代理人 住 所 大阪市北区天神橋2丁目3番9号 八千代第一
ビル昭和59年10月30日 6、補正の対象 願書の4.特許出願人の代表者の欄、明細書の図面の簡
単な説明の欄、図面全図、委任状J5よび訳文 7、補正の内容 (1)願書の4.特許出願人の代表者の欄に[ポペット
・ジョーンズ]を補充した適正な願書は、昭和59年1
0月8日付の手続補正内にて補充致しました。 (2)明細書第65頁第17行の1−第3図ないし第4
図」を「第3図ないし第6図」に訂正致します。 (3)s墨で描いた図面全図は、昭和59年10月8日
付の手続補正書にて補充致しました。 (4)委任状および訳文は、11(イ和5ε3<t1o
月8日付の手続補正書にて補充致しJ、した。 以」−
本発明に従って同期されるシステムを示す図である。 第2図は第1図のシステムのシェアされたメ七り内のプ
ロセッサレコードと活動レコードの典型的な構成を示す
′図である。 第3図ないし第4図は第1図のシス1ムのプロセッザレ
コードと活動レコード内のポインタがINTERPRO
CESSOR命令の実行に応答してどのように変わるか
を例示しlζ因である。 第7図は本発明によるディジタルプロレッリ内の活動の
シーケンスを同期させるもう1つのシステムを示す図で
ある。 第8A図と第8B図は第7図のシステムにおけるファイ
ルアクセスコント・ローラの詳1なロジ・ンクを示す図
である。 図において、Poはブ「ルツリ−1Mnはメモリ、An
Poは活動、PR,fよプロセッサレコード、ARX
P、はf5動し:1−ド、△61〕1は活動、20はフ
ァイルアクセスコントローラ、21−1ないし21−0
はフリツプフロツプ、22はモジーJ−−ル、23は内
部バス、24(よレジスタ、25)よマルチブクレザ、
26はANDゲート、27はデコーダ、28は先入先出
侍15行η月、29はレジスタ、30はデコーダを示づ
。 なお各図において同一符号(j同−内容または相当部分
を示す。 特許出願人 バロース・コーポ1ノーシコン手続補正書
く方式) 昭和59年10月8日 特許庁長官殿 2 2、発明の名称 シーケンスを同期させる方法とデータ処理システム3、
補正をする者 事件との関係 特許出願人 住所 アメリカ合衆国、ミシガン州、ブトロイ1〜バロ
ース・ブレイス (番地なし) 名称 バロース・コーポレーション 代表者 ポペット・ジョーンズ 4、代理人 住 所 大阪市北区天神412丁目3番9弓 八千代第
一ビル自発補正 願用の4.特許出願人の代表者の1閑、図面全図、委任
状おにび訳文、上申寵 7、補正の内容 (1)願書の4.特許出願人の代表古の欄に「ポペット
・ジョーンズ」を補充致しま、1.(の目的で新たに調
製したバ]正願!3を添f」致しlづ。 (2)濃墨で描いた図面全図を別層(の通り?10充致
しまず。なお、内容についての変更(よihりよけん。 (3)委任状および訳文を別紙の通り?+li光致()
まづ。 (4)委任状の発明の名称と願7jfの発明の名称とが
相違致しますので、」−申、′むを提出独しJ、す。 以上 手続補正書(方式) %式% 1、事件の表示 2、弁明の名称 シーケンスを同期させる方法とデータ処理システム3、
補正をする者 事件との関係 特許出願人 住所 アメリカ合衆国、ミシガン州、デトロイトバロー
ス・ブレイス (番地なし) 名称 バロース・コーポレーション 代表者 ポペット・ジョーンズ 4、代理人 住 所 大阪市北区天神橋2丁目3番9号 八千代第一
ビル昭和59年10月30日 6、補正の対象 願書の4.特許出願人の代表者の欄、明細書の図面の簡
単な説明の欄、図面全図、委任状J5よび訳文 7、補正の内容 (1)願書の4.特許出願人の代表者の欄に[ポペット
・ジョーンズ]を補充した適正な願書は、昭和59年1
0月8日付の手続補正内にて補充致しました。 (2)明細書第65頁第17行の1−第3図ないし第4
図」を「第3図ないし第6図」に訂正致します。 (3)s墨で描いた図面全図は、昭和59年10月8日
付の手続補正書にて補充致しました。 (4)委任状および訳文は、11(イ和5ε3<t1o
月8日付の手続補正書にて補充致しJ、した。 以」−
Claims (1)
- 【特許請求の範囲】 (1) 種々の相関のない活動がディジタルプロセラ4
ノ“内で実行されるシーケンスを同期化させる方法であ
って前記活動は複数の呼出子によってランダムに呼出さ
れる方法において、 前記プロセッサが実行する各穴なった種類の活動のそれ
ぞれのポインタを保持づるために単一のプロセッサ持ち
行列を用意するステップと、初めて活動が呼ばれたとき
にその活動のポインタを前記プロセッサ持ち行列内へ入
れるステップと、 前記プロヒッサが実行する各穴なった種類の活動のため
にそれぞれの活?JJ持ち行列を用意するステップと、 前記活動がその最初の呼出しに続い又呼出さねる各時に
おいて、その呼出された活動のために前記それぞれの待
ち行列内へ活動の呼出子のポインタを入れるステップと
、 前記プ[1セッサ待ち行列内の1つのポインタによって
指し示された単一・の活動を繰返して実行するステップ
とを含み、その実行はその活動持し行列によって指l)
示されるその呼出子の各々のためにその単一の活動が一
度実施されるまで繰返され、ただ1ノ前記単一の活動が
次のもう1つの活動を呼ぶとぎにはその呼出しが起こる
時点まで!どけ前記単一の活動を実行し、 さらに前記方法は同様な様式で前記プロセッサ持ち行列
によって指し示されたもう1゛つの活動の実行を進める
ステップを含むことを特徴とするシーケンスを同期化さ
せる方法。 (2) 前記単一のプ[10ツサi4i ”51i列と
それぞれの活動待ち行列をメモリ内のレコードと1)で
ストアづるステップをさらに含むことを特徴とする特許
請求の範囲第1項記載の方法。 く3) 前記ポインタが一助に(またIど1つの呼出子
によってのみ前記待ち行列内へ入れられ得るように前記
待ち行列へのアクレスを制限でるステップをさらに含む
ことを特徴とする特許請求の範囲第1項記載の方法。 (4〉 単一のタイムシェアされたバスを介しC前記待
ち行列を前記プロセッサ″と呼出子へ接続するステップ
をさらに含むことを94徴ど覆る4i、 i!)請求の
範囲第1項記載の方法。 (5) 前記活動の前記呼出子にJ:つてではなくて前
記プロセッサによってアドレス可aヒに接続されている
メモリ内へ、前記プロレッナが大行J′る秤々の活動を
ストアするステップをさらに含むことを特徴とする特許
請求の範囲第1項記載の方法。 く6) 前記呼出された活動がその呼出している活動の
ために実行されるときに、前記活動待ち行列から前記呼
出している活動の前記ポインタを取り除くステップをさ
らに含むことを特徴とする特許請求の範囲第1項記載の
方法。 (7) ディジタルブロヒツザと、 前記プロセッサが実行する種々の呼出し可能な活動を内
包づ゛るメモリと、 単一のプロセッサ待ち行列と、 前記プロセッサが実行するために呼出された各穴なった
種類の活動を指し示す前記プロセッサ待ち行列内のそれ
ぞれのポインタと、 前記プロセッサが実行する各種類の活動のためのそれぞ
れの活動持ち行列と、 その特定の活動の呼出子のポインタを内包づる各活動待
ち行列と、 前記プロセッサ待ち行列内の1つのポインタによって指
し示される単一の活動を繰返して実行するように前記プ
ロセッサへ指示するための手段とを備え、その実行は前
記単一の活動がその対応する活動待ち行列内の各呼出子
のために一度実(−1されるまで繰返され、ただし、前
記単一の活動がしう一つの活動を呼ぶときにはその呼出
しが起こる時点までだけ実行し、 さらに前記システムは同様な方法で前記ブ[」レツサ待
ち行列にJ:つて指し示されたもう1つの活動の実行を
進めるように前記プロセッサへ指示づるだめの手段とを
備えたことを特徴とするデータ処理システム。 (8) 前記指示づるための手段は、前記待ち行列内の
前記ポインタに間合わせてイれらのステータスを前記プ
ロセッサへ知らUるために、前記プロセッサからの命令
に応答覆るコントローラ手段を含んでいることを特徴と
する特許請求の範囲第7項記載のシステム。 (9) 前記単一のプロセッサ待ら行列とそ4″Iぞれ
の活動待ち行列はメモリ内のレコードからなっているこ
とを特徴とする特許請求の範囲第71貞記載のシステム
。 (10) 前記ポインタが一時にはただ1つの呼出子に
よってのみ入れられるにうに前記待ち行列へのアクセス
を制限するための手段をさらに含むことを特徴とする特
許請求の範囲第71vr記載のシステム。 (11) 前記待ち行列を前記プD t:’ツ4ノーと
複数の呼出子へ接続する単一のタイムシェアされたバス
をさらに含むことを特徴とする特R1請求の範囲第7項
記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/515,856 US4646231A (en) | 1983-07-21 | 1983-07-21 | Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor |
US515856 | 1983-07-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6081650A true JPS6081650A (ja) | 1985-05-09 |
JPH0535454B2 JPH0535454B2 (ja) | 1993-05-26 |
Family
ID=24053051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59151959A Granted JPS6081650A (ja) | 1983-07-21 | 1984-07-20 | データ処理システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US4646231A (ja) |
EP (1) | EP0132381B1 (ja) |
JP (1) | JPS6081650A (ja) |
CA (1) | CA1214566A (ja) |
DE (1) | DE3481657D1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0283601A (ja) * | 1987-10-07 | 1990-03-23 | Allen Bradley Co Inc | プログラマブル・コントローラ |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4972314A (en) * | 1985-05-20 | 1990-11-20 | Hughes Aircraft Company | Data flow signal processor method and apparatus |
JPH0833857B2 (ja) * | 1987-02-18 | 1996-03-29 | 株式会社日立製作所 | システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式 |
US5381546A (en) * | 1987-04-13 | 1995-01-10 | Gte Laboratories Incorporated | Control process for allocating services in communications systems |
AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
CA2003338A1 (en) * | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
AU625293B2 (en) * | 1988-12-09 | 1992-07-09 | Tandem Computers Incorporated | Synchronization of fault-tolerant computer system having multiple processors |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
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 | テキサス インスツルメンツ インコーポレーテッド | マルチプロセッサコンピュータシステム使用方法 |
US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5203004A (en) * | 1990-01-08 | 1993-04-13 | Tandem Computers Incorporated | Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections |
US5317733A (en) * | 1990-01-26 | 1994-05-31 | Cisgem Technologies, Inc. | Office automation system for data base management and forms generation |
JP2661316B2 (ja) * | 1990-03-24 | 1997-10-08 | トヨタ自動車株式会社 | 複数のプログラマブルコントローラ間の並列運転による制御装置 |
JP2654707B2 (ja) * | 1990-03-24 | 1997-09-17 | トヨタ自動車株式会社 | 複数pcの並列制御装置 |
JP2611483B2 (ja) * | 1990-03-24 | 1997-05-21 | トヨタ自動車株式会社 | 複数pcの並列制御装置 |
US5202988A (en) * | 1990-06-11 | 1993-04-13 | Supercomputer Systems Limited Partnership | System for communicating among processors having different speeds |
FR2675796B1 (fr) * | 1991-04-25 | 1993-08-20 | Lorraine Laminage | Procede de preparation de l'anhydride acetique a partir du formiate de methyle. |
US5410722A (en) * | 1993-01-21 | 1995-04-25 | Conner Peripherals, Inc. | Queue system for dynamically allocating and moving memory registers between a plurality of pseudo queues |
US6163793A (en) * | 1994-08-05 | 2000-12-19 | Intel Corporation | Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor |
GB2348306B (en) * | 1999-03-25 | 2003-07-30 | Ibm | Data processing systems and method for processing tasks in such systems |
US7689994B2 (en) * | 2004-01-28 | 2010-03-30 | Microsoft Corporation | System and method for specifying and executing temporal order events |
EP2013822A4 (en) * | 2006-04-14 | 2012-07-18 | Vertafore Inc | METHOD, SYSTEM, AND COMPUTER READABLE MEDIUM FOR UNIFORMIZING DOCUMENT COMMENTS ON MULTIPLE COMPUTER PLATFORMS |
US9063932B2 (en) * | 2009-12-18 | 2015-06-23 | Vertafore, Inc. | Apparatus, method and article to manage electronic or digital documents in a networked environment |
US8700682B2 (en) * | 2009-12-24 | 2014-04-15 | Vertafore, Inc. | Systems, methods and articles for template based generation of markup documents to access back office systems |
US9384198B2 (en) | 2010-12-10 | 2016-07-05 | Vertafore, Inc. | Agency management system and content management system integration |
US8731973B2 (en) | 2011-04-19 | 2014-05-20 | Vertafore, Inc. | Overlaying images in automated insurance policy form generation |
US9507814B2 (en) | 2013-12-10 | 2016-11-29 | Vertafore, Inc. | Bit level comparator systems and methods |
US9367435B2 (en) | 2013-12-12 | 2016-06-14 | Vertafore, Inc. | Integration testing method and system for web services |
US9747556B2 (en) | 2014-08-20 | 2017-08-29 | Vertafore, Inc. | Automated customized web portal template generation systems and methods |
US9600400B1 (en) | 2015-10-29 | 2017-03-21 | Vertafore, Inc. | Performance testing of web application components using image differentiation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54111733A (en) * | 1978-02-21 | 1979-09-01 | Nec Corp | Multiplex processor system |
JPS56124964A (en) * | 1979-12-11 | 1981-09-30 | Cii | Device for assigning andsynchronizing execution proposed process between plural processing units for information processor |
-
1983
- 1983-07-21 US US06/515,856 patent/US4646231A/en not_active Expired - Lifetime
-
1984
- 1984-07-19 EP EP84304922A patent/EP0132381B1/en not_active Expired
- 1984-07-19 DE DE8484304922T patent/DE3481657D1/de not_active Expired - Fee Related
- 1984-07-20 JP JP59151959A patent/JPS6081650A/ja active Granted
- 1984-07-20 CA CA000459418A patent/CA1214566A/en not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54111733A (en) * | 1978-02-21 | 1979-09-01 | Nec Corp | Multiplex processor system |
JPS56124964A (en) * | 1979-12-11 | 1981-09-30 | Cii | Device for assigning andsynchronizing execution proposed process between plural processing units for information processor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0283601A (ja) * | 1987-10-07 | 1990-03-23 | Allen Bradley Co Inc | プログラマブル・コントローラ |
Also Published As
Publication number | Publication date |
---|---|
JPH0535454B2 (ja) | 1993-05-26 |
EP0132381A2 (en) | 1985-01-30 |
US4646231A (en) | 1987-02-24 |
EP0132381A3 (en) | 1987-11-11 |
DE3481657D1 (de) | 1990-04-19 |
CA1214566A (en) | 1986-11-25 |
EP0132381B1 (en) | 1990-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6081650A (ja) | データ処理システム | |
US4564901A (en) | Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors | |
US4084228A (en) | Process management structures and hardware/firmware control | |
US4395757A (en) | Process synchronization utilizing semaphores | |
US4297743A (en) | Call and stack mechanism for procedures executing in different rings | |
US4384324A (en) | Microprogrammed digital data processing system employing tasking at a microinstruction level | |
US4044334A (en) | Database instruction unload | |
US4077058A (en) | Method and apparatus for executing an extended decor instruction | |
US9195786B2 (en) | Hardware simulation controller, system and method for functional verification | |
JPS59501802A (ja) | マルチプロセッサシステムにおけるプロセス間呼出しの方法と装置 | |
JPS58151655A (ja) | 情報処理装置 | |
US4493019A (en) | Pipelined microprogrammed digital data processor employing microinstruction tasking | |
CN110597640A (zh) | 进程间的数据传输方法、装置、终端及计算机存储介质 | |
US6795901B1 (en) | Shared memory interface with conventional access and synchronization support | |
JPS646488B2 (ja) | ||
JPH0236969B2 (ja) | ||
EP4336359A1 (en) | Method for processing page faults and corresponding apparatus | |
US4279016A (en) | Instruction pre-fetch microprocessor interrupt system | |
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 | |
EP0480858A2 (en) | Hardware primary directory lock | |
CN109656868B (zh) | 一种cpu与gpu之间的内存数据转移方法 | |
CN114492821A (zh) | 基于微内核架构的量子计算机操作***及量子计算机 | |
US4567562A (en) | Controller for controlling access to a plurality of records that can be accessed and changed by several independent processors | |
CN112948136A (zh) | 一种嵌入式操作***异步日志记录的实现方法 | |
CN112559210A (zh) | 一种基于rtx实时***的共享资源读写互斥方法 |