(57)【要約】      （修正有）【課題】ＯＳの切り替えによる処理遅延を抑えることができる制御装置および制御方法を提供する。【解決手段】制御装置１は、処理部２と、複数のＯＳ共通のキャッシュメモリ４と、キャッシュロック制御部５とを備える。処理部は、複数のＯＳを切り替えながら各ＯＳに対応する処理を行う。複数のＯＳ共通のキャッシュメモリは、処理部が処理に用いるデータを記憶するメモリから処理部が読み出したデータを格納する。キャッシュロック制御部は、キャッシュメモリの領域に対する書き替えを禁止するキャッシュロックの制御を行う。また、キャッシュロック制御部は、処理部が処理するＯＳの切り替えが行われる場合に、キャッシュメモリの領域のうち、切替前のＯＳが処理されている際にメモリから読み出したデータを含む領域がキャッシュロックされるように、キャッシュロックする領域の変更を行う。【選択図】図１
2020149597.tif 000002
【特許請求の範囲】
【請求項１】
複数のＯＳ（Operating  System）を切り替えながら各ＯＳに対応する処理を行う処理部と、
前記処理部が処理に用いるデータを記憶するメモリから前記処理部が読み出したデータを格納する、複数のＯＳ共通のキャッシュメモリと、
前記キャッシュメモリの領域に対する書き替えを禁止するキャッシュロックの制御を行うキャッシュロック制御部と、
を備え、
前記キャッシュロック制御部は、
前記処理部が処理するＯＳの切り替えが行われる場合に、前記キャッシュメモリの領域のうち、切替前のＯＳが処理されている際に前記メモリから読み出したデータを含む領域がキャッシュロックされるように、キャッシュロックする領域の変更を行うこと
を特徴とする制御装置。
【請求項２】
前記キャッシュメモリは、
前記複数のＯＳそれぞれに割り当てられる複数の専用領域に予め分割され、
前記キャッシュロック制御部は、
切替前のＯＳが処理される際に前記メモリから読み出したデータを含む前記専用領域をキャッシュロックすること
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記キャッシュロック制御部は、
前記ＯＳの切替時において、切替後の前記ＯＳに対応する前記処理の周期に基づいて前記切替後の前記ＯＳにおける処理負荷を予測し、予測した前記処理負荷に応じた範囲の領域をキャッシュロックすること
を特徴とする請求項１に記載の制御装置。
【請求項４】
前記複数のＯＳには、
リアルタイム処理を行うリアルタイムＯＳが含まれ、
前記キャッシュロック制御部は、
前記リアルタイムＯＳから他の前記ＯＳへ切り替える場合に、前記リアルタイムＯＳが処理される際に前記メモリから読み出したデータを含む領域をキャッシュロックすること
を特徴とする請求項１〜３のいずれか１つに記載の制御装置。
【請求項５】
前記複数のＯＳは、
リアルタイム処理を行うリアルタイムＯＳおよび非リアルタイム処理を行う非リアルタイムＯＳであって、
前記キャッシュロック制御部は、
一方のＯＳから他方のＯＳへ切り替える場合に、一方のＯＳが処理される際に前記メモリから読み出した前記データを含む領域をキャッシュロックするとともに、他方のＯＳが処理される際に前記メモリから読み出した前記データを含む領域のキャッシュロックを解除すること
を特徴とする請求項１〜４のいずれか１つに記載の制御装置。
【請求項６】
前記キャッシュロック制御部は、
切替前の前記ＯＳに対応するレジスタ退避処理および切替後の前記ＯＳに対応するレジスタ復元処理の間に、前記領域をキャッシュロックすること
を特徴とする請求項１〜５のいずれか１つに記載の制御装置。
【請求項７】
複数のＯＳ（Operating  System）の処理に用いるデータを記憶するメモリから読み出されたデータが格納される、複数のＯＳ共通のキャッシュメモリを備える制御装置の制御方法であって、
前記複数のＯＳを切り替えながら各ＯＳに対応する前記処理を行う処理工程と、
前記キャッシュメモリの領域に対する書き換えを禁止するキャッシュロックの制御を行うキャッシュロック制御工程と、
を含み、
前記キャッシュロック制御工程は、
前記処理工程で処理されるＯＳの切り替えが行われる場合に、前記キャッシュメモリの領域のうち、切替前のＯＳが処理されている際に前記メモリから読み出したデータを含む領域がキャッシュロックされるように、キャッシュロックする領域の変更を行うこと
を特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関する。
【背景技術】
【０００２】
近年、車両制御の複雑化に伴い、制御装置が実行する制御用プログラムは、増加する傾向にあり、動作するＯＳ（Operating  System）も制御用プログラム間で異なる場合がある。そして、制御装置には、１つのマイコンで異なるＯＳを実行する、いわゆるマルチＯＳの技術が導入されつつある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−０１３５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、１つのマイコンでマルチＯＳを実現する場合、複数のＯＳ間でキャッシュを共有する必要がある。かかる点について、従来技術では、対象ＯＳの処理開始前に、事前に処理動作させてキャッシュに書き込んだデータをキャッシュロックさせることで、対象ＯＳを動作させる際のキャッシュヒット率を向上させて処理速度を向上させるようにしている。
【０００５】
しかしながら、例えば車両制御のように、割り込み処理等によりＯＳを頻繁に切り替えなければならない場合には、従来技術のように、ＯＳの切り替えを行う毎に事前に処理動作させるとなると、処理が間に合わず、処理遅延が生じるおそれがあった。
【０００６】
本発明は、上記に鑑みてなされたものであって、ＯＳの切り替えによる処理遅延を抑えることができる制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る制御装置は、処理部と、複数のＯＳ共通のキャッシュメモリと、キャッシュロック制御部とを備える。前記処理部は、複数のＯＳ（Operating  System）を切り替えながら各ＯＳに対応する処理を行う。複数のＯＳ共通の前記キャッシュメモリは、前記処理部が処理に用いるデータを記憶するメモリから前記処理部が読み出したデータを格納する。前記キャッシュロック制御部は、キャッシュメモリの領域に対する書き替えを禁止するキャッシュロックの制御を行う。また、前記キャッシュロック制御部は、前記処理部が処理するＯＳの切り替えが行われる場合に、前記キャッシュメモリの領域のうち、切替前のＯＳが処理されている際に前記メモリから読み出したデータを含む領域がキャッシュロックされるように、キャッシュロックする領域の変更を行う。
【発明の効果】
【０００８】
本発明によれば、ＯＳの切り替えによる処理遅延を抑えることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る制御装置の構成を示すブロック図である。
【図２】図２は、実施形態に係る制御方法の概要を示す図である。
【図３】図３は、実施形態に係る制御方法を示す図である。
【図４】図４は、実施形態に係る制御装置が実行する処理の処理手順を示すフローチャートである。
【図５】図５は、変形例に係る制御方法を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本願の開示する制御装置および制御方法の実施形態を詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。
【００１１】
まず、図１および図２を用いて、実施形態に係る制御方法の概要について説明する。図１は、実施形態に係る制御装置の構成を示すブロック図である。図２は、実施形態に係る制御方法の概要を示す図である。
【００１２】
図１に示すように、実施形態に係る制御装置１は、処理部２と、主メモリ３と、キャッシュメモリ４と、キャッシュロック制御部５とを備える。
【００１３】
ここで、制御装置１は、たとえば、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）などを有するコンピュータや各種の回路を含む。
【００１４】
コンピュータのＣＰＵは、たとえば、主メモリ３であるＲＡＭやＲＯＭ等で構成される大容量な記憶媒体に記憶されたプログラムを読み出して実行することによって、処理部２およびキャッシュロック制御部５として機能する。
【００１５】
なお、処理部２およびキャッシュロック制御部５の機能のうち、一部または全部をＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで構成することもできる。
【００１６】
また、キャッシュメモリ４は、たとえば、ＲＡＭで構成され、主メモリ３を構成する記憶媒体よりも高速でデータの読み出しや書き込みが可能であるが主メモリ３よりも低容量な記憶部である。ＲＡＭは、処理部２の作業領域として機能し、処理部２が実行する各種プログラムの情報等を一時的に記憶することができる。
【００１７】
ここで、処理部２には、仮想化支援機能が実装されている。仮想化支援機能とは、１つのＣＰＵ（もしくはコア）をハードウェア的な仮想化技術によって論理的に二つ以上に分割することで、ユーザからは、あたかも二つのＣＰＵ（コア）が異なるＯＳで動作しているように見える機能である。これにより、１つのＣＰＵで構成される処理部２は、複数のＯＳを切り替えながら各ＯＳに対応する処理を行う、マルチＯＳを実現することができる。
【００１８】
図１に示す例では、処理部２は、リアルタイム処理を行うリアルタイムＯＳと、非リアルタイム処理を行う非リアルタイムＯＳとを切り替えて処理を行う。リアルタイムＯＳは、例えば、車載ネットワークであるＣＡＮ（Controller  Area  Network）の通信ドライバを使用し、車載バッテリを制御するためのセンサ信号の受信や制御信号の送信等を行なうことで、車載バッテリにおける充放電制御処理をリアルタイム処理として実行させる。
【００１９】
また、非リアルタイムＯＳは、例えば、無線ＬＡＮ（Local  Area  Network）の通信ドライバを使用し、車両外部（例えば、車外から車載バッテリへの充電や、車載バッテリから車外への電力供給を行う際の車外電源設備）との通信処理を非リアルタイム処理として実行させる。
【００２０】
なお、リアルタイム処理は、充放電制御処理に限定されず、例えば、エンジン制御処理等であってもよく、リアルタイム性が要求される処理であればよい。また、非リアルタイム処理は、通信処理に限定されず、例えば、マルチメディア機器の処理等であってもよく、リアルタイム性が要求されない処理であればよい。
【００２１】
例えば、処理部２は、リアルタイムＯＳで動作している場合、主メモリ３からリアルタイム処理用のデータの読み出しを行うが、この際、まずキャッシュメモリ４に読み出したいデータがあるか確認し、キャッシュメモリ４に読み出したいデータがあった場合には、キャッシュメモリ４のデータを読み出すことで、主メモリ３へのアクセスが省略され、処理部２の処理時間が短縮される。また、キャッシュメモリ４に読み出したいデータがなかった場合には、主メモリ３にアクセスしてデータの読み出しを行うとともに、読み出したいデータをキャッシュメモリ４におけるキャッシュロックがされていない領域（リアルタイムＯＳで動作している場合にはリアルタイム処理用のデータを記憶するための領域）の空き領域に記憶する。主メモリ３およびキャッシュメモリ４に記憶されるデータには、リアルタイム処理を実行するためのコードや、リアルタイム処理により生成されたデータ等が含まれる。
【００２２】
同様に、処理部２は、非リアルタイムＯＳで動作している場合、主メモリ３やキャッシュメモリ４から非リアルタイム処理用のデータを読み出す処理やキャッシュメモリ４の書き替えを行う。なお、この際の処理は、前述したリアルタイムＯＳでの処理内容と同じである。主メモリ３およびキャッシュメモリ４に記憶されるデータには、非リアルタイム処理を実行するためのコードや、リアルタイム処理により生成されたデータ等が含まれる。
【００２３】
なお、キャッシュメモリ４にデータを記憶する際に、キャッシュメモリ４に空き領域が無い場合には、キャッシュメモリ４の領域における古いデータ（直近で読み出しが行われた時間が古いデータ、もしくは、書き込みされた時間が古いデータ）が記憶された領域に上書き記憶（書き替え）が行われ、上書き記憶された領域の元データは、キャッシュメモリ４から追い出されることになる。
【００２４】
キャッシュロック制御部５は、キャッシュメモリ４の領域に対する書き換えを禁止するキャッシュロックの制御を行う。なお、キャッシュロック制御部５が行うキャッシュロックの詳細については後述する。
【００２５】
ここで、従来技術では、対象ＯＳの処理開始前に、事前に処理動作させてキャッシュメモリに書き込んだ処理データをキャッシュロックさせることで、対象ＯＳの処理データが他のＯＳの処理データによりキャッシュメモリから追い出されないようにしている。
【００２６】
しかしながら、車両制御のように、割り込み処理等によりＯＳを頻繁に切り替えなければならない場合には、従来技術のように事前に処理動作させると、処理が間に合わず、処理遅延が生じるおそれがあった。また、キャッシュロックを行わなければ、一方のＯＳを動作させている際に、キャッシュメモリの領域はデータの読み出しがある毎にそのＯＳのデータに書き替えられてしまうので、他方のＯＳに切り替えた際には、切替後のＯＳのデータはキャッシュメモリに残っておらず、キャッシュヒット率が低下することから、処理が間に合わずに、処理遅延が生じるおそれがあった。
【００２７】
そこで、実施形態に係る制御方法では、処理部２が処理するＯＳの切り替えが行われる場合に、キャッシュメモリ４の領域のうち、切替前のＯＳが処理される際に主メモリ３から読み出したデータを含む領域がキャッシュロックされるように、キャッシュロックする領域の変更を行う。ここで、図２を用いて、実施形態に係る制御方法について説明する。
【００２８】
図２では、リアルタイムＯＳから非リアルタイムＯＳに切り替わる場合のキャッシュロックについて説明する。また、図２では、キャッシュメモリ４の領域は、４つの領域Ｄ１〜Ｄ４に分割され、各領域Ｄ１〜Ｄ４には、１つのデータが格納されることとする。
【００２９】
図２に示すように、実施形態に係る制御方法では、キャッシュロック制御部５は、処理部２が処理するＯＳの切り替えが行われる場合、具体的には、リアルタイムＯＳから非リアルタイムＯＳに切り替わる場合、キャッシュメモリ４の領域Ｄ１〜Ｄ４のうち、リアルタイムＯＳが処理される際に主メモリ３から読み出したデータを含む領域Ｄ１および領域Ｄ２をキャッシュロックする。
【００３０】
これにより、非リアルタイム処理のデータをキャッシュメモリ４に記憶したとしても、リアルタイム処理のデータがキャッシュメモリ４から追い出されることを防止できる。
【００３１】
このため、車両制御等の割り込みにより、非リアルタイムＯＳからリアルタイムＯＳに切り替わった場合に、キャッシュロックされた領域Ｄ１および領域Ｄ２には、リアルタイム処理のデータが残っているため、キャッシュヒット率が向上し、リアルタイム処理を高速に行うことができる。
【００３２】
換言すれば、実施形態に係る制御方法では、従来技術のように、処理開始前に事前に処理動作させてキャッシュメモリにデータを書き込む必要が無い。このため、ＯＳを頻繁に切り替えなければならない場合であっても、処理遅延が生じにくくなる。従って、実施形態に係る制御方法によれば、ＯＳの切替による処理遅延を抑えることができる。
【００３３】
次に、図３を用いて、実施形態に係る制御方法について具体的に説明する。図３は、実施形態に係る制御方法を示す図である。図３では、時刻ｔ１において、リアルタイムＯＳから非リアルタイムＯＳに切り替わり、時刻ｔ２において、非リアルタイムＯＳからリアルタイムＯＳへ切り替わることとする。
【００３４】
また、図３に示すように、キャッシュメモリ４は、リアルタイム処理のデータが格納される専用領域Ｄ１０と、非リアルタイム処理のデータが格納される専用領域Ｄ２０とに予め分割されていることとする。さらに、専用領域Ｄ１０は、４つの領域Ｄ１１〜Ｄ１４に分割され、各領域Ｄ１１〜Ｄ１４には１つのリアルタイム処理のデータが格納される。また、専用領域Ｄ２０は、４つの領域Ｄ２１〜Ｄ２４に分割され、各領域Ｄ２１〜Ｄ２４には１つの非リアルタイム処理のデータが格納される。
【００３５】
キャッシュロック制御部５は、切替前のＯＳが処理される際に主メモリ３から読み出したデータを含む専用領域Ｄ１０，Ｄ２０をキャッシュロックする。具体的には、図３に示すように、時刻ｔ１では、キャッシュロック制御部５は、切替前のＯＳであるリアルタイムＯＳに対応する専用領域Ｄ１０をキャッシュロックする。また、時刻ｔ１において、キャッシュロック制御部５は、切替後のＯＳである非リアルタイムＯＳに対応する専用領域Ｄ２０のキャッシュロックを解除する。
【００３６】
これにより、非リアルタイム処理時において、リアルタイム処理のデータが主メモリ３に追い出されることを防止でき、専用領域Ｄ２０に非リアルタイム処理のデータを書き込むことができる。
【００３７】
次に、時刻ｔ２において、キャッシュロック制御部５は、切替前のＯＳである非リアルタイムＯＳに対応する専用領域Ｄ２０をキャッシュロックする。また、時刻ｔ２において、キャッシュロック制御部５は、切替後のＯＳであるリアルタイムＯＳに対応する専用領域Ｄ１０のキャッシュロックを解除する。
【００３８】
これにより、リアルタイム処理時において、非リアルタイム処理のデータが主メモリ３に追い出されることを防止でき、専用領域Ｄ１０に非リアルタイム処理のデータを書き込むことができる。また、時刻ｔ１以前のリアルタイム処理のデータが、時刻ｔ２において、専用領域Ｄ１０に残っているので、時刻ｔ２以降のリアルタイム処理を高速化できる。
【００３９】
なお、時刻ｔ１から時刻ｔ２の期間のうち、非リアルタイム処理終了後のアイドル期間については、時刻ｔ２までの間、専用領域Ｄ１０のキャッシュロックを維持する。
【００４０】
あるいは、時刻ｔ１からの非リアルタイム処理終了後に非リアルタイムＯＳからリアルタイムＯＳに事前に切り替えておいてもよい。かかる場合には、切替時に、専用領域Ｄ１０のキャッシュロックを解除して、専用領域Ｄ２０をキャッシュロックする。
【００４１】
このように、キャッシュロック制御部５は、事前に分割した専用領域Ｄ１０，Ｄ２０を単位としてキャッシュロックを切り替えることで、キャッシュメモリ４に記憶されたデータを確実、かつ、低負荷でキャッシュロックすることができる。
【００４２】
なお、図３では、専用領域Ｄ１０および専用領域Ｄ２０を略同じ数の領域Ｄ１１〜Ｄ１４，Ｄ２１〜Ｄ２４としたが、各専用領域Ｄ１０，Ｄ２０の領域の数は、異なってもよく、さらに、任意の領域の数を設定可能である。
【００４３】
なお、キャッシュロック制御部５は、次回周期の処理負荷を予測してキャッシュロックする領域を動的に変更してもよいが、かかる点については、図５で後述する。
【００４４】
次に、図４を用いて、実施形態に係る制御装置１が実行する処理の処理手順について説明する。図４は、実施形態に係る制御装置１が実行する処理の処理手順を示すフローチャートである。
【００４５】
図４に示すように、まず、制御装置１の処理部２は、ＯＳの切替タイミングが到来したか否かを判定し（Ｓ１０１）、切替タイミングが到来していない場合（Ｓ１０１：Ｎｏ）、到来するまでステップＳ１０１を実行する。
【００４６】
処理部２は、ＯＳの切替タイミングが到来した場合（Ｓ１０１：Ｙｅｓ）、切替前のＯＳに対応するレジスタ退避処理を行う（Ｓ１０２）。
【００４７】
つづいて、キャッシュロック制御部５は、切替前のＯＳがリアルタイムＯＳであるか否かを判定する（Ｓ１０３）。キャッシュロック制御部５は、切替前のＯＳがリアルタイムＯＳである場合（Ｓ１０３：Ｙｅｓ）、リアルタイム用の専用領域Ｄ１０をキャッシュロックする（Ｓ１０４）。
【００４８】
つづいて、キャッシュロック制御部５は、切替後のＯＳに対応するレジスタ復元処理を行い（Ｓ１０５）、処理を終了する。つまり、キャッシュロック制御部５は、切替前のＯＳに対応するレジスタ退避処理および切替後のＯＳに対応するレジスタ復元処理の間に、キャッシュメモリ４の領域をキャッシュロックする。これにより、確実にキャッシュロックの切替処理を行うことができる。
【００４９】
一方、ステップＳ１０４において、キャッシュロック制御部５は、切替前のＯＳが非リアルタイムＯＳである場合（Ｓ１０３：Ｎｏ）、非リアルタイム用の専用領域Ｄ２０をキャッシュロックする（Ｓ１０６）。
【００５０】
上述してきたように、実施形態に係る制御装置１は、処理部２と、複数のＯＳ共通のキャッシュメモリ４と、キャッシュロック制御部５とを備える。処理部２は、複数のＯＳ（Operating  System）を切り替えながら各ＯＳに対応する処理を行う。複数のＯＳ共通のキャッシュメモリ４は、処理部２が処理に用いるデータを記憶する主メモリ３から処理部２が読み出したデータを格納する。キャッシュロック制御部５は、キャッシュメモリ４の領域に対する書き替えを禁止するキャッシュロックの制御を行う。また、キャッシュロック制御部５は、処理部２が処理するＯＳの切り替えが行われる場合に、キャッシュメモリの領域のうち、切替前のＯＳが処理されている際に主メモリ３から読み出したデータを含む領域がキャッシュロックされるように、キャッシュロックする領域の変更を行う。これにより、ＯＳの切り替えによる処理遅延を抑えることができる。
【００５１】
次に、図５を用いて、キャッシュロックする領域を動的に変更する場合について説明する。図５は、変形例に係る制御方法を示す図である。
【００５２】
キャッシュロック制御部５は、ＯＳの切替時において、切替後のＯＳに対応する処理の周期に基づいて切替後のＯＳにおける処理負荷を予測し、予測した処理負荷に応じた範囲の領域をキャッシュロックする。なお、処理の周期は、制御内容等から把握可能である。
【００５３】
例えば、時刻ｔ１１において、処理部２は、非リアルタイムＯＳからリアルタイムＯＳに切り替える時に、時刻ｔ１１から時刻ｔ１２までのリアルタイム処理の処理負荷を予測する。
【００５４】
そして、キャッシュロック制御部５は、予測したリアルタイム処理の処理負荷が大きいほど、キャッシュロックの領域（Ｄ３７，Ｄ３８）の範囲を少なくする。これにより、リアルタイム処理のデータを格納する領域（Ｄ３１〜Ｄ３６）を大きくできるため、処理遅延が生じることを抑えることができる。
【００５５】
また、時刻ｔ１２において、キャッシュロック制御部５は、リアルタイムＯＳから非リアルタイムＯＳに切り替える時に、時刻ｔ１２からの非リアルタイム処理の処理負荷を予測する。
【００５６】
そして、図５に示すように、キャッシュロック制御部５は、予測した非リアルタイム処理の処理負荷が比較的小さいため、リアルタイム処理のキャッシュロックの領域（Ｄ３１〜Ｄ３６）の範囲を大きくする。例えば、キャッシュロック制御部５は、非リアルタイム処理が比較的小さい場合、リアルタイム処理のデータがすべて残るように、キャッシュロックする。これにより、リアルタイム処理のデータを多く残すができるため、次回動作時におけるリアルタイム処理を高速化できる。
【００５７】
このように、処理負荷に応じてキャッシュロックする範囲を動的に変更することで、制御装置１における処理全体の性能を向上させることができる。
【００５８】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【００５９】
１    制御装置
２    処理部
３    主メモリ
４    キャッシュメモリ
５    キャッシュロック制御部
【図１】
2020149597.tif 000003
【図２】
2020149597.tif 000004
【図３】
2020149597.tif 000005
【図４】
2020149597.tif 000006
【図５】
2020149597.tif 000007