(58)【調査した分野】(Int.Cl.,DB名)
前記応答部は、前記第2の回路部が前記第2の消費電力状態であるときに、前記第1の回路部がデータ転送を開始すると、前記エラー信号を生成する、請求項1に記載のエラー応答回路。
前記応答部は、前記第1の回路部と前記第2の回路部がデータ転送中であるときに前記第2の回路部が前記第2の消費電力状態となると、データ転送を一時保留させるためのウェイトを発生させた後、前記エラー信号を生成する、請求項1または2に記載のエラー応答回路。
【発明を実施するための形態】
【0011】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の半導体集積回路の一例を示す図である。
【0012】
半導体集積回路10は、転送命令などの命令の送信元である回路部(以下マスタと呼ぶ)11と、その命令の送信先であり、その命令に対する応答信号をマスタ11に返す回路部(以下スレーブと呼ぶ)12と、内部バス13、電力制御部14を有している。さらに、本実施の形態の半導体集積回路10は、エラー応答回路15を有している。
図1の例では、エラー応答回路15は、内部バス13と、スレーブ12間に設けられているが、これに限定されず、エラー応答回路15は、マスタ11と内部バス13の間に設けられていてもよい。
【0013】
なお、
図1では、各部の間で送受信される信号の流れが矢印で示されている。
電力制御部14は、電力制御信号を出力し、スレーブ12の電力状態を制御する。電力制御信号は、たとえば、スレーブ12の電源電圧の制御、またはスレーブ12の動作クロックの制御を行うことで、スレーブ12の電力状態を制御する。なお、
図1の例では、電力制御信号が直接スレーブ12に入力されるようにしているが、スレーブ12に電源電圧を供給する回路部や、スレーブ12に動作クロックを供給する回路部に対して上記電力制御信号が入力されるようにしてもよい。それらの回路部については図示を省略している。
【0014】
また、電力制御信号は、エラー応答回路15にも入力される。なお、エラー応答回路15に入力される電力制御信号と、スレーブ12に入力される電力制御信号とは同じものでなくてもよい。また、以下の説明では、マスタ11とエラー応答回路15は、スレーブ12とは同時に低消費電力状態にはならず、通常動作を行う電力状態であるものとする。
【0015】
エラー応答回路15は、解析部15a、応答部15b、切り替え部15cを有している。
解析部15aは、マスタ11からスレーブ12へ送信される命令を解析してマスタ−スレーブ間のデータ転送状態を検出する。
【0016】
応答部15bは、スレーブ12が、通常動作を行う消費電力状態から、それより低い電力を消費する低消費電力状態(応答信号を出力しない状態)となると、解析部15aで検出されるデータ転送状態に応じてエラー信号を生成する。
【0017】
たとえば、応答部15bは、マスタ−スレーブ間でデータ転送中のとき、スレーブ12が低消費電力状態になったことを切り替え部15cから通知されると、エラー信号を生成する。また、スレーブ12が低消費電力状態であるときに、マスタ11によるスレーブ12へのデータ転送が開始したことを解析部15aが検出したときにも、応答部15bはエラー信号を生成する。
【0018】
切り替え部15cは、電力制御信号からスレーブ12が低消費電力状態であるか否かを検出する。そして、切り替え部15cは、スレーブ12が低消費電力状態となると、マスタ11が送信する命令に対するスレーブ12からの応答信号の代わりに、応答部15bで生成されたエラー信号をマスタ11へ送信するように切り替える。
【0019】
以下、第1の実施の形態の半導体集積回路10の動作の一例を説明する。
電力制御部14から出力される電力制御信号が、非低消費電力状態を指示するものである場合には、マスタ11が送信した転送命令に応じた応答信号がスレーブ12から出力される。切り替え部15cは、その応答信号を、内部バス13を介してマスタ11に通知することで、データ転送が行われる。
【0020】
データ転送中、電力制御信号が低消費電力化を指示するものとなると、
図1のように、スレーブ12はマスタ11からの転送命令に対して応答不可となる。応答部15bは、解析部15aで検出される転送状態が転送中であるとき、切り替え部15cからの信号によりスレーブ12が低消費電力化を指示されていることを通知されると、エラー信号を生成する。
【0021】
切り替え部15cは、電力制御信号が低消費電力化を指示するものとなると、スレーブ12からの応答信号の代わりに、応答部15bで生成されたエラー信号をマスタ11に対して送信するように経路を切り替える。これにより、マスタ11は転送が失敗したことを検出でき、転送の中止などの処理を行うことができる。
【0022】
一方、スレーブ12が低消費電力状態のときに、マスタ11がデータ転送を開始する旨の命令をスレーブ12に送信したときも同様に、応答部15bでエラー信号が生成され、切り替え部15cはそのエラー信号をマスタ11に対して送信する。これにより、マスタ11は転送が失敗したことを検出でき、転送の中止などの処理を行うことができる。
【0023】
このように、第1の実施の形態の半導体集積回路10では、スレーブ12が低消費電力状態で応答を返せないときでも、エラー応答回路15がエラー信号をマスタ11に送信することにより、マスタ−スレーブ間のデータ転送時のハングアップの発生を抑制できる。
【0024】
なお、上記では、応答部15bは、電力制御信号が入力される切り替え部15cからの信号により、スレーブ12が低消費電力化を指示されていることを検出するものとしたが、応答部15bにも上記の電力制御信号が入力されるようにしてもよい。
【0025】
(第2の実施の形態)
図2は、第2の実施の形態の半導体集積回路の一例を示す図である。
半導体集積回路20は、複数のマスタ21−1,21−2,…,21−m、複数のスレーブ22−1,22−2,…,22−n、内部バス23、システムモードコントローラ24、複数のエラー応答回路25−1,25−2,…,25−nを有している。
【0026】
図2の例では、エラー応答回路25−1〜25−nは各スレーブ22−1〜22−nと内部バス23との間に設けられているが、これに限定されずエラー応答回路25−1〜25−nは、各マスタ21−1〜21−mと内部バス23の間に設けられていてもよい。
【0027】
また、
図2では、3つ以上のマスタ21−1〜21−m、スレーブ22−1〜22−n、エラー応答回路25−1〜25−nを示しているが、この数に限定されず、m,nは1以上の任意の値となる。
【0028】
システムモードコントローラ24は、前述の電力制御部14の機能を有し、電力制御信号を出力し、スレーブ22−1〜22−nの電力状態を制御する。なお、システムモードコントローラ24は、スレーブ22−1〜22−nに電源電圧を供給する回路部や、スレーブ22−1〜22−nに動作クロックを供給する回路部に対して電力制御信号を供給するようにしてもよい。その場合、システムモードコントローラ24は、間接的にスレーブ22−1〜22−nの電力状態を制御する。
【0029】
また、システムモードコントローラ24は、電力制御信号をエラー応答回路25−1〜25−nにも供給する。なお、エラー応答回路25−1〜25−nに供給される電力制御信号と、スレーブ22−1〜22−nに供給される電力制御信号とは同じものでなくてもよい。
【0030】
また、以下の説明では、マスタ21−1〜21−mと、エラー応答回路25−1〜25−nは、電力制御信号によってスレーブ22−1〜22−nと同時には低消費電力状態とはならないものとする。つまり、切り替え部25cに入力される電力制御信号は、スレーブ22−1〜22−nが低消費電力状態であるか否かを認識するために用いられる。
【0031】
エラー応答回路25−1は、解析部25a、応答部25b、切り替え部25cを有している。他のエラー応答回路25−2〜25−nについても同様の要素を有しているが図示を省略している。
【0032】
解析部25aは、マスタ21−1〜21−mの何れかからスレーブ22−1へ送信される命令を解析してマスタ−スレーブ間のデータ転送状態を検出する。データ転送状態は、データ転送規格に応じたものとなる。データ転送規格として、AMBA(Advanced Microcontroller Bus Architecture)がある。また、AMBAでは、複数のバス規格が定義されている。たとえば、バス規格には、AHB(Advanced High-performance Bus)、APB(Advanced Peripheral Bus)、AXI(Advanced eXtensible Interface)などがある。
【0033】
解析部25aは上記のような規格の命令を解析してデータ転送状態を検出する。また、解析部25aは、記憶部25dを有しており、転送命令や、検出したデータ転送状態に関する情報(以下転送情報と呼ぶことにする)を、記憶部25dに記憶する。なお、記憶部25dは、解析部25aの外に設けられていてもよい。
【0034】
応答部25bは、記憶部25dに記憶されている転送情報を取得して、データ転送状態に応じた応答信号を生成する。また、応答部25bは、スレーブ22−1が低消費電力状態となると、データ転送状態に応じてエラー信号を生成する。たとえば、応答部25bは、マスタ−スレーブ間でデータ転送中のとき、スレーブ22−1が低消費電力状態になったことを切り替え部25cから通知されると、エラー信号を生成する。また、スレーブ22−1が低消費電力状態であるときに、マスタ21−1〜21−mの何れかによるスレーブ22−1へのデータ転送が開始したことを解析部25aが検出したときにも、応答部25bはエラー信号を生成する。
【0035】
切り替え部25cは、システムモードコントローラ24から供給される電力制御信号からスレーブ22−1が低消費電力状態であるか否かを検出する。そして、切り替え部25cは、スレーブ22−1が低消費電力状態となると、マスタ21−1〜21−mの何れかが送信する命令に対するスレーブ22−1からの応答信号の代わりに、応答部25bで生成されたエラー信号を、命令の送信元に返す。
【0036】
なお、上記の例では、応答部25bは、切り替え部25cから、スレーブ22−1が低消費電力状態であるか否かを検出しているがこれに限定されない。応答部25bにも電力制御信号が入力されるようにして、応答部25bも、スレーブ22−1が低消費電力状態であるか否かを検出できるようにしてもよい。
【0037】
以下、第2の実施の形態の半導体集積回路20を用いたデータ転送制御方法の例を説明する。
(データ転送制御方法)
図3は、スレーブが低消費電力化される際のデータ転送制御方法の一例を示すフローチャートである。
【0038】
たとえば、ファームウェアによって低消費電力化を実行する旨の命令が発行されると(ステップS10)、システムモードコントローラ24はスレーブ22−1〜22−nを低消費電力状態に制御する(ステップS11)。このとき、各エラー応答回路25−1〜25−nの切り替え部25cは、スレーブ22−1〜22−nからマスタ21−1〜21−mへの応答信号の代わりに、応答部25bで生成された信号がマスタ21−1〜21−mへ送信されるように経路を切り替える。なお、スレーブ22−1〜22−nは、個々に低消費電力状態となるか否かが制御されるようにしてもよい。
【0039】
そして、応答部25bは、各エラー応答回路25−1〜25−nの解析部25aの記憶部25dに記憶されている転送情報を参照し、データ転送が実行中か否か判定する(ステップS12)。データ転送が実行中の場合には、応答部25bはエラー信号を生成し出力する。たとえば、マスタ21−1とスレーブ22−1間でデータ転送が実行されていた場合には、切り替え部25cは、応答部25bで生成されたエラー信号をマスタ21−1に送信する(ステップS13)。
【0040】
データ転送が実行中でない場合、またはステップS13の処理の後、ステップS14の処理が行われる。ステップS14の処理では、応答部25bは、転送情報と切り替え部25cからの信号をもとに、スレーブ22−1〜22−nが低消費電力状態であるときに、マスタ21−1〜21−
mの何れかから転送命令が発行されたか否かを判定する。
【0041】
転送命令が発行された場合には、応答部25bはエラー信号を生成し出力する。たとえば、マスタ21−1が低消費電力状態のスレーブ22−1に対して転送命令を発行した場合、エラー応答回路25−1の応答部25bはエラー信号を生成する。そして、切り替え部25cは、応答部25bで生成されたエラー信号をマスタ21−1に送信する(ステップS15)。
【0042】
転送命令が発行されていない場合または、ステップS15の後、ステップS16の処理が行われる。ステップS16の処理では、応答部25bは、切り替え部25cからの信号をもとに、スレーブ22−1〜22−nの低消費電力状態が終了したか否かを判断する(ステップS16)。低消費電力状態が終了していない場合には、ステップS14からの処理が繰り返される。低消費電力状態が終了した場合、各エラー応答回路25−1〜25−nの切り替え部25cは、スレーブ22−1〜22−nからの応答信号がマスタ21−1〜21−mへ送信されるよう切り替えを実行する(ステップS17)。これにより、スレーブ22−1〜22−nの低消費電力状態への移行時と復帰時の、データ転送制御処理が終了する。
【0043】
次に、3種類のバス規格(AHB、APB,AXI)が適用される場合を例にして、各規格の適用時における半導体集積回路20の動作の例をより詳細に説明する。
(AHB適用時のエラー応答回路の信号例)
図4は、AHB適用時のエラー応答回路の信号例を示す図である。
図4では、
図2に示したエラー応答回路25−1内の信号例が示されている。他のエラー応答回路25−2〜25−nでも同様の信号が用いられる。
【0044】
解析部25aには、マスタ側からの命令(たとえば、どのような転送を行うかなどを示す命令)と、動作クロックを生成する図示しない回路部からクロック信号HCLKが入力される。
【0045】
応答部25bには、解析部25aで解析され、記憶部25dに格納された転送情報と、切り替え部25cから、スレーブが低
消費電力状態になったことを示す信号SELと、クロック信号HCLKが入力される。また、応答部25bは、信号HREADY,HRESP,HRDATAを出力する。これらは、スレーブ側から出力されるものと同じ種類の信号である。
【0046】
信号HREADYは、転送を延長するか否かを示す信号である。信号HRESPは、転送のステータスを示す信号である。転送のステータスとしては、“OK”、“ERROR”、“RETRY”などがある。信号HRDATAは、読み出し時にスレーブ側からマスタ側へ送られるデータである。なお、応答部25bから出力される信号HRDATAは、データが任意の値である状態を示す。
【0047】
切り替え部25cには、システムモードコントローラ24から電力制御信号が入力され、スレーブ側及び応答部25bから信号HREADY,HRESP,HRDATAが入力される。また、切り替え部25cには、クロック信号HCLKが入力される。また、切り替え部25cは、電力制御信号に応じて、スレーブ側と応答部25bの何れかから入力される信号HREADY,HRESP,HRDATAを出力する。
【0048】
(AHB適用時の半導体集積回路20の動作例)
以下では、マスタ21−1とスレーブ22−1間でデータ転送を行う場合を例にして説明する。
【0049】
図5は、AHB適用時の半導体集積回路の1つ目の動作例を示すタイミングチャートである。マスタ21−1、スレーブ22−1、応答部25bにおける信号の様子が示されている。
【0050】
マスタ21−1における信号としては、クロック信号HCLKと、マスタ21−1から出力される命令またはデータとして信号HTRANS,HADDR,HBURST,HWRITE,HSIZE,HWDATAがある。さらに、マスタ21−1に入力される信号HREADY,HRESPが示されている。
【0051】
信号HTRANSは、転送の種類を示す信号である。転送の種類としては、“NONSEQUENTIAL”、“SEQUENTIAL”、“IDLE”、“BUSY”がある。信号HADDRは、アドレスを示す信号である。信号HBURSTは、バースト転送の種類を示す信号である。信号HWRITEは、ライト転送か否かを示す信号である。信号HSIZEは、転送サイズを示す信号である。
【0052】
スレーブ22−1に供給される信号としては、たとえば、クロック信号HCLK、信号HSEL,HTRANS,HADDR,HBURST,HWRITE,HSIZE,HWDATA、電力制御信号などがある。スレーブ22−1が出力する信号としては、たとえば、信号HREADY,HRESPなどがある。なお、スレーブ22−1に供給される信号HSELは、図示しないデコーダから供給されるスレーブ選択信号である。
【0053】
なお、以下に説明する例では、電力制御信号が“1”(信号レベルがH(High)レベル)のときに、スレーブ22−1が低消費電力状態となるものとする。また、電力制御信号が“0”(信号レベルがL(Low)レベル)のときに、スレーブ22−1は非低消費電力状態となるものとする。
【0054】
応答部25bに供給される信号としては、クロック信号HCLK、信号SELがある。また応答部25bが出力する信号としては、たとえば、信号HREADY,HRESPなどがある。なお、応答部25bに供給される信号SELは、切り替え部25cから供給され、スレーブ22−1が低消費電力状態(非選択状態)にあるか否かを示す。
【0055】
図5において、タイミングt1までは、電力制御信号が“0”であり、スレーブ22−1は非低消費電力状態である。このとき、マスタ21−1とスレーブ22−1の間でライト転送が行われる。
図5の例では、“NONSEQUENTIAL(略してNSEQと表記されている)”と“SEQUENTIAL(略してSEQと表記されている)”で、4ビート・バースト転送を行うControl_Aという制御で転送が行われている。信号HADDRでは、アドレスA、A+4、A+8、A+12が指定されている。また、信号HWDATAとしてライトデータDATA_Aがマスタ21−1から出力されている。
【0056】
スレーブ22−1は、信号HSELが“1”になると、信号HTRANS,HADDR,HBURST,HWRITE,HSIZEを受け、ライトデータDATA_Aを受信する。また、スレーブ22−1は、転送完了を示す信号HREADYと、転送が正しく行われていることを示す“OK”という転送ステータスを示す信号HRESPを出力する。
【0057】
また、タイミングt1までは、応答部25bもスレーブ22−1と同様の、IDLE状態を示す信号HREADY,HRESPを出力する。
タイミングt1において、電力制御信号が“1”になると、スレーブ22−1は、低消費電力状態になり、応答ができなくなる。このとき、切り替え部25cは、応答部25bから出力される信号をマスタ21−1に送信するように応答経路を切り替える。また、切り替え部25cは、信号SELを“1”にする。応答部25bは、信号SELの変化を受けて、解析部25aの記憶部25dに記憶されている転送情報(信号HTRANSなどの値)から転送が実行中と判定し、信号HREADYを“0”とし、ウェイトを発生させる。マスタ21−1では、タイミングt2でウェイトを検出する。これにより、マスタ21−1からのライト転送が一時保留され、タイミング調整が図られる。
【0058】
また、応答部25bは、タイミングt2で、転送ステータスを“ERROR”とした信号HRESPを2クロックサイクル分出力する。また、応答部25bは、タイミングt3で信号HREADYを“1”とする。これを受けて、マスタ21−1は、タイミングt3及びt4で、正常なライト転送ができなかったことを検出する。
【0059】
応答部25bでは、タイミングt4で、解析部25aの記憶部25dに記憶されている転送情報から転送が中断中と判定し、転送ステータスを“OK”とした信号HRESPを出力し、信号HREADYについては“1”の状態としておく。マスタ21−1は、この信号をタイミングt5で検出する。
【0060】
しかし、タイミングt5では、スレーブ22−1が低消費電力状態であるにもかかわらず、マスタ21−1による転送命令が発行されている。
図5の例では、“NONSEQUENTIAL”で、Control_Bという制御でライト転送が行われる。信号HADDRでは、アドレスBが指定されている。また、タイミングt6で、信号HWDATAとしてライトデータDATA_Bがマスタ21−1から出力されている。
【0061】
応答部25bは、タイミングt6で、解析部25aの記憶部25dに記憶されている転送情報から転送が実行中と判定し、転送ステータスを再び“ERROR”とした信号HRESPを、2クロックサイクル分出力する。また、応答部25bは、タイミングt7で信号HREADYを“1”とする。これを受けて、マスタ21−1は、タイミングt7及びt8で正常なライト転送ができなかったことを検出する。
【0062】
タイミングt9で、電力制御信号が“0”になると、スレーブ22−1は低消費電力状態から復帰する。このとき、切り替え部25cは、転送が未実行であることを確認すると、スレーブ22−1から出力される信号HREADY,HRESPをマスタ21−1に送信するように切り替える。
【0063】
次に、AHB適用時の半導体集積回路20の2つ目の動作例を説明する。
図6は、AHB適用時の半導体集積回路の2つ目の動作例を示すタイミングチャートである。
図6では、マスタ21−1がアドレスフェーズの転送命令を全て発行した後、データフェーズの応答を待っている状態のときに、スレーブ22−1が低消費電力化された場合の動作例が示されている。図示されている信号の種類は、
図5と同じである。
【0064】
タイミングt10において、マスタ21−1によりアドレスA+12までの指定が終了したときに、電力制御信号が“1”となり、スレーブ22−1は、低消費電力状態になり、応答ができなくなっている。このとき、切り替え部25cは、応答部25bから出力される信号をマスタ21−1に送信するように切り替える。また、切り替え部25cは、信号SELを“1”にする。応答部25bでは、解析部25aの記憶部25dに記憶されている転送情報から転送が実行中と判定し、信号HREADYを“0”とし、ウェイトを発生させる。マスタ21−1では、タイミングt11でウェイトを検出する。これにより、マスタ21−1からのライト転送が一時保留され、タイミング調整が図られる。
【0065】
また、応答部25bは、タイミングt11で、転送ステータスを“ERROR”とした信号HRESPを、2クロックサイクル分出力する。また、応答部25bは、タイミングt12で信号HREADYを“1”とする。これを受けて、マスタ21−1は、タイミングt12及びt13で、正常なライト転送ができなかったことを検出する。
【0066】
応答部25bでは、タイミングt13で、解析部25aの記憶部25dに記憶されている転送情報から転送が中断中と判定し、転送ステータスを“OK”とした信号HRESPを出力し、信号HREADYについては“1”の状態としておく。マスタ21−1では、この信号をタイミングt14で検出する。
【0067】
次に、AHB適用時の半導体集積回路20の3つ目の動作例を説明する。
図7は、AHB適用時の半導体集積回路の3つ目の動作例を示すタイミングチャートである。
図7では、スレーブ22−1が低消費電力状態のときに、マスタ21−1が転送を開始し、エラー応答回路25−1によるエラー応答中にスレーブ22−1の低消費電力状態が解除された場合の動作例が示されている。図示されている信号の種類は、
図5及び
図6と同じである。
【0068】
スレーブ22−1が低消費電力状態のときに、タイミングt20で、マスタ21−1が転送命令を発行している。
図7の例では、“NONSEQUENTIAL”で、Control_Cという制御でライト転送が行われる。信号HADDRでは、アドレスCが指定されている。また、タイミングt21で、信号HWDATAとしてライトデータDATA_Cがマスタ21−1から出力されている。
【0069】
応答部25bは、タイミングt21において、解析部25aの記憶部25dに記憶されている転送情報から転送が開始されることを検出し、信号HREADYを“0”にする。また、応答部25bは、転送ステータスを“ERROR”とした信号HRESPを、2クロックサイクル分出力する。また、応答部25bは、タイミングt22で信号HREADYを“1”とする。これを受けて、マスタ21−1は、タイミングt22及びt23で、正常なライト転送ができなかったことを検出する。
【0070】
さらに、
図7の例では、タイミングt22において電力制御信号が“0”となり、スレーブ22−1は、低消費電力状態から解除される。しかし、切り替え部25cは、応答部25bによるマスタ21−1へのエラー応答中であるため、応答部25bからマスタ21−1への信号の送信を維持する。タイミングt23で、エラー応答が終了し、転送が未実行であることを確認すると、切り替え部25cは、スレーブ22−1から出力される信号HREADY,HRESPなどをマスタ21−1に送信するように切り替える。エラー応答は2クロックサイクル分実行することが規格で決められているので、上記のような処理によれば、規格違反が発生することを抑制できる。
【0071】
図8は、AHB適用時の半導体集積回路の状態遷移の一例を示す図である。
電力制御信号がスレーブ22−1の非低消費電力化を指示している場合(たとえば、“0”の場合)、半導体集積回路20の状態は、スレーブ22−1からマスタ21−1への応答経路を確立するように、経路の切り替えが行われる状態T1となる。一方、電力制御信号がスレーブ22−1の低消費電力化を指示している場合(たとえば、“1”の場合)には、半導体集積回路20の状態は、状態T3に遷移する。
【0072】
半導体集積回路20の状態は、状態T1の後、実行中のライトまたはリードの転送命令により、記憶部25dに記憶されている前の転送命令が更新される状態T2となる。状態T2において、電力制御信号がスレーブ22−1の非低消費電力化を指示している場合には、状態T2が維持される。一方、状態T2において、電力制御信号がスレーブ22−1の低消費電力化を指示する場合には、半導体集積回路20の状態は、状態T3に遷移する。
【0073】
状態T3〜T8では、スレーブ22−1は低消費電力状態となっている。状態T3において、エラー応答回路25−1の解析部25aは、記憶部25dに更新された転送命令を解析してデータ転送状態を検出する。転送が未実行である場合、半導体集積回路20の状態は、応答部25bがOK応答を行う状態T4(転送ステータスを“OK”とした信号HRESPと“1”の信号HREADYを出力する状態)に遷移する。一方、転送が実行中である場合、半導体集積回路20の状態は、応答部25bがウェイトを発生させる状態T5に遷移する。
【0074】
状態T4または状態T5の後に表記されている状態T6は、切り替え部25cにより、応答部25bからマスタ21−1への応答経路を確立するように、経路の切り替えが行われている状態である。なお、状態T6は、状態T4または状態T5と同一タイミングで現れる。たとえば、前述した、
図5では、電力制御信号が“1”になって、切り替え部25cにより、応答部25bからマスタ21−1への応答経路を確立するタイミングt1で、信号HREADYが“0”となり、ウェイトが発生している。
【0075】
状態T6の後、半導体集積回路20の状態は、転送が未実行である場合には、応答部25bがOK応答を行う状態T7に遷移する。一方、状態T6の後、半導体集積回路20の状態は、転送が実行中である場合には、応答部25bがエラー応答を行う状態T8に遷移する。
【0076】
状態T7のとき、電力制御信号が、非低消費電力化を指示すると、半導体集積回路20の状態は、状態T1に戻る。また、状態T7のとき、マスタ21−1によるスレーブ22−1への新たなデータ転送が発生した場合、半導体集積回路20の状態は、状態T8に遷移する。
【0077】
状態T8のとき、マスタ21−1がスレーブ22−1との間でデータ転送を中止した場合、状態T7に遷移する。また、状態T8のとき、マスタ21−1がエラー応答を無視してデータ転送を継続した場合、もしくは、マスタ21−1がスレーブ22−1へのデータ転送を中止したが、次の新たなデータ転送が発生した場合、状態T8が維持される。
【0078】
以上のように、本実施の形態の半導体集積回路20では、転送中にスレーブ22−1が低消費電力状態となったり、低消費電力状態のときに転送が発生しても、エラー応答回路25−1が、マスタ21−1にエラー応答を返せる。このため、マスタ21−1のハングアップの発生を抑制できる。また、システム全体のハングアップの発生を抑制することもできる。
【0079】
(APB適用時のエラー応答回路の信号例)
図9は、APB適用時のエラー応答回路の信号例を示す図である。
図9でも、
図2に示したエラー応答回路25−1内の信号例が示されている。他のエラー応答回路25−2〜25−nでも同様の信号が用いられる。
【0080】
解析部25aには、マスタ側からの命令(どのような転送を行うかなどを示す命令)と、動作クロックを生成する図示しない回路部からクロック信号PCLKが入力される。
応答部25bには、解析部25aで解析され、記憶部25dに格納された転送情報と、切り替え部25cから、スレーブが低
消費電力状態になったことを示す信号SELと、クロック信号PCLKが入力される。また、応答部25bは、信号PREADY,PSLVERR,PRDATAを出力する。これらは、スレーブ側から出力されるものと同じ種類の信号である。
【0081】
信号PREADYは、転送を延長するか否かを示す信号である。信号PSLVERRは、転送が失敗したことを示す信号である。信号PRDATAは、読み出し時にスレーブ側からマスタ側へ送られるデータである。なお、応答部25bから出力される信号PRDATAは、データが任意の値である状態を示す。
【0082】
切り替え部25cには、システムモードコントローラ24から電力制御信号が入力され、スレーブ側及び応答部25bから信号PREADY,PSLVERR,PRDATAが入力される。また、切り替え部25cには、クロック信号PCLKが入力される。また、切り替え部25cは、電力制御信号に応じて、スレーブ側と応答部25bの何れかから入力される信号PREADY,PSLVERR,PRDATAを出力する。
【0083】
(APB適用時の半導体集積回路20の動作例)
APB適用時の半導体集積回路20の動作は、AHB適用時のものとほぼ同じである。
APB適用時では、
図9に示したような信号を用いて動作が行われる。応答部25bは、スレーブ22−1が低消費電力状態となったことを切り替え部25cから出力される信号SELで検出し、転送状態に応じた応答信号を生成する。切り替え部25cは、スレーブ22−1が低消費電力状態となったことを電力制御信号で検出すると、マスタ21−1に送信する信号PREADY,PSLVERR,PRDATAとして、応答部25bで生成されたものを選択する。
【0084】
応答部25bは、スレーブ22−1が低消費電力状態となると、マスタ21−1とスレーブ22−1が転送中の場合には、信号PREADYを“0”にしてウェイトを発生させる。その後、信号PSLVERRと信号PREADYによりエラー応答を発生させる。
【0085】
以上のように、本実施の形態の半導体集積回路20では、APBを適用した場合にも、AHB適用時と同様の効果が得られるとともに、APBの規格にしたがった転送を行うことができる。
【0086】
(AXI適用時のエラー応答回路の信号例)
図10は、AXI適用時のエラー応答回路の信号例を示す図である。
図10でも、図
2に示したエラー応答回路25−1内の信号例が示されている。他のエラー応答回路25−2〜25−nでも同様の信号が用いられる。
【0087】
解析部25aには、マスタ側からの命令(どのような転送を行うかなどを示す命令)と、動作クロックを生成する図示しない回路部からクロック信号ACLKが入力される。
応答部25bには、解析部25aで解析され、記憶部25dに格納された転送情報と、切り替え部25cから、スレーブが低電力状態になったことを示す信号SELと、クロック信号ACLKが入力される。また、応答部25bは、ライト転送時の応答信号、リード転送時の応答信号、信号RDATAを出力する。これらは、スレーブ側から出力されるものと同じ種類の信号である。
【0088】
ライト転送時の応答信号には、信号AWREADY,WREADY,BRESP,BVALIDなどがある。信号AWREADYは、スレーブ側がライトアドレスの受信準備ができているか否かを示す信号である。信号WREADYは、スレーブ側がライトデータの受信準備ができているか否かを示す信号である。信号BRESPは、ライト転送時の転送ステータスを示す信号である。転送ステータスには、スレーブエラー状態を返す際に用いられる“SLVERR”などがある。信号BVALIDは、有効な応答が存在するか否かを示す信号である。
【0089】
リード転送時の応答信号には、信号ARREADY,RRESPなどがある。信号ARREADYは、スレーブ側がリードアドレスの受信準備ができているか否かを示す信号である。信号RRESPは、リード転送時の転送ステータスを示す信号である。転送ステータスには、スレーブ側がエラー状態を返す際に用いられる“SLVERR”などがある。
【0090】
信号RDATAは、リード転送時にスレーブ側からマスタ側へ送られるリードデータである。なお、応答部25bから出力される信号RDATAは、データが任意の値である状態を示す。
【0091】
切り替え部25cには、システムモードコントローラ24から電力制御信号が入力され、スレーブ側及び応答部25bからライト転送時の応答信号、リード転送時の応答信号、信号RDATAが入力される。また、切り替え部25cには、クロック信号ACLKが入力される。また、切り替え部25cは、電力制御信号に応じて、スレーブ側と応答部25bの何れかから入力されるライト転送時の応答信号、リード転送時の応答信号、信号RDATAなどを出力する。
【0092】
(AXI適用時の半導体集積回路20の動作例)
以下では、マスタ21−1とスレーブ22−1間でデータ転送(ライト転送及びリード転送)を行う場合を例にして、AXI適用時の半導体集積回路20の動作例を説明する。
【0093】
図11は、AXI適用時の半導体集積回路のライト転送時の動作例を示すタイミングチャートである。マスタ21−1、スレーブ22−1、応答部25bにおける信号の様子が示されている。
【0094】
ライト転送時にマスタ21−1に供給される信号としては、クロック信号ACLK、スレーブ22−1またはエラー応答回路25−1から通知される信号AWREADY,WREADY,BVALID,BRESPなどのライト転送時の応答信号がある。また、マスタ21−1が出力する信号BREADYが図示されている。信号BREADYは、マスタ21−1がスレーブ側からの応答信号を受けられる状態にあるか否かを示す信号である。
【0095】
さらに、
図11には、マスタ21−1側における、ライトアドレスチャネル、ライトデータチャネル、ライトレスポンスチャネルの様子が示されている。ライトレスポンスチャネルには、上記のようなライト転送時の応答信号が伝達される。なお、
図11ではライトレスポンスチャネルを伝達するライト転送の応答信号をWR−1,WR−2,WR−3,WR−4と表記している。
【0096】
ライト転送時にスレーブ22−1に供給される信号としては、たとえば、クロック信号ACLK、電力制御信号などがある。スレーブ22−1が出力する信号としては、信号AWREADY,WREADY,BVALID,BRESPがある。さらに、スレーブ22−1側におけるライトアドレスチャネル、ライトデータチャネル、ライトレスポンスチャネルの様子が示されている。
【0097】
応答部25bに供給される信号としては、クロック信号ACLK、信号SELがある。また応答部25bが出力する信号としては信号AWREADY,WREADY,BVALID,BRESPなどの応答信号がある。なお、応答部25bに供給される信号SELは、切り替え部25cから供給され、スレーブ22−1が低消費電力状態(非選択状態)にあるか否かを示す。さらに、
図11では、応答部25bによって出力される応答信号が転送されるライトレスポンスチャネルの様子が示されている。
【0098】
図11において、タイミングt30までは電力制御信号が“0”であり、スレーブ22−1は非低消費電力状態である。このとき、マスタ21−1とスレーブ22−1の間でライトアドレスWA−1,WA−2の指定と、ライトデータWD−1のデータ転送が行われている。スレーブ22−1が非低消費電力状態のとき、スレーブ22−1及び応答部25bから出力される信号BRESPは、転送ステータスが“OK”となっている。
【0099】
また、
図11の例では、タイミングt30までは、応答部25bもスレーブ22−1と同様の信号AWREADY,WREADY,BRESPを出力している。
図11の動作例では、ライトレスポンスチャネルを伝達する応答信号WR−1によるマスタ−スレーブ間のハンドシェイクが成立する前の、ウェイト(信号BREADYが“0”)状態のときに、電力制御信号が“1”となっている(タイミングt30)。これにより、スレーブ22−1は、低消費電力状態になり、応答ができなくなる。
【0100】
このとき、切り替え部25cは、応答部25bから出力される信号をマスタ21−1に送信するように切り替える。また、切り替え部25cは、信号SELを“1”にする。応答部25bは、信号SELの変化を受けて、解析部25aの記憶部25dに記憶されている転送情報から転送が実行中と判定し、信号AWREADY,WREADYを“0”とし、ウェイトを発生させる。また、マスタ21−1は、タイミングt31で、応答部25bで発生したウェイトを検出する。
【0101】
信号BREADYが“0”で、ライトレスポンスチャネルについてのハンドシェイクがウェイトされている状態のときは、スレーブ側の信号の変更が禁止されている。そのため、応答部25bは、タイミングt30から“1”の信号BVALIDを、信号BREADYが“1”の状態を検出するまで発生させ、応答信号WR−1を維持し、マスタ21−1に対してOK応答をする。その後、応答部25bは、タイミングt31で、信号BRESPで示される転送ステータスを“SLVERR”に変更する。
【0102】
ところで、
図11の例では、ライトアドレスWA−2の指定が終わり、ライトデータチャネルにおいて、タイミングt30のライトデータWD−2の転送開始時に、スレーブ22−1が低消費電力状態になる。このときも応答部25bはウェイトを発生するが、
図11の例では前述したウェイトと同じタイミングt30で発生される。
【0103】
ウェイトの解除後、ライトデータチャネルへのライトデータWD−2の転送が成立すると(タイミングt34)、応答部25bは応答信号WR−2を発生させ、信号BVALIDを、信号BREADYが“1”の状態を検出するまで、“1”にしてスレーブエラー応答を行う。
【0104】
マスタ21−1は、タイミングt35でスレーブエラー応答を検出し、スレーブ22−1でエラーが発生し、ライト転送ができなかったことを検出できる。
また、
図11の例では、ライトアドレスWA−3の指定開始時に、スレーブ22−1が低消費電力状態になる。このときも応答部25bはウェイトを発生するが、
図11の例では前述したウェイトと同じタイミングt30で発生される。
【0105】
ウェイトの解除後、応答部25bは、ライトアドレスチャネルへのライトアドレスWA−3の転送を成立させる(タイミングt32)。マスタ21−1によるライトデータチャネルへのライトデータWD−2の転送後、応答部25bは、ライトデータWD−3の転送を成立させる(タイミングt36)。そのタイミングで、応答部25bは応答信号WR−3を発生させ、信号BVALIDを、信号BREADYが“1”の状態を検出するまで、“1”にしてスレーブエラー応答を行う。
【0106】
マスタ21−1は、タイミングt37でスレーブエラー応答を検出し、スレーブ22−1でエラーが発生したことを検出することができる。
また、
図11の例では、スレーブ22−1が低消費電力中のタイミングt33で、ライトアドレスチャネルにてライトアドレスWA−4の転送が成立している。
【0107】
タイミングt37では、電力制御信号が“0”となりスレーブ22−1の低消費電力状態が解除されているが、ライトアドレスチャネルでは転送が発生していない。つまり、切り替え部25cは、低消費電力状態の解除時、未完了のライト転送があるため、マスタ21−1と応答部25b間で送受信されるように、経路を維持しておく。そのため、ライトデータチャネルの信号(ライトデータWD−4)は、スレーブ22−1には転送されない。
【0108】
マスタ21−1によるライトデータチャネルへのライトデータWD−4の転送が完了するが(タイミングt38)、応答信号WR−4についてはマスタ21−1に送られておらずライト転送は完了していない。そのため、切り替え部25cは、応答部25bから応答信号WR−4がマスタ21−1に送信されるように経路を維持しておく。
【0109】
応答部25bは、タイミングt38で、信号BVALIDを、信号BREADYが“1”の状態を検出するまで、“1”とし、スレーブエラー応答を行う。マスタ21−1は、タイミングt39でスレーブエラー応答を検出し、スレーブ22−1でエラーが発生したことを認識することができる。また、タイミングt39では、応答部25bは、信号BRESPで示される転送ステータスを“OK”とする。
【0110】
以上で、全てのライト転送が完了したので、切り替え部25cは、タイミングt40で、ライトアドレスチャネル、ライトデータチャネル及びライトレスポンスチャネルの信号についてもスレーブ22−1からマスタ21−1に送信されるように経路を切り替える。
【0111】
次に、AXI適用時の半導体集積回路のリード転送時の動作例を説明する。
図12は、AXI適用時の半導体集積回路のリード転送時の動作例を示すタイミングチャートである。マスタ21−1、スレーブ22−1、応答部25bにおける信号の様子が示されている。
【0112】
リード転送時にマスタ21−1に供給される信号としては、クロック信号ACLKと、スレーブ22−1またはエラー応答回路25−1から通知される信号ARREADY,RRESPなどのリード転送時の応答信号がある。
【0113】
さらに、
図12には、マスタ21−1側におけるリードアドレスチャネル、リードデータチャネルの様子が示されている。
リード転送時にスレーブ22−1に供給される信号としては、たとえば、クロック信号ACLK、電力制御信号などがある。スレーブ22−1が出力する信号としては、たとえば、信号ARREADY,RRESPがある。他にも、信号RVALIDなどがあるが図示を省略している。さらに、
図12には、スレーブ22−1側におけるリードアドレスチャネル、リードデータチャネルの様子が示されている。
【0114】
応答部25bに供給される信号としては、クロック信号ACLK、信号SELがある。また応答部25bが出力する信号としては、たとえば、信号ARREADY,RRESPがある。他にも、信号RVALIDなどがあるが図示を省略している。なお、応答部25bに供給される信号SELは、切り替え部25cから供給され、スレーブ22−1が低消費電力状態(非選択状態)にあるか否かを示す。
【0115】
図12において、タイミングt50までは、電力制御信号が“0”であり、スレーブ22−1は非低消費電力状態である。このとき、スレーブ22−1が信号RVALIDを“1”、信号RRESPで示される転送ステータスを“OK”とした状態で、マスタ21−1との間でリードアドレスRA−1の指定と、リードデータRD−1の転送が行われている。
【0116】
図12の例では、リードデータRD−1の転送中に電力制御信号が“1”となっている(タイミングt50)。これにより、スレーブ22−1は、低消費電力状態になり、応答ができなくなる。
【0117】
このとき、切り替え部25cは、スレーブ22−1から出力される信号をマスタ21−1に送信する代わりに、応答部25bから出力される信号をマスタ21−1に送信するように経路を切り替える。また、切り替え部25cは、信号SELをHレベルにする。応答部25bは、信号SELの変化を受けて、解析部25aの記憶部25dに記憶されている転送情報(たとえば、リードアドレスRA−1など)から転送が実行中と判定し、信号ARREADYを“0”とし、ウェイトを発生させる。さらに、応答部25bは、信号RRESPで示される転送ステータスを“SLVERR”に変更する。また、応答部25bは、任意の値であるリードデータRD1を生成する。
【0118】
なお、
図12の例では、応答部25bが出力する信号ARREADYは、タイミングt50の前から“0”となっている。
タイミングt50以前では、マスタ21−1にはスレーブ22−1から出力される“1”である信号ARREADYが供給されている。しかし、切り替え部25cによる切り替え後は、応答部25bからの“0”である信号ARREADYが供給される。これによりマスタ21−1は、タイミングt51で、応答部25bで発生したウェイトを検出する。
【0119】
タイミングt51では、応答部25bは、信号ARREADYを“1”とし、ウェイトを解除する。マスタ21−1は、タイミングt52において、ウェイトの解除を検出する。また、マスタ21−1は、信号RRESPによりスレーブエラー応答を検出する。これにより、マスタ21−1は、スレーブ22−1でエラーが発生し、リード転送ができなかったことを検出できる。
【0120】
ところで、
図12の例では、リードアドレスRA−2の指定開始時に、スレーブ22−1が低消費電力状態になる。このときも応答部25bはウェイトを発生するが、
図12の例では前述したウェイトと同じタイミングt50で発生される。
【0121】
ウェイトの解除後、応答部25bは、リードアドレスチャネルへのリードアドレスRA−2の転送を成立させる(タイミングt52)。応答部25bは、任意の値であるリードデータRD−2を生成してリードデータチャネルに転送するが、この転送に対してスレーブエラー応答を行う。そして、タイミングt53で、マスタ21−1においてスレーブ22−1のエラーが検出される。
【0122】
また、
図12の例では、スレーブ22−1が低消費電力中のタイミングt54で、リードアドレスチャネルにてリードアドレスRA−3が成立している。
タイミングt55では、電力制御信号が“0”となりスレーブ22−1の低消費電力状態が解除されている。しかし、未完了のリード転送があるため、切り替え部25cは、応答部25bで生成された任意の値であるリードデータRD−3がマスタ21−1に転送されるように、経路を維持しておく。
【0123】
このとき、応答部25bは、任意の値であるリードデータRD−3の転送に対してスレーブエラー応答を行い、タイミングt56で、マスタ21−1においてスレーブ22−1のエラーが検出される。
【0124】
また、
図12の例では、スレーブ22−1が低消費電力中のタイミングt55で、リードアドレスチャネルにてリードアドレスRA−4が成立している。
そのため、タイミングt56で任意の値であるリードデータRD−3のリードデータチャネルへの転送が終わっても、切り替え部25cは、応答部25bで生成された任意の値であるリードデータRD−4がマスタ21−1に転送されるように、経路を維持しておく。
【0125】
このとき、応答部25bは、任意の値であるリードデータRD−4の転送に対してスレーブエラー応答を行う。そして、タイミングt57で、マスタ21−1においてスレーブ22−1のエラーが検出される。
【0126】
また、タイミングt57では、応答部25bは、信号RRESPで示される転送ステータスを“OK”とする。
以上で、全てのリード転送が完了したので、切り替え部25cは、タイミングt58で、リードデータチャネルの信号についても、スレーブ22−1からマスタ21−1に送信されるように経路を切り替える。
【0127】
図13、
図14は、AXI適用時の半導体集積回路の状態遷移の一例を示す図である。
まず、エラー応答回路25−1は、転送命令を保持するための記憶部25dの格納領域を用意する(状態T10)。格納領域は、Read Issuing Capability,Read ID(IDentification) Capability,Write Issuing Capability,Write ID Capabilityに応じて設けられる。
【0128】
Read Issuing Capabilityとは、マスタが発行可能な実行中のリードトランザクションの最大数である。Read ID Capabilityとは、マスタが発行可能な実行中のリードトランザクションのうち、異なるARID(リードアドレスチャネルのトランザクションID)の最大数である。
【0129】
Write Issuing Capabilityとは、マスタが発行可能な実行中のライトトランザクションの最大数である。Write ID Capabilityとは、マスタが発行可能な実行中のライトトランザクションのうち、異なるWRID(ライトアドレスチャネルのトランザクションID)の最大数である。
【0130】
状態T10において、電力制御信号がスレーブ22−1の非低消費電力化を指示している場合、半導体集積回路20の状態は、スレーブ22−1からマスタ21−1への応答経路を確立するように、経路の切り替えが行われる状態T11となる。一方、電力制御信号がスレーブ22−1の低消費電力化を指示している場合、半導体集積回路20の状態は、状態T13に遷移する。
【0131】
状態T11の後、半導体集積回路20の状態は、実行中のライトまたはリードの転送命令により、記憶部25dに記憶されている前の転送命令が更新される状態T12となる。状態T12において、電力制御信号がスレーブ22−1の非低消費電力化を指示している場合には、状態T12が維持される。一方、状態T12において、電力制御信号がスレーブ22−1の低消費電力化を指示する場合、半導体集積回路20の状態は、状態T13に遷移する。
【0132】
状態T13〜T24では、スレーブ22−1は低消費電力状態となっている。状態T13では、エラー応答回路25−1の解析部25aは、記憶部25dに更新された転送命令を解析してデータ転送状態を検出する。転送が未実行である場合、かつ、記憶部25dに記憶されている転送命令による転送で未完了のものがない場合、半導体集積回路20の状態は、応答部25bがOK応答を行う状態T14に遷移する。
【0133】
前述の
図13のように、ライト転送のときは、応答部25bは、信号AWREADY,WREADYを“1”、転送ステータスを“OK”とした信号BRESPを出力することでOK応答を行う。また、前述の
図14のように、リード転送のときは、応答部25bは、信号ARREADYを“1”、転送ステータスを“OK”とした信号RRESPを出力することでOK応答を行う。
【0134】
一方、状態T13において、転送が実行中である場合、応答部25bが、ウェイトを発生させる状態T15に遷移する。
状態T14または状態T15の後に表記されている状態T16は、切り替え部25cにより、応答部25bからマスタ21−1への応答経路を確立するように、経路の切り替えが行われている状態である。なお、状態T16は、状態T14または状態T15と同一タイミングで現れる。
【0135】
状態T16の後、転送が未実行である場合、かつ、記憶部25dに記憶されている転送命令による転送で未完了のものがない場合、半導体集積回路20の状態は、応答部25bがOK応答を行う状態T17に遷移する。一方、状態T16の後、転送が実行中である場合には、半導体集積回路20の状態は、実行中のライトまたはリードの転送命令により、記憶部25dに記憶されている前の転送命令が更新される状態T18となる。また、半導体集積回路20の状態は、状態T17のときに、マスタから新たな転送が発生した場合には、状態T18に遷移し、状態T18のときに、記憶部25dに記憶されている転送命令が全て完了した場合には、状態T17に遷移する。
【0136】
一方、
図14のように、状態T18のときに、未完了のリード転送がある場合には、半導体集積回路20の状態は、リード転送処理が行われる状態T19,T20,T21の何れかとなる。また、状態T18のときに、未完了のライト転送がある場合には、半導体集積回路20の状態は、ライト転送処理が行われる状態T22,T23,T24の何れかとなる。リード転送処理と、ライト転送処理とは並列で処理される。
【0137】
リード転送処理と、ライト転送処理は、たとえば、
図14のように、3段階の優先度(処理優先度高、中、低)がある。
リード転送処理では、リードアドレスチャネルを使用中の命令がある場合、半導体集積回路20の状態は、他に優先してアドレスチャネルでの転送を成立させる状態T19に遷移する。リードアドレスチャネルを使用中の命令がなく、リードデータチャネルを使用中の命令がある場合、半導体集積回路20の状態は、リードデータチャネルでの転送に対して全てエラー応答を行う状態T20に遷移する。リードアドレスチャネル及びリードデータチャネルの使用中の命令がない場合で、未完了のリード転送命令がある場合、半導体集積回路20の状態は、その転送命令にしたがって、スレーブエラー応答を行う状態T21に遷移する。
【0138】
ライト転送処理では、ライトアドレスチャネルを使用中の命令がある場合、半導体集積回路20の状態は、他に優先してライトチャネルでの転送を成立させる状態T22に遷移する。ライトアドレスチャネルを使用中の命令がなく、ライトデータチャネルを使用中の命令がある場合、半導体集積回路20の状態は、ライトデータチャネルでの転送を成立させた後、その転送に対してエラー応答を行う状態T23に遷移する。ライトアドレスチャネルとライトデータチャネルを使用中の命令がなく、未完了のライト転送命令がある場合、半導体集積回路20の状態は、その転送命令にしたがいライトデータチャネルでの転送を成立させ、スレーブエラー応答を行う状態T24に遷移する。
【0139】
状態T19〜24の後は、状態T18に遷移する。
以上のような制御を行うことで、本実施の形態の半導体集積回路20では、AXIを適用した場合でも、AHB適用時と同様の効果が得られるとともに、AXIの規格にしたがった転送を行うことができる。
【0140】
このように、本実施の形態の半導体集積回路20は、エラー応答回路25−1〜25−nを有しているが、各規格にしたがった転送動作を行うことができるので、マスタ21−1〜21−m及びスレーブ22−1〜22−nは、変更を行わなくてもよい。
【0141】
(変形例)
上記の説明では、
図2に示したようなマスタ21−1〜21−mと、スレーブ22−1〜22−n間のデータ転送について説明したが、スレーブ22−1〜22−nは、以下に示すような回路部であってもよい。
【0142】
図15は、本実施の形態の半導体集積回路の変形例を示す図である。
図2と同じ要素については同一符号を付している。
図15に示されているような半導体集積回路20aは、複数の回路部30−1〜30−nを有しており、各回路部30−1〜30−nは、内部バス31と内部バス31に接続されたモジュール32−1,32−2,…,32−xを有している。回路部30−1〜30−nに対しては、システムモードコントローラ24からの電力制御信号が供給される。なお、モジュール32−1〜32−xの数は、回路部30−1〜30−nごとに異なっていてもよい。
【0143】
図15の例では、マスタ21−1〜21−mと、回路部30−1〜30−n内のモジュール32−1〜32−x間でのデータ転送が行われる。エラー応答回路25−1〜25−nは、各回路部30−1〜30−nに対して設けられている。そして、エラー応答回路25−1〜25−nは、マスタ21−1〜21−mと回路部30−1〜30−n間のデータ転送に対して、以上説明してきた処理と同様の転送制御を行う。
【0144】
たとえば、マスタ21−1と回路部30−1内のモジュール32−1がデータ転送中のとき、回路部30−1が低消費電力状態となると、エラー応答回路25−1は、応答が返せないモジュール32−1の代わりに、マスタ21−1にエラー信号を送信する。また、回路部30−1が低消費電力状態のときに、マスタ21−1による回路部30−1内のモジュール32−1とのデータ転送が開始されると、エラー応答回路25−1は、応答が返せないモジュール32−1の代わりに、マスタ21−1にエラー信号を送信する。
【0145】
以上、実施の形態に基づき、本発明のエラー応答回路、半導体集積回路及びデータ転送制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。