(57)【要約】【課題】複数のプロセッサの中に障害を有するプロセッサがあっても、データ通信効率への影響が生じにくいマルチプロセッサシステムを提供する。【解決手段】３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備え、障害を有する少なくとも一つの障害プロセッサを特定し、障害プロセッサのバスに対する接続位置に対応する位置においてバスに接続された少なくとも一つのプロセッサを、通信制限の対象となる通信制限プロセッサとして選択し、当該通信制限プロセッサによるバスを介したデータ通信を制限するマルチプロセッサシステムである。【選択図】図２
2008123134.tif 000002
【特許請求の範囲】
【請求項１】
３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備えるマルチプロセッサシステムであって、
前記複数のプロセッサのうち、障害を有する少なくとも一つの障害プロセッサを特定する障害プロセッサ特定手段と、
前記障害プロセッサの前記バスに対する接続位置に対応する位置において前記バスに接続された少なくとも一つの前記プロセッサを、通信制限の対象となる通信制限プロセッサとして選択する通信制限プロセッサ選択手段と、
前記通信制限プロセッサによる、前記バスを介したデータ通信を制限する通信制限手段と、
を含むことを特徴とするマルチプロセッサシステム。
【請求項２】
請求項１に記載のマルチプロセッサシステムにおいて、
前記バスはリング型バスであり、
前記通信制限プロセッサ選択手段は、前記障害プロセッサの前記バスに対する接続位置と前記通信制限プロセッサの前記バスに対する接続位置との間における、前記バスに対して接続される前記処理モジュールの個数の差が小さくなるように、前記通信制限プロセッサを選択する
ことを特徴とするマルチプロセッサシステム。
【請求項３】
請求項１又は２に記載のマルチプロセッサシステムにおいて、
前記バスは複数のデータ伝送路を含んで構成され、
前記複数のプロセッサは、それぞれ前記複数のデータ伝送路のいずれかを用いて前記複数の処理モジュールのうちの所定の処理モジュールとの間でデータ通信を行い、
前記通信制限プロセッサ選択手段は、前記複数のデータ伝送路のうち、前記障害プロセッサから前記所定の処理モジュールへのデータ通信に用いられるデータ伝送路とは異なるデータ伝送路を用いて前記所定の処理モジュールへのデータ通信を行うプロセッサを、前記通信制限プロセッサとして選択する
ことを特徴とするマルチプロセッサシステム。
【請求項４】
請求項１乃至３のいずれか一項に記載のマルチプロセッサシステムにおいて、
前記通信制限手段は、前記通信制限プロセッサによるプログラムの実行を制限することにより、前記通信制限プロセッサによるデータ通信を制限する
ことを特徴とするマルチプロセッサシステム。
【請求項５】
請求項１乃至３のいずれか一項に記載のマルチプロセッサシステムにおいて、
所定のプログラムを記憶する手段をさらに含み、
前記通信制限手段は、前記通信制限プロセッサに前記所定のプログラムを実行させることによって、前記通信制限プロセッサによるデータ通信を制限する
ことを特徴とするマルチプロセッサシステム。
【請求項６】
請求項１乃至５のいずれか一項に記載のマルチプロセッサシステムにおいて、
前記バスはリング型バスであり、
前記複数のプロセッサのうちの一部のプロセッサと、当該一部のプロセッサのいずれかをそれぞれ指定する複数のプロセッサ指定情報と、を関連づけるテーブルを記憶するテーブル記憶手段と、
前記障害プロセッサの前記リング型バスに対する接続位置に応じて、前記各プロセッサ指定情報が前記障害プロセッサを除く前記複数のプロセッサのうちのいずれかのプロセッサを指定するように、前記テーブルを生成するテーブル生成手段と、
を含み、
前記一部のプロセッサのそれぞれは、複数の所定処理を含むとともに、当該各所定処理がそれぞれ前記プロセッサ指定情報のいずれかに関連づけられてなるアプリケーションプログラム、及び前記生成されたテーブルに基づいて、当該プロセッサを指定する前記プロセッサ指定情報に関連づけられた前記所定処理を実行する
ことを特徴とするマルチプロセッサシステム。
【請求項７】
請求項６に記載のマルチプロセッサシステムにおいて、
前記テーブル生成手段は、前記障害プロセッサを除く前記各プロセッサの前記リング型バスに対する接続位置に応じて、前記障害プロセッサを除く前記複数のプロセッサの中から前記各プロセッサ指定情報が指定するプロセッサを決定する
ことを特徴とするマルチプロセッサシステム。
【請求項８】
請求項７に記載のマルチプロセッサシステムにおいて、
前記テーブル生成手段は、前記障害プロセッサを除く前記各プロセッサの前記リング型バスに対する接続位置と、前記複数の処理モジュールのうちの所定の処理モジュールの前記リング型バスに対する接続位置と、の位置関係に応じて、前記障害プロセッサを除く前記複数のプロセッサの中から前記各プロセッサ指定情報が指定するプロセッサを決定する
ことを特徴とするマルチプロセッサシステム。
【請求項９】
３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備えるマルチプロセッサシステムの制御方法であって、
前記複数のプロセッサのうち、障害を有する少なくとも一つの障害プロセッサを特定するステップと、
前記障害プロセッサの前記バスに対する接続位置に対応する位置において前記バスに接続された少なくとも一つの前記プロセッサを、通信制限の対象となる通信制限プロセッサとして選択するステップと、
前記通信制限プロセッサによる、前記バスを介したデータ通信を制限するステップと、
を含むことを特徴とするマルチプロセッサシステムの制御方法。
【請求項１０】
３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備えるマルチプロセッサシステムにより実行されるプログラムであって、
前記複数のプロセッサのうち、障害を有する少なくとも一つの障害プロセッサを特定する障害プロセッサ特定手段、
前記障害プロセッサの前記バスに対する接続位置に対応する位置において前記バスに接続された少なくとも一つの前記プロセッサを、通信制限の対象となる通信制限プロセッサとして選択する通信制限プロセッサ選択手段、及び
前記通信制限プロセッサによる、前記バスを介したデータ通信を制限する通信制限手段、
として前記マルチプロセッサシステムを機能させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介して相互にデータ通信可能な複数のプロセッサを備えるマルチプロセッサシステム、その制御方法、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
複数のプロセッサを備え、これらのプロセッサがそれぞれ情報処理を実行可能なマルチプロセッサシステムがある。このようなマルチプロセッサシステムにおいては、各プロセッサ、メモリモジュール、ＧＰＵ（Graphics Processing Unit）等の各種の処理モジュールが、バスを介して相互にデータ通信可能に接続されている。さらにこのようなマルチプロセッサシステムは、プロセッサに障害がある場合に備えて、アプリケーションプログラムの実行に必要な数よりも多くのプロセッサを含んで構成される場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記説明したマルチプロセッサシステムは、一部のプロセッサが障害によって使用できない場合であっても、アプリケーションプログラムを実行することができる。しかしながら、一部のプロセッサに障害がある場合、障害を有するプロセッサが他の処理モジュールとのデータ通信に関与しなくなるため、各処理モジュール間のデータ通信によるバス内のデータ伝送量のバランスが変化する。その結果、各処理モジュール間のデータ通信の効率に影響を与える場合がある。
【０００４】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、複数のプロセッサの中に障害を有するプロセッサがあっても、データ通信効率への影響が生じにくいマルチプロセッサシステム、その制御方法、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するための本発明に係るマルチプロセッサシステムは、３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備えるマルチプロセッサシステムであって、前記複数のプロセッサのうち、障害を有する少なくとも一つの障害プロセッサを特定する障害プロセッサ特定手段と、前記障害プロセッサの前記バスに対する接続位置に対応する位置において前記バスに接続された少なくとも一つの前記プロセッサを、通信制限の対象となる通信制限プロセッサとして選択する通信制限プロセッサ選択手段と、前記通信制限プロセッサによる、前記バスを介したデータ通信を制限する通信制限手段と、を含むことを特徴とする。
【０００６】
また、本発明に係るマルチプロセッサシステムの制御方法は、３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備えるマルチプロセッサシステムの制御方法であって、前記複数のプロセッサのうち、障害を有する少なくとも一つの障害プロセッサを特定するステップと、前記障害プロセッサの前記バスに対する接続位置に対応する位置において前記バスに接続された少なくとも一つの前記プロセッサを、通信制限の対象となる通信制限プロセッサとして選択するステップと、前記通信制限プロセッサによる、前記バスを介したデータ通信を制限するステップと、を含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、３以上の所定数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を備えるマルチプロセッサシステムにより実行されるプログラムであって、前記複数のプロセッサのうち、障害を有する少なくとも一つの障害プロセッサを特定する障害プロセッサ特定手段、前記障害プロセッサの前記バスに対する接続位置に対応する位置において前記バスに接続された少なくとも一つの前記プロセッサを、通信制限の対象となる通信制限プロセッサとして選択する通信制限プロセッサ選択手段、及び前記通信制限プロセッサによる、前記バスを介したデータ通信を制限する通信制限手段、として前記マルチプロセッサシステムを機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【０００９】
図１は、本実施形態に係るマルチプロセッサシステムのハードウェア構成を示す図である。同図に示すように、マルチプロセッサシステム１０は、ＭＰＵ（Micro Processing Unit）１１と、メインメモリ２０と、画像処理部２４と、モニタ２６と、入出力処理部２８と、音声処理部３０と、スピーカ３２と、光ディスク読み取り部３４と、ハードディスク３８と、インタフェース（Ｉ／Ｆ）４０，４４と、操作デバイス４２と、カメラユニット４６と、ネットワークインタフェース４８と、を含んで構成されるコンピュータシステムである。
【００１０】
図２は、ＭＰＵ１１の構成を示す図である。同図に示すように、ＭＰＵ１１は、メインプロセッサ１２と、サブプロセッサ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆ，１４ｇ，１４ｈと、バス１６と、バスコントローラ１７と、を含んで構成される。
【００１１】
なお、マルチプロセッサシステム１０の構成要素のうち、バス１６を介して相互にデータ通信を行うものを以下では処理モジュールという。すなわち、本実施形態に係るマルチプロセッサシステムは、複数のプロセッサを含む複数の処理モジュールと、当該各処理モジュール相互のデータ通信を中継するバスと、を含んで構成される。具体的に本実施形態においては、図２に示すように、メインプロセッサ１２、サブプロセッサ１４ａ乃至１４ｈ、メインメモリ２０、画像処理部２４、及び入出力処理部２８の１２個の処理モジュールが、バス１６を介して相互にデータ通信可能に接続されている。
【００１２】
メインプロセッサ１２は、図示しないＲＯＭ（Read Only Memory）に記憶されるオペレーティングシステムや、例えばＤＶＤ（Digital Versatile Disk）−ＲＯＭ等の光ディスク３６から読み出されるプログラム及びデータ、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて、各種情報処理を行ったり、サブプロセッサ１４ａ乃至１４ｈに対する制御を行ったりする。
【００１３】
サブプロセッサ１４ａ乃至１４ｈは、メインプロセッサ１２からの指示に従い、例えばＤＶＤ−ＲＯＭ等の光ディスク３６から読み出されるプログラム及びデータ、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて、各種の情報処理を行う。
【００１４】
ここで、各サブプロセッサの構成について、サブプロセッサ１４ａを例として説明する。なお、他のサブプロセッサの構成についても、サブプロセッサ１４ａと同様である。図３は、サブプロセッサ１４ａの概略の構成を示す図である。同図に示すように、サブプロセッサ１４ａは、サブプロセッサユニット１５ａ，ローカルメモリ１５ｂ及びバスインタフェースユニット１５ｃを含んで構成される。サブプロセッサユニット１５ａは、サブプロセッサ１４ａに割り当てられたプログラムを実行することにより、演算処理等の情報処理を行う。ローカルメモリ１５ｂは、サブプロセッサ１４ａに割り当てられたプログラムやデータの少なくとも一部を格納し、サブプロセッサユニット１５ａのワークメモリとして動作する。
【００１５】
また、バスインタフェースユニット１５ｃは、サブプロセッサユニット１５ａからのアクセス要求等に応じて、他の処理モジュールとの間でデータの送受信を行う。すなわち、バスインタフェースユニット１５ｃは、サブプロセッサ１４ａと他の処理モジュールとの間のデータ通信を中継する。具体例として、バスインタフェースユニット１５ｃは、サブプロセッサユニット１５ａから所与のメモリ空間上のアドレス（論理アドレス）に対するアクセス要求（データ書き込み要求又はデータ読み出し要求）があった場合に、予め保持しているメモリアドレス変換テーブルを用いて要求された論理アドレスを物理アドレスに変換する。ここで物理アドレスは、メインメモリ２０内のメモリアドレスや各サブプロセッサのローカルメモリ内のメモリアドレス等、各処理モジュールの物理的なメモリ位置を示すアドレスである。さらにバスインタフェースユニット１５ｃは、変換された物理アドレスによって示される処理モジュールに対してサブプロセッサユニット１５ａが出力するデータを送信したり、逆に変換された物理アドレスによって示される処理モジュールに対してデータ送信要求を送信して、当該処理モジュールからデータを受信したりする。
【００１６】
また、バスインタフェースユニット１５ｃは、他の処理モジュールからバス１６を介してローカルメモリ１５ｂ内のメモリアドレスを指定したアクセス要求があった場合、当該アクセス要求に応じてローカルメモリ１５ｂ内にデータを書き込んだり、指定されたローカルメモリ１５ｂ内のデータをアクセス要求元の処理モジュールに送信したりする。これにより、サブプロセッサ１４ａは、バス１６を介して他の処理モジュールとの間でデータの送受信が可能となる。
【００１７】
バス１６は、各処理モジュールの要求に応じて、各処理モジュール間で各種のデータを伝送する。具体的に、本実施形態においては、バス１６は双方向のリング型バスであり、計４本のデータ伝送路１６ａ，１６ｂ，１６ｃ及び１６ｄを含んで構成されている。このうち、データ伝送路１６ａ及び１６ｂは常に時計回りでデータを伝送し、これとは逆にデータ伝送路１６ｃ及び１６ｄは反時計回りでデータを伝送する。ここで、各処理モジュール間の通信に４本のデータ伝送路のうちのどのデータ伝送路が使用されるかは、バスコントローラ１７によって決定される。また、バス１６は、接続される処理モジュールと同じ数の接続ポートを含んでおり、各処理モジュールはそれぞれ対応する接続ポートの位置でバス１６に接続されている。すなわち、各処理モジュールは、対応する接続ポートを介してバス１６に対するデータの送信及びバス１６からのデータの受信を行う。
【００１８】
バスコントローラ１７は、各処理モジュール間のバス１６を介したデータ通信を制御する。具体例として、バスコントローラ１７は、各処理モジュールからデータ送信の要求があると、まず送信元の処理モジュールのバス１６に対する接続位置及び送信先の処理モジュールのバス１６に対する接続位置に基づいて、時計回りのデータ伝送路と反時計回りのデータ伝送路のいずれを用いてデータ伝送を行うかを決定する。ここで、バスコントローラ１７は、送信元の処理モジュールの接続位置と送信先の処理モジュールの接続位置との間におけるバス１６に接続される処理モジュールの個数が少なくなる向きにデータが伝送されるように、データ伝送路を決定する。すなわち、例えばサブプロセッサ１４ａが送信元の処理モジュールである場合、メインプロセッサ１２、メインメモリ２０、サブプロセッサ１４ｂ、サブプロセッサ１４ｄ、又はサブプロセッサ１４ｆのいずれかが送信先の処理モジュールであれば、図２に示されるように、時計回りのデータ伝送路の方がデータ伝送の経路上において接続される処理モジュールの数が少なくなる。そこで、バスコントローラ１７は、データ伝送路１６ａ又は１６ｂのいずれかを使用するよう決定する。逆に、送信元の処理モジュールがサブプロセッサ１４ａであり、送信先の処理モジュールが、サブプロセッサ１４ｃ、サブプロセッサ１４ｅ、サブプロセッサ１４ｇ、入出力処理部２８、又は画像処理部２４のいずれかである場合、バスコントローラ１７は反時計回りでデータを伝送することとし、デー伝送路１６ｃ又は１６ｄを使用するデータ伝送路として決定する。
【００１９】
さらにバスコントローラ１７は、同じ方向の２本のデータ伝送路のいずれを使用するかを、データ送信の要求があった時点における各データ伝送路の使用状況等に応じて決定する。また、送信元から送信先までのデータ伝送の経路上において接続される処理モジュールの数が時計回りと反時計回りのいずれも同じである場合（例えばサブプロセッサ１４ａからサブプロセッサ１４ｈへのデータ伝送の場合）、時計回り及び反時計回りのいずれのデータ伝送路が使用されてもよい。すなわち、バスコントローラ１７は４本全てのデータ伝送路の中から使用状況等において使用するデータ伝送路を決定する。このバスコントローラ１７の決定に従って、各処理モジュールは、それぞれいずれかのデータ伝送路を用いて他の処理モジュールとの間でデータ通信を行う。
【００２０】
メインメモリ２０は、ＲＡＭ等のメモリ素子と、当該メモリ素子及びバス１６の間のデータ通信を中継するメモリコントローラと、を含んで構成される。メインメモリ２０には、光ディスク３６やハードディスク３８から読み出されたプログラム及びデータや、通信ネットワークを介して供給されたプログラム及びデータが必要に応じて書き込まれる。また、メインメモリ２０はメインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈの作業用としても用いられる。
【００２１】
画像処理部２４は、ＧＰＵ（Graphics Processing Unit）とフレームバッファとを含んで構成される。ＧＰＵは、メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈから送信されるデータに基づいてフレームバッファに各種画面を描画する。フレームバッファに形成された画面は、所定のタイミングでビデオ信号に変換されてモニタ２６に出力される。なお、モニタ２６には例えば家庭用テレビ受像機が用いられる。
【００２２】
入出力処理部２８には、音声処理部３０、光ディスク読み取り部３４、ハードディスク３８、インタフェース４０及び４４、並びにネットワークインタフェース４８が接続される。入出力処理部２８は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈと、音声処理部３０、光ディスク読み取り部３４、ハードディスク３８、インタフェース（Ｉ／Ｆ）４０及び４４、ネットワークインタフェース４８と、の間のデータ授受を制御する。
【００２３】
音声処理部３０は、ＳＰＵ（Sound Processing Unit）とサウンドバッファとを含んで構成される。サウンドバッファには、光ディスク３６やハードディスク３８から読み出されたゲーム音楽、ゲーム効果音やメッセージなどの各種音声データが記憶される。ＳＰＵは、これらの各種音声データを再生してスピーカ３２から出力させる。なお、スピーカ３２には例えば家庭用テレビ受像機の内蔵スピーカが用いられる。
【００２４】
光ディスク読み取り部３４は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈからの指示に従って、光ディスク３６に記憶されたプログラムやデータを読み取る。なお、マルチプロセッサシステム１０は、光ディスク３６以外の他のコンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成されてもよい。
【００２５】
光ディスク３６は例えばＤＶＤ−ＲＯＭ等の一般的な光ディスク（コンピュータ読み取り可能な情報記憶媒体）である。また、ハードディスク３８は一般的なハードディスク装置である。光ディスク３６やハードディスク３８には各種プログラムやデータがコンピュータ読み取り可能に記憶される。
【００２６】
インタフェース（Ｉ／Ｆ）４０，４４は、操作デバイス４２やカメラユニット４６等の各種周辺機器を接続するためのインタフェースである。このようなインタフェースとしては、例えばＵＳＢ（Universal Serial Bus）インタフェースが用いられる。また、例えばBluetooth（登録商標）規格などによる無線通信インタフェースが用いられてもよい。
【００２７】
操作デバイス４２は汎用操作入力手段であり、ユーザが各種操作（例えばゲーム操作）を入力するために用いられる。入出力処理部２８は、所定時間（例えば１／６０秒）ごとに操作デバイス４２の各部の状態をスキャンし、その結果を表す操作信号をメインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈに供給する。メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈは、ユーザによって行われた操作の内容をその操作信号に基づいて判断する。なお、マルチプロセッサシステム１０は複数の操作デバイス４２を接続可能に構成されており、各操作デバイス４２から入力される操作信号に基づいて、メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈが各種処理を実行するようになっている。
【００２８】
カメラユニット４６は、例えば公知のデジタルカメラを含んで構成され、白黒、グレイスケール又はカラーの撮影画像を所定時間（例えば１／６０秒）ごとに入力する。本実施の形態におけるカメラユニット４６は、撮影画像をＪＰＥＧ（Joint Photographic Experts Group）形式の画像データとして入力するようになっている。また、カメラユニット４６は、例えばレンズをユーザに向けた状態でモニタ２６の上に設置され、ケーブルを介してインタフェース４４に接続される。ネットワークインタフェース４８は入出力処理部２８と通信ネットワークとに接続されており、マルチプロセッサシステム１０による通信ネットワークを介した他の情報装置との間のデータ通信を中継するようになっている。
【００２９】
以下では、サブプロセッサ１４ａ乃至１４ｈのいずれかが障害を有する場合に、上記構成を有するマルチプロセッサシステム１０が実現する機能について、説明する。マルチプロセッサシステム１０は、機能的に、図４に示すように、障害プロセッサ特定部５０と、通信制限プロセッサ選択部５２と、通信制限部５４と、テーブル生成部５６と、処理実行制御部５８と、を含んで構成される。これらの機能は、例えばＭＰＵ１１が図示しないＲＯＭやメインメモリ２０等に格納されたプログラムを実行することによって実現できる。このプログラムは、光ディスク３６等のコンピュータ読み取り可能な情報記憶媒体に格納されて提供されてもよいし、インターネット等の通信ネットワークを介して提供されてもよい。
【００３０】
障害プロセッサ特定部５０は、サブプロセッサ１４ａ乃至１４ｈのうち、障害を有する少なくとも一つのサブプロセッサ（以下、障害プロセッサという）を特定する。ここで障害プロセッサは、ＭＰＵ１１の製造時に不具合が判明したサブプロセッサであってもよいし、マルチプロセッサシステム１０の使用中に故障等の不具合が発生して正常動作できなくなったサブプロセッサであってもよいし、例えば装置の出荷時等において予めその使用を制限するものとして設定されたサブプロセッサであってもよい。具体例として、例えば本実施形態に係るマルチプロセッサシステム１０は、図示しない不揮発性メモリ内に予め障害プロセッサを特定する障害プロセッサ識別情報を保持してもよい。障害プロセッサ特定部５０は、この不揮発性メモリ内に保持された障害プロセッサ識別情報を読み出すことによって、障害プロセッサを特定する。また、例えば障害プロセッサ特定部５０は、マルチプロセッサシステム１０の電源が投入された時点などにおいて、所定のハードウェア診断プログラムを実行することによって、障害プロセッサを特定してもよい。あるいは、障害プロセッサ特定部５０は、このような診断プログラムの実行結果等に応じて前述した不揮発性メモリ内の障害プロセッサ識別情報を更新し、更新された障害プロセッサ識別情報に基づいて障害プロセッサを特定してもよい。
【００３１】
通信制限プロセッサ選択部５２は、障害プロセッサ特定部５０が特定した障害プロセッサに応じて、サブプロセッサ１４ａ乃至１４ｈの中から通信制限の対象となるサブプロセッサ（以下、通信制限プロセッサという）を選択する。具体的に、通信制限プロセッサ選択部５２は、障害プロセッサのバス１６に対する接続位置に対応する位置においてバス１６に接続された少なくとも一つのサブプロセッサを、通信制限プロセッサとして選択する。
【００３２】
ここで、通信制限プロセッサとして選択されるサブプロセッサの数は、マルチプロセッサシステム１０が備えるサブプロセッサの数（８個）と、マルチプロセッサシステム１０がアプリケーションプログラムの実行の際に使用するサブプロセッサの数と、障害プロセッサの数と、に応じて決定されてよい。例えばアプリケーションプログラムが使用するサブプロセッサの数が６個で、障害プロセッサの数が１個であれば、マルチプロセッサシステム１０が備えるサブプロセッサの数からこれらの数を減算して得られる数である１（＝８−６−１）が、通信制限プロセッサとして選択されるサブプロセッサの数になる。また、通信制限プロセッサの数は、障害プロセッサの数と通信制限プロセッサの数との和が所定の数になるように決定されてもよい。
【００３３】
以下、通信制限プロセッサ選択部５２が、サブプロセッサ１４ａ乃至１４ｈの中から通信制限プロセッサを選択する選択方法の具体例について、説明する。
【００３４】
一例として、通信制限プロセッサ選択部５２は、障害プロセッサのバス１６に対する接続位置と通信制限プロセッサのバス１６に対する接続位置との間における、バス１６に対して接続される処理モジュールの個数の差が小さくなるように、通信制限プロセッサを選択する。すなわち、例えば障害プロセッサ及び通信制限プロセッサがそれぞれ一つずつの場合、バス１６の経路上において障害プロセッサの接続位置から最も離れた位置（リングの反対側にあたる位置）に接続されたサブプロセッサが、通信制限プロセッサとして選択される。具体的に、図２の例においては、障害プロセッサがサブプロセッサ１４ａであればサブプロセッサ１４ｈが、サブプロセッサ１４ｂであればサブプロセッサ１４ｇが、サブプロセッサ１４ｃであればサブプロセッサ１４ｆが、サブプロセッサ１４ｄであればサブプロセッサ１４ｅが、それぞれ通信制限プロセッサとして選択される。また、これらの障害プロセッサと通信制限プロセッサとの組み合わせは、障害プロセッサと通信制限プロセッサが逆の場合にも成り立つ。すなわち、例えば障害プロセッサがサブプロセッサ１４ｈであればサブプロセッサ１４ａが通信制限プロセッサとして選択される。
【００３５】
このように通信制限プロセッサを選択すれば、障害プロセッサのバス１６に対する接続位置と通信制限プロセッサのバス１６に対する接続位置との間における、バス１６に接続される処理モジュールの個数は、時計回りの場合も反時計回りの場合も５個になり、その差は０になる。なお、バス１６に接続される処理モジュールの個数が奇数の場合や、通信制限プロセッサが複数選択される場合等であっても、同様に障害プロセッサ及び通信制限プロセッサのバス１６に対する接続位置の間におけるバス１６に接続される処理モジュールの個数の差が小さくなるように通信制限プロセッサを選択することによって、障害プロセッサ及び通信制限プロセッサは互いに離れた位置においてバス１６に接続することとなる。これにより、バス１６を介したデータ通信を行わない障害プロセッサ及びデータ通信を制限された通信制限プロセッサのバス１６に対する接続位置を分散させることができ、これらのサブプロセッサを除いた各処理モジュールによるリング型バスを介したデータ通信を均一化させることができる。
【００３６】
また、通信制限プロセッサ選択部５２は、マルチプロセッサシステム１０に含まれる複数の処理モジュールのうちの所定の処理モジュール（以下では、注目処理モジュールという）のバス１６に対する接続位置に基づいて、通信制限プロセッサを選択してもよい。具体例として、通信制限プロセッサ選択部５２は、バス１６を構成する複数のデータ伝送路のうち、障害プロセッサから注目処理モジュールへのデータ通信に用いられるデータ伝送路とは異なるデータ伝送路を用いて注目処理モジュールへのデータ通信を行うサブプロセッサを、通信制限プロセッサとして選択する。
【００３７】
例えば注目処理モジュールは、メインメモリ２０や画像処理部２４など、各サブプロセッサとのデータ通信が多いと想定される処理モジュールである。ここでは具体例として、メインメモリ２０が注目処理モジュールである場合について、説明する。前述したように、サブプロセッサ１４ａ，１４ｃ，１４ｅ及び１４ｇからメインメモリ２０へのデータ通信には、時計回りのデータ伝送路１６ａ又は１６ｂが用いられる。以下では、これら４個のサブプロセッサを併せて第１サブプロセッサ群という。また、サブプロセッサ１４ｂ，１４ｄ，１４ｆ及び１４ｈからメインメモリ２０へのデータ通信には、反時計回りのデータ伝送路１６ｃ又は１６ｄが用いられる。以下では、これら４個のサブプロセッサを併せて第２サブプロセッサ群という。
【００３８】
ここで、メインメモリ２０が注目処理モジュールで、かつ障害プロセッサ及び通信制限プロセッサがそれぞれ一つずつの場合、通信制限プロセッサ選択部５２は、第１サブプロセッサ群の中に障害プロセッサがあれば、第２サブプロセッサ群から通信制限プロセッサを選択する。また、第２サブプロセッサ群の中に障害プロセッサがあれば、逆に第１サブプロセッサ群から通信制限プロセッサを選択する。結果として、障害プロセッサ及び通信制限プロセッサを除いた６個のサブプロセッサのうち、第１サブプロセッサ群に属するサブプロセッサの数と第２サブプロセッサ群に属するサブプロセッサの数とはいずれも３個で等しくなる。こうすれば、後述するように通信制限プロセッサによるバス１６を介したデータ通信を制限することによって、注目処理モジュールであるメインメモリ２０と、障害プロセッサ及び通信制限プロセッサを除いた各サブプロセッサと、の間のデータ通信を複数のデータ伝送路間で分散させることができ、いずれかのデータ伝送路にデータ通信が偏りにくくすることができる。なお、前述した例におけるバス１６の経路上において障害プロセッサの接続位置から最も離れた位置に接続された通信制限プロセッサは、同時に、障害プロセッサが属するサブプロセッサ群とは別のサブプロセッサ群に属するサブプロセッサにもなっている。
【００３９】
また、障害プロセッサ又は通信制限プロセッサが複数となる場合、通信制限プロセッサ選択部５２は、これら障害プロセッサと通信制限プロセッサとを除いたサブプロセッサのうち、第１サブプロセッサ群に属するサブプロセッサの数と第２サブプロセッサ群に属するサブプロセッサの数との差が小さくなるように、通信制限プロセッサを選択することとしてもよい。
【００４０】
なお、以上の説明においては、障害プロセッサが存在する場合に、当該障害プロセッサのバス１６に対する接続位置に応じて通信制限プロセッサを選択する場合の例について説明したが、通信制限プロセッサ選択部５２は、障害プロセッサ特定部５０によって特定される障害プロセッサが存在しない場合にも、通信制限プロセッサを選択することとしてもよい。この場合の通信制限プロセッサの数は、マルチプロセッサシステム１０が備えるサブプロセッサの数と、マルチプロセッサシステム１０がアプリケーションプログラムの実行の際に使用するサブプロセッサの数と、に応じて決定されてよい。また、この場合に通信制限プロセッサとして選択されるサブプロセッサは、所定のものであってよい。具体例として、通信制限プロセッサ選択部５２は、例えば回路配置上マルチプロセッサシステム１０の使用時に温度が上昇しやすいサブプロセッサ等、マルチプロセッサシステム１０の使用環境に応じて決定される所定のサブプロセッサを、通信制限プロセッサとして選択する。
【００４１】
通信制限部５４は、通信制限プロセッサ選択部５２が選択した通信制限プロセッサによる、バス１６を介したデータ通信を制限する。具体例として、通信制限部５４は、通信制限プロセッサによるプログラムの実行を制限することで、通信制限プロセッサによるデータ通信を制限してもよい。この場合、通信制限プロセッサは、障害プロセッサと同様に他の処理モジュールとの間のデータ通信を行わないこととなる。また、通信制限部５４は、通信制限プロセッサにアプリケーションプログラムを実行させつつ、通信制限プロセッサ内のバスインタフェースユニット１５ｃによるバス１６との間のデータ通信の帯域を所定値以下に制限することで、データ通信を制限してもよい。
【００４２】
あるいは通信制限部５４は、通信制限プロセッサに所定のプログラム（以下では、システムプログラムという）を実行させることによって、通信制限プロセッサによるデータ通信を制限してもよい。この場合のシステムプログラムは、例えば予めマルチプロセッサシステム１０内のＲＯＭ等に記憶された、他のサブプロセッサによって実行されるアプリケーションプログラムとは異なる種類のプログラムである。また、このシステムプログラムは、当該システムプログラムを実行するサブプロセッサが他の処理モジュールとの間で送受信するデータの量が、アプリケーションプログラムの場合と比較して少ないプログラムである。特にこのシステムプログラムが他のアプリケーションプログラムと独立したプログラムであれば、当該システムプログラムを実行する通信制限プロセッサは他のサブプロセッサとの間でデータ通信を行う必要はなくなる。通信制限部５４は、このようなシステムプログラムを通信制限プロセッサに実行させることによって、通信制限プロセッサによるデータ通信を制限できる。なお、このシステムプログラムは、オペレーティングシステムから直接起動され、オペレーティングシステムの制御に基づいて実行されるプログラムであってよい。こうすれば、アプリケーションプログラムの場合と比較して、システムプログラムを実行するサブプロセッサが行うデータ通信の通信量を制御しやすくできる。
【００４３】
以上説明したように、障害プロセッサのバス１６に対する接続位置に対応する位置においてバス１６に接続されたサブプロセッサを通信制限プロセッサとして選択し、当該通信制限プロセッサのバス１６を介したデータ通信を制限することによって、マルチプロセッサシステム１０は、バス１６内のデータ伝送による負荷を均一化させ、障害プロセッサのバス１６に対する接続位置によるデータ通信効率への影響を生じにくくさせることができる。
【００４４】
テーブル生成部５６は、プロセッサ対応テーブルを生成する。ここでプロセッサ対応テーブルは、サブプロセッサ１４ａ乃至１４ｈのうちの一部のサブプロセッサと、当該一部のサブプロセッサのいずれかをそれぞれ指定する複数のプロセッサ指定情報と、を関連づけるテーブルである。なお、プロセッサ対応テーブルはマルチプロセッサシステム１０内のメインメモリ２０等に予め記憶され、テーブル生成部５６は当該記憶されたプロセッサ対応テーブルを更新することとしてもよい。プロセッサ指定情報は、マルチプロセッサシステム１０内のいずれかのサブプロセッサを指定するための情報であって、例えば０以上の整数による論理プロセッサ番号として表される。この場合において、プロセッサ指定情報の数は、アプリケーションプログラムの実行の際に使用されるサブプロセッサの数に対応し、マルチプロセッサシステム１０が備えるサブプロセッサの数（８個）より少ない数である。図５は、このようなプロセッサ対応テーブルの一例を示す図である。図５の例においては、０から５までの６個の論理プロセッサ番号が、それぞれいずれかのサブプロセッサに関連づけられており、これによって各論理プロセッサ番号はいずれかのサブプロセッサを指定している。
【００４５】
テーブル生成部５６は、このプロセッサ対応テーブルを、障害プロセッサのバス１６に対する接続位置に応じて、各プロセッサ指定情報が障害プロセッサを除く複数のサブプロセッサのうちのいずれかのサブプロセッサを指定するように生成する。また、通信制限プロセッサ選択部５２がいずれかのサブプロセッサを通信制限プロセッサとして選択している場合、テーブル生成部５６は、障害プロセッサ及び通信制限プロセッサのバス１６に対する接続位置に応じて、各プロセッサ指定情報が障害プロセッサ及び通信制限プロセッサを除く複数のサブプロセッサのうちのいずれかのサブプロセッサを指定するように、プロセッサ対応テーブルを生成してもよい。また、例えば前述した例のように通信制限プロセッサに所定のシステムプログラムを実行させる場合などにおいては、複数のプロセッサ指定情報のうち、予め定められた特定のプロセッサ指定情報が通信制限プロセッサを指定するように、プロセッサ対応テーブルを生成してもよい。
【００４６】
具体例として、テーブル生成部５６は、障害プロセッサを除く各サブプロセッサのバス１６に対する接続位置に応じて、障害プロセッサを除く複数のサブプロセッサの中から各プロセッサ指定情報が指定するサブプロセッサを決定する。例えば前述した第１サブプロセッサ群の中に障害プロセッサがある場合、論理プロセッサ番号０によって指定されるサブプロセッサをサブプロセッサ１４ｂとし、以下、各論理プロセッサ番号によって指定されるサブプロセッサのバス１６に対する接続位置が順に時計回りに並ぶように、各論理プロセッサ番号が指定するサブプロセッサを決定する。また、第２サブプロセッサ群の中に障害プロセッサがある場合、論理プロセッサ番号０によって指定されるサブプロセッサをサブプロセッサ１４ａとし、以下、各論理プロセッサ番号によって指定されるサブプロセッサのバス１６に対する接続位置が順に反時計回りに並ぶように、各論理プロセッサ番号が指定するサブプロセッサを決定する。
【００４７】
図６及び図７は、このように決定された各論理プロセッサ番号によって指定されるサブプロセッサの位置関係を示す説明図である。これらの図においては、図２に示す各処理モジュールのバス１６に対する接続位置の位置関係が、簡略化して示されている。なお、図６及び図７においては、プロセッサ指定情報は０から５までの６個の論理プロセッサ番号によって表されることとし、論理プロセッサ番号ｎによって指定されるサブプロセッサはサブプロセッサ（ｎ）と表記されている。図６は、サブプロセッサ１４ａが障害プロセッサであり、サブプロセッサ１４ｈが通信制限プロセッサとして選択されている場合の例について示している。また、図７は、サブプロセッサ１４ｄが障害プロセッサであり、サブプロセッサ１４ｅが通信制限プロセッサとして選択されている場合の例について示している。
【００４８】
このように、各サブプロセッサの接続位置に応じて各論理プロセッサ番号が指定するサブプロセッサが決定されることによって、ある論理プロセッサ番号によって指定されるサブプロセッサから見た他のサブプロセッサの接続位置は、どのサブプロセッサが障害プロセッサである場合でも、同様の位置関係にあるようにすることができる。具体的に、例えば図６において、サブプロセッサ（０）から他の論理プロセッサ番号によって指定されるサブプロセッサにデータが送信される場合、サブプロセッサ（１）及びサブプロセッサ（２）に対するデータ送信には時計回りのデータ伝送路が使用される。また、サブプロセッサ（５）及びサブプロセッサ（４）に対するデータ送信には反時計回りのデータ伝送路が使用され、サブプロセッサ（３）に対するデータ送信にはいずれの向きのデータ伝送路も使用されうる。一方、図７の場合におけるサブプロセッサ（０）から他の論理プロセッサ番号によって指定されるサブプロセッサに対するデータ送信については、サブプロセッサ（１）及びサブプロセッサ（２）に対しては反時計回りのデータ伝送路が使用され、サブプロセッサ（５）及びサブプロセッサ（４）に対しては時計回りのデータ伝送路が使用される。そして、サブプロセッサ（３）に対するデータ送信には図６の場合と同様にいずれの向きのデータ伝送路も使用されうる。このように、データ伝送路の向きが逆になるものの、図６の場合も図７の場合も同じ方向のデータ伝送路によってデータが送信されるサブプロセッサの組み合わせは一致する。こうすれば、後述するようにアプリケーションプログラムに含まれる所定処理の実行を論理プロセッサ番号に応じて各サブプロセッサに割り当てることによって、どのサブプロセッサに障害があっても、アプリケーションプログラムを実行する各サブプロセッサ間のデータ伝送の環境に変化が生じないようにすることができる。
【００４９】
さらに、テーブル生成部５６は、障害プロセッサを除く各サブプロセッサのバス１６に対する接続位置と、複数の処理モジュールのうちの所定の処理モジュールのバス１６に対する接続位置と、の位置関係に応じて、障害プロセッサを除く複数のサブプロセッサの中から各プロセッサ指定情報が指定するサブプロセッサを決定してもよい。この場合における所定の処理モジュールは、前述した通信制限プロセッサ選択部５２による通信制限プロセッサの選択に用いられた注目処理モジュールと同じ処理モジュールであってよい。
【００５０】
この場合の具体例として、例えば注目処理モジュールがメインメモリ２０の場合、テーブル生成部５６は、メインメモリ２０のバス１６に対する接続位置から開始して、各論理プロセッサ番号によって指定されるサブプロセッサのバス１６に対する接続位置が順に反時計回りに並ぶように、各論理プロセッサ番号が指定するサブプロセッサを決定する。図８は、図６と同様にサブプロセッサ１４ａが障害プロセッサであり、サブプロセッサ１４ｈが通信制限プロセッサとして選択されている場合に、このように決定された各論理プロセッサ番号によって指定されるサブプロセッサの位置関係を示す説明図である。
【００５１】
このように、各サブプロセッサの接続位置と注目処理モジュールの接続位置との位置関係に応じて各論理プロセッサ番号が指定するサブプロセッサを決定することによって、注目処理モジュールから各論理プロセッサ番号が指定するサブプロセッサへのデータ通信の向きは、どのサブプロセサが障害プロセッサである場合でも、変化しないこととなる。例えば図８の例においては、メインメモリ２０からサブプロセッサ（０）、サブプロセッサ（１）及びサブプロセッサ（２）に対するデータ送信には反時計回りのデータ伝送路が使用される。また、メインメモリ２０からサブプロセッサ（５）、サブプロセッサ（４）及びサブプロセッサ（３）に対するデータ送信には時計回りのデータ伝送路が使用される。そして、これらの対応関係は、どのサブプロセッサに障害がある場合であっても、変化しない。
【００５２】
また、各論理プロセッサ番号が指定するサブプロセッサの、注目処理モジュールからデータを送信する場合のデータ伝送距離の順序も、障害サブプロセッサの接続位置に関わらず変化しないこととなる。例えば図８の例においては、メインメモリ２０から時計回りのデータ伝送路によってデータが送信される各サブプロセッサのうち、最も近い位置に接続されているのはサブプロセッサ（０）であり、次いでサブプロセッサ（１）、サブプロセッサ（２）の順にバス１６内のデータ伝送距離が長くなる。この順序は、どのサブプロセッサに障害がある場合でも、同様である。これにより、障害プロセッサの位置による、注目処理モジュールとアプリケーションプログラムを実行する各サブプロセッサとの間のデータ伝送量への影響を少なくすることができる。
【００５３】
処理実行制御部５８は、例えば光ディスク３６やハードディスク３８等から読み出されてメインメモリ２０に格納されたアプリケーションプログラムと、テーブル生成部５６によって生成されたプロセッサ対応テーブルと、に基づいて、各プロセッサ指定情報が指定するサブプロセッサのそれぞれに、アプリケーションプログラムの一部の所定処理を実行させる制御を行う。この場合におけるアプリケーションプログラムは、複数の所定処理を含んでおり、当該各所定処理がそれぞれプロセッサ指定情報のいずれかに関連づけられていることとする。この複数の所定処理は、互いに異なるサブプロセッサに割り当てられ、並行して実行されるプログラムの実行単位である。各プロセッサ指定情報によって指定されるサブプロセッサのそれぞれは、処理実行制御部５８の制御に基づいて、当該サブプロセッサを指定するプロセッサ指定情報に関連づけられた所定処理を実行する。
【００５４】
具体例として、処理実行制御部５８は、論理プロセッサ番号に対応して予め定められた論理アドレスを、当該論理プロセッサ番号によって指定されるサブプロセッサのメモリ位置を示す物理アドレスに対応づけるメモリアドレス変換テーブルを生成する。そして、生成したメモリアドレス変換テーブルを各サブプロセッサ内のバスインタフェースユニット１５ｃに対して配信する。これにより、各サブプロセッサは、論理プロセッサ番号を用いて当該論理プロセッサ番号が指定するサブプロセッサにアクセスすることができる。また、メインメモリ２０は、当該メモリ変換テーブルを用いて、各論理プロセッサ番号によって指定されるサブプロセッサに対して、それぞれのサブプロセッサに実行させる所定処理のプログラムデータを送信することができる。
【００５５】
以上説明したように、マルチプロセッサシステム１０は、障害プロセッサのバス１６に対する接続位置に応じて各プロセッサ指定情報が指定するサブプロセッサを決定し、これらのサブプロセッサが当該サブプロセッサを指定するプロセッサ指定情報に関連づけられた所定処理を実行する。こうすれば、障害プロセッサの接続位置の違いによって、各所定処理が実行されるサブプロセッサの位置関係が大きく変化することを防ぐことができる。これによって、プログラムの実行環境の変化を生じにくくすることができ、装置の個体差によるプログラムの処理速度等の違いを少なくすることができる。
【００５６】
ここで、マルチプロセッサシステム１０が実行する処理の流れの一例について、図９のフロー図に基づいて説明する。この図に示される処理は、例えばマルチプロセッサシステム１０の電源投入時などに実行される。
【００５７】
まず、マルチプロセッサシステム１０は、不揮発性メモリに格納された障害プロセッサ識別情報を読み出して、障害プロセッサを特定する（Ｓ１）。そして、障害プロセッサが存在する場合には、障害プロセッサの接続位置に応じて通信制限プロセッサを選択する（Ｓ２）。ここでは、バス１６の経路上において障害プロセッサの接続位置から最も離れた位置に接続された１個のサブプロセッサが、通信制限プロセッサとして選択されることとする。一方、障害プロセッサが存在しない場合には、所定のサブプロセッサを通信制限プロセッサとして選択する（Ｓ３）。
【００５８】
次にマルチプロセッサシステム１０は、Ｓ１で特定された障害プロセッサ及びＳ２又はＳ３で選択された通信制限プロセッサに応じて、プロセッサ対応テーブルを生成する（Ｓ４）。さらに、Ｓ３で選択された通信制限プロセッサと、Ｓ４で生成されたプロセッサ対応テーブルと、に基づいて、メモリアドレス変換テーブルを生成し（Ｓ５）、生成したメモリアドレス変換テーブルを各サブプロセッサのバスインタフェースユニット１５ｃに対して配信する（Ｓ６）。なお，Ｓ１〜Ｓ６に関する処理は、マルチプロセッサシステム１０上で走行するオペレーティングシステムによって実行されてもよい。
【００５９】
この場合において、Ｓ５で生成されるメモリアドレス変換テーブルは、論理プロセッサ番号に対応する論理アドレスを、当該論理プロセッサ番号によって指定されるサブプロセッサを示す物理アドレスに対応づけるとともに、所定のシステムプログラムの読み出し先として予め定められた論理アドレスを、通信制限プロセッサを示す物理アドレスに対応づけるアドレス変換テーブルである。このメモリアドレス変換テーブルが各サブプロセッサのバスインタフェースユニット１５ｃに配信されることによって、通信制限プロセッサはシステムプログラムを実行し、論理プロセッサ番号によって指定された各サブプロセッサは当該論理プロセッサ番号に関連づけられたアプリケーションプログラムの一部の所定処理を実行することができる。
【００６０】
なお、本発明は上記実施形態に限定されるものではなく、種々の変形実施が可能である。例えば、複数のプロセッサがリング型バス以外のバスで接続されている場合であっても、当該バスが複数のデータ伝送路を含んで構成されていれば、それぞれのデータ伝送路を介して注目処理モジュールとデータ通信を行うプロセッサの数の差が小さくなるように、通信制限プロセッサを選択することとしてもよい。これにより、複数のデータ伝送路間でデータ通信量の偏りをなくし、データ伝送の効率を向上させることができる。また、本発明の実施の形態に係るマルチプロセッサシステムは、同種プロセッサを複数備える各種の情報処理装置であってよい。
【００６１】
また、通信制限プロセッサ選択部５２は、障害プロセッサ特定部５０が特定した障害プロセッサの数に応じて、通信制限プロセッサとして選択するプロセッサの数を決定してもよい。例えば通信制限プロセッサ選択部５２は、通信制限プロセッサの数が障害プロセッサの数と同じになるように、通信制限プロセッサを選択する。この場合において、例えば前述したように各サブプロセッサを注目処理モジュールとのデータ通信に使用するデータ伝送路によって複数のサブプロセッサ群に分類した場合、通信制限プロセッサ選択部５２は、各サブプロセッサ群に含まれる障害プロセッサ及び通信制限プロセッサを除いたサブプロセッサの数が等しくなるように、通信制限プロセッサを選択してもよい。また、各障害プロセッサの接続位置に対応して、それぞれの障害プロセッサとリング型バスの反対側の位置において接続されるサブプロセッサを、通信制限プロセッサとして選択してもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態に係るマルチプロセッサシステムのハードウェア構成図である。
【図２】バスに接続された複数の処理モジュールを示す構成図である。
【図３】サブプロセッサの概略の構成を示す図である。
【図４】本発明の実施の形態に係るマルチプロセッサシステムの機能例を示す機能ブロック図である。
【図５】プロセッサ対応テーブルの一例を示す図である。
【図６】プロセッサ指定情報によって指定されるサブプロセッサの位置関係の一例を示す説明図である。
【図７】プロセッサ指定情報によって指定されるサブプロセッサの位置関係の別の例を示す説明図である。
【図８】プロセッサ指定情報によって指定されるサブプロセッサの位置関係の別の例を示す説明図である。
【図９】本発明の実施の形態に係るマルチプロセッサシステムによって実行される処理の一例を示すフロー図である。
【符号の説明】
【００６３】
１０  マルチプロセッサシステム、１１  ＭＰＵ、１２  メインプロセッサ、１４ａ〜１４ｈ  サブプロセッサ、１６  バス、１７  バスコントローラ、２０  メインメモリ、２４  画像処理部、２６  モニタ、２８  入出力処理部、３０  音声処理部、３２  スピーカ、３４  光ディスク読み取り部、３６  光ディスク、３８  ハードディスク、４０，４４  インタフェース、４２  操作デバイス、４６  カメラユニット、４８  ネットワークインタフェース、５０  障害プロセッサ特定部、５２  通信制限プロセッサ選択部、５４  通信制限部、５６  テーブル生成部、５８  処理実行制御部。
【図１】
2008123134.tif 000003
【図２】
2008123134.tif 000004
【図３】
2008123134.tif 000005
【図４】
2008123134.tif 000006
【図５】
2008123134.tif 000007
【図６】
2008123134.tif 000008
【図７】
2008123134.tif 000009
【図８】
2008123134.tif 000010
【図９】
2008123134.tif 000011