(57)【要約】【課題】半導体装置が正常に動作可能な周囲温度を低く規定することができる半導体装置及び半導体装置の制御方法を提供する。【解決手段】マイクロコントローラ１００は、論理ブロック１１０と、ジャンクション温度を測定する温度センサ１２０と、所定の電力を消費する電力消費回路１３０と、温度センサ１２０で測定された温度が論理ブロック１１０の動作可能な所定の下限温度未満とならないよう、電力消費回路１３０による電力の消費を制御する制御部１４０とを有する。【選択図】図１
2020047048.tif 000002
【特許請求の範囲】
【請求項１】
論理ブロックと、
ジャンクション温度を測定する温度センサと、
所定の電力を消費する電力消費回路と、
前記温度センサで測定された温度が前記論理ブロックの動作可能な所定の下限温度未満とならないよう、前記電力消費回路による電力の消費を制御する制御部と
を有する半導体装置。
【請求項２】
前記電力消費回路を複数備え、
前記制御部は、前記温度センサで測定された温度と前記下限温度との差に応じた数の前記電力消費回路で電力の消費を行なうよう制御する
請求項１に記載の半導体装置。
【請求項３】
前記温度センサの出力に基づいて、前記温度センサに異常がないかを診断する診断部をさらに有する
請求項１に記載の半導体装置。
【請求項４】
前記診断部は、前記温度センサで測定された温度が、前記電力消費回路の動作状態に応じて変動するか否かを判定することにより、前記温度センサに異常がないかを診断する
請求項３に記載の半導体装置。
【請求項５】
前記電力消費回路を複数備え、
前記制御部は、前記診断部による診断動作が行なわれる間、電力を消費させる前記電力消費回路の数を１以上とする設定を、数の変更を伴って複数回実施し、
前記診断部は、前記制御部による数の設定が実施される度に、前記温度センサに異常がないかを診断する
請求項４に記載の半導体装置。
【請求項６】
前記制御部は、前記診断部による診断が行なわれる間、電力を消費させる前記電力消費回路の数を増やすよう数の変更を行なう
請求項５に記載の半導体装置。
【請求項７】
前記診断部は、電力を消費させる前記電力消費回路の数を現在の数よりも増加させたとしたら前記ジャンクション温度が所定の上限温度を超えるか否かを前記温度センサで測定された温度に基づいて判定し、前記ジャンクション温度が前記所定の上限温度を超えると判定した場合、診断動作を終了する
請求項６に記載の半導体装置。
【請求項８】
前記診断部は、前記半導体装置の起動時に診断を行なう
請求項３に記載の半導体装置。
【請求項９】
前記電力消費回路が、前記ジャンクション温度の上昇とは別の用途にも用いられる
請求項１に記載の半導体装置。
【請求項１０】
前記論理ブロックに含まれる回路の動作が一時的に停止する間、前記電力消費回路で所定の電力を消費するよう制御する変動制御部をさらに有する
請求項９に記載の半導体装置。
【請求項１１】
ジャンクション温度を測定し、
測定された温度が論理ブロックの動作可能な所定の下限温度未満とならないよう、所定の電力を消費する電力消費回路による電力の消費を制御する
半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及び半導体装置の制御方法に関し、例えば半導体装置の動作保証範囲についての技術に関する。
【背景技術】
【０００２】
近年、例えば自動車業界を中心に、より高い信頼性や機能安全に対する要求が高まっている。このため、半導体装置においても、半導体装置が動作可能な温度の拡張が求められている。
【０００３】
特許文献１は、パワートランジスタを備えたリニアレギュレータ回路を用いて発光ダイオードへの電源供給を制御するとともにパワートランジスタの発熱が過大になるのを防止することが可能な発光ダイオード表示装置を開示している。
【０００４】
また、関連する技術として、特許文献２に記載された技術がある。特許文献２は、クロックサイクルに同期する回路による電力消費状態の相違に起因する電源電圧の変動を容易に抑制するための電流消費回路を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１３８９１６号公報
【特許文献２】特開２００９−４３０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された技術では、発熱が過度に高くなることは防止できるが、ジャンクション温度が過度に低くなることを防止できない。周囲温度が低いためにジャンクション温度が低すぎる場合、半導体装置内の論理ブロックの正常な動作を保証することができなくなる恐れがある。したがって、半導体装置が正常に動作可能な周囲温度を低く規定することができる技術が求められている。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、温度センサで測定されたジャンクション温度が論理ブロックの動作可能な所定の下限温度未満とならないよう、電力消費回路による電力の消費を制御する制御部を有する。
【発明の効果】
【０００９】
前記一実施の形態によれば、前記一実施の形態にかかる技術を用いない場合に比べて半導体装置が正常に動作可能な周囲温度を低く規定することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるマイクロコントローラの構成の一例を示すブロック図である。
【図２】電力消費回路の構成の一例を示す回路図である。
【図３】実施の形態１にかかるマイクロコントローラにおけるジャンクション温度の制御に関する動作の一例を示すフローチャートである。
【図４】実施の形態１にかかるマイクロコントローラの状態と周囲温度との関係を示すグラフである。
【図５】実施の形態２にかかるマイクロコントローラの構成の一例を示すブロック図である。
【図６】実施の形態２にかかるマイクロコントローラにおけるジャンクション温度の制御に関する動作の一例を示すフローチャートである。
【図７】実施の形態１にかかるマイクロコントローラの状態の時間推移について示すグラフである。
【図８】実施の形態２にかかるマイクロコントローラの状態の時間推移について示すグラフである。
【図９】実施の形態３にかかるマイクロコントローラの構成の一例を示すブロック図である。
【図１０】実施の形態３にかかるマイクロコントローラにおける温度センサの診断動作の一例を示すフローチャートである。
【図１１】実施の形態３にかかるマイクロコントローラの状態の時間推移について示すグラフである。
【図１２】実施の形態４にかかるマイクロコントローラの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、重複説明は適宜省略されている。
【００１２】
＜実施の形態１＞
図１は、実施の形態１にかかるマイクロコントローラ１００の構成の一例を示すブロック図である。なお、本実施の形態及び後述する各実施の形態では、半導体装置の一例として、マイクロコントローラを挙げて説明するが、本開示にかかる技術がマイクロコントローラ以外の半導体装置に用いられてもよいことは言うまでもない。図１に示すように、マイクロコントローラ１００は、論理ブロック１１０と、温度センサ１２０と、電力消費回路１３０と、制御部１４０とを有する。
【００１３】
ここで、温度センサ１２０、電力消費回路１３０、及び制御部１４０の正常な動作が可能な温度範囲の下限（以下、下限温度と称す）は、いずれも論理ブロック１１０の下限温度よりも低い。すなわち、温度センサ１２０、電力消費回路１３０、及び制御部１４０についての３つの下限温度のうち、最も高い値をＴとし、論理ブロック１１０の下限温度をＴｌｂとした場合、Ｔ＜Ｔｌｂが成り立っている。
【００１４】
ところで、一般的に、マイクロコントローラ１００のジャンクション温度Ｔｊは、マイクロコントローラの周囲温度Ｔａ以上となっている。論理ブロック１１０が動作していない場合、論理ブロック１１０からの発熱がないため、ジャンクション温度Ｔｊは周囲温度Ｔａとほぼ等しい。マイクロコントローラ１００の論理ブロック１１０が動作すると、論理ブロック１１０における発熱により、ジャンクション温度Ｔｊはその発熱に応じて、周囲温度Ｔａよりも高くなる。
【００１５】
このため、本開示にかかる技術を用いない場合、マイクロコントローラ１００の正常な動作が保証される周囲温度Ｔａの下限は、Ｔｌｂとなる。しかしながら、本開示にかかる技術を用いた場合、マイクロコントローラ１００の正常な動作が保証される周囲温度Ｔａの下限は、より低い温度であるＴとすることができる。
【００１６】
論理ブロック１１０は、論理演算を行なう回路のブロックである。例えば、論理ブロック１１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサであってもよい。
【００１７】
温度センサ１２０は、マイクロコントローラ１００のジャンクション温度Ｔｊを測定するセンサ回路である。例えば、温度センサ１２０は、温度に依存して抵抗値が変化する抵抗素子を含んで構成される。そのような抵抗素子として、例えばバイポーラトランジスタ素子又はダイオード素子が用いられる。温度センサ１２０は、抵抗素子の抵抗値が温度に応じて変化することで、温度に依存した電圧を出力する。
【００１８】
電力消費回路１３０は、所定の電力を消費する回路である。電力消費回路１３０は、制御部１４０からの制御により電力の消費が指示されると、所定の電力を消費し、それに伴い発熱する。より詳細には、電力消費回路１３０は、制御部１４０から、電力の消費を指示する信号が入力されると、電力消費回路１３０において所定の負荷電流を流すことで、発熱する。なお、電力消費回路１３０の具体的な構成例については、図２を参照して説明する。
【００１９】
制御部１４０は、温度センサ１２０で測定された温度が論理ブロック１１０の動作可能な所定の下限温度未満とならないよう、電力消費回路１３０による電力の消費を制御する回路である。具体的には、制御部１４０は、予め定められた測定周期でジャンクション温度を取得し、取得したジャンクション温度が論理ブロック１１０の下限温度よりも低い場合、電力消費回路１３０に電力の消費を指示する信号を出力する。すなわち、制御部１４０は、取得したジャンクション温度が論理ブロック１１０の下限温度よりも低い場合、電力消費回路１３０をオンする。
【００２０】
また、制御部１４０は、取得したジャンクション温度が所定閾値以上である場合、電力消費回路１３０に電力の消費を中止するよう指示する信号を出力する。すなわち、制御部１４０は、取得したジャンクション温度が所定閾値以上である場合、電力消費回路１３０をオフする。なお、制御部１４０は、ジャンクション温度が論理ブロック１１０の下限温度以上、かつ、所定閾値未満である場合、電力消費回路１３０をオンしてもよい。この所定閾値は、論理ブロック１１０の下限温度以上の温度であればよい。したがって、この所定閾値は、論理ブロック１１０の下限温度であってもよいし、下限温度にマージンを加えた温度であってもよい。
また、制御部１４０は、測定周期をカウントするためのカウンタ回路を備えており、このカウンタ回路が示すカウンタ値が測定周期を超えると、再度、電力消費回路１３０のオンオフの制御を行なう。
【００２１】
また、制御部１４０は、電力消費回路１３０を用いた温度制御を終了することを指示する信号を受信した場合、電力消費回路１３０を用いた温度制御を終了する。この信号は、例えば、動作を開始した論理ブロック１１０から出力されてもよい。
【００２２】
図２は、電力消費回路１３０の構成の一例を示す回路図である。図２に示すように、電力消費回路１３０は、抵抗１３１と、ｎチャネルＭＯＳトランジスタ（ｍｅｔａｌ−ｏｘｉｄｅ−ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ｆｉｅｌｄ−ｅｆｆｅｃｔ  ｔｒａｎｓｉｓｔｏｒ）１３２と、インバータ１３３とを有する。
【００２３】
電力消費回路１３０には、電源電圧Ｖｄｄが印加されており、制御部１４０からの制御信号Ｃに応じて、抵抗１３１に電流が流れる第１の状態と、抵抗１３１に電流が流れない第２の状態とが切替えられる。なお、制御信号Ｃは、上述した電力の消費を指示する信号に相当する。インバータ１３３からの出力がｎチャネルＭＯＳトランジスタ１３２のゲートに入力され、ｎチャネルＭＯＳトランジスタ１３２がオン状態になると、抵抗１３１に電流が流れ、発熱する。
【００２４】
なお、図２に示した構成は、電力消費回路１３０の一例であり、電力消費回路１３０の構成はこれに限られない。電力消費回路１３０は、例えば、抵抗などの発熱素子を備えることにより、電力を消費する回路であればよい。
【００２５】
次に、マイクロコントローラ１００におけるジャンクション温度の制御に関する動作について説明する。図３は、マイクロコントローラ１００におけるジャンクション温度の制御に関する動作の一例を示すフローチャートである。以下、図３に沿って、マイクロコントローラ１００の動作について説明する。なお、図３に示す温度制御の処理は、例えば、マイクロコントローラ１００の起動時に行なわれるが、他の予め定められたタイミングで行なわれてもよい。
【００２６】
ステップＳ１００において、測定周期及びジャンクション温度の下限を設定する。なお、設定されるジャンクション温度の下限は、上述した通り、論理ブロック１１０の下限温度、すなわち論理ブロック１１０の正常な動作が可能な温度範囲の下限である。例えば、マイクロコントローラ１００に設けられた不揮発性メモリなどの記憶回路に記憶された所定の測定周期及び所定の下限温度を読み込むことで、これらの設定が行なわれる。下限温度は、論理ブロック１１０を製造するために用いられた半導体プロセス、論理ブロック１１０の具体的構成等に基づいて、予め規定される温度である。ステップＳ１００の後、処理はステップＳ１０１に移行する。
【００２７】
ステップＳ１０１において、ジャンクション温度の測定が行なわれる。すなわち、制御部１４０は、温度センサ１２０により測定されたマイクロコントローラ１００のジャンクション温度を取得する。そして、制御部１４０は、取得した温度がステップＳ１００で設定された下限温度以上であるかを判定する。取得した温度が下限温度未満である場合、処理はステップＳ１０２へ移行し、取得した温度が下限温度以上である場合、処理はステップＳ１０３へ移行する。
【００２８】
ステップＳ１０２において、制御部１４０は、電力消費回路１３０をオンする。これにより、電力消費回路１３０が発熱する。また、制御部１４０は、カウンタのカウント値ｔをリセットする。その後、処理はステップＳ１０４へ移行する。
【００２９】
ステップＳ１０３において、制御部１４０は、電力消費回路１３０をオフする。また、制御部１４０は、カウンタのカウント値ｔをリセットする。その後、処理はステップＳ１０４へ移行する。
【００３０】
ステップＳ１０４において、制御部１４０は、ステップＳ１００で設定された測定周期が経過したか否かを判定する。すなわち、制御部１４０は、カウント値ｔが測定周期を超えたか否かを判定する。測定周期が経過すると（ステップＳ１０４でＹｅｓ）、処理はステップＳ１０５へ移行する。
【００３１】
ステップＳ１０５において、制御部１４０は、温度制御を終了することを指示する信号を受信したか否かを確認する。温度制御を終了することを指示する信号を受信した場合、温度制御を終了し、受信していない場合、処理はステップＳ１０１に戻る。
【００３２】
図４は、マイクロコントローラ１００の状態と周囲温度との関係を示すグラフである。図４において、上段に示すグラフは、周囲温度Ｔａと電力消費回路１３０の駆動電流の関係を示すグラフである。また、図４において、下段に示すグラフは、周囲温度Ｔａとジャンクション温度Ｔｊの関係を示すグラフである。
【００３３】
図４において、周囲温度Ｔａが低すぎるために電力消費回路１３０によるジャンクション温度の上昇が必要とされる温度領域が温度領域Ｓ１として示されている。これに対し、電力消費回路１３０によるジャンクション温度の上昇がなくてもよい温度領域が温度領域Ｓ２として示されている。
【００３４】
温度領域Ｓ１では、電力消費回路１３０がオンされ、電力消費回路１３０には駆動電流Ｉｌｏａｄが流れる（図４の上段のグラフ参照）。すなわち、抵抗１３１に駆動電流Ｉｌｏａｄが流れる。温度領域Ｓ１では、ジャンクション温度が論理ブロック１１０の下限温度Ｔｌｂ以上を保つように、制御部１４０は、電力消費回路１３０のオンオフを制御する。これにより、温度領域Ｓ１では、ジャンクション温度Ｔｊは、図４の下段のグラフのようになる。したがって、論理ブロック１１０が正常に動作するための周囲温度の保障範囲を拡張することができる。
【００３５】
これに対し、温度領域Ｓ２では、周囲温度Ｔａが十分に高いため、周囲温度と論理ブロック１１０の自己発熱による温度上昇とにより、ジャンクション温度Ｔｊは、下限温度Ｔｌｂ以上となるため、電力消費回路１３０はオフされ続ける。
【００３６】
なお、ジャンクション温度Ｔｊは、以下の式１により表される。
【００３７】
（式１）  Ｔｊ＝Ｔａ＋θｊａ×（Ｉｄｄ＋Ｉｌｏａｄ）×Ｖｄｄ
【００３８】
ここで、θｊａはマイクロコントローラ１００のパッケージの熱抵抗であり、Ｉｄｄはマイクロコントローラ１００の動作電流、すなわち論理ブロック１１０の動作電流であり、Ｖｄｄはマイクロコントローラ１００の電源電圧である。
【００３９】
以上、実施の形態１について説明した。マイクロコントローラ１００では、ジャンクション温度が論理ブロック１１０の動作可能な温度下限未満だった場合に電力消費回路１３０をオンすることにより、その消費電力とマイクロコントローラ１００のパッケージ熱抵抗に応じてマイクロコントローラ１００が発熱する。このため、強制的にジャンクション温度が論理ブロック１１０の動作可能な温度下限以上となる。これにより、マイクロコントローラ１００の動作が保証される周囲温度の下限を、上述した構成を備えない場合に比べて、下げることができる。また、この機能により、ロジック速度（例えば、論理ブロック１１０の動作周波数）が低温側で劣化するような半導体プロセスを用いて製造されるマイクロコントローラにおいて、動作保障のための温度範囲の制約に起因した論理ブロック１１０の設計の難易度を低減することができる。
【００４０】
＜実施の形態２＞
次に、実施の形態２について説明する。図５は、実施の形態２にかかるマイクロコントローラ２００の構成の一例を示すブロック図である。マイクロコントローラ２００は、電力消費回路１３０を複数備えるとともに、制御部１４０が制御部１５０に置き換わった点で、実施の形態１にかかるマイクロコントローラ１００と異なっている。制御部１５０は、これら複数の電力消費回路１３０のオンオフを制御する点で、制御部１４０と異なっている。以下、実施の形態１と異なる点について説明し、実施の形態１と同様な点については説明を省略する。
【００４１】
本実施の形態にかかる制御部１５０は、温度センサ１２０で測定された温度と論理ブロック１１０の下限温度との差に応じた数の電力消費回路１３０で電力の消費を行なうよう制御する。具体的には、制御部１５０は、温度センサ１２０で測定された現在のジャンクション温度が論理ブロック１１０の下限温度よりも低いほど、より多くの電力消費回路１３０をオンする。つまり、例えば、制御部１５０は、測定されたジャンクション温度が下限温度未満であり、かつ、当該ジャンクション温度と論理ブロック１１０の下限温度との差がＤ１以上Ｄ２未満である場合、Ｎ１個の電力消費回路１３０をオンし、測定されたジャンクション温度が下限温度未満であり、かつ、当該ジャンクション温度と論理ブロック１１０の下限温度との差がＤ２以上である場合、Ｎ２個の電力消費回路１３０をオンする。ただし、Ｄ１＜Ｄ２であり、Ｎ１＜Ｎ２である。
また、制御部１５０は、温度センサ１２０で測定された現在のジャンクション温度が上述した所定閾値以上である場合、全ての電力消費回路１３０をオフする。
【００４２】
図６は、マイクロコントローラ２００におけるジャンクション温度の制御に関する動作の一例を示すフローチャートである。以下、図６に沿って、マイクロコントローラ２００の動作について説明する。なお、図６に示す温度制御の処理は、例えば、マイクロコントローラ２００の起動時に行なわれる。
【００４３】
ステップＳ２００において、図３のステップＳ１００と同様、測定周期及びジャンクション温度の下限を設定する。ステップＳ２００の後、処理はステップＳ２０１に移行する。
【００４４】
ステップＳ２０１において、ジャンクション温度の測定が行なわれる。すなわち、制御部１５０は、温度センサ１２０により測定されたマイクロコントローラ１００のジャンクション温度を取得する。そして、ステップＳ２０１の後、処理はステップＳ２０２に移行する。
【００４５】
ステップＳ２０２において、制御部１５０は、ステップＳ２０１で得られたジャンクション温度と、論理ブロック１１０の下限温度との温度差に応じて動作させる電力消費回路１３０の数を決定する。これにより、現在のジャンクション温度が論理ブロック１１０の下限温度よりも低いほど、より多くの強制的な発熱が行なわれる。なお、制御部１５０は、温度センサ１２０で測定された現在のジャンクション温度が所定閾値以上である場合、全ての電力消費回路１３０をオフする。また、ステップＳ２０２において、制御部１５０は、カウンタのカウント値ｔをリセットする。ステップＳ２０２の後、処理はステップＳ２０３に移行する。
【００４６】
ステップＳ２０３において、図３のステップＳ１０４と同様、制御部１５０は、ステップＳ２００で設定された測定周期が経過したか否かを判定する。測定周期が経過すると（ステップＳ２０３でＹｅｓ）、処理はステップＳ２０４へ移行する。
【００４７】
ステップＳ２０４において、図３のステップＳ１０５と同様、制御部１５０は、温度制御を終了することを指示する信号を受信したか否かを確認する。温度制御を終了することを指示する信号を受信した場合、温度制御を終了し、受信していない場合、処理はステップＳ２０１に戻る。
【００４８】
次に、本実施形態の効果について、実施の形態１と比較して説明する。図７は、実施の形態１にかかるマイクロコントローラ１００の状態の時間推移について示すグラフである。また、図８は、実施の形態２にかかるマイクロコントローラ２００の状態の時間推移について示すグラフである。図７及び図８において、上段に示すグラフは、電力消費回路１３０の駆動電流の合計の推移を示すグラフであり、下段に示すグラフは、ジャンクション温度Ｔｊの推移を示すグラフである。
【００４９】
図７に示すように、実施の形態１にかかるマイクロコントローラ１００では、駆動電流の状態はオンとオフの２状態しか存在しない。これに対し、図８に示すように、実施の形態２にかかるマイクロコントローラ２００では、駆動電流は、より多くの状態をとることができる。したがって、実施の形態２にかかるマイクロコントローラ２００では、測定されたジャンクション温度と論理ブロック１１０の下限温度との差の大きさに応じた柔軟な駆動電流（すなわち、発熱量）を実現できる。このため、例えば、周囲温度が低い場合は、多くの電力消費回路１３０をオンすることで、少ないサイクルで、ジャンクション温度を論理ブロック１１０の下限温度に到達させることができる。また、柔軟な温度制御が可能であるため、ジャンクション温度が必要以上に上がりすぎることを防ぐことができる。なお、ジャンクション温度の上昇は、リーク電流の増加を招くため、必要以上にジャンクション温度が高くなることは好ましくない。本実施の形態では、ジャンクション温度が論理ブロック１１０の下限温度未満であり、かつ、その差がわずかである場合には、発熱量を抑えて強制的な温度上昇を行なう。このため、下限温度を大幅に超過したジャンクション温度となることを抑制することができる。
【００５０】
＜実施の形態３＞
次に、実施の形態３について説明する。図９は、実施の形態３にかかるマイクロコントローラ３００の構成の一例を示すブロック図である。マイクロコントローラ３００は、制御部１５０が制御部１６０に置き換わり、さらに診断部１７０が追加されている点で、実施の形態２にかかるマイクロコントローラ２００と異なっている。以下、実施の形態２と異なる点について説明し、実施の形態２と同様な点については説明を省略する。
【００５１】
制御部１６０は、制御部１５０が有する制御機能に加え、さらに、温度センサ１２０の診断のための制御機能を有する点で、制御部１５０と異なる。以下、制御部１６０が有する、温度センサ１２０の診断のための制御機能について説明する。
【００５２】
制御部１６０は、診断部１７０による診断動作が行なわれる間、電力を消費させる電力消費回路の数（すなわち、動作させる電力消費回路１３０の数）を制御する。特に、制御部１６０は、診断部１７０による診断動作が行なわれる間、電力を消費させる電力消費回路１３０の数を１以上とする設定を、数の変更を伴って複数回実施する。例えば、制御部１６０は、動作させる電力消費回路１３０を１つとし、所定の待ち時間が経過した後、動作させる電力消費回路１３０を２つとする。
本実施の形態では、制御部１６０は、診断部１７０による診断が行なわれる間、動作させる電力消費回路１３０の数を増やすよう数の変更を所定の待ち時間毎に行なう。具体的には、制御部１６０は、診断部１７０による診断動作が行なわれる間、まず、動作させる電力消費回路１３０を０とし、次に、動作させる電力消費回路１３０を１とする。以降、同様に、制御部１６０は、動作させる電力消費回路１３０を１つずつ増やす。なお、制御部１６０は、１つずつではなく、ｎ個（ｎは２以上の整数）ずつ増やしてもよい。
【００５３】
また、本実施の形態では、制御部１６０は、診断部１７０による診断が行なわれる間、動作させる電力消費回路１３０の数を徐々に増やすが、必ずしも増やすように変更しなくてもよい。例えば、制御部１６０は、動作させる電力消費回路１３０の数を減らすよう数の変更を所定の待ち時間毎に行なってもよい。しかしながら、動作させる電力消費回路１３０の数を増やすように変更することが好ましい。なぜならば、周囲温度によっては、電力消費回路１３０を全て動作させた場合、ジャンクション温度がマイクロコントローラ２００の動作保障のための温度範囲の上限を超えてしまう恐れがあるからである。このため、後述するように、ジャンクション温度が動作保障のための温度範囲の上限を超えない限り、動作させる電力消費回路１３０の数を増やすように変更し、超える場合には診断を打ち切ることで、動作保障のための温度範囲内で温度センサ１２０の診断動作を行なうことができる。
【００５４】
診断部１７０は、温度センサ１２０の出力に基づいて、温度センサ１２０に異常がないかを診断する回路である。このため、例えば、診断部１７０は、温度センサ１２０から測定結果が得られない場合、温度センサ１２０の異常を検出することができる。また、温度センサ１２０から測定結果が得られる場合、診断部１７０は、次のように温度センサ１２０の異常の有無を診断する。すなわち、診断部１７０は、温度センサ１２０で測定された温度が、電力消費回路１３０の動作状態に応じて変動するか否かを判定することにより、温度センサ１２０に異常がないかを診断する。式１で示したとおり、ジャンクション温度Ｔｊは電力消費回路１３０の駆動電流Ｉｌｏａｄに依存している。すなわち、電力消費回路１３０の動作状態により、ジャンクション温度Ｔｊは変動するはずである。したがって、診断部１７０は、電力消費回路１３０の動作状態が変更された場合に、変更後の温度センサ１２０の出力結果が変更前の温度センサ１２０の出力結果に対し変動しているか否かを確認することにより、温度センサ１２０の異常を検出する。すなわち、診断部１７０は、電力消費回路１３０の動作状態が変更されたにも関わらず、測定結果が変動しない場合、温度センサ１２０に異常が発生したと診断する。診断部１７０は、動作させる電力消費回路１３０の数の設定が制御部１６０により実施される度に、温度センサ１２０に異常がないかを診断する。
【００５５】
なお、本実施の形態では、変動が発生した場合であっても、変動量が適正量でない場合、診断部１７０は、温度センサ１２０に異常が発生したと診断する。式１で示したとおり、ジャンクション温度Ｔｊは電力消費回路１３０の駆動電流Ｉｌｏａｄの大きさに依存して変動する。このため、動作させる電力消費回路１３０の数を変更した場合に変動するジャンクション温度の適正量を予め規定することができる。したがって、診断部１７０は、測定結果から得られる変動量と予め規定された適正量とのずれが所定の閾値を超える場合には、温度センサ１２０の異常と判定する。
【００５６】
次に、マイクロコントローラ３００における温度センサ１２０の診断動作について説明する。図１０は、マイクロコントローラ３００における温度センサ１２０の診断動作の一例を示すフローチャートである。以下、図１０に沿って、マイクロコントローラ３００の動作について説明する。
【００５７】
なお、図１０に示す診断動作の処理は、例えば、マイクロコントローラ３００の起動時に行なわれる。マイクロコントローラ３００の起動時は、マイクロコントローラ３００の自己発熱が始まっていないため、マイクロコントローラ３００の動作中の任意の時点に比べて、ジャンクション温度が低い。上述の通り、ジャンクション温度がマイクロコントローラ３００の動作保障のための温度範囲の上限を超える場合には、診断動作のために動作させる電力消費回路１３０を増加させることができない。診断部１７０は、マイクロコントローラ３００の起動時に診断を行なうことで、診断動作の実施可能性を向上させることができる。
【００５８】
ステップＳ３００において、診断部１７０は、診断のために必要な設定値を読み込む。診断部１７０は、例えば、マイクロコントローラ３００に設けられた不揮発性メモリなどの記憶回路に記憶された設定値を読み込む。なお、設定値は、例えば、上述した適正量、診断回数Ｎ、待ち時間ｔｗ、及び、増加数Ｉを含む。増加数Ｉは、動作させる電力消費回路１３０を変更する際に、動作させる電力消費回路１３０をいくつ増やすかを示す設定値である。
また、ステップＳ３００において、診断部１７０は、一連の診断動作において既に何回の診断を実施済みであるかを示すカウンタのカウント値ｎをリセットする。ステップＳ３００の後、処理はステップＳ３０１に移行する。
【００５９】
ステップＳ３０１において、ジャンクション温度の測定が行なわれる。すなわち、診断部１７０は、温度センサ１２０により測定されたマイクロコントローラ３００のジャンクション温度を取得する。そして、診断部１７０は、ｎの値を１インクリメントする。ステップＳ３０１の後、処理はステップＳ３０２に移行する。本実施の形態では、ｎ＝０の場合、すなわち、ステップＳ３００からステップＳ３０１へ処理が移行した場合、全ての電力消費回路１３０をオフした状態で、ジャンクション温度の測定が行なわれる。
【００６０】
ステップＳ３０２において、診断部１７０は、測定結果が正常であるか否かを確認する。測定結果が異常である場合、処理はステップＳ３０３へ移行し、測定結果が正常である場合、処理はステップＳ３０４へ移行する。
全ての電力消費回路１３０がオフの場合には、診断部１７０は、温度センサ１２０から測定結果が得られない場合、もしくは予め定められた温度範囲（例えば、動作保証範囲の周囲温度として定められた温度範囲など）を示す測定結果が得られない場合、測定結果が異常であると判定する。これ以外の場合、診断部１７０は、測定結果が正常であると判定する。
また、複数の電力消費回路１３０のうち、少なくとも１つがオンの場合には、ステップＳ３０１で今回得られたジャンクション温度と前回得られたジャンクション温度との差（すなわちジャンクション温度の変動量ΔＴｊ）と、所定の適正量とのずれ量が所定の閾値以下であるか否かを確認する。そして、このずれ量が、閾値を超える場合、診断部１７０は、測定結果が異常であると判定する。これに対し、ずれ量が、閾値を超えない場合、診断部１７０は、測定結果が正常であると判定する。
ステップＳ３０３において、診断部１７０は、温度センサ１２０に異常が発生したと判定し、診断動作を終了する。
【００６１】
ステップＳ３０４において、診断部１７０は、カウント値ｎが診断回数Ｎよりも大きいか否かを判定する。カウント値ｎが診断回数Ｎよりも大きい場合、処理はステップＳ３０５へ移行する。この場合、ステップＳ３０５において、診断部１７０は、温度センサ１２０は正常であると判定し、診断動作を終了する。カウント値ｎがＮ以下である場合、処理はステップＳ３０４の後、ステップＳ３０６へ移行する。
【００６２】
ステップＳ３０６において、診断部１７０は、電力を消費させる電力消費回路１３０の数を現在の数よりも増加させたとしたらジャンクション温度が所定の上限温度を超えるか否かを温度センサ１２０で測定された温度に基づいて判定する。具体的には、診断部１７０は、ステップＳ３０１で得られた現在のジャンクション温度に、オンする電力消費回路１３０を所定の増加数Ｉだけ増加させた場合の上昇温度を加算し、加算結果が所定の上限温度（動作保障のための温度範囲の上限）を超えるか否かを判定する。電力消費回路１３０の数をＩだけ増加させたとしたらジャンクション温度が所定の上限温度を超える場合、ステップＳ３０５において、診断部１７０は、温度センサ１２０は正常であると判定し、診断動作を終了する。このように、診断動作を打ち切ることによって、動作保障のための温度範囲内で温度センサ１２０の診断動作を行なうことができる。電力消費回路１３０の数をＩだけ増加させてもジャンクション温度が所定の上限温度を超えないと判定された場合、処理はステップＳ３０７へ移行する。
【００６３】
ステップＳ３０７において、制御部１６０は、電力を消費させる電力消費回路１３０の数、すなわちオンする電力消費回路１３０の数を、所定の増加数Ｉだけ増やす。ステップＳ３０７の後、処理はステップＳ３０８へ移行する。
ステップＳ３０８において、診断部１７０は、ステップＳ３０７におけるオンする電力消費回路１３０の増加後、待ち時間ｔｗが経過したか否かを確認する。すなわち、ジャンクション温度が安定するまで待機する。待ち時間ｔｗが経過すると、処理はステップＳ３０１に戻り、前回測定時の温度帯域より高い温度帯域について、温度センサ１２０が正常に働いているかを確認する。このようにして診断動作が繰り返される。
【００６４】
図１１は、マイクロコントローラ３００の状態の時間推移について示すグラフである。図１１の上段に示すグラフは、電力消費回路１３０の駆動電流の合計の推移を示すグラフであり、下段に示すグラフは、ジャンクション温度Ｔｊの推移を示すグラフである。上述したステップＳ３０７が実施される度に、合計の駆動電流Ｉｌｏａｄは、ΔＩｌｏａｄだけ増加する（図１１の上段グラフ参照）。そして、これに伴い、ジャンクション温度Ｔｊは、ΔＴｊだけ上昇することが期待される。ステップＳ３０２では、ΔＴｊずつ温度が上昇していることを確認する。このように様々な温度帯域について、温度センサ１２０の出力を確認することで、様々な温度帯域において温度センサ１２０の出力が正常であるか否かを確認することができる。
【００６５】
以上、実施の形態３について説明した。本実施の形態では、ジャンクション温度を強制的に変動させて、各温度帯についての温度センサ１２０の出力を確認することができる。このため、容易に、温度センサ１２０の温度特性が正常であるか否かについてマイクロコントローラ３００が自己診断することができる。なお、本実施の形態は、実施の形態２を変更した形態として説明したが、実施の形態１と上述した診断動作とを組み合わせてもよい。
【００６６】
＜実施の形態４＞
次に、実施の形態４について説明する。上述した実施の形態では、電力消費回路１３０は、ジャンクション温度を強制的に上昇させるために用いられた。本実施の形態では、電力消費回路１３０が、ジャンクション温度の上昇とは別の用途にも用いられる点で、上述した実施の形態と異なっている。具体的には、本実施の形態では、特許文献２が開示しているように、電源電圧の変動を抑制するための電力消費が行なわれる。すなわち、ジャンクション温度の上昇という目的以外に、電源電圧の変動を抑制するという目的のために電力消費回路１３０が用いられる。
【００６７】
図１２は、実施の形態４にかかるマイクロコントローラ４００の構成の一例を示すブロック図である。マイクロコントローラ４００は、電流変動制御回路１８０が追加されている点で、実施の形態３にかかるマイクロコントローラ３００と異なっている。以下の説明では、実施の形態３と異なる点について説明し、実施の形態３と同様な点については説明を省略する。
【００６８】
電流変動制御回路１８０は、論理ブロック１１０に含まれる回路の動作が一時的に停止する間、電力消費回路１３０で所定の電力を消費するよう制御する。論理ブロック１１０における一時的な動作休止に起因した電流量の大幅な低下は、電源電圧の変動を招く恐れがある。例えば、パイプラインストールにより論理ブロック１１０内のＣＰＵの命令実行動作が一時的に休止すると、その間、電流量が大幅に低下し、その結果、電源電圧が変動してしまう。このため、電流変動制御回路１８０は、例えば、論理ブロック１１０の動作が休止するタイミングで、電力消費回路１３０に負荷電流を流すことにより、マイクロコントローラ４００における負荷電流の変動を抑制する。これにより、電流変動制御回路１８０は、電源電圧の変動を抑制する。
すなわち、本実施の形態では、電力消費回路１３０は、ジャンクション温度を強制的に上昇させるために用いられるとともに、論理ブロック１１０で消費される電力の変動を抑制するために用いられる。
【００６９】
本実施の形態において、制御部１６０は、実施の形態２と同様、マイクロコントローラ４００の起動時に電力消費回路１３０の制御を行なう。そして、ジャンクション温度が論理ブロック１１０の下限温度に到達し論理ブロック１１０が動作を開始すると、電流変動制御回路１８０の制御のもと、電力消費回路１３０のオン、オフの制御が行なわれる。なお、起動時には、実施の形態３で述べた、制御部１６０及び診断部１７０による診断のための制御が行なわれてもよい。
【００７０】
以上、実施の形態４について説明した。本実施の形態では、電力消費回路１３０が複数の目的で利用される。すなわち、電力消費回路１３０が複数の目的の達成のために共用される。このため、目的毎に電力消費回路１３０を設ける場合に比べ、チップ面積を抑制することができる。
また、目的毎に電力消費回路１３０を設ける場合に比べ、電力消費回路１３０の回路数を減らすことができるため、リーク電流の総量も抑制することができる。なお、本実施の形態は、電力消費回路１３０を電源電圧変動の抑制のために用いる例について説明したが、これとは別の目的のために、電力消費回路１３０を共用してもよいことは言うまでもない。また、本実施の形態は、実施の形態３を変更した形態として説明したが、実施の形態１又は実施の形態２で説明した構成において、電力消費回路１３０を他の目的で利用してもよい。
【００７１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【００７２】
例えば、制御部１４０、１５０、１６０、診断部１７０は、ハードウェア回路ではなく、ソフトウェアであってもよい。すなわち、例えば、論理ブロック１１０とは別にマイクロコントローラ内に設けられたプロセッサが、マイクロコントローラ内に設けられたメモリに格納されたプログラム（より詳細には、一以上の命令を含むプログラム）を実行することにより、制御部１４０、１５０、１６０、診断部１７０の処理が実行されてもよい。この場合、プロセッサ及びメモリは、論理ブロック１１０の下限温度よりも低い温度で動作することが保証されていることが好ましい。
【００７３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００７４】
１００    マイクロコントローラ
１１０    論理ブロック
１２０    温度センサ
１３０    電力消費回路
１３１    抵抗
１３２    トランジスタ
１３３    インバータ
１４０    制御部
１５０    制御部
１６０    制御部
１７０    診断部
１８０    電流変動制御回路
２００    マイクロコントローラ
３００    マイクロコントローラ
４００    マイクロコントローラ
【図１】
2020047048.tif 000003
【図２】
2020047048.tif 000004
【図３】
2020047048.tif 000005
【図４】
2020047048.tif 000006
【図５】
2020047048.tif 000007
【図６】
2020047048.tif 000008
【図７】
2020047048.tif 000009
【図８】
2020047048.tif 000010
【図９】
2020047048.tif 000011
【図１０】
2020047048.tif 000012
【図１１】
2020047048.tif 000013
【図１２】
2020047048.tif 000014