JP3265703B2 - ロックアクセス制御回路 - Google Patents

ロックアクセス制御回路

Info

Publication number
JP3265703B2
JP3265703B2 JP09822993A JP9822993A JP3265703B2 JP 3265703 B2 JP3265703 B2 JP 3265703B2 JP 09822993 A JP09822993 A JP 09822993A JP 9822993 A JP9822993 A JP 9822993A JP 3265703 B2 JP3265703 B2 JP 3265703B2
Authority
JP
Japan
Prior art keywords
lock
access
data
address
lar
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 - Fee Related
Application number
JP09822993A
Other languages
English (en)
Other versions
JPH06309219A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP09822993A priority Critical patent/JP3265703B2/ja
Publication of JPH06309219A publication Critical patent/JPH06309219A/ja
Application granted granted Critical
Publication of JP3265703B2 publication Critical patent/JP3265703B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理システムの高
速化に係り、特に、拡張記憶装置のように、主記憶装置
に比較してアクセス時間が長い場合での、ロックアクセ
ス制御回路に関する。
【0002】近年の情報処理システムは、複数の中央処
理装置(以下、CPUということがある)を結合し、記
憶装置上のデータを共有して処理を行う手法が多用され
ている。この時、1つのCPUの処理(例えば、データ
更新)が開始されてから完了するまでの間、更新などの
処理の対象となるデータに対して、他のCPUの参
照、書き込みを抑止し、データの一貫性を保つために、
所謂、ロックワードを設け、そのロックの獲得を以
て、上記データの領域に対するアクセス権を取得した
として、データを共有する手法が採られる。
【0003】このような、ロックを取得してアクセスを
行う処理では、一般にロック獲得のためのアクセスの出
現数が大きい。また、ロックの獲得時間の長期化は、他
のCPUの処理遅延に繋がり、情報処理システムとして
の処理能力を低減させてしまう事になるため、情報処理
システム側より、高速なロック獲得、開放処理機能が強
く求められる。
【0004】
【従来の技術】図9〜図12は、従来のロックアクセス
制御回路を説明する図である。従来は、次のような手法
を用いて、ロックアクセス制御を行っていた。ロックア
クセス命令は、従来から命令セットに装備されている
が、それは1ワード又は2ワード程度の領域に対するロ
ックアクセスを保証するものである。
【0005】例えば、図9(a) のような形式を持つロッ
クアクセス命令がある。このロックアクセス命令
は、命令コード(OPC) 101,第1オペランド(R1) 102, 第
3オペランド(R3) 103, 第2オペランド(B2,D2) 104,10
5 から構成され、第1オペランド(R1) 102と第3オペラ
ンド(R3) 103は、汎用レジスタ番号を指定する。汎用レ
ジスタのビット幅は1ワード長である。第2オペランド
は、そのB2 104でアドレス計算のためのベースレジス
タとして使用する汎用レジスタ番号を指定し、B2104で
指定された汎用レジスタの内容とD2 105で指定された即
値が、アドレス計算規約に従って計算され、第2オペラ
ンドが指定するアドレスとなり、図9(b)に示した記憶
装置 219上のロックワードのアドレスを指示する。
又、この命令では、第1オペランド(R1) 102、第3オペ
ランド(R3) 103は、指定されたレジスタ番号から連続す
る2本の汎用レジスタの内容が各オペランドの内容とし
て扱われる。
【0006】本命令では、まず、第2オペランド(B2,D
2) 104,105 で指定されるアドレスから2ワードの内容
を読み出し、第1オペランド(R1) 102で指定される2本
の汎用レジスタの内容と比較される。もし、一致したら
第2オペランド(B2,D2) 104,105 が指定するアドレスに
対して、第3オペランド(R3) 103で指定した2本の汎用
レジスタの内容を書き込む。もし、第1オペランド(R1)
102と第2オペランド(B2,D2) 104,105 が不一致なら
ば、第3オペランド(R3) 103で指定される2本の汎用レ
ジスタに対して、第2オペランド(B2,D2) 104,105 から
読みだした2ワードのデータ{ロックワード}を格納
し、現在のロックワードの内容を認識するのに使用さ
れる。
【0007】上記第1オペランド(R1) 102と第2オペラ
ンド (ロックワード) の内容が一致したか、不一致で
あったかは、上記ロックアクセス命令の処理結果とし
てプログラム状態語(PSW)に設けられている条件コ
ード(CC)フィールドに反映する。
【0008】この時、上記第3オペランド(R3) 103で指
定した2本の汎用レジスタの内容を、第2オペランドへ
格納するか、レジスタ(R3) 103に、現在のロックワード
を格納するまでの間、他CPUが上記記憶装置 219上
の2ワード (ロックワード)に対する読み出し, 及
び、書き込みを抑止し、遅延させる。
【0009】このロックアクセス命令は、上記記憶装
置 219上の2ワード (ロックワード) の領域に対する
データの読み出しから更新までの間の他CPUからの読
み出し、書き込みを抑止する事により、命令の論理的動
作として規定されている読み出しと更新を他のCPUか
ら見ても1つの処理として見せ、ロックワードの取る
値がロックアクセス命令の処理が開始される前の状態
か、完了した後の状態であること(過渡期の状態を見せ
ないこと)を保証する事(これを、アクセスの逐次性保
証と呼ぶ)により、ロックワードを共有して、1時点
で1つのCPUのみがロックワードが論理的に管理す
る資源に対して、唯一のアクセス権を与えるものであ
る。
【0010】上記ロック機構の内、ハードウェアロック
を実現する機構を説明したものが図10である。各CP
U(0) 201 〜CPU(n) 205 から出された記憶部 219へ
のアクセス要求は、メモリアクセス制御機構により制御
される。
【0011】上記メモリアクセス制御機構は、各CPU
(0) 201 〜CPU(n) 205 とのインタフェース機構であ
るポート(0) 206 〜ポート(n) 210 と、ロックアクセス
制御のためのLAR 217と、LARエントリ制御部 216
と、記憶部 219への読み出し、書き込みを制御する記憶
部アクセス制御機構(記憶部アクセス制御部ということ
がある) 218 などから構成される。
【0012】各CPU(0) 201 〜CPU(n) 205 からポ
ート(0) 206 〜ポート(n) 210 に対して出されたアクセ
ス要求は一旦ポートに保留される。上記ポートで保留さ
れたアクセス要求は、先ず、アドレスがLAR 217に登
録されたアドレスと一致していないかが、LARエント
リ一致検出部 211〜215 によりチェックされる。LAR
エントリ一致検出部 211〜215 により、アクセス要求の
あったアドレスが、既に、LAR 217に登録されてお
り、且つ、登録されているポート番号がアクセス要求を
出したポート番号と異なっている事が検出されれば{即
ち、他CPUがLAR 217にアドレスを登録しているの
であれば}、アクセスはポートで保留される。保留され
たアクセスはLAR 217との照合の結果、LAR 217に
登録されていない状態となるまで保留が継続される。
【0013】CPU(0) 201 〜から発行された命令がロ
ックアクセス命令であり、且つ、LAR 217にロック
アクセスを行おうとするアドレスが登録されていなけれ
ば、そのアクセスは、ポート(0) 206 〜から記憶部アク
セス制御部 218へ転送される。又、その過程でLAR 2
17に、アドレスとポート番号がLARエントリ制御部21
6により登録され、以後、次に示すように、他CPUか
らのアクセスが制限される。
【0014】LAR 217に登録されていないアドレスへ
のアクセス、又は、登録されていてもポート番号が一致
した場合{このアクセスは、ロック解除の為のストアア
クセスである}は、アクセス要求が記憶部アクセス制御
部 218へ送られる。
【0015】各アクセス要求に於いて、LAR 217にア
ドレスが登録されており、且つ、登録されているポート
番号が一致した場合は、上記のように、ロックの解除と
いった一連のロックアクセス命令の書き込みアクセスで
あるものとして、直ちに、LARエントリ制御部 216に
より対応するLARのエントリは無効化される。
【0016】書き込まれるデータは、ロックアクセスの
対象となった領域{即ち、ロックワード}のデータ長
に等しいデータが1回のアクセスで書き込まれる様に、
仕様化されているため、単にアクセスが記憶部アクセス
制御部 218へ発行された事を契機にリセットすれば良
い。
【0017】LAR 217の無効化の契機は、上記書き込
みアクセスだけではなく、LAR 217の無効化を指示す
る命令が発行される場合もある。例えば、前記の命令仕
様に於いて、比較が不一致であり、第2オペランドが指
示している、上記ロックワードが第3オペランド(R3)
に格納され、第2オペランドの内容は変化しない(書き
込みが行われない)場合である。また、この命令の高速
化のためにCPUではなく、記憶部アクセス制御部 218
が、CPUからアドレス比較に必要な情報を得て、上記
ロックアクセス命令で規定された比較操作を行う方式
も考えられる。この場合は記憶部アクセス制御部 218が
LAR 217に対するの無効化指示を発行する。
【0018】このように、全てのアクセスに於いて、常
に、LAR 217との照合が行われ、他CPUが既にLA
Rに登録しているアドレスと一致した場合には、実際の
アクセス動作は保留され、ロックをかけたCPUがLA
R 217に登録したアドレスを無効化するまで、そのアド
レスにはアクセスを行わないようにして、記憶の参照と
更新の逐次性が保証される。この一連の制御により、ロ
ックアクセス命令が実現されている。
【0019】このアクセスの逐次性保証はハードウェア
によって行われ、プログラムがこの逐次性を無効化する
事はできない(以後、このハードウェアによる単一命令
の処理過程に於ける排他アクセス、及び他CPUとの記
憶の更新、参照の逐次性保証をハードウェアロックと呼
ぶ)。
【0020】図11は図10に示したポート(0) 206 〜
ポート(n) 210 のブロック図を中心に示している。CP
Uから発行された指令コード(OPC)、アドレス(A
DRS)、データ(DATA)は、各々ポート内のペン
ディングラッチ(PENDING LATCH) 301 〜303,319 で保持
される。このペンディングラッチ(PENDING-LATCH) 301
〜303,319 は、記憶部アクセス制御機構 218からのPEND
ING-RESET-BY-ACK信号によりリセットされる。この信号
は記憶部アクセス制御機構 218がポート(0) 206 〜ポー
ト(n) 210 からのアクセス要求を受け付けた事を示す信
号である。
【0021】ペンディングラッチ(PENDING LATCH) 301
〜303,319 からの出力のうち、OPCとADRSはLA
Rエントリ一致検出部 211〜へ送られる。LARエント
リ一致検出部 211〜は、ADRSとLAR 217とのアド
レス照合等を行う。
【0022】もし、既に他のCPU(ポート)からのロ
ックアクセスで登録されたアドレスが自アクセスで指定
しているアドレスと一致すれば、INTERLOCK 信号が生
成され、アクセスはペンディングラッチ(PENDING LATC
H) 301 〜303,319 で保留される。LAR 217の該当す
るエントリが無効化されれば、このインタロック(INTER
LOCK) 信号は、オフとなり、記憶部アクセス制御機構
218へOPC、ADRS、DATAが送出される{当
然、記憶部 219へのフェッチアクセスではデータ(DATA)
は送出はされない}。
【0023】LAR 217にアドレスが登録されており、
かつ、そのポート番号が一致した場合(即ち自ポートが
ロックをかけている場合)、上記ロックワードをクリ
アする処理と認識して、LARエントリ一致検出部 211
〜はLARエントリ制御部 216に対し、エントリの無効
化を指示する。LARエントリ制御部 216は、上記の指
示に従って、指示を出したポート(0) 206 〜のポート番
号を有するエントリを無効化する。
【0024】LAR 217にアドレスが登録されておら
ず、且つ、OPCがロックアクセスを示している場合に
は、LARエントリ一致検出部 211〜は、LARエント
リ制御部 216に対し、エントリの登録を指示する。LA
Rエントリ制御部 216は、その指示に従って、指示を出
したポート(0) 206 へのポート番号とアドレスをエント
リとして登録する。
【0025】ペンディングラッチ(PENDING LATCH) 301
〜303,319 で保留されたアクセス要求は、LAR 217と
の照合処理に要する時間に足りる段数のディレーラッチ
によって構成されるパイプライン(DELAY) 310 〜315,32
0,321 を通過した後に、LARエントリ一致検出部 211
〜が生成するINTERLOCK 信号によって、データの通
過、通過抑止を制御するゲート(GATE) 316〜318 を経
て、記憶部アクセス制御機構 218へ送られる。
【0026】上記パイプライン(DELAY) 310 〜315,320,
321 は前述のINTERLOCK 信号、及び記憶部アクセス制
御機構 218からのPENDING-RESET-BY-ACK信号によりリセ
ットされる。
【0027】図12は図11で示したインタロック(INT
ERLOCK) 信号の生成部分を、より詳細に示した図であ
る。図12の最終的な出力であるINTERLOCK-BY-LAR-MAT
CH信号は、図11に示したINTERLOCK 信号である。こ
れは、記憶部アクセス制御機構 218に対し、CPUから
のOPC 、ADRSなど、記憶部アクセス制御機構 218を起動
するために必要な一切の信号を抑止するための信号であ
り、本信号がオンになっている間、ペンディングラッ
チ (以下、PENDING-LATCH ということがある) 301 〜の
出力信号は抑止され、記憶部アクセス制御機構 218には
到達しない。INTERLOCK-BY-LAR-MATCH信号がオフにな
れば、PENDING-LATCH 301 〜の保持情報は、記憶部アク
セス制御機構 218に伝達され、記憶部 219に対するアク
セスが起動される。
【0028】上記INTERLOCK 信号の生成は、アクセス
元(PORT ID)、アクセスの種別(OPC)、アドレス(ADRS)
と、LAR 217の各エントリとの照合の結果によって決
定される。
【0029】ロックアクセス命令が発行され、ポート
(0) 206 〜で保持されると、図12で示されるTRANSFER
-ADDRESS、TRANSFER-PORT-ID、TRANSFER-OPCが入力され
る。次に、TRANSFER-ADDRESSが、既にLAR 217に登録
されていないかをチェックし、もし、登録されていれ
ば、この時点でHIT が出力される。又、LAR 217への
登録は行われない。HIT が力されるとINTERLOCK-BY-LAR
-MATCH信号を出力するためのラッチ 506がセットされ
る。
【0030】アドレスがLAR 217に登録されていない
場合は、更に、TRANSFER-OPCがチェックされる。アドレ
スがLAR 217に登録されておらず、且つ、TRANSFER-O
PCがロックアクセスである事を検知すると、LAR 217
にTRANSFER-PORT-ID (ポート) とTRANSFER-ADDRESS (ア
ドレス) を登録する。この時、NO-HIT-AND-LOCK-ACCESS
信号が生成される。この信号が出力された時には、INTE
RLOCK-BY-LAR-MATCH信号を出力しない。
【0031】そのため、ロックアクセス要求は、記憶部
アクセス制御機構 218に入力され、実際のロックアクセ
スが開始される。以降、LAR 217には、上記ロックア
クセス要求のあったロックアドレスが登録されているの
で、他のポートからのアクセスはLAR 217とのアドレ
スの照合の結果、HIT が出力されて、アクセスが保留さ
れる事になり、ロック状態となる。
【0032】ロックを獲得したポート(0) 206 〜には、
記憶部アクセス制御機構 218より指定したアドレスから
読み出したデータ{ロックワード}が供給される。ポ
ート(0) 206 〜は、対応するCPU(0) 201 〜に対して
このデータを送出する。
【0033】CPU(0) 201 〜は、この後、上記ロック
ワードのデータを更新するための書き込みアクセスを
開始する。{後述の図6の処理ステップ 109参照} CPU(0) 201 〜からの書き込みアクセスが開始される
と、ポート(0) 206 〜では、LAR 217との照合が行わ
れるが、LAR 217に登録されているPORT-IDを持つ場
合には、HIT は出力されず、RELEASE 信号が出力れる。
これは、LARエントリの無効化処理開始信号である。
【0034】LARエントリの無効化対象は、PORT ID
とTRANSFER-ADDRESSが一致したエントリである。LAR
エントリが無効化されると、他ポートで保留されていた
アクセスはINTERLOCK 信号がオフになる。もし、他の
ポートがLAR 217に同じアドレスを登録していなけれ
ば、そのポートの記憶部 219へのアクセスが開始でき
る。
【0035】次に、これらのハードロック機構を使用し
たプログラムの構成、即ち、ソフトウェアロックの構
成, 動作について説明する。実際にプログラムが作成さ
れる場合には、ハードロックの対象とする2ワードを越
えるデータを1まとまりとして扱う場合が多いため、こ
の命令の特性を利用して規約を設け、上記排他制御を行
うデータ領域へのアクセス権制御を行っている。その
例を以下に示す。
【0036】データアクセス権を制御するロックワード
を定義し、『アクセス可能状態』、『ロック獲得中』
のそれぞれの状態を示す値をプログラムの規約として取
り決める。もし、上記ロックを獲得せずに、ロックワー
ドでアクセス権を制御しようとする記憶内容{上記デ
ータ領域の内容}を読み出した場合、その内容は、他
CPUの更新過程(一部のデータのみが更新されてお
り、全データの一貫性が失われている状態)が読み出さ
れる場合がある。また、他CPUとの間でデータ更新の
順序性が保証されないため、特別な場合を除いて、上記
ロックを獲得せずにデータの更新操作 (例えば、書き込
み) は行ってはならない(他CPUの読み出しデータの
一貫性を保証し得ないため)。
【0037】ここでは、ロックワードは1000番地
に配置され、『アクセス可能状態』は、ロックワード
の内容が『0000000000000000』であるとする。また、
『ロック獲得中』はロックワードの内容が『00000000
00000000』でない状態であるものとし、ロックを獲得し
たCPU(0) 201 〜は、ロックワードの左側から8桁
を全て“1”とし、更に一番右側の2桁に各自のCPU
番号を格納するものとする。例えば、CPU番号“1”
を有するCPU(1) 202 がロックを獲得した場合には、
ロックワードの内容は『1111111100000001』とする。
【0038】即ち、ここでは、ロックアクセス命令で
指定するアドレスは1000番地であり、ロック獲得の
ために照合するデータは『0000000000000000』、一致し
た場合に書き込むデータは『11111111000000xx』(ここ
に、xxは各CPU番号)である。
【0039】データ更新を行おうとするCPU(1) 202
〜は、必ず、ロックワードをロックアクセス命令で
参照し、ロックが獲得できた場合には、上記の規約の通
りロックワードを書き換える。また、上記排他制御を
行うデータ領域{図9(b)参照}の更新が完了したら
ロックワードの内容を『0000000000000000』に書き換え
る事により、ロックを開放する。ロックワードの参
照、書き込みは、前述のハードウェアロックによるアク
セスの逐次化により、その内容が保証されているが、ハ
ードウェアロックによる更新処理が終了した後は、プロ
グラムの規約に定められたロックワードの値を判断す
る事によりアクセス権を制御している(以下、これをハ
ードウェアロックと対比してソフトウェアロックと呼
ぶ)。
【0040】一般に、このようなロックアクセス制御方
法に於いては、ロックアクセス命令の次に、条件分岐
命令を配置し、ロックアクセス命令がセットする条件
コード(CC)を参照し、条件コード(CC)がロックを獲得で
きた事を示すまで、ロックアクセス命令に分岐して、
ロック獲得を再試行するよう構成される。
【0041】データへのアクセス規約を全てのCPU
(0) 201 〜が守っている限り、ロックワードの読み出
し, 及び、更新処理が完了するまで、ハードウェアロッ
クにより、他CPUからの読み出しが遅延されるため、
同時に複数のCPU(0) 201,〜が『0000000000000000』
の内容を持つロックワードを読み出す事は無く、また、
ロック獲得後は、ソフトウェアロック規約に従い、ロッ
クワードが『0000000000000000』でない為、照合が不
一致となり、データへのアクセス権を獲得できない状態
である事が認識される。このように、データアクセスの
排他制御は、基本的に、本方法によるロック獲得で目的
を達成する事ができる。
【0042】このプログラムが行う一連のアクセスをま
とめると、先ず、所定の排他制御対象のデータ領域を
リードし、該データ領域を更新する為のデータを生成
した後、次の3段階の処理で構成されている事になる。
{後述の図6の処理ステップ100〜106 参照} 1)ロックアクセス命令によるロック獲得アクセス{ロ
ックワードの読み出しと更新} 2)ロックが獲得できた場合には、排他制御対象のデータ
の更新 (書込み) アクセス。{獲得できなかった場合
には、1)に戻りロック獲得を試行} 3)ロックワードをアクセス可能状態に戻すためのロッ
ク開放アクセス
【0043】
【発明が解決しようとする課題】しかし、上記従来のロ
ックアクセス制御方法では、ハードロックは、あくまで
も、1ワードか2ワード程度の領域に対するロックアク
セスを保証するものであり、また、ロックの獲得のみに
対して制御が及ぶものであり、獲得後の処理は全てプロ
グラムに任されているため、その解除処理も独立した1
つのデータ書き込み命令とならざるを得なかった。
【0044】上記ような3つのステップを踏む処理方法
では、最も簡単な処理であっても、少なくとも、3命令
を発行、処理する必要があり、CPUを始めとするハー
ドウェアの制御上、各命令の前処理(記憶装置の起
動)、及び後処理(記憶装置の終了)の時間が必要とさ
れる。
【0045】例えば、拡張記憶装置では、メモリ部から
のデータの書き込み, 及び、読み出し時間の他に、イン
タフェース確立のため記憶装置の起動、終了処理を行う
が、その為には、比較的長時間(主記憶へのアクセス時
間と比較して数十倍〜数百倍以上)を要する。
【0046】このような、拡張記憶装置に対するアクセ
スでは、装置の起動、終了そのものの回数を減らす事
が、ロック保持時間、引いては、情報処理システムに対
する負荷の削減を考える上で重要となる。特に、ロック
ワードのように、データ長が短いデータに対するアク
セスでは、データそのものの移動時間よりも、上記拡張
記憶装置の起動時間、終了時間の方が遙かに長い場合も
ありうる。
【0047】この時、上記のように3命令が共に拡張記
憶装置にアクセスするような場合、ロック保持時間を短
縮するためには、実データの読み出し、書き込み時間以
外の、記憶装置の起動時間、終了時間などの、純粋なデ
ータ移動操作以外に必要とされる処理時間を短縮する事
が非常に重要な課題となる。
【0048】本発明は上記従来の欠点に鑑み、ロックア
クセス制御回路において、特に、拡張記憶装置のよう
に、主記憶装置に比較してアクセス時間が長い場合で
の、ロックアクセス処理に必要とする時間を短縮して、
システムの性能を向上させることができるロックアクセ
ス制御回路を提供することを目的とするものである。
【0049】
【課題を解決するための手段】図1〜図4は、本発明の
原理説明図であり、図1は、本発明のロックアクセス命
令のフォーマット例を示し、図2,図3は、本発明によ
るロックアクセス制御を模式的に示しており、図4は、
本発明のロックアクセス制御回路の原理構成例を示して
いる。上記の問題点は、下記の如くに構成したロックア
クセス制御回路によって解決される。
【0050】複数の中央処理装置 201,202, 〜で記憶装
置 219を共有し、記憶装置 219上の所定の記憶領域,
に対するアクセスの排他制御を行う情報処理システム
に於いて、一連のロックアクセス制御機構を作用させる
上で必要なパラメータを指定するロックアクセス命令
aと、上記ロックアクセス命令aの発行により起動さ
れ、命令で指定されたアドレスと発行元CPU識別情
報 (ポート番号) を保持するロックアドレスレジスタ21
7と、ロックを獲得した中央処理装置 201, 又は、202,
〜以外の中央処理装置から発行された、上記記憶装置 2
19へのアクセス命令により指定されるアドレスと上記
ロックアドレスレジスタ 217に登録されているアドレス
を比較するアドレス比較手段(404) と、前記アドレス比
較手段 404によりアドレスの一致が検出された場合に、
そのアクセスを保留または所定の状態で終了させる記憶
部アクセス制御機構,407と、上記ロックアドレスレジ
スタ 217に登録されたエントリを無効化する手段 405
と、指定されたロックアクセス命令aが記憶装置 219
に書き込むデータ長を保持し、書き込みが行われたデー
タ長を計数することにより全データの書き込みが完了し
た事を検知する手段 607,608,609を有し、前記全データ
書き込み完了の検知が行われるまでロックアドレスレジ
スタ 217の内容を無効化せず、全データ書き込み完了の
検知を契機にロックアドレスレジスタ 217の内容を無効
化する事により、可変長の上記記憶領域, に対する
排他的データ更新を単一命令により行うように構成す
る。
【0051】
【作用】従来のロックアクセス制御回路での問題点は、
上記3ステップの処理が各々独立した命令であった点に
ある。
【0052】そこで、本発明においては、元々、ハード
ウェアロック機構に、排他制御機構があることに着目し
て、上記ハードウェアロック機構の動作を拡張して、上
記の3ステップで行われる一連の処理、即ち、ロックワ
ードのチェックと、ロックワードの更新によりロッ
クの獲得、ロックの獲得後、排他制御を行うデータ領域
の更新、上記排他制御を行うデータ領域の更新の完
了を契機にして、ロックワードの解除迄の動作を、1
ステップで実行することにより、各命令の前処理、後処
理を削減する事で、拡張記憶装置といったアクセスタイ
ムの長い記憶装置に対するロックアクセスでのロック保
持時間を短縮するようにしたものである。
【0053】その為に、本発明でのロックアクセス命令
a(図1参照)の制御を、従来はロック獲得後の書き
込みアクセスによりロック領域に対する書き込みデー
タが記憶部アクセス制御機構に投入された時点で無効化
していたのに対し、本発明のロックアクセス命令aで
指定された書き込みデータ, の全ての書き込み処理
が完了するまでは、LARに登録した内容(アドレスと
ポート番号)を無効化せず、指定された領域へのデー
タ格納に対して、そのデータ長を計数し、指定されたデ
ータ長が格納された事を検出して、LARのエントリを
無効化する。{図2参照} 図4は問題を解決するための手段を示した原理構成例を
示しており、図5はLARエントリ制御部分のブロック
図であり、本発明の一実施例を示している。
【0054】図4に於けるLARエントリ一致検出機構
404は、図5に於ける 604,605,606,607,608,609に当た
る。図4に於けるLARエントリ制御部 405は、図5で
の 601,602に当たる。図4に於けるLAR 217は、図1
0等で示しているLARと同じ構成である。
【0055】従来技術を示した図12と、図5とを対比
すると分かるように、LAR 217の制御を行う上で、デ
ータ転送長とデータの有効性を示すデータバリッド信号
を必要とする。また、従来技術を示した図12と、図5
とを対比すると分かるように、データバリッド信号を計
数するカウンタ(COUNTER) 607 、データ転送長を保持す
るレジスタ(LENGTH) 608が追加され、データ転送長を保
持するレジスタ(LENGTH) 608とデータバリッドを計数す
るカウンタ(COUNTER) 607 の内容を比較するコンパレー
タ(COMPARE) 609 が設けられている。また、このコンパ
レータ(COMPARE) 609 の出力はLAR 217のエントリ無
効化のトリガを生成する条件選択回路 601に入力されて
いる。
【0056】図4、図5で示したブロック図に基づき、
本発明の作用,動作について説明する。図5の最終的な
出力であるINTERLOCK-BY-LAR-MATCH信号は、図4に示し
たINTERLOCK 信号である。
【0057】これは、記憶部アクセス制御機構 407に対
し、図4に示されているように、CPUからのOPC 、AD
RSなど、記憶部アクセス制御機構 407の起動のために必
要な一切の信号を抑止するための信号であり、本信号
がオンになっている間、図4に示すパイプライン(DELA
Y) 410 〜415,420,421,及びゲート(GATE) 416〜418,422
はリセットされ続けるため、PENDING-LATCH 301 〜30
3,319 の出力信号は、記憶部アクセス制御機構 407には
到達せず、アクセスの起動は行われない。
【0058】INTERLOCK-BY-LAR-MATCH信号がオフにな
れば、PENDING-LATCH 301 〜303,319 の保持情報は、記
憶部アクセス制御機構 407に伝達され、アクセスが起動
される。
【0059】CPUから発行されたロックアクセス命令
aは、必要なCPU内での処理が行われた後に、図1
0に示すポート(0) 206 〜ポート(n) 210 に対して送出
される。送出されたOPC 、ADRS、DATA、LENGTHは、図4
に示すPENDING-LATCH 301 〜303,319 に保持される。PE
NDIN-LATCH 301〜303,319 で保持された内容は、記憶部
アクセス制御機構 407が、上記ポート(0) 206 〜ポート
(n) 210 からのアクセス要求を受け付けた事を示すPEND
ING-RESET-BY-ACKが発行されるとリセットされる。
【0060】図4に於いてPENDING-LATCH 301 〜303,31
9 からの出力は、LARエントリ一致検出部 404へ入力
されると共に、DELAY-LATCH で構成されるパイプライン
(DELAY) 310 〜315,320,321 を通過する。パイプライン
の段数はLARエントリ一致検出部 404の処理に必要な
時間を確保するに足りる段数で構成される。これは、L
ARエントリ一致検出部 404から出力されるINTERLOCK
信号をGATE 416〜418,422 に入力する事でパイプライ
ンを通過して来たOPC 、ADRS、LENGTH、DATAを抑止し、
記憶部アクセス制御機構 407に入力しないようにするた
めである。
【0061】GATE 416〜418,422 はINTERLOCK 信号が
入力されている間、DELAY-LATCH からの出力を記憶部ア
クセス御機構 407へ伝達しないAND 回路である。INTERL
OCK 信号の生成は、アクセス元(PORT ID)、アクセス
の種別(OPC)、アクセス対象アドレス(ADRS)と、LAR
各エントリとの照合の結果によって決定される。
【0062】本発明のロックアクセス命令aが発行さ
れ、ポート(0) 201 〜で保持されると、図5で示される
TRANSFER-LENGTH 、TRANSFER-ADDRESS、TRANSFER-PORT-
ID、TRANSFER-OPCが入力される。この時、カウンタ(COU
NER) 607はリセットされる。
【0063】次に、TRANSFER-ADDRESSが、既にLAR 2
17に登録されていないかを、LARエントリ一致検出回
路 404内のチェック(CHECK) 604 でチェックし、もし、
登録されていれば、この時点でHIT が出力される。ま
た、LAR 217への登録は行われない。HIT が出力され
ると、INTERLOCK-BY-LAR-MATCH信号を出力するための
ラッチ 606がセットされる。
【0064】上記アドレス(TRANSFER-ADDRESS)が、LA
R 217に登録されていない場合は、更に、TRANSFER-OPC
がチェックされる。アドレス(TRANSFER-ADDRESS)がLA
R 217に登録されておらず、且つ、TRANSFER-OPCがロッ
クアクセスである事を、LARエントリ一致検出回路 4
04が検知すると、LAR 217にTRANSFER-PORT-ID (ポー
ト番号) とTRANSFER-ADDRESS (アドレス) を登録する。
この時、NO-HIT-AND-LOCK-ACCESS信号が生成される。こ
の信号はINTERLOCK-BY-LAR-MATCH信号を出力しない。
【0065】この結果、ロックアクセス要求は、記憶部
アクセス制御機構 407に入力され、実際のロックアクセ
スが開始される。その結果、LAR 217にはアドレスが
登録されることになるので、他のポートからのアクセス
は、LAR 217とのアドレスの照合の結果、HIT が出力
されて、アクセスが保留される事になり、ロック状態と
なる。
【0066】ロックを獲得したポート(0) 206 〜には、
記憶部アクセス制御機構 407より指定したアドレスか
ら読み出したデータ{ロックワード}が供給される。
ポート(0) 206 〜は、CPU(0) 201 〜に対してこのデ
ータを送出する。
【0067】CPU(0) 201 〜は、この後、前述の排他
制御領域のデータを更新するための書き込みアクセス
を開始する。CPU(0) 201 〜からの書き込みアクセス
が開始されると、ポート(0) 206 〜では、LAR 217と
の照合が行われるが、LAR 217に登録されているPORT
-IDを持つ場合には、HIT は出力されず、NO-HIT-AND-L0
CK-ACCSが出力される。これは、データカウンタ(COUNTE
R) 607 のカウント開始、及びデータカウンタ(COUNTER)
607 とレングスレジスタ(LENGTH) 608との比較を開始
する信号である。
【0068】CPU(0) 201 〜から送出されてくる書き
込みデータの有効性を示すデータバリッド(TRANSFER-DA
TA-VALID) 信号{通常、この信号は、バス長、例えば、
4バイト,8バイト,〜毎に出力される}が入力される
度に、データカウンタ(COUNTER) 607 はインクリメント
される。上記データカウンタ(COUNTER) 607 の値とレン
グスレジスタ(LENGTH) 608の内容は、コンパレータ(COM
PARE) 609 により比較される。
【0069】データカウンタ(COUNTER) 607 とレングス
レジスタ(LENGTH) 608の内容が一致した時、コンパレー
タ(COMPARE) 609 からLENGTH-MATCHが出力され、データ
の書き込みが完了したものと見なし、LARエントリの
無効化処理に入る。LARエントリの無効化対象は、PO
RT-ID(ポート番号) とTRANSFER-ADDRESS (アドレス) が
一致したエントリである。LARエントリが無効化され
ると、他ポートで保留されていたアクセスはINTERLOCK
信号がオフになる。もし、他のポートがLAR 217
に、同じアドレスを登録していなければ、そのポートの
アクセスが開始できる。
【0070】上記のように作用するので、アクセス時間
の遅い記憶装置を共有する上での情報処理システムの性
能が、記憶装置のアクセス時間に大きく依存するといっ
た従来の問題を、該記憶装置へのアクセス回数を低減
し、尚且つ、従来と同等の論理動作を実現することで解
決し、アクセス時間の遅い記憶装置資源 (例えば、拡張
記憶装置) を共有する情報処理システムの大幅な高速
化, 高性能化に大きく寄与することができるという効果
がある。
【0071】
【実施例】以下本発明の実施例を図面によって詳述す
る。前述の図1〜図4は、本発明の原理説明図であり、
図5〜図8は、本発明の一実施例を示した図であり、図
5は、前述のように、LARエントリ一致検出部,LA
Rエントリ制御部の具体的な構成例を示し、図6,図7
は、従来,及び、本発明によるロックアクセス制御の動
作を流れ図で比較して示し、図8は、本発明を実施した
ときのプログラムの時間推移を示している。
【0072】本発明においては、複数の中央処理装置 2
01,202, 〜で記憶装置 219を共有し、記憶装置 219上の
記憶領域,に対するアクセスの排他制御を行う情報
処理システムに於いて、一連のロックアクセス制御機構
を作用させる上で必要なパラメータを指定するロックア
クセス命令aと、上記ロックアクセス命令aの発行
により起動され、命令で指定されたアドレスと発行元C
PU識別情報(ポート番号)を保持するロックアドレス
レジスタ(LAR) 217 と、ロックを獲得した中央処理装置
201, 又は、202,〜以外の中央処理装置から発行された
記憶装置 219へのアクセス命令により指定されるアドレ
スと上記ロックアドレスレジスタ(LAR) 217 に登録さ
れているアドレスを比較するアドレス比較手段 404と、
前記アドレス比較手段 404によりアドレスの一致が検出
された場合に、そのアクセスを保留または所定の状態で
終了させるアクセス制御機構,407と、上記ロックアド
レスレジスタ(LAR) 217 に登録されたエントリを無効化
する手段 405と、指定されたロックアクセス命令aが
記憶装置 219に書き込むデータ長を保持し、書き込みが
行われたデータ長を計数することにより全データの書き
込みが完了した事を検知する手段 607,608,609を有し、
前記全データ, の書き込み完了の検知が行われるま
でロックアドレスレジスタ(LAR) 217 の内容を無効化せ
ず、全データ書き込み完了の検知を契機にロックアドレ
スレジスタ 217の内容を無効化する手段が、本発明を実
施するのに必要な手段である。尚、全図を通して同じ符
号は同じ対象物を示している。
【0073】以下、図1〜図4を参照しながら、図5〜
図8による、本発明のロックアクセス制御回路の構成と
動作を説明する。図1は本発明を適用したロックアクセ
ス命令aのフォーマットである。
【0074】本発明のロックアクセス命令aは、命令
コード(OPC) 701 、第1オペランド(R1) 702、第3オペ
ランド(R3) 703、第2オペランド(B2) 704、(D2) 705、
(R2)706から構成され、第1オペランド(R1) 702と第3
オペランド(R3) 703は、汎用レジスタ番号を指定する。
汎用レジスタのビット幅は1ワード長である。第2オペ
ランドは、B2 704でアドレス計算のためのベースレジス
タとして使用する汎用レジスタ番号を指定し、B2 704で
指定された汎用レジスタの内容と、D2 705で指定された
即値がアドレス計算規約に従って計算され、第2オペラ
ンドが指定するアドレスとなる。又、本実施例では図9
(a) に示した従来技術の命令形式に加え、第2オペラ
ンド(R2) 706が追加されている。これは、後述する第1
オペランド(R1) 702と第2オペランド(B2) 704,(D2) 70
5 が一致した場合に、書き込むデータのデータ長が格
納されている汎用レジスタ番号を指定する。
【0075】このロックアクセス命令aでは、第1オ
ペランド(R1) 702は、指定されたレジスタ番号から連続
する2本の汎用レジスタの内容が各オペランドの内容と
して扱われる。第3オペランド(R3) 703は、上記第1オ
ペランド(R1) 702と第2オペランドが一致した場合に、
書き込むデータのアドレスが格納されている汎用レジス
タ番号を指定する。{図2参照} 本ロックアクセス命令aでは、図2(a) に示したよう
に、まず、第2オペランド(B2) 704と、即値(D2) 705で
指定されるアドレスから2ワードで構成されるロックワ
ードの内容を読み出し、第1オペランド(R1) 702で指
定される2本の汎用レジスタの内容と比較される。も
し、一致したら、図2(b) に示されているように、第3
オペランド(R3) 703で指定した汎用レジスタの内容が示
すアドレスを起点とし、第2オペランド(R2) 706で指定
した汎用レジスタの内容を転送長として、第2オペラン
ド(B2,D2) で指定したアドレスを起点として書き込む。
もし、第1オペランド(R1)と第2オペランド(B2,D2) が
不一致ならば、図3(a) に示したように、第3オペラン
ド(R3) 703で指定される2本の汎用レジスタに対して、
第2オペランド(B2,D2) から読み出した2ワードのデー
タ、即ち、ロックワードを格納する。
【0076】第1オペランド(R1) 702と第2オペランド
(B2,D2) 704,705 の内容が一致したか、不一致であった
かは、ロックアクセス命令aの処理結果として、図示
されていないプログラム状態語(PSW)に設けられて
いる条件コード(CC)フィールドに反映する。
【0077】この時、第2オペランド(B2,D2) で指定さ
れる位置からデータ{ロックワード}を読み出して、
第1オペランド(R1) 702と比較を行い、図2(b) で示さ
れているように、第2オペランド(B2,D2) が指示するア
ドレスへ、第3オペランド(R3) 703と第2オペランド(R
2) 706で指定されるデータを格納するか、図3に示さ
れているように、第3オペランド(R3) 703で指定される
レジスタに、第2オペランド(B2,D2) が指示しているア
ドレスのデータ (ロックワード) を格納するまでの
間、他CPUが記憶装置上の2ワードに対する読み出
し, 及び、書き込みを抑止し、遅延させる。また、本ロ
ックアクセス命令aの実行に伴い、ロックワードに
対するアクセスの逐次性は保証される。
【0078】このロックアクセス命令aでは、CPU
の適切な制御により、まず、図4に於けるOPC 301に
対してロックフェッチが指示され、ADRS 302には、
第2オペランド(B2とD2)から、所定の規則に従っ
て計算されたアドレスがセットされる。
【0079】そして、前述の作用により、LAR 217に
は、上記ADRS 302が指示するアドレスが登録され、
他CPUに対して第2オペランド(B2,D2) で指定したア
ドレス(ADRS)にはロックがかかる。
【0080】上記のロックフェッチが行われて得られた
データ (ロックワード) は、CPUで第1オペランド
(R1) 702が指示する内容と照合される。もし、第1オペ
ランド(R1) 702と第2オペランド(B2,D2) が指示する上
記ロックワードが等しければ、予め、図2(a),(b) に
示した主記憶上に用意されている上記排他制御領域のデ
ータの書き込みが開始される。
【0081】具体的には、図4に於けるOPC 301に対
してストアが指示される。ADRS302には第2オペラ
ンド(B2とD2)から所定の規則に従って計算された
アドレスがセットされる。LENGTH 303には第2
オペランド(R2) 706で指定されたデータ長が指定され
る。
【0082】CPUの適切な制御により、第3オペラン
ド(R3) 703で指定された記憶領域から順次データを読み
出し、ポート(0) 206 〜へ送る。ポート(0) 206 〜で
は、前述の作用によりカウンター(COUNTER) 607 で、デ
ータが計数され、指定されたデータ長に達するまで監視
が行われる。
【0083】全てのデータが転送されると、コンパレー
タ(COMPARE) 609 がデータ長の一致(前述のLENGTH-MATC
Hの出力) を検出し、LAR 217のエントリを無効化す
る。第1オペランド(R1) 702と第2オぺランド(B2,D2)
が指示するロックワードが不一致であった場合には、
CPUの適切な制御により、ポート(0) 206 〜に対して
ロック解除指示が行われる。これにより、LAR 217の
エントリは無効化される。
【0084】この一連の動作をまとめたものが図2,図
3である。図2(a) はロックフェッチを行った段階であ
る。ここでは、拡張記憶装置{図10の記憶装置 219対
応}からデータ (ロックワード) をロックフェッチし
たものとしている。第2オペランドB2、D2で指定さ
れる拡張記憶装置のアドレスから2ワード{即ち、ロッ
クワード}を読み出す。ここには、前述した機構の作
用により、ロックがかけられる。
【0085】CPU(0) 201 〜で、第1オペランド(R1)
702で指定された汎用レジスタの内容とR1+1の番号
を持つ汎用レジスタの内容が、拡張記憶装置 219から読
み出されたデータ (ロックワード) と比較される。
【0086】図2(b) は比較の結果が一致した場合であ
る。比較した結果が一致した場合、第3オペランド(R3)
703で指定された主記憶上のアドレスから、第2オペラ
ンド(R2) 706で指定されたデータ長だけ、拡張記憶装置
219上の第2オペランド(B2、D2)で指定されたア
ドレスを起点として書き込まれる。
【0087】全データが書き込まれるまで、第2オペラ
ンド(B2、D2)で指定されたアドレスのロックは解
除されない。ロックアクセス命令aは、全ての操作を
完了すると、比較が一致した事を示す条件コード(CC)
を、図示されていないプログラム状態語(PSW)にセ
ットして終了する。
【0088】図3(a) は比較の結果が不一致であった場
合を示している。比較した結果が不一致であった場合、
第2オペランド(B2、D2)で指定されたアドレスか
ら読み出されたデータ(上記ロックワード)は、第3
オペランドであるR3とR3+1で指定される汎用レジ
スタに格納する。また、拡張記憶装置 219 のロックを
解除する専用の指示を行い、ロック機構 (即ち、LAR
217) に登録されたロックを解除する。ロックアクセス
命令aは全ての操作を完了すると、比較が不一致であ
った事を示す条件コード(CC)を、上記PSWにセットし
て終了する。
【0089】この本発明のロックアクセス命令aを使
用しなかった従来方法の処理と、本発明の導入により実
現される上記ロックアクセス命令a命令の導入後のプ
ログラム処理を対比して、図6,図7の動作フローで説
明する。尚、ロックワードは、図3(b) に示されてい
るように、常に、2ワードのロックワードの上位1ワ
ードをCPU番号、下位1ワードを2進数と見なし、ロ
ックを獲得した場合には、必ず、上位1ワードに自CP
U番号(必ず0以外の値を持つとする)を格納し、更に
下位1ワードに“1”を加えるものとする。ロック解除
時にはロックワードの上位1ワードに0を格納する。
【0090】また、ロックワードと、排他制御データ
は、同じ図3(b) に示されているように、拡張記憶装
置 219上に配置されているものとする。また、そのデー
タ構造は図3(b) に示すように、各データの先頭2ワー
ドがロックワードである。
【0091】本発明導入前の動作: (a) 拡張記憶装置 219上の更新しようとするデータ
と、そのデータに対応するロックワードを通常命令
(ロックなし)を用いて、拡張記憶装置 219上のデータ
と同一形式で、図2,図3に示されている主記憶上の連
続した領域に移動する。{図6の処理ステップ 100参
照} (b) (a) で移動したロックワードの上位1ワードが
“0”でなければ、他CPUが使用中なので、上記 (a)
へ分岐する。{図6の処理ステップ 101参照} (c) 再び拡張記憶装置 219上のロックワードを参照
し、(a) で得たロックワードと比較する。この処理は、
上記フェッチの途中で、ロックワードが更新されてい
るかどうかを確認するための処理である。
【0092】(d) (c) の処理での比較の結果、不一致で
あれば、ロックワード, データが更新されているの
で、(a) へ分岐する。{図6の処理ステップ 102,103参
照} (e) (a) で主記憶に移動したデータを更新(生成)す
る。{図6の処理ステップ 104参照} (f) (a) で主記憶に移動したロックワードを、汎用レ
ジスタR1とR1+1に格納しする。{図6の処理ステ
ップ 105参照} (g) 自CPU番号を汎用レジスタR3に、上記汎用レジ
スタR1+1をR3+1に移動する。{図6の処理ステ
ップ 106参照} (h) ロックアクセス命令を実行して、拡張記憶装置 2
19上のロックワードに対しロック獲得を行う(ソフト
ウェアロック開始)。
【0093】(i) 上記 (h)の処理で、汎用レジスタR
1、R1+1と、拡張記憶装置 219上のロックワード
が不一致であるなら、他CPUがすでにデータを更新し
ているか、更新の最中であるので、主記憶上にあるデー
タは最新では無いと認識し、(a) に分岐して処理をやり
直す。{図6の処理ステップ 107参照} (j) (h) の処理で、一致が得られた場合には、他CPU
がデータを未だ更新していなくて、主記憶上のデータ
は有効であると認識して、(e) のデータ{但し、ロック
ワードを除く}を拡張記憶装置 219に移動してデータ
を更新する(この時点ではソフトウェアロックが行われ
ている)。この時、ソフトウェアロックはまだ解除して
はならないので、ロックワードを拡張記憶装置 219に
転送してはならない。{図6の処理ステップ 108参照} (k) (a) で得たロックワードを元に、上位1ワードを
“0”、下位1ワードを2進数として“+1”し、更新
完了のロックワードとして、拡張記憶装置 219に移動
し、ソフトウェアロックを解除する。{図6の処理ステ
ップ 109参照} 本発明導入後の動作: (a) 拡張記憶装置 219上の更新しようとするデータと
そのデータに対応するロックワードを通常命令(ロッ
クなし)を用いて拡張記憶上のデータと同一形式で、図
示されていない主記憶上の連続した領域に移動する。
【0094】(b) (a) で移動したロックワードの上位
1ワードが“0”でなければ、他CPUが使用中なの
で、(a) へ分岐する。 (c) 再びロックワードを参照し、(a) で得たロックワ
ードと比較する。
【0095】(d) (c) の比較の結果、不一致であれば、
ロックワード, データが更新されているので、(a)
へ分岐する。 (e) 主記憶に移動したデータを更新する。
【0096】(f) (a) で主記憶に移動したロックワード
をR1とR1+1に格納する。ここまでの処理は、図
6に示した従来のロックアクセス制御方法と同じであ
る。{図7の処理ステップ 100〜105 参照} (g) 本発明においては、以後での処理が異なる。先ず、
本発明のロックアクセス制御においては、作用欄でも記
載してあるように、ハードウェアロック機構でソフトウ
ェアロックも行うように制御するので、ロックワード
の上位ワードにCPU番号を設定する必要がない。従っ
て、主記憶上のロックワードの下位ワードを“+1”
した値に書き直す。{図7の処理ステップ 110参照} (h) 前記本発明のロックアクセス命令aにより、拡張
記憶装置 219に対して更新を行うために、本発明のロッ
クアクセス命令aを発行する。{図7の処理ステップ
107参照} (i) (h) の処理で、汎用レジスタR1、R1+1と拡張
記憶上のロックワードが不一致であるなら、他CPU
がすでにデータを更新しているか、更新の最中であるの
で、主記憶上にあるデータは最新では無い。従って、
(a) に分岐して処理をやり直す。一致していれば、主記
憶上に展開され、更新されたロックワードとデータ
が、拡張記憶装置 219に書き込まれるため、データの
更新、ロックワードの更新も完了する。
【0097】このように、本発明によるロックアクセス
制御では、ソフトウェアロックは使わないため、図6の
処理ステップ 109で説明した別の命令による解除処理も
必要ない。
【0098】以上のプログラムの時間推移を図8に示
す。拡張記憶装置 219へのデータ転送は、その起動時間
と終了時間に長い時間(主記憶に対するアクセスの数十
〜数百倍以上)を要するため、本発明のロックアクセス
制御の導入前と導入後では、図8から明らかなように、
一連の処理時間には著しい差が生じる。尚、本図におい
て、(a) 〜は、図6,図7に示した各処理 (a)〜と同じ
ことを示している。
【0099】
【発明の効果】本発明により、アクセス時間の遅い記憶
装置 (例えば、拡張記憶装置) を共有する上でのシステ
ム性能は、該記憶装置のアクセス時間に大きく依存する
といった従来の大きな問題を、記憶装置のアクセス回数
を低減し、尚且つ、従来と同等の論理動作を実現する事
で解決が可能となり、アクセス時間の大きい記憶装置資
源を共有する情報処理システムの大幅な高速化、高性能
化に大きく寄与する効果が得られる。
【図面の簡単な説明】
【図1】本発明の原理説明図(その1)
【図2】本発明の原理説明図(その2)
【図3】本発明の原理説明図(その3)
【図4】本発明の原理説明図(その4)
【図5】本発明の一実施例を示した図(その1)
【図6】本発明の一実施例を示した図(その2)
【図7】本発明の一実施例を示した図(その3)
【図8】本発明の一実施例を示した図(その4)
【図9】従来のロックアクセス制御回路を説明する図
(その1)
【図10】従来のロックアクセス制御回路を説明する図
(その2)
【図11】従来のロックアクセス制御回路を説明する図
(その3)
【図12】従来のロックアクセス制御回路を説明する図
(その4)
【符号の説明】
101 命令コード(OPC) 102 第1オペランド(R1) 103 第3オペランド(R3) 104 第2オペランド(B2) 105 第2オペランド(D2) 201 〜205 中央処理装置{CPU(0)〜CPU(n)} 206 〜210 ポート(0) 〜ポート(n) 212 〜215 LAR エントリ一致検出部 216 LAR エントリ制御部 217 ロックアドレスレジスタ(LAR) 218 記憶部アクセス制御機構 (記憶部アク
セス制御部) 219 記憶部, 拡張記憶装置 301 〜303,319 ペンディングラッチ(PENDING-LAT
CH) 310 〜315,320,321 デレイレジスタ(DELAY) 315 〜318,322 ゲート(GATE) 404 チェック回路(CHECK) 501,601 エントリリセット(ENTRY-RESET) 502,602 エントリセット(ENTRY-SET) 606 ラッチ 607 カウンタ(COUNTER) 608 レングスレジスタ(LENGTH) 609 比較器(COMPARE) 701 命令コード(OPC) 702 第1オペランド(R1) 703 第3オペランド(R3) 704 第2オペランド(B2) 705 第2オペランド(D2) 706 第2オペランド(R2) , a ロックアクセス命令 アドレス(ADRS) ロックワード 排他制御領域, データ インタロック(INTERLOCK) 信号, INTE
RLOCK-BY-LAR-MATCH信号
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/30,9/46 G06F 12/00 - 12/06 G06F 15/16 - 15/177

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の中央処理装置(201,202, 〜) で記憶
    装置(219) を共有し、記憶装置(219) 上の所定の記憶領
    域(,)に対するアクセスの排他制御を行う情報処
    理システムに於いて、一連のロックアクセス制御機構を
    作用させる上で必要なパラメータを指定するロックアク
    セス命令 (a) と、 上記ロックアクセス命令 (a) の発行により起動さ
    れ、命令で指定されたアドレス()と発行元CPU識
    別情報(ポート番号)を保持するロックアドレスレジス
    タ(217) と、 ロックを獲得した中央処理装置(201, 又は、202,〜) 以
    外の中央処理装置から発行された、上記記憶装置(219)
    へのアクセス命令により指定されるアドレス () と上
    記ロックアドレスレジスタ(217) に登録されているアド
    レスを比較するアドレス比較手段(404) と、前記アドレ
    ス比較手段(404) によりアドレスの一致が検出された場
    合に、そのアクセスを保留または所定の状態で終了させ
    る記憶部アクセス制御機構(,407)と、 上記ロックアドレスレジスタ(217) に登録されたエント
    リを無効化する手段(405) と、 指定されたロックアクセス命令 (a)が記憶装置(21
    9) に書き込むデータ長を保持し、書き込みが行われた
    データ長を計数することにより全データの書き込みが完
    了した事を検知する手段(607,608,609) を有し、 前記全データ書き込み完了の検知が行われるまでロック
    アドレスレジスタ(217) の内容を無効化せず、全データ
    書き込み完了の検知を契機にロックアドレスレジスタ(2
    17) の内容を無効化する事により、可変長の上記記憶領
    域 (, ) に対する排他的データ更新を単一命令によ
    り行うように構成したことを特徴とするロックアクセス
    制御回路。
JP09822993A 1993-04-26 1993-04-26 ロックアクセス制御回路 Expired - Fee Related JP3265703B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09822993A JP3265703B2 (ja) 1993-04-26 1993-04-26 ロックアクセス制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09822993A JP3265703B2 (ja) 1993-04-26 1993-04-26 ロックアクセス制御回路

Publications (2)

Publication Number Publication Date
JPH06309219A JPH06309219A (ja) 1994-11-04
JP3265703B2 true JP3265703B2 (ja) 2002-03-18

Family

ID=14214137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09822993A Expired - Fee Related JP3265703B2 (ja) 1993-04-26 1993-04-26 ロックアクセス制御回路

Country Status (1)

Country Link
JP (1) JP3265703B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454585B2 (en) * 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
JP4914175B2 (ja) * 2006-10-31 2012-04-11 パナソニック電工Sunx株式会社 共有メモリインターフェイス装置

Also Published As

Publication number Publication date
JPH06309219A (ja) 1994-11-04

Similar Documents

Publication Publication Date Title
CN1147775C (zh) 受保护的存储器系统和方法
US9262173B2 (en) Critical section detection and prediction mechanism for hardware lock elision
US6754859B2 (en) Computer processor read/alter/rewrite optimization cache invalidate signals
US6466988B1 (en) Multiprocessor synchronization and coherency control system
US6460124B1 (en) Method of using delays to speed processing of inferred critical program portions
EP0121700B1 (en) Multiprocessor storage serialization apparatus
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
EP0729093A1 (en) A mixed-endian computer system
US6266768B1 (en) System and method for permitting out-of-order execution of load instructions
JPH06187232A (ja) 共通データのアクセス管理制御方法
JPH0227441A (ja) コンピュータ・システム
US6941308B1 (en) Methods and apparatus for accessing a doubly linked list in a data storage system
WO1996027833A1 (fr) Unite de traitement informatique
US4799186A (en) Electronic circuit constituting an improved high-speed stable memory with memory zones protect from overlap
EP0364226A2 (en) A system for performing a serializing control of a reference to a main storage
US20090198695A1 (en) Method and Apparatus for Supporting Distributed Computing Within a Multiprocessor System
JP3265703B2 (ja) ロックアクセス制御回路
US5938758A (en) Microprocessor having function of prefetching instruction
US3618042A (en) Error detection and instruction reexecution device in a data-processing apparatus
JP2776759B2 (ja) ロックリクエスト制御装置
KR102642962B1 (ko) 프로세서에서 단일 트랜잭션으로부터 변환된 복수의 트랜잭션들을 처리하는 방법 및 이를 수행하기 위한 프로세서
JP2783285B2 (ja) 情報処理装置
JPH03147153A (ja) キャッシュメモリ装置
JPH06266621A (ja) データアクセス方法
JPH0414369B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees