(57)【要約】【課題】各々のＯＳが動作する複数のＰＥ（プロセッサエレメント）を有するマルチプロセッサシステムに関し、各ＰＥが他のＰＥ上で実行されるＯＳが持つ所定機能の要求を、ＯＳを変更することなく実現する。【解決手段】ＰＥ１Ａでリモートサービスコールが発生すると、処理要求がメッセージ送信部１２Ａからメッセージ通信機構５を介してメッセージ受信部９Ｂに伝達され、割り込み要求が割り込みをかけるルーチン１３Ａから割り込み機構４Ａ、４Ｂ、ＰＥ１Ｂ、ＯＳ６Ｂを介して割り込み処理ルーチン８Ｂに伝達される。そして、自ＰＥでのサービスコール実行部１０Ｂでサービスコールが実行されると、処理結果がメッセージ送信部１２Ｂからメッセージ通信機構５を介してメッセージ受信部９Ａに伝達され、割り込み要求が割り込みをかけるルーチン１３Ｂから割り込み機構４Ｂ、４Ａ、ＰＥ１Ａ、ＯＳ６Ａを介して割り込み処理ルーチン８Ａに伝達される。【選択図】          図３
2006164111.tif 000002
【特許請求の範囲】
【請求項１】
各々のＯＳが動作する複数のプロセッサエレメントを有するマルチプロセッサシステムであって、
各プロセッサエレメントが他のプロセッサエレメント上で実行されるＯＳが持つ所定機能を要求する手段を有することを特徴とするマルチプロセッサシステム。
【請求項２】
前記ＯＳが持つ所定機能を要求する手段は、リモートサービスコールを行う手段であることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記リモートサービスコールは、前記他のプロセッサエレメントに対するＤＭＡデータ転送の完了を伝達するものであることを特徴とする請求項２記載のマルチプロセッサシステム。
【請求項４】
前記ＯＳが持つ所定機能を要求する手段は、リモート関数・手続きコールを行う手段であることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項５】
マルチプロセッサシステムのプロセッサエレメントで使用されるソフトウエアライブラリであって、
他のプロセッサエレメント上で実行されるＯＳが持つ所定機能を要求するための割り込みをかけるルーチンと、
前記他のプロセッサエレメント上で実行されるＯＳが持つ所定機能を要求するためのメッセージを送信する送信部と、
前記他のプロセッサエレメントからの自プロセッサエレメント上で実行されるＯＳが持つ所定機能を要求するための割り込みを受けるルーチンと、
前記他のプロセッサエレメントからの自プロセッサエレメント上で実行されるＯＳが持つ所定機能を要求するためのメッセージを受ける受信部と、
前記他のプロセッサエレメントからの自プロセッサエレメント上で実行されるＯＳが持つ所定機能の要求を実行する実行部を有することを特徴とするソフトウエアライブラリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各々のＯＳ（operating system）が動作する複数のプロセッサエレメント（以下、ＰＥという）を有するマルチプロセッサシステムに関する。
【背景技術】
【０００２】
ネットワークを介して別のプロセッサ上で、リモートで手続き呼び出しやタスク起動等を行うことはあった。しかし、バス結合型マルチプロセッサシステム上で、複数のＯＳを同時に動作させ、特定のＰＥ上のＯＳのサービスコールを、別のＰＥのＯＳから呼び出すことはなかった。ＳＭＰ（shared memory processor）型マルチプロセッサシステムでは、複数のＰＥ上で１つのＯＳが動作し、どれか１つのＰＥがＯＳサービスコールを実行すればよく、複数のＯＳを同時に動作させることは必要なかったからである。
【特許文献１】特開２０００−２９３４９９号公報
【特許文献２】特開昭６１−２５６４６５号公報
【特許文献３】特開平５−７３５０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ユニプロセッサＯＳが動作するマルチプロセッサシステムのユニプロセッサＯＳをマルチプロセッサＯＳに変更し、どれか１つのＰＥがＯＳサービスコールを実行すれば良いシステムとするには、多大なシステム作成時間、コストを必要とするという問題点があった。
【０００４】
そこで、本発明は、各々のＯＳが動作する複数のＰＥを有するマルチプロセッサシステムであって、各ＰＥが他のＰＥ上で実行されるＯＳが持つ所定機能の要求を、ＯＳを変更することなく実現することができるようにしたマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、各々のＯＳが動作する複数のＰＥを有するマルチプロセッサシステムであって、各ＰＥが他のＰＥ上で実行されるＯＳが持つ所定機能を要求する手段を有するというものである。
【発明の効果】
【０００６】
本発明によれば、各ＰＥが他のＰＥ上で実行されるＯＳが持つ所定機能を要求する手段を有しているので、各ＰＥが他のＰＥ上で実行されるＯＳが持つ所定機能の要求を、ＯＳを変更することなく実現することができる。
【発明を実施するための最良の形態】
【０００７】
図１は本発明の一実施形態の概略的構成図である。本発明の一実施形態は、ＰＥ１Ａ、１Ｂと、ＰＥ１Ａ、１Ｂが共有する共有メモリ２と、ＰＥ１Ａ用の非共有メモリ３Ａと、ＰＥ１Ｂ用の非共有メモリ３Ｂと、ＰＥ１Ａ用の割り込み機構４Ａと、ＰＥ１Ｂ用の割り込み機構４Ｂと、ＰＥ１Ａ、１Ｂが共有するメッセージ通信機構５と、ＰＥ１用のＯＳ６Ａと、ＰＥ１Ｂ用のＯＳ６Ｂと、ＰＥ１Ａ用のソフトウエアライブラリ７Ａと、ＰＥ１Ｂ用のソフトウエアライブラリ７Ｂを有している。
【０００８】
図２はソフトウエアライブラリ７Ａ、７Ｂの概略的構成図である。ソフトウエアライブラリ７Ａは、割り込み処理ルーチン８Ａと、メッセージ受信部９Ａと、自ＰＥでのサービスコール実行部１０Ａと、自ＰＥでの関数・手続き実行部１１Ａと、メッセージ送信部１２Ａと、割り込みをかけるルーチン１３Ａを有している。
【０００９】
割り込み処理ルーチン８ＡはＰＥ１Ｂからの割り込みを受けるためのものである。メッセージ受信部９ＡはＰＥ１Ｂからの処理要求メッセージを受けるためのものである。自ＰＥでのサービスコール実行部１０ＡはＰＥ１ＢからのリモートサービスコールをＰＥ１Ａで実行するためのものである。自ＰＥでの関数・手続き実行部１１ＡはＰＥ１Ｂからのリモート関数・手続きコール（リモートプロシージャコール）をＰＥ１Ａで実行するためのものである。
【００１０】
また、メッセージ送信部１２Ａは、ＰＥ１Ｂからの処理要求に従って実行したサービスコールや関数・手続きコールの処理結果のＰＥ１Ｂへの送信、及び、ＰＥ１Ｂにサービスコールや関数・手続きコールを要求するための処理要求メッセージの送信を行うためのものである。割り込みをかけるルーチン１３ＡはＰＥ１Ｂに割り込みをかけるためのものである。
【００１１】
また、ソフトウエアライブラリ７Ｂは、割り込み処理ルーチン８Ｂと、メッセージ受信部９Ｂと、自ＰＥでのサービスコール実行部１０Ｂと、自ＰＥでの関数・手続き実行部１１Ｂと、メッセージ送信部１２Ｂと、割り込みをかけるルーチン１３Ｂを有している。
【００１２】
割り込み処理ルーチン８ＢはＰＥ１Ａからの割り込みを受けるためのものである。メッセージ受信部９ＢはＰＥ１Ａからの処理要求メッセージを受けるためのものである。自ＰＥでのサービスコール実行部１０ＢはＰＥ１ＡからのリモートサービスコールをＰＥ１Ｂで実行するためのものである。自ＰＥでの関数・手続き実行部１１ＢはＰＥ１Ａからのリモート関数・手続きコールをＰＥ１Ｂで実行するためのものである。
【００１３】
また、メッセージ送信部１２Ｂは、ＰＥ１Ａからの処理要求に従って実行したサービスコールや関数・手続きコールの処理結果のＰＥ１Ａへの送信、及び、ＰＥ１Ａにサービスコールや関数・手続きコールを要求するための処理要求メッセージの送信を行うためのものである。割り込みをかけるルーチン１３ＢはＰＥ１Ａに割り込みをかけるためのものである。
【００１４】
本発明の一実施形態では、タスク側でタスクが動作するＰＥを意識して、明示的に、リモートサービスコールやリモート関数・手続きコールを実行するＰＥを指示するＡＰＩ（application programming interface）を設け、実行するリモートＰＥを引数として、リモートサービスコール要求時やリモート関数・手続きコール時に、明示的に指定する。この場合、自ＰＥでのサービスコールとリモートＰＥでのサービスコールはＡＰＩを分け、自ＰＥでのサービスコールのＡＰＩは「サービスコール（引数ｉ）」、リモートサービスコールのＡＰＩは「リモートサービスコール（リモートＰＥ、引数ｉ）」とする。
【００１５】
図３はＰＥ１Ａでリモートサービスコールが発生した場合を説明するための図である。即ち、ＰＥ１Ａでリモートサービスコールが発生すると、処理要求メッセージがメッセージ送信部１２Ａからメッセージ通信機構５を介してメッセージ受信部９Ｂに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ａから割り込み機構４Ａ、割り込み機構４Ｂ、ＰＥ１Ｂ、ＯＳ６Ｂを介して割り込み処理ルーチン８Ｂに伝達される。
【００１６】
そして、ＰＥ１Ａからの処理要求に応えて、自ＰＥでのサービスコール実行部１０Ｂでサービスコールが実行されると、処理結果がメッセージ送信部１２Ｂからメッセージ通信機構５を介してメッセージ受信部９Ａに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ｂから割り込み機構４Ｂ、割り込み機構４Ａ、ＰＥ１Ａ、ＯＳ６Ａを介して割り込み処理ルーチン８Ａに伝達される。
【００１７】
これに対して、ＰＥ１Ｂでリモートサービスコールが発生すると、処理要求メッセージがメッセージ送信部１２Ｂからメッセージ通信機構５を介してメッセージ受信部９Ａに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ｂから割り込み機構４Ｂ、割り込み機構４Ａ、ＰＥ１Ａ、ＯＳ６Ａを介して割り込み処理ルーチン８Ａに伝達される。
【００１８】
そして、ＰＥ１Ｂからの処理要求に応えて、自ＰＥでのサービスコール実行部１０Ａでサービスコールが実行されると、処理結果がメッセージ送信部１２Ａからメッセージ通信機構５を介してメッセージ受信部９Ｂに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ａから割り込み機構４Ａ、割り込み機構４Ｂ、ＰＥ１Ｂ、ＯＳ６Ｂを介して割り込み処理ルーチン８Ｂに伝達される。
【００１９】
図４はＰＥ１Ａでリモート関数・手続きコールが発生した場合を説明するための図である。即ち、ＰＥ１Ａでリモート関数・手続きコールが発生すると、処理要求メッセージがメッセージ送信部１２Ａからメッセージ通信機構５を介してメッセージ受信部９Ｂに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ａ、割り込み機構４Ａ、割り込み機構４Ｂ、ＰＥ１Ｂ、ＯＳ６Ｂを介して割り込み処理ルーチン８Ｂに伝達される。
【００２０】
そして、ＰＥ１Ａからの処理要求に応えて、自ＰＥでの関数・手続き実行部１１Ｂで関数・手続きが実行されると、処理結果がメッセージ送信部１２Ｂからメッセージ通信機構５を介してメッセージ受信部９Ａに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ｂから割り込み機構４Ｂ、割り込み機構４Ａ、ＰＥ１Ａ、ＯＳ６Ａを介して割り込み処理ルーチン８Ａに伝達される。
【００２１】
これに対して、ＰＥ１Ｂでリモート関数・手続きコールが発生すると、処理要求メッセージがメッセージ送信部１２Ｂからメッセージ通信機構５を介してメッセージ受信部９Ａに与えられる。また、割り込み要求が割り込みをかけるルーチン１３Ｂから割り込み機構４Ｂ、割り込み機構４Ａ、ＰＥ１Ａ、ＯＳ６Ａを介して割り込み処理ルーチン８Ａに伝達される。
【００２２】
そして、ＰＥ１Ｂからの処理要求に応えて、自ＰＥでの関数・手続き実行部１１Ａで関数・手続きが実行されると、処理結果がメッセージ送信部１２Ａからメッセージ通信機構５を介してメッセージ受信部９Ｂに伝達される。また、割り込み要求が割り込みをかけるルーチン１３Ａから割り込み機構４Ａ、割り込み機構４Ｂ、ＰＥ１Ｂ、ＯＳ６Ｂを介して割り込み処理ルーチン８Ｂに伝達される。
【００２３】
また、本発明の一実施形態では、ＰＥ１Ａで、ＰＥ１ＢにＤＭＡ（direct memory access）データ転送を行う要求を１つのＡＰＩを用いて行うと、ソフトウエアライブラリ７Ａは、ＰＥ１Ａの管理下のＤＭＡコントローラ（図示せず）に対してＤＭＡデータ転送を開始させ、その後、ＤＭＡデータ転送の完了を検出すると、ＰＥ１ＢのＯＳ６Ｂのリソース（セマフォ、フラグ等）を操作するリモートサービスコールを前述と同様の方法で行う。ＰＥ１Ｂは、ＯＳ６Ｂが操作されたことで、ＰＥ１ＡからＰＥ１ＢへのＤＭＡデータ転送が完了したことを検出する。このようにして、本発明の一実施形態では、ＰＥ１ＡからＰＥ１ＢへのＤＭＡデータ転送の完了をＰＥ１ＡからＰＥ１Ｂに伝達する。
【００２４】
また、ＰＥ１Ｂで、ＰＥ１ＡにＤＭＡデータ転送を行う要求を１つのＡＰＩを用いて行うと、ソフトウエアライブラリ７Ｂは、ＰＥ１Ｂの管理下のＤＭＡコントローラ（図示せず）に対してＤＭＡデータ転送を開始させ、その後、ＤＭＡデータ転送の完了を検出すると、ＰＥ１ＡのＯＳ６Ａのリソース（セマフォ、フラグ等）を操作するリモートサービスコールを前述と同様の方法で行う。ＰＥ１Ａは、ＯＳ６Ａが操作されたことで、ＰＥ１ＢからＰＥ１ＡへのＤＭＡデータ転送が完了したことを検出する。このようにして、本発明の一実施形態では、ＰＥ１ＢからＰＥ１ＡへのＤＭＡデータ転送の完了をＰＥ１ＢからＰＥ１Ａに伝達する。
【００２５】
以上のように、本発明の一実施形態によれば、ソフトウエア機構としてソフトウエアライブラリ７Ａ、７Ｂ、ハードウエア機構として割り込み機構４Ａ、４Ｂ及びメッセージ通信機構５を設けているので、ＬＡＮを介さず、かつ、ＯＳ６Ａ、６Ｂを変更することなく、ＰＥ１ＡはＰＥ１Ｂ上で実行されるサービスコール及び関数・手続きコールをリモートで要求でき、ＰＥ１ＢはＰＥ１Ａ上で実行されるサービスコール及び関数・手続きコールをリモートで要求できる。
【００２６】
また、ＯＳ６Ａ、６Ｂを変更する必要がないので、システム作成期間の短縮及び作成費用の低減化を図ることができる。また、リモートサービスコール及びリモート関数・手続きコールはネットワーク層を介さないため、少ない実行時間でこれらを実現することができる。また、タスクで、明示的に、実行するリモートＰＥを指定するようにしているので、自動的にリモートＰＥを設定する場合よりも、リモートサービスコール及びリモート関数・手続きコールを高速で実現することができる。
【００２７】
ここで、本発明を整理すると、本発明には、少なくとも、以下のマルチプロセッサシステム及びソフトウエアライブラリが含まれる。
【００２８】
（付記１）各々のＯＳが動作する複数のＰＥを有するマルチプロセッサシステムであって、各ＰＥが他のＰＥ上で実行されるＯＳが持つ所定機能を要求する手段を有することを特徴とするマルチプロセッサシステム。
【００２９】
（付記２）前記ＯＳが持つ所定機能を要求する手段は、リモートサービスコールを行う手段であることを特徴とする付記１記載のマルチプロセッサシステム。
【００３０】
（付記３）前記リモートサービスコールは、前記他のＰＥに対するＤＭＡデータ転送の完了を伝達するものであることを特徴とする付記２記載のマルチプロセッサシステム。
【００３１】
（付記４）前記ＯＳが持つ所定機能を要求する手段は、リモート関数・手続きコールを行う手段であることを特徴とする付記１記載のマルチプロセッサシステム。
【００３２】
（付記５）マルチプロセッサシステムのＰＥで使用されるソフトウエアライブラリであって、他のＰＥ上で実行されるＯＳが持つ所定機能を要求するための割り込みをかけるルーチンと、前記他のＰＥ上で実行されるＯＳが持つ所定機能を要求するためのメッセージを送信する送信部と、前記他のＰＥからの自ＰＥ上で実行されるＯＳが持つ所定機能を要求するための割り込みを受けるルーチンと、前記他のＰＥからの自ＰＥ上で実行されるＯＳが持つ所定機能を要求するためのメッセージを受ける受信部と、前記他のＰＥからの自ＰＥ上で実行されるＯＳが持つ所定機能の要求を実行する実行部を有することを特徴とするソフトウエアライブラリ。
【００３３】
（付記６）前記ＯＳが持つ所定機能の要求は、リモートサービスコールであることを特徴とする付記５記載のソフトウエアライブラリ。
【００３４】
（付記７）前記リモートサービスコールは、前記他のＰＥに対するＤＭＡデータ転送の完了を伝達するものであることを特徴とする付記６記載のソフトウエアライブラリ。
【００３５】
（付記８）前記ＯＳが持つ所定機能の要求は、リモート関数・手続きコールであることを特徴とする付記５記載のソフトウエアライブラリ。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態の概略的構成図である。
【図２】本発明の一実施形態が有するソフトウエアライブラリの概略的構成図である。
【図３】本発明の一実施形態を構成するプロセッサエレメントでリモートサービスコールが発生した場合を説明するための図である。
【図４】本発明の一実施形態を構成するプロセッサエレメントでリモート関数・手続きコールが発生した場合を説明するための図である。
【符号の説明】
【００３７】
１Ａ、１Ｂ…プロセッサエレメント（ＰＥ）
２…共有メモリ
３Ａ、３Ｂ…非共有メモリ
４Ａ、４Ｂ…割り込み機構
５…メッセージ通信機構
６Ａ、６Ｂ…ＯＳ（オペレーティングシステム）
７Ａ、７Ｂ…ソフトウエアライブラリ
８Ａ、８Ｂ…割り込み処理ルーチン
９Ａ、９Ｂ…メッセージ受信部
１０Ａ、１０Ｂ…自プロセッサエレメント（ＰＥ）でのサービスコール実行部
１１Ａ、１１Ｂ…自プロセッサエレメント（ＰＥ）での関数・手続き実行部
１２Ａ、１２Ｂ…メッセージ送信部
１３Ａ、１３Ｂ…割り込みをかけるルーチン
【図１】
2006164111.tif 000003
【図２】
2006164111.tif 000004
【図３】
2006164111.tif 000005
【図４】
2006164111.tif 000006