JP2501375B2 - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JP2501375B2
JP2501375B2 JP3144145A JP14414591A JP2501375B2 JP 2501375 B2 JP2501375 B2 JP 2501375B2 JP 3144145 A JP3144145 A JP 3144145A JP 14414591 A JP14414591 A JP 14414591A JP 2501375 B2 JP2501375 B2 JP 2501375B2
Authority
JP
Japan
Prior art keywords
bus
address
data
processor
memory
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
Application number
JP3144145A
Other languages
English (en)
Other versions
JPH04271452A (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.)
AT&T Corp
Original Assignee
AT&T Corp
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 AT&T Corp filed Critical AT&T Corp
Publication of JPH04271452A publication Critical patent/JPH04271452A/ja
Application granted granted Critical
Publication of JP2501375B2 publication Critical patent/JP2501375B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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

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)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサデー
タ処理、すなわち、通信システムまたはコンピュータシ
ステムにおけるバス構成に関する。
【0002】
【従来技術】最近のデータ処理システムにおいては、小
さなシステムから出発して、この小さなシステムに、プ
ロセッサモジュールおよびメモリモジュールを付加する
ことにより、さらに大きいシステムに拡大する構成が一
般的に普及している。このような構成により、少数のプ
ロセッサと少数のメモリモジュールでビジネスを開始で
きる。
【0003】そして、ビジネスの要求が拡大するにつ
れ、追加データ処理ロードを取扱うためにプロセッサと
メモリモジュールを付け加えていく。追加プロセッサと
追加メモリモジュールを付け加えた場合、(システムの
最も高価な部分であることが多い)ソフトウェアを維持
したままで、システムのプログラムをやり直すことな
く、追加容量を得ることができる。
【0004】このようなシステムにおいては、メモリを
アクセスするのにプロセッサにより用いられるバス構成
がボトルネックとなる場合が多い。従来技術の代表的バ
ス構成は、時にはテナードバス構成と呼ばれるが、この
ようなバス構成においては、単一メモリコントローラを
用いてすべての主メモリを制御する。この単一メモリコ
ントローラはいずれかのプロセッサによって1度に1つ
ずつアクセスされる。
【0005】このようなプロセッサの1つがメモリコン
トローラを(そしてメモリを)アクセスすると、その他
のプロセッサは主メモリアクセス動作を行うことはでき
ない。この全期間中他のプロセッサは、それら自身の内
部キャッシュメモリを用い他のプロセスにおいて動作す
ることはできるが、主メモリアクセスが必要となるとそ
れらの動作を停止しなければならない。
【0006】このような構成は、安価ではあるが、次の
点から有効とはいえない。すなわち、メモリアクセスで
きないようにロックされたプロセッサはそれらの動作を
停止しなければならないことが多いため、それらのデー
タ処理容量の一部のみが用いられるに過ぎないこととな
る。コンピュータシミュレーションによると、このよう
な構成においては、一般に、およそ5個分のプロセッサ
の処理容量を越えて処理容量を増大させることはでき
ず、たとえ各プロセッサが比較的大きいキャッシュを有
する場合でも、6個のプロセッサによる処理容量は、5
個のプロセッサの処理容量と比べてもほとんど変わら
ず、処理容量を有効に追加することはできない。
【0007】他に提案されている構成として、分割トラ
ンザクションバス構成が存在する。多数のプロセッサが
このバスをアクセスすることができ、さらにこのバス構
成は多数のメモリコントローラをアクセスすることがで
きる。プロセッサは、このバスをアクセスしてメモリコ
ントローラにアドレスを送り、次に他のプロセッサによ
る使用に供するためにこのバスを解放する。
【0008】メモリコントローラは、次にメモリをアク
セスし、メモリアクセスが完了すると、同一バスまたは
独立の応答バスのいずれかが占有的に使用されて、要求
するプロセッサの識別のタグがつけられたデータがプロ
セッサに戻される。この構成は、プロセッサ動作がメモ
リ動作に比べて格段に速かった時には望ましいものであ
った。
【0009】しかし、60ナノ秒のオーダーの読取り時
間を提供する現在の主メモリでは、このような構成の有
効性は殆どない。というのは、他のプロセッサによりバ
スが使用可能となる時間がメモリの読取り時間に匹敵す
るからである。次に説明するようなパイプライン処理を
用いることによって、分割トランザクションバスをもっ
と有効にすることができる。
【0010】すなわち、パイプライン処理において、プ
ロセッサは、1つのインターバルでバスをアクセスし、
メモリコントローラからの応答に対し、第2のインター
バルの間そのバスにおけるアクセスを確保する。分割ト
ランザクション構成およびパイプラインバスの両者とも
テナードバスよりかなり高価であり、しかも、バスのト
ータルスループットに関して実質的な制限を継続して有
するため、プロセッサ数が約10個を越えるとシステム
性能にボトルネックを生ずる。
【0011】それ自身が内部キャッシュメモリをそれぞ
れ有するようなプロセッサを使用した場合に生じる問題
は、次のとおりである。すなわち、1つのプロセッサが
それ自身のキャッシュにおける特定のメモリブロックに
対して動作しており、それと同時に第2のプロセッサが
主メモリからそのメモリブロックをアクセスしていると
いった動作の衝突状況を生じることがある。このような
場合には、要求側のプロセッサにはこの動作の衝突を知
らせることが必要である。従って、主メモリの何らかの
読取りが開始される前に、使用するメモリアドレスをす
べてのプロセッサに送らなければならない。
【0012】そうすることにより、これらのプロセッサ
は、その特定のアドレスがこれらプロセッサのいずれか
のキャッシュにおいて現在修正中のデータのアドレスで
あるかどうかをチェックすることができる。特定のアド
レスが現在修正中のデータのアドレスでない場合、メモ
リを通常の方法でアクセスすることができる。特定のア
ドレスが現在修正中のデータのアドレスである場合、要
求側のプロセッサにこのことを通知し、そのメモリブロ
ックを有するキャッシュに、その修正内容をメモリに書
込むよう要求する。要求側のプロセッサは次に主メモリ
をアクセスしてその情報を得ることができる。
【0013】メモリブロックが2つ以上のプロセッサの
キャッシュで共用され、1つのプロセッサがそのブロッ
クを修正する場合、他のプロセッサには、このメモリブ
ロックの内容のコピーがもはや有効ではないことを通知
しなければならない。このようなチェックを行い、そし
て無効化信号をプロセッサに送り、メモリセグメントの
そのキャッシュコピーの内容の使用に対して警告するこ
との必要性は、共用主メモリマルチプロセッサシステム
における本質的な要件である。
【0014】ある非常に高性能のマルチプロセッサシス
テムでは、複数のバスを用いて複数のプロセッサと複数
のメモリコントローラとを相互接続する。このような構
成は非常に高価なものとなる傾向がある。その理由は、
次の通りである。すなわち、各プロセッサおよび各メモ
リコントローラが多重バスを取扱わなければならない
上、各メモリコントローラおよび各プロセッサが適切な
キューイング装置およびロッキング装置を備え、各種バ
スに対する並列アクセスができるように配慮されなけれ
ばならないからである。
【0015】
【発明が解決しようとする課題】従来技術では次のよう
な経済的で効率の良いバス構成の実現が要求されてい
る。すなわち、実質上複数のプロセッサモジュールから
実質上複数の主メモリモジュールに対するアクセスを提
供可能であり、かつ、プロセッサの間でキャッシュ無効
データを通信可能であるような、経済的で効率の良いバ
ス構成の実現が要求されている。
【0016】
【課題を解決するための手段】上記課題は本発明により
解決され、技術的進歩が達成される。すなわち、本発明
において、複数のプロセッサは、複数のメモリモジュー
ルのすべてに接続された単一のアドレスバスにアクセス
し、これらのメモリモジュールは複数のデータバスによ
って応答する。データバスのどれも、すべてのメモリモ
ジュールに接続されることはない。
【0017】特定の一実施例では、メモリモジュールは
偶数モジュールと奇数モジュールに分けられ、偶数モジ
ュールは偶数データバスによって応答し、奇数モジュー
ルは奇数データバスによって応答する。この場合、デー
タバスはまたメモリモジュールに書込みを行うために用
いられる。
【0018】本発明の1つの特徴において、アドレスは
メモリモジュールに送られるのみならずまたプロセッサ
にも送られ、これにより、これらのプロセッサは、アド
レスに対応するデータがすでにそのプロセッサのキャッ
シュに記憶されているかどうかをチェックすることがで
きる。アドレスに対応するデータがすでにキャッシュに
記憶されている場合、そのプロセッサは、一定の信号、
すなわち、その情報が別のプロセッサのキャッシュに存
在することを表すと共に、その情報の状態を示す信号に
よって、独立のスヌープバスに応答する。もしその情報
が、事実上修正されていた場合、要求側のプロセッサに
より要求されたデータは、主メモリではなく、そのキャ
ッシュにこのデータが見出されたプロセッサにより提供
される。
【0019】このような各アドレスは、アドレスバスに
よって単一クロックサイクルの間に送られ、そのアドレ
スに対する応答はデータバスの1つによって4クロック
サイクルの間に戻される。データワードはアドレスワー
ドより長いので、単一のデータバスを用いて、このデー
タバスより長いデータワードを、アドレスバスにおける
クロックサイクルの損失なしにプロセッサに戻すことが
できる。複数のデータバスは、広範囲のシステムパラメ
ータに対してバス資源をさらに十分に活用する機会を提
供する。
【0020】アービトレーションバスを用いて、アドレ
スバスにアクセス可能なプロセッサの選択を援助する。
クロックの各奇数フェーズの間に、アービトレーション
バスを用いて、偶数アドレスを伝送するための次のプロ
セッサの選択を援助し、また各偶数フェーズの間に、ア
ービトレーションバスを用いて、次の奇数アドレスを伝
送するためのプロセッサの選択を援助する。
【0021】アービトレーション機能は、集中化される
と共に分散化される。各プロセッサは、その他のすべて
のプロセッサからの要求信号に対してアクセスできる。
各プロセッサのローカルアービタ(分散アービタ)は、
そのプロセッサがその次の利用可能なクロックパルスを
使用できるか否かを判断する。集中アービタ(グローバ
ルアービタ)は、次のような機能を許容するためにアー
ビトレーションバスで追加許可情報を与える。
【0022】すなわち、アクセスを許可したり、またア
ドレス指定バスに対してアクセスできないように一時的
に選択したプロセッサをロックしたりする機能である。
その一方で、先に選択したプロセッサは割込みを受けな
い多重アクセス動作を完了する。アービトレーション構
成は次のような機能を許容する。すなわち、アービトレ
ーションサイクルの始めに偶数フェーズまたは奇数フェ
ーズの1つに対しアクセスを要求したすべてのプロセッ
サは、次のアービトレーションサイクルの開始の前に一
度処理される。
【0023】バス周波数は、個別プロセッサの基本クロ
ック周波数の2分の1である。より速いプロセッサが開
発されるのにともない、これらのプロセッサはこれら新
プロセッサのクロック速度の3分の1または4分の1の
速度を用いてバスにアクセスし、適応できるようになっ
た。さらに、これらの新しいプロセッサは、クロックが
ある共通のソースから得られている場合、古いクロック
速度で動作する古いプロセッサと組合わせることができ
る。
【0024】MESI(修正、排他的、共用、無効)の
プロトコルが、キャッシュコヒーレンシーのために用い
られる。Mは、キャッシュにおける情報が修正されたこ
とを示す状態である。Eは、キャッシュにおけるコピー
が排他的(すなわち、このメモリブロックの情報を含む
キャッシュは他にはない)であることを表わす状態であ
る。Sは、このキャッシュにおける情報が別のキャッシ
ュにおける情報と共有できることを示す共用状態であ
る。Iは、無効情報、すなわちこのキャッシュブロック
における情報が、メモリからの更新なしには使用できな
いことを示す状態である。
【0025】このプロトコルは、データ処理システムに
おいては周知の一般的なプロトコルであり、特に、本発
明のタイプのバス構成に適合する。これらの状態の知識
は、次のような動作を行うために必要である。すなわ
ち、他のプロセッサに無効を報告し、アドレスがアドレ
スバスで検出された場合には、キャッシュエントリを無
効にし、別のプロセッサが対応データをフェッチした場
合には、状態を排他的または修正から共用に変え、さら
に、キャッシュにおけるデータが修正されたかどうかを
追跡する動作である。
【0026】ディスクコントローラまたは他の周辺装置
は、1つのプロセッサのように取扱うことができる。主
メモリがディスクから更新される度に、このプロセッサ
は主メモリで更新中のすべてのアドレスに関する無効信
号を送る。このタイプの構成は、安価な高性能バス相互
接続スキームを有する産業用標準キャッシュコヒーレン
シースキームの使用を可能にする。このスキームは複数
のプロセッサと複数のメモリコントローラを相互接続す
るものである。
【0027】アドレスバスを用いてメモリ読取り要求と
無効要求の両方に関するアドレスを伝送する。メモリ要
求は、応答を伝送するのにデータバス上で4バスサイク
ルを占有する。アドレスは1バスサイクルを用いて伝送
される。データバスは2つあるので、メモリ読取り/書
込み要求は2バスサイクル毎にのみ行うことができる。
メモリアドレス指定に使用されないバスサイクルはいず
れも無効アドレスの伝送に利用可能である。
【0028】
【実施例】図1は8つのプロセッサと4つのメモリモジ
ュールを相互接続するバス相互接続スキームを示すブロ
ック図である。各メモリモジュールはそれ自身のコント
ローラを有している。8つのプロセッサ100−1,・
・・,100−8はまた、P1,・・・,P8で示され
るが、これらのプロセッサは、それぞれ、メモリアクセ
スバス、すなわち共通アドレスバス120、奇数データ
バス131、および偶数データバス133に接続されて
いる。メモリモジュールは、それぞれ、アドレスバス1
20に接続されると共に、2つのデータバス131,1
33のうちの1つだけに接続されている。この場合、メ
モリ111,113は奇数データバス131に接続さ
れ、メモリ112,114は偶数データバス133に接
続されている。
【0029】アドレスバスは、両メモリモジュールをア
ドレス指定するのに用いられ、また主メモリでアクセス
されるアドレスを各プロセッサのキャッシュ147に通
報するのに用いられる。もしメモリアドレスが主メモリ
に伝送され、このメモリアドレスが1つの他のプロセッ
サのキャッシュに記憶されたアドレスに一致すると、次
の動作が行われる。
【0030】すなわち、もしキャッシュエントリが
“M”(修正)状態として識別されると、その修正デー
タは、そのプロセッサのキャッシュから、適当な奇数デ
ータバスまたは偶数データバスによって要求側のプロセ
ッサに戻され、主メモリはまた同時に更新される。も
し、キャッシュエントリがE(排他的)状態としてマー
クされると、このE状態はS(共用)状態に変換され、
情報を得るためにメモリがアクセスされる。
【0031】本実施例において、他のキャッシュの代り
にメモリをアクセスすることは好ましく、それによって
他のプロセッサの動作の割込みの可能性を回避できる。
もしキャッシュエントリが共用(“S”)状態にある
と、要求側のプロセッサは、通知を受け、共用状態にお
いてのそれ自身のキャッシュで被アクセスメモリのそれ
自身のバージョンをマークする。もしデータの現在有効
なキャッシュコピーがない場合、このような動作は要求
されない。
【0032】主メモリをアクセスするプロセッサが、修
正信号の読取り要求を用いてアクセスを行い、その上、
そのキャッシュにおけるそのメモリの別のコピーを有す
るプロセッサが修正状態にあるような場合、そのプロセ
ッサは要求側のプロセッサにそのデータを供給し、その
データ無効のそれ自身のキャッシュコピーをマークす
る。また、その他のプロセッサがE(排他的)またはS
(共用)状態にあるそれ自身のキャッシュにおいてその
メモリのコピーを有する場合、そのキャッシュエントリ
は無効とマークされる。
【0033】プロセッサがそれ自身のキャッシュに存在
しないデータをアクセスする場合、そのプロセッサは、
前記のように、主メモリから、またはその他のキャッシ
ュの1つからこのデータを得なければならない。主メモ
リに保存されるデータおよび1つ以上のプロセッサのキ
ャッシュに保存されうるデータを、MESIプロトコル
を用いて処理するプロセスは、従来周知であり、例え
ば、次の文献に記載されている。
【0034】ジェイ・アーチボールド(J.Archi
bald)、ジェイ・ベア(J.Baer)、“キャッ
シュコヒーレンスプロトコル:マルチプロセッサシミュ
レーションモデルを用いる評価”、ACM Tran
s.on Comp.Systems、第4巻、第4
号、1986年、273〜298頁; エム・エス・パ
パマルコス(M.S.Papamarcos)、ジェイ
・エイチ・パテル(J.H.Patel)、“プライベ
ートキャッシュメモリを有するマルチプロセッサに対す
る低オーバヘッドコヒーレンス解法”、Proc. 1
1th Annual Int´l.Symp.on
Computer Architecture、198
4年、348〜354頁; ピー・スウィジー(P.S
weazy)、エイ・ジェイ・スミス(A.J.Smi
th)、“コンパチブルキャッシュコンシステンシープ
ロトコルのクラスおよびIEEEフューチァバスによる
それらのサポート”、Proc.13th Annua
l Int´l.Symp.on Computer
Architecture、1986年、414〜42
3頁。
【0035】アービトレーションスキームは、アドレス
バスに対しアクセスを要求する幾つかのプロセッサの中
から、そのようなアクセスを行うことのできるプロセッ
サを選択するのに必要である。このアービトレーション
スキームは、バス120の奇数クロックサイクルと偶数
クロックサイクルに対するアービトレーションを制御す
るための出力143,144をそれぞれ有する1対の集
中アービタ141,142、および各プロセッサ内にお
ける2個のアービタ145の分散セットを必要とする。
【0036】より詳細には、各集中アービタ(図3)は
2つの出力を有する。すなわち、バスをアクセスするた
めにその内部分散アービタによりどのプロセッサが選択
され、実際にバスをアクセスできるかということを示す
グラント出力、および、他のプロセッサによるどのよう
な介入動作もなく、同じメモリモジュールに、もしくは
異なるモジュールに対してさえ、そのプロセッサが2つ
以上の連続アクセスを行うことを可能にするため、その
プロセッサが追加メモリアクセスサイクルにおけるアク
セスを予め許可されているかのように、そのプロセッサ
にアクセスを許可するロック出力である。
【0037】各集中アービタへの入力信号としては次の
ような信号がある。すなわち、プロセッサのいずれかが
バスへのアクセスを要求している場合、ロー(オープン
コレクタ“OR”回路)である共通要求信号と、先の動
作が、プロセッサが他のプロセッサをロックアウトする
ことにより別のサイクルにおいてバスの制御の保持を望
む種類の動作であったことを示すアドレス指定バス12
0からのロック信号と、そのバス動作が、主メモリをア
クセスするため、または1つのプロセッサのキャッシュ
から要求側のプロセッサにデータを転送するための動作
であることを示す読取り/書込み信号と、アドレスバス
でのアドレスに関する他のキャッシュにおける情報は無
効とマークされなければならないことを示す無効信号で
ある。
【0038】キャッシュライン境界をクロスするデータ
の修正も時には必要である。その場合、他のプロセッサ
がこのデータのいずれか一部をアクセスしないように偶
数バスおよび奇数バスの両者をロックすることが必要で
ある。これらのバスはトランザクションが完了するまで
ロックされる。無効信号は両キャッシュラインに対し送
られる。
【0039】1対の分散アービタ145(図4)は、偶
数サイクルおよび奇数サイクルにおいてアドレスバスを
アクセスするために、各プロセッサに設けられている。
入力信号としては次のような信号がある。すなわち、内
部読取り/書込み要求信号と、バスにアクセスできるよ
うに許可されうる次のプロセッサを示すコード化プライ
オリティ信号と、このプロセッサのプライオリティレベ
ルを示すプライオリティレベル信号と、集中アービタか
らのグラント信号とロック信号である。また、出力信号
は、プロセッサのアドレスバスへのアクセスを可能にす
る、すなわちそのバストランザクションを開始させるイ
ネーブル信号である。
【0040】幾つかのリード線の各々において、長さ
1,2,4,8の、交互に接続および非接続とされたセ
グメントを有するバス構成を用いて、プロセッサを相互
接続する。このような構成は、米国特許第4,597,
084に示されている。図3の構成を用いて各プロセッ
サからの抑止信号の伝送・非伝送により、次のような条
件の下でアドレスバスを捕らえる試行を行う。すなわ
ち、バスを捕らえるための試行は、最高ランクのプロセ
ッサのみが行うことができ、低ランクのその他すべての
プロセッサはバスを捕らえることを抑止されるという条
件である。
【0041】メモリ要求は、応答を伝送するのにデータ
バスにおける4バスサイクルを占有する。アドレスは1
バスサイクルを用いて伝送される。2つのデータバスが
あるので、メモリ読取り/書込み要求は2バスサイクル
毎にのみ行うことができる。残りのバスサイクルは無効
要求に対しアドレスを送るのに利用可能である。好都合
に、このような構成はアドレスバスをさらに効率よく利
用できるものである。
【0042】本実施例では、アドレスバスは、32ビッ
トであり、60.6ナノ秒の、16.5メガヘルツのク
ロックに等しいバスサイクルで動作する。各キャッシュ
ラインは、32バイトであり、1つのアドレスに対する
主メモリからのエンティティ読取り量に一致する。各デ
ータバスは64ビットであり、4バスサイクルで32バ
イトの読取り量を伝送することができる。メモリモジュ
ールは、各アクセス動作に対し128ビット(16バイ
ト)を読取れるように編成され、受取られた各アドレス
に応答して2つのアクセスを行う。要求側のプロセッサ
の待ち時間を最小にするために、アドレスされた特定バ
イトの内容は、全キャッシュラインの内容を送るのに要
する4バスサイクルのうちの第1のバスサイクルによっ
て送られる。
【0043】図2は、各種のバスで使用のタイミングダ
イヤグラムの説明例である。タイミング信号は、集中ア
ービタ141,142からの信号によりきめられ、奇数
と偶数が交互になっている。奇数メモリモジュールに対
するアドレスは奇数サイクルでのみ伝送され、偶数メモ
リモジュールに対するアドレスは、偶数アドレスサイク
ルでのみ生成される。
【0044】タイミングチャートの上の2つのライン
は、偶数アービタが奇数クロックインターバルの間にそ
の出力を生成すること、および奇数集中アビータが偶数
クロックインターバルの間にその出力を生成することを
示し、そして集中アービタからのグラント信号に応答し
てそれらの内部アービタにより選択されたプロセッサの
識別を示す。このタイミングチャートによりこれらアー
ビタ出力が間に合うように受取られ、次のクロックパル
スでアドレス信号を制御する。
【0045】タイミングダイヤグラムの第3のライン
は、いずれか1つのインターバルにおいて、ローカルア
ービタにより決められるプライオリティを有するところ
の各種プロセッサによるアドレスバス上の信号を示す。
第1のインターバルの間に、P1はアドレスバスによっ
てアドレスを送り、奇数メモリモジュールをアドレス指
定する。第2のインターバルで、P6はアドレスバスに
よってアドレスを送り、偶数メモリモジュールをアドレ
ス指定する。また第2のインターバル2の間に、P1以
外の他の各プロセッサは次のことをチェックする。
【0046】すなわち、第1のインターバル1の間に奇
数アドレスバスに送られたアドレスが、そのキャッシュ
におけるどのタグに一致するかということをチェックす
る。一致した場合には、キャッシュエントリの状態が
“M”であれば、インターバル5〜8の間にそのキャッ
シュメモリからのデータに応答するようにそのプロセッ
サは準備される。この動作が生じる信号は、第3のイン
ターバルの間にスヌープバスによって送られ、アドレス
指定されたメモリモジュールによって用いられ、このメ
モリモジュールがクロックサイクル5〜8の間にデータ
を送ることを抑制すると共に、バスにデータを送るとき
にその内容を更新させる。そして、メモリは読取り信号
に対しその内容を更新し、読取りを止め信号を修正す
る。
【0047】インターバル3の間に、P3は、一定の機
能を先に行って、“共用”とマークされたキャッシュの
エントリを修正すべきことを確認し、そのメモリアドレ
スに対する無効信号を、奇数バスによって、他のプロセ
ッサに送る。これにより、その他のプロセッサは、この
アドレスのそれらのキャッシュにおけるそれらのコピー
を、無効とマークする。もしこれらのプロセッサが次に
そのメモリをアドレス指定しようとする場合、メインメ
モリをアドレス指定することによりそれを行う。
【0048】クロックピリオド4の間に、P4は、偶数
バスによって、同様のタイプの無効アドレスをすべての
他のプロセッサに送る。インターバル5とインターバル
6で、P5とP2は、先にP1とP6に対し説明したの
と同様の方法で、奇数メモリモジュールと偶数メモリモ
ジュールをそれぞれアドレス指定する。P5およびP2
は、アドレスバスにアクセスできるようにそれらの分散
アービタにより選択され、奇数モジュールアドレスおよ
び偶数モジュールアドレスをそれぞれ送る。
【0049】インターバル7とインターバル8で、P8
およびP7は、プロセッサ3,4に対しインターバル
3,4について先に説明したのと同様に、無効アドレス
を送る。インターバル9とインターバル10で、P4お
よびP3は、インターバル1,2について先に説明した
のと実質上同様にしてアドレスバスをアクセスし、奇数
メモリモジュールと偶数メモリモジュールをアクセスす
る。
【0050】これらのアドレス信号に応答して、図2の
第4のラインと第5のラインに示されるように、メモリ
は奇数データバスおよび偶数データバスで応答する。イ
ンターバル5〜8においては、第1のインターバルでP
1により生成されたアドレスに対する応答が、奇数デー
タバス131によりP1に送られる。インターバル9〜
12においては、インターバル5でP5により生成され
たアドレスに対する応答が、奇数データバス131によ
り戻される。インターバル13〜16においては、イン
ターバル9でP4により生成されたアドレスに対する応
答が、奇数データバス131により戻される。
【0051】同様に、偶数データバス133において
は、インターバル6〜9の間に、インターバル2でP6
により生成された要求に対する応答が戻される。クロッ
クサイクル10〜13の間に、インターバル6でP2に
より生成されたアドレスに対する応答が戻される。また
インターバル14〜17では、インターバル10でP3
により生成されたアドレスに対する応答が戻される。本
実施例では、プロセッサP3は、プロセッサP1からク
ロックインターバル14〜17の間にデータを受取って
いるが、ここでP1はM(修正)状態としてマークされ
たそれ自身のキャッシュでこのデータを有するものであ
る。
【0052】図2の第6のラインの信号は、アドレスバ
ス120より送られたアドレスに応答するプロセッサ信
号を示すスヌープ信号である。第1インターバルでP1
によりアドレスバス120を介して送られたアドレス信
号は、その他のすべてのプロセッサにより受取られ、第
2インターバルでそれらのプロセッサの各々のキャッシ
ュにおけるタグフィールドと比較される。第3インター
バルで、もしプロセッサのいずれかが一致を見出した場
合、そのプロセッサは、スヌープバスで4つの信号のう
ちの1つを送ることができる。
【0053】共用信号は、その伝送側のプロセッサが、
要求されたメモリのコピーをそのキャッシュ内に有し、
“S”状態としてマークされ、そのコピーを保持するこ
とを示す。読取りを要求されたプロセッサは、共用信号
の受信に応答して、共用状態にそのキャッシュエントリ
をマークする。アドレスを受取ったプロセッサは、その
キャッシュエントリがE(排他的)状態にある場合、こ
の状態を共用に変え、共用信号を発信する。
【0054】スヌープバスにおいて伝送可能な第2の信
号は、データ介入(信号)である。この信号は、アドレ
スを受取ったプロセッサが、対応するキャッシュエント
リをM状態で有する場合に生成される。その場合、その
プロセッサは、メモリモジュールに代わってデータを供
給する。アドレス指定されたメモリモジュールは、この
データ介入信号の受信に応答し、読取り出力を生成する
ことなく、信号を修正する指令が発せられない限りにお
いて、その内容を更新する。
【0055】第3の信号は、アボート信号である。この
信号は、受信側のプロセッサが対応するメモリエントリ
を変更する過程にあるか、もしくは先の要求を処理する
ためにビジーであり、従って、読取りを実行するのによ
いタイミングではないことを示すものである。読取り側
のプロセッサは、アボート信号に応答して、再度読取り
を試み、そして通常は成功する。
【0056】最後に、第4の信号はエラー信号である。
この信号は、そのメモリに対する読取り要求とエラー信
号を生成するプロセッサに付随するキャッシュの状態と
の不一致を示す。例えば、もし第1のプロセッサが、第
2のプロセッサにおけるキャッシュメモリ内容を無効に
しようと試みる場合であって、かつ、この第2のプロセ
ッサにおいて、そのキャッシュメモリ内容が修正状態に
マークされている場合、その無効にされる内容が共用状
態である場合のみその内容は無効にされる。
【0057】図2の例では、スヌープ状態に対し示され
たエントリは、その信号が応答しているプロセッサを表
わす。本実施例では、インターバル3,4,5,6,お
よびインターバル8,9,10,11で、スヌープバス
において信号が生成されることはない。インターバル7
においては、プロセッサP1によって共用信号が生成さ
れる。それは、クロックサイクル5でプロセッサP5に
より生成されたアドレスが、実際にプロセッサP1によ
り共用されるからである。この場合、P5はそれが共用
状態において受取るメモリ読取り要求をマークし、P1
はそのアドレスに対しそのキャッシュエントリに“共
用”をマークする。
【0058】インターバル12において、スヌープバス
はインターバル10でプロセッサP3により生成された
アドレスに対する応答を有する。本実施例では、P6は
そのキャッシュにおいてこのメモリのコピーを有し、そ
のコピーは修正とマークされる。したがって、P6はイ
ンターバル12でスヌープバスにおいてデータ介入信号
を生成し、インターバル14〜17で偶数データバスに
そのキャッシュの内容を送る。
【0059】以上の説明は、本発明の一実施例に関する
もので、この技術分野の当業者であれば、本発明の種々
の変形構成例が考え得るが、それらはいずれも本発明の
技術的範囲に包含される。
【0060】
【発明の効果】以上述べたごとく、本発明により、複数
のプロセッサモジュールから複数の主メモリモジュール
に対するアクセスを提供可能であり、かつ、プロセッサ
の間でキャッシュ無効データを通信可能であるような、
経済的に安価でシステム効率のよい、優れたバス構成を
提供することができる。
【図面の簡単な説明】
【図1】本発明のバス構成を用いるマルチプロセッサシ
ステム例を示すブロック図である。
【図2】この構成の時分割バスでのインターバルの使用
を説明する図である。
【図3】アドレスバスをアクセスするプロセッサを選択
するために集中アービタで処理される信号を説明する図
である。
【図4】アドレスバスをアクセスするプロセッサを選択
するために分散アービタで処理される信号を説明する図
である。
【符号の説明】
100−1 プロセッサ 100−2 プロセッサ 100−3 プロセッサ 100−4 プロセッサ 100−5 プロセッサ 100−6 プロセッサ 100−7 プロセッサ 100−8 プロセッサ 111 メモリモジュール 112 メモリモジュール 113 メモリモジュール 114 メモリモジュール 120 アドレスバス 122 スヌープバス 131 奇数データバス 133 偶数データバス 141 集中アービタ(CA) 142 集中アービタ(CA) 143 出力 144 出力 145 分散アービタ(DA) 147 キャッシュ

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】 データを処理する複数のプロセッサ手段
    と、複数の主メモリモジュールと、前記プロセッサと前
    記メモリモジュールを相互接続するバス手段とを含むマ
    ルチプロセッサシステムにおいて、前記バス手段が、複
    数の時間インターバルで複数のアドレスを伝送するため
    に、すべての前記プロセッサ手段およびすべての前記メ
    モリモジュールに接続された時分割アドレスバスと、デ
    ータバスの各々が、前記メモリモジュールのうちの一部
    のサブセットおよび前記プロセッサ手段のすべてに接続
    された複数のデータバスを有し、さらに、第1の前記デ
    ータバスに接続された第1のメモリモジュールおよび第
    2の前記データバスに接続された第2のメモリモジュー
    ルは、前記時分割アドレスバスから異なるタイムインタ
    ーバルの間にアドレスを受取り、かつ、この第1と第2
    のメモリモジュールの各々は、受取ったアドレスに応答
    して、このアドレスの1つに記憶されたデータを、前記
    第1のデータバスと前記第2のデータバスにより、時間
    的に重複する形で伝送することを特徴とするマルチプロ
    セッサシステム。
  2. 【請求項2】 前記プロセッサ手段の各々は、キャッシ
    ュメモリ手段を有し、このキャッシュメモリ手段は、デ
    ータおよび対応するアドレスを記憶する手段であり、か
    つ、前記プロセッサのキャッシュメモリ手段に記憶され
    たデータの前記対応するアドレスと照合するために、前
    記アドレスバスによりアドレスが前記プロセッサに伝送
    されることを特徴とする請求項1に記載のシステム。
  3. 【請求項3】 前記プロセッサの1つが、前記アドレス
    バス上のアドレスと前記1つのプロセッサのキャッシュ
    メモリ手段に記憶されたデータの前記アドレスとの一致
    を検出したことを表す信号を送るために、前記プロセッ
    サの各々に接続されたスヌープバスをさらに有すること
    を特徴とする請求項2に記載のシステム。
  4. 【請求項4】 前記信号は、前記1つのプロセッサのキ
    ャッシュメモリ手段に記憶されたデータの前記アドレス
    に付随するデータの状態を特徴づけるデータを送る信号
    であることを特徴とする請求項3に記載のシステム。
  5. 【請求項5】 前記状態のうちの1つの状態に対し、前
    記1つのプロセッサは、前記メモリモジュールの1つか
    らのデータの代わりに、前記データバスの1つにそのキ
    ャッシュメモリ手段のデータを与えることを特徴とする
    請求項4に記載のシステム。
  6. 【請求項6】 前記状態のうちの前記1つの状態に対
    し、前記1つのプロセッサは、前記メモリモジュールの
    前記1つにそのキャッシュメモリ手段のデータを与える
    ことを特徴とする請求項5に記載のシステム。
  7. 【請求項7】 MESI(修正、排他的、共用、無効)
    のプロトコルが、前記キャッシュメモリ手段の間でキャ
    ッシュコヒーレンシーのために用いられ、かつ、前記ア
    ドレスバスは、前記プロセッサに無効アドレスを送るこ
    とを特徴とする請求項2に記載のシステム。
  8. 【請求項8】 前記データバスのうちの異なるデータバ
    スは、前記メモリモジュールの互いに分離したサブセッ
    トに接続されることを特徴とする請求項1のシステム。
  9. 【請求項9】 前記データバスの各々は、前記メモリモ
    ジュールのサブセットのいずれか1つから前記複数のプ
    ロセッサのいずれか1つに読出し(読取り)信号を送
    り、かつ、前記複数のプロセッサのいずれか1つから前
    記メモリモジュールの前記サブセットのいずれか1つに
    書込み信号を送ることを特徴とする請求項1に記載のシ
    ステム。
  10. 【請求項10】 前記アドレスバスに対するアクセス
    は、アービトレーション手段により割当てられることを
    特徴とする請求項1に記載のシステム。
  11. 【請求項11】 前記アービトレーション手段は、グロ
    ーバルアービタおよび複数の分散アービタを有すること
    を特徴とする請求項10に記載のシステム。
  12. 【請求項12】 1つのアービトレーションサイクルの
    間に前記アドレスバスに対するアクセスを要求するすべ
    てのプロセッサは、前記サイクルの間に一度処理される
    ことを特徴とする請求項11に記載のシステム。
  13. 【請求項13】 プロセッサの間にアービトレーション
    情報を分散するためのアービトレーションバスをさらに
    有することを特徴とする請求項10に記載のシステム。
  14. 【請求項14】 前記アービトレーション手段は、グロ
    ーバルアービタおよび複数のローカルアービタを有し、
    各ローカルアービタは、それぞれプロセッサに付属的に
    設けられ、かつ、前記アービトレーションバスは、前記
    グローバルアービタと前記ローカルアービタの間で信号
    を伝送することを特徴とする請求項13に記載のシステ
    ム。
  15. 【請求項15】 各ローカルアービタは、それを付属的
    に有するプロセッサが次の時間インターバルにアドレス
    を伝送することができるか否かを判断するために、前記
    グローバルアービタおよび他のローカルアービタから信
    号を受信することを特徴とする請求項14に記載のシス
    テム。
  16. 【請求項16】 前記時分割アドレスバスは、前記プロ
    セッサの間で無効アドレスを送ることを特徴とする請求
    項1に記載のシステム。
  17. 【請求項17】 前記時分割アドレスバスは、タイムス
    ロットの間に1つのアドレスを伝送可能であり、かつ、
    このアドレスバスは、タイムスロットの幾つかの固定部
    分の間に前記メモリモジュールに関するアドレスを伝送
    するために利用可能であり、さらに、メモリモジュール
    アドレスが伝送されていない場合には常に、無効アドレ
    スを伝送するために利用可能であることを特徴とする請
    求項16に記載のシステム。
  18. 【請求項18】 前記プロセッサの1つは、周辺メモリ
    モジュールを制御する周辺メモリコントローラを有し、
    かつ、前記1つのプロセッサは、主メモリモジュールが
    前記周辺メモリモジュールから更新される場合に無効信
    号を伝送することを特徴とする請求項1に記載のシステ
    ム。
  19. 【請求項19】 前記アドレスバスとデータバスの各々
    は、これらのバスの各々の連続するタイムスロットで信
    号を伝送できるように時分割され、かつ、前記メモリモ
    ジュールの各々は、1つのタイムスロットにおいて前記
    アドレスバスで受け取られたアドレスに対応して、前記
    1つのテータバスの4つの連続するタイムスロットにお
    いて前記第1のデータバスと前記第2のデータバスの1
    つによってデータを伝送し、さらに、前記第1のデータ
    バスと前記第2のデータバスは、対応するタイムスロッ
    トにおいて同時にデータを伝送可能であることを特徴と
    する請求項1に記載のシステム。
  20. 【請求項20】 各プロセッサはクロックにより制御さ
    れ、また前記バスの1つの各タイムスロットは、前記ク
    ロックのサイクルタイムの倍数であることを特徴とする
    請求項19に記載のシステム。
  21. 【請求項21】 前記アドレスバスは、前記メモリモジ
    ュールの1つから各データ転送サイクルの間に複数の時
    多重化アドレスを送り、前記データ転送サイクルは、前
    記複数の時多重化アドレスの1つに関するデータの伝送
    に対応することを特徴とする請求項1に記載のシステ
    ム。
  22. 【請求項22】 組み合わせとして、第1の複数のデー
    タを処理するプロセッサ手段と、第2の複数の主メモリ
    モジュールと、前記プロセッサと前記メモリモジュール
    を相互接続するバス手段とを含むマルチプロセッサシス
    テムにおいて、前記バス手段が、すべての前記プロセッ
    サ手段およびすべての前記メモリモジュールに接続され
    た時分割アドレスバスと、データバスの各々が、前記メ
    モリモジュールの適切なサブセットおよび前記プロセッ
    サ手段のすべてに接続された複数のデータバスとを有
    し、前記時分割アドレスバスは、前記プロセッサの間で
    無効アドレスを送り、この時分割アドレスバスは、タイ
    ムスロットの間に1つのアドレスを伝送可能であり、か
    つ、このアドレスバスは、タイムスロットの第1ハーフ
    の幾つかの間に前記メモリモジュールをアドレス指定
    し、さらに、アドレスバスは、前記タイムスロットの第
    2ハーフの幾つかの間に前記無効アドレスを送り、前記
    プロセッサ手段の各々は、データおよび対応するアドレ
    スを記憶するためのキャッシュメモリ手段を有し、前記
    アドレスバスは、前記プロセッサの各キャッシュメモリ
    手段に記憶されたデータの前記対応するアドレスと照合
    するために、前記プロセッサにアドレスを伝送し、前記
    プロセッサの各々には、信号を送るためのスヌープバス
    が接続され、前記信号は、前記プロセッサの1つのキャ
    ッシュメモリ手段に記憶されたデータの対応するアドレ
    スに付随するデータの状態を特徴づけるデータを送り、
    かつ、前記アドレスバス上のアドレスと前記1つのプロ
    セッサのキャッシュメモリ手段に記憶されたデータのア
    ドレスとの間の一致を前記1つのプロセッサが検出した
    ことを表す信号であり、前記状態のうちの1つの状態に
    対し、前記1つのプロセッサは、前記メモリモジュール
    の1つからのデータの代わりに、前記データバスの1つ
    および前記メモリモジュールの1つにそのキャッシュメ
    モリ手段のデータを与え、前記アドレスバスは、前記メ
    モリモジュールの1つから各データ転送サイクルの間に
    複数の時多重化アドレスを送り、前記データ転送サイク
    ルは、前記複数の時多重化アドレスの1つに関するデー
    タの伝送に対応し、前記アドレス指定バスに対するアク
    セスは、アービトレーション手段により割当てられ、こ
    のアービトレーション手段は、グローバルアービタおよ
    び複数の分散アービタを有し、1つのアービトレーショ
    ンサイクルの間に前記アドレスバスに対するアクセスを
    要求するすべてのプロセッサは、いずれかのプロセッサ
    が第2の要求に関して処理される前に第1の要求に関し
    て処理され、前記プロセッサの1つは、周辺メモリモジ
    ュールを制御する周辺メモリコントローラを有し、か
    つ、前記1つのプロセッサは、主メモリモジュールが前
    記周辺メモリモジュールから更新される場合に無効信号
    を伝送することを特徴とするマルチプロセッサシステ
    ム。
JP3144145A 1990-05-25 1991-05-21 マルチプロセッサシステム Expired - Fee Related JP2501375B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52905190A 1990-05-25 1990-05-25
US529051 1990-05-25

Publications (2)

Publication Number Publication Date
JPH04271452A JPH04271452A (ja) 1992-09-28
JP2501375B2 true JP2501375B2 (ja) 1996-05-29

Family

ID=24108302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3144145A Expired - Fee Related JP2501375B2 (ja) 1990-05-25 1991-05-21 マルチプロセッサシステム

Country Status (5)

Country Link
US (1) US5490253A (ja)
EP (1) EP0458516B1 (ja)
JP (1) JP2501375B2 (ja)
DE (1) DE69128107T2 (ja)
ES (1) ES2109256T3 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0575651A1 (en) * 1992-06-24 1993-12-29 International Business Machines Corporation Multiprocessor system
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
JP3168552B2 (ja) * 1993-12-17 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション メモリ・アクセス制御システム及びその方法
EP0690382B1 (en) * 1994-07-01 2003-01-02 Sun Microsystems, Inc. Computer system with a multiplexed address bus and pipelined write operations
US5608878A (en) * 1994-10-03 1997-03-04 International Business Machines Corporation Dual latency status and coherency reporting for a multiprocessing system
US5669003A (en) * 1994-12-23 1997-09-16 Intel Corporation Method of monitoring system bus traffic by a CPU operating with reduced power
US5799207A (en) * 1995-03-28 1998-08-25 Industrial Technology Research Institute Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device
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
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US5845130A (en) * 1996-09-11 1998-12-01 Vlsi Technology, Inc. Mailbox traffic controller
US5901298A (en) * 1996-10-07 1999-05-04 Intel Corporation Method for utilizing a single multiplex address bus between DRAM, SRAM and ROM
US5923276A (en) * 1996-12-19 1999-07-13 International Business Machines Corporation Current source based multilevel bus driver and converter
US5815107A (en) * 1996-12-19 1998-09-29 International Business Machines Corporation Current source referenced high speed analog to digitial converter
US5983303A (en) * 1997-05-27 1999-11-09 Fusion Micromedia Corporation Bus arrangements for interconnection of discrete and/or integrated modules in a digital system and associated method
US6493407B1 (en) * 1997-05-27 2002-12-10 Fusion Micromedia Corporation Synchronous latching bus arrangement for interfacing discrete and/or integrated modules in a digital system and associated method
US5915126A (en) * 1997-08-12 1999-06-22 International Business Machines Corporation Computer system memory controller and method of burst data ordering translation
US6101561A (en) * 1998-02-06 2000-08-08 International Business Machines Corporation System for providing an increase in digital data transmission rate over a parallel bus by converting binary format voltages to encoded analog format currents
US6138200A (en) * 1998-06-09 2000-10-24 International Business Machines Corporation System for allocating bus bandwidth by assigning priority for each bus duration time slot to application using bus frame and bus duration
US6393506B1 (en) * 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
US6691096B1 (en) 1999-10-28 2004-02-10 Apple Computer, Inc. General purpose data container method and apparatus for implementing AV/C descriptors
US6671768B1 (en) 1999-11-01 2003-12-30 Apple Computer, Inc. System and method for providing dynamic configuration ROM using double image buffers for use with serial bus devices
US6959343B1 (en) 1999-11-01 2005-10-25 Apple Computer, Inc. Method and apparatus for dynamic link driver configuration
US6813663B1 (en) 1999-11-02 2004-11-02 Apple Computer, Inc. Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images
US6631426B1 (en) 1999-11-02 2003-10-07 Apple Computer, Inc. Automatic ID allocation for AV/C entities
US8762446B1 (en) 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US6587904B1 (en) * 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
US6636914B1 (en) 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6457086B1 (en) * 1999-11-16 2002-09-24 Apple Computers, Inc. Method and apparatus for accelerating detection of serial bus device speed signals
US7266617B1 (en) 2000-01-18 2007-09-04 Apple Inc. Method and apparatus for border node behavior on a full-duplex bus
US6639918B1 (en) 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
US7421507B2 (en) * 2000-02-16 2008-09-02 Apple Inc. Transmission of AV/C transactions over multiple transports method and apparatus
US6831928B1 (en) 2000-02-17 2004-12-14 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US7050453B1 (en) 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6529984B1 (en) * 2000-03-29 2003-03-04 Compaq Information Technologies Group, L.P. Dual phase arbitration on a bus
US6718497B1 (en) 2000-04-21 2004-04-06 Apple Computer, Inc. Method and apparatus for generating jitter test patterns on a high performance serial bus
US6618785B1 (en) 2000-04-21 2003-09-09 Apple Computer, Inc. Method and apparatus for automatic detection and healing of signal pair crossover on a high performance serial bus
DE10030380A1 (de) * 2000-06-21 2002-01-03 Infineon Technologies Ag Mehrere CPUs enthaltendes System
KR100335504B1 (ko) 2000-06-30 2002-05-09 윤종용 제어 및 어드레스 버스를 공유하는 2채널 메모리 시스템및 이에 채용되는 메모리 모듈
US6823441B1 (en) 2001-04-20 2004-11-23 Daimlerchrysler Corporation Method of multiplexed address and data bus
US6907503B2 (en) * 2001-09-27 2005-06-14 Daimlerchrysler Corporation Dual port RAM communication protocol
US7020809B2 (en) * 2002-09-25 2006-03-28 International Business Machines Corporation System and method for utilizing spare bandwidth to provide data integrity over a bus
US7417973B1 (en) 2002-12-31 2008-08-26 Apple Inc. Method, apparatus and computer program product for ensuring node participation in a network bus
US7457302B1 (en) 2002-12-31 2008-11-25 Apple Inc. Enhancement to loop healing for malconfigured bus prevention
WO2004100155A1 (en) * 2003-05-09 2004-11-18 Lg Electronics Inc. Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses
US7353284B2 (en) * 2003-06-13 2008-04-01 Apple Inc. Synchronized transmission of audio and video data from a computer to a client via an interface
US20040255338A1 (en) * 2003-06-13 2004-12-16 Apple Computer, Inc. Interface for sending synchronized audio and video data
US7668099B2 (en) * 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
US7788567B1 (en) 2003-11-18 2010-08-31 Apple Inc. Symbol encoding for tolerance to single byte errors
US7995606B1 (en) 2003-12-03 2011-08-09 Apple Inc. Fly-by and ack-accelerated arbitration for broadcast packets
US7502338B1 (en) 2003-12-19 2009-03-10 Apple Inc. De-emphasis training on a point-to-point connection
US7237135B1 (en) * 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
US7308517B1 (en) 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
US20050231358A1 (en) * 2004-04-19 2005-10-20 Company Steven L Search engine for singles with (GPS) position data
US7283418B2 (en) * 2005-07-26 2007-10-16 Micron Technology, Inc. Memory device and method having multiple address, data and command buses
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
US8483108B2 (en) * 2006-07-24 2013-07-09 Apple Inc. Apparatus and methods for de-emphasis training on a point-to-point connection
US9588914B2 (en) 2014-04-09 2017-03-07 International Business Machines Corporation Broadcast and unicast communication between non-coherent processors using coherent address operations
US9563594B2 (en) 2014-05-30 2017-02-07 International Business Machines Corporation Intercomponent data communication between multiple time zones
US9582442B2 (en) * 2014-05-30 2017-02-28 International Business Machines Corporation Intercomponent data communication between different processors
US10275379B2 (en) 2017-02-06 2019-04-30 International Business Machines Corporation Managing starvation in a distributed arbitration scheme
US11176038B2 (en) 2019-09-30 2021-11-16 International Business Machines Corporation Cache-inhibited write operations

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445172A (en) * 1980-12-31 1984-04-24 Honeywell Information Systems Inc. Data steering logic for the output of a cache memory having an odd/even bank structure
US4597084A (en) * 1981-10-01 1986-06-24 Stratus Computer, Inc. Computer memory apparatus
US4481572A (en) * 1981-10-13 1984-11-06 Teledyne Industries, Inc. Multiconfigural computers utilizing a time-shared bus
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4888682A (en) * 1983-09-09 1989-12-19 International Business Machines Corp. Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
DE3338341A1 (de) * 1983-10-21 1985-05-09 Siemens AG, 1000 Berlin und 8000 München Mehrfachbusanordnung fuer die verbindung von prozessoren und speichern in einem mehrprozessorsystem
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
US4620275A (en) * 1984-06-20 1986-10-28 Wallach Steven J Computer system
US4799152A (en) * 1984-10-12 1989-01-17 University Of Pittsburgh Pipeline feedback array sorter with multi-string sort array and merge tree array
CA1233260A (en) * 1985-03-13 1988-02-23 Chuck H. Ngai High performance parallel vector processor having a modified vector register/element processor configuration
US4740894A (en) * 1985-09-27 1988-04-26 Schlumberger Systems And Services, Inc. Computing processor with memoryless function units each connected to different part of a multiported memory
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods

Also Published As

Publication number Publication date
US5490253A (en) 1996-02-06
EP0458516A2 (en) 1991-11-27
JPH04271452A (ja) 1992-09-28
EP0458516A3 (en) 1992-04-08
EP0458516B1 (en) 1997-11-05
ES2109256T3 (es) 1998-01-16
DE69128107T2 (de) 1998-02-26
DE69128107D1 (de) 1997-12-11

Similar Documents

Publication Publication Date Title
JP2501375B2 (ja) マルチプロセッサシステム
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
US6070231A (en) Method and apparatus for processing memory requests that require coherency transactions
US6587931B1 (en) Directory-based cache coherency system supporting multiple instruction processor and input/output caches
JP3722415B2 (ja) 効率的なバス機構及びコヒーレンス制御を有する繰り返しチップ構造を有するスケーラブル共用メモリ・マルチプロセッサ・コンピュータ・システム
JP3872118B2 (ja) キャッシュコヒーレンス装置
US6167489A (en) System and method for bypassing supervisory memory intervention for data transfers between devices having local memories
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US6799252B1 (en) High-performance modular memory system with crossbar connections
EP0777184B1 (en) Cache coherency method and system
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
KR0163231B1 (ko) 입/출력 채널 제어기, 멀티 프로세싱 시스템 및 데이타 프로세싱 방법
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
JP3470951B2 (ja) 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法
US6049845A (en) System and method for providing speculative arbitration for transferring data
JPH11272557A (ja) キャッシュ・コヒ―レンシを維持する方法及びシステム
US5339397A (en) Hardware primary directory lock
EP0512685B1 (en) Quadrature bus protocol for carrying out transactions in a computer system
KR100257993B1 (ko) 분산 공유 메모리 시스템에서 미세 통신과 대단위 통신의 병합을 위한 적응형 입도 방법
JP2746530B2 (ja) 共有メモリマルチプロセッサ
US6021466A (en) Transferring data between caches in a multiple processor environment
JP4361909B2 (ja) キャッシュコヒーレンス装置
JP4424619B2 (ja) 情報処理装置
JP4361910B2 (ja) キャッシュコヒーレンス装置
JP3914250B2 (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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080313

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090313

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090313

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100313

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110313

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees