(57)【特許請求の範囲】
【請求項１】
複数のプロセッサと、メモリコントローラと、を有するマルチプロセッサシステムであって、
前記メモリコントローラと前記複数のプロセッサのそれぞれとの間を、それぞれ個別に接続することにより形成される複数の第１の通信経路と、
前記複数のプロセッサおよび前記メモリコントローラを、それぞれ順に接続することにより形成されるループ状の第２の通信経路と、を備え、
前記メモリコントローラおよび前記複数のプロセッサのそれぞれは、前記メモリコントローラと前記複数のプロセッサのそれぞれとの間を、前記第１の通信経路により、それぞれ個別に接続するための第１の通信コントローラと、前記複数のプロセッサおよび前記メモリコントローラを、前記第２の通信経路により、それぞれ順に接続するための第２の通信コントローラと、を備える
ことを特徴とするマルチプロセッサシステム。
【請求項２】
複数のプロセッサと、メモリコントローラと、キャッシュコントローラと、を有するマルチプロセッサシステムであって、
前記メモリコントローラと前記複数のプロセッサのそれぞれとの間、および、前記キャッシュコントローラと前記複数のプロセッサのそれぞれとの間、をそれぞれ個別に接続することにより形成される複数の第１の通信経路と、
前記複数のプロセッサ、前記メモリコントローラ、および、前記キャッシュコントローラを、それぞれ順に接続することにより形成されるループ状の第２の通信経路と、を備え、
前記メモリコントローラ、前記キャッシュコントローラ、および、前記複数のプロセッサは、前記メモリコントローラと前記複数のプロセッサのそれぞれとの間、および、前記キャッシュコントローラと前記複数のプロセッサのそれぞれとの間を、前記第１の通信経路により、それぞれ個別に接続するための第１の通信コントローラと、前記複数のプロセッサ、前記メモリコントローラ、および、前記キャッシュコントローラを、前記第２の通信経路により、それぞれ順に接続するための第２の通信コントローラと、を備える
ことを特徴とするマルチプロセッサシステム。
【請求項３】
請求項１または請求項２記載のマルチプロセッサシステムであって、
前記第２の通信経路は、あらかじめ定められている通信内容を、前記通信内容に応じた構造を有するデータとして伝送する、マルチプロセッサシステム。
【請求項４】
請求項３記載のマルチプロセッサシステムであって、
前記データはパケットデータである、マルチプロセッサシステム。
【請求項５】
請求項１ないし請求項４のいずれかに記載のマルチプロセッサシステムであって、
前記第１の通信経路は、あらかじめ定められている通信内容を、前記通信内容に応じた構造を有するデータとして伝送する、マルチプロセッサシステム。
【請求項６】
請求項１または請求項２記載のマルチプロセッサシステムであって、
前記第２の通信経路の配線数は、前記第１の通信経路の配線数よりも小さい、マルチプロセッサシステム。
【請求項７】
請求項１または請求項２記載のマルチプロセッサシステムであって、
前記第２の通信経路の通信速度は、前記第１の通信経路の通信速度よりも低い、マルチプロセッサシステム。
【請求項８】
請求項１ないし請求項７のいずれかに記載のマルチプロセッサシステムであって、
前記マルチプロセッサシステムは、１つの半導体基板上に集積化されている、マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムを構成する複数のプロセッサ、メモリコントローラ、およびキャッシュメモリ等のデバイスの接続に関する。
【背景技術】
【０００２】
マルチプロセッサシステムにおいて、その性能を最大限に高めるためには、その構成要素である複数のプロセッサや、メモリコントローラ、キャッシュコントローラ、Ｉ／Ｏインタフェース等のデバイスを、相互に直結したクロスバー接続とすることが好ましい（例えば、特許文献１〜４参照）。
【０００３】
【特許文献１】特開２００３−３３７８０５号公報
【特許文献２】特開２００１−３３８４９２号公報
【特許文献３】特開２０００−１３２５２７号公報
【特許文献４】特開平６−２３１０９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、クロスバー接続の場合、デバイスの数に応じてデバイス間を接続する配線数が増大し、限られた実装スペースでの実現が困難となる。また、１つのデバイスに対して任意の複数のデバイスが独立してアクセスすることになるため、同時に複数のアクセスが発生した場合におけるアービトレーションが必要となるが、デバイスの数が多くなれば、それに応じて制御も複雑になる。従って、複数のデバイスをクロスバー接続することは、デバイス数が多い場合には、現実的ではない。
【０００５】
本発明は、上述の課題を解決するためになされたものであり、複数のプロセッサ、メモリコントローラ、およびキャッシュメモリ等のマルチプロセッサを構成するデバイス間の接続を効果的に実現したマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題の少なくとも一部を解決するために、本発明の第１の態様は、
複数のプロセッサと、各プロセッサにより制御されるデバイスと、を有するメモリコントローラと、を有するマルチプロセッサシステムであって、
前記メモリコントローラと前記複数のプロセッサのそれぞれとの間を、それぞれ個別に接続することにより形成される複数の第１の通信経路と、
前記複数のプロセッサおよび前記メモリコントローラを、それぞれ順に接続することにより形成されるループ状の第２の通信経路と、を備える
ことを特徴とする。
【０００７】
上記構成では、複数のプロセッサおよびメモリコントローラの相互の接続を、ループ状の第２の通信経路により行っているので、クロスバー接続する場合の配線数に比べて削減することが可能となる。また、上記構成では、例えば、各プロセッサがメモリコントローラを介して実行するメモリへのデータの書き込みやメモリからのデータの読み出しは、個別に設けられた第１の通信経路を介して行い、各プロセッサ間での制御情報の伝達や、各プロセッサとメモリコントローラとの間での制御情報の伝達等は、ループ状の第２の通信経路を介して行う構成とすることができる。従って、上記構成によれば、複数のプロセッサおよびメモリコントローラ、の相互の接続を効果的に実現したマルチプロセッサシステムを提供することができる。
【０００８】
また、本発明の第２の態様は、
複数のプロセッサと、メモリコントローラと、キャッシュコントローラと、を有するマルチプロセッサシステムであって、
前記メモリコントローラと前記複数のプロセッサのそれぞれとの間、および、前記キャッシュコントローラと前記複数のプロセッサのそれぞれとの間、をそれぞれ個別に接続することにより形成される複数の第１の通信経路と、
前記複数のプロセッサ、前記メモリコントローラ、および、前記キャッシュコントローラを、それぞれ順に接続することにより形成されるループ状の第２の通信経路と、を備える
ことを特徴とする。
【０００９】
上記構成では、複数のプロセッサ、メモリコントローラ、および、キャッシュコントローラの相互の接続を、ループ状の第２の通信経路により行っているので、クロスバー接続する場合の配線数に比べて削減することが可能となる。また、上記構成では、例えば、各プロセッサがメモリコントローラを介して実行するメモリへのデータの書き込みやメモリからのデータの読み出しや、各プロセッサがキャッシュコントローラを介して実行するキャッシュメモリへのデータの書き込みやキャッシュメモリからのデータの読み出しは、個別に設けられた第１の通信経路を介して行い、各プロセッサ間での制御情報の伝達や、各プロセッサとメモリコントローラとの間や各プロセッサとキャッシュコントローラとの間での制御情報の伝達等は、ループ状の第２の通信経路を介して行う構成とすることができる。従って、上記構成によれば、複数のプロセッサ、メモリコントローラ、および、キャッシュコントローラの相互の接続を効果的に実現したマルチプロセッサシステムを提供することができる。
【００１０】
上記第１または第２の態様において、前記第２の通信経路は、あらかじめ定められている通信内容を、前記通信内容に応じた構造を有するデータとして伝送することができる。また、前記データはパケットデータであってもよい。
【００１１】
このようにすれば、第２の通信経路による通信を効率よく実行することが可能である。
【００１２】
また、前記第１の通信経路は、あらかじめ定められている通信内容を、前記通信内容に応じた構造を有するデータとして伝送することもできる。
【００１３】
このようにすれば、第１の通信経路による通信も効率よく実行することが可能である。
【００１４】
なお、上記第１または第２の態様において、前記第２の通信経路の配線数は、前記第１の通信経路の配線数よりも小さいことが好ましい。
【００１５】
例えば、各プロセッサがメモリコントローラを介して実行するメモリへのデータの書き込みおよびメモリからのデータの読み出しや、各プロセッサがキャッシュコントローラを介して実行するキャッシュメモリへのデータの書き込みおよびキャッシュメモリからのデータの読み出しの際に、第１の通信経路を伝送するデータ量が比較的多い場合には、第１の通信経路の配線数が比較的多い方が好ましい。また、各プロセッサ間での制御情報の伝達や、各プロセッサとメモリコントローラとの間や各プロセッサとキャッシュコントローラとの間での制御情報の伝達の際に、第２の通信経路を伝送するデータ量が比較的少ない場合には、第２の通信経路の配線数は比較的少なくてもよい。このような条件の場合において、上記構成とすれば効果的である。
【００１６】
また、前記第２の通信経路の通信速度は、前記第１の通信経路の通信速度よりも低いようにしてもよい。
【００１７】
例えば、各プロセッサがメモリコントローラを介して実行するメモリへのデータの書き込みおよびメモリからのデータの読み出しや、各プロセッサがキャッシュコントローラを介して実行するキャッシュメモリへのデータの書き込みおよびキャッシュメモリからのデータの読み出しの際に、第１の通信経路を伝送するデータ量が比較的多い場合には、比較的高速な伝送が好ましい。また、各プロセッサ間での制御情報の伝達や、各プロセッサとメモリコントローラとの間あるいは各プロセッサとキャッシュコントローラとの間での制御情報の伝達の際に、第２の通信経路を伝送するデータ量が比較的少なく、また、発生頻度も少ない場合には、比較的低速な伝送でもよい。このような条件の場合において、上記構成とすれば効果的である。
【００１８】
なお、上記第１および第２の態様のマルチプロセッサシステムは、１つの半導体基板上に集積化されているようにすれば、より効果的である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、実施例に基づき以下の順序で説明する。
Ａ．実施例：
Ａ１．マルチプロセッサシステムの構成：
Ａ２．効果：
Ｂ．変形例：
【００２０】
Ａ．実施例：
Ａ１．マルチプロセッサシステムの構成：
図１は、本発明の一実施例としてのマルチプロセッサシステムについて示す説明図である。このマルチプロセッサシステム１０は、複数のプロセッサを１つの半導体基板上に集積化したマイクロプロセッサである。各プロセッサは、それぞれ、ＣＰＵや、キャッシュメモリ、ＲＯＭ、ＲＡＭ、バスコントローラ等の周辺回路を含むユニットを意味している。なお、本実施例では、図に示すように、３つのプロセッサ２０Ａ〜２０Ｃで構成される場合を例に示している。また、このマルチプロセッサシステム１０は、その他、２次キャッシュメモリ(図中にはＬ２と略して表記されている)５０および２次キャッシュメモリ５０の動作を制御するキャッシュコントローラ４０と、外部に接続されるＲＡＭ６０へのアクセスを制御するメモリコントローラ３０と、を備えている。
【００２１】
各プロセッサ２０Ａ〜２０Ｃは、通信経路ＮＭ１Ａ〜ＮＭ３Ａを介して、それぞれ個別にメモリコントローラ３０に接続されており、通信経路ＮＭ１Ｂ〜ＮＭ３Ｂを介して、それぞれ個別にキャッシュコントローラ４０に接続されている。また、キャッシュコントローラ４０とメモリコントローラ３０とは、通信経路ＮＭ１Ａ〜ＮＭ３Ａ，ＮＭ１Ｂ〜ＮＭ３Ｂと同種類の通信経路ＮＭ４を介して接続されている。なお、各通信経路ＮＭ１Ａ〜ＮＭ３ＡおよびＮＭ１Ｂ〜ＮＭ３Ｂには、プロセッサからメモリコントローラへのリクエスト（ＲＥＱ）が伝送される経路と、メモリコントローラからプロセッサへのレスポンス（ＲＥＳ）が伝送される経路の２種類の経路で構成されている。なお、これら通信経路ＮＭ１Ａ〜ＮＭ３Ａ，ＮＭ１Ｂ〜ＮＭ３Ｂのそれぞれを特定する必要がない場合には、それぞれの通信経路を単に第１の通信経路ＮＭと呼ぶ場合もある。
【００２２】
なお、通信経路ＮＭ１Ａ〜ＮＭ３Ａは、より具体的には、各プロセッサ２０Ａ〜２０Ｃに備えられる通信コントローラ（図中にはＮＭＣと表記されている）２２Ａ〜２２Ｃと、メモリコントローラ３０に備えられる通信コントローラ（図中にはＮＭＣと表記されている）３２との間を接続しており、通信経路ＮＭ１Ａ〜ＮＭ３Ａを介して実行される通信は、それぞれの通信経路を介して接続されている通信コントローラによって制御される。また、通信経路ＮＭ１Ｂ〜ＮＭ３Ｂは、各プロセッサ２０Ａ〜２０Ｃに備えられる通信コントローラ２２Ａ〜２２Ｃと、キャッシュコントローラ４０に備えられる通信コントローラ（図中にはＮＭＣと表記されている）４２との間を接続しており、通信経路ＮＭ１Ｂ〜ＮＭ３Ｂを介して実行される通信は、それぞれの通信経路を介して接続されている通信コントローラによって制御される。
【００２３】
各プロセッサ２０Ａ〜２０Ｃは、それぞれ個別に設けられた通信経路ＮＭ１Ａ〜ＮＭ３Ａを介してメモリコントローラ３０と通信することができ、それぞれ個別に設けられた通信経路ＮＭ１Ｂ〜ＮＭ３Ｂを介してキャッシュコントローラ４０と通信することができる。
【００２４】
また、３つのプロセッサ２０Ａ〜２０Ｃと、メモリコントローラ３０と、キャッシュコントローラ４０とは、それぞれを順に接続することによりループ状に形成される第２の通信経路ＮＩＯを介して互いに接続されている。本実施例では、第１のプロセッサ２０Ａは通信経路ＮＩＯ１を介して第２のプロセッサ２０Ｂに接続され、第２のプロセッサ２０Ｂは通信経路ＮＩＯ２を介して第３のプロセッサ２０Ｃに接続され、第３のプロセッサ２０Ｃは通信経路ＮＩＯ３を介してメモリコントローラ３０に接続され、メモリコントローラ３０は通信経路ＮＩＯ４を介してキャッシュコントローラ４０に接続され、キャッシュコントローラ４０は通信経路ＮＩＯ５を介して第１のプロセッサ２０Ａに接続されている。すなわち、第２の通信経路ＮＩＯは、３つのプロセッサ２０Ａ〜２０Ｃ、メモリコントローラ３０、および、キャッシュコントローラ４０と、これらを接続する５つの通信経路ＮＩＯ１〜ＮＩＯ５によりループ状に形成されている。
【００２５】
なお、第２の通信経路ＮＩＯを構成する５つの通信経路ＮＩＯ１〜ＮＩＯ５は、より具体的には、各プロセッサ２０Ａ〜２０Ｃに備えられる通信コントローラ(図中にはＮＩＯＣと表記されている)２４Ａ〜２４Ｃ、メモリコントローラ３０に備えられる通信コントローラ(図中にはＮＩＯＣと表記されている)３４、および、キャッシュコントローラ４０に備えられる通信コントローラ(図中にはＮＩＯＣと表記されている)４４の間を、それぞれ接続しており、それぞれの通信経路を介して接続されている通信コントローラによって制御される。
【００２６】
各プロセッサ２０Ａ〜２０Ｃ、メモリコントローラ３０、およびキャッシュコントローラ４０は、ループ状の第２の通信経路ＮＩＯを介して互いに通信することができる。例えば、第１のプロセッサ２０Ａから第３のプロセッサ２０Ｃへの通信は、通信経路ＮＩＯ１、第２のプロセッサ２０Ｂ、および、通信経路ＮＩＯ２を介して第３のプロセッサ２０Ｃへ伝送される。
【００２７】
図２は、第１の通信経路ＮＭおよび第２の通信経路ＮＩＯを比較して示す説明図である。
【００２８】
第１の通信経路ＮＭは、メモリコントローラ３０を介して実行されるＲＡＭ６０へのデータの書き込みおよびＲＡＭ６０からのデータの読み出しを行うための通信経路として、また、キャッシュコントローラ４０を介して実行されるキャッシュメモリ５０へのデータの書き込みおよびキャッシュメモリ５０からのデータの読み出しを行うための通信経路として割り当てられる。したがって、第１の通信経路ＮＭは、大容量のデータを高速に伝送することを考慮して、データ線の配線幅を１２８ビットとし、転送速度を６６６ＭＢ／ｓとしている。ただし、この配線幅や転送速度に限定されるものではない。
【００２９】
一方、第２の通信経路ＮＩＯは、各プロセッサ間でのメッセージ通信や、各プロセッサからメモリコントローラやキャッシュコントローラへのメッセージ通信のための通信経路として割り当てられている。メッセージ通信により伝送される情報は、例えば、送信元から送信先に送られるデータを、ＲＡＭ６０に確保される通信用メモリのアドレスに書き込むためのライトリクエストメッセージや、通信用メモリに書き込まれているデータを読み出すためのリードリクエストメッセージ、これらのリクエストメッセージに対するレスポンスメッセージ等である。なお、第２の通信回路ＮＩＯは、第１の通信経路ＮＭほどの大容量のデータを伝送する必要はなく、また、高速性も要求されないことを考慮して、データ線の配線幅を比較的小さい３２ビットとし、転送速度を比較的低速な１００ＭＢ／ｓとしている。ただし、この配線幅や転送速度に限定されるものではない。
【００３０】
図３は、第２の通信経路ＮＩＯを介して伝送される情報のデータ構造について示す説明図である。第２の通信経路ＮＩＯは、上述したように、メッセージ通信を実行するための通信経路であり、そのための通信内容（通信の種別）として、例えば、ライトリクエスト、ライトＡＣＫレスポンス、リードリクエスト、および、リードレスポンスがある。
【００３１】
上記したように、第２の通信経路ＮＩＯのデータ線の配線幅は３２ビット（４バイト）とされているので、４バイト単位でデータの送受信が実行される。
【００３２】
図３に示すように、第２の通信経路ＮＩＯを介して伝送される情報のデータ構造は、８バイトの固定長を有しており、いわゆるパケットのデータ構造を有している。最初の４バイトのうち、前半の２バイトが送信先のＩＤおよび送信元のＩＤ等を含む制御情報部分、後半の２バイトがＲＡＭ６０に確保される通信用メモリのアドレス情報部分に割り当てられている。残りの４バイトは、通信用メモリを用いずに直接書き込みあるいは読み出しを行う場合のデータ部分に割り当てられている。なお、通信用メモリを用いない場合におけるアドレス情報部分は、直接データの書き込みあるいは読み出しを実行するメモリやレジスタのアドレスを示す。
【００３３】
なお、制御情報部分の最初の３ビットの部分（ＴＹＰＥ）は、通信内容の種別を示す部分であり、図３はライトリクエストに対応するコマンド「ＷＲ＿ＲＥＱ」が記述されている場合を示している。そして、次の３ビットの部分（Ｄｓｉｚｅ）はライトデータまたはリードデータのデータサイズを示す部分であり、ライトリクエストの場合にはライトデータのサイズとして「４バイト」を示す値が記述されている。さらに、次の５ビットの部分（ＤＩＤ）はリクエストを受ける側（送信先）のＩＤを示す部分であり、さらに次の５ビットの部分（ＳＩＤ）はリクエストを出す側（送信元）のＩＤを示す部分である。
【００３４】
ここで、例えば、第１のプロセッサ２０Ａから第３のプロセッサ２０Ｃに対して通信を行う場合を考える。
【００３５】
まず、第１のプロセッサ２０Ａから送出されたデータのうち、制御情報部分に含まれるＤＩＤには送信先である第３のプロセッサ２０Ｃを示すＩＤが記述され、ＳＩＤには送信元である第１のプロセッサ２０Ａを示すＩＤが記述される。
【００３６】
このとき、第２のプロセッサ２０Ｂでは、第１のプロセッサ２０Ａから送出されたデータの制御情報部分に記述されているＤＩＤが自分のＩＤと一致するか否か判断する。ＤＩＤに記述されているＩＤは、第３のプロセッサ２０Ｃに対応するものであるので、そのまま第３のプロセッサ２０Ｃに向けて送出する。
【００３７】
そして、第３のプロセッサ２０Ｃでも、第２のプロセッサ２０Ｂと同様に、第２のプロセッサ２０Ｂから送出されたデータの制御情報部分に記述されているＤＩＤが、自分のＩＤと一致するか否かを判断する。ここでは、第３のプロセッサ２０Ｃは、自分のＩＤと一致するので、第３のプロセッサ２０Ｃは受信したデータを取得する。
【００３８】
こうして、第１のプロセッサ２０Ａから第３のプロセッサ２０Ｃへの通信が実行される。
【００３９】
図４は、第１の通信経路ＮＭによって伝送されるデータ構造について示す説明図である。第１の通信経路ＮＭは、上述したように、ＲＡＭ６０への書き込みデータやＲＡＭ６０からの読み出しデータ、あるいは、キャッシュメモリ５０への書き込みデータやキャッシュメモリ５０からの読み出しデータを、メッセージ通信と同様の形式で伝送するための通信経路であり、そのための通信内容（通信の種別）として、ライトリクエスト、リードリクエスト、リードレスポンス、および、ＡＣＫリクエスト、が用意されている。
【００４０】
上記したように、第１の通信経路ＮＭのデータ線の配線幅は１２８ビット（１６バイト）とされているので、１６バイト単位でデータの送受信が実行される。
【００４１】
図４は、ライトリクエストに対応するデータ構造を示しており、ライトデータとして６４バイトのデータを含んでいる場合を示している。
【００４２】
図４に示すように、ライトリクエストの場合のデータ構造は、最初の１６バイトのうち、最初の４バイトが制御情報部分、次の４バイトがＲＡＭ６０のアドレス情報部分、残りの８バイトは空き領域部分に割り当てられている。
【００４３】
なお、制御情報部分の最初の３ビットの部分（ＴＹＰＥ）は、通信内容の種別を示す部分であり、図４はライトリクエストの場合を示しているので、ライトリクエストに対応するコマンド「ＷＲ＿ＲＥＱ」が記述されている。そして、次の３ビットの部分（Ｄｓｉｚｅ）はライトデータまたはリードデータのデータサイズを示す部分であり、ライトリクエストの場合にはライトデータのサイズとして「１」，「２」，「４」，「８」，「１６」，「３２」，「６４」のうちいずれかの値、ここでは最大の「６４」が記述されている。さらに、次の５ビットの部分（ＤＩＤ）はリクエストを受ける側のＩＤを示す部分であり、さらに次の５ビットの部分（ＳＩＤ）はリクエストを出す側のＩＤを示す部分である。そして、さらに次の６ビットの部分（ＴＩＤ）はトランザクションＩＤを示す部分である。なお、残りの９ビットの部分（Ｒｅｓｅｒｖｅｄ）は予備の領域である。
【００４４】
そして、次の１６バイト以降に割り当てられている領域は、Ｄｓｉｚｅに記載されているバイト数に応じたデータ領域である。
【００４５】
なお、リードリクエストの場合のデータ構造は、図４に示したライトリクエストのデータ構造のうち、最初の１６バイトのみを有するデータ構造となる。また、リードレスポンスの場合のデータ構造は、図４に示したライトリクエストのデータ構造のうち、最初の１６バイトのデータはなく、リードリクエスト中のデータサイズに対応するデータのみを有するデータ構造となる。また、ＡＣＫリクエストは、図４に示したライトリクエストのデータ構造のうち、最初の１６バイトのうちの最初の４バイトの制御情報部分のみを有するデータ構造となる。
【００４６】
以上説明した構成を有するマルチプロセッサシステム１０では、各プロセッサ２０Ａ〜２０Ｃは、それぞれ個別に設けられた第１の通信経路ＮＭ（通信経路ＮＭ１Ａ〜ＮＭ３Ａ）を介して、それぞれ個別にＲＡＭ６０へのデータの書き込みやＲＡＭ６０からのデータの読み出しを行うことができる。同様に、各プロセッサ２０Ａ〜２０Ｃは、それぞれ個別に設けられた第１の通信経路（通信経路ＮＭ１Ｂ〜ＮＭ３Ｂ）を介して、それぞれ個別にキャッシュメモリ５０へのデータの書き込みやキャッシュメモリ５０からのデータの読み出しを行うことができる。
【００４７】
また、各プロセッサ２０Ａ〜２０Ｃ、メモリコントローラ３０、およびキャッシュコントローラ４０は、ループ状の通信経路ＮＩＯを介して、種々の制御情報をそれぞれに対応するレジスタへ書き込むためのライトリクエストやレジスタに書き込まれている制御情報を読み出すためのリードリクエスト、これらのリクエストに応答するためのレスポンス等の情報を通信することができる。例えば、第１のプロセッサ２０Ａが第２のプロセッサ２０Ｂの所定のレジスタにデータを書き込むことにより、第２のプロセッサの動作を制御することができる。また、例えば、第１のプロセッサ２０Ａがメモリコントローラ３０の所定のレジスタにデータを書き込むことにより、メモリコントローラの動作条件を設定し、メモリコントローラ３０の動作を制御することができる。
【００４８】
Ａ２．効果：
以上説明したように、上記実施例のマルチプロセッサシステム１０では、複数のプロセッサ２０Ａ〜２０Ｃ、メモリコントローラ３０、および、キャッシュコントローラ４０の相互の接続を、複数のプロセッサ２０Ａ〜２０Ｃ、メモリコントローラ３０、および、キャッシュコントローラ４０を、それぞれ順に接続することにより形成されるループ状の通信経路ＮＩＯにより行う構成としている。
【００４９】
そして、各プロセッサ２０Ａ〜２０Ｃがメモリコントローラ３０を介して実行するＲＡＭ６０へのデータの書き込みやＲＡＭ６０からのデータの読み出しは、それぞれ個別に設けられた通信経路ＮＭ１Ａ〜ＮＭ３Ａを介して行い、また、各プロセッサ２０Ａ〜２０Ｃがキャッシュコントローラ４０を介して実行するキャッシュメモリ５０へのデータの書き込みやキャッシュメモリ５０からのデータの読み出しは、それぞれ個別に設けられた通信経路ＮＭ１Ｂ〜ＮＭ３Ｂを介して行い、各プロセッサ２０Ａ〜２０Ｃ間の通信や、各プロセッサ２０Ａ〜２０Ｃがメモリコントローラ３０やキャッシュコントローラ４０の動作を制御するために実行する通信、例えば、動作条件等の設定のための通信等は、ループ状の通信経路ＮＩＯを介して行う構成としている。
【００５０】
従って、上記実施例のマルチプロセッサによれば、複数のプロセッサ、メモリコントローラ、および、キャッシュコントローラの相互の接続をクロスバー接続する場合に比べて、効果的に接続することが可能である。
【００５１】
Ｂ．変形例：
以上、本発明の実施の形態について説明したが、本発明はこのような実施の形態になんら限定されるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。例えば、以下のような変形が可能である。
【００５２】
上記実施例では、第１のプロセッサ２０Ａを通信経路ＮＩＯ１を介して第２のプロセッサ２０Ｂに接続し、第２のプロセッサ２０Ｂを通信経路ＮＩＯ２を介して第３のプロセッサ２０Ｃに接続し、第３のプロセッサ２０Ｃを通信経路ＮＩＯ３を介してメモリコントローラ３０に接続し、メモリコントローラ３０を通信経路ＮＩＯ４を介してキャッシュコントローラ４０に接続し、キャッシュコントローラ４０を通信経路ＮＩＯ５を介して第１のプロセッサ２０Ａに接続することにより、３つのプロセッサ２０Ａ〜２０Ｃと、メモリコントローラ３０と、キャッシュコントローラ４０と、を、ループ状の通信経路ＮＩＯを介して互いに接続する構成としている。しかしながら、３つのプロセッサ２０Ａ〜２０Ｃと、メモリコントローラ３０と、キャッシュコントローラ４０とが、それぞれを一つずつ順に接続することにより形成されるループ状態の通信経路ＮＩＯを介して互いに接続されるようにすれば、その接続順は限定されるものではない。
【００５３】
上記実施例では、３つのプロセッサとメモリコントローラとキャッシュコントローラとを備えるマルチプロセッサシステムを例に示したが、これに限定されるものではなく、複数のプロセッサとメモリコントローラとキャッシュメモリとを備えるマルチプロセッサシステムとすることができる。また、キャッシュメモリは必ずしも必須の構成要素ではない。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施例としてのマルチプロセッサシステムについて示す説明図である。
【図２】第１の通信経路ＮＭおよび第２の通信経路ＮＩＯを比較して示す説明図である。
【図３】第２の通信経路ＮＩＯを介して伝送される情報のデータ構造について示す説明図である。
【図４】第１の通信経路ＮＭによって伝送されるデータ構造について示す説明図である。
【符号の説明】
【００５５】
１０…マルチプロセッサシステム
２０Ａ〜２０Ｃ…プロセッサ
２２Ａ〜２２Ｃ…通信コントローラ（ＮＭＣ）
２４Ａ〜２４Ｃ…通信コントローラ（ＮＩＯＣ）
３０…メモリコントローラ
３２…通信コントローラ（ＮＭＣ）
３４…通信コントローラ（ＮＩＯＣ）
４０…キャッシュコントローラ
４２…通信コントローラ（ＮＭＣ）
４４…通信コントローラ（ＮＩＯＣ）
５０…キャッシュメモリ
６０…ＲＡＭ
ＮＭ…第１の通信経路
ＮＭ１Ａ〜ＮＭ３Ａ…通信経路
ＮＭ１Ｂ〜ＮＭ３Ｂ…通信経路
ＮＩＯ…第２の通信経路
ＮＩＯ１〜ＮＩＯ５…通信経路
【図１】
0004760301.tif 000002
【図２】
0004760301.tif 000003
【図３】
0004760301.tif 000004
【図４】
0004760301.tif 000005