(57)【特許請求の範囲】
【請求項１】
マルチコアマイコンの備える複数のＣＰＵコアを用いて複数のシステムが構成された制御装置であって、
前記複数のシステムの中から異常状態のシステムを検出し、前記異常状態のシステムを識別可能なリセット要求信号を出力するリセット手段を備え、
前記各システムは複数の要素で構成され、前記複数の要素には、前記ＣＰＵコアと、前記複数のシステムで動的に共有される動的共有部と、が含まれ、
前記動的共有部は、
前記複数のシステムによって利用されるとともに同時に利用可能なシステムが１つに制限され、前記リセット要求信号が入力されることでリセットされる機能部と、
前記機能部が前記複数のシステムのいずれかによって利用されている状態において、前記リセット手段によって前記リセット要求信号が出力された場合には、前記リセット要求信号に基づき識別される前記異常状態のシステムと前記機能部を利用しているシステムとが一致することを条件として、前記リセット要求信号が前記機能部に入力されるようにする動的調停部と、
を備えることを特徴とする制御装置。
【請求項２】
請求項１に記載の制御装置であって、
前記リセット手段によって前記リセット要求信号が出力された場合に、前記異常状態のシステムを構成する前記複数の要素のそれぞれが、リセット可能な状態となり次第リセット処理を開始するように構成され、
前記複数の要素のそれぞれは、前記リセット処理の開始から、前記要素ごとに異なり得るリセット所要時間が経過することで前記リセット処理を完了し、
前記リセット手段は、前記異常状態のシステムを構成するすべての要素が前記リセット処理を完了したと判定した場合に、前記リセット要求信号の出力を停止する
ことを特徴とする制御装置。
【請求項３】
請求項２に記載の制御装置であって、
前記複数の要素のそれぞれは、前記リセット処理が完了したか否かを示すリセット情報を前記リセット手段へ出力し、
前記リセット手段は、前記要素によって出力される前記リセット情報に基づいて、前記異常状態のシステムを構成するすべての要素が前記リセット処理を完了したか否かを判定する
ことを特徴とする制御装置。
【請求項４】
請求項２に記載の制御装置であって、
前記複数の要素のそれぞれは、前記リセット処理が完了したか否かを示すリセット情報を、前記リセット手段が取得可能な状態で記憶し、
前記リセット手段は、前記要素が記憶する前記リセット情報を取得し、取得した前記リセット情報に基づいて、前記異常状態のシステムを構成するすべての要素が前記リセット処理を完了したか否かを判定する
ことを特徴とする制御装置。
【請求項５】
請求項１に記載の制御装置であって、
前記リセット手段によって前記リセット要求信号が出力された場合に、前記異常状態のシステムを構成する前記複数の要素のそれぞれが、前記異常状態のシステムを構成するすべての要素がリセット可能な状態となり次第リセット処理を開始するように構成され、
前記複数の要素のそれぞれは、前記リセット処理の開始から、前記要素ごとに異なり得るリセット所要時間が経過することで前記リセット処理を完了し、
前記リセット手段は、前記異常状態のシステムを構成するすべての要素が前記リセット処理を開始してから、前記リセット所要時間の最大値以上の所定時間が経過したと判定した場合に、前記リセット要求信号の出力を停止する
ことを特徴とする制御装置。
【請求項６】
請求項１に記載の制御装置であって、
前記複数の要素のそれぞれは、前記リセット要求信号を優先的に入力するためのウィンドウ時間を、前記複数の要素で同期するように設け、
前記リセット手段によって前記リセット要求信号が出力された場合に、前記異常状態のシステムを構成する前記複数の要素のそれぞれが、前記ウィンドウ時間内であることを条件にリセット処理を開始するように構成され、
前記複数の要素のそれぞれは、前記リセット処理の開始から、前記要素ごとに異なり得るリセット所要時間が経過することで前記リセット処理を完了し、
前記リセット手段は、前記異常状態のシステムを構成するすべての要素が前記リセット処理を完了したと判定した場合に、前記リセット要求信号の出力を停止する
ことを特徴とする制御装置。
【請求項７】
請求項１から請求項６までのいずれか１項に記載の制御装置であって、
前記リセット手段は、前記異常状態のシステムの識別情報を前記リセット要求信号に付与して出力することで、前記異常状態のシステムを識別可能なリセット要求信号を出力する
ことを特徴とする制御装置。
【請求項８】
請求項１から請求項６までのいずれか１項に記載の制御装置であって、
前記リセット手段は、前記異常状態のシステムの識別情報を、前記リセット要求信号を出力するための信号線とは異なる信号線で出力することで、前記異常状態のシステムを識別可能なリセット要求信号を出力する
ことを特徴とする制御装置。
【請求項９】
請求項１から請求項８までのいずれか１項に記載の制御装置であって、
前記複数の要素には、前記複数のシステムで静的に共有される静的共有部が更に含まれ、
前記静的共有部は、
前記複数のシステムのそれぞれに割り当てられ、前記リセット要求信号が入力されることで独立してリセット可能な複数の部分と、
前記リセット手段によって前記リセット要求信号が出力された場合に、前記複数の部分の中から、前記リセット要求信号に基づき識別される前記異常状態のシステムに割り当てられた部分を特定し、特定した部分がリセットされるようにする静的調停部と、
を備えることを特徴とする制御装置。
【請求項１０】
請求項９に記載の制御装置であって、
前記静的共有部は、前記ＣＰＵコアの動作に必要な情報が記憶されたメモリであり、
前記複数の部分は、複数の記憶領域である
ことを特徴とする制御装置。
【請求項１１】
請求項１０に記載の制御装置であって、
前記メモリのＲＯＭ領域に記憶された情報が複製されるバックアップメモリを更に備え、
前記メモリは、前記ＲＯＭ領域における前記異常状態のシステムに割り当てられた記憶領域に、前記バックアップメモリに複製されている情報が書き込まれることによってリセットされる
ことを特徴とする制御装置。
【請求項１２】
請求項１１に記載の制御装置であって、
前記バックアップメモリには、前記ＲＯＭ領域に記憶された情報のうちの一部の情報が複製される
ことを特徴とする制御装置。
【請求項１３】
請求項１１又は請求項１２に記載の制御装置であって、
前記バックアップメモリに複製されている情報を前記ＲＯＭ領域に定期的に書き込む更新処理を行う更新手段を更に備える
ことを特徴とする制御装置。
【請求項１４】
請求項１３に記載の制御装置であって、
前記更新手段は、前記バックアップメモリに複製されている情報と前記ＲＯＭ領域に記憶されている情報とを比較し、一致している場合には前記更新処理を行わない
ことを特徴とする制御装置。
【請求項１５】
請求項１３又は請求項１４に記載の制御装置であって、
前記更新手段は、前記各ＣＰＵコアが動作を停止している状態で前記更新処理を行う
ことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵコアを用いて複数のシステムを構成するための技術に関する。
【背景技術】
【０００２】
従来、複数のＣＰＵコアを備えたマルチコアマイコンが知られている（特許文献１参照）。こうしたマルチコアマイコンの活用例として、複数のＣＰＵコアを用いて複数のシステムを構成する（複数の機能を動作させる）ことが挙げられる。つまり、マルチコアマイコンを用いれば、複数のシステムのそれぞれに単一のマイコンが割り当てられた構成を、複数のシステムのそれぞれにマルチコアマイコンの各ＣＰＵコアが割り当てられた構成に置き換えることができる。また、このような構成において、マイコンの内部又は外部に設けられるメモリや周辺機能部（ペリフェラル）は、複数のＣＰＵコアによって共有することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２４５００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、マイコンを用いて構成されたシステムにおいて異常が発生した場合、異常がそのシステムに関してどこまで波及するかは分からないため、そのシステムに関するすべての回路を一度にリセットすることで、システムの安全性を確保する。なお、リセットとは、回路の動作を停止させ、回路の状態を強制的に電源投入直後の初期状態に戻すことを意味する。
【０００５】
複数のシステムのそれぞれに単一のマイコンが割り当てられた構成では、各システムが物理的に閉じているため、システムごとに独立にリセットすることが可能である。これに対し、複数のシステムのそれぞれにマルチコアマイコンの各ＣＰＵコアが割り当てられた構成では、各システムが物理的に閉じていないため、複数のシステムのそれぞれに単一のマイコンが割り当てられた構成と同様にはリセットすることができない。例えば、あるシステムに割り当てられたＣＰＵコアだけが異常となってマルチコアマイコンがリセットされる場合にも、ＣＰＵコア、メモリ、周辺機能部といったすべての回路が一度にリセットされることになる。したがって、正常なシステムに割り当てられたＣＰＵコアやメモリ、正常なシステムが動作している周辺機能部までリセットされてしまうという問題があった。
【０００６】
本発明は、こうした問題にかんがみてなされたものであり、複数のＣＰＵコアを用いて構成される複数のシステムの中から異常状態のシステムを選択的にリセットするための技術を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するための構成例を以下に開示する。
第１の構成は、マルチコアマイコンの備える複数のＣＰＵコアを用いて複数のシステムが構成された制御装置であって、複数のシステムの中から異常状態のシステムを検出し、異常状態のシステムを識別可能なリセット要求信号を出力するリセット手段を備える。また、各システムは複数の要素で構成され、複数の要素には、ＣＰＵコアと、複数のシステムで動的に共有される動的共有部と、が含まれ、動的共有部は、機能部及び動的調停部を備える。機能部は、複数のシステムによって利用されるとともに同時に利用可能なシステムが１つに制限され、リセット要求信号が入力されることでリセットされる。動的調停部は、機能部が複数のシステムのいずれかによって利用されている状態において、リセット手段によってリセット要求信号が出力された場合には、リセット要求信号に基づき識別される異常状態のシステムと機能部を利用しているシステムとが一致することを条件として、リセット要求信号が機能部に入力されるようにする。
【０００８】
この構成によれば、機能部が正常なシステムによって利用されている状態において、リセット手段によってリセット要求信号が出力された場合には、リセット要求信号が機能部に入力されないようにすることができる。その結果、動的共有部が、正常なシステムによって利用されている状態においてリセットされないようにすることができる。したがって、複数のシステムで動的に共有される動的共有部を備える構成において、異常状態のシステムを選択的にリセットすることができる。
【０００９】
第２の構成は、第１の構成の制御装置であって、リセット手段によってリセット要求信号が出力された場合に、異常状態のシステムを構成する複数の要素のそれぞれが、リセット可能な状態となり次第リセット処理を開始するように構成されている。また、複数の要素のそれぞれは、リセット処理の開始から、要素ごとに異なり得るリセット所要時間が経過することでリセット処理を完了する。そして、リセット手段は、異常状態のシステムを構成するすべての要素がリセット処理を完了したと判定した場合に、リセット要求信号の出力を停止する。この構成によれば、異常状態のシステムを構成する要素のリセット処理が早期に開始され、要素が異常状態のまま動作する時間を短くすることができる。
【００１０】
第３の構成は、第２の構成の制御装置であって、複数の要素のそれぞれは、リセット処理が完了したか否かを示すリセット情報をリセット手段へ出力する。そして、リセット手段は、要素によって出力されるリセット情報に基づいて、異常状態のシステムを構成するすべての要素がリセット処理を完了したか否かを判定する。この構成によれば、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを早期に判定することが可能となり、リセット要求信号の出力を早期に停止することが可能となる。
【００１１】
第４の構成は、第２の構成の制御装置であって、複数の要素のそれぞれは、リセット処理が完了したか否かを示すリセット情報を、リセット手段が取得可能な状態で記憶する。そして、リセット手段は、要素が記憶するリセット情報を取得し、取得したリセット情報に基づいて、異常状態のシステムを構成するすべての要素がリセット処理を完了したか否かを判定する。この構成によれば、各要素にリセット情報を出力する機能を持たせることなく、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを判定することができる。
【００１２】
第５の構成は、第１の構成の制御装置であって、リセット手段によってリセット要求信号が出力された場合に、異常状態のシステムを構成する複数の要素のそれぞれが、異常状態のシステムを構成するすべての要素がリセット可能な状態となり次第リセット処理を開始するように構成されている。また、複数の要素のそれぞれは、リセット処理の開始から、要素ごとに異なり得るリセット所要時間が経過することでリセット処理を完了する。そして、リセット手段は、異常状態のシステムを構成するすべての要素がリセット処理を開始してから、リセット所要時間の最大値以上の所定時間が経過したと判定した場合に、リセット要求信号の出力を停止する。この構成によれば、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを、所定時間の経過に基づいて簡易的に判定することができる。
【００１３】
第６の構成は、第１の構成の制御装置であって、複数の要素のそれぞれは、リセット要求信号を優先的に入力するためのウィンドウ時間を、複数の要素で同期するように設ける。そして、リセット手段によってリセット要求信号が出力された場合に、異常状態のシステムを構成する複数の要素のそれぞれが、ウィンドウ時間内であることを条件にリセット処理を開始するように構成されている。また、複数の要素のそれぞれは、リセット処理の開始から、要素ごとに異なり得るリセット所要時間が経過することでリセット処理を完了する。そして、リセット手段は、異常状態のシステムを構成するすべての要素がリセット処理を完了したと判定した場合に、リセット要求信号の出力を停止する。この構成によれば、リセット可能な状態とならない要素の存在による、リセット要求信号の出力の停止の大幅な遅延を生じにくくすることができる。
【００１４】
第７の構成は、第１〜６の構成のいずれか１つの制御装置であって、リセット手段は、異常状態のシステムの識別情報をリセット要求信号に付与して出力することで、異常状態のシステムを識別可能なリセット要求信号を出力する。この構成によれば、リセット要求信号を出力するための信号線とは別に、識別情報を出力するための信号線を設けることなく、異常状態のシステムを識別可能なリセット要求信号を出力することができる。
【００１５】
第８の構成は、第１〜６の構成のいずれか１つの制御装置であって、リセット手段は、異常状態のシステムの識別情報を、リセット要求信号を出力するための信号線とは異なる信号線で出力することで、異常状態のシステムを識別可能なリセット要求信号を出力する。この構成によれば、リセット要求信号に識別情報を付与することなく、異常状態のシステムを識別可能なリセット要求信号を出力することができる。
【００１６】
第９の構成は、第１〜８の構成のいずれか１つの制御装置であって、複数の要素には、複数のシステムで静的に共有される静的共有部が更に含まれ、静的共有部は、複数のシステムのそれぞれに割り当てられた複数の部分と、静的調停部と、を備える。複数の部分は、リセット要求信号が入力されることで独立してリセット可能である。静的調停部は、リセット手段によってリセット要求信号が出力された場合に、複数の部分の中から、リセット要求信号に基づき識別される異常状態のシステムに割り当てられた部分を特定し、特定した部分がリセットされるようにする。この構成によれば、リセット手段によってリセット要求信号が出力された場合に、静的共有部の複数の部分のうち、正常なシステムに割り当てられた部分はリセットされないようにすることができる。その結果、静的共有部が、正常なシステムによって利用されている部分までリセットされないようにすることができる。したがって、複数のシステムで静的に共有される静的共有部を備える構成において、異常状態のシステムを選択的にリセットすることができる。
【００１７】
第１０の構成は、第９の構成の制御装置であって、静的共有部は、ＣＰＵコアの動作に必要な情報が記憶されたメモリであり、複数の部分は、複数の記憶領域である。この構成によれば、複数のシステムでメモリを静的に共有した場合に、複数のシステムのそれぞれに割り当てられた複数の記憶領域のうち、正常なシステムによって利用されている記憶領域がリセットされないようにすることができる。
【００１８】
第１１の構成は、第１０の構成の制御装置であって、メモリのＲＯＭ領域に記憶された情報が複製されるバックアップメモリを更に備える。そして、メモリは、ＲＯＭ領域における異常状態のシステムに割り当てられた記憶領域に、バックアップメモリに複製されている情報が書き込まれることによってリセットされる。この構成によれば、ＲＯＭ領域に記憶された情報を適切な情報に初期化することができる。
【００１９】
第１２の構成は、第１１の構成の制御装置であって、バックアップメモリには、ＲＯＭ領域に記憶された情報のうちの一部の情報が複製される。この構成によれば、ＲＯＭ領域に記憶されたすべての情報を複製する構成と比較して、バックアップメモリの記憶容量を節減することができる。
【００２０】
第１３の構成は、第１１又は１２の構成の制御装置であって、バックアップメモリに複製されている情報をＲＯＭ領域に定期的に書き込む更新処理を行う更新手段を更に備える。この構成によれば、メモリのＲＯＭ領域に記憶されている情報を正常な状態に維持することができる。
【００２１】
第１４の構成は、第１３の構成の制御装置であって、更新手段は、バックアップメモリに複製されている情報とＲＯＭ領域に記憶されている情報とを比較し、一致している場合には更新処理を行わない。この構成によれば、ＲＯＭ領域の書換え回数を節減することができる。
【００２２】
第１５の構成は、第１３又は１４の構成の制御装置であって、更新手段は、各ＣＰＵコアが動作を停止している状態で更新処理を行う。この構成によれば、ＣＰＵコアによって実行される通常処理に影響しないように更新処理を行うことができる。
【００２３】
なお、前述した各制御装置は、各構成要素をマルチコアマイコンの内部に設けることによりマルチコアマイコン単体で構成してもよく、また、一部の構成要素をマルチコアマイコンの外部に設けることによりマルチコアマイコン及び外部回路で構成してもよい。
【図面の簡単な説明】
【００２４】
【図１】第１実施形態のマルチコアマイコンの構成を示すブロック図である。
【図２】第１実施形態のリセット動作を示すタイミングチャートである。
【図３】第２実施形態のリセット動作を示すタイミングチャートである。
【図４】第３実施形態のリセット動作を示すタイミングチャートである。
【図５】第４実施形態のリセット動作を示すタイミングチャートである。
【図６】第５実施形態のマルチコアマイコンの構成を示すブロック図である。
【図７】第５実施形態の更新処理を示すタイミングチャートである。
【図８】第５実施形態の差分に基づく更新処理を示すタイミングチャートである。
【図９】第５実施形態の更新処理の実行タイミングを示すタイミングチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明が適用された実施形態について、図面を用いて説明する。
［第１実施形態］
図１は、車両の制御装置として用いられるマルチコアマイコン１の構成を示すブロック図である。マルチコアマイコン１は、３つのＣＰＵコア（第１ＣＰＵコア１１、第２ＣＰＵコア１２、第３ＣＰＵコア１３）を備える。また、メモリ２０、周辺機能部（ペリフェラル）３０、異常監視部４０及びリセット部５０が、マルチコアマイコン１の内部に設けられている。なお、これらの一部がマルチコアマイコン１の外部に設けられた制御装置（マルチコアマイコン１及び外部回路を備える制御装置）として構成してもよく、また、例えばメモリ２０や周辺機能部３０が複数設けられた構成としてもよい。
【００２６】
３つのＣＰＵコア１１〜１３は、それぞれ独立した３つのシステムを統合して構成するために用いられ、各システムは、複数の要素（本実施形態では、ＣＰＵコア１１〜１３、メモリ２０及び周辺機能部３０）で構成される。また、各システムは、ＩＤ（以下「システムＩＤ」という。）によって識別され、後述するように、マルチコアマイコン１において入出力される信号には、その信号に関連するシステムＩＤが付与される。本実施形態では、第１ＣＰＵコア１１が用いられた第１システムのシステムＩＤが「０００」、第２ＣＰＵコア１２が用いられた第２システムのシステムＩＤが「００１」、第３ＣＰＵコア１３が用いられた第３システムのシステムＩＤが「００２」と定められている。
【００２７】
メモリ２０は、ＣＰＵコア１１〜１３の動作に必要な情報を記憶する要素であり、３つのシステム（３つのＣＰＵコア１１〜１３）で静的に共有される。つまり、メモリ２０は、各ＣＰＵコア１１〜１３によって利用される部分が経時的に変化せず一定であり、３つのＣＰＵコア１１〜１３が同時に利用可能な状態で共有される。具体的には、メモリ２０の記憶領域には、第１システム（第１ＣＰＵコア１１）に割り当てられた第１領域２１、第２システム（第２ＣＰＵコア１２）に割り当てられた第２領域２２、及び、第３システム（第３ＣＰＵコア１３）に割り当てられた第３領域２３が設けられている。そして、各記憶領域２１〜２３には、それぞれのシステム用のシステム制御プログラムが記憶されている。また、各記憶領域２１〜２３は、記憶領域ごとに独立してリセット可能となっている。
【００２８】
また、メモリ２０には、調停器２４が設けられている。調停器２４は、メモリ２０の外部から信号を入力した場合に、第１領域２１、第２領域２２及び第３領域２３の中から、入力した信号に対応する記憶領域を特定する処理を行う。この処理を実現するため、メモリ２０には、各記憶領域２１〜２３が３つのシステムのいずれに対応するかを示すシステムマップ２５が記憶されている。具体的には、システムマップ２５には、第１領域２１を示す情報と第１システムのシステムＩＤ「０００」、第２領域２２を示す情報と第２システムのシステムＩＤ「００１」、第３領域２３を示す情報と第３システムのシステムＩＤ「００２」が、それぞれ対応づけて記憶されている。このため、調停器２４は、システムマップ２５を参照することで、入力した信号に付与されたシステムＩＤによって識別されるシステムに割り当てられた記憶領域を特定することができる。また、後述するように、調停器２４は、異常状態のシステムの発生によりリセット部５０によってリセット要求信号が出力された場合に、３つの記憶領域２１〜２３の中から、リセット要求信号に基づき識別される異常状態のシステムに割り当てられた記憶領域を特定し、特定した記憶領域がリセットされるようにする。
【００２９】
一方、周辺機能部３０は、例えば、汎用入出力ポート、通信機能部、タイマ、割込処理機能部、ＤＭＡコントローラ、ＡＤ変換器といった、各ＣＰＵコア１１〜１３から見て周辺機器となる要素である。周辺機能部３０は、各ＣＰＵコア１１〜１３によって出力される動作要求信号に従い機能するものであり、３つのシステム（３つのＣＰＵコア１１〜１３）で動的に共有される。つまり、利用するＣＰＵコア１１〜１３が経時的に切り替わる状態で共有される（時分割で利用される）。
【００３０】
具体的には、周辺機能部３０は、動作要求信号に従い機能する機能回路３１と、周辺機能部３０の外部から入力した信号を調停する調停器３２とを備える。機能回路３１は、３つのシステムによって利用されるとともに、同時に利用可能なシステムが１つに制限され、リセット要求信号が入力されることでリセットされる。そして、調停器３２は、３つのシステム（３つのＣＰＵコア１１〜１３）のうちの２つ以上から動作要求信号が出力されている状態において、機能回路３１を利用可能なシステムを経時的に切り替えるように、機能回路３１へ出力すべき１つの動作要求信号を選択する処理を行う。この処理は、例えばスタック構造で実現される。また、後述するように、調停器３２は、機能回路３１がいずれかのシステムによって利用されている状態において、異常状態のシステムの発生によりリセット部５０によってリセット要求信号が出力された場合に、リセット要求信号に基づき識別される異常状態のシステムと機能回路３１を利用しているシステムとが一致することを条件として、リセット要求信号が機能回路３１に入力されるようにする。
【００３１】
異常監視部４０は、各システムを構成する各要素（ＣＰＵコア１１〜１３、メモリ２０及び周辺機能部３０）を監視し、３つのシステムの中から異常状態のシステムを検出する。なお、異常監視部４０は、例えば、ウォッチドッグタイマ、ＣＰＵを用いたソフトウェア監視、ロックステップコアによる監視などによって実現される。
【００３２】
そして、リセット部５０は、異常監視部４０によって異常状態のシステムが検出された場合に、異常状態のシステムを構成する各要素をリセット状態へ移行させるために、リセット要求信号を出力する（アクティブにする）。その後、リセット部５０は、リセット要求信号の出力を停止する（非アクティブにする）ことで、リセット状態を解除する。
【００３３】
このように構成されたマルチコアマイコン１では、各ＣＰＵコア１１〜１３が、それぞれのシステム用のシステム制御プログラムをメモリ２０の各記憶領域２１〜２３から読み出して実行し、システム制御プログラムの内容に応じて、動作要求信号を周辺機能部３０へ出力する。また、各システムを構成する各要素（ＣＰＵコア１１〜１３、メモリ２０及び周辺機能部３０）が、動作状態を示す状態信号を異常監視部４０へ定期的に出力する。異常監視部４０は、各要素によって出力される状態信号に基づいて、いずれかのシステムが異常状態になったことを検出すると、リセット部５０を介して、各要素に対してリセット要求信号を出力する。
【００３４】
ところで、ある１つのシステムが異常状態となった場合に、複数のシステムで共有される要素（本実施形態ではメモリ２０及び周辺機能部３０）をリセットすると、正常なシステムにまで影響し得るという問題がある。そこで、本実施形態では、マルチコアマイコン１において入出力される信号（動作要求信号、状態信号及びリセット要求信号）に、その信号に関連するシステムＩＤが付与され、どの信号がどのシステムに関するものであるかを識別できるようにしている。
【００３５】
そして、３つのシステムで静的に共有されるメモリ２０では、リセット部５０からリセット要求信号を入力した場合に、調停器２４が、システムマップ２５を参照して、リセット要求信号に付与されたシステムＩＤによって識別される異常状態のシステムに割り当てられた記憶領域を、リセットすべき記憶領域として特定する。つまり、各システムに割り当てられた記憶領域２１〜２３のうち、異常状態のシステムに割り当てられた記憶領域がリセットされ、正常なシステムに割り当てられた記憶領域がリセットされないようにする。
【００３６】
また、３つのシステムで動的に共有される周辺機能部３０では、リセット部５０からリセット要求信号を入力した場合に、調停器３２が、リセット要求信号に付与されたシステムＩＤに応じて、リセット要求信号をマスクする。具体的には、調停器３２は、ＣＰＵコア１１〜１３のいずれかから入力した動作要求信号を機能回路３１へ出力している状態において、機能回路３１へ出力している動作要求信号及びリセット部５０から入力したリセット要求信号のそれぞれに付与されたシステムＩＤを照合する。そして、システムＩＤとが一致しない場合には、リセット要求信号をマスクし、リセット要求信号が機能回路３１へ出力されないようにする。一方、システムＩＤが一致する場合や、ＣＰＵコア１１〜１３のいずれからも動作要求信号を入力していない場合には、リセット要求信号を機能回路３１へ出力する。つまり、正常なシステムによって周辺機能部３０が利用されているタイミングでは、周辺機能部３０がリセットされないようにする。
【００３７】
以上のように、３つのシステム（３つのＣＰＵコア１１〜１３）で静的に共有される要素（本実施形態ではメモリ２０）及び動的に共有される要素（本実施形態では周辺機能部３０）のいずれにおいても、正常なシステムに影響しないようにリセットすることが可能となる。
【００３８】
ただし、リセット処理の開始から完了までに要する時間（以下「リセット所要時間」という。）は要素ごとに異なる。特に、動的に共有される要素は、異常が発生したタイミングで直ちにリセット処理を開始することができない場合があるため、リセット処理を開始するタイミングも要素ごとに異なり得る。このため、異常状態のシステムが検出された場合には、リセットすべき要素のすべてについて適切なタイミングでリセット処理が開始され、これらすべての要素について正常にリセット処理が完了するような仕組み（リセットの同期）が必要となる。
【００３９】
そこで、本実施形態では、異常状態のシステムが検出されてリセット要求信号が出力された場合に、異常状態のシステムを構成する各要素が、リセット可能な状態となり次第リセット処理を開始し、異常状態のシステムを構成するすべての要素がリセット処理を完了した後、リセット要求信号の出力を停止（リセット状態を解除）する。
【００４０】
具体的には、各要素が、リセット処理が完了していない状態をオフで示し、リセット処理が完了した状態をオンで示す情報（リセットフラグ）を有し、リセットフラグをリセット部５０へ出力する。そして、リセット部５０は、各要素によって出力されるリセットフラグに基づいて、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを確認した場合に、リセット状態を解除する。
【００４１】
３つのシステムで静的に共有される要素（本実施形態ではメモリ２０）には、第１領域２１、第２領域２２及び第３領域２３のそれぞれで別々のリセットフラグが用いられる。そして、メモリ２０では、リセット要求信号が入力されると、リセット要求信号に付与されたシステムＩＤによって識別される異常状態のシステムに割り当てられた記憶領域のリセットフラグが、リセット要求信号が入力されたタイミングでオフになり、リセット処理が完了したタイミングでオンになる。なお、異常状態のシステムに割り当てられた記憶領域以外の記憶領域のリセットフラグは、リセット要求信号が入力されてもオンのまま変化しない。
【００４２】
また、３つのシステムで動的に共有される要素（本実施形態では周辺機能部３０）のリセットフラグは、リセット要求信号が入力されたタイミングでオフになり、リセット処理が完了したタイミングでオンになる。
【００４３】
なお、ＣＰＵコア１１〜１３のうち、異常状態のシステムを構成するＣＰＵコアのリセットフラグは、リセット要求信号が入力されたタイミングでオフになり、リセット処理が完了したタイミングでオンになる。一方、異常状態のシステムを構成しないＣＰＵコアのリセットフラグは、リセット要求信号入力されてもオンのまま変化しない。
【００４４】
そして、リセット部５０は、すべての要素のリセットフラグのＡＮＤ（アクティブが０の場合はＮＯＲ）演算結果が偽（リセット処理が完了していない要素が１つ以上存在することを示す状態）であればリセット状態を解除せず、ＡＮＤ演算結果が真（リセット処理が完了していない要素が存在しないことを示す状態）になるとリセット状態を解除する。
【００４５】
図２は、第３システムが異常になった場合のリセット動作の一例を示すタイミングチャートである。Ｔ１のタイミングにおいて、第３システムを構成する第３ＣＰＵコア１３に異常が発生し、異常監視部４０によって第３システムが異常状態であることが検出されると、システムＩＤ「００２」の付与されたリセット要求信号が、リセット部５０から各要素へ出力される。
【００４６】
第３ＣＰＵコア１３は、リセット要求信号が入力されると、リセットフラグがオンからオフになり、直ちにリセット処理が開始される。そして、第３ＣＰＵコア１３のリセット所要時間が経過することでリセット処理が完了し、リセットフラグがオフからオンになる。
【００４７】
メモリ２０の第３領域２３も、第３ＣＰＵコア１３と同様、リセット要求信号が入力されると、リセットフラグがオンからオフになり、直ちにリセット処理が開始される。そして、第３領域２３のリセット所要時間（第３ＣＰＵコア１３のリセット所要時間とは異なる）が経過することでリセット処理が完了し、リセットフラグがオフからオンになる。なお、メモリ２０の第１領域２１及び第２領域２２についてはリセットされないため、他のシステム（第１システム及び第２システム）には影響しない。
【００４８】
一方、周辺機能部３０は、リセット要求信号が入力されると、リセットフラグがオンからオフになるが、この例ではＴ１のタイミングにおいて第２ＣＰＵコア１２からの動作要求信号（システムＩＤ「００１」）が入力されているため、第３システムに関するリセット要求信号は調停器３２によってマスクされる。このため、第３ＣＰＵコア１３及びメモリ２０の第３領域２３のリセット処理が完了しても、この時点で周辺機能部３０から出力されるリセットフラグはオフであり、すべての要素のリセットフラグのＡＮＤ演算結果が偽であるため、リセット部５０によってリセット要求信号の出力が停止（リセット状態が解除）されない。
【００４９】
その後、Ｔ２のタイミングで第２ＣＰＵコア１２から周辺機能部３０への動作要求信号の出力が停止すると、リセット要求信号が調停器３２から機能回路３１へ出力されることにより周辺機能部３０のリセット処理が開始され、周辺機能部３０のリセット所要時間（第３ＣＰＵコア１３やメモリ２０のリセット所要時間とは異なる）が経過することでリセット処理が完了し、Ｔ３のタイミングでリセットフラグがオフからオンになる。この結果、すべての要素のリセットフラグのＡＮＤ演算結果が真になり、リセット部５０によりリセット要求信号の出力が停止（リセット状態が解除）される。
【００５０】
以上説明したように、第１実施形態では、機能回路３１及び調停器３２を備える周辺機能部３０が、３つのシステムで動的に共有される。そして、機能回路３１が３つのシステムのいずれかによって利用されている状態において、リセット部５０によってリセット要求信号が出力された場合には、リセット要求信号に基づき識別される異常状態のシステムと機能回路３１を利用しているシステムとが一致することを条件として、リセット要求信号が機能回路３１に入力される。
【００５１】
このため、第１実施形態によれば、機能回路３１が正常なシステムによって利用されている状態において、リセット部５０によってリセット要求信号が出力された場合には、リセット要求信号が機能回路３１に入力されないようにすることができる。その結果、周辺機能部３０が、正常なシステムによって利用されている状態においてリセットされないようにすることができ、異常状態のシステムを選択的にリセットすることができる。
【００５２】
また、３つの記憶領域２１〜２３と、調停器２４とを備えるメモリ２０が、３つのシステムで静的に共有される。そして、調停器２４は、リセット部５０によってリセット要求信号が出力された場合には、３つの記憶領域２１〜２３のうち、リセット要求信号に基づき識別される異常状態のシステムに割り当てられた記憶領域がリセットされる。このため、リセット部５０によってリセット要求信号が出力された場合に、正常なシステムによって利用されている記憶領域までリセットされないようにすることができ、異常状態のシステムを選択的にリセットすることができる。
【００５３】
また、リセット部５０によってリセット要求信号が出力された場合に、異常状態のシステムを構成する各要素が、リセット可能な状態となり次第リセット処理を開始し、リセット部５０は、異常状態のシステムを構成するすべての要素がリセット処理を完了したと判定した場合に、リセット要求信号の出力を停止する。このため、異常状態のシステムを構成する要素のリセット処理が早期に開始され、要素が異常状態のまま動作する時間を短くすることができる。
【００５４】
また、各要素が、リセット処理が完了したか否かを示すリセットフラグをリセット部５０へ出力し、リセット部５０は、要素によって出力されるリセットフラグに基づいて、異常状態のシステムを構成するすべての要素がリセット処理を完了したか否かを判定する。このため、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを早期に判定することが可能となり、リセット状態を早期に解除することが可能となる。
【００５５】
また、リセット部５０が、異常状態のシステムのシステムＩＤをリセット要求信号に付与して出力するため、リセット要求信号を出力するための信号線とは別に、システムＩＤを出力するための信号線を設ける必要がない。
【００５６】
なお、本実施形態では、メモリ２０が静的共有部に相当し、調停器２４が静的調停部に相当する。また、周辺機能部３０が動的共有部に相当し、機能回路３１が機能部に相当し、調停器３２が動的調停部に相当する。また、異常監視部４０及びリセット部５０がリセット手段に相当する。また、リセットフラグがリセット情報に相当し、システムＩＤが識別情報に相当する。
【００５７】
［第２実施形態］
第２実施形態は、第１実施形態と対比すると、リセット部５０が各要素のリセットフラグを取得する構成が異なる。すなわち、第１実施形態では、各要素が、リセットフラグをリセット部５０へ出力する例を示したが、第２実施形態では、リセット部５０が、各要素のリセットフラグを定期的に読み出す例を示す。なお、マルチコアマイコン１の構成（図１）及び基本的な動作は第１実施形態と同様であるため説明を省略し、第１実施形態との相違点を中心に説明する。
【００５８】
第２実施形態も、第１実施形態と同様、異常状態のシステムが検出されてリセット要求信号が出力された場合に、異常状態のシステムを構成する各要素が、リセット可能な状態となり次第リセット処理を開始し、異常状態のシステムを構成するすべての要素がリセット処理を完了した後、リセット状態を解除する。
【００５９】
ただし、第２実施形態では、リセットフラグが、リセット部５０が取得可能な状態で各要素の記憶部に記憶され、リセット部５０は、各要素の記憶部からリセットフラグを取得する（読み出す）処理を定期的に実行する。メモリ２０には、第１領域２１、第２領域２２及び第３領域２３のそれぞれに対応するリセットフラグが記憶される。なお、リセット部５０が、すべての要素のリセットフラグのＡＮＤ（アクティブが０の場合はＮＯＲ）演算結果が偽であればリセット状態を解除せず、ＡＮＤ演算結果が真になるとリセット状態を解除する点は、第１実施形態と同様である。
【００６０】
図３は、第３システムが異常になった場合のリセット動作の一例を示すタイミングチャートである。Ｔ１のタイミングにおいて、第３システムを構成する第３ＣＰＵコア１３に異常が発生し、異常監視部４０によって第３システムが異常状態であることが検出されると、システムＩＤ「００２」の付与されたリセット要求信号が、リセット部５０から各要素へ出力される。
【００６１】
第３ＣＰＵコア１３は、リセット要求信号が入力されると、リセットフラグがオンからオフになり、直ちにリセット処理が開始される。そして、第３ＣＰＵコア１３のリセット所要時間が経過することでリセット処理が完了し、リセットフラグがオフからオンになる。
【００６２】
メモリ２０の第３領域２３も、第３ＣＰＵコア１３と同様、リセット要求信号が入力されると、リセットフラグがオンからオフになり、直ちにリセット処理が開始される。そして、第３領域２３のリセット所要時間が経過することでリセット処理が完了し、リセットフラグがオフからオンになる。なお、メモリ２０の第１領域２１及び第２領域２２についてはリセットされないため、他のシステム（第１システム及び第２システム）には影響しない。
【００６３】
一方、周辺機能部３０は、リセット要求信号が入力されると、リセットフラグがオンからオフになるが、この例ではＴ１のタイミングにおいて第２ＣＰＵコア１２からの動作要求信号（システムＩＤ「００１」）が入力されているため、第３システムに関するリセット要求信号は調停器３２によってマスクされる。
【００６４】
リセット部５０は、Ｔ１のタイミングから一定時間（すべての要素のリセット所要時間の最大値以上に設定された時間）待機後のＴ２のタイミングにおいて、各要素の記憶部からリセットフラグを読み出す。しかしながら、この時点で周辺機能部３０の記憶部から読み出されるリセットフラグはオフであり、すべての要素のリセットフラグのＡＮＤ演算結果が偽であるため、リセット部５０によってリセット要求信号の出力が停止（リセット状態が解除）されない。
【００６５】
その後、Ｔ３のタイミングで第２ＣＰＵコア１２から周辺機能部３０への動作要求信号の出力が停止すると、リセット要求信号が調停器３２から機能回路３１へ出力されることにより周辺機能部３０のリセット処理が開始され、周辺機能部３０のリセット所要時間が経過することでリセット処理が完了し、リセットフラグがオフからオンになる。
【００６６】
リセット部５０は、Ｔ２のタイミングから一定時間待機後のＴ４のタイミングにおいて、各要素の記憶部からリセットフラグを読み出す。この時点では周辺機能部３０の記憶部から読み出されるリセットフラグはオンであり、すべての要素のリセットフラグのＡＮＤ演算結果が真であるため、リセット部５０によりリセット要求信号の出力が停止（リセット状態が解除）される。
【００６７】
以上説明したように、第２実施形態では、各要素が、リセット処理が完了したか否かを示すリセットフラグを、リセット部５０が取得可能な状態で記憶し、リセット部５０は、各要素が記憶するリセットフラグを取得し、取得したリセットフラグに基づいて、異常状態のシステムを構成するすべての要素がリセット処理を完了したか否かを判定する。このため、各要素にリセットフラグを出力する機能を持たせることなく、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを判定することができる。
【００６８】
［第３実施形態］
第３実施形態は、第１実施形態と対比すると、異常状態のシステムを構成する各要素がリセット処理を開始するタイミングが異なる。すなわち、第１実施形態では、異常状態のシステムを構成する各要素が、リセット可能な状態となり次第リセット処理を開始する例を示したが、第３実施形態では、異常状態のシステムを構成するすべての要素がリセット可能な状態になるまで、各要素がウェイト（待機）する例を示す。なお、マルチコアマイコン１の構成（図１）及び基本的な動作は第１実施形態と同様であるため説明を省略し、第１実施形態との相違点を中心に説明する。
【００６９】
第３実施形態では、異常状態のシステムが検出されてリセット要求信号が出力された場合に、異常状態のシステムを構成するすべての要素がリセット可能な状態になるまで各要素がウェイト（待機）する。そして、異常状態のシステムを構成するすべての要素がリセット可能な状態となり次第、各要素がリセット処理を開始し、リセット処理の開始から、すべての要素のリセット所要時間のうちの最大時間が経過した時点で、リセット状態を解除する。
【００７０】
このため、第３実施形態では、他の要素がリセット可能な状態であるか否かという情報を、各要素で共有する。具体的には、リセット要求信号が出力された場合に直ちにリセット可能な状態にならない可能性があるのは、３つのシステムで動的に共有される要素（本実施形態では周辺機能部３０）である。そこで、第３実施形態では、周辺機能部３０が、リセット可能な状態でない場合（調停器３２がリセット要求信号をマスクしている場合）に、リセット要求信号を強制的にマスクするリセットマスク信号を他のすべての要素へ出力する。
【００７１】
図４は、第３システムが異常になった場合のリセット動作の一例を示すタイミングチャートである。Ｔ１のタイミングにおいて、第３システムを構成する第３ＣＰＵコア１３に異常が発生し、異常監視部４０によって第３システムが異常状態であることが検出されると、システムＩＤ「００２」の付与されたリセット要求信号が、リセット部５０から各要素へ出力される。
【００７２】
周辺機能部３０は、この例ではＴ１のタイミングにおいて第２ＣＰＵコア１２からの動作要求信号（システムＩＤ「００１」）が入力されているため、第３システムに関するリセット要求信号は調停器３２によってマスクされる。このため、周辺機能部３０から他のすべての要素へリセットマスク信号が出力され、他の要素へのリセット要求信号が強制的にマスクされる。その結果、いずれの要素においてもリセット処理が開始されず（リセットがウェイトされ）、第３ＣＰＵコア１３及びメモリ２０の第３領域２３においてそれぞれ異常動作及び成り行き動作が継続される。
【００７３】
その後、Ｔ２のタイミングで第２ＣＰＵコア１２から周辺機能部３０への動作要求信号の出力が停止すると、リセット要求信号が調停器３２から機能回路３１へ出力されることにより周辺機能部３０のリセット処理が開始される。同時に、周辺機能部３０から他の要素へのリセットマスク信号が出力されなくなり、第３ＣＰＵコア１３及びメモリ２０の第３領域２３のリセット処理も開始される。その後、Ｔ２のタイミング（リセット処理の開始）から、すべての要素のリセット所要時間のうちの最大時間が経過したＴ３のタイミングで、リセット部５０によりリセット要求信号の出力が停止（リセット状態が解除）される。
【００７４】
以上説明したように、第３実施形態では、リセット部５０によってリセット要求信号が出力された場合に、異常状態のシステムを構成する各要素が、異常状態のシステムを構成するすべての要素がリセット可能な状態になるまでウェイトし、すべての要素がリセット可能な状態となり次第リセット処理を開始する。そして、リセット部５０は、異常状態のシステムを構成するすべての要素がリセット処理を開始してから、すべての要素のリセット所要時間のうちの最大時間が経過したと判定した場合に、リセット要求信号の出力を停止する。このため、異常状態のシステムを構成するすべての要素がリセット処理を完了したことを、所定時間の経過に基づいて簡易的に判定することができる。
【００７５】
［第４実施形態］
第４実施形態は、第１実施形態と対比すると、各要素がリセット処理を開始するタイミングが異なる。すなわち、第４実施形態では、すべての要素のリセット所要時間の最大値以上の幅に設定されたウィンドウ時間を、すべての要素で同期するように一定周期で設け、このウィンドウ時間中は動作要求信号をマスクし、リセット要求信号を必ず受け付けるようにする例を示す。なお、マルチコアマイコン１の構成（図１）及び基本的な動作は第１実施形態と同様であるため説明を省略し、第１実施形態との相違点を中心に説明する。
【００７６】
第４実施形態では、異常状態のシステムが検出されてリセット要求信号が出力された場合に、ウィンドウ時間外であればウィンドウ時間になるまで各要素がウェイト（待機）し、ウィンドウ時間内であることを条件にリセット処理を開始する。そして、リセット処理の開始から、すべての要素のリセット所要時間のうちの最大時間が経過した時点で、リセット状態を解除する。なお、ウィンドウ時間内にリセット処理が完了せず、かつ、ウィンドウ時間の終了後に他のシステムによる動作要求信号がある場合、各要素は動作を継続する。また、前述した第３実施形態と同様、周辺機能部３０は、リセット可能な状態でない場合に、リセットマスク信号を他のすべての要素へ出力する。
【００７７】
図５は、第３システムが異常になった場合のリセット動作の一例を示すタイミングチャートである。Ｔ１のタイミングにおいて、第３システムを構成する第３ＣＰＵコア１３に異常が発生し、異常監視部４０によって第３システムが異常状態であることが検出されると、システムＩＤ「００２」の付与されたリセット要求信号が、リセット部５０から各要素へ出力される。
【００７８】
周辺機能部３０は、この例ではＴ１のタイミングにおいて第２ＣＰＵコア１２からの動作要求信号（システムＩＤ「００１」）が入力されているため、第３システムに関するリセット要求信号は調停器３２によってマスクされる。このため、周辺機能部３０から他のすべての要素へリセットマスク信号が出力され、他の要素へのリセット要求信号が強制的にマスクされる。その結果、いずれの要素においてもリセット処理が開始されず（リセットがウェイトされ）、第３ＣＰＵコア１３及びメモリ２０の第３領域２３においてそれぞれ異常動作及び成り行き動作が継続される。
【００７９】
その後、Ｔ２のタイミングでウィンドウ時間が挿入されると、周辺機能部３０は、第２ＣＰＵコア１２からの動作要求信号をマスクして、動作をいったんサスペンドする。このとき、直前の動作状態は退避レジスタに保存される。こうして周辺機能部３０がサスペンドしたことにより、周辺機能部３０のリセット処理が開始される。同時に、周辺機能部３０から他の要素へのリセットマスク信号が出力されなくなり、第３ＣＰＵコア１３及びメモリ２０の第３領域２３のリセット処理も開始される。その後、Ｔ２のタイミング（ウィンドウ時間の開始）から、すべての要素のリセット所要時間の最大値以上の時間が経過したＴ３のタイミングで、ウィンドウ時間が終了し、リセット部５０によりリセット要求信号の出力が停止（リセット状態が解除）される。これにより、すべてのシステムが正常となる。ただし、Ｔ３のタイミングから一定時間経過後のＴ４のタイミングでウィンドウ時間が挿入されると、ウィンドウ時間の間は動作が停止される。なお、すべてのシステムが正常な状態ではウィンドウ時間を挿入しない構成にすれば、ウィンドウ時間の挿入によって通常処理に発生するオーバヘッドを軽減することができる。
【００８０】
以上説明したように、第４実施形態では、各要素が、リセット要求信号を優先的に入力するためのウィンドウ時間を、複数の要素で同期するように設け、リセット部５０によってリセット要求信号が出力された場合に、異常状態のシステムを構成する各要素が、ウィンドウ時間内であることを条件にリセット処理を開始する。このため、周辺機能部３０がリセット可能な状態とならないことによりリセット処理の開始が大幅に遅延してしまうといった問題を生じにくくすることができる。
【００８１】
［第５実施形態］
図６は、第５実施形態のマルチコアマイコン１の構成を示すブロック図である。第５実施形態は、第１実施形態（図１）と対比すると、メモリ２０に記憶されている情報の一部をバックアップするバックアップメモリ６０、及び、メモリ２０及びバックアップメモリ６０を制御するコントローラ７０（更新手段に相当）を備えている点が異なる。その他、第１実施形態と共通する構成については説明を省略し、第１実施形態との相違点を中心に説明する。
【００８２】
メモリ２０をリセットする場合、メモリ２０のＲＯＭ領域の電源投入前の初期値が、例えばユーザが指定した値などのように、デバイス固有の情報でなければ、初期値を記憶しておく必要がある。このため、第５実施形態のマルチコアマイコン１は、通常処理に用いられるメモリ２０とは別にバックアップメモリ６０を備え、メモリ２０のＲＯＭ領域に記憶されている情報がバックアップメモリ６０に複製されている（ＲＯＭ領域を二重化している）。具体的には、メモリ２０のＲＯＭ領域に記憶された情報のうちの一部の情報であって、異常になるとシステム上致命的な重要情報（例えば車両の走る・曲がる・止まるに関する制御情報）が、バックアップメモリ６０に複製されている。図６に示す例では、メモリ２０の３つの領域２１〜２３のうち、第２領域２２及び第３領域２３に重要情報が記憶されており、第２領域２２及び第３領域２３に記憶されている情報がバックアップメモリ６０に複製されている。
【００８３】
このため、メモリ２０をリセットする場合には、コントローラ７０が、バックアップメモリ６０に複製されている情報を、メモリ２０のリセット範囲（ＲＯＭ領域における異常状態のシステムに割り当てられた記憶領域）に上書きすることで、メモリ２０を電源投入前の状態に初期化する。この場合、バックアップメモリ６０に記憶されていない情報についてはリセットすることができないため、異常時であっても成り行きで動作する。なお、メモリ２０のＲＯＭ領域に記憶されているすべての情報を二重化（複製）してもよいが、第５実施形態のように二重化する記憶領域を重要情報が含まれる記憶領域に限定することで、シリコンチップ上の実装記憶領域を節減しコストダウンを図ることができる。
【００８４】
また、第５実施形態では、二重化されているＲＯＭ領域のうち、一方の記憶情報を他方の記憶情報で更新する更新処理を定期的に行うことで異常発生を予防する。具体的には、図７に示すように、バックアップメモリ６０の内容を、メモリ２０のＲＯＭ領域に定期的に（Ｔ１及びＴ３のタイミングで）上書きする更新処理を行うことで、異常発生を予防する。この例では、Ｔ２のタイミングでメモリ２０に異常が発生し、バックアップメモリ６０の内容が上書きされることで正常な状態に更新されている。
【００８５】
ただし、メモリ２０には一般に書換え回数の制限があるため、二重化されているＲＯＭ領域を比較し、差分がある場合に更新処理を行い、差分がない場合には更新処理を行わないようにすることで、書換え回数を節減する。具体的には、図８に示すように、メモリ２０の内容とバックアップメモリ６０の内容とを定期的に（Ｔ１及びＴ３のタイミングで）比較し、差分が検出された場合にバックアップメモリ６０の内容でメモリ２０を更新する。図８は、Ｔ１のタイミングでは差分が検出されて更新処理が行われ、Ｔ３のタイミングでは差分が検出されずに更新処理が行われない例を示している。また、図７と同様、Ｔ２のタイミングでメモリ２０に異常が発生し、バックアップメモリ６０の内容が上書きされることで正常な状態に更新される。
【００８６】
また、更新処理は、マルチコアマイコン１の電源オフ時（ＣＰＵコア１１〜１３が動作を停止している状態であって、コントローラ７０は動作可能な状態）に行うことで、通常処理に影響しないようにすることができる。具体的には、図９に示すように、Ｔ１及びＴ３のタイミングでマルチコアマイコン１の電源がオフになり、このタイミングでメモリ２０の内容とバックアップメモリ６０の内容とを比較し、差分が検出された場合にバックアップメモリ６０の内容でメモリ２０を更新する。図８と同様、Ｔ１のタイミングでは差分が検出されて更新処理が行われ、Ｔ３のタイミングでは差分が検出されず更新処理が行われない例を示している。
【００８７】
以上説明したように、第５実施形態では、メモリ２０のＲＯＭ領域に記憶された情報がバックアップメモリ６０に複製されており、メモリ２０は、ＲＯＭ領域における異常状態のシステムに割り当てられた記憶領域に、バックアップメモリ６０に複製されている情報が書き込まれることによってリセットされる。このため、ＲＯＭ領域に記憶された情報を適切な情報に初期化することができる。
【００８８】
また、バックアップメモリ６０には、ＲＯＭ領域に記憶された情報のうちの一部の情報が複製されるため、ＲＯＭ領域に記憶されたすべての情報を複製する構成と比較して、バックアップメモリ６０の記憶容量を節減することができる。
【００８９】
また、コントローラ７０が、バックアップメモリ６０に複製されている情報をＲＯＭ領域に定期的に書き込む更新処理を行うため、メモリ２０のＲＯＭ領域に記憶されている情報を正常な状態に維持することができる。
【００９０】
また、コントローラ７０が、バックアップメモリ６０に複製されている情報とＲＯＭ領域に記憶されている情報とを比較し、一致している場合には更新処理を行わないため、ＲＯＭ領域の書換え回数を節減することができる。
【００９１】
また、コントローラ７０が、各ＣＰＵコア１１〜１３が動作を停止している状態で更新処理を行うため、ＣＰＵコア１１〜１３によって実行される通常処理に影響しないように更新処理を行うことができる。
【００９２】
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。
（１）上記第１実施形態及び上記第２実施形態では、リセット部５０が、すべての要素のリセットフラグのＡＮＤ演算結果が真になることでリセット要求信号の出力を停止（リセット状態を解除）する例を示したが、これに限定されるものではなく、例えば次の［１Ａ］又は［１Ｂ］のようにしてもよい。
【００９３】
［１Ａ］リセット部５０が、各要素とそれに関連するシステムとの対応関係を示したマップ（システムマップ２５と同様のもの）を、リセット部５０の記憶部に記憶している。そして、そのマップに基づき、異常状態のシステムを構成する要素を特定し、特定したすべての要素のリセットフラグがオンになった場合にリセット状態を解除する。なお、この構成は、リセット部５０がリセット状態を解除すべきであることを判定する手法が相違するものの、図２又は図３に示すリセット動作の流れは同じである。
【００９４】
［１Ｂ］リセット部５０が、各要素のリセットフラグのエッジをラッチし、ラッチ信号のＡＮＤ（アクティブが０の場合はＮＯＲ）演算結果を入力する。具体的には、リセットフラグの変化後の信号がラッチされ、オン→オフの変化ではラッチ信号がオフとなり、オフ→オンの変化ではラッチ信号がオンとなる。そして、ラッチ信号のＡＮＤ演算結果が偽であればリセット状態を解除せず、ラッチ信号のＡＮＤ演算結果が真になるとリセット状態を解除する。なお、この構成も、リセット部５０がリセット状態を解除すべきであることを判定する手法が相違するものの、図２又は図３に示すリセット動作の流れは同じである。
【００９５】
（２）上記各実施形態では、リセット部５０が、異常状態のシステムのシステムＩＤをリセット要求信号に付与して出力する例を示したが、これに代えて、リセット要求信号を出力するための信号線とは異なる信号線でシステムＩＤを出力してもよい。つまり、図１や図６に示す構成において、リセット要求信号を出力するための信号線を二重にした構成とする。このようにすれば、リセット要求信号にシステムＩＤを付与することなく、異常状態のシステムを識別可能なリセット要求信号を出力することができる。
【００９６】
（３）各ＣＰＵコア１１〜１３が、メモリ２０において各システムに割り当てられた領域２１〜２３に対し、調停器２４を介してアクセスするようにしてもよい。つまり、各ＣＰＵコア１１〜１３が、調停器２４に対して、メモリ２０のアドレスを指定した動作要求信号を送信する。この場合、調停器２４では、動作要求信号で指定されているメモリ２０のアドレスと、その動作要求信号に付与されたシステムＩＤとの対応関係が、システムマップ２５に記憶されている対応関係と異なる場合に、動作要求信号をマスクして誤動作を抑制するといったことが可能となる。
【００９７】
（４）上記各実施形態では、３つのＣＰＵコア１１〜１３を備えるマルチコアマイコン１の例を示したが、ＣＰＵコアの数は２つでもよく、４つ以上でもよい。また、マルチコアマイコン及び外部回路を備える制御装置として構成してもよい。
【符号の説明】
【００９８】
１…マルチコアマイコン、１１…第１ＣＰＵコア、１２…第２ＣＰＵコア、１３…第３ＣＰＵコア、２０…メモリ、２１…第１領域、２２…第２領域、２３…第３領域、２４…調停器、２５…システムマップ、３０…周辺機能部、３１…機能回路、３２…調停器、４０…異常監視部、５０…リセット部、６０…バックアップメモリ、７０…コントローラ
【図１】
0005434942.tif 000002
【図２】
0005434942.tif 000003
【図３】
0005434942.tif 000004
【図４】
0005434942.tif 000005
【図５】
0005434942.tif 000006
【図６】
0005434942.tif 000007
【図７】
0005434942.tif 000008
【図８】
0005434942.tif 000009
【図９】
0005434942.tif 000010