(57)【要約】【課題】効率的に自己診断を行うこと。【解決手段】自己診断装置は、複数の機能ブロックと、複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、動作頻度検出手段により検出された各機能ブロックの動作頻度に基づいて、各自己診断手段が各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、所定の時間制限を行う時間制限値に基づいて、各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、を備える。各自己診断手段は、優先順位設定手段により設定された優先順位と、実行可能回数算出手段により算出された実行可能回数と、に基づいて、各機能ブロックの自己診断を行う。【選択図】図１
2012252373.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロックと、
前記複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、
前記各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、
前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に基づいて、前記各自己診断手段が前記各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、
所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、
を備え、
前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位と、前記実行可能回数算出手段により算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。
【請求項２】
請求項１記載の自己診断装置であって、
前記所定の時間制限を行う時間制限値の有効及び無効を設定する第１記憶手段を更に備え、
前記記憶手段に前記時間制限値が有効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、前記実行可能回数算出手段により算出された前記実行可能回数まで、前記各機能ブロックの自己診断を行い、
前記記憶手段に前記時間制限値が無効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、全ての前記機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。
【請求項３】
請求項１又は２記載の自己診断装置であって、
優先順位設定手段は、前記動作頻度検出手段により検出された前記機能ブロックの動作頻度が高いほど、該機能ブロックに対する自己診断の優先順位を高く設定する、ことを特徴とする自己診断装置。
【請求項４】
複数の機能ブロックの動作頻度を夫々検出するステップと、
前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定するステップと、
所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出するステップと、
前記設定された優先順位と、前記算出された実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行うステップと、を含む、ことを特徴とする自己診断装置の自己診断方法。
【請求項５】
複数の機能ブロックの動作頻度を夫々検出する処理と、
前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定する処理と、
所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する処理と、
前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う処理と、をコンピュータに実行させる、ことを特徴とする自己診断装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の自己診断を行う自己診断装置、自己診断方法、及びプログラムに関するものである。
【背景技術】
【０００２】
半導体分野において、例えば、製品品質の観点からＭＵＸ−ＳＣＡＮを自己診断回路（以下、ＢＩＳＴ（Ｂｕｉｌｄ  ｉｎ  ｓｅｌｆ  ｔｅｓｔ）回路と称す）として内蔵し、電源投入時やシステムリセット時に自己診断を行い、故障検出を行なう技術が知られている。
【０００３】
また、車載ボディー系やダッシュボード系のマイクロコントローラ（以下、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）と称す）などにおいて、バッテリー駆動による低消費電力モードの状態が何年も継続する場合もある。このため、上記の状態だけではなく、低消費電力モード（スタンバイやスリープモードのようなモード、若しくは、一部ブロック電源を落とすモード）から通常モードへの復帰時にも自己診断を実施したいという要望もある。
【０００４】
しかしながら、例えば、低消費電力モードには復帰時間制限内に通常モードに復帰しなければならないという制約があるため、その復帰時間制限内で故障検出を行う必要があり、ＭＣＵを短時間で効率よく診断する手法が求められている。一方、複数の機能ブロックを有し、対象の機能ブロックに対する自己診断を逐次実行する半導体デバイスの自己診断方法が知られている（特許文献１参照）。また、自己診断を省略している回数または自己診断を省略している時間が閾値に達しているか否かを判断し、自己診断を実施する情報処理装置が知られている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−６８８６５号公報
【特許文献２】特開２０１０−１６５００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に示す自己診断方法においては、機能ブロックが増加するに従って、自己診断時間が増加することとなる。この場合、例えば、低消費電力モードから通常モードへの復帰時間に制限があると、全ての自己診断を完了できない可能が生じる。一方、予め自己診断検査対象の機能ブロック数を削減することが考えられるが、検査対象の機能ブロックとユーザが使用する機能ブロックとが一致しない可能性があり、品質低下を招く虞がある。
【０００７】
また、上記特許文献２に示す情報処理装置においても、自己診断を実施するか否かを判断するものであり、特許文献１に示す自己診断方法と同様に、機能ブロックが増加するに従って、自己診断時間が増加することとなる。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明の一態様は、複数の機能ブロックと、前記複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、前記各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に基づいて、前記各自己診断手段が前記各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、を備え、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位と、前記実行可能回数算出手段により算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。
【０００９】
この一態様によれば、各機能ブロックの動作頻度に応じて自己診断の優先順位を設定し、設定した優先順位と自己診断の実行可能回数とに基づいて各機能ブロックの自己診断を行うことにより、各機能ブロックの自己診断を効率的に行うことができる。
【００１０】
他方、上記目的を達成するための本発明の一態様は、複数の機能ブロックの動作頻度を夫々検出するステップと、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定するステップと、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出するステップと、前記設定された優先順位と、前記算出された実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行うステップと、を含む、ことを特徴とする自己診断装置の自己診断方法であってもよい。
【００１１】
さらに、上記目的を達成するための本発明の一態様は、複数の機能ブロックの動作頻度を夫々検出する処理と、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定する処理と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する処理と、前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う処理と、をコンピュータに実行させる、ことを特徴とする自己診断装置のプログラムであってもよい。
【発明の効果】
【００１２】
本発明によれば、効率的に自己診断を行うことができる自己診断装置、自己診断方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１に係る半導体集積回路の自己診断装置の概略的なシステム構成を示すブロック図である。
【図２】本発明の実施の形態１に係る半導体集積回路の自己診断装置における処理フローの一例を示すフローチャートである。
【図３】本発明の実施の形態２に係る半導体集積回路の自己診断装置の概略的なシステム構成を示すブロック図である。
【図４】本発明の実施の形態２に係る半導体集積回路の自己診断装置における処理フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
実施の形態１．
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態１に係る半導体集積回路の自己診断装置の概略的なシステム構成を示すブロック図である。なお、本実施の形態１に係る半導体集積回路の自己診断装置１は、例えば、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）のペリフェラルブロックに適用されている。
【００１５】
自己診断装置１は、自己診断対象としての半導体集積回路である複数の機能ブロックＢ１０〜Ｂ１２と、それらを制御する複数のＢＩＳＴ（Ｂｕｉｌｄ  ｉｎ  ｓｅｌｆ  ｔｅｓｔ）回路Ｂ２０〜Ｂ２２と、各機能ブロックＢ１０〜Ｂ１２の優先順位を設定するＢＩＳＴ実行優先順位設定ブロックＢ３０と、各機能ブロックＢ１０〜Ｂ１２の動作を検出する機能ブロック動作頻度検出ブロックＢ４０と、ＢＩＳＴ制御命令およびＢＩＳＴ診断の期待値を格納するＢＩＳＴ制御メモリＢ５０と、複数のＢＩＳＴ回路Ｂ２０〜Ｂ２２を制御するＢＩＳＴコントローラＢ６０と、各機能ブロックＢ１０〜Ｂ１２のレジスタ値を退避させるレジスタ値退避ブロックＢ７０と、ＭＣＵの低消費電力モードの制御を行うスタンバイコントローラＢ８０と、各種設定値を格納するレジスタブロックＢ９０と、ＣＰＵＢ１００と、を有している。
【００１６】
なお、自己診断装置１は、例えば、制御処理や演算処理等と行うＣＰＵ（Central Processing Unit）と、ＣＰＵによって実行される制御プログラムや演算プログラム等が記憶されたＲＯＭ（Read Only Memory）と、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）と、を有するマイクロコンピュータを中心にして、ハードウェア構成されている。また、これらＣＰＵ、ＲＯＭ、及びＲＡＭは、データバスによって相互に接続されている。
【００１７】
各ＢＩＳＴ回路Ｂ２０〜Ｂ２２は、自己診断手段の一具体例であり、夫々、信号線Ｗ１００〜Ｗ１０２を介して各機能ブロックＢ１０〜Ｂ１２に接続されており、対応する各機能ブロックＢ１０〜Ｂ１２の自己診断を行なう。本実施の形態１に係る自己診断装置１には、周知のＭＵＸ−ＳＣＡＮ（マルチプレクスド・スキャン）が適用されているが、これに限らず、例えば、ＢＩＳＴ回路の種類は問わないものとする。
【００１８】
ＢＩＳＴ実行優先順位設定ブロックＢ３０は、第３記憶手段の一具体例であり、各機能ブロックＢ１０〜Ｂ１２に対応した優先順位設定メモリＢ３１〜Ｂ３３を搭載している。各優先順位設定メモリＢ３１〜Ｂ３３には、各機能ブロックＢ１０〜Ｂ１２におけるＢＩＳＴ実行時の優先順位を決めるＢＩＳＴ優先順位設定値が設定されている。ここで、ＢＩＳＴ優先順位設定値の最大値及び最小値は、後述の機能ブロック動作頻度検出機能の値（各機能ブロックＢ１０〜Ｂ１２の動作頻度値）に関わらず、ＢＩＳＴ動作の有効及び無効を示す値を設定してもよい。
【００１９】
機能ブロック動作頻度検出ブロックＢ４０は、各機能ブロックＢ１０〜Ｂ１２の動作頻度を夫々検出する。機能ブロック動作頻度検出ブロックＢ４０は、動作頻度検出手段の一具体例であり、各機能ブロックＢ１０〜Ｂ１２に対応した動作検出回路Ｂ４１〜Ｂ４３と、第２記憶手段の一具体例である動作頻度格納メモリＢ４１１〜Ｂ４３１と、を搭載しており、夫々、信号線Ｗ４００〜Ｗ４０２を介して、対応する各機能ブロックＢ１０〜Ｂ１２に接続されている。
【００２０】
各動作検出回路Ｂ４１〜Ｂ４３は、対応する各機能ブロックＢ１０〜Ｂ１２の動作の頻度を示す動作頻度値を検出し、検出した動作頻度値を対応する各動作頻度格納メモリＢ４１１〜Ｂ４３１に夫々格納する。ここで、各動作頻度格納メモリＢ４１１〜Ｂ４３１の上限値及び下限値は、例えば、無条件でＢＩＳＴ動作を有効及び無効にするように設定されてもよい。
【００２１】
ＢＩＳＴ制御メモリＢ５０は、ＢＩＳＴ制御命令およびＢＩＳＴ診断の期待値を格納する。
【００２２】
ＢＩＳＴコントローラＢ６０は、ＢＩＳＴ制御ブロックＢ６１と、ＢＩＳＴ実行選択ブロックＢ６２と、ＢＩＳＴ結果判定ブロックＢ６３と、ＢＩＳＴ結果出力ブロックＢ６４と、を有している。
【００２３】
ＢＩＳＴコントローラＢ６０は、信号線Ｗ６００、Ｗ６０６を介しＢＩＳＴ制御メモリＢ５０に接続され、信号線Ｗ６０３を介しＢＩＳＴ実行優先順位設定ブロックＢ３０に接続され、信号線Ｗ６０４を介し機能ブロック動作頻度検出ブロックＢ４０に接続され、信号線Ｗ６０２、Ｗ６０５を介し各ＢＩＳＴ回路Ｂ２０〜Ｂ２２に接続され、信号線Ｗ８０２を介しスタンバイコントローラＢ８０に接続され、信号線Ｗ６０８を介して外部に接続されている。
【００２４】
ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１を有しており、信号線Ｗ６００〜Ｗ６０２を介して、ＢＩＳＴ制御メモリＢ５０、ＢＩＳＴ実行選択ブロックＢ６２、及び各ＢＩＳＴ回路Ｂ２０〜Ｂ２２に夫々接続されている。ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ制御メモリＢ５０からＢＩＳＴ制御命令を読み出し、ＢＩＳＴ実行選択ブロックＢ６２からＢＩＳＴ対象ブロックおよび実行順番を読み出し、読み出したＢＩＳＴ制御命令、ＢＩＳＴ対象ブロック、及び実行順番に基づいて、ＢＩＳＴ回路Ｂ２０〜Ｂ２２の制御を行なう。また、ＢＩＳＴ実行回数カウンタＢ６１１は、各機能ブロックＢ１０〜Ｂ１２においてＢＩＳＴ実行済の回数をカウントするためのカウンタである。
【００２５】
ＢＩＳＴ実行選択ブロックＢ６２は、信号線Ｗ６０３を介してＢＩＳＴ実行優先順位設定ブロックＢ３０に接続され、信号線Ｗ６０４を介して機能ブロック動作頻度検出ブロックＢ４０に接続されている。ＢＩＳＴ実行選択ブロックＢ６２は、優先順位設定メモリＢ３１〜Ｂ３３から信号線Ｗ６０３を介して各機能ブロックＢ１０〜Ｂ１２に対応したＢＩＳＴ優先順位設定値ＰＲＩを読み出し、動作検出回路Ｂ４１〜Ｂ４３および動作頻度格納メモリＢ４１１、４２１，Ｂ４３１から信号線Ｗ６０４を介して各機能ブロックＢ１０〜Ｂ１２に対応した動作頻度値Ｒｃｎｔを読み出す。
【００２６】
ＢＩＳＴ実行選択ブロックＢ６２は、優先順位設定手段及び実行可能回数算出手段の一具体例であり、読み出したＢＩＳＴ優先順位設定値ＰＲＩ、および、動作頻度値Ｒｃｎｔに基づいて、ＢＩＳＴの実行基準となるＢＩＳＴ実行優先順位を算出し、低消費電力モードから通常モードへの復帰時間を制限する復帰時間制限値に基づいてＢＩＳＴ実行可能回数を算出する。さらに、ＢＩＳＴ実行選択ブロックＢ６２は、算出したＢＩＳＴ実行優先順位に従って各機能ブロックＢ１０〜Ｂ１２のＢＩＳＴを実行するようＢＩＳＴ制御ブロックＢ６１に対して制御情報を出力する。
【００２７】
なお、このＢＩＳＴ実行基準には、ＢＩＳＴの時間制限だけではなく、各機能ブロックの動作頻度値も含められる。このため、動作頻度値の低い機能ブロックを実行しないようにＢＩＳＴ実行基準を設定してもよい。また、ＢＩＳＴ実行基準に制限が無い場合は、ＢＩＳＴ実行優先順位の高い機能ブロックから低い機能ブロックまでを順に全ての機能ブロックの自己診断の実行を行ってもよい。
【００２８】
ＢＩＳＴ結果判定ブロックＢ６３は、信号線Ｗ６０５を介して各ＢＩＳＴ回路Ｂ２０〜Ｂ２２に接続され、信号線Ｗ６０６を介してＢＩＳＴ制御メモリＢ５０に接続され、信号線Ｗ６０７を介してＢＩＳＴ結果出力ブロックＢ６４に接続されている。ＢＩＳＴ結果判定ブロックＢ６３は、各ＢＩＳＴ回路Ｂ２０〜Ｂ２２から各ＢＩＳＴ診断結果を読込み、ＢＩＳＴ制御メモリＢ５０からＢＩＳＴ診断の期待値を読込み、読み込んだＢＩＳＴ診断結果とその期待値とを比較することで各ＢＩＳＴ診断結果の判定を行なう。
【００２９】
ＢＩＳＴ結果出力ブロックＢ６４は、信号線Ｗ６０７を介してＢＩＳＴ結果判定ブロックＢ６３と接続されており、ＢＩＳＴ結果判定ブロックＢ６３からの診断結果を、信号線Ｗ６０８を介して外部に対して出力する。
【００３０】
レジスタ値退避ブロックＢ７０は、各機能ブロックＢ１０〜Ｂ１２に対応したレジスタ値退避メモリＢ７１〜Ｂ７３を搭載しており、信号線Ｗ７００〜Ｗ７０２を介して各機能ブロックＢ１０〜Ｂ１２に接続されている。レジスタ値退避ブロックＢ７０は、ＭＣＵの低消費電力モード導入時に、各機能ブロックＢ１０〜Ｂ１２のレジスタ値の退避処理を行なう。
【００３１】
スタンバイコントローラＢ８０は、ＭＣＵの低消費電力モードの制御を司るブロックである。スタンバイコントローラＢ８０は、信号線Ｗ８００を介して各機能ブロックＢ１０〜Ｂ１２に接続され、信号線Ｗ８０１を介してレジスタ値退避ブロックＢ７０に接続され、信号線Ｗ８０２を介してＢＩＳＴコントローラＢ６０と接続されており、ＢＩＳＴコントローラＢ６０からＢＩＳＴ動作停止信号を受信する。さらに、スタンバイコントローラＢ８０は、信号線Ｗ８０３を介してＣＰＵＢ１００と接続され、信号線Ｗ９０２を介してレジスタブロックＢ９０と接続されている。
【００３２】
レジスタブロックＢ９０は、第１記憶手段の一具体例であり、動作頻度累積設定レジスタＢ９１と、起動時間制限指定レジスタＢ９２と、電源遮断設定レジスタＢ９３と、を搭載するブロックである。レジスタブロックＢ９０は、信号線Ｗ９００を介してＢＩＳＴコントローラＢ６０に接続され、ＢＩＳＴ制御に必要なレジスタ値をＢＩＳＴコントローラＢ６０に対して転送する。
【００３３】
また、レジスタブロックＢ９０は、信号線Ｗ９０１介してＣＰＵＢ１００に接続され、ＣＰＵＢ１００は、レジスタブロックＢ９０における書込み読出しを行なう。さらに、レジスタブロックＢ９０は、信号線Ｗ９０２を介してスタンバイコントローラＢ８０に接続されている。
【００３４】
動作頻度累積設定レジスタＢ９１は、各機能ブロックＢ１０〜Ｂ１２のＢＩＳＴ実行後に、対応する各動作頻度格納メモリの値を維持するか、或いは、初期化を行なうかを設定するためのレジスタである。例えば、動作頻度累積設定レジスタＢ９１を有効に設定した場合、電源投入から累積した各機能ブロックＢ１０〜Ｂ１２の動作頻度値に基づいて、ＢＩＳＴを実行することができる。一方、動作頻度累積設定レジスタＢ９１を無効に設定した場合、消費電力モード移行前の各機能ブロックＢ１０〜Ｂ１２の動作頻度値に基づいて、ＢＩＳＴを実行することができる。
【００３５】
起動時間制限指定レジスタＢ９２は、ＭＣＵの低消費電力モードから通常モードへの復帰時間の制限値（以下、復帰時間制限値と称す）、及びその復帰時間制限値の有無を設定するためのレジスタである。電源遮断設定レジスタＢ９３は、ＭＣＵの低消費電力モード時に各機能ブロックＢ１０〜Ｂ１２の電源遮断の有効及び無効の設定を行なうためのレジスタである。
【００３６】
ＣＰＵＢ１００は、中央演算処理装置であり、ＭＣＵの総合的な処理を行なうためのブロックである。ＣＰＵＢ１００は、信号線Ｗ９０１介してレジスタブロックＢ９０に接続され、信号線Ｗ８０３を介してスタンバイコントローラＢ８０に接続され、信号線Ｗ３００を介して機能ブロック動作頻度検出ブロックＢ４０に接続され、信号線Ｗ３０１を介してＢＩＳＴ実行優先順位設定ブロックＢ３０に接続されている。
【００３７】
次に、本実施の形態１に係る半導体集積回路の自己診断装置による自己診断方法を詳細に説明する。図２は、本実施の形態１に係る半導体集積回路の自己診断装置における処理フローの一例を示すフローチャートである。
【００３８】
例えば、電源投入もしくはシステムリセットが行なわれると、各優先順位設定メモリＢ３１〜Ｂ３３のＢＩＳＴ優先順位設定値に１が設定され、及び各動作頻度格納メモリＢ４１１〜Ｂ４３１の動作頻度値に１が設定され初期化が行われる（ステップＦ１０）。なお、ＢＩＳＴ優先順位設定値には、例えば、１が設定されているが、これに限らず０以外の任意の値を設定することができる。そして、レジスタブロックＢ９０内部の動作頻度累積設定レジスタＢ９１、起動時間制限設定レジスタＢ９２、及び電源遮断設定レジスタＢ９３が初期化される。
【００３９】
次に、ＢＩＳＴコントローラＢ６０が起動し、自己診断モードへ移行する（ステップＦ２０）。同時に、ＢＩＳＴ制御ブロックＢ６１に内蔵されるＢＩＳＴ実行回数カウンタＢ６１１に０が設定され初期化される。
【００４０】
その後、ＢＩＳＴ実行選択ブロックＢ６２は、上記（ステップＦ１０）において初期化された各機能ブロックＢ１０〜Ｂ１２に対応する優先順位設定メモリＢ３１〜Ｂ３３から信号線Ｗ６０３を介して各機能ブロックＢ１０〜Ｂ１２に対応したＢＩＳＴ優先順位設定値ＰＲＩを読み出し、信号線Ｗ６０４を介して動作頻度格納メモリＢ４１１〜Ｂ４３１から各機能ブロックＢ１０〜Ｂ１２に対応した動作頻度値Ｒｃｎｔを読み出し、起動時間制限指定レジスタＢ９２から信号線Ｗ９００を介して低消費電力モードからの復帰時間制限値Ｒｔｉｍｅを読み出す。
【００４１】
ＢＩＳＴ実行選択ブロックＢ６２は、これら読み出したＢＩＳＴ優先順位設定値ＰＲＩと動作頻度値Ｒｃｎｔとに基づき下記（式１）を用いて、ＢＩＳＴ優先順位ＰＲＩＯＲＩＴＹを算出し、算出したＢＩＳＴ優先順位ＰＲＩＯＲＩＴＹに基づいてＢＩＳＴ実行優先順番を決定する（ステップＦ２１）。例えば、ＢＩＳＴ実行選択ブロックＢ６２は、算出したＢＩＳＴ優先順位ＰＲＩＯＲＩＴＹが大きいほど、そのＢＩＳＴ実行優先順位を早く設定する。
また、ＢＩＳＴ実行選択ブロックＢ６２は、下記（式２）乃至（式４）を用いて、ＢＩＳＴ実行可能回数ＲＵＮｍａｘを算出する。
【００４２】
ここで、ＢＩＳＴ実行選択ブロックＢ６２における上記処理に関して詳細に説明する。ＢＩＳＴ優先順位ＰＲＩＯＲＩＴＹと、動作頻度Ｒｃｎｔと、優先順位設定値ＰＲＩとの関係は、下記（式１）に示すようになっている。
ＰＲＩＯＲＩＴＹ  ＝  Ｒｃｎｔ  ×  ＰＲＩ  ・・・（式１）
【００４３】
さらに、ＢＩＳＴ実行可能回数ＲＵＮｍａｘを、ＢＩＳＴ逐次実行可能回数ＳＥＲＩｍａｘ、及び、ＢＩＳＴ並列実行可能回数ＰＡＲＡｍａｘに基づいて、下記（式２）を用いて求めることが出来る。
ＲＵＮｍａｘ  ＝  ＳＥＲＩｍａｘ  ×  ＰＡＲＡｍａｘ  ・・・（式２）
【００４４】
このＢＩＳＴ逐次実行可能回数（ＳＥＲＩｍａｘ）及びＢＩＳＴ並列実行可能回数（ＰＡＲＡｍａｘ）は、低消費電力モードから通常モードへの復帰時間制限値をＲｔｉｍｅ、機能ブロックＢＩＳＴ実行最大時間をＢｔｉｍｅ、半導体集積回路の最大消費電流規定値をＣＩｍａｘ、ＢＩＳＴ動作最大消費電流値をＢＩｍａｘとしたとき、（式３）及び（式４）を用いて算出できる。
ＳＥＲＩｍａｘ  ＝  Ｒｔｉｍｅ  ／  Ｂｔｉｍｅ  ・・・（式３）
ＰＡＲＡｍａｘ  ＝  ＣＩｍａｘ  ／  ＢＩｍａｘ  ・・・（式４）
【００４５】
なお、上記（式３）及び（式４）において、低消費電力モードから通常モードへの復帰時間制限値Ｒｔｉｍｅ、機能ブロックＢＩＳＴ実行最大時間Ｂｔｉｍｅ、半導体集積回路の最大消費電流規定値ＣＩｍａｘ、及びＢＩＳＴ動作最大消費電流値ＢＩｍａｘは、例えば、製品設計時にＢＩＳＴ実行選択ブロックＢ６２内に固定値として格納されている。
【００４６】
ＢＩＳＴ制御ブロックＢ６１は、上記（ステップＦ２１）において決定したＢＩＳＴ実行優先順位に従い、次にＢＩＳＴを実行する機能ブロック（以下、機能ブロックｎと称す）に対応した各ＢＩＳＴ回路Ｂ２０〜Ｂ２２に対して信号線Ｗ６０２介して制御命令を送信し、機能ブロックｎのＢＩＳＴを実行させる（ステップＦ３０）。その際、ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値をインクリメント（＋１）する。
【００４７】
ＢＩＳＴ結果判定ブロックＢ６３は、上記（ステップＦ３０）において実行した機能ブロックｎに対応したＢＩＳＴ回路Ｂ２０〜Ｂ２２から、自己診断結果を、信号線Ｗ６０５を介して取り込み、その機能ブロックｎの自己診断結果が正常であるか否かを判断する（ステップＦ３１）。
【００４８】
ＢＩＳＴ結果判定ブロックＢ６３が、その自己診断結果が正常であると判断したとき（ステップＦ３１のＹＥＳ）、ＣＰＵＢ１００は、動作頻度累積設定レジスタＢ９１の累積設定値を、信号線Ｗ９０１を介して読み込み、その累積設定値が有効および無効のいずれであるかを判断する（ステップＦ３２）。一方、ＢＩＳＴ結果判定ブロックＢ６３が、その自己診断結果が異常であると判断したとき（ステップＦ３１のＮＯ）、下記（ステップＦ４０）に移行する。
【００４９】
ＣＰＵＢ１００は、動作頻度累積設定レジスタＢ９１の累積設定値が無効と判断したとき（ステップＦ３２のＮＯ）、信号線Ｗ３００を介して機能ブロックｎに対応する動作頻度格納メモリＢ４１１〜Ｂ４３１の値に０を設定し初期化を行ない（ステップＦ３３）、下記（ステップＦ３４）に移行する。一方、ＣＰＵＢ１００は、動作頻度累積設定レジスタＢ９１の累積設定値が有効と判断したとき（ステップＦ３２のＹＥＳ）、下記（ステップＦ３４）に移行する。
【００５０】
ＣＰＵＢ１００は、信号線Ｗ９０１を介して起動時間制限指定レジスタＢ９２の値を読込み、低消費電力モードから通常モードへ復帰する際の起動時間制限の有効及び無効を判断し（ステップＦ３４）、その制限時間を判別する。
【００５１】
ＣＰＵＢ１００により、起動時間制限が有ると判断されたとき（ステップＦ３４のＹＥＳ）、ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値（ＢＩＳＴ実行済回数）が、ＢＩＳＴ実行選択ブロックＢ６２にて算出されたＢＩＳＴ実行可能回数（ＢＩＳＴが並列実行されている場合はＢＩＳＴ逐次実行可能回数）以内か否かを判定する（ステップＦ３５）。一方、ＣＰＵＢ１００により、起動時間制限が無いと判断されたとき（ステップＦ３４のＮＯ）、ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値（ＢＩＳＴ実行済回数）が、ＢＩＳＴ対象機能ブロックの総数以内か否かを判定する（ステップＦ３６）。
【００５２】
ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値がＢＩＳＴ実行可能回数以内であると判定したとき（ステップＦ３５のＹＥＳ）、上記（ステップＦ３０）の処理に戻り、次の優先順位の機能ブロックＢ１０〜Ｂ１２の自己診断が行われる。一方、ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値がＢＩＳＴ実行可能回数以内でないと判定したとき（ステップＦ３５のＮＯ）、下記（ステップＦ５０）の処理に移行する。
【００５３】
ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値が、ＢＩＳＴ対象機能ブロックの総数以内であると判定したとき（ステップＦ３６のＹＥＳ）、上記（ステップＦ３０）の処理に戻り、次の優先順位の機能ブロックＢ１０〜Ｂ１２の自己診断が行われる。一方、ＢＩＳＴ制御ブロックＢ６１は、ＢＩＳＴ実行回数カウンタＢ６１１の値が、ＢＩＳＴ対象の機能ブロックＢ１０〜Ｂ１２の総数を超えていると判定したとき（ステップＦ３６のＮＯ）、下記（ステップＦ５０）の処理に移行する。
【００５４】
（ステップＦ４０）において、ＢＩＳＴ結果出力ブロックＢ６４は、信号線Ｗ６０８を介してエラー信号を外部に対して出力し、本処理を終了させる。
【００５５】
（ステップＦ５０）において、ＢＩＳＴコントローラＢ６０は、スタンバイコントローラＢ８０に対して、信号線Ｗ８０２を介してＢＩＳＴ動作停止信号を送信し、自己診断モードから通常モードへ移行する。その際、ＢＩＳＴコントローラＢ６０は、必要に応じて各機能ブロックＢ１０〜Ｂ１２のレジスタ値を、レジスタ値退避ブロックＢ７０から復帰させる。ＢＩＳＴコントローラＢ６０が通常モードに移行すると、各機能ブロックＢ１０〜Ｂ１２の動作がユーザープログラムに従って開始される。
【００５６】
以下、（ステップＦ５１）から（ステップＦ７０）までが通常モードの処理であり、低消費電力モードへ移行するまで、これらステップが繰り返し実行される。
【００５７】
まず、ＣＰＵＢ１００は、ＢＩＳＴ実行優先順位設定ブロックＢ３０内の各優先順位設定メモリＢ３１〜Ｂ３３に対して、信号線Ｗ３００を介して、ＢＩＳＴ実行選択ブロックＢ６２により算出された優先順位設定値の設定を行なう（ステップＦ５１）。
【００５８】
次に、ＣＰＵＢ１００は、動作頻度累積設定レジスタＢ９１、起動時間制限指定レジスタＢ９２、及び電源遮断設定レジスタＢ９３を、ユーザープログラムに従って設定を行なう（ステップＦ５２）。
【００５９】
その後、機能ブロック動作頻度検出ブロックＢ４０において、機能ブロックＢ１０〜Ｂ１２（以下、機能ブロックｎと称す）に対応する動作検出回路Ｂ４１〜Ｂ４３が、機能ブロックｎが動作を開始する際の動作開始トリガの検出を行なう（ステップＦ６０）。ここで、動作開始トリガとは、機能ブロックｎの各動作マクロの動作を開始する際に必要となるトリガのことであり、例えば、特定レジスタへの書込み、割込み、などの各種開始トリガを含むものとする。
【００６０】
各動作検出回路Ｂ４１〜Ｂ４３が、動作開始トリガを検出すると（ステップＦ６０のＹＥＳ）、機能ブロックｎに対応する動作頻度格納メモリＢ４１１〜Ｂ４３１の値をインクリメントし、機能ブロックｎの動作数のカウントを行なう（ステップＦ６１）。一方、各動作検出回路Ｂ４１〜Ｂ４３が、動作開始トリガを検出しないとき（ステップＦ６０のＮＯ）、下記（ステップＦ７０）の処理に移行する。
【００６１】
機能ブロックｎは、夫々、通常動作を開始する（ステップＦ６２）。
スタンバイコントローラＢ８０は、ＣＰＵＢ１００から送信される低消費電力モードへ移行するための命令を受信し低消費電力モードへ移行するか、通常モードを維持するかの判定を行なう（ステップＦ７０）。
【００６２】
スタンバイコントローラＢ８０は、低消費電力モードへ移行すると判定したとき（ステップＦ７０のＹＥＳ）、ＣＰＵＢ１００の命令に従って低消費電力モードに移行し、電源遮断レジスタＢ９３の値を読込み、電源遮断の設定が有効であるか否かを判定する（ステップＦ７１）。一方、スタンバイコントローラＢ８０は、低消費電力モードへ移行しないと判定したとき（ステップＦ７０のＮＯ）、上記（ステップＦ５２）の処理に戻る。この場合、スタンバイコントローラＢ８０は、通常モードを維持し、（ステップＦ６０）〜（ステップＦ６２）の処理を繰り返し、機能ブロック動作頻度検出ブロックＢ４０は各機能ブロックＢ１０〜Ｂ１２の動作頻度値を検出し続ける。
【００６３】
スタンバイコントローラＢ８０は、電源遮断の設定が有効であると判定したとき（ステップＦ７１のＹＥＳ）、各機能ブロックＢ１０〜Ｂ１２のレジスタ値の退避をレジスタ退避ブロックＢ７０に対して行い、不定伝播防止処理などの電源遮断に必要な処理を行う（ステップＦ７２）。一方、スタンバイコントローラＢ８０は、電源遮断の設定が無効であると判定したとき（ステップＦ７１のＮＯ）、各機能ブロックＢ１０〜Ｂ１２のレジスタ値の退避をレジスタ退避ブロックＢ７０対して行う（ステップＦ７３）。
【００６４】
スタンバイコントローラＢ８０は、ＭＣＵを低消費電力モードへ移行させる処理を行なう（ステップＦ７４）。その際、スタンバイコントローラＢ８０は、電源遮断設定レジスタＢ９３の設定が電源遮断の有効と判断した場合、各機能ブロックＢ１０〜Ｂ１２の電源遮断を行なう。
【００６５】
スタンバイコントローラＢ８０は、低消費電力モードから通常モードへ復帰させるか、低消費電力モードを維持するかの判定を行なう（ステップＦ８０）。
【００６６】
スタンバイコントローラＢ８０は、低消費電力モードから通常モードへ復帰させると判定したとき（ステップＦ８０のＹＥＳ）、電源遮断レジスタＢ９３の値を読込み、電源遮断の設定が有効であるか否かを判定する（ステップＦ８１）。
【００６７】
スタンバイコントローラＢ８０は、電源遮断の設定が有効であると判定したとき（ステップＦ８１のＹＥＳ）、不定伝播防止処理の解除（電源遮断の処理）を行なう（ステップＦ８２）。
【００６８】
そして、レジスタ値退避ブロックＢ７０は、上記（ステップＦ７２）もしくは（ステップＦ７３）において退避したレジスタ値を各機能ブロックＢ１０〜Ｂ１２のレジスタに格納し直し、上記（ステップＦ２０）へ戻り自己診断モードへ移行する。
【００６９】
なお、（ステップＦ２０）以降における２回以降の処理は、ＢＩＳＴ実行優先順位設定ブロックＢ３０にＢＩＳＴ優先順位設定値が設定され、機能ブロック動作頻度検出ブロックＢ４０に各機能ブロックＢ１０〜Ｂ１２の動作頻度値が格納されている。このため、通常モードの動作頻度値に応じてＢＩＳＴ実行順番およびＢＩＳＴ対象の機能ブロックＢ１０〜Ｂ１２が変更される。そして、レジスタブロックＢ９０には、各種設定値が格納されている為、ＢＩＳＴ実行の設定および消費電力モードへ移行方法が変更される。この処理はＭＣＵの電源が遮断されるまで継続して行なわれる。
【００７０】
以上、本実施の形態１に係る半導体集積回路の自己診断装置１において、通常モード中に使用している各機能ブロックＢ１０〜Ｂ１２の動作頻度値を測定し、その動作頻度値の高い順に各機能ブロックＢ１０〜Ｂ１２のＢＩＳＴ実行の実行順位を決定し、低消費電力モードから通常モードへの復帰時間制限値以内に実行可能な機能ブロックＢ１０〜Ｂ１２のみの自己診断を行なう。このように、復帰時間制限値以内において、故障の発生し易い動作頻度値の高い機能ブロックＢ１０〜Ｂ１２から順次自己診断を行うことで、各機能ブロックＢ１０〜Ｂ１２の自己診断時間の増加を抑え、効率的な半導体集積回路の自己診断が可能となる。
【００７１】
さらに、一般的に動作頻度値の高い機能ブロックは、動作頻度値の低い機能ブロックと比較してマイグレーション現象の発生率が高く、故障しやすいのは周知の事実である。そして、ユーザープログラムによれば、動作頻度値が高い機能ブロックの故障は致命的であることが多いため、本発明のように、動作頻度値の高い機能ブロックＢ１０〜Ｂ１２から優先的に自己診断を行うことで、品質を向上させることができる。
【００７２】
さらに、時間的制限がなく、毎回すべての機能ブロックＢ１０〜Ｂ１２のＢＩＳＴを実行が可能な場合においても、故障しやすい機能ブロックＢ１０〜Ｂ１２から診断を行なうため、エラー発生時には早い時間にエラー認識を行うことができる。
【００７３】
実施の形態２．
図３は、本発明の実施の形態２に係る半導体集積回路の自己診断装置の概略的構成を示すブロック図である。本実施の形態２に係る自己診断装置２は、上記実施の形態１に係る自己診断装置１のＢＩＳＴ実行優先順位設定ブロックＢ３０の優先順位設定メモリＢ３１〜Ｂ３３、及び機能ブロック動作頻度検出ブロックＢ４０の動作頻度格納メモリＢ４１１〜Ｂ４３１を、外部メモリＢ１１０に変更し、この外部メモリＢ１１０を制御する外部メモリコントローラＢ１２０を更に備えることを特徴とする。
【００７４】
機能ブロック動作頻度検出ブロックＢ４０は、各機能ブロックＢ１０〜Ｂ１２に対応した動作検出回路Ｂ４１〜Ｂ４３を搭載しており、信号線Ｗ４００〜Ｗ４０２を介して各機能ブロックＢ１０〜Ｂ１２に接続され、信号線Ｗ１２０２を介して外部メモリコントローラＢ１２０に接続されている。
【００７５】
外部メモリＢ１１０は、例えば、ＭＣＵ外部に実装されたメモリであり、優先順位設定メモリＢ１１１と、動作頻度格納メモリＢ１１２とを有している。
【００７６】
外部メモリコントローラＢ１２０は、例えば、ＭＣＵ外部とのメモリインターフェースブロックである。外部メモリコントローラＢ１２０は、信号線Ｗ１２０１を介してＢＩＳＴ実行優先順位設定ブロックＢ３０に接続され、信号線Ｗ１２０２を介して機能ブロック動作頻度検出ブロックＢ４０に接続されている。
【００７７】
外部メモリコントローラＢ１２０は、信号線Ｗ１１０１を介して外部メモリＢ１１０に接続されており、信号線Ｗ１１０１を介して外部メモリＢ１１０に情報を格納し、若しくは情報の読み出しを行なう。外部メモリコントローラＢ１２０は、信号線Ｗ３０１を介してＣＰＵＢ１００にも接続されており、ＣＰＵＢ１００から外部メモリコントローラＢ１２０を介して外部メモリＢ１１０への読み書きも可能となっている。なお、本実施の形態２において、他の構成は上記実施の形態１と略同一であるため、詳細な説明は省略する。
【００７８】
図４は、本実施の形態２に係る半導体集積回路の自己診断装置における処理フローの一例を示すフローチャートである。まず、本実施の形態２において、上記実施の形態１と異なる処理内容について、詳細に説明する。
【００７９】
（ステップＦ２１）において、ＢＩＳＴ実行選択ブロックＢ６２は、（ステップＦ１０）において初期化された各機能ブロックＢ１０〜Ｂ１２に対応する優先順位設定メモリＢ１１１のＢＩＳＴ実行優先順位設定値ＰＲＩ、および、動作頻度格納メモリＢ１１２の動作頻度値Ｒｃｎｔを、外部メモリコントローラＢ１２０、信号線Ｗ１２０１およびＷ１２０２を介して読み出し、その読み出した値に基づいてＢＩＳＴ実行優先順位を決定する。
【００８０】
（ステップＦ５１）において、ＣＰＵＢ１００は、ＢＩＳＴ実行優先順位設定ブロックＢ３０内の外部メモリＢ１１０に対して、外部メモリコントローラＢ１２０及び信号線Ｗ１１０１を介して、ＢＩＳＴ優先順位の設定を行なう。
【００８１】
（ステップＦ６１）において、機能ブロック動作頻度検出ブロックＢ４０は、信号線Ｗ１２０２を介し外部メモリコントローラＢ１２０に各機能ブロックｎの動作頻度状況を伝達し、外部メモリコントローラＢ１２０は、信号線Ｗ１１０１を介して外部メモリＢ１１０の動作頻度格納メモリＢ１１２の値をインクリメントする。
【００８２】
本実施の形態２において、他の処理は、上記実施の形態１の処理と略同一であるため、詳細な説明は省略する。
以上、本実施の形態２に係る半導体集積回路の自己診断装置において、ＢＩＳＴ実行優先順位設定ブロックＢ３０、および、機能ブロック動作頻度検出ブロックＢ４０の代わりにＭＣＵ外の外部メモリＢ１１０を使用する事によって、優先順位設定メモリＢ３１〜Ｂ３３および動作検出回路Ｂ４１〜Ｂ４３の値をＭＣＵの電源投入前に設定する事が可能になる。したがって、低消費電力モードから通常モードへの復帰時のみでなく、電源投入時やリセット時においても本発明の上記効果を奏することができる。
【００８３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００８４】
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、例えば、図２及び図４に示す処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【００８５】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ）を含む。
【００８６】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８７】
さらに、上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８８】
（付記１）
複数の機能ブロックと、
前記複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、
前記各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、
前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に基づいて、前記各自己診断手段が前記各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、
所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、
を備え、
前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位と、前記実行可能回数算出手段により算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。
（付記２）
（付記１）記載の自己診断装置であって、
前記所定の時間制限を行う時間制限値の有効及び無効を設定する第１記憶手段を更に備え、
前記記憶手段に前記時間制限値が有効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、前記実行可能回数算出手段により算出された前記実行可能回数まで、前記各機能ブロックの自己診断を行い、
前記記憶手段に前記時間制限値が無効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、全ての前記機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。
（付記３）
（付記１）又は（付記２）記載の自己診断装置であって、
優先順位設定手段は、前記動作頻度検出手段により検出された前記機能ブロックの動作頻度が高いほど、該機能ブロックに対する自己診断の優先順位を高く設定する、ことを特徴とする自己診断装置。
（付記４）
（付記１）乃至（付記３）のうちいずれか記載の自己診断装置であって、
前記優先順位設定手段は、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に前回の優先順位設定値を乗算し、該乗算値に基づいて、前記優先順位を設定する、ことを特徴とする自己診断装置。
（付記５）
（付記１）乃至（付記４）のうちいずれか記載の自己診断装置であって、
前記実行可能回数算出手段は、下記式を用いて前記実行可能回数ＲＵＮｍａｘを算出する、ことを特徴とする自己診断装置。
ＲＵＮｍａｘ＝ＳＥＲＩｍａｘ×ＰＡＲＡｍａｘ
ＳＥＲＩｍａｘ＝Ｒｔｉｍｅ／Ｂｔｉｍｅ
ＰＡＲＡｍａｘ＝ＣＩｍａｘ／ＢＩｍａｘ
但し、上記式において、ＳＥＲＩｍａｘを自己診断の逐次実行可能回数、ＰＡＲＡｍａｘを自己診断の並列実行可能回数、Ｒｔｉｍｅを低消費電力モードから通常モードへの復帰時間制限値、Ｂｔｉｍｅを前記各機能ブロックの自己診断の実行最大時間、ＣＩｍａｘを半導体集積回路の最大消費電流規定値、ＢＩｍａｘを自己診断の動作最大消費電流値とする。
（付記６）
（付記１）乃至（付記５）のうちいずれか記載の自己診断装置であって、
前記時間制限値は、低消費電力モードから通常モードへの復帰時間を制限する復帰時間制限値である、ことを特徴とする自己診断装置。
（付記７）
（付記１）乃至（付記６）のうちいずれか記載の自己診断装置であって、
前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度を記憶する第２記憶手段と、
前記優先順位設定手段により設定された前記各機能ブロックの自己診断を行う優先順位を記憶する第３記憶手段と、を更に備えることを特徴とする自己診断装置。
（付記８）
複数の機能ブロックの動作頻度を夫々検出するステップと、
前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定するステップと、
所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出するステップと、
前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行うステップと、を含む、ことを特徴とする自己診断装置の自己診断方法。
（付記９）
複数の機能ブロックの動作頻度を夫々検出する処理と、
前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定する処理と、
所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する処理と、
前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う処理と、をコンピュータに実行させる、ことを特徴とする自己診断装置のプログラム。
【符号の説明】
【００８９】
１、２    自己診断装置
Ｂ１０、Ｂ１１、Ｂ１２    機能ブロック
Ｂ２０、Ｂ２１、Ｂ２２    ＢＩＳＴ回路
Ｂ３０    ＢＩＳＴ実行優先順位設定ブロック
Ｂ３１、Ｂ３２，Ｂ３３    優先順位設定メモリ
Ｂ４０    機能ブロック動作頻度検出ブロック
Ｂ４１、Ｂ４２，Ｂ４３    動作検出回路
Ｂ４１１、Ｂ４２１，Ｂ４３１    動作頻度格納メモリ
Ｂ５０    ＢＩＳＴ制御メモリ
Ｂ６０    ＢＩＳＴコントローラ
Ｂ６１１    ＢＩＳＴ実行回数カウンタ
Ｂ６１    ＢＩＳＴ制御ブロック
Ｂ６２    ＢＩＳＴ実行選択ブロック
Ｂ６３    ＢＩＳＴ結果判定ブロック
Ｂ６４    ＢＩＳＴ結果出力ブロック
Ｂ７０    レジスタ値退避ブロック
Ｂ７１、Ｂ７２、Ｂ７３    レジスタ値退避メモリ
Ｂ８０    スタンバイコントローラ
Ｂ９０    レジスタブロック
Ｂ９１    動作頻度累積設定レジスタ
Ｂ９２    起動時間制限指定レジスタ
Ｂ９３    電源遮断設定レジスタ
Ｂ１００    ＣＰＵ
Ｂ１１０    外部メモリ
Ｂ１１１    優先順位設定メモリ
Ｂ１１２    動作頻度格納メモリ
Ｂ１２０    外部メモリコントローラ
【図１】
2012252373.tif 000003
【図２】
2012252373.tif 000004
【図３】
2012252373.tif 000005
【図４】
2012252373.tif 000006