(57)【要約】【課題】  共通バスを有効に使用する。【解決手段】  マルチＣＰＵシステム１は、各ＣＰＵ２１ａ〜２１ｃにおいて全てのタスクを実行した場合に発生する個別使用率をＣＰＵごとに算出し、算出した各個別使用率を筐体ごとに集計して筐体別使用率を算出する。この筐体別使用率がＲＯＭ２２に格納された上限値を超えている場合に、各ＣＰＵ２１ａ〜２１ｃで現在実行されているタスクから優先順位の最も低いタスクを除き残りのタスクを実行した場合の個別使用率をＣＰＵごとに算出し、算出した各個別使用率を集計して筐体別使用率を算出する。この筐体別使用率がＲＯＭ２２に格納された上限値以下である場合に、個別使用率を算出する際に除外した優先順位の低いタスクの実行を停止させ、優先順位の低いタスクの実行が停止された旨と筐体別使用率を他の筐体２Ｂ，２Ｃに送信する。【選択図】  図１
2008033630.tif 000002
【特許請求の範囲】
【請求項１】
複数の筐体に収容される複数のＣＰＵが共通バスを使用するマルチＣＰＵシステムであって、
前記ＣＰＵごとの共通バスの使用率である個別使用率を算出する個別使用率算出手段と、
前記個別使用率算出手段により算出された前記個別使用率を用いて、一の前記筐体に収容される一または複数の前記ＣＰＵによる前記使用率である筐体別使用率を算出する筐体別使用率算出手段と、
前記筐体別使用率算出手段により算出された前記筐体別使用率が、予め設定された一の前記筐体に割り当てられた上限値を超えるか否かを判定する判定手段と、
前記判定手段により、前記筐体別使用率が前記上限値を超えていると判定された場合に、前記筐体別使用率が前記上限値以下になる範囲内で、一の前記筐体に収容される前記ＣＰＵで実行されるタスクのうち、優先順位の低いタスクの実行を停止させる停止手段と、
前記停止手段によって前記タスクの実行が停止された旨および前記タスクの実行が停止された後の前記筐体別使用率を、他の前記筐体に収容されている前記ＣＰＵに送信する送信手段と、を備え、
前記個別使用率算出手段および前記筐体別使用率算出手段は、前記停止手段によって前記タスクの実行が停止された後の前記個別使用率および前記筐体別使用率をそれぞれ算出することを特徴とするマルチＣＰＵシステム。
【請求項２】
前記送信手段は、前記停止手段により停止された前記タスクの内容に関する情報をさらに送信することを特徴とする請求項１記載のマルチＣＰＵシステム。
【請求項３】
前記使用率を制限するモードである使用率制限モードのＯＮ／ＯＦＦを設定するモード設定手段をさらに備え、
前記停止手段は、前記モード設定手段によって前記使用率制限モードがＯＦＦに設定されているときには、前記タスクの実行を停止させないことを特徴とする請求項１または２記載のマルチＣＰＵシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチＣＰＵシステムに関する。
【背景技術】
【０００２】
下記特許文献１〜３には、複数のＣＰＵで共通バスを使用するマルチＣＰＵシステムが開示されている。従来のマルチＣＰＵシステムの中には、ＣＰＵごとに共通バスの使用率の上限値が定められているものがある。
【特許文献１】特開２００１−１３４５４８号公報
【特許文献２】特開平６−１３９１８９号公報
【特許文献３】特開２００６−３１４２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
共通バスの使用率の上限値を定めるマルチＣＰＵシステムでは、例えば、不測の事態が生じて、各ＣＰＵによる共通バスの使用率がそれら各ＣＰＵの上限値に達した場合であっても、システム全体の使用率がそのシステム全体の上限値を超えることがないように、各ＣＰＵによる共通バスの使用率の上限値は低めに設定されている。そのため、従来のマルチＣＰＵシステムでは、共通バスが有効に使用されていないことが多い。
【０００４】
そこで、本発明は、上述した課題を解決するために、共通バスを有効に使用することができるマルチＣＰＵシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明のマルチＣＰＵシステムは、複数の筐体に収容される複数のＣＰＵが共通バスを使用するマルチＣＰＵシステムであって、ＣＰＵごとの共通バスの使用率である個別使用率を算出する個別使用率算出手段と、個別使用率算出手段により算出された個別使用率を用いて、一の筐体に収容される一または複数のＣＰＵによる使用率である筐体別使用率を算出する筐体別使用率算出手段と、筐体別使用率算出手段により算出された筐体別使用率が、予め設定された一の筐体に割り当てられた上限値を超えるか否かを判定する判定手段と、判定手段により、筐体別使用率が上限値を超えていると判定された場合に、筐体別使用率が上限値以下になる範囲内で、一の筐体に収容されるＣＰＵで実行されるタスクのうち、優先順位の低いタスクの実行を停止させる停止手段と、停止手段によってタスクの実行が停止された旨およびタスクの実行が停止された後の前記筐体別使用率を、他の筐体に収容されているＣＰＵに送信する送信手段と、を備え、上記個別使用率算出手段および上記筐体別使用率算出手段は、停止手段によってタスクの実行が停止された後の個別使用率および筐体別使用率をそれぞれ算出することを特徴とする。
【０００６】
この発明によれば、ＣＰＵごとの個別使用率を用いて算出される筐体ごとの筐体別使用率のうち、何れかの筐体別使用率が、予め設定された上限値を超える場合には、この筐体別使用率が上限値以下になる範囲内で優先順位の低いタスクの実行が停止されるとともに、タスクの実行が停止された旨およびタスクの実行が停止された後の筐体別使用率を他の筐体に収容されているＣＰＵに送信することができる。すなわち、何れかの筐体別使用率が上限値に達した場合には、それぞれの筐体で独自に共通バスの使用率を上限値以下に制限することができるとともに、制限後の使用率を他の筐体に通知することができる。したがって、何れかの筐体で使用率が上限値に達したことや各筐体における現在の使用率を、全筐体で共通して認識することができるため、各筐体では共通バスにおける現状の使用率に応じて、柔軟に共通バスの使用を制御することが可能となる。これにより、システム全体として共通バスを有効に使用することができる。
【０００７】
本発明のマルチＣＰＵシステムにおいて、上記送信手段は、停止手段により停止されたタスクの内容に関する情報をさらに送信することが好ましい。
【０００８】
このようにすれば、一の筐体において停止されたタスクの内容を、他の筐体に認識させることができるようになるため、他の筐体では、このタスクに関連するタスクの実行を停止させる等の処置を施すことが可能となる。したがって、他の筐体の処理効率を向上させることができる。
【０００９】
本発明のマルチＣＰＵシステムにおいて、上記使用率を制限するモードである使用率制限モードのＯＮ／ＯＦＦを設定するモード設定手段をさらに備え、上記停止手段は、モード設定手段によって使用率制限モードがＯＦＦに設定されているときには、タスクの実行を停止させないことが好ましい。
【００１０】
このようにすれば、雪道等の悪路や滑りやすい路面を走行するときに、使用率制限モードをＯＦＦに設定しておけば、走行中にスリップ等の不測の事態が生じた場合であっても、各ＣＰＵは共通バスの使用率の上限値を考慮することなく制御することが可能となるため、非常時の安全性を向上させることができる。
【発明の効果】
【００１１】
本発明に係るマルチＣＰＵシステムによれば、共通バスを有効に使用することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明に係るマルチＣＰＵシステムの実施形態を図面に基づき説明する。なお、各図において、同一要素には同一符号を付して重複する説明を省略する。
【００１３】
図１は、実施形態におけるマルチＣＰＵシステム１のハードウェア構成を例示する図である。図１に示すように、マルチＣＰＵシステム１は、複数の筐体２Ａ〜２Ｃと、これらの筐体２に収容される一または複数のマザーボード２０によって共通に使用される共通バス３と、を有する。なお、各筐体２Ａ〜２Ｃのハードウェア構成は、収容されるマザーボード２０の数が異なることはあるものの、それぞれ同様の構成となる。したがって、以下においては、筐体２Ａのハードウェア構成について説明することとし、他の筐体２Ｂ，２Ｃのハードウェア構成についてはその説明を省略する。
【００１４】
各マザーボード２０ａ〜２０ｃには、ＣＰＵ２１ａ〜２１ｃが備えられている。各ＣＰＵ２１ａ〜２１ｃは、ＤＭＡ（Direct Memory Access）通信により互いにデータを送受信する。
【００１５】
本実施形態では、図１に示すマザーボード２０ａが、筐体２Ａ内におけるメインマザーボードとして設定されている。メインマザーボード２０ａは、他の筐体２Ｂ，２Ｃに収容されるメインマザーボードと共通バス３を介して互いにデータを送受信する機能を有する。また、メインマザーボード２０ａには、ＲＯＭ２２が備えられている。このＲＯＭ２２には、筐体２Ａに収容されるマザーボード２０ａ〜２０ｃのＣＰＵ２１ａ〜２１ｃ全体に割り当てられた共通バス３の使用率の上限値（筐体２Ａに割り当てられた使用率の上限値）が格納されている。
【００１６】
次に、図２を参照してマルチＣＰＵシステム１の機能構成について説明する。図２に示すように、マルチＣＰＵシステム１は、個別使用率算出部５１（個別使用率算出手段）と、筐体別使用率算出部５２（筐体別使用率算出手段）と、判定部５３（判定手段）と、タスク停止部５４（停止手段）と、送信部（送信手段）５５と、モード設定部５６（モード設定手段）とを有する。
【００１７】
個別使用率算出部５１は、ＣＰＵ２１ごとに全てのタスクまたは一部のタスクを実行した場合に発生する共通バス３の使用率（以下、個別使用率という。）を算出する。
【００１８】
筐体別使用率算出部５２は、個別使用率算出部５１によって算出された個別使用率を用いて、各筐体２において、当該筐体に収容される全てのＣＰＵ２１によって発生する共通バス３の使用率（以下、筐体別使用率という。）を算出する。具体的に説明すると、例えば、筐体別使用率算出部５２は、個別使用率算出部５１によって算出されたＣＰＵ２１ａ〜２１ｃの個別使用率を集計して、筐体２Ａの筐体別使用率を算出する。
【００１９】
判定部５３は、筐体別使用率算出部５２によって算出された筐体別使用率が、予めＲＯＭ２２に格納された上限値を超えるか否かを判定する。
【００２０】
タスク停止部５４は、判定部５３によって、筐体別使用率が上限値を超えていると判定された場合に、筐体別使用率が上限値以下になる範囲内で、当該筐体２のＣＰＵ２１で実行されるタスクのうち、優先順位の低いタスクの実行を停止させる。
【００２１】
ここで、筐体別使用率が上限値以下になる範囲内で、優先順位の低いタスクの実行を停止させる方法の一例を、以下に説明する。
【００２２】
まず、個別使用率算出部５１が、各ＣＰＵ２１ａ〜２１ｃで現在実行されているタスクから優先順位の最も低いタスクを除いて残りのタスクを実行した場合の個別使用率をＣＰＵごとに算出する。次に、筐体別使用率算出部５２が、個別使用率算出部５１によって算出された各個別使用率を集計して筐体別使用率を算出する。次に、判定部５３が、筐体別使用率算出部５２によって算出された筐体別使用率がＲＯＭ２２に格納された上限値を超えるか否かを判定する。筐体別使用率が上限値以下になるまでこれらの処理を繰り返す。筐体別使用率が上限値以下になった場合に、タスク停止部５４は、上述した使用率の算出時に取り除いた優先順位の低いタスクの実行を停止させる。
【００２３】
また、タスク停止部５４は、後述するモード設定部５６によって使用率制限モードがＯＮに設定されているときに、タスクの実行を停止させる。したがって、タスク停止部５４は、使用率制限モードがＯＦＦに設定されているときには、筐体別使用率が上限値を超えていても、全てのタスクを実行させる。
【００２４】
送信部５５は、筐体別使用率算出部５２によって算出された筐体別使用率を、他の筐体に収容されているＣＰＵに送信する。また、送信部５５は、タスク停止部５４によってタスクの実行が停止された場合には、タスクの実行が停止された後の筐体別使用率に加えて、タスクの実行が停止されたことを示すメッセージを他の筐体に収容されているＣＰＵに送信する。
【００２５】
モード設定部５６は、筐体別使用率が上限値を超えている場合に共通バスの使用率を制限するモードである使用率制限モードのＯＮ／ＯＦＦを設定する。使用率制限モードがＯＮに設定されているときには、筐体別使用率がＲＯＭ２２に格納された上限値を超えていると判定された場合にタスクの実行が停止される。一方、使用率制限モードがＯＦＦに設定されているときには、筐体別使用率がＲＯＭ２２に格納された上限値を超えていても、全てのタスクが実行される。
【００２６】
ここで、使用率制限モードをＯＦＦに設定する場合としては、例えば、雪道等の悪路や滑りやすい路面を走行するときが該当する。雪道等の悪路や滑りやすい路面を走行するときに、使用率制限モードをＯＦＦに設定しておけば、走行中にスリップ等の不測の事態が生じた場合であっても、各ＣＰＵは共通バスの使用率の上限値を考慮することなく制御することが可能となる。したがって、非常時の安全性を向上させることができる。
【００２７】
次に、図３を参照して、マルチＣＰＵシステム１の筐体２Ａにおける使用率制限処理の一サイクルについて説明する。なお、図３に示す使用率制限処理は、繰り返しかつ継続して行われる。
【００２８】
まず、マルチＣＰＵシステム１の個別使用率算出部５１は、各ＣＰＵ２１ａ〜２１ｃにおいて全てのタスクを実行した場合に発生する個別使用率をＣＰＵごとに算出する（ステップＳ１）。
【００２９】
次に、筐体別使用率算出部５２は、個別使用率算出部５１によって算出された各個別使用率を、筐体ごとに集計して筐体別使用率を算出する（ステップＳ２）。
【００３０】
次に、判定部５３は、筐体別使用率算出部５２によって算出された筐体別使用率が、ＲＯＭ２２に格納された上限値を超えるか否かを判定する（ステップＳ３）。この判定がＮＯである場合（ステップＳ３；ＮＯ）に、各ＣＰＵ２１ａ〜２１ｃは全てのタスクを実行し（ステップＳ１１）、送信部５５は筐体別使用率を他の筐体２Ｂ，２Ｃに収容されているＣＰＵに送信する（ステップＳ１２）。
【００３１】
一方、ステップＳ３の判定において、筐体別使用率が上限値を超えたと判定された場合（ステップＳ３；ＹＥＳ）に、使用率制限モードがＯＮに設定されているか否かを判定する（ステップＳ４）。この判定がＮＯである場合（ステップＳ４；ＮＯ）に、各ＣＰＵ２１ａ〜２１ｃは全てのタスクを実行し（ステップＳ１１）、送信部５５は筐体別使用率を他の筐体２Ｂ，２Ｃに収容されているＣＰＵに送信する（ステップＳ１２）。
【００３２】
一方、ステップＳ４の判定において、使用率制限モードがＯＮに設定されていると判定された場合（ステップＳ４；ＹＥＳ）に、個別使用率算出部５１は、各ＣＰＵ２１ａ〜２１ｃで現在実行されているタスクから優先順位の最も低いタスクを除いて残りのタスクを実行した場合の個別使用率をＣＰＵごとに算出する（ステップＳ５）。
【００３３】
次に、筐体別使用率算出部５２は、ステップＳ５において個別使用率算出部５１によって算出された各個別使用率を集計して筐体別使用率を算出する（ステップＳ６）。
【００３４】
次に、判定部５３は、ステップＳ６において筐体別使用率算出部５２によって算出された筐体別使用率が、ＲＯＭ２２に格納された上限値を超えるか否かを判定する（ステップＳ７）。この判定がＹＥＳである場合（ステップＳ７；ＹＥＳ）には、処理をステップＳ５に移行する。
【００３５】
一方、ステップＳ７の判定において、筐体別使用率が上限値以下であると判定された場合（ステップＳ７；ＮＯ）に、タスク停止部５４は、ステップＳ５において個別使用率算出部５１が個別使用率を算出する際に除外した優先順位の低いタスクの実行を停止させる（ステップＳ８）。
【００３６】
次に、各ＣＰＵ２１ａ〜２１ｃは、停止させたタスクを除いた残りのタスクを実行する（ステップＳ９）。
【００３７】
次に、送信部５５は、優先順位の低いタスクの実行が停止された旨およびステップＳ６において筐体別使用率算出部５２によって算出された筐体別使用率を、他の筐体２Ｂ，２Ｃに収容されているＣＰＵに送信する（ステップＳ１０）。
【００３８】
以上のように、本実施形態におけるマルチＣＰＵシステム１によれば、ＣＰＵ２１ごとの個別使用率を用いて算出される筐体２ごとの筐体別使用率のうち、何れかの筐体別使用率が、予め設定された上限値を超える場合には、この筐体別使用率が上限値以下になる範囲内で優先順位の低いタスクの実行が停止されるとともに、タスクの実行が停止された旨およびタスクの実行が停止された後の筐体別使用率を他の筐体２に収容されているＣＰＵ２１に送信することができる。すなわち、何れかの筐体別使用率が上限値に達した場合には、それぞれの筐体２で独自に共通バス３の使用率を上限値以下に制限することができるとともに、制限後の使用率を他の筐体２に通知することができる。したがって、何れかの筐体２で使用率が上限値に達したことや各筐体２における現在の使用率を、全筐体２で共通して認識させることができるため、各筐体２では共通バス３における現状の使用率に応じて、柔軟に共通バス３の使用を制御することが可能となる。これにより、システム１全体として共通バス３を有効に使用することができる。
【００３９】
なお、上述した実施形態における送信部５５は、タスク停止部５４によってタスクの実行が停止された場合に、タスクの実行が停止された後の筐体別使用率およびタスクの実行が停止された旨のメッセージを、他の筐体２Ｂ，２Ｃに収容されているＣＰＵに送信しているが、送信する情報は、これに限定されない。例えば、タスク停止部５４によって停止されたタスクの内容を一意に特定するコード情報等を含むタスクに関する情報をさらに送信することとしてもよい。これにより、他の筐体２Ｂ，２Ｃでは、一の筐体２Ａにおいて停止されたタスクの内容を認識することができるようになるため、このタスクに関連するタスクの実行を停止させる等の処置を施すことが可能となる。したがって、他の筐体２Ｂ，２Ｃの処理効率を向上させることができるため、システム全体としての処理効率が向上する。
【図面の簡単な説明】
【００４０】
【図１】発明の実施形態におけるマルチＣＰＵシステムのハードウェア構成を例示する図である。
【図２】マルチＣＰＵシステムの機能構成を例示する図である。
【図３】使用率制限処理の一サイクルの流れを説明するためのフローチャートである。
【符号の説明】
【００４１】
１・・・マルチＣＰＵシステム、２・・・筐体、３・・・共通バス、２０・・・マザーボード、２１・・・ＣＰＵ、２２・・・ＲＯＭ、５１・・・個別使用率算出部、５２・・・筐体別使用率算出部、５３・・・判定部、５４・・・タスク停止部、５５・・・送信部、５６・・・モード設定部。
【図１】
2008033630.tif 000003
【図２】
2008033630.tif 000004
【図３】
2008033630.tif 000005