JPH02238553A - マルチプロセツサ・システム - Google Patents

マルチプロセツサ・システム

Info

Publication number
JPH02238553A
JPH02238553A JP1057762A JP5776289A JPH02238553A JP H02238553 A JPH02238553 A JP H02238553A JP 1057762 A JP1057762 A JP 1057762A JP 5776289 A JP5776289 A JP 5776289A JP H02238553 A JPH02238553 A JP H02238553A
Authority
JP
Japan
Prior art keywords
synchronization
signal
processors
processor
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1057762A
Other languages
English (en)
Other versions
JPH0630094B2 (ja
Inventor
Munehiro Fukuda
福田 宗弘
Takashi Matsumoto
尚 松本
Takeo Nakada
武男 中田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NIPPON I B M KK
IBM Japan Ltd
Original Assignee
NIPPON I B M KK
IBM Japan Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NIPPON I B M KK, IBM Japan Ltd filed Critical NIPPON I B M KK
Priority to JP1057762A priority Critical patent/JPH0630094B2/ja
Priority to EP90302255A priority patent/EP0388052B1/en
Priority to DE69030523T priority patent/DE69030523T2/de
Priority to CA002011503A priority patent/CA2011503C/en
Priority to US07/491,415 priority patent/US5222229A/en
Publication of JPH02238553A publication Critical patent/JPH02238553A/ja
Publication of JPH0630094B2 publication Critical patent/JPH0630094B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A.産業上の利用分野 この発明はマルチプロセッサ・システムに関し、とくに
プロセッサの各々に割り当てられている処理の間で数多
く発生する同期を、ハードウエアを用いて高速にかつ柔
軟性をもって実現しようとするものである。
B.従来の技術 並列処理では、分割された各処理間におけるデータの授
受、実行順序の維持等を正確に実現することが基本的な
問題となっている。このようなデータ授受等の適切な実
行時期を知るためには,各処理間で同期をとり合う必要
がある。
これらの同期は、通常メモリを介して1ラなわれる。メ
モリ中に同期成立を確認するだめの変数を設定し、同期
をとる必要のある処理がバスをロックしてこの変数を読
み書きすることにより、互いに同期をとれたことを確認
する。なおバスのロックを行うのは、1の処理による変
数の読み書きの中間に他の処理の読み書きを許容すると
変数の一貫性が損なわれてしまうからである。メモリ中
の変数の読み書きを利用した同期の実現は、同期をとり
合う処理の数が少なく、かつ同期の回数も少ない場合に
は有効である。
ところが、同期をとる処理の数が多く、同期が頻繁に行
なわれる場合には、メモリを介した同期の実現は効率的
であるとは言えない。
すなわち一時点に1つのプロセッサか、バスを獲得して
メモリの参照をおこなうことになるので、メモリを介し
た同期によって処理が順次化される。加えて、パスの使
用頻度が増大し、他の処理に及ぼす影響が大きくなるこ
とよって、マルチプロセッサ・システム全体の性能が低
下する。また、同期から次の同期までの命令列が数ステ
ップ程度になる場合、上述の同期の実現に要する命令の
オーバヘッドの占める割合いは増大する。
そこで、並列性が大きく、頻繁に同期を必要とするアプ
リケーションでは、メモリおよび共有バスを使用しない
方法により、プロセッサに割り当てられた処理間の同期
を高速に実現する必要がある。現在までに、幾つかの方
法が考えられている。
たとえば、共有メモリとは別に、プロセッサ間の同期、
通信専用のレジスタを増設することにより、共有バス、
共有メモリのアクセス頻度を軽減する方法がある。この
方法でプロセッサはレジスタの内容を繰り返し読みなが
ら処理を実行するか待機(busy waiting)
するかを決定し、この結果、プロセッサ間の同期が実現
される(“Ste l l ix:UNIX for 
a Graphics Supercomputer 
, Proceedings of the Summ
er 1988 USEt{IX Conferenc
e,June 20−24. 1988, San F
rancisco California USA, 
USEHIX Association, pp321
−330Thomas J. Te ixe iraお
よびRobert F.Gurwitz,)。また、他
の手法では、各プロセッサに同期用のレジスタを付加し
、これらを同期専用のバスで接続する。各プロセッサは
、同期専用のバスを監視(スヌーブ)して、他のプロセ
ッサの同期専用レジスタの値を知ることができる。この
手法でもプロセッサはレジスタの内容を繰り返し読みな
がら処理を実行するか待機するかを決定し、この結果、
プロセッサ間の同期が実現される。スヌーブにより各プ
ロセッサの内容を更新することにより、同期専用のバス
へのアクセス頻度を削減することができる。
ただし同期専用のバス上の信号の競合からレジスタの内
容の変更を高速に実行できない。またこの手法でもプロ
セッサはレジスタの内容を読みながら処理を実行するか
待機するかを決定し、この結果、プロセッサ間の同期が
実現される。(“VLSI Assist For A
 Multiprocessor , Proceed
ings ofthe Second Interna
tional Conference on Arch
itectural Support for Pro
grmming Languages and Ope
ration Systems, Octorber 
1987, pp.10−20, Bob Beak,
 Bob Kastenおよび Shreekant 
Thakkar, 1987 ACM, pplo−2
0)。
これらの方法は、共有バス、共有メモリの使用頻度を削
減し、良好なシステムの性能を得ることができる点で有
効である。しかしながら、同期をとるために、すべての
プロセッサがビジー・ウエイティング(busy wa
iting)を行うこと、同期をとるために同期専用の
バスの競合を回避しながらこのバスにアクセスせざるを
得ないこと等により、同期のオーバヘッドにつながる処
理の順次化等の問題を解決するには至っていない。
ここに提案する発明はレジスタで同期関係にあるプロセ
ッサのグループを指定する点、同期用のバスで競合が生
じない点で上述先行技術と異なる。
なお、この発明の先行特許出願としては特公昭63−1
4387号公報がある。この公報の技術では、同期制御
装置をプロセッサことに設け,同期信号の通信用に同期
制御線を用いている。
また特開昭59−24364号公報では各プロセッサか
らのトークン(処理終了信号)を受け取るトークン線と
プロセッサへの発火信号を受け取る発火信号線とをマト
リクス状に配置し、交点接続状態をプリップ・フロップ
で設定し、タスク間一12 接続を動的に変更できるデータフロー型処理システムが
開示されている。
たたし、これらの公報にはプロセッサごとに同期制御装
置を設け、この同期制御装置に同期レジスタを設け、同
期関係にあるプロセッサのグルーピングおよびその変更
を簡易に行うという点は開丁されていない。
C.発明が解決しようとする問題点 この発明は、以上の事情を考慮してなされたものであり
、プロセッサの各々に割り当てられた処理間で行なわれ
る多数の同期を、高速に実現し、さらに複数の並列処理
用プログラムが同時に実行できるようにするために、プ
ロセッサのグループ分けを柔軟に設定でぎるようにした
マルチプロセッサ・システムの同期制御装置を提供する
ことを目的としている。
D,問題点を解決するための手段 この発明では以上の目的を達成するため、プロセッサご
とに同期制御装置を設け、これら同期制御装置を同期信
号パスに共通接続している。そして、同期制御装置の各
々が、(a)対応するプロセッシから同期要求信号を受
け取って、同期信号バスに同期待ち信号を送出する同期
待ち償号送出手段と、(b)対応するプロセッサと同期
をとるべき他のプロセッサを指定する同期レジスタと、
(C)同期信号バスからの信号と同期レジスタの内容と
を比較する比較手段と、 (d)この比較手段の比較結
果に基づいて同期成立信号を対応するプロセッサに送出
する手段とを有している。
この発明によれば、マルチプロセッサ・システムにおけ
る処理間の同期を、各プロセッサに装備した同期制御装
置と同期信号バスを用いて効率良く実現する。
複数のプロセッサが互いに同期をとる必要があるとき、
これらすべてのプロセッサの同期要求が揃うまで、実行
を停止して待ち合わせを行う。プロセッサの各々に装備
された同期制御装置は、同期信号パス上に送出される他
のプロセツザの同期要求信号を検出することによって、
同期の成立を即座に知ることができる。また、同期をと
る必要のあるプロセッサのグループ分けを柔軟に行うこ
とができる。各プロセツザは、同期をとり合うプロセッ
サ群を同期制御装置に指定し、そのグループ内でプロセ
ッサは一斉に待ち合わせを1jう。
E.実施例 以下この発明の実施例について図面を参照して説明する
. (1)全体構成 第1図はこの発明を共有バス、共有メモリ方式の密結合
型マルチプロセツザ・システムに適用した実施例を全体
として示している。
第1図において、複数のプロセッサPl、P2・・P,
がキャッシュC1、C2・・Cnを介してシステム・バ
ス1に共通に接続されている。プロセッサPI、P2・
・Pnには同期コントローラS1、S2・・Srlが装
備され、これら同期コン1・ローラS,、S2・・S9
が同期信号バス2に共通に接続されている。同期信号バ
ス2はプロセッサ台数分の同期信号線からなっている。
同期コントローラSI、S2・・Soは、一方でプロセ
ッサP1、P2・・P,に接続され、プロセッサP+、
P2・・Pnからの同期要求を受け付け、また同期を行
うプロセッサのグループ・データを受け取るようになっ
ている。さらに同期コントローラS1、S2・・Soは
他方で同期信号バス2に接続され、このバス2を監視す
ることにより、グループ内のすべてのプロセッサが、同
期をとるために待ち合わせを完了したことを検出し、自
己のプロセッサへ通知する。
(2)基本動作 同期をとる必゛要があるプロセッサに割り当てられた処
理列の各々に、必要に応じて同期命令を挿入する。同期
命令で区切られた処理区間の実行ごとにプロセッサの待
ち合わせを一斉に行うことによって、各プロセッサに割
り当てられた処理間のデータの受渡し、実行順序の保持
等を効率良く行うことを試みる。処理区間の実行ごとの
同期を同期コントローラによって高速に実現する。以下
に、具体例を示す。
プロセッサの命令の1つとして、同期ブリフ一16− ィックス命令を用意する。または、各命令に同期タグを
付加する(第2図)。プロセッサの実行が、この種の命
令に到達したとき、その命令の実行直前で外部に同期を
必要とするSync信号を出力し、停止する。外部から
Sync  Ack信号を受信すると、その命令から実
行を再開する。既存のプロセッサを使用する場合には、
同期のための命令として、Out命令、Wait命令等
のI/O命令を利用し、Wait AckをSync 
Ack信号とすることにより、同期命令で区切られた処
理区間の実行、およびプロセッサの同期を実現できる。
同期コントローラSは、図3に示すように、同期レジス
タ3、比較器4およびタイミング制御回路5からなる。
なお任意の同期コントローラを言及するときにはサフィ
ックスを付さない。他の符号でも同様である。システム
上のすべての同期コントローラS,、S2・・S Nは
、同一のクロックにより駆動されることを前提とする。
同期信号バス2の各同期信線SLI、SL2・・SLn
は、プロセッサP1、P2・・Pr1の各々に割り当て
られ、プロセッサPl、P2・・P.からのSync信
号か送出される。同期レジスタ3は、プロセッサ台数分
のビット長を有する。同期をとる必要があるプロセッサ
Sに対応するビットに1がセットされる。比較器4は、
1クロック、または半クロックことに、同期信号バス2
上のデータをサンプリングし、同期レジスタ3のデータ
と比較する。タイミング制御回路5は、クロックにした
がってSync信号の受信、SyncJck信号の返信
等を行う。以下に、動作手順を示す(第4図)。
(a)プロセッサPは、同期が必要な命令の実行直前で
Sync信号を出力し、Sync−Ack信号が入力さ
れるまで実行を停止する。
(b)同期コントローラSは、Sync信号を受け取る
と、次のクロックの立上りで、これを同期信号バス2の
自分に割当てられた信号線SLに出力する。
(C)同期コントローラSは、同期レジスタ3の1がセ
ットされているビットに対応ずるすべての同期信号パス
2の償号線SLがアクティブになるまで、同期信号バス
2の監視を続ける。
(d)前記の条件を満足すると、次のクロツクの立上り
で同期信号バスへのSync信号の出力を終了し、プロ
セッサPに対してSync Ack信号を出力する。
(e)プロセッサPは、Sync Ack信号を入力す
ると、Sync信号の出力を終了し、命令の実行を再開
する。
げ)同期コントローラSは、これを受けてSync A
ck信号の出力を終了する。
なおキャッシュCのシステム・バス1へのアクセス等が
、(b)の段階で終了していることか保証できない場合
には、同期信号バス2へのSync信号の出力は、その
アクセスが終了するまで待つ必要がある。
(3)プロセッサのグループ分け マルチ・ユーザの環境下では、1つの並列処理可能なア
プリケーションの実行を目的としてシステム上のすべて
のプロセッサPを割り付けることは容易ではない。プロ
セッサ資源を有効利用するためにプロセッサのグループ
分けを行い、同一グループ内でのプロセッサPの同期を
行う必要がある。そこで、同期コントローラSでは、グ
ループ内のプロセッサPに対応する同期レジスタ3のビ
ットに1をセットする。通常、オペレーティング・シス
テムがこのセットを行うことになる。
第5図は,オペレーティング・システムOSの制御のも
とで,複数のプロセッサP,、P2・・を必要とするユ
ーザ・プログラムAおよびBが同時に実行されている様
子を示している。オペレーティング・システムOSの動
作とプロセッサPのグループ分けによる同期制御の一例
について以下に説明する。
第5図において、マルチプロセッサ・システムを構成す
るプロセッサPの1つ、P lをオペレーティング・シ
ステムOSに割り当てる。残りのすべてのプロセッサP
2・・Pnをユーザ・プログラムの実行に割り当てる。
オペレーティング・システムOSは,アイドルなプロセ
ッサP2、P3およ=20 びP4を検出し,これらに次の実行可能なプログラムA
を割り当てる。このとき,割り当てられたプロセッサP
2、P3およびP4に所属する同期コントローラS2、
S3およびS4の同期レジスタ3のビットを第6図のよ
うに設定する。これにより,プログラムAに割り当てら
れたプロセッサ・グループ内での同期を実現することが
できる。同様の設定方法により,プログラムBに割り当
てられたプロセッサ・グループ内での同期も同時に実現
できる。
ここでダミーの同期要求の付加について説明しておく。
あるグループ内では、毎回そのグループに属するすべて
のプロセッサPが同期をとる。このとき、一部のプロセ
ッサPは、同期をとる必要がない場合が生ずる。そのよ
うな場合には、同期の必要のないプロセッサPに割り当
てられた命令列にダミーの同期要求を付加する。第7図
AおよびBはダミー要求を示す。第7図Aは実際の処理
のながれを示し、黒丸は同期の必要な処理を示す。この
例ではプロセッサPl、P2・・P5がひとつのグルー
プとされているので、そのうちのひとつだけでも同期要
求を出さないと、すなわち黒丸を生じないと、全体の処
理か停止したままとなる。このため第7図ではばつ印で
示すようにダミーに要求信号を適宜挿入するようにして
いる。このダミーの同期要求は、処理性能に悪影響をあ
まり与えない。
また、一部のプロセッサPが長期にわたって他のプロセ
ッサ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の値が
Oになるまでダミー同期の処理を行ない、その後、通常
の同期命令を処理する。このとき、プロセッサは、同期
コントローラSからAck信号が出力されるまで実行を
停止する。
なお第8図で第3図と対応する箇所には対応する符号を
付して詳細な説明を省略する。
(4)同期制御の階層化 同期信号線の数は、マルチプロセッサ・システムを構成
するプロセッサ台数分あることが、良好な性能を得る上
で望ましい。しかしながら、システムが多数のプロセッ
サから構成されている場合には、ハードウェア量の増加
を招き、実現が容易ではない。そこで、第9図のように
同期制御の階層化を行うとどもに、同期信号線の削減を
試みることができる。
第9図において、数台から士数台(図では4台)のプロ
セッサPにより,1つのクラスタCLを形成する。図で
は2つのクラスCL,およびCL2が示されている。ク
ラスタCLは、物理的に形成されるものであり、前述の
プロセッサ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は,内部にクラスタ・グ
ループ同期レジスタ9およびプロセッサ・グループ同期
レジスタ10を有し、さらにこれら同期レジスタ9、1
0に対応する比較器11、12を有する。クラスタ・グ
ループ同期レジスタ9は同期をとるべきクラスタ・グル
ープを指定する。プロセッサ・グループ同期レジスタ1
0はクラスタCL間にわたる同期に参加するプロセッサ
・グループを指定する。
以下にクラスタ間同期コン}・口〜ラ7を利用したプロ
セッサの同期の実現の詳細を示す。
(a)クラスタ間同期コン1・ローラ7内のクラスタ・
グループ同期レジスタ9およびプロセッサ・グループ同
期レジスタ10にそれぞれ同期をとるべきクラスタ・グ
ループ、プロセッサ・グループを指定する。
(b)クラスタ間同期コン1・ローラ7は、プロセツザ
・グループ同期レジスタ10で指定したすべてのプロセ
ッサPがSync信号を出力するまで同期信号バス2を
監視する。
(C)指定したプロセッサPに割り当てられた同期信号
線のすべてかアクティブになったとき、クラスタ間同期
コントローラ7は、クラスタ間同期信号バス8の自分に
割り当てられた信号線をアクティブにする。
(d)クラスタ間同期コントローラ7は、クラスタ・グ
ループ同期レジスタ9で指定したすべてのクラスタCL
か、Sync信号を出力するまでクラスタ間同期信号バ
ス8を監視する。
(e)指定したすべてのクラスタCLかSync信号を
クラスタ同期信号バス8に送出したとき、それぞれのク
ラスタ間同期コントローラ7は、クラスタC L内の同
期信号バス2の1つ(クラスタ間同期通知信号線2ac
k)を利用して、プロセッサ・グループ同abジスタ1
0に指定したプ0セッザPにクラスタ間同期の成立を通
知する。
大規模マルチプロセッサ・システムへの階層化された同
期機構の実現例として、以下の構成を考えることができ
る。すなわち1つのカードに数台のプロセッサPを装備
し、ボックスに数枚のカードを接続することにより大規
模なマルチプロセッサ・システムを構成する。このとき
、1枚のカード上のプロセッサPをクラスタCLとする
ことが容易である。
同期機構の階層化は、クラスタCL内の同期信号パス2
と同様にクラスタ間同期信号バス8の信号線をクラスタ
台数より1つ多くすることにより、多段階へ拡張するこ
どができる。このことは以上の説明から明らかであろう
(5)同期信号線の削減 同期制御の階層化とは別に、以下に示す方法により同期
信号線の削減を試みることができる。
簡単に言えば、この手法ではプロセッサ・グループごと
に一本の同期信号線を割り当て、各プロセッサを各同期
信号線にスイッチSWの各々を介して接続しておく。そ
して自らが属するグルー28一 プに対応する同期信号線に接続されているスイッチのみ
をオンとするのである。詳細な構成は第11図を参照し
て後述する。
この手法では同期信号バスの信号線の数は、プロセッシ
数の172まで削減可能である。たとえば、プロセッサ
数が10であるとき、同期信号バスの信号線の数は5ま
で削減できる。このことは次の点から明らかである。す
なわち最大のグループ数はプロセッサの個数を、グルー
プを構成可能な最小プロセッサ台数で割ったものとなる
。1個のプロセッサはグループを構成しないから、最小
プロセッサ台数は2である。したがって信号線の本数は
上述のとおり、プロセッサ数の1/2となる。
第11図にプロセッサ数が4、同期信号線数か2である
ときの同期コン1・ローラSおよび同期信号バス2の構
成を示す。
なおプロセッサ・グループの各々に割で当てられた同期
信号線SLには同期コントローラSからの同期要求線が
ワイヤート・オアされており、そこでの動作は負論理で
ある。あるグループ内のすべてのプロセッシPの同期コ
ントローラSは、あらかじめ、そのグループに割り当て
られた信号線SLに低レベルの信号を送出しておく。プ
ロセッサPから同期要求か発行されたとき、同期コント
ローラSは低レベルの信号の送出を停止する。グループ
内のすべてのプロセッサPが同期を発行すると、その信
号線SLのレベルは高となるので、全員の同期が完了し
たことを検出できる。
第11図において、同期コン1・ローラSは同期レジス
タ3、タイミング制御回路5およびスイッチ13からな
る。同期レジスタ3は、同期発行の有無、同期を行うべ
きプロセッサ・グループの指定を行う。スイッチ13は
、同期レジスタ3の指定を受けてプロセソサ・グループ
に割り当てられた同期信号線S I−As S LBに
対して、あらかじめSync信号を送出しておく。プロ
セッサPによる同期要求時に、その信号の送出を停止す
る。タイミング制御回路5は、グループに割り当てられ
た信号線SLを監視する。その信号線S Lが高しベル
になったとき、プロセツザPに対してAck信号を出力
し、同期の完了を通知する。さらに、タイミング制卸回
路5は、一定時間後にスイッチ13に対してSync信
号の送出を再開させることにより、プロセッサPからの
次の同期要求を可能にする。
(6)高速なパイプライン制御の実現 1つのグループ内のすべてのプロセツザPが一斉に同期
をとる方法は、並列実行される処理が毎回同期地点で待
ち合わせを行う場合に限らず、各処理が完全には並列実
行できず、パイプライン方式によって実行される必要が
ある場合においても有効である。パイプライン方式は、
各プロセッシに割り当てられた処理の実行を必要に応じ
てスライドすることによって実現される。このスライト
間隔を正確に保持するために、第12図に示すように各
プロセッサが一斉に同期をとる必要かある。
ところでパイプライン方式による並列処理に関しては、
パイプラインのスライ1・間隔が小さく、プロセッサ数
が多い場合、同期命令の挿入数は増大ずる。そこで、グ
ループ内のプロセッサがあらかじめ指定された順序で同
期をとる方式を提供することにより、同期命令の挿入数
を抑えることができる。
例えば、第13図Aに示すようなループ文の実行を考え
ると第13図Bに示すように各プロセッサで処理が進行
する。なお第13図Aで括弧内のi=2は初期値を示し
、iく=5はチェック条件を示し、i十+はインクレメ
ントを示す。また第13図Bの矢印は第13Cに示すよ
うにまず同期許可を発行したプロセッサと、対応する同
期要求を発行したプロセッサの間で同期が成立しその通
知Sync Grant iが発行されることを示す。
第13図Bから明らかのように、同期の順序を同時に2
個以上指定可能とすることによって複雑なパイプライン
方式による並列処理を支援することができる。第13図
Bの例では、プロセッサjlプロセッサi+1,プロセ
ッサi+2の順に同期を実現させると同時に、プロセッ
サi,プロセッサi十2、プロセッサi+/lの順に同
期を実現させることができる。
なお、このようにすると、ずべてのブロセツザを毎回停
止されないのでオーバーヘットも減少する。
ところで以上のように指定された順序で同期をとるとき
、プロセッサでの同期受許可順序を維持する必要がある
。そこで以下の例では同期許可の回数と同期要求の回数
とが一致するという事実を利用する。たとえば、図中の
プロセッサiからプロセッサi+2への同期許可syn
c grant3は、プロセッサjにおける3回目の同
期許可であるとともに、プロセッサi÷2における3回
目の同期要求であることがわかる。そこで、同期受付け
を行うプ「】セッサは、同期要求側プロセッサでの同期
要求回数を数えることにより、適切に同期許可を発行す
ることができる。以上の機構を八− 1・ウエアで実現
することにより、同期のオーバヘットを削減ずる。
この方式を実現するためには、第14図に示すような同
期コントローラSが必要である。たたし、プロセッサP
1同期コントローラ81同期信号バス2の接続構成に変
更はない。
第14図において、同期コントローラSは同期レジスタ
3、同期カウンタ14、比較器4、カウンタ・アレイ1
5およびゲート16からなる。プロセッサPは、毎回、
同期レジスタ3に同期を受け付けるべきプロセッサPの
識別子をセットし、同期許可の発行を行う。同期カウン
タ14は、その同期許可の回数を保持する。カウンタ・
アレイ]5を構成する各カウンタは、プロセッサPの各
々に割り当てられ、同期信号バス2上に送出された信号
を検出し、各プロセッサPの同期要求回数を保持する。
比較器4は、同期カウンタ14と同期要求側プロセッサ
Pの同期要求の回数を比較し、値が一致したときに、同
期許可信号を送出する。ゲート16は他のプロセッサP
からの同期許可信号を受信し、プロセッサPに対してA
ck信号を送出し同期の成立を通知する。
(7)使用例 本発明の効果的な利用方法として、VLIWタイプ・コ
ンパイラ、ループ展開、パラレル・ソートの3つを以下
に示す。
V L I W (Very Large Instr
uction Word)タイプのコンパイラでは、普
通の順次的なプログラムを1命令程度に細分し、同時に
多数のプロセッサに割り当てることによりプログラムが
持つ並列性を抽出する(第15図)。ここで、命令の順
序関係を保つために、命令の実行毎にプロセッサの同期
をとる必要がある。加えて、プロセッサの同期に要する
オーバヘッドが、プログラムの処理全体に占める割合い
を抑えることが重要である。本発明は、これらの要求に
対して有効である。
ループ展開は、第16図に示すようにDOループ文等の
各繰り替えしを、複数のプロセッサに割り当てることに
より並列に処理する方法である。
ループ展開では、各繰り返し間で頻繁に共通データを参
照することが多い。この共通データへの読み書きを正確
に実現するために、各繰り返しにj:る共通データへの
書き込みを排他制御する必要がある。そこで、ループの
繰り返しを少しずつスラ=35 イドし、共通データへの書き込み毎にプロセッサの同期
をとることにより、高速な排他制御を実現できる。
クイック・ソートQとマージ・ソートMを組み合わせた
パラレル・ソートは、複数のプロセッサを用いてソート
を高速に行うアルゴリズムである(第17図)。ソート
の対象となるデータを複数のプロセッサに割り振り、最
初のサイクルでクイック・ソートQを行う。次のサイク
ルでは、データの一部を両隣りのプロセッサと交換しマ
ージ・ソートMを行う。それ以降のサイクルでは、デー
タの一部の交換、およびマージ・ソートMをデータ全体
が完全にソートされるまで繰り返す。
パラレル・ソートでは、各サイクルにおいてクイック・
ソートQ,もしくはマージ・ソー1−Mを終了し、両隣
のプロセッサと一部のデータの交換する前後で、プロセ
ッサの同期を高速に行う必要がある。本発明は、ソート
とデータ交換の切換えを効率良く実行する。
プロセッサ間で受け渡されるデータは、アップデート 
(upc(ate)タイプのキャッシュ・プロトコルの
下で、各プロセッサのキャッシュ内に同期時に存在し、
プロセッサ間で高速にデータが受け渡されることが期待
できる。
F.発明の効果 以上説明したようにこの発明によれば、個々のプロセッ
サに設けられた同期コントローラ中の同期レジスタのピ
ットデータを設定することにより任意にプロセッサの間
の同期グループを可変することができ、マルチプロセッ
サ・システムを複数のアプリケーションで有効に使用す
ることが可能となる。またビットデータの設定によりパ
イプライン処理を含む種々の同期を実現できる。しかも
同期に関連した各プロセッサの状態が同期信号バスに反
映されているのでこのバスを用いて同期用の信号を授受
する必要がなく、同期信号バスの競合によるオーバーヘ
ッドを回避でき、同期制御のスループットを向上させる
ことができる。もちろん共有バス、共有メモリの負荷を
軽減できる。
【図面の簡単な説明】
第1図はこの発明の1実施例を全体として示すブロック
図、第2図は第1図の実施例で使用する命令を説明する
ための図、第3図は第1図の実施例の同期コン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・・タ
イミング制御回路。 出願人  日本アイ・ビー・エム株式会社で−   (
N    l”l”l    Jul”l    %J
フL/l   (A+/I    L/1    (イ
)   φ区 =506

Claims (9)

    【特許請求の範囲】
  1. (1)複数のプロセッサを共有バスを介して接続し、上
    記プロセッサの各々が各々の命令ストリームに応じて同
    期要求信号を生成し、これら同期要求信号により上記プ
    ロセッサの各々に割り当てられた処理の間で必要な同期
    を実現するマルチプロセッサ・システムにおいて、 上記プロセッサごとに設けられた同期制御装置と、 上記同期制御装置が共通に接続された同期信号バスとを
    有し、 上記同期制御装置の各々は、 対応するプロセッサから上記同期要求信号を受け取って
    、上記同期信号バスに同期待ち信号を送出する同期待ち
    信号送出手段と、 対応するプロセッサと同期をとるべき他のプロセッサを
    指定する同期レジスタと、 上記同期信号バスからの信号と上記同期レジスタの内容
    とを比較する比較手段と、 この比較手段の比較結果に基づいて同期成立信号を上記
    対応するプロセッサに送出する手段とを有することを特
    徴とするマルチプロセッサ・システム。
  2. (2)上記同期信号バスは上記プロセッサの個数分の同
    期信号線からなり、これら同期信号線の各々に、対応す
    るプロセッサが上記同期待ち信号を送出し、上記同期レ
    ジスタは上記プロセッサの個数分のビット・データを保
    持し、上記比較手段がビット・データの各々と、対応す
    る同期信号線上の同期待ち信号とを比較する特許請求の
    範囲第1項記載のマルチプロセッサ・システム。
  3. (3)上記プロセッサが実行する上記命令ストリーム中
    に同期要求信号用の命令を挿入し、上記プロセッサがこ
    の同期要求信号用の命令を実行することに応じて上記同
    期要求信号を生成する特許請求の範囲第1項または第2
    項記載のマルチプロセッサ・システム。
  4. (4)上記プロセッサが実行する命令のフォーマットに
    、同期要求信号を生成するかどうかを表示するタグ部を
    含ませ、このタグ部の表示に応じて上記プロセッサが上
    記同期要求信号を生成するマルチプロセッサ・システム
  5. (5)上記プロセッサの同期制御装置の各々は、ダミー
    用の同期要求信号を計数するとともに上記同期待ち信号
    を上記ダミー用の同期要求信号と逆方向に計数する計数
    手段を有し、上記計数手段の内容に応じて上記プロセッ
    サを同期制御モードまたは非同期制御モードで制御する
    特許請求の範囲第1項、第2項、第3項または第4項記
    載のマルチプロセッサ・システム。
  6. (6)複数のプロセッサを共有バスを介して接続し、上
    記プロセッサの各々が各々の命令ストリームに応じて同
    期要求信号を生成し、これら同期要求信号により上記プ
    ロセッサの各々に割り当てられた処理の間で必要な同期
    を実現するマルチプロセッサ・システムにおいて、 上記プロセッサのクラスタごとに設けられたクラスタ同
    期制御装置と、 上記クラスタ同期制御装置が共通に接続されたクラスタ
    間同期信号バスと、 上記プロセッサごとに設けられた同期制御装置と、 上記プロセッサのクラスタごとに設けられたクラスタ内
    同期信号バスおよびクラスタ間同期待ち信号線であって
    、当該クラスタに含まれるプロセッサの同期制御装置が
    共通に接続されたものとを有し、 上記クラスタ同期制御装置の各々は、 対応するクラスタ内の同期をとるべきプロセッサを指定
    するクラスタ内同期レジスタと、 上記対応するクラスタ内の同期信号バスからの信号と上
    記クラスタ内同期レジスタの内容とを比較する比較手段
    と、 この比較手段の比較結果に基づいて上記クラスタ間同期
    信号バスにクラスタ間同期待ち信号を送出する手段と、 上記対応するクラスタと同期の関係にあるクラスタを指
    定するクラスタ同期レジスタと、 上記クラスタ内同期信号バスからの信号と上記クラスタ
    同期レジスタの内容とを比較する比較手段と、 この比較結果に基づいてクラスタ間同期待ち信号を上記
    対応するクラスタのクラスタ間同期待ち信号線に送出す
    る手段とを有し、 上記同期制御装置の各々は、 対応するプロセッサから上記同期要求信号を受け取って
    、上記同期信号バスに同期待ち信号を送出する同期待ち
    信号送出手段と、 上記対応するプロセッサと同期をとるべき他のプロセッ
    サを指定するとともに同期関係にあるクラスタの有無を
    指定する同期レジスタと、 上記同期バスからの信号と上記同期レジスタの内容とを
    比較する比較手段と、 この比較手段の比較結果に基づいて同期成立信号を上記
    対応するプロセッサに送出する手段とを有することを特
    徴とするマルチプロセッサ・システム。
  7. (7)複数のプロセッサを共有バスを介して接続し、上
    記プロセッサの各々が各々の命令ストリームに応じて同
    期要求信号を生成し、これら同期要求信号により上記プ
    ロセッサの各々に割り当てられた処理の間で必要な同期
    を実現するマルチプロセッサ・システムにおいて、 上記プロセッサごとに設けられた同期制御装置と、 上記同期制御装置が共通に接続された複数の同期信号線
    とを有し、 上記同期制御装置の各々は、 当該同期制御装置と上記同期信号線の各々との間の接続
    状態を切り換える切り換え手段と、上記接続状態を指定
    する同期レジスタと、 上記当該プロセッサから上記同期要求信号を受け取って
    、上記同期レジスタの内容に応じて同期待ち信号を対応
    する同期信号線に送出する同期待ち信号送出手段と、 上記当該プロセッサから上記同期要求信号を受け取って
    、上記同期レジスタの内容に応じて上記切り換え手段を
    制御し、対応する同期信号線の信号を受け取る手段と、 上記対応する同期信号線の信号がすべて同期待ち信号の
    ときに上記当該プロセッサに同期成立信号を送出する手
    段とを有することを特徴とするマルチプロセッサ・シス
    テム。
  8. (8)上記同期信号線の本数を、少なくとも上記プロセ
    ッサの個数の半分とする特許請求の範囲第7項記載のマ
    ルチプロセッサ・システム。
  9. (9)複数のプロセッサを共有バスを介して接続し、上
    記プロセッサの各々が各々の命令ストリームに応じて他
    のプロセッサへ同期許可信号を生成し、上記プロセッサ
    の各々が各々の命令ストリームに応じて他のプロセッサ
    へ同期要求信号を送出し、これら同期許可信号および同
    期要求信号により上記プロセッサの各々に割り当てられ
    たパイプライン型処理の間で必要な同期を実現するマル
    チプロセッサ・システムにおいて、 上記プロセッサごとに設けられた同期制御装置と、 上記同期制御装置が共通に接続された複数の同期信号線
    からなる同期信号バスとを有し、 上記同期制御装置の各々は、 上記同期許可信号に基づいて同期関係にあるプロセッサ
    を指定する同期レジスタと、 上記同期許可信号の送出された回数を計数する同期許可
    信号計数手段と、 上記同期信号バスの同期信号線上の同期要求信号を同期
    信号線毎に個別に計数する計数アレイ手段と、 上記同期レジスタの内容に応じて上記計数アレイ手段か
    ら、対応する同期信号線用の計数内容を取り出す手段と
    、 上記取り出された計数内容と上記同期許可信号計数手段
    の計数内容とを比較する比較手段と、この比較手段の比
    較結果に応じて上記同期レジスタの内容を同期許可信号
    として上記同期信号バスに送出する手段と、 対応する同期信号線上の同期許可信号を上記同期要求信
    号に応じて上記当該プロセッサに供給する手段とを有す
    ることを特徴とするマルチプロセッサ・システム。
JP1057762A 1989-03-13 1989-03-13 マルチプロセツサ・システム Expired - Lifetime JPH0630094B2 (ja)

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 true JPH02238553A (ja) 1990-09-20
JPH0630094B2 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006046482A1 (ja) * 2004-10-27 2006-05-04 Matsushita Electric Industrial Co., Ltd. マルチプロセッサシステム、同期制御装置及び同期制御方法
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
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
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
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
JP2016501414A (ja) * 2012-12-06 2016-01-18 コーヒレント・ロジックス・インコーポレーテッド 同期命令を含む処理システム
JP2019139719A (ja) * 2018-02-15 2019-08-22 日本電気株式会社 ノード

Families Citing this family (93)

* Cited by examiner, † Cited by third party
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
ATE155264T1 (de) * 1988-02-02 1997-07-15 Thinking Machines Corp Verfahren und vorrichtung zur steuerung des betriebsgleichlaufes einer vielzahl von prozessoren
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
US6182203B1 (en) * 1997-01-24 2001-01-30 Texas Instruments Incorporated Microprocessor
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
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
US6948794B2 (en) 1997-07-15 2005-09-27 Silverbrook Reserach Pty Ltd Printhead re-capping assembly for a print and demand digital camera system
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
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
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
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
US8140731B2 (en) 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 富士通株式会社 同期制御装置,情報処理装置及び同期管理方法
CN102217207B (zh) * 2009-01-23 2014-04-30 上海贝尔股份有限公司 用于实时分布式系统的同步方法及其装置
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
JP5488697B2 (ja) * 2010-08-30 2014-05-14 富士通株式会社 マルチコアプロセッサシステム、同期制御方法、および同期制御プログラム
ES2555275T3 (es) * 2011-06-16 2015-12-30 Argyle Data, Inc. Máquina virtual de software para aceleración de procesamiento de datos transaccionales
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
US11245390B2 (en) 2019-09-02 2022-02-08 Quantum Machines Software-defined pulse orchestration platform
US10862465B1 (en) 2019-09-02 2020-12-08 Quantum Machines Quantum controller architecture
US11043939B1 (en) 2020-08-05 2021-06-22 Quantum Machines Frequency management for quantum control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61136157A (ja) * 1984-12-07 1986-06-24 Hitachi Ltd マルチ・マイクロプロセツサ・モジユ−ル

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
EP0148297B1 (en) * 1984-01-09 1993-12-15 Hitachi, Ltd. Synchronous decentralized processing system
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61136157A (ja) * 1984-12-07 1986-06-24 Hitachi Ltd マルチ・マイクロプロセツサ・モジユ−ル

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
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
US7698373B2 (en) 2002-12-12 2010-04-13 International Business Machines Corporation Method, processing unit and data processing system for microprocessor communication in a multi-processor system
US7734877B2 (en) 2002-12-12 2010-06-08 International Business Machines Corporation Method and data processing system for processor-to-processor communication in a clustered multi-processor system
US7818364B2 (en) 2002-12-12 2010-10-19 International Business Machines Corporation Method and data processing system for microprocessor communication in a cluster-based multi-processor system
WO2006046482A1 (ja) * 2004-10-27 2006-05-04 Matsushita Electric Industrial Co., Ltd. マルチプロセッサシステム、同期制御装置及び同期制御方法
JP2016501414A (ja) * 2012-12-06 2016-01-18 コーヒレント・ロジックス・インコーポレーテッド 同期命令を含む処理システム
JP2018116735A (ja) * 2012-12-06 2018-07-26 コーヒレント・ロジックス・インコーポレーテッド 同期命令を含む処理システム
JP2019139719A (ja) * 2018-02-15 2019-08-22 日本電気株式会社 ノード

Also Published As

Publication number Publication date
EP0388052B1 (en) 1997-04-23
CA2011503A1 (en) 1990-09-13
DE69030523D1 (de) 1997-05-28
US5222229A (en) 1993-06-22
JPH0630094B2 (ja) 1994-04-20
EP0388052A3 (en) 1992-04-22
CA2011503C (en) 1994-03-15
EP0388052A2 (en) 1990-09-19
DE69030523T2 (de) 1997-10-23

Similar Documents

Publication Publication Date Title
JPH02238553A (ja) マルチプロセツサ・システム
US5920714A (en) System and method for distributed multiprocessor communications
EP0623875B1 (en) Multi-processor computer system having process-independent communication register addressing
US6363453B1 (en) Parallel processor with redundancy of processor pairs
JPH036534B2 (ja)
JPH0552980B2 (ja)
JPS62159268A (ja) マルチプロセツサシステム
US6507809B1 (en) Method and system for simulating performance of a computer system
CA2419340A1 (en) Software barrier synchronization
JP2006518505A (ja) プロセッサネットワーク
JPH06119297A (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
EP1237081B1 (en) Multi-processor system
JP2780623B2 (ja) 情報処理装置
JP2708172B2 (ja) 並列処理方法
JPH10111857A (ja) マルチプロセッサ
JPS6326907B2 (ja)
JPH1185673A (ja) 共有バスの制御方法とその装置
JPH0329049A (ja) マルチプロセッサシステム
US20040128472A1 (en) Information processing apparatus and method of controlling memory thereof
JPS62236063A (ja) マルチタスキング方式
JPS6160161A (ja) マルチプロセツサシステム
JPS6143369A (ja) マルチプロセツサシステム
JPH0260021B2 (ja)
JPH05101207A (ja) Simd型プロセツサ
JPS62168231A (ja) デ−タ処理装置