以下、本発明の実施の形態について、図面を用いて説明する。
[第1の実施形態]
(半導体システム構成)
図1は、本発明の実施形態の半導体システムの構成を表わす図である。
図1を参照して、この半導体システムは、コントローラ1と、電圧レギュレータ30−1〜30−3と、第1の半導体装置であるCPU25とを備える。
コントローラ1は、ここでは1チップ(1つの半導体チップ)で構成されている。
コントローラ1は、PIN制御部6と、フラッシュメモリ7と、パラメータレジスタ8と、パフォーマンスレジスタ9と、MCU5と、PMBUS(Power Management Bus)インターフェイス10と、SVID(Serial VID)コマンド判定回路12と、ハードロジック電源制御回路13と、アナログ電源制御回路11と、電源異常監視回路2と、入力部152と、出力部153とを備える。
コントローラ1の構成要素のうち、MCU5と、ハードロジック電源制御回路13と、アナログ電源制御回路11と、電源異常監視回路2とで、制御部161を構成する。
SVIDコマンド判定回路12は、SVIDインターフェイス14と、動作モードレジスタ16と、電圧指示値レジスタ18と、パワーステート指示値レジスタ19と、テレメタリレジスタ15とを備える。
入力部152は、電圧レギュレータ30−1〜30−3から出力される電圧が入力される部分である。
別の言い方をすれば、入力部152にはCPUに供給される電源電圧をモニターするためのモニター電圧が入力される。
出力部153は、コントローラ1から電圧レギュレータ30−1〜30−3へ信号を出力する部分である。
CPU25は、ここでは、1チップで構成され、電圧レギュレータ30−1〜30−3から出力される電源電圧を受けて、様々な処理を行なう。また、CPU25は、SVIDインターフェイス14を通じて、コントローラ1に指示を送る。
PIN制御部6は、外部の電位固定部26によって固定された端子の電位に従って、外部端子がどのように設定されたかを表わす設定情報をMCU5に出力する。
フラッシュメモリ7は、MCU5が処理を行なうためのプログラムを格納する。プログラムを用いることによって、電源規格の変更があっても、デバイスを再開発する手間を省くことができる。また、フラッシュメモリ7は、最大許容電圧値、最大許容温度、および最大許容電流などの初期値を定めた複数のパラメータのテーブルを記憶する。
パラメータレジスタ8は、SVIDインターフェイス14を通じて、デジタルステップ制御でのステップごとの電圧値の変化量(刻み電圧)、および放電モードでの下げたい最終電圧である指示電圧と放電モードを指示電圧に達する前に放電モードを終了するときの目標電圧Vsとの差であるΔVの値などを記憶する。
パフォーマンスレジスタ9は、フラッシュメモリ7に記載された最大許容電圧値、最大許容温度、および最大許容電流などのデータ受け取り、記憶する。
ここで、最大許容電圧値は、CPUにかけることが可能な最大の電源電圧である。最大許容温度は、電圧レギュレータなどから測定される温度で動作上許される最高の温度である。最大許容電流は、電圧レギュレータが流すことができる最大の電流である。
これらの値を超えた場合は、コントローラは値を下げるように電圧レギュレータなどに指示信号を出力する。
MCU5は、プログラムに基づいて演算処理を行なう。
PMBUSインターフェイス10は、PMBUSを通じて、外部のシステム制御部27から信号を受けるとともに、外部のシステム制御部27へ信号を出力する。
SVIDインターフェイス14は、シリアル通信線を通じて、CPU25からの信号を受けるとともに、CPU25へ信号を出力する。
動作モードレジスタ16は、現在の動作モードを記憶する。たとえば、動作モードとして、通常モード、放電モードなどがある。
電圧指示値レジスタ18は、電圧制御時の指示電圧の値を記憶する。
パワーステート指示値レジスタ19は、パワーステート制御時のパワーステートモードの指定値を記憶する。
テレメタリレジスタ15は、電圧レギュレータ30−1〜30−3の出力電圧を表わすデジタル電圧値DV、電圧レギュレータ30−1〜30−3内の温度を表わすデジタル電圧値DT、および電圧レギュレータ30−1〜30−3に供給される電流値を表わすデジタル電圧値DIを記憶する。
ハードロジック電源制御回路13は、DACデジタルステップ制御部20と、位相クロック生成部21とを備える。
DACデジタルステップ制御部20は、複数回のステップで指示された電圧に達するように、各ステップでの電圧変化値を決定し、決定した電圧変化値をデジタル電圧DVとして出力する。
位相クロック生成部21は、動作させる電圧レギュレータ30−1〜30−3への制御信号SMODを活性化し、動作させる電圧レギュレータ30−1〜30−3へ位相のクロックを出力する。位相クロック生成部21は、停止させる電圧レギュレータ30−1〜30−3への制御信号SMODを非活性化する。
アナログ電源制御回路11は、DAC(Digital Analog Converter)22と、差動アンプ24と、エラーアンプ23と、ADC(Analog Digital Converter)17とを備える。
DAC22は、DACデジタルステップ制御部20から出力されたデジタル電圧DVをアナログ電圧V1に変換する。
差動アンプ24は、CPU25の高電位側の電圧VSEN1と低電位側の電圧VSEN2の差を増幅して電圧V2を出力する。
エラーアンプ23は、DAC22から出力される電圧V1と、差動アンプ24から出力される電圧V2との差を増幅して、増幅された電圧を指定された電圧と現在のCPU25の電圧との差を表わす電圧として電圧レギュレータ30−1〜30−3へ出力する。
ADC17は、電圧レギュレータ30−1〜30−3の出力電圧などをAD変換する。
電源異常監視回路2は、電圧コンパレータ4と、電源異常監視部3とを備える。
電圧コンパレータ4は、入力部152からアナログ信号で電圧値を受け、所定の標準電圧とをアナログ処理で比較する。
電源異常監視部3は、電圧コンパレータ4の出力に従って、CPU25の電源電圧が異常であるか否かを監視する。
電圧レギュレータ30−1〜30−3は、CPU25に電源電圧を供給する。
ここでは、各電圧レギュレータ30−1〜30−3はそれぞれ、1つのパッケージに収められている。
さらに、ここでは、パッケージ内にハイサイドMOSトランジスタ196、ロウサイドMOSトランジスタ197、その他の部分(PWM(Pulse Width Modulation)部151とMOS制御部198)の3チップで構成されている。
電圧レギュレータ30−1〜30−3は、PWM部151と、DC−DC変換器33とを備える。電圧レギュレータ30−1〜30−3は、制御信号SMODが活性化されると動作し、制御信号SMODが非活性化されると動作を停止する。
PWM部151は、PWM比較器31と、ラッチ回路32とを備える。
PWM比較器31は、エラーアンプ23の出力である誤差信号をもとにPWM信号を出力する。
ラッチ回路32のセット端子Sには、PWM比較器31の出力が入力される。ラッチ回路32のリセット端子Rには、位相クロック生成部21の出力であるクロックが入力される。
DC−DC変換器33は、ラッチ回路32の出力と接続され、CPU25へ電源電圧を供給する。
ここでは、ラッチ回路32から出力されるPWM信号によりDC−DC変換器33が制御される。
図1に示すハイサイドMOSトランジスタ196がオンし、ロウサイドMOSトランジスタ197がオフすることで、CPU25の高電位側のCPU電圧線の電圧VSEN1が上昇する。
他方、ハイサイドMOSトランジスタ196がオフし、ロウサイドMOSトランジスタ197がオンすることで、CPU電圧線の電圧VSEN1が降下する。
通常モードでは、CPU電圧線の電圧VSEN1が一定の電圧になるように、ハイサイドMOSトランジスタ196とロウサイドMOSトランジスタ197のオン/オフが制御される。
つまり、電圧が低い場合はハイサイドMOSトランジスタ196をオンさせて(このときロウサイドMOSトランジスタ197をオフ)電圧を上昇させたり、電圧が高い場合はロウサイドMOSトランジスタ197をオンさせて(このときハイサイドMOSトランジスタ196をオフ)電圧を降下させる。
(放電モード)
放電モードとは、DC−DC変換器33をオフ状態に保ったまま、CPUなどで電荷が放電されていくことで、CPU電圧線の電圧VSEN1を特定の電圧に下げるモードである。
一定電圧になるように、電圧が低い場合はハイサイドMOSトランジスタ196をオンさせて(このときロウサイドMOSトランジスタ197をオフ)電圧を上昇させたり、電圧が高い場合はロウサイドMOSトランジスタ197をオンさせて(このときハイサイドMOSトランジスタ196をオフ)電圧を降下させたりするものではない。つまりDC−DC変換器33のオンおよびオフの両方を組み合わせて一定電圧になるよう制御するものではない。
なお、電圧レギュレータ30をオフ状態にすることで、DC−DC変換器33をオフ状態にしても良い。
放電モードでは、一般に高速な処理は要求されない。
図2は、放電処理の手順を表わすフローチャートである。
図3は、放電処理時での、CPU25の電圧の変化を表わす図である。縦軸が図1に示したCPU電圧線の電圧VSEN1であり、横軸が時間である。
図1、図2および図3を参照して、CPU25は、電圧値Vtを指定した放電指示コマンドをシリアル通信線へ出力する(ステップS101、図1の(1)に示す)。
SVIDインターフェイス14は、シリアル通信線から受信したコマンドを解釈し、MCU5に指示する(ステップS102、図1の(2)に示す)。
MCU5は、放電モードに設定し、位相クロック生成部21に対して、位相クロックの出力を停止するとともに、制御信号SMODを非活性化するように指示する。非活性化された制御信号SMODを受けた電圧レギュレータ30−1〜30−3は、CPU電圧線の電圧の低下に対し電圧を上昇させる動作を停止する(ステップS103、図1の(3)に示す)。
また、電圧レギュレータ30−1〜30−3がオフ状態になるため、ロウサイドMOSトランジスタ197をオン状態とし、CPU電圧線の電圧の低下させる動作も停止する(図3のt1が対応する)。
ADC17は、電圧レギュレータ30−1〜30−3の出力電圧をAD変換して、デジタル電圧値DVをMCU5へ出力する(ステップS104、図1の(4)に示す)。
次に、MCU5は、デジタル電圧値DVと、指示電圧VtよりもΔV(後述する通常モードでの電圧制御での1ステップでの電圧変化量のn倍)だけ高い電圧である目標電圧Vsとを比較する。MCU5は、デジタル電圧値DVが指示電圧VtよりもΔVだけ高い電圧である目標電圧Vs以下になったときに(ステップS105でYES)、放電モードを終了する(図3のt2が対応する)。
ここで、指示電圧Vt以外に目標電圧Vsを設けるのは、指示電圧Vtになった後に、放電モードを終了しようとした場合、その終了指示と次の動作までに時間がかかるため、その間にさらに電圧が低下する可能性が高い。
しかしながら、指示電圧Vtより少し高めの目標電圧Vsに達したことをもとに、放電モードを終了させることで、次の動作の開始時に指示電圧Vtに達するようにすることが可能となる。
MCU5は、指示電圧維持モード(通常モードの一種)に移行するため、ハードロジック電源制御回路13へ指示信号を出す(図1の(5)に示す)。
指示電圧維持モードでは、後述する通常モードの電圧制御と同じ手順で電圧レギュレータ30−1〜30−3の出力電圧が指示電圧Vtになるようにフィードバック制御がなされる(図1の(6)に示すおよび図3のt3が対応)。
つまり、目標電圧に達したことを示す信号が、出力部153から電圧レギュレータ30へ出力され、次にフィードバック制御になる。
新たに電圧を変更するコマンドが入力されるまで(ステップS107)、ステップS106の指示電圧を維持する制御を繰返す。
上述のΔVは、後述する通常モードでの電圧制御での1ステップでの電圧変化量のn倍(nは整数)であって、パラメータレジスタ8に格納される。CPU25は、このΔVの値を変更することによって、電圧Vsの値を変更することができる。
放電指示コマンドが入力された後、CPU25へは、電圧レギュレータ30−1〜30−3より、新たな電荷供給がされないため、CPU25の電圧は開始電圧Viからゆっくりした速度で下降する。図3ではt1が対応する。
指示電圧VtよりもΔVだけ大きい目標電圧Vsになると、指示電圧Vtに達しかつ維持するように、第3の実施形態で説明するようなフィードバック制御によって、CPU25へ電源電圧が供給される。図3では、t2とt3が対応する。
その後、新たに電圧制御コマンドが入力された場合には、新たに指示された電圧、たとえば、図3のVnに達するように、第3の実施形態で説明するようなフィードバック制御によって、CPU25へ電源電圧が供給される。図3ではt4が対応する。
放電モードにおける開始電圧Viと目標電圧Vsとの差と、後述する通常モードにおける開始電圧と指示電圧との差が等しいときには、放電モードにおいて目標電圧Vsに達するまでの時間よりも、通常モードにおいて指示電圧に達するまでの時間の方が短い。
また、一般に論理回路のみで処理機能を実現したものに比べ、プログラムを用いた演算処理を行なうMCU5などを介した処理は、遅くなる傾向にある。
しかしながら、放電モードのように比較的高速な処理を要求されないものに関しては、プログラムを用いた演算処理を行なうMCU5を介して処理を行なうことに適している。
なお、MCUでの処理速度が高速な場合、放電モードのみでなく、通常モードの処理をMCU5で行なっても良い。
また、プログラムを用いて演算処理を行う場合、プログラムやパラメータを変更することで、放電モードの処理特性を容易に変更することできる。
たとえば、システム全体の特性によって、図3に示すt1の電圧降下速度が異なる場合に目標電圧Vsをシステムに応じて容易に変更することができる。
つまり、電圧降下速度が遅い場合に比べ速い場合には、目標電圧Vsをより指定電圧Vtより高い値に設定すればよい。
これにより、放電モードから通常モードに切り替え中(図3のt2)に、電圧降下が進み、指定電圧Vtを下回ることは回避できる。
なお、開始電圧Viと目標電圧Vsとの差より目標電圧Vsと指定電圧Vtとの差の方が小さくなることが望ましい。
開始電圧Viと目標電圧Vsとの差より目標電圧Vsと指定電圧Vtとの差の方が大きいと、開始電圧Viから目標電圧Vsに達する時間が短くなり、制御の高速性が要求されるからである。
また、目標電圧の変更は、例えばコントローラ1の外部端子(図1の電位固定部26に接続される○の部分)から信号を与え、フラッシュメモリ7に目標電圧を書き込めばよい。
別の例では、CPU電圧線の電圧VSEN1を、VSEN1=f(Ar,Bi)のような関数fで示すとする。
ここでArは測定系の抵抗に関係するパラメータ、Biは測定系の電流に関するパラメータである。ArやBiはパラメータとしてフラッシュメモリ7に記憶しておき、MCU5が動作時にパラメータを用いて動作する。
このため、フラッシュメモリ7に記憶するAr,Biを変更することで、VSEN1の関数のパラメータや係数を変えることができる。
また、さらに関数fを他の関数g(Ar,Bi,C)(ここではたとえばCは定数)などに変更したい場合は、関数を変えるため、パラメータとともに、またはパラメータは変更せずにプログラムを変更する。変更するプログラムをフラッシュメモリ7に格納し、このプログラムを演算回路で用いればよい。
もし、この実施の形態と異なりプログラムを用いる演算でない構成で放電モードを実現した場合は、関数が変更になると、論理回路を大きく変更するチップの再設計が必要になってしまう。
以上のように、大きく関数の変更がある場合などにプログラムを用いた演算回路としておくことは、非常に有効である。
さらに、コントローラ1と電圧レギュレータ30を構成するチップは別チップである。
コントローラ1のチップと電圧レギュレータ30を構成するチップの組み合わせは様々であり、そこから得られる関数も組み合わせチップによって変わってくる可能性が高い。
よって、関数の変更が容易なように、プログラムを用いた演算処理を用いることは、安定した動作を確保するためには望ましいと言える。
なお、MCU5などのプログラムで動作する演算装置は、放電モードにおいて、他の動作を処理しない方が望ましい。
これは、他の処理をしている間に、目標電圧Vsに達してしまった場合、その後の処理が遅れるためである。
[第2の実施形態]
第2の実施形態では、テレメタリ動作を説明する。テレメタリ動作とは、CPU25の電圧状態などの状態情報を定期的に調べるものであり、そのデータはコントローラ内に保持される。またCPUはコントローラからそのデータを取り出すことできる。一般にテレメタリ動作は、高速性を要求されない。また、状態情報には、電圧、電流、温度などがある。
図4は、テレメタリ動作時の制御の流れを表わす図である。
図5は、テレメタリ動作の処理手順を表わすフローチャートである。
図4および図5を参照して、ADC17は、μsecオーダごとの第1のタイミングで入力部152から信号を受け、電圧レギュレータ30−1〜30−3の出力電圧をAD変換して、デジタル電圧値DVをMCU5へ出力する。
また、ADC17は、μsecオーダごとの第2のタイミングで入力部152から信号を受け、電圧レギュレータ30−1〜30−3に供給される電流値を表わす電圧値(エラーアンプ23から出力される)をAD変換して、デジタル電圧値DI′をMCU5へ出力する。
また、ADC17は、μsecオーダごとの第3のタイミングで入力部152から信号を受け、電圧レギュレータ30−1〜30−3内の温度チップから出力される温度を表わす電圧値をAD変換して、デジタル電圧値DT′をMCU5へ出力する(ステップS301、図4の(1)に示す)。
次に、MCU5は、テレメタリレジスタ15内に記憶されているデジタル電圧値DVをADC17から受取った最新のものに更新する。
MCU5は、ADC17から受取ったデジタル電圧値DT′をデジタル温度値DTに更新し、テレメタリレジスタ15内に記憶されているデジタル温度値DTを最新のものに更新する。
MCU5は、ADC17から受取ったデジタル電圧値DI′をデジタル電流値DIに更新し、テレメタリレジスタ15内に記憶されているデジタル電流値DIを最新のものに更新する(ステップS302、図4の(2)に示す)。
次に、CPU25は、必要に応じて、テレメタリレジスタ15のデジタル電圧値DV、デジタル電流値DI、および/またはデジタル温度値DTを読出す(ステップS303、図4の(3)に示す)。
このように、電圧レギュレータ30−1〜30−3の情報を定期的に取り込み、MCU5を介して演算処理をしてテレメタリレジスタ15に格納する。
一般に論理回路のみで処理機能を実現したものに比べ、プログラムを用いた演算処理を行なうMCU5などを介した処理は、遅くなる傾向にある。
しかしながら、テレメタリ動作のように比較的高速な処理を要求されないものに関しては、プログラムを用いた演算処理を行なうMCU5などを介して処理を行なうことに適している。
なお、MCUでの処理速度が高速で通常モードの処理をMCU5で行なう場合でも、テレメタリ動作に適用しても良い。
また、プログラムを用いて演算処理を行う場合、プログラムやパラメータを変更することで、テレメタリ動作の特性を容易に変更できる。
たとえば、システムによって管理する温度と実際に実装した場合の温度との間に差が生じることがある。
この場合でも、実装した実情に合わせて温度に関するパラメータ、たとえば最高温度を変更することができる。
これにより、実際の実装に合わせたテレメタリ動作を設定できる。
さらに、ここでの例では、出力電圧、出力電流、温度などの複数を定期的にチェックする例を示した。
この実施の形態では、図6(a)に示すように1つのALU(Arithmetic and Logic Unit)を用いて、各プログラムを実行する。
具体的には出力電圧をチェックする場合は、出力電圧用のプログラムにもとづく演算命令をALUに与えて処理を実行する。つまり、レジスタa,bの値をもとに演算結果をレジスタcへ出力する。
同様に、出力電流をチェックする場合は、出力電流用命令をALUに与え、温度をチェックする場合は温度用命令を与え実行する。
このように、プログラムを用いた演算処理を行なうことで、ALUの数を減らせる。ここでは、3つのプログラムを実行できるため、ALUは1つでよい。一方、この実施の形態と異なり、プログラムを用いた演算回路ではなく、専用の論理回路を用いると、図6(b)に示すように、出力電圧、出力電流、温度にそれぞれに専用の演算回路(演算器)189,188,187が必要となり、面積が増大する。
このように、複数のものを定期的にチェックするには、プログラムを用いた演算回路を介して処理することで、面積を縮小することができる。
また、処理スピードが要求されない場合、各状態情報を時分割で処理することができる。
[第3の実施形態]
第3の実施形態では、SVIDインターフェイスを介した通常の動作を説明する。
通常の動作では、電圧制御、パワーステート制御が行なわれる。
(電圧制御)
図7は、電圧制御動作の制御の流れを表わす図である。
図8は、電圧制御動作の処理手順を表わすフローチャートである。
図7および図8を参照して、CPU25は、電圧値Vtを指定した電圧制御コマンドをシリアル通信線へ出力する(ステップS801、図7の(1)に示す)。
SVIDインターフェイス14は、シリアル通信線から受信したコマンドを解釈し、電圧制御をDACデジタルステップ制御部20に指示する(ステップS802、図7の(2)に示す)。
DACデジタルステップ制御部20は、指示された通常指示電圧Vtを目標値とし、この目標値に達するための、次のステップでのデジタル電圧DVを出力する(ステップS803、図7の(3)に示す)。
DAC22は、デジタル電圧DVをアナログ電圧V1に変換する(ステップS804、図7の(4)に示す)。
差動アンプ24は、CPU25の高電位側の電圧VSEN1と低電位側の電圧VSEN2の差を増幅して電圧V2を出力する(ステップS805、図7の(5)に示す)。
エラーアンプ23は、DAC22から出力される電圧V1と、差動アンプ24から出力される電圧V2との差を増幅して、増幅された電圧を指定された電圧と現在のCPU25の電圧との差を表わす電圧として電圧レギュレータ30−1〜30−3へ出力する(図7の(6)に示す)。電圧レギュレータ30−1〜30−3は、エラーアンプ23から出力される電圧に基づいて、出力する電圧を補正する(ステップS806)。
たとえば、通常指示電圧Vtより高電位側の電圧VSEN1が低い場合は、ハイサイドMOSトランジスタ196がオンすることで、高電位側の電圧VSEN1を上昇させる。
また、通常指示電圧Vtより高電位側の電圧VSEN1が高い場合は、ロウサイドMOSトランジスタ197がオンすることで、高電位側の電圧VSEN1を降下させる。
その後、ステップS803に戻り、処理が繰返される。
これにより、高電位側の電圧VSEN1が通常指示電圧Vtになるように制御される。
このように、ここでの電圧制御動作は、MCU5を介さず、ハードロジック電源制御回路13を介して動作している。
ハードロジック電源制御回路13は、MCU5のようなプログラムを用いた演算回路を介する処理より、一般に速く動作することができる。
つまりこの実施の形態では、比較的処理スピードが要求されない第1の実施形態に示した放電モードもしくは第2の実施形態で示したテレメタリ動作に対しては、MCU5を介した処理を行う。
一方、放電モードやテレメタリ動作に比べ、処理速度が要求される通常モードである電圧制御動作では、MCU5を介さず、ハードロジック電源制御回路13を介して動作する。
これにより、高速な動作を実現できる。
また、MCU5とハードロジック電源制御回路13の両方を設けたことで、たとえばテレメタリ動作と並行して容易に通常モードである電圧制御動作を実行することができる。
なお、MCU5の演算処理スピードが速い場合、放電モードやテレメタリ動作のみでなく、通常モードである電圧制御動作をMCU5を介した処理で行なってもよい。
(パワーステート制御)
パワーステート制御とは、複数の電圧レギュレータのうち動作させる電圧レギュレータ数を設定して制御するものである。
CPUで消費される電流の大小によって、パワーステートモードが切り替えられる。
図9は、パワーステート制御の動作の制御の流れを表わす図である。
図10は、パワーステート制御の動作の処理手順を表わすフローチャートである。
図9および図10を参照して、CPU25は、パワーステート制御コマンドをシリアル通信線へ出力する(ステップS701、図9の(1)に示す)。
SVIDインターフェイス14は、シリアル通信線から受信したコマンドを解釈し、パワーステート制御を位相クロック生成部21に指示する(ステップS702、図9の(2)に示す)。
位相クロック生成部21は、動作させる電圧レギュレータ30−1〜30−3と、動作させる電圧レギュレータ30−1〜30−3への位相クロックの位相を決定する。
たとえば、パワーステートモードに「0」が指定された場合には、これがパワーステート指示値レジスタ19に格納される。位相クロック生成部21は、負荷電流をCPU25に与えるために、複数の動作させる電圧レギュレータ30−1〜30−3の選択と、それらの電圧レギュレータ30−1〜30−3に与えるクロックの位相を決定する。
パワーステートモード「0」が指定される場合は、通常負荷電流が大きく、高精度の電圧の安定性が要求される場合が多い。
このため、高速に定期的に処理される。
また、パワーステートモードに「1」が指定された場合には、これらがパワーステート指示値レジスタ19に格納される。位相クロック生成部21は、電圧レギュレータ30−1〜30−3のうちの動作させる1つの電圧レギュレータを選択し、その電圧レギュレータに与えるクロックの位相を決定する。
パワーステートモード「1」が指定される場合は、通常負荷電流が小さい場合が多い。
このため、定期的に処理されるものの、パワーステートモードに「0」に比べ電圧レギュレーターの消費電力が下がる。
パワーステートモードに「2」が指定された場合には、これらがパワーステート指示値レジスタ19に格納される。位相クロック生成部21は、電圧レギュレータ30−1〜30−3のうちの動作させる1つの電圧レギュレータを選択する。負荷電流を与えるために、指定電圧(これはCPU25によって別のコマンドによってパラメータレジスタ8内に記憶される)以下となったときに動作させる電圧レギュレータへ与えるクロックの位相を決定する(ステップS703、図9の(3)に示す)。
パワーステートモード「2」が指定される場合は、通常パワーステートモード「1」よりもさらに負荷電流が小さい場合が多い。
このため、不定期で電圧降下時のみ処理され、パワーステートモード「1」に比べ電圧レギュレーターの消費電力が下がる。
位相クロック生成部21は、動作させる電圧レギュレータ30−1〜30−3のいずれか1つまたは複数に対し制御信号SMODを活性化し、動作させる電圧レギュレータ30−1〜30−3へ決定された位相のクロックを出力する。電圧レギュレータ30−1〜30−3は、活性化された制御信号SMODを受けると、位相クロック生成部21から送られるクロックに基づいて、電圧を出力する(ステップS704、図9の(3)に示す)。
位相クロック生成部21は、停止させる電圧レギュレータ30−1〜30−3のいずれか1つまたは複数に対し制御信号SMODを非活性化する。電圧レギュレータ30−1〜30−3は、非活性化された制御信号SMODを受けると、電圧の出力を停止する(ステップS705、図9の(3)に示す)。
ここでは、パワーステート制御の動作をハードロジック電源制御回路13を用いた例で示した。
しかしながらたとえば、パワーステートモード「2」のように不定期で電圧降下時のみ処理されるような場合には、MCU5を介した処理で行なってもよい。
[第4の実施形態]
第4の実施形態では、緊急停止動作を説明する。電圧レギュレータ30−1〜30−3の出力電圧が上昇した場合には、緊急に停止させる必要があるので、MCU5を経由せずに停止処理が行なわれる。
図11は、緊急停止動作時の制御の流れを表わす図である。
図12は、緊急停止動作の処理手順を表わすフローチャートである。
電圧コンパレータ4は、電圧レギュレータからのアナログ電圧値AVを受け取る。電圧コンパレータ4は、予め記憶している電圧閾値とアナログ信号値とを比較する(ステップS201)。
電源異常監視部3は、アナログ電圧値AVが電圧閾値よりも大きいときには(ステップS202でYES)、位相クロック生成部21へ電圧の異常を知らせる(図11の(2)に示す)。位相クロック生成部21は、位相クロックの出力を停止するとともに、制御信号SMODをネゲートする。ネゲートの制御信号SMODを受けた電圧レギュレータ30−1〜30−3は、電源供給を停止する(ステップS203、図11の(3)に示す)。
さらに、電源異常監視部3は、外部に対して、半導体システムの停止を要求するShutdown信号を出力する(ステップS204、図11の(4)に示す)。
このように、緊急停止動作時には、電圧レギュレータから受けるアナログ信号をデジタル信号に変換せずに、電圧コンパレータでアナログ信号の比較処理を行う。
このため、アナログ信号からデジタル信号に変えて比較するものに比べて、異常検知時間が短縮でき、高速に動作できる。
さらに第1、第2、第3の実施の形態との組み合わせで考えてみる。
放電モードでは、MCUを介した処理を行い、緊急停止動作時にはMCUを介さず、アナログ信号入力で可能な電圧コンパレータで高速処理が可能である。
また、テレメタリ動作では、MCUを介した処理を行い、緊急停止動作時にはMCUを介さず、アナログ信号入力で可能な電圧コンパレータで高速処理が可能である。
さらに、通常モードでは、ハードロジック電源制御回路13により処理をするが、緊急停止動作時には、別途設けたアナログ信号用電圧コンパレータで処理することにより、通常モードとは独立して、緊急停止動作に対応できる。
上記説明では2つの動作を組み合わせで説明したが、3つ以上も動作を組み合わせても良い。
[第4の実施形態の変形例]
本発明の実施形態では、電源異常監視部3は、アナログ電圧値AVが電圧閾値よりも大きいときには、位相クロック生成部21へ電圧の異常を知らせるとともに、外部に対して半導体システムの停止を要求したが、これに限定するものではない。
たとえば、電源異常監視部3は、アナログ電圧値AVが電圧閾値よりも大きいときに、MCU5に対して、その旨を通知する信号を出力する。MCU5は、プログラムに基づいて、位相クロック生成部21に対して、位相クロックの出力を停止させ、制御信号SMODをネゲートさせるとともに、コントローラ1内の各構成要素を停止させる。
この場合、MCU5を介した処理になるため、MCU5を介さない電源異常監視部3から直接、位相クロック生成部21へ指示するものに比べ、処理が遅れる可能性がある。
MCU5を介することで、コントローラ1内の各構成要素を停止することもできる。
たとえば、コントローラ1への各信号や電源の入力、各信号の出力を止めることが容易となる。
また、電源異常監視部3は、位相クロック生成部21とMCU5に並行して緊急停止指示の信号を出力しても良い。
これにより、位相クロック生成部21には早急に指示ができ、他の部分には並行に指示ができるようになる。
また、電源異常監視部3は、アナログ電圧値AVが電圧閾値よりも大きいときには、外部に対して半導体システムの停止を要求するShutdown信号を出力したが、異常を検知したことを知らせるFault信号を出力するものとしてもよい。
つまり、半導体システムの停止を要求しないで、異常を知らせ、システム側で異常の内容によって停止するか否か判断しても良い。
[第5の実施形態]
第5の実施形態は、PMBUSを通じた制御を説明する。
PMBUSを通じた通信は、SVIDによる通信と同様に、電源電圧制御、パワーステート制御、テレメタリなどの機能を実行するためのコマンドが整備されている。ただし、PMBUSでは、SVIDよりも、低速の通信が行なわれる。PMBUSを通じた指令は高速な応答速度を要求したものではないため、MCU5を経由して電源電圧が制御される。
(電圧制御)
図13は、PMBUSを介した命令を実行するための制御の流れを表わす図である。
図14は、PMBUSを介した命令を実行する手順を表わすフローチャートである。
図13および図14を参照して、システム制御部27は、電圧値Vtを指示した電圧制御コマンドをPMBUSへ出力する(ステップS401、図13の(1)に示す)。
PMBUSインターフェイス10は、PMBUSから受信したコマンドを解釈し、電圧制御をMCU5に指示する(ステップS402、図13の(2)に示す)。MCU5は、電圧制御をDACデジタルステップ制御部20に指示する(図13の(3)に示す)
DACデジタルステップ制御部20は、指示された通常指示電圧Vtを目標値とし、この目標値に達するための、次のステップでのデジタル電圧DVを出力する(ステップS403、図13の(4)に示す)。
DAC22は、デジタル電圧DVをアナログ電圧V1に変換する(ステップS404、図13の(5)に示す)。
差動アンプ24は、CPU25の高電位側の電圧VSEN1と低電位側の電圧VSEN2の差を増幅して電圧V2を出力する(ステップS405、図13の(6)に示す)。
エラーアンプ23は、DAC22から出力される電圧V1と、差動アンプ24から出力される電圧V2との差を増幅して、増幅された電圧を指定された電圧と現在のCPU25の電圧との差を表わす電圧として電圧レギュレータ30−1〜30−3へ出力する(図13の(7)に示す)。電圧レギュレータ30−1〜30−3は、エラーアンプ23から出力される電圧に基づいて、出力する電圧を補正する(ステップS406)。
たとえば、通常指示電圧Vtより高電位側の電圧VSEN1が低い場合は、ハイサイドMOSトランジスタ196がオンすることで、高電位側の電圧VSEN1を上昇させる。
また、通常指示電圧Vtより高電位側の電圧VSEN1が高い場合は、ロウサイドMOSトランジスタ197がオンすることで、高電位側の電圧VSEN1を降下させる。
その後、ステップS403に戻り、処理が繰返される。
これにより、高電位側の電圧VSEN1が通常指示電圧Vtになるように制御される。
このように、ここでの電圧制御動作は、MCU5とハードロジック電源制御回路13の両方を介して動作している。
PMBUSを通じた電圧制御である電圧から指示電圧Vtになるまでの時間よりも、第3の実施形態で説明したSVIDを通じた電圧制御でそのある電圧から指示電圧Vtとなるまでの時間の方が短くなる傾向にある。これは、SVIDを通じた電圧制御は、MCU5を介さず、ハードロジック電源制御回路13を介して行なわれるが、PMBUSを通じた電圧制御は、MCU5とハードロジック電源制御回路13の両方を介して行なわれるためである。
しかしながら、MCU5での演算処理速度が速くなると、同じ程度とすることもできる。
(テレメタリ動作)
図15は、テレメタリ動作時の制御の流れを表わす図である。
図16は、テレメタリ動作の処理手順を表わすフローチャートである。
図15および図16を参照して、ADC17は、μsecオーダごとの第1のタイミングで、電圧レギュレータ30−1〜30−3の出力電圧をAD変換して、デジタル電圧値DVをMCU5へ出力する(ステップS501、図15の(1)に示す)。
また、ADC17は、μsecオーダごとの第2のタイミングで、電圧レギュレータ30−1〜30−3内の温度チップから出力される温度を表わす電圧値をAD変換して、デジタル電圧値DT′をMCU5へ出力する。
また、ADC17は、μsecオーダごとの第2のタイミングで、電圧レギュレータ30−1〜30−3に供給される電流値を表わす電圧値をAD変換して、デジタル電圧値DI′をMCU5へ出力する。
また、ADC17は、μsecオーダごとの第3のタイミングで、電圧レギュレータ30−1〜30−3内の温度チップから出力される温度を表わす電圧値をAD変換して、デジタル電圧値DT′をMCU5へ出力する(ステップS501、図15の(1)に示す)。
次に、MCU5は、デジタル電圧値DV′を最新のデジタル電圧値DVとしてPMBUSインターフェイス10へ出力する。
MCU5は、デジタル電流値DI′を最新のデジタル電流値DIとしてPMBUSインターフェイス10へ出力する。
MCU5は、デジタル温度値DT′を最新のデジタル温度値DTとしてPMBUSインターフェイス10へ出力する(ステップS502、図15の(2)に示す)。
次に、システム制御部27は、PMBUSインターフェイス10を通じてデジタル電圧値DV、デジタル電流値DI、および/またはデジタル温度値DTを受ける(ステップS503、図15の(3)に示す)。
以上のように、本実施の形態では、PMBUSインターフェイスなどの高速性が高くは要求されていない通信方式では、通常動作である電圧制御動作およびテレメタリ動作をMCUを介した処理で行なうものである。
また、別の見方をすると、2つの通信方式または、2つの外部からの制御方式(インターフェイス)によって動作可能なコントローラである場合、その通信方式に要求される速度に応じて、MCUの使い方を分けても良い。
たとえば、SVIDインターフェイス(高速通信方式)よりも低速な処理が許容されるPMBUSインターフェイス(低速通信方式)では、通常動作である電圧制御動作およびテレメタリ動作をMCUを介した処理で行なう。
これに対し、SVIDインターフェイスでは、通常動作である電圧制御動作は、MCUを介さずハードロジック回路で処理し、テレメタリ動作をMCUを介して処理する。
このように、通信速度の方式に応じて、MCUの使用率を分けても良い。つまり、高速性が要求されるインターフェイスほど、MCUの使用率を下げても良い。
なお、MCUでの演算処理速度の高速化が進んだ場合は、インターフェイスごとにMCUの使用率を変更しなくても良いと言える。
[第6の実施形態]
第6の実施形態は、DSPによって差分を計算する構成について説明する。
図17は、第6の実施形態の半導体システムの構成を表わす図である。
図17の構成が、図1の構成と相違する点は、以下である。
図17のコントローラ61は、DSPを備え、エラーアンプ23の代りにADC63を備える。
第1の実施形態では、増幅器から出力される電圧と、DACデジタルステップ制御部20から出力される電圧との差分(エラー)をデジタルで計算していたのに対して、本実施の形態では、差動アンプ24から出力される電圧と、DACデジタルステップ制御部20から出力される電圧との差分(エラー)をデジタルで計算する。
DACデジタルステップ制御部20のデジタル電圧V1は、DSP62に送られる。一方、差動アンプ24から出力されるアナログ電圧は、ADC63に送られる。ADC63は、入力されたアナログの電圧をデジタル値V2に変換する。
DSP62は、デジタル電圧V1とデジタル電圧V2を受けて、(V2−V1)の電圧値をDAC22に出力する。DAC22は、入力された電圧値(V2−V1)をアナログ電圧に変換する。
このように、DAC22を用いて、差分を計算するので、エラーアンプ23で差分を計算するのと比べて、規格や設計の変更などに柔軟に対応できる。
[第7の実施形態]
第7の実施形態は、MCU5とハードロジック電源制御回路をDSPに置き換えた構成について説明する。
図18は、第7の実施形態の半導体システムの構成を表わす図である。
図18の構成が、図1の構成と相違する点は、以下である。
図18のコントローラ51は、第1の実施形態のMCU5と、DACデジタルステップ制御部と、位相クロック生成部21の機能を1つのDSP52が受け持つ。
DSP52では、電源制御専用のコマンドに限定処理が行なわれるので、MCU5に比べて、回路規模も小さくできるとともに、MCU5に比べて高速に処理が行なわれる。また、DSPは、可変性を有するので、ハードロジックに比べて、規格や設計の変更などに柔軟に対応できる。
この例では、DSPが通常動作である電圧制御および、放電動作やテレメタリ動作を処理するものである。
なお、通常動作である電圧制御をDSPを介さずハードロジック回路で実現し、放電動作やテレメタリ動作をDSPで処理しても良い。
[第8の実施形態]
図19は、第8の実施形態の半導体システムの構成を表わす図である。
図19の構成が、図1の構成と相違する点は、以下である。
すなわち、第8の実施形態では、個々の電圧レギュレータ30−1〜30−3がPWM部151を有するのではなく、コントローラ71が、PWM部72を有する。つまり1チップの中にPWM部72が構成される。これによって、電圧レギュレータ73−1〜73−3が個別にPWM部を備える必要がなくなる。
このPWM部72の構成は、図1の第1の実施形態のPWM部の構成と同じであるので、説明は繰返さない。
[第9の実施形態]
第9の実施形態は、プログラムを格納する以外のフラッシュメモリの使用例を説明する。
図20は、パラメータ設定時の制御の流れを表わす図である。
図21は、パラメータ設定の処理手順を表わすフローチャートである。
図20および図21を参照して、電位固定部26は、コントローラの外部端子の電圧を設定する。たとえば、外部端子が複数ある場合には、各端子をLowレベルまたはHighレベルに設定する(ステップS601、図20の(1)に示す)。
次に、PIN制御部6は、外部端子がどのように設定されたかを表わす設定情報をMCU5に出力する(ステップS602、図20の(2)に示す)。
MCU5は、受取った設定情報に基づいて、フラッシュメモリ7内のテーブルを選択する。図22は、テーブルの例を表わす。図22に示すように、テーブル0〜テーブル3には、それぞれ、最大許容電圧値、最大許容温度、および最大許容電流の初期値が定められている。たとえば、MCU5は、外部端子が2つある場合には、各端子をLowレベルまたはHighレベルに設定することによって、4個のテーブルの中から1つを選択する(ステップS603、図20の(3)に示す)。
MCU5は、選択したテーブルの内容をパフォーマンスレジスタ9に格納する。このパラメータの値は、CPU25またはシステム制御部27によって更新が可能である(ステップS604、図20の(4)に示す)。
各構成要素が、パフォーマンスレジスタ9に格納されたパラメータを参照して、処理を行なう。たとえば、電源異常監視部3は、最大電流許容値、最大温度許容値、最大電圧許容値、または下限電圧許容値などのパラメータと、検出した電流、温度、電圧とを比較することによって、電源異常を監視する(ステップS605、図20の(5)に示す)。
[第10の実施形態]
第10の実施形態では、チップ内におけるコントローラ1を搭載する構成要素の配置を説明する。
図23は、本発明の実施形態におけるコントローラ1内の構成要素の配置を表わす図である。
チップの周辺に並べられた四角はそれぞれ電極パッド199を示す。
図23を参照して、アナログ電源制御回路11内には、DAC22などの高精度を要求する回路が搭載されているため、アナログ電源制御回路11は、電源ラインの変動による特性悪化を極力防止する必要がある。
一方、フラッシュメモリ7内には、データのライトまたはリード時に動作するチャージポンプ回路を搭載している。そのため、データのライトまたはリード時に消費電流量の変動が激しく、電源ラインにノイズがのりやすい。
したがって、アナログ電源制御回路11の電源ラインが、フラッシュメモリ7によって干渉を受けないように、図23に示すように、本実施の形態では、アナログ電源制御回路11と、フラッシュメモリ7とを可能な限り離れた位置に配置する。
さらに、本実施の形態では、アナログ電源制御回路11と、フラッシュメモリ7との間にノイズの影響を受けにくいロジック回路およびSRAM92を配置する。これは、MCU5およびその周辺機能のデジタル機能モジュールを構成するロジック部分は、システムクロックによる同期設計が行われていることを考慮したものである。ロジック部分では、ノイズの影響は、クロックエッジによるデータ取り込みの短いタイミングだけであり、さらにノイズの影響を考慮した電圧低下およびクロストーク対策が実施されている。それゆえ、本実施の形態では、アナログ電源制御回路11およびフラッシュメモリ7との間のノイズが発生しやすい箇所に、ノイズ耐性のあるロジック部分を配置する。
また、本実施の形態では、半導体チップ1の輪郭のある辺に沿ってアナログ電源制御回路11を配置し、半導体チップ1の輪郭の別の辺(好ましくは対向する辺)にフラッシュメモリ7が配置される。
これによって、アナログ電源制御回路11に接続する電極パッド199である入出力端子と、アナログ電源制御回路11に接続する電極パッドである入出力端子とを別々にすることができるので、相互のノイズによる干渉を低減することができる。
以上、第1の実施の形態〜第10の実施形態を例に説明したが、これらの実施の形態を適宜組み合わせや、ある実施の形態と他の実施の形態の一部を組み合わせても良い。
また、パラメータやプログラムの記憶をフラッシュメモリ7に記憶する例を示したが、その他の不揮発性メモリ、たとえば、ROMやMRAMなどでも良い。