JPH0241553A - データ処理システム及び同期方法 - Google Patents
データ処理システム及び同期方法Info
- Publication number
- JPH0241553A JPH0241553A JP1107910A JP10791089A JPH0241553A JP H0241553 A JPH0241553 A JP H0241553A JP 1107910 A JP1107910 A JP 1107910A JP 10791089 A JP10791089 A JP 10791089A JP H0241553 A JPH0241553 A JP H0241553A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- synchronization
- request
- requests
- 5ynch
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
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、従来技術
ゴツトリーブ(Gott I ieb )等は、IEE
E Trans。
E Trans。
Comp、(1983年2月’り pp、175−89
に所載の論文rMIMD共用メモリ並列マシンのNYU
ウルトラコンピュータ設計(The HYUUltra
computer−Designing a MIMD
、 SharedMemory Parallel M
achine) Jで、「組合せスイッチ」と呼ばれる
タイプのスイッチのネットワークと結合された「取出し
後追加」と呼ばれる命令の使用に基づく並列同期化技術
を提案した。上記論文に記載された方式は、N台のプロ
セッサが、プロセッサの数に比例するよりも少ない割合
で増加する時間でその活動を同期化できる最初の方式で
ある。実際には、同期時間は、同期ネットワーク内の段
の数によって決まる一定の定数である。段の数は、接続
されたプロセッサの数の対数に比例して増加する。
に所載の論文rMIMD共用メモリ並列マシンのNYU
ウルトラコンピュータ設計(The HYUUltra
computer−Designing a MIMD
、 SharedMemory Parallel M
achine) Jで、「組合せスイッチ」と呼ばれる
タイプのスイッチのネットワークと結合された「取出し
後追加」と呼ばれる命令の使用に基づく並列同期化技術
を提案した。上記論文に記載された方式は、N台のプロ
セッサが、プロセッサの数に比例するよりも少ない割合
で増加する時間でその活動を同期化できる最初の方式で
ある。実際には、同期時間は、同期ネットワーク内の段
の数によって決まる一定の定数である。段の数は、接続
されたプロセッサの数の対数に比例して増加する。
IEEE Trans、 on Computers+
第C−36巻(1987年)、1)p、388−395
に所載の論文「大規模多重プロセッサでのホットスポッ
ト・アト・レッシングの分散(Distributin
g Hot−spotAddressing in L
arge−scale Multiprocessor
s) Jで、ニー(Yev)等が取った別の手法は、ソ
フトウェアでの組合せ動作、実際には、多くの異なるメ
モリへの競合点の分散をシミュレーシロンしたものであ
る。ニー等は、この手法が、組合せをサポートするため
に必要なハードウェア上の不利益なしで処理能力を向上
させるのに有効であると報告している。しかし、彼等の
技術は、組合せが適用可能な限られたアプリケーション
にしか有用でない。
第C−36巻(1987年)、1)p、388−395
に所載の論文「大規模多重プロセッサでのホットスポッ
ト・アト・レッシングの分散(Distributin
g Hot−spotAddressing in L
arge−scale Multiprocessor
s) Jで、ニー(Yev)等が取った別の手法は、ソ
フトウェアでの組合せ動作、実際には、多くの異なるメ
モリへの競合点の分散をシミュレーシロンしたものであ
る。ニー等は、この手法が、組合せをサポートするため
に必要なハードウェア上の不利益なしで処理能力を向上
させるのに有効であると報告している。しかし、彼等の
技術は、組合せが適用可能な限られたアプリケーション
にしか有用でない。
米国特許第4836942号は、−組の共通レジスタを
共用する2台のプロセッサを示している。
共用する2台のプロセッサを示している。
この特許は組合せについては明示的に示していない。さ
らに、組合せは、2プロセツサ・システムでは特に魅力
的ではなく、実際には、多数の、たとえば128台以上
のプロセッサを有するシステムに最も有用である。上記
特許の手法は、2.3台を超えるプロセッサには拡張で
きず、128台以上のプロセッサを有するシステムで記
述されるように使用するには実現不可能あるいは魅力的
でない概念を説明している。
らに、組合せは、2プロセツサ・システムでは特に魅力
的ではなく、実際には、多数の、たとえば128台以上
のプロセッサを有するシステムに最も有用である。上記
特許の手法は、2.3台を超えるプロセッサには拡張で
きず、128台以上のプロセッサを有するシステムで記
述されるように使用するには実現不可能あるいは魅力的
でない概念を説明している。
米国特許第4598400号は、非常に多数のプロセッ
サを含む接続ネットワークでメツセージをどのように経
路指定するかについて考察している。上記特許はもっば
ら経路指定に関するものであり、プロセッサ活動の同期
化には全く関係しない。2つの要求を組み合わせて単一
の要求にすることはできない。したがって、上記特許は
別の問題を対象とするもので、同期/組合せ問題に適し
てはいない。
サを含む接続ネットワークでメツセージをどのように経
路指定するかについて考察している。上記特許はもっば
ら経路指定に関するものであり、プロセッサ活動の同期
化には全く関係しない。2つの要求を組み合わせて単一
の要求にすることはできない。したがって、上記特許は
別の問題を対象とするもので、同期/組合せ問題に適し
てはいない。
米国特許第4523 ’273号は多層スイッチ・ネッ
トワークを使用し、余分の段を加えることによって基本
ネットワークの機能を強化するものである。追加段の目
的は、ネットワーク内での故障の場合にメツセージを代
替経路を介して宛先に送ることかできるように、冗長経
路を提供することである。上記特許は、ネットワーク内
での故障の場合の経路指定の考察に関するものであり、
組合せを対象とするものではない。
トワークを使用し、余分の段を加えることによって基本
ネットワークの機能を強化するものである。追加段の目
的は、ネットワーク内での故障の場合にメツセージを代
替経路を介して宛先に送ることかできるように、冗長経
路を提供することである。上記特許は、ネットワーク内
での故障の場合の経路指定の考察に関するものであり、
組合せを対象とするものではない。
米国特許第4412303号は多層ネットワーク及び同
期機構を対象とし、しばしば「障壁」同期化と呼ばれる
あるタイプの同期化に適している。
期機構を対象とし、しばしば「障壁」同期化と呼ばれる
あるタイプの同期化に適している。
これは重要な機能であるが、−船釣な同期方法ではない
。上記特許では、プロセッサは同期点で停止しなければ
ならず、同期が完了するまで、そのプロセッサによって
有用な作業は行なわれず、また他のプロセッサによって
そのプロセッサのため有用な作業が行なわれない。上記
特許の同期化は、メモリ要求を組み合わせてメモリ要求
を減少させることがなく、また多数の要求端末が、たと
えば待ち行列ポインタの同時更新を行なうことにより、
待ち行列で要求を同時に同期させることもできない。
。上記特許では、プロセッサは同期点で停止しなければ
ならず、同期が完了するまで、そのプロセッサによって
有用な作業は行なわれず、また他のプロセッサによって
そのプロセッサのため有用な作業が行なわれない。上記
特許の同期化は、メモリ要求を組み合わせてメモリ要求
を減少させることがなく、また多数の要求端末が、たと
えば待ち行列ポインタの同時更新を行なうことにより、
待ち行列で要求を同時に同期させることもできない。
米国特許第4385292号は、オメガ(Omega
)ネットワークの実施を対象とするもので、組合せを実
行せず、プロセッサを同期させない。
)ネットワークの実施を対象とするもので、組合せを実
行せず、プロセッサを同期させない。
米国特許第4590555は、処理を同期するための手
段を対象とするが、それはその特許の副次的機能で・あ
る。その主な目的は処理をプロセッサ間に割り振ること
である。処理がサービスを要求するとき、この要求の信
号が記録され、プロセッサが割り当てられるまで処理は
停止される。実行中の処理が一時的に停止できる点に到
達すると、プロセッサを放棄し、プロセッサは、作動可
能で割当てを待っている処理に再割振りされる。上記特
許は、割振りを容易にするためのハードウェア手段を対
象とするものである。再割当てが行なわれるのは、同期
が必要なために処理が続行することができないときであ
る。したがって、ハードウェアはまた、ある処理を中断
してその間にその活動を別の処理と同期させる手段によ
って処理を同期させる機構を提供する。活動の組合せは
行なわれず、あるプロセッサが同期点で別のプロセッサ
と通信する手段もない。それは、あるプロセッサが別の
プロセッサの代理として働く場合に不可欠である。
段を対象とするが、それはその特許の副次的機能で・あ
る。その主な目的は処理をプロセッサ間に割り振ること
である。処理がサービスを要求するとき、この要求の信
号が記録され、プロセッサが割り当てられるまで処理は
停止される。実行中の処理が一時的に停止できる点に到
達すると、プロセッサを放棄し、プロセッサは、作動可
能で割当てを待っている処理に再割振りされる。上記特
許は、割振りを容易にするためのハードウェア手段を対
象とするものである。再割当てが行なわれるのは、同期
が必要なために処理が続行することができないときであ
る。したがって、ハードウェアはまた、ある処理を中断
してその間にその活動を別の処理と同期させる手段によ
って処理を同期させる機構を提供する。活動の組合せは
行なわれず、あるプロセッサが同期点で別のプロセッサ
と通信する手段もない。それは、あるプロセッサが別の
プロセッサの代理として働く場合に不可欠である。
米国特許第430628Et号はもっばら多数のプロセ
ッサの接続を扱い、動作を組み合わせて競合を減少させ
る問題は扱っていない。上記特許は論理シミュレーショ
ンを対象とするもので、その交換ネットワークは、プロ
セッサを互いに接続する能力しか提供しない。この交換
ネットワークは、あるプロセッサが別のプロセッサの代
理として働くための手段を提供しない。
ッサの接続を扱い、動作を組み合わせて競合を減少させ
る問題は扱っていない。上記特許は論理シミュレーショ
ンを対象とするもので、その交換ネットワークは、プロ
セッサを互いに接続する能力しか提供しない。この交換
ネットワークは、あるプロセッサが別のプロセッサの代
理として働くための手段を提供しない。
米国特許第41019E30号は、スイッチ内に革新的
な位置合せネットワークを存する科学用多重プロセッサ
について記述している。この位置合せネットワークは、
マトリックスの種々の部分に対する競合のないアクセス
をもたらし、行、列、対角行列及びある種の部分行列に
、1エンティティ当り1機械サイクルで、個々のエンテ
ィティとしてアクセスすることができる。上記特許は、
アクセス競合を減少させることを対象とするものである
。メモリ内のデータの配置及びデータに対するアクセス
切換えによって競合が減少する。あるプロセッサの作業
を別のプロセッサに割り当てて、別のプロセッサがその
代理として働いている間そのプロセッサが遊べるように
することにより競合を減少させる手法とは対照的である
。上記特許ではそのような機能はない。
な位置合せネットワークを存する科学用多重プロセッサ
について記述している。この位置合せネットワークは、
マトリックスの種々の部分に対する競合のないアクセス
をもたらし、行、列、対角行列及びある種の部分行列に
、1エンティティ当り1機械サイクルで、個々のエンテ
ィティとしてアクセスすることができる。上記特許は、
アクセス競合を減少させることを対象とするものである
。メモリ内のデータの配置及びデータに対するアクセス
切換えによって競合が減少する。あるプロセッサの作業
を別のプロセッサに割り当てて、別のプロセッサがその
代理として働いている間そのプロセッサが遊べるように
することにより競合を減少させる手法とは対照的である
。上記特許ではそのような機能はない。
米国特許第4051551号は、多次元構造を形成する
データのアクセス及び位置合せを行なうスイッチについ
て記述している。このスイッチは、要求を組み合わせる
手段を提供しない。
データのアクセス及び位置合せを行なうスイッチについ
て記述している。このスイッチは、要求を組み合わせる
手段を提供しない。
米国特許第4661900号は、別個のプロセッサから
の共用メモリに対するアクセスを可能にし、プロセッサ
が共用レジスタを介してその活動を同期することを可能
にする。上記特許は、あるプロセッサが別のプロセッサ
の代理として働くことができるようにアクセスを組み合
わせる概念を含んでいない。
の共用メモリに対するアクセスを可能にし、プロセッサ
が共用レジスタを介してその活動を同期することを可能
にする。上記特許は、あるプロセッサが別のプロセッサ
の代理として働くことができるようにアクセスを組み合
わせる概念を含んでいない。
米国特許第4247892号はインターフェースでのマ
シンと待ち行列の相互接続を可能にするものである。そ
のアレイ構造は共用メモリを持たないので、上記特許は
共用メモリに対する競合の問題を扱っていない。したが
って、上記特許はホットスポット競合の問題を対象とし
ておらず、2つ以上の要求を組み合わせて1つの要求に
することにより、組合せを使って共用メモリにおけるホ
ットスポットを減少させることを対象としていない。
シンと待ち行列の相互接続を可能にするものである。そ
のアレイ構造は共用メモリを持たないので、上記特許は
共用メモリに対する競合の問題を扱っていない。したが
って、上記特許はホットスポット競合の問題を対象とし
ておらず、2つ以上の要求を組み合わせて1つの要求に
することにより、組合せを使って共用メモリにおけるホ
ットスポットを減少させることを対象としていない。
米国特許GB2178572A号は、1ビツト処理要素
を可変長の連鎖に再構成して、この再構成でより強力な
プロセッサ・グループができるようにする方式を提供す
る。プロセッサを再構成する瞬間に必要となる、同期手
段が含まれる。プロセッサのアレイは共用メモリを所有
せず、したがって、共用メモリにおける競合問題を示さ
ない。あるプロセッサが別のプロセッサの代理として働
くことはない。
を可変長の連鎖に再構成して、この再構成でより強力な
プロセッサ・グループができるようにする方式を提供す
る。プロセッサを再構成する瞬間に必要となる、同期手
段が含まれる。プロセッサのアレイは共用メモリを所有
せず、したがって、共用メモリにおける競合問題を示さ
ない。あるプロセッサが別のプロセッサの代理として働
くことはない。
IBMテクニカル・ディスクロージャ・プルテン、Vo
1.1B、No、2 (1973年7月)に所載のド
ウ・ミルド(De旧It)の論文「モジュール式処理シ
ステム用のインターカッド同期システム(Inter−
quad 5ynchronization 5yst
e+++For Modular Processin
g Systems) Jは1複数のプロセッサを同期
させる方法を提供する。幾っがのプロセッサがそれぞれ
共用資源にアクセスしなければならないとき、要求プロ
セッサの1つを選択し、他のプロセッサを拒絶する手段
が含まれる。
1.1B、No、2 (1973年7月)に所載のド
ウ・ミルド(De旧It)の論文「モジュール式処理シ
ステム用のインターカッド同期システム(Inter−
quad 5ynchronization 5yst
e+++For Modular Processin
g Systems) Jは1複数のプロセッサを同期
させる方法を提供する。幾っがのプロセッサがそれぞれ
共用資源にアクセスしなければならないとき、要求プロ
セッサの1つを選択し、他のプロセッサを拒絶する手段
が含まれる。
C0発明が解決しようとする問題点
本発明の目的は、並列処理を同期させる改善された技術
を提供することである。
を提供することである。
本発明のもう1つの目的は、多重プロセッサにおける同
期のための組合せ動作を、より少ないハードウェアで、
提供することである。
期のための組合せ動作を、より少ないハードウェアで、
提供することである。
本発明のもう1つの目的は、同期化機構がより複雑な大
きさ比較の代りに同等検査を実行するという、並列処理
を同期させる改善された技術を提供することである。
きさ比較の代りに同等検査を実行するという、並列処理
を同期させる改善された技術を提供することである。
本発明のもう1つの目的は、2人カ同期化機構が、どの
要求をも拒絶することなく、また要求を反復させること
なく、各サイクルごとに各久方を連続して受け取ること
ができるという、同期技術を提供することである。
要求をも拒絶することなく、また要求を反復させること
なく、各サイクルごとに各久方を連続して受け取ること
ができるという、同期技術を提供することである。
本発明の他の目的は、クロスバ−交換機に組合せ動作を
サポートさせる追加の動作モードを含む、交換点に比較
機構を有するクロスバ−交換機を使用した同期技術を提
供することである。
サポートさせる追加の動作モードを含む、交換点に比較
機構を有するクロスバ−交換機を使用した同期技術を提
供することである。
本発明の他の目的は、各内部スイッチに組合せ動作をサ
ポートさせる追加の動作モードを含む、交換点に比較機
構を有する多段スイッチを使用した同期技術を提供する
ことである。
ポートさせる追加の動作モードを含む、交換点に比較機
構を有する多段スイッチを使用した同期技術を提供する
ことである。
本発明の他の目的は、全ての段を両方向に走査すること
なく、同期された要求が同期化が行なわれた段から直接
戻ることができる、多段スイッチ内の同期論理を提供す
ることである。
なく、同期された要求が同期化が行なわれた段から直接
戻ることができる、多段スイッチ内の同期論理を提供す
ることである。
本発明の他の目的は、多段交換ネットワーク内のそれぞ
れのスイッチが全て同じ同期能力を有する必要はないと
いう、多段スイッチ内の同期論理を提供することである
。
れのスイッチが全て同じ同期能力を有する必要はないと
いう、多段スイッチ内の同期論理を提供することである
。
本発明のもう1つの目的は、第2の処理がそれ自体のた
めの動作を続行しながら同時に第1の処理の代理として
働く間、第1の処理の動作を中断させることにより、2
つの処理を同期させるという、組合せネットワークを使
用した並列同期技術を提供することである。
めの動作を続行しながら同時に第1の処理の代理として
働く間、第1の処理の動作を中断させることにより、2
つの処理を同期させるという、組合せネットワークを使
用した並列同期技術を提供することである。
本発明のもう1つの目的は、状態記憶g置が同期機構の
代りにプロセッサ内に置かれた、改善された同期技術を
提供することである。
代りにプロセッサ内に置かれた、改善された同期技術を
提供することである。
本発明のもう1つの目的は、同期のために逐次論理が必
要でなく、かつ同期命令のオペランドのために交換ネッ
トワーク内に記憶装置が必要でない、改善された同期技
術を提供することである。
要でなく、かつ同期命令のオペランドのために交換ネッ
トワーク内に記憶装置が必要でない、改善された同期技
術を提供することである。
D3問題点を解決するための手段
本発明によれば、性能をひどく損なわずに実施コストが
減少するようにハードウェア及びソフトウェアの両方を
組み合わせる、同期のための代替手段が提供される。ス
イッチ・ノードにある演算機構が簡単な比較機構で置き
換えられ、組合せによって課される記憶要件が除去され
、それによってスイッチ・メートのコストが大幅に減少
し、多分、ノード当りの遅延も減少する。
減少するようにハードウェア及びソフトウェアの両方を
組み合わせる、同期のための代替手段が提供される。ス
イッチ・ノードにある演算機構が簡単な比較機構で置き
換えられ、組合せによって課される記憶要件が除去され
、それによってスイッチ・メートのコストが大幅に減少
し、多分、ノード当りの遅延も減少する。
第2の処理がそれ自体のための動作を続行しながら同時
に第1の処理の代理(agent)として山く間、第1
の処理の動作を中断させることにより、2つの処理を同
期させるという組合せネットワークを使用した並列同期
技術が提供される。このような組合せの効果は、アクセ
ス要求、及び共通変数に対する複数の同時要求によって
引き起こされるその後の競合を減少させることである。
に第1の処理の代理(agent)として山く間、第1
の処理の動作を中断させることにより、2つの処理を同
期させるという組合せネットワークを使用した並列同期
技術が提供される。このような組合せの効果は、アクセ
ス要求、及び共通変数に対する複数の同時要求によって
引き起こされるその後の競合を減少させることである。
E、実施例
本発明は、並列処理を同期させるための代替技術を提供
する。本発明は、組合せスイッチに基づく技術よりもハ
ードウェア集約性が低いが、得られる処理能力は、組合
せスイッチから得られる処理能力にほぼ匹敵する。
する。本発明は、組合せスイッチに基づく技術よりもハ
ードウェア集約性が低いが、得られる処理能力は、組合
せスイッチから得られる処理能力にほぼ匹敵する。
以下の4つの部分に分けて本発明の説明を行なう。
1、同期化のための一般的ハードウェア構造、2、バー
)’ウニアラ使用するための支援ソフトウェアの実施、 3、クロスバ−交換機で使用されるハードウェア構造、
及び 4、多段スイッチで使用されるハードウェア構造。
)’ウニアラ使用するための支援ソフトウェアの実施、 3、クロスバ−交換機で使用されるハードウェア構造、
及び 4、多段スイッチで使用されるハードウェア構造。
■、一般的ハードウェアの説明
本発明の一般的ハードウェアを第1図に示す。
この図はN台のプロセッサ10、相互接続ネットワーク
12及び同期化機構14を示す。各同期化機構14は2
つの入力を有し、したがって2つの要求間の調停を行な
う。
12及び同期化機構14を示す。各同期化機構14は2
つの入力を有し、したがって2つの要求間の調停を行な
う。
本発明は、任意の通常の多重処理システムで、プロセッ
サが別個の独立したメモリにアクセスできるという状況
のもとで働くことが意図されている。第2図は、1つの
ネットワーク26がプロセッサ20を同期化機構2・2
とメモリ24の両方に接続するという1つの可能な状況
を示す。このシステムでは、同期化機構22を相互接続
ネットワーク26とメモリ24の間に配置することがで
き、したがって、同期化機構22は2つの要求を同期さ
せるか、またはプロセッサとメモリの間を通過する個々
の要求に対する経路指定機構として俄(ことができる。
サが別個の独立したメモリにアクセスできるという状況
のもとで働くことが意図されている。第2図は、1つの
ネットワーク26がプロセッサ20を同期化機構2・2
とメモリ24の両方に接続するという1つの可能な状況
を示す。このシステムでは、同期化機構22を相互接続
ネットワーク26とメモリ24の間に配置することがで
き、したがって、同期化機構22は2つの要求を同期さ
せるか、またはプロセッサとメモリの間を通過する個々
の要求に対する経路指定機構として俄(ことができる。
本発明に対する別の状況を第3図に示す。このシステム
では、プロセッサ32が、この機能専用のネットワーク
36を介してメモリ30に接続される。同期化は別のネ
ットワーク38によって処理され、ネットワーク38は
同期要求を同期化機構モジュール34に渡す。
では、プロセッサ32が、この機能専用のネットワーク
36を介してメモリ30に接続される。同期化は別のネ
ットワーク38によって処理され、ネットワーク38は
同期要求を同期化機構モジュール34に渡す。
したがって、本発明は以下のような少なくとも2つの状
況で使用することができる。
況で使用することができる。
1、プロセッサをメモリに接続する相互接続ネットワー
ク内で使用される同期化機構(第2図)。
ク内で使用される同期化機構(第2図)。
2、プロセッサのみに接続される独立した別個のハード
ウェア・ブロックとして使用される同期化機構(第3図
)。
ウェア・ブロックとして使用される同期化機構(第3図
)。
相互接続ネットワークは第2図では特定されていない。
その厳密な構造は本発明の重要な部分ではない。2種類
の異なる相互接続ネットワークがどのように本発明に適
合できるかについて後で示す。ネットワークの選択は、
処理能力及びコストに影響を及ぼすが、動作の正確さに
は影響しない。
の異なる相互接続ネットワークがどのように本発明に適
合できるかについて後で示す。ネットワークの選択は、
処理能力及びコストに影響を及ぼすが、動作の正確さに
は影響しない。
第2図のプロセッサの並列同期は、プロセッサから出さ
れる、rsynch Jと呼ばれる命令にょうて行なわ
れる。5ynch は組合せ可能な要求の検出及び同期
をもたらす。組合せ可能な要求が検出された場合、ソフ
トウェアによって組合せ、待合せ及び算術演算が行なわ
れる。これらの動作は、組合せスイッチで実施するとき
よりも、ソフトウェアで実施するときの方が時間がかか
るが、以下の2つの要素がソフトウェア・オーバーヘッ
ドの影響を緩和する。
れる、rsynch Jと呼ばれる命令にょうて行なわ
れる。5ynch は組合せ可能な要求の検出及び同期
をもたらす。組合せ可能な要求が検出された場合、ソフ
トウェアによって組合せ、待合せ及び算術演算が行なわ
れる。これらの動作は、組合せスイッチで実施するとき
よりも、ソフトウェアで実施するときの方が時間がかか
るが、以下の2つの要素がソフトウェア・オーバーヘッ
ドの影響を緩和する。
1、組合せは低い頻度で行なわれるので、1動作当り余
分なコストがかかっても処理能力に大きな影響を及ぼさ
ない。
分なコストがかかっても処理能力に大きな影響を及ぼさ
ない。
2、同期化スイッチで論理回路が不要なのでスイッチが
はるかに高速となり、したがって同期相互接続の使用を
必要とするすべての動作がこの実施例では、組合せスイ
ッチによる実施よりも高速になる。
はるかに高速となり、したがって同期相互接続の使用を
必要とするすべての動作がこの実施例では、組合せスイ
ッチによる実施よりも高速になる。
「取出し後追加」同期化の活動をシミュレートするには
、N台の同期プロセッサがそれぞれ、第4図の同期ツリ
ーで示すように、log2N回の同期化を実行しなけれ
ばならない。このツリーは、組合せネットワークに存在
する同期のツリーと基本的に同じである。本発明に必要
な方式では、ソフトウェアが、各プロセッサにツリー内
の経路を上部の葉から下部の根までたどらせ、あるいは
組合せ動作が行なわれる場合は、早く終了させる。
、N台の同期プロセッサがそれぞれ、第4図の同期ツリ
ーで示すように、log2N回の同期化を実行しなけれ
ばならない。このツリーは、組合せネットワークに存在
する同期のツリーと基本的に同じである。本発明に必要
な方式では、ソフトウェアが、各プロセッサにツリー内
の経路を上部の葉から下部の根までたどらせ、あるいは
組合せ動作が行なわれる場合は、早く終了させる。
第4図のツリーは、組み合わされる要求の概念図である
。各プロセッサのソフトウェアは、共用変数にアクセス
するために使用すべき要求の順序を決定しなければなら
ないとき、ツリー表示を構成して保管することができる
。ツリー表示の目的は、各プロセッサから一連の組合せ
可能な要求を発生することである。
。各プロセッサのソフトウェアは、共用変数にアクセス
するために使用すべき要求の順序を決定しなければなら
ないとき、ツリー表示を構成して保管することができる
。ツリー表示の目的は、各プロセッサから一連の組合せ
可能な要求を発生することである。
第4図では、要求は、8台のプロセッサに対する要求を
表わすOないし7の番号を付けである。
表わすOないし7の番号を付けである。
各ノードは1ないし7の番号で示されている。ラベルは
rsynchアドレス」と呼ばれ、要求側プロセッサか
ら出される5ynch命令のオペランドである。これら
の表示をどのように導き出すかについては、後で第6図
に関して考察する。
rsynchアドレス」と呼ばれ、要求側プロセッサか
ら出される5ynch命令のオペランドである。これら
の表示をどのように導き出すかについては、後で第6図
に関して考察する。
5ynch命令は次の形式を取る。
5ynch (synchアドレス、オペランド・アド
レス)synch アドレスは要求を第2図のネットワ
ークの特定の同期化機構に送り、オペランド・アドレス
は、同期化が行なわれる場合に交換される情報を運ぶ。
レス)synch アドレスは要求を第2図のネットワ
ークの特定の同期化機構に送り、オペランド・アドレス
は、同期化が行なわれる場合に交換される情報を運ぶ。
各5ynchアドレスは特定の同期化機構と関連づけら
れているが、各同期化機構は多数の異なる5ynch
アドレスと関連づけることが可能である。各メモリ・ア
ドレスは特定のメモリ・モジュールと関連づけられるの
で、5ynch アドレスはこの点でメモリ・アドレス
のように挙動するが、メモリ・モジュールは多数の異な
るメモリ・アドレスを保持することができる。
れているが、各同期化機構は多数の異なる5ynch
アドレスと関連づけることが可能である。各メモリ・ア
ドレスは特定のメモリ・モジュールと関連づけられるの
で、5ynch アドレスはこの点でメモリ・アドレス
のように挙動するが、メモリ・モジュールは多数の異な
るメモリ・アドレスを保持することができる。
プロセッサ20から5ynch命令が出されると、5y
nchアドレス及び5ynchオペランドは相互接続ネ
ットワーク26を介して目標の同期化機構22に転送さ
れる。同期化機構22はこの命令に作用し、結果のコー
ド及び結果のオペランドを戻す。
nchアドレス及び5ynchオペランドは相互接続ネ
ットワーク26を介して目標の同期化機構22に転送さ
れる。同期化機構22はこの命令に作用し、結果のコー
ド及び結果のオペランドを戻す。
5ynch動作の結果として次の3つが可能である。
■・5ynch なし
2 、5ynch続行
3 、5ynch待機
一対の同期要求に応答した同期化機構の作用を第5図に
示す。論理ブロック50で、同期化機構は、同期化機構
に対する両方の入力が活動状態の要求を保持するかどう
か調べるためのテストを行なう。いずれかの入力が空の
場合、活動状態の要求があれば、それを有する入力に対
して5ynchなしを報告することにより、同期サイク
ルが終了する。
示す。論理ブロック50で、同期化機構は、同期化機構
に対する両方の入力が活動状態の要求を保持するかどう
か調べるためのテストを行なう。いずれかの入力が空の
場合、活動状態の要求があれば、それを有する入力に対
して5ynchなしを報告することにより、同期サイク
ルが終了する。
両方の入力が活動状態の要求を保持する場合は、論理ブ
ロック60で、同期化機構は、5ynchアドレスが等
しいかどうか調べるためのテストを行なう。等しくない
場合は、両方の要求プロセッサに5ynch なしが戻
される。
ロック60で、同期化機構は、5ynchアドレスが等
しいかどうか調べるためのテストを行なう。等しくない
場合は、両方の要求プロセッサに5ynch なしが戻
される。
論理ブロック70は、同期化機構が、等しい同期アドレ
スを有する要求にどのように応答するかを示す。入力1
は5ynch続行の結果を受け取り、入力2からのオペ
ランド・アドレスをも受け取る。
スを有する要求にどのように応答するかを示す。入力1
は5ynch続行の結果を受け取り、入力2からのオペ
ランド・アドレスをも受け取る。
論理ブロック80で、入力2が5ynch待機の結果を
受け取り、入力1からのオペランド・アドレスを受け取
る。本発明では、入力2が入力1からオペランド・アド
レスを受け取るかどうかは任意である。入力1から入力
2にオペランドを転送するために必要な追加の論理回路
を設けると実施のコストが増大するが、追加情報を使っ
て後の処理コストを削減することも可能である。本発明
では、実施者の随意でどちらの動作モードでも使用する
ことが可能である。
受け取り、入力1からのオペランド・アドレスを受け取
る。本発明では、入力2が入力1からオペランド・アド
レスを受け取るかどうかは任意である。入力1から入力
2にオペランドを転送するために必要な追加の論理回路
を設けると実施のコストが増大するが、追加情報を使っ
て後の処理コストを削減することも可能である。本発明
では、実施者の随意でどちらの動作モードでも使用する
ことが可能である。
第5図の同期化機構実施例の動作は、他方の同期化機構
入力が空であるか、または組合せ不能な要求を含むとき
、要求が同期化機構に到達した場合に5ynchなしの
結果が戻されるようになっている。
入力が空であるか、または組合せ不能な要求を含むとき
、要求が同期化機構に到達した場合に5ynchなしの
結果が戻されるようになっている。
2つの組合せ不能要求を同期化機構で同時に受け取った
とき、各要求は結果コード5ynch なしと共に同じ
クロック・サイクルで直ちに戻される。
とき、各要求は結果コード5ynch なしと共に同じ
クロック・サイクルで直ちに戻される。
メモリ要求の場合のように、後のクロック・サイクルま
で要求の1つを据置きする必要はない。本発明は、複数
の要求を1つのサイクルで処理するこの特徴によって、
メモリ要求及び同期化を処理する他の多くの技術から区
別される。
で要求の1つを据置きする必要はない。本発明は、複数
の要求を1つのサイクルで処理するこの特徴によって、
メモリ要求及び同期化を処理する他の多くの技術から区
別される。
2つの組合せ可能要求を同じクロック・サイクルで受け
取った場合、同期化機構は一方の要求に5ynch続行
を戻し、他方の要求に5ynch待機を戻す。5ync
h続行を受け取ったプロセッサは、5ynch待機を受
け取ったプロセッサの代理となるのに十分な情報を受け
取る。ごく近い将来に、続行中のプロセッサは、それ自
体にとって必要な作業ならびに、それが代理になる他の
プロセッサにとって必要な作業を行なう動作を実行する
。そのために山く代理があるプロセッサは、その代理の
「クライアント」と呼ばれる。作業が完了すると、代理
プロセッサは、待機中のクライアント・プロセッサに活
動の結果を報告し、したがって両方のプロセッサは、作
業を別々に実行した場合と同様に動作を続行することが
できる。しかし、同期動作により、クライアント・プロ
セッサに代理が割り当てられるので、接続ネットワーク
及びメモリ・システムに対する要求が軽減され、クライ
アント・プロセッサはその後、そのために代理プロセッ
サが働いている間、遊休状態になる。
取った場合、同期化機構は一方の要求に5ynch続行
を戻し、他方の要求に5ynch待機を戻す。5ync
h続行を受け取ったプロセッサは、5ynch待機を受
け取ったプロセッサの代理となるのに十分な情報を受け
取る。ごく近い将来に、続行中のプロセッサは、それ自
体にとって必要な作業ならびに、それが代理になる他の
プロセッサにとって必要な作業を行なう動作を実行する
。そのために山く代理があるプロセッサは、その代理の
「クライアント」と呼ばれる。作業が完了すると、代理
プロセッサは、待機中のクライアント・プロセッサに活
動の結果を報告し、したがって両方のプロセッサは、作
業を別々に実行した場合と同様に動作を続行することが
できる。しかし、同期動作により、クライアント・プロ
セッサに代理が割り当てられるので、接続ネットワーク
及びメモリ・システムに対する要求が軽減され、クライ
アント・プロセッサはその後、そのために代理プロセッ
サが働いている間、遊休状態になる。
システムの負荷が軽いときは、要求を組み合わせる確率
は非常に小さいが、同期動作により、同期される動作を
実行するのに必要な合計時間に、少しの時間的オーバー
ヘッドが加わる。同期化要求が頻繁になると、組合せの
確率は増大し、確率が増大するに従い、要求の組合せに
よって要求負荷が軽減される傾向がある。したがって、
同期化は、同期活動のピーク負荷を減少させることによ
す、多重プロセッサ・コンピュータ・システムの動作を
安定させる傾向がある。
は非常に小さいが、同期動作により、同期される動作を
実行するのに必要な合計時間に、少しの時間的オーバー
ヘッドが加わる。同期化要求が頻繁になると、組合せの
確率は増大し、確率が増大するに従い、要求の組合せに
よって要求負荷が軽減される傾向がある。したがって、
同期化は、同期活動のピーク負荷を減少させることによ
す、多重プロセッサ・コンピュータ・システムの動作を
安定させる傾向がある。
2、同期能力のソフトウェア利用
目的は、同期化機構間で要求を均衡させる形で5ync
h要求を出すことである。第4図に示すツIJ −は、
要求を均衡させるそのような方法の1つを示す。N個の
要求を同期させるのに合計N−1個の別個の5ynch
アドレスが必要となることに留意されたい。これらの
5ynch アドレスは、N個の異なった同期化機構モ
ジュールにアドレスを分配する形で作成することができ
る。第2図のネットワークが衝突なしに要求をN個の異
なった同期化機構に経路指定することができる限り、ネ
ットワークは高い同期速度をサポートする。
h要求を出すことである。第4図に示すツIJ −は、
要求を均衡させるそのような方法の1つを示す。N個の
要求を同期させるのに合計N−1個の別個の5ynch
アドレスが必要となることに留意されたい。これらの
5ynch アドレスは、N個の異なった同期化機構モ
ジュールにアドレスを分配する形で作成することができ
る。第2図のネットワークが衝突なしに要求をN個の異
なった同期化機構に経路指定することができる限り、ネ
ットワークは高い同期速度をサポートする。
並列プログラムの局所部分で同期化が頻繁に行なわれる
と、同期モジュールで同期化が衝突する。
と、同期モジュールで同期化が衝突する。
そのような衝突の結果、一対の要求が1つの要求で置き
換えられる。5ynch続行を受け取ったプロセッサは
代理プロセッサになり、その要求を、5ynch待機を
受け取ったパートナ−の要求と組み合わせる。代理プロ
セッサは次にその複合要求を続行する。第4図の概念は
、上側のノードで組み合わされた2つの要求が単一の要
求として次のノードに送られるというものである。組合
せが再度行なわれることがある。最終的には、ツリーの
下部に1つの要求が現われる。この複合要求が、次に共
用変数に対して実行される。共用変数とは、複数のプロ
セッサによって変更される変数、たとえば複数のプロセ
ッサが増分を加える整数である。
換えられる。5ynch続行を受け取ったプロセッサは
代理プロセッサになり、その要求を、5ynch待機を
受け取ったパートナ−の要求と組み合わせる。代理プロ
セッサは次にその複合要求を続行する。第4図の概念は
、上側のノードで組み合わされた2つの要求が単一の要
求として次のノードに送られるというものである。組合
せが再度行なわれることがある。最終的には、ツリーの
下部に1つの要求が現われる。この複合要求が、次に共
用変数に対して実行される。共用変数とは、複数のプロ
セッサによって変更される変数、たとえば複数のプロセ
ッサが増分を加える整数である。
共用変数に対する複合要求の結果が次にツリーの上方に
渡される。5ynch続行を受け取った各タスクは、5
ynch待機を受け取ったそのパートナ−・タスクに情
報を渡し、待機タスクを解放してその経路を上方に戻ら
せ、再度ツリーを下向きにステップをたどる。
渡される。5ynch続行を受け取った各タスクは、5
ynch待機を受け取ったそのパートナ−・タスクに情
報を渡し、待機タスクを解放してその経路を上方に戻ら
せ、再度ツリーを下向きにステップをたどる。
組合せが行なわれると、5ynch ネットワークに対
する要求、最終的には、共用データを含むメモリ・セル
に対する要求が減少し、そのために共用データに関する
必要帯域幅が減少し、そうでない場合に発生する可能性
がある共用データにおける待合せ遅延が減少する。
する要求、最終的には、共用データを含むメモリ・セル
に対する要求が減少し、そのために共用データに関する
必要帯域幅が減少し、そうでない場合に発生する可能性
がある共用データにおける待合せ遅延が減少する。
各プロセッサに対する基本ソフトウェア・ループは、ツ
リーの葉から始まってツリーをその根に向かって下りな
がら、第4図のツリーに示すアドレスでlog2 N個
の5ynchを発生する。Nはプロセッサの数であり、
同時要求の最大数である。
リーの葉から始まってツリーをその根に向かって下りな
がら、第4図のツリーに示すアドレスでlog2 N個
の5ynchを発生する。Nはプロセッサの数であり、
同時要求の最大数である。
第4図に示した例で、Nは8に等しい。5ynch続行
または5ynch待機を戻すときは5ynchは割込み
を発生し% 5ynchなしを戻すときは割込みを発生
しないものと仮定する。第4図のツリー表示の1つの経
路を走査するため、プロセッサiによって第6図のアル
ゴリズムが実行される。プロセッサiが調べる最初の5
ynch アドレスは、trunc[(i+N)/2コ
で与えられ、後続のアドレスは次々に2で割って商を切
り捨てることによって得られる。この割算は、各アドレ
スごとにアドレスを1ビット位置ずつ右にシフトするこ
とによって実施される。関数trunc (x )は、
Xの整数部分を発生するものである。たとえば、tru
nc (3。
または5ynch待機を戻すときは5ynchは割込み
を発生し% 5ynchなしを戻すときは割込みを発生
しないものと仮定する。第4図のツリー表示の1つの経
路を走査するため、プロセッサiによって第6図のアル
ゴリズムが実行される。プロセッサiが調べる最初の5
ynch アドレスは、trunc[(i+N)/2コ
で与えられ、後続のアドレスは次々に2で割って商を切
り捨てることによって得られる。この割算は、各アドレ
スごとにアドレスを1ビット位置ずつ右にシフトするこ
とによって実施される。関数trunc (x )は、
Xの整数部分を発生するものである。たとえば、tru
nc (3。
5) =3.0、trunc (3) =3である。
第6図の論理ブロック100で、プロセッサがシステム
に割込み可能になり、5ynch待機または5ynch
続行要求を受け取ったとき割込みが発生するようになる
。論理ブロック110で、主ループの反復回数を制御す
るカウントが初期設定される。論理ブロック120で主
ループに対する初期5ynchアドレスが計算されるが
、それはプロセッサiでは(i+N)で与えられる。論
理ブロック130で、ループが始まって、5ynchア
ドレスが右にシフトされ、5ynch命令のための新し
いオペランドが発生される。論理ブロック130で発生
されたアドレスの順序は、第4図のツリーの最上部にあ
る葉ノードからツリーの最下部にある根ノードに至る経
路上でのノードの順序に対応する。
に割込み可能になり、5ynch待機または5ynch
続行要求を受け取ったとき割込みが発生するようになる
。論理ブロック110で、主ループの反復回数を制御す
るカウントが初期設定される。論理ブロック120で主
ループに対する初期5ynchアドレスが計算されるが
、それはプロセッサiでは(i+N)で与えられる。論
理ブロック130で、ループが始まって、5ynchア
ドレスが右にシフトされ、5ynch命令のための新し
いオペランドが発生される。論理ブロック130で発生
されたアドレスの順序は、第4図のツリーの最上部にあ
る葉ノードからツリーの最下部にある根ノードに至る経
路上でのノードの順序に対応する。
論理ブロック140で、同期モジュールに5ynch命
令が出される。論理ブロック150でループ・カウント
が減分され、論理ブロック160で調べるべきノードが
まだ残っていることが判明した場合は、ループが再開さ
れる。ループの出口で、プロセッサは、論理ブロック1
70に示すように、共用変数を更新する。
令が出される。論理ブロック150でループ・カウント
が減分され、論理ブロック160で調べるべきノードが
まだ残っていることが判明した場合は、ループが再開さ
れる。ループの出口で、プロセッサは、論理ブロック1
70に示すように、共用変数を更新する。
所与の関数によって発生されたアドレスの順序の一例と
して、N=8プロセッサであり、プロセッサ5が第6図
のアルゴリズムを実行すると仮定する。5ynch ア
ドレスは13に初期設定される。発生される最初のアド
レスはtrunc (13/ 2) ”6であり、後続
のアドレスは3及び1である。これらのアドレスは、第
4図の入力5からツリーの根に至るツリー経路上のノー
ド番号と同じである。
して、N=8プロセッサであり、プロセッサ5が第6図
のアルゴリズムを実行すると仮定する。5ynch ア
ドレスは13に初期設定される。発生される最初のアド
レスはtrunc (13/ 2) ”6であり、後続
のアドレスは3及び1である。これらのアドレスは、第
4図の入力5からツリーの根に至るツリー経路上のノー
ド番号と同じである。
同期化が行なわれない場合は、第6図のすべてのブロッ
クが実行される。プロセッサがSynch待機または5
ynch続行に出会った場合は、中断して、以下に示す
ように、第7図ないし第10図に示すブロックで処理を
続行する。5ynch命令が比較的高速である場合は、
第6図のループの実施コストは、同期が行なわれないと
きには非常に低い。同期が行なわれるときのみ、時間的
な不利益が生じる。しかし、そのような不利益は、要求
の組合せによる処理の節約によって相殺される。
クが実行される。プロセッサがSynch待機または5
ynch続行に出会った場合は、中断して、以下に示す
ように、第7図ないし第10図に示すブロックで処理を
続行する。5ynch命令が比較的高速である場合は、
第6図のループの実施コストは、同期が行なわれないと
きには非常に低い。同期が行なわれるときのみ、時間的
な不利益が生じる。しかし、そのような不利益は、要求
の組合せによる処理の節約によって相殺される。
第7図は、プロセッサが5ynch待機を受け取ったと
きに行なわれる活動を示す。論理ブロック200で、処
理が再開するとき、ソフトウェアが中断点から第6図の
実行を続行しないように、プロセッサがその状態レコー
ドを変更する。論理ブロック210で、プロセッサは割
込みを再び可能にし、論理ブロック220に進んで待機
状態になる。論理ブロック230で、プロセッサは、そ
の代理プロセッサが共同タスクを完了したときに代理プ
ロセッサから通知される割込みにより再び活動化される
。プロセッサは次に、それ自体に関する共用変数の更新
を完了した場合と同様に、代理プロセッサから戻される
情報を使って、計算を続行する。
きに行なわれる活動を示す。論理ブロック200で、処
理が再開するとき、ソフトウェアが中断点から第6図の
実行を続行しないように、プロセッサがその状態レコー
ドを変更する。論理ブロック210で、プロセッサは割
込みを再び可能にし、論理ブロック220に進んで待機
状態になる。論理ブロック230で、プロセッサは、そ
の代理プロセッサが共同タスクを完了したときに代理プ
ロセッサから通知される割込みにより再び活動化される
。プロセッサは次に、それ自体に関する共用変数の更新
を完了した場合と同様に、代理プロセッサから戻される
情報を使って、計算を続行する。
論理ブロック225は、プロセッサが無期限に待つのを
防ぐ監視タイマーである。待機時間が一定の時間を超え
た場合、監視タイマーは論理ブロック226への割込み
を強制し、そこで回復ソフトウェアが無応答の代理プロ
セッサの問題を処理する。第5図の論理ブロック80に
示すように、5ynch待機活動の一環として代理プロ
セッサのオペランド・アドレスが待機プロセッサに渡さ
れた場合は、回復活動の一環としてエラー処理が代理プ
ロセッサの識別を使用可能にすることができる。
防ぐ監視タイマーである。待機時間が一定の時間を超え
た場合、監視タイマーは論理ブロック226への割込み
を強制し、そこで回復ソフトウェアが無応答の代理プロ
セッサの問題を処理する。第5図の論理ブロック80に
示すように、5ynch待機活動の一環として代理プロ
セッサのオペランド・アドレスが待機プロセッサに渡さ
れた場合は、回復活動の一環としてエラー処理が代理プ
ロセッサの識別を使用可能にすることができる。
ここで代理プロセッサの活動について考察する。
この例として、組合せ可能活動は、ゴツトリーブ(Go
tt l ieb )等が概説したような、取出し後追
加命令に対するものであると仮定するが、どんな組合せ
可能命令も、対応する方式で実行できる。
tt l ieb )等が概説したような、取出し後追
加命令に対するものであると仮定するが、どんな組合せ
可能命令も、対応する方式で実行できる。
取出し後追加命令は目標変数と増分を指定する。
組合せを伴う取出し後追加命令は、以下のことを実行す
る。
る。
1.2つの取出し後追加命令が組み合わされる場合、一
方だけが続行し、他方は待機する。続行する方が2つの
増分の和を使用する。最終的に、共用変数は一度だけ増
分され、組み合わされたすべての増分の和を増分として
受け取る。
方だけが続行し、他方は待機する。続行する方が2つの
増分の和を使用する。最終的に、共用変数は一度だけ増
分され、組み合わされたすべての増分の和を増分として
受け取る。
2、取出し後追加命令は、組み合わされた2つの要求に
対して異なる2つの数を戻す。一方の要求プロセッサは
、複合増分が加えられる前に、共用変数の値を受け取り
、他方の要求プロセッサは、第1の要求プロセッサによ
って適用された増分に加える値を受け取る。これは、要
求が組み合わされなかった場合に受け取るものと同じで
あり、第1の要求プロセッサ次いで第2の要求プロセッ
サによって、次々に更新が行なわれる。
対して異なる2つの数を戻す。一方の要求プロセッサは
、複合増分が加えられる前に、共用変数の値を受け取り
、他方の要求プロセッサは、第1の要求プロセッサによ
って適用された増分に加える値を受け取る。これは、要
求が組み合わされなかった場合に受け取るものと同じで
あり、第1の要求プロセッサ次いで第2の要求プロセッ
サによって、次々に更新が行なわれる。
取出し後追加命令の動作の使用の一例として、2台のプ
ロセッサが共用変数をそれぞれ2及び5だけ増分したと
き何が起こるかについて考える。
ロセッサが共用変数をそれぞれ2及び5だけ増分したと
き何が起こるかについて考える。
共用変数の初期値は6である。取出し後追加命令の実行
中、同期化のため第1のプロセッサは第2のプロセッサ
の代理になるものと仮定する。第1のプロセッサは2つ
の増分を加算して、大きさが7の新しい増分を作る。追
加の同期化が行なわれないものと仮定すると、第1のプ
ロセッサは共用変数を7だけ増分して、最終結果13を
発生する。
中、同期化のため第1のプロセッサは第2のプロセッサ
の代理になるものと仮定する。第1のプロセッサは2つ
の増分を加算して、大きさが7の新しい増分を作る。追
加の同期化が行なわれないものと仮定すると、第1のプ
ロセッサは共用変数を7だけ増分して、最終結果13を
発生する。
第1のプロセッサはまた、共用変数を更新するとともに
初期値6を得る。共用変数の更新後、クライアントが共
用変数を増分する前に代理プロセッサが共用変数を増分
した場合は、代理プロセッサは、クライアントが認識す
るはずの共用変数の値を計算する。この数は元の値(6
)と代理プロセッサの増分(2)の和である。したがっ
て、代理プセッサは、値8=8+2をクライアント・プ
ロセッサに報告する。
初期値6を得る。共用変数の更新後、クライアントが共
用変数を増分する前に代理プロセッサが共用変数を増分
した場合は、代理プロセッサは、クライアントが認識す
るはずの共用変数の値を計算する。この数は元の値(6
)と代理プロセッサの増分(2)の和である。したがっ
て、代理プセッサは、値8=8+2をクライアント・プ
ロセッサに報告する。
このようにして、メモリは、組み合わされた要求の集合
全体について1回だけ更新され、要求プロセッサは、要
求がある連続した順序で実行される場合と同様に一組の
値を得、同期化による遅延は、最悪の場合のNでなく
logNに比例して増大する傾向がある。
全体について1回だけ更新され、要求プロセッサは、要
求がある連続した順序で実行される場合と同様に一組の
値を得、同期化による遅延は、最悪の場合のNでなく
logNに比例して増大する傾向がある。
第8図ないし第10図に示すデータ構造は、組合せがソ
フトウェアでどのように行なわれるかを示す。第8図は
、同期化が試みられる前の構造を示す。5ynch オ
ペランドは、フラグ・ビットが0に初期設定された増分
である。(フラグ・ビットは待機処理で使用される。フ
ラグが変わったとき、待機中のプロセッサは再開するこ
とができる。)異なる3種類の事象がある。
フトウェアでどのように行なわれるかを示す。第8図は
、同期化が試みられる前の構造を示す。5ynch オ
ペランドは、フラグ・ビットが0に初期設定された増分
である。(フラグ・ビットは待機処理で使用される。フ
ラグが変わったとき、待機中のプロセッサは再開するこ
とができる。)異なる3種類の事象がある。
1 、5ynch続行中断後の活動
2.5ynch待機中断後の活動
3、5ynch待機状態にあるプロセッサを解放する活
動 第9図は5ynch続行に対する状況を示す。本発明は
、続行中の(代理)プロセッサが、その要求と組み合わ
された各増分のオペランド・アドレスを記録する手段を
提供する。5ynch続行によって戻されるオペランド
・アドレスは、待機中の処理の現増分のアドレスである
。続行中の処理は、待機中の処理のメモリにアクセスす
ることにより、待機中の処理の現増分を得る。これは、
同期化のために使用されるのと同じネットワークを介し
て、またはプロセッサ間のデータ・アクセスをサポート
することを主な機能とする別のネットワークを介して行
なうことが可能である。
動 第9図は5ynch続行に対する状況を示す。本発明は
、続行中の(代理)プロセッサが、その要求と組み合わ
された各増分のオペランド・アドレスを記録する手段を
提供する。5ynch続行によって戻されるオペランド
・アドレスは、待機中の処理の現増分のアドレスである
。続行中の処理は、待機中の処理のメモリにアクセスす
ることにより、待機中の処理の現増分を得る。これは、
同期化のために使用されるのと同じネットワークを介し
て、またはプロセッサ間のデータ・アクセスをサポート
することを主な機能とする別のネットワークを介して行
なうことが可能である。
第10図の説明は、後で第12図に関して行なう考察に
関連して行なう。
関連して行なう。
代理プロセッサがクライアントを選ぶときに実行する処
理を第11図に示す。論理ブロック300で、代理プロ
セッサは、取出し後追加命令の組合せ活動のシミュレー
シヨンを続行するため、クライアント処理の増分をそれ
自体の増分に加える。
理を第11図に示す。論理ブロック300で、代理プロ
セッサは、取出し後追加命令の組合せ活動のシミュレー
シヨンを続行するため、クライアント処理の増分をそれ
自体の増分に加える。
この場合、5ynchがReg [オペランド・アドレ
ス]でオペランド・アドレスを戻したものと仮定する。
ス]でオペランド・アドレスを戻したものと仮定する。
さらに「現5ynchオペランド」はメモリ内のアレイ
要素を指すレジスタ・ポインタであると仮定する。
要素を指すレジスタ・ポインタであると仮定する。
論理ブロック300で、以下の一連の活動が行なわれる
。
。
1)メモリ[現増分コニ;メモリ[現増分コ+メモリ[
Reg [オペランド・アドレス]];2)増分(Re
g [現5lchオペランド]);3)メモリ[Re
g [現5ynch オペランドココ :=Reg
Eオペランド・アドレス];論理ブロック310で、割
込みが再び可能になり、論理ブロック320で、通常の
処理活動(この場合は、第5図)に戻る。
Reg [オペランド・アドレス]];2)増分(Re
g [現5lchオペランド]);3)メモリ[Re
g [現5ynch オペランドココ :=Reg
Eオペランド・アドレス];論理ブロック310で、割
込みが再び可能になり、論理ブロック320で、通常の
処理活動(この場合は、第5図)に戻る。
処理が首尾よ< 5ynch ツリー全体を通過して根
に達した場合は、その処理は安全な何らかの方式で共用
変数を更新する。代理プロセッサは次に、第12図に示
すように、待機中のクライアント・プロセッサに情報を
戻す。更新中に、代理プロセッサは更新前の共用変数の
値を得る。この値はツリーを上向きに渡されなければな
らない。そうするために、第12図の論理ブロック35
0で、代理処理は、データ構造が、第10図に示すよう
になるように、事前に更新された値をその現増分セルに
入れる。次に、5ynchツリーを上向きにたどり、待
機していたクライアント処理を解放する。そうするため
に、論理ブロック360で、ループの最初と最後のイン
デックスを計算し、次にループに入る。論理ブロック3
70で、第10図のデータ構造内の待機中の次の処理の
現増分セルに新しい値を入れる。論理ブロック380で
、代理処理は待機中の次の処理のフラグ・セルを1にセ
ットし、それにより、待機クライアント・プロセッサ中
で割込みが起こって、処理が解放される。論理ブロック
390で、現5Ynchオペランド・カウンタが減分さ
れ、ループが完了したかどうか判定するためのテストが
行なわれる。完了していない場合は、論理ブロック37
0のループの上部に戻り、次のクライアント処理を解放
する。
に達した場合は、その処理は安全な何らかの方式で共用
変数を更新する。代理プロセッサは次に、第12図に示
すように、待機中のクライアント・プロセッサに情報を
戻す。更新中に、代理プロセッサは更新前の共用変数の
値を得る。この値はツリーを上向きに渡されなければな
らない。そうするために、第12図の論理ブロック35
0で、代理処理は、データ構造が、第10図に示すよう
になるように、事前に更新された値をその現増分セルに
入れる。次に、5ynchツリーを上向きにたどり、待
機していたクライアント処理を解放する。そうするため
に、論理ブロック360で、ループの最初と最後のイン
デックスを計算し、次にループに入る。論理ブロック3
70で、第10図のデータ構造内の待機中の次の処理の
現増分セルに新しい値を入れる。論理ブロック380で
、代理処理は待機中の次の処理のフラグ・セルを1にセ
ットし、それにより、待機クライアント・プロセッサ中
で割込みが起こって、処理が解放される。論理ブロック
390で、現5Ynchオペランド・カウンタが減分さ
れ、ループが完了したかどうか判定するためのテストが
行なわれる。完了していない場合は、論理ブロック37
0のループの上部に戻り、次のクライアント処理を解放
する。
第12図で記述される活動は、以下のプログラムによっ
ても記述される。
ても記述される。
メモリ〔現増分]:=共用変数の前の値;現5ynch
オペランドの最初と最後の値を計算する; ループ: Reg [オペランド・アドレス]:=メモリ[現5y
nch オペラントコ ; Reg [tempコ :=メモリ[現増分コメモリロ
現増分]:=メモリ[Reg [オペランド・アドレス
コ] +Reg [tempコ ;メモリ[Reg [
オペランド・アドレスココ :=Reg [temp
コ ; フラグ(メモリ[Reg [オペランド・アドレスココ
)を セットする; (現5ynch オペランド)を減分する;現5ync
h オペランド≠Oの場合はループに進む; 出口: 待機中の処理は、そのフラグが1にセットされたとき開
始される。その時点で、その処理は57nch ツリー
を上向きにたどる処理に変わる。
オペランドの最初と最後の値を計算する; ループ: Reg [オペランド・アドレス]:=メモリ[現5y
nch オペラントコ ; Reg [tempコ :=メモリ[現増分コメモリロ
現増分]:=メモリ[Reg [オペランド・アドレス
コ] +Reg [tempコ ;メモリ[Reg [
オペランド・アドレスココ :=Reg [temp
コ ; フラグ(メモリ[Reg [オペランド・アドレスココ
)を セットする; (現5ynch オペランド)を減分する;現5ync
h オペランド≠Oの場合はループに進む; 出口: 待機中の処理は、そのフラグが1にセットされたとき開
始される。その時点で、その処理は57nch ツリー
を上向きにたどる処理に変わる。
そのメモリの状態は、第10図に示す通りである。
「現増分」の値は、ツリーを上向きに報告すべき値に変
更された。これは、続行中の処理により、以下のことを
実行するときに行なわれた。
更された。これは、続行中の処理により、以下のことを
実行するときに行なわれた。
メモリ[Reg [オペランド・アドレスココ :=R
eg [temp]ただし、Reg [オペランド・ア
ドレス]は待機中の処理の現増分のアドレスを保持し、
Reg [tempコは、待機中の処理に報告すべき値
を保持する。
eg [temp]ただし、Reg [オペランド・ア
ドレス]は待機中の処理の現増分のアドレスを保持し、
Reg [tempコは、待機中の処理に報告すべき値
を保持する。
第7図の論理ブロック230で代理処理によって活動化
された待機中の処理は、第12図の論理ブロック350
で続行できる状態になる。待機プロセッサは、5ync
h待機応答を受け取るよりも前に、別のプロセッサの代
理になっていることができる。したがって、そのプロセ
ッサは代理プロセッサであった場合と同様に活動化され
て、ツリーを上向きに戻り、第12図のブロック・ダイ
ヤグラムを実行することにより、それが代理となってい
る待機中のプロセッサを活動化する。
された待機中の処理は、第12図の論理ブロック350
で続行できる状態になる。待機プロセッサは、5ync
h待機応答を受け取るよりも前に、別のプロセッサの代
理になっていることができる。したがって、そのプロセ
ッサは代理プロセッサであった場合と同様に活動化され
て、ツリーを上向きに戻り、第12図のブロック・ダイ
ヤグラムを実行することにより、それが代理となってい
る待機中のプロセッサを活動化する。
本発明では、これらの図の動作を実行するために割込み
を使用することは任意選択である。割込みコードは、5
ynch命令の戻りコードについてのテストによって保
護された組込みコードとして実現することができる。5
ynch続行または5ynch待機の戻りコードで活動
を開始することができる。
を使用することは任意選択である。割込みコードは、5
ynch命令の戻りコードについてのテストによって保
護された組込みコードとして実現することができる。5
ynch続行または5ynch待機の戻りコードで活動
を開始することができる。
3、クロスバ−内の同期
この考察では、第13図に示すクロスバ−接続構造内で
の本発明の使用を例示する。クロスバ−交換機は3つ以
上の要求を一緒に運び、要求を調停する手段を提供する
。第13図の論理ボックス400は、各プロセッサ要求
が、プロセッサからメモリに通過する際に、論理ボック
ス400内の複数の交換点430のうちただ1つを通過
するように、各プロセッサ410を各メモリ420に接
続するネットワークである。前述のように、第13図の
構造にメモリを含める必要はない。この構造は同期化専
用である。
の本発明の使用を例示する。クロスバ−交換機は3つ以
上の要求を一緒に運び、要求を調停する手段を提供する
。第13図の論理ボックス400は、各プロセッサ要求
が、プロセッサからメモリに通過する際に、論理ボック
ス400内の複数の交換点430のうちただ1つを通過
するように、各プロセッサ410を各メモリ420に接
続するネットワークである。前述のように、第13図の
構造にメモリを含める必要はない。この構造は同期化専
用である。
同期化のために第13図のネットワークを使用するため
、本発明では、メモリに関連するスイッチを使用してス
イッチに到達した要求を同期化できるように、クロスバ
−の機能をわずかに拡張する。
、本発明では、メモリに関連するスイッチを使用してス
イッチに到達した要求を同期化できるように、クロスバ
−の機能をわずかに拡張する。
クロスバ−内のスイッチは、第14図に示す全体的構造
を有する。論理ボックス450.451.452及び4
53はプロセッサを表わす。スイッチに対するアクセス
要求は、それぞれ455.456.457及び458で
示した入力線上のプロセッサから出される。要求は調停
機構460に送られる。調停機構460は結果を出力線
470を介して戻す。調停の結果、1台の要求プロセッ
サが交換点480に対するアクセスを得て、情報を交換
点480に渡すか、または接続490を介して交換点4
80から情報を受け取る。交換点は1つのメモリに接続
されている。
を有する。論理ボックス450.451.452及び4
53はプロセッサを表わす。スイッチに対するアクセス
要求は、それぞれ455.456.457及び458で
示した入力線上のプロセッサから出される。要求は調停
機構460に送られる。調停機構460は結果を出力線
470を介して戻す。調停の結果、1台の要求プロセッ
サが交換点480に対するアクセスを得て、情報を交換
点480に渡すか、または接続490を介して交換点4
80から情報を受け取る。交換点は1つのメモリに接続
されている。
従来技術を構成し、本発明の一部ではないこのクロスバ
−の態様は以下の通りである。
−の態様は以下の通りである。
1.2台以上のプロセッサがどのサイクル中にも調停機
構に対して要求を出すことができる。
構に対して要求を出すことができる。
2、調停機構は保留中の要求からただ1つの要求を選び
、それに許可を戻す。
、それに許可を戻す。
3、次に選択された要求が続行し、他の全ての要求は保
留状態に保たれ、次の調停サイクルで反復される。次の
調停サイクルで新しい要求も入ることができる。
留状態に保たれ、次の調停サイクルで反復される。次の
調停サイクルで新しい要求も入ることができる。
4、調停では、コンピュータ・システムに適した方式で
優先順位をつけることができる。特定のプロセッサに他
のプロセッサよりも高い優先順位を与えることができ、
また平均するとどのプロセッサも他のプロセッサよりも
高い優先順位を受けないように、優先順位を回転させる
こともできる。優先順位付けの方式は本発明の目的にと
って重要ではない。
優先順位をつけることができる。特定のプロセッサに他
のプロセッサよりも高い優先順位を与えることができ、
また平均するとどのプロセッサも他のプロセッサよりも
高い優先順位を受けないように、優先順位を回転させる
こともできる。優先順位付けの方式は本発明の目的にと
って重要ではない。
5、第14図に示したタイプの多くのネットワークでは
、サイクルi+1に対する調停がサイクルiに対する実
際のトランザクションとオーバーラツプする。たとえば
、プロセッサ450が特定のデータを要求する場合、そ
の要求を調停して時間10で送ることができ、そのサイ
クルで許可された場合、時間11の間にデータを得るこ
とができる。その間に、プロセッサ452が別のデータ
を必要とする場合は、時間11の間に(プロセッサ45
0がそのトランザクションを実行している間に)そのデ
ータを要求することができ、プロセッサ452がその調
停ラウンドで選択された場合は、時間12の間にそのト
ランザクションを実行することができる。したがって、
調停遅延によって個別処理によって認識されるアクセス
時間は増加するが、クロスバ−交換機の有用な帯域幅は
減少されない。
、サイクルi+1に対する調停がサイクルiに対する実
際のトランザクションとオーバーラツプする。たとえば
、プロセッサ450が特定のデータを要求する場合、そ
の要求を調停して時間10で送ることができ、そのサイ
クルで許可された場合、時間11の間にデータを得るこ
とができる。その間に、プロセッサ452が別のデータ
を必要とする場合は、時間11の間に(プロセッサ45
0がそのトランザクションを実行している間に)そのデ
ータを要求することができ、プロセッサ452がその調
停ラウンドで選択された場合は、時間12の間にそのト
ランザクションを実行することができる。したがって、
調停遅延によって個別処理によって認識されるアクセス
時間は増加するが、クロスバ−交換機の有用な帯域幅は
減少されない。
クロスバ−交換機に関する本発明の新規な態様は、スイ
ッチで同期を実現させる第15図の比較機構からなる。
ッチで同期を実現させる第15図の比較機構からなる。
その概念は、同期要求が調停機構によって許可された場
合、その要求が、同じ5ynchアドレスに対する他の
1つの要求(1つが保留されている場合)と同期される
というものである。同じ5ynchアドレスに対して合
計3つ以上の要求が保留になっている場合、スイッチは
それらのうち2つだけを同期させ、残りの要求は、次の
サイクルで同期すべく保留状態に保持される。
合、その要求が、同じ5ynchアドレスに対する他の
1つの要求(1つが保留されている場合)と同期される
というものである。同じ5ynchアドレスに対して合
計3つ以上の要求が保留になっている場合、スイッチは
それらのうち2つだけを同期させ、残りの要求は、次の
サイクルで同期すべく保留状態に保持される。
第1S図の論理ブロック500で、調停機構は受け入れ
可能な任意の選択方式に従って、保留されている要求の
うちから1つの要求を選択する。
可能な任意の選択方式に従って、保留されている要求の
うちから1つの要求を選択する。
論理ブロック510で、調停機構は、その要求が通常の
要求であるかそれとも5ynch動作であるかを判定す
る。通常の要求である場合、論理ブロック515で、要
求プロセッサに許可が戻され、調停サイクルは終了する
。5ynch動作に対する要求である場合は、論理ブロ
ック520で、調停機構は要求プロセッサに許可を出す
。これにより、同期が実際に行なわれた場合に、要求プ
ロセッサが交換点に書き込むことが保証される。論理ブ
ロック530で、要求プロセッサはその要求を調停機構
から取り除き、その5ynch アドレス及びオペラン
ド・アドレスを交換点に置く。
要求であるかそれとも5ynch動作であるかを判定す
る。通常の要求である場合、論理ブロック515で、要
求プロセッサに許可が戻され、調停サイクルは終了する
。5ynch動作に対する要求である場合は、論理ブロ
ック520で、調停機構は要求プロセッサに許可を出す
。これにより、同期が実際に行なわれた場合に、要求プ
ロセッサが交換点に書き込むことが保証される。論理ブ
ロック530で、要求プロセッサはその要求を調停機構
から取り除き、その5ynch アドレス及びオペラン
ド・アドレスを交換点に置く。
論理ブロック540で、交換点の内容が、保留中の他の
5ynch要求の5ynchアドレスと比較される。こ
れは、交換点からのアドレスと活動状態の5ynch要
求からのアドレスの2つのアドレスを比較する1つまた
は複数の比較機構によって実行される。この機能を実現
するための手段を第16図に示し、後で考察する。
5ynch要求の5ynchアドレスと比較される。こ
れは、交換点からのアドレスと活動状態の5ynch要
求からのアドレスの2つのアドレスを比較する1つまた
は複数の比較機構によって実行される。この機能を実現
するための手段を第16図に示し、後で考察する。
論理ブロック550で、調停機構は、同じ同期アドレス
に対する5ynch要求がまだ他にあるかどうか判定す
る。ない場合は、論理ブロック555で、交換点に現在
接続されている活動状態の要求に5ynch なしを戻
すことにより、同期サイクルが終了する。
に対する5ynch要求がまだ他にあるかどうか判定す
る。ない場合は、論理ブロック555で、交換点に現在
接続されている活動状態の要求に5ynch なしを戻
すことにより、同期サイクルが終了する。
そうでない場合は、論理ブロック560で、調停機構は
、交換点にあるアドレスと等しいアドレスをもつ複数の
活動状態の5ynch要求のうちから1つの要求を選択
する。この選択は、選択を行なうために調停機構が使用
する通常の論理によって行なわれる。
、交換点にあるアドレスと等しいアドレスをもつ複数の
活動状態の5ynch要求のうちから1つの要求を選択
する。この選択は、選択を行なうために調停機構が使用
する通常の論理によって行なわれる。
論理ブロック570で、調停機構は、現在選択されてい
る要求プロセッサに5ynch続行を戻し、交換点の内
容が、現在選択されている要求プロセッサに通じる戻り
経路にゲートされる。論理ブロック580で、調停機構
は、そのアドレスが現在交換点にある要求プロセッサに
5ynch待機を戻す。
る要求プロセッサに5ynch続行を戻し、交換点の内
容が、現在選択されている要求プロセッサに通じる戻り
経路にゲートされる。論理ブロック580で、調停機構
は、そのアドレスが現在交換点にある要求プロセッサに
5ynch待機を戻す。
スイッチの動作が、待機中のプロセッサがその代理プロ
セッサからオペランドを得ることを必要とする場合は、
調停機構はこの時点で、5ynch続行を受け取るプロ
セッサのオペランドが、5ynch待機を受け取るプロ
セッサに渡されるように、交換点の接続を反転させるこ
とができる。
セッサからオペランドを得ることを必要とする場合は、
調停機構はこの時点で、5ynch続行を受け取るプロ
セッサのオペランドが、5ynch待機を受け取るプロ
セッサに渡されるように、交換点の接続を反転させるこ
とができる。
第15図の論理ブロック540を実現するための機構を
第16図に示す。交換点、すなわち論理ブロック600
は、複数の比較機構605及び606に接続されている
。各比較機構は交換点及びプロセッサ610.611か
らそれぞれ5ynchアドレスを受け取る。調停機構6
30は、比較が必要なことをそのゲート制御出力を介し
て知らせる。この信号は、それぞれ比較機構605及び
606と関連するゲート620及び621に送られ、こ
れらの比較機構はそれぞれプロセッサ610及び611
からも入力を受け取る。プロセッサが活動状態の5yn
ch要求を行ない、かつ調停機構がそのゲート制御出力
を活動化した場合、ゲート620及び621は、比較機
構の出力を調停機構に到達させるための信号を発生する
。各比較機構の出力の制御はゲート640及び641に
よって行なわれ、ゲート640及び641はそれぞれ論
理ブロック620及び621によって使用可能にされる
。この動作の結果、調停機構に到達する唯一の要求は、
このとき交換点にある同期アドレスと同じ同期アドレス
にある活動状態の5ynch要求である。これらの要求
は潜在的な代理プロセッサからのものであり、調停機構
は1つの要求プロセッサを代理プロセッサとして選ぶ。
第16図に示す。交換点、すなわち論理ブロック600
は、複数の比較機構605及び606に接続されている
。各比較機構は交換点及びプロセッサ610.611か
らそれぞれ5ynchアドレスを受け取る。調停機構6
30は、比較が必要なことをそのゲート制御出力を介し
て知らせる。この信号は、それぞれ比較機構605及び
606と関連するゲート620及び621に送られ、こ
れらの比較機構はそれぞれプロセッサ610及び611
からも入力を受け取る。プロセッサが活動状態の5yn
ch要求を行ない、かつ調停機構がそのゲート制御出力
を活動化した場合、ゲート620及び621は、比較機
構の出力を調停機構に到達させるための信号を発生する
。各比較機構の出力の制御はゲート640及び641に
よって行なわれ、ゲート640及び641はそれぞれ論
理ブロック620及び621によって使用可能にされる
。この動作の結果、調停機構に到達する唯一の要求は、
このとき交換点にある同期アドレスと同じ同期アドレス
にある活動状態の5ynch要求である。これらの要求
は潜在的な代理プロセッサからのものであり、調停機構
は1つの要求プロセッサを代理プロセッサとして選ぶ。
第16図に示す比較機構は、1つの比較機構を複数の要
求プロセッサの間で共用することにより数を減らすこと
ができる。そうすれば、スイッチが有する比較機構を、
1台の要求プロセッサ当り1つから合計で1つにするこ
とができる。複数の要求プロセッサが1つの比較機構を
共用するとき、比較機構の1つによって一致する要求が
検出されるまで、要求プロセッサ間の活動状態の5yn
ch要求が1度に1個ずつ交換点と比較される。調停機
構は、それに報告された最初の一致要求のうちから選択
することも、または、全ての一致要求が識別されるまで
選択を延期することもできる。
求プロセッサの間で共用することにより数を減らすこと
ができる。そうすれば、スイッチが有する比較機構を、
1台の要求プロセッサ当り1つから合計で1つにするこ
とができる。複数の要求プロセッサが1つの比較機構を
共用するとき、比較機構の1つによって一致する要求が
検出されるまで、要求プロセッサ間の活動状態の5yn
ch要求が1度に1個ずつ交換点と比較される。調停機
構は、それに報告された最初の一致要求のうちから選択
することも、または、全ての一致要求が識別されるまで
選択を延期することもできる。
少ない比較機構を使用することの利点は、ハードウェア
のコストが削減されることであるが、ハードウェア・コ
ストの°削減には調停機構の完了までの時間の増大が付
随する。
のコストが削減されることであるが、ハードウェア・コ
ストの°削減には調停機構の完了までの時間の増大が付
随する。
4、多段ネットワークを使用した同期化本発明を組み込
むことができるもう1つのネットワークは、第17図に
示すような多段ネットワークである。論理ブロック70
0はプロセッサ・モジュールであり、論理ブロック71
0は、第13図に示したようなメモリ・モジュールであ
る。この場合のネットワーク構造は、それぞれ少数の入
力及び出力を有する数層のスイッチ・セル、すなわち論
理ブロック720,730.740及び750からなる
。図では、各スイッチ・セルは2つの入力と2つの出力
を有する。一般に、多段ネットワークは3つ以上の入力
及び出力を存することができるが、コンピュータ・シス
テム内にあるプロセッサ及びメモリと同じ数の入力及び
出力を有するセルはない。
むことができるもう1つのネットワークは、第17図に
示すような多段ネットワークである。論理ブロック70
0はプロセッサ・モジュールであり、論理ブロック71
0は、第13図に示したようなメモリ・モジュールであ
る。この場合のネットワーク構造は、それぞれ少数の入
力及び出力を有する数層のスイッチ・セル、すなわち論
理ブロック720,730.740及び750からなる
。図では、各スイッチ・セルは2つの入力と2つの出力
を有する。一般に、多段ネットワークは3つ以上の入力
及び出力を存することができるが、コンピュータ・シス
テム内にあるプロセッサ及びメモリと同じ数の入力及び
出力を有するセルはない。
本発明では、多段交換ネットワークは、要求をN台のプ
ロセッサから複数の段を介してメモリ・モジュールの入
力に送る任意の相互接続ネットワークである。このネッ
トワークで本発明を使用するには、スイッチの最後の段
に同期機能を組み込む。
ロセッサから複数の段を介してメモリ・モジュールの入
力に送る任意の相互接続ネットワークである。このネッ
トワークで本発明を使用するには、スイッチの最後の段
に同期機能を組み込む。
この段の各スイッチは、前の段の複数のスイッチからの
要求を集め、1つの要求を選んで、1つまたは複数のメ
モリ・モジュールに送る。
要求を集め、1つの要求を選んで、1つまたは複数のメ
モリ・モジュールに送る。
多段ネットワーク内の各スイッチは、機能的にクロスバ
−・ネットワークと等しい。個々のスイッチの入力及び
出力の数は、スイッチの構成に使用できる技術によって
制限された小さな数である。
−・ネットワークと等しい。個々のスイッチの入力及び
出力の数は、スイッチの構成に使用できる技術によって
制限された小さな数である。
第17図に示すネットワーク構造は、相互接続しなけれ
ばならないプロセッサ及びメモリの数が、1つのクロス
バ−交換機で接続できる数を超えたときに必要になる。
ばならないプロセッサ及びメモリの数が、1つのクロス
バ−交換機で接続できる数を超えたときに必要になる。
多段交換ネットワークで本発明を使用するには、最後の
段のスイッチをN 5ynch動作をサポートするスイ
ッチで置き換える。各スイッチは実質上クロスバ−であ
るので、本発明をネットワークに組み込むには、第14
図に示すように、最後の段の各クロスバ−交換機を、同
期をサポートするクロスバ−交換機で単に置き換えるだ
けでよい。
段のスイッチをN 5ynch動作をサポートするスイ
ッチで置き換える。各スイッチは実質上クロスバ−であ
るので、本発明をネットワークに組み込むには、第14
図に示すように、最後の段の各クロスバ−交換機を、同
期をサポートするクロスバ−交換機で単に置き換えるだ
けでよい。
上述の置換を行なった場合、第17図のネットワークは
、要求を同期させると共にプロセッサをメモリに接続す
る能力を存する。5ynch命令は、最終段のスイッチ
に到達するまでネットワークを通過する。最終段で調停
機構に到達し、調停機構からの応答を待つ。最終的に、
5ynchなし、5ynch待機または5ynch続行
の結果を受け取り、ネットワークを介して要求が発出さ
れたプロセッサに戻る。
、要求を同期させると共にプロセッサをメモリに接続す
る能力を存する。5ynch命令は、最終段のスイッチ
に到達するまでネットワークを通過する。最終段で調停
機構に到達し、調停機構からの応答を待つ。最終的に、
5ynchなし、5ynch待機または5ynch続行
の結果を受け取り、ネットワークを介して要求が発出さ
れたプロセッサに戻る。
ネットワークを使って、プロセッサをメモリに接続する
必要はない。メモリは省略することができ、ネットワー
クは同期化専用にすることができる。
必要はない。メモリは省略することができ、ネットワー
クは同期化専用にすることができる。
この設計のも、う1つの任意選択の態様は、最後の段の
スイッチ・モジュール以外のネットワーク内のスイッチ
・モジュールも同期化機構モジュールにできることであ
る。すなわち、そのようなスイッチは、通常のクロスバ
−交換機ではなく、同期機能を備えたクロスバ−交換機
とすることができる。最終段のスイッチのみは、同期ク
ロスバ−交換機とする必要がある。
スイッチ・モジュール以外のネットワーク内のスイッチ
・モジュールも同期化機構モジュールにできることであ
る。すなわち、そのようなスイッチは、通常のクロスバ
−交換機ではなく、同期機能を備えたクロスバ−交換機
とすることができる。最終段のスイッチのみは、同期ク
ロスバ−交換機とする必要がある。
最終段以外の段のクロスバ−交換機に同期が組み込まれ
た場合は、そのようなスイッチは、同期されていない5
ynch要求を直接プロセッサ(スイッチ入力)に戻す
代わりに、メモリ(スイッチ出力)に渡す。同期された
要求は組み合わされて、プロセッサに戻される。
た場合は、そのようなスイッチは、同期されていない5
ynch要求を直接プロセッサ(スイッチ入力)に戻す
代わりに、メモリ(スイッチ出力)に渡す。同期された
要求は組み合わされて、プロセッサに戻される。
同期動作のこの修正を第18図に示す。論理ブロック8
00で、スイッチは、受け入れ可能な任意の選択方式に
従って、保留中の要求のうちから1つの要求を選択する
。論理ブロック810で通常の要求が識別され、スイッ
チ出力に渡される。
00で、スイッチは、受け入れ可能な任意の選択方式に
従って、保留中の要求のうちから1つの要求を選択する
。論理ブロック810で通常の要求が識別され、スイッ
チ出力に渡される。
論理ブロック820で、5ynch要求が選択され、そ
の要求に許可が出る。論理ブロック830で、選択され
る要求プロセッサは潜在的な代理プロセッサであり、そ
の5ynchアドレス及びオペランド・アドレスを交換
点に置く。論理ブロック840で、調停機構は、現在の
選択された要求を排除する5ynch要求のうちから、
第2の要求をクライアントとして選ぶ。第2の要求は、
選択された第1の要求と同じ5ynchアドレスにある
5ynch要求でなければならない。第2の要求がない
場合は、論理ブロック850で、現在の要求がスイッチ
出力に送られる。第2の要求がある場合は、論理ブロッ
ク860で、第2の要求プロセッサがそのオペランドを
交換点に転送し、それらのオペランドが第1の要求プロ
セッサによって読み取られ、逆方向(モジュール入力の
方向)に報告される。第1の要求プロセッサは5ync
h続行結果を受け取る。
の要求に許可が出る。論理ブロック830で、選択され
る要求プロセッサは潜在的な代理プロセッサであり、そ
の5ynchアドレス及びオペランド・アドレスを交換
点に置く。論理ブロック840で、調停機構は、現在の
選択された要求を排除する5ynch要求のうちから、
第2の要求をクライアントとして選ぶ。第2の要求は、
選択された第1の要求と同じ5ynchアドレスにある
5ynch要求でなければならない。第2の要求がない
場合は、論理ブロック850で、現在の要求がスイッチ
出力に送られる。第2の要求がある場合は、論理ブロッ
ク860で、第2の要求プロセッサがそのオペランドを
交換点に転送し、それらのオペランドが第1の要求プロ
セッサによって読み取られ、逆方向(モジュール入力の
方向)に報告される。第1の要求プロセッサは5ync
h続行結果を受け取る。
論理ブロック870で、任意選択として、第1のプロセ
ッサのオペランドが交換点に書き込まれ、第2のプロセ
ッサに再び報告される。第2のプロセッサに対する結果
コードは5ynch待機である。
ッサのオペランドが交換点に書き込まれ、第2のプロセ
ッサに再び報告される。第2のプロセッサに対する結果
コードは5ynch待機である。
ネットワークに早く現われるスイッチ内で同期化を使用
することの利点は、メツセージを早く組み合わせること
ができることである。こうすると、成功する組合せ動作
の数が増大し、ネットワークの後の領域でのトラフィッ
クが減少する傾向がある。
することの利点は、メツセージを早く組み合わせること
ができることである。こうすると、成功する組合せ動作
の数が増大し、ネットワークの後の領域でのトラフィッ
クが減少する傾向がある。
F、効果
本発明によれば、共通変数に対する多数の要求が並行す
るがゆえに起こるアクセス要求、及びその競合の増加を
回避することができる。
るがゆえに起こるアクセス要求、及びその競合の増加を
回避することができる。
第1図は、の基本同期ネットワークのブロック・ダイヤ
グラム、 第2図は、メモリ・アクセスと統合された同期ネットワ
ークのブロック・ダイヤグラム、第3図は、独立した同
期ネットワークのブロック・ダイヤグラム、 第4図は、同期要求のために使用されるツリーのブロッ
ク・ダイヤグラム表示、 第5図は、同期要求の流れ図、 第6図は、5ynch命令方法の流れ図、第7図は、5
ynch待機を受け取った後のプロセッサ活動の流れ図
、 第8図は、組合せのために使用される初期のデータ構造
の説明図、 第9図は、rsynch続行」が処理された後のデータ
構造の説明図、 第10図は、代理がそのクライアントに値を戻す準備を
している時点でのデータ構造の説明図、第11図は、r
Synch続行」に応答して講じられる処置の流れ図、 第12図は、「値をクライアントに戻す」機能及び「ク
ライアントを活動化する」機能の流れ図、第13図は、
クロスバ−交換機ネットワークのブロック・ダイヤグラ
ム、 第14図は、クロスバ−交換機の交換点のブロック・ダ
イヤグラム、 第15図は交換点における同期機能の流れ図、第16図
は、同期動作をサポートする交換点調停機構のブロック
・ダイヤグラム、 第17図は多段交換ネットワークのブロック・ダイヤグ
ラム、 第18図は、多段ネットワークの最後の段ではない段に
おけるスイッチ・モジュールの機能の流れ図である。 10.20,32・・・・プロセッサ、12.26・・
・・相互接続ネットワーク、14.22・・・・同期化
機構、24.30・・・・メモリ、38・・・・同期ネ
ットワーク、34・・・・同期化機構モジュール。 第2図 第1図 駆 l 痔 史 シ+Oシゆ 第6図 第9図 第12図 璽−一−−一一一一−コ
グラム、 第2図は、メモリ・アクセスと統合された同期ネットワ
ークのブロック・ダイヤグラム、第3図は、独立した同
期ネットワークのブロック・ダイヤグラム、 第4図は、同期要求のために使用されるツリーのブロッ
ク・ダイヤグラム表示、 第5図は、同期要求の流れ図、 第6図は、5ynch命令方法の流れ図、第7図は、5
ynch待機を受け取った後のプロセッサ活動の流れ図
、 第8図は、組合せのために使用される初期のデータ構造
の説明図、 第9図は、rsynch続行」が処理された後のデータ
構造の説明図、 第10図は、代理がそのクライアントに値を戻す準備を
している時点でのデータ構造の説明図、第11図は、r
Synch続行」に応答して講じられる処置の流れ図、 第12図は、「値をクライアントに戻す」機能及び「ク
ライアントを活動化する」機能の流れ図、第13図は、
クロスバ−交換機ネットワークのブロック・ダイヤグラ
ム、 第14図は、クロスバ−交換機の交換点のブロック・ダ
イヤグラム、 第15図は交換点における同期機能の流れ図、第16図
は、同期動作をサポートする交換点調停機構のブロック
・ダイヤグラム、 第17図は多段交換ネットワークのブロック・ダイヤグ
ラム、 第18図は、多段ネットワークの最後の段ではない段に
おけるスイッチ・モジュールの機能の流れ図である。 10.20,32・・・・プロセッサ、12.26・・
・・相互接続ネットワーク、14.22・・・・同期化
機構、24.30・・・・メモリ、38・・・・同期ネ
ットワーク、34・・・・同期化機構モジュール。 第2図 第1図 駆 l 痔 史 シ+Oシゆ 第6図 第9図 第12図 璽−一−−一一一一−コ
Claims (1)
- 【特許請求の範囲】 以下の要素からなるデータ処理システム。 (a)複数のデータ・プロセッサ。そのいずれもが、共
通変数を処理するために上記データ・プロセッサのある
ものと同期をとる目的で同期化命令を出す手段を含んで
いる。 (b)複数の同期化機構。そのいずれもが、次の要素(
b1)、(b2)を含んでいる。 (b1)上記複数のデータ・プロセッサのうちの第1の
プロセッサ及び第2のプロセッサから上記同期化命令を
受け取るための、2つの入力部。 (b2)該2つの入力部に供給された同期化命令の一致
度を判定し、一致する場合には、上記第1のプロセッサ
に対して上記共通変数の処理を継続するよう指示を出す
とともに、上記第2のプロセッサに対して上記共通変数
の処理を中断するよう指示を出す手段。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US224846 | 1988-07-26 | ||
| US07/224,846 US4989131A (en) | 1988-07-26 | 1988-07-26 | Technique for parallel synchronization |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0241553A true JPH0241553A (ja) | 1990-02-09 |
Family
ID=22842480
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1107910A Pending JPH0241553A (ja) | 1988-07-26 | 1989-04-28 | データ処理システム及び同期方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4989131A (ja) |
| EP (1) | EP0352490B1 (ja) |
| JP (1) | JPH0241553A (ja) |
| DE (1) | DE68924934T2 (ja) |
Families Citing this family (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0353819B1 (en) * | 1988-08-02 | 1997-04-09 | Koninklijke Philips Electronics N.V. | Method and apparatus for synchronizing parallel processors using a fuzzy barrier |
| US5163149A (en) * | 1988-11-02 | 1992-11-10 | International Business Machines Corporation | Combining switch for reducing accesses to memory and for synchronizing parallel processes |
| US5276828A (en) * | 1989-03-01 | 1994-01-04 | Digital Equipment Corporation | Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions |
| US5175824A (en) * | 1989-05-08 | 1992-12-29 | Trw Inc. | Crossbar switch connected modular multiprocessor system with processor timing relationship selected and synchronized to be appropriate for function being performed |
| US5317734A (en) * | 1989-08-29 | 1994-05-31 | North American Philips Corporation | Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies |
| 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 |
| US6038584A (en) * | 1989-11-17 | 2000-03-14 | Texas Instruments Incorporated | Synchronized MIMD multi-processing system and method of operation |
| US5226125A (en) * | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
| US5212777A (en) * | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
| DE68928980T2 (de) * | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
| US5239654A (en) * | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
| US5083265A (en) * | 1990-04-17 | 1992-01-21 | President And Fellows Of Harvard College | Bulk-synchronous parallel computer |
| AU657685B2 (en) * | 1990-06-14 | 1995-03-23 | Fujitsu Limited | A synchronization control system in a parallel computer |
| 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 |
| US6282583B1 (en) * | 1991-06-04 | 2001-08-28 | Silicon Graphics, Inc. | Method and apparatus for memory access in a matrix processor computer |
| JPH0520284A (ja) * | 1991-07-16 | 1993-01-29 | Matsushita Electric Ind Co Ltd | パラレルプロセツサシステム |
| JPH05324589A (ja) * | 1992-03-25 | 1993-12-07 | Nippon Sheet Glass Co Ltd | 並列コンピュータ装置および光結合装置 |
| US5522029A (en) * | 1993-04-23 | 1996-05-28 | International Business Machines Corporation | Fault tolerant rendezvous and semaphore for multiple parallel processors |
| JP3639319B2 (ja) * | 1994-01-25 | 2005-04-20 | 富士通株式会社 | 並列計算機システム,データ転送制御方法および送受信制御装置 |
| EP0681240B1 (en) * | 1994-05-03 | 2001-01-10 | Hewlett-Packard Company | Duplicate cache tag memory system |
| US6704765B1 (en) | 1994-12-14 | 2004-03-09 | International Business Machines Corporation | System for allocating resources among agent processes |
| US5706516A (en) * | 1995-01-23 | 1998-01-06 | International Business Machines Corporation | System for communicating messages among agent processes |
| US5655080A (en) * | 1995-08-14 | 1997-08-05 | International Business Machines Corporation | Distributed hash group-by cooperative processing |
| US6067610A (en) * | 1996-07-29 | 2000-05-23 | Motorola, Inc. | Method and data processor for synchronizing multiple masters using multi-bit synchronization indicators |
| US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
| US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
| US7577816B2 (en) * | 2003-08-18 | 2009-08-18 | Cray Inc. | Remote translation mechanism for a multinode system |
| CA2439137A1 (en) * | 2003-08-08 | 2005-02-08 | Ibm Canada Limited - Ibm Canada Limitee | Improved scheduling technique for software pipelining |
| US7519771B1 (en) | 2003-08-18 | 2009-04-14 | Cray Inc. | System and method for processing memory instructions using a forced order queue |
| US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
| US7366873B1 (en) | 2003-08-18 | 2008-04-29 | Cray, Inc. | Indirectly addressed vector load-operate-store method and apparatus |
| US7543133B1 (en) | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
| US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
| US7421565B1 (en) | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
| US7437521B1 (en) * | 2003-08-18 | 2008-10-14 | Cray Inc. | Multistream processing memory-and barrier-synchronization method and apparatus |
| US7743223B2 (en) * | 2003-08-18 | 2010-06-22 | Cray Inc. | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system |
| US7478769B1 (en) | 2005-03-09 | 2009-01-20 | Cray Inc. | Method and apparatus for cooling electronic components |
| US7730350B2 (en) * | 2005-04-28 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Method and system of determining the execution point of programs executed in lock step |
| US8145749B2 (en) * | 2008-08-11 | 2012-03-27 | International Business Machines Corporation | Data processing in a hybrid computing environment |
| US8141102B2 (en) * | 2008-09-04 | 2012-03-20 | International Business Machines Corporation | Data processing in a hybrid computing environment |
| US7984267B2 (en) * | 2008-09-04 | 2011-07-19 | International Business Machines Corporation | Message passing module in hybrid computing system starting and sending operation information to service program for accelerator to execute application program |
| US8230442B2 (en) | 2008-09-05 | 2012-07-24 | International Business Machines Corporation | Executing an accelerator application program in a hybrid computing environment |
| US8527734B2 (en) | 2009-01-23 | 2013-09-03 | International Business Machines Corporation | Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system |
| US9286232B2 (en) * | 2009-01-26 | 2016-03-15 | International Business Machines Corporation | Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses |
| US8843880B2 (en) * | 2009-01-27 | 2014-09-23 | International Business Machines Corporation | Software development for a hybrid computing environment |
| US8255909B2 (en) | 2009-01-28 | 2012-08-28 | International Business Machines Corporation | Synchronizing access to resources in a hybrid computing environment |
| US9170864B2 (en) * | 2009-01-29 | 2015-10-27 | International Business Machines Corporation | Data processing in a hybrid computing environment |
| US8001206B2 (en) * | 2009-01-29 | 2011-08-16 | International Business Machines Corporation | Broadcasting data in a hybrid computing environment |
| US20100191923A1 (en) * | 2009-01-29 | 2010-07-29 | International Business Machines Corporation | Data Processing In A Computing Environment |
| US8010718B2 (en) * | 2009-02-03 | 2011-08-30 | International Business Machines Corporation | Direct memory access in a hybrid computing environment |
| US8037217B2 (en) * | 2009-04-23 | 2011-10-11 | International Business Machines Corporation | Direct memory access in a hybrid computing environment |
| US8180972B2 (en) | 2009-08-07 | 2012-05-15 | International Business Machines Corporation | Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally |
| US9417905B2 (en) * | 2010-02-03 | 2016-08-16 | International Business Machines Corporation | Terminating an accelerator application program in a hybrid computing environment |
| US8578132B2 (en) * | 2010-03-29 | 2013-11-05 | International Business Machines Corporation | Direct injection of data to be transferred in a hybrid computing environment |
| US9015443B2 (en) | 2010-04-30 | 2015-04-21 | International Business Machines Corporation | Reducing remote reads of memory in a hybrid computing environment |
| US8787368B2 (en) * | 2010-12-07 | 2014-07-22 | Advanced Micro Devices, Inc. | Crossbar switch with primary and secondary pickers |
| US10089227B1 (en) * | 2015-05-06 | 2018-10-02 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm |
| US10019362B1 (en) | 2015-05-06 | 2018-07-10 | American Megatrends, Inc. | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions |
| US10108344B1 (en) | 2015-05-06 | 2018-10-23 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm |
| US10176103B1 (en) | 2015-05-07 | 2019-01-08 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm |
| US10055354B1 (en) | 2015-05-07 | 2018-08-21 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a hashing algorithm to maintain sibling proximity |
| US10114566B1 (en) | 2015-05-07 | 2018-10-30 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots |
| GB2590661B (en) * | 2019-12-23 | 2022-02-09 | Graphcore Ltd | Sync network |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4051551A (en) * | 1976-05-03 | 1977-09-27 | Burroughs Corporation | Multidimensional parallel access computer memory system |
| US4358823A (en) * | 1977-03-25 | 1982-11-09 | Trw, Inc. | Double redundant processor |
| US4101960A (en) * | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
| US4247892A (en) * | 1978-10-12 | 1981-01-27 | Lawrence Patrick N | Arrays of machines such as computers |
| US4257096A (en) * | 1978-10-23 | 1981-03-17 | International Business Machines Corporation | Synchronous and conditional inter-program control apparatus for a computer system |
| US4306286A (en) * | 1979-06-29 | 1981-12-15 | International Business Machines Corporation | Logic simulation machine |
| US4412303A (en) * | 1979-11-26 | 1983-10-25 | Burroughs Corporation | Array processor architecture |
| US4365292A (en) * | 1979-11-26 | 1982-12-21 | Burroughs Corporation | Array processor architecture connection network |
| US4395758A (en) * | 1979-12-10 | 1983-07-26 | Digital Equipment Corporation | Accelerator processor for a data processing system |
| FR2471631B1 (fr) * | 1979-12-11 | 1986-02-21 | Cii Honeywell Bull | Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un systeme de traitement de l'information |
| US4523273A (en) * | 1982-12-23 | 1985-06-11 | Purdue Research Foundation | Extra stage cube |
| US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
| US4636942A (en) * | 1983-04-25 | 1987-01-13 | Cray Research, Inc. | Computer vector multiprocessing control |
| US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
| US4639856A (en) * | 1983-11-04 | 1987-01-27 | International Business Machines Corporation | Dual stream processor apparatus |
| GB8517376D0 (en) * | 1985-07-09 | 1985-08-14 | Jesshope C R | Processor array |
-
1988
- 1988-07-26 US US07/224,846 patent/US4989131A/en not_active Expired - Fee Related
-
1989
- 1989-04-28 JP JP1107910A patent/JPH0241553A/ja active Pending
- 1989-06-27 DE DE68924934T patent/DE68924934T2/de not_active Expired - Fee Related
- 1989-06-27 EP EP19890111667 patent/EP0352490B1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE68924934T2 (de) | 1996-06-13 |
| EP0352490A2 (en) | 1990-01-31 |
| EP0352490A3 (en) | 1992-03-18 |
| US4989131A (en) | 1991-01-29 |
| DE68924934D1 (de) | 1996-01-11 |
| EP0352490B1 (en) | 1995-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4989131A (en) | Technique for parallel synchronization | |
| US5721921A (en) | Barrier and eureka synchronization architecture for multiprocessors | |
| US5056000A (en) | Synchronized parallel processing with shared memory | |
| Enslow Jr | Multiprocessor organization—A survey | |
| EP0334954B1 (en) | Layered network | |
| US4412285A (en) | Multiprocessor intercommunication system and method | |
| US5434995A (en) | Barrier synchronization for distributed memory massively parallel processing systems | |
| US4636942A (en) | Computer vector multiprocessing control | |
| US5859981A (en) | Method for deadlock-free message passing in MIMD systems using routers and buffers | |
| JP2577865B2 (ja) | ベクトル処理装置及びその制御方法 | |
| US5617577A (en) | Advanced parallel array processor I/O connection | |
| JP3599197B2 (ja) | 待ち時間が可変の、プロセッサをメモリに接続する相互接続ネットワーク | |
| US5594918A (en) | Parallel computer system providing multi-ported intelligent memory | |
| US7802025B2 (en) | DMA engine for repeating communication patterns | |
| WO1999026148A2 (en) | Serialized, race-free virtual barrier network and method | |
| US5371893A (en) | Look-ahead priority arbitration system and method | |
| CA1272295A (en) | Multi-channel shared resource processor | |
| JP2781742B2 (ja) | 並列計算機 | |
| JP3982077B2 (ja) | マルチプロセッサシステム | |
| Dickey et al. | Designing VLSI network nodes to reduce memory traffic in a shared memory parallel computer | |
| Hsu | Performance measurement and hardware support for message passing in distributed memory multicomputers | |
| JPH05508046A (ja) | 多重プロセッサシステムのための高速割込み機構 | |
| Irani et al. | Performance study of a clustered shared-memory multiprocessor | |
| Diab et al. | Simulation of dynamic input buffer space in multistage interconnection networks | |
| JPH01183779A (ja) | 記憶制御方式 |