(57)【特許請求の範囲】
【請求項１】
自動車の動作を電子的に制御する電子制御装置であって、
前記自動車の動作を制御するための制御演算を実施する第１および第２演算部、
前記第１および第２演算部の間で共用してデータを格納する共用記憶部、
前記第１演算部のみがデータを読み書きすることができる第１専用記憶部、
前記第２演算部のみがデータを読み書きすることができる第２専用記憶部、
を備え、
前記第１演算部は、前記第２専用記憶部が格納すべきデータを前記共用記憶部に対して書き込むとともに、前記共用記憶部上における前記データのアドレスを読取指定アドレスとして前記第２演算部に対して通知し、
前記第２演算部は、前記データを前記共用記憶部に対して書き込んだ旨の通知を受け取ると、前記第１演算部から通知された前記読取指定アドレスから前記データを読み取るとともに、その読み取ったデータを前記第２専用記憶部に対して書き込み、
前記第１演算部は、前記第２専用記憶部が格納している前記データを読み取ることを要求する読出要求を前記第２演算部に対して通知するとともに、前記第２専用記憶部が格納している前記データを格納すべき前記共用記憶部上のアドレスを書込指定アドレスとして前記第２演算部に対して通知し、
前記第２演算部は、前記読出要求を取得すると、前記第２専用記憶部が格納している前記データを前記第１演算部から通知された前記書込指定アドレスに対して書き込むとともに、その旨を前記第１演算部に対して通知し、
前記第１演算部は、前記第２演算部から前記共用記憶部に対して前記データを書き込んだ旨の通知を受け取ると、前記第２演算部に対して通知した前記書込指定アドレスから前記データを読み取る
ことを特徴とする電子制御装置。
【請求項２】
自動車の動作を電子的に制御する電子制御装置であって、
前記自動車の動作を制御するための制御演算を実施する第１および第２演算部、
前記第１および第２演算部の間で共用してデータを格納する共用記憶部、
前記第１演算部のみがデータを読み書きすることができる第１専用記憶部、
前記第２演算部のみがデータを読み書きすることができる第２専用記憶部、
を備え、
前記第１演算部は、前記第２専用記憶部が格納すべきデータを前記共用記憶部に対して書き込むとともに、前記共用記憶部上における前記データのアドレスを読取指定アドレスとして前記第２演算部に対して通知し、
前記第２演算部は、前記データを前記共用記憶部に対して書き込んだ旨の通知を受け取ると、前記第１演算部から通知された前記読取指定アドレスから前記データを読み取るとともに、その読み取ったデータを前記第２専用記憶部に対して書き込み、
前記第１演算部は、前記データを格納すべき前記第２専用記憶部上のアドレスを前記第２演算部に対して通知し、
前記第２演算部は、前記第１演算部から通知された前記第２専用記憶部上のアドレスに対して前記データを書き込む
ことを特徴とする電子制御装置。
【請求項３】
自動車の動作を電子的に制御する電子制御装置であって、
前記自動車の動作を制御するための制御演算を実施する第１および第２演算部、
前記第１および第２演算部の間で共用してデータを格納する共用記憶部、
前記第１演算部のみがデータを読み書きすることができる第１専用記憶部、
前記第２演算部のみがデータを読み書きすることができる第２専用記憶部、
を備え、
前記第１演算部は、前記第２専用記憶部が格納すべきデータを前記共用記憶部に対して書き込むとともに、前記共用記憶部上における前記データのアドレスを読取指定アドレスとして前記第２演算部に対して通知し、
前記第２演算部は、前記データを前記共用記憶部に対して書き込んだ旨の通知を受け取ると、前記第１演算部から通知された前記読取指定アドレスから前記データを読み取るとともに、その読み取ったデータを前記第２専用記憶部に対して書き込み、
前記電子制御装置はさらに、前記第１演算部と前記第２演算部のいずれか一方がデータを書き込んでいる間は他方がデータを書き込むことができない排他制御レジスタを備え、
前記第１演算部は、前記共用記憶部上における前記データのアドレスを前記排他制御レジスタに対して書き込むことによりそのアドレスを前記第２演算部に対して通知する
ことを特徴とする電子制御装置。
【請求項４】
前記第２演算部は、前記排他制御レジスタをポーリングすることにより、前記データを前記共用記憶部に対して書き込んだ旨の通知を前記第１演算部から受け取る
ことを特徴とする請求項３記載の電子制御装置。
【請求項５】
前記電子制御装置はさらに、所定の値を書き込むことによって前記第１および第２演算部それぞれに対して個別の割り込みを発生させる割込制御レジスタを備え、
前記第１演算部は、前記共用記憶部上における前記データのアドレスを前記排他制御レジスタに対して書き込むとともに、前記割込制御レジスタに対して前記第２演算部における割り込みを発生させる値を書き込むことにより、前記第２演算部に対して前記共用記憶部上に前記データを書き込んだ旨を通知し、
前記第２演算部は、前記割込制御レジスタを介して割り込みが発生すると、前記第１演算部から通知された前記共用記憶部上におけるアドレスから前記データを読み取る
ことを特徴とする請求項３記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置に関する。
【背景技術】
【０００２】
自動車に搭載されている電子制御装置は、近年急速に高性能化が進んだ結果、処理負荷分散を目的としたマルチコアマイコンを搭載することが一般的となっている。一方で、制御システムの複雑化が進み、予期せぬ誤動作が生じることが懸念されている。このため、安全装置やフェールセーフ機能の設置が自動車用機能安全規格（ＩＳＯ２６２６２）によって規定されている。
【０００３】
同規格においては、同一制御装置上のソフトウェア部品間の独立性を高め、故障伝播を防ぐ仕組みが求められている。例えば下記特許文献１は、ハードウェア資源であるＭＰＵ（Ｍｅｍｏｒｙ  Ｐｒｏｔｅｃｔｉｏｎ  Ｕｎｉｔ）やＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）が有するメモリ保護機能を用いることにより、ソフトウェアのメモリアクセス先を保護するリソース・パーティショニング手法を提案し、これにより故障伝播を防ぐ仕組みを提供している。
【０００４】
一般に、ＭＰＵやＭＭＵを使用した場合、実行するソフトウェアの権限に応じて、ＭＰＵやＭＭＵが管理する権限モードを用いてソフトウェアがアクセス可能な範囲を切り替えることにより、リソース・パーティショニングを実現する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１４０４７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＰＵやＭＭＵの権限モードを切り替えるためには、一定のオーバヘッド時間が発生する。そのため、権限の異なるタスク群の実行順序がソフトウェア構成上で十分に整理されていない場合は、権限モードの切り替えが頻発してオーバヘッド時間が累積し、ＭＰＵやＭＭＵの処理能力を超えて制御周期内で処理が完了できない可能性がある。
【０００７】
また、ＭＰＵやＭＭＵはハードウェア資源であるので、管理できるメモリ領域数に制限がある。したがって、管理対象となるメモリや入出力レジスタの数にも制限がある。そうすると、ハードウェア構成やソフトウェア構成によっては、静的に記憶領域を割り付けると管理領域数が不足し、動的に記憶領域を割り付けると管理領域を切り替えるためのオーバヘッド時間が発生する。したがって、現実的にはメモリ管理を実現することが困難となる可能性がある。
【０００８】
本発明は、上記のような課題に鑑みてなされたものであり、ＭＰＵやＭＭＵなどのようなメモリ保護機能を有するハードウェア資源を用いずにメモリ保護を実現することができる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る電子制御装置は、各演算部が共用する共用記憶領域を介して、各演算部のみがアクセスすることができる専用記憶領域との間でデータを読み書きする。
【発明の効果】
【００１０】
本発明に係る電子制御装置によれば、ＭＰＵやＭＭＵのようなハードウェアを使用することなく、軽量なメモリ保護機能を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係る電子制御装置１００の構成を説明するブロック図である。
【図２】電子制御装置１００がコア３つを備える場合の構成例である。
【図３】電子制御装置１００がメモリ保護を実現しつつデータを格納する手順を説明する図である。
【図４】電子制御装置１００がメモリ保護を実現しつつデータを読み出す手順を説明する図である。
【図５】実施形態２において電子制御装置１００がメモリ保護を実現しつつデータを格納する手順を説明する図である。
【図６】実施形態２において電子制御装置１００がメモリ保護を実現しつつデータを読み出す手順を説明する図である。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施形態１に係る電子制御装置１００の構成を説明するブロック図である。電子制御装置１００は、ｎ個のプロセッサコア（以下単にコアと呼ぶ）を持つマルチコアマイコンとして構成されている。各コアはそれぞれ専用記憶領域を備え、自身が備える専用記憶領域に対してデータを読み書きすることができる。各コアは他のコアが備える専用記憶領域に対してアクセスすることができないように構成されている。電子制御装置１００はさらに、共有記憶領域１１０を備える。共有記憶領域１１０は、各コアがいずれもアクセスすることができる。
【００１３】
電子制御装置１００はさらに、排他制御レジスタ１２０を備える。排他制御レジスタ１２０は、各コアがアクセスしたときアトミック操作することができるレジスタである。すなわち、排他制御レジスタ１２０に対して最初に書き込みアクセスしたコアのみが、排他制御レジスタ１２０を占有することができる。例えば、あるコアが排他制御レジスタ１２０に対してデータを書き込みしている間は、他のコアが排他制御レジスタ１２０に対してデータを書き込むことはできない。データ読み取りについては、いずれかのコアがデータ書き込み中であっても許可するようにしてもよいし、禁止してもよい。
【００１４】
電子制御装置１００はさらに、コア間割り込みレジスタ１３０を備える。コア間割り込みレジスタ１３０は、対応するコアに対して割り込みを発生させることができる。例えばコア間割り込みレジスタ１３０の第１領域に対して所定のデータを書き込むと、第１コア１４０に対して割り込みを発生させることができる。コア毎にコア間割り込みレジスタ１３０を設けてもよいし、コア間割り込みレジスタ１３０を１つのみ設けてレジスタ上の各ビットが対応するコアに対して割り込みを発生させるように構成してもよい。
【００１５】
図２は、電子制御装置１００がコア３つを備える場合の構成例である。ここでは第１コア１４０がメインコアであり、第２コア１５０と第３コア１６０がサブコアであるものとする。以下では第１コア１４０が使用するデータを第２コア専用記憶領域１５１や第３コア専用記憶領域１６１に対して読み書きすることを考える。
【００１６】
第２コア専用記憶領域１５１内にデータ保存領域１５２を設け、第３コア専用記憶領域１６１内にデータ保存領域１６２を設ける。これらデータ保存領域は、格納アドレスによって一意に特定できるものとする。さらに共有記憶領域１１０内にデータ保存領域１１１を設け、同様に格納アドレスによって領域を一意に特定できるようにしておく。これら保存領域のアドレスは、あらかじめ定めておいてもよいし、例えば第１コア１４０が任意で定めてもよい。
【００１７】
第１コア１４０が使用するデータを、データ保存領域１１１を経由して各コア専用保存領域に保存することを考える。最も単純には、第１コア１４０がデータ保存領域１１１にデータを保存し、他のコアがそのデータを読み出すことが考えられる。しかし各コアはそれぞれ独立して動作するので、いずれのコアを指定するかについての設計や、実行順序保証についての設計が難しくなる場合が多い。
【００１８】
そこで本発明は、専用記憶領域に対して他のコアがアクセスできないことを利用し、各コアが独立して動作している場合であっても、確実にメインコアのデータをサブコアの専用記憶領域に対して読み書きする構成例を提案する。
【００１９】
図３は、電子制御装置１００がメモリ保護を実現しつつデータを格納する手順を説明する図である。ここでは具体例として、第１コア１４０が使用するデータを、データ保存領域１１１の２番目の記憶領域を介して、データ保存領域１５２の３番目の記憶領域に保存する方法について説明する。
【００２０】
（図３：ステップＳ１００）
第１コア１４０は、保存したいデータをデータ保存領域１１１のアドレス２に対して格納する。
【００２１】
（図３：ステップＳ１０１）
第１コア１４０は、排他制御レジスタ１２０内のあらかじめ定めておいたレジスタ１２１〜１２４に対してデータ保存命令を書き込む。レジスタ１２１はデータ保存領域１１１がデータを格納するアドレスを記録するためのものであり、今回の例では「２」を格納する。レジスタ１２２は命令を実施するコアを指定するためのものであり、今回の例では「２」を格納する。レジスタ１２３はデータ保存領域１５２がデータを格納するアドレスを指定するためのものであり、今回の例では「３」を格納する。レジスタ１２４はデータ保存／データ読出のいずれを実施するかを指定するためのものであり、今回の例では「データ保存」を格納する。
【００２２】
（図３：ステップＳ１０２）
第２コア１５０は、ポーリングを実施して定期的に排他制御レジスタ１２０を参照することにより、第２コア１５０に対してデータ保存／データ読み出しを実施するよう指示する命令が発行されているか否かを確認する。今回の例において第２コア１５０は、データ保存領域１１１のアドレス２に格納されているデータをデータ保存領域１５２のアドレス３に対して保存するよう指示する命令が、第１コア１４０から発行されているものと解釈する。
【００２３】
（図３：ステップＳ１０３）
第３コア１６０は、ポーリングを実施して定期的に排他制御レジスタ１２０を参照することにより、第３コア１６０に対してデータ保存／データ読み出しを実施するよう指示する命令が発行されているか否かを確認する。今回の例では第２コア１５０が指定されているので、第３コア１６０は第１コア１４０からの命令を実施せずポーリングを続ける。
【００２４】
（図３：ステップＳ１０４）
第２コア１５０は、ステップＳ１０２における解釈にしたがって、データ保存領域１１１のアドレス２に格納されているデータを、データ保存領域１５２のアドレス３に対して保存する。本実施形態１においては、排他制御レジスタ１２０が全て「０」にセットされている場合、第１コア１４０は命令を発行していないことを意味するものとする。そこで第２コア１５０は、データ保存が完了すると排他制御レジスタ１２０の内容をすべて「０」にセットする。ソフトウェア起動時の初期化処理において、例えば第１コア１４０は排他制御レジスタ１２０を全て「０」にセットしておくことを前提とする。以上のステップＳ１００〜Ｓ１０４により、第１コア１４０が用いるデータを安全に第２コア専用記憶領域１５１へ保存することができる。
【００２５】
図４は、電子制御装置１００がメモリ保護を実現しつつデータを読み出す手順を説明する図である。ここでは具体例として、第１コア１４０が、データ保存領域１５２の３番目の記憶領域に保存されたデータを、データ保存領域１１１の２番目の記憶領域を介して読み出す方法について説明する。
【００２６】
（図４：ステップＳ２００）
第１コア１４０は、排他制御レジスタ１２０内のあらかじめ定めておいたレジスタ１２１〜１２４に対してデータ読出命令を書き込む。今回の例では、レジスタ１２１に「２」を、レジスタ１２２に「２」を、レジスタ１２３に「３」を、レジスタ１２４に「データ読出」を、それぞれ設定する。
【００２７】
（図４：ステップＳ２０１）
第２コア１５０は、ポーリングを実施して定期的に排他制御レジスタ１２０を参照することにより、第２コア１５０に対してデータ保存／データ読出を実施するよう指示する命令が発行されているか否かを確認する。今回の例において第２コア１５０は、データ保存領域１５２のアドレス３に格納されているデータをデータ保存領域１１１のアドレス２に対してコピーするよう指示する命令が、第１コア１４０から発行されているものと解釈する。
【００２８】
（図４：ステップＳ２０２）
第３コア１６０は、ポーリングを実施して定期的に排他制御レジスタ１２０を参照することにより、第３コア１６０に対してデータ保存／データ読み出しを実施するよう指示する命令が発行されているか否かを確認する。今回の例では第２コア１５０が指定されているので、第３コア１６０は第１コア１４０からの命令を実施せずポーリングを続ける。
【００２９】
（図４：ステップＳ２０３）
第２コア１５０は、ステップＳ２０１における解釈にしたがって、データ保存領域１５２のアドレス３に格納されているデータを、データ保存領域１１１のアドレス２に対してコピーする。第２コア１５０は、コピーが完了すると排他制御レジスタ１２０の内容をすべて「０」にセットする。
【００３０】
（図４：ステップＳ２０４）
第１コア１４０は、排他制御レジスタ１２０の内容がすべて「０」になっていることを確認した後、データ保存領域１１１のアドレス２に格納されているデータを読み出す。以上のステップＳ２００〜Ｓ２０４により、第１コア１４０は安全にデータを読み出すことができる。
【００３１】
＜実施の形態１：まとめ＞
本実施形態１に係る電子制御装置１００は、共有記憶領域１１０を介して、コア専用記憶領域に対してデータを読み書きする。コア専用記憶領域に対してデータを格納することにより、複数のコアからのアクセスが競合することなく、データを安全に読み書きすることができる。
【００３２】
本実施形態１に係る電子制御装置１００は、排他制御レジスタ１２０を用いて、データ保存命令／データ読出命令や格納先アドレスについてコア間で通知する。これにより、複数のコアが同一の命令を実行してデータが破壊される危険がなくなり、データ保存／データ読出を安全に実施することができる。
【００３３】
本実施形態１に係る電子制御装置１００によれば、メインコアが故障し、不正なデータ読出やデータ書込が起こりうる状況になったとしても、重要データを各サブコアの専用記憶領域に保存しておくことにより、他サブコアからのアクセスをハードウェア的に遮断することができる。その結果、ＭＰＵなどのメモリ保護のためのハードウェア資源を使用しなくとも、重要データを保護することができる軽量なメモリ保護機能を構成できる。
【００３４】
＜実施の形態２＞
実施形態１では、各サブコアが排他制御レジスタ１２０をポーリングすることにより、第１コア１４０から命令が発行されているか否かを確認する動作例を説明した。本発明の実施形態２では、ポーリングに代えてコア間割り込みレジスタ１３０を利用することにより実施形態１と同様の動作を実現する方法について説明する。
【００３５】
図５は、本実施形態２において電子制御装置１００がメモリ保護を実現しつつデータを格納する手順を説明する図である。ここでは具体例として、第１コア１４０が使用するデータを、データ保存領域１１１の２番目の領域を介して、データ保存領域１６２の１番目の記憶領域に保存する方法について説明する。
【００３６】
図５において、レジスタ１３１は第１コア１４０に対して割り込みを要求するコア間割り込みレジスタであり、レジスタ１３２は第２コア１５０に対して割り込みを要求するコア間割り込みレジスタであり、レジスタ１３３は第３コア１６０に対して割り込みを要求するコア間割り込みレジスタである。
【００３７】
（図５：ステップＳ３００）
第１コア１４０は、保存したいデータをデータ保存領域１１１のアドレス２に対して格納する。
【００３８】
（図５：ステップＳ３０１）
第１コア１４０は、排他制御レジスタ１２０内のあらかじめ定めておいたレジスタ１２１〜１２４に対してデータ保存命令を書き込む。今回の例では、レジスタ１２１に「２」を、レジスタ１２２に「３」を、レジスタ１２３に「１」を、レジスタ１２４に「データ保存」を、それぞれ設定する。
【００３９】
（図５：ステップＳ３０２）
第１コア１４０は、ステップＳ３０１においてレジスタ１２２により指定したコアに対して、コア間割り込みレジスタ１３０を用いて割り込みを発生させる。今回の例では第３コア１６０に対して割り込みを発生させたいので、コア間割り込みレジスタ１３３に対して所定のデータを書き込むことにより、割り込みを発生させる。
【００４０】
（図５：ステップＳ３０３）
第３コア１６０は、ステップＳ３０２の割り込み要求にしたがって割り込み処理を実施し、排他制御レジスタ１２０を参照する。第３コア１６０は、データ保存領域１１１のアドレス２に格納されているデータをデータ保存領域１６２のアドレス１に対して保存するよう指示する命令が、第１コア１４０から発行されているものと解釈する。
【００４１】
（図５：ステップＳ３０４）
第３コア１６０は、ステップＳ３０３における解釈にしたがって、データ保存領域１１１のアドレス２に格納されているデータを、データ保存領域１６２のアドレス１に対して格納する。
【００４２】
（図５：ステップ３０５）
第３コア１６０は、第１コア１４０に対してコア間割り込みレジスタ１３１を用いて割り込み要求を発行することにより、データ保存が完了した旨を第１コア１４０に対して通知する。
【００４３】
（図５：ステップＳ３０６）
第１コア１４０は、ステップＳ３０５の割り込み要求にしたがって、割り込み処理を実施する（すなわちデータ保存処理を完了する）。以上のステップＳ３００〜Ｓ３０６により、第１コア１４０が用いるデータを安全に第３コア専用記憶領域１６１へ保存することができる。
【００４４】
図６は、本実施形態２において電子制御装置１００がメモリ保護を実現しつつデータを読み出す手順を説明する図である。ここでは具体例として、第１コア１４０が、データ保存領域１６２の１番目の記憶領域に保存されたデータを、データ保存領域１１１の２番目の記憶領域を介して読み出す方法について説明する。
【００４５】
（図６：ステップＳ４００）
第１コア１４０は、排他制御レジスタ１２０内のあらかじめ定めておいたレジスタ１２１〜１２４に対してデータ読出命令を書き込む。今回の例では、レジスタ１２１に「２」を、レジスタ１２２に「３」を、レジスタ１２３に「１」を、レジスタ１２４に「データ読出」を、それぞれ設定する。
【００４６】
（図６：ステップＳ４０１）
第１コア１４０は、ステップＳ４０１においてレジスタ１２２により指定したコアに対して、コア間割り込みレジスタ１３０を用いて割り込みを発生させる。今回の例では第３コア１６０に対して割り込みを発生させたいので、コア間割り込みレジスタ１３３に対して所定のデータを書き込むことにより、割り込みを発生させる。
【００４７】
（図６：ステップＳ４０２）
第３コア１６０は、ステップＳ４０１の割り込み要求にしたがって割り込み処理を実施し、排他制御レジスタ１２０を参照する。第３コア１６０は、データ保存領域１６２のアドレス１に格納されているデータをデータ保存領域１１１のアドレス２に対してコピーするよう指示する命令が、第１コア１４０から発行されていると解釈する。
【００４８】
（図６：ステップＳ４０３）
第３コア１６０は、ステップＳ４０２における解釈にしたがって、データ保存領域１６２のアドレス１に格納されているデータを、データ保存領域１１１のアドレス２に対してコピーする。
【００４９】
（図６：ステップＳ４０４）
第３コア１６０は、第１コア１４０に対してコア間割り込みレジスタ１３１を用いて割り込み要求を発行することにより、データコピーが完了した旨を第１コア１４０に対して通知する。
【００５０】
（図６：ステップＳ４０５）
第１コア１４０は、ステップＳ４０４の割り込み要求にしたがって、割り込み処理（Ｓ４０６）を実施する。
【００５１】
（図６：ステップＳ４０６）
第１コア１４０は、ステップＳ４００において指定したデータ保存領域１１１のアドレス２よりデータを読み出す。以上のステップＳ４００〜Ｓ４０６により、第１コア１４０は安全にデータを読み出すことができる。
【００５２】
＜実施の形態２：まとめ＞
本実施形態２に係る電子制御装置１００は、コア間割り込みレジスタ１３０を用いて、データ保存命令／データ読出命令や格納先アドレスについてコア間で通知する。これにより、実施形態１と同様にデータ保存／データ読出を安全に実施することができる。また各コアは排他制御レジスタ１２０をポーリングする必要がなくなるので、処理負荷を抑えることができる。
【００５３】
＜本発明の変形例について＞
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
【００５４】
実施形態１〜２において、データ保存とデータ読出いずれも同じ方式を用いているが、実施形態１〜２それぞれの方式を組み合わせてもよい。例えば、データ保存については実施形態１記載のポーリングを用い、データ読出については実施形態２記載のコア間割り込みを用いることができる。ただし、実施形態２を単独で使用する場合は排他制御レジスタ１２０を「０」に設定することは不要であるが、実施形態１〜２を組み合わせる場合は例えばＳ３０５やＳ３０６などにおいて排他制御レジスタ１２０をすべて「０」に設定する必要がある。
【００５５】
実施形態１〜２において、ＭＰＵなどのハードウェア資源によるメモリ保護を併用してもよい。この場合は、データ保存領域１１１についてのみＭＰＵにより保護することにより、ハードウェア資源を少量用いるのみで安全に重要データを保存することができる。
【００５６】
実施形態１〜２において、各サブコアは上記動作に加えて、例えば専用記憶領域に保存したデータを多重化して保持したり、自身の専用記憶領域に対するメモリ診断を常に実施したりしてもよい。これにより、保存されたデータが揮発などにより破壊されていないことを保証できる。
【００５７】
実施形態１〜２において、第１コア１４０は専用記憶領域上のアドレスをレジスタ１２３によって指定しているが、いずれのデータが専用記憶領域上のいずれの領域に格納されているのかを特定することができれば、必ずしも専用記憶領域上のアドレスを指定する必要はない。例えばスタック構造を用いてデータを特定することもできるし、その他適当なメモリ構造を用いてデータを特定してもよい。
【００５８】
実施形態１〜２において、コア間でデータを安全に保存・読出する例を説明したが、例えばプロセッサなどのその他演算部の間において本発明と同様の手順を実施することもできる。
【符号の説明】
【００５９】
１００：電子制御装置、１１０：共用記憶領域、１２０：排他制御レジスタ、１３０：コア間割り込みレジスタ、１４０：第１コア、１４１：第１コア専用記憶領域、１５０：第２コア、１５１：第２コア専用記憶領域、１６０：第３コア、１６１：第３コア専用記憶領域。
【図１】
0006438381.tif 000002
【図２】
0006438381.tif 000003
【図３】
0006438381.tif 000004
【図４】
0006438381.tif 000005
【図５】
0006438381.tif 000006
【図６】
0006438381.tif 000007