JPH0225212B2 - - Google Patents

Info

Publication number
JPH0225212B2
JPH0225212B2 JP60074548A JP7454885A JPH0225212B2 JP H0225212 B2 JPH0225212 B2 JP H0225212B2 JP 60074548 A JP60074548 A JP 60074548A JP 7454885 A JP7454885 A JP 7454885A JP H0225212 B2 JPH0225212 B2 JP H0225212B2
Authority
JP
Japan
Prior art keywords
standard
lock
processor
state
states
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
JP60074548A
Other languages
English (en)
Other versions
JPS6118062A (ja
Inventor
Teimoshii Robinson Jon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6118062A publication Critical patent/JPS6118062A/ja
Publication of JPH0225212B2 publication Critical patent/JPH0225212B2/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)

Description

【発明の詳細な説明】
以下の順序で本発明を説明する。 A 産業上の利用分野 B 開示の概要 C 従来の技術 D 発明が解決しようとする問題点 E 問題点を解決するための手段 F 作用 G 実施例 G1 方法の説明(第5A図〜第5C図) G2 ハードウエアの説明(第1図〜第4図、第
6A図〜第6D図) H 発明の効果 〔A 産業上の利用分野〕 本発明はマルチプロセツサ・システムにおける
ロツキング装置、特にロツキング状態の遷移テー
ブルを使用するロツキングシステムに係る 〔B 開示の概要〕 本発明は、共通の資源に対するアクセスを制御
するための少くとも1つのロツクが設けられてい
るマルチプロセツサ・システムにおいて、遷移テ
ーブルに記憶される複数のロツク状態を標準
(canonical)状態と標準対実マツプ(canonical
―actual map)に分解し、この標準対実マツプ
を使用して実プロセツサを標準プロセツサに写像
するとともに、現在の標準状態、標準プロセツサ
のIDおよび要求に従つて遷移テーブル中の新し
い標準状態、通知ビツトおよび標準対標準マツプ
を索引することにより、遷移テーブル中の項目の
数を著しく減少させるようにしたものである。 〔C 従来の技術〕 (密結合および疎結合の)マルチプロセツサシ
ステムでは、共用データまたは共用資源に対する
プロセツサのアクセスを制御することが必要であ
る。このような制御機能を与える装置は、ロツキ
ング装置または同期装置と呼ばれる。ロツキン
グ/同期装置は、システムの全プロセツサが利用
できるものでなければならないので、全プロセツ
サの通信をサポートする特別なハードウエアを必
要とする場合がしばしばある。そのために、ロツ
キング/同期装置の開発費用が非常に高くなるこ
とがある。 この問題は、変更または拡張が容易で、特定の
アプリケーシヨンに適合できる“汎用”のロツキ
ング/同期装置を設計することにより解決され
る。このような装置を提供する1つの方法は、ロ
ツクまたは同期エンテイテイのすべての状態遷移
を遷移テーブル中で符号化することである。例え
ば、ロツクまたは同期エンテイテイLの各々がs
個の状態S(1)〜S(s)のうち1つにあり、そし
てp個のプロセツサP(1)〜P(p)の各々がLに
対してr個の要求R(1)〜R(r)のうち任意のも
のを発信することができるものと仮定する。そう
すると、ロツキング/同期装置の状態遷移動作
は、s・p・r個の項目から成る遷移テーブルT
により指定することができる。ここで、遷移テー
ブルTの各項目T(i、j、k)は、要求R(j)が
プロセツサP(k)から発信されるとき現状態S(i)に
あるロツクの新しい状態を与えるものである。 以下の第1表には、或るシステムの簡単な遷移
テーブルの例が示されている。但し、このシステ
ムは、2個のプロセツサを使用し(p=2)、S1
=アンロツク状態、S2=P1によるロツク状態、
およびS3=P2によるロツク状態の3つの状態を
呈する排他的なロツクを有し、そして使用可能な
要求はR1=ロツクおよびR2=アンロツクからな
るものである。
【表】 ロツクが状態を変更する際、状態変化によつて
は或るプロセツサがその遷移に関係していること
がある。特に、プロセツサは、該プロセツサが発
信したばかりのロツク要求の結果に関係している
のが普通である。ロツク名および新しいロツク状
態を、関係しているプロセツサへどのように通信
するかということは、ロツキング/同期装置をサ
ポートするのに使用されているハードウエアによ
つて異なる。また、これらの情報はバツフアされ
ることがある。ここで、これらの情報は、関係し
ているすべてのプロセツサに伝送できるものと仮
定する。特定の遷移にどのプロセツサが関係して
いるかを決定するため、ブール代数の“通知ベク
トル”N(i、j、k)が遷移テーブルTの各項
目T(i、j、k)に関連づけられる。 例えば、簡単な通知ベクトルN(i、j、k)
は、k個のプロセツサに対応するkビツトのベク
トルから成り、その各ビツトの値は、対応するプ
ロセツサに特定の状態遷移を通知すべきかどうか
を指示する。ここでプロセツサk′に対して、状態
遷移を通知すべき場合をN(i、j、k)(k′)が
真であるとする。従つて、若し、1≦k′≦kにつ
いてN(i、j、k)(k′)が真なら、プロセツサ
P(k′)にロツク名Lと新しい状態T(i、j、
k)が送られる(又はプロセツサP(k′)のバツ
フアに書込まれる)。これはプロセツサP(k′)
が、現に状態S(i)にあるロツクLに対して要求R
(j)を発言するときに行われる。 例えば、第1表に関連して説明した前述の排他
的ロツク装置を拡張して2つの新しい状態:すな
わちS4=P1によるロツク/P2待機およびS5=P2
によるロツク/P1待機を含ましめることが望ま
しいことがある。更に: (a) 若し、ロツクがプロセツサの1つによつて保
持され、そして他のプロセツサがロツク待機状
態になるなら、最初のプロセツサにそのことが
通知され; (b) 若し、或るプロセツサ、例えばP1が、P2に
よつて保持されたロツクを待機しているなら、
P2がこのロツクを解放するとき、そのロツク
状態が“P1によるロツク”になり、P1に通知
されれ;そして (c) P1およびP2は常にそれ自身のロツク要求の
結果に関係している; ようにすることが望ましい。これらの仮定の下で
は、TおよびNは以下の第2表に示すようにな
る。
【表】
〔D 発明が解決しようとする問題点〕
前述の5つのロツク状態を有する排他的ロツク
状態を拡張して8個のプロセツサをサポートしよ
うとすれば、或るロツクを待機中のプロセツサを
待ち行列に入れることが必要となり、状態の数が
著しく増加することになろう。例えば、“P1にに
よるロツク、P1を待機中のP2、P2を待機中の
P3、P3を待機中のP4”のような状態(このよう
な状態は、以下、P4→P3→P2→P1と表示する)
が必要となり、そして状態の総数は、アンロツク
状態の数と、8個のプロセツサのうち任意の1つ
によるロツク状態の数と、8個プロセツサのうち
任意の1つによるロツクおよび待機中の残りのプ
ロセツサによる状態の数、等との和になる。この
総数は次のように計算することができる。 1+8+8・7+8・7・6+… +8・7・6・5・4・3・2・1=109601 従つて、このような組合されたロツク状態の総
数が爆発的に増加すると、簡単なテーブル駆動式
ロツキング/同期装置を前述のようなアプリケー
シヨンについて使用することは、殆んど不可能に
なる。 従つて、本発明の目的は、ロツク状態変更の遷
移テーブルを利用するも、必要な遷移テーブルの
大きさを著しく減少させるようにしたロツキン
グ/同期装置を提供することである。 本発明の他の目的は、広範囲にわたる種々の実
現形態に容易に適応できる汎用のロツキング/同
期装置を提供することである。 〔E 問題点を解決するための手段〕 簡述すると、本発明の目的を達成するために使
用される遷移テーブルでは、複数のロツキング状
態が標準(canonical)状態として記憶され、そ
してこれらの状態は標準プロセツサによつて識別
される。従つて、実際のロツキング状態の特定の
1つを識別するには、標準対実マツプ
(Canonical―Actual Map:CAM)で標準プロ
セツサを実プロセツサに写像する必要がある。或
るプロセツサから受取られた要求が実際のロツキ
ング状態における変更を生ぜしめる場合、このよ
うな変更を反映することができるように、標準状
態および(または)CAMが変更される。後者の
変更は標準対標準マツプ(Canonical―
Canonical Map:CCM)により行なうことがで
きる。 本発明による方法では、ロツク状態は標準状態
と標準対実マツプに分解され、そして実プロセツ
サは標準プロセツサに写像される。現在の標準状
態、標準プロセツサのIDおよび要求は、遷移テ
ーブルにおいて新しい標準状態、通知ビツトおよ
び標準対標準マツプを索引するのに使用される。
標準対実マツプは、標準対標準マツプを用いて置
換(permute)され、通知ビツトは最初の標準対
実マツプを用いて置換される。これらの手法を用
いて、マルチプロセツサの同期命令を実現するロ
ジツクが設計されている。通知線を除くと、これ
らの命令は、“比較・置換”命令または他の読取
り/変更/書込み命令と同様に使用することがで
きる。しかしながら、これらの命令は、同期プリ
ミテイブを直接実行するので同期用としては一層
すぐれている。 遷移テーブル中の標準状態を使用すると、遷移
テーブルに維持しなければならない項目の数を著
しく減少することができ、またすでにアンロツク
されているロツクをアンロツクするような空
(do―nothing)遷移またはまれにしか使用され
ない遷移を遷移テーブルから取除くことにより、
これらの項目の数をさらに減少することができ
る。 本発明はソフトウエアまたはハードウエアのい
ずれでも実現することができ、かつ広範囲のロツ
キング/同期システムに容易に適応することがで
きる。 〔F 作用〕 本発明は、従来技術の問題点を解決するため
に、標準状態および標準対実マツプを使用するこ
とに特徴がある。まず、これらの概念について説
明する。 前述の8個のプロセツサの例では、1つのプロ
セツサがロツクを保持し且つ他の7つのプロセツ
サが待機している8!の状態は、同じように見え
る。すなわち、あるプロセツサ、例えばプロセツ
サAはロツクを保持し、他のあるプロセツサ、例
えばプロセツサBは、プロセツサAを待機し、他
のあるプロセツサ、例えばプロセツサCは、プロ
セツサBを待機している、以下同様である。以
下、A、B、C、…は、“標準プロセツサ”と呼
び、値P1、P2、…Pkの値をとりうる変数とみな
す。従つて、8!の状態のすべては、単一の標準
状態CS: H→G→F→E→D→C→B→A として表示することができ、また特定の“実際”
の状態はどれも、標準状態CSと標準対実マツプ
(CAM)の組合せとして表示することができる。
例えば、実際の状態; P6→P2→P8→P5→P4→P1→P7→P3 については、(CS、CAM)の組合せは: H→G→F→E→D→C→B→A (A、B、C、D、E、F、G、H)→(P3、(P7、
P1、P4、P5、P8、P2、P6) となる。 これらのロツク状態を(CS,CAM)の対とし
て表示し、そして遷移テーブルを標準状態と標準
プロセツサによつて符号化することにより、本例
について遷移テーブルに現われるべきロツク状態
の数は、109601から9に減少する。すなわち、ア
ンロツク状態と待機中のプロセツサ0〜7を伴な
うロツク状態との和に減少するのである。遷移テ
ーブルにおける項目の総数は9・2・8=144、
すなわち(9個の標準状態)×(2個の可能な要求
―ロツクまたはアンロツク)×(要求を行なう可能
性のある8個のプロセツサのどれか1つ)であ
る。しかしながら、以下で説明するように、遷移
テーブルでは、ある追加情報が必要になる。 ここで、標準状態をアンロツクされた状態、A
によるロツク、B→A、C→B→A、等の状態と
し、所与のロツクが: C→B→A、(A、B、C)→(P2、P3、P1) によつて定義された実際の状態にあり、そしてア
ンロツク要求をプロセツサ2から受取るものと仮
定する。そうすると、新しい標準状態は: B→A、(A、B)→(P3、P1) となる。 この新しい標準状態B→Aは遷移テーブルに現
われるであろうから、標準対実マツプの変化は遷
移テーブルにおいて“標準対標準マツプ”
(CCM)として符号化することができる。この例
では、CCMは: (A、B)→(B、C) となる。このCCMの意味は、次のとおりである。
すなわち、この新しいロツク状態では、標準プロ
セツサAは標準プロセツサBによつて前に写像さ
れた実プロセツサに写像し、標準プロセツサBは
標準プロセツサCによつて前に写像された実プロ
セツサに写像する、ということである。かくて、
本例では、実際のロツク状態がP1→P3→P2であ
り、そしてP2がアンロツク要求を与える場合、
CCMは、待ち行列における待機中プロセツサの
位置を1つ進めるようにCAM写像を変更する。 ここで、ロツク状態: C→B→A、(A、B、C)→(P2、P3、P1) では、CAMの残りは、組合せ禁止であるので省
略されていることに注目すべきである。しかしな
がら、実際的な観点からすれば、すべての標準対
実マツプが全プロセツサの完全な置換であるよう
に制限するのが便利である(これは、遷移テーブ
ルに現われる全部の標準対標準マツプがすべての
標準プロセツサの完全な置換でなければならない
ことを意味する。)。従つて、前述のロツク状態が
与えられた場合、若し、ロツク要求を、例えば
P5から受取るなら、CAMの残りでは、FがP5へ
写像することが生じるので、標準プロセツサFか
らのロツク要求、およびD→C→B→A、(A、
B、C、D)→(A、B、C、F) の標準状態C→B→A(CCMの残りは、残つてい
る標準プロセツサの置換である)の遷移テーブル
項目は、常に正しい結果を生じる。他の場合につ
いても同様である。 従つて、各々の遷移テーブル項目は、新しい標
準状態CSiおよび標準対標準マツプCCMを含むこ
とがわかる。標準状態および標準対マツプを使用
するかかる手法は、すべてのプロセツサから同じ
に見えるような装置、すなわち優先プロセツサが
存在しないような装置に適用することができる。 次に、本発明の1つの実現例を詳細に説明す
る。説明の便宜上、標準状態をCS1,CS2,CS
3,…,CSsとし、標準プロセツサをCP1,CP
2,CP3,…CPpとし、CAMとCAM′を標準対
実マツプとし、CCMを標準対標準マツプとする。
そして、実際のロツク状態は(CSi、CAM)の
対として表示され、遷移テーブルは(CSi、Rj、
CPk)の3つの組合せごとに1つの項目を含むも
のとする。この場合、本発明に従つたロツキン
グ/同期装置は次のように動作することができ
る: (a) ロツクLに対する要求Rjを実プロセツサPk
から受取る。 (b) ロツクLの現在の実状態を索引し、例えば
(CSi、CAM)として決定する。 (c) CPk′をCAM(CPk′)=Pkの標準プロセツサ
とする。すなわち、標準対実マツプを検査し
て、どの標準プロセツサCPk′が、要求中の実
プロセツサPkに現に写像されているかを決定
する。 (d) T(i、j、k′)、例えば(CSi′、CCM)を
索引する。このステツプでは、要求を行なつて
いる標準プロセツサをステツプ(c)で決定した後
に、新しい標準状態CSi′および、標準対標準マ
ツプCCMを決定する。これが前のCAMに適用
されると、新しいCAM′を生じる。 (e) 各プロセツサPk″のk″が1≦k″≦Pの任意の
値をとるとき、CAM′(CPk″)=CAM(CCM
(CPk″))とセツトされる。このステツプによ
つて、最初のCAMにおける各標準プロセツサ
CPk″の写像は、各プロセツサごとの新しい写
像CAM′(CPk″)を得るようにCCMによつて
変換される。すなわち、古い標準対実マツプ
CAMを新しい標準対実マツプCAM′に変換す
る操作を標準対標準マツプCCMを用いて行う
ということである。 (f) 上記の(d)及び(e)ステツプによつて新しい標準
状態CSi′と新しい標準対実マツプCAM′の両者
が得られたので、ロツクLの状態を(CSi′、
CAM′)とセツトする。 (g) 1≦k″≦pの各k″値において、プロセツサ
Pk″に対して状態遷移を通知すべきであること
を通知ベクトルN(i、j、k)が指示してい
るとき、すなわち、N(i、j、k)(k″)が
真である場合には新しいロツク状態の情報
(L、CSi′、CAM′)を最初の標準対実マツプ
CAMによつて標準プロセツサCPk″が写像され
た新たなプロセツサ(これは、すなわちCAM
(CPk″)である)に送る。 〔G 実施例〕 〔G1 方法の説明(第5図〜第5C図)〕 以下の第3表は、4個のプロセツサを含むシス
テムの31個の標準状態CS0〜CS30を示す。こ
の特定の例では、ロツキング/同期装置は、排他
的なロツク状態および共用のロツク状態と、3つ
の可能な要求Rj、すなわちR1=アンロツク、R2
=排他的ロツクおよびR3=共用ロツクを使用す
る。第3表で使用された記号のうち、ULはアン
ロツク状態を表わし、A〜Dは標準プロセツサを
表わし、Xは排他的ロツクを表わし、Sは共用ロ
ツクを表わす。事例が異なる場合、例えば、プロ
セツサの数が異なつたり、またはロツク状態のタ
イプが異なる場合の、標準状態セツトの設計は、
当業者にとつては簡単なことである。
【表】
〔G2 ハードウエアの説明(第1図〜第4図、第6A図〜第6D図)〕
本発明のロツキング/同期装置はソフトウエア
でも容易に実現することができるが、以下では第
1図〜第4図、第6A図〜第6D図を参照して簡
単なハードウエアの例を説明する。説明の便宜
上、以下では前述の例に沿つて、すなわち第3表
に示した3つの可能な要求と31のロツク状態を有
する4プロセツサ・システムにおいて、現在の標
準状態がCS12であり、アンロツク要求を実プ
ロセツサP4から受取つているものと想定して、
説明する。 第6A図は、本例で使用できる同期ワードの形
式を示し、そのうちビツト位置3〜7は標準状態
CSiを指定する。同期ワードのCAMセグメント
は、標準プロセツサの各々ごとに2つのビツト位
置を含む。前述のステツプ(a)および(b)では、R1
アンロツク要求をプロセツサP4から受取り、第
5A図に示す同期ワード情報を第6A図に示す同
期ワードの形式で得る。その結果、第6B図に示
すような同期ワードを生じる。要求R1=01、プ
ロセツサID P4=11、および第6B図の同期ワー
ドは、第1図の同期命令ロジツク10に供給さ
れ、かくてプロセツサIDと同期ワードのCAM部
分は、実対標準コンバータ12(詳細は第2図)
の入力として供給される。第2図の例では、実対
標準コンバータ12は、複数の排他的NOR
(XNOR)ゲート14と、それに続く複数の
NANDゲート16を含む。プロセツサIDコード
の第1ビツトPHと第2ビツトPLは、1つ置きの
XNORゲート14の1入力としてそれぞれ供給
され、またXNORゲート14の他の入力には、
第6B図に示された同期ワードのCAMセグメン
トの適切な部分、例えば第1ビツトM2Hまたは第
2ビツトM2L…が供給される。第2図の表記法で
は、入力M2H、M2L、M3H、M3L、M4HおよびM4L
は、第6A図のビツト位置10〜15に対応する。実
プロセツサIDP4=11および第6B図の同期ワー
ド・データについては、第2図の実対標準コンバ
ータ12の出力は(P′H,P′L)=00となり、かく
て要求中プロセツサP4が標準プロセツサ00、
すなわち標準プロセツサAに対応することを指示
する。実対標準コンバータ12のこの出力は変数
CPk′を表わす。 第1図を再び参照するに、要求コードR1=01
は、ROMアドレス入力の一部として、現在の標
準状態CSiの5ビツト表示および実対標準コンバ
ータ12からの2ビツト表示CPk′=00とともに、
ROM17に供給される。ROM17は、遷移テ
ーブル情報を記憶し、通知ベクトルN(i、j、
k′)、新しい状態CSi′、および入力アドレスの各
組合せに対応する標準対標準マツプCCMを与え
る。このように、ROM17は、前述のステツプ
(d)を実行する。前述の例では、ROM17から得
られる8ビツトのCCM出力は、第6C図に示す
ような形式を有する。 前述のステツプ(e)は、CAM置換回路18によ
つて実行される。その一例を第3図に詳細に示
す。標準プロセツサの値ごとに、CAM置換回路
18は、CAM(CCM(CPk″))を計算する。この
CAM置換は、第3図の複数の4対1マルチプレ
クサ(MUX)20により容易に達成することが
できる。第3図の表記法では、信号M1H〜M4H
第6A図のビツト位置8、10、12および14にそれ
ぞれ対応し、信号M1L〜M4Lは第6A図のビツト
位置9、11、13および15にそれぞれ対応する。同
様に、信号C1H〜C4Hは第6C図のビツト位置0、
2、4および6にそれぞれ対応し、信号C1L〜C4L
は第6C図のビツト位置1、3、5および7にそ
れぞれ対応する。第3図のMUX20の各々へ加
わる2ビツトの選択入力は、選択される入力の特
定の1つを決定する。最上部にある1対のMUX
20へ加わる選択入力はCCM(0)に対応するの
で、MUX20のこの対はCAMベクトルを置換
してCAM′(0)を表わす2ビツトを得る。MUX
20の第2、第3および第4の対もこれと同様に
動作してCAM′ベクトルの残りを供給する。 かくて、ロツク・データ(CSi′、CAM′)は、
ROM17の出力に供給される通知ベクトルに従
つて複数のプロセツサに送るべきデータ出力とし
て、供給される。前述の例の場合、結果的なロツ
ク・データは、第6D図に示すようになる。 ROM17から供給される通知ベクトルは、一
般にkビツトを有するベクトルの形式で与えられ
る。ただし、kはプロセツサの数であり、それぞ
れの位置のビツト値“1”は、その位置に対応す
る標準プロセツサに通知すべきことを指示する。
前述の例では、標準プロセツサAおよびBに、
CS12からCS4への遷移を通知すべきものと仮
定した。適切なプロセツサに通知するためには、
CAMを調べて、どのプロセツサが、通知すべき
標準プロセツサAおよびBに対応するかを決定し
なければならない。これは、第1図の通知ベクト
ル置換(写像)回路22により行なわれる。この
回路は、第4図に詳細に示すように、この回路2
2は、複数の1対4デマルチプレクサ(DE―
MUX)24とORゲート26を含む。各々のDE
―MUX24がその入力を供給すべき出力は
CAMからの2ビツトの選択信号に従つて決定さ
れ、該信号は通知ベクトルの当該ビツトによつて
写像される特定の実プロセツサを指示する。本例
では、通知ベクトルは(1100)であつて、標準プ
ロセツサAおよびBに通知すべきことを指示し、
そしてこれらの標準プロセツサは最初のCAMに
従つて、プロセツサP1およびP4と決定される。
通知ベクトル置換回路22の出力は、通知′ベク
トル(1、0、0、1)となり、実プロセツサ
P1およびP4に、新しいロツク状態データを供給
すべきことを指示する。 前述のステツプ(g)では、追加回路(図示せず)
が、ロツク状態データ(CSi′、CAM′)を適切な
実プロセツサに送る。 標準状態と標準対実マツプの手法を使用する
と、広範囲にわたる種々のロツキング/同期装置
をテーブル駆動装置の遷移テーブルとして実現す
ることができる。 また、下記のアプリケーシヨンに適した遷移テ
ーブルを生成手法を開発することは、当業者にと
つては極めて容易なことである。 (a) 待機中プロセツサの待ち行列を有する排他的
ロツク(前述の最初の基本的な例) (b) アクセス権限がプロセツサのリングに沿つて
パスされるような機構、例えば、唯一のロツク
状態が“Aによるロツク”であり、そして漂準
プロセツサへの写像がリングに沿つて順次にパ
スされるような機構、 (c) 第3表に関連して前に説明したような、直並
列式グラフ構造を有する待機中プロセツサの待
ち行列を伴なう共用/排他的ロツク、 (d) 例えば、S.ベーマン他の“DASD制御装置に
おける制限されたロツク装置”(IBM技術レポ
ート、TR0.2859、GPDサンノゼ、1979年10月
15日)で説明しているような制限されたロツク
装置型のロツク。 それぞれの場合の、遷移の数で表わした遭移テ
ーブルの大きさは、 (a)の場合:(p+1)・2・p (b)の場合:1・1・p (c)の場合:(2(p+1)−1)・3・p (d)の場合:(p+2)・2・p である。ただし、pはプロセツサの数である。(c)
の場合、ロツク状態の数は指数関数的に増加する
が、これは“待機”グラフの複雑さの増大による
ものである。しかしながら、(c)の場合でさえも、
本発明による手法は、8ないしそれ以下のプロセ
ツサの場合に適合する。 更に、(例えば、既にアンロツクされているロ
ツクをアンロツクするような)“空”遷移または、
まれにしか使用されない遷移を、種々の方法で遷
移テーブルから取除くことにより、遷移テーブル
の大きさをさらに縮小することができる。 最後に、ロツキング/同期装置が、現に使用中
のロツクまたは同期エンテイテイの情報しか維持
しない場合がしばしばある。このようなスペース
管理は、1つの標準状態を特別な“未使用”状態
として識別することにより、本明細書で説明した
ようなテーブル駆動装置とインターフエースでき
る。例えば、制限されたロツク装置では、アンロ
ツクされたロツクについて2つの標準状態(アン
ロツク状態およびアンロツク/待機状態)がある
が、前者の状態しか特別な“未使用”状態は考慮
されない。 〔G 発明の効果〕 以上詳述したように、本発明によれば、マルチ
プロセツサ・システムにおけるロツキング装置の
ための遷移テーブルの大きさを著しく減少させる
ことができるので、実用的には極めて有用であ
る。
【図面の簡単な説明】
第1図は本発明を実現する同期命令ロジツクの
要部を示すブロツク図、第2図は第1図の実対標
準コンバータの詳細ブロツク図、第3図は第1図
のCAM置換回路の詳細ブロツク図、第4図は第
1図の通知ベクトル置換回路の詳細ブロツク図、
第5A図〜第5C図は本発明の動作を説明するた
めの種々の遷移テーブルの値およびマツプの例を
示す図、第6A図〜第6D図は本発明で使用でき
るデータ形式の例を示す図である。 10……同期命令ロジツク、12……実対標準
コンバータ、14……XNORゲート、16…
NANDゲート、17……ROM、18……CAM
置換回路、20……マルチプレクサ、22……通
知ベクトル置換回路、24……デマルチプレク
サ、26……ORゲート。

Claims (1)

  1. 【特許請求の範囲】 1 複数の実プロセツサが共通の資源を共用し、
    該複数の実プロセツサによる該資源の異なる占有
    状態を有する少なくとも1つのロツクが設けられ
    ているマルチプロセツサ・システムにおいて、 (a) 前記複数の実プロセツサによる前記資源の異
    なる占有状態である複数の第1ロツク状態と、
    前記複数の第1ロツク状態の各々で発生可能な
    要求および該第1ロツク状態の所与の組合せに
    ついて生じる1つの第2ロツク状態、すなわち
    前記第1ロツク状態に続いて発生し得るロツク
    状態とを含むロツク状態遷移情報を記憶するた
    めの遷移テーブル手段を備え、前記第1および
    第2ロツク状態はプロセツサを特定しない標準
    プロセツサによつて識別される標準状態として
    記憶され、その各々は実際に前記第1ロツク状
    態および前記第2ロツク状態において発生し得
    る前記プロセツサによる前記資源の占有状態を
    示す複数の異なつた実ロツク状態を表わすもの
    であり、 (b) さらに前記遷移テーブルにおける標準プロセ
    ツサを実プロセツサに写像するための写像手段
    とを備えた ことを特徴とするマルチプロセツサ・システム。
JP60074548A 1984-06-29 1985-04-10 マルチプロセツサ・システム Granted JPS6118062A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US626163 1984-06-29
US06/626,163 US4709326A (en) 1984-06-29 1984-06-29 General locking/synchronization facility with canonical states and mapping of processors

Publications (2)

Publication Number Publication Date
JPS6118062A JPS6118062A (ja) 1986-01-25
JPH0225212B2 true JPH0225212B2 (ja) 1990-06-01

Family

ID=24509220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60074548A Granted JPS6118062A (ja) 1984-06-29 1985-04-10 マルチプロセツサ・システム

Country Status (4)

Country Link
US (1) US4709326A (ja)
EP (1) EP0166984B1 (ja)
JP (1) JPS6118062A (ja)
DE (1) DE3573032D1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5691181A (en) * 1984-08-21 1997-11-25 Celltech Limited DNA encoding lipase from human gastric mucosal tissue
JPS6243766A (ja) * 1985-08-21 1987-02-25 Hitachi Ltd 共用資源の状態管理方式
JPS62197858A (ja) * 1986-02-26 1987-09-01 Hitachi Ltd システム間デ−タベ−ス共用方式
GB2192739B (en) * 1986-07-18 1991-02-13 Intel Corp Selective input/output port protection
US5146565A (en) * 1986-07-18 1992-09-08 Intel Corporation I/O Control system having a plurality of access enabling bits for controlling access to selective ports of an I/O device
US4858116A (en) * 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in a multiprocessor computer system
US4949239A (en) * 1987-05-01 1990-08-14 Digital Equipment Corporation System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system
US4941083A (en) * 1987-05-01 1990-07-10 Digital Equipment Corporation Method and apparatus for initiating interlock read transactions on a multiprocessor computer system
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
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
GB2217064A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Interfacing asynchronous processors
US5029169A (en) * 1989-07-11 1991-07-02 Bell Communications Research, Inc. Methods and apparatus for fault detection
JPH07101410B2 (ja) * 1990-01-17 1995-11-01 インターナショナル、ビジネス、マシーンズ、コーポレーション データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
JP2528876Y2 (ja) * 1990-06-26 1997-03-12 株式会社ニチエイ サウナ器具
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges
JPH05210640A (ja) * 1992-01-31 1993-08-20 Hitachi Ltd マルチプロセッサシステム
US5392433A (en) * 1992-09-25 1995-02-21 International Business Machines Corporation Method and apparatus for intraprocess locking of a shared resource in a computer system
US5721943A (en) * 1993-10-14 1998-02-24 International Business Machines Corporation Negotiable locks for concurrent access of control data by multiple programs
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US6108757A (en) * 1997-02-28 2000-08-22 Lucent Technologies Inc. Method for locking a shared resource in multiprocessor system
US6173375B1 (en) 1997-02-28 2001-01-09 Lucent Technologies Inc. Method for accessing a shared resource in a multiprocessor system
GB2359641B (en) * 2000-02-25 2002-02-13 Siroyan Ltd Mapping circuitry and method
US7222119B1 (en) * 2003-02-14 2007-05-22 Google Inc. Namespace locking scheme
CN102103523A (zh) * 2009-12-22 2011-06-22 国际商业机器公司 锁分配控制的方法和装置
CN103377086A (zh) * 2012-04-27 2013-10-30 华为技术有限公司 用于异步多核系统操作共享资源的方法、装置及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4249241A (en) * 1978-10-23 1981-02-03 International Business Machines Corporation Object access serialization apparatus for a data processing system
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
US4480304A (en) * 1980-10-06 1984-10-30 International Business Machines Corporation Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
JPS5852264B2 (ja) * 1981-06-12 1983-11-21 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション マルチユニツト・システム
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus

Also Published As

Publication number Publication date
DE3573032D1 (en) 1989-10-19
JPS6118062A (ja) 1986-01-25
EP0166984A2 (en) 1986-01-08
US4709326A (en) 1987-11-24
EP0166984A3 (en) 1987-12-09
EP0166984B1 (en) 1989-09-13

Similar Documents

Publication Publication Date Title
JPH0225212B2 (ja)
US5721870A (en) Lock control for a shared main storage data processing system
KR100293795B1 (ko) 분산형데이터베이스시스템및데이터엔티티액세스방법
US7861093B2 (en) Managing data access via a loop only if changed locking facility
JPS6240740B2 (ja)
KR960012423B1 (ko) 비동기식 디지탈 프로세서 사이에 정보를 교환하기 위한 방법 및 장치
US5555380A (en) Data transfer system with buffer request including block length to update the buffer pointer prior to transferring of the block
US6185650B1 (en) High performance locking facility
US5063501A (en) Information control system for selectively transferring a tree lock from a parent node to a child node thereby freeing other nodes for concurrent access
JPS58133696A (ja) 記憶制御方式
CA2117506C (en) Return address adding mechanism for use in parallel processing system
CN110868365B (zh) 通信方法和通信系统
US7251248B2 (en) Connection device
EP0483250B1 (en) Non-busy-waiting resource control
US9753765B1 (en) Multi-processor integrated circuits
JPH08202646A (ja) I/oコントローラ
JPH05225012A (ja) データ列変換復元方法
JPS61289448A (ja) バツフア記憶装置
JPS6249570A (ja) 画像処理装置
JP2615046B2 (ja) レコード追加処理方法
JP3304503B2 (ja) 2重系マルチプロセッサシステム
JP3179077B2 (ja) 用語の一元管理方式
JPH0561772A (ja) 情報処理システム
JPH10312356A (ja) データ転送装置
JPH0589060A (ja) データベース入出力処理方式