"複数の機能ブロックと、前記複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、前記各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に基づいて、前記各自己診断手段が前記各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、を備え、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位と、前記実行可能回数算出手段により算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。請求項1記載の自己診断装置であって、前記所定の時間制限を行う時間制限値の有効及び無効を設定する第1記憶手段を更に備え、前記記憶手段に前記時間制限値が有効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、前記実行可能回数算出手段により算出された前記実行可能回数まで、前記各機能ブロックの自己診断を行い、前記記憶手段に前記時間制限値が無効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、全ての前記機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。請求項1又は2記載の自己診断装置であって、優先順位設定手段は、前記動作頻度検出手段により検出された前記機能ブロックの動作頻度が高いほど、該機能ブロックに対する自己診断の優先順位を高く設定する、ことを特徴とする自己診断装置。複数の機能ブロックの動作頻度を夫々検出するステップと、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定するステップと、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出するステップと、前記設定された優先順位と、前記算出された実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行うステップと、を含む、ことを特徴とする自己診断装置の自己診断方法。複数の機能ブロックの動作頻度を夫々検出する処理と、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定する処理と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する処理と、前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う処理と、をコンピュータに実行させる、ことを特徴とする自己診断装置のプログラム。しかしながら、上記特許文献1に示す自己診断方法においては、機能ブロックが増加するに従って、自己診断時間が増加することとなる。この場合、例えば、低消費電力モードから通常モードへの復帰時間に制限があると、全ての自己診断を完了できない可能が生じる。一方、予め自己診断検査対象の機能ブロック数を削減することが考えられるが、検査対象の機能ブロックとユーザが使用する機能ブロックとが一致しない可能性があり、品質低下を招く虞がある。また、上記特許文献2に示す情報処理装置においても、自己診断を実施するか否かを判断するものであり、特許文献1に示す自己診断方法と同様に、機能ブロックが増加するに従って、自己診断時間が増加することとなる。上記目的を達成するための本発明の一態様は、複数の機能ブロックと、前記複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、前記各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に基づいて、前記各自己診断手段が前記各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、を備え、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位と、前記実行可能回数算出手段により算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。この一態様によれば、各機能ブロックの動作頻度に応じて自己診断の優先順位を設定し、設定した優先順位と自己診断の実行可能回数とに基づいて各機能ブロックの自己診断を行うことにより、各機能ブロックの自己診断を効率的に行うことができる。他方、上記目的を達成するための本発明の一態様は、複数の機能ブロックの動作頻度を夫々検出するステップと、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定するステップと、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出するステップと、前記設定された優先順位と、前記算出された実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行うステップと、を含む、ことを特徴とする自己診断装置の自己診断方法であってもよい。さらに、上記目的を達成するための本発明の一態様は、複数の機能ブロックの動作頻度を夫々検出する処理と、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定する処理と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する処理と、前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う処理と、をコンピュータに実行させる、ことを特徴とする自己診断装置のプログラムであってもよい。本発明によれば、効率的に自己診断を行うことができる自己診断装置、自己診断方法、及びプログラムを提供することができる。実施の形態1.以下、図面を参照して本発明の実施の形態について説明する。図1は、本発明の実施の形態1に係る半導体集積回路の自己診断装置の概略的なシステム構成を示すブロック図である。なお、本実施の形態1に係る半導体集積回路の自己診断装置1は、例えば、MCUMicroControllerUnitのペリフェラルブロックに適用されている。自己診断装置1は、自己診断対象としての半導体集積回路である複数の機能ブロックB10~B12と、それらを制御する複数のBISTBuildinselftest回路B20~B22と、各機能ブロックB10~B12の優先順位を設定するBIST実行優先順位設定ブロックB30と、各機能ブロックB10~B12の動作を検出する機能ブロック動作頻度検出ブロックB40と、BIST制御命令およびBIST診断の期待値を格納するBIST制御メモリB50と、複数のBIST回路B20~B22を制御するBISTコントローラB60と、各機能ブロックB10~B12のレジスタ値を退避させるレジスタ値退避ブロックB70と、MCUの低消費電力モードの制御を行うスタンバイコントローラB80と、各種設定値を格納するレジスタブロックB90と、CPUB100と、を有している。なお、自己診断装置1は、例えば、制御処理や演算処理等と行うCPUCentralProcessingUnitと、CPUによって実行される制御プログラムや演算プログラム等が記憶されたROMReadOnlyMemoryと、処理データ等を一時的に記憶するRAMRandomAccessMemoryと、を有するマイクロコンピュータを中心にして、ハードウェア構成されている。また、これらCPU、ROM、及びRAMは、データバスによって相互に接続されている。各BIST回路B20~B22は、自己診断手段の一具体例であり、夫々、信号線W100~W102を介して各機能ブロックB10~B12に接続されており、対応する各機能ブロックB10~B12の自己診断を行なう。本実施の形態1に係る自己診断装置1には、周知のMUX-SCANマルチプレクスドスキャンが適用されているが、これに限らず、例えば、BIST回路の種類は問わないものとする。BIST実行優先順位設定ブロックB30は、第3記憶手段の一具体例であり、各機能ブロックB10~B12に対応した優先順位設定メモリB31~B33を搭載している。各優先順位設定メモリB31~B33には、各機能ブロックB10~B12におけるBIST実行時の優先順位を決めるBIST優先順位設定値が設定されている。ここで、BIST優先順位設定値の最大値及び最小値は、後述の機能ブロック動作頻度検出機能の値各機能ブロックB10~B12の動作頻度値に関わらず、BIST動作の有効及び無効を示す値を設定してもよい。機能ブロック動作頻度検出ブロックB40は、各機能ブロックB10~B12の動作頻度を夫々検出する。機能ブロック動作頻度検出ブロックB40は、動作頻度検出手段の一具体例であり、各機能ブロックB10~B12に対応した動作検出回路B41~B43と、第2記憶手段の一具体例である動作頻度格納メモリB411~B431と、を搭載しており、夫々、信号線W400~W402を介して、対応する各機能ブロックB10~B12に接続されている。各動作検出回路B41~B43は、対応する各機能ブロックB10~B12の動作の頻度を示す動作頻度値を検出し、検出した動作頻度値を対応する各動作頻度格納メモリB411~B431に夫々格納する。ここで、各動作頻度格納メモリB411~B431の上限値及び下限値は、例えば、無条件でBIST動作を有効及び無効にするように設定されてもよい。BIST制御メモリB50は、BIST制御命令およびBIST診断の期待値を格納する。BISTコントローラB60は、BIST制御ブロックB61と、BIST実行選択ブロックB62と、BIST結果判定ブロックB63と、BIST結果出力ブロックB64と、を有している。BISTコントローラB60は、信号線W600、W606を介しBIST制御メモリB50に接続され、信号線W603を介しBIST実行優先順位設定ブロックB30に接続され、信号線W604を介し機能ブロック動作頻度検出ブロックB40に接続され、信号線W602、W605を介し各BIST回路B20~B22に接続され、信号線W802を介しスタンバイコントローラB80に接続され、信号線W608を介して外部に接続されている。BIST制御ブロックB61は、BIST実行回数カウンタB611を有しており、信号線W600~W602を介して、BIST制御メモリB50、BIST実行選択ブロックB62、及び各BIST回路B20~B22に夫々接続されている。BIST制御ブロックB61は、BIST制御メモリB50からBIST制御命令を読み出し、BIST実行選択ブロックB62からBIST対象ブロックおよび実行順番を読み出し、読み出したBIST制御命令、BIST対象ブロック、及び実行順番に基づいて、BIST回路B20~B22の制御を行なう。また、BIST実行回数カウンタB611は、各機能ブロックB10~B12においてBIST実行済の回数をカウントするためのカウンタである。BIST実行選択ブロックB62は、信号線W603を介してBIST実行優先順位設定ブロックB30に接続され、信号線W604を介して機能ブロック動作頻度検出ブロックB40に接続されている。BIST実行選択ブロックB62は、優先順位設定メモリB31~B33から信号線W603を介して各機能ブロックB10~B12に対応したBIST優先順位設定値PRIを読み出し、動作検出回路B41~B43および動作頻度格納メモリB411、421,B431から信号線W604を介して各機能ブロックB10~B12に対応した動作頻度値Rcntを読み出す。BIST実行選択ブロックB62は、優先順位設定手段及び実行可能回数算出手段の一具体例であり、読み出したBIST優先順位設定値PRI、および、動作頻度値Rcntに基づいて、BISTの実行基準となるBIST実行優先順位を算出し、低消費電力モードから通常モードへの復帰時間を制限する復帰時間制限値に基づいてBIST実行可能回数を算出する。さらに、BIST実行選択ブロックB62は、算出したBIST実行優先順位に従って各機能ブロックB10~B12のBISTを実行するようBIST制御ブロックB61に対して制御情報を出力する。なお、このBIST実行基準には、BISTの時間制限だけではなく、各機能ブロックの動作頻度値も含められる。このため、動作頻度値の低い機能ブロックを実行しないようにBIST実行基準を設定してもよい。また、BIST実行基準に制限が無い場合は、BIST実行優先順位の高い機能ブロックから低い機能ブロックまでを順に全ての機能ブロックの自己診断の実行を行ってもよい。BIST結果判定ブロックB63は、信号線W605を介して各BIST回路B20~B22に接続され、信号線W606を介してBIST制御メモリB50に接続され、信号線W607を介してBIST結果出力ブロックB64に接続されている。BIST結果判定ブロックB63は、各BIST回路B20~B22から各BIST診断結果を読込み、BIST制御メモリB50からBIST診断の期待値を読込み、読み込んだBIST診断結果とその期待値とを比較することで各BIST診断結果の判定を行なう。BIST結果出力ブロックB64は、信号線W607を介してBIST結果判定ブロックB63と接続されており、BIST結果判定ブロックB63からの診断結果を、信号線W608を介して外部に対して出力する。レジスタ値退避ブロックB70は、各機能ブロックB10~B12に対応したレジスタ値退避メモリB71~B73を搭載しており、信号線W700~W702を介して各機能ブロックB10~B12に接続されている。レジスタ値退避ブロックB70は、MCUの低消費電力モード導入時に、各機能ブロックB10~B12のレジスタ値の退避処理を行なう。スタンバイコントローラB80は、MCUの低消費電力モードの制御を司るブロックである。スタンバイコントローラB80は、信号線W800を介して各機能ブロックB10~B12に接続され、信号線W801を介してレジスタ値退避ブロックB70に接続され、信号線W802を介してBISTコントローラB60と接続されており、BISTコントローラB60からBIST動作停止信号を受信する。さらに、スタンバイコントローラB80は、信号線W803を介してCPUB100と接続され、信号線W902を介してレジスタブロックB90と接続されている。レジスタブロックB90は、第1記憶手段の一具体例であり、動作頻度累積設定レジスタB91と、起動時間制限指定レジスタB92と、電源遮断設定レジスタB93と、を搭載するブロックである。レジスタブロックB90は、信号線W900を介してBISTコントローラB60に接続され、BIST制御に必要なレジスタ値をBISTコントローラB60に対して転送する。また、レジスタブロックB90は、信号線W901介してCPUB100に接続され、CPUB100は、レジスタブロックB90における書込み読出しを行なう。さらに、レジスタブロックB90は、信号線W902を介してスタンバイコントローラB80に接続されている。動作頻度累積設定レジスタB91は、各機能ブロックB10~B12のBIST実行後に、対応する各動作頻度格納メモリの値を維持するか、或いは、初期化を行なうかを設定するためのレジスタである。例えば、動作頻度累積設定レジスタB91を有効に設定した場合、電源投入から累積した各機能ブロックB10~B12の動作頻度値に基づいて、BISTを実行することができる。一方、動作頻度累積設定レジスタB91を無効に設定した場合、消費電力モード移行前の各機能ブロックB10~B12の動作頻度値に基づいて、BISTを実行することができる。起動時間制限指定レジスタB92は、MCUの低消費電力モードから通常モードへの復帰時間の制限値以下、復帰時間制限値と称す、及びその復帰時間制限値の有無を設定するためのレジスタである。電源遮断設定レジスタB93は、MCUの低消費電力モード時に各機能ブロックB10~B12の電源遮断の有効及び無効の設定を行なうためのレジスタである。CPUB100は、中央演算処理装置であり、MCUの総合的な処理を行なうためのブロックである。CPUB100は、信号線W901介してレジスタブロックB90に接続され、信号線W803を介してスタンバイコントローラB80に接続され、信号線W300を介して機能ブロック動作頻度検出ブロックB40に接続され、信号線W301を介してBIST実行優先順位設定ブロックB30に接続されている。次に、本実施の形態1に係る半導体集積回路の自己診断装置による自己診断方法を詳細に説明する。図2は、本実施の形態1に係る半導体集積回路の自己診断装置における処理フローの一例を示すフローチャートである。例えば、電源投入もしくはシステムリセットが行なわれると、各優先順位設定メモリB31~B33のBIST優先順位設定値に1が設定され、及び各動作頻度格納メモリB411~B431の動作頻度値に1が設定され初期化が行われるステップF10。なお、BIST優先順位設定値には、例えば、1が設定されているが、これに限らず0以外の任意の値を設定することができる。そして、レジスタブロックB90内部の動作頻度累積設定レジスタB91、起動時間制限設定レジスタB92、及び電源遮断設定レジスタB93が初期化される。次に、BISTコントローラB60が起動し、自己診断モードへ移行するステップF20。同時に、BIST制御ブロックB61に内蔵されるBIST実行回数カウンタB611に0が設定され初期化される。その後、BIST実行選択ブロックB62は、上記ステップF10において初期化された各機能ブロックB10~B12に対応する優先順位設定メモリB31~B33から信号線W603を介して各機能ブロックB10~B12に対応したBIST優先順位設定値PRIを読み出し、信号線W604を介して動作頻度格納メモリB411~B431から各機能ブロックB10~B12に対応した動作頻度値Rcntを読み出し、起動時間制限指定レジスタB92から信号線W900を介して低消費電力モードからの復帰時間制限値Rtimeを読み出す。BIST実行選択ブロックB62は、これら読み出したBIST優先順位設定値PRIと動作頻度値Rcntとに基づき下記式1を用いて、BIST優先順位PRIORITYを算出し、算出したBIST優先順位PRIORITYに基づいてBIST実行優先順番を決定するステップF21。例えば、BIST実行選択ブロックB62は、算出したBIST優先順位PRIORITYが大きいほど、そのBIST実行優先順位を早く設定する。また、BIST実行選択ブロックB62は、下記式2乃至式4を用いて、BIST実行可能回数RUNmaxを算出する。ここで、BIST実行選択ブロックB62における上記処理に関して詳細に説明する。BIST優先順位PRIORITYと、動作頻度Rcntと、優先順位設定値PRIとの関係は、下記式1に示すようになっている。PRIORITY=Rcnt×PRI式1さらに、BIST実行可能回数RUNmaxを、BIST逐次実行可能回数SERImax、及び、BIST並列実行可能回数PARAmaxに基づいて、下記式2を用いて求めることが出来る。RUNmax=SERImax×PARAmax式2このBIST逐次実行可能回数SERImax及びBIST並列実行可能回数PARAmaxは、低消費電力モードから通常モードへの復帰時間制限値をRtime、機能ブロックBIST実行最大時間をBtime、半導体集積回路の最大消費電流規定値をCImax、BIST動作最大消費電流値をBImaxとしたとき、式3及び式4を用いて算出できる。SERImax=Rtime/Btime式3PARAmax=CImax/BImax式4なお、上記式3及び式4において、低消費電力モードから通常モードへの復帰時間制限値Rtime、機能ブロックBIST実行最大時間Btime、半導体集積回路の最大消費電流規定値CImax、及びBIST動作最大消費電流値BImaxは、例えば、製品設計時にBIST実行選択ブロックB62内に固定値として格納されている。BIST制御ブロックB61は、上記ステップF21において決定したBIST実行優先順位に従い、次にBISTを実行する機能ブロック以下、機能ブロックnと称すに対応した各BIST回路B20~B22に対して信号線W602介して制御命令を送信し、機能ブロックnのBISTを実行させるステップF30。その際、BIST制御ブロックB61は、BIST実行回数カウンタB611の値をインクリメント1する。BIST結果判定ブロックB63は、上記ステップF30において実行した機能ブロックnに対応したBIST回路B20~B22から、自己診断結果を、信号線W605を介して取り込み、その機能ブロックnの自己診断結果が正常であるか否かを判断するステップF31。BIST結果判定ブロックB63が、その自己診断結果が正常であると判断したときステップF31のYES、CPUB100は、動作頻度累積設定レジスタB91の累積設定値を、信号線W901を介して読み込み、その累積設定値が有効および無効のいずれであるかを判断するステップF32。一方、BIST結果判定ブロックB63が、その自己診断結果が異常であると判断したときステップF31のNO、下記ステップF40に移行する。CPUB100は、動作頻度累積設定レジスタB91の累積設定値が無効と判断したときステップF32のNO、信号線W300を介して機能ブロックnに対応する動作頻度格納メモリB411~B431の値に0を設定し初期化を行ないステップF33、下記ステップF34に移行する。一方、CPUB100は、動作頻度累積設定レジスタB91の累積設定値が有効と判断したときステップF32のYES、下記ステップF34に移行する。CPUB100は、信号線W901を介して起動時間制限指定レジスタB92の値を読込み、低消費電力モードから通常モードへ復帰する際の起動時間制限の有効及び無効を判断しステップF34、その制限時間を判別する。CPUB100により、起動時間制限が有ると判断されたときステップF34のYES、BIST制御ブロックB61は、BIST実行回数カウンタB611の値BIST実行済回数が、BIST実行選択ブロックB62にて算出されたBIST実行可能回数BISTが並列実行されている場合はBIST逐次実行可能回数以内か否かを判定するステップF35。一方、CPUB100により、起動時間制限が無いと判断されたときステップF34のNO、BIST制御ブロックB61は、BIST実行回数カウンタB611の値BIST実行済回数が、BIST対象機能ブロックの総数以内か否かを判定するステップF36。BIST制御ブロックB61は、BIST実行回数カウンタB611の値がBIST実行可能回数以内であると判定したときステップF35のYES、上記ステップF30の処理に戻り、次の優先順位の機能ブロックB10~B12の自己診断が行われる。一方、BIST制御ブロックB61は、BIST実行回数カウンタB611の値がBIST実行可能回数以内でないと判定したときステップF35のNO、下記ステップF50の処理に移行する。BIST制御ブロックB61は、BIST実行回数カウンタB611の値が、BIST対象機能ブロックの総数以内であると判定したときステップF36のYES、上記ステップF30の処理に戻り、次の優先順位の機能ブロックB10~B12の自己診断が行われる。一方、BIST制御ブロックB61は、BIST実行回数カウンタB611の値が、BIST対象の機能ブロックB10~B12の総数を超えていると判定したときステップF36のNO、下記ステップF50の処理に移行する。ステップF40において、BIST結果出力ブロックB64は、信号線W608を介してエラー信号を外部に対して出力し、本処理を終了させる。ステップF50において、BISTコントローラB60は、スタンバイコントローラB80に対して、信号線W802を介してBIST動作停止信号を送信し、自己診断モードから通常モードへ移行する。その際、BISTコントローラB60は、必要に応じて各機能ブロックB10~B12のレジスタ値を、レジスタ値退避ブロックB70から復帰させる。BISTコントローラB60が通常モードに移行すると、各機能ブロックB10~B12の動作がユーザープログラムに従って開始される。以下、ステップF51からステップF70までが通常モードの処理であり、低消費電力モードへ移行するまで、これらステップが繰り返し実行される。まず、CPUB100は、BIST実行優先順位設定ブロックB30内の各優先順位設定メモリB31~B33に対して、信号線W300を介して、BIST実行選択ブロックB62により算出された優先順位設定値の設定を行なうステップF51。次に、CPUB100は、動作頻度累積設定レジスタB91、起動時間制限指定レジスタB92、及び電源遮断設定レジスタB93を、ユーザープログラムに従って設定を行なうステップF52。その後、機能ブロック動作頻度検出ブロックB40において、機能ブロックB10~B12以下、機能ブロックnと称すに対応する動作検出回路B41~B43が、機能ブロックnが動作を開始する際の動作開始トリガの検出を行なうステップF60。ここで、動作開始トリガとは、機能ブロックnの各動作マクロの動作を開始する際に必要となるトリガのことであり、例えば、特定レジスタへの書込み、割込み、などの各種開始トリガを含むものとする。各動作検出回路B41~B43が、動作開始トリガを検出するとステップF60のYES、機能ブロックnに対応する動作頻度格納メモリB411~B431の値をインクリメントし、機能ブロックnの動作数のカウントを行なうステップF61。一方、各動作検出回路B41~B43が、動作開始トリガを検出しないときステップF60のNO、下記ステップF70の処理に移行する。機能ブロックnは、夫々、通常動作を開始するステップF62。スタンバイコントローラB80は、CPUB100から送信される低消費電力モードへ移行するための命令を受信し低消費電力モードへ移行するか、通常モードを維持するかの判定を行なうステップF70。スタンバイコントローラB80は、低消費電力モードへ移行すると判定したときステップF70のYES、CPUB100の命令に従って低消費電力モードに移行し、電源遮断レジスタB93の値を読込み、電源遮断の設定が有効であるか否かを判定するステップF71。一方、スタンバイコントローラB80は、低消費電力モードへ移行しないと判定したときステップF70のNO、上記ステップF52の処理に戻る。この場合、スタンバイコントローラB80は、通常モードを維持し、ステップF60~ステップF62の処理を繰り返し、機能ブロック動作頻度検出ブロックB40は各機能ブロックB10~B12の動作頻度値を検出し続ける。スタンバイコントローラB80は、電源遮断の設定が有効であると判定したときステップF71のYES、各機能ブロックB10~B12のレジスタ値の退避をレジスタ退避ブロックB70に対して行い、不定伝播防止処理などの電源遮断に必要な処理を行うステップF72。一方、スタンバイコントローラB80は、電源遮断の設定が無効であると判定したときステップF71のNO、各機能ブロックB10~B12のレジスタ値の退避をレジスタ退避ブロックB70対して行うステップF73。スタンバイコントローラB80は、MCUを低消費電力モードへ移行させる処理を行なうステップF74。その際、スタンバイコントローラB80は、電源遮断設定レジスタB93の設定が電源遮断の有効と判断した場合、各機能ブロックB10~B12の電源遮断を行なう。スタンバイコントローラB80は、低消費電力モードから通常モードへ復帰させるか、低消費電力モードを維持するかの判定を行なうステップF80。スタンバイコントローラB80は、低消費電力モードから通常モードへ復帰させると判定したときステップF80のYES、電源遮断レジスタB93の値を読込み、電源遮断の設定が有効であるか否かを判定するステップF81。スタンバイコントローラB80は、電源遮断の設定が有効であると判定したときステップF81のYES、不定伝播防止処理の解除電源遮断の処理を行なうステップF82。そして、レジスタ値退避ブロックB70は、上記ステップF72もしくはステップF73において退避したレジスタ値を各機能ブロックB10~B12のレジスタに格納し直し、上記ステップF20へ戻り自己診断モードへ移行する。なお、ステップF20以降における2回以降の処理は、BIST実行優先順位設定ブロックB30にBIST優先順位設定値が設定され、機能ブロック動作頻度検出ブロックB40に各機能ブロックB10~B12の動作頻度値が格納されている。このため、通常モードの動作頻度値に応じてBIST実行順番およびBIST対象の機能ブロックB10~B12が変更される。そして、レジスタブロックB90には、各種設定値が格納されている為、BIST実行の設定および消費電力モードへ移行方法が変更される。この処理はMCUの電源が遮断されるまで継続して行なわれる。以上、本実施の形態1に係る半導体集積回路の自己診断装置1において、通常モード中に使用している各機能ブロックB10~B12の動作頻度値を測定し、その動作頻度値の高い順に各機能ブロックB10~B12のBIST実行の実行順位を決定し、低消費電力モードから通常モードへの復帰時間制限値以内に実行可能な機能ブロックB10~B12のみの自己診断を行なう。このように、復帰時間制限値以内において、故障の発生し易い動作頻度値の高い機能ブロックB10~B12から順次自己診断を行うことで、各機能ブロックB10~B12の自己診断時間の増加を抑え、効率的な半導体集積回路の自己診断が可能となる。さらに、一般的に動作頻度値の高い機能ブロックは、動作頻度値の低い機能ブロックと比較してマイグレーション現象の発生率が高く、故障しやすいのは周知の事実である。そして、ユーザープログラムによれば、動作頻度値が高い機能ブロックの故障は致命的であることが多いため、本発明のように、動作頻度値の高い機能ブロックB10~B12から優先的に自己診断を行うことで、品質を向上させることができる。さらに、時間的制限がなく、毎回すべての機能ブロックB10~B12のBISTを実行が可能な場合においても、故障しやすい機能ブロックB10~B12から診断を行なうため、エラー発生時には早い時間にエラー認識を行うことができる。実施の形態2.図3は、本発明の実施の形態2に係る半導体集積回路の自己診断装置の概略的構成を示すブロック図である。本実施の形態2に係る自己診断装置2は、上記実施の形態1に係る自己診断装置1のBIST実行優先順位設定ブロックB30の優先順位設定メモリB31~B33、及び機能ブロック動作頻度検出ブロックB40の動作頻度格納メモリB411~B431を、外部メモリB110に変更し、この外部メモリB110を制御する外部メモリコントローラB120を更に備えることを特徴とする。機能ブロック動作頻度検出ブロックB40は、各機能ブロックB10~B12に対応した動作検出回路B41~B43を搭載しており、信号線W400~W402を介して各機能ブロックB10~B12に接続され、信号線W1202を介して外部メモリコントローラB120に接続されている。外部メモリB110は、例えば、MCU外部に実装されたメモリであり、優先順位設定メモリB111と、動作頻度格納メモリB112とを有している。外部メモリコントローラB120は、例えば、MCU外部とのメモリインターフェースブロックである。外部メモリコントローラB120は、信号線W1201を介してBIST実行優先順位設定ブロックB30に接続され、信号線W1202を介して機能ブロック動作頻度検出ブロックB40に接続されている。外部メモリコントローラB120は、信号線W1101を介して外部メモリB110に接続されており、信号線W1101を介して外部メモリB110に情報を格納し、若しくは情報の読み出しを行なう。外部メモリコントローラB120は、信号線W301を介してCPUB100にも接続されており、CPUB100から外部メモリコントローラB120を介して外部メモリB110への読み書きも可能となっている。なお、本実施の形態2において、他の構成は上記実施の形態1と略同一であるため、詳細な説明は省略する。図4は、本実施の形態2に係る半導体集積回路の自己診断装置における処理フローの一例を示すフローチャートである。まず、本実施の形態2において、上記実施の形態1と異なる処理内容について、詳細に説明する。ステップF21において、BIST実行選択ブロックB62は、ステップF10において初期化された各機能ブロックB10~B12に対応する優先順位設定メモリB111のBIST実行優先順位設定値PRI、および、動作頻度格納メモリB112の動作頻度値Rcntを、外部メモリコントローラB120、信号線W1201およびW1202を介して読み出し、その読み出した値に基づいてBIST実行優先順位を決定する。ステップF51において、CPUB100は、BIST実行優先順位設定ブロックB30内の外部メモリB110に対して、外部メモリコントローラB120及び信号線W1101を介して、BIST優先順位の設定を行なう。ステップF61において、機能ブロック動作頻度検出ブロックB40は、信号線W1202を介し外部メモリコントローラB120に各機能ブロックnの動作頻度状況を伝達し、外部メモリコントローラB120は、信号線W1101を介して外部メモリB110の動作頻度格納メモリB112の値をインクリメントする。本実施の形態2において、他の処理は、上記実施の形態1の処理と略同一であるため、詳細な説明は省略する。以上、本実施の形態2に係る半導体集積回路の自己診断装置において、BIST実行優先順位設定ブロックB30、および、機能ブロック動作頻度検出ブロックB40の代わりにMCU外の外部メモリB110を使用する事によって、優先順位設定メモリB31~B33および動作検出回路B41~B43の値をMCUの電源投入前に設定する事が可能になる。したがって、低消費電力モードから通常モードへの復帰時のみでなく、電源投入時やリセット時においても本発明の上記効果を奏することができる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、例えば、図2及び図4に示す処理を、CPUにコンピュータプログラムを実行させることにより実現することも可能である。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体nontransitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROM、CD-R、CD-R/W、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumによってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。さらに、上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。付記1複数の機能ブロックと、前記複数の機能ブロックに対して自己診断を夫々行う複数の自己診断手段と、前記各機能ブロックの動作頻度を夫々検出する動作頻度検出手段と、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に基づいて、前記各自己診断手段が前記各機能ブロックの自己診断を行う優先順位を設定する優先順位設定手段と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する実行可能回数算出手段と、を備え、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位と、前記実行可能回数算出手段により算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。付記2付記1記載の自己診断装置であって、前記所定の時間制限を行う時間制限値の有効及び無効を設定する第1記憶手段を更に備え、前記記憶手段に前記時間制限値が有効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、前記実行可能回数算出手段により算出された前記実行可能回数まで、前記各機能ブロックの自己診断を行い、前記記憶手段に前記時間制限値が無効と設定されているとき、前記各自己診断手段は、前記優先順位設定手段により設定された前記優先順位に従って、全ての前記機能ブロックの自己診断を行う、ことを特徴とする自己診断装置。付記3付記1又は付記2記載の自己診断装置であって、優先順位設定手段は、前記動作頻度検出手段により検出された前記機能ブロックの動作頻度が高いほど、該機能ブロックに対する自己診断の優先順位を高く設定する、ことを特徴とする自己診断装置。付記4付記1乃至付記3のうちいずれか記載の自己診断装置であって、前記優先順位設定手段は、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度に前回の優先順位設定値を乗算し、該乗算値に基づいて、前記優先順位を設定する、ことを特徴とする自己診断装置。付記5付記1乃至付記4のうちいずれか記載の自己診断装置であって、前記実行可能回数算出手段は、下記式を用いて前記実行可能回数RUNmaxを算出する、ことを特徴とする自己診断装置。RUNmax=SERImax×PARAmaxSERImax=Rtime/BtimePARAmax=CImax/BImax但し、上記式において、SERImaxを自己診断の逐次実行可能回数、PARAmaxを自己診断の並列実行可能回数、Rtimeを低消費電力モードから通常モードへの復帰時間制限値、Btimeを前記各機能ブロックの自己診断の実行最大時間、CImaxを半導体集積回路の最大消費電流規定値、BImaxを自己診断の動作最大消費電流値とする。付記6付記1乃至付記5のうちいずれか記載の自己診断装置であって、前記時間制限値は、低消費電力モードから通常モードへの復帰時間を制限する復帰時間制限値である、ことを特徴とする自己診断装置。付記7付記1乃至付記6のうちいずれか記載の自己診断装置であって、前記動作頻度検出手段により検出された前記各機能ブロックの動作頻度を記憶する第2記憶手段と、前記優先順位設定手段により設定された前記各機能ブロックの自己診断を行う優先順位を記憶する第3記憶手段と、を更に備えることを特徴とする自己診断装置。付記8複数の機能ブロックの動作頻度を夫々検出するステップと、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定するステップと、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出するステップと、前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行うステップと、を含む、ことを特徴とする自己診断装置の自己診断方法。付記9複数の機能ブロックの動作頻度を夫々検出する処理と、前記検出された各機能ブロックの動作頻度に基づいて、前記各機能ブロックに対して自己診断を行う優先順位を設定する処理と、所定の時間制限を行う時間制限値に基づいて、前記各機能ブロックの自己診断の実行が可能な実行可能回数を算出する処理と、前記設定された優先順位と、前記算出された前記実行可能回数と、に基づいて、前記各機能ブロックの自己診断を行う処理と、をコンピュータに実行させる、ことを特徴とする自己診断装置のプログラム。"