(57)【要約】【課題】優先度の高い処理が優先度の低い処理によって資源の獲得ができないために処理を妨げられることを無くすことができる競合制御装置を提供すること。【解決手段】第１のプロセッサ１ａ及び第２のプロセッサ１ｂは、記憶装置２へのアクセスを必要とするとき、処理時間と許容待ち時間とを算出し、優先度とともに資源獲得要求に設定して競合制御装置３に送信する。競合制御装置３は、資源獲得要求を受信したとき、記憶装置２にアクセスする実行中の処理が有れば、その優先度と資源獲得要求の優先度を比較し、資源獲得要求の優先度の方が高ければ、資源獲得要求の送信元に許容待ち時間だけ処理を待たせ、実行中の処理が終わらないときは、実行中の処理を中断して資源獲得要求の送信元に処理を実行させる。【選択図】      図１
2005018224.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサで共有される共有資源へのアクセスの許可を要求する資源獲得要求を受信したとき、前記共有資源へのアクセス権を有している処理が有れば、前記資源獲得要求に設定されている優先度を前記アクセス権を有している処理の優先度と比較し、前記資源獲得要求に設定されている優先度の方が優先度が高いときは、前記資源獲得要求に設定されている許容待ち時間だけ前記資源獲得要求を送信してきた処理の実行を待たせ、前記許容待ち時間が経過しても前記アクセス権を有している処理が終了しないときは、前記アクセス権を有している処理を中断させ、前記資源獲得要求を送信してきた処理を実行させることを特徴とする競合制御装置。
【請求項２】
前記共有資源へのアクセスの許可を要求する資源獲得要求に中断不可情報を備え、前記共有資源へのアクセス権を有している処理が前記中断不可情報で中断不可を設定している場合は、処理の優先度に関係なく前記アクセス権を有している処理を中断させないことを特徴とする請求項１に記載の競合制御装置。
【請求項３】
複数のプロセッサで共有される共有資源へのアクセスの許可を要求するとき、前記共有資源にアクセスする処理の優先度と、この処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間とを資源獲得要求に設定して送信することを特徴とするプロセッサ。
【請求項４】
請求項１または請求項２に記載の競合制御装置と、複数の請求項３に記載のプロセッサとを備えたことを特徴とするマルチプロセッサシステム。
【請求項５】
複数の処理で共有される共有資源へのアクセスの許可を要求する資源獲得要求を受信したとき、前記共有資源へのアクセス権を有している処理が有れば、前記資源獲得要求に設定されている優先度を前記アクセス権を有している処理の優先度と比較し、前記資源獲得要求に設定されている優先度の方が優先度が高いときは、前記資源獲得要求に設定されている許容待ち時間だけ前記資源獲得要求を送信してきた処理の実行を待たせ、前記許容待ち時間が経過しても前記アクセス権を有している処理が終了しないときは、前記アクセス権を有している処理を中断させ、前記資源獲得要求を送信してきた処理を実行させる競合制御手段を備え、前記共有資源へのアクセスの許可を要求する前記処理は、自処理の優先度と、自処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間とを資源獲得要求に設定して送信することを特徴とするプロセッサ。
【請求項６】
前記共有資源は他のプロセッサとも共有され、前記競合制御手段は、他のプロセッサからの前記資源獲得要求も受け付けて処理することを特徴とする請求項５に記載のプロセッサ。
【請求項７】
請求項６に記載のプロセッサと、複数の請求項３に記載のプロセッサとを備えることを特徴とするマルチプロセッサシステム。
【請求項８】
複数の処理で共有される共有資源へのアクセスの周期及びアクセス時間が各処理毎に予め設定され、前記各処理は、設定された前記アクセスの周期及びアクセス時間に従って前記共有資源へアクセスすることを特徴とするプロセッサ。
【請求項９】
複数のプロセッサで共有される共有資源へのアクセスの周期及びアクセス時間が各プロセッサの各処理毎に予め設定され、前記各処理は、設定された前記アクセスの周期及びアクセス時間に従って前記共有資源へアクセスすることを特徴とするマルチプロセッサシステム。
【請求項１０】
複数の処理で共有される共有資源へのアクセスの許可を要求するとき、自処理の優先度と、自処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間とを通知させ、前記優先度及び許容待ち時間に基づいて、前記共有資源へのアクセスの許可の要求があったとき、前記共有資源へのアクセス権を有している処理が有れば、前記アクセスの許可を要求してきた処理の優先度を前記アクセス権を有している処理の優先度と比較し、前記アクセスの許可を要求してきた処理の方が優先度が高いときは、前記許容待ち時間だけ前記アクセスの許可を要求してきた処理の実行を待たせ、前記許容待ち時間が経過しても前記アクセス権を有している処理が終了しないときは、前記アクセス権を有している処理を中断させ、前記アクセスの許可を要求してきた処理を実行させることを特徴とする競合制御方法。
【請求項１１】
前記共有資源へのアクセス権を有している処理が、前記共有資源へのアクセスの許可を要求するとき中断不可を通知している場合は、処理の優先度に関係なく前記アクセス権を有している処理を中断させないことを特徴とする請求項１０に記載の競合制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチプロセッサシステムなどにおいて、共有資源へのアクセスの競合を制御する競合制御装置に関する。
【０００２】
【従来の技術】
従来、マルチプロセッサシステムなどにおいて共有資源へのアクセスの競合を制御するため、プロセッサ毎にアクセス時間を割り当てて、割り当てられた時間には優先的に共有資源へアクセスすることができるようにするものがあった（例えば、特許文献１参照）。
【０００３】
また、共有資源の資源獲得要求に優先順位を設け、この優先順位毎に処理の待ち行列を用意し、資源獲得要求は、付加される優先順位に対応する待ち行列に入れられ、実行中の処理が終了して資源が解放されると、優先順位の高い待ち行列に入っている資源獲得要求から資源を獲得するものもあった（例えば、特許文献２参照）。
【０００４】
【特許文献１】
特開平５−２３３５６１号公報
【特許文献２】
特開平５−３１３９２３号公報
【０００５】
【発明が解決しようとする課題】
しかし、このような従来の競合制御装置では、リアルタイム性のある処理が直ぐにでも資源を獲得したいときでも、割り当てられた時間でなかったり、実行中の処理があったりすると、割り当てられた時間がくるまで、または実行中の処理が終了するまで資源を獲得することができず、リアルタイム性のある処理を行うことができないという問題があった。
【０００６】
本発明はこのような問題を解決するためになされたもので、優先度の高い処理が優先度の低い処理によって資源の獲得ができないために処理を妨げられることを無くすことができる競合制御装置を提供するものである。
【０００７】
【課題を解決するための手段】
本発明の競合制御装置は、複数のプロセッサで共有される共有資源へのアクセスの許可を要求する資源獲得要求を受信したとき、前記共有資源へのアクセス権を有している処理が有れば、前記資源獲得要求に設定されている優先度を前記アクセス権を有している処理の優先度と比較し、前記資源獲得要求に設定されている優先度の方が優先度が高いときは、前記資源獲得要求に設定されている許容待ち時間だけ前記資源獲得要求を送信してきた処理の実行を待たせ、前記許容待ち時間が経過しても前記アクセス権を有している処理が終了しないときは、前記アクセス権を有している処理を中断させ、前記資源獲得要求を送信してきた処理を実行させる構成を有している。
【０００８】
この構成により、共有資源へのアクセス権を有している処理よりも優先度の高い処理による資源獲得要求があった場合、優先度の高い処理が指定してきた許容待ち時間分は現在アクセス権のある処理が優先して処理を行い、許容待ち時間が経過したらアクセス権のある処理は中断されて優先度の高い処理が実行されることとなる。
【０００９】
ここで、前記共有資源へのアクセスの許可を要求する資源獲得要求に中断不可情報を備え、前記共有資源へのアクセス権を有している処理が前記中断不可情報で中断不可を設定している場合は、処理の優先度に関係なく前記アクセス権を有している処理を中断させない構成とした。
【００１０】
この構成により、共有資源へのアクセス権を有している処理の優先度が低い場合でも、特別に処理の中断を行われたくない状況の場合には、中断不可を設定することによって、優先度の高い処理の要求があっても処理を中断されずに実行することができる。
【００１１】
また、本発明のプロセッサは、複数のプロセッサで共有される共有資源へのアクセスの許可を要求するとき、前記共有資源にアクセスする処理の優先度と、この処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間とを資源獲得要求に設定して送信する構成を有している。
【００１２】
この構成により、資源獲得要求の受信側で、優先度と許容待ち時間に基づいて、共有資源へのアクセス権が付与されることとなる。
【００１３】
また、本発明のプロセッサは、複数の処理で共有される共有資源へのアクセスの許可を要求する資源獲得要求を受信したとき、前記共有資源へのアクセス権を有している処理が有れば、前記資源獲得要求に設定されている優先度を前記アクセス権を有している処理の優先度と比較し、前記資源獲得要求に設定されている優先度の方が優先度が高いときは、前記資源獲得要求に設定されている許容待ち時間だけ前記資源獲得要求を送信してきた処理の実行を待たせ、前記許容待ち時間が経過しても前記アクセス権を有している処理が終了しないときは、前記アクセス権を有している処理を中断させ、前記資源獲得要求を送信してきた処理を実行させる競合制御手段を備え、前記共有資源へのアクセスの許可を要求する前記処理は、自処理の優先度と、自処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間とを資源獲得要求に設定して送信する構成を有している。
【００１４】
この構成により、共有資源へのアクセス権を有している処理よりも優先度の高い処理による資源獲得要求があった場合、優先度の高い処理が指定してきた許容待ち時間分は現在アクセス権のある処理が優先して処理を行い、許容待ち時間が経過したらアクセス権のある処理は中断されて優先度の高い処理が実行されることとなる。
【００１５】
ここで、前記共有資源は他のプロセッサとも共有され、前記競合制御手段は、他のプロセッサからの前記資源獲得要求も受け付けて処理する構成とした。
【００１６】
この構成により、マルチプロセッサシステムの複数のプロセッサにおいて、１つのプロセッサの競合制御手段を用いて共有資源への競合制御を行うことができることとなる。
【００１７】
また、本発明のプロセッサは、複数の処理で共有される共有資源へのアクセスの周期及びアクセス時間が各処理毎に予め設定され、前記各処理は、設定された前記アクセスの周期及びアクセス時間に従って前記共有資源へアクセスする構成を有している。
【００１８】
この構成により、優先度の高い処理も優先度の低い処理も効率よく処理が行えるようなアクセス間隔やアクセス時間が設定され、設定に従って効率よく処理を行うことができる。
【００１９】
また、本発明のマルチプロセッサシステムは、複数のプロセッサで共有される共有資源へのアクセスの周期及びアクセス時間が各プロセッサの各処理毎に予め設定され、前記各処理は、設定された前記アクセスの周期及びアクセス時間に従って前記共有資源へアクセスする構成を有している。
【００２０】
この構成により、マルチプロセッサシステムの各プロセッサの各処理毎に、優先度の高い処理も優先度の低い処理も効率よく処理が行えるようなアクセス間隔やアクセス時間が設定され、設定に従って効率よく処理を行うことができる。
【００２１】
また、本発明の競合制御方法は、複数の処理で共有される共有資源へのアクセスの許可を要求するとき、自処理の優先度と、自処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間とを通知させ、前記優先度及び許容待ち時間に基づいて、前記共有資源へのアクセスの許可の要求があったとき、前記共有資源へのアクセス権を有している処理が有れば、前記アクセスの許可を要求してきた処理の優先度を前記アクセス権を有している処理の優先度と比較し、前記アクセスの許可を要求してきた処理の方が優先度が高いときは、前記許容待ち時間だけ前記アクセスの許可を要求してきた処理の実行を待たせ、前記許容待ち時間が経過しても前記アクセス権を有している処理が終了しないときは、前記アクセス権を有している処理を中断させ、前記アクセスの許可を要求してきた処理を実行させる構成とした。
【００２２】
この構成により、共有資源へのアクセス権を有している処理よりも優先度の高い処理による資源獲得要求があった場合、優先度の高い処理が指定してきた許容待ち時間分は現在アクセス権のある処理が優先して処理を行い、許容待ち時間が経過したらアクセス権のある処理は中断されて優先度の高い処理が実行されることとなる。
【００２３】
ここで、前記共有資源へのアクセス権を有している処理が、前記共有資源へのアクセスの許可を要求するとき中断不可を通知している場合は、処理の優先度に関係なく前記アクセス権を有している処理を中断させない構成とした。
【００２４】
この構成により、共有資源へのアクセス権を有している処理の優先度が低い場合でも、特別に処理の中断を行われたくない状況の場合には、中断不可を通知することによって、優先度の高い処理の要求があっても処理を中断されずに実行することができる。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。
【００２６】
（第１の実施の形態）
図１は本発明の第１の実施の形態のマルチプロセッサシステムを示すブロック図である。
【００２７】
図１に示すように、本実施の形態のマルチプロセッサシステムは、第１のプロセッサ１ａと第２のプロセッサ１ｂとの２つのプロセッサと、この２つのプロセッサの共有資源である記憶装置２と、２つのプロセッサの記憶装置２へのアクセスを制御する競合制御装置３とを備えている。
【００２８】
第１のプロセッサ１ａ及び第２のプロセッサ１ｂでは、それぞれに様々な種類の複数の処理が行われ、その処理の中で記憶装置２へのアクセスが必要となる処理は、競合制御装置３に資源獲得要求を送信して記憶装置２へのアクセスが許可されるのを待つようになっている。
【００２９】
この資源獲得要求には、資源獲得要求を行う処理の優先度や、この処理の処理時間や、処理を支障が無いように行うために許容される処理開始までの待ち時間である許容待ち時間などが設定されて送信される。
【００３０】
競合制御装置３は、資源獲得要求に設定されたこれらの情報に基づいて、第１のプロセッサ１ａ又は第２のプロセッサ１ｂで実行中の記憶装置２へのアクセス権を持つ処理よりも優先度の高い処理の資源獲得要求があっても、実行中の処理を優先し、優先度の高い処理を許容待ち時間だけ待たせ、許容待ち時間が過ぎても実行中の処理が終わらない場合には実行中の処理を中断し、優先度の高い処理を実行させるようになっている。
【００３１】
図２のシーケンス図は、実行中の処理が優先度の高い処理の許容待ち時間を超えずに処理が終了した場合を示している。
【００３２】
図２に示すように、第１のプロセッサ１ａで記憶装置２へのアクセスを必要とする処理を実行するとき、第１のプロセッサ１ａは、記憶装置２へアクセスする処理が当該処理を終了させるまでにかかる時間（処理時間）を算出し、また、処理を実行するのに支障が無い範囲で記憶装置２へアクセスする処理を待つことができる時間（許容待ち時間）を算出する。
【００３３】
そして、記憶装置２にアクセスする処理の予め定められた優先度と、算出した処理時間及び許容待ち時間とを設定した資源獲得要求を競合制御装置３に送信する（ステップＳ１１）。
【００３４】
競合制御装置３は、資源獲得要求を受信すると、記憶装置２にアクセスする実行中の処理が有るか判定し、実行中の処理が無ければ、資源獲得要求の送信元の情報や資源獲得要求に設定されている優先度や処理時間や許容待ち時間などを実行中の処理の情報として記憶し、資源獲得要求に設定されている処理時間のタイマを設定し、資源獲得要求の送信元に処理開始指示を返送する（ステップＳ１２）。
【００３５】
第１のプロセッサ１ａは、資源獲得要求に対して処理開始指示を受信すると、記憶装置２にアクセスする処理を開始する。
【００３６】
第１のプロセッサ１ａが処理を開始した後、第２のプロセッサ１ｂで記憶装置２にアクセスする必要のある処理を実行しようとするとき、第２のプロセッサ１ｂは上述の第１のプロセッサ１ａと同様に、処理時間と許容待ち時間とを算出し、記憶装置２にアクセスする処理の予め定められた優先度と、算出した処理時間及び許容待ち時間とを設定した資源獲得要求を競合制御装置３に送信する（ステップＳ１３）。
【００３７】
競合制御装置３は、資源獲得要求を受信すると、記憶装置２にアクセスする実行中の処理が有るか判定し、実行中の処理が有れば、実行中の処理の優先度と後から受信した資源獲得要求に設定されている優先度を比較し、後から受信した資源獲得要求に設定されている優先度の方が高ければ、後から受信した資源獲得要求に設定されている優先度や処理時間や許容待ち時間などを待機中の処理の情報として記憶し、後から受信した資源獲得要求に設定されている許容待ち時間を参照し、許容待ち時間のタイマを設定して、資源獲得要求の送信元に処理待ち指示を送信する（ステップＳ１４）。
【００３８】
第２のプロセッサ１ｂは、資源獲得要求に対して処理待ち指示を受信すると、処理待ちの状態で待機を開始する。
【００３９】
その後、第１のプロセッサ１ａで記憶装置２にアクセスする処理が終了すると、第１のプロセッサ１ａは、競合制御装置３に処理終了通知を送信する（ステップＳ１５）。
【００４０】
競合制御装置３は、処理終了通知を受信すると、終了した処理の処理時間で設定したタイマを解除し、待機中の処理が有るかを判定し、待機中の処理が有れば当該処理の許容待ち時間で設定したタイマを解除し、記憶している当該処理に関する情報から処理時間を読み出し、読み出した処理時間のタイマを設定し、当該処理に処理開始指示を送信する（ステップＳ１６）。
【００４１】
処理待ち状態の第２のプロセッサ１ｂは、処理開始指示を受信すると、処理待ちとなっている処理を開始する。
【００４２】
このように本実施の形態によれば、後から要求の有った処理の優先度が実行中の処理の優先度より高くても、後からの処理の許容待ち時間分は処理を待たせて実行中の処理を優先的に処理させることができる。
【００４３】
なお、第２のプロセッサ１ｂは、処理待ち指示（ステップＳ１４）を受信してから処理待ち状態としたが、資源獲得要求（ステップＳ１３）を送信した時に処理待ち状態にしてもよい。この場合、すでに第２のプロセッサ１ｂは処理待ち状態のため、競合制御装置３からの処理待ち指示（ステップｓ１４）の送信を省略してもよい。
【００４４】
図３のシーケンス図は、実行中の処理が優先度の高い処理の許容待ち時間を超えて処理が続行した場合を示している。
【００４５】
図３に示すように、第１のプロセッサ１ａで記憶装置２へのアクセスを必要とする処理を実行するとき、第１のプロセッサ１ａは、上述の場合と同様に、優先度と算出した処理時間と許容待ち時間とを設定した資源獲得要求を競合制御装置３へ送信し、資源獲得要求を受信した競合制御装置３は、実行中の処理が無いので、資源獲得要求に設定された処理時間のタイマを設定し、処理開始指示を返信し、処理開始指示を受信した第１のプロセッサ１ａは、処理を開始する（ステップＳ１１、Ｓ１２）。
【００４６】
その後、第２のプロセッサ１ｂで記憶装置２にアクセスする必要のある処理を実行しようとするとき、第２のプロセッサ１ｂは上述の場合と同様に、優先度と算出した処理時間と許容待ち時間とを設定した資源獲得要求を競合制御装置３へ送信し、資源獲得要求を受信した競合制御装置３は、実行中の処理が有り、かつ実行中の処理の優先度より後からの資源獲得要求の処理の優先度の方が高いので、後からの資源獲得要求に設定された許容待ち時間のタイマを設定し、後からの資源獲得要求に対し処理待ち指示を返送し、処理待ち要求を受信した第２のプロセッサ１ｂは、処理待ちの状態で待機する（ステップＳ１３、Ｓ１４）。
【００４７】
そして、競合制御装置３において、許容待ち時間を設定したタイマがタイムアウトすると、競合制御装置３は、処理時間を設定したタイマを中断し、処理を実行中の第１のプロセッサ１ａに処理中断指示を送信する（ステップＳ２１）。
【００４８】
第１のプロセッサ１ａは、処理中断指示を受信すると、実行中の処理を中断し、処理中断完了通知を競合制御装置３へ送信し（ステップＳ２２）、処理待ち状態となる。
【００４９】
競合制御装置３は、処理中断指示に対し処理中断完了通知を受信すると、記憶している実行中の処理の情報を中断中の処理の情報として記憶し、記憶している待機中の処理の情報を実行中の処理の情報として記憶し、当該実行中の処理の情報から処理時間を読み出して、読み出した処理時間のタイマを設定し、第２のプロセッサ１ｂに処理開始指示を送信する（ステップＳ２３）。
【００５０】
第２のプロセッサ１ｂは、処理開始指示を受信すると、処理待ちとなっている処理を開始し、処理が終了すると、競合制御装置３に処理終了通知を送信する（ステップＳ２４）。
【００５１】
競合制御装置３は、処理終了通知を受信すると、実行中の処理の処理時間で設定したタイマを解除し、記憶している中断中の処理の情報を実行中の処理の情報として記憶し、当該実行中の処理の情報から中断中のタイマを再開し、処理開始指示を処理を中断している第１のプロセッサ１ａに送信する（ステップＳ２５）。
【００５２】
第１のプロセッサ１ａは、処理開始指示を受信すると、中断していた処理を開始する。
【００５３】
このように本実施の形態によれば、実行中の処理が、後から要求の有った処理の優先度がより高い処理の許容待ち時間内に終了しないとき、実行中の処理を中断し、優先度の高い処理を実行することができる。
【００５４】
また、本実施の形態においては、資源獲得要求に中断不可フラグを設定することができ、この中断不可フラグが設定されて資源獲得要求した処理は、実行中により優先度の高い処理の資源獲得要求があっても中断されずに処理を行うことができるようになっている。
【００５５】
具体的には、図４のシーケンス図に示すように、第１のプロセッサ１ａで記憶装置２へのアクセスを必要とする中断されたくない処理を実行するとき、第１のプロセッサ１ａは、記憶装置２へアクセスする処理が処理を終了するまでにかかる時間（処理時間）を算出し、また、処理を実行するのに支障が無い範囲で記憶装置２へアクセスする処理を待つことができる時間（許容待ち時間）を算出する。
【００５６】
そして、記憶装置２にアクセスする処理の予め定められた優先度と、算出した処理時間及び許容待ち時間と、中断不可フラグとを設定した資源獲得要求を競合制御装置３に送信する（ステップＳ３１）。
【００５７】
競合制御装置３は、資源獲得要求を受信すると、受信した資源獲得要求に中断不可フラグが設定されているか判定し、中断不可フラグが設定されていると、資源獲得要求を送信してきたプロセッサ以外のプロセッサに、資源獲得要求に設定されてきた処理時間を設定した中断不可通知を送信する（ステップＳ３２）。
【００５８】
そして、記憶装置２にアクセスする実行中の処理が有るか判定し、実行中の処理が無ければ、資源獲得要求の送信元の情報や資源獲得要求に設定されている優先度や処理時間や許容待ち時間や中断不可であることなどを実行中の処理の情報として記憶し、資源獲得要求に設定されている処理時間のタイマを設定し、資源獲得要求の送信元に処理開始指示を返送する（ステップＳ３３）。
【００５９】
第１のプロセッサ１ａは、資源獲得要求に対して処理開始指示を受信すると、記憶装置２にアクセスする処理を開始する。
【００６０】
第１のプロセッサ１ａが処理を開始した後、第２のプロセッサ１ｂで記憶装置２にアクセスする必要のある処理を実行しようとするとき、第２のプロセッサ１ｂは上述の第１のプロセッサ１ａと同様に、処理時間と許容待ち時間とを算出し、記憶装置２にアクセスする処理の予め定められた優先度と、算出した処理時間及び許容待ち時間とを設定した資源獲得要求を競合制御装置３に送信する（ステップＳ３４）。
【００６１】
競合制御装置３は、資源獲得要求を受信すると、記憶装置２にアクセスする実行中の処理が有るか判定し、実行中の処理が有れば、実行中の処理が中断不可であるか判定し、実行中の処理が中断不可であれば、後から受信した資源獲得要求に設定されている優先度や処理時間や許容待ち時間などを待機中の処理の情報として記憶し、資源獲得要求の送信元に処理待ち指示を送信する（ステップＳ３５）。
【００６２】
第２のプロセッサ１ｂは、資源獲得要求に対して処理待ち指示を受信すると、処理待ちの状態で待機を開始する。
【００６３】
その後、第１のプロセッサ１ａで記憶装置２にアクセスする処理が終了すると、第１のプロセッサ１ａは、競合制御装置３に処理終了通知を送信する（ステップＳ３６）。
【００６４】
競合制御装置３は、処理終了通知を受信すると、終了した処理の処理時間で設定したタイマを解除し、待機中の処理が有るかを判定し、待機中の処理が有れば当該処理の許容待ち時間で設定したタイマを解除し、記憶している当該処理に関する情報から処理時間を読み出し、読み出した処理時間のタイマを設定し、当該処理に処理開始指示を送信する（ステップＳ３７）。
【００６５】
処理待ち状態の第２のプロセッサ１ｂは、処理開始指示を受信すると、処理待ちとなっている処理を開始する。
【００６６】
このように本実施の形態によれば、資源獲得要求に中断不可フラグを設定すれば、優先度の低い処理でも後から優先度の高い処理の要求があっても、中断したくない処理を優先的に処理させることができる。
【００６７】
以上のように本実施の形態によれば、後から要求の有った処理の優先度が実行中の処理の優先度より高い場合、後からの処理の許容待ち時間分は処理を待たせ、許容待ち時間が経過しても実行中の処理が終了しないときは実行中の処理を中断して後からの処理を実行するようにしているので、優先度の低い処理により優先度の高い処理を妨げることを無くすことができる。
【００６８】
また、後から要求の有った処理の優先度が実行中の処理の優先度より高い場合、後からの処理の許容待ち時間分は処理を待たせているので、許容待ち時間分は実行中の処理を優先的に処理させることができ、実行中の処理を後から要求のあった優先度の高い処理によって中断させられることを少なくすることができる。
【００６９】
本実施の形態の他の態様としては、図５に示すように、競合制御装置３の機能を１つのプロセッサ（図では第１のプロセッサ４ａ）に、競合制御部４１として実行する。このように構成することによって、競合制御装置を別に設けなくても本実施の形態の処理を行うことができる。
【００７０】
なお、本実施の形態においては、処理終了時に処理終了通知を競合制御装置３に送信したが、資源獲得要求に設定されている処理時間に従って処理の終了を検知してもよい。
【００７１】
また、第１のプロセッサ１ａ及び第２のプロセッサ１ｂは、資源獲得要求を送信した後、処理開始指示や処理待ち指示を待ち、受信した指示に従って処理を行ったが、資源獲得要求を送信した後に処理待ちの状態となり、処理開始指示を受信したら処理を開始するようにしてもよい。この場合、競合制御装置３からの処理待ち指示の送信を省略することができる。
【００７２】
（第２の実施の形態）
図６は本発明の第２の実施の形態のマルチプロセッサシステムを示す図である。なお、本実施の形態は、上述の第１の実施の形態と略同様に構成されているので、同様な構成には同一の符号を付して特徴部分のみ説明する。
【００７３】
本実施形態の記憶装置２にアクセスする処理は、全て周期的にアクセスするようになっており、各周期毎に記憶装置２にアクセスする時間やアクセスの開始を待つことができる許容待ち時間などは１つの処理では全て同じとなっている。
【００７４】
すなわち、記憶装置２へのアクセスは全て周期的に行われ、各処理が行うアクセスのアクセス時間や許容待ち時間は予め決まっている。
【００７５】
そこで、記憶装置２へアクセスする処理のアクセス間隔やアクセス時間や許容待ち時間を全て集め、集めたデータから優先度の高い処理も優先度の低い処理も効率よく処理が行えるようなアクセス間隔やアクセス時間を算出する。
【００７６】
そして、算出したアクセス間隔やアクセス時間をそれぞれの処理に対応付けて記憶しておき、そのアクセス間隔やアクセス時間に従って処理を行っていく。
【００７７】
具体的には、第１のプロセッサ５ａ及び第２のプロセッサ５ｂは、初期設定時に記憶装置２にアクセスする処理を予め設定されたアクセス間隔で記憶装置２にアクセスするように設定して処理を開始する。
【００７８】
そして、第１のプロセッサ５ａ及び第２のプロセッサ５ｂは、記憶装置２にアクセスする場合、各処理毎に予め設定されたアクセス時間をタイマ装置６に設定し、記憶装置２へのアクセスを開始する。
【００７９】
その後、タイマ装置６からタイムアウトの通知があるまで、第１のプロセッサ５ａ及び第２のプロセッサ５ｂは、記憶装置２へのアクセスを行い、タイマ装置６からタイムアウトの通知があると、記憶装置２へのアクセスを終了し、その後の処理を続ける。
【００８０】
このように本実施の形態においては、記憶装置２にアクセスする処理のアクセス間隔やアクセス時間や許容待ち時間等を収集して、収集したデータから優先度の高い処理も優先度の低い処理も効率よく処理が行えるようなアクセス間隔やアクセス時間を算出し、算出したアクセス間隔やアクセス時間により処理を行っているので、優先度の高い処理が優先度の低い処理によって処理を妨げられることを無くすことができる。
【００８１】
【発明の効果】
以上説明したように、本発明によれば、複数の処理で共有する共有資源へのアクセスの許可を要求するときに、当該処理の優先度とともに処理開始を待つことができる時間である許容待ち時間を設定して通知させ、共有資源のアクセス権を持つ実行中の処理よりも優先度の高い処理がアクセスの許可を要求してきたとき、優先度の高い処理を許容待ち時間だけ待たせ、許容待ち時間が経過しても実行中の処理が終了しないときは実行中の処理を中断して優先度の高い処理を実行させているので、実行中の処理により優先度の高い処理の実行を妨げることを無くすことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のマルチプロセッサシステムを示すブロック図
【図２】本発明の第１の実施の形態のマルチプロセッサシステムの実行中の処理が優先度の高い処理の許容待ち時間を超えない場合のシーケンス図
【図３】本発明の第１の実施の形態のマルチプロセッサシステムの実行中の処理が優先度の高い処理の許容待ち時間を超える場合のシーケンス図
【図４】本発明の第１の実施の形態のマルチプロセッサシステムの実行中の処理が優先度の高い処理による中断を許さない場合のシーケンス図
【図５】本発明の第１の実施の形態の他の態様のマルチプロセッサシステムを示すブロック図
【図６】本発明の第１の実施の形態のマルチプロセッサシステムを示すブロック図
【符号の説明】
１ａ  第１のプロセッサ
１ｂ  第２のプロセッサ
２  記憶装置
３  競合制御装置
４ａ  第１のプロセッサ
４ｂ  第２のプロセッサ
４１  競合制御部
５ａ  第１のプロセッサ
５ｂ  第２のプロセッサ
６  タイマ装置
【図１】
2005018224.tif 000003
【図２】
2005018224.tif 000004
【図３】
2005018224.tif 000005
【図４】
2005018224.tif 000006
【図５】
2005018224.tif 000007
【図６】
2005018224.tif 000008