JP3999821B2 - データ処理システム内でバス仲裁プロトコルを実行する方法および装置 - Google Patents

データ処理システム内でバス仲裁プロトコルを実行する方法および装置 Download PDF

Info

Publication number
JP3999821B2
JP3999821B2 JP06598093A JP6598093A JP3999821B2 JP 3999821 B2 JP3999821 B2 JP 3999821B2 JP 06598093 A JP06598093 A JP 06598093A JP 6598093 A JP6598093 A JP 6598093A JP 3999821 B2 JP3999821 B2 JP 3999821B2
Authority
JP
Japan
Prior art keywords
bus
snoop
signal
arbiter
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP06598093A
Other languages
English (en)
Other versions
JPH07287686A (ja
Inventor
ジェイムズ・ビー・ガレット
ウィリアム・シー・モイヤー
マイケル・ジェイ・ガルシア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JPH07287686A publication Critical patent/JPH07287686A/ja
Application granted granted Critical
Publication of JP3999821B2 publication Critical patent/JP3999821B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling 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)

Description

【0001】
【産業上の利用分野】
本発明は、一般に、データ処理システムに関する。さらに詳しくは、バス仲裁(バス・アービトレーション)を実行するデータ処理システムに関する。
【0002】
【従来の技術と発明が解決しようとする課題】
現在の高性能データ処理システムは、オンチップ・キャッシュをもつ複数のマイクロプロセッサを用いている。通常、これらのデータ処理システムは、バスの「スヌープ(検索)動作」と呼ばれる技術を採用して、複数のマイクロプロセッサ間のキャッシュの一貫性を維持している。一般に、バス・トランザクションをスヌープするマイクロプロセッサが「ダーティ」と印をつけられたキャッシュ・エントリ上のキャッシュ・ヒットを検出すると、スヌープ動作を行うマイクロプロセッサ(「スヌーパ」)は、現在の(「元の」)バス・マスタにバスの所有権を放棄させ、後でもう一度バス・トランザクションを再試行させる。スヌーパは、次にバスの所有権を得て、新しいキャッシュ・ラインでメイン・メモリを更新しなければならない。元のバス・マスタは、スヌーパがメモリの更新を完了するまで、キャッシュ・ラインにアクセスするように「再試行」を続けることになる。この過程は通常、「スヌープ−再試行」プロトコルと呼ばれる。
【0003】
従って、スヌープ−再試行のために元のバス・マスタがバスの所有権を放棄すると、ダーティなキャッシュ・ラインをもつスヌーパは、次のバス保有期間(bus tenure)の所有権に対して最優先権を有することが望ましい。基本的には、スヌーパのリクエストに対して、バス所有権に対する「第1のチャンス(最優先権)」が与えられなければ、他のバス・マスタ(元のバス・マスタを含む)は、スヌーパがバスの所有権を獲得することを妨害することもあり、それにより元のバス・トランザクションの進行が遅れる。従来のアービタ(arbiter: 仲裁装置)は、スヌープ・ヒットを示すマイクロプロセッサに最優先権が与えられることを保証することもできるが、これには余分なアービタ入力が必要で、論理もより複雑になる。そのために、外部バス仲裁論理の実現に伴う費用と複雑性とは、複数のバス・マスタを有するデータ処理システムを設計する際の重要な考慮事項となっている。
【0004】
【課題を解決するための手段】
本発明は、1つの形態においては、アービタを用いてスヌープ−再試行バス仲裁プロトコルを実行するデータ処理システムおよびその方法により構成される。データ処理システムは、所定の数のバス・マスタを有し、それぞれのバス・マスタは、所定の数の共有バスを介してメモリ・システムに結合されている。アービタは、所定の数のバス・マスタのそれぞれに結合されて、バス所有権の割付を制御する。スヌープ・プロセッサは、第1バス・トランザクションにおけるスヌープ・ヒットの検出に応答して、第1制御信号をアサートする。第1制御信号は、第1バス・マスタに対して、第1バス・トランザクション中にリクエストされたアドレスに対するデータ・エントリがスヌープ・プロセッサ内にあることを通知して、第1共有バスの所有権の放棄と、バス・トランザクションの再試行とを通知する。第1バス・マスタと所定の数の潜在的バス・マスタのそれぞれとは、スヌープ・プロセッサによる第1制御信号のアサーションを検出すると、それに応答して、それぞれがアービタからバス・リクエスト信号を削除して、バス許可信号(bus grant signal)のアービタによるアサーションを無視する。所定の数の潜在的バス・マスタのそれぞれは、バス・リクエスト信号のアサーションを抑制して、スヌープ・プロセッサが共有バスの所有権を得ることができるようにする。
【0005】
本発明は、以下の詳細な説明と、添付の図面とにより、当業者には理解されるだろう。
【0006】
【実施例】
「アサート(assert)」および「アサーション(assertion) 」という言葉は、信号または類似の装置を論理的に真(能動)の状態にする際に用いられ、それに対して「ニゲート(negate)」および「ニゲーション(negation)」という言葉は、信号またはその他の装置を論理的に偽(非能動)の状態にする場合に用いる。アスタリスク記号は、相補信号を示すために用いられる。たとえば、バス・リクエスト*(BUS REQUEST*)は、バス・リクエスト(BUS REQUEST )信号の相補論理状態の信号を示す。
【0007】
図1には、本発明による多重マスタ・データ処理システム10の好適な実施例が示され、このシステムでは集中化された仲裁システムを用いてスヌープ−再試行プロトコルを実行する。図示された形態においては、仲裁バス20,アドレス・バス22,データ・バス24および転送制御信号ライン26が、データ・プロセッサ(DP)12と他の代替バス・マスタ(ABM)16ないし17とに結合され、それらにより共有されて、外部メモリ・システム18にアクセスする。転送制御信号は、バス・マスタ群(DP12およびABM16,17)とメモリ・システム18との間の基本的な初期接続(ハンドシェーク)部となっている。図1に示されるように、外部アービタ14(仲裁装置)がデータ・プロセッサ12と代替バス・マスタ16,17とに結合され、共有されているアドレス・バス22の割付を制御する。基準クロック発生器11は、バス・マスタ群(データ・プロセッサ12および代替バス・マスタ16),アービタ14およびメモリ・システム18にクロック(CLK)信号を与える。システム10においては、データ・プロセッサ12は、内部のハーバード・アーキテクチャ(Harvard architecture)を用いており、CPUコア30内の命令シーケンサ(図示せず)が命令キャッシュ・メモリ管理ユニット(コード・キャッシュ: CODE CACHE )32から命令を取り出し、CPUコア30内のロード/記憶ユニット(図示せず)がデータ・キャッシュ・メモリ管理ユニット(データ・キャッシュ: DATA CACHE )34に対するデータの読み/書きを実行する。コード・キャッシュ32およびデータ・キャッシュ34は、いずれも内部バス・リクエスト信号を発生し、外部のメモリに対するアクセスが必要なときには、この信号を用いてバス・インターフェース・ユニット(BIU)36に知らせる。
【0008】
従来、データ処理システムは、保有されたあるいは接続されたバス・インターフェースを内蔵して、それによってデータ・プロセッサは、トランザクションが終了するまで、アドレス・バスおよびデータ・バスの両方に対して所有権を保持している。好適な実施例においては、システム10は仲裁プロトコルを用いており、このプロトコルによってアービタ14は、アドレス・バス22の所有権を「公平に」割り付けることができる。これはWilliam C. Moyer他による、本発明の被譲渡人に譲渡された、同時出願特許申請代理人明細書番号SC-01498A 号の「A Method and Apparatus for Performing Bus Arbitration in a Data Processing System 」に開示されている。本発明の図示された形態においては、システム10は複数のバス・マスタを採用しているが、分割バス・トランザクション(split bus transaction )には対応しない。分割バス・トランザクションにおいては、異なる装置がアドレスバス22とデータ・バス24とを一度に制御するので、バス・マスタは、アドレス・バス22とデータ・バス24の両方の所有権に関して仲裁を行わなければならない。
【0009】
しかし、本発明の好適な実施例においては、データ・バス24は、連続的にバス・マスタに対して所有権が認められ、仲裁はアドレス・バス22の支配権についてのみ要求される。それぞれの潜在的バス・マスタ(データ・プロセッサ12および代替バス・マスタ16,17)は、それぞれ独立したバス・リクエスト出力信号BR1 *,BR2 *およびBR3 *と、独立したバス許可入力信号BG1 *,BG2 *およびBG3 *とを有し、これらはアドレス・バス22の仲裁に用いられる。アドレス・バス使用中(address bus busy: ABB*)信号ラインは、仲裁バス20を介してバス・マスタ群により共有される。双方向のABB*信号は、現在のバス・マスタによりアサートされて、潜在的バス・マスタに対して、アドレス・バス22が現在使用できないことを通知する。従って、ABB*信号は、現在のバス・マスタの出力信号であり、すべての潜在的バス・マスタに対する入力である。
【0010】
図1に示されるように、データ・プロセッサ12は、外部バス・アクセスに関して独立している重複する内部リクエストを発生することができる。基本的には内部バス・リクエストは、命令側とロード/記憶側とから同時に発生することができる。あるいは、命令側がすでに外部バスの所有者となっていて、外部バス命令の取り出しを行っているときは、内部リクエストはロード/記憶側から来ることもある(あるいはその逆もある)。BIU36は、アドレス・バス22のアクセスに対して複数の独立内部リクエストを受け取るので、データ・プロセッサ12は内部仲裁スキームを採用する。通常、内部仲裁が必要になるのは、データ・キャッシュ32とコード・キャッシュ34の両方がキャッシュ・ミスを処理しているときに限られる。内部仲裁スキームにおいては、本発明により、外部アドレス共有バス22に対するアクセスについては、スヌープ・コピーバックが内部の最優先権を有する。スヌープ・コピーバックとは、外部メモリ・システム18を特定のキャッシュ・ラインの最新バージョンで更新するバースト書き込みである。データ・プロセッサ12は、再書き込み(write-back)データ・キャッシュ32を用いるので、あるキャッシュ・ラインに対する書き込みにより、メモリ18内の対応するアドレスに「ダーティ」な(古い)データを入れることができる。他のバス・マスタ16,17が、メモリ・システム18内のこの古いデータにアクセスしようとすると、データ・プロセッサ12が介入して、スヌープ・コピーバックによりメモリ・システム18を更新しなければならない。スヌープ・コピーバック動作が実行されると、修正されたキャッシュ・ラインを有するバス・マスタ(たとえばデータ・プロセッサ12)は、そのキャッシュ・ラインをメモリ・システム18に「コピーバック」することができる。これは、リクエストをしているバス・マスタ(たとえばバス・マスタ16)がメモリ・システム18内のデータ(キャッシュ・ライン)にアクセスすることができるようになる前に行われる。このようにスヌープ・コピーバックには、内部では最高の優先権が与えられる。これはアドレス・バス22上の他のプロセッサの前進が、メモリ・システム18の更新が行われるようになるまで、停止されるためである。
【0011】
本発明の好適な実施例により、システム10は、スヌープ−再試行の一貫スキームを利用する。スヌープ−再試行の一貫スキームにより、各バス・マスタは他のバス・マスタにより実行されるバス・トランザクションをモニタして、必要に応じてアクセスに介入して、キャッシュの一貫性を維持することができる。説明を簡単にするために、本発明の動作を「開始プロセッサ」と「スヌープ・プロセッサ」という言葉を用いて説明する。開始プロセッサは、バス・トランザクションの開始時のバス・マスタであり、スヌープ・プロセッサは、バス・トランザクションをスヌープする装置(プロセッサまたはメモリ)である。スヌープ・プロセッサは、外部から開始されたバス・トランザクションをモニタし、すべての全体アドレスと内部データ・キャッシュ・タッグとを比較することにより、バス・トランザクションをスヌープする。有効なエントリに対するデータ・キャッシュ32タッグがバス22上のアドレスに一致すると、スヌープ・ヒットが起こる。基本的には、データ・プロセッサ12と代替バス・マスタ16,17とは2つの異なる独立してアクセスすることのできるタッグのコピーを維持して、バス・スヌープがオンチップ・プロセッサ・データ・キャッシュ・アクセスと並行して起こるようになっている。
【0012】
このため、たとえば、データ・プロセッサ12は外部バス・トランザクションをモニタして(スヌープがイネーブルのとき)、アドレスとデータ・キャッシュ32内のタッグの1つとの間の一致を検出することにより、スヌープ「ヒット」を起こす。図1に示されるように、スヌープがデータ・キャッシュ32内の修正されたエントリ上でヒットすると、データ・プロセッサ12はそのスヌープ状態信号(SSTAT*)をアサートする。システム10の好適な実施例においては、SSTAT*信号とARTRY*信号とに関するタイミングにより、スヌープ・プロセッサ(たとえばデータ・プロセッサ12)から出力されたSSTAT*信号は、各バス・マスタ16,17のARTRY*入力信号に直接的に、あるいは間接的に接続される。このため、ARTRY*信号のアサーションは、データ・プロセッサ12からのSSTAT*信号を介して、開始プロセッサ(たとえばバス・マスタ16)に、修正されたデータがデータ・プロセッサ12によりメモリ18に書き込まれた後で、メモリに対するアクセスを再試行させる。従って、ARTRY*信号のアサーションに応答して、開始プロセッサ(バス・マスタ16)は、そのバス・トランザクションを中断して、アドレス・バス22とデータ・バス24とを解放する。
【0013】
本発明により、ARTRY*がアサートされると、すべての他の潜在的バス・マスタ(たとえば代替バス・マスタ17)は、そのバス・リクエスト信号を削除(ニゲート)して、アービタ14から来るバス許可信号を無視する。各潜在的バス・マスタは、次にBR*信号のアサーションを抑制して、アービタ14がスヌープ・プロセッサ(データ・プロセッサ12)から来たバス・リクエスト以外のバス・リクエストを受け取らないようにする。これはARTRY*信号がニゲートされるまで続く。この抑制スキームにより、スヌープ・プロセッサ(データ・プロセッサ12)は、アドレス・バス22の支配権を獲得して、修正されたキャッシュ・ラインをメモリ18に再度書き込むことができる。
【0014】
図2に示されるのは、本発明のスヌープ−再試行プロトコルの抑制スキームの動作を示すタイミング図40である。図2においては、信号の影になっている部分は「関係のない」状態を示す。この例では、第1クロック期間(CLK1)の間は、開始プロセッサ(たとえばデータ・プロセッサ12)が現在のバス・マスタであり、リクエストされているキャッシュ・ラインに関してビットA31ないしA0を有する所定のアドレス(ここでは「$00020000」と示される)を共有アドレス・バス22に対して移動させることによりキャッシュ・ラインの読み出しを開始する。データ・プロセッサ12がアドレス・バス22の現在の所有者であるので、これがABB*信号をアサートして、それによりアドレス・バス22が現在占有されていることを示す。図示された例においては、リクエストされたアドレスは「ダーティ」アドレスで、ただ1つのプロセッサ(たとえば代替バス・マスタ16)しか、内部データ・キャッシュに記憶されているリクエストされたキャッシュ・ラインに関するデータのコピーをもっていない。リクエストされたキャッシュ・ラインは修正されているので(すなわちキャッシュ・ラインが「ダーティ」であるので)、代替バス・マスタ16は、データ・プロセッサ12をメモリ・システム18内の古いキャッシュ・ラインのデータ(D63−D0)にアクセスさせる前に、修正されたキャッシュ・ラインでメモリ・システム18を更新しなければならない。従って、第3クロック期間(CLK3)中は、代替バス・マスタ16はスヌープ「ヒット」を検出して、SSTAT*信号をアサートすることにより応答する。SSTAT*信号は、ARTRY*信号に結合されているので、ARTRY*信号もまた第3CLK期間中にアサートされる。第4クロック期間(CLK4)の立ち上がり端で、データ・プロセッサ12(開始プロセッサ)は、ARTRY*信号のアサーションを検出し、自分のバス・リクエスト(BR1 *)信号を削除(ニゲート)して、ABB*信号をニゲートすることにより応答して、それによりアドレス・バス22を解放する。代替バス・マスタ16が(スヌープ・ヒットの検出に応答して)SSTAT*信号をアサートしたので、データ・プロセッサ12によるBR1 *信号のニゲーションに応答して、自分のバス・リクエスト(BR2 )信号をアサートする。前述のようにARTRY*がアサートされると、他のすべての潜在的バス・マスタ(すなわち代替バス・マスタ17)は、自分のバス・リクエスト信号を削除(ニゲート)して、アービタ14から来るバス許可信号はすべて無視する。従って、第4クロック期間(CLK4)中は、代替バス・マスタ17は自分のバス・リクエスト(BR3 *)信号をニゲートして、それによりアービタ14は、スヌープ・プロセッサ(代替バス・マスタ16)に対してバスの支配権を許可する。
【0015】
第5クロック期間(CLK5)中は、代替バス・マスタ16が認定されたバスの許可を検出して、スヌープ・コピーバック動作を開始する。ABB*信号は、アドレス・バス22が解放されたときにデータ・プロセッサ12によりニゲートされたので、スヌープ状態(SSTAT*)信号およびアドレス再試行(ARTRY*)信号がニゲートされ、データ・プロセッサ12は、バス・リクエスト信号(BR1 )信号を再度アサートする。代替バス・マスタ16は、アドレス・バス22の所有権を得て、ABB*信号をアサートし、リクエストされたキャッシュ・ラインに関するアドレスをアドレス・バス22上に移動させる。
【0016】
第6クロック期間(CLK6)中は、ARTRY*信号がニゲートされているので、データ・プロセッサ12(開始プロセッサ)と代替バス・マスタ17とは、バス・リクエスト信号BR1 *,BR3 *をそれぞれ再度アサートする。代替バス・マスタ16は、リクエストされたキャッシュ・ラインに関するデータを、データ・バス24を介してメモリ・システム18に移動させ始める。スヌープ・コピーバックが終了すると、代替バス・マスタ16は、クロック期間10(CLK10)中にABB*信号をニゲートして、それによりアドレス・バス22が現在使用可能であることを示す。アービタ14は、BG1 *信号をアサートすることにより、データ・プロセッサ12にアドレス・バス22の支配権を許可する。第11クロック期間(CLK11)中は、データ・プロセッサ12は認定されたバス許可が受け取られたことを検出し、アドレス・バス22の所有権を得て、ABB*信号をアサートすることにより、全体読み込みトランザクションを終了する。
【0017】
このように本発明により、スヌープ・ヒットを検出すると、スヌープ・プロセッサはスヌープ状態信号(SSTAT*)をアサートし、それによって共有アドレス再試行(ARTRY*)信号のアサーションが行われる。ARTRY*信号を受け取ると、それぞれの潜在的バス・マスタ(メモリの更新を行おうとしているスヌープ・プロセッサを除く)は、バス・リクエスト信号を削除(ニゲート)して、アービタ14からすでに受け取っているバス許可信号を無視する。アービタ14が他のすべての潜在的バス・マスタによるバス・リクエスト信号のニゲーションを検出すると、アービタ14は以前にアサートされたバス許可信号をニゲートすることにより応答する。このように、アサートされたバス・リクエスト信号をもつ唯一の装置であるスヌープ・プロセッサに対して、次のバス保有期間中のアドレス・バス22の所有権が保証される。アービタ14は、スヌープ・プロセッサのためのバス許可信号をアサートして、それによりスヌープ・プロセッサは、スヌープ・コピーバック・トランザクションを迅速に実行することができる。
【0018】
本発明は、好適な実施例に関して説明されたが、さまざまな方法で実行できることは当業者には明白であろう。たとえば、図示された形態においては、アービタ14は立ち上がりクロック端上でバス・リクエスト信号のトランザクションに応答する同期状態装置である。アービタ論理がシステム10のタイミング要件(たとえば1クロック仲裁)に充分対応できるほど速ければ、アービタ14を非同期に実現することができることは、当業者には明白であろう。さらに、転送肯定応答(TA*)などの総終了制御信号を用いて、ARTRY*信号を認定し、それにより開始プロセッサにバス・トランザクションの終了を知らせることもできる。また、他の総制御信号を用いると、スヌープ−再試行プロトコル以外のものに関して、複数のバス・マスタ間でバスの支配権の優先順位をつけるように本発明を実行することもできる。従って、添付の請求項により、本発明の精神と範囲とに入るすべての修正を包含するものとする。
【図面の簡単な説明】
【図1】本発明の好適な実施例によるスヌープ−再試行を実行するデータ処理システムのブロック図である。
【図2】本発明による、図1のデータ処理システムで用いられるスヌープ−再試行プロトコルのタイミング図である。
【符号の説明】
10 データ処理システム
11 基準クロック
12,16,17 バス・マスタ
18 メモリ・システム
20,22,24,26 バス
30 CPUコア
32 データ・キャッシュ
34 コード・キャッシュ
36 バス・インターフェース・ユニット

Claims (3)

  1. それぞれが所定の数の共有バス(20,22,24,26)に結合された所定の数のバス・マスタ装置(12,16,17)を有するデータ処理システム(10)において、前記の所定の数の装置のそれぞれに結合されたアービタ(14)を用いて、バスの所有権の割付を制御するためにバス仲裁プロトコルを実現する方法であって:
    前記所定の数のバス・マスタ装置のうちの一つである開始バス・マスタ装置が、キャッシュ・ラインに対応するメモリ・システム(18)のアドレスへのアクセスを要求してバス・トランザクションを開始する段階;
    前記所定の数のバス・マスタ装置のうちの他の一つであるスヌープ・バス・マスタ装置が、前記バス・トランザクション中に当該スヌープ・バス・マスタ装置のダーティなキャッシュ・ラインに対応するメモリ・システム(18)のアドレスへのアクセス要求を検出したときに、そのアクセス要求の検出に応答して第1制御信号をアサートする段階であって、前記第1制御信号が、前記開始バス・マスタ装置に対して、前記バス・トランザクション中の前記アクセス要求の検出を通知し、前記開始バス・マスタ装置に、共有バスの所有権の放棄と、前記バス・トランザクションの再試行を通知する段階;
    前記スヌープ・バス・マスタ装置以外のバス・マスタ装置のそれぞれ、前記第1制御信号のアサーションを検出する段階であって、前記スヌープ・バス・マスタ装置以外のバス・マスタ装置は、前記スヌープ・バス・マスタ装置による前記第1制御信号のアサーションに応答して、前記アービタからバス・リクエスト信号を削除して、前記アービタによるバス許可信号のアサーションを無視する段階
    前記スヌープ・バス・マスタ装置が前記第1制御信号をニゲートするまで、前記スヌープ・バス・マスタ装置以外のバス・マスタ装置のそれぞれによる、前記バス・リクエスト信号のアサーションを抑制して、前記アービタが前記スヌープ・バス・マスタ装置からのみのバス・リクエスト信号を受け取るようにする段階;および
    前記アービタが前記スヌープ・バス・マスタ装置に対して前記共有バスの所有権を許可して、スヌープ・バス・マスタ装置が前記ダーティなキャッシュ・ラインに対応する前記メモリ・システムのアドレスへのスヌープ・コピーバックを実行する段階;
    によって構成されることを特徴とする方法。
  2. それぞれが所定の数の共有バス(20,22,24,26)に結合された所定の数のバス・マスタ(12,16,17)を有するデータ処理システム(10)において、前記の所定の数のバス・マスタのそれぞれに結合されたアービタ(14)を用いて、バスの所有権の割付を制御するためにスヌープ−再試行バス仲裁プロトコルを実現する方法であって:
    前記所定の数のバス・マスタのうちの一つである開始バス・マスタが、キャッシュ・ラインに対応するメモリ・システム(18)のアドレスへのアクセスを要求してバス・トランザクションを開始する段階;
    前記所定の数のバス・マスタのうちの他の一つであるスヌープ・プロセッサが、前記バス・トランザクション中に当該スヌープ・プロセッサのダーティなキャッシュ・ラインに対応するメモリ・システム(18)のアドレスへのアクセス要求を検出したときに、そのアクセス要求の検出に応答して第1制御信号をアサートする段階であって、前記第1制御信号が、前記開始バス・マスタに対して、前記バス・トランザクション中にリクエストされたアドレスに対するデータ・エントリが、前記スヌープ・プロセッサ内にあることを通知するとともに、共有バスの所有権の放棄と、前記バス・トランザクションの再試行を通知する段階;
    前記スヌープ・プロセッサ以外のバス・マスタのそれぞれ、前記第1制御信号のアサーションを検出する段階であって、前記スヌープ・プロセッサ以外のバス・マスタは、前記スヌープ・プロセッサによる前記第1制御信号のアサーションに応答して、前記アービタからバス・リクエスト信号を削除して、前記アービタによるバス許可信号のアサーションを無視する段階
    前記スヌープ・プロセッサが前記第1制御信号をニゲートするまで、前記スヌープ・プ ロセッサ以外のバス・マスタのそれぞれによる、前記バス・リクエスト信号のアサーションを抑制して、前記アービタが前記スヌープ・プロセッサからのみのバス・リクエスト信号を受け取るようにする段階;および
    前記アービタが前記スヌープ・プロセッサに対して前記共有バスの所有権を許可して、スヌープ・プロセッサが前記ダーティなキャッシュ・ラインに対応する前記メモリ・システムのアドレスへのスヌープ・コピーバックを実行する段階;
    によって構成されることを特徴とする方法。
  3. アービタ(14)を用いてスヌープ−再試行バス仲裁プロトコルを実行して、所定の数の共有バス(20,22,24,26)のそれぞれに関してバスの所有権の割付を制御するデータ処理システム(10)であって:
    複数の独立したバス・リクエスト信号のそれぞれのアサーションを検出し、それに応答して、複数の独立したバス許可信号のそれぞれを選択的にアサートする第1手段(14)であって、前記アービタとして機能する第1手段(14);
    前記第1手段(14)と前記の所定の数の共有バス(20,22,24,26)のそれぞれとに結合された第2手段(12)であって、第1共有バスの第1バス・マスタである前記第2手段(12);
    前記第1手段(14)と前記の所定の数の共有バス(20,22,24,26)のそれぞれとに結合された第3手段(16)であって、第1共有バスの第2バス・マスタである前記第3手段(16);および
    前記第1手段(14)と前記の所定の数の共有バス(20,22,24,26)のそれぞれとに結合された第4手段(17)であって、第1共有バスの第3バス・マスタである前記第4手段(17);
    によって構成され、前記第2手段がキャッシュ・ラインに対応するメモリ・システム(18)のアドレスへのアクセスを要求してバス・トランザクションを開始したときに、前記第3手段(16)が当該第3手段(16)のダーティなキャッシュ・ラインに対応するメモリ・システム(18)のアドレスへのアクセス要求を検出した場合、第3手段(16)がそのアクセス要求の検出に応答して第1制御信号をアサートして、前記第2手段に対して、前記第1共有バスの所有権の放棄と、前記バス・トランザクションの再試行を通知し、
    前記第2手段(12)が、前記第3手段(16)から前記第1制御信号を受信したことに応答して、前記第1手段(14)から第1バス・リクエスト信号を削除し、前記第1手段による第1バス許可信号のアサーションを無視し、
    前記第4手段(17)が、前記第3手段(16)から前記第1制御信号を受信したことに応答して、前記第1手段(14)から第2バス・リクエスト信号を削除して、前記第1手段による第2バス許可信号のアサーションを無視し、
    前記第3手段(16)が前記第1制御信号をニゲートするまで、前記第2手段(12)及び前記第4手段(17)がそれぞれ対応するバス・リクエスト信号のアサーションを抑制して、前記第1手段(14)が前記第3手段(16)からのみのバス・リクエスト信号を受け取るようにし、それによって第3手段(16)に対して前記第1共有バスの所有権を許可して、その第3手段(16)が前記ダーティなキャッシュ・ラインに対応する前記メモリ・システムのアドレスへのスヌープ・コピーバックを実行することを特徴とするデータ処理システム(10)。
JP06598093A 1992-03-04 1993-03-03 データ処理システム内でバス仲裁プロトコルを実行する方法および装置 Expired - Lifetime JP3999821B2 (ja)

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 JPH07287686A (ja) 1995-10-31
JP3999821B2 true 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)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
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
US5815676A (en) * 1995-04-28 1998-09-29 Apple Computer, Inc. Address bus arbiter for pipelined transactions on a split bus
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
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
JPH11501141A (ja) * 1996-03-15 1999-01-26 サン・マイクロシステムズ・インコーポレーテッド 分割トランザクション・スヌーピング・バスおよび調停方法
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
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
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
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
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
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
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
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
JP3391315B2 (ja) 1999-10-20 2003-03-31 日本電気株式会社 バス制御装置
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
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
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
US7409481B2 (en) * 2005-02-10 2008-08-05 International Business Machines Corporation Data processing system, method and interconnect fabric supporting destination data tagging
US20060179197A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system, method and interconnect fabric having a partial response rebroadcast
US8254411B2 (en) * 2005-02-10 2012-08-28 International Business Machines Corporation Data processing system, method and interconnect fabric having a flow governor
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
US7483428B2 (en) * 2005-02-10 2009-01-27 International Business Machines Corporation Data processing system, method and interconnect fabric supporting a node-only broadcast
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
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
US8099560B2 (en) * 2008-08-29 2012-01-17 Freescale Semiconductor, Inc. Synchronization mechanism for use with a snoop queue
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
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US5506971A (en) 1996-04-09
DE69319763T2 (de) 1999-03-11
DE69319763D1 (de) 1998-08-27
JPH07287686A (ja) 1995-10-31
EP0559409B1 (en) 1998-07-22
EP0559409A1 (en) 1993-09-08

Similar Documents

Publication Publication Date Title
JP3999821B2 (ja) データ処理システム内でバス仲裁プロトコルを実行する方法および装置
KR100360064B1 (ko) 고도로파이프라인된버스구조
JP3787155B2 (ja) ローカル・バス上の多重プロセッシング・キャッシュ・コヒーレンシ・プロトコル
EP0559408B1 (en) A method and apparatus for performing bus arbitration using an arbiter in a data processing system
US5426765A (en) Multiprocessor cache abitration
US5890200A (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
JP3635634B2 (ja) データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法
GB2287110A (en) Method and apparatus for snoop stretching
EP3644190B1 (en) I/o coherent request node for data processing network with improved handling of write operations
USRE40921E1 (en) Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
JP3723700B2 (ja) プロセッサ・インターフェース・バスを通じてデータを転送する方法および装置
US5822765A (en) System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
US6928525B1 (en) Per cache line semaphore for cache access arbitration
US5778441A (en) Method and apparatus for accessing split lock variables in a computer system
JP3759193B2 (ja) アトミック動作バス・システム
US7558923B1 (en) Prevention of live-lock in a multi-processor system
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
JPH05100952A (ja) データ処理装置
US8108618B2 (en) Method and apparatus for maintaining memory data integrity in an information handling system using cache coherency protocols
JPH06282528A (ja) データ転送方法及びそのシステム
US20020169930A1 (en) Memory access control system, method thereof and host bridge
US6266741B1 (en) Method and apparatus to reduce system bus latency on a cache miss with address acknowledgments
JPH06187230A (ja) メモリ監視制御方法
JPH0962578A (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