JP3700787B2 - セマフォ・バイパス法 - Google Patents

セマフォ・バイパス法 Download PDF

Info

Publication number
JP3700787B2
JP3700787B2 JP2004010080A JP2004010080A JP3700787B2 JP 3700787 B2 JP3700787 B2 JP 3700787B2 JP 2004010080 A JP2004010080 A JP 2004010080A JP 2004010080 A JP2004010080 A JP 2004010080A JP 3700787 B2 JP3700787 B2 JP 3700787B2
Authority
JP
Japan
Prior art keywords
semaphore
storage
address
comparison device
memory
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 - Lifetime
Application number
JP2004010080A
Other languages
English (en)
Other versions
JP2004227581A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JP2004227581A publication Critical patent/JP2004227581A/ja
Application granted granted Critical
Publication of JP3700787B2 publication Critical patent/JP3700787B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F9/00Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements
    • G09F9/46Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements in which the desired character is selected from a number of characters arranged one behind the other
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

本発明は多重処理を同期させるためにセマフォを活用するシステム並びに方法に関し、より具体的には、メモリ帯域幅の無駄を減少するセマフォ(シグナル)・バイパス・メカニズムを提供するシステム並びに方法に関する。
メモリ共用型マルチプロセッサの主要要件の1つは、共通するタスクを行なっているプロセスを調整する能力である。代表的な例をあげると、プログラマは処理を同期させるためにセマフォを使う。このように、セマフォはデバイスや記憶場所など資源への非同期アクセスを防ぐために幅広く使われている。一般的なセマフォ・インプリメンテーションの一つがテスト・アンド・セットのメカニズムによるものである(例えば、非特許文献1、特許文献1参照)。そうしたメカニズムにおいて、セマフォは、メモリやその他のアドレス指定可能な資源の特定領域へのアクセスを制御するためにアドレス指定可能な記憶場所に格納されているフラグもしくはラベルである。
一つのプロセスが、あるセマフォに対応するメモリのある領域、例えばメモリ領域xyz、にアクセスしようとすれば、他のプロセスがその領域にアクセスしないように、そのプロセスはその特定のメモリ領域に対応したセマフォに全て「1」を書き込む。別のプロセスがメモリ領域xyzにアクセスしようとすれば、先ずセマフォを調べ、セマフォが全て「1」になっていれば、そのプロセスはアクセスを拒否されたことを知る。
「Computer Architecture a Quantitative Approach」 (Hennessy 他著、Morgan Kaufman出版、1990年)第8章 米国特許第5,050,072号明細書
従来の技術では、2番目のプロセスはメモリ領域xyzが使用されていないかを確認するために、絶えずメモリに行き、セマフォをチェックする。このようにセマフォを終始チェックすることは「スピン・ロッキング」と呼ばれるが、これは莫大な量のメモリ帯域幅を無駄にすることになる。それはなぜならば、セマフォが長時間アクセス不能になる場合もあるかもしれないし、またセマフォのアクセスは各々が記憶処理を意味するからである。
共通バス競合を減ずるためのシステム(例えば、特許文献1参照)では、セマフォのテスト・ビット・オペレーション及びセット・オペレーションが各CPUのローカルバス上で行なえるようになる。セマフォのロックビットと同一のコピーが各CPU上のSRAM内にローカルに格納される。SRAMの記憶空間には限りがあり、結果として、そのSRAMのメモリはセマフォでいっぱいになり、このメカニズムもスピン・ロッキングは避けられない。さらに、このシステムではセマフォをキャッシュする。セマフォのキャッシングは費用がかかる上、困難であり、システムの性能を低下させる。とりわけ、このシステムで使用されているSRAMは全ての他のCPUのSRAMと同じセマフォ・ロックビットを格納するので、空間の無駄使いが多い。
前文に鑑み、本発明は、従来の「スピン・ロッキング」の問題によるメモリ帯域幅使用を低減しつつ(即ち、より大きな有効メモリ帯域幅を提供)、且つセマフォへのアクセスを可能にするテスト・アンド・セットのバイパス・メカニズム並びに方法を提供する。概して言えば、要求に応じてセマフォのアドレスを格納するためにコンテント・アドレサブル・メモリ(CAM)のようなCPU内の記憶比較構造が使われる。
セマフォ・アドレスは記憶比較装置120に格納されているから、そのセマフォをキャシュする必要はない。むしろ、一番新しくフェイルしたセマフォ・アドレスだけが記憶比較構造に格納される。従って、そのCPUや多重プロセッサ・システム内のその他のCPUのプロセスは該当するセマフォ・アドレスがそれぞれの記憶比較構造に存在しているか否かをチェックするだけでよい。従って、セマフォにアクセスするための記憶処理を行なう必要がなく、それゆえ、有効メモリ帯域幅が相当に増える。
プロセス/プロセッサがセマフォを囲むメモリの小領域に書き込みを実行すると、記憶比較構造内の記入項目はクリアされる。CPUは自身も含めCPUのいずれかが関連するセマフォに書き込みをしているかを確かめるために共用メモリバスをチェックする(スヌープする)。CPUのいずれかが記憶比較装置の記入項目に適合するセマフォに書き込めば、その記憶比較装置の記入項目はクリアされる。
例えば、ロックされた資源のオーナ(即ち、メモリ領域もしくは周辺装置)がメモリ内のセマフォをクリアすると、記憶比較構造内のセマフォ・アドレスもクリアされる。それにより、その資源への他のプロセッサ/プロセスのアクセスが可能になる。
図1において、本発明のテスト・アンド・セットのバイパス回路100には基本メモリ要求装置110(キャッシュなど)、記憶比較装置120、さらに制御ブロック130が組み込まれている。バス105はテスト・アンド・セットのバイパス回路100を記憶装置に配線接続している。バス105は、例えば、別のCPU上の他のテスト・アンド・セットのバイパス・データパスとも接続されていることもある。
記憶比較装置120は代表的なコンテント・アドレサブル・メモリ(CAM)である。有効ビットは記憶比較装置120内の各々の記憶場所と対応付けられている。これは、(例えば、パワーアップ中に)記憶比較装置120にランダムに現われるかもしれないセマフォ・アドレスが既にロックされているセマフォ・アドレスと誤解されることにならないように保証する。従って、有効ビットがセットされれば、その有効ビットに対応しているセマフォ・アドレスはロックされていることになる。記憶比較装置120内の記入項目数は本発明を活用するシステムにおける特定のアーキテクチャ上の制約によって決定する。
後述するように、テスト・アンド・セットのバイパス回路100はセマフォでのスピン・ロッキングのために浪費されてしまうメモリ帯域幅の量を低減する。図2において、セマフォ・メカニズムによって保護された記憶場所にアクセスする本発明による方法を記載する。ブロック210に示すように、CPU(要求装置)、とりわけプロセッサ内のプロセスは、テスト・アンド・セット命令(即ち、セマフォへのアクセス要求に対応する事前決定の命令)を発することにより、セマフォが対応している資源へのアクセスを先ず要求する。ブロック212に示すように、初めに、当該セマフォが既にロックされているかどうかを確認するために記憶比較装置120がチェックされる。記憶比較装置120にそのセマフォが存在していなければ、ブロック220が記憶比較装置120にそのセマフォのアドレスを格納する。次に、ブロック245はセマフォをチェックし、別のプロセス/プロセッサにより既にロックされているかどうか確認するために記憶処理を実行する。
ブロック245並びに260に示すように、要求装置110が記憶場所へのアクセスを許可される(即ち、記憶比較装置120によって、その記憶場所に関わるセマフォがロックされていることが示されていない)と、当該要求装置はセマフォをロックし記憶比較装置120にそのセマフォ・アドレスを格納する。複数のテスト・アンド・セット命令が結果として記憶比較装置120に複数の記入項目を格納してしまうことがある。セマフォをチェックした後で、もしそのセマフォがロックされて(即ち、セマフォの全ビットが「1」であれば($FFFFs))いれば、そのとき全ての「1」は要求装置に返送されアクセスが拒否されたことを示す。さらに、セマフォのアドレスは記憶比較装置120に格納される。
別のプロセス/プロセッサがセマフォへのアクセスを要求すると、ブロック212に示すように、そのプロセス/プロセッサはそれに対応している記憶比較装置120をチェックする。要求されているセマフォ・アドレスが記憶比較装置120に存在していれば、そのプロセス/プロセッサはそのセマフォをロックしたプロセス/プロセッサによってセマフォは未だ解放されていないことを知る。ブロック250に示すように、要求装置110は全て「1」を受信(即ち、セマフォがフェイルしたことを意味する)し、そのセマフォはメモリから要求されない。従って、メモリ帯域幅は不必要に無駄使いされない。その後、そのセマフォのロックが解除されたかどうかを確認するために、要求装置110は定期的にテスト・アンド・セット命令を繰り返して、記憶比較装置120をチェックする。
それに対し、セマフォ・アドレスが記憶比較装置120に存在していなければ、それはそのセマフォがまだ要求されたことがないか、既に解放されているか、あるいは別のセマフォ・アドレスで置き換えられているか、のいずれかということになる。従って、記憶処理が発生し、セマフォ・ロケーションへのアクセスが要求装置110によって試みられる。
具体的に、記憶比較装置120にそのセマフォ・アドレスを格納するための本発明によるシステム並びに方法について以下に記載する。再び図1において、記憶比較装置120は初め空の状態である。要求装置110がセマフォ要求(即ち、メモリの一部を要求)を出すと、制御ブロック130はそのセマフォ・アドレスが既に格納されているかどうかを確かめるために記憶比較装置120を調べる。もしそのセマフォ・アドレスがこの装置に格納されていれば、HIT信号122が生成される。そのHIT信号122は制御ブロック130によって受信され、制御ブロック130はメモリ要求が制御ライン135によりメモリバス105上に送り出されるのを防ぐ。
制御ブロック130は制御信号140も送り出す。制御信号140はマルチプレクサ150に接続されている。制御信号140に従って、マルチプレクサ150はメモリバス105からのデータかもしくは全て「1」が書き込まれたデータのいずれかを選択する。もしHIT信号122が制御ブロック130によって生成されていれば、全て「1」が書き込まれたそのデータは要求装置に送り返される。全て「1」が書き込まれたそのデータは、その時点で別のプロセス/プロセッサが要求装置110によって要求された特定の記憶場所にアクセスしていることを示しており、従って、そのセマフォは既にロックされている。
HIT信号122が記憶比較装置120によって生成されていなければ、制御ブロック130はそのセマフォがインスタント要求者によって以前に要求されていなかったことを知る。制御ブロック130は次に制御ライン137を使って記憶比較装置120にセマフォ・アドレスを書き込む。さらに、制御ブロック130は制御ライン135を使用可能にし、続いて制御ライン135が要求装置110からのメモリ要求をメモリバス105へ送り出すようにする。メモリ要求が完了したら、そのデータは、制御ライン140を介してマルチプレクサ150を適切に制御することによって、その要求装置に戻される。
特定の時間ならいつでもアクセス可能な異なる記憶場所の数が多いことと、メモリ・アクセス要求数も多いことから、記憶比較装置120は多数のセマフォ・アドレスでいっぱいになることがある。最終的に、記憶比較装置120はいっぱいになるだろう。記憶比較装置120に空の記入項目スペースがなくなれば、Least Recently Used(LRU)など現在入手可能な置き換えのアルゴリズムの一つを使って、既に存在している記入項目が置き換えられる。その後、新規記入項目が古い記入項目の上に書き込まれる。従って、バイパス・メカニズム100はその時点でのセマフォ要求によりスピン・ロックを防ぐ。
次に、記憶比較装置120の記入項目をクリアする本発明による方法とシステムについて説明する。セマフォが解放されれば、記憶比較装置120はクリアされなければならない。セマフォを囲む、検出可能な最小メモリブロックのいずれかの部分への書き込みがメモリバス105上のプロセッサのどれかにより実行されると、記憶比較装置120はクリアされる。こうすると、記憶比較装置120は既にクリアされているセマフォ・アドレスを保持しない。さらに、いずれかのプロセッサがセマフォに書き込みをすると、記憶比較装置120へのセマフォの記入項目はクリアされる。
図1に加え図3において、本発明ではメモリバス105を監視し(スヌープする)、記憶処理が発生しているかどうかを確認する。メモリ要求がCPUなど何らかの装置によってメモリバス105上に送信されていれば、本発明によるスヌープ・メカニズムは相当するスヌープ(要求)・アドレスをアドレス・ジェネレータ160中に生成するために検出されたアドレス信号を使用する。
ブロック315に示すように、そのメモリ要求が書き込み要求であるか否かを確認する。ブロック317に示すように、それが書き込み要求であれば、次にテスト・アンド・セット命令に基づく書き込みなのかどうかを確かめるためにその要求がチェックされる。それが、テスト・アンド・セット命令に基づく書き込みであれば、記憶比較装置120の記入項目はクリアされない。そうでなければ、ブロック320に示すように、生成されたスヌープ・メモリ・アドレスは記憶比較装置120の記入項目と比較される。セマフォ・ロケーションへの書き込みはそのセマフォが解放されていることを意味するから、HITがあればその記入項目はブロック325に示すようにクリアされる。
スヌープ・アドレス・ジェネレータ160は典型的にメモリ・アドレス・バス105上に現われるメモリ行及び列アドレスの11ビットからキャッシュ・サブブロック・アドレス(高位ビット)を生成する。スヌープ・アドレス・ジェネレータ160はRAS(Raw Address Selector)、CAS(Column Address Selector)及びWE(Write Enable)の制御信号を有する。アドレス分析はさらに他の制御信号やタイミング情報から得ることができる。
本発明では、他の要求装置からの(書き込み要求以外の)セマフォ要求に対してメモリバス105をスヌープすることはない。言い換えれば、別々のプロセスが情報を共用することはないということである。むしろ、個々の要求装置110はそれ自身の記憶比較装置120の内容のみに関わりをもつ。従って、要求装置110が既に他の要求装置によってロックされているセマフォ・ロケーションへのアクセスを求めると、その記憶比較装置120にセマフォ・アドレスを格納する手続きを進めるだけである。これは無駄な記憶処理のように見えるかもしれないが、このプロセスによって記憶比較装置120内のメモリ空間を大きく節約することになる。システム内の全ての要求装置がロックした全てのセマフォ・アドレスがローカル・メモリに格納されたら、相当に大規模な記憶装置(例えば、実施例にある大規模のCAM120)が必要になる。従って、相当な量のメモリ空間を節約するために、本発明では、本発明によるセマフォ・バイパス・メカニズム100の使用に先立って、記憶処理を1回行うだけでよい。
図3のブロック317との関連において先に簡単に説明したように、メモリ内のセマフォにテスト・アンド・セットのオペレーションを行なうと、本質的に「読み込みー修正変更ー書き込み」が起こる。従って、「読み込みー修正変更ー書き込み」の書き込みの最中にいずれの記憶比較装置120においても該当する記入項目がクリアされることのないよう注意しなければならない。記憶比較装置120がクリアされるのは「真の」書き込み(即ち、格納)の時だけである。従って、記憶比較装置の記入項目をクリアすることのないよう、本発明の実施例ではスヌーピングは使用不能になっている。図1における本発明の実施例においては、共用(SHARE)信号190は、システム100が現在共用メモリを使用しているか否かを表示している。共用信号190はスヌーピング・オペレーションを可能にする(即ち、キャッシュ可干渉性)。共用信号190がオフになっていると、前記の比較機能は全てのプロセッサにおいて使用不能になる。言い換えれば、共用信号190はテスト・アンド・セット命令の書き込みの期間中はスヌープしないようにスヌープ・アドレス・ジェネレータ160に指示する。
本発明は従来のテスト・アンド・セットのメカニズムにその使用が限定されるものではない。計数セマフォにも使用することができる。代表的な例をあげると、計数セマフォはセマフォに特定の値を格納するためのメカニズムを備えることにより実現される。セマフォに異なる値を保存するということはその記憶場所のロック解除をするということである。本発明によるシステム並びに方法は、計数セマフォを活用するシステム並びに方法に新たな制限を課することなく、使用することができる。
メモリバス105はテスト・アンド・セット命令が実行されたことを示すために、全てのスヌープ・アドレス・ジェネレータ160に符号化されたセマフォ・オペレーション信号を送る。
セマフォの大きさはメモリバス上を送信されるかもしくはメモリバス制御から導出される最小の別個のアドレスでなければならない。本発明の好適な実施例におけるセマフォの大きさは1メモリワード以下である。言い換えれば、バス上を送信された最小の別個のメモリ・アドレスがワード境界上に存在していれば、セマフォの大きさがワード境界上に存在する。これが記憶比較装置120内の記入項目を不要にクリアすることがないように保証する。
例えば、要求装置が先ずメモリ・アドレス「$0000 0001」をもつテスト・アンド・セット命令を発信し、さらに初めは記憶比較装置120に何も記入項目がなかったと仮定して、メモリ・アドレス「$0000 0001」は記憶比較装置120に格納される。要求装置100はメモリ・アドレス「$0000 0002」をもつ別のテスト・アンド・セット命令を再び出すと、このアドレスは記憶比較装置120の記入項目と比較されて、HIT信号122を発生しない。
しかしながら、要求装置110がメモリ・アドレス「$0000 0001」をもつ第1番目のセマフォを解放しようと決定し、且つメモリバス105上のメモリ・アドレスの単位が1ワードの大きさであれば、そのメモリバス上に現われるアドレスは「$0000 00xx」である(その場合、xxは無視する)。このメモリ・アドレスの比較が記憶比較装置120内の記入項目と比較されると、メモリ・アドレス「$0000 0001」及び「$0000 0002」は共にHIT信号122を発生してクリアされる。セマフォの大きさが1ワードであるかもしくは1ワード内に単一のセマフォだけが保持されている場合、こうした変則的なことは避けられる。
こうした変則的なことがあっても、機能性という点においては何ら影響はない。このことが具体的に意味するのは、「$0000 0002」が不要にクリアされているから、次回プロセスがセマフォ「$0000 0002」を要求する、そのセマフォに対して不要なメモリ要求が生成されるということである。
本発明について具体的に好適な実施例をあげて示し説明してきたが、本発明の精神並びに適用範囲から逸脱することなく、形式並びに詳細において様々な変更ができることは、当業者の当然とするところであろう。
本発明に基づく好適な実施例を含む可能なデータパス・インプリメンテーションの概略的なブロック図である。 セマフォによって保護された記憶場所にアクセスする本発明の方法を示すフローチャートである。 本発明による記憶比較装置からアドレスをクリアする本発明の方法を示すフローチャートである。
符号の説明
100…バイパス回路、105…メモリバス、120…記憶比較装置、130…制御ブロック、150…マクチプレクサ、160…スヌープ・アドレス・ジェネレータ

Claims (6)

  1. 複数の要求装置による共用資源への非同期アクセスを防ぐコンピュータ・ベースの方法であり、その方法が
    (1)前記共用資源の記憶場所に対応しているセマフォ・アドレスがあるか記憶比較装置をチェックするステップと、
    (2)前記セマフォ・アドレスが前記記憶比較装置内にある場合には、セマフォ・フェイル信号を送るステップと、
    (3)前記セマフォ・アドレスが前記記憶比較装置内に存在していない場合には、前記セマフォの内容をチェックするステップから成り、その結果、
    (a)前記セマフォがロックされている場合には、前記セマフォ・アドレスを前記記憶比較装置に格納し、さらに
    (b)前記セマフォがロックされていない場合には、前記セマフォをロックし、前記セマフォ・アドレスを前記記憶比較装置に格納して、さらに記憶場所にアクセスすることを特徴とする方法。
  2. ステップ(3)(a)がさらに前記セマフォが既にロックされているかどうか判断するために前記記憶比較装置を周期的にチェックするステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記共用資源を複数の要求装置により使用しているか否かを表示する共用信号を、テスト・アンド・セットのメモリ・トランザクション中に要求装置が前記記憶比較装置の記入項目をクリアするのを防ぐために使うことを特徴とする請求項lに記載の方法。
  4. テスト・アンド・セット処理中に個々の要求装置がそれぞれ自主的に前記記憶比較装置をクリアする、のを防ぐことを特徴とする請求項1に記載の方法。
  5. 共用資源にアクセスするための方法であり、その方法が
    (1)要求装置から、セマフォによって保護された前記共用資源にアクセスしようとするテスト・アンド・セット命令を発行するステップと、
    (2)前記セマフォ・アドレスがあるかローカル記憶比較装置をチェックし、且つ当該アドレスが存在している場合には前記要求装置にセマフォ・フェイル信号を戻すステップと、さらに
    (3)前記アドレスが存在していない場合には、
    (i)前記セマフォ・アドレスを前記ローカル記憶比較装置に入れ、
    (ii)前記セマフォを前記共用資源からフェッチし、且つそれを前記要求装置に戻し、さらに
    (iii )前記セマフォをロックするステップ、
    から成ることを特徴とする方法。
  6. テスト・アンド・セット命令に基づく書き込み以外の書き込みで前記共用資源への書き込みが試みられている場合、前記ローカル記憶比較装置がクリアされることを特徴とする請求項5に記載の方法。
JP2004010080A 1991-12-13 2004-01-19 セマフォ・バイパス法 Expired - Lifetime JP3700787B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/805,838 US5261106A (en) 1991-12-13 1991-12-13 Semaphore bypass

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP5510781A Division JPH07501904A (ja) 1991-12-13 1992-12-10 セマフォ・バイパス

Publications (2)

Publication Number Publication Date
JP2004227581A JP2004227581A (ja) 2004-08-12
JP3700787B2 true JP3700787B2 (ja) 2005-09-28

Family

ID=25192647

Family Applications (2)

Application Number Title Priority Date Filing Date
JP5510781A Pending JPH07501904A (ja) 1991-12-13 1992-12-10 セマフォ・バイパス
JP2004010080A Expired - Lifetime JP3700787B2 (ja) 1991-12-13 2004-01-19 セマフォ・バイパス法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP5510781A Pending JPH07501904A (ja) 1991-12-13 1992-12-10 セマフォ・バイパス

Country Status (6)

Country Link
US (1) US5261106A (ja)
EP (1) EP0616709B1 (ja)
JP (2) JPH07501904A (ja)
KR (1) KR940704039A (ja)
DE (1) DE69222060T2 (ja)
WO (1) WO1993012483A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
US5522029A (en) * 1993-04-23 1996-05-28 International Business Machines Corporation Fault tolerant rendezvous and semaphore for multiple parallel processors
US5546560A (en) * 1993-06-22 1996-08-13 Advance Micro Devices, Inc. Device and method for reducing bus activity in a computer system having multiple bus-masters
JP2570969B2 (ja) * 1993-07-05 1997-01-16 日本電気株式会社 メモリ管理システム及び方法
US5535365A (en) * 1993-10-22 1996-07-09 Cray Research, Inc. Method and apparatus for locking shared memory locations in multiprocessing systems
US5611074A (en) * 1994-12-14 1997-03-11 International Business Machines Corporation Efficient polling technique using cache coherent protocol
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
US5704058A (en) * 1995-04-21 1997-12-30 Derrick; John E. Cache bus snoop protocol for optimized multiprocessor computer system
US5799195A (en) * 1995-07-24 1998-08-25 Dell Usa, L.P. Structure and method for detecting occurrence of external events using semaphores
US5696939A (en) * 1995-09-29 1997-12-09 Hewlett-Packard Co. Apparatus and method using a semaphore buffer for semaphore instructions
US5787486A (en) * 1995-12-15 1998-07-28 International Business Machines Corporation Bus protocol for locked cycle cache hit
US5872980A (en) * 1996-01-25 1999-02-16 International Business Machines Corporation Semaphore access control buffer and method for accelerated semaphore operations
US5749087A (en) * 1996-07-30 1998-05-05 International Business Machines Corporation Method and apparatus for maintaining n-way associative directories utilizing a content addressable memory
US6148300A (en) * 1998-06-19 2000-11-14 Sun Microsystems, Inc. Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states
US6453375B1 (en) * 1999-03-23 2002-09-17 Intel Corporation Method and apparatus for obtaining coherent accesses with posted writes from multiple software drivers
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7155722B1 (en) * 2001-07-10 2006-12-26 Cisco Technology, Inc. System and method for process load balancing in a multi-processor environment
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US8099538B2 (en) * 2006-03-29 2012-01-17 Intel Corporation Increasing functionality of a reader-writer lock
CA2932387C (en) * 2011-11-04 2018-10-02 Intel Corporation Coordination of self-optimization operations in a self organizing network
US9553951B1 (en) 2013-04-24 2017-01-24 Amazon Technologies, Inc. Semaphores in distributed computing environments
US9760529B1 (en) 2014-09-17 2017-09-12 Amazon Technologies, Inc. Distributed state manager bootstrapping
US9852221B1 (en) 2015-03-26 2017-12-26 Amazon Technologies, Inc. Distributed state manager jury selection

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4320451A (en) * 1974-04-19 1982-03-16 Honeywell Information Systems Inc. Extended semaphore architecture
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
JPS5939188A (ja) * 1982-08-30 1984-03-03 Hitachi Ltd 状態変化デ−タ収集方法
US4594657A (en) * 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
US4635189A (en) * 1984-03-01 1987-01-06 Measurex Corporation Real-time distributed data-base management system
US4745541A (en) * 1986-06-16 1988-05-17 Cincinnati Milacron Inc. Method and apparatus for process control
JPH0731662B2 (ja) * 1986-07-15 1995-04-10 富士通株式会社 マルチプロセッサシステム
US4780822A (en) * 1986-09-17 1988-10-25 Integrated Device Technology, Inc. Semaphore circuit for shared memory cells
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
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
US5109486A (en) * 1989-01-06 1992-04-28 Motorola, Inc. Distributed computer system with network and resource status monitoring
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

Also Published As

Publication number Publication date
KR940704039A (ko) 1994-12-12
WO1993012483A1 (en) 1993-06-24
EP0616709B1 (en) 1997-09-03
US5261106A (en) 1993-11-09
EP0616709A1 (en) 1994-09-28
JP2004227581A (ja) 2004-08-12
JPH07501904A (ja) 1995-02-23
DE69222060D1 (de) 1997-10-09
DE69222060T2 (de) 1998-01-02

Similar Documents

Publication Publication Date Title
JP3700787B2 (ja) セマフォ・バイパス法
US6049851A (en) Method and apparatus for checking cache coherency in a computer architecture
CA1306312C (en) Write-shared cache circuit for multiprocessor system
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5996048A (en) Inclusion vector architecture for a level two cache
US6529968B1 (en) DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US7305523B2 (en) Cache memory direct intervention
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US20070150658A1 (en) Pinning locks in shared cache
US20080046651A1 (en) Victim Cache Using Direct Intervention
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US20080244189A1 (en) Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
US6915396B2 (en) Fast priority determination circuit with rotating priority
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US5426754A (en) Cross-interrogate method and means for combined scaler and vector processing system
US7325102B1 (en) Mechanism and method for cache snoop filtering
US7328313B2 (en) Methods to perform cache coherency in multiprocessor system using reserve signals and control bits
US6401173B1 (en) Method and apparatus for optimizing bcache tag performance by inferring bcache tag state from internal processor state
JPH10232831A (ja) キャッシュ・タグ維持装置
KR0145454B1 (ko) 분산된 공유 메모리를 갖는 다중 프로세서

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050705

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: 20080722

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090722

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100722

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130722

Year of fee payment: 8

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130722

Year of fee payment: 8