(57)【特許請求の範囲】
【請求項１】
バスマスタとなる複数のモジュールと、
バススレーブとなるモジュールと、
前記バススレーブとなるモジュールに対してバス使用を停止させる第１の制御信号が入力された際に、前記バスマスタとなる前記複数のモジュールのうち前記バススレーブに対するバスマスタとなる第１のモジュールを判定し、その判定された第１のモジュールに対して、バス使用を停止させる第２の制御信号を出力し、前記モジュールのバス使用が停止した後に、前記バススレーブとなるモジュールに対してバス使用を停止させる第３の制御信号を出力するバス動作制御部とを有する半導体集積回路装置。
【請求項２】
バスマスタとなる複数のモジュールと、
バススレーブとなるモジュールと、
前記バスマスタとなる複数のモジュールのうちの１以上のモジュールを特定する情報を記憶する記憶部と、
前記バススレーブとなるモジュールに対してバス使用を停止させる第１の制御信号が入力される際、前記記憶部に記憶された情報により特定される１以上のモジュールに対して、バス使用を停止させる第２の制御信号を出力し、前記記憶部に記憶された情報により特定される１以上のモジュール全てからバス使用が停止したことを示す信号を受け取った後に、前記バススレーブとなるモジュールに対してバス使用を停止させる第３の制御信号を出力するバス動作制御部とを有する半導体集積回路装置。
【請求項３】
請求項２記載の半導体集積回路装置において、
前記バスマスタとなる複数のモジュールは、前記記憶部にその記憶される前記情報を書き込むモジュールを有する、半導体集積回路装置。
【請求項４】
請求項１〜３のいずれか１項に記載の半導体集積回路装置において、
前記バススレーブとなるモジュールの低省電力制御を行う電力制御部と、
前記電力制御部から出力される制御信号に基づいて、前記第１の制御信号を出力し、前記第１の制御信号によって前記バススレーブとなるモジュールのバス使用が停止すると、前記バススレーブとなるモジュールのバス使用が停止したことを示すバス停止完了信号を前記電力制御部に出力するバス停止要求制御部とを、さらに有し、
前記電力制御部は、
前記バス停止要求制御部からバス停止完了信号を受け取ると、前記バススレーブとなるモジュールに対して省電力制御処理を実行することを特徴とする半導体集積回路装置。
【請求項５】
バスマスタとなる複数の第１のモジュールと、
バススレーブとなる複数の第２のモジュールと、
前記複数の第１のモジュールにそれぞれ対応して設けられ、各々は第１のバス停止要求信号に基づいてその対応するモジュールに対してバス使用を停止させる複数の第１のバス停止制御部と、
前記複数の第２のモジュールにそれぞれ対応して設けられ、各々は第２のバス停止要求信号に基づいてその対応するモジュールに対してバス使用を停止させる複数の第２のバス停止制御部と、
前記複数の第２のバス停止制御部にそれぞれ接続され、各々は前記複数の第１のモジュールのうちの１以上の第１のモジュールを特定するための情報を記憶する複数の記憶部と、
を有し、
前記複数の第２のバス停止制御部の各々は、前記第２のバス停止要求信号を受けたとき、その接続された前記記憶部の情報から特定される第１のモジュールに対応する第１のバス停止制御部に前記第１のバス停止要求信号を出力し、その第１のバス停止制御部から前記特定される第１のモジュールのバス使用が停止したことを示すバス停止完了信号を受けたとき、その対応する第２のモジュールに対してバス使用を停止させる、半導体集積回路装置。
【請求項６】
請求項５記載の半導体集積回路装置において、
前記複数の第１のモジュールのなかの第３のモジュールと、前記複数の第２のモジュールのなかの第４のモジュールとは共通のモジュールであり、
前記第４のモジュールに対応する前記第１のバス停止制御部は、前記バススレーブとなる複数のモジュールのうちの前記共通のモジュールとは異なる第５のモジュールに対応する前記第１のバス停止制御部から前記第１のバス停止要求信号を受ける、半導体集積回路装置。
【請求項７】
請求項５記載の半導体集積回路装置において、
前記複数のバスマスタとなるモジュールは、前記複数の記憶部にそれぞれ記憶されるべき前記情報を書き込むモジュールを有する、半導体集積回路装置。
【請求項８】
請求項５記載の半導体集積回路装置において、
前記複数の第１のバス停止制御部にそれぞれ接続され、各々は前記複数の第１のモジュールのうち１以上の第１のモジュールを特定する情報が記憶される複数の別の記憶部を有し、
前記複数の第１のバス停止制御部の各々は、その接続される記憶部に記憶された情報に基づき、対応する第１のモジュールに前記第１のバス停止要求信号を出力し、
前記複数の別の記憶部の少なくとも一つは、前記複数の第１のモジュールのいずれも特定しない情報を記憶する半導体集積回路装置。
【請求項９】
請求項５記載の半導体集積回路装置において、
前記バススレーブとなる複数のモジュールの電力制御を少なくとも行う電力制御部と、
前記電力制御部から出力される電力制御信号に基づいて、前記複数の第２のバス停止制御部にそれぞれ前記第２のバス停止要求信号を供給し、所定のモジュールからそのバス使用が停止すると、バス停止完了信号を前記電力制御部に出力するバス停止要求制御部とを、さらに有し、
前記電力制御部は、
前記バス停止要求制御部からバス停止完了信号を受け取ると、前記所定のモジュールに対して省電力制御処理を実行することを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置におけるモジュールのバス停止技術に関し、特に、低消費電力制御に伴うモジュールのバス停止に有効な技術に関する。
【背景技術】
【０００２】
携帯端末などに広く用いられているＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）などの半導体集積回路装置における低電力化は、必須の技術となりつつある。
【０００３】
この種の半導体集積回路装置においては、低電力化を行うパワーマネージメント制御の際に、該半導体集積回路装置内の該当するモジュールのバス使用を停止させる、いわゆるモジュールのバス停止を行うケースがある。
【０００４】
このバス停止は、パワーマネージメント制御の前にバス停止制御部が行い、例えば、バスマスタモジュール（例えば、ＣＰＵなど）に対するバス停止要求信号とバスマスタモジュールからのバス停止完了信号のハンドシェイクを行う。
【０００５】
各バスマスタモジュールは、バス停止制御部からのバス停止要求信号を受け取ると、該バスマスタモジュールが発行した全てのバストランザクション（バスリクエスト）を完了した後にバス停止完了信号を発行する。バス停止制御部は、全ての停止制御対象のバスマスタモジュールからバス停止完了信号を受け取った後、バス停止完了信号をパワーマネージメント制御部に発行する。
【０００６】
この種の低電力化に伴うバス停止制御技術については、例えば、コンピュータシステム動作中のバスクロックのダイナミックな停止／周波数低減を行うことによりシステム全体の消費電力を低減するもの（特許文献１参照）、低電力モードへの移行の判定に応答して、アービタにバス要求を与え、そのバス要求に応答してアービタに関連するバスマスタに与えられたクロックをディスエーブルするもの（特許文献２参照）、およびレジスタの値に応じて、マスタコントローラが、セレクタによるバス要求と各優先度のアービトレーションシーケンサとの対応を切り替えるもの（特許文献３参照）などがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−７３１６号公報
【特許文献２】特表２００６−５０８４０９号公報
【特許文献３】特開２０００−２１５１５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが、上記のような半導体集積回路装置におけるバス停止制御技術では、次のような問題点があることが本発明者により見出された。
【０００９】
バススレーブとなるモジュールのバス停止を行うにあたり、まずはバスマスタとなるモジュールはその発行しているバストランザクションを完了させることでバスマスタとなるモジュールのバス停止を行う。なぜならバストランザクションを完了しないうちにバススレーブとなるモジュールのバス停止をすると、バスマスタのバストランザクションがハングアップするからである。
【００１０】
ところが近年の大規模化するＳｏＣなどの半導体装置製品は、高性能化のために多数のバスで構成されかつバスマスタとなるモジュールの数も激増している。このような状況においてバスマスタのハングアップを防止するため、バススレーブとなるモジュールのバス停止前に、バスマスタとなるすべてのモジュールについてバストランザクションを完了させることはハードウェア設計上簡単な構成である。しかしながらこの場合、必要以上にバスマスタにバス停止を実施してしまうことがありうる。これは半導体集積回路装置全体の性能を下げることにもつながる。
【００１１】
よって本発明の目的は、バス停止するモジュールをできるだけ少なくし、これにより性能低下を抑えた半導体集積回路装置を提供することにある。
【００１２】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１４】
一実施の形態によれば、半導体集積回路装置は、バスマスタとなる複数のモジュールと、バススレーブとなるモジュールと、このバススレーブとなるモジュールのバス使用を停止する要求をする第１の制御信号が入力された際に、バスマスタとなるモジュールの動作を先に停止させた後、バススレーブとなるモジュールにバス停止を指示する信号を出力するバス動作制御部とを有する。
【００１５】
このバス動作制御部は、バススレーブに対するバスマスタとなるモジュールを判定し、その判定されたモジュールに対してバス停止を指示する第２の制御信号を出力する。そして、そのバスマスタとなるモジュールのバス停止が完了した後に、バススレーブとなるモジュールにバス停止を指示する。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１７】
モジュールのバス停止に伴う処理能力の低下を低減させることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態による半導体集積回路装置における構成の一例を示すブロック図である。
【図２】図１の半導体集積回路装置に設けられたＣＰＵに対応するバス停止制御部、および依存関係設定レジスタの接続構成の一例を示す説明図である。
【図３】図１の半導体集積回路装置に設けられた依存関係設定レジスタのデータ内容を示す説明図である。
【図４】図３の依存関係設定レジスタにおけるレジスタ設定の一例示す説明図である。
【図５】図１の半導体集積回路装置に設けられたバス停止制御部によるバス停止処理の動作の一例を示すフローチャートである。
【図６】図１の半導体集積回路装置に設けられた内部メモリにおける動作クロックの周波数を変更させる際のバス停止処理に注目した説明図である。
【図７】図６における各部の信号タイミングを示すタイミングチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
図１は、本発明の一実施の形態による半導体集積回路装置における構成の一例を示すブロック図、図２は、図１の半導体集積回路装置に設けられたＣＰＵに対応するバス停止制御部、および依存関係設定レジスタの接続構成の一例を示す説明図、図３は、図１の半導体集積回路装置に設けられた依存関係設定レジスタのデータ内容を示す説明図、図４は、図３の依存関係設定レジスタにおけるレジスタ設定の一例示す説明図、図５は、図１の半導体集積回路装置に設けられたバス停止制御部によるバス停止処理の動作の一例を示すフローチャート、図６は、図１の半導体集積回路装置に設けられた内部メモリにおける動作クロックの周波数を変更させる際のバス停止処理に注目した説明図、図７は、図６における各部の信号タイミングを示すタイミングチャートである。
【００２１】
〈実施の形態の概要〉
本実施の形態の概要は、バスマスタとなる複数のモジュール（ＣＰＵ２、ＣＰＵ３、グラフィックスコア４）と、バススレーブとなるモジュール（Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９）と、バス動作制御部（バス停止制御部１７、依存関係設定レジスタ１８）とを有する半導体集積回路装置からなる。
【００２２】
また、バス動作制御部は、バススレーブとなるモジュールの動作を停止させる第１の制御信号（モジュール別バス停止要求信号ＭＲ）が入力された際に、複数のバスマスタのなかからバススレーブに対するバスマスタとなるモジュールを判定し、その判定されたバスマスタとなるモジュールに対して、バス停止を指示する第２の制御信号（事前バス停止要求信号ＡＢＳ）を出力し、バスマスタとなるモジュールのバス停止が完了した後に、バススレーブとなるモジュールにバス停止を指示する第３の制御信号（モジュール別バス停止リクエスト信号ＲＱ）を出力する。
【００２３】
以下、上記した概要に基づいて、実施の形態を詳細に説明する。
【００２４】
〈半導体集積回路装置の構成〉
本実施の形態１において、半導体集積回路装置１は、例えば、ＳｏＣを構成し、例えば携帯電話のベースバンドＩＣに用いられる。半導体集積回路装置１は、図１に示すように、ＣＰＵ(Central Processing Unit)２、ＣＰＵ３、グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９からなる各モジュール、パワーマネージメント部１０、およびバス制御部１１を有する。
【００２５】
ＣＰＵ２、ＣＰＵ３、グラフィックスコア４、ならびにＬ２キャッシュ５は、高速コアバス１２を介して相互に接続されている。グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９、およびパワーマネージメント部１０は、メインバス１３を介して相互に接続されている。
【００２６】
高速コアバス１２は、高速通信が可能なバスであり、メインバス１３は、高速コアバス１２に比べて低速な通信が行われるバスである。半導体集積回路装置１には、周辺機器であるＵＳＢ(Universal Serial Bus)デバイス１４、および外部メモリ１５が外部端子を介して外部接続されている。
【００２７】
よって、高速コアバス１２に関してＬ２キャッシュ５はバススレーブとなるモジュールであり、ＣＰＵ２、ＣＰＵ３、グラフィクスコア４はそのバスマスタとなるモジュールである。メインバス１３に関しては、ＵＳＢインタフェース７、外部メモリインタフェース８及び内部メモリ９はバススレーブとなるモジュールであり、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６及びグラフィクスコア４はそのバスマスタとなるモジュールである。またダイレクトメモリアクセスコントローラ６はバススレーブでもあり、そのバスマスタはＬ２キャッシュ５およびグラフィクスコア４である。ＣＰＵ２、ＣＰＵ３、グラフィクスコア４、Ｌ２キャッシュ５及びダイレクトメモリアクセスコントローラ６は、バスマスタとなるモジュールである。Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８及び内部メモリ９はバススレーブをなすモジュールである。Ｌ２キャッシュ５及びダイレクトメモリアクセスコントローラ６は、バスマスタ及びバススレーブの双方の機能を有したモジュールといえる。
【００２８】
外部メモリ１５は、例えば、ＤＤＲ−ＳＤＲＡＭ(Double Data Rate Synchronous Dynamic Random Access Memory)などの揮発性半導体メモリなどからなる。
【００２９】
ＣＰＵ２，３は、ユーザプログラムに基づいて、半導体集積回路装置１における動作を行う。グラフィックスコア４は、２次元、または３次元のグラフィック処理を行う。Ｌ２キャッシュ５は、ＣＰＵ２，３の２次キャッシュとして用いられ、ＣＰＵ２，３などに用いられるデータなどを蓄積する。なおＣＰＵ２，３の各々は１次キャッシュを有している。
【００３０】
ダイレクトメモリアクセスコントローラ６は、外部接続された外部メモリ１５や内部メモリ９などに対してＣＰＵ２，３を介することなく直接アクセスしてデータの書き込み／読み出し制御を行う。
【００３１】
ＵＳＢインタフェース７は、ＵＳＢデバイス１４とのインタフェース回路であり、外部メモリインタフェース８は、外部メモリ１５とのインタフェース回路である。内部メモリ９は、例えば、フラッシュメモリやＲＯＭ(Read Only Memory)などの不揮発性メモリ、あるいはＲＡＭ(Random Access Memory)などからなり、ＣＰＵ２，３などが用いるユーザプログラムなどが格納される。
【００３２】
パワーマネージメント部１０は、半導体集積回路装置１における低消費電力化を制御する。パワーマネージメント部１０は、例えば、ＵＳＢインタフェース７、外部メモリインタフェース８、および内部メモリ９などのバススレーブとなるモジュールにそれぞれ対応づけられた複数の制御レジスタ１０１を有しており、該制御レジスタに格納された情報に基づいて、バス制御部１１に対応するモジュールの省電力化を制御する。
【００３３】
パワーマネージメント部１０による省電力制御の内容は、例えば、モジュールへのクロック供給の停止、モジュールの動作周波数(クロック)の変更、ならびにモジュールへの電源供給の停止などである。パワーマネージメント部１０は、低消費電力対象となるモジュールを停止させて、上記した３つの省電力制御の内容から、最適な低消費電力制御の内容を選択して実行する。
【００３４】
バス制御部１１は、バス停止要求制御部１６、バス停止制御部１７1〜１７8、および依存関係設定レジスタ１８1〜１８8を有する。バス停止制御部１７1〜１７8、ならびに依存関係設定レジスタ１８1〜１８8は、半導体集積回路装置１における複数のモジュール（ＣＰＵ２、ＣＰＵ３、グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９）にそれぞれ対応して設けられている。
【００３５】
ここで、依存関係設定レジスタは、必ずしもすべてのモジュールに対応するように設けるのではなく、バススレーブとなるモジュール(図１のＬ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、および内部メモリ９)に設け、バスマスタとなるモジュール（ＣＰＵ２、ＣＰＵ３、グラフィックスコア４）には設けない構成としてもよい。
【００３６】
バス停止要求制御部１６は、パワーマネージメント部１０から出力されるバス停止要求信号ＢＳＲが入力されるように接続されていると共に、バス停止要求制御部１６から出力されるバス停止完了信号ＢＳＡがパワーマネージメント部１０に入力されるように接続されている。
【００３７】
バス停止要求信号ＢＳＲは、バス停止要求を行う信号であり、バス停止の対象となるモジュールがどれであるかを示す情報も含まれている。バス停止要求制御部１６は、パワーマネージメント部１０から出力されるバス停止要求信号ＢＳＲに基づいて、該当するモジュールのバス停止制御を行う。
【００３８】
また、バス停止完了信号ＢＳＡは、バス停止要求制御部１６が該当するモジュールを停止させた際に発行する信号である。パワーマネージメント部１０は、バス停止完了信号ＢＳＡが入力されたことにより、対象モジュールがバス停止したと判断し、対象モジュールに対して前述した省電力制御（モジュールのクロック供給の停止、モジュールの動作周波数の変更、あるいはモジュールへの電源供給の停止のいずれか）を実行する。
【００３９】
バス停止制御部１７1〜１７8には、バス停止要求制御部１６から出力されるモジュール別バス停止要求信号ＭＲ１〜ＭＲ８がそれぞれ入力されるように接続されている。また、バス停止要求制御部１６、およびバス停止制御部１７1〜１７8には、各々のモジュール（ＣＰＵ２、ＣＰＵ３、グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９）から出力されるモジュール別バス停止完了信号ＭＡ１〜ＭＡ８がそれぞれ入力されるように接続されている。
【００４０】
なお、図１では、簡略化のために省略したが、モジュール別バス停止完了信号は、対応するモジュールに接続されたバス停止制御部だけではなく、すべてのバス停止制御部にも入力されるように接続されている。例えば、ＣＰＵ２から出力されるモジュール別バス停止完了信号ＭＡ１は、バス停止要求制御部１６、およびバス停止制御部１７1だけでなく、バス停止制御部１７2〜１７8にも入力されるようにそれぞれ接続されている。
【００４１】
さらに、各々のモジュール（ＣＰＵ２、ＣＰＵ３、グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９）には、バス停止制御部１７1〜１７8から出力されるモジュール別バス停止リクエスト信号ＲＱ１〜ＲＱ８がそれぞれ入力されるように接続されている。
【００４２】
モジュール別バス停止要求信号ＭＲ１〜ＭＲ８は、バス停止させたいモジュールに対してバス停止を要求する信号であり、モジュール別バス停止完了信号ＭＡ１〜ＭＡ８は、バス停止要求制御部１６が指定した対象モジュールのバス停止が完了したことを知らせる信号である。
【００４３】
モジュール別バス停止リクエスト信号ＲＱ１〜ＲＱ８は、バス停止要求制御部１６から出力されるモジュール別バス停止要求信号ＭＲ１〜ＭＲ８に基づいて、それぞれ対応するモジュールをバス停止させる信号である。
【００４４】
また、バス停止制御部１７1〜１７8には、他のバス停止制御部から出力される事前バス停止要求信号ＡＢＳがそれぞれ出力される構成となっている。図１では、簡略化するために省略している。
【００４５】
例えば、バス停止制御部１７1からは、他のバス停止制御部１７2〜１７8に事前バス停止要求信号ＡＢＳが入力されるようにそれぞれ接続されるとともに、他のバス停止制御部１７2〜１７8から出力された事前バス停止要求信号ＡＢＳがバス停止制御部１７1に入力されるようにそれぞれ接続されている。
【００４６】
事前バス停止要求信号ＡＢＳは、対象モジュールと依存関係のあるモジュールがどれであるかの情報を含み、対象モジュールよりも先に依存関係のあるモジュールをバス停止させるための信号である。
【００４７】
また、依存関係とは、バス停止要求制御部１６が指定した対象モジュールがアクセスする他のモジュールであり、対象モジュールはバススレーブとなり、アクセスするモジュールは、対象モジュールにアクセスするモジュールはバスマスタとなる。
【００４８】
〈バス停止制御部、および依存関係設定レジスタの接続構成例〉
図２は、ＣＰＵ２に対応するバス停止制御部１７1、および依存関係設定レジスタ１８1の接続構成を示す説明図である。
【００４９】
図示するように、バス停止制御部１７1には、依存関係設定レジスタ１８1が接続されている。また、バス停止制御部１７1には、他のモジュール（ＣＰＵ３、グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９）から出力されたモジュール別バス停止完了信号ＭＡ２〜ＭＡ８が入力される。
【００５０】
さらに、ＣＰＵ２から出力されるモジュール別バス停止完了信号ＭＡ１は、バス停止要求制御部１６、ならびにバス停止制御部１７1〜１７8にそれぞれ入力されるように接続されている。また、バス停止制御部１７1から出力されるモジュール別バス停止リクエスト信号ＲＱ１はＣＰＵ２に入力されるように接続されている。
【００５１】
また、バス停止制御部１７1から出力される事前バス停止要求信号ＡＢＳは、他のバス停止制御部１７2〜１７8にそれぞれ入力されるように接続されるとともに、他のバス停止制御部１７2〜１７8から出力される事前バス停止要求信号ＡＢＳがバス停止制御部１７1にそれぞれ入力されるように接続されている。
【００５２】
なお、図２では、モジュールがＣＰＵ２として、バス停止制御部１７1、および依存関係設定レジスタ１８1の接続構成について説明したが、他のモジュール（ＣＰＵ３、グラフィックスコア４、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６、ＵＳＢインタフェース７、外部メモリインタフェース８、内部メモリ９）にそれぞれ対応するバス停止制御部１７2〜１７8、および依存関係設定レジスタ１８2〜１８8の接続構成についても同様である。
【００５３】
〈依存関係設定レジスタのデータ内容、およびデータ構成例〉
図３は、依存関係設定レジスタ１８1(〜１８8）のデータ内容を示す説明図であり、図４は、依存関係設定レジスタ１８1(〜１８8）におけるレジスタ設定の一例示す説明図である。
【００５４】
依存関係設定レジスタ１８1(〜１８8）は、例えば、８ビットのデータレジスタＤ０〜Ｄ７を保持する構成を有する。データレジスタＤ０はＣＰＵ２、データレジスタＤ１はＣＰＵ３、データレジスタＤ２はグラフィックスコア４、データレジスタＤ３はＬ２キャッシュ５、データレジスタＤ４はダイレクトメモリアクセスコントローラ６、データレジスタＤ５はＵＳＢインタフェース７、データレジスタＤ６は外部メモリインタフェース８、そしてデータレジスタＤ７は内部メモリ９にそれぞれ対応する。そして、依存関係のあるモジュールに対応するデータレジスタに’１’が格納されることにより、依存関係があることが示される。
【００５５】
依存関係が示される情報は、バススレーブとなるモジュール（Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、および内部メモリ９)のみに格納されている。また、依存先のないバスマスタとなるモジュール（ＣＰＵ２、ＣＰＵ３、グラフィックスコア４）に対応する依存関係設定レジスタ１８1〜１８3のデータレジスタＤ０〜Ｄ７には、すべて’０’の情報が格納されている。
【００５６】
例えば、ＵＳＢインタフェース７に接続される依存関係設定レジスタ１８6の場合には、図４に示すように、データレジスタＤ３，Ｄ４に’１’が格納されているので、ＵＳＢインタフェース７は、Ｌ２キャッシュ５、およびダイレクトメモリアクセスコントローラ６と依存関係があることになる。言い換えれば、Ｌ２キャッシュ５、およびダイレクトメモリアクセスコントローラ６は、バススレーブであるＵＳＢインタフェース７のバスマスタとなる。
【００５７】
また各バススレーブ（Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８及び内部メモリ９）において、そのバススレーブにアクセス可能なすべてのバスマスタをバススレーブに依存させる必要はない。例えばＵＳＢインタフェース７にアクセス可能なバスマスタは、Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６及びグラフィクスコア４であるが、そのうち依存関係レジスタ１８6により特定されるバスマスタは、Ｌ２キャッシュ５及びダイレクトメモリアクセスコントローラ６である。
【００５８】
依存関係設定レジスタ１８1〜１８8の各々は揮発性のメモリ装置で構成され、ＣＰＵ２、ＣＰＵ３またはその双方によって依存関係を示す情報が書き込まれる。例えば半導体集積回路装置の電源投入時の初期設定において依存関係設定レジスタに依存関係を示す情報が設定される。この依存関係設定レジスタは不揮発性のメモリ装置で構成されてもよい。
【００５９】
また依存関係レジスタに記憶される情報は半導体集積回路装置の動作時は常に固定としてもよいが、半導体集積回路装置１の動作状態（動作シーン別）に応じてソフトウェアによって動的に書き換えるようにしてもよい。これにより、より詳細なモジュールのバス停止制御を行うことが可能となり、半導体集積回路装置１のパフォーマンスを向上させることができる。
【００６０】
〈バス制御部の動作例〉
次に、本実施の形態におけるバス制御部１１の動作について説明する。
【００６１】
図５は、バス停止制御部（１７1〜１７8）によるバス停止処理の動作の一例を示すフローチャートである。
【００６２】
バス停止制御部（１７1〜１７8）は、バス停止要求制御部１６から、モジュール別バス停止要求信号（ＭＲ１〜ＭＲ８）が発生したか否か、または他のバス停止制御部（１７1〜１７8）から事前バス停止要求信号ＡＢＳが発生したか否かを判定する（ステップＳ１０１）。
【００６３】
モジュール別バス停止要求信号（ＭＲ１〜ＭＲ８）、または事前バス停止要求信号ＡＢＳのいずれかが発生すると、バス停止対象のモジュールに接続されたバス停止制御部（１７1〜１７8）は、依存関係設定レジスタ（１８1〜１８8）に格納されている情報を読み出し、該当するモジュール（Ｌ２キャッシュ５、ダイレクトメモリアクセスコントローラ６、ＵＳＢインタフェース７、外部メモリインタフェース８、または内部メモリ９)に依存関係があるか否かを判定する（ステップＳ１０２）。
【００６４】
依存関係がある場合、依存関係があるモジュールに対して事前バス停止要求信号ＡＢＳを出力する（ステップＳ１０３）。たとえば、内部メモリ９の場合、図４に示すように、Ｌ２キャッシュ５のみと依存関係があるので、内部メモリ９に接続されているバス停止制御部１７8は、Ｌ２キャッシュ５に接続されているバス停止制御部１７4に対して事前バス停止要求信号ＡＢＳを出力する。
【００６５】
この事前バス停止要求信号ＡＢＳは、前述したように、バス停止要求制御部１６がバス停止を要求したモジュールよりも先に依存関係のあるモジュールをバス停止させるための信号である。
【００６６】
事前バス停止要求信号ＡＢＳを受け取ったバス停止制御部は、接続されているモジュールのバス停止制御を行い、依存関係のあるモジュールのバス停止が完了すると、モジュール別バス停止完了信号ＭＡを出力する。
【００６７】
事前バス停止要求信号ＡＢＳを出力したバス停止制御部がモジュール別バス停止完了信号を受け取ると（ステップＳ１０４）、バス停止対象となる事前バス停止要求信号ＡＢＳを出力したバス停止制御部に接続されたモジュールに対してモジュール別バス停止リクエスト信号ＲＱをアサートする（ステップＳ１０５）。
【００６８】
アサートされたモジュール別バス停止リクエスト信号ＲＱに基づいて、バス停止対象のモジュールはバスの使用を停止する。このときモジュール全体の動作が停止されてもよく、バスの使用が停止されていればモジュールの一部が動作していてもよい。特にバスマスタとなるモジュールでは、発行しているバストランザクションを完了した後にバス使用が停止される。バス停止がなされるとモジュールからモジュール別バス停止完了信号ＭＡが出力される（ステップＳ１０６）。モジュール別バス停止リクエスト信号ＲＱがアサートされたときモジュールはバス停止している場合は、実質的な処理を行うことなくモジュールはモジュール別バス停止完了信号ＭＡを出力することもある。
【００６９】
以上によりモジュールのバス停止処理が終了となる。
【００７０】
前述した内部メモリ９の場合には、バス停止制御部１７4が受け取った事前バス停止要求信号ＡＢＳに基づいて、Ｌ２キャッシュ５の動作を停止させ、その後、バス停止制御部１７4から該Ｌ２キャッシュ５がバス停止したことを示すモジュール別バス停止完了信号が出力される。
【００７１】
モジュール別バス停止完了信号を受けて、バス停止制御部１７8は、内部メモリ９に対してモジュール別バス停止リクエスト信号ＲＱ８を出力する。これにより、内部メモリ９の動作が停止し、モジュール別バス停止完了信号ＭＡが出力され、内部メモリ９がバス停止したことをバス停止要求制御部１６が認識するとバス停止処理が終了となる。
【００７２】
このように、バス停止制御部１７1〜１７8は、バス停止要求制御部１６によってバス停止されるモジュール（バススレーブ）が、他のモジュール（バスマスタ）と依存関係がある場合には、依存関係があるモジュールを先にバス停止させた後、バス停止要求制御部１６からバス停止要求のあったモジュールをバス停止する制御を行う。
【００７３】
これにより、バスマスタのモジュールがバススレーブのモジュールに対してバスリクエストした直後などにバススレーブのモジュールがバス停止されることがなくなり、バススレーブのモジュールからの応答をバスマスタのモジュールが待ち続けることによって生じるハングアップなどを防止することができる。
【００７４】
そのうえで、バススレーブとなるモジュールがバス停止の処理を開始する前に、バス停止をすべきモジュールが判別され、その判別されたバスマスタのみのバス停止の処理が行われるため、必要以上のバスマスタがバス停止されることを防ぐ。特に書込み可能な記憶装置（揮発性メモリあるいは不揮発性メモリ）に記憶した情報に基づきそのバス停止すべきバスマスタを指定することで、必要に応じてバス停止すべきバスマスタを変更することも可能である。
【００７５】
〈省電力制御の際のバス制御におけるバス停止制御〉
続いて、バス制御部１１におけるバス停止制御処理の詳細について説明する。
【００７６】
特にバスが階層化するなどバス構成が複雑化した半導体集積回路装置においては、バスマスタ機能とバススレーブ機能とを兼ね備えたモジュールが存在する。例えば図１においては、Ｌ２キャッシュ５及びダイレクトメモリアクセスコントローラ６がこれに該当する。このようなモジュールが存在する場合、あるバスマスタとなるモジュール（第１のモジュール）が自身の発行するバスリクエストを完了させるために、バスマスタ機能とバススレーブ機能とを兼ね備えたモジュール（第２のモジュール）がさらに新たなバスリクエストを発行する処理が必要となることがある。このときバス停止制御部がバス停止要求を発行したとき、第１のモジュール、第２のモジュールのバス停止が第１のモジュールよりも先に完了してしまうと、第１のモジュールは、第２のモジュールからの応答を待ち続けることになり、第１のモジュールのバス停止制御が完了せずに、半導体集積回路装置がハングアップに陥ってしまう可能性が生じることになる。
【００７７】
このような、ハングアップを回避するためには、ハングアップが発生する条件を洗い出し、ハングアップが発生しない順序でバス停止制御を行うようにソフトウェア（プログラム）設計を行うことが一般的である。しかしながら、バス停止制御に伴う上述したソフトウェア設計を行う際には、多くの工数が必要となり、開発コストも大きくなってしまうという問題がある。さらに、バス構成が異なる製品設計の際は、再度ハングアップが発生する条件を見直し、バス停止制御におけるソフトウェアの修正が必要となってしまうことになる。
【００７８】
この実施の形態は、バスマスタ機能とバススレーブ機能とを兼ね備えたモジュールが存在する場合でも、適正な順序でモジュールのバス停止を行うハードウェア構成を提供する。以下ではバスマスタ機能とバススレーブ機能とを兼ね備えたモジュールが存在する場合のモジュールのバス停止制御を説明する。
【００７９】
ここでは、図１におけるパワーマネージメント部１０が省電力制御により、内部メモリ９における動作クロックの周波数を変更させる場合のバス停止処理について説明する。
【００８０】
図６は、内部メモリ９における動作クロックの周波数を変更させる際のバス停止処理に注目した説明図であり、図７は、図６における各部の信号タイミングを示すタイミングチャートである。
【００８１】
図６は、内部メモリ９における動作クロックの周波数を変更させる際のバス停止処理に関係するブロックのみを示したものであり、図１から、バス停止要求制御部１６、バス停止制御部１７8，１７4，１７1、依存関係設定レジスタ１８8，１８4，１８1、内部メモリ９、Ｌ２キャッシュ５、およびＣＰＵ２の接続関係のみを抜き出したものである。
【００８２】
なお、図４からＬ２キャッシュ５と依存関係があるのは、モジュールはＣＰＵ２，３であるが、図６においては、ＣＰＵ２と同様の接続構成であるので、ＣＰＵ２、バス停止制御部１７2、依存関係設定レジスタ１８2を省略している。
【００８３】
また、図７は、上方から下方にかけて、パワーマネージメント部１０（図１）が発行するバス停止要求信号ＢＳＲ、バス停止制御部１７8から出力されるモジュール別バス停止リクエスト信号ＲＱ８、内部メモリ９から出力されるモジュール別バス停止完了信号ＭＡ８、バス停止制御部１７4から出力される事前バス停止要求信号ＡＢＳ、バス停止制御部１７4から出力されるモジュール別バス停止リクエスト信号ＲＱ４、Ｌ２キャッシュ５から出力されるモジュール別バス停止完了信号ＭＡ４、バス停止制御部１７1から出力される事前バス停止要求信号ＡＢＳ、バス停止制御部１７1から出力されるモジュール別バス停止リクエスト信号ＲＱ１、ＣＰＵ２から出力されるモジュール別バス停止完了信号ＭＡ１、バス停止制御部１７2から出力される事前バス停止要求信号ＡＢＳ、バス停止制御部１７2から出力されるモジュール別バス停止リクエスト信号ＲＱ２、およびＣＰＵ３から出力されるモジュール別バス停止完了信号ＭＡ２における信号タイミングをそれぞれ示している。
【００８４】
まず、パワーマネージメント部１０から、省電力制御により内部メモリ９における動作クロックの周波数を変更させるために、該内部メモリ９のバス停止を要求するバス停止要求信号ＢＳＲが出力される（図７、時間ｔ１）。
【００８５】
バス停止要求制御部１６は、バス停止要求信号ＢＳＲを受けて、内部メモリ９にバス停止を要求するモジュール別バス停止要求信号ＭＲ８をバス停止制御部１７8に出力する。モジュール別バス停止要求信号ＭＲ８が入力されると、バス停止制御部１７8は、依存関係設定レジスタ１８8の情報を読み出し、内部メモリ９と依存関係のあるモジュール（内部メモリ９のバスマスタとなるモジュール）があるか否かを判断する。
【００８６】
この場合、図４から、Ｌ２キャッシュ５と依存関係があるので、バス停止制御部１７8は、バス停止制御部１７4に事前バス停止要求信号ＡＢＳを出力する（図７、時間ｔ２）。バス停止制御部１７4は、事前バス停止要求信号ＡＢＳが入力されると、依存関係設定レジスタ１８4の情報を読み出し、Ｌ２キャッシュ５と依存関係のあるモジュール（内部メモリ９のバスマスタとなるモジュール）があるか否かを判断する。
【００８７】
図４から、Ｌ２キャッシュ５と依存関係のあるモジュールは、ＣＰＵ２，３であるので、バス停止制御部１７4は、バス停止制御部１７1、および図示しないバス停止制御部１７2に事前バス停止要求信号ＡＢＳをそれぞれ出力する（図７、時間ｔ３）。
【００８８】
バス停止制御部１７1，１７2は、事前バス停止要求信号ＡＢＳを受けて、依存関係設定レジスタ１８1，１８2の情報をそれぞれ読み出し、ＣＰＵ２，３と依存関係があるモジュールがあるか否かを判断する。
【００８９】
バスマスタであるＣＰＵ２，３に対応する依存関係設定レジスタ１８1，１８2には、前述したように依存関係の情報が格納されていないので、依存関係設定レジスタ１８1，１８2の情報をそれぞれ読み出す動作を省略するようにしてもよい。
【００９０】
この場合、図４から、ＣＰＵ２，３と依存関係があるモジュールはないので、バス停止制御部１７1，１７2は、ＣＰＵ２，３に対して、バス停止を要求するモジュール別バス停止リクエスト信号ＲＱ１，ＲＱ２をそれぞれ出力する（図７、時間ｔ４）。
【００９１】
ＣＰＵ２，３は、モジュール別バス停止リクエスト信号ＲＱ１，ＲＱ２がそれぞれ入力されるとバス停止を行い、バス停止を完了したことを示すモジュール別バス停止完了信号ＭＡ１，ＭＡ２をバス停止制御部１７1，１７2に出力する（図７、時間ｔ５，ｔ６）。
【００９２】
モジュール別バス停止完了信号ＭＡ１，ＭＡ２は、バス停止制御部１７4にも入力され、該バス停止制御部１７4は、Ｌ２キャッシュ５と依存関係のあるＣＰＵ２，３がバス停止したこと判断し、Ｌ２キャッシュ５に対してモジュール別バス停止リクエスト信号ＲＱ４を出力する（図７、時間ｔ７）。
【００９３】
Ｌ２キャッシュ５は、モジュール別バス停止リクエスト信号ＲＱ４が入力されるとバス停止を行い、バス停止を完了したことを示すモジュール別バス停止完了信号ＭＡ４を出力する（図７、時間ｔ８）。
【００９４】
モジュール別バス停止完了信号ＭＡ４は、バス停止制御部１７4に入力されると共に、バス停止制御部１７8にも入力される。バス停止制御部１７8は、内部メモリ９と依存関係のあるＬ２キャッシュ５がバス停止したこと判断し、内部メモリ９に対してモジュール別バス停止リクエスト信号ＲＱ８を出力する（図７、時間ｔ９）。
【００９５】
内部メモリ９は、モジュール別バス停止リクエスト信号ＲＱ８が入力されるとバス停止を行い、バス停止を完了したことを示すモジュール別バス停止完了信号ＭＡ８を出力する（図７、時間ｔ１０）。
【００９６】
内部メモリ９から出力されたモジュール別バス停止完了信号ＭＡ８は、バス停止要求制御部１６に入力される。それによって、バス停止要求制御部１６は、内部メモリ９のバス停止が完了したと判断し、パワーマネージメント部１０に対してバス停止完了信号ＢＳＡを出力する。
【００９７】
パワーマネージメント部１０は、バス停止完了信号ＢＳＡを受けて、内部メモリ９における動作クロックの周波数を変更する制御を行った後、バス停止要求信号ＢＳＲを取り下げる（図７、時間ｔ１１）。以上により、内部メモリ９における動作クロックの周波数を変更させる際のバス停止処理の動作が終了となる。
【００９８】
それにより、本実施の形態によれば、低消費電力制御に必要なモジュールのみをバス停止させることができるので、バス停止処理に起因するハングアップなどを回避することができ、半導体集積回路装置１のパフォーマンスを向上させることができる。
【００９９】
また、ハングアップ条件を回避するためのソフトウェア処理が不要となるので、半導体集積回路装置１の開発工数、およびコストを低減することができる。
【０１００】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１０１】
１  半導体集積回路装置
２  ＣＰＵ
３  ＣＰＵ
４  グラフィックスコア
５  Ｌ２キャッシュ
６  ダイレクトメモリアクセスコントローラ
７  ＵＳＢインタフェース
８  外部メモリインタフェース
９  内部メモリ
１０  パワーマネージメント部
１１  バス制御部
１２  高速コアバス
１３  メインバス
１４  ＵＳＢデバイス
１５  外部メモリ
１６  バス停止要求制御部
１７1〜１７8  バス停止制御部
１８1〜１８8  依存関係設定レジスタ
【図１】
0005775398.tif 000002
【図２】
0005775398.tif 000003
【図３】
0005775398.tif 000004
【図４】
0005775398.tif 000005
【図５】
0005775398.tif 000006
【図６】
0005775398.tif 000007
【図７】
0005775398.tif 000008