JPH07101410B2 - データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法 - Google Patents

データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法

Info

Publication number
JPH07101410B2
JPH07101410B2 JP2333432A JP33343290A JPH07101410B2 JP H07101410 B2 JPH07101410 B2 JP H07101410B2 JP 2333432 A JP2333432 A JP 2333432A JP 33343290 A JP33343290 A JP 33343290A JP H07101410 B2 JPH07101410 B2 JP H07101410B2
Authority
JP
Japan
Prior art keywords
processor
instruction
control
processing
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2333432A
Other languages
English (en)
Other versions
JPH03222057A (ja
Inventor
ダイアン、レーシー、ニプファー
リン、アレン、マクマホン
シャーロット、ベネット、メッツガー
Original Assignee
インターナショナル、ビジネス、マシーンズ、コーポレーション
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 インターナショナル、ビジネス、マシーンズ、コーポレーション filed Critical インターナショナル、ビジネス、マシーンズ、コーポレーション
Publication of JPH03222057A publication Critical patent/JPH03222057A/ja
Publication of JPH07101410B2 publication Critical patent/JPH07101410B2/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/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、多数の処理装置が主記憶装置へのインターフ
ェイスを共用するようなデータ処理ネットワークに関す
るものであり、更に詳しくいえば、そのようなネットワ
ークにおいて処理装置間で主記憶装置へのアクセスの競
合を解決する逐次化機構を試験するために、記憶装置ア
クセスの競合状態を強制的に作り出す方法に関するもの
である。
従来技術および課題 データ処理における現在の傾向として、主記憶装置に対
する共通のインターフェイスを共用する多数の処理装置
を用いるコンピュータアーキテクチャが増加してきてい
る。多重処理装置ネットワークは、主記憶装置において
共用されるオブジェクトを保護するために逐次化手段を
典型的に採用する。いいかえると、2つまたはそれ以上
の処理装置が主記憶装置内のデータの共用されている区
域をアクセスすることを同時に要求したとすると、1つ
または複数の逐次化手段が競合を解決し、要求している
1つの処理装置にアクセスを許可する。
逐次化機構の信頼性を確認するために逐次化機構を試験
することは望ましいことであり、かつ必要であるが、そ
の試験は主記憶装置が共用するオブジェクトに対する要
求の競合が、1クロックサイクル内で重なり合うことを
必要とする。これは稀にランダムに起る状況であって、
強制することは困難である。
処理装置間の競合を強制する一般的な考えが知られてい
る。たとえば、アイビーエム・テクニカル・ディスクロ
ージャー・ブルテン(IBM Tech−nicare Diselosul Bul
ietin)第17巻第6号(1974年11月号)には構内装置お
よび遠隔装置と呼ばれる2つの処理装置を同期させる方
法が開示されている。構内処理装置と遠隔処理装置が次
の命令を同時に実行するように、同じクロックサイクル
中にそれらの処理装置を「零」状態に置くことへ向っ
て、構内処理装置と遠隔処理装置は異なる命令を実行す
る。両方の処理装置が同じ記憶場所を求めているとする
と、ただ1つの処理装置にアクセスを許可するためにロ
ック機構が構成される。
処理装置を同期させるために種々の手段が知られている
が、ロックその他の逐次化機構の試験に関連しては必要
ではない。たとえば、米国特許第4,412,303号明細書に
は、処理装置のアレイと、メモリジュールと、処理装置
とメモリジュールを接続するネットワークと、データベ
ースメモリ制御器を有するデータベースメモリとを含む
装置が開示されている。その装置は処理装置並列動作を
希望する時に処理装置を同期させる統合器も含む。
米国特許第4,783,736号明細書にはインターリーブされ
ている複数の記憶素子へ並列に接続されている多数の処
理装置を管理する装置が開示されている。この装置にお
いては、アクセスの競合を避けるために、メモリアクセ
スパターンがパターンの希望のオフセットを確実にする
ために構成される。種々のマスク装置とスレーブ装置が
種々のコードの下で動作する。
それらの同期手段と前記試験のやり方はある状況の下で
はおのおの満足できるが、複数の処理装置を同期させ、
主記憶装置内の共用されるオブジェクトに対して、処理
装置間で繰返えすことができる競合を行うためにこの同
期を利用することについて大きな需要がある。
発明の概要および解決課題 本発明の目的は、処理装置の間で共用資源を制御するた
めの競合を解決する逐次化手段を含むデータ処理ネット
ワーク装置において逐次化手段が正しく機能しているこ
とを試験するため、処理装置によるそれぞれの命令流の
実行を同期させる方法を得ることである。
本発明の上記目的は、 複数の処理装置を保留(実行していない)状態に置き、
その後全ての処理装置を保留状態から同時に解放するこ
と、 処理装置が命令を実行する順序とは無関係に、保留状態
を達成するために同一の態様で動作する複数の処理装置
により実行されるコンピュータプログラム同期命令を得
ること、 全ての処理装置同期に続いて、1つまたは複数の選択し
た処理装置を選択的に遅延させること、及び 同期命令が実行されるたびに、選択した長さ、たとえば
1クロックサイクルだけ、遅延を長くするために、1つ
または複数の選択された処理装置に関連する遅延を長く
すること、 を含む新規な方法で達成される。
それらの目的およびその他の目的を達成するために、ビ
ット符号化されたデータを取扱うためにコンピュータ命
令を実行する複数の処理装置と、ビット符号化されたデ
ータを受けて、それを送る共用資源と、処理装置と共用
資源の間でビット符号化されたデータを送るために処理
装置と共用資源へ接続されるインターフェイスとを含む
データ処理ネットワークにおいて用いられる同期方法が
得られる。そのネットワークは、処理装置の間で共用資
源を制御するために競争を解決する逐次化手段も含む。
このネットワークに関連して、逐次化手段が正しく機能
していることを確認する方法が得られる。この方法は、
次の過程を含む。
(a)同期すべき処理の数を決定するために限度を指定
する過程、 (b)以後のコンピュータプログラム命令を実行するこ
とを処理装置が一時的に阻止されるような状態である保
留状態にある処理装置(スレーブ装置と呼ばれる)の数
が前記限度より1少くなるまで、各処理装置を保留状態
に置く過程と、 (c)マスタ装置と呼ばれる残りの1つの処理装置を用
いてそれ自体を保留状態にし、それからそれ自体とスレ
ーブ装置を保留状態から同時に解放し、それと同時に全
ての処理装置、マスタとスレーブ、がコンピュータプロ
グラム命令の実行開始を可能にする過程。
希望によっては、この方法は、マスタ装置が全ての処理
装置を保留状態から解放した後で、少なくとも1つの処
理装置を他の処理装置に対してある選択した時間だけ遅
延させる別の過程を含むことができる。この遅延は、遅
延させられる処理装置が保留状態から解放された後、お
よび合図をする前に行われる。
本発明は全ての処理装置を正確に同じ時刻に保留状態か
ら解放させるために、全ての処理装置へ同時的に信号を
供給する。本発明の好適な実施例においては、クラスロ
ックとして知られている特定の逐次化機構がこの同期方
法において採用される。特定のクラスロックに関連する
主記憶装置内の共用オブジェクトにアクセスしようとす
る時に、いずれの処理装置でもクラスロックを要求する
ことができる。「クラスロック」という用語は、ロック
機構が主記憶装置を全体として保護するものでも、また
主記憶装置内の特定のデータ語を保護するものでもな
く、それよりも主記憶装置のあるクラスまたはタイプを
保護するということを意味している。
クラスロックは上記方法の過程(c)を実行するために
利用される。更に詳しくいえば、関係する処理装置の中
で最後尾にあるために特定の処理装置がマスタ装置にな
ると、マスタ装置は限度と同数の複数のロックの制御を
要求して、制御を獲得する。ロックを得た後で、マスタ
装置は同期メッセージを全てのスレーブ装置へ供給す
る。各スレーブ装置は、同期メッセージを受けた時に、
確認応答メッセージをマスタ装置へ送り返えし、マスタ
装置により現在制御されているロックの内それに一意的
に関連するロックの制御を要求する。
全てのスレーブ装置からの確認応答メッセージの受取り
に応答して、マスタ装置は残りの1つのロックを要求す
ることにより、自分自身をスレーブ装置とともにホール
ドオフ状態に強制する。次にマスタ装置は複数のロック
の制御を解除することにより、ロックを制御することを
処理装置に同時に許可する。ロックの制御が解除される
と、処理装置は次のコンピュータプログラム命令を実行
するように通知される。各処理装置にそのような命令が
1つづつ関連している。
全ての処理装置は同一の「次の命令」を実行するのでは
なく、実際には各処理装置が異なる命令を実行するか
ら、本発明の方法は下記の別の過程を含むことができ
る。
全ての処理装置を通知した後で、第2の1つの装置によ
る共用資源のアクセスの前に、第1の1つの処理装置に
よる共用資源のアクセスが行われたことを観察する過程
と、 ロックの制御の前記解除の後で、かつ各処理装置がそれ
の次の1つのコンピュータプログラム命令の実行を開始
する前に、第1の装置のみに関連する遅延を加え、以前
の全ての過程を再び行い、それから第1の処理装置と第
2の処理装置による共用資源へのアクセスを観察する過
程と、 第2の処理装置が再び共用資源へのアクセスを行う前に
第1の処理装置が共用資源へのアクセスを行ったことを
検出されたとすると、第1の処理装置に対する遅延を増
大させて、この過程の1つ前の過程を再び行う過程と、 第1の処理装置の前に第2の処理装置が共用資源へのア
クセスを再び行ったことが観察されるまでこれを繰返え
す過程。
したがって、2つの処理装置が異なる命令流を実行して
いるとしても、遅延増分機能が最終的には処理装置に同
じクロックサイクルでアクセスを競合させて、逐次化機
構の試験を効果的に行うようにする。
この方法は、命令を同期命令として識別するための第1
のフィールドと、主記憶装置内の同期制御ブロックの場
所を示す第2のフィールドとを含む複数のデータフィー
ルドを有する32ビット語に従って実行することが好まし
い。同期制御ブロックは、限度を指定する第1の制御フ
ィールドと、同期制御ブロックで以て同期命令を実行し
た処理装置の数の現在のカウントを維持するための第2
の制御フィールドと、どの処理装置が同期制御ブロック
で以て同期命令を実行したかを識別するための第3の制
御フィールドとを含む複数のフィールドを有する32ビッ
ト語である。
遅延増分機能に関連して、同期命令は、遅延の存在と非
存在を示すフィールドと、同期命令が実行されるたびに
遅延フィールド内の値を増分するかどうかを決定するフ
ィールドとを更に含む。
本発明の顕著な特徴は、同期命令の1つのステップにし
たがって、同期すべき処理装置よりも多い命令流が存在
しても、処理装置の数が限度を自動的に決定することで
ある。全ての処理装置は同格として扱われ、1つまたは
複数の処理装置をマスタとして予め決定しておく必要は
ない。それよりも、同期命令を実行する最後の処理装置
へマスタ状態が動的に割当てられる。遅延増分機能は、
それが一定であるか、増大するものであるかを問わず、
各1つの処理装置に一意的に組合わされる。最後に、全
ての処理装置は同じ同期命令を実行し、たとえばマスタ
装置により実行される命令のような、特殊な命令の必要
はない。したがって、本発明の同期方法は、単独で、ま
たは一意的に割当てられた固定遅延または増大する遅延
との組合わせで、主記憶装置内の共用資源オブジェクト
を処理装置の間で競合させることを容易にして、逐次化
機構の完全で徹底的な試験を容易にするものである。
実施例 本発明の理解を容易にするために、この実施例の説明
を、本発明の構成と動作を説明するために用いるいくつ
かの用語についての簡単な説明から始める。
IMPI命令:マイクロコードにおけるアセンブリレベルの
コンピュータプログラム命令である。処理装置はデータ
に対する論理オペレーション、たとえば記憶、加算、文
字移動等の機能、の実行においてIMPI命令を順次実行す
る。
水平マイクロコード(HMC):IMPI命令を通訳する、すな
わち、IMPI命令を一連のより簡単な過程へ分解するマイ
クロコード。このHMC命令は制御語とも呼ばれ、ハード
ウェアの状態を支配する。
ハードウェア・クラス・ロック:それらのロックは主記
憶装置のフェッチおよび記憶を処理装置の間で逐次化す
る。各制御語(HMC)はロック制御フィールドを有し、
それにより処理装置は10個までのロックの任意の組合わ
せを制御できる。
クラス・ロック機能:HMCはクラス・ロックに関連する次
の3つの機能を指定する。
(1)処理装置によりすでに保持されている1組のロッ
クへロックを加える。
(2)処理装置により現在保持されている1つのロック
または全てのロックをリセットする。
(3)現在の全てのロックを含めてロックをセットし、
それに続いて、選択されたロックを加える。
クラス・ロック・ホールドオフ:特定の処理装置が1つ
のクラス・ロックを制御していると、同じロックを要求
している別の処理装置はそのロックを制御できずにホー
ルドオフ状態に置かれる。その状態においては、要求し
ている処理装置はそれ以上のHMC命令は実行しない。要
求されているロックを利用できるようになるまでホール
ドオーフは続けられる。要求されているロックが利用で
きるようになるのは、制御している処理装置が目下の記
憶またはその他の活動を終って、要求されているロック
をリセットすることによりそのロックの所有を許可する
ときである。
保留状態:処理装置がそれ以上のIMPI命令を実行せず、
同期を待っているような状態。
処理装置相互通信レジスタ(PIR):PIRは処理装置の共
用オブジェクト(主記憶装置ではなくて処理装置に常駐
している)であり、それを介して処理装置はメッセージ
を他の処理装置へ送ることができ、かつそれを介して他
の処理装置は確認応答メッセージで応答できる。各処理
装置はPIR内のそれのそれぞれのビットをリセットする
ことにより応答を行う。
次に図面を参照する。第1図には、ビット符号化された
データに対して各種のオペレーションを記憶し、実行す
るための情報処理ネットワーク16が示されている。この
例におけるネットワークは18、20、22で示されている3
つの処理装置を含む。しかし、より多くの、またはより
少ない処理装置を用いることもできる。処理装置18は制
御記憶装置24を含む。この制御記憶装置に水平マイクロ
コードが常駐する。処理装置18は処理装置相互通信レジ
スタ(PIR)のレジスタセグメント26と、汎用IMPIレジ
スタ27とを含む。処理装置20と22は類似し、水平マイク
ロコードを含んでいるそれぞれの制御記憶装置28、30
と、PIRのそれぞれのレジスタセグメント32、34、と、I
MPIレジスタ33、35とを含む。処理装置は、ビット符号
化されたデータ主記憶装置またはネットワーク16の他の
部分へ送り、ネットワークの他の区域からデータを受
け、そのようなデータ送信を行うための指令を発生する
ために必要な回路も含む。このネットワークの処理装置
の構成は多数の処理装置を含むことができることを理解
すべきである。
インターフェイス36が処理装置を主記憶装置38へ接続す
る。この主記憶装置38はビット符号化されたデータを記
憶するためのメモリアレイ40と、IMPI命令を記憶するプ
ログラム命令記憶装置42とを含む。主記憶装置38は多数
の個々のメモリカードで構成することが好ましい。各メ
モリカードはそれ自体のメモリアレイと、それ自体の命
令記憶セグメントとを有する。それらのセグメントは協
同してIMPI命令を供給する。
インターフェイス36は複数の別々のバス(図示せず)を
並列に含むことができる。各バスは全ての処理装置と、
主記憶装置のメモリカードとの全てにより共通に共用さ
れる。たとえば、作業データ(ネットワークのユーザー
に最も直接に関係する情報)が作業用データバスを介し
て送られる。指令/アドレスバスが、作業用データの送
信を制御する情報を送る。この情報は、作業用データを
記憶または検索すべき主記憶装置38のアドレスについて
の情報を含む。作業用データがデータバスを介して送ら
れるときにデータの状態を送るための通信バスがある。
データ線44、46、48が処理装置18、20、22をインターフ
ェイス36へ接続する。データ線50がインターフェイスを
主記憶装置へ接続するが、多数のメモリカードの場合に
は、各カードはインターフェイスへのそのような自身の
データ線を有する。PIR線52、54、56がPIRセグメント2
6、32,34をインターフェイスに組合わせて、各処理装置
が他の処理装置と通信できるようにする。
ビット符号化されたデータが入力から即時に計算された
ように見えるならば、そのデータについてのオペレーシ
ョンは「アトミック」である。主記憶装置に関連して、
あるオペレーションのソースオペランドが主記憶装置38
からフェッチされる時から、オペレーションの結果が主
記憶装置へ戻されて記憶される時まで、そのソースオペ
ランドが変化することを許されないとすると、そのオペ
レーションはアトミックのように見える。そうすると、
記憶される結果は記憶時には入力に対して正しいものと
なる。多数の処理装置を有するネットワークにおいて
は、主記憶装置をアクセスするために処理装置の間の競
合の試みが検出されて、実行中のオペレーションが終る
まで遅らされるとすると、オペレーションを確実にアト
ミックとすることができる。しかも、アトミックオペレ
ーションの数が最小に保たれるならば、ネットワーク16
の性能は向上させられる。したがって、ほとんどのIMPI
命令はそれ自体はアトミックではない。むしろ、選択さ
れたIMPI命令は、主記憶装置38内の同種の共用オブジェ
クトに対して作用する他の命令に対してのみアトミック
である。したがって、そのような命令を含むIMPI命令は
「相対的にアトミックな命令」と見なされる。そのよう
なオペレーションに対しては、オペレーションが最初に
入力を参照する時とオペレーションがそれの結果を記憶
する時の間においてセット中の別のオペレーションによ
り入力は変化させられない。共用オブジェクトはオブジ
ェクトクラスに分けられる。各オブジェクトクラスは1
つのクラスロックにより保護される。
上記を留意して、本発明の同期試験を、処理装置18、2
0、22の活動が時間線58とともに示されている第2図を
参照して一般的に説明できる。
前記のように、逐次化機構に固有の1つの困難は、その
ような機構が必要とされて正しく機能するような状況
と、機構がまったく必要とされないような状況とに対し
ては、試験結果が同一であるように見えることである。
というのは潜在的に競合するオペレーションが重なり合
わないからである。この困難を克服するために、本発明
の試験は各処理装置にMPSYNCと名づけられた同期命令を
実行させる。そのMPSYNC命令は2つまたはそれ以上のIM
PI命令流を互いに1クロックサイクル以内で同期させる
ために用いられる。各命令流は1つの処理装置に関連し
ている。
処理装置18と20に対してそれぞれ60と62に示されている
ように、各処理装置がMPSYNC命令を実行すると、各処理
装置が以後のIMPI命令を実行することを一時的に停止す
るような保留状態にさせられる。MPSYNC命令を最後に実
行する処理装置を除く全ての処理装置は保留状態をと
り、スレーブ装置と見なされる。MIPSYNC命令を最後に
実行する処理装置はマスタ装置である。64に示されてい
るように、処理装置22はこの命令を最後に実行するから
マスタ装置になる。マスタ状態は処理装置が同期命令を
実行する順序のみに依存するから、処理装置18、20、22
のうちのいずれもマスタとなることができたことを理解
すべきである。どの処理装置もマスタ装置になるように
予め定められることはない。
マスタ装置がMPSYNC命令をひとたび実行すると、それは
全てのスレーブ装置と通信してそれらスレーブ装置の命
令流の実行を続けさせ、その時に各処理装置における水
平マイクロコードは「オペレーションの終り」(ENDO
P)命令を実行する。同期されたENDOP命令は各流れにお
ける次の命令の実行を、整列した「再開」場所66、68、
70として示されている、同一クロックサイクルで開始さ
せるよう強制する。またはENDOP命令を、後で説明する
遅延増分機能に関連して、指定された量だけずらすこと
ができる。
MPSYNC命令を実行する命令流の数が処理装置の数より多
い状況、たとえば、第1図と第2図に関連して4つまた
はそれ以上の命令流がある状況へ自動的に適応するに当
たっては、その同期試験は特定のハードウェア機構とは
関係がない。この場合には、処理装置の数に等しい数の
命令流だけが同期させられる。これによって、全ての処
理装置がスレーブ状態をとって、マスタを役をするもの
がないことによる行きづまりが阻止される。残りの命令
流中の同期命令は非同期命令として実行され、以後の命
令は、図に「超過」と示されている線72により示されて
いるように、試験される逐次化機構によるのではなく、
処理装置に対する競合により逐次化される。同期試験は
ハードウェアから更に独立し、同期すべき命令流の限度
はネットワーク中の処理装置の数より少ない数にセット
できる。また、これは、スレーブ状態に入る全ての命令
流による行きづまりを阻止する。
第3図は、マスタ装置がMPSYNC命令を実行する最後の処
理装置であることを知った時からの事象と、全ての処理
装置の間の活動状態の統合させられた進行とを非常に詳
しく示す。スレーブ装置が保留状態にあってマスタ装置
からメッセージを待っている状態において、マスタ装置
はハードウェア・クラスロックを得る。所要のるロック
の数は含まれている処理装置の数(マスタと全てのスレ
ーブの和)に等しい。各処理装置はクラスロックの1つ
に一意的に組合わされる。所要数のロックをマスタ装置
がひとたび制御すると、そのマスタ装置は同期メッセー
ジを処理装置相互通信レジスタ(PIR)を介して全ての
スレーブ装置へ送り、それからスレーブ装置からの確認
応答を持つ。
各スレーブ装置は、同期メッセージを受けた時に、確認
応答メッセージでPIRを介して応答し、かつそれ自身の
クラスロックの制御も要求する。その要求は要求してい
るスレーブ装置をクラスロック・ホールドオフ状態に置
く。というのは、要求されているロックはマスタ装置に
より現在制御されるからである。
マスタ装置は、全てのスレーブ装置から確認応答メッセ
ージを受けると、マスタ装置がかけた全てのロックをリ
セットする指令を発する。次のクロックサイクルにおい
ては、装置のハードウェアがその指令に応じてロックを
リセットできるようになる前にマスタ装置はそれ自身の
ロックを再び要求する。このためにマスタ装置はスレー
ブ装置とともにクラスロック・ホールドオフ状態にされ
る。但しこの状態はほんの一時的なものであり、ネット
ワークハードウェアが全てのロックを実際にリセットす
ると、全てのロックが同時時刻74において処理装置に許
可される。第3図は各処理装置に対する同期時刻の後で
遅延を示す。この遅延は各処理装置に対して個々に選択
され、かつ零にできる。いずれにしても、各処理装置は
それに関連するクラスロックを、希望によっては遅延さ
せて、リセットし、ENDOP命令を実行し、それから次の
クロックサイクルにおいてそれの命令流中の次の命令の
実行を開始する。
同期を行うために、含まれている全ての処理装置はMPSY
NC命令を、主記憶装置38に含まれている共用同期制御ブ
ロック76で実行する。この同期制御ブロック76は複数の
そのようなブロックの1つであるが、与えられた同期点
に対してそのようなブロックを1つ使用できる。全ての
命令流が同期制御ブロックをひとたび用いると、それを
再び初期化(再使用)できる。各処理装置は、MPSYNC命
令に遭遇すると、(1)同期制御ブロック76を更新し
て、同期を待っていることを指示し、(2)同期制御ブ
ロックカウントフィールド92を検査し、待っている処理
装置の数を決定し、(3)同期制御ブロックを検査し
て、同期させるべき命令流の数(同期制御ブロックにお
いて指定された数および処理装置の数の内小さい方の
数)を決定する。
MPSYNC命令のフォーマットと同期制御ブロックのフォー
マットが第4図と第5図にそれぞれ示されている。水平
マイクロコード使用のためにのみ保留されている主記憶
装置の区域78に常駐するフラッグビットが、同期試験を
行う時に論理1へセットされ、通常の動作、非試験状態
中に用いられる「正常な」IMPI命令とは反対に、DPCODE
フィールド80(ビット0〜7)が通訳されて同期命令を
指定する「I」と記されているフィールド82は遅延増分
機能に関連するものである。このフィールドの最初のビ
ット(ビット位置8)は、遅延増分が求められるなら
ば、セットされる。「R」と記されているフィールド84
は「I」フィールドに関連して用いられる。「R」フィ
ールド中の4ビットオペランドは半語IMPIレジスタ、す
なわち、処理装置18、20、22内の、遅延増分機能に組込
むべきサイクル数を含んでいる、レジスタ27、33、35の
うちの1つ、を指定する。フィルド82が遅延増分を要求
するためにセットされなかったとすると、フィールド84
は無視される。「B」および「D」と記されている最後
のフィールド86と88は、主記憶装置38内の4バイト同期
制御ブロック76を指定する。4ビット「B」フィールド
は6バイトのIMPIベースレジスタを選択し、「D」フィ
ールドは12ビットの変位を示す。同期制御ブロックの場
所は変位と、ベースレジスタの内容との和により指定さ
れる。
同期制御ブロックは、同期させる命令流の数を指定する
ための限度(LMT)フィールド90を含む。とくに、限度
は同期させる命令流の数マイナス1に等しくなるように
セットされる。その限度が処理装置の数マイナス1より
大きいとすると、MPSYNC命令の実行時に、水平マイクロ
コードはこのフィールド内の値を処理装置の数マイナス
1に自動的に置き換える。
同期制御ブロック76で同期命令を実行した命令流の数の
現在のカウントを維持するために、カウント(CNT)フ
ィールド92が水平マイクロコードにより用いられる。こ
のフィールド内のカウント(ビット8〜15)は、最初の
命令流がMPSYNC命令を実行できる前に、零へ初期化せね
ばならない。
「MP」と記されているフィールド94は、どの処理装置が
同期制御ブロック76により同期命令を実行したかを記憶
しておくために用いられる。このフィールド内の各ビッ
ト(20〜23)は1つの処理装置に関連されている。各処
理装置が同期命令を実行するとき、MPフィールド内のそ
れに関連するビットがセットされて、どの処理装置が同
期命令を実行したかを観察する手段を提供する。最後の
マスタ処理装置はこのフィールドを用いて全てのスレー
ブ処理装置を識別する。マスタ装置が必要な数のクラス
ロックを得た後でそれらのスレーブ装置へ同期メッセー
ジが送られる。最初の命令流がMPSYNC命令を実行できる
前に、MPフィールドを零へ初期化せねばならない。残り
のフィールド96と98は用いられない。
第6〜9図は、4つの処理装置0〜3で実行される同期
方法の更に詳細を理解するために有用な流れ図の部分で
ある。命令は第6図における「A」で開始されて、主記
憶装置内の区域78におけるフラッグビットを探す。フラ
ッグビットがリセットされていることは、MPSYNC命令で
はなくて正常な動作IMPI命令を示し、100において示さ
れるように「試験」は終わる。
フラッグビットが同期命令を示すとすると、処理装置は
全ての処理装置クラスロックの制御を要求する。またこ
れに加えて、処理装置相互通信レジスタと同期制御ブロ
ックを保護するためのセマフォとして機能するために、
処理装置は水平マイクロコード・クラスロック(これは
任意の処理装置に関連するクラスロックの1つではな
い)の制御を要求する。
PIRが使用中であると(別の処理装置により制御され
る)、全てのロックはリセットされ、入来するどのメッ
セージも取扱われ、命令が再び始まる。PIRが使用中で
なければ、処理装置の数がLMTフィールド90内の数と比
較される。処理装置の数マイナス1が、現在LMTフィー
ルドの中にある数より小であるならば、LMTフィールド
の数を処理装置の数マイナス1に等しくするためにその
数を減少させる。
次の過程は、同期制御ブロック76内のカウントフィール
ドと限度との内容の比較を基にした選択102(第7図)
である。カウントフィールド内の値と限度フイールド内
の値が等しいことは、処理装置がマスタであることを示
す。フィールド92内のカウントは増加させられ、マスタ
装置は同期メッセージを処理装置相互通信レジスタ(PI
R)を介して全てのスレーブ装置へ送り、水平マイクロ
コードロックは104においてリセットされ、マスタ装置
は全てのスレーブ装置からの確認応答を待つ。次に、同
期命令の「I」フィールド82が遅延増分に関してサンプ
ルされ、遅延増分が示されたとするならば、命令の
「R」フィールド84により指定されたIMPIレジスタ内の
遅延値が増分される。マスタ装置は全てのロックをリセ
ットし、それからそれ自身の関連するロックをセットす
る。これに関連して選択されるクラスロックは、第7図
の138、140、142、144で示されるように、その装置に一
意的に組合わされるものである。同期時には、要求され
ているクラスロックの制御が全ての処理装置に対して同
時に許可される。同期時の後で、マスタ装置はそれのク
ラスロックをリセットし、遅延が指定されたとすると、
マスタ装置は現在の遅延値により決定されるNサイクル
だけ増分される。それから、マスタ装置はENDOP命令を
実行して命令流の実行を続ける。
カウントフィールド92内の値が限度フィールド90内の値
をこえると、超過命令流機能が示される。全てのロック
はリセットされ、ENDOPが発生され、命令流が続く。
106に示すように、カウント値が限度値より小さいとす
ると、処理装置はスレーブである。HMCロックを除く全
てのロックがリセットされる。それから、カウントフィ
ールドが1だけ増加させられ、命令を実行している処理
装置に関連するビットが同期制御ブロック76のMPフィー
ルド94においてセットされる。それから、水平マイクロ
コード(HMC)クラスロックがリセットされる。
次に、処理装置は例外を待つ。例外が生ずると、HMCク
ラスロックがセットされる。次の判定107(第8図)
は、多重処理装置(MP)メッセージ例外が検出されるか
どうかである。これにより、メッセージが別の処理装置
からPIRを介して送られたことを示す。もし検出されな
いとすると、MPメッセージが例外ではなくてI/O例外が
示され、処理装置はそれのスレーブ状態を取消さねばな
らない。カウンタは108において減少させられ、現在の
処理装置に関連するビットは同期制御ブロックのMPフィ
ールド94においてリセットされ、I/Oメッセージ例外が
取扱われる。同期命令は再び開始され、102においてス
レーブ/マスタ/超過選択が再び行われる。I/Oメッセ
ージ例外の取扱い中の別の処理装置がMPSYNC命令を実行
したとすると、おそらく異なる結果が生ずる。
107における判定へ戻って、MPメッセージ例外が検出さ
れたとすると、それは同期メッセージに関係しているこ
ともあり、又関係していないこともある。もし同期メッ
セージに関係していないとすると、処理装置はそれのス
レーブ状態を取消さねばならない。110においてカウン
トフィールド「N」が減少させられ、MPフィールド内の
現在の処理装置のビットがリセットされ、HMCクラスロ
ックがリセットされる。MPメッセージ例外は取扱われ、
I/Oメッセージ例外について先に述べたように、同期命
令が再開される。
MPメッセージ例外が同期命令に関連するものとすると、
同期命令を現在実行している装置(スレーブ装置)に関
連して、遅延増分に対して「I」フィールドが試験され
る。「R」フィールド84により示されているIMPIレジス
タ内の遅延値は、遅延増分の場合に増分される。HMICク
ラスロックはリセットされ、、スレーブ装置は確認応答
をマスタ装置へ供給し、スレーブ装置はそれのクラスロ
ックの制御を要求する。選択されたクラスロックは、11
2、114、116、118にそれぞれ示すように、その装置に一
意的に関連づけられるものである。このクラスロックは
マスタ装置により現在制御され、したがってスレーブ装
置をホールドオフ状態に置く。ロックの制御がスレーブ
に対して許可されると、全ての処理装置は同期させられ
る。それからスレーブ装置はそれのクラスロックをリセ
ットする。次に、遅延が存在するならば、遅延は、関連
する「I」フィールドの内容と遅延値に従って増分さ
れ、その後でENDOP命令が実行されて命令流の実行を続
ける。
ENDOP命令が続く同期時刻が、全ての処理装置において
「次の」IMPI命令を同時に開始する。そのような次の命
令が同一であるならば、それらの命令は共用オブジェク
トに対する競合まで同一のコースをとって走るから、遅
延は不要である。しかし、同一の命令の状況が起らない
ことがあり、少なくとも1つの処理装置の流れに所定の
遅延を挿入して競合させることを必要とする。しかし、
競合させるために必要な遅延を予め定めることは困難で
ある。したがって、上記遅延増分機能を用いて、選択さ
れた2つの処理装置の間で競合が確実に強制されるよう
にできる。
処理装置18と20が主記憶装置38内の共用オブジクトまた
は場所120に対して「EN−QUEUE」機能と「DE−QUEUE」
機能を試みていると仮定する。各場所にENDOPの後の次
の命令としてその機能を行う。共用オブジェクトは主記
憶装置38内の語、または全ての処理装置が「同時に見る
ことができる」ものであれば何であってもよい。処理装
置18は共用オブジェクトに対してアクセスし、それの機
能を最初に実行する、すなわち、競合がない、と更に仮
定する。競合させるために、遅延が(上記「I」フィー
ルドと「R」フィールドを用いて)、処理装置18に関連
する命令流中に導入される。遅延増分に対しては、1ク
ロックサイクルのような選択された値が、「R」フィー
ルドにより指定されたIMPIレジスタへ加え合わされる。
それから、命令流が繰返し実行されて、同期命令の各実
行ごとに遅延を1クロックサイクルだけ増分される。最
後には、処理装置18ではなくて処理装置20がオブジェク
トを最初にアクセスする。したがって、処理装置18と20
は強制された競合の点を介して相対的にスキューさせら
れる。
同期メッセージと確認応答メッセージに関連して、それ
らのメッセージは共用主記憶装置を介して処理装置によ
り供給できるから、処理装置相互通信レジスタは重要で
はないことに注目すべきである。しかし、それらのメッ
セージのためにPIRを設けてこれを使用すると、インタ
ーフェイスバスにおけるオーバーヘッドがかなり減少
し、この理由からこれは大きな利点である。
同期機構が正しく機能することは、それを用いて干渉す
る非アトミックIMPI命令を同期させる事により検査でき
る。第10と第11図は、命令流の同期の失敗と、同期の成
功をそれぞれ示す結果を示す。各場所に、データバイト
122は、クロックサイクルt0において8ビット位置が全
てリセットされて、全部論理0を有する。クロックサイ
クルt1においては、処理装置18はMPSYNC命令を実行す
る。同期機構が失敗して、マスタ装置からの同期命令を
待つ状態に入らない場合、処理装置18はそれの命令流を
続けて、サイクルt2中にデータバイトにおける0Rバイト
直接(OBI)命令の実行を開始する。OBI命令は3つの過
程、すなわち、t2において主記憶装置からデータ・バイ
ト122をフェッチする過程と、t3における処理装置によ
りOR操作を行う過程と、次にt4とt5において主記憶装置
に結果(124に示されている)を記憶する過程とを含
む。主記憶装置に対するアクセスの競合はサイクルt4中
に記憶を開始させることがあるが、次のサイクルt5まで
は完成されない。OBI命令のOR操作は処理装置180の場合
データ・バイト122に対し10000000とのOR操作であり、
処理装置20の場合データ・バイト122に対し00000001と
のOR操作である。サイクルt5においてOR操作の結果124
が主記憶装置に記憶される。処理装置20はサイクルt7に
おいてこのデータ・バイト124をフェッチしてこれに対
し00000001とのOR操作を行う。この結果はバイト126と
なる。OBI命令はアトミックではない。共用データの同
時アクセスを阻止するための逐次化は行われない。
処理装置20はサイクルt6の間にMPSYNC命令を実行し、サ
イクルt7〜t10の間にOBI命令を実行する。126に示され
ているように、最後の結果は、最初のビット位置と最後
のビット位置に論理1を含む。これはアクセスの競合が
同期しなかったことを意味する。これとは対照的に(第
11図)、同期法が正しく機能すると、処理装置18は前と
同様にクロックサイクルt1においてMPSYNC命令を実行す
るが、保留状態をとってマスタ装置からの同期信号を待
つ。この場合には、処理装置20はサイクルt4においてMP
SYNC命令を実行して、同期命令を供給するから、両方の
処理装置はクロックサイクルt5の間にそれぞれのOBI命
令を開始する。両方の処理装置はクロックサイクルt5中
に同じデータ・バイト122をフェッチし、クロックサイ
クルt6中にOR操作を行い、クロックサイクルt7中に結果
10000000の記憶を開始する。
128に示されている、処理装置18の結果の記憶はサイク
ルt8に終る。処理装置20の記憶は主記憶装置に対する競
合により遅らされるから、サイクルt9まで終わらない。
処理装置20は処理装置18と同じデータ・バイト122に対
し00000001とのOR操作を行い結果を主記憶装置に記憶す
る。この記憶は処理装置18による直前のサイクルt8にお
ける記憶を上書きするから、結果としてのバイト130は
それの最後の位置だけに論理1を有して、処理装置18が
それの記憶動作を終る前に、処理装置20がデータに対し
てフェッチ動作を行うことを許された、すなわち、同期
に成功したことを反映する。
3つ以上の処理装置に対しては、各命令流は異なるビッ
トをバイト122にセットする。OBI命令が直列に生じたと
すると、結果データは、第10図に示すように、セットさ
れたビットの累積である。同時に成功したとすると、全
ての命令流はバイト122を同時にフェッチして、他の処
理装置からの活動からの結果を累積することなしに、デ
ータを更新し、新しいデータを主記憶装置へ書込む。主
記憶装置への最後の書き戻しに対応する命令流は、先行
する命令流により記憶されている結果をなくす。結果は
第11図に示されている。
逐次化機構を試験するためにMPSYNC命令が用いれると、
OBI命令は比較的にアトミックな命令で置換される。第1
0図に示されているように、全ての処理装置の累積結果
を示す結果データは適正な逐次化を示す。第11図に示す
ように、非累積的な結果は逐次化の失敗を示す。
したがって、多数の処理装置によりMPSYNC命令を使用す
ると、多数の命令の同期を可能にして、処理装置の逐次
化機構が正しく機能していること、および水平マイクロ
コーダが逐次化機構を正しく利用することを検査する。
必要があれば、処理装置の数マイナス1に限度値をセッ
トする自動調整構成のために、同期試験は、利用できる
処理装置の数とは独立に行うことができる。遅延が長く
なる構成では、試験は各種の機能の正確な経路長とは独
立である。更に、第10図と第11図に関連して説明した試
験により、クラスロック自体を試験で用いたとしても、
ハードウェアクラスが正しく実現されることを検査する
ために同期命令を確実に使用できるようにされる。
【図面の簡単な説明】
第1図は多数の処理装置が共通インターフェイスを介し
て主記憶装置を共用する情報処理装置の略図、第2図は
第1図に示す装置の多数の処理装置の本発明に従う同期
化を示すタイミング図、第3図は同期化を詳しく示すタ
イミング図、第4図は処理装置の同期に用いられる32ビ
ット同期命令のフォーマットを示し、第5図は同期に用
いられる32ビット同期制御ブロックフォーマットを示
し、第6〜9図は同期命令を詳しく示す流れ図の一部、
第10図および第11図は本発明に従って強制される共用主
記憶装置に対する競合の失敗した結果と真の結果とそれ
ぞれ示す。 16……情報処理ネットワーク、18、20、22……処理装
置、24、28、30……制御記憶装置、26、32、34……処理
装置相互通信レジスタ、33、35……IMPIレジスタ、38…
…主記憶装置、40……メモリアレイ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 シャーロット、ベネット、メッツガー アメリカ合衆国ミネソタ州、エルジン、ピ ー、オー、ボックス、507 (56)参考文献 特開 昭59−180767(JP,A)

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】ビット符号化されたデータを取扱うために
    それぞれ異なるコンピュータプログラム命令流の形を取
    るコンピュータプログラム命令を実行する複数の処理装
    置と、ビット符号化されたデータを受け取り、それを伝
    送する共用資源と、処理装置と共用資源の間でビット符
    号化されたデータを伝送するために処理装置と共用資源
    へ接続されるインターフェイスと、処理装置の間で共用
    資源の制御獲得のための競合を解決する逐次化手段とを
    含むデータ処理ネットワーク装置において逐次化手段が
    正しく機能していることを試験するため、処理装置によ
    るそれぞれの命令流の実行を同期させる方法において、 (a)同期すべき処理装置の数より1だけ少ない数を表
    す限度を設定する過程と、 (b)前記限度を設定した後、前記限度を等しい数の処
    理装置を、コンピュータプログラム命令の実行が一時的
    に阻止されるがメッセージの形でのビット符号化された
    データの送出及び受取は可能とされる状態である保留状
    態に置き、かかる保留状態に置かれた処理装置をスレー
    ブ装置とする過程と、 (c)前記スレーブ装置のすべてが保留状態にある間、
    マスタ装置と呼ばれる前記スレーブ装置以外の処理装置
    を用いて、スレーブ装置を保留状態に維持し、前記スレ
    ーブ装置が保留状態にある間マスタ装置自体を保留状態
    に強制し、次いで前記マスタ装置を用いてマスタ装置自
    体及びスレーブ装置を保留状態から同時に解放して、す
    べての処理装置がそれぞれのコンピュータプログラム命
    令流の実行再開を可能にする過程と、 を含む、処理装置による命令流の実行を同期させる方
    法。
  2. 【請求項2】請求項1記載の方法において、逐次化手段
    は複数のハードウェアロックを含み、過程(c)は、 (d)マスタ処理装置を用いて前記限度に等しい個数の
    ロックの制御を獲得する過程と、 (e)マスタ装置がロックを獲得した後で、マスタ装置
    を用いて同期メッセージを全てのスレーブ装置へ供給す
    る過程と、 (f)同期メッセージの受取りに応じて各スレーブ装置
    に確認応答メッセージをマスタ装置へ送り返えさせ、現
    在マスタ装置の制御の下にあるハードウェアクラスロッ
    クとは異なるハードウェアクラスロックの制御を要求さ
    せる過程と、 (g)全てのスレーブ装置からの確認応答メッセージの
    受取りに応答して、マスタ装置にハードウェアクラスロ
    ックを解放するリセット命令を発行させ、要求されてい
    ない残りのハードウェアクラスロックをマスタ装置に要
    求させ、これにより、スレーブ装置とともにマスタ処理
    装置を保留状態に強制し、各処理装置が自身の関連する
    ハードウェアクラスロックの制御を要求するようにする
    過程と、 (h)前記リセット命令に応答してマスタ装置に複数の
    ロックの制御を解放させて処理装置に対するハードウェ
    アクラスロックを同時に解放し、各ハードウェアクラス
    ロックをマスタ装置及びスレーブ装置の関連するものに
    関係づけ、これにより各処理装置がそれに組合わされて
    いるハードウェアクラスロックの制御を獲得したことに
    応答して各処理装置に対応するコンピュータプラグラム
    命令流の実行再開を可能にされる過程と、 を含む方法。
  3. 【請求項3】請求項2記載の方法において、 ハードウェアクラスロックの制御の前記解除の後、かつ
    最初の処理装置がそれに対応するコンピュータプラグラ
    ム命令流の実行を再開する前に、前記最初の1つの処理
    装置を残りの処理装置に対して第1の選択した時間だけ
    遅延させる過程、 を含む方法。
  4. 【請求項4】請求項3記載の方法において、 前記最初の処理装置を遅延させる前記過程は、ハードウ
    ェアクラスロックの制御の前記解除の後、かつ処理装置
    の少なくとも第2のものがそれのコンピュータプログラ
    ム命令流の実行を開始する前に、前記第2の処理装置を
    他の処理装置に対して関連する第2の選択した時間だけ
    遅延させることを含む方法。
  5. 【請求項5】請求項2記載の方法において、 (i)前記処理装置の各々がそれぞれのコンピュータプ
    ログラム命令流の実行を再開した後、第2の処理装置に
    よる共用資源のアクセスの前に、第1の処理装置による
    共用資源のアクセスが行われたかどうかを調べる過程
    と、 (j)ハードウェアクラスロックの制御の前記解除の後
    で、かつ各処理装置がそれぞれのコンピュータプログラ
    ム命令流の実行を再開する前に、第1の装置のみに関連
    する遅延を与え、過程(b)〜(h)を再び行い、次い
    で第1の処理装置と第2の処理装置による共用資源への
    アクセスを検出する過程と、 (k)第2の処理装置が再び共用資源へのアクセスを行
    う前に第1の処理装置が共用資源へのアクセスを行った
    ことを検出されたとき、第1の処理装置に対する遅延を
    増大させて、過程(j)を再び行う過程と、 第1の処理装置の前に第2の処理装置が共用資源へのア
    クセスを再び行ったことが検出されるまで過程(k)を
    繰返す過程と、 を更に含む方法。
  6. 【請求項6】請求項5記載の方法において、 前記ネットワークは、全ての処理装置を相互に接続する
    相互通信レジスタ手段を更に含み、同期メッセージを供
    給する過程は、マスタ装置から相互通信レジスタ手段へ
    同期メッセージを供給する過程を含む方法。
  7. 【請求項7】請求項6記載の方法において、 前記相互通信レジスタ手段は複数のレジスタセグメント
    で構成され、1つのセグメントが各処理装置に組合わさ
    れ、同期メッセージを供給する過程は、各スレーブ装置
    に組合わされているレジスタセグメントへ同期メッセー
    ジを供給する過程を含む方法。
  8. 【請求項8】請求項7記載の方法において、 各スレーブ装置に確認応答メッセージをマスタ装置へ送
    り返えさせる前記過程は、各スレーブ装置にそれに組合
    わされている1つのレジスタセグメントの内容をリセッ
    トさせる過程を含む方法。
  9. 【請求項9】請求項2記載の方法において、 限度を設定する過程は、限度に対して設定された数が処
    理装置の数に少なくとも等しいかどうかを判定する過程
    と、もし等しければ、限度を処理装置の数より1だけ少
    なくする過程とを含む方法。
  10. 【請求項10】請求項2記載の方法において、 コンピュータプログラム命令は、主記憶装置に常駐する
    アセンブリレベル命令流と、アセンブリレベル命令流を
    制御語へ分解するために各処理装置内に常駐する水平マ
    イクロコードとを含み、各制御語はハードウェアクラス
    ロックのを制御を獲得するため、またはハードウェアク
    ラスロックの制御を解除するための機能フィールドを含
    み、 各処理装置は、選択したハードウェアクラスロックの制
    御を獲得する前に、選択したハードウェアクラスロック
    に対する要求を他の全ての処理装置に対して行い、各処
    理装置は、他の1つの処理装置により現在制御されてい
    るハードウェアクラスロックを要求することに応答して
    ホールドオフ状態に強制され、 各スレーブ装置にハードウェアクラスロックの異なるも
    のの制御を要求させる前記過程と、要求されていない残
    りのハードウェアクラスロックをマスタ装置に要求させ
    る過程とは、スレーブ装置とマスタ装置をそれぞれホー
    ルドオフ状態に強制することを含む、 方法。
  11. 【請求項11】請求項10記載の方法において、 処理装置に常駐する水平マイクロコード中の関連する制
    御語に基づく各処理装置のオペレーション終了信号を実
    行することにより、前記処理装置はそれぞれのコンピュ
    ータプログラム命令流の実行を再開することを含む方
    法。
  12. 【請求項12】請求項2記載の方法において、 処理装置構成は、処理装置の間にメッセージを送るため
    の処理装置相互通信レジスタを更に含み、過程(e)と
    (f)はそれらのメッセージを相互通信レジスタを介し
    て送ることを含む方法。
  13. 【請求項13】請求項5記載の方法において、 過程(a)〜(h)を、命令を同期命令として識別する
    ための第1のフィールドと、主記憶装置内の同期制御ブ
    ロックの場所を識別する第2のフィールドとを含む複数
    のデータフィールドを有する32ビット語に従って実行す
    る方法。
  14. 【請求項14】請求項13記載の方法において、 同期制御ブロックは、限度を指定する第1の制御フィー
    ルドと、制御ブロックとの同期命令を実行した処理装置
    の数の現在のカウントを維持するための第2の制御フィ
    ールドと、どの処理装置が制御ブロックとの同期命令を
    実行したかを識別するための第3の制御フィールドとを
    含む複数のフィールドを有する32ビット語である方法。
  15. 【請求項15】請求項14記載の方法において、 前記同期命令は、遅延の存在または非存在を示す第3の
    フィールドと、同期命令が実行されるたびに増加させら
    れる遅延の値を示す第4のフィールドとを更に含む方
    法。
  16. 【請求項16】請求項6記載の方法において、同期メッ
    セージに応答して、各スレーブ装置に確認応答メッセー
    ジをマスタ装置へ送り返えさせる過程は、 例外を検出し、その例外が多重処理装置メッセージ例外
    か、I/O例外かを判定する過程と、 I/O例外であるとの判定に応答して各スレーブ装置のス
    レーブ状態を取消す過程と、 を含む方法。
  17. 【請求項17】請求項16記載の方法において、 多重処理装置メッセージ例外に応答して、あるメッセー
    ジが同期メッセージであるかどうか判定する過程と、 そのメッセージが同期メッセージでないとの判定に応答
    して、各スレーブ装置のスレーブ状態を取扱いし、ある
    いは、そのメッセージが同期メッセージであるとの判定
    に応答して、各スレーブ装置に確認応答メッセージが供
    給させる過程と、を更に含む方法。
JP2333432A 1990-01-17 1990-11-29 データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法 Expired - Lifetime JPH07101410B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US46653890A 1990-01-17 1990-01-17
US466538 1990-01-17

Publications (2)

Publication Number Publication Date
JPH03222057A JPH03222057A (ja) 1991-10-01
JPH07101410B2 true JPH07101410B2 (ja) 1995-11-01

Family

ID=23852143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2333432A Expired - Lifetime JPH07101410B2 (ja) 1990-01-17 1990-11-29 データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法

Country Status (4)

Country Link
US (1) US5307483A (ja)
EP (1) EP0438021B1 (ja)
JP (1) JPH07101410B2 (ja)
DE (1) DE69022709T2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130630T2 (de) * 1990-09-14 1999-09-09 Hitachi Ltd Synchrones Verfahren und Gerät für Prozessoren
US5442772A (en) * 1991-03-29 1995-08-15 International Business Machines Corporation Common breakpoint in virtual time logic simulation for parallel processors
US5423044A (en) * 1992-06-16 1995-06-06 International Business Machines Corporation Shared, distributed lock manager for loosely coupled processing systems
JPH06110846A (ja) * 1992-09-25 1994-04-22 Fujitsu Ltd 排他制御方式
US5522029A (en) * 1993-04-23 1996-05-28 International Business Machines Corporation Fault tolerant rendezvous and semaphore for multiple parallel processors
TW353732B (en) * 1994-03-31 1999-03-01 Ibm Processing system and method of operation
US5550973A (en) * 1995-03-15 1996-08-27 International Business Machines Corporation System and method for failure recovery in a shared resource system having a moving write lock
JPH10149285A (ja) * 1996-11-18 1998-06-02 Hitachi Ltd 命令実行制御方法および情報処理装置
US6295601B1 (en) * 1997-05-30 2001-09-25 Sun Micro Systems, Inc. System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline
GB9804111D0 (en) * 1998-02-27 1998-04-22 Lucas Ind Plc Distributed data processing system
US6088791A (en) * 1998-04-30 2000-07-11 International Business Machines Corporation Computer processor system for implementing the ESA/390 STOSM and STNSM instructions without serialization or artificially extending processor execution time
US6088792A (en) * 1998-04-30 2000-07-11 International Business Machines Corporation Avoiding processor serialization after an S/390 SPKA instruction
US6542985B1 (en) * 1999-09-23 2003-04-01 Unisys Corporation Event counter
US6823355B1 (en) 2000-05-31 2004-11-23 International Business Machines Corporation Synchronous replication of transactions in a distributed system
US7694302B1 (en) * 2001-04-05 2010-04-06 Network Appliance, Inc. Symmetric multiprocessor synchronization using migrating scheduling domains
US7178137B1 (en) 2001-04-05 2007-02-13 Network Appliance, Inc. Automatic verification of scheduling domain consistency
US7373640B1 (en) 2003-07-31 2008-05-13 Network Appliance, Inc. Technique for dynamically restricting thread concurrency without rewriting thread code
US8171480B2 (en) * 2004-01-27 2012-05-01 Network Appliance, Inc. Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor
US8347293B2 (en) * 2005-10-20 2013-01-01 Network Appliance, Inc. Mutual exclusion domains to perform file system processes on stripes
US8627331B1 (en) 2010-04-30 2014-01-07 Netapp, Inc. Multi-level parallelism of process execution in a mutual exclusion domain of a processing system
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
CN102880585B (zh) * 2012-09-28 2015-05-06 无锡江南计算技术研究所 用于具有多个处理器核心的处理器系统的同步器
US8972767B2 (en) * 2012-11-16 2015-03-03 Oracle International Corporation Method and apparatus for synchronizing the time reference of a dynamically activated processor to the system time reference
US10783165B2 (en) 2017-05-17 2020-09-22 International Business Machines Corporation Synchronizing multiple devices
EP3642706A4 (en) * 2017-06-22 2021-04-07 Icat LLC HIGH SPEED PROCESSORS
GB2569274B (en) * 2017-10-20 2020-07-15 Graphcore Ltd Synchronization amongst processor tiles
GB2569273B (en) * 2017-10-20 2020-01-01 Graphcore Ltd Synchronization in a multi-tile processing arrangement
US20220217136A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Identity verification through multisystem cooperation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
FR2253418A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4344133A (en) * 1978-07-31 1982-08-10 Motorola, Inc. Method for synchronizing hardware and software
US4409653A (en) * 1978-07-31 1983-10-11 Motorola, Inc. Method of performing a clear and wait operation with a single instruction
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
JPS6079460A (ja) * 1983-10-07 1985-05-07 Nec Corp 密結合多重演算装置における制御方式
US4709326A (en) * 1984-06-29 1987-11-24 International Business Machines Corporation General locking/synchronization facility with canonical states and mapping of processors
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US4816990A (en) * 1986-11-05 1989-03-28 Stratus Computer, Inc. Method and apparatus for fault-tolerant computer system having expandable processor section
US4926320A (en) * 1987-04-07 1990-05-15 Nec Corporation Information processing system having microprogram-controlled type arithmetic processing unit
JP2519798B2 (ja) * 1989-05-30 1996-07-31 富士通株式会社 多重プロセッサシステムにおけるシリアライズ機能の検証方式

Also Published As

Publication number Publication date
DE69022709D1 (de) 1995-11-02
EP0438021A3 (en) 1991-12-04
JPH03222057A (ja) 1991-10-01
EP0438021A2 (en) 1991-07-24
EP0438021B1 (en) 1995-09-27
DE69022709T2 (de) 1996-05-02
US5307483A (en) 1994-04-26

Similar Documents

Publication Publication Date Title
JPH07101410B2 (ja) データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
US5613139A (en) Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message
US5317739A (en) Method and apparatus for coupling data processing systems
US5987550A (en) Lock mechanism for shared resources in a data processing system
EP0563624B1 (en) Method and apparatus for performing conditional operations on externally shared data
EP0358716B1 (en) Node for servicing interrupt request messages on a pended bus
EP0747815A2 (en) Method and apparatus for serializing access to multithreading unsafe resources
JPH0552980B2 (ja)
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
EP0358715B1 (en) Interrupting node for providing interrupt requests to a pended bus
US4920485A (en) Method and apparatus for arbitration and serialization in a multiprocessor system
JPH07120299B2 (ja) マルチプロセッサシステムの試験方法
JPH0683775A (ja) データ処理システム
US5138713A (en) Multiprocessing computer system with exit logic and method for maintaining resource integrity
US5630166A (en) Controlling requests for access to resources made by multiple processors over a shared bus
JPH1115793A (ja) 資源の保全性を保護する方法
JP4584935B2 (ja) 動作モデルベースマルチスレッドアーキテクチャ
US6516403B1 (en) System for synchronizing use of critical sections by multiple processors using the corresponding flag bits in the communication registers and access control register
US5341510A (en) Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor
EP0889396B1 (en) Thread synchronisation via selective object locking
JPH04291660A (ja) プロセッサ間通信方法およびそのための並列プロセッサ
JP2780623B2 (ja) 情報処理装置
JP2972491B2 (ja) バス制御機構及び計算機システム
JP2001022720A (ja) マルチプロセッサシステム
JPH0786865B2 (ja) 多重プロセッサ・レベル変更同期装置