【解決手段】 バスに接続された制御回路と、制御回路の制御により動作する第1回路と、制御回路から第1回路へのバスアクセスをバスを介さずに検知するバスアクセス検知回路と、第1回路と電源との間に接続されたスイッチ素子と、第1回路とバスとの間に接続され、バスアクセス回路により第1回路へのバスアクセスが検知された場合、電源からの電源が第1回路に供給されるようにスイッチ素子を制御する第2回路とを具備する、半導体装置である。
前記第2回路は、前記バスアクセス検知回路により前記バスアクセスが検知された場合、前記第1回路に供給されるクロック信号の周波数を前記第2周波数から前記第1周波数にすることを指示するクロックアップ制御信号を出力し、
前記クロックコントローラは、前記第2回路から出力されたクロックアップ制御信号に基づいて、前記第1周波数のクロック信号を前記第1回路に供給する、
請求項4記載の半導体装置。
前記第2回路は、前記バスアクセス検知回路により前記バスアクセスが検知された場合、前記第1回路に供給される電圧を前記第2電圧から前記第1電圧にすることを指示する電源制御制御信号を出力し、
前記電源コントローラは、前記第2回路から出力された電源制御信号に基づいて、前記第1電圧を前記第1回路に供給する、
請求項6記載の半導体装置。
【発明を実施するための形態】
【0009】
以下に、実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記の物に特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることが出来る。
【0010】
各機能ブロックは、ハードウェア、コンピュータソフトウェア、のいずれか又は両者の組み合わせとして実現することが出来る。このため、各ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明される。このような機能が、ハードウェアとして実行されるか、又はソフトウェアとして実行されるかは、具体的な実施態様又はシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現しうるが、そのような実現を決定することは、本発明の範疇に含まれるものである。
実施形態ではバスアクセス検知回路がバスブリッジ内部(PMB回路)ではなく、マスタ側(CPU側)に設置される。また、実施形態では、半導体装置がLSI(large scale integration)である場合を例に挙げて説明する。
【0011】
1. 第1実施形態
第1実施形態に係る半導体装置について説明する。
【0012】
1.1 半導体装置の構成について
まず、半導体装置の構成について説明する。
【0013】
図1は、第1実施形態に係る半導体装置における全体の構成を示すブロック図である。
【0014】
図1に示すように、LSI1は、CPU(central processing unit)10及び3個のスレーブユニットSU1〜SU3を含む。なおスレーブユニットSUの個数は任意に設定可能である。
【0015】
各スレーブユニットSUは、内部バス5を介してCPU10と接続されている。各スレーブユニットSUは、PMB(power management bridge)回路20、スレーブ回路30、及びPSW(power switch)回路40を含む。以下、特にスレーブユニットSUを限定する場合、スレーブユニットSU1のPMB回路を20_1とし、スレーブ回路を30_1とし、PSW回路を40_1とする。同様に、スレーブユニットSU2のPMB回路を20_2とし、スレーブ回路を30_2とし、PSW回路を40_2とする。また、スレーブユニットSU3のPMB回路を20_3とし、スレーブ回路を30_3とし、PSW回路を40_3とする。
【0016】
PMB回路20は、内部バス5とスレーブ回路30との間に接続される。また、PMB回路20は、PSW回路40に接続され、PSW回路40に制御信号(PSC(power switch control)信号)を送信する。PMB回路20は、スレーブ回路30と内部バス5との間のアクセスを中継するバスブリッジ機能と、スレーブ回路30の電源制御機能とを有する。
【0017】
バスブリッジ機能について具体的に説明する。CPU10とスレーブ回路30とのバスを介したアクセス(以下、「バスアクセス」と呼ぶ)は、PMB回路20を経由して行われる。以下、PMB回路20と内部バス5との間のアクセスをバスアクセスAとし、PMB回路20とスレーブ回路30との間のアクセスをバスアクセスBとする。
【0018】
PMB回路20は、バスブリッジ機能の1つとして、バスアクセスの応答を待たせる機能を有する。実施形態では、CPU10からスレーブ回路30へのアクセスがあった場合、CPU10側に設けられたバスアクセス検知回路50がCPU10のスレーブ回路30へのバスアクセスを検知した場合、内部バス5を介さずに、PMB回路20にパワーオンを通知する。PMB回路20は、バスアクセス検知回路50からパワーオンの通知を受信すると、スレーブ回路30の電源をオン状態にする。すなわち、PMB回路20は、PSW回路40をオン状態にして、一定時間経過してからスレーブ回路30にアクセスする(バスアクセスB)。すなわち、PMB回路20は、パワーオンの通知を受信すると、スレーブ回路30の電源をオンにし、その後、CPU10の制御信号(以下、「スレーブ制御信号」と呼ぶ)を、一定時間遅延させてからスレーブ回路30に送信する。
【0019】
また、PMB回路20は、非同期ブリッジとしての機能を有する。例えば、CPU10とスレーブ回路30とが異なるクロックで動作する場合、PMB回路20は、CPU10から内部バス5を介して送られてくるスレーブ制御信号(コマンド、アドレス、データ等)をスレーブ回路30のクロックに同期させてスレーブ回路30に送信する。スレーブ回路30からCPU10に信号が送信される場合も同様に、PMB回路20は、スレーブ回路30から受信した信号をCPU10のクロックに同期させてCPU10(内部バス5)に送信する。
【0020】
また、PMB回路20は、バスアクセスAにおけるバスプロトコルとバスアクセスBにおけるバスプロトコルとが異なっている場合、プロトコル変換機能を有する。以下では、CPU10とスレーブ回路30とが同じクロックで動作し、バスアクセスAにおけるバスプロトコルとバスアクセスBにおけるバスプロトコルとは、同じプロトコルである場合を例に説明する。この場合、非同期ブリッジ機能及びプロトコル変換機能は省略できる。
【0021】
次に、PMB回路20が有するスレーブ回路30の電源制御機能について具体的に説明する。PMB回路20は、PSW回路40にPSC信号を送信し、PSW回路40を制御する。PSC信号は、PSW回路40のオン/オフ状態を制御するための信号である。PMB回路20は、バスアクセス検知回路50がCPU10側にてCPU10のスレーブ回路30へのバスアクセスを検知した場合、内部バス5を介さずに通知されるパワーオンの通知をトリガーにして、PSW回路40をオン状態にする。これにより、スレーブ回路30には、電源電圧VDDが供給される。すなわち、PMB回路20は、内部バス5を介さずにPSW回路40を制御することにより、スレーブ回路30へ電源電圧VDDの供給を制御する。
【0022】
また、第1実施形態におけるPMB回路20は、PSW回路40を制御するための制御レジスタ(不図示)を含む。PMB回路20は、例えばソフトウェアの制御、すなわちCPU10からPMB回路20内部の制御レジスタへのアクセスに応じて、PSW回路40をオフ状態にし、スレーブ回路30への電源電圧VDDの供給を遮断して、スレーブ回路30への電源をオフにする。
【0023】
スレーブ回路30は、CPU10の制御により各種処理を行う。スレーブ回路30は、未使用状態の間、電源をオフされても良い。なお、スレーブ回路30_1〜30_3はそれぞれ異なる処理を行う異なる回路構成であっても良い。更には、スレーブ回路30は、CPU10により制御され、未使用期間に電源をオフできる回路であれば特に限定されない。例えば、演算回路でも良く、メモリ回路でも良く、外部デバイスを制御する制御回路でも良い。
【0024】
PSW回路40は、電源電圧VDDが供給されている電源電圧線とスレーブ回路30とを接続するスイッチング素子(例えばトランジスタ)を含む。例えば、PSW回路40は、PSC信号が“H”レベルの間、オン状態(スイッチング素子が導通状態)となり、スレーブ回路30に電源電圧VDDを供給する。以下、PSC信号が“H”レベルの場合に、PSW回路40(スイッチング素子)がオン状態になる場合について説明する。なお、PSC信号が“L”レベルの場合に、PSW回路40がオン状態となっても良い。
【0025】
CPU10は、外部デバイスの命令に応答して、LSI1内における各種制御を司る制御回路である。例えば、第1実施形態におけるCPU10は、スレーブ回路30が未使用状態の場合に、スレーブ回路30への電源電圧VDDの供給を遮断させる。
【0026】
バスアクセス検知回路50は、CPU10側に設けられ、CPU10からスレーブ回路30へのバスアクセスを内部バス5を介さずにCPU10側で検知し、パワーオンを内部バス5を介さずに全てのPMB回路20に通知する。
【0027】
1.2 PMB回路の構成について
次に、PMB回路20の構成について説明する。
【0028】
図2は、第1実施形態に係る半導体装置におけるPMB回路20のブロック図である。
【0029】
図2に示すように、PMB回路20は、バススプリッター回路101、オリジナルバスブリッジ回路102、バッファ103、電源制御回路104、及びPSW制御回路105を含む。
【0030】
バススプリッター回路101は、内部バス5(バスアクセスA)、オリジナルバスブリッジ回路102及び電源制御回路104に接続される。バススプリッター回路101は、CPU10からPMB回路20内部の制御レジスタへのバスアクセスと、スレーブ回路30へのバスアクセスとを分離する。より具体的には、CPU10がPMB回路20内部の制御レジスタにアクセスする場合には、バススプリッター回路101は、CPU10から入力された信号(以下、「PMB制御信号」と呼ぶ)を電源制御回路104に送信する。他方で、CPU10がスレーブ回路30にアクセスする場合には、バススプリッター回路101は、CPU10から入力されたスレーブ制御信号をオリジナルバスブリッジ回路102に送信する。
【0031】
オリジナルバスブリッジ回路102は、バッファ103に接続される。オリジナルバスブリッジ回路102は、バスブリッジ機能を有し、例えばバスアクセスAとバスアクセスBのバスプロトコルが異なる場合、プロトコル変換を行う。なお、オリジナルバスブリッジ回路102は省略されても良い。
【0032】
バッファ103は、スレーブ回路30(バスアクセスB)に接続される。バッファ103は、CPU10からスレーブ回路30へのバスアクセスを待たせる(スレーブ制御信号の送信を遅延させる)ための回路である。例えばバッファ103は、スレーブ回路30の電源がオンしてから、電源が安定するまでの間、バスアクセスを待たせる。バッファ103は、PSW制御回路105から送信されるパワーレディ信号がアサートされると、スレーブ回路30にアクセスを開始する。パワーレディ信号は、スレーブ回路30がオン状態であり、且つ電源が安定した状態であることを示す信号である。
バスアクセス検知回路50は、CPU10からスレーブ回路30へのバスアクセスを検知すると、内部バス5を介さずにPSW制御回路105に対し、スレーブ回路30の電源をオンにするように指示する(パワーオン通知)。すなわち、バスアクセス検知回路50は、PSW制御回路105に対し、PSC信号を“L”レベルから“H”レベルに切り替えるように指示する。
【0033】
電源制御回路104は、PSW制御回路105に接続される。電源制御回路104は、PSW回路40、すなわちスレーブ回路30の電源のオン/オフ(PSC信号の“H”レベルと“L”レベルの切り替え)をソフトウェアで制御するための制御レジスタを有する。電源制御回路104は、制御レジスタの値に応じて、PSW制御回路105に対し、PSW回路40のオンまたはオフを指示する。
【0034】
PSW制御回路105は、PSW回路40にPSC信号を送信する。より具体的には、PSW制御回路105は、バスアクセス検知回路50あるいは電源制御回路104の命令に応じて、PSC信号を“H”レベルとし、電源制御回路104の命令に応じて、PSC信号を“L”レベルとする。
【0035】
また、PSW制御回路105は、パワーレディタイマ106を含む。
【0036】
パワーレディタイマ106は、スレーブ回路30をオンにしてから、すなわちPSC信号を“L”レベルから“H”レベルに切り替えてからパワーレディ信号をアサートするまでの期間を制御する。すなわち、パワーレディタイマ106は、スレーブ回路30における電源安定化期間を制御する。第1実施形態では、バスアクセス検知回路50によりバスアクセスのタイミングを早く検知することができ、その結果、スレーブ回路30に電源が投入される時間を早くすることができるので、電源安定化期間を短くすることができる。
【0037】
1.3 CPUからスレーブ回路へのアクセス動作について
次にCPU10からスレーブ回路30へのアクセス動作について説明する。
【0038】
1.3.1 アクセス動作の全体の流れについて
まず、アクセス動作全体の流れについて説明する。以下では、説明を簡略化するために、CPU10からスレーブ回路30にスレーブ制御信号が送信される場合について説明し、スレーブ回路30からCPU10に送信される信号については、説明を省略する。
【0039】
図3は、第1実施形態に係る半導体装置におけるCPU10とスレーブユニットSUとのアクセスを示すフローチャートである。
図3では、CPU10からスレーブユニットSUに送信される信号に応じて、スレーブユニットSU内のPMB回路20、スレーブ回路30、及びPSW回路40がどのように動作するかをより具体的に示している。
【0040】
図3に示すように、まずCPU10は、内部バス5にアクセス(バスアクセスA)する(S10)。この際、バスアクセス検知回路50がCPU10による内部バス5へのアクセスを内部バス5を介さずにCPU10側にて検知し、アクセスが検知された場合、パワーオンを内部バス5を介さずにPMB回路20に通知する(S11)。PMB回路20は、バスアクセス検知回路50からパワーオンを通知されると、PSW回路40をパワーオンにするためのPSC信号を送信する(S12)。具体的には、PSC信号を“L”レベルから“H”レベルに切り替えて、PSW回路40に送信する。また、PMB回路20のPSW制御回路105は、パワーレディタイマ106のカウントを開始する。
【0041】
PSW回路40は、PMB回路20からPSW回路40をパワーオンにするためのPSC信号を受信すると、オン状態となり、スレーブ回路30に電源電圧VDDを供給する(ステップS13)。これによりスレーブ回路30はオン状態となる(ステップS14)。
【0042】
CPU10は、バスアクセス(S10)の後、スレーブユニットSUに対しスレーブ制御信号の送信を開始する(ステップS20)。スレーブ制御信号には、例えばコマンド、アドレス情報、データ等が含まれる。
【0043】
次に、スレーブユニットSU内において、PMB回路20は、内部バス5を介してスレーブ制御信号を受信する(ステップS21:バスアクセスA)。PMB回路20内のバススプリッター回路101は、スレーブ制御信号を、オリジナルバスブリッジ回路102に転送する。 次に、PMB回路20は、PSC信号を“L”レベルから“H”レベルに切り替えてから一定時間経過後、スレーブ回路30にアクセス(バスアクセスB)し、スレーブ制御信号を転送する(ステップS22)。より具体的には、PMB回路20内において、パワーレディタイマ106は、カウント値が予め設定された値に達したら、パワーレディ信号をアサートする。バッファ103は、パワーレディ信号に応じて、スレーブ制御信号をスレーブ回路30に転送する。
【0044】
次に、スレーブ回路30は、スレーブ制御信号に応じた処理を実行する(ステップS23)。
【0045】
次に、スレーブ回路30における処理が完了し、スレーブ回路30が待機状態になる(ステップS24)と、CPU10は、PMB回路20に、スレーブ回路30の電源をオフにするためのオフ信号を送信する(ステップS25)。
【0046】
次に、PMB回路20は、オフ信号を受信すると(ステップS26)、PSW回路40に送信するPSC信号を“H”レベルから“L”レベルに切り替える(ステップS27)。より具体的には、PMB回路20内において、バススプリッター回路101は、オフ信号を電源制御回路104に転送する。電源制御回路104は、オフ信号に応じて、PSW制御回路105に、PSW回路40をオフ状態にするように指示する。PSW制御回路105は、電源制御回路104の指示に応じて、PSC信号を“H”レベルから“L”レベルに切り替える。
【0047】
次に、PSW回路40は、PSC信号が“H”レベルから“L”レベルに切り替わるとオフ状態となり、スレーブ回路30への電源電圧VDDの供給を停止する(ステップS28)。これによりスレーブ回路30は、オフ状態となる(ステップS29
)。
【0048】
1.3.2 バスアクセスのタイミングについて
次に、バスアクセスのタイミングについて説明する。
【0049】
図4は、第1実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【0050】
図4に示すように、CPU10からスレーブ回路30へのバスアクセスが行なわれ(
図4の(a))、その後、CPU10とPMB回路20との間の内部バス5を介してスレーブ回路30へのバスアクセス(バスアクセスA)が行なわれる(
図4の(b))。
【0051】
CPU10からスレーブ回路30へのバスアクセスが行なわれた際、バスアクセス検知回路50は、CPU10によるスレーブ回路30へのアクセスを検知し、パワーオンをPMB回路20に通知する。PMB回路20は、バスアクセス検知回路50によりパワーオンが通知されると、PSC信号を例えば“L”レベルから“H”レベルに切り替えてPSW回路40をオン状態にする(
図4の(c))。
【0052】
これによりスレーブ回路30は、電源電圧VDDを供給され、オン状態となる。そして、PMB回路20は、PSC信号を“L”レベルから“H”レベルに切り替えて一定時間経過してから、バスアクセスBにおいて、スレーブ回路30へのアクセスを開始する(
図4の(c))。
【0053】
スレーブ回路30の作業終了後、CPU10は、PMB回路20内の電源制御回路104にアクセスする。より具体的には、PMB回路20は、バスアクセスAにおいて、CPU10から例えばPMB制御信号(オフ信号)を受信すると、PSC信号を“H”レベルから“L”レベルに切り替えて、PSW回路40をオフ状態にする(
図4の(d)、(e))。これによりスレーブ回路30は、電源電圧VDDの供給を遮断されて、オフ状態となる。
【0054】
1.4 第1実施形態に係る効果について
第1実施形態に係る半導体装置によれば、マスタ(CPU)から内部バス5へアクセスが発行されたタイミングで、バスアクセス検知回路50によりバスアクセス検知を行なうことで、PMB回路20からスレーブ回路30への電源をオンする指示するPSC信号を、従来のPSB回路20にバスアクセス検知回路を設ける場合に比べて、PSW回路40に早いタイミングで出力することができる。
【0055】
従って、スレーブ回路30の電源がオンになりアクセスが可能になるまでの時間よりもバスレイテンシが大きいシステムであれば、PMB回路20にアクセスが届いた時にはスレーブ回路がアクセス可能な状態になっているので、バスを待たせることなくスレーブ回路30へアクセスを発行することが可能になる。
【0056】
すなわち、第1実施形態によれば、バスレイテンシに影響を受けることなく、スレーブ回路30の電源をオン状態にすることができ、アクセスが待たされる時間を短縮することができる。
【0057】
1.5 第1実施形態の変形例
CPU10からのバスアクセスには、アクセス対象となるスレーブ回路30のアドレスが含まれている。バスアクセス検知回路50は、バスアクセスに含まれるスレーブ回路30のアドレスを検知し、アクセス対象となるスレーブ回路20にのみパワーオンを通知しても良い。
【0058】
また、バスアクセス回路50は、各スレーブユニットSUに共通に設けられる場合について説明したが、各スレーブユニットSU毎に設けられても良い。
【0059】
2.第2実施形態
第2実施形態に係る半導体装置について説明する。
【0060】
2.1 半導体装置の構成について
第1実施形態では、スレーブ回路30の電源をオン状態からオフ状態にする場合、CPU10からオフ信号をPMB回路20に送信し、PMB回路20がPSW回路40を制御することにより、スレーブ回路30の電源をオフにしていた。また、スレーブ回路30の電源をオフ状態からオン状態にする場合、PMB回路20がPSW回路40を制御することにより、スレーブ回路30の電源をオンにしていた。
【0061】
第2実施形態では、PMB回路20は、スレーブ回路30に供給されるクロック信号を制御するクロックコントローラにクロック制御信号を出力し、スレーブ回路30に供給されるクロック信号の周波数を制御する。以下、第1実施形態と異なる点についてのみ説明する。
【0062】
図5は、第2実施形態に係る半導体装置における全体の構成を示すブロック図である。なお、
図1と同一部分には、同一符号を付してその説明を省略する。
【0063】
図5に示すように、クロックコントローラ60は、各スレーブユニットSUのPMB回路20に接続されており、各スレーブユニットSUのスレーブ回路30に供給されるクロック信号の周波数を制御する。
【0064】
各スレーブユニットSUのPMB回路20は、対応するスレーブ回路30が電源オンに時間がかかる回路であるか否かを示すレジスタ(図示せず)を有する。スレーブ回路30が電源オンに時間がかからない回路の場合(例えば、スレーブ回路30の電源オン状態までの時間が所定時間未満)、第1実施形態の電源のオン/オフ制御が行なわれる。スレーブ回路30が電源オンに時間がかかる回路の場合(例えば、スレーブ回路30の電源オン状態までの時間が所定時間以上)、第2実施形態のスレーブ回路30に供給されるクロック信号の周波数制御が行なわれる。
図5に示した第2実施形態では、スレーブ回路30_1〜30_3は、電源オンに時間がかかる回路であるものとする。
【0065】
2.2 PMB回路の構成について
図6は、第2実施形態に係る半導体装置におけるPMB回路20のブロック図である。
【0066】
図6に示すように、PMB回路20は、バススプリッター回路101、オリジナルバスブリッジ回路102、バッファ103、PSW/クロック制御回路203、コンフィグレーションレジスタ201、及びアイドルタイムカウンタ202を含む。
【0067】
バススプリッター回路101は、内部バス5(バスアクセスA)、オリジナルバスブリッジ回路102、電源制御回路104及びコンフィグレーションレジスタ201に接続される。CPU10がPMB制御信号を送信した場合、バススプリッター回路101は、PMB制御信号をコンフィグレーションレジスタ201に送信する。
【0068】
コンフィグレーションレジスタ201は、アイドルタイムカウンタ202に接続される。コンフィグレーションレジスタ201は、PMB回路20内の各種設定を保持するレジスタである。例えばコンフィグレーションレジスタ201は、ソフトウェア(CPU10)によりアイドルタイムコンフィグレーションを設定される。アイドルタイムコンフィグレーションは、スレーブ回路30がアイドル状態になってから電源をオフされるまでのアイドル期間の設定値である。コンフィグレーションレジスタ201は、アイドルタイムコンフィグレーションが変更されると、新しい設定値をアイドルタイムカウンタ202に送信する。
【0069】
アイドルタイムカウンタ202は、PSW制御回路105に接続される。アイドルタイムカウンタ202は、アイドル期間の長さを測るカウンタである。アイドルタイムカウンタ202は、バスアクセス検知回路50からのカウント開始指示(パワーオンの通知)に応じて、まずカウンタを初期化した後、カウントを開始する。カウント中に再度、バスアクセス検知回路50からカウント開始の指示があった場合には、カウントは再スタートとなる。アイドルタイムカウンタ202は、カウント値を再度初期化した後、カウントを開始する。カウント値が設定値に達すると、アイドルタイムカウンタ202は、カウントを停止し、PSW/クロック制御回路203にスレーブ回路30に供給されるクロック信号が、スレーブ回路30が電源オン状態の場合に供給されるクロック信号の周波数(第1周波数)よりも低い周波数(第2周波数)にすることを指示する。
【0070】
PSW/クロック制御回路203は、アイドルタイムカウンタ202からの指示に基づいて、スレーブ回路30に供給されるクロック信号が、第1周波数よりも低い第2周波数にするクロック制御信号(クロックダウン)をクロックコントローラ60に出力する。これにより、スレーブ回路30には、電源オンの状態よりも低い周波数のクロック信号が供給される。
【0071】
また、PSW/クロック制御回路203は、バスアクセス検知回路50からパワーオンが通知されると、スレーブ回路30に供給されるクロック信号の周波数を第2周波数よりも高い第1周波数のクロック信号にすることを指示するクロック制御信号(クロックアップ)をクロックコントローラ60に送信する。
【0072】
クロックコントローラ60は、PSW/クロック制御回路203からクロックダウン制御信号を受信すると、スレーブ回路30に供給されるクロック信号の周波数を第1周波数から第2周波数にし、クロックアップ制御信号を受信すると、スレーブ回路30に供給されるクロック信号の周波数を第2周波数から第1周波数にする。
【0073】
2.3 スレーブ回路に供給されるクロック信号の周波数の制御の動作について
図7は、第2実施形態に係る半導体装置におけるスレーブ回路30に供給されるクロック信号の周波数制御の動作について説明するためのフローチャートである。
【0074】
CPU10は、内部バス5にアクセス(バスアクセスA)する(S51)。バスアクセス検知回路50がCPU10による内部バス5へのアクセスを内部バス5を介さずにCPU10側にて検知し、アクセスが検知された場合、パワーオンを内部バス5を介さずにPMB回路20に通知する(S52)。
【0075】
PMB回路20は、バスアクセス検知回路50からパワーオンの通知を受信すると、PMB回路20のPSW/クロック制御回路203は、スレーブ回路30に供給されるクロック信号の周波数を第2周波数から第1周波数のクロック信号にすることを指示するクロックアップ制御信号をクロックコントローラ60に送信する(S53)。
【0076】
クロックコントローラ60は、SW/クロック制御回路203からクロック制御信号(クロックアップ)を受信すると、スレーブ回路30に供給されるクロック信号の周波数を第2周波数から第1周波数にする(S54)。
【0077】
また、S52において、バスアクセス検知回路50からパワーオンが通知された場合、PMB回路20のアイドルタイムカウンタ202が初期化され(S55)、アイドルタイムカウンタ202のカウントが開始される(S56)。すなわち、パワーオンが通知された場合、S53におけるクロックアップ制御信号をクロックコントローラ60に送信する処理と、S55におけるアイドルタイムカウンタ202の初期化処理とが並行して行なわれても良い。
【0078】
カウント値が設定値に達すると(S57のYES)、アイドルタイムカウンタ202は、カウントを停止し、PSW/クロック制御回路203にスレーブ回路30に供給されるクロック信号の周波数を、第1周波数よりも低い第2周波数にすることを指示する。
【0079】
PSW/クロック制御回路203は、アイドルタイムカウンタ202からの指示に基づいて、クロック制御信号(クロックダウン)をクロックコントローラ60に出力する(S58)。
【0080】
クロックコントローラ60は、PSW/クロック制御回路203からクロック制御信号(クロックダウン)を受信すると、スレーブ回路30に供給されるクロック信号の周波数を第1周波数から第2周波数にする(S59)。
【0081】
カウンタ値が設定値に満たず(S57のNO)、バスアクセス検知回路50によりバスアクセスが検知されない場合(S60のNO)、S57の処理に戻る。バスアクセス検知回路50によりバスアクセスが検知された場合(S60のYES)、S55の処理に戻り、アイドルタイムカウンタ202がリセットされる。
【0082】
2.4 第2実施形態に係る効果について
第2実施形態に係る半導体装置によれば、第1実施形態の効果に加えて、所定時間CPU10からバスアクセスがない場合、スレーブ回路30に供給される電源をオフにするのではなく、スレーブ回路に供給されるクロック信号の周波数を第1周波数から第2周波数にする(クロックダウン)。
【0083】
また、スレーブ回路30に第2周波数のクロック信号が供給されている状態で、バスアクセスがされると、スレーブ回路30には、第1周波数のクロック信号が供給される(クロックアップ)。
【0084】
従って、スレーブ回路30が電源オンに時間がかかる場合であっても、スレーブ回路30の電源をオフしていないことから、スレーブ回路30は、処理のリクエストに対するレスポンス処理を行なうことができ、アクセスが待たされる時間が短縮され、バスが待たされることがなくなる。
【0085】
また、スレーブ回路30に供給されるクロック信号がクロックダウンした場合であっても、再度、バスアクセスが行なわれることにより、クロックアップが行なわれるので、クロックダウンをすることによる処理効率の低下を抑えることができる。
【0086】
2.5 第2実施形態の変形例
上述のように、第2実施形態は、スレーブ回路30が電源オンに時間がかかる回路である場合に、クロック制御を行なうことを意図している。従って、第1実施形態の電源制御を行なうPMB回路20及び電源オンに時間がかからないスレーブ回路30を有するスレーブユニットSUと、第2実施形態のPMB回路20及び電源オンに時間がかかるスレーブ回路30を有するスレーブユニットSUとを組み合わせても良い。
【0087】
3.第3実施形態
第3実施形態に係る半導体装置について説明する。
【0088】
3.1 半導体装置の構成について
第1実施形態では、スレーブ回路30の電源をオン状態からオフ状態にする場合、CPU10からオフ信号をPMB回路20に送信し、PMB回路20がPSW回路40を制御することにより、スレーブ回路30の電源をオフにしていた。また、スレーブ回路30の電源をオフ状態からオン状態にする場合、PMB回路20がPSW回路40を制御することにより、スレーブ回路30の電源をオンにしていた。
【0089】
第3実施形態では、PMB回路20は、スレーブ回路30に供給される電圧を制御する電源コントローラ70に電源制御信号を出力し、スレーブ回路30に供給される電圧を制御する。以下、第1実施形態と異なる点についてのみ説明する。
【0090】
図8は、第3実施形態に係る半導体装置における全体の構成を示すブロック図である。なお、
図1と同一部分には、同一符号を付してその説明を省略する。
【0091】
図8に示すように、電源コントローラ70は、各スレーブユニットSUのPMB回路20に接続されており、各スレーブユニットSUのスレーブ回路30に供給される電圧を制御する。
【0092】
各スレーブユニットSUのPMB回路20は、対応するスレーブ回路30が電源オンに時間がかかる回路であるか否かを示すレジスタ(図示せず)を有する。スレーブ回路30が電源オンに時間がかからない回路の場合、第1実施形態の電源のオン/オフ制御が行なわれる。スレーブ回路30が電源オンに時間がかかる回路の場合、第3実施形態のスレーブ回路30に供給される電圧制御が行なわれる。
図8に示した第3実施形態では、スレーブ回路30_1〜30_3は、電源オンに時間がかかる回路であるものとする。
【0093】
3.2 PMB回路の構成について
図9は、第3実施形態に係る半導体装置におけるPMB回路20のブロック図である。
【0094】
図9に示すように、PMB回路20は、バススプリッター回路101、オリジナルバスブリッジ回路102、バッファ103、PSW/電源制御回路301、コンフィグレーションレジスタ201、及びアイドルタイムカウンタ202を含む。
【0095】
バススプリッター回路101は、内部バス5(バスアクセスA)、オリジナルバスブリッジ回路102、電源制御回路104及びコンフィグレーションレジスタ201に接続される。CPU10がPMB制御信号を送信した場合、バススプリッター回路101は、PMB制御信号をコンフィグレーションレジスタ201に送信する。
【0096】
コンフィグレーションレジスタ201は、アイドルタイムカウンタ202に接続される。コンフィグレーションレジスタ201は、PMB回路20内の各種設定を保持するレジスタである。例えばコンフィグレーションレジスタ201は、ソフトウェア(CPU10)によりアイドルタイムコンフィグレーションを設定される。アイドルタイムコンフィグレーションは、スレーブ回路30がアイドル状態になってから電源をオフされるまでのアイドル期間の設定値である。コンフィグレーションレジスタ201は、アイドルタイムコンフィグレーションが変更されると、新しい設定値をアイドルタイムカウンタ202に送信する。
【0097】
アイドルタイムカウンタ202は、PSW制御回路105に接続される。アイドルタイムカウンタ202は、アイドル期間の長さを測るカウンタである。アイドルタイムカウンタ202は、バスアクセス検知回路50からのカウント開始指示(パワーオンの通知)に応じて、まずカウンタを初期化した後、カウントを開始する。カウント中に再度、バスアクセス検知回路50からカウント開始の指示があった場合には、カウントは再スタートとなる。アイドルタイムカウンタ202は、カウント値を再度初期化した後、カウントを開始する。カウント値が設定値に達すると、カウントを停止する。そして、アイドルタイムカウンタ104は、PSW/電源制御回路301にスレーブ回路30に供給される電圧を電源オン状態の場合に供給される電圧(第1電圧)よりも低い電圧(第2電圧)にすることを指示する。
【0098】
PSW/電源制御回路301は、アイドルタイムカウンタ202からの指示に基づいて、スレーブ回路30に供給される電圧が、第1電圧よりも低い第2電圧にする電源制御信号(電圧ダウン)を電源コントローラ70に出力する。これにより、スレーブ回路30には、電源オンの状態よりも低い電圧が供給される。
【0099】
また、PSW/電源制御回路301は、バスアクセス検知回路50からパワーオンが通知されると、スレーブ回路30に供給される電圧を第2周電圧よりも高い第1電圧にすることを指示する電源制御信号(電圧アップ)を電源コントローラ70に送信する。
【0100】
電源コントローラ70は、PSW/電源制御回路301から電圧ダウン制御信号を受信すると、スレーブ回路30に供給される電圧を第1電圧から第2電圧にし、電圧アップ制御信号を受信すると、スレーブ回路30に供給される電圧を第2電圧から第1電圧にする。
【0101】
3.3 スレーブ回路に供給される電圧の制御の動作について
図10は、第3実施形態に係る半導体装置におけるスレーブ回路30に供給される電圧制御の動作について説明するためのフローチャートである。
【0102】
CPU10は、内部バス5にアクセス(バスアクセスA)する(S71)。バスアクセス検知回路50がCPU10による内部バス5へのアクセスを内部バス5を介さずにCPU10側にて検知し、アクセスが検知された場合、パワーオンを内部バス5を介さずにPMB回路20に通知する(S72)。
【0103】
PMB回路20は、バスアクセス検知回路50からパワーオンの通知を受信すると、PMB回路20のPSW/電源制御回路301は、スレーブ回路30に供給される電圧を第2電圧から第1電圧にすることを指示する電源制御信号を電源コントローラ70に送信する(S73)。
【0104】
電源コントローラ70は、PSW/電圧制御回路301から電源制御信号(電圧アップ)を受信すると、スレーブ回路30に供給される電圧を第2電圧から第1電圧にする(S74)。
【0105】
一方、S72において、バスアクセス検知回路50からパワーオンが通知された場合、PMB回路20のアイドルタイムカウンタ202が初期化され(S75)、アイドルタイムカウンタ202のカウントが開始される(S76)。すなわち、パワーオンが通知された場合、S73における電源制御信号を電源コントローラ70に送信する処理と、S75におけるアイドルタイムカウンタ202の初期化処理とが並行して行なわれても良い。
【0106】
カウント値が設定値に達すると(S77のYES)、アイドルタイムカウンタ202は、カウントを停止し、PSW/電源制御回路301にスレーブ回路30に供給される電圧を、第1電圧よりも低い第2電圧にすることを指示する。
【0107】
PSW/電源制御回路301は、アイドルタイムカウンタ202からの指示に基づいて、電源制御信号(電圧ダウン)を電源コントローラ70に出力する(S78)。
【0108】
電源コントローラ70は、PSW/電源制御回路301から電源制御信号(電圧ダウン)を受信すると、スレーブ回路30に供給される電圧を第1電圧から第2電圧にする(S79)。
【0109】
カウンタ値が設定値に満たず(S77のNO)、バスアクセス検知回路50によりバスアクセスが検知されない場合(S80のNO)、S77の処理に戻る。バスアクセス検知回路50によりバスアクセスが検知された場合(S80のYES)、S75の処理に戻り、アイドルタイムカウンタ202がリセットされる。
【0110】
3.4 第3実施形態に係る効果について
第3実施形態に係る半導体装置によれば、第1実施形態の効果に加えて、所定時間CPU10からバスアクセスがない場合、スレーブ回路30に供給される電源をオフにするのではなく、スレーブ回路に供給される電圧を第1電圧から第2電圧にする(電圧ダウン)。
【0111】
また、スレーブ回路30に第2電圧が供給されている状態で、バスアクセスがされると、スレーブ回路30には、第1電圧が供給される(電圧アップ)。
【0112】
従って、スレーブ回路30が電源オンに時間がかかる場合であっても、スレーブ回路30の電源をオフしていないことから、スレーブ回路30は、処理のリクエストに対するレスポンス処理を行なうことができ、アクセスが待たされる時間が短縮され、バスが待たされることがなくなる。
【0113】
また、スレーブ回路30に供給される電圧が電圧ダウンした場合であっても、再度、バスアクセスが行なわれることにより、電圧アップが行なわれるので、電圧ダウンをすることによる処理効率の低下を抑えることができる。
【0114】
2.5 第3実施形態の変形例
上述のように、第3実施形態は、スレーブ回路30が電源オンに時間がかかる回路である場合に、電源電圧制御を行なうことを意図している。従って、第1実施形態の電源制御を行なうPMB回路20及び電源オンに時間がかからないスレーブ回路30を有するスレーブユニットSUと、第3実施形態のPMB回路20及び電源オンに時間がかかるスレーブ回路30を有するスレーブユニットSUとを組み合わせても良い。
【0115】
また、第1実施形態乃至第3実施形態のスレーブユニットをSU組み合わせ、スレーブユニットSUに対して、電源制御、クロック周波数制御及び電源電圧制御を行なうようにしても良い。
【0116】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。