(57)【要約】【課題】プロセッサ間割り込み処理におけるパフォーマンスを向上することができるマルチプロセッサシステム及びマルチプロセッサ制御方法を提供すること【解決手段】本発明かかるマルチプロセッサシステム１は、プログラムが格納されるメモリ１３と、アドレス通知レジスタ１６と、第１のプロセッサと、第２のプロセッサとを備えたマルチプロセッサシステム１であって、第１のプロセッサは、第２のプロセッサに割り込み要求を通知して、当該第２のプロセッサにプログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報をアドレス通知レジスタ１６に格納し、第２のプロセッサは、第１のプロセッサから通知された割り込み要求と、アドレス通知レジスタ１６に格納されたアドレス情報を取得し、取得したアドレス情報が示すアドレスからプログラムの実行を開始する。【選択図】図１
2011118508.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが格納されるメモリと、アドレス通知レジスタと、第１のプロセッサと、第２のプロセッサとを備えたマルチプロセッサシステムであって、
前記第１のプロセッサは、前記第２のプロセッサに割り込み要求を通知して、当該第２のプロセッサに前記プログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報を前記アドレス通知レジスタに格納し、
前記第２のプロセッサは、前記第１のプロセッサから通知された割り込み要求と、前記アドレス通知レジスタに格納されたアドレス情報を取得し、取得したアドレス情報が示すアドレスから前記プログラムの実行を開始するマルチプロセッサシステム。
【請求項２】
プログラムが格納されるメモリと、アドレス通知レジスタと、第１のプロセッサと、第２のプロセッサとを備えたマルチプロセッサシステムであって、
前記第１のプロセッサは、前記第２のプロセッサに前記プログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報を前記アドレス通知レジスタに格納し、
前記第２のプロセッサは、前記アドレス通知レジスタにアドレス情報が格納された場合に、前記第１のプロセッサから割り込み要求があったとして、前記アドレス情報が示すアドレスから前記プログラムの実行を開始するマルチプロセッサシステム。
【請求項３】
前記マルチプロセッサシステムは、前記第１のプロセッサを複数備え、
さらに前記アドレス通知レジスタを前記第１のプロセッサのそれぞれに対応するように複数有する請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
前記マルチプロセッサシステムは、前記第２のプロセッサを複数備え、
前記アドレス通知レジスタは、前記第２のプロセッサのそれぞれに対応するように、前記アドレス情報が複数格納され、
前記第２のプロセッサは、自身に対応するアドレス情報を取得する請求項１乃至３のいずれか１項に記載のマルチプロセッサシステム。
【請求項５】
前記マルチプロセッサシステムは、前記割り込み要求のあった第２のプロセッサに対応するアドレス情報を選択的に当該第２のプロセッサに出力する選択部を備えた請求項４に記載のマルチプロセッサシステム。
【請求項６】
前記第２のプロセッサは、前記割り込み要求の通知に応じて、前記アドレス通知レジスタに格納されたアドレス情報が示すアドレスを割り込みハンドラアドレスとすることで、当該アドレスから前記プログラムの実行を開始する請求項１乃至５のいずれか１項に記載のマルチプロセッサシステム。
【請求項７】
前記第１のプロセッサは、前記第２のプロセッサとしても動作し、
前記第２のプロセッサは、前記第１のプロセッサとしても動作する請求項１乃至６のいずれか１項に記載のマルチプロセッサシステム。
【請求項８】
第１のプロセッサが、第２のプロセッサに割り込み要求を通知して、当該第２のプロセッサにプログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報をアドレス通知レジスタに格納し、
前記第２のプロセッサが、前記第１のプロセッサから通知された割り込み要求と、前記アドレス通知レジスタに格納されたアドレス情報を取得し、取得したアドレス情報が示すアドレスから前記プログラムの実行を開始するマルチプロセッサ制御方法。
【請求項９】
第１のプロセッサが、第２のプロセッサにプログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報を前記アドレス通知レジスタに格納し、
前記第２のプロセッサが、前記アドレス通知レジスタにアドレス情報が格納された場合に、前記第１のプロセッサから割り込み要求があったとして、前記アドレス情報が示すアドレスから前記プログラムの実行を開始するマルチプロセッサ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム及びマルチプロセッサ制御方法に関する。
【背景技術】
【０００２】
マルチプロセッサシステムは、複数のプロセッサを結線して構成される。複数のプロセッサ間で通信を行う必要があるため、さまざまなプロセッサ間通信処理技術が提案されている。その中でも、プロセッサ間割り込みは、動作中のプロセッサに対して、非同期に処理を要求することができるため、プロセッサの処理効率が良い。
【０００３】
プロセッサ間割り込みを採用したマルチプロセッサシステムが、特許文献１に開示されている。特許文献１に開示のマルチプロセッサシステムは、各プロセッサが、自プロセッサに対して割り込み要求を発行してくる可能性のあるプロセッサのそれぞれに対応する複数の割り込みレジスタを備える。これにより、各プロセッサは、他のプロセッサが割り込み要求を発行しているか否かに関係なく、割り込み要求先のプロセッサに対して、割り込み要求を発行することができるようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０６−０２８３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、図９を参照して、特許文献１に開示の技術に基づいたマルチプロセッサシステム１００の一例の構成について説明する。マルチプロセッサシステム１００は、プロセッサ１１０−１〜１１０−ｎと、割り込み制御部１１１−１〜１１１−ｎと、割り込み要求レジスタ１１２−１〜１１２−ｎと、メモリ１１３と、結合媒体１１４と、プロセッサ間割り込み伝達媒体１１５を備える。なお、割り込み要求レジスタ１１２−ｎは、プロセッサ１１０−ｎに含まれる。また、ｎは、任意の正整数である。
【０００６】
プロセッサ１１０は、割り込み要求レジスタ１１２に割り込みを有効にする値を書き込むことによって、プロセッサ間割り込み伝達媒体１１５を介して、割り込み要求を他のプロセッサ１１０に通知する。ここで、具体的に、割り込み要求元となる割り込み要求元プロセッサがプロセッサ１１０−１で、割り込み要求先となる割り込み要求先プロセッサがプロセッサ１１０−２の場合を例として説明する。
【０００７】
割り込み元プロセッサ１１０−１は、割り込み要求先プロセッサ１１０−２に割り込み要求をする場合、割り込み要求レジスタ１１２−１のうち、割り込み先プロセッサ１１０−２に対応するレジスタに割り込みを有効にする値を書き込む。すると、その値がプロセッサ間割り込み伝達媒体１１５を介して、割り込み先プロセッサ１１０−２に対応する割り込み制御部１１１−２に割り込み要求として出力される。割り込み制御部１１１−２は、自身に対応するプロセッサ１０に対する割り込み要求が通知されると、それに応じて割り込み先プロセッサ１１０−２に割り込み要求信号を出力する。つまり、割り込み元プロセッサ１１０−２に割り込み要求が通知される。これにより、割り込み元プロセッサ１１０−１から割り込み先プロセッサ１１０−２へのプロセッサ間割り込みが発生することになる。
【０００８】
しかしながら、このようなマルチプロセッサシステム１００では、プロセッサ間割り込みを行った場合、割り込み元プロセッサ１１０−１から割り込み先プロセッサ１１０−２に、割り込み要求のみを通知している。そのため、割り込み元プロセッサ１１０−１から割り込み先プロセッサ１１０−２に、割り込み要求以外の情報も通知する必要がある場合は、割り込み元プロセッサ１１０−１と割り込み先プロセッサ１１０−２が共有してアクセスすることができる領域であるメモリ１１３に、割り込み元プロセッサ１１０−１が割り込み要求以外に通知が必要な情報を書き込むことで、割り込み先プロセッサ１１０−２がこの情報を取得することができるようにしている。
【０００９】
ここで、マルチプロセッサシステムにおけるプロセッサ間割り込みは、あるプロセッサが他のプロセッサにおいて任意のプログラムを呼び出して実行させる場合に使用される。図１０を参照して、マルチプロセッサシステム１００におけるプロセッサ間割り込みによるプログラム呼び出し処理の概要について説明する。
【００１０】
ここでは、呼び出し元プロセッサが割り込み元プロセッサ１１０−１で、呼び出し先プロセッサが割り込み先プロセッサ１１０−２の場合を例として説明する。なお、割り込み元プロセッサ１１０−１が実行する呼び出し元プログラム１２０から呼び出される可能性のある呼び出し先プログラム１２１が、ｍ個あるものとする。ｍは、任意の正整数である。
呼び出し元プログラム１２０から、ｍ個の呼び出し先プログラム１２１−１〜１２１−ｍのうち、どの呼び出し先プログラムを呼び出すかは、呼び出し元プログラム１２０の実行結果によって定まるパラメータに基づいて特定される。
【００１１】
ここで、パラメータとは、呼び出し元プログラム１２０を実行した結果、呼び出すと決定された呼び出し先プログラム１２１の実行を開始する開始アドレス、そのプログラム名又はそのプログラムを特定するＩＤ等である。また、必要によっては、呼び出し元プログラム１２０から呼び出し先プログラム１２１に引き継がれるデータも含まれる。なお、呼び出し先プログラム１２１の開始アドレスは、例えば、呼び出し先プログラム１２１中の先頭アドレスや、分岐先のアドレス等の任意のアドレスとなる。
【００１２】
続いて、図１１を参照して、割り込み元プロセッサ１１０−１の処理について説明する。図１１は、割り込み元プロセッサ１１０−１の処理を示すフローチャートである。
【００１３】
割り込み元プロセッサ１１０−１は、呼び出し元プログラム１２０を実行することで、割り込み先プロセッサ１１０−２において実行する呼び出し先プログラム１２１を決定する(Ｓ５００)。ここで、呼び出し先プログラム１２１−２を決定したものとする。割り込み元プロセッサ１１０−１は、決定した呼び出し先プログラム１２１−２を特定するパラメータをメモリ１１３に書き込む(Ｓ５０１)。そして、割り込み元プロセッサ１１０−１は、割り込み要求レジスタ１１２−１のうち、呼び出し先プログラム１２１−２を実行させる割り込み先プロセッサ１１０−２に対応したレジスタに割り込みを有効にする値を書き込む(Ｓ５０２)。これによって、割り込み元プロセッサ１１０−１から割り込み先プロセッサ１１０−２に割り込み要求が通知される。
【００１４】
続いて、図１２を参照して、割り込み先プロセッサ１１０−２の処理について説明する。図１２は、割り込み先プロセッサ１１０−２の処理を示すフローチャートである。
【００１５】
割り込み先プロセッサ１１０−２は、割り込み元プロセッサ１１０−１から通知された割り込み要求に応じて、割り込みハンドラの実行を開始する。以降、割り込み先プロセッサ１１０−１は、割り込みハンドラの命令に基づいてステップＳ６００〜Ｓ６０３の処理を実行する。
【００１６】
割り込み先プロセッサ１１０−２は、メモリ１１３から割り込み要求に応じて実行する呼び出し先プログラム１２１を特定するパラメータを読み出す(Ｓ６００)。割り込み先プロセッサ１１０−２は、読み出したパラメータが、割り込み先プログラム１２１−２のプログラム名又はＩＤを示している場合は、そのパラメータを解析して呼び出し先プログラム１２１−２を特定する(Ｓ６０１)。例えば、プログラム名又はＩＤと、呼び出し先プログラム１２１−２の開始アドレスとを対応付けたテーブルをメモリ１１３に格納しておき、このテーブルを参照することによって、呼び出し先プログラム１２１−２の実行開始アドレスを特定する。
【００１７】
割り込み先プロセッサ１１０−２は、読み出したパラメータ又はパラメータの解析結果によって特定された呼び出し先プログラム１２１−２を呼び出す(Ｓ６０２)。具体的には、読み出したパラメータ又はパラメータの解析結果によって特定された呼び出し先プログラム１２１−２の開始アドレスをプログラム・カウンタに設定する。そして、割り込み先プロセッサ１１０−２は、メモリ１１３から呼び出し先プログラム１２１をロードして、プログラム・カウンタに設定された開始アドレスから呼び出し先プログラム１２１を実行する(Ｓ６０３)。
【００１８】
このように、特許文献１に開示の技術に基づいたマルチプロセッサシステムでは、割り込み元プロセッサ１１０−１が割り込み先プロセッサ１１０−２に対して、直接割り込み要求の通知しかすることができない。したがって、割り込み先プロセッサ１１０−２は、割り込み要求に応じて、呼び出し先プログラム１２１を実行するためには、各プロセッサ１１０が共有してアクセスするメモリ１１３からパラメータを読み込む必要がある。
【００１９】
しかし、一般的に、複数のプロセッサ１１０が共有してアクセスするメモリ１１３は、データの整合性を保つため、複数のプロセッサ１１０が同時にアクセスできないように排他制御がされている。したがって、割り込み先プロセッサ１１０−２がパラメータを読み込むためにメモリ１１３にアクセスしたときに、他のプロセッサ１１０がアクセスしていた場合は、アクセス待ちが発生してしまう。そのため、プロセッサ間割り込み処理におけるパフォーマンスが低下してしまっているという問題がある。
【課題を解決するための手段】
【００２０】
本発明の第１の態様にかかるマルチプロセッサシステムは、プログラムが格納されるメモリと、アドレス通知レジスタと、第１のプロセッサと、第２のプロセッサとを備えたマルチプロセッサシステムであって、前記第１のプロセッサは、前記第２のプロセッサに割り込み要求を通知して、当該第２のプロセッサに前記プログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報を前記アドレス通知レジスタに格納し、前記第２のプロセッサは、前記第１のプロセッサから通知された割り込み要求と、前記アドレス通知レジスタに格納されたアドレス情報を取得し、取得したアドレス情報が示すアドレスから前記プログラムの実行を開始する。
【００２１】
本発明の第２の態様にかかるマルチプロセッサシステムは、プログラムが格納されるメモリと、アドレス通知レジスタと、第１のプロセッサと、第２のプロセッサとを備えたマルチプロセッサシステムであって、前記第１のプロセッサは、前記第２のプロセッサに前記プログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報を前記アドレス通知レジスタに格納し、前記第２のプロセッサは、前記アドレス通知レジスタにアドレス情報が格納された場合に、前記第１のプロセッサから割り込み要求があったとして、前記アドレス情報が示すアドレスから前記プログラムの実行を開始する。
【００２２】
本発明の第３の態様にかかるマルチプロセッサ制御方法は、第１のプロセッサが、第２のプロセッサに割り込み要求を通知して、当該第２のプロセッサにプログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報をアドレス通知レジスタに格納し、前記第２のプロセッサが、前記第１のプロセッサから通知された割り込み要求と、前記アドレス通知レジスタに格納されたアドレス情報を取得し、取得したアドレス情報が示すアドレスから前記プログラムの実行を開始する。
【００２３】
本発明の第４の態様にかかるマルチプロセッサ制御方法は、第１のプロセッサが、第２のプロセッサにプログラムを実行させる場合に、当該プログラムの実行を開始させるアドレスを示すアドレス情報を前記アドレス通知レジスタに格納し、前記第２のプロセッサが、前記アドレス通知レジスタにアドレス情報が格納された場合に、前記第１のプロセッサから割り込み要求があったとして、前記アドレス情報が示すアドレスから前記プログラムの実行を開始する。
【００２４】
これらにより、割り込み先プロセッサである第２のプロセッサは、複数のプロセッサが共有するメモリから開始アドレスを取得する必要がなくなる。そのため、開始アドレスを取得する場合に、その取得が待たされることがなくなり、プロセッサ間割り込み処理におけるパフォーマンスを向上することができる。
【発明の効果】
【００２５】
上述した各態様により、プロセッサ間割り込み処理におけるパフォーマンスを向上することができるマルチプロセッサシステム及びマルチプロセッサ制御方法を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態１にかかるマルチプロセッサシステムの構成図である。
【図２】本発明の実施の形態１にかかる割り込み要求レジスタと割り込み制御部との関係を示す図である。
【図３】本発明の実施の形態１にかかるアドレス通知レジスタとプロセッサとの関係を示す図である。
【図４】本発明の実施の形態１にかかる割り込み元プロセッサの処理を示すフローチャートである。
【図５】本発明の実施の形態１にかかる割り込み先プロセッサの処理を示すフローチャートである。
【図６】本発明の実施の形態２にかかるマルチプロセッサシステムの構成図である。
【図７】本発明の実施の形態２にかかる割り込み要求アドレス通知レジスタと割り込み制御部及びプロセッサとの関係を示す図である。
【図８】本発明の実施の形態２にかかる割り込み元プロセッサの処理を示すフローチャートである。
【図９】背景技術に基づいたマルチプロセッサシステムの構成図である。
【図１０】プロセッサ間割り込みによるプログラム呼び出し処理の概要を示す図である。
【図１１】背景技術に基づいた割り込み元プロセッサの処理を示すフローチャートである。
【図１２】背景技術に基づいた割り込み先プロセッサの処理を示すフローチャートである。
【発明を実施するための形態】
【００２７】
本発明の実施の形態１．
図１を参照して、本発明の実施の形態１にかかるマルチプロセッサシステム１の構成について説明する。図１は、本発明の実施の形態１にかかるマルチプロセッサシステム１の構成を示す図である。
【００２８】
マルチプロセッサシステム１は、プロセッサ１０−１〜１０−ｎと、割り込み制御部１１−１〜１１−ｎと、割り込み要求レジスタ１２−１〜１２−ｎと、メモリ１３と、結合媒体１４と、プロセッサ間割り込み媒体１５と、アドレス通知レジスタ１６−１〜１６−ｎと、セレクタ１７−１〜１７−ｎとを備える。なお、割り込み要求レジスタ１２−ｎ及びアドレス通知レジスタ１６−ｎは、プロセッサ１０−ｎに含まれる。また、プロセッサ１０−ｎに対応するように、割り込み制御部１１−ｎとセレクタ１７−ｎが備えられている。
【００２９】
プロセッサ１０は、メモリ１３に格納されたプログラム(図示せず)を実行する。また、プロセッサ１０は、呼び出し元プログラムの実行結果に応じて、他のプロセッサ１０に呼び出し先プログラムを実行させる場合、そのプロセッサ１０に対して割り込み要求を通知する。その場合、割り込み要求を通知するプロセッサ１０は、アドレス通知レジスタ１６に他のプロセッサ１０に実行させる呼び出し先プログラムの開始アドレスを格納する。
【００３０】
また、プロセッサ１０は、他のプロセッサ１０から割り込み要求が通知された場合、それに応じて、呼び出し先プログラムの実行を開始する。その場合、割り込み要求が通知されたプロセッサ１０は、アドレス通知レジスタ１６に格納された開始アドレスを取得して、取得した開始アドレスから呼び出し先プログラムの実行を開始する。
【００３１】
割り込み制御部１１は、自身に対応するプロセッサ１０に対する割り込み要求が通知されると、それに応じてプロセッサ１０に割り込み要求を通知する。つまり、プロセッサ１０からプロセッサ１０への割り込み要求は、割り込み制御部１１を介して通知される。また、割り込み制御部１１は、複数のプロセッサ１０から割り込み要求が通知されている場合、どのプロセッサ１０からの割り込み要求を自身に対応するプロセッサ１０に通知するかを決定する。そして、プロセッサ１０は、決定した割り込み要求においてアドレス通知レジスタ１６に格納された開始アドレスをプロセッサ１０に出力するように選択する信号をセレクタ１７に出力する。なお、割り込み要求の決定は、どのように行ってもよい。例えば、任意に定めた優先順位に従って決定する。
【００３２】
割り込み要求レジスタ１２は、プロセッサ１０のそれぞれに対して、割り込み要求を有効にするか否かを示す値が格納される。図２に例示するように、割り込み要求レジスタ１２は、プロセッサ１０−１〜１０−ｎのそれぞれに対応する複数のレジスタを含む。割り込み要求先のプロセッサ１０に対応するレジスタに割り込み要求を有効とする値が書き込まれると、その値がプロセッサ間割り込み伝達媒体１５を介して、割り込み要求先のプロセッサ１０に対応する割り込み制御部１１に対して割り込み要求として出力される。
【００３３】
メモリ１３は、呼び出し元プログラム及び呼び出し先プログラムを含む１つ又は複数のプログラムが格納される。なお、呼び出し元プログラムと呼び出し先プログラムが同一のプログラムである場合も含まれる。また、プログラムがどのように配置されているかを示す配置情報も格納される。
結合媒体１４は、プロセッサ１０−１〜１０−ｎ及びメモリ１３の相互間で任意のデータを伝達する。結合媒体１４は、例えば、バスである。
【００３４】
プロセッサ間割り込み伝達媒体１５は、プロセッサ１０の割り込み要求レジスタ１２の値を割り込み制御部１１−１〜１１〜ｎのそれぞれに出力する。また、プロセッサ間割り込み伝達媒体１５は、例えば、割り込み制御レジスタ１２−１〜１２−ｎのうち、少なくともプロセッサ１０−ｎに対応するレジスタの値を割り込み制御部１１−ｎに出力する。
【００３５】
また、プロセッサ間割り込み伝達媒体１５は、プロセッサ１０のアドレス通知レジスタ１６の値をセレクタ１７−１〜１７〜ｎに出力する。プロセッサ間割り込み伝達媒体１５は、例えば、アドレス通知レジスタ１７−１〜１７−ｎのうち、少なくともプロセッサ１０−ｎに対応するレジスタの値を割り込み制御部セレクタ１７−ｎに出力する。プロセッサ間割り込み伝達媒体１５は、例えば、バスである。
【００３６】
アドレス通知レジスタ１６は、割り込み要求先のプロセッサ１０に実行を開始させるプログラムの開始アドレスが格納される。図３に例示するように、アドレス要求レジスタ１６は、プロセッサ１０−１〜１０−ｎのそれぞれに対応する複数のレジスタを含む。つまり、アドレス通知レジスタ１６に含まれるレジスタは、割り込み要求レジスタ１２に含まれるレジスタのそれぞれに対応する。
【００３７】
セレクタ１７は、プロセッサ間割り込み伝達媒体１５を介して入力されるアドレス通知レジスタ１７−１〜１７−ｎのレジスタの値のうち、割り込み制御部１１から選択されたレジスタの値を自身に対応するプロセッサ１０に出力する。
【００３８】
続いて、図４、５を参照して、本発明の実施の形態１にかかるマルチプロセッサシステム１の処理について説明する。まず、図４を参照して、本発明の実施の形態１にかかる割り込み元プロセッサ１０の処理について説明する。図４は、本発明の実施の形態１にかかる割り込み元プロセッサ１０の処理を示すフローチャートである。ここでは、割り込み元プロセッサがプロセッサ１０−１で、割り込み先プロセッサがプロセッサ１０−２の場合を例として説明する。
【００３９】
割り込み元プロセッサ１０−１は、メモリ１３に格納される呼び出し元プログラムを実行して、実行結果に基づいて、他のプロセッサ１０に実行させる呼び出し先プログラムを決定する(Ｓ２００)。また、その際に、割り込み元プロセッサ１０−１は、呼び出し先プログラムを実行させる割り込み先プロセッサ１０−２を決定する。なお、割り込み先プロセッサ１０−２の決定は、どのように行ってもよい。例えば、任意に定めた優先順位に従って決定する。
【００４０】
割り込み元プロセッサ１０−１は、自身に対応するアドレス通知レジスタ１６−１のうち、割り込み先として決定したプロセッサ１０−２に対応するレジスタに、呼び出し元プログラムを実行によって決定した開始アドレスを書き込む(Ｓ２０１)。レジスタに書き込まれた開始アドレスは、プロセッサ間割り込み伝達媒体１５を介して、割り込み先プロセッサ１０−２に対応するセレクタ１７−２に出力される。
【００４１】
なお、プログラムの実行によって、呼び出し先プログラムのプログラム名又はＩＤが決定される場合、プログラム名又はＩＤと、呼び出し先プログラムの開始アドレスとを対応付けたテーブルを参照することによって特定した開始アドレスをアドレス通知レジスタ１６−１に書き込む。このテーブルは、例えば、メモリ１３に格納される。
【００４２】
割り込み元プロセッサ１０−１は、開始アドレスの書き込み後、自身に対応する割り込み要求レジスタ１２−１のうち、割り込み先として決定したプロセッサ１０−２に対応するレジスタに割り込みを有効にする値を書き込む(Ｓ２０２)。レジスタに書き込まれた値は、プロセッサ間割り込み伝達媒体１５を介して、割り込み先プロセッサ１０−２に対応する割り込み制御部１１−２に割り込み要求として出力される。つまり、割り込み先プロセッサ１０−２に対する割り込み要求が割り込み制御部１１−２に出力される。
【００４３】
これにより、割り込み要求レジスタ１２−１〜１２−ｎのうち、プロセッサ１０−２に対応するレジスタが割り込み要求を有効にする値となる。そのため、割り込み制御部１１−２は、自身に対応するプロセッサ１０−２に対する割り込み要求が通知されていると判断する。割り込み制御部１１−２は、プロセッサ１０−２に対して通知されている割り込み要求のうちから、プロセッサ１０−２に通知する割り込み要求を決定する。この例では、プロセッサ１０−１のみから割り込み要求が通知されているため、割り込み制御部１１−２は、プロセッサ１０−１からの割り込み要求をプロセッサ１０−２に通知するように決定する。
【００４４】
そのため、プロセッサ１０−２は、プロセッサ１０−１に対応するアドレス通知レジスタ１６−１のうち、プロセッサ１０−２に対応するレジスタの値をプロセッサ１０−２に出力するように選択する信号をセレクタ１７−２に出力する。
【００４５】
セレクタ１７−２は、プロセッサ間割り込み伝達媒体１５を介して入力されるアドレス通知レジスタ１６−１〜１６−ｎのレジスタのうち、割り込み制御部１１−２から出力された信号によって選択されたレジスタの値をプロセッサ１０−２に出力する。これによって、選択されたレジスタに格納された開始アドレスが割り込み先プロセッサ１０−２に出力される。つまり、割り込み元プロセッサ１０−１から書き込んだ開始アドレスが割り込み先プロセッサ１０−２に通知される。
その後、割り込み制御部１１−２は、割り込み先プロセッサ１０−２に割り込み要求信号を出力する。つまり、割り込み先プロセッサ１０−２に割り込み要求が通知される。これにより、割り込み元プロセッサ１０−１から割り込み先プロセッサ１０−２へのプロセッサ間割り込みが発生することになる。
【００４６】
次に、図５を参照して、本発明の実施の形態１にかかる割り込み先プロセッサ１０の処理について説明する。図５は、割り込み先プロセッサ１０の処理を示すフローチャートである。
【００４７】
割り込み先プロセッサ１０−２は、割り込み制御部１１−２から割り込み要求信号が出力されると、自身に対して割り込み要求が通知されたと判断する。それに応じて、割り込み先プロセッサ１０−２は、セレクタ１７−２から出力されている開始アドレスを取得して、取得した開始アドレスをプログラム・カウンタに設定する。そして、割り込み先プロセッサ１０−２は、メモリ１３から呼び出し先プログラムをロードして、プログラム・カウンタに設定された開始アドレスから呼び出し先プログラムを実行する(Ｓ３００)。つまり、セレクタ１７−２から出力された開始アドレスを割り込みハンドラアドレスとしてプログラムの実行を開始する。
【００４８】
以上に説明したように、本実施の形態１によれば、割り込み元プロセッサが割り込み先プロセッサに割り込み要求を通知してプログラムを実行させる場合に、開始アドレスをアドレス通知レジスタに格納し、割り込み先プロセッサがアドレス通知レジスタに格納された開始アドレスからプログラムの実行を開始するようにしている。これにより、割り込み先プロセッサは、複数のプロセッサが共有するメモリから開始アドレスを取得する必要がなくなる。そのため、開始アドレスを取得する場合に、その取得が待たされることがなくなり、プロセッサ間割り込み処理におけるパフォーマンスを向上することができる。また、アクセス速度がメモリよりも高速なレジスタを介して、開始アドレスを取得することができるため、よりプロセッサ間割り込み処理におけるパフォーマンスを向上することができる。
【００４９】
また、本実施の形態１によれば、割り込み先プロセッサにおいて、アドレス通知レジスタに格納された開始アドレスを取得して、取得した開始アドレスを割り込みハンドラアドレスとしてプログラム・カウンタに設定することで、呼び出し先プログラム自体を割り込みハンドラとして即座に実行することができる。これにより、割り込み先プロセッサが割り込み要求に応じて実行した割り込みハンドラにおいて、呼び出し先プログラムの開始アドレスをプログラム・カウンタに設定する呼び出し先プログラムの呼び出し処理を行ってから、呼び出し先プログラムを実行する必要がなくなり、プロセッサ間割り込み処理におけるパフォーマンスを向上することができる。
【００５０】
本発明の実施の形態２．
図６を参照して、本発明の実施の形態２にかかるマルチプロセッサシステム２の構成について説明する。図６は、本発明の実施の形態２にかかるマルチプロセッサシステム２の構成を示す図である。なお、実施の形態１と同様の構成については説明を省略する。
【００５１】
マルチプロセッサシステム２は、割り込みレジスタ１２及びアドレス通知レジスタ１６に代わり、割り込み要求アドレス通知レジスタ１８を備える。割り込み要求アドレス通知レジスタ１８−ｎは、プロセッサ１０−ｎに含まれる。
【００５２】
割り込み要求アドレス通知レジスタ１８は、割り込み要求先のプロセッサ１０に実行を開始させるプログラムの開始アドレスが格納される。また、割り込み要求アドレス通知レジスタ１８は、プロセッサ１０のそれぞれに対して、割り込み要求を有効にするか否かを示す値が格納されるレジスタとしても扱われる。つまり、割り込み要求アドレス通知レジスタ１８に格納される開始アドレスは、プロセッサ１０のそれぞれに対して、割り込み要求を有効にする値としても扱われる。
【００５３】
よって、図７に例示するように、割り込み要求アドレス通知レジスタ１８は、プロセッサ１０−１〜１０−ｎのそれぞれに対応する複数のレジスタを含む。割り込み要求先のプロセッサ１０に対応するレジスタに開始アドレスが書き込まれると、その値がプロセッサ間割り込み伝達媒体１５を介して、割り込み要求先のプロセッサ１０に対応する割り込み制御部１１に対して割り込み要求として出力される。つまり、割り込み要求アドレス通知レジスタ１８は、割り込み要求が有効にされていない場合、例えば、ＡＬＬ"０"又はＡＬＬ"１"等の所定の開始アドレスが取り得ない値が格納されている。
【００５４】
プロセッサ間割り込み伝達媒体１５は、プロセッサ１０の割り込み要求アドレス通知レジスタ１８の値を他のプロセッサ１０に対応する割り込み制御部１１とセレクタ１７のそれぞれに出力する点が実施の形態１と異なる。プロセッサ間割り込み伝達媒体１５は、例えば、割り込み要求アドレス通知レジスタ１８−１〜１８−ｎのうち、少なくともプロセッサ１０−ｎに対応するレジスタの値を割り込み制御部１１−ｎ及びセレクタ１７−ｎに出力する。
【００５５】
なお、図８を参照して、本発明の実施の形態２にかかるマルチプロセッサシステム２の処理について説明する。なお、実施の形態１にかかるマルチプロセッサシステム１と同様の処理については説明を省略する。図８を参照して、本発明の実施の形態２にかかる割り込み元プロセッサ１０の処理について説明する。図８は、本発明の実施の形態１にかかる割り込み元プロセッサ１０の処理を示すフローチャートである。ここでは、実施の形態１と同様に、割り込み元プロセッサがプロセッサ１０−１で、割り込み先プロセッサがプロセッサ１０−２の場合を例として説明する。
【００５６】
ステップＳ４００の処理は、実施の形態１にかかるステップＳ２００と同様であるため説明を省略する。割り込み元プロセッサ１０−１は、自身に対応する割り込み要求アドレス通知レジスタ１８−１のうち、割り込み先として決定したプロセッサ１０−２に対応するレジスタに、呼び出し元プログラムを実行によって決定した開始アドレスを書き込む(Ｓ４０１)。レジスタに書き込まれた開始アドレスは、プロセッサ間割り込み伝達媒体１５を介して、割り込み先プロセッサ１０−２に対応する割り込み制御部１１−２及びセレクタ１７−２のそれぞれに出力される。
【００５７】
本実施の形態２では、割り込み要求アドレス通知レジスタ１８に格納された開始アドレスが、割り込み要求を有効にする値としても扱われるため、割り込み先プロセッサ１０−２に対する割り込み要求が割り込み制御部１１−２に出力されることになる。そのため、割り込み制御部１１−２は、自身に対応するプロセッサ１０−２に対する割り込み要求が通知されていると判断する。以降の処理内容については、実施の形態１と同様であるため説明を省略する。また、割り込み先プロセッサ１０−２における処理内容についても実施の形態１と同様であるため説明を省略する。
【００５８】
以上に説明したように、本実施の形態２によれば、実施の形態１と同様に、割り込み元プロセッサが割り込み先プロセッサに割り込み要求を通知してプログラムを実行させる場合に、開始アドレスを割り込み要求アドレス通知レジスタに格納し、割り込み先プロセッサが割り込み要求アドレス通知レジスタに格納された開始アドレスからプログラムの実行を開始するようにしている。これにより、割り込み先プロセッサは、複数のプロセッサが共有するメモリから開始アドレスを取得する必要がなくなる。そのため、開始アドレスを取得する場合に、その取得が待たされることがなくなり、プロセッサ間割り込み処理におけるパフォーマンスを向上することができる。また、アクセス速度がメモリよりも高速なレジスタを介して、開始アドレスを取得することができるため、よりプロセッサ間割り込み処理におけるパフォーマンスを向上することができる。
【００５９】
また、本実施の形態２によれば、実施の形態１と異なり、割り込み要求アドレス通知レジスタによって、割り込み要求の通知と、開始アドレスの通知を行うことができるため、割り込み要求レジスタ分のレジスタ本数を削減することができる。これにより、レジスタ本数を削減した分のコストを低減することができる。
【００６０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、割り込み制御部やセレクタを有しないようにして、各レジスタの値が直接プロセッサに入力されるようにしてもよい。しかし、好ましくは、本実施の形態のように、割り込み制御部から割り込み要求信号のみを出力するようにし、セレクタから割り込み制御部によって選択された開始アドレスのみを通知するように構成することで、信号線の本数及びプロセッサの入力端子数を低減することができる。
【００６１】
以上に説明した本発明にかかるマルチプロセッサシステムは、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有する割り込み元プロセッサ又は割り込み先プロセッサとなるプロセッサがこのプログラムを実行することによって、構成することが可能である。
【００６２】
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＤＶＤ(Digital Versatile Disc)、ＢＤ(Blu-ray(登録商標) Disc)、ＲＯＭ(Read Only Memory)カートリッジ、バッテリバックアップ付きＲＡＭ(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジを含む。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体を含む。また、上述のプログラムは、インターネットを介して伝達することも可能である。
【００６３】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ(Operating System)もしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【００６４】
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【符号の説明】
【００６５】
１、２    マルチプロセッサシステム
１０、１０−１、１０−２、１０−ｎ、１１０、１１０−１、１１０−２、１１０−ｎ    プロセッサ
１１、１１−１、１１−２、１１−ｎ、１１１、１１１−１、１１１−２、１１１−ｎ    割り込み制御部
１２、１２−１、１２−２、１２−ｎ、１１２、１１２−１、１１２−２、１１２−ｎ    割り込み要求レジスタ
１３、１１３    メモリ
１４、１１４    結合媒体
１５、１１５    プロセッサ間割り込み伝達媒体
１６、１６−１、１６−２、１６−ｎ    アドレス通知レジスタ
１７、１７−１、１７−２、１７−ｎ    セレクタ
１８、１８−１、１８−２、１８−ｎ    割り込み要求アドレス通知レジスタ
【図１】
2011118508.tif 000003
【図２】
2011118508.tif 000004
【図３】
2011118508.tif 000005
【図４】
2011118508.tif 000006
【図５】
2011118508.tif 000007
【図６】
2011118508.tif 000008
【図７】
2011118508.tif 000009
【図８】
2011118508.tif 000010
【図９】
2011118508.tif 000011
【図１０】
2011118508.tif 000012
【図１１】
2011118508.tif 000013
【図１２】
2011118508.tif 000014