JP2008047025A - マイクロコントローラ - Google Patents

マイクロコントローラ Download PDF

Info

Publication number
JP2008047025A
JP2008047025A JP2006224065A JP2006224065A JP2008047025A JP 2008047025 A JP2008047025 A JP 2008047025A JP 2006224065 A JP2006224065 A JP 2006224065A JP 2006224065 A JP2006224065 A JP 2006224065A JP 2008047025 A JP2008047025 A JP 2008047025A
Authority
JP
Japan
Prior art keywords
interrupt
interrupt request
cpu
nonvolatile memory
reset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006224065A
Other languages
English (en)
Inventor
Takeshi Inomata
武志 猪俣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006224065A priority Critical patent/JP2008047025A/ja
Publication of JP2008047025A publication Critical patent/JP2008047025A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】フラッシュEEPROMなどの書き換え可能な不揮発性メモリに対する書き込み・消去実行中にCPU、システムの動作異常を示すノンマスカブル割り込み(NMI)が発生した場合に、不定状態の不揮発性メモリにアクセスすることなくノンマスカブル割り込みを実行できるマイクロコントローラを提供する。
【解決手段】割り込み要求信号を入力したときに割り込み信号INTを発生しCPU1に送出する割り込み制御部5の前段に、割り込み要求制御部7を設ける。この割り込み要求制御部7は、書き換え可能な不揮発性メモリ3に対する書き込み・消去フラグFが有効である期間中に発生したCPU1または周辺機能部(ウォッチドッグタイマ6)からのノンマスカブルな割り込み要求信号EIR,WIRをマスクし、不揮発性メモリ3に対する書き込みまたは消去の完了後に、延期された割り込み要求信号EIR′,WIR′を割り込み制御部5に送出する。
【選択図】図1

Description

本発明は、CPU(中央演算処理装置)と、CPUによってアクセスされる書き換え可能なフラッシュEEPROMなどの不揮発性メモリと、ウォッチドッグタイマのような周辺機能部と、割り込み要求信号を入力したときに割り込み信号を発生しCPUに送出する割り込み制御部とを備えたマイクロコントローラに関する。
フラッシュEEPROM(flash electrically erasable PROM)のような書き換え可能な不揮発性メモリを内蔵したマイクロコントローラは、その制御プログラムを不揮発性メモリに格納しており、マイクロコントローラ内蔵のCPUからのアクセス制御により適宜不揮発性メモリからプログラムコードを読み出し、実行している。
通常、不揮発性メモリの中の一部の固定領域は割り込みベクタテーブル領域としてCPUより予約されており、この割り込みベクタテーブル領域にはプログラムコードは配置されていない。割り込みベクタテーブル領域の特定のアドレスは特定の割り込み要求と一対一に対応しており、その特定の割り込みに対する割り込み処理プログラムの先頭アドレスが格納されている。
マイクロコントローラに内蔵された周辺機能部などからCPUに対して割り込み要求が発生した場合、CPUは現在の処理を中断し、割り込み要因を解析して不揮発性メモリ上の割り込みベクタテーブル領域の中から、その割り込み要因に対応するアドレスに格納された割り込み処理プログラムのアドレスを読み出す。引き続きCPUは読み出した割り込み処理プログラムアドレスに分岐した上で、割り込み処理プログラムを実行し、割り込み処理プログラム末尾のリターン命令の実行により中断していた元の制御プログラムへ復帰する。
一般的に、CPUや周辺機能部からのデータをメモリに保存したい場合は、マイクロコントローラに内蔵した揮発性メモリに書き込みを行い、不揮発性メモリは読み出し専用メモリとして使用される。
しかし、近年、不揮発性メモリの書き換え回数の向上とともに、電源遮断後も一部のデータを保持するために、制御プログラム実行中においても不揮発性メモリを消去、書き込みするケースが増えてきている。
一般的に不揮発性メモリは、読み出し・書き込み・消去用の制御回路と、メモリセル領域から構成される。1個の不揮発性メモリの中では、メモリセル個別に読み出し、書き込み・消去モードを設定することはできず、全メモリセル領域に対し読み出し、書き込み・消去モードのいずれかのみの設定に制約される。また、書き込み・消去モード時に不揮発性メモリを読み出す場合には、読み出したデータは不定であり、保証されない。
したがって、CPUが制御プログラムの読み出し動作を行っている不揮発性メモリにおいて、その一部のメモリ領域に対して書き込み・消去を行うには、次のように処理する。すなわち、書き込み・消去中に実行するプログラムコード(書き換え制御プログラム)を別の揮発性メモリにダウンロードし、その揮発性メモリ上のプログラムを実行することによって不揮発性メモリに対する書き込み・消去を行う。
しかし、制御プログラム本体により、マイクロコントローラに内蔵の周辺機能部からの割り込み要求を受け付ける設定にしている場合には、次のような問題がある。すなわち、割り込みベクタテーブル領域を含む不揮発性メモリに対する書き込み・消去を実行している状態で、割り込み要求が発生した場合には、不揮発性メモリにおける書き込み・消去に起因する不定データを読み出して実行することになるため、CPUが暴走する事態となる。
以上の問題を回避するために、割り込みベクタテーブル領域を含む不揮発性メモリへの書き込み・消去を実行する際には、ソフトウェアにより無効化可能な割り込み(マスカブル割り込み)のすべてを一時的に禁止するなどの対応がとられてきた。
一般に不揮発性メモリに対する書き込み・消去に必要とされる時間は、制御プログラムの実行サイクルの数倍〜数100倍になる。そのため、書き込み・消去プログラムは、システム制御プログラムとは独立した別の動作モードとしてプログラムされることが多く、マスカブル割り込みを禁止することが問題とはならないように全体の制御が工夫されている。
しかし、不正命令のフェッチ時などに発生するシステムエラー割り込み、暴走検出用のウォッチドッグ割り込みなどの場合は別である。これらの割り込みは一般にソフトウェアによりマスクすることのできないノンマスカブル割り込み(NMI)であるが、ノンマスカブル割り込みの場合には、書き込み・消去中の不揮発性メモリに対して読み出し動作が生じてしまう可能性があった。
図5は、上記の課題に配慮した従来技術の一例である。
1はCPU、3は不揮発性メモリ、4はSRAM(Static Random Access Memory)などの揮発性メモリである。2は不揮発性メモリ3、揮発性メモリ4のアクセスを制御するメモリI/F(インターフェース)である。D1,D2,D3はデータバス、A1,A2,A3はアドレスバスである。6は周辺機能部の一例のウォッチドッグタイマ(WDT)であり、プログラムにより設定された所定の周期でウォッチドッグ割り込み要求信号WIRを発生する。EIRはCUP1が何らかの理由で不正な命令を実行した際に発生するシステムエラー割り込み要求である。ウォッチドッグ割り込み要求信号WIR、システムエラー割り込み要求信号EIRはともに、ノンマスカブル割り込みである。5はウォッチドッグタイマ6などからの割り込み要求の受け付けを行う割り込み制御部であり、ウォッチドッグ割り込み要求信号WIR、システムエラー割り込み要求信号EIRなどの割り込み要求を受け付けると、割り込み信号INTをCPU1に発行する。
不揮発性メモリ3には、CPU1により実行可能な制御プログラムが格納されている。制御プログラム中には、不揮発性メモリ3に対する書き込み・消去を行う書き換え制御プログラム、ウォッチドッグタイマ6からの割り込み発生時に実行する割り込み制御プログラムが含まれる。3aは割り込みベクタテーブル領域で、ウォッチドッグタイマ6の割り込み制御プログラムの先頭アドレスが格納されており、ウォッチドッグタイマ6からの割り込み発生時にCPU1により参照される。
10は割り込みベクタテーブル領域3aのアドレスを変換するアドレス変換器である。このアドレス変換器10は、内部に割り込みベクタテーブル領域3aのアドレスそれぞれに対応するアドレス変換テーブルレジスタを備えており、CPU1からのアドレスA1のうち割り込みベクタテーブル領域3aに対応するアドレスをアドレス変換テーブルレジスタに設定されたアドレスに変換する。このアドレス変換テーブルレジスタはCPU1からの操作で任意のアドレスに設定可能である。
Fは不揮発性メモリ3が書き込み・消去実行中であることを示す書き込み・消去フラグである。アドレス変換器10による割り込みベクタテーブル領域3aのアドレスの変換は、書き込み・消去フラグFのアサート(有効化)状態において有効になる。
以上のシステムにおいて、不揮発性メモリ3の一部領域に対して書き込み・消去を行う場合は、以下のような手順で行う。
(1)ウォッチドッグタイマ6の割り込み制御プログラムを揮発性メモリ4の任意領域4aにダウンロードする。
(2)割り込みベクタテーブル領域3aのデータを揮発性メモリ4の任意領域4aにコピーする(以下、この領域をRAMベクタテーブル領域と呼ぶ)。
(3)RAMベクタテーブル領域4aのうち、ウォッチドッグタイマ6の割り込み処理プログラムの先頭アドレスを保持している領域のデータを、(1)のプログラムの先頭アドレスを示すように書き換える。
(4)アドレス変換器10内のアドレス変換テーブルレジスタを操作して、ウォッチドッグタイマ6の割り込みベクタテーブル領域3aのアドレスを(2)でコピーしたRAMベクタテーブル領域4a上のアドレスに変更する。
(5)書き換え制御プログラムを揮発性メモリ4へダウンロードする。
(6)CPU1の制御を揮発性メモリ4上の書き換え制御プログラムへ移し、書き込み・消去を実行する。これにより、書き込み・消去フラグFがアサートされ、アドレス変換器10による割り込みベクタテーブル領域3aのアドレスの変換が有効になる。
ここで、不揮発性メモリ3に対する書き込み・消去実行中に、ウォッチドッグタイマ6からウォッチドッグ割り込み要求信号WIRが発生したとする。
(7)CPU1が割り込み処理プログラムの先頭アドレスを参照するために発行したウォッチドッグ割り込み要求信号WIRの割り込みベクタテーブル領域のアドレスを、アドレス変換器10により、(2)でコピーしたRAMベクタテーブル領域4a上のアドレスに変換する。
(8)CPU1は、RAMベクタテーブル領域4a上からウォッチドッグタイマの割り込み処理プログラムの先頭アドレスを取得し、揮発性メモリ4上の割り込み処理プログラムへ分岐、実行する。
この結果、不揮発性メモリ3に対する書き込み・消去中においては、割り込みアクセスによる不揮発性メモリ3への読み出しは行われず、不定命令実行に起因するCPU1の暴走は回避することができる。
図6もまた、上記の課題に配慮した従来技術の一例である。11は割り込み制御部5とCPU1との間に介在された割り込みマスク部である。この割り込みマスク部11は、不揮発性メモリ3からの書き込み・消去フラグFがアサートされている期間においては、マスカブル割り込み、ノンマスカブル割り込みにかかわらず、割り込み制御部5からCPU1へのすべての割り込みをマスク・無効化する。
このように構成することで、不揮発性メモリ3に対する書き込み・消去中に割り込みアクセスは発生せず、CPU1は不定命令実行に起因する暴走を回避することができる。
なお、不揮発性メモリに対する書き込み・消去時の割り込み処理方法に関する文献例として、特許文献1および特許文献2がある。
特許第3480957号公報(第3−4頁、第1−5図) 特開2005−202984号公報(第9−17頁、第1−6図)
上記の特許文献1に代表される従来技術には次のような課題がある。
(1)割り込み処理プログラムのダウンロードのために十分な容量の揮発性メモリの実装が必要である。
(2)ダウンロード時間の分だけ、書き込み・消去のトータル時間が増大する。
(3)前述したように書き込み・消去時間は制御プログラムの実行サイクルの数倍〜数100倍を要するもので、この間のシステム制御を行うためには、揮発性メモリにダウンロードした一部の割り込み処理プログラムだけで対応するのは困難である。
同様に、特許文献2に代表される従来技術の課題としては、
(4)不揮発性メモリに対する書き込み・消去中にすべての割り込みをマスクすることからノンマスカブル割り込みに応答することができない。その結果、システムエラーや暴走検出などシステムの致命的な異常状態からの復旧に対するレスポンスやシステムの信頼性が低下する。
前述したように、現在の不揮発性メモリに対する書き込み・消去時間の能力では、制御プログラムと書き込みプログラムの実行サイクルの時間差は数倍以上、消去プログラムとでは数100倍程度になる。したがって、特許文献1に代表される技術では、割り込み処理プログラムなど制御プログラムの一部を実行することは可能であるが、制御プログラム本体は不揮発性メモリ上にあるため、割り込み処理プログラムの動作を完了しても不揮発性メモリの消去動作は継続しており、制御プログラムの本体の動作は待機せざるを得ない。結果として、書き込み・消去動作中において周辺機能部からのリアルタイムな割り込み処理を実行することには限界がある。つまり、書き込み・消去動作中の割り込み要求は実質的に禁止されていることと変わりない。
一方、一般的にノンマスカブル割り込みはソフトウェアによる禁止の制御ができない。これは、ソフトウェアの誤動作により誤って禁止設定されないようにするためである。システムエラーやウォッチドッグタイマによる暴走検出などシステム動作監視のための割り込み要求がノンマスカブル割り込み要求に割り当てられる。
特許文献2に代表される技術では、ノンマスカブル割り込みを含むすべての割り込みをハードウェア的にマスクするため、ノンマスカブル割り込みは本来の目的を失ってしまうことになる。
本発明は、このような事情に鑑みて創作したものであり、不定命令実行に起因するCPUの暴走を防止するために、不揮発性メモリに対する書き込み・消去中における不揮発性メモリに対する割り込みアクセスを効果的に回避することができるマイクロコントローラを提供することを目的としている。
本発明によるマイクロコントローラは、
CPUと、
前記CPUによってアクセスされる書き換え可能な不揮発性メモリと、
割り込み要求信号を入力したときに割り込み信号を発生し前記CPUに送出する割り込み制御部と、
前記不揮発性メモリに対する書き込みまたは消去中であることを示す書き込み・消去フラグが有効である期間中に発生した前記CPUまたは周辺機能部からの割り込み要求信号をマスクし、前記不揮発性メモリに対する書き込みまたは消去の完了後に前記割り込み要求信号を前記割り込み制御部に送出する割り込み要求制御部とを備えたものである。割り込み要求制御部は、不揮発性メモリに対する書き込みまたは消去中における割り込み要求を一時的な無効化(マスク)により延期し、書き込みまたは消去が完了すれば、その割り込み要求を許可するものである。
書き換え可能な不揮発性メモリに対して書き込みまたは消去を行っているときは、不揮発性メモリから割り込み要求制御部に対して書き込みまたは消去中であることを示す書き込み・消去フラグが与えられている。書き込みまたは消去中にCPUまたは周辺機能部から割り込み要求があったときは、割り込み要求制御部はその割り込み要求信号をマスクして保持し、割り込み制御部には伝えない。したがって、CPUには割り込みはかからない。このときの割り込み要求信号は、ノンマスカブル割り込み要求(CPUからのシステムエラー割り込み要求や周辺機能部からのウォッチドッグ割り込み要求など)、マスカブル割り込み要求を問わない。不揮発性メモリに対する書き込みまたは消去が完了すると、書き込み・消去フラグが無効となり、割り込み要求制御部はそれまで保持していた割り込み要求信号を活性化して割り込み制御部に伝え、割り込み制御部は割り込み信号を生成してCPUに伝える。結果として、CPUには遅れて割り込みがかかる。
一方、書き換え可能な不揮発性メモリに対して書き込みまたは消去を行っていないときは、書き込み・消去フラグが無効である。したがって、CPUまたは周辺機能部から割り込み要求があったときには、割り込み要求制御部はその割り込み要求信号をそのままスルーさせて割り込み制御部に伝える。割り込み制御部は割り込み信号を生成してCPUに伝え、CPUに直ちに割り込みがかかる。
以上のように、本発明によれば、書き換え可能な不揮発性メモリに対する書き込み・消去中に発生した割り込み要求を、割り込み要求制御部により書き込み・消去の完了まで延期させることが可能であり、不揮発性メモリに対する書き込み・消去中における不揮発性メモリに対する割り込みアクセスを回避する。このため、不定命令実行に起因するCPUの暴走が防止される。
上記の構成のマイクロコントローラにおいて、
前記周辺機能部として、所定の周期でウォッチドッグ割り込み要求を発生し、その割り込み要求に対応する割り込みのクリアが行われずに再度のウォッチドッグ割り込み要求が発生したときに強制リセット要求信号を発生するウォッチドッグタイマを備えるとともに、
前記ウォッチドッグタイマによる前記強制リセット要求信号を受けたときに前記CPUに対してハードリセットをかけるリセット制御部と、
前記不揮発性メモリに対する書き込みまたは消去中であることを示す書き込み・消去フラグが有効である期間中に前記リセット制御部からの前記ハードリセットがあったときに書き込みまたは消去の異常終了を示す異常終了フラグを立てる異常終了フラグ発生部とを備えるという態様がある。
ウォッチドッグタイマは所定の周期でウォッチドッグ割り込み要求を発生し、これを割り込み要求制御部および割り込み制御部を介してCPUに与える。ウォッチドッグ割り込み要求に対応する割り込みのクリアが行われないまま、再度のウォッチドッグ割り込み要求が発生した場合、これは、異常事態が解消されずCPUが暴走する可能性が高いので、ウォッチドッグタイマは強制リセット要求信号を発生し、リセット制御部に与える。強制リセット要求信号を受けたリセット制御部はCPUに対してハードリセットをかける。このとき、書き込み・消去フラグが有効であれば、異常終了フラグ発生部はリセット制御部からのハードリセットを受けて、書き込みまたは消去の異常終了を示す異常終了フラグを立てる。すなわち、不揮発性メモリに対する書き込みまたは消去中にハードリセットがかかって、その書き込みまたは消去が異常終了されたことになるので、この異常終了を示す異常終了フラグを立てる。結果として、CPUの再起動後、異常終了フラグの判定で書き込み・消去異常の判定が簡便に行える。
また、上記の構成のマイクロコントローラにおいて、前記ウォッチドッグタイマは、前記書き込み・消去フラグが有効である期間中は、前記ウォッチドッグ割り込み要求を発生したときから次のウォッチドッグ割り込み要求を発生するまでの周期を前記所定の周期よりも長く設定するという態様がある。
ウォッチドッグ割り込み要求の発生周期は、実行する制御プログラムの処理時間、応答性を考慮して決定されるが、前述したように不揮発性メモリの書き込み・消去動作は制御プログラムの実行サイクルの数倍〜数100倍になる。不揮発性メモリの書き込み・消去動作中の割り込み処理により、不揮発性メモリの書き込み・消去処理が中断されると、書き込み・消去動作の安定性や品質に悪影響を及ぼす可能性があり、書き込み・消去動作中の割り込みは好ましくない。
このため、不揮発性メモリに対する書き込み・消去を行っていないときは、ウォッチドッグ割り込み要求を発生する周期としてシステム要件を満足する所定の周期に設定する。一方、書き込み・消去の実行中は、所定の周期よりも長い周期に変更する。この周期延長により、システム制御動作と不揮発性メモリ書き換え動作の、ウォッチドッグ割り込み応答が最適化され、さらに安定性や品質の高い書き込み・消去動作を行える。
さらに、上記の構成のマイクロコントローラにおいて、前記ウォッチドッグタイマにおける前記次のウォッチドッグ割り込み要求を発生するまでの周期は、前記不揮発性メモリに対するアクセスが書き込みのときと消去のときとで別個の周期に設定されるという態様がある。
その結果として、不揮発性メモリに対して書き込み動作を行っているときと消去動作を行っているときで別個のウォッチドッグ割り込み要求周期に設定でき、ウォッチドッグタイマの割り込み応答がシステム動作全体を通じて最適化される。
また、上記の構成のマイクロコントローラにおいて、前記CPUは、前記ハードリセットに伴うリセットスタート時に、前記不揮発性メモリを最初に参照するリセットベクタテーブル領域と、前記CPUの起動用のプログラムを格納し前記リセットベクタテーブル領域に記録されているアドレスで指定されるリセット分岐先領域とに対する書き換えプロテクトを行うという態様がある。
CPUが動作開始時の最初に参照する不揮発性メモリ上のリセットベクタテーブル領域と、そのリセットベクタテーブル領域に書き込まれている分岐先アドレス領域について、CPU実行による書き込み・消去をプロテクトする。これにより、不揮発性メモリに対する書き込み・消去中にハードリセットがかかっても、リセットベクタテーブル領域とその分岐先アドレス領域のデータが保護されているため、CPUは暴走することなく再起動する。
本発明によれば、書き換え可能な不揮発性メモリに対する書き込み・消去中に発生した割り込み要求(マスカブル割り込み、ノンマスカブル割り込み)を、割り込み要求制御部により不揮発性メモリへの書き込み・消去の完了まで延期させるので、不揮発性メモリに対する書き込み・消去中における不揮発性メモリに対する割り込みアクセスを回避することができ、不定命令実行に起因するCPUの暴走を防止できる。
また、書き込み・消去動作中に強制リセットがかかった場合に異常終了フラグをセットするように構成すれば、CPUの再起動後に異常終了フラグの判定で書き込み・消去異常の判定を簡便に行える。
以下、本発明にかかわるマイクロコントローラの実施の形態について図面に基づいて詳細に説明する。
(実施の形態1)
図1は本発明の実施の形態1におけるマイクロコントローラの構成を示すブロック図である。
図1において、1はCPU、2はメモリI/F、3は書き換え可能な不揮発性メモリ(フラッシュEEPROM)、4はSRAMなどの揮発性メモリ、5は割り込み制御部、6はウォッチドッグタイマ(WDT)、7は割り込み要求制御部である。マイクロコントローラは、1チップ構成である。
CPU1は、アドレスバスA1、データバスD1によりメモリI/F2と接続されている。メモリI/F2は、アドレスバスA2、データバスD2により不揮発性メモリ3と接続され、またアドレスバスA3、データバスD3により揮発性メモリ4と接続されている。メモリI/F2は、CPU1からのアドレス信号によりアクセス先の判定を行い、アドレスバスA2、データバスD2を介して不揮発性メモリ3にアクセスし、またアドレスバスA3、データバスD3を介して揮発性メモリ4にアクセスする。
不揮発性メモリ3は、書き込み・消去動作の実行中を示す書き込み・消去フラグFを備えている。また、マイクロコントローラの外部からの制御により書き込み・消去を行う汎用不揮発性メモリモードを備えているものとする。なお、不揮発性メモリ3は、CPU1からの自動制御コマンドまたはCPU1から操作可能な書き換え制御レジスタにより書き込み・消去動作を行う方式が一般的であるが、ここではその方式は問わない。
CPU1は、実行中に何らかの原因で不適当な命令を実行したとき、システムエラー割り込み要求信号EIRを発生する。システムエラー割り込み要求信号EIRはノンマスカブル割り込みである。
ウォッチドッグタイマ6は、システムクロックをカウントし、プログラムにより設定された所定の周期でウォッチドッグ割り込み要求信号WIRを発生する。
割り込み要求制御部7は、CPU1からのシステムエラー割り込み要求信号EIRやウォッチドッグタイマ6からのウォッチドッグ割り込み要求信号WIR、その他マスカブル割り込みなどの割り込み要求信号を受け付け、書き込み・消去フラグFの状態に応じてそのままスルー出力するか、出力延期させるかを制御する。割り込み要求制御部7は、内部に割り込み要求ホールドレジスタを備えており、割り込み要求信号を出力延期させる場合は、割り込み要求信号を割り込み要求ホールドレジスタでホールドするように構成している。
不揮発性メモリ3が書き込み・消去の状態になると、書き込み・消去フラグFがアサートされ、割り込み要求制御部7による割り込み要求信号の出力延期動作が有効になる。すなわち、書き込み・消去フラグFがアサートされているときに、割り込み要求制御部7にCPU1からのシステムエラー割り込み要求信号EIRが入力されると、そのシステムエラー割り込み要求信号EIRは割り込み要求ホールドレジスタにセットされるとともに、割り込み制御部5に対する出力はアサート状態の書き込み・消去フラグFによってマスクされる。また、書き込み・消去フラグFがアサートされているときに、割り込み要求制御部7にウォッチドッグタイマ6からのウォッチドッグ割り込み要求信号WIRが入力されると、そのウォッチドッグ割り込み要求信号WIRは割り込み要求ホールドレジスタにセットされるとともに、割り込み制御部5に対する出力はアサート状態の書き込み・消去フラグFによってマスクされる。このように書き込み・消去フラグFがアサートされている期間では、割り込み制御部5が割り込み要求を受け付けることはなく、割り込み信号INTも発生しない。
不揮発性メモリ3に対する書き込み・消去が完了し、書き込み・消去フラグFがネゲートされると、割り込み要求ホールドレジスタにセットされている割り込み要求信号が活性化され、出力延期の割り込み要求信号が発生する。すなわち、割り込み要求ホールドレジスタにシステムエラー割り込み要求信号EIRがセットされている状態で書き込み・消去フラグFがネゲートされると、割り込み要求制御部7は出力延期のシステムエラー割り込み要求信号EIR′を割り込み制御部5に出力する。また、割り込み要求ホールドレジスタにウォッチドッグ割り込み要求信号WIRがセットされている状態で書き込み・消去フラグFがネゲートされると、割り込み要求制御部7は出力延期のウォッチドッグ割り込み要求信号WIR′を割り込み制御部5に出力する。このように、不揮発性メモリ3に対する書き込み・消去中に受け付けた割り込み要求信号は、書き込み・消去が完了するまで出力延期されることとなる。
一方、書き込み・消去フラグFがネゲート(無効化)されているときに割り込み要求制御部7に割り込み要求信号が入力された場合、その割り込み要求信号はそのままスルー出力される。したがってこのとき、出力延期のシステムエラー割り込み要求信号EIR′、出力延期のウォッチドッグ割り込み要求信号WIR′は、それぞれシステムエラー割り込み要求信号EIR、ウォッチドッグ割り込み要求信号WIRと等価である。
割り込み制御部5は、割り込み要求制御部7からのスルーまたは出力延期のシステムエラー割り込み要求信号EIR′、ウォッチドッグ割り込み要求信号WIR′を受け付け、内部の割り込み要求受付フラグをセットするとともに、CPU1に対し割り込み信号INTを発生する。CPU1は割り込み信号INTにより、割り込み制御部5の内部状態を解析し、割り込み要因を特定し、対応する割り込みベクタテーブル領域3aのアドレスを読み出し、割り込み処理プログラムへ制御を移す。なお、割り込み要求受付フラグは、プログラムによりセット/リセットできるように構成されるのが一般的である。
なお、割り込み要求制御部7による割り込み要求信号の出力延期が有効な期間においても、ウォッチドッグタイマ6はカウント動作を実行しており、定期的にウォッチドッグ割り込み要求信号WIRを発生している。
このように構成することで、不揮発性メモリ3に対する書き込み・消去中における不揮発性メモリ3への読み出しアクセスを回避でき、不定命令実行に起因するCPU1の暴走を防止できる。
(実施の形態2)
図2は本発明の実施の形態2におけるマイクロコントローラの構成を示すブロック図である。図2において、実施の形態1の図1におけるのと同じ符号は同一構成要素を指している。本実施の形態に特有の構成は、次のとおりである。ウォッチドッグタイマ6は、ウォッチドッグ割り込み要求信号WIRを出力した後に、割り込み処理プログラムによるウォッチドッグ割り込みのクリアが行われず、所定の周期が経過して2度目のウォッチドッグ割り込み要求信号WIRを発生したときには、強制リセット要求信号RRを発生するように構成されている。一般に、ウォッチドッグタイマは停止させることができないように構成される。図2において、8は外部リセット信号やウォッチドッグタイマ6からの強制リセット要求信号RRを入力とし、これらの信号がアサートされると直ちにハードリセット信号RSTを発生するリセット制御部、9はリセット制御部8からのハードリセット信号RSTの入力があったときに不揮発性メモリ3からの書き込み・消去フラグFがアサート状態であれば、書き込みまたは消去の異常終了を示す異常終了フラグFeを立てる異常終了フラグ発生部である。異常終了フラグ発生部9はCPU1によりリードおよびクリア可能なように構成されている。その他の構成については、実施の形態1と同様であるので、説明を省略する。
次に、上記のように構成された本実施の形態のマイクロコントローラの動作を説明する。
ウォッチドッグタイマ6は所定の周期でウォッチドッグ割り込み要求信号WIRを発生し、これを割り込み要求制御部7および割り込み制御部5を介してCPU1に与える。ウォッチドッグ割り込み要求信号WIRに対応する割り込みのクリアが行われないまま、所定の周期が経過して再度のウォッチドッグ割り込み要求信号WIRが発生した場合、これは、異常事態が解消されずCPU1が暴走している可能性が高い。そこで、ウォッチドッグタイマ6は強制リセット要求信号RRを発生し、リセット制御部8に与える。強制リセット要求信号RRを受けたリセット制御部8は、直ちにCPU1に対してハードリセット信号RSTを出力し、CPU1を含む1チップマイクロコントローラの各部をハードリセットする(システムリセット)。このとき、不揮発性メモリ3からの書き込み・消去フラグFがアサート状態であれば、異常終了フラグ発生部9はリセット制御部8からのハードリセット信号RSTを受けて、書き込みまたは消去の異常終了を示す異常終了フラグFeを立てる。すなわち、これは、不揮発性メモリ3に対する書き込みまたは消去中にハードリセットがかかって、その書き込みまたは消去が異常終了されたことになるが、この異常終了を示す異常終了フラグFeを立てる。結果として、CPU1の再起動後に、異常終了フラグFeを参照することで、不揮発性メモリ3の書き込み・消去動作に問題がなかったかを簡便に確認することが可能となる。
(実施の形態3)
図3は本発明の実施の形態3におけるマイクロコントローラの構成を示すブロック図である。図3において、実施の形態2の図2におけるのと同じ符号は同一構成要素を指している。本実施の形態に特有の構成は、ウォッチドッグ割り込み要求信号WIRは割込み要求制御部7を通さずに直接、割込み制御部5に入力されるように構成される。また、不揮発性メモリ3による書き込み・消去フラグFがウォッチドッグタイマ6にも入力されていて、ウォッチドッグタイマ6は、書き込み・消去フラグFがアサートされている期間中は、ウォッチドッグ割り込み要求信号WIRを発生したときから次のウォッチドッグ割り込み要求信号WIRを発生するまでの周期を前記所定の周期よりも長く設定するようになっている。すなわち、ウォッチドッグ割り込み要求周期は、不揮発性メモリ3に対する通常の読み出しモード時には短く、書き込みまたは消去モード時には長く設定されるようになっている。これは、直接には、ウォッチドッグタイマ6においてシステムクロックのカウント周期を変更できるように構成する。その他の構成については、実施の形態2と同様であるので、説明を省略する。
次に、上記のように構成された本実施の形態のマイクロコントローラの動作を説明する。
不揮発性メモリ3に対する書き込み・消去を行っていないときは、ウォッチドッグ割り込み要求を発生する周期としてシステム要件を満足する所定の周期に設定される。
不揮発性メモリ3に対する書き込み・消去の実行中は、所定の周期よりも長い周期に変更される。書き込み・消去にかかる時間以上のウォッチドッグ割り込み周期に設定されていれば、書き込み・消去の処理は所定の時間内で完了する。このためウォッチドッグ割り込みが発生することはなく、不定状態の不揮発性メモリ3のデータに対して命令フェッチすることによるCPU1の誤動作は起こらない。しかし、不揮発性メモリ3に対する書き込み・消去動作中にCPU1の動作に何らかの問題が生じ、ウォッチドッグ割り込み要求信号WIRをクリアできずに2度目のウォッチドッグ割り込み要求を受けると、強制リセット要求信号RRが発生し、システムリセットがかかり、システムを復旧することができる。
ウォッチドッグ割り込み要求信号WIRの周期が一定で短いと、不揮発性メモリ3に対する書き込み・消去の実行中のウォッチドッグ割り込み要求発生頻度が高くなる。ソフトウェアで書き込み・消去を制御するプログラムの場合、書き込み・消去動作の安定性や品質に悪影響を及ぼす可能性があり、書き込み・消去動作中に、割り込みなどの他の処理を行うことは好ましくない。
本実施の形態によれば、不揮発性メモリ3に対し通常の読み出し動作を行っているときと書き込み・消去を行っているときで別個のウォッチドッグ割り込み要求周期を設定することでシステムの割り込み応答周期を最適化するとともに、安定性や品質の高い書き込み・消去動作を実行することができる。
(実施の形態4)
本発明の実施の形態4のマイクロコントローラの構成は図3と同様である。不揮発性メモリ3に対する消去に要する時間は、一般に書き込み時間の数十倍以上になる。そこで、書き込み・消去フラグFについて、書き込み状態を示すProgramフラグとEraseフラグとに分ける。ウォッチドッグタイマ6は、不揮発性メモリ3に対する読み出し動作時、書き込み動作時、消去動作時それぞれのフラグに応じてタイマカウント周期を設定するものとする。このような構成により、システムの割り込み応答周期をさらに最適化できる。
(実施の形態5)
図4は本発明の実施の形態5におけるマイクロコントローラの構成を示すブロック図である。図4において、実施の形態3の図3におけるのと同じ符号は同一構成要素を指している。本実施の形態に特有の構成は、次のとおりである。図4において、3bは書き換え可能な不揮発性メモリ(フラッシュEEPROM)3に確保されたリセットベクタテーブル領域、3cは不揮発性メモリ3に確保されたリセット分岐先領域、PTは書き換えプロテクト信号である。リセットベクタテーブル領域3bは、CPU1にハードリセットがかかった場合に、CPU1が不揮発性メモリ3を最初に参照する領域である。リセット分岐先領域3cはリセットベクタテーブル領域3bのアドレスによって指定される分岐先であり、その先頭アドレスがリセットベクタテーブル領域3bに格納されている。リセット分岐先領域3cにはCPU1が実行可能なプログラムが格納されている。書き換えプロテクト信号PTは、CPU1による不揮発性メモリ3に対する書き込み・消去動作中にアサートされ、リセットベクタテーブル領域3bとリセット分岐先領域3cに対する書き込み・消去ができないようにプロテクトするものである。その他の構成については、実施の形態3と同様であるので、説明を省略する。
次に、上記のように構成された本実施の形態のマイクロコントローラの動作を説明する。
CPU1は、リセット制御部8からのハードリセット信号RSTによるハードリセットがかかった場合、最初の動作として不揮発性メモリ3におけるリセットベクタテーブル領域3bを参照し、そのアドレスが指定するリセット分岐先領域3cに分岐し、リセット分岐先領域3cに格納されているプログラムの実行を開始する。
ここで次のことを想定する。不揮発性メモリ3に対する書き込み・消去動作中にCPU1にハードリセットがかかると、書き込み・消去動作は強制的に中断される。したがって、不揮発性メモリ3内のデータは保証できず、不定になる。もし、リセットベクタテーブル領域3bまたはリセット分岐先領域3cに対する書き込みまたは消去を行っているときに何らかの異常でハードリセットがかかった場合、CPU1は不定データを読み出し、暴走してしまう。
これに対して、本実施の形態では、CPU1からの命令実行による不揮発性メモリ3に対する書き込み・消去動作において、書き換えプロテクト信号PTによりリセットベクタテーブル領域3bとリセット分岐先領域3cに対する書き込み・消去ができないようにプロテクトを行う。その結果、不揮発性メモリ3の書き込み・消去動作中のハードリセットによっても、リセットベクタテーブル領域3bおよびリセット分岐先領域3cのデータは保証されるため、不定命令実行に起因するCPU1の暴走を防止できる。
なお、実施の形態1にあるように、マイクロコントローラ外から書き込み・消去を行う汎用不揮発性メモリモード時には書き換えプロテクト信号PTをネゲート状態にしておく。これにより、リセットベクタテーブル領域3bとリセット分岐先領域3cに対する書き込み・消去を実行できる。
本発明は、CPUとフラッシュEEPROMなどの書き換え可能な不揮発性メモリと割り込み制御部などを備えたマイクロコントローラにおいて、不揮発性メモリに対する書き込みまたは消去中における割り込み要求でのCPUの暴走を回避する技術等として有用である。
本発明の実施の形態1におけるマイクロコントローラの構成を示すブロック図 本発明の実施の形態2におけるマイクロコントローラの構成を示すブロック図 本発明の実施の形態3,4におけるマイクロコントローラの構成を示すブロック図 本発明の実施の形態5におけるマイクロコントローラの構成を示すブロック図 従来技術における割り込みベクタアドレス変更方式のマイクロコントローラの構成を示すブロック図 従来技術における割り込み要求マスク方式のマイクロコントローラの構成を示すブロック図
符号の説明
1 CPU
2 メモリI/F
3 不揮発性メモリ(フラッシュEEPROM)
3a 割り込みベクタテーブル領域
3b リセットベクタテーブル領域
3c リセット分岐先領域
4 揮発性メモリ
5 割り込み制御部
6 ウォッチドッグタイマ(WDT)
7 割り込み要求制御部
8 リセット制御部
9 異常終了フラグ発生部
A1〜A3 アドレスバス
D1〜D3 データバス
EIR システムエラー割り込み要求信号
EIR′ 出力延期またはスルーのシステムエラー割り込み要求信号
F 書き込み・消去フラグ
Fe 異常終了フラグ
INT 割り込み
PT 書き換えプロテクト信号
RR 強制リセット要求信号
RST ハードリセット信号
WIR ウォッチドッグ割り込み要求信号
WIR′ 出力延期またはスルーのウォッチドッグ割り込み要求信号

Claims (5)

  1. CPUと、
    前記CPUによってアクセスされる書き換え可能な不揮発性メモリと、
    割り込み要求信号を入力したときに割り込み信号を発生し前記CPUに送出する割り込み制御部と、
    前記不揮発性メモリに対する書き込みまたは消去中であることを示す書き込み・消去フラグが有効である期間中に発生した前記CPUまたは周辺機能部からの割り込み要求信号をマスクし、前記不揮発性メモリに対する書き込みまたは消去の完了後に前記割り込み要求信号を前記割り込み制御部に送出する割り込み要求制御部とを備えたマイクロコントローラ。
  2. 前記周辺機能部として、所定の周期でウォッチドッグ割り込み要求を発生し、その割り込み要求に対応する割り込みのクリアが行われずに再度のウォッチドッグ割り込み要求が発生したときに強制リセット要求信号を発生するウォッチドッグタイマを備えるとともに、
    前記ウォッチドッグタイマによる前記強制リセット要求信号を受けたときに前記CPUに対してハードリセットをかけるリセット制御部と、
    前記不揮発性メモリに対する書き込みまたは消去中であることを示す書き込み・消去フラグが有効である期間中に前記リセット制御部からの前記ハードリセットがあったときに書き込みまたは消去の異常終了を示す異常終了フラグを立てる異常終了フラグ発生部とを備えた請求項1に記載のマイクロコントローラ。
  3. 前記ウォッチドッグタイマは、前記書き込み・消去フラグが有効である期間中は、前記ウォッチドッグ割り込み要求を発生したときから次のウォッチドッグ割り込み要求を発生するまでの周期を前記所定の周期よりも長く設定する請求項2に記載のマイクロコントローラ。
  4. 前記ウォッチドッグタイマにおける前記次のウォッチドッグ割り込み要求を発生するまでの周期は、前記不揮発性メモリに対するアクセスが書き込みのときと消去のときとで別個の周期に設定される請求項3に記載のマイクロコントローラ。
  5. 前記CPUは、前記ハードリセットに伴うリセットスタート時に、前記不揮発性メモリを最初に参照するリセットベクタテーブル領域と、前記CPUの起動用のプログラムを格納し前記リセットベクタテーブル領域に記録されているアドレスで指定されるリセット分岐先領域とに対する書き換えプロテクトを行う請求項1から請求項4までのいずれかに記載のマイクロコントローラ。
JP2006224065A 2006-08-21 2006-08-21 マイクロコントローラ Pending JP2008047025A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006224065A JP2008047025A (ja) 2006-08-21 2006-08-21 マイクロコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006224065A JP2008047025A (ja) 2006-08-21 2006-08-21 マイクロコントローラ

Publications (1)

Publication Number Publication Date
JP2008047025A true JP2008047025A (ja) 2008-02-28

Family

ID=39180676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006224065A Pending JP2008047025A (ja) 2006-08-21 2006-08-21 マイクロコントローラ

Country Status (1)

Country Link
JP (1) JP2008047025A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014155979A (ja) * 2013-02-15 2014-08-28 Makita Corp 電動工具用装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014155979A (ja) * 2013-02-15 2014-08-28 Makita Corp 電動工具用装置

Similar Documents

Publication Publication Date Title
US5923838A (en) Microcomputer with built-in flash memory
KR20070108060A (ko) 빠른 부팅 웨이크-업을 실행하는 시스템
US7395397B2 (en) Electronic apparatus with page table management of program, data processing method and computer program
WO2011016115A1 (ja) リセット方法及び監視装置
US20060090053A1 (en) Program-controlled unit
US20190278508A1 (en) Information Handling System Firmware Persistent Memory Runtime Reclaim
JP2004086451A (ja) 半導体集積回路
CN110874237A (zh) 软件升级方法、装置、终端以及可读存储介质
JP2000132427A (ja) 永久プログラマブルイネ―ブルメント付き改良型ウォッチドッグタイマ制御回路
US8069309B1 (en) Servicing memory in response to system failure
JP2005071303A (ja) プログラム起動装置
JP2005157528A (ja) メモリ装置
JP2008047025A (ja) マイクロコントローラ
JP3214469B2 (ja) マイクロコンピュータによるフラッシュeepromの書き込み制御方法及び装置
US20060080519A1 (en) Program-controlled unit
JP4876459B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムの起動方法、および携帯端末
JP2008059191A (ja) マイクロコントローラとそのデバッグ方法
JP7091853B2 (ja) 電子制御装置
JPH0816420A (ja) 小型情報処理装置のエラー処理方法
JP2005284329A (ja) 端末フェールセーフシステム、端末フェールセーフ方法および端末フェールセーフプログラム
JP2000132461A (ja) 情報制御装置
JP4543505B2 (ja) マイクロコンピュータの制御方法及び異常監視装置
JP2009093270A (ja) コンピュータシステム及びその起動方法
JP2008135051A (ja) 電子機器、データ処理方法、及びコンピュータプログラム
JP2009087507A (ja) 制御装置、および制御装置のメモリ初期化方法