多重プロセッサシステム
【目的】 多重プロセッサシステムにおける共通バスに対するアクセスを効率的に許可する方法とそのシステムを提供すること。
【構成】 複数のプロセッサ(PU0〜PUn)と共通の主メモリから成る多重プロセッサシステムにおいて、そのメモリは2以上のバンク(M0〜Mn)に論理的に分割され、バス(110)でプロセッサと相互接続され、制御ライン(111〜118)によってバスプロトコールが確立し、1つのバンクがふさがっている時に他のバンクの1つがアクセスされる。
【構成】 複数のプロセッサ(PU0〜PUn)と共通の主メモリから成る多重プロセッサシステムにおいて、そのメモリは2以上のバンク(M0〜Mn)に論理的に分割され、バス(110)でプロセッサと相互接続され、制御ライン(111〜118)によってバスプロトコールが確立し、1つのバンクがふさがっている時に他のバンクの1つがアクセスされる。
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は2個以上のプロセッサ、記憶手段、そのプロセッサと記憶手段の間で情報をやりとりするためのバス手段から構成する多重プロセッサシステムに関する。さらに、本発明は多重プロセッサシステム内の共通バス手段へのアクセスを許可する手段に関する。
【0002】
【従来の技術】1本以上のバスによって相互接続されている複数のエレメントから構成した分散オペレーションシステムにおいて、2個以上のエレメントがこのバスを同時に使用しようとする時、どのエレメントが最初にバスを使用するか決定する調停方法が必要となる。従来技術において、プロセッサとして機能するエレメント、大容量メモリ、入出力制御装置等から成るこのシステムを相互接続するための種々の方法や装置が知られている。
【0003】従来技術のバス調停方法の一例として、同時に1本のバスを使用しようとする全てのエレメントと通信する中央調停装置がある。この中央バス調停装置は最優先権を有するエレメントを決定し、この最優先権を有するエレメントがバスを使用することを許可する指令信号を送る。このタイプのシステムの重大な欠点は、アクセスの要求を出しているエレメントから中央バス調停装置への送信、あるいはその逆の送信が時間をかなり必要とし、システム全体のオペレーション速度を低下させる原因となっていることである。
【0004】バス調停方法の他の従来例は、環状連鎖(デイジー・チェイン)と称されるものがある。この方法では、優先順位にしたがってエレメントからエレメントへバス有効信号が送られる。バスにアクセス希望のエレメントはその信号を捕獲し、それによってバスにアクセスできる。これも比較的遅い調停方法である。
【0005】バス調停方法の3番目の従来例は、主データバスから分離した信号ラインのパルス列として、各装置にその優先コードを同時に送るというものである。その信号ラインの番号は、使用するナンバリングシステムとコーディングシステムによって決定する。パルスコーディングを使用するなら、そのパルスは各装置のカウンタに送られる。装置がその優先コードに等しいカウントを得ると、一つの調停が成立し、主データラインへのアクセスが得られる。装置カウンタで得た優先番号がその装置の優先番号と一致しない時は、その装置は調停オペレーションから撤退する。しかし、このバス調停方法は別の信号ラインやインターフェース回路が必要となる。すなわち、選択したナンバリングシステムとコーディング技術によって決められた信号ラインやインターフェース回路の番号で装置の優先コードを送ったり、検索するためのものである。この従来例は米国特許出願第4,402,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,735,360号および第3,771,137号等に記載がある。ストア−インキャッシュのディレクトリは米国特許出願第4,394,731号に詳細な記載があり、ストア−インキャッシュの各ラインが排他的読取り専用フラッグビットによって共有可能に制御された多重プロセッサを持っている。ストア−スルーとストア−インキャッシュの主な違いは、ストア−インキャッシュ内の全ての記憶動作はキャッシュ自体に対して行われるので、記憶したラインがストア−インキャッシュ内になければキャッシュミスを発生する。通常、ラインがキャッシュから取り除かれる時のみキャッシュライン変更情報が主記憶装置に更新される。結果として、ストア−インキャッシュ構造は、首尾一貫した制御をより複雑にし、キャストアウトというペナルティを生じる代わりに、主記憶装置バンド幅の減少という要求を達成する。ここで、キャストアウトは1台のプロセッサからのデータアクセスが別のプロセッサのキャッシュ内で修正されたラインを見つけた場合に生じる。
【0018】種々のキャッシュの首尾一貫した制御メカニズムがある。典型的な例は米国特許出願第4,775,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 Consistency in a Multiprocessor System with Store−In Cache Concept」(Microprocessing and Microprogramming 32(1991)215−220,North−Holland)という題の論文によって知られている。この論文は、各プロセッサに備えつけたキャッシュによって多重プロセッサシステムにおけるデータ整合性の維持問題を記したものである。共通のシステムリソースを使用していかなる環境下でもデータの完全性を得、キャッシュ相互問合せ用の付加を低く維持するために特別な注意が払われる。加えて、ストア−インキャッシュのコンセプトを使用してメモリアクセスへの待ちサイクルを減少させる。上記の従来技術によるキャッシュのコンセプトのどれかを本発明による多重プロセッサシステムで用いられるとしても、上記論文のG.Doettlingによるコンセプトを採用することは特に価値がある。
【0022】
【実施例】以下、添付図面を参照にして本発明の実施例を説明する。図1は本発明による望ましい実施例の構造を示す。すなわち、直接記憶アクセス(DMA)ユニットと同じように複数のプロセッサPU0、PU1、PU2、・・・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によってバス関与者に相互接続される。さらに、メモリバンクは制御信号ライン111、112、113、114、115によってバス関与者に相互接続される。この制御信号はバスプロトコルを確立するために必要である。調停手段を伴ったバスプロトコルはバス関与者のバスアクセスを制御するためのものである。制御信号ライン116、117は、調停装置間でバス関与者のバスアクセス要求を連絡するための別のバスである。制御信号ライン116はメモリバンクM0へのアクセス要求を送信し、制御信号ライン117はメモリバンクM1へのアクセス要求を送信する。さらに、バス関与者の調停装置は別の制御信号118によって相互接続される。メモリバス110は制御信号ライン111、114、115、116、117、118と同様に双方向であり、制御信号112と113は図1の矢印で示されるように一方向である。
【0025】図2は、メモリアドレスが2個のバンクM0、M1にどのように分散されるか示したものである。これは図2に示すようにM0、M1をボックス形状として表わす。この箱内の各列は、ボックスM0の最下段の最も低いアドレスでスタートする記憶ライン1を示す。この例では、ラインサイズが64バイトと仮定する。第1ラインL1はメモリバンクM0のアドレス0でスタートし、一方第2ラインはメモリバンクM1の16進表記法でアドレス64または40によってスタートする。図2R>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を高位にする。信号ラインREQ PU0乃至REQ PU3は対応する回路LT PU0乃至LT PU3に接続されている。この回路は出力q0乃至q3を有する。また、この出力は回路LT PU0乃至LT PU3への入力として作用する。
【0028】回路LT PU0乃至LT PU3はプロセッサPU0乃至PU3の要求を記憶したりラッチする機能を有する。要求が記憶されたとき、対応する出力qが表示される。supp入力信号が流動状態にあれば、対応するプロセッサの要求は対応する回路に記憶されない。しかし、en入力信号が活動状態であれば、他のsuppの状態に関わりなく回路は対応するプロセッサの要求を記憶することが可能となる。図3に示された最後の回路LT PU3はこうした別の入力を持たない。このケースにおけるプロセッサのあらかじめ決めた順位付けがPU0、PU1、PU2、PU3で、PU0が最も高い優先順位でPU3が最も低い順位であるという理由による。したがって最も低い順位のPU3の要求は、他のプロセッサの要求に関係なく対応する回路LT PU3に記憶あるいはラッチされる。各信号q0乃至q3は、対応する回路LT PU0乃至LT PU3に要求が記憶されたか否かを示すものである。信号q0乃至q3は信号PUμ GRANTEV RAWを発生させる回路31に送られる。信号EVEN BSM CARD BUSYとBSM CMDはAND/INVERTゲート32に送られ、信号−NO REQUEST ODDと−LAST BUS COMMANDODDはAND/INVERTゲート33に送られる。AND/INVERTゲート32、33の出力はANDゲート34に送られる。ANDゲート34の出力も回路31に送られる。回路31の出力、すなわち信号PUμ GRANT EV RAWは信号BUS BUSYと−XFER DATA ODDと同様にANDゲート35に送られる。ANDゲート36の入力は信号−XFER DATA EV、PUμ GRANT ODD RAW、−BUS BUSYである。ANDゲート35、36の出力はORゲート37に送られる。ORゲート37の出力は信号GRANTである。この信号GRANTは、あるプロセッサについてバスへのアクセスを許可するものである。
【0029】図4では、本発明による調停回路の望ましい実施例を詳細に明示したものである。主スレーブラッチLT PU0’、LT PU2’、LT PU3’は、それぞれ対応するプロセッサPU0、PU1、PU2、PU3の待ち行列に格納されている要求を記憶する。主スレーブラッチに記憶された負の信号は待ち行列に格納された要求である。すべてのラッチ出力が正、すなわち、論理1のときには待ち行列が空である。このラッチへの逆入力は図3の回路31に送られる信号q0、q1、q2、q3である。
【0030】図4に示した調停回路の望ましい実施例は図3に示したものとは、図3の回路LT PU0乃至LT PU3の入力suppとenに関して異なっている。図4に示した実施例では、信号 −supp(q1)、−supp(q2)、−supp(q3)は、それぞれラッチLT PU1’乃至LT PU3’の入力および出力のOR演算の結果発生する。AND/INVERTゲートに送るこれらの信号は、図3の入力suppに送る信号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がすべての論理を介して−supp(q3)として流れ、信号q0乃至q3に影響を与える。
【0032】ラッチLT PU0’およびLT PU1’の出力は信号−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でプロセッサPUμのアクセス要求を示すと、偶数メモリバンクM0への高順位プロセッサPUμ+xの要求が対応の回路LT PUμ+xにすでに記憶されているかどうか次のように判断される。プロセッサの順位はあらかじめ定められ、プロセッサのアドレスによって特定される。ここでは、最低順位のプロセッサアドレスは最高順位に対応する。しかし、プロセッサの順位をつける他の方法も可能である。
【0035】ステップ2の判断は図3に示された信号q0乃至q3に基づくもので、この信号は回路LT PU0乃至LT PU3の1個に要求が記憶されているか否かを示すものである。対応の回路LT PUμ+xにラッチされた偶数メモリバンクM0へのアクセス要求を有する、いずれかの高順位のプロセッサがあるとステップ2で判断されると、ステップ3で対応の回路LT PUμにプロセッサPUμの要求を記憶させることが可能となる。例えば、プロセッサPU1が偶数メモリバンクM0へのアクセス要求を起こすと、これは図3に示した信号REQ PU1によって示される。高順位プロセッサPU0による要求が対応の回路LT PU0にすでに記憶されていることを信号q0が示すと、プロセッサPU1による要求は回路LT PU1に記憶される。信号q0は信号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から図3R>3に示した調停回路によって信号GRANTがどのように発生するのか詳細に説明する。以下において、図3に示す調停装置がプロセッサPU0乃至PU3の1台に所属すると仮定する。
【0040】ステップ3の実施後、ステップ6において、高い順位のプロセッサPUμ+xの要求が対応する回路LT PUμ−xに記憶されたことを信号q0乃至q3のいずれかが示しているか否か判断する。示すと判断したなら、要求を出しているプロセッサPUμはバスGRANTを待たなくてはならず、ステップ6は否という判断を出すまで繰り返し実施される。
【0041】各バス関与者は信号EVEN BSM CARD BUSYを発生するラッチと信号ODD BSM CARD BUSYを発生するラッチを有する。これらのラッチは図示されていないが、メモリバンクが2個以上のケースでは、各メモリバンク用にこの種のラッチを設ける。信号EVEN BSM CARD BUSYは偶数メモリバンクがそれに送られた前の指令によって今だに多忙状態であり、新たな指令をまだ受け取ることができていないことを示す。このようにして、信号EVEN BSM CARD BUSYは偶数メモリバンクが指令過剰にならないように保護する。
【0042】要求を出したプロセッサPUμが双方向バス110に指令を出すことを望んでいる事を信号BSM CMDが示す。メモリを含まないプロセッサの相互問合せにもメモリバスが使用されるので、この指令はメモリオペレーションを含む。
【0043】各バス関与者は図示されない他のラッチを有する。このラッチは前のバス指令が奇数メモリバンクM1を選択したなら督促を発し、−LAST BUS CMD ODDが活性となる。このラッチの逆出力は−LAST BUS CMDEVENと名付けられ、この信号は奇数の要求用の調停装置で使用される。
【0044】奇数メモリバンクM1用の調停装置が回路LT PU0乃至LT PU3のどれかに記憶された要求を持たないとき、書込み過剰信号−NO REQUESTODDあるいは−NO REQUEST EVENのそれぞれが、アクセス許可を得るために有効である。
【0045】ステップ7では、要求を出しているプロセッサ、又は他のバス関与者が発した最後のバスコマンドが偶数メモリバンクM0を選択するものであるか否かを判断する。発したと判断したなら、ステップ8の実行に移る。ステップ8では、偶数メモリバンクM0に割り当てられていない調停装置において要求が記憶されているか否かを判断する。記憶されていると判断されたなら、制御はステップ7に戻り、要求PUμは許可が出るまで待たねばならない。上記ステップ7および8は図3に示した信号−LAST BUS CMD ODDおよび−NO REQUEST ODDにそれぞれ対応する。AND/INVERTゲート33は、ステップ7あるいはステップ8の条件が満たされる時のみ論理1となる。
【0046】続いて、ステップ9では偶数メモリバンクM0がまだ多忙であるか否かを判断する。多忙であると判断されると、ステップ10において要求を出しているプロセッサPUμの指令がメモリへのアクセスを含んだ指令であるか否かを判断する。含んでいると判断されると、制御はステップ9へ戻され、プロセッサPUμは許可が出るまで待たねばならない。ステップ9の条件あるいはステップ10の条件が満たされていないなら、信号PUμ GRANT EV RAWが回路31によって発生する。上記ステップ9、ステップ10は、入力EVEN BSMCARD BUSYおよびBSM CMDを有するAND/INVERTゲート32によって実施される。AND/INVERTゲート32および33の両出力はANDゲート34に送られ、信号PUμ GRANT EV RAWが回路31によって発生させられるなら、ゲート34の出力は論理的に高くなる。これはステップ11に対応する。回路31は、ANDゲート34の出力と信号q0乃至q3に基づいてこの信号を発生させる。回路31によって発生した信号PUμGRANT RAWは信号−XFER DATA ODDおよび−BUS BUSYと同様にANDゲート35に送られる。信号XFER DATA ODDが活性なら、奇数メモリM1に出入りのデータが現在バス110で送られていることを示す。この信号は図1の制御ライン113を経て送られる。偶数データXFER DATA EVENと等価信号が制御ラインを経て奇数バンクに係る調停装置へ送られる。信号−BUS BUSYが後に詳細に説明するバスプロトコルに基づいてバス関与者のいずれかによって起こされる。この信号も、信号PUμGRANT ODD RAWおよびXFER DATA EVと同様にANDゲート36に送られる。信号PUμ GRANT EV RAWの場合と同様のルールに従って信号PUμ GRANT ODD RAWが発生する。
【0047】このようにして、信号PUμ GRANT EV RAWが高く、バスが多忙でなく−BUS BUSY、メモリバス110を経て奇数メモリバンクM1へ出入りするデータがない−XFER DATA ODD場合に、信号GRANTがステップ13で高くなり、奇数メモリバンクM0へのアクセス要求により要求を出しているプロセッサPUμにバスへのアクセスを許可する。ステップ12では奇数メモリバンクM1へ出入りするデータがあるか否かあるいはバスが多忙か否かを判断する。ある、あるいは多忙という判断なら、要求を出しているプロセッサはGRANTを待ち、ステップ12は繰り返し実行される。
【0048】回路31への追加入力を行うことは特に効果的である。この追加入力は、調停装置および回路31が属するプロセッサPUμを識別するために回路31に情報を与えることになる。これは、プロセッサPU0乃至PU3に割り当てられた全ての調停装置に同じハードウェア配列を採用することが可能となる。信号PUμGRANT EV RAWを発生するに必要なハードウェア配列は、対応する入力がある時に奇数メモリバンクM1用の対応信号PUμ GRANT ODDRAWを発生させるためにも使用される。信号PUμ GRANT ODDRAWを発生させるため、奇数要求が回路LT PU0乃至LT PU3の入力REQ PU0乃至REQ PU3に加えられる。さらに信号EVEN BSMCARD BUSY,−NO REQUEST ODD,−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 RAW信号の各々は、ORゲート37によって出力される許可信号GRANTを発生させるために、ANDゲート35または36の一方に対応するANDゲートに入力される。メモリバンクの数nが2を上回るなら、追加ANDゲートを各追加バンク用に図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に現在データが送信されているか否かを決定するために使われる。一般的ケースで、偶数メモリカードM0の信号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.Doettlingによる上記引用論文に詳細に説明されており、異なったレベルのキャッシュのコンセプトは省略されるか、キャッシュ間のデータの一貫性を維持するための別のコンセプトが適用されるが、本発明の望ましい実施例で実現される。
【0055】次に、異なったバスのタイミングダイヤグラムにおけるオペレーションを例として詳細に説明する。図7はプロセッサPU0の偶数メモリカードM0からの偶数ラインに対するラインフェッチオペレーションを示す。図7の第1列はこのオペレーションを実施するに必要なマシンサイクル1乃至14を示す。初めに、要求プロセッサPU0はその要求ラインREQUEST EVENを起こし、それを偶数メモリカードに割り当てた基本回路の対応する入力REQ PU0に送る。PU0 GRANT EV RAWは、図3、図4に示した本発明による調停装置と図5、図6のフローチャートによって与えられる。GRANTを有効にするため、PU0がメモリに指令CMDを送ることを要求すると、EVEN 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 SEARCH列でNO MATCHによって示される。従って、プロセッサのどれもサイクル4からの共通−BUSY118ラインを駆動せず、−BUSYがオープンドレーン駆動部によって駆動する。つまり、1個以上の活発な駆動部が負の極性を駆動する。プロセッサのどれもこの信号を駆動しないなら、これは要求を出しているプロセッサに他のプロセッサのどれも必要なデータを送っていないことを示す。このようにして、要求を出しているプロセッサPU0は制御ライン114を経て1サイクルの間に偶数メモリカードM0に信号ALLOW XFER DATA EVENを送る。メモリは、準備ができていれば、XFER DATA EVENを駆動し、プロセッサに制御ライン112を経て対応の信号を送信する。1サイクル後、この例4*16バイトでは多数のデータショットがメモリバス110を経て送信される。このデータ送信中、信号XFER DATA EVENは活性のままである。
【0057】別のプロセッサでのキャッシュ照合をもちいたラインフェッチオペレーションは図8に示す。この例は上記の図7の例と次の点で異なっている。照合プロセッサのキャッシュ制御論理はサイクル4から−BUSYライン(図1の制御ライン118)を起動し、そのプロセッサへの同報通信要求を活性化する。同報通信プロセッサは、PU RESPONSEによりその操作状態に依存する可変時間の後で応答することになる。これは要求された内部活動が行われたことを示す。この例では多重複写ビットMCがセットされ、図8のラインBROADCASTCMD内の信号SET MC BITによってに示される。続いて、−BUSYラインは、CACHE DIR SEARCH中に照合が生じた他のプロセッサによって消滅させられる。
【0058】要求プロセッサPU0はサイクル4で−BUSYライン118をサンプルとする。このラインは活性なので、その多重複写ビットMCをセットする。ハードウェアエラーの場合にキャッシュが部分的に更新するのを避けるために完全なラインがキャッシュ内にある時、有効なビットは最終サイクルでオンになる。これは信号SET VALID BITによって示される。
【0059】−BUSYがオフになるとすぐに信号ALLOW XFER DATA EVENが1サイクル用にセットされる。それゆえ、既に用意されたメモリからのデータ転送は遅れることなく、あるいは他のプロセッサ内のキャッシュ照合によってほんの少し遅れるだけである。
【0060】図8に示した例の2つの変更例は次のa)とb)である。
a) 他のプロセッサは照合を有し、多重複写ビットMCはその対応するキャッシュディレクトリで既にオン状態にある。こうして他のプロセッサはサイクル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 FETCH DUE TO STOREについては、INVALIDATE 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 EVENを起動し、次の指令に対する準備を示す。
【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 DATA EVENを伴っている。この例では他のプロセッサでキャッシュ照合はないと仮定するので、図7を適用する。もしキャッシュ照合があるならば、図8や図9に示したタイミングダイヤグラムを同じように適応する。しかし、初めの6メモリバスサイクルがどの場合でも起きる。記憶バッファの記憶データがフェッチオペレーションが終了する前にはメモリアレー内に書込まれないので、LATCH:EVEN BSMCARD BUSYによって示されるようにメモリカードはそれより長時間多忙となる。
【0065】図11には2つのインターリーブしたラインフェッチを示す。プロセッサPU0は要求REQUEST EVENを起し、同時にプロセッサPU1は要求REQUEST ODDを起す。プロセッサPU0が初めに効果のある許可GRANTを得るとし、サイクル3でバスに選択サイクルSELECTを入れ、図1にしめした制御ライン111、118にそれぞれ対応する2つのサイクル用に−BUSYを駆動する。このようにしてプロセッサPU0は、偶数メモリM0からの対応するライン1をフェッチするためにメモリバス110にアドレスADDRを伴った指令CMDを入れる。図11のCACHE DIR SEARCHで示されるようにプロセッサPU1のキャッシュディレクトリで照合無しNO MATCHが生じる。
【0066】プロセッサPU1用の効果のある許可GRANTは、−BUSYをオフにした後にサイクル4で活性となる。プロセッサPU1は選択サイクルSELECTを偶数オペレーションの指令サイクルとデータサイクルの間のスペースに置く。このスペースはサイクル3の終わりからサイクル10の初めまで広がり、偶数メモリバンクM0の内部配列にアクセスするため、またアドレスADDRによって特定された必要なデータをその内部バッファに入れるために必要な時間によるものである。プロセッサPU1の要求REQUEST ODDが遅れて来ると、サイクル9で最も遅い可能性がある有効な許可GRANTが発生する。その時から、図1に示した制御ライン112に対応するXFER DATA EVENによって抑制される。どのプロセッサでも照合無しNO MATCHとされており、図9に示した例の場合のようにキャストアウトが起こらないのでALLOW XFER DATA EVENおよびALLOW XFER DATA ODDはそれぞれ最も早い可能性があるサイクル、すなわちサイクル5および8で活性となる。信号ALLOW XFER DATA EVENおよびALLOW XFER DATA ODDは制御ライン114および115を経てそれぞれ送られる。偶数BSMカードM0は、通常の初期アクセス時間の後にバス110にデータDATA EV.を供給する。奇数BSMカードM1は、図11で示すようにサイクル14で最後のデータショット4の送信の後の最後のデータサイクルを内部メモリ信号が示すまで待つ。つづいて奇数BSMカードは図1に示した制御ライン113に対応するXFER DATA ODDをオンにする。このDATAODDのデータ移送は1サイクル後のサイクル16で開始する。
【0067】このタイミングは、2つのラインフェッチオペレーションがたった19サイクルで行われることを示している。プロセッサのバスへのアクセスのインターリーブがなしでは、同じオペレーションは2*14サイクルをとる。このようにバス処理能力はかなり増大する。
【0068】バスインターリーブの他の価値のある効果は図10に示されている。すなわち、奇数要求REQUEST ODDによる有効な許可GRANTはサイクル8で可能であり、奇数ラインフェッチオペレーションが起され、メモリの内部アクセス時間によりサイクル21で終結する。信号LATCH: EVEN BSMCARD 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 制御信号ライン
【0001】
【産業上の利用分野】本発明は2個以上のプロセッサ、記憶手段、そのプロセッサと記憶手段の間で情報をやりとりするためのバス手段から構成する多重プロセッサシステムに関する。さらに、本発明は多重プロセッサシステム内の共通バス手段へのアクセスを許可する手段に関する。
【0002】
【従来の技術】1本以上のバスによって相互接続されている複数のエレメントから構成した分散オペレーションシステムにおいて、2個以上のエレメントがこのバスを同時に使用しようとする時、どのエレメントが最初にバスを使用するか決定する調停方法が必要となる。従来技術において、プロセッサとして機能するエレメント、大容量メモリ、入出力制御装置等から成るこのシステムを相互接続するための種々の方法や装置が知られている。
【0003】従来技術のバス調停方法の一例として、同時に1本のバスを使用しようとする全てのエレメントと通信する中央調停装置がある。この中央バス調停装置は最優先権を有するエレメントを決定し、この最優先権を有するエレメントがバスを使用することを許可する指令信号を送る。このタイプのシステムの重大な欠点は、アクセスの要求を出しているエレメントから中央バス調停装置への送信、あるいはその逆の送信が時間をかなり必要とし、システム全体のオペレーション速度を低下させる原因となっていることである。
【0004】バス調停方法の他の従来例は、環状連鎖(デイジー・チェイン)と称されるものがある。この方法では、優先順位にしたがってエレメントからエレメントへバス有効信号が送られる。バスにアクセス希望のエレメントはその信号を捕獲し、それによってバスにアクセスできる。これも比較的遅い調停方法である。
【0005】バス調停方法の3番目の従来例は、主データバスから分離した信号ラインのパルス列として、各装置にその優先コードを同時に送るというものである。その信号ラインの番号は、使用するナンバリングシステムとコーディングシステムによって決定する。パルスコーディングを使用するなら、そのパルスは各装置のカウンタに送られる。装置がその優先コードに等しいカウントを得ると、一つの調停が成立し、主データラインへのアクセスが得られる。装置カウンタで得た優先番号がその装置の優先番号と一致しない時は、その装置は調停オペレーションから撤退する。しかし、このバス調停方法は別の信号ラインやインターフェース回路が必要となる。すなわち、選択したナンバリングシステムとコーディング技術によって決められた信号ラインやインターフェース回路の番号で装置の優先コードを送ったり、検索するためのものである。この従来例は米国特許出願第4,402,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,735,360号および第3,771,137号等に記載がある。ストア−インキャッシュのディレクトリは米国特許出願第4,394,731号に詳細な記載があり、ストア−インキャッシュの各ラインが排他的読取り専用フラッグビットによって共有可能に制御された多重プロセッサを持っている。ストア−スルーとストア−インキャッシュの主な違いは、ストア−インキャッシュ内の全ての記憶動作はキャッシュ自体に対して行われるので、記憶したラインがストア−インキャッシュ内になければキャッシュミスを発生する。通常、ラインがキャッシュから取り除かれる時のみキャッシュライン変更情報が主記憶装置に更新される。結果として、ストア−インキャッシュ構造は、首尾一貫した制御をより複雑にし、キャストアウトというペナルティを生じる代わりに、主記憶装置バンド幅の減少という要求を達成する。ここで、キャストアウトは1台のプロセッサからのデータアクセスが別のプロセッサのキャッシュ内で修正されたラインを見つけた場合に生じる。
【0018】種々のキャッシュの首尾一貫した制御メカニズムがある。典型的な例は米国特許出願第4,775,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 Consistency in a Multiprocessor System with Store−In Cache Concept」(Microprocessing and Microprogramming 32(1991)215−220,North−Holland)という題の論文によって知られている。この論文は、各プロセッサに備えつけたキャッシュによって多重プロセッサシステムにおけるデータ整合性の維持問題を記したものである。共通のシステムリソースを使用していかなる環境下でもデータの完全性を得、キャッシュ相互問合せ用の付加を低く維持するために特別な注意が払われる。加えて、ストア−インキャッシュのコンセプトを使用してメモリアクセスへの待ちサイクルを減少させる。上記の従来技術によるキャッシュのコンセプトのどれかを本発明による多重プロセッサシステムで用いられるとしても、上記論文のG.Doettlingによるコンセプトを採用することは特に価値がある。
【0022】
【実施例】以下、添付図面を参照にして本発明の実施例を説明する。図1は本発明による望ましい実施例の構造を示す。すなわち、直接記憶アクセス(DMA)ユニットと同じように複数のプロセッサPU0、PU1、PU2、・・・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によってバス関与者に相互接続される。さらに、メモリバンクは制御信号ライン111、112、113、114、115によってバス関与者に相互接続される。この制御信号はバスプロトコルを確立するために必要である。調停手段を伴ったバスプロトコルはバス関与者のバスアクセスを制御するためのものである。制御信号ライン116、117は、調停装置間でバス関与者のバスアクセス要求を連絡するための別のバスである。制御信号ライン116はメモリバンクM0へのアクセス要求を送信し、制御信号ライン117はメモリバンクM1へのアクセス要求を送信する。さらに、バス関与者の調停装置は別の制御信号118によって相互接続される。メモリバス110は制御信号ライン111、114、115、116、117、118と同様に双方向であり、制御信号112と113は図1の矢印で示されるように一方向である。
【0025】図2は、メモリアドレスが2個のバンクM0、M1にどのように分散されるか示したものである。これは図2に示すようにM0、M1をボックス形状として表わす。この箱内の各列は、ボックスM0の最下段の最も低いアドレスでスタートする記憶ライン1を示す。この例では、ラインサイズが64バイトと仮定する。第1ラインL1はメモリバンクM0のアドレス0でスタートし、一方第2ラインはメモリバンクM1の16進表記法でアドレス64または40によってスタートする。図2R>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を高位にする。信号ラインREQ PU0乃至REQ PU3は対応する回路LT PU0乃至LT PU3に接続されている。この回路は出力q0乃至q3を有する。また、この出力は回路LT PU0乃至LT PU3への入力として作用する。
【0028】回路LT PU0乃至LT PU3はプロセッサPU0乃至PU3の要求を記憶したりラッチする機能を有する。要求が記憶されたとき、対応する出力qが表示される。supp入力信号が流動状態にあれば、対応するプロセッサの要求は対応する回路に記憶されない。しかし、en入力信号が活動状態であれば、他のsuppの状態に関わりなく回路は対応するプロセッサの要求を記憶することが可能となる。図3に示された最後の回路LT PU3はこうした別の入力を持たない。このケースにおけるプロセッサのあらかじめ決めた順位付けがPU0、PU1、PU2、PU3で、PU0が最も高い優先順位でPU3が最も低い順位であるという理由による。したがって最も低い順位のPU3の要求は、他のプロセッサの要求に関係なく対応する回路LT PU3に記憶あるいはラッチされる。各信号q0乃至q3は、対応する回路LT PU0乃至LT PU3に要求が記憶されたか否かを示すものである。信号q0乃至q3は信号PUμ GRANTEV RAWを発生させる回路31に送られる。信号EVEN BSM CARD BUSYとBSM CMDはAND/INVERTゲート32に送られ、信号−NO REQUEST ODDと−LAST BUS COMMANDODDはAND/INVERTゲート33に送られる。AND/INVERTゲート32、33の出力はANDゲート34に送られる。ANDゲート34の出力も回路31に送られる。回路31の出力、すなわち信号PUμ GRANT EV RAWは信号BUS BUSYと−XFER DATA ODDと同様にANDゲート35に送られる。ANDゲート36の入力は信号−XFER DATA EV、PUμ GRANT ODD RAW、−BUS BUSYである。ANDゲート35、36の出力はORゲート37に送られる。ORゲート37の出力は信号GRANTである。この信号GRANTは、あるプロセッサについてバスへのアクセスを許可するものである。
【0029】図4では、本発明による調停回路の望ましい実施例を詳細に明示したものである。主スレーブラッチLT PU0’、LT PU2’、LT PU3’は、それぞれ対応するプロセッサPU0、PU1、PU2、PU3の待ち行列に格納されている要求を記憶する。主スレーブラッチに記憶された負の信号は待ち行列に格納された要求である。すべてのラッチ出力が正、すなわち、論理1のときには待ち行列が空である。このラッチへの逆入力は図3の回路31に送られる信号q0、q1、q2、q3である。
【0030】図4に示した調停回路の望ましい実施例は図3に示したものとは、図3の回路LT PU0乃至LT PU3の入力suppとenに関して異なっている。図4に示した実施例では、信号 −supp(q1)、−supp(q2)、−supp(q3)は、それぞれラッチLT PU1’乃至LT PU3’の入力および出力のOR演算の結果発生する。AND/INVERTゲートに送るこれらの信号は、図3の入力suppに送る信号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がすべての論理を介して−supp(q3)として流れ、信号q0乃至q3に影響を与える。
【0032】ラッチLT PU0’およびLT PU1’の出力は信号−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でプロセッサPUμのアクセス要求を示すと、偶数メモリバンクM0への高順位プロセッサPUμ+xの要求が対応の回路LT PUμ+xにすでに記憶されているかどうか次のように判断される。プロセッサの順位はあらかじめ定められ、プロセッサのアドレスによって特定される。ここでは、最低順位のプロセッサアドレスは最高順位に対応する。しかし、プロセッサの順位をつける他の方法も可能である。
【0035】ステップ2の判断は図3に示された信号q0乃至q3に基づくもので、この信号は回路LT PU0乃至LT PU3の1個に要求が記憶されているか否かを示すものである。対応の回路LT PUμ+xにラッチされた偶数メモリバンクM0へのアクセス要求を有する、いずれかの高順位のプロセッサがあるとステップ2で判断されると、ステップ3で対応の回路LT PUμにプロセッサPUμの要求を記憶させることが可能となる。例えば、プロセッサPU1が偶数メモリバンクM0へのアクセス要求を起こすと、これは図3に示した信号REQ PU1によって示される。高順位プロセッサPU0による要求が対応の回路LT PU0にすでに記憶されていることを信号q0が示すと、プロセッサPU1による要求は回路LT PU1に記憶される。信号q0は信号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から図3R>3に示した調停回路によって信号GRANTがどのように発生するのか詳細に説明する。以下において、図3に示す調停装置がプロセッサPU0乃至PU3の1台に所属すると仮定する。
【0040】ステップ3の実施後、ステップ6において、高い順位のプロセッサPUμ+xの要求が対応する回路LT PUμ−xに記憶されたことを信号q0乃至q3のいずれかが示しているか否か判断する。示すと判断したなら、要求を出しているプロセッサPUμはバスGRANTを待たなくてはならず、ステップ6は否という判断を出すまで繰り返し実施される。
【0041】各バス関与者は信号EVEN BSM CARD BUSYを発生するラッチと信号ODD BSM CARD BUSYを発生するラッチを有する。これらのラッチは図示されていないが、メモリバンクが2個以上のケースでは、各メモリバンク用にこの種のラッチを設ける。信号EVEN BSM CARD BUSYは偶数メモリバンクがそれに送られた前の指令によって今だに多忙状態であり、新たな指令をまだ受け取ることができていないことを示す。このようにして、信号EVEN BSM CARD BUSYは偶数メモリバンクが指令過剰にならないように保護する。
【0042】要求を出したプロセッサPUμが双方向バス110に指令を出すことを望んでいる事を信号BSM CMDが示す。メモリを含まないプロセッサの相互問合せにもメモリバスが使用されるので、この指令はメモリオペレーションを含む。
【0043】各バス関与者は図示されない他のラッチを有する。このラッチは前のバス指令が奇数メモリバンクM1を選択したなら督促を発し、−LAST BUS CMD ODDが活性となる。このラッチの逆出力は−LAST BUS CMDEVENと名付けられ、この信号は奇数の要求用の調停装置で使用される。
【0044】奇数メモリバンクM1用の調停装置が回路LT PU0乃至LT PU3のどれかに記憶された要求を持たないとき、書込み過剰信号−NO REQUESTODDあるいは−NO REQUEST EVENのそれぞれが、アクセス許可を得るために有効である。
【0045】ステップ7では、要求を出しているプロセッサ、又は他のバス関与者が発した最後のバスコマンドが偶数メモリバンクM0を選択するものであるか否かを判断する。発したと判断したなら、ステップ8の実行に移る。ステップ8では、偶数メモリバンクM0に割り当てられていない調停装置において要求が記憶されているか否かを判断する。記憶されていると判断されたなら、制御はステップ7に戻り、要求PUμは許可が出るまで待たねばならない。上記ステップ7および8は図3に示した信号−LAST BUS CMD ODDおよび−NO REQUEST ODDにそれぞれ対応する。AND/INVERTゲート33は、ステップ7あるいはステップ8の条件が満たされる時のみ論理1となる。
【0046】続いて、ステップ9では偶数メモリバンクM0がまだ多忙であるか否かを判断する。多忙であると判断されると、ステップ10において要求を出しているプロセッサPUμの指令がメモリへのアクセスを含んだ指令であるか否かを判断する。含んでいると判断されると、制御はステップ9へ戻され、プロセッサPUμは許可が出るまで待たねばならない。ステップ9の条件あるいはステップ10の条件が満たされていないなら、信号PUμ GRANT EV RAWが回路31によって発生する。上記ステップ9、ステップ10は、入力EVEN BSMCARD BUSYおよびBSM CMDを有するAND/INVERTゲート32によって実施される。AND/INVERTゲート32および33の両出力はANDゲート34に送られ、信号PUμ GRANT EV RAWが回路31によって発生させられるなら、ゲート34の出力は論理的に高くなる。これはステップ11に対応する。回路31は、ANDゲート34の出力と信号q0乃至q3に基づいてこの信号を発生させる。回路31によって発生した信号PUμGRANT RAWは信号−XFER DATA ODDおよび−BUS BUSYと同様にANDゲート35に送られる。信号XFER DATA ODDが活性なら、奇数メモリM1に出入りのデータが現在バス110で送られていることを示す。この信号は図1の制御ライン113を経て送られる。偶数データXFER DATA EVENと等価信号が制御ラインを経て奇数バンクに係る調停装置へ送られる。信号−BUS BUSYが後に詳細に説明するバスプロトコルに基づいてバス関与者のいずれかによって起こされる。この信号も、信号PUμGRANT ODD RAWおよびXFER DATA EVと同様にANDゲート36に送られる。信号PUμ GRANT EV RAWの場合と同様のルールに従って信号PUμ GRANT ODD RAWが発生する。
【0047】このようにして、信号PUμ GRANT EV RAWが高く、バスが多忙でなく−BUS BUSY、メモリバス110を経て奇数メモリバンクM1へ出入りするデータがない−XFER DATA ODD場合に、信号GRANTがステップ13で高くなり、奇数メモリバンクM0へのアクセス要求により要求を出しているプロセッサPUμにバスへのアクセスを許可する。ステップ12では奇数メモリバンクM1へ出入りするデータがあるか否かあるいはバスが多忙か否かを判断する。ある、あるいは多忙という判断なら、要求を出しているプロセッサはGRANTを待ち、ステップ12は繰り返し実行される。
【0048】回路31への追加入力を行うことは特に効果的である。この追加入力は、調停装置および回路31が属するプロセッサPUμを識別するために回路31に情報を与えることになる。これは、プロセッサPU0乃至PU3に割り当てられた全ての調停装置に同じハードウェア配列を採用することが可能となる。信号PUμGRANT EV RAWを発生するに必要なハードウェア配列は、対応する入力がある時に奇数メモリバンクM1用の対応信号PUμ GRANT ODDRAWを発生させるためにも使用される。信号PUμ GRANT ODDRAWを発生させるため、奇数要求が回路LT PU0乃至LT PU3の入力REQ PU0乃至REQ PU3に加えられる。さらに信号EVEN BSMCARD BUSY,−NO REQUEST ODD,−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 RAW信号の各々は、ORゲート37によって出力される許可信号GRANTを発生させるために、ANDゲート35または36の一方に対応するANDゲートに入力される。メモリバンクの数nが2を上回るなら、追加ANDゲートを各追加バンク用に図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に現在データが送信されているか否かを決定するために使われる。一般的ケースで、偶数メモリカードM0の信号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.Doettlingによる上記引用論文に詳細に説明されており、異なったレベルのキャッシュのコンセプトは省略されるか、キャッシュ間のデータの一貫性を維持するための別のコンセプトが適用されるが、本発明の望ましい実施例で実現される。
【0055】次に、異なったバスのタイミングダイヤグラムにおけるオペレーションを例として詳細に説明する。図7はプロセッサPU0の偶数メモリカードM0からの偶数ラインに対するラインフェッチオペレーションを示す。図7の第1列はこのオペレーションを実施するに必要なマシンサイクル1乃至14を示す。初めに、要求プロセッサPU0はその要求ラインREQUEST EVENを起こし、それを偶数メモリカードに割り当てた基本回路の対応する入力REQ PU0に送る。PU0 GRANT EV RAWは、図3、図4に示した本発明による調停装置と図5、図6のフローチャートによって与えられる。GRANTを有効にするため、PU0がメモリに指令CMDを送ることを要求すると、EVEN 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 SEARCH列でNO MATCHによって示される。従って、プロセッサのどれもサイクル4からの共通−BUSY118ラインを駆動せず、−BUSYがオープンドレーン駆動部によって駆動する。つまり、1個以上の活発な駆動部が負の極性を駆動する。プロセッサのどれもこの信号を駆動しないなら、これは要求を出しているプロセッサに他のプロセッサのどれも必要なデータを送っていないことを示す。このようにして、要求を出しているプロセッサPU0は制御ライン114を経て1サイクルの間に偶数メモリカードM0に信号ALLOW XFER DATA EVENを送る。メモリは、準備ができていれば、XFER DATA EVENを駆動し、プロセッサに制御ライン112を経て対応の信号を送信する。1サイクル後、この例4*16バイトでは多数のデータショットがメモリバス110を経て送信される。このデータ送信中、信号XFER DATA EVENは活性のままである。
【0057】別のプロセッサでのキャッシュ照合をもちいたラインフェッチオペレーションは図8に示す。この例は上記の図7の例と次の点で異なっている。照合プロセッサのキャッシュ制御論理はサイクル4から−BUSYライン(図1の制御ライン118)を起動し、そのプロセッサへの同報通信要求を活性化する。同報通信プロセッサは、PU RESPONSEによりその操作状態に依存する可変時間の後で応答することになる。これは要求された内部活動が行われたことを示す。この例では多重複写ビットMCがセットされ、図8のラインBROADCASTCMD内の信号SET MC BITによってに示される。続いて、−BUSYラインは、CACHE DIR SEARCH中に照合が生じた他のプロセッサによって消滅させられる。
【0058】要求プロセッサPU0はサイクル4で−BUSYライン118をサンプルとする。このラインは活性なので、その多重複写ビットMCをセットする。ハードウェアエラーの場合にキャッシュが部分的に更新するのを避けるために完全なラインがキャッシュ内にある時、有効なビットは最終サイクルでオンになる。これは信号SET VALID BITによって示される。
【0059】−BUSYがオフになるとすぐに信号ALLOW XFER DATA EVENが1サイクル用にセットされる。それゆえ、既に用意されたメモリからのデータ転送は遅れることなく、あるいは他のプロセッサ内のキャッシュ照合によってほんの少し遅れるだけである。
【0060】図8に示した例の2つの変更例は次のa)とb)である。
a) 他のプロセッサは照合を有し、多重複写ビットMCはその対応するキャッシュディレクトリで既にオン状態にある。こうして他のプロセッサはサイクル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 FETCH DUE TO STOREについては、INVALIDATE 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 EVENを起動し、次の指令に対する準備を示す。
【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 DATA EVENを伴っている。この例では他のプロセッサでキャッシュ照合はないと仮定するので、図7を適用する。もしキャッシュ照合があるならば、図8や図9に示したタイミングダイヤグラムを同じように適応する。しかし、初めの6メモリバスサイクルがどの場合でも起きる。記憶バッファの記憶データがフェッチオペレーションが終了する前にはメモリアレー内に書込まれないので、LATCH:EVEN BSMCARD BUSYによって示されるようにメモリカードはそれより長時間多忙となる。
【0065】図11には2つのインターリーブしたラインフェッチを示す。プロセッサPU0は要求REQUEST EVENを起し、同時にプロセッサPU1は要求REQUEST ODDを起す。プロセッサPU0が初めに効果のある許可GRANTを得るとし、サイクル3でバスに選択サイクルSELECTを入れ、図1にしめした制御ライン111、118にそれぞれ対応する2つのサイクル用に−BUSYを駆動する。このようにしてプロセッサPU0は、偶数メモリM0からの対応するライン1をフェッチするためにメモリバス110にアドレスADDRを伴った指令CMDを入れる。図11のCACHE DIR SEARCHで示されるようにプロセッサPU1のキャッシュディレクトリで照合無しNO MATCHが生じる。
【0066】プロセッサPU1用の効果のある許可GRANTは、−BUSYをオフにした後にサイクル4で活性となる。プロセッサPU1は選択サイクルSELECTを偶数オペレーションの指令サイクルとデータサイクルの間のスペースに置く。このスペースはサイクル3の終わりからサイクル10の初めまで広がり、偶数メモリバンクM0の内部配列にアクセスするため、またアドレスADDRによって特定された必要なデータをその内部バッファに入れるために必要な時間によるものである。プロセッサPU1の要求REQUEST ODDが遅れて来ると、サイクル9で最も遅い可能性がある有効な許可GRANTが発生する。その時から、図1に示した制御ライン112に対応するXFER DATA EVENによって抑制される。どのプロセッサでも照合無しNO MATCHとされており、図9に示した例の場合のようにキャストアウトが起こらないのでALLOW XFER DATA EVENおよびALLOW XFER DATA ODDはそれぞれ最も早い可能性があるサイクル、すなわちサイクル5および8で活性となる。信号ALLOW XFER DATA EVENおよびALLOW XFER DATA ODDは制御ライン114および115を経てそれぞれ送られる。偶数BSMカードM0は、通常の初期アクセス時間の後にバス110にデータDATA EV.を供給する。奇数BSMカードM1は、図11で示すようにサイクル14で最後のデータショット4の送信の後の最後のデータサイクルを内部メモリ信号が示すまで待つ。つづいて奇数BSMカードは図1に示した制御ライン113に対応するXFER DATA ODDをオンにする。このDATAODDのデータ移送は1サイクル後のサイクル16で開始する。
【0067】このタイミングは、2つのラインフェッチオペレーションがたった19サイクルで行われることを示している。プロセッサのバスへのアクセスのインターリーブがなしでは、同じオペレーションは2*14サイクルをとる。このようにバス処理能力はかなり増大する。
【0068】バスインターリーブの他の価値のある効果は図10に示されている。すなわち、奇数要求REQUEST ODDによる有効な許可GRANTはサイクル8で可能であり、奇数ラインフェッチオペレーションが起され、メモリの内部アクセス時間によりサイクル21で終結する。信号LATCH: EVEN BSMCARD 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 制御信号ライン
【特許請求の範囲】
【請求項1】二以上のプロセッサと、二以上のバンクに論理的に分割された記憶手段と、前記プロセッサと前記記憶手段とを接続し情報転送するためのバス手段と、前記バス手段に対してアクセスを許可する調停手段とを有するマルチプロセッサシステムであって、前記調停手段は、第一の前記プロセッサが発する第一の前記バンクに対するアクセス要求を許可し、前記第一のバンクがビジー状態にある間に、第二の前記プロセッサが発する第二の前記バンクに対するアクセス要求を許可することを特徴とするもの。
【請求項2】前記プロセッサは予め定められた優先順位を有しており、前記調停手段は各々の前記バンクごとにそれに対してなされたアクセス要求をキューに保持する手段を包含し、前記アクセス要求の前記キューへの保持は、アクセス要求をなしたプロセッサよりも、a)優先順位の高いプロセッサが発した要求が対応する前記キューにすでに保持されていること、または、b)優先順位の高いプロセッサおよび優先順位の低いプロセッサが発した要求が対応する前記キューに保持されていないこと、のいずれかを具備することを条件として行われる、請求項1のシステム。
【請求項3】前記調停手段が分散して設けられており、前記プロセッサの各々が前記バンクの各々に対して割り当てられた前記調停手段を有していることを特徴とした請求項1または請求項2のシステム。
【請求項4】前記マルチプロセッサシステムが最高の前記優先順位に割り当てられたDMAユニットをさらに含み、前記DMAによる前記バス手段へのアクセス要求が前記プロセッサによるアクセス要求に優先することを特徴とした請求項1、2または3のシステム。
【請求項5】二以上のプロセッサと、二以上のバンクに論理的に分割された記憶手段と、前記プロセッサと前記記憶手段とを接続し情報転送するためのバス手段と、前記バス手段に対してアクセスを許可する調停手段とを有するマルチプロセッサシステムにおいて、一のプロセッサが前記バス手段に対してアクセス許可を得る方法であって、前記一のプロセッサの優先順位を特定するステップと、前記一のプロセッサの優先順位よりも、a)優先順位の高いプロセッサに係わる要求が対応する前記キューにすでに保持されていること、または、b)優先順位の高いプロセッサおよび優先順位の低いプロセッサに係わる要求が対応する前記キューに保持されていないこと、を具備していることを条件として、前記一のプロセッサによる第一の前記バンクに対するアクセス要求を第一のキューに保持するステップと、前記第一のキューに前記第一のプロセッサよりも優先順位の高いプロセッサによる前記アクセス要求が保持されていない時は前記アクセス要求に基づいて前記バス手段に対するアクセスを許可するステップと、を含む方法。
【請求項6】c)前記バス手段に対して許可された最後のアクセスは第一の前記バンク以外の前記バンクに対するものであったこと、または、d)前記c)を満たさない場合であって、他の前記キューに前記アクセス要求が保持されていないこと、のいずれかを具備することを条件として前記アクセスを許可するステップを実行する、請求項5の方法。
【請求項1】二以上のプロセッサと、二以上のバンクに論理的に分割された記憶手段と、前記プロセッサと前記記憶手段とを接続し情報転送するためのバス手段と、前記バス手段に対してアクセスを許可する調停手段とを有するマルチプロセッサシステムであって、前記調停手段は、第一の前記プロセッサが発する第一の前記バンクに対するアクセス要求を許可し、前記第一のバンクがビジー状態にある間に、第二の前記プロセッサが発する第二の前記バンクに対するアクセス要求を許可することを特徴とするもの。
【請求項2】前記プロセッサは予め定められた優先順位を有しており、前記調停手段は各々の前記バンクごとにそれに対してなされたアクセス要求をキューに保持する手段を包含し、前記アクセス要求の前記キューへの保持は、アクセス要求をなしたプロセッサよりも、a)優先順位の高いプロセッサが発した要求が対応する前記キューにすでに保持されていること、または、b)優先順位の高いプロセッサおよび優先順位の低いプロセッサが発した要求が対応する前記キューに保持されていないこと、のいずれかを具備することを条件として行われる、請求項1のシステム。
【請求項3】前記調停手段が分散して設けられており、前記プロセッサの各々が前記バンクの各々に対して割り当てられた前記調停手段を有していることを特徴とした請求項1または請求項2のシステム。
【請求項4】前記マルチプロセッサシステムが最高の前記優先順位に割り当てられたDMAユニットをさらに含み、前記DMAによる前記バス手段へのアクセス要求が前記プロセッサによるアクセス要求に優先することを特徴とした請求項1、2または3のシステム。
【請求項5】二以上のプロセッサと、二以上のバンクに論理的に分割された記憶手段と、前記プロセッサと前記記憶手段とを接続し情報転送するためのバス手段と、前記バス手段に対してアクセスを許可する調停手段とを有するマルチプロセッサシステムにおいて、一のプロセッサが前記バス手段に対してアクセス許可を得る方法であって、前記一のプロセッサの優先順位を特定するステップと、前記一のプロセッサの優先順位よりも、a)優先順位の高いプロセッサに係わる要求が対応する前記キューにすでに保持されていること、または、b)優先順位の高いプロセッサおよび優先順位の低いプロセッサに係わる要求が対応する前記キューに保持されていないこと、を具備していることを条件として、前記一のプロセッサによる第一の前記バンクに対するアクセス要求を第一のキューに保持するステップと、前記第一のキューに前記第一のプロセッサよりも優先順位の高いプロセッサによる前記アクセス要求が保持されていない時は前記アクセス要求に基づいて前記バス手段に対するアクセスを許可するステップと、を含む方法。
【請求項6】c)前記バス手段に対して許可された最後のアクセスは第一の前記バンク以外の前記バンクに対するものであったこと、または、d)前記c)を満たさない場合であって、他の前記キューに前記アクセス要求が保持されていないこと、のいずれかを具備することを条件として前記アクセスを許可するステップを実行する、請求項5の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図12】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図12】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開平6−214960
【公開日】平成6年(1994)8月5日
【国際特許分類】
【出願番号】特願平5−122973
【出願日】平成5年(1993)5月25日
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレイション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【公開日】平成6年(1994)8月5日
【国際特許分類】
【出願日】平成5年(1993)5月25日
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレイション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
[ Back to top ]