(57)【特許請求の範囲】
【請求項１】
バスに接続された制御回路と、
前記制御回路の制御により動作する第１回路と、
前記第１回路と電源との間に接続されたスイッチ素子と、
前記バスと前記第１回路との間に接続され、前記制御回路から前記バスを介して前記第１回路に送信される第１信号に応じて、前記スイッチ素子をオン状態にする第２回路と
を具備し、
前記第２回路は、前記制御から前記第１回路に送信される前記第１信号を遅延させるバッファと、
前記制御回路から前記第１回路に送信される前記第１信号を検知する検知回路と、
前記第１信号の検知に応じて、前記スイッチ素子をオンさせた後、前記バッファから前記第１回路に前記第１信号を送信させる第３回路と
を含む半導体装置。
【請求項２】
前記第２回路は、前記スイッチ素子をオン状態にした後に、前記第１回路に前記制御回路から送信された前記第１信号を転送する
請求項１記載の半導体装置。
【請求項３】
前記第２回路は、前記制御回路から前記第２回路に送信される第２信号に応じて、前記スイッチ素子をオフ状態にする
請求項１または２記載の半導体装置。
【請求項４】
前記第２回路は、第１期間、前記バスを介して前記制御回路と前記第１回路との間で送受信される信号がない場合に、前記スイッチ素子をオフ状態にする
請求項１または２記載の半導体装置。
【請求項５】
前記第１回路は、前記第１回路の動作状態に関する情報を保持するレジスタを含み、
前記第２回路は、前記レジスタに保持された前記情報を読み込み、前記情報に応じて、前記スイッチ素子をオフ状態にする
請求項１または２記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体装置に関する。
【背景技術】
【０００２】
半導体装置では、半導体装置内部の部分的な回路に対し、その回路を使用していない間、その回路への電源供給を遮断することにより、消費電力を低減する方法がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１１９５３号公報
【特許文献２】特開平１１−２１２６８７号公報
【特許文献３】特許第３３４３３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
消費電力を低減できる半導体装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る半導体装置は、バスに接続された制御回路と、制御回路の制御により動作する第１回路と、第１回路と電源との間に接続されたスイッチ素子と、バスと第１回路との間に接続され、制御回路からバスを介して第１回路に送信される第１信号に応じて、スイッチ素子をオン状態にする第２回路とを含む。第２回路は、制御から第１回路に送信される第１信号を遅延させるバッファと、制御回路から第１回路に送信される第１信号を検知する検知回路と、第１信号の検知に応じて、スイッチ素子をオンさせた後、バッファから第１回路に第１信号を送信させる第３回路とを含む。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係る半導体装置のブロック図である。
【図２】図２は、第１実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【図３】図３は、第１実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【図４】図４は、第１実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【図５】図５は、第２実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【図６】図６は、第２実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【図７】図７は、第２実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【図８】図８は、第３実施形態に係る半導体装置のブロック図である。
【図９】図９は、第４実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【図１０】図１０は、第４実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【図１１】図１１は、第４実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【図１２】図１２は、第５実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【図１３】図１３は、第５実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【図１４】図１４は、第５実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【図１５】図１５は、第５実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【図１６】図１６は、第６実施形態に係る半導体装置のブロック図である。
【図１７】図１７は、第６実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態
第１実施形態に係る半導体装置について説明する。以下では、半導体装置がＬＳＩ（large scale integration）である場合を例に挙げて説明する。
【０００９】
１．１  半導体装置の構成について  
まず、半導体装置の構成について説明する。
【００１０】
図１は、本実施形態に係る半導体装置における全体の構成を示すブロック図である。
【００１１】
図１に示すように、ＬＳＩ１は、ＣＰＵ（central processing unit）１０及び３個のスレーブユニットＳＵ１〜ＳＵ３を含む。なおスレーブユニットＳＵの個数は任意に設定可能である。
【００１２】
各スレーブユニットＳＵは、内部バスを介してＣＰＵ１０と接続されている。各スレーブユニットＳＵは、ＰＭＢ（power management bridge）回路２０、スレーブ回路３０、及びＰＳＷ（power switch）回路４０を含む。以下、特にスレーブユニットＳＵを限定する場合、スレーブユニットＳＵ１のＰＭＢ回路を２０＿１とし、スレーブ回路を３０＿１とし、ＰＳＷ回路を４０＿１とする。同様に、スレーブユニットＳＵ２のＰＭＢ回路を２０＿２とし、スレーブ回路を３０＿２とし、ＰＳＷ回路を４０＿２とする。また、スレーブユニットＳＵ３のＰＭＢ回路を２０＿３とし、スレーブ回路を３０＿３とし、ＰＳＷ回路を４０＿３とする。
【００１３】
ＰＭＢ回路２０は、内部バスとスレーブ回路３０との間に接続される。また、ＰＭＢ回路２０は、ＰＳＷ回路４０に接続され、ＰＳＷ回路４０に制御信号を送信する。ＰＭＢ回路２０は、スレーブ回路３０と内部バスとの間のアクセスを中継するバスブリッジ機能と、スレーブ回路３０の電源制御機能とを有する。
【００１４】
バスブリッジ機能について具体的に説明する。ＣＰＵ１０とスレーブ回路３０とのバスを介したアクセス（以下、「バスアクセス」と呼ぶ）は、ＰＭＢ回路２０を経由して行われる。以下、ＰＭＢ回路２０と内部バスとの間のアクセスをバスアクセスＡとし、ＰＭＢ回路２０とスレーブ回路３０との間のアクセスをバスアクセスＢとする。
【００１５】
ＰＭＢ回路２０は、バスブリッジ機能の１つとして、バスアクセスの応答を待たせる機能を有する。例えば、ＣＰＵ１０からスレーブ回路３０へのアクセスがあった場合、ＰＭＢ回路２０は、スレーブ回路３０の電源をオン状態にして、すなわちＰＳＷ回路４０をオン状態にして、一定時間経過してからスレーブ回路３０にアクセスする。すなわちＰＭＢ回路２０は、ＣＰＵ１０の制御信号（以下、「スレーブ制御信号」と呼ぶ）を、一定時間遅延させてからスレーブ回路３０に送信する。
【００１６】
また、ＰＭＢ回路２０は、非同期ブリッジとしての機能を有する。例えば、ＣＰＵ１０とスレーブ回路３０とが異なるクロックで動作する場合、ＰＭＢ回路２０は、ＣＰＵ１０から内部バスを介して送られてくるスレーブ制御信号（コマンド、アドレス、データ等）をスレーブ回路３０のクロックに同期させてスレーブ回路３０に送信する。スレーブ回路３０からＣＰＵ１０に信号が送信される場合も同様に、ＰＭＢ回路２０は、スレーブ回路３０から受信した信号をＣＰＵ１０のクロックに同期させてＣＰＵ１０（内部バス）に送信する。
【００１７】
また、ＰＭＢ回路２０は、バスアクセスＡにおけるバスプロトコルとバスアクセスＢにおけるバスプロトコルとが異なっている場合、プロトコル変換機能を有する。以下では、ＣＰＵ１０とスレーブ回路３０とが同じクロックで動作し、バスアクセスＡにおけるバスプロトコルとバスアクセスＢにおけるバスプロトコルとは、同じプロトコルである場合を例に説明する。この場合、非同期ブリッジ機能及びプロトコル変換機能は省略できる。
【００１８】
次に、ＰＭＢ回路２０が有するスレーブ回路３０の電源制御機能について具体的に説明する。ＰＭＢ回路２０は、ＰＳＷ回路４０にＰＳＣ（power switch control）信号を送信し、ＰＳＷ回路４０を制御する。ＰＳＣ信号は、ＰＳＷ回路４０のオン／オフ状態を制御するための信号である。例えばＰＭＢ回路２０は、ＣＰＵ１０からスレーブ回路３０へのバスアクセスをトリガーにして、ＰＳＷ回路４０をオン状態にする。これにより、スレーブ回路３０には、電源電圧ＶＤＤが供給される。すなわち、ＰＭＢ回路２０は、ＰＳＷ回路４０を制御することにより、スレーブ回路３０へ電源電圧ＶＤＤの供給を制御する。
【００１９】
また、本実施形態におけるＰＭＢ回路２０は、ＰＳＷ回路４０を制御するための制御レジスタ（不図示）を含む。ＰＭＢ回路２０は、例えばソフトウエアの制御、すなわちＣＰＵ１０からＰＭＢ回路２０内部の制御レジスタへのアクセスに応じて、ＰＳＷ回路４０をオフ状態にし、スレーブ回路３０への電源電圧ＶＤＤの供給を遮断させる、すなわちスレーブ回路３０の電源をオフさせる。
【００２０】
スレーブ回路３０は、ＣＰＵ１０の制御により各種処理を行う。スレーブ回路３０は、未使用状態の間、電源をオフされても良い。なおスレーブ回路３０＿１〜３０＿３はそれぞれ異なる処理を行う異なる回路構成であっても良い。更には、スレーブ回路３０は、ＣＰＵ１０により制御され、未使用期間に電源をオフできる回路であれば特に限定されない。例えば、演算回路でも良く、メモリ回路でも良く、外部デバイスを制御する制御回路でも良い。
【００２１】
ＰＳＷ回路４０は、電源電圧ＶＤＤが供給されている電源電圧線とスレーブ回路３０とを接続するスイッチング素子（例えばトランジスタ）を含む。例えば、ＰＳＷ回路４０は、ＰＳＣ信号が“Ｈ”レベルの間、オン状態（スイッチング素子が導通状態）となり、スレーブ回路３０に電源電圧ＶＤＤを供給する。以下、ＰＳＣ信号が“Ｈ”レベルの場合に、ＰＳＷ回路４０（スイッチング素子）がオン状態になる場合について説明する。なお、ＰＳＣ信号が“Ｌ”レベルの場合に、ＰＳＷ回路４０がオン状態となっても良い。
【００２２】
ＣＰＵ１０は、外部デバイスの命令に応答して、ＬＳＩ１内における各種制御を司る制御回路である。例えば、本実施形態におけるＣＰＵ１０は、スレーブ回路３０が未使用状態の場合に、スレーブ回路３０への電源電圧ＶＤＤの供給を遮断させる。
【００２３】
１．２  ＰＭＢ回路の構成について  
次に、ＰＭＢ回路２０の構成について説明する。
【００２４】
図２は、本実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【００２５】
図２に示すように、ＰＭＢ回路２０は、バススプリッター回路１０１、オリジナルバスブリッジ回路１０２、バッファ１０３、バスアクセス検知回路１０４、電源制御回路１０５、及びＰＳＷ制御回路１０６を含む。
【００２６】
バススプリッター回路１０１は、内部バス（バスアクセスＡ）、オリジナルバスブリッジ回路１０２、バスアクセス検知回路１０４、及び電源制御回路１０５に接続される。バススプリッター回路１０１は、ＣＰＵ１０からＰＭＢ回路２０内部の制御レジスタへのバスアクセスと、スレーブ回路３０へのバスアクセスとを分離する。より具体的には、ＣＰＵ１０がＰＭＢ回路２０内部の制御レジスタにアクセスする場合には、バススプリッター回路１０１は、ＣＰＵ１０から入力された信号（以下、「ＰＭＢ制御信号」と呼ぶ）を電源制御回路１０５に送信する。他方で、ＣＰＵ１０がスレーブ回路３０にアクセスする場合には、バススプリッター回路１０１は、ＣＰＵ１０から入力されたスレーブ制御信号をオリジナルバスブリッジ回路１０２及びバスアクセス検知回路１０４に送信する。
【００２７】
オリジナルバスブリッジ回路１０２は、バッファ１０３に接続される。オリジナルバスブリッジ回路１０２は、バスブリッジ機能を有し、例えばバスアクセスＡとバスアクセスＢのバスプロトコルが異なる場合、プロトコル変換を行う。なお、オリジナルバスブリッジ回路１０２は省略されても良い。
【００２８】
バッファ１０３は、スレーブ回路３０（バスアクセスＢ）に接続される。バッファ１０３は、ＣＰＵ１０からスレーブ回路３０へのバスアクセスを待たせる（スレーブ制御信号の送信を遅延させる）ための回路である。例えばバッファ１０３は、スレーブ回路３０の電源がオンしてから、電源が安定するまでの間、バスアクセスを待たせる。バッファ１０３は、ＰＳＷ制御回路から送信されるパワーレディ信号がアサートされると、スレーブ回路３０にアクセスを開始する。パワーレディ信号は、スレーブ回路３０がオン状態であり、且つ電源が安定した状態であることを示す信号である。
【００２９】
バスアクセス検知回路１０４は、ＰＳＷ制御回路１０６に接続される。バスアクセス検知回路１０４は、ＣＰＵ１０とスレーブ回路３０とのバスアクセスを検知する。バスアクセス検知回路１０４は、ＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知すると、ＰＳＷ制御回路１０６に対し、スレーブ回路３０の電源をオンにするように指示する。すなわち、バスアクセス検知回路１０４は、ＰＳＷ制御回路１０６に対し、ＰＳＣ信号を“Ｌ”レベルから“Ｈ”レベルに切り替えるように指示する。
【００３０】
電源制御回路１０５は、ＰＳＷ制御回路１０６に接続される。電源制御回路１０５は、ＰＳＷ回路４０、すなわちスレーブ回路３０の電源のオン／オフ（ＰＳＣ信号の“Ｈ”レベルと“Ｌ”レベルの切り替え）をソフトウエアで制御するための制御レジスタを有する。電源制御回路１０５は、制御レジスタの値に応じて、ＰＳＷ制御回路１０６に対し、ＰＳＷ回路４０のオンまたはオフを指示する。
【００３１】
ＰＳＷ制御回路１０６は、ＰＳＷ回路４０にＰＳＣ信号を送信する。より具体的には、ＰＳＷ制御回路１０６は、バスアクセス検知回路１０４あるいは電源制御回路１０５の命令に応じて、ＰＳＣ信号を“Ｈ”レベルとし、電源制御回路１０５の命令に応じて、ＰＳＣ信号を“Ｌ”レベルとする。
【００３２】
また、ＰＳＷ制御回路１０６は、パワーレディタイマ１０７を含む。
【００３３】
パワーレディタイマ１０７は、スレーブ回路３０をオンにしてから、すなわちＰＳＣ信号を“Ｌ”レベルから“Ｈ”レベルに切り替えてからパワーレディ信号をアサートするまでの期間を制御する。すなわち、パワーレディタイマ１０７は、スレーブ回路３０における電源安定化期間を制御する。
【００３４】
１．３  ＣＰＵからスレーブ回路へのアクセス動作について  
次にＣＰＵ１０からスレーブ回路３０へのアクセス動作について説明する。
【００３５】
１．３．１  アクセス動作の全体の流れについて  
まず、アクセス動作全体の流れについて説明する。以下では、説明を簡略化するために、ＣＰＵ１０からスレーブ回路３０にスレーブ制御信号が送信される場合について説明し、スレーブ回路３０からＣＰＵ１０に送信される信号については、説明を省略する。
【００３６】
図３は、本実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。図３では、ＣＰＵ１０からスレーブユニットＳＵに送信される信号に応じて、スレーブユニットＳＵ内のＰＭＢ回路２０、スレーブ回路３０、及びＰＳＷ回路４０がどのように動作するかをより具体的に示している。
【００３７】
図３に示すように、まずＣＰＵ１０は、内部バスにアクセス（バスアクセスＡ）し、スレーブユニットＳＵに対しスレーブ制御信号の送信を開始する（ステップＳ１０）。スレーブ制御信号には、例えばコマンド、アドレス情報、データ等が含まれる。
【００３８】
次に、スレーブユニットＳＵ内において、ＰＭＢ回路２０は、内部バスを介してスレーブ制御信号を受信すると（ステップＳ１１）、ＰＳＣ信号を“Ｌ”レベルから“Ｈ”レベルに切り替えて、ＰＳＷ回路４０に送信する（ステップＳ１２）。より具体的には、ＰＭＢ回路２０内において、バススプリッター回路１０１は、スレーブ制御信号を、オリジナルバスブリッジ回路１０２に転送する。このときバスアクセス検知回路１０４は、スレーブ制御信号を検知すると、ＰＳＷ制御回路１０６に、ＰＳＷ回路４０をオン状態にするように指示する。ＰＳＷ制御回路１０６は、パワーレディタイマ１０７のカウントを開始すると共に、ＰＳＣ信号を“Ｌ”レベルから“Ｈ”レベルに切り替える。
【００３９】
次に、ＰＳＷ回路４０は、ＰＳＣ信号が“Ｌ”レベルから“Ｈ”レベルに切り替わると、オン状態となり、スレーブ回路３０に電源電圧ＶＤＤを供給する（ステップＳ１３）。これによりスレーブ回路３０はオン状態となる（ステップＳ１４）。
【００４０】
次に、ＰＭＢ回路２０は、ＰＳＣ信号を“Ｌ”レベルから“Ｈ”レベルに切り替えてから一定時間経過後、スレーブ回路３０にアクセス（バスアクセスＢ）し、スレーブ制御信号を転送する（ステップＳ１５）。より具体的には、ＰＭＢ回路２０内において、パワーレディタイマ１０７は、カウント値が予め設定された値に達したら、パワーレディ信号をアサートする。バッファ１０３は、パワーレディ信号に応じて、スレーブ制御信号をスレーブ回路３０に転送する。
【００４１】
次に、スレーブ回路３０は、スレーブ制御信号に応じた処理を実行する（ステップＳ１６）。
【００４２】
次に、スレーブ回路３０における処理が完了し、スレーブ回路３０が待機状態になる（ステップＳ１７）と、ＣＰＵ１０は、ＰＭＢ回路２０に、スレーブ回路３０の電源をオフにするためのオフ信号を送信する（ステップＳ１８）。
【００４３】
次に、ＰＭＢ回路２０は、オフ信号を受信すると（ステップＳ１９）、ＰＳＷ回路４０に送信するＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替える（ステップＳ２０）。より具体的には、ＰＭＢ回路２０内において、バススプリッター回路１０１は、オフ信号を電源制御回路１０５に転送する。電源制御回路１０５は、オフ信号に応じて、ＰＳＷ制御回路１０６に、ＰＳＷ回路４０をオフ状態にするように指示する。ＰＳＷ制御回路１０６は、電源制御回路１０５の指示に応じて、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替える。
【００４４】
次に、ＰＳＷ回路４０は、ＰＳＣ信号が“Ｈ”レベルから“Ｌ”レベルに切り替わるとオフ状態となり、スレーブ回路３０への電源電圧ＶＤＤの供給を停止する（ステップＳ２１）。これによりスレーブ回路３０は、オフ状態となる（ステップＳ２２）。
【００４５】
１．３．２  バスアクセスのタイミングについて  
次に、バスアクセスのタイミングについて説明する。
【００４６】
図４は、本実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【００４７】
図４に示すように、ＰＭＢ回路２０は、まずバスアクセスＡにおいて、ＣＰＵ１０からスレーブ回路３０へのアクセスを検知すると、ＰＳＣ信号を例えば“Ｌ”レベルから“Ｈ”レベルに切り替えてＰＳＷ回路４０をオン状態にする（図４の（ａ））。これによりスレーブ回路３０は、電源電圧ＶＤＤを供給され、オン状態となる。そして、ＰＭＢ回路２０は、ＰＳＣ信号を“Ｌ”レベルから“Ｈ”レベルに切り替えて一定時間経過してから、バスアクセスＢにおいて、スレーブ回路３０へのアクセスを開始する（図４の（ｂ））。
【００４８】
スレーブ回路３０の作業終了後、ＣＰＵ１０は、ＰＭＢ回路２０内の電源制御回路１０５にアクセスする。より具体的には、ＰＭＢ回路２０は、バスアクセスＡにおいて、ＣＰＵ１０から例えばＰＭＢ制御信号（オフ信号）を受信すると、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替えて、ＰＳＷ回路４０をオフ状態にする（図４の（ｃ））。これによりスレーブ回路３０は、電源電圧ＶＤＤの供給を遮断されて、オフ状態となる。
【００４９】
１．４  本実施形態に係る効果について  
本実施形態に係る構成では、消費電力を低減できる。以下、具体的に説明する。
【００５０】
半導体装置においては、消費電力を低減する方法として、使用しないスレーブ回路の電源を遮断する、すなわち使用するときだけスレーブ回路に電源を供給することにより消費電力を低減する方法が広く知られている。
【００５１】
スレーブ回路の使用状態は、関連するアプリケーションに依存する。従って、スレーブ回路の電源制御（オン／オフの制御）、及びスレーブ回路の電源が安定してからスレーブ回路に制御信号を送信するまでの待機期間（電源安定化期間）の制御は、アプリケーション動作の１つとしてソフトウエアにより行われる場合がある。この場合、これらの制御をするためのプログラムコードをソフトウエアに実装する必要がある。このため、プログラムコードが複雑となり、ソフトウエアの開発費及び開発工期が増加する傾向にある。またＣＰＵにおける作業量が増えるため、その分、半導体装置の処理が遅くなる可能性がある。
【００５２】
また、スレーブ回路の電源を制御する場合、例えば内部バスとスレーブ回路とを接続するバスブリッジ回路と、スレーブ回路の電源を制御するＰＭＵ回路（power management unit）とが設けられる。このような構成では、バスブリッジ回路とＰＭＵ回路がＣＰＵにより別々に制御される。ＣＰＵは、まずＰＭＵ回路を制御してスレーブ回路の電源をオン状態にする。そして、電源が安定化した後に、スレーブ回路（バスブリッジ回路）への信号の送信を開始する。従って、ＣＰＵからスレーブ回路に信号を送信するまでには、スレーブ回路の電源安定化期間とバスブリッジ回路による待ち時間が別々に発生し、半導体装置の処理が遅くなる可能性がある。
【００５３】
これに対し、本実施形態に係る構成では、内部バスとスレーブ回路３０との間に設けられたＰＭＢ回路２０が、バスブリッジ機能と、スレーブ回路３０の電源制御機能とを有する。スレーブ回路３０は、ＣＰＵ１０からスレーブ回路３０へのバスアクセスに応じて動作を開始する。このため、ＰＭＢ回路２０は、ＣＰＵ１０からのバスアクセスに応じて、スレーブ回路３０の電源制御を行うことができる。従って、スレーブ回路３０における消費電力を低減することができ、半導体装置の消費電力を低減できる。
【００５４】
更に本実施形態に係る構成では、ＰＭＢ回路２０は、ＣＰＵ１０からスレーブ回路３０へのバスアクセスをトリガーとしてスレーブ回路３０をオン状態にする。すなわち、ソフトウエアにより制御することなく。ＰＭＢ回路２０がスレーブ回路３０をオンさせることができる。よって、電源制御に関するプログラムを簡略化することができ、ソフトウエアの開発費及び開発工期を短縮できる。
【００５５】
更に本実施形態に係る構成では、ソフトウエアによるスレーブ回路３０のオン動作の制御が不要となるため、ＣＰＵ１０における作業量を軽減できる。よって半導体装置の処理速度を向上できる。
【００５６】
更に本実施形態に係る構成では、ＰＭＢ回路２０がバスブリッジ機能とスレーブ回路３０の電源制御機能を有するため、ＰＭＢ回路２０は、スレーブ回路３０の電源安定化期間とバスブリッジ機能として必要な待ち時間をオーバーラップさせることができる。すなわちＰＭＢ回路２０は、スレーブ回路３０の立ち上げ動作と、バスブリッジとしての待ち時間の処理（信号の同期処理、プロトコル変換等）を並列に行うことができる。このため、ＣＰＵ１０からスレーブ回路３０に信号が送信されるまでの待ち時間を短縮することができ、処理速度を向上させることができる。
【００５７】
更に本実施形態に係る構成では、ＰＭＵ回路を省略できるため、チップ面積の増加を抑制できる。
【００５８】
更に本実施形態に係る構成では、ＰＭＢ回路２０は、スレーブ回路３０の構成に依存しないため、同じＰＭＢ回路２０を他のスレーブ回路３０にも利用することができ、設計効率の高い半導体装置の設計ができる。
【００５９】
２．第２実施形態  
次に、第２実施形態について説明する。第１実施形態と異なる点は、スレーブ回路３０がアイドル状態、すなわちスレーブ回路３０の電源をオンした状態で、ＣＰＵ１０とスレーブ回路３０とのバスアクセスが無い状態になると、一定時間経過後にスレーブ回路３０の電源をオフにする点である。以下、第１実施形態と異なる点についてのみ説明する。
【００６０】
２．１  ＰＭＢ回路の構成について  
まず、ＰＭＢ回路２０の構成について説明する。
【００６１】
図５は、本実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【００６２】
図５に示すように、ＰＭＢ回路２０は、バススプリッター回路１０１、オリジナルバスブリッジ回路１０２、バッファ１０３、バスアクセス検知回路１０４、ＰＳＷ制御回路１０６、コンフィグレーションレジスタ１０８、及びアイドルタイムカウンタ１０９を含む。
【００６３】
バススプリッター回路１０１は、内部バス（バスアクセスＡ）、オリジナルバスブリッジ回路１０２、バスアクセス検知回路１０４、及びコンフィグレーションレジスタ１０８に接続される。ＣＰＵ１０がＰＭＢ制御信号を送信した場合には、バススプリッター回路１０１は、ＰＭＢ制御信号をコンフィグレーションレジスタ１０８に送信する。
【００６４】
バスアクセス検知回路１０４は、ＰＳＷ制御回路１０６及びアイドルタイムカウンタ１０９に接続される。バスアクセス検知回路１０４は、ＣＰＵ１０からスレーブ回路３０へのバスアクセス、すなわちスレーブ制御信号を検知すると、ＰＳＷ制御回路１０６にＰＳＷ回路４０をオン状態にするように指示する。また、バスアクセス検知回路１０４は、ＣＰＵ１０とスレーブ回路３０とがバスアクセスしていない状態、すなわちスレーブ回路３０がアイドル状態になると、アイドルタイムカウンタ１０９にカウントの開始を指示する。
【００６５】
コンフィグレーションレジスタ１０８は、アイドルタイムカウンタ１０９に接続される。コンフィグレーションレジスタ１０８は、ＰＭＢ回路２０内の各種設定を保持するレジスタである。例えばコンフィグレーションレジスタ１０８は、ソフトウエア（ＣＰＵ１０）によりアイドルタイムコンフィグレーションを設定される。アイドルタイムコンフィグレーションは、スレーブ回路３０がアイドル状態になってから電源をオフされるまでのアイドル期間の設定値である。コンフィグレーションレジスタ１０８は、アイドルタイムコンフィグレーションが変更されると、新しい設定値をアイドルタイムカウンタ１０９に送信する。
【００６６】
アイドルタイムカウンタ１０９は、ＰＳＷ制御回路１０６に接続される。アイドルタイムカウンタ１０９は、アイドル期間の長さを測るカウンタである。アイドルタイムカウンタ１０９は、バスアクセス検知回路１０４からのカウント開始指示に応じて、まずカウンタを初期化した後、カウントを開始する。カウント中に再度、バスアクセス検知回路１０４からカウント開始の指示があった場合には、カウントは再スタートとなる。アイドルタイムカウンタ１０９は、カウント値を再度初期化した後、カウントを開始する。カウント値が設定値に達すると、アイドルタイムカウンタ１０９は、カウントを停止し、ＰＳＷ制御回路１０６にＰＳＷ回路４０（スレーブ回路３０）をオフ状態にするように指示する。
【００６７】
２．２  アクセス動作の全体の流れについて  
次に、アクセス動作全体の流れについて説明する。
【００６８】
図６は、本実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【００６９】
図６に示すように、ステップＳ１０からステップＳ１７、及びステップＳ２０〜Ｓ２２における動作は、第１実施形態の図３と同じである。
【００７０】
ＰＭＢ回路２０は、ＣＰＵ１０から送信されたスレーブ制御信号をスレーブ回路３０に送信した後（ステップＳ１５）、アイドルタイムカウンタ１０９において、アイドル期間のカウント値を初期化する（ステップＳ３０）。より具体的には、ＰＭＢ回路２０内において、バスアクセス検知回路１０４は、ＣＰＵ１０とスレーブ回路３０とがバスアクセスしていない状態、すなわちスレーブ回路３０がアイドル状態になると、アイドルタイムカウンタ１０９にアイドル期間のカウントの開始を指示する。アイドルタイムカウンタ１０９は、カウント値の初期化を行った後に、カウントを開始する。
【００７１】
ＣＰＵ１０からスレーブユニットＳＵにスレーブ制御信号が送信された場合（ステップＳ３１）、すなわちＰＭＢ回路２０がＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知した場合（ステップＳ３２＿Ｙｅｓ）、ＰＭＢ回路２０は、ステップＳ１５に戻り、スレーブ制御信号をスレーブ回路３０に送信する。次にステップＳ３０において、ＰＭＢ回路２０（バスアクセス検知回路１０４）は、アイドルタイムカウンタ１０９のカウント値を初期化する。アイドルタイムカウンタ１０９は、カウント中に、バスアクセス検知回路１０４からカウント開始の指示を受けると、アイドル期間のカウント値を初期化してからカウントを再開する。
【００７２】
他方で、アイドル期間のカウント中に、ＣＰＵ１０からスレーブ回路３０にスレーブ制御信号が送信されない場合、すなわちステップＳ３１が実行されずにＰＭＢ回路２０がＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知しなかった場合（ステップＳ３２＿Ｎｏ）、ＰＭＢ回路２０は、アイドル期間をカウントアップする（ステップＳ３３）。すなわちアイドルタイムカウンタ１０９は、アイドル期間のカウント値をカウントアップする。
【００７３】
アイドルタイムカウンタ１０９のカウント値が予め設定された値に達していない場合（ステップＳ３４＿Ｎｏ）、ＰＭＢ回路２０は、ステップＳ３２に戻り、アクセスの検知とアイドル期間のカウントアップを繰り返す。
【００７４】
そして、ＰＭＢ回路２０は、アイドルタイムカウンタ１０９のカウント値が予め設定された値に達すると（ステップＳ３４＿Ｙｅｓ）、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替える（ステップＳ２０）。より具体的には、ＰＭＢ回路２０内のアイドルタイムカウンタ１０９は、ＰＳＷ制御回路１０６に、ＰＳＷ回路４０をオフ状態にするように指示する。
【００７５】
２．３  バスアクセスのタイミングについて  
次に、バスアクセスのタイミングについて説明する。
【００７６】
図７は、本実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【００７７】
図７に示すように、ＣＰＵ１０からスレーブ回路３０へのアクセスまでのタイミング（図７の（ａ）及び（ｂ））は、第１実施形態の図４と同じである。
【００７８】
ＰＭＢ回路２０は、バスアクセスＡにおいて、ＣＰＵ１０とのアクセスが終了すると、アイドル期間のカウントを開始する。そしてＰＭＢ回路２０は、予め設定されたカウント値に達した後、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替えて、ＰＳＷ回路４０をオフ状態にする（図７の（ｄ））。これによりスレーブ回路３０は、電源電圧ＶＤＤの供給を遮断されて、オフ状態となる。
【００７９】
２．４  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様の効果を得ることができる。
【００８０】
また、ＣＰＵ１０がスレーブ回路３０を使用する場合、ある一定時間にアクセスが集中する傾向にある。例えば、スレーブ回路３０が演算器であれば、データを入力し、処理が終わってから結果を読み出すまでの期間にアクセスが集中する。また、スレーブ回路３０がデータ転送のコントローラであれば、データ転送の期間にアクセスが集中する。また、スレーブ回路３０が記憶回路であれば、データの書き込みまたは読み出し動作の期間にアクセスが集中する。従って、アクセスが集中している期間を、スレーブ回路３０が処理を実行している期間（使用期間）と見なし、アクセスがないアイドル期間をスレーブ回路３０が処理を実行していない期間（未使用期間）と見なすことができる。従って、アイドル期間が一定時間以上継続した場合には、スレーブ回路における処理が終了している可能性が高い。
【００８１】
そこで、本実施形態に係る構成では、アイドル期間が一定時間続くと、ＰＭＢ回路２０はスレーブ回路３０をオフにする。これにより、スレーブ回路３０における消費電力を低減できる。従って、半導体装置の消費電力を低減できる。
【００８２】
更に本実施形態に係る構成では、ソフトウエアにより制御することなく。ＰＭＢ回路２０はスレーブ回路３０をオフさせることができる。よって、プログラムを更に簡略化することができ、ソフトウエアの開発費及び開発工期を短縮できる。
【００８３】
更に本実施形態に係る構成では、ＰＭＢ回路２０は、アイドル期間の設定値を保持するためのレジスタを含む。そして、レジスタの設定を変更することにより、アイドル期間の長さを変更できる。従って、各ＰＭＢ回路２０は、対応するスレーブ回路３０に合わせてアイドル期間を設定できる。
【００８４】
３．第３実施形態  
次に、第３実施形態について説明する。第１及び第２実施形態と異なる点は、１つのスレーブユニットＳＵが２つのスレーブ回路３０を含む点である。以下、第１及び第２実施形態と異なる点についてのみ説明する。
【００８５】
３．１  半導体装置の構成について  
まず、半導体装置の構成について説明する。
【００８６】
図８は、本実施形態に係る半導体装置における全体の構成を示すブロック図である。
【００８７】
図１に示すように、ＬＳＩ１は、ＣＰＵ１０及び２個のスレーブユニットＳＵ１及びＳＵ２＿３を含む。
【００８８】
スレーブユニットＳＵ１は、第１実施形態の図１と同じである。
【００８９】
本実施形態のスレーブユニットＳＵ２＿３は、ＰＭＢ回路２０＿２＿３、２個のスレーブ回路３０＿２及び３０＿３、ＰＳＷ回路４０＿２＿３、及びサブバスを含む。なお、スレーブ回路３０は３個以上でも良い。
【００９０】
ＰＭＢ回路２０＿２＿３は、サブバスを介してスレーブ回路３０＿２及び３０＿３に接続される。サブバスを介したＰＭＢ回路２０＿２とスレーブ回路３０＿２及び３０＿３とのアクセスをバスアクセスＢとする。
【００９１】
ＰＭＢ回路２０＿２＿３は、ＣＰＵ１０からスレーブ回路３０＿２あるいは３０＿３へのバスアクセスをトリガーにして、ＰＳＷ回路４０＿２＿３をオン状態にする。すなわちＰＭＢ回路２０＿２＿３は、スレーブ回路３０＿２及び３０＿３をオン状態にする。
【００９２】
またＰＭＢ回路２０＿２＿３は、第２実施形態と同様に、ＣＰＵ１０からスレーブ回路３０＿２及び３０＿３にバスアクセスしない状態が一定時間続くと、ＰＳＷ回路４０＿２＿３、すなわちスレーブ回路３０＿２及び３０＿３をオフにする。なお、ＰＭＢ回路２０＿２＿３は、第１実施形態と同様に、ソフトウエアの制御により、ＰＳＷ回路４０＿２＿３をオフ状態にしても良い。
【００９３】
ＰＳＷ回路４０＿２＿３は、電源電圧ＶＤＤが供給されている電源電圧線とスレーブ回路３０＿２及び３０＿３とを接続するスイッチング素子（例えばトランジスタ）を含む。例えば、ＰＳＷ回路４０は、ＰＳＣ信号が“Ｈ”レベルの間、オン状態（スイッチング素子が導通状態）となり、スレーブ回路３０＿２及び３０＿３に電源電圧ＶＤＤを供給する。
【００９４】
３．２  本実施形態に係る効果について
本実施形態に係る構成であると、第１及び第２実施形態と同様の効果を得ることができる。
【００９５】
更に本実施形態に係る構成では、１つのＰＭＢ回路２０が、複数のスレーブ回路３０の電源を制御するため、ＰＭＢ回路２０の個数を削減できる。よってチップ面積の増加を抑制できる。
【００９６】
４．第４実施形態  
次に、第４実施形態について説明する。第１乃至第３実施形態と異なる点は、ＣＰＵ１０からスレーブ回路３０に対し、特定の信号（コマンド）のバスアクセスがあった場合に、それをトリガーとして、ＰＳＷ回路４０をオフにする点である。本実施形態では、信号（コマンド）の例として、ＣＰＵ１０からスレーブ回路３０に処理を停止させるためのストップコマンドを送信する場合について説明する。以下、第１乃至第３実施形態と異なる点についてのみ説明する。
【００９７】
４．１  ＰＭＢ回路の構成について  
まず、ＰＭＢ回路２０の構成について説明する。
【００９８】
図９は、本実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【００９９】
図９に示すように、ＰＭＢ回路２０は、バススプリッター回路１０１、オリジナルバスブリッジ回路１０２、バッファ１０３、バスアクセス検知回路１０４、ＰＳＷ制御回路１０６、コンフィグレーションレジスタ１０８、及びストップコマンド検知回路１１０を含む。
【０１００】
バススプリッター回路１０１は、内部バス（バスアクセスＡ）、オリジナルバスブリッジ回路１０２、バスアクセス検知回路１０４、ストップコマンド検知回路１１０、及びコンフィグレーションレジスタ１０８に接続される。バススプリッター回路１０１は、ＣＰＵ１０がコンフィグレーションレジスタ１０８にアクセスする場合には、ＣＰＵ１０から入力されたＰＭＢ制御信号をコンフィグレーションレジスタ１０８に送信する。他方で、ＣＰＵ１０がスレーブ回路３０にアクセスする場合には、バススプリッター回路１０１は、ＣＰＵ１０から入力されたスレーブ制御信号をオリジナルバスブリッジ回路１０２、バスアクセス検知回路１０４、及びストップコマンド検知回路１１０に送信する。
【０１０１】
バスアクセス検知回路１０４は、ＰＳＷ制御回路１０６に接続される。
【０１０２】
コンフィグレーションレジスタ１０８は、ストップコマンド検知回路１１０に接続される。コンフィグレーションレジスタ１０８は、例えばストップコマンドコンフィグレーションに関する情報を保持する。ストップコマンドコンフィグレーションは、ストップコマンドのアドレスや書き込みデータなど、ストップコマンドを特定するための情報の設定値である。コンフィグレーションレジスタ１０８は、ソフトウエアによってストップコマンドコンフィグレーションが変更されると、新しい設定値をストップコマンド検知回路１１０に送信する。
【０１０３】
ストップコマンド検知回路１１０は、ＰＳＷ制御回路１０６に接続される。ストップコマンド検知回路１１０は、ストップコマンドを検知する。ストップコマンド検知回路１１０は、ストップコマンドを検知した場合、ＰＳＷ制御回路１０６にＰＳＷ回路４０をオフ状態にするように指示する。なお、ストップコマンド検知回路１１０は、ストップコマンドを検知してからの経過時間をカウントするためのカウンタを含んでいても良い。この場合、ストップコマンド検知回路１１０は、ストップコマンドを検知してから予め設定された期間経過してから、ＰＳＷ制御回路１０６に、ＰＳＷ回路４０をオフ状態にするように指示しても良い。
【０１０４】
４．２  アクセス動作の全体の流れについて  
次に、アクセス動作全体の流れについて説明する。
【０１０５】
図１０は、本実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【０１０６】
図１０に示すように、ステップＳ１０からステップＳ１６及びステップＳ２０からステップＳ２２における動作は、第１実施形態の図３と同じである。
【０１０７】
ＣＰＵ１０は、例えばスレーブ回路３０における処理終了後、スレーブユニットＳＵ（スレーブ回路３０）に、スレーブ回路３０を停止させるためのストップコマンドを送信する（ステップＳ４０）。
【０１０８】
次に、ＰＭＢ回路２０は、ストップコマンドを受信すると（ステップＳ４１）、スレーブ回路３０にストップコマンドを送信する。これによりスレーブ回路３０は、例えば処理が終了していない場合においても処理を中止して動作を停止させる（ストップＳ４２）。
【０１０９】
次にＰＭＢ回路は、ストップコマンドをスレーブ回路３０に送信した後、一定時間経過後、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替える（ステップＳ２０）。
【０１１０】
４．３  バスアクセスのタイミングについて  
次に、バスアクセスのタイミングについて説明する。
【０１１１】
図１１は、本実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【０１１２】
図１１に示すように、ＣＰＵ１０からスレーブ回路３０へのアクセスまでのタイミング（図１１の（ａ）及び（ｂ））は、第１実施形態の図４と同じである。
【０１１３】
ＰＭＢ回路２０は、バスアクセスＡにおいて、ＣＰＵ１０からストップコマンドを受信すると、バスアクセスＢにおいて、スレーブ回路３０にストップコマンドを送信する（図１１の（ｅ））。そして、ＰＭＢ回路２０は、スレーブ回路３０へのストップコマンド送信が完了した後、一定時間経過してからＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替えて、ＰＳＷ回路４０をオフ状態にする（図１１の（ｆ））。これによりスレーブ回路３０は、電源電圧ＶＤＤの供給を遮断されて、オフ状態となる。
【０１１４】
４．４  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様の効果を得ることができる。
【０１１５】
更に本実施形態に係る構成では、ＰＭＢ回路２０は、ＣＰＵ１０からスレーブ回路３０に送信される特定のコマンド（例えばストップコマンド）をトリガーとして、ＰＳＷ回路４０をオフ状態にする。よって、ＰＭＢ回路２０は、この特定のコマンドにより、スレーブ回路３０が未使用状態になることを確認して、スレーブ回路３０の電源をオフできる。このため、スレーブ回路３０がアイドル状態で維持されている期間を短縮させることができ、より効果的に消費電力を低減できる。
【０１１６】
更に本実施形態に係る構成では、ＰＭＢ回路２０は、この特定のコマンドにより、スレーブ回路３０が未使用状態になることを確認した後、スレーブ回路３０の電源をオフにする。よって、スレーブ回路３０が使用状態のときに誤ってスレーブ回路３０の電源をオフにするといった誤動作を抑制できる。従って、半導体装置の信頼を向上できる。
【０１１７】
更に本実施形態に係る構成では、ソフトウエアにより制御することなく。ＰＭＢ回路２０がスレーブ回路３０をオフさせる。よって、プログラムを簡略化することができ、ソフトウエアの開発費及び開発工期を短縮できる。
【０１１８】
更に、ＰＭＢ回路２０は、トリガーとなるコマンドに関する設定値を保持するためのレジスタを含む。従って、各ＰＭＢ回路２０は、対応するスレーブ回路３０に応じて、異なるコマンドをトリガーとして設定できる。
【０１１９】
５．第５実施形態
次に、第５実施形態について説明する。第５実施形態では、ＰＭＢ回路２０は、スレーブ回路３０の状態を確認し、スレーブ回路３０がアイドル状態にある場合に、スレーブ回路３０をオフさせる点である。以下、第１乃至第４実施形態と異なる点についてのみ説明する。
【０１２０】
５．１  ＰＭＢ回路の構成について  
まず、ＰＭＢ回路２０の構成について説明する。
【０１２１】
図１２は、本実施形態に係る半導体装置におけるＰＭＢ回路のブロック図である。
【０１２２】
図１２に示すように、ＰＭＢ回路２０は、バススプリッター回路１０１、オリジナルバスブリッジ回路１０２、バッファ１０３、バスアクセス検知回路１０４、ＰＳＷ制御回路１０６、コンフィグレーションレジスタ１０８、アイドルタイムカウンタ１０９、スレーブステータスモニタ１１１、及びバスアービタ１１４を含む。
【０１２３】
バススプリッター回路１０１は、内部バス（バスアクセスＡ）、オリジナルバスブリッジ回路１０２、バスアクセス検知回路１０４、及びコンフィグレーションレジスタ１０８に接続される。
【０１２４】
バスアクセス検知回路１０４は、ＰＳＷ制御回路１０６、アイドルタイムカウンタ１０９、及びスレーブステータスモニタ１１１に接続される。バスアクセス検知回路１０４は、ＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知すると、ＰＳＷ制御回路１０６に対し、スレーブ回路３０の電源をオンにするように指示する。更に、バスアクセス検知回路１０４は、スレーブステータスモニタ１１１に対し、スレーブ回路３０の監視を停止するように指示する。また、バスアクセス検知回路１０４は、ＣＰＵ１０とスレーブ回路３０とのバスアクセスが無い状態（アイドル状態）になると、アイドルタイムカウンタ１０９にカウントの開始を指示するスタート信号を送信する。
【０１２５】
コンフィグレーションレジスタ１０８は、アイドルタイムカウンタ１０９、及びスレーブステータスモニタ１１１に接続される。コンフィグレーションレジスタ１０８は、例えばアイドルタイムコンフィグレーション、ポーリング間隔コンフィグレーション、及びリードコマンドコンフィグレーションに関する情報を保持する。ポーリング間隔コンフィグレーションは、スレーブステータスモニタ１１１が発行するレジスタリードコマンドの発行間隔の設定値である。リードコマンドコンフィグレーションは、スレーブステータスモニタ１１１が発行するレジスタリードコマンドのアドレス情報や、スレーブ回路３０から読み込んだレジスタ情報の解釈の方法（未使用状態と判定できるレジスタのリード値など）の設定値である。コンフィグレーションレジスタ１０８は、ソフトウエアによってアイドルタイムコンフィグレーションを変更されると、アイドルタイムカウンタ１０９に新しい設定値を送信する。また、コンフィグレーションレジスタ１０８は、ソフトウエアによってポーリング間隔コンフィグレーション、あるいはリードコマンドコンフィグレーションを変更されると、スレーブステータスモニタ１１１に新しい設定値を送信する。
【０１２６】
アイドルタイムカウンタ１０９は、スレーブステータスモニタ１１１に接続される。アイドルタイムカウンタ１０９は、バスアクセス検知回路１０４の指示により、カウントを開始し、カウント値が設定値に達すると、カウントを停止し、スレーブステータスモニタ１１１にスレーブ回路３０の監視を開始するように指示する。
【０１２７】
スレーブステータスモニタ１１１は、バスアービタ１１４、及びＰＳＷ制御回路１０６に接続される。スレーブステータスモニタ１１１は、スレーブ回路３０が未使用状態か否かを監視する。スレーブステータスモニタ１１１は、アイドルタイムカウンタ１０９から指示を受けると、一定間隔でスレーブ回路３０に対しレジスタリードコマンドを発行する。そして、スレーブステータスモニタ１１１は、スレーブ回路３０のレジスタ値を読み込み、スレーブ回路３０が未使用状態であると判定した場合、ＰＳＷ制御回路１０６に対し、スレーブ回路３０の電源をオフ状態にするように指示する。また、スレーブステータスモニタ１１１は、バスアクセス検知回路１０４からの指示に応じて、スレーブ回路３０の監視を終了する。すなわちＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知すると、スレーブステータスモニタ１１１は、スレーブ回路３０の監視を終了する。
【０１２８】
スレーブステータスモニタ１１１は、ポーリング間隔タイマ１１２及びリードコマンド生成回路１１３を含む。
【０１２９】
ポーリング間隔タイマ１１２は、スレーブステータスモニタ１１１が発行するレジスタリードコマンドの発行間隔を制御する。
【０１３０】
リードコマンド生成回路１１３は、レジスタリードコマンドを発行する。
【０１３１】
バスアービタ１１４は、スレーブ回路３０（バスアクセスＢ）に接続される。バスアービタ１１４は、ＣＰＵ１０とスレーブ回路３０とのアクセス、及びスレーブステータスモニタ１１１とスレーブ回路３０とのアクセスの調停機能を有する。より具体的には、例えばバスアービタ１１４は、スレーブステータスモニタ１１１とスレーブ回路３０がアクセス中の場合、ＣＰＵ１０からスレーブ回路３０へのアクセスを待たせる。
【０１３２】
５．２  アクセス動作の全体の流れについて  
次に、アクセス動作全体の流れについて説明する。
【０１３３】
図１３及び図１４は、本実施形態に係る半導体装置におけるＣＰＵとスレーブユニットとのアクセスを示すフローチャートである。
【０１３４】
図１３及び図１４に示すように、ステップＳ１０からステップＳ１６、ステップＳ２０〜Ｓ２２、及びステップＳ３０〜Ｓ３４における動作は、第２実施形態の図６と同じである。
【０１３５】
ＰＭＢ回路２０は、アイドルタイムカウンタ１０９のカウント値が予め設定された値に達すると（ステップＳ３４＿Ｙｅｓ）、スレーブ回路３０の監視を開始する。
【０１３６】
より具体的には、ＣＰＵ１０からスレーブ回路３０にスレーブ制御信号が送信された場合（ステップＳ５０）、すなわちＰＭＢ回路２０がＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知した場合（ステップＳ５１＿Ｙｅｓ）、ＰＭＢ回路２０は、スレーブ回路３０の監視を行わず、ステップＳ１５に戻り、スレーブ制御信号をスレーブ回路３０に送信する。
【０１３７】
他方で、ＣＰＵ１０からスレーブ回路３０にスレーブ制御信号が送信されない場合、すなわちステップＳ５０が実行されずにＰＭＢ回路２０がＣＰＵ１０からスレーブ回路３０へのバスアクセスを検知しなかった場合（ステップＳ５１＿Ｎｏ）、ＰＭＢ回路２０は、スレーブ回路３０を監視するために、レジスタリードコマンドを発行し、スレーブ回路３０に送信する（ステップＳ５２）。スレーブ回路３０は、レジスタリードコマンドに応じて、レジスタ情報をＰＭＢ回路２０に送信する（ステップＳ５３）。
ＰＭＢ回路２０は、取得したレジスタ情報を元にスレーブ回路３０が使用状態にあると判定した場合（ステップＳ５４＿Ｎｏ）、ステップＳ５１に戻り、ＣＰＵ１０からのアクセスの検知と、スレーブ回路３０の監視を継続する。すなわち、ＰＭＢ回路２０は、ＣＰＵ１０からのアクセスが無い場合、スレーブ回路３０が未使用状態になるまで、定期的にスレーブ回路３０のレジスタ情報の取得を繰り返す。
【０１３８】
ＰＭＢ回路２０は、取得したレジスタ情報を基にスレーブ回路３０が未使用状態にあると判定した場合（ステップＳ５４＿Ｙｅｓ）、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替える（ステップＳ２０）。
【０１３９】
５．３  バスアクセスのタイミングについて  
次に、バスアクセスのタイミングについて説明する。
【０１４０】
図１５は、本実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【０１４１】
図１５に示すように、ＣＰＵ１０からスレーブ回路３０へのアクセスまでの流れ（図１５の（ａ）及び（ｂ））は、第１実施形態の図４と同じである。
【０１４２】
ＰＭＢ回路２０は、バスアクセスＡにおいて、ＣＰＵ１０とのアクセスが終了すると、アイドル期間のカウントを開始し、予め設定されたカウント値に達すると、バスアクセスＢにおいて、スレーブ回路３０のステータスを確認するため、スレーブ回路３０への定期的なアクセスを開始する（図１５の（ｇ））。そして、ＰＭＢ回路２０は、スレーブ回路３０が未使用状態であると判定すると、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替えて、ＰＳＷ回路４０をオフ状態にする（図１５の（ｈ））。これによりスレーブ回路３０は、電源電圧ＶＤＤの供給を遮断されて、オフ状態となる。
【０１４３】
５．４  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様の効果を得ることができる。
【０１４４】
更に本実施形態に係る構成では、ＣＰＵ１０からスレーブ回路３０にバスアクセスしない状態が一定時間続くと、ＰＭＢ回路２０は、スレーブ回路３０の状態を定期的に確認する。そしてＰＭＢ回路２０は、スレーブ回路３０が未使用状態になったのを確認した後、スレーブ回路３０の電源をオフにする。このため、スレーブ回路３０がアイドル状態で維持されている期間を短縮させることができ、より効果的に消費電力を低減できる。
【０１４５】
更に本実施形態に係る構成では、ＰＭＢ回路２０は、スレーブ回路３０が未使用状態になったのを確認した後、スレーブ回路３０の電源をオフにする。よって、スレーブ回路３０が使用状態のときに誤ってスレーブ回路３０の電源をオフにするといった誤動作を抑制できる。従って、半導体装置の信頼を向上できる。
【０１４６】
更に本実施形態に係る構成では、ソフトウエアにより制御することなく。ＰＭＢ回路２０がスレーブ回路３０をオフさせる。よって、プログラムを簡略化することができ、ソフトウエアの開発費及び開発工期を短縮できる。
【０１４７】
６．第６実施形態
次に、第６実施形態について説明する。第５実施形態と異なる点は、スレーブ回路３０はＣＰＵ１０に割り込み通知を発行する機能を有する点である。以下、第１乃至第５実施形態と異なる点について説明する。
【０１４８】
６．１  半導体装置の構成について  
まず、半導体装置の構成について説明する。
【０１４９】
図１６は、本実施形態に係る半導体装置における全体の構成を示すブロック図である。
【０１５０】
図１６に示すように、ＬＳＩ１は、ＣＰＵ１０及び３個のスレーブユニットＳＵ１〜ＳＵ３を含む。
【０１５１】
スレーブユニットＳＵ１〜ＳＵ３は、第１実施形態の図１と同様に、ＰＭＢ回路２０、スレーブ回路３０、及びＰＳＷ回路４０をそれぞれ含む。
【０１５２】
本実施形態のＰＭＢ回路２０は、第５実施形態と同じである。
【０１５３】
本実施形態のスレーブ回路３０は、内部バスとは別に割り込み通知信号線を介してＣＰＵ１０と接続されている。割り込み通知信号は、スレーブ回路３０における処理が終了した場合に、スレーブ回路３０からＣＰＵ１０に送信される。スレーブ回路３０は、例えば割り込み通知を有効にするか無効にするかを設定する制御レジスタ（不図示）を含む。スレーブ回路３０は、ＣＰＵ１０からのバスアクセスに応じて処理を行っている状態では、割り込み通知を有効にし、処理が完了した状態では、割り込み通知を無効にする。
【０１５４】
６．２  アクセス動作の全体の流れについて  
次に、アクセス動作全体の流れについて説明する。本実施形態におけるアクセス動作全体の流れは、第５実施形態の図１３及び図１４と同じである。
【０１５５】
本実施形態では、ステップＳ５１において、スレーブ回路３０が、ＰＭＢ回路２０に、割り込み通知の設定に関するレジスタ値を送信する。そして、ＰＭＢ回路２０は、レジスタ値から、割り込み通知が無効か有効か、すなわちスレーブ回路が未使用状態にあるか、使用状態にあるかを確認する。
【０１５６】
６．３  バスアクセスのタイミングについて  
次に、バスアクセスのタイミングについて説明する。
【０１５７】
図１７は、本実施形態に係る半導体装置におけるバスアクセスのタイミングチャートである。
【０１５８】
図１７に示すように、ＣＰＵ１０からスレーブ回路３０へのアクセスまでの流れ（図１７の（ａ）及び（ｂ））及びスレーブ回路３０の監視を開始する（図１５の（ｇ））までは、第５実施形態の図１５と同じである。
【０１５９】
ＰＭＢ回路２０は、スレーブ回路３０からスレーブ回路３０における割り込み通知に関するレジスタ値を読み込む。そしてＰＭＢ回路２０は、読み込んだレジスタ値から割り込み通知信号が無効状態、すなわちスレーブ回路３０が未使用状態であると判定すると、ＰＳＣ信号を“Ｈ”レベルから“Ｌ”レベルに切り替えて、ＰＳＷ回路４０をオフ状態にする（図１７の（ｉ））。これによりスレーブ回路３０は、電源電圧ＶＤＤの供給を遮断されて、オフ状態となる。
【０１６０】
６．４  本実施形態に係る効果について  
本実施形態に係る構成を、第５実施形態に適用できる。
【０１６１】
７．変形例等
上記実施形態に係る半導体装置は、バス(バス@図1)に接続された制御回路(CPU10@図1)と、制御回路の制御により動作する第１回路(スレーブ30_1@図1)と、第１回路と電源との間に接続されたスイッチ素子(40_1@図1)と、バスと第１回路との間に接続され、制御回路からバスを介して第１回路に送信される第１信号に応じて、スイッチ素子をオン状態にする第２回路(PMB@図1)とを含む。
【０１６２】
上記実施形態を適用することにより、信頼性を向上できる半導体装置を提供出来る。なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【０１６３】
例えば上記実施形態は、ＬＳＩに限定されず、内部に含む未使用状態の回路の電源を遮断する機能を有する半導体装置において適用できる。
【０１６４】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【０１６５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１６６】
１…ＬＳＩ、１０…ＣＰＵ、２０…ＰＭＢ回路、３０…スレーブ回路、４０…ＰＳＷ回路、１０１…バススプリッター回路、１０２…オリジナルバスブリッジ回路、１０３…バッファ、１０４…バスアクセス検知回路、１０５…電源制御回路、１０６…ＰＳＷ制御回路、１０７…パワーレディタイマ、１０８…コンフィグレーションレジスタ、１０９…アイドルタイムカウンタ、１１０…ストップコマンド検知回路、１１１…スレーブステータスモニタ、１１２…ポーリング間隔タイマ、１１３…リードコマンド生成回路、１１４…バスアービタ。
【図１】
0006396352.tif 000002
【図２】
0006396352.tif 000003
【図３】
0006396352.tif 000004
【図４】
0006396352.tif 000005
【図５】
0006396352.tif 000006
【図６】
0006396352.tif 000007
【図７】
0006396352.tif 000008
【図８】
0006396352.tif 000009
【図９】
0006396352.tif 000010
【図１０】
0006396352.tif 000011
【図１１】
0006396352.tif 000012
【図１２】
0006396352.tif 000013
【図１３】
0006396352.tif 000014
【図１４】
0006396352.tif 000015
【図１５】
0006396352.tif 000016
【図１６】
0006396352.tif 000017
【図１７】
0006396352.tif 000018