(57)【特許請求の範囲】
【請求項１】
複数のプロセッサユニットと、
複数のメモリユニットと、
複数の入出力ユニットと、
該複数のプロセッサユニット、該複数のメモリユニットおよび該複数の入出力ユニットを相互に接続し、それらの間で複数のデータを並列に転送するためのネットワークと、
それぞれ該複数の入出力ユニットの一つに接続された複数の入出力装置と、
それぞれ該複数のプロセッサユニット、該複数のメモリユニットおよび該複数の入出力ユニットおよび該複数の入出力装置の内のいずれか一つに含まれた複数のメモリマップドレジスタとを有し、
各メモリユニットは、それぞれ該複数のプロセッサユニットにより共有される主記憶の一部分を構成する複数の主記憶部分の一つを有し、該複数の主記憶部分には、それぞれ所定のアドレス空間の第１の領域内の互いに異なる複数の部分領域が割り当てられ、
該複数のレジスタは、該アドレス空間の該第１の領域と異なる他の領域を割り当てられ、
各プロセッサユニットは、
少なくとも一つのプロセッサと、
該複数の主記憶部分に対するキャッシュメモリと、
該キャッシュメモリに対するキャッシュ制御回路であって、該プロセッサから供給されたデータ読み出し要求が指定するアドレスのデータに関して該キャッシュメモリのヒットチェックを行う手段を有するものと、
該ヒットチェックの結果、該キャッシュメモリがヒットしなかったときに、該複数のプロセッサユニットと、該第１の領域内の該複数の部分領域の内、該指定されたアドレスが属する一つの部分領域が割り当てられている一つの部分主記憶を有する一つのメモリユニットとを、該データ読み出し要求の複数の送出先として決定し、それらのユニットへの該データ読み出し要求の部分放送を該ネットワークに要求する送出先決定回路を有するマルチプロセッサシステム。
【請求項２】
該アドレス空間の該第１の領域は、キャッシング可能な複数のデータとキャッシング不可能な複数のデータに割り当てられ、
該アドレス空間の該第１の領域と異なる該他の領域は、キャッシング不可能な複数のデータに割り当てられ、
該送出先決定回路は、該データ読み出し要求がキャッシング可能なデータに対する読み出し要求であり、さらに、該データ読み出し要求により指定された該アドレスが該複数の部分領域の一つに属するときに、該複数のプロセッサユニットと、該複数のメモリユニットの内、該一つ部分領域が割り当てられている一つの部分主記憶を有する一つのメモリユニットを該データ読み出し要求の複数の送出先として決定する手段を有する請求項１記載のマルチプロセッサシステム。
【請求項３】
該ネットワークは、
それぞれ該複数のプロセッサユニット、該複数のメモリユニットおよび該複数の入出力ユニットのいずれか一つに接続された複数の入力端子と、
それぞれ該複数のプロセッサユニット、該複数のメモリユニットおよび該複数の入出力ユニットのいずれか一つに接続された複数の出力端子と、
それぞれ該複数の入力端子の一つに対応して設けられ、対応する入力端子に入力された、転送データを該複数の出力ポートの各々に転送すべきか否かを指定する転送要求を保持する複数のレジスタと、
該複数のレジスタに接続され、該複数の入力端子と該複数の出力端子の間で複数のデータ読み出し要求を並列に転送するためのスイッチ回路であって、該複数のレジスタのいずれかに保持された転送要求に応答して、そのレジスタが対応する入力端子に入力されたデータ読み出し要求を、該複数の出力端子の内、その転送要求が指定する複数の出力端子に並列に転送する手段を有するものとを有し、
各プロセッサユニット内の該送出先決定回路は、該複数の入力端子の内、そのプロセッサユニットに対応して設けられた一つの入力端子に該データ読み出し要求を該ネットワークにより転送すべきデータとして供給し、該ネットワーク内の該複数のレジスタの内、該一つの入力端子に対応する一つのレジスタに、該決定した複数の送出先に対応する複数の出力端子へ該データ読み出し要求を転送することを要求する転送要求を供給する手段を有する請求項１記載のマルチプロセッサシステム。
【請求項４】
該ネットワークは、それぞれ複数のデータを並列に転送可能な、同じ構造を有する複数の大規模集積回路（ＬＳＩ）により構成され、
各ＬＳＩは、
それぞれ該複数のプロセッサユニット、該複数のメモリユニットおよび該複数の入出力ユニットのいずれか一つに接続された複数の入力端子と、
それぞれ該複数のプロセッサユニット、該複数のメモリユニットおよび該複数の入出力ユニットのいずれか一つに接続された複数の出力端子とを有し、
各プロセッサユニットは、
そのプロセッサユニット内の該送信先決定回路により供給されるデータ読み出し要求を該複数のＬＳＩと同数である複数の要求部分に分割するビットスライス回路と、
該送信先決定回路により供給される該転送要求を該複数のＬＳＩに並列に供給する手段であって、各ＬＳＩに含まれる該複数の入力端子の内、そのプロセッサユニットに対応する一つの入力端子に該転送要求を送出するものと、
該複数の要求部分を該複数のＬＳＩに並列に供給する手段であって、該転送要求を該複数のＬＳＩに供給した後に、各要求部分を、該複数のＬＳＩの一つに含まれる該複数の入力端子の内、そのプロセッサユニットに対応する一つに送出するものとを有し、
各ＬＳＩは、
それぞれそのＬＳＩに含まれる該複数の入力端子の一つに対応して設けられ、それぞれ対応する一つの入力端子から入力されるデータ読み出し要求を保持するための複数の転送データ用レジスタと、
それぞれそのＬＳＩに含まれる該複数の入力端子の一つに対応して設けられ、それぞれ対応する一つの入力端子から入力される転送要求を保持するための複数の転送要求用レジスタと、
該複数の入力端子の一つから転送要求が入力されたときに、該複数の転送要求保持用のレジスタの内、その入力端子に対応して設けられた一つのレジスタにその転送要求をセットし、その入力端子からその後、データ読み出し要求が入力されたときに、該複数の転送データ用レジスタの内、その入力端子に対応して設けられた一つのレジスタに、該データ読み出し要求をセットする手段と、
該複数の転送データ用レジスタと該複数の転送要求用レジスタに接続され、該複数の入力端子と該複数の出力端子の間で複数のデータ読み出し要求を並列に転送するためのスイッチ回路であって、該複数の転送要求用レジスタのいずれかに保持された転送要求に応答して、該複数の転送データ用のレジスタの内、該一つの入力端子に対応する一つの転送データ用レジスタにセットされたデータ読み出し要求を、該複数の出力端子の内、その転送要求が指定する複数の出力端子に並列に転送する手段を有するものとを有する請求項３記載のマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高性能を実現するために複数のプロセッサにより構成されたマルチプロセッサシステムに関連する。
【０００２】
【従来の技術】
高性能の電子計算機システムとして、複数のプロセッサが主記憶を共有する密結合マルチプロセッサシステムがある。このようなシステムでは、共有された主記憶へのアクセスの競合を低減するために、これらのプロセッサのそれぞれに対応して、プライベートなキャッシュが使用される。これらのキャッシュの使用に伴い、キャッシュ間の一致制御をどのように行うかが問題となる。従来のいろいろのマルチプロセッサシステムが特開平４−３２８６５３（以下、参考文献１と呼ぶ）の従来の技術の欄において紹介されている。
【０００３】
最も代表的な従来のマルチプロセッサシステムは、スヌーピキャッシュ方式といわれるもので、共通のバス（アドレスバス、データバス、制御バスを含むものでスヌーピバスとも呼ばれる)に、複数のプロセッサに対するキャッシュと共有メモリとが接続され、各プロセッサは、対応するキャッシュと、このバスを介して共有主記憶をアクセスするようになっている。さらに各キャッシュは、この共通のバス上の信号により他のキャッシュによる共有主記憶へのアクセスを監視し、他のキャッシュが共有主記憶に現にアクセスしたときに、自キャッシュに対してキャッシュ間一致制御のための動作を行うように構成されている。この従来技術では、複数のキャッシュ間の一致制御が比較的簡単なハードウエアにより実現されるという利点がある。その反面、いずれかのキャッシュから共有主記憶へアクセスするとき、共通のバスがデータとアドレスの転送に使用されるため，異なるキャッシュから共有主記憶へのアクセスは逐次的に行わざるを得ないし、さらに、バスネックによりせいぜい十数台規模のシステムしか実現できないという問題がある。
【０００４】
この問題を解決するために、共有バスに代えて、並列に複数のデータを転送するインタコネクトネットワークを使用するマルチプロセッサシステムもいろい知られている。この種のシステムにおいては、上記スヌーピ方式における問題がない反面、複数のキャッシュ間の一致制御をいかに実現するかの問題がある。上記参考文献１によれば、各キャッシュが、他のキャッシュによる全てのメモリアクセスを監視可能にすることが難しいことが記載されている。このため、キャッシュ間の一致制御をハードウエアで実現するのでなく、ソフトウエアで一致制御を実現する方法も紹介されている。
【０００５】
さらに、スヌーピー用のバスと、インタコネクトネットワークを併用することも知られているキャッシュ間の一致制御を必要としないメモリアクセスに対しては、インタコネクトネットワークを使用し、キャッシュ間の一致制御を必要とするメモリアクセスに対しては、従来通りスヌーピバスを使用する。この方法では、従来のスヌーピ方式そのものに比べて性能の向上はそれほど大きくない。
【０００６】
上記参考文献１では、この従来の方法より高い性能を実現するために、アドレスバスと制御バスを含み、データバスを含まない変形スヌーピーバスを、インタコネクトネットワークと併用する発明を開示している。すなわち、各キャッシュは、従来と同様にキャッシュ間の一致制御を変形スヌーピバス上のアドレスとコマンドを使用してハードウエア的に行うが、この一致制御のために実行されるキャッシュと主記憶間あるいは複数のキャッシュの間のキャッシュブロックの移動は、インタコネクトネットワークを介して行う。この方法によれば、各キャッシュは、一つのメモリアクセスに対して、一致制御のための動作の内、データ移動以外の部分をアドレスとコマンドを使用して１サイクル程度で行うことが出来るので、各キャッシュは、複数のメモリアクセスに対してキャッシュブロックの移動以外の一致制御動作部分を次々と行うことが出来る。各メモリアクセスに対する一致制御動作のためのキャッシュブロックの移動は、複数サイクル必要であるが、インタコネクトネットワークを利用して、キャッシュと主記憶の異なる組の間あるいはキャッシュの異なる組の間で異なるキャッシュブロックを並列に移動できる。一般にアドレスの大きさに比べてキャッシュブロックの大きさは大きく、アドレス転送は１サイクルで終了するがキャッシュブロックの転送に複数サイクルが必要になる。例えば、キャッシュブロックの転送に８サイクル必要と仮定すると、１サイクルのアドレス転送に対して８サイクルのキャッシュブロック転送が必要である。そのため、上記のようにしてアドレスはバスで転送しつつ、キャッシュブロックの転送をクロスバスイッチによって並列化することによって、アドレス、キャッシュブロックの双方をバスで転送する従来のスヌーピ方式のシステムに比べて大幅な性能向上を可能にしている。なお、この発明では、インタコネクトネットワークとして、クロスバスイッチその他のいろいろのネットワークが使用できることもこの参考文献１に記載されている。
【０００７】
なお、この発明を使用したと思われる製品が、ＣＯＭＰＣＯＮ  ’９５会議録の第１０２頁ないし第１０９頁（以下、参考文献２と呼ぶ）に記載されている。ここには、複数のプロセッサと、メモリと、複数の入出力ユニットと、それらを接続するアドレスバスおよびクロスバスイッチと、上記複数の入出力ユニットに接続された複数の入出力装置を含むマルチプロセッサシステムが開示されている。
【０００８】
さらに、従来技術として、いわゆるメモリマップドＩ／Ｏ方式が知られている。すなわち、システム内のいろいろの制御レジスタあるいはデータレジスタ等が、主記憶が属するのと同じアドレス空間にマップされ、主記憶をアクセスするのに使用するメモリアクセス命令と同じ形式の命令でもってアクセスされる。従来のメモリ共有型のマルチプロセッサシステムでは、いわゆるメモリマップドＩ／Ｏ方式が広く採用されている。しかし、上記参考文献１あるいは２は、それらに開示された、インタコネクトネットワークを使用したマルチプロセッサシステムに使用されるメモリマップドレジスタあるいはそのアクセス方法には触れていない。
【０００９】
【発明が解決しようとする課題】
上記参考文献１に記載された発明によれば、インタコネクトネットワークによるデータの並列転送を利用して、複数のメモリアクセスを並列に近い形で処理できる。しかし、この方法によれば、変形スヌーピバスを使用するので、バスネックにより、そのバスに接続できるプロセッサの総数は大きく限定されるという問題は残る。
【００１０】
さらに、いずれかのメモリマップドレジスタに対するアクセス要求もインタコネクトネットワークを介してそのレジスタが含まれるユニットに転送することがシステムの構造を簡単にするために望ましい。しかるに、アクセス要求が指定するアドレスに基づいて、そのアドレスを割り当てられたメモリマップドレジスタを含むユニットを判別するには、各ユニットに含まれる全てのメモリマップドレジスタに割り当てられたアドレスの分布範囲を示すアドレス割り付け情報を各ユニットに対応してシステム内に予め記憶し、上記アクセス要求が発生したときに、そのアクセス要求が指定するアドレスとこの記憶されたアドレス割り付け情報に基づいて、その指定されたアドレスを割り当てられているメモリマップドレジスタが属するユニットを判別する回路を使用する必要が生じる。
【００１１】
しかし、システムに含まれるメモリマップドレジスタの内、入出力ユニットに接続された入出力装置内のメモリマップドレジスタは、システム内の入出力装置の数あるいは配置が変更されることがあり、上記アドレス割り付け情報をその都度変更する必要がある。したがって、上記アドレス割り付け情報を使用して、アクセス要求が指定するメモリマップドレジスタが属するユニットを判別する回路は、このようなアドレスの変更に応答することが出来るように構成する必要があり、それだけ、この回路が複雑になる。
【００１２】
本願発明の目的は、いずれかのキャッシュが出力するメモリアクセスをインタコネクトネットワークを用いて他のキャッシュが監視可能にするマルチプロセッサシステムを提供することである。
【００１３】
本願発明のより具体的な目的は、そのような監視を可能とし、それでいてキャッシュを含まない入出力ユニット等へ悪影響を及ぼさないマルチプロセッサシステムを提供することである。
【００１４】
本願発明の他の目的は、アクセス要求が指定するメモリマップドレジスタにアクセス要求の送出先を決定する回路を簡単化出来るマルチプロセッサシステムを提供することである。
【００１５】
本願発明の他のより具体的な目的は、入出力装置に含まれるメモリマップドレジスタへのアクセス要求を、その入出力装置に転送するための回路を簡単化出来るマルチプロセッサシステムを提供することである。
【００１６】
本願発明のさらに他のより具体的な目的は、入出力装置の数あるいは組み合わせが変更された場合でも、いずれかの入出力装置に含まれるメモリマップドレジスタに対するアクセス要求を、その入出力装置に転送するための簡単な回路を有するマルチプロセッサシステムを提供することである。
【００１７】
【課題を解決するための手段】
本願発明の上記目的を達成するために、いずれかのプロセッサユニットにて、主記憶内のデータに対するアクセスが発生し、そのユニット内のキャッシュがヒットしなかった時に、そのアクセス要求を、そのアクセス要求が指定するアドレスが割り当てられている一つのメモリユニットと、全てのプロセッサユニットを、そのアクセス要求を送付すべき複数の送付先として決定する送付先決定回路を設けた。
【００１８】
本願発明の他の目的を達成するために、メモリマップドレジスタに対するアクセス要求の場合、その入出力装置に転送するための簡単な回路として、いずれかの入出力装置内のいずれかのメモリマップドレジスタに対するアクセス要求の場合には、全ての入出力ユニットにこのアクセス要求を部分放送する。
【００１９】
【発明の実施の形態】
以下、本発明に係るマルチプロセッサを図面に示したいくつかの実施の形態を参照してさらに詳細に説明する。なお、以下においては、同じ参照番号は同じものもしくは類似のものを表わすものとする。
【００２０】
＜発明の実施の形態１＞
（装置構成の概略）
図１は、本発明に係るマルチプロセッサシステムの第１の実施の形態を示す。図において、２−０から２−３はプロセッサユニットであり、３−０と３−１はメモリユニットであり、複数のプロセッサユニット２−０から２−３により共有される主記憶の一部を構成する複数の主記憶部分がこれらのメモリユニットに分散して保持される。４−０ないし４−１は入出力ユニットであり、それぞれ複数の入出力装置、たとえば、ディスク装置１０−０−１ないし１０−０−２および１０−１−１ないし１０−１−２に接続されている。これらの入出力ユニットには、他の入出力装置、たとえば、回線接続装置（図示せず）等も接続されている。１は、ブロセッサユニット２−０ないし２−３、メモリユニット３−０ないし３−１、入出力ユニット４−０ないし４−１を相互に接続し、これらの間でのトランザクションと呼ぶひとかたまりのデータを複数個並列に転送可能なインタコネクトネットワークであり、本実施の形態ではその一例としてクロスバスイッチを使用する。
【００２１】
各プロセッサユニット２−ｉ（ｉ＝０，１，２または３）は、同一の構造を有し、それぞれ１台以上のプロセッサ（Ｐｒｏｃ）９−ｉ−１および９−ｉ−２（ｉ＝０，１，，，）を内蔵する。主記憶に対するキャッシュメモリ６−ｉとキャッシュ制御５−ｉとを含む。各プロセッサ内には、キャッシュメモリ５−０よりも高速で容量の小さいプロセッサキャッシュ（図示せず）が内蔵されている。本実施の形態では、このプロセッサキャッシュとキャッシュメモリ６−ｉはいずれもストアイン方式のキャッシュであると仮定する。また、これらのキャッシュのキャッシュブロックの大きさは３２バイトであると仮定する。各プロセッサユニット２−ｉには、さらに、ネットワーク１との間でデータを交換するための送信部７−ｉおよび受信部８−ｉがある。
【００２２】
各メモリユニット３−０または３−１は同一の構造を有し、メモリバンク１１−０または１１−１、送信部７−４または７−５および受信部８−４または８−５がある。メモリバンク１１−０と１１−１が主記憶を構成し、本実施の形態では、メモリアドレスは、３２ビットであり、これらのメモリバンクからのデータの読み出しあるいは書き込み単位は、キャッシュブロックサイズ３２ビットに等しく、さらに、これらのメモリバンクは、３２バイトを単位にしてインタリーブされていると仮定する。
【００２３】
入出力ユニット４−０ないし４−１には、それぞれ入出力アダプタ１３−０または１３−１、送信部７−６または７−７および受信部８−６または８−７がある。入出力アダプタ１３−０は、クロスバスイッチ１から受信した信号をディスク装置１０−０−１ないし１０−０−２等が受信可能な信号に変換し、あるいは逆に、ディスク装置１０−０−１ないし１０−０−２等から受信した信号を、クロスバスイッチ１が受信可能な信号に変換する回路である。
【００２４】
これらのメモリユニット３−０または３−１内の送信部７−４と７−５あるいはこれらの入出力ユニット４−０または４−１内の送信部７−６または７−７の構造は、プロセッサユニット２−０内の送信部７−０と同一である。同様に、これらの入出力ユニットとメモリユニット内の受信部８−４から８−７の構造も、プロセッサユニット２ー０内の受信部６−０と同一である。なお、図１では、簡単化のためメモリユニット３−１、入出力ユニット４−１の内部構成は図示していない。
【００２５】
プロセッサユニット２−０ないし２−３、メモリユニット３−０ないし３−１、入出力ユニット４−０ないし４−１、ディスク装置１０−０−１ないし１０−１−２等の入出力装置には、従来技術によるマルチプロセッサシステムと同様に、これらを制御するためのメモリマップドレジスタ（図示せず）があり、これらのレジスタは、主記憶が属するのと同じアドレス空間にマップされている。いわゆるメモリマップドＩ／Ｏ方式が本実施の形態でも採用されている。
【００２６】
本実施の形態では、キャッシング可能な主記憶データへのアクセス要求がいずれかのプロセッサユニットで発生したとき、そのデータがそのプロセッサユニット内のキャッシュに保持されていないときに、他の全てのユニットの内、主記憶に対するキャッシュを含んでいるプロセッサユニットおよびそのデータを保持している一つのメモリユニットのみに、アクセス要求をクロスバスイッチ１を介して部分放送し、他のメモリユニットおよび全ての入出力ユニットには、このアクセス要求を送付しないように、各プロセッサユニットの送信部７−ｉ内に送信先決定回路を設けた。これにより、キャッシュ一致制御の動作を各プロセッサユニットで並行して行うことを可能にし、しかも、それに関与しないユニットにはこの要求を送らないことにより、これらの他のユニットがこのアクセス要求の転送と並行して、クロスバスイッチ１により他の通信を行えるようにした。すなわち、このアクセス要求の転送の間もクロスバスイッチ１の並列転送能力を利用できるようにした。
【００２７】
さらに、入出力装置内のメモリマップドレジスタをアクセスするアクセス要求がいずれかのプロセッサユニットで発生したとき、他の全てのユニットの内、入出力ユニットの全てにアクセス要求をクロスバスイッチ１を介して部分放送し、他のユニットには、このアクセス要求を送付しないように、各プロセッサユニットの送信部７−ｉ内に送信先決定回路がこのアクセス要求の送付先を決定する回路を設け、各入出力ユニットに接続された入出力装置内には、このアクセス要求が指定するアドレスを割り当てられたレジスタを有するか否かを判断する回路を設けた。これにより、入出力装置内のメモリマップドレジスタへ実際に割り当てられたアドレスが変更されても、それに関係なく、アクセス要求で指定されたアドレスを有するメモリマップドレジスタをアクセスできる。しかも、入出力ユニットユニット以外のユニットにはこの要求を送らないことにより、これらの他のユニットがこのアクセス要求の転送と並行して、クロスバスイッチ１により他の通信を行えるようにした。すなわち、このアクセス要求の転送の間もクロスバスイッチ１の並列転送能力を利用できるようにした。
【００２８】
さらに、プロセッサユニット、メモリユニットあるいは入出力ユニットのいずかれに属するメモリマップドレジスタをアクセスするアクセス要求がいずれかのプロセッサユニットで発生したとき、全てのユニットにこのアクセス要求をクロスバスイッチ１を介して放送するようにした。これにより、このようなアクセス要求の送付先を決める回路を簡単化した。このようなレジスタへのアクセスの回数は小さいので、このような放送による弊害が少ないことを利用した。
【００２９】
（アドレス空間の構造）
図４は、本実施の形態で採用するアドレス空間の例を示している。本実施の形態では、このアドレス空間は３２ビットのアドレスで構成されると仮定している。このアドレス空間は３つの領域に区分されている。
【００３０】
００００００００番地からＤＦＦＦＦＦＦＦ番地までの最初の領域１００ａには、メモリユニット３−０および３−１にあるメモリバンク１１−０および１１−１によって構成される主記憶がマッピングされている。メモリバンク１１−０および１１−１はキャッシュブロックの大きさに相当する３２バイトを単位にインタリーブされている。例えば、０番地から３１番地まではメモリバンク１１−０に、３２番地から６３番地まではメモリバンク１１−１にマッピングされている。したがって、この領域のアドレスは、３２バイト毎に、メモリユニット３−０と３−１に交互に割り当てられている。なお、この領域には、キャッシュにデータが保持されるキャッシング可能領域とそうでないキャッシング不可能領域があり、これらの領域の設定はいずれかのプロセッサユニットで実行されるプログラムにより行なわれる。
【００３１】
Ｅ０００００００番地からＥＦＦＦＦＦＦＦ番地までの第２の領域１００ｂには、プロセッサユニット２−０ないし２−３、メモリユニット３−０ないし３−１、入出力ユニット４−０ないし４−１内に設けられたメモリマップドレジスタがマッピングされている。この領域はキャッシング不可能領域である。この領域内のアドレスのレジスタへのマッピングは、メモリバンクのようなインタリーブではない。すなわち、この第２の領域１００ｂを、それぞれ連続するアドレスを有する複数の部分領域に分け、それぞれの部分領域を同一のユニット内のメモリマップドレジスタに割り当てる。但し、同一のユニット内の複数のレジスタが、この領域内の複数の連続する領域に分散してマッピングされてもよい。なお、複数プロセッサへの割込み通知等のため、この領域内の同一のアドレスを異なるユニットに属する複数のメモリマップドレジスタに割り当てても構わない。
【００３２】
各ユニットが占める部分領域の指定は、それ自体公知のいろいろの方法を使用できる。たとえば、各ユニットが使用する部分領域は、そのユニットに設けられたＤＩＰスイッチやジャンパ線にて指定し、あるいは、各ユニットが実装されるプリント板がバックプレーンから受ける固定信号にて指定する。あるいは、各ユニットが使用する部分領域の上限アドレスと下限アドレスとを示すレジスタを各ユニットに用意し、これにサービスプロセッサがこれらのアドレスをスキャンインによって設定することもできる。
【００３３】
アドレス空間のうち、Ｆ０００００００番地からＦＦＦＦＦＦＦＦ番地までの第３の領域１００ｃは、入出力ユニット４−０ないし４−１内の入出力アダプタ１３−０ないし１３−１に接続されたディスク装置１０−０−１ないし１０−１−２や回線接続装置（図示せず）等の入出力装置内に設けられた複数のレジスタに割り当てられる。この領域もキャッシング不可能領域である。これらのレジスタへのアドレス設定についても、上述のような従来から用いられている方法を使用できる。しかし、これらの入出力装置内に設けられたメモリマップドレジスタへのアドレスの割り当ては、接続する入出力装置の種類や数に依存し、ユーザによるシステムの使用開始時にあるいは使用開始後にそれらの入出力装置の種類や数あるいはそれらが接続される入出力ユニットが変更されるという構成変更があり得る。この場合、構成変更毎に、各メモリマップドレジスタに割り当てられるアドレスを変更する必要がある。
【００３４】
あるプロセッサユニット、たとえば、２−０において、その中のプロセッサ、たとえば、９−０−１内にて、主記憶あるいはメモリマップドレジスタへのアクセス要求が発生した場合、このマルチプロセッサシステムの動作は、そのアクセス要求が下記のデータのいずれへのアクセスを要するか否かにより変わる。
【００３５】
（１）主記憶内のキャッシング可能なデータ、
（２）入出力装置内のメモリマップドレジスタに保持されたデータ
（３）プロセッサユニット、メモリユニット、入出力ユニット内のメモリマップドレジスタに保持されたデータ
（４）主記憶内のキャッシング不可能なデータ
以下、これらの場合に分けて、装置の動作を説明する。
【００３６】
（装置動作１）ーキャッシング可能なデータに対するアクセス
（プロセッサユニットの動作１）ーＣＲｅａｄトランザクションの送出
プロセッサ９−０−１内には、プロセッサキャッシュ（図示せず）が含まれ、このアクセス要求が指定するデータに対して、プロセッサ９−０−１内でこのキャッシュに対してまずヒットチェックがなされ、このキャッシュがヒットすれば、ヒットしたデータがそのプロセッサでアクセスされる。このキャッシュがヒットしなかった時には、プロセッサ９−０−１は、そのアクセス要求が読み出し要求か書き込み要求かによらないで、キャッシュ制御５−０に読み出し要求を送る。この読み出し要求は、アクセスすべきデータのアドレスと、そのアドレスがキャッシング可能なデータに対するものであるかを示す信号を含む。このキャッシュ制御５−０は、キャッシュ６−０に対してヒットチェックを行う。このキャッシュがヒットした場合には、キャッシュ制御５−０は、ヒットしたブロックをプロセッサ９−０−１に送る。プロセッサユニットの以上の動作はそれ自体公知である。ヒットしなかった場合には、キャッシュ制御５−０は、以下のようにして、他のプロセッサユニット２−１から２−４と、いずれかのメモリユニット３−０または３−１にＣＲｅａｄ（キャッシュリード）トランザクションを生成して、送信部７−０に送る。
【００３７】
図２（ａ）は、上述のＣＲｅａｄトランザクションのごとくＲｅａｄタイプのトランザクションのフォーマットを示す。このトランザクションは８バイトの線の上を１サイクルで転送される。このトランザクションの第１バイトにはＴＹＰＥフィールドがあり、このトランザクションがＣＲｅａｄあるいは他のＲｅａｄであることを示す値が格納される。第２バイトは空きであるが、後にポート番号が組み込まれるフィールドである。第３ないし第４バイトには、ＭＩＳＣフィールドがあり、クロスバスイッチ１では用いないが、このトランザクションを受理したユニットが使用する制御情報が格納される。第５ないし第８バイトにはＡＤＤＲＥＳＳフィールドがあり、このトランザクションでアクセスするアドレスが格納されている。
【００３８】
図６は、送信部７−ｉ（ｉ＝０、１、、、）の内部の構成を示す。この回路は送信先決定回路７０−ｉとトランザクション組立回路７２−ｉとを有する。トランザクション組立回路７２−ｉは、クロスバスイッチ１に供給すべき完成されたトランザクションを生成する回路である。すなわち、２４は自ポート番号発生回路であり、クロスバスイッチ１の複数の入力ポートの内、その送信部が接続されている入力ポートの番号を生成する回路である。この回路は、ＤＩＰスイッチやジャンパ線にて自ポートの番号を発生するような回路であってもよいし、サービスプロセッサ（ＳＶＰ）（図示せず）等によりシステム立ち上げ時にスキャンインされるレジスタのような回路であってもよい。マージ回路２５は、線ｄ−ｉを介してキャッシュ制御５−０から供給されるトランザクション内の第２バイトフィールドに回路２４により供給される自ポート番号を埋め込むことにより、完成されたトランザクションを生成し、線ｂーｉを介してクロスバスイッチ１に供給する。
【００３９】
送信先決定回路７０−ｉは、この完成されたトランザクションを送出すべき一つまたは複数の送出先を決定する回路である。この決定は、トランザクションの種類とそこに含まれるアドレスの値に基づいて行われる。今仮定しているキャッシュリードトランザクションＣＲｅａｄの場合には、送信先決定回路７０−ｉは、全プロセッサユニットと、そのトランザクションに含まれるアドレスが割り当てられているいずれか一つのメモリユニットを複数の送出先として決定する。
【００４０】
図５は、図２あるいは図３で示したトランザクションのＡＤＤＲＥＳＳフィールドの詳細を示す図である。３２ビットのアドレスフィールドのうち、ビット０ないし３の値を調べることによって、当該アドレスが図４に示した「主記憶」、「クロスバスイッチに直結するユニットのメモリマップドレジスタ」、あるいは、「入出力ユニットを経由してクロスバスイッチに接続される入出力装置のメモリマップドレジスタ」のいずれかであるかを判定することが可能である。また、ビット２６が０であるか１であるかに応じて、「主記憶」へのアクセスがメモリユニット３−０へのアクセスであるか、メモリユニット３−１へのアクセスであるかを判定できる。
【００４１】
図６において、２２は、このことを用いて、トランザクションが指定するアドレスが、図４に示すアドレス空間の領域１００ａから１００ｃのいずれの領域に属するかを判定するためのデコーダであり、線ｄ−ｉから入力されたトランザクションのＡＤＤＲＥＳＳフィールドのうちビット０ないしビット３の内容をデコードする。同様に、２３はアドレスが領域１００ａに属する場合において、そのアドレスがいずれのメモリユニットに属するかを判別するためのデコーダであり、線ｄ−ｉから入力されたトランザクションのＡＤＤＲＥＳＳフィールドのうちビット２６の内容をデコードする。２１はトランザクションの種別を判別するためのデコーダであり、線ｄ−ｉから入力されたトランザクションのＴＹＰＥフィールドをデコードする。
【００４２】
３７−０ないし３７−５はパターン発生回路であり、それぞれに対する入力が値１を有すると、それぞれ１１１１１０００、１１１１０１００、００００１０００、０００００１００、１１１１１１１１、００００００１１なる８ビットのビットパターンを出力する。ここで、このビットパターンは、クロスバスイッチ１の出力ポート０から７に対応する８ビットからなり、各ビットの値が１の時には、そのビットに対応する出力ポートにトランザクションを転送すべきことを指示する。パターン発生回路３７−０の出力パターンのごとく、複数のビットの値が１で他の複数のビットが０であるパターンは、それらの値１のビットに対応する複数の出力ポートにトランザクションを並列に転送すること、すなわち、そのトランザクションを部分放送することを指示する。パターン発生回路３７−４の出力パターンのごとく、全ビットの値が１であるパターンは、全ての出力ポートにトランザクションを並列に転送すること、すなわち、そのトランザクションを放送することを指示する。ＡＮＤ回路２８ないし、３３、ＯＲ回路３４ないし３６は、デコーダ２１から２３の出力の値の組み合わせに応じて、パターン発生回路３７−０から３７−５を選択的に起動する。２６はこれらのパターン発生回路３７−０〜３７ー７から供給される複数のビットパターンをマージする回路で、それらのビットパターンの対応するビットのＯＲからなる値を有する新たな８ビットのビットパターンを生成し、転送要求信号ＲＥＱ［０−７］として線ａ−ｉを介してクロスバスイッチ１に供給する。同時に、線ｂ−ｉ上のトランザクションと線ａ−ｉ上の転送要求信号ＲＥＱ［０−７］の取り込みを指示するタイミング信号であるコマンドを線ｘ−ｉを介してクロスバスイッチ１に供給する。この転送要求信号ＲＥＱ［０−７］も８個の出力ポートにそれぞれ対応する８ビットからなり、値１のビットに対応する出力ポートに対してトランザクションを転送すべきことをクロスバスイッチに要求する。なお、デコーダ２７は、デコーダ２１でデコードされたトランザクションが、後述するように、他のユニットから転送されたトランザクションに対する応答であるＲｅｔｕｒｎトランザクションであるときに使用される。その詳細は後に説明する。図７は、送信先決定回路７０−ｉに対するいろいろの入力信号の値と、この回路により発生される転送要求信号ＲＥＱ［０−７］の各ビットの値との関係を説明する図である。図中、＊はｄｏｎ’ｔ  ｃａｒｅを表す。
【００４３】
今仮定しているキャッシュリードトランザクションＣＲｅａｄの場合には、デコーダ２１のＣＲｅａｄ出力が１となり、デコーダ２２の０〜Ｄ出力が１となる。デコーダ２３の０出力あるいは１出力の一方が１となる。この結果、ＡＮＤ回路２８と２９のいずれか一方の出力が１となり、パターン発生回路３７ー０と３７ー１の一方がとが起動される。たとえば、パターン発生回路３７ー０が起動された場合、全てのプロセッサユニットと、メモリユニット３−０が送出先として決定される。なお、本実施の形態では、キャッシング可能なデータは主記憶領域内のみに存在するので、デコーダ２１によりＴＹＰＥがＣＲｅａｄであることをデコードすれば、デコーダ２２によるアドレスビット０ないしビット３の値をデコードする必要は必ずしもない。しかし、プログラムエラーが起こることを考えて、ＣＲｅａｄトランザクションの場合もデコーダ２２によるデコード結果も、送出先の決定に使用している。
【００４４】
（クロスバスイッチの動作）
クロスバスイッチ１は、いろいろのユニットから送出されたトランザクションを、それらのトランザクションに対応してそれらのユニットから供給される転送要求信号が指定する一つまたは複数の送出先に転送する。本実施の形態のクロスバスイッチは、任意の数の任意の送出先の組合わせに対しても同じトランザクションを並列に転送できるように構成されている。さらに、複数の送出先への送付は、互いに独立に実行されるようになっている。すなわち、いずれかの送出先への送出が出来ないときでも、他の送出先が送出可能であるならば、それらの送出可能な送出先にトランザクションを送出するようになっている。
【００４５】
図９はクロスバスイッチ１の内部の構成を示す。簡単のため、図９にはクロスバスイッチ１の構成要素の一部のみを示してある。クロスバスイッチ１には図示のとおり、入力ポート５１−０ないし５１−７と、出力ポート５２−０ないし５２−７がある。図１では、同じ番号の入力ポートと出力ポートの組をポート０ないし７として示した。入力ポート５１−０ないし５１−７には、それぞれリクエスト制御５３−０ないし５３−７があり、それぞれ線ａ−０ないしａ−７を経由して転送要求信号ＲＥＱ［０−７］を入力する。リクエスト制御５３−０ないし５３−７はすべて同一の内部構成になっている。また、入力ポート５１−０ないし５１−７には、それぞれトランザクションレジスタ５４−０ないし５４−７があり、それぞれ線ｂ−０ないしｂ−７から入力されるトランザクションを保持する。各入力ポートのリクエスト制御、たとえば５３−０、とトランザクションレジスタ、たとえば、５４ー０、には、線ｘー０を介してコマンド信号が入力され、ＲＥＱレジスタ６１とトランザクションレジスタ５４ー０は、このコマンドに応答して、それぞれ転送要求信号ＲＥＱ［０−７］とトランザクションを取り込むように構成されている。出力ポート５２−０ないし５２−７には、それぞれ調停回路５５−０ないし５５−７と、選択回路５６−０ないし５６−７がある。選択回路５６−０ないし５６−７の出力信号は、それぞれ線ｃ−０ないしｃ−７に接続されている。
【００４６】
図１０はリクエスト制御５３−ｉ（ｉ＝０〜７）の代表として、５３−０の内部構成を示している。図中、６１は８ビット幅のＲＥＱレジスタであり、ビット０ないし７が、それぞれ線ａ−０を経由して入力されるＲＥＱ［０］ないしＲＥＱ［７］信号を、線ｘ−０を介して供給されるコマンドに応答して格納する。各ビットからは信号ｒ００、ｒ０１、ｒ０２、ｒ０３、ｒ０４、ｒ０５、ｒ０６、ｒ０７が出力され、それぞれが調停回路５５−０ないし５５−７に接続されている。６２ないし６９はＡＮＤ−ＯＲ回路である。６０はＡＮＤ回路である。また、調停回路５５−０ないし５５−７からは、それぞれ信号ｇ００、ｇ０１、ｇ０２、ｇ０３、ｇ０４、ｇ０５、ｇ０６、ｇ０７が出力されており、ＡＮＤ−ＯＲ回路６２ないし６９に入力されている。リクエスト制御５３−１ないし５３−７の構成および調停回路との接続関係も同様である。
【００４７】
今仮定にしたがって、入力ボート０から線ａ−０と線ｂ−０を経由してＲＥＱ［０−７］信号とトランザクョンが入力されると、これらはそれぞれＲＥＱレジスタ６１とトランザクションレジスタ５４−０に格納される。するとＲＥＱレジスタ６１に格納されたＲＥＱ［０−７］の値は、それぞれ調停要求のための信号ｒ００ないしｒ０７として調停回路５５−０ないし５５−７に伝達される。また、トランザクションレジスタ５４−０に格納されたトランザクションは線ｔ０を経由して選択回路５６−０ないし５６−７に伝達される。調停回路５５−０ないし５５−７のうち、信号ｒ００ないしｒ０７として信号の値１を伝達された調停回路は、他の入力ポート５１−１ないし５１−７から入力される信号ｒ１１等との調停を行ない、入力ポート５１−０からの調停要求が満たされると調停完了を表す信号ｇ００、ｇ０１等を入力ポート５１−０に送る。また、同一の出力ポートにある選択回路に指示をして線ｔ０から入力されているトランザクョンを線ｃ−０ないしｃ−７に出力させる。また、リクエスト制御５３−０では、ＡＮＤ−ＯＲ回路６２ないし６９とＡＮＤ回路６０によって、調停要求のための信号として値１の信号を送ったすべての調停回路から調停完了を表す信号ｇ００、ｇ０１等が送られてきたことを検出して信号ｒｅｓ０を生成する。この信号はＲＥＱレジスタ６１およびトランザクョンレジスタ５４−０に伝達される。この信号を受けたＲＥＱレジスタ６１およびトランザクョンレジスタ５４−０は、レジスタの内容をクリアして、次のＲＥＱ［０−７］信号およびトランザクションを受信可能になる。このようにして、所望のユニットにトランザクョンの転送が完了する。今の仮定では、転送要求信号ＲＥＱ［０−７］は、１１１１１００（あるいは１１１１０１００）であるために、入力ポート０から入力されたＣＲｅａｄトランザクションは、出力ポート０から４（あるいは出力ポート０ー３と５）に並列に転送される。
【００４８】
以上の動作から分かるように、本実施の形態では、トランザクションＣＲｅａｄの場合のごとく、トランザクションを全てのユニットの放送するのではなく、一部のユニット（全てのプロセッサユニットと一つのメモリユニット）に部分放送するので、クロスバスイッチ１は、このトランザクションの部分放送と並行して、このトランザクションの送信元（今の仮定では、プロセッサユニット２−０）以外のユニットから他のトランザクションをこのトランザクションを放送されない他のユニットに転送することが出来る。とくにトランザクションＣＲｅａｄを部分放送する場合、ネットワークは、各入出力ユニット４−０あるいは４−１は、そこに接続された入出力装置内のアクセスを要求するトランザクションをトランザクションＣＲｅａｄの部分放送と並行して転送することが出来る。したがって、本実施の形態では、ネットワークの並列転送能力を生かすことが出来る。さらに、転送要求信号ＲＥＱ［０−７］は出力ポート信号に対応したビットからなり、各ビットは、対応する出力ポートの調停回路に供給されるため、本実施の形態ではネットワークは、任意の数の任意の送出先の組み合わせに対して同じトランザクションを並列に送出するか否かを簡単に制御することができる。さらに、各出力ポート毎に、その出力ポートに対応する転送要求ビットに基づいて調停を行い、各出力ポートでの調停結果に依存し、しかし、他の出力ポートでの調停結果に依存しないで、各出力ポートへの同じトランザクションの転送を制御するために、いずれかの出力ポートで調停により上記トランザクションの調停が成功しない場合においても、調停が成功したが他の出力ポートにそのトランザクションを転送できる。したがって、全体として、同じトランザクションを複数の出力ポートに転送するのを高速化出来る。
【００４９】
（プロセッサユニットの動作２）ーＣＲｅａｄトランザクションへの応答
クロスバスイッチ１によりトランザクションが、各プロセッサユニットに送出されると、各プロセッサユニットは、このトランザクションを受信し、このトランザクションを、その種別とそこに含まれているアドレスの値に応じて処理する。
【００５０】
図８は受信部８−ｉ（ｉ＝０、１、、）の内部の構成を示す。図中、トランザクション分解回路４２は、クロスバスイッチ１から線ｃ−ｉを介して入力されたトランザクション内のＰＯＲＴフィールドをＰＯＲＴレジスタ４１に格納する。また、線ｃ−ｉから入力されたトランザクションのうち、ＰＯＲＴ番号フィールド以外を線ｅ−ｉを介してキャッシュ制御５−２に送出する。なお、後述するように、受信したトランザクションがＲｅｔｕｒｎトランザクョンの場合、そのＰＯＲＴフィールドは未使用であり、これに相当する部分に任意の値が格納されている可能性があるが、トランザクション分解回路４２は、構わずこの値をＰＯＲＴ番号レジスタ４１に格納する。また、なお、キャッシュ制御５−２は、各トランザクションをトランザクション組立回路４２から受信する毎に、線ｆ−ｉを介してＰＯＲＴレジスタ４１の内容をクリアするようになっている。
【００５１】
このトランザクションが今仮定しているＣＲｅａｄトランザクションの場合には、各プロセッサユニットでは、キャッシュ制御５−０が、キャッシュ一致制御のための動作を行うように構成されている。キャッシュ一致制御のためにはいろいろの方法を採用できるが、本実施の形態では、比較的簡単な方法として以下の方法を採る。すなわち、ＣＲｅａｄトランザクションに含まれたアドレスのブロックに関するヒットチェックとヒットした場合には、そのブロックが主記憶から読み出された後に、更新されたか否か（すなわち、そのブロックがＤｉｒｔｙか否か）をそのプロセッサユニット、たとえば２−１内のキャッシュ６−０に関して行う。このためにキャッシュ内の各ブロックに関する状態情報としてそのブロックがＤｉｒｔｙか否かの情報を有している。各ヒットチェックの結果、ヒットが検出されなかったときには、線ｆ−０を経由してリセット信号を受信部８−１内のＰＯＲＴレジスタ４１に送り、ＰＯＲＴレジスタ４１をクリアする。その結果、受信部８−１は、次のトランザクョンを受信できるようになる。その後は何もしない。ヒットチェックの結果、もしヒットが検出されると、そのブロックがＤｉｒｔｙか否かをそのブロックに対応して記憶している状態情報（Ｄｉｒｔｙ）に基づいて判定し、もしそのブロックが主記憶から読み出された後に更新されていない（Ｃｌｅａｎである）ときには、ヒットしなかった場合と同様の処理をする。しかし、ヒットチェックの結果、ヒットし、かつ、そのヒットしたブロックがＤｉｒｔｙであるときには、そのブロックをＣＲｅａｄトランザクションの送信元プロセッサユニット、今の仮定では、２−０に転送するために、図２（ｃ）に示すフォーマットのリターン（Ｒｅｔｕｒｎ）トランザクションを生成し、送信部７−１に複数のサイクルの間にわたって送る。さらに、キャッシュ６−０内のヒットブロックを無効にする。
【００５２】
送信部７−１では、デコーダ２７には、受信部８−１から線ｇ−ｉを介して、受信したＣＲｅａｄトランザクション内のポートの番号が供給されている。今の仮定では、このポート番号は、ＣＲｅａｄトランザクションの送信元のプロセッサユニットが接続されているクロスバスイッチ１内のポートの番号である。デコーダ２１がこのトランザクションを解読すると、デコーダ２７が、線ｇ−ｉから値入力される、送出元のポート番号の値が０ないし７であるのに応じて、それぞれ１０００００００、０１００００００、００１０００００、０００１００００、００００１０００、０００００１００、００００００１０、０００００００１なるビットパターンをマージ回路２６に出力する。今の例では、送信元のプロセッサユニットが２−０であり、それに割り当てられたクロスバスイッチのポート番号は０であるので、デコーダ２７は１０００００００からなるビットパターンを生成する。このビットパターンは、生成されたＲｅｔｕｒｎトランザクションをクロスバスイッチ１のポート番号０の出力すべきことを指示する。このトランザクションは、クロスバスイッチ１により、ＣＲｅａｄトランザクションの送信元のプロセッサユニット２−０に転送される。そこでは、キャッシュ制御５−０がこのトランザクションに含まれたブロックをキャッシュ６−０内に書き込み、さらに、先に読み出し要求を発行したプロセッサ９−０−１または９−０−２に転送する。そのプロセッサは、そのプロセッサ内のキャッシュにそのブロックを書き込むとともに、そのプロセッサが指定したデータ部分をこのブロックから切り出し、そのプロセッサ内の処理回路に送る。
【００５３】
（メモリユニットの動作）
ＣＲｅａｄトランザクションを受信したメモリユニット、たとえば３−０内のメモリバンク１１−０は、いずれかのプロセッサユニットにおいて、先のキャッシュヒットが検出され、されに、ヒットしたブロックがＤｉｒｔｙであることが検出されたときには、受信したＣＲｅａｄトランザクションに応答しないように構成されている。そうでないときには、受信したＣＲｅａｄトランザクションに応答して、Ｒｅｔｕｒｎトランザクションを生成するようになっている。そのトランザクションのプロセッサ２−０への返送はプロセッサ２−１へ返送する場合と同様にして行われる。このメモリユニットの動作も、キャッシュ一致制御の他の動作の一部と考えることが出来る。
【００５４】
以上のごとくにして、キャッシング可能なデータに対するアクセス要求を、全てのプロセッサユニットと関係するメモリユニットのみにクロスバスイッチにより部分放送することが出来る。さらに、そのデータを保持するキャッシュもしくはメモリユニットからそのデータを要求元のプロセッサユニットに送出し、さらに、複数のキャッシュ間の一致制御を実行できる、
（装置動作２）ー入出力装置内のメモリマップドレジスタへのアクセス
これらのレジスタには、図４の領域１００ｃが割り当てられている。本実施の形態では、この領域が割り当てられたいずれのメモリマップドレジスタに保持されたデータもキャッシング不可能と仮定している。したがって、これらのレジスタのいずれかに保持されたデータの読み出しにはＣＲｅａｄトランザクションと異なる、ノンキャッシュリード（ＮＲｅａｄ）トランザクションを用いる。キャッシュ制御、たとえば５−０、が生成するＮＲｅａｄトランザクションのフォーマットおよび送信部たとえば７−０で完成された後のＮＲｅａｄトランザクションのフォーマットは、ＣＲｅａｄトランザクションと同じであり、これらはＴｙｐｅフィールドの値のみが異なる。また、このようなメモリマップドレジスタへのデータの書き込みには、ノンキャッシュライト（ＮＷｒｉｔｅ）トランザクションを使用する。キャッシュ制御、たとえば５−０、が生成するＮＷｒｉｔｅトランザクションのフォーマットおよび送信部たとえば７−０で完成された後のＮＷｒｉｔｅトランザクションのフォーマットは、それぞれ図２（ｂ）および図３（ｂ）に示す通りであり、書き込むべきデータが含まれている。
【００５５】
さて、図４の領域１００ｃが割り当てられているいずれのメモリマップドレジスタ内のデータもキャッシング不可能であるので、これらのメモリマップドレジスタのいずれかをアクセスするときには、そのレジスタが含まれる入出力装置１０−０−１などに接続された入出力ユニット４−０または４−１にＮＲｅａｄ（あるいはＮＷｒｉｔｅ）トランザクションを送付すればよい。しかし、本実施の形態では、これらのレジスタのアクセスに当たっては、全ての入出力ユニット４−０および４−１にＮＲｅａｄ（あるいはＮＷｒｉｔｅ）トランザクションを送り、各ユニットに接続された入出力装置内で、そのトランザクションが指定するアドレスのレジスタがその入出力装置に含まれているか否かを判定するようになっている。その理由は以下の通りである。
【００５６】
すなわち、入出力ユニット４−０ないし４−１を介して接続する入出力装置は、本実施例に係るマルチプロセッサを出荷した後にも随時増設等の構成変更がありうる。ここで、送信部７−０ないし７−７に、実際にこのトランザクションを受理すべき入出力ユニットを特定するための回路を設けたとする。すると、入出力装置の構成変更のためこのアドレス領域へのメモリマップドレジスタのマッピングが変更されるたびにこの回路をＤＩＰスイッチ等により調整するか、オペレーティングシステムの起動時にこの回路をソフトウェア的に毎回初期設定できるようにする必要がある。前者の方法はユーザ自身による入出力装置の構成変更が困難になるという問題点がある。後者の方法では、このような回路を初期設定するためのプログラムをオペレーティングシステムに追加しなければならないという問題点がある。このために、上述のように全ての入出力ユニットにトランザクションを転送することにより、上述の問題点がなくなる。なお、このアドレス領域１００ｃに設けられるメモリマップドレジスタは、主に入出力装置１０−０−１等の起動やステータス表示などに用いられ、通常のメモリアクセスに比べアクセス頻度が低いという性質がある。そのため、このトランザクションを受理する可能性があるユニット、すなわち、全ての入出力ユニット４−０ないし４−１に対してトランザクションを転送（部分放送）してもシステムの性能はそれほど低下しない。さらに、全ての入出力ユニット４−０ないし４−１に対してこれらのトランザクションを送出する方が、送出先を決める回路がより簡単になるという利点もある。しかも、他のプロセッサユニット等には送付しないので、クロスバスイッチの並列転送能力を低下させることが少ない。
【００５７】
さて、これらのトランザクションの送信先の決定は、以下のようにされる。図６の送信部７−ｉ内の送信先決定回路７０−ｉでは、デコーダ２１がＮＲｅａｄあるいはＮｗｒｉｔｅトランザクションを解読し、デコーダ２２が、このトランザクション内のアドレスが領域１００ｃに属することを検出したときに、ＯＲ回路３６とＡＮＤ回路３３がパターン生成回路３７−５を起動する。この回路３７−５は、全ての入出力装置をトランザクションの送信先として指定するパターンを生成する。この結果、このトランザクションは、入出力ユニット４−０、４−１に送られる。
【００５８】
入出力ユニット４−０およびディスク装置１０−０−１の動作を説明する。入出力ユニット４−０では、受信部８−６は、クロスバスイッチ１から線ｃ−６を経由して送付されたＮＲｅａｄあるいはＮｗｒｉｔｅトランザクョンを受信すると、入出力アダプタ１３−０にこのトランザクションのＰＯＲＴ番号以外を線ｅー６を介して送付する。
【００５９】
図１６は入出力アダプタ１３−０とディスク装置１０−０−１の構成を示す。入出力アダプタ１３−０では、線ｅ−６から入力されたトランザクションのＰＯＲＴフィールド以外の部分を入力レジスタ２０１に格納する。格納された値のうち、トランザクションのＴＹＰＥ、ＭＩＳＣおよびＡＤＤＲＥＳＳフィールドをデコーダ２０３に入力し、デコーダ２０３は、このトランザクションの種類とアクセス先を判定する。
【００６０】
入力されたトランザクションがバスｈに接続するディスク装置１０−０−１等の入出力装置にあるメモリマップドレジスタのアドレスを含むＮＲｅａｄとＮＷｒｉｔｅである場合、または、これらの入出力装置がトランザクション組立回路２６３にて生成し、選択回路２５７、バスｈおよび選択回路２０７を経由してメモリユニット３−０または３−１に送付していたＮＲｅａｄへのＲｅｔｕｒｎトランザクションである場合には、デコーダ２０３は線Ｌ０４を介して出力レジスタに信号を送り、入力レジスタ２０１に保持された値を出力レジスタ２０２に転送させ、これをバスｈに出力させる。
【００６１】
２５１は入力レジスタ、２５３はデコーダである。２５４および２５５はディスク装置１０−０−１に設けられたメモリマップドレジスタのＲｅｇＣおよびＲｅｇＤである。ＲｅｇＣ２５４は、ここに設定された値によってディスク装置１０−０−１の動作が制御されるようなレジスタであり、図には１個のみ示されているが複数あっても構わない。なお、ここに設定された値によってディスク装置１０−０−１の動作が制御されるための信号線としてＬ１８を例示してある。ＲｅｇＤ２５５は、ディスク装置１０−０−１の内部状態を保持するレジスタであり、図には１個のみ示されているが複数あっても構わない。内部状態をこのレジスタに入力するための信号線としてはＬ１７を例示してある。また、２５６はＲｅｔｕｒｎトランザクション組立回路、２５７は選択回路である。
【００６２】
２６１はディスク制御回路、２６２はディスクドライブ、２６３はトランザクション組立回路である。ディスク制御回路２６１は、ディスクドライブの制御回路およびＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）制御回路を含み、ディスク制御回路２６１に入力された値をディスクドライブ２６２に書き込んだり、ディスクドライブ２６２から読み出した値をトランザクション組立回路２６３によってトランザクションにして出力する回路であり、公知技術にて構成される。
【００６３】
出力レジスタ２０２に保持された値がバスｈに出力されるとディスク装置１０−０−１は、これを入力レジスタ２５１に格納する。格納された値のうち、トランザクションのＴＹＰＥ、ＭＩＳＣおよびＡＤＤＲＥＳＳフィールドをデコーダ２５３に入力し、デコーダ２５３はこのトランザクションの種類とアクセス先を判定する。
【００６４】
入力されたトランザクションが、ＲｅｇＤ（２５５）のアドレスを指定したＮＲｅａｄであった場合には、デコーダ２５３が線Ｌ１２を介してＲｅｇＤ（２５５）に読みだし信号を送出する。するとＲｅｇＤ（２５５）は線Ｌ１６を介して保持している値をＲｅｔｕｒｎトランザクション組立回路２５６に出力する。一方、デコーダ２５３は線Ｌ１３を介してＲｅｔｕｒｎトランザクション組立回路２５６および選択回路２５７に信号を送り、ＲｅｇＤ（２５５）から読み出された値をＲｅｔｕｒｎトランザクションに組立て、バスｈに出力させる。このトランザクションはさらに選択回路２０７を経由して線ｄ−６に出力される。
【００６５】
入力されたトランザクションが、ＲｅｇＣ（２５４）のアドレスを指定したＮＷｒｉｔｅであった場合には、デコーダ２５３が線Ｌ１１を介してＲｅｇＣ（２５４）に書き込み信号を送出する。するとＲｅｇＣ（２５４）は入力レジスタ２５１に保持されている書き込みデータを取り込んで保持する。
【００６６】
入力されたトランザクションが、ディスク制御回路２６１がトランザクション組立回路２６３にて生成し、選択回路２５７、バスｈおよび選択回路２０７を経由してメモリユニット３−０または３−１に送付していたＮＲｅａｄへのＲｅｔｕｒｎトランザクションである場合には、デコーダ２５３は線Ｌ１４を介して出力レジスタに信号を送り、入力レジスタ２５１に保持された値をディスク制御回路２６１に読み込ませる。
【００６７】
（装置動作３）ーその他のメモリマップドレジスタへのアクセス
これらのレジスタは、本実施の形態ではプロセッサユニット２−０、２−１メモリユニット３−０、３−１、入出力ユニット４−０、４−１に含まれている。
【００６８】
これらのレジスタには、図４の領域１００ｂが割り当てられている。本実施の形態では、この領域が割り当てられたいずれのメモリマップドレジスタに保持されたデータもキャッシング不可能と仮定している。したがって、これらのレジスタのいずれかに保持されたデータのアクセスにはＮＲｅａｄトランザクションあるいはＮＷｒｉｔｅトランザクションを使用する。図４の領域１００ｂが割り当てられているいずれのメモリマップドレジスタ内のデータもキャッシング不可能であるので、これらのメモリマップドレジスタのいずれかをアクセスするときには、そのレジスタが現に含まれているユニットにＮＲｅａｄ（あるいはＮＷｒｉｔｅ）トランザクションを送付すればよい。しかし、本実施の形態では、これらのレジスタのアクセスに当たっては、プロセッサユニット２−０、２−１、メモリユニット３−０、３−１、入出力ユニット４−０、４−１の全てにＮＲｅａｄ（あるいはＮＷｒｉｔｅ）トランザクションを送るようになっている。その理由は以下の通りである。
【００６９】
このアドレス領域１００ｂに設けられるメモリマップッドレジスタはこのマルチプロセッサの電源投入直後に行なわれる初期化や、システム内部での障害発生状況のログを保持するようなレジスタが大半であり、システムの通常動作時にはほとんどアクセスされないという性質がある。そのため、実際にこのトランザクションを受理すべきユニットを特定せず、受理する可能性があるユニット、すなわち全てのユニットにこのトランザクションを転送してもシステム性能の低下を招く危険性はない。このことを利用して、トランザクションを送付すべき特定のユニットを決定する回路を使用しないことにし、ハードウェア量を低減した。とくに、この領域１００ｂ内の同じアドレスは、異なるユニットに属する複数のレジスタに割り当てることが出来る。その場合には、この送付先決定回路は、それだけ複雑になる。したがって、本実施の形態によれば、このような場合にハードウエアの軽減量が大きくなる。
【００７０】
さて、これらのトランザクションの送信先の決定は、以下のようにされる。図６の送信部７−ｉ内の送信先決定回路７０−ｉでは、デコーダ２１がＮＲｅａｄあるいはＮｗｒｉｔｅトランザクションを解読し、デコーダ２２が、このトランザクション内のアドレスが領域１００ｂに属することを検出したときに、ＯＲ回路３６とＡＮＤ回路３２がパターン生成回路３７−４を起動する。この回路３７−４は、プロセッサユニット２−０、２−１メモリユニット３−０、３−１、入出力ユニット４−０、４−１の全てをトランザクションの送信先として指定するパターンを生成する。この結果、このトランザクションは、これらの全てのユニットにクロスバスイッチ１により放送される。
【００７１】
このトランザクションの放送を受けたときの各ユニットの動作の説明を、入出力ユニット４−０を例にして図１６を参照して説明する。
【００７２】
２０４および２０５は入出力アダプタ１３−０に設けられたメモリマップドレジスタＲｅｇＡおよびＲｅｇＢである。ＲｅｇＡ（２０４）は、ここに設定された値によって入出力アダプタ１３−０の動作が制御されるようなレジスタであり、図には１個のみ示されているが複数あっても構わない。なお、ここに設定された値によって入出力アダプタ１３−０の動作が制御されるための信号線や回路は簡単のため図示していない。ＲｅｇＢ（２０５）は、入出力アダプタ１３−０の内部状態を検出するためのステータス検出回路２０８の出力を保持するレジスタであり、図には１個のみ示されているが複数あっても構わない。また、２０６はＲｅｔｕｒｎトランザクション組立回路、２０７は選択回路、２０９はＲｅｔｕｒｎ判定回路、２１０はＯＲ回路である。
【００７３】
入出力アダプタ１３−０では、線ｅ−６から入力されたトランザクションのＰＯＲＴフィールド以外の部分を入力レジスタ２０１に格納する。格納された値のうち、トランザクションのＴＹＰＥ、ＭＩＳＣおよびＡＤＤＲＥＳＳフィールドをデコーダ２０３に入力し、デコーダ２０３は、このトランザクションの種類とアクセス先を判定する。
【００７４】
入力されたトランザクションが、ＲｅｇＢ（２０５）のアドレスを指定したＮＲｅａｄであった場合には、デコーダ２０３が線Ｌ０２を介してＲｅｇＢ（２０５）に読みだし信号を送出する。するとＲｅｇＢ（２０５）は線Ｌ０６を介して保持している値をＲｅｔｕｒｎトランザクション組立回路２０６に出力する。一方、デコーダ２０３は線Ｌ０３を介してＲｅｔｕｒｎトランザクション組立回路２０６および選択回路２０７に信号を送り、ＲｅｇＢ（２０５）から読み出された値をＲｅｔｕｒｎトランザクションに組立て、線ｄ−６に出力させる。
【００７５】
入力されたトランザクションが、ＲｅｇＡ（２０４）のアドレスを指定したＮＷｒｉｔｅであった場合には、デコーダ２０３が線Ｌ０１を介してＲｅｇＡ（２０４）に書き込み信号を送出する。するとＲｅｇＡ（２０４）は入力レジスタ２０１に保持されている書き込みデータを取り込んで保持する。
【００７６】
以上の動作において、入力したトランザクョンがＮＲｅａｄでないため、これに起因するＲｅｔｕｒｎトランザクションを発生する必要がないとデコーダ２０３が判定した場合には、線Ｌ０５、ＯＲ回路２１０および線ｆ−０を経由してリセット信号を送信部７−６内のＰＯＲＴレジスタ４１に送り、ＰＯＲＴレジスタ４１をクリアする。その結果、受信部８−６は次のトランザクョンを受信できるようになる。Ｒｅｔｕｒｎトランザクョンを発生する必要がある場合には、Ｒｅｔｕｒｎトランザクョンを送信部７−６に線ｄ−６を介してＲｅｔｕｒｎトランザクションが送出するのをＲｅｔｕｒｎ判定回路２０９にて判定し、ＯＲ回路２１０および線ｆ−６を経由して、送信部７−６内のＰＯＲＴレジスタ４１をクリアする。このように制御することで、Ｒｅｔｕｒｎトランザクションを発生するときには、送信部７−６内のＰＯＲＴレジスタ４１にはＲｅｔｕｒｎトランザクョンの正当な送信先が格納されていることが保証される。
【００７７】
他のユニットに含まれるキャッシュ制御５−０等およびメモリバンク３−０ないし３−１等に含まれるおけるメモリマップドレジスタおよびそれに関する回路と動作は上記の動作と同様でありそれらの動作の説明は省略する
（装置動作４）ー主記憶内のキャッシング不可能なデータへのアクセス
本実施の形態では、このデータへのアクセスにもＮＲｅａｄあるいはんＷｒｉｔｅトランザクションを用いる。主記憶内のキャッシング不可能なデータは、いずれか一つのメモリユニットのみに保持されているので、各プロセッサユニットの送信部７−ｉは、このトランザクション内のアドレスにより一つの送信先のポート番号を決める。具体的には、図６のデコーダ２１、２２、２３とＯＲ回路３５、ＡＮＤ回路３０、３１がパターン発生回路３７−２、３７−３の一つを起動するようになっている。たとえば、パターン発生回路３７−２が起動されたときには、メモリユニット３−０がＮＲｅａｄトランザクションの送出先になる。このメモリユニットは、このトランザクションを受信すると、このトランザクションが要求するデータを含むＲｅｔｕｒｎトランザクションを要求元プロセッサユニットに返送する。また、主記憶内へのキャッシング不可能なデータの書き込みには、ＮＷｒｉｔｅトランザクションを使用する。
【００７８】
（装置動作５）ーその他のトランザクション
（４）  いずれかのプロセッサユニット内のキャッシュからブロックを主記憶に書き戻す必要が生じたときに、ライトバック（ＷｒｉｔｅＢａｃｋ）トランザクションが使用される。このトランザクションのフォーマットは、ＮＷｒｉｔｅトランザクションと同様であり、このトランザクションの実行時の装置動作は、上記装置動作（３）で記載した、キャッシング不可能な主記憶データの書き込みの場合と同じである。
【００７９】
＜実施の形態１の変形例＞
（１）実施の形態１では、プロセッサユニット、メモリユニットおよび入出力ユニットの数を、それぞれ４、２、２としているが、本発明が他の構成であっても実施可能であることは以上の説明から明らかである。
【００８０】
（２）実施の形態１では、キャッシュ制御５−０ないし５−３の制御方式としてストアインキャッシュを前提に説明したが、本発明を他の方式のキャッシュに適用することも容易である。また、トランザクション種は前述の５種類であると仮定したが、より多くのトランザクション種がある場合であっても本発明を拡張して適用することは容易である。
【００８１】
（３）実施の形態１では、送信部７−０ないし７−７の構成は全て同一であるとした。しかし、メモリユニット３−０および３−１がＣＲｅａｄ、ＮＲｅａｄ、ＮＷｒｉｔｅおよびＷｒｉｔｅＢａｃｋのトランザクョンを発生することはないので、送信部７−４ないし７−５から上記４種のトランザクョンに対応して動作する部分を削除しても構わないことは明らかである。同様に、入出力ユニット４−０および４−１がＣＲｅａｄおよびＷｒｉｔｅＢａｃｋトランザクョンを発生することはないので、送信部７−６ないし７−７から上記２種のトランザクョンに対応して動作する部分を削除しても構わないことも明らかである。
【００８２】
（４）実施の形態１では、プロセッサユニット２−０ないし２−３は、それぞれ１枚のプリント板に実装されていても構わないし、それぞれ１つのＬＳＩに実装されていても構わない。特に、プロセッサユニットが１つのＬＳＩに実装されているならば、プロセッサユニットＬＳＩをクロスバスイッチ１に直接接続することが可能なため、コンパクトなマルチプロセッサを提供することができる。さらに、線ｂ−ｉと線ｃ−ｉを従来技術にある双方向信号線を用いて時分割にインプリメントすることも容易であり、このようにすれば、プロセッサユニットからは線ａ−ｉと、線ｂ−ｉおよびｃ−ｉを時分割で実現する線によってクロスバスイッチと接続できるようになるため、ピン数が少なく安価なＬＳＩでプロセッサユニットを構成することができる。なお、上述のＲＥＱ［０−７］信号のパターンに８ビット信号の全ての組み合せがあらわれない性質を利用して、ＲＥＱ［０−７］信号を適当にエンコードすることで信号線ａ−ｉの本数を削減することも可能である。
【００８３】
＜発明の実施の形態２＞
第２の実施の形態の目的は、第１の実施の形態のマルチプロセッサをベースにし、これを安価に実現するためにクロスバスイッチをビットスライスされた複数の、同じ構造の大規模集積回路（ＬＳＩ）にて構成するものである。以下では、実施の形態２が実施の形態１と異なる点を中心に説明する。
【００８４】
第２の実施の形態に係るマルチプロセッサでは、図１１に示すように、各ユニットの送信部にビットスライス回路７１ー０、７１−１、、が設けられ、クロスバスイッチ１０１が、図１３に示すように、同一構造の複数のＬＳＩ８５−８８にて構成されている。
【００８５】
送信部１０７−ｉ（ｉ＝０、１、、、）は、図１２に示すように、送信先決定回路７０−ｉ、トランザクション組立回路７２−ｉとビットスライス回路７１−ｉとからなる。ビットスライス回路７１−ｉは、選択回路８０−０ないし８０−３からなる。各選択回路８０−０、、または８０−３には、送信先決定回路７０−ｉが出力するＲＥＱ［０−７］信号が線ａ−ｉより入力され、トランザクション組立回路７２−ｉが線ｂ−ｉに出力する８バイト幅のトランザクションがそれぞれ２バイトずつに分割されて入力される。図３に示したＲＥＡＤタイプのトランザクションを例にするならば、選択回路８０−０にはＴＹＰＥとＰＯＲＴフィールドからなる２バイトが、８０−１にはＭＩＳＣフィールドからなる２バイトが、８０−２にはＡＤＤＲＥＳＳフィールドの上位２バイトが、８０−３にはＡＤＤＲＥＳＳフィールドの下位２バイトが入力される。トランザクション組立回路７２−ｉは実施の形態１で使用されたものと同じであるが、送信先決定回路７０−ｉは、実施の形態１で使用されたコマンドと異なるコマンドｘ’−ｉを出力するように変形されている点で実施の形態１で使用されたものと異なる。
【００８６】
図１４は、このビットスライス回路７１−ｉの選択回路８０−０ないし８０−３により出力される４つの信号を示す。送信先決定回路７０−ｉはまず第１の値を有するコマンドを線ｘ’−ｉに送出し、選択回路８０−０ないし８０−３は、このコマンドに応答して、ＲＥＱ［０−７］を選択し、線ａｂ−ｉ−０から ｂ−ｉ−３に出力する。なお、ＲＥＱ［０−７］信号は８ビットであるのに対し、線ａｂ−ｉ−０から ｂ−ｉ−３はそれぞれ２バイト幅であるため、ＲＥＱ［０−７］信号を接続しない部分には０を出力する。次に、送信先決定回路７０−ｉは第２の値を有するコマンドを線ｘ’−ｉに送出し、選択回路８０−０ないし８０−３は、このコマンドに応答して、トランザクションの内の２バイト部分を選択する。以下、この動作をトランザクションの全体が選択されるまで繰り返す。
【００８７】
線ａｂ−ｉ−０から ｂ−ｉ−３に出力されたＲＥＱ［０−７］信号とトランザクションは、クロスバスイッチ１０１に入力される。
【００８８】
図１３はクロスバスイッチ１０１のＬＳＩ分割を示す。クロスバスイッチ１０１は、８５ないし８８の４個のＬＳＩから構成される。各ＬＳＩの各入力ポートは、対応する一つのユニットに２バイトの信号線で接続され、各ＬＳＩの各出力ポートも同様である。図１３のようにＬＳＩ分割を行なうと、ＬＳＩ８５ないし８８にて構成される第１スライスないし第４スライスには、図１４のような形式で線ａｂ−ｉ−０ないしａｂ−ｉ−３を経由してトランザクションが入力されることになる。
【００８９】
図１５はＬＳＩ８５の内部の構成を示す。このＬＳＩには図示のとおり、クロスバスイッチ１０１のポート０ないし７に対応して、入力ポート１５１−０ないし１５１−７と、出力ポート１５２−０ないし１５２−７がある。入力ポート１５１−０ないし１５１−７の構成は、図９に示した第１の実施の形態におけるクロスバスイッチの入力ポート５１−０ないし５１−７とほぼ同様であるが、各トランザクションレジスタ、たとえば１５４−０の幅が２バイトになっている点、このレジスタおよび対応するリクエスト制御たとえば５３−０への信号入力線が各ポート毎に設けられた共通の信号線、たとえば、ａｂ−０−０からなっている点、および実施の形態１で使用したコマンド異なるコマンドが線ｘ’−０、、またはｘ’−７より入力される点で実施の形態１と異なる。出力ポート１５２−０ないし１５２−７の構成は、図９に示した第１の実施の形態におけるクロスバスイッチの出力ポート５２−０ないし５２−７とほぼ同様であるが、選択回路１５６−０ないし１５６−７の幅が２バイトになっている点が異なる。
【００９０】
ここで、ポート０から線ａｂ−０−０を経由してＲＥＱ［０−７］信号とスライスされた４つのトランザクョン部分の一つが時分割で入力されると、まずリクエスト制御５３−０が、コマンドｘ’−０の第１の値に応答してＲＥＱ［０−７］信号を、リクエスト制御５３−０内にあるＲＥＱレジスタ６１にセットし、その後、トランザクションレジスタ１５４−０が、コマンドｘ’−０の第２の値に応答して、スライスされた一つのトランザクション部分を取り込む。その後の装置動作は、図９のクロスバスイッチと全く同様にして、スライスされたトランザクション部分が、ＲＥＱレジスタに格納された値に従って、線ｃ−０−０ないしｃ−７−０に出力される。他のＬＳＩにも全く同じＲＥＱ［０−７］信号が入力されているので、全く同じ動作をして、それぞれがスライスされたトランザクションを出力する。その結果、所望のユニットに線ｃ−０ないしｃ−７を経由して、トランザクョンの転送が完了する。なお、他の入力ポートにＲＥＱ［０−７］信号とトランザクションとが入力された場合の動作も、上記の説明と同様である。
【００９１】
以上のようにすれば、クロスバスイッチ１０１を構成するＬＳＩ相互間で転送の制御に関する信号をやりとりすることなくトランザクション転送を行なえる。また、ＲＥＱ［０−７］信号を各ＬＳＩへのデータパスに時分割多重によって転送しているため、クロスバスイッチ１０１を構成するためのＬＳＩのピンの大部分を、クロスバスイッチ１０１に接続する各ユニットとの接続に用いることができる。このことは、クロスバスイッチを最小の数のＬＳＩで構成できることを意味する。
【００９２】
また、クロスバスイッチを構成するためのＬＳＩの信号ピンが、例えば２７２ピンというふうにあらかじめ決められている中で、１６入力１６出力のクロスバＬＳＩを構成する場合には、（２７２−１６）÷（１６＋１６）＝８ビット、という計算に基づき８ビットスライスのクロスバＬＳＩを設計すればよいことになる。もしもこのように計算されるＬＳＩのスライス幅が、ＲＥＱ信号の幅を下回ったならば、ＲＥＱ信号を上述のような形式そのものでなく適当にエンコードすることで幅を狭めたり、ＲＥＱ信号自身を複数サイクルを利用して転送するように設計すればよい。
【００９３】
本実施の形態には、以上のような設計上の自由度があるので、ピン数は少ないが安価なＬＳＩを用いてクロスバスイッチ１０１を構成することができる。
【００９４】
＜実施の形態２の変形例＞
以上の説明では、クロスバスイッチを２バイト幅×４スライスに分割していたが、異なる分割をしても本発明が適用できることは明らかである。また、クロスバスイッチ１０１のポート数を８として説明したが、他のポート数にて本発明を実施可能なことも明らかである。
【００９５】
【発明の効果】
本願発明によれば、いずれかのプロセッサユニット内のキャッシュが出力するメモリアクセスをインタコネクトネットワークを用いて他のキャッシュが監視出来る。しかも、そのような監視を可能とし、それでいてキャッシュを含まない入出力ユニット等へ悪影響を少なくできる。
【００９６】
さらに、本願発明によれば、メモリマップドレジスタに対するアクセス要求の送出先を決める回路を簡単に出来る。とくに、入出力装置に含まれるメモリマップドレジスタへのアクセス要求を、その入出力装置に転送するための回路を簡単化できる。とくに、入出力装置の数あるいは組み合わせが変更された場合でも、アクセス要求で指定されたメモリマップドレジスタを含むいずれかの入出力装置にそのアクセス要求を転送するための回路を簡単化出来る。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るマルチプロセッサの全体構成図。
【図２】第１の実施の形態において使用される完成前のトランザクションのフォーマットを示す図。
【図３】図２のフォーマットから完成されたトランザクションのフォーマットを示す図。
【図４】第１の実施の形態で使用するアドレス空間の構成を示す図。
【図５】第１の実施の形態で使用するアドレスのフォーマットを示す図。
【図６】第１の実施の形態における送信部の詳細構成を示す図。
【図７】図６の送信部の動作説明を示す図。
【図８】第１の実施の形態における受信部の概略構成を示す図。
【図９】第１の実施の形態に使用するクロスバスイッチの詳細構成を示す図。
【図１０】図９のクロスバスイッチに使用するリクエスト制御の詳細構成を示す図。
【図１１】本発明の第２の実施の形態に係るマルチプロセッサの全体構成を示す図。
【図１２】第２の実施の形態に使用する送信部の詳細構成を示す図。
【図１３】第２の実施の形態に使用するクロスバスイッチのＬＳＩ分割方法を示す図。
【図１４】第２の実施の形態に使用するビットスライス化されたトランザクションのフォーマットを示す図。
【図１５】第２の実施の形態に使用するクロスバスイッチを構成するＬＳＩの詳細構成を示す図。
【図１６】第１の実施の形態に使用す入出力ユニットと入出力装置の概略構成を示す図。
【符号の説明】
４１…ＰＯＲＴレジスタ
【図１】
0003691134.tif 000002
【図２】
0003691134.tif 000003
【図３】
0003691134.tif 000004
【図４】
0003691134.tif 000005
【図５】
0003691134.tif 000006
【図６】
0003691134.tif 000007
【図７】
0003691134.tif 000008
【図８】
0003691134.tif 000009
【図９】
0003691134.tif 000010
【図１０】
0003691134.tif 000011
【図１１】
0003691134.tif 000012
【図１２】
0003691134.tif 000013
【図１３】
0003691134.tif 000014
【図１４】
0003691134.tif 000015
【図１５】
0003691134.tif 000016
【図１６】
0003691134.tif 000017