JPS63228367A - 主記憶アクセス方式 - Google Patents

主記憶アクセス方式

Info

Publication number
JPS63228367A
JPS63228367A JP6101087A JP6101087A JPS63228367A JP S63228367 A JPS63228367 A JP S63228367A JP 6101087 A JP6101087 A JP 6101087A JP 6101087 A JP6101087 A JP 6101087A JP S63228367 A JPS63228367 A JP S63228367A
Authority
JP
Japan
Prior art keywords
cpus
access
lock control
cpu
lock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6101087A
Other languages
English (en)
Other versions
JPH0542027B2 (ja
Inventor
Yoshiichi Mori
森 芳一
Tadashi Sato
佐藤 忠氏
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6101087A priority Critical patent/JPS63228367A/ja
Publication of JPS63228367A publication Critical patent/JPS63228367A/ja
Publication of JPH0542027B2 publication Critical patent/JPH0542027B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マルチプロセッサシステムの主記憶アクセス
方式に関し、特に主記憶装置上の特定領域に対するロッ
ク制御を伴う主記憶アクセス方式%式% 〔従来の技術〕 主記憶装置と、この主記憶装置を共有する複数のプロセ
ッサ(以下CPUと略す)とからなり、1つの管理プロ
グラムにより制御されるマルチプロセッサシステムは、
一般に、どのCPUにも属さない多くのシステム資源、
例えば主記憶装置を共有しているため、資源の割り当て
において融通性に富み、しかも、高信頼性が期待できか
つ経済性のあるシステムである。しかしながら、システ
ムの資源を管理しているプログラムを複数のCPUが同
時に実行すれば、同一資源を二つのプログラムに割りつ
けてしまうという事態が生じる可能性がある。このため
、マルチプロセッサシステムにおいては主記憶装置上に
あるシステム管理のための諸情報を参照更新(以下アク
セスと呼ぶ)する場合、あるCPUによる一連のアクセ
スが完了するまで他のCPUがその情報にアクセスする
ことを禁止する必要がある。オペレーティングシステム
のようなプログラムが共有資源の管理を行う場合、この
アクセス禁止処理は、ソフトウェアにより、例えばテス
ト・アンド・セット命令を使用して。
ソフトウェアロックと呼ばれる方法で行なわれる。
一方、プログラムに提供されるハードウェアの一連のプ
ロセスにおいても、複数のCPUが互いに共有のハード
ウェア資源を使用する場合は、前記のような共有資源の
管理が必要となる。例えば。
主記憶装置上の領域をプログラムでアクセス可能なプロ
グラム領域とプログラムでアクセス不可能なハードウェ
ア領域とに分割し、ハードウェア領域を複数CPU間で
共有する場合、前記のようなアクセス禁止処理が必要と
なる。
前記したテスト・アンド・セット命令を使用したソフト
ウェアロックによる方法をマイクロプログラムによって
実現する場合には、複数のCPUから参照更新の可能な
ロックフラグをフリップフロップあるいは主記憶装置の
ハードウェア領域上の一領域で構成し、このロックフラ
グにより共有領域の排他制御を行う必要がある。このソ
フトウェアによる方法によれば、ロック制御はアクセス
手順の一部として行われるため、当該共有領域以外のア
クセスはいずれのCP tJに対しても許可され、特別
なハードウェアを必要とせずに主記憶装置の部分ロック
機能の実現が可能となる。
この種のソフトウェアによるロック管理機構に関する従
来技術としては1例えば、特開昭56−164462号
公報に記載されている。
(発明が解決しようとする問題点〕 しかしながら、前記従来技術のソフトウェアによるロッ
ク管理機構では、ロックフラグを複数のCPU間での共
有資源上に構成し、ロックフラグ更新における競合の制
御をフラグ側で行なう必要がある。
複数のCPU間の共有資源として最も普遍的な主記憶装
置上に前記ロックフラグを構成する場合、ロックフラグ
を実装する特別なハードウェアを必要とはしないが、こ
のロックフラグのアクセスに対する各CPU間の競合は
ハードウェアにより制御されなければならない。これは
通常、フラグの参照更新の間、主記憶装置をハードウェ
アロックすることで行われるが、このハードウェアロッ
クによりロック領域とは無関係な他領域のアクセスまで
もが一時的に禁止されるため、性能の低下を否めな゛い
一方、ロックフラグをフリップフロップで構成する場合
、複数の各CPUと信号線で結合された別ハードウェア
および競合を集中制御する論理回路が必要となる。特に
数多くのCPUで構成されるマルチプロセッサシステム
の場合は、ロックフラグを実装するハードウェアの48
号ビン数が増大し、その構成および制御論理が複雑とな
る問題点があった。
本発明は、前記問題点を解決するためになされたもので
ある。
本発明の目的は、前記ロック制御を行うロックフラグを
主記憶装置や別ハードウェアといった複数のCPU間に
共有資源上に実装することなく。
各CPUがロックフラグを持ち、しがち、ロック領域の
アクセスに対する競合制御を各CPU側で行い、マルチ
プロセッサシステムを構成するCPUが増えても、その
システム構成を容易にする主記憶アクセス方式を提供す
ることにある。
本発明の前記ならびにその他の目的と新規な特徴は1本
明細書の記述及び添付図面によって明らかになるであろ
う。
〔問題点を解決するための手段〕
前記目的を達成するためになされた本発明のうち1代表
的なものの概要を簡単に説明すれば、下記のとおりであ
る。
本発明においては、ロック制御を行うためのロックフラ
グ(ロック制御ビット)を各CPUに分散させて持たせ
、各CPUは互いのロックフラグを参照するのみで更新
することなく、ロック制御を行うようにし、ロック領域
のアクセスに対する競合制御を各CPU側で独立して行
うことにする。
すなわち、N個のCPUと、N個のCPUにより共有さ
れる主記憶装置とからなるマルチプロセッサシステムに
おいて、自CPUによってのみセット、リセット可能で
、がっ他CPUにより参照可能なロック制御ビットを前
記CPU単位にそれぞれ有し、第に番目(k=0,1,
2.  ・・・。
N−1)のCPUが前記主記憶装置の特定領域をアクセ
スする際には、自CPUの第に番目のロック制御ビット
を論理111 PIにセットし、前記自cPUのロック
制御ビットの状態が全ての他CPUに反映した段階で、
i#Jc (i=0.l、2. ・・・、に−1,に+
1.  ・・・、N−1)であるN−1個の他CPUの
ロック制御ビットの論理和がin Onである場合は、
前記主記憶装置の特定領域をアクセスし、アクセスの終
了とともに自CPUの前記第に番目の、ロック制御ビッ
トを論理゛o″′にリセットする。前記i#にであるN
−1個の他CPUのロック制御ビットの論理和が“°1
1′でがっiくk (i:0、t、2t  ・・・、に
−1)である自CPUよりアクセス優先順位が高いk−
1個の他CPUのロック制御ビットの論理和がOIIで
ある場合は、前記i f−にであるN−1個の他CPU
(7)ロック制御ビットの論理和が′“0”となった時
点で前記主記憶装置の特定領域をアクセスし、アクセス
の終了とともに自CPUの前記第に番目のロック制御ビ
ットを論理゛0′″にリセットする。また、前記i≠k
であるN−1個のロック制御ビットの論理和がlll1
1テかっt<it  (i==0、1,2.−−・、に
−1)である自CPUよリアクセス優先順位が高いk−
1個の他CPUのロック制御ビットの論理和が1”であ
る場合は、自CPUの前記第に番目のロック制御ビット
を、−担論理II O71にリセットした後、自CPU
のロック制御ビットの状態が全ての他CPUに反映した
段階で、再び自CPUの前記第に番目のロック制御ビッ
トを論理゛1″にセットし、前記i#にであるN−1個
の他CPUのロック制御ビットの論理和が110 ′g
となった時点で前記主記憶装置の特定領域をアクセスし
、アクセスの終了とともに自CPUの前記第に番目のロ
ック制御ビットを論理“0”にリセットする。
〔作用〕
これにより、ロック領域である主記憶装置の特定領域の
アクセスは、アクセスを行う各cPUのプロセスが他C
PUのロック制御ビットを参照して他CPtJとの競合
状態を必ず調べた後で行なわれるため、ロック領域アク
セスにおける競合は起こらない。
〔実施例〕
以下、本発明の一実施例を図面を用いて説明する。
第2図は1本発明の一実施例の3台のCPUと、この3
台のCPUにより共有される主記憶MSとから構成され
るマルチプロセッサシステムの構成を示した図である。
第2図において、主記憶MSは、プログラムでアクセス
の可能なプログラム領域と、プログラムではアクセスの
不可能なハードウェア領域とに分割されている。ここで
は3台のCPU0.CPU1、CPU2により互いに参
照、更新可能である前記ハードウェア領域中の共有領域
をアクセスする際のロック制御を伴う主記憶アクセス方
式について説明する。
第【図は、本発明の一実施例のマルチプロセッサシステ
ムを構成する3台のCPUのハードウェア構成の要部を
概略的に示した図である。
このマルチプロセッサシステムを構成するCPU0.C
PUI、CPU2は、それぞれにロック制御ビット1,
2.3を有し、このロック制御ビット1,2.3が他C
PUから互いに参照が可能なように、各々のCPUが、
信号線101,102.103,104,105,10
6,107゜108で互いに接続されている。この各C
PUに存在するロック制御ビット1.2.3は、自CP
Uでのみセット、リセットの可能なフリップフロップで
あり、各CPUは前記主記憶MSの共有領域のアクセス
を行う際に自CPUのロック制御ビットを論理″゛1″
にセットする。各CPU間を接続している信号線101
,102,103,104は、前記ロック制御ビットの
状態を自CPUより優先順位の低い他CPUへ伝える信
号線であり、自CPUより優先順位の高い他CPUのロ
ック制御ビットのうち、少なくとも1つが論理1419
であれば1″となる信号線である。CPU1を例にとる
と、信号線102はCPU0のロック制御ビット1の値
を反映し、線103には線102とCPU1のロック制
御ビット2の論理和をとった値が反映され、CPU2へ
送られる。また、ここでの信号線101,102.10
3の状態はそれぞれCptJot t、2c7)XPL
OCtl:いうテスト条件に反映する。
したがって、XPLOCK=”1”の時は自cpUより
優莞順位の高いCPUの少なくとも1つのロック制御ビ
ットが論理n l 7′であることを示す。
一方、信号線105,106,107,108は、信号
線101,102,103.104とは逆に自CPtJ
よりアクセス優先順位が高いCPUへ、自CPUより優
先順位の低いCPUのロック制御ビットの論理和を、伝
える信号線である。信号線109,110,111の信
号は、それぞれ。
信ei101と107.信号線102と106゜信号線
103と105の論理和をとった信号であり、XLOC
Kというテスト条件に反映される。
したがって、XLOCK=“I nの時は、他cpUの
少なくとも1つのロック制御ビットが、論理it 1 
r+であることを示す。
第3図は、本発明の一実施例の各CPUが主記憶MSを
アクセスする場合に行う前記共有領域のアクセス手順を
示したフローチャートである。
各CPUは前記共有領域のアクセスにおいて。
他CPUに対するロック制御が必要であれば、第3図に
示すようなアクセス手順に従い処理を行う。
次に、このアクセス手順の処理を第3図を参照して説明
する。
各CPtJは、主記憶MSのアクセスに先立ち。
自CPUのロック制御ビットを論理11177にセット
し、他CPUに対してロック領域のアクセスであること
を宣言する(ステップ100)、次に他CPUとの競合
を調整するために他CPUのロック制御ビットをテスト
し、同期化を計る(ステップ200゜ステップ500)
。ここで他CPUのロック制御ビット状態のテストは自
CPUのロック制御ビットのセット後、自CPUのロッ
ク制御ビットの状態が他の全てのCPUに対して反映さ
れるまで待つ必要がある。これは、複数のCPtJが同
時に自らのロック制御ビットをセットシた場合でも前記
テストを行う段階で必ず互いのロック制御ビットの状態
をテストに反映させ、CPU間の優先順位がとれるよう
にするためである。
前記テストの結果、他CPUのロック制御ビットが全て
論理“′0′″(XLOCK=″’O”)であれば(ス
テップ200)、他CPUは主記憶MSのアクセスに対
してロックをかけていない状態なので、処理はステップ
300の主記憶MSのアクセスに進む。
逆に、他CPUのロック制御ビットのうち少なくとも1
つが論理パビ’(XLOCK=”ビ)であれば(ステッ
プ200)、処理はステップ500のテスト(XPLO
CK=”l”)に進む。このステップ5ooノテストは
、自CPUによりアクセス優先順位の高い他CPUのロ
ック制御ビットの状態をテストするもので、テストの結
果、自cPUより優先順位が高い他CPUのロック制御
ビットが全て論理110 H(XPLOCK=”O”)
であれば、処理は再びステップ200のテストに移る。
このとき、ロック制御ビットを論理111 gHにして
アクセス宣言した自CPUの優先順位が一番高いときで
あり、しかも、優先順位の低い他CPUが主記憶MSの
アクセスを行っている状態であり、ステップ200.ス
テップ500のテストを繰り返し行い、このとき主記憶
MSのアクセスを行っている優先順位の低い他CPUの
主記憶MSアクセスの完了により、アクセス権が開放さ
れるのを待つ。自CPUよりアクセス優先順位の高い他
CPUのロック制御ビットのうち。
少なくとも1つが論理”1”(XPLOCK=”ビ′)
であれば、処理はステップ600に進む。ステップ60
0では、自CPUのロック制御ビットを論理“0゛′に
リセットして、他CPUに対して主記憶MSのアクセス
宣言を一担を開放し、自CPUのロック制御ビットの状
態が他の全てのCPUに対して反映されるまでの所定時
間を待った後、再びステップ100の処理に戻り、自C
PtJのロック制御ビットを論理ビ′にセットし、他C
PUに対してロック領域のアクセスであることを宣言し
て、ロック制御の処理を行なう。このようにして、他C
PUとのアクセスの競合の調整をとる。
また、最終的に主記憶MSのアクセスの完了後はステッ
プ400の処理において、自CPtJのロック制御ビッ
トを論理““0”にリセットすることで、他CPUに対
して主記憶MSのアクセス権を開放してロック制御処理
の状態を抜ける。
本実施例では、CPUが3台の場合について述べている
が1本発明では、各CPUがロック制御ビットをもち、
しかもロック制御論理の処理は各CPUが独立に行って
いるので、CPUが3台以上の場合においても同様にそ
の実現が可能であることは容易に理解されよう。
以上、本発明を実施例に基づき具体的に、説明したが、
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において、種々変形し得ることは
勿論である。
〔発明の効果〕
以上、説明したように、本発明によれば、複数のCPU
間で共有するロックフラグを実装したハードウェアを必
要とすることなく、ロック制御が容易に実現できる。ま
た、このロック制御は、各CP シI、が自CPUでの
みセット、リセット可能なロック制御ビットを持ち、自
CPUのみのロック制御論理で行うことができ、しかも
各CPUに分散したロック制御論理が共通であるため、
同−CPUを複数個組合せるだけで、マルチプロセッサ
システムの構成が容易にできる。
【図面の簡単な説明】
第1図は、本発明の一実施例のマルチプロセッサシステ
ムを構成する3台のCPUのハードウェア構成の要部を
概略的に示した回路図、第2図は、本発明の一実施例の
3台のcpuと。 3台のCPUにより共有される主記憶MSとから構成さ
れるマルチプロセッサシステムの構成を示したブロック
図、 第3図は、本発明の一実施例の各CPUにおける主記憶
アクセス手順を示すフローチャートである。 図中、l、2.3・・・ロック制御ビット、4〜12・
・・オアゲート、101〜110・・・信号線である。 代理人 弁理士 小川勝馬 、−1L、)゛・、−一

Claims (1)

    【特許請求の範囲】
  1. 1、N個の処理装置と、N個の処理装置により共有され
    る主記憶装置とからなるマルチプロセッサシステムにお
    いて、自処理装置によってのみセット、リセット可能で
    、かつ他処理装置により参照可能な識別子を前記処理装
    置単位にそれぞれ有し、第k番目(k=0、1、2、・
    ・・、N−1)の処理装置が前記主記憶装置の特定領域
    をアクセスする際には、自処理装置の識別子である第k
    番目の識別子を論理“1”にセットし、自処理装置の識
    別子の状態が全ての他処理装置に反映した段階で、i≠
    k(i=0、1、2、・・・、k−1、k+1・・・、
    N−1)であるN−1個の他処理装置の識別子の論理和
    が“0”である場合は、前記主記憶装置の特定領域をア
    クセスし、アクセスの終了とともに自処理装置の前記第
    k番目の識別子を論理“0”にリセットし、前記i≠k
    であるN−1個の他処理装置の識別子の論理和が“1”
    でかつi<k(i=0、1、2、・・・、k−1)であ
    る自処理装置よりアクセス優先度が高いk−1個の他処
    理装置の識別子の論理和が“0”である場合は、前記i
    ≠kであるN−1個の他処理装置の識別子の論理和が“
    0”となった時点で前記主記憶装置の特定領域をアクセ
    スし、アクセスの終了とともに自処理装置の前記第k番
    目の識別子を論理“0”にリセットし、前記i≠kであ
    るN−1個の識別子の論理和が“1”でかつ1<k(1
    =0、1、2、・・・、k−1)である自処理装置より
    アクセス優先度が高いk−1個の他処理装置の識別子の
    論理和が“1”である場合は、自処理装置の前記第k番
    目の識別子を一担論理“0”にリセットした後、自処理
    装置の識別子の状態が全ての他処理装置に反映した段階
    で、再び自処理装置の前記第k番目の識別子を論理“1
    ”にセットし、前記i≠kであるN−1個の他処理装置
    の識別子の論理和が“0”となった時点で前記主記憶装
    置の特定領域をアクセスし、アクセスの終了とともに自
    処理装置の前記第k番目の識別子を論理“0”にリセッ
    トすることを特徴とする主記憶アクセス方式。
JP6101087A 1987-03-18 1987-03-18 主記憶アクセス方式 Granted JPS63228367A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6101087A JPS63228367A (ja) 1987-03-18 1987-03-18 主記憶アクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6101087A JPS63228367A (ja) 1987-03-18 1987-03-18 主記憶アクセス方式

Publications (2)

Publication Number Publication Date
JPS63228367A true JPS63228367A (ja) 1988-09-22
JPH0542027B2 JPH0542027B2 (ja) 1993-06-25

Family

ID=13158933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6101087A Granted JPS63228367A (ja) 1987-03-18 1987-03-18 主記憶アクセス方式

Country Status (1)

Country Link
JP (1) JPS63228367A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0424862A (ja) * 1990-05-18 1992-01-28 Nec Corp 処理装置間の障害検出方式
JP2009140217A (ja) * 2007-12-06 2009-06-25 Miura Co Ltd 連携制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0424862A (ja) * 1990-05-18 1992-01-28 Nec Corp 処理装置間の障害検出方式
JP2009140217A (ja) * 2007-12-06 2009-06-25 Miura Co Ltd 連携制御方法

Also Published As

Publication number Publication date
JPH0542027B2 (ja) 1993-06-25

Similar Documents

Publication Publication Date Title
US7506339B2 (en) High performance synchronization of accesses by threads to shared resources
US5524247A (en) System for scheduling programming units to a resource based on status variables indicating a lock or lock-wait state thereof
US6029190A (en) Read lock and write lock management system based upon mutex and semaphore availability
JP2511588B2 (ja) デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置
US6047316A (en) Multiprocessor computing apparatus having spin lock fairness
EP0145889B1 (en) Non-spinning task locking using compare and swap
US5050072A (en) Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system
US5613139A (en) Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message
US6112222A (en) Method for resource lock/unlock capability in multithreaded computer environment
US6779090B2 (en) Spinlock for shared memory
US6792497B1 (en) System and method for hardware assisted spinlock
US5893157A (en) Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
JPH07101410B2 (ja) データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
JP2010003315A (ja) データ処理装置及び共用資源へのアクセス制御方法
JPH0324696B2 (ja)
CN113934516B (zh) 一种锁管理方法、装置及设备
US20030126187A1 (en) Apparatus and method for synchronization in a multi-thread system of JAVA virtual machine
US6105050A (en) System for resource lock/unlock capability in multithreaded computer environment
JP4457047B2 (ja) マルチプロセッサシステム
JPS63228367A (ja) 主記憶アクセス方式
US7099974B2 (en) Method, apparatus, and system for reducing resource contention in multiprocessor systems
US6701429B1 (en) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
JP2014182507A (ja) 計算機及び排他制御方法及び排他制御プログラム
CN112306703A (zh) 一种numa系统中的临界区执行方法及装置
US6981108B1 (en) Method for locking shared resources connected by a PCI bus