図面 (/)

技術 マイクロコンピュータ及びマイクロコンピュータシステム

出願人 ルネサスエレクトロニクス株式会社
発明者 三ッ石直幹
出願日 2014年8月5日 (6年3ヶ月経過) 出願番号 2014-159261
公開日 2016年3月22日 (4年8ヶ月経過) 公開番号 2016-038599
状態 特許登録済
技術分野 デジタル計算機の試験診断 マイクロコンピュータ エラー時の再試行 機械語命令の実行 記憶装置の信頼性向上技術 エラーの検出訂正
主要キーワード リカバリモード 命令エラー アナログモジュール 出力制御ブロック 指示入力情報 自動車制御システム 再ライト 割込入力
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年3月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (15)

課題

不揮発性記憶装置に格納されたデータの不所望な書き換えを検出すること。

解決手段

MCU100は、互いに情報をやり取りする複数の機能ブロックを有する。NVM4は、格納する情報を書き換え可能であり、予め確認用データDAT1が書き込まれている。CPU1は、NVM4から読み出した情報を処理し、又は、NVM4に情報を書き込む。異常検出部9は、複数の機能ブロック間でのデータのやり取りの異常を検出する。NVM検査部4Aは、異常検出部9が異常を検出した場合に、確認用データDAT1を読み出し、基準データDAT2と確認用データDAT1とを比較し、比較結果が一致しない場合にNVMエラーを検出する。

概要

背景

一般に、シングルチップマイクロコンピュータは、中央処理装置(CPU:Central Processing Unit)を中心にして、プログラム保持用のROM(Read Only Memory:リードオンリメモリ)、データ保持用のRAM(Random Access Memory:ランダムアクセスメモリ)、及びデータ又は信号の入出力を行うための入出力回路などの機能ブロックが、一つの半導体基板上に形成されている。

シングルチップマイクロコンピュータは、各種機器の制御に用いられる。シングルチップマイクロコンピュータは、入出力回路を介して、例えば、エンジンなどを制御する。この制御の際に、入出力回路が不所望の状態に陥った場合でも、エンジンのような制御対象誤動作故障などが発生することを防止する必要が有る。例えば、入出力回路の1つであるタイマの出力を遮断して制御対象を停止することが提案されている(特許文献1)。

また、シングルチップマイクロコンピュータでは、ROM上のプログラムを実行することで高速かつ低消費電力のシステム構築することができる。この場合、外部のメモリを使用する方式と比較して、プログラムの内容を秘匿したり、改竄を抑止したりすることが容易にできる。しかし、ROMを含む複数の機能ブロックを1つの半導体基板に形成しなければならないため、搭載可能なROM容量には限りがある。例えば、パーソナルコンピュータハードディスクの記憶容量に比べて、シングルチップマイクロコンピュータのROM容量は小さい。そのため、シングルチップマイクロコンピュータでは、ROM容量を考慮しつつ、ROMに記憶させるプログラムやデータを取捨する必要が有る。シングルチップマイクロコンピュータのROMとして、フラッシュメモリを内蔵する場合が増えている。フラッシュメモリは内容を随時書き換えられるので、デバッグチューニングバージョンアップなどが可能であり、使い勝手を向上させることができる。例えば、記憶させるプログラムやデータも、実際の使用状況を評価して取捨することができる。

近年、ランダムアクセスが可能で情報の不揮発保持が可能なメモリ(NVRAM:Non-Volatile Random Access Memory)として、磁気抵抗メモリMRAM:Magnetoresistive Random Access Memory)が提案されている(特許文献2及び3)。MRAMは、通常のRAMと同様に、リードライトを行う(ランダムアクセス)ことができる。また、書き込みにあたって、事前消去を行う必要がない。シングルチップマイクロコンピュータのプログラム保持用及び要保存のデータ格納用のROM、作業時の一時的な記憶用のRAMの代替として、プログラム用、要保存のデータ格納用、作業時の一時的な記憶領域用として兼用できるMRAMを内蔵することが考えられる。

マイクロコンピュータでは、書き換えが可能で不揮発保持が可能なメモリ(フラッシュメモリ、NVRAM)に、プログラムや、固定的なデータを書き込むためのプログラム(ブートプログラム)を格納し、かつ、通常動作時にブートプログラム領域をリード/ライト禁止にする場合がある。これにより、ブートプログラム領域は保護される。マイクロコンピュータを所定の動作モード(ブートモード)に設定すると、マイクロコンピュータはブートプログラムを実行して、プログラムや固定的なデータの書き込み動作を実行する(特許文献4)。

また、ブートプログラムの実行中などに、書き換えが可能で不揮発保持が可能なメモリやマイクロコンピュータに不所望の電源異常などが発生し、メモリへの書き込みが正常に実行できなかった場合の再書き込みを行う手法が提案されている(特許文献5)。また、フラッシュメモリの書き込みの制御方法も提案されている(特許文献6)。

さらに、マイクロコンピュータでノイズなどの影響で不当な命令コードが実行された場合に対処するため、不当命令例外処理が行われ、例えば初期化の後に再度所定のプログラム実行を行うことが提案されている(特許文献7)また、マイクロコンピュータのハードウェアの故障を検出するために、自己診断を行う手法も提案されている。

フラッシュメモリなどの記憶装置では、一部の記憶素子の故障や劣化による不良が生じ得る。これに対しては、ECC(Error Check and Correction)を付加して冗長性を持たせた構成とすることで、一部の記憶素子に不良があっても正常な動作を行うことができる記憶装置が提案されている(特許文献8)。

概要

不揮発性記憶装置に格納されたデータの不所望な書き換えを検出すること。MCU100は、互いに情報をやり取りする複数の機能ブロックを有する。NVM4は、格納する情報を書き換え可能であり、予め確認用データDAT1が書き込まれている。CPU1は、NVM4から読み出した情報を処理し、又は、NVM4に情報を書き込む。異常検出部9は、複数の機能ブロック間でのデータのやり取りの異常を検出する。NVM検査部4Aは、異常検出部9が異常を検出した場合に、確認用データDAT1を読み出し、基準データDAT2と確認用データDAT1とを比較し、比較結果が一致しない場合にNVMエラーを検出する。

目的

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

互いに情報をやり取りする複数の機能ブロックを有するマイクロコンピュータであって、格納する情報を書き換え可能であり、予め第1のデータが書き込まれている不揮発性記憶装置と、前記不揮発性記憶装置から読み出した情報を処理し、又は、前記不揮発性記憶装置に情報を書き込む中央処理装置と、前記複数の機能ブロック間でのデータのやり取りの異常を検出する異常検出部と、前記異常検出部が異常を検出した場合に、前記第1のデータを前記不揮発性記憶装置から読み出し、前記不揮発性記憶装置に書き込んだときの前記第1のデータの内容を示す第2のデータと、前記第1のデータと、を比較し、比較結果が一致しない場合に前記不揮発性記憶装置の異常を検出する不揮発性記憶装置検査部と、を備える、マイクロコンピュータ。

請求項2

当該マイクロコンピュータと、当該マイクロコンピュータの外部の機器との間のデータの送受を行う入出力部を更に備え、前記異常検出部が異常を検出した場合、前記入出力部は、当該マイクロコンピュータと、当該マイクロコンピュータの外部の機器との間のデータの送受を停止する、請求項1に記載のマイクロコンピュータ。

請求項3

前記不揮発性記憶装置の異常を検出した場合、前記中央処理装置は、前記不揮発性記憶装置に書き込まれるべきデータを当該マイクロコンピュータの外部から取得し、取得した前記データを前記不揮発性記憶装置に書き込み、前記不揮発性記憶装置のデータを復旧する、請求項2に記載のマイクロコンピュータ。

請求項4

前記異常検出部が異常を検出した場合、当該マイクロコンピュータは、前記異常検出部での異常検出前に対応する第1動作モードから、前記異常検出部での異常検出前後に対応する第2動作モードに遷移し、前記前記不揮発性記憶装置のデータを復旧が完了した後に、前記第2動作モードから前記第1動作モードに遷移する、請求項3に記載のマイクロコンピュータ。

請求項5

当該マイクロコンピュータの動作モードを指定する動作モード制御部を備え、前記複数の機能ブロックがリセットされ、かつ、リセットが解除されるときに、当該マイクロコンピュータは、前記動作モード制御部が指定する前記第1動作モード又は第2動作モードに対応する動作を行う、請求項4に記載のマイクロコンピュータ。

請求項6

前記不揮発性記憶装置検査部が異常を検出した場合、異常を検出したことを他の機能ブロック及び当該マイクロコンピュータの外部の機器の両方又は一方に通知する、請求項1乃至5のいずれか一項に記載のマイクロコンピュータ。

請求項7

前記異常検出部が異常を検出した場合、異常を検出したことを他の機能ブロック及び当該マイクロコンピュータの外部の機器の両方又は一方に通知する、請求項1乃至6のいずれか一項に記載のマイクロコンピュータ。

請求項8

前記複数の機能ブロックの機能の異常を検出する自己診断部を更に備え、前記自己診断部は、前記複数の機能ブロックのいずれかの機能の異常を検出した場合、異常を検出したことを他の機能ブロック及び当該マイクロコンピュータの外部の機器の両方又は一方に通知する、請求項1乃至7のいずれか一項に記載のマイクロコンピュータ。

請求項9

前記自己診断部が異常を検出した場合に、前記不揮発性記憶装置検査部が前記不揮発性記憶装置の異常の検出を行う、請求項8に記載のマイクロコンピュータ。

請求項10

前記異常検出部は、前記中央処理装置から出力される命令が前記中央処理装置において定義された命令ではない場合、前記中央処理装置の不当命令異常を検出する、請求項1乃至9のいずれか一項に記載のマイクロコンピュータ。

請求項11

前記異常検出部は、前記不揮発性記憶装置のアクセス禁止されている領域へ前記中央処理装置がアクセスした場合、前記中央処理装置のアクセス異常を検出する、請求項1乃至10のいずれか一項に記載のマイクロコンピュータ。

請求項12

外部から動作の制御を受ける被制御装置と、互いに情報をやり取りする複数の機能ブロックを有し、前記被制御装置の動作を制御するマイクロコンピュータと、を備え、前記マイクロコンピュータは、格納する情報を書き換え可能であり、予め第1のデータが書き込まれている不揮発性記憶装置と、前記不揮発性記憶装置から読み出した情報を処理し、又は、前記不揮発性記憶装置に情報を書き込む中央処理装置と、前記複数の機能ブロック間でのデータのやり取りの異常を検出する異常検出部と、前記異常検出部が異常を検出した場合に、前記第1のデータを前記不揮発性記憶装置から読み出し、前記不揮発性記憶装置に書き込んだときの前記第1のデータの内容を示す第2のデータと、前記第1のデータと、を比較し、比較結果が一致しない場合に前記不揮発性記憶装置の異常を検出する不揮発性記憶装置検査部と、を備える、マイクロコンピュータシステム

技術分野

背景技術

0002

一般に、シングルチップマイクロコンピュータは、中央処理装置(CPU:Central Processing Unit)を中心にして、プログラム保持用のROM(Read Only Memory:リードオンリメモリ)、データ保持用のRAM(Random Access Memory:ランダムアクセスメモリ)、及びデータ又は信号の入出力を行うための入出力回路などの機能ブロックが、一つの半導体基板上に形成されている。

0003

シングルチップマイクロコンピュータは、各種機器の制御に用いられる。シングルチップマイクロコンピュータは、入出力回路を介して、例えば、エンジンなどを制御する。この制御の際に、入出力回路が不所望の状態に陥った場合でも、エンジンのような制御対象誤動作故障などが発生することを防止する必要が有る。例えば、入出力回路の1つであるタイマの出力を遮断して制御対象を停止することが提案されている(特許文献1)。

0004

また、シングルチップマイクロコンピュータでは、ROM上のプログラムを実行することで高速かつ低消費電力のシステム構築することができる。この場合、外部のメモリを使用する方式と比較して、プログラムの内容を秘匿したり、改竄を抑止したりすることが容易にできる。しかし、ROMを含む複数の機能ブロックを1つの半導体基板に形成しなければならないため、搭載可能なROM容量には限りがある。例えば、パーソナルコンピュータハードディスクの記憶容量に比べて、シングルチップマイクロコンピュータのROM容量は小さい。そのため、シングルチップマイクロコンピュータでは、ROM容量を考慮しつつ、ROMに記憶させるプログラムやデータを取捨する必要が有る。シングルチップマイクロコンピュータのROMとして、フラッシュメモリを内蔵する場合が増えている。フラッシュメモリは内容を随時書き換えられるので、デバッグチューニングバージョンアップなどが可能であり、使い勝手を向上させることができる。例えば、記憶させるプログラムやデータも、実際の使用状況を評価して取捨することができる。

0005

近年、ランダムアクセスが可能で情報の不揮発保持が可能なメモリ(NVRAM:Non-Volatile Random Access Memory)として、磁気抵抗メモリMRAM:Magnetoresistive Random Access Memory)が提案されている(特許文献2及び3)。MRAMは、通常のRAMと同様に、リードライトを行う(ランダムアクセス)ことができる。また、書き込みにあたって、事前消去を行う必要がない。シングルチップマイクロコンピュータのプログラム保持用及び要保存のデータ格納用のROM、作業時の一時的な記憶用のRAMの代替として、プログラム用、要保存のデータ格納用、作業時の一時的な記憶領域用として兼用できるMRAMを内蔵することが考えられる。

0006

マイクロコンピュータでは、書き換えが可能で不揮発保持が可能なメモリ(フラッシュメモリ、NVRAM)に、プログラムや、固定的なデータを書き込むためのプログラム(ブートプログラム)を格納し、かつ、通常動作時にブートプログラム領域をリード/ライト禁止にする場合がある。これにより、ブートプログラム領域は保護される。マイクロコンピュータを所定の動作モード(ブートモード)に設定すると、マイクロコンピュータはブートプログラムを実行して、プログラムや固定的なデータの書き込み動作を実行する(特許文献4)。

0007

また、ブートプログラムの実行中などに、書き換えが可能で不揮発保持が可能なメモリやマイクロコンピュータに不所望の電源異常などが発生し、メモリへの書き込みが正常に実行できなかった場合の再書き込みを行う手法が提案されている(特許文献5)。また、フラッシュメモリの書き込みの制御方法も提案されている(特許文献6)。

0008

さらに、マイクロコンピュータでノイズなどの影響で不当な命令コードが実行された場合に対処するため、不当命令例外処理が行われ、例えば初期化の後に再度所定のプログラム実行を行うことが提案されている(特許文献7)また、マイクロコンピュータのハードウェアの故障を検出するために、自己診断を行う手法も提案されている。

0009

フラッシュメモリなどの記憶装置では、一部の記憶素子の故障や劣化による不良が生じ得る。これに対しては、ECC(Error Check and Correction)を付加して冗長性を持たせた構成とすることで、一部の記憶素子に不良があっても正常な動作を行うことができる記憶装置が提案されている(特許文献8)。

先行技術

0010

特開平8−263104号公報
特開2002−222589号公報
特開2004−86986号公報
特開2004−318330号公報
特開2001−27954号公報
特開2007−34554号公報
特開2006−171952号公報
特開2007−241625号公報

発明が解決しようとする課題

0011

ところが、発明者は、以下で説明する問題点を新たに見出した。マイクロコンピュータの動作時には、デバッグの完了したプログラムを実行するので、本来は不当な命令コードを実行することはありえない。しかし、ノイズなどによる不所望のエラーにより、正規の命令コード(例えば、H’0000)が異なる命令コード(例えば、H’1000)に変化することで、不当な命令コードが実行されることがある。変化により生じた命令コードが、マイクロコンピュータのCPUにとって定義されていない命令である場合には、不当命令例外処理が実行される。

0012

対照的に、変化により生じた命令コードがマイクロコンピュータのCPUにとって定義されているものであれば、不当命令例外処理は実行されず、変化により生じた正しくない命令コードが実行されてしまう。このことは、例えマイクロコンピュータで不当命令例外処理が実行された場合でも、その実行前に変化により生じた正しくない命令コードが実行されたおそれが有ることを意味する。つまり、NVRAMに本来保存されるべきデータが、正しくない命令コードが実行されることで、不所望のデータに書き換えられてしまっているおそれが有る。この場合、データそのものが変化しているので、マイクロコンピュータをリセットしても、回復することができない。このように、NVRAMに格納されたプログラムや要保存のデータの一部が書き換えられてしまうと、マイクロコンピュータは正常な動作を行うことができなくなる。また、このままマイクロコンピュータを動作させると、正常ではない動作が繰り返し実行されることになる。

0013

よって、正しくない命令コードの実行によるNVRAMの不所望なデータ書き換えを検出する必要が有る。そして、書き換えられたデータを本来保存されるべきデータに復旧することが望ましい。

0014

その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。

課題を解決するための手段

0015

一実施の形態によれば、マイクロコンピュータは、複数の機能ブロックを有するものであり、予め第1のデータが書き込まれている不揮発性記憶装置と、前記不揮発性記憶装置から読み出した情報を処理し、又は、前記不揮発性記憶装置に情報を書き込む中央処理装置と、前記複数の機能ブロック間でのデータのやり取りの異常を検出する異常検出部と、前記異常検出部が異常を検出した場合に、前記不揮発性記憶装置に書き込んだときの前記第1のデータの内容を示す第2のデータと、前記第1のデータと、を比較し、比較結果が一致しない場合に前記不揮発性記憶装置の異常を検出する不揮発性記憶装置検査部と、を備えるものである。

0016

一実施の形態によれば、マイクロコンピュータシステムは、被制御装置と、前記被制御装置の動作を制御するマイクロコンピュータと、を備え、前記マイクロコンピュータは、予め第1のデータが書き込まれている不揮発性記憶装置と、前記不揮発性記憶装置から読み出した情報を処理し、又は、前記不揮発性記憶装置に情報を書き込む中央処理装置と、複数の機能ブロック間でのデータのやり取りの異常を検出する異常検出部と、前記異常検出部が異常を検出した場合に、前記不揮発性記憶装置に書き込んだときの前記第1のデータの内容を示す第2のデータと、前記第1のデータと、を比較し、比較結果が一致しない場合に前記不揮発性記憶装置の異常を検出する不揮発性記憶装置検査部と、を備えるものである。

発明の効果

0017

一実施の形態によれば、不揮発性記憶装置に格納されたデータの不所望な書き換えを検出することができる。

図面の簡単な説明

0018

実施の形態1にかかるマイクロコンピュータの構成を模式的に示すブロック図である。
実施の形態1にかかるマイクロコンピュータの基本構成を模式的に示すブロック図である。
実施の形態1にかかるマイクロコンピュータのCPUのアドレス空間を示す図である。
実施の形態1にかかるマイクロコンピュータでの信号のやりとりを示す図である。
実施の形態1にかかるマイクロコンピュータに含まれるI/Oの構成例を示すブロック図である。
実施の形態1にかかるマイクロコンピュータの動作を示すフローチャートである。
実施の形態1にかかるマイクロコンピュータの状態遷移図である。
実施の形態2にかかるマイクロコンピュータのCPUのアドレス空間を示す図である。
実施の形態2にかかるマイクロコンピュータの動作を示すフローチャートである。
実施の形態2にかかるマイクロコンピュータの状態遷移図である。
実施の形態3にかかるマイクロコンピュータの構成を模式的に示すブロック図である。
実施の形態3にかかるマイクロコンピュータの動作を示すフローチャートである。
実施の形態4にかかるマイクロコンピュータの状態遷移を示す図である。
実施の形態5にかかる制御システムの構成を模式的に示すブロック図である。

実施例

0019

以下、図面を参照して実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。

0020

実施の形態1
実施の形態1にかかるマイクロコンピュータ100について説明する。マイクロコンピュータ100は、シングルチップマイクロコンピュータとして構成することが可能である。図1は、実施の形態1にかかるマイクロコンピュータ100の構成を模式的に示すブロック図である。図2は、実施の形態1にかかるマイクロコンピュータ100の基本構成を模式的に示すブロック図である。以下、図1を参照して、マイクロコンピュータ100の構成を説明する。なお、マイクロコンピュータは、以下ではMCU(Micro Controller Unit)と略記する。

0021

MCU100は、中央処理装置(CPU)1、割り込みコントローラ(Interrupt Controller:以下、INTと称する)2、モードコントローラ(MDC)3、不揮発性記憶装置(NVM)4、ランダムアクセスメモリ(RAM)5、バスコントローラ(Bus Controller:以下、BSCと称する)6、タイマ(WDT)7、通信モジュール8、異常検出部9、入出力ポート(I/O)10、内部バス11を有する。通信モジュール8として、例えばシリアルコミュニケーションインタフェースなどが設けられる。また、図示しないが、MCU100は、アナログモジュールクロック発振器(CPG)などの、他の機能ブロックやモジュールを有していてもよい。また、モード入力信号MD、図示しないが、MCU100は、リセット入力ES割込入力MI入力端子を有する。アナログモジュールとして、例えばアナログデジタル(A/D)変換器およびデジタル/アナログ(D/A)変換器などが設けられる。

0022

MCU100では、動作の主体となるのはCPU1である。CPU1は、主にNVM4から命令を読み込んで動作し、作業用のデータ領域としてRAM5やI/O10などをリード/ライトする。CPU1でのプログラム実行によって、MCU100は所要の処理を実現する。

0023

CPU1は、不当命令例外処理及び割込み例外処理を行うことによって、実行中の処理を中断し、所定ベクタで示されるアドレスから例外処理ルーチンジャンプして実行を開始する。ジャンプ先は、MDC3からの動作モード信号MDSによって選択される。

0024

図3は、CPU1のアドレス空間を示す図である。CPU1のアドレス空間は、一端から他端に向けてリニアにアドレスが割り当てられる。アドレス空間には、MCU100の内部の資源に対応して、NVMアドレス領域20、空領域31、RAM領域32及び内部I/Oレジスタ領域33が配置されている。内部I/Oレジスタ領域33は、BSC6、MDC3、INT2、WDT7、通信モジュール8が有するレジスタに対応する領域である。それぞれのアドレス領域の容量の設定などは、MCU100が適用される応用分野などによって、適切に設定することができる。NVMアドレス領域20には、後述する確認用データDAT1が割り当てられる。

0025

図1戻り、MCU100の構成について引き続き説明する。INT2は、エラー信号やその他の信号が入力されると、入力された信号に応じて、CPU1に割込み要求を与える。CPU1は、割込み要求が与えられると、命令の切れ目で割込み例外処理を行う。

0026

MDC3は、例えば外部からのモード入力信号MDを受けて、MCU100の動作モードを指定する。MDC3は、MCU内の各機能ブロック、例えばCPU1、NVM4及びBSC3に動作モード信号MDSを出力して、CPU1、NVM4及びBSC6などの動作を制御する。

0027

NVM4は、NVM4自体の制御機能を司るNVM検査部4Aを含んでいる。CPU1からのコマンドなどによって、NVM4は消去や書き込みの動作を開始する。NVM検査部4Aは、書き込み動作時に、書き込み内容に応じて、チェックサム巡回符号などの確認用データDAT1を生成し、生成した確認用データDAT1をNVM4の所定の領域に書き込むことが可能である。NVM4は、消去や書き込みの動作中以外の状態では、リードオンリメモリ(ROM)として動作する。

0028

RAM5は、CPU1の作業用に使用される。また、RAM5は、NVM4の書き換え時に書き込み内容を一時記憶するために使用される。

0029

BSC6は、CPU1のアクセス内容と、MDC3からの動作モード信号MDSに従って、内部バス11の動作を制御する。

0030

WDT7は、図示しないものの、カウンタやその他の制御レジスタを有する。

0031

通信モジュール8は、所要のシステムに対応した機能を有し、外部との通信を行う。なお、通信モジュール8は、複数の種類の通信手段(通信方式)を有してもよい。

0032

I/O10は、種々の入出力機能を有し、CPU1のプログラム実行に従って動作する。I/O10は、制御対象の状態がアナログ信号エンコード信号として入力され、パルス信号やアナログ信号を出力して制御対象の制御を行う。I/Oは出力制御ブロックを含み、この出力制御ブロックは、エラー信号を入力し、このエラー信号が活性化されたときに、出力状態を、制御対象に応じた非活性状態などの所定の状態に切り替える。かかる所定の状態は、固定的なものであってもよく、あるいは、予め、CPUのプログラム実行によって、設定するようにしてもよい。

0033

異常検出部9は、所定の対象機能ブロックテスト期待値確認などを行って、MCU100内の各機能ブロック間のデータのやり取りに生じる異常を検出する。異常な検査結果が得られた場合には、異常検出部9はエラー信号を出力する。エラー信号は、異常検出を行う箇所の数は検査方法の数に応じて、複数の信号を含んでいてもよい。異常検出部9は、内部バス11を介して、エラー信号をMCU10内部の各機能ブロックに送出できる。また、異常検出部9は、通信モジュール8を介して、MCU100の外部にエラー信号を送出してもよい。さらに、異常検出部9は、異常を検出した際に、MCU100の外部にアラームを送出することもできる。

0034

ここで、異常検出部9が検出する各機能ブロック間のデータのやり取りに生じる異常とは、例えば、各機能ブロックでのデータに生じる異常や、内部バス11を介してデータの送受の異常を意味する。以下では、異常検出部9が検出する各機能ブロック間のデータのやり取りに生じる異常を、データ異常と称する。

0035

なお、図1では、異常検出部9を、内部バス11を介して他の機能ブロックと接続される独立した機能ブロックとして説明したが、これは例示に過ぎない。すなわち異常検出部9は、他の機能ブロック(CPU1、INT2、MDC3、NVM4、RAM5、BSC6、WDT7、通信モジュール8、I/O10)の内部に設けられていてもよい。また、異常検出部9は、1つに限られるものではなく、他の機能ブロックの一部又は全部の内部に設けられていてもよい。また、複数の異常検出部が設けられる場合には、それぞれの異常検出部は、異なる検査方法、検査対象に対応させることも可能である。

0036

ここで、異常検出部9での異常検出動作の例について説明する。図4は、実施の形態1にかかるMCUでの信号のやりとりを示す図である。
異常検出部9の第1の例:不当命令検出
異常検出部9は、例えば、CPU1の不当命令検出を行うことが可能である。この場合、異常検出部9は、CPU1に内蔵されていてもよい。異常検出部9は、実行すべき命令を検査して、当該命令が定義されていないものである場合、検査対象となった命令を不当命令として検出する。異常検出部9は、不当命令を検出したならば、エラー信号の1つである命令エラー信号OPERRを活性化するとともに、所定の例外処理(不当命令例外処理)を発生させる。不当命令例外処理と後述するエラー検出に対応する例外処理では、NVM4上の所定のプログラムが実行することもできる。

0037

異常検出部9の第2の例:アドレスエラー検出
異常検出部9は、例えば、BSC6でのバス動作の際のアドレスエラーを検出することができる。この場合、異常検出部9は、BSC6に内蔵されていてもよい。異常検出部9は、CPU1のアクセス内容を検査し、検査対象となったアクセスが不当なアクセスの場合、アドレスエラーを検出する。異常検出部9は、アドレスエラーを検出したならば、エラー信号の1つであるアドレスエラー信号ADERRを活性化し、INT2に伝達する。なお、不当なアクセスとは、例えば、アクセスが禁止される内部の資源が配置されていないアドレス(空領域)に対するリード/ライトや、内部I/Oレジスタ領域からのプログラムのリードをいう。

0038

異常検出部9の第3の例:カウンタエラー検出
異常検出部9は、例えば、WDT7でのカウンタエラーを検出することができる。この場合、異常検出部9は、WDT7に内蔵されていてもよい。CPU1は、正常に動作している限り、カウンタがオーバフローする前にカウンタに0などをライトし、オーバフローを抑止するように動作する。しかし、ノイズなどによる一時的な誤動作や回路の故障などの不所望の要因により、CPU1が正常な動作を行えなくなると、カウンタがオーバフローしてしまう。異常検出部9は、カウンタのオーバフローを検出し、エラー信号の1つであるオーバフロー信号WDTOVFを活性化することができる。

0039

上記のように、異常検出部9が異常を検出すると、異常検出部9は、命令エラー信号OPERR、アドレスエラー信号ADERR、オーバフロー信号WDTOVFなどを活性化できる。INT2は、命令エラー信号OPERR、アドレスエラー信号ADERR、オーバフロー信号WDTOVFに応じて、CPU1に割込み要求を与える。また、INT2は、エラー信号のみならず、外部から入力されるマスク不可能な割込みNMIやその他の信号が入力されたときにも、CPU1に割込み要求を与えることができる。なお、アドレスエラー信号ADERRは、マスク不可能な割込みとして扱われる。CPU1は、割込み要求が与えられると、命令の切れ目で割込み例外処理を行うことができる。

0040

また、エラー信号に応じて割込み例外処理を行うにあたり、エラーが生じた機能ブロックに対応するI/O10の出力状態を、非活性状態などの所定の状態にすることもできる。これは、エラー信号に呼応して、ハードウェア的に実施(例えば、I/O10)してもよいし、CPU1がプログラム実行することで実施してもよい。エラー信号が複数活性化されている場合には、活性化されたエラー信号に対応した複数の出力状態を、非活性状態などの所定の状態にするようにしてもよい。I/O10の出力状態を非活性化することで、I/O10の外部への誤った信号の送出、及び、I/O10を介して入力された信号に応じて誤ったデータに基づく誤動作を防止することができる。

0041

図5は、実施の形態1にかかるMCU100に含まれるI/O10の構成例を示すブロック図である。I/O10は、I/O制御部10A、非活性データレジスタ10B及びセレクタ10Cを有する。I/O制御部10Aは、エラー信号に応じてセレクタ10Cに制御信号CONを出力し、セレクタ10Cの動作を制御する。I/O制御部10Aは、エラー信号が非活性である場合には、セレクタ10Cに通常動作出力を外部へ出力させる。I/O制御部10Aは、エラー信号が活性化された場合には、セレクタ10Cに非活性データレジスタ10Bの出力を外部へ出力させる。これにより、エラー信号が活性化された場合には、セレクタ10Cは、通常動作出力と切り離され、固定された非活性データレジスタ10Bの出力と接続される。これにより、MCU100でエラーが生じても、I/O10が停止(非活性化)される。

0042

MCU100でエラーが検出された場合、MCU100は所望の動作を行っておらず、I/O10から誤った信号が外部に出力され、また、I/O10を介して外部から入力された信号に誤った反応をする事態が生じ得る。この場合、I/O10を介してMCU100に制御される制御対象の制御状態も不所望の状態に陥るおそれがある。しかし、上述のように、エラー発生時にI/O10を停止することで、MCU100と制御対象とのデータのやり取りを遮断し、例えば制御対象を停止し、制御対象が不所望の状態に陥ることを防止できる。

0043

続いて、MCU100の動作について説明する。図6は、実施の形態1にかかるMCU100の動作を示すフローチャートである。図7は、実施の形態1にかかるMCU100の状態遷移図である。

0044

テップS11
MCU100では、異常検出部9が内部バス11を介した機能ブロック間のデータのやり取りにエラーが生じていないかを、常時監視している(図7の第1動作モードMODE1)。

0045

ステップS12
内部バスを介した機能ブロック間のデータのやり取りにエラーが生じた場合、異常検出部9は異常を検出する。異常検出部9は、異常を検出したことを外部に通知することができる。異常検知により、MCU100は、第1動作モードMODE1から第2動作モードMODE2へ遷移する。

0046

ステップS13
機能ブロック間のデータのやり取りにエラーが生じた場合、NVM検査部4Aは、NVM4のデータの確認動作を実行する。NVM検査部4Aは、NVM4のアドレス領域に含まれる確認用データアドレスから、NVM4に予め確認されている確認用データDAT1を読み出す。そして、NVM検査部4Aは、予め保有している基準データDAT2と、読み出した確認用データDAT1とが一致するかを判定する。なお、基準データDAT2は、NVM4に書き込んだ確認用データDAT1の元々の内容を示すデータであり、換言すれば、確認用データDAT1の期待値を示すデータである。

0047

ステップS14
基準データDAT2と確認用データDAT1とが一致しない場合、異常を検出する前に行われたNVM4へのデータの書き込みに問題が有るので、NVM検査部4Aは、NVMエラーを検出し、例えばアラームを送出する。その後、ステップS14に進む。

0048

ステップS15
基準データDAT2と確認用データDAT1とが一致する場合、またはステップS14の後、I/O10を停止(非活性化)し、MCU100の外部への誤ったデータ送出が防止される。本動作の終了後は、適宜リセット処理などから動作を再開する。

0049

以上、本構成によれば、MCU内部でデータ異常が生じた場合に、異常発生前にNVMに書き込まれたデータに異常が発生しているか否かを検出することができる。その結果、NVMへ正しいデータを再ライトし、又は、外部からNVMのリカバリを指示するなど、NVMエラーに応じた適切な対応を行うことが可能となる。

0050

特に、単一のMCU、単一のNVMを利用するのみでNVMエラーを検出できるので、チップサイズの増加などのコストの増加を招くことなく、NVMエラーの見逃しを抑制することができる。

0051

実施の形態2
実施の形態2にかかるMCU200について説明する。MCU200は、MCU100と同様の構成を有するが、CPU1のアドレス空間及び動作が異なる。MCU200は、NVMエラーを検出した場合、NVMのリカバリ動作をおこなうものである。

0052

図8は、実施の形態2にかかるMCU200のCPU1のアドレス空間を示す図である。本実施の形態では、CPU1のアドレス空間の内、NVMアドレス領域20が、第1アドレス領域21及び第2アドレス領域22に区分けされている。第1アドレス領域21は、MCU100が所要の処理を行うためのプログラム(ユーザプログラム)を格納する。また、第1アドレス領域21には、NVM4のデータ確認動作で用いられるチェックサムデータなどの確認用データDAT1が保持されるアドレスが含まれる。第2アドレス領域22は、ブートモードやリカバリモードで実行するプログラムPRG(ブートプログラム、リカバリプログラム)を格納する。

0053

続いて、MCU200の動作について説明する。図9は、実施の形態2にかかるMCU200の動作を示すフローチャートである。図10は、実施の形態2にかかるMCU200の状態遷移図である。MCU200の動作は、図6に示すステップS11〜S15に、ステップS21〜S24を追加した構成を有する。以下、追加したステップS21〜S24に焦点を当てて説明する。

0054

MCU200では、異常検出部9が内部バス11を介した機能ブロック間のデータのやり取りにエラーが生じていないかを、常時監視している(図10の第1動作モードMODE1)。なお、BSC6は、第1動作モードMODE1のとき、CPU1のプログラム実行に従って第1アドレス領域21のリード/ライトを行うことができる。また、第1動作モードMODE1においては、NVMアドレス領域20の第2のアドレス領域22のライトが禁止される。よって、第2アドレス領域22へのライトが発生した場合には、BSC6はアドレスエラーを検出する。すなわち、第1動作モードMODE1のとき、第2アドレス領域22の内容は保護される。例えば、NVM4がフラッシュメモリなど、所定のコマンドなどによって消去や書き込みが可能である場合、ライトが禁止されることで消去及び書き込みが禁止される。BSC6ではなく、NVM4自体が動作モード信号を受け取って、ライトを禁止してもよい。

0055

ステップS11
ステップS11については、図6と同様であるので、説明を省略する。

0056

ステップS12
ステップS12については、図6と同様である。但し、本実施の形態では、第2動作モードMODE2に遷移することで、第1アドレス領域21及び第2アドレス領域22のリード/ライトが可能となる。これにより、CPU1は、第2アドレス領域22からリカバリプログラムPRGを読み出して実行し、第1アドレス領域21の書き込みとデータ確認を行うことができる。

0057

ステップS13〜S15
ステップS13〜S15については、図6と同様であるので、説明を省略する。

0058

ステップS21
CPU1がリカバリプログラムを実行することで、ステップS21以降の動作が行われる。
ステップS14においてNVMエラーが通知されたならば、ステップS15と同様にI/O10を停止する。

0059

ステップS22
CPU1は、外部から通信モジュール8を介して、外部からNVM4に書き込むべきデータを受信する。

0060

ステップS23
CPU1は、外部から受信したデータをNVM4に書き込む。

0061

ステップS24
その後、第1動作モードMODE1に遷移し、通常動作に復帰する。適宜、リセット処理を実行してもよい。この際、I/O10は、活性化される。

0062

以上、本構成によれば、NVMエラーを検出した場合に、外部からNVM4に本来書き込まれるべきデータを取得してNVM4に書き込みなおすことで、NVM4のデータを復旧することができる。これにより、NVM復旧後に、MCU100を速やかに通常動作状態移行させることが可能となる。

0063

なお 第2動作モードMODE2でのリカバリプログラムPRGの実行に先立って、リカバリプログラムPRG自体の内容を確認するようにしてもよい。これは、NVM4に格納されたデータが消失する可能性もあるためである。

0064

INT2によって、プログラムの実行開始アドレスが個別に指定される場合などは、この指定に従って第2動作モードMODE2でのリカバリプログラムを複数の割込み処理ルーチンに分割して実装することができる。

0065

さらにリカバリプログラムを第2動作モードMODE2で実行することにより、第2アドレス領域22に格納されるプログラムの内容を秘匿し、不所望の改竄を防ぐことができる。これにより、MCUの使用者がプログラムの内容を考慮することなく、NVM復旧の利便性のみを享受することができる。

0066

実施の形態3
実施の形態3にかかるMCU300について説明する。図11は、実施の形態3にかかるMCU300の構成を模式的に示すブロック図である。MCU300は、MCU100に自己診断部12を追加した構成を有する。MCU300のその他の構成は、MCU100と同様であるので、説明を省略する。

0067

自己診断部12は、異常検出部9がデータ異常を検出した場合に、各機能ブロックの機能に異常がないかを診断するものである。自己診断部12は、いずれかの機能ブロックの機能に異常が有る場合、自己診断エラーを検出する。自己診断部12は、自己診断エラーを他の機能ブロックやMCU300の外部にアラームなどで通知することが可能である。

0068

自己診断は、例えば、機能ブロックから出力される値と期待値とを比較し、一致するか否かを判定することで、判定対象となった機能ブロックの故障を検出することができる。また、自己診断は、例えば、機能ブロック等に実装される機能を二重化し、二重化した機能の出力結果が一致するかを判定して、判定対象となった機能ブロック等の故障を検出することができる。さらに、自己診断は、例えば、所定のデータ経路にECCを付加し、当該データ経路でデータをリード/ライトするときのECCエラーを検出することで、当該データ経路にかかる故障を検出することができる。

0069

続いて、MCU300の動作について説明する。図12は、実施の形態3にかかるMCU300の動作を示すフローチャートである。MCU300の動作は、図6に示すステップS11〜S15に、ステップS31及びS32を追加した構成を有する。

0070

ステップS11
ステップS11については、図6と同様であるので、説明を省略する。

0071

ステップS31
データエラーが検出されたならば、自己診断部12は、各機能ブロックの機能に異常がないかを診断する。

0072

ステップS32
自己診断部12は、機能ブロックのいずれかの機能に異常が有る場合には、自己診断エラーを検出する。自己診断部12は、他の機能ブロックやMCU300の外部に自己診断エラーを通知することができる。その後、ステップS14へ進む。

0073

ステップS12〜S15
自己診断エラーが検出されない場合、ステップS12に進み、以降は図6と同様の動作を行う。

0074

以上、本構成によれば、データエラーの原因が、機能ブロックの機能異常によるものか、NVMエラーによるものかを切り分けて検出することができる。その結果、MCUで異常が生じた際に、異常復旧の対策を容易に策定することができる。回路の故障が生じた場合、例えば、配線断線トランジスタ破壊などであって、この状態は継続する。そのため、所望の所期のプログラムの実行が行えない場合が生じる。この場合には、上記の通り自己診断でNVMエラーと切り分けて故障を検出できるので、回路の故障に応じた復旧を行うこととができる。

0075

自己診断は、通常動作状態では行えない場合が考え得る。つまり、自己診断で回路の故障を検出した場合でも、それ以前に故障した回路が命令コードの実行に関与したおそれがある。この場合には、自己診断エラーが検出された場合でも、NVMエラーが生じているか否かの検出を行うことで、故障回路が命令コード実行に関与したことで生じるNVMエラーを検出することができる。

0076

実施の形態4
実施の形態4にかかるMCU400について説明する。MCU400は、MCU200の変形例である。なお、MCU400の構成は、MCU200と同様であるので、説明を省略する。本実施の形態では、MCU400への電源投入時や故障復帰時などにリセットされる場合に、リセットが解除された際の動作について説明する。なお、リセットは、例えばMCU400の外部から行うことが可能であり、電源投入時にはパワーオンリセットとして実行してもよい。

0077

図13は、実施の形態4にかかるMCU400の状態遷移を示す図である。MDC3が第1動作モードMODE1での動作を指定している場合、リセット解除後にMCU400は第1動作モードMODE1での動作を開始する。その後、図9に示す動作を適宜実行する。

0078

MDC3が第2動作モードMODE2での動作を指定している場合、リセット解除後にMCU400は第2動作モードMODE2での動作、すなわち、図9に示すステップS13から動作を開始する。

0079

以上、本構成によれば、リセット解除後に第2動作モードMODE2が指定された場合、でリセット解除前の他の動作などによりNVMエラーが生じていたとしても、NVMを自動的に復旧することができる。これにより、リセット後のMCUの動作を正常化できる可能性をより高めることが可能となる。

0080

実施の形態5
実施の形態5にかかる制御システム500について説明する。制御システム500は、上述のMCUが組み込まれたシステムとして構成される。図14は、実施の形態5にかかる制御システム500の構成を模式的に示すブロック図である。

0081

制御システム500は、MCU200、制御対象501、ネットワーク(CAN)502、通信部503及び表示装置504を有する。制御システム500が自動車制御システムである場合、例えば制御対象501はエンジンであり、エンジンの点火制御などを行う。

0082

MCU200と制御対象(エンジン)501とは、I/O10を介してデータのやりとりを行う。つまり、MCU200にデータ異常が生じた場合、I/O10を非活性化することで、例えばエンジンを停止し、自動車運行危険な状態にならないようにすることができる。

0083

NVM4に書き込むべき内容は、MCU自体の通信手段(例えば、通信モジュール8)を利用して、外部から直接入力することもできる。また、CANなどのネットワーク502を介して接続された他のデバイスの通信手段(通信部503)を利用して、入力することもできる。他のデバイスが外部との通信手段として無線通信機能、例えば、WAVE(Wireless Access in Vehicle Environment)などを有する場合、無線通信機能を利用することで、リカバリ専用入力機能を削減でき、システムのハードウェア機能の追加を回避することができる。

0084

なお、上述の他のデバイスに、上述のMCUにおけるNVMエラー検出機能を実装し、NVMに書き込むべき内容の入力手段を共通にすることができる。

0085

また、制御システムにおいてMCU300を用いる場合には、自己診断エラーの内容を、通信手段を介して外部に出力した後、その内容に応じて、外部から受信した内容をNVM4に書き込むこと以外の処理を行うようにする指示入力を行うこともできる。

0086

さらに、他のデバイスが、所要のビデオインタフェースなどを介して、表示装置504を制御するようにできる。この場合、自己診断エラーの内容に基づく情報を表示装置504に表示させることができる。また、自己診断エラーの内容に応答して、外部から入力した指示入力情報を表示装置に表示するようにしてもよい。例えば、運転者に必要な動作を教示して安全な運転状態を促すことで、運転者を安全な状態に導くことができる。なお、表示装置504は、ネットワーク502に接続された別のデバイスによって制御するようにしてもよい。

0087

上述のようにシステム内にシステム外との通信を行う他のデバイスが存在する場合、自己診断エラーや故障検出の内容の外部への通知や、NVMに書き込むプログラムの入力のための通信を、システム外との通信およびマイクロコンピュータと他のデバイスとの通信を経由して行うことができる。これにより、システム上のハードウェアの機能の追加を抑止し、システムの複雑化を抑止することができる。

0088

その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態3にかかるMCU300についても、実施の形態2にかかるMCU200と同様に、ステップS21〜S24でのNVM復旧動作を併せて行うことができる。

0089

実施の形態4にかかるMCU400についても、実施の形態3にかかるMCU300と同様にステップS31及びS32での自己診断を併せて行うことができる。

0090

実施の形態5に係る制御システムではあ、MCU200及びMCU300を用いる例について説明したが、MCU100、MCU400及びその他上述の説明にかかるMCUを適用できることは言うまでもない。

0091

NVMは、ランダムアクセス可能なメモリ(NVRAM)として構成することができる。この場合、NVMとRAMとを共通化し、RAMを除去することができる。また、NVMにキャッシュメモリなどを加えることもできる。

0092

I/O10の出力状態を非活性化する場合、その手段は適宜選択し得る。例えば、I/O10をハイインピーダンス状態とすることで、非活性させることができる。非活性化にあたって、所定の状態遷移を形成するようにしてもよい。I/O10の非活性化は、ハードウェアで実装してもよいし、CPU1のプログラム実行と組み合わせて実現するようにしてもよい。

0093

NVM検査部4Aは、専用のCPUとすれば種々の変更に対応しやすい。また、NVM検査部4Aの必要な機能を、専用のハードウェアで実装することもできる。

0094

NVMアドレス領域20の第2アドレス領域22に対するライトの禁止の実現については、種々の手段を用いることができる。

0095

データエラーの検出内容や検出手段は、適宜変更することができる。エラー検出の伝達経路も、適宜変更することができる。自己診断部12は、自己診断を行う対象に応じて、適切に実装すればよい。

0096

MCUの構成やアドレス空間は例示であり、上述の例に限定されない。通信手段やそのほかの機能ブロックなども、適宜削除、追加、変更できる。

0097

制御システム500の構成や用途は例示であり、適宜変更できる。

0098

以上の説明では、シングルチップマイクロコンピュータの例を説明したが、これに限定されるものではなく、マイクロコンピュータの外部にフラッシュメモリなどの電気的に書き換え可能なプログラム格納用のメモリを設ける構成にすることもできる。また、その他の半導体集積回路装置、例えば、デジタルシグナルプロセッサ(DSP)を中心にした半導体集積回路装置にも適用可能である。換言すれば、上述のNVMエラー検出とこれに付随する機能、動作は、データ処理装置のプログラムを書き換え可能なメモリに格納した半導体集積回路装置に適用することができる。

0099

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。

0100

1 CPU(中央処理装置)
2 INT(割り込みコントローラ)
3 MDC(モードコントローラ)
4 NVM(不揮発性記憶装置)
4A NVM検査部
5 RAM(ランダムアクセスメモリ)
6BSC(バスコントローラ)
7 WDT(タイマ)、
8通信モジュール
9異常検出部
10 I/O(入出力ポート)
10A I/O制御部
10B 非活性データレジスタ
10Cセレクタ
11内部バス
12自己診断部
20 NVMアドレス領域
21 第1アドレス領域
22 第2アドレス領域
31 空領域
32 RAM領域
33 内部バスレジスタ領域
100、200、300、400 MCU(マイクロコンピュータ)
500 制御システム
501制御対象
502ネットワーク
503通信部
504表示装置
ADERRアドレスエラー信号
CON制御信号
DAT1確認用データ
DAT2 基準データ
MDモード入力信号
MDS動作モード信号
OPERR命令エラー信号
PRGプログラム
WDTOVFオーバフロー信号

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ