特開2018-195243(P2018-195243A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧
特開2018-195243半導体装置、及び半導体装置の制御方法
<>
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000003
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000004
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000005
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000006
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000007
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000008
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000009
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000010
  • 特開2018195243-半導体装置、及び半導体装置の制御方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-195243(P2018-195243A)
(43)【公開日】2018年12月6日
(54)【発明の名称】半導体装置、及び半導体装置の制御方法
(51)【国際特許分類】
   G06F 1/26 20060101AFI20181109BHJP
   G06F 1/04 20060101ALI20181109BHJP
【FI】
   G06F1/26 334D
   G06F1/04 571
【審査請求】未請求
【請求項の数】9
【出願形態】OL
【全頁数】15
(21)【出願番号】特願2017-100756(P2017-100756)
(22)【出願日】2017年5月22日
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】作村 浩太郎
(72)【発明者】
【氏名】堀越 康敬
(72)【発明者】
【氏名】橘 浩司
(72)【発明者】
【氏名】加島 啓太
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011GG06
5B011JA12
5B011LL13
5B011MB06
5B011MB11
(57)【要約】
【課題】回路規模の増大を抑制しつつ、急激な電流増減による誤動作を防止すること。
【解決手段】半導体装置は、複数のモジュールを備え、各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を複数のモジュールごとに対応付けて記憶したテーブルと、各モジュールのクロック動作周波数を取得し、テーブルを参照し、各クロック動作周波数に基づいてスコアを特定するスコア特定部と、特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数のモジュールを備える半導体装置であって、
各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルと、
各モジュールのクロック動作周波数を取得し、前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定するスコア特定部と、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、
を備える半導体装置。
【請求項2】
前記スコアは、当該スコアに対応付けられたモジュールが、当該スコアに対応付けられた動作周波数により動作した場合に要する消費電流値に基づき定められた値である
請求項1に記載の半導体装置。
【請求項3】
前記スコアは、前記半導体装置における当該モジュールの重要度、又は、前記半導体装置の許容電流仕様に基づき定められた値である
請求項2に記載の半導体装置。
【請求項4】
前記所定の閾値を格納する閾値レジスタをさらに備える
請求項1に記載の半導体装置。
【請求項5】
前記複数のモジュールの起動制御を行うための複数のモジュール起動制御レジスタをさらに備え、
前記テーブルは、
前記モジュールが前記動作周波数により動作した場合に要する消費電流値を、前記複数のモジュールごとにさらに対応付けて記憶し、
前記スコア特定部は、
前記モジュール起動制御レジスタの値と、前記クロック動作周波数とに基づいて当該モジュールにおける消費電流値を算出し、当該算出した消費電流値に対応付けられたスコアを特定する
請求項1に記載の半導体装置。
【請求項6】
前記複数のモジュールのそれぞれに対応し、
前記指示に基づいて、前記モジュール起動制御レジスタの値を所定の時間遅延させて、対応するモジュールへ出力する複数の遅延調整回路をさらに備え、
前記所定の時間は、前記複数の遅延調整回路のそれぞれで異なる時間である、
請求項5に記載の半導体装置。
【請求項7】
前記複数の遅延調整回路のそれぞれは、前記所定の時間を外部から設定可能な遅延時間設定レジスタを備える
請求項6に記載の半導体装置。
【請求項8】
前記複数の遅延調整回路のそれぞれに対応し、対応する遅延調整回路からの出力を保持するフラグレジスタをさらに備える
請求項6に記載の半導体装置。
【請求項9】
複数のモジュールのそれぞれにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルを備える半導体装置の制御方法であって、
各モジュールのクロック動作周波数を取得し、
前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定し、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体装置、及び半導体装置の制御方法に関し、例えば、複数のモジュールを備える半導体装置、及び半導体装置の制御方法に関する。
【背景技術】
【0002】
半導体集積回路では、内部回路の電源スイッチをオフ状態からオン状態に切り替えるときに電流が一斉に発生することにより誤動作することが知られている。特許文献1には、半導体集積回路における突入電流観測回路に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−218722号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、MCU(Micro Control Unit)において突入電流によるVddの瞬間的な電圧降下又は上昇を防ぐために、電源ユニットの供給能力にマージンを確保することや、MCU内蔵容量を付加するという対策が考え得る。しかしながら、これらの対策はいずれもチップサイズの増大を招くという問題点があった。尚、特許文献1ではこれらの問題を解決することができない。
【0005】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0006】
一実施の形態によれば、半導体装置は、各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルと、各モジュールのクロック動作周波数を取得し、前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定するスコア特定部と、前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、を備えるものである。
【発明の効果】
【0007】
前記一実施の形態によれば、回路規模の増大を抑制しつつ、急激な電流増減による誤動作を防止できる。
【図面の簡単な説明】
【0008】
図1】本実施の形態1にかかるMCUの構成を示すブロック図である。
図2】本実施の形態1にかかる動作電流通知回路の構成を示すブロック図である。
図3】本実施の形態1にかかる消費電流テーブルの例を示す図である。
図4】本実施の形態1にかかる遅延調整部の構成を示すブロック図である。
図5】本実施の形態1にかかるモジュールストップ制御を示すタイミングチャートである。
図6】本実施の形態1にかかるモジュールストップ制御を示すタイミングチャートである。
図7】関連技術にかかるMCUの構成例を示すブロック図である。
図8】関連技術にかかるモジュールストップ機能付きMCUの構成を示すブロック図である。
図9】関連技術にかかるモジュールストップ制御の課題を説明するための図である。
【発明を実施するための形態】
【0009】
以下では、上述した課題を解決するための手段を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【0010】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【0011】
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
【0012】
ここで、以下の実施の形態を想到するに至った経緯について説明する。まず、MCUでは、搭載されているモジュールの同時動作による急激な電流増減に対して、内部電源供給が追いつかないため、Vddの電圧降下又は上昇が瞬間的に発生する。これによりフリップフロップのセットアップ又はホールド違反が発生して誤動作する。
【0013】
図7は、電源変動を吸収するための関連技術にかかるMCU900の構成例を示すブロック図である。MCU900は、電源ユニット910及び内部モジュール920等を備えている。ここでは、MCU900の瞬間的なVddの電圧降下又は上昇に対応するため次の2つの対策が採られている。1つ目の対策は、電源ユニット910の供給能力にマージンを持たせることである。具体的には、電源ユニット910の内蔵レギュレータ911、912、913、9014、・・・の搭載個数を増やすことである。2つ目の対策は、Vdd電源供給ラインにMCU内蔵容量930を付加し、Vdd電源変動を吸収させることである。
【0014】
しかしながら、これらの対策は、いずれもチップサイズの増大に繋がり、MCU開発時のコスト競争力の低下を招くという問題がある。そのため、MCUの内部モジュールの同時動作を制御するなど、Vddの電圧降下又は上昇を低減させることが必要となる。
【0015】
尚、上述した特許文献1にかかる突入電流観測回路は、観測対象の回路ブロックに流れる突入電流に応じてリングオシレータが発振し、リングオシレータの発振周波数をカウンタで測定するものである。そして、カウント数と電源電圧レベルとの関係を予め定めた変換テーブルを読み出し専用メモリに形成する点が開示されている。
【0016】
また、近年、MCUに搭載された複数のモジュールの起動順序や起動タイミングをユーザプログラムにより指定できるモジュールストップ機能付きのMCUが開発されている。図8は、関連技術にかかるモジュールストップ機能付きMCU9000の構成を示すブロック図である。MCU9000は、CPU(Central Processing Unit)1と、RAM(Random Access Memory)11と、ROM(Read Only Memory)12と、MSTPCRレジスタ3と、モジュールIP_A、IP_B、IP_C及びIP_Dとを備える。
【0017】
CPU1とRAM11とは、命令バス21、オペランドバス22及びメモリバス23を介して接続されている。CPU1とROM12とは、命令バス21、オペランドバス22及びメモリバス24を介して接続されている。CPU1とMSTPCRレジスタ3及びモジュールIP_A等とは、それぞれ命令バス21、オペランドバス22、内部メインバス25及び内部周辺バス26を介して接続されている。
【0018】
MSTPCRレジスタ3は、MSTPCRビット3A、3B、3C及び3Dを備える。MSTPCRビット3A〜3Dのそれぞれは、モジュールIP_A〜IP_Dに対応して接続され、対応するモジュールを起動させるか否かを示す1ビットの情報を保持する。
【0019】
CPU1は、ユーザプログラムの実行により、MSTPCRビット3A〜3Dのそれぞれに対する書き込み命令を発行する。これにより、MSTPCRビット3A〜3Dのそれぞれには、書き込み命令により指定された値が書き込まれる。また、CPU1は、ユーザプログラムの実行により、MSTPCRビット3A〜3Dのそれぞれに対する読み出し命令を発行する。これにより、MSTPCRビット3A〜3Dのそれぞれの値を読み出される。
【0020】
モジュールIP_A〜IP_Dのそれぞれは、対応するMSTPCRビット3A〜3Dのそれぞれに書き込まれた値に応じて、起動を行う。
【0021】
図9は、関連技術にかかるモジュールストップ制御の課題を説明するための図である。例えば、まず、ユーザプログラムによりMSTPCRビット3Aに起動設定がされることに応じて、モジュールIP_Aが起動し、動作状態となる。次に、ユーザプログラムによりMSTPCRビット3B〜3Dに同時に起動設定がされたものとする。そのため、モジュールIP_B〜IP_Dは同時に起動し、動作状態となる。ここで、モジュールIP_B〜IP_Dの起動に伴い急激な電流増加が発生する。そのため、MCU9000内のフリップフロップのセットアップ又はホールド違反が発生して誤動作し得ることとなる。
【0022】
誤動作を防ぐためには、ユーザプログラムにおいて各モジュールの起動タイミングを詳細に調整して指定することが考えられるが、モジュール数は多数であり大変煩雑である。そのため、実際には、複数のモジュールの起動タイミングが集中してしまうことがあり(つまり複数のモジュールが同時に起動する)、突入電流に伴う電圧降下/上昇が起こり得る。
そこで、上述した課題を解決するための実施の形態を以下に説明する。
【0023】
<実施の形態1>
図1は、本実施の形態1にかかるMCU1000の構成を示すブロック図である。MCU1000は、CPU1と、MSTPCRレジスタ3と、動作電流通知回路4と、遅延調整ブロック5と、AND回路6A〜6Dと、モジュールIP_A〜IP_Dとを備える。CPU1と、MSTPCRレジスタ3、遅延調整ブロック5並びにモジュールIP_A〜IP_Dとはそれぞれ、バス2を介して接続されている。尚、バス2は、図8の命令バス21、オペランドバス22、内部メインバス25及び内部周辺バス26を含むものとする。
【0024】
MSTPCRレジスタ3は、上述したMSTPCRビット3A、3B、3C及び3Dに加えて、フラグFLG_A、FLG_B、FLG_C及びFLG_Dを備える。フラグFLG_A〜FLG_Dのそれぞれは、モジュールIP_A〜IP_Dに対応する。フラグFLG_A〜FLG_Dは、対応するモジュールIP_A〜IP_Dの起動状態を示す1ビットの情報を保持する。
【0025】
遅延調整ブロック5は、MSTPCRレジスタ3とAND回路6A〜6Dと接続されている。遅延調整ブロック5は、遅延調整部5A〜5Dを備える。尚、ここでは、遅延調整部5A〜5Dの概要を説明し、詳細は後述する。遅延調整部5A〜5Dのそれぞれは、遅延設定値dtA〜dtDに従い遅延時間を設定する。尚、図1では、遅延調整部5Aに1マイクロ秒、遅延調整部5Bに2マイクロ秒、遅延調整部5Cに3マイクロ秒、遅延調整部5Dに4マイクロ秒が遅延時間として設定されているものとする。但し、遅延時間はこれに限定されず、少なくとも、各遅延調整部の間で遅延時間が異なるものであればよい。これにより、CPU1が設定するMSTPCRビット3A〜3Dの起動タイミングの指定が重なったとしても、モジュールIP_A〜IP_Dの起動タイミングを分散させることができる。
【0026】
また、遅延調整部5A〜5Dのそれぞれは、対応するMSTPCRビット3A〜3Dの値をAND回路6A〜6Dに出力する。その際、遅延調整部5A〜5Dのそれぞれは、モジュールストップ制御信号Mstp_ctrlが“1”を示す場合、対応するMSTPCRビット3A〜3Dの値を設定された遅延時間分遅延させて出力する。また、遅延調整部5A〜5Dのそれぞれは、出力値をフラグFLG_A〜FLG_Dへもフィードバックする。つまり、フラグFLG_A〜FLG_Dのそれぞれには、遅延調整部5A〜5Dのそれぞれの出力値が設定される。
【0027】
CPU1は、ユーザプログラムの実行により、フラグFLG_A〜FLG_Dのそれぞれに対する読み出し命令を発行し、フラグFLG_A〜FLG_Dのそれぞれの値を読み出す。また、CPU1は、読み出した値が“1”であった場合は、そのフラグに対して“0”を書き込む。
【0028】
AND回路6A〜6Dのそれぞれは、クロック信号clk_A〜clk_Dのそれぞれの入力と、遅延調整部5A〜5Dのそれぞれの入力とを論理積演算した結果を、モジュールIP_A〜IP_Dのそれぞれへ出力する。
【0029】
動作電流通知回路4は、MSTPCRレジスタ3からMSTPCRビット3A〜3Dの値b[0]〜b[3]と、クロック信号clk_A〜clk_Dとを入力し、モジュールストップ制御信号Mstp_ctrlを遅延調整ブロック5へ出力する。尚、モジュールストップ制御信号Mstp_ctrlは、各モジュールの起動タイミングを分散させる指示の一例である。
【0030】
図2は、本実施の形態1にかかる動作電流通知回路4の構成を示すブロック図である。動作電流通知回路4は、点数判定回路41と、点数比較回路42とを備える。点数判定回路41は、スコア特定部の一例である。点数判定回路41は、消費電流テーブル411を備える。消費電流テーブル411は、モジュールごとに複数の動作周波数と、消費電流値と、点数とを対応付けた情報である。ここで、消費電流値は、そのモジュールがその動作周波数で動作した時に消費される消費電流値である。そして、各動作周波数の消費電流値の求め方は、次の通りである。まず、モジュール当たりの最大動作周波数における最大消費電流値を予め測定する。次に、当該モジュールにおいて想定される複数の動作周波数ごとの消費電流値を、最大動作周波数との比率により求める。また、点数(スコアの一例)は、その消費電流値がMCU1000の許容電流仕様に占める割合やMCU1000におけるそのモジュールの重要度に応じて予め定められた値である。尚、各点数は、各モジュールの最大の点数を合計すると100点となるように定められるものとする。
【0031】
図3は、本実施の形態1にかかる消費電流テーブル411の例を示す図である。例えば、モジュールIP_Aの最大動作周波数が24MHzであり、モジュールIP_Aを24MHzで動作させた場合の最大消費電流値が2mAであることを示す。そして、モジュールIP_Aにおける消費電流値2mAについてMCU1000の許容電流仕様に基づき点数「10」をユーザが割り当てたことを示す。また、モジュールIP_Aにおいて最大以外に想定される動作周波数は、12MHzと6MHzが挙げられるため、それぞれ最大動作周波数との比率に従い、消費電流値を1mA及び0.5mAを求めたことを示す。さらに、動作周波数12MHz及び消費電流値1mAにおける点数を「3」、動作周波数6MHz及び消費電流値0.5mAにおける点数を「1」とユーザが割り当てたことを示す。
【0032】
点数判定回路41は、各モジュールの動作状態(b[0]〜b[3])と、各モジュールの動作周波数とに基づいて各モジュールの動作電流値を算出し、消費電流テーブル411を参照し、算出した動作電流値に対応付けられた点数を読み出す。そして、点数判定回路41は、読み出した各モジュールの点数を合算した合算値を点数比較回路42の点数レジスタ421に格納する。
【0033】
尚、各モジュールの動作状態とは、MSTPCRビット3A〜3Dから入力されるb[0]〜b[3]の値であり、“0”が停止、“1”が動作を示すものとする。また、各モジュールの動作周波数は、クロック信号clk_A〜clk_Dのそれぞれをカウントして求めるものとする。または、CPU1が所定のレジスタ(不図示)に動作周波数値を格納したものを各モジュールの動作周波数としてもよい。
【0034】
また、点数判定回路41は、以下の式に基づき動作電流値を算出する。
動作電流値 = モジュールの動作状態×モジュールの最大消費電流×(モジュールの動作周波数 / モジュールの最大動作周波数)
【0035】
図3は、モジュールIP_A〜IP_Cの動作周波数が24MHz、50MHz、1MHzであり、b[0]〜b[2]が1、b[3]が0であった場合における合算値の算出過程を示したものである。
【0036】
また、点数比較回路42は、出力部の一例である。点数比較回路42は、点数レジスタ421と、閾値レジスタ422と、比較器423とを備える。点数レジスタ421は、点数判定回路41により算出された合算値を保持する。閾値レジスタ422は、点数の合算値と比較する際の閾値を保持する。比較器423は、点数レジスタ421に保持された点数の合算値と、閾値レジスタ422に保持された閾値とを比較し、合算値が閾値を超えた場合にモジュールストップ制御信号Mstp_ctrlを“1”として遅延調整ブロック5へ出力する。
【0037】
尚、消費電流テーブル411、点数レジスタ421及び閾値レジスタ422は、CPU1からアクセス可能であるものとする。特に、消費電流テーブル411及び閾値レジスタ422には、予め値が設定されているものする。また、点数判定回路41は、b[0]〜b[3]の値が更新される度に、点数の合算値を算出し、点数レジスタ421に格納済みの値と合算する。尚、上記では点数を合算するものとしたが、所定の値から減算する方式でもよい。
【0038】
図4は、本実施の形態1にかかる遅延調整部5Aの構成を示すブロック図である。尚、遅延調整部5B〜5Dの構成については、遅延調整部5Aと同等であるため、図示及び説明を省略する。遅延調整部5Aは、遅延調整回路5A1と、選択回路5A4とを備える。遅延調整回路5A1は、遅延カウンタ5A2を備える。遅延カウンタ5A2は、遅延時間設定レジスタ5A3を備える。遅延時間設定レジスタ5A3は、CPU1から指定された遅延設定値dtAを保持する。遅延カウンタ5A2は、MSTPCRビット3Aが“1”の場合に、カウンタを開始し、遅延時間設定レジスタ5A3の設定値分カウントされた後、選択回路5A4へ信号を出力する。選択回路5A4は、モジュールストップ制御信号Mstp_ctrlが“0”の場合に、MSTPCRビット3Aの値をそのまま出力し、モジュールストップ制御信号Mstp_ctrlが“1”の場合に、遅延調整回路5A1からの信号を出力する。遅延調整部5Aは、選択回路5A4の出力をAND回路6A及びフラグFLG_Aへ出力する。
【0039】
つまり、モジュールストップ制御信号Mstp_ctrlが“0”の場合には、遅延調整部5Aは、CPU1がMSTPCRビット3Aに“1”を設定したタイミングでモジュールIP_Aを起動させる。一方、モジュールストップ制御信号Mstp_ctrlが“1”の場合には、遅延調整部5Aは、CPU1がMSTPCRビット3Aに“1”を設定したタイミングから遅延時間設定レジスタ5A3の設定値分遅らせて、モジュールIP_Aを起動させる。
【0040】
そして、遅延調整部5Aから5Dは、それぞれ遅延設定値dtAからdtDが異なるため、モジュールIP_AからIP_Dのいずれの組合せでCPU1から起動設定が重なったとしても、モジュールストップ制御信号Mstp_ctrlが“1”の場合には、起動タイミングをずらすことができる。
【0041】
また、フラグFLG_A〜FLG_Dには、モジュールIP_A〜IP_Dの遅延を加味した起動タイミングで“1”が設定される。そのため、CPU1は、ユーザプログラムの実行により、フラグFLG_A〜FLG_Dを読み出し、各モジュールの起動タイミングを把握することができる。尚、CPU1は、読み出したフラグFLG_A〜FLG_Dの値が“1”であった場合には、ユーザプログラムの実行により、“0”に書き換えるものとする。または、MCU1000は、所定の回路(不図示)を有し、当該所定の回路が、フラグFLG_A〜FLG_Dの“1”の値が読み出された後に、“0”に更新してもよい。
【0042】
図5は、本実施の形態1にかかるモジュールストップ制御を示すタイミングチャートである。まず、MSTPCRビット3Aが“1”に設定された時、モジュールストップ制御信号Mstp_ctrlは“0”であるため、遅延調整部5Aでの遅延はなく、モジュールIP_Aは、遅滞なく起動し、動作状態となる。その後、MSTPCRビット3Bから3Dが同時に“1”に設定されたものとする。この場合、動作電流通知回路4において点数レジスタ421の値が閾値レジスタ422の値を超えたものとする。そのため、モジュールストップ制御信号Mstp_ctrlは“1”となり、遅延調整部5Bから5Dは、それぞれ2マイクロ秒、3マイクロ秒、4マイクロ秒の遅延を発生させる。そのため、モジュールIP_B〜IP_Dはそれぞれ起動タイミングが分散される。
【0043】
図6は、本実施の形態1にかかるモジュールストップ制御を示すタイミングチャートである。図6は、図5のケースにおけるフラグFLG_A〜FLG_Dの状態を示す。フラグFLG_Aは、モジュールIP_Aの起動タイミングに遅延がないため、MSTPCRビット3Aが“1”になるタイミングで“1”となる。また、フラグFLG_Bは、モジュールIP_Bの起動タイミングが遅延するため、MSTPCRビット3Bが“1”になるタイミングから2マイクロ秒後に“1”となる。フラグFLG_C及びFLG_DもそれぞれMSTPCRビット3C及び3Dが“1”になるタイミングから2及び3マイクロ秒後に“1”となる。また、上述した通り、フラグFLG_AからFLG_Dは、“1”であることをCPU1により読み出された後に、“0”に更新される。
【0044】
以上のことから本実施の形態により、MCU又はSOC(System On a Chip)製品ごとの消費電流テーブル及び閾値の設定をすることで、急激な電流増減に伴う誤動作を防止できる。
【0045】
また、従来のMCU開発に比べ電源ユニットの供給能力マージン確保が軽減され、チップサイズが縮小、MCUのコスト競争力につながる。また、動作電流通知回路は、論理回路(Logic)で構成可能でありMCU又はSOC製品であれば広範囲で利用可能でコスト的にも有利となる。
【0046】
さらに、MCU又はSOCの製品展開時に、消費電流テーブルは少ない変更で流用可能となる。また、閾値レジスタを設けることでMCU又はSOC製品ごとに適した閾値(許容消費電流値)を設定可能である。つまり、MCU製品の展開時(ROM拡張、新規モジュール追加など)消費電流テーブルの値を変更、追加するだけで流用でき製品展開が容易である。
【0047】
さらに、CPUから点数レジスタ(動作電流値)を読み込み可能であり、MCU又はSOC製品の動作電流状態をユーザソフトウェアからも監視可能となる。
【0048】
また、MCUの誤動作となるモジュールの同時動作による瞬間的なVddの電圧降下又は上昇を遅延調整回路でタイミングをずらすことで抑えることができる。尚、遅延調整回路はモジュールごとの遅延時間設定を可能とし、モジュール起動時の優先順位をつけることを可能とする。
【0049】
尚、本実施の形態にかかるテーブルは、必ずしも消費電流テーブル411のように消費電流値を値として保持する必要はない。その場合のテーブルは、少なくとも各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したものであればよい。
【0050】
尚、MSTPCRビット3A〜3Dは、複数のモジュールの起動制御を行うための複数のモジュール起動制御レジスタの一例である。また、フラグFLG_A〜FLG_Dは、複数の遅延調整回路のそれぞれに対応し、対応する遅延調整回路からの出力を保持するフラグレジスタの一例である。
【0051】
尚、本実施の形態は次のような側面を有する。すなわち、複数のモジュールを備える半導体装置であって、
各モジュールにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルと、
各モジュールのクロック動作周波数を取得し、前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定するスコア特定部と、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力する出力部と、
を備える半導体装置である。
これにより、同じモジュールで同じ動作周波数であっても半導体装置の製品ごとに異なるスコアを柔軟に設定し、起動タイミングの分散を図ることができる。
【0052】
また、前記スコアは、当該スコアに対応付けられたモジュールが、当該スコアに対応付けられた動作周波数により動作した場合に要する消費電流値に基づき定められた値であることが望ましい。これにより、動作電流の急変に対応して起動タイミングの分散を図ることができる。
【0053】
さらに、前記スコアは、前記半導体装置における当該モジュールの重要度、又は、前記半導体装置の許容電流仕様に基づき定められた値であることが望ましい。これにより、同じモジュールの同じ消費電流値であっても半導体装置の製品の許容電流仕様に応じて柔軟に設定することが可能である。
【0054】
また、前記所定の閾値を格納する閾値レジスタをさらに備えるとよい。これにより、半導体装置の製品に応じて柔軟に閾値を設定することが可能である。
【0055】
また、前記複数のモジュールの起動制御を行うための複数のモジュール起動制御レジスタをさらに備え、
前記テーブルは、
前記モジュールが前記動作周波数により動作した場合に要する消費電流値を、前記複数のモジュールごとにさらに対応付けて記憶し、
前記スコア特定部は、
前記モジュール起動制御レジスタの値と、前記クロック動作周波数とに基づいて当該モジュールにおける消費電流値を算出し、当該算出した消費電流値に対応付けられたスコアを特定することが望ましい。
これにより、実際に起動指示を受けたモジュールにおける消費電流値を予測することができ、起動タイミングの集中を回避することができる。また、モジュールストップ制御に対応することができる。
【0056】
さらに、前記複数のモジュールのそれぞれに対応し、
前記指示に基づいて、前記モジュール起動制御レジスタの値を所定の時間遅延させて、対応するモジュールへ出力する複数の遅延調整回路をさらに備え、
前記所定の時間は、前記複数の遅延調整回路のそれぞれで異なる時間であることが望ましい。これにより、モジュールストップ制御に対応して起動タイミングを分散させることができる。
【0057】
さらに、前記複数の遅延調整回路のそれぞれは、前記所定の時間を外部から設定可能な遅延時間設定レジスタを備えるとよい。これにより、モジュールの起動タイミングの分散の度合いを柔軟に調整できる。
【0058】
また、前記複数の遅延調整回路のそれぞれに対応し、対応する遅延調整回路からの出力を保持するフラグレジスタをさらに備えるとよい。これにより、外部(CPU等)から起動タイミングを把握可能となる。
【0059】
また、本実施の形態にかかる半導体装置の制御方法は、
複数のモジュールのそれぞれにおける複数の動作周波数と、各動作周波数に基づき定められた複数のスコアと、を前記複数のモジュールごとに対応付けて記憶したテーブルを備える半導体装置の制御方法であって、
各モジュールのクロック動作周波数を取得し、
前記テーブルを参照し、各クロック動作周波数に基づいて前記スコアを特定し、
前記特定されたスコアが所定の閾値を超えている場合に、各モジュールの起動タイミングを分散させる指示を出力するものである。
これにより、同じモジュールで同じ動作周波数であっても半導体装置の製品ごとに異なるスコアを柔軟に設定し、起動タイミングの分散を図ることができる。
【0060】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0061】
1000 MCU
1 CPU
2 バス
3 MSTPCRレジスタ
3A MSTPCRビット
3B MSTPCRビット
3C MSTPCRビット
3D MSTPCRビット
FLG_A フラグ
FLG_B フラグ
FLG_C フラグ
FLG_D フラグ
4 動作電流通知回路
41 点数判定回路
411 消費電流テーブル
42 点数比較回路
421 点数レジスタ
422 閾値レジスタ
423 比較器
5 遅延調整ブロック
5A 遅延調整部
5A1 遅延調整回路
5A2 遅延カウンタ
5A3 遅延時間設定レジスタ
5A4 選択回路
5B 遅延調整部
5C 遅延調整部
5D 遅延調整部
6A AND回路
6B AND回路
6C AND回路
6D AND回路
IP_A モジュール
IP_B モジュール
IP_C モジュール
IP_D モジュール
dtA 遅延設定値
dtB 遅延設定値
dtC 遅延設定値
dtD 遅延設定値
clk_A クロック信号
clk_B クロック信号
clk_C クロック信号
clk_D クロック信号
Mstp_ctrl モジュールストップ制御信号
900 MCU
910 電源ユニット
911 レギュレータ
912 レギュレータ
913 レギュレータ
914 レギュレータ
920 内部モジュール
930 MCU内蔵容量
9000 MCU
11 RAM
12 ROM
21 命令バス
22 オペランドバス
23 メモリバス
24 メモリバス
25 内部メインバス
26 内部周辺バス
図1
図2
図3
図4
図5
図6
図7
図8
図9