(57)【要約】【課題】各ＣＰＵが異なるアプリケーションを実行して処理性能を向上すると共に、安全性が必要なアプリケーションを各ＣＰＵで実行して結果を比較することによって、ライトデータの信頼性を高めることが可能なマイクロコントローラを提供する。【解決手段】マイクロコントローラにおいて、ＣＰＵＡ１、ＣＰＵＢ５とメモリＡ２、メモリＢ６からなる処理系を複数有し、予め設定された特定処理に関する命令処理については、多重化されていない周辺モジュールＡ１４〜周辺モジュールＺ１６への書き込みを２回実行し、１回目と２回目の書き込みデータを照合する。【選択図】図１
2010198327.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵおよびメモリマップレジスタを有し、前記ＣＰＵからの命令処理に基づいて、前記メモリマップレジスタに書き込まれたデータにより、外部装置の制御を行うマイクロコントローラであって、
前記メモリマップレジスタは、ライトデータの書き込みの回数に関する情報を格納するレジスタを有し、
前記ＣＰＵからの命令処理は、予め設定された特定処理に関する命令処理については、前記メモリマップレジスタに２回実行され、
前記メモリマップレジスタに書き込まれる２回の前記ライトデータを照合するライトデータ比較回路を備えたことを特徴とするマイクロコントローラ。
【請求項２】
請求項１記載のマイクロコントローラにおいて、
前記ＣＰＵからの命令処理に基づいた、前記メモリマップレジスタへの前記ライトデータの書き込みは、前記ライトデータ比較回路での照合結果が一致した場合のみ書き込み処理が実行されることを特徴とするマイクロコントローラ。
【請求項３】
請求項１または２記載のマイクロコントローラにおいて、
前記メモリマップレジスタは、前記外部装置の制御を行うためのデータのやり取りを行う周辺モジュール内に配置されたことを特徴とするマイクロコントローラ。
【請求項４】
請求項１〜３のいずれか１項記載のマイクロコントローラにおいて、
前記ＣＰＵを２つ以上備え、
前記メモリマップレジスタへの、２回の前記ライトデータの書き込みは、異なるＣＰＵからの命令処理により実行されることを特徴とするマイクロコントローラ。
【請求項５】
請求項４記載のマイクロコントローラにおいて、
前記メモリマップレジスタは、前記ライトデータの書き込みを実行した前記ＣＰＵに関する情報を格納するレジスタを有することを特徴とするマイクロコントローラ。
【請求項６】
請求項３記載のマイクロコントローラにおいて、
前記メモリマップレジスタに書き込まれる２回のライトデータを照合する処理を前記周辺モジュール内で行うことを特徴とするマイクロコントローラ。
【請求項７】
請求項１記載のマイクロコントローラにおいて、
前記メモリマップレジスタに書き込まれる２回の前記ライトデータを照合する処理を、前記メモリマップレジスタのアクセス制御を行うブリッジ内で行うことを特徴とするマイクロコントローラ。
【請求項８】
請求項１〜７のいずれか１項に記載のマイクロコントローラを搭載し、
前記マイクロコントローラに接続された入出力インタフェースを介して、外部装置の制御を行うことを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えたマイクロコントローラに関し、特に、その処理性能の向上と、故障の検出に関するものである。
【背景技術】
【０００２】
マイクロコントローラ（以下単に「マイコン」とも称する）は、家電製品、ＡＶ機器、携帯電話、自動車、産業機械等の機器に組み込まれ、メモリに記憶されているプログラムにしたがって処理を行うことで、それぞれの機器の制御を行う半導体集積回路である。
【０００３】
自動車では、制御装置の故障が事故につながる可能性があるため、マイコンを含む部品に高い信頼性が求められると共に、故障が発生した場合にはこれを検出して自動車が危険な状態にならないように安全機能を働かせるように設計されている。
【０００４】
マイコンはセンサやアクチュエータの診断を行ってこれらの故障を検出するだけでなく、マイコン自身の故障も検出する必要がある。
【０００５】
マイコンの故障検出には様々な方法があるが、ＣＰＵを２重化して同一の処理を行わせ、バスの値を常時比較する方法がしばしば用いられている。これは、マスターＣＰＵと比較用ＣＰＵが同一の処理を同時に実行し、それぞれの結果を比較回路で比較する方法である。
【０００６】
また、特開平１０−２６１７６２号公報（特許文献１）には、２つのメモリと２つのＣＰＵを有し、ＣＰＵの入出力信号を比較する方法が示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−２６１７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の技術では、２つのＣＰＵが同一の処理を完全に同じタイミングで実行しており、処理性能はＣＰＵが１つの場合と変わらない。自動車制御のうちエンジン制御やトランスミッション制御などのパワートレイン制御では、燃費性能および排気性能を向上させるために多数のセンサを用いた演算処理と多数のアクチュエータ制御を行う必要があるため、高い処理性能が要求される。
【０００９】
そのため、２つのＣＰＵを有するデュアルコアマイコンや、３つ以上のＣＰＵを有するマルチコアマイコンを使用したいという要求が高まっている。
【００１０】
そこで、本発明の目的は、各ＣＰＵが異なるアプリケーションを実行して処理性能を向上すると共に、安全性が必要なアプリケーションを各ＣＰＵで実行して結果を比較することによって、ライトデータの信頼性を高めることが可能なマイクロコントローラを提供することにある。
【００１１】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１３】
すなわち、代表的なものの概要は、メモリマップレジスタは、ライトデータの書き込みの回数に関する情報を格納するレジスタを有し、ＣＰＵからの命令処理は、予め設定された特定処理に関する命令処理については、メモリマップレジスタに２回実行され、メモリマップレジスタに書き込まれる２回のライトデータを照合するライトデータ比較回路を備えたものである。
【発明の効果】
【００１４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００１５】
すなわち、代表的なものによって得られる効果は、複数のＣＰＵを有するマイクロコントローラを使用して、それぞれのＣＰＵに異なるアプリケーションを実行させて高性能な処理を行わせることができると同時に、安全性が要求されるアプリケーションをそれぞれのＣＰＵで実行して結果を照合させることによって、ライトデータの信頼性を高めることができ、さらに故障を検出することもできるので、安全性を高めることが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１に係るマイクロコントローラの構成を示す構成図である。
【図２】本発明の実施の形態１に係るマイクロコントローラのブリッジＤの構成を示す構成図である。
【図３】本発明の実施の形態１に係るマイクロコントローラの周辺ライトデータ比較回路の構成を示す構成図である。
【図４】本発明の実施の形態１に係るマイクロコントローラの周辺モジュールへのリードアクセスのタイミングチャートである。
【図５】本発明の実施の形態１に係るマイクロコントローラの周辺モジュールへの比較を伴わないライトアクセスのタイミングチャートである。
【図６】本発明の実施の形態１に係るマイクロコントローラの周辺モジュールへの比較を伴う１回目のライトアクセスのタイミングチャートである。
【図７】本発明の実施の形態１に係るマイクロコントローラの周辺モジュールへの比較を伴う２回目のライトアクセスで比較結果が一致する場合のタイミングチャートである。
【図８】本発明の実施の形態１に係るマイクロコントローラの周辺モジュールへの比較を伴う２回目のライトアクセスで比較結果が不一致となる場合のタイミングチャートである。
【図９】本発明の実施の形態１に係るマイクロコントローラで使用されるレジスタの構成を示す図である。
【図１０】本発明の実施の形態１に係るマイクロコントローラで使用されるレジスタの構成を示す図である。
【図１１】本発明の実施の形態１に係るマイクロコントローラで使用されるレジスタの構成を示す図である。
【図１２】本発明の実施の形態２に係るマイクロコントローラ内の周辺モジュールの構成を示す構成図である。
【図１３】本発明の実施の形態３に係るマイクロコントローラ内の周辺モジュールの構成を示す構成図である。
【図１４】本発明の実施の形態に係るマイクロコントローラを使用した自動車電子制御装置について説明するための説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１８】
（実施の形態１）
図１〜図３により、本発明の実施の形態１に係るマイクロコントローラの構成について説明する。図１は本発明の実施の形態１に係るマイクロコントローラの構成を示す構成図であり、２つのＣＰＵを有するデュアルコアマイコンを示している。図２は本発明の実施の形態１に係るマイクロコントローラのブリッジＤの構成を示す構成図、図３は本発明の実施の形態１に係るマイクロコントローラの周辺ライトデータ比較回路の構成を示す構成図である。
【００１９】
図１において、マイクロコントローラ（ＭＣＵ）２０は、ＣＰＵＡ１、メモリＡ２、ＣＰＵＡバス３、ブリッジＡ４、ＣＰＵＢ５、メモリＢ６、ＣＰＵＢバス７、ブリッジＢ８、システムバス９、ブリッジＣ１０、外部バス１１、ブリッジＤ１２、周辺バス１３、周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６、割り込みコントローラ１７、周辺ライトデータ比較回路１９から構成されている。
【００２０】
ＣＰＵＡ１は命令を実行して演算やデータ転送などの処理を行うプロセッサである。メモリＡ２はＣＰＵＡ１が実行する命令および処理するデータを記憶する。ＣＰＵＡバス３はＣＰＵＡ１がメモリＡ２などのモジュールをアクセスするためのバスである。
【００２１】
ブリッジＡ４はＣＰＵＡ１がシステムバス９の外部に接続されるモジュールをアクセスする場合に、ＣＰＵＡバス３とシステムバス９を接続制御するコントローラである。
【００２２】
ＣＰＵＢ５は命令を実行して演算やデータ転送などの処理を行うプロセッサである。メモリＢ６はＣＰＵＢ５が実行する命令および処理するデータを記憶する。ＣＰＵＢバス７はＣＰＵＢ５がメモリＢ６などのモジュールをアクセスするためのバスである。
【００２３】
ブリッジＢ８はＣＰＵＢ５がシステムバス９の外部に接続されるモジュールをアクセスする場合に、ＣＰＵＢバス７とシステムバス９を接続制御するコントローラである。
【００２４】
ブリッジＣ１０はＣＰＵＡ１またはＣＰＵＢ５が外部バス１１をアクセスする場合に、システムバス９と外部バス１１を接続制御するコントローラである。
【００２５】
ブリッジＤ１２は、ＣＰＵＡ１またはＣＰＵＢ５が周辺バス１３に接続される周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６、割り込みコントローラ１７などの周辺モジュールをアクセスする場合に、システムバス９と周辺バス１３を接続制御するコントローラである。
【００２６】
周辺バス１３は、周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６、割り込みコントローラ１７が接続されるバスである。
【００２７】
周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６は、マイクロコントローラ２０の外部との通信線などに接続されており、メモリマップレジスタへのライトデータにより、マイクロコントローラの外部とのデータのやり取りや、マイクロコントローラの外部の制御回路などの制御を行っている。
【００２８】
割り込みコントローラ１７は、周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６からのデータや外部割り込み要求１８により、ＣＰＵＡ１やＣＰＵＢ５に割り込みの信号を出力する。
【００２９】
周辺ライトデータ比較回路１９は、ＣＰＵＡ１およびＣＰＵＢ５の周辺モジュールのメモリマップレジスタへのライトデータの比較を行う。
【００３０】
図２において、ブリッジＤ１２は、システムバスインタフェース１２１１、コマンド・アドレスバッファ１２１２、リードデータバッファ１２１３、ライトデータバッファ１２１４、周辺バスインタフェース１２１５、周辺ライトデータ比較要求回路１２１６から構成されている。
【００３１】
システムバスインタフェース１２１１は、システムバス９に接続され、データのやり取りを行う。
【００３２】
コマンド・アドレスバッファ１２１２は、システムバス９からのコマンド・アドレスをバッファする。
【００３３】
リードデータバッファ１２１３は、周辺バス１３からのリードデータをバッファし、ライトデータバッファ１２１４は、周辺バス１３へのライトデータをバッファする。
【００３４】
周辺バスインタフェース１２１５は、周辺バス１３に接続され、データのやり取りを行う。
【００３５】
システムバス９はコマンド９０１、アドレス９０２、リードデータ９０３、ライトデータ９０４、ウエイト９０５を含んでいる。システムバスインタフェース１２１１はシステムバス９の各種信号の入力および出力を行う。信号１２５１、１２５２、１２５３、１２５４はブリッジＤ１２内におけるシステムバス９のコマンド、アドレス、リードデータ、ライトデータである。
【００３６】
コマンド・アドレスバッファ１２１２はシステムバスコマンド１２５１およびアドレス１２５２を保持する。コマンドバッファ出力１２６１とアドレスバッファ出力１２６２は周辺ライトデータ比較要求回路１２１６に入力される。
【００３７】
リードアクセスの場合は、周辺ライトデータ比較要求回路１２１６は要求信号１２０１を出力せず、周辺バスインタフェース１２１５は周辺バスコマンド１３０１および周辺バスアドレス１３０２を出力してリードアクセスを開始する。
【００３８】
周辺バスリードデータ１３０３が読み出されるとリードデータバッファ１２１３に保持し、バッファ出力１２５３をシステムバスリードデータ９０３に出力してリードアクセスを完了させる。
【００３９】
ライトアクセスの場合は、周辺ライトデータ比較要求回路１２１６は要求信号１２０１とアドレス１２０２を出力する。
【００４０】
比較の対象でない場合、応答信号１９０１はシングルライトであることを示し、周辺バス制御１２６５にライト実行を出力して周辺バスインタフェース１２１５にライトアクセスを実行させる。
【００４１】
比較の対象で１回目のアクセスの場合、応答信号１９０１はデュアルライトの１回目であることを示し、周辺バス制御１２６５に無効化を出力して周辺バスインタフェース１２１５にライトアクセスを実行させずに処理を完了させる。
【００４２】
比較の対象で２回目のアクセスの場合、応答信号１９０１はデュアルライトの２回目であることを示し、続いて結果が一致か不一致であるかが通知される。一致した場合は、周辺バス制御１２６５にライト実行を出力して周辺バスインタフェース１２１５にライトアクセスを実行させる。不一致の場合は、周辺バス制御１２６５に無効化を出力して周辺バスインタフェース１２１５にライトアクセスを実行させずに処理を完了させる。
【００４３】
図３において、周辺ライトデータ比較回路１９は、周辺バスインタフェース１９１１、アドレスレジスタ１９１２、制御レジスタ１９１３、アドレス比較回路１９１４、応答出力回路１９１５、データレジスタ１９１６、データ比較回路１９１７から構成されている。
【００４４】
周辺バスインタフェース１９１１は、周辺バス１３に接続され、データのやり取りを行う。
【００４５】
アドレスレジスタ１９１２、制御レジスタ１９１３、データレジスタ１９１６は、それぞれのデータが格納される。
【００４６】
データ比較回路１９１７、アドレス比較回路１９１４は、データやアドレスの比較を行い、応答出力回路１９１５は、データ比較回路１９１７、アドレス比較回路１９１４からの比較結果に基づいた応答を出力する。
【００４７】
ブリッジＤ１２はシステムバス９のアクセスが周辺モジュールへのライトの場合に、周辺ライトデータ比較回路１９に比較要求の要求信号１２０１、アドレス１２０２を出力する。周辺ライトデータ比較回路１９はアドレス１２０２が比較の対象であるかを判定して応答信号１９０１を返す。比較の対象でない場合、ブリッジＤ１２はシステムバス９と周辺バス１３を接続制御してライトアクセスを実行する。
【００４８】
比較の対象である場合、応答信号１９０１は１回目のアクセスか２回目のアクセスかを示す。１回目の場合はブリッジＤ１２が出力するライトデータ１２０３を周辺ライトデータ比較回路１９の内部に記憶し、ブリッジＤ１２は周辺モジュールへのライトアクセスは実行しない。
【００４９】
２回目の場合はブリッジＤ１２が出力するライトデータ１２０３を周辺ライトデータ比較回路１９が内部に記憶している１回目のデータと比較を行い、一致か不一致かの結果を応答信号１９０１として返す。
【００５０】
ブリッジＤ１２は応答信号１９０１が一致の場合に周辺モジュールへのライトアクセスを実行する。不一致の場合ライトアクセスは実行せずに、周辺ライトデータ比較回路１９は割り込みコントローラ１７に割り込み要求１９０２を出力する。
【００５１】
周辺バス１３は、コマンド１３０１、アドレス１３０２、リードデータ１３０３、ライトデータ１３０４のデータからなる。周辺バスインタフェース１９１１は、周辺バス１３からアドレスレジスタ１９１２へのデータの書き込みと読み出しを行う。
【００５２】
アドレスレジスタ１９１２は比較を伴うライトアクセスの対象となる周辺モジュールレジスタアドレスを登録する。制御レジスタ１９１３はアドレスレジスタ１９１２に登録されたアドレスへのライト回数を保持する。
【００５３】
アドレス比較回路１９１４は、ブリッジＤが出力する周辺ライトデータ比較要求の要求信号１２０１をデコードし、ＡＣＨＫの場合にアドレス入力１２０２がアドレスレジスタ１９１２に登録されているかチェックする。登録されていない場合、比較を伴わないシングルライトと判断し、応答出力回路１９１５は応答１９０１にＳＷを出力する。
【００５４】
登録されている場合、制御レジスタ１９１３からライト回数を読み出す。１回目の場合、応答出力回路１９１５は応答１９０１にＤＷ１（デュアルライトの１回目）を出力し、次のサイクルでライトデータ入力１２０３をデータレジスタ１９１６に書き込む。
【００５５】
２回目の場合、応答出力回路１９１５は応答１９０１にＤＷ２（デュアルライトの２回目）を出力し、次のサイクルで、データ比較回路１９１７で、ライトデータ入力１２０３とデータレジスタ１９１６から読み出した１回目のライトデータを比較する。信号１９９１は比較結果が一致か不一致かを示す。また不一致の場合は割り込みコントローラへの割り込み要求１９０２が出力される。
【００５６】
次に、図４〜図１１により、本発明の実施の形態１に係るマイクロコントローラの動作について説明する。図４〜図８は本発明の実施の形態１に係るマイクロコントローラの周辺モジュールへのアクセスのタイミングチャートを示す図であり、図４は周辺モジュールへのリードアクセスのタイミングチャート、図５は周辺モジュールへの比較を伴わないライトアクセスのタイミングチャート、図６は周辺モジュールへの比較を伴う１回目のライトアクセスのタイミングチャート、図７は周辺モジュールへの比較を伴う２回目のライトアクセスで比較結果が一致する場合のタイミングチャート、図８は周辺モジュールへの比較を伴う２回目のライトアクセスで比較結果が不一致となる場合のタイミングチャートを示している。
【００５７】
図９〜図１１は本発明の実施の形態１に係るマイクロコントローラで使用されるメモリマップレジスタであるレジスタの構成を示す図であり、それぞれ別の構成の例を示している。
【００５８】
まず、周辺モジュールへのリードアクセスのタイミングチャートは図４に示すように、クロックがＴ１のサイクルで、システムバス９のコマンド９０１にはＲ（リード）、アドレス９０２には値Ａ１が出力される。
【００５９】
次のＴ２サイクルでリードデータ９０３に読み出しができないため、ウエイト９０５をＨｉｇｈにしてリードアクセスにウエイトをかける。周辺ライトデータ比較要求回路１２１６は要求信号１２０１をＮＲＱ（ＮＯ  ＲＥＱＵＥＳＴ：要求なし）とし、Ｔ２サイクルで周辺バスコマンド１３０１とアドレス１３０２を出力し、Ｔ３サイクルで読み出されたリードデータ１３０３の値ＲＤ１を次のＴ４サイクルでシステムバスリードデータ９０３に出力してリードアクセスが完了する。
【００６０】
また、周辺モジュールへの比較を伴わないライトアクセスのタイミングチャートは図５に示すように、クロックがＴ１のサイクルで、システムバス９のコマンド９０１にはＷ（ライト）、アドレス９０２には値Ａ２が出力される。
【００６１】
次のＴ２サイクルでライトデータ９０４に値ＷＤ２が出力される。周辺モジュールへのライトを完了していないため、ウエイト９０５をＨｉｇｈにしてライトアクセスにウエイトをかける。周辺ライトデータ比較要求回路１２１６はＴ２サイクルで要求信号１２０１をＡＣＨＫ（Ａｄｄｒｅｓｓ  Ｃｈｅｃｋ：アドレスチェック）とし、アドレス１２０２に値Ａ２を出力する。
【００６２】
また、周辺バスインタフェース１２１５に対して周辺バス制御１２６５をＷＡＩＴにし、周辺バスアクセスを待たせる。周辺ライトデータ比較回路１９からの応答信号１９０１がＳＷ（シングルライト）を示すと、次のＴ３サイクルで周辺バス制御１２６５をＷ（ライト）とし、周辺バスコマンド１３０１とアドレス１３０２を出力し、Ｔ４サイクルでライトデータ１３０４を出力してライトアクセスが完了する。
【００６３】
また、周辺モジュールへの比較を伴う１回目のライトアクセスのタイミングチャートは図６に示すように、クロックがＴ１のサイクルで、システムバス９のコマンド９０１にはＷ、アドレス９０２には値Ａ３が出力される。
【００６４】
次のＴ２サイクルでライトデータ９０４に値ＷＤ３が出力される。周辺モジュールへのライトを完了していないため、ウエイト９０５をＨｉｇｈにしてライトアクセスにウエイトをかける。
【００６５】
周辺ライトデータ比較要求回路１２１６はＴ２サイクルで要求信号１２０１をＡＣＨＫとし、アドレス１２０２に値Ａ３を出力する。
【００６６】
また、周辺バスインタフェース１２１５に対して周辺バス制御１２６５をＷＡＩＴにし、周辺バスアクセスを待たせる。
【００６７】
周辺ライトデータ比較回路１９からの応答信号１９０１がＤＷ１（デュアルライトの１回目）を示すと、次のＴ３サイクルで要求信号１２０１をＤＷＲ（Ｄａｔａ  Ｗｒｉｔｅ：データライト）とし、ライトデータ１２０３にＷＤ３を出力する。
【００６８】
また、周辺バス制御１２６５をＮＵＬ（Ｎｕｌｌｉｆｙ：無効化）とし、周辺バスコマンド１３０１をＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ：何も実行しない）のままとし、アクセスを実行しない。
【００６９】
一方、システムバス９はウエイト９０５をＬｏｗにしてライトアクセスのウエイトを解除しライトアクセスが完了する。
【００７０】
また、周辺モジュールへの比較を伴う２回目のライトアクセスで比較結果が一致する場合のタイミングチャートは図７に示すように、クロックがＴ１のサイクルで、システムバス９のコマンド９０１にはＷ、アドレス９０２には値Ａ４が出力される。
【００７１】
次のＴ２サイクルでライトデータ９０４に値ＷＤ４が出力される。周辺モジュールへのライトを完了していないため、ウエイト９０５をＨｉｇｈにしてライトアクセスにウエイトをかける。
【００７２】
周辺ライトデータ比較要求回路１２１６はＴ２サイクルで要求信号１２０１をＡＣＨＫとし、アドレス１２０２に値Ａ４を出力する。
【００７３】
また、周辺バスインタフェースに対して周辺バス制御１２６５をＷＡＩＴにし、周辺バスアクセスを待たせる。周辺ライトデータ比較回路からの応答信号１９０１がＤＷ２（デュアルライトの２回目）を示すと、次のＴ３サイクルで要求信号１２０１をＤＣＨＫ（Ｄａｔａ  Ｃｈｅｃｋ：データチェック）とし、ライトデータ１２０３に値ＷＤ４を出力する。
【００７４】
また、周辺バス制御１２６５はＷＡＩＴのままにし、周辺バスアクセスを待たせる。応答信号１９０１がＭＡＴ（Ｍａｔｃｈ：一致）を示すと、次のＴ４サイクルで周辺バス制御１２６５をＷとし、周辺バスコマンド１３０１とアドレス１３０２を出力し、Ｔ５サイクルでライトデータ１３０４を出力してライトアクセスが完了する。
【００７５】
また、周辺モジュールへの比較を伴う２回目のライトアクセスで比較結果が不一致となる場合のタイミングチャートは図８に示すように、クロックがＴ１のサイクルで、システムバス９のコマンド９０１にはＷ、アドレス９０２には値Ａ５が出力される。
【００７６】
次のＴ２サイクルでライトデータ９０４に値ＷＤ５が出力される。周辺モジュールへのライトを完了していないため、ウエイト９０５をＨｉｇｈにしてライトアクセスにウエイトをかける。
【００７７】
周辺ライトデータ比較要求回路１２１６はＴ２サイクルで要求信号１２０１をＡＣＨＫとし、アドレス１２０２に値Ａ５を出力する。
【００７８】
また、周辺バスインタフェースに対して周辺バス制御１２６５をＷＡＩＴにし、周辺バスアクセスを待たせる。周辺ライトデータ比較回路からの応答信号１９０１がＤＷ２を示すと、次のＴ３サイクルで要求信号１２０１をＤＣＨＫとし、ライトデータ１２０３に値ＷＤ５を出力する。
【００７９】
また、周辺バス制御１２６５はＷＡＩＴのままにし、周辺バスアクセスを待たせる。応答信号１９０１がＭＩＳ（Ｍｉｓｍａｔｃｈ：不一致）を示すと、次のＴ４サイクルで周辺バス制御１２６５をＮＵＬとし、周辺バスコマンド１３０１をＮＯＰのままとし、アクセスを実行しない。
【００８０】
一方、システムバス９はウエイト９０５をＬｏｗにしてライトアクセスのウエイトを解除しライトアクセスが完了する。
【００８１】
以上の処理により、周辺モジュールへのライトアクセスの場合に、比較の対象である場合には、２回のデータを比較することにより、ライトデータの信頼性を高めることが可能である。
【００８２】
また、ライトデータの２回の比較により、不一致だった場合、ＣＰＵＡ１、ＣＰＵＢ５や、その他の回路などの故障の疑いがあるということで、その旨のデータを出力することにより、故障を検出することも可能である。
【００８３】
図３に示すアドレスレジスタ１９１２、制御レジスタ１９１３、データレジスタ１９１６の構成例としては、まず、図９に示すように、比較を伴うライトアクセスの対象となる周辺モジュールレジスタアドレスを登録番号０から７までの８通りを登録できる場合の一例である。
【００８４】
図９では、アドレスレジスタＡＲ０〜ＡＲ７はバイトを単位とするアドレスを保持し、簡単のため８ビットサイズとしている。制御レジスタＣＲ０〜ＣＲ７はそれぞれアドレスレジスタＡＲ０〜ＡＲ７に対応し、ライト回数を保持する。０は書き込みなし、１は１回書き込みを意味する。データレジスタは１回目のライトデータを保持する。
【００８５】
また、アドレスレジスタ１９１２、制御レジスタ１９１３、データレジスタ１９１６の構成として、図１０に示す構成とすることもできる。
【００８６】
図１０では、アドレスレジスタはＡＲ０とＡＲ１の２つで、４ビットのロングワードアドレス部と４ビットのデータ有効部に分けている。
【００８７】
比較を伴うライトアクセスの対象となる周辺モジュールレジスタアドレスは、ロングワードを境界とするアドレスから連続する４つのバイトとなる。アドレスレジスタのデータ有効部はバイトごとに比較を伴うかどうかを設定する。
【００８８】
図９に示す構成と比較すると、アドレスの指定に制限があるがアドレスレジスタのサイズを小さくすることができる。
【００８９】
また、アドレスレジスタ１９１２、制御レジスタ１９１３、データレジスタ１９１６の構成として、図１１に示す構成とすることもできる。
【００９０】
図１１では、図９の構成に対して、属性レジスタＣＲ０〜ＣＲ７が１ビットから２ビットになり、ライト回数とＣＰＵ番号を保持するようにしている。
【００９１】
ＣＰＵ番号を持つことにより１回目と２回目のＣＰＵ番号が異なっているかをチェックできるようになる。
【００９２】
（実施の形態２）
実施の形態２は、実施の形態１において、周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６のそれぞれで、ライトデータの比較を行う機能を持つようにしたものである。
【００９３】
図１２により、本発明の実施の形態２に係るマイクロコントローラ内の周辺モジュールの構成について説明する。図１２は本発明の実施の形態２に係るマイクロコントローラ内の周辺モジュールの構成を示す構成図である。
【００９４】
図１２において、周辺モジュールは、周辺バスインタフェース１４１０、バッファ１４１１、周辺レジスタＰＲ０〜ＰＲ３（１４１２〜１４１５）、属性レジスタＷＣＲ０〜ＷＣＲ３（１４１６〜１４１９）、書き込み制御回路１４２０、読み出し制御回路１４２１、バッファ１４２２、比較器１４２３から構成されている。
【００９５】
周辺レジスタＰＲ０〜ＰＲ３（１４１２〜１４１５）は、周辺バス１３からのアクセスに対してデータの書き込みおよび読み出しが行われる。
【００９６】
属性レジスタＷＣＲ０〜ＷＣＲ３（１４１６〜１４１９）は、それぞれ周辺レジスタＰＲ０〜ＰＲ３（１４１２〜１４１５）について比較有効ビットとライト回数ビットを持つ。
【００９７】
例えば、周辺レジスタＰＲ０（１４１２）が比較有効で１回目のライトが行われていない場合、属性レジスタＷＣＲ０（１４１６）の比較有効ビットは１（有効）、ライト回数は０となっている。周辺レジスタＰＲ０（１４１２）への書き込みが行われると、書き込み制御回路１４２０は、属性レジスタＷＣＲ０（１４１６）のデータ１４７１を読み出してライト回数を１にして属性レジスタＷＣＲ０（１４１６）に書き戻す。
【００９８】
周辺レジスタＰＲ０（１４１２）への２回目の書き込みが行われると、書き込み制御回路１４２０は属性レジスタＷＣＲ０（１４１６）のデータ１４７１を読み出してライト回数を０にして属性レジスタＷＣＲ０（１４１６）に書き戻す。
【００９９】
一方、読み出し制御回路１４２１は周辺レジスタＰＲ０（１４１２）から１回目に書き込まれたデータを読み出す。
【０１００】
比較器１４２３は読み出し制御回路１４２１が読み出した１回目のライトデータ１４８５と２回目のライトデータ１４５４を比較する。
【０１０１】
周辺レジスタＰＲ０（１４１２）は状態レジスタであるとし、比較結果フラグを持つものとする。比較器１４２３の出力１４９１は周辺レジスタＰＲ０（１４１２）の比較結果レジスタに書き込まれる。この周辺レジスタＰＲ０（１４１２）の比較結果レジスタに書き込まれた比較結果に基づいて、周辺モジュール自身の制御や、その他の回路などの制御を行うようになっている。
【０１０２】
その他の周辺レジスタＰＲ１〜ＰＲ３（１４１３〜１４１５）、属性レジスタＷＣＲ１〜ＷＣＲ３（１４１７〜１４１９）についても同様の処理が行われる。
【０１０３】
本実施の形態では、周辺モジュールにおいても、ライトデータの比較を行うことが可能である。
【０１０４】
（実施の形態３）
実施の形態３は、実施の形態２において、周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６のそれぞれで、ライトデータの比較を行う機能を別の構成で持つようにしたものである。
【０１０５】
図１３により、本発明の実施の形態３に係るマイクロコントローラ内の周辺モジュールの構成について説明する。図１３は本発明の実施の形態３に係るマイクロコントローラ内の周辺モジュールの構成を示す構成図である。
【０１０６】
図１３において、実施の形態２の図１２と比べて、周辺レジスタ（ＰＲ０、ＰＲ１、ＰＲ０Ｂ、ＰＲ１Ｂ）（１４１２〜１４１５）は同じ４本であるが、実質は２本であり周辺レジスタＰＲ０Ｂ１４１４は周辺レジスタＰＲ０（１４１２）のバックアップ、周辺レジスタＰＲ１Ｂ１４１５は周辺レジスタＰＲ１（１４１３）のバックアップである。
【０１０７】
周辺レジスタＰＲ０Ｂ１４１４と周辺レジスタＰＲ１Ｂ１４１５はそれぞれ１回目のライトデータを保持する。
【０１０８】
２回目のライトにおいて１回目のライトデータ１４８６と２回目のライトデータ１４５４が比較器１４２３で比較され、結果１４９１が周辺レジスタＰＲ０（１４１２）の比較結果フラグに書き込まれる。比較結果１４９１は書き込み制御回路１４２０にも入力し、不一致の場合には実レジスタである周辺レジスタＰＲ０（１４１２）と周辺レジスタＰＲ１（１４１３）への書き込みが抑止される。
【０１０９】
本実施の形態では、周辺モジュールにおいても、ライトデータの比較を行うことが可能である。また、周辺レジスタのバックアップを用いて、ライトデータの比較を行うため、実レジスタである周辺レジスタＰＲ０（１４１２）と周辺レジスタＰＲ１（１４１３）に影響なくライトデータの比較を行うことが可能である。
【０１１０】
（実施の形態４）
実施の形態４は、実施の形態１〜３の周辺モジュールへのライトデータを照合する機能を有するマイクロコントローラを使用した自動車電子制御装置である。
【０１１１】
図１４により、本発明の実施の形態に係るマイクロコントローラを使用した自動車電子制御装置について説明する。図１４は本発明の実施の形態に係るマイクロコントローラを使用した自動車電子制御装置について説明するための説明図である。
【０１１２】
図１４において、自動車電子制御装置２１は、自動車２３において、エンジン２２を電子制御する装置として配置されている。この自動車電子制御装置２１内に実施の形態１〜３の周辺モジュールへのライトデータを照合する機能を有するマイクロコントローラが搭載され、自動車電子制御装置２１全体の制御を行っている。
【０１１３】
図１４に示すように、自動車２３のエンジン２２を電子制御する自動車電子制御装置２１に、周辺モジュールへのライトデータを照合する機能を有するマイクロコントローラを使用することにより、自動車２３のエンジン２２の電子制御を高速に処理できると共に、安全性も高めることが可能となる。
【０１１４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１１５】
例えば、実施の形態１では、ＣＰＵが２つの例で説明したが、ＣＰＵが１つの場合でも、本発明は適用可能である。ＣＰＵが１つの場合では、通常は、ライトデータは１回の書き込み処理で実行し、特定の処理のみライトデータを２回の書き込み処理で実行することにより、ＣＰＵの処理を低減させることができ、２回の書き込み処理を実行したものについては、信頼性を高めることが可能である。
【０１１６】
また、実施の形態１では、周辺ライトデータ比較回路１９でライトデータの比較を実行しているが、この周辺ライトデータ比較回路１９の機能をブリッジＤ１２に持たせて、ブリッジＤ１２内でライトデータの比較の処理を実行するようにしてもよい。
【０１１７】
また、実施の形態１では、メモリマップレジスタとなるレジスタは、周辺モジュールＡ１４、周辺モジュールＢ１５、…、周辺モジュールＺ１６内に配置しているが、マイクロコントローラ２０内に配置され、そのメモリマップレジスタへのライトデータにより、制御が行われれば、どこに配置されていてもよい。
【産業上の利用可能性】
【０１１８】
本発明は、複数のＣＰＵを備えたマイクロコントローラに関し、より処理能力が必要で、かつ安全性が求められる装置などに使用されるマイクロコントローラに広く適用可能である。
【符号の説明】
【０１１９】
１…第１のＣＰＵ（ＣＰＵＡ）、２…第１のメモリ（メモリＡ）、３…ＣＰＵＡ用のバス、４…ＣＰＵＡのシステムバスアクセス制御を行うブリッジＡ、５…第２のＣＰＵ（ＣＰＵＢ）、６…第２のメモリ（メモリＢ）、７…ＣＰＵＢ用のバス、８…ＣＰＵＢのシステムバスアクセス制御を行うブリッジＢ、９…システムバス、１０…外部バスアクセス制御を行うブリッジＣ、１１…外部バス、１２…周辺バスアクセスを行うブリッジＤ、１３…周辺バス、１４、１５、１６…周辺モジュール、１７…割り込みコントローラ、１９…周辺ライトデータ比較回路、１２１１…システムバスインタフェース、１２１２…コマンド・アドレスバッファ、１２１３…リードデータバッファ、１２１４…ライトデータバッファ、１２１５…周辺バスインタフェース、１２１６…周辺ライトデータ比較要求回路、１９１１…周辺バスインタフェース、１９１２…アドレスレジスタ、１９１３…制御レジスタ、１９１４…アドレス比較回路、１９１５…応答出力回路、１９１６…データレジスタ、１９１７…データ比較回路、１４１０…周辺バスインタフェース、１４１１…バッファ、１４１２〜１４１５…周辺レジスタ、１４１６〜１４１９…属性レジスタ、１４２０…書き込み制御回路、１４２１…読み出し制御回路、１４２２…バッファ、１４２３…比較器。
【図１】
2010198327.tif 000003
【図２】
2010198327.tif 000004
【図３】
2010198327.tif 000005
【図４】
2010198327.tif 000006
【図５】
2010198327.tif 000007
【図６】
2010198327.tif 000008
【図７】
2010198327.tif 000009
【図８】
2010198327.tif 000010
【図９】
2010198327.tif 000011
【図１０】
2010198327.tif 000012
【図１１】
2010198327.tif 000013
【図１２】
2010198327.tif 000014
【図１３】
2010198327.tif 000015
【図１４】
2010198327.tif 000016