JPH09231123A - データ完全性を維持するためのスピン・バッファおよび方法 - Google Patents
データ完全性を維持するためのスピン・バッファおよび方法Info
- Publication number
- JPH09231123A JPH09231123A JP9004223A JP422397A JPH09231123A JP H09231123 A JPH09231123 A JP H09231123A JP 9004223 A JP9004223 A JP 9004223A JP 422397 A JP422397 A JP 422397A JP H09231123 A JPH09231123 A JP H09231123A
- Authority
- JP
- Japan
- Prior art keywords
- semaphore
- shared resource
- semaphores
- devices
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program 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)
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
ンピュータ・システム中の共用リソースのデータ完全性
を保証する。異なるセマフォーに対する異なる装置によ
る並行アクセスが許される。セマフォー内のロックおよ
び識別データがスピン・バッファ中に記憶されて、スピ
ン・バッファ中で表されるセマフォーに対応する共用リ
ソースに対するアクセスを要求する装置が、セマフォー
から読み出しするのではなく、スピン・バッファ内のデ
ータにアクセスすることにより、いずれか他の装置がそ
の共用リソースの所有権を有しているかどうかを判断す
ることができるようになっている。セマフォー・ロック
情報を記憶し、異なるセマフォーに対する異なる装置に
よるアクセスを許すことにより、システムの性能が高め
られる。
Description
ステムに関し、より具体的には、スピン・バッファおよ
びスピン・バッファを使用してコンピュータ・システム
中でセマフォーに対するアクセスを制御して、システム
性能を高めながらも共用リソースのデータ完全性を保証
する方法に関する。
システムの開発がコンピュータ時代の幕開けと称される
ことが多い。そのとき以来、コンピュータ・システムは
極めて精巧な装置へと進化してきた。しかし、今日のも
っとも進んだコンピュータ・システムでさえ、当初のコ
ンピュータ・システムのいくつかに見られた基本要素の
多くを含み続けている。例えば、最新のコンピュータ・
システムは、プロセッサ、メモリおよび1個以上の周辺
装置を含む。近年、多数のプロセッサが導入されて、コ
ンピュータ・システムの計算速度が高められてきた。多
数のプロセッサを有するコンピュータ・システムは通
常、プロセッサごとに別個のメモリおよび周辺装置を有
するのではなく、プロセッサの間でメモリおよび周辺装
置を共用している。コンピュータ・システム内でデータ
の完全性を維持するためには、一つのプロセッサによっ
て必要とされるデータが別のプロセッサによって破壊さ
れないよう保証するための機構を設けなければならな
い。
テム中でデータ完全性を保証する一つの方法は、セマフ
ォーとして知られる特殊な信号要素を使用する方法であ
る。コンピュータ・システム中のセマフォーは、通常、
共用リソースの状態に関する情報を含む記憶場所であ
る。もっとも一般的な場合、別個のセマフォーが共用リ
ソースごとに割り当てられている。装置(例えばプロセ
ッサまたは周辺装置)が共用リソースに対してアクセス
を必要とするとき、その装置はまず、その共用リソース
に対応するセマフォーにアクセスして、共用リソースが
利用できるかどうかを見いだす。セマフォーが、共用リ
ソースが利用できることを示すならば、要求側の装置は
そのセマフォーを変更して、共用リソースが現在使用中
であることを示し、それからその共用リソースにアクセ
スする。この一連の手続きは一般にアトミック読み出し
変更書き込みサイクルとして知られている。装置が共用
リソースとのその対話を完了すると、装置はデータをそ
のセマフォーに書き込んで、共用リソースが現在他の装
置にとって利用できることを示す。装置がまずセマフォ
ーにアクセスして対応する共用リソースが利用できるか
どうかを判断するとき、セマフォーがそのリソースが使
用中である(すなわち利用できない)ことを示すなら
ば、要求側の装置は後でセマフォーを読み出して、共用
リソースがなおも使用中であるかどうかを判断しなけれ
ばならない。セマフォーを再読み出しするこのプロセス
は「スピニング」として知られ、通常、共用リソースに
対するアクセスが達成されるまで繰り返される。上記に
概説したステップは、セマフォーを使用してコンピュー
タ・システム中のリソースを共用する理論を説明する。
は比較的簡単かつ率直であるが、その具現化の詳細は重
大な問題を提示する。例えば、第一の装置がセマフォー
から読み出しを行い、共用リソースが利用できると判断
するが、その第一の装置がデータをそのセマフォーに書
き込んで共用リソースがもやは利用できないことを示す
前に、第二の装置が、共用リソースがまだ利用できるこ
とを示すそのセマフォーを読み出してしまうことがあり
うる。そして、第一の装置がセマフォーに対して書き込
みを実行して共用リソースが利用できないようにし、続
いて第二の装置が同様な書き込みを行うことになる。そ
の結果、第一および第二の装置のいずれも自らが共用リ
ソースに対して独占的アクセスを有すると思い込み、そ
れが共用リソース中のデータの完全性を損ない、セマフ
ォーを提供する他ならぬ目的を頓挫させる。したがっ
て、セマフォーに対してある装置によってアトミック読
み出し変更書き込みサイクルが実行されているとき、そ
のセマフォーに対する別の装置によるアクセスをロック
アウトする方法が求められる。
アトミック読み出し変更書き込みサイクルが完了するま
ですべてのセマフォーに対するすべてのアクセスを封じ
ることである。このアプローチは上記に述べた問題を解
決するが、その同じセマフォーに対するアクセスのみを
禁じるのではなく、要求側の装置がアトミック読み出し
変更書き込みサイクルを完了するまですべてのセマフォ
ー・アクセスを禁止する犠牲を払ってしかそうすること
ができない。簡単な回路設計のため、アトミック読み出
し変更書き込みサイクルの間すべてのセマフォー・アク
セスをロックアウトするというこの強引なアプローチ
は、一般的で受け入れられるようになった。しかし、こ
のアプローチは、以下に記すように、アトミック読み出
し変更書き込みサイクルの間に異なるセマフォーに対す
るアクセスを禁止することにより、システムの処理能力
を下げてしまう。
は、多数の装置が共通のリソースを共用するとき、セマ
フォーを使用してデータ完全性を保証する。装置が共用
リソースを必要とするとき(ステップ102)、その装
置は他の装置によるすべてのセマフォー・アクセスをロ
ックアウトする(ステップ104)。そして、装置はセ
マフォーを読み出して(ステップ106)、その共用リ
ソースが利用できるかどうか、すなわち、共用リソース
が別のマスタによって所有されているかどうかを判断す
る(ステップ108)。セマフォーが、共用リソースが
別のマスタによって所有されていることを示すならば、
装置は「スピン」しなければならない。つまり、装置は
後で再び共用リソースのアクセスの取得を試みなければ
ならない。他の装置にセマフォー操作を実行させる(ま
た、そのときに所望の共用リソースを所有する装置がセ
マフォーに対して書き込みをすることによって所有権を
放棄することを許す)ためには、セマフォーへのアクセ
スのロックを解除しなければならない(ステップ11
0)ことに注意する必要がある。
によって所有されていないことを示すならば、装置はセ
マフォーに対して書き込みをして(ステップ112)、
他の装置に対し、その装置が共用リソースを所有してい
ることを示す。ひとたび装置がセマフォーに対して書き
込みをしたならば(ステップ112)、その装置はその
共用リソースの所有権を取得したことになる(ステップ
114)。装置はその後、セマフォー・アクセスのロッ
クを解除して(ステップ116)、他の装置がセマフォ
ー・アクセスを実行することを許す。
を制御する従来技術の方法100は、二つの装置が並行
にリソースの制御を取得する問題を回避するが、リソー
スの所有権を所得したのち(ステップ114)セマフォ
ー・アクセスのロックが解除されるまで(ステップ11
6)すべてのセマフォー・アクセスをロックアウト(ス
テップ104)しなければならない。
一つのバス・マスタによってアクセスされているセマフ
ォーに対するアクセスを選択的に不能にしながらも他の
すべてのセマフォーに対するアクセスを許す必要性が存
在する。このリソース割り当て方法は、異なるマスタが
異なるセマフォーに並行にアクセスすることを許すこと
により、処理能力を高める。
マフォーに対するアクセスを他のセマフォーに対するア
クセスから独立させてロックアウトすることに備えるス
ピン・バッファが得られる。このスピン・バッファは、
要求される共用リソースが別の装置によって所有されて
いるかどうかを示す記憶場所を含む。例えば、スピン・
バッファ内の記憶場所は、対応するセマフォーのアドレ
スを含み、そのセマフォーに対応する共用リソースの所
有権に関する情報を含むことができる。このように、ス
ピン・バッファは、共用リソースの所有状態に関するセ
マフォー内の情報のキャッシュ化を提供する。一つの装
置が、共用リソースが利用できるかどうかをチェックす
る間、他の装置は、セマフォーに直接アクセスすること
なく、スピン・バッファ中のデータにアクセスして、他
の共用リソースが利用できるかどうかを調べることがで
きる。スピン・バッファおよび関連の方法は、完全に連
携したメモリ構造を使用して、セマフォーに対する独占
的アクセスを保証する。
らびに利点は、添付の図面と伴に本発明の好ましい実施
態様の詳細な説明によって明白に理解されよう。
のデータ完全性を保証する方法200は、一つの装置が
セマフォーにアクセスしているとき、すべてのセマフォ
ー・アクセスをロックアウトするのではなく、異なるセ
マフォーに対する異なる装置による並行アクセスを許
す。ある装置が共用リソースを必要とするとき(ステッ
プ102)、その装置はそのリソースの所有権を確立す
るため読み出しを開始する。(ステップ202)。所有
権に関して読み出ししている間(ステップ202)、装
置は、他の装置によるその同じセマフォーに対するアク
セスだけをロックアウトする(ステップ204)。これ
は、要求側の装置が要求される共用リソースの所有権を
取得している間、他の装置が他のセマフォーにアクセス
する(それにより、他の共用リソースの所有権を取得す
る)ことを許す。そして、要求側の装置は、それが要求
している共用リソースが別の装置によってすでに所有さ
れているかどうかをチェックする(ステップ206)。
共用リソースが別の装置によって所有されているなら
ば、装置はスピンし、後で再度その共用リソースの所有
権の取得を試みなければならない。装置がスピンしなけ
ればならないならば、装置は、他の装置がセマフォーに
アクセスすることができるよう、セマフォーに対するア
クセスのロックを解除する(ステップ208)。
って所有されていないならば、要求側の装置は、要求側
の装置がその共用リソースを所有していることを他の装
置に対して示すロック・ビットをセットする(ステップ
210)ことによって所有権を取得する。そして、装置
はセマフォーからデータを読み出し(ステップ21
2)、それで共用リソースの所有権を取得するプロセス
(ステップ214)が完了する。
得したならば(例えば、図2の方法によって)、その装
置は、セマフォーを更新して状態の変化を反映させる必
要があるかもしれない。例えば、装置は、共用リソース
の所有権を放棄するためにセマフォーを更新しなければ
ならない。図3を参照すると、セマフォーを更新する方
法300は、まず、セマフォーの更新が必要である時期
を判断する(ステップ302)。セマフォー更新が始ま
ると(ステップ304)、新たなデータをセマフォーに
書き込むことによって(ステップ306)セマフォーが
更新される。この時点で、共用リソースがなおも必要と
されているならば(ステップ308)、装置は、セマフ
ォーを更新する際に行わなければならないすべてを完了
したことになる。しかし、共用リソースがもはや必要と
されないならば、装置はロック・ビットをクリアし(ス
テップ310)、共用リソースの所有権が放棄される
(ステップ312)。装置が、共用リソースがもはや必
要とされないと判断したならば、セマフォーに書き込ま
れたデータ(ステップ306)が、共用リソースが所有
されてはいないことを示すが、さらに最終段階として、
スピン・バッファ中のロック・ビットがクリアされて
(ステップ310)共用リソースの所有権の放棄が完了
することに注意する必要がある。
が、異なるセマフォーに対する異なる装置による並行ア
クセスを許すものであり、バス制御装置402と、1個
以上のバス404と、各バス404上の1個以上のバス
・マスタ406と、1個以上の共用リソース408とを
含む。バス制御装置は402は、バス・マスタ406に
よる共用リソース408に対するアクセスを制御して、
いかなるときにも一つのバス・マスタ406だけにしか
所与の共用リソース408の制御または所有権を持たせ
ない。バス・マスタ406は、1個以上の共用リソース
408に対するアクセスを必要とし、1個以上の共用リ
ソース408の独占所有権を取得することができる適当
な装置である。共用リソース408は、バス・マスタ4
06の間で共用される、ランダム・アクセス・メモリ
(RAM)のようなリソースである。バス制御装置40
2は、適当なスキーマを使用して、バス・マスタ406
による共用リソース408に対するアクセスを制御する
ことができる。例えば、バス制御装置402は、共用リ
ソース408に対するアクセスをいつバス・マスタ40
6に与えるかを判定するアービトレーション論理を含む
ことができる。このように、バス制御装置402は、共
用リソース408を求める要求に対して許可を与える順
序を決定する優先順位をバス・マスタ406に対して割
り当てることができる。バス・マスタ406が共用リソ
ース408に対するアクセスを要求するのでもよいし、
あるいはまた、バス・マスタをバス制御装置402によ
ってポーリングして、共用リソース408に対するアク
セスが必要とされるかどうかを決定するのでもよい。イ
ンプリメントされるプロトコルが何であれ、バス制御装
置402は、共用リソース408中のデータ完全性を保
証し、異なるセマフォーに対する異なるバス・マスタ4
06による並行アクセスに備える。
つの具体的な実施態様は、4個のバス・マスタ406A
〜406Dと、スピン・バッファ502と、セマフォー
・メモリ504と、アービタ506とを含む。アドレス
・バス510、データ・バス512および制御バス51
4が、バス・マスタ406A〜406Dのそれぞれと、
セマフォー・メモリ504と、スピン・バッファ502
と、アービタ506とを相互接続している。加えて、制
御ライン(すなわち、RD STROBE、WR ST
ROBEおよびRDY#)がセマフォー・メモリ504
とスピン・バッファ502とを相互接続している。
うな複数の記憶場所520A〜520Zを含み、それぞ
れの記憶場所520A〜520Zが、セマフォー・メモ
リ504中に記憶されたセマフォーの一つに関連するデ
ータを保持するようになっている。記憶場所520A〜
520Zの中のデータは、セマフォーのアドレス、セマ
フォーに対応する共用リソースがロックされているかど
うか(すなわち、共用リソースが別のバス・マスタによ
って所有されているかどうか)、そして現在そのリソー
スを所有するバス・マスタ406A〜406Dの識別
(ID)を含むことができる。
々の方法を用いて記憶場所520A〜520Zの中のI
Dおよびロック情報をコード化することができる。図8
を参照すると、ロックおよびID情報をコード化する第
一の方法は、一つのロック・ビットと、共用リソースに
アクセスする必要がある各装置を固有のIDによって2
進化するのに十分な数Mのビットとを使用する。例え
ば、システム中に8個の装置があるならば、IDフィー
ルド中に3ビットが必要になり、8個の2進組み合わせ
それぞれが装置の1個に対応する。このタイプのスキー
マを用いると、スピン・バッファ場所に対応する共用リ
ソースが別の装置によって所有されているならばLOC
Kビットがセットされ、IDフィールド中の2進コード
が、どの装置が共用リソースを所有するかを示す。
ン・ホット」コード化として知られている。このスキー
マでは、異なる装置ごとに別個のロック・ビットが提供
され、対応する装置が共用リソースを所有するならば、
ロック・ビットの一つがセットされる。図10を参照す
ると、さらに別のスキーマは、一つのロック・ビットを
有し、別個のIDビットが、共用リソースを共用しなけ
ればならない各装置に対応している。図8〜10に示
す、図5のロックおよびID情報をコード化する方法
は、ロックおよびID情報を表すための多くの他のスキ
ーマを本発明の範囲内で具現化しうることを認識したう
えで、適当なスキーマの例として示される。
えばバス・マスタ406Aが共用リソースにアクセスし
なければならないとき(ステップ102)、その装置
は、所有権に関して読み出しを開始する(ステップ20
2)。スピン・バッファ502が所有権に関しての読み
出しを検出すると、スピン・バッファは、共用リソース
のセマフォーに対応する情報がすでにスピン・バッファ
502中にあるかどうかを調べる。スピン・バッファ5
02がそのデータを含むかどうかを判断する一つの方法
は、記憶場所520のアドレス・フィールドを見る方法
である。セマフォーのアドレスがスピン・バッファ50
2中に見いだされ、別の装置が対応する共用リソースを
所有していないならば、スピン・バッファ502は、そ
のセマフォーに対する他の装置によるすべてのアクセス
をロックアウトし(ステップ204)、記憶場所520
のロック・ビット/IDフィールドに書き込みを行って
(ステップ210)、要求側の装置が現在そのアドレス
のセマフォーに対応するリソースを所有していることを
示す。セマフォーのアドレスがスピン・バッファ502
中に見いだされるが、別の装置によって所有されている
ならば、要求側の装置はスピンし、後で再び共用リソー
スのアクセスの取得を試みなければならない。
ポート530を介してスピン・バッファ502にアクセ
スする多数のバス・マスタ406A〜Dを示すが、図6
の実施態様は、複式ポート構成を示す。この第二の実施
態様によると、バス・マスタ406A〜Dが一つのポー
ト530を介してスピン・バッファ502にアクセスす
る一方、PCI装置406Eおよび406FがPCIバ
ス550を介して第二のポート540からスピン・バッ
ファ502にアクセスする。スピン・バッファ502
は、前記と同じ基本的機能を実行するが、それに加え
て、2個のポート530および540のそれぞれにおけ
るアクセスどうしを判別しなければならない。スピン・
バッファ520は、個々のバス・マスタ(例えば406
A〜406D)どうしを区別する融通性を有するか、あ
るいはまた、単に、装置が接続されているポートに基づ
いて判別を行うものでもよいことに注意する必要があ
る。例えば図6の回路では、スピン・バッファ502
は、ポート530上の装置406A〜406Dごとに別
個のIDを有するが、ポート540については一つのI
Dしか有していない。したがって、装置406Eまたは
406Fのいずれかが共有リソースの所有権を有するな
らば、IDフィールドに反映されるIDは、ポート54
0に結合された異なる装置どうしを区別することなく、
ポート540上の一つの装置が所有権を有するというこ
とだけを反映する。このように、バス・マスタ406A
〜406Dが専用のIDを有する一方、バス・マスタ4
06Eと406Fとは一つのIDを共用している。図6
に示す実施態様は、スピン・バッファ502が個々の装
置もしくはポートまたは二つの組み合わせの間で判別を
行うことができることを示す。
のパーソナル・コンピュータ構成に特に応用できる。本
発明のコンピュータ・システムでは、1個以上のマイク
ロプロセッサ406がローカル・バス704に結合さ
れ、このローカル・バスは、アドレス、データおよび制
御の各ライン(例えば図6のバス510、512および
514)を含むものである。第二レベル(L2)キャッ
シュ702がローカル・バス704に結合され、このロ
ーカル・バスが逆に多重ポート・バス制御装置710に
結合されている。スピン・バッファ502が多重ポート
・バス制御装置710中に含まれ、この多重ポート・バ
ス制御装置710上のポート530および540がスピ
ン・バッファ502上のポート530および540に対
応する。図5および6のセマフォー・メモリ504は、
多重ポート・バス制御装置710中の別個のメモリ(図
示せず)であってもよいし、システム・メモリ706の
一部であってもよい。拡張バス周辺装置708が図6の
PCI装置406Eおよび406Fに相当し、ポート5
40に結合された拡張バス712(例えばPCIバス5
50)を介して多重ポート・バス制御装置710に結合
されている。図7に示す具体的な実施態様では、多重ポ
ートバス制御装置710中のスピン・バッファ502
が、ローカル・バス704に結合された個々のマイクロ
プロセッサ406の間で、また、拡張バス712を介し
てポート540に結合された拡張バス周辺装置708の
間で判別を行う。このように、図7のスピン・バッファ
502は、異なるセマフォーに対する並行アクセスを許
しながらも、共用リソース(例えばシステム・メモリ7
06)のデータ完全性を達成し、それにより、システム
性能を高める。
バッファ502は、少なくとも二つの重要な方法でシス
テム性能を高める。まず、装置があるセマフォーにアク
セスしているとき、スピン・バッファ502は、上述し
たように、他のセマフォーに対する並行アクセスを許
す。スピン・バッファ502の第二の重要な利点は、セ
マフォー・ロック情報の効果的なキャッシュ化である。
図2に示すように、セマフォー・データをセマフォー・
メモリから読み出す(ステップ212)前にロック・ビ
ットがセットされる(ステップ210)。その後の、セ
マフォーに対する異なる装置によるアクセスは、スピン
・バッファ502中でセマフォーのアドレスを見いだ
し、ロックおよびIDフィールドから、共用リソースが
別の装置によって所有されているかどうかを判断する。
共用リソースがそのとき別の装置によって所有されてい
るならば、要求側の装置は、セマフォー・メモリ504
からセマフォーを実際に読み出すことなく、スピン・バ
ッファ中に記憶されたデータに基づいて、スピンしなけ
ればならないことを知る。スピン・バッファ502を使
用することにより、これらの利点がいずれもシステム性
能の向上に貢献する。
本発明を具体的に示し、説明したが、当業者であれば、
本発明の真髄および範囲を逸することなく、その形態お
よび詳細に種々の変更を加えうることを理解するであろ
う。さらに、各種の導体もしくは接続は単線として図示
しているが、限定的な意味においてそのように示されて
いるのではなく、当該技術に周知であるように、複数の
導体もしくは接続を含むものでもよいことが理解されよ
う。
の事項を開示する。 (1)コンピュータ・システムにおいて複数の装置によ
って共用されるリソースのデータ完全性を維持するため
の、前記共用リソースに対応する複数のセマフォーを含
むセマフォー・メモリに結合されたスピン・バッファで
あって、前記セマフォー・メモリ中に記憶された複数の
セマフォーの少なくとも一つからのデータを表すための
メモリと、前記複数のセマフォーの選択された一つに対
するアクセスの間に他のセマフォーに対するアクセスを
選択的に許すための手段と、を含むことを特徴とするス
ピン・バッファ。 (2)アクセスを選択的に許すための前記手段がロック
および識別手段を含み、前記ロックおよび識別手段が、
対応する共用リソースが前記複数の装置の一つによって
所有されているかどうかを示す上記(1)記載のスピン
・バッファ。 (3)前記ロックおよび識別手段が複数のフィールドを
含み、前記複数のフィールドのそれぞれにおける情報
が、前記複数の装置のいずれかが、前記ロックおよび識
別手段に対応するセマフォーに対応する共用リソースの
所有権を有しているかどうかを示す上記(2)記載のス
ピン・バッファ。 (4)前記ロックおよび識別手段を前記複数のセマフォ
ーの対応する一つに関連づけるためのアドレス・フィー
ルドをさらに含む上記(2)記載のスピン・バッファ。 (5)他のセマフォーに対するアクセスを選択的に許す
ための前記手段が、前記一つのセマフォーに対応する共
用リソースが前記複数の装置の第二のものによって所有
されているとき、前記複数の装置の第一のものによる前
記複数のセマフォーの前記一つに対するアクセスを封じ
るための手段を含む上記(1)記載のスピン・バッフ
ァ。 (6)コンピュータ・システムにおいて複数の装置によ
って共用されるリソースのデータ完全性を維持するため
の、前記共用リソースの一つにそれぞれが対応する複数
のセマフォーを含むセマフォー・メモリに結合されたス
ピン・バッファであって、前記セマフォー・メモリ中に
記憶された前記複数のセマフォーの少なくとも一つから
のデータを表すための、前記複数のセマフォーの一つに
それぞれが対応する複数の記憶場所を含み、前記記憶場
所のそれぞれが、前記記憶場所が前記複数のセマフォー
のどれに対応するのかを識別するためのアドレス・フィ
ールドと、前記記憶場所に対応する前記セマフォーに対
応する共用リソースが前記複数の装置の一つによって所
有されているかどうかを識別するためのロックおよび識
別フィールドと、前記ロックおよび識別フィールドに含
まれる情報にしたがって、前記記憶場所に対応する前記
セマフォーに対する、対応する共用リソースを所有しな
い装置によるアクセスをロックアウトするための手段
と、前記複数の記憶場所の前記ロックおよび識別フィー
ルドに含まれる情報にしたがって、ロックされていない
セマフォーに対するアクセスを選択的に許すための手段
と、を含むことを特徴とするスピン・バッファ。 (7)コンピュータ・システムにおいて複数の装置によ
って共用されるリソースのデータ完全性を維持する方法
であって、複数のセマフォーを含むセマフォー・メモリ
を設けるステップと、前記複数のセマフォーの一つにそ
れぞれが対応し、ロックおよび識別データをそれぞれが
含む複数の記憶場所を有するスピン・バッファを設ける
ステップと、前記ロックおよび識別データが、前記装置
の一つが前記セマフォーに対応する共用リソースの所有
権を有することを示すならば、前記一つの装置による前
記記憶場所の一つに対応する前記セマフォーに対するア
クセスを許すステップと、前記ロックおよび識別データ
が、要求側の装置が前記共用リソースを所有せず、前記
複数の装置の別のものが前記共用リソースを所有するこ
とを示すならば、前記要求側の装置による前記一つの記
憶場所に対応する前記セマフォーに対するアクセスを封
じるステップと、を含むことを特徴とする方法。 (8)前記複数の装置の一つによって必要とされる共用
リソースを識別するステップと、前記複数のセマフォー
のうち、前記共用リソースに対応する選択された一つを
識別するステップと、前記スピン・バッファ内の前記記
憶場所のいずれかが前記選択されたセマフォーに対応す
るかどうかを判断するステップと、前記スピン・バッフ
ァ内の前記記憶場所の一つが前記選択されたセマフォー
に対応するならば、前記ロックおよび識別データに基づ
いて、前記装置のどれが前記共用リソースを所有するの
かを判断するステップと、前記スピン・バッファ内の前
記記憶場所のいずれも前記選択されたセマフォーに対応
しないならば、前記セマフォーのアドレスを、割り当て
られた記憶場所中のアドレス・フィールドに書き込み、
前記ロックおよび識別データを、前記割り当てられた記
憶場所中の対応するロックおよび識別フィールドに書き
込むことにより、前記記憶場所の一つを、前記選択され
たセマフォーに対応する前記セマフォーに割り当てるス
テップと、をさらに含む上記(7)記載の方法。
全性を保証する従来技術の方法を示す流れ図である。
する方法を示す流れ図である。
を示す流れ図である。
ある。
である。
である。
である。
ード化する第一の方法を示す略図である。
ード化する第二の方法を示す略図である。
コード化する第三の方法を示す略図である。
Claims (8)
- 【請求項1】コンピュータ・システムにおいて複数の装
置によって共用されるリソースのデータ完全性を維持す
るための、前記共用リソースに対応する複数のセマフォ
ーを含むセマフォー・メモリに結合されたスピン・バッ
ファであって、 前記セマフォー・メモリ中に記憶された複数のセマフォ
ーの少なくとも一つからのデータを表すためのメモリ
と、 前記複数のセマフォーの選択された一つに対するアクセ
スの間に他のセマフォーに対するアクセスを選択的に許
すための手段と、を含むことを特徴とするスピン・バッ
ファ。 - 【請求項2】アクセスを選択的に許すための前記手段が
ロックおよび識別手段を含み、前記ロックおよび識別手
段が、対応する共用リソースが前記複数の装置の一つに
よって所有されているかどうかを示す請求項1記載のス
ピン・バッファ。 - 【請求項3】前記ロックおよび識別手段が複数のフィー
ルドを含み、前記複数のフィールドのそれぞれにおける
情報が、前記複数の装置のいずれかが、前記ロックおよ
び識別手段に対応するセマフォーに対応する共用リソー
スの所有権を有しているかどうかを示す請求項2記載の
スピン・バッファ。 - 【請求項4】前記ロックおよび識別手段を前記複数のセ
マフォーの対応する一つに関連づけるためのアドレス・
フィールドをさらに含む請求項2記載のスピン・バッフ
ァ。 - 【請求項5】他のセマフォーに対するアクセスを選択的
に許すための前記手段が、前記一つのセマフォーに対応
する共用リソースが前記複数の装置の第二のものによっ
て所有されているとき、前記複数の装置の第一のものに
よる前記複数のセマフォーの前記一つに対するアクセス
を封じるための手段を含む請求項1記載のスピン・バッ
ファ。 - 【請求項6】コンピュータ・システムにおいて複数の装
置によって共用されるリソースのデータ完全性を維持す
るための、前記共用リソースの一つにそれぞれが対応す
る複数のセマフォーを含むセマフォー・メモリに結合さ
れたスピン・バッファであって、 前記セマフォー・メモリ中に記憶された前記複数のセマ
フォーの少なくとも一つからのデータを表すための、前
記複数のセマフォーの一つにそれぞれが対応する複数の
記憶場所を含み、 前記記憶場所のそれぞれが、 前記記憶場所が前記複数のセマフォーのどれに対応する
のかを識別するためのアドレス・フィールドと、 前記記憶場所に対応する前記セマフォーに対応する共用
リソースが前記複数の装置の一つによって所有されてい
るかどうかを識別するためのロックおよび識別フィール
ドと、 前記ロックおよび識別フィールドに含まれる情報にした
がって、前記記憶場所に対応する前記セマフォーに対す
る、対応する共用リソースを所有しない装置によるアク
セスをロックアウトするための手段と、 前記複数の記憶場所の前記ロックおよび識別フィールド
に含まれる情報にしたがって、ロックされていないセマ
フォーに対するアクセスを選択的に許すための手段と、
を含むことを特徴とするスピン・バッファ。 - 【請求項7】コンピュータ・システムにおいて複数の装
置によって共用されるリソースのデータ完全性を維持す
る方法であって、 複数のセマフォーを含むセマフォー・メモリを設けるス
テップと、 前記複数のセマフォーの一つにそれぞれが対応し、ロッ
クおよび識別データをそれぞれが含む複数の記憶場所を
有するスピン・バッファを設けるステップと、 前記ロックおよび識別データが、前記装置の一つが前記
セマフォーに対応する共用リソースの所有権を有するこ
とを示すならば、前記一つの装置による前記記憶場所の
一つに対応する前記セマフォーに対するアクセスを許す
ステップと、 前記ロックおよび識別データが、要求側の装置が前記共
用リソースを所有せず、前記複数の装置の別のものが前
記共用リソースを所有することを示すならば、前記要求
側の装置による前記一つの記憶場所に対応する前記セマ
フォーに対するアクセスを封じるステップと、を含むこ
とを特徴とする方法。 - 【請求項8】前記複数の装置の一つによって必要とされ
る共用リソースを識別するステップと、 前記複数のセマフォーのうち、前記共用リソースに対応
する選択された一つを識別するステップと、 前記スピン・バッファ内の前記記憶場所のいずれかが前
記選択されたセマフォーに対応するかどうかを判断する
ステップと、 前記スピン・バッファ内の前記記憶場所の一つが前記選
択されたセマフォーに対応するならば、前記ロックおよ
び識別データに基づいて、前記装置のどれが前記共用リ
ソースを所有するのかを判断するステップと、 前記スピン・バッファ内の前記記憶場所のいずれも前記
選択されたセマフォーに対応しないならば、前記セマフ
ォーのアドレスを、割り当てられた記憶場所中のアドレ
ス・フィールドに書き込み、前記ロックおよび識別デー
タを、前記割り当てられた記憶場所中の対応するロック
および識別フィールドに書き込むことにより、前記記憶
場所の一つを、前記選択されたセマフォーに対応する前
記セマフォーに割り当てるステップと、をさらに含む請
求項7記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/591290 | 1996-01-25 | ||
| US08/591,290 US5872980A (en) | 1996-01-25 | 1996-01-25 | Semaphore access control buffer and method for accelerated semaphore operations |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09231123A true JPH09231123A (ja) | 1997-09-05 |
| JP3634932B2 JP3634932B2 (ja) | 2005-03-30 |
Family
ID=24365885
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP00422397A Expired - Fee Related JP3634932B2 (ja) | 1996-01-25 | 1997-01-14 | データ完全性を維持するためのスピン・バッファおよび方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5872980A (ja) |
| JP (1) | JP3634932B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7143414B2 (en) | 2001-09-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for locking multiple semaphores |
| US7454753B2 (en) | 2001-06-27 | 2008-11-18 | International Business Machines Corporation | Semaphore management subsystem for use with multi-thread processor systems |
| US20120089760A1 (en) * | 2006-03-29 | 2012-04-12 | Bratin Saha | Increasing Functionality Of A Reader-Writer Lock |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5968157A (en) | 1997-01-23 | 1999-10-19 | Sun Microsystems, Inc. | Locking of computer resources |
| US6175899B1 (en) * | 1997-05-19 | 2001-01-16 | International Business Machines Corporation | Method for providing virtual atomicity in multi processor environment having access to multilevel caches |
| US6078982A (en) * | 1998-03-24 | 2000-06-20 | Hewlett-Packard Company | Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system |
| US6131094A (en) * | 1998-04-24 | 2000-10-10 | Unisys Corp. | Method for performing asynchronous writes to database logs using multiple insertion points |
| US6122713A (en) * | 1998-06-01 | 2000-09-19 | National Instruments Corporation | Dual port shared memory system including semaphores for high priority and low priority requestors |
| US6230230B1 (en) * | 1998-12-03 | 2001-05-08 | Sun Microsystems, Inc. | Elimination of traps and atomics in thread synchronization |
| US6453375B1 (en) * | 1999-03-23 | 2002-09-17 | Intel Corporation | Method and apparatus for obtaining coherent accesses with posted writes from multiple software drivers |
| EP1199632A1 (en) * | 2000-10-20 | 2002-04-24 | Sun Microsystems, Inc. | Method and apparatus for resource access synchronization |
| US7124224B2 (en) * | 2000-12-22 | 2006-10-17 | Intel Corporation | Method and apparatus for shared resource management in a multiprocessing system |
| US7353515B1 (en) | 2001-02-04 | 2008-04-01 | Cisco Technology, Inc. | Method and apparatus for dynamic allocation and management of semaphores for accessing shared resources |
| US20040260890A1 (en) * | 2001-11-13 | 2004-12-23 | Jan Hoogerbrugge | P-and v-semaphore operation |
| CN1585924B (zh) * | 2001-11-13 | 2010-05-26 | Nxp股份有限公司 | 使用信号量进行fifo通信的方法和设备及计算机系统 |
| US7036125B2 (en) * | 2002-08-13 | 2006-04-25 | International Business Machines Corporation | Eliminating memory corruption when performing tree functions on multiple threads |
| US6973539B2 (en) * | 2003-04-30 | 2005-12-06 | Bull Hn Information Systems Inc. | Multiprocessor write-into-cache system incorporating efficient access to a plurality of gatewords |
| US20050080961A1 (en) * | 2003-10-09 | 2005-04-14 | Bedwell Ryan D. | Communication steering for use in a multi-master shared resource system |
| US7594053B2 (en) * | 2003-12-12 | 2009-09-22 | Alcatel-Lucent Usa Inc. | Adaptive object level locking |
| US7174406B1 (en) * | 2003-12-16 | 2007-02-06 | Emc Corporation | System and method for arbitrating access to a shared resource |
| US20050251804A1 (en) * | 2004-05-04 | 2005-11-10 | International Business Machines Corporation | Method, data processing system, and computer program product for detecting shared resource usage violations |
| US7305510B2 (en) * | 2004-06-25 | 2007-12-04 | Via Technologies, Inc. | Multiple master buses and slave buses transmitting simultaneously |
| JP2007179190A (ja) * | 2005-12-27 | 2007-07-12 | Mitsubishi Electric Corp | セマフォ管理方法、およびセマフォ管理プログラム |
| KR20090008519A (ko) * | 2007-07-18 | 2009-01-22 | 삼성전자주식회사 | 공유 레지스터를 갖는 멀티패쓰 억세스블 반도체 메모리장치 및 그에 따른 공유 레지스터 운영방법 |
| US8065491B2 (en) * | 2007-12-30 | 2011-11-22 | Intel Corporation | Efficient non-transactional write barriers for strong atomicity |
| CN101697136B (zh) * | 2009-10-27 | 2013-01-16 | 金蝶软件(中国)有限公司 | 一种资源控制方法和装置 |
| US9088569B2 (en) * | 2011-05-12 | 2015-07-21 | International Business Machines Corporation | Managing access to a shared resource using client access credentials |
| US9558121B2 (en) * | 2012-12-28 | 2017-01-31 | Intel Corporation | Two-level cache locking mechanism |
| EP3022657A4 (en) * | 2013-07-15 | 2017-03-15 | Intel Corporation | Techniques for controlling use of locks |
| KR102285749B1 (ko) | 2014-11-10 | 2021-08-05 | 삼성전자주식회사 | 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법 |
| CN105912479B (zh) * | 2016-04-07 | 2023-05-05 | 合肥锐世数字科技有限公司 | 一种并发数据的缓存方法及装置 |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4393459A (en) * | 1980-07-17 | 1983-07-12 | International Business Machines Corp. | Status reporting with ancillary data |
| US4589092A (en) * | 1983-12-12 | 1986-05-13 | International Business Machines Corporation | Data buffer having separate lock bit storage array |
| US4725946A (en) * | 1985-06-27 | 1988-02-16 | Honeywell Information Systems Inc. | P and V instructions for semaphore architecture in a multiprogramming/multiprocessing environment |
| US5115499A (en) * | 1986-05-14 | 1992-05-19 | Sequoia Systems, Inc. | Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code |
| 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 |
| US4977498A (en) * | 1988-04-01 | 1990-12-11 | Digital Equipment Corporation | Data processing system having a data memory interlock coherency scheme |
| US5050072A (en) * | 1988-06-17 | 1991-09-17 | Modular Computer Systems, Inc. | Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system |
| US4965718A (en) * | 1988-09-29 | 1990-10-23 | International Business Machines Corporation | Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data |
| US4928222A (en) * | 1988-10-31 | 1990-05-22 | International Business Machines Corporation | Enhanced semaphore architecture |
| US5175837A (en) * | 1989-02-03 | 1992-12-29 | Digital Equipment Corporation | Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits |
| US5081702A (en) * | 1989-03-09 | 1992-01-14 | Allied-Signal Inc. | Method and apparatus for processing more than one high speed signal through a single high speed input terminal of a microcontroller |
| US5263161A (en) * | 1989-07-26 | 1993-11-16 | Massachusetts Institute Of Technology | Non-busy waiting resource control |
| US5276847A (en) * | 1990-02-14 | 1994-01-04 | Intel Corporation | Method for locking and unlocking a computer address |
| US5249286A (en) * | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
| AU633724B2 (en) * | 1990-06-29 | 1993-02-04 | Digital Equipment Corporation | Interlock queueing |
| US5276886A (en) * | 1990-10-11 | 1994-01-04 | Chips And Technologies, Inc. | Hardware semaphores in a multi-processor environment |
| US5293491A (en) * | 1990-12-28 | 1994-03-08 | International Business Machines Corp. | Data processing system and memory controller for lock semaphore operations |
| EP0543560B1 (en) * | 1991-11-19 | 1999-12-22 | Sun Microsystems, Inc. | Arbitrating multiprocessor accesses to shared resources |
| US5261106A (en) * | 1991-12-13 | 1993-11-09 | S-Mos Systems, Inc. | Semaphore bypass |
| EP0555680B1 (en) * | 1992-02-14 | 1999-10-13 | Motorola, Inc. | A method and apparatus for determining instruction execution ordering in a data processing system |
| 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 |
| US5440746A (en) * | 1992-11-06 | 1995-08-08 | Seiko Epson Corporation | System and method for synchronizing processors in a parallel processing environment |
| US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
| US5574922A (en) * | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
| US5615167A (en) * | 1995-09-08 | 1997-03-25 | Digital Equipment Corporation | Method for increasing system bandwidth through an on-chip address lock register |
| US5721871A (en) * | 1996-02-09 | 1998-02-24 | Motorola, Inc. | Memory system ensuring coherency for memory buffers in a data communication system |
-
1996
- 1996-01-25 US US08/591,290 patent/US5872980A/en not_active Expired - Fee Related
-
1997
- 1997-01-14 JP JP00422397A patent/JP3634932B2/ja not_active Expired - Fee Related
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7454753B2 (en) | 2001-06-27 | 2008-11-18 | International Business Machines Corporation | Semaphore management subsystem for use with multi-thread processor systems |
| US7143414B2 (en) | 2001-09-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for locking multiple semaphores |
| US20120089760A1 (en) * | 2006-03-29 | 2012-04-12 | Bratin Saha | Increasing Functionality Of A Reader-Writer Lock |
| US8407386B2 (en) * | 2006-03-29 | 2013-03-26 | Intel Corporation | Increasing functionality of a reader-writer lock |
| US8775708B2 (en) | 2006-03-29 | 2014-07-08 | Intel Corporation | Increasing functionality of a reader-writer lock |
Also Published As
| Publication number | Publication date |
|---|---|
| US5872980A (en) | 1999-02-16 |
| JP3634932B2 (ja) | 2005-03-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3634932B2 (ja) | データ完全性を維持するためのスピン・バッファおよび方法 | |
| US5490253A (en) | Multiprocessor system using odd/even data buses with a timeshared address bus | |
| US6052763A (en) | Multiprocessor system memory unit with split bus and method for controlling access to the memory unit | |
| US4574350A (en) | Shared resource locking apparatus | |
| EP0381325B1 (en) | Synchronising and processing of memory access operations | |
| JP5558982B2 (ja) | アトミックなセマフォ操作を行う方法および装置 | |
| JPS60246460A (ja) | デジタルコンピユ−タ−システムで交信路の制御を割当てる調停機構 | |
| FI86923B (fi) | Styrmekanism foer multiprocessorsystem. | |
| US6446149B1 (en) | Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system | |
| JPH0246974B2 (ja) | ||
| EP0512685B1 (en) | Quadrature bus protocol for carrying out transactions in a computer system | |
| US6279066B1 (en) | System for negotiating access to a shared resource by arbitration logic in a shared resource negotiator | |
| US6928525B1 (en) | Per cache line semaphore for cache access arbitration | |
| US6189061B1 (en) | Multi-master bus system performing atomic transactions and method of operating same | |
| US4924379A (en) | Multiprocessor system with several processors equipped with cache memories and with a common memory | |
| JP3965784B2 (ja) | 共有メモリ排他アクセス制御方法 | |
| JP2004062910A (ja) | マルチコアプロセッサにセマフォを具現化し、共通資源へのアクセスを制御する方法 | |
| US7627869B2 (en) | Hardware register access via task tag ID | |
| JPS6153747B2 (ja) | ||
| JPH05225117A (ja) | 主記憶装置の排他制御回路 | |
| JPH07134689A (ja) | バスアービトレーション装置 | |
| JP2008511890A (ja) | アトミック・オペレーションを用いて情報単位を変更する方法及び装置 | |
| JPH086905A (ja) | マルチポートramのアクセス調停回路 | |
| JPS62119661A (ja) | 共有メモリに対するアクセス管理方式 | |
| CN119149177A (zh) | 一种多线程并发管理方法和相关装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040412 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041126 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20041221 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041227 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080107 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090107 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120107 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |