(57)【要約】【課題】先入れ先出し方式のバッファーをより適切に構成して効率的にリクエストを中継する。【解決手段】転送元であるマスターデバイス３０側からのリクエストの分配を行なうＴブリッジ４２と、Ｔブリッジ４２から分配されたリクエストを転送先であるスレーブデバイス８０側に転送するＩブリッジ４６とを備えて通信を中継するクロスバースイッチ４０において、Ｔブリッジ４２のＴ−Ｂ０内に各スレーブデバイスの共用のＦＩＦＯ４３ａを構成し、Ｔブリッジ４２とＩブリッジ４６との間に各スレーブデバイスの専用のＦＩＦＯ４５ａ〜４５ｃを構成するから、転送先のスレーブデバイスが受け入れ可能な状態になくリクエストの転送待ちが生じる場合であっても、他のスレーブデバイスに転送されるリクエストが転送待ちとなるのを減少させることができる。【選択図】図２
2011248563.tif 000002
【特許請求の範囲】
【請求項１】
転送元から入力した通信データを一時的に保存して、複数の転送先のうちから選択した転送先が受け入れ可能なタイミングで前記保存した通信データを出力する中継装置であって、
前記複数の転送先別に先入れ先出し方式で前記入力した通信データを保存する複数の専用のバッファーを備える
ことを特徴とする中継装置。
【請求項２】
前記複数の専用のバッファーは、対応する転送先における前記通信データの処理速度が速いほど容量が小さく構成されてなる請求項１記載の中継装置。
【請求項３】
前記転送先に拘わらず前記入力した通信データを保存する共用のバッファーを備える請求項１または２記載の中継装置。
【請求項４】
前記複数の専用のバッファーは、前記複数の転送先のうち前記通信データの処理速度が最も速い転送先に対応するバッファーを省略して構成されてなる請求項３記載の中継装置。
【請求項５】
請求項３または４記載の中継装置であって、
前記転送元に一対一で接続され、該転送元からの通信データを入力して前記転送先に応じて振り分ける第１の中継器と、
前記複数の転送先に一対一で接続されると共に前記第１の中継器に接続され、該第１の中継器により振り分けられた通信データを入力して前記転送先に出力する第２の中継器と
を備え、
前記共用のバッファーは、前記第１の中継器による振り分け前の通信データを保存し、
前記専用のバッファーは、前記第１の中継器により振り分けられて前記第２の中継器に入力される前の通信データを保存する
中継装置。
【請求項６】
前記転送元としてのマスターデバイスと前記転送先としての複数のスレーブデバイスとを有し、請求項１ないし５いずれか１項に記載の中継装置が組み込まれてなるプロセッサーシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送元から入力した通信データを一時的に保存して、複数の転送先のうちから選択した転送先が受け入れ可能なタイミングで前記保存した通信データを出力する中継装置およびこの中継装置が組み込まれてなるプロセッサーシステムに関する。
【背景技術】
【０００２】
従来より、プロセッサーやメモリーコントローラー，Ｉ／Ｏインターフェースなどの複数のデバイスからなるプロセッサーシステムが提案されている（例えば、特許文献１参照）。このシステムでは、中継装置としてのクロスバースイッチでマスターデバイスと複数のスレーブデバイスとを接続し、マスターデバイスとクロスバースイッチとの間にリクエストのデータを一時的に蓄えるＦＩＦＯ（First In First Out，先入れ先出し方式）バッファーを配置している。そして、マスターデバイスからＦＩＦＯバッファーとクロスバースイッチとを経由して各スレーブデバイスにリクエストを転送するものとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３３７８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したプロセッサーシステムにおいては、転送先がいずれのスレーブデバイスであるかに拘わらず、すべてのリクエストが１つのＦＩＦＯバッファーを経由する。このため、処理速度の遅いスレーブデバイスへのリクエストが連続すると、ＦＩＦＯバッファー内の先頭のリクエストが出力されない場合がある。その場合、後続の他のスレーブデバイスへのリクエストも転送待ちとなってしまう。近年、この種のプロセッサーシステムでは、搭載される機器の多機能化などに伴って、デバイスの積載数が増加する傾向にあり、処理速度の遅いデバイスが混在することもあるから、そのような転送待ちが頻発してシステム全体の処理が遅くなるおそれがある。
【０００５】
本発明の中継装置およびプロセッサーシステムは、先入れ先出し方式のバッファーをより適切に構成して効率的に通信データを中継することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の中継装置およびプロセッサーシステムは、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の中継装置は、
転送元から入力した通信データを一時的に保存して、複数の転送先のうちから選択した転送先が受け入れ可能なタイミングで前記保存した通信データを出力する中継装置であって、
前記複数の転送先別に先入れ先出し方式で前記入力した通信データを保存する複数の専用のバッファーを備える
ことを特徴とする。
【０００８】
この本発明の中継装置では、複数の転送先別に先入れ先出し方式で入力した通信データを保存する複数の専用のバッファーを備える。これにより、転送先が受け入れ可能な状態になく通信データの出力待ちが生じる場合であっても他の転送先に出力される通信データが出力待ちとなるのを防止することができ、効率的に通信データを中継することができる。
【０００９】
こうした本発明の中継装置において、前記複数の専用のバッファーは、対応する転送先における前記通信データの処理速度が速いほど容量が小さく構成されてなるものとすることもできる。こうすれば、転送先別に専用のバッファーを備えるものとしても、全体のバッファーの容量を抑えることができ、リソースの増加を抑制することができる。このため、通信データの出力待ちの減少とリソースの増加の抑制とを両立させることができ、先入れ先出し方式のバッファーをより適切に構成して効率的に通信データを中継することができる。
【００１０】
また、本発明の中継装置において、前記転送先に拘わらず前記入力した通信データを保存する共用のバッファーを備えるものとすることもできる。これにより、専用のバッファーに必要とされる容量の一部を共用のバッファーで対応することができるから、全体のバッファーの容量をより抑えることができる。この態様の本発明の中継装置において、前記複数の専用のバッファーは、前記複数の転送先のうち前記通信データの処理速度が最も速い転送先に対応するバッファーを省略して構成されてなるものとすることもできる。こうすれば、全体のバッファーの容量をさらに抑えることができる。なお、最も速い転送先に対応するバッファーを省略しても、共用のバッファーで通信データを保存することができ、その際の転送待ちの時間も短くてすむから、転送待ちの問題が顕在化するおそれは少ない。これらの態様の本発明の中継装置において、前記転送元に一対一で接続され、該転送元からの通信データを入力して前記転送先に応じて振り分ける第１の中継器と、前記複数の転送先に一対一で接続されると共に前記第１の中継器に接続され、該第１の中継器により振り分けられた通信データを入力して前記転送先に出力する第２の中継器とを備え、前記共用のバッファーは、前記第１の中継器による振り分け前の通信データを保存し、前記専用のバッファーは、前記第１の中継器により振り分けられて前記第２の中継器に入力される前の通信データを保存するものとすることもできる。
【００１１】
本発明のプロセッサーシステムは、前記転送元としてのマスターデバイスと前記転送先としての複数のスレーブデバイスとを有し、上述した態様のいずれかの中継装置が組み込まれてなることを要旨とする。
【００１２】
この本発明のプロセッサーシステムでは、上述のいずれかの態様の本発明の中継装置が組み込まれてなるから、本発明の中継装置が有する効果、例えば、先入れ先出し方式のバッファーをより適切に配置して効率的に通信データを中継することができる効果などを奏することができる。
【図面の簡単な説明】
【００１３】
【図１】マルチプロセッサーシステム２０の構成の概略を示す構成図。
【図２】クロスバースイッチ４０のリクエスト転送用の構成図。
【図３】クロスバースイッチ４０のレスポンス転送用の構成図。
【図４】比較例におけるトランザクション処理時間を示す説明図。
【図５】本実施形態におけるトランザクション処理時間を示す説明図。
【図６】変形例のクロスバースイッチ４０Ａのリクエスト転送用の構成図。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本発明の一実施形態である中継装置を備えたマルチプロセッサーシステム２０の構成の概略を示す構成図である。このマルチプロセッサーシステム２０は、マスターデバイス３０（Ｍａｓｔｅｒ０，１）やスレーブデバイス８０（Ｓｌａｖｅ０，１，２）などの複数のデバイス（プロセッサー）を図示しない基板上に集積化したものである。なお、マスターデバイス３０としては、メインプロセッサーやダイレクトメモリーアクセスコントローラーなどが該当し、スレーブデバイス８０としては、各種Ｉ／Ｏデバイスやメモリーコントローラーなどが該当する。ここで、マスターデバイス３０の各Ｍａｓｔｅｒは、処理能力が異なるものとする。具体的には、Ｍａｓｔｅｒ０は、スレーブデバイス８０側からの確認応答なく連続的にリクエストを出力可能な数である最大アウトスタンディング数（アウトスタンディングディプス，以下、ＯＳＤとする）がＭａｓｔｅｒ１よりも大きなものとする。本実施形態では、一例として、Ｍａｓｔｅｒ０のＯＳＤを値４，Ｍａｓｔｅｒ１のＯＳＤを値１とする。また、スレーブデバイス８０の各Ｓｌａｖｅはその処理能力（速度）が異なり、Ｓｌａｖｅ２，１，０の順に処理能力（速度）が低下するもの即ちＳｌａｖｅ２，１，０の順にリクエストに対する処理時間が長くなるものとする。
【００１５】
このマルチプロセッサーシステム２０においては、マスターデバイス３０側とスレーブデバイス８０側とが、プロトコルブリッジ３５（Ｐ−Ｂｍ０，Ｐ−Ｂｍ１）とクロスバースイッチ４０とプロトコルブリッジ７５（Ｐ−Ｂｓ０，Ｐ−Ｂｓ１，Ｐ−Ｂｓ２）とを介して接続されている。プロトコルブリッジ３５やプロトコルブリッジ７５の各プロトコルブリッジは、デバイス毎に異なるプロトコルを共通のパケットに変換してクロスバースイッチ４０に転送したり、共通のパケットをデバイス毎のプロトコルに変換して各デバイスに転送したりする。なお、本発明の中継装置としては、クロスバースイッチ４０が該当する。
【００１６】
クロスバースイッチ４０は、マスターデバイス３０側からのリクエストの分配およびスレーブデバイス８０側からのレスポンスの収集を行なうターゲットブリッジ（Target-Bridge，以下Ｔブリッジとする）４２（Ｔ−Ｂ０，Ｔ−Ｂ１）と、リクエストの調停やレスポンスの分配を行なうイニシエーターブリッジ（Initiator-Bridge、以下Ｉブリッジとする）４６（Ｉ−Ｂ０，Ｉ−Ｂ１，Ｉ−Ｂ２）とを備える。Ｔブリッジ４２のうち、Ｔ−Ｂ０はＰ−Ｂｍ０を介してＭａｓｔｅｒ０に接続され、Ｔ−Ｂ１はＰ−Ｂｍ１を介してＭａｓｔｅｒ１に接続されている。また、Ｉブリッジ４６のうち、Ｉ−Ｂ０はＰ−Ｂｓ０を介してＳｌａｖｅ０に接続され、Ｉ−Ｂ１はＰ−Ｂｓ１を介してＳｌａｖｅ１に接続され、Ｉ−Ｂ２はＰ−Ｂｓ２を介してＳｌａｖｅ２に接続されている。そして、Ｔ−Ｂ０とＩ−Ｂ０，Ｉ−Ｂ１，Ｉ−Ｂ２とがそれぞれ接続されると共にＴ−Ｂ１とＩ−Ｂ０，Ｉ−Ｂ１，Ｉ−Ｂ２とがそれぞれ接続されている。このクロスバースイッチ４０の構成の詳細を図２，３に示す。図２は、クロスバースイッチ４０のリクエスト転送用の構成図であり、図３は、レスポンス転送用の構成図であり、これらは図示の便宜上分けて示した。ここで、図２，３中の太線はリクエストのデータやレスポンスのデータを転送する配線（データ線）を示し、細線はレディ（Request Ready,Response Ready)やバリッド（Request Valid,Response Valid)などの制御信号を伝送する配線（制御信号線）を示す。また、図示の便宜上、クロスバースイッチ４０内では、Ｔ−Ｂ０に繋がる配線を実線で、Ｔ−Ｂ１に繋がる配線を点線で示す。
【００１７】
このクロスバースイッチ４０は、リクエスト転送用の構成として、図２に示すように、Ｔブリッジ４２の各Ｔ−Ｂが有するリクエスト転送部４３と、Ｔブリッジ４２とＩブリッジ４６との間でリクエストを保存するバッファー群４５と、Ｉブリッジ４６の各Ｉ−Ｂが有するリクエスト転送部４７とを備える。
【００１８】
各Ｔ−Ｂのリクエスト転送部４３には、対応するマスターデバイス３０（プロトコルブリッジ３５）側からデータ線と制御信号線とが各１本ずつ入力し、リクエスト転送部４３からは、各Ｉ−Ｂに繋がる複数（３本）の制御信号線が出力すると共に１本のデータ線が出力している。なお、出力されたデータ線は、出力後に分岐して各Ｉ−Ｂに接続されている。また、Ｔ−Ｂ０のリクエスト転送部４３には、Ｍａｓｔｅｒ０から出力されるリクエストが、転送先のＳｌａｖｅに拘わらず先入れ先出し方式で保存される各Ｓｌａｖｅの共用のバッファーとしての２段のＦＩＦＯ４３ａが構成されている。ＦＩＦＯ４３ａの段数は、保存可能なリクエストの数を示す。なお、Ｔ−Ｂ１のリクエスト転送部４３には、バッファーは設けられていないが、これは、Ｍａｓｔｅｒ０とＭａｓｔｅｒ１とのＯＳＤの違いによるものである。このリクエスト転送部４３は、マスターデバイス３０側からのリクエストが入力されると、アドレスデコードによりアドレスを読み出してリクエスト先のデバイス（スレーブデバイス８０）を判定すると共に判定したリクエスト先のデバイスに繋がるＩブリッジ４６（Ｉ−Ｂ０〜２のいずれか）を図示しないアドレスマップを参照して選択し、選択したＩブリッジ４６に接続された制御信号線に制御信号を出力すると共にデータ線からリクエストデータを出力する。なお、リクエスト転送部４３から出力されるデータは、制御信号線に出力される制御信号に従って転送先のＩ−Ｂに転送される。
【００１９】
バッファー群４５は、Ｔ−Ｂ０とＩ−Ｂ０との接続経路に構成される２段のＦＩＦＯ４５ａと、Ｔ−Ｂ１とＩ−Ｂ０との接続経路に構成される１段のＦＩＦＯ４５ｂと、Ｔ−Ｂ０とＩ−Ｂ１との接続経路に構成される１段のＦＩＦＯ４５ｃとの３つのバッファーからなる。ここで、ＦＩＦＯ４５ａ，４５ｂは、Ｓｌａｖｅ０へのリクエストを先入れ先出し方式で保存するＳｌａｖｅ０専用のバッファーとして機能し、ＦＩＦＯ４５ｃは、Ｓｌａｖｅ１へのリクエストを先入れ先出し方式で保存するＳｌａｖｅ１専用のバッファーとして機能する。また、Ｔ−Ｂ０には各Ｓｌａｖｅの共用のバッファーとして機能する２段のＦＩＦＯ４３ａが構成されるから、Ｍａｓｔｅｒ０からＳｌａｖｅ０への経路には、Ｔ−Ｂ０の２段のＦＩＦＯ４３ａとバッファー群４５の２段のＦＩＦＯ４５ａとの計４段のＦＩＦＯが構成されることになる。同様に、Ｓｌａｖｅ１への経路には、Ｔ−Ｂ０の２段のＦＩＦＯ４３ａとバッファー群４５の１段のＦＩＦＯ４５ｃとの計３段のＦＩＦＯが構成され、Ｓｌａｖｅ２への経路には、Ｔ−Ｂ０の２段のＦＩＦＯ４３ａが構成される。
【００２０】
ここで、Ｔ−Ｂ０のＦＩＦＯ４３ａやバッファー群４５のＦＩＦＯ４５ａ〜４５ｃの段数について説明する。これらのＦＩＦＯは、転送先のＳｌａｖｅが受け入れ可能なタイミングとなるまで、各Ｍａｓｔｅｒから出力されたリクエストを一時的に保存するために設けられている。しかし、ＦＩＦＯであるために、保存されたリクエストのうち先頭のリクエストが転送待ちの間は、後続のリクエストはその転送先に拘わらず転送待ちとなるため、マルチプロセッサーシステム２０全体の処理遅延に繋がることがある。このような転送待ちを防止するためには、各Ｓｌａｖｅへの経路毎に各ＭａｓｔｅｒのＯＳＤに対応した数の段数（例えばＭａｓｔｅｒ１の場合は４段）からなるＦＩＦＯを構成すればよい。しかし、そのようなＦＩＦＯを各Ｍａｓｔｅｒから各Ｓｌａｖｅへのすべての経路に構成すると、リソースの消費が大きなものとなってしまう。一方で、各ＳｌａｖｅはＳｌａｖｅ２，１，０の順に処理時間が長くなるから、転送待ちリクエストの発生は、Ｓｌａｖｅ０へのリクエストが最も可能性が高く、Ｓｌａｖｅ１へのリクエスト，Ｓｌａｖｅ２へのリクエストの順に可能性が低くなる。また、Ｓｌａｖｅ２の処理速度が最も速いため、Ｓｌａｖｅ２へのリクエストが転送待ちとなっても比較的短時間で転送待ちが解除されて全体の処理時間に与える影響はそれほど大きなものとはならない。これらのことから、転送待ちリクエストの発生の可能性に応じてＦＩＦＯの段数を設定するものとした。具体的には、Ｍａｓｔｅｒ０からＳｌａｖｅ０への経路には、Ｍａｓｔｅｒ０のＯＳＤに対応する数である計４段のＦＩＦＯを構成し、Ｓｌａｖｅ１への経路には計３段のＦＩＦＯを構成し、Ｓｌａｖｅ２への経路には計２段のＦＩＦＯを構成した。また、リソースの消費を抑えるために、Ｔ−Ｂ０内に２段の共用のＦＩＦＯ４３ａを構成し、その段数分各Ｓｌａｖｅ毎の専用のＦＩＦＯの段数を減らして、Ｓｌａｖｅ２への専用のＦＩＦＯは省略して構成するものとした。これにより、必要なＦＩＦＯの段数を確保しつつ全体のＦＩＦＯの段数を抑えるものとした。Ｔ−Ｂ０内に共用のＦＩＦＯ４３ａを構成すると共にバッファー群４５に専用のＦＩＦＯ４５ａ，４５ｃを構成するのは、このようなリクエストの転送待ちの減少とリソースの増加の抑制との両立を図るためである。一方、Ｍａｓｔｅｒ１からの経路については、Ｍａｓｔｅｒ１のＯＳＤが値１であるため、リクエストの転送待ちがそれほど問題となることはないが、Ｓｌａｖｅ０への経路に１段のＦＩＦＯ４５ｂを構成することで転送待ちを減少させるものとした。なお、このＦＩＦＯ４５ｂはＴ−Ｂ１のリクエスト転送部４３内に構成するものとしてもよい。
【００２１】
各Ｉ−Ｂのリクエスト転送部４７には、複数（２本）ずつのデータ線と制御信号線とが各Ｔ−Ｂのリクエスト転送部４３から一部バッファー群４５を介して入力し、リクエスト転送部４７からは、対応するスレーブデバイス８０（プロトコルブリッジ７５）側に繋がるデータ線と制御信号線とが１本ずつ出力している。このリクエスト転送部４７は、各Ｔ−Ｂ（マスターデバイス３０側）から入力されたリクエストデータや制御信号をスレーブデバイス８０側に送信する。なお、このリクエスト転送部４７は、複数のリクエストを受け付け可能に構成されており、各Ｔ−Ｂからのリクエストが重複した場合には、予めＭａｓｔｅｒ０，１の優先度に応じて定められた優先順位付けに従って調停を行なってスレーブデバイス側に出力するものとしている。
【００２２】
また、このクロスバースイッチ４０は、レスポンス転送用の構成として、図３に示すように、Ｉブリッジ４６の各Ｉ−Ｂが有するレスポンス転送部４８と、Ｔブリッジ４２の各Ｔ−Ｂが有するレスポンス転送部４４とを備える。
【００２３】
各Ｉ−Ｂのレスポンス転送部４８には、対応するスレーブデバイス８０（プロトコルブリッジ７５）側からデータ線と制御信号線とが１本ずつ入力し、レスポンス転送部４８からは、各Ｔ−Ｂに繋がる複数（２本）の制御信号線が出力すると共に１本のデータ線が出力している。なお、出力されたデータ線は、出力後に分岐して各Ｔ−Ｂに接続されている。このレスポンス転送部４８は、スレーブデバイス８０側からのレスポンスが入力されると、そのレスポンスに対応するリクエストの出力元であるＭａｓｔｅｒの識別情報としてのソースＩＤを読み出して応答先のマスターデバイス３０に繋がるＴブリッジ４２（Ｔ−Ｂ）を選択し、選択したＴブリッジ４２に接続されている制御信号線に制御信号を出力すると共にデータ線からレスポンスデータを出力する。なお、レスポンス転送部４８から出力されるデータは、制御信号線に出力される制御信号に従って転送先のＴ−Ｂに転送される。
【００２４】
各Ｔ−Ｂのレスポンス転送部４４には、複数（３本ずつ）の制御信号線とデータ線とが各Ｉ−Ｂのレスポンス転送部４８から入力し、レスポンス転送部４４からは、対応するマスターデバイス３０（プロトコルブリッジ３５）側に繋がるデータ線と制御信号線とが１本ずつ出力している。このレスポンス転送部４４は、Ｉブリッジ４６（スレーブデバイス８０側）から入力されたレスポンスデータや制御信号をいわゆるラウンドロビンにより受け取った順にマスターデバイス３０側に送信する。なお、Ｔ−Ｂ０のレスポンス転送部４４には、４段のＦＩＦＯ４４ａが構成されており、これはＭａｓｔｅｒ０のＯＳＤが値４であることに対応している。
【００２５】
次に、こうして構成された本実施形態のマルチプロセッサーシステム２０の動作、特に、マスターデバイス３０のＭａｓｔｅｒ０から一連のリクエストが出力されて各Ｓｌａｖｅで処理されるトランザクション処理における動作について、比較例とあわせて説明する。比較例としては、クロスバースイッチ４０内に各Ｓｌａｖｅへの専用のＦＩＦＯや共用のＦＩＦＯを持たず、リクエスト用とレスポンス用にプロトコルブリッジ７５（Ｐ−Ｂｍ０）内に各１段の共用のＦＩＦＯのみを有するものとして説明する。図４は、比較例におけるトランザクション処理の様子を示す説明図であり、図５は、本実施形態におけるトランザクション処理の様子を示す説明図である。図４，５共に、縦軸は時刻（クロック）を示す。また、リクエストは英字を四角で囲み、レスポンスは英字を丸と四角とで囲み、ＦＩＦＯ以外の各ブリッジの通過時間は無視する。図４，図５においては、Ｍａｓｔｅｒ０から６つのリクエストＡ〜Ｆが出力される場合を例示している。なお、リクエストＡ，ＢがＳｌａｖｅ０で、リクエストＣ，ＤがＳｌａｖｅ１で、リクエストＥ，ＦがＳｌａｖｅ２でそれぞれ処理される。また、上述したように、Ｓｌａｖｅ２，１，０の順に処理能力（速度）が低下するが、ここでは、１つのリクエストの処理に、Ｓｌａｖｅ２が２クロックを要し、Ｓｌａｖｅ１が３クロックを要し、Ｓｌａｖｅ０が４クロックを要するものとする。
【００２６】
まず、比較例の場合について説明する。図４に示すように、時刻Ｔ０で発行されたリクエストＡは、時刻Ｔ２にＳｌａｖｅ０に転送されて、時刻Ｔ２〜Ｔ５まで処理されて時刻Ｔ６にレスポンスＡが発生する。また、リクエストＢは、リクエストＡの処理が完了する時刻Ｔ６までＦＩＦＯで待機して、時刻Ｔ７にＳｌａｖｅ０に転送されて処理される。時刻Ｔ２で発行されるリクエストＣは、転送先のＳｌａｖｅ１は受け入れ可能な状態ではあるものの時刻Ｔ６までリクエストＢがＦＩＦＯ内で待機しているため、そのままＭａｓｔｅｒ０内で待機する。そして、時刻Ｔ７にリクエストＢが転送されると、リクエストＣは時刻Ｔ８にＳｌａｖｅ１に転送されて処理されて時刻Ｔ１１にレスポンスＣが発生する。リクエストＤは、リクエストＣの処理が完了する時刻Ｔ１１までＦＩＦＯで待機して、時刻Ｔ１２にＳｌａｖｅ１に転送されて処理される。レスポンスＡが戻ってくる時刻Ｔ８で発行されるリクエストＥは、転送先のＳｌａｖｅ２は受け入れ可能な状態ではあるものの時刻Ｔ１１までリクエストＤがＦＩＦＯ内で待機しているため、Ｓｌａｖｅ２に転送されることなくそのままＭａｓｔｅｒ０内で待機する。そして、時刻Ｔ１２にリクエストＤが転送されると、リクエストＥは時刻Ｔ１３にＳｌａｖｅ２に転送されて処理されて時刻Ｔ１５にレスポンスＥが発生する。リクエストＦは、リクエストＥの処理が完了する時刻Ｔ１５までＦＩＦＯで待機して、時刻Ｔ１６にＳｌａｖｅ２に転送されて処理される。このように、比較例においては、各Ｓｌａｖｅの専用のＦＩＦＯが構成されていないため、先行のリクエストの転送待ちが生じると、後続のリクエストも転送待ちとなって処理に時間の掛かるものとなる。なお、プロトコルブリッジ内の共用のＦＩＦＯを仮に複数段のものとして構成しても、先行のリクエストが転送待ちであれば後続のリクエストは転送待ちとなるから、同様の結果となる。
【００２７】
次に、本実施形態の場合について説明する。図５に示すように、リクエストＡは、比較例と同様に処理される。また、リクエストＢも比較例と同様に処理されるが、リクエストＡの処理が完了する時刻Ｔ６までの間はＳｌａｖｅ０専用のＦＩＦＯ（ＦＩＦＯ４５ａ）で待機することになる。このため、リクエストＣは、比較例では時刻Ｔ８にＳｌａｖｅ１に転送されるのに対し、時刻Ｔ４にＳｌａｖｅ１に転送されて処理されることになる。これにより、リクエストＣが処理されてレスポンスＣが発生する時刻は、比較例の時刻Ｔ１１に対して時刻Ｔ７と早いものとなる。リクエストＤは、リクエストＣの処理が完了する時刻Ｔ７までＳｌａｖｅ１専用のＦＩＦＯ（ＦＩＦＯ４５ｃ）で待機して、時刻Ｔ８にＳｌａｖｅ１に転送されて処理される。そして、時刻Ｔ１１にレスポンスＤが発生する。このように、レスポンスＤの発生も比較例よりも早いものとなる。レスポンスＡが戻ってくる時刻Ｔ８で発行されるリクエストＥは、比較例と異なり既にリクエストＤがＳｌａｖｅ１に転送されてクロスバーブリッジ４０のＦＩＦＯ内に転送待ちのリクエストがないため、転送待ちとなることなく、時刻Ｔ１０にＳｌａｖｅ２に転送されて処理される。これにより、リクエストＥが処理されてレスポンスＥが発生する時刻は、比較例の時刻Ｔ１５に対して時刻Ｔ１２と早いものとなる。リクエストＦは、リクエストＥの処理が完了する時刻Ｔ１２まで各Ｓｌａｖｅ共通のＦＩＦＯ（ＦＩＦＯ４３ａ）で待機して、時刻Ｔ１３にＳｌａｖｅ２に転送されて処理される。そして、時刻Ｔ１５にレスポンスＦが発生する。このように、レスポンスＦの発生も比較例よりも早いものとなる。これらのことから、本実施形態では、比較例に比してリクエストＣ〜Ｆの転送待ちを減らしてスムーズに中継することができ、レスポンスＣ〜Ｆを早く発生させることができるものとなる。この結果、リクエストを効率よく中継して全体のスループットを向上させることができる。
【００２８】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のマスターデバイス３０（Ｍａｓｔｅｒ０，１）が本発明の「転送元」に相当し、スレーブデバイス８０（Ｓｌａｖｅ０，１，２）が「転送先」に相当し、バッファー群４５のＦＩＦＯ４５ａ，４５ｂ，４５ｃが「専用のバッファー」に相当する。また、Ｔブリッジ４２のリクエスト転送部４３のＦＩＦＯ４３ａが「共用のバッファー」に相当し、Ｔブリッジ４２（Ｔ−Ｂ０，１）が「第１の中継器」に相当し、Ｉブリッジ４６（Ｉ−Ｂ０，１，２）が「第２の中継器」に相当する。
【００２９】
以上詳述した本実施形態のマルチプロセッサーシステム２０によれば、転送元であるマスターデバイス３０側（Ｍａｓｔｅｒ０，１）からのリクエストの分配を行なうＴブリッジ４２と、Ｔブリッジ４２から分配されたリクエストを転送先であるスレーブデバイス８０側（Ｓｌａｖｅ０，１，２）に転送するＩブリッジ４６とを備えて通信を中継するクロスバースイッチ４０において、Ｔブリッジ４２のＴ−Ｂ０内に各Ｓｌａｖｅの共用のＦＩＦＯ４３ａを構成し、Ｔブリッジ４２とＩブリッジ４６との間に各Ｓｌａｖｅの専用のＦＩＦＯ４５ａ〜４５ｃを構成するから、転送先のＳｌａｖｅが受け入れ可能な状態になくリクエストの転送待ちが生じる場合であっても、他のＳｌａｖｅに転送されるリクエストが転送待ちとなるのを減少させることができる。また、各Ｓｌａｖｅに必要とされるＦＩＦＯの段数の一部を共用のＦＩＦＯ４３ａで対応することができ、各Ｓｌａｖｅの専用のＦＩＦＯ４５ａ〜４５ｃは各Ｓｌａｖｅの処理速度が速いほど小さなものとし、処理速度の最も速いＳｌａｖｅ２の専用のＦＩＦＯは省略するものとしたから、リクエストの転送待ちの減少とリソースの増加の抑制とを両立させることができる。
【００３０】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３１】
上述した実施形態では、Ｓｌａｖｅ０へのリクエストを保存する専用のＦＩＦＯ４５ａとＳｌａｖｅ１へのリクエストを保存する専用のＦＩＦＯ４５ｃとの段数を異なるものとしたが、これに限られず、同じ段数としてもよい。
【００３２】
上述した実施形態では、処理速度の最も速いＳｌａｖｅ２へのリクエストを保存する専用のＦＩＦＯを省略するものとしたが、省略することなく構成するものとしてもよい。その場合、処理速度の遅いＳｌａｖｅ０，１へのリクエストを保存する専用のＦＩＦＯ４５ａ，４５ｃに比して段数の小さなものとしてもよいし、ＦＩＦＯ４５ａやＦＩＦＯ４５ｃのいずれかと同じ段数としてもよい。
【００３３】
上述した実施形態では、Ｔ−Ｂ０内に共用のバッファーとしてのＦＩＦＯ４３ａを構成するものとしたが、これに限られず、共用のバッファーを構成しないものとしてもよい。この場合、Ｓｌａｖｅ０へのリクエストを保存するＦＩＦＯ４５ａの段数を４段とし、Ｓｌａｖｅ１へのリクエストを保存するＦＩＦＯ４５ｃの段数を３段とし、Ｓｌａｖｅ２へのリクエストを保存する２段のＦＩＦＯを構成するものなどとすればよい。
【００３４】
上述した実施形態では、Ｔブリッジ４２とＩブリッジ４６との間に各Ｓｌａｖｅ専用のバッファーとしてのバッファー群４５（ＦＩＦＯ４５ａ〜４５ｃ）を構成するものとしたが、これに限られず、Ｔブリッジ４２内に各Ｓｌａｖｅ専用のバッファー（ＦＩＦＯ）を構成するものとしてもよい。この場合の変形例のクロスバースイッチ４０Ａのリクエスト転送用の構成図を図６に示す。図示するように、Ｔ−Ｂ０のリクエスト転送部４３Ａ内に各Ｓｌａｖｅ専用のバッファーとしてのＦＩＦＯ４３ａ，４３ｂ，４３ｃが構成されている。また、Ｔ−Ｂ１のリクエスト転送部４３Ａ内に各Ｓｌａｖｅ専用のバッファーとしてのＦＩＦＯ４３ｄ，４３ｅ，４３ｆが構成されている。なお、ＦＩＦＯ４３ａ，４３ｂ，４３ｃの段数は、それぞれ４段，３段，２段としたが、すべて４段とするものなどとしてもよい。このように構成してもリクエストの転送待ちを減少させることができる。ただし、本実施形態と異なり、Ｔブリッジ（Ｔ−Ｂ０，Ｔ−Ｂ１）からのデータ線がＩブリッジの数（３本）ずつ出力され、Ｓｌａｖｅの数（Ｉブリッジ４６の数）によっては必要なリソースが大きく増加するため、本実施形態のように構成するものが好ましい。
【００３５】
上述した実施形態では、マスターデバイス３０として２つのＭａｓｔｅｒ０，１を備えるものとしたが、これに限られるものではなく、１つのＭａｓｔｅｒを備えるものとしてもよいし３以上の複数のＭａｓｔｅｒを備えるものとしてもよい。同様に、スレーブデバイス８０として３つのＳｌａｖｅ０，１，２を備えるものとしたが２以上の複数であればいくつのＳｌａｖｅを備えるものとしてもよい。
【符号の説明】
【００３６】
２０  マルチプロセッサーシステム、３０  マスターデバイス（Ｍａｓｔｅｒ０，１）、３５  プロトコルブリッジ（Ｐ−Ｂｍ０，１）、４０，４０Ａ  クロスバースイッチ、４２，４２Ａ  ターゲットブリッジ（Ｔブリッジ，Ｔ−Ｂ０，１）、４３，４３Ａ  リクエスト転送部、４３ａ，４３ｂ，４３ｃ，４３ｄ，４３ｅ，４３ｆ  ＦＩＦＯ、４４  レスポンス転送部、４４ａ  ＦＩＦＯ、４５  バッファー群、４５ａ，４５ｂ，４５ｃ  ＦＩＦＯ、４６  イニシエーターブリッジ（Ｉブリッジ，Ｉ−Ｂ０，１，２）、４７  リクエスト転送部、４８  レスポンス転送部、７５  プロトコルブリッジ（Ｐ−Ｂｓ０，１，２）、８０  スレーブデバイス（Ｓｌａｖｅ０，１，２）。
【図１】
2011248563.tif 000003
【図２】
2011248563.tif 000004
【図３】
2011248563.tif 000005
【図４】
2011248563.tif 000006
【図５】
2011248563.tif 000007
【図６】
2011248563.tif 000008