(57)【要約】【課題】マルチプロセッサ間のスケジュール情報の確認に起因したオーバヘッドを削減可能なマルチプロセッサシステムを提供する【解決手段】それぞれ所定の処理を実行する複数の機能モジュールと、これらの機能モジュールに接続して処理の実行を制御する複数のプロセッサを有するマルチプロセッサシステムにおいて、プロセッサがいずれか１つの機能モジュールに接続された場合にそのプロセッサが他の機能モジュールと接続することを禁止する接続制御手段を設ける。特に、接続制御手段は、機能モジュールに接続したプロセッサが他の機能モジュールにアクセスした場合に、このプロセッサに、他の機能モジュールの代わりにその機能モジュールの起動要求を行わせない非起動要求値を返すように構成する。【選択図】図１
2005242616.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ所定の処理を実行する複数の機能モジュールと、これらの機能モジュールに接続して前記処理の実行を制御する複数のプロセッサを有するマルチプロセッサシステムにおいて、
前記プロセッサがいずれか１つの前記機能モジュールに接続された場合にその前記プロセッサが他の機能モジュールと接続することを禁止する接続制御手段を設けたことを特徴とするマルチプロセッサシステム。
【請求項２】
前記接続制御手段は、前記機能モジュールに接続した前記プロセッサが前記他の機能モジュールにアクセスした場合に、このプロセッサに、前記他の機能モジュールの代わりにその機能モジュールの起動要求を行わせない非起動要求値を返すように構成したことを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記プロセッサと前記接続制御手段とをそれぞれ少なくとも１つずつ搭載したプロセッサモジュールを有し、このプロセッサモジュールを前記機能モジュールが搭載された実装基板に着脱自在として、この実装基板に搭載される前記プロセッサの数を増減可能としていることを特徴とする請求項１または請求項２に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
従来、所要の演算処理等を実行させる演算処理システムとして、それぞれ所定の処理を実行する複数の機能モジュールと、これらの機能モジュールでの処理実行を制御して目的の処理を実行可能としたプロセッサを有するプロセッサシステムが知られている。
【０００３】
このようなプロセッサシステムでは、機能モジュールの動作タイプによって、能動機能型のプロセッサシステムと、受動機能型のプロセッサシステムの２種類が存在している。
【０００４】
能動機能型のプロセッサシステムでは、機能モジュールが能動的に動作を開始するために、機能モジュールからプロセッサに対してポーリングまたは割り込みによる起動要求が行われ、プロセッサでは起動要求をした機能モジュールを制御するようにしている。
【０００５】
一方、受動機能型のプロセッサシステムでは、機能モジュールが受動的に動作を開始するために、プロセッサから機能モジュールに対して起動要求を行った場合、及び機能モジュールがプロセッサに対して終了要求を行った場合に、プロセッサは機能モジュールを制御するようにしている。
【０００６】
すなわち、図１２（ａ）に示すように、例えば一つのプロセッサ100が第１の機能モジュール210と、第２の機能モジュール220と、第３の機能モジュール230とを制御している場合に、第１〜３の機能モジュール210,220,230が全てポーリングによって起動要求を行う場合には、プロセッサ100は各機能モジュール210,220,230がポーリングによって起動要求していないかを各機能モジュール210,220,230に逐次アクセスして確認しながら制御を行っている。以下において、このタイプのプロセッサシステムを「タイプＡシステム」と呼ぶ。
【０００７】
また、図１２（ｂ）に示すように、例えば一つのプロセッサ100が第１の機能モジュール210と、第２の機能モジュール220と、第３の機能モジュール230とを制御している場合に、第１〜３の機能モジュール210,220,230が全て割り込みによって起動要求を行う場合には、プロセッサ100は各機能モジュール210,220,230からの割り込みを待ち受けており、プロセッサ100は割り込みを行った機能モジュール210,220,230に対してアクセスするようにしている。以下において、このタイプのプロセッサシステムを「タイプＢシステム」と呼ぶ。
【０００８】
また、図１２（ｃ）に示すように、例えば一つのプロセッサ100が第１の機能モジュール210と、第２の機能モジュール220と、第３の機能モジュール230とを制御している場合であって、第１の機能モジュール210はポーリングによって起動要求するとともに、第２の機能モジュール220と第３の機能モジュール230は割り込みによって起動要求を行う場合には、プロセッサ100は第１の機能モジュール210がポーリングによって起動要求していないかを第１の機能モジュール210に逐次アクセスして確認するとともに、第２の機能モジュール220と第３の機能モジュール230に対しては割り込みを待ち受け、割り込みがあった場合にプロセッサ100は割り込みを行った第２の機能モジュール220または第３の機能モジュール230に対してアクセスするようにしている。以下において、このタイプのプロセッサシステムを「タイプＣシステム」と呼ぶ。
【０００９】
一方、図１３に示すように、一つのプロセッサ100が第１の機能モジュール210と、第２の機能モジュール220と、第３の機能モジュール230とを制御している場合であって、第１〜３の機能モジュール210,220,230が全て受動的に動作を開始する場合には、プロセッサ100はアクセスする必要が生じた場合にのみ各機能モジュール210,220,230とそれぞれアクセスするようにしている。以下において、このタイプのプロセッサシステムを「タイプＤシステム」と呼ぶ。
【００１０】
タイプＡシステム及びタイプＣシステムでは、起動要求するポーリング型の機能モジュールを有していることにより、プロセッサは逐次機能モジュールにアクセスする必要があるが、タイプＢシステム及びタイプＤシステムではその必要はない。
【００１１】
上記したプロセッサシステムにおいて、プロセッサを複数設けて、各機能モジュールの制御を各プロセッサに分散させることによって処理の負荷を分散させたマルチプロセッサシステムが知られている。
【００１２】
このようなマルチプロセッサシステムには、各機能モジュールの処理によって構成される各処理プロセスを、どのプロセッサで実行するかを割り当てるプロセススケジューラを設けており、このプロセススケジューラの制御に基づいて各プロセッサは所要の機能モジュールを動作させて所定の処理を実行している。
【００１３】
そのため、マルチプロセッサシステムでは、プロセススケジューラによるプロセスのスケジューリング作業のためのオペレーティングシステムに起因したオーバヘッドが発生しており、このオーバヘッドによって高速処理が阻害されることを防止するためにオーバヘッドの発生を抑制するプロセススケジューリング方法が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平３−１１３５６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記したタイプＡシステムやタイプＣシステムのように起動要求を行うポーリング型の機能モジュールを含んでいるマルチプロセッサシステムでは、スケジューリング作業を調整してオーバヘッドの時間を削減しても、各プロセッサが所要の機能モジュールの処理を実行している際に、そのプロセッサが他の機能モジュールからの起動要求がないかを確認して、プロセッサを動作させているオペレーティングシステム同士でスケジュール情報を遣り取りする場合があり、この作業に起因して発生したオーバヘッドによって高速処理が阻害されているという問題があった。
【００１５】
そこで、本発明者は、このようなオーバヘッドの発生を削減することによって高速処理が可能なマルチプロセッサシステムを開発すべく研究を行い、本発明を成すに至ったものである。
【課題を解決するための手段】
【００１６】
本発明のマルチプロセッサシステムでは、それぞれ所定の処理を実行する複数の機能モジュールと、これらの機能モジュールに接続して処理の実行を制御する複数のプロセッサを有するマルチプロセッサシステムにおいて、プロセッサがいずれか１つの機能モジュールに接続された場合にそのプロセッサが他の機能モジュールと接続することを禁止する接続制御手段を設けた。
【００１７】
また、接続制御手段は、機能モジュールに接続したプロセッサが他の機能モジュールにアクセスした場合に、このプロセッサに、他の機能モジュールの代わりにその機能モジュールの起動要求を行わせない非起動要求値を返すように構成していることにも特徴を有するものである。
【００１８】
さらに、プロセッサと接続制御手段とをそれぞれ少なくとも１つずつ搭載したプロセッサモジュールを有し、このプロセッサモジュールを機能モジュールが搭載された実装基板に着脱自在として、この実装基板に搭載されるプロセッサの数を増減可能としていることにも特徴を有するものである。
【発明の効果】
【００１９】
請求項１記載の発明によれば、それぞれ所定の処理を実行する複数の機能モジュールと、これらの機能モジュールに接続して処理の実行を制御する複数のプロセッサを有するマルチプロセッサシステムにおいて、プロセッサがいずれか１つの機能モジュールに接続された場合にそのプロセッサが他の機能モジュールと接続することを禁止する接続制御手段を設けたことによって、１つの機能モジュールの処理を行っているプロセッサが他の機能モジュールからの起動要求によって、実行している処理を中断して起動要求した機能モジュールを起動することを防止して、余計なオーバヘッドが発生することを抑止し、高速処理を可能とすることができる。
【００２０】
請求項２記載の発明によれば、機能モジュールに接続したプロセッサが他の機能モジュールにアクセスした場合に、このプロセッサに、他の機能モジュールの代わりにその機能モジュールの起動要求を行わせない非起動要求値を返すように接続制御手段を構成したことによって、プロセッサを駆動させているプログラムに大きな修正を加えることなくマルチプロセッサ化を図ることができる。
【００２１】
請求項３記載の発明によれば、プロセッサと接続制御手段とをそれぞれ少なくとも１つずつ搭載したプロセッサモジュールを有し、このプロセッサモジュールを機能モジュールが搭載された実装基板に着脱自在として、この実装基板に搭載されるプロセッサの数を増減可能としたことによって、処理の負荷に応じてプロセッサモジュールの数を調整することによりマルチプロセッサシステムの処理能力を容易に調整可能とすることができる。
【発明を実施するための最良の形態】
【００２２】
本発明のマルチプロセッサシステムでは、それぞれ所定の処理を実行する複数の機能モジュールと、これらの機能モジュールに接続して処理の実行を制御する複数のプロセッサを有するマルチプロセッサシステムにおいて、プロセッサがいずれか１つの機能モジュールに接続された場合にそのプロセッサが他の機能モジュールと接続することを禁止して、あらかじめ接続した機能モジュールの処理だけを実行するように構成しているものである。
【００２３】
したがって、１つの機能モジュールの処理を行っているプロセッサが他の機能モジュールからの起動要求によって起動することを防止できるので、余計なオーバヘッドが発生することを抑止して、高速処理を可能とすることができる。
【００２４】
より具体的に説明すると、例えば単一のプロセッサで全ての機能モジュールの処理を実行するシングルプロセッサシステムの場合では、プロセッサに接続されている機能モジュール以外の機能モジュールからポーリングによる起動要求や割り込みがあった場合には、実行していた機能モジュールでの処理の実行を中断し、起動要求を行った機能モジュールや割り込みを行った機能モジュールの処理を実行するようにしなければならなかった。
【００２５】
そこで、プロセッサを複数としてマルチプロセッサシステムとした場合には、割り込みを行った機能モジュールの処理の実行は、機能モジュールが接続されていないプロセッサで処理させることにより並列して処理が実行されるので処理時間の短縮化を図る一方で、各プロセッサが所定の機能モジュールの処理中に、他の機能モジュールから接続要求がないかを確認しようとした場合に、そのプロセッサには他の機能モジュールからの起動要求が入力されないようにして、１つのプロセッサは先に接続した１つの機能モジュールによる処理が終了するまでは他の機能モジュールと接続させないようにしている。
【００２６】
このように、１つの機能モジュールと接続中のプロセッサによる他の機能モジュールへの接続を禁止するようにプロセッサの接続制御を行うことによって、プロセッサは接続されている機能モジュールの処理を中断させることなく実行することができる。
【００２７】
特に、プロセッサには他の機能モジュールからの起動要求が入力されないようにする接続制御手段として、１つの機能モジュールと接続しているプロセッサが他の機能モジュールの起動要求の有無を確認するアクセスを行った場合に、このプロセッサに、他の機能モジュールの代わりにその機能モジュールの起動要求を行わせない非起動要求値を返すことで他の機能モジュールへの接続を禁止するようにしている。
【００２８】
したがって、所定の機能モジュールと接続されたプロセッサが、その機能モジュールによる処理を中断して他の機能モジュールの処理を開始することを極めて容易に禁止できる。
【００２９】
また、各プロセッサは全ての機能モジュールの処理ができればよいので、各プロセッサは同じ処理機能を有するプロセッサとすることができる。そして、同じ処理機能を有する同一のプロセッサと、そのプロセッサが使用するプログラムを個々にカスタマイズすることなく使用できるので、開発及び生産における低コスト化を図ることができる。
【００３０】
さらに、プロセッサとコントローラとをそれぞれ少なくとも１つずつ搭載したプロセッサモジュールを構成し、このプロセッサモジュールを機能モジュールが搭載された実装基板に着脱自在として、この実装基板に搭載されるプロセッサの数を増減可能としており、処理の負荷に応じてプロセッサモジュールの数を調整することによってマルチプロセッサシステムの処理能力を容易に調整可能とすることができる。
【００３１】
以下において、図面を用いながら本発明の実施形態を詳説する。図１は、本実施形態のマルチプロセッサシステムＡの概略説明図である。
【００３２】
マルチプロセッサシステムＡでは、それぞれ所定の処理を実行する複数の機能モジュールf-1,f-2,・・・,f-mと、これらの機能モジュールf-1,f-2,・・・,f-mにおける処理の実行を制御する複数のスレーブプロセッサSP-1,SP-2,・・・,SP-nと、これらのスレーブプロセッサSP-1,SP-2,・・・,SP-nの処理結果を用いて処理を行うマスタプロセッサMPと、このマスタプロセッサMP及びスレーブプロセッサSP-1,SP-2,・・・,SP-nが使用する複数のワーク用メモリM-0,M-1,M-2,・・・,M-nと、各スレーブプロセッサSP-1,SP-2,・・・,SP-nに対応させて設けた接続制御手段としてのフェイクコントローラFC-1,FC-2,・・・,FC-nとを、バス監視装置BCによって制御されるバススイッチBSを介して適宜接続することにより所定の処理を実行するようにしている。
【００３３】
マスタプロセッサMPは、マスタプロセッサMPに接続したプログラム用メモリpm-0に格納されたマスタプロセッサMP用のプログラムに基づいて、マルチプロセッサシステムＡのシステム全体を制御している。したがって、本実施形態では、マスタプロセッサMPは各機能モジュールf-1,f-2,・・・,f-mにはアクセスせず、スレーブプロセッサSP-1,SP-2,・・・,SP-nの処理結果のみをさらに処理するようにしている。
【００３４】
スレーブプロセッサSP-1,SP-2,・・・,SP-nは、各スレーブプロセッサSP-1,SP-2,・・・,SP-nに接続したプログラム用メモリpm-1,pm-2,・・・,pm-nに格納されたスレーブプロセッサSP-1,SP-2,・・・,SP-n用のプログラムに基づいて、所要の機能モジュールf-1,f-2,・・・,f-mを用いた処理を実行するようにしている。特に、スレーブプロセッサSP-1,SP-2,・・・,SP-nと接続しているプログラム用メモリpm-1,pm-2,・・・,pm-nは対象とするシステムに必要な同じ内容のプログラムをそれぞれ格納している。
【００３５】
ワーク用メモリM-0,M-1,M-2,・・・,M-nは、マスタプロセッサMP及び各スレーブプロセッサSP-1,SP-2,・・・,SP-nでの処理結果を格納するためにマスタプロセッサMPとスレーブプロセッサSP-1,SP-2,・・・,SP-nの総数に相当する数、すなわちｎ＋１個設けている。
【００３６】
バス監視装置BCには、マスタプロセッサMP、全てのスレーブプロセッサSP-1,SP-2,・・・,SP-n、全てのワーク用メモリM-0,M-1,M-2,・・・,M-n、全ての機能モジュールf-1,f-2,・・・,f-m、全てのフェイクコントローラFC-1,FC-2,・・・,FC-nを接続し、これらの動作状態を監視している。そしてバス監視装置BCは、取得した動作状態情報からバススイッチBSを制御するためのスイッチ用テーブルSTを生成し、このスイッチ用テーブルSTに基づいてバススイッチBSを制御して、所定のスレーブプロセッサと機能モジュールとフェイクコントローラとワーク用メモリとを接続するようにしている。
【００３７】
本実施形態では、フェイクコントローラFC-1,FC-2,・・・,FC-nは、各スレーブプロセッサSP-1,SP-2,・・・,SP-nに１つずつ接続するために、スレーブプロセッサSP-1,SP-2,・・・,SP-nと同数だけ設けている。上記システムにおいて、スレーブプロセッサSP-1,SP-2,・・・,SP-n以外にスレーブされていないプロセッサもある場合が考えられるが、これは単に従来技術と本発明の併存であるので、説明、図示等は行わない。
【００３８】
各フェイクコントローラFC-1,FC-2,・・・,FC-nは、図１に示すようにそれぞれバスインターフェース部11と、各機能モジュールf-1,f-2,・・・,f-mのレジスタの正常値を記憶する正常値記憶部12と、割り込み信号を生成する割り込み信号生成部13とで構成している。
【００３９】
バスインターフェース部11では、バススイッチBSとアドレスやデータ等のバス信号の遣り取りを行うようにしている。
【００４０】
正常値記憶部12は、メモリ若しくはレジスタで構成し、各機能モジュールf-1,f-2,・・・,f-mのレジスタの正常値を記憶して、必要に応じてこの正常値をスレーブプロセッサSP-1,SP-2,・・・,SP-nに返している。この正常値が、機能モジュールの起動要求を行わせない非起動要求値である。
【００４１】
割り込み信号生成部13では、割り込み信号を出力する機能モジュールの代わりにその割り込み信号を生成して、図示しないタイマ装置を用いて所定のタイミングで出力するようにしており、所定時間の経過後にフェイクコントローラに接続しているスレーブプロセッサに割り込み信号を送信するようにしている。
【００４２】
以下において、上記したマルチプロセッサシステムＡの動作について、以下の３つの場合に分けて説明する。なお、機能モジュールf-1,f-2,・・・,f-mはいずれも能動機能型かつポーリング型であるものとし、各機能モジュールf-1,f-2,・・・,f-mの処理優先度は、全て同じであるとする。
【００４３】
（１−１）ブート時
（１−２）１つの機能モジュールが起動要求を出す場合
（１−３）２つの機能モジュールが起動要求を出す場合
【００４４】
（１−１）ブート時
まず、マスタプロセッサMP及び各スレーブプロセッサSP-1,SP-2,・・・,SP-nは、それぞれのプログラム用メモリpm-0,pm-1,pm-2,・・・,pm-nに格納されたプログラムに基づいて起動する。
【００４５】
このとき、各機能モジュールf-1,f-2,・・・,f-mは、図３（ａ）のバス接続状態テーブルに示すように、デフォルトで設定した第１スレーブプロセッサSP-1に接続し、第１スレーブプロセッサSP-1が全機能モジュールf-1,f-2,・・・,f-mを制御するようにしている。この時点では、機能モジュールf-1,f-2,・・・,f-mから接続要求が出されておらず、第１スレーブプロセッサSP-1は接続の待機状態となっている。図３（ａ）中、黒丸は機能モジュールf-1,f-2,・・・,f-mが第１スレーブプロセッサSP-1の制御下であることを示している。
【００４６】
一方、第１スレーブプロセッサSP-1以外のスレーブプロセッサSP-2,・・・,SP-nは、図３（ｂ）のバス接続状態テーブルに示すように、それぞれフェイクコントローラFC-2,・・・,FC-nと１：１で接続している。図３（ｂ）中、白丸はスレーブプロセッサとフェイクコントローラとがバススイッチBSによって接続されていることを示している。
【００４７】
そして、フェイクコントローラFC-2,・・・,FC-nに接続されたスレーブプロセッサSP-1,・・・,SP-nでは、フェイクコントローラFC-2,・・・,FC-nによって各機能モジュールf-1,f-2,・・・,f-mのレジスタの正常値が逐次返されることによって、各機能モジュールf-1,f-2,・・・,f-mをあたかも制御しているように動作している。
【００４８】
（１−２）１つの機能モジュールが起動要求を出す場合
ここでは、第１機能モジュールf-1が起動要求を行うものとする。各機能モジュールf-1,f-2,・・・,f-mを制御している第１スレーブプロセッサSP-1が、第１機能モジュールf-1からの起動要求を検出すると、バス監視装置BCは第１スレーブプロセッサSP-1と第１機能モジュールf-1とを接続する。
【００４９】
一方、それまで第１スレーブプロセッサSP-1で制御されていた第１機能モジュールf-1以外の機能モジュールf-2,・・・,f-mは、第１スレーブプロセッサSP-1以外のスレーブプロセッサ、今の場合は第２スレーブプロセッサSP-2で制御するように、図４（ａ）のバス接続状態テーブルに示すようにバススイッチBSを切り替えている。
【００５０】
このとき、第１機能モジュールf-1が接続された第１スレーブプロセッサSP-1には、図４（ｂ）のバス接続状態テーブルに示すように第１フェイクコントローラFC-1を接続して、第１スレーブプロセッサSP-1が第１機能モジュールf-1との接続中に他の機能モジュールにアクセスしようとした場合には、フェイクコントローラFC-1によって各機能モジュールf-2,・・・,f-mのレジスタの正常値を逐次返して、他の機能モジュールf-2,・・・,f-mにあたかも接続しているように動作させ、他の機能モジュールf-2,・・・,f-mへの実質的な接続を禁止している。
【００５１】
なお、第１スレーブプロセッサSP-1に第１機能モジュールf-1と第１フェイクコントローラFC-1とを接続する場合には、第１スレーブプロセッサSP-1が第１機能モジュールf-1以外の機能モジュールf-2,・・・,f-mにアクセスしていないときにスイッチ用テーブルSTを書き換えて、バスの切り替えを行っている。
【００５２】
第１スレーブプロセッサSP-1による第１機能モジュールf-1の処理結果は、第１ワークメモリM-1に書き出され、マスタプロセッサMPはこの処理結果を読み込んで次の処理に移るようにしている。
【００５３】
（１−３）２つの機能モジュールが起動要求を出す場合
ここでは、第１機能モジュールf-1と第２機能モジュールf-2が起動要求を行うものとする。各機能モジュールf-1,f-2,・・・,f-mを制御している第１スレーブプロセッサSP-1が、第１機能モジュールf-1からの起動要求と第２機能モジュールf-2からの起動要求とを検出すると、第１機能モジュールf-1と第２機能モジュールf-2とで処理優先度が同じ場合は、ここでは、第１スレーブプロセッサSP-1と第１機能モジュールf-1とを接続する。第１スレーブプロセッサSP-1と第１機能モジュールf-1との接続は、上記した「（１−２）１つの機能モジュールが起動要求を出す場合」と同様であるので説明は省略する。
【００５４】
第１スレーブプロセッサSP-1では、第２機能モジュールf-2からの起動要求を検出しているが、第１スレーブプロセッサSP-1が第２機能モジュールf-2にアクセスする場合には、第１スレーブプロセッサSP-1に接続したフェイクコントローラFC-1が第２機能モジュールf-2のレジスタの正常値を返すことにより、第１スレーブプロセッサSP-1が第２機能モジュールf-2に接続されることを防止している。
【００５５】
また、第１スレーブプロセッサSP-1が第１機能モジュールf-1及び第２機能モジュールf-2以外の機能モジュールf-2にアクセスする場合にも、フェイクコントローラFC-1が各機能モジュールf-2,・・・,f-mのレジスタの正常値を逐次返すことにより、他の機能モジュールf-2,・・・,f-mにあたかも接続しているように動作させ、他の機能モジュールf-2,・・・,f-mへの実質的な接続を禁止している。
【００５６】
次いで、各機能モジュールf-2,・・・,f-mを制御している第２スレーブプロセッサSP-2が第２機能モジュールf-2からの起動要求を検出して、バス監視装置BCは第２スレーブプロセッサSP-2と第２機能モジュールf-2とを接続する。
【００５７】
一方、それまで第２スレーブプロセッサSP-2で制御されていた第１機能モジュールf-1及び第２機能モジュールf-2以外の機能モジュールf-3,・・・,f-mは、第１スレーブプロセッサSP-1及び第２スレーブプロセッサSP-2以外のスレーブプロセッサ、今の場合は第３スレーブプロセッサSP-3で制御するように、図５（ａ）のバス接続状態テーブルに示すようにバススイッチBSを切り替えている。
【００５８】
第２機能モジュールf-2が接続された第２スレーブプロセッサSP-2には、図５（ｂ）のバス接続状態テーブルに示すように第２フェイクコントローラFC-2を接続しており、第２スレーブプロセッサSP-2が第２機能モジュールf-2との接続中に他の機能モジュールにアクセスしようとした場合には、第２フェイクコントローラFC-2によって各機能モジュールf-1,f-3,・・・,f-mのレジスタの正常値を逐次返して、他の機能モジュールf-1,f-3,・・・,f-mにあたかも接続しているように動作させ、他の機能モジュールf-1,f-3,・・・,f-mへの実質的な接続を禁止している。
【００５９】
第１スレーブプロセッサSP-1による第１機能モジュールf-1の処理結果は第１ワークメモリM-1に書き出され、第２スレーブプロセッサSP-2による第２機能モジュールf-2の処理結果は第２ワークメモリM-2に書き出され、マスタプロセッサMPはこれらの処理結果を読み込んで次の処理に移るようにしている。
【００６０】
上記した実施形態で、例えば全てのスレーブプロセッサが処理中の状態でさらに機能モジュールから起動要求があった場合には、機能モジュールの処理待ち状態が発生し、その後、処理優先度にしたがって処理されることとなる。
【００６１】
以下において、他の実施形態として、図６に示すように、スレーブプロセッサとして第１スレーブプロセッサSP-1と第２スレーブプロセッサSP-2の２つが存在し、機能モジュールとして、第１機能モジュールf-1、第２機能モジュールf-2、第３機能モジュールf-3'、第４機能モジュールf-4'の４つが存在し、しかも、第１機能モジュールf-1と第２機能モジュールf-2は能動機能型かつポーリング型であるものとし、第３機能モジュールf-3'は第４機能モジュールf-4'は能動機能型かつ割り込み型としたマルチプロセッサシステムA'について、その動作を説明する。なお、図６において、図１と同一構成部分には同一符号を用いており、詳細な説明は省略する。
【００６２】
なお、スレーブプロセッサは、第１スレーブプロセッサSP-1と第２スレーブプロセッサSP-2の２つであるので、フェイクコントローラも第１フェイクコントローラFC-1と第２フェイクコントローラFC-2の２つである。
【００６３】
第１機能モジュールf-1と、第２機能モジュールf-2と、第３機能モジュールf-3'と、第４機能モジュールf-4'の処理優先度は同じであるとする。
【００６４】
上記したマルチプロセッサシステムA7の動作を、以下の５つの場合に分けて説明する。
【００６５】
（２−１）ブート時
（２−２）第１機能モジュールf-1が起動要求を出す場合
（２−３）第３機能モジュールf-3'が起動要求を出す場合
（２−４）第１機能モジュールf-1と第２機能モジュールf-2が起動要求を出す場合
（２−５）第１機能モジュールf-1と第３機能モジュールf-3'が起動要求を出す場合
（２−６）第３機能モジュールf-3'と第４機能モジュールf-4'が起動要求を出す場合
【００６６】
（２−１）ブート時
まず、マスタプロセッサMP、第１スレーブプロセッサSP-1、第２スレーブプロセッサSP-2は、それぞれのプログラム用メモリpm-0,pm-1,pm-2に格納されたプログラムに基づいて起動する。
【００６７】
このとき、各機能モジュールf-1,f-2,f-3',f-4'は、図７（ａ）のバス接続状態テーブルに示すように、デフォルトで設定した第１スレーブプロセッサSP-1に接続し、第１スレーブプロセッサSP-1が全機能モジュールf-1,f-2,f-3',f-4'を制御する。
【００６８】
一方、第２スレーブプロセッサSP-2は、図７（ｂ）のバス接続状態テーブルに示すように、フェイクコントローラFC-2と１：１で接続している。
【００６９】
そして、フェイクコントローラFC-2に接続された第２スレーブプロセッサSP-2は、フェイクコントローラFC-2によって各機能モジュールf-1,f-2,f-3',f-4'のレジスタの正常値が逐次返されることによって、あたかも各機能モジュールf-1,f-2,f-3',f-4'を制御しているように動作している。
【００７０】
（２−２）第１機能モジュールf-1が起動要求を出す場合
各機能モジュールf-1,f-2,f-3',f-4'を制御している第１スレーブプロセッサSP-1が、第１機能モジュールf-1からの起動要求を検出すると、バス監視装置BCは第１スレーブプロセッサSP-1と第１機能モジュールf-1とを接続する。
【００７１】
一方、それまで第１スレーブプロセッサSP-1で制御されていた第１機能モジュールf-1以外の機能モジュールf-2,f-3',f-4'は、第２スレーブプロセッサSP-2で制御するように、図８（ａ）のバス接続状態テーブルに示すようにバススイッチBSを切り替えている。
【００７２】
このとき、第１機能モジュールf-1が接続された第１スレーブプロセッサSP-1には、図８（ｂ）のバス接続状態テーブルに示すように第１フェイクコントローラFC-1を接続して、第１スレーブプロセッサSP-1が第１機能モジュールf-1との接続中に他の機能モジュールにアクセスしようとした場合には、フェイクコントローラFC-1によって各機能モジュールf-2,f-3',f-4'のレジスタの正常値を逐次返して、他の機能モジュールf-2,f-3',f-4'にもあたかも接続しているように動作させ、他の機能モジュールf-2,f-3',f-4'への実質的な接続を禁止している。
【００７３】
第１スレーブプロセッサSP-1による第１機能モジュールf-1の処理結果は、第１ワークメモリM-1に書き出され、マスタプロセッサMPはこの処理結果を読み込んで次の処理に移るようにしている。
【００７４】
（２−３）第３機能モジュールf-3'が起動要求を出す場合
各機能モジュールf-1,f-2,f-3',f-4'を制御している第１スレーブプロセッサSP-1が、第３機能モジュールf-3'が発信した割り込み信号を検出すると、バス監視装置BCは、その時点で第３機能モジュールf-3'を制御している第１スレーブプロセッサSP-1に割り込み信号を入力して、第１スレーブプロセッサSP-1と第３機能モジュールf-3'とを接続する。
【００７５】
一方、それまで第１スレーブプロセッサSP-1で制御されていた第３機能モジュールf-3'以外の機能モジュールf-1,f-2,f-4'は、第２スレーブプロセッサSP-2で制御するように、図９（ａ）のバス接続状態テーブルに示すようにバススイッチBSを切り替えている。
【００７６】
このとき、第３機能モジュールf-3'が接続された第１スレーブプロセッサSP-1には、図９（ｂ）のバス接続状態テーブルに示すように第１フェイクコントローラFC-1を接続して、第１スレーブプロセッサSP-1が第３機能モジュールf-3'との接続中に他の機能モジュールにアクセスしようとした場合には、フェイクコントローラFC-1によって各機能モジュールf-1,f-2,f-4'のレジスタの正常値を逐次返して、他の機能モジュールf-1,f-2,f-4'にもあたかも接続しているように動作させ、他の機能モジュールf-1,f-2,f-4'への実質的な接続を禁止している。
【００７７】
第１スレーブプロセッサSP-1による第３機能モジュールf-3'の処理結果は、第１ワークメモリM-1に書き出され、マスタプロセッサMPはこの処理結果を読み込んで次の処理に移るようにしている。
【００７８】
（２−４）第１機能モジュールf-1と第２機能モジュールf-2が起動要求を出す場合
各機能モジュールf-1,f-2,f-3',f-4'を制御している第１スレーブプロセッサSP-1が、第１機能モジュールf-1からの起動要求と第２機能モジュールf-2からの起動要求を検出すると、第１機能モジュールf-1と第２機能モジュールf-2とでは処理優先度が同じであるが、ここでは、第１スレーブプロセッサSP-1と第１機能モジュールf-1とを接続する。第１スレーブプロセッサSP-1と第１機能モジュールf-1との接続は、上記した「（２−２）第１機能モジュールf-1が起動要求を出す場合」と同様であるので説明は省略する。
【００７９】
次いで、各機能モジュールf-2,f-3',f-4'を制御している第２スレーブプロセッサSP-2が第２機能モジュールf-2からの起動要求を検出して、バス監視装置BCは第２スレーブプロセッサSP-2と第２機能モジュールf-2とを接続する。
【００８０】
一方、それまで第２スレーブプロセッサSP-2で制御されていた第３機能モジュールf-3'及び第４機能モジュールf-4'は、本実施形態では処理の優先順位にしたがって、第２スレーブプロセッサSP-2の処理が空くまで待機する（図１０（ａ）参照）。
【００８１】
第２機能モジュールf-2が接続された第２スレーブプロセッサSP-2には、図１０（ｂ）のバス接続状態テーブルに示すように第２フェイクコントローラFC-2を接続しており、第２スレーブプロセッサSP-2が第２機能モジュールf-2との接続中に他の機能モジュールにアクセスしようとした場合には、第２フェイクコントローラFC-2によって第１機能モジュールf-1のレジスタの正常値が返されて、第１機能モジュールf-1にもあたかも接続しているように動作させ、かつ第２機能モジュールf-2の処理中は第３・第４機能モジュールf-3',f-4'へのアクセスを行わないので、他の機能モジュールf-1,f-3',f-4'への実質的な接続がなされないこととなる。
【００８２】
第１スレーブプロセッサSP-1による第１機能モジュールf-1の処理結果は第１ワークメモリM-1に書き出され、第２スレーブプロセッサSP-2による第２機能モジュールf-2の処理結果は第２ワークメモリM-2に書き出され、マスタプロセッサMPはこれらの処理結果を読み込んで次の処理に移るようにしている。
【００８３】
（２−５）第１機能モジュールf-1と第３機能モジュールf-3'が起動要求を出す場合
各機能モジュールf-1,f-2,f-3',f-4'を制御している第１スレーブプロセッサSP-1が、第１機能モジュールf-1からの起動要求と第３機能モジュールf-3'が発信した割り込み信号を検出すると、バス監視装置BCでは、第１スレーブプロセッサSP-1に接続する第１フェイクコントローラFC-1を第３機能モジュールf-3'に接続して、第３機能モジュールf-3'におけるスレーブプロセッサとの接続終了条件情報を第１フェイクコントローラFC-1の正常値記憶部12にコピーして記憶している。
【００８４】
正常値記憶部12へのコピーの終了後、バス監視装置BCは、第１フェイクコントローラFC-1と第３機能モジュールf-3'との接続を終了させ、図８（ａ）のバス接続状態テーブルに示すバス接続状態として、第１スレーブプロセッサSP-1と第１機能モジュールf-1とを接続し、第１スレーブプロセッサSP-1によって第１機能モジュールf-1の処理の実行を開始する。
【００８５】
このとき、第１スレーブプロセッサSP-1では、第３機能モジュールf-3'からの割り込み信号を一旦検出しているので第３機能モジュールf-3'にアクセスしようとするが、このときには、第１スレーブプロセッサSP-1には第１フェイクコントローラFC-1を接続していることによって、第１フェイクコントローラFC-1に記憶された接続終了条件情報が正常値として第１スレーブプロセッサSP-1に返されることとなり、第１スレーブプロセッサSP-1では第３機能モジュールf-3'の処理は終了したものと認識され、第１機能モジュールf-1以外の実質的な処理が実行されること防止している。
【００８６】
また、第１スレーブプロセッサSP-1が第１機能モジュールf-1との接続中に第２機能モジュールf-2にアクセスしようとした場合には、第１フェイクコントローラFC-1によって第２機能モジュールf-2のレジスタの正常値が返されて、第２機能モジュールf2にもあたかも接続しているように動作させ、かつ第１機能モジュールf-1の処理中は第３・第４機能モジュールf-3',f-4'へのアクセスを行わないので、他の機能モジュールf-2,f-3',f-4'への実質的な接続がなされないこととなる。
【００８７】
一方、第１スレーブプロセッサSP-1の第１機能モジュールf-1との接続にともなって、残りの機能モジュールf-2,f-3',f-4'を制御している第２スレーブプロセッサSP-2は、第３機能モジュールf-3'が発信した割り込み信号を検出し、バス監視装置BCは、第２スレーブプロセッサSP-2と第３機能モジュールf-3'とを接続し、第２スレーブプロセッサSP-2によって第３機能モジュールf-3'の処理の実行を開始する。
【００８８】
このとき、第２スレーブプロセッサSP-2には第２フェイクコントローラFC-2も接続しており、第２スレーブプロセッサSP-2が第３機能モジュールf-3'との接続中に第１・第２機能モジュールf-1,f-2にアクセスしようとした場合には、第２フェイクコントローラFC-2によって第１・第２機能モジュールf-1,f-2のレジスタの正常値を逐次返して、第１・第２機能モジュールf-1,f-2にもあたかも接続しているように動作させ、かつ第３機能モジュールf-3'の処理中は第４機能モジュールf-4'へのアクセスを行わないので、他の機能モジュールf-1,f-2,f-4'への実質的な接続がなされないこととなる。
【００８９】
第１スレーブプロセッサSP-1による第１機能モジュールf-1の処理結果は第１ワークメモリM-1に書き出され、第２スレーブプロセッサSP-2による第３機能モジュールf-3'の処理結果は第２ワークメモリM-2に書き出され、マスタプロセッサMPはこれらの処理結果を読み込んで次の処理に移るようにしている。
【００９０】
（２−６）第３機能モジュールf-3'と第４機能モジュールf-4'が起動要求を出す場合
各機能モジュールf-1,f-2,f-3',f-4'を制御している第１スレーブプロセッサSP-1が、第３機能モジュールf-3'が発信した割り込み信号と第４機能モジュールf-4'が発信した割り込み信号を検出すると、バス監視装置BCでは、第１スレーブプロセッサSP-1に接続する第１フェイクコントローラFC-1を第４機能モジュールf-4'に接続して、第４機能モジュールf-4'におけるスレーブプロセッサとの接続終了条件情報を第１フェイクコントローラFC-1の正常値記憶部12にコピーして記憶している。
【００９１】
正常値記憶部12へのコピーの終了後、バス監視装置BCは、第１フェイクコントローラFC-1と第４機能モジュールf-4'との接続を終了させ、図９（ａ）のバス接続状態テーブルに示すバス接続状態として、第１スレーブプロセッサSP-1と第３機能モジュールf-3'とを接続し、第１スレーブプロセッサSP-1によって第３機能モジュールf-3'の処理の実行を開始する。
【００９２】
このとき、第１スレーブプロセッサSP-1では、第４機能モジュールf-4'からの割り込み信号を一旦検出しているので第４機能モジュールf-4'にアクセスしようとするが、このときには、第１スレーブプロセッサSP-1には第１フェイクコントローラFC-1を接続していることによって、第１フェイクコントローラFC-1に記憶された第４機能モジュールf-4'の接続終了条件情報が正常値として第１スレーブプロセッサSP-1に返されることとなり、第１スレーブプロセッサSP-1では第４機能モジュールf-4'の処理は終了したものと認識され、第３機能モジュールf-3'以外の実質的な処理が実行されること防止している。
【００９３】
また、第１スレーブプロセッサSP-1が、第１機能モジュールf-1及び第２機能モジュールf-2にアクセスしようとした場合には、フェイクコントローラFC-1によって第１機能モジュールf-1及び第２機能モジュールf-2のレジスタの正常値が逐次返されることにより、第１機能モジュールf-1及び第２機能モジュールf-2にもあたかも接続しているように動作させ、第１機能モジュールf-1及び第２機能モジュールf-2への実質的な接続がなされないこととなる。
【００９４】
一方、第１スレーブプロセッサSP-1の第３機能モジュールf-3'との接続にともなって、残りの機能モジュールf-1,f-2,f-4'を制御している第２スレーブプロセッサSP-2は、第４機能モジュールf-4'が発信した割り込み信号を検出し、バス監視装置BCは、第２スレーブプロセッサSP-2と第４機能モジュールf-4'とを接続し、第２スレーブプロセッサSP-2によって第４機能モジュールf-4'の処理の実行を開始する。
【００９５】
このとき、第２スレーブプロセッサSP-2には第２フェイクコントローラFC-2も接続しており、第２スレーブプロセッサSP-2が第４機能モジュールf-4'との接続中に第１・第２機能モジュールf-1,f-2にアクセスしようとした場合には、第２フェイクコントローラFC-2によって第１・第２機能モジュールf-1,f-2のレジスタの正常値を逐次返して、第１・第２機能モジュールf-1,f-2にもあたかも接続しているように動作させ、かつ第４機能モジュールf-4'の処理中は第３機能モジュールf-3'へのアクセスを行わないので、他の機能モジュールf-1,f-2,f-3'への実質的な接続がなされないこととなる。
【００９６】
第１スレーブプロセッサSP-1による第３機能モジュールf-3'の処理結果は第１ワークメモリM-1に書き出され、第２スレーブプロセッサSP-2による第４機能モジュールf-4'の処理結果は第２ワークメモリM-2に書き出され、マスタプロセッサMPはこれらの処理結果を読み込んで次の処理に移るようにしている。
【００９７】
上記したように、本発明で用いたフェイクコントローラからなるコントローラは、スレーブプロセッサが所定の機能モジュール以外の機能モジュールと接続されることを実質的に防止して、所定の機能モジュールを接続したスレーブプロセッサによる処理の実行が、他の機能モジュールによって阻害されることを抑止でき、オーバヘッドを削減して高速処理を可能とすることができる。
【００９８】
しかも、各スレーブプロセッサを駆動させているプログラムには同一のプログラムを使用することができ、低コストでマルチプロセッサシステムを構築することができる。
【００９９】
特に、図１１に示すように、少なくとも１つのスレーブプロセッサSP-1と、このスレーブプロセッサSP-1に接続されるフェイクコントローラFC-1、さらにはスレーブプロセッサSP-1によって処理された処理結果を格納するワーク用メモリM-1とを１つの基板上に搭載したプロセッサモジュールU-1を形成し、このプロセッサモジュールU-1を、各機能モジュールf-1,f-2,・・・,f-mが搭載された実装基板Ｐに着脱自在に構成し、実装基板ＰにはプロセッサモジュールU-1,U-2,・・・,U-nを装着するスロット（図示せず）を複数設けて、必要に応じてプロセッサモジュールU-1,U-2,・・・,U-nの装着数を調整することによって、マルチプロセッサシステムA"における搭載プロセッサ数を自在に調整することができる。図１１では、図１と同一構成部分には同一符号を用いており、重複する説明は省略する。
【０１００】
このように、実装基板Ｐに搭載されるプロセッサの数を増減可能とすることによって、マルチプロセッサシステムで処理する処理の負荷に応じてプロセッサモジュールの数を調整することにより、マルチプロセッサシステムA"の処理能力を容易に調整可能とすることができる。
【図面の簡単な説明】
【０１０１】
【図１】マルチプロセッサシステムの概略説明図である。
【図２】フェイクコントローラの概略説明図である。
【図３】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図４】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図５】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図６】一実施形態のマルチプロセッサシステムの概略説明図である。
【図７】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図８】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図９】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図１０】（ａ）各スレーブプロセッサと各機能モジュールとの接続状態を示すバス接続状態テーブル、（ｂ）各スレーブプロセッサと各フェイクコントローラとの接続状態を示すバス接続状態テーブルである。
【図１１】他の実施形態のマルチプロセッサシステムの概略説明図である。
【図１２】従来のプロセッサシステムの説明図である。
【図１３】従来のプロセッサシステムの説明図である。
【符号の説明】
【０１０２】
Ａ  マルチプロセッサシステム
f-1   機能モジュール
f-2   機能モジュール
f-m   機能モジュール
MP    マスタプロセッサ
SP-1  スレーブプロセッサ
SP-2  スレーブプロセッサ
SP-n  スレーブプロセッサ
M-0   ワーク用メモリ
M-1   ワーク用メモリ
M-2   ワーク用メモリ
M-n   ワーク用メモリ
FC-1  フェイクコントローラ
FC-2  フェイクコントローラ
FC-n  フェイクコントローラ
BC    バス監視装置
BS    バススイッチ
ST    スイッチ用テーブル
【図１】
2005242616.tif 000003
【図２】
2005242616.tif 000004
【図３】
2005242616.tif 000005
【図４】
2005242616.tif 000006
【図５】
2005242616.tif 000007
【図６】
2005242616.tif 000008
【図７】
2005242616.tif 000009
【図８】
2005242616.tif 000010
【図９】
2005242616.tif 000011
【図１０】
2005242616.tif 000012
【図１１】
2005242616.tif 000013
【図１２】
2005242616.tif 000014
【図１３】
2005242616.tif 000015