JPH02226343A - 計算機装置および優先順位決定方法 - Google Patents
計算機装置および優先順位決定方法Info
- Publication number
- JPH02226343A JPH02226343A JP1338894A JP33889489A JPH02226343A JP H02226343 A JPH02226343 A JP H02226343A JP 1338894 A JP1338894 A JP 1338894A JP 33889489 A JP33889489 A JP 33889489A JP H02226343 A JPH02226343 A JP H02226343A
- Authority
- JP
- Japan
- Prior art keywords
- priority
- source
- bit
- requests
- contention
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はコンピュータ・システムにおける優先順位の決
定に関し、ざらに詳しくは、共通資源の使用を必要とす
る命令やコマンドの選択を行うためのプログラム可能な
優先順位ならびに選択的ブロッキング方式を提供するも
のである。
定に関し、ざらに詳しくは、共通資源の使用を必要とす
る命令やコマンドの選択を行うためのプログラム可能な
優先順位ならびに選択的ブロッキング方式を提供するも
のである。
B、従来技術及びその課題
]ンピュータ・システム、特に多重プロセッサを有する
システムにおいては同時実行不可能なコマンド及び命令
の優先順位を決定するシステムが不可欠である。はとん
どの従来の優先システムでは、すべて、あるいは一部が
固定されており、そのフレキシビリティは期待できなか
った。
システムにおいては同時実行不可能なコマンド及び命令
の優先順位を決定するシステムが不可欠である。はとん
どの従来の優先システムでは、すべて、あるいは一部が
固定されており、そのフレキシビリティは期待できなか
った。
1つ以上のリクエストが処理システム中の直列経路に出
きれたときに使用される優先システムは必要不可欠であ
る。すべての実際の目的において、優先システムはその
システムに望ましい既知の順位に従ってリクエストを選
択すべきである。マシン構築時に理想的な優先順位が未
知であったり、優先順位が処理ごとに変わるものである
ときは、プログラム可能な優先順位が有効なものとなる
。
きれたときに使用される優先システムは必要不可欠であ
る。すべての実際の目的において、優先システムはその
システムに望ましい既知の順位に従ってリクエストを選
択すべきである。マシン構築時に理想的な優先順位が未
知であったり、優先順位が処理ごとに変わるものである
ときは、プログラム可能な優先順位が有効なものとなる
。
C1発明の概要及び解決課題
本発明の目的は低コストで実現可能なプログラマブル優
先体系を提供することである。
先体系を提供することである。
ざらに、あるタイプのコマンドや命令の迅速な実行の要
求を考慮しないラウンド・ロビン型の優先体系を避ける
ことも本発明の目的である。
求を考慮しないラウンド・ロビン型の優先体系を避ける
ことも本発明の目的である。
また、ソース・IDを指示し、その後これらのIDが選
択される順序を決定するプログラマブル優先コードを提
供することも本発明の目的である。
択される順序を決定するプログラマブル優先コードを提
供することも本発明の目的である。
もう1つの重要な目的は、異なるプログラマブル優先コ
ードの各々ごとにすべてのソースを完全に再順序づける
とともに、実際のオペレーションの間には固定されてい
るように見える機能を提供することである。
ードの各々ごとにすべてのソースを完全に再順序づける
とともに、実際のオペレーションの間には固定されてい
るように見える機能を提供することである。
さらに、いかなるソースもコマンドを伴うことができ、
特定のソース(例えばプロセッサ)がリセットするまで
他のソースが優先回路に侵入するのを排除するように、
ソースの選択的ブロッキングを提供することも本発明の
目的である。
特定のソース(例えばプロセッサ)がリセットするまで
他のソースが優先回路に侵入するのを排除するように、
ソースの選択的ブロッキングを提供することも本発明の
目的である。
また、優先順位により選択された後のコマンドを監視す
るモニタ・レジスタを設け、当該コマンドのスタートを
やり直しきせるような競合が生じたときに、モニタ・レ
ジスタでこれを検知して、この競合が解除されるまで当
該コマンドが優先サイクルをとらないことも、本発明の
目的である。
るモニタ・レジスタを設け、当該コマンドのスタートを
やり直しきせるような競合が生じたときに、モニタ・レ
ジスタでこれを検知して、この競合が解除されるまで当
該コマンドが優先サイクルをとらないことも、本発明の
目的である。
この競合が解除きれたときは、モニタ・レジスタはリセ
ットきれ、当該コマンドは優先サイクルに再び入ること
が許される。
ットきれ、当該コマンドは優先サイクルに再び入ること
が許される。
以上のごとく、本発明は優先順位を完全に変えることが
できるプログラマブル優先コードを提供するものであり
、さらに競合、エラーまたは他の事象が当該優先順位を
無視する必要性を引き起こすような場合に、すでにクリ
アされた要求を選択的に排除する方法を提供する。
できるプログラマブル優先コードを提供するものであり
、さらに競合、エラーまたは他の事象が当該優先順位を
無視する必要性を引き起こすような場合に、すでにクリ
アされた要求を選択的に排除する方法を提供する。
C9実施例
ここで示した実施例はこの複雑な問題を解決するための
手段としてユニークな技術を開示する。
手段としてユニークな技術を開示する。
これは2から4のソースを選択可能なボッドから構成き
れるツリー構造優先体系を使用することである。各ボッ
ドは2ないし5ピツトのデータで制御される。2ビツト
は2ソースのボッドを制御するために使用され、3ビツ
トは3ソースのボッドを、5ビツトは5ソースのボッド
を制御するために使用される。各ソースは、例えばソー
ス1がOOのようなコードを与えられている。最も理解
しやすい形としてボッドにおけるソースは例えば、第1
図のようなサークル状に表現される。ここから、どのよ
うにして指定ソース・コードが与えられるかが理解され
よう。これらのコードの1つはボッドの優先順位を制御
するデータの最初の2ビツトとして置かれる。そのコー
ドが置かれたソースは最高の優先順位を有する。このソ
ースがリクエストを有する場合には、他のソースがリク
エストを有しているか否かにかかわらず、これが実行さ
れる。第1図に示すようにHPは最優先ソース・コード
を示す。このソースからのリクエストが最初に処理され
る。これが存在しなければ、次の優先レベルのものが処
理きれる。
れるツリー構造優先体系を使用することである。各ボッ
ドは2ないし5ピツトのデータで制御される。2ビツト
は2ソースのボッドを制御するために使用され、3ビツ
トは3ソースのボッドを、5ビツトは5ソースのボッド
を制御するために使用される。各ソースは、例えばソー
ス1がOOのようなコードを与えられている。最も理解
しやすい形としてボッドにおけるソースは例えば、第1
図のようなサークル状に表現される。ここから、どのよ
うにして指定ソース・コードが与えられるかが理解され
よう。これらのコードの1つはボッドの優先順位を制御
するデータの最初の2ビツトとして置かれる。そのコー
ドが置かれたソースは最高の優先順位を有する。このソ
ースがリクエストを有する場合には、他のソースがリク
エストを有しているか否かにかかわらず、これが実行さ
れる。第1図に示すようにHPは最優先ソース・コード
を示す。このソースからのリクエストが最初に処理され
る。これが存在しなければ、次の優先レベルのものが処
理きれる。
2ソースのボッドにおいてこれら2つのビットはすべて
必要なものとなる。たとえ、ツリー構造の他の構成を破
壊しないように1ビツトを使用可能としてもである。と
いうのは、使用されたビット中のソース・コードが最高
の優先順位を有するソースを指定するものであると、指
定されないソースが優先順位において2番目となるから
である。
必要なものとなる。たとえ、ツリー構造の他の構成を破
壊しないように1ビツトを使用可能としてもである。と
いうのは、使用されたビット中のソース・コードが最高
の優先順位を有するソースを指定するものであると、指
定されないソースが優先順位において2番目となるから
である。
ボッドの優先順位を制御する第3のビットは第1図に示
きれたサークルに沿った回転を示すものとして使用され
る。Rと記きれたこのローテーション・ビットはソース
のボッド・サークルに沿った回転方向を変えるのに使用
きれる。このローテーション・ビットは最高の優先順位
を持つソースの一 後にどのソースが続くかを示す。ローテーション・ビッ
トがOのときは、す・−クルを時計回りに経路を取る。
きれたサークルに沿った回転を示すものとして使用され
る。Rと記きれたこのローテーション・ビットはソース
のボッド・サークルに沿った回転方向を変えるのに使用
きれる。このローテーション・ビットは最高の優先順位
を持つソースの一 後にどのソースが続くかを示す。ローテーション・ビッ
トがOのときは、す・−クルを時計回りに経路を取る。
ビットが1のときは経路はこの逆回りとなる。このビッ
トは3または4ソースのボッドについてのみ必要となる
。3ソース・ボッドの場合、最優先コードが00で、ロ
ーテーション・ビットがOであると、優先順位は0O1
01,10の順となる。ローテーション・ビットが(1
)のときには優先順位は0O110,01の順となる。
トは3または4ソースのボッドについてのみ必要となる
。3ソース・ボッドの場合、最優先コードが00で、ロ
ーテーション・ビットがOであると、優先順位は0O1
01,10の順となる。ローテーション・ビットが(1
)のときには優先順位は0O110,01の順となる。
先の例において、最高の優先順位をもつソースがOOか
ら10あるいは01に変化すると、ローテーション・ビ
ットはソースの6つの可能な組合せを達成するように優
先ソース類を変更する(第1図参照)。
ら10あるいは01に変化すると、ローテーション・ビ
ットはソースの6つの可能な組合せを達成するように優
先ソース類を変更する(第1図参照)。
第4及び第5ビツトは4ソース・ボッドの場合のみに必
要となる。第4ビツトは、最優先コード及びローテーシ
ョン・ビットによって通常は第2番目であると示される
ソースが、今回は最後であることを示す。例えば、4ソ
ース・ボッドにおいて最初の3つの制御ビットが優先ソ
ース類00.01.10.11を設定する。第4ビツト
が1にセットされていると、最後の3つのソースを1位
置ずつ回転させて00,10.11.01の順に変える
。
要となる。第4ビツトは、最優先コード及びローテーシ
ョン・ビットによって通常は第2番目であると示される
ソースが、今回は最後であることを示す。例えば、4ソ
ース・ボッドにおいて最初の3つの制御ビットが優先ソ
ース類00.01.10.11を設定する。第4ビツト
が1にセットされていると、最後の3つのソースを1位
置ずつ回転させて00,10.11.01の順に変える
。
第5ビツトが1にセットされていると、上述と同様の動
作をするが、この場合は最後の3つが2位置ずつ回転す
る。前述の例では、優先ソース類00.01.10.1
1が00,11.01.10に変わる。この第5ビツト
は第4ビツトにかかわらず、最後の3ソースの順を2位
置ずつ回転させる。第5ビツトは1にセットきれている
ときは第4ビツトに優先する。
作をするが、この場合は最後の3つが2位置ずつ回転す
る。前述の例では、優先ソース類00.01.10.1
1が00,11.01.10に変わる。この第5ビツト
は第4ビツトにかかわらず、最後の3ソースの順を2位
置ずつ回転させる。第5ビツトは1にセットきれている
ときは第4ビツトに優先する。
これらの最後の2ビツトはスキップ・ビットと呼ばれる
。というのは、ローテーション・ビットが示す方向に最
優先ソースに続く2つまたは3つのソースをスキップさ
せるからである。ここでは4ソース・ボッドのサークル
を考える。最高の優先順位を持つソースからローテーシ
ョン・ビットの示す方向に移動する場合を考えるにあた
り、最高の優先順位がOOで、ローテーション・ビット
がOであると仮定する。ここで第1スキツプ・ビットが
ハイで、第2スキツプ・ビットがローであると、これは
先の例のごとく優先順位は0O110,11,01とな
ることを示す。このソース類はOOからスタートして、
次のソース01をスキップして10に飛び、それからす
べてのソースが選択されるまでサークルに沿った選択プ
ロセスを継続することによって達成される。OOは最初
のラウンドで選択されているので第2ラウンドでは選択
されない。第2スキツプ・ビットは、2つのソースが0
0の後にスキップされることを除けば、同様に作用する
。ソースの選択はすべてのソースが選択されるまで実行
きれる。このように、スキップ・ビットは2ビツトであ
って、優先サークルの最初の回転の際に、次の1つある
いは2つのソースをバイパスすることを示す。
。というのは、ローテーション・ビットが示す方向に最
優先ソースに続く2つまたは3つのソースをスキップさ
せるからである。ここでは4ソース・ボッドのサークル
を考える。最高の優先順位を持つソースからローテーシ
ョン・ビットの示す方向に移動する場合を考えるにあた
り、最高の優先順位がOOで、ローテーション・ビット
がOであると仮定する。ここで第1スキツプ・ビットが
ハイで、第2スキツプ・ビットがローであると、これは
先の例のごとく優先順位は0O110,11,01とな
ることを示す。このソース類はOOからスタートして、
次のソース01をスキップして10に飛び、それからす
べてのソースが選択されるまでサークルに沿った選択プ
ロセスを継続することによって達成される。OOは最初
のラウンドで選択されているので第2ラウンドでは選択
されない。第2スキツプ・ビットは、2つのソースが0
0の後にスキップされることを除けば、同様に作用する
。ソースの選択はすべてのソースが選択されるまで実行
きれる。このように、スキップ・ビットは2ビツトであ
って、優先サークルの最初の回転の際に、次の1つある
いは2つのソースをバイパスすることを示す。
本発明のプログラマブル優先順位はコンピュータ・シス
テムの導入時の優先順位のセット、さらにコンピュータ
・システムが動作中の任意の時点で優先順位を動的に変
更する際に有用である。
テムの導入時の優先順位のセット、さらにコンピュータ
・システムが動作中の任意の時点で優先順位を動的に変
更する際に有用である。
この優先システムは第3図に示すようにいわゆる優先心
臓部において実現される。これは回転方向、スキップお
よびソースIDビットを持つプログラマブル・セット1
9によって制御IIされる。第3図の実施例では、共通
資源に対して4つのリクエスト12.13.14.15
まで扱える。第4図の実施例は3つのリクエストの場合
の優先制御回路の例を示したものである。数字1.2及
び3は第3図の最初の3つの優先レベルを示し、第4図
の番号を付されたゲートに対応する。経路16.17の
2つのIDビット及び経路18のローテーション・ビッ
トを変えることによって、同時に受取られた競合リクエ
ストを処理するための優先順位をゲーティングが自動的
に変える。競合リクエストには、例えば、01コードの
ストア行列リクエスト21.10コードのコマンド・バ
ッファ・リクエスト23.11コードのチャネル&低メ
モリ・リクエスト25等の競合である。この例ではコー
ドoOは無効エントリである。第2図のブロッキング回
路27からのブロッキングが発生した場合には、特定ソ
ースはブロッキングが終結するまで選択されることはな
い。
臓部において実現される。これは回転方向、スキップお
よびソースIDビットを持つプログラマブル・セット1
9によって制御IIされる。第3図の実施例では、共通
資源に対して4つのリクエスト12.13.14.15
まで扱える。第4図の実施例は3つのリクエストの場合
の優先制御回路の例を示したものである。数字1.2及
び3は第3図の最初の3つの優先レベルを示し、第4図
の番号を付されたゲートに対応する。経路16.17の
2つのIDビット及び経路18のローテーション・ビッ
トを変えることによって、同時に受取られた競合リクエ
ストを処理するための優先順位をゲーティングが自動的
に変える。競合リクエストには、例えば、01コードの
ストア行列リクエスト21.10コードのコマンド・バ
ッファ・リクエスト23.11コードのチャネル&低メ
モリ・リクエスト25等の競合である。この例ではコー
ドoOは無効エントリである。第2図のブロッキング回
路27からのブロッキングが発生した場合には、特定ソ
ースはブロッキングが終結するまで選択されることはな
い。
本発明の重要な特徴を構成するブロッキングの1つのソ
ースは競合を監視する多数のレジスタである。これらの
レジスタはモニタ・レジスタ31と呼ばれ、第2図のF
lからF6によって表される。選択された各リクエスト
は競合の存在が確認されるまで、その実行を遅らせるた
めに33に入力される(第5図参照)。競合が存在する
場合は、競合が解除されるまでリクエストは保留され、
解除のときは優先回路に再入する。
ースは競合を監視する多数のレジスタである。これらの
レジスタはモニタ・レジスタ31と呼ばれ、第2図のF
lからF6によって表される。選択された各リクエスト
は競合の存在が確認されるまで、その実行を遅らせるた
めに33に入力される(第5図参照)。競合が存在する
場合は、競合が解除されるまでリクエストは保留され、
解除のときは優先回路に再入する。
本発明の実現形態は多重プロセッサを含むソースを有す
る。この実現形態でモニタされる競合はロック、ライン
・ホールド、および凍結レジスタ(図示せず)によるも
のである。ロックは、他のプロセッサかデータの8バイ
ト セグメントの状態を変えるのを妨げるレジスタであ
る。ライン・ホールドは、プロセッサごとに設けられる
3つのレジスタであり、ラインがキャッシュ・レベルで
無効化されるのを防止する。凍結レジスタは、キャッシ
ュ・レベルにおいて同じデータの重複したインページ・
リクエストの発生を防止する。
る。この実現形態でモニタされる競合はロック、ライン
・ホールド、および凍結レジスタ(図示せず)によるも
のである。ロックは、他のプロセッサかデータの8バイ
ト セグメントの状態を変えるのを妨げるレジスタであ
る。ライン・ホールドは、プロセッサごとに設けられる
3つのレジスタであり、ラインがキャッシュ・レベルで
無効化されるのを防止する。凍結レジスタは、キャッシ
ュ・レベルにおいて同じデータの重複したインページ・
リクエストの発生を防止する。
モニタ・レジスタは、ロック、ライン・ホールド、凍結
レジスタ(図示せず)に関連する一連のレジスタである
。実施例では6つのプロセッサがあるので6個の凍結レ
ジスタがあり、これらの凍結レジスタに対して6個のモ
ニタ・レジスタがある。ラインメホールドあるいはロッ
ク・レジスタに関しては、18個のライン・ホールド各
々に対して、また6個のロック・レジスタ各々に対して
個々のモニタ・レジスタは必要でない。まず、ライン・
ホールドおよびロックは相互に排他的な関係であり、同
じ物理的レジスタを共用するから、いずれにしてもモニ
タ・レジスタを別々に持つ必要がない。また、各プロセ
ッサに対する3つのライン・ホールドは同時にリセット
され、従って、これらは1つのモニタ・レジスタにグル
ープ化できる。この結果、総数で12個のモニタ・レジ
スタが必要となるにすぎず、そのうち6個が凍結レジス
タに関する競合をカバーし、6個がロック、およびライ
ン・ホールドに関する競合をカバーする。
レジスタ(図示せず)に関連する一連のレジスタである
。実施例では6つのプロセッサがあるので6個の凍結レ
ジスタがあり、これらの凍結レジスタに対して6個のモ
ニタ・レジスタがある。ラインメホールドあるいはロッ
ク・レジスタに関しては、18個のライン・ホールド各
々に対して、また6個のロック・レジスタ各々に対して
個々のモニタ・レジスタは必要でない。まず、ライン・
ホールドおよびロックは相互に排他的な関係であり、同
じ物理的レジスタを共用するから、いずれにしてもモニ
タ・レジスタを別々に持つ必要がない。また、各プロセ
ッサに対する3つのライン・ホールドは同時にリセット
され、従って、これらは1つのモニタ・レジスタにグル
ープ化できる。この結果、総数で12個のモニタ・レジ
スタが必要となるにすぎず、そのうち6個が凍結レジス
タに関する競合をカバーし、6個がロック、およびライ
ン・ホールドに関する競合をカバーする。
モニタ・レジスタ中には、適切なレベルでの優先順位に
対して補助を行うために必要なコマンドの各ソースに対
応するビットがある。必要なのはプロセッサ1個に対し
て2つのコマンドのソースである。これらはコマンド・
バッファおよびストア待行列である。この実現形態にお
けるコマンドの他のソースはBSC(バス・スイッチン
グ・コントロール)インタフェースであり、これはBS
C優先順位によって制御されるので、モニタ・レジスタ
では必要ない。第2図の4ビツト・レジスタの代わりに
、モニタ・レジスタは12ビツトを持ち、各プロセッサ
に対して各々2ビツト、各コマンド・バッファ(CBx
)に1ビツト、各ストア待行列(SQx)に1ビツトず
つで割当てられる。これを第6図に示す。
対して補助を行うために必要なコマンドの各ソースに対
応するビットがある。必要なのはプロセッサ1個に対し
て2つのコマンドのソースである。これらはコマンド・
バッファおよびストア待行列である。この実現形態にお
けるコマンドの他のソースはBSC(バス・スイッチン
グ・コントロール)インタフェースであり、これはBS
C優先順位によって制御されるので、モニタ・レジスタ
では必要ない。第2図の4ビツト・レジスタの代わりに
、モニタ・レジスタは12ビツトを持ち、各プロセッサ
に対して各々2ビツト、各コマンド・バッファ(CBx
)に1ビツト、各ストア待行列(SQx)に1ビツトず
つで割当てられる。これを第6図に示す。
上記の状態の1つによって何かが妨げられると、何らか
の競合が発生する。もし、成るラインがライン・ホール
ドの1つによって無効化を妨げられ、ソースがその無効
化を行おうとすると、競合が発生する。この場合には無
効化を行おうとしているソースはライン・ホールドのア
ドレス・マツチの結果としてその無効化を妨げられ、ラ
イン・ホールドがクリアされるまでブロッキングによっ
て優先順位が排除(hold out)される。ライン
・ホールドはキャッシュ(図示せず)に対するシーケン
シャル・ストア・バッファのデータ・ストアによってク
リアきれる。この時、データのアドレスを保持している
すべてのライン・ホールドはリセットされ、かくてこれ
らのライン・ホールドに関連するモニタ・レジスタもリ
セットされ、これによってブロッキングは終結する。
の競合が発生する。もし、成るラインがライン・ホール
ドの1つによって無効化を妨げられ、ソースがその無効
化を行おうとすると、競合が発生する。この場合には無
効化を行おうとしているソースはライン・ホールドのア
ドレス・マツチの結果としてその無効化を妨げられ、ラ
イン・ホールドがクリアされるまでブロッキングによっ
て優先順位が排除(hold out)される。ライン
・ホールドはキャッシュ(図示せず)に対するシーケン
シャル・ストア・バッファのデータ・ストアによってク
リアきれる。この時、データのアドレスを保持している
すべてのライン・ホールドはリセットされ、かくてこれ
らのライン・ホールドに関連するモニタ・レジスタもリ
セットされ、これによってブロッキングは終結する。
もう1つの例は8バイト・データのロックの場合である
。プロセッサBが当該データに対するストアを実行しよ
うとするときにプロセッサAによるロックが発生し得る
。この場合に競合が発生する。このロックに関連するモ
ニタ・レジスタはマツチ・アドレスを検出し、ストアに
対するリクエストを行っているソースのビット位置をハ
イにセツトする。この場合、ストア待ち行列ビットはプ
ロセッサAのロック モニタ・レジスタにおいてプロセ
ッサBのためにセットされる。セットきれたストア待ち
行列ビットはロックきれたデータが解放されるまでプロ
セッサBがストア・コマンドを再開しようとするのを妨
げる。これは優先サイクルが実行可能な他のソースによ
って使用され得る場合にこれらのサイクルがこのコマン
ドによってむだに使用されるのを防ぐものである(第5
図参照)。プロセッサBのストア待ち行列の優先度をブ
ロックするのはこのビットのみではなく、12個のモニ
タ・レジスタの各々におけるプロセッサBのストア待ち
行列を表す各ビットも同じである。優先順位に従ってリ
クエストが実行されるためには、これらがすべてOでな
ければならず、ざもなければそれらがすべてOになるま
でリクエストは実行されない。この例において、ロック
はプロセッサBのストア待ち行列の唯一の競合であり、
プロセッサAがデータをロックから解放したときはモニ
タもリセットされる。競合が解除されると、プロセッサ
Bと同様、プロセッサAのロックに関連するモニタ・レ
ジスタによって優先順位から排除されたすべてのソース
は、優先回路に復帰できることとなる。
。プロセッサBが当該データに対するストアを実行しよ
うとするときにプロセッサAによるロックが発生し得る
。この場合に競合が発生する。このロックに関連するモ
ニタ・レジスタはマツチ・アドレスを検出し、ストアに
対するリクエストを行っているソースのビット位置をハ
イにセツトする。この場合、ストア待ち行列ビットはプ
ロセッサAのロック モニタ・レジスタにおいてプロセ
ッサBのためにセットされる。セットきれたストア待ち
行列ビットはロックきれたデータが解放されるまでプロ
セッサBがストア・コマンドを再開しようとするのを妨
げる。これは優先サイクルが実行可能な他のソースによ
って使用され得る場合にこれらのサイクルがこのコマン
ドによってむだに使用されるのを防ぐものである(第5
図参照)。プロセッサBのストア待ち行列の優先度をブ
ロックするのはこのビットのみではなく、12個のモニ
タ・レジスタの各々におけるプロセッサBのストア待ち
行列を表す各ビットも同じである。優先順位に従ってリ
クエストが実行されるためには、これらがすべてOでな
ければならず、ざもなければそれらがすべてOになるま
でリクエストは実行されない。この例において、ロック
はプロセッサBのストア待ち行列の唯一の競合であり、
プロセッサAがデータをロックから解放したときはモニ
タもリセットされる。競合が解除されると、プロセッサ
Bと同様、プロセッサAのロックに関連するモニタ・レ
ジスタによって優先順位から排除されたすべてのソース
は、優先回路に復帰できることとなる。
通常の優先順位の選択を変更するブロッキングの例を第
2図に示す。これはシステム・ブロック35を介してエ
ラー・セット37および/または選択ソース・セット3
9によって開始きれるブロッキングを含む。ざらに、す
べてのソースをブロックするビット49と個別のソース
をブロックするビット45.46.47および48を持
つプログラマブル・セット43により、プログラマブル
・ブロック41を介して開始されるブロッキングをも含
む。第2図に示すようにブロッキングは状況に応じて個
々のソースあるいはすべてのソースに作用する。いかな
るブロッキングにおいても、ブロックきれているリクエ
ストは優先心臓部に入り続けることはできず、競合また
はブロッキングを生ぜしめた他の事象が解除されるまで
待機し、その後優先心臓部に再び入ることとなる。
2図に示す。これはシステム・ブロック35を介してエ
ラー・セット37および/または選択ソース・セット3
9によって開始きれるブロッキングを含む。ざらに、す
べてのソースをブロックするビット49と個別のソース
をブロックするビット45.46.47および48を持
つプログラマブル・セット43により、プログラマブル
・ブロック41を介して開始されるブロッキングをも含
む。第2図に示すようにブロッキングは状況に応じて個
々のソースあるいはすべてのソースに作用する。いかな
るブロッキングにおいても、ブロックきれているリクエ
ストは優先心臓部に入り続けることはできず、競合また
はブロッキングを生ぜしめた他の事象が解除されるまで
待機し、その後優先心臓部に再び入ることとなる。
D0発明の効果
上述のごとく本発明によればプログラムによって変更可
能な優先順位の決定システムが達成される。
能な優先順位の決定システムが達成される。
第1図は本発明の実施例における優先制御ビットの構造
を示す図、第2図は第2A図、第2B図の結合様式を示
す図、第2A図および第2B図はそれぞれ複数のブロッ
キング信号および優先回路の相互作用を示すブロック図
、第3図は4ソースの場合の優先回路の動作を示すブロ
ック図、第4図は3ソースの場合の優先コードの実現に
使用されるゲーティングを示す回路図、第5図は本発明
の実行の際のタイミング図、第6図はモニタ・レジスタ
の構成を示す構成図である。 31・・・・モニタ・レジスタ、41・・・・フログラ
マプル・ブロック。 第 ・シーケンス 5図
を示す図、第2図は第2A図、第2B図の結合様式を示
す図、第2A図および第2B図はそれぞれ複数のブロッ
キング信号および優先回路の相互作用を示すブロック図
、第3図は4ソースの場合の優先回路の動作を示すブロ
ック図、第4図は3ソースの場合の優先コードの実現に
使用されるゲーティングを示す回路図、第5図は本発明
の実行の際のタイミング図、第6図はモニタ・レジスタ
の構成を示す構成図である。 31・・・・モニタ・レジスタ、41・・・・フログラ
マプル・ブロック。 第 ・シーケンス 5図
Claims (2)
- (1)共通資源に向けられる複数の要求間の優先順位を
決定する方法であつて、 前記要求を行つている各ソースに符号化された識別記号
を付与するステップと、 前記識別記号をそれらの相対的優先順位を確立する2進
ワードにプログラムするステップと、前記プログラムさ
れた2進ワードを優先回路を通じて転送することにより
、該回路を前記相対的優先順位に従つてプリセットする
ステップと、所与の時点で1つの要求を選択するように
前記優先回路に前記すべての要求を入力するステップと
からなることを特徴とする優先順位決定方法。 - (2)共通資源に対する複数の要求を持つ計算機装置に
おいて、 前記複数の要求間のすべての優先順位を与えるようにプ
ログラム可能な優先回路手段と、 前記優先回路手段の動作を変更させるように動作するブ
ロッキング回路と、 前記優先回路手段および前記ブロッキング回路に接続さ
れ、前記優先回路手段より選択されるべき要求をブロッ
クする時機を決定するための調整回路手段とを有するこ
とを特徴とする計算機装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US292297 | 1988-12-30 | ||
| US07/292,297 US5311461A (en) | 1988-12-30 | 1988-12-30 | Programmable priority and selective blocking in a compute system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02226343A true JPH02226343A (ja) | 1990-09-07 |
Family
ID=23124065
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1338894A Pending JPH02226343A (ja) | 1988-12-30 | 1989-12-28 | 計算機装置および優先順位決定方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5311461A (ja) |
| EP (1) | EP0375978A3 (ja) |
| JP (1) | JPH02226343A (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6951019B1 (en) | 1992-09-30 | 2005-09-27 | Apple Computer, Inc. | Execution control for processor tasks |
| JPH06139107A (ja) * | 1992-10-30 | 1994-05-20 | Nec Corp | ブレイクアドレス検出回路 |
| US6948172B1 (en) | 1993-09-21 | 2005-09-20 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
| CA2131406C (en) * | 1993-09-21 | 2002-11-12 | David D'souza | Preemptive multi-tasking with cooperative groups of tasks |
| US5884051A (en) * | 1997-06-13 | 1999-03-16 | International Business Machines Corporation | System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities |
| US6810422B1 (en) | 2000-01-14 | 2004-10-26 | Lockheed Martin Tactical Defense Systems | System and method for probabilistic quality of communication service determination |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5075750A (ja) * | 1973-11-07 | 1975-06-21 | ||
| JPS58169659A (ja) * | 1982-03-30 | 1983-10-06 | Fujitsu Ltd | 共用ロツク制御方式 |
| JPS59148952A (ja) * | 1983-02-14 | 1984-08-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 優先順位回路 |
| JPS6242245A (ja) * | 1985-08-19 | 1987-02-24 | Mitsubishi Electric Corp | フアイルアクセス方法 |
| JPS62282337A (ja) * | 1986-05-30 | 1987-12-08 | Nec Corp | 排他制御方式 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| BE755621A (fr) * | 1969-09-02 | 1971-03-02 | Siemens Ag | Systeme de central automatique pour donnees a commande par programme |
| US3836889A (en) * | 1973-03-23 | 1974-09-17 | Digital Equipment Corp | Priority interruption circuits for digital computer systems |
| US4028664A (en) * | 1975-03-26 | 1977-06-07 | Honeywell Information Systems, Inc. | Apparatus for dispatching data of the highest priority process having the highest priority channel to a processor |
| US4237534A (en) * | 1978-11-13 | 1980-12-02 | Motorola, Inc. | Bus arbiter |
| US4334288A (en) * | 1979-06-18 | 1982-06-08 | Booher Robert K | Priority determining network having user arbitration circuits coupled to a multi-line bus |
| US4314335A (en) * | 1980-02-06 | 1982-02-02 | The Perkin-Elmer Corporation | Multilevel priority arbiter |
| US4473880A (en) * | 1982-01-26 | 1984-09-25 | Intel Corporation | Arbitration means for controlling access to a bus shared by a number of modules |
| JPS58222361A (ja) * | 1982-06-18 | 1983-12-24 | Fujitsu Ltd | デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式 |
| JPS58225442A (ja) * | 1982-06-25 | 1983-12-27 | Toshiba Corp | 優先順位制御回路 |
| US4814974A (en) * | 1982-07-02 | 1989-03-21 | American Telephone And Telegraph Company, At&T Bell Laboratories | Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements |
| IT1159351B (it) * | 1983-02-03 | 1987-02-25 | Cselt Centro Studi Lab Telecom | Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore |
| US4533994A (en) * | 1983-09-09 | 1985-08-06 | Avco Corporation | Priority circuit for a multiplexer terminal |
| US4941086A (en) * | 1984-02-02 | 1990-07-10 | International Business Machines Corporation | Program controlled bus arbitration for a distributed array processing system |
| US4760515A (en) * | 1985-10-28 | 1988-07-26 | International Business Machines Corporation | Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis |
| US4809164A (en) * | 1986-03-26 | 1989-02-28 | Tandem Computers Incorporated | Processor controlled modifying of tabled input/output priority |
| JPS62231338A (ja) * | 1986-03-31 | 1987-10-09 | Toshiba Corp | 優先順位決定方法および装置 |
-
1988
- 1988-12-30 US US07/292,297 patent/US5311461A/en not_active Expired - Fee Related
-
1989
- 1989-11-30 EP EP19890122092 patent/EP0375978A3/en not_active Withdrawn
- 1989-12-28 JP JP1338894A patent/JPH02226343A/ja active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5075750A (ja) * | 1973-11-07 | 1975-06-21 | ||
| JPS58169659A (ja) * | 1982-03-30 | 1983-10-06 | Fujitsu Ltd | 共用ロツク制御方式 |
| JPS59148952A (ja) * | 1983-02-14 | 1984-08-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 優先順位回路 |
| JPS6242245A (ja) * | 1985-08-19 | 1987-02-24 | Mitsubishi Electric Corp | フアイルアクセス方法 |
| JPS62282337A (ja) * | 1986-05-30 | 1987-12-08 | Nec Corp | 排他制御方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5311461A (en) | 1994-05-10 |
| EP0375978A3 (en) | 1991-09-18 |
| EP0375978A2 (en) | 1990-07-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5586331A (en) | Duplicated logic and interconnection system for arbitration among multiple information processors | |
| US5678026A (en) | Multi-processor data processing system with control for granting multiple storage locks in parallel and parallel lock priority and second level cache priority queues | |
| US4984153A (en) | Storage locking control for a plurality of processors which share a common storage unit | |
| US6647449B1 (en) | System, method and circuit for performing round robin arbitration | |
| US5333297A (en) | Multiprocessor system having multiple classes of instructions for purposes of mutual interruptibility | |
| US5050072A (en) | Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system | |
| US6529983B1 (en) | Group and virtual locking mechanism for inter processor synchronization | |
| US5208914A (en) | Method and apparatus for non-sequential resource access | |
| US5276842A (en) | Dual port memory | |
| US4320455A (en) | Queue structure for a data processing system | |
| EP3217292B1 (en) | Atomic access to object pool over rdma transport network | |
| EP0535821A1 (en) | Method and apparatus for dynamically steering undirected interrupts | |
| JPS59180775A (ja) | 共用資源の割付けを調停する方法 | |
| JP2004326767A (ja) | マルチスレッド・プロセッサにおいて命令スレッドのインタリービングをランダム化するための方法および装置 | |
| EP0532542B1 (en) | Multiprocessor system with sharing of memory | |
| WO2004095262A2 (en) | Distributed shared resource management | |
| US5051946A (en) | Integrated scannable rotational priority network apparatus | |
| JPH02226343A (ja) | 計算機装置および優先順位決定方法 | |
| US5276902A (en) | Memory access system for vector data processed or to be processed by a vector processor | |
| KR930003444B1 (ko) | 주기억 참조의 순차화 제어방식 | |
| US4646236A (en) | Pipelined control apparatus with multi-process address storage | |
| US5203007A (en) | Overriding programmable priority and selective blocking in a computer system | |
| US4926313A (en) | Bifurcated register priority system | |
| JPH10502756A (ja) | ベクトルプロセッサのためのチャンク連鎖 | |
| US5032984A (en) | Data bank priority system |