(57)【要約】【課題】キャッシュメモリを共用する複数のリクエスタ夫々の性能保証を行いやすくできるキャッシュメモリ制御装置を提供すること。【解決手段】キャッシュメモリ制御装置は、キャッシュメモリ１２ｂと、キャッシュメモリ１２ｂを共用して、このキャッシュメモリ１２ｂにアクセスする第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３と、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３のどちらがキャッシュメモリ１２ｂにアクセスしようとしているかを識別すると共に、識別した第２ＶＣＰＵ３２又は第３ＶＣＰＵ３３に対応付けられた、第２ＶＣＰＵ用領域１２ｂ１又は第３ＶＣＰＵ用領域１２ｂ２を用いるように制御するメモリコントローラ１２ａとを備えている。【選択図】図２
2015060551.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリ（１２ｂ，１３ｂ，１５ｂ〜１９ｂ）と、
前記キャッシュメモリを共用して、該キャッシュメモリにアクセスする複数のリクエスタ（３２，３３，３４，５２，５３，６２，６３，８３〜８５，１０３，１０４）と、
複数の前記リクエスタのうち、前記キャッシュメモリにアクセスしようとしている前記リクエスタを識別すると共に、識別した前記リクエスタ用に対応付けられた、前記キャッシュメモリにおける使用領域を用いるように制御する制御手段（１２ａ，１３ａ，１５ａ〜１８ａ）と、を備えていることを特徴とするキャッシュメモリ制御装置。
【請求項２】
複数の前記リクエスタの夫々は、動作時のハードウェア状態が異なるものであり、
前記制御手段は、前記ハードウェア状態に基づいて、前記キャッシュメモリにアクセスしようとしている前記リクエスタを識別することを特徴とする請求項１に記載のキャッシュメモリ制御装置。
【請求項３】
複数の前記リクエスタの夫々に関連付けられた識別子データ（３２ａ，３３ａ，３４ａ，５２ａ，５３ａ，６２ａ，６３ａ，８３ａ〜８５ａ，１０３ａ，１０４ａ）を有しており、
前記制御手段は、前記識別子データに基づいて、前記キャッシュメモリにアクセスしようとしている前記リクエスタを識別することを特徴とする請求項１に記載のキャッシュメモリ制御装置。
【請求項４】
前記制御手段は、複数の前記リクエスタの夫々に対して、静的且つ固定的に対応付けられた前記使用領域を用いるように制御することを特徴とする請求項１乃至３のいずれか一項に記載のキャッシュメモリ制御装置。
【請求項５】
前記制御手段は、予め決められた条件に応じて、複数の前記リクエスタの夫々に対して前記使用領域を動的に対応付けると共に、該使用領域を用いるように制御することを特徴とする請求項１乃至３のいずれか一項に記載のキャッシュメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリの割り当てを制御するキャッシュメモリ制御装置。
【背景技術】
【０００２】
従来、キャッシュメモリに関する技術として、特許文献１に開示されたものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、キャッシュメモリは、複数のリクエスタで共有することが考えられる。言い換えると、複数のリクエスタが共通のキャッシュメモリにアクセスすることが考えられる。なお、リクエスタとは、キャッシュメモリにアクセスするアプリケーション、アプリケーション内のタスク、仮想コア、ハードウェア機能など、ある単位のまとまりを示すものである。よって、複数のリクエスタとしては、例えば、第一制御アプリケーションと第二制御アプリケーションや、第一タスクと第二タスクやなどがあげられる。なお、図面及び以下の説明では、アプリケーションを省略してアプリとも記載する。
【０００５】
また、マイコンは、各リクエスタによる所定の処理が、ある決まった時間内に完了することを保証することが求められることがある（性能保証）。また、キャッシュメモリを用いたマイコンでは、キャッシュヒットするか、キャッシュミスになるかにより性能が大きく変動することがある。そして、キャッシュヒットするか、キャッシュミスになるかは、それまで動作していたリクエスタのソフトウェア特性などによって異なる。
【０００６】
従って、複数のリクエスタでキャッシュメモリを共有した場合、各リクエスタがキャッシュメモリをお互いに汚染することで、各リクエスタの性能保証が難しくなる可能性がある。つまり、各リクエスタがキャッシュメモリをお互いに汚染すると、キャッシュメモリの状態が変化する。これによって、各リクエスタの処理時間が変動して、各リクエスタの性能保証が難しくなる可能性がある。
【０００７】
また、設計段階や開発段階において、マイコン又はマイコンを搭載した制御装置の実機評価によって性能保証を行うことも考えられる。しかしながら、マイコン又はマイコンを搭載した制御装置は、設計段階や開発段階を経て製品が完成した後に、機能が追加されたり、タスクとしてユーザアプリをインストールして使うこともありうる。なお、ユーザアプリとは、市場にてエンドユーザが開発したアプリである。
【０００８】
しかしながら、機能が追加された場合、機能が追加するたびに評価を行う必要があった。また、ユーザアプリがインストールされた場合、評価を行うことができないことがある。更に、ユーザアプリがインストールされたことによって、ユーザアプリと他のリクエスタがキャッシュメモリをお互いに汚染することで、各リクエスタの性能保証が難しくなる可能性がある。
【０００９】
本発明は、上記問題点に鑑みなされたものであり、キャッシュメモリを共用する複数のリクエスタ夫々の性能保証を行いやすくできるキャッシュメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明は、
キャッシュメモリ（１２ｂ，１３ｂ，１５ｂ〜１９ｂ）と、
キャッシュメモリを共用して、キャッシュメモリにアクセスする複数のリクエスタ（３２，３３，３４，５２，５３，６２，６３，８３〜８５，１０３，１０４）と、
複数のリクエスタのうち、キャッシュメモリにアクセスしようとしているリクエスタを識別すると共に、識別したリクエスタ用に対応付けられた、キャッシュメモリにおける使用領域を用いるように制御する制御手段（１２ａ，１３ａ，１５ａ〜１８ａ）と、
を備えていることを特徴とする。
【００１１】
このように、本発明は、複数のリクエスタのうち、キャッシュメモリにアクセスしようとしているリクエスタを識別する。そして、本発明は、識別したリクエスタ用に対応付けられた、キャッシュメモリにおける使用領域を用いるように制御する。従って、本発明は、各リクエスタが自身に対応付けられた、キャッシュメモリにおける使用領域しか使用しないようにすることができる。このため、複数のリクエスタでキャッシュメモリを共用しても、リクエスタ間でのキャッシュメモリの状態変化を抑制できる。よって、本発明は、複数のリクエスタ夫々の性能保証を行いやすくできる。
【００１２】
なお、特許請求の範囲およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１３】
【図１】実施形態におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図２】実施形態における第２コアの概略構成を示すブロック図である。
【図３】（ａ）（ｂ）は、実施形態のキャッシュメモリ制御装置におけるキャッシュメモリの状態を示すイメージ図である。
【図４】（ａ）（ｂ）は、比較例のキャッシュメモリ制御装置におけるキャッシュメモリの状態を示すイメージ図である。
【図５】変形例１におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図６】変形例１における第５コアの概略構成を示すブロック図である。
【図７】変形例１における第３コアの概略構成を示すブロック図である。
【図８】変形例２におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図９】変形例２における第６コアの概略構成を示すブロック図である。
【図１０】変形例３におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図１１】変形例３における第７コアの概略構成を示すブロック図である。
【図１２】変形例４におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図１３】変形例４における第８コアの概略構成を示すブロック図である。
【図１４】変形例５におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図１５】変形例６におけるキャッシュメモリ制御装置を備えたマイコンを概念的に説明する図面である。
【図１６】変形例６における第９コアの概略構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下において、図面を参照しながら、発明を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
【００１５】
本発明のキャッシュメモリ制御装置は、図１に示すマイコンに搭載されてなるものである。マイコンは、例えば、車両に搭載された車載制御装置に設けられており、プログラムを実行するための演算ユニット及びレジスタなどからなるマイコンコアなどを備えている。マイコンコアは、物理コア、実コアなどと称することもできる。
【００１６】
本実施形態では、マイコンコアとして第１コア１１〜第４コア１４を備えたマイコンを採用している。よって、マイコンは、マルチコアマイコンと称することもできる。しかしながら、本発明はこれに限定されない。本発明は、例えば、コアを二つだけ備えたマイコン、コアを三つだけ備えたマイコン、五つ以上のコアを備えたマイコン、又はコアを一つだけ備えたマイコンなどであっても適用することができる。なお、マイコンは、車載制御装置に限らず、民生の電子機器に設けられていてもよい。
【００１７】
第１コア１１〜第４コア１４は、自身のリソースをクロック単位で時分割して使用することで仮想的に複数のコアが存在しているように動作させるＣＰＵ仮想化技術を利用して、仮想ＣＰＵ（以下、ＶＣＰＵとも称する）３１〜３４を並列動作させることができる。本実施形態では、第１ＶＣＰＵ３１〜第４ＶＣＰＵ３４の四つのＶＣＰＵを備えたマイコンを採用している。また、マイコンは、マイコン電源投入時における各第１ＶＣＰＵ３１〜第４ＶＣＰＵ３４の動作状態を管理するソフトウェアであるハイパーバイザ２０を搭載している。また、ＶＣＰＵに関しては、周知技術であるため詳しい説明は省略する。また、ＶＣＰＵの個数に関しては、上記に限定されない。なお、ＣＰＵは、Central Processing Unitの略である。
【００１８】
更に、マイコンは、第１ＶＣＰＵ３１〜第４ＶＣＰＵ３４上で１以上のＯＳ４１を独立かつ並行に動作させることができる。また、ＯＳ４１上では、第１制御アプリ５１、ユーザアプリ５２、第２制御アプリ５３、情報アプリ５４が実行可能な構成となっている。このように、本実施形態では、ハードウェア（ＶＣＰＵ）とソフトウェアによる仮想化の例を採用している。なお、ＯＳは、Operating Systemの略である。
【００１９】
第１制御アプリ５１及び第２制御アプリ５３は、例えば車両のエンジン制御に関するアプリ、トランスミッション制御、及びボディ系の制御などに関するアプリなどである。なお、ボディ系の制御とは、照明の制御、ドアロックの施錠及び解錠の制御、ワイパーの制御などである。ユーザアプリ５２は、エンドユーザが開発したアプリであり、例えばダウンロードなどしてマイコンにインストールされたアプリである。情報アプリ５４は、例えば車両の走行距離や燃費などの車両情報を車室内の画面に表示させるためのアプリである。
【００２０】
次に、第１コア１１〜第４コア１４に関して、詳しく説明する。なお、第１コア１１〜第４コア１４は、同様の構成を有しているため、ここでは第２コア１２を用いて説明する。
【００２１】
図１の点線部分に示すように、第２コア１２上では、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３が動作可能に構成されている。また、図２に示すように、第２コア１２は、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３に共用されるキャッシュメモリ１２ｂと、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３に対するキャッシュメモリ１２ｂの割り当てを制御するメモリコントローラ１２ａとを備えている。
【００２２】
つまり、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３の夫々は、一つのキャッシュメモリ１２ｂを共有している。よって、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３は、共にキャッシュメモリ１２ｂにアクセスすることになる。また、図２に示すように、キャッシュメモリ１２ｂは、第２ＶＣＰＵ３２が使用する第２ＶＣＰＵ用領域１２ｂ１と、第３ＶＣＰＵ３３が使用する第３ＶＣＰＵ用領域１２ｂ２とに分けられている。
【００２３】
なお、この第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３は、本発明の特許請求の範囲におけるリクエスタに相当する。本実施形態では、リクエスタとして第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３を採用しているが、本発明はこれに限定されない。リクエスタは、予め決められた単位のハードウェア、又は予め決められた単位のソフトウェアであり、キャッシュメモリにアクセスするものであれば採用することができる。リクエスタのその他の例に関しては、後ほど変形例１〜６で説明する。
【００２４】
一方、メモリコントローラ１２ａは、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のうち、キャッシュメモリ１２ｂにアクセスしようとしているＶＣＰＵを識別する（制御手段）。つまり、メモリコントローラ１２ａは、第２ＶＣＰＵ３２がキャッシュメモリ１２ｂにアクセスしようとしているのか、第３ＶＣＰＵ３３がキャッシュメモリ１２ｂにアクセスしようとしているのかを識別する。そして、メモリコントローラ１２ａは、識別したリクエスタ（第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のいずれか一方）用に対応付けられた、キャッシュメモリ１２ｂにおける使用領域を用いるように制御する（制御手段）。つまり、キャッシュメモリ１２ｂは、各リクエスタの夫々に対して、独立的（言い換えると、排他的）に対応付けられた使用領域が設けられている。言い換えると、キャッシュメモリ１２ｂは、各リクエスタの夫々に専用の使用領域が設けられている。しかしながら、このキャッシュメモリ１２ｂにおける各仕様領域は、キャッシュメモリ１２ｂにおいて連続的に設けられていてもよいし、離散的に設けられていてもよい。
【００２５】
メモリコントローラ１２ａは、例えば第２ＶＣＰＵ３２がキャッシュメモリ１２ｂにアクセスしようとしていると識別した際には、キャッシュメモリ１２ｂの第２ＶＣＰＵ用領域１２ｂ１を用いるように制御する。言い換えると、メモリコントローラ１２ａは、第２ＶＣＰＵ３２がキャッシュメモリ１２ｂにアクセスしようとしていると識別した際には、キャッシュメモリ１２ｂの第２ＶＣＰＵ用領域１２ｂ１にアクセスするように制御する。同様に、メモリコントローラ１２ａは、第３ＶＣＰＵ３３がキャッシュメモリ１２ｂにアクセスしようとしていると識別した際には、キャッシュメモリ１２ｂの第３ＶＣＰＵ用領域１２ｂ２を用いるように制御する。
【００２６】
なお、第１ＶＣＰＵ３１〜第４ＶＣＰＵ３４の夫々は、動作時におけるマイコンのハードウェア状態が異なるものである。そこで、メモリコントローラ１２ａは、このハードウェア状態に基づいて、キャッシュメモリ１２ｂにアクセスしようとしているリクエスタを識別する。例えば、第２ＶＣＰＵ３２が動作している場合と、第３ＶＣＰＵ３３が動作している場合とでは、マイコンのハードウェアであるレジスタの値が異なる。よって、メモリコントローラ１２ａは、レジスタの値に基づいて、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のどちらが、キャッシュメモリ１２ｂにアクセスしようとしているかを識別することができる。つまり、メモリコントローラ１２ａは、ＣＰＵ仮想化技術を利用した場合、ハードウェア機能を用いてリクエスタを識別する、と言い換えることができる。
【００２７】
キャッシュメモリ１２ｂを用いるのは、データの読み出しを高速化することが、そもそもの狙いである。よって、キャッシュメモリ１２ｂは、なるべく高速に（低レイテンシで）、データを読み出しできることが望ましい。本実施形態のように、ハードウェア機能を用いてリクエスタを識別することによって、高速なデータの読み出し効果が期待できる。つまり、ハードウェア機能を用いてリクエスタを識別することによって、特定の記憶領域に格納されたデータを識別子として用いる場合よりも高速にデータを読み出しできる。言い換えると、メモリコントローラ１２ａは、ＲＡＭに記憶された各リクエスタに関連付けられた識別子を読み込んで、キャッシュメモリ１２ｂにアクセスしようとしているリクエスタを識別する場合よりも高速にデータを読み出しできる。しかしながら、メモリコントローラ１２ａは、これに限定されない。メモリコントローラ１２ａは、キャッシュメモリ１２ｂにアクセスしようとしているリクエスタを識別できれば特に限定されない。
【００２８】
また、本実施形態では、メモリコントローラ１２ａは、複数のリクエスタの夫々に対して、キャッシュメモリ１２ｂの使用領域が静的且つ固定的に対応付けられた使用領域を用いるように制御する例を採用している。言い換えると、第２ＶＣＰＵ用領域１２ｂ１は、第２ＶＣＰＵ３２の使用領域であり、キャッシュメモリ１２ｂの物理位置又はアドレスが静的且つ固定的に決められている。同様に、第３ＶＣＰＵ用領域１２ｂ２は、第３ＶＣＰＵ３３の使用領域であり、キャッシュメモリ１２ｂの物理位置又はアドレスが静的且つ固定的に決められている。よって、第２ＶＣＰＵ用領域１２ｂ１は、第２ＶＣＰＵ３２に対して静的且つ固定的に対応付けられている、と称することができる。そして、第３ＶＣＰＵ用領域１２ｂ２は、第３ＶＣＰＵ３３に対して静的且つ固定的に対応付けられている、と称することができる。
【００２９】
この場合、第２ＶＣＰＵ３２に割り当てるキャッシュメモリ１２ｂの使用領域を示す設定値と、第３ＶＣＰＵ３３に割り当てるキャッシュメモリ１２ｂの使用領域を示す設定値は、予めハードウェアによって定められた設定領域に不揮発で書き込んでおく。なお、この設定値は、割り当て値と称することもできる。そして、メモリコントローラ１２ａが第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３に対して、第２ＶＣＰＵ用領域１２ｂ１及び第３ＶＣＰＵ用領域１２ｂ２を使用するように制御する際には、ハードウェアが設定値を自動で読み込んで反映することができる。
【００３０】
例えば、キャッシュメモリ１２ｂは、ある決まった四つのキャッシュラインが第２ＶＣＰＵ用領域１２ｂ１であり、他の決まった四つのキャッシュラインが第３ＶＣＰＵ用領域１２ｂ２、などとなる。そして、第２ＶＣＰＵ用領域１２ｂ１は、四つのキャッシュラインから五つのキャッシュラインや三つのキャッシュラインに変更されない。第３ＶＣＰＵ用領域１２ｂ２に関しても同様である。
【００３１】
このように、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３の夫々に対して、キャッシュメモリ１２ｂの使用領域を静的且つ固定的に対応付けることで、メモリコントローラ１２ａのロジックを小さく（言い換えると、簡素化）することができ処理の高速化が期待できる。しかしながら、各リクエスタに対するキャッシュメモリ１２ｂの使用領域の割り当ては、これに限定されない。各リクエスタに対して、キャッシュメモリ１２ｂの使用領域を動的に割り当ててもよい。言い換えると、各リクエスタに対して、キャッシュメモリ１２ｂの使用領域を動的に対応付けてもよい。なお、このキャッシュメモリ１２ｂの使用領域を動的に対応付ける例に関しては、後ほど変形例にて説明する。
【００３２】
更に、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３の夫々に対する、キャッシュメモリ１２ｂの使用領域の割り当てについては、比率で決めてもよいし、絶対サイズで決めてもよい。
【００３３】
例えば、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３は、キャッシュメモリ１２ｂを３対１の比率で使用する、と決めてもよい。この場合、第２ＶＣＰＵ用領域１２ｂ１と第３ＶＣＰＵ用領域１２ｂ２の比率は３対１となる。
【００３４】
また、第２ＶＣＰＵ３２には、キャッシュメモリ１２ｂの全体容量にかかわらず、キャッシュメモリ１２ｂにおける○○キロバイト与える、と決めてもよい。この場合、第２ＶＣＰＵ用領域１２ｂ１は、○○キロバイトとなる。
【００３５】
更に、第２ＶＣＰＵ３２には、キャッシュメモリ１２ｂにおけるｎ１キロバイト与え、第３ＶＣＰＵ３３には、キャッシュメモリ１２ｂにおけるｎ２キロバイト与える、と決めてもよい。この場合、第２ＶＣＰＵ用領域１２ｂ１は、ｎ１キロバイトとなり、第３ＶＣＰＵ用領域１２ｂ２は、ｎ２キロバイトとなる。なお、このように、第２ＶＣＰＵ用領域１２ｂ１と第３ＶＣＰＵ用領域１２ｂ２とを割り当て、且つ、キャッシュメモリ１２ｂに余り領域が発生した場合は、この余り領域は使用してもよいし、使用しなくてもよい。
【００３６】
ここで、図３及び図４に示すキャッシュメモリ１２ｂの状態の一例を用いて、本実施形態のメモリコントローラ１２ａと、比較例のメモリコントローラとを対比して説明する。なお、比較例のメモリコントローラは、メモリコントローラ１２ａが設けられているマイコンと同様のマイコンに設けられるものである。しかしながら、比較例のメモリコントローラは、メモリコントローラ１２ａと異なり、リクエスタの識別を行わない。また、比較例のメモリコントローラに対応する第２ＶＣＰＵ、第３ＶＣＰＵ、キャッシュメモリ、第２ＶＣＰＵ用領域、第３ＶＣＰＵ用領域に関しては、便宜上、本実施形態と同様の符号を付与する。
【００３７】
まず、図４を用いて、比較例のメモリコントローラによって制御されるキャッシュメモリ１２ｂの状態に関して説明する。なお、第２ＶＣＰＵ３２によるキャッシュメモリ１２ｂの利用頻度は固定と仮定する。
【００３８】
図４（ａ）は、第２ＶＣＰＵ３２によるキャッシュメモリ１２ｂの利用頻度と、第３ＶＣＰＵ３３によるキャッシュメモリ１２ｂの利用頻度とが同等である第１ケースのキャッシュメモリ１２ｂの状態を示している。この第１ケースの場合、キャッシュメモリ１２ｂは、第２ＶＣＰＵ用領域１２ｂ１と第３ＶＣＰＵ用領域１２ｂ２とが４ラインずつ割り振られることになる。なお、図３及び図４におけるキャッシュメモリ１２ｂ中の数字は、キャッシュされた順番を示している。
【００３９】
これに対して、図４（ｂ）は、第２ＶＣＰＵ３２によるキャッシュメモリ１２ｂの利用頻度よりも、第３ＶＣＰＵ３３によるキャッシュメモリ１２ｂの利用頻度のほうが多い第２ケースのキャッシュメモリ１２ｂの状態を示している。この第２ケースの場合、キャッシュメモリ１２ｂは、第３ＶＣＰＵ３３によって９，１０，１１番目にキャッシュされることで、４，６，８番目にキャッシュされた第２ＶＣＰＵ用領域１２ｂ１が上書きされて第３ＶＣＰＵ用領域１２ｂ２となってしまう。このように、比較例のメモリコントローラは、第３ＶＣＰＵ３３が第２ＶＣＰＵ用領域１２ｂ１を上書きするので、キャッシュメモリ１２ｂの状態が変化する。このため、比較例のメモリコントローラでは、第２ＶＣＰＵ３２の処理時間が第１ケースよりも第２ケースの方が長くなる。よって、比較例のメモリコントローラでは、第２ＶＣＰＵ３２の処理時間が変動して性能保証が難しくなる可能性がある。
【００４０】
次に、図３を用いて、メモリコントローラ１２ａによって制御されるキャッシュメモリ１２ｂの状態に関して説明する。なお、第２ＶＣＰＵ３２によるキャッシュメモリ１２ｂの利用頻度は固定と仮定する。また、メモリコントローラ１２ａは、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３の夫々に対して、４ラインずつキャッシュメモリ１２ｂの領域を割り当てるものとする。
【００４１】
図３（ａ）は、第２ＶＣＰＵ３２によるキャッシュメモリ１２ｂの利用頻度と、第３ＶＣＰＵ３３によるキャッシュメモリ１２ｂの利用頻度とが同等である第１ケースのキャッシュメモリ１２ｂの状態を示している。この第１ケースの場合、キャッシュメモリ１２ｂは、第２ＶＣＰＵ用領域１２ｂ１と第３ＶＣＰＵ用領域１２ｂ２とが４ラインずつ割り振られることになる。このように、第１ケースでは、メモリコントローラ１２ａによって制御されるキャッシュメモリ１２ｂの状態と、比較例のメモリコントローラによって制御されるキャッシュメモリ１２ｂの状態とは同様である。
【００４２】
これに対して、図３（ｂ）は、第２ＶＣＰＵ３２によるキャッシュメモリ１２ｂの利用頻度よりも、第３ＶＣＰＵ３３によるキャッシュメモリ１２ｂの利用頻度のほうが多い第２ケースのキャッシュメモリ１２ｂの状態を示している。
【００４３】
メモリコントローラ１２ａは、９番目に第３ＶＣＰＵ３３がキャッシュメモリ１２ｂにアクセスしようとした場合、キャッシュメモリ１２ｂにアクセスしようとリクエスタが第３ＶＣＰＵ３３であると識別する。そして、メモリコントローラ１２ａは、識別した第３ＶＣＰＵ３３に対応付けられた、第３ＶＣＰＵ用領域１２ｂ２を用いるように制御する。従って、キャッシュメモリ１２ｂは、１番目にキャッシュされた第３ＶＣＰＵ用領域１２ｂ２が上書きされる。同様に、キャッシュメモリ１２ｂは、９，１０番目に第３ＶＣＰＵ３３がキャッシュメモリ１２ｂにアクセスしようとした場合、２，３番目にキャッシュされた第３ＶＣＰＵ用領域１２ｂ２が上書きされる。
【００４４】
よって、この第２ケースの場合、キャッシュメモリ１２ｂは、第３ＶＣＰＵ３３によって９，１０，１１番目にキャッシュされることで、１，２，３番目にキャッシュされた第３ＶＣＰＵ用領域１２ｂ２が上書きされる。つまり、メモリコントローラ１２ａは、第３ＶＣＰＵ３３が第２ＶＣＰＵ用領域１２ｂ１を上書きすることなく、第３ＶＣＰＵ用領域１２ｂ２を上書きするので、キャッシュメモリ１２ｂの状態は変化しない。このため、メモリコントローラ１２ａでは、第２ＶＣＰＵ３２の処理時間が第１ケースと第２ケースとでかわらない。よって、メモリコントローラ１２ａでは、第２ＶＣＰＵ３２の処理時間が変動して性能保証が難しくなることを抑制できる。
【００４５】
ここまでに説明したように、メモリコントローラ１２ａは、リクエスタである第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のうち、キャッシュメモリ１２ｂにアクセスしようとしているリクエスタを識別する。そして、メモリコントローラ１２ａは、識別したリクエスタに対応付けられた、キャッシュメモリ１２ｂにおける第２ＶＣＰＵ用領域１２ｂ１又は第３ＶＣＰＵ用領域１２ｂ２を用いるように制御する。
【００４６】
従って、メモリコントローラ１２ａは、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３が自身に対応付けられた、キャッシュメモリ１２ｂにおける第２ＶＣＰＵ用領域１２ｂ１又は第３ＶＣＰＵ用領域１２ｂ２しか使用しないようにすることができる。このため、メモリコントローラ１２ａは、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３でキャッシュメモリ１２ｂを共用しても、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３間でのキャッシュメモリ１２ｂの状態変化を抑制できる。つまり、メモリコントローラ１２ａは、第２ＶＣＰＵ３２が動作している場合と、第３ＶＣＰＵ３３が動作している場合とで、キャッシュメモリ１２ｂの状態変化を抑制できる。よって、メモリコントローラ１２ａは、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３夫々の性能保証を行いやすくできる。
【００４７】
なお、各リクエスタ専用のキャッシュメモリの使用領域指定は、「特定の物理コアにおけるキャッシュメモリのあるキャッシュラインからあるキャッシュラインまで」でも良い。また、各リクエスタ専用のキャッシュメモリの使用領域指定は、「特定の物理コアのキャッシュメモリ」でも良い。また、各リクエスタ専用のキャッシュメモリの使用領域指定は、「複数の物理コアのいずれかのキャッシュメモリ」でも良い。また、各リクエスタ専用のキャッシュメモリの使用領域指定は、「複数の物理コアのいずれかのキャッシュメモリでも良いが、そのキャッシュメモリのあるキャッシュラインからあるキャッシュラインまで」でも良い。また、各リクエスタ専用のキャッシュメモリの使用領域指定は、これらを組み合わせても良い。ただし、どのような指定を行うかで、性能保証のやりやすさは異なってくる。
【００４８】
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上述した実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。本発明は、発明を実施するための形態おいて示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
【００４９】
（変形例１）
図５〜図７を用いて、変形例１に関して説明する。図５に示すように、変形例１のマイコンは、上述の実施形態のマイコンと同様に四つのコアを備えている。しかしながら、変形例１のマイコンは、上述の第２コア１２のかわりに第５コア１５を備えている。
【００５０】
図５の点線部分に示すように、第５コア１５上では、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３が動作している。また、図６に示すように、第５コア１５は、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３に共用されるキャッシュメモリ１５ｂと、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３に対するキャッシュメモリ１５ｂの割り当てを制御するメモリコントローラ１５ａとを備えている。なお、キャッシュメモリ１５ｂは、第２ＶＣＰＵ３２が使用する第２ＶＣＰＵ用領域１５ｂ１と、第３ＶＣＰＵ３３が使用する第３ＶＣＰＵ用領域１５ｂ２とを形成可能に構成されている。このように、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３の夫々は、一つのキャッシュメモリ１５ｂを共有している。よって、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３は、共にキャッシュメモリ１５ｂにアクセスすることになる。
【００５１】
更に、第５コア１５は、設定値が記憶されている設定値記憶部１５ｃを備えている。この設定値記憶部１５ｃには、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３の夫々に対して設定値が記憶されている。例えば、設定値記憶部１５ｃは、設定値が、第２ＶＣＰＵ３２の及び第３ＶＣＰＵ３３の夫々に関連付けられたマップとして記憶されている。また、設定値記憶部１５ｃは、設定値が、第２ＶＣＰＵ３２の識別子３２ａ及び第３ＶＣＰＵ３３の識別子３２ａ夫々に関連付けられたマップとして記憶されている。
【００５２】
また、図５及び図６に示すように、第２ＶＣＰＵ３２、第３ＶＣＰＵ３３、及び第４ＶＣＰＵ３４の夫々は、個別に識別子３２ａ、識別子３３ａ、及び識別子３４ａが関連付けられていても良い。この識別子３２ａ、識別子３３ａ、及び識別子３４ａの夫々は、特許請求の範囲における識別子データに相当する。また、識別子３２ａ、識別子３３ａ、及び識別子３４ａの夫々は、例えば、マイコンのハードウェアにて用意される。具体的には、識別子３２ａ、識別子３３ａ、及び識別子３４ａの夫々は、ある特定の記憶領域（メモリやレジスタ）に格納されたデータである。なお、ここでの説明は省略するが、第１ＶＣＰＵ３１に関しても、同様に識別子が関連付けられている。
【００５３】
そして、図６に示すように、メモリコントローラ１５ａは、識別子３２ａ及び識別子３３ａに基づいて、第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のうち、キャッシュメモリ１５ｂにアクセスしようとしているＶＣＰＵを識別する（制御手段）。つまり、メモリコントローラ１５ａは、識別子３２ａ及び識別子３３ａに基づいて、第２ＶＣＰＵ３２がキャッシュメモリ１５ｂにアクセスしようとしているのか、第３ＶＣＰＵ３３がキャッシュメモリ１５ｂにアクセスしようとしているのかを識別する。このように、メモリコントローラ１５ａは、各リクエスタに固有のデータである識別子を用いて、キャッシュメモリ１５ｂにアクセスしようとしているＶＣＰＵを識別しても、上述の効果を奏することができる。
【００５４】
また、メモリコントローラ１５ａは、識別したリクエスタ（第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のいずれか一方）に対応付けられた、キャッシュメモリ１５ｂにおける使用領域を用いるように制御する（制御手段）。メモリコントローラ１５ａは、例えば第２ＶＣＰＵ３２がキャッシュメモリ１５ｂにアクセスしようとしていると識別した際には、キャッシュメモリ１５ｂの第２ＶＣＰＵ用領域１５ｂ１を用いるように制御する。言い換えると、メモリコントローラ１５ａは、第２ＶＣＰＵ３２がキャッシュメモリ１５ｂにアクセスしようとしていると識別した際には、キャッシュメモリ１５ｂの第２ＶＣＰＵ用領域１５ｂ１にアクセスするように制御する。同様に、メモリコントローラ１５ａは、第３ＶＣＰＵ３３がキャッシュメモリ１５ｂにアクセスしようとしていると識別した際には、キャッシュメモリ１５ｂの第３ＶＣＰＵ用領域１５ｂ２を用いるように制御する。
【００５５】
また、メモリコントローラ１５ａは、予め決められた条件に応じて、複数のリクエスタの夫々に対してキャッシュメモリ１５ｂにおける使用領域を動的に対応付けて、その使用領域を用いるように制御する。つまり、メモリコントローラ１５ａは、第２ＶＣＰ３２と第３ＶＣＰＵ３３の夫々が使用する使用領域を動的に切り替える。
【００５６】
例えば、設定値記憶部１５ｃにおいて、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３の夫々に関連付けられた設定値を複数の条件毎に記憶しておく。一方、メモリコントローラ１５ａは、複数の条件のうち、どの条件が成立しているかを判定する。また、メモリコントローラ１５ａは、条件成立の判定結果と、設定値記憶部１５ｃの記憶内容とから、現在の条件に対応した設定値を選択する。つまり、設定値記憶部１５ｃに記憶された設定値は、条件に応じて切り替わることになる。よって、メモリコントローラ１５ａは、現在成立している条件に対応しており、且つ、キャッシュメモリ１５ｂにアクセスしようとしているリクエスタ（第２ＶＣＰＵ３２と第３ＶＣＰＵ３３のいずれか一方）に対応付けられた設定値を選択することになる。このようにすることで、メモリコントローラ１５ａは、第２ＶＣＰ３２と第３ＶＣＰＵ３３の夫々が使用する使用領域を動的に切り替えることができる。
【００５７】
また、設定値記憶部１５ｃは、書き換え可能に設定値が記憶されていてもよい。この場合、マイコンは、複数の条件のうち、どの条件が成立しているかを判定する条件判定部（図示省略）を備える。そして、条件判定部は、条件成立の判定結果に応じて、設定値記憶部１５ｃに記憶された設定値を書き換える。この場合、条件判定部は、例えば予め決められた計算式を用いて、条件成立の判定結果に応じた演算を実行することで設定値を決定すると共に、設定値記憶部１５ｃに記憶された設定値を書き換える。このようにしても、メモリコントローラ１５ａは、第２ＶＣＰ３２と第３ＶＣＰＵ３３の夫々が使用する使用領域を動的に切り替えることができる。このようにすることで、キャッシュメモリ１５ｂの管理に柔軟性を持たせることができる。
【００５８】
ここで、キャッシュメモリ１５ｂにおける使用領域を動的に切り替える際の設定値に関して、一例を用いて説明する。例えば、ある条件が成立した場合の設定値は、キャッシュメモリ１５ｂのキャッシュライン１〜３，５が第２ＶＣＰＵ用領域１５ｂ１であり、キャッシュメモリ１５ｂのキャッシュライン４，６〜８が第３ＶＣＰＵ用領域１５ｂ２であることを示すものとする。そして、別の条件が成立した場合の設定値は、キャッシュメモリ１５ｂのキャッシュライン１が第２ＶＣＰＵ用領域１５ｂ１であり、キャッシュメモリ１５ｂのキャッシュライン２〜８が第３ＶＣＰＵ用領域１５ｂ２であることを示すものとする。また、更に別の条件が成立した場合の設定値は、第２ＶＣＰＵ用領域１５ｂ１をゼロとして、キャッシュメモリ１５ｂのキャッシュライン１〜８が第３ＶＣＰＵ用領域１５ｂ２であることを示すものであってもよい。
【００５９】
また、使用領域を動的に切り替える条件として、例えば、マイコンにおけるソフトウェアが動作している際の車両状態やマイコンの発熱状態、又は、ソフトウェアで予め定められたモードや、マイコンの動作モードなどを採用することができる。
【００６０】
このように、第２ＶＣＰ３２と第３ＶＣＰＵ３３の夫々が使用する使用領域を動的に切り替えることによって、キャッシュメモリ１５ｂの管理に柔軟性を持たせやすい。つまり、ユースケースを考えた場合、キャッシュメモリ１５ｂの最適な管理や分割粒度は異なると思われる。例えば、極めて多くのリクエスタに対して、キャッシュメモリの使用領域を与える場合、非常に細粒度の管理が必要になることも考えられる。しかしながら、変形例１では、マイコンの状況やマイコンの搭載環境の状況に応じて、第２ＶＣＰ３２及び第３ＶＣＰＵ３３の使用領域を切り替えることができるので、キャッシュメモリ１５ｂの管理や分割粒度を最適化しやすい。
【００６１】
また、図５の点線部分に示すように、第３コア１３上では、第４ＶＣＰＵ３４が動作している。また、図６に示すように、第３コア１３は、第４ＶＣＰＵ３４に使用されるキャッシュメモリ１３ｂと、第４ＶＣＰＵ３４に対するキャッシュメモリ１３ｂの割り当てを制御するメモリコントローラ１３ａとを備えている。さらに、第３コア１３は、設定値が記憶されている設定値記憶部１３ｃを備えている。そして、メモリコントローラ１３ａは、識別子３４ａに基づいて、第４ＶＣＰＵ３４がキャッシュメモリ１３ｂにアクセスしようとしているＶＣＰＵを識別する（制御手段）。
【００６２】
なお、変形例１においても、複数のリクエスタの夫々に対して、キャッシュメモリ１５ｂの使用領域が静的且つ固定的に対応付けられた使用領域を用いるように制御してもよい。この場合、設定値記憶部１５ｃに記憶されている、第２ＶＣＰＵ３２及び第３ＶＣＰＵ３３の夫々に関連付けられた設定値は、車両状態、マイコンの発熱状態、ソフトウェアで予め定められたモード、マイコンの動作モードなどによって変更されない。よって、静的且つ固定的に対応付けられた使用領域を用いる場合、使用領域を動的に切り替える条件を設定する必要がない。
【００６３】
また、この場合、第２ＶＣＰＵ３２に割り当てるキャッシュメモリ１５ｂの使用領域を示す設定値と、第３ＶＣＰＵ３３に割り当てるキャッシュメモリ１５ｂの使用領域を示す設定値は、設計時に決めておく。例えば、設定値は、ソフトウェア設計段階で決めておき、動作時にはブートアップ時等に、設定値記憶部１５ｃに読み込まれるようにする。そして、設定値は、設定値記憶部１５ｃに読み込まれると、それ以降は変更されないようにする。
【００６４】
つまり、第２ＶＣＰＵ３２に割り当てるキャッシュメモリ１５ｂの設定値と、第３ＶＣＰＵ３３に割り当てるキャッシュメモリ１５ｂの設定値とは、設計時に決めておく。そして、メモリコントローラ１５ａは、この設計時に決めた設定値でいかなる状況でも固定することで、第２ＶＣＰＵ３２に対しては第２ＶＣＰＵ用領域１５ｂ１を用い、第３ＶＣＰＵ３３に対しては第３ＶＣＰＵ用領域１５ｂ２を用いるようにする。このようにしても、本発明の目的は達成することができる。
【００６５】
（変形例２）
図８及び図９を用いて、変形例２に関して説明する。図８に示すように、変形例２のマイコンは、上述の実施形態のマイコンと同様に四つのコアを備えている。しかしながら、変形例２のマイコンは、上述の第２コア１２のかわりに第６コア１６を備えている。更に、変形例２のマイコンは、第１仮想コア６１〜第４仮想コア６４が設けられている。変形例２では、ソフトウェア（ハイパーバイザ）のみによる仮想化の例を採用している。なお、仮想コアに関しては、周知技術であるため詳しい説明は省略する。
【００６６】
図８の点線部分に示すように、第６コア１６には、第２仮想コア６２と第３仮想コア６３が設けられている。また、図９に示すように、第６コア１６は、第２仮想コア６２と第３仮想コア６３に共用されるキャッシュメモリ１６ｂと、第２仮想コア６２と第３仮想コア６３に対するキャッシュメモリ１６ｂの割り当てを制御するメモリコントローラ１６ａとを備えている。なお、キャッシュメモリ１６ｂは、第２仮想コア６２が使用する第２仮想コア用領域１６ｂ１と、第３仮想コア６３が使用する第３仮想コア用領域１６ｂ２とを形成可能に構成されている。
【００６７】
更に、第６コア１６は、設定値が記憶されている設定値記憶部１６ｃを備えている。この設定値記憶部１６ｃには、第２仮想コア６２と第３仮想コア６３の夫々に対して設定値が記憶されている。また、図９に示すように、第２仮想コア６２と第３仮想コア６３の夫々は、個別に識別子６２ａ、識別子６３ａが関連付けられている。なお、第６コア１６の動作は、第５コア１５と同様であるため、詳しい説明は省略する。
【００６８】
この変形例２に示すように、本発明は、リクエスタとして仮想コアを採用することもできる。そして、変形例２においても、上述の実施形態と同様の効果を奏することができる。
【００６９】
（変形例３）
図１０及び図１１を用いて、変形例３に関して説明する。図１０に示すように、変形例３のマイコンは、上述の実施形態のマイコンと同様に四つのコアを備えている。しかしながら、変形例３のマイコンは、上述の第２コア１２のかわりに第７コア１７を備えている。更に、変形例３のマイコンは、第１コア１１，第７コア１７，第３コア１３，第４コア１４上でマルチコアＯＳ７０が動作するように構成されている。また、マルチコアＯＳ７０上では、第１制御アプリ５１、ユーザアプリ５２、第２制御アプリ５３、情報アプリ５４が実行可能な構成となっている。このように、変形例３では、マルチコアＯＳ７０を採用した場合の例を採用している。なお、マルチコアＯＳに関しては、周知技術であるため詳しい説明は省略する。
【００７０】
図１０の点線部分に示すように、第７コア１７は、ユーザアプリ５２と第２制御アプリ５３を実行するものである。また、図１１に示すように、第７コア１７は、ユーザアプリ５２と第２制御アプリ５３に共用されるキャッシュメモリ１７ｂを備えている。このキャッシュメモリ１７ｂは、ユーザアプリ５２が使用するユーザアプリ用領域１７ｂ１と、第２制御アプリ５３が使用する第２制御アプリ用領域１７ｂ２とを形成可能に構成されている。また、第７コア１７は、ユーザアプリ５２と第２制御アプリ５３に対するキャッシュメモリ１７ｂの割り当てを制御するメモリコントローラ１７ａを備えている。
【００７１】
更に、第７コア１７は、設定値が記憶されている設定値記憶部１７ｃを備えている。この設定値記憶部１７ｃには、ユーザアプリ５２と第２制御アプリ５３の夫々に対して設定値が記憶されている。また、図１１に示すように、ユーザアプリ５２と第２制御アプリ５３の夫々は、個別に識別子５２ａ、識別子５３ａが関連付けられている。なお、第７コア１７の動作は、第５コア１５と同様であるため、詳しい説明は省略する。
【００７２】
この変形例３に示すように、本発明は、リクエスタとしてアプリを採用することもできる。そして、変形例３においても、上述の実施形態と同様の効果を奏することができる。
【００７３】
（変形例４）
図１２及び図１３を用いて、変形例４に関して説明する。図１２に示すように、変形例４のマイコンは、上述の変形例３のマイコンと同様に四つのコアを備えている。しかしながら、変形例４のマイコンは、上述の第７コア１７のかわりに第８コア１８を備えている。また、変形例４のマイコンは、変形例３のマイコンと同様に、マルチコアＯＳ７０上で、第１制御アプリ５１、ユーザアプリ５２、第２制御アプリ５３、情報アプリ５４が実行可能な構成となっている。更に、変形例４のマイコンは、第１制御アプリ５１、ユーザアプリ５２、第２制御アプリ５３、情報アプリ５４が、第１タスク８１〜第６タスク８６に分割されている。
【００７４】
図１２の点線部分に示すように、第８コア１８は、第３タスク８３〜第５タスク８５を実行するものである。また、図１３に示すように、第８コア１８は、第３タスク８３〜第５タスク８５に共用されるキャッシュメモリ１８ｂを備えている。このキャッシュメモリ１８ｂは、第３タスク８３が使用する第３タスク用領域１８ｂ１と、第４タスク８４が使用する第４タスク用領域１８ｂ２と、第５タスク８５が使用する第５タスク用領域１８ｂ３とを形成可能に構成されている。
【００７５】
また、第８コア１８は、第３タスク８３〜第５タスク８５の夫々に対するキャッシュメモリ１８ｂの割り当てを制御するメモリコントローラ１８ａを備えている。更に、第８コア１８は、設定値が記憶されている設定値記憶部１８ｃを備えている。この設定値記憶部１８ｃには、第３タスク８３〜第５タスク８５の夫々に対して設定値が記憶されている。また、図１３に示すように、第３タスク８３〜第５タスク８５の夫々は、個別に識別子８３ａ，識別子８４ａ，識別子８５ａが関連付けられている。なお、第８コア１８の動作は、第７コア１７と同様であるため、詳しい説明は省略する。
【００７６】
この変形例４に示すように、本発明は、リクエスタとしてタスクを採用することもできる。そして、変形例４においても、上述の実施形態と同様の効果を奏することができる。
【００７７】
また、本変形例４で採用したように、一つのキャッシュメモリ１８ｂを、第３タスク８３〜第５タスク８５のように、三つのリクエスタが共用していてもよい。更に、本発明は、一つのキャッシュメモリを四つ以上のリクエスタで共用していてもよい。
【００７８】
（変形例５）
図１４を用いて、変形例５に関して説明する。図１４に示すように、変形例５のマイコンは、変形例４のマイコンと同様に四つのコアを備えている。また、変形例５のマイコンは、マルチコアＯＳ７０上で、情報アプリ９０が実行可能な構成となっている。更に、変形例５のマイコンは、情報アプリ９０が第１タスク８１〜第６タスク８６に分割されている。
【００７９】
図１４の点線部分に示すように、第８コア１８は、第３タスク８３〜第５タスク８５を実行するものである。よって、第８コア１８は、変形例４の図１３と同様に、第３タスク８３〜第５タスク８５に共用されるキャッシュメモリ１８ｂを備えている。この変形例５においても、上述の実施形態と同様の効果を奏することができる。
【００８０】
（変形例６）
図１５及び図１６を用いて、変形例３に関して説明する。図１５に示すように、変形例６のマイコンは、上述の実施形態のマイコンと同様に四つのコアを備えている。しかしながら、変形例６のマイコンは、上述の第２コア１２のかわりに第９コア１９を備えている。そして、変形例６のマイコンは、第１コア１１，第９コア１９，第３コア１３，第４コア１４上でマルチコアＯＳ７０を動作させることができる。また、変形例６のマイコンは、マルチコアＯＳ７０上で第１ＨＭＴ１０１〜第５ＨＭＴ１０５を並列動作させることができ、且つ、第１ＨＭＴ１０１〜第５ＨＭＴ１０５上で情報アプリ９０が実行可能な構成となっている。更に、変形例６のマイコンは、情報アプリ９０が第１タスク８１〜第６タスク８６に分割されている。このように、変形例６では、マルチコアＯＳ７０と第１ＨＭＴ１０１〜第５ＨＭＴ１０５を採用した場合の例を採用している。なお、ＨＭＴは、Hardware Multi Threadの略であり、周知技術であるため詳しい説明は省略する。
【００８１】
図１５の点線部分に示すように、第９コア１９は、第３ＨＭＴ１０３と第４ＨＭＴ１０４が動作可能に構成されている。また、図１６に示すように、第９コア１９は、第３ＨＭＴ１０３と第４ＨＭＴ１０４に共用されるキャッシュメモリ１９ｂを備えている。このキャッシュメモリ１９ｂは、第３ＨＭＴ１０３が使用する第３ＨＭＴ用領域１９ｂ１と、第４ＨＭＴ１０４が使用する第４ＨＭＴ用領域１９ｂ２とを形成可能に構成されている。また、第９コア１９は、第３ＨＭＴ１０３と第４ＨＭＴ１０４に対するキャッシュメモリ１９ｂの割り当てを制御するメモリコントローラ１９ａを備えている。
【００８２】
更に、第９コア１９は、設定値が記憶されている設定値記憶部１９ｃを備えている。この設定値記憶部１９ｃには、第３ＨＭＴ１０３と第４ＨＭＴ１０４の夫々に対して設定値が記憶されている。また、図１６に示すように、第３ＨＭＴ１０３と第４ＨＭＴ１０４の夫々は、個別に識別子１０３ａ、識別子１０４ａが関連付けられている。なお、第９コア１９の動作は、第５コア１５などと同様であるため、詳しい説明は省略する。
【００８３】
この変形例６に示すように、本発明は、リクエスタとしてＨＭＴを採用することもできる。そして、変形例６においても、上述の実施形態と同様の効果を奏することができる。
【００８４】
なお、上述の実施形態、変形例１〜６などで説明したように、リクエスタの単位としては、アプリケーション毎、アプリケーション内のタスク毎、仮想コア毎、ハードウェアの纏まり毎（ＨＭＴ毎、ＶＣＰＵ毎）とすることができる。更に、図示は省略するが、リクエスタとしては、例えば仮想コアとＧＴＭなどを採用することもできる。ＧＴＭは、Global Timer Moduleの略である。
【００８５】
また、リクエスタの分割例としては、以下のようなものが考えられる。例えば、単一機能で電子制御装置が存在するようなアプリで分割する。具体的には、エンジン制御アプリを一つのリクエスタ、トランスミッション制御アプリを他のリクエスタとする。この場合、エンジン制御アプリ及びトランスミッション制御アプリは、一つのキャッシュメモリを共用する。このようにすることで、ソフトウェアの開発容易さを担保でき、且つソフトウェアの開発容易さを向上させることができる。
【００８６】
また、ユーザアプリと、予めマイコンに用意されている電子制御装置の機能アプリ（例えば、第１制御アプリなど）とで分割する。このようにすることで、マイコンにユーザアプリと機能アプリとが設けられていた場合であっても、機能アプリは、キャッシュメモリに起因する性能影響がないため、品質を担保しやすくなる。
【００８７】
また、ＡＳＩＬ（Automotive Safety Integrity Level）が異なるタスクやアプリで分割する。このようにすることで、キャッシュメモリの性能影響に起因するリスクがないことを証明しやすい。
【００８８】
また、リアルタイム性が異なるタスクで分割する。このようにすることで、高いリアルタイム性が必要なタスクであるリクエスタに対して、キャッシュメモリの使用領域を集中的に割り当てることで、性能保証がしやすくなる。
【符号の説明】
【００８９】
１１〜１４  第１コア〜第４コア、１２ａ  メモリコントローラ、１２ｂ  キャッシュメモリ、１２ｂ１  第２ＶＣＰＵ用領域、１２ｂ２  第３ＶＣＰＵ用領域、２０  ハイパーバイザ、３１〜３４  第１ＶＣＰＵ〜第４ＶＣＰＵ、４１  ＯＳ、５１  第１制御アプリケーション、５２  エンドユーザフリーアプリケーション、５３  第２制御アプリケーション、５４  情報アプリケーション
【図１】
2015060551.tif 000003
【図２】
2015060551.tif 000004
【図３】
2015060551.tif 000005
【図４】
2015060551.tif 000006
【図５】
2015060551.tif 000007
【図６】
2015060551.tif 000008
【図７】
2015060551.tif 000009
【図８】
2015060551.tif 000010
【図９】
2015060551.tif 000011
【図１０】
2015060551.tif 000012
【図１１】
2015060551.tif 000013
【図１２】
2015060551.tif 000014
【図１３】
2015060551.tif 000015
【図１４】
2015060551.tif 000016
【図１５】
2015060551.tif 000017
【図１６】
2015060551.tif 000018