(57)【特許請求の範囲】
【請求項１】
トランザクションを発行し、バスマスタ停止要求に応じて前記トランザクションの発行を停止するバスマスタと、前記トランザクションを受信するバススレーブと、のいずれか一方の機能が割り当てられる複数のインタフェース部が、ルータを介して接続される半導体装置であって、
前記バスマスタとして機能する第１のインタフェース部を有し、第１のトランザクションを発行する第１のモジュールと、
前記バススレーブとして機能する第２のインタフェース部と、前記バスマスタとして機能する第３のインタフェース部と、を有し、前記第１のトランザクションに応じて第２のトランザクションを発行する第２のモジュールと、
前記バススレーブとして機能する第４のインタフェース部を有し、前記第２のトランザクションを受信する第３のモジュールと、
前記バスマスタ停止要求をアサートし、前記バスマスタ停止要求に対応するバスマスタ停止応答がアサートされたことに応じて前記バスマスタ停止要求のアサート処理を完了するバスマスタ停止要求制御部と、
前記第１のトランザクションに強制処理要求符号を付す符号付加部と、を有し、
前記符号付加部は、前記ルータ上に設けられ、
前記第２のモジュールは、前記バスマスタ停止要求がアサートされている期間に前記強制処理要求符号が付加された前記第１のトランザクションを受信した場合、前記バスマスタ停止応答をアサートすると共に前記第２のトランザクションを発行し、
前記第１のモジュールは、前記第１のトランザクションに対する応答を受信したことに応じて前記バスマスタ停止要求に対応する前記バスマスタ停止応答をアサートする半導体装置。
【請求項２】
前記第２のモジュールは、前記バスマスタ停止要求が与えられたことに応じて前記第３のインタフェース部に前記第２のトランザクションの発行を停止させるトランザクション発行停止信号と前記バスマスタ停止応答とをアサートするとともに、前記第１のトランザクションに前記強制処理要求符号が付加されている場合は、前記バスマスタ停止要求がアサートされているか否かに関わらず前記トランザクション発行停止信号をネゲートするバス停止制御部を有する請求項１に記載の半導体装置。
【請求項３】
前記バスマスタ停止要求制御部に与えるバス停止要求をアサートし、前記バスマスタ停止要求制御部における前記アサート処理の完了に応じて前記バスマスタ停止要求制御部がアサートするバス停止応答に基づき前記ルータに接続されるモジュール及び前記ルータの少なくとも１つの動作状態を制御するパワーマネジメント部を有する請求項１又は２に記載の半導体装置。
【請求項４】
前記パワーマネジメント部は、前記ルータに接続されるモジュール及び前記ルータの動作状態を定義する複数の設定レジスタを有し、前記バス停止応答がアサートされたことに応じて前記ルータに接続されるモジュール及び前記ルータの少なくとも１つの動作状態を前記複数の設定レジスタに定義された状態とする請求項３に記載の半導体装置。
【請求項５】
前記パワーマネジメント部は、前記バス停止応答がアサートされたことに応じて前記ルータに接続されるモジュール及び前記ルータの少なくとも１つの動作クロックの周波数を変更、動作クロック信号の停止又は前記ルータに接続されるモジュールの電源電圧を遮断する請求項３に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、バスを介して複数の回路ブロックが接続される半導体装置に関する。
【背景技術】
【０００２】
半導体装置では、バスを介して複数のモジュール間の通信を行うバスシステムが多く提案されている。このようなバスシステムでは、パワーマネジメント制御を行う等のシステムの状態の変更を行うことがある。この際、バスシステムでは、バスにトランザクションを発行するバスマスタに新規のトランザクションの発行を停止させるバス停止要求を発行する。そして、バスシステムでは、バスに流れるトランザクションの消化を待って、システムの状態の変更を行う。このように、互いに連携する複数のモジュールを有するシステムの状態を変更する技術の例が特許文献１〜３に開示されている。
【０００３】
特許文献１では、メモリモジュールが主従関係を有している場合に、第１のモジュールからの要求に基づいて生成されるゲート信号により、第２のモジュールに対するクロック信号の供給又は停止を制御する技術が開示されている。
【０００４】
特許文献２では、複数のデバイスの内の何れかのデバイスに異常が発生したとき、各デバイスから既に発行されているトランザクションを処理する場合を除き、正常動作しているデバイスによるバスの利用を抑止する。その後、特許文献２に記載のバスシステムでは、未完了のトランザクションがないことを条件にして、異常の発生したデバイスに対してリセットを実施すると共にバスに対してバス特性情報を出力し、リセット解除時に異常の発生したデバイスにバス特性情報を取り込ませる構成を有する。
【０００５】
特許文献３は、１つのターゲットがバストランザクションに応答し、残りのターゲットが該バストランザクションを傍受してデータをシステムバスから受信し、通常は同報通信転送をサポートしない周辺装置相互接続（ＰＣＩ）バスのようなシステムバスを介して、複数のターゲットにデータを同報通信する方法について開示する。特許文献３では、傍受ターゲットのいずれかが、一時的にバス上のデータを受け入れることができない状態にあることを応答ターゲットに通信している際に、該応答ターゲットがバストランザクションをストールする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−５２５２５号公報
【特許文献２】特開２００５−１２２３３７号公報
【特許文献３】特表２００４−５２６２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、バスシステムでは、バスに接続されるモジュールに、バススレーブとして機能する受信インタフェースと、バスマスタとして機能する送信インタフェースとをそなえるモジュールが存在する。このようなモジュールは、受信インタフェースにより受信したトランザクションを完了するために他のモジュールに新たなトランザクションを発行する。
【０００８】
このようなモジュールがバスに接続されているバスシステムでは、バス停止要求をアサートした後に、自モジュールが受信したトランザクションを完了するための新たなトランザクションの発行ができないことがある。このようなタイミングでバス停止要求がアサートされた場合、自モジュールに対してトランザクションを発行した他のモジュールは、発行したトランザクションに対応する応答を得ることができずにバス停止要求に対応するバス停止応答をアサートすることができない。そのため、このような状態が発生した場合、バスシステムでは、バス停止応答によりバスに流れるトランザクションが消化されたことを認識できずにシステムがハングアップする問題がある。
【課題を解決するための手段】
【０００９】
本発明にかかる半導体装置の一態様は、トランザクションを発行し、バスマスタ停止要求に応じて前記トランザクションの発行を停止するバスマスタと、前記トランザクションを受信するバススレーブと、のいずれか一方の機能が割り当てられる複数のインタフェース部が、ルータを介して接続される半導体装置であって、前記バスマスタとして機能する第１のインタフェース部を有し、第１のトランザクションを発行する第１のモジュールと、前記バススレーブとして機能する第２のインタフェース部と、前記バスマスタとして機能する第３のインタフェース部と、を有し、前記第１のトランザクションに応じて第２のトランザクションを発行する第２のモジュールと、前記バススレーブとして機能する第４のインタフェース部を有し、前記第２のトランザクションを受信する第３のモジュールと、前記バスマスタ停止要求をアサートし、前記バスマスタ停止要求に対応するバスマスタ停止応答がアサートされたことに応じて前記バスマスタ停止要求のアサート処理を完了するバスマスタ停止要求制御部と、前記第１のトランザクションに強制処理要求符号を付す符号付加部と、を有し、前記符号付加部は、前記ルータ上に設けられ、前記第２のモジュールは、前記バスマスタ停止要求がアサートされている期間に前記強制処理要求符号が付加された前記第１のトランザクションを受信した場合、前記バスマスタ停止応答をアサートすると共に前記第２のトランザクションを発行し、前記第１のモジュールは、前記第１のトランザクションに対する応答を受信したことに応じて前記バスマスタ停止要求に対応する前記バスマスタ停止応答をアサートする。
【００１０】
本発明にかかる半導体装置によれば、第２のモジュールが、強制処理要求符号が付された第１のトランザクションを受信した場合には、バスマスタ停止要求がアサートされているか否かに関わらず第２のトランザクションの発行を行う。これにより、バスマスタ停止要求のアサート後に第１のトランザクションによる動作を完了するために必要な第２のトランザクションを発行する必要が生じても、当該第２のトランザクションを発行することが可能になり、バスシステムのハングアップを防ぐことが可能になる。
【発明の効果】
【００１１】
本発明にかかる半導体装置によれば、バスシステムのハングアップを防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかるＣＰＵのブロック図である。
【図３】実施の形態１にかかるトランスレーションルックアサイドバッファの概略図の一例を示す図である。
【図４】実施の形態１にかかるバスリクエストのデータフォーマットの概略図である。
【図５】実施の形態１にかかるＬ２キャッシュのブロック図である。
【図６】実施の形態１にかかる半導体装置の動作を示すタイミングチャートである。
【図７】実施の形態１にかかる半導体装置において強制処理要求符号を用いない場合の動作を示すタイミングチャートである。
【図８】実施の形態１にかかるパワーマネジメント部の動作を示すフローチャートである。
【図９】実施の形態２にかかるルータのブロック図である。
【図１０】実施の形態２にかかるルータのルーティングテーブルの概略図の一例を示す図である。
【発明を実施するための形態】
【００１３】
実施の形態１
以下、本発明の実施の形態について図面を参照して説明する。図１に実施の形態１にかかる半導体装置１のブロック図を示す。なお、図１に示したブロック図では、半導体装置１によって利用されるＵＳＢデバイスと、外部メモリとを示した。
【００１４】
図１に示すように実施の形態１にかかる半導体装置１は、バスマスタ停止要求制御部１０、ＣＰＵ（Central Processing Unit）１１、１２、グラフィックスコア１３、Ｌ２キャッシュ１４、ＤＭＡコントローラ１５、ＵＳＢインタフェース１６、外部メモリインタフェース１７、内部メモリ１８、パワーマネジメント部１９を有する。
【００１５】
図１に示すように、半導体装置１では、ＣＰＵ１１、１２、グラフィックスコア１３、及び、Ｌ２キャッシュ１４がコアバスＢＵＳ１によって互いに接続され、Ｌ２キャッシュ１４、ＤＭＡコントローラ１５、ＵＳＢインタフェース１６、外部メモリインタフェース１７、内部メモリ１８、及び、パワーマネジメント部１９がメインバスＢＵＳ２によって互いに接続される。なお、図１に示すシステムの構成は、一例であって、いずれのバスにどの回路ブロックが接続されるかは、半導体装置１のシステムの仕様に応じて変更することが可能である。
【００１６】
また、半導体装置１は、トランザクションを発行し、バスマスタ停止要求に応じてトランザクションの発行を停止するバスマスタと、トランザクションを受信するバススレーブと、のいずれか一方の機能が割り当てられる複数のインタフェース部が、バスを介して接続されるものである。このインタフェース部は、コアバス又はメインバスに接続される回路ブロックの一部として実装される。
【００１７】
また、半導体装置１では、ルータを用いてコアバス及びメインバスを構成する。ルータは、バスマスタとして機能するインタフェース部から発行されるトランザクションを、バススレーブとして機能するインタフェース部に出力する。より具体的には、ルータは、当該トランザクションに含まれるアクセスアドレスを参照してトランザクションの出力先を判別し、判別結果に基づき決定した出力先のバススレーブとして機能するインタフェース部に当該トランザクションを発行する。
【００１８】
バスマスタ停止要求制御部１０は、バスマスタ停止要求ＲＥＱ１〜ＲＥＱ６をアサートし、バスマスタ停止要求ＲＥＱ１〜ＲＥＱ６に対応するバスマスタ停止応答ＡＣＫ１〜ＡＣＫ６がアサートされたことに応じてバスマスタ停止要求ＲＥＱ１〜ＲＥＱ６のアサート処理を完了する。より具体的には、バスマスタ停止要求制御部１０は、パワーマネジメント部１９が出力するバス停止要求ＲＥＱ０がアサートされたことに応じてバスマスタ停止要求ＲＥＱ１〜ＲＥＱ６をアサートする。また、バスマスタ停止要求制御部１０は、バスマスタ停止要求ＲＥＱ１〜ＲＥＱ６に対応するバスマスタ停止応答ＡＣＫ１〜ＡＣＫ６がアサートされたことに応じてパワーマネジメント部１９に出力するバス停止応答ＡＣＫ０をアサートする。そして、バスマスタ停止要求制御部１０は、パワーマネジメント部１９に出力するバス停止応答ＡＣＫ０をアサートすることでバスマスタ停止要求ＲＥＱ１〜ＲＥＱ６のアサート処理を完了する。
【００１９】
ＣＰＵ１１、１２及びグラフィックスコア１３は、バスマスタとして機能する第１のインタフェース部を有し、第１のトランザクションを発行する第１のモジュールである。また、この第１のモジュールは、第１のトランザクションに対する応答を受信したことに応じてバスマスタ停止要求ＲＥＱ１〜ＲＥＱ３に対応するバスマスタ停止応答ＡＣＫ１〜ＡＣＫ３をアサートする。ＣＰＵ１１、１２は、半導体装置１においてプログラムに基づいた汎用的な演算を行う演算器である。また、グラフィックスコア１３は、半導体装置１における画像処理を行う演算器である。
【００２０】
Ｌ２キャッシュ１４、ＤＭＡコントローラ１５及びＵＳＢインタフェース１６は、バススレーブとして機能する第２のインタフェース部と、バスマスタとして機能する第３のインタフェース部と、を有し、第１のトランザクションに応じて第２のトランザクションを発行する第２のモジュールである。また、この第２のモジュールは、バス停止要求ＲＥＱ４〜ＲＥＱ６がアサートされている期間に強制処理要求符号が付加された第１のトランザクションを受信した場合、バスマスタ停止応答ＡＣＫ４〜ＡＣＫ６をアサートすると共に第２のトランザクションを発行する。
【００２１】
Ｌ２キャッシュ１４は、ＣＰＵ１１、１２及びグラフィックスコア１３が利用するデータを一時的に記憶するキャッシュメモリである。Ｌ２キャッシュ１４は、キャッシュメモリ上に要求されたデータがない場合、内部メモリあるいは外部メモリから要求されたデータを取得し、取得したデータをデータの要求元に返信するとともに、自モジュールに格納する。
【００２２】
ＤＭＡコントローラ１５は、ＣＰＵ１１又はＣＰＵ１２を介さずに回路ブロック間のデータ転送を行うダイレクトメモリアクセスを制御する回路ブロックである。ＵＳＢインタフェース１６は、外部に接続されるＵＳＢデバイスのためのインタフェース回路である。
【００２３】
外部メモリインタフェース１７、内部メモリ１８、パワーマネジメント部１９は、バススレーブとして機能する第４のインタフェース部を有し、第２のトランザクションを受信する第３のモジュールである。
【００２４】
外部メモリインタフェース１７は、外部メモリと半導体装置１との間でデータの送受信を行うためのインタフェース回路である。内部メモリ１８は、半導体装置１が利用するデータを格納する記憶部である。
【００２５】
パワーマネジメント部１９は、バスマスタ停止要求制御部１０に与えるバス停止要求ＲＥＱ０をアサートし、バスマスタ停止要求制御部１０におけるアサート処理の完了に応じてバスマスタ停止要求制御部１０がアサートするバス停止応答ＡＣＫ０に基づきバスに接続されるモジュール及びバスの少なくとも１つの動作状態を制御する。パワーマネジメント部１９は、バスに接続されるモジュール及びバスの動作状態を定義する複数の設定レジスタ（以下、レジスタ群２０と称す）を有し、バス停止応答ＡＣＫ０がアサートされたことに応じてバスに接続されるモジュール及びバスの少なくとも１つの動作状態を設定レジスタ群２０に定義された状態とする。例えば、パワーマネジメント部１９は、バスに接続されるモジュール及びバスの少なくとも１つの動作クロックの周波数を変更、動作クロック信号の停止又は前記バスに接続されるモジュールの電源電圧を遮断する。
【００２６】
また、パワーマネジメント部１９は、ＣＰＵ１１又はＣＰＵ１２が設定レジスタ群２０の所定のレジスタの値を書き換える。そして、パワーマネジメント部１９は、所定のレジスタが書き換えられたことに応じてバス停止要求信号ＲＥＱ０をアサートする。このバス停止要求信号ＲＥＱ０には、停止対象のモジュールを指定する情報を含む。
【００２７】
実施の形態１にかかる半導体装置１では、第２のモジュール（例えば、Ｌ２キャッシュ１４、ＤＭＡコントローラ１５及びＵＳＢインタフェース１６）が、バス停止要求ＲＥＱ４〜ＲＥＱ６がアサートされている期間に強制処理要求符号が付加された第１のトランザクションを受信した場合、バスマスタ停止応答ＡＣＫ４〜ＡＣＫ６をアサートすると共に第２のトランザクションを発行する。つまり、半導体装置１では、第１のトランザクションに強制処理要求符号を付す符号付加部を有する。この符号付加部は、バスシステム上の様々な位置に設けることが可能である。そこで、実施の形態１では、符号付加部が第１のモジュール（例えば、ＣＰＵ１１、１２及びグラフィックスコア１３）を構成する１つの回路として実装した例について説明する。
【００２８】
第１のモジュールとして機能するＣＰＵ１１、１２及びグラフィックスコア１３は、符号付加部とインタフェース部の構成が同じであるため、ここでは、第１のモジュールの例としてＣＰＵ１１について説明する。
【００２９】
図２にＣＰＵ１１のブロック図を示す。図２に示すように、ＣＰＵ１１は、ＣＰＵコア２１、メモリ管理ユニット２２、第１のインタフェース部（例えば、バスマスタインタフェース２３）を有する。
【００３０】
ＣＰＵコア２１は、ＣＰＵ１１においてプログラムに基づく演算を行う回路ブロックである。ＣＰＵコア２１は、演算の結果に応じて外部アクセスリクエストを発行する。メモリ管理ユニット２２は、ＣＰＵコア２１から発行された外部アクセスリクエストのアドレスを論理アドレスから物理アドレスに変換するとともに外部アクセスリクエストに付加情報を付加する。バスマスタインタフェース２３は、メモリ管理ユニット２２が出力する外部アクセスリクエストと付加情報とを含むバスリクエストをコアバスＢＵＳ１に出力する。そして、バスマスタインタフェース２３が出力するバスリクエストが第１のトランザクションとなる。
【００３１】
バスマスタインタフェース２３は、バスリクエストに対応する応答（例えば、バスレスポンス）があった場合、当該バスレスポンスをＣＰＵコア２１に返信する。そして、ＣＰＵコア２１は、バスレスポンスに対して処理を行う。
【００３２】
また、バスマスタインタフェース２３は、バスマスタ停止要求ＲＥＱ１がアサートされている期間は新たなバスアクセスの発行を停止する。さらに、バスマスタインタフェース２３は、最後に発行したバスアクセスに対応したバスレスポンスがあったことに応じてバス停止応答ＡＣＫ１をアサートする。
【００３３】
ここで、メモリ管理ユニット２２の動作についてより詳細に説明する。メモリ管理ユニット２２は、トランスレーションルックアサイドバッファ（ＴＬＢ：Translation Lookaside Buffer）を有する。そして、メモリ管理ユニット２２は、ＴＬＢを参照して、論理アドレスから物理アドレスへの変換を行う。また、メモリ管理ユニット２２は、ＴＬＢを参照して、ＣＰＵコア２１が出力する外部アクセスアドレスの論理アドレスに対応する付加情報を付加する。そこで、メモリ管理ユニット２２のＴＬＢの一例を図３に示す。図３に示すように、ＴＬＢは、１組の物理アドレス、アクセス付加情報及び強制処理要求符号（例えば、強制実行フラグ）と、ＣＰＵコア２１が出力する外部アクセスリクエストの論理アドレスとが対応付けられた表である。ＣＰＵ１１では、メモリ管理ユニット２２がＴＬＢのアクセス付加情報と強制フラグとを外部アクセスリクエストに付すことから、メモリ管理ユニット２２が符号付加部として機能する。
【００３４】
また、メモリ管理ユニット２２が出力する外部アクセスクエストと付加情報とから生成されるバスアクセスのデータフォーマットの概略図の一例を図４に示す。図４に示すように、バスリクエストは、アクセスアドレスが記述されるアドレス領域と、アクセスが書き込み属性であるか読み出し属性であるかを示す属性領域と、送出するデータの属性を示すサイドバンド情報が記述されるサイドバンド情報領域と、書き込みデータが記述されるライトデータ領域とを有する。そして、このサイドバンド情報には、データの大きさを示すアクセスサイズ情報と、当該バスリクエストがキャッシュメモリを介して行われるべきかを示すキャッシャブルアクセスフラグ、バスを優先的に利用する権限を示すバス優先度フラグと、強制実行フラグと、が含まれる。つまり、強制実行フラグは、サイドバンド情報領域の１ビットのデータである。強制実行フラグは、例えば、該当するビットが１であれば有効な状態を示し、該当するビットが０であれば無効な状態を示す。
【００３５】
続いて、第２のモジュールについてより詳細に説明する。図１に示す例では、Ｌ２キャッシュ１４、ＤＭＡコントローラ１５及びＵＳＢインタフェース１６が第２のモジュールとして機能するが、強制処理要求符号に基づく動作を行うために必要な構成は同じであるため、ここでは、第２のモジュールとしてＬ２キャッシュ１４について説明する。
【００３６】
Ｌ２キャッシュ１４のブロック図を図５に示す。図５に示すように、Ｌ２キャッシュ１４は、第２のインタフェース部（例えば、バススレーブインタフェース３１）、キャッシュ制御部３２、キャッシュメモリ３３、第３のバスインタフェース部（例えば、バスマスタインタフェース３４）、バス停止制御部３５、キャッシュフィル制御部３６を有する。
【００３７】
バススレーブインタフェース３１は、コアバスＢＵＳ１からバスリクエストを受信する。このバスリクエストには、強制実行フラグＦＬＧが含まれる。そして、バススレーブインタフェース３１は、受信したバスリクエストをキャッシュ制御部３２に与える。キャッシュ制御部３２は、バスリクエストにより供給されたデータがキャッシュメモリ３３に存在するか否かを判定するキャッシュヒット判定処理を行う。また、キャッシュ制御部３２は、キャッシュヒット判定処理においてキャッシュメモリ３３に要求されたデータがあると判定された場合にはバスリクエストが後段に伝達されることを防止し、キャッシュヒット判定処理においてキャッシュメモリ３３に要求されたデータがないと判定された場合にはバスリクエストを後段に伝達するバスリクエスト制御処理を行う。Ｌ２キャッシュ１４は、キャッシュメモリ３３に要求されたデータがある場合、バススレーブインタフェース３１を介してキャッシュメモリ３３に格納されたデータを返信する。この返信は、バスレスポンスとなる。
【００３８】
一方、Ｌ２キャッシュ１４は、キャッシュメモリ３３に要求されたデータがない場合、要求されたデータを確保するためにバスマスタインタフェース３４により第２のトランザクション（例えば、バスリクエスト）を発行する。バスマスタインタフェース３４が出力するバスリクエストには、強制実行フラグＦＬＧが含まれる。
【００３９】
また、Ｌ２キャッシュ１４では、バス停止制御部３５に強制実行フラグＦＬＧの情報が与えられる。バス停止制御部３５は、バスマスタ停止要求ＲＥＱ４がアサートされたことに応じてバスマスタインタフェース３４に第２のトランザクションの発行を停止させるトランザクション発行停止信号ＲＥＱ＿ＳＴＰとバス停止応答ＡＣＫ４とをアサートする。また、バス停止制御部３５は、バススレーブインタフェース３１を介して入力されるバスリクエストに強制実行フラグＦＬＧが付加されている場合は、バスマスタ停止要求ＲＥＱ４がアサートされているか否か関わらずトランザクション発行停止信号ＲＥＱ＿ＳＴＰをネゲートする。
【００４０】
バスマスタインタフェース３４は、トランザクション発行停止信号ＲＥＱ＿ＳＴＰがアサートされている期間は新たなバスリクエストの発行を停止する。一方、バスマスタインタフェース３４は、トランザクション発行停止信号ＲＥＱ＿ＳＴＰがネゲートされている期間はバスリクエストを発行する。このバスリクエストは、バススレーブとして機能する第４のインタフェース部を有する第３のモジュール（例えば、内部メモリ１８）に届けられる。
【００４１】
また、バスマスタインタフェース３４は、自らが発行したバスリクエストに対応するバスレスポンスがあった場合、当該バスレスポンスをキャッシュフィル制御部３６及びバススレーブインタフェース３１に出力する。キャッシュフィル制御部３６は、与えられたバスレスポンスに含まれるデータをキャッシュメモリ３３に格納する。また、バススレーブインタフェース３１は、バスマスタインタフェース３４から出力されたバスレスポンスをコアバスに出力する。
【００４２】
このように、第２のモジュール（例えば、Ｌ２キャッシュ１４、ＤＭＡコントローラ１５及びＵＳＢインタフェース１６）では、バス停止制御部３５を有する。そして、このバス停止制御部３５により、バス停止要求ＲＥＱ４〜ＲＥＱ６がアサートされている期間に強制処理要求符号が付加された第１のトランザクションを受信した場合であっても、バスマスタ停止応答ＡＣＫ４〜ＡＣＫ６をアサートすると共に第２のトランザクションを発行することを実現する。
【００４３】
続いて、実施の形態１にかかる半導体装置１の動作について説明する。図６に半導体装置１の動作を示すタイミングチャートを示す。図６は、半導体装置１の動作のうち特にＣＰＵ１１がＬ２キャッシュ１４にバスアクセスを発行し、Ｌ２キャッシュ１４がさらに内部メモリ１８に対してバスアクセスを発行する場合において、ＣＰＵ１１がバスアクセスを発行後にバス停止要求ＲＥＱ０がアサートされた例を示したものである。なお、ＣＰＵ１２、グラフィックスコア１３、ＤＭＡコントローラ１５及びＵＳＢインタフェース１６については、バスマスタ停止要求ＲＥＱ２、ＲＥＱ３、ＲＥＱ５、ＲＥＱ６に対してバスマスタ停止要求ＡＣＫ２、ＡＣＫ３、ＡＣＫ５、ＡＣＫ６を即座にアサートするため、図６では、これらの回路ブロックについてのタイミングチャートについては省略した。
【００４４】
図６に示す例では、タイミングＴ１において、ＣＰＵ１１がＬ２キャッシュ１４に対してバスアクセスを発行する。そして、Ｌ２キャッシュ１４がバスアクセスを発行する前のタイミングＴ２においてパワーマネジメント部１９がバス停止要求ＲＥＱ０をアサートする。次いで、タイミングＴ３において、このバス停止要求ＲＥＱ０がアサートされたことに応じてバスマスタ停止要求制御部１０がバスマスタ停止要求ＲＥＱ１、ＲＥＱ４をアサートする。そして、タイミングＴ４において、Ｌ２キャッシュ１４では、バスマスタ停止要求ＲＥＱ４がアサートされたことに応じてバスマスタ停止応答ＡＣＫ４をアサートする。
【００４５】
図６に示す例では、Ｌ２キャッシュ１４においてキャッシュミスヒットが生じたため、タイミングＴ５において、Ｌ２キャッシュ１４が内部メモリ１８に対してバスアクセスを発行する。このとき半導体装置１では、ＣＰＵ１１が強制実行フラグＦＬＧを付加してバスアクセスを発行する。そのため、Ｌ２キャッシュ１４は、この強制実行フラグＦＬＧにより、タイミングＴ４でバスマスタ停止応答ＡＣＫ４をアサートした後のバスマスタインタフェース３４がバスアクセスを発行することができる。
【００４６】
そして、半導体装置１では、タイミングＴ５で発行されたバスアクセスに応答して内部メモリ１８がバスレスポンスを返信し、タイミングＴ６でＣＰＵ１１にタイミングＴ１で発行したバスアクセスに対応したバスレスポンスが到達する。そして、ＣＰＵ１１においてバスレスポンスに対応する処理が完了したタイミングＴ７において、ＣＰＵ１１のバスマスタインタフェース２３はバスマスタ停止応答ＡＣＫ１をアサートする。そして、タイミングＴ７においてバスマスタ停止応答ＡＣＫ１〜ＡＣＫ６の全てがアサートされるため、タイミングＴ８において、バスマスタ停止要求制御部１０はバス停止応答ＡＣＫ０をアサートする。
【００４７】
図６に示すように、実施の形態１にかかる半導体装置１では、強制実行フラグＦＬＧに基づく制御を行うことで、バス停止要求ＲＥＱ０がアサートされた場合においても、ＣＰＵ１１が発行したバスアクセスに関する動作を完了することができる。
【００４８】
ここで、比較例として、強制実行フラグＦＬＧを用いない場合の半導体装置１の動作について説明する。強制実行フラグＦＬＧを用いない場合の半導体装置１の動作を示すタイミングチャートを図７に示す。なお、図７に示す比較例は、図６に示した半導体装置１の動作を強制実行フラグＦＬＧを用いずに行った場合のものである。
【００４９】
図７に示すように、強制実行フラグＦＬＧを用いない場合、タイミングＴ２でアサートされたバス停止要求ＲＥＱ０により、Ｌ２キャッシュ１４がバスアクセスを発行する前にバスマスタ停止要求ＲＥＱ４がアサートされる（タイミングＴ３）。そして、Ｌ２キャッシュ１４は、タイミングＴ３でアサートされたバスマスタ停止要求ＲＥＱ４に応じて、それ以降に新たにバスリクエストを発行することが禁止される。これにより、タイミングＴ５で発行されるバスアクセスが発行されない。そして、タイミングＴ５でバスアクセスが発行されないことにともないタイミングＴ６以降もバスレスポンスがＣＰＵ１１に到達せずにバスマスタ停止応答ＡＣＫ１がアサートされない。従って、図７に示す例では、バス停止要求ＲＥＱ１に対応するバス停止応答ＡＣＫ１がアサートされず、バスマスタ停止要求制御部１０がバス停止要求のアサート処理を完了できずに半導体装置１がハングアップする問題が生じる。
【００５０】
続いて、実施の形態１にかかる半導体装置１の動作のうちパワーマネジメント部１９の動作について説明する。パワーマネジメント部１９の動作を示すフローチャートを図８に示す。なお、図８に示す例では、パワーマネジメント部１９への制御指示をＣＰＵ１１から行う例を示すものであるが、制御指示は、例えば、ＣＰＵ１２等の他の回路ブロックから行っても良い。
【００５１】
図８に示すように、パワーマネジメント部１９は、ＣＰＵ１１からの制御指示に基づきバス停止要求ＲＥＱ０をアサートする（ステップＳ１）。続いて、パワーマネジメント部１９は、バス停止要求ＲＥＱ０に対応するバス停止応答ＡＣＫ０がアサートされることを待機する（ステップＳ２）。そして、パワーマネジメント部１９は、バス停止応答ＡＣＫ０がアサートされたことに応じてパワーマネジメント制御を行う（ステップＳ３）。このパワーマネジメント制御では、例えば、コアバス、システムバス及びバスに接続される回路ブロックに供給されるクロック信号の周波数変更、クロック信号の停止、又は電源遮断制御等の処理が行われる。そして、パワーマネジメント部１９は、パワーマネジメント制御の処理完了後所定の待機時間を持って、バス停止要求ＲＥＱ０をネゲートする（ステップＳ４）。なお、バス停止要求ＲＥＱ０がネゲートされることによって、バスマスタ停止要求制御部１０は、バスマスタ停止要求ＲＥＱ１〜ＲＥＱ６をネゲートする。
【００５２】
上記説明より、実施の形態１にかかる半導体装置１は、強制実行フラグＦＬＧを第１のトランザクション（例えば、ＣＰＵ１１が発行するバスアクセス）に付す。そして、強制実行フラグＦＬＧが付された第１のトランザクションを受信した第２のモジュール（例えば、Ｌ２キャッシュ１４）は、強制実行フラグＦＬＧが有効である場合、バス停止要求ＲＥＱ４がアサートされている期間であっても第３のインタフェース部（例えば、バスマスタインタフェース３４）に第２のトランザクションを発行させる。これにより、半導体装置１では、バス停止要求ＲＥＱ０がどのようなタイミングでアサートされたとしてもシステムをハングアップさせることなく、正常にバスを停止できる。
【００５３】
また、バスを介して回路ブロックを相互に接続するバスシステムでは、バス停止要求ＲＥＱ１〜ＲＥＱ６のアサート順序をプログラムによって、或いは、ハードウェアの設計段階において制御することでハングアップを防ぐこともできる。しかしながら、プログラム或いはハードウェアによるアサート順序の制御を行う場合、システムがハングアップするモードに対して全て対策を講じなければならず、設計が煩雑になる問題及びバグ発生リスクが高まる問題がある。
【００５４】
しかしながら、実施の形態１にかかる半導体装置１では、システムのハングアップが懸念されるバスアクセスに対して強制実行フラグを付すだけバス構成によらずハングアップを防止することができる。近年は、バスを多段のバスによりバスシステム構成する、動作速度が異なるバスを組み合わせてバスシステムを構成するなど、バスシステムの構成が複雑になる傾向がある。このような複雑な構成のバスシステムでは、バグが発生する動作モードの全てを設計段階或いはプログラムの設計段階で考慮するのは非常に困難である。そのため、実施の形態１にかかる半導体装置１のように、システムのハングアップが生じる動作モードを考慮することなくバスシステムのハングアップを防止できることで、設計を容易化することができる。この効果は、バスシステムの構成が複雑になるほど顕著に表れる。
【００５５】
また、実施の形態１にかかる半導体装置１では、パワーマネジメント部１９によりバスシステムの動作周波数の変更、停止、又は電源の遮断処理を行うことができる。これにより、半導体装置１では、システムに要求される処理能力に応じて消費電力を調整することができ、処理能力に応じた消費電力の削減を行うことができる。
【００５６】
実施の形態２
実施の形態２では、コアバスを構成するルータ上に符号付加部を設ける例について説明する。なお、実施の形態２にかかる半導体装置では、ＣＰＵ１１等の第１のモジュールからは符号付加部の機能は削除される。また、実施の形態２にかかる半導体装置のブロック図は、図１に示した実施の形態１にかかる半導体装置１と同じであるため、ここでは説明を省略する。
【００５７】
ここで、符号付加部としての機能を有する実施の形態２にかかるルータのブロック図を図９に示す。図９に示すように、ルータは、ルーティング制御部４１及びルーティング情報格納部４２を有する。
【００５８】
ルーティング制御部４１は、第１のモジュール（例えば、ＣＰＵ１１、１２及びグラフィックスコア１３）からのバスリクエストを受けて、当該バスリクエストを伝達先の回路ブロックのバススレーブインタフェースに出力する。また、ルーティング制御部４１は、受信したバスリクエストのアクセスアドレスの上位ビットをルーティング情報格納部４２に出力する。
【００５９】
ルーティング情報格納部４２は、アクセスアドレスの上位ビットに対応したバススレーブＩＤに置き換えると共に、バスリクエストに付加する強制実行フラグＦＬＧを出力する。なお、バススレーブＩＤは、バススレーブとして機能する第２のバスインタフェールを識別するための値である。ルーティング制御部４１は、強制実行フラグＦＬＧを受信したバスリクエストに付加した後にバススレーブの１つに出力する。また、ルーティング情報格納部４２には、ルーティングの規則を定義するルーティングテーブルを有する。
【００６０】
そこで、ルーティングテーブルの概略図の一例を図１０に示す。図１０に示すように、ルーティングテーブルは、１つのアクセスアドレスの上位ビットと、１組のバススレーブＩＤ及び強制実行フラグＦＬＧと、の関連付けを定義するものである。ルーティング情報格納部４２は、当該ルーティングテーブルに基づきバスリクエストに応じたバススレーブＩＤと強制実行フラグＦＬＧを出力する。
【００６１】
上記説明より、符号付加部は、ルータに設けたとしても、システムのハングアップの原意となる第２のモジュールには、強制実行フラグＦＬＧを付した第１のトランザクション（例えば、バスアクセス）を与えることができる。そして、実施の形態２にかかる半導体装置は、この強制実行フラグＦＬＧに基づきバス停止要求ＲＥＱ０がアサートされている期間中であっても、第２のトランザクション（第３のモジュールに対して発行するバスアクセス）を発行することができる。これにより、実施の形態２にかかる半導体装置では、バス停止要求ＲＥＱ０がどのようなタイミングでアサートされたとしても、システムがハングアップすることを防ぐことができる。
【００６２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６３】
１  半導体装置
１０  バスマスタ停止要求制御部
１１、１２  ＣＰＵ
１３  グラフィックスコア
１４  Ｌ２キャッシュ
１５  ＤＭＡコントローラ
１６  ＵＳＢインタフェース
１７  外部メモリインタフェース
１８  内部メモリ
１９  パワーマネジメント部
２０  設定レジスタ群
２１  ＣＰＵコア
２２  メモリ管理ユニット
２３  バスマスタインタフェース
３１  バススレーブインタフェース
３２  キャッシュ制御部
３３  キャッシュメモリ
３４  バスマスタインタフェース
３５  バス停止制御部
３６  キャッシュフィル制御部
４１  ルーティング制御部
４２  ルーティング情報格納部
【図１】
0005981004.tif 000002
【図２】
0005981004.tif 000003
【図３】
0005981004.tif 000004
【図４】
0005981004.tif 000005
【図５】
0005981004.tif 000006
【図６】
0005981004.tif 000007
【図７】
0005981004.tif 000008
【図８】
0005981004.tif 000009
【図９】
0005981004.tif 000010
【図１０】
0005981004.tif 000011