(57)【要約】【課題】電力効率を向上可能な半導体集積回路を提供すること。【解決手段】実施形態の半導体集積回路１は、プロセッサ２と、スイッチ部３と、第１バス７と、第２バス１２と、メモリ１４とを備える。スイッチ部３は、プロセッサ２に接続される。第１バス７は、スイッチ部３を介してプロセッサ２が接続され、第１バス幅を有する。第２バス１２は、スイッチ部３を介してプロセッサ２が接続され、第１バス幅より狭い第２バス幅を有する。メモリ１４は、第１バス７及び第２バス１２に接続され、第１バス７又は第２バス１２を介してプロセッサ２からアクセスを受ける。そして、スイッチ部３により、第１バス７の状態に応じて、プロセッサ２がメモリ１４にアクセスする際に使用するバスを、第１バス７から第２バス１２に切り替える。【選択図】図１
2012208693.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに接続されたスイッチ部と、
前記スイッチ部を介して前記プロセッサが接続され、第１バス幅を有する第１バスと、
前記スイッチ部を介して前記プロセッサが接続され、第１バス幅より狭い第２バス幅を有する第２バスと、
前記第１バス及び前記第２バスに接続され、前記第１バス又は前記第２バスを介して前記プロセッサからアクセスを受けるメモリとを備え、
前記スイッチ部により、前記第１バスの状態に応じて、前記プロセッサが前記メモリにアクセスする際に使用するバスを、第１バスから第２バスに切り替える
ことを特徴とする半導体集積回路。
【請求項２】
前記プロセッサが、前記第２バスを使用して前記メモリにアクセスする場合、
前記スイッチ部は、前記プロセッサが出力する第１アドレスに対して１ビット以上のデータを付加した第２アドレスを生成する請求項１に記載の半導体集積回路。
【請求項３】
前記メモリは、前記第２アドレスの付加された前記データを除いたアドレスでアクセスを受けることを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記第１バスには前記第１アドレスが割り当てられ、
前記第２バスには前記第２アドレスが割り当てられていることを特徴とする請求項２又は３に記載の半導体集積回路。
【請求項５】
前記第１バスへの電源供給を管理すると共に、前記電源供給状況に応じた信号を前記スイッチ部に出力する電源管理部をさらに備え、前記電源供給状況に応じた信号に基づいて、前記プロセッサが前記メモリにアクセスする際に使用するバスを、第１バスから第２バスに切り替えることを特徴とする請求項１乃至４いずれか１項に記載の半導体集積回路。
【請求項６】
前記第１バスへの電源供給を管理すると共に、前記電源供給状況に応じて、前記１ビット以上のデータを、前記スイッチ部に出力する電源管理部をさらに備え、前記スイッチ部は、前記電源管理部から入力する前記１ビット以上のデータを用いて前記第２アドレスを生成することを特徴とする請求項２乃至４のいずれか１項に記載の半導体集積回路。
【請求項７】
前記第１バスに対する電源供給が停止されている場合、又は前記第１バスに対するクロック供給が停止されている場合に、前記プロセッサが前記メモリにアクセスする際に使用するバスを、前記第１バスから第２バスに切り替えることを特徴とする請求項１乃至６いずれか１項に記載の半導体集積回路。
【請求項８】
前記半導体集積回路は、前記第１バス及び前記第２バスに電源供給がされる第１動作モードと、前記第１バスに電源供給がされず、前記第２バスに電源供給がされる第２動作モードとを有し、
前記半導体集積回路が前記第１動作モードであるか第２動作モードであるかに応じて、前記プロセッサが前記メモリにアクセスする際に使用するバスを、前記第１バスから第２バスに切り替えることを特徴とする請求項１乃至６いずれか１項に記載の半導体集積回路。
【請求項９】
前記メモリは、前記プロセッサから読み出し要求を受信した際、前記第１バス、前記第２バスのうち、前記読み出し要求を転送する際に使用されたバスを用いて読み出しデータを前記プロセッサへ転送することを特徴とする請求項１乃至８いずれか１項に記載の半導体集積回路。
【請求項１０】
プロセッサと、
前記プロセッサに接続されたスイッチ部と、
前記スイッチ部を介して前記プロセッサが接続され、第１バス幅を有する第１バスと、
前記スイッチ部を介して前記プロセッサが接続され、第１バス幅より狭い第２バス幅を有する第２バスと、
前記第１バス及び前記第２バスに接続され、前記第１バス又は前記第２バスを介して前記プロセッサからアクセスを受けるメモリとを備え、
前記スイッチ部は、前記第１バスに対する電源供給又はクロック供給が停止している場合に、前記プロセッサから出力される第１アドレスに対して１ビット以上のデータを付与した第２アドレスを生成することを特徴とする半導体集積回路。
【請求項１１】
前記第１バスには前記第１アドレスが割り当てられ、
前記第２バスには前記第２アドレスが割り当てられていることを特徴とする請求項１０に記載の半導体集積回路。
【請求項１２】
前記メモリは、前記第２アドレスの付加された前記データを除いたアドレスでアクセスを受けることを特徴とする請求項１０または１１に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路に関する。
【背景技術】
【０００２】
ＳｏＣ内において、各機能ブロックはバスによってメモリに接続されている。しかし、モバイル機器は、その動作モードによって必要なデータ量が異なる。例えば、多くの機能ブロックを使用する動作モードではデータ転送量は多い。他方、少しの機能ブロックしか使用しない動作モードではデータ転送量は少ない。
【０００３】
すると、後者の場合では、バスのデータ転送能力は必要以上に大きいということになる。つまり、無駄に大容量のバスを使用することになり、不必要に電力を消費する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許７，８７６，６８０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電力効率を向上可能な半導体集積回路を提供する。
【課題を解決するための手段】
【０００６】
実施形態の半導体集積回路は、プロセッサと、スイッチ部と、第１バスと、第２バスと、メモリとを備える。スイッチ部は、プロセッサに接続される。第１バスは、スイッチ部を介してプロセッサが接続され、第１バス幅を有する。第２バスは、スイッチ部を介してプロセッサが接続され、第１バス幅より狭い第２バス幅を有する。メモリは、第１バス及び第２バスに接続され、第１バス又は第２バスを介してプロセッサからアクセスを受ける。そして、スイッチ部により、第１バスの状態に応じて、プロセッサがメモリにアクセスする際に使用するバスを、第１バスから第２バスに切り替える。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係る半導体集積回路のブロック図。
【図２】第１実施形態に係るメモリ空間の概念図。
【図３】第１実施形態に係る電源管理ブロックの動作を示すフローチャート。
【図４】第１実施形態に係るスイッチの動作を示す概念図。
【図５】第１実施形態に係る半導体集積回路の動作を示すフローチャート。
【図６】第１実施形態に係る半導体集積回路のブロック図。
【図７】第１実施形態に係る半導体集積回路のブロック図。
【図８】第２実施形態に係るスイッチのブロック図。
【図９】第２実施形態に係る半導体集積回路のブロック図。
【図１０】第２実施形態に係る半導体集積回路のブロック図。
【図１１】第１、第２実施形態の変形例に係る半導体集積回路の動作を示すフローチャート。
【図１２】第１、第２実施形態の変形例に係る半導体集積回路の動作を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
［第１実施形態］  
第１実施形態に係る半導体集積回路について説明する。
【００１０】
１．構成について  
１．１  半導体集積回路の全体構成について  
まず、本実施形態に係る半導体集積回路の構成について、図１を用いて説明する。図１は、半導体集積回路のブロック図である。
【００１１】
図示するように半導体集積回路１は、プロセッサコア２、スイッチ３、ＧＰＵ（Graphic Processing Unit）４、映像処理コーデック５、ＨＤＭＩ／ＬＣＤ（High-Definition Multimedia Interface / Liquid Crystal Display）出力部６（以下、単に出力部６と呼ぶ）、第１バス７、電源管理ブロック８、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）９、ＧＰＩＯ（General purpose Input/Output）１０、ＵＳＢ（Universal Serial Bus）１１、第２バス１２、ブリッジ１３、及びメインメモリ１４を備えている。これらのブロックは、同一の半導体基板上に集積形成され、ＳｏＣを構成している。
【００１２】
以上のブロックのうち、ＧＰＵ４、映像処理コーデック５、第１バス７、及び出力部６は、比較的大きな電力を必要とする機能ブロックである。これらの機能ブロックの集合を、高電力機能ブロック２０と呼ぶことがある。これに対して電源管理ブロック８、ＵＡＲＴ９、ＧＰＩＯ１０、ＵＳＢ１１、及び第２バス１２は、高電力機能ブロック２０に較べて小さい電力で動作する機能ブロックである。これらの機能ブロックの集合を、低電力機能ブロック３０と呼ぶことがある。
【００１３】
プロセッサコア２は、半導体集積回路１全体の制御を司り、種々の演算を実行する。ＧＰＵ４は、グラフィック専用のプロセッサである。また映像処理コーデック５は、映像データの符号化／復号化を行う。プロセッサコア２、ＧＰＵ４、及び映像処理コーデック５は、メインメモリ１４からデータや命令コードを読み出し、処理を行う。そして処理結果をメインメモリ１４に格納する。
【００１４】
出力部６は、画面出力のための処理を実行する。ＵＡＲＴ９、ＧＰＩＯ１０、及びＵＳＢ１１は、半導体集積回路１外部との間の入出力処理を行う。そしてこれらのブロックは、自律的またはプロセッサコア２による間接的な処理により、ＧＰＵ４等の同様にメインメモリ１４からデータを読み出し、処理を実行し、そしてデータをメインメモリに書き込む。
【００１５】
電源管理ブロック８は、例えばプロセッサコア２の命令に基づいて、高電力機能ブロック２０の電源を管理する。例えば半導体集積回路１を省電力モードとする際には、高電力機能ブロック２０への電源供給を停止する。
【００１６】
第１バス７は、プロセッサコア２、ＧＰＵ４、及び映像処理コーデック５と、出力部６並びにメインメモリ１４との間を接続する。第１バス７は、第２バス１２よりも高クロックで、且つ大きいバンド幅を有する高速のバスである。第１バス７は、例えば３３３ＭＨｚの周波数のクロックで動作し、そのバンド幅は１２８ビットである。ＧＰＵ４及び映像処理コーデック５からのメインメモリへのアクセスは、この第１バスを介して行われる。
【００１７】
第２バス１２は、プロセッサコア２と、電源管理ユニット８、ＵＡＲＴ９、ＧＰＩＯ１０、ＵＳＢ１１、及びメインメモリ１４との間を接続する。第２バス１２は、第１バス７よりも低クロックで、且つ小さいバンド幅を有する低速のバスである。第２バス１２は、例えば８３ＭＨｚの周波数のクロックで動作し、そのバンド幅は３２ビットである。プロセッサコア２から電源管理ユニット８、ＵＡＲＴ９、ＧＰＩＯ１０、及びＵＳＢ１１へのアクセス、電源管理ユニット８、ＵＡＲＴ９、ＧＰＩＯ１０、及びＵＳＢ１１からプロセッサコア２へのアクセス、並びに電源管理ユニット８、ＵＡＲＴ９、ＧＰＩＯ１０、及びＵＳＢ１１からメインメモリ１４へのアクセスは、第２バスを介して行われる。
【００１８】
スイッチ３は、第１バス７と第２バス１２とのいずれかを選択する。上記説明した通り、プロセッサコア２とメインメモリ１４との間は、第１バス７と第２バス１２との２つのバスによって接続されている。従ってスイッチ３は、プロセッサコア２とメインメモリ１４とを接続する際に、第１、第２バス７、１２のうち、使用すべきいずれか一方を選択する。
【００１９】
メインメモリ１４は、第１バス７及び第２バス１２を介して与えられる信号をブリッジ１３で受信し、データの書き込み、読み出し、及び消去等を実行する。
【００２０】
上記構成の半導体集積回路１は、通常モードと省電力モードの２つの動作モードを有する。通常モードでは、高電力機能ブロック２０を含め、全てのブロックに電力が供給されて、全てのブロックが動作可能である。省電力モードは、例えば音声通話や音楽再生時における動作モードであり、高電力機能ブロック２０に対する電力供給が停止される。
【００２１】
１．２  半導体集積回路１のアドレス空間について  
次に、上記半導体集積回路１のアドレス空間について、図２を用いて説明する。図２はアドレス空間（物理アドレス空間）の概念図である。
【００２２】
図示するように、通常モードでは、半導体集積回路１は０ｘ００００＿００００〜０ｘＦＦＦＦ＿ＦＦＦＦの３２ビットのアドレス空間を有する。そして０ｘ００００＿００００〜０ｘ４０００＿００００がメインメモリ１４に割り当てられる。また、残りの領域の少なくとも一部が、ＧＰＵ４、映像処理コーデック５、ＵＡＲＴ９等の、その他の機能ブロックに割り当てられる。この領域を、制御領域と呼ぶ。
【００２３】
他方、省電力モードでは、アドレス空間は０ｘ００００＿００００〜０ｘ１＿ＦＦＦＦ＿ＦＦＦＦの３３ビットのアドレス空間に拡張される。そして、０ｘ１＿００００＿００００〜０ｘ１＿４０００＿００００の領域がメインメモリ１４に割り当てられる。但し、メインメモリ１４のアドレスは、通常モードに対して、３３ビット目に“１”が追加されるのみであり、１〜３２ビット目のアドレスは、通常モードと同じ値とされる。
【００２４】
このように省電力モードでは、物理アドレス空間の中の２つの領域がメインメモリ１４に割り当てられる。このうち、０ｘ００００＿００００〜０ｘ４０００＿００００の領域は第１バス７に対応付けられ、また０ｘ１＿００００＿００００〜０ｘ１＿４０００＿００００の領域は第２バス１２に対応付けられる。つまり、メインメモリ１４においては、０ｘ００００＿００００〜０ｘ４０００＿００００で示される物理アドレス領域と、０ｘ１＿００００＿００００〜０ｘ１＿４０００＿００００で示される物理アドレス領域は、同じ領域である。あくまでも、ある１つの領域に対して、省電力モードでは２つの物理アドレスが割り当てられる、ということである。そしてこの２つの物理アドレスは、第１バス７を使用するか、または第２バス１２を使用するか、の違いに対応する。
【００２５】
２．動作について  
次に、上記構成の半導体集積回路１の動作について説明する。
【００２６】
２．１  電源管理ブロック８の動作について  
まず、電源管理ブロック８の動作について、図３を用いて説明する。図３は、電源管理ブロック８の動作を示すフローチャートである。
【００２７】
図示するように、半導体集積回路１が通常モードで動作する場合（ステップＳ１０、ＹＥＳ）、電源管理ブロック８は、高電力機能ブロック２０へ電源を供給する（ステップＳ１１）。これにより、高電力機能ブロック２０は動作可能とされ、また第１バス７が有効とされる。通常モードで動作するか否かは、例えばプロセッサコア２からの命令によって判断出来る。更に電源管理ブロック８は、信号ＰＳをネゲート（本例では“０”）として、これをスイッチ３へ出力する。信号ＰＳは、半導体集積回路１が省電力モードで動作することを示す信号であり、通常モードではネゲートされ、省電力モードでアサート（本例では“１”）される。
【００２８】
他方、半導体集積回路１が省電力モードで動作する場合（ステップＳ１０、ＮＯ）、電源管理ブロック８は、高電力機能ブロック２０への電源供給を停止（または／及びクロックの供給を停止）する（ステップＳ１３）。これにより、高電力機能ブロック２０は動作を停止し、また第１バス７は無効とされる。更に電源管理ブロック８は、信号ＰＳをアサートとして、これをスイッチ３へ出力する。
【００２９】
２．２  スイッチ３の動作について  
次に、上記スイッチ３の動作について、図４を用いて説明する。図４は、スイッチ３と第１、第２バス７、１２との接続関係を示す模式図である。
【００３０】
図示するようにスイッチ３は、プロセッサコサ２から３２ビットのアドレスＡ１［３１：０］を受信する。通常モードでも省電力モードでも、プロセッサコア２から受信するアドレスは３２ビットである。
【００３１】
そしてスイッチ３は、受信したアドレスＡ１に、３３ビット目の値Ｂ３２を付加して、３３ビットのアドレスＡ２［３２：０］を生成する。この際スイッチ３は、電源管理ブロック８から受信した信号ＰＳが“０”の場合、すなわち半導体集積回路１が通常モードで動作する場合、Ｂ３２を“０”とする。つまり、アドレスＡ２は実質的には３２ビットのアドレスＡ１と同じである。この場合、第１バス７が選択される。従って、プロセッサコア２からのアクセスは、第１バス７を介して行われる。
【００３２】
他方、電源管理ブロック８から受信した信号ＰＳが“１”の場合、すなわち半導体集積回路１が省電力モードで動作する場合、Ｂ３２を“１”とする。この場合、第２バス１２が選択される。従って、プロセッサコア２からのアクセスは、第２バス１２を介して行われる。
【００３３】
なお、本例では、信号ＰＳに応じてスイッチ３がビットＢ３２を生成して、これをアドレスＡ１に付加する場合を例に説明しているが、信号ＰＳそのものがビットＢ３２である場合であっても良い。つまり、第１バス７と第２バス１２とのいずれを選択するかを示すビットＢ３２を、電源管理部８が生成する場合であっても良い。また本例では、第１バス７と第２バス１２とのいずれを選択するかを示す情報は、ビットＢ３２の１ビットのみであるが、２ビット以上であっても良い。
【００３４】
２．３  全体の動作について  
次に、具体例として、プロセッサコア２からメインメモリ１４へデータの読み出しアクセスがあった場合の動作について、図５を用いて説明する。図５は半導体集積回路１の動作を示すフローチャートである。
【００３５】
図示するように、まずプロセッサコア２は、メインメモリ１４へのアクセス要求を発行し、スイッチ３へ出力する（ステップＳ２０）。
【００３６】
通常モードである場合、すなわち信号ＰＳ＝“０”の場合（ステップＳ２１、ＹＥＳ）、スイッチ３は第１バス７へアクセス要求を出力する（ステップＳ２２）。すなわち、スイッチ３は、アドレスＡ１を変換することなく、出力する。すなわち、Ｂ３２＝０であるので、第２バス１２はこのアドレスを無視することになり、結果としてこのアクセス要求は、第１バス７を介してメインメモリ１４に転送される。
【００３７】
メインメモリ１４は、アクセス要求に従ってデータを読み出し、これを同じく第１バス７を用いてプロセッサコア２へ転送する（ステップＳ２３）。この際、メインメモリ１４は、受信したアドレスをそのまま使用して、データの読み出しを実行する。データをメインメモリ１４からプロセッサコア２へ転送する際に第１バス７と第２バス１２のいずれを使用するかは、アクセス要求を受信した際のアドレスのＢ３２の値から、ブリッジ１３が判断出来る。
【００３８】
他方、省電力モードである場合、すなわち信号ＰＳ＝“１”の場合（ステップＳ２１、ＮＯ）、スイッチ３は第２バス１２へアクセス要求を出力する（ステップＳ２４）。すなわち、スイッチ３は、アドレスＡ１を３３ビットのアドレスＡ２に変換して、出力する（Ｂ３２＝“１”）。このアドレスＡ２は、第１バス７と第２バス１２の両方に出力されるが、アドレスＡ２は第２バス１２に対応付けられているので、第１バス７はアドレスＡ２を無視する。その結果、アクセス要求は、第２バス１２を介してメインメモリ１４に転送される。換言すれば、通常モードに対して省電力モードでは、使用するバスが第１バス７から第２バス１２に切り替えられる、と言うことが出来る。
【００３９】
メインメモリ１４は、アクセス要求に従ってデータを読み出し、これを同じく第２バス１２を用いてプロセッサコア２へ転送する（ステップＳ２５）。この際、メインメモリ１４は、受信したアドレスの最上位ビット（本例では３３ビット目）を取り除いた３２ビットを使用して、データの読み出しを実行する。
【００４０】
３．本実施形態に係る効果  
以上のように、本実施形態に係る構成であると、電力効率を向上出来る。本効果について、以下説明する。
【００４１】
モバイル機器向けＳｏＣは、プロセッサ、ＧＰＵ、映像処理用エンジン、オーディオ処理エンジン、メモリ、各種Ｉ／Ｏなど、様々な機能ブロックがひとつのチップに内蔵されている。各機能ブロックは、バスで相互に接続されている。しかし、あるブロックが必要とするバスの能力は、時間あたりのデータ量によって変わる。例えばＧＰＵであれば、高クロックで広いバス幅のバスが必要であるが、ＵＡＲＴであれば低クロックで狭いバス幅のバスでも十分である。
【００４２】
従って、機能ブロックに応じて適切な性能のバスを選択することが望ましい。しかし、ＳｏＣにおいてメモリは、ほとんど全ての機能ブロックから直接あるいは間接的に利用される。従って、メモリは、時間あたり必要なデータ量の一番大きな機能ブロック、あるいはいくつか同時に動作する機能ブロックの時間あたり必要なデータ量の和に基づき、大抵の場合は高クロックで広いバス幅のバスに接続される。
【００４３】
ところが、モバイル機器はその動作モードに応じて、ＳｏＣ内部の全てのブロックを使うわけではない。例えば、モバイル機器でゲームを実行している場合は、内部のプロセッサ、ＧＰＵ、オーディオに関連する機能ブロック、画面出力等のＩ／Ｏ等、全ての機能ブロックを使用する。他方、音声通話や音楽再生の際には、内部プロセッサとオーディオに関連する機能ブロック以外は使用されない。どちらの場合でも、メモリへのアクセスが実行されるが、前者はメモリに対して大きなバンド幅を必要とするが、後者の場合であればそれほど大きなバンド幅は必要無い。しかし、前述のとおり大抵の場合において、メモリは高クロックで広いバス幅のバスに接続されているため、後者の場合、要求している性能に対してバスはオーバースペックとなってしまう。そのため、常に給電されているようなシステムであれば問題はないが、モバイル機器であった場合、バスにおいて無駄な電力を消費してしまうことになる。
【００４４】
この点、後者の場合には、バスのクロックを落とすという手法が考えられる。しかし、高クロックで広いバス幅のバスは、複数の機能ブロックと接続されており、しかもバス幅も広いためチップ内で大きな面積を占めている。そして、ほとんど使わない機能ブロックがあるにも関わらず、給電がされ続けることになり、リーク電流等を十分に排除することができない。
【００４５】
また、別の方法として、通常使うメモリを含めてそれに接続される高クロックで広いバス幅のバスは給電せず、使用することをあきらめ、省電力用の動作のために低クロックで狭いバス幅のバスに専用メモリを用意するという手法が考えられる。しかし、この場合アドレスマップが変わってしまう。そのため、ＳｏＣ上で動作するアプリケーションの互換性が維持できない。
【００４６】
このように、モバイル機器はバッテリ駆動であることが多いため、消費電力を抑えて処理を実行しなければならない。そのため、処理内容によっては、使用しないブロックへの給電を停止したり、クロックを停止したりする。しかしながら、一般的にメモリへの経路は静的に決められている。すなわち、アドレスは、メモリへの経路も含めて予め定められている。そのため、プロセッサのアプリケーションの互換性を維持しようとすると、省電力のためにバスのクロックの停止や給電の停止を行うことができない。
【００４７】
この点、本実施形態に係る構成であると、上記の問題を解決出来る。本実施形態では、音楽再生や電話機能等、比較的電力を必要としない処理内容において、使用しない機能ブロック及び高速のバスの動作を停止する。そして、その停止している旨の情報をに基づいて、スイッチ３がアクセス経路を変更する。これにより、プログラムの実行を動的に維持出来る。
【００４８】
より具体的には、ＧＰＵ４、コーデック５、出力部６、及び第１バス７を含む高電力機能ブロック２０を使用しない場合、プロセッサコア２は、電源管理ブロック８に対して、
高電力機能ブロック２０への電力（及び／またはクロック）供給を停止させる。これにより、無駄な電力消費を抑えることが出来る。
【００４９】
同時に、電源管理ブロック８は、高電力機能ブロック２０が停止中であること、換言すれば、第１バス７が使用できないことをスイッチ３に通知する（信号ＰＳ＝“１”）。この通知に基づいてスイッチ３は、プロセッサコア２からメインメモリ１４へのアクセスを受け付けた際、第２バス１２を用いてメインメモリ１４に対してアクセス要求を出力する。他方、第１バス７が使用可能である場合には、スイッチ３は、プロセッサコア２からのアクセス要求を、第１バス７を用いてメインメモリ１４へ出力する。
【００５０】
プロセッサコア２がメインメモリ１４へアクセスする際の様子を図６及び図７に示す図６及び図７はそれぞれ、通常モード及び省電力モードの場合について示している。
【００５１】
図６に示すように、通常動作モードでは、プロセッサコア２はスイッチ３によって、第１バス７を介してメインメモリ１４にアクセスする。これに対して省電力モードでは、図７に示すように、スイッチ３によって、第２バス１２を介してメインメモリ１４にアクセスする。そして第１、第２バス７、１２を切り替えるためにスイッチ３は、プロセッサコア２から与えられるアドレスを変換する。すなわちスイッチ３は、実質的にはアドレス変換器として機能する。しかしながらこのアドレス変換は、プロセッサコア２から与えられるアドレス（例えば３２ビット）に、１ビット（３３ビット目、Ｂ３２）を追加するだけであり、その他のビットＢ０〜Ｂ３１に変更は無い。そして図６の場合と図７の場合とで、アクセスされるメインメモリ１４のアドレスは異なるが、メインメモリ１４において実際にアクセスされる領域は当然、同じである。そしてプロセッサコア２は、図６の場合も図７の場合も、３２ビットのアドレス空間しか認識していない。すなわち、いずれの場合のアドレス空間も同一空間のようにアクセスでき、またスイッチ３におけるアドレス変換の有無を認識する必要もない。
【００５２】
このように、アドレスマップの変更を伴うことなく、高速バスを含む高電力機能ブロック２０の動作を停止させることが出来、半導体集積回路１の電力消費を削減出来る。
【００５３】
［第２実施形態］  
次に、第２実施形態に係る半導体集積回路について説明する。本実施形態は、上記第１実施形態において、第１バス７と第２バス１２とを物理的にスイッチングするものである。以下では、第１実施形態と異なる点についてのみ説明する。
【００５４】
図８は、本実施形態に係るスイッチ３のブロック図である。図示するようにスイッチ３は、第１バスへの経路と第２バスへの経路とを、物理的に切り替える。すなわち、通常モード（ＰＳ＝“０”）の場合には、アドレスＡ１を第１バス７への経路に接続し、省電力モード（ＰＳ＝“１”）の場合には、アドレスＡ１を第２バス１２への経路に接続する。従って、第１、第２バス７。１２へ与えられるアドレスは、いずれの動作モードにおいても３２ビットである。
【００５５】
プロセッサコア２がメインメモリ１４へアクセスする際の様子を図９及び図１０に示す。図９及び図１０はそれぞれ、通常モード及び省電力モードの場合について示している。図示するように、通常モード及び省電力モードにおいて使用されるバスは、第１実施形態と同様である。第１実施形態と異なるのは、第２実施形態では、半導体集積回路１のアドレス空間が、通常モード及び省電力モードで同じという点である。すなわち、いずれの動作モードでも、アドレス空間は３２ビット空間であり、アクセスされるメインメモリ１４のアドレスは同じである。
【００５６】
このように、アドレスと経路との関係を動的に変更出来るスイッチ３の場合には、第１実施形態のようにアドレスＡ１に更にビットＢ３２を付加しなくても良い。
【００５７】
［変形例等］  
以上のように、実施形態に係る半導体集積回路は、プロセッサ２と、スイッチ部３と、第１バス７と、第２バス１２と、メモリ１４とを備える。スイッチ部３は、プロセッサ２に接続される。第１バス７は、スイッチ部３を介してプロセッサ２が接続され、第１バス幅を有する。第２バス１２は、スイッチ部３を介してプロセッサ２が接続され、第１バス幅より狭い第２バス幅を有する。メモリ１４は、第１バス７及び第２バス１２に接続され、第１バス７又は第２バス１２を介してプロセッサ２からアクセスを受ける。そして、スイッチ部３により、第１バス７の状態に応じて、プロセッサ２がメモリ１４にアクセスする際に使用するバスを、第１バス７から第２バス１２に切り替える。
【００５８】
またこの際、プロセッサ２は、メモリ装置１４にアクセスする際、第１アドレスＡ１を発行してこれをスイッチ３に出力し、スイッチ３は、第２バス１２を使用する際、第１アドレスＡ１に、第２バス１２を使用する経路を指定するビットＢ３２を付加して、第２アドレスＡ２を発行しても良い。
【００５９】
これにより、使わない機能ブロックを効率よく電力停止しながら、ソフトウエアの互換性を維持したままプログラムの実行が可能となる。また、使用するバスの切り替えは、アドレスＡ１に、第２バス１２を使用する経路を指定するビットＢ３２を付加することで、実現出来る。アドレスは通常、アクセス対象を指し示すだけでなく、そこまで至る経路も併せて指定する。従って、通常モードで使用されていた第１バス７とは別の第２バス１２を経由するアクセス経路を指定するために、新たなアドレスを生成する。ここで、この新たなアドレスは、通常モードのアドレスに１ビットを追加したものとすることで十分であり、それ以上の複雑なアドレス変換は不要である。
【００６０】
なお、上記実施形態は一例に過ぎず、種々の変形が可能である。例えば、上記実施形態では、半導体集積回路１が通常モードであるか省電力モードであるかの通知（信号ＰＳ）を電源管理ブロック８が行う場合を例にして説明した。しかし、この通知はプロセッサコア２がスイッチ３に対して行っても良い。半導体集積回路１がいずれの動作モードにあるかは、プロセッサコア２が把握している事項だからである。このようにプロセッサコア２から直接命令を受信するため、例えばスイッチ３内にレジスタを設けることが出来る。
【００６１】
また、スイッチ３に対して上記通知を行わない場合であっても良い。この場合について、図１１を用いて説明する。図１１は、変形例に係る半導体集積回路１の動作を示すフローチャートである。
【００６２】
図示するように、プロセッサコア２がメインメモリ１４へのアクセス要求を発行すると（ステップＳ２０）、スイッチ３は、動作モードに関わらず、アクセス要求を第１バス７へ出力する（ステップＳ３０）。これは、第１実施形態のようにアドレスの３３ビット目を“０”にしても良いし、または第２実施形態のように物理的なスイッチングによって行っても良い。
【００６３】
そして、第１バス７へ出力したアクセス要求がタイムアウトした場合、すなわち、ある一定期間のうちに第１バス７から何らの応答も無かった場合（ステップＳ３１、ＹＥＳ）、スイッチ３は、半導体集積回路１は省電力モードであると判断する。そして省電力モードであると判断した後は、スイッチ３は、第２バスへアクセス要求を出力する（ステップＳ２４）。
【００６４】
このように、電源供給の停止されたバスからは何らの応答も得られないことを利用して、信号ＰＳを省くことが出来る。
【００６５】
また図１２のような方法を用いても良い。図示するように、プロセッサコア２がメインメモリ１４へのアクセス要求を発行すると（ステップＳ２０）、スイッチ３は、第１バス７からビジー信号を受信しているか否かを判断する。受信していれば（ステップＳ４０、ＹＥＳ）、スイッチ３は、半導体集積回路１は省電力モードであると判断する。そして省電力モードであると判断した後は、スイッチ３は、第２バスへアクセス要求を出力する（ステップＳ２４）。
【００６６】
このように、クロックの停止されたバスがビジー信号を出力することを利用することで、信号ＰＳを省くことが出来る。
【００６７】
更に、上記実施形態では半導体集積回路１がモバイル機器である場合を例に説明したが、モバイル機器に限定されるものではない。また半導体集積回路１は、ＳＤＴＭカード等のカードデバイスであっても良い。また、実施例中で説明したその他の機能ブロック（例えば、ＳＡＴＡ等の他のインターフェース等）を備えていても良い。また、高電力機能ブロックとしてＧＰＵやコーデックの場合を例に説明したが、何を高電力機能ブロックとして扱うかは、製品によって適宜選択出来る。例えばＤＳＰ等の他の機能ブロックを備えていても良い。また、半導体集積回路１のアドレス空間は３２ビットに限らず、例えば６４ビットであっても良い。この場合、第１実施形態における、省電力モードか否かを示すビットは、スイッチ３で付加される６５ビット目の値である。もちろん、３２ビットや６４ビット以外のアドレス空間であっても良いのは言うまでもない。更に、第１バス７及び第２バス１２の動作周波数がそれぞれ３３３ＭＨｚ及び８３ＭＨｚの場合を例に説明したが、その他の周波数で動作する場合であっても良い。例えば、低速の第２バス１２が３３３ＭＨｚで動作し、高速の第１バス７がそれ以上に高い周波数で動作する場合であっても良い。
【００６８】
また、上記実施形態においてフローチャートを用いて説明した動作は、可能な限りその順序を入れ替えることが出来る。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７０】
１…半導体集積回路、２…プロセッサコア、３…スイッチ、４…ＧＰＵ、５…映像処理コーデック、６…ＨＤＭＩ／ＬＣＤ出力部、７、１２…バス、８…電源管理部、９…ＵＡＲＴ、１０…ＧＰＩＯ、１１…ＵＳＢ、１３…ブリッジ、１４…メインメモリ、２０…高電力機能ブロック、３０…低電力機能ブロック
【図１】
2012208693.tif 000003
【図２】
2012208693.tif 000004
【図３】
2012208693.tif 000005
【図４】
2012208693.tif 000006
【図５】
2012208693.tif 000007
【図６】
2012208693.tif 000008
【図７】
2012208693.tif 000009
【図８】
2012208693.tif 000010
【図９】
2012208693.tif 000011
【図１０】
2012208693.tif 000012
【図１１】
2012208693.tif 000013
【図１２】
2012208693.tif 000014