JP2006171952A - 半導体集積回路装置 - Google Patents

半導体集積回路装置 Download PDF

Info

Publication number
JP2006171952A
JP2006171952A JP2004361097A JP2004361097A JP2006171952A JP 2006171952 A JP2006171952 A JP 2006171952A JP 2004361097 A JP2004361097 A JP 2004361097A JP 2004361097 A JP2004361097 A JP 2004361097A JP 2006171952 A JP2006171952 A JP 2006171952A
Authority
JP
Japan
Prior art keywords
error
bus
cpu
processing unit
central processing
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
JP2004361097A
Other languages
English (en)
Inventor
Naomiki Mitsuishi
直幹 三ッ石
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004361097A priority Critical patent/JP2006171952A/ja
Priority to US11/299,971 priority patent/US20060156075A1/en
Publication of JP2006171952A publication Critical patent/JP2006171952A/ja
Pending legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 エラーが検出した際の誤動作による影響が最小限となるようにエラー回復処理を行う。
【解決手段】 通常のプログラム実行状態から、エラーが発生すると、例外処理ベクタなどで示される所定のエラー処理ルーチンへ分岐する。CPU2のエラー処理ルーチンには、オーバフロー周期を超えない間隔で、監視用タイマ8のタイマカウンタに0をライトする命令を実行しながら、制御対象システムに即して、致命的な動作の抑止を行う処理を行う。致命的な動作の抑止とは、たとえば、マイクロコンピュータ1の出力信号を非活性状態にする。エラー処理が完了した時点で監視用タイマ8を停止する処理を行い、通常のリセット処理ルーチンに遷移する。
【選択図】 図1

Description

本発明は、半導体集積回路装置のエラー処理技術に関し、特に、不所望のエラーによる誤動作の影響を最小限にする回復処理に有効な技術に関する。
半導体集積回路装置の1つであるシングルチップマイクロコンピュータは、中央処理装置(CPU)を中心にしてプログラム保持用のROM(Read Only Memory)、データ保持用のRAM(Random Access Memory)、およびデータの入出力を行うための入出力回路などの機能ブロックが1つの半導体基板上に形成されているものが知られている(非特許文献1参照)。
かかるシングルチップマイクロコンピュータには、CPUが、定義されていない命令コードを、命令として実行しようとしたときに、不当命令例外処理を実行するものがある。CPUは、不当命令例外処理ルーチンで、所要の制御を行う。
所要の制御とは、マイクロコンピュータが制御している機器の致命的な動作を抑止したりすることである。たとえば、モータを制御している場合は、モータを停止し、機器が回復不可能な状態になることを回避する。その後、リセットから動作を再開することになる。
一方、暴走監視用タイマ(WDT:Watch Dog Timer)を内蔵し、CPUによる暴走監視用タイマへのアクセスが所定の期間内に行われないと、CPUが暴走したものと判断し、マスク不可能な割り込み(NMI:ノンマスカブル割り込み要求信号)をCPUに要求したり、リセットを発生したりするマイクロコンピュータも存在する。
このマスク不可能な割り込みの場合は、上記不当命令と同様の制御を行う。リセットの場合は、マイクロコンピュータ自体が初期化され、その後、リセットから動作を再開することになる。
また、この種のマイクロコンピュータにおいては、命令デコード結果を判断して、解読異常検出を行い、解読異常を検出した場合、この状態を保持して解読異常の解消を待つとともに、この状態をカウントし、所定の基準値に達したときにリセットを発生させるものがある(特許文献1参照)。つまり、エラーが所定の時間内に解消しない場合に、リセットを発生するものである。
解読異常というエラーが検出した場合、それ以前に未検出のエラーが生じた可能性もあるので、検出したエラーが解消ないし回復するのを待つよりも、エラーに対処する処理を実行することが望ましい。
また、一時的にエラーがあっても、直ちに、CPUのエラー処理が不可能になる訳ではないし、エラーはCPUのみに発生するとは限らないし、1回のみしか発生しないとは限らないし、常に検出可能とも限らない。
上記例では、一時的なエラー(基準の時間に達しないエラー、解消してしまうエラー)が繰返し発生しても、リセットは要求されずに、処理を継続してしまう。
半導体プロセスの微細化に従い、エラーの発生するポテンシャルは増加する。エラーの原因は、電磁波やノイズなどが考えられる。
社団法人 電子通信学会(編)「LSIハンドブック」、(株)オーム社発行、昭和59年11月30日、P540,P541 特開2001−273136号広報
ところが、上記のような半導体集積回路装置におけるエラー検出時の回復処理技術では、次のような問題点があることが本発明者により見い出された。
マイクロコンピュータの動作時は、デバッグの完了したプログラムを実行するから、本来、不当な命令コードを実行することはありえない。すなわち、不当な命令コードの実行は、ノイズなどによる不所望のエラーにより、正規の命令コード(例えば、H’0000)が異なる命令コード(例えば、H’1000)に変化するような場合に生じうる。
さらに、異なる命令コードに変化した結果が、当該CPUにとって、定義されていない命令である場合に、不当命令例外処理が実行される。換言すれば、命令コードが変化した場合も、変化した後の命令コードが、当該CPUの正しい命令コードに相当すれば、不当命令例外処理は実行されない。変化した後の命令コードが、そのまま実行されてしまう。
従って、不当命令例外処理を実行した場合には、それ以前に、命令コードが変化し、不当命令として検出されないまま実行されてしまい、既に、マイクロコンピュータの正しい状態ではなくなっていることが考えられる。同様に、ノイズなどによるエラーはCPUのみに発生するとは限らない。
これらによって、CPUの例外処理の実行が阻害されることも考えられる。阻害とは、たとえば、割り込みが繰返し要求されたり、バスアクセスにウェイトが要求され続けたり、ほかのバスマスタが動作し続けたりすることである。
これらは、通常、直ちに誤動作とは判断できないが、CPUのエラー処理に優先するとは言えない。このような場合には、リセットを発生すれば、マイクロコンピュータ内部が初期化される。
しかしながら、リセットでは、マイクロコンピュータが制御している機器に即した処理が行われない場合も考えられる。たとえば、モータを制御している場合に、正しい手順で停止できないことも考えられる。
本発明の目的は、エラーを検出した際に、中央処理装置による例外処理ルーチン(半導体集積回路装置が制御している機器の致命的な動作を抑止する処理)の実行を待ち、該中央処理装置による例外処理ルーチンの実行が行われないと判断したときに、リセットを発生することにより、エラー発生による誤動作の影響を大幅に低減することのできる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明による半導体集積回路装置は、エラーを検出し、所定の処理ルーチンに分岐する中央処理装置と、該中央処理装置がエラーを検出した際に、エラー検出信号に基づいてカウントを開始する監視用タイマとを備え、該監視用タイマは、中央処理装置が、検出したエラーに対応する処理を実行しないと判断した際にリセットを要求するものである。
また、本願の発明の内容をより具体的に説明すれば以下の通りである。
すなわち、本発明による半導体集積回路装置は、エラーを検出したときに例外処理(不当命令例外処理、アドレスエラー、ノンマスカブル割り込み要求信号)を受付け、例外処理ルーチンを実行可能な中央処理装置と、該例外処理の検出を検知し、その後、所定の状態に遷移して、中央処理装置の処理状態を監視し、該中央処理装置による例外処理ルーチンの実行が行われないことを判断し、その場合に、リセットを要求する監視用タイマと、該監視用タイマのリセット要求に従って、中央処理装置、およびそのほかの半導体集積回路装置の一部または全部の機能をリセットするリセット制御ブロックとを備えたものである。
また、前記監視用タイマが、エラーを検出して、所定の状態に遷移した場合には、中央処理装置のエラー処理を阻害する要因を抑止する。具体的には、そのほかのバスマスタのバス権要求を抑止したり、あるいは、そのほかのバスマスタをリセットしたり、割り込み要求を抑止したりする。
さらに、エラーを検出する論理ブロックを有する。これは、バスコントローラによる、アクセスアドレスの検出や、中央処理装置の未定義の命令の実行の検出である。
監視用タイマは、所定時間内に、中央処理装置からのアクセスがないことを検出して、上記判断を行う。これを、エラーの検出がない場合の(ユーザ資源)、暴走監視タイマと兼用する。または、監視用タイマは、中央処理装置による命令実行状態を監視して、上記判断を行う。中央処理装置の命令実行状態は命令実行終了信号などで判断できる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1)エラーを検出した際に、直ちにリセットを発生することなく、半導体集積回路装置が制御する機器に即した、停止などの処理を実行することができるので、該半導体集積回路装置の信頼性を大幅に向上させることができる。
(2)また、中央処理装置の動作を阻害する要因が存在したりして、該中央処理装置による例外処理の実行が行われない場合にリセットを発生するので、半導体集積回路装置を確実に回復させることができる。
(3)上記(1)、(2)により、半導体集積回路装置を用いて電子システムを構成することにより、該電子システムの信頼性を高めることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明の一実施の形態によるマイクロコンピュータのブロック図、図2は、図1のマイクロコンピュータに設けられたCPUのブロック図、図3は、図2に示したCPU2におけるアドレス空間を示した説明図、図4は、図1のマイクロコンピュータに設けられた監視用タイマの構成を示すブロック図、図5は、図4の監視用タイマにおけるタイマコントロールレジスタ、およびタイマカウンタのレジスタ構成の一例を示す説明図、図6は、図4の監視用タイマにおける状態遷移図、図7は、図4の監視用タイマにおけるタイミングチャート、図8は、図1のマイクロコンピュータにおけるエラー処理例を示す説明図である。
本実施の形態1において、マイクロコンピュータ(半導体集積回路装置)1は、図1に示すように、CPU(中央処理装置)2、DMA(Direct Memory Access)コントローラ3、ROM4、RAM5、バスコントローラ6、割り込みコントローラ7、監視用タイマ8、リセット制御部9、およびI/O(Input/Output)10などから構成されており、これらが1つの半導体基板上に形成されたシングルチップマイクロコンピュータからなる。
I/O10は、たとえば、タイマ、パルス出力回路、シリアルコミュニケーションインタフェース、A/D変換器、入出力ポート、クロック発振器(CPG)などの機能ブロック、またはモジュールから構成され、リセット入力端子、割り込み入力端子などを有する。
動作の主体となるのはCPU2であり、主にROM4から命令を読込んで動作し、作業用のデータ領域としてRAM5をリード/ライトする。CPU2のプログラム用メモリとしては、ROM4のほかキャッシュメモリであってもよい。同様に、CPU2のデータ用メモリとしても、キャッシュメモリを使用することもできる。
CPU2は、実行すべき命令を検出して、当該命令が定義されていない場合、不当命令として検出し、OPERR信号を活性化するとともに、所定の例外処理を発生する。
また、バスコントローラ6は、CPU2のアクセス内容を検出し、不当なアクセスの場合、アドレスエラー検出を行い、ADERR信号を活性化し、これを割り込みコントローラ7に伝達する。不当なアクセスとは、たとえば、メモリが接続されていない領域に対するリード/ライトなどである。
割り込みコントローラ7は、上記アドレスエラーADERR、および、外部から入力されるマスク不可能な割り込みであるノンマスカブル割り込み要求信号NMI、そのほかを入力し、CPU2に割り込み要求信号INTFを与える。上記アドレスエラーもマスク不可能な割り込みとして扱われる。割り込み要求が与えられると、CPU2は、命令の切れ目で割り込み例外処理を行う。
CPU2は、上記の不当命令例外処理、割り込み例外処理を行うことによって、実行中の処理を中断し、所定ベクタで示されるアドレスから、例外処理ルーチンの実行を開始する。監視用タイマ8からのエラーステータス信号ERRSTによって、割り込み受付けは抑止する。多重に例外処理を繰返し、エラー処理の実行が妨げられることを抑止する。
監視用タイマ8は、リセット要求信号RSTRQを活性化し、リセットを要求することができる。このリセットによって、マイクロコンピュータ1内部のリセットを行う。また、マイクロコンピュータ1外部にリセット信号を出力することができる。
DMAコントローラ3は、CPU2とバスBとを共有し、CPU2に代ってデータ転送を行う。I/O10、および入出力インタフェースは、DMAコントローラ3に起動要求を要求する。
DMAコントローラ3が起動要求を受付けて、データ転送を行うと、転送アクノレッジ信号などによって、起動要因をクリアする。起動要因の判定やクリアは割り込みコントローラ7が行ってもよい。
バスBについては以下の通りである。
マイクロコンピュータ1は、Iバス、Pバス、外部バスをそれぞれ有し、これらのバスによって、前記機能ブロックは相互に接続される。これらIバス、Pバス、および外部バスは、アドレスバス・データバスの他、バス権要求信号、バスアクノレッジ信号、バスコマンド(またはリード信号、ライト信号、バスサイズ信号)、レディ信号(またはウェイト信号)を含む。
Iバスは、CPU2とDMAコントローラ3、あるいはそのほかの内部バスマスタに直接接続されるバスである。メモリの高速アクセスのため、メモリもIバスに接続される。メモリのアクセスは1ステートで行われる。
Pバスには、I/O10に含まれる内部I/Oレジスタが接続される。IバスとPバスを分離することによって、CPU2のプログラムリードなどで、主として使用するIバスの負荷を軽減し、高速化を図るとともに、未使用時のPバスの状態を保持するなどして、低消費電力化が図れる。
CPU2が、Pバスに接続される内部I/Oレジスタをアクセスする場合は、Iバス、ならびにバスコントローラ6を経由して行う。内部I/Oレジスタのアクセスは2ステートで行われる。これらのバスは、バスコントローラ6によってそれぞれ制御される。
内部バスと外部バスとは、I/O10に設けられている外部バスバッファ回路(BUF)10aによってインタフェースされる。外部バスバッファ回路10aは、入出力ポートに含まれる。
内部バスと周辺バスとは、バスコントローラ6によってインタフェースされる。内部バス(Iバス)はCPU2、DMAコントローラ3、ROM4、RAM5、外部バスバッファ回路10a、およびバスコントローラ6にそれぞれ接続されている。
CPU2とDMAコントローラ3が、内部バスマスタとして、内部バス(Iバス)を使用することができ、それぞれのバス権要求信号に従って、バスアービタ6aが調停する。このためには、CPU2、およびそのほかのバスマスタがバス権要求信号を出力し、これをバスコントローラ6の調停回路が判定して、適宜1つの内部バスマスタにバス権を与える。すなわち、CPU2、およびDMAコントローラ3は、排他的にIバスを使用する。
内部バスマスタは、バス権を与えられたことを確認して、IAB(アドレス)やバスコマンドを出力して、バスアクセスを行う。バスアービタ6aは、前記監視用タイマ8のエラーステータス信号ERRSTによって、CPU2以外のバス権要求を受付けないようにする。
バスコントローラ6は、IABの内容を確認して、メモリへのアクセスであれば、Iバスを使用した制御を行う。また、内部I/Oレジスタへのアクセスであれば周辺バスコントローラを起動し、バスレディ信号を非活性化し、内部バスマスタをウェイトさせる。
周辺バス(Pバス)は、バスコントローラ6、DMAコントローラ3、監視用タイマ8、I/O10にそれぞれ接続される。
外部バスは、外部バスバッファ回路10aに接続され、および、マイクロコンピュータ1外部に接続されるシンクロナスDRAMなどに接続することができる。シンクロナスDRAMを接続する場合のアドレスマルチプレクスなどの制御も行う。
外部バスを使用できる、外部バスマスタは、内部バスマスタ、リフレッシュタイマ6b、外部バス権要求があり、バスアービタ6aが調停する。なお、リフレッシュタイマ6bは、一定時間毎にリフレッシュ要求を発生する。
たとえば、リフレッシュタイマ6bがバス権を獲得すると、シンクロナスDRAMのリフレッシュとして、CAS(カラムアドレスストローブ)ビフォRAS(ロウアドレスストローブ)リフレッシュを行う。
また、外部バス権要求が外部バス権を獲得すると、外部バス(アドレスバス、データバス、制御信号)をハイインピーダンス状態にし、外部のバスマスタによる外部バスの利用を可能にするとともに、外部バス権アクノレッジ信号を活性状態にし、これを通知する。
DMAコントローラ3は、内部バスにバス権要求を出力できる。バス権要求を行った場合、内部バス権アクノレッジ信号を入力して、内部バス権の獲得を確認すると、内部バスコマンド、アドレスを発行して、内部バスアクセスを行う。内部バスを介して、周辺バス、外部バスを利用できる。
CPU2は、内部バスに対して、バス権を要求でき、内部バスを介して、周辺バス・外部バスを利用できる。
ROM4、およびRAM5は、内部バススレーブとして、また、I/O10、入出力インタフェースの各機能ブロックは周辺バススレーブとして、CPU2、またはDMAコントローラ3によってリード/ライトされる。DMAコントローラ3は、その設定などを行うために、CPU2によって周辺バススレーブとしてリード/ライトされる。
そのほかのマイクロコンピュータ1の機能の概略は以下の通りである。
割り込みコントローラ7は、I/O、入出力インタフェースの出力する割り込み信号を入力し、CPU2に割り込み要求信号を出力する。入出力ポートは、外部バス信号(アドレスバス出力、データバス入出力、バス制御信号入出力)、I/O10の入出力信号と兼用とされている。
そのほか、電源端子Vcc、Vss、アナログ電源端子AVcc、AVss、スタンバイ入力STBY、クロック入力EXTAL、XTAL、動作モード入力MD0、MD1、MD2などの入力端子がある。
図2は、CPU2の構成を示すブロック図である。
CPU2は、図示するように、制御部CONTと実行部EXECから構成される。
実行部EXECは、汎用レジスタR0〜R31、プログラムカウンタPC、コンディションコードレジスタCCR、算術論理演算器ALU、ならびにバッファブロックBBを含む。
これらは、リードバスA/B、ライトバスWによって相互に接続されている。バッファブロックはアドレスバッファやデータバッファである。
制御部CONTは、データバスの内容を入力する命令レジスタIR、および未定義命令検出部MKを有する。命令レジスタIRの内容が制御部CONT内部で解読され、実行部EXECへの制御信号、バスの制御信号などを生成する。1つの命令終了時に、命令実行終了信号INSTを活性化する。
また、未定義命令検出部MKは、命令レジスタIRの内容をデコードし、定義されたものであるかを検出する。未定義の命令であると、不当命令検出信号OPERRを活性化する。これは、監視用タイマ8に出力されるとともに、命令レジスタIRの内容を、不当命令例外処理に相当する命令コードに変更し、不当命令例外処理の実行を開始する。
図3は、図2に示したCPU2におけるアドレス空間を示した説明図である。
CPU2のアドレス空間は、たとえば、4Gバイトあり、8つのエリアに分割されている。これらのエリアは、バスコントローラ6(図1)の設定によって、独立して、バス幅アクセスステート数を設定可能にされ、外部バスコントローラによって制御される。
一方、マイクロコンピュータ1におけるROM4、RAM5、内部I/Oレジスタは、バスコントローラ6の設定にかかわらず、固有のバス幅、アクセスステート数で動作する。
前記のとおり、ROM4、RAM5は、内部バス(Iバス)で接続され、1ステートでリード/ライトを行う。内部I/Oレジスタは、周辺バス(Pバス)に接続され、2ステートでリード/ライトを行う。
内部I/Oレジスタ領域からプログラムをリードしたり、シングルチップモードで、ROM4、またはRAM5以外からプログラムをリードしたりしたときに、バスコントローラ6は、アドレスエラーとして、アドレスエラー信号ADERRを活性化し、割り込みコントローラ7(図1)に割り込みを要求する。アドレスエラーの検出自体は、公知であり、ここでは詳細な説明を省略する。
図4は、監視用タイマ8の構成を示すブロック図であり、図5は、監視用タイマ8におけるタイマコントロールレジスタ8b、およびタイマカウンタ8cのレジスタ構成例を示す説明図である。
監視用タイマ8は、制御回路8a、タイマコントロールレジスタ(TSCR)8b、タイマカウンタ(TCNT)8c、クロック選択部8d、およびリードライト制御部8eなどを有している。
タイマコントロールレジスタ8bとタイマカウンタ8cは、Pバスを介してリード/ライトが可能であるが、容易に書き換えられないように、事前に所定のキーワードをライトした後に、ライトすべきデータをライトするように、リードライト制御部8eによって制御される。これは、本発明に直接の関係はないので、詳細な説明は省略する。
CPU2から不当命令検出信号OPERR、割り込みコントローラ7からエラー割り込み検出信号ERRINをそれぞれ入力する。
タイマカウンタ8cは、所定の時間をカウントする。後述のエラー状態で、CPU2の命令実行終了信号INSTによって、タイマカウンタ8cはクリアされる。このタイマカウンタ8cは、特に制限はされないものの、8ビットであり、該タイマカウンタ8cのカウントアップクロックは、タイマコントロールレジスタ8bのCKSビットで選択された、システムクロックφを分周した信号であり、クロック選択部8dから供給される。
タイマコントロールレジスタ8bの、ビットWTIT,TMEを1にそれぞれセットすることによって、監視タイマとして動作を行い、タイマカウンタ8cがカウントアップを行う。
タイマカウンタ8cがオーバフローすると、リセットを要求する。リセットを要求した場合、ビットWOVFが1にセットされる。CPU2は、リセット処理ルーチンでこのフラグを参照することで、リセットの要因を判断できる。
CPU2は、正常に動作している限り、タイマカウンタ8cがオーバフローする前にタイマカウンタ8cに0などをライトし、オーバフローを抑止する。CPU2が正常な動作を行えなくなると、監視用タイマ8がオーバフローして、リセットを行う。リセットは、マイクロコンピュータ1内部をリセットするほか、外部にも出力可能である。
監視用タイマ8は、特に制限はされないものの、リセット後は停止状態である。CPU2が監視用タイマ8のタイマコントロールレジスタ8bへの設定を行って、起動する。前記不当命令、アドレスエラー、ノンマスカブル割り込み要求信号が要求されていると、強制的に動作を開始される。
次に、本実施の形態における監視用タイマ8の作用について説明する。
図6は、監視用タイマ8の状態遷移を示した図である。この図6における状態遷移は、監視用タイマ8の制御ブロック内の論理によって実現される。
まず、リセット後は、停止状態STOPである(状態J101)。ビットWTIT,TME(図4)を1にそれぞれセットすると、ウォッチドッグタイマモードWT(図4)に遷移する(状態J102)。
この状態で、タイマカウンタ8cがオーバフローすると(状態J103)、リセット要求状態RESに遷移し(状態J104)、ビットCKSを固定値にし、所定のカウントを行いつつ、リセット要求を出力する。この状態J104においては、外部へのリセット要求を、内部へのリセット要求より短くするためにリセット要求状態を複数の状態に分かれるようにしてもよい。
その後、リセット終了状態END(状態J105)を経て、監視用タイマ8それ自体を初期化して、STOP状態に戻る(状態J101)。インターバルタイマモード(図4)として動作する場合には、インターバルタイマモードITに遷移する(状態J106)。
前述した不当命令、アドレスエラー、ノンマスカブル割り込み要求信号が要求されていると、状態J101、状態J102、または状態J106のいずれの状態からも、エラー検出状態ERRに遷移する(状態J107)。
この状態では、エラーステータス信号ERRSTを、割り込みコントローラ7、バスコントローラ6のバスアービタ6aに与え、CPU2のエラー処理を優先させる。ビットCKSを固定値にする。この状態でタイマカウンタ8cがオーバフローすると、前記同様に、リセット要求を出力する。
なお、CPU2の命令実行終了信号INSTによるタイマカウンタ8cのクリアを行う場合には、ビットCKSによるカウントアップクロックの指定を比較的小さくするとよい。
CPU2の命令実行終了信号INSTによるタイマカウンタ8cのクリアを行わない構成とし、CPU2のプログラム実行によってタイマカウンタ8cをクリアするようにしてもよく、この場合は、ビットCKSによるカウントアップクロックの指定を比較的大きくするとよい。
エラー検出後に、CPU2が正しくエラー処理を実行できていない場合には、リセットを発生し、初期化することができる。CPU2が正しくエラー処理を実行できない要因としては、たとえば、DMAコントローラ3やリフレッシュタイマ6b、あるいは外部バス権要求が継続して要求されることによって、CPU2がバス権を獲得できないことがある。
エラーによって、内部I/Oレジスタの組合せなどが、正規の状態でありうる組合せ以外になっていると、ハードウェアが正しく動作せず、割り込み要求などが活性状態に固定されてしまいようなことも考えられる。
次に、監視用タイマ8における動作について図7のタイミングチャートを用いて説明する。
図7においては、上方から下方にかけて、CPU2から出力されるステート、ビットCKS(図4)、タイマカウンタ8cのカウント値、監視用タイマ8から出力されるリセット要求RSTRQ、ならびに監視用タイマ8から出力されるエラーステータス信号ERRSTの信号タイミングをそれぞれ示している。
まず、監視用タイマ8が、STOP状態、または、ウォッチドッグタイマモードWT、インターバルタイマモードITで、エラー検出によって、たとえば、不当命令検出信号OPERR=1となると、監視用タイマ8は、ERR状態に遷移し、エラーステータス信号ERRSTを活性化する。
ビットCKSを、特に制限はされないものの、001とし、φ/64(図4)でカウントアップを開始する。タイマカウンタ8cが8ビットのとき、2048(256×8)ステート以内に、CPU2が該タイマカウンタ8cへのライトを行わないと、RES状態に遷移し、リセット要求RSTRQを活性化し、マイクロコンピュータ1をリセットする。この時間は、ビットCKSを000とし、タイマカウンタ8cのオーバフローを待つことで計測する。その後、STOP状態に遷移する。
CPU2のエラー処理ルーチンには、上記2048ステートを超えない間隔で、タイマカウンタ8cに0をライトする命令をいれる。エラー処理が完了した時点で、監視用タイマ8を停止する処理をいれる。
次に、前述したエラー処理の動作例について図8を用いて説明する。
まず、通常のプログラム実行状態(図8の上方)から、エラーが発生(図8の下方、エラー処理ルーチン)すると、例外処理ベクタなどで示される所定のエラー処理ルーチンへCPU2の処理が分岐する。
CPU2のエラー処理ルーチンには、前記の通り、オーバフロー周期を超えない間隔で、タイマカウンタ8cに0をライトする命令を実行しながら、制御対象システムに即して、致命的な動作の抑止を行う処理を行う。致命的な動作の抑止とは、たとえば、マイクロコンピュータ1の出力信号を非活性状態にする。
なお、監視用タイマ8から出力する信号によって、DMAコントローラ3のバス権要求や、割り込み要求を抑止しているので、エラー処理ルーチンで、これらの処理を行うことを不要にできる。
エラー処理が完了した時点で、ビットTMEを0にクリアして、監視用タイマ8を停止する処理を行い、通常のリセット処理ルーチンに遷移する。あるいは、監視用タイマ8を停止させる代わりに、タイマカウンタ8cに最大値をライトするなどして、意図的にオーバフローを発生させ、マイクロコンピュータ1をリセットしてもよい。リセットをすることで、マイクロコンピュータ1内部の不所望の状態を解除することができる。
それにより、本実施の形態によれば、以下の効果を得ることができる。
(1)エラーを検出した時点で、監視用タイマ8を起動することにより、CPU2がエラー処理を正しく行えない場合であっても、リセットによる初期化を行い、システムの回復を行うことができる。この場合の、監視用タイマ8のオーバフロー周期を短くして、監視精度を向上できる。
(2)上記起動後に、CPU2の処理によって、監視用タイマ8を初期状態などに戻すことを可能にし、CPU2の処理を継続させることができる。
(3)CPU2の内部信号を監視することによって、CPU2がエラー処理を正しく行えないことをいち早く知り、リセットによる初期化を行い、システムの回復を行うことができる。
(4)ユーザ資源としての監視タイマと共通化し、資源の有効活用を図ることができる。
(5)監視用タイマ8が、バス権や割り込みなど、CPU2のエラー処理を阻害する要因を排除することによって、エラー処理ルーチンで、DMAコントローラ3を停止したりする処理を不要にすることができる。
(6)換言すると、エラーを発生した場合、一定時間後にリセットを発生することになるので、その間に、CPU2によって緊急の処理を行うことができる。エラー処理を2段階にし、より確実に行うことができる。意図的に、エラーにより、誤動作を生じさせ、内部情報を得ることを防止することできる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
たとえば、監視用タイマのモードやレジスタ構成も任意に変更可能である。ユーザ資源の監視用タイマと兼用にするように説明したが、専用の機能を持ってもよい。あるいは、リフレッシュタイマなどの機能と兼用してもよい。
CPUから供給される信号も命令実行終了信号によらず、CPUの命令実行状態を判断できるものであれば何でもよい。バスアクセスの状態でもよい。エラー発生時のオーバフロー周期は、一般の選択と共通にするほか、専用のものにしてもよい。
外部に対するリセットは、なくてもよいし、選択可能にしてもよい。いずれにせよ、一般の選択よりは短いものが好適である。エラー状態で、さらにエラーが発生した場合は、直ちにリセット要求を発生するようにしてもよい。監視用タイマの状態遷移なども種々変更可能である。
エラーの検出内容も、適宜変更することができる。未定義の命令の検出も、実行開始前や実行開始後など変更可能であるし、デコードの仕方も任意にできる。データ転送装置としては、DMAコントローラに限定されず、バス権を要求するコプロセッサなどであってもよい。
マイクロコンピュータの構成やアドレス空間についても限定されない。そのほかや機能ブロックなども種々変更できる。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置、たとえば、デジタルシグナルプロセッサ(DSP)を中心にした半導体集積回路装置にも適用可能であり、本発明は少なくとも、プログラムを実行するデータ処理装置を内蔵した半導体集積回路装置に適用することができる。
本発明の半導体集積回路装置は、エラーなどによる誤動作の影響を最小限に抑える技術に適している。
本発明の一実施の形態によるマイクロコンピュータのブロック図である。 図1のマイクロコンピュータに設けられたCPUのブロック図である。 図2に示したCPUにおけるアドレス空間を示した説明図である。 図1のマイクロコンピュータに設けられた監視用タイマの構成を示すブロック図である。 図4の監視用タイマにおけるタイマコントロールレジスタ、およびタイマカウンタのレジスタ構成の一例を示す説明図である。 図4の監視用タイマにおける状態遷移図である。 図4の監視用タイマにおけるタイミングチャートである。 図1のマイクロコンピュータにおけるエラー処理例を示す説明図である。
符号の説明
1 マイクロコンピュータ(半導体集積回路装置)
2 CPU(中央処理装置)
3 DMAコントローラ
4 ROM
5 RAM
6 バスコントローラ
6a バスアービタ
6b リフレッシュタイマ
7 割り込みコントローラ
8 監視用タイマ
8a 制御回路
8b タイマコントロールレジスタ
8c タイマカウンタ
8d クロック選択部
8e リードライト制御部
9 リセット制御部
10 I/O
10a 外部バスバッファ回路
EXEC 実行部
CONT 制御部
R0〜R31 汎用レジスタ
PC プログラムカウンタ
CCR コンディションコードレジスタ
ALU 算術論理演算器
BB バッファブロック
A/B リードバス
W ライトバス
IR 命令レジスタ
MK 未定義命令検出部
B バス
ERRST エラーステータス信号
INST 命令実行終了信号
OPERR 不当命令検出信号
RSTRQ リセット要求
INTF 割り込み要求信号
NMI ノンマスカブル割り込み要求信号

Claims (6)

  1. エラーを検出し、所定の処理ルーチンに分岐する中央処理装置と、
    前記中央処理装置がエラーを検出した際に、エラー検出信号に基づいてカウントを開始する監視用タイマとを備え、
    前記監視用タイマは、
    前記中央処理装置が、検出したエラーに対応する処理を実行しないと判断した際にリセットを要求することを特徴とする半導体集積回路装置。
  2. 請求項1記載の半導体集積回路装置において、
    前記中央処理装置が検出するエラーは、不当命令、またはアドレスエラーの少なくとも1つであり、
    前記監視用タイマに入力されるエラー検出信号は、前記中央処理装置、バスコントローラ、または割り込みコントローラのいずれかが出力することを特徴とする半導体集積回路装置。
  3. 請求項1または2記載の半導体集積回路装置において、
    前記監視用タイマは、前記中央処理装置が命令終了時に出力する命令実行終了信号を受けてカウントをリセットすることを特徴とする半導体集積回路装置。
  4. 請求項1〜3のいずれか1項に記載の半導体集積回路装置において、
    前記中央処理装置は、バスアクセスによって前記監視用タイマのカウントを制御することを特徴とする半導体集積回路装置。
  5. 請求項1〜4のいずれか1項に記載の半導体集積回路装置において、
    前記監視用タイマは、
    前記中央処理装置がエラーを検出した際に、エラーステータス信号を前記バスコントローラに出力し、
    前記バスコントローラは、
    前記監視用タイマのエラーステータス信号を受けて、前記中央処理装置以外のバス権要求を受付けないことを特徴とする半導体集積回路装置。
  6. 請求項1〜5のいずれか1項に記載の半導体集積回路装置において、
    前記割り込みコントローラは、
    前記中央処理装置がエラーを検出した際に、前記中央処理装置に対して割り込み要求信号を出力しないことを特徴とする半導体集積回路装置。
JP2004361097A 2004-12-14 2004-12-14 半導体集積回路装置 Pending JP2006171952A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004361097A JP2006171952A (ja) 2004-12-14 2004-12-14 半導体集積回路装置
US11/299,971 US20060156075A1 (en) 2004-12-14 2005-12-13 Semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004361097A JP2006171952A (ja) 2004-12-14 2004-12-14 半導体集積回路装置

Publications (1)

Publication Number Publication Date
JP2006171952A true JP2006171952A (ja) 2006-06-29

Family

ID=36654687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004361097A Pending JP2006171952A (ja) 2004-12-14 2004-12-14 半導体集積回路装置

Country Status (2)

Country Link
US (1) US20060156075A1 (ja)
JP (1) JP2006171952A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146175A (ja) * 2008-12-17 2010-07-01 Hitachi Ltd 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
JP2016038599A (ja) * 2014-08-05 2016-03-22 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びマイクロコンピュータシステム
JP2020124331A (ja) * 2019-02-04 2020-08-20 株式会社藤商事 遊技機
US10812111B2 (en) 2018-03-19 2020-10-20 Kabushiki Kaisha Toshiba Semiconductor apparatus

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547546B2 (en) 2012-03-12 2017-01-17 Nxp Usa, Inc. Interrupt supervision system, processing system and method for interrupt supervision
JP6003449B2 (ja) * 2012-09-20 2016-10-05 株式会社ソシオネクスト 半導体装置及びメモリの制御方法
US10216559B2 (en) * 2016-11-14 2019-02-26 Allegro Microsystems, Llc Diagnostic fault communication
CN107273229B (zh) * 2017-05-24 2020-06-26 百富计算机技术(深圳)有限公司 处理计时器计时异常的方法、装置及计算机可读存储介质
US10725122B2 (en) 2018-07-20 2020-07-28 Allegro Microsystems, Llc Ratiometric sensor output topology and methods
CN109062721A (zh) * 2018-07-20 2018-12-21 北斗星通(重庆)汽车电子有限公司 一种看门狗检测车载多媒体死机复位的方法
US11942831B2 (en) 2020-01-15 2024-03-26 Allegro Microsystems, Llc Three-phase BLDC motor driver/controller having diagnostic signal processing
US11029370B1 (en) 2020-05-22 2021-06-08 Allegro Microsystems, Llc Sensor output control methods and apparatus
US11520648B2 (en) * 2020-09-25 2022-12-06 Microsoft Technology Licensing, Llc Firmware emulated watchdog timer controlled using native CPU operations
US11885645B2 (en) 2021-06-17 2024-01-30 Allegro Microsystems, Llc Supply voltage configurable sensor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4635258A (en) * 1984-10-22 1987-01-06 Westinghouse Electric Corp. System for detecting a program execution fault
US5797037A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Interrupt request control logic reducing the number of interrupts required for I/O data transfer
US6453430B1 (en) * 1999-05-06 2002-09-17 Cisco Technology, Inc. Apparatus and methods for controlling restart conditions of a faulted process
JP2004062309A (ja) * 2002-07-25 2004-02-26 Fujitsu Ltd 不当命令処理方法及びプロセッサ
JP2004348627A (ja) * 2003-05-26 2004-12-09 Toshiba Lsi System Support Kk マイクロコンピュータシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146175A (ja) * 2008-12-17 2010-07-01 Hitachi Ltd 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
JP2016038599A (ja) * 2014-08-05 2016-03-22 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びマイクロコンピュータシステム
US10108469B2 (en) 2014-08-05 2018-10-23 Renesas Electronics Corporation Microcomputer and microcomputer system
US10812111B2 (en) 2018-03-19 2020-10-20 Kabushiki Kaisha Toshiba Semiconductor apparatus
JP2020124331A (ja) * 2019-02-04 2020-08-20 株式会社藤商事 遊技機
JP6998901B2 (ja) 2019-02-04 2022-01-18 株式会社藤商事 遊技機

Also Published As

Publication number Publication date
US20060156075A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
US20060156075A1 (en) Semiconductor integrated circuit
US10983924B2 (en) Information processing device and processor
EP0702297B1 (en) A data processor with breakpoint circuit
JP2010277303A (ja) 半導体装置及び異常検出方法
JP2007058716A (ja) データ転送バスシステム
JP4393954B2 (ja) マイクロコンピュータ
JP4893427B2 (ja) マイクロコンピュータシステム
JP3866749B2 (ja) マイクロプロセッサ
JP2004030161A (ja) コンピュータシステムにおける割り込み制御方法、コンピュータシステム、半導体集積回路、及びプログラム
JP2007310735A (ja) ダイレクトメモリアクセスコントローラ
JP4176920B2 (ja) データ処理装置
JP5464676B2 (ja) 半導体装置
JP5630886B2 (ja) 半導体装置
JP2010049718A (ja) 半導体装置
JP2009116445A (ja) 複数本のシーケンスプログラムを並列して実行可能なプログラマブルコントローラ
JP2008097134A (ja) アドレスオフセット制御回路
JP2010092278A (ja) マイクロコンピュータ
JPH01319834A (ja) マイクロコンピュータ
JPH10154124A (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPH05127921A (ja) 半導体集積回路
JP2004185060A (ja) マイクロコンピュータ
JPH11143732A (ja) マイクロコンピュータ及びエミュレータ
JP3729250B2 (ja) 情報処理装置及び電子機器
JP2004152321A (ja) データ処理装置
JP2003196253A (ja) シングルチップマイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602