JPH0120466B2 - - Google Patents

Info

Publication number
JPH0120466B2
JPH0120466B2 JP58188203A JP18820383A JPH0120466B2 JP H0120466 B2 JPH0120466 B2 JP H0120466B2 JP 58188203 A JP58188203 A JP 58188203A JP 18820383 A JP18820383 A JP 18820383A JP H0120466 B2 JPH0120466 B2 JP H0120466B2
Authority
JP
Japan
Prior art keywords
processing
lock
arithmetic
interrupt
arithmetic processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP58188203A
Other languages
English (en)
Other versions
JPS6079460A (ja
Inventor
Kazunobu Fujiwara
Kunikazu Kawashima
Takashi Tobe
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP58188203A priority Critical patent/JPS6079460A/ja
Priority to US06/657,635 priority patent/US4663709A/en
Priority to FR8415397A priority patent/FR2553207B1/fr
Publication of JPS6079460A publication Critical patent/JPS6079460A/ja
Publication of JPH0120466B2 publication Critical patent/JPH0120466B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Description

【発明の詳細な説明】
発明の属する技術分野 本発明はマルチプロセツシングにおける情報処
理方式、具体的には複数の密結合多重演算装置間
での主記憶装置上に格納された共通データの参
照/更新を逐次化する制御方式に関する。 従来技術 主記憶装置を複数台の演算装置で共有し処理を
行うマルチプロセシングはシステムの処理能力の
向上と高信頼性を確保する点で効果のある処理方
式である。マルチプロセツシングのもとでは一元
的な処理を行うために複数の演算装置間での連絡
機能を必要とする。該機能の一つとして複数の演
算装置が主記憶上に格納された共通データを参
照/更新する場合、一方の演算装置が該データの
参照/更新を終了するまで、他方の演算装置の該
データの参照/更新を一時的に抑止する機構が必
要である。マルチプロセシングでは、演算装置間
で主記憶装置上にある共通データを競合して使用
するケースは随所にある。例えば、CPUとチヤ
ネルまたはCPUとCPUにおいてである。特に
CPUとCPUについて処理を逐次化する機構は2
つのタイプに分類できる。第1のタイプは第2図
に示されるようなサスペンド・タイプと呼ばれる
ものである。LOCKは一つのオペランドを有する
命令であり主記憶のある番地を指定する。この番
地は共用テーブル等のある特定のリソースに対応
づけられている。LOCK命令はそのオペランドに
より指定される番地の内容を取り出しそれの特定
ビツトを調べてもし“0”であればそのビツトを
“1”に変えて元のところへ格納し、LOCK命令
につづく命令を実行する。もし、そのビツトがす
でに“1”であれば、指定された番地の内容は変
えずに割込みを発生する。この割込みによつて管
理プログラムに制御が移り割込みが発生したタス
クの実行を中断(サスペンド)させて待ち(ウエ
イト)状態に置き、他のタスクに制御を移す。
UNLOCKはLOCK命令と対をなす命令であり、
オペランドに指定される番地の内容を取り出し、
それの特定ビツトを調べてもし“1”であればそ
のビツトを“0”に変えて元のところへ格納し割
込みを発生する。この割込みによつて管理プログ
ラムはこのリソースのためにウエイトしている。
タスクを実行可能状態に置いた後、割込みが発生
したタスクのUNLOCK命令につづく命令へリタ
ーンし実行を継続させる。もしその特定ビツトが
“0”であればエラーであるので割込みの発生に
よつて管理プログラムはこのタスクをアボードさ
せる等の処置を行うことができる。本例では第1
の演算装置5上で実行しているタスクがリソー
スAを先に確保したために、第2の演算装置6上
で実行に入つた状態が示されている。第2の演算
装置6はその間、他のタスクを実行しており遊び
はない。 オーバヘツドを少なくするために割込みをでき
るだけ発生させない方法も考案されている。
UNLOCK命令ではオペランドに指定される番地
の内容の特定ビツトを無条件に“0”に変えて元
のところに格納し割込みは発生させない。したが
つて、サスペンド・ロツクのタスクの実行開始
は、通常のタスクへの演算装置割当て(デイスパ
ツチング)と同じに扱われることになり、実行開
始した時点で再びサスペンド・ロツクとなる可能
性は存在する。その他にLOCK命令とUNLOCK
命令のオペランドにより指定される語(ロツク・
ワード)またはその特定ビツト(ロツク・ビツ
ト)は、対応するリソースが使用されているか否
かの情報だけでなく、使用待ちタスク数のカウン
タとする方法がある。カウンタ“0”が未使用、
“1”が使用中、“2”以上が使用待ちタスク数+
1を表わす。LOCK命令はカウンタに“1”を加
え結果が“2”以上ならば割込みを発生する。
UNLOCK命令はカウンタから“1”を減じ、結
果が“1”以上ならば割込みを発生する。割込み
によつて管理プログラムはそれぞれタスクをサス
ペンド・ロツクさせたり、ロツクによりウエイト
しているタスクから一つの再実行させたりする。
UNLOCK命令でカウンタ減算の結果が“1”以
上のケースが希れであれば割込みはかなり防ぐこ
とができる。さらに別の方法、LOCK命令と
UNLOCK命令では割込みを一切発生させずタス
ク自身に制御を任せてしまうことも考えられる。
すなわち、LOCK命令ではオペランドに指定され
るロツク・ビツトを調べ“0”であればそのビツ
トを“1”に変えて元のところへ格納し、固定数
番地先へ分岐し処理を続行する。もし“1”であ
ればLOCK命令につづく命令を実行する。この命
令から固定数番地先の直前までの一連の命令は一
定時間そのタスク自身の制御を放棄し後刻制御を
得てから再びLOCK命令へ分岐する動作をする様
なものを並べる。UNLOCK命令ではオペランド
に指定されたロツク・ビツトを無条件に“0”に
変えるだけで良い。なおロツク・ワードまたはロ
ツク・ビツトは“0”をロツク・オンとし“0”
以外をロツク・オフとして逐次制御することもで
き、これは以降の説明でも同様である。 ハードウエアの機構としては、LOCK命令と
UNLOCK命令であり、それぞれの動作過程が一
つの命令でできること、動作中は演算装置内蔵の
キヤツシユをバイパスすることそして途中に割込
みを一切許さないことが必要である。 サスペンドタイプの特徴としては、リソースを
確保している時間には方式上制限がない、演算装
置に待ちによる遊びがない、マルチプロセツシン
グだけでなくユニプロセツシングにもタスクで共
通に参照/更新されるリソース管理として使用で
きる点である。 第2のタイプはスピン・タイプと呼ばれるもの
であり、第3図に例を示す。スピン・タイプはサ
スペンド・タイプと同様にマルチプロセツシング
におけるタスク間でのリソースの逐次使用を制御
するのに広く利用できるが、スピン・ロツクの競
合は後述するように演算処置の並行処理性を減少
させることから、タスク自身を制御するノン・タ
スク部のルーチンで主として利用される。一連の
タスクあるいはルーチンを構成する手続きが演算
装置で実行されているときその軌跡をプロセスと
呼ぶ。 LOCK命令は二つのオペランドを有する命令で
ありそれぞれの主記憶のある番地を指定する。第
1オペランドの番地は、共用テーブル等のある特
定のリソースに対応づけられている。第2オペラ
ンドの番地は飛び先を指定する。LOCK命令は第
1オペランドにより指定されるロツク・ワード/
ビツトを調べてもしロツク・オフであればオンに
変えて元のところへ格納しLOCK命令につづく命
令を実行する。もしすでにロツク・ワード/ビツ
トがすでにロツク・オンであれば何も変えずに第
2オペランドの番地へ分岐する。ロツク・ワー
ド/ビツトの読み出しと書き込みは演算装置内蔵
のキヤシユをバイパスして行われ、命令動作途中
で割込みは起こらないようにしている。 UNLOCK命令はオペランドに指されるロツ
ク・ワード/ビツトを無条件にロツク・オフに変
える。 本例では第1の演算装置S上で実行しているプ
ロセスがリソースAを先に確保したため第2の
演算装置6上で実行していたプロセスmはB番地
へ分岐する。B番地は全ての演算装置共通のリソ
ース待ちルーチンの入口点であり再帰的プログラ
ム構造を有している。ここでは、一定時間リソー
スAが解放されるまでループし、解放されたなら
ば直ちにプロセスmへ制御を移す。プロセスmは
再度LOCK命令によつてリソースAを確保する。
一定時間待つてもリソースAが解放されなければ
エラーである。リソース待ちルーチンでLOCK命
令によつてリソースAが使用中かどうか調べるこ
とにすればプロセスmへ制御を移した時点で再度
LOCK命令を出す必要をなくすことができる。 スピン・タイプは演算装置自身が制御上ループ
して待ち合わせる、すなわちスピンするため利用
上幾つかの制約を付けるのが普通である。異常検
出のためにスピンしている時間を有限とするには
プロセスがリソースを確保している間を割込み禁
止とする必要がある。演算装置には割込み禁止で
連続して動作する時間に演算装置固有の処理性能
に見合う程度の時間制限を設けるのが普通である
のでスピンしている時間の最大値はその制限値ま
でである。一方の演算装置にてスピンしていたプ
ロセスが既に幾つかのリソースを確保していた場
合で、他方の演算装置でのプロセスがそのリソー
スを確保しようとした時ロツク競合よりデツトロ
ツクになる可能性を有する。これを避けるため、
スピンタイプではロツクの確保と解放の順番に一
定の規則を設けている。例えば、リソース名のア
ルフアベツト順にロツクを確保しかつ解放する等
である。スピンタイプはユニプロセツシングでは
意味を持たないがリソース確保中割込み禁止とし
ている点でユニプロセツシングにおいてスピンせ
ずに参照/更新を逐次化する手段はある。 サスペンド・タイプとスピン・タイプの中には
ハードウエア機構であるLOCK命令とUNLOCK
命令をフアームウエアで制御し、ソフトウエアに
対してはENQ/DEQマクロ命令、あるいはセマ
フオ制御命令としてみせリソース使用の逐次操作
を行うものもある。 マルチプロセツシングにおける逐次化手法の最
大の問題点は、複数の演算装置のうち一方がロツ
クを確保したまま停止したとき他方の演算装置が
ループないしウエイト状態となり、結局システム
全体の処理が進行しなくなつてしまうことであ
る。 一般に、タスク実行途中の演算装置停止は、他
の演算装置上の管理プログラムによつて該タスク
をアボートするか、該タスクの処理上都合の良い
区切り点まで逆に戻し、再実行させることを行
う。該タスクがロツクを確保中であれば、演算装
置停止時に他の演算装置を使つて矛盾なく処理を
行うことは非常に難しい。タスクをアボードさせ
る場合は、アボード時の後処理で区切り点まで逆
に戻す場合は戻す前処理で、ロツクを解放すると
ともに該ロツク・ワード/ビツトに対応するリソ
ースの状態を確保以前にまで戻さなければならな
いからである。管理プログラムの基本部であるル
ーチンではアボートはシステム・ダウンを意味
し、かつ、他のプログラムによつて処理を戻すと
いうことすらできないので通常システム−ダウン
としている。 このために、マルチプロセツシングでは、タス
クあるいはルーチンにリソースを使用するロツク
操作の段階で参照/更新前の該リソースの情報を
自己管理のもとで適当な主記憶上の領域に退避す
ることと前記停止による回復処理、すなわち、該
リソースを退避した情報によつて使用前の状態に
戻し、ロツクを解放する機能を入れ、一方の演算
装置停止時に、他方の演算装置上で次々と前記タ
スクあるいはルーチンの回復処理を行なわせるこ
とによつて正しく処理を継続させる方式が考案さ
れている。 しかし、従来の方式では逐次処理の必要な全て
のリソースに対してロツク操作を行う全てのタス
クあるいはルーチンのモジユールに前記考慮を行
なわせなければならずプログラムの量的規模が大
きくなる点と、リソースを使用前の状態に戻すこ
とができない場合もあり、完全には回復処理がで
きないという欠点がある。 発明の目的 本発明の目的はロツク操作による共用リソース
の逐次化使用の機構を有するマルチプロセシング
のもとで、マルチプロセシングを構成する如何な
る演算装置が、如何なる処理をしていても任意の
時点に任意の演算装置をマルチプロセシング全体
の処理を間断なく継続させることを前提として停
止させることができるようにした密結合多重演算
装置における制御方式を提供することにある。 発明の構成 本発明の方式は共通プログラムおよび共通デー
タを記憶する主記憶装置と、 この主記憶装置の前記共通プログラムの参照お
よび前記共通データの参照/更新を行なう第1の
演算処理装置と、 前記第1の演算処理装置による前記主記憶装置
の前記共通プログラムの参照および前記共通デー
タの参照/更新中前記共通プログラムの参照およ
び前記共通データの参照/更新の終了を待ち合わ
せる第2の演算処理装置とを備えた密結合多重演
算装置における制御方式において、 演算処理装置が内部割込みなどの予め決められ
た条件により処理を停止した場合に、実行中の処
理を再開するために最低限必要な情報の全てを記
憶する第一の装置記憶手段と、前記演算処理装置
が処理を停止し、他の演算処理装置に停止を通知
したことを記憶する停止通知記憶手段と、前記他
の演算処理装置が停止通知を受け取るか、または
予め決められた時間内に前記主記憶装置の前記共
通プログラムの参照および前記共通データの参
照/更新が終了しない場合に、処理を中断する
が、その中断した処理を再開するために最低限必
要な情報の全てを記憶する第二の装置記憶手段
と、前記第一の装置記憶手段または前記第二の装
置記憶手段により記憶された情報により停止また
は中断された処理を再開する処理再開手段とを有
することを特徴とする。 発明の実施例 次に本発明について図面を参照して詳細に説明
する。 第1図を参照すると本発明の一実施例は、主記
憶装置1、複数の演算処理装置3、チヤネル制御
装置4、およびこれら各装置1〜3に接続される
構成制御装置2を含む。 このシステムは演算装置3とチヤネル制御装置
4との間で主記憶装置1の参照を逐次化する機構
を有しており、かつ複数の演算装置3の間でも前
記逐次化の機構を有していて複数の演算装置に関
する前記機構はLOCK/UNLOCKと呼ぶ二つの
命令からなり、複数の演算装置3のうちの一つを
緊急に停止させる必要が発生したとき停止すべき
演算装置へ内部割込を発生させる機構と、停止す
る演算装置のSTOP命令実行により複数の演算装
置の一つに停止したことを知らせる外部割込を発
生させる機構とを有する。前記内部割込が発生し
た場合特定演算装置の処理が中断したことを主記
憶装置上に記憶し、中断した時点の演算装置のレ
ジスタ情報を主記憶装置上に退避し停止する演算
装置を仮想化することを主記憶装置上に記憶す
る。STOP命令の実行により、前記演算装置は停
止するとともに他の一つの演算装置に外部割込を
発生させ該外部割込を受付けた演算装置は、仮想
化した演算装置を肩替りする実演算装置であるこ
とを主記憶装置上に記憶し、直ちに仮想演算装置
の実行に入る。すなわち、自らの処理を中断させ
るために、処理が中断したことを主記憶装置上に
記憶し、中断した時点の演算装置のレジスタ情報
を主記憶上に退避し、仮想演算装置の処理の中断
が解除されたことを主記憶上に反映し、中断した
時点の仮想演算装置の退避したレジスタを実演算
装置に復元することによつて処理を再開させる。
これ以降、仮想化された演算装置と肩替りする実
演算装置の間でロツク競合が発生した時点で後か
らロツクしてループまたはウエイトした演算装置
の処理を前記手段で中断させ先にロツクしたまま
にて中断していた演算装置を前記手段で再開処理
させデツドロツクを回避しつつ全体の処理を継続
させる。一つの演算装置で二つの演算装置の処理
をロツク競合の状況によつて次々と切替して処理
を進行するのは管理プログラムにて演算装置をデ
イスパツチングする時点で処理を中断している演
算装置が無くなるまでとする。前記処理と関係の
ない第三以上の演算装置間のロツク競合は、それ
らの間で解決させるのは当然として、たとえ前記
演算装置とロツク競合しても前記切替は起こさず
UNLOCKされるまでループまたはウエイトさせ
るだけである。なお、前記内部割込みから外部割
込みまでの処理を専用処理装置にて実施しても良
く、このことは本発明を特に限定するものでな
い。 以下本発明の動作につき詳細に説明する。 第4A図−第4C図は本発明の一実施例の動作
をフローチヤートにて示した図である。
【表】 番号
領域(V) 仮想演算装置Vを実現するために実演算装置の
レジスタ情報(R)を退避・復元する記憶上に存
在する領域。これは仮想演算装置ごとにある。 再開要求フラグ(V) 仮想演算装置Vが処理再開を要求する主記憶上
に存在するフラグ。これは仮想演算装置ごとにあ
る。 遷移中フラグ(V) 仮想演算装置Vが他の仮想演算装置と主記憶上
の共通データを参照していると混乱が生じる可能
性がある期間を示すフラグであり主記憶上に存在
する。これは仮想演算装置ごとにある。 V〓とはVでない他の仮想演算装置の意。−は任
意の数。 表1は該フローチヤート中に出現する特別な記
号を説明したものである。すなわち、スピン・タ
イプの機構を有するマルチプロセシングのもとで
何らかの原因で特定の演算装置、第4A図の例に
おいては番号1の実演算装置を緊急に停止させる
必要が発生した場合、停止させることを唯一の目
的とする内部割込みが演算装置1,1に発生し、
実行中のプロセス,1を中断させ管理プログラ
ム内の割込処理ルーチンの特定の入口点に飛
ぶ。該内部割込みはプロセス,1が割込禁止状
態であつても受付けることのできるものである。
停止させる動機としては人手による押ボタンでも
良いし、演算装置1,1のハードウエアエラーチ
エツク機構と連動させたものとすることもでき
る。割込処理ルーチンでは停止を目的とする内部
割込みであることを確認した後レジスタ情報1を
領域1に退避し、再開要求フラグ1をセツトす
る。再開要求フラグは仮想演算装置で実行中のプ
ロセスが中断されていて実行待ちであることを示
し実演算装置を与へ仮想演算装置に対応するレジ
スタ情報を復元すればいつでも中断プロセスを再
開できる状態にあることを意味している。レジス
タ情報は割込処理ルーチンの入口点で退避するこ
とから、中断プロセスに関するものとなるが命令
カウンタや制御用レジスタ類は管理プログラムの
出口点で中断プロセスにリターンできる値に変更
しておく必要がある。該割込処理ルーチンでは最
後に遷移中フラグ1をセツトした後、STOP命令
を発行して停止する。遷移中フラグは複数の演算
装置間で主記憶上に格納された共通データを競合
して参照したとき一方の仮想演算装置がスピン・
ロツクでループしているのを解除し実演算装置を
競合していた他方の仮想演算装置へ明け渡すかど
うかの判定に使用するためのものである。STOP
命令は一つのオペランドを有し主記憶のある番地
を指す。この番地にはSTOP命令を発行したこと
を通知すべき実演算装置の番号が格納されてい
る。STOP命令の実行によつて発行元演算装置
1,1は直ちに停止し、演算装置2,2に発行し
たことを通知する外部割込みを発生させる。外部
割込みは演算装置が割込み禁止状態では保留され
割込許可状態のときに受付けられる。第4A図の
例ではプロセスm,2実行途中割込まれ、割込処
理ルーチンの入口点へ飛ぶ。一般に外部割込の
受付けは入出力割込等全てまとめて行うのが通常
であるから受付け後停止の通知であることを確認
したらすぐ割込処理ルーチンの入口点へ飛ぶよ
うにしても良い。割込処理ルーチンではレジスタ
情報2を領域1へ退避した後再開要求フラグ2と
遷移中フラグ2をセツトする。これによつて演算
装置2,2で実行していたプロセスm,2は、後
に実演算装置を与へられればいつでも再開できる
状態で中断したことになる。割込処理ルーチンで
はこの後、演算装置1,1で中断していたプロセ
スの実行を再開させる処理に入る。どの実演算
装置が停止したかを知るには、特定の主記憶上の
番地に演算装置1,1が停止命令を発行する前に
番号を格納して置くことで十分である。該番号は
1であるから再開要求フラグ1をリセツトし、領
域1よりレジスタ情報を番号2の実演算装置へ復
元することによつてプロセス,1へリターンす
る。演算装置2,2で実行していたプロセスm,
2を中断させてまでプロセス,1を再開させる
理由は演算装置1,1へ割込んだ内部割込みがプ
ロセス,1による割込禁止状態でも受付けられ
る点にあり処理上の優先度を配慮したことによ
る。第4A図では、遷移中フラグは2台の仮想演
算装置、つまり、停止した演算装置と停止したこ
とを通知された演算装置だけにつきセツトされる
が、これは演算装置の構成が3台以上有していて
も、前記2台の仮想演算装置と1台の実演算装置
のみをマツピングさせることで処理の単純性を追
求したことによる。 本実施例では演算装置1,1での内部割込み受
付けから停止命令発行まで演算装置1,1自身で
処理しているが、停止の動機が演算装置1,1の
ハードウエア障害の場合、演算装置1,1を引き
続き動作させることが好ましくない、または動作
させることができない状況もある。この場合演算
装置1,1での内部割込み受付けからSTOP命令
発行までの処理を別の専用演算装置に代行させる
ことで解決でき、本発明の効果を限定するもので
はない。 次に第4B図の例である演算装置R,Vで実行
しているプロセスn,VがLOCK命令を実行する
と第1オペランドによる指されるリソースAが調
べられ未使用であれば使用中としてLOCK命令の
次の命令へ進ませ、既に使用中であればアドレス
Zへジヤンプする。アドレスは管理プログラム内
のウエイトルーチンの入口点であり、従来技術で
は該リソースAが未使用になるまで演算装置R,
V上にてスピン・ロツクの閉ループを形成してい
たが、本発明においては該リソースAがスピン・
ロツクしている他の仮想演算装置に遷移中フラグ
がオンのものがあり、かつその演算装置で該リソ
ースAを使用中の場合スピン・ロツクの閉ループ
を脱出させるようにしている。ただしスピン・ロ
ツクしている仮想演算装置自身の遷移中フラグが
オフである場合、再びスピン・ロツクの閉ループ
に飛び込む。すなわち、遷移中フラグがオフの演
算装置は実演算装置と仮想演算装置の番号は一致
させるようにする。これは停止した演算装置と停
止したことを通知された演算装置の2台の間だけ
で実演算装置を切換して使用し仮想化することに
よつてロツク・競合によるデツドロツクを回避す
ることができるからであり、遷移中フラグがオフ
の演算装置はひたすら待ちに入つておれば良い。
スピン・ロツクの閉ループ中に該リソースAが未
使用となれば直ちに使用中としプロセスn,Vへ
リターンしLOCK命令の次の命令へ進むことがで
きる。一方、一定時間、Tミリ秒経過してもスピ
ン・ロツクの閉ループを脱出できなければエラー
であり一般的にはシステムダウンさせて情報収集
するのが普通である。 遷移中フラグVがオンの場合、レジスタ情報R
を領域Vへ退避させ再開要求フラグVをセツトす
ることによつてプロセスn,Vを中断し先に該リ
ソースAを使用していて中断していたプロセスを
再開始させる処理を行う。つまり先に該リソース
Aを使用していた仮想演算装置の番号を求めその
仮想演算装置の再開要求フラグをリセツトした後
対応する領域よりレジスタ情報を番号Rの実演算
装置へ復元することにより中断プロセスK,Wを
スタートさせる。ある演算装置R,Vで実行中の
プロセスn,Vが入出力完了を含む割込みあるい
はプロセス自身の制御の放棄により管理プログラ
ムの一つであるデイスパツチヤへ制御が渡ると第
4C図に示すように遷移中フラグがオンの仮想演
算装置があるか調べ、なければ通常のデイスパツ
チ処理を行う。遷移中フラグがオンの仮想演算装
置が存在しかつ再開要求フラグがオンであれば、
直ちに該仮想演算装置上で実行途中であつたプロ
セスをスタートさせる処理を行う。遷移中フラグ
がオンの仮想演算装置が存在しても再開要求フラ
グがオフのものしかなければ全ての遷移中フラグ
をリセツトした後通常のデイスパツチ処理を行
う。全ての遷移中フラグをリセツトした段階で実
演算装置を複数の仮想演算装置に遂次割当てると
いう処理は終了する。スピン・タイプの制約によ
りプロセスn,Vが特定のリソースを使用中の場
合は、演算装置R,Vは割込禁止状態にあり、か
つ実行の放棄はしないことになつているのでデイ
スパツチヤに制御が渡ることなくロツク・競合に
よるデツドロツクは起こらない。なお、特に本発
明の一実施例における逐次制御は、スピンタイプ
を前提としているが、これに限定されずサスペン
ドタイプでも適用できることに注意されたい。 発明の効果 本発明には第4図のような処理方式を実施する
ことによりロツク操作による逐次制御機構を有す
るマルチプロセシングにおいて、演算装置上で実
行しているプログラムの実行属性や処理内容およ
び複数の演算装置それぞれの処理の時間的組み合
わせを一切考慮せずかつ最小のプログラム規模で
任意の時点で直ちに演算装置を停止させ残りの演
算装置のうち一つを仮想化させロツク競合による
デツドロツクを回避しつつマルチプロセシング全
体の処理を継続できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図お
よび第3図は本発明の基礎となる技術を説明する
ための図、および第4A図−第4C図は本発明の
一実施例の処理フローを示す図である。 第1図において、1……主記憶装置、2……構
成制御装置、3……演算装置、4……チヤネル制
御装置。

Claims (1)

  1. 【特許請求の範囲】 1 共通プログラムおよび共通データを記憶する
    主記憶装置と、この主記憶装置の前記共通プログ
    ラムの参照および前記共通データの参照/更新を
    行う第一の演算処理装置と、前記第一の演算処理
    装置による前記主記憶装置の前記共通プログラム
    の参照および前記共通データの参照/更新中、前
    記共通プログラムの参照および前記共通データの
    参照/更新の終了を侍ち合わせる第二の演算処理
    装置とを備えた密結合多重演算処理装置における
    制御方式において、 演算処理装置が内部割込みなどの予め決められ
    た条件により処理を停止した場合に、実行中の処
    理を再開するために最低限必要な情報の全てを記
    憶する第一の装置記憶手段と、前記演算処理装置
    が処理を停止し、他の演算処理装置に停止を通知
    したことを記憶する停止通知記憶手段と、前記他
    の演算処理装置が停止通知を受け取るか、または
    予め決められた時間内に前記主記憶装置の前記共
    通プログラムの参照および前記共通データの参
    照/更新が終了しない場合に、処理を中断する
    が、その中断した処理を再開するために最低限必
    要な情報の全てを記憶する第二の装置記憶手段
    と、前記第一の装置記憶手段または前記第二の装
    置記憶手段により記憶された情報により停止また
    は中断された処理を再開する処理再開手段とを有
    することを特徴とする密結合多重演算処理装置に
    おける制御方式。
JP58188203A 1983-10-07 1983-10-07 密結合多重演算装置における制御方式 Granted JPS6079460A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP58188203A JPS6079460A (ja) 1983-10-07 1983-10-07 密結合多重演算装置における制御方式
US06/657,635 US4663709A (en) 1983-10-07 1984-10-04 Control system for tightly-coupled multiprocessing units
FR8415397A FR2553207B1 (fr) 1983-10-07 1984-10-08 Systeme de commande pour unites multitraitement a couplage etroit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58188203A JPS6079460A (ja) 1983-10-07 1983-10-07 密結合多重演算装置における制御方式

Publications (2)

Publication Number Publication Date
JPS6079460A JPS6079460A (ja) 1985-05-07
JPH0120466B2 true JPH0120466B2 (ja) 1989-04-17

Family

ID=16219575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58188203A Granted JPS6079460A (ja) 1983-10-07 1983-10-07 密結合多重演算装置における制御方式

Country Status (3)

Country Link
US (1) US4663709A (ja)
JP (1) JPS6079460A (ja)
FR (1) FR2553207B1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US5291581A (en) * 1987-07-01 1994-03-01 Digital Equipment Corporation Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US5319780A (en) * 1987-10-19 1994-06-07 International Business Machines Corporation System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued
US5016167A (en) * 1987-12-21 1991-05-14 Amdahl Corporation Resource contention deadlock detection and prevention
US5129087A (en) * 1988-02-03 1992-07-07 International Business Machines, Corp. Computer system and a method of monitoring transient data structures in a computer system
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
JP2572136B2 (ja) * 1988-03-14 1997-01-16 ユニシス コーポレーシヨン 多重処理データシステムにおけるロック制御方法
US4979105A (en) * 1988-07-19 1990-12-18 International Business Machines Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system
JPH02103656A (ja) * 1988-10-12 1990-04-16 Fujitsu Ltd 主記憶参照の遂次化制御方式
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
US5263161A (en) * 1989-07-26 1993-11-16 Massachusetts Institute Of Technology Non-busy waiting resource control
AU650242B2 (en) * 1989-11-28 1994-06-16 International Business Machines Corporation Methods and apparatus for dynamically managing input/output (I/O) connectivity
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
JPH07101410B2 (ja) * 1990-01-17 1995-11-01 インターナショナル、ビジネス、マシーンズ、コーポレーション データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US5276835A (en) * 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
JPH04308961A (ja) * 1991-01-18 1992-10-30 Ncr Corp 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
JP2675961B2 (ja) * 1992-05-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 実記憶のページをロックするための方法
US5485626A (en) * 1992-11-03 1996-01-16 International Business Machines Corporation Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing
US5481706A (en) * 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries
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
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US7340740B2 (en) * 2003-04-22 2008-03-04 International Business Machines Corporation Cooperatively multitasking in an interrupt free computing environment
JP4840926B2 (ja) * 2004-08-27 2011-12-21 学校法人 久留米大学 バーチャル映像を利用した筋肉電気刺激システム
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
DE102005041455A1 (de) * 2005-08-31 2007-03-15 Abb Patent Gmbh Automatisierungstechnische Einrichtung
DE102005043485A1 (de) 2005-09-13 2007-03-15 Abb Patent Gmbh Automatisierungstechnische Einrichtung
DE102005043482A1 (de) * 2005-09-13 2007-03-15 Abb Patent Gmbh Automatisierungstechnische Einrichtung
DE102005043481A1 (de) * 2005-09-13 2007-03-15 Abb Patent Gmbh Automatisierungstechnische Einrichtung
JP5080196B2 (ja) 2007-10-09 2012-11-21 任天堂株式会社 プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5349072B2 (ja) * 2009-02-17 2013-11-20 パナソニック株式会社 資源排他制御方法および資源排他制御装置
US9323528B2 (en) * 2012-12-20 2016-04-26 Intel Corporation Method, apparatus, system creating, executing and terminating mini-threads
US10606714B2 (en) 2017-09-05 2020-03-31 International Business Machines Corporation Stopping central processing units for data collection based on event categories of events
US10740030B2 (en) * 2017-09-06 2020-08-11 International Business Machines Corporation Stopping a plurality of central processing units for data collection based on attributes of tasks
US11163892B2 (en) * 2019-01-09 2021-11-02 International Business Machines Corporation Buffering data until encrypted destination is unlocked

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3533073A (en) * 1967-09-12 1970-10-06 Automatic Elect Lab Digital control and memory arrangement,particularly for a communication switching system
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US3528062A (en) * 1968-07-05 1970-09-08 Ibm Program interlock arrangement,including task suspension and new task assignment
US4318174A (en) * 1975-12-04 1982-03-02 Tokyo Shibaura Electric Co., Ltd. Multi-processor system employing job-swapping between different priority processors
JPS5296836A (en) * 1976-02-10 1977-08-15 Toshiba Corp Multiplex data processing system
JPS588018B2 (ja) * 1978-09-14 1983-02-14 日本電気株式会社 多重プロセッサシステム
US4414664A (en) * 1981-02-23 1983-11-08 Genrad, Inc. Wait circuitry for interfacing between field maintenance processor and device specific adaptor circuit
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FACOM OS4-F4 F4fb±lýÐ E40ibÐc=S57 *
FACOM OS4-F4 MSPýþmw¤×|h´ÝuªmÆ´g jþhf¨Þs¨ E10ibÐc=S57 *

Also Published As

Publication number Publication date
JPS6079460A (ja) 1985-05-07
FR2553207A1 (fr) 1985-04-12
FR2553207B1 (fr) 1988-11-25
US4663709A (en) 1987-05-05

Similar Documents

Publication Publication Date Title
JPH0120466B2 (ja)
JP4759273B2 (ja) データ処理装置及び共用資源へのアクセス制御方法
CN101833475B (zh) 用于执行指令原子块的方法和装置
US7178062B1 (en) Methods and apparatus for executing code while avoiding interference
US7962923B2 (en) System and method for generating a lock-free dual queue
US5875342A (en) User programmable interrupt mask with timeout
JP2514299B2 (ja) プロセスレベルプログラミングのための割込み処理の直列化方法
JPH06208552A (ja) スモール・グレイン機構
JP2005284749A (ja) 並列処理コンピュータ
JP2001188685A (ja) オブジェクトのロック管理方法及び装置
US8321874B2 (en) Intelligent context migration for user mode scheduling
KR20070114020A (ko) 하드웨어 지원을 갖는 다중 프로세서 및 다중 스레드 안전메시지 큐
US20170024249A1 (en) Parallel Execution Mechanism and Operating Method Thereof
US5708808A (en) Method and apparatus for concurrency with critical regions
US7096472B2 (en) Systems and methods for ensuring atomicity of processes in a multitasking computing environment
KR102003721B1 (ko) Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치
JPH01297760A (ja) タスク制御方式及びオンライン・トランザクション・システム
Arnold et al. Design of tightly-coupled multiprocessing programming
JPH07319716A (ja) 計算機システムの資源の排他制御方式
Drescher et al. An experiment in wait-free synchronisation of priority-controlled simultaneous processes: Guarded sections
Tabassum et al. Transactional Memory: A Review
JPH036654A (ja) 相互排除方式
Lai et al. A light-weight cooperative multi-threading with hardware supported thread-management on an embedded multi-processor system
Graunke Extensible scheduling in a Haskell-based operating system
Drescher et al. Department Informatik