JP3054775B2 - コンピュータシステム、および多重プロセッサシステム最小単位動作の実行方法 - Google Patents
コンピュータシステム、および多重プロセッサシステム最小単位動作の実行方法Info
- Publication number
- JP3054775B2 JP3054775B2 JP1278318A JP27831889A JP3054775B2 JP 3054775 B2 JP3054775 B2 JP 3054775B2 JP 1278318 A JP1278318 A JP 1278318A JP 27831889 A JP27831889 A JP 27831889A JP 3054775 B2 JP3054775 B2 JP 3054775B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- lock
- processor
- control
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/374—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 <発明の分野> 本発明は、選定された動作の期間中、アクセスを防止
するシステム制御ロックを有する多重プロセッサ計算装
置に関する。
するシステム制御ロックを有する多重プロセッサ計算装
置に関する。
<発明の背景> 多重プロセッサシステムは、一時に1個のプロセス/
プロセッサ対に、中断されてはいけない選定された動作
(最小単位動作という)期間中に、保護資源への排他的
アクセスを付与する方法を必要とする。この基本的な概
念に基づいて、さらに、極めて複雑なプロセス間制御お
よび通信メカニズムを組立てることができる。最も典型
的には、保護資源は、例えば、プロセス制御ブロックま
たは同期セマフォーもしくは待ち行列のようなメモリデ
ータ構造であろう。
プロセッサ対に、中断されてはいけない選定された動作
(最小単位動作という)期間中に、保護資源への排他的
アクセスを付与する方法を必要とする。この基本的な概
念に基づいて、さらに、極めて複雑なプロセス間制御お
よび通信メカニズムを組立てることができる。最も典型
的には、保護資源は、例えば、プロセス制御ブロックま
たは同期セマフォーもしくは待ち行列のようなメモリデ
ータ構造であろう。
コンピュータ命令セット中の上記のような設備を支持
する最も普通の手法は、一方が他方に基づいて条件付け
られる2個の不可分の動作を有するように1個以上の命
令を定義付けることである。モトローラ68020命令セッ
トの「検査およびセット」命令および「比較および交
換」命令は、この型の手法の典型である。これらは、例
えば、リスト項目「エンキュー」またはプロセス「通
報」のようなさらに能力のある複数の基本の他の層が直
ちに追加されなければならないほど、極めて基本的な動
作である。縮小命令セットコンピュータ(RISC)プロセ
ッサの文脈においては、この型の基本が典型的には多重
サイクルであり実現するにはかなり面倒であるという他
の重要な不利益が存在する。
する最も普通の手法は、一方が他方に基づいて条件付け
られる2個の不可分の動作を有するように1個以上の命
令を定義付けることである。モトローラ68020命令セッ
トの「検査およびセット」命令および「比較および交
換」命令は、この型の手法の典型である。これらは、例
えば、リスト項目「エンキュー」またはプロセス「通
報」のようなさらに能力のある複数の基本の他の層が直
ちに追加されなければならないほど、極めて基本的な動
作である。縮小命令セットコンピュータ(RISC)プロセ
ッサの文脈においては、この型の基本が典型的には多重
サイクルであり実現するにはかなり面倒であるという他
の重要な不利益が存在する。
<発明の要約> 最小単位動作は、一連の命令によって具体化されてい
る。命令シーケンスが完成することを保証するために、
メモリサブシステムおよびバスは、3個の特別動作、す
なわち、ロードロック、格納ロックおよびロードアンロ
ックをする。3個の動作は、全て、メモリアドレスを受
け、単純な命令に直接対応する。第4の命令、すなわ
ち、探査も備わっている。ロックが保持されている間、
専断的読込み、および、書込み動作は、表明された特別
のロックによってバスを制御する一のプロセッサによっ
ていずれの物理的記憶場所に対しても許される。特に、
コードシーケンスは、自動的に複数の記憶場所を一斉に
更新する(例えば、待ち行列からの項目を追加し、また
は、除去する)ことができる。
る。命令シーケンスが完成することを保証するために、
メモリサブシステムおよびバスは、3個の特別動作、す
なわち、ロードロック、格納ロックおよびロードアンロ
ックをする。3個の動作は、全て、メモリアドレスを受
け、単純な命令に直接対応する。第4の命令、すなわ
ち、探査も備わっている。ロックが保持されている間、
専断的読込み、および、書込み動作は、表明された特別
のロックによってバスを制御する一のプロセッサによっ
ていずれの物理的記憶場所に対しても許される。特に、
コードシーケンスは、自動的に複数の記憶場所を一斉に
更新する(例えば、待ち行列からの項目を追加し、また
は、除去する)ことができる。
<実施例> 本発明を適用した、複数個のプロセッサを有する代表
的多重プロセッサシステムが第1図のブロック線図とし
て示されている。本発明に関係する、プロセッサ52,54
および56中の素子は、実質的に同一であり、プロセッサ
52,54および56を共通バスに接続することに関係する。
バス58は、アドレスおよびデータライン60、バス要求ラ
イン62、バス付与ライン64、および多重プロセッサシス
テムに見出される他の信号路を有する。本発明の第1の
特徴は、例えば、メモリ66のようなシステム資源へのプ
ロセッサ52,54および56のうち1個の通信に関係する。
しかし、他の実施例(図示せず)においては、上記のよ
うな確実な通信がプロセッサ間またはプロセッサと他の
システムハードウェアとの間に成立することを目指す。
的多重プロセッサシステムが第1図のブロック線図とし
て示されている。本発明に関係する、プロセッサ52,54
および56中の素子は、実質的に同一であり、プロセッサ
52,54および56を共通バスに接続することに関係する。
バス58は、アドレスおよびデータライン60、バス要求ラ
イン62、バス付与ライン64、および多重プロセッサシス
テムに見出される他の信号路を有する。本発明の第1の
特徴は、例えば、メモリ66のようなシステム資源へのプ
ロセッサ52,54および56のうち1個の通信に関係する。
しかし、他の実施例(図示せず)においては、上記のよ
うな確実な通信がプロセッサ間またはプロセッサと他の
システムハードウェアとの間に成立することを目指す。
本発明によれば、他のプロセッサによる割込み、また
は、時分割アクセスにより中断され得ない最小単位動作
として知られている一連の動作群が存在する。上記動作
群が1個のプロセッサ自体、または、分割されない通信
路に関係する場合には、最小単位動作は、バスロックを
要求しない。しかし、プロセッサ52とメモリ66との間の
転送によって例示されているように、メモリ66の保護部
分へのアクセスは、プロセッサ52に確保され制限されな
ければならない。プロセッサ52をトリガしてロックを生
じさせる命令は、典型的には、メモリロードロック命令
と、要求された素子(例えば、メモリ66)へのロックさ
れたアクセスが除去されるようにする、メモリ格納アン
ロック命令またはメモリロードアンロック命令のいずれ
か一方のうち少なくとも1個を含む。他の命令、すなわ
ち、メモリ探査命令は、データが特に指定された記憶場
所に書込まれることを除いて、全ての面でメモリ書込み
として機能する。メモリ探査命令は、アドレス指定され
た記憶場所が変更のため利用できるか否かを決定する基
準として機能する。メモリロックが特定の命令、例え
ば、メモリロードロック命令によって開始された場合、
プロセッサ52は、先のロック保持信号が存在したとすれ
ば、これをロック検出器76に判定させる。先のロック保
持信号が存在した場合には、プロセッサ52は、禁止され
る。先のロック保持信号が存在しなかった場合、プロセ
ッサ52は、当業者に公知の技術を含む裁定技術に従って
バス制御を裁定する。プロセッサがバスを駆動する権利
を確保した場合、ロック表明論理回路74は、より高い優
先順位を有するバス要求がロック表明論理回路74からの
ロック表明(ロック保持とも称する)信号の起動(プロ
セッサ52は、既にバス、従ってメモリ66へのアクセスを
妨げている)に基づいて他のプロセッサ54をメモリ66へ
のアクセスから排除するように、アドレス/データ転送
論理回路78が要求アドレスを駆動するのと同時にロック
信号を供給する。プロセッサ52は、バスロック状態を確
保した後、アドレス/データ転送論理回路78を起動し、
プロセッサ52とメモリ66との間のデータ転送を開始させ
る。最小単位動作が完了した時、バス表明信号は、除去
され、ロック状態は、終了する。多重プロセッサの相互
ロック方法および装置についての詳細な説明は、本願と
同時に米国出願され、発明の名称「多重プロセッサの相
互ロック」の米国特許出願APOLL−111××に開示されて
いる。第07/259,793号、バス裁定中、他の一のプロセッ
サがロック獲得に成功し、それを表明した場合、実施例
に示されているように、バス要求プロセッサは、バス要
求を中止する。通常、プロセッサがバスロックを獲得す
るまでバスロックを望む方向においては、前以っての表
示が何もない。しかし、他の一のプロセッサが既にバス
ロックを保持している場合には、このプロセッサは、他
方のプロセッサに対してロックの利益を知らせるべくロ
ック要求を表明するので、公平なアルゴリズムが実行さ
れ得る。
は、時分割アクセスにより中断され得ない最小単位動作
として知られている一連の動作群が存在する。上記動作
群が1個のプロセッサ自体、または、分割されない通信
路に関係する場合には、最小単位動作は、バスロックを
要求しない。しかし、プロセッサ52とメモリ66との間の
転送によって例示されているように、メモリ66の保護部
分へのアクセスは、プロセッサ52に確保され制限されな
ければならない。プロセッサ52をトリガしてロックを生
じさせる命令は、典型的には、メモリロードロック命令
と、要求された素子(例えば、メモリ66)へのロックさ
れたアクセスが除去されるようにする、メモリ格納アン
ロック命令またはメモリロードアンロック命令のいずれ
か一方のうち少なくとも1個を含む。他の命令、すなわ
ち、メモリ探査命令は、データが特に指定された記憶場
所に書込まれることを除いて、全ての面でメモリ書込み
として機能する。メモリ探査命令は、アドレス指定され
た記憶場所が変更のため利用できるか否かを決定する基
準として機能する。メモリロックが特定の命令、例え
ば、メモリロードロック命令によって開始された場合、
プロセッサ52は、先のロック保持信号が存在したとすれ
ば、これをロック検出器76に判定させる。先のロック保
持信号が存在した場合には、プロセッサ52は、禁止され
る。先のロック保持信号が存在しなかった場合、プロセ
ッサ52は、当業者に公知の技術を含む裁定技術に従って
バス制御を裁定する。プロセッサがバスを駆動する権利
を確保した場合、ロック表明論理回路74は、より高い優
先順位を有するバス要求がロック表明論理回路74からの
ロック表明(ロック保持とも称する)信号の起動(プロ
セッサ52は、既にバス、従ってメモリ66へのアクセスを
妨げている)に基づいて他のプロセッサ54をメモリ66へ
のアクセスから排除するように、アドレス/データ転送
論理回路78が要求アドレスを駆動するのと同時にロック
信号を供給する。プロセッサ52は、バスロック状態を確
保した後、アドレス/データ転送論理回路78を起動し、
プロセッサ52とメモリ66との間のデータ転送を開始させ
る。最小単位動作が完了した時、バス表明信号は、除去
され、ロック状態は、終了する。多重プロセッサの相互
ロック方法および装置についての詳細な説明は、本願と
同時に米国出願され、発明の名称「多重プロセッサの相
互ロック」の米国特許出願APOLL−111××に開示されて
いる。第07/259,793号、バス裁定中、他の一のプロセッ
サがロック獲得に成功し、それを表明した場合、実施例
に示されているように、バス要求プロセッサは、バス要
求を中止する。通常、プロセッサがバスロックを獲得す
るまでバスロックを望む方向においては、前以っての表
示が何もない。しかし、他の一のプロセッサが既にバス
ロックを保持している場合には、このプロセッサは、他
方のプロセッサに対してロックの利益を知らせるべくロ
ック要求を表明するので、公平なアルゴリズムが実行さ
れ得る。
第2図に示された二重連結リスト構造100は、リスト
ヘッド110に結合されたリスト要素L1、L2またはL3が挿
入された二重連結リスト100中の諸要素を結合する前向
きベクトル102および104と後向きベクトル106および108
との結合を含む。二重連結リスト100が空(すなわち、
要素がない)の場合には、リストヘッド110は、二重連
結リスト100の基準位置を供給し続ける。
ヘッド110に結合されたリスト要素L1、L2またはL3が挿
入された二重連結リスト100中の諸要素を結合する前向
きベクトル102および104と後向きベクトル106および108
との結合を含む。二重連結リスト100が空(すなわち、
要素がない)の場合には、リストヘッド110は、二重連
結リスト100の基準位置を供給し続ける。
例えば、要素L3のような1個の要素を含む最も基本的
なリストの作成は、第3図のフローチャート150に示さ
れたリスト作成動作に従って行われる。フローチャート
150は、前向きベクトル102〜108が確立する最小単位動
作を図示する。ロードロック命令160により、バスロッ
クが開始される。格納終了命令162または164により、バ
スは、プログラムシーケンスを再開する前にアンロック
される。
なリストの作成は、第3図のフローチャート150に示さ
れたリスト作成動作に従って行われる。フローチャート
150は、前向きベクトル102〜108が確立する最小単位動
作を図示する。ロードロック命令160により、バスロッ
クが開始される。格納終了命令162または164により、バ
スは、プログラムシーケンスを再開する前にアンロック
される。
複数のプロセッサ間で裁定およびロック獲得が生じる
のは、システムバスにおいてのみであるから、ロードロ
ックは、全てのデータキャッシングを無効とし、メモリ
に直接向かわなければならない。
のは、システムバスにおいてのみであるから、ロードロ
ックは、全てのデータキャッシングを無効とし、メモリ
に直接向かわなければならない。
ロックが未だ確保されていない場合には、ロックさ
れ、ロード完了が可能である。他の場合には、ロード
は、ロックが獲得できる時まで停止される。
れ、ロード完了が可能である。他の場合には、ロード
は、ロックが獲得できる時まで停止される。
格納アンロックまたはロードアンロックも、システム
バスを確保し、関連のメモリ動作の成功が確定するか、
または、失敗が確定するかのいずれかが保証された後に
のみ、キャッシュ(図示せず)をバイパスし、全てのロ
ックを解除しなければならない。キャッシュベースシス
テムの具体例においては、ロックが保持された間に生じ
たいずれのメモリ状態の変更も、ロックを確保するはず
の次のプロセッサに可視でなければならない。書切りキ
ャッシュシステムにおいては、この可視性は、アンロッ
ク動作に先立ってアンロック命令自体より前に命令によ
り記入された全ての読込み、または、書込みをアンロッ
ク動作により押出させることにより与えられる。また、
他のプロセッサのキャッシュ妥当性検査方法は、これら
のあふれ出た書込みがロック獲得に成功した時にロック
を獲得するはずのプロセッサによって最後まで観察され
ることを保証しなければならない。この保証は、ロード
ロックに保留中キャッシュ非妥当性を処理させることに
よってなされるか、または、ロードロック完了パイプラ
インの遅れに匹敵する局所的非妥当性処理パイプライン
の遅れに組込まれていてもよい。書直しキャッシュシス
テムを内臓する他の実施例においては、上記の保証をな
すための追加的負担が存在する。他のプロセッサに状態
変更を可視とする1の手法は、ロックが保持されている
間に、全ての記憶が書込データミスを起動させるべきで
ある。
バスを確保し、関連のメモリ動作の成功が確定するか、
または、失敗が確定するかのいずれかが保証された後に
のみ、キャッシュ(図示せず)をバイパスし、全てのロ
ックを解除しなければならない。キャッシュベースシス
テムの具体例においては、ロックが保持された間に生じ
たいずれのメモリ状態の変更も、ロックを確保するはず
の次のプロセッサに可視でなければならない。書切りキ
ャッシュシステムにおいては、この可視性は、アンロッ
ク動作に先立ってアンロック命令自体より前に命令によ
り記入された全ての読込み、または、書込みをアンロッ
ク動作により押出させることにより与えられる。また、
他のプロセッサのキャッシュ妥当性検査方法は、これら
のあふれ出た書込みがロック獲得に成功した時にロック
を獲得するはずのプロセッサによって最後まで観察され
ることを保証しなければならない。この保証は、ロード
ロックに保留中キャッシュ非妥当性を処理させることに
よってなされるか、または、ロードロック完了パイプラ
インの遅れに匹敵する局所的非妥当性処理パイプライン
の遅れに組込まれていてもよい。書直しキャッシュシス
テムを内臓する他の実施例においては、上記の保証をな
すための追加的負担が存在する。他のプロセッサに状態
変更を可視とする1の手法は、ロックが保持されている
間に、全ての記憶が書込データミスを起動させるべきで
ある。
ロック中断は、ロックされたコードシーケンスがうま
く進行しないことにより引起こされるシステムデットロ
ックを避けるために使用すべきである。本実施例におい
ては、ロックが中断されることなく保持される長さを監
視する、ロック保有プロセッサ中のロック継続タイマが
使用されている。タイマ値は、期待ロック保持期間に匹
敵する大きさの数にセットされる。タイマが終了した場
合には、ロックは、自動的に解除され、割込んだプロセ
ッサは、中断される。他のタイマ手法は、ロック要求プ
ロセスにロック獲得タイマを設けることである。このタ
イマ手法には、システム中のプロセッサの数に対して若
干大きな数のタイマ値、および一のプロセッサが他のプ
ロセッサの保有から強制的にロックを横奪する能力が必
要である。
く進行しないことにより引起こされるシステムデットロ
ックを避けるために使用すべきである。本実施例におい
ては、ロックが中断されることなく保持される長さを監
視する、ロック保有プロセッサ中のロック継続タイマが
使用されている。タイマ値は、期待ロック保持期間に匹
敵する大きさの数にセットされる。タイマが終了した場
合には、ロックは、自動的に解除され、割込んだプロセ
ッサは、中断される。他のタイマ手法は、ロック要求プ
ロセスにロック獲得タイマを設けることである。このタ
イマ手法には、システム中のプロセッサの数に対して若
干大きな数のタイマ値、および一のプロセッサが他のプ
ロセッサの保有から強制的にロックを横奪する能力が必
要である。
図示された単一ロックの実施例においては、第1ロッ
クが保持されている間に第2ロックを獲得する試みは、
プログラム例外となる。他の実施例には、ロック命令お
よびアンロック命令の適当なスタッキング、および、逐
次的プログラムフローが中断した場合、このスタックか
ら回復する能力を支持するハードウェアが設けられてい
る。
クが保持されている間に第2ロックを獲得する試みは、
プログラム例外となる。他の実施例には、ロック命令お
よびアンロック命令の適当なスタッキング、および、逐
次的プログラムフローが中断した場合、このスタックか
ら回復する能力を支持するハードウェアが設けられてい
る。
ロックされた命令列の有限進行を保証するために、命
令の実行と関係のない事象は、逐次的プログラムフロー
を中断するのを許されない。このため、割込み、およ
び、他の命令非同期例外は、ロックが保持されている
間、禁止される。
令の実行と関係のない事象は、逐次的プログラムフロー
を中断するのを許されない。このため、割込み、およ
び、他の命令非同期例外は、ロックが保持されている
間、禁止される。
プロセスがロックを保持している間に命令関連の例外
が生じた場合に、面倒な事態が生じる。例外処理につい
ては、1988年10月17日に米国出願され、発明の名称「命
令パイプラインの誤組合せが生じたパイプラインプロセ
ッサにおける例外処理方法および装置」の米国特許出願
第07/259,793号、APOLL−109××に更に詳しく記載され
ている。上記面倒な事態が発生するので、指定されたプ
ロセッサのレジスタは、相互ロックされたシーケンスが
完了しない場合、「再開点158」を含む(または、相互
ロックされたシーケンスの開始点に存在する帰点)とい
う約束が確立されている。プロセッサのハードウェア
は、典型的には、ロックが保持されている間に現時点の
例外が発生した場合に、これを表示する状態フラッグ
(図示せず)を備える。この状態フラッグは、ロードロ
ック命令に出会うとすぐにセットされ、アンロック命令
が完了するように保証された時にのみ除去される。状態
フラッグは、プロセッサのプログラム状態ワード中で利
用することができ、他の帰点を選定する例外処理ソフト
ウェアによって使用される。都合が良いように、ロック
が保持されている間にトリガされた例外は、自動的に関
連の一のロックまたは複数のロックを解除する。都合が
良いように、例外復帰シーケンスは、常に、ロック保持
プロセッサ状態を除去する。ロックされたコードシーケ
ンスは、実行されなければならない命令列にページサイ
ズ間隔で触れることにより、命令ページ欠陥が存在する
であろうことを確認することができる。典型的には、コ
ードシーケンスの最後で命令をロードすること以外は、
必要でない。ロックされたコードは、全てのデータに
「触れる」だけで、実行にロード命令を必要としない記
憶保護、違反または記憶ページ欠陥が全くないであろう
ことを確認することができる。この目的のため、命令セ
ットは、実際にメモリに書込むことなく書込みアクセス
特権およびアンダーラインページの有効性を確認する探
査命令(116A−F)を提供する。ロックされたコードシ
ーケンスは、該シーケンスが最初のものですら更新する
前に問合わせる全てのメモリの記憶場所を探査すべきで
ある。上述した以外の型式のほとんどの命令関連例外
は、ロックされたコードシーケンスにおいて生じるべき
でない。これらの命令関連例外が生じた場合には、プロ
セスは、回復できない。回復不能のロックされたコード
例外命令のこの型式の典型は、データ不整合および特権
命令の違反である。
が生じた場合に、面倒な事態が生じる。例外処理につい
ては、1988年10月17日に米国出願され、発明の名称「命
令パイプラインの誤組合せが生じたパイプラインプロセ
ッサにおける例外処理方法および装置」の米国特許出願
第07/259,793号、APOLL−109××に更に詳しく記載され
ている。上記面倒な事態が発生するので、指定されたプ
ロセッサのレジスタは、相互ロックされたシーケンスが
完了しない場合、「再開点158」を含む(または、相互
ロックされたシーケンスの開始点に存在する帰点)とい
う約束が確立されている。プロセッサのハードウェア
は、典型的には、ロックが保持されている間に現時点の
例外が発生した場合に、これを表示する状態フラッグ
(図示せず)を備える。この状態フラッグは、ロードロ
ック命令に出会うとすぐにセットされ、アンロック命令
が完了するように保証された時にのみ除去される。状態
フラッグは、プロセッサのプログラム状態ワード中で利
用することができ、他の帰点を選定する例外処理ソフト
ウェアによって使用される。都合が良いように、ロック
が保持されている間にトリガされた例外は、自動的に関
連の一のロックまたは複数のロックを解除する。都合が
良いように、例外復帰シーケンスは、常に、ロック保持
プロセッサ状態を除去する。ロックされたコードシーケ
ンスは、実行されなければならない命令列にページサイ
ズ間隔で触れることにより、命令ページ欠陥が存在する
であろうことを確認することができる。典型的には、コ
ードシーケンスの最後で命令をロードすること以外は、
必要でない。ロックされたコードは、全てのデータに
「触れる」だけで、実行にロード命令を必要としない記
憶保護、違反または記憶ページ欠陥が全くないであろう
ことを確認することができる。この目的のため、命令セ
ットは、実際にメモリに書込むことなく書込みアクセス
特権およびアンダーラインページの有効性を確認する探
査命令(116A−F)を提供する。ロックされたコードシ
ーケンスは、該シーケンスが最初のものですら更新する
前に問合わせる全てのメモリの記憶場所を探査すべきで
ある。上述した以外の型式のほとんどの命令関連例外
は、ロックされたコードシーケンスにおいて生じるべき
でない。これらの命令関連例外が生じた場合には、プロ
セスは、回復できない。回復不能のロックされたコード
例外命令のこの型式の典型は、データ不整合および特権
命令の違反である。
当業者による本発明の変形例および代替例は、本発明
の範囲に属するものと判断され、本発明は、特許請求の
範囲以外によって限定されるべきでない。
の範囲に属するものと判断され、本発明は、特許請求の
範囲以外によって限定されるべきでない。
第1図は、本発明を適用した多重プロセッサシステムの
ブロック線図である。第2図は、変更が最小単位動作に
関係する連結リスト構造のブロック線図である。第3図
は、第2図のソフトウェア構造の形式に従うロック命令
およびアンロック命令を有する代表的最小単位動作のフ
ローチャートである。
ブロック線図である。第2図は、変更が最小単位動作に
関係する連結リスト構造のブロック線図である。第3図
は、第2図のソフトウェア構造の形式に従うロック命令
およびアンロック命令を有する代表的最小単位動作のフ
ローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョージ・エム・スタブラー アメリカ合衆国 03060ニューハンプシ ャー州 ナサ、レイモンド・ストリート 43 (72)発明者 リチャード・ジー・バー アメリカ合衆国 02139マサチューセッ ツ州 ケンブリッジ、#3 ソダー・ス トリート 16 (72)発明者 ステフェン・ジェイ・シャバグリア アメリカ合衆国 03062ニューハンプシ ャー州 ナサ、マクドナルド・ドライブ 23 (72)発明者 バリー・ジェイ・フライブ アメリカ合衆国 01886マサチューセッ ツ州 ウエスト・フォード、パーカー・ サークル 2 (72)発明者 ヒュー・ラウヤー アメリカ合衆国 01742マサチューセッ ツ州 コンコード、ボーダー・ロード 69 (56)参考文献 特開 昭63−141160(JP,A) 特開 昭63−128460(JP,A) 特開 昭62−35960(JP,A) 英国公開2044499(GB,A) 欧州公開130593(EP,A2) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177
Claims (6)
- 【請求項1】制御信号路を含むデータバスと、 複数のプロセッサユニットとを備えるコンピュータシス
テムであって、 各プロセッサユニットは、 前記制御信号路に接続され、その上にバス要求信号を供
給するバス付与要求手段と、 前記制御信号路に接続され、その上に前記データバスの
制御を示すバスロック信号を供給するバス制御ロック表
明手段と、 前記バス要求信号および前記バスロック信号の少なくと
も1つに応答するバス制御ロック検出手段と、 前記データバス、前記バス付与要求手段、前記バス制御
ロック表明手段および前記バス制御ロック検出手段に接
続されたデータ転送手段とを有し、 前記バス要求信号は、データが前記データバスに供給さ
れる時に発生され、 前記データ転送手段は、1つのバスロック信号が前記バ
スロック検出手段によって検出された時に前記データバ
スへのデータの供給を禁止され、 前記プロセッサユニットは、さらに、 前記バス付与要求手段および前記バス制御ロック表明手
段に接続され、妨害されない命令のシーケンスである最
小単位プロセッサ動作期間中は、前記複数のプロセッサ
ユニットの1つによるバスの制御を獲得する、最小単位
プロセッサ動作に応答するための手段を含み、 前記最小単位プロセッサ動作は、他の1つのプロセッサ
ユニットによって供給される1つのバスロック信号の検
出により禁止されるコンピュータシステムにおいて、 前記最小単位プロセッサ動作が完了を失敗した場合に実
行される1つの命令に対するポインタをストアするよう
に動作するプロセッサレジスタを有する ことを特徴とするコンピュータシステム。 - 【請求項2】コンピュータシステムは、さらに、 前記複数のプロセッサユニットと選択的にデータをやり
取りするメモリ手段を有し、 前記命令のシーケンスは、メモリロードロック、メモリ
格納アンロック、メモリロードアンロック、およびメモ
リ探査の少なくとも1つを含む ことを特徴とする請求項1記載のコンピュータシステ
ム。 - 【請求項3】複数のプロセッサの1つにおいて、妨害さ
れない命令のシーケンスである最小単位動作の開始を識
別する工程と、 前記最小単位動作をなすプロセッサを含む前記複数のプ
ロセッサと前記最小単位動作のために必要なシステム資
源とを結合するバスの利用可能性を識別する工程と、 バス付与要求手段からバス要求信号を生成する工程と、 バス制御ロック検出手段から第1のバスロック信号を受
信する工程と、 前記第1のバスロック信号が無効である場合に、バス制
御ロック表明手段から第2のバスロック信号を生成する
工程と、 前記最小単位動作をなすプロセッサによる前記バスの制
御を獲得する工程と、 前記最小単位動作を実行する工程と、および 前記バスの制御を解除する工程と を備えることを特徴とする多重プロセッサシステム最小
単位動作の実行方法。 - 【請求項4】前記バスの制御を獲得する工程は、メモリ
ロードロック命令を実行する工程に応答し、そして 前記バスの制御を解除する工程は、メモリ格納アンロッ
クおよびメモリロードアンロック命令のうち1つを実行
する工程に応答する ことを特徴とする請求項3記載の方法。 - 【請求項5】例外検出により前記バスの制御に関係する
工程を更に含むことを特徴とする請求項4記載の方法。 - 【請求項6】特定の再開点において前記最小単位動作を
再開する工程を更に含むことを特徴とする請求項5記載
の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/262,495 US5175829A (en) | 1988-10-25 | 1988-10-25 | Method and apparatus for bus lock during atomic computer operations |
US262495 | 1988-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02224054A JPH02224054A (ja) | 1990-09-06 |
JP3054775B2 true JP3054775B2 (ja) | 2000-06-19 |
Family
ID=22997759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1278318A Expired - Fee Related JP3054775B2 (ja) | 1988-10-25 | 1989-10-25 | コンピュータシステム、および多重プロセッサシステム最小単位動作の実行方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5175829A (ja) |
EP (1) | EP0366432A3 (ja) |
JP (1) | JP3054775B2 (ja) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2642246B1 (fr) * | 1988-12-30 | 1991-04-05 | Cit Alcatel | Procede de deblocage d'un systeme multiprocesseurs multibus |
JPH0387958A (ja) * | 1989-06-30 | 1991-04-12 | Nec Corp | バスロツク制御方式 |
JP3206914B2 (ja) * | 1989-11-09 | 2001-09-10 | インターナショナル、ビジネス、マシーンズ、コーポレーション | 多重プロセッサ・システム |
JPH03210649A (ja) * | 1990-01-12 | 1991-09-13 | Fujitsu Ltd | マイクロコンピュータおよびそのバスサイクル制御方法 |
JP2665813B2 (ja) * | 1990-02-23 | 1997-10-22 | 三菱電機株式会社 | 記憶制御装置 |
US5452463A (en) * | 1990-05-25 | 1995-09-19 | Dell Usa, L.P. | Processor and cache controller interface lock jumper |
EP0507951B1 (en) * | 1990-09-18 | 1999-03-03 | Fujitsu Limited | Exclusive control method for shared memory |
JPH04306735A (ja) * | 1991-04-04 | 1992-10-29 | Toshiba Corp | 非同期割込み禁止機構 |
US5430860A (en) * | 1991-09-17 | 1995-07-04 | International Business Machines Inc. | Mechanism for efficiently releasing memory lock, after allowing completion of current atomic sequence |
US5283870A (en) * | 1991-10-04 | 1994-02-01 | Bull Hn Information Systems Inc. | Method and apparatus for avoiding processor deadly embrace in a multiprocessor system |
US5410695A (en) * | 1992-03-30 | 1995-04-25 | International Business Machines Corporation | Apparatus and method for list management in a coupled data processing system |
JP2500101B2 (ja) * | 1992-12-18 | 1996-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 共用変数の値を更新する方法 |
US5701501A (en) * | 1993-02-26 | 1997-12-23 | Intel Corporation | Apparatus and method for executing an atomic instruction |
DE4307139C2 (de) * | 1993-03-06 | 1997-02-13 | Ibm | Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System |
US5586274A (en) * | 1994-03-24 | 1996-12-17 | Hewlett-Packard Company | Atomic operation control scheme |
US5586289A (en) * | 1994-04-15 | 1996-12-17 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing local storage within a parallel processing computer |
JPH07302200A (ja) * | 1994-04-28 | 1995-11-14 | Hewlett Packard Co <Hp> | 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。 |
AU3143395A (en) * | 1994-07-21 | 1996-02-22 | Apple Computer, Inc. | Method for semaphore communication between incompatible bus locking architectures |
US5548780A (en) * | 1994-07-21 | 1996-08-20 | Apple Computer, Inc. | Method for semaphore communication between incompatible bus locking architectures |
US5867734A (en) * | 1994-11-21 | 1999-02-02 | Intel Corporation | Multiple-reader multiple-writer queue for a computer system |
US6073211A (en) * | 1994-12-13 | 2000-06-06 | International Business Machines Corporation | Method and system for memory updates within a multiprocessor data processing system |
US5560018A (en) * | 1994-12-16 | 1996-09-24 | International Business Machines Corporation | Providing external interrupt serialization compatibility in a multiprocessing environment for software written to run in a uniprocessor environment |
EP0825506B1 (en) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
US5909561A (en) * | 1997-04-14 | 1999-06-01 | International Business Machines Corporation | Apparatus and method for separately layering cache and architectural specific functions in different operational controllers to facilitate design extension |
US5937172A (en) * | 1997-04-14 | 1999-08-10 | International Business Machines Corporation | Apparatus and method of layering cache and architectural specific functions to permit generic interface definition |
US6061755A (en) * | 1997-04-14 | 2000-05-09 | International Business Machines Corporation | Method of layering cache and architectural specific functions to promote operation symmetry |
US5900018A (en) * | 1997-06-24 | 1999-05-04 | Sun Microsystems, Inc. | Processor-implemented method of controlling data access to shared resource via exclusive access control write-cache |
US6112282A (en) * | 1997-06-24 | 2000-08-29 | Sun Microsystems, Inc. | Apparatus for atomic locking-accessing-unlocking of a shared resource |
US6691183B1 (en) | 1998-05-20 | 2004-02-10 | Invensys Systems, Inc. | Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation |
US6163828A (en) * | 1998-05-22 | 2000-12-19 | Lucent Technologies Inc. | Methods and apparatus for providing multi-processor access to shared memory |
US6173307B1 (en) | 1998-08-20 | 2001-01-09 | Intel Corporation | Multiple-reader multiple-writer queue for a computer system |
US6397306B2 (en) | 1998-10-23 | 2002-05-28 | Alcatel Internetworking, Inc. | Per memory atomic access for distributed memory multiprocessor architecture |
US6282637B1 (en) * | 1998-12-02 | 2001-08-28 | Sun Microsystems, Inc. | Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US7096465B1 (en) | 1999-05-17 | 2006-08-22 | Invensys Systems, Inc. | Process control configuration system with parameterized objects |
US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
WO2000070417A1 (en) | 1999-05-17 | 2000-11-23 | The Foxboro Company | Process control configuration system with parameterized objects |
US7272815B1 (en) | 1999-05-17 | 2007-09-18 | Invensys Systems, Inc. | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
US7043728B1 (en) | 1999-06-08 | 2006-05-09 | Invensys Systems, Inc. | Methods and apparatus for fault-detecting and fault-tolerant process control |
US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
WO2001009690A1 (en) | 1999-07-29 | 2001-02-08 | The Foxboro Company | Methods and apparatus for object-based process control |
US6473660B1 (en) | 1999-12-03 | 2002-10-29 | The Foxboro Company | Process control system and method with automatic fault avoidance |
US6779128B1 (en) | 2000-02-18 | 2004-08-17 | Invensys Systems, Inc. | Fault-tolerant data transfer |
US6728866B1 (en) * | 2000-08-31 | 2004-04-27 | International Business Machines Corporation | Partitioned issue queue and allocation strategy |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US6993468B2 (en) * | 2000-12-27 | 2006-01-31 | Intel Corporation | Recognizing signals in design simulation |
US7500036B2 (en) * | 2000-12-28 | 2009-03-03 | International Business Machines Corporation | Quad aware locking primitive |
WO2003089995A2 (en) | 2002-04-15 | 2003-10-30 | Invensys Systems, Inc. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution |
US6922745B2 (en) * | 2002-05-02 | 2005-07-26 | Intel Corporation | Method and apparatus for handling locks |
GB2388929B (en) | 2002-05-23 | 2005-05-18 | Advanced Risc Mach Ltd | Handling of a multi-access instruction in a data processing apparatus |
US20040044881A1 (en) * | 2002-08-28 | 2004-03-04 | Sun Microsystems, Inc. | Method and system for early speculative store-load bypass |
US20040123078A1 (en) * | 2002-12-24 | 2004-06-24 | Hum Herbert H | Method and apparatus for processing a load-lock instruction using a scoreboard mechanism |
US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
US7512813B2 (en) * | 2004-05-28 | 2009-03-31 | International Business Machines Corporation | Method for system level protection of field programmable logic devices |
US7921250B2 (en) * | 2004-07-29 | 2011-04-05 | International Business Machines Corporation | Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions |
US20080270723A1 (en) * | 2004-11-26 | 2008-10-30 | Makoto Ueda | Multiprocessor System and Exclusive Control Method Therefor |
JP4576323B2 (ja) * | 2004-12-10 | 2010-11-04 | 富士通株式会社 | データ転送装置およびデータ転送方法 |
JP4649257B2 (ja) * | 2005-04-04 | 2011-03-09 | キヤノン株式会社 | マルチcpuシステム |
JP2007058493A (ja) * | 2005-08-24 | 2007-03-08 | Internatl Business Mach Corp <Ibm> | マルチプロセッサシステム及びそれにおける排他制御方法 |
WO2007123753A2 (en) | 2006-03-30 | 2007-11-01 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
US9032100B2 (en) * | 2008-04-03 | 2015-05-12 | International Business Machines Corporation | I/O hub-supported atomic I/O operations |
WO2009155483A1 (en) | 2008-06-20 | 2009-12-23 | Invensys Systems, Inc. | Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
US8793471B2 (en) | 2010-12-07 | 2014-07-29 | Advanced Micro Devices, Inc. | Atomic program verification |
US8788794B2 (en) | 2010-12-07 | 2014-07-22 | Advanced Micro Devices, Inc. | Programmable atomic memory using stored atomic procedures |
US9122476B2 (en) | 2010-12-07 | 2015-09-01 | Advanced Micro Devices, Inc. | Programmable atomic memory using hardware validation agent |
US20140189265A1 (en) * | 2012-12-31 | 2014-07-03 | Advanced Micro Devices, Inc. | Atomic time counter synchronization |
US10521351B2 (en) | 2017-01-12 | 2019-12-31 | International Business Machines Corporation | Temporarily suppressing processing of a restrained storage operand request |
US10621090B2 (en) * | 2017-01-12 | 2020-04-14 | International Business Machines Corporation | Facility for extending exclusive hold of a cache line in private cache |
KR20200036461A (ko) * | 2018-09-28 | 2020-04-07 | 삼성전자주식회사 | 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4000485A (en) * | 1975-06-30 | 1976-12-28 | Honeywell Information Systems, Inc. | Data processing system providing locked operation of shared resources |
US4245299A (en) * | 1978-01-05 | 1981-01-13 | Honeywell Information Systems Inc. | System providing adaptive response in information requesting unit |
US4402046A (en) * | 1978-12-21 | 1983-08-30 | Intel Corporation | Interprocessor communication system |
US4488217A (en) * | 1979-03-12 | 1984-12-11 | Digital Equipment Corporation | Data processing system with lock-unlock instruction facility |
GB2044499B (en) * | 1979-03-12 | 1983-11-16 | Digital Equipment Corp | Data processing system |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
US4587609A (en) * | 1983-07-01 | 1986-05-06 | Honeywell Information Systems Inc. | Lockout operation among asynchronous accessers of a shared computer system resource |
US4847754A (en) * | 1985-10-15 | 1989-07-11 | International Business Machines Corporation | Extended atomic operations |
JPS62197858A (ja) * | 1986-02-26 | 1987-09-01 | Hitachi Ltd | システム間デ−タベ−ス共用方式 |
-
1988
- 1988-10-25 US US07/262,495 patent/US5175829A/en not_active Expired - Lifetime
-
1989
- 1989-10-25 JP JP1278318A patent/JP3054775B2/ja not_active Expired - Fee Related
- 1989-10-25 EP EP19890310980 patent/EP0366432A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP0366432A2 (en) | 1990-05-02 |
JPH02224054A (ja) | 1990-09-06 |
US5175829A (en) | 1992-12-29 |
EP0366432A3 (en) | 1991-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3054775B2 (ja) | コンピュータシステム、および多重プロセッサシステム最小単位動作の実行方法 | |
US6801986B2 (en) | Livelock prevention by delaying surrender of ownership upon intervening ownership request during load locked / store conditional atomic memory operation | |
JP2500101B2 (ja) | 共用変数の値を更新する方法 | |
US7836280B1 (en) | Dynamic concurrent atomic execution | |
US8468526B2 (en) | Concurrent thread execution using user-level asynchronous signaling | |
US8065499B2 (en) | Methods and apparatus to implement parallel transactions | |
JP2665813B2 (ja) | 記憶制御装置 | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
EP1960878A2 (en) | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions | |
JP2011529603A (ja) | バーチャル化可能な高度な同期機構 | |
JP2008525923A (ja) | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション | |
JP2003514274A5 (ja) | ||
US9411661B2 (en) | Deadlock avoidance | |
TWI786181B (zh) | 在例外遮罩更新指令之後允許未中止的交易處理 | |
JPH0675252B2 (ja) | 多重処理コンピュータ・システム及び方法 | |
US5522029A (en) | Fault tolerant rendezvous and semaphore for multiple parallel processors | |
CN112236750A (zh) | 处理支持事务存储器的设备中的独占式加载指令 | |
US20050283783A1 (en) | Method for optimizing pipeline use in a multiprocessing system | |
JP2507071B2 (ja) | バスロック制御方式 | |
TW202036275A (zh) | 用於異動式記憶體的設備與資料處理方法 | |
CN117472803B (zh) | 原子指令执行方法、装置及电子设备 | |
JP5828324B2 (ja) | マルチプロセッサシステム、マルチプロセッサ制御方法、及びプロセッサ | |
JPH0769825B2 (ja) | 並列処理装置 | |
JPH0548498B2 (ja) | ||
JPS623367A (ja) | 主記憶アクセス方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |