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

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

Info

Publication number
JP2016110503A
JP2016110503A JP2014249148A JP2014249148A JP2016110503A JP 2016110503 A JP2016110503 A JP 2016110503A JP 2014249148 A JP2014249148 A JP 2014249148A JP 2014249148 A JP2014249148 A JP 2014249148A JP 2016110503 A JP2016110503 A JP 2016110503A
Authority
JP
Japan
Prior art keywords
ecc error
read
value
microcontroller
interrupt
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.)
Granted
Application number
JP2014249148A
Other languages
English (en)
Other versions
JP6304007B2 (ja
Inventor
宏憲 白井
Hironori Shirai
宏憲 白井
尊臣 梶川
Takaomi Kajikawa
尊臣 梶川
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2014249148A priority Critical patent/JP6304007B2/ja
Priority to US14/962,105 priority patent/US9778981B2/en
Publication of JP2016110503A publication Critical patent/JP2016110503A/ja
Application granted granted Critical
Publication of JP6304007B2 publication Critical patent/JP6304007B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ECCエラーが発生しても動作を継続し、ECCエラーが発生した箇所以外からはデータを読み出すことを可能とするマイクロコントローラを提供する。【解決手段】割り込み処理の中で、ECCエラー検出によって検出されたECCエラーの発生原因となった命令を特定し、この特定した命令をスキップしてメイン処理に戻るようにプログラムカウンタを変更する変更処理を実行し、変更処理後のメイン処理において読み出し値が読み出せるように、読み出し値の格納先に異常値を格納する異常値格納処理を実行する。【選択図】図2

Description

本発明は、車両の制御装置として用いることが可能なマイクロコントローラに関する。
車両の制御装置として用いることが可能なマイクロコントローラとして、例えば下記特許文献1に記載のマイクロコントローラが知られている。このマイクロコントローラは、CPUと、不揮発性メモリと、揮発性メモリと、を備えている。不揮発性メモリは、ビット誤り検出機能付のメモリモジュールである。このメモリモジュールは、エラー訂正コードECC(冗長化データ)を持ち、1ビットの誤りに対しては誤り検出と誤り訂正との双方が可能である。一方、2ビット以上の誤りに対しては、誤り検出はできるものの、誤り訂正を行うことはできないものである。以降、この訂正不能な誤りを検出したことをECCエラーと称するものとする。
特開2014−35729号公報
不揮発性メモリに格納されるデータは、長期にわたって保持されるべきデータであることが多く、ECCエラーが発生した場合には重大なハードエラーとして考えるのが一般的である。ECCエラーが発生すると、割り込みハンドラ内でのリセットや、不揮発性メモリの消去を行うことが一般的である。そのため、ECCエラーが発生すると、マイクロコントローラはデータ処理をそのまま継続することができない。
ところで、ECCエラーの発生原因としては、不揮発性メモリの故障に加えて、不揮発性メモリへのデータ書き込み中又はデータ消去中の電源遮断により発生する不完全なデータ領域へのアクセスに起因するものがある。マイクロコントローラを自動車のECUとして用いた場合、キー操作に応じて電源が遮断される。そして、そのキー操作はユーザーが任意に行うことができるので、不揮発性メモリへのデータ書き込み中又はデータ消去中に電源遮断が発生することは通常発生し得るものである。このような通常発生し得る電源遮断に対して、従来のマイクロコントローラはリセットを行ってしまうため動作の継続ができず、自動車に搭載されるECUとしては好適なものではなかった。
本発明はこのような課題に鑑みてなされたものであり、その目的は、ECCエラーが発生しても動作を継続し、ECCエラーが発生した箇所以外からはデータを読み出すことを可能とするマイクロコントローラを提供することにある。
上記課題を解決するために、本発明に係るマイクロコントローラは、不揮発性メモリ(26)を有し、前記不揮発性メモリにアクセスするメイン処理を行っている最中に発生するECCエラーを検出するECCエラー検出と、前記ECCエラーの発生時に割り込み処理を行う割り込み処理と、を実行可能なマイクロコントローラ(10)であって、前記割り込み処理の中で、前記ECCエラー検出によって検出されたECCエラーの発生原因となった命令を特定し、この特定した命令をスキップして次の命令を実行するようにプログラムカウンタを変更する変更処理を実行し、前記変更処理後の前記メイン処理において読み出し値が読み出せるように、前記読み出し値の格納先に異常値を格納する異常値格納処理を実行する。
本発明によれば、メイン処理を行っている最中にECCエラーが発生すると、割り込み処理の中で変更処理を実行するので、ECCエラーの発生原因となった命令をスキップして次の命令を実行することができ、動作の継続を確保することができる。また、読み出し値の格納先に異常値を格納するので、ECCエラーが発生しても異常値を読み出して処理することが可能となり、ECCエラーが発生した箇所以外からは通常通りデータを読み出すことが可能となる。
本発明によれば、ECCエラーが発生しても動作を継続し、ECCエラーが発生した箇所以外からはデータを読み出すことを可能とするマイクロコントローラを提供することができる。
本実施形態に係るマイクロコントローラの機能的な構成を示すブロック図である。 図1に示すマイクロコントローラの動作の一例を説明するためのフローチャートである。 図2に対応させたシーケンスチャートである。 図1に示すマイクロコントローラの動作の他の例を説明するためのフローチャートである。 図4に対応させたシーケンスチャートである。
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
本発明の実施形態に係るマイクロコントローラについて、図1を参照しながら説明する。図1に示されるように、マイクロコントローラ10は、CPU20と、割り込みコントローラ21と、I/Oポート22と、RAM23と、ROM24と、不揮発性メモリコントローラ25と、不揮発性メモリ26と、電源27と、を備えている。
電源27は、CPU20、割り込みコントローラ21、I/Oポート22、RAM23、ROM24、不揮発性メモリコントローラ25、及び不揮発性メモリ26を動作させるために電力を供給する電力源である。CPU20は、割り込みコントローラ21、I/Oポート22、RAM23、ROM24、及び不揮発性メモリコントローラ25に、駆動信号を出力して各部を動作させる中央演算装置である。
I/Oポート22は、外部とのデータのやり取りを行うためのインターフェイス回路である。RAM23は、データを書き込み、データを読み取ることが可能なメモリである。
ROM24は、データの読み取りのみが可能なメモリである。ROM24には、不揮発性メモリドライバソフト241と、アプリケーションソフト242が格納されている。CPU20は、不揮発性メモリドライバソフト241及びアプリケーションソフト242を読み出して、後述するような動作を行うものである。
不揮発性メモリコントローラ25は、不揮発性メモリ26へのデータの書き込みや、不揮発性メモリ26からのデータの消去や、不揮発性メモリ26からのデータの読み出しを行うものである。不揮発性メモリコントローラ25は、ECCモジュール251と、ECCエラーの割り込み要因ビット252とを有している。ECCモジュールは、ECCエラーの検出を行うモジュールである。ECCエラー発生時、不揮発性メモリコントローラ25は、ECCエラーの割り込み要因ビット252をONにセットする。
続いて、マイクロコントローラ10の動作について、図2及び図3を参照しながら説明する。図2に示されるように、メイン処理として、不揮発性メモリ26に格納されているデータへのアクセス処理が開始される(ステップS01)。
ステップS01に続くステップS02では、ECCエラー発生の有無を示すフラグをOFFにセットする。このように、フラグを用いてECCエラーの発生有無を判断しているので、例えば並行して実行される他の処理においてECCエラーが発生した場合と区別することができ、割り込み処理を確実に実行することができる。
ステップS02に続くステップS03では、不揮発性メモリ26からデータを読み出す。この読み出し処理が通常通り実行できればステップS04の処理に進む。一方、読み出し処理においてECCエラーが発生すると、割り込み処理の実行が開始される(ステップS11)。この場合、割り込み発生時に、その時のプログラムカウンタの値がマイクロコントローラ10により退避される。尚、読み出し命令の実行中に割り込みが発生しているため、プログラムカウンタは読み出し命令を指したままの状態となっている。
ステップS11に続くステップS12では、ECCエラーの割り込み要因ビットがONになっているか、OFFになっているか判断する。ECCエラーの割り込み要因ビットがONになっていればステップS13の処理に進み、ECCエラーの割り込み要因ビットがOFFになっていればステップS14の処理に進む。
ステップS14では、発生しているエラーがECCエラーではないので、エラー種別に応じた処置を行い割り込み処理を終了し、ステップS04の処理に戻る。
ステップS13では、ECCエラーが発生した読み出し命令の命令長を特定する。ステップS13に続くステップS15では、読み出し命令の命令長分だけ、退避されているプログラムカウンタを進める。これによって、割り込み終了後に読み出し命令をスキップした箇所(次の命令)からプログラムを実行することができる。
ステップS15に続くステップS16では、ECCエラー発生有無フラグをONにセットする。ステップS16に続くステップS17では、ECCエラーの割り込み要因ビットをOFFにセットする。
メイン処理に戻り、ステップS04では、ECCエラー発生有無フラグを確認する。ECCエラー発生有無フラグがONになっていればステップS05の処理に進み、ECCエラー発生有無フラグがOFFになっていれば処理を終了する。ステップS05では、読み出し値の格納先に異常値をセットし、処理を終了する。
このように、割り込み処理の中で、ECCエラーの発生原因となった命令を特定し、この特定した命令をスキップしてメイン処理に戻るようにプログラムカウンタを変更する変更処理を実行するので、処理を続行することができる。何らの対策もしなければ不完全領域が解消されないまま読み出し処理が再実行されてしまい、再び割り込み処理に戻ってしまうため、無限ループに陥る。
また、異常値格納処理として、変更処理後においてメイン処理に戻った場合に、ECCエラーが起こっていたか否かを判断するECCエラー判断を実行し、ECCエラーが起こっていたと判断すると格納先に異常値を格納するので、読み出し値が不定となる悪影響を回避することができる。従来の技術のように、起動時に全体のチェックと不完全な領域の修復を行うことも考えられるが、起動時の負荷が高くなり時間もかかるので、素早い起動が求められるシステムの場合等は不適当である。その点、本実施形態では格納先に異常値を格納することで素早い起動性を確保している。
この観点からは、変更処理後のメイン処理において読み出し値が読み出せるように、読み出し値の格納先に異常値を格納する異常値格納処理を実行すればよく、必ずしも上述した方法に限られるものではない。
読み出し値の格納先に初期値を異常値として格納する方法について、図4及び図5を参照しながら説明する。図2に示されるように、メイン処理として、不揮発性メモリ26に格納されているデータへのアクセス処理が開始される(ステップS21)。
ステップS21に続くステップS22では、読み出し値の格納先に初期値を異常値とみなして格納する。このように初期値を異常値として格納すると、不揮発性メモリ26からの読み出しが実行されなかった場合には、初期値が格納されたままとなる。
ステップS22に続くステップS23では、不揮発性メモリ26からデータを読み出す。この読み出し処理が通常通り実行できれば処理を終了する。一方、読み出し処理においてECCエラーが発生すると、割り込み処理の実行が開始される(ステップS31)。この場合、割り込み発生時に、その時のプログラムカウンタの値がマイクロコントローラ10により退避される。尚、読み出し命令の実行中に割り込みが発生しているため、プログラムカウンタは読み出し命令を指したままの状態となっている。
ステップS31に続くステップS32では、ECCエラーの割り込み要因ビットがONになっているか、OFFになっているか判断する。ECCエラーの割り込み要因ビットがONになっていればステップS33の処理に進み、ECCエラーの割り込み要因ビットがOFFになっていればステップS34の処理に進む。
ステップS34では、発生しているエラーがECCエラーではないので、エラー種別に応じた処置を行い割り込み処理を終了し、メイン処理も終了する。
ステップS33では、ECCエラーが発生した読み出し命令の命令長を特定する。ステップS33に続くステップS35では、読み出し命令の命令長分だけ、退避されているプログラムカウンタを進める。これによって、割り込み終了後に読み出し命令をスキップした箇所(次の命令)からプログラムを実行することができる。
ステップS35に続くステップS36では、ECCエラーの割り込み要因ビットをOFFにセットして割り込み処理を終了し、メイン処理も終了する。
このようにECCエラー発生有無フラグを用いずにECCエラー発生に対応することができるので、マイクロコントローラ10のパフォーマンスを高めることができる。しかしながら、このプログラムをC言語で記載した場合、コンパイラの最適化によりステップS22で行った初期値の格納が削除されてしまう場合がある。この場合、その部分をアセンブリ言語で記述する方法が考えられるが、C言語で記述するよりも保守性が低くなる。この保守性低下を抑制するため、不揮発性メモリへのアクセス箇所を関数化することにより、アセンブリ言語での記述箇所を局所化することで対応することができる。しかし、メイン処理が多数繰り返されるような処理の場合は、性能低下が著しく採用することは難しい。一方、図2及び図3を参照しながらした方法では、その懸念がないので保守性と性能の面で優れている。
10:マイクロコントローラ

Claims (3)

  1. 不揮発性メモリ(26)を有し、前記不揮発性メモリにアクセスするメイン処理を行っている最中に発生するECCエラーを検出するECCエラー検出と、前記ECCエラーの発生時に割り込み処理を行う割り込み処理と、を実行可能なマイクロコントローラ(10)にであって、
    前記割り込み処理の中で、前記ECCエラー検出によって検出されたECCエラーの発生原因となった命令を特定し、この特定した命令をスキップして次の命令を実行するようにプログラムカウンタを変更する変更処理を実行し、
    前記変更処理後の前記メイン処理において読み出し値が読み出せるように、前記読み出し値の格納先に異常値を格納する異常値格納処理を実行する、ことを特徴とするマイクロコントローラ。
  2. 前記異常値格納処理では、前記変更処理後において前記メイン処理に戻った場合に、前記ECCエラーが起こっていたか否かを判断するECCエラー判断を実行し、前記ECCエラーが起こっていたと判断すると前記格納先に異常値を格納することを特徴とする、請求項1に記載のマイクロコントローラ。
  3. 前記異常値格納処理では、前記変更処理後に前記メイン処理に戻り前記格納先から前記読み出し値を読み出す前に、前記格納先に初期値を異常値として格納することを特徴とする、請求項1に記載のマイクロコントローラ。
JP2014249148A 2014-12-09 2014-12-09 マイクロコントローラ Active JP6304007B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014249148A JP6304007B2 (ja) 2014-12-09 2014-12-09 マイクロコントローラ
US14/962,105 US9778981B2 (en) 2014-12-09 2015-12-08 Microcontroller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014249148A JP6304007B2 (ja) 2014-12-09 2014-12-09 マイクロコントローラ

Publications (2)

Publication Number Publication Date
JP2016110503A true JP2016110503A (ja) 2016-06-20
JP6304007B2 JP6304007B2 (ja) 2018-04-04

Family

ID=56094440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014249148A Active JP6304007B2 (ja) 2014-12-09 2014-12-09 マイクロコントローラ

Country Status (2)

Country Link
US (1) US9778981B2 (ja)
JP (1) JP6304007B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107818809A (zh) * 2016-09-12 2018-03-20 东芝存储器株式会社 半导体存储装置及存储器系统
JP2019212124A (ja) * 2018-06-06 2019-12-12 株式会社デンソー 電子制御装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6158265B2 (ja) * 2015-09-16 2017-07-05 株式会社東芝 キャッシュメモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59174952A (ja) * 1983-03-24 1984-10-03 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン パリテイエラ−回復方法
JPS62274355A (ja) * 1986-05-22 1987-11-28 Fujitsu Ltd メモリエラ−処理方式
JPH03248133A (ja) * 1990-02-26 1991-11-06 Ricoh Co Ltd カメラの制御装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60215251A (ja) 1984-04-11 1985-10-28 Nec Corp デ−タ処理装置
JPH10320294A (ja) * 1997-05-20 1998-12-04 Unisia Jecs Corp コントロールユニットおよびその異常検出方法
US7424666B2 (en) * 2005-09-26 2008-09-09 Intel Corporation Method and apparatus to detect/manage faults in a system
US9689925B2 (en) * 2011-04-06 2017-06-27 Unique Technologies, Llc Reliable arc fault circuit interrupter tester utilizing a dynamic fault voltage
US8618811B2 (en) * 2011-04-06 2013-12-31 Unique Technologies, Llc ARC fault circuit interrupter tester with current responsive pulse timing
JP5682829B2 (ja) 2011-09-01 2015-03-11 日本電気株式会社 情報処理装置
JP5872982B2 (ja) 2012-08-10 2016-03-01 日立オートモティブシステムズ株式会社 車両用制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59174952A (ja) * 1983-03-24 1984-10-03 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン パリテイエラ−回復方法
JPS62274355A (ja) * 1986-05-22 1987-11-28 Fujitsu Ltd メモリエラ−処理方式
JPH03248133A (ja) * 1990-02-26 1991-11-06 Ricoh Co Ltd カメラの制御装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107818809A (zh) * 2016-09-12 2018-03-20 东芝存储器株式会社 半导体存储装置及存储器系统
CN107818809B (zh) * 2016-09-12 2021-06-25 东芝存储器株式会社 半导体存储装置及存储器系统
JP2019212124A (ja) * 2018-06-06 2019-12-12 株式会社デンソー 電子制御装置
JP7091853B2 (ja) 2018-06-06 2022-06-28 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
US9778981B2 (en) 2017-10-03
US20160162358A1 (en) 2016-06-09
JP6304007B2 (ja) 2018-04-04

Similar Documents

Publication Publication Date Title
JP5010271B2 (ja) エラー訂正コード生成方法、およびメモリ制御装置
US8812910B2 (en) Pilot process method for system boot and associated apparatus
US9563497B2 (en) Correcting a failure associated with a current firmware image
JP2012198878A (ja) 半導体不揮発性メモリ装置のリフレッシュ操作開始方法およびシステム
EP2770507B1 (en) Memory circuits, method for accessing a memory and method for repairing a memory
JP6304007B2 (ja) マイクロコントローラ
US20160364280A1 (en) Circuitry and method for testing an error-correction capability
JP2016081341A (ja) 電子制御装置
JP2013171343A (ja) ストレージデバイス
JP5813450B2 (ja) 電子制御装置
CN112379843B (zh) Eeprom数据处理方法、系统、存储介质及终端
JP2009295252A (ja) 半導体記憶装置及びそのエラー訂正方法
JP2014075078A (ja) 電子制御装置
US10120614B2 (en) Storage device, storage system, and method of controlling storage device
JP6054753B2 (ja) 半導体装置及びデータアクセス方法
US10019186B2 (en) Data maintenance method for error control and data storage device using the same
JP5018140B2 (ja) マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム
TW201606785A (zh) 記憶體控制器
JP4239754B2 (ja) 不揮発メモリシステム
JP6363044B2 (ja) 制御装置
JP2011150383A (ja) ファームウェア書き込み方法
JP2019164472A (ja) 半導体装置
TW201335844A (zh) 控制器、位址選擇器及替換錯誤指令的方法
JP2007011839A (ja) メモリ管理方法及びメモリ管理システム
JP2005234855A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180219

R151 Written notification of patent or utility model registration

Ref document number: 6304007

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250