JPH0391055A - ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置 - Google Patents

ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置

Info

Publication number
JPH0391055A
JPH0391055A JP22734189A JP22734189A JPH0391055A JP H0391055 A JPH0391055 A JP H0391055A JP 22734189 A JP22734189 A JP 22734189A JP 22734189 A JP22734189 A JP 22734189A JP H0391055 A JPH0391055 A JP H0391055A
Authority
JP
Japan
Prior art keywords
lock
address
hardware
processing
request
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
JP22734189A
Other languages
English (en)
Inventor
Yukihisa Tamura
田村 恭久
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 JP22734189A priority Critical patent/JPH0391055A/ja
Publication of JPH0391055A publication Critical patent/JPH0391055A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は電子計算機ハードウェアにおける特定データの
排他使用の制御方法、すなわちハードウェアロックのセ
ット方法とそのための制御装置に係り、特に高速処理に
好適なハードウェアロックのセット方法とそのための制
御装置に関する。
〔従来の技術〕
電子計算機ハードウェアにおける排他制御は、共有質源
の逐次使用を保証するために必要不可欠な機構である。
排他制御機構により、電子計算機システム内に存在する
複数の動作主体、すなわちソフトウェアにおけるプロセ
ス群やタスク群、またハードウェアにおける複数のプロ
セッサが共有する質源を、相互に矛盾なく使用すること
が可能となる。以降の排他制御機構は、ハードウェアに
関してのみの問題を論する。
ハードウェハにおける排他制御は1機械語の排他制御命
令は、すなわちTS (テスト・アンド・セット)、C
S(コンベア・アンド・スワップ)命令の発行により実
行する。これらの命令は、工命令の実行中に ■メモリ上のオペランドのフェッチ(読み出し)■所望
の値と比較 ■結果のストア(書き込み) の3動作を行う、動作のから■まで、フェッチしたメモ
リ上のオペランドの値は不変である必要があり、その間
オペランドに対して排他制御を行う。
排他制御なしに、2台のプロセッサが共有するメモリ領
域をアクセスした場合、矛盾が起こる例を示す、今、プ
ロセッサ0とプロセッサlでカウンタを共有していたと
仮定する。双方のプロセッサは同時に動作と、イベント
毎に共有するカウンタの値を1増やすものとする。いず
れのプロセッサも、カウンタの値を更新するためには、
まず値を読み出さなければならない、プロセッサ0がカ
ウンタの値を読みだしてから、値を1増やしメモリに書
き込むまでの間に、プロセッサ1がカウンタの値を読み
出した場合、プロセッサ1はプロセッサOと同じ値をメ
モリに書き込む結果となる。
すなわち、2台のプロセッサは同じ値を読みだし。
それに1を足した同じ値をメモリに書き込む。これは矛
盾であり、プロセッサ間で共有されるカウンタには誤っ
た値が残る。
以上の矛盾を防ぐため、前述の■〜(3)の動作中は、
同一オペランドに対する、他の動作主体のアクセスを禁
止しなければならない、このアクセス禁止を実現するた
めに、排他制御機構(ハードウェアロック制御装置)を
設ける。前述の2台のプロセッサが競合する電子計算機
ハードウェアでは。
各々のプロセッサに対してハードウェアロックの有効/
無効を示すビット(ロック有効ビット)と、ハードウェ
アロックが発行されているアドレスを保存するレジスタ
(口角クアドレスレジスタ)を用意する。まず、ハード
ウェアロックをセットする場合、ロック有効ビットを「
有効」(通常′l′)にセットし、かつハードウェアロ
ックをセットしたいアドレスをロックアドレスレジスタ
に保存する0通常の処理を実行する場合、処理のアドレ
スとロックアドレスレジスタのアドレスとを比較し、か
つロック有効ビットによりハードウェアロックがセット
されているか否かを判定する。ハードウェアロックがセ
ットされており、かつアドレスがロックアドレスレジス
タのそれと同一であれば、その処理は前述の例のように
矛盾を起こす可能性があるので、処理をハードウェアロ
ックが解除されるまで延期しなければならない、ハード
ウェアロックがセットされていないか、またはアドレス
がロックアドレスレジスタのそれと異なる場合は、後続
の処理を続行する。このようにして、共有資源に対する
排他制御を実現する。
複数のプロセッサが主記憶を共有し、プロセッサは固有
のバッファ記憶装置を備え、このほかに複数のプロセッ
サで共有する共有バッファ記憶装置を備える電子計算機
ハードウェアでは、主記憶装置と比較して動作が高速で
ある共有バッファ記憶装置の内に、ハードウェアロック
制御装置を備える。ここでプロセッサ毎のハードウェア
ロックの有無を有する、ハードウェアロック検出装置に
おいて、また他のプロセッサのハードウェアロックと競
合するリクエストの処理を延期する機構とする。
〔発明が解決しようとする課題〕
従来のロック競合検出は、ロックアドレスレジスタの値
と処理のアドレスを比較し、かつロック有効ビットの値
を検知していた。アドレスの比較は、ゲート段数で4〜
5段を要し、高速処理に不利である。
本発明の目的は、より高速にセットロック処理を実行す
るハードウェアロックのセット方法と、それを用いたハ
ードウェアロック制御装置を提供することである。
本発明の他の目的は、より高速にロック比較処理をおこ
ない、後続処理を実行させる、ハードウェアロックの検
知方法と、それを用いたハードウェアロック制御装置を
提供することである。
〔課題を解決するための手段〕
上記目的達成のため1本発明のハードウェアロックのセ
ット方法では、既にロックがセットされているか否かを
先に有する、ハードウェアロック検出装置において、ロ
ックがセットされていなければアドレス比較処理をスキ
ップしてセット口ツタ処理を行う、既にロックがセット
されていた場合には、そこで改めてアドレス比較処理を
行い、アドレス競合があれば当該リクエストの実行を延
期する。
また、ハードウェアロックの制御装置では、ロック有効
ビットの値によりハードウェアロックの存否を先に判定
し、ハードウェアロックがセットされていなければアド
レス比較の結果を待たずにセットロック動作に移行する
〔作用〕
排他使用の処理が重なることは非常に希であるので、セ
ットロックリクエストの際に既にロックがセットされて
いたというtlJl性能非常に低い。
よってほとんどの場合、ロックがセットされていないと
判定し、アドレス比較を行わずにセットロック処理を実
行するので、セットロック処理が高速化される。
また、ハードウェアロックの制御装置では、はとんどの
場合、アドレスを比較する手段をスキップするので、セ
ットロック動作が高速化される。
〔実施例〕
以下、本発明の実施例を、第1図以ドにより説明する。
第1図は1本発明のハードウェアロックのセット及び検
知方法のフローチャートである。本フロ−チャートの特
徴は、処理にあたってまずロック有効ビットを検索し、
ロックがセットされていなければ直接セットロック処理
または後続処理に移行する点である。
フローチャートは全8ステツプから成る。まず、ロック
有効ビットの検索を行い(ステップ1)、ハードウェア
ロックの存否を確認する(ステップ2)、ここで、ロッ
クがセットされていない(複数のプロセッサが存在する
場合には、それらのうちいずれのプロセッサもロックを
セットしていない)ことが判明したならば、直接セット
ロック処理や後続処理〈ステップ3〉へ移る。それ以外
の(複数のプロセッサが存在する場合には、それらのう
ちいずれかのプロセッサがロックをセットしている)場
合には、ロックアドレスレジスタに保存されているアド
レスと処理のアドレスとの比較を行う処理(ステップ4
)に移る。
ステップ4でロックアドレスとの比較を行った結果(ス
テップ5)、処理のアドレスとロックがセットされてい
るアドレスが同一であった場合、当該処理の実行を延期
する(ステップ6)。これは、セットされているロック
がリセットされるまで継続する。
ステップ4でロックアドレスとの比較を行った結果、処
理のアドレスとロックがセットされているアドレスが異
なる場合、ステップ3と同様にセットロック処理や後続
処理を実行するが、ハードウェアのパイプラインが本判
定の時点でオーバランしているハで、セットロック処理
の場合、ロックアドレスレジスタやロック有効ビットへ
のセットが不可能である。よって、当該要求をキューか
ら再び切り出しくステップ7)、セットロック処理や後
続処理を行う(ステップ8)。
本実施例では、はとんどの場合、ロック有効ビットがO
′であることを判定して、直接後続処理へ移行する処理
であるので、アドレス比較による遅延や再切り出しによ
るパイプラインの乱れが影響しないので、処理を高速化
できる。
本発明の第2の実施例として、本発明を実際に論理囲路
で実現した例を示す、第2図が当該実施例の図である。
ここでは、プロセッサからの要求を一旦蓄積しておき、
再切り出しの時に利用するためのキューが合計4個用意
しである。このキューはアドレス用(1)と、セットロ
ック要求であることを示す信号用(4)との2種類が各
々用意しである。キューからセレクタ(2,5)により
切り出された要求のアドレスとセットロック要求信号は
、レジスタ(3,6)に保存される。ここで、切り出さ
れた要求がセットロックであるか否かが判別できる。ま
た、プロセッサ毎のロック有効ビット(7)が1′かt
 Otかもこの時点で判別できる構造である。アンド回
路(8)の出力は、要求がセットロックであり、かつ現
在ロック有効ビットがO′である場合に11′となる。
この場合、切り出された要求のアドレスがロックアドレ
スレジスタ(10)にセットされる。また、ロック有効
ビット(9)に61″がセットされる。
以上の動作により、ロック有効ビットが0′であり、要
求がセットロックであることにより、セットロック動作
が完了したことになる。要求がセットロックでないか、
またはすでにロック有効ビットが1′である場合には、
アンド回路の出力はOとなり、ロックアドレスのセット
やロック有効ビットの設定は行われない、そして、ロッ
ク有効ビットが11#である場合には、要求のアドレス
とロックアドレスレジスタのアドレスが比較回路(11
)によって比較される。この結果、アドレスが同一であ
ると判定されたならば、当該要求の処理を延期する処理
に移る。アドレス比較の結果、ロックをセットしである
アドレスと異なるアドレスをアクセスする要求であるこ
とが判明した場合、オーバラインのためキューから再切
り出し要求を行う(12)。
〔発明の効果] 本発明によれば、ロック有効ビットがO′である場合に
はアドレス比較を行わずに処理を続行するので、処理が
高速化される。
【図面の簡単な説明】
第1図は本発明におけるロック競合の検出の処理手順を
示すフローチャートである。 第2図は本発明をハードウェアで実現した時の概要論理
である。 め 口

Claims (1)

  1. 【特許請求の範囲】 1、ハードウェアロックのセット方法であつて、(1)
    現在既にロックがセットされているか否かを判定し、(
    2)既にセットされているロックと現在セットしようと
    するロックのアドレス競合の有無を判定し、(3)ロッ
    クがまだセットされていないか、またはロックの対象と
    するアドレスが異なる場合、セットロック処理を行う、
    ハードウェアロックのセット方法において、 処理(1)において現在ロックがセットされていないと
    判定したならば、処理(2)のロックアドレス比較処理
    の結果にかかわらず、セットロック処理を行うことを特
    徴とする、ハードウェアロックのセット方法。 2、複数のプロセッサの各々に付随する固有バッファ記
    憶装置と、当該プロセッサ間で共有される主記憶装置の
    中間に位置し、当該固有バッファ記憶装置間で共有され
    る共有バッファ記憶装置内に存在するハードウェアロッ
    ク制御装置であつて、 ロック有効レジスタの信号とセットロックリクエスト信
    号を入力とし、既にロックがセットされている事を検知
    する第1の手段と、ロックアドレスを保持するロックア
    ドレスレジスタの信号と、セットロックリクエストのア
    ドレス信号を入力とし、ロックアドレスの競合を検知す
    る第2の手段と、第1、第2の手段の出力を入力とし、
    第1の手段によりロックがセットされておらず、または
    第2の手段によりアドレス競合が起きていない場合、ロ
    ック有効レジスタをオンにセットし、かつロックアドレ
    スレジスタにセットロックリクエストのアドレスをセッ
    トする手段とを有する、ハードウェアロック制御装置に
    おいて、 第1の手段の出力バよりロックがセットされていないこ
    とを検知し、第2の手段の出力に依存せず、ロック有効
    レジスタの値をセットし、かつセットロックリクエスト
    のアドレスをセットする第3の手段を有することを特徴
    とする、ハードウェアロック制御装置。 3、ハードウェアロックの検出方法であつて、(1)現
    在既にロックがセットされているか否かを判定し、(2
    )既にセットされているロックと現在処理しようとする
    要求のアドレス競合の有無を判定し、(3)処理(1)
    によりロックがセットされており、かつ処理(2)によ
    りロックの対象とするアドレスが同一である場合、要求
    された処理の実行を延期する、ハードウェアロックの検
    出方法において、 処理(1)の結果、現在ロックがセットされていないし
    判定したならば、ロックアドレス比較処理の結果にかか
    わらず、(3)の処理を行わないことを特徴とする、ハ
    ードウェアロックの検出方法。 4、請求項2記載の共有バッファ記憶装置内に存在する
    ハードウェアロック検出装置であつて、(A)ロック有
    効レジスタの信号とリクエスト信号を入力とし、既にロ
    ックがセットされている事を検出する手段と、(B)ロ
    ックアドレスを保持するロックアドレスレジスタの信号
    と、要求された処理のアドレス信号を入力とし、ロック
    アドレスの競合を検知する手段と、(C)(A)と(B
    )の出力を入力とし、(A)によりロックがセットされ
    ており、かつ(B)によりアドレス競合が起きている場
    合、処理の実行を延期する手段とを有する、ハードウェ
    アロック検出装置において、 手段(A)の出力によりロックがセットされていないこ
    とを検知し、手段(B)の出力に依存せず、手段(C)
    の結果を無効化する手段を有することを特徴とするハー
    ドウェアロック検出装置。
JP22734189A 1989-09-04 1989-09-04 ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置 Pending JPH0391055A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22734189A JPH0391055A (ja) 1989-09-04 1989-09-04 ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22734189A JPH0391055A (ja) 1989-09-04 1989-09-04 ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置

Publications (1)

Publication Number Publication Date
JPH0391055A true JPH0391055A (ja) 1991-04-16

Family

ID=16859289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22734189A Pending JPH0391055A (ja) 1989-09-04 1989-09-04 ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置

Country Status (1)

Country Link
JP (1) JPH0391055A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174434B2 (en) 2001-02-24 2007-02-06 International Business Machines Corporation Low latency memory access and synchronization
US7529895B2 (en) 2003-08-22 2009-05-05 International Business Machines Corporation Method for prefetching non-contiguous data structures

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174434B2 (en) 2001-02-24 2007-02-06 International Business Machines Corporation Low latency memory access and synchronization
US7529895B2 (en) 2003-08-22 2009-05-05 International Business Machines Corporation Method for prefetching non-contiguous data structures

Similar Documents

Publication Publication Date Title
US5968135A (en) Processing instructions up to load instruction after executing sync flag monitor instruction during plural processor shared memory store/load access synchronization
US7249270B2 (en) Method and apparatus for placing at least one processor into a power saving mode when another processor has access to a shared resource and exiting the power saving mode upon notification that the shared resource is no longer required by the other processor
JP4476193B2 (ja) 情報処理方法および情報処理装置
JPH0816395A (ja) 格納要求処理方法および取出し/格納バッファ
US5136714A (en) Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US4385365A (en) Data shunting and recovering device
EP0166431A2 (en) An information processing apparatus having an instruction prefetch circuit
JPH0391055A (ja) ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置
JP3381079B2 (ja) キャッシュメモリを用いた排他制御システム
JP2783285B2 (ja) 情報処理装置
JPH02287828A (ja) プリフェッチ制御方式
JPH02133842A (ja) 中間バッファプリフェッチ制御方式
JP2653412B2 (ja) ブレークポイント設定方法
JPH0447350A (ja) 主記憶読み出し応答制御方式
JP3169878B2 (ja) メモリ制御回路
JPH05257807A (ja) キャッシュメモリ制御装置
JPS6125249A (ja) 排他制御方式
KR950005523B1 (ko) 프로그램어블 로직 콘트롤러의 스텝 런 처리방법
JP2549410B2 (ja) 主記憶参照順序制御方式
JPH09146769A (ja) パイプライン処理装置
JPH03182945A (ja) 主記憶内データ転送方式
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPH09179736A (ja) パイプライン処理装置
JPH0414369B2 (ja)
JPH05265942A (ja) Dma制御部におけるデータ入出力方法