以下、本発明の実施形態を図面に基づいて説明する。
図5は、本発明の第一実施例に係るLSI内部における電源ノイズを抑制するための回路構成を示す図である。図5中、LSI内部における電源ノイズを抑制するための回路構成のみが例示され、他は省略される。
図5において、電源ノイズの抑制に係る回路構成として、LSI100は、コア_0 10と、コア_1 11と、コア_2 12と、コア_3 13と、第一コントローラ110と、アービタ200とを有する。図5では、4つのプロセッサが、コア_0 10と、コア_1 11と、コア_2 12と、コア_3 13として配列される例を示しているが、本発明は、この回路構成に限定されるものではなく、1からn個(nは4以上)のプロセッサによるマルチコアプロセッサについても以下に説明する同様の構成を備えることによって適応可能である。
コア_0 10は、システムクロックsclkと動作イネーブル信号en0とを入力してコア内システムクロックsclk_c0を出力するクロックゲート10gを有する。コア_1 11は、システムクロックsclkと動作イネーブル信号en1とを入力してコア内システムクロックsclk_c1を出力するクロックゲート11gを有する。コア_2 12は、システムクロックsclkと動作イネーブル信号en2とを入力してコア内システムクロックsclk_c2を出力するクロックゲート12gを有する。コア_3 13は、システムクロックsclkと動作イネーブル信号en3とを入力してコア内システムクロックsclk_c3を出力するクロックゲート13gを有する。
第一コントローラ110は、第二コントローラ120と、パルスドラッチ10p、11p、12p、及び13pとを有する。
第二コントローラ120は、アービタ200に対して、コア_0 10と、コア_1 11と、コア_2 12と、コア_3 13とへの動作を開始するためのON化要求又は動作を停止するためのOFF化要求を行う。このON化要求又はOFF化要求は、パルスドラッチ10p、11p、12p、及び13pへも供給される。
パルスドラッチ10pは、コア_0 10に接続され、第二コントローラ120からON化要求又はOFF化要求を受信し、かつ、そのON化要求又はOFF化要求に対してアービタ200から承認パルスackp0を受信した場合に、コア_0 10に動作イネーブル信号en0を供給する。
パルスドラッチ11pは、コア_1 11に接続され、第二コントローラ120からON化要求又はOFF化要求を受信し、かつ、そのON化要求又はOFF化要求に対してアービタ200から承認パルスackp1を受信した場合に、コア_1 11に動作イネーブル信号en1を供給する。
パルスドラッチ12pは、コア_2 12に接続され、第二コントローラ120からON化要求又はOFF化要求を受信し、かつ、そのON化要求又はOFF化要求に対してアービタ200から承認パルスackp2を受信した場合に、コア_2 12に動作イネーブル信号en2を供給する。
パルスドラッチ13pは、コア_3 13に接続され、第二コントローラ120からON化要求又はOFF化要求を受信し、かつ、そのON化要求又はOFF化要求に対してアービタ200から承認パルスackp3を受信した場合に、コア_3 13に動作イネーブル信号en3を供給する。
アービタ200は、外部から設定された共振周期Tresに基づいて、ON化要求及びOFF化要求のタイミングを調整する回路である。アービタ200は、コア_0 10、コア_1 11、コア_2 12、及びコア_3 13の各々に対応する信号req0、req1、req2、及びreq3を受信し、共振周期Tresに基づくタイミング調整を行って、第一コントローラ110に対して承認パルスackp0、ackp1、ackp2、及びackp3を送信する。
ON化とは、動作イネーブル信号en0からen3を同時に又は個々にOFF状態からON状態へと移行させることである。また、OFF化とは、動作イネーブル信号en0からen3を同時に又は個々にON状態からOFF状態へと移行させることである。
まず、コア_0 10を例にとり、コア_0の動作状態に応じた信号状態を図6(A)で説明する。動作状態には、ON状態とOFF状態とがある。図6(A)は、コア_0 10における動作状態の例を示す図である。
図6(A)において、コア_0 10の動作状態(以下、コア_0状態という)がON状態の場合、動作イネーブル信号en0はハイレベルを維持し、また、動作イネーブル信号en0がハイレベルの間コア_0 10が適切に動作するために供給されたシステムクロックsclkがコア内システムクロックsclk_c0として内部で使用される。コア_0状態がOFF状態に移行すると、動作イネーブル信号en0はローレベルとなり、また、システムクロックsclkの内部への供給が停止され、コア内システムクロックsclk_c0もローレベルとなる。コア_0 10は、このようにON状態とOFF状態とを繰り返す。また、他のコア_1からコア_3についても同様にON状態とOFF状態とを繰り返す。
アービタ200による共振周期Tresに基づくタイミング調整の概念について、図6(B)で簡単に説明する。図6(B)は、コア_0及びコア_1に対して同時にON化要求し、更に同時にOFF化要求が行われた場合の共振周期Tresに基づくタイミング調整の概念を説明するための図である。
図6(B)において、信号req0と信号req1とが同時にONとなりON化要求を示すと、アービタ200は、例えば、先ずコア_0 10に対する承認パルスackp0を第一コントローラ110に送信し、共振周期Tresに依存するある時間の経過後、コア_1 11に対する承認パルスackp1を第一コントローラ110に送信する(アービタによるタイミング調整20a)。
その後、信号req0と信号req1とが同時にOFFとなりOFF化要求を示すと、アービタ200は、例えば、先ずコア_0 10に対する承認パルスackp0を第一コントローラ110に送信し、共振周期Tresに依存するある時間の経過後、コア_1 11に対する承認パルスackp1を第一コントローラ110に送信する(アービタによるタイミング調整20b)。
以下、アービタ200による共振周期Tresに基づくタイミング調整について詳述する。
図7は、本発明の第一実施例に係るアービタ200の状態遷移を示す図である。図7において、アービタ200には、初期状態と、制約A発動状態と、制約B発動状態とがある。初期状態とは、内部電源電位ivddが安定している状態であり、例えば、電源電位変動が発生していない又は収束した状態、複数の電源電位変動が干渉し合ってキャンセルしている状態などである。制約A発動状態とは、初期状態から動作状態へ移行した際に更なる動作開始及び動作停止を制約する状態にすることである。また、制約B発動状態とは、初期状態から停止状態へ移行した際に更なる動作開始及び動作停止を制約する状態にすることである。
初期状態では、コントローラ110からのON化要求の数と、OFF化要求の数とが同数の場合、アービタ200は、全てのON化要求及び全てのOFF化要求に対して承認し、初期状態を維持する。
初期状態においてON化要求の数がOFF化要求の数より多い場合、アービタ200は、ON化要求全体のうちOFF化要求の数分のON化要求と、OFF化要求とに対して承諾し、更に1つだけON化要求に対して承諾する。アービタ200は、残りON化要求は保留させて、制約A発動状態に移行する。
制約A発動状態にて設定された許可期間にON化要求又はOFF化要求のイベントが発生した場合、アービタ200は、制約A発動状態から初期状態へと移行する。又は、LSI100内部の電源電位が収束したとみなされる一定時間の経過後、アービタ200は、制約A発動状態から初期状態へと移行する。
初期状態においてOFF化要求の数がON化要求の数より多い場合、アービタ200は、OFF化要求全体のうちON化要求の数分のOFF化要求と、ON化要求とに対して承諾し、更に1つだけOFF化要求に対して承諾する。アービタ200は、残りOFF化要求は保留させて、制約B発動状態に移行する。
制約B発動状態にて設定された許可期間にON化要求又はOFF化要求のイベントが発生した場合、アービタ200は、制約B発動状態から初期状態へと移行する。又は、LSI100内部の電源電位が収束したとみなされる一定時間の経過後、アービタ200は、制約B発動状態から初期状態へと移行する。
以下、ON化要求とOFF化要求とが同時に発生した場合、1つON化要求と1つのOFF化要求とをペアという。
図8は、本発明の第一実施例に係るアービタ200の基本動作を説明するためのフローチャート図である。図8において、アービタ200は、1つ又は複数のコアに対するON化要求又はOFF化要求を検出すと(ステップS11)、ペアとなったON化要求とOFF化要求とに対してのみ同時に承認した後、そのON化要求とOFF化要求とを解除する(ステップS12)。
アービタ200は、更にON化要求が存在するか否かを判断する(ステップS13)。ON化要求が存在する場合、アービタ200は、初期状態か否かを判断する(ステップS14)。初期状態でない場合、アービタ200は、ON化許可期間か否かを判断する(ステップS14−2)。ON化許可期間でない場合、ON化許可期間になるのを待つ。
一方、ステップS14−2にてON化許可期間であると判断した場合、アービタ200は、1つのコアに対してのみON化を承認した後、ON化要求を解除する(ステップS14−4)。複数のコアに対してON化要求がなされた場合、例えば、小さいコア番号を優先して承諾する。
そして、アービタ200は、制約A発動状態又は制約B発動状態を解除して初期状態に移行する(ステップS14−6)。その後、アービタ200は、ステップS13へと戻る。
一方、ステップS14において、初期状態であると判断した場合、アービタ200は、1つのコアに対してのみON化を承認した後、そのON化要求を解除する(ステップS15)。複数のコアに対してON化要求がなされた場合、例えば、小さいコア番号を優先して承諾する。
そして、アービタ200は、制約Aを発動して制約A発動状態に移行する(ステップS16)。その後、アービタ200は、ステップS13へと戻る。
ステップS13においてON化要求が存在しない場合、アービタ200は、OFF化要求が存在するか否かを判断する(ステップS21)。OFF化要求が存在しない場合、アービタ200は、現状を維持する(ステップS21−2)。
一方、OFF化要求が存在する場合、アービタ200は、初期状態か否かを判断する(ステップS22)。初期状態でない場合、アービタ200は、OFF化許可期間か否かを判断する(ステップS22−2)。OFF化許可期間でない場合、アービタ200は、OFF化許可期間になるまで待つ。
ステップS22−2にてOFF化許可期間であると判断した場合、アービタ200は、1つのコアに対してのみOFF化を承認した後、そのOFF化要求を解除する(ステップS22−4)。複数のコアに対してOFF化要求がなされた場合、例えば、小さいコア番号を優先して承諾する。
そして、アービタ200は、制約A発動状態又は制約B発動状態を解除して初期状態に移行する(ステップS22−6)。
ステップS22にて初期状態であると判断した場合、アービタ200は、1つのコアに対してのみOFF化を承諾した後、そのOFF化要求を解除する(ステップS23)。複数のコアに対してOFF化要求がなされた場合、例えば、小さいコア番号を優先して承諾する。
そして、制約Bを発動して制約B発動状態に移行する(ステップS24)。その後、アービタ200は、ステップS13へと戻る。
図8において、第一コントローラ110から新たなON化要求又はOFF化要求が送信されて検出した場合、割り込み動作となり、アービタ200は、先頭のステップS11から再び処理を開始する。
アービタ200の回路構成及び信号フローについて図9及び図10で説明する。図9及び図10中、#はコアの番号0から3の少なくとも1つを示し、場合によっては0から3の全て、又は、任意の組み合わせを示す。説明の便宜のため、これら場合を総称して#で示し、またラインも実際にはコアの数分必要であるが一本の二重線で代表して示している。
図9は、本発明の第一実施例に係るアービタ200の回路構成を示すブロック図である。図9において、アービタ200は、要求信号遷移検出部210と、ON化/OFF化要求ペア判定部220と、要求処理部230と、制約発動部240と、承認パルス発生部250とを有する。
要求信号遷移検出部210は、信号req#のOFFからON又はONからOFFへの変化を検出する回路であり、更に、ON化要求検出部212と、OFF化要求検出部214とを有する。
ON化/OFF化要求ペア判定部220は、ペアとなるON化要求とOFF化要求とがあるか否かを判定する回路であり、ペアの判定結果がなされるまで、ペア判定待ち信号が要求処理部230のON化要求処理部232とOFF化要求処理部234とに送出される。従って、要求処理部230は、ペア判定待ち信号がONの間動作を行わない。
要求処理部230は、ON化要求による動作状態の遷移を制御するON化要求処理部232と、OFF化要求による動作状態の遷移を制御するOFF化要求処理部234とを有する。
制約発動部240は、システムクロックsclkと共振周期Tresとを用いて、要求処理部230に対して種々の制御信号によってON化要求及びOFF化要求に対する処理の制御を行う。
承認パルス発生部250は、ON化/OFF化要求ペア判定部220からペア承認信号を受信すると、ペアに対応する信号req#に対して認証パルスackp#を送信する。また、承認パルス発生部250は、要求処理部230から要求承認信号を受信すると、要求承認信号に対応する信号req#に対して認証パルスackp#を第一コントローラ110へと送信する。
先ず、信号req#は、要求信号遷移検出部210によって受信され、ON化要求検出部212と、OFF化要求検出部214とに同時に供給される。
ON化要求検出部212は、第二コントローラ110から送信される信号req#のOFFからONへの変化を検出し、OFF化要求があった信号req#をON化要求検出信号として、ON化/OFF化要求ペア判定部220へ送信する。ON化要求検出信号は、また、要求処理部230のON化要求処理部232へと送信される。しかし、要求処理部230のON化要求処理部232は、ON化/OFF化要求ペア判定部220からペア判定待ち信号を受信しつづけている間は、ON化要求検出信号に対して何ら処理を行わない。
OFF化要求検出部214は、第二コントローラ110から送信される信号req#のONからOFFへの変化を検出し、ON化要求があった信号req#をOFF化要求検出信号として、OFF化/ON化要求ペア判定部220へ送信する。OFF化要求検出信号は、また、要求処理部230のOFF化要求処理部234へと送信される。しかし、要求処理部230のOFF化要求処理部234は、ON化/OFF化要求ペア判定部220からペア判定待ち信号を受信しつづけている間は、OFF化要求検出信号に対して何ら処理を行わない。
ON化/OFF化要求ペア判定部220は、ON化要求検出部212から受信したON化要求検出信号と、OFF化要求検出信号214から受信したOFF化要求検出信号とからペアが存在するか否かを判定し、承認パルス発生部250に対してペアとなる信号req#に対してのみペア承認信号を送信する。図5に示す構成の場合、ペアとなるのは1組又は2組である。同時に、1組のペアの信号req#に対応するコアの1つはON状態となり、他方のコアはOFF状態となることで、電源電位がキャンセルされる(後述される図16)。アービタ200の状態遷移は、現状維持となる(図7)。
また、ON化/OFF化要求ペア判定部220は、承認パルス発生部250に対してペアとなる信号req#に対してのみペア承認信号を送信した後、ペア判定待ち信号を解除する。
ON化/OFF化要求ペア判定部220から送信されたペア承認信号によって、承認パルス発生部250は、第一コントローラ110へペアとなった信号req#に対して認証パルスackp#を送信すると、要求信号遷移検出部210へペアとなったON化要求検出信号とOFF化要求検出信号とに対して要求検出解除信号を送信する。
要求信号遷移検出部210にて要求検出解除信号が受信されると、ON化要求検出部212は、要求検出解除信号に対応するON化要求検出信号のみを解除して残りのON化要求検出信号を送信する。
同様に、OFF化要求検出部214は、要求検出解除信号に対応するOFF化要求検出信号のみを解除して残りのOFF化要求検出信号を送信する。
ペア判定待ち信号が解除されているため、アービタ200の状態遷移に応じた要求処理が行われる。この場合、すでにペア判定が行われているので、1つON化要求又は1つのOFF化要求に対して要求処理が行われることとなる。すなわち、ON化要求処理部232又はOFF化要求処理部234のいずれか一方が要求処理を実行する。以下、アービタ200の状態遷移毎に説明する。
<初期状態>
要求処理部230のON化要求処理部232は、制約発動部240から送出される制約発動期間信号gateのレベルによって、現在が初期状態なのか制約発動状態なのかを判断し、初期状態(例えば、制約発動期間信号gateがハイレベル)であれば、ON化要求のあるコアの内最も若いコア番号に対応する信号req#に対してのみ要求承認信号を送出する。そして、ON化要求処理部232は、制約発動部240へ制約A発動パルスa_pulseを送信し、制約Aが発動する。アービタ200は、制約A発動状態となる。
同様に、要求処理部230のOFF化要求処理部232は、制約発動部240から送出される制約発動期間信号gateのレベルによって、現在が初期状態なのか制約発動状態なのかを判断し、初期状態(例えば、制約発動期間信号gateがハイレベル)であれば、OFF化要求のあるコアの内最も若いコア番号に対応する信号req#に対してのみ要求承認信号を送出する。そして、OFF化要求処理部234は、制約発動部240へ制約B発動パルスb_pulseを送信し、制約Bが発動する。アービタ200は、制約B発動状態となる。
承認パルス発生部250は、要求処理部230から受信した要求承認信号に対応する信号req#に対して、承認パルスackp#を第一コントローラ100へ送信する。また、承認パルス発生部250は、要求承認信号に対応するON化要求検出信号又はOFF化要求検出信号に対して、要求検出解除信号を送出して要求信号遷移検出部210のON化要求検出信号又はOFF化要求検出信号を解除する。
<制約発動状態>
要求処理部230のON化要求処理部232は、制約発動部240から送出される制約発動期間信号gateがローレベルの場合、更に、制約発動部240から送出されるON化許可期間信号on_eのレベルによって、現在がON化許可期間なのかON化禁止期間なのかを判断し、ON化禁止期間(例えば、ON化許可期間信号on_eがローレベル)の場合、要求処理を保留し、ON化許可期間(例えば、ON化許可期間信号on_eがハイレベル)になるのを待つ。
ON化許可期間信号on_eがハイレベルになれば、要求処理部230のON化要求処理部232は、ON化要求のあるコア_0 10からコア_3 13の内最も若いコア番号に対応する信号req#に対してのみ要求承認信号を送出する。
承認パルス発生部250は、要求処理部230から受信した要求承認信号に対応する信号req#に対して、承認パルスackp#を第一コントローラ100へ送信する。また、承認パルス発生部250は、要求承認信号に対応するON化要求検出信号に対して、要求検出解除信号を送出して要求信号遷移検出部210のON化要求検出信号を解除する。
更に、この場合、要求処理部230は、制約発動部240へ制約解除パルスr_pulseを送出し、制約発動状態が解除される。そして、アービタ200は初期状態へ戻る。
同様に、要求処理部230のOFF化要求処理部234は、制約発動部240から送出される制約発動期間信号gateがローレベルの場合、更に、制約発動部240から送出されるOFF化許可期間信号off_eのレベルによって、現在がOFF化許可期間なのかOFF化禁止期間なのかを判断し、OFF化禁止期間(例えば、OFF化許可期間信号off_eがローレベル)の場合、要求処理を保留し、OFF化許可期間(例えば、OFF化許可期間信号off_eがハイレベル)になるのを待つ。
OFF化許可期間信号off_eがハイレベルになれば、要求処理部230のOFF化要求処理部234は、OFF化要求のあるコアの内最も若いコア番号に対応する信号req#に対してのみ要求承認信号を送出する。
承認パルス発生部250は、要求処理部230から受信した要求承認信号に対応する信号req#に対して、承認パルスackp#を第一コントローラ100へ送信する。また、承認パルス発生部250は、要求承認信号に対応するOFF化要求検出信号に対して、要求検出解除信号を送出して要求信号遷移検出部210のOFF化要求検出信号を解除する。
更に、この場合、要求処理部230は、制約発動部240へ制約解除パルスr_pulseを送出し、制約発動状態が解除される。そして、アービタ200は初期状態へ戻る。
図10は、本発明の第一実施例に係る制約発動部240の回路構成を示す図である。図10において、制約発動部240は、制約期間発生カウンタ242と、第一許可期間発生カウンタ244と、第二許可期間発生カウンタ246と、共振周波数格納レジスタ249とを有する。
ON化要求処理部232から送信される制約A発動信号と、OFF化要求処理部234から送信される制約B発動信号と、要求処理部230から送信される制約解除信号とは、制約期間発生カウンタ242と、第一許可期間発生カウンタ244と、第二許可期間発生カウンタ246とに供給される。
また、システムクロックsclkも制約期間発生カウンタ242と、第一許可期間発生カウンタ244と、第二許可期間発生カウンタ246とに供給される。
共振周期Tresは、共振周期格納レジスタ249から制約期間発生カウンタ242と、第一許可期間発生カウンタ244と、第二許可期間発生カウンタ246とに供給される。
共振周期格納レジスタ249は、共振周期Tresを外部から設定可能なレジスタである。共振周期Tresは、システムクロックsclkのサイクル数で示される。外部から設定可能な共振周期格納レジスタ249によって、アービタ200は、電源の共振周期に係る情報をプログラマブルに設定できる。
制約期間発生カウンタ242は、制約A発動信号a_pulseを検知すると、共振周期Tresに基づいて決定される制約A発動期間の間、制約発動期間信号gateをローレベルに保つ。制約A発動期間とは、
共振周期Tres × 制約A発動期間の所定周期数
によって定められシステムクロックsclkを用いてカウントされる。
また、制約期間発生カウンタ242は、制約B発動信号b_pulseを検知すると、共振周期Tresに基づいて決定される制約B発動期間の間、制約発動期間信号gateをローレベルに保つ。制約B発動期間とは、
共振周期Tres × 制約B発動期間の所定周期数
によって定められシステムクロックsclkを用いてカウントされる。
更に、制約期間発生カウンタ242は、制約解除信号r_pulseを検知すると、カウントを解除する。すなわち、制約発動期間信号gateをハイレベルにして制約を解除する。
第一許可期間発生カウンタ244は、制約A発動信号a_pulseを検知すると、共振周期Tresに基づいて決定されるON化許可期間の間、ON化許可期間信号on_eをハイレベルに保つ。
制約A発動期間のON化許可期間は、制約A発動期間中のON化要求による電源電位の変動を互いにキャンセルし合うように決定される。そのため、制約A発動信号a_pulseの検知後、ON化許可期間の開始までシステムクロックsclkを用いて所定回数をカウントした後、ON化許可期間信号on_eをハイレベルにし、ON化許可期間の所定回数をカウントした後、ON化許可期間信号on_eをローレベルにする。そして、次のON化許可期間の開始までシステムクロックsclkを用いて所定回数をカウントした後、ON化許可期間信号on_eをハイレベルにする。このようなカウントを制約A発動によって行う。制約A発動期間のON化許可期間の決定方法は図11(A)及び図11(B)で詳述される。
また、第一許可期間発生カウンタ244は、制約B発動信号b_pulseを検知すると、共振周期Tresに基づいて決定されるON化許可期間の間、ON化許可期間信号on_eをハイレベルに保つ。
制約B発動期間のON化許可期間は、制約B発動期間中のON化要求による電源電位の変動を互いにキャンセルし合うように決定される。そのため、制約B発動信号b_pulseの検知後、ON化許可期間信号on_eをハイレベルにして、最初のON化許可期間をシステムクロックsclkを用いて所定回数をカウントした後、ON化許可期間信号on_eをローレベルにする。そして、次のON化許可期間の開始までシステムクロックsclkを用いて所定回数をカウントした後、ON化許可期間信号on_eをハイレベルにする。このようなカウントを制約B発動によって行う。制約B発動期間のON化許可期間の決定方法は図14(A)及び図14(B)で詳述される。
第二許可期間発生カウンタ246は、制約A発動信号a_pulseを検知すると、共振周期Tresに基づいて決定されるOFF化許可期間の間、OFF化許可期間信号off_eをハイレベルに保つ。
制約A発動期間のOFF化許可期間は、制約A発動期間中のOFF化要求による電源電位の変動を互いにキャンセルし合うように決定される。そのため、制約A発動信号a_pulseの検知後、OFF化許可期間信号off_eをハイレベルにして、最初のOFF化許可期間をシステムクロックsclkを用いて所定回数をカウントした後、OFF化許可期間信号off_eをローレベルにする。そして、次のOFF化許可期間の開始までシステムクロックsclkを用いて所定回数をカウントした後、OFF化許可期間信号off_eをハイレベルにする。このようなカウントを制約B発動によって行う。制約B発動期間のON化許可期間の決定方法は図11(A)及び図11(B)で詳述される。
また、第二許可期間発生カウンタ246は、制約B発動信号b_pulseを検知すると、共振周期Tresに基づいて決定されるOFF化許可期間の間、OFF化許可期間信号off_eをハイレベルに保つ。
制約B発動期間のOFF化許可期間は、制約B発動期間中のOFF化要求による電源電位の変動を互いにキャンセルし合うように決定される。そのため、制約B発動信号b_pulseの検知後、OFF化許可期間の開始までシステムクロックsclkを用いて所定回数をカウントした後、OFF化許可期間信号off_eをハイレベルにし、OFF化許可期間の所定回数をカウントした後、OFF化許可期間信号off_eをローレベルにする。そして、次のOFF化許可期間の開始までシステムクロックsclkを用いて所定回数をカウントした後、OFF化許可期間信号off_eをハイレベルにする。このようなカウントを制約B発動によって行う。制約B発動期間のOFF化許可期間の決定方法は図14(A)及び図14(B)で詳述される。
次に、制約A発動期間において、第一許可期間発生カウンタ244によるON化許可期間の制御と、第二許可期間発生カウンタ246によるOFF化許可期間の制御とについて、図11(A)及び図11(B)で説明する。
図11(A)は、制約Aが発動される状態例を示す図である。図11(A)において、動作イネーブル信号en0がON状態、かつ、動作イネーブル信号en1、en2、及びen3がOFF状態の場合に、動作イネーブル信号en1がON状態に移行すると、制約Aが発動する。
図11(B)は、図11(A)に示される状態による制約A発動期間でのON化要求及びOFF化要求に対する制御の例を示す図である。図11(B)において、例えば、共振周期格納レジスタ249(図10)に、Tres値としてシステムサイクル数「16」が設定されていた場合、制約A発動期間は、電源電位が収束する19/8周期として設定される。
図11(B)において、先ず、制約A発動期間でのON化要求に対する制御について説明する。
最初のON化許可期間は、1/2周期後に出現し、その後のON化許可期間は1周期毎に出現するように設定される。
ON化許可期間には、その出現タイミングの前後にマージンが設定されある程度の間隔を持たせてある。マージンは、例えば、±1/8周期又は±1/16周期等としてもよい。この例では、マージンを±1/8周期として説明する。
図11(A)の状態例では、ON化要求は、動作イネーブル信号en2又はen3に対して行われる可能性がある。例えば、要求処理部230のON化要求処理部232が動作イネーブル信号en2に対するON化要求を示すON化要求検出信号を受信している場合で、かつ、ペア判定待ち信号が解除されている場合に、ON化許可期間信号on_eのハイレベルを検知すると、ON化要求処理部232は、そのON化要求を承認する。
要求処理部230は、要求承認信号を送出し、en1のON状態への移行とen2のON状態への移行とによる電源電位の変動は互いにキャンセルされるため、制約解除信号r_pulseが制約発動部240へ送信される。制約A発動期間は解除され、アービタ200は、初期状態となる。
ON化要求処理部232は、ON化禁止期間で動作イネーブル信号en2に対するON化要求を示すON化要求検出信号を受信した場合、次のON化許可期間まで保留し、次のON化許可期間の開始時に要求承認信号を送出する。そして、制約A発動期間は解除され、アービタ200は、初期状態となる。
図11(B)において、次に、制約A発動期間でのOFF化要求に対する制御について説明する。
最初のOFF化許可期間は、制約A発動と同時に出現し、その後のOFF化許可期間は1周期毎に出現するように設定される。
OFF化許可期間には、その出現タイミングの前後にマージンが設定されある程度の間隔を持たせてある。マージンは、例えば、±1/8周期又は±1/16周期等としてもよい。この例では、マージンを±1/8周期として説明する。
図11(A)の状態例では、OFF化要求は、動作イネーブル信号en0又はen1に対して行われる可能性がある。例えば、要求処理部230のOFF化要求処理部234が動作イネーブル信号en0に対するOFF化要求を示すOFF化要求検出信号を受信している場合で、かつ、ペア判定待ち信号が解除されている場合に、OFF化許可期間信号off_eのハイレベルを検知すると、OFF化要求処理部234は、そのOFF化要求を承認する。
要求処理部230は、要求承認信号を送出し、en1のON状態への移行とen0のOFF状態への移行とによる電源電位の変動は互いにキャンセルされるため、制約解除信号r_pulseが制約発動部240へ送信される。制約A発動期間は解除され、アービタ200は、初期状態となる。
OFF化要求処理部234は、OFF化禁止期間で動作イネーブル信号en0に対するOFF化要求を示すOFF化要求検出信号を受信した場合、次のOFF化許可期間まで保留し、次のOFF化許可期間の開始時に要求承認信号を送出する。そして、制約A発動期間は解除され、アービタ200は、初期状態となる。
また、制約A発動期間でペアとなるON化要求とOFF化要求とが発生した場合、ON化許可期間及びOFF化許可期間でなくても、そのペアに対して同時に承認がなされ、図11(B)に示されるような制約A発動期間が保持される。
次に、制約A発動後のON化要求又はOFF化要求によるイベント発生の有無による制約A発動期間の違いについて図12と図13とで説明する。イベント発生とは、制約A発動後のON化要求又はOFF化要求によって、所定の制約A発動期間を待つことなく制約解除となる状態を示す。
図12は、イベント発生が無く制約A発動期間が終了する場合を示す図である。図12において、制約A発動期間の直前から制約A発動期間終了後の初期状態へ移行した後までのシステムクロックsclkが示される(図12(a))。制約A発動信号a_pulseは、制約Aの開始を示すONの1クロック後にOFFとなる(図12(b))。制約B発動信号b_pulseは、OFFである(図12(c))。制約解除信号r_pulseは、OFFである(図12(d))。
制約発動期間信号gateは、制約A発動信号a_pulseのON直後にローレベルとなり、制約A発動期間の間はローレベルを維持し、イベント発生(制約解除)がない場合、制約A発動期間の終了でハイレベルとなる(図12(e))。
ON化許可期間信号on_eは、制約A発動信号a_pulseのONに応じて、制約A発動期間に対するON化禁止期間とON化許可期間とに対応してローレベルとハイレベルとを繰り返す(図12(f))。
OFF化許可期間信号off_eも同様に、制約A発動信号a_pulseのONに応じて、制約A発動期間に対するOFF化許可期間とOFF化禁止期間とに対応してローレベルとハイレベルとを繰り返す(図12(g))。
共振周期Tresをシステムクロックsclkの16サイクルとして、時間(図12(j))が共振周期Tresで示されると、上述したような信号状態によって、ON化要求に対しては、最初の3/8周期はON化禁止期間、3/8周期から5/8周期まではON化許可期間、5/8周期から11/8周期まではON化禁止期間、・・・19/8周期以降は初期状態となる(図12(h))。最初のON化禁止期間を除いて、ON化許可期間とON化禁止期間との組で1周期分である。このような制御が第一許可期間発生カウンタ244(図10)によって行われる。
OFF化要求に対しては、最初の1/8周期はOFF化許可期間、1/8周期から7/8周期まではOFF化禁止期間、7/8周期から9/8周期まではOFF化許可期間、・・・19/8周期以降は初期状態となる(図12(i))。最初のOFF化許可期間及び最後のOFF化禁止期間を除いて、OFF化許可期間とOFF化禁止期間との組で1周期分である。このような制御が第二許可期間発生カウンタ246(図10)によって行われる。
図13は、制約A発動期間内で発生したイベント発生によって初期状態となる場合を示す図である。図13において、制約A発動期間の直前から制約A発動期間終了後の初期状態へ移行した後までのシステムクロックsclkが示される(図13(a))。制約A発動信号a_pulseは、制約Aの開始を示すONの1クロック後にOFFとなる(図13(b))。制約B発動信号b_pulseは、OFFである(図13(c))。制約解除信号r_pulseは、制約A発動後、例えば、ON化許可期間でのON化要求の承諾によって制約解除を示すONの1クロック後にOFFとなる(図13(d))。
制約発動期間信号gateは、制約A発動信号a_pulseのON直後にローレベルとなり、制約解除信号r_pulseのONに応じてハイレベルとなる(図13(e))。ON化許可期間信号on_eは、制約A発動信号a_pulseのONに応じて、制約A発動期間に対するON化禁止期間とON化許可期間とに対応してローレベルとハイレベルとを繰り返す(図13(f))。OFF化許可期間信号off_eは、制約A発動信号a_pulseのONに応じて、制約A発動期間に対するOFF化許可期間とOFF化禁止期間とに対応してローレベルとハイレベルとを繰り返す(図13(g))。
図12同様に、共振周期Tresをシステムクロックsclkの16サイクルとして、時間(図13(j))が共振周期Tresで示される。上述したような信号状態によって、ON化要求に対しては、制約Aが、最初の3/8周期のON化禁止期間後のON化許可期間中に解除されて初期状態となる(図13(h))。
また、OFF化要求に対しては、最初の1/8周期のOFF化許可期間後のOFF化禁止期間中に解除されて初期状態となる(図13(i))。
次に、制約B発動期間において、第一許可期間発生カウンタ244によるON化許可期間の制御と、第二許可期間発生カウンタ246によるOFF化許可期間の制御とについて、図14(A)及び図14(B)で説明する。
図14(A)は、制約Bが発動される状態例を示す図である。図14(A)において、動作イネーブル信号en0、en1、及びen2がON状態、かつ、動作イネーブル信号en3がOFF状態の場合に、動作イネーブル信号en1がOFF状態に移行すると、制約Bが発動する。
図14(B)は、図14(A)に示される状態による制約B発動期間でのON化要求及びOFF化要求に対する制御の例を示す図である。図14(B)において、例えば、共振周期格納レジスタ249(図10)にシステムサイクル数「16」が設定されていた場合、制約B発動期間は、電源電位が収束する15/8周期として設定される。
図14(B)において、先ず、制約B発動期間でのON化要求に対する制御について説明する。
最初のON化許可期間は、制約B発動と同時に出現し、その後のON化許可期間は1周期毎に出現するように設定される。
ON化許可期間には、その出現タイミングの前後にマージンが設定されある程度の間隔を持たせてある。マージンは、例えば、±1/8周期又は±1/16周期等としてもよい。この例では、マージンを±1/8周期として説明する。
図14(A)の状態例では、ON化要求は、動作イネーブル信号en1又はen3に対して行われる可能性がある。例えば、要求処理部230のON化要求処理部232が動作イネーブル信号en3に対するON化要求を示すON化要求検出信号を受信している場合で、かつ、ペア判定待ち信号が解除されている場合に、ON化許可期間信号on_eのハイレベルを検知すると、ON化要求処理部232は、そのON化要求を承認する。
要求処理部230は、要求承認信号を送出し、en1のOFF状態への移行とen3のON状態への移行とによる電源電位の変動は互いにキャンセルされるため、制約解除信号r_pulseが制約発動部240へ送信される。制約B発動期間は解除され、アービタ200は、初期状態となる。
ON化要求処理部232は、ON化禁止期間で動作イネーブル信号en3に対するON化要求を示すON化要求検出信号を受信した場合、次のON化許可期間まで保留し、次のON化許可期間の開始時に要求承認信号を送出する。そして、制約B発動期間は解除され、アービタ200は、初期状態となる。
図14(B)において、次に、制約B発動期間でのOFF化要求に対する制御について説明する。
最初のOFF化許可期間は、1/2周期後に出現し、その後のOFF化許可期間は1周期毎に出現するように設定される。
OFF化許可期間には、その出現タイミングの前後にマージンが設定されある程度の間隔を持たせてある。マージンは、例えば、±1/8周期又は±1/16周期等としてもよい。この例では、マージンを±1/8周期として説明する。
図14(A)の状態例では、OFF化要求は、動作イネーブル信号en0又はen2に対して行われる可能性がある。例えば、要求処理部230のOFF化要求処理部234が動作イネーブル信号en2に対するOFF化要求を示すOFF化要求検出信号を受信している場合で、かつ、ペア判定待ち信号が解除されている場合に、OFF化許可期間信号off_eのハイレベルを検知すると、OFF化要求処理部234は、そのOFF化要求を承認する。
要求処理部230は、要求承認信号を送出し、en1のOFF状態への移行とen2のOFF状態への移行とによる電源電位の変動は互いにキャンセルされるため、制約解除信号r_pulseが制約発動部240へ送信される。制約B発動期間は解除され、アービタ200は、初期状態となる。
OFF化要求処理部234は、OFF化禁止期間で動作イネーブル信号en2に対するOFF化要求を示すOFF化要求検出信号を受信した場合、次のOFF化許可期間まで保留し、次のOFF化許可期間の開始時に要求承認信号を送出する。そして、制約B発動期間は解除され、アービタ200は、初期状態となる。
また、制約B発動期間でペアとなるON化要求とOFF化要求とが発生した場合、ON化許可期間及びOFF化許可期間でなくても、そのペアに対して同時に承認がなされ、図14(B)に示されるような制約B発動期間が保持される。
図15は、イベント発生が無く制約B発動期間が終了する場合を示す図である。図15において、制約B発動期間の直前から制約B発動期間終了後の初期状態へ移行した後までのシステムクロックsclkが示される(図15(a))。制約A発動信号a_pulseは、OFFである(図15(b))。制約B発動信号b_pulseは、制約Bの開始を示すONの1クロック後にOFFとなる(図15(c))。制約解除信号r_pulseは、OFFである(図15(d))。
制約発動期間信号gateは、制約B発動信号b_pulseのON直後にローレベルとなり、制約B発動期間の間はローレベルを維持し、イベント発生(制約解除)がない場合、制約B発動期間の終了でハイレベルとなる(図15(e))。
ON化許可期間信号on_eは、制約B発動信号b_pulseのONに応じて、制約B発動期間に対するON化禁止期間とON化許可期間とに対応してローレベルとハイレベルとを繰り返す(図15(f))。
OFF化許可期間信号off_eも同様に、制約A発動信号a_pulseのONに応じて、制約B発動期間に対するOFF化許可期間とOFF化禁止期間とに対応してローレベルとハイレベルとを繰り返す(図15(g))。
共振周期Tresをシステムクロックsclkの16サイクルとして、時間(図15(j))が共振周期Tresで示されると、上述したような信号状態によって、ON化要求に対しては、最初の1/8周期はON化許可期間、そして1/8周期から7/8周期まではON化禁止期間、7/8周期から9/8周期まではON化許可期間、・・・15/8周期以降は初期状態となる(図15(i))。最初のON化許可期間を除いて、ON化許可期間とOFF化許可期間との組で1周期分である。このような制御が第一許可期間発生カウンタ244(図10)によって行われる。
OFF化要求に対しては、最初の3/8周期はOFF化禁止期間、3/8周期から5/8周期まではOFF化許可期間、5/8周期から11/8周期まではOFF化禁止期間、・・・15/8周期以降は初期状態となる(図15(h))。最初と最後のOFF化許可期間を除いて、OFF化許可期間とOFF化禁止期間との組で1周期分である。このような制御が第二許可期間発生カウンタ246(図10)によって行われる。
制約B発動期間内で発生したイベント発生によって初期状態となる場合は、制約A発動期間内で発生する場合における制御と同様であるので、その説明を省略する。
以下、アービタ200の制御による電源電位波形について図16から図20で説明する。
図16は、ペアとなるON化要求とOFF化要求の同時動作による電源電位波形について説明するための図である。図16では、アービタ200が動作イネーブル信号en0へのON化要求と動作イネーブル信号en1へのOFF化要求とがペアであると判定したときの電源電位波形について説明する。
図16において、システムクロックsclkに同期して(図16(a))、動作イネーブル信号en0がOFF状態からON状態になり、それと同時に動作イネーブル信号en1がON状態からOFF状態に移行する(図16(b))。
動作イネーブル信号en0のON化による内部電位変動16aと動作イネーブル信号en1のOFF化による内部電位変動16bとによって互いにキャンセルしつつ、夫々の内部電位変動16a及び16bは収束する(図16(c))。
結果、動作イネーブル信号en0のON化による内部電位変動16aと動作イネーブル信号en1のOFF化による内部電位変動16bとによる合成内部電位変動16cは、一定の電位を保った状態となる(図16(d))。
このペア判定によるアービタ200の状態遷移は、初期状態でペアのON化及びOFF化を同時に承諾するため、初期状態を維持することとなる(図16(e))。
このように、2つの動作イネーブルen0とen1とに状態遷移があったものの、LSI100に与える内部電位変動は殆どない。
図17は、回路停止状態から2コア動作状態への移行による電源電位波形について説明するための図である。図17では、同時に動作イネーブル信号en0とen1とに対してON化要求がなされた場合、又は、動作イネーブル信号en0のON化による制約A発動期間内に動作イネーブル信号en1に対してON化要求がなされた場合に、アービタ200が、ON化許可期間で動作イネーブル信号en1のON化を承諾したときの電源電位波形について説明する。
図17において、システムクロックsclkに同期して(図17(a))、回路停止状態の2コアが動作状態へと移行すると、動作イネーブル信号en0をON化して制約A発動状態となった後、約1/2の共振周期Tres後のON化許可期間で動作イネーブル信号en1をON化する(図17(b))。アービタ200では、動作イネーブル信号en1のON化により制約解除となる。
動作イネーブル信号en0のON化による内部電位変動17aの発生から約1/2の共振周期Tres後、動作イネーブル信号en1のON化による内部電位変動17bが発生する。その後、内部電位変動17aと内部電位変動17bとは、互いにキャンセルしつつ、夫々の内部電位変動17a及び17bは収束する(図17(c))。
結果、動作イネーブル信号en0のON化による内部電位変動17aと動作イネーブル信号en1のON化による内部電位変動17bとによって、合成内部電位変動17cが形成される(図17(d))。その合成内部電位変動17cでは、動作イネーブル信号en0のON化直後から1/2の共振周期Tresの間に動作イネーブル信号en0のON化による内部電位変動17a'(内部電位変動17aの一部)を示すものの、以後急速に変動は収まり一定の電位を保った状態となる。
動作イネーブルen0のON化と動作イネーブルen1のON化とによって内部電位変動17a及び17bとがキャンセルされる期間は、動作イネーブルen0のON化から1/2の共振周期Tres後の動作イネーブルen1のON化以降である。
この時のアービタ200の状態遷移は、初期状態から動作イネーブル信号en0のON化により制約A発動状態となり、1/2の共振周期Tres後には動作イネーブル信号en1のON化により初期状態へと戻る(図17(e))。
このように、2つの動作イネーブルen0とen1とに状態遷移があったものの、LSI100に与える合成内部電位変動17cは、動作イネーブルen0のON化による内部電位変動17a'(内部電位変動17aの一部)のみであり、かつ、1/2の共振周期Tresの間のみである。
図18は、回路停止状態から4コア動作状態への移行による電源電位波形について説明するための図である。図18では、同時に動作イネーブル信号en0からen3に対してON化要求がなされた場合、又は、動作イネーブル信号en0のON化による制約A発動期間内に動作イネーブル信号en1から3に対してON化要求がなされた場合に、アービタ200が、例えば、動作イネーブル信号en0、en1、en2、en3の順にON化を承諾したときの電源電位波形について説明する。
図18において、システムクロックsclkに同期して(図18(a))、回路停止状態の4コアが動作状態へと移行すると、動作イネーブル信号en0をON化して制約A発動状態となった後、約1/2の共振周期Tres後のON化許可期間で動作イネーブル信号en1をON化する。アービタ200は、動作イネーブル信号en1のON化により制約解除となって初期状態となった後、動作イネーブル信号en2をON化して制約Aを発動し、約1/2の共振周期Tres後のON化許可期間で動作イネーブル信号en3をON化する(図18(b))。アービタ200では、動作イネーブル信号en3のON化により再び制約解除となる。
図17に示すように、動作イネーブル信号en0と動作イネーブル信号en1のON化によって内部電位変動17aと内部電位変動17bとによる干渉が内部的に発生する。更に、図18に示すように、動作イネーブル信号en2のON化による内部電位変動18aの発生から約1/2の共振周期Tres後、動作イネーブル信号en3のON化による内部電位変動18bが発生する。その後、内部電位変動18aと内部電位変動18bとは、互いにキャンセルしつつ、夫々の内部電位変動18a及び18bは収束する(図18(c))。
結果、動作イネーブル信号en0のON化による内部電位変動17aと、動作イネーブル信号en1のON化による内部電位変動17bと、動作イネーブル信号en2のON化による内部電位変動18aと、動作イネーブル信号en3のON化による内部電位変動18bとによって、合成内部電位変動18cが形成される(図18(d))。
その合成内部電位変動18cでは、動作イネーブル信号en0のON化直後から1/2の共振周期Tresの間に動作イネーブル信号en0のON化による内部電位変動17a'(内部電位変動17aの一部)を示し、その後、動作イネーブル信号en2のON化直後から1/2の共振周期Tresの間に動作イネーブル信号en2のON化による内部電位変動18a'(内部電位変動18aの一部)を示す。
しかしながら、合成内部電位変動18cは以後急速に収まり一定の電位を保った状態となる。また、合成内部電位変動18cは、2度大きく変動するが、2つの内部電位変動17a'と内部電位変動18a'とが重なることはない。
動作イネーブルen0のON化と動作イネーブルen1のON化とによって内部電位変動17a及び17bとがほぼキャンセルされる期間は、動作イネーブルen0のON化から1/2の共振周期Tres後の動作イネーブルen1のON化以降である。
また、動作イネーブルen2のON化と動作イネーブルen3のON化とによって内部電位変動18a及び18bとがほぼキャンセルされる期間は、動作イネーブルen2のON化から1/2の共振周期Tres後の動作イネーブルen3のON化以降である。
この時のアービタ200の状態遷移は、初期状態から動作イネーブル信号en0のON化により制約A発動状態となり、1/2の共振周期Tres後には動作イネーブル信号en1のON化により初期状態へと戻り、再び、動作イネーブル信号en2のON化により制約A発動状態となり、1/2の共振周期Tres後には動作イネーブル信号en3のON化により初期状態へと戻る(図18(e))。
このように、4つの動作イネーブルen0からen3に状態遷移があったものの、LSI100に与える合成内部電位変動18cは、動作イネーブルen0のON化による内部電位変動17a'(内部電位変動17aの一部)と動作イネーブルen2のON化による内部電位変動18a'(内部電位変動18aの一部)のみであり、かつ、夫々1/2の共振周期Tresの間のみに発生する。
図19は、回路動作状態から2コア停止状態への移行による電源電位波形について説明するための図である。図19では、同時に動作イネーブル信号en0とen1とに対してOFF化要求がなされた場合、又は、動作イネーブル信号en0のOFF化による制約B発動期間内に動作イネーブル信号en1に対してOFF化要求がなされた場合に、アービタ200が、OFF化許可期間で動作イネーブル信号en1のOFF化を承諾したときの電源電位波形について説明する。
図19において、システムクロックsclkに同期して(図19(a))、回路停止状態の2コアが動作状態へと移行すると、動作イネーブル信号en0をOFF化して制約B発動状態となった後、約1/2の共振周期Tres後のOFF化許可期間で動作イネーブル信号en1をOFF化する(図19(b))。アービタ200では、動作イネーブル信号en1のOFF化により制約解除となる。
動作イネーブル信号en0のOFF化による内部電位変動19aの発生から約1/2の共振周期Tres後、動作イネーブル信号en1のOFF化による内部電位変動19bが発生する。その後、内部電位変動19aと内部電位変動19bとは、互いにキャンセルしつつ、夫々の内部電位変動19a及び19bは収束する(図19(c))。
結果、動作イネーブル信号en0のOFF化による内部電位変動19aと動作イネーブル信号en1のOFF化による内部電位変動19bとによって、合成内部電位変動19cが形成される(図19(d))。その合成内部電位変動19cでは、動作イネーブル信号en0のOFF化直後から1/2の共振周期Tresの間に動作イネーブル信号en0のOFF化による内部電位変動19a'(内部電位変動19aの一部)を示すものの、以後急速に変動は収まり一定の電位を保った状態となる。
動作イネーブルen0のOFF化と動作イネーブルen1のOFF化とによって内部電位変動19a及び19bとがキャンセルされる期間は、動作イネーブルen0のOFF化から1/2の共振周期Tres後の動作イネーブルen1のOFF化以降である。
この時のアービタ200の状態遷移は、初期状態から動作イネーブル信号en0のOFF化により制約B発動状態となり、1/2の共振周期Tres後には動作イネーブル信号en1のOFF化により初期状態へと戻る(図19(e))。
このように、2つの動作イネーブルen0とen1とに状態遷移があったものの、LSI100に与える合成内部電位変動19cは、動作イネーブルen0のOFF化による内部電位変動19a'(内部電位変動19aの一部)のみであり、かつ、1/2の共振周期Tresの間のみである。
図20は、回路停止状態から4コア動作状態への移行による電源電位波形について説明するための図である。図20では、同時に動作イネーブル信号en0からen3に対してOFF化要求がなされた場合、又は、動作イネーブル信号en0のOFF化による制約B発動期間内に動作イネーブル信号en1から3に対してOFF化要求がなされた場合に、アービタ200が、例えば、動作イネーブル信号en0、en1、en2、en3の順にOFF化を承諾したときの電源電位波形について説明する。
図20において、システムクロックsclkに同期して(図20(a))、回路停止状態の4コアが動作状態へと移行すると、動作イネーブル信号en0をOFF化して制約B発動状態となった後、約1/2の共振周期Tres後のOFF化許可期間で動作イネーブル信号en1をOFF化する。アービタ200は、動作イネーブル信号en1のOFF化により制約解除となって初期状態となった後、動作イネーブル信号en2をOFF化して制約Bを発動し、約1/2の共振周期Tres後のOFF化許可期間で動作イネーブル信号en3をOFF化する(図20(b))。アービタ200では、動作イネーブル信号en3のOFF化により再び制約解除となる。
図19に示すように、動作イネーブル信号en0と動作イネーブル信号en1のOFF化によって内部電位変動19aと内部電位変動19bとによる干渉が内部的に発生する。更に、図20に示すように、動作イネーブル信号en2のOFF化による内部電位変動20aの発生から約1/2の共振周期Tres後、動作イネーブル信号en3のOFF化による内部電位変動20bが発生する。その後、内部電位変動20aと内部電位変動20bとは、互いにキャンセルしつつ、夫々の内部電位変動20a及び20bは収束する(図20(c))。
結果、動作イネーブル信号en0のOFF化による内部電位変動19aと、動作イネーブル信号en1のOFF化による内部電位変動19bと、動作イネーブル信号en2のOFF化による内部電位変動20aと、動作イネーブル信号en3のOFF化による内部電位変動20bとによって、合成内部電位変動20cが形成される(図20(d))。
しかしながら、合成内部電位変動20cは以後急速に収まり一定の電位を保った状態となる。また、合成内部電位変動20cは、2度大きく変動するが、2つの内部電位変動19a'と内部電位変動20a'とが重なることはない。
動作イネーブルen0のOFF化と動作イネーブルen1のOFF化とによって内部電位変動19a及び19bとがキャンセルされる期間は、動作イネーブルen0のOFF化から1/2の共振周期Tres後の動作イネーブルen1のOFF化以降である。
また、動作イネーブルen2のOFF化と動作イネーブルen3のOFF化とによって内部電位変動20a及び20bとがキャンセルされる期間は、動作イネーブルen2のOFF化から1/2の共振周期Tres後の動作イネーブルen3のOFF化以降である。
この時のアービタ200の状態遷移は、初期状態から動作イネーブル信号en0のOFF化により制約B発動状態となり、1/2の共振周期Tres後には動作イネーブル信号en1のOFF化により初期状態へと戻り、再び、動作イネーブル信号en2のOFF化により制約B発動状態となり、1/2の共振周期Tres後には動作イネーブル信号en3のOFF化により初期状態へと戻る(図20(e))。
このように、4つの動作イネーブルen0からen3に状態遷移があったものの、LSI100に与える合成内部電位変動20cは、動作イネーブルen0のOFF化による内部電位変動19a'(内部電位変動19aの一部)と動作イネーブルen2のOFF化による内部電位変動20a'(内部電位変動20aの一部)のみであり、かつ、夫々1/2の共振周期Tresの間のみに発生する。
上述より、たとえON化及びOFF化が連続して発生したとしても、合成内部電位変動18c及び20cは、1つの動作イネーブルの状態遷移による電位変動量を超えることはない。
したがって、図5に示すような4つのコア_0 10からコア_3 13が配列されるLSI100の場合、従来のLSIと比較すると、電位変動量を凡そ4分の1に抑制することができる。また、このような電位変動量の抑制によって、LSIの性能を劣化させることはない。
また、本発明は、4つのコアが配列されるLSI100に限定されるものではなく、4以上のコアが配列されるLSIにも適応可能である。
以下に、共振周期Tresを外部から設定することなく実際の電位変動を検知してON化のタイミング及びOFF化のタイミングを制御する第二実施例について説明する。
図21は、本発明の第二実施例に係るLSIの回路構成を示す図である。図21において、LSI500は、複数の機能回路を備える内部回路501と、クロック発生回路502と、インダクタンス503と、インダクタンス504と、内部電源容量505と、ON/OFF切換制御回路510と、PMU(Power Management Unit)520と、電圧センサ530とを有する。
電源電圧VDD及び接地電圧VSSがインダクタンス503及び504を介して印加され、内部電源電位ivdd(V)及び内部接地電位ivss(V)が内部回路501に印加される。また、内部回路501が動作することによって電源電流I(A)が流れ、LSI500内部の電源電位が変動する。内部電源容量505は、その電位変動を抑制する。
内部回路501では、ON/OFF切換制御回路510からの動作の開始(ON)又は停止(OFF)を示す各機能回路への制御信号に従って、対応する機能回路の動作開始及び動作停止が個々に制御される。各機能回路は、クロック発生回路502から供給されるシステムクロックsclkに同期して動作する。クロック発生回路502へは外部クロックeclkが与えられる。
ON/OFF切換制御回路510は、電圧センサ530から供給される実際の電位変動を示す内部電位モニタデータを用いて共振周期を検知し、PMU520からの機能回路毎のON要求及びOFF要求に応じて、ON切換のタイミングとOFF切換のタイミングとを制御して、内部回路501に対して機能回路毎に制御信号を送出する。
ON/OFF切換制御回路510は、第一実施例のアービタ200と同様に、図8に示される基本動作を実行するが、内部電位モニタデータを用いて電位変動を検知して初期状態と制約発動状態への切り替えを自動的に行なうため、図8に示されるステップS16、S14−6、S24、S24−6は省略される。
PMU520は、内部回路501の動作状態を管理する装置であり、ON/OFF切換制御回路510に対して機能回路毎にON要求又はOFF要求を送出する。
電圧センサ530は、内部電源電位ivddを測定し、その結果をON/OFF切換制御回路510に供給する。電圧センサ530に内部電源電位ivddとセンサ用電源とが供給されることにより、電圧センサ530は、内部電源電位ivddの実際の電位変動を検知した結果を示した内部電位モニタデータをON/OFF切換制御回路510に供給する。
図22は、本発明の第二実施例に係るLSI内部における電源ノイズを抑制するための回路構成を示す図である。図22中、LSI内部における電源ノイズを抑制するための回路構成のみが例示される。
図22において、電源ノイズの抑制に係る回路構成として、LSI500は、機能ブロック_0 50と、機能ブロック_1 51と、機能ブロック_2 52と、機能ブロック_3 53と、パルスドラッチ50p、51p、52p、及び53pと、ON/OFF切換制御回路510と、PMU520とを有する。図22では、内部回路501に4つのプロセッサが、機能ブロック_0 50と、機能ブロック_1 51と、機能ブロック_2 52と、機能ブロック_3 53として配列される例を示しているが、本発明は、この回路構成に限定されるものではなく、1からn個(nは4以上)のプロセッサによるマルチコアプロセッサについても以下に説明する同様の構成を備えることによって適応可能である。
第一実施例のコア_0 10と同様に、機能ブロック_0 50は、システムクロックsclkと動作イネーブル信号en_f0とを入力して機能ブロック_0回路内のシステムクロックsclk_f0を出力するクロックゲート50gを有する。また、機能ブロック_1 51、機能ブロック_2 52及び機能ブロック_3 53のそれぞれに関して、対応する動作イネーブル信号en_f1、en_f2及びen_f3と、対応するシステムクロックsclk_f1、システムクロックsclk_f2及びシステムクロックsclk_f3と、対応するクロックゲート51g、クロックゲート52g及びクロックゲート53gとに同様の説明が成される。
第二実施例では、第一実施例の第二コントローラ120の代わりにPMU520が、ON/OFF切換制御回路510に対して、機能ブロック_0 50と、機能ブロック_1 51と、機能ブロック_2 52と、機能ブロック_3 53とへの動作を開始するためのON化要求又は動作を停止するためのOFF化要求を行う。このON化要求又はOFF化要求は、パルスドラッチ50p、51p、52p、及び53pへも供給される。
第一実施例のパルスドラッチ10pと同様に、パルスドラッチ50pは、機能ブロック_0 50に接続され、PMU520からON化要求又はOFF化要求を受信し、かつ、そのON化要求又はOFF化要求に対してON/OFF切換制御回路510から承認パルスackp_f0を受信した場合に、機能ブロック_0 50に動作イネーブル信号en_f0を供給する。同様に、パルスドラッチ51p、パルスドラッチ52p及びパルスドラッチ53pのそれぞれに関して、PMU520からON化要求又はOFF化要求に対してON/OFF切換制御回路510から対応する承認パルスackp_f1、承認パルスackp_2及び承認パルスackp_f3を受信した場合に、対応する機能ブロック_1 51、機能ブロック_2 52及び機能ブロック_3 53にそれぞれの動作イネーブル信号en_f1、動作イネーブル信号en_f2及び動作イネーブル信号en_f3を送出する。
ON/OFF切換制御回路510は、実際の電位変動に基づいて、ON化要求及びOFF化要求のタイミングを調整する回路である。ON/OFF切換制御回路510は、機能ブロック_0 50、機能ブロック_1 51、機能ブロック_2 52、及び機能ブロック_3 53の各々に対応する信号req_f0、req_f1、req_f2、及びreq_f3を受信し、実際の電位変動に基づくタイミング調整を行って、承認パルスackp_f0、ackp_f1、ackp_f2、及びackp_f3を送信する。
ON化とは、動作イネーブル信号en_f0からen_f3を同時に又は個々にOFF状態からON状態へと移行させることである。また、OFF化とは、動作イネーブル信号en_f0からen_f3を同時に又は個々にON状態からOFF状態へと移行させることである。
図23は、ON/OFF切換制御回路510の構成を示す概略図である。図23において、ON/OFF切換制御回路510は、ON/OFFシーケンサ513と、データ遷移検知部515とを有する。
ON/OFFシーケンサ513は、ON/OFF化要求を示すON/OFF要求信号をPMU520から受信すると、データ遷移検知部515へON/OFF化要求を行い、データ遷移検知部515からON/OFF化要求に対する許可を得ると内部回路501へ制御信号を送信する。
データ遷移検知部515は、実際の電位変動から共振周波数の波形を検知して、電源ノイズを増幅させないようにON化するタイミング及びOFF化するタイミングを調節して、ON/OFFシーケンサ513へON化許可及びOFF化許可を通知する。一方、データ遷移検知部515は、電源ノイズを増幅させるON化するタイミング及びOFF化するタイミングでは、ON/OFFシーケンサ513へON化禁止及びOFF化禁止を通知する。
同時に発生するON化要求個数及びOFF化要求個数によって変化する内部回路501内のON状態個数及びOFF状態個数へのシーケンスについて図24で説明する。図24は、ON状態個数及びOFF状態個数に応じたクロック有効化シーケンス及びクロック無効化シーケンスを説明するための図である。
図24において、内部回路501の機能ブロック_0 50から機能ブロック_3 53(以下、総称して機能ブロック_#と言う)の全てが全OFF状態である場合をSTEP1、機能ブロック_#のうち1つがON状態かつ他3つがOFF状態である場合をSTEP2、機能ブロック_#のうち2つがON状態かつ他2つがOFF状態である場合をSTEP3、機能ブロック_#のうち3つがON状態かつ他1つがOFF状態である場合をSTEP4、機能ブロック_#の全てがON状態である場合をSTEP5とする。
クロック有効化シーケンスとはON状態個数を増やすためのシーケンスであり、クロック無効化シーケンスとはOFF状態個数を増やすためのシーケンスである。つまり、機能ブロック_#のうち1つがON状態かつ他3つがOFF状態であるSTEP2において、ON状態の1つの機能ブロックに対してOFF化要求及びOFF状態の3つの機能ブロックの1つに対してON化要求が同時に発生した場合、結果として内部回路501のON状態個数とOFF状態個数とに変化はないため、クロック有効化シーケンス及びクロック無効化シーケンスのいずれもなされない。
クロック有効化シーケンスについて簡単に説明する。全OFF状態から全ON状態へのON化要求がなされた場合、クロック有効化シーケンスでは、機能ブロック_#を1つずつON化するためにSTEP1からSTEP5までが、状態切換制約期間(後述)内にて調整されたタイミングで順番に実行される。
また、内部回路501の現在の状態が機能ブロック_#のうち2つがON状態かつ他2つがOFF状態であるSTEP3にある場合で、1つのON化要求によって、又は、同時のON化要求及びOFF化要求の組み合わせによって、機能ブロック_#のうち3つがON状態かつ他1つがOFF状態であるSTEP4へと移行する場合、内部回路501は、状態切換制約期間内にて調整されたタイミングで移行する。他STEPへの移行も同様である。
クロック無効化シーケンスについて簡単に説明する。全ON状態から全OFF状態へのOFF化要求がなされた場合、クロック無効化シーケンスでは、機能ブロック_#を1つずつOFF化するためにSTEP5からSTEP1までが、状態切換制約期間(後述)内にて調整されたタイミングで順番に実行される。
また、内部回路501の現在の状態が機能ブロック_#のうち2つがON状態かつ他2つがOFF状態であるSTEP3にある場合で、1つのOFF化要求によって、又は、同時のON化要求及びOFF化要求の組み合わせによって、機能ブロック_#のうち1つがON状態かつ他3つがOFF状態であるSTEP2へと移行する場合、内部回路501は、状態切換制約期間内にて調整されたタイミングで移行する。他STEPへの移行も同様である。
クロック有効化シーケンス及びクロック無効化シーケンスによる各動作イネーブル信号en_f0〜en_f3の状態について図25で説明する。図25中、クロック有効化シーケンスによって全OFF状態から全ON状態へと移行し、その後、クロック無効化シーケンスによって全ON状態から全OFF状態へと移行する状態が例示される。
図25(a)は、動作イネーブルen_f0からen_f3のON又はOFF状態を示す。図25(b)は、時間軸を示す。図25(c)は、クロック有効化シーケンス及びクロック無効化シーケンスによる内部回路501内のステップを示す。
動作イネーブルen_f0からen_f3全てへのON化要求に応じて、クロック有効化シーケンスが開始され、調整されたタイミングで、動作イネーブルen_f0をONにしてSTEP1からSTEP2へと移行し、動作イネーブルen_f1をONにしてSTEP2からSTEP3へと移行し、動作イネーブルen_f2をONにしてSTEP3からSTEP4へと移行し、動作イネーブルen_f3をONにしてSTEP4からSTEP5へと移行する。
その後、動作イネーブルen_f0からen_f3全てへのOFF化要求に応じて、クロック無効化シーケンスが開始され、調整されたタイミングで、動作イネーブルen_f3をOFFにしてSTEP5からSTEP4へと移行し、動作イネーブルen_f2をOFFにしてSTEP4からSTEP3へと移行し、動作イネーブルen_f1をOFFにしてSTEP3からSTEP2へと移行し、動作イネーブルen_f0をOFFにしてSTEP2からSTEP1へと移行する。
動作イネーブルen_f0からen_f3は順に1つずつ制御されればよく、制御される動作イネーブルen_f0からen_f3の順番は、図25の例示によって制限されない。
ON/OFF切換制御回路510の回路構成及び信号フローについて図26で説明する。図26中、#は機能ブロックの番号0から3の少なくとも1つを示し、場合によっては0から3の全て、又は、任意の組み合わせを示す。説明の便宜のため、これら場合を総称して#で示し、またラインも実際には機能ブロックの数分必要であるが一本の二重線で代表して示している。
図26は、本発明の第二実施例に係るON/OFF切換制御回路510の回路構成を詳細に示すブロック図である。図26に示すON/OFF切換制御回路510において、ON/OFFシーケンサ513は、要求信号遷移検出部610と、ON化/OFF化要求ペア判定部620と、要求処理部630と、承認パルス発生部650とを有する。また、データ遷移検知部515は、制約発動部640を有する。
要求信号遷移検出部610は、信号req_f#のOFFからON又はONからOFFへの変化を検出する回路であり、更に、ON化要求検出部612と、OFF化要求検出部614とを有する。
ON化/OFF化要求ペア判定部620は、ペアとなるON化要求とOFF化要求とがあるか否かを判定する回路であり、ペアの判定結果がなされるまで、ペア判定待ち信号が要求処理部630のON化要求処理部632とOFF化要求処理部634とに送出される。従って、要求処理部630は、ペア判定待ち信号がONの間動作を行わない。
要求処理部630は、ON化要求による動作状態の遷移を制御するON化要求処理部632と、OFF化要求による動作状態の遷移を制御するOFF化要求処理部634とを有する。
制約発動部640は、内部電位モニタデータを用いて、要求処理部630に対して種々の制御信号によってON化要求及びOFF化要求に対する処理の制御を行う。
承認パルス発生部650は、ON化/OFF化要求ペア判定部620からペア承認信号を受信すると、ペアに対応する信号req_f#に対して認証パルスackp_f#を送信する。また、承認パルス発生部650は、要求処理部630から要求承認信号を受信すると、要求承認信号に対応する信号req_f#に対して認証パルスackp_f#を対応するパルスドラッチ50pから53pの夫々へ送信する。
このように、第二実施例における要求信号遷移検出部610と、ON化/OFF化要求ペア判定部620と、要求処理部630と、制約発動部640と、承認パルス発生部650とは、第一実施例における要求信号遷移検出部210と、ON化/OFF化要求ペア判定部220と、要求処理部230と、制約発動部240と、承認パルス発生部250とに対応するため、更なる詳細な説明を省略する。
第二実施例における初期状態と制約発動状態とについて説明する。第二実施例において、初期状態とは、第一実施例と同様に、内部電源電位ivddが安定している状態であり、例えば、電源電位変動が発生していない又は収束した状態、複数の電源電位変動が干渉し合ってキャンセルしている状態などである。制約発動状態とは、電源電圧変動の検知開始から内部電源電位ivddが安定して初期状態となるまでの期間、更なる動作開始及び動作停止を制約する状態にすることである。
<初期状態>
要求処理部630は、制約発動部640からの制約発動期間信号gate_fのレベルによって、現在が初期状態なのか制約発動状態なのかを判断する。例えば、制約発動期間信号gate_fがハイレベルであれば初期状態であると判断する。
<制約発動状態>
要求処理部630のON化要求処理部632は、制約発動部640から送出される制約発動期間信号gate_fがローレベルの場合、更に、制約発動部640から送出されるON化許可期間信号on_feのレベルによって、現在がON化許可期間なのかON化禁止期間なのかを判断し、ON化禁止期間(例えば、ON化許可期間信号on_feがローレベル)の場合、要求処理を保留し、ON化許可期間(例えば、ON化許可期間信号on_feがハイレベル)になるのを待つ。
ON化許可期間信号on_feがハイレベルになれば、要求処理部630のON化要求処理部632は、ON化要求のある機能ブロック_0 50から機能ブロック_3 53の内最も若い機能ブロック番号に対応する信号req_f#に対してのみ要求承認信号を送出する。
承認パルス発生部650は、要求処理部630から受信した要求承認信号に対応する信号req_f#に対して、承認パルスackp_f#を対応するパルスドラッチ50pから53pの1つへ送信する。
同様に、要求処理部630のOFF化要求処理部634は、制約発動部640から送出される制約発動期間信号gate_fがローレベルの場合、更に、制約発動部640から送出されるOFF化許可期間信号off_feのレベルによって、現在がOFF化許可期間なのかOFF化禁止期間なのかを判断し、OFF化禁止期間(例えば、OFF化許可期間信号off_feがローレベル)の場合、要求処理を保留し、OFF化許可期間(例えば、OFF化許可期間信号off_feがハイレベル)になるのを待つ。
OFF化許可期間信号off_feがハイレベルになれば、要求処理部630のOFF化要求処理部634は、OFF化要求のある機能ブロック_0 50から機能ブロック_3 53の内最も若い機能ブロック番号に対応する信号req_f#に対してのみ要求承認信号を送出する。
承認パルス発生部650は、要求処理部630から受信した要求承認信号に対応する信号req_f#に対して、承認パルスackp_f#を対応するパルスドラッチ50pから53pの1つへ送信する。
その後、制約発動期間信号gate_fがローレベルになると、要求処理部630は初期状態へ移行したと判断する。
第二実施例において、第一実施例とは異なり、制約発動部640の制約発動期間信号gate_fは、内部電位モニタデータによってハイレベル又はローレベルへと切り替えられる(後述)。従って、要求処理部630は、制約発動要求及び制約解除要求を制約発動部640へ行う必要がない。
データ遷移検知部515の制約発動部640へ供給される内部電位モニタデータについて図27及び図28で説明する。図27は、電圧センサ530が検知する内部電位状態を説明するための図である。
図27に示すグラフ図は、LSI500の内部電源電位ivddを横軸に示し、電圧センサ530が検知する電位を縦軸に示している。
電圧センサ530には、基準電位Aと、基準電位Bと、基準電位Cとが与えられており、縦軸に示される。例えば、基準電位Aと、基準電位Bと、基準電位Cとは、予め高精度なバンドギャップリファレンス電位(以下、VBG電位と記す)に基づいて生成される。
基準電位Aは、電位変動によって開始される共振周波数の波形の立ち上がりから約1/2の共振周期Tres後の基準電位Bより高い電位である。基準電位Bは、内部回路501の電源電位が安定したときの電位である。基準電位Cは、電位変動によって開始される共振周波数の波形の立ち下がりから約1/2の共振周期Tres後の基準電位Bより低い電位である。
基準電位A以上を超高電位30、基準電位Aから基準電位Bまでを高電位31、基準電位Bから基準電位Cまでを低電位32、基準電位C以下を超低電位33とする。
そして、LSI500の内部電源電位ivddは、共振周期Tresで変動し、その変動する内部電位状態を内部電位ivdd3で示している。目標電位6は、内部電位ivdd3が安定した時の上述した初期状態の電位を示し、かつ、基準電位Bとして設定される。
電圧センサ530は、基準電位Aと、基準電位Bと、基準電位Cとを用いて検知した内部電位状態を示す内部電位モニタデータを制約発動部640へ供給する。
図28は、電圧センサ530で検知される内部電位状態と制約発動部640へ供給される内部電位モニタデータの対応を示す図である。図28において、内部電位モニタデータは0又は1の信号a、b及びcで構成される。
図27に示す内部電位ivdd 3が基準電位A以上となる超高電位である場合、内部電位モニタデータは「111」(信号a、b及びcの全てが「1」)を示す。内部電位ivdd 3が基準電位Aに満たないが基準電位B以上となる高電位である場合、内部電位モニタデータは「011」(信号aが「0」かつ信号b及びcが「1」)を示す。内部電位ivdd 3が基準電位A及びBに満たないが基準電位C以上となる低電位である場合、内部電位モニタデータは「001」(信号a及びbが「0」かつ信号cが「1」)を示す。そして、内部電位ivdd 3が基準電位A、基準電位Bおよび基準電位Cのいずれにも満たない超低電位である場合、内部電位モニタデータは「000」(信号a、b及びcの全てが「0」)を示す。
制約発動部640は、内部電位モニタデータの遷移によって電位変動を把握し、その電位変動に基づいて制約発動期間、ON化許可期間、及びOFF化許可期間を決定する。
図29は、バンドギャップリファレンスを用いた電圧センサ530の回路構成を示す図である。図29に示す電圧センサ530は、バンドギャップリファレンス(VGB)部31と、内部電位判定部33とを有する。
VGB部31は、高精度なVBG電位を生成して内部電位判定部33へと供給する。VBG電位は、基準電位Aより高い電位を示す。
内部電位判定部33は、オペアンプ34と、抵抗35aと、抵抗35bと、抵抗35cと、抵抗35dと、コンパレータ36aと、コンパレータ36bと、コンパレータ36cとを有する。コンパレータ36aから36cは、A/D変換して比較結果を出力するコンパレータである。
VGB部31で生成されたVBG電位は、オペアンプ34に印加され、抵抗35aによって基準電位Aとなり、抵抗35bによって基準電位Bとなり、抵抗35cによって基準電位Cとなり、抵抗35dによって低電位されたのち接地される。基準電位Aはコンパレータ35aに印加され、基準電位Bはコンパレータ35bに印加され、基準電位Cはコンパレータ35cに印加される。
コンパレータ35aは、内部電位ivddと基準電位Aとを比較した結果を信号aとして出力する。内部電位ivddが基準電位A以上となる場合に信号aは0を示し、内部電位ivddが基準電位A未満となる場合に信号aは1を示す。
コンパレータ35bは、内部電位ivddと基準電位Bとを比較した結果を信号bとして出力する。内部電位ivddが基準電位B以上となる場合に信号bは0を示し、内部電位ivddが基準電位A未満となる場合に信号bは1を示す。
コンパレータ35cは、内部電位ivddと基準電位Cとを比較した結果を信号cとして出力する。内部電位ivddが基準電位C以上となる場合に信号aは0を示し、内部電位ivddが基準電位C未満となる場合に信号cは1を示す。
電圧センサ530の他の回路構成について図30及び図31で示す。図30は、論理回路を用いた電圧センサ532の回路構成を示す図である。図30に示す電圧センサ532は、基準電位Aを閾値とするNOT回路37aと、基準電位Bを閾値とするNOT回路37bと、基準電位Cを閾値とするNOT回路37cと、信号aを出力するNOT回路38aと、信号bを出力するNOT回路38bと、信号cを出力するNOT回路38cとを有する。
NOT回路37aは、入力された内部電位ivddに対して基準電位Aの閾値でNOT演算を行って、その演算結果をNOT回路38aへ出力する。NOT回路38aが更にNOT演算することによって信号aを出力する。
NOT回路37bは、入力された内部電位ivddに対して基準電位Bの閾値でNOT演算を行って、その演算結果をNOT回路38bへ出力する。NOT回路38bが更にNOT演算することによって信号bを出力する。
NOT回路37cは、入力された内部電位ivddに対して基準電位Cの閾値でNOT演算を行って、その演算結果をNOT回路38cへ出力する。NOT回路38cが更にNOT演算することによって信号cを出力する。
このような回路構成によって、電圧センサ532は、信号a、b及びcによる内部電位モニタデータを制約発動部640へ供給する。
図31は、コンパレータを用いた電圧センサ534の回路構成を示す図である。図31に示す電圧センサ534は、コンパレータ39aと、コンパレータ39bと、コンパレータ39cとを有する。コンパレータ39aと、コンパレータ39bと、コンパレータ39cとは、A/D変換を行なうコンパレータである。
電圧センサ534は、図29に示す電圧センサ530と異なり、VGB部31を備えない回路構成となっており、基準電位Aから基準電位Cは外部から夫々コンパレータ39aから39cへと印加される。
そして、コンパレータ39a、39b及び39cの夫々が、内部電位ivddと比較した結果を信号a、b及びcとして出力する。
このような回路構成によって、電圧センサ534は、信号a、b及びcによる内部電位モニタデータを制約発動部640へ供給する。
データ遷移検知部515の制約発動部640の動作例について図32及び図33で説明する。図32は、機能ブロック_0 50から機能ブロック_3 53の1つが停止状態から動作開始した場合の制約発動部640の動作を示す図である。
図32において、変動波形72aは、機能ブロック_0 50から機能ブロック_3 53の1つが停止状態から動作開始したことによるLSI500の内部電源電位ivddの変動波形を示す(図32(a))。
制約発動期間信号gate_fは、初期状態を示す凡そ基準電位Bからの変動波形72aの下がり波形f1によるデータ遷移から、変動波形72aの下がり波形f4によるデータ遷移までを制約発動期間として示す(図32(d))。初期状態からの変動波形72aの下がり波形f1にて内部電位モニタデータが「000」になると、制約発動期間信号gate_fは、ONからOFFへと切り替わり制約発動期間を開始する。その後、変動波形72aの下がり波形f4にて内部電位モニタデータが「001」になると、制約発動期間信号gate_fは、OFFからONへと切り替わり制約発動期間を終了する。
ON化許可期間信号on_feは、制約発動期間において、変動波形72aの上がり波形r1、r2及びr3でのデータ遷移でONとなりON化を許可し、上がり波形r1、r2及びr3以外においてOFFとなりON化を禁止する(図32(b))。変動波形72aの上がり波形r1、r2及びr3の夫々において、内部電位モニタデータが「001」になると、ON化許可期間信号on_feはOFFからONへと切り替わりON化許可期間を開始し、内部電位モニタデータが「111」になると、ON化許可期間信号on_feはONからOFFへと切り替わりON化許可期間を終了する。
OFF化許可期間信号off_feは、制約発動期間において、変動波形72aの下がり波形f2及びf3でのデータ遷移でONとなりOFF化を許可し、下がり波形f2及びf3以外においてOFFとなりOFF化を禁止する(図32(c))。変動波形72aの下がり波形f2及びf3の夫々において、内部電位モニタデータが「011」になると、OFF化許可期間信号off_feはOFFからONへと切り替わりOFF化許可期間を開始し、内部電位モニタデータが「000」になると、OFF化許可期間信号off_feはONからOFFへと切り替わりOFF化許可期間を終了する。
このように、内部電位モニタデータを用いて制約発動期間、ON化許可期間及びOFF化許可期間が決定されるため、タイマー制御によって共振周期Tresを固定にすることなく、実際の電源電位ivddの変動に応じてON化するタイミング及びOFF化するタイミングが調整される。
また、PMU520から要求される2以上の機能ブロックに対するON化要求に対して順次動作状態とするクロック有効化シーケンスでは、制約動作期間において、実際の立ち下がり波形で始まる内部電源電位ivddの変動に応じて、内部電源電位ivddがキャンセルされるように、Nを奇数とするN/2の共振周期Tresとなる時点を含む時間帯でON化許可期間となり、また、Mを整数とするM倍の共振周期Tresとなる時点を含む時間帯でON化禁止期間となる。
最初のON化によって内部電源電位ivddが立ち下がり波形で大きく変動開始し、データ遷移検知部515が、電圧センサ530から供給される内部電位モニタデータに基づいて基準電位Cを横切った瞬間を検知して、次のON化に対する制約が発動し、ON化許可期間とON化禁止期間の時間帯を交互に作り出し、十分な時間が経過すると制約を解除する。
また、クロック有効化シーケンスにおいて、制約発動後のOFF化によって立ち上がり波形で変動開始する内部電源電位ivddがキャンセルされるように、Mを整数とするM倍の共振周期Tresとなる時点を含む時間帯でOFF化許可期間となり、Nを奇数とするN/2の共振周期Tresとなる時点を含む時間帯でOFF化禁止期間となる。
図33は、機能ブロック_0 50から機能ブロック_3 53の1つが動作状態から動作停止した場合の制約発動部640の動作を示す図である。
図33において、変動波形73aは、機能ブロック_0 50から機能ブロック_3 53の1つが動作状態から動作停止したことによるLSI500の内部電源電位ivddの変動波形を示す(図33(a))。
制約発動期間信号gate_fは、初期状態を示す凡そ基準電位Bからの変動波形73aの上がり波形r21によるデータ遷移から、変動波形73aの上がり波形r24によるデータ遷移までを制約発動期間として示す(図33(d))。初期状態からの変動波形73aの上がり波形r21にて内部電位モニタデータが「111」になると、制約発動期間信号gate_fは、ONからOFFへと切り替わり制約発動期間を開始する。その後、変動波形73aの上がり波形r24にて内部電位モニタデータが「011」になると、制約発動期間信号gate_fは、OFFからONへと切り替わり制約発動期間を終了する。
ON化許可期間信号on_feは、制約発動期間において、変動波形73aの上がり波形r22及びr23でのデータ遷移でONとなりON化を許可し、上がり波形r22及びr23以外においてOFFとなりON化を禁止する(図33(b))。変動波形73aの上がり波形r22及びr23の夫々において、内部電位モニタデータが「001」になると、ON化許可期間信号on_feはOFFからONへと切り替わりON化許可期間を開始し、内部電位モニタデータが「111」になると、ON化許可期間信号on_feはONからOFFへと切り替わりON化許可期間を終了する。
OFF化許可期間信号off_feは、制約発動期間において、変動波形73aの下がり波形f21及びf22でのデータ遷移でONとなりOFF化を許可し、下がり波形f21及びf22以外においてOFFとなりOFF化を禁止する(図33(c))。変動波形73aの下がり波形f21及びf22の夫々において、内部電位モニタデータが「011」になると、OFF化許可期間信号off_feはOFFからONへと切り替わりOFF化許可期間を開始し、内部電位モニタデータが「000」になると、OFF化許可期間信号off_feはONからOFFへと切り替わりOFF化許可期間を終了する。
このように、内部電位モニタデータを用いて制約発動期間、ON化許可期間及びOFF化許可期間が決定されるため、タイマー制御によって共振周期Tresを固定にすることなく、実際の電源電位ivddの変動に応じてON化するタイミング及びOFF化するタイミングが調整される。
また、PMU520から要求される2以上の機能ブロックに対するOFF化要求に対して順次停止状態とするクロック無効化シーケンスでは、制約動作期間において、実際の立ち下がり波形で始まる内部電源電位ivddの変動に応じて、内部電源電位ivddがキャンセルされるように、Nを奇数とするN/2の共振周期Tresとなる時点を含む時間帯でOFF化許可期間となり、また、Mを整数とするM倍の共振周期Tresとなる時点を含む時間帯でOFF化禁止期間となる。
最初のOFF化によって内部電源電位ivddが立ち上がり波形で大きく変動開始し、データ遷移検知部515が、電圧センサ530から供給される内部電位モニタデータに基づいて基準電位Aを横切った瞬間を検知して、次のOFF化に対する制約が発動し、OFF化許可期間とOFF化禁止期間の時間帯を交互に作り出し、十分な時間が経過すると制約を解除する。
また、クロック無効化シーケンスにおいて、制約発動後のON化によって立ち下がり波形で変動開始する内部電源電位ivddがキャンセルされるように、Mを整数とするM倍の共振周期Tresとなる時点を含む時間帯でON化許可期間となり、Nを奇数とするN/2の共振周期Tresとなる時点を含む時間帯でON化禁止期間となる。
機能ブロック_0 50から機能ブロック_3 53の全てをON化する場合を例として、クロック有効化シーケンスについて図34及び図35で説明する。図34及び図35中、機能ブロック_0 50から機能ブロック_3 53の順にON化するものとする。
図34は、クロック有効化シーケンスのON化許可期間を説明するための図である。図34において、機能ブロック_0 50から機能ブロック_3 53の順に全てをON化する場合、機能ブロック_0 50がON化される時、及び、機能ブロック_2 52がON化される時に、LSI500の内部電源電位ivddに変動波形72aが発生し(図34(a))、ON化許可期間信号on_feによって示されるON化許可期間(図34(b))のいずれかで、機能ブロック_0 50がON化後には機能ブロック_1 51がON化され、機能ブロック_2 52がON化後には機能ブロック_3 53がON化される。
この場合、機能ブロック_0 50がON化後には機能ブロック_1 51がON化されると、互いの共振周期によって電源電位ivddの変動がキャンセルされ初期状態となる。
制約発動期間において、上がり波形での基準電位Cの検出によって約1/2の共振周期Tres後に最初のON化許可期間が開始され、次の機能ブロック_1 51又は機能ブロック_3 53がON化されない場合は、その開始からON化禁止期間を経て、再度上がり波形での基準電位Cの検出によって約1共振周期Tres後に次のON化許可期間が開始される。
内部電位モニタデータを用いて決定された制約発動期間及びON化許可期間に従って、実際の電源電位ivddの変動に応じて調整されたON化されるタイミングにて、クロック有効化シーケンスが実行される。
図35は、クロック有効化シーケンスによるON化制御の例を示す図である。図35において、機能ブロック_0 50から機能ブロック_3 53の全てを順にON化する場合、STEP1からSTEP5までのクロック有効化シーケンスが実行される(図35(a))。
クロック有効化シーケンスに従って順次ON化されることによって、機能ブロック_0 50の内部電位変動81aと、機能ブロック_1 51の内部電位変動81bと、機能ブロック_2 52の内部電位変動81cと、機能ブロック_3 53の内部電位変動81dとが発生する(図35(b))。
内部電位変動81aから81dとが干渉し合って合成内部電位変動81eが形成される(図35(c))。
その合成内部電位変動81eでは、機能ブロック_0 50のON化直後から約1/2の共振周期Tresの間に機能ブロック_0 50のON化による内部電位変動81a'(内部電位変動81aの一部)を示し、その後、機能ブロック_2 52のON化直後から約1/2の共振周期Tresの間に機能ブロック_2 52のON化による内部電位変動81c'(内部電位変動81cの一部)を示す。
しかしながら、合成内部電位変動81eは以後急速に収まり一定の電位を保った状態となる。また、合成内部電位変動81eは、2度大きく変動するが、2つの内部電位変動81a'と内部電位変動81c'とが重なることはない。
機能ブロック_0 50のON化と機能ブロック_1 51のON化とによって内部電位変動81a及び81bとがほぼキャンセルされる期間は、機能ブロック_0 50のON化から約1/2の共振周期Tres後の機能ブロック_1 51のON化以降である。
また、機能ブロック_2 52のON化と機能ブロック_3 53のON化とによって内部電位変動81c及び81dとがほぼキャンセルされる期間は、機能ブロック_2 52のON化から約1/2の共振周期Tres後の機能ブロック_3 53のON化以降である。
この時のON/OFF切換制御回路510のデータ遷移検知部515の状態遷移は、初期状態から機能ブロック_0 50のON化により約1/2の共振周期Tresの間で制約発動状態となり、その間のON化許可期間で機能ブロック_1 51のON化により初期状態へと戻り、再び、機能ブロック_2 52のON化により約1/2の共振周期Tresの間で制約発動状態となり、その間のON化許可期間で機能ブロック_3 53のON化により初期状態へと戻る(図35(d))。
クロック有効化シーケンスの場合、基準電位Cの設定によって約1/2の共振周期Tresの間で制約発動状態となる。
このように、4つの機能ブロック_0 50から機能ブロック_3 53に状態遷移があったものの、LSI500に与える合成内部電位変動81eは、機能ブロック_0 50のON化による内部電位変動81a'(内部電位変動81aの一部)と機能ブロック_2 52のON化による内部電位変動81c'(内部電位変動81cの一部)のみであり、かつ、夫々約1/2の共振周期Tresの間のみに発生する。
図36は、クロック無効化シーケンスのON化許可期間を説明するための図である。図36において、機能ブロック_0 50から機能ブロック_3 53の順に全てをOFF化する場合、機能ブロック_0 50がOFF化される時、及び、機能ブロック_2 52がOFF化される時に、LSI500の内部電源電位ivddに変動波形73aが発生し(図36(a))、OFF化許可期間信号off_feによって示されるOFF化許可期間(図36(b))のいずれかで、機能ブロック_0 50がOFF化後には機能ブロック_1 51がOFF化され、機能ブロック_2 52がOFF化後には機能ブロック_3 53がOFF化される。
この場合、機能ブロック_0 50がOFF化後には機能ブロック_1 51がOFF化されると、互いの共振周期によって電源電位ivddの変動がキャンセルされ初期状態となる。
制約発動期間において、下がり波形での基準電位Aの検出によって約1/2の共振周期Tres後に最初のOFF化許可期間が開始され、次の機能ブロック_1 51又は機能ブロック_3 53がOFF化されない場合は、その開始からOFF化禁止期間を経て、再度下がり波形での基準電位Aの検出によって約1共振周期Tres後に次のOFF化許可期間が開始される。
内部電位モニタデータを用いて決定された制約発動期間及びOFF化許可期間に従って、実際の電源電位ivddの変動に応じて調整されたOFF化されるタイミングにて、クロック無効化シーケンスが実行される。
クロック無効化シーケンスによるOFF化制御は、図35に示すクロック有効化シーケンスによるON化制御に同様であるので、その説明を省略する。ただし、クロック無効化シーケンスの場合、基準電位Aの設定によって約1/2の共振周期Tresの間で制約発動状態となる。
上述より、たとえ内部回路501にON化及びOFF化が連続して発生したとしても、合成内部電位変動81e(即ち、LSI500の内部電源電位ivdd)は、1つの機能ブロックの状態遷移による電位変動量を超えることはない。
したがって、図22に示すような4つの機能ブロック_0 50から機能ブロック_3 53が配列されるLSI500の場合、従来のLSIと比較すると、電位変動量を凡そ4分の1に抑制することができる。また、このような電位変動量の抑制によって、LSIの性能を劣化させることはない。
また、第二実施例では、実際の電位変動を検知してON化のタイミング及びOFF化のタイミングを調整することができる。従って、タイマー制御を用いない実際の電位変動を検知して制御するイベント・ドリブン型であり、プログラム的に共振周期Tresの設定をしなくても良い。
更に、本発明は、内部回路501内に4つの機能ブロックが配列されるLSI500に限定されるものではなく、4以上の機能ブロックが配列されるLSIにも適応可能である。
本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
本国際出願は、2006年3月16日に出願した国際出願PCT/JP2006/305212号に基づく優先権を主張するものであり、PCT/JP2006/305212号の全内容を本国際出願に援用する。