JPH02236735A - データ処理方法及び装置 - Google Patents
データ処理方法及び装置Info
- Publication number
- JPH02236735A JPH02236735A JP1212134A JP21213489A JPH02236735A JP H02236735 A JPH02236735 A JP H02236735A JP 1212134 A JP1212134 A JP 1212134A JP 21213489 A JP21213489 A JP 21213489A JP H02236735 A JPH02236735 A JP H02236735A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- directive
- processing element
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title 1
- 238000012545 processing Methods 0.000 claims abstract description 185
- 238000012546 transfer Methods 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 52
- 230000003213 activating effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
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
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
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
【発明の詳細な説明】
A.産業上の利用分野
本発明は一般にデータ処理に関し、より具体的には、要
求側タスクによって提供される記憶位置に記憶されたセ
マフォアの状況を監視する働きをする記憶装置ディレク
ティブを用いて、複数のタスク間でデータをやりとりす
る方法及び装置に関する。ディレクティブは、一度開始
されると、要求側タスクの介入なしに繰返し実行される
。本発明は、複数タスクを実行する単一プロセッサ・シ
ステムにも多重プロセッサ・システムにも適用できる. B.従来技術及びその問題点 過去数十年間に、トランジスタなどの基本的電子素子の
密度と速度を向上させる方向で著しい進歩を遂げてきた
。それに伴って、インテル80386型マイクロプロセ
ッサ等のマイクロブロセッサの速度及び計算能力も同様
の進歩を遂げてきた。
求側タスクによって提供される記憶位置に記憶されたセ
マフォアの状況を監視する働きをする記憶装置ディレク
ティブを用いて、複数のタスク間でデータをやりとりす
る方法及び装置に関する。ディレクティブは、一度開始
されると、要求側タスクの介入なしに繰返し実行される
。本発明は、複数タスクを実行する単一プロセッサ・シ
ステムにも多重プロセッサ・システムにも適用できる. B.従来技術及びその問題点 過去数十年間に、トランジスタなどの基本的電子素子の
密度と速度を向上させる方向で著しい進歩を遂げてきた
。それに伴って、インテル80386型マイクロプロセ
ッサ等のマイクロブロセッサの速度及び計算能力も同様
の進歩を遂げてきた。
実際に、それらの成果は非常に大きなもので、多くの状
況では、現在半導体デバイスの速度及び密度が、電子が
導電体中を伝播する速度などの基本的な物理的限界にぶ
つかっている。したがって、こうした方向でさらに改善
を行なうには、現況技術の著しい進歩が必要であり、そ
れは同様に大きな経費を投じないと達成できない。
況では、現在半導体デバイスの速度及び密度が、電子が
導電体中を伝播する速度などの基本的な物理的限界にぶ
つかっている。したがって、こうした方向でさらに改善
を行なうには、現況技術の著しい進歩が必要であり、そ
れは同様に大きな経費を投じないと達成できない。
しかし、上記の物理的限界に規定されず、したがって速
度及び出力をさらに向上させる上で実り多い計算機技術
の一分野は、処理システムの使用効率を高めるものであ
る。
度及び出力をさらに向上させる上で実り多い計算機技術
の一分野は、処理システムの使用効率を高めるものであ
る。
処理効率を高める上で特に実り多い計算機システムの一
型式は、当技術分野で並列処理と呼ばれているものであ
る。並列処理システムでは、上記の型式の複数のマイク
ロプロセッサを、それぞれが大きな適用業務プログラム
(親)を分割した個々の計算タスクを独立に実行できる
という構成で接続する。タスクには親タスクと子タスク
があり、前者は後者のための制御及び同期情報を含んで
いる。
型式は、当技術分野で並列処理と呼ばれているものであ
る。並列処理システムでは、上記の型式の複数のマイク
ロプロセッサを、それぞれが大きな適用業務プログラム
(親)を分割した個々の計算タスクを独立に実行できる
という構成で接続する。タスクには親タスクと子タスク
があり、前者は後者のための制御及び同期情報を含んで
いる。
真の並列処理システムでは、複数のプロセッサがそれぞ
れ共通の共用メモリにアクセスでき、システム入出力の
少なくとも一部分にアクセスでき、プロセッサとそれら
が実行するプログラムの間の対話を実現する単一のオペ
レーティング・システムによって制御される。その場合
、理論上、大きなプログラムをN個の並列タスクに分割
し、各タスクを別々のプロセッサで実行すると、1台の
プロセッサでそのジープを完了する場合のN倍の速さで
そのプログラムを完了することが可能である。
れ共通の共用メモリにアクセスでき、システム入出力の
少なくとも一部分にアクセスでき、プロセッサとそれら
が実行するプログラムの間の対話を実現する単一のオペ
レーティング・システムによって制御される。その場合
、理論上、大きなプログラムをN個の並列タスクに分割
し、各タスクを別々のプロセッサで実行すると、1台の
プロセッサでそのジープを完了する場合のN倍の速さで
そのプログラムを完了することが可能である。
複数のプロセッサとそれに関連するシステム記憶装置及
び入出力要素を、上記のように機能するように接続する
ためのシステム構成は、様々なものが多数知られている
。こうした構成には、時分割データ・リンクを介してシ
ステム要素を相互接続する時分割バス構成、マトリック
ス・スイッチの配置を介してシステム要素を接続するク
ロスバー構成、処理要素と入出力要素を複数のパスを介
して複数のメモリ・ポートに接続する複数バス/複数ポ
ート・システムなどがある。各システム構成にはそれぞ
れ独自の利点と欠点があるが、その多くはまだ研究中で
あり、当業者の議論の的になっている。多重プロセッサ
の性能の一般的考察については、A. Horton等
の論文”A Methodologyfor Pred
icting Multiprocessor Per
formance ”IEEE PROCEEDIHG
S OF TIIE 1985 IHTERHATIO
NALCOHFEREHCE OH PARALLEL
PROCESSIHG1pI) . 772−781
を参照されたい。特定の並列処理システムのより詳しい
説明については、G.F.Pf ister等の論文”
The IBM Research Parallel
Processor Prototype(RP3):
Introduction andArch ite
cture″、IEEE PROCEEDINGS O
F THE 1985INTERNATIONAL C
ONFEREHCE OH PARALLELPROC
ESSING1pi) . 7 8 4 − 7 7
1を参照されたい。本明細書では、並列処理システムの
代表的特徴を例示する目的で、所々でIBM RP3
並列プロセッサを参照するが、下記に記載する本発明は
RP3システムの構造によって限定されるものではない
ことを了解されたい。
び入出力要素を、上記のように機能するように接続する
ためのシステム構成は、様々なものが多数知られている
。こうした構成には、時分割データ・リンクを介してシ
ステム要素を相互接続する時分割バス構成、マトリック
ス・スイッチの配置を介してシステム要素を接続するク
ロスバー構成、処理要素と入出力要素を複数のパスを介
して複数のメモリ・ポートに接続する複数バス/複数ポ
ート・システムなどがある。各システム構成にはそれぞ
れ独自の利点と欠点があるが、その多くはまだ研究中で
あり、当業者の議論の的になっている。多重プロセッサ
の性能の一般的考察については、A. Horton等
の論文”A Methodologyfor Pred
icting Multiprocessor Per
formance ”IEEE PROCEEDIHG
S OF TIIE 1985 IHTERHATIO
NALCOHFEREHCE OH PARALLEL
PROCESSIHG1pI) . 772−781
を参照されたい。特定の並列処理システムのより詳しい
説明については、G.F.Pf ister等の論文”
The IBM Research Parallel
Processor Prototype(RP3):
Introduction andArch ite
cture″、IEEE PROCEEDINGS O
F THE 1985INTERNATIONAL C
ONFEREHCE OH PARALLELPROC
ESSING1pi) . 7 8 4 − 7 7
1を参照されたい。本明細書では、並列処理システムの
代表的特徴を例示する目的で、所々でIBM RP3
並列プロセッサを参照するが、下記に記載する本発明は
RP3システムの構造によって限定されるものではない
ことを了解されたい。
様々な型式の並列処理構成に共通した1つの問題の分野
は、資源の割振りと管理に関するものである。すなわち
、プログラムを並列処理しやすいタスクに分解した後、
並列処理能力が効率的に利用できるように、個々のタス
クをスケジューリングし、選択したプロセッサをそれぞ
れのタスクに割り当て、システム・メモリと入出力資源
を割り振らなければならない。この資源の割振りと管理
がうまくいかないと、上記の並列処理の論理的効率の多
くが失われてしまう。
は、資源の割振りと管理に関するものである。すなわち
、プログラムを並列処理しやすいタスクに分解した後、
並列処理能力が効率的に利用できるように、個々のタス
クをスケジューリングし、選択したプロセッサをそれぞ
れのタスクに割り当て、システム・メモリと入出力資源
を割り振らなければならない。この資源の割振りと管理
がうまくいかないと、上記の並列処理の論理的効率の多
くが失われてしまう。
従来技術の並列処理システムでは、共用資源を利用する
ための方法が大別して2種類ある。第1の方法は、プロ
セッサ・シグナリングで、各プロセッサ内部で開始され
たプリミティブを使って他の1台または複数のプロセッ
サに事象の発生を通知するものである。本明細書では、
プリミティブとは、結合解除不能な動作、または実行中
に他の動作がオーバーラップできない動作であると定義
する。プリミティブの例としては、処理要素ハードウェ
ア中での加算と減算、メモリ・ハードウェア中での取出
しと記憶などがある。
ための方法が大別して2種類ある。第1の方法は、プロ
セッサ・シグナリングで、各プロセッサ内部で開始され
たプリミティブを使って他の1台または複数のプロセッ
サに事象の発生を通知するものである。本明細書では、
プリミティブとは、結合解除不能な動作、または実行中
に他の動作がオーバーラップできない動作であると定義
する。プリミティブの例としては、処理要素ハードウェ
ア中での加算と減算、メモリ・ハードウェア中での取出
しと記憶などがある。
プロセッサ・シグナリングは、かなりの量の精巧なプロ
グラミングが必要であり、並列処理プログラム内の大き
なタスクを分割し、後で再結合するのに使われるFOR
KやJOINなどの細分性の粗い並列処理にはまったく
十分である。しかし、並列処理の細分性が細かくなるに
つれて(すなわち、並列処理のためにプログラムがより
多数の小さなタスクに分割されていくにつれて)、プロ
セッサ合図法に伴うオーバーヘッドが許容できないほど
大きくなり、並列処理の効率が許容できないほど減少し
ていく。
グラミングが必要であり、並列処理プログラム内の大き
なタスクを分割し、後で再結合するのに使われるFOR
KやJOINなどの細分性の粗い並列処理にはまったく
十分である。しかし、並列処理の細分性が細かくなるに
つれて(すなわち、並列処理のためにプログラムがより
多数の小さなタスクに分割されていくにつれて)、プロ
セッサ合図法に伴うオーバーヘッドが許容できないほど
大きくなり、並列処理の効率が許容できないほど減少し
ていく。
共用資源を利用する第2の方法は、記憶セマフオア、す
なわちメモリ内容の分割不能な修正形を使って特定資源
が利用可能か否かを知らせるものである。この第2の方
法は、「ロック・アウト」、「シロルダ・タッピング」
、「メール・ボックス処理」とも呼ばれ、それぞれ特定
の記憶位置にある特定のメッセージまたはコードを使っ
て資源の状況を他のプロセッサに通知することを指して
いる。こうした記憶セマフォアを使用するシステムでは
、特定の資源が利用可能になるのを待っているプロセッ
サは、その資源の状況に関するコードを含む記憶位置を
読み取って、その内容に応じてその動作を続行しなけれ
ばならない。資源が利用できないことを記憶セマフォア
が示す場合、従来技術のシステムでは、照会中のマイク
ロフロセッサが待機状態に入って処理を停止し、記憶セ
マフオアの周期的再読取りによってこの待機状態が区切
られる。この待機と読取りを繰り返す状況を、当技術分
野では「スピン・ループ」と呼んでいる。
なわちメモリ内容の分割不能な修正形を使って特定資源
が利用可能か否かを知らせるものである。この第2の方
法は、「ロック・アウト」、「シロルダ・タッピング」
、「メール・ボックス処理」とも呼ばれ、それぞれ特定
の記憶位置にある特定のメッセージまたはコードを使っ
て資源の状況を他のプロセッサに通知することを指して
いる。こうした記憶セマフォアを使用するシステムでは
、特定の資源が利用可能になるのを待っているプロセッ
サは、その資源の状況に関するコードを含む記憶位置を
読み取って、その内容に応じてその動作を続行しなけれ
ばならない。資源が利用できないことを記憶セマフォア
が示す場合、従来技術のシステムでは、照会中のマイク
ロフロセッサが待機状態に入って処理を停止し、記憶セ
マフオアの周期的再読取りによってこの待機状態が区切
られる。この待機と読取りを繰り返す状況を、当技術分
野では「スピン・ループ」と呼んでいる。
記憶セマフォアは、上記の細分性の粗い並列処理では完
全に許容できる。しかし、並列処理の細分性が細か《な
り、同時に実行されるタスクの数が増加するにつれて、
こうしたスピン・ループの数が著しく増加してくる。ス
ピン・ループの数が増加すると、プロセッサとメモリの
間を相互接続するシステム・ハードウェア、すなわち上
記のバスや交換マトリックスなどが、メモリ・アクセス
の競合によって生じる干渉領域にぶつかる。この問題の
ために、「ホット・スポット」、すなわちプロセッサ相
互ハードウェア中に、こうした競合するメモリ・アクセ
スによって過負荷となり、処理をサポートし続けること
ができなくなる部分が生じる。したがって、システムは
極めて効率が悪くなり、許容できない遅延が生じる。
全に許容できる。しかし、並列処理の細分性が細か《な
り、同時に実行されるタスクの数が増加するにつれて、
こうしたスピン・ループの数が著しく増加してくる。ス
ピン・ループの数が増加すると、プロセッサとメモリの
間を相互接続するシステム・ハードウェア、すなわち上
記のバスや交換マトリックスなどが、メモリ・アクセス
の競合によって生じる干渉領域にぶつかる。この問題の
ために、「ホット・スポット」、すなわちプロセッサ相
互ハードウェア中に、こうした競合するメモリ・アクセ
スによって過負荷となり、処理をサポートし続けること
ができなくなる部分が生じる。したがって、システムは
極めて効率が悪くなり、許容できない遅延が生じる。
こうした望ましくないホット・スポットの形成を削減す
る既知の1方法は、単一の記憶位置に対する複数の取出
し要求または読取り要求を組み合わせるものである。こ
の方法によれば、特定の記憶位置で待機中のすべてのプ
ロセッサに通知する責任を1つのプロセッサに委ねる。
る既知の1方法は、単一の記憶位置に対する複数の取出
し要求または読取り要求を組み合わせるものである。こ
の方法によれば、特定の記憶位置で待機中のすべてのプ
ロセッサに通知する責任を1つのプロセッサに委ねる。
この方・法は、ホット・スポットを軽減するのにある程
度役立つが、いくつかの欠点がある。第1に、こうした
組合せの効率は、同じ記憶位置に対する要求の偶然の衝
突またはオーバーラップの度合に依存している。こうし
た方式では、リストを処理するために余分のコードと記
憶資源が必要である。こうした組合せをサポートするの
に必要な相互接続ネットワークを構築するためのハード
ウェア・コストは、非常に高くつく。さらに、通知の責
任を負う1台のプロセッサが故障した場合、システムの
動作続行が著しく損なわれる可能性がある。ホット・ス
ポットー股についてのさらに詳しい考察は、M. Ku
+*ar等の論文″The Onset of Hot
SpotContention″、IEEE PRO
CEEDINGS OF THE 1986INTER
NATIONAL COHFEREHCE OH PA
RALLELPROCESSI}IG, 1) !)
. 2 8 − 3 4を参照されたい。
度役立つが、いくつかの欠点がある。第1に、こうした
組合せの効率は、同じ記憶位置に対する要求の偶然の衝
突またはオーバーラップの度合に依存している。こうし
た方式では、リストを処理するために余分のコードと記
憶資源が必要である。こうした組合せをサポートするの
に必要な相互接続ネットワークを構築するためのハード
ウェア・コストは、非常に高くつく。さらに、通知の責
任を負う1台のプロセッサが故障した場合、システムの
動作続行が著しく損なわれる可能性がある。ホット・ス
ポットー股についてのさらに詳しい考察は、M. Ku
+*ar等の論文″The Onset of Hot
SpotContention″、IEEE PRO
CEEDINGS OF THE 1986INTER
NATIONAL COHFEREHCE OH PA
RALLELPROCESSI}IG, 1) !)
. 2 8 − 3 4を参照されたい。
ホット・スポットと組合せの考察については、G. F
. Pfister等の論文” ’llot Spot
’Contentionand Combining
in Multistage Interconnec
tionNetworks ” 、IEEE PROC
EEDINGS OF THE 1985INTERN
ATIONAL CONFEREHCE ON PAR
ALLELPROCESSING, pm) . 7
9 0 − 7 9 7を参照されたい。
. Pfister等の論文” ’llot Spot
’Contentionand Combining
in Multistage Interconnec
tionNetworks ” 、IEEE PROC
EEDINGS OF THE 1985INTERN
ATIONAL CONFEREHCE ON PAR
ALLELPROCESSING, pm) . 7
9 0 − 7 9 7を参照されたい。
下記の特許は、処理システムの障害を防止するため、あ
る程度の冗長構成または自動エラー検出機能を備えた処
理システムを示すものとして重要である。それらの特許
は、本発明で認識している並列処理システムの問題を対
象としていない。
る程度の冗長構成または自動エラー検出機能を備えた処
理システムを示すものとして重要である。それらの特許
は、本発明で認識している並列処理システムの問題を対
象としていない。
米国特許第4458952号明細書は、障害検出のため
の冗長制御プロセッサを備えた、データ処理システムを
開示している。2重プロセッサの動作を比較するための
比較機構が設けられている。
の冗長制御プロセッサを備えた、データ処理システムを
開示している。2重プロセッサの動作を比較するための
比較機構が設けられている。
両方のプロセッサ間でエラーを検出し、どちらのプロセ
ッサが正しく動作していないかを識別するための障害処
理回路が設けられている。
ッサが正しく動作していないかを識別するための障害処
理回路が設けられている。
米国特許第4500959号明細書は、主記憶装置とデ
ィレクティブ・バッファを含むコンピュータ・システム
を開示している。ディレクティブがディレクティブ・バ
ッファに記憶された後に主記憶装置中で変更されると、
不整合が生じる。このシステムは、こうした不整合を識
別し、変更されたディレクティブが実行されようとする
ときにディレクティブ・バッファの内容を無効にする働
きをする。
ィレクティブ・バッファを含むコンピュータ・システム
を開示している。ディレクティブがディレクティブ・バ
ッファに記憶された後に主記憶装置中で変更されると、
不整合が生じる。このシステムは、こうした不整合を識
別し、変更されたディレクティブが実行されようとする
ときにディレクティブ・バッファの内容を無効にする働
きをする。
米国特許第4118789号明細書は、保護された部分
を含む制御プログラムを有するプログラマブル制御装置
を開示している。制御プログラムが実行されるたびに、
保護された部分がROMに記憶されている対応するプロ
グラムと比較される。
を含む制御プログラムを有するプログラマブル制御装置
を開示している。制御プログラムが実行されるたびに、
保護された部分がROMに記憶されている対応するプロ
グラムと比較される。
制御プログラムの保護された部分がROMに記憶された
部分と一致しない場合、エラー信号が生成されて実行が
妨げられる。
部分と一致しない場合、エラー信号が生成されて実行が
妨げられる。
米国特許第3879711号明細書は、データ処理装置
、中央記憶装置及び制御装置を含むディジタル・データ
処理システムを開示している。プログラム式ディレクテ
ィブを受け取るための標識メモリが設けられている。中
央記憶装置のディレクティブ・レジスタの内容を標識メ
モリの内容と比較するための比較機構が設けられている
。この比較機構は、両方の内容が同じとき、制御装置に
制御信号を供給する。
、中央記憶装置及び制御装置を含むディジタル・データ
処理システムを開示している。プログラム式ディレクテ
ィブを受け取るための標識メモリが設けられている。中
央記憶装置のディレクティブ・レジスタの内容を標識メ
モリの内容と比較するための比較機構が設けられている
。この比較機構は、両方の内容が同じとき、制御装置に
制御信号を供給する。
上記のホット・スポットの形成は並列処理システム独特
の問題であるが、単一のプロセッサを使用するシステム
、すなわち単一プロセッサ・システムにも、複数のタス
クの同期に関連する問題がある。単ユプロセッサ・シス
テムでは、通常、大きく複雑なプログラムが、上記の子
タスクと類似のより小さく個別に実行可能なタスクに分
割して実行される。その場合、オペレーティング・シス
テムが、様々なタスクの実行を同期させる責任を負う。
の問題であるが、単一のプロセッサを使用するシステム
、すなわち単一プロセッサ・システムにも、複数のタス
クの同期に関連する問題がある。単ユプロセッサ・シス
テムでは、通常、大きく複雑なプログラムが、上記の子
タスクと類似のより小さく個別に実行可能なタスクに分
割して実行される。その場合、オペレーティング・シス
テムが、様々なタスクの実行を同期させる責任を負う。
こうした同期としては、たとえばデータ入出力動作が完
了するまで一時的にタスクを阻止し、後で入出力動作が
完了したときにそのタスクを覚醒させるのに必要な同期
がある。
了するまで一時的にタスクを阻止し、後で入出力動作が
完了したときにそのタスクを覚醒させるのに必要な同期
がある。
単一プロセッサ・システムで複数のタスクを同期させる
には、通常、オペレーティング・システムが上記の型式
のセマフォアを読み取って各種タスクの状況を検査する
という、「ポーリング」動作を大規模に使用する必要が
ある。次いで、このポーリングの結果を使って、タスク
の状況を適宜変更することができる。しかし、このポー
リングには、かなりの量のシステム資源、特に処理時間
が必要である。同期を必要とするタスクの数が増すにつ
れて、ポーリングも増加する。最終的には、かなりの量
の処理時間がタスクの同期に束縛され、実際の処理に利
用できるシステム資源に悪影響を及ぼす。タスク状態に
ついては、tl. M. Dsitelの著書”An
Introduction to Processin
gSystems ” 、Addison−Wesle
y Publishing Companys(198
4年刊)pp.63−72を参照のこと。
には、通常、オペレーティング・システムが上記の型式
のセマフォアを読み取って各種タスクの状況を検査する
という、「ポーリング」動作を大規模に使用する必要が
ある。次いで、このポーリングの結果を使って、タスク
の状況を適宜変更することができる。しかし、このポー
リングには、かなりの量のシステム資源、特に処理時間
が必要である。同期を必要とするタスクの数が増すにつ
れて、ポーリングも増加する。最終的には、かなりの量
の処理時間がタスクの同期に束縛され、実際の処理に利
用できるシステム資源に悪影響を及ぼす。タスク状態に
ついては、tl. M. Dsitelの著書”An
Introduction to Processin
gSystems ” 、Addison−Wesle
y Publishing Companys(198
4年刊)pp.63−72を参照のこと。
単一プロセッサ及び多重プロセッサ環境におけるタスク
同期の詳細については、G. Boochの著書” S
oftware Engineering with
Ada ” s Benjamin/Cunnings
Publishing Co. ( 1 9 8 3
年刊)、pp.231−235を参照されたい。
同期の詳細については、G. Boochの著書” S
oftware Engineering with
Ada ” s Benjamin/Cunnings
Publishing Co. ( 1 9 8 3
年刊)、pp.231−235を参照されたい。
C.問題点を解決するための手段
本発明の主目的は、データ処理システムにおいて複数の
タスク間でデータをやりとりするための新しい改良され
た方法及び装置を提供することにある。
タスク間でデータをやりとりするための新しい改良され
た方法及び装置を提供することにある。
本発明の第2の目的は、選択した記憶位置でセマフォア
を使用することによるかかる方法及び装置を提供するこ
とにある。
を使用することによるかかる方法及び装置を提供するこ
とにある。
本発明の第3の目的は、単一プロセッサ処理システムに
おいて複数のタスク間でデータをやりとりするためのか
かる方法及び装置を提供することにある。
おいて複数のタスク間でデータをやりとりするためのか
かる方法及び装置を提供することにある。
本発明の第4の目的は、多重処理システムにおいて複数
のタスク間でデータをやりとりするためのかかる方法及
び装置を提供することにある。
のタスク間でデータをやりとりするためのかかる方法及
び装置を提供することにある。
本発明のより具体的な目的は、メモリ要素中で働くディ
レクティブを使ってセマフォアの状況を監視することに
より、処理システムにおいて複数のタスク間でデータを
やりとりするための方法及び装置を提供することにある
。
レクティブを使ってセマフォアの状況を監視することに
より、処理システムにおいて複数のタスク間でデータを
やりとりするための方法及び装置を提供することにある
。
本発明の第1の実施例によれば、相互接続手段によって
相互にかつ少なくとも1つの記憶要素と相互接続された
複数の処理要素を含む型式のデータ処理システム用の、
少なくとも1つの要求側処理要素が、選択した記憶要素
の選択した記憶位置にアクセスしてそこに記憶されたデ
ータを読み取ることができるようにする、新しい改良さ
れた方法が提供される。したがってこの方法は、複数の
処理要素間での情報のやりとりを可能にする。この方法
は、1)選択した記憶位置のアドレスと2)ディレクテ
ィブを送る要求側処理要素の識別とを含むディレクティ
ブを要求側処理要素から選択した記憶要素に送るステッ
プ、選択した記憶要素の選択した記憶位置に記憶された
データを読み取るステップ、読取りステップで得た読取
りデータを相互接続手段を介して要求側処理要素に送る
ステップ、ディレクティブを記憶要素に記憶するステ,
プ、及び選択した記憶位置のデータが変更されるたびに
、読取りステップと転送ステップを繰り返すステップを
含む。
相互にかつ少なくとも1つの記憶要素と相互接続された
複数の処理要素を含む型式のデータ処理システム用の、
少なくとも1つの要求側処理要素が、選択した記憶要素
の選択した記憶位置にアクセスしてそこに記憶されたデ
ータを読み取ることができるようにする、新しい改良さ
れた方法が提供される。したがってこの方法は、複数の
処理要素間での情報のやりとりを可能にする。この方法
は、1)選択した記憶位置のアドレスと2)ディレクテ
ィブを送る要求側処理要素の識別とを含むディレクティ
ブを要求側処理要素から選択した記憶要素に送るステッ
プ、選択した記憶要素の選択した記憶位置に記憶された
データを読み取るステップ、読取りステップで得た読取
りデータを相互接続手段を介して要求側処理要素に送る
ステップ、ディレクティブを記憶要素に記憶するステ,
プ、及び選択した記憶位置のデータが変更されるたびに
、読取りステップと転送ステップを繰り返すステップを
含む。
本発明の第2の実施例によれば、上記のディレクティブ
は比較対象値を含み、また記憶位置が変更されるたびに
読取りデータを送る代わりに、この方法では、読取りデ
ータを比較対象値と比較し、選択した記憶位置から読み
取ったデータが比較対象値と一致するとき、要求側処理
要素にその旨を通知する。
は比較対象値を含み、また記憶位置が変更されるたびに
読取りデータを送る代わりに、この方法では、読取りデ
ータを比較対象値と比較し、選択した記憶位置から読み
取ったデータが比較対象値と一致するとき、要求側処理
要素にその旨を通知する。
本発明の第3の実施例によれば、相互接続手段によって
少なくとも1つの記憶要素と相互接続された処理要素を
含む型式のデータ処理システム用の、少なくとも1つの
要求側タスクが少なくとも1つの選択した記憶位置にア
クセスしてそこに記憶されたデータを読み取ることがで
きるようにする方法が提供される。この方法は、1)選
択した記憶位置のアドレスと2)要求側タスクの識別と
を含むディレクティブを処理要素から記憶要素に送るス
テップ、記憶要素の選択した記憶位置に記憶されたデー
タを読み取るステップ、読取りステップで得られた読取
りデータをタスク識別と共に処理要素に送るステップ、
ディレクティブを記憶要素に記憶するステップ、及び選
択した記憶位置のデータが変更されるたびに読取りステ
ップと転送ステップを繰り返すステップを含む。
少なくとも1つの記憶要素と相互接続された処理要素を
含む型式のデータ処理システム用の、少なくとも1つの
要求側タスクが少なくとも1つの選択した記憶位置にア
クセスしてそこに記憶されたデータを読み取ることがで
きるようにする方法が提供される。この方法は、1)選
択した記憶位置のアドレスと2)要求側タスクの識別と
を含むディレクティブを処理要素から記憶要素に送るス
テップ、記憶要素の選択した記憶位置に記憶されたデー
タを読み取るステップ、読取りステップで得られた読取
りデータをタスク識別と共に処理要素に送るステップ、
ディレクティブを記憶要素に記憶するステップ、及び選
択した記憶位置のデータが変更されるたびに読取りステ
ップと転送ステップを繰り返すステップを含む。
本発明の第4の実施例によれば、上記のディレクティブ
は比較対象値を含み、また記憶位置が変更されたとき読
取りデータを送る代わりに、この方法では読取りデータ
を比較対象値と比較し、選択した記憶位置から読み取っ
たデータが比較対象値と一致するとき、処理要素にその
旨を通知する。
は比較対象値を含み、また記憶位置が変更されたとき読
取りデータを送る代わりに、この方法では読取りデータ
を比較対象値と比較し、選択した記憶位置から読み取っ
たデータが比較対象値と一致するとき、処理要素にその
旨を通知する。
本発明の第5の実施例によれば、相互接続手段によって
少なくとも1つの記憶要素と相互接続された少なくとも
1つの処理要素を含む型式のデータ処理システム用の、
記憶要素に記憶されたディレクティブに基づいてプリミ
ティブ命令を実行する方法が提供される。この方法は、
1)選択した記憶位置と2)要求側処理要素の識別とを
含むデイレクティブを読み取るステップ、そのアドレス
からデータを読み取るステップ、読取りデータを処理要
素に送るステップ、及び選択した記憶位置のデータが変
化したときにディレクテイブ読取りステップ、データ読
取りステップ、データ転送ステップを繰り返すステップ
を含む。
少なくとも1つの記憶要素と相互接続された少なくとも
1つの処理要素を含む型式のデータ処理システム用の、
記憶要素に記憶されたディレクティブに基づいてプリミ
ティブ命令を実行する方法が提供される。この方法は、
1)選択した記憶位置と2)要求側処理要素の識別とを
含むデイレクティブを読み取るステップ、そのアドレス
からデータを読み取るステップ、読取りデータを処理要
素に送るステップ、及び選択した記憶位置のデータが変
化したときにディレクテイブ読取りステップ、データ読
取りステップ、データ転送ステップを繰り返すステップ
を含む。
本発明の第6の実施例によれば、上記のディレクティブ
は比較対象値を含み、また記憶位置が変化するたびに読
取りデータを送る代わりに、この方法では読取りデータ
を比較対象値と比較し、選択した記憶位置から読み取っ
たデータが比較対象値と一致するとき、要求側処理要素
にその旨を通知する。
は比較対象値を含み、また記憶位置が変化するたびに読
取りデータを送る代わりに、この方法では読取りデータ
を比較対象値と比較し、選択した記憶位置から読み取っ
たデータが比較対象値と一致するとき、要求側処理要素
にその旨を通知する。
D.実施例
本発明を、まず多重処理システムに関して説明し、続い
て単一プロセッサ・システムに関して説明する。
て単一プロセッサ・システムに関して説明する。
第1図には、多重プロセッサ・システム10の簡略化し
た構成図を示す。多重プロセッサ・システム10は、相
互接続ネットワーク18を介してM個の記憶要素(ME
)14−1ないし14−Mに接続された、N個の処理要
素(PE)12−1ないし12−Nを含む。処理要素1
2と記憶要素14は、その間で両方向でのデータのやり
とりが可能なように、ネットワーク16で相互接続され
ている。下記でさらに詳しく考察するが、システム10
は、処理要素12が記憶要素14の間に分散された共用
データにアクセスでき、様々なタスクが単一のオペレー
ティング・システム(図示せず)によって制御される、
処理要素12の間でのタスクの並列処理が可能なように
構成されている。
た構成図を示す。多重プロセッサ・システム10は、相
互接続ネットワーク18を介してM個の記憶要素(ME
)14−1ないし14−Mに接続された、N個の処理要
素(PE)12−1ないし12−Nを含む。処理要素1
2と記憶要素14は、その間で両方向でのデータのやり
とりが可能なように、ネットワーク16で相互接続され
ている。下記でさらに詳しく考察するが、システム10
は、処理要素12が記憶要素14の間に分散された共用
データにアクセスでき、様々なタスクが単一のオペレー
ティング・システム(図示せず)によって制御される、
処理要素12の間でのタスクの並列処理が可能なように
構成されている。
こうした並列処理をサポートする様々なオペレーティン
グ・システムが当業者には周知であり、特定のオペレー
ティング・システムの詳細は本発明を理解するために必
要ではない。
グ・システムが当業者には周知であり、特定のオペレー
ティング・システムの詳細は本発明を理解するために必
要ではない。
第2図には、ある例示的処理要素12−Nの特徴をより
詳細に示す。処理要素12−Nは、計算機エンジン18
を含んでいる。エンジン18は、いずれも当業者には周
知の通常の機能である、演算論理機構(ALU)と浮動
小数点処理装置(FPP)を含むことが好ましい。計算
機工冫ジン18で生成された記憶アドレスを記憶要素1
4(第1図)にマップするための、各処理要素12専用
の(ただし、必ずしもその処理要素ハードウェア内部に
ある必要はない)局所記憶空間48Aを含む、記憶マッ
ピング制御装置20が、計算機エンジン18に接続され
ている。相互接続ネットワーク16との論理的インター
フェースをもたらすインターフェース22が、記憶マッ
ピング制御装置20に接続されている。各処理要素12
内部の各種構成要素の動作を制御するための制御装置2
4が、各処理要素12に付随している。各種要素間み相
互接続は単線で示すことができるが、図面は論理的接続
を示すことを意図したものであり、実際の信号線は、複
数の並列信号をサポートする複数の導線からなるバスを
含むことが可能なことを了解されたい。
詳細に示す。処理要素12−Nは、計算機エンジン18
を含んでいる。エンジン18は、いずれも当業者には周
知の通常の機能である、演算論理機構(ALU)と浮動
小数点処理装置(FPP)を含むことが好ましい。計算
機工冫ジン18で生成された記憶アドレスを記憶要素1
4(第1図)にマップするための、各処理要素12専用
の(ただし、必ずしもその処理要素ハードウェア内部に
ある必要はない)局所記憶空間48Aを含む、記憶マッ
ピング制御装置20が、計算機エンジン18に接続され
ている。相互接続ネットワーク16との論理的インター
フェースをもたらすインターフェース22が、記憶マッ
ピング制御装置20に接続されている。各処理要素12
内部の各種構成要素の動作を制御するための制御装置2
4が、各処理要素12に付随している。各種要素間み相
互接続は単線で示すことができるが、図面は論理的接続
を示すことを意図したものであり、実際の信号線は、複
数の並列信号をサポートする複数の導線からなるバスを
含むことが可能なことを了解されたい。
処理要素12の動作に際して、制御論理回路24は局所
記憶空間48Aを含むメモリ中に記憶されたディレクテ
ィブに従って計算機エンジン18を制御する働きをする
。記憶マッピング制御装置20は、下記でさらに詳しく
考察する様々な記憶ページング方式及びインターリーブ
方式が可能なように計算機工冫ジン18で生成された記
憶アドレスを変換する働きをする。インターフェース2
2は、記憶マッピング制御装置20と相互接続ネットワ
ーク16の間でディジタル・データを交換するための論
理的インターフェースをもたらす。
記憶空間48Aを含むメモリ中に記憶されたディレクテ
ィブに従って計算機エンジン18を制御する働きをする
。記憶マッピング制御装置20は、下記でさらに詳しく
考察する様々な記憶ページング方式及びインターリーブ
方式が可能なように計算機工冫ジン18で生成された記
憶アドレスを変換する働きをする。インターフェース2
2は、記憶マッピング制御装置20と相互接続ネットワ
ーク16の間でディジタル・データを交換するための論
理的インターフェースをもたらす。
第2図に示した処理要素12は、本発明の説明では、総
称型式の処理要素を表すものとする。特定の型式の多数
の処理要素、たとえば、インテル8038B型が当業者
には周知である。本明細書で上記に引用した各文書に記
載されているIBMRP3並列処理システムで使用され
る処理要素の説明は、W. C. Brantley等
の論文” RP3Processor−Memory
Element”, IEEE PROCEEDING
SOF T}IE 1985 INTERMATIOH
AL CONFEREHCE OHPARALLEL
PROCESSIHG, I) I) . 7 8 2
− 7 8 9を参照されたい。
称型式の処理要素を表すものとする。特定の型式の多数
の処理要素、たとえば、インテル8038B型が当業者
には周知である。本明細書で上記に引用した各文書に記
載されているIBMRP3並列処理システムで使用され
る処理要素の説明は、W. C. Brantley等
の論文” RP3Processor−Memory
Element”, IEEE PROCEEDING
SOF T}IE 1985 INTERMATIOH
AL CONFEREHCE OHPARALLEL
PROCESSIHG, I) I) . 7 8 2
− 7 8 9を参照されたい。
第3図には、本発明に基づく構造の記憶要素14を示す
。記憶要素14は、4個のディジタル・データ比較機構
30、32、34、3θ、3つの時間定義域マルチプレ
クサ(MUX)38、40、42、ディジタル加算器4
4、動的ランダム・アクセス記憶装lit ({)RA
M)チップから構成される主記憶装置46、及び連想式
アドレス制御装置48とやはりDRAMから構成される
連想式メモリ50とを含む連想式記憶システムを含む。
。記憶要素14は、4個のディジタル・データ比較機構
30、32、34、3θ、3つの時間定義域マルチプレ
クサ(MUX)38、40、42、ディジタル加算器4
4、動的ランダム・アクセス記憶装lit ({)RA
M)チップから構成される主記憶装置46、及び連想式
アドレス制御装置48とやはりDRAMから構成される
連想式メモリ50とを含む連想式記憶システムを含む。
当業者なら理解できることだが、上記の構成要素はすべ
てディジタル信号処理の分野では通常のものである。連
想式メモリ50の構造及び動作に関する情報は、Hva
ngとBraggsの共著” ComputerArc
hitecture and Parallel Pr
ocessing″McGrav一旧11社、1984
年刊、1)p.375−380に出ている。記憶要素1
4内には、さらに下記で詳しく説明する方式で記憶要素
の動作を制御するための制御論理回路52が含まれる。
てディジタル信号処理の分野では通常のものである。連
想式メモリ50の構造及び動作に関する情報は、Hva
ngとBraggsの共著” ComputerArc
hitecture and Parallel Pr
ocessing″McGrav一旧11社、1984
年刊、1)p.375−380に出ている。記憶要素1
4内には、さらに下記で詳しく説明する方式で記憶要素
の動作を制御するための制御論理回路52が含まれる。
記憶要素14の構造についての説明を続けると、主記憶
装置46は、そのアドレス入力がマルチプレクサ42の
出力に接続されている。記憶装置14は、そのデータ入
力が、マルチプレクサ38への入力、比較機構34への
入力、連想式メモリ50へのデータ入力D2及び比較機
構32への入力と並列に、DATA WRITE信号
線に接続されている。DATA WRITE信号は、
メモリ14に書き込まれるたとえば8ビット・バイトの
データを含む。主メモリ46は、そのデータ出力がマル
チプレクサ38の入力及び比較機構32の入力と並列に
接続されている。マルチプレクサ42は、その第1の入
力が、比較機構30への入力、メモリ50へのデータ入
力D1及び連想式アドレス制御装置48への入力と並列
にADDRESS信号線に接続されている。ADDRE
SS信号は、メモリ46内のアクセスされる記憶位置の
アドレスを含む。マルチプレクサ42は、その第2の入
力が比較機構30への入力と並列にメモリ50の出力0
1に接続されている。
装置46は、そのアドレス入力がマルチプレクサ42の
出力に接続されている。記憶装置14は、そのデータ入
力が、マルチプレクサ38への入力、比較機構34への
入力、連想式メモリ50へのデータ入力D2及び比較機
構32への入力と並列に、DATA WRITE信号
線に接続されている。DATA WRITE信号は、
メモリ14に書き込まれるたとえば8ビット・バイトの
データを含む。主メモリ46は、そのデータ出力がマル
チプレクサ38の入力及び比較機構32の入力と並列に
接続されている。マルチプレクサ42は、その第1の入
力が、比較機構30への入力、メモリ50へのデータ入
力D1及び連想式アドレス制御装置48への入力と並列
にADDRESS信号線に接続されている。ADDRE
SS信号は、メモリ46内のアクセスされる記憶位置の
アドレスを含む。マルチプレクサ42は、その第2の入
力が比較機構30への入力と並列にメモリ50の出力0
1に接続されている。
連想式メモリ50は、そのアドレス入力が連想式アドレ
ス制御装置48の出力に接続され、データ入力D3が加
算器44の出力に接続されている。
ス制御装置48の出力に接続され、データ入力D3が加
算器44の出力に接続されている。
連想式メモリ50のデータ入力D4は、マルチプレクサ
40への入力と並列に要求側プロセッサ識別PID
REQ信号線に接続され、マルチブレクサ40への第2
の入力は連想式メモリの出力04に接続されている。P
ID REQ信号は、要求側処理要素12の識別と、
該当する場合は、その処理要素によって実行される特定
のタスクの識別とを含む。連想式メモリ50の出力03
は、比較機構36の入力に接続され、メモリ50の出力
02は比較機構34の入力に接続されている。比較機構
38は、第2の入力が加算器44への入力と並列に、M
ASTER TIME CLOCK信号に接続され
、加算器への第2の入力はTIMEOUT信号線に接続
されている。MASTERTIME CLOCK信号
は、クロック・バス(図示せず)によってシステム10
全体に分配された実時間カウンタである。TIMEOU
T信号はタスク指名側処理要素12によって供給され、
記憶要素14が下記の比較及び通知(CAN)ディレク
ティブを繰返し実行する時間をもたらす。
40への入力と並列に要求側プロセッサ識別PID
REQ信号線に接続され、マルチブレクサ40への第2
の入力は連想式メモリの出力04に接続されている。P
ID REQ信号は、要求側処理要素12の識別と、
該当する場合は、その処理要素によって実行される特定
のタスクの識別とを含む。連想式メモリ50の出力03
は、比較機構36の入力に接続され、メモリ50の出力
02は比較機構34の入力に接続されている。比較機構
38は、第2の入力が加算器44への入力と並列に、M
ASTER TIME CLOCK信号に接続され
、加算器への第2の入力はTIMEOUT信号線に接続
されている。MASTERTIME CLOCK信号
は、クロック・バス(図示せず)によってシステム10
全体に分配された実時間カウンタである。TIMEOU
T信号はタスク指名側処理要素12によって供給され、
記憶要素14が下記の比較及び通知(CAN)ディレク
ティブを繰返し実行する時間をもたらす。
制御論理回路52は、処理要素12によって記憶要素1
4の外部で生成される3種の制御信号、すなわち入りア
ドレス信号及びデータ信号が有効なことを示すVALI
D IN信号、所期のメモリ・アクセスの型式(すな
わちREAD1LOAD等)を示すREQUEST
TYPE信号、記憶要素14から処理要素に送られたデ
ータが受け入れられることを示すACCEPTED信号
を受け取る。ADDRESS信号、DATA WRI
TE信号、TIMEOUT信号及びPID REQ信
号を含めて、記憶要素14は処理要素12から7種の信
号を受け取る。
4の外部で生成される3種の制御信号、すなわち入りア
ドレス信号及びデータ信号が有効なことを示すVALI
D IN信号、所期のメモリ・アクセスの型式(すな
わちREAD1LOAD等)を示すREQUEST
TYPE信号、記憶要素14から処理要素に送られたデ
ータが受け入れられることを示すACCEPTED信号
を受け取る。ADDRESS信号、DATA WRI
TE信号、TIMEOUT信号及びPID REQ信
号を含めて、記憶要素14は処理要素12から7種の信
号を受け取る。
制御論理回路52は、記憶要素14の外部の処理要素1
2に送る2種の制御信号、すなわちメモリが自由に要求
を受け入れできることを示す送信クリア(CTS)信号
と、有効データがマルチプレクサ38及び40の出力か
ら送られることを示すVALID OUT信号を生成
する。したがって、マルチプレクサ38の出力における
DATAREAD信号とマルチブレクサ40の出力にお
けるPID RESP信号を含めて、記憶要素14は
処理要素12に送る4種の信号を生成する。
2に送る2種の制御信号、すなわちメモリが自由に要求
を受け入れできることを示す送信クリア(CTS)信号
と、有効データがマルチプレクサ38及び40の出力か
ら送られることを示すVALID OUT信号を生成
する。したがって、マルチプレクサ38の出力における
DATAREAD信号とマルチブレクサ40の出力にお
けるPID RESP信号を含めて、記憶要素14は
処理要素12に送る4種の信号を生成する。
制御機構52はさらにシステム・クロック・パルスSY
STEM CLOCKを受け取る。
STEM CLOCKを受け取る。
記憶要素14の内部で、制御論理回路52は、比較機構
30、32、34、36からの出力信号と連想式アドレ
ス制御装置48からのデータ(以下で説明する)の5つ
の信号を受け取るように接続されている。制御論理回路
52は、記憶要素14内のマルチブレクサ40、メモリ
501連想式アドレス制御装置48、主記憶装置46、
マルチブレクサ38の各装置に制御信号を送るように接
続されている。
30、32、34、36からの出力信号と連想式アドレ
ス制御装置48からのデータ(以下で説明する)の5つ
の信号を受け取るように接続されている。制御論理回路
52は、記憶要素14内のマルチブレクサ40、メモリ
501連想式アドレス制御装置48、主記憶装置46、
マルチブレクサ38の各装置に制御信号を送るように接
続されている。
次に第4図に、主記憶装置48’内のメモリ空間を廃棄
する好ましい方法を示す簡単な概略図を示す。第4図で
は、主記憶装置46゜は記憶要素14間に分配された主
記憶装置の全体、すなわちM個の各記憶要素14中の主
記憶装置46の合計によってもたらされる全記憶空間を
含むものと了解されたい。メモリ4B’の下部アドレス
46Bは、一般にオペレーティング・システムのカーネ
ル用に指定されている。上部アドレス記憶空間46Cは
、任意のプロセッサ12からアクセス可能な共用記憶空
間として指定され、たとえばセマフォア(またはフラグ
)54、5Bとカウント58などの共用データとを含む
。上部アドレス記憶空間48Cとオペレーティング・シ
ステムが占める下部アドレス記憶空間48Bの間の記憶
空間48A(第2図をも参照)は、特定の処理要素12
に関連する非共用(専用)メモリとして指定される。
する好ましい方法を示す簡単な概略図を示す。第4図で
は、主記憶装置46゜は記憶要素14間に分配された主
記憶装置の全体、すなわちM個の各記憶要素14中の主
記憶装置46の合計によってもたらされる全記憶空間を
含むものと了解されたい。メモリ4B’の下部アドレス
46Bは、一般にオペレーティング・システムのカーネ
ル用に指定されている。上部アドレス記憶空間46Cは
、任意のプロセッサ12からアクセス可能な共用記憶空
間として指定され、たとえばセマフォア(またはフラグ
)54、5Bとカウント58などの共用データとを含む
。上部アドレス記憶空間48Cとオペレーティング・シ
ステムが占める下部アドレス記憶空間48Bの間の記憶
空間48A(第2図をも参照)は、特定の処理要素12
に関連する非共用(専用)メモリとして指定される。
メモリのこれらの領域46A,46B,48Cはサイズ
が固定されていす、また本来連続している必要のないこ
とを了解されたい。それらの領域は、本発明の並列処理
システム内で記憶資源を割り振る1つの好ましい方法で
ある。
が固定されていす、また本来連続している必要のないこ
とを了解されたい。それらの領域は、本発明の並列処理
システム内で記憶資源を割り振る1つの好ましい方法で
ある。
記憶要素14は、それぞれDRAMメモリ46をサポー
トするM個の離散要素として示したが、実際の実施態様
では、メモリは1個または複数の要素から構成でき、通
常は当業者には周知の多数の方式でページングされイン
ターリーブされていることを了解されたい。処理要素1
2のメモリ・マッピング制御装置20は、計算機エンジ
ン18によって生成されたアドレスを選択されたべ一ソ
ング方式またはインターリーブ方式あるいはその両方に
基づいて変換する働きをする。並列処理システムにおけ
るメモリ・アドレッシングのより詳しい考察については
、Hwang とBriggsの共著″Compute
r Architecture and Parall
elProcessing ” 、McGraw−Hi
ll 社、1984年刊、pp.80−L1gを参照さ
れたい。並列処理システム10における記憶要素14の
動作の詳しい説明は、後で第6図ないし第8図に関連し
て行なう。
トするM個の離散要素として示したが、実際の実施態様
では、メモリは1個または複数の要素から構成でき、通
常は当業者には周知の多数の方式でページングされイン
ターリーブされていることを了解されたい。処理要素1
2のメモリ・マッピング制御装置20は、計算機エンジ
ン18によって生成されたアドレスを選択されたべ一ソ
ング方式またはインターリーブ方式あるいはその両方に
基づいて変換する働きをする。並列処理システムにおけ
るメモリ・アドレッシングのより詳しい考察については
、Hwang とBriggsの共著″Compute
r Architecture and Parall
elProcessing ” 、McGraw−Hi
ll 社、1984年刊、pp.80−L1gを参照さ
れたい。並列処理システム10における記憶要素14の
動作の詳しい説明は、後で第6図ないし第8図に関連し
て行なう。
第3図に示した要素の多くは、以下では記憶要素「内」
にあるものとして説明し、それらの要素が実行する機能
の多くは、記憶要素「内」で実行されるものとして説明
する。第1図に戻って、記憶要素「内」の要素及び機能
とは、それらの要素及び機能が、機能的に記憶要素側の
相互接続ネットワーク・ボートの外部にあることを意味
するものとする。「内」という言葉は、ボード、チップ
、キャビネットの位置などの物理的関係が必要なことを
示唆するものではない。
にあるものとして説明し、それらの要素が実行する機能
の多くは、記憶要素「内」で実行されるものとして説明
する。第1図に戻って、記憶要素「内」の要素及び機能
とは、それらの要素及び機能が、機能的に記憶要素側の
相互接続ネットワーク・ボートの外部にあることを意味
するものとする。「内」という言葉は、ボード、チップ
、キャビネットの位置などの物理的関係が必要なことを
示唆するものではない。
第1図に戻って、システム10内で使用される相互接続
ネットワーク16の型式は、本発明の理解あるいは実施
にとって重要ではない。上記の「ホット・スポット」に
関する諸論文を参照すれば、本発明で対象とする問題が
、使用する相互接続ネットワークの型式に関わらず、並
列処理システム内で生じることがわかるはずである。相
互接続ネットワーク16としてバス・ネットワーク、マ
トリックス交換ネットワーク、多重バス/多重ポート・
ネットワーク、あるいはそれらの組合せのいずれを選択
しようと、ネットワーク16は、複数・のシンク(すな
わち、処理装置、人出.力装置など)をあらゆる共用記
憶位置に相互接続するツリー構造を含まねばならない。
ネットワーク16の型式は、本発明の理解あるいは実施
にとって重要ではない。上記の「ホット・スポット」に
関する諸論文を参照すれば、本発明で対象とする問題が
、使用する相互接続ネットワークの型式に関わらず、並
列処理システム内で生じることがわかるはずである。相
互接続ネットワーク16としてバス・ネットワーク、マ
トリックス交換ネットワーク、多重バス/多重ポート・
ネットワーク、あるいはそれらの組合せのいずれを選択
しようと、ネットワーク16は、複数・のシンク(すな
わち、処理装置、人出.力装置など)をあらゆる共用記
憶位置に相互接続するツリー構造を含まねばならない。
したがって、使用する相互接続ネットワークの型式が何
であれ、本発明を適用して記憶アクセスの競合によるホ
ット・スポットの発生を最小限に抑えることができる。
であれ、本発明を適用して記憶アクセスの競合によるホ
ット・スポットの発生を最小限に抑えることができる。
特定の型式の相互接続ネットワークの一例として、上記
のIBM RP3並列処理装置で使用されている相互
接続ネットワークについて記賊した上記のG. F.
Pfister等の論文″The IBM Resea
rchParallel Processor Pro
totype(RP3):Introduction
and Architecture″ pp.7f34
−77 1を参照されたい。
のIBM RP3並列処理装置で使用されている相互
接続ネットワークについて記賊した上記のG. F.
Pfister等の論文″The IBM Resea
rchParallel Processor Pro
totype(RP3):Introduction
and Architecture″ pp.7f34
−77 1を参照されたい。
ここで第5図を参照すると、第5A図及び第5B図には
、従来技術に基づくスピン・ループを使用した簡単なF
ORK/JOINプロセスを示す。
、従来技術に基づくスピン・ループを使用した簡単なF
ORK/JOINプロセスを示す。
本発明、とくに第3図の記憶要素14の動作は、第5図
に示したスピン・ループを除去することによ,り、ホッ
ト・スポットの問題を実質的に解決することを理解され
たい。ここで従来技術の動作について、それが以下で説
明する本発明の動作に基づく改良された動作と明確に対
照できる範囲で説明する。
に示したスピン・ループを除去することによ,り、ホッ
ト・スポットの問題を実質的に解決することを理解され
たい。ここで従来技術の動作について、それが以下で説
明する本発明の動作に基づく改良された動作と明確に対
照できる範囲で説明する。
第5図は、親タスク5AとN個の子タスク5Bを含むプ
ロセスの流れ図を示す。これらの親タスク及び子タスク
は、複数の処理要素中での並列処理のためにオペレーテ
ィング・システムによって解析されている。親タスク5
Aは、並列処理のためにN個の子タスク5Bが必要とす
るデータを初期設定し、次いで共用記憶位置FLAGI
に記憶された”−1”のカウント(セマフォア)で子タ
スクに合図する。次いで親タスクは破線60で示したス
ピン・ループに入り、そこでFLAGIに記憶されてい
るカウントを繰返し取り出して、すべての子タスクがそ
の処理を完了したかどうか、すなわち記憶されたカウン
トが子タスクの数Nに等しいかどうかを判定する。読み
取った値が子タスクがすべて完了したことを示すまで、
親タスクはこのスピンーループ内に留まって、記憶位置
FLAG 1に記憶されたカウントを繰返し取り出す。
ロセスの流れ図を示す。これらの親タスク及び子タスク
は、複数の処理要素中での並列処理のためにオペレーテ
ィング・システムによって解析されている。親タスク5
Aは、並列処理のためにN個の子タスク5Bが必要とす
るデータを初期設定し、次いで共用記憶位置FLAGI
に記憶された”−1”のカウント(セマフォア)で子タ
スクに合図する。次いで親タスクは破線60で示したス
ピン・ループに入り、そこでFLAGIに記憶されてい
るカウントを繰返し取り出して、すべての子タスクがそ
の処理を完了したかどうか、すなわち記憶されたカウン
トが子タスクの数Nに等しいかどうかを判定する。読み
取った値が子タスクがすべて完了したことを示すまで、
親タスクはこのスピンーループ内に留まって、記憶位置
FLAG 1に記憶されたカウントを繰返し取り出す。
取り出した値が、子タスクが完了したことを示すと、親
タスクは子タスクの結果を収集し、別の記憶位置FLA
G2に″−1″カウントを記憶して、子タスクがすべて
完了しデータが収集されたことを子タスクに示す。
タスクは子タスクの結果を収集し、別の記憶位置FLA
G2に″−1″カウントを記憶して、子タスクがすべて
完了しデータが収集されたことを子タスクに示す。
N個の子タスクの方は、62でスピン・ループを開始し
て、処理を開始できる(すなわち、必要なデータが初期
設定された)ことを示すn it″のカウントを受け
取るまで、記憶位置FLAGIの内容を繰返し取り出す
。各子タスクは、そのタスク、すなわち作業の「断片」
を実行し、その完了時にFLAG1のカウントを増分す
る。その後、各子タスクは第2のスピン・ルーブ64に
入り、処理が完了しデータが収集されたことをFLAG
2のカウントが示すまで、そのカウントを繰返し取り出
す。このようにして、並列処理される親/子タスクの簡
単なFORK/JOIN動作から、3つのスピン・ルー
プ80,82、84が確立される。
て、処理を開始できる(すなわち、必要なデータが初期
設定された)ことを示すn it″のカウントを受け
取るまで、記憶位置FLAGIの内容を繰返し取り出す
。各子タスクは、そのタスク、すなわち作業の「断片」
を実行し、その完了時にFLAG1のカウントを増分す
る。その後、各子タスクは第2のスピン・ルーブ64に
入り、処理が完了しデータが収集されたことをFLAG
2のカウントが示すまで、そのカウントを繰返し取り出
す。このようにして、並列処理される親/子タスクの簡
単なFORK/JOIN動作から、3つのスピン・ルー
プ80,82、84が確立される。
第6図の従来技術の説明を続けると、スピン・ループ8
0、82、84のそれぞれでループが実行されるたびに
、要求側処理要素で記憶位置のFETCHが開始され、
相互接続ネットワークを介して記憶位置に伝播される。
0、82、84のそれぞれでループが実行されるたびに
、要求側処理要素で記憶位置のFETCHが開始され、
相互接続ネットワークを介して記憶位置に伝播される。
FETCHは、読み取るべきフラグ・アドレスを記憶す
る特定の記憶要素内でプリミティブとして実行され、そ
の記憶位置から読み取られた値が、相互接続ネットワー
クを介して要求側処理要素に送り戻される。並列に実行
されるタスクの数が増すにつれて、タスク間の調整を行
なうために必要な記憶セマフォア動作も増大する。記憶
セマフォア動作が増大するにつれて、スピン・ループの
数が増加する。そして、上記及び参照文献に記載するよ
うに、スピン・ループの数が増すにつれて、記憶位置に
アクセスするための競合及び干渉が増大する。たとえば
、第5図に示した動作において、ある時点でN個の子タ
スクがすべてFLAGI及びFLAG2に記憶された値
を読み取るために競合する状態になることがわかる。こ
の競合によって、上記のホット・スポットが生じて、相
互接続ネットワークのデータ伝送能力を大いに阻害し、
したがって多重プロセッサ・システムの処理効率が大幅
に低下する。こうしたホット・スポットが生成されると
、スピン・ループ内のアクセスされる記憶位置でメモリ
・アクセスの競合が起こるだけでなく、すべての相互接
続ネットワークにつきもののツリー構造のために、どの
記憶位置にアクセスする際にも干渉が起こる。したがっ
て、スピン・ノレーブはいうなれば相互に相乗効果を発
揮してシステム性能を低下させるということができる。
る特定の記憶要素内でプリミティブとして実行され、そ
の記憶位置から読み取られた値が、相互接続ネットワー
クを介して要求側処理要素に送り戻される。並列に実行
されるタスクの数が増すにつれて、タスク間の調整を行
なうために必要な記憶セマフォア動作も増大する。記憶
セマフォア動作が増大するにつれて、スピン・ループの
数が増加する。そして、上記及び参照文献に記載するよ
うに、スピン・ループの数が増すにつれて、記憶位置に
アクセスするための競合及び干渉が増大する。たとえば
、第5図に示した動作において、ある時点でN個の子タ
スクがすべてFLAGI及びFLAG2に記憶された値
を読み取るために競合する状態になることがわかる。こ
の競合によって、上記のホット・スポットが生じて、相
互接続ネットワークのデータ伝送能力を大いに阻害し、
したがって多重プロセッサ・システムの処理効率が大幅
に低下する。こうしたホット・スポットが生成されると
、スピン・ループ内のアクセスされる記憶位置でメモリ
・アクセスの競合が起こるだけでなく、すべての相互接
続ネットワークにつきもののツリー構造のために、どの
記憶位置にアクセスする際にも干渉が起こる。したがっ
て、スピン・ノレーブはいうなれば相互に相乗効果を発
揮してシステム性能を低下させるということができる。
次に第3図と第6図を参照して、本発明の動作について
説明する。第3図は、上記のようなハードウェア実施態
様を示し、第8図は以下で説明するプロセスの流れを示
す。第6図は3つの部分に分かれており、第6A図は要
求側処理要素12内でCAMディレクティブを生成する
ために実行される機能を示し、第6B図は記憶要素14
内でCANディレクティブをプリミティブとして実行す
るために実行される機能を示し、第6C図は要求側処理
要素12内でCANディレクティブの実行中及び実行後
に実行される機能を示す。概要を述べると、この動作は
全体的に、比較及び通知(CAN)ディレクティブが、
要求側またはタスク指名側処理要素12によってアセン
ブルされて開始され、指定されたアドレスを含む(第3
図に示した型式の)記憶要素14内でプリミティブとし
て実行されることからなる。1)ただちに成功するCA
N1及び2)記憶されて再実行されるCANという2つ
の状況についてこの動作を説明する。
説明する。第3図は、上記のようなハードウェア実施態
様を示し、第8図は以下で説明するプロセスの流れを示
す。第6図は3つの部分に分かれており、第6A図は要
求側処理要素12内でCAMディレクティブを生成する
ために実行される機能を示し、第6B図は記憶要素14
内でCANディレクティブをプリミティブとして実行す
るために実行される機能を示し、第6C図は要求側処理
要素12内でCANディレクティブの実行中及び実行後
に実行される機能を示す。概要を述べると、この動作は
全体的に、比較及び通知(CAN)ディレクティブが、
要求側またはタスク指名側処理要素12によってアセン
ブルされて開始され、指定されたアドレスを含む(第3
図に示した型式の)記憶要素14内でプリミティブとし
て実行されることからなる。1)ただちに成功するCA
N1及び2)記憶されて再実行されるCANという2つ
の状況についてこの動作を説明する。
状況1:ただちに成功するCAN
第3図及び第6A図を参照すると、CANディレクティ
ブを開始するため、要求側処理要素12はまず、異なる
4つのデータ・フィールドを含むディレクティブをアセ
ンブルする。最初のフィールドは処理要素とタスクの識
別子(PID REQ)で、どの処理要素12がCA
Nを要求しているかを識別するデータを含む。要求側処
理要素12内で実行される複数のタスクを互いに区別す
る必要がある場合、最初のデータ・フィールドにタスク
識別子も含まれる。第2のデータ・フィールドは、読み
取られる記憶フラグ、すなわち選択された記憶要素14
内の選択された記憶位置のアドレス(ADDRESS)
である。第3のデータ・フィールドは、要求側マイクロ
プロセッサが記憶フラグのアドレスで見つかると期待す
る比較対象値である。この第3のデータ・フィールドは
、ディレクティプが送られるとき、第3図のDATAW
RITE信号線上に到着する。第4のデータ・フィール
ドは,CANディレクティブがただちに成功するのでは
ない場合に記憶要素内で繰り返される時間を定義するタ
イムアウト値(TIMEOUT)である。
ブを開始するため、要求側処理要素12はまず、異なる
4つのデータ・フィールドを含むディレクティブをアセ
ンブルする。最初のフィールドは処理要素とタスクの識
別子(PID REQ)で、どの処理要素12がCA
Nを要求しているかを識別するデータを含む。要求側処
理要素12内で実行される複数のタスクを互いに区別す
る必要がある場合、最初のデータ・フィールドにタスク
識別子も含まれる。第2のデータ・フィールドは、読み
取られる記憶フラグ、すなわち選択された記憶要素14
内の選択された記憶位置のアドレス(ADDRESS)
である。第3のデータ・フィールドは、要求側マイクロ
プロセッサが記憶フラグのアドレスで見つかると期待す
る比較対象値である。この第3のデータ・フィールドは
、ディレクティプが送られるとき、第3図のDATAW
RITE信号線上に到着する。第4のデータ・フィール
ドは,CANディレクティブがただちに成功するのでは
ない場合に記憶要素内で繰り返される時間を定義するタ
イムアウト値(TIMEOUT)である。
CANディレクティブがアセンブルされると、制御装置
52との適当な電子的「初期接続手順」を介して記憶要
素14に送られる。この電子的初期接続手順を行なうた
め、要求側処理要素12は送信クリア(CTS)信号線
を検査して、選択された記憶要素14が自由にディレク
ティブを受け取れることを確認し、次いでCANディレ
クティブを識別する適切なREQUEST TYPE
信号をVALID IN信号及びアセンブルしたCA
Nディレクティブと共に送る。
52との適当な電子的「初期接続手順」を介して記憶要
素14に送られる。この電子的初期接続手順を行なうた
め、要求側処理要素12は送信クリア(CTS)信号線
を検査して、選択された記憶要素14が自由にディレク
ティブを受け取れることを確認し、次いでCANディレ
クティブを識別する適切なREQUEST TYPE
信号をVALID IN信号及びアセンブルしたCA
Nディレクティブと共に送る。
次に第6B図を参照すると、CANディレクティブを最
初に受け取ったとき、ADDRESS信号がマルチプレ
クサ42にゲートされ、制御論理回路52がそれを使っ
て主記憶装置46内の選択された位置を読み取る。プロ
セッサ/タスク識別子PID REQがマルチプレク
サ40の出力(PID RESP)にゲートされ、そ
れを使って記憶要素14から読み取られたこの最初のデ
ータがマルチプレクサ38の出力からDATA RE
AD信号線を介して要求側処理要素に送り戻される。
初に受け取ったとき、ADDRESS信号がマルチプレ
クサ42にゲートされ、制御論理回路52がそれを使っ
て主記憶装置46内の選択された位置を読み取る。プロ
セッサ/タスク識別子PID REQがマルチプレク
サ40の出力(PID RESP)にゲートされ、そ
れを使って記憶要素14から読み取られたこの最初のデ
ータがマルチプレクサ38の出力からDATA RE
AD信号線を介して要求側処理要素に送り戻される。
記憶要素によってVALID OUT信号が生成され
、要求側処理要素からACCEPTED信号が戻されて
、当該の電子的初期接続手順が実行される。
、要求側処理要素からACCEPTED信号が戻されて
、当該の電子的初期接続手順が実行される。
次に第6C図を参照すると、本発明のこの実施例では、
記憶要素14内の選択された位置の実際の内容を含むD
ATA READ値が必ず要求側処理要素12に戻さ
れ、要求側処理要素12は、自分で予想値(比較対象値
)と戻された値を比較して、一致するかどうか判定しな
ければならない。
記憶要素14内の選択された位置の実際の内容を含むD
ATA READ値が必ず要求側処理要素12に戻さ
れ、要求側処理要素12は、自分で予想値(比較対象値
)と戻された値を比較して、一致するかどうか判定しな
ければならない。
すなわち、要求側処理要素は読み取った値を予想値と比
較し(第6C図)、それらが一致し、処理を継続するか
どうかを判定する。一致しない場合は、処理は待機また
は別のタスクに切り替えられる。記憶位置の内容を要求
側処理要素12に戻す代わりに、比較対象値との比較を
記憶要素14内で行なって、一致/不一散信号を要求側
処理要素12に戻すことも可能なことを了解されたい。
較し(第6C図)、それらが一致し、処理を継続するか
どうかを判定する。一致しない場合は、処理は待機また
は別のタスクに切り替えられる。記憶位置の内容を要求
側処理要素12に戻す代わりに、比較対象値との比較を
記憶要素14内で行なって、一致/不一散信号を要求側
処理要素12に戻すことも可能なことを了解されたい。
要求側処理要素にDATA READ信号を送り戻す
のと一般に並行して、DATA WRITE信号(比
較対象値)とDATA READ信号(読取り値)が
比較機構32で比較される。この場合それらが一致する
と仮定すると、一致が制御論理回路52によって注目さ
れ、CAMデイレクティブが終了される。この終了は、
CANデイレクティブを廃棄して、それが下記のように
繰返し実行されないようにすることを含んでいる。連想
式アドレス制御装置48と連想式メモリ50を含む連想
式記憶システムは使用されなくなる。
のと一般に並行して、DATA WRITE信号(比
較対象値)とDATA READ信号(読取り値)が
比較機構32で比較される。この場合それらが一致する
と仮定すると、一致が制御論理回路52によって注目さ
れ、CAMデイレクティブが終了される。この終了は、
CANデイレクティブを廃棄して、それが下記のように
繰返し実行されないようにすることを含んでいる。連想
式アドレス制御装置48と連想式メモリ50を含む連想
式記憶システムは使用されなくなる。
上記の状況は、予想されるセマフオア・データが記憶位
置の最初の読取りで見つかるという、第5図に示したス
ピン・ループ動作と大体等価なことを了解されたい。し
たがって、本発明によってもたらされる本質的な利点は
、この状況では直接明らかにはならない。
置の最初の読取りで見つかるという、第5図に示したス
ピン・ループ動作と大体等価なことを了解されたい。し
たがって、本発明によってもたらされる本質的な利点は
、この状況では直接明らかにはならない。
状況2:記憶され再実行されるCAM
この状況は、上記の状況1と同様にして開始される。す
なわち、第6A図に示した機能と同じ、第6B図の「記
憶位置を読み取る」機能及び「最初の読取りデータをP
Eに送る」機能が実行される。ただし、この場合は、D
ATA READがDATA WRITEと比較さ
れず、第6B図の「比較対象値との比較」テストは「等
しくない」分岐に分岐する。要求側処理要素12と制御
論理回路52は、前者は戻されたDATA READ
信号との比較を行なって、また後者は比較機構32の出
力で生成される信号から、一致しないことを共に認識す
る。次いで要求側処理要素12は、待機または別のタス
クへの切替えを選択することができる(第6C図)。ど
ちらの場合でも、要求側処理要素12は、第5図に関し
て述べた従来技術の処理要素のように、スピン・ループ
に入ることはない。
なわち、第6A図に示した機能と同じ、第6B図の「記
憶位置を読み取る」機能及び「最初の読取りデータをP
Eに送る」機能が実行される。ただし、この場合は、D
ATA READがDATA WRITEと比較さ
れず、第6B図の「比較対象値との比較」テストは「等
しくない」分岐に分岐する。要求側処理要素12と制御
論理回路52は、前者は戻されたDATA READ
信号との比較を行なって、また後者は比較機構32の出
力で生成される信号から、一致しないことを共に認識す
る。次いで要求側処理要素12は、待機または別のタス
クへの切替えを選択することができる(第6C図)。ど
ちらの場合でも、要求側処理要素12は、第5図に関し
て述べた従来技術の処理要素のように、スピン・ループ
に入ることはない。
制御論理回路52は、一致しなかったことを検知すると
、連想式アドレス制御装置48に、処理要素/タスク識
別子(PID REQ)、選択された記憶位置のアド
レス(ADDRESS) 、比較対象値(DATA
WRITE)及びTIMEOUT2=MASTER
TIME CLOCKの和(すなわち加算器44の出
力端のEXP I RATION TIME信号)を
、それぞれデータ入力端D4、D1、D2、D3を介し
て連想式メモリ50のあるアドレスに記憶する。連想式
記憶システムの動作では通常の方式であるが、CANデ
ィレクティブを記憶すべく選択されたメモリ50のアド
レスは、主記憶装置46の選択された記憶位置のアドレ
ス(ADDRESS)と関連づけられている。この連想
式記憶システムの動作は当業者には容易に理解できるも
のであり、連想式メモリ50を主記憶装置46より大幅
に小さ《することができる。加算器44によって生成さ
れるEXPIRATION TIME信号は、CAN
デイレクティブが自動的に終了するまでの時間を含んで
いる。
、連想式アドレス制御装置48に、処理要素/タスク識
別子(PID REQ)、選択された記憶位置のアド
レス(ADDRESS) 、比較対象値(DATA
WRITE)及びTIMEOUT2=MASTER
TIME CLOCKの和(すなわち加算器44の出
力端のEXP I RATION TIME信号)を
、それぞれデータ入力端D4、D1、D2、D3を介し
て連想式メモリ50のあるアドレスに記憶する。連想式
記憶システムの動作では通常の方式であるが、CANデ
ィレクティブを記憶すべく選択されたメモリ50のアド
レスは、主記憶装置46の選択された記憶位置のアドレ
ス(ADDRESS)と関連づけられている。この連想
式記憶システムの動作は当業者には容易に理解できるも
のであり、連想式メモリ50を主記憶装置46より大幅
に小さ《することができる。加算器44によって生成さ
れるEXPIRATION TIME信号は、CAN
デイレクティブが自動的に終了するまでの時間を含んで
いる。
本発明によれば、たとえばLOAD動作によって主記憶
装置46の内容が変更されるたびに、連想式メモリ50
の内容が検討され、CAMデイレクティブが含まれる記
憶されたアドレスの値が変更された記憶位置のアドレス
の値と一致することが判明した場合、CAMデイレクテ
イブはプリミティブ動作として自動的に実行される。そ
の場合、主記憶装置46内の記憶位置が変更されたもの
と仮定すると、制御論理回路52は、連想式メモリ50
を読み取ること、及びCANデイレクテイブに記憶され
ているすべてのアドレスを変更された記憶位置の内容を
示す現ADDRESS信号と比較することを指令する。
装置46の内容が変更されるたびに、連想式メモリ50
の内容が検討され、CAMデイレクティブが含まれる記
憶されたアドレスの値が変更された記憶位置のアドレス
の値と一致することが判明した場合、CAMデイレクテ
イブはプリミティブ動作として自動的に実行される。そ
の場合、主記憶装置46内の記憶位置が変更されたもの
と仮定すると、制御論理回路52は、連想式メモリ50
を読み取ること、及びCANデイレクテイブに記憶され
ているすべてのアドレスを変更された記憶位置の内容を
示す現ADDRESS信号と比較することを指令する。
この比較は比較機構30で実行され、比較機構30は連
想式メモリ50の出力01からCANディレクティブの
アドレスを受け取り、信号線から直接に現ADDRES
S信号を受け取る。
想式メモリ50の出力01からCANディレクティブの
アドレスを受け取り、信号線から直接に現ADDRES
S信号を受け取る。
CANディレクティブが現ADDRESS信号と一致す
る記憶位置アドレスを含むことが判明した場合、CAN
ディレクティブと共に記憶された比較対象値が連想式メ
モリ50の出力端02から読み出され、主記憶装置46
内の変更された記憶位置の内容(すなわちDATA
WRITE信号の値)と比較される。この比較は比較機
構34で実行される。まずそれらの値が一致しないと仮
定すると、要求側処理要素に関して何の動作も行なわれ
ない。こうした比較は、主記憶装置46内の位置が変更
されるたびに、最初にCANディレクティブを生成した
要求側処理要素12からの何の動作やメモリ・アクセス
も必要とせず、自動的に実行されることを了解されたい
。
る記憶位置アドレスを含むことが判明した場合、CAN
ディレクティブと共に記憶された比較対象値が連想式メ
モリ50の出力端02から読み出され、主記憶装置46
内の変更された記憶位置の内容(すなわちDATA
WRITE信号の値)と比較される。この比較は比較機
構34で実行される。まずそれらの値が一致しないと仮
定すると、要求側処理要素に関して何の動作も行なわれ
ない。こうした比較は、主記憶装置46内の位置が変更
されるたびに、最初にCANディレクティブを生成した
要求側処理要素12からの何の動作やメモリ・アクセス
も必要とせず、自動的に実行されることを了解されたい
。
ここで、今述べた比較機構34での比較が一致した、す
なわちCAMディレクティブと共に連想式メモリ50中
に記憶されている比較対象値がDATA WRITE
信号の値と一致したものと仮定する。この場合、CAN
ディレクティブの比較対象値と並行して連想式メモリの
出力端o4で読み取られたPID REQ信号が、マ
ルチプレクサ40の出力端にゲートされる。PID
REQ信号を使って、主記憶装置46内の更新された位
置の現在値が要求側処理要素12に戻される。この値は
、もちろん上記のような適切な初期接続手順を使って戻
される。DATA READ信号としてマルチプレク
サ36の出力端にゲートされる、この戻された値は、D
ATA WRITE信号から、あるいは主記憶装置4
6の出力端で読み取られた実際のデータから供給され、
どちらも等しい。
なわちCAMディレクティブと共に連想式メモリ50中
に記憶されている比較対象値がDATA WRITE
信号の値と一致したものと仮定する。この場合、CAN
ディレクティブの比較対象値と並行して連想式メモリの
出力端o4で読み取られたPID REQ信号が、マ
ルチプレクサ40の出力端にゲートされる。PID
REQ信号を使って、主記憶装置46内の更新された位
置の現在値が要求側処理要素12に戻される。この値は
、もちろん上記のような適切な初期接続手順を使って戻
される。DATA READ信号としてマルチプレク
サ36の出力端にゲートされる、この戻された値は、D
ATA WRITE信号から、あるいは主記憶装置4
6の出力端で読み取られた実際のデータから供給され、
どちらも等しい。
要求側処理要素12は、戻された値を受け取ると、待機
状態から解除され、あるいは通常の割込み機構を介して
戻されたデータを処理する。続いて、要求側タスクが再
活動化されると、自ら比較を行なって、比較対象値が一
致し、条件が満たされたと判定する。この場合も、連想
式メモリ50内に記憶されたCAMディレクティブの上
記のすべての実行は、要求側処理要素12によるメモリ
・アクセスその他の動作なしに行なわれることに留意さ
れたい。
状態から解除され、あるいは通常の割込み機構を介して
戻されたデータを処理する。続いて、要求側タスクが再
活動化されると、自ら比較を行なって、比較対象値が一
致し、条件が満たされたと判定する。この場合も、連想
式メモリ50内に記憶されたCAMディレクティブの上
記のすべての実行は、要求側処理要素12によるメモリ
・アクセスその他の動作なしに行なわれることに留意さ
れたい。
次に、CAMディレクティブと共に供給されるTIME
OUTデータの使い方について説明すると、このデータ
はまず上記のようにEXPIRATION TIME
値を供給するために使用される。このEXPIRATI
ON TIME値は、CAMディレクティブと共に連
想式メモリ50に記憶される。続いて、システム10の
、主記憶装置46の内容が変更されないサイクル中に、
制御論理回路52が、記憶されたCANディレクティブ
を連想式メモリ50から読み取り、記憶されたEXPI
RATION TIMEデータをMASTER T
IME CLOCKデータと比較機構36で比較する
。これらの動作は、第6B図で、「主記憶装置位置更新
」テストの「ノー」分岐に示されている。所与のCAM
に対するEXP I RATION TIMEを超過
すると、そのCANと共に記憶されたアドレスがマルチ
プレクサ42中をゲートされて、選択された主記憶装置
位置の現在値が読み取られる。この現在値は、DATA
READ信号としてマルチプレクサ38の出力端にゲー
トされる。一般にそれと並行して、要求側処理要素12
の識別子PID REQが、連想式メモリ50からマ
ルチプレクサ40の出力端にゲートされる。次いでPI
D REQ信号を使って、DATA READ信号
がもちろん上記の適切な電子式初期接続手順を用いて要
求側処理要素12に戻される。そこで要求側処理要素1
2は、記憶要素14から戻された値とそれ自体の比較対
象値を自ら比較して、一致しないと判定する。゛次いで
要求側処理要素12は、エラー回復状態(図示せず)に
入ることができる。その後、CANディレクティブは連
想式メモリ50から消去されて終了され、その後は読み
取れたり実行されたりすることはなくなる。上記のCA
Nディレクティブのタイムアウトは、要求側処理要素1
2によるメモリ・アクセスその他の動作なしに実行され
たことを理解されたい。
OUTデータの使い方について説明すると、このデータ
はまず上記のようにEXPIRATION TIME
値を供給するために使用される。このEXPIRATI
ON TIME値は、CAMディレクティブと共に連
想式メモリ50に記憶される。続いて、システム10の
、主記憶装置46の内容が変更されないサイクル中に、
制御論理回路52が、記憶されたCANディレクティブ
を連想式メモリ50から読み取り、記憶されたEXPI
RATION TIMEデータをMASTER T
IME CLOCKデータと比較機構36で比較する
。これらの動作は、第6B図で、「主記憶装置位置更新
」テストの「ノー」分岐に示されている。所与のCAM
に対するEXP I RATION TIMEを超過
すると、そのCANと共に記憶されたアドレスがマルチ
プレクサ42中をゲートされて、選択された主記憶装置
位置の現在値が読み取られる。この現在値は、DATA
READ信号としてマルチプレクサ38の出力端にゲー
トされる。一般にそれと並行して、要求側処理要素12
の識別子PID REQが、連想式メモリ50からマ
ルチプレクサ40の出力端にゲートされる。次いでPI
D REQ信号を使って、DATA READ信号
がもちろん上記の適切な電子式初期接続手順を用いて要
求側処理要素12に戻される。そこで要求側処理要素1
2は、記憶要素14から戻された値とそれ自体の比較対
象値を自ら比較して、一致しないと判定する。゛次いで
要求側処理要素12は、エラー回復状態(図示せず)に
入ることができる。その後、CANディレクティブは連
想式メモリ50から消去されて終了され、その後は読み
取れたり実行されたりすることはなくなる。上記のCA
Nディレクティブのタイムアウトは、要求側処理要素1
2によるメモリ・アクセスその他の動作なしに実行され
たことを理解されたい。
以上の説明から、本発明のいくつかの特徴が明らかにな
ったはずである。第1に、単一のCANディレクティブ
の生成及び実行に関して並列処理システム10の動作を
一般的に説明したが、多数のCANディレクティブを連
想式メモリ50に記憶し、記憶要素14によって実行で
きることを理解されたい。これらのCANディレクティ
ブは、同じ処理要素12から出されることも異なる処理
要素から出されることもあり、複数のCAMディレクテ
ィブを主記憶装置46内の同じ選択された記憶位置に送
ることができる。たとえば、異なる処理要素12内で実
行される複数の子タスクがすべて、特定のセマフォアが
同じ記憶位置に到着するのを待っているときがそうであ
る。記憶要素14が上記のように機能するには、記憶要
素が並列処理システム10の主システム・クロックより
も速い内部クロック速度で動作することが望ましい。
ったはずである。第1に、単一のCANディレクティブ
の生成及び実行に関して並列処理システム10の動作を
一般的に説明したが、多数のCANディレクティブを連
想式メモリ50に記憶し、記憶要素14によって実行で
きることを理解されたい。これらのCANディレクティ
ブは、同じ処理要素12から出されることも異なる処理
要素から出されることもあり、複数のCAMディレクテ
ィブを主記憶装置46内の同じ選択された記憶位置に送
ることができる。たとえば、異なる処理要素12内で実
行される複数の子タスクがすべて、特定のセマフォアが
同じ記憶位置に到着するのを待っているときがそうであ
る。記憶要素14が上記のように機能するには、記憶要
素が並列処理システム10の主システム・クロックより
も速い内部クロック速度で動作することが望ましい。
もちろん、こうした速度増加は、連想式メモリ50のサ
イズとそこに記憶できるCANディレクティブの数によ
って決まる。
イズとそこに記憶できるCANディレクティブの数によ
って決まる。
次に第7図を参照すると、親タスク7AとN個の子タス
ク7Bを含む藺単なFORK/JOIN動作を示す。こ
のFORK/JOIN動作は、本発明のCANディレク
ティブを使用する点以外は、上記で第5図に関して示し
説明した動作と同様である。
ク7Bを含む藺単なFORK/JOIN動作を示す。こ
のFORK/JOIN動作は、本発明のCANディレク
ティブを使用する点以外は、上記で第5図に関して示し
説明した動作と同様である。
まず第7A図を参照すると、親タスクを実行する処理要
素12は、子タスクの実行に必要なデータを初期設定し
、次いで共用記憶位置FLAGIに″−1″のカウント
を記憶する。次いで処理要素12は子タスクがすべて完
了したときを判定するため、CAMディレクティブを生
成する。このCAMディレクティブは、子タスクの数に
等しい比較対象値、要求側処理要素12の識別(と該当
する場合はタスクの識別)、監視すべきFLAG1のア
ドレス、及び実行中の特定のプロセスによって決まるT
IMEOUT値を含む。CANディレクティブがただち
に成功しない場合、すなわち比較対象値とFLAGIア
ドレスのカウントが一致しない場合、要求側処理要素1
2は待機状態に入るか、あるいは別のタスクに切り替わ
ることができる。一致を示すデータが後で戻されて、要
求側処理要素12が中断される場合、要求側処理要素1
2は子タスクが生成した結果を収集しFLAG2にカウ
ント″−1″を入れてその旨を子タスクに示すことがで
きる。タイムアウトを示すデータが後で戻されて要求側
処理要素12が中断される場合、要求側処理要素12は
障害回復ルーチン(図示せず)に入ることができる。C
AMディレクティブがもたらす結果がどうであれ、本発
明の主な利点に基づき、スピン・ループは不要であるこ
とに留意されたい。
素12は、子タスクの実行に必要なデータを初期設定し
、次いで共用記憶位置FLAGIに″−1″のカウント
を記憶する。次いで処理要素12は子タスクがすべて完
了したときを判定するため、CAMディレクティブを生
成する。このCAMディレクティブは、子タスクの数に
等しい比較対象値、要求側処理要素12の識別(と該当
する場合はタスクの識別)、監視すべきFLAG1のア
ドレス、及び実行中の特定のプロセスによって決まるT
IMEOUT値を含む。CANディレクティブがただち
に成功しない場合、すなわち比較対象値とFLAGIア
ドレスのカウントが一致しない場合、要求側処理要素1
2は待機状態に入るか、あるいは別のタスクに切り替わ
ることができる。一致を示すデータが後で戻されて、要
求側処理要素12が中断される場合、要求側処理要素1
2は子タスクが生成した結果を収集しFLAG2にカウ
ント″−1″を入れてその旨を子タスクに示すことがで
きる。タイムアウトを示すデータが後で戻されて要求側
処理要素12が中断される場合、要求側処理要素12は
障害回復ルーチン(図示せず)に入ることができる。C
AMディレクティブがもたらす結果がどうであれ、本発
明の主な利点に基づき、スピン・ループは不要であるこ
とに留意されたい。
次に第7B図に示した子タスクについて検討すると、各
タスクが最初に開始されるとき、その処理要素12は、
必要なデータが初期設定されているかどうか判定するた
め、CANディレクティブを生成することができる。こ
のCAMディレクティブは et − I nに等しい
比較対象値(データが初期設定されるとき、親タスクに
よって生成されるセマフォア)、要求側処理要素12の
識別(と必要な場合はタスクの・識別)、FLAGIの
アドレス、及びプロセスによって決まるTIMEOUT
値を含む。CAMディレクティブの最初の実行の結果と
して戻されるデータが、比較対象値とFLAGIに記憶
されたデータが一致しないことを示す場合、要求側処理
要素12は待機状態に入るか、あるいは別のタスクに切
り替わることができる。
タスクが最初に開始されるとき、その処理要素12は、
必要なデータが初期設定されているかどうか判定するた
め、CANディレクティブを生成することができる。こ
のCAMディレクティブは et − I nに等しい
比較対象値(データが初期設定されるとき、親タスクに
よって生成されるセマフォア)、要求側処理要素12の
識別(と必要な場合はタスクの・識別)、FLAGIの
アドレス、及びプロセスによって決まるTIMEOUT
値を含む。CAMディレクティブの最初の実行の結果と
して戻されるデータが、比較対象値とFLAGIに記憶
されたデータが一致しないことを示す場合、要求側処理
要素12は待機状態に入るか、あるいは別のタスクに切
り替わることができる。
(選択された記憶要素14内で後でCANディレクティ
ブが実行された結果)タイムアウトを示すデータが後で
戻された場合、要求側処理要素12はエラー回復モード
(図示せず)に入ることができる。(やはり選択された
記憶要素14内で後でCAMディレクティブが実行され
た結果)比較対象値とFLAGIに記憶されたデータが
一散することを示すデータが後で戻された場合、要求側
処理要素12はその作業の「断片」を引き続き実行する
ことができ、それが完了したとき、FLAG1のカウン
ト1を増分する。
ブが実行された結果)タイムアウトを示すデータが後で
戻された場合、要求側処理要素12はエラー回復モード
(図示せず)に入ることができる。(やはり選択された
記憶要素14内で後でCAMディレクティブが実行され
た結果)比較対象値とFLAGIに記憶されたデータが
一散することを示すデータが後で戻された場合、要求側
処理要素12はその作業の「断片」を引き続き実行する
ことができ、それが完了したとき、FLAG1のカウン
ト1を増分する。
プログラムの完了後、各子タスクを実行する処理要素1
2は、その子タスクによって生成されたデータが親タス
クによって収集されたかどうか判定するため、第2のC
ANディレクティブを生成する。このCANディレクテ
ィブは n 1nの比較対象値、要求側処理要素の識
別(と当該の場合はタスクの識別) 、FLAG2のア
ドレス、及びプロセスによって決まるTIMEOUT値
を含む。CANディレクティブの最初の実行の結果とし
て要求側処理要素12に戻されるデータが、比較対象値
とFLAGIに記憶された値が一致しないことを示す場
合、要求側処理要素12は待機状態に入るか、あるいは
別のタスクに切り替わることができる。(選択された記
憶要素14内で後でCANディレクティブが実行された
結果)タイムアウトが発生したことを示すデータが後で
戻された場合、要求側処理要素12はエラー回復プロセ
ス(図示せず)に入ることができる。(選択された記憶
要素14内で後でCAMディレクティブが実行された結
果)比較対象値とFLAG゛2記憶位置に記憶された値
が一致することを示すデータが後で戻された場合、要求
側処理要素12は次のタスクに進むことができる。
2は、その子タスクによって生成されたデータが親タス
クによって収集されたかどうか判定するため、第2のC
ANディレクティブを生成する。このCANディレクテ
ィブは n 1nの比較対象値、要求側処理要素の識
別(と当該の場合はタスクの識別) 、FLAG2のア
ドレス、及びプロセスによって決まるTIMEOUT値
を含む。CANディレクティブの最初の実行の結果とし
て要求側処理要素12に戻されるデータが、比較対象値
とFLAGIに記憶された値が一致しないことを示す場
合、要求側処理要素12は待機状態に入るか、あるいは
別のタスクに切り替わることができる。(選択された記
憶要素14内で後でCANディレクティブが実行された
結果)タイムアウトが発生したことを示すデータが後で
戻された場合、要求側処理要素12はエラー回復プロセ
ス(図示せず)に入ることができる。(選択された記憶
要素14内で後でCAMディレクティブが実行された結
果)比較対象値とFLAG゛2記憶位置に記憶された値
が一致することを示すデータが後で戻された場合、要求
側処理要素12は次のタスクに進むことができる。
したがって、上記の第5図に関して説明したFORK/
JOINプロセスとは対照的に、並列処理システム10
を本発明に基づいて動作させる場合、第7図に示した親
タスクも子タスクもスピン・ループに入る必要がないこ
とが理解されよう。本発明は、実際に、従来技術で使用
されているスピン・ループの大部分を除去する。すなわ
ち、本発明に基づいて構成され動作する並列処理システ
ム10では、必要な記憶位置アクセスの回数が大幅に減
少する。この必要な記憶位置アクセスの回数の減少によ
り、相互接続ネットワーク16の使用度が直接減少する
。相互接続ネットワーク18の使用度が減少すると、ネ
ットワーク上での競合または干渉の数が減少し、「ホッ
ト・スポット」の形成が実質上なくなる。
JOINプロセスとは対照的に、並列処理システム10
を本発明に基づいて動作させる場合、第7図に示した親
タスクも子タスクもスピン・ループに入る必要がないこ
とが理解されよう。本発明は、実際に、従来技術で使用
されているスピン・ループの大部分を除去する。すなわ
ち、本発明に基づいて構成され動作する並列処理システ
ム10では、必要な記憶位置アクセスの回数が大幅に減
少する。この必要な記憶位置アクセスの回数の減少によ
り、相互接続ネットワーク16の使用度が直接減少する
。相互接続ネットワーク18の使用度が減少すると、ネ
ットワーク上での競合または干渉の数が減少し、「ホッ
ト・スポット」の形成が実質上なくなる。
本発明の別の実施例によれば、ある種の操作条件では、
処理要素12が選択された記憶位置の内容が比較対象値
と一致するかどうかに関わらず、それらの内容を監視す
ることが望ましい。こうした状況の場合、本発明では、
処理要素12が、記憶位置と要求側処理要素(及び当該
の場合はタスク)の識別を含むディレクティブを選択さ
れた記憶要素に送るようにする。次に、選択された記憶
要素14は、ディレクティブに作用して、読み取ったデ
ータが比較対象値と一致するかどうかに関わらず、選択
された記憶位置が変更されたとき読取りデータを戻す。
処理要素12が選択された記憶位置の内容が比較対象値
と一致するかどうかに関わらず、それらの内容を監視す
ることが望ましい。こうした状況の場合、本発明では、
処理要素12が、記憶位置と要求側処理要素(及び当該
の場合はタスク)の識別を含むディレクティブを選択さ
れた記憶要素に送るようにする。次に、選択された記憶
要素14は、ディレクティブに作用して、読み取ったデ
ータが比較対象値と一致するかどうかに関わらず、選択
された記憶位置が変更されたとき読取りデータを戻す。
本発明のこの実施例の構造及び動作は、比較データと比
較ステップともちろん比較を実行するハードウェアが不
要な点以外は、上記の実施例とほぼ同じである。こうし
た動作は、もちろん要求側処理要素12によって開始さ
れるスピン・ループで記憶位置を定期的に読み取る必要
がな<、シたがって上記の利点をもたらす。
較ステップともちろん比較を実行するハードウェアが不
要な点以外は、上記の実施例とほぼ同じである。こうし
た動作は、もちろん要求側処理要素12によって開始さ
れるスピン・ループで記憶位置を定期的に読み取る必要
がな<、シたがって上記の利点をもたらす。
本発明のもう1つの実施例によれば、CAMディレクテ
ィブを単一プロセッサ処理システムで有利に使用できる
。こうした単一プロセッサ・システムは、処理要素12
と記憶要素14が1つずつしかむく、それが適当なバス
型の相互接続ネットワーク16で接続されている点以外
は、上記の第1図ないし第4図に関して説明した実施例
とほぼ同じである。こうした単一プロセッサ・システム
の動作も、各CAMディレクティプがタスク識別を含み
、様々なタスクが(第7A図、第7B図に示すような複
数の処理要素で並列に実行されるのではなく)単一の処
理要素12で逐次実行される点以外は、上記の第6図及
び第7図に関して説明した実施例とほぼ同じである。
ィブを単一プロセッサ処理システムで有利に使用できる
。こうした単一プロセッサ・システムは、処理要素12
と記憶要素14が1つずつしかむく、それが適当なバス
型の相互接続ネットワーク16で接続されている点以外
は、上記の第1図ないし第4図に関して説明した実施例
とほぼ同じである。こうした単一プロセッサ・システム
の動作も、各CAMディレクティプがタスク識別を含み
、様々なタスクが(第7A図、第7B図に示すような複
数の処理要素で並列に実行されるのではなく)単一の処
理要素12で逐次実行される点以外は、上記の第6図及
び第7図に関して説明した実施例とほぼ同じである。
単一プロセッサ・システムで使用する場合、単一処理要
素12は、複数の順次タスクを上記の方式で同期させる
ためにセマフォアを監視するのに必要なポーリングとい
う雑務から開放される。その代わり、本発明によれば、
CAMディレクティブを使って、記憶要素14内のセマ
フォアの状況を監視する。したがって、処理要素12は
自由にデータの処理を行なうことができる。
素12は、複数の順次タスクを上記の方式で同期させる
ためにセマフォアを監視するのに必要なポーリングとい
う雑務から開放される。その代わり、本発明によれば、
CAMディレクティブを使って、記憶要素14内のセマ
フォアの状況を監視する。したがって、処理要素12は
自由にデータの処理を行なうことができる。
このようにして、記憶ディレクティブを使って、要求側
プロセッサによって供給される記憶位置にあるセマフォ
アの状況を監視することにより、処理システム内の複数
のタスク間でデータ通信を行なう、新しい改良された方
法及び装置が提供される。多重プロセッサ/並列処理シ
ステムで使用する場合、本発明は、相互接続ネットワー
クを介して記憶要素のアクセスを繰り返す必要なク、複
数の記憶要素に記憶されたセマフォアを用いて、複数の
処理要素間でのデータ通信を実現する。このようにして
、本発明は、通常なら相互接続ネットワーク内で形成さ
れるホット・スポットを減少させ、並列処理システムの
速度と効率を増加させる。
プロセッサによって供給される記憶位置にあるセマフォ
アの状況を監視することにより、処理システム内の複数
のタスク間でデータ通信を行なう、新しい改良された方
法及び装置が提供される。多重プロセッサ/並列処理シ
ステムで使用する場合、本発明は、相互接続ネットワー
クを介して記憶要素のアクセスを繰り返す必要なク、複
数の記憶要素に記憶されたセマフォアを用いて、複数の
処理要素間でのデータ通信を実現する。このようにして
、本発明は、通常なら相互接続ネットワーク内で形成さ
れるホット・スポットを減少させ、並列処理システムの
速度と効率を増加させる。
このようにして、大規模並列処理システムで細分性の大
きな並列処理が実現される。単一プロセッサ環境で使用
する場合、本発明は、処理要素による大きなポーリング
・オーバーヘッドなしに、複数のタスク間でのデータ通
信を実現する。したがって、処理要素は自由にデータを
より効率的に処理することができる。
きな並列処理が実現される。単一プロセッサ環境で使用
する場合、本発明は、処理要素による大きなポーリング
・オーバーヘッドなしに、複数のタスク間でのデータ通
信を実現する。したがって、処理要素は自由にデータを
より効率的に処理することができる。
E.発明の効果
本発明によれば、必要な記憶位置をアクセスする回数が
減少するので相互接続手段の使用頻度が減少し、相互接
続手段にて生じる競合または干渉の数が減少して、「ホ
ット・スポット」が実質上形成されなくなるという効果
が得られる。
減少するので相互接続手段の使用頻度が減少し、相互接
続手段にて生じる競合または干渉の数が減少して、「ホ
ット・スポット」が実質上形成されなくなるという効果
が得られる。
第1図は、本発明に基づいて構成した並列処理システム
の構成図である。 第2図は、第1図の処理要素の概略図である。 第3図は、第1図の記憶要素の概略図である。 第4図は、第3図の記憶要素内部での記憶位置の割振り
を示す構成図である。 第5A図及び第5B図は、従来技術に基づくスピン・ル
ープを利用した並列処理の簡略化した例の流れ図である
。 第6A図、第6R図及び第6C図は、本発明に基づく比
較及び通知(CAN)デイレクテイブの実行の流れ図で
ある。 第7A図及び第7B図は、本発明に基づく比較及び通知
ディレクティブを利用して第1図のシステムで実行され
る並列プロセスの簡略化した例の流れ図である。 10・・・・多重プロセッサ・システム、12・・・・
処理要素(PE)、14・・・・記憶要素(ME)、1
6・・・・相互接続ネットワーク、18・・・・計算機
エンジン、20・・・・記憶マッピング制御Iff!、
22・・・・インターフェース、24・・・・制御機構
、30,32、34、3B・・・・ディジタル・データ
比較機構、38、40、42・・・・時間定義域マルチ
プレクサ、44・・・・ディジタル加算器、46・・・
・主記憶装置(DRAM) 、48・・・・連想式アド
レス制御装置、50・・・・連想式メモリ、52・・・
・制御論理機構。 出願人 インターナシ日ナル・ビジネス●マシーンズ
●コーボレーシーン
の構成図である。 第2図は、第1図の処理要素の概略図である。 第3図は、第1図の記憶要素の概略図である。 第4図は、第3図の記憶要素内部での記憶位置の割振り
を示す構成図である。 第5A図及び第5B図は、従来技術に基づくスピン・ル
ープを利用した並列処理の簡略化した例の流れ図である
。 第6A図、第6R図及び第6C図は、本発明に基づく比
較及び通知(CAN)デイレクテイブの実行の流れ図で
ある。 第7A図及び第7B図は、本発明に基づく比較及び通知
ディレクティブを利用して第1図のシステムで実行され
る並列プロセスの簡略化した例の流れ図である。 10・・・・多重プロセッサ・システム、12・・・・
処理要素(PE)、14・・・・記憶要素(ME)、1
6・・・・相互接続ネットワーク、18・・・・計算機
エンジン、20・・・・記憶マッピング制御Iff!、
22・・・・インターフェース、24・・・・制御機構
、30,32、34、3B・・・・ディジタル・データ
比較機構、38、40、42・・・・時間定義域マルチ
プレクサ、44・・・・ディジタル加算器、46・・・
・主記憶装置(DRAM) 、48・・・・連想式アド
レス制御装置、50・・・・連想式メモリ、52・・・
・制御論理機構。 出願人 インターナシ日ナル・ビジネス●マシーンズ
●コーボレーシーン
Claims (2)
- (1)処理要素と、少なくとも1つの記憶要素と、上記
処理要素と上記少なくとも1つの記憶要素とを相互に接
続する相互接続手段とを具えたデータ処理システムにお
いて、少なくとも1つの要求側タスクが少なくとも1つ
の選択された記憶位置にアクセスしてそこに記憶された
データを読み取るための方法であって、 上記選択された記憶位置のアドレスと要求側タスクの識
別情報を含むディレクティブを、上記処理要素から上記
記憶要素に送るステップ、 上記記憶要素の上記選択された記憶位置に記憶されたデ
ータを読み取るステップ、 上記読取りステップで得られたデータを上記タスク識別
情報とともに上記処理要素に送るステップ、 上記ディレクティブを上記記憶要素に記憶するステップ
、及び 上記選択された記憶位置のデータが変更されると上記読
取りステップと転送ステップを繰り返すステップ、 を含むことを特徴とする方法。 - (2)処理要素と、少なくとも1つの記憶要素と、上記
処理要素と上記少なくとも1つの記憶要素とを相互に接
続する相互接続手段とを具えたデータ処理システムにお
いて、少なくとも1つの要求側タスクが少なくとも1つ
の選択された記憶位置にアクセスしてそこに記憶された
データを読み取るための装置であって、 上記選択された記憶位置のアドレスと要求側タスクの識
別情報を含むディレクティブを、上記要求側タスクから
上記記憶要素に送る手段、 上記記憶要素の上記選択された記憶位置に記憶されたデ
ータを読み取る手段、 読み取られたデータを上記処理要素に送る手段、上記デ
ィレクティブを上記記憶要素に記憶する手段、及び 上記選択された記憶位置のデータが変更されると上記読
取り手段と転送手段を活動させる手段、を含むことを特
徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/250,673 US4965718A (en) | 1988-09-29 | 1988-09-29 | Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data |
US250673 | 1988-09-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02236735A true JPH02236735A (ja) | 1990-09-19 |
Family
ID=22948700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1212134A Pending JPH02236735A (ja) | 1988-09-29 | 1989-08-19 | データ処理方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4965718A (ja) |
EP (1) | EP0361176B1 (ja) |
JP (1) | JPH02236735A (ja) |
DE (1) | DE68922261T2 (ja) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287511A (en) * | 1988-07-11 | 1994-02-15 | Star Semiconductor Corporation | Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5109486A (en) * | 1989-01-06 | 1992-04-28 | Motorola, Inc. | Distributed computer system with network and resource status monitoring |
US5526487A (en) * | 1989-02-09 | 1996-06-11 | Cray Research, Inc. | System for multiprocessor communication |
JP2748503B2 (ja) * | 1989-02-28 | 1998-05-06 | ソニー株式会社 | デジタル信号処理装置 |
US6070003A (en) * | 1989-11-17 | 2000-05-30 | Texas Instruments Incorporated | System and method of memory access in apparatus having plural processors and plural memories |
US5524255A (en) * | 1989-12-29 | 1996-06-04 | Cray Research, Inc. | Method and apparatus for accessing global registers in a multiprocessor system |
JP2779032B2 (ja) * | 1990-01-23 | 1998-07-23 | 株式会社日立製作所 | 情報処理装置 |
US5123094A (en) * | 1990-01-26 | 1992-06-16 | Apple Computer, Inc. | Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers |
US5669002A (en) * | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
US5274782A (en) * | 1990-08-27 | 1993-12-28 | International Business Machines Corporation | Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks |
US5418937A (en) * | 1990-11-30 | 1995-05-23 | Kabushiki Kaisha Toshiba | Master-slave type multi-processing system with multicast and fault detection operations having improved reliability |
US5434970A (en) * | 1991-02-14 | 1995-07-18 | Cray Research, Inc. | System for distributed multiprocessor communication |
US5592664A (en) * | 1991-07-29 | 1997-01-07 | Borland International Inc. | Database server system with methods for alerting clients of occurrence of database server events of interest to the clients |
GB9123264D0 (en) * | 1991-11-01 | 1991-12-18 | Int Computers Ltd | Semaphone arrangement for a data processing system |
US5261106A (en) * | 1991-12-13 | 1993-11-09 | S-Mos Systems, Inc. | Semaphore bypass |
WO1994003852A1 (en) * | 1992-08-05 | 1994-02-17 | David Sarnoff Research Center, Inc. | Advanced massively-parallel computer apparatus |
US5581778A (en) * | 1992-08-05 | 1996-12-03 | David Sarnoff Researach Center | Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock |
US5579527A (en) * | 1992-08-05 | 1996-11-26 | David Sarnoff Research Center | Apparatus for alternately activating a multiplier and a match unit |
US5440746A (en) * | 1992-11-06 | 1995-08-08 | Seiko Epson Corporation | System and method for synchronizing processors in a parallel processing environment |
US5551047A (en) * | 1993-01-28 | 1996-08-27 | The Regents Of The Univeristy Of California | Method for distributed redundant execution of program modules |
US5845329A (en) * | 1993-01-29 | 1998-12-01 | Sanyo Electric Co., Ltd. | Parallel computer |
FR2704663B1 (fr) * | 1993-04-29 | 1995-06-23 | Sgs Thomson Microelectronics | Procédé et dispositif de détermination de la composition d'un circuit intégré. |
US5598568A (en) * | 1993-05-06 | 1997-01-28 | Mercury Computer Systems, Inc. | Multicomputer memory access architecture |
US5586289A (en) * | 1994-04-15 | 1996-12-17 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing local storage within a parallel processing computer |
US5613139A (en) * | 1994-05-11 | 1997-03-18 | International Business Machines Corporation | Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message |
US5463732A (en) * | 1994-05-13 | 1995-10-31 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing a distributed data buffer |
US5634099A (en) * | 1994-12-09 | 1997-05-27 | International Business Machines Corporation | Direct memory access unit for transferring data between processor memories in multiprocessing systems |
US5611074A (en) * | 1994-12-14 | 1997-03-11 | International Business Machines Corporation | Efficient polling technique using cache coherent protocol |
US5623670A (en) * | 1995-02-17 | 1997-04-22 | Lucent Technologies Inc. | Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system |
US5799195A (en) * | 1995-07-24 | 1998-08-25 | Dell Usa, L.P. | Structure and method for detecting occurrence of external events using semaphores |
US6532487B1 (en) | 1995-12-04 | 2003-03-11 | International Business Machines Corporation | Method and system for managing semaphores in an object-oriented multi-tasking computer system |
US5872980A (en) * | 1996-01-25 | 1999-02-16 | International Business Machines Corporation | Semaphore access control buffer and method for accelerated semaphore operations |
US5867725A (en) * | 1996-03-21 | 1999-02-02 | International Business Machines Corporation | Concurrent multitasking in a uniprocessor |
US5918248A (en) * | 1996-12-30 | 1999-06-29 | Northern Telecom Limited | Shared memory control algorithm for mutual exclusion and rollback |
US5926625A (en) * | 1997-02-06 | 1999-07-20 | Compex, Inc. | Self-programming switch for computer networks |
US6633924B1 (en) | 1997-10-02 | 2003-10-14 | Charles Wu | Object synchronization between objects stores on different computers |
US6125369A (en) * | 1997-10-02 | 2000-09-26 | Microsoft Corporation | Continuous object sychronization between object stores on different computers |
US6138174A (en) * | 1997-11-24 | 2000-10-24 | Rockwell Technologies, Llc | Industrial control system providing remote execution of graphical utility programs |
US6480876B2 (en) * | 1998-05-28 | 2002-11-12 | Compaq Information Technologies Group, L.P. | System for integrating task and data parallelism in dynamic applications |
US6675189B2 (en) | 1998-05-28 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | System for learning and applying integrated task and data parallel strategies in dynamic applications |
US7424712B1 (en) * | 1999-04-30 | 2008-09-09 | Sun Microsystems Inc | System and method for controlling co-scheduling of processes of parallel program |
US6549961B1 (en) * | 1999-10-27 | 2003-04-15 | Infineon Technologies North America Corporation | Semaphore access in a multiprocessor system |
US7010788B1 (en) | 2000-05-19 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs |
JP3810631B2 (ja) * | 2000-11-28 | 2006-08-16 | 富士通株式会社 | 情報処理プログラムを記録した記録媒体 |
US7353515B1 (en) * | 2001-02-04 | 2008-04-01 | Cisco Technology, Inc. | Method and apparatus for dynamic allocation and management of semaphores for accessing shared resources |
US7269630B2 (en) * | 2001-10-17 | 2007-09-11 | International Business Machines Corporation | Automatically switching shared remote devices in a dense server environment thereby allowing the remote devices to function as a local device |
US7363474B2 (en) * | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7127561B2 (en) | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
US20030145035A1 (en) * | 2002-01-15 | 2003-07-31 | De Bonet Jeremy S. | Method and system of protecting shared resources across multiple threads |
US7389507B2 (en) * | 2003-02-10 | 2008-06-17 | Tandberg Data Corporation | Operating-system-independent modular programming method for robust just-in-time response to multiple asynchronous data streams |
EP1460555A1 (en) * | 2003-03-20 | 2004-09-22 | Alcatel | Multiprocessor Architecture for DSL applications |
JP3952992B2 (ja) * | 2003-06-03 | 2007-08-01 | ソニー株式会社 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
US7213093B2 (en) | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US20050097558A1 (en) * | 2003-10-31 | 2005-05-05 | De Bonet Jeremy S. | System and method for a symmetric architecture for multimedia players |
US20050120351A1 (en) * | 2003-10-31 | 2005-06-02 | De Bonet Jeremy S. | System and method for a synchronized shared buffer architecture for multimedia players |
US7603502B2 (en) * | 2005-04-12 | 2009-10-13 | Microsoft Corporation | Resource accessing with locking |
US8250576B2 (en) | 2009-09-30 | 2012-08-21 | Microsoft Corporation | Structured task hierarchy for a parallel runtime |
US8875144B2 (en) * | 2011-03-07 | 2014-10-28 | Red Hat, Inc. | Using a yield indicator in a hierarchical scheduler |
US9137191B2 (en) * | 2011-03-17 | 2015-09-15 | Microsoft Technology Licensing, Llc | Messaging for notification-based clients |
US9411663B2 (en) * | 2013-03-01 | 2016-08-09 | Advanced Micro Devices, Inc. | Conditional notification mechanism |
US20140250442A1 (en) * | 2013-03-01 | 2014-09-04 | Advanced Micro Devices, Inc. | Conditional Notification Mechanism |
DE202019103242U1 (de) | 2019-06-07 | 2019-06-18 | ALDI SÜD Dienstleistungs-GmbH & Co. oHG | Kombination aus einer Kassieranlage und einem Korbwagen für Einkaufskörbe |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58213375A (ja) * | 1982-06-07 | 1983-12-12 | Nec Corp | ロツク取得システム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725872A (en) * | 1971-03-03 | 1973-04-03 | Burroughs Corp | Data processing system having status indicating and storage means |
IT943202B (it) * | 1971-10-12 | 1973-04-02 | Fiat Spa | Perfezionamenti negli elaboratori elettronici |
US4320451A (en) * | 1974-04-19 | 1982-03-16 | Honeywell Information Systems Inc. | Extended semaphore architecture |
US4456952A (en) * | 1977-03-17 | 1984-06-26 | Honeywell Information Systems Inc. | Data processing system having redundant control processors for fault detection |
US4118789A (en) * | 1977-06-06 | 1978-10-03 | Allen-Bradley Company | Program protection module for programmable controller |
CH653155A5 (de) * | 1981-03-26 | 1985-12-13 | Inventio Ag | Schaltungsanordnung zur eingabe von steuerbefehlen in ein mikrocomputersystem. |
JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
JPS5939188A (ja) * | 1982-08-30 | 1984-03-03 | Hitachi Ltd | 状態変化デ−タ収集方法 |
US4482956A (en) * | 1982-11-04 | 1984-11-13 | International Business Machines Corporation | Parallel queueing method |
US4604694A (en) * | 1983-12-14 | 1986-08-05 | International Business Machines Corporation | Shared and exclusive access control |
US4635189A (en) * | 1984-03-01 | 1987-01-06 | Measurex Corporation | Real-time distributed data-base management system |
US4584640A (en) * | 1984-06-27 | 1986-04-22 | Motorola, Inc. | Method and apparatus for a compare and swap instruction |
US4745541A (en) * | 1986-06-16 | 1988-05-17 | Cincinnati Milacron Inc. | Method and apparatus for process control |
-
1988
- 1988-09-29 US US07/250,673 patent/US4965718A/en not_active Expired - Fee Related
-
1989
- 1989-08-19 JP JP1212134A patent/JPH02236735A/ja active Pending
- 1989-09-08 DE DE68922261T patent/DE68922261T2/de not_active Expired - Fee Related
- 1989-09-08 EP EP89116644A patent/EP0361176B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58213375A (ja) * | 1982-06-07 | 1983-12-12 | Nec Corp | ロツク取得システム |
Also Published As
Publication number | Publication date |
---|---|
EP0361176B1 (en) | 1995-04-19 |
DE68922261D1 (de) | 1995-05-24 |
EP0361176A3 (en) | 1992-08-26 |
EP0361176A2 (en) | 1990-04-04 |
US4965718A (en) | 1990-10-23 |
DE68922261T2 (de) | 1995-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02236735A (ja) | データ処理方法及び装置 | |
US6971103B2 (en) | Inter-thread communications using shared interrupt register | |
JP2792649B2 (ja) | 並列コンピュータシステム | |
US5282272A (en) | Interrupt distribution scheme for a computer bus | |
EP0886225B1 (en) | Microprocessor architecture capable of supporting multiple heterogenous processors | |
US5115499A (en) | Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code | |
US6782468B1 (en) | Shared memory type vector processing system, including a bus for transferring a vector processing instruction, and control method thereof | |
US6546471B1 (en) | Shared memory multiprocessor performing cache coherency | |
US5261109A (en) | Distributed arbitration method and apparatus for a computer bus using arbitration groups | |
US7464208B2 (en) | Method and apparatus for shared resource management in a multiprocessing system | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
US5271020A (en) | Bus stretching protocol for handling invalid data | |
US5210828A (en) | Multiprocessing system with interprocessor communications facility | |
WO2006082989A2 (en) | System and method of interrupt handling | |
JPH07311751A (ja) | 共用メモリを有するマルチプロセッサ・システム | |
US6684346B2 (en) | Method and apparatus for machine check abort handling in a multiprocessing system | |
US6510471B1 (en) | Method for choosing device among plurality of devices based on coherncy status of device's data and if device supports higher-performance transactions | |
JP3108042B2 (ja) | マルチノード情報処理システムにおけるチケット分配方法 | |
GB2206714A (en) | Multiprocessing architecture | |
EP0376003A2 (en) | Multiprocessing system with interprocessor communications facility | |
JP3141948B2 (ja) | 計算機システム | |
JPH10111857A (ja) | マルチプロセッサ | |
JP3039918B2 (ja) | プロセッサシステム | |
Wallach | Functional description of some parallel systems | |
van Dijk et al. | EMPS: The design of an architecture for a distributed homogeneous multiprocessor system |