(57)【要約】    【課題】  マルチプロセッサシステムにおいて、各プロセッサが自己のプロセッサＩＤを自ら認識できるようにして、ブートコントローラを削除してマルチプロセッサシステムの小型化を図ること。    【解決手段】  本発明では、周辺機器の接続状況が異なる複数のプロセッサで構成したマルチプロセッサシステムにおいて、各プロセッサは、ブート時に各プロセッサに直接接続されている周辺機器から得られる情報に基づいて自己のプロセッサＩＤを認識するようにした。また、共有メモリを接続した複数のプロセッサで構成したマルチプロセッサシステムにおいて、各プロセッサは、ブート時に共有メモリに記憶されたデータに基づいて自己のプロセッサＩＤを認識するようにした。【選択図】      図１
2005352677.tif 000002
【特許請求の範囲】
【請求項１】
周辺機器の接続状況が異なる複数のプロセッサで構成したマルチプロセッサシステムにおいて、
各プロセッサは、ブート時に各プロセッサに直接接続されている周辺機器から得られる情報に基づいて自己のプロセッサＩＤを認識するようにしたことを特徴とするマルチプロセッサシステム。
【請求項２】
前記各プロセッサは、直接接続されている周辺機器を判別し、前記周辺機器の接続状況とプロセッサＩＤとを対応させた対応表に基づいて自己のプロセッサＩＤを認識することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
共有メモリを接続した複数のプロセッサで構成したマルチプロセッサシステムにおいて、
各プロセッサは、ブート時に共有メモリに記憶されたデータに基づいて自己のプロセッサＩＤを認識するようにしたことを特徴とするマルチプロセッサシステム。
【請求項４】
前記各プロセッサは、予め設定された順番でブートされ、ブート時に前記共有メモリのブート情報領域に固有のブート情報を書込むとともに、前記共有メモリのブート情報領域から他のプロセッサによって書込まれるブート情報を読出し、この読出したブート情報に基づいて自己のプロセッサＩＤを認識することを特徴とする請求項３に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサで構成したマルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
近年の電子機器の小型・高速・高性能化の要求に伴って、複数のプロセッサを同時に駆動することによって大量のデータを短時間で処理できるようしたマルチプロセッサシステムが開発されている。
【０００３】
このマルチプロセッサシステムは、共有するバスに複数のプロセッサを接続するとともに、各プロセッサにＩ／Ｏやメモリやセンサーなどの各種周辺機器を直接的に或いはバスを介して間接的に接続している。
【０００４】
そして、マルチプロセッサシステムでは、各プロセッサに固有のプロセッサＩＤ（プロセッサ識別因子）を割り当て、このプロセッサＩＤに基づく優先順位で各プロセッサを作動させて各種の制御を行うようにしている。
【０００５】
このように各プロセッサに固有のプロセッサＩＤを割り当てるには、各プロセッサが実行するブートプログラム中に予め特定のプロセッサＩＤを設定しておくことによって各プロセッサのプロセッサＩＤを固定してしまう場合と、ブートする毎に各プロセッサに対してプロセッサＩＤを設定することによってプロセッサＩＤをブート時ごとに可変できるようにする場合とがある。
【０００６】
これらのうち、プロセッサＩＤをブート時ごとに可変できるようにした場合には、複数のプロセッサの組合せが自由になり、また、マルチプロセッサシステムで実行する制御に応じて最適なプロセッサＩＤを割り当てることができるなど汎用性が増大する。
そのため、近年のマルチプロセッサシステムでは、プロセッサＩＤをブート時ごとに可変できるようにしており、具体的には、複数のプロセッサにブートコントローラを接続して、このブートコントローラからブート時に各プロセッサに対して個々のプロセッサＩＤを送信することによって、各プロセッサが自己のプロセッサＩＤを認識できるようにしている。
【特許文献１】特開平９−２６９８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、上記従来のマルチプロセッサシステムでは、各プロセッサに自己のプロセッサＩＤを認識させるために、プロセッサにプロセッサコントローラを接続しておかなければならなかった。
【０００８】
そのため、従来のマルチプロセッサシステムでは、プロセッサコントローラの分だけ構成部品点数が増大して、マルチプロセッサシステムが大型化してしまうとともに、製造コストが増大してしまうおそれがあった。
【課題を解決するための手段】
【０００９】
そこで、請求項１に係る本発明では、周辺機器の接続状況が異なる複数のプロセッサで構成したマルチプロセッサシステムにおいて、各プロセッサは、ブート時に各プロセッサに直接接続されている周辺機器に基づいて自己のプロセッサＩＤを認識するようにした。
【００１０】
また、請求項２に係る本発明では、前記請求項１に係る本発明において、前記各プロセッサは、直接接続されている周辺機器を判別し、前記周辺機器の接続状況とプロセッサＩＤとを対応させた対応表に基づいて自己のプロセッサＩＤを認識するようにした。
【００１１】
また、請求項３に係る本発明では、共有メモリを接続した複数のプロセッサで構成したマルチプロセッサシステムにおいて、各プロセッサは、ブート時に共有メモリに記憶されたデータに基づいて自己のプロセッサＩＤを認識するようにした。
【００１２】
また、請求項４に係る本発明では、前記請求項３に係る本発明において、前記各プロセッサは、予め設定された順番でブートされ、ブート時に前記共有メモリのブート情報領域に固有のブート情報を書込むとともに、前記共有メモリのブート情報領域から他のプロセッサによって書込まれるブート情報を読出し、この読出したブート情報に基づいて自己のプロセッサＩＤを認識するようにした。
【発明の効果】
【００１３】
そして、本発明では、以下に記載する効果を奏する。
【００１４】
そこで、請求項１に係る本発明では、周辺機器の接続状況が異なる複数のプロセッサで構成したマルチプロセッサシステムにおいて、各プロセッサは、ブート時に各プロセッサに直接接続されている周辺機器から得られる情報に基づいて自己のプロセッサＩＤを認識するようにしているため、ブートコントローラを別途用意する必要がなくなり、マルチプロセッサシステムを構成する部品点数を削減することができ、マルチプロセッサシステムの小型化を図ることができるとともに、マルチプロセッサシステムの低廉化を図ることができる。
【００１５】
しかも、プロセッサと周辺機器との接続状況に応じて最適なプロセッサＩＤを各プロセッサに割り当てることができ、マルチプロセッサシステムの最適化を容易に図ることができる。
【００１６】
また、請求項２に係る本発明では、前記各プロセッサが、直接接続されている周辺機器を判別し、前記周辺機器の接続状況とプロセッサＩＤとを対応させた対応表に基づいて自己のプロセッサＩＤを認識するようにしているため、この対応表を適宜変更するだけで、各プロセッサに割り当てるプロセッサＩＤを容易に変更することができる。
【００１７】
また、請求項３に係る本発明では、共有メモリを接続した複数のプロセッサで構成したマルチプロセッサシステムにおいて、各プロセッサは、ブート時に共有メモリに記憶されたデータに基づいて自己のプロセッサＩＤを認識するようにしているため、ブートコントローラを別途用意する必要がなくなり、マルチプロセッサシステムを構成する部品点数を削減することができ、マルチプロセッサシステムの小型化を図ることができるとともに、マルチプロセッサシステムの低廉化を図ることができる。
【００１８】
しかも、全てのプロセッサと周辺機器との接続状況が同一の構造となっているマルチプロセッサシステムであっても、各プロセッサが自己のプロセッサＩＤを確実に認識することができる。
【００１９】
また、請求項４に係る本発明では、前記各プロセッサが、予め設定された順番でブートされ、ブート時に前記共有メモリのブート情報領域に固有のブート情報を書込むとともに、前記共有メモリのブート情報領域から他のプロセッサによって書込まれるブート情報を読出し、この読出したブート情報に基づいて自己のプロセッサＩＤを認識するようにしているため、ブートの順番を適宜変更するだけで、各プロセッサに割り当てるプロセッサＩＤを容易に変更することができる。
【発明を実施するための最良の形態】
【００２０】
本発明に係るマルチプロセッサシステムは、共有するバスに複数のプロセッサを接続するとともに、各プロセッサにＩ／Ｏやメモリやセンサーなどの各種周辺機器を直接的に或いはバスを介して間接的に接続したものである。なお、本発明に係るマルチプロセッサシステムは、同一基板上に複数のプロセッサを実装したマルチプロセッサモジュールであってもよく、また、複数の基板上に各プロセッサを実装するとともに複数のプロセッサを相互に接続したものであってもよい。
【００２１】
そして、本発明に係るマルチプロセッサシステムは、従来のようにブートコントローラによって各プロセッサにプロセッサＩＤを割り当てるのではなく、各プロセッサが自ら自己のプロセッサＩＤを認識するようにしたものであり、これにより、ブートコントローラを別途用意する必要がなくなり、マルチプロセッサシステムを構成する部品点数を削減することができ、マルチプロセッサシステムの小型化を図ることができるとともに、マルチプロセッサシステムの低廉化を図ることができるものである。
【００２２】
そのための方法としては、マルチプロセッサシステムにおけるプロセッサと周辺機器との接続形態によって異なる。
【００２３】
すなわち、周辺機器の接続状況が異なる複数のプロセッサで構成したマルチプロセッサシステムの場合には、各プロセッサがブート時に各プロセッサに直接接続されている周辺機器に基づいて自己のプロセッサＩＤを認識するようにしている。この場合には、プロセッサと周辺機器との接続状況に応じて最適なプロセッサＩＤを各プロセッサに割り当てることができ、マルチプロセッサシステムの最適化を容易に図ることができる。
【００２４】
より具体的には、各プロセッサが直接接続されている周辺機器を判別し、周辺機器の接続状況とプロセッサＩＤとを対応させた対応表に基づいて自己のプロセッサＩＤを認識するようにしている。この場合には、対応表を適宜変更するだけで、各プロセッサに割り当てるプロセッサＩＤを容易に変更することができる。
【００２５】
また、周辺機器の接続状況が同一である複数のプロセッサで構成したマルチプロセッサシステムであって、共有メモリを接続した複数のプロセッサで構成したマルチプロセッサシステムの場合には、各プロセッサがブート時に共有メモリに記憶されたデータに基づいて自己のプロセッサＩＤを認識するようにしている。この場合には、全てのプロセッサと周辺機器との接続状況が同一の構造となっているマルチプロセッサシステムであっても、各プロセッサが自己のプロセッサＩＤを確実に認識することができる。
【００２６】
より具体的には、各プロセッサが予め設定された順番でブートされ、ブート時に共有メモリのブート情報領域に固有のブート情報を書込むとともに、共有メモリのブート情報領域から他のプロセッサによって書込まれるブート情報を読出し、この読出したブート情報に基づいて自己のプロセッサＩＤを認識するようにしている。この場合には、ブートの順番を適宜変更するだけで、各プロセッサに割り当てるプロセッサＩＤを容易に変更することができる。
【００２７】
なお、本発明におけるブートには、電源投入直後のブートに限られず、リセット信号によるリブートも含まれる。
【００２８】
以下に、本発明に係るマルチプロセッサシステムの具体的な構成について図面を参照しながら説明する。なお、以下の説明中の周辺機器とは、Ｉ／Ｏやメモリやセンサーなどの各種周辺機器を指している。
【００２９】
まず、周辺機器の接続状況が異なる複数のプロセッサで構成したマルチプロセッサシステムの場合について説明する。
【００３０】
マルチプロセッサシステム１は、図１に示すように、第１のプロセッサ２と第２のプロセッサ３を共有バス４を介して接続している。
【００３１】
そして、第１のプロセッサ２には、第１の周辺機器５が専用バス６を介して接続されており、一方、第２のプロセッサ３には、第２の周辺機器７が専用バス８を介して接続されている。
【００３２】
また、マルチプロセッサシステム１は、第１及び第２のプロセッサ2,3に周辺機器9,10,11を共有バス４を介して接続している。
【００３３】
このマルチプロセッサシステム１では、第１及び第２のプロセッサ2,3がそれぞれ独自のブートプログラムを同時に実行する。
【００３４】
そして、各プロセッサ2,3は、ブートプログラムの実行時に周辺機器5,7,9,10,11の初期化を行い、その後、各プロセッサ2,3に専用バス6,8を介して周辺機器5,7から得られた情報に基づいて各プロセッサ2,3に専用バス6,8を介して直接接続された周辺機器5,7の有無を判別する。
【００３５】
その判別の結果、各プロセッサ2,3は、図２の周辺機器接続状況とプロセッサＩＤとの対応表に基づいて自己のプロセッサＩＤを認識する。
【００３６】
たとえば、本実施例では、第１のプロセッサ２の場合には、周辺機器５が直接接続されていると判別されるとともに、周辺機器７が直接接続されていないと判別され、その場合には、図２の対応表に基づいて自己のプロセッサＩＤが「マスターＡ」であると認識し、一方、第２のプロセッサ３の場合には、周辺機器５が直接接続されていないと判別されるとともに、周辺機器７が直接接続されていると判別され、その場合には、図２の対応表に基づいて自己のプロセッサＩＤが「スレーブＡ」であると認識する。
【００３７】
なお、周辺機器５が直接接続されていると判別されるとともに、周辺機器７も直接接続されていると判別された場合には、自己のプロセッサＩＤが「マスターＢ」であると認識し、また、周辺機器５が直接接続されていないと判別されるとともに、周辺機器７も直接接続されていないと判別された場合には、自己のプロセッサＩＤが「スレーブＢ」であると認識する。
【００３８】
以上に説明したようにして、各プロセッサ2,3がブートコントローラを用いずに自己のプロセッサＩＤを自ら認識することができる。
【００３９】
次に、周辺機器の接続状況が同一である複数のプロセッサで構成したマルチプロセッサシステムであって、共有メモリを接続した複数のプロセッサで構成したマルチプロセッサシステムの場合について説明する。
【００４０】
マルチプロセッサシステム21は、図３に示すように、第１のプロセッサ22と第２のプロセッサ23を共有バス24を介して接続している。
【００４１】
そして、第１及び第２のプロセッサ22,23には、共有メモリ25が専用バス26,27を介してそれぞれ接続されている。
【００４２】
また、マルチプロセッサシステム21は、第１及び第２のプロセッサ22,23に周辺機器30,31,32を共有バス24を介して接続している。
【００４３】
このマルチプロセッサシステム21は、第１のプロセッサ22を第１のブート信号28でブートする一方、第２のプロセッサ23を第２のブート信号29でブートするようにしており、この第１及び第２のブート信号28,29は、異なるタイミングで各プロセッサ22,23をブートするようにしている。
【００４４】
そして、このマルチプロセッサシステム21では、第１及び第２のブート信号28,29に応じて第１及び第２のプロセッサ22,23が独自のブートプログラムをそれぞれ実行する。
【００４５】
各プロセッサ22,23は、図４に示すブートプログラムを実行し、まず、ブートプログラムの実行直後に周辺機器30,31,32の初期化を行う（ステップS1）。
【００４６】
次に、各プロセッサ22,23は、共有メモリ25のうちのブート情報領域の自己のブート情報を書込むアドレスに自己のブート情報を書込む（ステップS2）。
【００４７】
次に、各プロセッサ22,23は、共有メモリ25のうちのブート情報領域の他のプロセッサ22,23のブート情報を書込むアドレスからブート情報を読出す（ステップS3）。
【００４８】
そして、各プロセッサ22,23は、共有メモリ25のうちのブート情報領域の他のプロセッサ22,23のブート情報を書込むアドレスから読出したブート情報に基づいて自己のプロセッサＩＤを認識する（ステップS4）。
【００４９】
具体的に説明すると、図５に示すように、第１のプロセッサ22を最初にブートし、次に第２のプロセッサ23をブートするようにし、まず、第１のプロセッサ22がブートプログラムに従ってブートを開始し、第１のプロセッサ22が周辺機器30,31,32の初期化を行った後に、共有メモリ25のうちのブート情報領域の第１のプロセッサ22のブート情報を書込むアドレス（＃１）に第１のプロセッサ22のブート情報（「ＲＤＹ」）を書込む。
【００５０】
次に、第２のプロセッサ23がブートプログラムに従ってブートを開始する。
【００５１】
次に、第１のプロセッサ22は、共有メモリ25のうちのブート情報領域の第２のプロセッサ23のブート情報を書込むアドレス（＃２）からブート情報（ここでは、初期値「ＩＮＴ」）を読出す。
【００５２】
次に、第２のプロセッサ23が共有メモリ25のうちのブート情報領域の第２のプロセッサ23のブート情報を書込むアドレス（＃２）に第２のプロセッサ23のブート情報（「ＲＤＹ」）を書込む。
【００５３】
次に、第１のプロセッサ22が共有メモリ25のうちのブート情報領域の第２のプロセッサ23のブート情報を書込むアドレス（＃２）から読出したブート情報（ここでは、初期値「ＩＮＴ」）に基づいて自己のプロセッサＩＤを認識する。ここでは、読出したブート情報が「ＩＮＴ」の場合には、プロセッサＩＤとして「マスター」を認識し、一方、読出したブート情報が「ＲＤＹ」の場合には、プロセッサＩＤとして「スレーブ」を認識するようにしておき、これによって、第１のプロセッサ22は、読出したブート情報が「ＩＮＴ」であるためにプロセッサＩＤとして「マスター」を認識する。
【００５４】
次に、第２のプロセッサ23は、共有メモリ25のうちのブート情報領域の第１のプロセッサ22のブート情報を書込むアドレス（＃１）からブート情報（ここでは、初期値「ＲＤＹ」）を読出す。
【００５５】
次に、第２のプロセッサ23が共有メモリ25のうちのブート情報領域の第１のプロセッサ22のブート情報を書込むアドレス（＃１）から読出したブート情報（ここでは、初期値「ＲＤＹ」）に基づいて自己のプロセッサＩＤを認識する。ここでは、読出したブート情報が「ＩＮＴ」の場合には、プロセッサＩＤとして「マスター」を認識し、一方、読出したブート情報が「ＲＤＹ」の場合には、プロセッサＩＤとして「スレーブ」を認識するようにしておき、これによって、第２のプロセッサ23は、読出したブート情報が「ＲＤＹ」であるためにプロセッサＩＤとして「スレーブ」を認識する。
【００５６】
以上に説明したようにして、各プロセッサ22,23がブートコントローラを用いずに自己のプロセッサＩＤを自ら認識することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明に係るマルチプロセッサシステムを示すブロック図
【図２】周辺機器の接続状況とプロセッサＩＤとの関係を示す対応表。
【図３】他のマルチプロセッサシステムを示すブロック図。
【図４】ブートプログラムを示すフローチャート。
【図５】マルチプロセッサシステムのブート時の動作を示す説明図。
【符号の説明】
【００５８】
1,21  マルチプロセッサシステム
2,22  第１のプロセッサ
3,23  第２のプロセッサ
4,24  共有バス
5,7,9,10,11,30,31,32  周辺機器
6,8,26,27  専用バス
25  共有メモリ
【図１】
2005352677.tif 000003
【図２】
2005352677.tif 000004
【図３】
2005352677.tif 000005
【図４】
2005352677.tif 000006
【図５】
2005352677.tif 000007