以下、図面を用いて実施形態を説明する。信号が伝達される信号線および端子には、信号名と同じ符号を使用する。図中の二重の四角印は、外部端子を示す。外部端子は、例えば、半導体チップ上のパッド、あるいは半導体チップが収納されるパッケージのリードである。外部端子を介して供給される信号には、端子名と同じ符号を使用する。
図1は、半導体装置および半導体装置の制御方法の一実施形態を示す。この実施形態の半導体装置100は、クロック信号CLK0を伝達する複数のクロック信号線CLKa1、CLKb1と、クロック信号線CLKa1、CLKb1を負荷部LDUに接続する切り替え部SWUとを有する。例えば、負荷部LDUは、クロックメッシュである。切り替え部SWUは、電源電圧VDDが所定値以下の場合にクロック信号線CLKa1、CLKb1を負荷部LDUに接続し、電源電圧VDDが所定値より高い場合にクロック信号線CLKa1、CLKb1を負荷部LDUから切り離す。
例えば、切り替え部SWUは、制御部CNTUによる制御に基づいてクロック信号線CLKa1、CLKb1を負荷部LDUに接続または非接続するスイッチSWa、SWbを有する。制御部CNTUは、電源電圧VDDと所定値との大小関係を判定し、判定結果に基づいて切り替え部SWUを制御する。なお、制御部CNTUは、半導体装置100の外部に配置されてもよい。
例えば、クロック信号CLKa1、CLKb1は、フリップフロップFFのクロック入力端子にそれぞれ供給される。例えば、クロック信号CLKa1、CLKb1に発生するクロックスキューは、クロック入力端子に到達するクロック信号CLKa1、CLKb1の位相のずれである。
この実施形態では、電源電圧VDDが所定値以下の場合に、クロック信号線CLKa1、CLKb1が共通の負荷部LDUに接続されるため、クロックスキューを抑えることができる。これにより、例えば、クロック信号CLKa1(またはCLKb1)が入力されるフリップフロップFFのホールド制約を満たすための時間余裕を調整するホールドバッファの挿入数を従来に比べて削減できる。バッファの挿入数が削減できるため、電源電圧VDDが所定値以下のときのリーク電流量を抑制でき、半導体装置100の消費電力を抑制できる。
さらに、電源電圧VDDが所定値より高い場合に、負荷部LDUがクロック信号線CLKa1、CLKb1から切り離されるため、クロック信号CLKa1、CLKb1のレベル変化に伴う負荷部LDUの充放電電流は発生しない。これにより、半導体装置100の消費電力を抑制できる。なお、クロックスキューは、電源電圧VDDが高いほど相対的に小さくなる。このため、電源電圧VDDが所定値より高い場合に、負荷部LDUがクロック信号線CLKa1、CLKb1から切り離されても、クロックスキューの増加による半導体装置100の特性への影響は小さい。
以上、この実施形態では、電源電圧VDDに拘わりなく、クロックスキューを抑制しながら半導体装置100の消費電力の増加を抑制できる。
図2は、半導体装置および半導体装置の制御方法の別の実施形態を示す。この実施形態の半導体装置100Aは、例えば、DVFS(Dynamic Voltage and Frequency Scaling)機能を有する。DVFSは、回路に供給する電源電圧およびクロック信号の周波数を、回路に要求される処理能力に合わせて動的に変更する手法である。なお、半導体装置100Aは、一定の周波数のクロック信号を生成し、回路に要求される処理能力に合わせて電源電圧を動的に変更してもよい。
例えば、半導体装置100Aは、ゲートアレイ等のロジックLSIであり、あるいはプロセッサコアを含むCPU(Central Processing Unit)やシステムLSI(Large Scale Integration)である。
半導体装置100Aは、負荷制御部10、電源管理部12、クロック制御部14、クロック分配部16、切り替え部18および論理回路部20を有する。半導体装置100Aは、チップの形態で供給されるが、例えば、負荷制御部10、電源管理部12およびクロック制御部14は、クロック分配部16、切り替え部18および論理回路部20とは別のチップに設けられてもよい。この場合、電源電圧VDD、クロック信号CLK0および接続制御信号CNは、半導体装置100Aの外部から供給される。
負荷制御部10は、論理回路部20に要求される処理能力を示す負荷情報LDINFを半導体装置100Aの外部から受ける。負荷制御部10は、論理回路部20に要求された処理能力を実現させるために、電源電圧VDDの値を示す電圧情報VINFを電源管理部12に出力し、クロック信号CLKの周波数値を示す周波数情報FINFをクロック制御部14に出力する。なお、負荷制御部10は、半導体装置100A内で生成される負荷情報LDINFを受けてもよい。また、半導体装置100Aが一定の周波数のクロック信号CLK0を生成する場合、例えば、負荷制御部10は、負荷情報LDINFに拘わりなく一定の周波数情報FINFを生成する。
電源管理部12は、電圧生成部VGENおよびアナログデジタルコンバータADCを有する。電圧生成部VGENは、半導体装置100Aの外部から受ける電源電圧VDD0を用いて、電圧情報VINFにより示される電源電圧VDDを生成する。アナログデジタルコンバータADCは、電源電圧VDDの値をデジタル値である電源電圧情報VDDINFに変換し、電源電圧情報VDDINFをクロック制御部14に出力する。
例えば、電源電圧情報VDDINFは、電源電圧VDDの値を10ミリボルト(mV)単位で符号化した値であり、7ビットで表される。電源電圧VDDが0.5Vのとき、電源電圧情報VDDINFは、2進数の”0110010”(10進数の50)で示される。電源電圧VDDが1.2Vのとき、電源電圧情報VDDINFは、2進数の”1111000”(10進数の120)で示される。
なお、電源電圧情報VDDINFの値が電圧情報VINFの値に対応する場合、電源管理部12は、アナログデジタルコンバータADCを持たなくてもよい。この場合、電圧情報VINFが、電源電圧情報VDDINFの代わりにクロック制御部14に供給される。
クロック制御部14は、ROM(Read Only Memory)、比較部COMPおよびクロック生成部CGENを有する。ROMは、切り替え電圧を示す電圧情報Vmを記憶し、電圧情報Vmを比較部COMPに出力する。例えば、電圧情報Vmは、電源電圧情報VDDINFと同様に、7ビットで表される。
例えば、ROMはヒューズ回路である。なお、半導体装置100Aが不揮発性メモリを有する場合、不揮発性メモリの一部をROMとして使用してもよい。さらに、ROMは、半導体装置100A内に配置される配線パターンを使用して設計されてもよい。この場合、ROMの情報は、半導体装置100Aの製造工程において配線パターンの形成に使用するフォトマスクのパターンに含まれる。例えば、電圧情報Vm中の論理1を示すビットは、電源線VDD0に接続され、論理0を示すビットは、接地線VSSに接続される。
比較部COMPは、電源電圧VDDの値を示す電源電圧情報VDDINFと電圧情報Vmとを比較し、比較結果に応じて接続制御信号CNを生成する。比較部COMPにより、電源電圧VDDと電圧情報Vmにより示される所定値との大小関係を判定することで、クロックメッシュCMESHの接続/非接続を、電源電圧VDDに基づいて正確に制御できる。
接続制御信号CNは、電源電圧情報VDDINFにより示される電源電圧VDDの値が電圧情報Vmにより示される電圧値以下の場合に、クロック分配部16の出力ノードをクロックメッシュCMESHに接続する論理(例えば、ハイレベル)に設定される。また、接続制御信号CNは、電源電圧情報VDDINFにより示される電源電圧VDDの値が電圧情報Vmにより示される電圧値より高い場合に、クロック分配部16の出力ノードをクロックメッシュCMESHから切り離す論理(例えば、ロウレベル)に設定される。このように、接続制御信号CNは、クロックメッシュCMESHの接続と非接続とを切り替える切り替え信号として機能する。
なお、比較部COMPの代わりに、電源電圧VDDと電圧情報Vmが示す参照電圧とを比較するアナログコンパレータ等の比較部が配置されてもよい。この場合、電源管理部12は、アナログデジタルコンバータADCを持たない。クロックメッシュCMESHは、負荷部の一例である。接続制御信号CNのハイレベルは、接続信号の一例であり、接続制御信号CNのロウレベルは、切り離し信号の一例である。
クロック生成部CGENは、例えば、発振器を有しており、周波数情報FINFにより示される周波数を有するクロック信号CLK0を生成する。なお、クロック生成部CGENは、半導体装置100Aの内部または外部に配置される水晶発振器等からの発振信号を用いて、周波数情報FINFにより示される周波数を有するクロック信号CLK0を生成してもよい。
なお、電源電圧VDDが、クロック信号CLK0の周波数の変更に連動して変更される場合、比較部COMPは、周波数情報FINFに対応して生成される電源電圧VDDの値を示す情報を電圧情報Vmと比較してもよい。あるいは、クロック制御部14は、クロック信号CLK0の周波数を検出する回路を内蔵し、検出された周波数を、電圧情報Vmに対応する周波数情報と比較することで、接続制御信号CNを生成してもよい。
クロック分配部16は、クロック信号CLK0を分岐して複数のクロック信号CLKa1、CLKb1、CLKc1、CLKd1を生成する複数のクロックバッファCBUFを有する。なお、図2では、図面を見やすくするために、クロック信号CLK0の分岐数を実際より少ない。すなわち、クロック信号CLK0の分岐数は、図2の4つに限定されない。
切り替え部18は、クロック信号線CLKa1、CLKb1、CLKc1、CLKdをクロックメッシュCMESHに接続するスイッチSW(SWa、SWb、SWc、SWd)を有する。例えば、スイッチSWa、SWb、SWc、SWdは、接続制御信号CNがハイレベルのときにオンされ、クロック信号線CLKa1、CLKb1、CLKc1、CLKdをクロックメッシュCMESHに接続する。スイッチSWa、SWb、SWc、SWdは、接続制御信号CNがロウレベルのときにオフされ、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1とクロックメッシュCMESHとの接続を解除する。なお、スイッチSWa、SWb、SWc、SWdは、接続制御信号CNがロウレベルのときにオンされ、ハイレベルのときにオフされてもよい。この場合、判定部COMPの判定論理は、上述と逆になる。
論理回路部20は、クロック信号CLKa1、CLKb1、CLKc1、CLKd1を受け、クロック信号CLKa2、CLKb2、CLKc2、CLKd2としてそれぞれ出力する複数のクロックバッファCBUFを有する。また、論理回路部20は、クロック信号CLKa2、CLKb2、CLKc2、CLKd2を受けて動作するフリップフロップFFを含む論理回路を有する。論理回路部20は、電源回路部12が生成する電源電圧VDDにより動作する。また、実際には各フリップフロップFF間には様々な組み合わせ論理回路が存在しているが、ここでは簡単化のため省略している。なお、論理回路部20は、クロック信号CLKa1、CLKb1、CLKc1、CLKd1以外の制御信号やデータ信号等を、半導体装置100Aの内部に入出力し、制御信号やデータ信号等を半導体装置100Aの外部に入出力してもよい。
なお、図2では、クロック分配部16、切り替え部18、クロックメッシュCMESHおよび論理回路部20は、説明を分かりやすくするために互いに離れているが、実際には、共通の領域に重複して配置される。
図3は、図2に示したクロック分配部16、切り替え部18、クロックメッシュCMESHおよび論理回路部20の例を示す。例えば、切り替え部18のスイッチSW(SWa、SWb)は、nMOSトランジスタとpMOSトランジスタのソース、ドレインを互いに接続したCMOSトランスミッションゲートである。図6に示すように、クロックメッシュCMESHは、例えば、論理回路部20内に格子状に配線される。クロック信号線CLKa1、CLKb1を、CMOSトランスミッションゲート等のスイッチSWを用いてクロックメッシュCMESHに接続することで、論理信号である接続制御信号CNによりクロックメッシュCMESHの接続/非接続を制御できる。
スイッチSWa、SWbは、接続制御信号CNがハイレベルのときにオンし、クロック信号線CLKa1、CLKb1をクロックメッシュCMESHに接続する。この場合、クロック信号線CLKa1、CLKb1がクロックメッシュCMESHを介して短絡されるため、クロック信号CLKa1、CLKb1のクロックスキューの量は、クロック信号線CLKa1、CLKb1が短絡されない場合に比べて小さくなる。ここで、クロックスキューは、クロック信号CLKa1、CLKb1の遷移エッジのタイミングのずれ(ばらつき)である。
但し、スイッチSWa、SWbのオンにより、クロック信号線CLKa1、CLKb1は、共通の負荷であるクロックメッシュCMESHに接続される。このため、クロック信号CLKa1、CLKb1を出力するクロックバッファCBUFのクロックパルスによる充放電電流は、スイッチSWa、SWbがオフされる場合に比べて増加し、消費電力は増加する。
一方、スイッチSWa、SWbは、接続制御信号CNがロウレベルのときにオフし、クロック信号線CLKa1、CLKb1とクロックメッシュCMESHとの接続を解除する。この場合、クロック信号CLKa1、CLKb1は短絡せずに独立して生成されるため、クロック信号CLKa1、CLKb1のクロックスキューは、クロック信号線CLKa1、CLKb1が短絡される場合に比べて大きくなる。
但し、クロック信号線CLKa1、CLKb1は、電源電圧VDDが電圧情報Vmで示される所定値より高い場合に、クロックメッシュCMESHから切り離される。クロックスキューは、電源電圧VDDが高いほど小さくなるため、クロックスキューの増加の影響は、電源電圧VDDが低いときに比べて小さい。
また、スイッチSWa、SWbのオフにより、クロック信号CLKa1、CLKb1を出力するクロックバッファCBUFは、クロックメッシュCMESHを駆動しない。このため、クロック信号CLKa1、CLKb1を出力するクロックバッファCBUFのクロックパルスによる充放電電流は、スイッチSWa、SWbがオンされる場合に比べて減少し、消費電力は減少する。
クロック信号CLKa2を受けるフリップフロップFFは、クロック信号CLKa2に同期してデータ信号DT0をラッチし、データ信号DT1として出力する。クロック信号CLKb2を受けるフリップフロップFFは、例えば、データ信号DT1をインバータIVおよびホールドバッファHBUFで遅延させたデータ信号DT2をラッチし、データ信号DT3として出力する。
図3に示すように、クロック信号CLKa2を受けるフリップフロップFFとクロック信号CLKb2を受けるフリップフロップFFの間には、データ信号DT2を遅延させるホールドバッファHBUFが挿入される。ホールドバッファHBUFについては、図4で説明する。
図4は、図3に示した論理回路部20の動作の例を示す。例えば、図4の上側の波形は、電源電圧VDDが動作可能な最大の値VDDmaxに設定された場合を示し、図4の下側の波形は、電源電圧VDDが動作可能な最小の値VDDminに設定された場合を示す。クロック信号CLKb2に示した斜線は、クロック信号CLKb2のクロック信号CLKa2に対するクロックスキューの範囲を示す。
電源電圧VDDが高い場合(VDDmax)、論理回路部20の各回路の動作速度は高くなり、論理回路20の内部で伝達される信号の伝搬遅延時間は、電源電圧VDDが低い場合に比べて短くなる。また、電源電圧VDDが高い場合、OCV(On Chip Variation)による信号の伝搬タイミングのばらつきは現れにくくなり、ノイズによる電源電圧VDDや接地電圧VSSの変動による回路の動作速度のばらつきも現れにくくなる。これにより、例えば、クロック信号CLKa2に対するクロック信号CLKb2のクロックスキューは、電源電圧VDDが低い場合に比べて小さくなる。なお、OCVは、製造工程に起因する半導体チップ内のトランジスタ特性や配線抵抗などのばらつきのことをいう。
以上より、電源電圧VDDが高い場合、クロック信号CLKb2の遷移エッジからデータ信号DT2の論理を保持する時間の仕様であるホールド制約は、クロックスキューの大きさに拘わらず満たされる。例えば、ホールド時間をゼロとすると、クロック信号CLKa2に対してクロック信号CLKb2に許容されるクロックスキューは、クロック信号CLKa2の立ち上がりエッジからデータ信号DT2がフリップフロップFFに到達するまでである。ここで、クロックスキューは、クロック信号CLKa2の立ち上がりエッジからクロック信号CLKb2の立ち上がりエッジまで許容される。
一方、電源電圧VDDが低い場合(VDDmin)、論理回路部20の各回路の動作速度は低くなり、論理回路20の内部で伝達される信号の伝搬遅延時間は、電源電圧VDDが高い場合に比べて長くなる。また、電源電圧VDDが低い場合、OCVによる信号の伝搬タイミングのばらつきは現れやすくなり、ノイズによる電源電圧VDDや接地電圧VSSの変動による回路の動作速度のばらつきも現れやすくなる。これにより、例えば、クロック信号CLKa2に対するクロック信号CLKb2のクロックスキューは、電源電圧VDDが高い場合に比べて大きくなる。
クロックスキューが大きくなり、クロック信号CLKb2の立ち上がりエッジがデータ信号DT2の変化タイミングより遅くなると、クロック信号CLKb2とデータ信号DT2を受けるフリップフロップFFのホールド制約を満たすための時間余裕tMは負値になる。これにより、クロック信号CLKb2を受けるフリップフロップFFは、本来のデータ値D0をラッチできず、1クロックサイクル後のデータ値D1をラッチするおそれがある。
実際には、図3に示したように、フリップフロップFFが誤ったデータ値D1をラッチしないように、遅延回路として機能する少なくとも1つのホールドバッファHBUFが、データ信号DT2の伝搬経路に挿入される。そして、図4の一番下に示したように、ホールドバッファHBUFの挿入により、フリップフロップFFへのデータ信号DT2の供給タイミングを遅らせることで、ホールド制約は満足する。
なお、図3に示したように、クロックメッシュCMESHをスイッチSWa、SWbを介してクロック信号線CLKa1、CLKb1に接続することで、クロックスキューを小さくできる。これにより、ホールドバッファHBUFの挿入数は最小限で済む。
図5は、図2に示した電圧情報Vmを決定する手法の例を示す。例えば、電圧情報Vmは、図2に示した論理回路部20の設計後、例えば、回路シミュレーションにより求められる。なお、図2に示したホールドバッファHBUFの挿入数は、論理回路部20の設計中に決定される。
特性C1は、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続されない場合のクロックスキューの電源電圧VDDに対する依存性を示す。特性C2は、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続される場合のクロックスキューの電源電圧VDDに対する依存性を示す。
図4で説明したように、クロックスキューは、電源電圧VDDが低い方が、電源電圧VDDが高い場合に比べて大きくなる。また、図3で説明したように、クロックスキューは、クロック信号CLK0の経路にクロックメッシュCMESHが接続された方(特性C2)が、クロック信号CLK0の経路にクロックメッシュCMESHが接続されない場合(特性C1)に比べて小さくなる。
特性C3は、半導体装置100Aの最低動作保証電圧における特性C2のクロックスキューを基準にする場合に許容されるクロックスキューを示す。特性C1、C2において、特性C3よりクロックスキューが大きい領域は、ホールド制約を満足せず、ホールド制約を満たすための時間余裕tMは、図4に示した負の値になるおそれがある。一方、特性C1、C2において、特性C3よりクロックスキューが小さい領域は、ホールド制約を満足する。
そこで、この実施形態では、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続されない特性C1がホールド制約を満足する範囲内において、電源電圧VDDが最も小さい値が電圧情報Vmに設定される。なお、電圧情報Vmが示す電圧値は、クロックメッシュCMESHがクロック信号線(CLKa1等)から切り離された状態で、特性C1がホールド制約を満足する電源電圧VDDの範囲内(例えば、電源電圧VDDの低い側)に設定されればよい。これにより、最低動作保証電圧から最高動作保証電圧の間の全ての電源電圧VDDにおいて、ホールド制約を満足できる。換言すれば、ホールド制約を違反させることなく、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離し可能である。
図6は、図2に示したクロックメッシュCMESHおよびスイッチSW(SWa、SWb、SWc、SWd)の配置の例を示す。図6において、太い実線は、クロックメッシュCMESHを示し、細い実線は、クロック信号線を示し、網掛けで示す矩形は、図3に示した切り替え部18のスイッチSWを示す。例えば、クロックメッシュCMESH、クロック分配部16および切り替え部18(スイッチSW)は、図2に示した論理回路部20内に配置される。
例えば、クロックメッシュCMESHは、論理回路部20内に格子状に配置される。クロックメッシュCMESHは、網目状に配置されてもよい。例えば、クロック信号CLK0は、クロック分配部16のクロックバッファCBUFにより、論理回路部20の中央付近から外側に向けて順次に分岐され、格子の交点に対応して配置されるスイッチSWを介してクロックメッシュCMESHに接続される。すなわち、切り替え部18は、クロックメッシュCMESHの信号線の交差部分に配置される。これにより、スイッチSWは、論理回路部20内に分散して配置されるため、クロック信号CLKa1等がクロックメッシュCMESHに接続される場合に、クロックスキューを論理回路部20内の位置に依存せず平均的に小さくできる。
図7は、図2に示した半導体装置100Aの動作モードの例を示す。例えば、半導体装置100Aは、論理回路部20に要求される処理能力に応じて、4つの動作モードMD(MD1、MD2、MD3、MD4)のいずれかに設定される。
動作モードMD1では、クロック信号CLK0の周波数がF1に設定され、電源電圧VDDがV1に設定される。動作モードMD2では、クロック信号CLK0の周波数がF2に設定され、電源電圧VDDがV2に設定される。動作モードMD3では、クロック信号CLK0の周波数がF3に設定され、電源電圧VDDがV3に設定される。動作モードMD4では、クロック信号CLK0の周波数がF4に設定され、電源電圧VDDがV4に設定される。
例えば、クロック信号CLK0の周波数の大小関係は、F1<F2<F3<F4であり、電源電圧VDDの大小関係は、V1<V2<V3<V4である。特に限定されないが、例えば、周波数F1は1M(メガ)Hzであり、周波数F2は10MHzであり、周波数F3は100MHzであり、周波数F4は1000MHz(=1GHz)である。また、特に限定されないが、例えば、電源電圧V1は0.3Vであり、電源電圧V2は0.5Vであり、電源電圧V3は0.8Vであり、電源電圧V4は1.2Vである。換言すれば、半導体装置100Aの論理回路部20に要求される処理能力は、動作モードMD1、MD2、MD3、MD4の順に大きくなる。
半導体装置100Aは、動作モードMD1、MD2を相互に移行可能であり、動作モードMD1、MD3を相互に移行可能である。また、半導体装置100Aは、動作モードMD2、MD3を相互に移行可能であり、動作モードMD2、MD4を相互に移行可能であり、動作モードMD3、MD4を相互に移行可能である。
この例では、図2に示した電圧情報Vmは、電源電圧VDD2と電源電圧VDD3の間の値(例えば、0.65V)を示す。そして、動作モードMD1、MD2では、接続制御信号CNがハイレベルHに設定され、図2に示したクロック信号線CLKa1、CLKb1、CLKc1、CLKd1は、クロックメッシュCMESHに接続される。動作モードMD3、MD4では、接続制御信号CNがロウレベルLに設定され、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1は、クロックメッシュCMESHから切り離される。
図8は、図2に示した半導体装置100Aにおける消費エネルギーの電源電圧VDDに対する依存性の例を示す。例えば、消費エネルギーは、J/cycle(ジュール/クロックサイクル)で表される。
図8において、一点鎖線C4は、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1にクロックメッシュCMESHが接続される場合の特性を示す。一点鎖線C5は、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1にクロックメッシュCMESHが接続されない場合の特性を示す。二点鎖線C6は、図4において、ホールドバッファHBUFを挿入した場合の特性(クロックメッシュCMESHを持たない半導体装置)を示す。太い実線は、この実施形態における消費エネルギーの特性を示す。太い実線は、電圧情報Vmが示す電源電圧VDD以下の領域では特性C4と重複し、電圧情報Vmが示す電源電圧VDDより高い領域では特性C5と重複する。
この実施形態では、クロックメッシュCMESHの寄生容量を充放電する電流が大きい電源電圧VDD(V3、V4)では、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離される。これにより、消費エネルギーは、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続される場合(特性C4)に比べて削減される(図8(a))。
また、トランジスタのソース、ドレイン間のリーク電流が相対的に増える電源電圧VDD(V1、V2)では、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続される。これにより、特性C6で示されるクロックメッシュCMESHを持たない半導体装置に比べて、ホールドバッファHBUFの挿入数は減り、ホールドバッファHBUFの総リーク電流量が少なくなるため、消費エネルギーは削減される(図8(b))。
以上より、動作モードMD3、MD4では、クロックメッシュCMESHを持たない特性C6に近い特性になり、動作モードMD1、MD2では、ホールドバッファHBUFの数を最小限にできる特性C4に近い特性になる。このように、この実施形態では、クロックメッシュCMESHの接続が、動作モードMD1−MD4に応じて動的に切り替えられるため、電源電圧VDDに拘わりなく、消費エネルギーを従来に比べて少なくできる。
図9は、図2に示した半導体装置100Aの動作の例を示す。この例では、半導体装置100Aは、動作モードMD4から動作モードMD2に移行し、さらに、動作モードMD2から動作モードMD3に移行する。網掛けで示した符号SWPは、動作モードMDの切り替え時の遷移期間であり。例えば、電源電圧VDDが所定の値に変化するまでの切り替え期間である。
負荷情報LDINFに示した符号LD1、LD2、LD3、LD4は、論理回路部20に要求される処理能力の大きさ(負荷)を示し、図7に示した動作モードMD1、MD2、MD3、MD4にそれぞれ対応する。すなわち、負荷は、LD1<LD2<LD3<LD4の順で大きくなる。
例えば、負荷情報LDINFのLD4からLD2への変化は、動作モードMD4から動作モードMD2への移行の指示を示し、負荷情報LDINFのLD2からLD3への変化は、動作モードMD2から動作モードMD3への移行の指示を示す。図2に示した負荷制御部10は、負荷情報LDINFに基づいて、設定するクロック信号CLK0の周波数を示す周波数情報FINFおよび設定する電源電圧VDDの値を示す電圧情報VINFを生成する。図7に示したように、周波数情報FINFは、周波数F1、F2、F3、F4のいずれかを示し、電圧情報VINFは、電源電圧V1、V2、V3、V4のいずれかを示す。
動作モードMD4では、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離される(図9(a))。動作モードMD4から動作モードMD2に切り替えられる場合、比較回路COMPは、電源電圧VDDが電圧情報Vmにより示される所定値以下になったことに応答して接続制御信号CNをロウレベルからハイレベルに変化する(図9(b))。これにより、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続される(図9(c))。
動作モードMD2から動作モードMD3に切り替えられる場合、比較回路COMPは、電源電圧VDDが電圧情報Vmにより示される所定値より高くなったことに応答して接続制御信号CNをハイレベルからロウレベルに変化する(図9(d))。これにより、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離される(図9(e))。
なお、電源電圧VDDが高い側から低い側に遷移する場合(例えば、動作モードMD4から動作モードMD2への移行)、論理回路部20は、電源電圧VDDの低下を待たずに動作を開始可能である。換言すれば、論理回路部20は、切り替え期間SWP中に新たな動作モードでの動作を開始可能である。一方、電源電圧VDDが低い側から高い側に遷移する場合(例えば、動作モードMD2から動作モードMD3への移行)、論理回路部20は、電源電圧VDDが規定の値(例えば、V3)まで上昇した後に動作を開始する。換言すれば、電源電圧VDDが低い側から高い側に遷移する場合、論理回路部20は、切り替え期間SWP後に新たな動作モードでの動作を開始する。
以上、この実施形態においても、図1に示した実施形態と同様に、電源電圧VDDに拘わりなく、クロックスキューを抑制しながら半導体装置100Aの消費電力の増加を抑制できる。さらに、この実施形態では、比較部COMPが、電源電圧VDDと電圧情報Vmにより示される所定値との大小関係を判定するため、クロック信号線(CLKa1等)へのクロックメッシュCMESHの接続/非接続を、電源電圧VDDに基づいて正確に制御できる。
また、図5に示したように、電圧情報Vmは、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続されない特性C1がホールド制約を満足する範囲内で、電源電圧VDDが低い側に設定される。これにより、ホールド制約を違反させることなく、クロックメッシュCMESHをクロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離しできる。
クロック信号線CLKa1、CLKb1、CLKc1、CLKd1は、CMOSトランスミッションゲート等のスイッチSWa、SWb、SWc、SWdを用いてクロックメッシュCMESHに接続される。これにより、論理信号である接続制御信号CNによりクロックメッシュCMESHの接続/非接続を制御できる。
図6に示したように、スイッチSWは、クロックメッシュCMESHの信号線の交差部分に配置されるため、スイッチSWは論理回路部20内に分散して配置される。これにより、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1がクロックメッシュCMESHに接続される場合に、論理回路部20内の位置に依存せず、クロックスキューを平均的に小さくできる。
図10は、半導体装置および半導体装置の制御方法の別の実施形態を示す。上述した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体装置100Bは、図2に示した電源管理部12およびクロック制御部14の代わりに、電源管理部12Bおよびクロック制御部14Bを有する。
半導体装置100Bのその他の構成は、図2に示した半導体装置100Aと同様である。すなわち、半導体装置100Bは、図3および図6と同様の構成を有し、半導体装置100Bの動作モードの遷移は、図7に示され、半導体装置100Bの特性の例は、図8に示される。
電源管理部12Bは、アナログデジタルコンバータADCを持たないことを除き、図2に示した電源管理部12と同様である。すなわち、電源管理部12Bは、半導体装置100Bの外部から受ける電源電圧VDD0を用いて、負荷制御部10からの電圧情報VINFにより示される電源電圧VDDを生成する。
クロック制御部14Bは、モード検出部MDDET、スイッチテーブルSWTBL、接続制御部CNCNTおよびクロック生成部CGENを有する。クロック生成部CGENの機能は、図2に示したクロック生成部CGENと同様である。
モード検出部MDDETは、負荷制御部10からの電圧情報VINFおよび周波数情報FINFに基づいて動作モードMD(MD1−MD4のいずれか)を検出する。なお、モード検出部MDDETは、周波数情報FINFを用いずに、電圧情報VINFから動作モードMDを検出してもよい。モード検出部MDDETは、検出した動作モードMDを示すモード情報PMDを保持し、保持したモード情報PMDを接続制御部CNCNTに出力する。
スイッチテーブルSWTBLは、動作モードMDが切り替えられる場合の待機時間の情報を記憶する。例えば、動作モードMD2(前モード)から動作モードMD3(現モード)に切り替えられる場合の待機時間は、T1である。動作モードMD1から動作モードMD3に切り替えられる場合の待機時間は、T2である。動作モードMD2から動作モードMD4に切り替えられる場合の待機時間は、T3である。一方、上記の3つの切り替え以外の待機時間は0である。なお、待機時間に示した”0(don’t Care)”は、接続制御信号CNの論理が変更されない動作モードMDの切り替えを示す。スイッチテーブルSWTBLは、接続制御部CNCNTからの要求に応じて、待機時間を示すテーブル情報TBLINFを出力する。
待機時間T1、T2、T3は、動作モードMDの切り替え時の電源電圧VDDの上昇値に大きさに応じて設定される。例えば、動作モードMD1、MD2、MD3、MD4の電源電圧VDDは、図2に示した半導体装置100と同様に、それぞれ0.3V、0.5V、0.8V、1.2Vである。そして、電源電圧VDDは、動作モードMD2から動作モードMD3への切り替え時に0.3V上昇し、動作モードMD1から動作モードMD3への切り替え時に0.5V上昇し、動作モードMD2から動作モードMD4への切り替え時に0.7V上昇する。例えば、待機時間T1、T2、T3は、0.3V、0.5V、0.7Vに比例してこの順で長くなる。
接続制御部CNCNTは、モード検出部MDDETからのモード情報PMDにより動作モードMDの切り替えを検出した場合に、スイッチテーブルSWTBLにアクセスして、動作モードMDの切り替え時の待機時間(TBLINF)を読み出す。接続制御部CNCNTは、動作モードが切り替わる前の動作モード(前モード)の情報を保持するために、ラッチ回路を有してもよい。
接続制御部CNCNTは、動作モードMD2から動作モードMD3に切り替わる場合、スイッチテーブルSWTBLにおいて上から2行目の待機時間T1をテーブル情報TBLINFとして読み出す。接続制御部CNCNTは、動作モードMD1から動作モードMD3に切り替わる場合、スイッチテーブルSWTBLにおいて上から3行目の待機時間T2をテーブル情報TBLINFとして読み出す。接続制御部CNCNTは、動作モードMD2から動作モードMD4に切り替わる場合、スイッチテーブルSWTBLにおいて上から4行目の待機時間T3をテーブル情報TBLINFとして読み出す。そして、接続制御部CNCNTは、動作モードMDの切り替えがクロックメッシュCMESHの切り離しを伴う場合、読み出した待機時間が示す所定時間後に接続制御信号CNをロウレベルに変更する。
図11は、図10に示した半導体装置100Bの動作の例を示す図である。図9と同一または同様の動作については、詳細な説明は省略する。この例においても、図9と同様に、半導体装置100Bは、動作モードMD4から動作モードMD2に移行し、さらに、動作モードMD2から動作モードMD3に移行する。負荷情報LDINF、周波数情報FINF、電圧情報VINFおよび電源電圧VDDの変化は、図9と同様である。
例えば、動作モードMD4から動作モードMD2への切り替わり時、接続制御部CNCNTは、図10に示したスイッチテーブルSWTBLの7行目を参照し、待機時間が0であることを認識する。そして、接続制御部CNCNTは、動作モードMD4から動作モードMD2への切り替えタイミングに合わせて接続制御信号CNをロウレベルからハイレベルに変化させる(図11(a))。ハイレベルの接続制御信号CNにより、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1に接続される(図11(b))。
一方、動作モードMD2から動作モードMD3への切り替わり時、接続制御部CNCNTは、図10に示したスイッチテーブルSWTBLの2行目を参照し、待機時間がT1であることを認識する。そして、接続制御部CNCNTは、動作モードMD2から動作モードMD3への切り替えタイミングから待機時間T1後に接続制御信号CNをハイレベルからロウレベルに変化させる(図11(c))。ロウレベルの接続制御信号CNにより、クロックメッシュCMESHは、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離される(図11(d))。
この実施形態では、電源電圧VDDが所定の値に上昇するまで、クロックメッシュCMESHのクロック信号線CLKa1、CLKb1、CLKc1、CLKd1からの切り離しが禁止される。これにより、電源電圧VDDが所定の値に上昇する前にクロックメッシュCMESHがクロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離されることはなく、クロックスキューが大きくなることはない。換言すれば、図5において、電圧情報Vmが示す値より低い電源電圧VDDにおいて、クロックスキューが特性C1を示すことはなく、ホールド制約違反を避けることができる。この結果、論理回路部20が誤動作することを避けることができる。
以上、この実施形態においても、図1に示した実施形態と同様に、電源電圧VDDに拘わりなく、クロックスキューを抑制しながら半導体装置100Bの消費電力の増加を抑制できる。また、図2に示した実施形態と同様に、ホールド制約を違反することなく、クロックメッシュCMESHをクロック信号線CLKa1、CLKb1、CLKc1、CLKd1から切り離しできる。論理信号である接続制御信号CNによりクロックメッシュCMESHの接続/非接続を制御できる。スイッチSWをクロックメッシュCMESHの信号線の交差部分に配置することで、クロック信号線CLKa1、CLKb1、CLKc1、CLKd1がクロックメッシュCMESHに接続される場合に、クロックスキューを平均的に小さくできる。
さらに、電源電圧VDDが低い動作モードMDから電源電圧VDDが高い動作モードMDへの切り替えにおいて、クロックスキューによりホールド制約が違反することを避けることができ、論理回路部20が誤動作することを避けることができる。
図12は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図2から図9で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体装置100Cは、図2に示した切り替え部18の代わりに、切り替え部18Cを有する。半導体装置100Cのその他の構成は、図2に示した半導体装置100Aと同様である。すなわち、半導体装置100Cは、図2に示した負荷制御部10、電源管理部12、クロック制御部14、クロック分配部16、クロックメッシュCMESHおよび論理回路部20を有する。半導体装置100Cは、図5と同様の手法で電圧情報Vmが決定され、図6と同様の構成を有する。また、半導体装置100Cの動作モードの遷移は、図7に示される。半導体装置100Cの特性の例は、図8に示され、半導体装置100Cの動作の例は、図9に示される。
切り替え部18Cは、クロック信号線CLKa1、CLKb1毎に2つの2入力のアンド回路AND1、AND2および1つの2入力のオア回路ORを有する。アンド回路AND1は、接続制御信号CNとクロック信号CLKa1(またはCLKb1)を受け、第1経路P1を介して出力信号をオア回路ORの一方の入力に供給する。アンド回路AND1の出力(すなわち、第1経路P1)は、クロックメッシュCMESHに接続される。
アンド回路AND2は、接続制御信号CNをインバータIVで反転した信号/CNとクロック信号CLKa1(またはCLKb1)を受け、第2経路P2を介して出力信号をオア回路ORの他方の入力に供給する。接続制御信号CNは、第1制御信号の一例であり、接続制御信号CNをインバータIVで反転した信号/CNは、第2制御信号の一例である。
アンド回路AND1は、接続制御信号CNがハイレベルの期間、クロック信号CLKa1(またはCLKb1)をクロックメッシュCMESHに接続された第1経路P1およびオア回路ORを介して論理回路部20に供給する。アンド回路AND2は、接続制御信号CNがロウレベルの期間、クロック信号CLKa1(またはCLKb1)をクロックメッシュCMESHに接続されない第2経路P2およびオア回路ORを介して論理回路部20に供給する。
すなわち、アンド回路AND1、AND2およびオア回路ORは、電源電圧VDDに応じて、クロック信号CLKa1(またはCLKb1)を第1経路P1または第2経路P2に接続するセレクタとして機能する。セレクタは、電源電圧VDDが所定値以下の場合にクロック信号線をクロックメッシュCMESHに接続された第1経路P1に接続し、電源電圧VDDが所定値より高い場合にクロック信号線をクロックメッシュCMESHが接続されない第2経路P2に接続する。
切り替え部18Cは、図3に示した切り替え部18と同様の機能を有する。但し、この実施形態では、クロックメッシュCMESHと論理回路部20のクロックバッファCBUFとの間にCMOSトランスミッションゲート等のスイッチによる抵抗成分が介在せず、クロックメッシュCMESHは、オア回路ORの入力に接続される。このため、図3に示した例に比べて、クロックスキューを小さくできる。
さらに、接続制御信号CNがロウレベルに設定される期間、アンド回路AND1の出力はロウレベルに固定される。このため、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1に接続されない期間に、クロックメッシュCMESHを接地線の電圧を安定化させる容量として機能させることができる。クロックメッシュCMESHがクロック信号線CLKa1、CLKb1に接続されない期間は、電源電圧VDDの値が電圧情報Vmで示す値より高い期間(図7に示したV3またはV4)であり、電源ノイズが発生しやすい。この実施形態では、電源電圧VDDが高い動作モードMD中に、クロックメッシュCMESHを電源安定化容量として使用することで、ノイズ耐性を向上できる。
例えば、回路シミュレーションによる評価では、図6に示したクロック分配部16を有する論理回路部20において、切り替え部が図12に示した18Cである場合、電源電圧VDDがV4の場合の消費エネルギー(クロックメッシュCMESHは切り離し)は、3.66ピコジュール(pJ)である。これに対して、図6に示したクロック分配部16を有する論理回路部20において、図3に示した切り替え部18を有しない場合(電源電圧VDDによらずクロックメッシュCMESHに接続)、電源電圧VDDがV4の場合の消費エネルギーは4.92pJである。したがって、例えば、クロック信号線(CLKa1等)の充放電電流が増加する電源電圧V4において、切り替え部18CによりクロックメッシュCMESHをクロック信号線から切り離すことで、消費エネルギーは約25%削減可能である。
なお、図12に示した切り替え部18Cは、図10に示した切り替え部18の代わりに配置されてもよい。この場合、図10に示した半導体装置100Bと同様に、電源電圧VDDが高い動作モードMDへの切り替えにおいて、クロックスキューによりホールド制約が違反することを避けることができる。
以上、この実施形態においても、図1から図9に示した実施形態と同様の効果を得ることができる。さらに、図3に示した例に比べて、クロックスキューを小さくでき、電源電圧VDDが高い動作モードMD中に、クロックメッシュCMESHを電源安定化容量として使用することで、ノイズ耐性を向上できる。
図13は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図2から図9で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体装置100Dは、図2に示した切り替え部18の代わりに、切り替え部18Dを有する。半導体装置100Dのその他の構成は、図2に示した半導体装置100Aと同様である。すなわち、半導体装置100Dは、図2に示した負荷制御部10、電源管理部12、クロック制御部14、クロック分配部16、クロックメッシュCMESHおよび論理回路部20を有する。半導体装置100Dは、図5と同様の手法で電圧情報Vmが決定され、図6と同様の構成を有する。また、半導体装置100Dの動作モードの遷移は、図7に示される。半導体装置100Dの特性の例は、図8に示され、半導体装置100Dの動作の例は、図9に示される。
切り替え部18Dは、クロック信号線CLKa1、CLKb1毎に3つの2入力のナンド回路NAND1、NAND2、NAND3を有する。ナンド回路NAND1は、接続制御信号CNとクロック信号CLKa1(またはCLKb1)を受け、第1経路P1を介して出力信号をナンド回路NAND3の一方の入力に供給する。ナンド回路NAND1の出力(すなわち、第1経路P1)は、クロックメッシュCMESHに接続される。
ナンド回路NAND2は、接続制御信号CNをインバータIVで反転した信号/CNとクロック信号CLKa1(またはCLKb1)を受け、第2経路P2を介して出力信号をナンド回路NAND3の他方の入力に供給する。接続制御信号CNは、第1制御信号の一例であり、接続制御信号CNをインバータIVで反転した信号/CNは、第2制御信号の一例である。
ナンド回路NAND1は、接続制御信号CNがハイレベルの期間、クロック信号CLKa1(またはCLKb1)をクロックメッシュCMESHに接続された第1経路P1およびナンド回路NAND3を介して論理回路部20に供給する。ナンド回路NAND2は、接続制御信号CNがロウレベルの期間、クロック信号CLKa1(またはCLKb1)をクロックメッシュCMESHに接続されない第2経路P2およびナンド回路NAND3を介して論理回路部20に供給する。
すなわち、ナンド回路NAND1、NAND2、NAND3は、電源電圧VDDに応じて、クロック信号CLKa1(またはCLKb1)を第1経路P1または第2経路P2に接続するセレクタとして機能する。セレクタは、電源電圧VDDが所定値以下の場合にクロック信号線をクロックメッシュCMESHに接続された第1経路P1に接続し、電源電圧VDDが所定値より高い場合にクロック信号線をクロックメッシュCMESHが接続されない第2経路P2に接続する。
切り替え部18Dは、図3に示した切り替え部18と同様の機能を有する。但し、この実施形態では、図12と同様に、クロックメッシュCMESHと論理回路部20のクロックバッファCBUFとの間にCMOSトランスミッションゲート等のスイッチによる抵抗成分が介在せず、クロックメッシュCMESHは、ナンド回路NAND3の入力に接続される。また、図12に示したアンド回路AND1、AND2は、ナンドゲートとインバータを含み、図12に示したオア回路ORは、ノアゲートとインバータを含むが、ナンド回路NAND1、NAND2、NAND3は、ナンドゲートでよい。このため、クロック信号CLKa1、CLKb1が伝達されるトランジスタの段数を図12に比べて少なくでき、OCVの影響を図12に比べて少なくできる。この結果、図3に示した例に比べて、クロックスキューを小さくできる。さらに、ナンド回路NAND1、NAND2、NAND3を有する切り替え部18Dは、図12に示したアンド回路AND1、AND2およびオア回路ORを有する切り替え部18Cに比べて回路面積を小さくできる。
さらに、接続制御信号CNがロウレベルに設定される期間、ナンド回路NAND1の出力はハイレベルに固定される。このため、クロックメッシュCMESHがクロック信号線CLKa1、CLKb1に接続されない期間に、クロックメッシュCMESHを電源線の電圧を安定化させる容量として機能させることができる。クロックメッシュCMESHがクロック信号線CLKa1、CLKb1に接続されない期間は、電源電圧VDDの値が電圧情報Vmで示す値より高い期間(図7に示したV3またはV4)であり、電源ノイズが発生しやすい。この実施形態では、電源電圧VDDが高い動作モードMD中に、クロックメッシュCMESHを電源安定化容量として使用することで、ノイズ耐性を向上できる。
なお、図13に示した切り替え部18Dは、図10に示した切り替え部18の代わりに配置されてもよい。この場合、図10に示した半導体装置100Bと同様に、電源電圧VDDが高い動作モードMDへの切り替えにおいて、クロックスキューによりホールド制約が違反することを避けることができる。
以上、この実施形態においても、図1から図9に示した実施形態と同様の効果を得ることができる。さらに、図3に示した例に比べてクロックスキューを小さくでき、図12に示した例に比べて回路面積を小さくできる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。