(57)【要約】【課題】各プロセッサを効率的に使用可能とし、負荷分散を効率的に行えるマルチプロセッサシステムを提供する。【解決手段】排他制御管理デバイス１にはプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々が処理中の排他制御タグ１１−０〜１１−ｎが登録される。プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々では同じプログラム３１−０〜３１−ｎが動作する。外部から来るイベントは排他制御タグ２１−０〜２１−ｎと処理内容２２−０〜２２−ｎとから構成され、イベントキュー２に順次格納される。イベントキュー２では格納したイベントを先頭からだけではなく、途中からも取出し自在となっている。同期が必要なイベントには同じ排他制御タグが付けられ、イベントキュー２にキューイングされる。【選択図】　　　図１
2004038511.tif 000002
【特許請求の範囲】
【請求項１】
各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムであって、
処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューと、
前記プロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスとを有し、
前記複数のプロセッサ各々が、前記イベントキューから前記イベントを取得する際に前記排他制御管理デバイスに問合せを行う手段と、当該イベント内の排他制御タグが前記排他制御管理デバイスに登録されていない時に前記イベントキューから前記イベントを取得する手段と、当該イベントの取得時にそれに対応する排他制御タグを前記排他制御管理デバイスに登録する手段とを有することを特徴とするマルチプロセッサシステム。
【請求項２】
前記複数のプロセッサ各々は、前記イベントキューから前記イベントを自ら取得するようにしたことを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記複数のプロセッサ各々のうちのいずれかに前記イベントの取得権を与えかつ前記イベントの取得権を予め設定された一定時間後に次のプロセッサに委譲するイベント取得権遷移機構を含むことを特徴とする請求項１または請求項２記載のマルチプロセッサシステム。
【請求項４】
各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムの負荷分散制御方法であって、
処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューから前記イベントを取得する際に前記プロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスに問合せを行うステップと、当該イベント内の排他制御タグが前記排他制御管理デバイスに登録されていない時に前記イベントキューから前記イベントを取得するステップと、当該イベントの取得時にそれに対応する排他制御タグを前記排他制御管理デバイスに登録するステップとを前記複数のプロセッサ各々に有することを特徴とする負荷分散制御方法。
【請求項５】
前記複数のプロセッサ各々が前記イベントキューから前記イベントを自ら取得するようにしたことを特徴とする請求項４記載の負荷分散制御方法。
【請求項６】
前記複数のプロセッサ各々のうちのいずれかに前記イベントの取得権を与えるイベント取得権遷移機構が、前記イベントの取得権を予め設定された一定時間後に次のプロセッサに委譲することを特徴とする請求項４または請求項５記載の負荷分散制御方法。
【請求項７】
各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムの負荷分散制御方法のプログラムであって、前記複数のプロセッサ各々に、処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューから前記イベントを取得する際に前記プロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスに問合せを行う処理と、当該イベント内の排他制御タグが前記排他制御管理デバイスに登録されていない時に前記イベントキューから前記イベントを取得する処理と、当該イベントの取得時にそれに対応する排他制御タグを前記排他制御管理デバイスに登録する処理とを実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマルチプロセッサシステム及びそれに用いる負荷分散制御方法並びにそのプログラムに関し、特に各プロセッサがメモリ空間を共有しないマルチプロセッサシステムにおける負荷分散制御方法に関する。
【０００２】
【従来の技術】
従来、この種のマルチプロセッサシステムでは、複数のプロセッサ各々がメモリ空間を共有しない設定となっており、そのシステムにおける負荷分散制御を行う際に、一般に、プロセッサ間での同期が困難である。
【０００３】
上記のマルチプロセッサシステムでは、図６に示すように、負荷分散処理制御用マスタプロセッサ４が存在し、この負荷分散処理制御用マスタプロセッサ４が他のプロセッサ（＃１〜＃ｍ）５−１〜５−ｍの負荷状況を管理している（以下、第１の従来技術とする）。
【０００４】
負荷分散処理制御用マスタプロセッサ４による他のプロセッサ（＃１〜＃ｍ）５−１〜５−ｍの負荷状況の管理は、各プロセッサ負荷情報４１及び同期管理情報４２を用いて行われている。
【０００５】
また、他のマルチプロセッサシステムでは、図７に示すように、プロセッサ（＃１〜＃ｘ）７−１〜７−ｘ各々にＡ〜Ｘ系処理プログラム７１−１〜７１−ｘを配布しておくことで、プロセッサ（＃１〜＃ｘ）７−１〜７−ｘ各々において処理することができるイベント内容を固定している。
【０００６】
この場合、このマルチプロセッサシステムでは、プロセッサ（＃０）６からプロセッサ（＃１〜＃ｘ）７−１〜７−ｘ各々にＡ系イベント、Ｂ系イベント、Ｃ系イベント、・・・というように指示して動作している（以下、第２の従来技術とする）。
【０００７】
【発明が解決しようとする課題】
上述した従来のマルチプロセッサシステムでは、第１の従来技術の場合、いかにイベントを効率的に分配するかを目的としているので、各プロセッサを効率的に使用することができない。
【０００８】
また、第２の従来技術の場合には、各プロセッサにおいて処理することができるイベント内容を固定し、各プロセッサによって動作するプログラムが異なっているため、負荷分散を効率的に行うことが困難である。
【０００９】
そこで、本発明の目的は上記の問題点を解消し、各プロセッサを効率的に使用することができ、負荷分散を効率的に行うことができるマルチプロセッサシステム及びそれに用いる負荷分散制御方法並びにそのプログラムを提供することにある。
【００１０】
【課題を解決するための手段】
本発明によるマルチプロセッサシステムは、各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムであって、
処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューと、
前記プロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスとを有し、
前記複数のプロセッサ各々が、前記イベントキューから前記イベントを取得する際に前記排他制御管理デバイスに問合せを行う手段と、当該イベント内の排他制御タグが前記排他制御管理デバイスに登録されていない時に前記イベントキューから前記イベントを取得する手段と、当該イベントの取得時にそれに対応する排他制御タグを前記排他制御管理デバイスに登録する手段とを備えている。
【００１１】
本発明による負荷分散制御方法は、各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムの負荷分散制御方法であって、
処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューから前記イベントを取得する際に前記プロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスに問合せを行うステップと、当該イベント内の排他制御タグが前記排他制御管理デバイスに登録されていない時に前記イベントキューから前記イベントを取得するステップと、当該イベントの取得時にそれに対応する排他制御タグを前記排他制御管理デバイスに登録するステップとを前記複数のプロセッサ各々に備えている。
【００１２】
本発明による負荷分散制御方法のプログラムは、各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムの負荷分散制御方法のプログラムであって、前記複数のプロセッサ各々に、処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューから前記イベントを取得する際に前記プロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスに問合せを行う処理と、当該イベント内の排他制御タグが前記排他制御管理デバイスに登録されていない時に前記イベントキューから前記イベントを取得する処理と、当該イベントの取得時にそれに対応する排他制御タグを前記排他制御管理デバイスに登録する処理とを実行させている。
【００１３】
すなわち、本発明のマルチプロセッサシステムは、各々独自のメモリ空間を持つ複数のプロセッサと、イベントキューと、排他制御管理デバイスとをバスによって接続したマルチプロセッサシステムにおいて、負荷分散を制御するマスタプロセッサを必要とせず、処理内容と排他制御タグとからなるイベントを外部から受信してイベントキューにキューイングしている。
【００１４】
イベント処理を行うプロセッサは自らイベントキューからイベントを取得し、イベントを取得する際に、排他制御管理デバイスに問合せを行い、イベント内の排他制御タグが排他制御管理デバイスに登録されていない時のみ、イベントキューからイベントを取得可能とし、イベントの取得時に排他制御タグを排他制御管理デバイスに登録することによって、各イベント取得処理における排他制御を行っている。
【００１５】
これによって、本発明のマルチプロセッサシステムでは、マスタプロセッサの存在をなくすことが可能となり、全て同レベルのプロセッサとして機能することになるので、プロセッサが有効に利用可能となる。
【００１６】
また、本発明のマルチプロセッサシステムでは、各プロセッサの処理内容が決まっておらず、全プロセッサが同様の処理を行えることによって、従来のように、ある処理を行うプロセッサのみに高い負荷がかかっていた場合においても、他のプロセッサも処理を行うことによって、負荷が分散され、プロセッサが有効に活用可能となる。
【００１７】
したがって、本発明のマルチプロセッサシステムでは、処理可能なイベントが存在する際に、未動作のプロセッサが存在する状況がなくなり、プロセッサが効率よく使用可能になるとともに、同期管理の必要があるイベントにも効率よく対処可能となる。
【００１８】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるマルチプロセッサシステムの構成を示すブロック図である。図１において、マルチプロセッサシステムは複数のプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々をバス１００によって排他制御管理デバイス１と、イベントキュー２とに接続して構成されている。
【００１９】
排他制御管理デバイス１にはプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々が処理中の排他制御タグ１１−０〜１１−ｎが登録される。プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々では同じプログラム３１−０〜３１−ｎが動作する。
【００２０】
外部から来るイベントは排他制御タグ２１−０〜２１−ｎと処理内容２２−０〜２２−ｎとから構成され、イベントキュー２に順次格納される。イベントキュー２では格納したイベントを先頭からだけではなく、途中からも取出し自在となっている。同期が必要なイベントには同じ排他制御タグが付けられ、イベントキュー２にキューイングされる。
【００２１】
図２及び図３は本発明の一実施例によるマルチプロセッサシステムのプロセッサ　（＃０〜＃ｎ）３−１〜３−ｎ各々のイベント取得動作を示すフローチャートである。これら図１〜図３を参照してプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々のイベント取得動作について説明する。尚、図２及び図３に示す処理はプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々がプログラム３１−０〜３１−ｎを実行することで実現される。
【００２２】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベント取得可能状態になると、イベントキュー２に対してイベント取得を開始する。まず、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベント取得権（イベントキュー２のアクセス権）を獲得しにいく。
【００２３】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々は他のプロセッサによってイベント取得権が確保されている場合、イベント取得権を獲得することができないので（図２ステップＳ１）、待ち状態となる（図２ステップＳ８）。
【００２４】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベント取得権を確保することができた場合（図２ステップＳ１）、イベント取得状態通知受信をマスクし（図２ステップＳ２）、イベントキュー２の先頭からイベント取得を開始する（図２ステップＳ３）。
【００２５】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントの排他制御タグが排他制御管理デバイス１に登録されているかを確認し（図２ステップＳ４）、登録されていれば、イベントキュー２に次のイベントが存在するかを判断し（図２ステップＳ５）、イベントキュー２に次のイベントが存在すれば、ステップＳ２に戻って上記と同様のイベント取得処理を行う。
【００２６】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントキュー２に存在する全てのイベントが取得不可の場合（図２ステップＳ５）、イベント取得権を解放し（図２ステップＳ６）、イベント取得状態通知受信マスクを解除し（図２ステップＳ７）、イベント取得状態通知待ちとなる（図２ステップＳ８）。
【００２７】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントの排他制御タグが排他制御管理デバイス１に登録されていなければ、その排他制御タグを排他制御管理デバイス１に登録し（図２ステップＳ９）、イベントの取得、イベント取得権の解放、イベント取得状態通知をそれぞれ行う（図２ステップＳ１０）。
【００２８】
処理内容処理完了後、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々は排他制御管理デバイス１から排他制御タグを削除し（図３ステップＳ１１）、イベント取得状態通知受信マスクを解除し（図３ステップＳ１２）、イベント取得状態通知を行う（図３ステップＳ１３）。
【００２９】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々がイベント取得状態となるのは、イベント取得状態通知を受信した場合となる。イベント取得状態通知はイベントキュー２にイベントがキューイングされた時、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々がイベント取得権を解放した時、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々がイベント処理を完了し、排他制御タグを削除した時となる。
【００３０】
このように、本実施例では、マスタプロセッサの存在をなくし、全て同レベルのプロセッサとして機能することによって、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々を有効に利用することができる。
【００３１】
また、本実施例では、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々の処理内容が決まっておらず、全てのプロセッサにおいて同様の処理を行うようにすることで、従来ある処理を行うプロセッサのみに高い負荷がかかっていた場合でも、その処理を他のプロセッサでも処理を行うことによって、負荷が分散されるので、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々を有効に活用することができる。
【００３２】
これによって、本実施例では、処理可能なイベントが存在するが、未動作のプロセッサが存在する状況がなくなり、プロセッサを効率よく使用することができ、同期管理の必要があるイベントにも効率よく対処することができる。
【００３３】
図４及び図５は本発明の他の実施例によるマルチプロセッサシステムのプロセッサ各々のイベント取得動作を示すフローチャートである。本発明の他の実施例によるマルチプロセッサシステムは図１に示す本発明の一実施例によるマルチプロセッサシステムと同様の構成となっているので、これら図１と図４と図５とを参照してプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々のイベント取得動作について説明する。尚、図４及び図５に示す処理はプロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々がプログラム３１−０〜３１−ｎを実行することで実現される。
【００３４】
本発明の他の実施例では、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々のイベント取得状態遷移タイミングがイベント取得状態通知ではなく、ラウンドロビン形式の場合に対応しており、以下、この場合の動作について説明する。
【００３５】
本発明の他の実施例では、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々の動作とは独立したラウンドロビン形式のイベント取得権遷移機構（図示せず）を用意している。
【００３６】
イベント取得権遷移機構はあるプロセッサにイベント取得権を与え、一定時間後に、次のプロセッサにイベント取得権を委譲する。最後のプロセッサの次は先頭のプロセッサに委譲することとなる。
【００３７】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベント取得可能状態になると、イベント処理中でなければ（図４ステップＳ２１）、イベント取得権遷移機構の遷移を停止させる（図４ステップＳ２３）。
【００３８】
次に、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントキュー２に対してイベント取得を開始し（図４ステップＳ２４）、イベントの排他制御タグが排他制御管理デバイス１に登録されているかどうかを確認する（図４ステップＳ２５）。
【００３９】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントの排他制御タグが排他制御管理デバイス１に登録されている場合、イベントキュー２に次のイベントが存在するかを判断し（図４ステップＳ２６）、イベントキュー２に次のイベントが存在すれば、ステップＳ２４に戻って、上記と同様のイベント取得処理を行う。
【００４０】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントキュー２に存在する全てのイベントが取得不可の場合（図４ステップＳ２６）、イベント取得権遷移機構の遷移停止を解除し（図４ステップＳ２７）、イベント取得状態通知待ちとなる（図４ステップＳ２８）。
【００４１】
プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々はイベントの排他制御タグが排他制御管理デバイス１に登録されていなければ、その排他制御タグを排他制御管理デバイス１に登録し（図４ステップＳ２９）、イベントの取得、イベント取得権の解放、イベント取得状態通知をそれぞれ行う（図４ステップＳ３０）。
【００４２】
処理内容処理完了後、プロセッサ（＃０〜＃ｎ）３−１〜３−ｎ各々は排他制御管理デバイス１から排他制御タグを削除し（図５ステップＳ３１）、イベント取得状態通知待ちとなる（図５ステップＳ３２）。
【００４３】
【発明の効果】
以上説明したように本発明は、各々独自のメモリ空間を持つ複数のプロセッサからなるマルチプロセッサシステムにおいて、処理内容と排他制御タグとからなるイベントを外部から受信してキューイングするイベントキューからイベントを取得する際にプロセッサによって処理されるイベントの排他制御タグを管理する排他制御管理デバイスに問合せを行い、当該イベント内の排他制御タグが排他制御管理デバイスに登録されていない時にイベントキューからイベントを取得し、当該イベントの取得時にそれに対応する排他制御タグを排他制御管理デバイスに登録することによって、各プロセッサを効率的に使用することができ、負荷分散を効率的に行うことができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施例によるマルチプロセッサシステムの構成を示すブロック図である。
【図２】本発明の一実施例によるマルチプロセッサシステムのプロセッサ各々のイベント取得動作を示すフローチャートである。
【図３】本発明の一実施例によるマルチプロセッサシステムのプロセッサ各々のイベント取得動作を示すフローチャートである。
【図４】本発明の他の実施例によるマルチプロセッサシステムのプロセッサ各々のイベント取得動作を示すフローチャートである。
【図５】本発明の他の実施例によるマルチプロセッサシステムのプロセッサ各々のイベント取得動作を示すフローチャートである。
【図６】従来例によるマルチプロセッサシステムの構成例を示すブロック図である。
【図７】従来例によるマルチプロセッサシステムの他の構成例を示すブロック図である。
【符号の説明】
１　排他制御管理デバイス
２　イベントキュー
３−１〜３−ｎ　プロセッサ（＃０〜＃ｎ）
１１−０〜１１−ｎ，
２１−０〜２１−ｎ　排他制御タグ
２２−０〜２２−ｎ　処理内容
３１−０〜３１−ｎ　プログラム
１００　バス
【図１】
2004038511.tif 000003
【図２】
2004038511.tif 000004
【図３】
2004038511.tif 000005
【図４】
2004038511.tif 000006
【図５】
2004038511.tif 000007
【図６】
2004038511.tif 000008
【図７】
2004038511.tif 000009