(57)【特許請求の範囲】
【請求項１】
第１の回路部から第２の回路部へ送信される命令に基づき、前記第１の回路部と前記第２の回路部間でデータ転送中か否かを検出する解析部と、
前記第２の回路部が、第１の消費電力状態から、前記第１の消費電力状態より低い電力を消費する第２の消費電力状態であり、且つ、前記解析部で前記データ転送中であることが検出されているとき、エラー信号を生成する応答部と、
前記第２の回路部が前記第２の消費電力状態となると、前記命令に対する前記第２の回路部から前記第１の回路部への応答信号の代わりに、前記応答部で生成される前記エラー信号を前記第１の回路部へ送信する切り替え部と、を有し、
前記切り替え部は、前記第２の回路部が前記第２の消費電力状態から前記第１の消費電力状態に復帰すると、前記第２の消費電力状態時に前記応答部で生成された前記エラー信号を前記第１の回路部へ送信してから、前記第２の回路部で生成される前記応答信号が前記第１の回路部に送信されるように切り替える、
エラー応答回路。
【請求項２】
前記応答部は、前記第２の回路部が前記第２の消費電力状態であるときに、前記第１の回路部がデータ転送を開始すると、前記エラー信号を生成する、請求項１に記載のエラー応答回路。
【請求項３】
前記応答部は、前記第１の回路部と前記第２の回路部がデータ転送中であるときに前記第２の回路部が前記第２の消費電力状態となると、データ転送を一時保留させるためのウェイトを発生させた後、前記エラー信号を生成する、請求項１または２に記載のエラー応答回路。
【請求項４】
命令の送信元である第１の回路部と、
前記命令の送信先であり、前記命令に対する応答信号を前記第１の回路部に返す第２の回路部と、
前記命令に基づき、前記第１の回路部と前記第２の回路部間でデータ転送中か否かを検出し、前記第２の回路部が、第１の消費電力状態から、前記第１の消費電力状態より低い電力を消費する第２の消費電力状態であり、且つ、前記データ転送中であることが検出されているとき、エラー信号を生成し、前記命令に対する前記応答信号の代わりに、前記エラー信号を前記第１の回路部へ送信するエラー応答回路と、を有し、
前記エラー応答回路は、前記第２の回路部が前記第２の消費電力状態から前記第１の消費電力状態に復帰すると、前記第２の消費電力状態時に生成した前記エラー信号を前記第１の回路部へ送信してから、前記第２の回路部で生成される前記応答信号を前記第１の回路部に送信する、
半導体集積回路。
【請求項５】
第１の回路部から第２の回路部へ送信される命令に基づき、前記第１の回路部と前記第２の回路部間でデータ転送中か否かを検出し、
前記第２の回路部が、第１の消費電力状態から、前記第１の消費電力状態より低い電力を消費する第２の消費電力状態であり、且つ、前記データ転送中であることが検出されているとき、エラー信号を生成し、
前記命令に対する前記第２の回路部から前記第１の回路部への応答信号の代わりに、前記エラー信号を前記第１の回路部へ送信し、
前記第２の回路部が前記第２の消費電力状態から前記第１の消費電力状態に復帰すると、前記第２の消費電力状態時に生成した前記エラー信号を前記第１の回路部へ送信してから、前記第２の回路部で生成される前記応答信号を前記第１の回路部に送信する、
データ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー応答回路、半導体集積回路及びデータ転送制御方法に関する。
【背景技術】
【０００２】
近年、電子機器や半導体集積回路などにおいて、一層の低消費電力化が求められている。低消費電力化のための手法として、たとえば、ある回路部への電力供給を制御する方法や、その回路の動作クロックを停止する方法が考えられる。
【０００３】
ところで、たとえば、半導体集積回路におけるデータ転送の際、転送命令の送信元の回路部に対して、送信先の回路部はその転送命令に対する応答を返す。送信元の回路部はその応答を受けるまで待機する。このような、ハンドシェイクを伴うデータ転送規格の１つとして、ＡＭＢＡ（Advanced Microcontroller Bus Architecture）があり、ＳｏＣ（System-on-a-Chip）などの半導体集積回路で用いられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１７２５７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記のようなデータ転送の際、転送命令の送信先の回路部が、低消費電力状態になると、転送命令の送信元の回路部に対して応答が返せない場合がある。たとえば、データ転送中に転送命令の送信先の回路部が低消費電力化された場合や、転送命令の送信先の回路部が低消費電力状態にあるときに転送命令が送信元の回路部から送信された場合に、送信元の回路部は応答信号を受信できない可能性がある。その場合、データ転送が不正に中断されて、転送命令の送信元の回路部がいつまでたっても処理を行うことができず、ハングアップに陥る可能性があった。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、解析部と、応答部と、切り替え部を有するエラー応答回路が提供される。解析部は、第１の回路部から第２の回路部へ送信される命令を解析して第１の回路部と第２の回路部間のデータ転送状態を検出する。応答部は、第２の回路部が、第１の消費電力状態から、第１の消費電力状態より低い電力を消費する第２の消費電力状態となると、解析部で検出されるデータ転送状態に応じて、エラー信号を生成する。切り替え部は、第２の回路部が第２の消費電力状態となると、命令に対する第２の回路部から第１の回路部への応答信号の代わりに、応答部で生成されるエラー信号を第１の回路部へ送信する。
【０００７】
また、発明の一観点によれば、命令の送信元である第１の回路部と、命令の送信先であり、命令に対する応答信号を第１の回路部に返す第２の回路部と、エラー応答回路を有する半導体集積回路が提供される。
【０００８】
エラー応答回路は、命令を解析して第１の回路部と第２の回路部間のデータ転送状態を検出する。そしてエラー応答回路は、第２の回路部が第１の消費電力状態から、第１の消費電力状態より低い電力を消費する第２の消費電力状態となると、データ転送状態に応じて、エラー信号を生成し、命令に対する応答信号の代わりに、エラー信号を第１の回路部へ送信する。
【発明の効果】
【０００９】
開示のエラー応答回路、半導体集積回路及びデータ転送制御方法によれば、ハングアップの発生を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の半導体集積回路の一例を示す図である。
【図２】第２の実施の形態の半導体集積回路の一例を示す図である。
【図３】スレーブが低消費電力化される際のデータ転送制御方法の一例を示すフローチャートである。
【図４】ＡＨＢ適用時のエラー応答回路の信号例を示す図である。
【図５】ＡＨＢ適用時の半導体集積回路の１つ目の動作例を示すタイミングチャートである。
【図６】ＡＨＢ適用時の半導体集積回路の２つ目の動作例を示すタイミングチャートである。
【図７】ＡＨＢ適用時の半導体集積回路の３つ目の動作例を示すタイミングチャートである。
【図８】ＡＨＢ適用時の半導体集積回路の状態遷移の一例を示す図である。
【図９】ＡＰＢ適用時のエラー応答回路の信号例を示す図である。
【図１０】ＡＸＩ適用時のエラー応答回路の信号例を示す図である。
【図１１】ＡＸＩ適用時の半導体集積回路のライト転送時の動作例を示すタイミングチャートである。
【図１２】ＡＸＩ適用時の半導体集積回路のリード転送時の動作例を示すタイミングチャートである。
【図１３】ＡＸＩ適用時の半導体集積回路の状態遷移の一例を示す図である（その１）。
【図１４】ＡＸＩ適用時の半導体集積回路の状態遷移の一例を示す図である（その２）。
【図１５】本実施の形態の半導体集積回路の変形例を示す図である。
【発明を実施するための形態】
【００１１】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体集積回路の一例を示す図である。
【００１２】
半導体集積回路１０は、転送命令などの命令の送信元である回路部（以下マスタと呼ぶ）１１と、その命令の送信先であり、その命令に対する応答信号をマスタ１１に返す回路部（以下スレーブと呼ぶ）１２と、内部バス１３、電力制御部１４を有している。さらに、本実施の形態の半導体集積回路１０は、エラー応答回路１５を有している。図１の例では、エラー応答回路１５は、内部バス１３と、スレーブ１２間に設けられているが、これに限定されず、エラー応答回路１５は、マスタ１１と内部バス１３の間に設けられていてもよい。
【００１３】
なお、図１では、各部の間で送受信される信号の流れが矢印で示されている。
電力制御部１４は、電力制御信号を出力し、スレーブ１２の電力状態を制御する。電力制御信号は、たとえば、スレーブ１２の電源電圧の制御、またはスレーブ１２の動作クロックの制御を行うことで、スレーブ１２の電力状態を制御する。なお、図１の例では、電力制御信号が直接スレーブ１２に入力されるようにしているが、スレーブ１２に電源電圧を供給する回路部や、スレーブ１２に動作クロックを供給する回路部に対して上記電力制御信号が入力されるようにしてもよい。それらの回路部については図示を省略している。
【００１４】
また、電力制御信号は、エラー応答回路１５にも入力される。なお、エラー応答回路１５に入力される電力制御信号と、スレーブ１２に入力される電力制御信号とは同じものでなくてもよい。また、以下の説明では、マスタ１１とエラー応答回路１５は、スレーブ１２とは同時に低消費電力状態にはならず、通常動作を行う電力状態であるものとする。
【００１５】
エラー応答回路１５は、解析部１５ａ、応答部１５ｂ、切り替え部１５ｃを有している。
解析部１５ａは、マスタ１１からスレーブ１２へ送信される命令を解析してマスタ−スレーブ間のデータ転送状態を検出する。
【００１６】
応答部１５ｂは、スレーブ１２が、通常動作を行う消費電力状態から、それより低い電力を消費する低消費電力状態（応答信号を出力しない状態）となると、解析部１５ａで検出されるデータ転送状態に応じてエラー信号を生成する。
【００１７】
たとえば、応答部１５ｂは、マスタ−スレーブ間でデータ転送中のとき、スレーブ１２が低消費電力状態になったことを切り替え部１５ｃから通知されると、エラー信号を生成する。また、スレーブ１２が低消費電力状態であるときに、マスタ１１によるスレーブ１２へのデータ転送が開始したことを解析部１５ａが検出したときにも、応答部１５ｂはエラー信号を生成する。
【００１８】
切り替え部１５ｃは、電力制御信号からスレーブ１２が低消費電力状態であるか否かを検出する。そして、切り替え部１５ｃは、スレーブ１２が低消費電力状態となると、マスタ１１が送信する命令に対するスレーブ１２からの応答信号の代わりに、応答部１５ｂで生成されたエラー信号をマスタ１１へ送信するように切り替える。
【００１９】
以下、第１の実施の形態の半導体集積回路１０の動作の一例を説明する。
電力制御部１４から出力される電力制御信号が、非低消費電力状態を指示するものである場合には、マスタ１１が送信した転送命令に応じた応答信号がスレーブ１２から出力される。切り替え部１５ｃは、その応答信号を、内部バス１３を介してマスタ１１に通知することで、データ転送が行われる。
【００２０】
データ転送中、電力制御信号が低消費電力化を指示するものとなると、図１のように、スレーブ１２はマスタ１１からの転送命令に対して応答不可となる。応答部１５ｂは、解析部１５ａで検出される転送状態が転送中であるとき、切り替え部１５ｃからの信号によりスレーブ１２が低消費電力化を指示されていることを通知されると、エラー信号を生成する。
【００２１】
切り替え部１５ｃは、電力制御信号が低消費電力化を指示するものとなると、スレーブ１２からの応答信号の代わりに、応答部１５ｂで生成されたエラー信号をマスタ１１に対して送信するように経路を切り替える。これにより、マスタ１１は転送が失敗したことを検出でき、転送の中止などの処理を行うことができる。
【００２２】
一方、スレーブ１２が低消費電力状態のときに、マスタ１１がデータ転送を開始する旨の命令をスレーブ１２に送信したときも同様に、応答部１５ｂでエラー信号が生成され、切り替え部１５ｃはそのエラー信号をマスタ１１に対して送信する。これにより、マスタ１１は転送が失敗したことを検出でき、転送の中止などの処理を行うことができる。
【００２３】
このように、第１の実施の形態の半導体集積回路１０では、スレーブ１２が低消費電力状態で応答を返せないときでも、エラー応答回路１５がエラー信号をマスタ１１に送信することにより、マスタ−スレーブ間のデータ転送時のハングアップの発生を抑制できる。
【００２４】
なお、上記では、応答部１５ｂは、電力制御信号が入力される切り替え部１５ｃからの信号により、スレーブ１２が低消費電力化を指示されていることを検出するものとしたが、応答部１５ｂにも上記の電力制御信号が入力されるようにしてもよい。
【００２５】
（第２の実施の形態）
図２は、第２の実施の形態の半導体集積回路の一例を示す図である。
半導体集積回路２０は、複数のマスタ２１−１，２１−２，…，２１−ｍ、複数のスレーブ２２−１，２２−２，…，２２−ｎ、内部バス２３、システムモードコントローラ２４、複数のエラー応答回路２５−１，２５−２，…，２５−ｎを有している。
【００２６】
図２の例では、エラー応答回路２５−１〜２５−ｎは各スレーブ２２−１〜２２−ｎと内部バス２３との間に設けられているが、これに限定されずエラー応答回路２５−１〜２５−ｎは、各マスタ２１−１〜２１−ｍと内部バス２３の間に設けられていてもよい。
【００２７】
また、図２では、３つ以上のマスタ２１−１〜２１−ｍ、スレーブ２２−１〜２２−ｎ、エラー応答回路２５−１〜２５−ｎを示しているが、この数に限定されず、ｍ，ｎは１以上の任意の値となる。
【００２８】
システムモードコントローラ２４は、前述の電力制御部１４の機能を有し、電力制御信号を出力し、スレーブ２２−１〜２２−ｎの電力状態を制御する。なお、システムモードコントローラ２４は、スレーブ２２−１〜２２−ｎに電源電圧を供給する回路部や、スレーブ２２−１〜２２−ｎに動作クロックを供給する回路部に対して電力制御信号を供給するようにしてもよい。その場合、システムモードコントローラ２４は、間接的にスレーブ２２−１〜２２−ｎの電力状態を制御する。
【００２９】
また、システムモードコントローラ２４は、電力制御信号をエラー応答回路２５−１〜２５−ｎにも供給する。なお、エラー応答回路２５−１〜２５−ｎに供給される電力制御信号と、スレーブ２２−１〜２２−ｎに供給される電力制御信号とは同じものでなくてもよい。
【００３０】
また、以下の説明では、マスタ２１−１〜２１−ｍと、エラー応答回路２５−１〜２５−ｎは、電力制御信号によってスレーブ２２−１〜２２−ｎと同時には低消費電力状態とはならないものとする。つまり、切り替え部２５ｃに入力される電力制御信号は、スレーブ２２−１〜２２−ｎが低消費電力状態であるか否かを認識するために用いられる。
【００３１】
エラー応答回路２５−１は、解析部２５ａ、応答部２５ｂ、切り替え部２５ｃを有している。他のエラー応答回路２５−２〜２５−ｎについても同様の要素を有しているが図示を省略している。
【００３２】
解析部２５ａは、マスタ２１−１〜２１−ｍの何れかからスレーブ２２−１へ送信される命令を解析してマスタ−スレーブ間のデータ転送状態を検出する。データ転送状態は、データ転送規格に応じたものとなる。データ転送規格として、ＡＭＢＡ（Advanced Microcontroller Bus Architecture）がある。また、ＡＭＢＡでは、複数のバス規格が定義されている。たとえば、バス規格には、ＡＨＢ（Advanced High-performance Bus）、ＡＰＢ（Advanced Peripheral Bus）、ＡＸＩ（Advanced eXtensible Interface）などがある。
【００３３】
解析部２５ａは上記のような規格の命令を解析してデータ転送状態を検出する。また、解析部２５ａは、記憶部２５ｄを有しており、転送命令や、検出したデータ転送状態に関する情報（以下転送情報と呼ぶことにする）を、記憶部２５ｄに記憶する。なお、記憶部２５ｄは、解析部２５ａの外に設けられていてもよい。
【００３４】
応答部２５ｂは、記憶部２５ｄに記憶されている転送情報を取得して、データ転送状態に応じた応答信号を生成する。また、応答部２５ｂは、スレーブ２２−１が低消費電力状態となると、データ転送状態に応じてエラー信号を生成する。たとえば、応答部２５ｂは、マスタ−スレーブ間でデータ転送中のとき、スレーブ２２−１が低消費電力状態になったことを切り替え部２５ｃから通知されると、エラー信号を生成する。また、スレーブ２２−１が低消費電力状態であるときに、マスタ２１−１〜２１−ｍの何れかによるスレーブ２２−１へのデータ転送が開始したことを解析部２５ａが検出したときにも、応答部２５ｂはエラー信号を生成する。
【００３５】
切り替え部２５ｃは、システムモードコントローラ２４から供給される電力制御信号からスレーブ２２−１が低消費電力状態であるか否かを検出する。そして、切り替え部２５ｃは、スレーブ２２−１が低消費電力状態となると、マスタ２１−１〜２１−ｍの何れかが送信する命令に対するスレーブ２２−１からの応答信号の代わりに、応答部２５ｂで生成されたエラー信号を、命令の送信元に返す。
【００３６】
なお、上記の例では、応答部２５ｂは、切り替え部２５ｃから、スレーブ２２−１が低消費電力状態であるか否かを検出しているがこれに限定されない。応答部２５ｂにも電力制御信号が入力されるようにして、応答部２５ｂも、スレーブ２２−１が低消費電力状態であるか否かを検出できるようにしてもよい。
【００３７】
以下、第２の実施の形態の半導体集積回路２０を用いたデータ転送制御方法の例を説明する。
（データ転送制御方法）
図３は、スレーブが低消費電力化される際のデータ転送制御方法の一例を示すフローチャートである。
【００３８】
たとえば、ファームウェアによって低消費電力化を実行する旨の命令が発行されると（ステップＳ１０）、システムモードコントローラ２４はスレーブ２２−１〜２２−ｎを低消費電力状態に制御する（ステップＳ１１）。このとき、各エラー応答回路２５−１〜２５−ｎの切り替え部２５ｃは、スレーブ２２−１〜２２−ｎからマスタ２１−１〜２１−ｍへの応答信号の代わりに、応答部２５ｂで生成された信号がマスタ２１−１〜２１−ｍへ送信されるように経路を切り替える。なお、スレーブ２２−１〜２２−ｎは、個々に低消費電力状態となるか否かが制御されるようにしてもよい。
【００３９】
そして、応答部２５ｂは、各エラー応答回路２５−１〜２５−ｎの解析部２５ａの記憶部２５ｄに記憶されている転送情報を参照し、データ転送が実行中か否か判定する（ステップＳ１２）。データ転送が実行中の場合には、応答部２５ｂはエラー信号を生成し出力する。たとえば、マスタ２１−１とスレーブ２２−１間でデータ転送が実行されていた場合には、切り替え部２５ｃは、応答部２５ｂで生成されたエラー信号をマスタ２１−１に送信する（ステップＳ１３）。
【００４０】
データ転送が実行中でない場合、またはステップＳ１３の処理の後、ステップＳ１４の処理が行われる。ステップＳ１４の処理では、応答部２５ｂは、転送情報と切り替え部２５ｃからの信号をもとに、スレーブ２２−１〜２２−ｎが低消費電力状態であるときに、マスタ２１−１〜２１−ｍの何れかから転送命令が発行されたか否かを判定する。
【００４１】
転送命令が発行された場合には、応答部２５ｂはエラー信号を生成し出力する。たとえば、マスタ２１−１が低消費電力状態のスレーブ２２−１に対して転送命令を発行した場合、エラー応答回路２５−１の応答部２５ｂはエラー信号を生成する。そして、切り替え部２５ｃは、応答部２５ｂで生成されたエラー信号をマスタ２１−１に送信する（ステップＳ１５）。
【００４２】
転送命令が発行されていない場合または、ステップＳ１５の後、ステップＳ１６の処理が行われる。ステップＳ１６の処理では、応答部２５ｂは、切り替え部２５ｃからの信号をもとに、スレーブ２２−１〜２２−ｎの低消費電力状態が終了したか否かを判断する（ステップＳ１６）。低消費電力状態が終了していない場合には、ステップＳ１４からの処理が繰り返される。低消費電力状態が終了した場合、各エラー応答回路２５−１〜２５−ｎの切り替え部２５ｃは、スレーブ２２−１〜２２−ｎからの応答信号がマスタ２１−１〜２１−ｍへ送信されるよう切り替えを実行する（ステップＳ１７）。これにより、スレーブ２２−１〜２２−ｎの低消費電力状態への移行時と復帰時の、データ転送制御処理が終了する。
【００４３】
次に、３種類のバス規格（ＡＨＢ、ＡＰＢ，ＡＸＩ）が適用される場合を例にして、各規格の適用時における半導体集積回路２０の動作の例をより詳細に説明する。
（ＡＨＢ適用時のエラー応答回路の信号例）
図４は、ＡＨＢ適用時のエラー応答回路の信号例を示す図である。図４では、図２に示したエラー応答回路２５−１内の信号例が示されている。他のエラー応答回路２５−２〜２５−ｎでも同様の信号が用いられる。
【００４４】
解析部２５ａには、マスタ側からの命令（たとえば、どのような転送を行うかなどを示す命令）と、動作クロックを生成する図示しない回路部からクロック信号ＨＣＬＫが入力される。
【００４５】
応答部２５ｂには、解析部２５ａで解析され、記憶部２５ｄに格納された転送情報と、切り替え部２５ｃから、スレーブが低消費電力状態になったことを示す信号ＳＥＬと、クロック信号ＨＣＬＫが入力される。また、応答部２５ｂは、信号ＨＲＥＡＤＹ，ＨＲＥＳＰ，ＨＲＤＡＴＡを出力する。これらは、スレーブ側から出力されるものと同じ種類の信号である。
【００４６】
信号ＨＲＥＡＤＹは、転送を延長するか否かを示す信号である。信号ＨＲＥＳＰは、転送のステータスを示す信号である。転送のステータスとしては、“ＯＫ”、“ＥＲＲＯＲ”、“ＲＥＴＲＹ”などがある。信号ＨＲＤＡＴＡは、読み出し時にスレーブ側からマスタ側へ送られるデータである。なお、応答部２５ｂから出力される信号ＨＲＤＡＴＡは、データが任意の値である状態を示す。
【００４７】
切り替え部２５ｃには、システムモードコントローラ２４から電力制御信号が入力され、スレーブ側及び応答部２５ｂから信号ＨＲＥＡＤＹ，ＨＲＥＳＰ，ＨＲＤＡＴＡが入力される。また、切り替え部２５ｃには、クロック信号ＨＣＬＫが入力される。また、切り替え部２５ｃは、電力制御信号に応じて、スレーブ側と応答部２５ｂの何れかから入力される信号ＨＲＥＡＤＹ，ＨＲＥＳＰ，ＨＲＤＡＴＡを出力する。
【００４８】
（ＡＨＢ適用時の半導体集積回路２０の動作例）
以下では、マスタ２１−１とスレーブ２２−１間でデータ転送を行う場合を例にして説明する。
【００４９】
図５は、ＡＨＢ適用時の半導体集積回路の１つ目の動作例を示すタイミングチャートである。マスタ２１−１、スレーブ２２−１、応答部２５ｂにおける信号の様子が示されている。
【００５０】
マスタ２１−１における信号としては、クロック信号ＨＣＬＫと、マスタ２１−１から出力される命令またはデータとして信号ＨＴＲＡＮＳ，ＨＡＤＤＲ，ＨＢＵＲＳＴ，ＨＷＲＩＴＥ，ＨＳＩＺＥ，ＨＷＤＡＴＡがある。さらに、マスタ２１−１に入力される信号ＨＲＥＡＤＹ，ＨＲＥＳＰが示されている。
【００５１】
信号ＨＴＲＡＮＳは、転送の種類を示す信号である。転送の種類としては、“ＮＯＮＳＥＱＵＥＮＴＩＡＬ”、“ＳＥＱＵＥＮＴＩＡＬ”、“ＩＤＬＥ”、“ＢＵＳＹ”がある。信号ＨＡＤＤＲは、アドレスを示す信号である。信号ＨＢＵＲＳＴは、バースト転送の種類を示す信号である。信号ＨＷＲＩＴＥは、ライト転送か否かを示す信号である。信号ＨＳＩＺＥは、転送サイズを示す信号である。
【００５２】
スレーブ２２−１に供給される信号としては、たとえば、クロック信号ＨＣＬＫ、信号ＨＳＥＬ，ＨＴＲＡＮＳ，ＨＡＤＤＲ，ＨＢＵＲＳＴ，ＨＷＲＩＴＥ，ＨＳＩＺＥ，ＨＷＤＡＴＡ、電力制御信号などがある。スレーブ２２−１が出力する信号としては、たとえば、信号ＨＲＥＡＤＹ，ＨＲＥＳＰなどがある。なお、スレーブ２２−１に供給される信号ＨＳＥＬは、図示しないデコーダから供給されるスレーブ選択信号である。
【００５３】
なお、以下に説明する例では、電力制御信号が“１”（信号レベルがＨ（High）レベル）のときに、スレーブ２２−１が低消費電力状態となるものとする。また、電力制御信号が“０”（信号レベルがＬ（Low）レベル）のときに、スレーブ２２−１は非低消費電力状態となるものとする。
【００５４】
応答部２５ｂに供給される信号としては、クロック信号ＨＣＬＫ、信号ＳＥＬがある。また応答部２５ｂが出力する信号としては、たとえば、信号ＨＲＥＡＤＹ，ＨＲＥＳＰなどがある。なお、応答部２５ｂに供給される信号ＳＥＬは、切り替え部２５ｃから供給され、スレーブ２２−１が低消費電力状態（非選択状態）にあるか否かを示す。
【００５５】
図５において、タイミングｔ１までは、電力制御信号が“０”であり、スレーブ２２−１は非低消費電力状態である。このとき、マスタ２１−１とスレーブ２２−１の間でライト転送が行われる。図５の例では、“ＮＯＮＳＥＱＵＥＮＴＩＡＬ（略してＮＳＥＱと表記されている）”と“ＳＥＱＵＥＮＴＩＡＬ（略してＳＥＱと表記されている）”で、４ビート・バースト転送を行うＣｏｎｔｒｏｌ＿Ａという制御で転送が行われている。信号ＨＡＤＤＲでは、アドレスＡ、Ａ＋４、Ａ＋８、Ａ＋１２が指定されている。また、信号ＨＷＤＡＴＡとしてライトデータＤＡＴＡ＿Ａがマスタ２１−１から出力されている。
【００５６】
スレーブ２２−１は、信号ＨＳＥＬが“１”になると、信号ＨＴＲＡＮＳ，ＨＡＤＤＲ，ＨＢＵＲＳＴ，ＨＷＲＩＴＥ，ＨＳＩＺＥを受け、ライトデータＤＡＴＡ＿Ａを受信する。また、スレーブ２２−１は、転送完了を示す信号ＨＲＥＡＤＹと、転送が正しく行われていることを示す“ＯＫ”という転送ステータスを示す信号ＨＲＥＳＰを出力する。
【００５７】
また、タイミングｔ１までは、応答部２５ｂもスレーブ２２−１と同様の、ＩＤＬＥ状態を示す信号ＨＲＥＡＤＹ，ＨＲＥＳＰを出力する。
タイミングｔ１において、電力制御信号が“１”になると、スレーブ２２−１は、低消費電力状態になり、応答ができなくなる。このとき、切り替え部２５ｃは、応答部２５ｂから出力される信号をマスタ２１−１に送信するように応答経路を切り替える。また、切り替え部２５ｃは、信号ＳＥＬを“１”にする。応答部２５ｂは、信号ＳＥＬの変化を受けて、解析部２５ａの記憶部２５ｄに記憶されている転送情報（信号ＨＴＲＡＮＳなどの値）から転送が実行中と判定し、信号ＨＲＥＡＤＹを“０”とし、ウェイトを発生させる。マスタ２１−１では、タイミングｔ２でウェイトを検出する。これにより、マスタ２１−１からのライト転送が一時保留され、タイミング調整が図られる。
【００５８】
また、応答部２５ｂは、タイミングｔ２で、転送ステータスを“ＥＲＲＯＲ”とした信号ＨＲＥＳＰを２クロックサイクル分出力する。また、応答部２５ｂは、タイミングｔ３で信号ＨＲＥＡＤＹを“１”とする。これを受けて、マスタ２１−１は、タイミングｔ３及びｔ４で、正常なライト転送ができなかったことを検出する。
【００５９】
応答部２５ｂでは、タイミングｔ４で、解析部２５ａの記憶部２５ｄに記憶されている転送情報から転送が中断中と判定し、転送ステータスを“ＯＫ”とした信号ＨＲＥＳＰを出力し、信号ＨＲＥＡＤＹについては“１”の状態としておく。マスタ２１−１は、この信号をタイミングｔ５で検出する。
【００６０】
しかし、タイミングｔ５では、スレーブ２２−１が低消費電力状態であるにもかかわらず、マスタ２１−１による転送命令が発行されている。図５の例では、“ＮＯＮＳＥＱＵＥＮＴＩＡＬ”で、Ｃｏｎｔｒｏｌ＿Ｂという制御でライト転送が行われる。信号ＨＡＤＤＲでは、アドレスＢが指定されている。また、タイミングｔ６で、信号ＨＷＤＡＴＡとしてライトデータＤＡＴＡ＿Ｂがマスタ２１−１から出力されている。
【００６１】
応答部２５ｂは、タイミングｔ６で、解析部２５ａの記憶部２５ｄに記憶されている転送情報から転送が実行中と判定し、転送ステータスを再び“ＥＲＲＯＲ”とした信号ＨＲＥＳＰを、２クロックサイクル分出力する。また、応答部２５ｂは、タイミングｔ７で信号ＨＲＥＡＤＹを“１”とする。これを受けて、マスタ２１−１は、タイミングｔ７及びｔ８で正常なライト転送ができなかったことを検出する。
【００６２】
タイミングｔ９で、電力制御信号が“０”になると、スレーブ２２−１は低消費電力状態から復帰する。このとき、切り替え部２５ｃは、転送が未実行であることを確認すると、スレーブ２２−１から出力される信号ＨＲＥＡＤＹ，ＨＲＥＳＰをマスタ２１−１に送信するように切り替える。
【００６３】
次に、ＡＨＢ適用時の半導体集積回路２０の２つ目の動作例を説明する。
図６は、ＡＨＢ適用時の半導体集積回路の２つ目の動作例を示すタイミングチャートである。図６では、マスタ２１−１がアドレスフェーズの転送命令を全て発行した後、データフェーズの応答を待っている状態のときに、スレーブ２２−１が低消費電力化された場合の動作例が示されている。図示されている信号の種類は、図５と同じである。
【００６４】
タイミングｔ１０において、マスタ２１−１によりアドレスＡ＋１２までの指定が終了したときに、電力制御信号が“１”となり、スレーブ２２−１は、低消費電力状態になり、応答ができなくなっている。このとき、切り替え部２５ｃは、応答部２５ｂから出力される信号をマスタ２１−１に送信するように切り替える。また、切り替え部２５ｃは、信号ＳＥＬを“１”にする。応答部２５ｂでは、解析部２５ａの記憶部２５ｄに記憶されている転送情報から転送が実行中と判定し、信号ＨＲＥＡＤＹを“０”とし、ウェイトを発生させる。マスタ２１−１では、タイミングｔ１１でウェイトを検出する。これにより、マスタ２１−１からのライト転送が一時保留され、タイミング調整が図られる。
【００６５】
また、応答部２５ｂは、タイミングｔ１１で、転送ステータスを“ＥＲＲＯＲ”とした信号ＨＲＥＳＰを、２クロックサイクル分出力する。また、応答部２５ｂは、タイミングｔ１２で信号ＨＲＥＡＤＹを“１”とする。これを受けて、マスタ２１−１は、タイミングｔ１２及びｔ１３で、正常なライト転送ができなかったことを検出する。
【００６６】
応答部２５ｂでは、タイミングｔ１３で、解析部２５ａの記憶部２５ｄに記憶されている転送情報から転送が中断中と判定し、転送ステータスを“ＯＫ”とした信号ＨＲＥＳＰを出力し、信号ＨＲＥＡＤＹについては“１”の状態としておく。マスタ２１−１では、この信号をタイミングｔ１４で検出する。
【００６７】
次に、ＡＨＢ適用時の半導体集積回路２０の３つ目の動作例を説明する。
図７は、ＡＨＢ適用時の半導体集積回路の３つ目の動作例を示すタイミングチャートである。図７では、スレーブ２２−１が低消費電力状態のときに、マスタ２１−１が転送を開始し、エラー応答回路２５−１によるエラー応答中にスレーブ２２−１の低消費電力状態が解除された場合の動作例が示されている。図示されている信号の種類は、図５及び図６と同じである。
【００６８】
スレーブ２２−１が低消費電力状態のときに、タイミングｔ２０で、マスタ２１−１が転送命令を発行している。図７の例では、“ＮＯＮＳＥＱＵＥＮＴＩＡＬ”で、Ｃｏｎｔｒｏｌ＿Ｃという制御でライト転送が行われる。信号ＨＡＤＤＲでは、アドレスＣが指定されている。また、タイミングｔ２１で、信号ＨＷＤＡＴＡとしてライトデータＤＡＴＡ＿Ｃがマスタ２１−１から出力されている。
【００６９】
応答部２５ｂは、タイミングｔ２１において、解析部２５ａの記憶部２５ｄに記憶されている転送情報から転送が開始されることを検出し、信号ＨＲＥＡＤＹを“０”にする。また、応答部２５ｂは、転送ステータスを“ＥＲＲＯＲ”とした信号ＨＲＥＳＰを、２クロックサイクル分出力する。また、応答部２５ｂは、タイミングｔ２２で信号ＨＲＥＡＤＹを“１”とする。これを受けて、マスタ２１−１は、タイミングｔ２２及びｔ２３で、正常なライト転送ができなかったことを検出する。
【００７０】
さらに、図７の例では、タイミングｔ２２において電力制御信号が“０”となり、スレーブ２２−１は、低消費電力状態から解除される。しかし、切り替え部２５ｃは、応答部２５ｂによるマスタ２１−１へのエラー応答中であるため、応答部２５ｂからマスタ２１−１への信号の送信を維持する。タイミングｔ２３で、エラー応答が終了し、転送が未実行であることを確認すると、切り替え部２５ｃは、スレーブ２２−１から出力される信号ＨＲＥＡＤＹ，ＨＲＥＳＰなどをマスタ２１−１に送信するように切り替える。エラー応答は２クロックサイクル分実行することが規格で決められているので、上記のような処理によれば、規格違反が発生することを抑制できる。
【００７１】
図８は、ＡＨＢ適用時の半導体集積回路の状態遷移の一例を示す図である。
電力制御信号がスレーブ２２−１の非低消費電力化を指示している場合（たとえば、“０”の場合）、半導体集積回路２０の状態は、スレーブ２２−１からマスタ２１−１への応答経路を確立するように、経路の切り替えが行われる状態Ｔ１となる。一方、電力制御信号がスレーブ２２−１の低消費電力化を指示している場合（たとえば、“１”の場合）には、半導体集積回路２０の状態は、状態Ｔ３に遷移する。
【００７２】
半導体集積回路２０の状態は、状態Ｔ１の後、実行中のライトまたはリードの転送命令により、記憶部２５ｄに記憶されている前の転送命令が更新される状態Ｔ２となる。状態Ｔ２において、電力制御信号がスレーブ２２−１の非低消費電力化を指示している場合には、状態Ｔ２が維持される。一方、状態Ｔ２において、電力制御信号がスレーブ２２−１の低消費電力化を指示する場合には、半導体集積回路２０の状態は、状態Ｔ３に遷移する。
【００７３】
状態Ｔ３〜Ｔ８では、スレーブ２２−１は低消費電力状態となっている。状態Ｔ３において、エラー応答回路２５−１の解析部２５ａは、記憶部２５ｄに更新された転送命令を解析してデータ転送状態を検出する。転送が未実行である場合、半導体集積回路２０の状態は、応答部２５ｂがＯＫ応答を行う状態Ｔ４（転送ステータスを“ＯＫ”とした信号ＨＲＥＳＰと“１”の信号ＨＲＥＡＤＹを出力する状態）に遷移する。一方、転送が実行中である場合、半導体集積回路２０の状態は、応答部２５ｂがウェイトを発生させる状態Ｔ５に遷移する。
【００７４】
状態Ｔ４または状態Ｔ５の後に表記されている状態Ｔ６は、切り替え部２５ｃにより、応答部２５ｂからマスタ２１−１への応答経路を確立するように、経路の切り替えが行われている状態である。なお、状態Ｔ６は、状態Ｔ４または状態Ｔ５と同一タイミングで現れる。たとえば、前述した、図５では、電力制御信号が“１”になって、切り替え部２５ｃにより、応答部２５ｂからマスタ２１−１への応答経路を確立するタイミングｔ１で、信号ＨＲＥＡＤＹが“０”となり、ウェイトが発生している。
【００７５】
状態Ｔ６の後、半導体集積回路２０の状態は、転送が未実行である場合には、応答部２５ｂがＯＫ応答を行う状態Ｔ７に遷移する。一方、状態Ｔ６の後、半導体集積回路２０の状態は、転送が実行中である場合には、応答部２５ｂがエラー応答を行う状態Ｔ８に遷移する。
【００７６】
状態Ｔ７のとき、電力制御信号が、非低消費電力化を指示すると、半導体集積回路２０の状態は、状態Ｔ１に戻る。また、状態Ｔ７のとき、マスタ２１−１によるスレーブ２２−１への新たなデータ転送が発生した場合、半導体集積回路２０の状態は、状態Ｔ８に遷移する。
【００７７】
状態Ｔ８のとき、マスタ２１−１がスレーブ２２−１との間でデータ転送を中止した場合、状態Ｔ７に遷移する。また、状態Ｔ８のとき、マスタ２１−１がエラー応答を無視してデータ転送を継続した場合、もしくは、マスタ２１−１がスレーブ２２−１へのデータ転送を中止したが、次の新たなデータ転送が発生した場合、状態Ｔ８が維持される。
【００７８】
以上のように、本実施の形態の半導体集積回路２０では、転送中にスレーブ２２−１が低消費電力状態となったり、低消費電力状態のときに転送が発生しても、エラー応答回路２５−１が、マスタ２１−１にエラー応答を返せる。このため、マスタ２１−１のハングアップの発生を抑制できる。また、システム全体のハングアップの発生を抑制することもできる。
【００７９】
（ＡＰＢ適用時のエラー応答回路の信号例）
図９は、ＡＰＢ適用時のエラー応答回路の信号例を示す図である。図９でも、図２に示したエラー応答回路２５−１内の信号例が示されている。他のエラー応答回路２５−２〜２５−ｎでも同様の信号が用いられる。
【００８０】
解析部２５ａには、マスタ側からの命令（どのような転送を行うかなどを示す命令）と、動作クロックを生成する図示しない回路部からクロック信号ＰＣＬＫが入力される。
応答部２５ｂには、解析部２５ａで解析され、記憶部２５ｄに格納された転送情報と、切り替え部２５ｃから、スレーブが低消費電力状態になったことを示す信号ＳＥＬと、クロック信号ＰＣＬＫが入力される。また、応答部２５ｂは、信号ＰＲＥＡＤＹ，ＰＳＬＶＥＲＲ，ＰＲＤＡＴＡを出力する。これらは、スレーブ側から出力されるものと同じ種類の信号である。
【００８１】
信号ＰＲＥＡＤＹは、転送を延長するか否かを示す信号である。信号ＰＳＬＶＥＲＲは、転送が失敗したことを示す信号である。信号ＰＲＤＡＴＡは、読み出し時にスレーブ側からマスタ側へ送られるデータである。なお、応答部２５ｂから出力される信号ＰＲＤＡＴＡは、データが任意の値である状態を示す。
【００８２】
切り替え部２５ｃには、システムモードコントローラ２４から電力制御信号が入力され、スレーブ側及び応答部２５ｂから信号ＰＲＥＡＤＹ，ＰＳＬＶＥＲＲ，ＰＲＤＡＴＡが入力される。また、切り替え部２５ｃには、クロック信号ＰＣＬＫが入力される。また、切り替え部２５ｃは、電力制御信号に応じて、スレーブ側と応答部２５ｂの何れかから入力される信号ＰＲＥＡＤＹ，ＰＳＬＶＥＲＲ，ＰＲＤＡＴＡを出力する。
【００８３】
（ＡＰＢ適用時の半導体集積回路２０の動作例）
ＡＰＢ適用時の半導体集積回路２０の動作は、ＡＨＢ適用時のものとほぼ同じである。
ＡＰＢ適用時では、図９に示したような信号を用いて動作が行われる。応答部２５ｂは、スレーブ２２−１が低消費電力状態となったことを切り替え部２５ｃから出力される信号ＳＥＬで検出し、転送状態に応じた応答信号を生成する。切り替え部２５ｃは、スレーブ２２−１が低消費電力状態となったことを電力制御信号で検出すると、マスタ２１−１に送信する信号ＰＲＥＡＤＹ，ＰＳＬＶＥＲＲ，ＰＲＤＡＴＡとして、応答部２５ｂで生成されたものを選択する。
【００８４】
応答部２５ｂは、スレーブ２２−１が低消費電力状態となると、マスタ２１−１とスレーブ２２−１が転送中の場合には、信号ＰＲＥＡＤＹを“０”にしてウェイトを発生させる。その後、信号ＰＳＬＶＥＲＲと信号ＰＲＥＡＤＹによりエラー応答を発生させる。
【００８５】
以上のように、本実施の形態の半導体集積回路２０では、ＡＰＢを適用した場合にも、ＡＨＢ適用時と同様の効果が得られるとともに、ＡＰＢの規格にしたがった転送を行うことができる。
【００８６】
（ＡＸＩ適用時のエラー応答回路の信号例）
図１０は、ＡＸＩ適用時のエラー応答回路の信号例を示す図である。図１０でも、図２に示したエラー応答回路２５−１内の信号例が示されている。他のエラー応答回路２５−２〜２５−ｎでも同様の信号が用いられる。
【００８７】
解析部２５ａには、マスタ側からの命令（どのような転送を行うかなどを示す命令）と、動作クロックを生成する図示しない回路部からクロック信号ＡＣＬＫが入力される。
応答部２５ｂには、解析部２５ａで解析され、記憶部２５ｄに格納された転送情報と、切り替え部２５ｃから、スレーブが低電力状態になったことを示す信号ＳＥＬと、クロック信号ＡＣＬＫが入力される。また、応答部２５ｂは、ライト転送時の応答信号、リード転送時の応答信号、信号ＲＤＡＴＡを出力する。これらは、スレーブ側から出力されるものと同じ種類の信号である。
【００８８】
ライト転送時の応答信号には、信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹ，ＢＲＥＳＰ，ＢＶＡＬＩＤなどがある。信号ＡＷＲＥＡＤＹは、スレーブ側がライトアドレスの受信準備ができているか否かを示す信号である。信号ＷＲＥＡＤＹは、スレーブ側がライトデータの受信準備ができているか否かを示す信号である。信号ＢＲＥＳＰは、ライト転送時の転送ステータスを示す信号である。転送ステータスには、スレーブエラー状態を返す際に用いられる“ＳＬＶＥＲＲ”などがある。信号ＢＶＡＬＩＤは、有効な応答が存在するか否かを示す信号である。
【００８９】
リード転送時の応答信号には、信号ＡＲＲＥＡＤＹ，ＲＲＥＳＰなどがある。信号ＡＲＲＥＡＤＹは、スレーブ側がリードアドレスの受信準備ができているか否かを示す信号である。信号ＲＲＥＳＰは、リード転送時の転送ステータスを示す信号である。転送ステータスには、スレーブ側がエラー状態を返す際に用いられる“ＳＬＶＥＲＲ”などがある。
【００９０】
信号ＲＤＡＴＡは、リード転送時にスレーブ側からマスタ側へ送られるリードデータである。なお、応答部２５ｂから出力される信号ＲＤＡＴＡは、データが任意の値である状態を示す。
【００９１】
切り替え部２５ｃには、システムモードコントローラ２４から電力制御信号が入力され、スレーブ側及び応答部２５ｂからライト転送時の応答信号、リード転送時の応答信号、信号ＲＤＡＴＡが入力される。また、切り替え部２５ｃには、クロック信号ＡＣＬＫが入力される。また、切り替え部２５ｃは、電力制御信号に応じて、スレーブ側と応答部２５ｂの何れかから入力されるライト転送時の応答信号、リード転送時の応答信号、信号ＲＤＡＴＡなどを出力する。
【００９２】
（ＡＸＩ適用時の半導体集積回路２０の動作例）
以下では、マスタ２１−１とスレーブ２２−１間でデータ転送（ライト転送及びリード転送）を行う場合を例にして、ＡＸＩ適用時の半導体集積回路２０の動作例を説明する。
【００９３】
図１１は、ＡＸＩ適用時の半導体集積回路のライト転送時の動作例を示すタイミングチャートである。マスタ２１−１、スレーブ２２−１、応答部２５ｂにおける信号の様子が示されている。
【００９４】
ライト転送時にマスタ２１−１に供給される信号としては、クロック信号ＡＣＬＫ、スレーブ２２−１またはエラー応答回路２５−１から通知される信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹ，ＢＶＡＬＩＤ，ＢＲＥＳＰなどのライト転送時の応答信号がある。また、マスタ２１−１が出力する信号ＢＲＥＡＤＹが図示されている。信号ＢＲＥＡＤＹは、マスタ２１−１がスレーブ側からの応答信号を受けられる状態にあるか否かを示す信号である。
【００９５】
さらに、図１１には、マスタ２１−１側における、ライトアドレスチャネル、ライトデータチャネル、ライトレスポンスチャネルの様子が示されている。ライトレスポンスチャネルには、上記のようなライト転送時の応答信号が伝達される。なお、図１１ではライトレスポンスチャネルを伝達するライト転送の応答信号をＷＲ−１，ＷＲ−２，ＷＲ−３，ＷＲ−４と表記している。
【００９６】
ライト転送時にスレーブ２２−１に供給される信号としては、たとえば、クロック信号ＡＣＬＫ、電力制御信号などがある。スレーブ２２−１が出力する信号としては、信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹ，ＢＶＡＬＩＤ，ＢＲＥＳＰがある。さらに、スレーブ２２−１側におけるライトアドレスチャネル、ライトデータチャネル、ライトレスポンスチャネルの様子が示されている。
【００９７】
応答部２５ｂに供給される信号としては、クロック信号ＡＣＬＫ、信号ＳＥＬがある。また応答部２５ｂが出力する信号としては信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹ，ＢＶＡＬＩＤ，ＢＲＥＳＰなどの応答信号がある。なお、応答部２５ｂに供給される信号ＳＥＬは、切り替え部２５ｃから供給され、スレーブ２２−１が低消費電力状態（非選択状態）にあるか否かを示す。さらに、図１１では、応答部２５ｂによって出力される応答信号が転送されるライトレスポンスチャネルの様子が示されている。
【００９８】
図１１において、タイミングｔ３０までは電力制御信号が“０”であり、スレーブ２２−１は非低消費電力状態である。このとき、マスタ２１−１とスレーブ２２−１の間でライトアドレスＷＡ−１，ＷＡ−２の指定と、ライトデータＷＤ−１のデータ転送が行われている。スレーブ２２−１が非低消費電力状態のとき、スレーブ２２−１及び応答部２５ｂから出力される信号ＢＲＥＳＰは、転送ステータスが“ＯＫ”となっている。
【００９９】
また、図１１の例では、タイミングｔ３０までは、応答部２５ｂもスレーブ２２−１と同様の信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹ，ＢＲＥＳＰを出力している。
図１１の動作例では、ライトレスポンスチャネルを伝達する応答信号ＷＲ−１によるマスタ−スレーブ間のハンドシェイクが成立する前の、ウェイト（信号ＢＲＥＡＤＹが“０”）状態のときに、電力制御信号が“１”となっている（タイミングｔ３０）。これにより、スレーブ２２−１は、低消費電力状態になり、応答ができなくなる。
【０１００】
このとき、切り替え部２５ｃは、応答部２５ｂから出力される信号をマスタ２１−１に送信するように切り替える。また、切り替え部２５ｃは、信号ＳＥＬを“１”にする。応答部２５ｂは、信号ＳＥＬの変化を受けて、解析部２５ａの記憶部２５ｄに記憶されている転送情報から転送が実行中と判定し、信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹを“０”とし、ウェイトを発生させる。また、マスタ２１−１は、タイミングｔ３１で、応答部２５ｂで発生したウェイトを検出する。
【０１０１】
信号ＢＲＥＡＤＹが“０”で、ライトレスポンスチャネルについてのハンドシェイクがウェイトされている状態のときは、スレーブ側の信号の変更が禁止されている。そのため、応答部２５ｂは、タイミングｔ３０から“１”の信号ＢＶＡＬＩＤを、信号ＢＲＥＡＤＹが“１”の状態を検出するまで発生させ、応答信号ＷＲ−１を維持し、マスタ２１−１に対してＯＫ応答をする。その後、応答部２５ｂは、タイミングｔ３１で、信号ＢＲＥＳＰで示される転送ステータスを“ＳＬＶＥＲＲ”に変更する。
【０１０２】
ところで、図１１の例では、ライトアドレスＷＡ−２の指定が終わり、ライトデータチャネルにおいて、タイミングｔ３０のライトデータＷＤ−２の転送開始時に、スレーブ２２−１が低消費電力状態になる。このときも応答部２５ｂはウェイトを発生するが、図１１の例では前述したウェイトと同じタイミングｔ３０で発生される。
【０１０３】
ウェイトの解除後、ライトデータチャネルへのライトデータＷＤ−２の転送が成立すると（タイミングｔ３４）、応答部２５ｂは応答信号ＷＲ−２を発生させ、信号ＢＶＡＬＩＤを、信号ＢＲＥＡＤＹが“１”の状態を検出するまで、“１”にしてスレーブエラー応答を行う。
【０１０４】
マスタ２１−１は、タイミングｔ３５でスレーブエラー応答を検出し、スレーブ２２−１でエラーが発生し、ライト転送ができなかったことを検出できる。
また、図１１の例では、ライトアドレスＷＡ−３の指定開始時に、スレーブ２２−１が低消費電力状態になる。このときも応答部２５ｂはウェイトを発生するが、図１１の例では前述したウェイトと同じタイミングｔ３０で発生される。
【０１０５】
ウェイトの解除後、応答部２５ｂは、ライトアドレスチャネルへのライトアドレスＷＡ−３の転送を成立させる（タイミングｔ３２）。マスタ２１−１によるライトデータチャネルへのライトデータＷＤ−２の転送後、応答部２５ｂは、ライトデータＷＤ−３の転送を成立させる（タイミングｔ３６）。そのタイミングで、応答部２５ｂは応答信号ＷＲ−３を発生させ、信号ＢＶＡＬＩＤを、信号ＢＲＥＡＤＹが“１”の状態を検出するまで、“１”にしてスレーブエラー応答を行う。
【０１０６】
マスタ２１−１は、タイミングｔ３７でスレーブエラー応答を検出し、スレーブ２２−１でエラーが発生したことを検出することができる。
また、図１１の例では、スレーブ２２−１が低消費電力中のタイミングｔ３３で、ライトアドレスチャネルにてライトアドレスＷＡ−４の転送が成立している。
【０１０７】
タイミングｔ３７では、電力制御信号が“０”となりスレーブ２２−１の低消費電力状態が解除されているが、ライトアドレスチャネルでは転送が発生していない。つまり、切り替え部２５ｃは、低消費電力状態の解除時、未完了のライト転送があるため、マスタ２１−１と応答部２５ｂ間で送受信されるように、経路を維持しておく。そのため、ライトデータチャネルの信号（ライトデータＷＤ−４）は、スレーブ２２−１には転送されない。
【０１０８】
マスタ２１−１によるライトデータチャネルへのライトデータＷＤ−４の転送が完了するが（タイミングｔ３８）、応答信号ＷＲ−４についてはマスタ２１−１に送られておらずライト転送は完了していない。そのため、切り替え部２５ｃは、応答部２５ｂから応答信号ＷＲ−４がマスタ２１−１に送信されるように経路を維持しておく。
【０１０９】
応答部２５ｂは、タイミングｔ３８で、信号ＢＶＡＬＩＤを、信号ＢＲＥＡＤＹが“１”の状態を検出するまで、“１”とし、スレーブエラー応答を行う。マスタ２１−１は、タイミングｔ３９でスレーブエラー応答を検出し、スレーブ２２−１でエラーが発生したことを認識することができる。また、タイミングｔ３９では、応答部２５ｂは、信号ＢＲＥＳＰで示される転送ステータスを“ＯＫ”とする。
【０１１０】
以上で、全てのライト転送が完了したので、切り替え部２５ｃは、タイミングｔ４０で、ライトアドレスチャネル、ライトデータチャネル及びライトレスポンスチャネルの信号についてもスレーブ２２−１からマスタ２１−１に送信されるように経路を切り替える。
【０１１１】
次に、ＡＸＩ適用時の半導体集積回路のリード転送時の動作例を説明する。
図１２は、ＡＸＩ適用時の半導体集積回路のリード転送時の動作例を示すタイミングチャートである。マスタ２１−１、スレーブ２２−１、応答部２５ｂにおける信号の様子が示されている。
【０１１２】
リード転送時にマスタ２１−１に供給される信号としては、クロック信号ＡＣＬＫと、スレーブ２２−１またはエラー応答回路２５−１から通知される信号ＡＲＲＥＡＤＹ，ＲＲＥＳＰなどのリード転送時の応答信号がある。
【０１１３】
さらに、図１２には、マスタ２１−１側におけるリードアドレスチャネル、リードデータチャネルの様子が示されている。
リード転送時にスレーブ２２−１に供給される信号としては、たとえば、クロック信号ＡＣＬＫ、電力制御信号などがある。スレーブ２２−１が出力する信号としては、たとえば、信号ＡＲＲＥＡＤＹ，ＲＲＥＳＰがある。他にも、信号ＲＶＡＬＩＤなどがあるが図示を省略している。さらに、図１２には、スレーブ２２−１側におけるリードアドレスチャネル、リードデータチャネルの様子が示されている。
【０１１４】
応答部２５ｂに供給される信号としては、クロック信号ＡＣＬＫ、信号ＳＥＬがある。また応答部２５ｂが出力する信号としては、たとえば、信号ＡＲＲＥＡＤＹ，ＲＲＥＳＰがある。他にも、信号ＲＶＡＬＩＤなどがあるが図示を省略している。なお、応答部２５ｂに供給される信号ＳＥＬは、切り替え部２５ｃから供給され、スレーブ２２−１が低消費電力状態（非選択状態）にあるか否かを示す。
【０１１５】
図１２において、タイミングｔ５０までは、電力制御信号が“０”であり、スレーブ２２−１は非低消費電力状態である。このとき、スレーブ２２−１が信号ＲＶＡＬＩＤを“１”、信号ＲＲＥＳＰで示される転送ステータスを“ＯＫ”とした状態で、マスタ２１−１との間でリードアドレスＲＡ−１の指定と、リードデータＲＤ−１の転送が行われている。
【０１１６】
図１２の例では、リードデータＲＤ−１の転送中に電力制御信号が“１”となっている（タイミングｔ５０）。これにより、スレーブ２２−１は、低消費電力状態になり、応答ができなくなる。
【０１１７】
このとき、切り替え部２５ｃは、スレーブ２２−１から出力される信号をマスタ２１−１に送信する代わりに、応答部２５ｂから出力される信号をマスタ２１−１に送信するように経路を切り替える。また、切り替え部２５ｃは、信号ＳＥＬをＨレベルにする。応答部２５ｂは、信号ＳＥＬの変化を受けて、解析部２５ａの記憶部２５ｄに記憶されている転送情報（たとえば、リードアドレスＲＡ−１など）から転送が実行中と判定し、信号ＡＲＲＥＡＤＹを“０”とし、ウェイトを発生させる。さらに、応答部２５ｂは、信号ＲＲＥＳＰで示される転送ステータスを“ＳＬＶＥＲＲ”に変更する。また、応答部２５ｂは、任意の値であるリードデータＲＤ１を生成する。
【０１１８】
なお、図１２の例では、応答部２５ｂが出力する信号ＡＲＲＥＡＤＹは、タイミングｔ５０の前から“０”となっている。
タイミングｔ５０以前では、マスタ２１−１にはスレーブ２２−１から出力される“１”である信号ＡＲＲＥＡＤＹが供給されている。しかし、切り替え部２５ｃによる切り替え後は、応答部２５ｂからの“０”である信号ＡＲＲＥＡＤＹが供給される。これによりマスタ２１−１は、タイミングｔ５１で、応答部２５ｂで発生したウェイトを検出する。
【０１１９】
タイミングｔ５１では、応答部２５ｂは、信号ＡＲＲＥＡＤＹを“１”とし、ウェイトを解除する。マスタ２１−１は、タイミングｔ５２において、ウェイトの解除を検出する。また、マスタ２１−１は、信号ＲＲＥＳＰによりスレーブエラー応答を検出する。これにより、マスタ２１−１は、スレーブ２２−１でエラーが発生し、リード転送ができなかったことを検出できる。
【０１２０】
ところで、図１２の例では、リードアドレスＲＡ−２の指定開始時に、スレーブ２２−１が低消費電力状態になる。このときも応答部２５ｂはウェイトを発生するが、図１２の例では前述したウェイトと同じタイミングｔ５０で発生される。
【０１２１】
ウェイトの解除後、応答部２５ｂは、リードアドレスチャネルへのリードアドレスＲＡ−２の転送を成立させる（タイミングｔ５２）。応答部２５ｂは、任意の値であるリードデータＲＤ−２を生成してリードデータチャネルに転送するが、この転送に対してスレーブエラー応答を行う。そして、タイミングｔ５３で、マスタ２１−１においてスレーブ２２−１のエラーが検出される。
【０１２２】
また、図１２の例では、スレーブ２２−１が低消費電力中のタイミングｔ５４で、リードアドレスチャネルにてリードアドレスＲＡ−３が成立している。
タイミングｔ５５では、電力制御信号が“０”となりスレーブ２２−１の低消費電力状態が解除されている。しかし、未完了のリード転送があるため、切り替え部２５ｃは、応答部２５ｂで生成された任意の値であるリードデータＲＤ−３がマスタ２１−１に転送されるように、経路を維持しておく。
【０１２３】
このとき、応答部２５ｂは、任意の値であるリードデータＲＤ−３の転送に対してスレーブエラー応答を行い、タイミングｔ５６で、マスタ２１−１においてスレーブ２２−１のエラーが検出される。
【０１２４】
また、図１２の例では、スレーブ２２−１が低消費電力中のタイミングｔ５５で、リードアドレスチャネルにてリードアドレスＲＡ−４が成立している。
そのため、タイミングｔ５６で任意の値であるリードデータＲＤ−３のリードデータチャネルへの転送が終わっても、切り替え部２５ｃは、応答部２５ｂで生成された任意の値であるリードデータＲＤ−４がマスタ２１−１に転送されるように、経路を維持しておく。
【０１２５】
このとき、応答部２５ｂは、任意の値であるリードデータＲＤ−４の転送に対してスレーブエラー応答を行う。そして、タイミングｔ５７で、マスタ２１−１においてスレーブ２２−１のエラーが検出される。
【０１２６】
また、タイミングｔ５７では、応答部２５ｂは、信号ＲＲＥＳＰで示される転送ステータスを“ＯＫ”とする。
以上で、全てのリード転送が完了したので、切り替え部２５ｃは、タイミングｔ５８で、リードデータチャネルの信号についても、スレーブ２２−１からマスタ２１−１に送信されるように経路を切り替える。
【０１２７】
図１３、図１４は、ＡＸＩ適用時の半導体集積回路の状態遷移の一例を示す図である。
まず、エラー応答回路２５−１は、転送命令を保持するための記憶部２５ｄの格納領域を用意する（状態Ｔ１０）。格納領域は、Ｒｅａｄ  Ｉｓｓｕｉｎｇ  Ｃａｐａｂｉｌｉｔｙ，Ｒｅａｄ  ＩＤ（IDentification）  Ｃａｐａｂｉｌｉｔｙ，Ｗｒｉｔｅ  Ｉｓｓｕｉｎｇ  Ｃａｐａｂｉｌｉｔｙ，Ｗｒｉｔｅ  ＩＤ  Ｃａｐａｂｉｌｉｔｙに応じて設けられる。
【０１２８】
Ｒｅａｄ  Ｉｓｓｕｉｎｇ  Ｃａｐａｂｉｌｉｔｙとは、マスタが発行可能な実行中のリードトランザクションの最大数である。Ｒｅａｄ  ＩＤ  Ｃａｐａｂｉｌｉｔｙとは、マスタが発行可能な実行中のリードトランザクションのうち、異なるＡＲＩＤ（リードアドレスチャネルのトランザクションＩＤ）の最大数である。
【０１２９】
Ｗｒｉｔｅ  Ｉｓｓｕｉｎｇ  Ｃａｐａｂｉｌｉｔｙとは、マスタが発行可能な実行中のライトトランザクションの最大数である。Ｗｒｉｔｅ  ＩＤ  Ｃａｐａｂｉｌｉｔｙとは、マスタが発行可能な実行中のライトトランザクションのうち、異なるＷＲＩＤ（ライトアドレスチャネルのトランザクションＩＤ）の最大数である。
【０１３０】
状態Ｔ１０において、電力制御信号がスレーブ２２−１の非低消費電力化を指示している場合、半導体集積回路２０の状態は、スレーブ２２−１からマスタ２１−１への応答経路を確立するように、経路の切り替えが行われる状態Ｔ１１となる。一方、電力制御信号がスレーブ２２−１の低消費電力化を指示している場合、半導体集積回路２０の状態は、状態Ｔ１３に遷移する。
【０１３１】
状態Ｔ１１の後、半導体集積回路２０の状態は、実行中のライトまたはリードの転送命令により、記憶部２５ｄに記憶されている前の転送命令が更新される状態Ｔ１２となる。状態Ｔ１２において、電力制御信号がスレーブ２２−１の非低消費電力化を指示している場合には、状態Ｔ１２が維持される。一方、状態Ｔ１２において、電力制御信号がスレーブ２２−１の低消費電力化を指示する場合、半導体集積回路２０の状態は、状態Ｔ１３に遷移する。
【０１３２】
状態Ｔ１３〜Ｔ２４では、スレーブ２２−１は低消費電力状態となっている。状態Ｔ１３では、エラー応答回路２５−１の解析部２５ａは、記憶部２５ｄに更新された転送命令を解析してデータ転送状態を検出する。転送が未実行である場合、かつ、記憶部２５ｄに記憶されている転送命令による転送で未完了のものがない場合、半導体集積回路２０の状態は、応答部２５ｂがＯＫ応答を行う状態Ｔ１４に遷移する。
【０１３３】
前述の図１３のように、ライト転送のときは、応答部２５ｂは、信号ＡＷＲＥＡＤＹ，ＷＲＥＡＤＹを“１”、転送ステータスを“ＯＫ”とした信号ＢＲＥＳＰを出力することでＯＫ応答を行う。また、前述の図１４のように、リード転送のときは、応答部２５ｂは、信号ＡＲＲＥＡＤＹを“１”、転送ステータスを“ＯＫ”とした信号ＲＲＥＳＰを出力することでＯＫ応答を行う。
【０１３４】
一方、状態Ｔ１３において、転送が実行中である場合、応答部２５ｂが、ウェイトを発生させる状態Ｔ１５に遷移する。
状態Ｔ１４または状態Ｔ１５の後に表記されている状態Ｔ１６は、切り替え部２５ｃにより、応答部２５ｂからマスタ２１−１への応答経路を確立するように、経路の切り替えが行われている状態である。なお、状態Ｔ１６は、状態Ｔ１４または状態Ｔ１５と同一タイミングで現れる。
【０１３５】
状態Ｔ１６の後、転送が未実行である場合、かつ、記憶部２５ｄに記憶されている転送命令による転送で未完了のものがない場合、半導体集積回路２０の状態は、応答部２５ｂがＯＫ応答を行う状態Ｔ１７に遷移する。一方、状態Ｔ１６の後、転送が実行中である場合には、半導体集積回路２０の状態は、実行中のライトまたはリードの転送命令により、記憶部２５ｄに記憶されている前の転送命令が更新される状態Ｔ１８となる。また、半導体集積回路２０の状態は、状態Ｔ１７のときに、マスタから新たな転送が発生した場合には、状態Ｔ１８に遷移し、状態Ｔ１８のときに、記憶部２５ｄに記憶されている転送命令が全て完了した場合には、状態Ｔ１７に遷移する。
【０１３６】
一方、図１４のように、状態Ｔ１８のときに、未完了のリード転送がある場合には、半導体集積回路２０の状態は、リード転送処理が行われる状態Ｔ１９，Ｔ２０，Ｔ２１の何れかとなる。また、状態Ｔ１８のときに、未完了のライト転送がある場合には、半導体集積回路２０の状態は、ライト転送処理が行われる状態Ｔ２２，Ｔ２３，Ｔ２４の何れかとなる。リード転送処理と、ライト転送処理とは並列で処理される。
【０１３７】
リード転送処理と、ライト転送処理は、たとえば、図１４のように、３段階の優先度（処理優先度高、中、低）がある。
リード転送処理では、リードアドレスチャネルを使用中の命令がある場合、半導体集積回路２０の状態は、他に優先してアドレスチャネルでの転送を成立させる状態Ｔ１９に遷移する。リードアドレスチャネルを使用中の命令がなく、リードデータチャネルを使用中の命令がある場合、半導体集積回路２０の状態は、リードデータチャネルでの転送に対して全てエラー応答を行う状態Ｔ２０に遷移する。リードアドレスチャネル及びリードデータチャネルの使用中の命令がない場合で、未完了のリード転送命令がある場合、半導体集積回路２０の状態は、その転送命令にしたがって、スレーブエラー応答を行う状態Ｔ２１に遷移する。
【０１３８】
ライト転送処理では、ライトアドレスチャネルを使用中の命令がある場合、半導体集積回路２０の状態は、他に優先してライトチャネルでの転送を成立させる状態Ｔ２２に遷移する。ライトアドレスチャネルを使用中の命令がなく、ライトデータチャネルを使用中の命令がある場合、半導体集積回路２０の状態は、ライトデータチャネルでの転送を成立させた後、その転送に対してエラー応答を行う状態Ｔ２３に遷移する。ライトアドレスチャネルとライトデータチャネルを使用中の命令がなく、未完了のライト転送命令がある場合、半導体集積回路２０の状態は、その転送命令にしたがいライトデータチャネルでの転送を成立させ、スレーブエラー応答を行う状態Ｔ２４に遷移する。
【０１３９】
状態Ｔ１９〜２４の後は、状態Ｔ１８に遷移する。
以上のような制御を行うことで、本実施の形態の半導体集積回路２０では、ＡＸＩを適用した場合でも、ＡＨＢ適用時と同様の効果が得られるとともに、ＡＸＩの規格にしたがった転送を行うことができる。
【０１４０】
このように、本実施の形態の半導体集積回路２０は、エラー応答回路２５−１〜２５−ｎを有しているが、各規格にしたがった転送動作を行うことができるので、マスタ２１−１〜２１−ｍ及びスレーブ２２−１〜２２−ｎは、変更を行わなくてもよい。
【０１４１】
（変形例）
上記の説明では、図２に示したようなマスタ２１−１〜２１−ｍと、スレーブ２２−１〜２２−ｎ間のデータ転送について説明したが、スレーブ２２−１〜２２−ｎは、以下に示すような回路部であってもよい。
【０１４２】
図１５は、本実施の形態の半導体集積回路の変形例を示す図である。図２と同じ要素については同一符号を付している。
図１５に示されているような半導体集積回路２０ａは、複数の回路部３０−１〜３０−ｎを有しており、各回路部３０−１〜３０−ｎは、内部バス３１と内部バス３１に接続されたモジュール３２−１，３２−２，…，３２−ｘを有している。回路部３０−１〜３０−ｎに対しては、システムモードコントローラ２４からの電力制御信号が供給される。なお、モジュール３２−１〜３２−ｘの数は、回路部３０−１〜３０−ｎごとに異なっていてもよい。
【０１４３】
図１５の例では、マスタ２１−１〜２１−ｍと、回路部３０−１〜３０−ｎ内のモジュール３２−１〜３２−ｘ間でのデータ転送が行われる。エラー応答回路２５−１〜２５−ｎは、各回路部３０−１〜３０−ｎに対して設けられている。そして、エラー応答回路２５−１〜２５−ｎは、マスタ２１−１〜２１−ｍと回路部３０−１〜３０−ｎ間のデータ転送に対して、以上説明してきた処理と同様の転送制御を行う。
【０１４４】
たとえば、マスタ２１−１と回路部３０−１内のモジュール３２−１がデータ転送中のとき、回路部３０−１が低消費電力状態となると、エラー応答回路２５−１は、応答が返せないモジュール３２−１の代わりに、マスタ２１−１にエラー信号を送信する。また、回路部３０−１が低消費電力状態のときに、マスタ２１−１による回路部３０−１内のモジュール３２−１とのデータ転送が開始されると、エラー応答回路２５−１は、応答が返せないモジュール３２−１の代わりに、マスタ２１−１にエラー信号を送信する。
【０１４５】
以上、実施の形態に基づき、本発明のエラー応答回路、半導体集積回路及びデータ転送制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１４６】
１０  半導体集積回路
１１  回路部（マスタ）
１２  回路部（スレーブ）
１３  内部バス
１４  電力制御部
１５  エラー応答回路
１５ａ  解析部
１５ｂ  応答部
１５ｃ  切り替え部
【図１】
0006015054.tif 000002
【図２】
0006015054.tif 000003
【図３】
0006015054.tif 000004
【図４】
0006015054.tif 000005
【図５】
0006015054.tif 000006
【図６】
0006015054.tif 000007
【図７】
0006015054.tif 000008
【図８】
0006015054.tif 000009
【図９】
0006015054.tif 000010
【図１０】
0006015054.tif 000011
【図１１】
0006015054.tif 000012
【図１２】
0006015054.tif 000013
【図１３】
0006015054.tif 000014
【図１４】
0006015054.tif 000015
【図１５】
0006015054.tif 000016