(57)【特許請求の範囲】
【請求項１】
電子制御装置により電子制御されるシステムが、機能安全性規格ＩＳＯ２６２６２に規定された高次の安全度水準（ＡＳＩＬ）による機能安全が求められる場合に、その高次の安全度水準を、デコンポジションにより複数の低次の安全度水準に分解し、それら分解された低次の安全度水準による安全機構を実現するための電子制御装置（１０）であって、
当該電子制御装置は、第１ＣＰＵ（１１）と第２ＣＰＵ（２１）とを含む複数のＣＰＵを有するとともに、それら複数のＣＰＵによって共通使用されるメモリ（２６、２７）を有し、
前記第１ＣＰＵ及び第２ＣＰＵは、それぞれ、分解された低次の安全度水準による安全機構として、前記システムの制御機能（１３）が正しく実行されているかを監視する第１監視機能（１５、２２）、及び前記第１監視機能が正しく動作しているかを監視する第２監視機能（１６、２３）を実行し、
前記メモリ（２６、２７）は、前記第１ＣＰＵが各監視機能を実行するために使用する第１領域と、前記第２ＣＰＵが各監視機能を実行するために使用する、前記第１領域とは異なる第２領域とを有し、
前記第１ＣＰＵによる前記各監視機能の実行に伴う前記メモリの前記第２領域への干渉、及び前記第２ＣＰＵによる前記各監視機能の実行に伴う前記メモリの前記第１領域への干渉について、その防止と、干渉発生時の履歴の記録とのいずれか一方を行う干渉対策手段（２５）と、を備えることを特徴とする電子制御装置。
【請求項２】
前記干渉対策手段（２５）は、メモリプロテクションユニットを備え、当該メモリプロテクションユニットが、前記第１ＣＰＵによる前記各監視機能の実行に伴う前記メモリの第２領域へのアクセス、及び前記第２ＣＰＵによる前記各監視機能の実行に伴う前記メモリの第１領域へのアクセスを禁止することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記メモリ（２６、２７）は、前記第１ＣＰＵ及び第２ＣＰＵが各監視機能を実行するためのソフトウエアを格納するＲＯＭ（２７）と、各監視機能の実行時のワークメモリとしてのＲＡＭ（２６）を含み、当該ＲＯＭ及びＲＡＭに、それぞれ前記第１領域と第２領域とが設定され、
前記メモリプロテクションユニットは、前記第１ＣＰＵによる前記各監視機能の実行時には、前記ＲＯＭ及びＲＡＭの第２領域へのアクセスを禁止し、前記第２ＣＰＵによる前記各監視機能の実行時には、前記ＲＯＭ及びＲＡＭの第１領域へのアクセスを禁止することを特徴とする請求項２に記載の電子制御装置。
【請求項４】
前記システムの制御機能は、前記複数のＣＰＵのうちの少なくとも１つのＣＰＵによって実行され、当該ＣＰＵによる前記制御機能の実行時には、前記メモリプロテクションユニットが、前記メモリの第１領域及び第２領域へのアクセスを禁止することを特徴とする請求項２に記載の電子制御装置。
【請求項５】
前記メモリ（２６、２７）は、前記第１ＣＰＵ及び第２ＣＰＵが各監視機能を実行する際のワークメモリとしてのＲＡＭ（２６）を含み、当該ＲＡＭに、それぞれ前記第１領域と第２領域とが設定され、
前記干渉対策手段は、
前記第１ＣＰＵによる前記各監視機能の実行に伴い前記ＲＡＭの第１領域にデータが書き込まれるとき、及び前記第２ＣＰＵによる前記各監視機能の実行に伴い前記ＲＡＭの第２領域にデータが書き込まれるときに、複数箇所に同じデータを書き込む同一データ書込手段と、
前記複数箇所に書き込まれたデータの同一性を判定する判定手段と、を備え、
前記複数箇所に書き込まれたデータの同一性が失われた場合に、その同一性が失われたデータを、干渉の履歴として残すことを特徴とする請求項１に記載の電子制御装置。
【請求項６】
さらに、前記安全機構として、前記第１ＣＰＵの動作を監視する第１監視手段（１７）を備えることを特徴とする請求項１乃至５のいずれか１項に記載の電子制御装置。
【請求項７】
さらに、前記安全機構として、前記第２ＣＰＵの動作を監視する第２監視手段（２４）を備えることを特徴とする請求項１乃至６のいずれか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置に関する。
【背景技術】
【０００２】
自動車においては、ブレーキ、ステアリング、エンジンなど、多数の車載装置が、電子制御装置によって電子制御されるようになっている。さらに、今後、電気自動車やハイブリッド自動車の普及に伴い、モーター制御やバッテリー制御など、自動車における電子制御の対象が拡大されることが予想される。そのため、自動車を電子制御する際の安全性の確保を図るべく、自動車向けの機能安全性規格であるＩＳＯ２６２６２が制定された。
【０００３】
このＩＳＯ２６２６２では、電子制御されるシステムの機能が故障した時の危険な事象（ハザード）から、各システムを、危険レベル、発生頻度、制御可能性（回避の難易度）の３つのパラメータにより、ＡＳＩＬ（Automotive Safety Integrity Level）と呼ばれる指標を用いてランク付けする。ＡＳＩＬには、危険度の低い方から順に、ＱＭ（Quality Management）、Ａ、Ｂ、Ｃ、Ｄの５つのランクが定められている。システムの設計者は、システムがどのランクに相当するかを決定し、その決定したランクに応じた安全対策を施す必要がある。
【０００４】
例えば、あるシステムが、ＡＳＩＬが「Ｃ」にランク付された場合、特許文献１に示されるように、そのシステムを電子制御する電子制御装置を３つのレベルに分け、上位のレベルの動作を下位のレベルでモニタリングする構成を採用することが考えられる。この特許文献１の電子制御装置においては、第１のレベルが、システムの制御機能を担う。具体的には、例えば、この第１のレベルにおいて、内燃機関の燃料供給や点火時期調節を決定する。第２のレベルでは、第１のレベルの制御機能の正しい動作が、選択された入出力信号に基づいて検査される。第３のレベルでは、第２のレベルにおいて実行されたモニタリングの検査が行われる。具体的には、例えば、ＲＡＭテスト、ＲＯＭテスト、動作検査などが行われる。この第３のレベルでの動作検査のため、ウオッチドッグが設けられている。
【先行技術文献】
【特許文献】
【０００５】
特許第３９５７７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、システムがＡＳＩＬのあるランクにランク付けされた場合、電子制御装置において、そのランクに応じた安全対策を施すためのハードウエア及びソフトウエアの設計がなされる。従って、既存のシステムよりも上位のＡＳＩＬランクを持つシステムを新たに統合しようとした場合や、システムを搭載する車両の違いなどから、そのシステムのＡＳＩＬランクが上位ランクに変更される場合などは、電子制御装置のハードウエア及びソフトウエアを、その上位のＡＳＩＬランクによる安全要求を満足するように再設計する必要が生じ、開発コストが増大する虞がある。
【０００７】
本発明は、上述した点に鑑みてなされたものであり、大幅な設計変更を行わずとも、より上位のＡＳＩＬのランクによる安全要求を満足することが可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明による電子制御装置（１０）は、当該電子制御装置により電子制御されるシステムが、機能安全性規格ＩＳＯ２６２６２に規定された高次の安全度水準（ＡＳＩＬ）による機能安全が求められる場合に、その高次の安全度水準を、デコンポジションにより複数の低次の安全度水準に分解し、それら分解された低次の安全度水準による安全機構を実現するためのものであって、
当該電子制御装置は、第１ＣＰＵ（１１）と第２ＣＰＵ（２１）とを含む複数のＣＰＵを有するとともに、それら複数のＣＰＵによって共通使用されるメモリ（２６、２７）を有し、
第１ＣＰＵ及び第２ＣＰＵは、それぞれ、分解された低次の安全度水準による安全機構として、システムの制御機能（１３）が正しく実行されているかを監視する第１監視機能（１５、２２）、及び第１監視機能が正しく動作しているかを監視する第２監視機能（１６、２３）を実行し、
メモリ（２６、２７）は、第１ＣＰＵが各監視機能を実行するために使用する第１領域と、第２ＣＰＵが各監視機能を実行するために使用する、第１領域とは異なる第２領域とを有し、
第１ＣＰＵによる各監視機能の実行に伴うメモリの第２領域への干渉、及び第２ＣＰＵによる各監視機能の実行に伴うメモリの第１領域への干渉について、その防止と、干渉発生時の履歴の記録とのいずれか一方を行う干渉対策手段（２５）と、を備えることを特徴とする。
【０００９】
上述したように、本発明では、まず、ＩＳＯ２６２６２におけるデコンポジションの概念を利用して、高次の安全度水準を、複数の低次の安全度水準に分解する。例えば、ＡＳＩＬ‐Ｄは、ＡＳＩＬ‐ＣとＡＳＩＬ‐Ａとに分解することができ、ＡＳＩＬ‐Ｃは、ＡＳＩＬ‐ＢとＡＳＩＬ‐Ａとに分解することができる。このように、デコンポジションを利用することにより、安全度水準のランクを下げることができる。そのため、高次の安全度水準による機能安全が求められるシステムに対する安全機構を構築する際に、それよりも低次の安全度水準による安全要求を満足するように設計されたハードウエアやソフトウエアの再利用可能性を高めることができる。
【００１０】
ただし、デコンポジションを行う場合、分解後のエレメントの独立性を確保することが求められる。この場合、例えば、分解後の低次の安全度水準による安全機構を、それぞれ独立した別個の電子制御装置において構築することが考えられる。しかしながら、このように別個の電子制御装置を用いるとすると、コストや体格の増加を招くという問題がある。
【００１１】
そこで、本発明では、第１ＣＰＵと第２ＣＰＵとを含む複数のＣＰＵを有する電子制御装置を用いることとした。第１ＣＰＵ及び第２ＣＰＵは、それぞれ、分解された複数の低次の安全度水準による安全機構として、システムの制御機能が正しく実行されているかを監視する第１監視機能、及び第１監視機能が正しく動作しているかを監視する第２監視機能を実行するように構成される。これにより、分解された複数の低次の安全度水準による安全機構として、一応の独立性を確保することができる。
【００１２】
しかし、１個の電子制御装置の場合、複数のＣＰＵを備えていても、メモリは、それらの複数のＣＰＵにより共通使用されることになる。従って、万一、一方の安全機構による監視機能の実行により、他方の安全機構による監視機能の実行に必要なデータが読み出されたり、書き換えられたりすると、監視機能が正常に働かなくなる虞がある。そこで、本発明では、第１ＣＰＵによる各監視機能の実行に伴うメモリの第２領域への干渉、及び第２ＣＰＵによる各監視機能の実行に伴うメモリの第１領域への干渉について、その防止と、干渉発生時の履歴の記録とのいずれか一方を行う干渉対策手段を設けた。これにより、上述したような事態の発生を防止して、確実に各監視機能を正しく働かせることが可能となる。もしくは、干渉が発生した場合に、その履歴を残すことができるので、例えばシステムの停止等の安全対策を施すことが可能になる。
【００１３】
上記括弧内の参照番号は、本発明の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら本発明の範囲を制限することを意図したものではない。
【００１４】
また、上述した特徴以外の、特許請求の範囲の各請求項に記載した技術的特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
【図面の簡単な説明】
【００１５】
【図１】実施形態による電子制御装置の各ＣＰＵが奏する機能をブロックにより表したブロック構成図である。
【図２】電子制御装置の主要な構成を示した構成図である。
【図３】第１の変形例による電子制御装置の各ＣＰＵが奏する機能をブロックにより表したブロック構成図である。
【図４】第２の変形例による電子制御装置の各ＣＰＵが奏する機能をブロックにより表したブロック構成図である。
【図５】第３の変形例による電子制御装置の各ＣＰＵが奏する機能をブロックにより表したブロック構成図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態による電子制御装置に関して、図面を参照しつつ説明する。なお、以下の説明において、共通する構成には、同じ参照番号を付与することにより、説明を省略する場合がある。
【００１７】
図１は、電子制御装置（マイコン）１０の各ＣＰＵ１１、２１が奏する機能をブロックにより表したブロック図である。また、図２は、マイコン１０の主要な構成を示した構成図である。
【００１８】
本実施形態に係るマイコン１０は、ブレーキ、ステアリング、あるいはエンジンなどの車載装置を電子制御するためのものである。例えば、マイコン１０がブレーキ装置を電子制御する場合には、制動時のロックや加速時のスリップが発生しないように、ブレーキ装置により各車輪に印加されるブレーキ圧力を制御する。マイコン１０がパワーステアリング装置を電子制御する場合には、適切な補助操舵トルクがステアリング軸に作用するようにパワーステアリング装置を制御する。また、マイコン１０がエンジンを電子制御する場合には、車両の運転状態に基づいて、適切に燃料噴射や点火が行われるように、燃料噴射弁や点火コイルを制御する。なお、電子制御装置は、その他の車載装置を電子制御するものであっても良い。
【００１９】
このような、車載装置を電子的に制御するシステムは、ＩＳＯ２６２６２として制定された機能安全性規格を満たすことが求められる。この際、例えば、既存のシステムのＡＳＩＬランクがＡＳＩＬ−Ｃであり、新たにその既存システムに統合されるシステムのＡＳＩＬランクが、それよりも上位のＡＳＩＬ‐Ｄである場合、電子制御装置のハードウエア及びソフトウエアを、その上位のＡＳＩＬランクによる安全要求を満足するように再設計する必要が生じる。また、既存システムのＡＳＩＬランクがＡＳＩＬ−Ｃであったが、適用される車種の相違などにより、ＡＳＩＬランクがＡＳＩＬ−Ｄに変更されるような場合も同様に、電子制御装置のハードウエア及びソフトウエアを再設計しなければならない。しかしながら、電子制御装置のハードウエア及びソフトウエアを全面的に再設計した場合、多大な労力が必要となり、開発コストが増大してしまう。
【００２０】
そこで、本実施形態は、電子制御装置のハードウエア及びソフトウエアに関して全面的な再設計を行わずとも、より上位のＡＳＩＬのランクによる安全要求を満足することを可能としたものである。
【００２１】
そのために、本実施形態では、電子制御装置として、図１に示すように、第１ＣＰＵ１１及び第２ＣＰＵ２１を含む複数のＣＰＵを含む電子制御装置を用いる。なお、図１には、２個のＣＰＵしか図示していないが、ＣＰＵの数は３個以上であっても良い。
【００２２】
そして、ＩＳＯ２６２６２におけるデコンポジションの概念を利用して、高次の安全度水準を、複数の低次の安全度水準に分解し、その分解された複数の低次の安全度水準による安全機構を第１ＣＰＵ１１及び第２ＣＰＵ２１にそれぞれ実装する。図１には、ＡＳＩＬ‐Ｄを、ＡＳＩＬ‐Ｃ（Ｄ）とＡＳＩＬ‐Ａ（Ｄ）とに分解し、第１ＣＰＵ１１にＡＳＩＬ‐Ｃ（Ｄ）の安全機構を実装し、第２ＣＰＵ２１にＡＳＩＬ‐Ａ（Ｄ）の安全機構を実装した例を示している。
【００２３】
このように、デコンポジションを利用することにより、安全度水準のランクを下げることができる。そのため、高次の安全度水準による機能安全が求められるシステムに対する安全機構を構築する際に、それよりも低次の安全度水準による安全要求を満足するように設計されたハードウエアやソフトウエアの再利用可能性を高めることができる。
【００２４】
以下、図１に示す例について詳細に説明することにより、本実施形態に係る電子制御装置のさらなる技術的特徴について明らかにする。
【００２５】
図１に示すように、第１ＣＰＵ１１は、３レベル構造を有している。第１ＣＰＵ１１の第１のレベルには、第１機能１２及び第２機能１３が配置されている。例えば、第１機能１２は、既存システムを制御するための制御機能であり、第２機能１３は、その既存システムに統合される新たなシステムを制御するための制御機能である。そして、第１機能１２に対するＡＳＩＬランクはＡＳＩＬ‐Ｃであり、第２機能に対するＡＳＩＬランクはＡＳＩＬ‐Ｄである。
【００２６】
これら第１機能１２及び第２機能１３を実行するためのプログラムが、図２に示すＲＯＭ２７の所定領域に格納されている。第１ＣＰＵ１１が、そのプログラムを読み出して処理することにより、第１機能１２及び第２機能１３の各機能が実行される。その際、第１ＣＰＵ１１は、図２に示すＲＡＭ２６の所定領域をワークメモリとして、データの書き込みや読み出しを行う。
【００２７】
第１ＣＰＵ１１の第２のレベルには、図１に示すように、第１監視機能１４と第２監視機能１５とが配置されている。第１監視機能１４は、ＡＳＩＬ‐Ｃの安全度水準を求められる第１機能１２が、正しく動作しているかを監視するためのものである。また、第２監視機能１５は、第２機能１３に対して要求される安全度水準であるＡＳＩＬ‐ＤがＡＳＩＬ‐Ｃ（Ｄ）とＡＳＩＬ‐Ａ（Ｄ）とに分解された際の一方の安全度水準であるＡＳＩＬ‐Ｃ（Ｄ）に従い、第２機能１３が正しく動作しているかを監視するためのものである。これら第１監視機能１４及び第２監視機能１５も、第１機能１２及び第２機能１３と同様に、第１ＣＰＵ１１にて実行可能なプログラムにより構成される。第１監視機能１４及び第２監視機能１５を実行するためのプログラムは、ＲＯＭ２７における、上記第１機能１２及び第２機能１３のプログラムの格納領域とは別の領域に格納されている。第１ＣＰＵ１１が、第１監視機能１４及び第２監視機能１５のプログラムを実行する際には、図２に示すＲＡＭ２６の、第１機能１２及び第２機能１３を実行するための領域とは異なる所定領域をワークメモリとして、データの書き込みや読み出しを行う。
【００２８】
第１監視機能１４及び第２監視機能１５を実行するためのプログラムの具体的な処理内容としては、例えば、第１機能１２及び第２機能１３と同じセンサ信号を入力して、第１機能１２及び第２機能１３と同様の演算処理を行って監視用制御目標値を算出する。そして、算出した監視用制御目標値を、第１機能１２及び第２機能１３が算出した制御目標値とそれぞれ比較する。この比較において、第１監視機能１４及び第２監視機能１５は、監視用制御目標値と、第１機能１２及び第２機能１３が算出した制御目標値とが一致しているかそれとも相違しているかにより、第１機能１２及び第２機能１３が正常に動作しているか否かを判定する。すなわち、監視用制御目標値と制御目標値とが一致していれば、第１機能１２及び第２機能１３は、正しく動作していると判定し、相違していれば、正しく動作していいないと判定する。第１監視機能１４及び第２監視機能１５は、第１機能１２及び第２機能１３が正しく動作していないと判定した場合、例えば、図示しない駆動回路に停止信号を出力して、その制御目標値に基づく制御対象装置への駆動信号の出力を停止させる。
【００２９】
第１ＣＰＵ１１の第３のレベルには、図１に示すように、第３監視機能１６が配置されている。第３監視機能１６は、第１監視機能１４及び第２監視機能１５が、それぞれ、正しく動作しているか否かを監視するためのものである。この第３監視機能１６も、第１機能１２及び第２機能１３や第１監視機能１４及び第２監視機能１５と同様に、第１ＣＰＵ１１にて実行可能なプログラムにより構成される。第３監視機能１６をなすプログラムは、ＲＯＭ２７における、第１機能１２及び第２機能１３や第１監視機能１４及び第２監視機能１５のプログラムの格納領域とは別の領域に格納されている。第１ＣＰＵ１１が、第３監視機能１６のプログラムを実行する際には、ＲＡＭ２６の、第１機能１２、第２機能１３、第１監視機能１４、及び第２監視機能１５を実行するための領域とは異なる所定領域をワークメモリとして、データの書き込みや読み出しを行う。
【００３０】
例えば、第３監視機能１６は、第１監視機能１４及び第２監視機能１５をなすプログラムが、第１ＣＰＵ１１において正しい手順で実行されているかを、第１監視機能１４及び第２監視機能１５からチェックポイントごとに出力される信号に基づいて判定する。あるいは、第３監視機能１６は、良く知られているウオッチドックタイマと同様に、第１監視機能１４及び第２監視機能１５から定期的に信号が出力されているか否かにより、第１監視機能１４及び第２監視機能１５をなすプログラムが正常に実行されているか否かを判定するようにしても良い。さらに、第１監視機能１４及び第２監視機能１５によって使用される領域のＲＯＭ値やＲＡＭ値に基づいて、第１監視機能１４及び第２監視機能１５が、それぞれ、正しく動作しているか否かを判定しても良い。
【００３１】
第３監視機能１６が、第１監視機能１４及び第２監視機能１５の異常を検出した場合には、例えば、第１監視機能１４及び第２監視機能１５をリセットしたり、上述した駆動回路に停止信号を出力したりする。
【００３２】
監視ＩＣ１７は、第３監視機能１６の監視を通じて、第１ＣＰＵ１１が正しく動作しているか、異常が生じているかを判別し、異常が生じている場合には、第１ＣＰＵ１１をリセットするものである。第１ＣＰＵ１１をリセットする際には、監視ＩＣ１７が、同時に、上述した駆動回路に停止信号を出力することが好ましい。
【００３３】
例えば、第１ＣＰＵ１１が第３監視機能１６のプログラムを正しく実行している場合に、第１ＣＰＵ１１から監視ＩＣ１７に、所定の順序で変化する信号が出力されるように構成する。このように構成すれば、監視ＩＣ１７は、第１ＣＰＵ１１から出力される信号が所定の順序で変化している場合、第１ＣＰＵ１１が、第３監視機能１６のプログラムを正しく実行していると判定することができる。一方、第１ＣＰＵ１１から出力される信号が所定の順序で変化していない場合、監視ＩＣ１７は、第１ＣＰＵ１１が第３監視機能１６のプログラムを正しく実行しておらず、第１ＣＰＵ１１に異常が生じた旨を判定することができる。
【００３４】
次に、第２ＣＰＵ２１について説明する。第２ＣＰＵ２１には、分解された安全度水準の内、ＡＳＩＬ‐Ａ（Ｄ）による安全機構が実装される。この第２ＣＰＵ２１は、２レベル構造を有している。第２ＣＰＵ２１の第１のレベルには、図１に示すように、第４監視機能２２が配置されている。第４監視機能２２は、分解された際の一方の安全度水準であるＡＳＩＬ‐Ａ（Ｄ）に従い、第２機能１３が正しく動作しているかを監視するためのものである。この第４監視機能２２も、第１監視機能１４及び第２監視機能１５と同様に、第２ＣＰＵ２１にて実行可能なプログラムにより構成される。第４監視機能２２を実行するためのプログラムは、ＲＯＭ２７における、他の制御機能や監視機能のプログラムの格納領域とは別の領域に格納されている。さらに、第２ＣＰＵ２１が、第４監視機能２２のプログラムを実行する際には、ＲＡＭ２６の、他の制御機能や監視機能を実行するための領域とは異なる所定領域をワークメモリとして、データの書き込みや読み出しを行う。
【００３５】
第４監視機能２２の具体例としては、第１監視機能１４及び第２監視機能１５と同様に、第２機能１３と同じセンサ信号を入力して監視用制御目標値を算出し、第２機能１３が算出した制御目標値と比較するように構成することができる。ただし、第４監視機能２２には、第２監視機能１５ほどの安全度水準は求められないので、第４監視機能２２は、例えば、第２監視機能１５よりも簡略化した演算処理により監視用制御目標値を算出しても良い。なお、このように演算処理を簡略化した場合には、制御目標値と監視用制御目標値とを比較する際に、その簡略化による誤差分を考慮することが必要となる。すなわち、制御目標値と監視用制御目標値とが相違していても、その差異が誤差範囲内に収まっていれば、第４監視機能２２は、第２機能１３が正常に動作していると判定する。
【００３６】
第２ＣＰＵ２１の第２のレベルには、図１に示すように、第５監視機能２３が配置されている。第５監視機能２３は、第４監視機能２２が、正しく動作しているか否かを監視するためのものである。この第５監視機能２３も、第４監視機能２２と同様に、第２ＣＰＵ２１にて実行可能なプログラムにより構成される。第５監視機能２３をなすプログラムは、ＲＯＭ２７における、他の制御機能や監視機能のプログラムの格納領域とは別の領域に格納されている。第２ＣＰＵ２１が、第５監視機能２３のプログラムを実行する際には、ＲＡＭ２６の、他の制御機能や監視機能を実行するための領域とは異なる所定領域をワークメモリとして、データの書き込みや読み出しを行う。なお、第５監視機能２３において第４監視機能２２が正しく動作しているかを判定する手法は、前述した第３監視機能１６と同様であるため、説明を省略する。
【００３７】
ウオッチドッグタイマ（ＷＤＴ）２４は、第５監視機能２３の監視を通じて、第２ＣＰＵ２１が正しく動作しているか、異常が生じているかを判別し、異常が生じている場合には、第２ＣＰＵ２１をリセットするものである。つまり、第２ＣＰＵ２１が第５監視機能２３のプログラムを正しく実行している場合には、第２ＣＰＵ２１からＷＤＴ２４に、所定の時間間隔で、ウオッチドッグパルスが出力される。従って、ＷＤＴ２４は、第２ＣＰＵ２１から所定の時間間隔でウオッチドッグパルスが出力されていれば、第２ＣＰＵ２１が、第５監視機能２３のプログラムを正しく実行していると判定することができる。一方、第２ＣＰＵ２１から所定の時間間隔でウオッチドッグパルスが出力されない場合、ＷＤＴ２４は、第２ＣＰＵ２１が第５監視機能２３のプログラムを正しく実行しておらず、第２ＣＰＵ２１に異常が生じた旨を判定することができる。
【００３８】
ここで、デコンポジションの概念を利用して、高次の安全度水準を、複数の低次の安全度水準に分解する場合、分解後のエレメントの独立性を確保することが求められる。この点、本実施形態では、分解後の低次の安全度水準による安全機構を、それぞれ独立した別個の第１ＣＰＵ１１と第２ＣＰＵ２１とにそれぞれ実装しているので、一応の独立性を確保することができる。
【００３９】
しかしながら、１つのマイコン１０に、第１ＣＰＵ１１、第２ＣＰＵ２１のように複数のＣＰＵが設けられる場合、これら複数のＣＰＵ（第１ＣＰＵ１１と第２ＣＰＵ２１）は、図２に示すように、メモリとしてのＲＡＭ２６、ＲＯＭ２７を共通使用することになる。従って、万一、一方の安全機構による監視機能の実行時に、他方の安全機構による監視機能の実行に必要なデータが読み出されたり書き換えられたりして干渉が発生すると、監視機能が正常に働かなくなる虞がある。そこで、本実施形態では、図２に示すように、各ＣＰＵ１１、２１とＲＡＭ２６、ＲＯＭ２７との間にメモリプロテクションユニット２５を設け、各監視機能のメモリ領域を干渉から保護することとした。
【００４０】
例えば、ＭＰＵ２５は、図１に一点鎖線で示す範囲を、干渉から保護する範囲として設定する。つまり、ＭＰＵ２５は、第１監視機能１４以外の制御機能や監視機能が、第１監視機能１４のプログラムを格納しているＲＯＭ領域からの読み出し、及び第１監視機能１４のワークエリアとして定められているＲＡＭ領域におけるデータの書き込みや読み出しを禁止する。同様に、ＭＰＵ２５は、第２監視機能１５〜第５監視機能２３に関しても、それぞれの監視機能の実行のために確保されているＲＡＭ２６及びＲＯＭ２７のメモリ領域への、他の制御機能や監視機能の実行に伴うアクセスを禁止する。これにより、干渉の発生を防止して、確実に各監視機能を正しく働かせることが可能となる。
【００４１】
この結果、第１ＣＰＵ１１による第２監視機能１５や第３監視機能１６の実行に伴って、第４監視機能２２及び第５監視機能２３の実行のために確保されているメモリ領域への干渉が防止できる。また、第２ＣＰＵ２１による第４監視機能２２や第５監視機能２３の実行に伴って、第２監視機能１５及び第３監視機能１６の実行のために確保されているメモリ領域への干渉も防止できる。従って、分解後の低次の安全度水準による安全機構としての監視機能の相互干渉を確実に防止することができ、互いの独立性を確保することが可能になる。
【００４２】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態になんら制限されるものではなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００４３】
（変形例１）
例えば、上述した実施形態では、ＭＰＵ２５を用いて、各監視機能に関し、それぞれの監視機能の実行のために確保されているＲＡＭ２６及びＲＯＭ２７のメモリ領域への、他の制御機能や監視機能の実行に伴うアクセスを禁止した。しかしながら、ＭＰＵ２５を用いることなく、干渉に対する対策を取ることも可能である。例えば、各監視機能のプログラムに、設定されたＲＡＭ領域にデータを書き込むときには、複数箇所に同じデータを書き込む機能を織り込む（同一データ書込手段）。さらに、そのプログラムの一部に、その複数箇所のデータの同一性を判定する機能（判定手段）、データの同一性が失われたと判定された場合に、該当するデータの書き換えを禁止して、干渉の履歴を残す機能、及び干渉の履歴に応じて、上位機能のリセットや、駆動回路への停止信号の出力などを行うフェールセーフ機能を織り込む。このようにしても、各監視機能に関する干渉に対する対策を取ることができる。
【００４４】
（変形例２）
上述した実施形態は、マイコン１０が内蔵するＷＤＴ２４を利用して、第２ＣＰＵ２１が正常に動作しているか否かを検出するものであった。共通原因にて、第２ＣＰＵ２１とＷＤＴ２４とが同時に故障する可能性が非常に低い場合には、上述した実施形態のように、マイコン１０が内蔵するＷＤＴ２４を用いることも可能である。ただし、共通原因故障の発生をより確実に回避することを考えた場合には、図３に示すように、マイコン１０の外部にＷＤＴ２４を別途設置することが好ましい。
【００４５】
（変形例３）
上述した実施形態では、第１ＣＰＵ１１が、既存システムを制御するための制御機能である第１機能１２、及びその既存システムに統合される新たなシステムを制御するための制御機能である第２機能１３を実行するとともに、それらの安全機構としての各監視機能を実行するものであった。
【００４６】
しかしながら、図４に示すように、第１ＣＰＵ１１には、高次の安全度水準（例えば、ＡＳＩＬ‐Ｄ）による安全対策が求められる第２機能１３と、分解された安全度水準の内の一方（例えば、ＡＳＩＬ‐Ｃ（Ｄ））による安全機構としての各監視機能とだけが実装されても良い。さらに、図５に示すように、図４の構成を前提として、マイコン１０の外部にＷＤＴ２４を別途設置するようにしても良い。
【００４７】
さらに、第２機能１３は、第１ＣＰＵ１１及び第２ＣＰＵ２１とは別のＣＰＵにて実行するように構成し、第１ＣＰＵ１１及び第２ＣＰＵ２１には、安全機構としての各監視機能だけを実装するようにしても良い。
【００４８】
（変形例４）
また、上述した実施形態では、高次の安全度水準として、ＡＳＩＬ‐Ｄを、ＡＳＩＬ‐Ｃ（Ｄ）とＡＳＩＬ‐Ａ（Ｄ）とに分解した場合の例を示したが、例えばＡＳＩＬ‐Ｃを、ＡＳＩＬ‐Ｂ（Ｃ）とＡＳＩＬ‐Ａ（Ｃ）とに分解する場合などにも本発明を適用することができる。
【符号の説明】
【００４９】
１０  マイコン
１１  第１ＣＰＵ
１７  監視ＩＣ
２１  第２ＣＰＵ
２４  ウオッチドッグタイマ（ＷＤＴ）
【図１】
0005867495.tif 000002
【図２】
0005867495.tif 000003
【図３】
0005867495.tif 000004
【図４】
0005867495.tif 000005
【図５】
0005867495.tif 000006