(57)【要約】【課題】回路規模の増大を抑制しつつ、急激な電流増減による誤動作を防止すること。【解決手段】半導体装置は、複数のモジュールを備え、各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を複数のモジュールごとに対応付けて記憶したテーブルと、各モジュールのクロック動作周波数を取得し、テーブルを参照し、各クロック動作周波数に基づいてスコアを特定するスコア特定部と、特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、を備える。【選択図】図２
2018195243.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを備える半導体装置であって、
各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルと、
各モジュールのクロック動作周波数を取得し、前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定するスコア特定部と、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、
を備える半導体装置。
【請求項２】
前記スコアは、当該スコアに対応付けられたモジュールが、当該スコアに対応付けられた動作周波数により動作した場合に要する消費電流値に基づき定められた値である
請求項１に記載の半導体装置。
【請求項３】
前記スコアは、前記半導体装置における当該モジュールの重要度、又は、前記半導体装置の許容電流仕様に基づき定められた値である
請求項２に記載の半導体装置。
【請求項４】
前記所定の閾値を格納する閾値レジスタをさらに備える
請求項１に記載の半導体装置。
【請求項５】
前記複数のモジュールの起動制御を行うための複数のモジュール起動制御レジスタをさらに備え、
前記テーブルは、
前記モジュールが前記動作周波数により動作した場合に要する消費電流値を、前記複数のモジュールごとにさらに対応付けて記憶し、
前記スコア特定部は、
前記モジュール起動制御レジスタの値と、前記クロック動作周波数とに基づいて当該モジュールにおける消費電流値を算出し、当該算出した消費電流値に対応付けられたスコアを特定する
請求項１に記載の半導体装置。
【請求項６】
前記複数のモジュールのそれぞれに対応し、
前記指示に基づいて、前記モジュール起動制御レジスタの値を所定の時間遅延させて、対応するモジュールへ出力する複数の遅延調整回路をさらに備え、
前記所定の時間は、前記複数の遅延調整回路のそれぞれで異なる時間である、
請求項５に記載の半導体装置。
【請求項７】
前記複数の遅延調整回路のそれぞれは、前記所定の時間を外部から設定可能な遅延時間設定レジスタを備える
請求項６に記載の半導体装置。
【請求項８】
前記複数の遅延調整回路のそれぞれに対応し、対応する遅延調整回路からの出力を保持するフラグレジスタをさらに備える
請求項６に記載の半導体装置。
【請求項９】
複数のモジュールのそれぞれにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルを備える半導体装置の制御方法であって、
各モジュールのクロック動作周波数を取得し、
前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定し、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、及び半導体装置の制御方法に関し、例えば、複数のモジュールを備える半導体装置、及び半導体装置の制御方法に関する。
【背景技術】
【０００２】
半導体集積回路では、内部回路の電源スイッチをオフ状態からオン状態に切り替えるときに電流が一斉に発生することにより誤動作することが知られている。特許文献１には、半導体集積回路における突入電流観測回路に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１８７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、ＭＣＵ（Micro Control Unit）において突入電流によるＶｄｄの瞬間的な電圧降下又は上昇を防ぐために、電源ユニットの供給能力にマージンを確保することや、ＭＣＵ内蔵容量を付加するという対策が考え得る。しかしながら、これらの対策はいずれもチップサイズの増大を招くという問題点があった。尚、特許文献１ではこれらの問題を解決することができない。
【０００５】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００６】
一実施の形態によれば、半導体装置は、各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルと、各モジュールのクロック動作周波数を取得し、前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定するスコア特定部と、前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、を備えるものである。
【発明の効果】
【０００７】
前記一実施の形態によれば、回路規模の増大を抑制しつつ、急激な電流増減による誤動作を防止できる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態１にかかるＭＣＵの構成を示すブロック図である。
【図２】本実施の形態１にかかる動作電流通知回路の構成を示すブロック図である。
【図３】本実施の形態１にかかる消費電流テーブルの例を示す図である。
【図４】本実施の形態１にかかる遅延調整部の構成を示すブロック図である。
【図５】本実施の形態１にかかるモジュールストップ制御を示すタイミングチャートである。
【図６】本実施の形態１にかかるモジュールストップ制御を示すタイミングチャートである。
【図７】関連技術にかかるＭＣＵの構成例を示すブロック図である。
【図８】関連技術にかかるモジュールストップ機能付きＭＣＵの構成を示すブロック図である。
【図９】関連技術にかかるモジュールストップ制御の課題を説明するための図である。
【発明を実施するための形態】
【０００９】
以下では、上述した課題を解決するための手段を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１０】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１１】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１２】
ここで、以下の実施の形態を想到するに至った経緯について説明する。まず、ＭＣＵでは、搭載されているモジュールの同時動作による急激な電流増減に対して、内部電源供給が追いつかないため、Ｖｄｄの電圧降下又は上昇が瞬間的に発生する。これによりフリップフロップのセットアップ又はホールド違反が発生して誤動作する。
【００１３】
図７は、電源変動を吸収するための関連技術にかかるＭＣＵ９００の構成例を示すブロック図である。ＭＣＵ９００は、電源ユニット９１０及び内部モジュール９２０等を備えている。ここでは、ＭＣＵ９００の瞬間的なＶｄｄの電圧降下又は上昇に対応するため次の２つの対策が採られている。１つ目の対策は、電源ユニット９１０の供給能力にマージンを持たせることである。具体的には、電源ユニット９１０の内蔵レギュレータ９１１、９１２、９１３、９０１４、・・・の搭載個数を増やすことである。２つ目の対策は、Ｖｄｄ電源供給ラインにＭＣＵ内蔵容量９３０を付加し、Ｖｄｄ電源変動を吸収させることである。
【００１４】
しかしながら、これらの対策は、いずれもチップサイズの増大に繋がり、ＭＣＵ開発時のコスト競争力の低下を招くという問題がある。そのため、ＭＣＵの内部モジュールの同時動作を制御するなど、Ｖｄｄの電圧降下又は上昇を低減させることが必要となる。
【００１５】
尚、上述した特許文献１にかかる突入電流観測回路は、観測対象の回路ブロックに流れる突入電流に応じてリングオシレータが発振し、リングオシレータの発振周波数をカウンタで測定するものである。そして、カウント数と電源電圧レベルとの関係を予め定めた変換テーブルを読み出し専用メモリに形成する点が開示されている。
【００１６】
また、近年、ＭＣＵに搭載された複数のモジュールの起動順序や起動タイミングをユーザプログラムにより指定できるモジュールストップ機能付きのＭＣＵが開発されている。図８は、関連技術にかかるモジュールストップ機能付きＭＣＵ９０００の構成を示すブロック図である。ＭＣＵ９０００は、ＣＰＵ（Central Processing Unit）１と、ＲＡＭ（Random Access Memory）１１と、ＲＯＭ（Read Only Memory）１２と、ＭＳＴＰＣＲレジスタ３と、モジュールＩＰ＿Ａ、ＩＰ＿Ｂ、ＩＰ＿Ｃ及びＩＰ＿Ｄとを備える。
【００１７】
ＣＰＵ１とＲＡＭ１１とは、命令バス２１、オペランドバス２２及びメモリバス２３を介して接続されている。ＣＰＵ１とＲＯＭ１２とは、命令バス２１、オペランドバス２２及びメモリバス２４を介して接続されている。ＣＰＵ１とＭＳＴＰＣＲレジスタ３及びモジュールＩＰ＿Ａ等とは、それぞれ命令バス２１、オペランドバス２２、内部メインバス２５及び内部周辺バス２６を介して接続されている。
【００１８】
ＭＳＴＰＣＲレジスタ３は、ＭＳＴＰＣＲビット３Ａ、３Ｂ、３Ｃ及び３Ｄを備える。ＭＳＴＰＣＲビット３Ａ〜３Ｄのそれぞれは、モジュールＩＰ＿Ａ〜ＩＰ＿Ｄに対応して接続され、対応するモジュールを起動させるか否かを示す１ビットの情報を保持する。
【００１９】
ＣＰＵ１は、ユーザプログラムの実行により、ＭＳＴＰＣＲビット３Ａ〜３Ｄのそれぞれに対する書き込み命令を発行する。これにより、ＭＳＴＰＣＲビット３Ａ〜３Ｄのそれぞれには、書き込み命令により指定された値が書き込まれる。また、ＣＰＵ１は、ユーザプログラムの実行により、ＭＳＴＰＣＲビット３Ａ〜３Ｄのそれぞれに対する読み出し命令を発行する。これにより、ＭＳＴＰＣＲビット３Ａ〜３Ｄのそれぞれの値を読み出される。
【００２０】
モジュールＩＰ＿Ａ〜ＩＰ＿Ｄのそれぞれは、対応するＭＳＴＰＣＲビット３Ａ〜３Ｄのそれぞれに書き込まれた値に応じて、起動を行う。
【００２１】
図９は、関連技術にかかるモジュールストップ制御の課題を説明するための図である。例えば、まず、ユーザプログラムによりＭＳＴＰＣＲビット３Ａに起動設定がされることに応じて、モジュールＩＰ＿Ａが起動し、動作状態となる。次に、ユーザプログラムによりＭＳＴＰＣＲビット３Ｂ〜３Ｄに同時に起動設定がされたものとする。そのため、モジュールＩＰ＿Ｂ〜ＩＰ＿Ｄは同時に起動し、動作状態となる。ここで、モジュールＩＰ＿Ｂ〜ＩＰ＿Ｄの起動に伴い急激な電流増加が発生する。そのため、ＭＣＵ９０００内のフリップフロップのセットアップ又はホールド違反が発生して誤動作し得ることとなる。
【００２２】
誤動作を防ぐためには、ユーザプログラムにおいて各モジュールの起動タイミングを詳細に調整して指定することが考えられるが、モジュール数は多数であり大変煩雑である。そのため、実際には、複数のモジュールの起動タイミングが集中してしまうことがあり（つまり複数のモジュールが同時に起動する）、突入電流に伴う電圧降下／上昇が起こり得る。
そこで、上述した課題を解決するための実施の形態を以下に説明する。
【００２３】
＜実施の形態１＞
図１は、本実施の形態１にかかるＭＣＵ１０００の構成を示すブロック図である。ＭＣＵ１０００は、ＣＰＵ１と、ＭＳＴＰＣＲレジスタ３と、動作電流通知回路４と、遅延調整ブロック５と、ＡＮＤ回路６Ａ〜６Ｄと、モジュールＩＰ＿Ａ〜ＩＰ＿Ｄとを備える。ＣＰＵ１と、ＭＳＴＰＣＲレジスタ３、遅延調整ブロック５並びにモジュールＩＰ＿Ａ〜ＩＰ＿Ｄとはそれぞれ、バス２を介して接続されている。尚、バス２は、図８の命令バス２１、オペランドバス２２、内部メインバス２５及び内部周辺バス２６を含むものとする。
【００２４】
ＭＳＴＰＣＲレジスタ３は、上述したＭＳＴＰＣＲビット３Ａ、３Ｂ、３Ｃ及び３Ｄに加えて、フラグＦＬＧ＿Ａ、ＦＬＧ＿Ｂ、ＦＬＧ＿Ｃ及びＦＬＧ＿Ｄを備える。フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄのそれぞれは、モジュールＩＰ＿Ａ〜ＩＰ＿Ｄに対応する。フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄは、対応するモジュールＩＰ＿Ａ〜ＩＰ＿Ｄの起動状態を示す１ビットの情報を保持する。
【００２５】
遅延調整ブロック５は、ＭＳＴＰＣＲレジスタ３とＡＮＤ回路６Ａ〜６Ｄと接続されている。遅延調整ブロック５は、遅延調整部５Ａ〜５Ｄを備える。尚、ここでは、遅延調整部５Ａ〜５Ｄの概要を説明し、詳細は後述する。遅延調整部５Ａ〜５Ｄのそれぞれは、遅延設定値ｄｔＡ〜ｄｔＤに従い遅延時間を設定する。尚、図１では、遅延調整部５Ａに１マイクロ秒、遅延調整部５Ｂに２マイクロ秒、遅延調整部５Ｃに３マイクロ秒、遅延調整部５Ｄに４マイクロ秒が遅延時間として設定されているものとする。但し、遅延時間はこれに限定されず、少なくとも、各遅延調整部の間で遅延時間が異なるものであればよい。これにより、ＣＰＵ１が設定するＭＳＴＰＣＲビット３Ａ〜３Ｄの起動タイミングの指定が重なったとしても、モジュールＩＰ＿Ａ〜ＩＰ＿Ｄの起動タイミングを分散させることができる。
【００２６】
また、遅延調整部５Ａ〜５Ｄのそれぞれは、対応するＭＳＴＰＣＲビット３Ａ〜３Ｄの値をＡＮＤ回路６Ａ〜６Ｄに出力する。その際、遅延調整部５Ａ〜５Ｄのそれぞれは、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌが“１”を示す場合、対応するＭＳＴＰＣＲビット３Ａ〜３Ｄの値を設定された遅延時間分遅延させて出力する。また、遅延調整部５Ａ〜５Ｄのそれぞれは、出力値をフラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄへもフィードバックする。つまり、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄのそれぞれには、遅延調整部５Ａ〜５Ｄのそれぞれの出力値が設定される。
【００２７】
ＣＰＵ１は、ユーザプログラムの実行により、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄのそれぞれに対する読み出し命令を発行し、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄのそれぞれの値を読み出す。また、ＣＰＵ１は、読み出した値が“１”であった場合は、そのフラグに対して“０”を書き込む。
【００２８】
ＡＮＤ回路６Ａ〜６Ｄのそれぞれは、クロック信号ｃｌｋ＿Ａ〜ｃｌｋ＿Ｄのそれぞれの入力と、遅延調整部５Ａ〜５Ｄのそれぞれの入力とを論理積演算した結果を、モジュールＩＰ＿Ａ〜ＩＰ＿Ｄのそれぞれへ出力する。
【００２９】
動作電流通知回路４は、ＭＳＴＰＣＲレジスタ３からＭＳＴＰＣＲビット３Ａ〜３Ｄの値ｂ［０］〜ｂ［３］と、クロック信号ｃｌｋ＿Ａ〜ｃｌｋ＿Ｄとを入力し、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌを遅延調整ブロック５へ出力する。尚、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌは、各モジュールの起動タイミングを分散させる指示の一例である。
【００３０】
図２は、本実施の形態１にかかる動作電流通知回路４の構成を示すブロック図である。動作電流通知回路４は、点数判定回路４１と、点数比較回路４２とを備える。点数判定回路４１は、スコア特定部の一例である。点数判定回路４１は、消費電流テーブル４１１を備える。消費電流テーブル４１１は、モジュールごとに複数の動作周波数と、消費電流値と、点数とを対応付けた情報である。ここで、消費電流値は、そのモジュールがその動作周波数で動作した時に消費される消費電流値である。そして、各動作周波数の消費電流値の求め方は、次の通りである。まず、モジュール当たりの最大動作周波数における最大消費電流値を予め測定する。次に、当該モジュールにおいて想定される複数の動作周波数ごとの消費電流値を、最大動作周波数との比率により求める。また、点数（スコアの一例）は、その消費電流値がＭＣＵ１０００の許容電流仕様に占める割合やＭＣＵ１０００におけるそのモジュールの重要度に応じて予め定められた値である。尚、各点数は、各モジュールの最大の点数を合計すると１００点となるように定められるものとする。
【００３１】
図３は、本実施の形態１にかかる消費電流テーブル４１１の例を示す図である。例えば、モジュールＩＰ＿Ａの最大動作周波数が２４ＭＨｚであり、モジュールＩＰ＿Ａを２４ＭＨｚで動作させた場合の最大消費電流値が２ｍＡであることを示す。そして、モジュールＩＰ＿Ａにおける消費電流値２ｍＡについてＭＣＵ１０００の許容電流仕様に基づき点数「１０」をユーザが割り当てたことを示す。また、モジュールＩＰ＿Ａにおいて最大以外に想定される動作周波数は、１２ＭＨｚと６ＭＨｚが挙げられるため、それぞれ最大動作周波数との比率に従い、消費電流値を１ｍＡ及び０．５ｍＡを求めたことを示す。さらに、動作周波数１２ＭＨｚ及び消費電流値１ｍＡにおける点数を「３」、動作周波数６ＭＨｚ及び消費電流値０．５ｍＡにおける点数を「１」とユーザが割り当てたことを示す。
【００３２】
点数判定回路４１は、各モジュールの動作状態（ｂ［０］〜ｂ［３］）と、各モジュールの動作周波数とに基づいて各モジュールの動作電流値を算出し、消費電流テーブル４１１を参照し、算出した動作電流値に対応付けられた点数を読み出す。そして、点数判定回路４１は、読み出した各モジュールの点数を合算した合算値を点数比較回路４２の点数レジスタ４２１に格納する。
【００３３】
尚、各モジュールの動作状態とは、ＭＳＴＰＣＲビット３Ａ〜３Ｄから入力されるｂ［０］〜ｂ［３］の値であり、“０”が停止、“１”が動作を示すものとする。また、各モジュールの動作周波数は、クロック信号ｃｌｋ＿Ａ〜ｃｌｋ＿Ｄのそれぞれをカウントして求めるものとする。または、ＣＰＵ１が所定のレジスタ（不図示）に動作周波数値を格納したものを各モジュールの動作周波数としてもよい。
【００３４】
また、点数判定回路４１は、以下の式に基づき動作電流値を算出する。
動作電流値  ＝  モジュールの動作状態×モジュールの最大消費電流×（モジュールの動作周波数 ／ モジュールの最大動作周波数）
【００３５】
図３は、モジュールＩＰ＿Ａ〜ＩＰ＿Ｃの動作周波数が２４ＭＨｚ、５０ＭＨｚ、１ＭＨｚであり、ｂ［０］〜ｂ［２］が１、ｂ［３］が０であった場合における合算値の算出過程を示したものである。
【００３６】
また、点数比較回路４２は、出力部の一例である。点数比較回路４２は、点数レジスタ４２１と、閾値レジスタ４２２と、比較器４２３とを備える。点数レジスタ４２１は、点数判定回路４１により算出された合算値を保持する。閾値レジスタ４２２は、点数の合算値と比較する際の閾値を保持する。比較器４２３は、点数レジスタ４２１に保持された点数の合算値と、閾値レジスタ４２２に保持された閾値とを比較し、合算値が閾値を超えた場合にモジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌを“１”として遅延調整ブロック５へ出力する。
【００３７】
尚、消費電流テーブル４１１、点数レジスタ４２１及び閾値レジスタ４２２は、ＣＰＵ１からアクセス可能であるものとする。特に、消費電流テーブル４１１及び閾値レジスタ４２２には、予め値が設定されているものする。また、点数判定回路４１は、ｂ［０］〜ｂ［３］の値が更新される度に、点数の合算値を算出し、点数レジスタ４２１に格納済みの値と合算する。尚、上記では点数を合算するものとしたが、所定の値から減算する方式でもよい。
【００３８】
図４は、本実施の形態１にかかる遅延調整部５Ａの構成を示すブロック図である。尚、遅延調整部５Ｂ〜５Ｄの構成については、遅延調整部５Ａと同等であるため、図示及び説明を省略する。遅延調整部５Ａは、遅延調整回路５Ａ１と、選択回路５Ａ４とを備える。遅延調整回路５Ａ１は、遅延カウンタ５Ａ２を備える。遅延カウンタ５Ａ２は、遅延時間設定レジスタ５Ａ３を備える。遅延時間設定レジスタ５Ａ３は、ＣＰＵ１から指定された遅延設定値ｄｔＡを保持する。遅延カウンタ５Ａ２は、ＭＳＴＰＣＲビット３Ａが“１”の場合に、カウンタを開始し、遅延時間設定レジスタ５Ａ３の設定値分カウントされた後、選択回路５Ａ４へ信号を出力する。選択回路５Ａ４は、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌが“０”の場合に、ＭＳＴＰＣＲビット３Ａの値をそのまま出力し、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌが“１”の場合に、遅延調整回路５Ａ１からの信号を出力する。遅延調整部５Ａは、選択回路５Ａ４の出力をＡＮＤ回路６Ａ及びフラグＦＬＧ＿Ａへ出力する。
【００３９】
つまり、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌが“０”の場合には、遅延調整部５Ａは、ＣＰＵ１がＭＳＴＰＣＲビット３Ａに“１”を設定したタイミングでモジュールＩＰ＿Ａを起動させる。一方、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌが“１”の場合には、遅延調整部５Ａは、ＣＰＵ１がＭＳＴＰＣＲビット３Ａに“１”を設定したタイミングから遅延時間設定レジスタ５Ａ３の設定値分遅らせて、モジュールＩＰ＿Ａを起動させる。
【００４０】
そして、遅延調整部５Ａから５Ｄは、それぞれ遅延設定値ｄｔＡからｄｔＤが異なるため、モジュールＩＰ＿ＡからＩＰ＿Ｄのいずれの組合せでＣＰＵ１から起動設定が重なったとしても、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌが“１”の場合には、起動タイミングをずらすことができる。
【００４１】
また、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄには、モジュールＩＰ＿Ａ〜ＩＰ＿Ｄの遅延を加味した起動タイミングで“１”が設定される。そのため、ＣＰＵ１は、ユーザプログラムの実行により、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄを読み出し、各モジュールの起動タイミングを把握することができる。尚、ＣＰＵ１は、読み出したフラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄの値が“１”であった場合には、ユーザプログラムの実行により、“０”に書き換えるものとする。または、ＭＣＵ１０００は、所定の回路（不図示）を有し、当該所定の回路が、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄの“１”の値が読み出された後に、“０”に更新してもよい。
【００４２】
図５は、本実施の形態１にかかるモジュールストップ制御を示すタイミングチャートである。まず、ＭＳＴＰＣＲビット３Ａが“１”に設定された時、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌは“０”であるため、遅延調整部５Ａでの遅延はなく、モジュールＩＰ＿Ａは、遅滞なく起動し、動作状態となる。その後、ＭＳＴＰＣＲビット３Ｂから３Ｄが同時に“１”に設定されたものとする。この場合、動作電流通知回路４において点数レジスタ４２１の値が閾値レジスタ４２２の値を超えたものとする。そのため、モジュールストップ制御信号Ｍｓｔｐ＿ｃｔｒｌは“１”となり、遅延調整部５Ｂから５Ｄは、それぞれ２マイクロ秒、３マイクロ秒、４マイクロ秒の遅延を発生させる。そのため、モジュールＩＰ＿Ｂ〜ＩＰ＿Ｄはそれぞれ起動タイミングが分散される。
【００４３】
図６は、本実施の形態１にかかるモジュールストップ制御を示すタイミングチャートである。図６は、図５のケースにおけるフラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄの状態を示す。フラグＦＬＧ＿Ａは、モジュールＩＰ＿Ａの起動タイミングに遅延がないため、ＭＳＴＰＣＲビット３Ａが“１”になるタイミングで“１”となる。また、フラグＦＬＧ＿Ｂは、モジュールＩＰ＿Ｂの起動タイミングが遅延するため、ＭＳＴＰＣＲビット３Ｂが“１”になるタイミングから２マイクロ秒後に“１”となる。フラグＦＬＧ＿Ｃ及びＦＬＧ＿ＤもそれぞれＭＳＴＰＣＲビット３Ｃ及び３Ｄが“１”になるタイミングから２及び３マイクロ秒後に“１”となる。また、上述した通り、フラグＦＬＧ＿ＡからＦＬＧ＿Ｄは、“１”であることをＣＰＵ１により読み出された後に、“０”に更新される。
【００４４】
以上のことから本実施の形態により、ＭＣＵ又はＳＯＣ（System On a Chip）製品ごとの消費電流テーブル及び閾値の設定をすることで、急激な電流増減に伴う誤動作を防止できる。
【００４５】
また、従来のＭＣＵ開発に比べ電源ユニットの供給能力マージン確保が軽減され、チップサイズが縮小、ＭＣＵのコスト競争力につながる。また、動作電流通知回路は、論理回路（Ｌｏｇｉｃ）で構成可能でありＭＣＵ又はＳＯＣ製品であれば広範囲で利用可能でコスト的にも有利となる。
【００４６】
さらに、ＭＣＵ又はＳＯＣの製品展開時に、消費電流テーブルは少ない変更で流用可能となる。また、閾値レジスタを設けることでＭＣＵ又はＳＯＣ製品ごとに適した閾値（許容消費電流値）を設定可能である。つまり、ＭＣＵ製品の展開時（ＲＯＭ拡張、新規モジュール追加など）消費電流テーブルの値を変更、追加するだけで流用でき製品展開が容易である。
【００４７】
さらに、ＣＰＵから点数レジスタ（動作電流値）を読み込み可能であり、ＭＣＵ又はＳＯＣ製品の動作電流状態をユーザソフトウェアからも監視可能となる。
【００４８】
また、ＭＣＵの誤動作となるモジュールの同時動作による瞬間的なＶｄｄの電圧降下又は上昇を遅延調整回路でタイミングをずらすことで抑えることができる。尚、遅延調整回路はモジュールごとの遅延時間設定を可能とし、モジュール起動時の優先順位をつけることを可能とする。
【００４９】
尚、本実施の形態にかかるテーブルは、必ずしも消費電流テーブル４１１のように消費電流値を値として保持する必要はない。その場合のテーブルは、少なくとも各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したものであればよい。
【００５０】
尚、ＭＳＴＰＣＲビット３Ａ〜３Ｄは、複数のモジュールの起動制御を行うための複数のモジュール起動制御レジスタの一例である。また、フラグＦＬＧ＿Ａ〜ＦＬＧ＿Ｄは、複数の遅延調整回路のそれぞれに対応し、対応する遅延調整回路からの出力を保持するフラグレジスタの一例である。
【００５１】
尚、本実施の形態は次のような側面を有する。すなわち、複数のモジュールを備える半導体装置であって、
各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルと、
各モジュールのクロック動作周波数を取得し、前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定するスコア特定部と、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、
を備える半導体装置である。
これにより、同じモジュールで同じ動作周波数であっても半導体装置の製品ごとに異なるスコアを柔軟に設定し、起動タイミングの分散を図ることができる。
【００５２】
また、前記スコアは、当該スコアに対応付けられたモジュールが、当該スコアに対応付けられた動作周波数により動作した場合に要する消費電流値に基づき定められた値であることが望ましい。これにより、動作電流の急変に対応して起動タイミングの分散を図ることができる。
【００５３】
さらに、前記スコアは、前記半導体装置における当該モジュールの重要度、又は、前記半導体装置の許容電流仕様に基づき定められた値であることが望ましい。これにより、同じモジュールの同じ消費電流値であっても半導体装置の製品の許容電流仕様に応じて柔軟に設定することが可能である。
【００５４】
また、前記所定の閾値を格納する閾値レジスタをさらに備えるとよい。これにより、半導体装置の製品に応じて柔軟に閾値を設定することが可能である。
【００５５】
また、前記複数のモジュールの起動制御を行うための複数のモジュール起動制御レジスタをさらに備え、
前記テーブルは、
前記モジュールが前記動作周波数により動作した場合に要する消費電流値を、前記複数のモジュールごとにさらに対応付けて記憶し、
前記スコア特定部は、
前記モジュール起動制御レジスタの値と、前記クロック動作周波数とに基づいて当該モジュールにおける消費電流値を算出し、当該算出した消費電流値に対応付けられたスコアを特定することが望ましい。
これにより、実際に起動指示を受けたモジュールにおける消費電流値を予測することができ、起動タイミングの集中を回避することができる。また、モジュールストップ制御に対応することができる。
【００５６】
さらに、前記複数のモジュールのそれぞれに対応し、
前記指示に基づいて、前記モジュール起動制御レジスタの値を所定の時間遅延させて、対応するモジュールへ出力する複数の遅延調整回路をさらに備え、
前記所定の時間は、前記複数の遅延調整回路のそれぞれで異なる時間であることが望ましい。これにより、モジュールストップ制御に対応して起動タイミングを分散させることができる。
【００５７】
さらに、前記複数の遅延調整回路のそれぞれは、前記所定の時間を外部から設定可能な遅延時間設定レジスタを備えるとよい。これにより、モジュールの起動タイミングの分散の度合いを柔軟に調整できる。
【００５８】
また、前記複数の遅延調整回路のそれぞれに対応し、対応する遅延調整回路からの出力を保持するフラグレジスタをさらに備えるとよい。これにより、外部（ＣＰＵ等）から起動タイミングを把握可能となる。
【００５９】
また、本実施の形態にかかる半導体装置の制御方法は、
複数のモジュールのそれぞれにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルを備える半導体装置の制御方法であって、
各モジュールのクロック動作周波数を取得し、
前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定し、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力するものである。
これにより、同じモジュールで同じ動作周波数であっても半導体装置の製品ごとに異なるスコアを柔軟に設定し、起動タイミングの分散を図ることができる。
【００６０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００６１】
１０００  ＭＣＵ
１  ＣＰＵ
２  バス
３  ＭＳＴＰＣＲレジスタ
３Ａ  ＭＳＴＰＣＲビット
３Ｂ  ＭＳＴＰＣＲビット
３Ｃ  ＭＳＴＰＣＲビット
３Ｄ  ＭＳＴＰＣＲビット
ＦＬＧ＿Ａ  フラグ
ＦＬＧ＿Ｂ  フラグ
ＦＬＧ＿Ｃ  フラグ
ＦＬＧ＿Ｄ  フラグ
４  動作電流通知回路
４１  点数判定回路
４１１  消費電流テーブル
４２  点数比較回路
４２１  点数レジスタ
４２２  閾値レジスタ
４２３  比較器
５  遅延調整ブロック
５Ａ  遅延調整部
５Ａ１  遅延調整回路
５Ａ２  遅延カウンタ
５Ａ３  遅延時間設定レジスタ
５Ａ４  選択回路
５Ｂ  遅延調整部
５Ｃ  遅延調整部
５Ｄ  遅延調整部
６Ａ  ＡＮＤ回路
６Ｂ  ＡＮＤ回路
６Ｃ  ＡＮＤ回路
６Ｄ  ＡＮＤ回路
ＩＰ＿Ａ  モジュール
ＩＰ＿Ｂ  モジュール
ＩＰ＿Ｃ  モジュール
ＩＰ＿Ｄ  モジュール
ｄｔＡ  遅延設定値
ｄｔＢ  遅延設定値
ｄｔＣ  遅延設定値
ｄｔＤ  遅延設定値
ｃｌｋ＿Ａ  クロック信号
ｃｌｋ＿Ｂ  クロック信号
ｃｌｋ＿Ｃ  クロック信号
ｃｌｋ＿Ｄ  クロック信号
Ｍｓｔｐ＿ｃｔｒｌ  モジュールストップ制御信号
９００  ＭＣＵ
９１０  電源ユニット
９１１  レギュレータ
９１２  レギュレータ
９１３  レギュレータ
９１４  レギュレータ
９２０  内部モジュール
９３０  ＭＣＵ内蔵容量
９０００  ＭＣＵ
１１  ＲＡＭ
１２  ＲＯＭ
２１  命令バス
２２  オペランドバス
２３  メモリバス
２４  メモリバス
２５  内部メインバス
２６  内部周辺バス
【図１】
2018195243.tif 000003
【図２】
2018195243.tif 000004
【図３】
2018195243.tif 000005
【図４】
2018195243.tif 000006
【図５】
2018195243.tif 000007
【図６】
2018195243.tif 000008
【図７】
2018195243.tif 000009
【図８】
2018195243.tif 000010
【図９】
2018195243.tif 000011