(58)【調査した分野】(Int.Cl.,DB名)
トランザクションを発行し、バスマスタ停止要求に応じて前記トランザクションの発行を停止するバスマスタと、前記トランザクションを受信するバススレーブと、のいずれか一方の機能が割り当てられる複数のインタフェース部が、ルータを介して接続される半導体装置であって、
前記バスマスタとして機能する第1のインタフェース部を有し、第1のトランザクションを発行する第1のモジュールと、
前記バススレーブとして機能する第2のインタフェース部と、前記バスマスタとして機能する第3のインタフェース部と、を有し、前記第1のトランザクションに応じて第2のトランザクションを発行する第2のモジュールと、
前記バススレーブとして機能する第4のインタフェース部を有し、前記第2のトランザクションを受信する第3のモジュールと、
前記バスマスタ停止要求をアサートし、前記バスマスタ停止要求に対応するバスマスタ停止応答がアサートされたことに応じて前記バスマスタ停止要求のアサート処理を完了するバスマスタ停止要求制御部と、
前記第1のトランザクションに強制処理要求符号を付す符号付加部と、を有し、
前記符号付加部は、前記ルータ上に設けられ、
前記第2のモジュールは、前記バスマスタ停止要求がアサートされている期間に前記強制処理要求符号が付加された前記第1のトランザクションを受信した場合、前記バスマスタ停止応答をアサートすると共に前記第2のトランザクションを発行し、
前記第1のモジュールは、前記第1のトランザクションに対する応答を受信したことに応じて前記バスマスタ停止要求に対応する前記バスマスタ停止応答をアサートする半導体装置。
前記第2のモジュールは、前記バスマスタ停止要求が与えられたことに応じて前記第3のインタフェース部に前記第2のトランザクションの発行を停止させるトランザクション発行停止信号と前記バスマスタ停止応答とをアサートするとともに、前記第1のトランザクションに前記強制処理要求符号が付加されている場合は、前記バスマスタ停止要求がアサートされているか否かに関わらず前記トランザクション発行停止信号をネゲートするバス停止制御部を有する請求項1に記載の半導体装置。
前記バスマスタ停止要求制御部に与えるバス停止要求をアサートし、前記バスマスタ停止要求制御部における前記アサート処理の完了に応じて前記バスマスタ停止要求制御部がアサートするバス停止応答に基づき前記ルータに接続されるモジュール及び前記ルータの少なくとも1つの動作状態を制御するパワーマネジメント部を有する請求項1又は2に記載の半導体装置。
前記パワーマネジメント部は、前記ルータに接続されるモジュール及び前記ルータの動作状態を定義する複数の設定レジスタを有し、前記バス停止応答がアサートされたことに応じて前記ルータに接続されるモジュール及び前記ルータの少なくとも1つの動作状態を前記複数の設定レジスタに定義された状態とする請求項3に記載の半導体装置。
前記パワーマネジメント部は、前記バス停止応答がアサートされたことに応じて前記ルータに接続されるモジュール及び前記ルータの少なくとも1つの動作クロックの周波数を変更、動作クロック信号の停止又は前記ルータに接続されるモジュールの電源電圧を遮断する請求項3に記載の半導体装置。
【発明を実施するための形態】
【0013】
実施の形態1
以下、本発明の実施の形態について図面を参照して説明する。
図1に実施の形態1にかかる半導体装置1のブロック図を示す。なお、
図1に示したブロック図では、半導体装置1によって利用されるUSBデバイスと、外部メモリとを示した。
【0014】
図1に示すように実施の形態1にかかる半導体装置1は、バスマスタ停止要求制御部10、CPU(Central Processing Unit)11、12、グラフィックスコア13、L2キャッシュ14、DMAコントローラ15、USBインタフェース16、外部メモリインタフェース17、内部メモリ18、パワーマネジメント部19を有する。
【0015】
図1に示すように、半導体装置1では、CPU11、12、グラフィックスコア13、及び、L2キャッシュ14がコアバスBUS1によって互いに接続され、L2キャッシュ14、DMAコントローラ15、USBインタフェース16、外部メモリインタフェース17、内部メモリ18、及び、パワーマネジメント部19がメインバスBUS2によって互いに接続される。なお、
図1に示すシステムの構成は、一例であって、いずれのバスにどの回路ブロックが接続されるかは、半導体装置1のシステムの仕様に応じて変更することが可能である。
【0016】
また、半導体装置1は、トランザクションを発行し、バスマスタ停止要求に応じてトランザクションの発行を停止するバスマスタと、トランザクションを受信するバススレーブと、のいずれか一方の機能が割り当てられる複数のインタフェース部が、バスを介して接続されるものである。このインタフェース部は、コアバス又はメインバスに接続される回路ブロックの一部として実装される。
【0017】
また、半導体装置1では、ルータを用いてコアバス及びメインバスを構成する。ルータは、バスマスタとして機能するインタフェース部から発行されるトランザクションを、バススレーブとして機能するインタフェース部に出力する。より具体的には、ルータは、当該トランザクションに含まれるアクセスアドレスを参照してトランザクションの出力先を判別し、判別結果に基づき決定した出力先のバススレーブとして機能するインタフェース部に当該トランザクションを発行する。
【0018】
バスマスタ停止要求制御部10は、バスマスタ停止要求REQ1〜REQ6をアサートし、バスマスタ停止要求REQ1〜REQ6に対応するバスマスタ停止応答ACK1〜ACK6がアサートされたことに応じてバスマスタ停止要求REQ1〜REQ6のアサート処理を完了する。より具体的には、バスマスタ停止要求制御部10は、パワーマネジメント部19が出力するバス停止要求REQ0がアサートされたことに応じてバスマスタ停止要求REQ1〜REQ6をアサートする。また、バスマスタ停止要求制御部10は、バスマスタ停止要求REQ1〜REQ6に対応するバスマスタ停止応答ACK1〜ACK6がアサートされたことに応じてパワーマネジメント部19に出力するバス停止応答ACK0をアサートする。そして、バスマスタ停止要求制御部10は、パワーマネジメント部19に出力するバス停止応答ACK0をアサートすることでバスマスタ停止要求REQ1〜REQ6のアサート処理を完了する。
【0019】
CPU11、12及びグラフィックスコア13は、バスマスタとして機能する第1のインタフェース部を有し、第1のトランザクションを発行する第1のモジュールである。また、この第1のモジュールは、第1のトランザクションに対する応答を受信したことに応じてバスマスタ停止要求REQ1〜REQ3に対応するバスマスタ停止応答ACK1〜ACK3をアサートする。CPU11、12は、半導体装置1においてプログラムに基づいた汎用的な演算を行う演算器である。また、グラフィックスコア13は、半導体装置1における画像処理を行う演算器である。
【0020】
L2キャッシュ14、DMAコントローラ15及びUSBインタフェース16は、バススレーブとして機能する第2のインタフェース部と、バスマスタとして機能する第3のインタフェース部と、を有し、第1のトランザクションに応じて第2のトランザクションを発行する第2のモジュールである。また、この第2のモジュールは、バス停止要求REQ4〜REQ6がアサートされている期間に強制処理要求符号が付加された第1のトランザクションを受信した場合、バスマスタ停止応答ACK4〜ACK6をアサートすると共に第2のトランザクションを発行する。
【0021】
L2キャッシュ14は、CPU11、12及びグラフィックスコア13が利用するデータを一時的に記憶するキャッシュメモリである。L2キャッシュ14は、キャッシュメモリ上に要求されたデータがない場合、内部メモリあるいは外部メモリから要求されたデータを取得し、取得したデータをデータの要求元に返信するとともに、自モジュールに格納する。
【0022】
DMAコントローラ15は、CPU11又はCPU12を介さずに回路ブロック間のデータ転送を行うダイレクトメモリアクセスを制御する回路ブロックである。USBインタフェース16は、外部に接続されるUSBデバイスのためのインタフェース回路である。
【0023】
外部メモリインタフェース17、内部メモリ18、パワーマネジメント部19は、バススレーブとして機能する第4のインタフェース部を有し、第2のトランザクションを受信する第3のモジュールである。
【0024】
外部メモリインタフェース17は、外部メモリと半導体装置1との間でデータの送受信を行うためのインタフェース回路である。内部メモリ18は、半導体装置1が利用するデータを格納する記憶部である。
【0025】
パワーマネジメント部19は、バスマスタ停止要求制御部10に与えるバス停止要求REQ0をアサートし、バスマスタ停止要求制御部10におけるアサート処理の完了に応じてバスマスタ停止要求制御部10がアサートするバス停止応答ACK0に基づきバスに接続されるモジュール及びバスの少なくとも1つの動作状態を制御する。パワーマネジメント部19は、バスに接続されるモジュール及びバスの動作状態を定義する複数の設定レジスタ(以下、レジスタ群20と称す)を有し、バス停止応答ACK0がアサートされたことに応じてバスに接続されるモジュール及びバスの少なくとも1つの動作状態を設定レジスタ群20に定義された状態とする。例えば、パワーマネジメント部19は、バスに接続されるモジュール及びバスの少なくとも1つの動作クロックの周波数を変更、動作クロック信号の停止又は前記バスに接続されるモジュールの電源電圧を遮断する。
【0026】
また、パワーマネジメント部19は、CPU11又はCPU12が設定レジスタ群20の所定のレジスタの値を書き換える。そして、パワーマネジメント部19は、所定のレジスタが書き換えられたことに応じてバス停止要求信号REQ0をアサートする。このバス停止要求信号REQ0には、停止対象のモジュールを指定する情報を含む。
【0027】
実施の形態1にかかる半導体装置1では、第2のモジュール(例えば、L2キャッシュ14、DMAコントローラ15及びUSBインタフェース16)が、バス停止要求REQ4〜REQ6がアサートされている期間に強制処理要求符号が付加された第1のトランザクションを受信した場合、バスマスタ停止応答ACK4〜ACK6をアサートすると共に第2のトランザクションを発行する。つまり、半導体装置1では、第1のトランザクションに強制処理要求符号を付す符号付加部を有する。この符号付加部は、バスシステム上の様々な位置に設けることが可能である。そこで、実施の形態1では、符号付加部が第1のモジュール(例えば、CPU11、12及びグラフィックスコア13)を構成する1つの回路として実装した例について説明する。
【0028】
第1のモジュールとして機能するCPU11、12及びグラフィックスコア13は、符号付加部とインタフェース部の構成が同じであるため、ここでは、第1のモジュールの例としてCPU11について説明する。
【0029】
図2にCPU11のブロック図を示す。
図2に示すように、CPU11は、CPUコア21、メモリ管理ユニット22、第1のインタフェース部(例えば、バスマスタインタフェース23)を有する。
【0030】
CPUコア21は、CPU11においてプログラムに基づく演算を行う回路ブロックである。CPUコア21は、演算の結果に応じて外部アクセスリクエストを発行する。メモリ管理ユニット22は、CPUコア21から発行された外部アクセスリクエストのアドレスを論理アドレスから物理アドレスに変換するとともに外部アクセスリクエストに付加情報を付加する。バスマスタインタフェース23は、メモリ管理ユニット22が出力する外部アクセスリクエストと付加情報とを含むバスリクエストをコアバスBUS1に出力する。そして、バスマスタインタフェース23が出力するバスリクエストが第1のトランザクションとなる。
【0031】
バスマスタインタフェース23は、バスリクエストに対応する応答(例えば、バスレスポンス)があった場合、当該バスレスポンスをCPUコア21に返信する。そして、CPUコア21は、バスレスポンスに対して処理を行う。
【0032】
また、バスマスタインタフェース23は、バスマスタ停止要求REQ1がアサートされている期間は新たなバスアクセスの発行を停止する。さらに、バスマスタインタフェース23は、最後に発行したバスアクセスに対応したバスレスポンスがあったことに応じてバス停止応答ACK1をアサートする。
【0033】
ここで、メモリ管理ユニット22の動作についてより詳細に説明する。メモリ管理ユニット22は、トランスレーションルックアサイドバッファ(TLB:Translation Lookaside Buffer)を有する。そして、メモリ管理ユニット22は、TLBを参照して、論理アドレスから物理アドレスへの変換を行う。また、メモリ管理ユニット22は、TLBを参照して、CPUコア21が出力する外部アクセスアドレスの論理アドレスに対応する付加情報を付加する。そこで、メモリ管理ユニット22のTLBの一例を
図3に示す。
図3に示すように、TLBは、1組の物理アドレス、アクセス付加情報及び強制処理要求符号(例えば、強制実行フラグ)と、CPUコア21が出力する外部アクセスリクエストの論理アドレスとが対応付けられた表である。CPU11では、メモリ管理ユニット22がTLBのアクセス付加情報と強制フラグとを外部アクセスリクエストに付すことから、メモリ管理ユニット22が符号付加部として機能する。
【0034】
また、メモリ管理ユニット22が出力する外部アクセスクエストと付加情報とから生成されるバスアクセスのデータフォーマットの概略図の一例を
図4に示す。
図4に示すように、バスリクエストは、アクセスアドレスが記述されるアドレス領域と、アクセスが書き込み属性であるか読み出し属性であるかを示す属性領域と、送出するデータの属性を示すサイドバンド情報が記述されるサイドバンド情報領域と、書き込みデータが記述されるライトデータ領域とを有する。そして、このサイドバンド情報には、データの大きさを示すアクセスサイズ情報と、当該バスリクエストがキャッシュメモリを介して行われるべきかを示すキャッシャブルアクセスフラグ、バスを優先的に利用する権限を示すバス優先度フラグと、強制実行フラグと、が含まれる。つまり、強制実行フラグは、サイドバンド情報領域の1ビットのデータである。強制実行フラグは、例えば、該当するビットが1であれば有効な状態を示し、該当するビットが0であれば無効な状態を示す。
【0035】
続いて、第2のモジュールについてより詳細に説明する。
図1に示す例では、L2キャッシュ14、DMAコントローラ15及びUSBインタフェース16が第2のモジュールとして機能するが、強制処理要求符号に基づく動作を行うために必要な構成は同じであるため、ここでは、第2のモジュールとしてL2キャッシュ14について説明する。
【0036】
L2キャッシュ14のブロック図を
図5に示す。
図5に示すように、L2キャッシュ14は、第2のインタフェース部(例えば、バススレーブインタフェース31)、キャッシュ制御部32、キャッシュメモリ33、第3のバスインタフェース部(例えば、バスマスタインタフェース34)、バス停止制御部35、キャッシュフィル制御部36を有する。
【0037】
バススレーブインタフェース31は、コアバスBUS1からバスリクエストを受信する。このバスリクエストには、強制実行フラグFLGが含まれる。そして、バススレーブインタフェース31は、受信したバスリクエストをキャッシュ制御部32に与える。キャッシュ制御部32は、バスリクエストにより供給されたデータがキャッシュメモリ33に存在するか否かを判定するキャッシュヒット判定処理を行う。また、キャッシュ制御部32は、キャッシュヒット判定処理においてキャッシュメモリ33に要求されたデータがあると判定された場合にはバスリクエストが後段に伝達されることを防止し、キャッシュヒット判定処理においてキャッシュメモリ33に要求されたデータがないと判定された場合にはバスリクエストを後段に伝達するバスリクエスト制御処理を行う。L2キャッシュ14は、キャッシュメモリ33に要求されたデータがある場合、バススレーブインタフェース31を介してキャッシュメモリ33に格納されたデータを返信する。この返信は、バスレスポンスとなる。
【0038】
一方、L2キャッシュ14は、キャッシュメモリ33に要求されたデータがない場合、要求されたデータを確保するためにバスマスタインタフェース34により第2のトランザクション(例えば、バスリクエスト)を発行する。バスマスタインタフェース34が出力するバスリクエストには、強制実行フラグFLGが含まれる。
【0039】
また、L2キャッシュ14では、バス停止制御部35に強制実行フラグFLGの情報が与えられる。バス停止制御部35は、バスマスタ停止要求REQ4がアサートされたことに応じてバスマスタインタフェース34に第2のトランザクションの発行を停止させるトランザクション発行停止信号REQ_STPとバス停止応答ACK4とをアサートする。また、バス停止制御部35は、バススレーブインタフェース31を介して入力されるバスリクエストに強制実行フラグFLGが付加されている場合は、バスマスタ停止要求REQ4がアサートされているか否か関わらずトランザクション発行停止信号REQ_STPをネゲートする。
【0040】
バスマスタインタフェース34は、トランザクション発行停止信号REQ_STPがアサートされている期間は新たなバスリクエストの発行を停止する。一方、バスマスタインタフェース34は、トランザクション発行停止信号REQ_STPがネゲートされている期間はバスリクエストを発行する。このバスリクエストは、バススレーブとして機能する第4のインタフェース部を有する第3のモジュール(例えば、内部メモリ18)に届けられる。
【0041】
また、バスマスタインタフェース34は、自らが発行したバスリクエストに対応するバスレスポンスがあった場合、当該バスレスポンスをキャッシュフィル制御部36及びバススレーブインタフェース31に出力する。キャッシュフィル制御部36は、与えられたバスレスポンスに含まれるデータをキャッシュメモリ33に格納する。また、バススレーブインタフェース31は、バスマスタインタフェース34から出力されたバスレスポンスをコアバスに出力する。
【0042】
このように、第2のモジュール(例えば、L2キャッシュ14、DMAコントローラ15及びUSBインタフェース16)では、バス停止制御部35を有する。そして、このバス停止制御部35により、バス停止要求REQ4〜REQ6がアサートされている期間に強制処理要求符号が付加された第1のトランザクションを受信した場合であっても、バスマスタ停止応答ACK4〜ACK6をアサートすると共に第2のトランザクションを発行することを実現する。
【0043】
続いて、実施の形態1にかかる半導体装置1の動作について説明する。
図6に半導体装置1の動作を示すタイミングチャートを示す。
図6は、半導体装置1の動作のうち特にCPU11がL2キャッシュ14にバスアクセスを発行し、L2キャッシュ14がさらに内部メモリ18に対してバスアクセスを発行する場合において、CPU11がバスアクセスを発行後にバス停止要求REQ0がアサートされた例を示したものである。なお、CPU12、グラフィックスコア13、DMAコントローラ15及びUSBインタフェース16については、バスマスタ停止要求REQ2、REQ3、REQ5、REQ6に対してバスマスタ停止要求ACK2、ACK3、ACK5、ACK6を即座にアサートするため、
図6では、これらの回路ブロックについてのタイミングチャートについては省略した。
【0044】
図6に示す例では、タイミングT1において、CPU11がL2キャッシュ14に対してバスアクセスを発行する。そして、L2キャッシュ14がバスアクセスを発行する前のタイミングT2においてパワーマネジメント部19がバス停止要求REQ0をアサートする。次いで、タイミングT3において、このバス停止要求REQ0がアサートされたことに応じてバスマスタ停止要求制御部10がバスマスタ停止要求REQ1、REQ4をアサートする。そして、タイミングT4において、L2キャッシュ14では、バスマスタ停止要求REQ4がアサートされたことに応じてバスマスタ停止応答ACK4をアサートする。
【0045】
図6に示す例では、L2キャッシュ14においてキャッシュミスヒットが生じたため、タイミングT5において、L2キャッシュ14が内部メモリ18に対してバスアクセスを発行する。このとき半導体装置1では、CPU11が強制実行フラグFLGを付加してバスアクセスを発行する。そのため、L2キャッシュ14は、この強制実行フラグFLGにより、タイミングT4でバスマスタ停止応答ACK4をアサートした後のバスマスタインタフェース34がバスアクセスを発行することができる。
【0046】
そして、半導体装置1では、タイミングT5で発行されたバスアクセスに応答して内部メモリ18がバスレスポンスを返信し、タイミングT6でCPU11にタイミングT1で発行したバスアクセスに対応したバスレスポンスが到達する。そして、CPU11においてバスレスポンスに対応する処理が完了したタイミングT7において、CPU11のバスマスタインタフェース23はバスマスタ停止応答ACK1をアサートする。そして、タイミングT7においてバスマスタ停止応答ACK1〜ACK6の全てがアサートされるため、タイミングT8において、バスマスタ停止要求制御部10はバス停止応答ACK0をアサートする。
【0047】
図6に示すように、実施の形態1にかかる半導体装置1では、強制実行フラグFLGに基づく制御を行うことで、バス停止要求REQ0がアサートされた場合においても、CPU11が発行したバスアクセスに関する動作を完了することができる。
【0048】
ここで、比較例として、強制実行フラグFLGを用いない場合の半導体装置1の動作について説明する。強制実行フラグFLGを用いない場合の半導体装置1の動作を示すタイミングチャートを
図7に示す。なお、
図7に示す比較例は、
図6に示した半導体装置1の動作を強制実行フラグFLGを用いずに行った場合のものである。
【0049】
図7に示すように、強制実行フラグFLGを用いない場合、タイミングT2でアサートされたバス停止要求REQ0により、L2キャッシュ14がバスアクセスを発行する前にバスマスタ停止要求REQ4がアサートされる(タイミングT3)。そして、L2キャッシュ14は、タイミングT3でアサートされたバスマスタ停止要求REQ4に応じて、それ以降に新たにバスリクエストを発行することが禁止される。これにより、タイミングT5で発行されるバスアクセスが発行されない。そして、タイミングT5でバスアクセスが発行されないことにともないタイミングT6以降もバスレスポンスがCPU11に到達せずにバスマスタ停止応答ACK1がアサートされない。従って、
図7に示す例では、バス停止要求REQ1に対応するバス停止応答ACK1がアサートされず、バスマスタ停止要求制御部10がバス停止要求のアサート処理を完了できずに半導体装置1がハングアップする問題が生じる。
【0050】
続いて、実施の形態1にかかる半導体装置1の動作のうちパワーマネジメント部19の動作について説明する。パワーマネジメント部19の動作を示すフローチャートを
図8に示す。なお、
図8に示す例では、パワーマネジメント部19への制御指示をCPU11から行う例を示すものであるが、制御指示は、例えば、CPU12等の他の回路ブロックから行っても良い。
【0051】
図8に示すように、パワーマネジメント部19は、CPU11からの制御指示に基づきバス停止要求REQ0をアサートする(ステップS1)。続いて、パワーマネジメント部19は、バス停止要求REQ0に対応するバス停止応答ACK0がアサートされることを待機する(ステップS2)。そして、パワーマネジメント部19は、バス停止応答ACK0がアサートされたことに応じてパワーマネジメント制御を行う(ステップS3)。このパワーマネジメント制御では、例えば、コアバス、システムバス及びバスに接続される回路ブロックに供給されるクロック信号の周波数変更、クロック信号の停止、又は電源遮断制御等の処理が行われる。そして、パワーマネジメント部19は、パワーマネジメント制御の処理完了後所定の待機時間を持って、バス停止要求REQ0をネゲートする(ステップS4)。なお、バス停止要求REQ0がネゲートされることによって、バスマスタ停止要求制御部10は、バスマスタ停止要求REQ1〜REQ6をネゲートする。
【0052】
上記説明より、実施の形態1にかかる半導体装置1は、強制実行フラグFLGを第1のトランザクション(例えば、CPU11が発行するバスアクセス)に付す。そして、強制実行フラグFLGが付された第1のトランザクションを受信した第2のモジュール(例えば、L2キャッシュ14)は、強制実行フラグFLGが有効である場合、バス停止要求REQ4がアサートされている期間であっても第3のインタフェース部(例えば、バスマスタインタフェース34)に第2のトランザクションを発行させる。これにより、半導体装置1では、バス停止要求REQ0がどのようなタイミングでアサートされたとしてもシステムをハングアップさせることなく、正常にバスを停止できる。
【0053】
また、バスを介して回路ブロックを相互に接続するバスシステムでは、バス停止要求REQ1〜REQ6のアサート順序をプログラムによって、或いは、ハードウェアの設計段階において制御することでハングアップを防ぐこともできる。しかしながら、プログラム或いはハードウェアによるアサート順序の制御を行う場合、システムがハングアップするモードに対して全て対策を講じなければならず、設計が煩雑になる問題及びバグ発生リスクが高まる問題がある。
【0054】
しかしながら、実施の形態1にかかる半導体装置1では、システムのハングアップが懸念されるバスアクセスに対して強制実行フラグを付すだけバス構成によらずハングアップを防止することができる。近年は、バスを多段のバスによりバスシステム構成する、動作速度が異なるバスを組み合わせてバスシステムを構成するなど、バスシステムの構成が複雑になる傾向がある。このような複雑な構成のバスシステムでは、バグが発生する動作モードの全てを設計段階或いはプログラムの設計段階で考慮するのは非常に困難である。そのため、実施の形態1にかかる半導体装置1のように、システムのハングアップが生じる動作モードを考慮することなくバスシステムのハングアップを防止できることで、設計を容易化することができる。この効果は、バスシステムの構成が複雑になるほど顕著に表れる。
【0055】
また、実施の形態1にかかる半導体装置1では、パワーマネジメント部19によりバスシステムの動作周波数の変更、停止、又は電源の遮断処理を行うことができる。これにより、半導体装置1では、システムに要求される処理能力に応じて消費電力を調整することができ、処理能力に応じた消費電力の削減を行うことができる。
【0056】
実施の形態2
実施の形態2では、コアバスを構成するルータ上に符号付加部を設ける例について説明する。なお、実施の形態2にかかる半導体装置では、CPU11等の第1のモジュールからは符号付加部の機能は削除される。また、実施の形態2にかかる半導体装置のブロック図は、
図1に示した実施の形態1にかかる半導体装置1と同じであるため、ここでは説明を省略する。
【0057】
ここで、符号付加部としての機能を有する実施の形態2にかかるルータのブロック図を
図9に示す。
図9に示すように、ルータは、ルーティング制御部41及びルーティング情報格納部42を有する。
【0058】
ルーティング制御部41は、第1のモジュール(例えば、CPU11、12及びグラフィックスコア13)からのバスリクエストを受けて、当該バスリクエストを伝達先の回路ブロックのバススレーブインタフェースに出力する。また、ルーティング制御部41は、受信したバスリクエストのアクセスアドレスの上位ビットをルーティング情報格納部42に出力する。
【0059】
ルーティング情報格納部42は、アクセスアドレスの上位ビットに対応したバススレーブIDに置き換えると共に、バスリクエストに付加する強制実行フラグFLGを出力する。なお、バススレーブIDは、バススレーブとして機能する第2のバスインタフェールを識別するための値である。ルーティング制御部41は、強制実行フラグFLGを受信したバスリクエストに付加した後にバススレーブの1つに出力する。また、ルーティング情報格納部42には、ルーティングの規則を定義するルーティングテーブルを有する。
【0060】
そこで、ルーティングテーブルの概略図の一例を
図10に示す。
図10に示すように、ルーティングテーブルは、1つのアクセスアドレスの上位ビットと、1組のバススレーブID及び強制実行フラグFLGと、の関連付けを定義するものである。ルーティング情報格納部42は、当該ルーティングテーブルに基づきバスリクエストに応じたバススレーブIDと強制実行フラグFLGを出力する。
【0061】
上記説明より、符号付加部は、ルータに設けたとしても、システムのハングアップの原意となる第2のモジュールには、強制実行フラグFLGを付した第1のトランザクション(例えば、バスアクセス)を与えることができる。そして、実施の形態2にかかる半導体装置は、この強制実行フラグFLGに基づきバス停止要求REQ0がアサートされている期間中であっても、第2のトランザクション(第3のモジュールに対して発行するバスアクセス)を発行することができる。これにより、実施の形態2にかかる半導体装置では、バス停止要求REQ0がどのようなタイミングでアサートされたとしても、システムがハングアップすることを防ぐことができる。
【0062】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。