JPH07287686A - データ処理システム内でバス仲裁プロトコルを実行する方法および装置 - Google Patents
データ処理システム内でバス仲裁プロトコルを実行する方法および装置Info
- Publication number
- JPH07287686A JPH07287686A JP5065980A JP6598093A JPH07287686A JP H07287686 A JPH07287686 A JP H07287686A JP 5065980 A JP5065980 A JP 5065980A JP 6598093 A JP6598093 A JP 6598093A JP H07287686 A JPH07287686 A JP H07287686A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- predetermined number
- snoop
- signal
- assertion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
を実行するデータ処理システムとその方法。 【構成】複数のバス・マスタ12,16,17が、共有
バス20,22,24,26に結合される。各バス・マ
スタは、バストランザクションを開始するかあるいは、
共有バス20上に起こっているバス・トランザクション
をスヌープする。開始プロセッサがメモリ18内のダー
ティなキャッシュ・ラインに対するアクセスをリクエス
トすると、スヌープ・バス・マスタは、共有アドレス再
試行(ARTRY*)信号をアサートして、開始プロセ
ッサに対して共有バス20の所有権を放棄してバス・ト
ランザクションの再試行をするように報知する。すべて
の潜在的バス・マスタは、そのバス・リクエストを削除
する。これによりスヌープ・プロセッサが共有バス20
の所有権を得て、スヌープ・コピーバックを実行するこ
とができる。
Description
ステムに関する。さらに詳しくは、バス仲裁(バス・ア
ービトレーション)を実行するデータ処理システムに関
する。
性能データ処理システムは、オンチップ・キャッシュを
もつ複数のマイクロプロセッサを用いている。通常、こ
れらのデータ処理システムは、バスの「スヌープ(検
索)動作」と呼ばれる技術を採用して、複数のマイクロ
プロセッサ間のキャッシュの一貫性を維持している。一
般に、バス・トランザクションをスヌープするマイクロ
プロセッサが「ダーティ」と印をつけられたキャッシュ
・エントリ上のキャッシュ・ヒットを検出すると、スヌ
ープ動作を行うマイクロプロセッサ(「スヌーパ」)
は、現在の(「元の」)バス・マスタにバスの所有権を
放棄させ、後でもう一度バス・トランザクションを再試
行させる。スヌーパは、次にバスの所有権を得て、新し
いキャッシュ・ラインでメイン・メモリを更新しなけれ
ばならない。元のバス・マスタは、スヌーパがメモリの
更新を完了するまで、キャッシュ・ラインにアクセスす
るように「再試行」を続けることになる。この過程は通
常、「スヌープ−再試行」プロトコルと呼ばれる。
ス・マスタがバスの所有権を放棄すると、ダーティなキ
ャッシュ・ラインをもつスヌーパは、次のバス保有期間
(bus tenure)の所有権に対して最優先権を有すること
が望ましい。基本的には、スヌーパのリクエストに対し
て、バス所有権に対する「第1のチャンス(最優先
権)」が与えられなければ、他のバス・マスタ(元のバ
ス・マスタを含む)は、スヌーパがバスの所有権を獲得
することを妨害することもあり、それにより元のバス・
トランザクションの進行が遅れる。従来のアービタ(ar
biter: 仲裁装置)は、スヌープ・ヒットを示すマイク
ロプロセッサに最優先権が与えられることを保証するこ
ともできるが、これには余分なアービタ入力が必要で、
論理もより複雑になる。そのために、外部バス仲裁論理
の実現に伴う費用と複雑性とは、複数のバス・マスタを
有するデータ処理システムを設計する際の重要な考慮事
項となっている。
おいては、アービタを用いてスヌープ−再試行バス仲裁
プロトコルを実行するデータ処理システムおよびその方
法により構成される。データ処理システムは、所定の数
のバス・マスタを有し、それぞれのバス・マスタは、所
定の数の共有バスを介してメモリ・システムに結合され
ている。アービタは、所定の数のバス・マスタのそれぞ
れに結合されて、バス所有権の割付を制御する。スヌー
プ・プロセッサは、第1バス・トランザクションにおけ
るスヌープ・ヒットの検出に応答して、第1制御信号を
アサートする。第1制御信号は、第1バス・マスタに対
して、第1バス・トランザクション中にリクエストされ
たアドレスに対するデータ・エントリがスヌープ・プロ
セッサ内にあることを通知して、第1共有バスの所有権
の放棄と、バス・トランザクションの再試行とを通知す
る。第1バス・マスタと所定の数の潜在的バス・マスタ
のそれぞれとは、スヌープ・プロセッサによる第1制御
信号のアサーションを検出すると、それに応答して、そ
れぞれがアービタからバス・リクエスト信号を削除し
て、バス許可信号(bus grant signal)のアービタによ
るアサーションを無視する。所定の数の潜在的バス・マ
スタのそれぞれは、バス・リクエスト信号のアサーショ
ンを抑制して、スヌープ・プロセッサが共有バスの所有
権を得ることができるようにする。
面とにより、当業者には理解されるだろう。
(assertion) 」という言葉は、信号または類似の装置を
論理的に真(能動)の状態にする際に用いられ、それに
対して「ニゲート(negate)」および「ニゲーション(neg
ation)」という言葉は、信号またはその他の装置を論理
的に偽(非能動)の状態にする場合に用いる。アスタリ
スク記号は、相補信号を示すために用いられる。たとえ
ば、バス・リクエスト*(BUS REQUEST*)は、バス・リ
クエスト(BUS REQUEST )信号の相補論理状態の信号を
示す。
タ処理システム10の好適な実施例が示され、このシス
テムでは集中化された仲裁システムを用いてスヌープ−
再試行プロトコルを実行する。図示された形態において
は、仲裁バス20,アドレス・バス22,データ・バス
24および転送制御信号ライン26が、データ・プロセ
ッサ(DP)12と他の代替バス・マスタ(ABM)1
6ないし17とに結合され、それらにより共有されて、
外部メモリ・システム18にアクセスする。転送制御信
号は、バス・マスタ群(DP12およびABM16,1
7)とメモリ・システム18との間の基本的な初期接続
(ハンドシェーク)部となっている。図1に示されるよ
うに、外部アービタ14(仲裁装置)がデータ・プロセ
ッサ12と代替バス・マスタ16,17とに結合され、
共有されているアドレス・バス22の割付を制御する。
基準クロック発生器11は、バス・マスタ群(データ・
プロセッサ12および代替バス・マスタ16),アービ
タ14およびメモリ・システム18にクロック(CL
K)信号を与える。システム10においては、データ・
プロセッサ12は、内部のハーバード・アーキテクチャ
(Harvard architecture)を用いており、CPUコア3
0内の命令シーケンサ(図示せず)が命令キャッシュ・
メモリ管理ユニット(コード・キャッシュ: CODE CACH
E )32から命令を取り出し、CPUコア30内のロー
ド/記憶ユニット(図示せず)がデータ・キャッシュ・
メモリ管理ユニット(データ・キャッシュ: DATA CACH
E )34に対するデータの読み/書きを実行する。コー
ド・キャッシュ32およびデータ・キャッシュ34は、
いずれも内部バス・リクエスト信号を発生し、外部のメ
モリに対するアクセスが必要なときには、この信号を用
いてバス・インターフェース・ユニット(BIU)36
に知らせる。
あるいは接続されたバス・インターフェースを内蔵し
て、それによってデータ・プロセッサは、トランザクシ
ョンが終了するまで、アドレス・バスおよびデータ・バ
スの両方に対して所有権を保持している。好適な実施例
においては、システム10は仲裁プロトコルを用いてお
り、このプロトコルによってアービタ14は、アドレス
・バス22の所有権を「公平に」割り付けることができ
る。これはWilliam C. Moyer他による、本発明の被譲渡
人に譲渡された、同時出願特許申請代理人明細書番号SC
-01498A 号の「AMethod and Apparatus for Performing
Bus Arbitration in a Data ProcessingSystem 」に開
示されている。本発明の図示された形態においては、シ
ステム10は複数のバス・マスタを採用しているが、分
割バス・トランザクション(split bus transaction )
には対応しない。分割バス・トランザクションにおいて
は、異なる装置がアドレスバス22とデータ・バス24
とを一度に制御するので、バス・マスタは、アドレス・
バス22とデータ・バス24の両方の所有権に関して仲
裁を行わなければならない。
は、データ・バス24は、連続的にバス・マスタに対し
て所有権が認められ、仲裁はアドレス・バス22の支配
権についてのみ要求される。それぞれの潜在的バス・マ
スタ(データ・プロセッサ12および代替バス・マスタ
16,17)は、それぞれ独立したバス・リクエスト出
力信号BR1 *,BR2 *およびBR3 *と、独立した
バス許可入力信号BG1*,BG2 *およびBG3 *と
を有し、これらはアドレス・バス22の仲裁に用いられ
る。アドレス・バス使用中(address bus busy: ABB
*)信号ラインは、仲裁バス20を介してバス・マスタ
群により共有される。双方向のABB*信号は、現在の
バス・マスタによりアサートされて、潜在的バス・マス
タに対して、アドレス・バス22が現在使用できないこ
とを通知する。従って、ABB*信号は、現在のバス・
マスタの出力信号であり、すべての潜在的バス・マスタ
に対する入力である。
サ12は、外部バス・アクセスに関して独立している重
複する内部リクエストを発生することができる。基本的
には内部バス・リクエストは、命令側とロード/記憶側
とから同時に発生することができる。あるいは、命令側
がすでに外部バスの所有者となっていて、外部バス命令
の取り出しを行っているときは、内部リクエストはロー
ド/記憶側から来ることもある(あるいはその逆もあ
る)。BIU36は、アドレス・バス22のアクセスに
対して複数の独立内部リクエストを受け取るので、デー
タ・プロセッサ12は内部仲裁スキームを採用する。通
常、内部仲裁が必要になるのは、データ・キャッシュ3
2とコード・キャッシュ34の両方がキャッシュ・ミス
を処理しているときに限られる。内部仲裁スキームにお
いては、本発明により、外部アドレス共有バス22に対
するアクセスについては、スヌープ・コピーバックが内
部の最優先権を有する。スヌープ・コピーバックとは、
外部メモリ・システム18を特定のキャッシュ・ライン
の最新バージョンで更新するバースト書き込みである。
データ・プロセッサ12は、再書き込み(write-back)
データ・キャッシュ32を用いるので、あるキャッシュ
・ラインに対する書き込みにより、メモリ18内の対応
するアドレスに「ダーティ」な(古い)データを入れる
ことができる。他のバス・マスタ16,17が、メモリ
・システム18内のこの古いデータにアクセスしようと
すると、データ・プロセッサ12が介入して、スヌープ
・コピーバックによりメモリ・システム18を更新しな
ければならない。スヌープ・コピーバック動作が実行さ
れると、修正されたキャッシュ・ラインを有するバス・
マスタ(たとえばデータ・プロセッサ12)は、そのキ
ャッシュ・ラインをメモリ・システム18に「コピーバ
ック」することができる。これは、リクエストをしてい
るバス・マスタ(たとえばバス・マスタ16)がメモリ
・システム18内のデータ(キャッシュ・ライン)にア
クセスすることができるようになる前に行われる。この
ようにスヌープ・コピーバックには、内部では最高の優
先権が与えられる。これはアドレス・バス22上の他の
プロセッサの前進が、メモリ・システム18の更新が行
われるようになるまで、停止されるためである。
0は、スヌープ−再試行の一貫スキームを利用する。ス
ヌープ−再試行の一貫スキームにより、各バス・マスタ
は他のバス・マスタにより実行されるバス・トランザク
ションをモニタして、必要に応じてアクセスに介入し
て、キャッシュの一貫性を維持することができる。説明
を簡単にするために、本発明の動作を「開始プロセッ
サ」と「スヌープ・プロセッサ」という言葉を用いて説
明する。開始プロセッサは、バス・トランザクションの
開始時のバス・マスタであり、スヌープ・プロセッサ
は、バス・トランザクションをスヌープする装置(プロ
セッサまたはメモリ)である。スヌープ・プロセッサ
は、外部から開始されたバス・トランザクションをモニ
タし、すべての全体アドレスと内部データ・キャッシュ
・タッグとを比較することにより、バス・トランザクシ
ョンをスヌープする。有効なエントリに対するデータ・
キャッシュ32タッグがバス22上のアドレスに一致す
ると、スヌープ・ヒットが起こる。基本的には、データ
・プロセッサ12と代替バス・マスタ16,17とは2
つの異なる独立してアクセスすることのできるタッグの
コピーを維持して、バス・スヌープがオンチップ・プロ
セッサ・データ・キャッシュ・アクセスと並行して起こ
るようになっている。
12は外部バス・トランザクションをモニタして(スヌ
ープがイネーブルのとき)、アドレスとデータ・キャッ
シュ32内のタッグの1つとの間の一致を検出すること
により、スヌープ「ヒット」を起こす。図1に示される
ように、スヌープがデータ・キャッシュ32内の修正さ
れたエントリ上でヒットすると、データ・プロセッサ1
2はそのスヌープ状態信号(SSTAT*)をアサート
する。システム10の好適な実施例においては、SST
AT*信号とARTRY*信号とに関するタイミングに
より、スヌープ・プロセッサ(たとえばデータ・プロセ
ッサ12)から出力されたSSTAT*信号は、各バス
・マスタ16,17のARTRY*入力信号に直接的
に、あるいは間接的に接続される。このため、ARTR
Y*信号のアサーションは、データ・プロセッサ12か
らのSSTAT*信号を介して、開始プロセッサ(たと
えばバス・マスタ16)に、修正されたデータがデータ
・プロセッサ12によりメモリ18に書き込まれた後
で、メモリに対するアクセスを再試行させる。従って、
ARTRY*信号のアサーションに応答して、開始プロ
セッサ(バス・マスタ16)は、そのバス・トランザク
ションを中断して、アドレス・バス22とデータ・バス
24とを解放する。
れると、すべての他の潜在的バス・マスタ(たとえば代
替バス・マスタ17)は、そのバス・リクエスト信号を
削除(ニゲート)して、アービタ14から来るバス許可
信号を無視する。各潜在的バス・マスタは、次にBR*
信号のアサーションを抑制して、アービタ14がスヌー
プ・プロセッサ(データ・プロセッサ12)から来たバ
ス・リクエスト以外のバス・リクエストを受け取らない
ようにする。これはARTRY*信号がニゲートされる
まで続く。この抑制スキームにより、スヌープ・プロセ
ッサ(データ・プロセッサ12)は、アドレス・バス2
2の支配権を獲得して、修正されたキャッシュ・ライン
をメモリ18に再度書き込むことができる。
再試行プロトコルの抑制スキームの動作を示すタイミン
グ図40である。図2においては、信号の影になってい
る部分は「関係のない」状態を示す。この例では、第1
クロック期間(CLK1)の間は、開始プロセッサ(た
とえばデータ・プロセッサ12)が現在のバス・マスタ
であり、リクエストされているキャッシュ・ラインに関
してビットA31ないしA0を有する所定のアドレス
(ここでは「$00020000」と示される)を共有
アドレス・バス22に対して移動させることによりキャ
ッシュ・ラインの読み出しを開始する。データ・プロセ
ッサ12がアドレス・バス22の現在の所有者であるの
で、これがABB*信号をアサートして、それによりア
ドレス・バス22が現在占有されていることを示す。図
示された例においては、リクエストされたアドレスは
「ダーティ」アドレスで、ただ1つのプロセッサ(たと
えば代替バス・マスタ16)しか、内部データ・キャッ
シュに記憶されているリクエストされたキャッシュ・ラ
インに関するデータのコピーをもっていない。リクエス
トされたキャッシュ・ラインは修正されているので(す
なわちキャッシュ・ラインが「ダーティ」であるの
で)、代替バス・マスタ16は、データ・プロセッサ1
2をメモリ・システム18内の古いキャッシュ・ライン
のデータ(D63−D0)にアクセスさせる前に、修正
されたキャッシュ・ラインでメモリ・システム18を更
新しなければならない。従って、第3クロック期間(C
LK3)中は、代替バス・マスタ16はスヌープ「ヒッ
ト」を検出して、SSTAT*信号をアサートすること
により応答する。SSTAT*信号は、ARTRY*信
号に結合されているので、ARTRY*信号もまた第3
CLK期間中にアサートされる。第4クロック期間(C
LK4)の立ち上がり端で、データ・プロセッサ12
(開始プロセッサ)は、ARTRY*信号のアサーショ
ンを検出し、自分のバス・リクエスト(BR1 *)信号
を削除(ニゲート)して、ABB*信号をニゲートする
ことにより応答して、それによりアドレス・バス22を
解放する。代替バス・マスタ16が(スヌープ・ヒット
の検出に応答して)SSTAT*信号をアサートしたの
で、データ・プロセッサ12によるBR1 *信号のニゲ
ーションに応答して、自分のバス・リクエスト(BR
2 )信号をアサートする。前述のようにARTRY*が
アサートされると、他のすべての潜在的バス・マスタ
(すなわち代替バス・マスタ17)は、自分のバス・リ
クエスト信号を削除(ニゲート)して、アービタ14か
ら来るバス許可信号はすべて無視する。従って、第4ク
ロック期間(CLK4)中は、代替バス・マスタ17は
自分のバス・リクエスト(BR3 *)信号をニゲートし
て、それによりアービタ14は、スヌープ・プロセッサ
(代替バス・マスタ16)に対してバスの支配権を許可
する。
バス・マスタ16が認定されたバスの許可を検出して、
スヌープ・コピーバック動作を開始する。ABB*信号
は、アドレス・バス22が解放されたときにデータ・プ
ロセッサ12によりニゲートされたので、スヌープ状態
(SSTAT*)信号およびアドレス再試行(ARTR
Y*)信号がニゲートされ、データ・プロセッサ12
は、バス・リクエスト信号(BR1 )信号を再度アサー
トする。代替バス・マスタ16は、アドレス・バス22
の所有権を得て、ABB*信号をアサートし、リクエス
トされたキャッシュ・ラインに関するアドレスをアドレ
ス・バス22上に移動させる。
TRY*信号がニゲートされているので、データ・プロ
セッサ12(開始プロセッサ)と代替バス・マスタ17
とは、バス・リクエスト信号BR1 *,BR3 *をそれ
ぞれ再度アサートする。代替バス・マスタ16は、リク
エストされたキャッシュ・ラインに関するデータを、デ
ータ・バス24を介してメモリ・システム18に移動さ
せ始める。スヌープ・コピーバックが終了すると、代替
バス・マスタ16は、クロック期間10(CLK10)
中にABB*信号をニゲートして、それによりアドレス
・バス22が現在使用可能であることを示す。アービタ
14は、BG1 *信号をアサートすることにより、デー
タ・プロセッサ12にアドレス・バス22の支配権を許
可する。第11クロック期間(CLK11)中は、デー
タ・プロセッサ12は認定されたバス許可が受け取られ
たことを検出し、アドレス・バス22の所有権を得て、
ABB*信号をアサートすることにより、全体読み込み
トランザクションを終了する。
トを検出すると、スヌープ・プロセッサはスヌープ状態
信号(SSTAT*)をアサートし、それによって共有
アドレス再試行(ARTRY*)信号のアサーションが
行われる。ARTRY*信号を受け取ると、それぞれの
潜在的バス・マスタ(メモリの更新を行おうとしている
スヌープ・プロセッサを除く)は、バス・リクエスト信
号を削除(ニゲート)して、アービタ14からすでに受
け取っているバス許可信号を無視する。アービタ14が
他のすべての潜在的バス・マスタによるバス・リクエス
ト信号のニゲーションを検出すると、アービタ14は以
前にアサートされたバス許可信号をニゲートすることに
より応答する。このように、アサートされたバス・リク
エスト信号をもつ唯一の装置であるスヌープ・プロセッ
サに対して、次のバス保有期間中のアドレス・バス22
の所有権が保証される。アービタ14は、スヌープ・プ
ロセッサのためのバス許可信号をアサートして、それに
よりスヌープ・プロセッサは、スヌープ・コピーバック
・トランザクションを迅速に実行することができる。
たが、さまざまな方法で実行できることは当業者には明
白であろう。たとえば、図示された形態においては、ア
ービタ14は立ち上がりクロック端上でバス・リクエス
ト信号のトランザクションに応答する同期状態装置であ
る。アービタ論理がシステム10のタイミング要件(た
とえば1クロック仲裁)に充分対応できるほど速けれ
ば、アービタ14を非同期に実現することができること
は、当業者には明白であろう。さらに、転送肯定応答
(TA*)などの総終了制御信号を用いて、ARTRY
*信号を認定し、それにより開始プロセッサにバス・ト
ランザクションの終了を知らせることもできる。また、
他の総制御信号を用いると、スヌープ−再試行プロトコ
ル以外のものに関して、複数のバス・マスタ間でバスの
支配権の優先順位をつけるように本発明を実行すること
もできる。従って、添付の請求項により、本発明の精神
と範囲とに入るすべての修正を包含するものとする。
を実行するデータ処理システムのブロック図である。
いられるスヌープ−再試行プロトコルのタイミング図で
ある。
Claims (3)
- 【請求項1】 それぞれが所定の数の共有バス(20,
22,24,26)に結合された所定の数のバス・マス
タ装置(12,16,17)を有するデータ処理システ
ム(10)において、前記の所定の数の装置のそれぞれ
に結合されたアービタ(14)を用いて、バスの所有権
の割付を制御するためにバス仲裁プロトコルを実現する
方法であって:第1バス・トランザクション中の所定の
出来事の発生の検出に応答して、第1スレーブ装置を介
して、第1制御信号をアサートする段階であって、前記
第1制御信号が、第1バス・マスタ装置に対して、前記
第1バス・トランザクション中の前記の所定の出来事の
発生を通知し、前記第1バス・マスタ装置に、第1共有
バスの所有権の放棄と、前記バス・トランザクションの
再試行を通知する段階;前記第1バス・マスタ装置と所
定の数の潜在的バス・マスタ装置のそれぞれを介して、
前記第1制御信号のアサーションを検出する段階であっ
て、前記の所定の数の潜在的バス・マスタ装置のそれぞ
れと前記第1バス・マスタとは、前記第1制御信号の前
記第1スレーブ装置によるアサーションの検出に応答し
て、前記アービタからバス・リクエスト信号を削除し
て、前記アービタによるバス許可信号のアサーションを
無視する段階;および前記の所定の数の潜在的バス・マ
スタ装置のそれぞれによる、前記バス・リクエスト信号
のアサーションを抑制する段階;によって構成されるこ
とを特徴とする方法。 - 【請求項2】 それぞれが所定の数の共有バス(20,
22,24,26)に結合された所定の数のバス・マス
タ(12,16,17)を有するデータ処理システム
(10)において、前記の所定の数のバス・マスタのそ
れぞれに結合されたアービタ(14)を用いて、バスの
所有権の割付を制御するためにスヌープ−再試行バス仲
裁プロトコルを実現する方法であって:第1バス・トラ
ンザクション中のスヌープ・ヒットの検出に応答して、
第1スヌープ・プロセッサを介して、第1制御信号をア
サートする段階であって、前記第1制御信号が、第1バ
ス・マスタに対して、前記第1バス・トランザクション
中にリクエストされたアドレスに対するデータ・エント
リが、前記スヌープ・プロセッサ内にあることを通知
し、第1共有バスの所有権の放棄と、前記バス・トラン
ザクションの再試行を通知する段階;前記第1バス・マ
スタと所定の数の潜在的バス・マスタのそれぞれを介し
て、前記第1制御信号のアサーションを検出する段階で
あって、前記の所定の数の潜在的バス・マスタのそれぞ
れと前記第1バス・マスタとは、前記第1制御信号の前
記スヌープ・プロセッサによるアサーションの検出に応
答して、前記アービタからバス・リクエスト信号を削除
して、前記アービタによるバス許可信号のアサーション
を無視する段階;および前記の所定の数の潜在的バス・
マスタのそれぞれによる、前記バス・リクエスト信号の
アサーションを抑制する段階;によって構成されること
を特徴とする方法。 - 【請求項3】 スヌープ−再試行バス仲裁プロトコルを
実行して、所定の数の共有バス(20,22,24,2
6)のそれぞれに関してバスの所有権の割付を制御する
データ処理システム(10)であって:複数の独立した
バス・リクエスト信号のそれぞれのアサーションを検出
し、それに応答して、複数の独立したバス許可信号のそ
れぞれを選択的にアサートする第1手段(14);前記
第1手段(14)と前記の所定の数の共有バス(20,
22,24,26)のそれぞれとに結合された第2手段
(12)であって、第1共有バスの第1バス・マスタで
ある前記第2手段(14);前記第1手段(14)と前
記の所定の数の共有バス(20,22,24,26)の
それぞれとに結合された第3手段(16)であって、前
記第3手段は、スヌープ・ヒットの検出に応答して、前
記第1バス・マスタにより実行された第1バス・トラン
ザクションをスヌープし、第1制御信号をアサートし
て、前記第1バス・マスタに対して、前記第1共有バス
の所有権の放棄と、前記バス・トランザクションの再試
行を通知し、前記第2手段(12)が、前記第3手段
(16)から前記第1制御信号が受信されたことに応答
して、前記アービタ(14)から第1バス・リクエスト
信号を削除し、前記アービタによる第1バス許可信号の
アサーションを無視する第3手段(16);および前記
第1手段(14)と所定の数の共有バス(20,22,
24,26)のそれぞれとに結合された第4手段(1
7)であって、前記第4手段(17)は前記第3手段
(16)から前記第1制御信号を受信して、それに応答
して前記第1手段(14)から第2バス・リクエスト信
号を削除し、前記第4手段が前記アービタによる第2バ
ス許可信号のアサーションを無視する第4手段(1
4);によって構成されることを特徴とするデータ処理
システム(10)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84589092A | 1992-03-04 | 1992-03-04 | |
US845890 | 1992-03-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07287686A true JPH07287686A (ja) | 1995-10-31 |
JP3999821B2 JP3999821B2 (ja) | 2007-10-31 |
Family
ID=25296338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06598093A Expired - Lifetime JP3999821B2 (ja) | 1992-03-04 | 1993-03-03 | データ処理システム内でバス仲裁プロトコルを実行する方法および装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5506971A (ja) |
EP (1) | EP0559409B1 (ja) |
JP (1) | JP3999821B2 (ja) |
DE (1) | DE69319763T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697899B1 (en) | 1999-10-20 | 2004-02-24 | Nec Corporation | Bus control device allowing resources to be occupied for exclusive access |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666515A (en) * | 1993-02-18 | 1997-09-09 | Unisys Corporation | Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address |
JP2675981B2 (ja) * | 1993-09-20 | 1997-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スヌープ・プッシュ・オペレーションを回避する方法 |
US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
CA2140685A1 (en) * | 1994-01-28 | 1995-07-29 | Randy M. Bonella | Bus master arbitration circuitry having improved prioritization |
US6049851A (en) * | 1994-02-14 | 2000-04-11 | Hewlett-Packard Company | Method and apparatus for checking cache coherency in a computer architecture |
US6029217A (en) * | 1994-10-03 | 2000-02-22 | International Business Machines Corporation | Queued arbitration mechanism for data processing system |
US5862358A (en) * | 1994-12-20 | 1999-01-19 | Digital Equipment Corporation | Method and apparatus for reducing the apparent read latency when connecting busses with fixed read reply timeouts to CPUs with write-back caches |
US5625824A (en) * | 1995-03-03 | 1997-04-29 | Compaq Computer Corporation | Circuit for selectively preventing a microprocessor from posting write cycles |
US5812815A (en) * | 1995-04-28 | 1998-09-22 | Apple Computer, Inc. | Address tenure control for cache management wherein bus master addresses are internally latched in a cache controller |
US5815676A (en) * | 1995-04-28 | 1998-09-29 | Apple Computer, Inc. | Address bus arbiter for pipelined transactions on a split bus |
US5727172A (en) * | 1995-05-01 | 1998-03-10 | Motorola, Inc. | Method and apparatus for performing atomic accesses in a data processing system |
US5732244A (en) * | 1995-07-24 | 1998-03-24 | Unisys Corp. | Multiprocessor with split transaction bus architecture for sending retry direction to other bus module upon a match of subsequent address bus cycles to content of cache tag |
US5790892A (en) * | 1995-09-29 | 1998-08-04 | International Business Machines Corporation | Information handling system for modifying coherency response set to allow intervention of a read command so that the intervention is not allowed by the system memory |
US5664154A (en) * | 1995-10-02 | 1997-09-02 | Chromatic Research, Inc. | M/A for optimizing retry time upon cache-miss by selecting a delay time according to whether the addressed location's dirty bit indicates a write-back |
DE69733623T2 (de) * | 1996-03-15 | 2006-05-18 | Sun Microsystems, Inc., Santa Clara | Snoopbus für zerteite transaktionen und arbitrierungsverfahren |
KR100201325B1 (ko) * | 1996-03-30 | 1999-06-15 | 유기범 | 다중 프로세서 시스템에서 시스템 버스의 클럭속도를 향상시키는 방법 |
US5845097A (en) * | 1996-06-03 | 1998-12-01 | Samsung Electronics Co., Ltd. | Bus recovery apparatus and method of recovery in a multi-master bus system |
US5815675A (en) * | 1996-06-13 | 1998-09-29 | Vlsi Technology, Inc. | Method and apparatus for direct access to main memory by an I/O bus |
US5954809A (en) * | 1996-07-19 | 1999-09-21 | Compaq Computer Corporation | Circuit for handling distributed arbitration in a computer system having multiple arbiters |
US5875469A (en) * | 1996-08-26 | 1999-02-23 | International Business Machines Corporation | Apparatus and method of snooping processors and look-aside caches |
US6173349B1 (en) * | 1996-10-18 | 2001-01-09 | Samsung Electronics Co., Ltd. | Shared bus system with transaction and destination ID |
US5982672A (en) * | 1996-10-18 | 1999-11-09 | Samsung Electronics Co., Ltd. | Simultaneous data transfer through read and write buffers of a DMA controller |
US5991819A (en) * | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
US5764932A (en) * | 1996-12-23 | 1998-06-09 | Intel Corporation | Method and apparatus for implementing a dual processing protocol between processors |
US5924118A (en) * | 1997-04-14 | 1999-07-13 | International Business Machines Corporation | Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system |
US6078991A (en) * | 1997-04-14 | 2000-06-20 | International Business Machines Corporation | Method and system for speculatively requesting system data bus for sourcing cache memory data within a multiprocessor data-processing system |
US5895484A (en) * | 1997-04-14 | 1999-04-20 | International Business Machines Corporation | Method and system for speculatively accessing cache memory data within a multiprocessor data-processing system using a cache controller |
US6055608A (en) * | 1997-04-14 | 2000-04-25 | International Business Machines Corporation | Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system |
US5900017A (en) * | 1997-05-14 | 1999-05-04 | International Business Machines Corporation | Snooping a variable number of cache addresses in a multiple processor system by a single snoop request |
US6023748A (en) * | 1997-09-12 | 2000-02-08 | Adaptec, Inc. | Multiple client memory arbitration system capable of operating multiple configuration types |
US6260117B1 (en) | 1997-09-18 | 2001-07-10 | International Business Machines Corporation | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency |
US6065098A (en) * | 1997-09-18 | 2000-05-16 | International Business Machines Corporation | Method for maintaining multi-level cache coherency in a processor with non-inclusive caches and processor implementing the same |
US5983024A (en) * | 1997-11-26 | 1999-11-09 | Honeywell, Inc. | Method and apparatus for robust data broadcast on a peripheral component interconnect bus |
US6085271A (en) * | 1998-04-13 | 2000-07-04 | Sandcraft, Inc. | System bus arbitrator for facilitating multiple transactions in a computer system |
US6460122B1 (en) | 1999-03-31 | 2002-10-01 | International Business Machine Corporation | System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment |
US6275906B1 (en) * | 1999-05-20 | 2001-08-14 | International Business Machines Corporation | Coherency maintenance in a multiprocessor system |
US6970936B2 (en) * | 2000-12-19 | 2005-11-29 | International Business Machines Corporation | Data processing system and method of communication that employ a request-and-forget protocol |
US6687795B2 (en) * | 2000-12-20 | 2004-02-03 | International Business Machines Corporation | Data processing system and method of communication that reduce latency of write transactions subject to retry |
US6944698B2 (en) * | 2002-07-08 | 2005-09-13 | International Business Machines Corporation | Method and apparatus for providing bus arbitrations in a data processing system |
US7478025B1 (en) * | 2003-04-18 | 2009-01-13 | Unisys Corporation | System and method to support dynamic partitioning of units to a shared resource |
US8254411B2 (en) * | 2005-02-10 | 2012-08-28 | International Business Machines Corporation | Data processing system, method and interconnect fabric having a flow governor |
US7409481B2 (en) * | 2005-02-10 | 2008-08-05 | International Business Machines Corporation | Data processing system, method and interconnect fabric supporting destination data tagging |
US20060179253A1 (en) * | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | Data processing system, method and interconnect fabric that protect ownership transfer with a protection window extension |
US7474658B2 (en) | 2005-02-10 | 2009-01-06 | International Business Machines Corporation | Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope |
US7451231B2 (en) * | 2005-02-10 | 2008-11-11 | International Business Machines Corporation | Data processing system, method and interconnect fabric for synchronized communication in a data processing system |
US7483428B2 (en) * | 2005-02-10 | 2009-01-27 | International Business Machines Corporation | Data processing system, method and interconnect fabric supporting a node-only broadcast |
US20060179197A1 (en) * | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | Data processing system, method and interconnect fabric having a partial response rebroadcast |
US20060176890A1 (en) * | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | Data processing system, method and interconnect fabric for improved communication in a data processing system |
US8205024B2 (en) * | 2006-11-16 | 2012-06-19 | International Business Machines Corporation | Protecting ownership transfer with non-uniform protection windows |
US7966453B2 (en) | 2007-12-12 | 2011-06-21 | International Business Machines Corporation | Method and apparatus for active software disown of cache line's exlusive rights |
US8667226B2 (en) | 2008-03-24 | 2014-03-04 | Freescale Semiconductor, Inc. | Selective interconnect transaction control for cache coherency maintenance |
US8423721B2 (en) * | 2008-04-30 | 2013-04-16 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8706974B2 (en) * | 2008-04-30 | 2014-04-22 | Freescale Semiconductor, Inc. | Snoop request management in a data processing system |
US8762652B2 (en) * | 2008-04-30 | 2014-06-24 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8131948B2 (en) * | 2008-08-29 | 2012-03-06 | Freescale Semiconductor, Inc. | Snoop request arbitration in a data processing system |
US8131947B2 (en) * | 2008-08-29 | 2012-03-06 | Freescale Semiconductor, Inc. | Cache snoop limiting within a multiple master data processing system |
US8099560B2 (en) * | 2008-08-29 | 2012-01-17 | Freescale Semiconductor, Inc. | Synchronization mechanism for use with a snoop queue |
US8327082B2 (en) * | 2008-08-29 | 2012-12-04 | Freescale Semiconductor, Inc. | Snoop request arbitration in a data processing system |
US11144358B1 (en) | 2018-12-06 | 2021-10-12 | Pure Storage, Inc. | Asynchronous arbitration of shared resources |
CN110034988B (zh) * | 2019-03-26 | 2021-08-24 | 西安抟微科技有限公司 | 数据传输方法及装置、存储介质、处理器 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5654535A (en) * | 1979-10-08 | 1981-05-14 | Hitachi Ltd | Bus control system |
US4602327A (en) * | 1983-07-28 | 1986-07-22 | Motorola, Inc. | Bus master capable of relinquishing bus on request and retrying bus cycle |
US4703420A (en) * | 1985-02-28 | 1987-10-27 | International Business Machines Corporation | System for arbitrating use of I/O bus by co-processor and higher priority I/O units in which co-processor automatically request bus access in anticipation of need |
US4987529A (en) * | 1988-08-11 | 1991-01-22 | Ast Research, Inc. | Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters |
US5060139A (en) * | 1989-04-07 | 1991-10-22 | Tektronix, Inc. | Futurebus interrupt subsystem apparatus |
US5072369A (en) * | 1989-04-07 | 1991-12-10 | Tektronix, Inc. | Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates |
US5041962A (en) * | 1989-04-14 | 1991-08-20 | Dell Usa Corporation | Computer system with means for regulating effective processing rates |
CA2026816A1 (en) * | 1989-11-03 | 1991-05-04 | Paul R. Culley | Enhanced locked bus cycle control in a cache memory computer system |
JPH03189845A (ja) * | 1989-12-13 | 1991-08-19 | Internatl Business Mach Corp <Ibm> | 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム |
US5072363A (en) * | 1989-12-22 | 1991-12-10 | Harris Corporation | Multimode resource arbiter providing round robin arbitration or a modified priority arbitration |
JPH0810445B2 (ja) * | 1990-09-21 | 1996-01-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 動的バス調停方法及び装置 |
US5191649A (en) * | 1990-12-21 | 1993-03-02 | Intel Corporation | Multiprocessor computer system with data bus and ordered and out-of-order split data transactions |
US5257356A (en) * | 1991-05-28 | 1993-10-26 | Hewlett-Packard Company | Method of reducing wasted bus bandwidth due to slow responding slaves in a multiprocessor computer system |
US5276887A (en) * | 1991-06-06 | 1994-01-04 | Commodore Electronics Limited | Bus arbitration system for granting bus access to devices following two-wire bus arbitration protocol and devices following three-wire bus arbitration protocol |
-
1993
- 1993-03-01 EP EP93301522A patent/EP0559409B1/en not_active Expired - Lifetime
- 1993-03-01 DE DE69319763T patent/DE69319763T2/de not_active Expired - Fee Related
- 1993-03-03 JP JP06598093A patent/JP3999821B2/ja not_active Expired - Lifetime
-
1995
- 1995-02-09 US US08/386,252 patent/US5506971A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697899B1 (en) | 1999-10-20 | 2004-02-24 | Nec Corporation | Bus control device allowing resources to be occupied for exclusive access |
Also Published As
Publication number | Publication date |
---|---|
DE69319763D1 (de) | 1998-08-27 |
EP0559409A1 (en) | 1993-09-08 |
JP3999821B2 (ja) | 2007-10-31 |
US5506971A (en) | 1996-04-09 |
DE69319763T2 (de) | 1999-03-11 |
EP0559409B1 (en) | 1998-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07287686A (ja) | データ処理システム内でバス仲裁プロトコルを実行する方法および装置 | |
KR100360064B1 (ko) | 고도로파이프라인된버스구조 | |
JP3787155B2 (ja) | ローカル・バス上の多重プロセッシング・キャッシュ・コヒーレンシ・プロトコル | |
US5426765A (en) | Multiprocessor cache abitration | |
EP0559408B1 (en) | A method and apparatus for performing bus arbitration using an arbiter in a data processing system | |
US5778438A (en) | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests | |
US5611058A (en) | System and method for transferring information between multiple buses | |
US5996036A (en) | Bus transaction reordering in a computer system having unordered slaves | |
US5619726A (en) | Apparatus and method for performing arbitration and data transfer over multiple buses | |
US6018792A (en) | Apparatus for performing a low latency memory read with concurrent snoop | |
KR100381619B1 (ko) | 데이터 전송을 위한 이론적 조정 제공 시스템 및 방법 | |
US5659709A (en) | Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus | |
GB2287110A (en) | Method and apparatus for snoop stretching | |
US6553442B1 (en) | Bus master for SMP execution of global operations utilizing a single token with implied release | |
WO1994008303A1 (en) | Method and apparatus for non-snoop window reduction | |
US6487621B1 (en) | Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle | |
JP3723700B2 (ja) | プロセッサ・インターフェース・バスを通じてデータを転送する方法および装置 | |
US5930485A (en) | Deadlock avoidance in a computer system having unordered slaves | |
US5991855A (en) | Low latency memory read with concurrent pipe lined snoops | |
US5778441A (en) | Method and apparatus for accessing split lock variables in a computer system | |
US7558923B1 (en) | Prevention of live-lock in a multi-processor system | |
US5924118A (en) | Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system | |
JPH07287667A (ja) | アトミック動作バス・システム | |
JPH06282528A (ja) | データ転送方法及びそのシステム | |
JPH05100952A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20031216 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20031216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040623 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040810 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040917 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040927 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070110 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070810 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100817 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110817 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120817 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120817 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130817 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term |