JPH05242046A - 処理システム - Google Patents
処理システムInfo
- Publication number
- JPH05242046A JPH05242046A JP4157827A JP15782792A JPH05242046A JP H05242046 A JPH05242046 A JP H05242046A JP 4157827 A JP4157827 A JP 4157827A JP 15782792 A JP15782792 A JP 15782792A JP H05242046 A JPH05242046 A JP H05242046A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- processor
- instruction
- critical section
- processing system
- 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.)
- Withdrawn
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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Turbine Rotor Nozzle Sealing (AREA)
- Preventing Unauthorised Actuation Of Valves (AREA)
- Surface Acoustic Wave Elements And Circuit Networks Thereof (AREA)
- Memory System (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 クリティカルセクションを含む命令を実行す
る複数個のプロセッサを含む型の処理システムを一度に
1つのプロセッサのみがクリティカルセクションを実行
し得るように改良する。 【構成】 システムはプロセッサを結合する共通バス
と、命令およびデータオペランドをストアするメモリ
と、ロックバッファとを含み、メモリは非クリティカル
セクションにおいて命令のデータオペランドをストアす
るデータスペースと、記憶位置を規定するロックスペー
スとを含む。各々のロックバッファは第1第2の制御ビ
ットをストアするための記憶位置を含み、第1の組の値
を有する第1第2の制御ビットに応答し、ロックスペー
スをロックし、かつその相関のプロセッサがロックスペ
ースにアクセスする命令を実行できなくするためのもの
であり、第2の組の値を有する第1第2の制御ビットに
応答し、ロックスペースをアンロックし、かつその相関
のプロセッサがアクセスする命令を実行することを許容
する。
る複数個のプロセッサを含む型の処理システムを一度に
1つのプロセッサのみがクリティカルセクションを実行
し得るように改良する。 【構成】 システムはプロセッサを結合する共通バス
と、命令およびデータオペランドをストアするメモリ
と、ロックバッファとを含み、メモリは非クリティカル
セクションにおいて命令のデータオペランドをストアす
るデータスペースと、記憶位置を規定するロックスペー
スとを含む。各々のロックバッファは第1第2の制御ビ
ットをストアするための記憶位置を含み、第1の組の値
を有する第1第2の制御ビットに応答し、ロックスペー
スをロックし、かつその相関のプロセッサがロックスペ
ースにアクセスする命令を実行できなくするためのもの
であり、第2の組の値を有する第1第2の制御ビットに
応答し、ロックスペースをアンロックし、かつその相関
のプロセッサがアクセスする命令を実行することを許容
する。
Description
【0001】
【発明の背景】この発明は一般的には共用バス上にとも
に結合された複数個のプロセッサを含む型の処理システ
ムに関し、ここでプロセッサは非クリティカルセクショ
ンおよび少なくとも1つのクリティカルセクションから
プログラム命令を実行するために配置されかつここで一
度に1つのプロセッサによるクリティカルセクションの
排他的実行が必要とされる。この発明はより特定的には
競合調整(coordinate)されかつそのオペラ
ンドがクリティカルセクションにおいて命令によって使
用されないプログラム命令を実行するために共用バスか
ら他のプロセッサをロックアウトすることなしにプロセ
ッサによってクリティカルセクションの排他的実行を許
容するように配置されるような処理システムに関する。
に結合された複数個のプロセッサを含む型の処理システ
ムに関し、ここでプロセッサは非クリティカルセクショ
ンおよび少なくとも1つのクリティカルセクションから
プログラム命令を実行するために配置されかつここで一
度に1つのプロセッサによるクリティカルセクションの
排他的実行が必要とされる。この発明はより特定的には
競合調整(coordinate)されかつそのオペラ
ンドがクリティカルセクションにおいて命令によって使
用されないプログラム命令を実行するために共用バスか
ら他のプロセッサをロックアウトすることなしにプロセ
ッサによってクリティカルセクションの排他的実行を許
容するように配置されるような処理システムに関する。
【0002】マルチプロセッサシステムは一度に1つの
プロセッサがクリティカルセクションを実行することを
許容するように2つの異なる型の調整のうち1つを一般
的に利用する。これらの型の調整は当該技術において協
働および競合調整と呼ばれる。
プロセッサがクリティカルセクションを実行することを
許容するように2つの異なる型の調整のうち1つを一般
的に利用する。これらの型の調整は当該技術において協
働および競合調整と呼ばれる。
【0003】協働調整において、プロセッサは1組のプ
ロトコルに従うことを必要とされる。プロトコルは典型
的には各々のプロセッサがクリティカルセクションの実
行の前および後に他のプロセッサに通知することを要求
する。このことは使用−待ちによって達成され、ここで
クリティカルセクションに入ることを望む各々のプロセ
ッサは他のいずれのプロセッサも現在クリティカルセク
ションを実行していないということを示す利用可能値の
ためにループにおいてクリティカルセクションと相関の
変数の値を繰返して試験する。変数が利用可能値を有す
るとき、自動的に利用可能値を読出しかつ直ちに変数の
使用値を書込むために読出−修正−書込命令をまず実行
するプロセッサはクリティカルセクションに入り、これ
によって他のプロセッサが利用可能値を読出すことを妨
げ、こうして他のプロセッサがクリティカルセクション
に入力することをできなくする。クリティカルセクショ
ンを完成した後、プロセッサはそれから利用可能値を書
込むことによってクリティカルセクションを退出し別の
プロセッサが上で説明されたものと同じ態様で変数を得
ることを許容する。
ロトコルに従うことを必要とされる。プロトコルは典型
的には各々のプロセッサがクリティカルセクションの実
行の前および後に他のプロセッサに通知することを要求
する。このことは使用−待ちによって達成され、ここで
クリティカルセクションに入ることを望む各々のプロセ
ッサは他のいずれのプロセッサも現在クリティカルセク
ションを実行していないということを示す利用可能値の
ためにループにおいてクリティカルセクションと相関の
変数の値を繰返して試験する。変数が利用可能値を有す
るとき、自動的に利用可能値を読出しかつ直ちに変数の
使用値を書込むために読出−修正−書込命令をまず実行
するプロセッサはクリティカルセクションに入り、これ
によって他のプロセッサが利用可能値を読出すことを妨
げ、こうして他のプロセッサがクリティカルセクション
に入力することをできなくする。クリティカルセクショ
ンを完成した後、プロセッサはそれから利用可能値を書
込むことによってクリティカルセクションを退出し別の
プロセッサが上で説明されたものと同じ態様で変数を得
ることを許容する。
【0004】協働調整は関係するすべてのプロセッサが
厳密にプロトコルに従うときにのみ作用する。プロトコ
ルのいたずらなまたは不注意な侵入は処理システムの不
適切な機能をその結果として生じるであろう。したがっ
て、協働調整の有用性は大変な注意をもって書込まれた
単一の並列プログラムを実行する処理システムにおいて
のような信頼できる環境に制限される。
厳密にプロトコルに従うときにのみ作用する。プロトコ
ルのいたずらなまたは不注意な侵入は処理システムの不
適切な機能をその結果として生じるであろう。したがっ
て、協働調整の有用性は大変な注意をもって書込まれた
単一の並列プログラムを実行する処理システムにおいて
のような信頼できる環境に制限される。
【0005】競合調整において、プロセッサの中で予め
配置されたプロトコルは存在しない。競合調整はこうし
て、協働調整のために必要なプロトコルを規定すること
が困難かまたは実行不可能であるような状態において必
要とされる。実行はすべて一般的に容易に行なわれる。
配置されたプロトコルは存在しない。競合調整はこうし
て、協働調整のために必要なプロトコルを規定すること
が困難かまたは実行不可能であるような状態において必
要とされる。実行はすべて一般的に容易に行なわれる。
【0006】競合調整を指示するために、共用バス構成
はバスロッキングを利用する。プロセッサがクリティカ
ルセクションに入力する前に、共用資源の使用を必要と
し、それは他のプロセッサがバスの使用が否定されてい
る一方でバスの使用を自由にするためにバスをロックす
る。バスをロックするプロセッサはそれがクリティカル
セクションを完成するまでかまたはそのような時間切れ
の機構を与える当該システムにおいて時間切れとなるま
でバスのロッキングを維持する。
はバスロッキングを利用する。プロセッサがクリティカ
ルセクションに入力する前に、共用資源の使用を必要と
し、それは他のプロセッサがバスの使用が否定されてい
る一方でバスの使用を自由にするためにバスをロックす
る。バスをロックするプロセッサはそれがクリティカル
セクションを完成するまでかまたはそのような時間切れ
の機構を与える当該システムにおいて時間切れとなるま
でバスのロッキングを維持する。
【0007】バスロッキングを与えるために、競合調整
された処理システムの各々のプロセッサはバスロッキン
グを制御するビットをストアするための状態レジスタを
含む。一旦このビットがバスロッキングプロセッサによ
って設定されかつバスが得られると、バスはレジスタに
おけるビットがクリアされるまで開放されない。
された処理システムの各々のプロセッサはバスロッキン
グを制御するビットをストアするための状態レジスタを
含む。一旦このビットがバスロッキングプロセッサによ
って設定されかつバスが得られると、バスはレジスタに
おけるビットがクリアされるまで開放されない。
【0008】バスロッキング方法は有害な付帯的な影響
を有し、そこにおいてそれは1つのプロセッサを除くす
べてを実行から効果的に停止させ、一方でバスはロック
される。こうして、バスロッキングは性能が二次的に重
要であるかまたはバスロッキングの期間が短いような状
態においてのみ有用である。
を有し、そこにおいてそれは1つのプロセッサを除くす
べてを実行から効果的に停止させ、一方でバスはロック
される。こうして、バスロッキングは性能が二次的に重
要であるかまたはバスロッキングの期間が短いような状
態においてのみ有用である。
【0009】当該技術において周知であるように、プロ
グラムは2つのモードのうちの1つ、すなわちスーパバ
イザまたはユーザにおいて実行する。スーパバイザモー
ドにおけるプログラムはプロセッサが実行することが可
能であるいずれかおよびすべての命令を実行することを
許容される。逆に、ユーザモードにおけるプログラムは
制限された組の命令のみを実行することが許容される。
この区別はスーパバイザモードにおいて実行されるプロ
グラムがコンピュータシステムのディベロッパによって
書込まれるが、ユーザモードにおいて実行されるプログ
ラムは処理システムのユーザによって書込まれるという
仮定に基づく。ユーザモードにおける制限は1ユーザに
よってなされたプログラミングの誤りが他のユーザに悪
い影響を与えないためのものである。
グラムは2つのモードのうちの1つ、すなわちスーパバ
イザまたはユーザにおいて実行する。スーパバイザモー
ドにおけるプログラムはプロセッサが実行することが可
能であるいずれかおよびすべての命令を実行することを
許容される。逆に、ユーザモードにおけるプログラムは
制限された組の命令のみを実行することが許容される。
この区別はスーパバイザモードにおいて実行されるプロ
グラムがコンピュータシステムのディベロッパによって
書込まれるが、ユーザモードにおいて実行されるプログ
ラムは処理システムのユーザによって書込まれるという
仮定に基づく。ユーザモードにおける制限は1ユーザに
よってなされたプログラミングの誤りが他のユーザに悪
い影響を与えないためのものである。
【0010】ほとんどの処理システムの設計はユーザモ
ードプログラムにバスロッキングを与えない。ユーザモ
ードプログラムにバスロッキングを与えるそれらの処理
システムのために、バスロッキングは厳しい制限でのみ
可能にされる。
ードプログラムにバスロッキングを与えない。ユーザモ
ードプログラムにバスロッキングを与えるそれらの処理
システムのために、バスロッキングは厳しい制限でのみ
可能にされる。
【0011】この発明はそのような先行技術の競合調整
処理システムの欠点を克服する改良された競合調整処理
システムを提供する。この発明の処理システムはプロセ
ッサによってのクリティカルセクションへの排他的なア
クセスを与え、それはクリティカルセクションによって
使用されたデータオペランド以外のデータオペランドに
アクセスする命令を実行するために他のプロセッサを共
用バスからロックアウトすることなしに行なわれる。さ
らに、クリティカルセクションへの排他的なアクセスは
この発明によってプロセッサに与えられ、それは前に説
明されたバスロッキングシステムのような先行技術のシ
ステムによって課せられた制限なしに行なわれる。
処理システムの欠点を克服する改良された競合調整処理
システムを提供する。この発明の処理システムはプロセ
ッサによってのクリティカルセクションへの排他的なア
クセスを与え、それはクリティカルセクションによって
使用されたデータオペランド以外のデータオペランドに
アクセスする命令を実行するために他のプロセッサを共
用バスからロックアウトすることなしに行なわれる。さ
らに、クリティカルセクションへの排他的なアクセスは
この発明によってプロセッサに与えられ、それは前に説
明されたバスロッキングシステムのような先行技術のシ
ステムによって課せられた制限なしに行なわれる。
【0012】
【発明の概要】この発明はクリティカルセクションおよ
び非クリティカルセクションのプログラム命令を含むプ
ログラム命令を実行するための複数個のプロセッサを含
む型の処理システムを提供する。処理システムは1つの
プロセッサのみが一度にクリティカルセクションを実行
することを許容するように配置されかつプロセッサにプ
ログラム命令およびデータオペランドを与えるためのメ
モリ手段を含む。メモリ手段は非クリティカルセクショ
ンにおいて命令によって使用されたデータオペランドを
ストアするためのデータスペースおよびクリティカルセ
クションにおいて命令によって使用されたデータオペラ
ンドをストアするためのロックスペースを含む。処理シ
ステムはさらに共通バスを含み、それはプロセッサをと
もにかつメモリ手段へとさらには各々のプロセッサと相
関のバッファ手段へと結合させる。各々のロックバッフ
ァ手段はロックバッファの別のものと相関のプロセッサ
に応答し、そのロックバッファはロックスペースをその
相関のプロセッサからロックするためにクリティカルセ
クションを実行し、それはその相関のプロセッサがロッ
クスペースにおいてのデータオペランドにアクセスする
命令のみを実行することをできなくするために行なわれ
る。
び非クリティカルセクションのプログラム命令を含むプ
ログラム命令を実行するための複数個のプロセッサを含
む型の処理システムを提供する。処理システムは1つの
プロセッサのみが一度にクリティカルセクションを実行
することを許容するように配置されかつプロセッサにプ
ログラム命令およびデータオペランドを与えるためのメ
モリ手段を含む。メモリ手段は非クリティカルセクショ
ンにおいて命令によって使用されたデータオペランドを
ストアするためのデータスペースおよびクリティカルセ
クションにおいて命令によって使用されたデータオペラ
ンドをストアするためのロックスペースを含む。処理シ
ステムはさらに共通バスを含み、それはプロセッサをと
もにかつメモリ手段へとさらには各々のプロセッサと相
関のバッファ手段へと結合させる。各々のロックバッフ
ァ手段はロックバッファの別のものと相関のプロセッサ
に応答し、そのロックバッファはロックスペースをその
相関のプロセッサからロックするためにクリティカルセ
クションを実行し、それはその相関のプロセッサがロッ
クスペースにおいてのデータオペランドにアクセスする
命令のみを実行することをできなくするために行なわれ
る。
【0013】この発明はクリティカルセクションおよび
非クリティカルセクションのプログラム命令を含むプロ
グラム命令を実行するための複数個のプロセッサを含む
型の処理システムをさらに提供し、ここでクリティカル
セクションのプログラム命令の実行は一度にプロセッサ
のうちの1つによる排他的な実行を必要とする。処理シ
ステムは一度に1つのプロセッサのみがクリティカルセ
クションを実行することを許容するように配置されかつ
プロセッサにプログラム命令およびデータオペランドを
与えるためのメモリ手段を含む。メモリ手段はクリティ
カルセクションのプログラム命令をストアするためのク
リティカルセクション命令スペースと、非クリティカル
セクションのプログラム命令をストアするための非クリ
ティカルセクション命令スペースと、非クリティカルセ
クションにおいて命令によって使用されたデータオペラ
ンドをストアするためのデータスペースとクリティカル
セクションにおいて命令によって使用されたデータオペ
ランドをストアするためのロックスペースとを含む。処
理システムはプロセッサをともにかつ各々のプロセッサ
と相関のロックバッファ手段およびメモリ手段へと結合
させる共通バスをさらに含む。各々のロックバッファ手
段は第1および第2の制御ビットをストアするための第
1および第2の記憶位置を含み、かつそのプロセッサが
ロックスペースにストアされたデータオペランドを使用
するプログラム命令のみを実行することをできなくする
ために第1の組の予め定められた値を有する第1および
第2の制御ビットに応答する。
非クリティカルセクションのプログラム命令を含むプロ
グラム命令を実行するための複数個のプロセッサを含む
型の処理システムをさらに提供し、ここでクリティカル
セクションのプログラム命令の実行は一度にプロセッサ
のうちの1つによる排他的な実行を必要とする。処理シ
ステムは一度に1つのプロセッサのみがクリティカルセ
クションを実行することを許容するように配置されかつ
プロセッサにプログラム命令およびデータオペランドを
与えるためのメモリ手段を含む。メモリ手段はクリティ
カルセクションのプログラム命令をストアするためのク
リティカルセクション命令スペースと、非クリティカル
セクションのプログラム命令をストアするための非クリ
ティカルセクション命令スペースと、非クリティカルセ
クションにおいて命令によって使用されたデータオペラ
ンドをストアするためのデータスペースとクリティカル
セクションにおいて命令によって使用されたデータオペ
ランドをストアするためのロックスペースとを含む。処
理システムはプロセッサをともにかつ各々のプロセッサ
と相関のロックバッファ手段およびメモリ手段へと結合
させる共通バスをさらに含む。各々のロックバッファ手
段は第1および第2の制御ビットをストアするための第
1および第2の記憶位置を含み、かつそのプロセッサが
ロックスペースにストアされたデータオペランドを使用
するプログラム命令のみを実行することをできなくする
ために第1の組の予め定められた値を有する第1および
第2の制御ビットに応答する。
【0014】この発明はクリティカルセクションおよび
非クリティカルセクションのプログラム命令を含むプロ
グラム命令を実行するための複数個のプロセッサを含む
型の処理システムにおける使用のための方法をさらに提
供し、ここでクリティカルセクションのプログラム命令
の実行は一度にプロセッサのうちの1つによる排他的な
実行を要求する。方法は一度に1つのプロセッサのみが
クリティカルセクションを実行することを許容しかつそ
こにストアされたクリティカルセクションのプログラム
命令でのクリティカルセクション命令スペースと、そこ
にストアされた非クリティカルセクションのプログラム
命令での非クリティカルセクション命令スペースと、そ
こにストアされた非クリティカルセクションにおける命
令のデータオペランドでのデータスペースとそこにスト
アされたクリティカルセクションにおける命令のデータ
オペランドでのロックスペースとを有するメモリ手段を
提供するステップを含む。方法はさらに共通バスを提供
するステップと、プロセッサをともにかつ共通バスを介
してメモリ手段へと結合させるステップと、各々のプロ
セッサと相関のロックバッファ手段を提供するステップ
とを含み、ここで各々のロックバッファ手段は第1およ
び第2の制御ビットをストアするための第1および第2
の記憶位置を含む。方法は、もしその相関のロックバッ
ファ手段にストアされた第1および第2の制御ビットが
第1の組の予め定められた値を有するとすればロックス
ペース内にストアされたデータオペランドを使用するプ
ログラム命令のみをプロセッサが実行することをできな
くするステップと、もしその相関のロックバッファ手段
内にストアされた第1および第2の制御ビットが第2の
組の予め定められた値を有すると、ロックスペース内に
ストアされたデータオペランドを使用するプログラム命
令をプロセッサが実行することを可能にするステップと
を含む。
非クリティカルセクションのプログラム命令を含むプロ
グラム命令を実行するための複数個のプロセッサを含む
型の処理システムにおける使用のための方法をさらに提
供し、ここでクリティカルセクションのプログラム命令
の実行は一度にプロセッサのうちの1つによる排他的な
実行を要求する。方法は一度に1つのプロセッサのみが
クリティカルセクションを実行することを許容しかつそ
こにストアされたクリティカルセクションのプログラム
命令でのクリティカルセクション命令スペースと、そこ
にストアされた非クリティカルセクションのプログラム
命令での非クリティカルセクション命令スペースと、そ
こにストアされた非クリティカルセクションにおける命
令のデータオペランドでのデータスペースとそこにスト
アされたクリティカルセクションにおける命令のデータ
オペランドでのロックスペースとを有するメモリ手段を
提供するステップを含む。方法はさらに共通バスを提供
するステップと、プロセッサをともにかつ共通バスを介
してメモリ手段へと結合させるステップと、各々のプロ
セッサと相関のロックバッファ手段を提供するステップ
とを含み、ここで各々のロックバッファ手段は第1およ
び第2の制御ビットをストアするための第1および第2
の記憶位置を含む。方法は、もしその相関のロックバッ
ファ手段にストアされた第1および第2の制御ビットが
第1の組の予め定められた値を有するとすればロックス
ペース内にストアされたデータオペランドを使用するプ
ログラム命令のみをプロセッサが実行することをできな
くするステップと、もしその相関のロックバッファ手段
内にストアされた第1および第2の制御ビットが第2の
組の予め定められた値を有すると、ロックスペース内に
ストアされたデータオペランドを使用するプログラム命
令をプロセッサが実行することを可能にするステップと
を含む。
【0015】新規であると信じられるこの発明の特徴が
前掲の特許請求の範囲において特定的に述べられる。こ
の発明は、そのさらなる目的および利点とともに、同じ
参照番号が同一のエレメントを識別するいくつかの図面
において添付の図面と関連して与えられる以下の説明を
参照することによって最良に理解され得る。
前掲の特許請求の範囲において特定的に述べられる。こ
の発明は、そのさらなる目的および利点とともに、同じ
参照番号が同一のエレメントを識別するいくつかの図面
において添付の図面と関連して与えられる以下の説明を
参照することによって最良に理解され得る。
【0016】
【好ましい実施例の説明】さて図1を参照すると、それ
はブロック図の形状において、この発明を実施する処理
システム10を示す。処理システム10は一般的には第
1のプロセッサ12、第2のプロセッサ14および共用
メモリ16を含むメモリ手段を含む。プロセッサ12お
よび14はともにかつ共通バス18によって共用メモリ
16へと結合される。以下に理解されるように、処理シ
ステム10はこの発明を有利に実現するために付加的な
プロセッサを組入れ、しかもこの発明の好ましい実施例
の説明を過度に複雑にしないために一対のプロセッサの
みが示される。
はブロック図の形状において、この発明を実施する処理
システム10を示す。処理システム10は一般的には第
1のプロセッサ12、第2のプロセッサ14および共用
メモリ16を含むメモリ手段を含む。プロセッサ12お
よび14はともにかつ共通バス18によって共用メモリ
16へと結合される。以下に理解されるように、処理シ
ステム10はこの発明を有利に実現するために付加的な
プロセッサを組入れ、しかもこの発明の好ましい実施例
の説明を過度に複雑にしないために一対のプロセッサの
みが示される。
【0017】プロセッサ12および14の各々はロック
バッファ28および30と関連づけられる。プロセッサ
12および14はロックバッファ28および30に双方
向性バス36および38によってそれぞれに結合され
る。ロックバッファ28および30は双方向性バス40
および42によってそれぞれに共通バスに結合されかつ
プロセッサ12および14はさらに双方向性バス44お
よび46のそれぞれによって共通バス18へと直接結合
される。
バッファ28および30と関連づけられる。プロセッサ
12および14はロックバッファ28および30に双方
向性バス36および38によってそれぞれに結合され
る。ロックバッファ28および30は双方向性バス40
および42によってそれぞれに共通バスに結合されかつ
プロセッサ12および14はさらに双方向性バス44お
よび46のそれぞれによって共通バス18へと直接結合
される。
【0018】プレート12および14は後に図2を参照
して説明されるであろう共用メモリ16から得られる命
令からなるプログラムセクションを実行するために配置
される。プログラムセクションはクリティカルセクショ
ンおよび非クリティカルセクションを含む。クリティカ
ルセクションは一度にプロセッサのうちの1つによって
排他的な実行を必要とするプログラムセクションであ
る。非クリティカルセクションは一度に1つ以上のプロ
セッサによって実行され得るプログラムセクションであ
る。以下に示されるように、処理システム10はプロセ
ッサ12および14が共用メモリ16におけるユーザス
ペースおよび共用メモリ16におけるスーパバイザスペ
ースの双方からクリティカルおよび非クリティカルセク
ションを実行することを許容する。
して説明されるであろう共用メモリ16から得られる命
令からなるプログラムセクションを実行するために配置
される。プログラムセクションはクリティカルセクショ
ンおよび非クリティカルセクションを含む。クリティカ
ルセクションは一度にプロセッサのうちの1つによって
排他的な実行を必要とするプログラムセクションであ
る。非クリティカルセクションは一度に1つ以上のプロ
セッサによって実行され得るプログラムセクションであ
る。以下に示されるように、処理システム10はプロセ
ッサ12および14が共用メモリ16におけるユーザス
ペースおよび共用メモリ16におけるスーパバイザスペ
ースの双方からクリティカルおよび非クリティカルセク
ションを実行することを許容する。
【0019】双方向性バス44および46はプロセッサ
12および14がそこにストアされたプログラム命令を
アドレス指定するために、共用メモリ16からプログラ
ム命令を受取るために、かつユーザロックスペースにお
いてまたはスーパバイザロックスペースにおいてデータ
オペランドにアクセスしないプログラム命令を実行する
ために共用メモリ16をアドレス指定することを許容す
る。
12および14がそこにストアされたプログラム命令を
アドレス指定するために、共用メモリ16からプログラ
ム命令を受取るために、かつユーザロックスペースにお
いてまたはスーパバイザロックスペースにおいてデータ
オペランドにアクセスしないプログラム命令を実行する
ために共用メモリ16をアドレス指定することを許容す
る。
【0020】ロックバッファ28および30の各々は複
数個の記憶位置を含み、ロックバッファ28は記憶位置
60、62、64および66を含みかつロックバッファ
30は記憶位置70、72、74および76を含む。記
憶位置60、62、64、66、70、72、74およ
び76の各々は論理0または論理1の値を有する制御ビ
ットを含むように配置される。記憶位置60および70
はユーザロックスペースロック制御ビットをストアする
ために配置され、記憶位置62および72はユーザロッ
クバッファロック制御ビットをストアするために配置さ
れ、記憶位置64および74はスーパバイザロックスペ
ースロック制御ビットをストアするために配置されかつ
記憶位置66および76はスーパバイザロックバッファ
ロック制御ビットをストアするために配置される。記憶
位置60および62ならびに記憶位置70および72は
以下に説明されるユーザロックスペースの一部を形成し
かつそれらはプロセッサが共用メモリ16のユーザロッ
クスペース内にストアされたデータオペランドにアクセ
スするロックもしくはアンロック命令または読出ロック
もしくは書込みロック命令を実行することを許容するた
めに利用される。記憶位置64および66ならびに記憶
位置74および76は以下に説明されるスーパバイザロ
ックスペースの一部を形成しかつプロセッサが共用メモ
リ16のスーパバイザロックスペースにストアされたデ
ータオペランドにアクセスするスーパバイザロックもし
くはアンロック命令または読出ロックもしくは書込ロッ
ク命令を実行することを許容するように利用される。結
果として、すべてのそのような命令はそれらの相関のロ
ックバッファ28および30を介してプロセッサ12お
よび14によって実行されなければならない。
数個の記憶位置を含み、ロックバッファ28は記憶位置
60、62、64および66を含みかつロックバッファ
30は記憶位置70、72、74および76を含む。記
憶位置60、62、64、66、70、72、74およ
び76の各々は論理0または論理1の値を有する制御ビ
ットを含むように配置される。記憶位置60および70
はユーザロックスペースロック制御ビットをストアする
ために配置され、記憶位置62および72はユーザロッ
クバッファロック制御ビットをストアするために配置さ
れ、記憶位置64および74はスーパバイザロックスペ
ースロック制御ビットをストアするために配置されかつ
記憶位置66および76はスーパバイザロックバッファ
ロック制御ビットをストアするために配置される。記憶
位置60および62ならびに記憶位置70および72は
以下に説明されるユーザロックスペースの一部を形成し
かつそれらはプロセッサが共用メモリ16のユーザロッ
クスペース内にストアされたデータオペランドにアクセ
スするロックもしくはアンロック命令または読出ロック
もしくは書込みロック命令を実行することを許容するた
めに利用される。記憶位置64および66ならびに記憶
位置74および76は以下に説明されるスーパバイザロ
ックスペースの一部を形成しかつプロセッサが共用メモ
リ16のスーパバイザロックスペースにストアされたデ
ータオペランドにアクセスするスーパバイザロックもし
くはアンロック命令または読出ロックもしくは書込ロッ
ク命令を実行することを許容するように利用される。結
果として、すべてのそのような命令はそれらの相関のロ
ックバッファ28および30を介してプロセッサ12お
よび14によって実行されなければならない。
【0021】さて図2を参照すると、それは図1の処理
システム10の共用メモリ16の概念的な構成を図表で
示す。共用メモリ16はメモリスペース100を含み、
それはユーザスペース102およびスーパバイザロック
スペース104に細分化される。ユーザスペース102
は命令スペース110、データスペース112およびロ
ックスペース114を含む。同様に、スーパバイザロッ
クスペース104は命令スペース120、データスペー
ス122およびロックスペース124を含む。ユーザ命
令スペース110はクリティカルセクション130およ
び非クリティカルセクション132を含む。同様に、ス
ーパバイザ命令スペース120はクリティカルセクショ
ン134および非クリティカルセクション136を含
む。
システム10の共用メモリ16の概念的な構成を図表で
示す。共用メモリ16はメモリスペース100を含み、
それはユーザスペース102およびスーパバイザロック
スペース104に細分化される。ユーザスペース102
は命令スペース110、データスペース112およびロ
ックスペース114を含む。同様に、スーパバイザロッ
クスペース104は命令スペース120、データスペー
ス122およびロックスペース124を含む。ユーザ命
令スペース110はクリティカルセクション130およ
び非クリティカルセクション132を含む。同様に、ス
ーパバイザ命令スペース120はクリティカルセクショ
ン134および非クリティカルセクション136を含
む。
【0022】クリティカルセクション130および13
4はクリティカルセクションを実行するために必要とさ
れるプログラム命令を含む。たとえば、ユーザクリティ
カルセクション130はロック命令140、読出ロック
命令142、書込ロック命令144およびアンロック命
令146を含む。同様に、スーパバイザクリティカルセ
クション134はロック命令170、読出ロック命令1
72、書込ロック命令174およびアンロック命令17
6を含む。図において注目されるように、読出ロック命
令142および書込ロック命令144はロックスペース
114の記憶位置162でストアされたデータオペラン
ドを必要とする。同様に、読出ロック命令172および
書込ロック命令174はロックスペース124の記憶位
置192でストアされたデータオペランドを要求する。
前に説明されたように、ロックバッファ28の記憶位置
60および62ならびにロックバッファ30の記憶位置
70および72はユーザロックスペース114の一部を
形成しかつロックバッファ28の記憶位置64および6
6ならびにロックバッファ30の記憶位置74および7
6はスーパバイザロックスペース124の一部を形成す
る。プロセッサ12または14の1つがユーザロックス
ペース114またはスーパバイザロックスペース124
のいずれかに命令を実行するときにはいつでも、それは
プロセッサが以下に説明されるであろう態様で命令を実
行することを許容されるかどうかを決定するその相関の
ロックバッファを介してそうでなくてはならない。
4はクリティカルセクションを実行するために必要とさ
れるプログラム命令を含む。たとえば、ユーザクリティ
カルセクション130はロック命令140、読出ロック
命令142、書込ロック命令144およびアンロック命
令146を含む。同様に、スーパバイザクリティカルセ
クション134はロック命令170、読出ロック命令1
72、書込ロック命令174およびアンロック命令17
6を含む。図において注目されるように、読出ロック命
令142および書込ロック命令144はロックスペース
114の記憶位置162でストアされたデータオペラン
ドを必要とする。同様に、読出ロック命令172および
書込ロック命令174はロックスペース124の記憶位
置192でストアされたデータオペランドを要求する。
前に説明されたように、ロックバッファ28の記憶位置
60および62ならびにロックバッファ30の記憶位置
70および72はユーザロックスペース114の一部を
形成しかつロックバッファ28の記憶位置64および6
6ならびにロックバッファ30の記憶位置74および7
6はスーパバイザロックスペース124の一部を形成す
る。プロセッサ12または14の1つがユーザロックス
ペース114またはスーパバイザロックスペース124
のいずれかに命令を実行するときにはいつでも、それは
プロセッサが以下に説明されるであろう態様で命令を実
行することを許容されるかどうかを決定するその相関の
ロックバッファを介してそうでなくてはならない。
【0023】ユーザ命令スペース110の非クリティカ
ルセクション132は読出命令150、書込命令15
2、読出ロック命令154および書込ロック命令156
を含む。非クリティカルセクション132は一度に1つ
のプロセッサ以上によって実行され得るプログラム命令
を規定する。しかしながら、読出ロック命令154およ
び書込ロック命令156がロックスペース114の記憶
位置162にストアされたデータオペランドを必要とす
るというこうとは注目されるであろう。結果として、プ
ロセッサのうちの1つが読出ロック命令154または書
込ロック命令156のいずれかを実行するとき、それは
その相関のロックバッファを介してそうであり、なぜな
らそれらの命令がユーザロックスペース114内に含ま
れるデータオペランドを必要とするからである。
ルセクション132は読出命令150、書込命令15
2、読出ロック命令154および書込ロック命令156
を含む。非クリティカルセクション132は一度に1つ
のプロセッサ以上によって実行され得るプログラム命令
を規定する。しかしながら、読出ロック命令154およ
び書込ロック命令156がロックスペース114の記憶
位置162にストアされたデータオペランドを必要とす
るというこうとは注目されるであろう。結果として、プ
ロセッサのうちの1つが読出ロック命令154または書
込ロック命令156のいずれかを実行するとき、それは
その相関のロックバッファを介してそうであり、なぜな
らそれらの命令がユーザロックスペース114内に含ま
れるデータオペランドを必要とするからである。
【0024】同様に、スーパバイザ命令スペース120
のスーパバイザ非クリティカルセクション136は読出
命令180、書込命令182、読出ロック命令184お
よび書込ロック命令186を含む。非クリティカルセク
ション136は一度に1つ以上のプロセッサによって実
行される得るプログラム命令を規定する。しかしなが
ら、読出ロック命令184および書込ロック命令186
がスーパバイザロックスペース124の記憶位置192
で含まれるデータオペランドを必要とすることは注目さ
れるであろう。結果として、もしプロセッサのうちの1
つが読出ロック命令184または書込ロック命令186
のいずれかを実行すると、それはその相関のロックバッ
ファを介してもそうでなくてはならない。
のスーパバイザ非クリティカルセクション136は読出
命令180、書込命令182、読出ロック命令184お
よび書込ロック命令186を含む。非クリティカルセク
ション136は一度に1つ以上のプロセッサによって実
行される得るプログラム命令を規定する。しかしなが
ら、読出ロック命令184および書込ロック命令186
がスーパバイザロックスペース124の記憶位置192
で含まれるデータオペランドを必要とすることは注目さ
れるであろう。結果として、もしプロセッサのうちの1
つが読出ロック命令184または書込ロック命令186
のいずれかを実行すると、それはその相関のロックバッ
ファを介してもそうでなくてはならない。
【0025】記憶位置60および62にストアされたビ
ットの値はそのオペランドがユーザロックスペース11
4からのものである命令をプロセッサ12が実行するこ
とを許容されるかどうかを決定する。これらの命令はク
リティカルセクション130内の命令140、142、
144および146ならびに非クリティカルセクション
132内の命令154および156に対応する。記憶位
置64および66にストアされたビットの値はプロセッ
サ12がそのオペランドがスーパバイザロックスペース
124からのものである命令を実行することを許容され
るかどうかを決定する。これらの命令はクリティカルセ
クション134内の命令170、172、174および
176ならびに非クリティカルセクション136内の命
令184および186に対応する。同様に、記憶位置7
0および72にストアされたビットの値はプロセッサ1
4がそのオペランドがユーザロックスペース114から
の命令を実行することを許容されるかどうか決定する。
これらの命令はクリティカルセクション130内の命令
140、142、144および146ならびに非クリテ
ィカルセクション132内の命令154および156に
対応する。記憶位置74および76内にストアされたビ
ットの値はプロセッサ14がそのオペランドがスーパバ
イザロックスペース124からのものである命令を実行
することを許容されるかどうかを決定する。これらの命
令はクリティカルセクション134内の命令170、1
72、174および176ならびに非クリティカルセク
ション136内の命令184および186に対応する。
ットの値はそのオペランドがユーザロックスペース11
4からのものである命令をプロセッサ12が実行するこ
とを許容されるかどうかを決定する。これらの命令はク
リティカルセクション130内の命令140、142、
144および146ならびに非クリティカルセクション
132内の命令154および156に対応する。記憶位
置64および66にストアされたビットの値はプロセッ
サ12がそのオペランドがスーパバイザロックスペース
124からのものである命令を実行することを許容され
るかどうかを決定する。これらの命令はクリティカルセ
クション134内の命令170、172、174および
176ならびに非クリティカルセクション136内の命
令184および186に対応する。同様に、記憶位置7
0および72にストアされたビットの値はプロセッサ1
4がそのオペランドがユーザロックスペース114から
の命令を実行することを許容されるかどうか決定する。
これらの命令はクリティカルセクション130内の命令
140、142、144および146ならびに非クリテ
ィカルセクション132内の命令154および156に
対応する。記憶位置74および76内にストアされたビ
ットの値はプロセッサ14がそのオペランドがスーパバ
イザロックスペース124からのものである命令を実行
することを許容されるかどうかを決定する。これらの命
令はクリティカルセクション134内の命令170、1
72、174および176ならびに非クリティカルセク
ション136内の命令184および186に対応する。
【0026】プロセッサがこれらのクリティカルセクシ
ョンのうちの1つに入ると、それはロック命令をその対
応するロックバッファへと運ぶ。もし第1および第2の
制御ビットがたとえば論理0のような第2の組の予め定
められた値を有すると、相関のロックバッファはそのプ
ロセッサがその相関のプロセッサに双方向性バス40ま
たは42を介する共通バス18へのアクセスを与えるこ
とによってロック命令を行なうことを許容する。もし第
1および第2の制御ビットがたとえば論理1のような第
1の組の予め定められた値を有すると、相関のロックバ
ッファはそのプロセッサがロック命令を行なうことをで
きなくしかつそれによってその相関のプロセッサが立ち
往生することを引起す。ロックバッファはその相関のプ
ロセッサがそのロック命令を行なうことをできなくし、
それは第1および第2の制御ビットの論理1の値が別の
プロセッサが同じクリティカルセクションを実行する方
法においてロックスペースを現在ロックしているという
ことを示すからである。プロセッサがその相関のロック
バッファによってロック命令を実行することを許容され
るとき、プロセッサはそのロックバッファに第1の制御
ビットに対して論理1の値をかつ第2の制御ビットに対
して論理0の値を含む第3の組の予め定められた値を書
込むであろう。このことはロックバッファに対して、そ
の相関のプロセッサがクリティカルセクションの実行中
でありかつロックスペースがそのプロセッサにロックさ
れないということを示す。このため、そのプロセッサに
は適切なロックスペースおよび共通バス18へのアクセ
スが与えられかつそれによってクリティカルセクション
を実行することを許容される。
ョンのうちの1つに入ると、それはロック命令をその対
応するロックバッファへと運ぶ。もし第1および第2の
制御ビットがたとえば論理0のような第2の組の予め定
められた値を有すると、相関のロックバッファはそのプ
ロセッサがその相関のプロセッサに双方向性バス40ま
たは42を介する共通バス18へのアクセスを与えるこ
とによってロック命令を行なうことを許容する。もし第
1および第2の制御ビットがたとえば論理1のような第
1の組の予め定められた値を有すると、相関のロックバ
ッファはそのプロセッサがロック命令を行なうことをで
きなくしかつそれによってその相関のプロセッサが立ち
往生することを引起す。ロックバッファはその相関のプ
ロセッサがそのロック命令を行なうことをできなくし、
それは第1および第2の制御ビットの論理1の値が別の
プロセッサが同じクリティカルセクションを実行する方
法においてロックスペースを現在ロックしているという
ことを示すからである。プロセッサがその相関のロック
バッファによってロック命令を実行することを許容され
るとき、プロセッサはそのロックバッファに第1の制御
ビットに対して論理1の値をかつ第2の制御ビットに対
して論理0の値を含む第3の組の予め定められた値を書
込むであろう。このことはロックバッファに対して、そ
の相関のプロセッサがクリティカルセクションの実行中
でありかつロックスペースがそのプロセッサにロックさ
れないということを示す。このため、そのプロセッサに
は適切なロックスペースおよび共通バス18へのアクセ
スが与えられかつそれによってクリティカルセクション
を実行することを許容される。
【0027】2つのロックスペースのうちの1つからデ
ータオペランドを必要とするすべての命令はプロセッサ
からそれらの相関のロックバッファへと運ばれる。この
ことはロックバッファがそのプロセッサが命令を実行す
ることを可能にするかまたはもし別のプロセッサがそれ
ぞれのクリティカルセクションの実行の最中であるとす
れば、その相関のプロセッサが命令を実行することをで
きなくすることを許容する。この態様で、プロセッサが
クリティカルセクションを実行しているとき、他のプロ
セッサは適切なロックスペースからロックアウトされか
つロックスペースの使用を必要とする命令を実行するこ
とをできなくされる。しかしながら、非クリティカルセ
クションにおける命令または他のロックスペースにおい
てデータオペランドを必要とする命令を実行するために
他のロックスペースまたはデータスペースのいずれかか
ら他のプロセッサはロックアウトされない。結果とし
て、プロセッサがたとえクリティカルセクションを実行
しそれによってロックスペースをロックしてしまったと
しても、他のプロセッサはデータスペースまたは他のロ
ックされないロックスペースからオペランドを必要とす
る命令を実行することを許容される。共通バスはこうし
て続行する実行のために他のプロセッサにアクセス可能
である。図1においてまた注目されるであろうように、
プロセッサ12および14はバス検出器80および82
をそれぞれに含む。バス検出器80および82はその相
関のプロセッサがロック命令かまたはアンロック命令の
いずれかを実行するべきときに共通バス18の可用性を
検出するために設けられる。プロセッサがそれらの命令
のうちの1つ、たとえばロックまたはアンロック命令を
実行する前に、その相関のバス検出器は最初に共通バス
の可用性を検出しなければならない。もしプロセッサが
ロック命令を実行しかつその相関のロックバッファが第
2の組の値(論理0の双方)を有する第1および第2の
制御ビットを含むと、プロセッサはそのバス検出器がバ
スの可用性を検出することを引起す。バス検出器がバス
の可用性を検出している間に、プロセッサは第1および
第2の制御ビットの値を絶え間なく監視する。もしバス
が利用可能となる前に第1および第2の制御ビットがそ
の値において第1の組の予め定められた値(論理1の双
方)の値へと変化すると、プロセッサはそのバス検出器
がバスの可用性を検出するのを終了することを引起しか
つプロセッサは第1および第2の制御ビットが論理0の
第2の組の予め定められた値へと戻るまで待つために立
ち往生の状態になるであろう。
ータオペランドを必要とするすべての命令はプロセッサ
からそれらの相関のロックバッファへと運ばれる。この
ことはロックバッファがそのプロセッサが命令を実行す
ることを可能にするかまたはもし別のプロセッサがそれ
ぞれのクリティカルセクションの実行の最中であるとす
れば、その相関のプロセッサが命令を実行することをで
きなくすることを許容する。この態様で、プロセッサが
クリティカルセクションを実行しているとき、他のプロ
セッサは適切なロックスペースからロックアウトされか
つロックスペースの使用を必要とする命令を実行するこ
とをできなくされる。しかしながら、非クリティカルセ
クションにおける命令または他のロックスペースにおい
てデータオペランドを必要とする命令を実行するために
他のロックスペースまたはデータスペースのいずれかか
ら他のプロセッサはロックアウトされない。結果とし
て、プロセッサがたとえクリティカルセクションを実行
しそれによってロックスペースをロックしてしまったと
しても、他のプロセッサはデータスペースまたは他のロ
ックされないロックスペースからオペランドを必要とす
る命令を実行することを許容される。共通バスはこうし
て続行する実行のために他のプロセッサにアクセス可能
である。図1においてまた注目されるであろうように、
プロセッサ12および14はバス検出器80および82
をそれぞれに含む。バス検出器80および82はその相
関のプロセッサがロック命令かまたはアンロック命令の
いずれかを実行するべきときに共通バス18の可用性を
検出するために設けられる。プロセッサがそれらの命令
のうちの1つ、たとえばロックまたはアンロック命令を
実行する前に、その相関のバス検出器は最初に共通バス
の可用性を検出しなければならない。もしプロセッサが
ロック命令を実行しかつその相関のロックバッファが第
2の組の値(論理0の双方)を有する第1および第2の
制御ビットを含むと、プロセッサはそのバス検出器がバ
スの可用性を検出することを引起す。バス検出器がバス
の可用性を検出している間に、プロセッサは第1および
第2の制御ビットの値を絶え間なく監視する。もしバス
が利用可能となる前に第1および第2の制御ビットがそ
の値において第1の組の予め定められた値(論理1の双
方)の値へと変化すると、プロセッサはそのバス検出器
がバスの可用性を検出するのを終了することを引起しか
つプロセッサは第1および第2の制御ビットが論理0の
第2の組の予め定められた値へと戻るまで待つために立
ち往生の状態になるであろう。
【0028】こうして理解され得るように、第1のプロ
セッサがクリティカルセクションに入ることを望みかつ
そのロックバッファによってロック命令を実行すること
を許容されるとき、もし第1のプロセッサにバスが与え
られる前にロック命令の実行のために第2のプロセッサ
にバスが与えられると、第1のプロセッサは立ち往生し
かつ第2のプロセッサはロック命令を実行することによ
ってそのクリティカルセクションに入るであろう。
セッサがクリティカルセクションに入ることを望みかつ
そのロックバッファによってロック命令を実行すること
を許容されるとき、もし第1のプロセッサにバスが与え
られる前にロック命令の実行のために第2のプロセッサ
にバスが与えられると、第1のプロセッサは立ち往生し
かつ第2のプロセッサはロック命令を実行することによ
ってそのクリティカルセクションに入るであろう。
【0029】クリティカルセクションへのアクセスを制
御するための処理システム10の動作は共用メモリ16
のユーザスペース102からクリティカルセクションに
入りかつそれを完成するプロセッサ12に関して今、説
明されるであろう。スーパバイザスペース104におけ
るクリティカルセクションへのアクセスを制御するため
の処理システム10の動作は同じであるので、プロセッ
サ12によるユーザスペースにおけるクリティカルセク
ションへのアクセスを制御するための処理システムの動
作のみがここに説明されるであろう。クリティカルセク
ションに入りかつそれを完成するプロセッサ12の工程
の間のロックバッファ28および30の状態を示すこの
説明の間に図3および図4の参照がなされ得る。
御するための処理システム10の動作は共用メモリ16
のユーザスペース102からクリティカルセクションに
入りかつそれを完成するプロセッサ12に関して今、説
明されるであろう。スーパバイザスペース104におけ
るクリティカルセクションへのアクセスを制御するため
の処理システム10の動作は同じであるので、プロセッ
サ12によるユーザスペースにおけるクリティカルセク
ションへのアクセスを制御するための処理システムの動
作のみがここに説明されるであろう。クリティカルセク
ションに入りかつそれを完成するプロセッサ12の工程
の間のロックバッファ28および30の状態を示すこの
説明の間に図3および図4の参照がなされ得る。
【0030】最初に、ロックバッファ28の記憶位置6
0および62にストアされかつロックバッファ30の記
憶位置70および72にストアされた第1および第2の
制御ビットは論理0の第2の組の予め定められた値を有
する。プロセッサ12がロック命令をそのロックバッフ
ァ28へと運ぶとき、記憶位置60および62にストア
された第1および第2の制御ビットの双方が論理0であ
るのでプロセッサ12がロック命令の実行を始めること
を許容するであろう。プロセッサ12はそれからそのバ
ス検出器80が共通バス18の可用性を検出することを
引起す。バス検出器80が共通バス18の可用性を検出
する前にもし記憶160および62にストアされた第1
および第2の制御ビットの値が論理1の第1の組の予め
定められた値へと変化すると、プロセッサ12が共通バ
スを得ることができる前にそのロック命令を実行するた
めに別のプロセッサに共通バスが与えられるべきである
のでプロセッサ12は立ち往生しかつロック命令を実行
しないであろう。
0および62にストアされかつロックバッファ30の記
憶位置70および72にストアされた第1および第2の
制御ビットは論理0の第2の組の予め定められた値を有
する。プロセッサ12がロック命令をそのロックバッフ
ァ28へと運ぶとき、記憶位置60および62にストア
された第1および第2の制御ビットの双方が論理0であ
るのでプロセッサ12がロック命令の実行を始めること
を許容するであろう。プロセッサ12はそれからそのバ
ス検出器80が共通バス18の可用性を検出することを
引起す。バス検出器80が共通バス18の可用性を検出
する前にもし記憶160および62にストアされた第1
および第2の制御ビットの値が論理1の第1の組の予め
定められた値へと変化すると、プロセッサ12が共通バ
スを得ることができる前にそのロック命令を実行するた
めに別のプロセッサに共通バスが与えられるべきである
のでプロセッサ12は立ち往生しかつロック命令を実行
しないであろう。
【0031】記憶位置60および62にストアされた第
1および第2の制御ビットの値が論理1の第1の組の予
め定められた値へと変化する前にもしバス検出器80が
共通バス18の可用性を検出すると、プロセッサ12に
はそれから方向性バス40を介してそのロックバッファ
28によって共通バス18が与えられる。プロセッサ1
2はそれからロックバッファ28が第1および第2の制
御ビットの第1の組の予め定められた値を処理システム
の他のプロセッサに相関のロックバッファへと書込むこ
とを引起す。この状態は図4に示され、ここでプロセッ
サ12はロックバッファ30の記憶位置70および72
に論理1の第1および第2の制御ビットのための第1の
組の予め定められた値を書込んだ。それと同時に、プロ
セッサ12は記憶位置60および62でのそのロックバ
ッファ28へと第1および第2の制御ビットのための第
3の組の値を書込み、ここで第3の組の値は記憶位置6
0にストアされた第1の制御ビットのための論理1およ
び記憶位置62にストアされた第2の制御ビットのため
の論理0である。
1および第2の制御ビットの値が論理1の第1の組の予
め定められた値へと変化する前にもしバス検出器80が
共通バス18の可用性を検出すると、プロセッサ12に
はそれから方向性バス40を介してそのロックバッファ
28によって共通バス18が与えられる。プロセッサ1
2はそれからロックバッファ28が第1および第2の制
御ビットの第1の組の予め定められた値を処理システム
の他のプロセッサに相関のロックバッファへと書込むこ
とを引起す。この状態は図4に示され、ここでプロセッ
サ12はロックバッファ30の記憶位置70および72
に論理1の第1および第2の制御ビットのための第1の
組の予め定められた値を書込んだ。それと同時に、プロ
セッサ12は記憶位置60および62でのそのロックバ
ッファ28へと第1および第2の制御ビットのための第
3の組の値を書込み、ここで第3の組の値は記憶位置6
0にストアされた第1の制御ビットのための論理1およ
び記憶位置62にストアされた第2の制御ビットのため
の論理0である。
【0032】図4に示されたように条件付けられたロッ
クバッファ28および30で、プロセッサ12がそのク
リティカルセクションを処理している時間の間、プロセ
ッサ14はそのロックバッファ30によってユーザロッ
クスペースへとアクセスする命令を実行することを妨げ
られ,それは記憶位置70および72にストアされた第
1および第2の制御ビットが論理1の第1の組の値を有
するからである。プロセッサ12はそのロックバッファ
28によってそのクリティカルセクションを実行するこ
とを許容され、それはそのロックバッファが論理1の記
憶位置60にストアされた第1の制御ビットおよび論理
0のその記憶位置62にストアされた第2の制御ビット
を含むからである。このことはロックバッファ28に対
してそのプロセッサがユーザロックスペース114の電
流オーナでありかつすべての他のプロセッサがこのスペ
ースにアクセスする命令を実行することからロックアウ
トされるということを示す。
クバッファ28および30で、プロセッサ12がそのク
リティカルセクションを処理している時間の間、プロセ
ッサ14はそのロックバッファ30によってユーザロッ
クスペースへとアクセスする命令を実行することを妨げ
られ,それは記憶位置70および72にストアされた第
1および第2の制御ビットが論理1の第1の組の値を有
するからである。プロセッサ12はそのロックバッファ
28によってそのクリティカルセクションを実行するこ
とを許容され、それはそのロックバッファが論理1の記
憶位置60にストアされた第1の制御ビットおよび論理
0のその記憶位置62にストアされた第2の制御ビット
を含むからである。このことはロックバッファ28に対
してそのプロセッサがユーザロックスペース114の電
流オーナでありかつすべての他のプロセッサがこのスペ
ースにアクセスする命令を実行することからロックアウ
トされるということを示す。
【0033】たとえプロセッサ14がユーザロックスペ
ース114からロックアウトされるとしても、共通バス
18を介してユーザロックスペース114にアクセスし
ない命令を実行することをまだ許容される。特定的に
は、ユーザデータスペース112またはスーパバイザデ
ータスペース122にアクセスする命令(そのような命
令は150、152、180および182である)はそ
れらがロックバッファによって制御されないので処理す
ることを可能にされる。ユーザロックスペース114ま
たはスーパバイザロックスペース124にアクセスする
命令のみが(そのような命令は140、142、14
4、146、154、156、170、172、17
4、176、184および186である)ロックバッフ
ァによって制御される。これらの命令の中で、プロセッ
サ14はそのロックバッファによってユーザロックスペ
ースにアクセスする命令(そのような命令は140、1
42、144、146、154および156である)を
実行することを妨げられる。プロセッサ14は命令15
0、152、170、172、174、176、18
0、182、184および186を実行することが可能
である。結果として、たとえプロセッサが現在ユーザス
ペース102においてクリティカルセクションを実行し
ているとしても処理効率が維持され、それは共通バス1
8がユーザロックスペース114にアクセスしない命令
の実行のために他のプロセッサからロックアウトされな
いからである。
ース114からロックアウトされるとしても、共通バス
18を介してユーザロックスペース114にアクセスし
ない命令を実行することをまだ許容される。特定的に
は、ユーザデータスペース112またはスーパバイザデ
ータスペース122にアクセスする命令(そのような命
令は150、152、180および182である)はそ
れらがロックバッファによって制御されないので処理す
ることを可能にされる。ユーザロックスペース114ま
たはスーパバイザロックスペース124にアクセスする
命令のみが(そのような命令は140、142、14
4、146、154、156、170、172、17
4、176、184および186である)ロックバッフ
ァによって制御される。これらの命令の中で、プロセッ
サ14はそのロックバッファによってユーザロックスペ
ースにアクセスする命令(そのような命令は140、1
42、144、146、154および156である)を
実行することを妨げられる。プロセッサ14は命令15
0、152、170、172、174、176、18
0、182、184および186を実行することが可能
である。結果として、たとえプロセッサが現在ユーザス
ペース102においてクリティカルセクションを実行し
ているとしても処理効率が維持され、それは共通バス1
8がユーザロックスペース114にアクセスしない命令
の実行のために他のプロセッサからロックアウトされな
いからである。
【0034】プロセッサ12がそのクリティカルセクシ
ョンを完成するとき、それは他のプロセッサと相関のロ
ックバッファをアンロックするためにアンロック命令を
実行するであろう。プロセッサ12はそのアンロック命
令を実行する前にまずそのバス検出器80がバス18の
可用性を検出することを引起す。共通バスが利用可能に
なると、プロセッサ12はそのロックバッファ28が第
1および第2の制御ビットのための第2の組の値をすべ
ての他のプロセッサと相関のロックバッファへと書込む
ことを引起す。それと同時に、プロセッサ12は第1お
よび第2の制御ビットの第2の組の値をそれ自身のロッ
クバッファ28へと書込む。このことは再びロックバッ
ファを図3で示された状態へと置き、ここでプロセッサ
12は論理0がロックバッファ30の記憶位置70およ
び72に書込まれかつ論理0がその相関のロックバッフ
ァ28の記憶位置60および62に書込まれることを引
起した。
ョンを完成するとき、それは他のプロセッサと相関のロ
ックバッファをアンロックするためにアンロック命令を
実行するであろう。プロセッサ12はそのアンロック命
令を実行する前にまずそのバス検出器80がバス18の
可用性を検出することを引起す。共通バスが利用可能に
なると、プロセッサ12はそのロックバッファ28が第
1および第2の制御ビットのための第2の組の値をすべ
ての他のプロセッサと相関のロックバッファへと書込む
ことを引起す。それと同時に、プロセッサ12は第1お
よび第2の制御ビットの第2の組の値をそれ自身のロッ
クバッファ28へと書込む。このことは再びロックバッ
ファを図3で示された状態へと置き、ここでプロセッサ
12は論理0がロックバッファ30の記憶位置70およ
び72に書込まれかつ論理0がその相関のロックバッフ
ァ28の記憶位置60および62に書込まれることを引
起した。
【0035】もしプロセッサ12がそのクリティカルプ
ログラムセクションを実行する時間の間、プロセッサ1
4がクリティカルセクションに入りたかったとすれば、
それはそのロックバッファ30によって立ち往生させら
れたであろう。しかしながら、プロセッサ12がプロセ
ッサ14と相関のロックバッファ30をアンロックした
ので、プロセッサ14は今その相関のロックバッファ3
0によってプロセッサ12に関して上で説明された態様
でユーザスペース102においてクリティカルセクショ
ンを入力するためにそのロック命令を実行することを許
容され得る。プロセッサ14はまたクリティカルセクシ
ョンの一部ではなくユーザロックスペース114にアク
セスする命令を実行することが可能である。そのような
命令は154および156である。この好ましい実施例
に従って、各々の対のプロセッサおよびロックバッファ
は好ましくは単一集積回路内でともに統合される。しか
しながら、当該技術において当業者によって認められる
であろうように、ロックバッファはこの発明から逸脱す
ることなしにロックバッファはそれらの相関のプロセッ
サから別個に統合され得る。
ログラムセクションを実行する時間の間、プロセッサ1
4がクリティカルセクションに入りたかったとすれば、
それはそのロックバッファ30によって立ち往生させら
れたであろう。しかしながら、プロセッサ12がプロセ
ッサ14と相関のロックバッファ30をアンロックした
ので、プロセッサ14は今その相関のロックバッファ3
0によってプロセッサ12に関して上で説明された態様
でユーザスペース102においてクリティカルセクショ
ンを入力するためにそのロック命令を実行することを許
容され得る。プロセッサ14はまたクリティカルセクシ
ョンの一部ではなくユーザロックスペース114にアク
セスする命令を実行することが可能である。そのような
命令は154および156である。この好ましい実施例
に従って、各々の対のプロセッサおよびロックバッファ
は好ましくは単一集積回路内でともに統合される。しか
しながら、当該技術において当業者によって認められる
であろうように、ロックバッファはこの発明から逸脱す
ることなしにロックバッファはそれらの相関のプロセッ
サから別個に統合され得る。
【0036】前述のことから、この発明が新しくかつ改
良された処理システムを提供し、それがそのプロセッサ
によってクリティカルセクションへのアクセスを制御す
るために競合調整されるということが理解され得る。ク
リティカルセクションの入力はバスをロックすることな
しに許容され、そのためプロセッサがユーザ(またはス
ーパバイザ)スペースにおいてクリティカルセクション
を実行するとき、すべての他のプロセッサがユーザ(ま
たはスーパバイザ)ロックスペースにアクセスしないプ
ログラム命令を自由に実行する。さらに、ユーザロック
スペースへの排他的なアクセス(それをロックすること
によって)をユーザスペースにおいてプログラム命令を
実行するプロセッサへと与えることが他のプロセッサが
ユーザロックスペースにアクセスしないプログラム命令
を実行することを妨げないので、この発明の処理システ
ムはいずれの制限もなしに競合調整をユーザスペースに
おいてプログラム命令を実行するプロセッサへと与え
る。
良された処理システムを提供し、それがそのプロセッサ
によってクリティカルセクションへのアクセスを制御す
るために競合調整されるということが理解され得る。ク
リティカルセクションの入力はバスをロックすることな
しに許容され、そのためプロセッサがユーザ(またはス
ーパバイザ)スペースにおいてクリティカルセクション
を実行するとき、すべての他のプロセッサがユーザ(ま
たはスーパバイザ)ロックスペースにアクセスしないプ
ログラム命令を自由に実行する。さらに、ユーザロック
スペースへの排他的なアクセス(それをロックすること
によって)をユーザスペースにおいてプログラム命令を
実行するプロセッサへと与えることが他のプロセッサが
ユーザロックスペースにアクセスしないプログラム命令
を実行することを妨げないので、この発明の処理システ
ムはいずれの制限もなしに競合調整をユーザスペースに
おいてプログラム命令を実行するプロセッサへと与え
る。
【0037】この発明の特定的な実施例が示されかつ説
明されてきたが、修正がなされ得、したがって前掲の特
許請求の範囲においてこの発明の真意および範囲内のす
べてのそのような変更および修正を包含することが意図
される。
明されてきたが、修正がなされ得、したがって前掲の特
許請求の範囲においてこの発明の真意および範囲内のす
べてのそのような変更および修正を包含することが意図
される。
【図1】この発明を実施する競合調整された処理システ
ムを示すブロック図である。
ムを示すブロック図である。
【図2】この発明に従う図1の処理システムにおいて利
用され得る共用メモリを示す図である。
用され得る共用メモリを示す図である。
【図3】プロセッサのうちの1つによってクリティカル
セクションに入る前の図1の処理システムのロックバッ
ファの状態を示すブロック図である。
セクションに入る前の図1の処理システムのロックバッ
ファの状態を示すブロック図である。
【図4】プロセッサがクリティカルセクションに入った
後の図1の処理システムのロックバッファの状態を示す
ブロック図である。
後の図1の処理システムのロックバッファの状態を示す
ブロック図である。
12 プロセッサ 14 プロセッサ 16 共用メモリ 18 共通バス 28 ロックバッファ 44 双方向性バス
Claims (35)
- 【請求項1】 クリティカルセクションおよび非クリテ
ィカルセクションのプログラム命令を含むプログラム命
令を実行するための複数個のプロセッサを含む型の処理
システムであって、前記クリティカルセクションのプロ
グラム命令の実行は一度に前記プロセッサのうちの1つ
による排他的な実行を必要とし、前記処理システムは1
つの前記プロセッサのみが一度に前記クリティカルセク
ションを実行することを許容するように配置され、 前記プロセッサにプログラム命令およびデータオペラン
ドを与えるためのメモリ手段を含み、前記メモリ手段は
前記クリティカルセクションのプログラム命令をストア
するためのクリティカルセクション命令スペースと、前
記非クリティカルセクションのプログラム命令をストア
するための非クリティカルセクション命令スペースと、
前記非クリティカルセクションにおける命令のデータオ
ペランドをストアするためのデータスペースと、前記ク
リティカルセクションにおける命令のデータオペランド
をストアするためのロックスペースとを含み、 前記プロセッサをともにかつ前記メモリ手段へと結合さ
せる共通バスと、 各々の前記プロセッサと相関のロックバッファ手段とを
含み、各々の前記ロックバッファ手段は第1および第2
の制御ビットをストアするための第1および第2の記憶
位置を含み、各々の前記ロックバッファ手段は第1の組
の予め定められた値を有する前記第1および第2の制御
ビットに応答し、その相関のプロセッサが前記ロックス
ペースにストアされたデータオペランドを必要とするプ
ログラム命令のみを実行することをできなくするための
処理システム。 - 【請求項2】 第2の組の予め定められた値を有する前
記第1および第2の制御ビットに応答し、その相関のプ
ロセッサが前記メモリ手段の前記ロックスペースにスト
アされたデータオペランドを必要とするプログラム命令
を実行することを許容するための、請求項1に記載の処
理システム。 - 【請求項3】 各々の前記プロセッサが前記メモリ手段
の前記クリティカルセクション命令スペースからロック
命令を実行するように配置され、それが前記クリティカ
ルセクション命令スペースから前記クリティカルセクシ
ョンを入力する前に前記共通バスを介して前記第1およ
び第2の制御ビットの前記第1の組の予め定められた値
を他の前記プロセッサと相関の各々の前記ロックバッフ
ァ手段に書込むためのものである、請求項2に記載の処
理システム。 - 【請求項4】 各々の前記プロセッサが前記ロック命令
を実行する間に前記第1および第2の制御ビットの第3
の組の予め定められた値をその相関のロックバッファ手
段へと書込む、請求項3に記載の処理システム。 - 【請求項5】 各々の前記プロセッサが前記共通バスの
可用性を検出するためのバス検出手段を含む、請求項4
に記載の処理システム。 - 【請求項6】 各々の前記プロセッサが前記ロック命令
を行なう前に前記共通バスが利用可能であるということ
を検出するその前記バス検出手段に応答する、請求項5
に記載の処理システム。 - 【請求項7】 各々の前記プロセッサがその相関のロッ
クバッファ手段にストアされた前記第1および第2の制
御ビットの前記値を監視するように配置され、一方でそ
の前記バス検出手段が前記共通バスの可用性を検出し、
ここで各々の前記プロセッサが前記ロック命令の実行を
中止するように配置され、それは前記バス検出手段が前
記共通バスが利用可能であるということを検出するより
も前にその相関のロックバッファ手段にストアされた前
記第1および第2の制御ビットの前記値が前記第1の組
の値へと変化したということを検出することに応答して
である、請求項6に記載の処理システム。 - 【請求項8】 各々の前記プロセッサが、前記共通バス
を介して前記第1および第2の制御ビットの前記第2の
組の予め定められた値を前記クリティカルセクション命
令スペースから前記クリティカルセクションを完成する
際に他の前記プロセッサと相関の前記ロックバッファ手
段へと書込むための前記メモリ手段の前記クリティカル
セクション命令スペースからアンロック命令を実行する
ように配置される、請求項7に記載の処理システム。 - 【請求項9】 前記アンロック命令を実行する間に各々
の前記プロセッサが前記第1および第2の制御ビットの
前記第2の組の予め定められた値をその相関のロックバ
ッファ手段へと書込むように配置される、請求項8に記
載の処理システム。 - 【請求項10】 各々の前記プロセッサが、前記アンロ
ック命令を実行する前に前記共通バスが利用可能である
ことを検出するその前記バス検出手段に応答する、請求
項9に記載の処理システム。 - 【請求項11】 前記第1の組の予め定められた値が論
理1である前記第1の制御ビットおよび論理1である前
記第2の制御ビットである、請求項10に記載の処理シ
ステム。 - 【請求項12】 前記第2の組の予め定められた値が論
理0である第1の制御ビットおよび論理0である前記第
2の制御ビットである、請求項11に記載の処理システ
ム。 - 【請求項13】 前記第3の組の予め定められた値が論
理1である前記第1の制御ビットおよび論理0である前
記第2の制御ビットである、請求項12に記載の処理シ
ステム。 - 【請求項14】 クリティカルセクションおよび非クリ
ティカルセクションのプログラム命令を含むプログラム
命令を実行するための複数個のプロセッサを含む型の処
理システムにおける使用のための方法であって、前記ク
リティカルセクションのプログラム命令の実行は一度に
前記プロセッサのうちの1つによる排他的な実行を必要
とし、前記方法は一度に1つの前記プロセッサのみが前
記クリティカルセクションを実行することを許容し、 そこにストアされた前記クリティカルセクションのプロ
グラム命令でのクリティカルセクション命令スペース
と、そこにストアされた前記非クリティカルセクション
のプログラム命令での非クリティカルセクション命令ス
ペースと、そこにストアされた前記非クリティカルセク
ション命令スペースにおける前記命令のデータオペラン
ドでのデータスペースと、そこにストアされた前記クリ
ティカルセクション命令スペースにおける前記命令のデ
ータオペランドでのロックスペースとを有するメモリ手
段を提供するステップと、 共通バスを提供するステップと、 前記プロセッサをともにかつ前記共通バスを介して前記
メモリ手段へと結合させるステップと、 各々の前記プロセッサと相関のロックバッファ手段を提
供するステップとを含み、各々の前記ロックバッファ手
段は第1および第2の制御ビットをストアするための第
1および第2の記憶位置を含み、 もしその相関のロックバッファ手段にストアされた前記
第1および第2の制御ビットが第1の組の予め定められ
た値を有すると、プロセッサが前記ロックスペースにス
トアされたデータオペランドを必要とするプログラム命
令のみを実行することをできなくするステップと、 もしその相関のロックバッファ手段にストアされた前記
第1および第2の制御ビットが第2の組の予め定められ
た値を有すると、プロセッサが前記ロックスペースにス
トアされたデータオペランドを必要とするプログラム命
令を実行することを可能にするステップとを含む方法。 - 【請求項15】 前記プロセッサのうちの1つによって
前記クリティカルセクション命令スペースからロック命
令を実行するステップをさらに含み、それが前記共通バ
スを介して前記1つのプロセッサから前記第1および第
2の制御ビットの前記第1の組の予め定められた値を他
の前記プロセッサと相関の各々の前記ロックバッファ手
段へと書込み、それによってクリティカルセクションを
前記クリティカルセクション命令スペースへと入力す
る、請求項14に記載の方法。 - 【請求項16】 前記ロック命令を実行する間に前記1
つのプロセッサからの前記第1および第2の制御ビット
の第3の組の予め定められた値をその相関のックバッフ
ァ手段へと書込むステップをさらに含む、請求項15に
記載の方法。 - 【請求項17】 前記ロック命令を実行する前に前記共
通バスが利用可能であるということを検出するステップ
をさらに含む、請求項16に記載の方法。 - 【請求項18】 前記1つのプロセッサと相関の前記ロ
ックバッファ手段にストアされた前記第1および第2の
制御ビットの前記値を監視し、一方で前記共通バスの可
用性を検出しかつもし前記共通バスが利用可能であると
いうことを検出するよりも前に前記第1および第2の制
御ビットが前記第1の組の値へと変化すると、前記ロッ
ク命令の実行を終了させるステップをさらに含む、請求
項17に記載の方法。 - 【請求項19】 前記1つのプロセッサによって前記ク
リティカルセクション命令スペースからアンロック命令
を実行するステップをさらに含み、それが前記1つのプ
ロセッサから前記共通バスを介して前記第1および第2
の制御ビットの前記第2の組の予め定められた値を他の
前記プロセッサと相関の前記ロックバッファ手段へと前
記クリティカルセクション命令スペースにおいて前記ク
リティカルセクションを完成する際に書込むことによっ
てである、請求項18に記載の方法。 - 【請求項20】 前記アンロック命令を実行する間に前
記1つのプロセッサからの前記第1および第2の制御ビ
ットの前記第2の組の予め定められた値をその相関のロ
ックバッファ手段へと書込むステップをさらに含む、請
求項19に記載の方法。 - 【請求項21】 前記アンロック命令を実行する前に前
記共通バスが利用可能であることを検出するステップを
さらに含む、請求項20に記載の方法。 - 【請求項22】 前記第1の組の予め定められた値が論
理1である前記第1の制御ビットおよび論理1である前
記第2の制御ビットである、請求項21に記載の方法。 - 【請求項23】 前記第2の組の予め定められた値が論
理0である前記第1の制御ビットおよび論理0である前
記第2の制御ビットである、請求項22に記載の方法。 - 【請求項24】 前記第3の組の予め定められた値が論
理1である前記第1の制御ビットおよび論理0である前
記第2の制御ビットである、請求項23に記載の方法。 - 【請求項25】 クリティカルセクションおよび非クリ
ティカルセクションのプログラム命令を含むプログラム
命令を実行するための複数個のプロセッサを含む型の処
理システムであって、前記処理システムは1つの前記プ
ロセッサのみが一度に前記クリティカルセクションを実
行することを許容するように配置され、 前記プロセッサにプログラム命令およびデータオペラン
ドを与えるためのメモリ手段を含み、前記メモリ手段は
前記非クリティカルセクションにおける命令のデータオ
ペランドをストアするためのデータスペースと、前記ク
リティカルセクションにおける命令のデータオペランド
をストアするためのロックスペースとを含み、 前記プロセッサをともにかつ前記メモリ手段へと結合さ
せる共通バスと、 各々の前記プロセッサと相関のロックバッファ手段とを
含み、各々の前記ロックバッファ手段は前記クリティカ
ルセクションを実行する前記ロックバッファの別のもの
と相関のプロセッサに応答し、その相関のプロセッサが
前記ロックスペースにアクセスする命令のみを実行する
ことをできなくするためにその相関のプロセッサから前
記ロックスペースをロックするためのものである処理シ
ステム。 - 【請求項26】 前記ロックバッファの各々は第1およ
び第2の制御ビットをストアするための第1および第2
の記憶位置を含み、各々の前記ロックバッファ手段は第
1の組の予め定められた値を有する前記第1および第2
の制御ビットに応答し、その相関のプロセッサが前記ロ
ックスペースにアクセスする命令を実行することをでき
なくするためにその相関のプロセッサから前記ロックス
ペースをロックするためのものである、請求項25に記
載の処理システム。 - 【請求項27】 各々の前記ロックバッファ手段が第2
の組の予め定められた値を有する前記第1および第2の
制御ビットに応答し前記ロックスペースをアンロックし
かつその相関のプロセッサが前記ロックスペースにアク
セスする命令を実行することを許容するためのものであ
る、請求項26に記載の処理システム。 - 【請求項28】 各々の前記プロセッサが前記クリティ
カルセクションを入力する前に前記第1および第2の制
御ビットの前記第1の組の予め定められた値を前記共通
バスを介して他の前記プロセッサと相関の各々の前記ロ
ックバッファ手段へと書込むためにロック命令を実行す
るように配置される、請求項27に記載の処理システ
ム。 - 【請求項29】 各々の前記プロセッサが前記ロック命
令を実行する間に前記第1および第2の制御ビットの第
3の組の予め定められた値をその相関のロックバッファ
手段へと書込むように配置される、請求項28に記載の
処理システム。 - 【請求項30】 各々の前記プロセッサが前記共通バス
の可用性を検出するためのバス検出手段を含む、請求項
29に記載の処理システム。 - 【請求項31】 各々の前記プロセッサが前記ロック命
令を実行する前に前記共通バスが利用可能であることを
検出するその前記バス検出手段に応答する、請求項30
に記載の処理システム。 - 【請求項32】 各々の前記プロセッサがその相関のロ
ックバッファ手段にストアされた前記第1および第2の
制御ビットの前記値を監視するように配置され、一方で
その前記バス検出手段が前記共通バスの可用性を検出
し、各々の前記プロセッサは前記バス検出手段が前記共
通バスが利用可能であるということを検出する前にその
相関のロックバッファ手段にストアされた前記第1およ
び第2の制御ビットの前記値が前記第1の組の値へと変
化したということの検出に応答して前記ロック命令の実
行を中止するように配置される、請求項31に記載の処
理システム。 - 【請求項33】 各々の前記プロセッサが前記共通バス
を介して前記第1および第2の制御ビットの前記第2の
組の予め定められた値を前記クリティカルセクションを
完成する際に他の前記プロセッサと相関の前記ロックバ
ッファ手段へと書込むためにアンロック命令を実行する
ように配置される、請求項27に記載の処理システム。 - 【請求項34】 各々の前記プロセッサが前記第1およ
び第2の制御ビットの前記第2の組の予め定められた値
を前記アンロック命令を実行する間にその相関のロック
バッファ手段へと書込むように配置される、請求項33
に記載の処理システム。 - 【請求項35】 各々の前記プロセッサが前記共通バス
の可用性を検出するためのバス検出手段を含みかつ前記
アンロック命令を実行する前に前記共通バスが利用可能
であるということを検出するその前記バス検出手段に応
答する、請求項34に記載の処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US717036 | 1985-03-28 | ||
| US07/717,036 US5321825A (en) | 1991-06-18 | 1991-06-18 | Processing system with lock spaces for providing critical section access |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05242046A true JPH05242046A (ja) | 1993-09-21 |
Family
ID=24880450
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4157827A Withdrawn JPH05242046A (ja) | 1991-06-18 | 1992-06-17 | 処理システム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5321825A (ja) |
| EP (1) | EP0519599B1 (ja) |
| JP (1) | JPH05242046A (ja) |
| AT (1) | ATE175506T1 (ja) |
| DE (1) | DE69228090T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08314869A (ja) * | 1995-05-23 | 1996-11-29 | Kofu Nippon Denki Kk | 情報処理装置 |
| WO2011096163A1 (ja) * | 2010-02-03 | 2011-08-11 | 日本電気株式会社 | 情報処理システム、排他制御方法および排他制御用プログラム |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5423008A (en) * | 1992-08-03 | 1995-06-06 | Silicon Graphics, Inc. | Apparatus and method for detecting the activities of a plurality of processors on a shared bus |
| DE59408657D1 (de) * | 1993-06-30 | 1999-09-30 | Anton Gunzinger | Intelligentes kommunikations-system |
| JPH07262140A (ja) * | 1994-03-16 | 1995-10-13 | Nec Corp | 排他制御装置 |
| US5613139A (en) * | 1994-05-11 | 1997-03-18 | International Business Machines Corporation | Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message |
| US5564040A (en) * | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
| US5542044A (en) * | 1994-12-12 | 1996-07-30 | Pope; Shawn P. | Security device for a computer, and methods of constructing and utilizing same |
| US5754827A (en) * | 1995-10-13 | 1998-05-19 | Mentor Graphics Corporation | Method and apparatus for performing fully visible tracing of an emulation |
| US5968157A (en) * | 1997-01-23 | 1999-10-19 | Sun Microsystems, Inc. | Locking of computer resources |
| US5928334A (en) * | 1997-03-28 | 1999-07-27 | International Business Machines Corporation | Hardware verification tool for multiprocessors |
| US5987550A (en) * | 1997-06-30 | 1999-11-16 | Emc Corporation | Lock mechanism for shared resources in a data processing system |
| US6076126A (en) * | 1997-06-30 | 2000-06-13 | Emc Corporation | Software locking mechanism for locking shared resources in a data processing system |
| US6253224B1 (en) | 1998-03-24 | 2001-06-26 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
| US6681238B1 (en) | 1998-03-24 | 2004-01-20 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
| US6230230B1 (en) * | 1998-12-03 | 2001-05-08 | Sun Microsystems, Inc. | Elimination of traps and atomics in thread synchronization |
| US6516403B1 (en) * | 1999-04-28 | 2003-02-04 | Nec Corporation | System for synchronizing use of critical sections by multiple processors using the corresponding flag bits in the communication registers and access control register |
| US6615324B1 (en) * | 2000-01-07 | 2003-09-02 | Cygnal Integrated Products, Inc. | Embedded microprocessor multi-level security system in flash memory |
| US7133978B1 (en) * | 2003-06-19 | 2006-11-07 | Xilinx, Inc. | Method and apparatus for processing data stored in a memory shared among a plurality of processors |
| WO2007096372A1 (en) * | 2006-02-21 | 2007-08-30 | Mentor Graphics Corporation | Memory tracing in an emulation environment |
| KR101610828B1 (ko) * | 2009-09-23 | 2016-04-08 | 삼성전자주식회사 | 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법 |
| JP6036692B2 (ja) * | 2011-07-29 | 2016-11-30 | 日本電気株式会社 | 情報処理装置、情報処理システム、情報処理方法および制御プログラム記録媒体 |
| TWI650648B (zh) * | 2018-02-09 | 2019-02-11 | 慧榮科技股份有限公司 | 系統晶片及存取系統晶片中記憶體的方法 |
| US20250307052A1 (en) * | 2024-03-26 | 2025-10-02 | Advanced Micro Devices, Inc. | Shared memory freedom from interference system |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4558411A (en) * | 1969-05-19 | 1985-12-10 | Burroughs Corp. | Polymorphic programmable units employing plural levels of sub-instruction sets |
| US3820079A (en) * | 1971-11-01 | 1974-06-25 | Hewlett Packard Co | Bus oriented,modular,multiprocessing computer |
| FR2474200B1 (fr) * | 1980-01-22 | 1986-05-16 | Bull Sa | Procede et dispositif d'arbitrage des conflits d'acces entre une requete asynchrone et un programme en section critique |
| JP2539352B2 (ja) * | 1984-06-20 | 1996-10-02 | 株式会社日立製作所 | 階層型多重計算機システム |
| 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 |
-
1991
- 1991-06-18 US US07/717,036 patent/US5321825A/en not_active Expired - Fee Related
-
1992
- 1992-05-13 AT AT92304309T patent/ATE175506T1/de not_active IP Right Cessation
- 1992-05-13 DE DE69228090T patent/DE69228090T2/de not_active Expired - Fee Related
- 1992-05-13 EP EP92304309A patent/EP0519599B1/en not_active Expired - Lifetime
- 1992-06-17 JP JP4157827A patent/JPH05242046A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08314869A (ja) * | 1995-05-23 | 1996-11-29 | Kofu Nippon Denki Kk | 情報処理装置 |
| WO2011096163A1 (ja) * | 2010-02-03 | 2011-08-11 | 日本電気株式会社 | 情報処理システム、排他制御方法および排他制御用プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US5321825A (en) | 1994-06-14 |
| EP0519599A2 (en) | 1992-12-23 |
| EP0519599B1 (en) | 1999-01-07 |
| ATE175506T1 (de) | 1999-01-15 |
| EP0519599A3 (en) | 1993-09-08 |
| DE69228090D1 (de) | 1999-02-18 |
| DE69228090T2 (de) | 1999-08-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH05242046A (ja) | 処理システム | |
| US5579505A (en) | Memory access system and method for granting or preventing atomic or nonatomic memory access requests to shared memory regions | |
| JP3206914B2 (ja) | 多重プロセッサ・システム | |
| US6754859B2 (en) | Computer processor read/alter/rewrite optimization cache invalidate signals | |
| US5442755A (en) | Multi-processor system with lock address register in each processor for storing lock address sent to bus by another processor | |
| KR19980086609A (ko) | 동시적인 프로세서 요구에 의한 데이터 자원의 액세싱을 직렬화하기 위한 컴퓨터 시스템내에서의 블로킹 심볼 제어 | |
| JP2539352B2 (ja) | 階層型多重計算機システム | |
| US5696939A (en) | Apparatus and method using a semaphore buffer for semaphore instructions | |
| US5163143A (en) | Enhanced locked bus cycle control in a cache memory computer system | |
| EP0230350B1 (en) | Protection of data in a multiprogramming data processing system | |
| US7096472B2 (en) | Systems and methods for ensuring atomicity of processes in a multitasking computing environment | |
| US5900018A (en) | Processor-implemented method of controlling data access to shared resource via exclusive access control write-cache | |
| JP2002202960A (ja) | データ処理方法および装置 | |
| EP0297895B1 (en) | Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system | |
| JP2504323B2 (ja) | システムバス制御方法 | |
| JPS6346466B2 (ja) | ||
| JPS6227837A (ja) | 主記憶アクセス方式 | |
| JPH02100755A (ja) | 情報処理装置 | |
| JPS5922155A (ja) | マルチ・プロセツサ・システムの排他制御方法 | |
| KR20240135928A (ko) | 다중 운영 체제를 구비한 시스템 | |
| JPH04343143A (ja) | マルチプロセッサシステムにおける共有資源相互排除方式 | |
| JPH0217563A (ja) | 共有メモリの初期化方法 | |
| JPH09146838A (ja) | キャッシュ制御方法及びキャッシュ制御装置 | |
| JPH02116951A (ja) | 情報処理システム | |
| JPH02116949A (ja) | 情報処理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990831 |