(57)【要約】【課題】リセット状態からの復帰をより安全な状態で行うことができる半導体装置を提供すること【解決手段】ＣＶＭ１３０は、内部ロジック回路１２０の異常監視を行い、異常時にはＭＣＵリセット制御回路１１０に通知を行う。ＭＣＵリセット制御回路１１０は、ＣＶＭ１３０の異常監視に応じてＭＣＵ１００をリセット状態に遷移させる。ＭＣＵリセット制御回路１１０は、外部端子１４１を介して端子リセット信号（Ｓ２）を受信する。ＭＣＵリセット制御回路１１０は、この端子リセット信号（Ｓ２）に応じてＭＣＵ１００のリセット解除を行う。内部ロジック回路１２０は、リセット状態の解除の際に、内部機能の異常性を診断する自己診断プログラムを実行する。【選択図】図１
2014032558.tif 000002
【特許請求の範囲】
【請求項１】
異常状態であるか否かを示す値が設定される第１レジスタを有する監視対象ロジック回路と、
前記監視対象ロジック回路の異常検出を行い、検出時に異常通知を行うエラー検出信号を出力するとともに前記第１レジスタに異常を示す値を設定する動作監視回路と、
前記エラー検出信号に応じて各回路をリセット状態に遷移させ、外部監視回路と接続する第１外部端子からのリセット解除信号の入力によって前記リセット状態の解除を行うリセット制御回路と、を備え、
前記監視対象ロジック回路は、前記リセット状態の解除の際に前記第１レジスタを参照し、異常を示す値が設定されている場合に、内部の各機能が正常であるか否かを判定する自己診断プログラムを実行する、半導体装置。
【請求項２】
前記監視対象ロジック回路と前記動作監視回路は、異なる動作電圧で動作し、
前記動作監視回路は、前記監視対象ロジック回路の異常検出を行う検出部と、異常状態であるか否かを示す値が設定される第２レジスタと、を有し、
前記検出部は、前記監視対象ロジック回路の異常検出時に、異常通知を行うエラー検出信号を出力するとともに異常を示す値を前記第２レジスタに入力し、
前記第２レジスタは、入力された値を前記第１レジスタに入力する、請求項１に記載の半導体装置。
【請求項３】
前記第２レジスタは、異常状態であるか否かを示す値が入力されるイベント保持部と、を有し、
前記第１レジスタは、各制御信号やクロック信号に応じてデータ入出力に用いるラッチ信号を生成するデータインターフェイス部と、前記イベント保持部の出力値をサンプリングして取得するデータサンプリング部と、を備える、請求項２に記載の半導体装置。
【請求項４】
前記監視対象ロジック回路は、前記自己診断プログラムの実行結果を所定の記憶部に書き込む、請求項１に記載の半導体装置。
【請求項５】
前記監視ロジック回路は、前記自己診断プログラムの実行結果として前記記憶部の異常を検出した場合、外部システムにエラー通知を行う請求項４に記載の半導体装置。
【請求項６】
前記動作監視回路は、
前記監視対象ロジック回路の動作補償電圧の上限値よりも前記監視対象ロジック回路の動作電圧が高い場合に異常通知を行う前記エラー検出信号を出力する第１電圧比較回路と、
前記監視対象ロジック回路の動作補償電圧の下限値よりも前記監視対象ロジック回路の動作電圧が低い場合に異常通知を行う前記エラー検出信号を出力する第２電圧比較回路と、を備える請求項１に記載の半導体装置。
【請求項７】
前記リセット制御回路は、前記監視対象ロジック回路の動作電圧が前記監視対象ロジック回路の動作補償電圧の下限値よりも高くなったことを前記第２電圧比較回路が検出した場合、前記第１外部端子からの前記リセット解除信号によらずに前記リセット状態を解除する、請求項６に記載の半導体装置。
【請求項８】
前記監視ロジック回路は、高電圧異常状態であるか否かを示す値が設定される第２レジスタを有し、
前記動作監視回路は、
前記監視対象ロジック回路の動作補償電圧の上限値より更に高い高電圧値よりも前記監視対象ロジック回路の動作電圧が高い場合に異常通知を行う前記エラー検出信号を出力するとともに前記第２レジスタに高電圧異常であることを設定する第３電圧比較回路を更に備え、
前記監視ロジック回路は、前記リセット状態の解除の際に前記第１レジスタを参照し、異常を示す値が設定されている場合に、前記半導体装置の動作周波数を下げることを特徴とする請求項６に記載の半導体装置。
【請求項９】
前記監視対象ロジック回路は、
前記監視対象ロジック回路の動作検証を行うウォッチドッグタイマーに対し、通常動作時にウォッチドッグタイマークリア信号を出力する請求項１に記載の半導体装置。
【請求項１０】
請求項１〜請求項９のいずれか１項に記載の車載制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、例えば異常検出時にリセット状態に遷移する半導体装置に関する。
【背景技術】
【０００２】
近年の自動車は、走行制御を含む様々な機能を有している。これらの機能を実現するために、自動車は車載システムを搭載している。これらの車載システムの誤動作は、人命に関わる事故を引き起こす可能性がある。そのため車載システムには、フェイルセーフ機能が備えられていることが強く要求されている。
【０００３】
車載システムでは、ＭＣＵ（Micro Controller Unit）内にある内部ロジック回路の動作電圧、ＣＰＵ（Central Processing Unit）の動作、及びクロック周波数等の正常動作を監視する機構（内部動作監視機構）が備えられる。これらの内部動作監視機構が異常状態を検出した場合、車載システム内のＭＣＵをリセット状態にすることが一般的である。
【０００４】
上記の動作リセットに関連する先行文献について以下に説明する。特許文献１には、リセット信号の外部出力と外部リセット信号の入力を同一端子で兼用するデータプロセッサが開示されている。特許文献２には、ハードウェア異常が時間経過により解消されていた場合の自動復帰制御を行う電子装置が開示されている。当該電子装置では、暴走箇所の電力供給を制御することによりリセットからの復帰を行う。特許文献３にはマイコンの異常監視を行う異常監視装置の一態様が開示されている。当該異常監視装置は、突発的な異常対応のみならず、異常の生じた回数が所定数以上となった場合にマイコンのリセットを行う。特許文献４には、マイコンの異常を検出した際にマイコンへの割り込みを禁止し、その間に異常時処理を行う電子制御装置が開示されている。特許文献５には、メインマイコンとサブマイコンを含むＥＣＵを開示している。当該メインマイコンにリセット信号が入力された場合、当該メインマイコン内のＣＰＵは出力端子からの信号出力を禁止する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２３８２１１号公報
【特許文献２】特開２０１１−０９５９５５号公報
【特許文献３】特開２００４−２６５３２２号公報
【特許文献４】特開２００８−２９３４２０号公報
【特許文献５】特開２０１１−１３４０２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述のようにＭＣＵ内において異常が検出された場合にはＭＣＵをリセット状態にすることにより異常状態を回避する。ここで、ＭＣＵがリセット状態となった後に、ＭＣＵ内部の回路がリセット解除信号を出力することによりリセット状態が解除されることが一般的である。
【０００７】
しかしながら、ひとたび内部動作監視機構により異常が検出されたＭＣＵは、通常の（異常が検出されていない）ＭＣＵよりも信頼性が劣る。そのため、車載システム等の安全性が高く要求されるシステムでは、ＭＣＵ内部の回路がリセット解除信号を生成する構成は、安全性の面で十分ではない。
【０００８】
さらに、例えばＭＣＵの内部電圧が動作保障電圧よりも高くなってしまった場合、ＭＣＵ内部のトランジスタが故障する場合もある。トランジスタ故障のような異常が生じた場合には、リセット状態に遷移させたとしても当該異常を解決することができない。このような場合には、トランジスタ故障のような重要な異常性を認識できないままＭＣＵがリセット状態から通常状態に復帰してしまい、ＭＣＵ動作の安全性を保障できなくなってしまう。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、半導体装置は、リセット状態に移行した際に外部からのリセット解除信号が第１端子に入力され、かつ当該リセット解除信号の入力後に自己診断プログラムを実行した後にリセット状態からの復帰を行う。
【発明の効果】
【００１１】
前記一実施の態様によれば、リセット状態からの復帰をより安全に行うことができる半導体装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる制御システムの構成を示すブロック図である。
【図２】実施の形態１にかかるリセット信号統合回路１１２の内部構成を示すブロック図である。
【図３】実施の形態１にかかる検出電圧設定レジスタ１３１−１の構成を示す概念図である。
【図４】実施の形態１にかかる検出電圧設定レジスタ１２３−１及び検出電圧設定レジスタ１３１−１の構成を示す概念図である。
【図５】実施の形態１にかかるエラーフラグレジスタ１３４−１の構成を示す概念図である。
【図６】実施の形態１にかかるエラーフラグレジスタ１２４−１及びエラーフラグレジスタ１３４−１の構成を示す概念図である。
【図７】実施の形態１にかかるＭＣＵ１００の電圧異常時の各回路の動作や出力信号の遷移を示すタイミングチャートである。
【図８】実施の形態２にかかるＭＣＵ１００の構成を示すブロック図である。
【図９】実施の形態３にかかるＭＣＵ１００の構成を示すブロック図である。
【図１０】実施の形態４にかかる制御システムの構成を示すブロック図である。
【図１１】実施の形態５にかかる制御システムの構成を示すブロック図である。
【図１２】実施の形態５にかかるポート入出力回路の内部構成を示すブロック図である。
【図１３】実施の形態６にかかる制御システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。図１は、一般乗用車、業務用乗用車（トラック等）などに搭載され得る制御システムの構成を示すブロック図である。制御システムは、車両の制御を行うシステムの総称である。なお、以下の説明において、図面中で同一名称及び同一符号を付した処理部は同一であるものとして重複する説明は適宜省略する。
【００１４】
制御システムは、ＭＣＵ１００、及び監視ＡＳＩＣ（Application Specific Integrated Circuit）２００を備える。監視ＡＳＩＣ２００は、エラー回数カウンタ２１０、及び端子リセット制御回路２２０を備える。監視ＡＳＩＣ２００は、ＭＣＵ１００との信号入出力を行う端子２３０及び端子２３１を備える。ＭＣＵ１００は、ＭＣＵリセット制御回路１１０、内部ロジック回路１２０、及びＣＶＭ（Core Voltage Monitor）１３０を備える。またＭＣＵ１００は、監視ＡＳＩＣ２００との信号入出力に用いる端子１４０、及び端子１４１（第１外部端子）を備える。
【００１５】
まず監視ＡＳＩＣ２００の構成について説明する。エラー回数カウンタ２１０には、端子１４０及び端子２３０を介して電圧エラー信号（Ｓ１）が入力される。ここで電圧エラー信号（Ｓ１）は、後述するＣＶＭ１３０が異常を検出した場合にのみハイレベルとなる２値信号である。エラー回数カウンタ２１０は、電圧エラー信号（Ｓ１）の入力回数（すなわちエラーとなった回数。以下の説明ではエラー回数とも記載する。）をカウントアップして保持する。換言するとエラー回数カウンタ２１０は、ＭＣＵ１００のエラー状態を保持する。エラー回数カウンタ２１０は、エラー回数の情報を端子リセット制御回路２２０に供給する。
【００１６】
端子リセット制御回路２２０には、端子１４０及び端子２３０を介して電圧エラー信号（Ｓ１）が入力される。さらに、端子リセット制御回路２２０には、電圧エラー信号（Ｓ１）がハイレベルとなった場合に、エラー回数カウンタ２１０がカウントしたカウント数が入力される。
【００１７】
端子リセット制御回路２２０は、電圧エラー信号（Ｓ１）がハイレベルとなった場合に、ロウレベルの値を持つ端子リセット信号（Ｓ２）を端子２３１から出力する。ここで、端子リセット信号（Ｓ２）は、リセットを指示する場合にロウレベルに立ち下がり、リセット解除を指示する場合にハイレベルに立ち上がる２値信号である。端子リセット制御回路２２０は、端子リセット信号（Ｓ２）をロウレベルに遷移させた後に、エラー回数カウンタ２１０から入力されたエラー回数が所定値未満であるか否かを判定する。所定値未満であった場合、端子リセット信号（Ｓ２）をハイレベルに遷移させる。すなわち、端子リセット制御回路２２０は、エラー回数が所定値未満であった場合にリセット解除を指示する端子リセット信号（Ｓ２）を出力する。
【００１８】
一方、エラー回数が所定値以上である場合、端子リセット制御回路２２０は、端子リセット信号（Ｓ２）をロウレベルのままにする。そして、端子リセット制御回路２２０は、図示しない上位システムにエラー通知信号（図示せず）を送信する。ここで上位システムとは、例えば車両の乗員（ドライバー）にシステム故障を通知するコントロールパネル制御等を行う処理部である。上位システムは、端子リセット制御回路２２０からエラー通知信号を受信した場合、図示しないサブＭＣＵ等により動作を継続する等の制御を行う。
【００１９】
続いてＭＣＵ１００内部の各回路について説明する。ＭＣＵリセット制御回路１１０は、イベント保持回路１１１、およびリセット信号統合回路１１２を有する。
【００２０】
イベント保持回路１１１には、電圧エラー信号（Ｓ１）及び端子リセット信号（Ｓ２）が入力される。イベント保持回路１１１は、電圧エラー信号（Ｓ１）がハイレベルに遷移してから端子リセット信号（Ｓ２）が立ち下がる（ロウレベルに遷移する）までの期間を保持する回路である。
【００２１】
イベント保持回路１１１は、例えば一般的なＳＲ（Set-Reset）ラッチにより構成すればよい。当該ＳＲラッチのセット入力端子には、電圧エラー信号（Ｓ１）が入力される。また、当該ＳＲラッチのリセット入力端子には、端子リセット信号（Ｓ２）が入力される。イベント保持回路１１１は、出力信号（Ｓ３）をリセット信号統合回路１１２に入力する。
【００２２】
リセット信号統合回路１１２には、端子リセット信号（Ｓ２）及びイベント保持回路１１１の出力信号（Ｓ３）が入力される。リセット信号統合回路１１２は、リセット命令信号（Ｓ４）を生成する回路である。リセット命令信号（Ｓ４）は、ハイレベルの場合にリセットを指示し、ロウレベルの場合に通常状態への遷移を指示する２値信号である。
【００２３】
リセット信号統合回路１１２の構成例の詳細を図２を参照して説明する。リセット信号統合回路１１２は、例えばインバータ１１２１、及びＯＲ回路１１２２を備える。インバータ１１２１には、端子リセット信号（Ｓ２）が入力される。ＯＲ回路１１２２には、イベント保持回路１１１の出力信号（Ｓ３）及びインバータ１１２１の出力信号（端子リセット信号（Ｓ２）の反転信号）が入力される。ＯＲ回路１１１２は、両入力信号の論理和値をリセット命令信号（Ｓ４）としてリセット信号統合回路１１２に供給する。
【００２４】
内部ロジック回路１２０（監視対象ロジック回路）は、ＣＰＵ１２１、記憶部１２２、検出電圧設定レジスタ１２３−１、及びエラーフラグレジスタ１２４−１を有する。内部ロジック回路１２０は、後述するＣＶＭ１３０の監視対象となるロジック回路である。なお、内部ロジック回路１２０は、図示しないレジスタ等を適宜備えているものとする。
【００２５】
ここで、内部ロジック回路１２０と、ＭＣＵ１００内の他の回路と、は異なる動作電圧で動作することが一般的である。例えば内部ロジック回路１２０は、１．２Ｖの動作電圧で動作する。また例えばＭＣＵ１００内の他の回路は、５．０Ｖの動作電圧で動作する。内部ロジック回路１２０を低い電圧で動作させることにより、高集積化及び低消費電力化を図ることができる。
【００２６】
記憶部１２２は、任意のデータを記憶する処理部であり、ＲＡＭ（Random Access Memory）等のメモリ装置やレジスタ等を含む概念である。記憶部１２２は、例えば後述する自己診断プログラム等を保持する。
【００２７】
ＣＰＵ（Central Processing Unit）１２１は、ＭＣＵ１００内の中心的な処理装置として機能する電子回路である。ＣＰＵ１２１は、記憶部１２２や図示しない記憶装置等からプログラムを読み出して様々な数値計算や情報処理等を行う。
【００２８】
ハイレベルのリセット命令信号（Ｓ４）が内部ロジック回路１２０に入力された場合、すなわちリセットの指示が入った場合、ＣＰＵ１２１は、所定のリセット処理を行い、ＭＣＵ１００をリセット状態に遷移させる。その後にリセット命令信号（Ｓ４）がロウレベルに遷移した場合（リセット解除が指示された場合）、ＣＰＵ１２１は、ＭＣＵ１００をリセット状態から復帰させる。
【００２９】
リセット状態からの復帰とは、自己診断プログラムの実行、及び通常動作の再開を意味する。はじめにＣＰＵ１２１は、記憶部１２２に書き込まれた自己診断プログラムを読み出す。ここで自己診断プログラムとは、ＭＣＵ１００の状態を診断するための各種の診断処理が記述されたプログラムである。自己診断プログラムには、記憶部１２２やＭＣＵ１００内部の各回路（アナログ回路、デジタル回路）に対する診断処理が含まれる。例えば、自己診断プログラムには、記憶部１２２及び任意のレジスタに対して書き込みを行い、当該書込みを行った箇所（アドレス）からの読み出しを行い、書き込んだ値と読み出した値が等しいか否かを診断する処理が含まれている。同様に、自己診断プログラムには、回路の入出力の正しさを検証する（例えばＭＣＵ１００内部で生成したアナログ信号をＡ／Ｄ変換器に入力し、当該Ａ／Ｄ変換器が出力した値が所望の値となっているかを検証する）処理が含まれている。すなわち、自己診断プログラムには、ＭＣＵ１００内の各機能が正常に動作するか否かを把握するための全ての検証処理が含まれている。
【００３０】
なお自己診断プログラムは、あくまで各機能を診断する処理が記載されており、不具合の修正処理を行うものではない。そのためＣＰＵ１２１は、自己診断プログラムの実行によって異常を検出した場合、その異常を記憶部１２２（または他の記憶装置）に書き込む。詳細にはＣＰＵ１２１は、エンドユーザが指定した記憶装置１２２のアドレスに自己診断プログラムの実行結果を書き込む。これにより、どのようなエラーが生じたのかを把握することができる。なおＣＰＵ１２１は、内部ロジック回路１２０外の記憶装置に自己診断プログラムの実行結果を書き込んでも良い。さらにＣＰＵ１２１は、検出した異常の種類に応じて適切な対応を取る。以下、具体例を何点か説明する。
【００３１】
自己診断プログラムの実行によりあるレジスタの不具合を検出した場合、ＣＰＵ１２１は当該レジスタが商品安全に関する情報（例えば車両のアクセルに関する情報）を保持するレジスタであるか否かを判断する。商品安全に関する情報を保持するレジスタではない場合、ＣＰＵ１２１は当該レジスタを冗長セル等に置き換える。
【００３２】
また、自己診断プログラムの実行によりある回路の不具合を検出した場合、ＣＰＵ１２１は当該回路が代替可能であるか否かを判断し、代替可能である場合には代替処理を行う。
【００３３】
一方、不具合箇所が商品安全に関するような箇所である場合（例えば車両の走行制御に関連する箇所である場合）、ＣＰＵ１２１は、上位システムに通知を行う。上位システムに通知を行い、当該上位システムが当該ＭＣＵ１００を停止させること等により安全性を担保する。
【００３４】
なお、不具合箇所が商品安全上の観点においてそれほど重要な箇所ではない場合（例えば車両のルームライトを制御する回路等である場合）、ＣＰＵ１２１は当該不具合に対する対応処理を行わなくても良い。
【００３５】
また、自己診断プログラムの実行結果が書き込まれる記憶装置１２２の異常を検出した場合、ＣＰＵ１２１は上位システムにエラー通知を行い、リセット状態を維持しても良い。これにより、異常な書き込みを参照してエラー対応を行うことが無くなり、不要なリセット等の対応が行われることを防止することができる。以上が不具合検出時における対応例であるが、上記の例に限られないことは勿論である。
【００３６】
検出電圧設定レジスタ１２３−１は、ＣＰＵ１２１から内部ロジック回路１２０の動作補償電圧の上限値が設定されるレジスタである。検出電圧設定レジスタ１２３−１は、書き込まれた上限値を検出電圧設定レジスタ１３１−１に書き込む。検出電圧レジスタ１２３−１、後述する検出電圧設定レジスタ１３１−１、エラーフラグレジスタ１２４−１、及びエラーフラグレジスタ１３４−１の詳細については図３及び図４を参照して後述する。
【００３７】
エラーフラグレジスタ１２４−１は、後述するＣＶＭ１３０が動作電圧エラーを検出した場合に、エラーフラグが設定されるレジスタである。エラーフラグとは異常状態であるか否かを示す２値情報である（以下、異常状態を示す場合にはＯＮ、異常状態ではない場合をＯＦＦと記載する。）。エラーフラグレジスタ１２４−１には、エラーフラグレジスタ１３４−１からエラーフラグの値が書き込まれる。
【００３８】
ＣＶＭ１３０は、内部ロジック回路１２０の動作電圧の異常を検出する。なお、ＣＶＭ１３０は、内部ロジック回路１２０の動作状態の異常性を監視する動作監視回路の一態様である。ＭＣＵ１００は、用途に応じてＣＶＭ１３０に代わり、他の動作状態の異常性を監視する動作監視回路を備えても良い。
【００３９】
検出電圧設定レジスタ１３１−１は、ＣＰＵ１２１から内部ロジック回路１２０の動作補償電圧の上限値が設定されるレジスタである。基準電圧生成回路１３２−１は、検出電圧設定レジスタ１３１−１に書き込まれた値（内部ロジック回路１２０の動作保証電圧の上限値）を読み出し、当該値の電圧値を持つ信号を生成する。基準電圧生成回路１３２−１内の構成は、一般的に知られた構成であればよく、例えば定電流源や複数の抵抗値を用いた構成等が考えられる。基準電圧生成回路１３２−１は、当該電圧値を持つ信号を電圧比較回路１３３−１に供給する。
【００４０】
電圧比較回路１３３−１は、基準電圧生成回路１３２−１の出力信号の電圧と、内部ロジック回路１２０の動作電圧と、を比較する。電圧比較回路１３３−１は、内部ロジック回路１２０の動作電圧が基準電圧生成回路１３２−１の出力信号の電圧よりも高い場合、電圧エラー信号（Ｓ１）をハイレベルにして出力するとともに、エラーフラグレジスタ１３４−１にエラーフラグを設定する（エラーが生じたことを示す値を書き込む）。なお、電圧エラー信号（Ｓ１）は、内部ロジック回路１２０の異常性を示すエラー検出信号の一態様である。また電圧比較回路１３３−１は、内部ロジック回路１２０の異常を検出する検出部と解釈できる。
【００４１】
エラーフラグレジスタ１３４−１は、エラーフラグとは異常状態であるか否かを示す２値情報であるエラーフラグ（以下、異常状態を示す場合にはＯＮ、異常状態ではない場合をＯＦＦと記載する。）を保持するレジスタであり、書き込まれたエラーフラグの値をエラーフラグレジスタ１２４−１に書き込む。
【００４２】
続いて、図３及び図４を参照して検出電圧設定レジスタ１２３−１、検出電圧設定レジスタ１３１−１の構成について説明する。図１に示すＭＣＵ１００は、電圧比較に関する検出電圧設定レジスタ１２３−１及び検出電圧設定レジスタ１３１−１といった２つのレジスタ回路を持つ構成を示した概念図である。しかしながら、ＣＶＭ１３０内にのみレジスタ回路（検出電圧レジスタ１３１−１）を設ける構成も技術的には可能である。そこで、ＭＣＵ１００が電圧比較に関するレジスタ回路を１つ（１３１−１）のみ持つ場合の構成、及び図１のように電圧比較に関するレジスタ回路を２つ（１２３−１、１３１−１）持つ場合の構成をそれぞれ説明する。そして、図１のように電圧比較に関するレジスタ回路を２つ（１２３−１、１３１−１）持つ場合の構成の利点について説明する。
【００４３】
一般的にＣＰＵ１２１からレジスタ回路へのアクセスは、バスを介したアクセスにより実行される。バスアクセスに必要な信号は、以下の信号である。
＜１＞バスクロック（ＣＬＫ）
＜２＞ライトデータ（ＷＤＡＴＡ）
＜３＞リードデータ（ＲＤＡＴＡ）
＜４＞リセット（ＲＥＳＥＴ）
＜５＞アドレス信号／ＩＰ選択信号（ＡＤＤＲ／ＳＥＬ）
＜６＞イネーブル信号／ライトストローブ信号（ＥＮＡＢＬＥ／ＳＴＲＢ）
＜７＞ライト信号（ＷＲＩＴＥ）
＜８＞転送延長信号（ＲＥＡＤＹ）
なお、以下の説明では上記の＜５＞?＜８＞の信号群をまとめて「制御信号」とも呼称する。
【００４４】
図３は、ＭＣＵ１００が電圧比較に関するレジスタ回路を１つ（１３１−１）のみ持つ場合の構成を示す概念図である。検出電圧設定レジスタ１３１−１は、データ保持部１３１１、及びバスＩＦ部１３１２を備える。さらに、内部ロジック回路１２０とＣＶＭ１３０との間に各信号（上述の＜１＞〜＜８＞）に対応するレベルシフタ１５０−１〜１５０−４を有する。なお、図面中ではレベルシフタを５つ（１５０−０〜１５０−４）図示しているが、実際には各信号線に対応する数のレベルシフタが設けられる。上述のように、内部ロジック回路１２０の動作電圧（１．２Ｖ）とＣＶＭ１３０の動作電圧（５Ｖ）は異なる。そのため、上述のバスクロック（ＣＬＫ）、ライトデータ（ＷＤＡＴＡ）、リードデータ（ＲＤＡＴＡ）、リセット（ＲＥＳＥＴ）、制御信号の電圧レベルを変換するレベルシフタを必要とする。レベルシフタ１５０−０〜１５０−４は、各信号を電圧レベル変換した後に検出電圧設定レジスタ１３１−１に供給する。
【００４５】
データ保持部１３１１は、ＣＰＵ１２１から書き込まれたデータを保持する。バスＩＦ部１３１２は、内部にアドレスデコーダや制御信号のデコードを行うデコード回路を有する。
【００４６】
次に、電圧比較に関するレジスタ回路を２つ（１２３−１、１３１−１）持つ場合の構成について説明する。図４は、ＭＣＵ１００が電圧比較に関するレジスタ回路を２つ（１２３−１、１３１−１）持つ場合の構成を示す概念図である。検出電圧設定レジスタ１２３−１は、データ保持部１２３１及びバスＩＦ部１２３２を有する。検出電圧設定レジスタ１３１−１は、データ保持部１３１１を有する。さらに、内部ロジック回路１２０とＣＶＭ１３０との間にレベルシフタ１５０−５及びレベルシフタ１５０−６を有する。
【００４７】
ＣＰＵ１２１と検出電圧設定レジスタ１２３−１の間に制御信号、ライトデータ（ＷＤＡＴＡ）、リードデータ（ＲＤＡＴＡ）に関するバスアクセスが発生する。また、検出電圧設定レジスタ１２３−１にバスクロック（ＣＬＫ）及びリセット（ＲＥＳＥＴ）が入力される。
【００４８】
データ保持部１２３１は、ＣＰＵ１２１から書き込まれたデータを保持する。バスＩＦ部１２３２は、内部に制御信号をデコードするデコード回路等を有する。バスＩＦ部１２３２は、制御信号をデコードし、バスクロック（ＣＬＫ）及びリセット（ＲＥＳＥＴ）の入力を用いてラッチ信号を生成する。ここでラッチ信号とは、制御信号をデコードすることにより生成される１ショットパルスであり、データの書き込みに用いるパルス信号である。図３の構成では、検出電圧設定レジスタ１３１−１内のバスＩＦ部１３１２において制御信号をデコードしてラッチ信号を生成し、このラッチ信号を用いてデータ保持部１３１１にデータ書き込みを行う。図４の構成では、検出電圧レジスタ１３１−１は、制御信号に代わってラッチ信号を検出電圧設定レジスタ１３１−１に供給する。すなわち、図４の構成では、制御信号よりもビット幅の小さいラッチ信号を予め内部ロジック１２０内で生成し、このラッチ信号を供給している。
【００４９】
レベルシフタ１５０−５は、バスＩＦ部１２３２が生成したラッチ信号の電圧レベル変換を行い、変換後のラッチ信号を検出電圧設定レジスタ１３１−１に入力する。レベルシフタ１５０−６は、ライトデータ（ＷＤＡＴＡ）の電圧レベル変換を行い、変換後のライトデータ（ＷＤＡＴＡ'）を検出電圧設定レジスタ１３１−１に供給する。
【００５０】
検出電圧設定レジスタ１３１−１は、データ保持部１３１１のみを有する。換言すると検出電圧設定レジスタ１３１−１は、バスＩＦ部に相当する回路を持たない。検出電圧設定レジスタ１３１−１は、ラッチ信号を元にデータ保持部１３１１にライトデータ（ＷＤＡＴＡ）を格納する。
【００５１】
続いて、図３に示す構成と図４に示す構成の比較を行う。上述したように図３の構成（レジスタ回路が１つのみの構成）の場合、各信号線に対応する数（ＲＤＡＴＡ３２ビット＋ＷＤＡＴＡ３２ビット＋制御信号１０〜１５ビット＝７５〜８０個）のレベルシフタを必要とする。一方、図４に示す構成（レジスタ回路が２つの構成）の場合、ライトデータ（ＷＤＡＴＡ'＝３２ビット）及びラッチ信号に対応する３３個のレベルシフタのみを必要とする。すなわち、図４の構成ではレベルシフタの個数を減らすことができ、回路規模を縮小することができる。なお、図４の構成では、データ保持部を図３の構成よりも１個多く必要とするが、データ保持部はレベルシフタに比べて回路規模が小さいため、全体としての回路規模は図４に示す構成のほうが小さくできる。
【００５２】
図３に示す構成は、バスクロック（ＣＬＫ）を高電圧（５Ｖ）のＣＶＭ１３０内で扱う構成である。バスクロック（ＣＬＫ）は、定期的に値が遷移する（すなわち値が頻繁に変化する）２値信号である。このバスクロック（ＣＬＫ）を５Ｖ領域内のＣＶＭ１３０が処理するために、動作電流が大きくなってしまう。一方、図４に示す構成は、バスクロック（ＣＬＫ）を低電圧（１．２Ｖ）領域の内部ロジック回路１２０内で扱う構成であるため、動作電流を小さくすることができ、消費電力を削減することができる。さらに、図４に示す構成は高電圧（５Ｖ）領域であるＣＶＭ１３０内の回路点数を少ないため、リーク電流が低減する。
【００５３】
さらにまた、図４に示す構成は設計容易性も高い。ＣＰＵ１２１がレベルシフタにアクセスする場合に信号伝達の遅延を引き起こす可能性があり、タイミング設計に悪影響を及ぼす。図４の構成では、ＣＰＵ１２１がレベルシフタにアクセスしない構成であるため、設計の難易度を低くすることができる。
【００５４】
続いて、図５及び図６を参照してエラーフラグレジスタ１２４−１、エラーフラグレジスタ１３４−１の構成について説明する。エラーフラグに関してもＣＶＭ１３０内にのみレジスタ回路（エラーフラグレジスタ１３４−１）を設ける構成も技術的には可能である。そこで、ＭＣＵ１００が電圧比較に関するレジスタ回路を１つ（１３４−１）のみ持つ場合の構成、及び図１のように電圧比較に関するレジスタ回路を２つ（１２４−１、１３４−１）持つ場合の構成をそれぞれ説明する。
【００５５】
図５は、ＭＣＵ１００が電圧比較に関するレジスタ回路を１つ（１３４−１）のみ持つ場合の構成を示す概念図である。エラーフラグレジスタ１３４−１は、イベント保持部１３４３及びバスＩＦ部１３４２を備える。さらに、内部ロジック回路１２０とＣＶＭ１３０との間に各信号（上述の＜１＞〜＜８＞）に対応するレベルシフタ１５０−７〜１５０−１１を有する。このレベルシフタ１５０−７〜１５０−１１を介して、各信号の入出力が行われる。
【００５６】
バスＩＦ部１３４２は、内部にアドレスデコーダや制御信号のデコードを行うデコード回路を有する。イベント保持部１３４３は、ＳＲラッチにより構成されており、このＳＲラッチのセット入力端子には電圧エラー信号（Ｓ１）が入力される。また、ＳＲラッチのリセット入力端子にはＣＰＵ１２１からの信号が入力される。ＣＰＵ１２１は、自己診断プログラムの実行後に当該ＳＲラッチをリセットする。ＳＲラッチの出力は、レベルシフタ１５０−１１を介してＣＰＵ１２１に供給される。
【００５７】
図６は、ＭＣＵ１００が電圧比較に関するレジスタ回路を２つ（１２４−１、１３４−１）持つ場合の構成を示す概念図である。エラーフラグレジスタ１３４−１は、イベント保持部１３４３を有する。エラーフラグレジスタ１２４−１は、データサンプリング部１２４３及びバスＩＦ部１２４２を有する。
【００５８】
イベント保持部１３４３は、ＳＲラッチにより構成されており、このＳＲラッチのセット入力端子には電圧エラー信号（Ｓ１）が入力される。また、ＳＲラッチのリセット入力端子にはＣＰＵ１２１からの信号が入力される。ＳＲラッチの出力は、レベルシフタ１５０−１２を介してエラーフラグレジスタ１２４−１に入力される。
【００５９】
バスＩＦ部１２４２には、制御信号、バスクロック（ＣＬＫ）、リセット（ＲＥＳＥＴ）が入力される。バスＩＦ部１２４２は、制御信号をデコードし、バスクロック（ＣＬＫ）及びリセット（ＲＥＳＥＴ）の入力を用いてラッチ信号を生成する。データサンプリング部１２４３は、バスクロック（ＣＬＫ）を用いて、エラーフラグレジスタ１３４からの入力をサンプリングする。
【００６０】
本構成においても制御信号のデコード等は、エラーフラグレジスタ１２４−１において行われるため、各電圧領域を跨ぐ信号のビット幅が削減される。これにより、レベルシフタの減少による回路規模の削減、消費電力の削減等の効果を奏することができる。
【００６１】
次に、電圧異常時の各回路の動作や出力信号の遷移について図７を参照して説明する。図７は、電圧異常時の各回路の状態や出力信号を示すタイミングチャートである。本例ではタイミングＴ１１において、内部ロジック回路１２０の動作電圧が動作保障電圧よりも高くなったものとする。
【００６２】
また本例では、電圧異常に起因してＭＣＵ１００内のある機能の状態が異常となったものとする（タイミングＴ１１'）。なお、機能異常が起こるタイミングは、不定である（たとえばタイミングＴ１２の前である可能性も後である可能性もある）。
【００６３】
タイミングＴ１１以前のタイミングでは、ＭＣＵ１００は通常動作状態（ＲＵＮ）であり、ＭＣＵ１００内の各機能（回路等）も通常状態で動作する。タイミングＴ１１直後のタイミングＴ１２において、電圧比較回路１３３−１は、電圧異常を検出し、電圧エラー信号（Ｓ１）をロウレベルからハイレベルに遷移させる（Ｔ１２）。また電圧比較回路１３３−１は、エラーフラグレジスタ１３４−１を介してエラーフラグレジスタ１２４−１内のエラーフラグをＯＮに設定する。電圧エラー信号（Ｓ１）の遷移に応じて、イベント保持回路１１１は、出力信号（Ｓ３）をロウレベルからハイレベルに遷移させる（Ｔ１３）。リセット信号統合回路１１２は、出力信号（Ｓ３）のハイレベルへの遷移に応じて、リセット命令信号（Ｓ４）をロウレベルからハイレベルに遷移させる（Ｔ１３）。リセット命令信号（Ｓ４）がハイレベルとなった場合（タイミングＴ１３）、ＭＣＵ１００はリセット状態（ＲＥＳＥＴ）に遷移する。
【００６４】
次に電圧異常から復帰時の各回路の状態及び出力信号の遷移について説明する。内部ロジック回路１２０の電圧がタイミングＴ２１において通常状態となったものとする。この場合、異常状態となったＭＣＵ１００内のある機能は、通常状態となる場合もあり、ひとたび異常状態となったためにそのまま異常状態となる場合もある（図中の"異常／通常"）。
【００６５】
電圧比較回路１３３−１は、内部ロジック回路１２０が電圧異常状態から電圧通常状態に遷移したことを検出し、電圧エラー信号（Ｓ１）をハイレベルからロウレベルに遷移させる（Ｔ２２）。
【００６６】
端子リセット制御回路２２０は、電圧エラー信号（Ｓ１）の立ち上がり（Ｔ１２）に応じて、端子リセット信号（Ｓ２）をハイレベルからロウレベルに立ち下げる（タイミングＴ２３）。なお端子リセット信号（Ｓ２）の立ち下がりタイミングは、電圧異常から正常に戻るタイミング（Ｔ２１）よりも前の可能性もある。
【００６７】
イベント保持回路１１１は、端子リセット信号（Ｓ２）のロウレベルへの遷移に応じて、出力信号（Ｓ３）をハイレベルからロウレベルに遷移させる（Ｔ２４）。端子リセット制御回路２２０は、エラー回数カウンタ２１０から入力されたエラー回数が所定値未満である場合に端子リセット信号（Ｓ２）をロウレベルからハイレベルに遷移させる（Ｔ２５）。なお、図示しないもののエラー回数が所定値以上である場合、端子リセット制御回路２２０は、端子リセット信号（Ｓ２）の値の遷移を行うことなく、上位システムにエラー通知信号（図示せず）を送信する。
【００６８】
端子リセット制御回路２２０は、端子リセット信号（Ｓ２）のハイレベルへの遷移に応じて、リセット命令信号（Ｓ４）をハイレベルからロウレベルに遷移させる（Ｔ２６）。すなわち、ＭＣＵ１００に対するリセット解除が指示される。このように、外部からの信号であるリセット命令信号（Ｓ４）がロウレベルとなった場合に、リセット解除が行われる。リセット命令信号（Ｓ４）がロウレベルの遷移に応じて、ＭＣＵ１００の状態がリセット状態（ＲＥＳＥＴ）から自己診断状態に遷移する。
【００６９】
自己診断状態において、ＣＰＵ１２１は上述の自己診断プログラムを実行し、実行結果を記憶部１２２に書き込む。ＣＰＵ１２１は自己診断プログラムの実行後にエラーフラグレジスタ１２４−１内のエラーフラグをＯＦＦに設定する（Ｔ２８）。自己診断プログラムの実行により異常が無いことが確認された場合や検出された異常が無視できるような場合、ＭＣＵ１００は通常動作状態（ＲＵＮ）に遷移し、通常動作を行う（Ｔ２８）。
【００７０】
なお自己診断プログラムの実行により異常が検出された場合、ＭＣＵ１００は上述の例のように検出した異常の種類に応じて適切な対応を取る。
【００７１】
続いて、本実施の形態の効果について説明する。上述したようにひとたび異常が検出されたＭＣＵ１００は、通常の（異常が検出されていない）ＭＣＵよりも信頼性が劣る。ＭＣＵリセット制御回路１１０は、端子１４１を介して入力される端子リセット信号（Ｓ２）によってのみリセット状態からの復帰を行う。端子リセット信号（Ｓ２）は、ＭＣＵ１００の状態を監視する監視ＡＳＩＣ２００によって出力される。そのためＭＣＵ１００は、フェールセールの観点から十分な安全性を担保した上でリセット状態からの復帰を行うことができる。
【００７２】
さらにＭＣＵ１００は、リセット状態からの復帰時に自己診断プログラムを実行し、ＭＣＵ１００内の各機能の異常性を診断する。これにより、ある機能が異常状態であるか否かが不明なままＭＣＵ１００が動作状態となってしまうことを防止することができる。さらに検出した異常状態や異常個所に応じて適切な対応を行うことにより、ＭＣＵ１００の動作安全性を担保することができる。
【００７３】
上述したように、内部ロジック回路１２０とＭＣＵ１００内の他の回路の動作電圧が異なることが一般的である。図１に示すように、各動作電圧領域内にデータ受け渡しを行うレジスタ回路を設ける構成により、回路規模の縮小や消費電力の削減等の効果を奏することができる。
【００７４】
＜実施の形態２＞
本実施の形態にかかるＭＣＵ１００は、内部ロジック回路１２０の動作補償電圧の上限値のみならず下限値も考慮してＭＣＵ１００の動作を監視することを特徴とする。本実施の形態にかかるＭＣＵ１００について図８を参照して実施の形態１と異なる点を説明する。
【００７５】
図８は、本実施の形態にかかるＭＣＵ１００の構成を示すブロック図である。なお監視ＡＳＩＣ２００の構成は図１と同様であるため、図示は行わない。内部ロジック回路１２１は、図１の構成に加えて検出電圧設定レジスタ１２３−２及びエラーフラグレジスタ１２４−２を備える。ＣＶＭ１３０は、図１の構成に加えて検出電圧設定レジスタ１３１−２、基準電圧生成回路１３２−２、電圧比較回路１３３−２、及びエラーフラグレジスタ１３４−２を備える。さらにＭＣＵ１００は、ＯＲ回路１６０を有する。
【００７６】
検出電圧設定レジスタ１３１−２は、ＣＰＵ１２１から内部ロジック回路１２０の動作補償電圧の下限値が設定されるレジスタである。基準電圧生成回路１３２−２は、検出電圧設定レジスタ１３１−２に書き込まれた値（内部ロジック回路１２０の動作保証電圧の下限値）を読み出し、当該値の電圧値を持つ信号を生成する。
【００７７】
電圧比較回路１３３−２は、基準電圧生成回路１３２−２の出力信号の電圧と、内部ロジック回路１２０の動作電圧と、を比較する。電圧比較回路１３３−２は、内部ロジック回路１２０の動作電圧が基準電圧生成回路１３２−２の出力信号の電圧よりも低い場合、電圧エラー信号（Ｓ１−２）をハイレベルにしてＯＲ回路１６０及びリセット信号統合回路１１２に出力するとともに、エラーフラグレジスタ１３４−２にエラーフラグを設定する（エラーが生じたことを示す値（ＯＮ）を書き込む）。
【００７８】
なお、電圧比較回路１３２−１の出力する電圧エラー信号（Ｓ１−１）は、図１における電圧エラー信号（Ｓ１）と対応する。電圧エラー信号（Ｓ１−１）は、イベント保持回路１１１に入力される。ＯＲ回路１６０は、電圧エラー信号（Ｓ１−１）と電圧エラー信号（Ｓ１−２）の論理和値を電圧エラー信号（Ｓ１）として端子１４０から監視ＡＳＩＣ２００に出力する。
【００７９】
リセット信号統合回路１１２には、電圧エラー信号（Ｓ１−２）が入力される。本実施の形態にかかるリセット信号統合回路１１２は、図２に示す構成において、ＯＲ回路１１２２に対して電圧エラー信号（Ｓ１−２）が更に入力される。ＯＲ回路１１２２は、３入力の論理和値をリセット命令信号（Ｓ４）として出力する。
【００８０】
すなわちリセット信号統合回路１１２は、内部ロジック回路１２０の動作電圧が動作補償電圧の下限値を下回り、その後に動作補償電圧の範囲となった場合には、端子１４１からの端子リセット信号（Ｓ２）に関わらずリセット命令信号（Ｓ４）をロウレベル（すなわちリセットの解除を指示する値）に遷移させる。
【００８１】
ＣＰＵ１２１は、リセット状態からの復帰時にエラーフラグレジスタ１２４−１及びエラーフラグレジスタ１２４−２の保持するエラーフラグを参照する。エラーフラグレジスタ１２４−１のエラーフラグがＯＮに設定されている場合、すなわち内部ロジック回路１２０の動作電圧が動作補償電圧の上限値よりも高かった場合、ＣＰＵ１２１は自己診断プログラムを実行する。一方、エラーフラグレジスタ１２４−２のエラーフラグがＯＮに設定されている場合、すなわち内部ロジック回路１２０の動作電圧が動作補償電圧の下限値よりも低かった場合、ＣＰＵ１２１は自己診断プログラムを実行することなく即座に通常状態に移行する。
【００８２】
続いて本実施の形態にかかるＭＣＵ１００の効果について説明する。一般的に動作補償電圧よりも高い電圧で内部ロジック回路１２０が動作した場合、内部のトランジスタが破壊される可能性がある。一方で動作補償電圧よりも低い電圧で内部ロジック回路１２０が動作した場合、出力値等の補償は出来ないものの上述のトランジスタの破壊等の重大な問題は生じない。
【００８３】
本実施の形態では、内部ロジック回路１２０の動作電圧が動作補償電圧の上限値よりも高い状態から復帰した場合、ＣＰＵ１２１は自己診断プログラムを実行する。一方、内部ロジック回路１２０の動作電圧が動作補償電圧の下限値よりも低い状態から復帰した場合、ＣＰＵ１２１は自己診断プログラムを実行することなく通常動作に移行する。これにより、トランジスタの破壊等の重大な問題がある状態のままＭＣＵ１００が動作することを回避するとともに、重大な問題が無いと思われる場合には即座に通常状態に遷移することができる。
【００８４】
なおＣＰＵ１２１は、エラーフラグレジスタ１２４−２のエラーフラグが設定されていた場合には自己診断プログラムを実行しなくても良いことを確実に認識することが出来る。
【００８５】
＜実施の形態３＞
本実施の形態では、内部ロジック回路１２０の動作電圧が動作補償電圧を大幅に超えた場合の対応を行うことを特徴とする。以下、実施の形態１と異なる点を説明する。
【００８６】
図９は、本実施の形態にかかるＭＣＵ１００の構成を示すブロック図である。内部ロジック回路１２１は、図１の構成に加えて検出電圧設定レジスタ１２３−３及びエラーフラグレジスタ１２４−３を備える。ＣＶＭ１３０は、図１の構成に加えて検出電圧設定レジスタ１３１−３、基準電圧生成回路１３２−３、電圧比較回路１３３−３、及びエラーフラグレジスタ１３４−３を備える。さらにＭＣＵ１００は、ＯＲ回路１６０を有する。
【００８７】
検出電圧設定レジスタ１３１−３は、ＣＰＵ１２１から内部ロジック回路１２０の動作補償電圧の上限値よりも高い値（例えば上限値＋０．２Ｖ）が設定されるレジスタである。基準電圧生成回路１３２−３は、検出電圧設定レジスタ１３１−３に書き込まれた値（内部ロジック回路１２０の動作保証電圧の上限値よりも高い値）を読み出し、当該値の電圧値を持つ信号を生成する。
【００８８】
電圧比較回路１３３−３は、基準電圧生成回路１３２−３の出力信号の電圧と、内部ロジック回路１２０の動作電圧と、を比較する。電圧比較回路１３３−３は、内部ロジック回路１２０の動作電圧が基準電圧生成回路１３２−３の出力信号の電圧よりも高い場合、電圧エラー信号（Ｓ１−３）をハイレベルにしてＯＲ回路１６０に出力するとともに、エラーフラグレジスタ１３４−３にエラーフラグを設定する（エラーが生じたことを示す値（ＯＮ）を書き込む）。なお、電圧比較回路１３２−１の出力する電圧エラー信号（Ｓ１−１）は、図１における電圧エラー信号（Ｓ１）と対応する。
【００８９】
ＣＰＵ１２１は、ＭＣＵ１００の動作周波数を内部設定により制御する。ＣＰＵ１２１は、通常状態では高速周波数（例えば９６〜１６０ＭＨｚ）でＭＣＵ１００を動作させ、リセット状態では中速周波数（例えば８ＭＨｚ）でＭＣＵ１００を動作させる。ＣＰＵ１２１は、リセット状態からの復帰時にエラーフラグレジスタ１２４−１及びエラーフラグレジスタ１２４−３の保持するエラーフラグを参照する。エラーフラグレジスタ１２４−３のエラーフラグがＯＮに設定されている場合、ＣＰＵ１２１は、最低レベルでの動作周波数（例えば２４０ｋＨｚ）にＣＰＵ内部の設定を変更する。すなわちＭＣＵ１００を最低動作周波数で動作させる。ＣＰＵ１２１は、その後に自己診断プログラムを実行する。ＣＰＵ１２１は、自己診断プログラムの実行後に端子１４２からアラーム信号を監視ＡＳＩＣ２００に通知する。
【００９０】
監視ＡＳＩＣ２００は、アラーム信号を受信した場合に所定の対応（例えばＭＣＵ１００をリセット状態のままにする、上位システムに通知する）を行う。なお、この所定の対応とは、ＭＣＵ１００の用途等に応じて定められれば良い。
【００９１】
続いて本実施の形態の効果について説明する。上述のようにＭＣＵ１００は、内部ロジック回路１２０の動作電圧が動作補償電圧を大幅に超えた場合に、最低動作周波数（例えば２４０ｋＨｚ）で通常動作を行う。これにより、再び電圧エラーが起こる可能性を低くし、ＭＣＵ１００の動作安全を図ることができる。更に、内部ロジック回路１２０の動作電圧が動作補償電圧を大幅に超えた場合、ＭＣＵ１００はアラーム信号を端子１４２を介して監視ＡＳＩＣ２００に通知する。これにより、監視ＡＳＩＣ２００は、ＭＣＵ１００の用途に応じた対応処理を行うことができる。
【００９２】
＜実施の形態４＞
本実施の形態では、さらにウォッチドッグタイマーによる異常監視を行うことを特徴とする。以下、実施の形態１と異なる点を説明する。
【００９３】
図１０は、本実施の形態の構成を示すブロック図である。なお図８において、ＭＣＵリセット制御回路１１０、内部ロジック回路１２０、ＣＶＭ１３０の内部構成は図１と同様であるため、当該回路は簡略記載としている。
【００９４】
内部ロジック回路１２０は、端子１４３を介してＭＣＵ監視ＷＤＴ（ウォッチドッグタイマー）３００と接続する。ＭＣＵ監視ＷＤＴ３００は、ＣＰＵ１２１の動作正常性を確認するハードウェア時間計測器である。ＭＣＵ監視ＷＤＴ３００は、内部にカウンタを備え、カウント処理を行う。ＣＰＵ１２１は、ＭＣＵ１００の通常状態において定期的にウォッチドッグタイマークリア信号（Ｓ５）を出力する。ＭＣＵ監視ＷＤＴ３００は、内部ロジック回路１２０からウォッチドッグタイマークリア信号（Ｓ５）が入力された場合に内部カウント値をクリアする。ＭＣＵ監視ＷＤＴ３００は、カウント数が所定数に達した場合、ＣＰＵ１２１が正常動作していないと判断し、上位システムに対してエラー通知を行う。
【００９５】
ここで、エラーを示す値（ハイレベル）を持つ電圧エラー信号（Ｓ１）が出力されている間に、端子２３１と端子１４１の間において信号線の断線が生じたと仮定する。この場合、端子リセット信号（Ｓ２）が入力されず、ＭＣＵ１００がリセット状態から通常状態へ遷移しない。すなわちＣＰＵ１２１は、リセット状態のままとなりウォッチドッグタイマークリア信号（Ｓ５）を出力しない。これによりＭＣＵ監視ＷＤＴ３００は、ＣＰＵ１２１が正常に動作していないと判断し、上位システムに対してエラー通知を行う。
【００９６】
次に、端子２３０と端子１４０との間に信号線の断線が生じている間に、エラーを示す値（ハイレベル）を持つ電圧エラー信号（Ｓ１）がＣＶＭ１３０から出力されたと仮定する。この場合、電圧エラー信号（Ｓ１）が監視ＡＳＩＣ２００に入力されないため、リセット解除を指示する端子リセット信号（Ｓ２）がＭＣＵリセット制御回路１１０に入力されない。この場合、ＭＣＵ１００がリセット状態のままとなり、ウォッチドッグタイマークリア信号（Ｓ５）を出力しない。これによりＭＣＵ監視ＷＤＴ３００は、ＣＰＵ１２１が正常に動作していないと判断し、上位システムに対してエラー通知を行う。
【００９７】
続いて本実施の形態の効果について説明する。本実施の形態では、内部ロジック回路１２０がＭＣＵ監視ＷＤＴ３００と接続している。実施の形態１と同様に、ＭＣＵ１００は、監視ＡＳＩＣ２００と接続する端子１４１から入力される端子リセット信号（Ｓ２）によってリセット状態からの復帰を行う。上述したように、ＭＣＵ１００は、内部信号ではなく、外部からの端子リセット信号（Ｓ２）によるリセット状態からの復帰を行うことにより信頼性の高い状態で通常状態に遷移することができる。そのため本実施の形態の構成では、ＣＰＵ１２１は不安定な状態のままウォッチドッグタイマークリア信号（Ｓ５）を出力することが無くなる。これによりＭＣＵ監視ＷＤＴ３００は、より正確にＣＰＵ１２１の動作監視を行うことができる。
【００９８】
＜実施の形態５＞
本実施の形態にかかるＭＣＵ１００は、ポート入出力回路を考慮した構成であることを特徴とする。本実施の形態にかかるＭＣＵ１００について、実施の形態１と異なる点を以下に説明する。
【００９９】
はじめにＭＣＵ１００内部に備えられるポート入出力回路について説明する。ポート入出力回路は、ＭＣＵ１００外部にある制御対象回路とのデータ入出力の制御を行うインターフェイスとして動作する。ポート入出力回路は、上述の内部ロジック回路１２０からのデータ出力、または内部ロジック回路１２０へのデータ入力を制御する。
【０１００】
ここで内部ロジック回路１２０が異常状態となった場合、内部ロジック回路１２０と外部の制御対象回路とのインターフェイスとなるポート入出力回路からの出力値も不定値となる可能性がある。すなわち、ポート入出力回路から制御対象回路に対して意図しない出力値が供給されてしまう可能性がある。また、ポート入出力回路が意図しないデータ出力を行うことにより制御対象回路のデータ出力とのデータ衝突を引き起こす可能性がある。本実施の形態では、このポート入出力回路からの不定値の出力を回避する機能を提供する。
【０１０１】
図１１は、本実施の形態にかかる構成を示すブロック図である。本実施の形態にかかるＭＣＵ１００は、図１に示す構成に加えてポート入出力回路１７０を有する。内部ロジック回路１２０は、ポート入出力回路１７０を介して制御対象回路４００とのデータ入出力処理を行う。
【０１０２】
制御対象回路４００は、内部ロジック回路１２０とのデータのやり取りを行う任意の回路である。ポート入出力回路１７０は、端子１４４を介して制御対象回路４００と接続する。ポート入出力回路１７０には、端子リセット信号（Ｓ２）が入力される。図１２を参照して、ポート入出力回路１７０の詳細構成例を説明する。
【０１０３】
図１２は、ポート入出力回路１７０の構成を示すブロック図である。ポート入出力回路１７０は、ＡＮＤ回路１７１、ＡＮＤ回路１７２、ＡＮＤ回路１７３、インバータ１７４、ＮＯＲ回路１７５、ＮＡＮＤ回路１７６、ＮＭＯＳ１７７、及びＰＭＯＳ１７８を備える。図１２は、端子リセット信号（Ｓ２）がロウレベル（０）の場合の各回路の出力値を示している。端子リセット信号（Ｓ２）がロウレベル（０）の場合、内部ロジック回路１２０はリセット状態となり、内部ロジック回路１２０からの各出力信号（ポート入力許可信号、ポート出力許可信号、ポート出力データ）は不定値となる可能性がある。以下、これらの信号が不定値となったものとして説明する。なお、前述のように内部ロジック回路１２０の動作電圧とＭＣＵ１００内の他の領域の動作電圧は異なるため、内部ロジック回路１２０と他の領域の回路との間にはレベルシフタが適宜設けられる。
【０１０４】
ＡＮＤ回路１７１は、ポート入力許可信号と端子リセット信号（Ｓ２）との論理積値をＡＮＤ回路１７２に入力する。ＡＮＤ回路１７２は、端子１４４からの入力とＡＮＤ回路１７１の出力信号との論理積値をポート入力データとして内部ロジック回路１２０に供給する。
【０１０５】
ＡＮＤ回路１７３は、ポート出力許可信号と端子リセット信号（Ｓ２）との論理積値をインバータ１７４及びＮＡＮＤ回路１７６に入力する。インバータ１７４は、ＡＮＤ回路１７３の出力値を反転してＮＯＲ回路１７５に入力する。ＮＯＲ回路１７５は、インバータ１７４の出力値とポート出力データの否定論理和値をＮＭＯＳ１７７のゲートに入力する。ＮＡＮＤ回路１７６は、ポート出力データとＡＮＤ回路１７３の出力値との否定論理積値をＰＭＯＳ１７８のゲートに入力する。ＮＭＯＳ１７７とＰＭＯＳ１７８は、図示するように縦積みで接続される。これにより、端子１４４から出力値が出力される。
【０１０６】
図示するように、端子リセット信号（Ｓ２）がロウレベル、すなわちリセットを指示する値である場合、端子１４４の端子状態はＨｉ−Ｚ状態となる。つまり、リセット状態となった場合の制御対象回路４００へは不定値が出力されないように制御する。なお、制御対象回路４００の構成等によっては、リセット状態になった場合に必ずＨｉ−Ｚ状態にする必要はなく、例えばリセット状態になった場合にロウレベルを固定的に出力しても良い。
【０１０７】
本実施の形態にかかるＭＣＵ１００は、内部ロジック回路１２０がリセット状態となった場合、すなわち不定値を出力する恐れがある場合、ポート入出力回路１７０の入力及び出力制御を固定（上述の例ではＨｉ−Ｚ）している。不定値が制御対象回路４００に出力されることを防止することにより、制御対象回路４００の誤動作の防止やデータの出力の回避を実現することができる。
【０１０８】
＜実施の形態６＞
本実施の形態にかかるＭＣＵ１００は、電圧異常のみならず他の異常をも考慮した構成であることを特徴とする。本実施の形態にかかるＭＣＵ１００は、実施の形態５の拡張であるため、実施の形態５と異なる点を以下に説明する。
【０１０９】
図１３は、本実施の形態にかかる構成を示すブロック図である。ＭＣＵ１００は、図１１の構成に加えてエラー出力回路１８０を備える。さらに、内部ロジック回路１２０は、通信ＩＰ１２７を備える。
【０１１０】
本実施の形態では、制御対象回路４００はシリアル通信が可能なメモリＩＰ、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）である。通信ＩＰ１２７は、制御対象回路４００（例えばＥＥＰＲＯＭ）とのデータ通信制御を行う。例えば通信ＩＰ１２７は、ポート入出力回路１７０及び端子１４４を介して制御対象回路４００に対してＡＣＫ等の制御信号を送信し、制御対象回路４００からＡＣＫに対する応答があるか否かを判定する。ＡＣＫに対する応答が無かった場合、通信ＩＰ１２７は、通信エラー信号（Ｓ６）をハイレベルにしてエラー出力回路１８０に供給する。通信ＩＰ１２７は、ＡＣＫ信号の他に制御対象回路４００に対する書込みデータ、読み出しアドレス等のデータをポート入出力回路１７０を介して送信する。
【０１１１】
エラー出力回路１８０には、ＭＣＵ１００内における異常を通知する全ての信号（図示しない信号も含む）が入力される。これらの通知信号は、異常であるか否かを示す２値信号である。エラー出力信号１８０は、これらの信号の論理積値を統合エラー信号（Ｓ１'）として監視ＡＳＩＣ２００に出力する。監視ＡＳＩＣ２００は、統合エラー信号（Ｓ１'）を基にエラー回数を比較する等の処理を行う。監視ＡＳＩＣ２００は、端子２３１から端子リセット信号（Ｓ２）を端子１４１に入力するとともに制御対象回路４００にも入力する。なお監視ＡＳＩＣ２００は、制御対象回路４００の用途や性質に応じて端子リセット信号（Ｓ２）を入力しない構成とすることもできる。
【０１１２】
制御対象回路４００は、端子リセット信号（Ｓ２）の入力に応じてリセット状態への遷移を行う。
【０１１３】
続いて本実施の形態の効果について説明する。上述のようにＭＣＵ１００は、内部ロジック回路１２０の電圧異常のみならず、ＥＥＰＲＯＭ等の記憶装置との通信異常の場合であってもリセット状態に遷移する。このように様々な異常を考慮してリセットを行うため、ＭＣＵ１００は安全性の高い状態でのみ動作を行うことになる。安全性の高い状態でのみ動作を行うことにより、ＭＣＵ１００の動作の信頼性を向上させることができる。
【０１１４】
さらにＭＣＵ監視ＡＳＩＣ２００は、ＭＣＵ１００のリセットを行う端子リセット信号（Ｓ２）をＭＣＵ１００の動作と関連する制御対象回路４００にも入力する。これにより、制御対象回路４００もＭＣＵ１００の異常時にリセットが行われることになり、システム全体としての信頼性を高めることができる。
【０１１５】
上述の説明では通信ＩＰ１２７が異常検出を行ったが必ずしもこれに限られず、他の異常検出を行っても良い。たとえばＣＰＵ１２１は、演算異常が生じているか否かを反転する定期プログラムを実行し、実行エラーが生じた場合にエラー出力回路１６０に通知しても良い。
【０１１６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更すること、及び各実施の形態を組み合わせることも可能である。例えば監視ＡＳＩＣ２００は、ＭＣＵ１００の異常を検出した場合に他のＭＣＵにより適宜必要なバックアップ処理を行うように指示信号を出力しても良い。
【０１１７】
上述のＭＣＵ１００は、例えば一般車両等の車載システムに用いられる。当該車載システムは、複数のＭＣＵ１００を有し、各ＭＣＵ１００はアクセル駆動制御、ブレーキ制御、ドアミラー制御、テールランプ制御、ダッシュボード制御、ルームランプ制御等の様々な用途に用いられる。
【０１１８】
さらにＭＣＵ１００は、車載システムのみならず他の情報処理システムに適宜用いられても良いことは勿論である。例えばＭＣＵ１００は、産業用ロボット等の制御等に用いられても良い。
【符号の説明】
【０１１９】
１００  ＭＣＵ
１１０  ＭＣＵリセット制御回路
１１１  イベント保持回路
１１２  リセット信号統合回路
１１２１  インバータ
１１２２  ＯＲ回路
１２０  内部ロジック回路
１２１  ＣＰＵ
１２２  記憶部
１２３−１、１２３−２、１２３−３  検出電圧設定レジスタ
１２３１  データ保持部
１２３２  バスＩＦ部
１２４−１、１２４−２、１２４−３  エラーフラグレジスタ
１２４２  バスＩＦ部
１２４３  データサンプリング部
１２７  通信ＩＰ
１３０  ＣＶＭ
１３１−１、１３１−２、１３１−３  検出電圧設定レジスタ
１３１１  データ保持部
１３１２  バスＩＦ部
１３２−１、１３２−２、１３２−３  基準電圧生成回路
１３３−１、１３３−２、１３３−３  電圧比較回路
１３４−１、１３４−２、１３４−３  エラーフラグレジスタ
１３４２  バスＩＦ部
１３４３  イベント保持部
１４０〜１４４  端子
１５０−０〜１５０−１２  レベルシフタ
１６０  ＯＲ回路
１７０  ポート入出力回路
１７１〜１７３  ＡＮＤ回路
１７４  インバータ
１７５  ＮＯＲ回路
１７６  ＮＡＮＤ回路
１７７  ＮＭＯＳ
１７８  ＰＭＯＳ
１８０  エラー出力回路
２００  監視ＡＳＩＣ
２１０  エラー回数カウンタ
２２０  端子リセット制御回路
２３０、２３１  端子
３００  ＭＣＵ監視ＷＤＴ
４００  制御対象回路
【図１】
2014032558.tif 000003
【図２】
2014032558.tif 000004
【図３】
2014032558.tif 000005
【図４】
2014032558.tif 000006
【図５】
2014032558.tif 000007
【図６】
2014032558.tif 000008
【図７】
2014032558.tif 000009
【図８】
2014032558.tif 000010
【図９】
2014032558.tif 000011
【図１０】
2014032558.tif 000012
【図１１】
2014032558.tif 000013
【図１２】
2014032558.tif 000014
【図１３】
2014032558.tif 000015