JPH06214960A - 多重プロセッサシステム - Google Patents

多重プロセッサシステム

Info

Publication number
JPH06214960A
JPH06214960A JP5122973A JP12297393A JPH06214960A JP H06214960 A JPH06214960 A JP H06214960A JP 5122973 A JP5122973 A JP 5122973A JP 12297393 A JP12297393 A JP 12297393A JP H06214960 A JPH06214960 A JP H06214960A
Authority
JP
Japan
Prior art keywords
processor
bus
access
memory
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5122973A
Other languages
English (en)
Inventor
Klaus J Getzlaff
クラウス・ヨエルグ・ゲツラフ
Udo Wille
ウド・ヴィレ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06214960A publication Critical patent/JPH06214960A/ja
Pending 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 多重プロセッサシステムにおける共通バスに
対するアクセスを効率的に許可する方法とそのシステム
を提供すること。 【構成】 複数のプロセッサ(PU0〜PUn)と共通
の主メモリから成る多重プロセッサシステムにおいて、
そのメモリは2以上のバンク(M0〜Mn)に論理的に
分割され、バス(110)でプロセッサと相互接続さ
れ、制御ライン(111〜118)によってバスプロト
コールが確立し、1つのバンクがふさがっている時に他
のバンクの1つがアクセスされる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は2個以上のプロセッサ、
記憶手段、そのプロセッサと記憶手段の間で情報をやり
とりするためのバス手段から構成する多重プロセッサシ
ステムに関する。さらに、本発明は多重プロセッサシス
テム内の共通バス手段へのアクセスを許可する手段に関
する。
【0002】
【従来の技術】1本以上のバスによって相互接続されて
いる複数のエレメントから構成した分散オペレーション
システムにおいて、2個以上のエレメントがこのバスを
同時に使用しようとする時、どのエレメントが最初にバ
スを使用するか決定する調停方法が必要となる。従来技
術において、プロセッサとして機能するエレメント、大
容量メモリ、入出力制御装置等から成るこのシステムを
相互接続するための種々の方法や装置が知られている。
【0003】従来技術のバス調停方法の一例として、同
時に1本のバスを使用しようとする全てのエレメントと
通信する中央調停装置がある。この中央バス調停装置は
最優先権を有するエレメントを決定し、この最優先権を
有するエレメントがバスを使用することを許可する指令
信号を送る。このタイプのシステムの重大な欠点は、ア
クセスの要求を出しているエレメントから中央バス調停
装置への送信、あるいはその逆の送信が時間をかなり必
要とし、システム全体のオペレーション速度を低下させ
る原因となっていることである。
【0004】バス調停方法の他の従来例は、環状連鎖
(デイジー・チェイン)と称されるものがある。この方
法では、優先順位にしたがってエレメントからエレメン
トへバス有効信号が送られる。バスにアクセス希望のエ
レメントはその信号を捕獲し、それによってバスにアク
セスできる。これも比較的遅い調停方法である。
【0005】バス調停方法の3番目の従来例は、主デー
タバスから分離した信号ラインのパルス列として、各装
置にその優先コードを同時に送るというものである。そ
の信号ラインの番号は、使用するナンバリングシステム
とコーディングシステムによって決定する。パルスコー
ディングを使用するなら、そのパルスは各装置のカウン
タに送られる。装置がその優先コードに等しいカウント
を得ると、一つの調停が成立し、主データラインへのア
クセスが得られる。装置カウンタで得た優先番号がその
装置の優先番号と一致しない時は、その装置は調停オペ
レーションから撤退する。しかし、このバス調停方法は
別の信号ラインやインターフェース回路が必要となる。
すなわち、選択したナンバリングシステムとコーディン
グ技術によって決められた信号ラインやインターフェー
ス回路の番号で装置の優先コードを送ったり、検索する
ためのものである。この従来例は米国特許出願第4,4
02,040号に記載されている。
【0006】米国特許出願第4,621,342号に
は、多数のコンポーネントからのアクセス要求を決める
調停回路についての記載がある。この調停装置は、各装
置内で論理ネットワークに接続したラインに分割した分
岐バイナリ構造の優先バスによってチェーン内で相互接
続されるもので、論理ネットワークも優先コードレジス
タから拡張した内部バスに接続している。この優先バス
のラインは通常、ゼロポテンシャルであり、任意の装置
において他のコンポーネントからのアクセス要求の存在
の下、そのレジスタに接続させ、そのレジスタの内容と
そのバスのコードが等しいか否かをその論理ネットワー
クが決定し、等しい時はその装置の制御部によって該当
コンポーネントがデータバスにアクセス可能となる。
【0007】
【発明が解決しようとする課題】上記の従来技術に共通
する欠点は、共通バスに接続するプロセッサの数の増加
に対してシステム能力が直線的に増大しないことであ
る。以上に鑑み、本発明の目的は多重プロセッサシステ
ムの改良と、多重プロセッサシステムにおける共通バス
に対するアクセスを許可する方法の改良である。
【0008】
【課題を解決するための手段】多重プロセッサシステム
におけるバス調停は、システム全体の能力に影響を与え
るので重大な事柄といえる。上記の従来方法において、
バス調停の問題はすでに解決されており、1つのエレメ
ントのみが同時にバスにアクセスできる。たとえば、プ
ロセッサが主メモリからデータをフェッチするためにバ
スを介して主メモリに指令を発するなら、このバスはデ
ータフェッチオペレーションを実行する時間、この要求
を出したプロセッサに独占的に割り当てられてしまう。
【0009】反対に、本発明のコンセプトはメモリへの
バス関与(あるエレメントがバスを使用欲求すること)
について多重アクセスを可能とする。たとえば、第1プ
ロセッサがメモリへのアクセス要求を起こすと、バスへ
のアクセスは本発明による調停手段によって許可され
る。そして、プロセッサは、例えば、バスを介してその
メモリからデータをフェッチするためにその指令をメモ
リに入れる。メモリがその指令を受けると、メモリの内
部記憶アレー(internal storage array)から所望のデ
ータのフェッチを開始し、内部バッファにそのデータを
入れる。同時に、要求元のプロセッサはメモリからのデ
ータを受ける態勢に入る。所望のデータがメモリのバッ
ファに存在の後、そのデータは1回乃至それ以上、バス
を介してプロセッサへ送られる。
【0010】本発明によれば、メモリの内部記憶アレー
へのアクセスに要する時間は有益に使われる。第1プロ
セッサがメモリに指令を発した後、メモリが多忙なので
バスはこの第1プロセッサに割り当てられていても使用
されない。この期間、メモリはまだ多忙だが、第2バス
関与者はメモリへの指令を発するためにこのバスへのア
クセスを許可される。これは、本発明の方法によりメモ
リが2以上のメモリバンクに論理的に分割されるので可
能となる。こうして、第1プロセッサが第1メモリバン
クにアクセスする時、第2プロセッサは第1バンクが多
忙でも第2バンクにアクセスできる。バスへの第2アク
セスもメモリへのデータフェッチ指令によるものなら、
第1バンクは第2バンクより若干早くバッファ内に要求
データを有することになる。すなわち、第1バンクのバ
ッファ内に記憶させたデータは、そのデータを要求した
第1プロセッサに送られ、第2バス関与者によって要求
された第2バンクのバッファに記憶されたデータがその
後に続く。もし、内部記憶アレーへのアクセスや要求デ
ータの内部バッファへの記憶に要する時間が十分に長け
れば、この時間遅れ内に多重許可が行われることもあ
る。
【0011】本発明の第一の特徴によれば、プロセッサ
のようなバス関与者の所定順位に基づいた調停手段によ
って調停が実施される。この調停手段は、複数のラッチ
のようなプロセッサの要求の待ち行列を記憶する手段を
有する。各バンクおよび各プロセッサに対し、上記調停
手段に記憶させた待ち行列があり、それによってバンク
の一つに対するプロセッサからのアクセス要求を、以下
に述べる特定の条件下でのみ対応する待ち行列に入れる
ことになる。すなわち、第一に、高い順位のプロセッサ
からの要求が既に待ち行列に入っている必要がある。ま
た、第二に、こうした要求が待ち行列に入ってない場合
に、低い順位のプロセッサの要求がまだ待ち行列に入っ
てないことが必要である。
【0012】要求が待ち行列に入れられれば、待ち行列
に入っているより高い順位のプロセッサからの要求がな
いという条件を満たせば、その要求に引き続いて認可さ
れる。上記バンクの各々に対する待ち行列があるので、
異なったバンクの各々に対する後続のアクセス要求に対
する許可も発生する。
【0013】全ての関与者を相互接続する中央調停装置
によって、この調停を現実のものとすることが可能であ
る。この場合には、各バス関与者はバスを介してバンク
の一つへのアクセス要求を中央調停装置に送るために、
中央調停装置に相互接続させる。さらにこの場合、中央
調停装置がバスへのアクセスを許可するためにバス関与
者の各々と相互接続することが必要である。
【0014】しかし、配線長さを最短にすることが要求
される場合には、分散調停装置が有利である。この場
合、バス関与者の各々はメモリのバンクの各々に対する
専用の調停装置を持っている。
【0015】本発明の望ましい実施例によれば、各プロ
セッサは1個以上の専用で高速ハードウェア管理のバッ
ファ、たとえばキャッシュを有する。多重プロセッサシ
ステムでは、同一の主記憶装置を共有する多くのプロセ
ッサが存在できる。それゆえ、アクセスが発生する時、
各プロセッサは常に最新のデータバージョンを得ること
が求められる。この要求から、しばしばキャッシュの一
致問題として知られているキャッシュ間のデータ整合性
のハードウェア制御が採用されることになる。
【0016】米国特許出願第4,775,955号に記
載のように、従来技術の多重プロセッサシステムには種
々のタイプのキャッシュがある。その一タイプはストア
−スルーキャッシュというもので、常に下位レベルの記
憶階層に対しデータの変化を更新するために、主記憶装
置または第2レベルのキャッシュに直接データを記憶さ
せるプロセッサに干渉することがない。主記憶装置に対
し記憶を更新する際、適切な相互問合せ動作が行われ、
その記憶に加入するプロセッサのキャッシュ以外のキャ
ッシュからのキャッシュラインの複写を無効とする。通
常のストア−スルー構造は、データ記憶を行なうために
主記憶装置のバンド幅が必要であり、通常全てのプロセ
ッサ記憶装置の要求の10から20パーセントの間に平
均値がある。
【0017】他のタイプのキャッシュ構造はストア−イ
ンキャッシュというものがあり、米国特許出願第3,7
35,360号および第3,771,137号等に記載
がある。ストア−インキャッシュのディレクトリは米国
特許出願第4,394,731号に詳細な記載があり、
ストア−インキャッシュの各ラインが排他的読取り専用
フラッグビットによって共有可能に制御された多重プロ
セッサを持っている。ストア−スルーとストア−インキ
ャッシュの主な違いは、ストア−インキャッシュ内の全
ての記憶動作はキャッシュ自体に対して行われるので、
記憶したラインがストア−インキャッシュ内になければ
キャッシュミスを発生する。通常、ラインがキャッシュ
から取り除かれる時のみキャッシュライン変更情報が主
記憶装置に更新される。結果として、ストア−インキャ
ッシュ構造は、首尾一貫した制御をより複雑にし、キャ
ストアウトというペナルティを生じる代わりに、主記憶
装置バンド幅の減少という要求を達成する。ここで、キ
ャストアウトは1台のプロセッサからのデータアクセス
が別のプロセッサのキャッシュ内で修正されたラインを
見つけた場合に生じる。
【0018】種々のキャッシュの首尾一貫した制御メカ
ニズムがある。典型的な例は米国特許出願第4,77
5,955号に記載のグローバルディレクトリ、同報通
信、メモリタグ付け等である。グローバルディレクトリ
の方法では、記憶装置制御エレメントはプロセッサのキ
ャッシュディレクトリの複写を含み、キャストアウト判
断はより能率良く解決される。同報通信の方法は、アク
セスがローカルキャッシュで解決できない時は、プロセ
ッサからの記憶要求を他の全てのプロセッサに発送す
る。メモリタグ付けの方法は、主記憶装置内の各ライン
にタグをつけ、どのプロセッサが現在キャッシュのライ
ンを持っているか示す。
【0019】他の取り得る方法は、あるデータの一貫性
についてのソフトウェア制御を有することであり、キャ
ストアウト制御の効果的な実行が強制される。この考え
方は、他のプロセッサからの記憶を介してデータ汚染の
危険がある時、専用のキャッシュ以外のラインをフラッ
シュしてしまうことである。こうした汚染は、例えば目
的がプロセッサを実行するタスクによって開放され、他
のプロセッサのタスクがリソースを得て改変する時に発
生する。多くのコンピュータ構造では、キャッシュ以外
のデータラインをフラッシュするための命令がある。こ
うしたキャッシュをフラッシュするという命令は、キャ
ッシュから更新するラインアドレスレンジを特定するこ
とによって作られる。こうした方法は、ソフトウェア、
例えばコンパイラやプログラマに対しフラッシュ用にア
ドレスしたレンジのトラックを保持するように強いる。
アドレスレンジはソフトウェアにおける論理目的の意味
を持たない仕様書である。それゆえ、こうしたキャッシ
ュのフラッシュ命令は記憶システムをソフトウェアに対
して透明性が少ないものとする。
【0020】キャッシュの首尾一貫した制御について
は、数件の技術が知られている。例えば米国特許出願第
4,484,267号には、従来のキャッシュの首尾一
貫した制御機構のバリエーションについての記載があ
る。それは、将来の相互問合せや、やりとりを減少させ
るためにあるキャッシュラインがストア−スルーの対象
となりうるかどうかを動的に判断することを試みてい
る。このテーマでは、従来のグローバル記憶制御エレメ
ントのディレクトリ制御が、無効化を実施するために必
要である。
【0021】キャッシュの首尾一貫した制御の他の技術
は、例えば米国特許出願第4,293,910号、第
4,400,770号、第4,400,773号、第
4,399,504号、第4,099,243号等に記
載がある。データの整合性を維持するための考え方は
G.Doettling著「Data Consist
ency in a Multiprocessor
System with Store−In Cach
e Concept」(Microprocessin
g and Microprogramming 32
(1991)215−220,North−Holla
nd)という題の論文によって知られている。この論文
は、各プロセッサに備えつけたキャッシュによって多重
プロセッサシステムにおけるデータ整合性の維持問題を
記したものである。共通のシステムリソースを使用して
いかなる環境下でもデータの完全性を得、キャッシュ相
互問合せ用の付加を低く維持するために特別な注意が払
われる。加えて、ストア−インキャッシュのコンセプト
を使用してメモリアクセスへの待ちサイクルを減少させ
る。上記の従来技術によるキャッシュのコンセプトのど
れかを本発明による多重プロセッサシステムで用いられ
るとしても、上記論文のG.Doettlingによる
コンセプトを採用することは特に価値がある。
【0022】
【実施例】以下、添付図面を参照にして本発明の実施例
を説明する。図1は本発明による望ましい実施例の構造
を示す。すなわち、直接記憶アクセス(DMA)ユニッ
トと同じように複数のプロセッサPU0、PU1、PU
2、・・・PUnを、メモリバス110および制御信号
111、112、113、114、115によって共通
記憶手段M0、M1に接続する。この場合、記憶手段は
ランダムアクセスメモリ(RAM)である。
【0023】DMAユニットはメモリデータへの入力/
出力要求を制御するI/Oアダプタであり、メモリバス
110へのアクセスは調停手段によって制御される。本
発明によるこの実施例では、各プロセッサとDMAユニ
ットはメモリバンクM0、M1の各々に対する調停装置
を有する。この調停は制御信号116、117、118
に基づいて行われる。
【0024】図1に示した本発明による実施例では、メ
モリは2個のバンクM0、M1に分割されている。各メ
モリバンクM0、M1は、この例では16バイトワイド
の共通メモリバス110によってバス関与者に相互接続
される。さらに、メモリバンクは制御信号ライン11
1、112、113、114、115によってバス関与
者に相互接続される。この制御信号はバスプロトコルを
確立するために必要である。調停手段を伴ったバスプロ
トコルはバス関与者のバスアクセスを制御するためのも
のである。制御信号ライン116、117は、調停装置
間でバス関与者のバスアクセス要求を連絡するための別
のバスである。制御信号ライン116はメモリバンクM
0へのアクセス要求を送信し、制御信号ライン117は
メモリバンクM1へのアクセス要求を送信する。さら
に、バス関与者の調停装置は別の制御信号118によっ
て相互接続される。メモリバス110は制御信号ライン
111、114、115、116、117、118と同
様に双方向であり、制御信号112と113は図1の矢
印で示されるように一方向である。
【0025】図2は、メモリアドレスが2個のバンクM
0、M1にどのように分散されるか示したものである。
これは図2に示すようにM0、M1をボックス形状とし
て表わす。この箱内の各列は、ボックスM0の最下段の
最も低いアドレスでスタートする記憶ライン1を示す。
この例では、ラインサイズが64バイトと仮定する。第
1ラインL1はメモリバンクM0のアドレス0でスター
トし、一方第2ラインはメモリバンクM1の16進表記
法でアドレス64または40によってスタートする。図
2のボックスM0、M1の数は16進法の対応する記憶
ラインのスタートアドレスを示す。ラインL1、L2、
・・・、Li−1、LiはメモリバンクM0、M1に交
互に割り当てられる。こうしてメモリバンクM0、M1
から成る主メモリは2個の異なったバンクに論理的に分
割される。メモリバンクM0、M1は1個の主メモリ装
置に含まれることもある。また、偶数および奇数基本記
憶モジュール(BSM)カードのような物理的に分離さ
せたハードウェアユニットでも可能である。
【0026】メモリバスの負荷が高い状況下において2
個以上のバンクが存在することの利点は「バスインタリ
ーブ作用」である。1バス関与者は1バンクを選択で
き、最初のアクセス時間、すなわち、記憶カードが内部
アレーにアクセスしそのフェッチバッファを満たすため
の時間の間、別のバンクが別のバス関与者によって選択
されることが可能である。この例では、初めのバンクか
ら、続いてその次のバンクからのライン転送がそれぞれ
単発で行われる。この例は各転送につき16バイトとす
る。
【0027】図3は本発明による調停装置の例を示す。
図3の調停装置は偶数のメモリカードM0、この場合は
基本記憶モジュール(BSM)、に対する調停を制御す
る。各プロセッサは図3に示した調停装置を有し、同様
に奇数メモリバンクM1にアクセスするための他の調停
装置を有する。図3に示した例では、1セットが4台の
プロセッサPU0乃至PU3とする。信号ラインREQ
PU0乃至REQPU3は図1に示した制御信号ライ
ン116の一部を形成する。たとえばプロセッサPU1
がメモリバス110にアクセスする必要があるなら、要
求ラインREQ PU1を高位にする。信号ラインRE
Q PU0乃至REQ PU3は対応する回路LT P
U0乃至LT PU3に接続されている。この回路は出
力q0乃至q3を有する。また、この出力は回路LT
PU0乃至LT PU3への入力として作用する。
【0028】回路LT PU0乃至LT PU3はプロ
セッサPU0乃至PU3の要求を記憶したりラッチする
機能を有する。要求が記憶されたとき、対応する出力q
が表示される。supp入力信号が流動状態にあれば、
対応するプロセッサの要求は対応する回路に記憶されな
い。しかし、en入力信号が活動状態であれば、他のs
uppの状態に関わりなく回路は対応するプロセッサの
要求を記憶することが可能となる。図3に示された最後
の回路LT PU3はこうした別の入力を持たない。こ
のケースにおけるプロセッサのあらかじめ決めた順位付
けがPU0、PU1、PU2、PU3で、PU0が最も
高い優先順位でPU3が最も低い順位であるという理由
による。したがって最も低い順位のPU3の要求は、他
のプロセッサの要求に関係なく対応する回路LT PU
3に記憶あるいはラッチされる。各信号q0乃至q3
は、対応する回路LT PU0乃至LT PU3に要求
が記憶されたか否かを示すものである。信号q0乃至q
3は信号PUμ GRANTEV RAWを発生させる
回路31に送られる。信号EVEN BSM CARD
BUSYとBSM CMDはAND/INVERTゲ
ート32に送られ、信号−NO REQUEST OD
Dと−LAST BUS COMMANDODDはAN
D/INVERTゲート33に送られる。AND/IN
VERTゲート32、33の出力はANDゲート34に
送られる。ANDゲート34の出力も回路31に送られ
る。回路31の出力、すなわち信号PUμ GRANT
EV RAWは信号BUS BUSYと−XFER
DATA ODDと同様にANDゲート35に送られ
る。ANDゲート36の入力は信号−XFER DAT
A EV、PUμ GRANT ODD RAW、−B
US BUSYである。ANDゲート35、36の出力
はORゲート37に送られる。ORゲート37の出力は
信号GRANTである。この信号GRANTは、あるプ
ロセッサについてバスへのアクセスを許可するものであ
る。
【0029】図4では、本発明による調停回路の望まし
い実施例を詳細に明示したものである。主スレーブラッ
チLT PU0’、LT PU2’、LT PU3’
は、それぞれ対応するプロセッサPU0、PU1、PU
2、PU3の待ち行列に格納されている要求を記憶す
る。主スレーブラッチに記憶された負の信号は待ち行列
に格納された要求である。すべてのラッチ出力が正、す
なわち、論理1のときには待ち行列が空である。このラ
ッチへの逆入力は図3の回路31に送られる信号q0、
q1、q2、q3である。
【0030】図4に示した調停回路の望ましい実施例は
図3に示したものとは、図3の回路LT PU0乃至L
T PU3の入力suppとenに関して異なってい
る。図4に示した実施例では、信号 −supp(q
1)、−supp(q2)、−supp(q3)は、そ
れぞれラッチLT PU1’乃至LT PU3’の入力
および出力のOR演算の結果発生する。AND/INV
ERTゲートに送るこれらの信号は、図3の入力sup
pに送る信号q1、q2、q3と同じ目的を果たす。ラ
ッチLT PU1’乃至LT PU3’はバイパスされ
るので、追加の1サイクルを必要とする要求を主スレー
ブラッチに記憶させるに要する追加時間によらず、回路
遅れによってのみGRANT信号は遅れる。要求REQ
PUμの消滅で、割り当てられた信号−supp(q
μ)は不活発になり、1マシンサイクルの追加時間遅れ
がなく高次の順位にあるプロセッサがGRANT信号を
得ることになる。これは、プロセッサPUμの要求が消
滅したことによる対応するラッチ出力LT PUμ’が
正になる前に、信号−supp(qμ)がすでに不活発
になっているという理由による。したがって、消滅要求
はすぐに別の待機中のプロセッサに許可信号を与える。
【0031】信号−supp(qμ)が上記方法で発生
する他の理由は過剰の遅延パスを避けるためである。こ
の遅延パスは、全ての信号REQ PU0乃至REQ
PU3が同一のマシンサイクルで活発になる時に可能で
あり、信号REQ PU3がすべての論理を介して−s
upp(q3)として流れ、信号q0乃至q3に影響を
与える。
【0032】ラッチLT PU0’およびLT PU
1’の出力は信号−en(q0)と−en(q1)であ
り、これは対応するAND/INVERTゲートに送ら
れる。信号−en(q0)と−en(q1)は図3の回
路LT PU1とLT PU2の対応する入力enに与
えられた信号q0とq1と同じ目的を果たす。
【0033】図5および図6を参照にして、図3の調停
装置において信号GRANTがどのように発生するか詳
細に説明する。初めに、調停プロセッサPUμによる要
求がどのように対応の回路LT PUμに記憶されるか
を図5によって説明する。
【0034】ステップ1において、信号REQ PUμ
はプロセッサPUμがメモリバスにアクセスを要求して
いることを示す。本発明の望ましい実施例では、このメ
モリは2個のバンクM0とM1に論理的に分割される。
したがって、各プロセッサは各メモリバンクに対して1
つの調停装置を有する。図3に示した調停装置は偶数メ
モリバンク用であり、奇数メモリバンクM1の調停装置
は示されていない。すなわち、偶数調停装置に接続した
信号REQ PUμがアクセス要求を示すと、これはプ
ロセッサPUμが偶数メモリバンクM0にアクセスを要
求していることを意味する。信号REQ PUμが図5
のフローチャートに示されるステップ1でプロセッサP
Uμのアクセス要求を示すと、偶数メモリバンクM0へ
の高順位プロセッサPUμ+xの要求が対応の回路LT
PUμ+xにすでに記憶されているかどうか次のよう
に判断される。プロセッサの順位はあらかじめ定めら
れ、プロセッサのアドレスによって特定される。ここで
は、最低順位のプロセッサアドレスは最高順位に対応す
る。しかし、プロセッサの順位をつける他の方法も可能
である。
【0035】ステップ2の判断は図3に示された信号q
0乃至q3に基づくもので、この信号は回路LT PU
0乃至LT PU3の1個に要求が記憶されているか否
かを示すものである。対応の回路LT PUμ+xにラ
ッチされた偶数メモリバンクM0へのアクセス要求を有
する、いずれかの高順位のプロセッサがあるとステップ
2で判断されると、ステップ3で対応の回路LT PU
μにプロセッサPUμの要求を記憶させることが可能と
なる。例えば、プロセッサPU1が偶数メモリバンクM
0へのアクセス要求を起こすと、これは図3に示した信
号REQ PU1によって示される。高順位プロセッサ
PU0による要求が対応の回路LT PU0にすでに記
憶されていることを信号q0が示すと、プロセッサPU
1による要求は回路LT PU1に記憶される。信号q
0は信号q2,q3の状態に関わりなくこの記憶オペレ
ーションを行うことが可能である。
【0036】ステップ2で、対応の回路LT PUμ+
xに記憶された偶数メモリカードM0へのアクセス要求
を有する高順位のプロセッサPUμ+xがないと判断さ
れると、ステップ4の実施へ移る。ステップ4で、対応
の回路LT PUμ−xに記憶された偶数メモリカード
M0へのアクセス要求を有する低順位のプロセッサPU
μ−xがあるか否か判断する。否という判断であれば、
ステップ3が実施され、プロセッサPUμの要求は対応
の回路LT PUμに記憶される。一方、あるという判
断であれば、プロセッサPUμの要求は記憶されない。
こうして、ステップ3を実施するための上記条件が満た
されるまで要求を出しているプロセッサPUμはステッ
プ5で待機しなくてはならない。
【0037】図3に示した例では、要求を出しているプ
ロセッサはプロセッサPU1であり、回路LT PU1
は信号q0によって活動化されているわけではない。こ
の場合、低い順位のプロセッサPU2またはPU3の要
求が対応する回路LT PU2またはLT PU3に記
憶されていることを信号q2またはq3のいずれもが示
さないという条件下でのみプロセッサPU1の要求が記
憶される。
【0038】別のメモリバンク(この例ではメモリバン
クM1)にアクセスするプロセッサPUμの要求につい
ては同じ経過が適応される。このコンセプトはメモリバ
ンクの数に限定されるものではない。
【0039】図6を参照して、信号q0乃至q3から図
3に示した調停回路によって信号GRANTがどのよう
に発生するのか詳細に説明する。以下において、図3に
示す調停装置がプロセッサPU0乃至PU3の1台に所
属すると仮定する。
【0040】ステップ3の実施後、ステップ6におい
て、高い順位のプロセッサPUμ+xの要求が対応する
回路LT PUμ−xに記憶されたことを信号q0乃至
q3のいずれかが示しているか否か判断する。示すと判
断したなら、要求を出しているプロセッサPUμはバス
GRANTを待たなくてはならず、ステップ6は否とい
う判断を出すまで繰り返し実施される。
【0041】各バス関与者は信号EVEN BSM C
ARD BUSYを発生するラッチと信号ODD BS
M CARD BUSYを発生するラッチを有する。こ
れらのラッチは図示されていないが、メモリバンクが2
個以上のケースでは、各メモリバンク用にこの種のラッ
チを設ける。信号EVEN BSM CARD BUS
Yは偶数メモリバンクがそれに送られた前の指令によっ
て今だに多忙状態であり、新たな指令をまだ受け取るこ
とができていないことを示す。このようにして、信号E
VEN BSM CARD BUSYは偶数メモリバン
クが指令過剰にならないように保護する。
【0042】要求を出したプロセッサPUμが双方向バ
ス110に指令を出すことを望んでいる事を信号BSM
CMDが示す。メモリを含まないプロセッサの相互問
合せにもメモリバスが使用されるので、この指令はメモ
リオペレーションを含む。
【0043】各バス関与者は図示されない他のラッチを
有する。このラッチは前のバス指令が奇数メモリバンク
M1を選択したなら督促を発し、−LAST BUS
CMD ODDが活性となる。このラッチの逆出力は−
LAST BUS CMDEVENと名付けられ、この
信号は奇数の要求用の調停装置で使用される。
【0044】奇数メモリバンクM1用の調停装置が回路
LT PU0乃至LT PU3のどれかに記憶された要
求を持たないとき、書込み過剰信号−NO REQUE
STODDあるいは−NO REQUEST EVEN
のそれぞれが、アクセス許可を得るために有効である。
【0045】ステップ7では、要求を出しているプロセ
ッサ、又は他のバス関与者が発した最後のバスコマンド
が偶数メモリバンクM0を選択するものであるか否かを
判断する。発したと判断したなら、ステップ8の実行に
移る。ステップ8では、偶数メモリバンクM0に割り当
てられていない調停装置において要求が記憶されている
か否かを判断する。記憶されていると判断されたなら、
制御はステップ7に戻り、要求PUμは許可が出るまで
待たねばならない。上記ステップ7および8は図3に示
した信号−LAST BUS CMD ODDおよび−
NO REQUEST ODDにそれぞれ対応する。A
ND/INVERTゲート33は、ステップ7あるいは
ステップ8の条件が満たされる時のみ論理1となる。
【0046】続いて、ステップ9では偶数メモリバンク
M0がまだ多忙であるか否かを判断する。多忙であると
判断されると、ステップ10において要求を出している
プロセッサPUμの指令がメモリへのアクセスを含んだ
指令であるか否かを判断する。含んでいると判断される
と、制御はステップ9へ戻され、プロセッサPUμは許
可が出るまで待たねばならない。ステップ9の条件ある
いはステップ10の条件が満たされていないなら、信号
PUμ GRANT EV RAWが回路31によって
発生する。上記ステップ9、ステップ10は、入力EV
EN BSMCARD BUSYおよびBSM CMD
を有するAND/INVERTゲート32によって実施
される。AND/INVERTゲート32および33の
両出力はANDゲート34に送られ、信号PUμ GR
ANT EV RAWが回路31によって発生させられ
るなら、ゲート34の出力は論理的に高くなる。これは
ステップ11に対応する。回路31は、ANDゲート3
4の出力と信号q0乃至q3に基づいてこの信号を発生
させる。回路31によって発生した信号PUμGRAN
T RAWは信号−XFER DATA ODDおよび
−BUS BUSYと同様にANDゲート35に送られ
る。信号XFER DATA ODDが活性なら、奇数
メモリM1に出入りのデータが現在バス110で送られ
ていることを示す。この信号は図1の制御ライン113
を経て送られる。偶数データXFER DATA EV
ENと等価信号が制御ラインを経て奇数バンクに係る調
停装置へ送られる。信号−BUS BUSYが後に詳細
に説明するバスプロトコルに基づいてバス関与者のいず
れかによって起こされる。この信号も、信号PUμGR
ANT ODD RAWおよびXFER DATA E
Vと同様にANDゲート36に送られる。信号PUμ
GRANT EV RAWの場合と同様のルールに従っ
て信号PUμ GRANT ODD RAWが発生す
る。
【0047】このようにして、信号PUμ GRANT
EV RAWが高く、バスが多忙でなく−BUS B
USY、メモリバス110を経て奇数メモリバンクM1
へ出入りするデータがない−XFER DATA OD
D場合に、信号GRANTがステップ13で高くなり、
奇数メモリバンクM0へのアクセス要求により要求を出
しているプロセッサPUμにバスへのアクセスを許可す
る。ステップ12では奇数メモリバンクM1へ出入りす
るデータがあるか否かあるいはバスが多忙か否かを判断
する。ある、あるいは多忙という判断なら、要求を出し
ているプロセッサはGRANTを待ち、ステップ12は
繰り返し実行される。
【0048】回路31への追加入力を行うことは特に効
果的である。この追加入力は、調停装置および回路31
が属するプロセッサPUμを識別するために回路31に
情報を与えることになる。これは、プロセッサPU0乃
至PU3に割り当てられた全ての調停装置に同じハード
ウェア配列を採用することが可能となる。信号PUμG
RANT EV RAWを発生するに必要なハードウェ
ア配列は、対応する入力がある時に奇数メモリバンクM
1用の対応信号PUμ GRANT ODDRAWを発
生させるためにも使用される。信号PUμ GRANT
ODDRAWを発生させるため、奇数要求が回路LT
PU0乃至LT PU3の入力REQ PU0乃至R
EQ PU3に加えられる。さらに信号EVEN BS
MCARD BUSY,−NO REQUEST OD
D,−LAST BUSCMD ODDが、それぞれ対
応する奇数、偶数信号に対して交換される。これは、回
路31および回路LT PU0乃至LT PU3を有す
る調停装置用の基本回路が、調停がプロセッサのどれに
使用されるか、またメモリバンクのどれに使用されるか
にかかわらず同一である。
【0049】さらに一般的なケースでは、メモリはメモ
リバンクの調停数nに論理的に分割される。共通メモリ
バス110を利用する調停数mのプロセッサがあるな
ら、各プロセッサはn個の基本回路を有する。この基本
回路の各々は回路LT PU0乃至LT PUm−1を
有し、あるプロセッサPUμの前記基本回路の各々がメ
モリバンクの1個に割り当てられる。前記基本回路の各
々はそのメモリバンク用に図3に示された信号PUμ
GRANT EV RAWに対応し、そのメモリバンク
に割り当てられた信号を発生する。このGRANT R
AW信号の各々は、ORゲート37によって出力される
許可信号GRANTを発生させるために、ANDゲート
35または36の一方に対応するANDゲートに入力さ
れる。メモリバンクの数nが2を上回るなら、追加AN
Dゲートを各追加バンク用に図3に示した調停回路に加
えられる。ANDゲート35および36のケースと同様
に、信号−BUS BUSYがこの追加ANDゲートに
送られる。基本回路が割り当てられたメモリバンクの一
つのために発生された信号GRANT RAWを、この
基本回路に割り当てられたメモリバンクに現在バスを経
て出入りするデータがないという事を示す追加の信号と
同様に、さらに追加のANDゲートに入力する。この信
号もANDゲート35および36に入力しなくてはなら
ない。
【0050】ここで考察したより一般的なケースでは、
図5および図6に示したフローチャートが相似的に応用
できる。あらかじめ決めた順位をm個のプロセッサに割
り当てると、図5のフローチャートの論理は変更する必
要がない。したがって、あるメモリバンクτへのm個の
プロセッサPUμの一つからのアクセス要求を記憶させ
る手順は、各基本回路内でこのバンクτに割り当てられ
た回路LT PUμに記憶される。図6に示された手順
は、ここで考察した一般的ケースでほんのわずか修正さ
れる。プロセッサPUμのメモリバンクτへのアクセス
許可を発生することになるなら、メモリバンクτに割り
当てられたプロセッサPUμの調停装置の基本回路に属
する回路31によってステップ6、7、8、9、10が
実施される。ステップ6では、同じメモリバンクτにア
クセスを要求する高い順位を持つプロセッサのいずれか
1台用の回路LT PU0乃至LTPUm−1の1個に
要求を記憶させるか否か判断する。ステップ7で行われ
る判断の基準は、最終バス指令がメモリバンクτにアク
セスするか否かであり、ステップ8の条件は別のバンク
への別のアクセス要求が活性か否かということである。
【0051】一般的ケースでのステップ9の条件は、対
応するラッチによって決定されるようにメモリバンクτ
が多忙か否かであり、一方ステップ10の条件は要求を
出しているプロセッサPUμの指令が実際にメモリを含
んでいるか否かである。ステップ12の判断が再び、バ
ス10に現在データが送信されているか否かを決定する
ために使われる。一般的ケースで、偶数メモリカードM
0の信号PUμ GRANT EV RAWに対応する
n個のメモリバンクの各々に対し各プロセッサPUμが
信号PUμ GRANT RAWを発生するため、基本
回路をn個有することに留意すべきである。その基本回
路の各々は、対応するメモリバンクτへのプロセッサの
アクセス要求を記憶するため回路LT PU0乃至LT
PUm−1を有する。その回路LT PU0乃至LT
PUm−1に記憶された要求は、この基本回路が割り
当てられたメモリバンクτへのプロセッサのアクセス要
求の待ち行列を構成する。プロセッサPUμの1要求
は、上記条件が満たされると対応する待ち行列に入れら
れる。この待ち行列は、メモリバンクτに割り当てられ
た基本回路の各々の回路LT PU0乃至LT PUm
−1に記憶させる。中央調停装置に比べると、要求入力
REQ PUμと許可信号出力GRANT間の論理ゲー
トや回路配線の数量が少ないので、この分散調停のコン
セプトは有利である。それゆえ、要求や許可は同一マシ
ンサイクル内で発生することになる。これは、外部ネッ
トと共にそれぞれ、要求用に1本、許可用に1本の2本
の長い遅延パスが必要な中央調停装置では実現できな
い。
【0052】図1に示したDMAユニットのメモリバス
110へのアクセス要求はプロセッサからの要求と同じ
方法で処理されるので、DMAユニットはプロセッサと
同じ調停手段を有している。しかし、プロセッサ要求に
優先する権利をこのDMAユニットに与えることは有利
である。このケースではDMA要求はプロセッサの要求
が消滅する時には常に実現される。これは各調停装置の
基本回路の各々へ追加論理エレメントを加え、プロセッ
サ要求が切られたことを示す信号を発生することによっ
て実現する。
【0053】本発明の他の望ましい実施例によれば、各
プロセッサはバス通過情報を減らすために1レベル以上
のキャッシュメモリを有する。プロセッサがレベル1の
キャッシュおよびそれより大容量のレベル2のキャッシ
ュを含む時、このシステムの能力はかなり増大する。レ
ベル2キャッシュは、レベル1キャッシュを有するプロ
セッサと同様にメモリバス110へのインターフェース
を持ち、2ポートの読取り/書込みキャッシュディレク
トリを有する。このアレーは、有効なキャッシュライン
ごとについてそのラインのアドレスと別のセットの制御
ビットを持つ。すなわち、 1. 有効ビット :キャッシュディレクトリのエン
トリを有効とする。 2. 変更ビット :キャッシュラインの変更を示
す。 3. 多重複写ビット:プロセッサ間の共有キャッシュ
ラインを示す。
【0054】これはストアーインキャッシュコンセプト
を有する多重プロセッサにおけるデータの一貫性を維持
するためである。このコンセプトはG.Doettli
ngによる上記引用論文に詳細に説明されており、異な
ったレベルのキャッシュのコンセプトは省略されるか、
キャッシュ間のデータの一貫性を維持するための別のコ
ンセプトが適用されるが、本発明の望ましい実施例で実
現される。
【0055】次に、異なったバスのタイミングダイヤグ
ラムにおけるオペレーションを例として詳細に説明す
る。図7はプロセッサPU0の偶数メモリカードM0か
らの偶数ラインに対するラインフェッチオペレーション
を示す。図7の第1列はこのオペレーションを実施する
に必要なマシンサイクル1乃至14を示す。初めに、要
求プロセッサPU0はその要求ラインREQUEST
EVENを起こし、それを偶数メモリカードに割り当て
た基本回路の対応する入力REQ PU0に送る。PU
0 GRANT EV RAWは、図3、図4に示した
本発明による調停装置と図5、図6のフローチャートに
よって与えられる。GRANTを有効にするため、PU
0がメモリに指令CMDを送ることを要求すると、EV
EN BSM CARD BUSYラッチをオフにする
必要がある。各プロセッサおよびDMAユニットはこの
ラッチを持ち、偶数BSMカードに対する指令サイクル
によってセットされ、ALLOW XFER DATA
EVENが2サイクルの間活性である時、リセットさ
れる。同様に、ODD BSM CARD BUSYラ
ッチはすべてのプロセッサとDMAにおいて存在する。
これらのラッチの目的は次のごとくである。すなわち、
プロセッサはメモリに対するバスオペレーションを完了
しているが、BSMカードは特に記憶オペレーションに
関する新たな指令をまだ受け取っていない状態のとき、
ラッチは指令過剰に対してBSMを保護する。したがっ
て、両方のメモリバンクへのアクセス要求が回路LT
PUに待ち行列させてあるなら、調停装置によって偶数
メモリバンクおよび奇数メモリバンクに対して交互にア
クセスが許可される。
【0056】プロセッサは図1の制御ライン111を経
てメモリに送られるSELECTでサイクル2に移り、
さらに指令CMDおよびアドレスADDRをメモリバス
に入れる。これは図7のMEMORY BUS列に示さ
れている。要求されたラインアドレスが有効ならメモリ
初期アクセス時間、すなわち、メモリカードがそのアレ
ーにアクセスしそのフェッチバッファを満たすための時
間は、全てのプロセッサによってそのキャッシュディレ
クトリを捜索するために同時に使用される。これは通常
「バス探索」と呼ばれている。図7では照合が成立しな
かったとする。これはCACHE DIR SEARC
H列でNO MATCHによって示される。従って、プ
ロセッサのどれもサイクル4からの共通−BUSY11
8ラインを駆動せず、−BUSYがオープンドレーン駆
動部によって駆動する。つまり、1個以上の活発な駆動
部が負の極性を駆動する。プロセッサのどれもこの信号
を駆動しないなら、これは要求を出しているプロセッサ
に他のプロセッサのどれも必要なデータを送っていない
ことを示す。このようにして、要求を出しているプロセ
ッサPU0は制御ライン114を経て1サイクルの間に
偶数メモリカードM0に信号ALLOW XFER D
ATA EVENを送る。メモリは、準備ができていれ
ば、XFER DATA EVENを駆動し、プロセッ
サに制御ライン112を経て対応の信号を送信する。1
サイクル後、この例4*16バイトでは多数のデータシ
ョットがメモリバス110を経て送信される。このデー
タ送信中、信号XFER DATA EVENは活性の
ままである。
【0057】別のプロセッサでのキャッシュ照合をもち
いたラインフェッチオペレーションは図8に示す。この
例は上記の図7の例と次の点で異なっている。照合プロ
セッサのキャッシュ制御論理はサイクル4から−BUS
Yライン(図1の制御ライン118)を起動し、そのプ
ロセッサへの同報通信要求を活性化する。同報通信プロ
セッサは、PU RESPONSEによりその操作状態
に依存する可変時間の後で応答することになる。これは
要求された内部活動が行われたことを示す。この例では
多重複写ビットMCがセットされ、図8のラインBRO
ADCASTCMD内の信号SET MC BITによ
ってに示される。続いて、−BUSYラインは、CAC
HE DIR SEARCH中に照合が生じた他のプロ
セッサによって消滅させられる。
【0058】要求プロセッサPU0はサイクル4で−B
USYライン118をサンプルとする。このラインは活
性なので、その多重複写ビットMCをセットする。ハー
ドウェアエラーの場合にキャッシュが部分的に更新する
のを避けるために完全なラインがキャッシュ内にある
時、有効なビットは最終サイクルでオンになる。これは
信号SET VALID BITによって示される。
【0059】−BUSYがオフになるとすぐに信号AL
LOW XFER DATA EVENが1サイクル用
にセットされる。それゆえ、既に用意されたメモリから
のデータ転送は遅れることなく、あるいは他のプロセッ
サ内のキャッシュ照合によってほんの少し遅れるだけで
ある。
【0060】図8に示した例の2つの変更例は次のa)
とb)である。 a) 他のプロセッサは照合を有し、多重複写ビットM
Cはその対応するキャッシュディレクトリで既にオン状
態にある。こうして他のプロセッサはサイクル4内の1
サイクルに対し−BUSYを起動するが、そのプロセッ
サに同報通信要求を割り込ませることはない。 b) 要求プロセッサはLINE FETCH DUE
TO STOREを送る。これは記憶サイクルがライ
ンフェッチオペレーションをトリガした事を意味する。
ところで、それは照合プロセッサで有効なラインを維持
するためには意味がないことになる。それゆえに同報通
信指令はINVALIDATE LINEであり、要求
プロセッサは多重複写ビットMCをセットしない。これ
は前述のG.Doettlingによる引用論文に記載
されたデータ一貫性に関するコンセプトに対応するもの
である。
【0061】次に、キャストアウトを伴ったラインフェ
ッチオペレーションを図9を参照して説明する。このケ
ースでは、他のプロセッサPU3は変更ビットCとのキ
ャッシュ照合を見つけだす。つまり、プロセッサPU3
は−BUSYをオンにする。同報通信指令は、メモリ指
令がLINE FETCH DUE TO FETCH
なら、変更ビットCをリセットし、多重複写ビットMC
をセットする、というものである。LINE FETC
H DUE TO STOREについては、INVAL
IDATE LINEとなる。
【0062】PU RESPONSEの後、プロセッサ
PU3はSELECTをオンにし、特別なキャストアウ
ト指令CAST OUT CMDをメモリバスに入れ
る。これはメモリカードに初めの指令が取り消されたこ
とを示す。したがってALLOW XFER DATA
EVENはオンにならない。プロセッサPU3は、サ
イクル13からメモリバス110のラインをロールアウ
トする。1サイクル前、メモリカードはキャストアウト
指令を受信するとXFER DATA EVENを駆動
する。プロセッサPU0はそのデータをそれがメモリか
ら来たときと同様に取る。メモリも同様にそのデータを
受ける。その記憶バッファからのデータをメモリの配列
に書込むための時間が少し必要となる。メモリは2個の
サイクル用にALLOW XFER DATA EVE
Nを起動し、次の指令に対する準備を示す。
【0063】図10を参照にしてラインフェッチ/ライ
ン記憶オペレーションを説明する。このオペレーション
は変更したラインをロールアウトして、同じオペレーシ
ョンで偶数BSMカードM0からフェッチした他のライ
ン用のキャッシュのスペースを確保する。ラインフェッ
チ/ラインフェッチアドレスL.F.ADDRを伴った
ライン記憶指令を、LINE FETCH/LINE
STORE CMDによって示されるように選択サイク
ルSELECTでメモリバス110に入れる。そうして
メモリは即座にフェッチアクセスを開始する。他のプロ
セッサは、ラインフェッチアドレスL.F.ADDRで
各々のディレクトリを探索する。
【0064】次のサイクル(サイクル3)では、ライン
記憶アドレスL.F.ADDRはメモリバス110にあ
り、ロールアウト対象のラインの4つのデータショット
が続く(LINE STORE DATA)。プロセッ
サPU0が定義に従ってこの変更したラインの専有者な
ので、このライン記憶アドレスについての同報通信は起
きない。各記憶データサイクルは信号XFER DAT
A EVENを伴っている。この例では他のプロセッサ
でキャッシュ照合はないと仮定するので、図7を適用す
る。もしキャッシュ照合があるならば、図8や図9に示
したタイミングダイヤグラムを同じように適応する。し
かし、初めの6メモリバスサイクルがどの場合でも起き
る。記憶バッファの記憶データがフェッチオペレーショ
ンが終了する前にはメモリアレー内に書込まれないの
で、LATCH:EVEN BSMCARD BUSY
によって示されるようにメモリカードはそれより長時間
多忙となる。
【0065】図11には2つのインターリーブしたライ
ンフェッチを示す。プロセッサPU0は要求REQUE
ST EVENを起し、同時にプロセッサPU1は要求
REQUEST ODDを起す。プロセッサPU0が初
めに効果のある許可GRANTを得るとし、サイクル3
でバスに選択サイクルSELECTを入れ、図1にしめ
した制御ライン111、118にそれぞれ対応する2つ
のサイクル用に−BUSYを駆動する。このようにして
プロセッサPU0は、偶数メモリM0からの対応するラ
イン1をフェッチするためにメモリバス110にアドレ
スADDRを伴った指令CMDを入れる。図11のCA
CHE DIR SEARCHで示されるようにプロセ
ッサPU1のキャッシュディレクトリで照合無しNO
MATCHが生じる。
【0066】プロセッサPU1用の効果のある許可GR
ANTは、−BUSYをオフにした後にサイクル4で活
性となる。プロセッサPU1は選択サイクルSELEC
Tを偶数オペレーションの指令サイクルとデータサイク
ルの間のスペースに置く。このスペースはサイクル3の
終わりからサイクル10の初めまで広がり、偶数メモリ
バンクM0の内部配列にアクセスするため、またアドレ
スADDRによって特定された必要なデータをその内部
バッファに入れるために必要な時間によるものである。
プロセッサPU1の要求REQUEST ODDが遅れ
て来ると、サイクル9で最も遅い可能性がある有効な許
可GRANTが発生する。その時から、図1に示した制
御ライン112に対応するXFER DATA EVE
Nによって抑制される。どのプロセッサでも照合無しN
O MATCHとされており、図9に示した例の場合の
ようにキャストアウトが起こらないのでALLOW X
FER DATA EVENおよびALLOW XFE
R DATA ODDはそれぞれ最も早い可能性がある
サイクル、すなわちサイクル5および8で活性となる。
信号ALLOW XFER DATA EVENおよび
ALLOW XFER DATA ODDは制御ライン
114および115を経てそれぞれ送られる。偶数BS
MカードM0は、通常の初期アクセス時間の後にバス1
10にデータDATA EV.を供給する。奇数BSM
カードM1は、図11で示すようにサイクル14で最後
のデータショット4の送信の後の最後のデータサイクル
を内部メモリ信号が示すまで待つ。つづいて奇数BSM
カードは図1に示した制御ライン113に対応するXF
ER DATA ODDをオンにする。このDATAO
DDのデータ移送は1サイクル後のサイクル16で開始
する。
【0067】このタイミングは、2つのラインフェッチ
オペレーションがたった19サイクルで行われることを
示している。プロセッサのバスへのアクセスのインター
リーブがなしでは、同じオペレーションは2*14サイ
クルをとる。このようにバス処理能力はかなり増大す
る。
【0068】バスインターリーブの他の価値のある効果
は図10に示されている。すなわち、奇数要求REQU
EST ODDによる有効な許可GRANTはサイクル
8で可能であり、奇数ラインフェッチオペレーションが
起され、メモリの内部アクセス時間によりサイクル21
で終結する。信号LATCH: EVEN BSMCA
RD BUSYによって示されたようにサイクル24ま
で偶数BSMカードM0が多忙なので、インターリーブ
なしで、奇数要求による新たな選択SELECTはサイ
クル26以前に可能とはならない。
【0069】
【発明の効果】図12では本発明によるプロセッサシス
テムの相対的に向上した能力を示す。本図の曲線は第n
番の多重プロセッサに基づく多重プロセッサシステムの
相対能力を示す。実線は、バスインターリーブなしで、
16kBキャッシュメモリの第1レベルL1のみ有する
多重プロセッサシステムの能力を示す。破線は第2レベ
ルL2キャッシュメモリを有する上記に対応する曲線を
示す。最後の点線は、L2キャッシュメモリおよび改良
されたバスシステムを有する本発明による多重プロセッ
サシステムの増大した能力を示す。
【0070】本発明によって、多重プロセッサシステム
における共通バスに対するアクセスを効率的に許可する
方法とそのシステムが提供される。
【図面の簡単な説明】
【図1】本発明による多重プロセッサシステムを示す概
略構成図である。
【図2】多重プロセッサシステムの主メモリにおけるデ
ータの分散を示す概略図である。
【図3】本発明による調停装置を示すブロック図であ
る。
【図4】本発明による調停回路の望ましい実施例を示す
回路図である。
【図5】本発明による調停方法を示すフローチャートで
ある。
【図6】本発明による調停方法を示すフローチャートで
ある。
【図7】バスオペレーションの1例を示すタイミングダ
イヤグラムである。
【図8】バスオペレーションの他の例を示すタイミング
ダイヤグラムである。
【図9】バスオペレーションの他の例を示すタイミング
ダイヤグラムである。
【図10】バスオペレーションの他の例を示すタイミン
グダイヤグラムである。
【図11】バスオペレーションの他の例を示すタイミン
グダイヤグラムである。
【図12】本発明によるプロセッサシステムの相対的に
向上した能力を示す線図である。
【符号の説明】
PU プロセッサ DMA 直接記憶アクセス M0 メモリバンク M1 メモリバンク 110 メモリバス 111 制御信号ライン 112 制御信号ライン 113 制御信号ライン 114 制御信号ライン 115 制御信号ライン 116 制御信号ライン 117 制御信号ライン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウド・ヴィレ ドイツ国7038 ホルツゲルリンゲン、ヴェ ンゲルトスタイゲ 47

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】二以上のプロセッサと、二以上のバンクに
    論理的に分割された記憶手段と、前記プロセッサと前記
    記憶手段とを接続し情報転送するためのバス手段と、前
    記バス手段に対してアクセスを許可する調停手段とを有
    するマルチプロセッサシステムであって、 前記調停手段は、第一の前記プロセッサが発する第一の
    前記バンクに対するアクセス要求を許可し、前記第一の
    バンクがビジー状態にある間に、第二の前記プロセッサ
    が発する第二の前記バンクに対するアクセス要求を許可
    することを特徴とするもの。
  2. 【請求項2】前記プロセッサは予め定められた優先順位
    を有しており、前記調停手段は各々の前記バンクごとに
    それに対してなされたアクセス要求をキューに保持する
    手段を包含し、前記アクセス要求の前記キューへの保持
    は、アクセス要求をなしたプロセッサよりも、 a)優先順位の高いプロセッサが発した要求が対応する
    前記キューにすでに保持されていること、または、 b)優先順位の高いプロセッサおよび優先順位の低いプ
    ロセッサが発した要求が対応する前記キューに保持され
    ていないこと、のいずれかを具備することを条件として
    行われる、請求項1のシステム。
  3. 【請求項3】前記調停手段が分散して設けられており、
    前記プロセッサの各々が前記バンクの各々に対して割り
    当てられた前記調停手段を有していることを特徴とした
    請求項1または請求項2のシステム。
  4. 【請求項4】前記マルチプロセッサシステムが最高の前
    記優先順位に割り当てられたDMAユニットをさらに含
    み、前記DMAによる前記バス手段へのアクセス要求が
    前記プロセッサによるアクセス要求に優先することを特
    徴とした請求項1、2または3のシステム。
  5. 【請求項5】二以上のプロセッサと、二以上のバンクに
    論理的に分割された記憶手段と、前記プロセッサと前記
    記憶手段とを接続し情報転送するためのバス手段と、前
    記バス手段に対してアクセスを許可する調停手段とを有
    するマルチプロセッサシステムにおいて、一のプロセッ
    サが前記バス手段に対してアクセス許可を得る方法であ
    って、 前記一のプロセッサの優先順位を特定するステップと、 前記一のプロセッサの優先順位よりも、 a)優先順位の高いプロセッサに係わる要求が対応する
    前記キューにすでに保持されていること、または、 b)優先順位の高いプロセッサおよび優先順位の低いプ
    ロセッサに係わる要求が対応する前記キューに保持され
    ていないこと、 を具備していることを条件として、前記一のプロセッサ
    による第一の前記バンクに対するアクセス要求を第一の
    キューに保持するステップと、 前記第一のキューに前記第一のプロセッサよりも優先順
    位の高いプロセッサによる前記アクセス要求が保持され
    ていない時は前記アクセス要求に基づいて前記バス手段
    に対するアクセスを許可するステップと、 を含む方法。
  6. 【請求項6】c)前記バス手段に対して許可された最後
    のアクセスは第一の前記バンク以外の前記バンクに対す
    るものであったこと、または、 d)前記c)を満たさない場合であって、他の前記キュ
    ーに前記アクセス要求が保持されていないこと、 のいずれかを具備することを条件として前記アクセスを
    許可するステップを実行する、請求項5の方法。
JP5122973A 1992-06-24 1993-05-25 多重プロセッサシステム Pending JPH06214960A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP92110650A EP0575651A1 (en) 1992-06-24 1992-06-24 Multiprocessor system
DD92110650.6 1992-06-24

Publications (1)

Publication Number Publication Date
JPH06214960A true JPH06214960A (ja) 1994-08-05

Family

ID=8209742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5122973A Pending JPH06214960A (ja) 1992-06-24 1993-05-25 多重プロセッサシステム

Country Status (3)

Country Link
US (1) US5594876A (ja)
EP (1) EP0575651A1 (ja)
JP (1) JPH06214960A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023808A (ja) * 2004-07-06 2006-01-26 Sony Corp データ転送装置及びデータ転送方法

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897654A (en) * 1995-02-10 1999-04-27 International Business Machines Corporation Method and system for efficiently fetching from cache during a cache fill operation
WO1996030842A1 (en) * 1995-03-27 1996-10-03 International Business Machines Corporation Bus structure for a multiprocessor system
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US6026464A (en) * 1997-06-24 2000-02-15 Cisco Technology, Inc. Memory control system and method utilizing distributed memory controllers for multibank memory
US6978357B1 (en) * 1998-07-24 2005-12-20 Intel Corporation Method and apparatus for performing cache segment flush and cache segment invalidation operations
DE19937176A1 (de) * 1999-08-06 2001-02-15 Siemens Ag Multiprozessor-System
US6298394B1 (en) * 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US7076586B1 (en) * 2000-10-06 2006-07-11 Broadcom Corporation Default bus grant to a bus agent
US6957290B1 (en) * 2000-10-06 2005-10-18 Broadcom Corporation Fast arbitration scheme for a bus
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
FR2825167A1 (fr) * 2001-05-22 2002-11-29 Koninkl Philips Electronics Nv Procede et systeme d'acces a une memoire commune
EP1395952B1 (en) * 2001-06-12 2007-10-10 Silicon Optix Inc. Method and system for processing a non-linear two dimensional spatial transformation
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US7332976B1 (en) * 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) * 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8572297B2 (en) * 2007-04-17 2013-10-29 Cypress Semiconductor Corporation Programmable system-on-chip hub
US8092083B2 (en) * 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8040266B2 (en) * 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US9432446B2 (en) * 2011-04-19 2016-08-30 Ineda Systems Pvt. Ltd Secure digital host controller virtualization
US8990466B2 (en) * 2012-05-29 2015-03-24 Infineon Technologies Austria Ag Arbiter for asynchronous state machines
US9626317B2 (en) 2012-05-29 2017-04-18 Infineon Technologies Austria Ag Arbiter for asynchronous state machines

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391757A (ja) * 1986-09-25 1988-04-22 テクトロニックス・インコーポレイテッド メモリアクセス装置
JPH04175943A (ja) * 1990-11-09 1992-06-23 Hitachi Ltd マルチプロセッサシステム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4402040A (en) * 1980-09-24 1983-08-30 Raytheon Company Distributed bus arbitration method and apparatus
JPS57105879A (en) * 1980-12-23 1982-07-01 Hitachi Ltd Control system for storage device
US4473880A (en) * 1982-01-26 1984-09-25 Intel Corporation Arbitration means for controlling access to a bus shared by a number of modules
IT1159351B (it) * 1983-02-03 1987-02-25 Cselt Centro Studi Lab Telecom Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
US4851990A (en) * 1987-02-09 1989-07-25 Advanced Micro Devices, Inc. High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure
CA1302584C (en) * 1987-07-30 1992-06-02 Alliant Computer Systems Corporation Parallel processing computer in which memory access priorities are varied
US4959776A (en) * 1987-12-21 1990-09-25 Raytheon Company Method and apparatus for addressing a memory by array transformations
EP0425550B1 (en) * 1988-06-30 1995-01-04 Wang Laboratories, Inc. Memory control unit
FR2642195B1 (fr) * 1989-01-20 1991-04-26 Centre Nat Rech Scient Dispositif et procede d'arbitrage des requetes et de resolution des conflits lies a l'acces aux memoires a bancs independants pour les machines informatiques
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5179708A (en) * 1989-04-07 1993-01-12 At&T Bell Laboratories System inhibiting message delivery to destination process until priority of process excuting on distination processor is no higher than priority of sending process
US5060145A (en) * 1989-09-06 1991-10-22 Unisys Corporation Memory access system for pipelined data paths to and from storage
EP0458516B1 (en) * 1990-05-25 1997-11-05 AT&T Corp. Memory access bus arrangement
US5276900A (en) * 1990-12-14 1994-01-04 Stream Computers Master connected to common bus providing synchronous, contiguous time periods having an instruction followed by data from different time period not immediately contiguous thereto
US5261109A (en) * 1990-12-21 1993-11-09 Intel Corporation Distributed arbitration method and apparatus for a computer bus using arbitration groups
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
US5287477A (en) * 1991-08-07 1994-02-15 Hewlett-Packard Company Memory-resource-driven arbitration
US5323489A (en) * 1991-11-14 1994-06-21 Bird Peter L Method and apparatus employing lookahead to reduce memory bank contention for decoupled operand references
US5321697A (en) * 1992-05-28 1994-06-14 Cray Research, Inc. Solid state storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391757A (ja) * 1986-09-25 1988-04-22 テクトロニックス・インコーポレイテッド メモリアクセス装置
JPH04175943A (ja) * 1990-11-09 1992-06-23 Hitachi Ltd マルチプロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023808A (ja) * 2004-07-06 2006-01-26 Sony Corp データ転送装置及びデータ転送方法

Also Published As

Publication number Publication date
EP0575651A1 (en) 1993-12-29
US5594876A (en) 1997-01-14

Similar Documents

Publication Publication Date Title
JPH06214960A (ja) 多重プロセッサシステム
US11868628B2 (en) On-chip atomic transaction engine
US5819105A (en) System in which processor interface snoops first and second level caches in parallel with a memory access by a bus mastering device
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
JP3632766B2 (ja) プロセッサ・システム
KR0163231B1 (ko) 입/출력 채널 제어기, 멀티 프로세싱 시스템 및 데이타 프로세싱 방법
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
US6516393B1 (en) Dynamic serialization of memory access in a multi-processor system
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5032985A (en) Multiprocessor system with memory fetch buffer invoked during cross-interrogation
US6725307B1 (en) Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
JPH0724045B2 (ja) メモリ制御サブシステム
KR20000036144A (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
JPH0576060B2 (ja)
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US5737564A (en) Cache memory system having multiple caches with each cache mapped to a different area of main memory to avoid memory contention and to lessen the number of cache snoops
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US5987544A (en) System interface protocol with optional module cache
US6516391B1 (en) Multiprocessor system and methods for transmitting memory access transactions for the same
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US7689778B2 (en) Preventing system snoop and cross-snoop conflicts
US20020108021A1 (en) High performance cache and method for operating same
US6345340B1 (en) Cache coherency protocol with ambiguous state for posted operations
US6457085B1 (en) Method and system for data bus latency reduction using transfer size prediction for split bus designs
JPH06282528A (ja) データ転送方法及びそのシステム