(57)【要約】【課題】半導体装置及びその動作電源電圧制御方法を提供する。【解決手段】動作電圧を可変とする複数の処理ユニットと、これら処理ユニットを制御するコントローラを有するＬＳＩと、ＬＳＩからの処理ユニット毎に対応した電源供給の要求に応じて電源電圧を処理ユニットに供給する電源制御ユニットと、処理ユニット毎に電源制御ユニットに指示する電源電圧指示値を保持する書き換え可能な不揮発メモリと、を備え、コントローラは、処理ユニット毎に不揮発メモリに保持された電源電圧指示値を取得し、取得した電源電圧指示値を電源制御ユニットに転送する半導体装置。【選択図】図１
2013070145.tif 000002
【特許請求の範囲】
【請求項１】
動作電圧を可変とする複数の処理ユニットと、これら処理ユニットを制御するコントローラを有するＬＳＩと、
前記ＬＳＩからの前記処理ユニット毎に対応した電源供給の要求に応じて電源電圧を前記処理ユニットに供給する電源制御ユニットと、
前記処理ユニット毎に前記電源制御ユニットに指示する電源電圧指示値を保持する書き換え可能な不揮発メモリと、を備え、
前記コントローラは、前記処理ユニット毎に前記不揮発メモリに保持された電源電圧指示値を取得し、取得した電源電圧指示値を前記電源制御ユニットに転送する半導体装置。
【請求項２】
所定の電源電圧指示値が、実際に前記処理ユニットでアプリケーションを実行可能な最下限の電源電圧指示値か否かを判定する動作判定プログラムを、前記不揮発メモリに保持する請求項１記載の半導体装置。
【請求項３】
前記処理ユニットは、前記動作判定プログラムを実行し、予め設定された電源電圧指示値では、正常に動作しないと判定されれば当該電源電圧指示値を上げ、正常に動作すると判定されるまで繰り返し、電源制御ユニット指示値テーブルを正常に動作すると判定されたときの電源電圧指示値に更新する請求項２記載の半導体装置。
【請求項４】
前記処理ユニットが対応する動作周波数と前記処理ユニットの動作条件毎に、前記電源制御ユニット指示値テーブル内の電源電圧指示値が関連付けられている請求項１記載の半導体装置。
【請求項５】
前記処理ユニットにおいて前記処理ユニットの有する特定の機能ブロックのＯＮ／ＯＦＦを制限する動作条件を定義し、それぞれの動作条件に対応する動作判定プログラムを備えた請求項１記載の半導体装置。
【請求項６】
動作電圧を可変とする複数の処理ユニットと、これら処理ユニットを制御するコントローラを有するＬＳＩと、前記ＬＳＩからの前記処理ユニット毎に対応した電源供給の要求に応じて電源電圧を前記処理ユニットに供給する電源制御ユニットと、前記処理ユニット毎に前記電源制御ユニットに指示する電源電圧指示値を保存する書き換え可能な不揮発メモリと、を備える半導体装置の動作電源電圧制御方法であって、
前記コントローラは、前記処理ユニットの識別情報を読み出すとともに、前記電源電圧指示値が保持されたテーブルの参照を要求し、
前記コントローラは、前記処理ユニットの識別情報をキーとして前記テーブルから前記電源電圧指示値を取得し、
前記コントローラは、前記電源制御ユニットに前記電源電圧指示値を転送し、
前記電源制御ユニットは、前記電源電圧指示値に基づいて電源電圧を前記処理ユニットに供給する、
半導体装置の動作電源電圧制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体装置及びその動作電源電圧制御方法に関する。
【背景技術】
【０００２】
一般的に、LSIの電源電圧値は、一律の動作電圧(例えば、最小電圧、最大電圧、標準電圧等)を規定するか、製造プロセスのばらつきによって異なるシリコンチップ毎の最適な電圧値をVoltage ID(VID)として規定している。VIDには、信頼性の経時劣化分がマージンとして初期値に上乗せされており、動的に動作下限電圧を適応することによって最適値を与えている。
【０００３】
また、LSIの製造時に、複数の動作条件に対応させた周波数毎に電圧値を決定するプロセスは、LSI評価時は極めて重い作業であり、評価に要する時間やコストの制約によって動作条件の種類を増やすことが難しい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１９４１３４号公報
【特許文献２】特開２００８−３０５１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、半導体装置の処理動作時に最適な電源電圧を付与することができる半導体装置及びその動作電源電圧制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
実施形態の半導体装置は、動作電圧を可変とする複数の処理ユニットと、これら処理ユニットを制御するコントローラを有するＬＳＩと、前記ＬＳＩからの前記処理ユニット毎に対応した電源供給の要求に応じて電源電圧を前記処理ユニットに供給する電源制御ユニットと、前記処理ユニット毎に前記電源制御ユニットに指示する電源電圧指示値を保持する書き換え可能な不揮発メモリと、を備え、前記コントローラは、前記処理ユニット毎に前記不揮発メモリに保持された電源電圧指示値を取得し、取得した電源電圧指示値を前記電源制御ユニットに転送する。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る半導体装置の構成を示す図である。
【図２】処理ユニットにおける最下限電圧指示値の探索の流れを示すフローチャートである。
【図３】電源制御ユニット指示値のデータベースを再構築する処理の流れを示すフローチャートである。
【図４】電源制御ユニット指示値テーブルの設定・更新の流れを示すフローチャートである。
【図５】電源制御ユニット指示値テーブルの一例である。
【図６】処理ユニットの動作条件のパターン例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【０００９】
図１は、本実施形態に係る半導体装置の構成を示す図である。本実施形態に係る半導体装置１００は、LSI１０と、電源制御ユニット２０と、不揮発メモリ３０で構成されている。LSI１０は、複数の処理ユニット１１と、コントローラ１２を有している。不揮発メモリ３０は、電源制御ユニット指示値データベース(テーブル)３１と、動作判定プログラム３２を格納している。不揮発メモリ３０としては、例えばNAND型フラッシュメモリが好適である。
【００１０】
各処理ユニット１１は、半導体装置１００を搭載したセット製品にインストールされるアプリケーションを分担して実行するものである。アプリケーションには、処理ユニット１１が実行する際の負荷が低負荷のものもあれば、高負荷のものもあり、一律ではない。低負荷のものは、低周波数で作動電圧が制御され、高負荷のものは高周波数で作動電圧が制御される。LSI１０の評価時に、周波数毎の最適な電源電圧値を決定するプロセスは、作業量も多く、対応できる周波数にも限りがある。本実施形態において、各処理ユニット１１の動作する電源電圧値は一定値ではなく、正常な動作を行う範囲内において可変となっている。
【００１１】
各処理ユニット１１では、アプリケーションの他に、後述する動作判定プログラムを実行する。各処理ユニット１１での該プログラムによる判定結果は、コントローラ１２に送られる。
【００１２】
コントローラ１２は、各処理ユニット１１と不揮発メモリ３０を以下のように制御する。コントローラ１２は、LSI１０の起動時には、不揮発メモリ３０に保持されている電源制御ユニット指示値データベース(テーブル)３１から指示値（後述する）を各処理ユニット１１毎に設定する。また、コントローラ１２は、不揮発メモリ３０から動作判定プログラム３２をロードする。この動作判定プログラム３２は、動作可能な最下限の指示値を各処理ユニット１１毎に設定した場合、各処理ユニット１１が、問題なく動作するか否かを判定するものである。動作可能な最下限の指示値は、電源電圧の最適化の観点から、いわゆるマージンを過大には含まないものである。
【００１３】
ここで、動作可能な最下限の指示値であるかどうかの判定は、例えば、次のように行うことができる。まず、コントローラ１２が主体となって、電源制御ユニット２０に電圧指示値を、処理ユニット１１に動作判定プログラム３２の実行を命令する。動作判定プログラム３２の実行結果が所望の期待値と一致すれば正常動作として、さらに低い電圧指示値を設定して判定プログラムの実行を命令する。これを続けて、期待値と一致しないとき、その時の電圧指示値は使えないことになり、直前の正常動作のときの電圧指示値が最下限指示値と判定することができる。
【００１４】
図２は、処理ユニット１１における最下限電圧指示値の探索の流れを示すフローチャートである。まず、コントローラ１２が処理ユニット１１に動作判定プログラム３２をロードするように指示する（ステップＳ２０１）。次に、コントローラ１２が電源制御ユニット２０に不揮発メモリ３０に保存された電圧指示値を処理ユニット１１に供給するよう指示する（ステップＳ２０２）。次いで、コントローラ１２が処理ユニット１１に動作判定プログラム３２の実行を指示する（ステップＳ２０３）。
【００１５】
処理ユニット１１が動作判定プログラム３２を実行後、所定時間経過を待つ（ステップＳ２０４）。次に、処理ユニット１１が動作判定プログラム３２の実行を終了したか否かを判定する（ステップＳ２０５）。動作判定プログラム３２の実行が終了していれば（ステップＳ２０５でＹｅｓ）、処理ユニット１１の演算結果は期待値と一致するか否かを判定する（ステップＳ２０６）。期待値と一致すれば、コントローラ１２が電源制御ユニット２０に電圧指示値を所定の単位分下げて処理ユニット１１に供給するよう指示する（ステップＳ２０７）。そして、ステップＳ２０３以降の処理を繰り返す。
【００１６】
ステップＳ２０５で、動作判定プログラム３２の実行が終了しなければ（ステップＳ２０５でＮｏ）、処理ユニット１１が正常状態でないため最下限の指示値を下回ったことになり、直前の正常状態のときにステップＳ２０７で供給した電圧指示値を、不揮発メモリ３０に保存する（ステップＳ２０８）。また、ステップＳ２０６で、処理ユニット１１の演算結果が期待値と一致しない場合（ステップＳ２０６でＮｏ）も、ステップＳ２０８の処理を行う。
【００１７】
尚、動作可能な最下限の指示値の判定手法は、これに限らない。
【００１８】
コントローラ１２は、各処理ユニット１１からアプリケーションを実行した場合の動作判定プログラム３２の実行結果を受け取り、当該指示値で正常動作するか否かの判定を行う。例えば、演算後に期待値比較を行うプログラムを実行させ、期待値と一致すれば正常動作、期待値と一致しない場合や所定のルーチンに戻らない場合に、正常動作でないと判定することができる。
【００１９】
ある処理ユニット１１において実際にアプリケーションを実行し、正常動作でないとの判定の場合には、当該処理ユニット１１に対して設定する最下限電圧指示値のデータは低すぎることになるので、後述する電源制御ユニット指示値のテーブル３１の値を書き換える処理がなされる。
【００２０】
電源制御ユニット２０は、LSI１０から各処理ユニット１１毎に所定の電源供給の要求を受けて、LSI１０の各部に電源電圧を供給する。以下に、電源電圧の供給の流れを詳述する。コントローラ１２がLSI１０の各処理ユニット１１の識別情報を読み出すとともに、電源制御ユニット指示値データベース(テーブル)３１の参照を要求する。コントローラ１２は、処理ユニット１１の識別情報をキーとして電源制御ユニット指示値データベース(テーブル)３１から指示値を取得する。コントローラ１２は、電源制御ユニット２０に指示値を転送する。電源制御ユニット２０は、指示値に基づいて電源電圧を各処理ユニット１１に供給する。ここで、指示値に基づく電源電圧について説明する。一般的なVID対応の電源制御ユニットでは、指示値に対応する電圧値が定義される。しかし、電源公差があるため、安価なものでは10mVほど誤差がある場合もある。そのため、期待する電圧値より低い電圧(規定される電源公差分)が出てくることを前提に、上乗せして初期値を設定するのが好適である。そこで、動作判定で正常動作となったときの電源指示値で保存しておけば、電源公差に影響されることなく正常動作する絶対値として規定する。なお、ここでは電源制御ユニット２０は、LSI１０に対して外付けとなっている。
【００２１】
不揮発メモリ３０に格納される動作判定プログラム３２は、書き換え可能となっている。動作判定プログラム３２の書き換えについては後述する。
【００２２】
尚、不揮発メモリ３０は、LSI１０の外部に設ける構成に限られることはなく、LSI１０に内蔵させてもよい。
【００２３】
電源制御ユニット指示値は、電源制御ユニット２０からLSI１０に供給する電圧値[V]ではなく、LSI１０と電源制御ユニット２０を合わせたものに対する指示値である。本実施形態においては、電源電圧の規定は電圧値[V]ではなく、電源制御ユニット２０が識別できる電源制御ユニット指示値で表す。この電源制御ユニット指示値は、プロセッサ内部のコントローラから設定されるもので、例えば、8bit〜10bitで表され、各値毎に対応する電圧値が規定される。電源制御ユニット指示値は、各サンプルの製造時に、LSIテスタにてシリコンの特性を測定し、それに対応付けた動作電圧値として、フューズに焼き込む。シリコンの特性と動作電圧値の対応付けは、設計時のシミュレーションや評価、顧客が使う電源を考慮して決定されるが、その全てに誤差が含まれるため、結果として過大なマージンが上乗せされて電源制御ユニット指示値となる。
【００２４】
LSI１０側に対して電圧値[V]で規定し、電源制御ユニット２０に対しても電圧値[V]で設定すると、LSI１０を評価するLSIテスタには公差が存在し、システムとして組み上げた製品における電源制御ユニット２０にも公差が存在する。このように、所定の電圧値[V]自体に不確定要素を取り除くことが出来ないため、LSI１０単体で動作電圧を規定しない。
【００２５】
本実施形態では、電源制御ユニット指示値は、図１において、電源制御ユニット指示値データベース(テーブル)３１に保持している。
【００２６】
電源制御ユニット指示値は、例えば、１６進数のレジスタ値として表す。電源制御ユニット指示値は、データベースとして不揮発メモリ３０に保持される。不揮発メモリ３０に格納される電源制御ユニット指示値のテーブル３１は書き換え可能となっている。一旦、電源制御ユニット指示値のテーブル３１を構築しても、長年の使用により、経年劣化し、初期に設定したテーブル値では正常動作しないことがある。そのような場合には、経年劣化への対応として、電源制御ユニット指示値データベース（テーブル）３１の再構築を行う。
【００２７】
図３は、電源制御ユニット指示値のデータベースを構築後の定期的な経年劣化への対応として、再構築処理の流れを示すフローチャートである。まず、コントローラ１２が処理ユニット１１に動作判定プログラム３２をロードするように指示する（ステップＳ３０１）。次に、コントローラ１２が電源制御ユニット２０に不揮発メモリ３０に保存された電圧指示値を処理ユニット１１に供給するよう指示する（ステップＳ３０２）。次いで、コントローラ１２が処理ユニット１１に動作判定プログラム３２の実行を指示する（ステップＳ３０３）。
【００２８】
処理ユニット１１が動作判定プログラム３２を実行後、所定時間経過を待つ（ステップＳ３０４）。次に、処理ユニット１１が動作判定プログラム３２の実行を終了したか否かを判定する（ステップＳ３０５）。動作判定プログラム３２の実行が終了していれば（ステップＳ３０５でＹｅｓ）、処理ユニット１１の演算結果は期待値と一致するか否かを判定する（ステップＳ３０６）。期待値と一致すれば、直前の正常状態のときにステップＳ３０８で供給した電圧指示値を、不揮発メモリに保存する（ステップＳ３０７）。
【００２９】
ステップＳ３０５で、動作判定プログラム３２の実行が終了しなければ（ステップＳ３０５でＮｏ）、処理ユニット１１が、正常状態でないため最下限の指示値を下回ったことになり、コントローラ１２が電源制御ユニット２０に電圧指示値を所定の単位分下げて処理ユニット１１に供給するよう指示する（ステップＳ３０８）。
【００３０】
また、ステップＳ３０６で、処理ユニット１１の演算結果が期待値と一致しない場合（ステップＳ３０６でＮｏ）も、ステップＳ３０８の処理を行う。そして、ステップＳ３０３以降の処理を繰り返す。
【００３１】
本実施形態によれば、実際にアプリケーションを実行可能な最下限の電源電圧を電圧値[V]ではなく電源制御ユニット２０への電源制御ユニット指示値を保存することで、電源制御ユニット２０とLSI１０それぞれが持つ電圧公差を隠蔽することができる。また、電源制御ユニット指示値を書き換え可能とすることにより信頼性経時劣化分を予めマージンとして持たせる必要がなく、常に最適な電源制御ユニット指示値を得ることができる。
【００３２】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態では、半導体装置１００を組み込んだセット製品にアプリケーションがインストールされ、実行された以降においても、動作電源電圧を最適化するものである。
【００３３】
図４は、電源制御ユニット指示値テーブル３１の設定・更新の流れを示すフローチャートである。セット製品の組み立てが完了（ステップＳ４０１）すると、セット製品の検査が行われる（ステップＳ４０２）。セット製品の検査時には、まず、電源制御ユニット指示値テーブル３１を初期化する（ステップＳ４０３）。電圧指示値の初期値は、例えば、予めセット製品の量産設計時に設定した指示値である。
【００３４】
次いで、セット製品が動作可能な最下限の指示値となっているか否かの判定を行う（ステップＳ４０４）。当初の指示値に基づいて、動作判定プログラム３２を実行する。ここでの動作判定は、第１の実施形態における動作判定処理と基本的に同じでよい。
【００３５】
当初の指示値では、正常動作しないとの判定であれば（ステップＳ４０５でＮＯ）、その指示値を所定単位分上げる（ステップＳ４０６）。次いで、上げた指示値で動作判定プログラム３２を実行する。ここで、指示値の上げ方は、電源制御ユニット製品の設定単位に依存するので、例えば、10mV単位や、1mV単位で上げていく。
【００３６】
当初の指示値で正常動作する、あるいは上げた指示値で正常動作するとの判定の場合（ステップＳ４０５でＹＥＳ）、電源制御ユニット指示値テーブル３１を上げた指示値に更新する（ステップＳ４０７）。そして、セット製品が動作可能な最下限の指示値を更新する（ステップＳ４０４）。これによりLSIテスタの電圧ばらつき、セット製品の電源制御ユニット公差の不確定値マージンをなくすことができる。
【００３７】
例えば、絶対値1.000Vが必要なサンプルがあった場合、LSIテスタは0.995Vで動作したと判定しても、実際は1.000Vを印加していた可能性がある。その場合、VID=0.995Vとして客先セットに実装され、丁度0.995Vを印加されると動作しないことになる。そのため、LSIテスタでの設定・測定誤差を上乗せしてVIDを設定する必要がある。また、LSIテスタの誤差がmax0.005Vであった場合、VID=1.005Vとして客先セットに実装され、今度は客先セットの電源公差によってVID=1.005Vを設定しても0.995Vを印加されると動作しない。客先セットの電源公差がmax0.010Vであった場合、VID=1.005Vのときに1.015Vを設定すれば良いことになる。この場合、最高品ではない通常のサンプルでは実力1.000Vに対して1.015Vと、0.015V余分なマージンを常に持たされ、余計な電力消費となる。
【００３８】
本実施形態において、動作判定プログラムと電源制御ユニット指示値の保存を利用した場合、まずはLSIテスタでの設定あるいは測定は無しとする。電源公差がmax0.010Vの客先セットに実装された場合、1.000Vの設定値のときに0.990Vが印加されても、動作しない。しかし、設定値を上げて(10mV単位であった場合)1.010Vの設定値にして1.000Vが印加されれば、動作する。本実施形態では、このときの電源制御ユニット指示値を保存しておくので、実力1.000V、実際の印加も1.000Vとなり、不確定値マージンをなくすことができるのである。
【００３９】
尚、電源制御ユニット指示値テーブル３１の値は、動作可能な最下限の指示値に一定のマージン値を上乗せした値でもよい。動作可能な最下限の指示値は、上述した図２に示すフローで決定することができる。また、マージン値とは、次のように考えることができる。上述した実力1.000Vのサンプルを例にとって、説明する。客先セットの出荷後、実力1.000Vで実際の印加が1.000Vであった場合、経年劣化で実力1.001Vとなったときには、動作しなくなる。これに備えて、電源制御ユニット指示値の更新タイミング間に劣化すると予想される電圧分は、最低でもマージンとして見積もっておく必要がある。この例で言えば、実力1.001Vとして見ておけばよいことになる。
【００４０】
このように、動作可能な最下限の指示値に、LSIやセット機器の電源回路における一定の電圧低下マージンを加えた分を標準時の指示値とする。
【００４１】
指示値に全くマージンを持たせないことも可能である。しかし、更新タイミング間に徐々に劣化することで、ある日まで動作していたが翌日には動作するか微妙な電圧差は、最低限マージンとしてもたせることが望ましい。
【００４２】
次に、セット製品の市場への出荷（ステップＳ４０８）後、アプリケーションがインストールされユーザによる使用が開始された後（ステップＳ４０９）にも、電源制御ユニット指示値を評価する。
【００４３】
具体的には、ユーザによる使用が開始されてから一定のタイミング毎、もしくは特定のイベント発生時（ステップＳ４１０）に、動作可能な最下限の指示値となっているかの判定を行う（ステップＳ４１１）。尚、動作可能な最下限の指示値の判定は、上述のＳ４０５からＳ４０７の通りである。
【００４４】
ユーザによる使用後の信頼性経時劣化による電圧の上昇によって、動作可能な最下限の指示値では作動しないとの判定となった場合には、電源制御ユニット指示値テーブル３１に保持している動作可能な最下限の指示値を更新する。一定のタイミング毎とは、例えば、２４時間経過毎であり、特定のイベント発生時とは、例えば、複雑で重い負荷のアプリケーションが出現した場合である。
【００４５】
電源制御ユニット指示値テーブル３１の更新処理の管理のタイミング・イベント処理は、例えば組み込みシステムのOS（Operating System）で行い、処理ユニット１１を解放後にコントローラ１２からの制御に移り、組み込みシステムのOSに復帰するのが好適である。OSは、特定のアプリケーションが作動するためにリソースを割り振る役割を司っている。
【００４６】
同様に、動作判定プログラム３２の更新処理・管理も組み込みシステムのOSで行う。動作判定プログラム３２は、LSI１０設計時と評価時の結果から、最もトランジスタの電圧マージンが少なく、高い電源電圧を要求するものとなっている。動作判定プログラム３２を実行することによって、LSI１０毎にどれだけ低い電圧で動かせるかの限界電圧が求められる。限界電圧は経年劣化で徐々に悪化するので、セット製品のアプリケーションが許容するタイミングで実行して更新する。
【００４７】
動作判定プログラム３２自体を更新できるようにするのは、最もトランジスタの電圧マージンが少なくなるポイントを設計段階や評価段階では発見できないことがあるからである。従前の動作判定プログラム３２で電圧指示値を決定し、新たにユーザやサードパーティーが作成したアプリケーションがより悪いマージンのポイントを通ったときにシステム不具合が発生する。
【００４８】
ＬＳＩの市場出荷後にも動作判定プログラムを更新できるようにすることで、例えばプラットフォームベンダが認証を行うときに、複雑で重い負荷のアプリケーションを発見でき、そのアプリケーションを実行する前に動作判定プログラムの更新を強制することが好適である。動作判定プログラムの更新は、例えば、ユーザがセット製品を使用していない夜中や、電源オフの直前のタイミングで行う。更新する内容は電圧指示値で、定期的に動作判定プログラムを実行して、電圧指示値がゆっくり上昇していく方向になる。
【００４９】
LSI１０やセット機器の設計時あるいは評価時の想定を超えるようなアプリケーションが発見された場合、組み込みシステムのOSからファームウェアアップデートを行うことで市場出荷後に電源制御ユニット指示値の更新を行う。
【００５０】
電源制御ユニット指示値テーブル３１の更新処理がセット製品の負担にならないよう、例えば、常時ＯＮのセット製品であれば夜間に更新処理を実行し、ＯＮ／ＯＦＦするセット製品であれば、ＯＦＦの直前に更新処理を実行させるのが好適である。
【００５１】
図４に示すフローチャートでは、ステップＳ４０５〜ステップＳ４０７の処理を詳細に説明したが、ステップＳ４１１以降に、ステップＳ４０５〜ステップＳ４０７と同様の処理を実行することもできる。
【００５２】
第２の実施形態によれば、実際に処理ユニット１１でアプリケーションを実行することにより、精度の高い本来の最適値を求められるだけでなく、設計時等の想定を超えるようなアプリケーションが発見されたときにも対応することができる。また、量産時に対応できない多量の動作条件毎の電圧指示値を持たせることができる。
【００５３】
（第３の実施形態）
次に、第３の実施形態について説明する。図５は、不揮発メモリ３０内に設けられる電源制御ユニット指示値テーブル３１の一例である。電源制御ユニット指示値テーブル３１の指示値は、コントローラ１２から読み書きが可能となっている。
【００５４】
図５に示すように、動作可能電圧を可変とする処理ユニット１１毎に、電源制御ユニット指示値テーブル３１が用意されている。例えば、電源制御ユニット指示値テーブル３１には、処理ユニット１１が対応する動作周波数と、処理ユニット１１の動作条件毎に、電源制御ユニット指示値が関連付けられている。
【００５５】
図６は、処理ユニット１１の動作条件のパターン例を示す図である。例えば、動作条件Ａは、処理ユニット１１の持つ機能ブロックＡ、機能ブロックＢ、機能ブロックＣがいずれもＯＮの場合である。動作条件Ｂは、処理ユニット１１の持つ機能ブロックＡがＯＮ、機能ブロックＢもＯＮ、機能ブロックＣがＯＦＦの場合である。同様に、動作条件Ｃは、処理ユニット１１の持つ機能ブロックＡのみがＯＮ、機能ブロックＢ及び機能ブロックＣがＯＦＦの場合である。当然のことながら、多くの機能ブロックがＯＮの場合には、高めの電源制御ユニット指示値が必要であり、一部の機能ブロックのみがＯＮの場合には、低めの電源制御ユニット指示値で十分となる。
【００５６】
このように、各処理ユニット１１において特定の機能ブロックのＯＮ／ＯＦＦを制限する動作条件を定義し、それぞれの動作条件に対応する動作判定プログラム３２を用意することで、動作条件毎に最適な電源制御ユニット指示値を用意することができる。
【００５７】
尚、セット機器の周辺温度が著しく変動した場合にも、最適な電源制御ユニット指示値に対応させるのが好適である。すなわち、セット機器の周辺温度が著しく変動した場合の最低動作指示値の差分を評価時に求めておき、コントローラ１２が電源制御ユニット指示値テーブル３１から参照した後に温度変化分を補償する。
【００５８】
上述したように、電源制御ユニット指示値テーブル３１を更新するときは、各動作条件・周波数毎に動作判定プログラム３２を実行し、コントローラ１２から書き換える。
【００５９】
第３の実施形態によれば、処理ユニット１１から得られるアウトプットに適した動作条件を複数用意することにより、想定される最悪の負荷に対応できる電圧を常に印加する必要がなく、動作条件毎に最適な電圧指示値を持ち、動作条件によってはより低消費電力にすることができる。
【００６０】
以上説明したように、本実施形態によれば、半導体装置の製造時の電圧バラツキあるいは信頼性の経時劣化分を予め過大なマージンとして持たせる必要がなく、半導体装置毎に常に最適な動作電圧を設定することができる。
【００６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６２】
１００・・・半導体装置、
１０・・・LSI、
２０・・・電源制御ユニット、
３０・・・不揮発メモリ。
【図１】
2013070145.tif 000003
【図２】
2013070145.tif 000004
【図３】
2013070145.tif 000005
【図４】
2013070145.tif 000006
【図５】
2013070145.tif 000007
【図６】
2013070145.tif 000008