(57)【要約】【課題】ＯＳ間の隔絶性及びＯＳの移植性を保持したまま、ＯＳ間の負荷分散を実現可能な処理装置を提供する。【解決手段】物理コア２〜４を備えてＯＳ５１，５２を実行するＥＣＵ７０であって、ＯＳ５１，５２は、それぞれ仮想コアａ〜ｃ、Ａ，Ｂが割当てられて仮想化されており、ＯＳ５１，５２のそれぞれで動作するアプリケーション５１１，５２１は、負荷の比率が予め決まっており、仮想コアａ〜ｃ，Ａ，Ｂのそれぞれの処理時間を、分割時間に分割する分割部と、分割時間を物理コア２〜４に均等に割り当て、且つ、所定期間における物理コア２〜４全体において、ＯＳ５１，５２のそれぞれに対応する分割時間のＯＳごとの総和を総和時間として、総和時間間の比率を負荷の比率とする割当部と、物理コア２〜４のそれぞれにおいて、割り当てられた分割時間ごとに、対応する仮想コアａ〜ｃ，Ａ，Ｂの処理を実行する制御部２１，３１，４１と、を備える。【選択図】図２
2018116389.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理コア（２〜４）を備えて複数のＯＳ（５１，５２）を実行する処理装置（７０）であって、
前記複数のＯＳは、それぞれ、異なる仮想コア（ａ〜ｃ，Ａ，Ｂ）が割当てられて仮想化されており、
前記複数のＯＳのそれぞれで動作するアプリケーション（５１１，５２１）は、前記アプリケーション間の負荷の比率が予め決まっており、
前記仮想コアのそれぞれの処理時間を、予め設定された時間である分割時間に分割するように構成された分割部と、
前記分割時間を前記複数の物理コアに均等に割り当て、且つ、所定期間における前記複数の物理コア全体において、前記ＯＳのそれぞれに対応する前記分割時間の前記ＯＳごとの総和を総和時間として、前記総和時間間の比率を前記負荷の比率とするように構成された割当部と、
前記複数の物理コアのそれぞれにおいて、前記割当部により割り当てられた前記分割時間ごとに、対応する前記仮想コアの処理を実行するように構成された制御部（２１，３１，４１）と、を備える、処理装置。
【請求項２】
前記割当部は、前記仮想コアのそれぞれにおける処理の順序が、前記物理コアによる前記仮想コアの処理の実行時に維持されるように、前記分割時間を前記複数の物理コアに割り当てるように構成されている、請求項１に記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物理コアで複数のＯＳを実行する技術に関する。
【背景技術】
【０００２】
特許文献１に記載の情報処理システムは、複数の物理コアで複数のＯＳを実行するシステムであり、各物理コアを利用するＯＳが固定されている。上記情報処理システムは、各ＯＳ上で各ＯＳ固有のプログラムを実行するとともに、ＯＳ間の負荷を分散するため、並列化可能なプログラムの処理を分割し、分割した処理を、物理コアの処理負荷に応じて決定されたＯＳ上で並列実行している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１６３５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記情報処理システムでは、複数のＯＳ上で、分割した処理を並列実行するため、各ＯＳに固有のプログラムのみを実行する場合と比べて、ＯＳ間の隔絶性が損なわれる。また、上記情報処理システムでは、分割した処理を並列実行する機能を各ＯＳへ追加する必要があるため、各ＯＳに固有のプログラムのみを実行する場合と比べて、ＯＳの移植性も損なわれる。一方、上記情報処理システムにおいて、並列処理を行わず、各ＯＳに固有のプログラムのみを実行するようにした場合、ＯＳ間の負荷が不均一であっても、負荷の高いＯＳの動作に物理コアの処理時間を多く割り当てて、ＯＳの負荷分散を実現することができない。
【０００５】
本開示は、上記実情に鑑みてなされたものであり、ＯＳ間の隔絶性及びＯＳの移植性を保持したまま、ＯＳ間の負荷分散を実現可能な処理装置を提供する。
【課題を解決するための手段】
【０００６】
本開示は、複数の物理コア（２〜４）を備えて複数のＯＳ（５１，５２）を実行する処理装置（７０）であって、複数のＯＳは、それぞれ、異なる仮想コア（ａ〜ｃ，Ａ，Ｂ）が割当てられて仮想化されており、複数のＯＳのそれぞれで動作するアプリケーション（５１１，５２１）は、アプリケーション間の負荷の比率が予め決まっており、分割部と、割当部と、制御部（２１，３１，４１）と、を備える。分割部は、仮想コアのそれぞれの処理時間を、予め設定された時間である分割時間に分割するように構成されている。割当部は、分割時間を複数の物理コアに均等に割り当て、且つ、所定期間における複数の物理コア全体において、ＯＳのそれぞれに対応する分割時間のＯＳごとの総和を総和時間として、総和時間間の比率を前記負荷の比率とするように構成されている。制御部は、複数の物理コアのそれぞれにおいて、割当部により割り当てられた前記分割時間ごとに、対応する仮想コアの処理を実行するように構成されている。
【０００７】
本開示によれば、各ＯＳに割り当てられた仮想コア上のＯＳの動作時間が分割時間に分割され、分割時間が複数の物理コアに割り当てられるため、ＯＳ上の処理を変更する必要がない。よって、ＯＳ間の隔絶性及びＯＳの移植性が保持される。さらに、分割時間が複数の物理コアに割り当てられる際に、所定期間における複数の物理コアの全体で、各ＯＳに対応する分割時間の総和間の比率が、各ＯＳ上で動作するアプリケーションの負荷の比率となるように、分割時間が均等に割り当てられる。よって、ＯＳの動作時間がＯＳ間の負荷比率に応じた時間となる。すなわち、ＯＳ間の隔絶性及びＯＳの移植性を保持したまま、ＯＳ間の負荷分散を実現することができる。
【０００８】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【０００９】
【図１】電子制御装置の概略構成を示すブロック図である。
【図２】仮想コアの処理時間の物理コアへの割り当てを示す説明図である。
【図３】各物理コアが実行する処理の時間変化を示すタイムチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、発明を実施するための形態を説明する。本実施形態では、処理装置として、車両に搭載された電子制御装置を想定している。
＜構成＞
まず、図１及び図２を参照して、本実施形態に係る電子制御装置（以下、ＥＣＵ）７０の構成について説明する。ＥＣＵ７０は、演算装置６０を主体として構成されている。演算装置６０は、メモリ５０と、４個の物理コア１〜４と、を備える。メモリ５０と物理コア１〜４は、図示しない単一のバスに接続されており、物理コア１〜４は、メモリ５０を共有している。物理コア１〜４は、互いに同等の性能を有するコアである。
【００１１】
メモリ５０には、２つのオペレーティングシステムであるＯＳ５１とＯＳ５２とが格納されている。近年、車両内のＥＣＵは増加傾向にあるが、ＥＣＵを搭載できる車両スペースは限られているため、複数のＥＣＵを１つのＥＣＵに集約したいという要望がある。そこで、本実施形態では、元々別箇のＥＣＵに搭載されていたＯＳ５１及びＯＳ５２を、１つのＥＣＵ７０に搭載している。
【００１２】
さらに、メモリ５０には、ＯＳ５１上で動作するアプリケーション（以下、アプリ）５１１、アプリ５１２が格納されているとともに、ＯＳ５２上で動作するアプリ５２１が格納されている。アプリ５１１とアプリ５２１の負荷の比率は予め決まっており、アプリ５１１の負荷を３とすると、アプリ５２１の負荷は２となっている。また、アプリ５１２は、アプリ５１１，５２１よりも車両の安全上重要なアプリであり、例えば、走る、止まる、曲がる等の走行に関するアプリである。
【００１３】
そして、図２に示すように、ＯＳ５１は、仮想コアｘ，ａ，ｂ，ｃ，が割り当てられて仮想化されている。また、ＯＳ５２は、仮想コアＡ，Ｂが割り当てられて仮想化されている。ＯＳ５１は、仮想コアａ，ｂ，ｃでアプリ５１１を処理するとともに、仮想コアｘでアプリ５１２を処理する。また、ＯＳ５２は、仮想コアＡ，Ｂでアプリ５２１を処理する。アプリ５１１を実行する仮想コアの数と、アプリ５２１を実行する仮想コアの数は、元々別箇のＥＣＵに搭載されたＯＳの設定と同じとしている。
【００１４】
そして、仮想コアｘ，ａ，ｂ，ｃ，Ａ，Ｂの処理は、物理コア１〜４に割り当てられる。その際、安全上重要なアプリ５２１を実行する仮想コアｘの処理は、物理コア１に１対１で割り当てられる。物理コア１に仮想コアｘの処理のみを割り当てることで、アプリ５２１の実行に確実に処理時間が割り当てられる。
【００１５】
ここで、ＯＳ５１及びＯＳ５２をそのまま物理コア１〜４に移植すると、仮想コアｘ，ａ，ｂ，ｃの処理は、それぞれ、物理コア１〜４に割り当てられ、仮想コアＡ，Ｂの処理は、それぞれ、物理コア３，４に割り当てられる。よって、仮想コアｂ，ｃ，Ａ，Ｂの処理が、それぞれ物理コア３，４を占有できる時間は、仮想コアａの処理が物理コア２を占有できる時間よりも短くなり、仮想コアｂ，ｃ，Ａ，Ｂの処理は、仮想コアａの処理に比べて遅くなる。
【００１６】
一方、特許文献１のように、各物理コアを利用するＯＳを固定し、アプリ５１１及びアプリ５２１をＯＳ５１上及びＯＳ５２上で並列実行するようにすると、ＯＳ５１及びＯＳ５２の負荷は分散されるが、ＯＳ５１とＯＳ５２の間の隔絶性が損なわれる。通常、ＥＣＵでは、ＯＳ上で動作するアプリに重要度が設定されており、アプリごとに重要度を保持することが要求される。しかしながら、ＯＳ５１とＯＳ５２の間の隔絶性が損なわれると、各アプリの重要度を保持できなくなる。また、ＯＳ５１及びＯＳ５２の移植性も損なわれる。さらに、ＯＳ５１上及びＯＳ５２上で処理を並列実行するための機能を、ＯＳ５１及びＯＳ５２に追加することによるオーバーヘッドが発生する。
【００１７】
そこで、ＥＣＵ７０は、分割部及び割当部の機能を備える。分割部及び割当部の機能は、物理コア２〜４のいずれか１つが備えていればよい。分割部は、仮想コアａ〜ｃ，Ａ，Ｂ上でＯＳ５１，５２が動作する動作時間を、予め設定された時間に分割して、分割時間を生成する。各分割時間には、それぞれ、対応する動作時間に実行する仮想コアの処理が対応付けられている。
【００１８】
割当部は、生成された分割時間を、物理コア２〜４に均等に割り当てる。その際、割当部は、所定期間である仮想化制御周期Ｔにおける物理コア２〜４の全体において、ＯＳ５１に対応する分割時間の総和である総和時間と、ＯＳ５２に対応する分割時間の総和である総和時間の比率が、アプリ５１１とアプリ５２１の負荷の比率３：２となるように、分割時間を割り当てる。つまり、仮想化制御周期Ｔにおける物理コア２〜４上のＯＳ５１の動作時間とＯＳ５２の動作時間の比率を、アプリ５１１とアプリ５２１の負荷の比率にする。
【００１９】
具体的には、ＯＳ５１上でアプリ５１１を実行する仮想コア数をＫ１、ＯＳ５２上でアプリ５２１を実行する仮想コア数をＫ２、アプリ５１１とアプリ５２１の負荷の比率をＲ１：Ｒ２とする。また、アプリ５１１を実行する各仮想コアの動作時間から生成する分割時間の数をＭ１、アプリ５２１を実行する各仮想コアの動作時間から生成する分割時間の数をＭ２、物理コア数をＬとし、Ｎ１及びＮ２を自然数とする。そして、Ｋ１×Ｍ１：Ｋ２×Ｍ２＝Ｒ１：Ｒ２…（１）、Ｍ１＝（Ｌ／Ｋ１）×Ｎ１…（２）、Ｍ２＝（Ｌ／Ｋ２）×Ｎ２…（３）、の３つの式を満たすように、分割時間数Ｍ１，Ｍ２を算出する。
【００２０】
本実施形態では、Ｋ１＝３、Ｋ２＝２、Ｌ＝３であるから、Ｎを自然数として、Ｍ１＝Ｍ２＝３×Ｎとなる。本実施形態では、Ｎ＝１とし、Ｍ１＝Ｍ２＝３とする。つまり、仮想化制御周期Ｔは、式（１）〜（３）を満たす最小の分割時間数の分の処理を、仮想コアａ〜ｃ，Ａ，Ｂに一通り動作させる期間である。
【００２１】
これにより、図２に示すように、仮想コアａ〜ｃの動作時間から、それぞれ３個の分割時間が生成され、仮想コアＡ，Ｂの動作時間から、それぞれ３個の分割時間が生成される。そして、計１５個の分割時間が、３個の物理コア２〜４に５個ずつ均等に割り当てられ、５個の分割時間分の期間が仮想化制御周期Ｔとなる。よって、仮想化制御周期Ｔにおける物理コア２〜４の全体において、ＯＳ５１に対応する分割時間は９個、ＯＳ５２に対応する分割時間は６個となり、ＯＳ５１とＯＳ５２の動作間の比率は、負荷比率と同様に３：２となる。
【００２２】
図２では、物理コア２には、仮想コアａの処理を行う分割時間ａ１，ａ２，ａ３と、仮想コアｂの処理を行う分割時間ｂ１，ｂ２と、が割り当てられている。また、物理コア３には、仮想コアｃの処理を行う分割時間ｃ１，ｃ２，ｃ３と、仮想コアＡの処理を行う分割時間Ａ３と、仮想コアｂの処理を行う分割時間ｂ３と、が割り当てられている。また、物理コア４には、仮想コアＡの処理を行う分割時間Ａ１，Ａ２と、仮想コアＢの処理を行う分割時間Ｂ１，Ｂ２，Ｂ３と、が割り当てられている。特定の物理コアを利用するＯＳは固定されていない。
【００２３】
さらに、割当部は、仮想コアａ〜ｃ，Ａ，Ｂのそれぞれにおける処理順序が、物理コア２〜４による仮想コアａ〜ｃ，Ａ，Ｂの処理の実行時に維持されるように、生成した分割時間を割り当てる。例えば、仮想コアｂの動作時間から生成された分割時間ｂ１，ｂ２，ｂ３は、分割時間ｂ１→ｂ２→ｂ３の順に、対応する仮想コアｂの処理が実行される必要がある。よって、分割時間ｂ１，ｂ２，ｂ３を物理コア２〜４のいずれかに割り当てる際には、分割時間ｂ１に対応する処理の後に、分割時間ｂ２に対応する処理、さらにその後に、分割時間ｂ３に対応する処理という流れになるようにする。
【００２４】
図２では、物理コア２の３番目の処理に分割時間ｂ１に対応する処理が割り当てられ、物理コア２の４番目の処理に分割時間ｂ２に対応する処理が割り当てられている。そして、物理コア３の５番目の処理に分割時間ｂ３に対応する処理が割り当てられている。よって、物理コア２，３により仮想コアｂの処理を実行する際に、仮想コアｂによる処理順序が維持されている。なお、仮想コアａ〜ｃ，Ａ，Ｂのそれぞれにおける処理順序が、物理コア２〜４による仮想コアａ〜ｃ，Ａ，Ｂの処理の実行時に維持されれば、分割時間の割り当て方は、図２と異なっていてもよい。
【００２５】
そして、物理コア２〜４は、仮想化制御部２１，３１，４１の機能を備える。仮想化制御部２１，３１，４１は、物理コア２〜４のそれぞれにおいて、割り当てられた分割時間ごとに、割当時間に対応する仮想コアの処理を実行する。具体的には、物理コア２〜４は、割当時間ごとに、割当時間に対応する仮想コアの処理をメモリ５０から読み出し、実行する。本実施形態では、仮想化制御部２１，３１，４１が制御部に相当する。
【００２６】
＜動作＞
次に、ＥＣＵ７０の動作について、図３のタイムチャートを参照して説明する。仮想化制御周期Ｔは、５個の期間ｔ１〜ｔ５から構成されており、期間ｔ１〜ｔ５のそれぞれは分割時間に対応している。期間ｔ１において、物理コア２は、分割時間ａ１に対応する仮想コアａの処理を実行し、物理コア３は、分割時間ｃ１に対応する仮想コアｃの処理を実行し、物理コア４は、分割時間Ａ１に対応する仮想コアＡの処理を実行する。続いて、期間ｔ２において、物理コア２は、分割時間ａ２に対応する仮想コアａの処理を実行し、物理コア３は、分割時間ｃ２に対応する仮想コアｃの処理を実行し、物理コア４は、分割時間Ａ２に対応する仮想コアＡの処理を実行する。
【００２７】
続いて、期間ｔ３において、物理コア２は、分割時間ｂ１に対応する仮想コアｂの処理を実行し、物理コア３は、分割時間ｃ３に対応する仮想コアｃの処理を実行し、物理コア４は、分割時間Ｂ１に対応する仮想コアＢの処理を実行する。続いて、期間ｔ４において、物理コア２は、分割時間ｂ２に対応する仮想コアｂの処理を実行し、物理コア３は、分割時間Ａ３に対応する仮想コアＡの処理を実行し、物理コア４は、分割時間Ｂ２に対応する仮想コアＢの処理を実行する。続いて、期間ｔ５において、物理コア２は、分割時間ａ３に対応する仮想コアａの処理を実行し、物理コア３は、分割時間ｂ３に対応する仮想コアｂの処理を実行し、物理コア４は、分割時間Ｂ３に対応する仮想コアＢの処理を実行する。期間ｔ５が終了すると、期間ｔ１に戻り、期間ｔ１〜期間ｔ５から成る仮想化制御周期Ｔを繰り返す。
【００２８】
各仮想化制御周期Ｔでは、アプリ５１１及びアプリ５２１の負荷が、物理コア２〜４に均等に分散されている。また、各仮想化制御周期Ｔでは、仮想コアａ〜ｃ，Ａ，Ｂのそれぞれにおける処理順序が維持されている。さらに、各仮想化制御周期Ｔでは、同一ＯＳの仮想コアが均一に動作するとともに、ＯＳ５１の動作時間とＯＳ５２の動作時間の比率が、アプリ５１１とアプリ５２１の負荷の比率となっている。
【００２９】
＜効果＞
以上説明した第１実施形態によれば、以下の効果が得られる。
（１）仮想コアａ〜ｃ上のＯＳ５１の動作時間、及び仮想コアＡ，Ｂ上のＯＳ５２の動作時間から分割時間が生成され、生成された分割時間が物理コア２〜４に均等に割り当てられる。その際、仮想化制御周期Ｔにおける物理コア２〜４の全体で、ＯＳ５１とＯＳ５２の動作時間の比率が、アプリ５１１とアプリ５２１の負荷比率となるように、分割時間が割り当てられる。よって、ＯＳ間の隔絶性及びＯＳの移植性を保持したまま、ＯＳ５１，５２の動作時間をアプリ５１１，５２１の負荷比率に応じた時間にして、ＯＳ間の負荷分散を実現することができる。また、事前にＯＳ５１，５２の負荷比率に応じてＯＳ５１，５２の動作時間を定義するため、動的にＯＳ５１，５２の負荷を検知する必要がなく、その分のオーバーヘッドの発生を抑制することができる。
【００３０】
（２）仮想コアａ〜ｃ，Ａ，Ｂでの処理順序が変更されることなく、分割時間ａ１〜ａ３，ｂ１〜ｂ３，ｃ１〜ｃ３，Ａ１〜Ａ３，Ｂ１〜Ｂ３が物理コア２〜４に割り当てられる。よって、仮想コアａ〜ｃ，Ａ，Ｂによる処理のリアルタイム性を確保することができる。
【００３１】
（他の実施形態）
以上、本発明を実施するための形態について説明したが、本発明は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００３２】
（ａ）上記実施形態では、ＥＣＵ７０に２つのＯＳ５１，５２を搭載しているが、３つ以上のＯＳを搭載してもよい。
（ｂ）上記実施形態では、処理装置として車載装置であるＥＣＵ７０を想定しているが、処理装置は車載装置に限らず、どのような処理装置でもよい。
【００３３】
（ｃ）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００３４】
（ｄ）上述した処理装置の他、当該処理装置を構成要素とするシステム、車両制御装置、負荷分散方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００３５】
１，２，３，４…物理コア、２１，３１，４１…仮想化制御部、７０…ＥＣＵ、５１，５２…ＯＳ、５１１，５２１…アプリ、ｘ，ａ，ｂ，ｃ，Ａ，Ｂ…仮想コア。
【図１】
2018116389.tif 000003
【図２】
2018116389.tif 000004
【図３】
2018116389.tif 000005