まず、以下の実施形態において用いられる、リセット期間を制御することによりリセット時の電力消費を抑える方法について説明する。図13(a)は、このような方法を実現するための構成例を示す。また図14(a)は、図13(a)に示す構成の動作を示すタイミングチャートである。図13(a)に示す構成には、外部からクロック信号CLKが供給されている。電源遮断期間T1において、電源制御指示部103が電源制御指示信号P_CMDを受けとると、電源復帰期間T2が開始する。具体的には電源制御指示部103は、電源制御対象部1(111)のスイッチ1301をオンにする。すると、電源Vddaによる電源ネットワーク1302への電源供給が開始する。また、電源制御指示信号P_CMDにより電源復帰が指示されたとき、電源制御指示部103はクロック制御信号CLK_ENによりゲーティングクロックバッファ171を制御し、クロック伝搬をアクティブにする。電源が安定すると、リセット期間T3へと移行する。ここで、リセット動作制御部161は電源制御指示信号P_CMDによる電源復帰指示からリセット解除までのタイミング(T2及びT3)を調整する。リセット動作制御部161が信号P_RSTを解除することにより、定常動作期間T4へと移行する。定常動作期間T4においては、適宜クロックゲーティングを制御することが可能である。この例によれば、電源復帰期間T2及びリセット期間T3にクロックゲーティングがネゲート状態となることにより、電力が消費される。
また図13(b)に示す構成は、電源復帰タイミングをより正確に検知するための構成例である。図13(b)に示す構成の動作時のタイミングチャートを図14(b)に示す。図13(a)の構成との違いは、電源状態判定部181の存在と、電源状態判定部181からのP_RDY1信号を用いてリセット動作制御部161を制御することにある。より具体的には、電源状態判定部181は回路ブロック1303に供給される電源の状態を判定する。そして、電源が安定した後に、リセット動作を制御する信号P_RDY1をリセット動作制御部161に送信する。リセット動作制御部161は、信号P_RDY1に従って、クロック制御信号CLK_EN1によりゲーティングクロックバッファ171を制御してクロック伝搬をアクティブにする。またリセット動作制御部161は信号P_RDY1によるリセット指示からリセット解除までのタイミング(T3)を調整し、信号P_RST1を解除する。この例によればリセット期間T3にクロックゲーティングがネゲート状態となることにより、電力が消費される。
以上のようなリセット期間の制御を行う場合、タイミングT2とT3との少なくとも一方を最適化することにより、クロックゲーティングのネゲート期間が短くなり、消費電力を削減することが可能となる。図14に示すタイミングチャートは例示にすぎない。例えば、P_CTRL、CLK_EN、CLK_EN1、P_RST、P_RST1等の各信号は負極性の信号となっているが、極性にかかわらず同様の動作を実現できる。また、OR型論理を用いてクロック伝搬をネゲートするゲーティングクロックバッファ171を実現しているが、AND型論理を用いても同様の動作を実現できる。
[実施形態1]
以下で、実施形態1に係る半導体集積回路について説明する。本実施形態によれば、複数の回路ブロックからのリセット動作の要求(リセット要求)を調停することにより、各回路ブロックのリセット動作のタイミングを適切に制御することができる。この際には、回路ブロック毎のリセット動作の情報に基づいて調停が行われる。図1は、本実施形態に係る半導体集積回路100の一部を模式的に示す。半導体集積回路100は、複数の回路ブロックとリセット回路とを備える。本実施形態において半導体集積回路100は、回路ブロックとして、常時電源供給部1(121)、常時電源供給部N(122)、及び不図示の常時電源供給部2〜N−1を有している。ここで、Nは2以上の整数である。
リセット回路は、リセット生成部104、リセット調停部105、リセット動作制御部1〜N(163,164)、及びゲーティングクロックバッファ1〜N(173,174)を有している。リセット動作制御部1〜N(163,164)のそれぞれは、常時電源供給部1〜N(121,122)と通信可能に接続されている。ゲーティングクロックバッファ1〜N(173,174)のそれぞれも、リセット動作制御部1〜N(163,164)及び常時電源供給部1〜N(121,122)と通信可能に接続されている。
常時電源供給部1〜N(121,122)は、それぞれ半導体集積回路の一部であって、常時電源電圧が供給される部分(回路ブロック)である。常時電源供給部1〜N(121,122)のそれぞれは、リセット回路の制御に従って、独立にリセット動作を行うことができる。
リセット調停部105は、常時電源供給部1〜N(121,122)に対応するリセット動作制御部1〜N(163,164)のそれぞれから、常時電源供給部1〜N(121,122)毎の動作情報(AJ_STA)を取得する。具体的にはリセット調停部105は、常時電源供給部1〜N(121,122)のリセット動作状態を示す情報とクロック供給状態を示す情報とを取得することができる。またリセット調停部105は、リセット生成部104からのREQ信号に従って、各常時電源供給部1〜N(121,122)へと送信するリセット信号を調停する。この調停は、リセット生成部104から出力されるリセット要求と、常時電源供給部1〜N(121,122)毎の動作情報に従って行われる。
リセット生成部104は、リセット調停部105及びリセット動作制御部1〜N(163,164)に通信可能に接続されている。具体的にはリセット生成部104は、リセット動作制御部1〜N(163,164)に対し、常時電源供給部1〜N(121,122)にリセット動作を行わせることを指示する信号(EJ_RST)を送信することができる。リセット動作を行わせることを指示する信号の送信は、リセット調停部105によるリセット要求の調停に従って行われる。例えばリセット生成部104は、集積回路の電源投入時に各常時電源供給部1〜N(121,122)に対するリセット要求を生成することができる。また、集積回路の動作中にも、リセット生成部104は常時電源供給部1〜N(121,122)のうちの任意のものに対するリセット要求を生成することができる。このように生成されたリセット要求をリセット調停部105は調停し、リセット生成部104は調停結果に従ってリセット動作を行わせることを指示する信号を送信する。このようにリセット生成部104は、複数の回路ブロックを含む構成のリセット動作を制御する(第1リセット制御)。
リセット動作制御部1〜N(163,164)は、それぞれが1以上の常時電源供給部1〜N(121,122)に接続されており、接続された常時電源供給部1〜N(121,122)のリセット動作を制御する。そして、リセット生成部104からの指示に従い、常時電源供給部1〜N(121,122)のリセット動作を開始させる。このようにリセット動作制御部1〜N(163,164)は、複数の回路ブロック毎のリセット動作を制御する(第2リセット制御)。具体的にはリセット動作制御部1〜N(163,164)は、対応する常時電源供給部1〜N(121,122)へとリセット信号RST1〜Nを送信する。このリセット信号に従って常時電源供給部1〜N(121,122)は、リセット生成部104及びリセット調停部105によって制御されたタイミングでリセット動作を行う。またリセット動作制御部1〜N(163,164)は、ゲーティングクロックバッファ1〜N(173,174)へクロックイネーブル信号CLK_ENを送信する。
図2(a)は、本実施形態に係る半導体集積回路100の概略フロアプラン例である。半導体集積回路100のロジックコア領域202内には、複数の常時電源供給部121〜123が配置されている。また、ロジックコア領域202内にはリセット生成部104及びリセット調停部105、並びにその他の領域124〜125が配置されている。図2(a)には示されていないが、リセット動作制御部1〜N(163,164)及びゲーティングクロックバッファ1〜N(173,174)も適宜配置される。ここで、例えばリセット動作制御部1(163)及びゲーティングクロックバッファ1(173)を対応する常時電源供給部1(121)の近傍に配置することにより、動作タイミングをより正確に制御することができる。
図3は、リセット調停部105の内部構成例を示す。リセット調停部105は、リセット情報保持部301、優先順位設定部302、リセット情報判定部303、リセット動作指示部304、及び制約条件設定部305を有する。
リセット情報保持部301は、常時電源供給部1〜Nのうちの1以上に対するリセット要求を取得する。またリセット情報保持部301には、リセット動作制御部1〜N(163,164)のそれぞれから、常時電源供給部1〜Nについての情報306,307が入力される。この情報306,307は、各常時電源供給部1〜N(121,122)についてのリセット動作状態を示す情報、例えばリセット動作を行っているか否かを示す情報、とクロック供給状態を示す情報とを含む。
制約条件設定部305は、リセットのタイミングを制御するための制約条件(制約情報)を設定する。制約条件については、図5を参照して後に説明する。さらに制約条件設定部305は、優先順位設定部302に対して優先順位を決定するためのオーダー情報(優先順位情報)を送信し、リセット情報判定部303に対して制約条件を送信する。オーダー情報は、各常時電源供給部についてのリセット動作が重なった時に用いられる、リセットされる常時電源供給部の優先順位を定義したものである。例えばこのオーダー情報は、各常時電源供給部を識別するID番号でありうる。この場合、ID番号の大きさに従ってリセットされる常時電源供給部を決定することができる。また、オーダー情報は、各常時電源供給部に対してゲート規模の大きさに従って付された番号であってもよい。この場合、番号の大きさに従ってリセットされる常時電源供給部を決定することができる。
優先順位設定部302は、オーダー情報にアクセス可能であり、リセット情報保持部301に複数のリセット要求が入力された場合に、リセット要求の優先順位を決定する。上述のように、本実施形態において優先順位設定部302は制約条件設定部305からオーダー情報を取得する。
リセット情報判定部303は、制約条件を参照して、リセット要求に従うリセット対象の回路ブロックがリセット動作を行えるか否かを判定する。具体的には、リセット情報保持部301に入力された情報306,307、優先順位設定部302が決定したリセット要求の決定順位、及び制約条件設定部305から取得した制約条件に従って、リセット動作の実行又は延期が決定される。
リセット動作指示部304は、リセット要求に従うリセット対象の回路ブロックがリセット動作を行えるとリセット情報判定部303が判定した場合に、リセット動作指示をリセット生成部104に送信する。またリセット動作指示部304は、リセット更新情報308をリセット情報保持部301に対して送信する。
以上の構成により、リセット動作制御部1〜N(163,164)から送信された常時電源供給部1〜Nについての情報306,307に従って、リセット動作の開始及び終了が制御される。
図4を参照して、リセット情報保持部301が保持する情報について説明する。図4には、常時電源供給部1〜N(121,122)のそれぞれについての、「リセット要求」情報、「未処理のリセット要求」情報、「リセット状態」情報、及び「クロック状態」情報が示されている。これらの情報は、図3に示す各部の後述する動作によって、又はリセット情報保持部301に入力された信号に応じて、更新される。
「リセット要求」は、常時電源供給部をリセットすることが要求されたことを示す。「未処理のリセット要求」は、常時電源供給部に対して以前にリセットが要求されたが、リセット情報判定部303によってリセット動作が延期されていることを示す。より具体的には、複数のリセット要求が同時に発生した際に、リセット情報判定部303がリセット動作を延期した場合に、「未処理のリセット要求」がアクティブになる。例えば、複数のリセット要求が同時に発生した場合であって、優先順位の高いリセット要求に対応するリセット動作が開始された場合に、優先順位の低いリセット要求に対応する「未処理のリセット要求」はアクティブになる。また、リセット要求がキューイングされている際に、リセット情報判定部303がリセット動作を延期した場合にも、「未処理のリセット要求」はアクティブになる。「リセット状態」は、常時電源供給部がリセット動作中であることを示す。「クロック状態」は、常時電源供給部に対するクロック伝搬が行われていることを示す。図4において「1」は、アクティブであることを示す。
以下に、図19(a),(b)のフローチャートを参照して、リセット調停部105の動作を説明する。ステップS1901において制約条件設定部305は、制約条件を設定する。制約条件は、リセット対象の回路ブロックがリセット動作中の他の回路ブロックと同時にリセット動作を行えるか否かを示す情報である。制約条件の設定方法は特に限定はない。制約条件は予め決定され固定されていてもよい。また、制約条件はユーザ又は制御回路を介して設定されてもよい。例えば、制約条件はレジスタ等を介して設定されてもよいし、制約条件はメモリ等から読み出されてもよい。また、例えば電量モニタによって検出された常時電源供給部のリセット動作時の電流値に従って、制約条件が設定されてもよい。
ステップS1901における制約条件により、所定の組み合わせの常時電源供給部が同時にリセット動作を行わないようにリセット要求の調停が行われる。以下に、制約条件の例について説明する。本実施形態において制約条件は、リセット動作の排他制御を可能とする。図5(a)及び図5(b)は、制約条件を示す情報の例であり、常時電源供給部121〜123のそれぞれについて、同時にリセットすることができる常時電源供給部が示されている。
図5(a)においては、それぞれの常時電源供給部の組み合わせに対して、同時にリセットできるか否かが示されている。図5(a)において「1」は同時にリセットできることを示し、「0」は同時にリセットできないことを示す。例えば常時電源供給部1は、常時電源供給部2と同時にリセットすることができるが、常時電源供給部3と同時にリセットすることはできない。図5(a)に示す例においては、それぞれの常時電源供給部に対して、同時にリセット可能であることが示されている常時電源供給部は1つ以下である。
図5(b)においては、それぞれの常時電源供給部に対して、同時にリセットすることができない常時電源供給部が列挙されている。例えば、常時電源供給部1については、常時電源供給部2と常時電源供給部3とがリセット動作を行っている場合には、リセット動作を開始できないことが示されている。このように、制約条件の形式は特に制限されるわけではない。
制約条件を設定することにより、各回路ブロック(常時電源供給部)リセット動作を制御することができる。このような制約条件を設定することの利点について以下に説明する。リセット動作制御部1〜N(163,164)がチップ上に分散配置される場合、リセット動作のタイミングはシステム又はデバイスに依存して変動しうる。例えば、パワーオンリセットのように、各回路ブロックのリセット期間があらかじめ決められている場合には、リセット動作の開始/終了タイミングは容易に予測できる。しかしながら、システムに依存する変動要因が存在する場合、例えばソフトウェアがランダムにリセット動作をリクエストする場合には、リセット動作の開始タイミングを予測することは難しい。また、デバイスに依存する変動要因、例えば回路ブロックのサイズ、形状、位置、個数、電圧、温度、又はプロセスに依存する固体差等により、リセット動作が可能になるタイミングは変動しうる。このために、複数の回路ブロックについてのリセット動作の順序が、予想と異なる場合がある。
特に、画像処理を行う回路のように、複数の回路ブロック間に依存関係が存在する場合、システムが正常に動作するためには、依存関係に従ってリセット動作を行うことが必要であるかもしれない。本実施形態においては、制約条件を設定することにより、回路ブロックのリセット動作を排他制御することができる。具体的には、回路ブロックAと回路ブロックBとが同時にリセット動作をしないように、リセット動作を制御することができる。
ステップS1902においてリセット情報保持部301は、保持しているステータス情報を初期化する。
ステップS1903〜S1907において優先順位設定部302は、リセット生成部104から受け付けたリセット要求に優先順位を設定してキューに入れる(キューイング)。より具体的には、ステップS1903において優先順位設定部302は、新規リセット要求がリセット生成部104からリセット情報保持部301に入力されたか否かを判定する。新規リセット要求が入力された場合、処理はステップS1904に進む。新規リセット要求が入力されていない場合、処理はステップS1908に進む。
ステップS1904において優先順位設定部302は、新規リセット要求を記録するようにステータス情報を更新する。本実施形態においては、リセット情報保持部301が保持するステータス情報は、リセット要求がなされた常時電源供給部についての「リセット要求」が「1」となるように更新される。
ステップS1905において優先順位設定部302は、リセット情報保持部301が保持するステータス情報を参照して、新規リセット要求が複数存在するか否かを判定する。新規リセット要求が複数存在する場合、処理はステップS1906に進む。新規リセット要求が1つである場合には、処理はステップS1907に進む。
ステップS1906において優先順位設定部302は、制約条件設定部305から取得したオーダー情報に従って、新規リセット要求の優先順位を決定する。
ステップS1907において優先順位設定部302は、新規リセット要求をキューイングする。具体的には、新規リセット要求を記憶手段(不図示)に記憶させればよい。新規リセット要求が2以上存在する場合には、ステップS1906において決定された優先順位に従って、新規リセット要求をキューイングする。このようにキューイングされたリセット要求について、順次後述するステップS1911における判定処理が行われる。
ステップS1908において優先順位設定部302は、リセット動作制御部1〜N(163,164)からの、各常時電源供給部においてリセット動作が終了したことを示すリセット終了通知が、リセット情報保持部301に入力されたか否かを判定する。リセット終了通知が入力されている場合、処理はステップS1909に進む。リセット終了通知が入力されていない場合、処理はステップS1910に進む。本実施形態においてリセット動作制御部1〜N(163,164)は、対応する常時電源供給部1〜N(121,122)のリセット期間を、クロック数をカウントすることにより制御するものとする。このためリセット動作制御部1〜N(163,164)は、常時電源供給部1〜N(121,122)のリセット動作が終了するタイミングを把握している。もっとも、常時電源供給部1〜N(121,122)のリセット動作が終了するタイミングをリセット動作制御部1〜N(163,164)が知る方法は、この方法に限られない。
ステップS1909において優先順位設定部302は、リセット終了通知を記録するようにステータス情報を更新する。本実施形態においては、リセット情報保持部301が保持するステータス情報は、リセット動作が終了した常時電源供給部についての「リセット状態」が「0」となるように更新される。
ステップS1910〜S1911,S1917〜S1918においてリセット情報判定部303は、常時電源供給部にリセット動作を行わせるか否かを判定する。より具体的には、ステップS1910においてリセット情報判定部303は、ステップS1907においてキューイングされているリセット要求のうちの1つに対応する常時電源供給部を選択する。本実施形態においてリセット情報判定部303は、キューの先頭にあるリセット要求を選択する。
ステップS1911においてリセット情報判定部303は、制約条件設定部305から取得した制約条件に従って、ステップS1910において選択された常時電源供給部にリセット動作を行わせるか否かを決定する。リセット動作を行わせる場合、処理はステップS1912に進む。リセット動作を行わせない場合、処理はステップS1917に進む。
ステップS1912においてリセット動作指示部304は、ステップS1910において選択された常時電源供給部にリセット動作を行わせることを指示する信号を、リセット生成部104に送信する。ステップS1913においてリセット生成部104は、ステップS1912においてリセット動作指示部304から受け取った信号に従って、リセット動作制御部1〜N(163,164)に対してリセット動作の開始を指示する信号を送る。信号が送られるリセット動作制御部1〜N(163,164)は、指示される常時電源供給部1〜N(121,122)に対応するものである。指示を受けたリセット動作制御部1〜N(163,164)は、対応する常時電源供給部1〜N(121,122)にリセット動作を開始させ、リセット動作を開始したことを示す信号をリセット情報保持部301に送る。リセット動作の開始に合わせたタイミングで、常時電源供給部1〜N(121,122)に対するクロックの供給も開始される。
ステップS1914においてリセット動作指示部304は、リセット動作制御部1〜N(163,164)からのリセット動作を開始したことを示す信号が、リセット情報保持部301に入力されたか否かを判定する。入力されている場合、処理はステップS1915に進む。入力されていない場合には、ステップS1914の処理が繰り返される。
ステップS1915においてリセット動作指示部304は、ステップS1910で選択されたリセット動作制御部がリセット動作を開始したことを記録するように、ステータス情報を更新する。本実施形態においては、リセット情報保持部301が保持するステータス情報は、リセット動作を開始した常時電源供給部についての「リセット状態」が「1」となるように更新される。またリセット動作指示部304は、ステップS1910で選択されたリセット動作制御部のリセット要求を処理したことを記録するように、ステータス情報を更新する。本実施形態においては、リセット情報保持部301が保持するステータス情報は、リセット動作を開始した常時電源供給部についての「リセット要求」及び「未処理のリセット要求」が「0」となるように更新される。またリセット動作指示部304は、ステップS1910で選択されたリセット動作制御部に対するリセット要求を、リセット要求を格納しているキューから削除する。
ステップS1917においてリセット情報判定部303は、ステップS1910で選択された常時電源供給部のリセット動作が延期されたことを記録するように、ステータス情報を更新する。本実施形態においては、リセット情報保持部301が保持するステータス情報は、ステップS1910で選択された常時電源供給部についての「未処理のリセット要求」が「1」となるように、また「リセット要求」が「0」となるように更新される。すでにステップS1910で選択された常時電源供給部についての「未処理のリセット要求」が「1」となっている場合には、この記録を維持する。
ステップS1918においてリセット情報判定部303は、ステップS1910で選択された常時電源供給部に対するリセット要求の次のリセット要求が、リセット要求を格納しているキューに存在するか否かを判定する。次のリセット要求が存在する場合、処理はステップS1910に戻り、リセット情報判定部303は前に選択された常時電源供給部に対するリセット要求の次のリセット要求を選択する。このようにリセット情報判定部303は、キューイングされている順に、例えば記憶手段に記憶された順に、リセット要求を順次選択する。次のリセット要求が存在しない場合、処理はステップS1903に戻る。その後、リセット動作が延期された常時電源供給部については、リセット動作を行うことがステップS1911で判定されるまで、リセット動作を行うか否かの判定が繰り返される。
以下、図4(b)〜(e)及び図7(a)〜(d)を参照して、リセット調停部105の動作例を説明する。以下の説明では、図5(b)に示す制約条件に従ってリセット調停部105が動作するものとする。ステップS1901及びS1902の後、まずリセット生成部104は、常時電源供給部1がリセット動作を行うことを要求する。この場合、処理はステップS1903からステップS1904へと進み、優先順位設定部302は常時電源供給部1についての「リセット要求」が「1」となるようにステータス情報を更新する。更新後のステータス情報の例を図4(b)に示す。ここで、ステップS1903で確認した新規リセット要求は1つであるから、処理はステップS1905からステップS1907へと進み、常時電源供給部1に対するリセット要求がキューに格納される。ステップS1908においてリセット終了通知は入力されないものとし、処理はステップS1910に進む。
ステップS1910において、キューには常時電源供給部1に対するリセット要求のみが格納されているため、リセット情報判定部303は常時電源供給部1を選択する。常時電源供給部1がリセット動作を開始しても制約条件には反しないため、ステップS1911においてリセット情報判定部303は常時電源供給部1にリセット動作を開始させることを決定する。そして、ステップS1912においてリセット動作指示部304は、常時電源供給部1にリセット動作を行わせることを指示する信号をリセット生成部104に送信する。また、ステップS1913においてリセット生成部104は、常時電源供給部1に対応するリセット動作制御部1に対してリセット動作の開始を指示する信号を送る。こうして、タイミングti1において、常時電源供給部1はリセット動作を開始する。そして、ステップS1914でリセット動作指示部304はリセット動作を開始したことを示す信号を受け取ったことを確認する。さらに、ステップS1915でリセット動作指示部304は常時電源供給部1についての「リセット状態」が「1」となり、「リセット要求」が「0」となるようにステータス情報を更新する。
その後、リセット生成部104は、常時電源供給部2がリセット動作を行うことを要求したものとする。この場合、ステップS1903〜S1904の処理が行われ、常時電源供給部2についての「リセット要求」が「1」となるようにステータス情報が更新される。このときのステータス情報の例を図4(c)に示す。
そして、ステップS1905〜S1911の処理が順次行われる。常時電源供給部1と常時電源供給部2が同時にリセット動作を行っても制約条件には反しないため、ステップS1911においてリセット情報判定部303は常時電源供給部2にリセット動作を開始させることを決定する。さらにステップS1912〜S1914が行われることにより、タイミングtj1において、常時電源供給部2はリセット動作を開始する。さらにステップS1915でリセット動作指示部304は常時電源供給部2についての「リセット状態」が「1」となり、「リセット要求」が「0」となるようにステータス情報を更新する。
その後、リセット生成部104は、常時電源供給部3がリセット動作を行うことを要求したものとする。この場合、ステップS1903〜S1904の処理が行われ、常時電源供給部3についての「リセット要求」が「1」となるようにステータス情報が更新される。このときのステータス情報の例を図4(d)に示す。
そして、ステップS1905〜S1911の処理が順次行われる。この場合、常時電源供給部3が、常時電源供給部1及び2と同時にリセット動作を行うと制約条件に反するため、ステップS1911においてリセット情報判定部303は常時電源供給部2にリセット動作を開始させないことを決定する。このときのタイミングをtk1とする。この場合、ステップS1917において常時電源供給部3についての「未処理リセット要求」が「1」となり、「リセット要求」が「0」となるようにステータス情報が更新される。そして、処理はステップS1918からステップS1903に戻る。
その後、タイミングti2において、常時電源供給部1のリセット動作が終了し、リセット終了通知がリセット情報保持部301に入力されたものとする。この場合、ステップS1903,1908,1909の処理が行われ、常時電源供給部1についての「リセット状態」が「0」となるようにステータス情報が更新される。このときのステータス情報の例を図4(e)に示す。このとき、常時電源供給部2の「リセット状態」及び「クロック状態」は「1」のままであり、常時電源供給部3の「未処理のリセット要求」は「1」のままである。
ステップS1910において、以前にキューイングされたリセット要求に対応する、常時電源供給部3が選択される。常時電源供給部3のリセット動作は、タイミングtk1においては開始されず、そのリセット動作の開始は延期されている。そしてステップS1911においてリセット情報判定部303は、常時電源供給部3にリセット動作を行わせるか否かを判定する。ここで、図5(b)の制約条件には、常時電源供給部3は、常時電源供給部1,2が同時にリセット動作を行っている時にのみリセット動作を開始できないことが定められている。したがって今回は、リセット情報判定部303は、常時電源供給部3にリセット動作を行わせることを決定する。そして、ステップS1912〜S1914が行われることにより、タイミングtk3において、常時電源供給部3はリセット動作を開始する。さらにステップS1915でリセット動作指示部304は常時電源供給部3についての「リセット状態」が「1」となり、「未処理のリセット要求」が「0」となるようにステータス情報を更新する。
その後、同様の処理を繰り返すことにより、タイミングtk4において常時電源供給部3のリセット動作が終了し、常時電源供給部3についての「リセット状態」が「0」となるようにステータス情報が更新される。このとき、常時電源供給部2についての「リセット状態」及び「クロック状態」は「1」のままである。さらに、タイミングtj2において常時電源供給部2のリセット動作が終了し、常時電源供給部2についての「リセット状態」が「0」となるようにステータス情報が更新される。
ステップS1906におけるリセットの優先順位の決定方法の例について、図4(a)を参照して説明する。ここでは、オーダー情報として常時電源供給部に設定されたIDを用い、より小さいIDを持つ常時電源供給部について優先的にリセットを行う場合について説明する。説明のために、常時電源供給部AにID1、常時電源供給部BにID2、常時電源供給部CにID3、常時電源供給部DにID4が設定されているものとする。図4(a)のステータス情報は、常時電源供給部Bがリセット動作中であり、常時電源供給部A,Dに対するリセット要求が入力されたことを表している。このように、常時電源供給部A,Dに対して同時にリセット要求がされているため、あらかじめ決められたオーダー情報に従い、リセットの優先順位を決定する。この場合、より小さいIDを持つ常時電源供給部Aについて先にリセット動作が行われる。すなわち、常時電源供給部Aについては「リセット要求」が「0」となり、リセット状態が「1」となる。また、常時電源供給部Dについては、リセット動作が延期される。すなわち、常時電源供給部Dについては「リセット要求」が「0」となり、「未処理のリセット要求」が「1」となる。
図6(a)〜(c)は、本実施形態に係る方法を用いずに、常時電源供給部1〜3が独立にリセット動作を行った場合に供給される電流値の例を示す。また図6(d)は、常時電源供給部1〜3に供給される電流値の合計を示す。図6(d)に示す電流値の合計は、ロジックコア領域202内において最大電流が観測される地点での電流増加幅が、それぞれの常時電源供給部での電流増加幅の合計である場合に、この地点で観測される電流に対応する。
図6(a)は、常時電源供給部1が独立にリセット動作を行った場合に、ti1〜ti1の期間に常時電源供給部1がリセット状態となり、電流Iiが流れることを示している。同様に図6(b)は、常時電源供給部2が独立にリセット動作を行った場合に、tj1〜tj2の期間に常時電源供給部2がリセット状態となり、電流Ijが流れることを示している。また図6(c)は、常時電源供給部3が独立にリセット動作を行った場合に、tk1〜tk2の期間に常時電源供給部3がリセット状態となり、電流Ikが流れることを示している。図6の例においては、ti1〜tj2の期間に各常時電源供給部が独立にリセット状態となる。このため、tk1〜ti2の期間のように、常時電源供給部1〜3のリセット動作が同時に行われる可能性がある。この場合、ロジックコア領域202内での最大電流は(Ii+Ij+Ik)となり、最大電流許容値(Imax)を超えてしまう。
一方で図7(a)〜(c)は、本実施形態に従い、常時電源供給部1〜3のリセット動作が調停された場合の電流値を示す。また、図7(d)は、常時電源供給部1〜3に供給される電流値の合計を示す。この例においては、同時にリセット動作を行った場合に集積回路に供給される電流値が制限値を超える回路ブロックの組み合わせについては、同時にリセット動作が行えないように制約条件が作成されている。図7(a)(b)は図6(a)(b)と同様であるものの、図7(c)のように、常時電源供給部3のリセット動作は遅らせられる。このために、ロジックコア領域202内での最大電流が、最大電流許容値(Imax)を下回るように制御することが可能となる。
以上説明したように、実施形態1によれば、リセット調停部105は、各常時電源供給部の動作状態を示す情報と、制約条件とを参照して、リセット動作を実行させるか否かを判定する。適切な制約条件を用いることにより、適正な電源が供給されるように、リセット動作のタイミングを制御することが可能となる。図7の例においては集積回路に供給される電流値が制限値を超えないように制約条件が作成されているが、制約条件はこれに限定されない。例えば、同時にリセット動作を行った場合に各回路ブロックに供給される電圧の降下幅が制限値を超えないように制約条件が作成されていてもよい。また、集積回路に供給される電力値が制限値を超えないように制約条件が作成されていてもよい。
[実施形態2]
次に、実施形態2に係る半導体集積回路について説明する。図10は、本実施形態に係る半導体集積回路1000の一部を模式的に示す。半導体集積回路1000は、複数の回路ブロックとリセット回路とを有している。本実施形態において半導体集積回路1000は、回路ブロックとして、常時電源供給部1(121)、常時電源供給部N(122)、及び不図示の常時電源供給部2〜N−1を有している。また本実施形態において半導体集積回路1000は、回路ブロックとしてさらに、電源制御対象部1(111)、電源制御対象部M(112)、及び不図示の電源制御対象部2〜電源制御対象部M−1を有している。常時電源供給部1〜N(121,122)は、実施形態1と同様、それぞれ半導体集積回路の一部であって、常時電源電圧が供給される部分(回路ブロック)である。また電源制御対象部1〜M(111,112)は、電源電圧を制御可能な部分(回路ブロック)である。ここで、N及びMは整数であり、N+Mは2以上である。もっとも、回路ブロックの其々が、電源電圧の制御が可能な部分を少なくとも1つ以上含んでいてもよい。
リセット回路は、実施形態1と同様に、リセット生成部104、リセット調停部105を有している。リセット回路はまた、実施形態1と同様に、常時電源供給部用のリセット動作制御部1〜N(163,164)とゲーティングクロックバッファ1〜N(173,174)とを有している。リセット回路はさらに、電源制御対象部用のリセット動作制御部1〜M(161,162)とゲーティングクロックバッファ1〜M(171,172)とを有している。
電源制御指示部103は、電源制御指示P_CMDを受けて、各電源制御対象部に電源制御信号P_CTRLを送信することにより電源制御を行う。例えば、電源制御指示部103は、電源制御対象部1(111)にはP_CTRL1を、電源制御対象部M(112)にはP_CTRLMを送る。
リセット調停部105は、実施形態1と同様に、常時電源供給部1〜N(121,122)の動作情報(AJ_STA)を取得する。さらにリセット調停部105は、電源制御対象部1〜M(111,112)の動作情報(A_STA)を、リセット動作制御部1〜M(161,162)から同様に取得する。さらにリセット調停部105は、リセット生成部104からのREQ信号に従って、各常時電源供給部1〜N(121,122)及び各電源制御対象部1〜M(111,112)へと送信するリセット信号を調停する。
リセット生成部104は、リセット調停部105、リセット動作制御部1〜N(163,164)、及びリセット動作制御部1〜M(161,162)に通信可能に接続されている。リセット生成部104は実施形態1と同様に、リセット動作制御部1〜N(163,164)に対して信号(EJ_RST)を送信することができる。また、リセット生成部104は、リセット動作制御部1〜M(161,162)に対し、電源制御対象部1〜M(111,112)にリセット動作を行わせることを指示する信号(E_RST)を送信することができる。さらにリセット生成部104には、電源制御指示部103からの電源制御信号P_CTRLが入力される。このような電源制御状態を示す電源制御情報として働きうる電源制御信号P_CTRLに基づいて、リセット要求の調停が行われうる。例えば、電源制御信号P_CTRLに基づいて、電源電圧の供給を開始する際に電源リセット生成部104がリセット要求を生成し、このリセット要求をリセット調停部105が調停することができる。
電源制御対象部用のリセット動作制御部1〜M(161,162)は、対応する電源制御対象部1〜N(111,112)へリセット信号P_RST1〜Mを送信する。このリセット信号に従って電源制御対象部1〜N(111,112)は、リセット生成部104及びリセット調停部105によって制御されたタイミングでリセット動作を行う。またリセット動作制御部1〜M(161,162)は、ゲーティングクロックバッファ1〜M(171,172)へクロックイネーブル信号CLK_ENを送信する。常時電源供給部用のリセット動作制御部1〜N(163,164)は、実施形態1と同様である。
電源制御対象部1(111)の詳細な構成について、図13(a)を参照して説明する。電源制御対象部2〜Mも、電源制御対象部1と同様の構成を有する。電源制御対象部1(111)は、スイッチ1301、電源ネットワーク1302、及び回路ブロック1303を備える。電源Vddaは、スイッチ1301及び電源ネットワーク1302を介して回路ブロック1303に接続される。このスイッチ1301により、電源電圧の供給及び遮断が制御される。図13(a)の例では、PMOSで構成される電源スイッチをスイッチ1301として用いている。しかしながらスイッチ1301は、半導体集積回路内で電源電圧を制御する構成であれば特に限定されず、電源制御の方式に制限はない。
図2(b)は、本実施形態に係る半導体集積回路1000の概略フロアプラン例である。半導体集積回路1000のロジックコア領域202内には、複数の常時電源供給部121〜125と、複数の電源制御対象部111〜119とが配置されている。また、電源制御指示部103、リセット生成部104、及びリセット調停部105も配置されており、これらも常時電源供給部に属する。図2(b)は、4つの電源制御対象部(111,112,113,114)が密集して配置されている(斜線部)ことを示している。
図11は、本実施形態に係るリセット調停部105の内部構成例を示す。本実施形態に係るリセット調停部105の構成は実施形態1と同様であるが、リセット情報保持部301にはさらに電源制御対象部1〜Mについての情報1101,1102が入力される。リセット情報保持部301、優先順位設定部302、リセット情報判定部303、リセット動作指示部304、及び制約条件設定部305は、別記されない限り実施形態1と同様に動作する。
図5(c)(d)は、本実施形態において用いられる制約条件の例を示す。図5(c)は図5(a)と同様のものであり、図5(d)は図5(b)と同様のものである。例えば図5(d)においては、電源制御対象部5は、以下の(i)〜(iii)のいずれかの場合にはリセット動作を開始しない。すなわち、(i)電源制御対象部1,3,6の全てのリセット動作中、(ii)電源制御対象部8,1の全てのリセット動作中、又は(iii)電源制御対象部8,3の全てのリセット動作中、である。図5(c)(d)には簡略化のために常時電源供給部については記載されていない。しかしながら制約条件は、同時にリセット動作を行わない常時電源供給部の組み合わせ、及び同時にリセット動作を行わない電源制御対象部と常時電源供給部との組み合わせも含みうる。
本実施形態に係るリセット調停部105は、実施形態1と同様、図19(a)(b)に従って動作する。以下、図4(f)〜(h)及び図9(a)〜(e)を参照して、リセット調停部105の動作を説明する。以下の説明においてリセット調停部105は、図5(d)に示す制約条件に従って動作するものとする。
リセット調停部105は、電源制御対象部1、電源制御対象部2、及び電源制御対象部3について、順次リセット要求を受ける。例えば、電源制御対象部1についてのリセット要求を受けた際には、ステップS1904において、電源制御対象部1についての「リセット要求」が「1」に更新される。また、ステップS1915において、電源制御対象部1についての「リセット要求」が「0」に更新され、「リセット状態」が「1」に更新される。このようにして、タイミングta1において電源制御対象部1についての「リセット状態」は「1」に更新される。同様に、タイミングtb1及びtc1において電源制御対象部2及び3についての「リセット状態」は「1」に更新される。続いて、リセット調停部105は電源制御対象部4についてのリセット要求を受け、ステップS1904において電源制御対象部4についての「リセット要求」が「1」に更新される。このときのステータス情報の例を図4(f)に示す。
続くステップS1910ではリセット要求の対象である電源制御対象部4が選択される。ここで、図5(d)によれば、電源制御対象部4は、電源制御対象部1,2,3が同時にリセット動作している場合には、リセット動作を開始しないことが示されている。したがって、処理はステップS1911からステップS1917に進み、電源制御対象部4についての「リセット要求」が「0」に、「未処理のリセット要求」が「1」に、それぞれ更新される。こうして、電源制御対象部4についてのリセット動作開始は延期される。
その後、タイミングta2において電源制御対象部1のリセット動作が終了する。するとリセット調停部105は、リセット動作制御部1からリセット終了通知を受ける。その後、ステップS1909においてリセット動作制御部1についての「リセット状態」が「1」から「0」に更新される。この時のステータス情報の例を図4(g)に示す。このとき、電源制御対象部2,3についての「クロック状態」及び「リセット状態」は、「1」のままである。また、電源制御対象部4についてのリセット要求は、キューイングされたままである。
続くステップS1910において、リセット要求がキューイングされている電源制御対象部4が選択される。ここで、図5(d)によれば、電源制御対象部4は、電源制御対象部2,3が同時にリセット動作している場合には、リセット動作を開始しないことが示されている。したがって、電源制御対象部4についてのリセット動作開始は延期される。
その後、タイミングtc2において電源制御対象部3のリセット動作が終了する。するとリセット調停部105は、リセット動作制御部3からリセット終了通知を受ける。その後、ステップS1909においてリセット動作制御部3についての「リセット状態」が「1」から「0」に更新される。この時のステータス情報の例を図4(h)に示す。
続くステップS1910において、リセット要求がキューイングされている電源制御対象部4が選択される。ここで、図5(d)によれば、電源制御対象部4は、電源制御対象部2のみがリセット動作している場合でも、リセット動作を開始できる。したがって、処理はステップS1911からステップS1913へと進み、タイミングtd3で電源制御対象部4のリセット動作が開始する。その後、タイミングtb2で電源制御対象部2のリセット動作が終了し、タイミングtd4で電源制御対象部4のリセット動作が終了する。
図10に示す、本実施形態に係る構成における動作タイミングを図12のタイミングチャートに示す。外部からクロック信号CLKが常時供給されている状態で、電源制御指示P_CMDにより、電源遮断期間T1から電源復帰期間T2へ移行する。電源復帰期間T2においては、電源Vddaによる電源供給が開始される。電源Vddaによる電源供給準備の終了が近づく、すなわち電源供給の安定化が近づくと、電源制御対象部1からの信号A_STA1、及び電源制御対象部Mからの信号A_STAMがリセット調停部105に送信される。電源供給が安定した後、電源制御対象部1はリセット期間T3を経て、定常動作期間T4へ移行する。
より具体的には、電源制御指示P_CMDを受け取ると、リセット生成部104は電源制御対象部1,Mについてのリセット要求を生成し、リセット調停部105に送信する。リセット調停部105は、電源制御対象部1,Mから情報を取得し、送信されたリセット要求を調停してリセット生成部104に調停結果を送信する。そしてリセット生成部は、リセット動作を行わせる電源制御対象部に対応するリセット動作制御部に信号E_RSTを送信する。ここでリセット調停部105は、調停の結果、電源制御対象部1にリセット動作を行わせ、電源制御対象部Mのリセット動作を延期することを決定したものとする。この場合、信号E_RST1がアクティブになる。すると、信号E_RST1に応じて、リセット動作制御部161は信号CLK_ENをアクティブにする。この信号CLK_ENに応じて、ゲーティングクロックバッファ171はクロックを電源制御対象部1に伝搬する(CLK_G)。さらに、リセット動作制御部161は調整されたタイミングで信号P_RST1を解除し、さらにリセット生成104は信号E_RST1をインアクティブにする。
このように電源制御対象部1のリセット動作が終了すると、リセット調停部105はリセット生成部104に電源制御対象部Mについてのリセット動作を開始させる。具体的には、リセット期間T3と重ならないリセット期間T5において、リセット生成部104は信号E_RSTMをアクティブにする。すると、電源制御対象部Mは電源制御対象部1と同様にリセット動作を行い、その後定常動作期間T6へと移行する。
上記の例においては、電源制御指示P_CMDの入力に応じて電源復帰が行われた。しかしながら、各電源制御対象領域が既に電源供給されている場合には、リセット生成部104が決定したタイミングでリセット動作を行わせる信号E_RSTが送信される。
図8(a)〜(d)は、各電源制御対象部1〜4が個別にリセット動作を行った場合に供給される電圧の例を示す。図8(a)は、電源制御対象部1(111)が単独で電源復帰した場合に、タイミングta1〜ta2の期間にリセット動作を行い、電圧がΔVaだけ下がることを示している。同様に図8(b)〜(d)は、電源制御対象部2,3,4がそれぞれ単独で電源復帰した場合を示している。すなわち、電源制御対象部2,3,4はタイミングtb1〜tb2、tc1〜tc2、td1〜td2のそれぞれの期間にリセット動作を行い、電圧がそれぞれΔVb、ΔVc、ΔVdだけ下がる。
図8(e)は、図8(a)〜(d)に示すタイミングで電源制御対象部1〜4がリセット動作を行った場合の、電圧降下幅を示す。図8(d)に示す電圧値は、ロジックコア領域202内において最低電圧が観測される地点での電圧降下幅が、それぞれの常時電源供給部での電圧降下幅の合計である場合に、この地点で観測される電圧に対応する。図8に示されるように、タイミングtd1〜tc2の期間には、電源制御対象部1〜4のリセット動作が行われる。この期間における電圧値は(V0−ΔVa−ΔVb−ΔVc−ΔVd)となり、最低電圧値(Vmin)を下回ってしまう。
一方で図9(a)〜(d)も、図8(a)〜(c)と同様に、各電源制御対象部1〜4が個別にリセット動作を行った場合に供給される電圧の例を示している。図9(e)は、本実施形態に従い、電源制御対象部1〜4のリセット動作が調停された場合の電圧降下幅を示している。本実施形態においては例として、同時にリセット動作を行った場合に各回路ブロックに供給される電圧の降下幅が制限値を超えないように制約条件が生成されている。図9(e)に示すように、本実施形態の方法によれば、電圧が最低電圧(Vmin)以下になることが防止される。
以上説明したように、実施形態2によれば、適正な電源が供給されるように、リセット動作のタイミングを制御することが可能となる。電源制御対象部は、電源供給が制御されるために、常時電源供給部よりもより高い頻度でのリセット動作が要求されることが多く、したがってリセット要求が近接したタイミングでなされることも多い。本実施形態の方法は、このような場合であっても適正な電源が供給されることを可能とする。
本実施形態において電源制御対象部はロジックコア領域202に含まれるものとしたが、I/O等の、ロジックコア領域外にある回路の電源制御を同様に行うこともできる。
[実施形態3]
以下で、実施形態3に係る半導体集積回路について説明する。図15は、本実施形態に係る半導体集積回路1500の一部を模式的に示す。本実施形態に係る半導体集積回路は実施形態2に係る半導体集積回路と同様であるが、リセット回路に電源状態判定部1〜M(181,182)が追加されている。電源状態判定部1〜M(181,182)は、各電源制御対象部1〜M(111,112)に対応する。本実施形態に係る半導体集積回路が有する各部の構成及び動作は、別記ない限り実施形態2に係る半導体集積回路1000が有する各部と同様である。
電源状態判定部1〜M(181、182)には、対応する電源制御対象部の電源電圧を監視する検出端子が接続される。例えば、図13(b)に示すように、電源状態判定部1(181)には、電源制御対象部1(111)内の電源ネットワーク1302の電源電圧を監視する検出端子P_SNSが接続される。上述のように、電源ネットワーク1302は回路ブロック1303に電源を供給する。また、電源状態判定部1〜M(181,182)には、対応する電源制御対象部1〜M(111,112)に対する電源制御信号P_CTRLが入力される。さらに電源状態判定部1〜M(181,182)は、Vddaが動作可能であるか否かを示す信号P_RDYを対応するリセット動作制御部1〜M(161)に送信する。さらに、各電源状態判定部1〜M(111,112)は、リセット動作を調停するために用いられる電源状態情報AP_STAをリセット調停部105に送信する。電源状態情報AP_STAもまた、Vddaが動作可能であるか否かを示す情報である。
本実施形態においては、検出端子を用いて各電源制御対象部の電源電圧を監視すること(電圧監視)により、Vddaが動作可能であるか、すなわちリセット動作が可能となる電圧が電源制御対象部に供給されているかが判定される。そしてリセット調停部105は、電源制御対象部の電源電圧がリセット動作を行うために十分である場合にリセット動作を開始するように、リセット要求の調停を行う。もっとも、タイムラグを考慮して、電源電圧がVddaよりも低い所定値を超えている場合に、電源電圧がリセット動作を行うために十分であると判定してもよい。各電源制御対象部(111,112)が既に電源を供給されている状態にある場合には、電源制御対象部(111,112)の電源状態を示す信号AP_STAを用いなくてもよい。そして、リセット生成部104からの信号E_RSTを介して、各電源制御対象部(111,112)のリセット動作が制御させる。
リセット動作制御部1〜M(161,162)は、対応する電源状態判定部1〜M(181,182)からのP_RDY信号を受け、リセット調停部105へと電源制御対象部1〜M(111,112)の情報A_STAを送信する。この情報は、各電源制御対象部1〜M(111,112)のリセット動作状態を示す情報とクロック供給状態を示す情報を含む。またリセット動作制御部1〜M(161,162)は、リセット生成部104からの信号E_RSTを受け取る。そしてリセット動作制御部1〜M(161,162)は、対応する電源制御対象部1〜M(111,112)へと設定されたタイミングでリセット信号P_RSTを送信する。さらにリセット動作制御部1〜M(161,162)は、ゲーティングクロックバッファ1〜M(171,172)へクロックイネーブル信号CLK_ENを送信する。
リセット調停部105には、実施形態2と同様、リセット動作制御部1〜M(161,162)から、電源制御対象部1〜M(111,112)の情報A_STAが入力される。さらにリセット調停部105には、各電源状態判定部1〜M(181,182)から、電源状態判定情報AP_STAが入力される。そしてリセット調停部105は、入力された情報を用いて、リセット信号の調停を行い、リセット生成部104に指示を送る。
リセット生成部104は、実施形態2と同様、各電源制御対象部1〜M(111,112)への電源制御信号P_CTRLを受け取る。またリセット生成部104は、リセット調停部105による調停結果に従って、電源制御対象部用のリセット動作制御部1〜M(161,162)へとリセット信号E_RSTを送る。さらにリセット生成部104は、リセット調停部105による調停結果に従って、常時電源供給部用のリセット動作制御部1〜N(163,164)にも信号を送る。
電源制御対象部1〜M(111,112)は、図13(b)に例示するように、スイッチ(1301)、電源ネットワーク(1302)、及び回路ブロック(1303)を備える。電源Vddaは、電源スイッチ等のスイッチ(1301)及び電源ネットワーク(1302)を介して回路ブロック(1303)に接続される。
図16は、本実施形態に係るリセット調停部105の内部構成例を示す。本実施形態に係るリセット調停部105の構成は実施形態2と同様であるが、リセット情報保持部301にはさらに電源制御対象部1〜Mについての電源状態情報AP_STA(1101,1102)が入力される。リセット情報保持部301、優先順位設定部302、リセット情報判定部303、リセット動作指示部304、及び制約条件設定部305は、別記されない限り実施形態1と同様に動作する。
本実施形態に係るリセット調停部105は、図19(a)(b)に従って実施形態2と同様に動作するが、ステップS1911における処理が異なる。実施形態2と同様、ステップS1911でリセット情報判定部303は、ステップS1910で選択された常時電源供給部又は電源制御対象部について、制約条件を参照してリセット動作を行わせるか否かを判定する。本実施形態においては、ステップS1910で電源制御対象部が選択されている場合、さらに選択された電源制御対象部についての電源状態情報AP_STAを参照して、リセット動作を行わせるか否かを判定する。具体的には、制約条件によればリセット動作が可能であり、かつ電源電圧が十分な状態である場合に、リセット動作を実施することを決定する。一方で、電源電圧が十分ではない場合には、リセット動作を延期する。
別の実施例として、ステップS1911の処理を実施形態2と同様に行い、ステップS1914において一定時間内にリセット動作を開始したことを示す信号が入力されなかった場合に、処理がステップS1915に進んでもよい。リセット動作制御部1〜Mは、信号P_RDYを参照して、電源電圧が十分な状態にある時にのみリセット動作を開始し、リセット動作の開始を示す信号をリセット調停部105に入力するように構成することができる。このため、このような構成によっても、電源電圧に応じてリセット動作の開始/延期を決定することができる。
以上のように、実施形態3によれば、電源制御対象部についての電源状態と、制約条件とを用いて、リセット要求の調停が行われる。電源状態を参照しながらリセット動作を制御する場合には、設計段階で把握し難いプロセスに依存する変動や温度変化等によってリセット開始タイミングが変化しうる。本実施形態の方法によれば、制約条件を参照することにより、このような場合であっても適正な電源を供給することが可能となる。本実施形態においては電源制御対象部についての電源状態を参照してリセット要求の調停を行ったが、常時電源供給部についての電源状態を参照してリセット要求の調停を行ってもよい。
[実施形態4]
以下で、実施形態4に係る半導体集積回路について説明する。図17は、本実施形態に係る半導体集積回路1700の一部を模式的に示す。本実施形態においては、各電源制御対象部及び常時電源供給部におけるリセット時の電流情報を取得することにより、自動的に制約条件が生成される。
本実施形態に係る半導体集積回路1700は実施形態3に係る半導体集積回路1500と同様であるが、電流モニタ部191が追加されている。また、信号TR−MODEが半導体集積回路1700の各部に入力される。信号TR−MODEは、実施形態3と同様の動作を行う通常動作モードと、制約条件を自動的に生成するトレーニングモードとを切り替えるための信号である。信号TR−MODEは、半導体集積回路1700内の不図示の構成要素、又は半導体集積回路1700外から入力される。トレーニングモードの動作は、通常動作モードを開始する前の初期段階において実行されうる。
電流モニタ部191には、信号TR_MODEと、各リセット動作制御部1〜M(161,162)からのリセット信号P_RSTと、各電源制御対象部1〜M(111,112)からの信号P_MONTとが入力される。また電流モニタ部191には、各リセット動作制御部1〜M(163,164)からのリセット信号P_RSTと、各常時電源供給部1〜N(121,122)からの信号MONTとがさらに入力される。信号P_MONT及びMONTは、電流モニタ部191が各電源制御対象部又は常時電源供給部内の電流を検出するために用いる信号である。このように電流モニタ部191は、電源制御対象部1〜M(111,112)及び常時電源供給部1〜N(121,122)のそれぞれについて、流れる電流値を監視することができる。この監視結果を用いて、後述する制約条件生成部1801は制約条件を生成する。本実施形態においては電流値が監視されるが、電源制御対象部1〜M(111,112)及び常時電源供給部1〜N(121,122)のそれぞれの状態を監視(回路監視)し、監視結果を用いて制約条件を生成してもよい。監視される状態としては、電圧値又は電力値のような電源状態が挙げられる。
図21は、本実施形態に係る電流モニタ部191の構造例である。電流モニタ部191は、制御部2103と、入力切り替え部2104とを備える。入力切り替え部2104は、電流を検出するための信号MONT及びP_MONTから信号を選択するための回路である。電流モニタ部191はまた、取得した信号を増幅する増幅器2101と、増幅された信号をAD変換してデジタル信号に変換するAD変換部2102とを備える。得られたデジタル信号は、各電源制御対象部又は常時電源供給部を流れる電流の大きさを示す電流情報として働く。電流モニタ部191はさらに、AD変換部2102により得られた電流情報を保持する情報保持部2105と、電流情報を出力する情報出力部2106とを備える。
制御部2103には、信号TR_MODEと、各電源制御対象部及び常時電源供給部へのリセット信号であるP_RST及びRSTとが入力される。トレーニングモード時においては、各電源制御対象部及び常時電源供給部が順次シリアルにリセット動作を行うように、リセット生成部104は信号P_RST及びRSTを制御する。そして制御部2103は、信号P_RST及びRSTに基づいて入力切り替え部2104に取得する信号を切り替えさせる。こうして、リセット動作を行う電源制御対象部又は常時電源供給部が切り換えられたタイミングで、リセット動作を行う電源制御対象部又は常時電源供給部についての信号MONT又はP_MONTを取得するように、入力切り替え部2104は切り換え動作を行う。また、情報保持部2105は、制御部2103の制御に従い、各電源制御対象部又は常時電源供給部ごとに、AD変換部2102により得られた電流情報を保持する。情報出力部2106は、各電源制御対象部及び常時電源供給部についての電流情報が揃った際に、得られた電流情報をリセット調停部105に送信する。
図17の場合では、各電源制御対象部1〜M(111,112)からの信号P_MONT1〜Mが、電流モニタ部191に順次入力される。そして、入力された信号P_MONT1〜Mに基づいて電源制御対象部1〜M(111,112)内の電流値を示す信号P_MONT1〜M_OUTが順次生成される。同様に、常時電源供給部1〜N(121,122)からの信号MONT1〜Nが順次電流モニタ部(191)に入力され、常時電源供給部1〜N(121,122)内の電流値を示す信号MONT1〜N_OUTが順次生成される。そして、生成された信号P_MONT_OUT及びMONT_OUTがリセット調停部105に送信される。
本実施形態においては、複数の電源制御対象部及び常時電源供給部に対して1つの電流モニタ部191が設けられる。しかしながら、回路ブロックのゲート規模又は電源電圧の情報等に基づいて、並列に電流値を測定することが可能であることが予め判明している場合、複数の電流モニタ部を用いて電流値の測定を並列に行ってもよい。
図18は、本実施形態に係るリセット調停部105の内部構成例を示す。本実施形態に係るリセット調停部105の構成は実施形態3と同様であるが、さらに制約条件生成部1801を備える。リセット情報保持部301、優先順位設定部302、リセット情報判定部303、リセット動作指示部304、及び制約条件設定部305は、別記されない限り実施形態3と同様に動作する。
制約条件生成部1801には、信号TR_MODEと、上述の電流情報P_MONT_OUT及びMONT_OUTが入力される。そして制約条件生成部1801は、入力された電力制約条件、並びに各電源制御対象部及び常時電源供給部についての電源電圧情報を用いて、制約条件を生成する。電力制約条件は、リセット時に各電源制御対象部及び常時電源供給部に供給する電力の最大限界値を示す。この電力制約条件は、半導体集積回路1700内の不図示の構成要素、又は半導体集積回路1700外から入力され、例えば、ユーザが設定することができる。制約条件生成部1801は、各電源制御対象部及び常時電源供給部について、電流情報及び電源電圧情報から電力値を算出する。そして制約条件生成部1801は、算出された電力値に基づいて、リセット時に各電源制御対象部及び常時電源供給部に供給する電力が最大限界値を超えないように制約条件を生成し、制約条件設定部305へと送信する。
以下、制約条件生成部1801による制約条件生成方法について、図20のフローチャートを参照して説明する。本実施形態において、図20に示す処理は、ステップS1901において行われる。ステップS2001において制約条件生成部1801は、トレーニングモードを開始する。具体的には制約条件生成部1801は、信号TR_MODEをアクティブに切り替える。ステップS2002において制約条件生成部1801は、電力制約条件を取得する。
ステップS2003において制約条件生成部1801は、各リセット動作制御部161〜164を制御することにより、各電源制御対象部及び常時電源供給部に対して順次リセット動作を行わせる。すると、各電源制御対象部及び常時電源供給部についての電流情報が、電流モニタ部191により取得される。例えば、各リセット動作制御部にクロックをカウントする機構を設けることにより、異なるタイミングでリセット動作を開始させることができる。この電流情報は、電源制御対象部又は常時電源供給部が単独でリセット動作を行ったときに流れる電流値を示す。
ステップS2004において制約条件生成部1801は、電源制御対象部及び常時電源供給部のうち1つを選択する。以下では、選択された電源制御対象部又は常時電源供給部を対象回路ブロックと呼ぶ。続くステップS2005〜S2010においては、対象回路ブロックについての制約条件が生成される。
ステップS2005において制約条件生成部1801は、対象回路ブロックを除く電源制御対象部及び常時電源供給部のうちの1以上である回路ブロックを選択する。例えば、対象回路ブロックを除く電源制御対象部及び常時電源供給部のうちの1つを選択すればよい。ステップS2006において制約条件生成部1801は、対象回路ブロックについての電力値と、ステップS2005又はS2010で選択された回路ブロックについての電力値と、の合計を算出する。ここで、対象回路ブロックについての電力値とは、対象回路ブロックが単独でリセット動作を行った際に消費される電力値である。また、ステップS2005又はS2010で選択された回路ブロックについての電力値とは、選択された回路ブロックのそれぞれが単独でリセット動作を行った際に消費される電力値の合計値である。上述のように、電源制御対象部又は常時電源供給部が単独でリセット動作を行ったときに流れる電力値は、電源電圧情報と電流情報とを用いて算出することができる。
ステップS2007において制約条件生成部1801は、ステップS2006で算出された合計電力が、電力制約条件を満たしているか否か、例えば最大限界値以下であるか否かを判定する。電力制約条件が満たされている場合、処理はステップS2008に進む。電力制約条件が満たされていない場合、処理はステップS2009に進む。ステップS2008において制約条件生成部1801は、S2005又はS2010で選択された1以上の回路ブロックを識別する情報を、対象回路ブロックについての制約条件のうちの1つとして記録する。この情報により、S2005又はS2010で選択された1以上の回路ブロックが同時にリセット動作を行っている場合には、対象回路ブロックのリセット動作を開始しないことが特定される。この方法によれば、消費電力値の合計が所定の制限値を超える回路ブロックの組み合わせについては同時にリセット動作が行えないように、制約条件を生成することができる。
ステップS2009において制約条件生成部1801は、ステップS2010において異なる回路ブロックを選択できるか否かを判定する。選択できる場合、処理はステップS2010に進み、対象回路ブロックを除く電源制御対象部及び常時電源供給部のうちの1以上である回路ブロックを新たに選択する。ステップS2005及びS2010において制約条件生成部1801は、対象回路ブロックを除く電源制御対象部及び常時電源供給部のうちの1以上の組み合わせを順次選択することができる。例えば、対象回路ブロックを除く電源制御対象部及び常時電源供給部のうちの1以上からなる全ての組み合わせから、1つの組み合わせを順次選択することができる。この場合、選択されていない組み合わせが残っていない場合に、ステップS2010において異なる回路ブロックは選択できないものと判定される。もっとも、電源制御対象部及び常時電源供給部のうちの1以上の組み合わせの選択方法は特に限定されない。例えば、電源制御対象部又は常時電源供給部のうち1つを組み合わせに追加し、又は組み合わせから除外することを繰り返してもよい。
ステップS2010において異なる回路ブロックは選択できないものと判定された場合、処理はステップS2012に進む。ステップS2012において制約条件生成部1801は、まだ対象回路ブロックとして選択されていない電源制御対象部又は常時電源供給部が存在するか否かを判定する。存在する場合、処理はステップS2011に進み、制約条件生成部1801はまだ対象回路ブロックとして選択されていない電源制御対象部又は常時電源供給部のうち1つを選択する。存在する場合、処理はステップS2013に進む。ステップS2013において制約条件生成部1801は、得られた制約条件を制約条件設定部305に送信する。ステップS2014において制約条件生成部1801は、トレーニングモードを終了し、通常モードを開始する。具体的には制約条件生成部1801は、信号TR_MODEをインアクティブ状態にする。そして、ステップS1902以降の処理が行われる。
以上の図20に示される処理を必ず行う必要はない。例えば制約条件生成部1801は、ステップS1901において、以前に生成した制約条件を制約条件設定部305に送信してもよい。すなわち制約条件生成部1801は、以前に制約条件を生成したときから所定の時間が経過している場合に、又はユーザ指示等の制約条件生成部1801外からの指示に応じて、制約条件を生成してもよい。
実施形態4によれば、適切なタイミングでリセット動作を制御できるように、制約条件を自動的に生成することができる。設計段階で把握し難いプロセスに依存する変動や温度変化等によって、リセット動作中の電源状態は変動しうる。本実施形態によれば、このような場合であっても適切な制約条件を生成することができるため、より適切な電源の供給、及びパフォーマンスの向上が期待できる。本実施形態では例として集積回路に供給される電力値が制限値を超えないように制約条件を作成したが、上述のように、電流値又は電圧降下幅のような他の電源状態に基づいて制約条件を作成してもよい。