(57)【要約】【課題】不要なＷＤＴエラー割込の発生を低減する。【解決手段】実施形態によれば、半導体集積回路は、カウンタと、レジスタと、比較回路と、を備える。前記カウンタは、外部からの制御によりカウンタ値がクリアされた後、前記カウンタ値をカウントアップする。前記レジスタは、カウンタ最大値と、前記カウンタ最大値より小さい警告フラグ設定最大値と、を記憶する。前記比較回路は、前記カウンタの前記カウンタ値と前記レジスタに記憶された値とを比較し、前記カウンタ値が前記カウンタ最大値以上の場合、エラー割込信号を出力する。前記比較回路は、クリアされた時の前記カウンタ値が前記警告フラグ設定最大値以上の場合、警告フラグを前記レジスタに設定する。【選択図】図１
2016053882.tif 000002
【特許請求の範囲】
【請求項１】
外部からの制御によりカウンタ値をカウントアップするカウンタと、
カウンタ最大値と、前記カウンタ最大値より小さい警告フラグ設定最大値と、を記憶するレジスタと、
前記カウンタの前記カウンタ値と前記レジスタに記憶された値とを比較し、前記カウンタ値が前記カウンタ最大値以上の場合、エラー割込信号を出力し、クリアされた時の前記カウンタ値が前記警告フラグ設定最大値以上の場合、警告フラグを前記レジスタに設定する、比較回路と、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記レジスタは、前記警告フラグ設定最大値より小さい警告フラグ設定最小値と、前記警告フラグ設定最小値より小さいカウンタ最小値と、を記憶し、
前記比較回路は、クリアされた時の前記カウンタ値が前記カウンタ最小値以下の場合、前記エラー割込信号を出力し、クリアされた時の前記カウンタ値が前記カウンタ最小値より大きく、前記警告フラグ設定最小値以下の場合、前記警告フラグを前記レジスタに設定する、ことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記比較回路は、クリアされた時の前記カウンタ値が前記警告フラグ設定最大値以上の場合、前記警告フラグとして最大警告フラグを設定し、クリアされた時の前記カウンタ値が前記カウンタ最小値より大きく、前記警告フラグ設定最小値以下の場合、前記警告フラグとして最小警告フラグを設定する、ことを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記比較回路は、クリアされた時の前記カウンタ値が、前記警告フラグ設定最小値より大きく、前記警告フラグ設定最大値より小さい場合、前記警告フラグをクリアする、ことを特徴とする請求項２または請求項３に記載の半導体集積回路。
【請求項５】
前記比較回路は、外部から無効化信号が設定された時、比較結果によらず前記警告フラグを設定しない、ことを特徴とする請求項１から請求項４の何れかに記載の半導体集積回路。
【請求項６】
前記比較回路は、前記警告フラグを前記レジスタに設定した時に、警告フラグ割込信号を出力する、ことを特徴とする請求項１から請求項５の何れかに記載の半導体集積回路。
【請求項７】
演算を行うと共に、前記カウンタの前記カウンタ値を定期的にクリアする演算回路を更に備えることを特徴とする請求項１から請求項６の何れかに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路に関する。
【背景技術】
【０００２】
ウォッチドッグタイマ（以下、ＷＤＴと称す）は、ＣＰＵ等から定期的にクリア処理が行われている場合に、ＣＰＵ等の処理が正常に継続していることを診断する回路である。ＷＤＴは、所定の期間内にクリア処理が行われない場合には、ＷＤＴエラー割込を発生する。ＷＤＴエラー割込が発生した場合、例えばシステムダウンが実行される。
【０００３】
所定の期間内にクリア処理が行われない場合としては、例えば、ＣＰＵが暴走（誤動作）してクリア処理を行わない場合と、ＣＰＵは正常動作しているが、割込処理の多発等によりアプリケーション処理が延長してクリア処理が遅延している場合と、が考えられる。
【０００４】
ＣＰＵは正常動作していてクリア処理が遅延している場合には、ＷＤＴエラー割込を発生しないことが好ましい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００２−５１２４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、不要なＷＤＴエラー割込の発生を低減できる半導体集積回路を提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、半導体集積回路は、カウンタと、レジスタと、比較回路と、を備える。前記カウンタは、外部からの制御によりカウンタ値がクリアされた後、前記カウンタ値をカウントアップする。前記レジスタは、カウンタ最大値と、前記カウンタ最大値より小さい警告フラグ設定最大値と、を記憶する。前記比較回路は、前記カウンタの前記カウンタ値と前記レジスタに記憶された値とを比較し、前記カウンタ値が前記カウンタ最大値以上の場合、エラー割込信号を出力する。前記比較回路は、クリアされた時の前記カウンタ値が前記警告フラグ設定最大値以上の場合、警告フラグを前記レジスタに設定する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係るＭＣＵの概略構成を示すブロック図である。
【図２】第１の実施形態に係るレジスタを説明する図である。
【図３】図１のＭＣＵのクリア処理のタイミングを示すタイミング図である。
【図４】第２の実施形態に係るレジスタを説明する図である。
【図５】第３の実施形態に係るレジスタを説明する図である。
【図６】第４の実施形態に係るレジスタを説明する図である。
【図７】第５の実施形態に係るレジスタを説明する図である。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して本発明の実施形態について説明する。これらの実施形態は、本発明を限定するものではない。
【００１０】
（第１の実施形態）
図１は、第１の実施形態に係るＭＣＵ（マイクロコンピュータユニット）１の概略構成を示すブロック図である。ＭＣＵ１は、半導体集積回路として構成されている。図１のＭＣＵ１は、ＷＤＴ（診断回路）１０と、ＣＰＵ（演算回路）２０と、を備える。ＷＤＴ１０は、カウンタ１１と、レジスタ１２と、比較回路１３と、を有する。
【００１１】
カウンタ１１は、カウンタ値を初期値からカウントアップし、外部からの制御によりカウンタ値をクリア可能である。カウンタ１１は、カウンタ値がクリアされた後、再度、カウンタ値を初期値からカウントアップする。
【００１２】
レジスタ１２は、ＷＤＴ１０の動作を制御するためのものであり、カウンタ最大値と、カウンタ最大値より小さい警告フラグ設定最大値と、警告フラグ設定最大値より小さい警告フラグ設定最小値と、警告フラグ設定最小値より小さいカウンタ最小値と、を記憶する。
【００１３】
図２は、第１の実施形態に係るレジスタ１２を説明する図である。図２に示すように、レジスタ１２は、複数のレジスタWDTMAX, WDTMIN, WDTCTL, WDTCMD, WDTALX, WDTALN, WDTFLGを有する。
【００１４】
レジスタWDTMAXは、カウンタ最大値を記憶する。レジスタWDTMINは、カウンタ最小値を記憶する。レジスタWDTCTLは、WDT停止を設定する。レジスタWDTCMDは、所定のコードが書き込まれる。ＷＤＴ１０は、書き込まれたコードに応じてカウンタ値のクリア処理、又は、WDT停止及び各レジスタのクリアを行う。レジスタWDTALXは、警告フラグ設定最大値を記憶する。レジスタWDTALNは、警告フラグ設定最小値を記憶する。レジスタWDTFLGは、警告フラグを設定する。
【００１５】
比較回路１３は、カウンタ１１のカウンタ値とレジスタ１２に記憶された値とを比較する。具体的には、比較回路１３は、カウンタ値がカウンタ最大値以上の場合、エラー割込信号ＳＥをＣＰＵ２０に出力する。
【００１６】
比較回路１３は、クリアされた時のカウンタ値が警告フラグ設定最大値以上、カウンタ最大値未満の場合、警告フラグをレジスタ１２に設定する。レジスタWDTFLG<FLG>=1の時、警告フラグが設定されていることを表し、WDTFLG<FLG>=0の時、警告フラグが設定されていないことを表す。
【００１７】
比較回路１３は、クリアされた時のカウンタ値がカウンタ最小値以下の場合、エラー割込信号ＳＥをＣＰＵ２０に出力する。
【００１８】
比較回路１３は、クリアされた時のカウンタ値がカウンタ最小値より大きく、警告フラグ設定最小値以下の場合、警告フラグをレジスタ１２に設定する。
【００１９】
ＣＰＵ２０は、アプリケーションプログラム等に基づいて演算を行うと共に、カウンタ１１のカウンタ値を定期的にクリアする（クリア処理）。具体的には、ＣＰＵ２０は、レジスタWDTCMDに所定のコードを書き込み、これによりレジスタ１２はカウンタ１１のカウンタ値をクリアする。
【００２０】
エラー割込信号ＳＥに基づき、ＷＤＴエラー割込が発生する。ＣＰＵ２０は、比較回路１３からエラー割込信号ＳＥが供給された場合、例えばシステムダウンなどの所定の処理を実行する。
【００２１】
また、ＣＰＵ２０により、レジスタWDTCTLに所定の値が書き込まれ、且つ、レジスタWDTCMDに所定のコードが書き込まれると、ＷＤＴ１０は動作を停止すると共に、各レジスタはクリアされる。
【００２２】
次に、図３を参照してＭＣＵ１の動作を説明する。
【００２３】
図３は、本実施形態のＭＣＵ１のクリア処理のタイミングを示すタイミング図である。カウンタ１１がカウントアップを開始した後、カウンタ値がカウンタ最小値以下の時（ｔ１）にクリア処理が行われた場合、比較回路１３は、エラー割込信号ＳＥを出力する。このような場合の一例としては、ＣＰＵ２０が暴走して異常なタイミングでクリア処理を行う場合などが考えられる。
【００２４】
また、カウンタ値がカウンタ最小値より大きく警告フラグ設定最小値以下の時（ｔ２）にクリア処理が行われた場合、比較回路１３は、警告フラグをレジスタ１２に設定する。この場合には、クリア処理が正常なタイミングより早くなっている。そのため、このままＣＰＵ２０が処理を続けると、更にクリア処理が早まりエラー割込信号ＳＥが出力される可能性が高まる。
【００２５】
また、カウンタ値が警告フラグ設定最小値より大きく警告フラグ設定最大値未満の時（ｔ３）にクリア処理が行われた場合、ＭＣＵ１は正常な状態にある。
【００２６】
また、カウンタ値が警告フラグ設定最大値以上、カウンタ最大値未満の時（ｔ４）にクリア処理が行われた場合、比較回路１３は、警告フラグをレジスタ１２に設定する。この場合には、クリア処理が正常なタイミングより遅延している。そのため、このままＣＰＵ２０が処理を続けると、更にクリア処理が遅延してエラー割込信号ＳＥが出力される可能性が高まる。
【００２７】
また、カウンタ値がカウンタ最大値以上の時（ｔ５）にクリア処理が行われる場合、即ち、カウンタ値がカウンタ最大値になってもクリア処理が行われない場合、比較回路１３は、カウンタ値がカウンタ最大値になった時にエラー割込信号ＳＥを出力する。
【００２８】
ＣＰＵ２０は、定期的に、レジスタ１２に警告フラグが設定されているか否か確認する。ＣＰＵ２０は、警告フラグを検出した場合に、クリア処理が正常なタイミングより早いか遅延していることを把握できる。クリア処理が早いか、あるいは遅延しているかは、ＣＰＵ２０が様々な情報に基づいて判断する。
【００２９】
ＣＰＵ２０は、警告フラグを検出した場合に、負荷を調整して、次のクリア処理のタイミングを調整する。ＣＰＵ２０は、クリア処理が遅延している場合には、例えば実行中のアプリケーションプログラムの一部または診断用プログラムなどを停止して、処理を間引き負荷を減らす。診断用プログラムは、アプリケーションプログラムとは異なり、ＭＣＵ１の機能を診断する。
【００３０】
これにより、ＷＤＴエラー割込が発生するほどクリア処理が遅延する前に、クリア処理を早めることができる。従って、ＣＰＵ２０は正常動作しているが、単にＣＰＵ２０の処理が遅れていることによる不要なＷＤＴエラー割込の発生を低減できる。
【００３１】
一方、ＣＰＵ２０は、クリア処理が早い場合には、新たにアプリケーションプログラムまたは診断用プログラムなどを実行して、負荷を増やす。これにより、ＷＤＴエラー割込が発生するほどクリア処理が早くなる前に、クリア処理を遅延させることができる。例えば、クリア処理が遅延している場合に診断用プログラムなどを停止した後、アプリケーション処理が終了すると負荷が減り過ぎてクリア処理が早くなり過ぎる可能性がある。本実施形態では、このような場合にも負荷を調整することにより適切に対処する。従って、ＣＰＵ２０は正常動作しているが、単にＣＰＵ２０の負荷が減りすぎていることによる不要なＷＤＴエラー割込の発生を低減できる。
【００３２】
あるいは、例えば、診断用プログラムを停止することが機能安全の観点から好ましくない場合や、停止可能なアプリケーションプログラムまたは診断用プログラムが存在しない場合などには、ＣＰＵ２０は、警告フラグを検出した場合に、レジスタ１２のカウンタ最大値をより大きい値に更新し、ＷＤＴエラー割込が発生するタイミングを遅らせてもよい。これにより、不要なＷＤＴエラー割込の発生を低減できる。
【００３３】
ここで、比較例のＷＤＴについて説明する。比較例のＷＤＴでは、ＣＰＵは正常動作しているが、アプリケーション処理が延長してクリア処理が遅延している場合にＷＤＴエラー割込を発生しないようにするために、予めカウンタ最大値を大きく設定しておく。カウンタ最大値は、クリア処理の最大の遅延を考慮して設定する。そのため、実際にはＣＰＵが暴走してクリア処理を行わない場合であっても、ＷＤＴエラー割込の発生が遅れ、システムダウンなどの処置が遅れる。従って、ＣＰＵが暴走している状態が長く継続するため、好ましくない。
【００３４】
これに対して、本実施形態では、カウンタ最大値を大きくしなくてもよく、又、カウンタ最大値を大きくする場合であっても、比較例よりも小さくできる。そのため、比較例よりも早くＷＤＴエラー割込を発生できる。
【００３５】
本実施形態によれば、クリアされた時のカウンタ値が警告フラグ設定最大値より大きくカウンタ最大値未満の場合、及び、クリアされた時のカウンタ値がカウンタ最小値より大きく警告フラグ設定最小値以下の場合に、警告フラグを設定するようにしている。これにより、ＣＰＵ２０は、警告フラグを検出した場合に、より適切なタイミングでクリア処理できるように負荷を調整することができる。従って、ＣＰＵ２０の処理が遅れていること、又は、ＣＰＵ２０の負荷が減りすぎていることによる、不要なＷＤＴエラー割込の発生を低減できる。
【００３６】
なお、不要なＷＤＴエラー割込の大部分は、ＣＰＵ２０の処理が遅れることに起因して発生する。そのため、ＭＣＵ１を安価に構成する場合には、ＣＰＵ２０の負荷が減りすぎていることには対応できなくてもよい。つまり、比較器１３は、クリアされた時のカウンタ値がカウンタ最小値より大きく警告フラグ設定最小値以下の場合には、警告フラグを設定しなくてもよい。この場合にも、ＣＰＵ２０の処理が遅れていることによる不要なＷＤＴエラー割込の発生を低減できる。また、ＭＣＵ１の構成及び処理を簡略化できる。
【００３７】
（第２の実施形態）
第２の実施形態では、クリアされたタイミングに応じて警告フラグを変更する。以下では、第１の実施形態との相違点を中心に説明する。
【００３８】
図４は、第２の実施形態に係るレジスタ１２を説明する図である。レジスタWDTFLGの機能が第１の実施形態と異なる。
【００３９】
比較回路１３は、クリアされた時のカウンタ値が警告フラグ設定最大値以上の場合、警告フラグとして最大警告フラグをレジスタ１２に設定する。レジスタWDTFLG<FLGX>=1の時、最大警告フラグが設定されていることを表し、レジスタWDTFLG<FLGX>=0の時、最大警告フラグが設定されていないことを表す。
【００４０】
比較回路１３は、クリアされた時のカウンタ値がカウンタ最小値より大きく、警告フラグ設定最小値以下の場合、警告フラグとして最小警告フラグをレジスタ１２に設定する。レジスタWDTFLG<FLGN>=1の時、最小警告フラグが設定されていることを表し、WDTFLG<FLGN>=0の時、最小警告フラグが設定されていないことを表す。なお、警告フラグを表すレジスタWDTFLG<FLG>は、用いても用いなくてもよい。
【００４１】
これにより、ＣＰＵ２０は、最大警告フラグが設定されているか、最小警告フラグが設定されているかに応じて、クリア処理が早いか遅いかを第１の実施形態よりも容易に判断することができる。従って、第１の実施形態よりもＣＰＵ２０の処理を簡略化できる。
【００４２】
（第３の実施形態）
第３の実施形態では、正常なタイミングでクリア処理が行われた場合に警告フラグをクリアする。以下では、第１の実施形態との相違点を中心に説明する。
【００４３】
図５は、第３の実施形態に係るレジスタ１２を説明する図である。レジスタWDTFLGの機能が第１の実施形態と異なる。
【００４４】
比較回路１３は、クリアされた時のカウンタ値が、警告フラグ設定最小値より大きく、警告フラグ設定最大値より小さい場合、警告フラグをクリアする。つまり、比較回路１３は、レジスタWDTFLG<FLG>=0に設定する。
【００４５】
これにより、ＣＰＵ２０は、警告フラグを検出した後で警告フラグがクリアされたことを検出した場合に、負荷が適切に調整されていることを認識できる。よって、ＣＰＵ２０は、負荷を減らしていた場合には再度、診断用プログラム等を実行してもよい。
【００４６】
なお、第３の実施形態を第２の実施形態と組み合わせてもよい。
【００４７】
（第４の実施形態）
第４の実施形態では、警告フラグ機能を無効にできる第１の実施形態との相違点を中心に説明する。
【００４８】
図６は、第４の実施形態に係るレジスタ１２を説明する図である。レジスタWDTCTL, WDTCMDの機能が第１の実施形態と異なる。レジスタWDTCTLは、WDT停止、及び、警告フラグの無効を設定する。レジスタWDTCMDは、第１の実施形態の機能に加え、警告フラグ機能を無効にする所定のコードが書き込まれる。
【００４９】
比較回路１３は、ＣＰＵ２０から無効化信号が設定された時、即ち、レジスタWDTCTL<FLGDIS>=1に設定され、且つ、レジスタWDTCMDに所定のコードが書き込まれた時、警告フラグ機能を無効にする。この場合、比較回路１３は、比較結果によらず警告フラグを設定しない。再び警告フラグ機能を有効にする場合には、例えばレジスタWDTCTL<FLGDIS>=0に設定すればよい。
【００５０】
ＣＰＵ２０が実行するアプリケーションプログラムによっては、警告フラグが設定されない方が好ましい場合がある。本実施形態では、このような場合にも適切に対処できる。
【００５１】
なお、第４の実施形態を第２及び第３の実施形態の少なくとも何れかと組み合わせてもよい。
【００５２】
（第５の実施形態）
第５の実施形態では、警告フラグ割込信号を出力する。以下では、第１の実施形態との相違点を中心に説明する。
【００５３】
図７は、第５の実施形態に係るレジスタ１２を説明する図である。レジスタWDTFLG<FLG>=1に設定されると、警告フラグ割込信号がＣＰＵ２０に出力される。つまり、比較回路１３は、警告フラグをレジスタ１２に設定した時に、警告フラグ割込信号をＣＰＵ２０に出力する。
【００５４】
ＣＰＵ２０は、警告フラグが設定されているか否か定期的に確認しなくとも、警告フラグ割込信号により、警告フラグが設定されたことを容易且つ迅速に検出できる。従って、ＣＰＵ２０は、第１の実施形態よりも早いタイミングで適切な処理を行うことができる。
【００５５】
なお、第５の実施形態を第２から第４の実施形態の少なくとも何れかと組み合わせてもよい。
【００５６】
上述した実施形態で説明したＷＤＴ１０の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、ＷＤＴ１０の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００５７】
また、ＷＤＴ１０の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００５８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５９】
１  ＭＣＵ
１０  ＷＤＴ
１１  カウンタ
１２  レジスタ
１３  比較回路
２０  ＣＰＵ（演算回路）
【図１】
2016053882.tif 000003
【図２】
2016053882.tif 000004
【図３】
2016053882.tif 000005
【図４】
2016053882.tif 000006
【図５】
2016053882.tif 000007
【図６】
2016053882.tif 000008
【図７】
2016053882.tif 000009