JPH10333973A - 排他制御装置とデータ処理システム - Google Patents

排他制御装置とデータ処理システム

Info

Publication number
JPH10333973A
JPH10333973A JP9137089A JP13708997A JPH10333973A JP H10333973 A JPH10333973 A JP H10333973A JP 9137089 A JP9137089 A JP 9137089A JP 13708997 A JP13708997 A JP 13708997A JP H10333973 A JPH10333973 A JP H10333973A
Authority
JP
Japan
Prior art keywords
lock
data processing
lock acquisition
request
state
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.)
Pending
Application number
JP9137089A
Other languages
English (en)
Inventor
Taketo Fujiwara
武人 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP9137089A priority Critical patent/JPH10333973A/ja
Publication of JPH10333973A publication Critical patent/JPH10333973A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 主記憶を共有するための排他制御を局所的な
偏りを無くして、高速な排他制御を実現する。 【解決手段】 各処理装置のための排他制御は、その処
理装置が接続するキャッシュユニット内のロックリクエ
スト制御装置により、ロック変数の状態に基づいて制御
される。ロックリクエスト制御装置は、ロックリクエス
トまたはアンロックリクエストを受け取ると、ロック変
数のアドレスを保持するロックアドレスレジスタを索引
し、対応するロックステータスレジスタに格納されてい
るロック状態を参照する。ロック変数の状態として、単
に個々の装置がロック状態またはアンロック状態にある
ことを示すだけでなく、種々の状態が定義される。たと
えば、ALKは、すでに他の装置でロックを確保してい
ることが確認されている状態を表す。これにより、他の
装置の状態確認を要せずに速やかにロックリクエストの
問い合わせに答えることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムのための排他制御装置に関し、特に主記憶装置を共有
する複数のデータ処理装置を有するデータ処理システム
及び排他制御装置に関する。
【0002】
【従来の技術】データ処理システムにおいては、CPU
を具備する複数のデータ処理装置が主記憶装置を共有す
るように構成される場合がある。かかる場合において、
複数のデータ処理装置が同時に主記憶装置をアクセスす
ることができないので、ある共有領域のデータをある特
定のデータ処理装置が一定期間自己だけ使用して他の装
置の使用を禁止するという排他的に使用する必要が生じ
る場合がある。たとえば、あるデータ処理装置がある共
有領域のデータに例えば”1”を加える操作をする場合
には、その共有領域のデータを読み出して”1”を加え
て、”2”とした後、再びその共有領域に書き込む一連
の処理の間は、他のデータ処理装置からの当該共有領域
のデータへのアクセスを禁止しなければならない。そう
でなければ、他のデータ処理装置が最初の例えば”1”
を加える操作後”1”を引く操作をしたならば、あるデ
ータ処理装置の次の加える操作で誤差が生じるので、デ
ータの更新結果が保証されないことになる。
【0003】この排他的アクセスを保証するために、使
用されるのがロック変数である。共有領域にアクセスす
る際には必ずこのロック変数をチェックして、ロック状
態に無いことを確認する必要がある。そのロック変数が
アンロック状態であれば、それをロック状態にしてから
対応する共有領域にアクセスする。その後排他的な処理
が終了したあとに、ロック変数をアンロック状態に戻
す。このような制御をロック制御という。
【0004】たとえば、特開平08−044616号公
報には、複数の処理装置からの主記憶アクセスについて
のロック制御を行うアクセス装置の技術思想が開示され
ている。この従来技術では、ロック変数の状態で他の記
憶装置のロック変数にアクセスせずにロックを取得可能
にしている。従って、ある記憶制御装置でロックを取得
しようとするリクエスト(以下、「ロックリクエスト」
という)やロックを解放しようとするリクエスト(以
下、「アンロックリクエスト」という)を受け取ると、
ロック変数の状態においては他の記憶装置におけるロッ
ク変数の状態のチェックや更新を行わずに、ロック制御
のための処理を局所的にして、高速なロック制御を可能
として、ロックが取得できてしまう。
【0005】即ち、上記公報には、主記憶装置を有する
複数のデータ処理装置を有するデータ処理システムにお
ける複数のデータ処理装置の少なくとも一つに関するロ
ック変数の状態をそれぞれ制御する複数のロック制御装
置において、ロック変数の状態を少なくとも一つ登録す
る登録手段と、登録手段に登録されたロック変数の状態
を保持する状態保持手段を含み、状態保持手段は、ロッ
ク変数の状態として、いずれのロック制御装置において
もロック取得されていない旨の特定の状態を含み、各ロ
ック変数についてはロック制御装置の多くとも一つのみ
が当該特定の状態を取るように制御される。このロック
変数に3つの状態を現すことで、共有の主記憶装置を使
用可能か否かを局所的に知ることができ、高速にロック
制御を行うことができる。
【0006】
【発明が解決しようとする課題】しかしながら、一度取
得したロックを解除した場合、他のデータ処理装置にア
クセスせずに同一のロック取得を可能にしているので、
データ処理装置が前もってロック取得済みのロックアド
レスに対するロック解除動作を実行した後に、当該デー
タ処理装置と他のデータ処理装置とが競合して、再び同
一アドレスに対するロック取得動作を実行しようとした
場合、他のデータ処理装置よりも優先的にロック取得が
可能となるために、ロック取得/解除動作の繰り返しを
それぞれのデータ処理装置が行った場合、一つのデータ
処理装置ばかりロック取得ができ、他のデータ処理装置
はロックを取得できなくなり、主記憶装置にアクセスで
きなくなる場合がある。
【0007】また、従来技術と異なり、二階層の分散調
停バスとして利用する場合においては、専用の順序保証
命令をロック解除前に実行しなければ、ロック取得中の
動作間の順序保証ができなかったが、同様の順序保証命
令を使用した場合、専用の順序保証命令の完了待ち合わ
せを、全他系のデータ処理装置が接続してあるシステム
バスまで先行命令の処理が伝搬するのを待ち合わせる必
要があるので、性能低下が著しい。
【0008】さらに、二階層分散調停バスでは、アドレ
スの特定ビットにより、記憶装置に接続してあるシステ
ムバスは互いに全く独立したバスであるので、命令が振
り分けられるため、それぞれのシステムバス間で、命令
順序が入れ替わるすれ違い動作が発生する。このすれ違
い動作を保証できないということは、つまり命令の順序
保証が保てなくなってしまう。
【0009】[発明の目的]本発明の目的は、二階層の
分散調停バスにおける主記憶を共有するための改良され
たロック制御を提供することにある。
【0010】また、本発明の他の目的は、ロック制御の
ための処理を局所的な高速化で生じる偏りを押さえ、使
用するシステム構成に応じたより高速なロック制御を実
現することにある。
【0011】
【課題を解決するための手段】本発明は、上記目的を達
成するためになされたもので、主記憶装置を共有する複
数のデータ処理装置を有する二階層の分散調停バスを使
用したデータ処理システムにおけるロック取得状況を示
す複数のロック変数の状態それぞれを制御する複数の排
他制御手段を有する排他制御装置において、一回目のロ
ック取得時に前記排他制御手段にロック要求を発行し、
前記排他制御手段から返却される前記ロック変数の状態
を登録する登録手段と、前記登録手段に登録された前記
ロック変数の状態を保持する状態保持手段と、前記分散
調停バス上に発行される命令の順序保証するための待ち
合わせを管理する管理手段と、前記ロック取得中の動作
の前記順序保証を待ち合わせる待ち合わせ手段と、を有
することを特徴とする。
【0012】また、主記憶装置を共有する複数のデータ
処理装置を有する前記主記憶装置側と前記データ処理装
置側との二階層の分散調停バスを使用したデータ処理シ
ステムにおける互いに独立した前記分散調停バス間のロ
ック取得に関して制御する排他制御装置において、前記
ロック取得結果のすれ違いを監視する監視手段と、前記
すれ違い発生時に専用のインタフェースを追加すること
なく、ロック取得結果を前記二本の分散調停バスの基準
となる前記データ処理装置側のロック取得結果に前記主
記憶装置側のロック取得結果を合わせる手段を有するこ
とを特徴とする。 本発明の装置は、更に具体的にすれ
ば、図3を参照して、主記憶装置を共有する複数のデー
タ処理装置を有するデータ処理システムにおける前記複
数のデータ処理装置の少なくとも一つに関するロック変
数の状態をそれぞれ制御する複数のロック制御装置にお
いて、前記ロック変数の状態を少なくとも一つ登録する
登録手段(図3の8)と、前記登録手段により登録され
たロック変数の状態を保持する状態保持手段(図3の
5、6)各ロック変数に対応したロックアドレスを保持
する状態保持手段(図3の1、2)と、現在発行された
ロックリクエストのロック変数決定用の登録済みのロッ
クアドレスとのアドレス一致検出手段(図3の3、4)
と、アドレス一致検出により該当するロック変数を選択
する手段(図3の7)とを含む。
【0013】また、図2を参照して、二階層のシステム
バス間のリクエストを一度保持するバッファ登録手段
(図2の21、25)と、リクエストのシステムバスへ
の出力状態を監視するバッファ制御手段(図2の2
3)、処理装置側から送出されたリクエストと記憶装置
側から出力されたリクエストを選択する手段(図2の2
2)を含んでいる。
【0014】
【発明の実施の形態】まず、本発明を具体的に現した全
体構成、構成要素を図面を参照して説明する。図1を参
照すると、本発明が適用されるデータ処理システムは、
記憶装置217,218を共有する8つの処理装置20
1〜208を有する。そして処理装置201〜204が
システムバス209を介してキャッシュユニット21
1,212に接続し、処理装置205〜208がシステ
ムバス210を介してキャッシュユニット213,21
4に接続する。また、キャッシュユニット211および
213と記憶装置217とはシステムバス215を介し
て接続している。同様にキャッシュユニット212およ
び214と記憶装置218とはシステムバス216を介
して接続している。キャッシュユニット211〜214
はそれぞれ接続する処理装置のためのキャッシュメモリ
としての機能を有するとともに、ロック変数を保持する
機能をも有する。
【0015】また、システムバス209,210,21
5,216は、アドレスバスとデータバスとを含み、こ
れらアドレスバスとデータバスとは独立して動作でき
る。ロック取得を要求するロックリクエストやロックの
解放を要求するアンロックリクエストはアドレスバスの
みを使用する。更にシステムバス209,210,21
5,216は、キャッシュ情報を伝えるためのバスを含
み、このバスを使用してロックリクエストに対するロッ
ク取得の可否が伝えられる。
【0016】図2を参照すると、キャッシュユニット2
11,212,213,214はそれぞれ同一構成で、
代表的にキャッシュユニット211を例に説明する。処
理装置側のシステムバス209からのリクエストと記憶
装置側のシステムバス215からのリクエストを切り替
えるセレクタ22と、セレクタ22の出力に接続された
キャッシュメモリのアドレスアレイ26と、セレクタ2
2の出力とアドレスアレイ26の出力に接続された排他
制御回路24と、処理装置側から記憶装置側のシステム
バス215に出力されるリクエストをセレクタ22を介
して保持するリクエストバッファ25と、記憶装置側か
ら処理装置側のシステムバス209に出力されるリクエ
ストをセレクタ22を介して保持するリクエストバッフ
ァ21と、リクエストバッファ21とリクエストバッフ
ァ25の両方のバッファのリクエストを管理するバッフ
ァ制御回路23とを有している。
【0017】リクエストバッファ21,25は、複数の
リクエストを保持し、それぞれ先入れ先出しバッファと
して機能する。セレクタ22は、あらかじめ定められた
プログラムの規則に従って、どちらのシステムバス20
9,215からの入力リクエストかを選択する。アドレ
スアレイ26は、通常のキャッシュメモリと同様の構成
を有し、(図示しない)データメモリの各エントリに対
応するタグアドレスを格納する。
【0018】ロックリクエストに対するリプライを返す
場合、リプライを返せる状態になるまでリクエストキャ
ンセル指示を、各システムバス209,215に、リク
エストバッファ21,25の経由でなく、排他制御回路
24を介して別パスで発行する。
【0019】このとき、ロックリクエストの送出元であ
る処理装置201は、再び同一のロックリクエストを再
発行し続けて、リプライの受信を待ち合わせる。リプラ
イを返せる状態になってから、ロック取得成功/失敗を
リクエストバッファ経由でなくし、排他制御回路24を
介して別パスで各システムバスに返却する。
【0020】図3を参照すると、排他制御回路24は、
セレクタ22により選択されたリクエストについてのロ
ック変数のアドレスを格納するロックアドレスレジスタ
1および2と、ロックアドレスレジスタ1および2に格
納されている各ロック変数に対するロック状態を格納す
るロックステータスレジスタ5および6と、セレクタ2
2からロック変数のアドレスとロックアドレスレジスタ
1および2に保持されたアドレスを入力してそれらの一
致を検出するロックアドレス一致検出回路3及び4と、
ロックアドレス一致検出回路3または4で一致が検出さ
れたエントリに対するロックステータスレジスタ5また
は6の内容を選択するセレクタ7と、ロックアドレスレ
ジスタ1および2やロックステータスレジスタ5および
6の状態を制御するロックリクエスト制御回路8とを備
えている。
【0021】[第1の実施形態]次に、本発明の第1の
実施形態の動作について、図を参照して詳細に説明す
る。
【0022】図4を参照すると、本発明の実施形態にお
けるロック変数は、SLK、ALK、BSYおよびIN
Vの4つの状態のいずれかをとる。SLKとは、当該キ
ャッシュユニットに接続するデータ処理装置がロックを
確保しており、他のデータ処理装置がロックを確保して
いない状態を表す。また、ALKとは、当該キャッシュ
ユニットに接続するデータ処理装置がロックを確保しよ
うとした際に、すでに他のデータ処理装置がロックを確
保済みである状態を表す。また、BSYとは、当該キャ
ッシュユニットに接続するデータ処理装置がロックを取
得開始して、ロック変数がSLKまたALKに移行する
までの更新中である過渡状態を表す。また、INVと
は、当該キャッシュユニットに接続するデータ処理装置
がロックを確保しておらず、他のデータ処理装置がロッ
クを確保しているかは不明である状態を表す。
【0023】図5を参照して、データ処理装置からロッ
クリクエストが発行された場合の本実施形態における動
作について説明する。図5の最左欄はロックリクエスト
を発行したデータ処理装置に接続するキャッシュユニッ
トにおけるロック変数を表し、中欄はそれ以外のキャッ
シュユニットにおけるロック変数の状態を表す。また、
最右欄はそれぞれの状態における動作を表す。以下で
は、リクエストを発行したデータ処理装置に接続するキ
ャッシュユニットのことを自キャッシュユニットとい
う。
【0024】たとえば、自キャッシュユニットのロック
変数の状態がSLKであれば、すでにロックが確保され
ていることになるので、排他制御装置は“ロック失敗”
の結果を返す。また同様に自キャッシュユニットのロッ
ク変数の状態がALKであった場合、すでに他のキャッ
シュユニットでロックが確保されていることになるので
排他制御装置は“ロック失敗”の結果を返す。また、自
キャッシュユニットのロック変数の状態がBSYであれ
ば、すでに自キャッシュユニット内で他の処理装置がロ
ック取得を開始していることになるので、排他制御装置
は“ロック失敗”の結果を返す。
【0025】次に、自キャッシュユニットのロック変数
の状態がINVの場合は、当該ロックリクエストのロッ
ク変数に対応するロックアドレスを登録すると同時に、
一度ロック変数の状態をBSYに変更して自キャッシュ
ユニット以外のキャッシュユニットのロック変数の状態
を参照しなければならなくなる。このとき、自キャッシ
ュユニット以外のキャッシュユニットのロック変数の状
態がSLKであれば、排他制御装置は“ロック失敗”の
結果を返す。と同時に当該ロックリクエストのロック変
数をALKに更新する。あるいは自キャッシュユニット
以外のキャッシュユニットのロック変数の状態がINV
(またはBSYまたはALK)、あるいは該当するロッ
ク変数が登録されていない場合であれば、排他制御装置
は“ロック成功”の結果を返すと同時に当該ロックリク
エストのロック変数をSLKに更新する。
【0026】また、自キャッシュユニットに該当するロ
ック変数が登録されていない場合には、自キャッシュユ
ニットのロック変数がINVの場合と同様の処理を行
う。
【0027】図6を参照して、データ処理装置からアン
ロックリクエスト発行された場合の本実施形態における
動作について説明する。図6の最左欄はロックリクエス
トを発行したデータ処理装置に接続するキャッシュユニ
ットにおけるロック変数の状態を表し、中欄はそれ以外
のキャッシュユニットにおけるロック変数の状態を表
し、右欄はそれぞれの場合における動作を表す。すなわ
ち、自キャッシュユニットのロック変数の状態がSLK
であれば、排他制御装置はそのロック変数をINVにす
る。それ以外のキャッシュユニットも発行されたアンロ
ックリクエストに該当するロック変数を保持していて、
そのロック変数がALKの場合はロック変数をINVに
変更する。
【0028】また、ロックが取得されていない場合にア
ンロックリクエストは通常発生し得ないため、自キャッ
シュユニットのロック変数の状態がALKやBSYやI
NVであることはあり得ない。また、該当するロック変
数が登録されていない場合にもアンロックリクエストは
通常発生しない。
【0029】ここで、再び図1と図2及び図3を参照し
て本実施形態の特徴について説明する。ロック取得中の
ある主記憶エリアの更新/参照を専用の順序保証命令を
使用せずに実現する動作を説明する。
【0030】図1において、ロック取得命令をデータ処
理装置201がシステムバス209に送出した場合、キ
ャッシュユニット211,212は記憶装置217,2
18を分割するロック取得命令中の特定アドレスの指定
ビットの判定に関係なく、両方のキャッシュユニット2
11,212で本ロック取得命令を受信する。ただし通
常はこのときにロック取得命令に対するロック成功/失
敗の結果を返却できないので、システムバス209にそ
れぞれのキャッシュユニット211,212が待ち合わ
せ用のリクエストキャンセル指示を発行する。
【0031】それぞれのキャッシュユニット211,2
12では、図5で説明したロックリクエストに対する動
作を開始する。このとき、図2のセレクタ22で選択さ
れたロックリクエストは、排他制御回路に24に送出さ
れ、図3のロックアドレス一致回路3,4を使用して、
本ロックリクエストがすでに排他制御回路24内のロッ
クアドレスレジスタ1,2(この場合はロックアドレス
レジスタ1,2の有効ビットであるVビットが論理0で
あることの判定)に格納されていないことを判定する。
ロックリクエスト制御回路8はロックアドレス一致回路
3,4の全ての一致情報を受信後、Vビットが論理0で
あるロックアドレスレジスタ1にロックアドレスを格納
する。このときロックアドレスレジスタ1に対応するロ
ックステータスレジスタ5のロック変数の状態をBSY
で登録し、Vビットも論理1に変更する。このとき、ロ
ックリクエストは、リクエストバッファ25に格納さ
れ、そこからシステムバス215,216にロック取得
命令を送出する。
【0032】その他のキャッシュユニット213,21
4は図2のセレクタ22で選択されたロックリクエスト
に対して、図3のロックアドレス一致検出回路3,4で
一致検出を行う。ロックリクエスト制御回路8は、ロッ
クアドレス一致回路3,4の全ての一致情報を受信後、
一致が検出されない場合には、”ロック成功”応答とし
て、リクエストバッファ25を経由しないでシステムバ
ス215,216に返却する。一致が検出された場合
は、ロックアドレス一致検出回路3,4で生成した一致
情報により、セレクタ7で選択されたロックアドレスレ
ジスタ1,2に対応したロックステータスレジスタ5,
6のロック変数を受信して、ロックリクエストの応答
(成功/失敗の結果)を生成後、リクエストバッファ2
5を経由しないで、システムバス215,216に返却
する。
【0033】システムバス215,216にロック取得
命令を送出したキャッシュユニット211,212は、
その他のキャッシュユニットの応答を受信して、図3の
ロックリクエスト制御回路8はロック変数の状態がBS
Yで、登録済みのロックステータスレジスタ5のロック
変数を、ロック成功時はSLK、ロック失敗時はALK
に更新することで、自キャッシュユニットのロック変数
の状態を確定する。システムバス209に出力されたロ
ック取得命令にロック変数の状態を参照して自キャッシ
ュユニットに登録するロック変数の状態を決定する。
【0034】このとき、自キャッシュユニット内では、
その他のキャッシュユニットに問い合わせるためのリク
エストを自キャッシュユニット内に取り込み、図2のセ
レクタ22で選択されて、システムバス209向けのリ
クエストが格納されるリクエストバッファ21の最後尾
に本ロックリクエストを格納する。バッファ制御回路2
3はこのロックリクエストのバッファ21内の処理順番
を監視して、リクエストバッファ21の先頭ワードにロ
ックリクエストが格納されるのを待ち合わせる。自キャ
ッシュユニット211,212が処理装置201が発行
したロック取得命令に対するロック応答は、ロック変数
の状態が決定してかつリクエストバッファの先頭にロッ
クリクエストが格納されたときに初めて返却される。
【0035】キャッシュユニット内では命令の追い越し
が無いことを保証しているので、ロック取得命令でこの
手順を守ることで、ロック取得中のリクエスト動作の順
序を保証できる。
【0036】[第2の実施形態]次に本発明の第2の実
施形態の特徴について、図7〜10を参照して説明す
る。
【0037】本発明の実施形態のシステムバス215,
216は互いに独立したバスであるために、ロック取得
命令のロック成功/失敗の結果が必ずしも一致しない。
このときのロック取得結果を最終的に一致させて、その
結果をロック取得命令の結果に反映する必要がある。前
提としてシステムバス215をマスタ、システムバス2
16をスレーブとした場合の動作を説明する。
【0038】図7と図8は、データ処理装置201から
送出されたロック取得命令の動作で、左側のキャッシュ
ユニット211がロック取得命令のその他のキャッシュ
ユニットへ問い合わせた結果からロック変数の状態がS
LKになった場合で、右側のキャッシュユニット212
が同一のロック取得命令に対するその他のキャッシュユ
ニットへ問い合わせた結果からロック変数の状態がAL
Kになった場合の状態遷移を示している。
【0039】このとき、図7において、データ処理装置
201はロック取得命令に対してキャッシュユニット2
11からはロック成功の結果を返却され、キャッシュユ
ニット212からはロック失敗の結果が返却される。デ
ータ処理装置201では結果が不一致であることを確認
して再度ロック取得命令の発行を行い、結果の一致を待
ち合わせるまでは必ず同一のロック取得命令を発行する
という手順を守る。また、このロック取得命令の結果が
不一致であることをスレーブ側のシステムバス216に
接続しているキャッシュユニット212は判定している
ので、ロックリクエストの失敗の結果を返却した後に当
該ロック変数をALKからINVに更新して、ロック取
得命令の結果不一致によるデータ処理装置201から再
び同一アドレスのロック取得命令が発行されるのを待ち
合わせる。
【0040】図8は、再び同一アドレスのロック取得命
令が発行された場合について示している。キャッシュユ
ニット211はデータ処理装置201が以前出力したロ
ック取得リクエストの返却結果を保持しているため、再
び発行されたロック取得リクエストに対しては、その他
のキャッシュユニットに問い合わせずに、ロック成功の
結果を返却する。キャッシュユニット212は図5で示
した動作に従い、その他のキャッシュユニットに問い合
わせを行い、その結果として、次に示す図9、10の動
作の結果も作用して、必ずロック変数の状態がSLKに
なりデータ処理装置201のロック取得命令に対して、
ロック成功の結果が返却できる。
【0041】図9と図10は、データ処理装置201か
ら送出されたロック取得命令の動作で、左側のキャッシ
ュユニット211がロック取得命令のその他のキャッシ
ュユニットへ問い合わせた結果からロック変数の状態が
ALKになった場合で、右側のキャッシュユニット21
2が同一のロック取得命令に対するその他のキャッシュ
ユニットへ問い合わせた結果からロック変数の状態がS
LKになった場合の状態遷移を示している。
【0042】このとき、図9において、データ処理装置
201はロック取得命令に対してキャッシュユニット2
11からはロック失敗の結果を返却され、キャッシュユ
ニット212からはロック成功の結果が返却される。デ
ータ処理装置201では結果が不一致であることを確認
して、再度ロック取得命令の発行を行い、結果の一致を
待ち合わせるまでは必ず同一のロック取得命令を発行す
るという手順を守る。また、このロック取得命令の結果
が不一致であることをスレーブ側のシステムバス216
に接続しているキャッシュユニット212は判定してい
るので、ロックリクエストの失敗の結果を返却した後
に、当該ロック変数をSLKからALKに更新して、ロ
ック取得命令の結果、不一致によるデータ処理装置20
1から再び同一アドレスのロック取得命令が発行される
のを待ち合わせる。
【0043】図10は、再び同一アドレスのロック取得
命令が発行された場合について示している。キャッシュ
ユニット211はデータ処理装置201が以前出力した
ロック取得リクエストの返却結果を保持しているため、
再び発行されたロック取得リクエストに対しては、その
他のキャッシュユニットに問い合わせずにロック失敗の
結果を返却する。キャッシュユニット212は図5で示
した動作に従い、その他のキャッシュユニットに問い合
わせを行わず結果として、ロック失敗の結果が返却でき
る。
【0044】[第3の実施形態]従来、複数の情報処理
装置が接続される一階層の分散調停バスに関して、各処
理装置が主記憶中の特定領域の更新及び参照を行う際
に、ロックを取得できた一つの処理装置が、主記憶領域
に更新を行い、この先行主記憶更新命令の同期保証のた
めに同期保証処理を行う命令を実行し、全処理装置向け
のリクエストバッファ中の先行命令の完了を待ち合わせ
た後にロックを解除する。次に主記憶領域に更新を行う
処理装置でも、同様のロックを取得するまで前記主記憶
領域に更新を待たせることで排他制御を実現していた。
【0045】この一階層の分散調停バスの方式から、処
理装置を増加したり、共有主記憶装置を増加したりして
システム自体を大きくするため、に二階層の分散調停バ
ス構成とした場合、同期保証処理を行う命令の実行完了
に過大な時間を要するため性能が極めて悪化する。
【0046】本実施形態の排他制御装置は、二階層の分
散調停バスに関して、ロックを取得する際に、命令間の
同期保証処理を済ませてしまうために、バス間の処理状
態をロック取得命令で管理することで、主記憶装置の領
域の更新命令発行後は、同期保証処理を行う命令を発行
せずに、即座にロック解除を行うことができるため、各
処理装置間の排他制御の完了を、より高速に行う手段を
有することを特徴とする。
【0047】図11は本実施形態の構成を示す図であ
る。図11において、複数の演算処理装置224〜22
7は、二階層のシステムバス215/209‖210を
介して主記憶装置221と相互に接続されており、その
構成装置は主記憶装置221と二階層のバス制御を行う
制御装置322,323、命令を実行する演算処理装置
224〜227から成り立つ。
【0048】制御装置322,323にそれぞれ演算装
置224〜227から出力された命令を、システムバス
215に出力するリクエストバッファ321/331、
システムバス215上の命令をそれぞれの演算装置22
4〜227に出力するリクエストバッファ324/33
4、これらのリクエストバッファを制御するバッファ制
御回路322/332、ロック処理の管理を行う排他制
御回路323/333を備えている。
【0049】上記のように構成された二階層のバスシス
テムにおける命令の排他制御について、演算装置224
からロック取得命令が発行された場合を以下に説明す
る。
【0050】演算処理装置224からロック取得命令が
システムバス209に発行された時、制御装置322は
このロック取得命令の出力装置である演算処理装置22
4に対し、システムバス209にロック取得命令のキャ
ンセル信号を発行することで、演算処理装置224に対
してロック取得命令再発行を要求する。このときバッフ
ァ制御回路322の指示によりリクエストバッファ32
1を通してシステムバス209に発行されたロック取得
命令をシステムバス215に送出する。このとき排他制
御回路323は、バッファ制御回路322からロック取
得命令受信信号を受け取り、ロック情報を問い合わせ中
に更新する。
【0051】システムバス215に接続している制御装
置323は、この制御装置322から出力されたロック
取得命令を受信して、バッファ制御回路332から排他
制御回路333に対してロック問い合わせを行い、未取
得状態であればバッファ制御部あ32に対してロック成
功情報を通知して、バッファ制御部332はこのロック
成功情報をシステムバス215に返却する。このとき制
御装置322では自装置が出力したロック取得命令の取
り込みを行い、バッファ制御回路323の指示でリクエ
ストバッファ324に格納してバッファ内の最後尾にこ
の自装置出力のロック取得命令を格納し、システムバス
2090に対して先行するリクエストの完了を待ち合わ
せることのみで、先行主記憶更新命令の同期保証処理を
行う。
【0052】また制御装置322はシステムバス215
に出力したロック取得命令の応答情報であるロック成功
/失敗を監視しているので、制御装置323が返却した
ロック成功情報を受信する。このシステムバス215か
らのロック成功情報はバッファ制御回路322から排他
制御回路323に送出され、ロック情報を問い合わせ完
了かつロック成功に更新する。排他制御回路323はリ
クエストバッファ324から通知される同期保証処理の
完了通知とロック情報問い合わせ完了の両方をもって、
システムバス209に発行済みの演算装置224のロッ
ク取得命令のキャンセル抑止要因をバッファ制御回路3
22に通知する。バッファ制御回路322は、このキャ
ンセル要因受信後の演算処理装置224がシステムバス
215に対して再発行するロック取得命令に対して、キ
ャンセル発行を抑止してロック成功通知を返却する。こ
のロック成功通知を受信することで演算処理装置224
は主記憶装置221内の特定領域の更新命令を発行でき
る。演算処理装置224は続いてロック解除命令を発行
する。
【0053】演算処理装置224からロック解除命令が
システムバス209に発行された時、バッファ制御回路
322はこのロック解除リクエストをシステムバス21
5に出力すると同時に制御装置322内に取り込み、こ
のとき初めて排他制御回路323にロック解除リクエス
トを通知する。排他制御回路323はロック解除リクエ
スト通知によりロック情報を解除する。
【0054】以上述べたように、本実施形態によれば、
ロックを取得する際に、このロック取得命令を使って、
自演算処理装置対象のリクエストバッファ内の先行命令
完了を待ち合わせるのみで、先行主記憶更新命令の同期
保証処理を完了させることができるので、従来の先行主
記憶更新命令の同期保証処理を、自演算処理装置以外の
全演算装置対象のリクエストバッファ内に保持された先
行命令の完了を待ち合わせる同期保証処理を行わずに、
ロック解除命令を発行できるため性能の高速化が実現で
きる。
【0055】
【発明の効果】本発明によれば、データ処理装置からの
ロック取得動作において、一回目のロック取得動作が開
始された場合、ロック取得の問い合わせ結果を必ず他の
全てのロック制御装置まで問い合わせた結果を反映する
ので、全てのデータ処理装置が同等のロック取得成功機
会を得ることができる。これにより、ある特定のデータ
処理装置のみがロック取得しやすくなることを防止し
て、と同時に他のデータ処理装置が当該ロック取得を妨
げられることが解消できるようになる。
【0056】また、従来行っていた他キャッシュユニッ
ト全てに問い合わせて順序保証を実現せずに、自キャッ
シュユニットのみで、キャッシュユニット内のリクエス
ト追い越しが無いことを利用して、順序保証を実現でき
るので、ロック取得中のリクエスト動作を専用の順序保
証命令を使用せずに保証でき、従来の方式のままでは性
能低下に結びつく保証方法を改善できる。これにより、
ロック取得中のリクエスト動作の完了をより高速化でき
るようになる。
【0057】さらに、ロック問い合わせ結果を片方のロ
ック問い合わせ結果を固定して、もう片方をそのロック
取得結果に合わせるように状態遷移することで実現して
いるので、本発明の二階層バスで互いに独立したバス間
でのすれ違い動作を解消できるということである。これ
により独立したバス間でロック取得時の問い合わせ結果
に不一致が発生しても、状態遷移を行うことで不一致が
解消できるようになる。
【図面の簡単な説明】
【図1】本発明が適用されるデータ処理システムの全体
構成の一例を示す図である。
【図2】本発明のデータ処理システムにおけるキャッシ
ュユニット構成を示す図である。
【図3】本発明のロックリクエスト制御装置の構成を示
す図である。
【図4】本発明の実施形態におけるロック変数の状態を
示す図である。
【図5】本発明の実施形態におけるロックリクエストの
発生時の動作を示す図である。
【図6】本発明の実施形態におけるアンロックリクエス
トの発生時の動作を示す図である。
【図7】本発明の実施形態におけるすれ違い発生時のロ
ック変数の状態遷移を示す図である。
【図8】本発明の実施形態におけるすれ違い発生時のロ
ック変数の状態遷移を示す図である。
【図9】本発明の実施形態におけるすれ違い発生時のロ
ック変数の状態遷移を示す図である。
【図10】本発明の実施形態におけるすれ違い発生時の
ロック変数の状態遷移を示す図である。
【図11】本発明の実施形態にデータ処理システムの全
体構成の一例を示す図である。
【符号の説明】
1,2 ロックアドレスレジスタ 3,4 ロックアドレス一致検出回路 5,6 ロックステータスレジスタ 7 セレクタ 8 ロックリクエスト制御回路 21,25 リクエストバッファ 22 セレクタ 23 バッファ制御回路 24 排他制御回路 26 アドレスアレイ 201〜208 処理装置 209,210 システムバス 211〜214 キャッシュユニット 215,216 システムバス 217,218 記憶装置

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置を共有する複数のデータ処理
    装置を有する二階層の分散調停バスを使用したデータ処
    理システムにおけるロック取得状況を示す複数のロック
    変数の状態それぞれを制御する複数の排他制御手段を有
    する排他制御装置において、 一回目のロック取得時に前記排他制御手段にロック要求
    を発行し、前記排他制御手段から返却される前記ロック
    変数の状態を登録する登録手段と、 前記登録手段に登録された前記ロック変数の状態を保持
    する状態保持手段と、 前記分散調停バス上に発行される命令の順序保証するた
    めの待ち合わせを管理する管理手段と、 前記ロック取得中の動作の前記順序保証を待ち合わせる
    待ち合わせ手段と、を有することを特徴とする排他制御
    装置。
  2. 【請求項2】 主記憶装置を共有する複数のデータ処理
    装置を有する前記主記憶装置側と前記データ処理装置側
    との二階層の分散調停バスを使用したデータ処理システ
    ムにおける互いに独立した前記分散調停バス間のロック
    取得に関して制御する排他制御装置において、 前記ロック取得結果のすれ違いを監視する監視手段と、 前記すれ違い発生時に専用のインタフェースを追加する
    ことなく、ロック取得結果を前記二本の分散調停バスの
    基準となる前記データ処理装置側のロック取得結果に前
    記主記憶装置側のロック取得結果を合わせる手段を有す
    ることを特徴とする排他制御装置。
  3. 【請求項3】 主記憶装置を共有する複数のデータ処理
    装置を有する二階層の分散調停バスを使用したデータ処
    理システムにおいて、ロック取得状況を示す複数のロッ
    ク変数の状態それぞれを制御する複数の排他制御手段
    と、 一回目のロック取得時に前記排他制御手段にロック要求
    を発行し、前記排他制御手段から返却される前記ロック
    変数の状態を登録する登録手段と、 前記登録手段に登録された前記ロック変数の状態を保持
    する状態保持手段と、 前記分散調停バス上に発行される命令の順序保証するた
    めの待ち合わせを管理する管理手段と、 前記ロック取得中の動作の前記順序保証を待ち合わせる
    待ち合わせ手段と、を有することを特徴とするデータ処
    理システム。
  4. 【請求項4】 主記憶装置を共有する複数のデータ処理
    装置を有する前記主記憶装置側と前記データ処理装置側
    との二階層の分散調停バスを使用したデータ処理システ
    ムにおいて、 互いに独立した前記分散調停バス間のロック取得に関し
    て制御する排他制御手段と、 前記ロック取得結果のすれ違いを監視する監視手段と、 前記すれ違い発生時に、専用のインタフェースを追加す
    ることなく、前記二本の分散調停バスの基準となる前記
    データ処理装置側のロック取得結果に前記主記憶装置側
    のロック取得結果を合わせる変更手段と、を有すること
    を特徴とするデータ処理システム。
JP9137089A 1997-05-27 1997-05-27 排他制御装置とデータ処理システム Pending JPH10333973A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9137089A JPH10333973A (ja) 1997-05-27 1997-05-27 排他制御装置とデータ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9137089A JPH10333973A (ja) 1997-05-27 1997-05-27 排他制御装置とデータ処理システム

Publications (1)

Publication Number Publication Date
JPH10333973A true JPH10333973A (ja) 1998-12-18

Family

ID=15190632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9137089A Pending JPH10333973A (ja) 1997-05-27 1997-05-27 排他制御装置とデータ処理システム

Country Status (1)

Country Link
JP (1) JPH10333973A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175669A (ja) * 2004-06-30 2011-09-08 Intel Corp 競合しないロック命令の投機実行のための方法及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175669A (ja) * 2004-06-30 2011-09-08 Intel Corp 競合しないロック命令の投機実行のための方法及び装置

Similar Documents

Publication Publication Date Title
US5721870A (en) Lock control for a shared main storage data processing system
US5331673A (en) Integrity of data objects used to maintain state information for shared data at a local complex
US5987550A (en) Lock mechanism for shared resources in a data processing system
US5394542A (en) Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered
US5388266A (en) Management of data objects used intain state information for shared data at a local complex
US7080215B2 (en) Multiprocessor system with local memory which mirrors a shaped memory
US20080126718A1 (en) Method And Device For Monitoring A Memory Unit In A Mutliprocessor System
JPH07281955A (ja) マルチプロセッサーシステムのスヌープ回路
JP2007122741A (ja) 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法
JPH0587855B2 (ja)
GB2241800A (en) Memory access system
JPH0664567B2 (ja) 多重プロセッサシステム
JPH0679305B2 (ja) 保留バスを用いて割り込みに応じる装置及び方法
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
JP2000181887A (ja) 情報処理装置における障害処理方法及び記憶制御装置
US20210157668A1 (en) Method for managing the debugging of a system on chip forming for example a microcontroller, and corresponding system on chip
US7159079B2 (en) Multiprocessor system
US6490662B1 (en) System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module
JP3481485B2 (ja) マルチプロセッサシステム
EP0291907B1 (en) Interprocessor communication system in information processing system enabling communication between execution processor units during communication between other processor units
US5893156A (en) Lock control apparatus and method including controlling means for setting a lock variable status
JPH10333973A (ja) 排他制御装置とデータ処理システム
JP2000003302A (ja) 共有メモリ排他アクセス制御方法
JP2826483B2 (ja) ロック制御装置
JP2003006173A (ja) 情報処理装置

Legal Events

Date Code Title Description
A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040716

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070109

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070109