JP2575356B2 - マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置 - Google Patents

マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置

Info

Publication number
JP2575356B2
JP2575356B2 JP60504882A JP50488285A JP2575356B2 JP 2575356 B2 JP2575356 B2 JP 2575356B2 JP 60504882 A JP60504882 A JP 60504882A JP 50488285 A JP50488285 A JP 50488285A JP 2575356 B2 JP2575356 B2 JP 2575356B2
Authority
JP
Japan
Prior art keywords
processor
signal
bus
arbiter
work
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
JP60504882A
Other languages
English (en)
Other versions
JPS62500549A (ja
Inventor
デイーン プフエイフアー,ランデイ
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.)
AT&T Corp
Original Assignee
AT&T 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 AT&T Corp filed Critical AT&T Corp
Publication of JPS62500549A publication Critical patent/JPS62500549A/ja
Application granted granted Critical
Publication of JP2575356B2 publication Critical patent/JP2575356B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking

Landscapes

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

Description

【発明の詳細な説明】 技術分野 本発明は、各プロセツサが少なくとも1つの処理素子
と、他のプロセツサの主記憶の内容を複製する主記憶
と、前記処理素子と主記憶を相互接続するバスと、該バ
スに接続されたバス・アクセス・アービンと、通信を行
うべくバスおよび他のプロセツサのリンクに接続された
リンクを含む1対の非同期的に動作するプロセツサより
成るデユアル・プロセツサ・システムに関する。
発明の背景 マルチ処理環境にあつては、複数個のプロセスは時分
割ベースの場合には単一プロセツサ上で、あるいは複数
個のプロセツサ上で同時に処理が実行される。しばしば
このような環境中にある複数個のプロセスは記憶装置中
に記憶された情報の如き資源の使用を共有する。共有さ
れた資源へのアクセスが1時にただ1つのプロセスのみ
によつて実行されることを保証するため、任意の時点に
おいてただ1つのプロセスが資源にアクセスすることを
許容し、その時に他のプロセスが資源にアクセスするこ
とをロツクアウトする何らかのロツク機構を使用しなけ
ればならない。共用された情報の場合には、情報は一般
に記憶装置中に記憶されており、従つて、ロツク機構は
共有された情報が記憶されている記憶装置、または記憶
装置の少なくとも該当部分に対するアクセスを制御しな
ければならない。
マルチ処理システム中に広く使用されている。ロツク
機構は“信号機方式”(セマフオア)である。この信号
機方式は従来からその上で読み出しおよびクリア動作、
テストおよびセツト動作、読み出し−修正−書込み動
作、あるいは自動読み出し−修正−書き込み機能を実行
する他の形の記憶装置の動作が実行されるレジスタ、ま
たは専用のメモリ・ロケーシヨンとして実現されてい
る。自動読み出し−修正−書き込み機能はその実行期間
中には動作の読み出しおよび書き込み部分において他の
レジスタまたはメモリ参照が許容されていない機能であ
る。
システムの信頼性を増し、メモリ・アクセスのための
プロセツサ間の競合を減少させるため、ある種のマルチ
プロセツサ・システムは複製された、そして多分更に高
価な方法としては模写された記憶装置を使用している。
例えば、共同処理を行うシステムは通常2つの同時に活
性状態となる独立なプロセツサを含んでおり、各プロセ
ツサは他のプロセツサのメモリの内容を複製するそれ自
身の記憶装置を有している。模写された記憶装置を有す
るマルチプロセツサ・システムでは、“信号機方式”の
概念は読み出し−修正−書き込み動作の如きロツク動作
がすべての模写された記憶装置中で同時に行われるよう
拡張されている。何故ならばそのようなシステム中の1
つのプロセツサがそれ自身の記憶装置上でのみロツク動
作を実行する場合には、該プロセツサは他のプロセツサ
に信号機方式によつて保護された情報がロツクされてい
ることを知らせることが出来ないからである。そして1
つのプロセツサがすべての模写された記憶装置はロツク
するが、同時にはそれが行われない場合には、一般に1
つ以上のプロセツサがそれ自身の記憶装置をロツクし、
次いで他の記憶装置をロツクしようと試みて、その内の
少なくとも1部が既に他のプロセツサによつてロツクさ
れていることを見出す可能性が存在する。デツドロツク
として知られるこの状態が生じるといずれのプロセツサ
もロツクによつて保護されている情報にアクセス出来な
くなる。
デツドロツク問題は解決出来るが、ロツク動作をすべ
ての模写されたメモリ中で同時に生起させるという要求
はシステムの特性面で大きな欠点を有している。何故な
らば動作を同時に実行するのに必要な(記憶装置にアク
セスするのに要求される通信バスの如き)種々の資源は
複数個のプロセツサ中で整理されているが、これらプロ
セツサの他の処理活動は実効的に中止しなければなら
ず、必要な資源がすべてのプロセツサ中で確保され、す
べてのプロセツサ中でロツク動作が実行され、整理され
た資源が解放されるまでこれらプロセツサの他の処理活
動は継続することは出来ない。すべてのプロセツサ中に
おけるロツク動作の実行をこのように同期させるために
浪費される時間量はマルチプロセツサ・システムの処理
のスループツトを大幅に損うことがある。このような観
点から、このような同期に対する要求は望ましくない。
発明の要旨 問題点は本発明に従うデユアル・プロセツサ・システ
ムにおいて解決された。即ち各プロセツサは処理素子か
らバスを介して主記憶ロツク動作を受信し、該ロツク動
作を他のプロセツサのリンクに転送し、他のプロセツサ
のリンクによつて転送されたロツク動作を受信し、主記
憶上で転送された動作は実行するべくバスにアクセスす
るリンク中に含まれた手段と;主記憶上における転送さ
れた動作の実行を検出する手段と;処理素子に対するア
ービタ・バス・アクセスから主記憶のロツク動作を実行
させることを要求する処理素子と関連する手段と;アー
ビタと関連し、要求に応動して他のプロセツサのアービ
タに対する要求を通知する手段と;アービタと関連し、
他のプロセツサのアービタからの要求の通知に応動し
て、その以前に通知されたアクノリジメントに続いて転
送された動作の実行を検出する手段による検出が行われ
るときのみにアクノリジメントを通知する手段と;アー
ビタと関連し、他のプロセツサのアービタからのアクノ
リジメントの通知に応動して、その以前に通知されたア
クノリジメントに続いて転送された動作の実行を検出す
る手段による検出が行われるときのみに要求されたバス
・アクセスを許可する手段とを含んでいる。本発明に従
い、そのプロセツサが互いに非同期的に動作するマルチ
プロセツサ・システムはマルチプロセツサ動作、例えば
模写された資源のロツク動作の順序付けを行う方法を実
行する装置を含んでいる。該装置は1つ以上のプロセツ
サ上で実行されるべき動作が1つのプロセツサ上で実行
されることに応動してこれら1つ以上のプロセツサに対
しその実行を知らせる装置と、この知らせに応動して1
つ以上のプロセツサの各プロセツサ上で1つのプロセツ
サ上で実行された動作が実行される前に1つ以上のプロ
セツサの各プロセツサ上で該実行された動作と類似の動
作が実行されることは禁止するが、類似していない動作
の実行は許容する装置を含んでいる。同時に実行された
類似の動作間の優先度は各プロセツサ上のアービトレイ
シヨンにより解決され、プロセツサ間の優先度は優先権
割当てにより解決される。
知らせを行う装置は該知らせを行う装置が丁度その実
行に応動した動作と類似の動作が1つ以上のプロセツサ
の少なくとも1つの上で既に実行されているかどうかを
決定し、禁止を行う手段は類似の動作が既に実行されて
いるという決定に応動して、既に実行されている類似の
動作が各プロセツサ上で実行されるまで、1つ以上のプ
ロセツサの各プロセツサ上における前記知らせを行う手
段によつて応動された動作の更なる実行を禁止し、類似
の動作が既に実行されていないという決定に応動して、
実行されている動作が各プロセツサ上で実行されるま
で、1つ以上のプロセツサの各プロセツサ上で類似の動
作を更に実行することを禁止する。1つ以上のプロセツ
サの各々は、1つ以上のプロセツサの他のプロセツサ中
で模写されている例えば共有記憶装置の如きそれ自身が
使用する資源を含んでおり、実行される動作は原子的な
読み出し−修正−書き込み動作の如き模写された資源を
ロツクする動作である。
以上述べて来た如きマルチプロセツサ・システムにあ
つては、他の類似の動作の実行順序が重大な意味を有す
る例えば共有の模写された資源をロツクする動作の如き
動作は他の類似の動作からの干渉を受ける恐れ無しに、
複数個のプロセツサの各々の上で異なる時点において実
行されることが許容される。何故ならばシステムは複数
個のこれら動作を各プロセツサ上で同じ順序で実行する
ことを保証するからである。ある1つの動作と類似して
いない他の動作はプロセツサ上で実行されることが禁止
されることはなく、該プロセツサはその上で実行される
1つの動作を待機し、前記1つの動作はシステムの他の
プロセツサ上で実行過程中にあつてよい。
実行された動作と類似の種類の動作は同じ動作であつ
ても良いし異なる動作であつても良い。例えば、書き込
み、読み出し−修正−書き込み、およびテストならびに
セツト動作の如き記憶ロケーシヨンの内容を変更し得る
すべての動作は類似の動作であると考えて良い。あるい
は、同じ動作の複数の実例が類似の動作であると考えて
も良い。例えば、複数個のプロセツサまたはプロセツサ
・ユニツトの各々による読み出し−修正−書き込み動作
を実行する各々の試みが同じ動作の1つの実例を構成し
得る。この応用用途にあつては、非同期動作とは、複数
個のプロセツサ上で実行されねばならない動作がこれら
プロセツサ上で同時に実行される必要がなく、他のプロ
セツサ上では他の動作が行われているようにむしろ各プ
ロセツサ上である異なる時刻において実行され得ること
を意味する。
本発明の1実施例に従い、互いに非同期的に動作する
複数個のプロセツサを有す処理システムは、少なくとも
第1および第2のプロセツサ上で実行されるべき動作を
第1のプロセツサ上で開始する装置と、該装置と共同動
作して開始された動作が少なくとも第1および第2のプ
ロセツサ上で実行されることが許容されるかどうかを決
定する装置と、動作が実行されることが許容されている
という決定に応動して開始された動作を各プロセツサ上
で実行する前に開始された動作と類似の第2の動作を実
行することを禁止し、かつ各プロセツサ上で類似してい
ない動作の実行は許容する装置とを含んでいる。プロセ
ツサの各々は禁止装置によつて開始された動作の実行が
禁止されていない場合には開始された動作を実行する装
置を含んでいる。
開始装置は動作を要求する第1の信号(例えばプロセ
ツサ内要求)を発生する装置と第2の信号(例えばプロ
セツサ内許可)の受信に応動して動作を実行する装置を
含んでいる。禁止装置は少なくとも第1および第2のプ
ロセツサの各プロセツサと関連し、第3の信号(例えば
プロセツサ間要求)の受信に応動して、開始された動作
と類似の動作を関連するプロセツサ上で実行した後にプ
ロセツサの第4の信号を送信する手段により以前の第4
の信号が送信されるときにのみ第4の信号(例えばプロ
セツサ間許可)を送信する装置を含んでいる。そして決
定を行う装置は少なくとも第1および第2のプロセツサ
の1つのプロセツサと関連し、第1の信号の受信に応動
して少なくとも第1および第2のプロセツサの他のプロ
セツサの第4の信号を送信する装置に第3の信号を送信
する装置を含んでおり、また少なくとも第1および第2
のプロセツサの他のプロセツサの第4の信号を送信する
装置からの第4の信号の受信に応動して、開始された動
作と類似の動作が1つのプロセツサ上で実行された後で
1つのプロセツサの第4の信号を送信する装置が以前の
第4の信号を送信するときのみ第2の信号を作動装置に
送信する装置を含んでいる。
信号機方式の原子的読み出し−修正−書き込み動作の
如き1つ以上のプロセツサが関与する動作はマルチプロ
セツサ・システムの複数個のプロセツサ上で非同期的に
実行され得るから、複数個のプロセツサ上における動作
の同期的実行および完了を待機するために個々のプロセ
ツサの殆んどの処理活動を停止させる必要はない。むし
ろ個々のプロセツサの処理活動は、あるプロセツサがあ
る時点において他のプロセツサもまた後刻実行しなけれ
ばならない動作を実行していようといまいと、それとは
無関係に継続される。このように資源ロツク機構が、シ
ステムの処理スループツトに影響を与えることなく、共
有の模写されたメモリを有する非同期式マルチプロセツ
サシステムで提供される。
本発明のこれらおよび他の利点および特徴は付図を参
照した本発明の図示の実施例に関する以下の記述から明
白となろう。
図面の簡単な説明 第1図は本発明の一実施例である処理システムのブロ
ツク図、 第2図は第1図のシステムのプロセツサ間リンクのブ
ロツク図、 第3Aおよび3B図は第1図のプロセツサ間リンクの2つ
のタイプの読み出し−修正−書き込みトランズアクシヨ
ンの機能線図、 第4図は第1図のシステムのシステム・バス・アービ
タのブロツク図、 第5図は第4図のシステム・バス・アービタの読み出
し−修正−書き込み制御装置の状態図である。
詳細な説明 第1図を参照すると、コプロセツサ・システム100が
示されている。コプロセツサ・システム100は互いに独
立して非同期的に動作する1対のプロセツサ101および1
11より成るマルチプロセツサ・システムである。一般に
プロセツサ101および111は共に活性状態にあり、各プロ
セツサ101および111は他のプロセツサとは独立にタスク
を実行している。プロセツサ101および111の両方で行わ
ねばならない操作(オペレーション・・・作業)の実行
はこれら2つのプロセツサで同期しては実行されず、一
般に各々のプロセツサで異なる時刻に実行される。
プロセツサ101および111は独立ではあるが、各プロセ
ツサはそれ自身が使用するために主記憶ユニツト(MS
U)102および112を夫々有している。これら主記憶ユニ
ツト102および112は一般に他方の主記憶ユニツトの内容
を複製所有している。主記憶ユニット102と112のこのよ
うな複製部分を複製資源と称する。汎用動作モードにあ
つては、1方の主記憶ユニツトの内容が変化すると他方
の主記憶ユニツトの内容も変化され、それによつてその
内容は複製された状態に保持される。この動作モードは
更新モードと呼ばれる。この記憶内容の複製化によりプ
ロセツサ101および111のいずれかが障害を起こすか、ま
たは1方のプロセツサがサービスの提供を中止するとき
にすべてのシステム・タクスの実行を残りのプロセツサ
が引き継ぐことが出来る。第2の動作モード期間中、主
記憶ユニツト102および112の内容は互いに他の内容を複
製することを中止してよい。第2のモードは例えば障害
を起こした1方のプロセツサに対して保守動作が実行さ
れるときの如く例外的な場合にのみ実行される。
このようなシステムの例が1984年6月22日付のテイー
・ピー・ビシヨツプ等の「再構成可能なデユアル・プロ
セツサ・システム」と題する米国特許願第823,481号
(出願人は本出願の出願人に同じ)に述べられている。
本出願では“0"および“1"なる記号は2つのプロセツ
サ101および111とその構成素子を識別するのに使用す
る、これは説明を分りやすくするための命名法であつ
て、“0側”および“1側”の名称は何ら特別の性質を
有するものではない。本出願にあつてはプロセツサ101
とプロセツサ111は同一である。
前述の主記憶ユニツト(MSU0)102の外にプロセツサ0
101は少なくとも1つの処理ユニツトを含んでいる。少
なくとも1つの処理ユニツトとしてプロセツサ0 101の
中央処理部として動作する1つまたはそれ以上の処理素
子(PE0)103が含まれている。またプロセツサ0 101と
外部との間の通信を行う入出力アダプタ(IOA0)104の
如き他の知的装置も含まれている。プロセツサ0 101中
に含まれている処理ユニツトの具体的な数および型は本
発明とは直接関係がない。
処理ユニツト103および104はシステム・バス(SB0)1
05によつてMSU102に接続されている。SB0 105の機能は
プロセツサ0 101の種々のユニツトの間の情報を伝達す
ることである。SB0 105は時分割多重バスである。バスS
B0 105に接続されているユニツトによるSB0 105へのア
クセスおよび各バス・タイムスロツト期間中における1
つのユニツトから他のユニツトへのバス105を介しての
情報の転送はやはりバスSB0 105に接続されているシス
テム・バス・アービタ(SBA0)106により制御される。
プロセツサ間リンク(IL0)107もまたSBO105に接続さ
れている。IL0 107はプロセツサ0 101のユニツトがプロ
セツサ1 111のユニツトと通信することを許容する機能
を実行する。詳細に述べると、ILO107はMSU0 102および
MSU1 112の内容を同一であるように保持する手段であ
り、かつプロセツサ0 101の処理ユニツトがプロセツサ1
111のMSU1 112で実行されるべきメモリ動作を要求する
手段でもある。
前述の如く、プロセツサ101および111は本発明にあつ
ては同一である。従つて、プロセツサ1 111は主記憶ユ
ニツト(MSU1)112、少なくとも1つの処理素子(PE1)
113、オプシヨナルな入出力アダプタ(IOA1)114、シス
テム・バス(SB1)115、システム・バス・アービタ(SB
A1)116およびプロセツサ間リンク(IL1)117を含んで
いるが、これらの装置はプロセツサ0 101と関連して議
論した装置と同一である。
2つのプロセツサ101と111の間での通信を実行するた
めに、プロセツサ間リンク107および117は非同期プロセ
ツサ間バス(IPB)120によつて相互接続されている。プ
ロセツサ間バス120はリンク107と117の間の情報の転送
を許容する。
2つのプロセツサ101および111のシステム・バス・ア
ービタ106および116はアービタ間チヤネル(IAC)121に
よつて通信を行うべく相互接続されている。通常のシス
テム・バス・アクセス調停機能を実行する外に、アービ
タ106および116はアービタ間チヤネル121と共に2つの
プロセツサ101および111で実行されるべきシステム100
中の動作の実行を制御する複合装置150を形成してい
る。この複合装置150の種々の素子は、両方のプロセツ
サに対しいずれのプロセツサで前記動作を実行すべきか
を知らせ、前記動作がいずれかのプロセツサで実行され
ているかどうかを決定し、複数個の前記動作が一方のプ
ロセツサで実行されたとの異なる順序で他方のプロセツ
サで実行されることを妨げる。詳細に述べると、アービ
タ間チヤネル121は一方のアービタが他方のアービタに
対し1方のアービタのプロセツサの処理ユニツトが両方
のプロセツサの主記憶ユニツト上で実行されねばならな
い読み出し−修正−書き込み(PMW)動作を何時開始す
るかを知らせ、同様な動作が他のプロセツサによつて実
行されているかどうかを決定する。各アービタはIAC121
を介して他のアービタと共同動作することにより1つの
RMW動作が1方のプロセツサ上で実行されているとき、
この1方のRMW動作が関連するプロセツサ上で実行され
るまで両方のプロセツサに向けられた他のRMW動作をそ
の関連するプロセツサ上で実行することを妨げる。しか
し、この期間中に他の動作を実行することは許容されて
いる。これらの機能を実行する複合装置150の動作はア
ービタ106および116の構造および機能を考察する際に更
に詳細に述べる。
システム・バス105および115のプロトコルを考察する
ためシステム・バス・アービタ106に接続されているシ
ステム・バス105より成るバスおよび信号線を示す第4
図を参照する。システム・バス105は高速度、同期式、
時分割多重、トランズアクシヨンに基づくバスである。
各バス・タイム・スロツト期間中、アービタ106はバス1
05を介してのプロセツサ0 101の1つのユニツトから他
のユニツトへの情報の転送を制御する。次のタイムロツ
トは2つの全く異なるユニツト間で情報を転送するのに
使用され得る、着信ユニツトから何かを要求している発
信ユニツトは着信ユニツトが要求を考慮している間はバ
ス105を保持しない。その代りに発信ユニツトはバス・
タイム・スロツトを使用して要求を行い、着信ユニツト
はその後のバス・タイム・スロツトを使用して要求に応
答する。要求タイムスロツトと応答タイムスロツトの間
のタイムスロツトは他のトランズアクシヨンに使用し得
る。
1つのユニツトから他のユニツトへの情報の転送はト
ランズアクシヨンと呼ばれる。トランズアクシヨンは完
了するのに1つ以上のバス・タイムスロツトを要求する
場合がある。例えば、1つのユニツトが他のユニツトへ
のマルチワード・データの転送を行いたいと希望する
と、アービタ106はすべてのワードを転送するのに必要
なだけの連続したタイムスロツトを発信ユニツトに割当
てる。
アドレスおよびデータの転送に加えて、システム・バ
ス105はトランズアクシヨンと関係するユニツトを識別
するために発信および着信コードを伝送する。トランズ
アクシヨンはまたトランズアクシヨンの型および大きさ
を示すコマンド・フイールドを含んでいる。
システム・バス105はシステム・バス105を使用し得る
各ユニツトに対しシステム・バス要求(SBREQ)および
システム・バス許可(SBGRANT)線を含んでいる。更
に、システム・バス105は両方のプロセツサ101および11
1上で実行されねばならない読み出し−修正−書き込み
(RMW)動作を開始させ得る各ユニツトに対する読み出
し−修正−書き込み要求(RMWREQ)線を含んでいる。バ
ス105のSBREQ、RMWREQおよびSBGRANT信号線はアービタ1
06に接続されている。
以下で明らかとなるように、プロセツサ101および111
の1方でのみ実行される他の型のRMW動作もまた存在す
る。この型のRMW動作はプロセツサ101および111が更新
モードにないとき、即ち主記憶ユニツト102および112の
内容が同一に保持されていないときにのみ実行される。
プロセツサ102および112が更新モードにあるか否かはシ
ステム・バス105のSBUD信号線の状態で示される。
システム・バス105の使用を望むユニツトはそのユニ
ツト専用のSBREQ線を使用する。ユニツトがRMW動作をプ
ロセツサ101および111の両方で実行させるためにシステ
ム・バス105を使用したい場合にも、該ユニツトは同様
にその専用RMREQ線を使用する。要求を出しているユニ
ツトに次のバス・タイムスロツトが与えられなかつた場
合には、その要求線は活性状態に留まる。そして該ユニ
ツトはアービタ106がシステム・バス許可信号を該ユニ
ツトに発するまでバスへのアクセスは禁止され、従つて
RMW動作を行うことは出来ない。
ユニツトがアービタ106からSBGRANT信号を受信する
と、該ユニツトはそのSBREQ線を反転させ、更にそのRMR
EQ線が使用されている場合にはRMREQ線も反転させる。
次にこのユニツトはトランズアクシヨンを構成するアド
レス、データ、発信地コード、目的地コードおよびコマ
ンドをシステム・バス105のSBAD、SBD、SBSC、SBDCおよ
びSBCバス上に夫々加え、システム・バス105の“バスが
妥当であることを示す信号(SBV)”線および“コマン
ドが妥当であることを示す信号(SBCV)”線を活性化す
る。
システム・バス103上に出力された情報がバス105によ
つてシステム・バス105に接続された他のすべてのユニ
ツトに伝達されると、各ユニツトは、それが使用中でな
い限り、着信地コード(そしてリンク107ならびにアー
ビタ106の場合にはコマンド・フイールド)を調べて、
自分自身が現在のトランズアクシヨンの目的地であるか
どうかを検査する。もし使用中でないユニツトが目的地
であると、該ユニツトはシステム・バス105上に存在す
る情報をラツチし、次いでその専用のシステム・バス・
アクノリジ(SBACK)線を使用してシステム・バス・ア
クノリジ信号をアービタ106に加える。使用中のユニツ
トはその代りにその専用BUST信号線を使用状態に保持す
る。
アービタ106は着信地コードおよびコマンド・フイー
ルドを調べることによりどのユニツトがトランズアクシ
ヨンの着信地であるかを知り、各々の着信地ユニツトの
BUSY信号線を調べる。すべての着信地が使用中である
と、アービタ106はシステム・バス105のビジー・アボー
ト(SBBA)信号線を使用して該トランズアクシヨンをア
ボートする。発信ユニツトがこのビジー・アボート信号
を受信すると、該ユニツトは再びそのSBREQ線を使用し
てそれ以後のタイムスロツトでシステム・バスを要求す
る。
アービタ106を含むユニツトは発信ユニツトによつて
システム・バス105上に出力されたコマンド情報を調べ
ることによりトランズアクシヨンがいくつのタイムスロ
ツトを占有しているかを知る。複数タイムスロツト・ト
ランズアクシヨンの場合、アービタ106はトランズアク
シヨンの各タイムスロツトに対し要求を出しているユニ
ツトのSBGRANT線に信号を加える。同様に着信ユニツト
は複数タイムスロツト・トランズアクシヨンの各タイム
スロツト期間中そのSBACK信号線に信号を加える。しか
し、発信ユニツトはトランズアクシヨンの各タイムスロ
ツト期間中その要求線に信号を加えない。
第4図に示すアービタ106を更に詳細に議論する前
に、プロセツサ間リンク107および117の動作について述
べることにする。リンク107のブロツク図が第2図に示
されている。リンク117の構造および動作はリンク107の
それと同じである。リンク107は5つの主要な機能ブロ
ツクに分れている。即ちシステム・バス・インタフエー
ス(SBI0)200、プロセツサ間バス・インタフエース(I
BI0)201、入力ジヨブ待行列(IJQ0)202、出力ジヨブ
待行列(OJQ0)203、およびプロセツサ間バス・アービ
タ(IBA0)204である。
システム・バス・インタフエース200はシステム・バ
ス105に接続されており、該インタフエース200はリンク
107がシステム・バス105のプロトコルに従つているかど
うかを確認する。リンク107が使用中でない場合には、
システム・バス・インタフエース200は常時システム・
バス105をモニタし、リンク107をその着信地とするトラ
ンズアクシヨンを探索する。システム・バス・インタフ
エース200はシステム・バス105上で潜在的トランズアク
シヨン要求を受信し、コマンド、発信地コード、着信地
コードおよびアドレスの形態で他のプロセツサ111への
情報転送を行う。この要求はトランズアクシヨンを開始
したプロセツサ101中の発信ユニツトから来る。
システム・バス・インタフエース200はシステム・バ
ス105上に現在送出されているトランズアクシヨンの着
信地コードおよびコマンドを調べて、該トランズアクシ
ヨンがリンク107に向けられているものか否か、即ちリ
ンク107が該トランズアクシヨンの着信地の1つである
か否かを決定する。トランズアクシヨンの着信地として
のリンク107の指定は明示的でも暗示的でも良い。リン
クが着信地コード中で指定されている場合、即ち着信地
コードのEXTERNALビツトがセツトされている場合にはリ
ンク107は明示的着信地である。これによりリンク107は
着信地コード中で指定されたプロセツサ1 111のユニツ
トへの転送を行う。トランズアクシヨンが主記憶ユニツ
ト102を着信地として指定し、動作が書き込み、即ちRMW
であり、SBUD線が“システムは現在更新モードである”
ことを示す場合、リンク107は暗示的着信地である。リ
ンク107はそれがトランズアクシヨンの発信地の場合、
着信地とはならない。
リンク107が着信地である場合、システム・バス・イ
ンタフエース200はトランズアクシヨン情報をラツチす
る。SBI0 200は発信地および着信地コード発生回路を含
んでおり、該回路はプロセツサ1 111のリンク117が使用
するべくトランズアクシヨンの発信地および着信地コー
ドを修正する。この回路は発信地コード中のEXTERNALビ
ツトをセツトし、着信地コード中のEXTERNALビツトをク
リアする。この回路はまた、受信されたトランズアクシ
ヨンが主記憶に対する読み出し−修正−書き込み動作で
あり、かつ指定が暗示的である場合、発信地コードを
“リンク”に変更する。
次にシステム・バス200はトランズアクシヨン情報を
入力ジヨブ待行列202に転送する。
入力ジヨブ待行列202はプロセツサ間バス・インタフ
エース201に対する仕事を保持する。該待行列202は複数
個(この例では16)のエントリ(1つのエントリは1つ
のシステム・バス・タイムスロツトに対応)を保持する
容量を有している。入力ジヨブ待行列202が14またはそ
れ以上のエントリを含んでいる場合には、システム・バ
ス・インタフエース200はアービタ106に対しビジーであ
ることを知らせる。これはこれ以上トランズアクシヨン
・パツケージを受信することが出来ないことを意味す
る。他のユニツトがリンク107をその着信地の1つとし
て有するトランズアクシヨンを開始すると、アービタ10
6はそのトランズアクシヨンをアボートする。これは入
力ジヨブ待行列202が少なくとも3つの占有されていな
いエントリ・スペースを有する状態まで空になるまで継
続され、入力ジヨブ待行列202がこの状態まで空になる
と、システム・バス・インタフエース200はビジー・イ
ンデイケーシヨンを反転させる。
入力ジヨブ待行列202がプロセツサ間バス・インタフ
エース201に対する仕事を保持している間、出力ジヨブ
待行列203はリンク117によつてリンク107に伝送され、
システム・バス・インタフエース200によつてシステム
・バス105に送出されることを待機している情報を保持
する。その容量は3エントリである。しかし、1時に1
つ以上のシステム・バス・トランズアクシヨンを保持す
ることは許容されていない。
リンク107が他のリンク117からその出力ジヨブ待行列
202中にトランズアクシヨンを受信した後、システム・
バス・インタフエース200はリンクのSBREQ信号線に信号
を加える。リンク107はRMWREQ信号線を有していない。
何故ならばリンク107は2つのプロセツサ101および111
と関連するRMW動作は開始させないからである。リンク1
07はプロセツサ0 101上において元の他方のプロセツサ1
111上で開始されたRMW動作の内プロセツサ0に特有の
部分を単に開始させる。アービタ106がSBGRANT信号に応
動するとき、システム・バス・インタフエース200は出
力ジヨブ待行列203から発信地コード、着信地コード、
コマンド・フイールド、アドレスおよびデータをシステ
ム・バス105に加える。他方の側のリンク117はアービタ
106がリンク107のSBREQに許可を与え、出力ジヨブ待行
列203の第1のコントリがシステム・バス105を介して成
功裡に伝送されるまでリンク107によつて他のトランズ
アクシヨンをリンク107の出力ジヨブ待行列203にコピー
することは許容されていない。
リンク107がトランズアクシヨンを送信している着信
地がビジーである場合には、アービタ106はBUSY ABORT
信号線に信号を加えることによりトランズアクシヨンを
アボートする。このことが起こると、システム・バス・
インタフエース200はリンクのSBREQ導線に再び信号を加
え、トランズアクシヨンを再び試みる。リンク107のシ
ステム・バス・インタフエース200が着信地ユニツトに
トランズアクシヨンを成功裡に転送すると、着信地ユニ
ツトはシステム・バス105の専用のSBACK線に信号を加え
てそのことをアービタ106に知らせる。
プロセツサ間バス−アービタ204はリンク107の1部で
あり、リンク107と117のいずれがプロセツサ間バス120
の制御権を有しているかを決定する。アービタ204はプ
ロセツサ間バス120の使用に関する複数個の要求の調整
を行う。アービタ204はシステム・バス105からリンク10
7に入つて来るプロセツサ1 111のリンク117に向けられ
たトランズアクシヨン・ハツケージと、プロセツサ間バ
ス120を介してリンク107中に入つて来るリンク117から
のトランズアクシヨンの調整を行わねばならない。
アービタ204はリンク107と117のいずれがプロセツサ
間バス120の制御権を有しているかを決定する固定優先
度法を使用している。各々のリンクのアービタは関連す
るプロセツサの処理素子からその中に入つて来ているリ
ンク・アイデンテイフイケーシヨン/スレーブ(LIDS)
信号線を有している。LIDS信号線は1方のリンクをマス
タ、他方のリンクをスレーブと指定する信号線である。
リンク107および117の両方が同時にプロセツサ間バス12
0の使用を要求すると、マスタと指定されたリンクは、
現在プロセツサ間バス・トランズアクシヨンが進行中で
ない場合には、スレーブと指定されたリンクよりプロセ
ツサ間バス120の使用に関する優先権を有している。ト
ランズアクシヨンが進行中の場合には、現在のトランズ
アクシヨン・パツケージを送信していないリンクにはそ
のトランズアクシヨン・パツケージを送信した後にプロ
セツサ間バス120の使用権が与えられる。これにより2
つのリンク107と117の間でプロセツサ間バス120が交互
に使用されることになる。
プロセツサ間バス120はトランズアクシヨン・パツケ
ージに基づいて調整される。即ち一度一方のリンクにバ
ス120の使用許可が与えられると、そのリンクはすべて
のパツケージの転送を完了するまでバス120の制御を行
う。パツケージは1つのシステム・バス・トランズアク
シヨン中に含まれているすべての情報を含んでいる。他
方のリンクからパツケージ全体を受信すると、受信を行
つているリンクはそのプロセツサ上でトランズアクシヨ
ンを開始するべくそのプロセツサのシステム・バスの使
用を要求する。
プロセツサ間バス・インタフエース201はリンク107が
プロセツサ間バス120の非同期プロトコルに従つている
ことを確認する働きをする。インタフエース201はプロ
セツサ間バス120上の情報を送信し、バス120を介して情
報を受信し、プロセツサ間バス制御信号を発生し、かつ
それに応動する。
システム・バス105からのトランズアクシヨンがシス
テム・バス・インタフエース200によつて受信され、処
理されて入力ジヨブ待行列207中に加えられると、プロ
セツサ・バス・インタフエース201はプロセツサ間バス1
20のリンクのパツケージ要求(PREQ0)導線に信号を加
えて他方の側のリンク117に対し送信すべきトランズア
クシヨン・パツケージを有していることを知らせる。リ
ンク117のプロセツサ間バス・アービタがプロセツサ間
バス120の制御権をリンク107が有すべきであると決定す
ると、リンク117はプロセツサ間バス120のパツケージ・
アクノリジ(PACK1)導線に信号を加える。リンク107の
プロセツサ間バス・インタフエース201がPACK1信号を受
信すると、該インタフエース201は1つの入力ジヨブ待
行列エントリを形成するアドレス、データ、発信地コー
ド、着信地コードおよびコマンドをバス120のILAD、IL
D、ILSC、ILDCおよびILCバス上に夫々加え、バス120の
プロセツサ間バスが有効であることを示す信号(IBV)
線に信号を加える。リンク117のプロセツサ間バス・イ
ンタフエースがIBV信号を受信すると、該インタフエー
スはバス120からの情報をラツチし、該情報をそれ自身
の出力ジヨブ待行列に転送する。次にリンク117のプロ
セツサ間バス・インタフエースはプロセツサ間バス・ア
クノリジ信号(IBACK)をリンク107に送信し、情報が受
信されたことを示す。
トランズアクシヨン・パツケージが1つ以上の待行列
エントリを占有する場合には、IBV/IBACK信号ハンドシ
エイクが各々のエントリの転送に対して繰返される。リ
ンク107のプロセツサ・バス・インタフエース201がトラ
ンズアクシヨンの最後のエントリを送信するとき、該イ
ンタフエースはプロセツサ間バス120のプロセツサ間リ
ンク・パツケージ完了(ILPC)信号線およびBV信号線に
信号を加える。リンク107がパツケージの最後のエント
リを受信すると、該リンク107は最後のIBACKを返送す
る。リンク107が最後のIBACKを受信すると、該リンク10
7はそのPREQ0要求信号を取り除く。リンク117はパツケ
ージ要求が取り除かれたことを知ると、該リンク117はP
ACK1信号を取り除く。リンク107がその入力ジヨブ待行
列202中に他のトランズアクシヨン・パツケージを有し
ていると、該リンク107は以前のパツケージからのPACK1
信号が反転された後にPREQ0線に再び信号を加える。
リンクが他のリンクから完全なトランズアクシヨン・
パツケージを受信すると、該リンクはそのトランズアク
シヨンをそれ自身のシステム・バス上で開始する。
プロセツサ間リンクの主たる機能はプロセツサ間の転
送を許容すること、詳細に述べると1つのプロセツサ中
の処理ユニツトから他のプロセツサ中の主記憶装置への
転送を許容することである。この機能の必要性はその情
報が両方のプロセツサによつて共有、即ち参照される主
記憶装置中に記憶された情報の複製化の結果として生じ
る。1つのプロセツサが複製された記憶装置中の共有情
報を変更したい場合には、該プロセツサは信号によつて
情報をロツクし、1方のプロセツサが情報の更新をして
いる期間中に他方のプロセツサがその情報を参照しない
ようにしなければならない。記憶装置は複製化されてい
るので、プロセツサはそれ自身の主記憶装置だけでなく
他方の側の複製化された主記憶装置もロツクしなければ
ならない。
主記憶装置中の情報の種々のブロツクのロツクおよび
ロツクの解除は対象となつている情報のブロツクと関連
する主記憶装置の信号手段に対して読み出し−修正−書
き込み(RMW)動作を実行することにより実現される。
この信号手段は各主記憶装置の予め指定された記憶ロケ
ーシヨンである。その名が示すように、RMW動作は記憶
ロケーシヨンの内容の読み出し、読み出された内容の修
正、および修正された内容の記憶ロケーシヨン中への書
き戻しより成る。記憶ロケーシヨンの元の修正されない
内容はまた応答として要求を発しているユニツトに送信
される。要求を発しているユニツトはその応容を調べ、
信号手段が成功裡にロツクされたが、または信号手段が
現在地のユニツトによつてロツクされているかを決定す
る。RMW動作はトランズアクシヨンのコマンド・フイー
ルド中のRMWインストラクシヨンを受信することに応動
して主記憶装置回路により主記憶装置中において実行さ
れる。RMW動作は主記憶装置の実行回路がRM動作の実行
期間中他の主記憶装置の動作の実行を許容しないという
意味で単独的に実行される。
プロセツサ0 101の処理ユニツトは着信地コード中のE
XTERNALビツトを送出し、主記憶装置をトランズアクシ
ヨンの着信地であると指定することによりプロセツサ1
111の主記憶装置112を明示的にロツクしてよい。このこ
とは着信地は主記憶112のみであつて主記憶装置102では
ないことを示す。このようなRMW動作はプロセツサ111の
主記憶装置112上においてのみ実行される。これはシス
テム100が更新モードにないときにのみ実行される。
プロセツサ0 101の処理ユニツトはまた、システム100
が更新モードであるときEXTERNALビツトを送出すること
なく主記憶装置をトランズアクシヨンの着信地として指
定することにより暗示的に主記憶装置112をロツクして
も良い。これは両方の主記憶装置102および112が着信地
であることを示す。このようにして内部および外部主記
憶装置の両方に対する転送は処理ユニツトの単一の要求
から生じ、RMW動作は両方のプロセツサ101および111の
主記憶装置102および112上で実行される。他方のプロセ
ツサに送信される記憶装置に対する動作は発信側のプロ
セツサ中でのメモリ動作と同時刻には一般には実行され
ない。
他方のプロセツサの主記憶装置のみに向けられた読み
出し−修正−書き込み動作(外部動作)と両方の主記憶
装置に向けられた読み出し−修正−書き込み動作(更新
動作)との間には重要な差異がある。前者の場合には、
発信地処理ユニツトは他方のプロセツサの主記憶装置か
らの応答を期待している。しかし後者の場合には、発信
処理ユニツトは他方のプロセツサの外部の主記憶装置か
らの応答を期待していない。何故ならば該発信処理ユニ
ツトはそれ自身のプロセツサの内部の主記憶装置から応
答を受信するからである。従つてリンク107および117は
外部の主記憶装置から更新用の読み出し−修正−書き込
み動作への応答が発信処理ユニツトに達するのを阻止す
る手段を提供している。
これらリンクがこの結果を達成する手段が第3A、3B図
に示されている。これらの図が示すように、この手法は
更新動作の場合、リンクを読み出し−修正−書き込み動
作の発信地として指定することを依存するが、発信処理
ユニツトはEXTERNAL動作の場合発信地として指定され
る。
第3A図は更新読み出し−修正−書き込み動作のトラン
ズアクシヨンを示す。プロセツサ0 101の処理ユニツト1
03または104がRMW要求の発信地であると仮定すると、リ
ンク107は発信地コード中の内部処理ユニツト103または
104を指定し、着信地コード中の内部主記憶ユニツト102
を指定するトランズアクシヨンを受信する。主記憶装置
102はこのトランズアクシヨンに応動してそれ自身上でR
MW動作を実行するだけでなく、リンク107は該リンク107
がトランズアクシヨンの暗示的着信地であることを認識
する。先に議論した如く、リンク107のシステム・バス
・インタフエース200は内部リンクを示す受信されたト
ランズアクシヨンの発信地コードを変更する。リンク11
7はプロセツサ1 111から見ると内部にある(プロセツサ
1 111にはリンク107がプロセツサ間バス120を介して修
正されたトランズアクシヨンを送出する)。リンク117
は該トランズアクシヨンを変更を加えることなく主記憶
ユニツト112に加える。主記憶ユニツト112はそれ自身の
上で要求されたRMW動作を実行し、内部主記憶ユニツト
をトランズアクシヨンの発信地として、内部リンクを着
信地として同定する応答トランズアクシヨンをシステム
・バス115上に送出することによりRMW動作の実行に対す
るアクノリジとする。主記憶ユニツト112から見ると該
ユニツト112は内部主記憶ユニツトであり、リンク117は
内部リンクである。
トランズアクシヨンの着信地であることが分ると、リ
ンク117はリンク107に応答トランズアクシヨンを送出せ
ず、単に該トランズアクシヨンを棄却する。このように
して、プロセツサ1 111の主記憶ユニツト112からの応答
はプロセツサ0 101の発信地処理ユニツト103または104
に到達することが阻止される。
外部の読み出し−修正−書き込み動作のトランズアク
シヨンは第3B図に示されている。再びプロセツサ0 101
の処理ユニツト103または104がRMW要求の発信地である
ものと仮定すると、リンク107は発信地コード中の内部
処理ユニツト103または104を示し、目的地コード中の外
部主記憶ユニツト112を示すトランズアクシヨンを受信
する。外部主記憶ユニツト112が指示されているので、
主記憶102でなくリンク107のみがこのトランズアクシヨ
ンに応動する。リンク107のシステム・バス・インタフ
エース・ユニツト200はリンク107がトランズアクシヨン
の着信地であることを認識し、該ユニツト200はトラン
ズアクシヨンの発信地コードを変更して外部処理ユニツ
トを規定し、着信地コードを変更して内部主記憶ユニツ
トを規定する。
第3A図の例におけると同じように、内部および外部な
る用語はリンク107がプロセツサ間バス120を介して修正
されたトランズアクシヨンを送出する相手先であるプロ
セツサ1 111から見ていることを表わしている。リンク1
17は変更を加えることなくトランズアクシヨンを主記憶
ユニツト112に通過させる。主記憶ユニツト112は要求さ
れたRMW動作を実行し、内部主記憶ユニツト112をトラン
ズアクシヨンの発信地として同定し、外部処理ユニツト
103または104を着信地として同定する応答トランズアク
シヨンをシステム・バス115上に送出することにより該
要求されたRMW動作に対するアクノリジメントとする。
リンク117は自身がトランズアクシヨンの着信地である
ことを認識する。リンク117のシステム・バス・インタ
フエースはトランズアクシヨンを受信し、その発信地コ
ードを変更して外部主記憶ユニツトを規定し、着信地コ
ードを変更して内部処理ユニツトを規定する。この場
合、内部および外部なる用語はリンク117がプロセツサ
間バス120を介して修正されたトランズアクシヨンを送
出する相手先であるプロセツサ0 101から見ていること
を表わしている。リンク107は次にトランズアクシヨン
を変更を加えることなく着信地処理ユニツト103または1
04に送信する。
次に第4図に示すシステム・バス・アービタ(SBA0)
106について考察する。アービタ106および116は同一で
あり、従つてアービタ106に関する議論はアービタ116に
もあてはまる。バス・アービタは当業者にあつては周知
であり、従つて本発明の理解に必要なアービタ106の部
分のみを第4図に示し、それに関して以下で議論する。
アービタ106は通常のアービトレイシヨン回路(ARB)
300を含んでいる。システム・バスの使用が可能なプロ
セツサ0 101の複数個のユニツトのシステム・バス要求
(SBREQ)線はシステム・バス要求制御(SBREQCTRL)回
路301を通してアービトレイシヨン回路300に接続されて
いる。システム・バス許可(SBGRANT)線はアービタ106
から出て行く線であり、各々バスの使用が可能なユニツ
トの1つに加えられている。SBGRANT線はまたシステム
・バス要求制御回路301に接続されている。更新RMW動作
を開始させることが可能なプロセツサ0 101のユニツト
の読み出し−修正−書き込みのプロセツサ内要求(RMWR
EQ)線はシステム・バス要求制御回路301およびOR回路3
03の入力に接続されている。ユニツト要求(UREQ)と呼
ばれるOR回路303の出力は混成読み出し−修正−書き込
みのプロセツサ内要求を表わす。該出力は読み出し−修
正−書き込み制御(RMWCTRL)回路302に加えられてい
る。GOと呼ばれるRMWCTRL回路302の出力は混成読み出し
−修正−書き込みのプロセツサ内許可を表わす。該出力
は要求制御回路301のシステム・バスならびにOR回路303
の禁止(DIS)入力に接続されている。
OR回路303はその入力に現れる信号を論理的に組合わ
せて単一の混成信号とする。回路303はこの混成信号を
選択的にその出力に提供する。該回路303のゲート機能
はRMWCTRL回路302からのGO信号線およびアービタ106のR
MW開始検出器305からのRMWST信号線によつて制御されて
いる。これらの信号線は回路303の禁止(DIS)およびエ
ネイブル(EN)入力に夫々接続されている。RMWCTRL302
によつてGO信号が発生されるまで、回路303はエネイブ
ル状態にあり、混成信号をUREQ信号線上にゲートして出
力する。RMWCTRL回路によるGO信号線の活性化により回
路303は禁止され、該回路303はその出力から混成信号が
出て行くのを阻止し、UREQ信号線を否定状態に保持す
る。検出器305によるRMWST信号線の活性化により回路30
3は再びエネイブルされる。
RMWST信号は、RMW開始検出器305がリンク107以外のプ
ロセツサ0 101のユニツトが更新RMW動作を成功裡に開始
したことを検出したときに該RMW開始検出器305により発
生される。RMW開始検出器305はSBCバスをモニタし、動
作がRMWであるかどうかを決定する。該検出器305は更に
SBDCバスをモニタして、動作の着信地が主記憶ユニツト
102であるかどうかを決定し、リンク107のSBGRANT導線
をモニタしてリンク107がトンラズアクシヨンの発信地
でないことを確認する。該検出器305はまたSBBA信号を
モニタしてバス・トランズアクシヨンが未だアボートさ
れておらず成功裡に進行中であることを確認する。これ
らの条件がすべて満足されると、RMW開始検出器305はRM
WST信号線を活性化する。
システム・バス要求制御回路301はゲート回路であ
る。RMWCTRL302によつてGO信号が発生されるまで、回路
301はRMWREQ信号をまた発生しているユニツトのSBREQ信
号を阻止してアービトレイシヨン回路300に達しないよ
うにする。従つて、GO信号が与えられる前に、アービト
レイシヨン回路300はシステム・バス要求の調整を行
い、更新RMW動作の実行を望まないユニツトに対しての
みシステム・バスの使用を許可する。
OR回路によるUREQ信号線の活性化によりRMWCTRL回路3
02は更新RMW動作の実行要求が保留状態であることを知
り、該回路302はRMW動作を進行させてよいと決定したと
きにGO信号線にパルスを発生する。GO信号を受信すると
SBREQCTRL回路301はすべての保留中のSBREQ信号をアー
ビトレイシヨン回路300に通過させる。このようにしてG
O信号が与えられると、アービトレイシヨン回路300はRM
W動作の実行を望む処理ユニツトのシステム・バス要求
を含むすべてのシステム・バス要求間の調整を行う。ア
ービトレイシヨン回路300がSBGRANT線を活性化すること
により更新RMW動作の実行を望んでいる処理ユニツトに
プロセツサ間システム・バスの使用を許可し、該処理ユ
ニツトが該更新RMW動作を成功裡に実行開始すると、RMW
開始検出器305はRMWST線にパルスを送出する。RMWST信
号を受信するとSBREQCTRL回路301は現在またそのRMWREQ
線を活性化しているユニツトのSBREQ信号を再び阻止し
てアービトレイシヨン回路300に達しないようにする。
RMWCTRL回路302は更新RMW動作の実行時点を制御す
る。詳細に述べると、いずれかのプロセツサ中で開始さ
れた更新RMW動作が、他の更新RMW動作の実行が許容する
前に、両方のプロセツサ上で実行されることを確認する
のがRMWCTRL回路302の仕事である。1つの開始された更
新RMW動作と同時に、または引き続いて開始される他の
更新RMW動作は、1つの更新RMW動作が実行されるまでは
実行が禁止される。このため、RMWCTRL回路302はアービ
タ間通信チヤネル(IAC)121によつて他のシステム・バ
ス・アービタ116の同様なRMWCTRL回路に接続されてい
る。
アービタ間チヤネル121は4本の信号線より成る。RMW
CTRL回路302は0側アービタ要求(AREQ0)線を活性化す
ることにより読み出し−修正−書き込みのプロセツサ間
要求を発生し、アービタ116に対して該回路302が更新RM
W動作の実行を許可したいと望んでいることを知らせ
る。アービタ116のRMWCTRL回路は1側アービタ・アクノ
リジメント(AACK1)線を活性化することにより読み出
し−修正−書き込みのプロセツサ間許可を発生し、その
黙認を通知する。同様にして、アービタ116のRMWCTRL回
路は1側アービタ要求(AREQ1)線でアービタ106のRMWC
TRL回路302に対する更新RMW動作を通告し、RMWCTRL回路
302は0側アービタ・アクノリジメント(AACK0)信号線
上でその黙認を通知する。
RMWCTRL回路302の動作は第5図の状態図によつて規定
される。プロセツサ0 101または他のアービタ116からの
更新RMW動作要求が保留中でない場合には、RMWCTRL回路
302はIDLE状態500にある。回路302は電源クリア(PWC
L)信号を活性化する初期化信号、即ちシステム・リセ
ツトに応動して、または誤り停止(ERST)信号を生じさ
せるプロセツサ0 101中の致命的な誤りの生起に応動し
て、回路302はIDLE状態500に入る。IDLE状態500にあつ
ては、回路302のすべての出力信号線は否定状態にあ
る。UREQ入力信号線が否定状態にあつてプロセツサ0 10
1のいずれのユニツトも更新RMW動作を要求していること
を示し、AREQ1信号線が否定状態にあつて他方のプロセ
ツサにおいて更新RMW動作が開始されていないことを示
し、かつAACK1信号線が否定状態にあつて他のアービタ1
16がアービタ106に更新RMW動作の実行許可を与えていな
いことを示す限り、回路302はIDLE状態500に留まる。
IDLE状態500では回路302は他のアービタ116に対する
アービタ要求は発していないので、回路302がアービタ1
16からアービタ・アクノリジメント信号を受信すると、
回路302はERROR状態507に入つてアービタ対アービタ通
信で誤りが生じたことを知らせる。その後、回路302はI
DLE状態500に戻る。
UREQ信号の受信はプロセツサ0 101のユニツトの内の
少なくとも1つが更新RMW動作を要求していることを回
路302に示し、それによつて回路302は状態501に入る。
この状態501にあつては、回路302はAREQ0信号線を活性
化し、他のアービタ116に対し更新RMW動作の実行を許容
したいと望んでいることを知らせる。次に回路302はア
ービタ116からのアービタ・アクノリジメント信号の受
信を待機する。
回路302はプロセツサ0 101のLIDS信号線に接続されて
おり、それによつてアービタ106がマスタであるかスレ
ーブであるかを、即ち、2つのアービタ106および116の
内のいずれがアービタ間通信の優先権を有しているかを
決定する。LIDS信号線によつてアービタ106がマスタ・
アービタであるとされると、回路302はアービタ116から
のアービタ要求には応答せず、アービタ116からアービ
タ・アクノリジメントを受信するまで状態501に留ま
る。
しかし、アービタ106がスレーブであるとされ、回路3
02がアービタ116からアービタ要求を受信すると、回路3
02は状態501に離れて状態503に入り、該状態において回
路302はAACK0線にパルスを加えることによりアービタ11
6にアービタ・アクノリジメントを発生し、アービタ116
がまず最初に更新RMW動作を進行させることを許容す
る。回路302のアービタ116に対するアービタ要求は保留
状態に留まる。
状態501から状態503に入つてもスレーブ回路302は未
だアービタ116からアービタ・アクノリジメントを受信
していない(即ちAACK1線は活性化されていない)。従
つて回路302は状態503を離れて状態505に入り、バービ
タ116からアービタ・アクノリジメントを受信すること
を待機する。しかし、プロセツサ1 111が更新RMW動作を
開始することを許容するためにアービタ116に対しアー
ビタ・アクノリジメントを与えると、回路302はプロセ
ツサ1 111のリンク117が更新RMWトランズアクシヨンを
リンク107に転送し、リンク107が予め定められた時間内
に主記憶102上で更新RMW動作を実行することを期待す
る。プロセツサ0 101の主記憶ユニツト102上におけるRM
Wトランズアクシヨンの実行がうまくいつたことはRMW到
来検出器304によりRMWARR信号線(第4図)の活性化に
よつて回路302に通知される。従つて状態505にあつては
回路302は予め定められた時間期間の計時を開始すると
共にRMWARRおよびAACK1信号の受信を待機する。
第4図を一時的に参照すると、RMWARR信号はRMW到来
検出器304がリンク107から主記憶ユニツト102に更新RMW
動作が成功裡に到来したことを検出したときに該検出器
304により発生される。検出器304はSBUD線をモニタし、
システム100が更新モードにあるかどうかを決定する。
該検出器304は更にSBCバスをモニタし、動作がRMWであ
るかどうかを決定し、SBSCバスをモニタしてRMW動作が
リンク107から来たかどうか決定し、SBDCバスをモニタ
して、動作の着信地が主記憶ユニツト102であるかどう
かを決定し、主記憶ユニツト102のSBACK線をモニタし
て、バス・トランズアクシヨンが主記憶ユニツト102に
成功裡に到着したかどうかを決定する。検出器304がこ
れらの条件すべてが満足されていることを見出すと、検
出器304はRMWARR信号線を活性化する。
再び第5図に戻ると、そのアービタ要求が尚保留中の
ときに、スレーブ回路302が予め定められた時間が経過
する前に状態505においてRMWARR信号を受信すると、該
回路302はリンク107が主記憶102上においてプロセツサ1
111から受信したRMWトランズアクシヨンを成功裡に実
行したことを知る。従つて、回路302は再び状態501に入
り、その保留中のアービタ要求に対するアービタ・アク
ノリジメントの受信を待機する。状態501においては回
路302は前述の如く動作する。
スレーブ回路302が、予め定められた時間が経過前で
かつそのアービタ要求が尚保留中のときに状態505にお
いてRMWARR信号を受信しないと、該回路302はRMW遅延到
着誤り状態506に入り、システムに対しRMW動作トランズ
アクシヨンがリンク107によつて時間的に間に合つて成
功裡に実行されなかつたことを知らせる。状態506から
回路302はIDLE状態500に入る。しかしスレーブ回路302
は未だGO信号線を活性化していないので、UREQ信号線は
尚活性状態にある。このようにして回路302はAREQ0線を
再び活性化し、再び状態501に入つてAACK1信号の受信を
待機する。
スレーブ回路302が状態505においてAACK1信号とRMWAR
R信号の両方を受信すると、該回路は状態502に入つてGO
信号を活性化し、それによつてそのプロセツサのRMW動
作を進行させる。
最後に、スレーブ回路302は状態505においてAACK1信
号を受信するがRMWARR信号を受信しないと、該回路302
は状態504に入る。この状態において、回路302は予め定
められた時間期間の計時を継続し、かつRMWARR信号を待
機する。
状態504において、回路302がRMWARR信号を受信するこ
となく予め定められた時間期間が経過すると、回路302
は状態506に入り、そこで前述した動作を実行する。し
かし、予め定められた時間期間が経過する前に回路302
がRMWARR信号を受信すると、回路302は状態504に離れて
状態502に入り、GO信号を発生してそのプロセツサの更
新RMW動作を進行させる。状態502およびその後の状態に
おける回路302の動作については以下で述べる。
スレーブ回路302が状態503から状態505および504を通
つて状態502に遷移する条件を考察すると、正規状態、
即ち非誤り状態下で、回路302はRMWARR信号線により通
知されるところのプロセッサ0 101における更新RMW動作
の成功裡の実行が回路302のAACK0信号発生に続いたとき
のみGO信号を発生している。
状態501の考察に戻ると、回路302が状態501にある
間、アービタ116からのアービタ・アクノリジメントの
受信は回路302に対し要求されたRMW動作を進行させてよ
いことを知らせる。これはアービタがLIDS信号線によつ
てマスタまたはスレーブのいずれに指定されていても言
えることである。これに応動して回路302は状態502に入
り、該状態において回路302はGO信号を発生し、要求さ
れたRMW動作の進行に許容する。アービタ要求が保留中
でない場合、回路302は再びIDLE状態500に入る。GO線の
活性化により回路303はUREQ線を否定し、従つて回路302
はIDCE状態に留まる。
回路302が状態502にあるとき、回路302がアービタ116
からのアービタ要求を受信すると、該回路302は状態503
に入り、アービタ116に対するアービタ・アクノリジメ
ントを発生し、更新RMW動作を進めることを許容する。
状態503に入つた後、回路302はアービタ116からアー
ビタ・アクノリジメントを受信し、従つて回路302は状
態503を離れて状態504に入る。状態504において回路302
はRMW動作トランズアクシヨンがプロセツサ0 101上で成
功裡に実行されるのに許容される予め定められた時間期
間の計時を開始する。状態504およびその後の状態にお
ける回路302の動作については既に述べた。
回路302がマスタとしてであれ、スレーブとしてであ
れ状態503から状態504を通して状態502に遷移する条件
を考察すると、正規の状態にあつては、プロセツサ0 10
1上におけるRMW動作の成功裡の実行に続いて回路302に
よつてAACK0信号が発生されるときにのみ回路302はGO信
号を発生する。
次に回路302がIDLE状態500にある間にアービタ要求を
受信したときの回路302の動作について考える。回路302
がUREQ信号の受信と同時にAREQ1信号を受信すると、回
路302はUREQに優先度を与え、AREQ1を無視して前述した
仕方でUREQ信号に応動する。
回路302がAREQ1信号のみを受信すると、該回路302はI
DLE状態500を離れて、状態503に入り、該状態において
該回路302はそのアービタ・アクノリジメント線にパル
スを送出し、プロセツサ1 111がRMW動作を進行させるこ
とを許容する。
回路302が状態503にあるときにUREQ信号を受信する
と、該回路302はそのアービタ要求線を活性化し、その
後スレーブ回路302に対して前述したと同じ仕方で状態5
03に進む。
回路302がそのアービタ要求を活性していない場合で
さえも、回路302が状態503においてアービタ・アクノリ
ジメントを受信すると、誤りが指示され、回路302は状
態507に入つてシステムに対しアービタ対アービタの通
信誤りが生じたことを知らせる。次に回路302は再びIDL
E状態500に入る。
回路302が状態503においてUREQもAACK1信号も受信し
ないと、該回路302は状態505に入り、RMWARR信号の受信
のために許容された予め定められた時間期間を計時す
る。
回路302が状態505にある期間中にUREQ信号を受信する
と、該回路302はそのアービタ要求線を活性化し、その
後スレーブ回路に対して前述した仕方で状態505に進
む。
回路302がたとえそのアービタ要求を活性化しない場
合でさえも、回路302が状態505においてアービタ・アク
ノリジメントを受信すると、誤りが指示され、回路302
は状態507に入つてシステムに対しアービタ対アービタ
通信で誤りが生じたことを知らせる。回路302は状態507
から前述の如くIDLE状態500に再び入る。
状態505において回路302がRMWARR信号のみを受信する
と、該回路302はIDLE状態500に入る。しかし、該回路30
2がアービタ116からRMWARR信号とアービタ要求の両方を
受信すると、該回路302は状態503に再び入り、アービタ
116にアービタ・アクノリジメントを発生する。状態503
において、回路302は最初に状態503を仮定した場合につ
いて述べたのと同じ仕方で動作する。
最後に、状態504において予め定められた時間期間が
経過する前にアービタ302がRMWARR信号を受信しない場
合には、該回路302は状態506に入つて、システムに対し
RMWの遅延到着誤りを知らせる。状態506において、回路
302は以前に述べたのと同様に動作する。
回路302が状態500から状態503に、そして状態505を介
して再び元に戻る遷移を行う条件を考察すると、正規の
状態ではRMWARR信号線によつて知らされるプロセツサ0
101上におけるRMW動作の成功裡の実行に続いて回路302
によつて以前のAACK0信号が発生される場合にのみ回路3
02はAACK0信号を発生することが分る。
もちろん、前述の図示の実施例に対し種々の変更が出
来ることは明らかである。例えば更新モードで実行され
るテストおよびセツト動作、あるいは外部RMW動作さえ
も修正および変更が可能である。RMW制御機構はシステ
ム・バス・アービタ中に含める必要はなく別個に実現し
ても良い。更に前述の方法はデユアル・プロセツサ・シ
ステムに応用が制限されるものではなく、任意個数のプ
ロセツサを有するマルチプロセツサ・システムで有利に
使用することが出来る。このような変更および修正は本
発明の精神および範囲を逸脱することなく、またその付
随する利点を損うことなく実行することが出来る。従つ
てこのような変更および修正は別記の請求範囲に含まれ
るものである。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭58−107977(JP,A) The Bell Systam T ecbnical Jourual.v ol.62,no.1,p207−p220 (1983)

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】互いに複製関係にある複数の複製資源を含
    む資源、該資源に作業を実行する複数のプロセッサ及び
    該プロセッサを該資源に接続して各プロセッサから該資
    源へのアクセスを提供する手段とからなるプロセッサ・
    システムにおいて、 該複数のプロセッサは、各々が非同期的に同時に1つ又
    はそれ以上の作業を該資源に対して実行するよう動作
    し、該作業は1つ又はそれ以上の所定の作業からなるセ
    ットを含み、そして該セット内に含まれる作業の実行は
    その作業が該複製資源各々に実行されてしまう迄は完成
    しないものであり、 該プロセッサの1つによる該セット内に含まれる作業の
    該複製資源への実行に応答して、全ての他のプロセッサ
    による該セット内に含まれるいずれの作業の該複製資源
    の個々への実行を該1つのプロセッサによる該セット内
    の作業の該複製資源のその個々に対する実行がなされる
    迄防止するが、該他のプロセッサによる該セット内に含
    まれていない作業の該複製資源いずれのものへの実行も
    随時許可するようにしている該資源に結合された手段
    (150)を更に含むプロセッサ・システム。
  2. 【請求項2】請求の範囲第1項に記載のシステムにおい
    て、該防止する手段は該全ての他のプロセッサによる複
    製資源への該セット内に含まれる作業の実行を防止して
    いる手段(106、121、116)を含むプロセッサ・システ
    ム。
  3. 【請求項3】請求の範囲第1項に記載のシステムにおい
    て、該セットは資源ロック作業を含むプロセッサ・シス
    テム。
  4. 【請求項4】請求の範囲第1項に記載のシステムにおい
    て、各プロセッサは該セット内に含まれる作業を要求す
    る第1の信号(SBREQ+RMWREQ)を出力し、該要求され
    た作業を第2の信号(SBGRANT)の受信に応答して実行
    しており、そして該防止する手段は、互いに接続され且
    つ各々が該複製資源の個々に接続された複数の第1の手
    段(106、116)からなり、 該第1の手段各々は、(a)要求をしたプロセッサから
    の第1の信号の受信に応答して他の第1の手段へ第3の
    信号(AREQ)を出力し、(b)該第3の信号に応答して
    該セット内に含まれる作業の関連する複製資源への実行
    (RMWARR)か第4の信号の第1の手段による出力に続い
    たときのみ該第3の信号が受信される第1の手段へ第4
    の信号(AACK)を出力し、及び(c)他の第1の手段か
    らの第4の信号の受信に応答して該セット内に含まれる
    作業の関連する複製資源への実行が第4の信号の第1の
    手段による出力に続いたときのみ要求プロセッサに該第
    2の信号を出力しているプロセッサ・システム。
  5. 【請求項5】請求の範囲第1項に記載のシステムにおい
    て、該防止する手段は、互いに接続され該複製資源個々
    に関連した複数の第1の手段(106、116)からなり、該
    第1の手段各々は該セット内に含まれる作業の関連する
    複製資源へのプロセッサによる実行に応答して他の第1
    の手段へそれを通知し、及び別な第1の手段からの通知
    の受信に応答して全ての他のプロセッサによる該関連あ
    る複製資源への該セット内に含まれる任意の第2の作業
    の実行を該第1の作業が該関連する複製資源に実行され
    る迄防止するが、該関連する複製資源への該セット内に
    含まれない任意の作業の実行を許容しているプロセッサ
    ・システム。
  6. 【請求項6】請求の範囲第5項に記載のシステムにおい
    て、各プロセッサはそれに関連した異なる第1の手段を
    有し、各第1の手段は該セット内に含まれる作業の関連
    するプロセッサによる実行に応答して他の第1の手段に
    それを通知し、そして別な第1の手段からの通知の受信
    に応答して関連するプロセッサによる該セット内に含ま
    れる任意の第2の作業の実行を該第1の作業が全ての複
    製資源で実行されるまで防止するが、関連するプロセッ
    サによる該セット内に含まれない作業の実行を許容して
    いるプロセッサ・システム。
  7. 【請求項7】請求の範囲第1項に記載のシステムにおい
    て、該複製資源は複数のメモリからなり、そして該セッ
    ト内に含まれる作業はメモリ内容を変更する処理からな
    るプロセッサ・システム。
  8. 【請求項8】請求の範囲第1項に記載のシステムにおい
    て、該複製資源はその各々が異なるプロセッサに付属し
    た2つの複製関係にあるメモリからなり、該複製のプロ
    セッサは同時に且つ非同期的に動作する一対のプロセッ
    サであって各プロセッサが該複製資源両方をロックする
    メモリロックを含むメモリ作業を実行しており、該アク
    セス提供手段は該複製資源を相互接続してそしてプロセ
    ッサによるそれに付属する複製資源へのロック作業の実
    行に応答して他の複製資源へのロック作業の実行をする
    手段からなり、及び該防止する手段はメモリロック作業
    を実行するためのプロセッサによる要求に応答して
    (a)全ての先に許容されたロック作業が該複製資源両
    方に実行されてしまったとき実行されるべき要求ロック
    作業を許容し及び(b)要求されたロック作業は全ての
    先に許容されたロック作業が該複製資源両方に実行され
    てしまう迄防止されるが、任意の他の作業の実行を許容
    している手段からなるプロセッサ・システム。
  9. 【請求項9】請求の範囲第8項に記載のシステムにおい
    て、該許可防止手段は相互に接続され該複製資源個々に
    付属した一対の第1の手段(106、116)からなり、該第
    1の手段各々は該付属の複製資源へのロック作業を実行
    するため該複製資源の付属するプロセッサによる要求に
    応答して他の第1の手段にそれを通知し、及び他の第1
    の手段からの通知の受信に応答して該複製資源の付属す
    るプロセッサによる該付属の複製資源へのロック作業の
    実行を該要求処理が該付属の複製資源に実行される迄防
    止するが他の作業についてはその実行を許容しているプ
    ロセッサ・システム。
  10. 【請求項10】請求の範囲第8項に記載のシステムにお
    いて、 各プロセッサの該複製資源相互接続手段は、該付属の複
    製資源に該プロセッサを接続するバス(105、115)及び
    該バスに接続され他のプロセッサによる他の複製資源に
    実行されるバスメモリロック作業を該付属の複製資源に
    実行する第1の手段(107、117)とからなり、 各プロセッサの該許容と防止する手段は、該バスに接続
    されメモリロック処理のプロセッサによる実行を検出し
    そして該検出を示す第1の信号(RMWST)を発生する第
    2の手段(305);該バスに接続されメモリロック処理
    の第1の手段による実行を検出しそして該検出を示す第
    2の信号を発生する第3の手段(304);該プロセッサ
    に接続されバスへのアクセスについてのプロセッサ要求
    の受信に応答してバスへのプロセッサアクセスを許可す
    る第4の手段(302);該プロセッサ、該第2の手段及
    び該第4の手段に接続され該第1の信号の受信に応答し
    てバスへのアクセスに関するプロセッサの要求の該第4
    の手段による受信を阻止してロック作業を実行しそして
    第3の信号(GO)の受信に応答して該第4の手段による
    受信の阻止解除をする第5の手段(301);該第3の手
    段、該第5の手段及び他のプロセッサの第6の手段に接
    続され、ロック作業を実行するためのバスへのアクセス
    についてのプロセッサによる要求(UREQ)の受信に応答
    して他のプロセッサの該第6の手段への相互プロセッサ
    要求(AREQ0)を発生し、他のプロセッサの第6の手段
    からの相互プロセッサ要求(AREQ1)の受信に応答して
    もし各相互プロセッサ許可(AACK0)を発生した後に該
    第2の信号を受信したならば相互プロセッサ許可(AACK
    0)を発生し、そして他のプロセッサの第6の手段から
    の相互プロセッサ許可(AACK1)の受信に応答して各相
    互プロセッサ許可(AACK0)を発生した後に該第2の信
    号を受信してしまったならば該第3の信号を発生する第
    6の手段;該プロセッサ、該第2の手段及び該第6の手
    段に接続され該第3の信号の受信に応答してロック作業
    を実行するための該バスへのアクセスについてのプロセ
    ッサによる要求の第6の手段による受信をブロックし、
    及び該第1の信号の受信に応答して該受信の阻止解除を
    する第7の手段(303)とからなるプロセッサ・システ
    ム。
  11. 【請求項11】請求の範囲第8項に記載のシステムにお
    いて、該ロック作業はアトミック読み出し・修正・書込
    み作業であるプロセッサ・システム。
  12. 【請求項12】請求の範囲第1項に記載のシステムにお
    いて、 該複数のプロセッサは同時に且つ非同期的に動作する一
    対のプロセッサであって、各プロセッサは少なくとも1
    つの処理装置(103/113)を有している一対のプロセッ
    サ(101、111)からなり、 各プロセッサにおける該複数の複製資源は、他のプロセ
    ッサのメモリ内容を複製するメモリ(102)/112)から
    なり、 各プロセッサにおけるアクセス提供手段は、該処理装置
    と該プロセッサのメモリとを相互接続するバス(105/11
    5)、及び該バスへ通信のために結合され且つ他のプロ
    セッサのリンクへ結合されたリンクであってバスを介し
    てメモリ上に実行されているメモリロック作業を処理装
    置から受信し及び他のプロセッサリンクにより転送され
    たロック作業を受信しそしてバスをアクセスしてメモリ
    に該転送されたロック作業を実行している手段(107/11
    7)からなり、 各プロセッサにおける防止手段は、該バスに結合された
    アービタであってそこへのアクセスを仲裁するアービタ
    (300)、該メモリに結合され転送された作業のメモリ
    への実行を検出する手段(304、305)、該処理装置に関
    連し該アービタに結合されメモリブロック作業を実行す
    るため該処理装置についてアービタからのバスアクセス
    を要求する手段(SBREQ+RMWREQ)、該要求する手段に
    結合され該要求に応答して他のプロセッサのアービタへ
    要求を通報する手段(AREQ0、302:501)、該検出する手
    段に結合され、そして他のプロセッサのアービタからの
    要求の通報に応答して該受信手段への他のプロセッサに
    より転送されたロック作業のメモリ上への実行の検出手
    段による検出が任意の先の通報確認に続いたときのみ確
    認の通報をする手段(AACK0、302:503)、及び該検出す
    る手段に結合され他のプロセッサのアービタからの確認
    通報に応答して該受信手段への他のプロセッサリンクに
    より転送されたロック作業のメモリ上への実行の該検出
    する手段による検出が任意の先に通報された確認後にさ
    れたときのみ要求されたバスアクセスを許可する手段
    (300、301、302:502)からなるプロセッサ・システ
    ム。
JP60504882A 1984-10-17 1985-10-17 マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置 Expired - Lifetime JP2575356B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66196784A 1984-10-17 1984-10-17
US661967 1984-10-17

Publications (2)

Publication Number Publication Date
JPS62500549A JPS62500549A (ja) 1987-03-05
JP2575356B2 true JP2575356B2 (ja) 1997-01-22

Family

ID=24655833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60504882A Expired - Lifetime JP2575356B2 (ja) 1984-10-17 1985-10-17 マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置

Country Status (7)

Country Link
US (1) US4805106A (ja)
EP (1) EP0196331B1 (ja)
JP (1) JP2575356B2 (ja)
KR (1) KR930008685B1 (ja)
CA (1) CA1239227A (ja)
DE (1) DE3585323D1 (ja)
WO (1) WO1986002475A1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
EP0240616B1 (en) * 1986-04-04 1993-03-24 International Business Machines Corporation Method to test and set data in a record on disk in one atomic input/output operation
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
JP2749819B2 (ja) * 1987-10-26 1998-05-13 松下電工株式会社 共有メモリ制御方式
IT1223142B (it) * 1987-11-17 1990-09-12 Honeywell Bull Spa Sistema multiprocessore di elaborazione con multiplazione di dati globali
US4933901A (en) * 1988-01-11 1990-06-12 Texas Instruments Incorporated Method for assigning priority to read and write requests received closely in time
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
US5175861A (en) * 1988-10-14 1992-12-29 Nec Corporation Lock processing system
US4928222A (en) * 1988-10-31 1990-05-22 International Business Machines Corporation Enhanced semaphore architecture
IT1227711B (it) * 1988-11-18 1991-05-06 Caluso Torino Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo.
IT1227360B (it) * 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
DE69029995T2 (de) * 1989-11-09 1997-08-21 Ibm Multiprozessor mit relativ atomaren Befehlen
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
US5263150A (en) * 1990-04-20 1993-11-16 Chai I Fan Computer system employing asynchronous computer network through common memory
US5669002A (en) * 1990-06-28 1997-09-16 Digital Equipment Corp. Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory
JP2511588B2 (ja) * 1990-09-03 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5428783A (en) * 1990-11-28 1995-06-27 Motorola, Inc. Lan based loosely coupled large grain parallel processing method
US5293491A (en) * 1990-12-28 1994-03-08 International Business Machines Corp. Data processing system and memory controller for lock semaphore operations
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5269005A (en) * 1991-09-17 1993-12-07 Ncr Corporation Method and apparatus for transferring data within a computer system
US5359715A (en) * 1991-09-16 1994-10-25 Ncr Corporation Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
JP2531903B2 (ja) * 1992-06-22 1996-09-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タ・システムおよびシステム拡張装置
US5428796A (en) * 1992-08-26 1995-06-27 International Business Machines Corporation System and method for regulating access to direct access storage devices in data processing systems
US5418966A (en) * 1992-10-16 1995-05-23 International Business Machines Corporation Updating replicated objects in a plurality of memory partitions
US5455914A (en) * 1993-07-23 1995-10-03 Unisys Corporation Tie-breaking control circuit for bus modules which share command execution
US5721943A (en) * 1993-10-14 1998-02-24 International Business Machines Corporation Negotiable locks for concurrent access of control data by multiple programs
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
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
DE69737366T2 (de) * 1997-03-21 2007-11-29 Hitachi, Ltd. Elektronische vorrichtung , verfahren zur verwendung der vorrichtung und system mit der vorrichtung
US6041376A (en) * 1997-04-24 2000-03-21 Sequent Computer Systems, Inc. Distributed shared memory system having a first node that prevents other nodes from accessing requested data until a processor on the first node controls the requested data
US6078981A (en) * 1997-12-29 2000-06-20 Intel Corporation Transaction stall technique to prevent livelock in multiple-processor systems
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
JP3481485B2 (ja) * 1999-01-28 2003-12-22 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム
US6453375B1 (en) * 1999-03-23 2002-09-17 Intel Corporation Method and apparatus for obtaining coherent accesses with posted writes from multiple software drivers
US6275915B1 (en) 1999-04-09 2001-08-14 Avaya Technology Corp. Selective memory duplication arrangement
TR199902280A2 (xx) * 1999-09-17 2001-02-21 Netaş Northem Electric Telecommuni̇cation A.Ş. Eş zamanlama devresi.
US6523076B1 (en) * 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6370625B1 (en) * 1999-12-29 2002-04-09 Intel Corporation Method and apparatus for lock synchronization in a microprocessor system
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
JP3615219B2 (ja) * 2002-10-29 2005-02-02 株式会社フォークス システムコントローラ、コントロールシステムおよびシステムコントロール方法
US7610200B2 (en) * 2004-08-30 2009-10-27 Lsi Corporation System and method for controlling sound data
JP5105713B2 (ja) * 2005-03-30 2012-12-26 日本電気株式会社 情報処理装置
KR100709385B1 (ko) * 2006-07-19 2007-04-24 주식회사 케이 썸 씨앤 에프 컴퓨터 시스템

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623014A (en) * 1969-08-25 1971-11-23 Control Data Corp Computer communications system
AT316662B (de) * 1970-11-17 1974-07-25 Siemens Ag Schaltungsanordnung für Fernmelde-, insbesondere Fernsprechvermittlungsanlage, die durch mindestens zwei Rechner zentral gesteuert werden
BE790654A (fr) * 1971-10-28 1973-04-27 Siemens Ag Systeme de traitement avec des unites de systeme
US4015426A (en) * 1972-11-20 1977-04-05 Nippondenso Co., Ltd. Fuel control system
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
US4257099A (en) * 1975-10-14 1981-03-17 Texas Instruments Incorporated Communication bus coupler
US4187538A (en) * 1977-06-13 1980-02-05 Honeywell Inc. Read request selection system for redundant storage
US4363094A (en) * 1977-12-29 1982-12-07 M/A-COM DDC, Inc. Communications processor
US4205373A (en) * 1978-05-22 1980-05-27 Ncr Corporation System and method for accessing memory connected to different bus and requesting subsystem
US4370708A (en) * 1978-10-31 1983-01-25 Honeywell Information Systems Inc. Logic system for selectively reconfiguring an intersystem communication link
US4400775A (en) * 1980-02-28 1983-08-23 Tokyo Shibaura Denki Kabushiki Kaisha Shared system for shared information at main memory level in computer complex
US4371928A (en) * 1980-04-15 1983-02-01 Honeywell Information Systems Inc. Interface for controlling information transfers between main data processing systems units and a central subsystem
US4363096A (en) * 1980-06-26 1982-12-07 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US4374414A (en) * 1980-06-26 1983-02-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US4371754A (en) * 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
US4466098A (en) * 1982-06-11 1984-08-14 Siemens Corporation Cross channel circuit for an electronic system having two or more redundant computers
US4545015A (en) * 1982-12-27 1985-10-01 Pitney Bowes Inc. Word processing system with foreground/background capability
JPS59142799A (ja) * 1983-02-04 1984-08-16 Hitachi Ltd バツクアツプ用蓄電装置付二重化記憶装置
US4594657A (en) * 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4580243A (en) * 1983-09-14 1986-04-01 Gte Automatic Electric Incorporated Circuit for duplex synchronization of asynchronous signals
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4608688A (en) * 1983-12-27 1986-08-26 At&T Bell Laboratories Processing system tolerant of loss of access to secondary storage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
The Bell Systam Tecbnical Jourual.vol.62,no.1,p207−p220(1983)

Also Published As

Publication number Publication date
EP0196331A1 (en) 1986-10-08
JPS62500549A (ja) 1987-03-05
WO1986002475A1 (en) 1986-04-24
US4805106A (en) 1989-02-14
KR880700353A (ko) 1988-02-22
CA1239227A (en) 1988-07-12
DE3585323D1 (de) 1992-03-12
EP0196331B1 (en) 1992-01-29
KR930008685B1 (ko) 1993-09-11

Similar Documents

Publication Publication Date Title
JP2575356B2 (ja) マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置
JP3579198B2 (ja) データ処理システム及びデータ処理方法
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
CA1305560C (en) Method and apparatus for interconnecting busses in a multibus computer system
US5355455A (en) Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor
EP0535696B1 (en) Apparatus for avoiding processor deadlock in a multiprocessor system
AU1807988A (en) Node for servicing interrupt request messages on a pended bus
JPH0679305B2 (ja) 保留バスを用いて割り込みに応じる装置及び方法
JP2724226B2 (ja) マルチバス多重プロセッサシステムのブロッキングを解除する方法
JP3626292B2 (ja) バスインタフェース制御方式
JPS63286949A (ja) バス制御方式
JPS59223827A (ja) バスア−ビトレ−シヨン回路
JP2906197B2 (ja) 二重化バス装置
JP2825889B2 (ja) マルチプロセッサシステムにおけるデッドロック回避回路
JP2504552B2 (ja) マルチプロセッサコンピュ―タシステムにおいてシステムリソ―スへの充分なアクセスを確保するコマンダノ―ド方法及び装置
JP2976417B2 (ja) マルチプロセッサシステム
JPH07234850A (ja) マルチプロセッサの装置と方法
JPS619747A (ja) バス制御装置
JP2903551B2 (ja) マルチプロセッサの同期化機構
JPH08314870A (ja) データ処理装置
JPH04260956A (ja) デッドロックを回避する方法
JPH0427584B2 (ja)
JPH0553423B2 (ja)
JPS63251840A (ja) マルチプロセツサの異常検出制御方法
JPH0512219A (ja) プロセス転送方式