(57)【要約】【課題】半導体装置において電流ジャンプが発生したときの内部電圧の変動を抑制する。【解決手段】半導体装置１００は、所定の動作を行う複数のブロック１〜４と電流ジャンプ制御回路５とを有する。電流ジャンプ制御回路５は、複数のブロック１〜４のそれぞれの制御信号をモニタし、異なるタイミングにおけるモニタ結果に基づいて複数のブロック１〜４の消費電流の予測値を算出することで、複数のブロック１〜４での消費電流の変動を制御する。電流ジャンプ制御回路５は、複数のブロック１〜４の消費電流の予測値の増加が第１の値よりも大きい場合又は減少が第２の値よりも大きい場合、複数のブロック１〜４の一部又は全部の動作を制御する。【選択図】図１
2019114011.tif 000002
【特許請求の範囲】
【請求項１】
所定の動作を行う複数のブロックと、
前記複数のブロックのそれぞれの制御信号をモニタし、異なるタイミングにおけるモニタ結果に基づいて前記複数のブロックの消費電流の予測値を算出することで、前記複数のブロックでの消費電流の変動を制御する制御回路と、を備え、
前記制御回路は、
前記複数のブロックの消費電流の予測値の増加が第１の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が減少するように制御し、
前記複数のブロックの消費電流の予測値の減少が第２の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が増加するように制御する、
半導体装置。
【請求項２】
前記制御回路は、
第１の消費電流の予測値を算出し、
前記第１の消費電流の予測値を算出した後に、第２の消費電流の予測値を算出し、
前記第２の消費電流の予測値から前記第１の消費電流の予測値を減じた値が前記第１の値よりも大きい場合、前記複数のブロックの一部又は全部の動作を停止させ、又は、前記複数のブロックの一部又は全部の動作周波数を低下させ、
前記第１の消費電流の予測値から前記第２の消費電流の予測値を減じた値が前記第２の値よりも大きい場合、前記複数のブロックの一部又は全部に所定の動作を行わせ、又は、前記複数のブロックの一部又は全部の動作周波数を上昇させる、
請求項１に記載の半導体装置。
【請求項３】
前記第１及び第２の消費電流の予測値は、１以上のクロックサイクルが含まれる期間での消費電流の予測値である、
請求項２に記載の半導体装置。
【請求項４】
前記複数のブロックはメモリブロックを含み、
前記制御信号は前記メモリブロックのイネーブル信号である、
請求項３に記載の半導体装置。
【請求項５】
前記所定の動作は、前記メモリブロックへのダミーリードである、
請求項４に記載の半導体装置。
【請求項６】
前記複数のブロックの少なくとも１つは、前記所定の動作を行う場合に動作するダミー回路を備える、
請求項３に記載の半導体装置。
【請求項７】
前記制御回路は、前記複数のブロックの一部又は全部の動作を強制的に制御した後に、前記複数のブロックの一部又は全部の動作状態を一定時間保持する、
請求項１に記載の半導体装置。
【請求項８】
前記制御回路は、前記複数のブロックの一部又は全部の動作状態を一定時間保持した後に電源電圧をモニタし、前記電源電圧が一定時間継続して所定の範囲である場合、前記複数のブロックの一部又は全部の動作の強制的な制御を解除する、
請求項７に記載の半導体装置。
【請求項９】
前記制御回路は、前記モニタ結果から前記複数のブロックの消費電流の前記予測値の算出に用いるパラメータが格納された記憶部を備える、
請求項１に記載の半導体装置。
【請求項１０】
前記記憶部は、前記制御回路が前記複数のブロックの一部又は全部の動作を制御するためのパラメータが格納される、
請求項９に記載の半導体装置。
【請求項１１】
前記記憶部に格納された前記パラメータは更新可能であり、
前記記憶部に設定されたパラメータを用いて算出した前記複数のブロックの消費電流の予測値が前記所定の電流範囲から外れたことを検出した場合に、前記複数のブロックの一部又は全部の動作を制御し、
前記制御回路は、電源電圧をモニタし、モニタした前記電源電圧の変動が前記所定の電圧範囲内であれば使用したパラメータを前記記憶部の前記パラメータとして保持し、前記電源電圧の変動が前記所定の電圧範囲外であれば前記記憶部に設定されたパラメータの値を変更する、
請求項１０に記載の半導体装置。
【請求項１２】
所定の動作を行う複数のブロックのそれぞれの制御信号をモニタし、
異なるタイミングにおけるモニタ結果に基づいて前記複数のブロックの消費電流の予測値の予測値を算出し、
前記複数のブロックの消費電流の予測値の増加が第１の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が減少するように制御し、
前記複数のブロックの消費電流の予測値の減少が第２の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が増加するように制御する、
半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置の制御方法に関する。
【背景技術】
【０００２】
半導体装置においては、プロセスの微細化によりチップ面積が縮小され、寄生容量も削減された。その一方で、面積が縮小されたにもかかわらず、消費電流は削減されていない。このため、急激な消費電流の増減、いわゆる電流ジャンプが発生すると、内部電圧の急激な上昇又は降下が発生し、電圧値が保証電圧範囲から逸脱する問題が生じている。
【０００３】
なお、消費電流には、チップ内の各部の動作又は停止に応じて増減する動的な消費電力と、リーク電流などのチップの動作による増減が少ない静的な電流とが含まれる。ここでは、動的な消費電力の増減に着目する。
【０００４】
これに対し、クロック周波数の切り替えを制御することで電流ジャンプの発生を抑制する手法が提案されている（特許文献１）。一般に、消費電流の増減は、クロック周波数を切り替える場合に発生しやすい。そこで、本手法では、クロック周波数を短時間で切り替えるのではなく、緩やかにクロック周波数を変化させることで電圧の急激な上昇及び降下を防止している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２４９５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、内部電圧の急激な上昇及び降下は消費電流の急激な増減により生じる。つまり、クロック信号の切り替えは内部電圧の急激な上昇及び降下の発生の一要因に過ぎない。そのため、特許文献１にかかる手法では、クロック信号の切り替え以外の原因による電流ジャンプを防止することがそもそもできない。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態にかかる半導体装置は、複数のブロックと、前記複数のブロックのそれぞれの制御信号をモニタし、異なるタイミングにおけるモニタ結果に基づいて前記複数のブロックの消費電流の予測値を算出することで、前記複数のブロックでの消費電流の変動を制御する制御回路と、を有し、前記制御回路は、前記消費電流の予測値の増加が第１の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が減少するように制御し、前記消費電流の予測値の減少が第２の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が増加するように制御する。
【０００９】
一実施の形態にかかる半導体装置の制御方法は、所定の動作を行う複数のブロックのそれぞれの制御信号をモニタし、異なるタイミングにおけるモニタ結果に基づいて前記複数のブロックの消費電流の予測値の予測値を算出し、前記複数のブロックの消費電流の予測値の増加が第１の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が減少するように制御し、前記複数のブロックの消費電流の予測値の減少が第２の値よりも大きい場合、前記複数のブロックの一部又は全部を消費電流が増加するように制御する。
【発明の効果】
【００１０】
一実施の形態によれば、半導体装置において電流ジャンプが発生したときの内部電圧の変動を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる半導体装置の構成を模式的に示す図である。
【図２】電流ジャンプ制御回路の構成を模式的に示す図である。
【図３】電流ジャンプ制御回路と各ブロックとの接続関係を示す図である。
【図４】実施の形態１にかかる半導体装置の電流ジャンプ制御動作を示すフローチャートである。
【図５】実施の形態１にかかる半導体装置の電流ジャンプ制御動作における状態遷移図である。
【図６】電流ジャンプが発生した場合の強制停止の様子を示す図である。
【図７】実施の形態２にかかる半導体装置の要部の構成を模式的に示す図である。
【図８】実施の形態２にかかる半導体装置における電流ジャンプ制御に用いるパラメータの自動更新方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
【００１３】
実施の形態１
実施の形態１にかかる半導体装置１００について説明する。半導体装置１００は、半導体装置に設けられた各ブロックの消費電流の合計値を予測し、予測値に応じてブロックの動作を制御可能に構成される。なお、消費電流には、チップ内の各部の動作又は停止に応じて増減する動的な消費電力と、リーク電流などのチップの動作による増減が少ない静的な電流とが含まれる。ここでは、動的な消費電力の増減に着目する。
【００１４】
図１に、実施の形態１にかかる半導体装置１００の構成を模式的に示す。半導体装置１００は、ＣＰＵ（Central Processing Unit）１、フラッシュメモリ２、ＳＲＡＭ（Static Random Access Memory）３、周辺Ｉ／Ｏ（Input/Output）４、電流ジャンプ制御回路５及びクロック生成回路６を有する。
【００１５】
ＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４は、バス７を介して相互にデータのやり取りが可能に構成される。
【００１６】
ＣＰＵ１は、フラッシュメモリ２及びＳＲＡＭ３から読み込んだプログラム及びデータや、周辺Ｉ／Ｏ４から受け取った信号に基づいて演算を行う。また、ＣＰＵ１は、演算結果を適宜フラッシュメモリ２及びＳＲＡＭ３に書き込み、又は、周辺Ｉ／Ｏ４に出力することができる。フラッシュメモリ２及びＳＲＡＭ３は、半導体装置１００には、フラッシュメモリ２及びＳＲＡＭ３がメモリブロックとして搭載されているが、フラッシュメモリ２及びＳＲＡＭ３以外のメモリブロックが搭載されてもよいことはいうまでもない。
【００１７】
フラッシュメモリ２及びＳＲＡＭ３は、ＣＰＵ１の演算で用いられるプログラムやデータ、及び、電流ジャンプ制御回路５から受け取ったデータを格納可能に構成される。
【００１８】
電流ジャンプ制御回路５は、半導体装置１００内の各ブロックでの電流を予測し、予測結果に基づいて各ブロックの動作を制御する。本実施の形態においては、電流ジャンプ制御回路５はＣＰＵ１とは独立した、電流ジャンプの制御に特化したチップとして設けられる。よって、電流ジャンプ制御回路５が電流ジャンプ制御処理を行うことで、ＣＰＵ１の負荷の増大を防止できるのみならず、専用回路を用いることで電流ジャンプ制御処理を高速に実行することができる。
【００１９】
電流ジャンプ制御回路５の構成について説明する。図２に、電流ジャンプ制御回路５の構成を模式的に示す。電流ジャンプ制御回路５は、モニタ回路１１、判定回路１２、記憶部１３及び電流制御回路１４を有する。
【００２０】
モニタ回路１１は、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４内部の制御信号をモニタし、モニタ結果ＭＯＮを判定回路１２へ通知する。
【００２１】
判定回路１２は、各ブロックの内部の制御信号のモニタ結果に応じて、電流ジャンプ発生の有無を判定し、検出信号ＤＥＴを出力する。
【００２２】
記憶部１３は、判定回路１２が電流ジャンプ発生の有無を判定するときに用いる各種のパラメータＰ１、及び、電流制御回路１４が各ブロックの動作の制御に用いる各種のパラメータＰ２が格納される。
【００２３】
電流制御回路１４は、判定回路１２での電流ジャンプ発生の検出信号ＤＥＴに基づいて、各部の動作を制御する。
【００２４】
クロック生成回路６は、半導体装置１００内部のブロック、すなわちＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３、周辺Ｉ／Ｏ４、電流ジャンプ制御回路５にクロック信号ＣＬＫを供給する。
【００２５】
次いで、電流ジャンプ制御回路５と各ブロックとの間の接続関係について説明する。図３に、電流ジャンプ制御回路５と各ブロックとの接続関係を示す。
【００２６】
ＣＰＵ１は、乗算制御部１Ａ、乗算器１Ｂ、ＡＮＤ回路１Ｃ及びＯＲ回路１Ｄを有する。乗算制御部１Ａ及び電流制御回路１４は、ＡＮＤ回路１Ｃの一方の入力と反転論理で接続され、ＡＮＤ回路１Ｃへ停止信号ＳＴＰ＿１を出力することができる。乗算制御部１Ａ及びモニタ回路１１はＡＮＤ回路１Ｃの他方の入力と接続され、乗算制御部１ＡはＡＮＤ回路１Ｃへクロックイネーブル信号ＣＥＮ＿１を出力し、モニタ回路１１はクロックイネーブル信号ＣＥＮ＿１をモニタすることができる。ＡＮＤ回路１Ｃの出力は、ＯＲ回路１Ｄの入力の一方と接続される。電流制御回路１４は、ＯＲ回路１Ｄの他方の入力と接続され、ＯＲ回路１Ｄへ強制動作信号ＦＯＲＣＥ＿１を出力することができる。ＯＲ回路１Ｄの出力は、乗算器１Ｂと接続される。
【００２７】
例えば、停止信号ＳＴＰ＿１として「０」、クロックイネーブル信号ＣＥＮ＿１として「１」を与えることで、ＣＰＵ１は動作状態となる。一方、停止信号ＳＴＰ＿１として「１」を与えることで、ＣＰＵ１を強制的に停止させることができる。また、強制動作信号ＦＯＲＣＥ＿１として「１」を与えることで、ＣＰＵ１を強制的に動作状態とすることができる。この場合、例えば、強制動作時に行う演算などを定めたプログラムを予め設定しておき、強制動作時にＣＰＵ１がそのプラグラムを実行してもよい。
【００２８】
フラッシュメモリ２は、フラッシュインターフェイス（Ｉ／Ｆ）２Ａ、フラッシュマクロ２Ｂ、ＡＮＤ回路２Ｃ及びＯＲ回路２Ｄを有する。フラッシュＩ／Ｆ２Ａ及び電流制御回路１４は、ＡＮＤ回路２Ｃの一方の入力と反転論理で接続され、ＡＮＤ回路２Ｃへ停止信号ＳＴＰ＿２を出力することができる。フラッシュＩ／Ｆ２Ａ及びモニタ回路１１はＡＮＤ回路２Ｃの他方の入力と接続され、フラッシュＩ／Ｆ２ＡはＡＮＤ回路２Ｄへクロックイネーブル信号ＣＥＮ＿２を出力し、モニタ回路１１はクロックイネーブル信号ＣＥＮ＿２をモニタすることができる。ＡＮＤ回路２Ｃの出力は、ＯＲ回路２Ｄの入力の一方と接続される。電流制御回路１４は、ＯＲ回路２Ｄの他方の入力と接続され、ＯＲ回路２Ｄへ強制動作信号ＦＯＲＣＥ＿２を出力することができる。ＯＲ回路２Ｄの出力は、フラッシュマクロ２Ｂと接続される。
【００２９】
例えば、停止信号ＳＴＰ＿２として「０」、クロックイネーブル信号ＣＥＮ＿２として「１」を与えることで、フラッシュメモリ２は動作状態となる。一方、停止信号ＳＴＰ＿２として「１」を与えることで、フラッシュメモリ２を強制的に停止させることができる。また、強制動作信号ＦＯＲＣＥ＿２として「１」を与えることで、フラッシュメモリ２を強制的に動作状態とすることができる。この場合、例えば、強制動作時にフラッシュメモリの空読みなどを行うことで、強制動作状態を実現してもよい。
【００３０】
ＳＲＡＭ３は、ＳＲＡＭインターフェイス（Ｉ／Ｆ）３Ａ、ＳＲＡＭマクロ３Ｂ、ＡＮＤ回路３Ｃ、ＯＲ回路３Ｄ及びＡＮＤ回路３Ｅを有する。ＳＲＡＭ  Ｉ／Ｆ３Ａ及び電流制御回路１４は、ＡＮＤ回路３Ｃの一方の入力と反転論理で接続され、ＡＮＤ回路３Ｃへ停止信号ＳＴＰ＿３を出力することができる。ＳＲＡＭ  Ｉ／Ｆ３Ａ及びモニタ回路１１はＡＮＤ回路３Ｃの他方の入力と接続され、ＳＲＡＭ  Ｉ／Ｆ３ＡはＡＮＤ回路３Ｄへクロックイネーブル信号ＣＥＮ＿３を出力し、モニタ回路１１はクロックイネーブル信号ＣＥＮ＿３をモニタすることができる。ＡＮＤ回路３Ｃの出力は、ＯＲ回路３Ｄの入力の一方と接続される。ＯＲ回路３Ｄの出力は、ＳＲＡＭマクロ３Ｂと接続される。電流制御回路１４は、ＯＲ回路３Ｄの他方の入力と接続され、かつ、ＡＮＤ回路３Ｅの一方の入力と反転論理で接続され、ＯＲ回路３Ｄ及びＡＮＤ回路３Ｅへ強制動作信号ＦＯＲＣＥ＿３を出力することができる。ＳＲＡＭ  Ｉ／Ｆ３Ａ及びモニタ回路１１はＡＮＤ回路３Ｅの他方の入力と接続され、ＳＲＡＭ  Ｉ／Ｆ３ＡはＡＮＤ回路３Ｄへライトイネーブル信号ＷＥＮ＿３を出力し、モニタ回路１１はライトイネーブル信号ＷＥＮ＿３をモニタすることができる。ＡＮＤ回路３Ｅの出力は、ＳＲＡＭマクロ３Ｂと接続される。
【００３１】
例えば、停止信号ＳＴＰ＿３として「０」、クロックイネーブル信号ＣＥＮ＿３として「１」を与えることで、ＳＲＡＭ３は動作状態となる。一方、停止信号ＳＴＰ＿３として「１」を与えることで、ＳＲＡＭ３を強制的に停止させることができる。また、強制動作信号ＦＯＲＣＥ＿３として「１」を与えることで、ライトイネーブル信号ＷＥＮ＿３が「０」及び停止信号ＳＴＰ＿３が「１」の場合でも、ＳＲＡＭ３を強制的に動作状態とすることができる。この場合、例えば、強制動作時にＳＲＡＭの空読みなどを行うことで、強制動作状態を実現してもよい。
【００３２】
周辺Ｉ／Ｏ４は、周辺回路制御部４Ａ、周辺回路４Ｂ、ＡＮＤ回路４Ｃ及びＯＲ回路４Ｄを有する。周辺回路制御部４Ａ及び電流制御回路１４は、ＡＮＤ回路４Ｃの一方の入力と反転論理で接続され、ＡＮＤ回路４Ｃへ停止信号ＳＴＰ＿４を出力することができる。周辺回路制御部４Ａ及びモニタ回路１１はＡＮＤ回路４Ｃの他方の入力と接続され、周辺回路制御部４ＡはＡＮＤ回路４Ｄへクロックイネーブル信号ＣＥＮ＿４を出力し、モニタ回路１１はクロックイネーブル信号ＣＥＮ＿４をモニタすることができる。ＡＮＤ回路４Ｃの出力は、ＯＲ回路４Ｄの入力の一方と接続される。電流制御回路１４は、ＯＲ回路４Ｄの他方の入力と接続され、ＯＲ回路４Ｄへ強制動作信号ＦＯＲＣＥ＿４を出力することができる。ＯＲ回路４Ｄの出力は、周辺回路４Ｂと接続される。
【００３３】
例えば、停止信号ＳＴＰ＿４として「０」、クロックイネーブル信号ＣＥＮ＿４として「１」を与えることで、周辺Ｉ／Ｏ４は動作状態となる。一方、停止信号ＳＴＰ＿４として「１」を与えることで、周辺Ｉ／Ｏ４を強制的に停止させることができる。また、強制動作信号ＦＯＲＣＥ＿４として「１」を与えることで、周辺Ｉ／Ｏ４を強制的に動作状態とすることができる。この場合、例えば、強制動作時の周辺Ｉ／Ｏ４の動作を、周辺Ｉ／Ｏの種類に応じて予め定めておいてもよい。
【００３４】
次いで、電流ジャンプ制御回路５の動作について説明する。図４は、実施の形態１にかかる半導体装置１００の電流ジャンプ制御動作を示すフローチャートである。図５は、実施の形態１にかかる半導体装置１００の電流ジャンプ制御動作における状態遷移図である。
【００３５】
ステップＳ１１
上述したように、モニタ回路１１は、ＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４のクロックイネーブル信号ＣＥＮ＿１〜ＣＥＮ４と、ＳＲＡＭ３のライトイネーブル信号ＷＥＮ＿３とをモニタする（図５の「ＳＴＡＢＬＥ」）。
【００３６】
判定回路１２は、クロックイネーブル信号ＣＥＮ＿１〜ＣＥＮ４及びライトイネーブル信号ＷＥＮ＿３の異なるタイミングにおけるモニタ結果に基づいて、ＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４での消費電量の合計の予測値を算出する。具体的には、ｎ（ｎは整数）サイクル目で算出した予測値ＰＶｎ（第１の消費電流の予測値とも称する）と、ｎサイクル目のよりも後のｍ（ｍはｎ＋１以上の整数）サイクル目で算出した予測値ＰＶｍ（第２の消費電流の予測値とも称する）とを算出する。
【００３７】
予測値の算出は、例えば以下のように行うことが可能である。判定回路１２は、例えば、クロック信号ＣＬＫの立ち上がりにおけるモニタ結果を参照し、消費電流を算出する。例えば、ＳＲＡＭ３がライト状態、すなわち、ＳＴＰ＿３＝０、ＣＥＮ＿３＝１、ＷＥＮ＿３＝１の場合、ＳＲＡＭ３の消費電流の予測値を１．５ｍＡ／ｃｙｃｌｅと見積もる。また、ＳＲＡＭ３がリード状態、すなわち、ＳＴＰ＿３＝０、ＣＥＮ＿３＝１、ＷＥＮ＿３＝０の場合、ＳＲＡＭ３の消費電流の予測値を１．０ｍＡ／ｃｙｃｌｅと見積もる。
【００３８】
また、例えば、フラッシュメモリ２がリード状態の場合、すなわち、ＳＴＰ＿２＝０、ＣＥＮ＿２＝１の場合、フラッシュメモリ２の消費電流の予測値を４．０ｍＡ／ｃｙｃｌｅと見積もる。更に、例えば、ＣＰＵ１が演算実行状態の場合、すなわち、ＳＴＰ＿１＝０、ＣＥＮ＿１＝１の場合、ＣＰＵ１の消費電流の予測値を０．５ｍＡ／ｃｙｃｌｅと見積もる。
【００３９】
クロックイネーブル信号ＣＥＮ＿１〜ＣＥＮ４とＳＲＡＭ３のライトイネーブル信号ＷＥＮ＿３とに対応する各ブロックでの消費電流の予測値は、パラメータとして記憶部１３に格納される。判定回路１２は、クロックイネーブル信号ＣＥＮ＿１〜ＣＥＮ４とＳＲＡＭ３のライトイネーブル信号ＷＥＮ＿３のモニタ結果に応じて記憶部１３のパラメータを参照することで、各ブロックの消費電流の予測値を読み出し、合算することができる。
【００４０】
ここで、各ブロックの消費電流の予測値を示すパラメータは、電流シミュレーションにより算出することが可能であり、固定値でもよいし、外部から書き換え可能なパラメータであってもよい。
【００４１】
ステップＳ１２
判定回路１２は、クロックサイクルごとに算出した消費電流の合計の予測値に基づき、電流ジャンプを検出する。具体的には、ｎサイクル目で算出した予測値ＰＶｎに対し、ｍサイクル目で算出した予測値ＰＶｍが所定の値（閾値ＪＵＭＰ＿ＵＰ＿ＭＡＸ、第１の値とも称する）よりも増加したか、または、所定の値（閾値ＪＵＭＰ＿ＤＷＮ＿ＭＡＸ、第２の値とも称する）よりも減少したかを検出する。すなわち、ＰＶｍ−ＰＶｎ＞ＪＵＭＰ＿ＵＰ＿ＭＡＸであるか、または、ＰＶｎ−ＰＶｍ＞ＪＵＭＰ＿ＤＷＮ＿ＭＡＸであるかどうかを検出する。判定回路１２は、電流ジャンプが発生したことを、検出信号ＤＥＴとして出力する。
【００４２】
ここで、閾値ＪＵＭＰ＿ＵＰ＿ＭＡＸ及び閾値ＪＵＭＰ＿ＤＷＮ＿ＭＡＸは、判定に用いられるパラメータとして、例えば記憶部１３に格納される。記憶部１３に格納される閾値ＪＵＭＰ＿ＵＰ＿ＭＡＸ及び閾値ＪＵＭＰ＿ＤＷＮ＿ＭＡＸは固定値でもよいし、外部から書き換え可能なパラメータであってもよい。
【００４３】
閾値ＪＵＭＰ＿ＵＰ＿ＭＡＸ及び閾値ＪＵＭＰ＿ＤＷＮ＿ＭＡＸは予め定められた値であってもよい。
【００４４】
判定回路１２は、複数のクロックサイクルで消費電流の予測値の平均をとり、異なる期間の平均予測値を比較してもよい。例えば、連続する５クロックサイクルの間の第１の平均予測値を算出し、その後に連続する５クロックサイクルの第２の平均予測値を算出し、第１及び第２の平均予測値を比較することで、電流ジャンプを検出してもよい。
【００４５】
さらに、判定回路１２は、クロック信号ＣＬＫの周波数に応じて、消費電流の予測値を算出してもよい。この場合、クロック信号の周波数がｆ１の場合の予測値Ｅ１を、クロック信号の周波数がｆ２の場合の予測値Ｗ２に換算する場合、Ｗ１を分周比（ｆ１／ｆ２）で除算すればよい（Ｗ２＝Ｗ１／（ｆ１／ｆ２））。
【００４６】
ステップＳ１３
電流制御回路１４は、検出信号ＤＥＴにより電流ジャンプの発生が通知された場合、ＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４の一部又は全部に停止信号又は強制動作信号を出力する。
【００４７】
つまり、電流の急峻な増加が検出された場合には、電流制御回路１４は、停止信号ＳＴＰ＿１〜ＳＴＰ＿４の一部又は全部を出力し、消費電流の予測値が所定値よりも小さくなるように制御する。これは、図５の「ＳＴＡＢＬＥ」から「ＤＯＷＮ」への状態遷移に対応する。
【００４８】
電流の急峻な減少が検出された場合には、電流制御回路１４は、強制動作信号ＦＯＲＣＥ＿１〜ＦＯＲＣＥ＿４の一部又は全部を出力し、消費電流の予測値が所定値よりも大きくなるように制御する。これは、図５の「ＳＴＡＢＬＥ」から「ＵＰ」への状態遷移に対応する。消費電流を増やす方法として、例えばフラッシュメモリ２やＳＲＡＭ３へのダミーリード動作、すなわちリードはするがリードした値は使用しない、といったことも可能である。また、各ブロックに通常動作では使用しないダミー回路を設けておき、ダミー回路を動作させることでも可能である。
【００４９】
ＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４のうちで強制的に停止又は動作させられるものは、優先順位に基づいて選択されてもよいし、予め決定されていてもよい。強制的に停止又は動作させられるもの優先順位は、例えば記憶部１３に格納され、電流制御回路１４が記憶部１３から読み出してもよい。
【００５０】
例えば、ＣＰＵ１で中断できない処理が実行中の場合、ＣＰＵ１の強制停止を回避し、強制停止してもエラー等が生じることのないＳＲＡＭなどの他のブロックを強制停止してもよい。また、フラッシュメモリ２やＳＡＲＭ３を優先的に強制停止してもよい。この場合、ＣＰＵ１からのアクセスに対してフラッシュメモリ２やＳＡＲＭ３の応答が遅延するものの、フラッシュメモリ２やＳＡＲＭ３が動作状態に復帰した後にＣＰＵ１が所望のデータを読み出すことができる。
【００５１】
ステップＳ１４
その後、電流ジャンプによる電圧変動の影響を抑制するため、強制停止状態又は強制動作状態を一定の時間だけ保持する。強制停止状態又は強制動作状態を保持する一定時間は、回路シミュレーションなどによって算出し、記憶部１３に予めパラメータとして格納することで、電流制御回路１４が読み出すことが可能である。強制停止又は強制動作の実行とその一定時間の保持は、図５の「ＨＯＬＤ」（待機１）に対応する。
【００５２】
その後、半導体装置１００の内部電圧Ｖ、すなわち電源電圧をモニタする。内部電圧Ｖのモニタは、例えば電流制御回路１４が行うことが可能である。具体的には、内部電圧Ｖが所定期間継続して所定の範囲内で安定しているかをモニタする。内部電圧のモニタは、例えば電流制御回路１４が行うことが可能である。モニタする所定期間は、記憶部１３に予めパラメータとして格納することで、電流制御回路１４が読み出すことが可能である。なお。内部電圧Ｖが安定している場合には、強制停止状態又は強制動作状態を解除して、モニタ回路１１による信号モニタに復帰し、引き続き電流ジャンプの有無をモニタする。内部電圧のモニタと動作状態の維持、解除は、図５の「Ｖ  ＳＴＡＢＬＥ」（待機２）に対応する。
【００５３】
以上説明したように、半導体装置１００によれば、電流ジャンプの発生を検出し、ブロックの強制動停止又は強制動作を行うことで消費電流を制御し、その結果、内部電圧の変動を抑制できる。
【００５４】
次いで、半導体装置１００における電流ジャンプの抑制について検討する。図６に、電流ジャンプが発生した場合の強制停止の様子を示す。図６では、左側に比較例として電流ジャンプ発生時に強制停止を行わなかった場合を示し、右側に本実施の形態において電流ジャンプ発生時に強制停止を行った場合を示した。図６に示すように、左側の比較例では、時刻１０μｓｅｃにおいて電流の急激な上昇が発生し、その結果、内部電圧が補償電圧の下限値ＭＩＮよりも低下してしまっている。そのため、この場合には、半導体装置に誤作動が生じるおそれがある。
【００５５】
これに対し、半導体装置１００によれば、図６の右側に示すように、時刻１０μｓｅｃにおいて電流の急激な上昇が発生したときに、電流ジャンプ制御回路５が電流ジャンプの発生を検出し、停止可能なブロックを強制停止させる。これにより、比較例と比べ、電圧降下が小さくなり、内部電圧が補償電圧の下限値ＭＩＮよりも大きな範囲に収まっていることが理解できる。
【００５６】
以上説明したように、本構成によれば、半導体装置の各ブロック内部における信号をモニタして消費電流を予測することで、発生しうる電流の急激な変動の影響を低減するため、ブロックを強制的に停止又は動作させることができる。その結果、電流ジャンプに起因して内部電圧が補償電圧範囲から逸脱することを防止することができる。
【００５７】
実施の形態２
実施の形態２にかかる半導体装置２００について説明する。図７に、実施の形態２にかかる半導体装置２００の要部の構成を模式的に示す。半導体装置２００は、外部制御回路１０００の制御により、記憶部１３のレジスタに格納された電流ジャンプ制御に用いるパラメータの自動更新を行うことが可能に構成される。
【００５８】
半導体装置２００は、半導体装置１００にＲＯＭ（Read Only Memory）８を追加した構成を有する。ＲＯＭ８は、バス７（不図示）を介して、ＣＰＵ１などの半導体装置２００内の他のブロックとデータのやり取りが可能である。半導体装置２００は、外部バス１００２を介して、外部制御回路１０００及びウォッチドッグタイマ（ＷＤＴ）１００１との間で信号やデータのやり取りが可能である。
【００５９】
電流ジャンプ制御に用いるパラメータの自動更新方法について説明する。図８は、実施の形態２にかかる半導体装置２００における電流ジャンプ制御に用いるパラメータの自動更新方法を示すフローチャートである。
【００６０】
ステップＳ２１
外部制御回路１０００は、外部バス１００２を介して半導体装置２００に制御信号を与えることで、電流ジャンプ制御に用いるパラメータの自動更新を半導体装置２００に指令する。これにより、ＣＰＵ１は、ＲＯＭ８内に格納されたパラメータを初期化する。また、外部制御回路１０００は、ＷＤＴ１００１を起動する。
【００６１】
ステップＳ２２
ＣＰＵ１は、例えば所定のプログラムを実行することで、ＲＯＭ８に格納されるパラメータを更新する。ＣＰＵ１が用いる所定のプログラムは、例えばＲＯＭ８に予め格納されており、必要に応じてＣＰＵ１が読み出してもよい。
【００６２】
ステップＳ２３
ＣＰＵ１は、更新したパラメータを読み出し、電流ジャンプ制御回路５の記憶部１３のレジスタに、電流ジャンプ制御に用いられるパラメータとして書き込む。
【００６３】
ステップＳ２４
ＣＰＵ１は、電流ジャンプ制御動作をテストするためのテストプログラムを実行する。このテストプログラムは、電流ジャンプが発生する又は電流ジャンプが発生する確率が高い処理を半導体装置２００に行わせるものである。
【００６４】
ステップＳ２５
ＣＰＵ１は、電流ジャンプが発生して電流ジャンプ制御回路５による電流ジャンプ制御動作が行われた場合に、半導体装置２００の内部電圧が所望の範囲内に収まっているかを監視する。なお、本実施の形態では、半導体装置２００の内部電圧が所望の範囲内に収まっている場合、半導体装置２００からＷＤＴ１００１へ停止信号が出力される。
【００６５】
ステップＳ２６
半導体装置２００の内部電圧が所望の範囲から逸脱した場合、ＷＤＴ１００１は起動から所定期間の経過後、半導体装置２００にリセット信号ＲＥＳを出力する。これにより、ＣＰＵ１は、ステップＳ２２に戻り、ＲＯＭ８のパラメータを再度更新し、ステップＳ２３以降の処理を行う。
【００６６】
ステップＳ２７
半導体装置２００の内部電圧が所望の範囲内である場合、半導体装置２００からＷＤＴ１００１へ停止信号が出力される。その結果、ＷＤＴ１００１が停止し、パラメータの更新動作が終了する。
【００６７】
以上、本構成によれば、テストプラグラムによって生成される電流ジャンプによって半導体装置の内部電圧が所定の範囲から逸脱しないように、電流ジャンプ制御に用いるパラメータを設定できることが理解できる。
【００６８】
本実施の形態にかかる電流ジャンプ制御に用いるパラメータの自動更新は、例えば、半導体装置２００の出荷検査時、起動時、又は、装置などへ実装した後に指令を与えることで、実行することが可能である。これにより、半導体装置の製造誤差、半導体装置の使用環境によるばらつきを補正し、より確実に電流ジャンプによる内部電圧の変動を抑制することができる。
【００６９】
その他の実施の形態
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、上述の実施の形態では、強制的に停止、動作させるブロックとして、ＣＰＵ１、フラッシュメモリ２、ＳＲＡＭ３及び周辺Ｉ／Ｏ４を用いたが、これは例示に過ぎない。これらのブロック以外の各種のプロセッサやコントローラなどのブロックを強制的に停止、動作させてもよい。
【００７０】
また、面積が小さく消費電流の多い専用のブロックを予め半導体装置に設け、このブロックを強制動作させることで、消費電量を増大させてもよい。
【００７１】
例えば、消費電力の多いブロックを優先的に強制停止又は強制動作対象とすることで、簡易な制御で電流ジャンプの抑制を実現することができる。これにより、消費電流の変動が小さなブロックをモニタせずともよく、電流ジャンプ制御回路５の回路規模を抑制することが可能である。
【００７２】
強制停止に代えて、動作させるブロックの動作周波数を強制的に低下させてもよい。これにより、ブロックの消費電流を低減することが可能である。また、強制動作に代えて、動作させるブロックの動作周波数を強制的に増加させてもよい。これにより、ブロックの消費電流を増大させることが可能である。
【００７３】
上述の実施の形態において、図４のステップＳ１４の待機時間は、ブロック毎に異なっていてもよい。
【符号の説明】
【００７４】
１  ＣＰＵ
１Ａ  乗算制御部
１Ｂ  乗算器
１Ｃ、２Ｃ、３Ｃ、３Ｄ、４Ｃ  ＡＮＤ回路
１Ｄ、２Ｄ、３Ｄ、４Ｄ  ＯＲ回路
２  フラッシュメモリ
２Ａ  フラッシュＩ／Ｆ
２Ｂ  フラッシュマクロ
３  ＳＲＡＭ
３Ａ  ＳＲＡＭ  Ｉ／Ｆ
３Ｂ  ＳＲＡＭマクロ
４  周辺Ｉ／Ｏ
４Ａ  周辺回路制御部
４Ｂ  周辺回路
５  電流ジャンプ制御回路
６  クロック生成回路
７  バス
８  ＲＯＭ
１１  モニタ回路
１２  判定回路
１３  記憶部
１４  制御回路
１００、２００  半導体装置
１０００  外部制御回路
１００１  ＷＤＴ
１００２  外部バス
【図１】
2019114011.tif 000003
【図２】
2019114011.tif 000004
【図３】
2019114011.tif 000005
【図４】
2019114011.tif 000006
【図５】
2019114011.tif 000007
【図６】
2019114011.tif 000008
【図７】
2019114011.tif 000009
【図８】
2019114011.tif 000010