JP2013030056A - 半導体集積回路装置 - Google Patents
半導体集積回路装置 Download PDFInfo
- Publication number
- JP2013030056A JP2013030056A JP2011166719A JP2011166719A JP2013030056A JP 2013030056 A JP2013030056 A JP 2013030056A JP 2011166719 A JP2011166719 A JP 2011166719A JP 2011166719 A JP2011166719 A JP 2011166719A JP 2013030056 A JP2013030056 A JP 2013030056A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- semiconductor integrated
- integrated circuit
- circuit device
- test
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】部品点数を増加させることなく、低コストでかつ効率的に半導体集積回路装置の高信頼性化を実現させる。
【解決手段】ユーザプログラムの実行時において、周期タイマ2からタイマカウンタ信号が出力されると、CPUコア6,7はASEメモリ3に格納されたテスト用プログラムを実行し、そのチェック結果をトレースメモリ11に格納する。デバッグ回路10は、トレースメモリ11に格納されたチェック結果のコンペア処理を行い、CPUコア6,7が正常か否かを判定する。正常の場合、CPUコア6,7は、再びユーザプログラムを実行する。異常の場合、デバッグ回路10は、状態信号をシステム停止回路12に出力する。この状態信号を受けると、システム停止回路12は、動作制御信号をCPUコア6,7にそれぞれ出力し、半導体集積回路装置1の再起動処理が行われる。
【選択図】図1
【解決手段】ユーザプログラムの実行時において、周期タイマ2からタイマカウンタ信号が出力されると、CPUコア6,7はASEメモリ3に格納されたテスト用プログラムを実行し、そのチェック結果をトレースメモリ11に格納する。デバッグ回路10は、トレースメモリ11に格納されたチェック結果のコンペア処理を行い、CPUコア6,7が正常か否かを判定する。正常の場合、CPUコア6,7は、再びユーザプログラムを実行する。異常の場合、デバッグ回路10は、状態信号をシステム停止回路12に出力する。この状態信号を受けると、システム停止回路12は、動作制御信号をCPUコア6,7にそれぞれ出力し、半導体集積回路装置1の再起動処理が行われる。
【選択図】図1
Description
本発明は、半導体集積回路装置の信頼性向上化技術に関し、特に、デバッグ機能を用いた信頼性の向上に有効な技術に関する。
自動車には、ナビゲーションシステムやオーディオなどの情報系、エンジンやシャーシなどのパワートレイン系、あるいはエアコンやヘッドライト、ドアロックなどのボディ系などの各種制御を司るECU(Electric Control Unit)などの電子システムが多数搭載されている。
このような電子システムに用いられる半導体集積回路装置には、高い信頼性が要求されており、高信頼性を実現する技術として、たとえば、電子システムにマイクロコンピュータなどの半導体集積回路装置の動作を監視する新たな監視用マイクロコンピュータなどの半導体集積回路装置を別チップによって設けたものが知られている。
この場合、監視用マイクロコンピュータは、電子システムの制御を司る半導体集積回路装置を定期的に監視し、該半導体集積回路装置に故障などの異常がないかをチェックしている。
この種の半導体集積回路装置におけるテスト技術としては、試験用基板上において、第1メモリ回路、第2メモリ回路、および信号処理回路を有する半導体集積回路装置の実動作に相当したクロック信号を供給し、テスト装置から第2メモリ回路に第1メモリ回路の動作試験を行うテストプログラムを書き込み、信号処理回路が書き込まれたテストプログラムに従って第1メモリ回路の動作試験を行い、良否判定結果をテスト装置に出力するものが知られている(たとえば、特許文献1参照)。
ところが、上記のような半導体集積回路装置における高信頼性技術では、次のような問題点があることが本発明者により見い出された。
前述したように、電子システムにチェック用マイクロコンピュータが新たに必要となるので、該電子システムのコストが増加してしまうという問題がある。また、チェック用マイクロコンピュータを搭載するスペースが必要となり、電子システムの小型化の妨げとなってしまう恐れがある。
さらに、チェック用マイクロコンピュータによる専用のテストプログラムが必要となってしまい、該テストプログラムの開発工数やコストが必要となってしまうという問題がある。
本発明の目的は、部品点数を増加させることなく、低コストでかつ効率的に半導体集積回路装置の高信頼性化を実現させることのできる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
一実施の形態によれば、半導体集積回路装置は、ユーザプログラムが格納される第1のメモリと、ユーザプログラムに基づいて動作するCPUと、CPUが正常に動作しているか否かを一定の機会ごとに判定するための第1テストのプログラムが格納される第2のメモリと、第1テストの結果のデータを格納する第3のメモリとを有する。
さらに、第3のメモリは、第1テストの一定の機会とは異なるときに行なわれる第2テストの結果のデータの格納に用いられるメモリである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
回路構成などを大幅に増加させることなく、半導体集積回路装置における高信頼性を確保することができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1は、本発明の実施の形態1による半導体集積回路装置の一例を示す説明図、図2は、図1の半導体集積回路装置におけるデバッグ処理の一例を示すフローチャート、図3は、図1の半導体集積回路装置におけるCPUコアの検査処理の一例を示すフローチャート、図4は、図1の半導体集積回路装置に設けられたデバッグ回路によるコンペア処理の一例を示す説明図、図5は、図1の半導体集積回路装置に設けられたデバッグ回路によるコンペア処理の他の例を示す説明図、図6は、図1の半導体集積回路装置の他の例を示す説明図、図7は、図1のCPUコアにおけるある状態の測定結果の履歴情報の一例を示した説明図である。
図1は、本発明の実施の形態1による半導体集積回路装置の一例を示す説明図、図2は、図1の半導体集積回路装置におけるデバッグ処理の一例を示すフローチャート、図3は、図1の半導体集積回路装置におけるCPUコアの検査処理の一例を示すフローチャート、図4は、図1の半導体集積回路装置に設けられたデバッグ回路によるコンペア処理の一例を示す説明図、図5は、図1の半導体集積回路装置に設けられたデバッグ回路によるコンペア処理の他の例を示す説明図、図6は、図1の半導体集積回路装置の他の例を示す説明図、図7は、図1のCPUコアにおけるある状態の測定結果の履歴情報の一例を示した説明図である。
〈実施の形態の概要〉
本実施の形態の概要は、以下である。
本実施の形態の概要は、以下である。
ユーザプログラムが格納される第1のメモリ(内蔵メモリ8,9)と、ユーザプログラムに基づいて動作するCPU(CPUコア6,7)と、CPUが正常に動作しているか否かを一定の機会ごとに判定するための第1テストのプログラムが格納される第2のメモリ(ASEメモリ3)とを有する。
また、第1テストのプログラムに基づいて、CPUが正常に動作しているか否かを判定するための第1テスト結果のデータを格納する第3のメモリ(トレースメモリ11)を有する。
上述の一定の機会とは異なるときに、第2のメモリは第2テストのプログラムの格納に用いられ、第3のメモリは第2テスト結果のデータの格納に用いられる。
別の見方をすれば以下のようになる。
ユーザプログラムが格納される第1のメモリ(内蔵メモリ8,9)と、ユーザプログラムに基づいて動作するCPU(CPUコア6,7)と、CPUが正常に動作しているか否かを判定するための第1テストのプログラムが格納される第2のメモリ(ASEメモリ3)とを有する。
また、第1テストのプログラムに基づいて、CPUが正常に動作しているか否かを判定するための第1テスト結果のデータを格納する第3のメモリ(トレースメモリ11)を有する。
第1テストのプログラムが格納される前に、第2のメモリは第2テストのプログラムの格納に用いられ、第3のメモリは第2テスト結果のデータの格納に用いられる。
以下、上記した概要に基づいて、実施の形態を詳細に説明する。
本実施の形態1において、半導体集積回路装置1は、たとえば、自動車におけるエンジンやシャーシなどのパワートレイン系、あるいはエアコンやヘッドライト、ドアロックなどのボディ系などの各種制御を司るECUに用いられる1チップのマイクロコンピュータである。
半導体集積回路装置1には、図1に示すように、周期タイマ2、ASEメモリ3、メモリインタフェース4、インタフェース5、CPUコア6,7、内蔵メモリ8,9、デバッグ回路10、トレースメモリ11、システム停止回路12、およびレジスタ13などが設けられている。また、ASEメモリ3、メモリインタフェース4、インタフェース5、CPUコア6,7、ならびにデバッグ回路10は、メインバスBを介して相互に接続されている。
ここでは、CPUコアが2つの例を示している。
さらに、半導体集積回路装置1には、外部メモリ14、ならびに外部IP(Intellectual Property)15がそれぞれ接続されている。外部メモリ14は、半導体集積回路装置1に外部接続されるメモリであり、たとえば、フラッシュメモリに例示される不揮発性メモリやHDD(Hard Disc Drive)などである。
外部メモリ14には、後述するデバッグ用プログラム、テスト用プログラム、およびECUの動作プログラムであるユーザプログラムなどの様々なデータが格納される。外部IP15は、たとえば、画像処理プロセッサや信号処理プロセッサなどの半導体集積回路装置1に外部接続されるハードウェアモジュールである。
周期タイマ2は、CPUコア6,7にそれぞれ接続されており、タイマクロックなどのカウントアップを行い、ある時間に到達するとタイマカウンタ信号を出力する。ASE(Advanced System Evaluation)メモリ3は、たとえば、SRAM(Static Random Access Memory)などの揮発性メモリからなり、デバッグ用プログラム、およびテスト用プログラムなどが格納される。
デバッグ用プログラムは、ユーザシステム(たとえば、ECU)におけるユーザプログラムのバグを取り除くデバッグを行う際に用いられるプログラムである。テスト用プログラムは、製品となった半導体集積回路装置1において、CPUコア6,7の故障診断を行うプログラムであり、該CPUコア6,7の通常動作の合間に実行されるプログラムである。
ここで、通常動作とは、製品となった半導体集積回路装置1において、CPUコア6,7がユーザプログラムによる動作である。
このため、通常、ユーザプログラムはデバッグを終了しているものである。
またここでは、製品となった半導体集積回路装置1において、製品の使用等により半導体集積回路装置1に故障等が生じていないか、通常動作の合間に第1テストであるテストを行なう。
通常動作の合間には、半導体集積回路装置1のパワーオン(起動)時やパワーオフ時も含まれるものである。
つまりこのテストは、通常動作の合間(言い換えるとユーザプログラムによる動作の合間)に定期的(周期的)または半導体集積回路装置1のパワーオン(起動)時やパワーオフ(停止)時に行なわれる。
このテストは、定期的またはパワーオンやパワーオフ時等の一定の機会ごとにされているものと考える。
通常動作とは異なる動作である非通常動作とは、例えばデバッグ用プログラムを用いたデバッグ動作、あるいは製品出荷前の半導体集積回路装置をテストするテスト動作である。
つまり、出荷後の通常動作の合間に行なう第1テストではない、第2テストである。
非通常動作の場合、デバッグや製品出荷前のテスト等の実行前に半導体集積回路装置1外からプログラムが半導体集積回路装置1の内部のメモリに書き込まれる。
よって、第1テストは、一定の機会ごとあるいは、半導体集積回路装置の出荷後に行なわれるテストである。
第2テストは、第1テストとは異なるとき、あるいは、第1テストの前、あるいは、半導体集積回路装置出荷前に行なわれるテストである。
メモリインタフェース4は、外部メモリ14とのインタフェース回路であり、インタフェース5は、外部IP15とのインタフェース回路である。CPUコア6,7は、ユーザプログラムに基づいて、半導体集積回路装置1における動作を行なう。
内蔵メモリ8は、CPUコア6が使用するユーザプログラムが格納されるメモリであり、内蔵メモリ9は、CPUコア7が使用するユーザプログラムが格納されるメモリである。内蔵メモリ8,9は、たとえば、SRAMなどの揮発性メモリからなる。
デバッグ回路10は、非通常動作時において、ASEメモリ3に格納されたデバッグ用プログラムに基づいて、ユーザシステム(ECU)のデバッグを実行する。
また、デバッグ回路10は、通常動作の合間に、テスト用プログラムに基づいて該CPUコア6,7の故障診断を行う回路である。
トレースメモリ11は、デバッグ回路10、CPUコア6,7にそれぞれ接続されている。非通常動作時において、トレースメモリ11は、デバッグ用プログラムに基づいたデバッグ時にサンプリングした各種データやステータス信号などのトレース結果を格納する。
また、通常動作の合間において、テスト用プログラムに基づいたCPUコア6,7の故障診断結果を格納するメモリである。
たとえば、SRAMなどの揮発性メモリからなる。
システム停止回路12は、デバッグ回路10に接続されている。
通常動作の合間において、このシステム停止回路12には、デバッグ回路10から出力される状態信号が入力されるように接続されている。
状態信号は、デバッグ回路10がCPUコア6,7の少なくとも一方が故障であると診断した際に出力される信号である。
システム停止回路12は、状態信号が入力されると、CPUコア6,7を一時停止、あるいは再起動させる動作制御信号を出力する。
システム停止回路12から出力される動作制御信号は、CPUコア6,7にそれぞれ入力されるとともに外部端子T1を介して、半導体集積回路装置1の外部に出力される。
レジスタ13は、ASEメモリ3、およびトレースメモリ11にそれぞれ接続されている。レジスタ13は、ASEメモリ3、ならびにトレースメモリ11を動作状態とするイネーブル信号を記憶する。このイネーブル信号は、たとえば、半導体集積回路装置1に設けられた外部端子T2を介して外部から入力される。
ASEメモリ3は、半導体集積回路装置1においてメモリ容量が他のメモリよりも比較的記憶容量の小さいメモリであり、たとえば、8Kバイト程度である。トレースメモリ11は、ASEメモリ3よりもメモリ容量が大きく、たとえば、32Kバイト〜42Kバイト程度である。
また、内蔵メモリ8,9は、トレースメモリ11よりもメモリ容量が大きく、たとえば、それぞれ128Kバイト〜256Kバイト程度である。半導体集積回路装置1に外部接続される外部メモリ14は、内蔵メモリ8,9よりもメモリ容量が大きく、M(メガ)バイトオーダ、またはそれ以上のメモリ容量を有している。
次に、本実施の形態における半導体集積回路装置1の動作について説明する。
図2は、ユーザプログラムにおけるデバッグ処理の一例を示すフローチャートである。
つまり、非通常動作時のフローチャートを示すものである。
このデバッグ処理時には、たとえば、半導体集積回路装置1を用いたユーザが開発中のユーザシステムとソフトウェア開発用のパーソナルコンピュータとの間には、ソフトウェアおよびハードウェアのデバッグ、評価を行うエミュレータが接続された構成となっている。
まず、デバッグを開始する際には、エミュレータから外部端子T2を介してイネーブル信号(たとえば、Hi信号)が入力され、レジスタ13に格納される(ステップS101)。レジスタ13に格納されたイネーブル信号により、ASEメモリ3、およびトレースメモリ11がそれぞれ動作可能状態となる。
続いて、ASEメモリ3は、エミュレータから出力されるデバッグ用プログラムをロードして格納する(ステップS102)。そして、内蔵メモリ8,9は、エミュレータから出力されるデバッグを行うユーザプログラムをそれぞれロードして格納する(ステップS103)。
その後、CPU6,7は、内蔵メモリ8,9にそれぞれ格納されたユーザプログラムを実行する(ステップS104)。このステップS103の処理において、デバッグ回路10は、ASEメモリ3に格納されたデバッグ用プログラムに基づいて、ユーザシステム(たとえば、ECUなど)におけるユーザプログラムのデバッグを実行し(ステップS105)、トレースメモリ11にデバッグ用プログラムに基づくサンプリングした各種データやステータス信号などのトレース結果を格納する(ステップS106)。
トレースメモリ11に格納されたトレース結果は、エミュレータを介してパーソナルコンピュータのモニタなどに表示され、ユーザにより、トレース結果の確認が行われる(ステップS107)。
図3は、テスト用プログラムによるCPUコア6,7の検査処理の一例を示すフローチャートである。
つまり、通常動作および通常動作の合間のフローチャートを示すものである。
CPUコア6,7の検査は、たとえば、自動車などに設けられたECUなどに半導体集積回路装置1が搭載され、該半導体集積回路装置1が製品として通常動作している際に行われる検査処理である。
まず、半導体集積回路装置1に電源電圧VCCが投入されると、外部端子T2を介してイネーブル信号(たとえば、Hi信号)が入力され、レジスタ13にイネーブル信号が格納される(ステップS201)。レジスタ13に格納されたイネーブル信号により、ASEメモリ3、およびトレースメモリ11がそれぞれ動作可能状態となる。
そして、たとえば、外部メモリ14に格納されたテスト用プログラムがメモリインタフェース4を介してASEメモリ3にロードされる(ステップS202)。続いて、周期タイマ2が起動し(ステップS203)、内蔵メモリ8,9に格納されたユーザプログラムに基づいて、半導体集積回路装置1が通常動作状態となる(ステップS204)。
ここの例では、CPUコア6と7が同じテスト用プログラムを実行し、結果が同じになるか否かで動作が正常か否かを判断することとする。
このステップS204の処理において、周期タイマ2からある時間毎に出力されるタイマカウンタ信号が出力されると、CPUコア6,7は、ASEメモリ3に格納されたテスト用プログラムを実行する(ステップS205)。CPUコア6,7は、テスト用プログラムに基づいたチェック結果をトレースメモリ11に格納する(ステップS206)。
デバッグ回路10は、トレースメモリ11にチェック結果が格納されたことを検知すると、該トレースメモリ11に格納されたチェック結果のコンペア処理を行い(ステップS207)、CPUコア6,7が正常か否かを判定する(ステップS208)。
ここでは、同じ結果になるか否かで、正常もしくは異常と判断する例となる。
ステップS208の処理において、デバッグ回路10が正常と判定した場合、デバッグ回路10からは状態信号が出力されず、CPUコア6,7は、テスト用プログラムの処理が終了すると、再びユーザプログラムによる通常動作を行う。
また、ステップS208の処理において、CPUコア6,7のいずれかが異常であるとデバッグ回路10が判定した場合、該デバッグ回路10は、状態信号をシステム停止回路12に出力する。
この状態信号を受けると、システム停止回路12は、動作制御信号をCPUコア6,7にそれぞれ出力する。CPUコア6,7は、動作制御信号が入力されると、半導体集積回路装置1の再起動処理を行う(ステップS209)。ここでは、半導体集積回路装置1の再起動処理ではなく、強制停止としてもよい。
さらに、デバッグ回路10から出力される動作制御信号は、CPUコア6,7にそれぞれ入力されるだけではなく、外部端子T1を介して外部出力される。これにより、CPUコア6,7のいずれかが異常であることを外部に知らせることができる。
上記したステップS205〜S208の処理は、周期タイマ2からタイマカウンタ信号が出力される毎に行われる。
次に、図3のステップS207におけるコンペア処理の一例について説明する。
テスト用プログラムでは、ALU(Arithmetic and Logic Unit)の演算状態、レジスタの状態、FPU(Floating point number Processing Unit)の演算状態、CPUコア6,7の命令実行シーケンス状態、CPUコア6,7の命令分岐状態、外部IP15の起動状態、ならびに外部メモリ14のメモリ内容の状態などをチェックする。
ALUは、CPUコア6,7にそれぞれ設けられている演算装置であり、レジスタは、CPUコア6,7にそれぞれ設けられている記憶装置である。FPUは、CPUコア6,7にそれぞれ設けられている浮動小数点数演算装置である。
図4は、デバッグ回路10によるコンペア処理の一例を示す説明図である。
図4に示す「メモリ内容」において、最上段は、タイムスタンプをそれぞれ示しており、タイムスタンプの下側には、上方から下方にかけて、ALUの演算状態、レジスタの状態、FPUの演算状態、CPUコア6,7の命令実行シーケンス状態、CPUコア6,7の命令分岐状態、外部IP15の起動状態、ならびに外部メモリ14のメモリ内容の状態などのチェック結果がそれぞれ示されている。これらのチェック結果は、トレースメモリ11に格納されている。
タイムスタンプは、どちらのCPUコアであるかとチェック回数がそれぞれ示されており、たとえば、図4の左上段に示す「H’0000_0000」のうち、「H’」の次の「0000」は、CPUコア6であることを示し、その次の「0000」は、周期タイマ2から1回目のタイマカウンタ信号が出力された際の測定であることを示している。
よって、「H’0000_0001」の場合には、CPUコア6であることを示し、周期タイマ2から2回目のタイマカウンタ信号が出力された際の測定であることを示している。
また、図4において、上記した「H’0000_0000」の右側におけるタイムスタンプ「H’1000_0000」では、「H’」の次の「0001」が、CPUコア7であることを示し、その次の「0000」は、周期タイマ2から1回目のタイマカウンタ信号が出力された際の測定であることを示している。
デバッグ回路10は、図4に示した測定結果の値を比較(コンペア)し、同じ値である場合には、CPUコア6,7が正常であると判定し、比較結果が不一致の場合には、CPUコア6,7のいずれかが異常であると判定する。
図4では、1回目、および2回目のチェックにおいて、CPUコア6,7の各測定項目における検査結果の値が同じであるので、デバッグ回路10は、該CPUコア6,7が正常であると判定する。
しかし、3回目のチェックでは、ALUの演算状態の測定値が、CPUコア6では「H’1111_1111」であるが、CPUコア7では「H’1111_1101」と異なっているので、デバッグ回路10は、CPUコア6,7のいずれかが異常と判定し、状態信号を出力する。
図5は、デバッグ回路10によるコンペア処理の他の例を示す説明図である。
この図5では、CPUコア6,7のうち、いずれか1つのCPUコア(たとえば、CPUコア6)のみの検査を行う場合の例であり、2つのCPUコアのうち、一方のCPUコアに高い信頼性が要求される場合などに有効である。
図5におけるタイムスタンプ、および測定項目については、図4と同様である。ここでは、CPUコア6のみをテスト用プログラムにより検査するので、タイムスタンプの「H’」の次は、CPUコア6を示す「0000」のみとなる。
デバッグ回路10は、図中の測定結果(メモリ内容)と、テスト用プログラムに予めプログラムされている正常データとを比較し、それらが一致した際には、CPUコア6が正常であると判定し、不一致の際には、該CPUコア6が異常であると判定する。
たとえば、図5では、それぞれの項目における正常データが、すべて「H’1111_1111」とならなければならないが、6回目の測定結果において、ALUの演算状態が「H’1111_1101」となっている。よって、デバッグ回路10は、CPUコア6が異常であると判定し、状態信号を出力する。
なお、図5の例では、2つのCPUコアのうち、一方のCPUコア(CPUコア6)のみのチェックを行う場合について記載したが、このようなマルチCPU構成ではなく、たとえば、図6に示すような1つのCPUコア6のみを備えたシングルCPU構成の半導体集積回路装置1に適用することも可能である。
図6に示す半導体集積回路装置1は、図1の半導体集積回路装置1から、CPUコア7、ならびに内蔵メモリ9を削除した構成となっており、その他の接続構成については、図1と同様であるので、説明は省略する。
それにより、本実施の形態1によれば、チェック用プログラムに基づいてCPUコア6,7に異常がないかを定期的にチェックするので、半導体集積回路装置1の信頼性を大幅に向上させることができる。
なお、ここでの例では定期的(周期的)なテストを例に示したが、半導体集積回路装置1のパワーオン(起動)時やパワーオフ(停止)時にテストを行なってもよい。
この場合は、周期的にユーザープログラムを止めることなく、テストをできる。
また、CPUコア6,7をASEメモリ3、トレースメモリ11、およびデバッグ回路10などの通常動作時には使用しないデバッグ機能を用いて検査するので、半導体集積回路装置1における回路構成を大幅に増加させることなく半導体集積回路装置1の高信頼性機能を実現することができる。
さらに、本実施の形態1では、テスト用プログラムによるチェック結果が格納されるトレースメモリ11がSRAMからなる構成としたが、該トレースメモリ11は、フラッシュメモリに例示される不揮発性メモリにより構成するようにしてもよい。
トレースメモリ11を不揮発性メモリとすることにより、チェック結果の履歴情報から、どの時点で測定結果が不一致となったかをバックトレースすることができる。このバックトレース情報を解析することにより、ユーザプログラムの再構築などが可能となる。
図7は、CPUコア6におけるある状態(たとえば、ALUの演算状態など)の測定結果の履歴情報の一例を示した説明図である。
図示するように、5回目に検査したALUの演算状態において処理が不正となっているので、たとえば、この不正となった演算状態の機能を使わないようにユーザプログラムを再構築することにより、半導体集積回路装置1の動作を正常に保つことができる。
(実施の形態2)
本実施の形態の概要は、以下である。
本実施の形態の概要は、以下である。
ユーザプログラムが格納される第1のメモリ(内蔵メモリ8,9)と、ユーザプログラムに基づいて動作するCPU(CPUコア6,7)と、CPUが正常に動作しているか否かを一定の機会ごとに判定するための第1テストのプログラムが格納される第2のメモリ(ASEメモリ3)とを有する。
上述の一定の機会とは異なるときに、第2のメモリは第2テストのプログラムの格納に用いられる。
別の見方をすれば以下のようになる。
ユーザプログラムが格納される第1のメモリ(内蔵メモリ8,9)と、ユーザプログラムに基づいて動作するCPU(CPUコア6,7)と、CPUが正常に動作しているか否かを判定するための第1テストのプログラムが格納される第2のメモリ(ASEメモリ3)とを有する。
第1テストのプログラムが格納される前に、第2のメモリは第2テストのプログラムの格納に用いられ。
図8は、本発明の実施の形態2による半導体集積回路装置の一例を示す説明図である。
前記実施の形態1の半導体集積回路装置1では、トレースメモリ11にテスト用プログラムによるチェック結果が格納される構成としたが、本実施の形態2においては、トレースメモリ11にチェック結果を格納するのではなく、該チェック結果を新たに設けたメモリに格納する構成となっている。
半導体集積回路装置1は、図8に示すように、周期タイマ2、ASEメモリ3、メモリインタフェース4、インタフェース5、CPUコア6,7、内蔵メモリ8,9、デバッグ回路10、トレースメモリ11、システム停止回路12、レジスタ13、およびチェック結果メモリ16から構成されている。
前述したように、図1の半導体集積回路装置と異なる点は、チェック結果メモリ16が新たに設けたところ、ならびにトレースメモリ11がレジスタ13に接続されていないところである。
チェック結果メモリ16は、CPUコア6,7にそれぞれ接続され、テスト用プログラム基づいてチェックしたCPUコア6,7の検査結果をそれぞれ格納する。
また、チェック結果メモリ16は、レジスタ13に格納されたイネーブル信号が入力されるように接続されており、該イネーブル信号がアクティブとなると動作状態となる。チェック結果メモリ16は、トレースメモリ11と同様にSRAMなどの揮発性メモリからなり,メモリ容量は、たとえば、32Kバイト〜42Kバイト程度である。
テスト用プログラムによるCPUコア6,7の検査処理については、前記実施の形態1の図3と同様であり、異なるところは、テスト用プログラムに基づいてチェックした検査結果を(図4のメモリ内容)をトレースメモリ11に格納するのではなく、チェック結果メモリ16に格納する点のみである。また、デバッグ回路10によるコンペア処理についても前記実施の形態1の図4と同様であるので説明は、省略する。
それにより、本実施の形態2においても、半導体集積回路装置1の信頼性を大幅に向上させることができる。また、通常動作時には使用しないデバッグ機能(ここでは、ASEメモリ3)を用いて検査するので、半導体集積回路装置1における回路構成を増加させることなく低コストで、半導体集積回路装置1の高信頼性機能を実現することができる。
(実施の形態3)
本実施の形態の概要は、以下である。
本実施の形態の概要は、以下である。
ユーザプログラムが格納される第1のメモリ(内蔵メモリ8,9)と、ユーザプログラムに基づいて動作するCPU(CPUコア6,7)と、CPUが正常に動作しているか否かを一定の機会ごとに判定するための第1テストのプログラムが格納される第2のメモリ(ASEメモリ3)とを有する。
また、第1テストのプログラムに基づいて、CPUが正常に動作しているか否かを判定するための第1テスト結果のデータを格納する第3のメモリ(トレースメモリ11)を有する。
上述の一定の機会とは異なるときに、第3のメモリは第2テスト結果のデータの格納に用いられる。
別の見方をすれば以下のようになる。
ユーザプログラムが格納される第1のメモリ(内蔵メモリ8,9)と、ユーザプログラムに基づいて動作するCPU(CPUコア6,7)と、CPUが正常に動作しているか否かを判定するための第1テストのプログラムが格納される第2のメモリ(ASEメモリ3)とを有する。
また、第1テストのプログラムに基づいて、CPUが正常に動作しているか否かを判定するための第1テスト結果のデータを格納する第3のメモリ(トレースメモリ11)を有する。
第1テストのプログラムが格納される前に、第3のメモリは第2テスト結果のデータの格納に用いられる。
図9は、本発明の実施の形態3による半導体集積回路装置の一例を示す説明図である。
である。
である。
本実施の形態3において、半導体集積回路装置1は、図9に示すように、周期タイマ2、ASEメモリ3、メモリインタフェース4、インタフェース5、CPUコア6,7、内蔵メモリ8,9、デバッグ回路10、トレースメモリ11、システム停止回路12、およびレジスタ13からなる前記実施の形態の図1の構成に、テストメモリ17が新たに追加された構成となっている。
前記実施の形態1では、ASEメモリ3にテスト用プログラムを格納する構成としたが、本実施の形態3においては、ASEメモリ3ではなく、新たに設けられたテストメモリ17にテスト用プログラムが格納される。
テストメモリ17は、ASEメモリ3と同様に、たとえば、SRAMなどの揮発性メモリからなり、メモリ容量は、たとえば、8Kバイト程度である。また、テストメモリ17は、レジスタ13、およびメインバスBにそれぞれ接続されており、ASEメモリ3は、レジスタ13に接続されていない。
また、テストメモリ17は、レジスタ13に格納されたイネーブル信号がアクティブとなると動作状態となる。
テスト用プログラムによるCPUコア6,7の検査処理については、前記実施の形態1の図3と同様であり、異なるところは、CPUコア6,7がメインバスBを介してテストメモリ17に格納されたテスト用プログラムを読み出して実行するところである。さらに、デバッグ回路10によるコンペア処理についても前記実施の形態1の図4と同様であるので説明は省略する。
それにより、本実施の形態3によっても、通常動作時には使用しないデバッグ機能(ここでは、トレースメモリ11)を用いて半導体集積回路装置1の高信頼性機能を実現することができるので、低コストで半導体集積回路装置1の信頼性を大幅に向上させることができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、半導体集積回路装置における信頼性向上化技術に適している。
1 半導体集積回路装置
2 周期タイマ
3 ASEメモリ
4 メモリインタフェース
5 インタフェース
6 CPUコア
7 CPUコア
8 内蔵メモリ
9 内蔵メモリ
10 デバッグ回路
11 トレースメモリ
12 システム停止回路
13 レジスタ
14 外部メモリ
15 外部IP
16 チェック結果メモリ
17 テストメモリ
B メインバス
T1 外部端子
T2 外部端子
2 周期タイマ
3 ASEメモリ
4 メモリインタフェース
5 インタフェース
6 CPUコア
7 CPUコア
8 内蔵メモリ
9 内蔵メモリ
10 デバッグ回路
11 トレースメモリ
12 システム停止回路
13 レジスタ
14 外部メモリ
15 外部IP
16 チェック結果メモリ
17 テストメモリ
B メインバス
T1 外部端子
T2 外部端子
Claims (14)
- ユーザプログラムが格納される第1のメモリと、
前記ユーザプログラムに基づいて動作するCPUと、
前記CPUが正常に動作しているか否かを一定の機会ごとに判定するための第1テストのプログラムが格納される第2のメモリと、
前記第1テストの結果のデータを格納する第3のメモリとを有し、
前記第3のメモリは、
前記第1テストの一定の機会とは異なるときに行なわれる第2テストの結果のデータの格納に用いられるメモリである、半導体集積回路装置。 - 請求項1記載の半導体集積回路装置において、
前記第2テストは、前記ユーザプログラムのデバッグテストである、半導体集積回路装置。 - 請求項1記載の半導体集積回路装置において、
前記第2のメモリは、
前記第2テストのプログラムの格納に用いられるメモリである、半導体集積回路装置。 - 請求項3記載の半導体集積回路装置において、
前記第2テストは、前記ユーザプログラムのデバッグテストである、半導体集積回路装置。 - 請求項1記載の半導体集積回路装置において、
前記一定の機会とは、前記ユーザプログラムによる動作の定期的な合間のことである、半導体集積回路装置。 - 請求項1記載の半導体集積回路装置において、
前記一定の機会とは、前記半導体集積回路装置のパワーオン時もしくはパワーオフ時である、半導体集積回路装置。 - 請求項1記載の半導体集積回路装置において、
前記第3のメモリは、前記第2のメモリの容量より大きい、半導体集積回路装置。 - ユーザプログラムが格納される第1のメモリと、
前記ユーザプログラムに基づいて動作するCPUと、
前記CPUが正常に動作しているか否かを判定するための第1テストのプログラムが格納される第2のメモリと、
前記第1テストの結果のデータを格納する第3のメモリとを有し、
前記第3のメモリは、
前記第1テストの前に行なわれるユーザプログラムのデバッグテストの結果のデータの格納に用いられるメモリである、半導体集積回路装置。 - 請求項8記載の半導体集積回路装置において、
前記第2のメモリは、
前記デバッグプログラムの格納に用いられるメモリである、半導体集積回路装置。 - 請求項8記載の半導体集積回路装置において、
前記第1テストは、前記ユーザプログラムによる動作の定期的な合間に行なわれる、半導体集積回路装置。 - 請求項8記載の半導体集積回路装置において、
前記第1テストは、前記半導体集積回路装置のパワーオン時もしくはパワーオフ時である、半導体集積回路装置。 - 請求項8記載の半導体集積回路装置において、
前記第3のメモリは、前記第2のメモリの記憶容量より記憶容量が大きい、半導体集積回路装置。 - ユーザプログラムが格納される第1のメモリと、
前記ユーザプログラムに基づいて動作するCPUと、
前記CPUが正常に動作しているか否かを判定するための第1テストのプログラムが格納される第2のメモリとを有し、
前記第2のメモリは、
前記第1テストの前に行なわれるユーザプログラムのデバッグテストのプログラムの格納に用いられるメモリである、半導体集積回路装置。 - 前記第1テストにおいて、前記第1テストの結果のデータを格納し、
前記デバッグテストにおいて、前記デバッグテストの結果のデータを格納する第3メモリを有する、請求項13記載の半導体集積回路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011166719A JP2013030056A (ja) | 2011-07-29 | 2011-07-29 | 半導体集積回路装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011166719A JP2013030056A (ja) | 2011-07-29 | 2011-07-29 | 半導体集積回路装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013030056A true JP2013030056A (ja) | 2013-02-07 |
Family
ID=47787027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011166719A Withdrawn JP2013030056A (ja) | 2011-07-29 | 2011-07-29 | 半導体集積回路装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013030056A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020181243A (ja) * | 2019-04-23 | 2020-11-05 | 株式会社デンソー | 電子制御装置 |
JP2022162004A (ja) * | 2017-09-13 | 2022-10-21 | 株式会社日立システムズ | 比較装置、比較方法、及びプログラム |
-
2011
- 2011-07-29 JP JP2011166719A patent/JP2013030056A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022162004A (ja) * | 2017-09-13 | 2022-10-21 | 株式会社日立システムズ | 比較装置、比較方法、及びプログラム |
JP7391156B2 (ja) | 2017-09-13 | 2023-12-04 | 株式会社日立システムズ | 比較装置、比較方法、及びプログラム |
JP2020181243A (ja) * | 2019-04-23 | 2020-11-05 | 株式会社デンソー | 電子制御装置 |
JP7238574B2 (ja) | 2019-04-23 | 2023-03-14 | 株式会社デンソー | 電子制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799713B2 (en) | Interruptible non-destructive run-time built-in self-test for field testing | |
US9367438B2 (en) | Semiconductor integrated circuit and method for operating same | |
US6421790B1 (en) | Method and circuit for analysis of the operation of a microcontroller using signature analysis of data and instructions | |
US7472051B2 (en) | Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor | |
JP5722150B2 (ja) | マイクロコントローラ | |
JP2005050329A5 (ja) | ||
JP2010113388A (ja) | 処理結果を照合する比較器を有するマルチコアマイコン | |
US10281525B2 (en) | Semiconductor device and diagnostic test method for both single-point and latent faults using first and second scan tests | |
Portela-García et al. | On the use of embedded debug features for permanent and transient fault resilience in microprocessors | |
KR20190035480A (ko) | 마이크로 컨트롤러 및 마이크로 컨트롤러의 제어방법 | |
US11625316B2 (en) | Checksum generation | |
US10261720B2 (en) | Method for optimizing the use of a non-volatile memory in a motor vehicle computer for monitoring a functional member | |
Eychenne et al. | An effective functional safety infrastructure for system-on-chips | |
Mariani et al. | A flexible microcontroller architecture for fail-safe and fail-operational systems | |
Backhausen et al. | Robustness in automotive electronics: An industrial overview of major concerns | |
JP2011163842A (ja) | 半導体装置、及びその診断方法 | |
US7774690B2 (en) | Apparatus and method for detecting data error | |
JP2013030056A (ja) | 半導体集積回路装置 | |
JP2015035121A (ja) | 半導体集積回路装置 | |
US8161324B2 (en) | Analysis result stored on a field replaceable unit | |
US20060179380A1 (en) | On-chip electronic hardware debug support units having execution halting capabilities | |
TWI497279B (zh) | 除錯裝置及除錯方法 | |
TWI802951B (zh) | 儲存有限狀態機之狀態資料的方法、電腦系統、及電腦程式產品 | |
JP2018112977A (ja) | マイクロコンピュータ | |
Schneider et al. | Basic single-microcontroller monitoring concept for safety critical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141007 |