以下において本発明の半導体装置を適用した実施の形態について説明する前に、図1を用いて、前提技術による半導体装置について説明する。
図1は、前提技術による半導体装置1を示す図である。
半導体装置1は、入力端子1A、セレクタ10、PLL(Phase Locked Loop:位相同期回路)20、レギュレータ30、PMU(Power Management Unit:パワーマネジメントユニット)40、バッファ50、CPU(Central Processing Unit:中央演算処理装置)60、周辺回路71、72、73を含む。
入力端子1Aは、基準クロック(reference clk)が入力される端子であり、例えば、水晶発振器に接続される。入力端子1Aに入力されるクロックは、半導体装置1の動作に用いられる。
セレクタ10は、一対の入力端子の一方にPLL20の出力端子が接続され、他方に入力端子1Aが接続される。セレクタ10の選択信号入力端子にはPMU40から動作クロック選択信号(Operation Clock Select Signal)が入力される。また、セレクタ10の出力端子は、複数のバッファ50の初段の入力端子に接続されている。
セレクタ10は、選択信号入力端子に入力される動作クロック選択信号に基づき、PLL20から入力されるクロック、又は、入力端子1Aから入力されるクロックの一方を選択し、ソースクロック(source clock)として出力する。
セレクタ10は、選択信号入力端子に入力される動作クロック選択信号が'1'(High)であるときはPLL20から入力されるクロックを選択し、選択信号入力端子に入力される動作クロック選択信号が'0'(Low)であるときは入力端子1Aから入力されるクロックを選択する。
PLL20は、自己の入力端子が入力端子1Aに接続され、出力端子がセレクタ10の片方の入力端子に接続されている。また、PLL20には、PMU40からイネーブル信号(PLL Enable Signal)が入力される。PLL20は、PMU40から入力されるイネーブル信号により、オン又はオフが切り替えられる。
レギュレータ30は、図示しない直流電源に接続されており、直流電源から供給される直流電力の電圧値を降圧した直流電力を出力する。レギュレータ30は、セレクタ10、PLL20、PMU40、バッファ50、CPU60、周辺回路71、72、73に直流電力を供給する。
また、レギュレータ30は、PMU40から入力されるモード制御信号(Regulator mode Control Signal)に基づき、動作状態が切り替えられる。レギュレータ30の動作状態は、モード制御信号により、通常モード又はスタンバイモードに設定される。
PMU40は、半導体装置1の電力を管理する装置である。PMU40は、PLL20とレギュレータ30にイネーブル信号(PLL Enable Signal)とモード制御信号(Regulator mode Control Signal)をそれぞれ入力する。また、PMU40は、CPU60にモード制御信号(CPU Mode Control Signal)を入力する。PMU40がCPU60に入力するモード制御信号は、CPU60のオン/オフを表す。
バッファ50は、セレクタ10の出力端子に初段のバッファ50の入力端子が接続されている。初段のバッファ50の出力端子は、2つの2段目のバッファ50の入力端子に接続されており、2つの2段目のバッファ50の出力端子は、それぞれ、2つの3段目のバッファ50に接続されている。3段目のバッファ50は4つあり、それぞれに複数のバッファ50が直列に接続されることにより、4本のクロック伝送路が形成されている。
図1において最も上側に位置するクロック伝送路には、CPU60が接続されている。また、上側から2番目、3番目、4番目のクロックの伝送路には、それぞれ、周辺回路71、72、73が接続されている。CPU60、周辺回路71、72、73には、複数のバッファ50を介して、セレクタ10から出力されるクロックが入力される。
CPU60は、バッファ50から入力されるクロックに基づいて動作し、所定の処理を行う。CPU60は、レジスタアクセスバスを介して周辺回路71、72、73に接続されている。CPU60は、レジスタアクセスバスを介して、周辺回路71、72、73の内部のレジスタにアクセスすることができる。
周辺回路71、72、73は、CPU60の周辺に位置する回路であり、例えば、通信用のインターフェース回路等である。周辺回路71、72、73が通信用のインターフェース回路である場合は、例えば、CAN(Controller Area Network)、I2C(I-squared C: Inter Integrated Circuit)等のバスに接続されるインターフェース回路であればよい。
また、周辺回路71、72、73は、例えば、タイマー、ADC(Analog to Digital Converter)、DAC(Digital to Analog Conveter)等であってもよい。
以上のような半導体装置1では、PMU40からセレクタ10に入力される動作クロック選択信号に応じて選択されるクロックが、CPU60、周辺回路71、72、73の動作状態によらずに、バッファ50を介してCPU60、周辺回路71、72、73に供給される。すなわち、CPU60、周辺回路71、72、73には、それぞれの動作状態によらずに、常にクロックが供給される。
以下の実施の形態では、前提技術の半導体装置1よりも消費電力を低減した半導体装置を提供する。以下、本発明の半導体装置を適用した実施の形態について説明する。
<実施の形態>
図2は、実施の形態の半導体装置100を示す図である。なお、以下では、前提技術の半導体装置1の構成要素と同様の構成要素には同一符号を付し、その説明を省略する。
半導体装置100は、入力端子1A、セレクタ10、PLL20、レギュレータ30、PMU40、バッファ50、及び周辺回路71、72、73を含む。
また、半導体装置100は、さらに、バッファ回路110A、110B、110C、110D、110E、110F、110G、スイッチ回路130A、130B、130C、130D、制御部150、及びCPU160を含む。
半導体装置100は、例えば、一つのシリコン基板に、PMOS(P-channel Metal Oxide Semiconductor)トランジスタとNMOS(N-channel Metal Oxide Semiconductor)トランジスタを形成することにより、一つのチップとして実現することができる。半導体装置100は、図2に示す構成要素の他に、さらに別の構成要素(例えば、RAM(Random Access Memory)又はフラッシュメモリ等)を含んでいてもよい。
以下では、説明の便宜上、バッファ回路110A〜110Gの動作を説明する際に、バッファ回路110A〜110Gをそれぞれ記号BUF1〜BUF7で示す場合がある。同様に、スイッチ回路130A〜130Dをそれぞれ記号SWITCH1〜SWITCH4で示す場合がある。
なお、図2に示す通り、半導体装置100に含まれるバッファ50は、前提技術の半導体装置1に含まれるバッファ50のうち、4段目以降に対応するバッファ50である。バッファ50は、前提技術の半導体装置1に含まれる4段目以降のバッファ50と同様に、4本のクロック伝送路を構築している。ここでは、上側から順番に、クロック伝送路55A、55B、55C、55Dと称す。
バッファ回路110Aの入力端子は、セレクタ10の出力端子に接続される。バッファ回路110Aには、PMU40からセレクタ10に入力される動作クロック選択信号(Operation Clock Select Signal)によって選択されるクロックが入力される。
セレクタ10の選択信号入力端子に入力される動作クロック選択信号が'1'(High)であるときはPLL20から入力されるクロックがバッファ回路110Aに入力される。また、セレクタ10の選択信号入力端子に入力される動作クロック選択信号が'0'(Low)であるときは入力端子1Aから入力されるクロックがバッファ回路110Aに入力される。
バッファ回路110Aの出力端子には、バッファ回路110B及び110Cが接続されているため、バッファ回路110Aから出力されるクロックは、バッファ回路110B及び110Cに入力される。
バッファ回路110Aは、クロックを出力する駆動力を調整することができるバッファ回路の一例である。バッファ回路110Aの駆動力は、制御部150から入力される制御信号bufcon1によって調整される。バッファ回路110Aの詳細については後述する。
バッファ回路110B及び110Cの入力端子は、ともにバッファ回路110Aの出力端子に接続される。バッファ回路110Bの出力端子は、バッファ回路110D及び110Eの入力端子に接続される。バッファ回路110Cの出力端子は、バッファ回路110F及び110Gの入力端子に接続される。
バッファ回路110Bから出力されるクロックは、バッファ回路110D及び110Eに入力される。バッファ回路110Cから出力されるクロックは、バッファ回路110F及び110Gに入力される。
バッファ回路110B及び110Cは、それぞれ、クロックを出力する駆動力を調整することができるバッファ回路の一例である。バッファ回路110B及び110Cの駆動力は、それぞれ、制御部150から入力される制御信号bufcon2及びbufcon3によって調整される。バッファ回路110B及び110Cの詳細については後述する。
バッファ回路110D及び110Eの入力端子は、ともにバッファ回路110Bの出力端子に接続される。バッファ回路110Dの出力端子は、スイッチ回路130Aに接続される。バッファ回路110Eの出力端子は、スイッチ回路130Bに接続される。
バッファ回路110D及び110Eは、それぞれ、クロックを出力する駆動力を調整することができるバッファ回路の一例である。バッファ回路110D及び110Eの駆動力は、それぞれ、制御部150から入力される制御信号bufcon4及びbufcon5によって調整される。バッファ回路110D及び110Eの詳細については後述する。
バッファ回路110F及び110Gの入力端子は、ともにバッファ回路110Cの出力端子に接続される。バッファ回路110Fの出力端子は、スイッチ回路130Cに接続される。バッファ回路110Gの出力端子は、スイッチ回路130Dに接続される。
バッファ回路110F及び110Gは、それぞれ、クロックを出力する駆動力を調整することができるバッファ回路の一例である。バッファ回路110F及び110Gの駆動力は、それぞれ、制御部150から入力される制御信号bufcon6及びbufcon7によって調整される。バッファ回路110F及び110Gの詳細については後述する。
スイッチ回路130Aは、バッファ回路110Dとクロック伝送路55Aとの間に直列に挿入されるスイッチ回路の一例である。スイッチ回路130Aは、例えば、トランスファーゲートによって実現される。スイッチ回路130Aは、制御部150から入力される制御信号switchcon1によってオン/オフの切り替えが行われる。
スイッチ回路130Aは、オンのときはバッファ回路110Dの出力端子とクロック伝送路55Aとの間を導通させるため、バッファ回路110Dから伝送されるクロックをそのまま出力する。スイッチ回路130Aは、オフのときはバッファ回路110Dの出力端子とクロック伝送路55Aとの間を遮断するため、バッファ回路110Dから伝送されるクロックを出力しない。
スイッチ回路130B〜130Dは、それぞれ、バッファ回路110E、110F、110Gとクロック伝送路55B、55C、55Dとの間に直列に挿入されるスイッチ回路の一例である。スイッチ回路130B〜130Dは、それぞれ、スイッチ回路130Aと同様に、例えば、トランスファーゲートによって実現される。
スイッチ回路130B〜130Dは、それぞれ、制御部150から入力される制御信号switchcon2、switchcon3、switchcon4によってオン/オフの切り替えが行われる。スイッチ回路130B〜130Dの動作は、スイッチ回路130Aの動作と同様である。
すなわち、スイッチ回路130B〜130Dは、それぞれ、オンのときはバッファ回路110E〜110Gの出力端子とクロック伝送路55B〜55Dとの間を導通させる。また、スイッチ回路130B〜130Dは、それぞれ、オフのときはバッファ回路110E〜110Gの出力端子とクロック伝送路55B〜55Dとの間を遮断する。
制御部150は、バッファ回路110A〜110Gの駆動力の調整と、スイッチ回路130A〜130Dのオン/オフの切替制御とを行う制御部の一例である。
制御部150には、PMU40からイネーブル信号(PLL Enable Signal)とモード制御信号(Regulator mode Control Signal)が入力され、周辺回路71、72、73から制御信号1〜3が入力され、レジスタアクセスバスを介してCPU160からコマンドが入力される。
制御部150は、イネーブル信号(PLL Enable Signal)、モード制御信号(Regulator mode Control Signal)、制御信号1〜3、及び、CPU160から入力されるコマンドに基づき、バッファ回路110A〜110Gの駆動力の調整と、スイッチ回路130A〜130Dのオン/オフの切替制御とを行う。
CPU160は、半導体装置100の駆動状態を切り替えるための制御処理を行う。CPU160は、レジスタアクセスバス(Register Access Bus)161を介して、周辺回路71、72、73と、制御部150とに接続されている。CPU160は、半導体装置100の駆動状態を切り替える際に、周辺回路71、72、73と制御部150にレジスタアクセスバス161を介してコマンドを送信する。
ここで、周辺回路71、72、73は、レジスタを内蔵しており、CPU160がレジスタへのデータの書き込みを行う際に、CPU160からライトコマンド(Enable Write Access)を受信すると、それぞれ、制御信号1〜3を制御部150に出力する。制御部150は、制御信号1〜3に基づいて次の動作状態を検知し、バッファ回路110A〜110Gの駆動力の調整と、スイッチ回路130A〜130Dのオン/オフの切替制御とを行う。
また、CPU160は、バス162を介してPMU40と接続されている。CPU160は、動作状態を切り替える際に、セレクタ10、PLL20、レギュレータ30の動作状態を切り替える必要があるときは、その旨を表すコマンドをバス162を介してPMU40に入力する。
PMU40は、CPU160からコマンドを受信すると、コマンドの内容に応じて、動作クロック選択信号(Operation Clock Select Signal)、イネーブル信号(PLL Enable Signal)、又はモード制御信号(Regulator mode Control Signal)を出力する。
なお、図2には、バッファ回路110D〜110Gと、クロック伝送路55A〜55Dとの間にそれぞれスイッチ回路130A〜130Dを挿入した回路構成を示すが、スイッチ回路130A〜130Dと同様のスイッチをバッファ回路110A、110B、110Cの出力側にも挿入してもよい。
すなわち、バッファ回路110Aの出力端子と、バッファ回路110B及び110Cの入力端子との間に、スイッチ回路130A〜130Dと同様のスイッチを挿入してもよい。バッファ回路110Bの出力端子と、バッファ回路110D及び110Eの入力端子との間に、スイッチ回路130A〜130Dと同様のスイッチを挿入してもよい。また、バッファ回路110Cの出力端子と、バッファ回路110F及び110Gの入力端子との間に、スイッチ回路130A〜130Dと同様のスイッチを挿入してもよい。
次に、バッファ回路110A〜110Gとスイッチ回路130A〜130Dの回路構成について説明する。バッファ回路110A〜110Gは同様の回路構成を有するため、バッファ回路110A〜110Gを特に区別しない場合は、単にバッファ回路110と称す。また、スイッチ回路130A〜130Dは同様の回路構成を有するため、スイッチ回路130A〜130Dを特に区別しない場合には、単にスイッチ回路130と称す。
また、制御部150から出力される制御信号bufcon1〜bufcon7を特に区別しない場合は、単に制御信号bufconと称す。また、制御部150から出力される制御信号switchcon1〜switchcon4を特に区別しない場合は、単に制御信号switchconと称す。
図3は、実施の形態の半導体装置100に含まれるバッファ回路110とスイッチ回路130を示す図である。図4は、バッファ回路110とスイッチ回路130の真理値表を示す図である。
図3に示すバッファ回路110とスイッチ回路130は、図2に示すバッファ回路110D〜110Gとスイッチ回路130A〜130Dとの各対に対応する。また、上述のように、バッファ回路110A〜110Cの出力側にスイッチ回路130A〜130Dと同様のスイッチを挿入する場合は、図3に示すバッファ回路110とスイッチ回路130は、バッファ回路110A〜110Cと、出力側のスイッチとの各対に対応する。
図3に示すように、バッファ回路110は、入力端子111、出力端子112、信号入力端子113A、113B、インバータ114A、114B、NOR回路115A、115B、及びインバータ116A、116Bを含む。
バッファ回路110は、さらに、NAND回路117A、117B、インバータ118A、118B、及びインバータ120A、120B、120Cを含む。
なお、以下では、説明の便宜上、NOR回路115A、115B、及び、NAND回路117A、117Bの各一対の入力端子については、図3中において上側にある端子を一方の端子と称し、下側にある端子を他方の端子と称す。
入力端子111は、クロックが入力される端子である。入力端子111は、バッファ回路110の内部では、インバータ120AのPMOS(P-channel Metal Oxide Semiconductor)トランジスタ121Aのゲート、NMOS(N-channel Metal Oxide Semiconductor)トランジスタ122Aのゲート、NOR回路115A、115Bの他方の入力端子、及び、NAND回路117A、117Bの一方の入力端子に接続されている。
なお、図4(A)の真理値表では、入力端子111に入力されるクロックの信号レベルをAで表す。
出力端子112は、インバータ120A、120B、120Cの出力端子に接続されており、インバータ120A、120B、120Cで反転されるクロックを出力する端子である。バッファ回路110は、クロックの駆動力を小(Small)、中(Medium)、大(Large)のいずれかに設定することができるため、出力端子112からは、3段階の駆動力のうちのいずれかの駆動力によるクロックが出力される。
なお、図4(A)の真理値表では、出力端子112から出力されるクロックの信号レベルをOUTで表す。
信号入力端子113A、113Bは、制御部150から制御信号bufconが入力される端子である。制御信号bufconは2ビットであり、信号入力端子113A、113Bにそれぞれのビット値を表す信号が入力される。
信号入力端子113Aは、インバータ114Aの入力端子、及び、NOR回路115Aの一方の入力端子に接続されている。同様に、信号入力端子113Bは、インバータ114Bの入力端子、及び、NOR回路115Bの一方の入力端子に接続されている。
なお、図4(A)の真理値表では、信号入力端子113A、113Bに入力される制御信号bufconのビット値をそれぞれ、C1、C2で表す。
インバータ114A、114Bは、それぞれ、自己の入力端子が信号入力端子113A、113Bに接続され、自己の出力端子がNAND回路117A、117Bの一方の入力端子に接続されている。
NOR回路115A、115Bは、それぞれ、自己の一方の入力端子が信号入力端子113A、113Bに接続され、自己の他方の入力端子が入力端子111に接続される。NOR回路115A、115Bの出力端子は、それぞれ、インバータ116A、116Bの入力端子に接続される。
インバータ116A、116Bは、それぞれ、自己の入力端子がNOR回路115A、115Bの出力端子に接続され、自己の出力端子が、それぞれ、インバータ120B、120CのPMOSトランジスタ121B、121Cのゲートに接続される。
NAND回路117A、117Bは、それぞれ、自己の一方の入力端子がインバータ114A、114Bの出力端子に接続され、自己の他方の入力端子が、入力端子111に接続される。
インバータ118A、118Bは、それぞれ、自己の入力端子がNAND回路117A、117Bの出力端子に接続され、自己の出力端子が、インバータ120B、120CのNMOSトランジスタ122B、122Cのゲートに接続されている。
このような回路により、インバータ120Aは、入力端子111に入力されるクロックによって直接的に駆動される。
また、インバータ120Bは、インバータ114A、NOR回路115A、インバータ116A、NAND回路117A、インバータ118Aを介して、入力端子111に入力されるクロックと、信号入力端子113Aに入力される制御信号bufconのビット値C1によって駆動される。インバータ114A、NOR回路115A、インバータ116A、NAND回路117A、インバータ118Aは、第1切替回路の一例である。
また、第1切替回路の一例としてのインバータ114A、NOR回路115A、インバータ116A、NAND回路117A、及びインバータ118Aに、インバータ120Bを加えた回路は、第2インバータ回路部の一例である。
同様に、インバータ120Cは、インバータ114B、NOR回路115B、インバータ116B、NAND回路117B、インバータ118Bを介して、入力端子111に入力されるクロックと、信号入力端子113Bに入力される制御信号bufconのビット値C2によって駆動される。インバータ114B、NOR回路115B、インバータ116B、NAND回路117B、インバータ118Bは、第2切替回路の一例である。
また、第2切替回路の一例としてのインバータ114B、NOR回路115B、インバータ116B、NAND回路117B、及びインバータ118Bに、インバータ120Cを加えた回路は、第3インバータ回路部の一例である。
インバータ120Aは、PMOSトランジスタ121AとNMOSトランジスタ122Aを有する。
同様に、インバータ120Bは、PMOSトランジスタ121BとNMOSトランジスタ122Bを有する。また、インバータ120Cは、PMOSトランジスタ121CとNMOSトランジスタ122Cを有する。
インバータ120Aは、第1インバータ回路部の一例である。インバータ120AのPMOSトランジスタ121AとNMOSトランジスタ122Aのゲートは、入力端子111に接続されている。PMOSトランジスタ121Aのソースは電源に接続され、ドレインは、NMOSトランジスタ122Aのドレインに接続されている。NMOSトランジスタ122Aのソースは接地されている。
インバータ120Aは、入力端子111に入力されるクロックがH(High)レベルの場合は、PMOSトランジスタ121Aがオフになり、NMOSトランジスタ122Aがオンになることにより、入力端子111に入力されるクロックを反転したL(Low)レベルのクロックを出力端子112に出力する。
また、インバータ120Aは、入力端子111に入力されるクロックがL(Low)レベルの場合は、PMOSトランジスタ121Aがオンになり、NMOSトランジスタ122Aがオフになることにより、入力端子111に入力されるクロックを反転したH(High)レベルのクロックを出力端子112に出力する。
インバータ120Bは、第2インバータ回路部の一例である。インバータ120BのPMOSトランジスタ121Bのゲートはインバータ116Aの出力端子に接続され、NMOSトランジスタ122Bのゲートは、インバータ118Aの出力端子に接続されている。PMOSトランジスタ121Bのソースは電源に接続され、ドレインは、NMOSトランジスタ122Bのドレインに接続されている。NMOSトランジスタ122Bのソースは接地されている。
インバータ120Bは、制御信号bufconのビット値C1が'0'のときに、インバータ116A、118Aの出力が入力端子111に入力されるクロックと等しくなり、制御信号bufconのビット値C1が'1'のときに、インバータ116A、118Aの出力が、それぞれ、'1'、'0'になる。
このため、インバータ120Bは、制御信号bufconのビット値C1が'0'のときに、入力端子111に入力されるクロックがH(High)レベルの場合は、PMOSトランジスタ121Bがオフになり、NMOSトランジスタ122Bがオンになることにより、入力端子111に入力されるクロックを反転したL(Low)レベルのクロックを出力端子112に出力する。これは、インバータ120Aと同様の動作である。
また、インバータ120Bは、制御信号bufconのビット値C1が'0'のときに、入力端子111に入力されるクロックがL(Low)レベルの場合は、PMOSトランジスタ121Bがオンになり、NMOSトランジスタ122Bがオフになることにより、入力端子111に入力されるクロックを反転したH(High)レベルのクロックを出力端子112に出力する。これは、インバータ120Aと同様の動作である。
また、インバータ120Bは、制御信号bufconのビット値C1が'1'のときは、インバータ116A、118Aの出力が、それぞれ、'1'、'0'になるため、PMOSトランジスタ121B及びNMOSトランジスタ122Bがともにオフとなる。
また、インバータ120Cは、インバータ120Bとの回路の対称性により、インバータ120Bと同様に動作する。すなわち、インバータ120Cは、制御信号bufconのビット値C2が'0'のときに、クロックを反転して出力端子112に出力する。これは、インバータ120Aと同様の動作である。
また、インバータ120Cは、制御信号bufconのビット値C2が'1'のときは、インバータ116B、118Bの出力が、それぞれ、'1'、'0'になるため、PMOSトランジスタ121C及びNMOSトランジスタ122Cがともにオフとなる。これは、インバータ120Bと同様の動作である。
以上より、バッファ回路110は、インバータ120B及び120Cがオフの場合は、インバータ120Aのみが駆動されるため、バッファ回路110のクロックの駆動力は小(Small)となる。
また、バッファ回路110は、インバータ120Bがオンでインバータ120Cがオフの場合は、インバータ120A及び120Bが駆動されるため、バッファ回路110のクロックの駆動力は中(Medium)となる。
また、バッファ回路110は、インバータ120B及び120Cがともにオンにされる場合は、インバータ120A、120B、120Cのすべてが駆動されるため、バッファ回路110のクロックの駆動力は大(Large)となる。
以上のように、バッファ回路110に入力される制御信号bufconにより、バッファ回路110の駆動力を小(Small)、中(Medium)、大(Large)のいずれかに設定することができる。
これらの動作は、図4(A)に示す真理値表の通りである。なお、ここでは、バッファ回路110の駆動力を中(Medium)に設定する場合に、バッファ120A及び120Bを駆動する形態について説明する。しかしながら、中(Medium)の駆動力を得るために、図4(A)に示す真理値表におけるC1とC2の値を入れ替えれば、バッファ120A及び120Cを駆動することにより、バッファ回路110の駆動力を中(Medium)に設定することができる。
スイッチ回路130は、トランスファーゲートであり、PMOSトランジスタ131、NMOSトランジスタ132、インバータ133、入力端子134、出力端子135、信号入力端子136を含む。
PMOSトランジスタ131のソースとNMOSトランジスタ132のドレインは入力端子134に接続され、PMOSトランジスタ131のドレインとNMOSトランジスタ132のソースは出力端子135に接続される。
PMOSトランジスタ131のゲートには、インバータ133の出力端子が接続される。インバータ133の入力端子は、信号入力端子136に接続される。NMOSトランジスタ132のゲートは、信号入力端子136に接続される。信号入力端子136は、制御部150(図2参照)に接続され、制御信号switchconが入力される。
制御部150から出力される制御信号switchconが'1'(High)の場合は、PMOSトランジスタ131及びNMOSトランジスタ132がオンになり、入力端子134と出力端子135は導通する。これは、図4(B)の真理値表に示す通りである。この場合は、入力端子134から入力されるクロックが出力端子135から出力される。
制御部150から出力される制御信号switchconが'0'(Low)の場合は、PMOSトランジスタ131及びNMOSトランジスタ132がオフになり、入力端子134と出力端子135は遮断される。これは、図4(B)の真理値表に示す通りである。この場合は、入力端子134から入力されるクロックは出力端子135から出力されない。
ここで、制御部150(図2参照)は、バッファ回路110の駆動力を中(Medium)又は大(Large)に設定するための制御信号bufconをバッファ回路110に入力する場合は、スイッチ回路130に入力する制御信号switchconを'1'(High)に設定する。
この結果、バッファ回路110に入力されるクロックは、中(Medium)又は大(Large)の駆動力で出力され、スイッチ回路130を経て、スイッチ回路130の出力側に接続される回路等に伝送される。駆動力を中(Medium)又は大(Large)のいずれに設定するかは、例えば、クロックの周波数、又は、スイッチ回路130の出力側に接続される回路等の規模等に応じて選択すればよい。
また、制御部150(図2参照)は、バッファ回路110の駆動力を小(Small)に設定するための制御信号bufconをバッファ回路110に入力する場合は、スイッチ回路130に入力する制御信号switchconを'0'(Low)に設定する。
この結果、バッファ回路110に入力されるクロックは、小(Small)の駆動力で出力されるが、スイッチ回路130が遮断されている(オフにされている)ため、クロックはスイッチ回路130の出力側に接続される回路等には伝送されない。
例えば、スイッチ回路130の出力側に接続される回路等が動作しないタイミングでは、クロックの駆動力を小(Small)に設定するとともに、スイッチ回路130をオフにすることにより、半導体装置100の消費電力を低減することができる。
ここで、スイッチ回路130をオンにする場合と、オフにする場合とで、バッファ回路110の出力端子112からスイッチ回路130側を見た負荷容量の違いについて説明する。バッファ回路110の出力端子112からスイッチ回路130側を見た負荷容量とは、スイッチ回路130の入力端子134から出力端子135側を見た負荷容量と同義である。
ここで、説明の便宜上、一例として、図3に示すバッファ回路110及びスイッチ回路130が、図2に示すバッファ回路110D及びスイッチ回路130Aであり、スイッチ回路130Aの出力側(後段)には複数のバッファ50によって構築されるクロック伝送路55Aが接続されていることとする。
また、バッファ回路110D、スイッチ回路130A、及びバッファ50に含まれるPMOSトランジスタ及びNMOSトランジスタは、すべて同一のサイズであることとする。
そして、バッファ回路110D、スイッチ回路130A、及びバッファ50に含まれるPMOSトランジスタ及びNMOSトランジスタのゲート幅をW、ゲート長をL、オーバーラップ容量をCov、単位面積当たりのゲート容量をCoxとする。
スイッチ回路130Aがオフの場合には、PMOSトランジスタ131とNMOSトランジスタ132の接合容量が、バッファ回路110Dの出力端子112からスイッチ回路130A側を見た負荷容量になり、負荷容量 = WCovと表すことができる。
一方、スイッチ回路130Aがオンの場合には、スイッチ回路130Aの後段に接続されるクロック伝送路55Aに含まれる複数のバッファ50のゲート容量が、バッファ回路110Dの出力端子112からスイッチ回路130A側を見た負荷容量になり、負荷容量 = 2/3WLCox + WCovと表すことができる。
このため、スイッチ回路130Aをオフにした場合は、スイッチ回路130Aをオンにした場合よりも、バッファ回路110Dの出力端子112からスイッチ回路130A側を見た負荷容量が 2/3WLCoxだけ小さくなる。
従って、スイッチ回路130Aをオフにすると、バッファ回路110Dの出力端子112からスイッチ回路130A側を見た負荷容量が小さくなる。このため、バッファ回路110Dの駆動力は、スイッチ回路130Aをオンにした状態で単にバッファ回路110Dの駆動力を小さくする場合よりも、さらに小さな駆動力で足りることになる。
これは、次のような理由によるものである。スイッチ回路130Aをオンにした状態でバッファ回路110Dの駆動力を低減する場合には、スイッチ回路130Aの後段のクロック伝送路55Aを駆動するための最低限度の駆動力が必要になる。これに対して、スイッチ回路130Aをオフにすると、スイッチ回路130Aの後段のクロック伝送路55Aを駆動する必要がなくなるため、スイッチ回路130Aをオンにした状態に比べて、バッファ回路110Dの駆動力をさらに低減できる。
このような理由により、スイッチ回路130Aをオフにすると、スイッチ回路130Aをオンにした状態で単にバッファ回路110Dの駆動力を小さくする場合よりも、さらにバッファ回路110Dの駆動力を低減できる。
これは、バッファ回路110B〜110Dとスイッチ回路130B〜130Dとの各組においても同様である。また、バッファ回路110A〜110Cの後段にスイッチ回路130を挿入した場合にも同様である。
以上のような理由から、実施の形態の半導体装置100では、スイッチ回路130の出力側(後段)の回路等が動作しないタイミングでは、バッファ回路110の駆動力を小さくするとともに、スイッチ回路130をオフにする。
すなわち、実施の形態の半導体装置100では、スイッチ回路130の後段の回路等が動作しないタイミングでは、スイッチ回路130をオフにした上で、バッファ回路110の駆動力を小さくする。
このように、スイッチ回路130のオフと、バッファ回路110の駆動力の低下を同時に行うことにより、スイッチ回路130よりも後段の回路をオフにでき、かつ、スイッチ回路130がオンの状態で単にバッファ回路110の駆動力を低下させる場合よりも、さらにバッファ回路110の駆動力を低減できる。
このようにして、実施の形態の半導体装置100は、消費電力を低減する。
次に、図5を用いて、実施の形態の半導体装置100の駆動パターンについて説明する。
図5は、実施の形態の半導体装置100の駆動状態を示す図である。図5には、17種類の駆動状態(State No.)を示す。駆動状態(State No.)1〜17は、図5に示す表の一番左の縦の列によって表される。
また、図5の表には、左側から右側にかけて、Regulator状態、PLL駆動状態、周辺回路の動作状態、バッファ回路の駆動力、及びスイッチ回路の制御を示す。
Regulator状態は、レギュレータ30の状態を示し、通常動作(Normal Operation)とスタンバイ(Standby)がある。通常動作(Normal Operation)はCPU160(図2参照)がオンにされて動作する状態であり、スタンバイ(Standby)はCPU160がオフにされて動作しない状態である。
PLL駆動状態は、PLL20の駆動状態を表し、PLL20がオンの状態とオフの状態がある。PLL20がオンのときは、セレクタ10(図2参照)がPLL20から出力されるクロックを選択する場合である。
PLL20から出力されるクロックは、入力端子1A(図2参照)に入力される基準クロック(reference clk)よりも周波数が高い。このため、PLL20がオンの状態は、PLL20がオフの状態よりも高い周波数のクロックで半導体装置100が駆動される場合であり、PLL20がオフの状態は、PLL20がオンの状態よりも低い周波数のクロックで半導体装置100が駆動される場合である。
周辺回路の動作状態には、CPU、周辺1、周辺2、周辺3の4つの項目が含まれ、それぞれ、CPU20、周辺回路71、周辺回路72、周辺回路73の動作状態(オン/オフ)を表す。
バッファの駆動力には、BUF1〜BUF7の7つの項目が含まれ、それぞれ、バッファ回路110A〜110Gの駆動力を表す。バッファ回路110A〜110Gのクロックの駆動力は、L(Large:大)、M(Medium:中)、S(Small:小)のうちのいずれかである。BUF1〜BUF7は、それぞれ、制御信号bufcon1〜bufcon7によって表される駆動力である。
なお、バッファ回路110A〜110Gの駆動力がSに設定されるのは、後段にクロックを伝送する必要がないときである。バッファ回路110A〜110Gの駆動力を最低でもSに保持する理由は、クロックを伝送していない動作状態から次の動作状態に遷移したときに、後段の回路にクロックを伝送する場合があるからであり、このような場合に備えて最低限度の駆動力で動作させておくためである。
スイッチ回路の制御には、SWITCH1〜SWITCH4の4つの項目が含まれ、それぞれ、スイッチ回路130A〜130Dのオン/オフの状態を表す。SWITCH1〜SWITCH4は、制御信号switchcon1〜switchcon4によって定まるオン/オフの状態を表す。
実施の形態の半導体装置100の駆動状態は、図5に示す17種類の駆動状態のいずれかに設定される。半導体装置100は、セレクタ10(図2参照)から出力されるクロックに応じて、図5に示す17種類の駆動状態を遷移しながら駆動される。
なお、図5に示す17種類の駆動状態は、CPU160から出力されるコマンドに基づいて実現される。
バッファの駆動力BUF1〜BUF7に対応する制御信号bufcon1〜bufcon7は、CPU160がレジスタへのデータの書き込みを行う際に、CPU160からライトコマンド(Enable Write Access)を受信した周辺回路71、72、73が生成する制御信号1〜3(図2参照)に基づいて、制御部150が出力する。
また、Regulator状態とPLL駆動状態は、CPU160からコマンドを受信したPMU40が出力する。
なお、CPU160のオン/オフは、PMU40によって行われる。
次に、図6から図11を用いて、半導体装置100の3つの例示的な駆動パターンについて説明する。
図6は、実施の形態の半導体装置100の例示的な第1駆動パターンを示すフローチャートである。図7は、実施の形態の半導体装置100の例示的な第1駆動パターンを示すタイミングチャートである。
図7には、駆動状態(State No.)、レギュレータ30に入力される電源Vcc、基準クロック(reference clk)、レギュレータ30の状態(通常動作(Normal Operation)又はスタンバイ(Standby))、PLL20の駆動状態(pllen)を示す。
図7には、さらに、セレクタ10に入力される選択信号(source clk sel)、セレクタ10から出力されるクロック(source clk)、CPU160の動作状態(CPU mode)、レジスタアクセスバスのコマンド(Register Access Bus)、周辺3(周辺回路73)の動作状態を示す。レジスタアクセスバス(Register Access Bus)は、CPU160からレジスタアクセスバス161を介して周辺回路71〜73に入力されるコマンドを表す。
図7には、さらに、制御部150が出力する制御信号bufcon1〜bufcon7と制御信号switchcon1〜switchcon4を示す。制御信号bufcon1〜bufcon7は、それぞれ、バッファ回路110A〜110G(図2参照)に入力される。制御信号switchcon1〜switchcon4は、それぞれ、スイッチ回路130A〜130Dに入力される。
図6及び図7に示す第1駆動パターンは、CPU160をオンにした後に、周辺回路73を起動し、その後周辺回路73を停止する駆動パターンであり、周辺回路71、72は起動されない。第1駆動パターンは、図5に示す駆動状態1、2、1と遷移するパターンである。
まず、図6に示すように、半導体装置100の電源がオン(Power On)になると、ステップS11において、駆動状態1(State No.1)が選択され、CPU160がオンにされ、周辺回路はすべてオフのままである。
このとき、図7では、時刻t11において半導体装置100の電源がオン(Power On)にされ、レギュレータ30は通常動作(Normal Operation)の状態、PLL20はオフ、CPU160はオン、周辺回路71〜73はオフである。また、選択信号(source clk sel)は基準クロック(reference clk)を選択する信号であり、クロック(source clk)は基準クロック(reference clk)と等しい。
また、時刻t11では駆動状態1(State No.1)が選択されるため、制御信号bufcon1, bufcon2, bufcon4が示す駆動力はM、制御信号bufcon3, bufcon5, bufcon6, bufcon7が示す駆動力はS、制御信号switchcon1はオン(ON)であり、制御信号switchcon2〜switchcon4はオフ(OFF)である。
この結果、図2では、バッファ回路110A、110B、110Dの駆動力はM(Medium:中)になり、スイッチ回路130Aがオンにされ、CPU160がオンになる。
また、バッファ回路110C、110E〜110Gの駆動力はSになり、スイッチ回路130B、130C、130Dはオフにされ、周辺回路71〜73はオフである。
すなわち、CPU160のみがオンになっており、CPU160にクロックを伝送する経路に含まれるバッファ回路110A、110B、110Dの駆動力はMになるとともに、スイッチ回路130Aがオンにされる。バッファ回路110A、110B、110Dの駆動力がMに設定されるのは、PLL20がオフであるからである。
また、周辺回路71〜73はオフであるため、周辺回路71〜73にクロックを伝送する経路に含まれるバッファ回路110C、110E〜110Gの駆動力はSになるとともに、スイッチ回路130B、130C、130Dはオフにされる。
従って、スイッチ回路130B、130C、130Dの後段のクロック伝送路55B〜55Dは動作せず、消費電力を低減することができる。また、スイッチ回路130B〜130Dをオフにするため、バッファ回路110C、110E〜110Gの駆動力はSで済むため、このことによっても消費電力を低減することができる。
次に、図6に示すステップS12において、駆動状態2(State No.2)が選択される。まず、CPU160が周辺回路73に書き込みを行えるようにするために、CPU160がレジスタアクセスバス161を介して、制御部150に周辺3 Enable Write Accessを入力する。
これにより、図7では、時刻t12において、レジスタアクセスバス161に、周辺3 Enable Write Accessが表れる。そして、制御部150によって制御信号bufcon3とbufcon7が示す駆動力がMに切り替えられるとともに、制御信号switchcon4がオンに切り替えられる。これは、駆動状態2(State No.2)でCPU160と周辺回路73をオンにするためである。
そして、時刻t12から基準クロック(reference clk)の2サイクル分の時間が経過した時刻t13において、周辺回路73がオン(ON)になる。これは、図6に示すステップS13において周辺回路73が起動されることに対応する。
この結果、図2では、バッファ回路110A、110B、110C、110D、110Gの駆動力はM(Medium:中)になり、スイッチ回路130A、130Dがオンにされ、CPU160と周辺回路73がオンになる。
すなわち、CPU160と周辺回路73がオンになっており、CPU160及び周辺回路73にクロックを伝送する経路に含まれるバッファ回路110A、110B、110C、110D、110Gの駆動力はMになる。また、スイッチ回路130A及び130Dがオンにされる。
また、周辺回路71、72はオフであるため、周辺回路71、72にクロックを伝送する経路に含まれるバッファ回路110E、110Fの駆動力はSになるとともに、スイッチ回路130B、130Cはオフにされる。
従って、スイッチ回路130B、130Cの後段のクロック伝送路55B、55Cは動作せず、消費電力を低減することができる。また、スイッチ回路130B、130Cをオフにするため、バッファ回路110E、110Fの駆動力はSで済むため、このことによっても消費電力を低減することができる。
次に、図6に示すステップS14において、CPU160が周辺回路73への書き込みを禁止するために、CPU160がレジスタアクセスバスを介して、制御部150に周辺3 Disable Write Accessを入力する。
これにより、図7では、時刻t14において、レジスタアクセスバスに、周辺3 Disable Write Accessが表れる。そして、時刻t14から基準クロック(reference clk)の2サイクル分の時間が経過した時刻t15において、周辺回路73がオフ(OFF)になる。これは、図6に示すステップS15に対応する。
周辺回路73がオフ(OFF)になると、基準クロック(reference clk)の次の立ち上がりのタイミングである時刻t16において、制御部150は、制御信号bufcon3, bufcon7が示す駆動力をSに切り替えるとともに、制御信号switchcon4をオフ(OFF)にする。
これにより、図2に示す回路では、バッファ回路110C,110Gの駆動力がSに切り替えるとともに、スイッチ回路130Dがオフにされ、駆動状態1(State No.1)に戻る。なお、図6に示すように、フローチャートでは、フローがステップS15からS11にリターンすることに対応する。
以上で第1駆動パターンの動作が終了する。
次に、図8及び図9を用いて、実施の形態の半導体装置100の第2駆動パターンについて説明する。
図8は、実施の形態の半導体装置100の例示的な第2駆動パターンを示すフローチャートである。図9は、実施の形態の半導体装置100の例示的な第2駆動パターンを示すタイミングチャートである。
図8及び図9に示す第2駆動パターンは、CPU160をオンにした後に、PLL20をオンにし、さらに周辺回路72を起動し、その後周辺回路72を停止する駆動パターンであり、周辺回路71、73は起動されない。第2駆動パターンは、図5に示す駆動状態1、9、11、9、1と遷移するパターンである。
なお、図9には、第1駆動パターンについての図7と同様の基準クロック等の波形を示すが、図7に示す周辺3(周辺回路73)の代わりに周辺2(周辺回路72)を示す。
まず、図8に示すように、半導体装置100の電源がオン(Power On)になると、ステップS21において、駆動状態1(State No.1)が選択され、CPU160がオンにされ、周辺回路はすべてオフのままである。これは、図6に示すステップS11と同様である。
このとき、図9では、時刻t21において半導体装置100の電源がオン(Power On)にされ、レギュレータ30は通常動作(Normal Operation)の状態、PLL20はオフ、CPU160はオン、周辺回路71〜73はオフである。また、選択信号(source clk sel)は基準クロック(reference clk)を選択する信号であり、クロック(source clk)は基準クロック(reference clk)と等しい。
また、時刻t21では駆動状態1(State No.1)が選択されるため、制御信号bufcon1, bufcon2, bufcon4が示す駆動力はM、制御信号bufcon3, bufcon5, bufcon6, bufcon7が示す駆動力はS、制御信号switchcon1はオン(ON)であり、制御信号switchcon2〜switchcon4はオフ(OFF)である。
この結果、図2では、バッファ回路110A、110B、110Dの駆動力はMになり、スイッチ回路130Aがオンにされ、CPU160がオンになる。
また、バッファ回路110C、110E〜110Gの駆動力はSになり、スイッチ回路130B、130C、130Dはオフにされ、周辺回路71〜73はオフである。
以上のように、時刻t21における動作は、図7に示す時刻t11における動作と同様である。
次に、図8に示すステップS22において、駆動状態9(State No.9)が選択され、PLL20がオンにされる。図9では、時刻t22において、CPU160がPMU40と制御部150にコマンドを送り、PMU40がPLL20をオンにするとともに、制御部150は制御信号bufcon1, bufcon2, bufcon4が表す駆動力をLに切り替える。
PLL20が出力する周波数の高いクロックをCPU160に伝送する前に、クロックの伝送経路に含まれるバッファ回路110A、110B110Dの駆動力を予め最大のLに変更するためである。
次に、図8に示すステップS23において、PMU40によって選択信号(source clk sel)がPLL20から出力するクロックを選択する信号に切り替えられる。すなわち、セレクタ10が出力するクロック(source clk)がPLL20から出力されるクロックに切り替えられる。
図9では、時刻t22から基準クロック(reference clk)の2サイクル分の時間が経過した時刻t23において、選択信号(source clk sel)がsource clk = PLLに切り替えられる。これにより、セレクタ10が出力するクロック(source clk)は、PLL20から出力される周波数の高いクロックに切り替えられる。
ここでは一例として、PLL20から出力されるクロックの周波数は、基準クロック(reference clk)の周波数の2倍であることとする。しかしながら、これは一例であり、PLL20から出力されるクロックの周波数は、任意に設定することができる。
次に、図8に示すステップS24において、駆動状態11(State No.11)が選択され、PLL20がオンにされる。まず、CPU160が周辺回路72に書き込みを行えるようにするために、CPU160がレジスタアクセスバスを介して、制御部150に周辺2 Enable Write Accessを入力する。
これにより、図9では、時刻t24において、レジスタアクセスバスに、周辺2 Enable Write Accessが表れる。そして、制御部150によって制御信号bufcon3とbufcon6が示す駆動力がLに切り替えられるとともに、制御信号switchcon3がオンに切り替えられる。これは、駆動状態11(State No.11)でCPU160と周辺回路72をオンにするためである。
そして、時刻t24からクロックの2サイクル分の時間が経過した時刻t25において、周辺回路72がオン(ON)になる。これは、図8に示すステップS25において周辺回路72が起動されることに対応する。
この結果、図2では、PLL20がオンにされた状態でセレクタ10はPLL20から出力されるクロックを選択し、バッファ回路110A、110B、110C、110D、110Fの駆動力はLになり、スイッチ回路130A、130Cがオンにされ、CPU160と周辺回路72がオンになる。
すなわち、CPU160と周辺回路72がオンになっており、CPU160及び周辺回路72にクロックを伝送する経路に含まれるバッファ回路110A、110B、110C、110D、110Fの駆動力はLになる。また、スイッチ回路130A及び130Cがオンにされる。
また、周辺回路71、73はオフであるため、周辺回路71、73にクロックを伝送する経路に含まれるバッファ回路110E、110Gの駆動力はSになるとともに、スイッチ回路130B、130Dはオフにされる。
従って、スイッチ回路130B、130Dの後段のクロック伝送路55B、55Dは動作せず、消費電力を低減することができる。また、スイッチ回路130B、130Dをオフにするため、バッファ回路110E、110Gの駆動力はSで済むため、このことによっても消費電力を低減することができる。
次に、図8に示すステップS26において、CPU160が周辺回路72への書き込みを禁止するために、CPU160がレジスタアクセスバスを介して、制御部150に周辺2 Disable Write Accessを入力する。
これにより、図9では、時刻t26において、レジスタアクセスバスに、周辺2 Disable Write Accessが表れる。そして、時刻t26からクロックの2サイクル分の時間が経過した時刻t27おいて、周辺回路72がオフ(OFF)になる。これは、図8に示すステップS27に対応する。
周辺回路72がオフ(OFF)になると、クロックの次の立ち上がりのタイミングである時刻t28において、制御部150は、制御信号bufcon3, bufcon6が示す駆動力をSに切り替えるとともに、制御信号switchcon3をオフ(OFF)にする。
これにより、図2に示す回路では、バッファ回路110C,110Fの駆動力がSに切り替えるとともに、スイッチ回路130Cがオフにされ、駆動状態9(State No.9)に戻る。なお、これは、図8に示すステップS28に対応する。
次に、図8に示すステップS29において、PMU40によって選択信号(source clk sel)が基準クロック(reference clk)を選択する信号に切り替えられる。すなわち、セレクタ10が出力するクロック(source clk)がPLL20から出力されるクロックに切り替えられる。
図9では、時刻t29において、選択信号(source clk sel)がsource clk = reference clkに切り替えられる。これにより、セレクタ10が出力するクロック(source clk)は、基準クロック(reference clk)に切り替えられる。
次いで、図8に示すステップS30において、PMU40によってPLL20がオフにされる。図9では、時刻t30において、PLL20がオフにされ、制御部150は制御信号bufcon1, bufcon2, bufcon4が表す駆動力をM(Medium:中)に切り替える。これにより、駆動状態1(State No.1)に戻る。
以上で第2駆動パターンの動作が終了する。
以上のように、第2駆動パターンにおいては、PLL20が出力するクロックをCPU160と周辺回路72に伝送する経路に含まれるバッファ回路110A、110B、110C、110D、110Fの駆動力をLに設定する。これは、PLL20が出力する周波数の高いクロックを伝送するために、大きな駆動力を用いるためである。
また、第2駆動パターンの最初から最後までオフの状態に保持される周辺回路71、72に接続されるスイッチ130B、130Dはオフに保持されるため、クロック伝送路55B、55Dをバッファ110E、110Gからそれぞれ切り離すことができる。
このため、バッファ110E、110Gの駆動力はS(Small:小)で済むため、消費電力の低減を図ることができる。
次に、図10及び図11を用いて、実施の形態の半導体装置100の第3駆動パターンについて説明する。
図10は、実施の形態の半導体装置100の例示的な第3駆動パターンを示すフローチャートである。図11は、実施の形態の半導体装置100の例示的な第3駆動パターンを示すタイミングチャートである。
図10及び図11に示す第3駆動パターンは、CPU160をオンにした後に、周辺回路71を起動し、その後スタンバイモードに設定し、さらにスタンバイモードから復帰する駆動パターンであり、周辺回路72、73は起動されない。また、PLL20もオフの状態に保持される。第3駆動パターンは、図5に示す駆動状態1、5、17、5と遷移するパターンである。
なお、図11には、第1駆動パターンについての図7と同様の基準クロック等の波形を示すが、図7に示す周辺3(周辺回路73)の代わりに周辺回路71(周辺1)を示す。
まず、図10に示すように、半導体装置100の電源がオン(Power On)になると、ステップS31において、駆動状態1(State No.1)が選択され、CPU160がオンにされ、周辺回路はすべてオフのままである。これは、図6に示すステップS11と同様である。
このとき、図11では、時刻t31において半導体装置100の電源がオン(Power On)にされ、レギュレータ30は通常動作(Normal Operation)の状態、PLL20はオフ、CPU160はオン、周辺回路71〜73はオフである。また、選択信号(source clk sel)は基準クロック(reference clk)を選択する信号であり、クロック(source clk)は基準クロック(reference clk)と等しい。
また、時刻t31では駆動状態1(State No.1)が選択されるため、制御信号bufcon1, bufcon2, bufcon4が示す駆動力はM、制御信号bufcon3, bufcon5, bufcon6, bufcon7が示す駆動力はS、制御信号switchcon1はオン(ON)であり、制御信号switchcon2〜switchcon4はオフ(OFF)である。
この結果、図2では、バッファ回路110A、110B、110Dの駆動力はMになり、スイッチ回路130Aがオンにされ、CPU160がオンになる。
また、バッファ回路110C、110E〜110Gの駆動力はSになり、スイッチ回路130B、130C、130Dはオフにされ、周辺回路71〜73はオフである。
以上のように、時刻t31における動作は、図7に示す時刻t11における動作と同様である。
次に、図10に示すステップS32において、駆動状態5(State No.5)が選択される。まず、CPU160が周辺回路71に書き込みを行えるようにするために、CPU160がレジスタアクセスバスを介して、制御部150に周辺1 Enable Write Accessを入力する。
これにより、図11では、時刻t32において、レジスタアクセスバスに、周辺1 Enable Write Accessが表れる。そして、制御部150によって制御信号bufcon5が示す駆動力がMに切り替えられるとともに、制御信号switchcon2がオンに切り替えられる。これは、駆動状態5(State No.5)でCPU160と周辺回路71をオンにするためである。
そして、時刻t32からクロックの2サイクル分の時間が経過した時刻t33において、周辺回路71がオン(ON)になる。これは、図10に示すステップS33において周辺回路71が起動されることに対応する。
この結果、図2では、バッファ回路110A、110B、110D、110Eの駆動力はMになり、スイッチ回路130A、130Bがオンにされ、CPU160と周辺回路71がオンになる。
すなわち、CPU160と周辺回路71がオンになっており、CPU160及び周辺回路71にクロックを伝送する経路に含まれるバッファ回路110A、110B、110D、110Eの駆動力はMになる。また、スイッチ回路130A及び130Bがオンにされる。
また、周辺回路72、73はオフであるため、周辺回路72、73にクロックを伝送する経路に含まれるバッファ回路110C、110F、110Gの駆動力はSになるとともに、スイッチ回路130C、130Dはオフにされる。
従って、スイッチ回路130C、130Dの後段のクロック伝送路55C、55Dは動作せず、消費電力を低減することができる。また、スイッチ回路130C、130Dをオフにするため、バッファ回路110C、110F、110Gの駆動力はSで済むため、このことによっても消費電力を低減することができる。
次に、図10に示すステップS34において、PMU40によってレギュレータ30の状態が通常動作(Normal Operation)からスタンバイ(Standby)に切り替えられる。すなわち、半導体装置100はスタンバイモードに切り替えられる。
図11では、時刻t34において、制御信号bufcon1, bufcon2, bufcon4, bufcon5はSに切り替えられ、制御信号switchcon1, switchcon2はオフ(OFF)にされる。これにより、図2では、バッファ回路110A、110B、110D、110Eの駆動力がSに切り替えられ、スイッチ回路130A、130Bがオフにされる。
次いで、図10に示すステップS35において、スタンバイモードから復帰すべく、PMU40によってレギュレータ30の状態がスタンバイ(Standby)から通常動作(Normal Operation)に切り替えられ、駆動状態5(State No.5)に復帰する。
図11では、時刻t35において、制御信号bufcon1, bufcon2, bufcon4, bufcon5がMに切り替えられ、制御信号switchcon1, switchcon2がオン(ON)に切り替えられる。
以上で第3駆動パターンの動作が終了する。
以上のように、第3駆動パターンにおいては、CPU160と周辺回路71に伝送する経路に含まれるバッファ回路110A、110B、110D、110Eの駆動力をMに設定する。
また、第3駆動パターンの最初から最後までオフの状態に保持される周辺回路72、73に接続されるスイッチ130C、130Dはオフに保持されるため、クロック伝送路55C、55Dをバッファ110F、110Gからそれぞれ切り離すことができる。
このため、バッファ110F、110Gの駆動力はSで済むため、消費電力の低減を図ることができる。
また、スタンバイモードでは、すべてのバッファ回路110A〜110Gの駆動力をSに設定するとともに、すべてのスイッチ回路130A〜130Dをオフにする。これにより、クロック伝送路55A〜55Dをそれぞれバッファ110D〜110Gからそれぞれ切り離すことができる。
このため、バッファ110D〜110Gの駆動力はSで済むため、消費電力の低減を図ることができる。また、このとき、バッファ110A〜110Cの駆動力もSで済むため、消費電力の低減を図ることができる。
以上のように、実施の形態によれば、消費電力を低減した半導体装置100を提供することができる。
実施の形態の半導体装置100では、スイッチ回路130の出力側(後段)の回路等が動作しないタイミングでは、バッファ回路110の駆動力を小さくするとともに、スイッチ回路130をオフにする。換言すれば、スイッチ回路130をオフにした上で、バッファ回路110の駆動力を小さくする。
このように、スイッチ回路130のオフと、バッファ回路110の駆動力の低下を同時に行うことにより、スイッチ回路130よりも後段の回路をオフにでき、かつ、スイッチ回路130がオンの状態で単にバッファ回路110の駆動力を低下させる場合よりも、さらにバッファ回路110の駆動力を低減できる。
以上のようにして、実施の形態の半導体装置100は、消費電力を低減する。
なお、ここでは、第1駆動パターン、第2駆動パターン、及び第3駆動パターンを代表例として説明したが、図5に示す17種類の動作状態は、いずれの動作状態からいずれの動作状態へも遷移することができる。従って、図5に示す17種類の動作状態を組み合わせることにより、実施の形態の半導体装置100において、種々の駆動パターンを実現することができる。
そして、いずれの駆動パターンにおいても、スイッチ回路130のオフと、バッファ回路110の駆動力の低下を同時に行う動作状態を実現することにより、半導体装置100の消費電力を低減することができる。
また、以上では、半導体装置100がPLL20を含み、PLL20が基準クロックから高速用のクロックを生成する形態について説明したが、このように基準クロックとは異なる周波数のクロックを生成する構成要素はPLL20に限られるものではない。例えば、PLL20以外の同期回路を用いて高速クロックを生成してもよいし、分周器を用いて基準クロックよりも周波数の低いクロックを生成してもよい。
また、以上では、PLL20のオン/オフに応じて、バッファ回路110の駆動力をL/Mに切り替える形態について説明したが、PLL20を含まない場合には、バッファ回路110の駆動力をM(Medium)とS(Small)で切り替えるようにすればよい。このような場合には、バッファ回路110に含まれるインバータの段数を1段減らすことができる。
また、以上では、図2に示すように、4つのクロック伝送路55A〜55Dがあり、それぞれにCPU160、周辺回路71〜73が接続されている形態について説明した。しかしながら、このような回路構成は一例であるため、実際の回路構成に応じて、スイッチ回路130を適宜配置してバッファ回路110とクロック伝送路55とを切り離すことによって消費電力の低減を図ればよい。
以上、本発明の例示的な実施の形態の半導体装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
クロックの駆動力を調整する駆動力調整部を有し、クロックを伝送するバッファ回路と、
前記バッファ回路から出力されるクロックを伝送するクロック伝送路に設けられ、オン状態で前記バッファ回路から出力されるクロックを伝送し、オフ状態で前記バッファ回路から出力されるクロックを遮断するスイッチ回路と、
前記バッファ回路の駆動力調整部の制御と、前記スイッチ回路のオン/オフの切替制御とを行う制御部であって、前記クロック伝送路によるクロックの伝送を停止する際に、前記バッファ回路の駆動力を低下させるとともに、前記スイッチ回路をオフにする、制御部と
を含む、半導体装置。
(付記2)
前記駆動力調整部は、
前記バッファ回路の入力端子と出力端子との間に接続され、前記入力端子からクロックが入力される第1インバータ回路部と、
前記第1インバータ回路部に並列に接続され、前記入力端子から入力されるクロックと、前記制御部から入力される制御信号とに基づいて動作する第2インバータ回路部と
を備え、
前記クロック伝送路によるクロックの伝送を停止する際に、前記制御部から入力される制御信号に基づき前記第2インバータ回路部がオフにされることにより、前記バッファ回路の駆動力が低下する、付記1記載の半導体装置。
(付記3)
前記第2インバータ回路部は、
前記バッファ回路の出力端子に自己の出力端子が接続される第1インバータと、
前記クロック及び前記制御信号が入力され、前記制御部が前記クロック伝送路によるクロックの伝送を停止する際に、前記第1インバータをオフにする第1切替回路と
を有する、付記2記載の半導体装置。
(付記4)
前記第1インバータ回路部は、前記バッファ回路の入力端子と出力端子との間に接続され、前記入力端子からクロックが入力されるインバータである、付記2又は3記載の半導体装置。
(付記5)
前記駆動力調整部は、前記バッファ回路の入力端子と出力端子との間で前記第1インバータ回路部及び前記第2インバータ回路部と並列に接続され、前記入力端子から入力されるクロックと、前記制御部から入力される制御信号とに基づいて動作する第3インバータ回路部をさらに備え、
前記クロック伝送路によるクロックの伝送を停止する際に、前記第3インバータ回路部は前記制御部から入力される制御信号に基づきオフにされ、
前記クロック伝送路にクロックを伝送する際は、前記スイッチ回路がオンにされた状態で、前記クロックの周波数が所定周波数以上の場合は、前記制御部から入力される制御信号に基づき前記第2インバータ回路部及び前記第3インバータ回路部がオンにされ、前記クロックの周波数が所定周波数未満の場合は、前記制御部から入力される制御信号に基づき前記第2インバータ回路部がオンにされるとともに前記第3インバータ回路部がオフにされる、付記2乃至4のいずれか一項記載の半導体装置。
(付記6)
前記第3インバータ回路部は、
前記バッファ回路の出力端子に自己の出力端子が接続される第2インバータと、
前記クロック及び前記制御信号が入力され、前記制御部が前記クロック伝送路によるクロックの伝送を停止する際に、前記第2インバータをオフにする第2切替回路と
を有する、付記5記載の半導体装置。