"複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、前記複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、前記複数のプロセッサコアのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、前記複数のタイマのいずれかが前記禁止期間を経過したときに、当該タイマに対応するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、前記第2の判定手段によって電源電圧の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む、マルチプロセッサ装置。前記複数のタイマは、それぞれ異なるカウンタ値が設定されてからカウントダウンを開始し、前記複数のタイマのいずれかが0となったときに全てのタイマのカウントダウンが停止する、請求項1記載のマルチプロセッサ装置。前記電源電圧変更手段は、前記複数のプロセッサコアに供給されるクロックの中で最も動作周波数が高いクロックに対応する電源電圧を前記複数のプロセッサコアに供給する、請求項1または2記載のマルチプロセッサ装置。前記動作周波数変更手段は、前記第1の判定手段によって当該プロセッサコアの動作周波数を上げると判定された場合に、前記電源電圧変更手段によって電源電圧が上昇された後に動作周波数を上げる、請求項1~3のいずれかに記載のマルチプロセッサ装置。前記動作周波数変更手段は、前記第1の判定手段によって当該プロセッサコアの動作周波数を下げると判定された場合に、前記複数のタイマのカウンタ値に関係なく動作周波数を下げる、請求項1~3のいずれかに記載のマルチプロセッサ装置。複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、前記複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、前記複数のオペレーティングシステムのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、前記複数のタイマのいずれかが前記禁止期間を経過したときに、当該タイマに対応するオペレーティングシステムが動作するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、前記第2の判定手段によって電源電圧の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む、マルチプロセッサ装置。従来のOS間ロックを用いたOS間リソース排他制御方式においては、OS数の増加に伴ってロック取得時間が増加するため、システム全体の処理効率が低下するといった問題点があった。また、OS間ロックのために使用されるメモリ領域に対して複数のプロセッサのアクセスが集中するため、バス性能が低下するといった問題点もあった。本発明は、上記問題点を解決するためになされたものであり、その目的は、OS間によるロック取得を行なう必要がなく、処理効率を向上させることが可能なマルチプロセッサ装置を提供することである。本発明のある局面に従えば、複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、複数のプロセッサコアのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、複数のタイマのいずれかが禁止期間を経過したときに、当該タイマに対応するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、第2の判定手段によって電源電圧の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む。好ましくは、複数のタイマは、それぞれ異なるカウンタ値が設定されてからカウントダウンを開始し、複数のタイマのいずれかが0となったときに全てのタイマのカウントダウンが停止する。好ましくは、電源電圧変更手段は、複数のプロセッサコアに供給されるクロックの中で最も動作周波数が高いクロックに対応する電源電圧を複数のプロセッサコアに供給する。好ましくは、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を上げると判定された場合に、電源電圧変更手段によって電源電圧が上昇された後に動作周波数を上げる。好ましくは、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を下げると判定された場合に、複数のタイマのカウンタ値に関係なく動作周波数を下げる。本発明の別の局面に従えば、複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、複数のオペレーティングシステムのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、複数のタイマのいずれかが禁止期間を経過したときに、当該タイマに対応するオペレーティングシステムが動作するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、第2の判定手段によって電源電圧の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む。複数のタイマのいずれかが禁止期間を経過したときに、第1の判定手段が、当該タイマに対応するプロセッサコアの動作周波数の変更の要否を判定し、第1の判定手段によって動作周波数の変更が必要と判定されたときに、第2の判定手段が、複数のプロセッサコアに供給する電源電圧の変更の要否を判定する。したがって、動作周波数および電源電圧の変更を排他的に行なうことができるため、OS間によるロック取得を行なう必要がなく、処理効率を向上させることが可能となる。また、複数のタイマは、それぞれ異なるカウンタ値が設定されてからカウントダウンを開始するので、カウンタ値が0となるタイマが1つだけとなり、そのタイマに対応するプロセッサコアの動作周波数の変更の必要性と、電源電圧の変更の必要性との判断を排他的に行なうことが可能となる。また、電源電圧変更手段は、複数のプロセッサコアに供給されるクロックの中で最も動作周波数が高いクロックに対応する電源電圧を複数のプロセッサコアに供給するので、最適な電源電圧を供給することが可能となる。また、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を上げると判定された場合に、電源電圧変更手段によって電源電圧が上昇された後に動作周波数を上げるので、プロセッサコアの誤動作を防止することが可能となる。また、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を下げると判定された場合に、複数のタイマのカウンタ値に関係なく動作周波数を下げるので、消費電力の削減を図ることが可能となる。第1の実施の形態図1は、本発明の第1の実施の形態におけるマルチプロセッサ装置の構成例を示すブロック図である。このマルチプロセッサ装置は、複数のCPUCentralProcessingUnitコア0~310~13と、CPUコア0~110~11上で動作するOSA14と、CPUコア2~312~13上で動作するOSB15と、CPUコア0~310~13のそれぞれに対応して設けられるクロック生成部0~316~19と、電源電圧変更部20と、システムクロック値取得部21と、CPUコア0~310~13のそれぞれに対応して設けられるタイマ0~322~25と、タイマクロック生成部26と、タイマカウンタ値取得部27とを含む。CPUコア0~310~13は、クロック生成部0~316~19のそれぞれから出力されるクロックを受けて動作する。また、CPUコア0~310~13は、電源電圧変更部20から出力される電源電圧を受けて動作する。クロック生成部0~316~19は、CPUコア0~310~13からの指示、またはOSA14およびOSB15からの指示に応じてクロック周波数を変更可能である。したがって、CPUコア0~310~13は、それぞれ異なるクロック周波数で動作可能である。電源電圧変更部20は、OSA14またはOSB15からの指示に応じて、CPUコア0~310~13に供給する電源電圧を変更する。なお、CPU0~310~13のそれぞれには、同じ電源電圧が与えられる。システムクロック値取得部21は、OSA14またはOSB15からの指示に応じて、クロック生成部0~316~19から出力されるクロックの周波数システムクロック値を取得して、OSA14またはOSB15に出力する。タイマ0~322~25は、CPUコア0~310~13のそれぞれに対応して設けられている。タイマ0~322~25には、電源電圧の変更動作を禁止する期間が設定され、タイマクロック生成部26から出力されるタイマクロックに同期してカウントダウンを行なう。カウンタ値が0となったタイマは、対応するCPUコアに割り込み要求を出力する。電源電圧の変更動作を禁止する期間として、たとえば対応するCPUコアのクロック周波数の変更の要否を判定する周期が設定される。タイマ0~322~25に設定されるカウンタ値は任意である。ここで重要なのは、タイマ0~322~25に設定されるカウンタ値がそれぞれ異なる値であり、必ずカウンタ値が0となるタイマが1つだけであるということである。タイマクロック生成部26は、タイマ0~322~25に供給するタイマクロックを生成する。なお、タイマ0~322~25には、同じタイマクロックが供給される。タイマカウンタ値取得部27は、タイマ0~322~25のカウンタ値を取得し、カウンタ値が0となっているタイマがある場合には、タイマ0~322~25の全てのカウントダウンを停止する。また、タイマカウンタ値取得部27は、OSA14またはOSB15からの指示に応じてタイマ0~322~25のカウンタ値を取得して、OSA14またはOSB15に出力する。図2は、周波数電圧対応表の一例を示す図である。この周波数電圧対応表は、CPUコア0~310~13の中の最大動作周波数と、CPU0~310~13に供給する電源電圧との対応を示している。最大動作周波数が150MHzであれば、CPUコア0~310~13の電源電圧として1.0Vが設定される。最大動作周波数が300MHzであれば、CPUコア0~310~13の電源電圧として1.2Vが設定される。また、最大動作周波数が600MHzであれば、CPUコア0~310~13の電源電圧として1.4Vが設定される。この周波数電圧対応表は、OSA14およびOSB15内に設けられていてもよいし、電源電圧変更部20またはシステムクロック値取得部21内に設けられていてもよい。図3は、本発明の第1の実施の形態におけるマルチプロセッサ装置の動作を説明するためのフローチャートである。まず、タイマ0~322~25にカウンタ値が設定され、タイマ0~322~25がカウントダウンを開始するS11。たとえば、CPUコア0~310~13がタイマ0~322~25のそれぞれにカウンタ値を設定し、同じタイミングでカウントダウンを開始させる。また、OSA14およびOSB15がタイマ0~322~25のカウンタ値を設定するようにしてもよい。なお、上述のように、タイマ0~322~25に設定されるカウンタ値はそれぞれ異なる値であり、必ずカウンタ値が0となるタイマが1つだけとなるようにカウントダウンが開始される。次に、タイマカウンタ値取得部27は、タイマ0~322~25のカウンタ値を取得し、カウンタ値が0のタイマがあるか否かを判定するS12。カウンタ値が0のタイマがなければS12,No、ステップS12の処理が繰り返される。また、カウンタ値が0のタイマがあればS12,Yes、タイマカウンタ値取得部27は、タイマ0~322~25の全てのカウントダウンを停止するS13。このとき、カウンタ値が0となっているタイマが、対応するCPUコアに割り込み要求を出力する。CPUコア0~310~13のいずれかが割り込み要求を受けると、そのCPUコア上で動作するOSA14またはOSB15が割り込み要求を受け付け、対応のCPUコアの動作周波数変更の必要性を判断するS14。たとえば、OSA14またはOSB15が、そのCPUコアの処理負荷を管理しており、処理負荷が小さくてクロック周波数が高すぎる場合にはクロック周波数を低くすると判断し、処理負荷が大きくてクロック周波数が低すぎる場合にはクロック周波数を高くすると判断する。対応のCPUコアの周波数変更の必要性がない場合にはS15,No、ステップS19に処理が進む。また、対応のCPUコアの周波数変更の必要性がある場合にはS15,Yes、OSA14またはOSB15が電源電圧を変更する必要性があるか否かを判定するS16。このとき、OSA14またはOSB15は、システムクロック値取得部21からCPUコア0~310~13のクロック周波数を取得し、クロック周波数を変更した後の最大動作周波数を求める。そして、図2に示す周波数電圧対応表を参照して、最大動作周波数に対応する電源電圧を抽出し、その電源電圧と現在の電源電圧とを比較する。電源電圧が異なれば電源電圧の変更の必要性があると判断し、電源電圧が同じであれば電源電圧の変更の必要性がないと判断する。電源電圧を変更する必要性がない場合にはS16,No、ステップS18に処理が進む。また、電源電圧を変更する必要性がある場合にはS16,Yes、OSA14またはOSB15が電源電圧変更部20に対して電源電圧の変更を指示しS17、ステップS18に処理が進む。ステップS18において、OSA14またはOSB15は、対応のCPUコアの動作周波数を変更して、ステップS19に処理が進む。ステップS19において、OSA14またはOSB15は、カウンタ値が0となっているタイマのカウンタ値を更新する。そして、タイマ0~322~25の全てのカウントダウンを再開させS20、ステップS12に戻って以降の処理を繰り返す。図4は、本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧を上昇させる場合の具体例を示す図である。図4に示すように、クロック生成部0~316~19のそれぞれは、300MHz、300MHz、300MHz、150MHzのクロックを出力するように設定されている。また、タイマ0~322~25のそれぞれには、500、1000、2000、3000のカウンタ値が設定されている。また、電源電圧変更部20は、CPUコア0~310~13に1.2Vの電源電圧を供給している。タイマ0~322~25のカウントダウンによって、最初にタイマ022のカウンタ値が0となり、タイマカウンタ値取得部27は、タイマ0~322~25の全てのカウントダウンを停止する。このとき、タイマ022は、CPUコア010に対して割り込み要求を出力する。CPUコア010上で動作するOSA14が割り込み要求を受け付けると、CPUコア010の動作周波数の変更の必要性を判断する。ここで、OSA14が、CPUコア010の動作周波数を300MHzから600MHzに変更する必要性があると判断すると、システムクロック値取得部21から全てのCPUコアのクロック周波数を取得する。そして、周波数電圧対応表を参照して、電源電圧の変更の必要性を判断する。このとき、CPUコア010の動作周波数を600MHzに変更するため、OSA14は、電源電圧を1.2Vから1.4Vに変更する必要があると判断する。OSA14は、電源電圧変更部20に対して電源電圧を1.4Vに変更するよう指示した後、CPUコア010にクロックを供給するクロック生成部016にクロック周波数を600MHzに変更するよう指示する。そして、タイマ022のカウンタ値を更新して、タイマ0~322~25のカウントダウンを再開するようタイマカウンタ値取得部27に指示する。図5は、本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧下降時の動作を説明するためのフローチャートである。まず、タイマ0~322~25にカウンタ値が設定され、タイマ0~322~25がカウントダウンを開始するS31。次に、OSA14およびOSB15は、動作周波数の変更の必要性があるCPUコアがあるか否かを判断するS32。動作周波数の変更の必要性があるCPUコアがなければS32,No、ステップS32の処理が繰り返される。また、動作周波数の変更の必要性があるCPUコアがあればS32,Yes、タイマ0~322~25のカウンタ値に関係なく、OSA14またはOSB15は、対応のCPUコアの動作周波数を変更するS33。次に、タイマカウンタ値取得部27は、タイマ0~322~25のカウンタ値を取得し、カウンタ値が0のタイマがあるか否かを判定するS34。カウンタ値が0のタイマがあればS34,Yes、タイマ0~322~25の全てのカウントダウンを停止して処理を終了する。また、カウンタ値が0のタイマがなければS34,No、OSA14またはOSB15が電源電圧を下げる必要性があるか否かを判定するS35。電源電圧を下げる必要性がない場合にはS35,No、ステップS32に戻って以降の処理を繰り返す。また、電源電圧を下げる必要性がある場合にはS35,Yes、OSA14またはOSB15が電源電圧変更部20に対して電源電圧の下降を指示しS36、ステップS32に戻って以降の処理を繰り返す。図6は、本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧を下降させる場合の具体例を示す図である。図6に示すように、クロック生成部0~316~19のそれぞれは、600MHz、300MHz、300MHz、150MHzのクロックを出力するように設定されている。また、タイマ0~322~25のそれぞれには、500、1000、2000、3000のカウンタ値が設定されている。また、電源電圧変更部20は、CPUコア0~310~13に1.4Vの電源電圧を供給している。ここで、CPUコア010上で動作するOSA14が、CPUコア010の動作周波数の変更の必要性を判断するとする。このとき、OSA14が、CPUコア010の動作周波数を600MHzから300MHzに変更する必要性があると判断すると、クロック生成部016にクロック周波数を300MHzに変更するよう指示する。次に、OSA14は、タイマカウンタ値取得部27からタイマ0~322~25のカウンタ値を取得し、カウンタ値が0となっているタイマがあるか否かを判定する。カウンタ値が0となっているタイマがあれば、そのまま処理を終了する。この場合、図3に示すステップS13以降の処理が行なわれるため、電源電圧の変更の必要性を判断する必要はない。また、カウンタ値が0となっているタイマがなければ、OSA14は、周波数電圧対応表を参照して、電源電圧の変更の必要性を判断する。このとき、CPUコア010の動作周波数を300MHzに変更するため、OSA14は、電源電圧を1.4Vから1.2Vに変更する必要があると判断し、電源電圧変更部20に対して電源電圧を1.2Vに変更するよう指示する。以上説明したように、本実施の形態におけるマルチプロセッサ装置によれば、タイマ0~322~25にそれぞれ異なるカウンタ値を設定し、カウンタ値が0となったタイマに対応するCPUコアの動作周波数の変更の必要性および電源電圧の変更の必要性を判断するようにした。したがって、共有リソースである電源電圧を排他的に制御することができ、OS間によるロック取得を行なう必要がなくなり、処理効率を向上させることが可能となった。また、OS間によるロックの取得が不要となるため、OS間ロックで使用されるメモリ領域へのアクセスが集中するといった不具合が発生せず、バス性能の低下を防止することが可能となった。第2の実施の形態本発明の第1の実施の形態におけるマルチプロセッサ装置は、CPUコア0~310~13のそれぞれに対応してタイマ0~322~25が設けられていた。それに対して、本発明の第2の実施の形態におけるマルチプロセッサ装置は、OSA14およびOSB15のそれぞれに対応してタイマが設けられる構成を有する。たとえば、タイマ123およびタイマ325を削除し、OSA14にはタイマ022が対応するようにし、OSB15にはタイマ224が対応するようにする。そして、タイマ022のカウンタ値が0となったときに、OSA14がCPUコア010およびCPUコア111の動作周波数の変更の必要性を判断する。また、タイマ224のカウンタ値が0となったときに、OSB15がCPUコア212およびCPUコア313の動作周波数の変更の必要性を判断する。それ以降の動作については、第1の実施の形態において説明したものと同様である。以上説明したように、本実施の形態におけるマルチプロセッサ装置によれば、OSのそれぞれに対応してタイマを設けるようにしたので、第1の実施の形態において説明した効果に加えて、ハードウェア構成および排他制御の処理をさらに簡略化することが可能となった。今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"