(57)【特許請求の範囲】
【請求項１】
少なくとも１つ以上のプロセッサを有するプロセッサユニット、メインメモリの一部を有するメモリユニット、入出力装置を接続する入出力ユニットおよびシステム接続部からなるマルチプロセッサシステムであり、該システム接続部はポート番号によって識別される複数のポートを持ち、該１つのポートには前記プロセッサユニット、メモリユニット、入出力ユニットのいずれか１つを接続することが可能であり、前記プロセッサユニット、メモリユニット、入出力ユニットを少なくともそれぞれ１つ以上該ポートに接続することによってシステムを構成するマルチプロセッサシステムであり、該システム接続部は任意のポート間で１対１にデータを転送する（以下ユニキャストと呼ぶ）機構を有し、さらに、１つのポートから全てのポートに対してデータを転送する（以下ブロードキャストと呼ぶ）機構を有し、転送先ポートが異なる複数のユニキャストを同時に実行する機構を有するマルチプロセッサシステムにおいて、該システム接続部の各ポートに接続されているユニットを識別する第１の手段を有し、該第１の手段によって得られた情報とデータ転送の種類あるいは／および転送されるデータのアドレスに基づいて該ユニキャスト機構でデータ転送をするか該ブロードキャスト機構でデータ転送をするかを決定する第２の手段および該ユニキャスト機構使用時のデータの転送先ポートを決定するための情報を保持する第３の手段を有することを特徴とするマルチプロセッサシステム。
【請求項２】
前記第１項のマルチプロセッサシステムであり、さらに、該システム接続部は任意のポート間から複数のポートに対し１対多にデータを転送する（以下マルチキャストと呼ぶ）機構を有し、転送先ポートが異なる複数のユニキャスト、マルチキャストを同時に実行する機構を有するマルチプロセッサシステムにおいて、さらに、該システム接続部の各ポートに接続されているユニットを識別する該第１の手段によって得られた情報とデータ転送の種別あるいは／およびデータ転送先アドレスに基づいて該マルチキャスト機構使用時のデータの転送先ポートを決定するための情報を保持する第４の手段を有することを特徴とするマルチプロセッサシステム。
【請求項３】
前記第１の手段が各ユニットに属している前記第２項のマルチプロセッサシステムにおいて、前記ユニキャスト機構を用いて該第１の手段を読み出し、接続されているユニットを識別し、次に、該識別情報に基づいて、該ユニキャスト機構を用いて前記第３および第４の手段を設定し、該第３および第４の手段の設定後、前記ブロードキャスト機構あるいは前記マルチキャスト機構を用いてデータ転送を開始することを特徴とするデータ転送方法。
【請求項４】
前記第１の手段が各ユニットに属している前記第２項のマルチプロセッサシステムであって、各ユニットがそれぞれ、ブロードキャストされた読み出し／書き込み要求のアドレスが、そのユニットに属する資源に割り当てられたものか否かを判別し、前者の場合要求された読み出し／書き込みを行ない、後者の場合は読み出し／書き込み要求を無視する機構を有するマルチプロセッサシステムにおいて、まず、前記ブロードキャスト機構を用いて該第１の手段を読み出し、接続されているユニットを識別し、次に、該識別情報に基づいて、該ブロードキャスト機構を用いて前記第３および第４の手段を設定し、該第３および第４の手段の設定後、前記ユニキャスト機構あるいは前記マルチキャスト機構を用いてデータ転送を開始することを特徴とするデータ転送方法。
【請求項５】
前記第２項のマルチプロセッサシステムにおいて、前記第４の手段を各ユニットに持つことを特徴とするマルチプロセッサシステム。
【請求項６】
前記第２項のマルチプロセッサシステムにおいて、前記第４の手段を該システム接続部に持つことを特徴とするマルチプロセッサシステム。
【請求項７】
前記第２項のマルチプロセッサシステムであり、前記第４の手段が保持する1ビットの情報が1つのポートに対応しており、該第４の手段の保持する情報によって指定されたポート対しデータ転送を行なうマルチキャスト機構を有することを特徴とするマルチプロセッサシステム。
【請求項８】
前記第２項のマルチプロセッサシステムであり、前記第４の手段が保持する1ビットの情報が複数のポートをまとめた1つのグループに対応しており、該第４の手段の保持する情報によって指定された該グループに属する全てのポート対しデータ転送を行なうマルチキャスト機構を有することを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高性能を実現するため複数のプロセッサを用いて構成するマルチプロセッサシステムに関連する。
【０００２】
【従来の技術】
複数のプロセッサユニット、メモリユニット、入出力ユニットを単一のバスを用いて結合しメモリ共有型マルチプロセッサシステムを実現する方法は良く知られている。
【０００３】
しかし、単一のバスを用いて結合する場合、接続されたユニット間でデータを転送するパスが１つしか存在しないため、プロセッサ台数を増やしてシステム性能を向上させようとするとバスがボトルネックとなる。
【０００４】
これを解決するためアドレスの転送にはバスを用い、データの転送にはクロスバスイッチを用いる方法が、ニコルソンによって１９９５年のＣＯＭＰＣＯＭ９５プロシーディングの１０２−１０９ページ「ＲＩＳＣシステム／６０００ＳＭＰシステム」（Ｊａｍｅｓ  Ｏ．Ｎｉｃｈｏｌｓｏｎ， ”Ｔｈｅ  ＲＩＳＣ  Ｓｙｓｔｅｍ／６０００  ＳＭＰ  Ｓｙｓｔｅｍ，” ＣＯＭＰＣＯＮ９５   Ｐｒｏｃｅｅｄｉｎｇｓ，Ｍａｒｃｈ １９９５， ｐｐ．１０２−１０９）に紹介されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の従来方法もスループット上のバスネックは解消されるが、高い周波数では信号を伝える上での電気的な制約によりプロセッサ台数をあまり多く増やすことができない。
【０００６】
これを解決するためには、アドレスもクロスバスイッチを通し、各ユニットとクロスバスイッチを１対１で接続することによって解決可能である。
【０００７】
このとき、バス接続で動作しているソフトウエアを正しく動作させるためには、クロスバスイッチによる接続でもキャッシュメモリとメインメモリのデータコヒーレンシを維持する必要がある。さらに、バス接続を前提に作られているプロセッサをクロスバスイッチを介して接続するためには、バス方式でデータコヒーレンシを維持する方法として一般的なアドレススヌープ方式をクロスバスイッチ上でも実現する必要が生じる。
【０００８】
このアドレススヌープはキャッシュメモリとメインメモリのデータコヒーレンシを維持するための方法であり、転送対象となるデータを持たないメモリユニットやキャッシュメモリを持たない入出力ユニットに対しアドレスを転送する必要はない。このため、データコヒーレンシを維持するために必要なアドレスの転送は、アドレススヌープに参加する必要のあるユニットに対してだけ行なわれれば良く、１対多のデータ転送であるマルチキャストを行なうための手段をシステム接続部に設けることで効率的なアドレススヌープ方式を実現することができる。本発明の第１の課題は、バスで接続されることを前提に作られているプロセッサをクロスバスイッチを介して接続することによってバスネックを解消し、接続可能なプロセッサ台数を増加させることによりマルチプロセッサシステムとしての性能を向上させることにある。
【０００９】
本発明の第２の課題は、バスで動作しているソフトウエアを変更することなく、クロスバスイッチを介して接続されたシステムにおいても動作可能にすることにある。
【００１０】
本発明で解決すべき課題は上記２つの課題を同時に達成するものであり、さらに本発明では次に示す２つの課題を解決することも狙っている。
【００１１】
本発明の第３の課題は、クロスバスイッチによって接続されたマルチプロセッサシステムにおいて、効率の良いアドレススヌープ方式を提供することにある。
【００１２】
本発明の第４の課題は、クロスバスイッチのポートにプロセッサユニット、メモリユニット、入出力ユニットの任意のユニットを接続可能にし、柔軟なシステム構成を可能にするマルチキャスト方式を提供することにある。
【００１３】
【課題を解決するための手段】
本発明の第１の課題は、前記のニコルソンによって紹介されている従来例のアドレスバスを廃止し、アドレスもクロスバスイッチを通し、各ユニットとクロスバスイッチを１対１で接続することによって達成される。
【００１４】
本発明の第２の課題は、アドレススヌープ方式をクロスバスイッチでも可能にするため、アドレスをクロスバスイッチに接続された全てのユニットにブロードキャストする手段をシステム接続部に設け、データコヒーレンシを維持するために必要なアドレスの転送の場合には、全てのユニットにアドレスを転送するようにシステム接続部を制御することによって達成される。
【００１５】
本発明の第３の課題は、データコヒーレンシを維持するために必要なアドレスの転送を、アドレススヌープに参加する必要のあるユニットに対してだけマルチキャストする手段をシステム接続部に設け、データコヒーレンシを維持するために必要なアドレスの転送の場合には、アドレススヌープに参加する必要のあるユニットに対してだけアドレスを転送するようにシステム接続部を制御することによって達成される。
【００１６】
本発明の第４の課題は、クロスバスイッチ内に各ポートに接続されているユニットがマルチキャスト対象のユニットか否かを示す情報を保持する手段を設け、この情報を元に転送先ポートを決定する手段を設け、マルチキャスト対象のユニットか否かを示す情報を元に転送先ポートを決定する手段にマルチキャスト先を設定した後、マルチキャストを行なうようにすることによって達成される。
【００１７】
各ユニットをクロスバスイッチを用いて接続することにより、転送先ポートが異なっていれば複数のデータ転送を同時に実行することができるため、プロセッサ台数を増加させることによるバスの奪い合いによる性能低下を押さえることができる。
【００１８】
また、各ユニットとクロスバスイッチを１対１で接続することによってバスに比べ良い電気的特性を得ることができ、この結果接続可能なプロセッサ台数を増加させるこ
とが可能になる。
【００１９】
データコヒーレンシを維持するために必要なアドレスの転送をブロードキャストすることによって、既存のプロセッサの持つアドレススヌープの機能を利用することができ、低コストで効率的なデータコヒーレンシを維持する方法を実現できる。
【００２０】
各ポートに接続されているユニットのうちアドレススヌープに参加する必要のあるユニットに対してだけコヒーレントトランザクションのアドレスを転送することによって、不必要なデータ転送を排除し、実効的なデータ転送スループットを向上させることができる。
【００２１】
また、ポート対応にマルチキャスト対象のユニットか否かを示す情報を保持することによって、任意のポートに任意のユニットを接続することが可能になり、柔軟なシステム構成が可能になる。
【００２２】
本発明のマルチキャスト方式はアドレススヌープを例に説明されているが、複数のポートに対しデータを転送したい場合に一般的に利用できる。
【００２３】
例えば、全ての入出力装置に対してリセットするためのコマンドを転送したい場合には、そのポートに入出力ユニットが接続されているか否かをマルチキャスト対象か否かを示す情報として保持する手段を設ければよい。
【００２４】
【発明の実施の形態】
以下、本発明の実施例を用いて詳細に説明する。
【００２５】
図２は３つのプロセッサユニット２０、３０、４０、２つのメモリユニット５０、６０および１つの入出力ユニット７０を６つのポートを持つシステム接続部１００で接続した本発明の第１の実施例である。
【００２６】
入出力ユニット７０はディスク装置７５、ディスプレイ（図示せず）、キーボード（図示せず）などの入出力装置に接続している。
【００２７】
各ユニットは通常のバス接続されたシステムでの対応するユニットと、システム接続部とのインタフェース部分を除き同一の機能を有するため、本実施例ではバス接続されたシステムと本実施例の相違点について詳細に述べ、同一の点については説明に必要な部分だけ説明するものとする。
【００２８】
プロセッサユニット３０はシステム接続部１００とポート４を介して接続されており、それぞれ本発明の特徴であるユニット識別レジスタｉｄｒ３１、接続情報生成回路３３、転送先識別レジスタｄｒ３２を有している。これらの回路の詳細は後述する。
【００２９】
同様に他のユニットもそれぞれシステム接続部１００とポートを介して接続されており、それぞれユニット識別レジスタｉｄｒ、接続情報生成回路、転送先識別レジスタｄｒを有している。
【００３０】
システム接続部１００は６つのスイッチ制御回路１１０から１６０、入力ポートと出力ポートを接続する３６個のスイッチｓｗ１−１からｓｗ６−６を有している。
【００３１】
スイッチ制御回路１４０はポート４の入力に対して設けられ、６つのスイッチｓｗ４−１からｓｗ４−６の開閉を制御し、ポート４の入力バス１４をそれぞれポート１の出力バス２１からポート６の出力バス２６に接続する。
【００３２】
同様に他のスイッチ制御回路も各ポートの入力に対応して設けられ、ｉを１から６の自然数とすればポートｉのスイッチ制御回路はスイッチｓｗｉ−１からｓｗｉ−６の開閉を制御し、ポートｉの入力バスを任意のポートの出力バスに接続する。
【００３３】
ユニキャストの場合はいずれか１つをスイッチを閉じることによって入力ポートを任意の出力ポートを接続し、ブロードキャストの場合は全てのスイッチを閉じることによって入力ポートを全ての出力ポートに同時に接続するように制御する。
【００３４】
スイッチ制御回路はこのスイッチ制御に際し、複数の入力ポートが同一の出力ポートに接続されることのないよう、出力ポートの接続権の調停を行なう。この出力ポートの接続権の調停回路は通常のバス接続されたシステムのバス権調停回路と同一であり本実施例では説明を省略する。
【００３５】
図３は各ユニットが持つ本発明の特徴であるユニットを識別するためのレジスタｉｄｒの内容によるユニット識別方法の１例である。各ユニットは図３に示された情報を各ユニットのユニット識別レジスタｉｄｒに保持しているものとする。
【００３６】
図４は本実施例の各ユニットが生成するデータ転送の種類ｔｒｔｙｐを示している。本実施例ではデータ転送の種類ｔｒｔｙｐは （１）非コヒーレントブロックリード要求、（２）非コヒーレントブロックリード応答、（３）非コヒーレントブロックライト要求、（４）非コヒーレントワードリード要求、（５）非コヒーレントワードリード応答、（６）非コヒーレントワードライト要求、（７）コヒーレント共有ブロックリード要求、（８）コヒーレント排他ブロックリード要求 の８種類である。
【００３７】
図５は本実施例のシステムにおけるアドレス空間の割り当てを示している。本実施例では０番地以上Ａ番地未満の領域がメモリユニット０に設けられたメインメモリに、Ａ番地以上Ｂ番地未満の領域がメモリユニット１に設けられたメインメモリに、Ｂ番地以上の領域がメモリマップされた制御レジスタなどのためのＩ／Ｏ空間として割り当てられている。
【００３８】
本実施例では各ユニットの制御レジスタがマップされるＩ／Ｏ空間のアドレスはポート対応に決められており、Ｂ番地以上Ｃ番地未満の領域がポート１のユニット、Ｃ番地以上Ｄ番地未満の領域がポート２のユニット、Ｄ番地以上Ｅ番地未満の領域がポート３のユニット、Ｅ番地以上Ｆ番地未満の領域がポート４のユニット、Ｆ番地以上Ｇ番地未満の領域がポート５のユニット、Ｇ番地以上ＭＡＸ番地未満の領域がポート６のユニットに割り当てられている。
【００３９】
図６は本実施例での転送先識別レジスタｄｒの値である。本実施例ではアドレス空間のメモリ領域がどのポートのメモリユニットに設けられているかを識別するために、転送先識別レジスタｄｒとして２つのポート番号を保持できるようにしている。
【００４０】
転送先識別レジスタｄｒの値は、本発明の特徴であるユニット識別レジスタｉｄｒの情報を元に設定される。この動作に関しては後ほど詳細に述べる。
【００４１】
上記データ転送の種類ｔｒｔｙｐとアドレス空間の割り付け方はバス接続されたシステムにおいて用いられるデータ転送の種類、アドレス空間の割り付け方と同一であり本発明に特有のものではない。
【００４２】
本発明では、上記データ転送の種類と転送されるデータのアドレスおよび本発明の特徴である転送先識別レジスタｄｒを用い、各ユニットの本発明の特徴である接続情報生成回路が転送先を決定し、図７に示す５種類の制御情報ｓｃｃｔｌと共にシステム接続部にデータ転送要求を出す。
【００４３】
次に本実施例の各ユニットから要求されるデータ転送の種類ｔｒｔｙｐについて説明する。
【００４４】
マルチプロセッサシステムでは、データの読み出しを行なう場合は読み出し行なう時点で本来メインメモリに存在するべき最新のデータを読み出す必要があり、最新のデータを他のプロセッサユニットが保持していないかを確認するためコヒーレント共有ブロックリード要求またはコヒーレント排他ブロックリード要求によって読み出しを行なう。
【００４５】
書き込みを行なう場合には、他のプロセッサユニットが古いデータを保持しないようにするため、コヒーレント排他リード要求によって１度そのデータの読み出しを行なう。
【００４６】
読み出し要求時には、そのデータのアドレスを他のプロセッサユニットに伝え、コヒーレンシをチェックする必要があるが、読み出されたデータを転送する場合にはコヒーレンシチェックは不要であり、リード応答には非コヒーレントブロックリード応答や非コヒーレントワードリード応答が用いられる。
【００４７】
プロセッサユニットはあるデータを書き換えてキャッシュメモリに持っている場合、キャッシュメモリのリプレースまたは他のプロセッサユニットからのそのデータに対するコヒーレントリード要求を検出した場合、書き換えたデータを転送しなければならない。このときは、それぞれ非コヒーレントブロックライト要求または非コヒーレントブロックリード応答でデータを転送する。
【００４８】
全てのデータがキャッシュメモリに保持される訳ではなく、例えば非キャッシュ領域が決められている場合、プロセッサユニットは非コヒーレントブロックリード要求でデータの読み出す。また、Ｉ／Ｏレジスタのようにブロック単位に読み出し／書き込みを行なわないデータ（ワードデータ）はキャッシングされないため、プロセッサユニットは非コヒーレントワードリード要求や非コヒーレントワードライト要求を用いる。
【００４９】
各ユニットから要求されるデータ転送はその種類ｔｒｔｙｐに応じて転送に要するサイクルが異なる。転送に要するサイクル数はシステム接続部の制御情報として必要であり、説明のため本実施例では、リード要求はアドレスを転送する１サイクル、ブロックライト要求は５サイクル、ブロックリード応答は４サイクル、ワードライト要求は２サイクル、ワードリード応答は１サイクルで転送するものとする。
【００５０】
図７は上記データ転送の種類ｔｒｔｙｐと転送されるデータのアドレスから接続情報生成回路によって生成されるシステム接続部への制御情報ｓｃｃｔｌを示している。データ転送の種類ｔｒｔｙｐはそれ自身がデータとして転送先のユニットに送られるため、システム接続部への制御情報ｓｃｃｔｌはユニキャストかブロードキャストかという情報、転送に要するサイクル数、転送元のポート番号と転送先のポート番号だけでよい。
【００５１】
接続情報生成回路は、データ転送の種類ｔｒｔｙｐを元にユニキャストかブロードキャストかという情報、転送に要するサイクル数を以下のように生成する。非コヒーレントブロックリード要求である場合、１サイクルのユニキャスト。
【００５２】
非コヒーレントブロックリード応答である場合、４サイクルのユニキャスト。
【００５３】
非コヒーレントブロックライト要求である場合、５サイクルのユニキャスト。
【００５４】
非コヒーレントワードリード要求である場合、１サイクルのユニキャスト。
【００５５】
非コヒーレントワードリード応答である場合、１サイクルのユニキャスト。
【００５６】
非コヒーレントワードライト要求である場合、２サイクルのユニキャスト。
【００５７】
コヒーレント共有ブロックリード要求またはコヒーレント排他ブロックリード要求である場合、１サイクルのブロードキャスト。
【００５８】
接続情報生成回路は、転送元のポート番号として自身の接続されているポート番号を制御情報ｓｃｃｔｌのｓｒｃフィールドに埋め込む。
【００５９】
接続情報生成回路は、データ転送の種類ｔｒｔｙｐおよびそのデータのアドレスと転送先識別レジスタｄｒを元に転送先のポート番号を生成し制御情報ｓｃｃｔｌのｄｅｓｔフィールドに埋め込む。
【００６０】
要求されたデータ転送がリード要求に対する応答である場合は、リード要求時にシステム接続部に出された制御情報ｓｃｃｔｌのｓｒｃフィールドに含まれる要求元のポート番号をｄｅｓｔフィールドに埋め込む。
【００６１】
要求されたデータ転送がライト要求やリード要求である場合はユニキャストかブロードキャストかに関わらずそのアドレスがメモリ空間にあれば、図６に示されるように０番地以上Ａ番地未満の領域であればｄｒ０の値である１を、Ａ番地以上Ｂ番地未満の領域であればｄｒ１の値である４を転送先のポート番号としてｄｅｓｔフィールドに埋め込む。そのアドレスがＩ／Ｏ空間にあれば、図５に示されるようにＢ番地以上Ｃ番地未満の領域であれば１、Ｃ番地以上Ｄ番地未満の領域であれば２、Ｄ番地以上Ｅ番地未満の領域であれば３、Ｅ番地以上Ｆ番地未満の領域であれば４、Ｆ番地以上Ｇ番地未満の領域であれば５、Ｇ番地以上ＭＡＸ番地未満の領域であれば６を転送先のポート番号としてｄｅｓｔフィールドに埋め込む。
【００６２】
以上の説明から明らかなように、転送先識別レジスタｄｒに値を設定する前に転送先のポート番号を決定し、システム接続部を介してデータ転送を行なえるのは、アドレス固定にポート番号が決められているＩ／Ｏ空間に対するユニキャストだけである。
【００６３】
このため、本発明のマルチプロセッサシステム上でバス接続されたシステムで動作しているソフトウエアを変更することなく動作させるためには、Ｉ／Ｏ空間に対するユニキャスト転送だけで転送先識別レジスタｄｒに正しく値を設定する手順が存在し、この転送先識別レジスタｄｒに正しく値を設定した後メモリ空間に対するユニキャストやブロードキャスト転送を用いるようにしなければならない。次にこの手順について説明する。
【００６４】
本実施例では、各ユニットが持っているユニット識別レジスタｉｄｒおよび転送先識別レジスタｄｒは、接続されたポートのＩ／Ｏ空間にマップされているＩ／Ｏレジスタであり、各ポートのＩ／Ｏ空間内のオフセットアドレスは共通に決められている。
【００６５】
各プロセッサユニットはリセット直後に実行されるブートプログラムを保持するＲＯＭを持っており、リセット直後のプロセッサはそのブートプログラムに従いプロセッサ自身、プロセッサユニット内のキャッシュメモリを初期化する。この初期化の段階ではシステム接続部に対するデータの転送要求は発生しない。
【００６６】
本実施例では、この初期化の課程で複数あるプロセッサユニットの中から１つだけ主プロセッサユニットが選ばれるものとする。例えば、主プロセッサユニットとなるプロセッサユニットだけブートプログラムの一部が他のプロセッサユニットのブートプログラムと異なるようにする。あるいはポート対応にプロセッサユニットであるか否かを知らせる信号を設けてあれば、システム接続部１００からポート番号が最も小さいプロセッサユニットであるか否かを伝える信号を設けることは容易である。
【００６７】
また、リセット直後のシステム接続部１００は各ポートからのデータ転送要求を待っており、なにもしていない状態にある。
【００６８】
プロセッサユニット内の初期化を終了したプロセッサユニットは、主プロセッサユニットでなければ主プロセッサユニットからの割り込み待ちの状態に入る。プロセッサユニット内の初期化を終了した主プロセッサユニットは、Ｉ／Ｏ空間に対するユニキャストによって、ポート番号順に各ポートに接続されたユニットのユニット識別レジスタｉｄｒを読み出し、メモリユニットがどのポートに接続されているかを認識する。
【００６９】
この後、Ｉ／Ｏ空間に対するユニキャストによって、メモリユニットが接続されていたポート番号を各ユニットの転送先識別レジスタｄｒに設定する。
【００７０】
以上の手順によって、Ｉ／Ｏ空間に対するユニキャスト転送だけを用いて転送先識別レジスタｄｒに正しく値を設定することができる。
【００７１】
上記実施例では、Ｉ／Ｏ空間はポート対応にアドレス空間に割り付けられていた。このため、Ｉ／Ｏ空間に対するユニキャストで転送先識別レジスタｄｒに値を設定する方法を示した。しかし、バス接続されたシステムと同様に、各ユニットにそのユニットのＩ／Ｏレジスタに対するアクセスか否かを、アドレスによって取捨する機構を持たせることにより、Ｉ／Ｏ空間に対するユニキャストに代えてＩ／Ｏ空間に対するブロードキャストだけを用いて転送先識別レジスタｄｒに値を設定することもできる。
【００７２】
上記実施例では、説明を簡単にするためメモリユニットは１種類しかないものとしている。このため、１つのメモリユニットのメモリ容量によって決まる固定アドレスＡ番地を基準に、メモリ空間もＡ番地未満の領域とＡ番地以降の領域の２つに決められている。
【００７３】
異なるメモリ容量を持つメモリユニットが接続されることがある場合には次の２つの手段を設ければよいことは明らかである。
【００７４】
（１）転送先識別レジスタｄｒにはポート番号だけでなく、そのメモリユニットが割り当てられるアドレス領域の最小アドレスと最大アドレスを保持するようにする。
【００７５】
（２）接続情報生成回路では転送するデータのアドレスを上記最小アドレスと最大アドレスと比較し、アドレス領域にある場合に、そのポート番号をｄｅｓｔフィールドに埋め込むようにする。
【００７６】
上記実施例では、転送先識別レジスタｄｒは２つのポートに対応する分だけしか情報を保持できないため、接続可能なメモリユニットは最大２つである。接続可能なメモリユニットの数を増やすためには転送先識別レジスタｄｒにそのポート数分だけの情報を保持できるようにすればよいことは明白である。
【００７７】
上記実施例では、Ｉ／Ｏ空間はポート対応に固定アドレスが定められている。しかし、上記実施例でポート対応にアドレスが固定されている必要があるのはユニット識別レジスタｉｄｒおよび転送先識別レジスタｄｒだけであり、これらのレジスタは固定アドレスに割り付け、その他のＩ／Ｏレジスタはメモリ空間と同様にそのＩ／Ｏ空間の領域の最小アドレスと最大アドレスとポート番号を保持する、転送先識別レジスタｄｒと同等の機能を有する手段を持つこともできる。
【００７８】
次に図１を用いて第２の実施例について、図２の第１の実施例との相違点を中心に説明する。
【００７９】
第１の実施例はアドレススヌープを実現する方法としてブロードキャストを用いる例を示した。第２の実施例はマルチキャストを用いアドレススヌープに参加する必要のあるユニットに対してだけコヒーレントリードトランザクションを転送するようにした例である。
【００８０】
第２の実施例では、システム接続部１００は本発明の特徴の一つであるマルチキャストレジスタをｍｃｒＡ１８０、ｍｃｒＢ１９０の２つ有しており、スイッチ制御回路１１０から１６０がマルチキャストレジスタｍｃｒを参照してスイッチを制御する信号を生成する点が第１の実施例と異なっている。
【００８１】
マルチキャストレジスタｍｃｒは第１の実施例の転送先識別レジスタｄｒと同様にユニット識別レジスタｉｄｒの情報を元に設定されるレジスタであり、ポート対応にマルチキャスト対象が接続されているポートであれば１、そうでないときに０の値を保持する。
【００８２】
図８はアドレススヌープを実現するためマルチキャスト対象としてプロセッサユニットが接続されているポート３、ポート４およびポート６を選択しマルチキャストレジスタｍｃｒＡ１８０に、マルチキャスト対象として入出力ユニット７０が接続されているポート１を選択しマルチキャストレジスタｍｃｒＢ１９０に値を設定した例を示している。
【００８３】
図９は第２の実施例のシステム接続部１００のスイッチｓｗｉ−ｊの回路を示している。第１の実施例ではスイッチｓｗｉ−ｊは、信号ｏｎ−ｉｊだけで制御されていたが、図９ではさらにｍｃＡ−ｉまたはｍｃＢ−ｉが１の時それぞれマルチキャストレジスタｍｃｒＡからの信号ｍｃｒＡ−ｊ、ｍｃｒＢからの信号ｍｃｒＢ−ｊの値によって接続するか否かが決まるように作られている。
【００８４】
これによって、アドレススヌープを行なう場合であれば、ｍｃ０−ｉを１にすることによって３つのプロセッサユニットとｄｅｓｔで示されるメモリユニットに対し同時にコヒーレントリード要求を出すことができる。
【００８５】
第２の実施例では図１０に示されるようにシステム接続部への制御情報ｓｃｃｔｌの種類としてマルチキャストレジスタｍｃｒＡ、ｍｃｒＢに対応して２つのマルチキャストが追加され、コヒーレント共有ブロックリード要求またはコヒーレント排他ブロックリード要求である場合、実施例１のブロードキャストに替わりマルチキャストＡが用いられる。
【００８６】
マルチキャストレジスタｍｃｒは第１の実施例の転送先識別レジスタｄｒと同様の手順で、ユニット識別レジスタｉｄｒの情報を元にＩ／Ｏ空間に対するユニキャスト転送だけで設定できることは明白であり、設定後にマルチキャスト転送を用いるようにする。
【００８７】
マルチキャストレジスタｍｃｒはそのレジスタを用いるマルチキャスト転送要求が発行される直前に設定されていればよい。このため、初期設定で固定値に設定するだけではなくソフトウエアでマルチキャストレジスタｍｃｒの内容を書き換えることによって、マルチキャスト転送先を変更することもできる。
【００８８】
上記実施例ではマルチキャストレジスタｍｃｒはシステム接続部１００に設けられているが、マルチキャストレジスタｍｃｒを各ユニットに設け、システム接続部１００への制御情報ｓｃｃｔｌにその内容を含めることもできる。
【００８９】
上記実施例ではポート毎にマルチキャストレジスタｍｃｒの１ビットを対応させているが、システム接続部１００のポートを例えばポート１と２、３と４、５と６の３グループに分け、１グループ内では同じ種類のユニットだけを接続するようにし、グループ対応にマルチキャストレジスタｍｃｒのビットを対応させることもできる。これによってマルチキャストレジスタｍｃｒを有するハードウエアの増加を少なくするこ
とができる。
【００９０】
【発明の効果】
多数台のプロセッサを接続することができる。
【図面の簡単な説明】
【図１】本発明の実施例ブロック図。
【図２】本発明の実施例ブロック図。
【図３】ユニット識別法を示す表図。
【図４】デ−タ転送の種類を示す表図。
【図５】アドレス割当てを示す表図。
【図６】転送先識別レジスタを示す表図。
【図７】制御情報を示す表図。
【図８】レジスタを示す表図。
【図９】  スイッチの回路図。
【図１０】接続部制御情報を示す表図。
【図１】
0003661249.tif 000002
【図２】
0003661249.tif 000003
【図３】
0003661249.tif 000004
【図４】
0003661249.tif 000005
【図５】
0003661249.tif 000006
【図６】
0003661249.tif 000007
【図７】
0003661249.tif 000008
【図８】
0003661249.tif 000009
【図９】
0003661249.tif 000010
【図１０】
0003661249.tif 000011