JPH0630094B2 - マルチプロセツサ・システム - Google Patents
マルチプロセツサ・システムInfo
- Publication number
- JPH0630094B2 JPH0630094B2 JP1057762A JP5776289A JPH0630094B2 JP H0630094 B2 JPH0630094 B2 JP H0630094B2 JP 1057762 A JP1057762 A JP 1057762A JP 5776289 A JP5776289 A JP 5776289A JP H0630094 B2 JPH0630094 B2 JP H0630094B2
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- signal
- processor
- processors
- bus
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 この発明はマルチプロセッサ・システムに関し、とくに
プロセッサの各々に割り当てられている処理の間で数多
く発生する同期を、ハードウェアを用いて高速にかつ柔
軟性をもって実現しようとするものである。
プロセッサの各々に割り当てられている処理の間で数多
く発生する同期を、ハードウェアを用いて高速にかつ柔
軟性をもって実現しようとするものである。
B.従来の技術 並列処理では、分割された各処理間におけるデータの授
受、実行順序の維持等を正確に実現することが基本的な
問題となっている。このようなデータ授受等の適切な実
行時期を知るためには,各処理間で同期をとり合う必要
がある。
受、実行順序の維持等を正確に実現することが基本的な
問題となっている。このようなデータ授受等の適切な実
行時期を知るためには,各処理間で同期をとり合う必要
がある。
これらの同期は、通常メモリを介して行なわれる。メモ
リの中に同期成立を確認するための変数を設定し、同期
をとる必要のある処理がバスをロックしてこの変数を読
み書きすることにより、互いに同期をとれたことを確認
する。なおバスのロックを行うのは、1の処理による変
数の読み書きの中間に他の処理の読み書きを許容すると
変数の一貫性が損なわれてしまうからである。メモリ中
の変数の読み書きを利用した同期の実現は、同期をとり
合う処理の数が少なく、かつ同期の回数も少ない場合に
は有効である。
リの中に同期成立を確認するための変数を設定し、同期
をとる必要のある処理がバスをロックしてこの変数を読
み書きすることにより、互いに同期をとれたことを確認
する。なおバスのロックを行うのは、1の処理による変
数の読み書きの中間に他の処理の読み書きを許容すると
変数の一貫性が損なわれてしまうからである。メモリ中
の変数の読み書きを利用した同期の実現は、同期をとり
合う処理の数が少なく、かつ同期の回数も少ない場合に
は有効である。
ところが、同期をとる処理の数が多く、同期が頻繁に行
なわれる場合には、メモリを介した同期の実現は効率的
であるとは言えない。
なわれる場合には、メモリを介した同期の実現は効率的
であるとは言えない。
すなわち一時点に1つのプロセッサが、バスを獲得して
メモリの参照をおこなうことになるので、メモリを介し
た同期によって処理が順次化される。加えて、バスの使
用頻度が増大し、他の処理に及ぼす影響が大きくなるこ
とによって、マルチプロセッサ・システム全体の性能が
低下する。また、同期から次の同期までの命令列が数ス
テップ程度になる場合、上述の同期の実現に要する命令
のオーバヘッドの占める割合いは増大する。
メモリの参照をおこなうことになるので、メモリを介し
た同期によって処理が順次化される。加えて、バスの使
用頻度が増大し、他の処理に及ぼす影響が大きくなるこ
とによって、マルチプロセッサ・システム全体の性能が
低下する。また、同期から次の同期までの命令列が数ス
テップ程度になる場合、上述の同期の実現に要する命令
のオーバヘッドの占める割合いは増大する。
そこで、並列性が大きく、頻繁に同期を必要とするアプ
リケーションでは、メモリおよび共有バスを使用しない
方法により、プロセッサに割り当てられた処理間の同期
を高速に実現する必要がある。現在までに、幾つかの方
法が考えられている。
リケーションでは、メモリおよび共有バスを使用しない
方法により、プロセッサに割り当てられた処理間の同期
を高速に実現する必要がある。現在までに、幾つかの方
法が考えられている。
たとえば、共有メモリとは別に、プロセッサ間の同期、
通信専用のレジスタを増設することにより、共有バス、
共有メモリのアクセス頻度を軽減する方法がある。この
方法でプロセッサはレジスタの内容を繰り返し読みなが
ら処理を実行するか待機(busy waiting)するかを決定
し、この結果、プロセッサ間の同期が実現される(“St
ellix:UNIX for a Graphics Supercomputer”,Procee
dings of the Summer 1988 USENIX Conference,June 2
0-24,1988,San Francisco California USA,USENIX As
sociation,pp321-330Thomas J.TeixeiraおよびRobert
F.Gurwitz,)。また、他の手法では、各プロセッサに
同期用のレジスタを付加し、これらを同期専用のバスで
接続する。各プロセッサは、同期専用のバスを監視(ス
ヌープ)して、他のプロセッサの同期専用レジスタの値
を知ることができる。この手法でもプロセッサはレジス
タの内容を繰り返し読みながら処理を実行するか待機す
るかを決定し、この結果、プロセッサ間の同期が実現さ
れる。スヌープにより各プロセッサの内容を更新するこ
とにより、同期専用のバスへのアクセス頻度を削減する
ことができる。ただし同期専用のバス上の信号の競合か
らレジスタの内容の変更を高速に実行できない。またこ
の手法でもプロセッサはレジスタの内容を読みながら処
理を実行するか待機するかを決定し、この結果、プロセ
ッサ間の同期が実現される。(“VLSI Assist For A Mu
ltiprocessor”,Proceedings of the Second Internat
ional Conference on Architectural Support for Prog
rmming Languages and Operation Systems,Octorber 1
987,pp.10-20,Bob Beck,Bob KastenおよびShreekant
Thakkar,1987 ACM,pp10-20)。
通信専用のレジスタを増設することにより、共有バス、
共有メモリのアクセス頻度を軽減する方法がある。この
方法でプロセッサはレジスタの内容を繰り返し読みなが
ら処理を実行するか待機(busy waiting)するかを決定
し、この結果、プロセッサ間の同期が実現される(“St
ellix:UNIX for a Graphics Supercomputer”,Procee
dings of the Summer 1988 USENIX Conference,June 2
0-24,1988,San Francisco California USA,USENIX As
sociation,pp321-330Thomas J.TeixeiraおよびRobert
F.Gurwitz,)。また、他の手法では、各プロセッサに
同期用のレジスタを付加し、これらを同期専用のバスで
接続する。各プロセッサは、同期専用のバスを監視(ス
ヌープ)して、他のプロセッサの同期専用レジスタの値
を知ることができる。この手法でもプロセッサはレジス
タの内容を繰り返し読みながら処理を実行するか待機す
るかを決定し、この結果、プロセッサ間の同期が実現さ
れる。スヌープにより各プロセッサの内容を更新するこ
とにより、同期専用のバスへのアクセス頻度を削減する
ことができる。ただし同期専用のバス上の信号の競合か
らレジスタの内容の変更を高速に実行できない。またこ
の手法でもプロセッサはレジスタの内容を読みながら処
理を実行するか待機するかを決定し、この結果、プロセ
ッサ間の同期が実現される。(“VLSI Assist For A Mu
ltiprocessor”,Proceedings of the Second Internat
ional Conference on Architectural Support for Prog
rmming Languages and Operation Systems,Octorber 1
987,pp.10-20,Bob Beck,Bob KastenおよびShreekant
Thakkar,1987 ACM,pp10-20)。
これらの方法は、共有バス、共有メモリの使用頻度を削
減し、良好なシステムの性能を得ることができる点で有
効である。しかしながら、同期をとるために、すべての
プロセッサがビジー・ウェイティング(busy waiting)
を行うこと、同期をとるために同期専用のバスの競合を
回避しながらこのバスにアクセスせざるを得ないこと等
により、同期のオーバヘッドにつながる処理の順次化等
の問題を解決するには至っていない。
減し、良好なシステムの性能を得ることができる点で有
効である。しかしながら、同期をとるために、すべての
プロセッサがビジー・ウェイティング(busy waiting)
を行うこと、同期をとるために同期専用のバスの競合を
回避しながらこのバスにアクセスせざるを得ないこと等
により、同期のオーバヘッドにつながる処理の順次化等
の問題を解決するには至っていない。
ここに提案する発明はレジスタで同期関係にあるプロセ
ッサのグループを指定する点、同期用のバスで競合が生
じない点で上述先行技術と異なる。
ッサのグループを指定する点、同期用のバスで競合が生
じない点で上述先行技術と異なる。
なお、この発明の先行特許出願としては特公昭63−1
4387号公報がある。この公報の技術では、同期制御
装置をプロセッサごとに設け、同期信号の通信用に同期
制御線を用いている。
4387号公報がある。この公報の技術では、同期制御
装置をプロセッサごとに設け、同期信号の通信用に同期
制御線を用いている。
また特開昭59−24364号公報では各プロセッサか
らのトークン(処理終了信号)を受け取るトークン線と
プロセッサへの発火信号を受け取る発火信号線とをマト
リクス状に配置し、交点接続状態をプリップ・フロップ
で設定し、タクス間接続を動的に変更できるデータフロ
ー型処理システムが開示されている。
らのトークン(処理終了信号)を受け取るトークン線と
プロセッサへの発火信号を受け取る発火信号線とをマト
リクス状に配置し、交点接続状態をプリップ・フロップ
で設定し、タクス間接続を動的に変更できるデータフロ
ー型処理システムが開示されている。
ただし、これらの公報にはプロセッサごとに同期制御装
置を設け、この同期制御装置に同期レジスタを設け、同
期関係にあるプロセッサのグルーピングおよびその変更
を簡易に行うという点は開示されていない。
置を設け、この同期制御装置に同期レジスタを設け、同
期関係にあるプロセッサのグルーピングおよびその変更
を簡易に行うという点は開示されていない。
C.発明が解決しようとする問題点 この発明は、以上の事情を考慮してなされたものであ
り、プロセッサの各々に割り当てられた処理間で行なわ
れる多数の同期を、高速に実現し、さらに複数の並列処
理用プログラムが同時に実行できるようにするために、
プロセッサのグループ分けを柔軟に設定できるようにし
たマルチプロセッサ・システムの同期制御装置を提供す
ることを目的としている。
り、プロセッサの各々に割り当てられた処理間で行なわ
れる多数の同期を、高速に実現し、さらに複数の並列処
理用プログラムが同時に実行できるようにするために、
プロセッサのグループ分けを柔軟に設定できるようにし
たマルチプロセッサ・システムの同期制御装置を提供す
ることを目的としている。
D.問題点を解決するための手段 この発明では以上の目的を達成するため、プロセッサご
とに同期制御装置を設け、これら同期制御装置を同期信
号バスに共通接続している。そして、同期制御装置の各
々が、(a)対応するプロセッサから同期要求信号を受
け取って、同期信号バスに同期待ち信号を送出する同期
待ち信号送出手段と、(b)対応するプロセッサと同期
をとるべき他のプロセッサを指定する同期レジスタと、
(c)同期信号バスからの信号と同期レジスタの内容と
を比較する比較手段と、(d)この比較手段の比較結果
に基づいて同期成立信号を対応するプロセッサに送出す
る手段とを有している。
とに同期制御装置を設け、これら同期制御装置を同期信
号バスに共通接続している。そして、同期制御装置の各
々が、(a)対応するプロセッサから同期要求信号を受
け取って、同期信号バスに同期待ち信号を送出する同期
待ち信号送出手段と、(b)対応するプロセッサと同期
をとるべき他のプロセッサを指定する同期レジスタと、
(c)同期信号バスからの信号と同期レジスタの内容と
を比較する比較手段と、(d)この比較手段の比較結果
に基づいて同期成立信号を対応するプロセッサに送出す
る手段とを有している。
この発明によれば、マルチプロセッサ・システムにおけ
る処理間の同期を、各プロセッサに装備した同期制御装
置と同期信号バスを用いて効率良く実現する。
る処理間の同期を、各プロセッサに装備した同期制御装
置と同期信号バスを用いて効率良く実現する。
複数のプロセッサが互いに同期をとる必要があるとき、
これらすべてのプロセッサの同期要求が揃うまで、実行
を停止して待ち合わせを行う。プロセッサの各々に装備
された同期制御装置は、同期信号バス上に送出される他
のプロセッサの同期要求信号を検出することによって、
同期の成立を即座に知ることができる。また、同期をと
る必要のあるプロセッサのグループ分けを柔軟に行うこ
とができる。各プロセッサは、同期をとり合うプロセッ
サ群を同期制御装置に指定し、そのグループ内でプロセ
ッサは一斉に待ち合わせを行う。
これらすべてのプロセッサの同期要求が揃うまで、実行
を停止して待ち合わせを行う。プロセッサの各々に装備
された同期制御装置は、同期信号バス上に送出される他
のプロセッサの同期要求信号を検出することによって、
同期の成立を即座に知ることができる。また、同期をと
る必要のあるプロセッサのグループ分けを柔軟に行うこ
とができる。各プロセッサは、同期をとり合うプロセッ
サ群を同期制御装置に指定し、そのグループ内でプロセ
ッサは一斉に待ち合わせを行う。
E.実施例 以下この発明の実施例について図面を参照して説明す
る。
る。
(1)全体構成 第1図はこの発明を共有バス、共有メモリ方式の密結合
型マルチプロセッサ・システムに適用した実施例を全体
として示している。
型マルチプロセッサ・システムに適用した実施例を全体
として示している。
第1図において、複数のプロセッサP1、P2・・Pnが
キャッシュC1、C2・・Cnを介してシステム・バス1
に共通に接続されている。プロセッサP1、P2・・Pn
には同期コントローラS1、S2・・Snが装備され、こ
れら同期コントローラS1、S2・・Snが同期信号バス
2に共通に接続されている。同期信号バス2はプロセッ
サ台数分の同期信号線からなっている。同期コントロー
ラS1、S2・・Snは、一方でプロセッサP1、P2・・
Pnに接続され、プロセッサP1、P2・・Pnからの同期
要求を受け付け、また同期を行うプロセッサのグルー
プ.データを受け取るようになっている。さらに同期コ
ントローラS1、S2・・Snは他方で同期信号バス2に
接続され、このバス2を監視することにより、グループ
内のすべてのプロセッサが、同期をとるために待ち合わ
せを完了したことを検出し、自己のプロセッサへ通知す
る。
キャッシュC1、C2・・Cnを介してシステム・バス1
に共通に接続されている。プロセッサP1、P2・・Pn
には同期コントローラS1、S2・・Snが装備され、こ
れら同期コントローラS1、S2・・Snが同期信号バス
2に共通に接続されている。同期信号バス2はプロセッ
サ台数分の同期信号線からなっている。同期コントロー
ラS1、S2・・Snは、一方でプロセッサP1、P2・・
Pnに接続され、プロセッサP1、P2・・Pnからの同期
要求を受け付け、また同期を行うプロセッサのグルー
プ.データを受け取るようになっている。さらに同期コ
ントローラS1、S2・・Snは他方で同期信号バス2に
接続され、このバス2を監視することにより、グループ
内のすべてのプロセッサが、同期をとるために待ち合わ
せを完了したことを検出し、自己のプロセッサへ通知す
る。
(2)基本動作 同期をとる必要があるプロセッサに割り当てられた処理
列の各々に、必要に応じて同期命令を挿入する。同期命
令で区切られた処理区間の実行ごとにプロセッサの待ち
合わせを一斉に行うことによって、各プロセッサに割り
当てられた処理間のデータの受渡し、実行順序の保持等
を効率良く行うことを試みる。処理区間の実行ごとの同
期を同期コントローラによって高速に実現する。以下
に、具体例を示す。
列の各々に、必要に応じて同期命令を挿入する。同期命
令で区切られた処理区間の実行ごとにプロセッサの待ち
合わせを一斉に行うことによって、各プロセッサに割り
当てられた処理間のデータの受渡し、実行順序の保持等
を効率良く行うことを試みる。処理区間の実行ごとの同
期を同期コントローラによって高速に実現する。以下
に、具体例を示す。
プロセッサの命令の1つとして、同期プリフィックス命
令を用意する。または、各命令に同期タグを付加する
(第2図)。プロセッサの実行が、この種の命令に到達
したとき、その命令の実行直前で外部に同期を必要とす
るSync信号を出力し、停止する。外部からSync_Ask信号
を受信すると、その命令から実行を再開する。既存のプ
ロセッサを使用する場合には、同期のための命令とし
て、Out命令、Wait命令等のI/O命令を利用し、Wait_Ask
をSync_Ask信号とすることにより、同期命令で区切られ
た処理区間の実行、およびプロセッサの同期を実現でき
る。
令を用意する。または、各命令に同期タグを付加する
(第2図)。プロセッサの実行が、この種の命令に到達
したとき、その命令の実行直前で外部に同期を必要とす
るSync信号を出力し、停止する。外部からSync_Ask信号
を受信すると、その命令から実行を再開する。既存のプ
ロセッサを使用する場合には、同期のための命令とし
て、Out命令、Wait命令等のI/O命令を利用し、Wait_Ask
をSync_Ask信号とすることにより、同期命令で区切られ
た処理区間の実行、およびプロセッサの同期を実現でき
る。
同期コントローラSは、図3に示すように、同期レジス
タ3、比較器4およびタイミング制御回路5からなる。
なお任意の同期コントローラを言及するときにはサフィ
ックスを付さない。他の符号でも同様である。システム
上のすべての同期コントローラS1、S2・・Snは、同
一のクロックにより駆動されることを前提とする。同期
信号バス2の各同期信線SL1、SL2・・SLnは、プ
ロセッサP1、P2・・Pnの各々に割り当てられ、プロ
セッサP1、P2・・PnからのSync信号が送出される。
同期レジスタ3は、プロセッサ台数分のビット長さを有
する。同期をとる必要があるプロセッサSに対応するビ
ットに1がセットされる。比較器4は、1クロック、ま
たは半クロックごとに、同期信号バス2上のデータをサ
ンプリングし、同期レジスタ3のデータと比較する。タ
イミング制御回路5は、クロックにしたがってSync信号
の受信、Sync_Ask信号の返信等を行う。以下に、動作手
順を示す(第4図)。
タ3、比較器4およびタイミング制御回路5からなる。
なお任意の同期コントローラを言及するときにはサフィ
ックスを付さない。他の符号でも同様である。システム
上のすべての同期コントローラS1、S2・・Snは、同
一のクロックにより駆動されることを前提とする。同期
信号バス2の各同期信線SL1、SL2・・SLnは、プ
ロセッサP1、P2・・Pnの各々に割り当てられ、プロ
セッサP1、P2・・PnからのSync信号が送出される。
同期レジスタ3は、プロセッサ台数分のビット長さを有
する。同期をとる必要があるプロセッサSに対応するビ
ットに1がセットされる。比較器4は、1クロック、ま
たは半クロックごとに、同期信号バス2上のデータをサ
ンプリングし、同期レジスタ3のデータと比較する。タ
イミング制御回路5は、クロックにしたがってSync信号
の受信、Sync_Ask信号の返信等を行う。以下に、動作手
順を示す(第4図)。
(a)プロセッサPは、同期が必要な命令の実行直前でSyn
c信号を出力し、Sync_Ack信号が入力されるまで実行を
停止する。
c信号を出力し、Sync_Ack信号が入力されるまで実行を
停止する。
(b)同期コントローラSは、Sync信号を受け取ると、次
のクロックの立上りで、これを同期信号バス2の自分に
割当てられた信号線SLに出力する。
のクロックの立上りで、これを同期信号バス2の自分に
割当てられた信号線SLに出力する。
(c)同期コントローラSは、同期レジスタ3の1がセッ
トされているビットに対応するすべての同期信号バス2
の信号線SLがアクティブになるまで、同期信号バス2
の監視を続ける。
トされているビットに対応するすべての同期信号バス2
の信号線SLがアクティブになるまで、同期信号バス2
の監視を続ける。
(d)前記の条件を満足すると、次のクロックの立ち上り
で同期信号バスへのSync信号の出力を終了し、プロセッ
サPに対してSync_Ask信号を出力する。
で同期信号バスへのSync信号の出力を終了し、プロセッ
サPに対してSync_Ask信号を出力する。
(e)プロセッサPは、Sync_Ack信号を入力すると、Sync
信号の出力を終了し、命令の実行を再開する。
信号の出力を終了し、命令の実行を再開する。
(f)同期コントローラSは、これを受けてSync_Ask信号
の出力を終了する。
の出力を終了する。
なおキャッシュCのシステム・バス1へのアクセス等
が、(b)の段階で終了していることが保証できない場合
には、同期信号バス2へのSync信号の出力は、そのアク
セスが終了するまで待つ必要がある。
が、(b)の段階で終了していることが保証できない場合
には、同期信号バス2へのSync信号の出力は、そのアク
セスが終了するまで待つ必要がある。
(3)プロセッサのグループ分け マルチ・ユーザの環境下では、1つの並列処理可能なア
プリケーションの実行を目的としてシステム上のすべて
のプロセッサPを割り付けることは容易ではない。プロ
セッサ資源を有効利用するためにプロセッサのグループ
分けを行い、同一グループ内でのプロセッサPの同期を
行う必要がある。そこで、同期コントローラSでは、グ
ループ内のプロセッサPに対応する同期レジスタ3のビ
ットに1をセットする。通常、オペレーティング・シス
テムがこのセットを行うことになる。
プリケーションの実行を目的としてシステム上のすべて
のプロセッサPを割り付けることは容易ではない。プロ
セッサ資源を有効利用するためにプロセッサのグループ
分けを行い、同一グループ内でのプロセッサPの同期を
行う必要がある。そこで、同期コントローラSでは、グ
ループ内のプロセッサPに対応する同期レジスタ3のビ
ットに1をセットする。通常、オペレーティング・シス
テムがこのセットを行うことになる。
第5図は,オペレーティング・システムOSの制御のも
とで、複数のプロセッサP1、P2・・を必要とするユー
ザ・プログラムAおよびBが同時に実行されている様子
を示している。オペレーティング・システムOSの動作
とプロセッサPのグループ分けによる同期制御の一例に
ついて以下に説明する。
とで、複数のプロセッサP1、P2・・を必要とするユー
ザ・プログラムAおよびBが同時に実行されている様子
を示している。オペレーティング・システムOSの動作
とプロセッサPのグループ分けによる同期制御の一例に
ついて以下に説明する。
第5図において、マルチプロセッサ・システムを構成す
るプロセッサPの1つ、P1をオペレーティング・シス
テムOSに割り当てる。残りのすべてのプロセッサP2
・・Pnをユーザ・プログラムの実行に割り当てる。オ
ペレーティング・システムOSは,アイドルなプロセッ
サP2、P3およびP4を検出し、これらに次の実行可能
なプログラムAを割り当てる。このとき,割り当てられ
たプロセッサP2、P3およびP4に所属する同期コント
ローラS2、S3およびS4の同期レジスタ3のビットを
第6図のように設定する。これにより,プログラムAに
割り当てられたプロセッサ・グループ内での同期を実現
することができる。同様の設定方法により,プログラム
Bに割り当てられたプロセッサ・グループ内での同期も
同時に実現できる。
るプロセッサPの1つ、P1をオペレーティング・シス
テムOSに割り当てる。残りのすべてのプロセッサP2
・・Pnをユーザ・プログラムの実行に割り当てる。オ
ペレーティング・システムOSは,アイドルなプロセッ
サP2、P3およびP4を検出し、これらに次の実行可能
なプログラムAを割り当てる。このとき,割り当てられ
たプロセッサP2、P3およびP4に所属する同期コント
ローラS2、S3およびS4の同期レジスタ3のビットを
第6図のように設定する。これにより,プログラムAに
割り当てられたプロセッサ・グループ内での同期を実現
することができる。同様の設定方法により,プログラム
Bに割り当てられたプロセッサ・グループ内での同期も
同時に実現できる。
ここでダミーの同期要求の付加について説明しておく。
あるグループ内では、毎回そのグループに属するすべて
のプロセッサPが同期をとる。このとき、一部のプロセ
ッサPは、同期をとる必要がない場合に生ずる。そのよ
うな場合には、同期の必要のないプロセッサPに割り当
てられた命令列にダミーの同期要求を付加する。第7図
AおよびBはダミー要求を示す。第7図Aは実際の処理
のながれを示し、黒丸は同期の必要な処理を示す。この
例ではプロセッサP1、P2・・P5がひとつのグループ
とされているので、そのうちのひとつだけでも同期要求
を出さないと、すなわち黒丸を生じないと、全体の処理
が停止したままとなる。このため第7図ではばつ印で示
すようにダミーに要求信号を適宜挿入するようにしてい
る。このダミーの同期要求は、処理性能に悪影響をあま
り与えない。
のプロセッサPが同期をとる。このとき、一部のプロセ
ッサPは、同期をとる必要がない場合に生ずる。そのよ
うな場合には、同期の必要のないプロセッサPに割り当
てられた命令列にダミーの同期要求を付加する。第7図
AおよびBはダミー要求を示す。第7図Aは実際の処理
のながれを示し、黒丸は同期の必要な処理を示す。この
例ではプロセッサP1、P2・・P5がひとつのグループ
とされているので、そのうちのひとつだけでも同期要求
を出さないと、すなわち黒丸を生じないと、全体の処理
が停止したままとなる。このため第7図ではばつ印で示
すようにダミーに要求信号を適宜挿入するようにしてい
る。このダミーの同期要求は、処理性能に悪影響をあま
り与えない。
また、一部のプロセッサPが長期にわたって他のプロセ
ッサPと同期をとる必要がないときには、同期レジスタ
3を書き換えることにより、第7図CおよびDに示すよ
うにプロセッサPのグループ分けを動的に変更する。第
7図Dでは破線位置で2つのグループに分割している。
ッサPと同期をとる必要がないときには、同期レジスタ
3を書き換えることにより、第7図CおよびDに示すよ
うにプロセッサPのグループ分けを動的に変更する。第
7図Dでは破線位置で2つのグループに分割している。
なおこの例ではプログラムを予め調べステップ数等から
ダミー要求の挿入位置を決定する。
ダミー要求の挿入位置を決定する。
上述の方法では、ダミーの同期要求を発行することによ
り、同期をとる必要がないプロセッサも毎回待ち合わせ
を行うことになる。次に述べる方法により同期をとる必
要のないプロセッサは、本当に同期をとる個所まで実行
を進めることもできる。
り、同期をとる必要がないプロセッサも毎回待ち合わせ
を行うことになる。次に述べる方法により同期をとる必
要のないプロセッサは、本当に同期をとる個所まで実行
を進めることもできる。
第8図に示すように同期がダミーであることを同期コン
トローラSに知らせるための情報を、同期命プリティッ
クス命令、または同期タグに付加する。このダミー同期
命令を発行したとき、プロセッサPは他のプロセッサP
と待ち合わせを行わずに、実行を先に進める。同期コン
トローラSは、まだ処理されていないダミー同期命令の
数を保持する必要がある。そこで、第8図に示すように
同期コントローラSにダミー要求カウンタ6を付加す
る。プロセッサPがダミー同期命令を発行したとき、同
期コントローラSはダミー要求カウンタ6をカウント・
アップする。また、1回のダミーの同期処理を完了した
とき、同期コントローラSはダミー要求カウンタ6をカ
ウント・ダウンする。プロセッサPが他のプロセッサP
と待ち合わせを行うために通常の同期命令を発行した場
合、同期コントローラSは、ダミー要求カウンタ6の値
が0になるまでダミー同期の処理を行ない、その後、通
常の同期命令を処理する。このとき、プロセッサは、同
期コントローラSからAnk信号が出力されるまで実行を
停止する。
トローラSに知らせるための情報を、同期命プリティッ
クス命令、または同期タグに付加する。このダミー同期
命令を発行したとき、プロセッサPは他のプロセッサP
と待ち合わせを行わずに、実行を先に進める。同期コン
トローラSは、まだ処理されていないダミー同期命令の
数を保持する必要がある。そこで、第8図に示すように
同期コントローラSにダミー要求カウンタ6を付加す
る。プロセッサPがダミー同期命令を発行したとき、同
期コントローラSはダミー要求カウンタ6をカウント・
アップする。また、1回のダミーの同期処理を完了した
とき、同期コントローラSはダミー要求カウンタ6をカ
ウント・ダウンする。プロセッサPが他のプロセッサP
と待ち合わせを行うために通常の同期命令を発行した場
合、同期コントローラSは、ダミー要求カウンタ6の値
が0になるまでダミー同期の処理を行ない、その後、通
常の同期命令を処理する。このとき、プロセッサは、同
期コントローラSからAnk信号が出力されるまで実行を
停止する。
なお第8図で第3図と対応する箇所には対応する符号を
付して詳細な説明を省略する。
付して詳細な説明を省略する。
(4)同期制御の階層化 同期信号線の数は、マルチプロセッサ・システムを構成
するプロセッサ台数分あることが、良好な性能を得る上
で望ましい。しかしながら、システムが多数のプロセッ
サから構成されている場合には、ハードウェア量の増加
を招き、実現が容易ではない。そこで、第9図のように
同期制御の階層化を行うとともに、同期信号線の削減を
試みることができる。
するプロセッサ台数分あることが、良好な性能を得る上
で望ましい。しかしながら、システムが多数のプロセッ
サから構成されている場合には、ハードウェア量の増加
を招き、実現が容易ではない。そこで、第9図のように
同期制御の階層化を行うとともに、同期信号線の削減を
試みることができる。
第9図において、数台から十数台(図では4台)のプロ
セッサPにより,1つのクラスタCLを形成する。図で
は2つのクラスCL1およびCL2が示されている。クラ
スタCLは、物理的に形成されるものであり、前述のプ
ロセッサPのグループ分けとは異なる。
セッサPにより,1つのクラスタCLを形成する。図で
は2つのクラスCL1およびCL2が示されている。クラ
スタCLは、物理的に形成されるものであり、前述のプ
ロセッサPのグループ分けとは異なる。
クラスタCL内のプロセッサPは、プロセッサ台数分よ
り1つ多い数の同期信号線からなる同期信号バス2によ
って結合され、プロセッサPの数は固定である。クラス
タCL内では、前述のプロセッサPのグループ分けによ
る同期を制限なく行うことができる。
り1つ多い数の同期信号線からなる同期信号バス2によ
って結合され、プロセッサPの数は固定である。クラス
タCL内では、前述のプロセッサPのグループ分けによ
る同期を制限なく行うことができる。
各クラスタCLにはクラスタ間同期コントローラ7が装
備される。クラスタ間同期コントローラ7は、クラスタ
台数分の信号線からなるクラスタ間同期信号バス8を介
してクラスタCL間の同期を実現する。プロセッサPの
グループ分けによる同期と同様にして、クラスタCLの
グループ分けが可能である。1つのクラスタCLは、重
複して2つ以上のクラスタ・グループに所属することは
できない。どちらのグループにおける同期かを弁別でき
ないからである。さらに、クラスタCL間にわたるプロ
セッサPのグループ分けも次の制限のもとで実現でき
る。すわわち、クラスタCL間にわたるプロセッサPの
グループ分けは、1つのクラスタ・グループ内で唯1つ
可能である。この場合もどのグループにおける同期かを
判別できないからである。第10図に単一クラスタCL
内,およびクラスタCL間にわたるプロセッサPのグル
ープ分けによる同期の一例を示した。
備される。クラスタ間同期コントローラ7は、クラスタ
台数分の信号線からなるクラスタ間同期信号バス8を介
してクラスタCL間の同期を実現する。プロセッサPの
グループ分けによる同期と同様にして、クラスタCLの
グループ分けが可能である。1つのクラスタCLは、重
複して2つ以上のクラスタ・グループに所属することは
できない。どちらのグループにおける同期かを弁別でき
ないからである。さらに、クラスタCL間にわたるプロ
セッサPのグループ分けも次の制限のもとで実現でき
る。すわわち、クラスタCL間にわたるプロセッサPの
グループ分けは、1つのクラスタ・グループ内で唯1つ
可能である。この場合もどのグループにおける同期かを
判別できないからである。第10図に単一クラスタCL
内,およびクラスタCL間にわたるプロセッサPのグル
ープ分けによる同期の一例を示した。
クラスタ間同期コントローラ7は,内部にクラスタ・グ
ループ同期レジスタ9およびプロセッサ・グループ同期
レジスタ10を有し、さらにこれら同期レジスタ9,1
0に対応する比較器11、12を有する。クラスタ・グ
ループ同期レジスタ9は同期をとるべきクラスタ・グル
ープを指定する。プロセッサ・グループ同期レジスタ1
0はクラスタCL間にわたる同期に参加するプロセッサ
・グループを指定する。
ループ同期レジスタ9およびプロセッサ・グループ同期
レジスタ10を有し、さらにこれら同期レジスタ9,1
0に対応する比較器11、12を有する。クラスタ・グ
ループ同期レジスタ9は同期をとるべきクラスタ・グル
ープを指定する。プロセッサ・グループ同期レジスタ1
0はクラスタCL間にわたる同期に参加するプロセッサ
・グループを指定する。
以下にクラスタ間同期コントローラ7を利用したプロセ
ッサの同期の実現の詳細を示す。
ッサの同期の実現の詳細を示す。
(a)クラスタ間同期コントローラ7内のクラスタ・グル
ープ同期レジスタ9およびプロセッサ・グループ同期レ
ジスタ10にそれぞれ同期をとるべきクラスタ・グルー
プ、プロセッサ・グループを指定する。
ープ同期レジスタ9およびプロセッサ・グループ同期レ
ジスタ10にそれぞれ同期をとるべきクラスタ・グルー
プ、プロセッサ・グループを指定する。
(b)クラスタ間同期コントローラ7は、プロセッサ・グ
ループ同期レジスタ10で指定したすべてのプロセッサ
PがSync信号を出力するまで同期信号バス2を監視す
る。
ループ同期レジスタ10で指定したすべてのプロセッサ
PがSync信号を出力するまで同期信号バス2を監視す
る。
(c)指定したプロセッサPに割り当てられた同期信号線
のすべてがアクティブになったとき、クラスタ間同期コ
ントローラ7は、クラスタ間同期信号バス8の自分に割
り当てられた信号線をアクティブにする。
のすべてがアクティブになったとき、クラスタ間同期コ
ントローラ7は、クラスタ間同期信号バス8の自分に割
り当てられた信号線をアクティブにする。
(d)クラスタ間同期コントローラ7は、クラスタ・グル
ープ同期レジスタ9で指定したすべてのクラスタCL
が、Sync信号を出力するまでクラスタ間同期信号バス8
を監視する。
ープ同期レジスタ9で指定したすべてのクラスタCL
が、Sync信号を出力するまでクラスタ間同期信号バス8
を監視する。
(e)指定したすべてのクラスタCLがSync信号をクラス
タ同期信号バス8に送出したとき、それぞれのクラスタ
間同期コントローラ7は、クラスタCL内の同期信号バ
ス2の1つ(クラスタ間同期通知信号線2ack)を利
用して、プロセッサ・グループ同期レジスタ10に指定
したプロセッサPに間同期の成立を通知する。
タ同期信号バス8に送出したとき、それぞれのクラスタ
間同期コントローラ7は、クラスタCL内の同期信号バ
ス2の1つ(クラスタ間同期通知信号線2ack)を利
用して、プロセッサ・グループ同期レジスタ10に指定
したプロセッサPに間同期の成立を通知する。
大規模マルチプロセッサ・システムへの階層化された同
期機構の実現例として、以下の構成を考えることができ
る。すなわち1つのカードに数台のプロセッサPを装備
し、ボックスに数枚のカードを接続することにより大規
模なマルチプロセッサ・システムを構成する。このと
き、1枚のカード上のプロセッサPをクラスタCLとす
ることが容易である。
期機構の実現例として、以下の構成を考えることができ
る。すなわち1つのカードに数台のプロセッサPを装備
し、ボックスに数枚のカードを接続することにより大規
模なマルチプロセッサ・システムを構成する。このと
き、1枚のカード上のプロセッサPをクラスタCLとす
ることが容易である。
同期機構の階層化は、クラスタCL内の同期信号バス2
と同様にクラスタ間同期信号バス8の信号線をクラスタ
台数より1つ多くすることにより、多段階へ拡張するこ
とができる。このことは以上の説明から明らかであろ
う。
と同様にクラスタ間同期信号バス8の信号線をクラスタ
台数より1つ多くすることにより、多段階へ拡張するこ
とができる。このことは以上の説明から明らかであろ
う。
(5)同期信号の削減 同期制御の階層化とは別に、以下に示す方法により同期
信号線の削減を試みることができる。
信号線の削減を試みることができる。
簡単に言えば、この手法ではプロセッサ・グループごと
に一本の同期信号線を割り当て、各プロセッサを各同期
信号線にスイッチSWの各々を介して接続しておく。そ
して自らが属するグループに対応する同期信号線に接続
されているスイッチのみをオンとするのである。詳細な
構成は第11図を参照して後述する。
に一本の同期信号線を割り当て、各プロセッサを各同期
信号線にスイッチSWの各々を介して接続しておく。そ
して自らが属するグループに対応する同期信号線に接続
されているスイッチのみをオンとするのである。詳細な
構成は第11図を参照して後述する。
この手法では同期信号バスの信号線の数は、プロセッサ
数の1/2まで削減可能である。たどえば、プロセッサ数
が10であるとき、同期信号バスの信号線の数は5まで削
減できる。このことは次の点から明らかである。すなわ
ち最大のグループ数はプロセッサの個数を、グループを
構成可能な最小のプロセッサ台数で割ったものとなる。
1個のプロセッサはグループを構成しないから、最小プ
ロセッサ台数は2である。したがって信号線の本数は上
述のとおり、プロセッサ数の1/2となる。
数の1/2まで削減可能である。たどえば、プロセッサ数
が10であるとき、同期信号バスの信号線の数は5まで削
減できる。このことは次の点から明らかである。すなわ
ち最大のグループ数はプロセッサの個数を、グループを
構成可能な最小のプロセッサ台数で割ったものとなる。
1個のプロセッサはグループを構成しないから、最小プ
ロセッサ台数は2である。したがって信号線の本数は上
述のとおり、プロセッサ数の1/2となる。
第11図にプロセッサ数が4、同期信号線数が2である
ときの同期コントローラSおよび同期信号バス2の構成
を示す。
ときの同期コントローラSおよび同期信号バス2の構成
を示す。
なおプロセッサ・グループの各々に割り当てられた同期
信号線SLには同期コントローラSからの同期要求線が
ワイヤード・オアされており、そこでの動作は負論理で
ある。あるグループ内のすべてのプロセッサPの同期コ
ントローラSは、あらかじめ、そのグループに割り当て
られた信号線SLに低レベルの信号を送出しておく。プ
ロセッサPから同期要求が発行されたとき、同期コント
ローラSは低レベルの信号の送出を停止する。グループ
内のすべてのプロセッサPが同期を発行すると、その信
号線SLのレベルは高となるので、全員の同期が完了し
たことを検出できる。
信号線SLには同期コントローラSからの同期要求線が
ワイヤード・オアされており、そこでの動作は負論理で
ある。あるグループ内のすべてのプロセッサPの同期コ
ントローラSは、あらかじめ、そのグループに割り当て
られた信号線SLに低レベルの信号を送出しておく。プ
ロセッサPから同期要求が発行されたとき、同期コント
ローラSは低レベルの信号の送出を停止する。グループ
内のすべてのプロセッサPが同期を発行すると、その信
号線SLのレベルは高となるので、全員の同期が完了し
たことを検出できる。
第11図において、同期コントローラSは同期レジスタ
3、タイミング制御回路5およびスイッチ13からな
る。同期レジスタ3は、同期発行の有無、同期を行うべ
きプロセッサ・グループの指定を行う。スイッチ13
は、同期レジスタ3の指定を受けてプロセッサ・グルー
プに割り当てられた同期信号線SLA、SLBに対して、
あらかじめSync信号を送出しておく。プロセッサPによ
る同期要求時に、その信号の送出を停止する。タイミン
グ制御回路5は、グループに割り当てられた信号線SL
を監視する。その信号線SLが高レベルになったとき、
プロセッサPに対してAck信号を出力し、同期の完了を
通知する。さらに、タイミング制御回路5は、一定時間
後にスイッチ13に対してSync信号の送出を再開させる
ことにより、プロセッサPからの次の同期要求を可能に
する。
3、タイミング制御回路5およびスイッチ13からな
る。同期レジスタ3は、同期発行の有無、同期を行うべ
きプロセッサ・グループの指定を行う。スイッチ13
は、同期レジスタ3の指定を受けてプロセッサ・グルー
プに割り当てられた同期信号線SLA、SLBに対して、
あらかじめSync信号を送出しておく。プロセッサPによ
る同期要求時に、その信号の送出を停止する。タイミン
グ制御回路5は、グループに割り当てられた信号線SL
を監視する。その信号線SLが高レベルになったとき、
プロセッサPに対してAck信号を出力し、同期の完了を
通知する。さらに、タイミング制御回路5は、一定時間
後にスイッチ13に対してSync信号の送出を再開させる
ことにより、プロセッサPからの次の同期要求を可能に
する。
(6)高速なパイプライン制御の実現 1つのグループ内のすべてのプロセッサPが一斉に同期
をとる方法は、並列実行される処理が毎回同期地点で待
ち合わせを行う場合に限らず、各処理が完全には並列実
行できず、パイプライン方式によって実行される必要が
ある場合においても有効である。パイプライン方式は、
各プロセッサに割り当てられた処理の実行を必要に応じ
てスライドすることによって実現される。このスライド
間隔を正確に保持するために、第12図に示すように各
プロセッサが一斉に同期をとる必要がある。
をとる方法は、並列実行される処理が毎回同期地点で待
ち合わせを行う場合に限らず、各処理が完全には並列実
行できず、パイプライン方式によって実行される必要が
ある場合においても有効である。パイプライン方式は、
各プロセッサに割り当てられた処理の実行を必要に応じ
てスライドすることによって実現される。このスライド
間隔を正確に保持するために、第12図に示すように各
プロセッサが一斉に同期をとる必要がある。
ところでパイプライン方式による並列処理に関しては、
パイプラインのスライド間隔が小さく、プロセッサ数が
多い場合、同期命令の挿入数は増大する。そこで、グル
ープ内のプロセッサがあらかじめ指定された順序で同期
をとる方式を提供することにより、同期命令の挿入数を
抑えることができる。
パイプラインのスライド間隔が小さく、プロセッサ数が
多い場合、同期命令の挿入数は増大する。そこで、グル
ープ内のプロセッサがあらかじめ指定された順序で同期
をとる方式を提供することにより、同期命令の挿入数を
抑えることができる。
例えば、第13図Aに示すようなループ文の実行を考え
ると第13図Bに示すように各プロセッサで処理が進行
する。なお第13図Aで括弧内のi=2は初期値を示
し、i<=5はチェック条件を示し、i++はインクレ
メントを示す。また第13図Bの矢印は第13Cに示す
ようにまず同期許可を発行したプロセッサと、対応する
同期要求を発行したプロセッサの間で同期が成立しその
通知Sync Grant iが発行されることを示す。
ると第13図Bに示すように各プロセッサで処理が進行
する。なお第13図Aで括弧内のi=2は初期値を示
し、i<=5はチェック条件を示し、i++はインクレ
メントを示す。また第13図Bの矢印は第13Cに示す
ようにまず同期許可を発行したプロセッサと、対応する
同期要求を発行したプロセッサの間で同期が成立しその
通知Sync Grant iが発行されることを示す。
第13図Bから明らかなように、同期の順序を同時に2
個以上指定可能とすることによって複雑なパイプライン
方式による並列処理を支援することができる。第13図
Bの例では、プロセッサi,プロセッサi+1,プロセッ
サi+2の順に同期を実現させると同時に、プロセッサ
i,プロセッサi+2、プロセッサi+4の順に同期を実現さ
せることができる。
個以上指定可能とすることによって複雑なパイプライン
方式による並列処理を支援することができる。第13図
Bの例では、プロセッサi,プロセッサi+1,プロセッ
サi+2の順に同期を実現させると同時に、プロセッサ
i,プロセッサi+2、プロセッサi+4の順に同期を実現さ
せることができる。
なお、このようにすると、すべてのプロセッサを毎回停
止されないのでオーバーヘッドも減少する。
止されないのでオーバーヘッドも減少する。
ところで以上のように指定された順序で同期をとると
き、プロセッサでの同期受許可順序を維持する必要があ
る。そこで以下の例では同期許可の回数と同期要求の回
数とが一致するという事実を利用する。たとえば、図中
のプロセッサiからプロセッサi+2への同期許可Sync_gr
ant3は、プロセッサiにおける3回目の同期許可である
とともに、プロセッサi+2における3回目の同期要求で
あることがわかる。そこで、同期受付けを行うプロセッ
サは、同期要求側プロセッサでの同期要求回数を数える
ことにより、適切に同期許可を発行することができる。
以上の機構をハードウェアで実現することにより、同期
のオーバヘッドを削減する。
き、プロセッサでの同期受許可順序を維持する必要があ
る。そこで以下の例では同期許可の回数と同期要求の回
数とが一致するという事実を利用する。たとえば、図中
のプロセッサiからプロセッサi+2への同期許可Sync_gr
ant3は、プロセッサiにおける3回目の同期許可である
とともに、プロセッサi+2における3回目の同期要求で
あることがわかる。そこで、同期受付けを行うプロセッ
サは、同期要求側プロセッサでの同期要求回数を数える
ことにより、適切に同期許可を発行することができる。
以上の機構をハードウェアで実現することにより、同期
のオーバヘッドを削減する。
この方式を実現するためには、第14図に示すような同
期コントローラSが必要である。ただし、プロセッサ
P、同期コントローラS、同期信号バス2の接続構成に
変更はない。
期コントローラSが必要である。ただし、プロセッサ
P、同期コントローラS、同期信号バス2の接続構成に
変更はない。
第14図において、同期コントローラSは同期レジスタ
3、同期カウンタ14、比較器4、カウンタ・アレイ1
5およびゲート16からなる。プロセッサPは、毎回、
同期レジスタ3に同期を受け付けるべきプロセッサPの
識別子をセットし、同期許可の発行を行う。同期カウン
タ14は、その同期許可の回数を保持する。カウンタ・
アレイ15を構成する各カウンタは、プロセッサPの各
々に割り当てられ、同期信号バス2上に送出された信号
を検出し、各プロセッサPの同期要求回数を保持する。
比較器4は、同期カウンタ14と同期要求側プロセッサ
Pの同期要求の回数を比較し、値が一致したときに、同
期許可信号を送出する。ゲート16は他のプロセッサP
からの同期許可信号を受信し、プロセッサPに対してAc
k信号を送出し同期の成立を通知する。
3、同期カウンタ14、比較器4、カウンタ・アレイ1
5およびゲート16からなる。プロセッサPは、毎回、
同期レジスタ3に同期を受け付けるべきプロセッサPの
識別子をセットし、同期許可の発行を行う。同期カウン
タ14は、その同期許可の回数を保持する。カウンタ・
アレイ15を構成する各カウンタは、プロセッサPの各
々に割り当てられ、同期信号バス2上に送出された信号
を検出し、各プロセッサPの同期要求回数を保持する。
比較器4は、同期カウンタ14と同期要求側プロセッサ
Pの同期要求の回数を比較し、値が一致したときに、同
期許可信号を送出する。ゲート16は他のプロセッサP
からの同期許可信号を受信し、プロセッサPに対してAc
k信号を送出し同期の成立を通知する。
(7)使用例 本発明の効果的な利用方法として、VLIWタイプ・コ
ンパイラ、ループ展開、パラレル・ソートの3つを以下
に示す。
ンパイラ、ループ展開、パラレル・ソートの3つを以下
に示す。
VLIW(Very Large Instruction Word)タイプのコン
パイラでは、普通の順次的なプログラムを1命令程度に
細分し、同時に多数のプロセッサに割り当てることによ
りプログラムが持つ並列性を抽出する(第15図)。こ
こで、命令の順序関係を保つために、命令の実行毎にプ
ロセッサの同期をとる必要がある。加えて、プロセッサ
の同期に要するオーバヘッドが、プログラムの処理全体
に占める割合いを抑えることが重要である。本発明は、
これらの要求に対して有効である。
パイラでは、普通の順次的なプログラムを1命令程度に
細分し、同時に多数のプロセッサに割り当てることによ
りプログラムが持つ並列性を抽出する(第15図)。こ
こで、命令の順序関係を保つために、命令の実行毎にプ
ロセッサの同期をとる必要がある。加えて、プロセッサ
の同期に要するオーバヘッドが、プログラムの処理全体
に占める割合いを抑えることが重要である。本発明は、
これらの要求に対して有効である。
ループ展開は、第16図に示すようにDOループ文等の各
繰り替えしを、複数のプロセッサの割り当てることによ
り並列に処理する方法である。ループ展開では、各繰り
返し間で頻繁に共通データを参照することが多い。この
共通データへの読み書きを正確に実現するために、各繰
り返しによる共通データへの書き込みを排他制御する必
要がある。そこで、ループの繰り返しを少しずつスライ
ドし、共通データへの書き込み毎にプロセッサの同期を
とることにより、高速な排他制御を実現できる。
繰り替えしを、複数のプロセッサの割り当てることによ
り並列に処理する方法である。ループ展開では、各繰り
返し間で頻繁に共通データを参照することが多い。この
共通データへの読み書きを正確に実現するために、各繰
り返しによる共通データへの書き込みを排他制御する必
要がある。そこで、ループの繰り返しを少しずつスライ
ドし、共通データへの書き込み毎にプロセッサの同期を
とることにより、高速な排他制御を実現できる。
クイック・ソートQとマージ・ソートMを組み合わせた
パラレル・ソートは、複数のプロセッサを用いてソート
を高速に行うアルゴリズムである(第17図)。ソート
の対象となるデータを複数のプロセッサに割り振り、最
初のサイクルでクイック・ソートQを行う。次のサイク
ルでは、データの一部を両隣りのプロセッサと交換しマ
ージ・ソートMを行う。それ以降のサイクルでは、デー
タの一部の交換、およびマージ・ソートMをデータ全体
が完全にソートされるまで繰り返す。パラレル・ソート
では、各サイクルにおいてクイック・ソートQ、もしく
はマージ・ソートMを終了し、両隣のプロセッサと一部
のデータの交換する前後で、プロセッサの同期を高速に
行う必要がある。本発明は、ソートとデータ交換の切換
えを効率良く実行する。
パラレル・ソートは、複数のプロセッサを用いてソート
を高速に行うアルゴリズムである(第17図)。ソート
の対象となるデータを複数のプロセッサに割り振り、最
初のサイクルでクイック・ソートQを行う。次のサイク
ルでは、データの一部を両隣りのプロセッサと交換しマ
ージ・ソートMを行う。それ以降のサイクルでは、デー
タの一部の交換、およびマージ・ソートMをデータ全体
が完全にソートされるまで繰り返す。パラレル・ソート
では、各サイクルにおいてクイック・ソートQ、もしく
はマージ・ソートMを終了し、両隣のプロセッサと一部
のデータの交換する前後で、プロセッサの同期を高速に
行う必要がある。本発明は、ソートとデータ交換の切換
えを効率良く実行する。
プロセッサ間で受け渡されるデータは、アップデート(u
pdate)タイプのキャッシュ・プロトコルの下で、各プロ
セッサのキヤッシュ内に同期時に存在し、プロセッサ間
で高速にデータが受け渡されることが期待できる。
pdate)タイプのキャッシュ・プロトコルの下で、各プロ
セッサのキヤッシュ内に同期時に存在し、プロセッサ間
で高速にデータが受け渡されることが期待できる。
F.発明の効果 以上説明したようにこの発明によれば、個々のプロセッ
サに設けられた同期コントローラ中の同期レジスタのビ
ットデータを設定することにより任意にプロセッサの間
の同期グループを可変することができ、マルチプロセッ
サ・システムを複数のアプリケーションで有効に使用す
ることが可能となる。またビットデータの設定によりパ
イプライン処理を含む種々の同期を実現できる。しかも
同期に関連した各プロセッサの状態が同期信号バスに反
映されているのでこのバスを用いて同期用の信号を授受
する必要がなく、同期信号バスの競合によるオーバーヘ
ッドを回避でき、同期制御のスループットを向上させる
ことができる。もちろん共有バス、共有メモリの負荷を
軽減できる。
サに設けられた同期コントローラ中の同期レジスタのビ
ットデータを設定することにより任意にプロセッサの間
の同期グループを可変することができ、マルチプロセッ
サ・システムを複数のアプリケーションで有効に使用す
ることが可能となる。またビットデータの設定によりパ
イプライン処理を含む種々の同期を実現できる。しかも
同期に関連した各プロセッサの状態が同期信号バスに反
映されているのでこのバスを用いて同期用の信号を授受
する必要がなく、同期信号バスの競合によるオーバーヘ
ッドを回避でき、同期制御のスループットを向上させる
ことができる。もちろん共有バス、共有メモリの負荷を
軽減できる。
第1図はこの発明の1実施例を全体として示すブロック
図、第2図は第1図の実施例で使用する命令を説明する
ための図、第3図は第1図の実施例の同期コントローラ
Sの構成を示すブロック図、第4図は第3図の同期コン
トローラSの動作を説明するタイミング・チャート、第
5図はオペレーティング・システムによるプロセッサの
グループ分けを説明する図、第6図は第5図のグループ
分けの際の同期レジスタ3の状態の一例を示す図、第7
図はダミーの同期命令およびプロセッサのグループ変更
を説明する図、第8図はダミーの同期命令を効率よく処
理できるようにした同期コントローラSの変形例を示す
ブロック図、第9図は同期制御を改装的に実現するこの
発明の他の実施例を示すブロック図、第10図は第9図
例の説明のための図、第11図はプロセッサ・グループ
ごとに同期信号線を割り当てて同期信号線の本数を削減
した他の実施例を示すブロック図、第12図はパイプラ
イン処理を説明するための図、第13図および第14図
はパイプライン処理における同期の回数を削減してオー
バーヘッドを抑圧した他の実施例を示す図、第15図、
第16図および第17図はこの発明の使用例を説明する
図である。 P……プロセッサ、C……キャッシュ、S……同期コン
トローラ、SL……同期信号線、2……同期信号バス、
3……同期レジスタ、4……比較器、5……タイミング
制御回路。
図、第2図は第1図の実施例で使用する命令を説明する
ための図、第3図は第1図の実施例の同期コントローラ
Sの構成を示すブロック図、第4図は第3図の同期コン
トローラSの動作を説明するタイミング・チャート、第
5図はオペレーティング・システムによるプロセッサの
グループ分けを説明する図、第6図は第5図のグループ
分けの際の同期レジスタ3の状態の一例を示す図、第7
図はダミーの同期命令およびプロセッサのグループ変更
を説明する図、第8図はダミーの同期命令を効率よく処
理できるようにした同期コントローラSの変形例を示す
ブロック図、第9図は同期制御を改装的に実現するこの
発明の他の実施例を示すブロック図、第10図は第9図
例の説明のための図、第11図はプロセッサ・グループ
ごとに同期信号線を割り当てて同期信号線の本数を削減
した他の実施例を示すブロック図、第12図はパイプラ
イン処理を説明するための図、第13図および第14図
はパイプライン処理における同期の回数を削減してオー
バーヘッドを抑圧した他の実施例を示す図、第15図、
第16図および第17図はこの発明の使用例を説明する
図である。 P……プロセッサ、C……キャッシュ、S……同期コン
トローラ、SL……同期信号線、2……同期信号バス、
3……同期レジスタ、4……比較器、5……タイミング
制御回路。
Claims (5)
- 【請求項1】複数のプロセッサを共有バスを介して接続
し、上記プロセッサの各々が各々の命令ストリームに応
じて同期要求信号を生成し、これら同期要求信号により
上記プロセッサの各々に割り当てられた処理の間で必要
な同期を実現するマルチプロセッサ・システムにおい
て、 上記プロセッサごとに設けられた同期制御装置と、 上記同期制御装置が共通に接続された同期信号バスとを
有し、 上記同期制御装置の各々は、 対応するプロセッサから上記同期要求信号を受け取っ
て、上記同期信号バスに同期待ち信号を送出する同期待
ち信号送出手段と、 対応するプロセッサと同期をとるべき他のプロセッサを
指定する同期レジスタと、 上記同期信号バスからの信号と上記同期レジスタの内容
を比較する比較手段と、 この比較手段の比較結果に基づいて同期成立信号を上記
対応するプロセッサに送出する手段と、 上記プロセッサが実行する命令のフォーマットを、同期
要求信号を生成するかどうかを表示するタグを含むもの
とし、このタグ部の表示に応じて上記プロセッサをして
上記同期要求信号を生成させる手段を有することを特徴
とする、 マルチプロセッサ・システム。 - 【請求項2】上記プロセッサの同期制御装置の各々は、
ダミー用の同期要求信号を計数するとともに上記同期待
ち信号を上記ダミー用の同期要求信号と逆方向に計数す
る計数手段を有し、上記計数手段の内容に応じて上記プ
ロセッサを同期制御モードまたは非同期制御モードで制
御する特許請求の範囲第1項記載のマルチプロセッサ・
システム。 - 【請求項3】複数のプロセッサを共有バスを介して接続
し、上記プロセッサの各々が各々の命令ストリームに応
じて同期要求信号を生成し、これら同期要求信号により
上記プロセッサの各々に割り当てられた処理の間で必要
な同期を実現するマルチプロセッサ・システムにおい
て、 上記プロセッサごとに設けられた同期制御装置と、 上記同期制御装置が共通に接続された同期信号バスとを
有し、 上記同期制御装置の各々は、 当該同期制御装置と上記同期信号線の各々との間の接続
状態を切り換える切り換え手段と、 上記接続状態を指定する同期レジスタと、 上記当該プロセッサから上記同期要求信号を受け取っ
て、上記同期レジスタの内容に応じて同期待ち信号を対
応する同期信号線に送出する同期待ち信号送出手段と、 上記当該プロセッサから上記同期要求信号を受け取っ
て、上記同期レジスタの内容に応じて上記切り換え手段
を制御し、対応する同期信号線の信号を受け取る手段
と、 上記対応する同期信号線の信号がすべて同期待ち信号の
ときに上記当該プロセッサに同期成立信号を送出する手
段とを有することを特徴とするマルチプロセッサ・シス
テム。 - 【請求項4】上記同期信号線の本数を、少なくとも上記
プロセッサの個数の半分とする特許請求の範囲第3項に
記載のマルチプロセッサ・システム。 - 【請求項5】複数のプロセッサを共有バスを介して接続
し、上記プロセッサの各々が各々の命令ストリームに応
じて他のプロセッサへ同期許可信号を生成し、上記プロ
セッサの各々が各々の命令ストリームに応じて他のプロ
セッサへ同期要求信号を送出し、これら同期許可信号お
よび同期要求信号により上記プロセッサの各々に割り当
てられたパイプライン型処理の間で必要な同期を実現す
るマルチプロセッサ・システムにおいて、 上記プロセッサごとに設けられた同期制御装置と、 上記同期制御装置が共通に接続された同期信号バスとを
有し、 上記同期制御装置の各々は、 上記同期許可信号に基づいて同期関係にあるプロセッサ
を指定する同期レジスタと、 上記同期許可信号の送出された回数を計数する同期許可
信号計数手段と、 上記同期信号バスの同期信号線上の同期要求信号を同期
信号線毎に個別に計数する計数アレイ手段と、 上記同期レジスタの内容に応じて上記計数アレイ手段か
ら、対応する同期信号線用の計数内容を取り出す手段
と、 上記取り出された計数内容と上記同期許可信号計数手段
の計数内容とを比較する比較手段と、 この比較手段の比較結果に応じて上記同期レジスタの内
容を同期許可信号として上記同期信号バスに送出する手
段と、 対応する同期信号線上の同期許可信号を上記同期要求信
号に応じて上記当該プロセッサに供給する手段とを有す
ることを特徴とする、 マルチプロセッサ・システム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1057762A JPH0630094B2 (ja) | 1989-03-13 | 1989-03-13 | マルチプロセツサ・システム |
EP90302255A EP0388052B1 (en) | 1989-03-13 | 1990-02-23 | Multiprocessor system synchronisation |
DE69030523T DE69030523T2 (de) | 1989-03-13 | 1990-02-23 | Synchronisierung für Multiprozessorsystem |
CA002011503A CA2011503C (en) | 1989-03-13 | 1990-03-05 | Multiprocessor system |
US07/491,415 US5222229A (en) | 1989-03-13 | 1990-03-09 | Multiprocessor system having synchronization control mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1057762A JPH0630094B2 (ja) | 1989-03-13 | 1989-03-13 | マルチプロセツサ・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02238553A JPH02238553A (ja) | 1990-09-20 |
JPH0630094B2 true JPH0630094B2 (ja) | 1994-04-20 |
Family
ID=13064891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1057762A Expired - Lifetime JPH0630094B2 (ja) | 1989-03-13 | 1989-03-13 | マルチプロセツサ・システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US5222229A (ja) |
EP (1) | EP0388052B1 (ja) |
JP (1) | JPH0630094B2 (ja) |
CA (1) | CA2011503C (ja) |
DE (1) | DE69030523T2 (ja) |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692139A (en) * | 1988-01-11 | 1997-11-25 | North American Philips Corporation, Signetics Div. | VLIW processing device including improved memory for avoiding collisions without an excessive number of ports |
EP0394362B1 (en) * | 1988-02-02 | 1997-07-09 | Thinking Machines Corporation | Method and apparatus for aligning the operation of a plurality of processors |
EP0353819B1 (en) * | 1988-08-02 | 1997-04-09 | Koninklijke Philips Electronics N.V. | Method and apparatus for synchronizing parallel processors using a fuzzy barrier |
JP2779032B2 (ja) * | 1990-01-23 | 1998-07-23 | 株式会社日立製作所 | 情報処理装置 |
JPH04152465A (ja) * | 1990-10-16 | 1992-05-26 | Fujitsu Ltd | データ処理システム及びデータ処理方法 |
US5442772A (en) * | 1991-03-29 | 1995-08-15 | International Business Machines Corporation | Common breakpoint in virtual time logic simulation for parallel processors |
FR2685509B1 (fr) * | 1991-12-23 | 1996-09-06 | Sextant Avionique | Dispositif de synchronisation entre plusieurs processeurs independants. |
EP0550286A3 (en) * | 1992-01-03 | 1993-11-03 | Amdahl Corp | 2-level multi-processor synchronization protocol |
US5377325A (en) * | 1992-04-21 | 1994-12-27 | Acer Incorporated | Bidirectional wait control between host module and slave module |
US6951019B1 (en) * | 1992-09-30 | 2005-09-27 | Apple Computer, Inc. | Execution control for processor tasks |
GB2271251B (en) * | 1992-10-01 | 1996-08-14 | Digital Equipment Int | Timer synchronisation system |
JP3285629B2 (ja) * | 1992-12-18 | 2002-05-27 | 富士通株式会社 | 同期処理方法及び同期処理装置 |
US5848283A (en) * | 1993-01-29 | 1998-12-08 | International Business Machines Corporation | Method and system for efficient maintenance of data coherency in a multiprocessor system utilizing cache synchronization |
US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
US5832253A (en) * | 1993-12-06 | 1998-11-03 | Cpu Technology, Inc. | Multiprocessors system for selectively wire-oring a combination of signal lines and thereafter using one line to control the running or stalling of a selected processor |
FI98770C (fi) * | 1994-03-01 | 1997-08-11 | Nokia Telecommunications Oy | Hierarkkinen synkronointimenetelmä |
TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
US7167993B1 (en) * | 1994-06-20 | 2007-01-23 | Thomas C Douglass | Thermal and power management for computer systems |
JP2908739B2 (ja) * | 1994-12-16 | 1999-06-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多重プロセッサ・システムにおけるcpuのモニタリング・システム及び方法 |
JPH08194679A (ja) * | 1995-01-19 | 1996-07-30 | Texas Instr Japan Ltd | ディジタル信号処理方法及び装置並びにメモリセル読出し方法 |
US5752264A (en) * | 1995-03-31 | 1998-05-12 | International Business Machines Corporation | Computer architecture incorporating processor clusters and hierarchical cache memories |
US5860108A (en) * | 1995-04-26 | 1999-01-12 | Nec Corporation | Method and clustered multi-processor system for controlling a clock phase for clusters |
JP3123413B2 (ja) * | 1995-11-07 | 2001-01-09 | 株式会社日立製作所 | コンピュータシステム |
US5924128A (en) * | 1996-06-20 | 1999-07-13 | International Business Machines Corporation | Pseudo zero cycle address generator and fast memory access |
US5958019A (en) * | 1996-07-01 | 1999-09-28 | Sun Microsystems, Inc. | Multiprocessing system configured to perform synchronization operations |
US6067610A (en) * | 1996-07-29 | 2000-05-23 | Motorola, Inc. | Method and data processor for synchronizing multiple masters using multi-bit synchronization indicators |
US6636518B1 (en) * | 1996-12-16 | 2003-10-21 | Juniper Networks | Synchronizing source-synchronous links in a switching device |
JPH10275080A (ja) * | 1997-01-24 | 1998-10-13 | Texas Instr Inc <Ti> | マイクロプロセッサ |
US6029204A (en) * | 1997-03-13 | 2000-02-22 | International Business Machines Corporation | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries |
US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
US5997167A (en) * | 1997-05-01 | 1999-12-07 | Control Technology Corporation | Programmable controller including diagnostic and simulation facilities |
US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
US6879341B1 (en) | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
US20040119829A1 (en) | 1997-07-15 | 2004-06-24 | Silverbrook Research Pty Ltd | Printhead assembly for a print on demand digital camera system |
US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
US6055660A (en) * | 1997-10-02 | 2000-04-25 | International Business Machines Corporation | Method for identifying SMP bus transfer errors |
US6314495B1 (en) * | 1998-01-07 | 2001-11-06 | International Business Machines Corporation | Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations |
US6128705A (en) * | 1998-01-07 | 2000-10-03 | International Business Machines Corporation | Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations |
US6314493B1 (en) | 1998-02-03 | 2001-11-06 | International Business Machines Corporation | Branch history cache |
AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
US6223228B1 (en) * | 1998-09-17 | 2001-04-24 | Bull Hn Information Systems Inc. | Apparatus for synchronizing multiple processors in a data processing system |
AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
JP3504240B2 (ja) * | 2000-07-24 | 2004-03-08 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム、デバイス、方法及びコンピュータプログラム |
US7530070B1 (en) * | 2000-08-10 | 2009-05-05 | Agere Systems Inc. | Dynamically configurable architecture for mixed data processing |
EP1398700A1 (de) * | 2002-09-12 | 2004-03-17 | Siemens Aktiengesellschaft | Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten |
US7493417B2 (en) | 2002-12-12 | 2009-02-17 | International Business Machines Corporation | Method and data processing system for microprocessor communication using a processor interconnect in a multi-processor system |
US7356568B2 (en) | 2002-12-12 | 2008-04-08 | International Business Machines Corporation | Method, processing unit and data processing system for microprocessor communication in a multi-processor system |
US7360067B2 (en) | 2002-12-12 | 2008-04-15 | International Business Machines Corporation | Method and data processing system for microprocessor communication in a cluster-based multi-processor wireless network |
US7359932B2 (en) | 2002-12-12 | 2008-04-15 | International Business Machines Corporation | Method and data processing system for microprocessor communication in a cluster-based multi-processor system |
US7467326B2 (en) * | 2003-02-28 | 2008-12-16 | Maxwell Technologies, Inc. | Self-correcting computer |
US7778814B2 (en) * | 2004-03-30 | 2010-08-17 | Siemens Aktiengesellschaft | Method and device for simulating an automation system |
US7734801B2 (en) * | 2004-05-20 | 2010-06-08 | Intel Corporation | Method and apparatus for acquiring internet real-time media channels in a private network |
US20060095591A1 (en) * | 2004-09-24 | 2006-05-04 | Kelly Edmund J | Accurate global timing in a computer cluster |
CN101048739A (zh) * | 2004-10-27 | 2007-10-03 | 松下电器产业株式会社 | 多处理器系统、同步控制装置及同步控制方法 |
US7516309B2 (en) * | 2005-06-03 | 2009-04-07 | International Business Machines Corporation | Method and apparatus for conditional memory ordering |
US20080005357A1 (en) * | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Synchronizing dataflow computations, particularly in multi-processor setting |
GB0613289D0 (en) * | 2006-07-04 | 2006-08-16 | Imagination Tech Ltd | Synchronisation of execution threads on a multi-threaded processor |
US7822889B2 (en) * | 2007-08-27 | 2010-10-26 | International Business Machines Corporation | Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture |
US8140731B2 (en) | 2007-08-27 | 2012-03-20 | International Business Machines Corporation | System for data processing using a multi-tiered full-graph interconnect architecture |
US8108545B2 (en) | 2007-08-27 | 2012-01-31 | International Business Machines Corporation | Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture |
US7769891B2 (en) * | 2007-08-27 | 2010-08-03 | International Business Machines Corporation | System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture |
US7958182B2 (en) | 2007-08-27 | 2011-06-07 | International Business Machines Corporation | Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture |
US7840703B2 (en) * | 2007-08-27 | 2010-11-23 | International Business Machines Corporation | System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture |
US7904590B2 (en) | 2007-08-27 | 2011-03-08 | International Business Machines Corporation | Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture |
US8014387B2 (en) * | 2007-08-27 | 2011-09-06 | International Business Machines Corporation | Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture |
US7958183B2 (en) | 2007-08-27 | 2011-06-07 | International Business Machines Corporation | Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture |
US7809970B2 (en) * | 2007-08-27 | 2010-10-05 | International Business Machines Corporation | System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture |
US8185896B2 (en) | 2007-08-27 | 2012-05-22 | International Business Machines Corporation | Method for data processing using a multi-tiered full-graph interconnect architecture |
US7769892B2 (en) | 2007-08-27 | 2010-08-03 | International Business Machines Corporation | System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture |
US7793158B2 (en) * | 2007-08-27 | 2010-09-07 | International Business Machines Corporation | Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture |
US8312464B2 (en) * | 2007-08-28 | 2012-11-13 | International Business Machines Corporation | Hardware based dynamic load balancing of message passing interface tasks by modifying tasks |
US20090064166A1 (en) * | 2007-08-28 | 2009-03-05 | Arimilli Lakshminarayana B | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks |
US8234652B2 (en) * | 2007-08-28 | 2012-07-31 | International Business Machines Corporation | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks |
US8127300B2 (en) * | 2007-08-28 | 2012-02-28 | International Business Machines Corporation | Hardware based dynamic load balancing of message passing interface tasks |
US8108876B2 (en) | 2007-08-28 | 2012-01-31 | International Business Machines Corporation | Modifying an operation of one or more processors executing message passing interface tasks |
US7827428B2 (en) | 2007-08-31 | 2010-11-02 | International Business Machines Corporation | System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture |
US7921316B2 (en) | 2007-09-11 | 2011-04-05 | International Business Machines Corporation | Cluster-wide system clock in a multi-tiered full-graph interconnect architecture |
DE102008004857B4 (de) | 2008-01-17 | 2013-08-22 | Entropic Communications, Inc. | Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen |
US20090198956A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Lakshminarayana B | System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture |
US8077602B2 (en) * | 2008-02-01 | 2011-12-13 | International Business Machines Corporation | Performing dynamic request routing based on broadcast queue depths |
US7779148B2 (en) | 2008-02-01 | 2010-08-17 | International Business Machines Corporation | Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips |
US20090307610A1 (en) * | 2008-06-10 | 2009-12-10 | Melonie Elizabeth Ryan | Method for a plurality of users to be simultaneously matched to interact one on one in a live controlled environment |
JP5347414B2 (ja) * | 2008-10-03 | 2013-11-20 | 富士通株式会社 | 同期制御装置,情報処理装置及び同期管理方法 |
JP5250703B2 (ja) * | 2009-01-23 | 2013-07-31 | アルカテル−ルーセント | リアルタイム分散型システムの同期方法およびデバイス |
ES2357923B1 (es) * | 2009-10-16 | 2012-03-12 | Starlab Barcelona Sl | Sistema de procesamiento de datos y dispositivo de computación. |
US8417778B2 (en) * | 2009-12-17 | 2013-04-09 | International Business Machines Corporation | Collective acceleration unit tree flow control and retransmit |
CN103080921B (zh) * | 2010-08-30 | 2015-11-25 | 富士通株式会社 | 多核处理器系统、同步控制系统、同步控制装置、信息生成方法 |
CN103930875B (zh) * | 2011-06-16 | 2017-05-03 | 尤塞瑞斯公司 | 用于加速业务数据处理的软件虚拟机 |
JP6317365B2 (ja) * | 2012-12-06 | 2018-04-25 | コーヒレント・ロジックス・インコーポレーテッド | 同期命令を含む処理システム |
JP7031349B2 (ja) * | 2018-02-15 | 2022-03-08 | 日本電気株式会社 | ノード |
US10333503B1 (en) | 2018-11-26 | 2019-06-25 | Quantum Machines | Quantum controller with modular and dynamic pulse generation and routing |
FR3091363B1 (fr) * | 2018-12-27 | 2021-08-06 | Kalray | Système de synchronisation inter-processeurs configurable |
US10454459B1 (en) | 2019-01-14 | 2019-10-22 | Quantum Machines | Quantum controller with multiple pulse modes |
US10505524B1 (en) | 2019-03-06 | 2019-12-10 | Quantum Machines | Synchronization in a quantum controller with modular and dynamic pulse generation and routing |
US11164100B2 (en) | 2019-05-02 | 2021-11-02 | Quantum Machines | Modular and dynamic digital control in a quantum controller |
US10931267B1 (en) | 2019-07-31 | 2021-02-23 | Quantum Machines | Frequency generation in a quantum controller |
US10862465B1 (en) | 2019-09-02 | 2020-12-08 | Quantum Machines | Quantum controller architecture |
US11245390B2 (en) | 2019-09-02 | 2022-02-08 | Quantum Machines | Software-defined pulse orchestration platform |
US11043939B1 (en) | 2020-08-05 | 2021-06-22 | Quantum Machines | Frequency management for quantum control |
US12132486B2 (en) | 2021-04-08 | 2024-10-29 | Quantum Machines | System and method for pulse generation during quantum operations |
US12111352B2 (en) | 2022-01-24 | 2024-10-08 | Quantum Machines | Machine learning for syncing multiple FPGA ports in a quantum system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4096571A (en) * | 1976-09-08 | 1978-06-20 | Codex Corporation | System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking |
US4395753A (en) * | 1980-06-26 | 1983-07-26 | Gte Automatic Electric Labs Inc. | Allocation controller providing for access of multiple common resources by a plurality of central processing units |
EP0071727B1 (en) * | 1981-07-24 | 1986-10-01 | Texas Instruments Incorporated | Restructurable integrated circuit |
US4556939A (en) * | 1983-04-29 | 1985-12-03 | Honeywell Inc. | Apparatus for providing conflict-free highway access |
US4698746A (en) * | 1983-05-25 | 1987-10-06 | Ramtek Corporation | Multiprocessor communication method and apparatus |
DE3486257T2 (de) * | 1984-01-09 | 1994-04-21 | Hitachi Ltd | Synchrones dezentralisiertes Verarbeitungssystem. |
JPH061464B2 (ja) * | 1984-12-07 | 1994-01-05 | 株式会社日立製作所 | マルチ・マイクロプロセツサ・モジユ−ル |
JPS6227813A (ja) * | 1985-07-29 | 1987-02-05 | Hitachi Ltd | 位相同期方式 |
US4785394A (en) * | 1986-09-19 | 1988-11-15 | Datapoint Corporation | Fair arbitration technique for a split transaction bus in a multiprocessor computer system |
DE3638947C2 (de) * | 1986-11-14 | 1995-08-31 | Bosch Gmbh Robert | Verfahren zur Synchronisation von Rechnern eines Mehrrechnersystems und Mehrrechnersystem |
-
1989
- 1989-03-13 JP JP1057762A patent/JPH0630094B2/ja not_active Expired - Lifetime
-
1990
- 1990-02-23 EP EP90302255A patent/EP0388052B1/en not_active Expired - Lifetime
- 1990-02-23 DE DE69030523T patent/DE69030523T2/de not_active Expired - Lifetime
- 1990-03-05 CA CA002011503A patent/CA2011503C/en not_active Expired - Fee Related
- 1990-03-09 US US07/491,415 patent/US5222229A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0388052A3 (en) | 1992-04-22 |
JPH02238553A (ja) | 1990-09-20 |
EP0388052B1 (en) | 1997-04-23 |
CA2011503A1 (en) | 1990-09-13 |
EP0388052A2 (en) | 1990-09-19 |
DE69030523T2 (de) | 1997-10-23 |
DE69030523D1 (de) | 1997-05-28 |
CA2011503C (en) | 1994-03-15 |
US5222229A (en) | 1993-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0630094B2 (ja) | マルチプロセツサ・システム | |
Gustavson | The scalable coherent interface and related standards projects | |
EP0712076B1 (en) | System for distributed multiprocessor communication | |
US6363453B1 (en) | Parallel processor with redundancy of processor pairs | |
Hoefler et al. | Towards efficient mapreduce using mpi | |
EP2159694B1 (en) | Method and device for barrier synchronization, and multicore processor | |
Beckmann et al. | Fast barrier synchronization hardware | |
CN101840390B (zh) | 适用于多处理器系统的硬件同步电路结构及其实现方法 | |
US6507809B1 (en) | Method and system for simulating performance of a computer system | |
US7581222B2 (en) | Software barrier synchronization | |
JP2006518505A (ja) | プロセッサネットワーク | |
CN115756767A (zh) | 一种用于多核cpu原子操作内存的装置及方法 | |
JPH06119297A (ja) | データ処理システムにおける命令の実行順序を決定する方法および装置 | |
JPS6326907B2 (ja) | ||
Dagless et al. | Shared memories in the CYBA-M multimicroprocessor | |
CN113568665B (zh) | 一种数据处理装置 | |
JPH01241662A (ja) | 並列処理方法 | |
Hermannsson et al. | Fast locks in distributed shared memory systems | |
CN114579507B (zh) | 一种多核架构下实现快速计算与快速同步的方法 | |
US20040128472A1 (en) | Information processing apparatus and method of controlling memory thereof | |
JP2699873B2 (ja) | バス制御回路 | |
JPH022178B2 (ja) | ||
CN113010324A (zh) | 一种多核处理器及其控制方法 | |
JPH0895899A (ja) | Dma転送制御装置 | |
Kikuchi et al. | Presto: A bus-connected multiprocessor for a Rete-based production system |