JPH03144847A - マルチプロセッサ・システムおよびそのプロセス同期方法 - Google Patents

マルチプロセッサ・システムおよびそのプロセス同期方法

Info

Publication number
JPH03144847A
JPH03144847A JP1277334A JP27733489A JPH03144847A JP H03144847 A JPH03144847 A JP H03144847A JP 1277334 A JP1277334 A JP 1277334A JP 27733489 A JP27733489 A JP 27733489A JP H03144847 A JPH03144847 A JP H03144847A
Authority
JP
Japan
Prior art keywords
synchronization
processors
processor
rescheduling
processes
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
JP1277334A
Other languages
English (en)
Other versions
JPH0640324B2 (ja
Inventor
Takashi Matsumoto
尚 松本
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP1277334A priority Critical patent/JPH0640324B2/ja
Priority to EP19900311794 priority patent/EP0425320A3/en
Publication of JPH03144847A publication Critical patent/JPH03144847A/ja
Priority to US07/944,803 priority patent/US5448732A/en
Publication of JPH0640324B2 publication Critical patent/JPH0640324B2/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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明はマルチプロセッサ・システムに関し、特に、
プロセッサ間の同期に伴うオーバーヘッドと無意味なス
ケジューリングを極力抑えて、システムの性能とプロセ
ッサ資源の使用効率を向上できるようにしたものである
B、従来技術 VLSI技術の大きな進歩により、多数のフ加セッサを
搭載したマルチプロセッサ・システムが実現されるよう
になった。そして、複数のプロセッサを用いて仕事を高
速に処理する並列処理が菫要になってきている。あるプ
ロセッサが他のプロセッサの処理結果を用いる際は、そ
の処理の完了を確認する動作つまり同期が必要である。
このように、複数のプロセッサが協調して処理を行うよ
うにするにはプロセッサ間の同期が不可欠である。
従来の同期の方法について説明する。
コンピュータシステムにおいて、現実のハードウェア資
源の管理はオペレーティングシステム(以下O8という
〉によって行われている。よって、ユーザーやプログラ
マは実プロセツサを仮想化したプロセスという概念を用
いて処理を記述する。プロセスはO8の管理の下で実プ
ロセツサの割当てを受け処理を実行する。この割当てを
プロセススケジューリング(以下単にスケジューリング
という)と呼び、一つのプロセスに対し一つの実プロセ
ツサが割当てられる。並列処理では協調して動作する複
数のプロセスを用意して、プロセス間で同期を取りなが
ら処理を進める。この同期の方法には一般には次の二つ
の方法が用いられている。一つはO8を介して同期を行
う方法で、もう一つはプロセス間の共有メモリを介して
同期を行う方法である。同期のためには同期を取り合う
プロセス間で同期情報を交換するための共有の実体が必
要になる。前者はその実体としてO8を後者はメモリを
用いている。
次に従来の同期法における問題点について述べる。
O8@介して同期を実行する場合は、同期が成立しなか
ったプロセスはプロセッサの割り当てを外され休止状態
になり、空いたプロセッサには他のプロセスが割付られ
る。よって、プロセッサ資源は効率的に使われる。しか
し、O8を介しての同期はオーバーヘッドが大きく、こ
のため休止状態になったり、再びプロセッサに割付られ
たっということを繰返すと著しく効率が低減する。プロ
グラムの粒度(同期から次の同期までの間隔)が十分に
大きければ、このオーバーヘッドは無視できるが、通常
は無視できない。オーバーヘッドを少なくするためO8
を介しての同期ではなく共有メモリを介してのビジー・
ウェイトで同期を行うときにはこのような問題はなくな
るが、他の問題が生じる場合がある。前述のようにO8
は一つの実プロセツサに一つのプロセスを割付ける。こ
のスケジューリング時に、複数の特定のプロセスを同時
に複数のプロセッサに割付るといった指定が通常できな
い。そこで、ある並列処理のために複数のプロセスを生
成し、それらがお互に同期しながら動くようなプログラ
ムを考える。スケジューリングの都合で、そのプロセス
群の内のいくつかはプロセッサの割当てを受け、残りは
プロセッサの割当て待ちの状態になっているとすると、
同期を取るべき時に相手のプロセスがプロセッサにスケ
ジューリングされておらず、同期がすぐには成立させら
れずプロセッサが無駄などジー・ウェイトを行うといっ
た事態が起こる。つまり、第1図のようにプロセスがプ
ロセッサに割当てられており、A1、A2、A3のプロ
セスがA4のプロセスの処理結果を使うためにビジー・
ウェイトの同期でループしているといった事態である。
この場合、CPU時間は消費するが、タイム・スライス
か何かで再スケジューリングが起こって、A4のプロセ
スが実プロセツサに割当てられるまで、プログラムは何
も進展しない。また、共有メモリを介してのビジー・ウ
ェイトで複数のプロセスが同時に一点で待ち合わせを行
うバリア同期を行うと、スケジューリングの問題の他に
も、マルチプロセッサ上で同期のための排他的メモリ・
アクセスが集中して1.データ通信路の競合等のオーバ
ーヘッドを引き起こすといった問題もある。
上述からも示唆されるように、プロセスの同期とスケジ
ューリングは密接な関係を持っている。
アプリケージクンや特定の並列処理プログラムにおいて
は、スケジューリングを調節することによって効率を上
げることができる。しかし、現状のO8では総てのプロ
セスを同じアルゴリズムに基づいてスケジューリングを
行っているのでアプリケーション毎のスケジューリング
の調節といったことができない。
なおこの発明に関連する先行技術の文献としてはつぎの
ちのがある。
(1) ”5tellix: UNIX for a 
Graphics Supercomputer 、 
Proceedings of the Summer
 1988 USENIX Conference、 
June 20−24.1988.San frasc
isco Ca1ifornia []SA、 USE
)IIX As5ociation、 pp 321−
330. Thonas J、 Te1xeira &
 Robert F、 Gurwitこの文献には同期
用の特別なインストラクション列により同期をとるとき
に、すべてのプロセスが同期待ち状態なら、フォールト
信号をハードウェアが生成することを開示している。し
かしこの文献では共有メモリのプロセッサ情報(後述の
ようにプロセッサへのプロセスの割り当て、プロセスの
グループ分けおよびプロセスの同期に関する情報)を用
いてプロセスが所定の条件をチェックして自らが再スケ
ジュール要求を行って効率のよいプロセス同期を実現で
きるようにすることについてはなんら示唆していない。
(2) IBM Technical Disclos
ure Bulletin Vol。
32 No、l June 1989 pp260−2
62.” DEVICE THAT PROVIDES
 FORC0NTENTION−FREE BARRI
ER5YNCHRONIZATION IN A MI
JLTIPROCESSOR”(3) IBM Tec
hnical Disclosure Bulleti
n Vol。
31 No、11 Aprol 1989 pp382
389.”LOW−COST DEVICE FORC
0NTENTION−FREE BARRIER5YN
CHRONIZATIOH” (2)、(3〉の文献にはバリア同期を集中的にハード
ウェアで実行する構成が開示されているが、同期待ちに
対する工夫は示唆されていない。
(4) H,S、 5tone )ligh−Perf
ori+ance ComputerArchitec
ture、 AddLson−Wesley、 Rea
ding、 Massachusetts、 1987 この文献にはバリア同期に関する一般的解説がなされて
いる。
C0発明が解決しようとする問題点 この発明は以上の事情を考慮してなされたものであり、
プロセッサ間の同期に伴うオーバーヘッドと無意味なス
ケジューリングを極力抑えた高性能なマルチプロセッサ
・システムを提供することを目的としている。
D1問題を解決するための手段 この発明では、以上の目的を遠戚するために、オーバー
ヘッドを減らすため共有メモリを介しての同期を採用し
、システムのプロセッサ資源に関する情報(プロセッサ
へのプロセスの割り当て、プロセスのグループ分けおよ
びプロセスの同期に関する情報)をユーザーからアクセ
スできるようにしておき、ビジー・ウェイトの同期待ち
のループで同期変数のチェックたけではなく、プロセッ
サ資源に関する情報もチェックし、そのチェックの結果
、同期が暫く成立しない状況と判断されるときはビジー
・ウェイト中のフ゛ロセスは自らプロセスの実行を中断
し、スケジューラに制御を移し、再スケジューリングを
行わせプロセッサへのプロセスの割当てを変更する。
またこの発明ではプロセッサ間の同期が複数のプロセッ
サが一斉に待ち合わせを行うバリア同期用に、プロセッ
サ毎に専用レジスタを設け、そのレジスタ間の情報を交
換する専用の通信路を用意して、バリア同期のオーバー
ヘッドを軽くする。
また、プロセッサ資源に関する情報をチェックするため
に生ずるオーバーヘッドを軽くするために支援ハードウ
ェアを設け、再スケジューリングの開始は割り込みで通
知されるようにしてもよい0 さらに再スケジューリングの際に最適なスケジューリン
グが行えるように、スケジューラのユーザーによるカス
タマイズを可能にしてもよい。また、これをO8の管理
下で可能にするためスケジューラを階層化してもよい。
すなわちアプリケーションを実行するために並列に動く
プロセス群はそのアプリケーションのためのユーザーの
スケジューラの直接の管理下に置かれる。さらに、再ス
ケジューリングを指示する割り込みのオーバーヘッドを
減らすためとユーザーのスケジューラが複数のプロセッ
サに対してなるべく小さなオーバーヘッドで非同期通信
を可能にするために、プロセッサの割り込みを階層化し
てその内の優先度の低いものはユーザーに解放された割
り込みとする。つまり、その割り込みがユーザーのプロ
グラムを実行中(ユーザー・モード中)に起こった場合
、ユーザーが予め設定した割り込みプログラムに制御を
移すだけでOS(カーネル・モード)には制御を移さな
いようにするのである。
E、実施例 以下、この発明の実施例について図面を参照して説明を
行う。
同期処理を軽くすることを目的の一つとしているので、
共有メモリ等を介してのビジー・ウェイトで同期を行う
ことを前提にする(O8を介してでは上述のとおりオー
バーヘッドが増大する)。
この際、従来技術でも述べたように以下の二点が問題で
ある。
(1) 無駄に同期待ちを行うプロセスがプロセッサに
割り付けられて、プロセッサ資源を浪費する。
(2)  バリア同期の際に、同期のための排他的メモ
リ・アクセスが集中して、データ通信路が競合してオー
バーヘッドを生じる。
まず、(1)の問題について述べて、解決の方針を示す
。ある処理を複数のプロセスが協調して実行している場
合(並列処理)を想定する。この処理の途中で一つのプ
ロセスを除いて他のプロセスは同期待ちになったとする
。例えばその同期待ちでないプロセスが計算結果を出す
のを今後その値が必要となるので他のプロセスすべてが
待っているといった状況である。また、プロセスの数が
プロセッサ数よりも多く、すべてのプロセスをプロセッ
サに同時に割り付けることはできないとする。この状況
で、共有メモリを介しての同期を行っているので、O8
はプロセスが同期待ちであるかどうか区別できない。そ
のため、スケジューリングの結果、同期待ちのプロセス
ばかりがプロセッサに割り付けられて、同期待ちでない
本来最優先のプロセスが実行待ちになってしまう可能性
がある。この場合、一定時間毎のタイマ割り込み時の再
スケジューリングの機会に同期待ちでないプロセスがプ
ロセッサに割り付けられるまで、プロセッサ資源を無駄
に浪費し続けることになる。
この浪費を回避するためには、プロセッサに同期待ちの
プロセスばかりが割り当てられていることが認識できな
ければならない。そこで、ビジー・ウェイトの同期待ち
のループでは同期変数のチェックたけではなく、同期待
ちの場合はシステムのプロセッサ資源に関する情報もチ
ェックする。
そのチェックの結果、状況によってはプロセスを中断し
、O8に制御を移し、再スケジューリングを実行しプロ
セッサへのプロセスの割り当てを変更する。この方式に
より無駄に同期待ちを行うプロセッサを減らすことがで
き、システムのプロセッサ資源を有効に使えるようにな
る。状況判断の方法と利用するデータについてはE、1
.2゜節で述べる。再スケジューリングの方法について
はE、1.3.節で述べる。
次に、(2)のバリア同期における排他的メモリ・アク
セスの集中の問題について解説し、その解決の方針を示
す。一つの同期変数を用いたN台のプロセッサによるバ
リア同期の場合、少なくともN回の同期変数への排他的
な操作が必要である。この部分のメモリ処理は1列化さ
れるのでNが大きくなるとオーバーヘッドも増大する。
特に、バリア同期を取るプロセス間の粒度が揃っており
、それらのプロセスが総て同時にプロセッサに割り当て
られている(つまり、プロセッサの割当て待ちのプロセ
スがいない)状況で、このオーバーヘッドが問題となる
。このオーバーヘッドを避けるためにバリア同期専用の
同期変数を専用レジスタC本発明ではフラグ)としてプ
ロセッサ毎に設け、レジスタ間の値の更新は同期情報の
ための専用通信路(本発明ではブロード・キャスト型の
信号線)で行うことにする。この機構により通常のデー
タ通信路の通信量を増やすことなしにバリア同期が行え
る。当然、プロセッサへの割当てを待っているプロセス
が存在する時には、(1)の問題の解決方針に基づいた
動作を行う。具体的な機構についではE、20節の中で
述べる。
プロセスが同期待ち時にプロセッサの割当てを自ら放棄
する条件とその状況判断に必要になるシステムのプロセ
ッサ資源に関する情報について述べる。ここで、プロセ
ッサ資源を有効に管理するためにプロセッサのグループ
という考え方を導入する。基本的にはプロセスのうち共
有メモリを介した同期を行うもの同士を一つのグループ
とする。つまり、グループが異なれば、共有メモリを介
したビジー・ウェイトの同期を行わない。プロセッサは
自分の上で現在実行されているプロセスのグループに属
する。同じグループのプロセスが同時に割り付けられて
いるプロセッサ群がプロセッサのグループを形成する。
第1図ではA1、A2、A3、A4がプロセスのグルー
プを形成しており、図のようなプロセッサの割当ての場
合はCPt1l 、CPt12、CPt13が一つのグ
ループであり、CPt14は別のグループである。UN
IX(米国AT&T社の商標)系のO8の場合、PPI
D (親プロセス識別子)をこのグループの識別子とし
て流用できる。
なお説明を補助する目的で図を用いるが、今後の図中で
の記法を説明しておく。プロセスA2wとあれば、最初
のAはグループ名を次の2はグループ内でのプロセス名
を最後のWはそのプロセスが同期待ちであることを示す
。同期待ちでないプロセスではWの代りにrが用いられ
る。図の左端で長方形の破線で囲まれたプロセスは実プ
ロセツサの゛割当てを待っているプロセスである。
同期待ち時に、実行中のプロセスが自らプロセスを中断
し、プロセスの交代を要求する条件の例として以下のよ
うなものが挙げられる。
[11自分と同じグループに属するプロセッサが総て同
期待ちになり、実行待ちのプロセスが存在する時(第2
図(a)参照)。
[21自分と同じグループに属するプロセスが総て同時
にプロセッサに割り付けられており、それら総てが同期
待ちになった時。但し、これはプログラミング・エラー
(デッド・ロック)と考えられる(第3図参照)。
[31バリア同期を行うプロセス群で一つのグループを
形成しており、自分がそのグループの一員の場合、自分
のグループに属する実行待ちかつ同期待ちでないプロセ
スが存在する時(第4図(a)参照)。
[4]  自分と同じグループに属する同期待ちのプロ
セッサの数がnを越え、実行待ちのプロセスが存在する
時。但し、nはO8またはユーザーにょって設定された
値である。
[5] 自分と同じグループに属する同期待ちのプロセ
ッサの数がnを越え、実行待ちの自分と同じグループの
プロセスが存在する時(第5図(a)参照)。
[1〕、[21、[3]の条件はプロセスを交代する方
が確実に効率が向上する条件で、[41、[51の条件
は発見法的で経醸則からnの値を決めて効率の向上を狙
うものである。処理しているアプリケージタンによって
nの値を調節して効率を上げるべきである。[4]、[
5]の条件については、同期待ちの絶対数で判断するの
ではなく、同じグループに属するプロセッサ数とその内
の同期待ちの数の比率を基準にしてもよい。
これらの条件を満たすがどうかチェックするのに必要な
システムのプロセッサ資源に関する情報は、以下のよう
なものである。
#14GC(the number of 14y G
roup Cpus) :自分のグループに属するプロ
セッサの数(グループに属するプロセスの内のプロセッ
サに割り付けられているものの数) LHVC(the number of My gro
up vaiting Cpus) 二自分のグループ
に属するプロセッサの内、同期待ちのプロセッサの数 #14GP (the number of My G
roup Processes) :自分のグループに
属するプロセスの総数#PRQ (the numbe
r of Processes in Run Que
ue): 実行待ちのプロセスの数 #MPRQ (the number of )(y 
group Processes in Run Qu
eue) : 自分のグループに属する実行待ちのプロセスの数 DHWR(the number of My gro
up Not %laiting processes
 ’rn Run queue) :自分のグループに
属する実行待ちだが同期待ちでないプロセスの数 TVPS (Threshold Value for
 Process 5vitch) :上述のn これらの値がユーザーのプロセスから低コストで参照で
きる必要があり、共有メモリ上にカーネル(O8)側か
らもユーザー側からもアクセスできる変数として置かれ
る。アクセス権の保護に関しては、$1MWCのみ同期
を行うユーザーのアプリケーションのプロセスからも書
き込み可能で、他はスケジューラ側のみから書き込める
。スケジューラはこれらの値をスケジューリング毎に必
要に応じて更新する。
上記で述べたプロセス切り換えのための条件判断を含む
効率のよいビジー・ウェイト同期方式についてフローチ
ャートに沿って説明する。同期変数のチェックやプロセ
ス切り換えの条件判断の具体的な方法等は、待ち合わせ
を行うプロセスの数や同期の種類によって異なる。しか
し便宜上、ここでは第6図の一つのフローチャートで待
ち合わせ処理の内容を示し、細かい差には言及しない。
第7図は従来の待ち合わせのためのループを示す。最良
の条件、つまり同期変数を初めてチェックするまえに同
期が成立し同期変数に同期成立の値がセットされている
場合において、第6図の方式のオーバーヘッドを従来の
方式と同じに抑えるために処理の頭で同期変数のチェッ
クを一度行っている(Sl)。同期完了であれば当然す
ぐに待ち合わせ処理を終了する。−回目の同期変数のチ
ェックで同期未了の場合に限り、プロセッサが同期待ち
状態に入り(S2) 、これにより影響を受ける変数(
#MMC等)を更新する(S3)。そして、システムの
プロセッサ資)原に関する1青報を読出して(34)、
前出の条件によってプロセスを中断しスケジューラによ
るプロセスの再スケジューリングを要求するかどうか判
断する(S5)。条件が成立すれば、影響を受ける変数
(引へvC等)を更新しくS6)、プロセッサの制御権
を放棄するシステム呼出し等を行ってスケジューラを呼
び出す(S7)。条件が成立しなければ、新たに同期変
数のチェックを行なう(Sll)。
同期が成立していなければ、プロセッサ資源に関する情
報の読出しに戻って繰返す。同期が成立していれば、プ
ロセッサが同期待ち状態を抜け1.=れにより影響を受
ける変数(姉WC等)を更新しく512)、待ち合わせ
の処理を終了する(S9)。制御権を放棄して、再びプ
ロセッサに割り付けられた時は、プロセス切り換えの条
件判断が非成立の場合のフローに合流する(S8、Sl
○)。
第6図で点線で囲まれた処理の部分は共有メモリへのア
クセスを不可分で排他的に行うべき部分(#)1%Jc
の更新)を示す。つまり、共有バスのシステムではロッ
クを掛けてアクセスする部分を示す。以下の図でも同様
である。
ハードウェア構成によっては共有変数へのアクセスの集
中の問題が存在する。それは同期待ちの処理の一番内側
のループでプロセッサ間で共有されるプロセッサ資源に
関する変数をアクセスしていることに起因する。内容の
コンシステンシを保つキャッシュ(スヌーブ・キャッシ
ュ)等のハードウェアを持たないシステムでは頻繁にコ
ストの掛かる共有メモリへのアクセスが発生し、データ
通信路の通信の競合をまねく可能性がある。しかし、従
来の方法でも共有変数である同期変数へのアクセスを同
期待ちの処理の一番内側のループで行っているので事情
は同じである。よって、以下はシステムが内容のコンシ
ステンシを保つキャッシュ等のハードウェアを持ってい
ることを前提とする。
スヌーブ・キャッシュ等を持ったシステムでは第8図の
ようにスピン・ロックを行えばオーバーヘッドを増やさ
ずに無駄なプロセス切り換えの要求を抑えられる。つま
り、第6図の方式では複数のプロセスで同時にプロセス
切り換えの条件が成立し、プロセス切り換え要求が集中
する可能性がある。そこで、第8図のように実際にプロ
セス切り換えを要求する部分をクリティカル領域として
排他制御することにより、その要求の集中を防いでいる
。ただし、ビジー・ウェイトの最内側ループにクリティ
カル領域の排他制御のための共有メモリへの排他アクセ
ス(パス・ロック等)が入ると、共有メモリへのアクセ
スが集中してオーバーヘッドが大きくなる。そこで、最
内側ループではクリティカル領域とせずにプロセス切り
換えの条件判断を行ない、条件が成立したときに限り、
クリティカル領域に入り条件判断をし直す(スピン・ロ
ック、S4’、S5°)。なお、第8図の方式の場合、
スケジューラがプロセスを切り換えてシステムのプロセ
ッサ資源に関する変数を更新する際も、アクセスは排他
制御される。また第8図において第6図と対応する個所
には対応する符号を付して詳細な説明は省略する。
第6図に書かれている待ち状態フラグ(PWF:Pr。
cess lJaitfng 5tate Flag)
と待ち状態カウンタ(PWC:Process vai
ttng 5tates Counter)はプロセス
毎に設けられ、°スケジューラが#MNVRを計算する
データとなり、またスケジューリングにヒントを与える
ことができる。詳しくは次のE、1゜3、節で述べる。
粒度が比較的小さいプログラムでは新しい方式のオーバ
ーヘッドが従来方式に比べて目立ってくる。例えば、数
十命令毎に同期を必要とするプロセス群があり、それら
が同時に総てプロセッサに割り当てられて実行されてい
る場合、同期待ち状態に入ったとしても同期はすぐ成立
するので同期待ちのループを1〜2回程度しか回らない
と考えられる。同期待ち状態でのループの繰返し毎の処
理量は第7図と第8図から比べても判るように、新しい
方式は従来に比べてかなり重たい。そのため、ループを
1〜2回しか回らない場合は、同期が成立した(同期変
数を誰かが書き替えた)時点から実際に成立を検出して
待ち合わせ処理を終了するまでのオーバーヘッドが目立
つようになる。
そこで、プロセッサ外部からハードウェア的にプロセッ
サが同期待ち状態にいるかどうか検知できる機構を用意
して、同期待ち状態のプロセスを切り換えるべきかどう
かのチェックを専用ハードウェアに行わせ、割り込みで
条件成立を通知すれば、プロセッサは第9図のような待
ち合わせ処理で済む。これにより前出の場合でも従来方
式と遜色がなくなる。
E、1.3.再スケジューリングの改善第2図に条件[
11が成立した場合、第4図に条件[31が成立した場
合、第5図に条件[5]が成立した場合の再スケジュー
リングの進行の例を図示しである。プロセッサの割当て
待ちのプロセスが複数ある場合、どのプロセスをプロセ
ス切り換え時にプロセッサに割り付けるかが効率上問題
である。また、第3図ではグループAはデッド・ロック
を起こしているので、再スケジューリングでAのグルー
プのプロセスの実行をすべて止めるべきである。ここで
はスケジューラがどのように再スケジューリングを実行
すべきかについて述べる。
また、プロセッサ台数以上のプロセスで並列処理を行う
場合は必ず再スケジューリングが起こり、プロセスの粒
度が細かいときにはその頻度が非常に大きい。そこで、
そのような並列処理にも対応できるように再スケジュー
リングのオーバーヘッドを極力削減する必要がある。オ
ーバーヘッドの少ない階層化されたスケジューラについ
ても述べる。
前出の待ち状態フラグ(PWF)と待ち状態カウンタ(
F’VC)はスケジューラが114NVRを計算するデ
ータとなり、またスケジューリングにヒントを与える。
共に初期値は”O″で、PWFはプロセスが同期待ち状
態にあることを”1”で示し、PWCは同期待ち状態に
なった回数を示す。PWF、PWCによりスケジューラ
はプロセスが同じ同期待ち状態にいるかどうか知ること
ができる。これにより、条件[21が成立していなくて
も、デッド・ロックが検出できる場合がある。あるグル
ープのプロセス総てが同期待ち状態の時、さらに総ての
プロセスを1回ずつプロセッサに割り付けた後も、総て
のプロセスが前と同じ同期待ち状態にあるとすれば、そ
れはデッド・ロックを意味し処理を中止すべきである。
また、同期待ち状態にない)和セスに優先権を与えると
いうスケジューリング法が採用できる。バリア同期では
、バリア同期専用のPlilCB (Prosess 
Waiting Counter for Barri
er)を設ける。但し、これはPWCとは異なり待ち合
わせ処理@行った@数を示す。つまり、第6図の頭の同
期変数チェックの前に更新する。同じグループ内のプロ
セスが全員でバリア同期を行う場合は、同期毎にPWC
Bの値が揃うので、次にスケジューリングすべきプロセ
スが判る。たたし、第4図(C)、(d)のようにプロ
セッサの割当て待ちでかつ同期待ちのプロセスは同期の
成立時に同期待ちではなくなる。そこで、同期成立時に
DNWRを更新する必要がある。
この他にも、アプリケーションによっては同期を取り合
う頻度の高いプロセスの組み合わせといったことに関す
る情報が事前に得られる。そういったアプリケーション
毎の情報に基づいてスケジューリングを行えば、より良
いスケジューリングが行える。
つぎにスケジューラの階層化について説明する。
通常スケジューリングはO8のカーネル内で行なわれる
。よって、ユーザーのプロセスが再スケジューリングを
行ってもらうためにはカーネルへのシステム呼出しを行
う必要がある。しかし、O8側のスケジューラではユー
ザーのアプリケーション毎の木目細かなスケジューリン
グは不可能である。また、O8のカーネルとユーザーの
プロセスが多くのデータを共有すると、それを通知しあ
う手順が複雑になり、オーバーヘッドも増大する。さら
に、システム呼出しそれ自身のオーバーヘッドがかなり
重たいので、軽くプロセスの切り換えを行うのは難しい
。そこで、スケジューラを階層化して、従来の実プロセ
ツサを割り付けるためのスケジューラをカーネル・スケ
ジューラと呼び、その制御下にユーザー・スケジューラ
を設ける(第10図参照)。ユーザー・スケジューラは
同一のアプリケーションを協調して処理するプロセス・
グループ毎に設けられ、スケジューリング方式はユーザ
ーが処理に応じて決定できる。カーネル・スケジューラ
は実プロセツサ全体の管理を行ない、プロセス・グルー
プ毎にまとめて実プロセツサを割り付ける。ユーザー・
スケジューラはグループに割当てられたプロセッサ内で
のスケジューリングを実行する。また、ユーザー・スケ
ジューラはカーネル側(カーネル・モード)ではなくユ
ーザー側(ユーザー・モード)で走る。そこで、プロセ
ス切り換えの際、システム呼出し等のオーバーヘッドが
なく、効率が向上する。
プロセス切り換えの条件が成立した場合、ユーザー・ス
ケジューラに制御を渡し、そのプロセス・グループに適
したスケジューリング・アルゴリズムで次に割当てるべ
きプロセスを選び、そのプロセスに制御を渡す。これに
より、システム呼出しのオーバーヘッドなしにプロセス
をグループ内で切り換える。第11図はグループ八が条
件[31でユーザー・スケジューラ使ってプロセス切り
換えを行う例を示している。
カーネル・スケジューラは各プロセス・グループからプ
ロセッサの要求台数を受け取り、なるべく要求を満たす
ようにスケジューリングを1テう。
カーネル・スケジューラはタイム・シェアリングのため
のタイマ割り込み時または周辺装置の入出力を伴うシス
テム呼出し時またはユーザー・スケジューラからのプロ
セッサ資源の追加要求・返還時に起動する。カーネル・
スケジューラによるスケジューリングの結果、空きプロ
セッサが必要になった場合は優先度の低いプロセス・グ
ループのプロセッサを取り上げる(プリエンブトする)
同期におけるプロセス切り換えの条件判断をハードウェ
ア化して、割り込みで条件成立をプロセッサに通知する
場合、この割り込みでユーザー・スケジューラが起動す
るようにしておく。実行モードにカーネル側とユーザー
側の区別があるプロセッサでは割り込み後はカーネル側
に制御が切り替わる。このような従来型のプロセッサを
使う時は、この割り込み時にはなるべくオーバーヘッド
なしにユーザー側に制御を返す必要がある。この点に関
し、積極的に以下のように割り込み機能を階層化したプ
ロセッサを用意すれば、オーバーヘッドの少ないユーザ
ー・モード内の割り込みが行える。優先度の違う外部割
り込みをプロセッサに用意し、優先度の低い外部割り込
みの内のいくつかにユーザー・モードの割り込みを設け
る。つまり、割り込みが発生したらユーザーが設定した
ルーチンにユーザー・モード内で制御を移す。残りの外
部割り込みは従来通りカーネル・モードへの割り込みで
ある。また、ユーザー・モードの割り込みは割り込みの
マスクの切り換え(割り込み許可・不許可の切り換え)
でユーザー側で自由にできる。このユーザー・モードの
割り込みを同期機構からの割り込みや同じグループ内の
プロセッサへの非同期の通信に使うと、カーネルに制御
が移行しないのでオーバーヘッドを減らすことができる
。同期機構がらの割り込みでは直接ユーザー・スケジュ
ーラに制御が移るようにしておく。
E、2.具体的構成例 つぎに同期機構の具体的構成例について述べる。なおビ
ジー・ウェイトの処理のオーバーヘッドを減らすため、
プロセス切り換えの条件判断はハードウェアで行う。ス
ケジューラはE、1゜3、節に従って階層化されたもの
がソフトウェアで実現されているとする。ここでは主に
同期機構のハードウェア側とこれを用いるビジー・ウェ
イトの処理について述べる。
第12図に全体構成を示す。この図においてデータ通信
路は共有バス1とした。プロセッサCPUI、CPU2
、=CPUn毎に同期コントローラSCI、SC2、=
SCnが設けられ、同期コントローラ間はプロセッサ台
数分の信号線を持つ同期信号バス(ブロード・キャスト
型の信号線)2で結合されている。各プロセッサと同期
コントローラの間はコントローラ内のレジスタやフラグ
を読み書きするためのデータ線とコントローラからプロ
セッサへの割り込み線(前出のユーザー・モードの割り
込み)で結合している。
第13図に同期コントローラSCIの構成を示す。なお
他の同期コントローラの構成も同様である。この図にお
いて同期コントローラSC1、SC2、・・SCn毎に
同期信号バス上の特定の一本の信号線が割り当てられて
おり、その信号線に対してのみ信号(”○”か“1“の
2値)を出力できる。この出力はコントローラ内の同期
待ち出力フラグ(SOF)またはバリア同期用同期待ち
出力フラグ(BSOF) ニ対応シテおり、SOF (
マ;’Lt B50F)カセットされると信号線に”1
”が出力され、SOF (B5OF)がリセットされる
と”00が出力される。初期状態としてSWF、BSW
Fはリセットされており、プロセッサが共有メモリ4を
介しての同期待ちのループに入るまえにSOF (BS
OF)をセットし、ループを抜けるとリセットするよう
にプログラミングする(第9図参照)。これにより、同
期待ち状態のプロセッサに対応する同期信号バスの信号
線は総て1になる。また、同期コントローラ内には各同
期信号線に各ビットが対応するグループ・レジスタ3が
あり、自分と同じグループに属するコントローラの対応
するビットに′°1°°がスケジューラによってセット
されている。これにより、同期コントローラは自分の属
するグループのプロセッサが同期待ち状態にあるかどう
か区別できる。本同期コントローラは2つの動作モード
を持っており、モード1は(1)の問題に対応し、モー
ド2は(2)の問題とバリア同期における(1)の間M
(条件[3])に対応している。同じグループ内では一
時点にはどちらか一方のモードしか選択できないが、グ
ループが異なればモードは異なっても構わない。モード
の切り換えはコントローラ内のレジスタ(MODE)で
行なわれる。
グループで共通なレジスタやフラグは共有バスを通して
同時に書き替えることができる。つまり、スケジューラ
が共有バスにグループを特定した同期コントローラへの
命令を出力でき、それによってグループ内のコントロー
ラのレジスタが書き替わる。同様にしてスケジューラは
自分が動作しているプロセッサ以外に接続しているコン
トローラのレジスタも変更できる。このようにスケジュ
ーラによって設定されるレジスタ類は第13図ではグル
ープ・レジスタ3、MODE、υM、 K)4、PRQ
7ラグ、TVPSI、TVPS2、MPRQ 75グ、
MNWR7ラグ、PCOt]NTである。この内υ14
. KMはユーザー・スケジューラとカーネル・スケジ
ューラのための割り込みマスクで、これが一方でもセッ
トされるとプロセッサへの割り込みが議止される。
ユーザー・スケジューラはtJM f!けを変更できる
。当然、カーネル・スケジューラは総てのレジスタとフ
ラグを変更できる。PROフラグ、TVPSI、TVP
S2、MPRQ7ラグ、MNWR7ラグはプロセッサ資
源に関する情報を格納するレジスタ類である。PRqフ
ラグ、MPRQフラグ、MNWRフラグはそれぞれE、
1.2.節(7) #PQR,$1)iPRQ、 朴N
vRニ対応しており、計数がOであればフラグはリセッ
ト、計数がO以外ではフラグがセットされる。TVPS
I、CマタハTVPS2)  ハ条件[11、[2]、
[41、〔51で#MvCの数と比較すべき数を設定す
るためのレジスタである。例えば、条件[11、[2]
の検出にはこれを仰GCに設定する。PCOUNTはカ
ーネルによるグループ内のプロセスのプリエンブトの発
生回数を計数するカウンタである。カーネル・スケジュ
ーラがプリエンブトの際に1?!けカウント・アップを
行ない、ユーザー・スケジューラがプリエンブトに対す
る処理が済むとカウント・ダウンさせる。これにより、
プリエンブトの発生をコントローラが把握し誤動作を防
ぐ。
まず、モード1の動作をのべる。同期コントローラ内に
は前述のようにプロセッサ資源に関する情報を格納する
レジスタ類があり、スケジューラにより値がセットしで
ある。$114Wcについては同期コントローラが同期
信号バスを監視して常時把握している。システムの状態
について前出の[11〜[51条件のチェックをハード
ウェアで1テない、条件を満たすとプロセッサに割り込
み信号を出力し、O8によるプロセスの再スケジューリ
ングを要求する。
次に、モード2の動作について述べる。同期コントロー
ラ内に前出のレジスタやフラグの他に読出し専用のバリ
ア同期成立フラグ(BF)が存在する。但し、スケジュ
ーラからは副作用なしに読み書きが可能である。このB
FフラグはMNVRフラグがリセッ)  (” O’I
 テ、Pc0tlNT カOテ、且つ自分の属するグル
ープの総てのプロセッサが同期待ち状態のときに1°゛
にセットされる。そして、このフラグが値パ1°“とし
てプロセッサから読み出されると、コントローラは以下
の動作後BFフラグを自動的にリセットする。まず、自
分の同期信号線とB50FをO′°にして、)4PRQ
フラグが°l OI”でない場合コントローラ内のMN
VRフラグを′°1°“にセットする。この後、BFフ
ラグをリセットする。プログラムはこのBFフラグを使
って待ち合わせを行う。また、モード1ではB50Fを
セットして同期信号線を°゛1“にしているが、このモ
ードではB50Fの自動リセット同様にBFフラグの同
期成立後最初の読出しで自動的にセットできるのでビジ
ー・ウェイト処理内でセットする必要はない。同様に、
PWCBのカウント・アップも自動化できる。結局、待
ち合わせの処理は第14図のフローチャートのようにな
る。スケジューラによるプロセスの生成削除の際の誤動
作を防ぐため以下のように制御する。例えば、バリア同
期に参加するプロセスの生成時はコントローラ内のMN
WRフラグに1゛°を設定しておき、割り込みは禁止し
ておく、そしてプロセスが総て生成された後に正しいM
NWRフラグを設定し、割り込みを許可する。また、同
期コントローラは[3]の条件のチェックを行う。条件
が成立するとプロセスを切り換えさせるためプロセッサ
に割り込みを発生させる。但し、PCOllHTがO以
外のときも#)INWRが0でない場合と同じに扱い、
誤動作を防ぐ。
同期コントローラ内のレジスタはプロセス切り換え発生
毎に適宜更新され、プロセスが入替えられるプロセッサ
の同期コントローラのSOF、B50F。
BFJNWRフラグ(BFはスケジューラからは自動セ
ット・リセット等の副作用動作を伴わずに読み書き出来
る)等は入替え前の値が退避され、再びそのプロセスが
割り付けられた際に、再設定される。
F0発明の詳細 な説明したようにこの発明によれば、マルチプロセッサ
・システム上で同期を取りながら走るプロセスが同時に
実プロセツサに割り付けられている場合は非常に軽く、
プロセッサ資源の台数の制限とスケジューリングの都合
で同時に割り付けられない場合でも効率よくプロセッサ
資源を使える同期が実現できる。
【図面の簡単な説明】
第1図は従来のプロセスのプロセッサへの割当てを説明
する図、第2図ないし第5図はこの発明の一実施例で採
用する再スケジュール要求の条件を説明する図、第6図
は上述一実施例を説明するフローチャート、第7図は第
6図例に対応する従来の動作を説明するフローチャート
、第8図、第9図および第10図は第6図例の変形例を
示す図、第11図は第10図変形例を説明する図、第1
2図および第13図は第6図例の具体的な構成例を示す
ブロック図、第14図は第13図を説明するフローチャ
ートである。 1・・・共有バス、2・・・同期信号バス、4・・・共
有メモリ、CPU・・・プロセッサ、SC・・・同期コ
ントローラ。

Claims (9)

    【特許請求の範囲】
  1. (1)複数のプロセッサおよび共有メモリを具備するマ
    ルチプロセッサ・システムにおいて各プロセスが同期待
    ち状態に進むときに、上記共有メモリに記憶された同期
    変数をチェックし、同期が成立しているときには同期待
    ち状態を終了し、同期が未成立のときには同期待ち状態
    を継続するマルチプロセッサ・システムのプロセス同期
    方法において、 上記プロセスの各々が同期待ち状態に進むときに、さら
    に、 上記共有メモリに記憶されているプロセス同期に関連す
    る所定の情報をチェックし、同期の成立の可能性に関す
    る所定の条件が成立しているかどうかを判別するステッ
    プと、 上記条件が成立すると判別されたときに同期待ち状態を
    継続するステップと、 上記条件が未成立であると判別されたときに再スケジュ
    ールを要求するステップと実行することを特徴とするマ
    ルチプロセッサ・システムのプロセス同期方法。
  2. (2)複数のプロセッサでそれぞれ実行されているプロ
    セスの間の同期を、共有メモリに記憶されている同期変
    数を上記プロセスの各々がチェックして実行するマルチ
    プロセッサ・システムにおいて、 上記プロセッサの各々に、当該プロセッサで実行されて
    いるプロセスが同期待ち状態に進むときに、上記共有メ
    モリに記憶されているプロセス同期に関連する所定の情
    報をチェックし、同期の成立の可能性に関する所定の条
    件が成立しているときに再スケジュール要求を送出する
    手段を設け、さらに、 上記再スケジュールの要求に基づいてプロセスの再スケ
    ジュールを実行するスケジュール手段を有することを特
    徴とするマルチプロセッサ・システム。
  3. (3)複数のプロセッサでそれぞれ実行されているプロ
    セスの間の同期を共有メモリに記憶されている同期変数
    を各プロセスがチェックして実行するマルチプロセッサ
    ・システムにおいて、 上記プロセッサの各々に、 上記共有メモリに記憶されているプロセス同期に関連す
    る所定の情報を受け取って記憶する記憶手段と、 当該プロセッサで実行されているプロセスが同期待ち状
    態に進むときに、上記記憶手段に記憶されている上記情
    報をチェックし、同期の成立の可能性に関する所定の条
    件が成立しているときに再スケジュール要求を送出する
    手段とを設け、さらに、 上記再スケジュールの要求に基づいてプロセスの再スケ
    ジュールを実行する手段を有することを特徴とするマル
    チプロセッサ・システム。
  4. (4)上記所定の情報はプロセスのプロセッサへの割り
    当てに関する情報、プロセスのグループ分けに関する情
    報およびプロセスの同期に関する情報とした特許請求の
    範囲第2項または第3項記載のマルチプロセッサ・シス
    テム。
  5. (5)上記スケジュール手段はオペレーティング・シス
    テムとは別個にアプリケーションごとに設けられ、再ス
    ケジュールの要求時に制御をオペレーション・システム
    に移行させないようにした特許請求の範囲第3項記載の
    マルチプロセッサ・システム。
  6. (6)上記再スケジュール要求を送出する手段は、対応
    するプロセッサに対して優先度の低い外部割り込み信号
    を送出し、この優先度の低い外部割り込み信号に基づい
    て、上記オペレーティング・システムとは別個にアプリ
    ケーションごとに設けられた対応するスケジュール手段
    が再スケジュールを実行し、より高い優先度の外部割り
    込み信号で上記オペレーティング・システムへ制御を移
    管するようにした特許請求の範囲第5項記載のマルチプ
    ロセッサ・システム。
  7. (7)上記プロセッサはそれぞれプライベート・キャッ
    シュを有し、それぞれのプライベート・キャッシュを介
    して共有メモリの内容をアクセスする特許請求の範囲第
    2項ないし第6項記載のマルチプロセッサ・システム。
  8. (8)複数のプロセッサで実行されているプロセスの間
    のバリア同期を実行するマルチプロセッサ・システムに
    おいて、 上記プロセッサの各々に、 上記共有メモリに記憶されているプロセス同期に関連す
    る所定の情報を受け取って記憶する第1の記憶手段と、 当該プロセッサとバリア同期される他のプロセッサを指
    定する第2の記憶手段と、 他のプロセッサの各々から同期待ちに関する信号を受け
    取る同期待ち状態信号受信手段と、当該プロセッサで実
    行されているプロセスが同期待ち状態に進むときに、上
    記第1および第2の記憶手段に記憶されている情報およ
    び上記同期待ち状態信号受信手段の出力に基づいて、当
    該プロセッサとバリア同期される他のプロセッサの中に
    同期待ちでなく、かつ実行待ちであるものがあり、その
    ままではバリア同期が成立しない場合であるかどうかを
    判別し、成立しないときは再スケジュール要求を送出す
    る手段とを設け、さらに、上記プロセッサの各々の同期
    待ち状態信号受信手段を相互に接続する同期信号バスと
    、 上記再スケジュールの要求に基づいてプロセスの再スケ
    ジュールを実行する手段を有することを特徴とするマル
    チプロセッサ・システム。
  9. (9)複数のプロセッサでそれぞれ実行されているプロ
    セスの間の同期を共有メモリに記憶されている同期変数
    を各プロセスがチェックして実行するマルチプロセッサ
    ・システムにおいて、 上記プロセッサの各々に、 上記共有メモリに記憶されているプロセス同期に関連す
    る所定の情報を受け取って記憶する第1の記憶手段と、 当該プロセッサとバリア同期される他のプロセッサを指
    定する第2の記憶手段と、 他のプロセッサの各々から同期待ちに関する信号を受け
    取る同期待ち状態信号受信手段と、当該プロセッサで実
    行されているプロセスが同期待ち状態に進むときに、上
    記第1および第2の記憶手段に記憶されている情報およ
    び上記同期待ち状態信号受信手段の出力に基づいて、当
    該プロセッサとバリア同期される他のプロセッサの中に
    同期待ちでなく、かつ実行待ちであるものがあり、その
    ままではバリア同期が成立しないという条件および他の
    同期の成立の可能性に関する所定の条件が成立している
    ときに再スケジュール要求を送出する手段とを設け、さ
    らに、 上記プロセッサの各々の同期待ち状態信号受信手段を相
    互に接続する同期信号バスと、 上記再スケジュールの要求に基づいてプロセスの再スケ
    ジュールを実行する手段を有することを特徴とするマル
    チプロセッサ・システム。
JP1277334A 1989-10-26 1989-10-26 マルチプロセッサ・システムおよびそのプロセス同期方法 Expired - Lifetime JPH0640324B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP1277334A JPH0640324B2 (ja) 1989-10-26 1989-10-26 マルチプロセッサ・システムおよびそのプロセス同期方法
EP19900311794 EP0425320A3 (en) 1989-10-26 1990-10-26 Multiprocessor system and process synchronisation method therefor
US07/944,803 US5448732A (en) 1989-10-26 1992-09-14 Multiprocessor system and process synchronization method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1277334A JPH0640324B2 (ja) 1989-10-26 1989-10-26 マルチプロセッサ・システムおよびそのプロセス同期方法

Publications (2)

Publication Number Publication Date
JPH03144847A true JPH03144847A (ja) 1991-06-20
JPH0640324B2 JPH0640324B2 (ja) 1994-05-25

Family

ID=17582080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1277334A Expired - Lifetime JPH0640324B2 (ja) 1989-10-26 1989-10-26 マルチプロセッサ・システムおよびそのプロセス同期方法

Country Status (3)

Country Link
US (1) US5448732A (ja)
EP (1) EP0425320A3 (ja)
JP (1) JPH0640324B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968135A (en) * 1996-11-18 1999-10-19 Hitachi, Ltd. Processing instructions up to load instruction after executing sync flag monitor instruction during plural processor shared memory store/load access synchronization
WO2009122670A1 (ja) * 2008-04-03 2009-10-08 パナソニック株式会社 マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
JP2011039666A (ja) * 2009-08-07 2011-02-24 Hitachi Ltd バリア同期方法及び計算機
JP2015210813A (ja) * 2014-04-24 2015-11-24 富士通株式会社 同期方法
JP2020135524A (ja) * 2019-02-21 2020-08-31 株式会社デンソー 演算装置

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282583B1 (en) * 1991-06-04 2001-08-28 Silicon Graphics, Inc. Method and apparatus for memory access in a matrix processor computer
CA2172514C (en) * 1993-09-27 2000-02-22 Gary Hallmark Method and apparatus for parallel processing in a database system
JP2550897B2 (ja) * 1993-11-29 1996-11-06 日本電気株式会社 マルチプロセッサシステムのバリア同期装置
US5600822A (en) * 1994-04-05 1997-02-04 International Business Machines Corporation Resource allocation synchronization in a parallel processing system
US5560018A (en) * 1994-12-16 1996-09-24 International Business Machines Corporation Providing external interrupt serialization compatibility in a multiprocessing environment for software written to run in a uniprocessor environment
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US6487580B1 (en) * 1995-09-25 2002-11-26 International Business Machines Corporation Method and system for managing concurrently executable computer processes
DE19620622A1 (de) * 1996-05-22 1997-11-27 Siemens Ag Verfahren zur Synchronisation von Programmen auf unterschiedlichen Computern eines Verbundes
JP3532037B2 (ja) * 1996-07-31 2004-05-31 富士通株式会社 並列計算機
DE59701604D1 (de) * 1996-09-04 2000-06-08 Siemens Nixdorf Inf Syst Synchronisationsverfahren
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
US5875320A (en) * 1997-03-24 1999-02-23 International Business Machines Corporation System and method for synchronizing plural processor clocks in a multiprocessor system
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
US6615281B1 (en) * 2000-05-05 2003-09-02 International Business Machines Corporation Multi-node synchronization using global timing source and interrupts following anticipatory wait state
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
EP1459202A2 (en) * 2001-10-31 2004-09-22 Thermo CRS Ltd. A backtracking resources planning algorithm
JP2003263331A (ja) * 2002-03-07 2003-09-19 Toshiba Corp マルチプロセッサシステム
CA2419340A1 (en) * 2003-02-20 2004-08-20 Ibm Canada Limited - Ibm Canada Limitee Software barrier synchronization
US7418706B1 (en) * 2003-05-08 2008-08-26 Teradota Us, Inc. Rescheduling table scan transactions
US20040267897A1 (en) * 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US7937709B2 (en) 2004-12-29 2011-05-03 Intel Corporation Synchronizing multiple threads efficiently
US7735089B2 (en) * 2005-03-08 2010-06-08 Oracle International Corporation Method and system for deadlock detection in a distributed environment
US7895596B2 (en) * 2005-09-13 2011-02-22 Hewlett-Packard Development Company, L.P. Processor assignment in multi-processor systems
US20070234033A1 (en) * 2006-03-28 2007-10-04 Bade Steven A Method for establishing secure distributed cryptographic objects
US8065681B2 (en) * 2007-10-12 2011-11-22 International Business Machines Corporation Generic shared memory barrier
JP2013210853A (ja) * 2012-03-30 2013-10-10 Fujitsu Ltd 情報処理装置、同期処理実行管理方法、及びプログラム
CN103377086A (zh) * 2012-04-27 2013-10-30 华为技术有限公司 用于异步多核系统操作共享资源的方法、装置及系统
US9652300B2 (en) * 2012-06-28 2017-05-16 Intel Corporation Systems, methods, and computer program products for preemption of threads at a synchronization barrier
JP6074932B2 (ja) * 2012-07-19 2017-02-08 富士通株式会社 演算処理装置及び演算処理方法
KR101501129B1 (ko) * 2013-08-23 2015-03-12 주식회사 고영테크놀러지 기판 검사 장치
JP6164046B2 (ja) * 2013-10-31 2017-07-19 富士通株式会社 情報処理システム、管理装置、管理方法
CN112052099A (zh) * 2020-09-03 2020-12-08 上海兆芯集成电路有限公司 微处理器及其处理核心的同步方法
CN112291029B (zh) * 2020-11-02 2024-05-28 温州大学 一种系统同步方法
CN112395095A (zh) * 2020-11-09 2021-02-23 王志平 一种基于cpoc的进程同步方法
CN112379981A (zh) * 2020-11-12 2021-02-19 中国人民解放军海军工程大学 面向分布式实时仿真任务的无锁同步方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for 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
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
GB8309770D0 (en) * 1983-04-11 1983-05-18 Inmos Ltd Microcomputer
WO1989000734A1 (en) * 1987-07-21 1989-01-26 Stellar Computer Inc. Detecting multiple processor deadlock
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968135A (en) * 1996-11-18 1999-10-19 Hitachi, Ltd. Processing instructions up to load instruction after executing sync flag monitor instruction during plural processor shared memory store/load access synchronization
WO2009122670A1 (ja) * 2008-04-03 2009-10-08 パナソニック株式会社 マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
JP2011039666A (ja) * 2009-08-07 2011-02-24 Hitachi Ltd バリア同期方法及び計算機
JP2015210813A (ja) * 2014-04-24 2015-11-24 富士通株式会社 同期方法
JP2020135524A (ja) * 2019-02-21 2020-08-31 株式会社デンソー 演算装置

Also Published As

Publication number Publication date
US5448732A (en) 1995-09-05
EP0425320A3 (en) 1991-07-03
EP0425320A2 (en) 1991-05-02
JPH0640324B2 (ja) 1994-05-25

Similar Documents

Publication Publication Date Title
JPH03144847A (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
US9201689B2 (en) Software emulation of massive hardware threading for tolerating remote memory references
EP1027645B1 (en) Thread switch control in a multithreaded processor system
US7698540B2 (en) Dynamic hardware multithreading and partitioned hardware multithreading
EP1029269B1 (en) Method and apparatus for selecting thread switch events in a multithreaded processor
JP5366552B2 (ja) 集中特化したマルチタスク及びマルチフロー処理をリアルタイム実行する手法及びシステム
WO2002069174A1 (fr) Procede d'execution en parallele de processus et ordinateur a processeurs multiples
JP2005284749A (ja) 並列処理コンピュータ
EP1027650A1 (en) Method and apparatus for altering thread priorities in a multithreaded processor
US8413163B2 (en) Program control device including per-timeslot switching of thread execution
US8321874B2 (en) Intelligent context migration for user mode scheduling
WO1999021088A1 (en) An apparatus and method to guarantee forward progress in a multithreaded processor
WO1999021082A1 (en) Method and apparatus to force a thread switch in a multithreaded processor
JPH1027108A (ja) スレッド実行方法
TWI603198B (zh) 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
US7565659B2 (en) Light weight context switching
US20160179429A1 (en) Controlling memory access conflict of threads on multi-core processor with set of highest priority processor cores based on a threshold value of issued-instruction efficiency
US6721948B1 (en) Method for managing shared tasks in a multi-tasking data processing system
WO2012016472A1 (zh) 多核CPU加载Linux操作系统的方法及系统
JPS616741A (ja) 階層型多重計算機システム
CN115964150A (zh) 一种基于双实时内核的业务处理方法、系统、设备及介质
TWI548994B (zh) 以複數個引擎支援指令序列的執行之互連結構
JPH02210542A (ja) 仮想計算機システムにおける実行制御方式
CN115098230A (zh) 管理线程的方法及装置
JP3862293B2 (ja) 情報処理方法とその装置