(57)【特許請求の範囲】
【請求項１】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、
前記第１および第２の接続機器同士を接続するバスと、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御するブリッジと
を備え、
前記第１の接続機器は前記第２の接続機器との転送を主導する接続機器であり、
前記第２の接続機器は前記第１の接続機器との転送に対して受動的に動作する接続機器であり、
前記ブリッジは、前記第１の接続機器の切断指示を受けると、前記第１の接続機器からのリードアドレスの発行に関する前記バリッド信号に対する前記第２の接続機器からの前記レディ信号がアサートされた後に前記バリッド信号をネゲートすることにより前記第１の接続機器からのリードアドレスの発行を停止するとともに、前記第２の接続機器からのリードデータの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのリードデータの受信を許容する
バスシステム。
【請求項２】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、
前記第１および第２の接続機器同士を接続するバスと、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御するブリッジと
を備え、
前記第１の接続機器は前記第２の接続機器との転送を主導する接続機器であり、
前記第２の接続機器は前記第１の接続機器との転送に対して受動的に動作する接続機器であり、
前記ブリッジは、前記第１の接続機器の切断指示を受けると、前記第１の接続機器からのライトアドレスの発行に関する前記バリッド信号に対する前記第２の接続機器からの前記レディ信号がアサートされた後に前記バリッド信号をネゲートすることにより前記第１の接続機器からのライトアドレスの発行を停止するとともに、前記第２の接続機器からのライトレスポンスの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのライトレスポンスの受信を許容する
バスシステム。
【請求項３】
前記ブリッジは、前記第１の接続機器の切断指示を受けた際に前記第１の接続機器からのライトアドレスの発行を停止した場合であってもバースト転送中のライトデータは当該バースト転送の終了まで発行する
請求項２記載のバスシステム。
【請求項４】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、
前記第１および第２の接続機器同士を接続するバスと、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御するブリッジと
を備え、
前記第２の接続機器は前記第１の接続機器との転送を主導する接続機器であり、
前記第１の接続機器は前記第２の接続機器との転送に対して受動的に動作する接続機器であり、
前記ブリッジは、前記第１の接続機器の切断指示を受けると、前記第２の接続機器からのリードアドレスの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのリードアドレスの受信を許容するとともに、前記第２の接続機器へのリードデータの送出に関する前記バリッド信号をアサートすることによりエラー情報を示す固定値を含む前記リードデータを前記第２の接続機器に返送する
バスシステム。
【請求項５】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、
前記第１および第２の接続機器同士を接続するバスと、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御するブリッジと
を備え、
前記第２の接続機器は前記第１の接続機器との転送を主導する接続機器であり、
前記第１の接続機器は前記第２の接続機器との転送に対して受動的に動作する接続機器であり、
前記ブリッジは、前記第１の接続機器の切断指示を受けると、前記第２の接続機器からのライトアドレスの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのライトアドレスの受信を許容するとともに、前記第２の接続機器へのライトレスポンスの送出に関する前記バリッド信号をアサートすることによりエラー情報を示す固定値を含む前記ライトレスポンスを前記第２の接続機器に返送する
バスシステム。
【請求項６】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、前記第１および第２の接続機器同士を接続するバスとを備えるバスシステムにおいて、
前記第１の接続機器は前記第２の接続機器との転送を主導する接続機器であり、
前記第２の接続機器は前記第１の接続機器との転送に対して受動的に動作する接続機器であり、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御し、前記第１の接続機器からのリードアドレスの発行に関する前記バリッド信号に対する前記第２の接続機器からの前記レディ信号がアサートされた後に前記バリッド信号をネゲートすることにより前記第１の接続機器からのリードアドレスの発行を停止するとともに、前記第２の接続機器からのリードデータの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのリードデータの受信を許容する
ブリッジ回路。
【請求項７】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、前記第１および第２の接続機器同士を接続するバスとを備えるバスシステムにおいて、
前記第１の接続機器は前記第２の接続機器との転送を主導する接続機器であり、
前記第２の接続機器は前記第１の接続機器との転送に対して受動的に動作する接続機器であり、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御し、前記第１の接続機器からのライトアドレスの発行に関する前記バリッド信号に対する前記第２の接続機器からの前記レディ信号がアサートされた後に前記バリッド信号をネゲートすることにより前記第１の接続機器からのライトアドレスの発行を停止するとともに、前記第２の接続機器からのライトレスポンスの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのライトレスポンスの受信を許容する
ブリッジ回路。
【請求項８】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、前記第１および第２の接続機器同士を接続するバスとを備えるバスシステムにおいて、
前記第２の接続機器は前記第１の接続機器との転送を主導する接続機器であり、
前記第１の接続機器は前記第２の接続機器との転送に対して受動的に動作する接続機器であり、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御し、前記第２の接続機器からのリードアドレスの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのリードアドレスの受信を許容するとともに、前記第２の接続機器へのリードデータの送出に関する前記バリッド信号をアサートすることによりエラー情報を示す固定値を含む前記リードデータを前記第２の接続機器に返送する
ブリッジ回路。
【請求項９】
送信側のバリッド信号と受信側のレディ信号とがともにアサートされているときに前記送信側から前記受信側への情報の伝達が行われるプロトコルにより前記情報のやりとりを行う第１および第２の接続機器と、前記第１および第２の接続機器同士を接続するバスとを備えるバスシステムにおいて、
前記第２の接続機器は前記第１の接続機器との転送を主導する接続機器であり、
前記第１の接続機器は前記第２の接続機器との転送に対して受動的に動作する接続機器であり、
前記第１の接続機器とバスとの間に挿入されて、前記第１の接続機器の切断指示を受けると、前記第１の接続機器に代わって前記第２の接続機器との間の前記プロトコルにおける前記バリッド信号および前記レディ信号を制御し、前記第２の接続機器からのライトアドレスの受信に関する前記レディ信号をアサートすることにより前記第２の接続機器からのライトアドレスの受信を許容するとともに、前記第２の接続機器へのライトレスポンスの送出に関する前記バリッド信号をアサートすることによりエラー情報を示す固定値を含む前記ライトレスポンスを前記第２の接続機器に返送する
ブリッジ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステムに関し、特にバスシステムと接続機器とを接続するブリッジ回路に関する。
【背景技術】
【０００２】
バスシステムにおいては、バス（インターコネクトとも呼称される。）に複数の接続機器が接続され、接続機器間でデータ転送が行われる。データ転送を主導する接続機器はマスタと呼ばれ、受動的に動作する接続機器はスレーブと呼ばれる。マスタとなる接続機器としては、例えばプロセッサが想定される。スレーブとなる接続機器としては、例えばメモリが想定される。
【０００３】
このようなバスシステムにおいては、データ転送のための一連の動作（トランザクション）のうち、データ転送の要求と実際のデータ転送とをそれぞれ独立して制御すること（スプリットトランザクション）により、転送効率を向上させることができる。一方、スプリットトランザクションを許容した場合、あるマスタまたはスレーブが何らかの障害によりハングアップした場合、システム全体のハングアップに至ることがある。例えば、マスタＭ０およびＭ１とスレーブＳ０およびＳ１とが接続されたインターコネクトにおいて、Ｍ０がＳ０およびＳ１にアクセスしている最中にＳ０がハングアップした場合を想定する。Ｓ０からのデータをＳ１よりも先にＭ０に返す順序規定がある場合、Ｍ０とＳ１との間の転送も完了できなくなる。このとき、Ｓ１自身も転送完了できないため、さらにＭ１からＳ１にアクセスがあるとこれも完了できず、以上によりＳ０がハングアップしたことにより、他のＭ０、Ｍ１、Ｓ１が全てハングアップしてしまう。
【０００４】
この点、スプリットトランザクションを許容しないシステムでは、同時に１つのアクセスのみが実行されている場合において、ハングアップの原因となっているマスタまたはスレーブをインターコネクトから電気的に切断すれば、システム動作の継続が可能である。例えば、ゲートにバス切断信号を出力することにより、バスマスタを電気的に切断するバスシステムが提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２６９０３３号公報（図１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数転送のアウトスタンディング実行が可能なシステムにおいては、ハングアップした時点において複数のアクセスが実行途中となっていることが起こり得る。したがって、接続機器を電気的に切断しただけでは他の接続機器の誤動作を招き、システム動作を継続することが困難になるおそれがある。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、バスシステムにおいてスプリットトランザクション実行中の接続機器を、誤動作させることなくバスシステムから切断することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、所定のプロトコルによりやりとりを行う第１および第２の接続機器と、上記第１および第２の接続機器同士を接続するバスと、上記第１の接続機器とバスとの間に挿入されて、上記第１の接続機器の切断指示を受けると、上記第１の接続機器に代わって上記第２の接続機器との間の上記所定のプロトコル上のやりとりを行うブリッジとを備えるバスシステムである。これにより、第１の接続機器が切断された場合であっても第２の接続機器との間のプロトコル上の整合性を担保するという作用をもたらす。
【０００９】
また、この第１の側面において、上記第１の接続機器は上記第２の接続機器との転送を主導する接続機器であり、上記第２の接続機器は上記第１の接続機器との転送に対して受動的に動作する接続機器であってもよい。すなわち、第１の接続機器がマスタとして機能し、第２の接続機器がスレーブとして機能する場合を想定する。この場合において、上記ブリッジは、上記第１の接続機器の切断指示を受けると、上記第１の接続機器からのリードアドレスの発行を停止するとともに上記第２の接続機器からのリードデータの受信を許容するようにしてもよい。また、上記ブリッジは、上記第１の接続機器の切断指示を受けると、上記第１の接続機器からのライトアドレスの発行を停止するとともに上記第２の接続機器からのライトレスポンスの受信を許容するようにしてもよい。このとき、上記ブリッジは、上記第１の接続機器の切断指示を受けた際に上記第１の接続機器からのライトアドレスの発行を停止した場合であってもバースト転送中のライトデータは当該バースト転送の終了まで発行するようにしてもよい。
【００１０】
また、この第１の側面において、上記第２の接続機器は上記第１の接続機器との転送を主導する接続機器であり、上記第１の接続機器は上記第２の接続機器との転送に対して受動的に動作する接続機器であってもよい。すなわち、第２の接続機器がマスタとして機能し、第１の接続機器がスレーブとして機能する場合を想定する。この場合において、上記ブリッジは、上記第１の接続機器の切断指示を受けると、上記第２の接続機器からのリードアドレスの受信を許容するとともにエラー情報を示す固定値を上記第２の接続機器に返送するようにしてもよい。また、上記ブリッジは、上記第１の接続機器の切断指示を受けると、上記第２の接続機器からのライトアドレスの受信を許容するとともにエラー情報を示す固定値を上記第２の接続機器に返送するようにしてもよい。
【００１１】
また、この第１の側面において、上記ブリッジは、上記第１の接続機器の切断指示を受けると、上記第１の接続機器からの信号を所定のレベルにクランプするようにしてもよい。これにより、第１の接続機器が切断された際に信号を安定化させるという作用をもたらす。
【００１２】
また、本発明の第２の側面は、所定のプロトコルによりやりとりを行う第１および第２の接続機器と、上記第１および第２の接続機器同士を接続するバスとを備えるバスシステムにおいて上記第１の接続機器とバスとの間に挿入されて、上記第１の接続機器の切断指示を受けると、上記第１の接続機器に代わって上記第２の接続機器との間の上記所定のプロトコル上のやりとりを行うブリッジ回路である。これにより、第１の接続機器が切断された場合であっても第２の接続機器との間のプロトコル上の整合性を担保するという作用をもたらす。
【発明の効果】
【００１３】
本発明によれば、バスシステムにおいてスプリットトランザクション実行中の接続機器を、誤動作させることなくバスシステムから切断することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態におけるバスシステムの全体構成例を示す図である。
【図２】本発明の第１の実施の形態におけるマスタプロトコル整合部４０１の構成例を示す図である。
【図３】ＡＸＩプロトコルにおけるリードアドレスチャンネルを構成する信号を示す図である。
【図４】ＡＸＩプロトコルにおけるリードデータチャンネルを構成する信号を示す図である。
【図５】ＡＸＩプロトコルにおけるライトアドレスチャンネルを構成する信号を示す図である。
【図６】ＡＸＩプロトコルにおけるライトデータチャンネルを構成する信号を示す図である。
【図７】ＡＸＩプロトコルにおけるライトレスポンスチャンネルを構成する信号を示す図である。
【図８】本発明の第１の実施の形態におけるマスタリード整合部４１０の構成例を示す図である。
【図９】本発明の第１の実施の形態におけるリセット優先ＳＲフリップフロップ４２１の動作の真理値表を示す図である。
【図１０】本発明の第１の実施の形態におけるマスタライト整合部４５０の構成例を示す図である。
【図１１】本発明の第１の実施の形態におけるＦＩＦＯ６００の動作例を示す図である。
【図１２】本発明の第１の実施の形態におけるスレーブプロトコル整合部５０１の構成例を示す図である。
【図１３】本発明の第１の実施の形態におけるスレーブリード整合部５１０の構成例を示す図である。
【図１４】ＡＸＩプロトコルにおけるリードレスポンスＲＲＥＳＰ信号およびライトレスポンスＢＲＥＳＰ信号の意味を示す図である。
【図１５】本発明の第１の実施の形態におけるスレーブライト整合部５５０の構成例を示す図である。
【図１６】本発明の第２の実施の形態におけるバスシステムの全体構成例を示す図である。
【図１７】本発明の第２の実施の形態におけるマスタ切断ブリッジ４００の構成例を示す図である。
【図１８】本発明の第２の実施の形態におけるスレーブ切断ブリッジ５００の構成例を示す図である。
【図１９】本発明の第２の実施の形態における信号クランプ部４０２および５０２に用いられるクランプ回路の構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（切断時の信号クランプを想定しない例）
２．第２の実施の形態（切断時の信号クランプを想定する例）
【００１６】
＜１．第１の実施の形態＞
［バスシステムの全体構成］
図１は、本発明の第１の実施の形態におけるバスシステムの全体構成例を示す図である。このバスシステムでは、バスとして機能するインターコネクト３００に、複数の接続機器が接続される。複数の接続機器は、Ｍ台のマスタ１００とＳ台のスレーブ２００とに分類される。マスタ１００はデータ転送を主導する接続機器であり、スレーブ２００は受動的に動作する接続機器である。なお、ＭおよびＳは１以上の整数である。
【００１７】
また、本発明の第１の実施の形態では、インターコネクト３００とマスタ１００の各々との間にそれぞれマスタ切断ブリッジ４００が接続され、インターコネクト３００とスレーブ２００の各々との間にそれぞれスレーブ切断ブリッジ５００が接続される。マスタ切断ブリッジ４００の各々はマスタプロトコル整合部４０１を備える。このマスタプロトコル整合部４０１は、接続されているマスタ１００を切断する際にバスプロトコル上の整合性を担保するものである。スレーブ切断ブリッジ５００の各々はスレーブプロトコル整合部５０１を備える。このスレーブプロトコル整合部５０１は、接続されているスレーブ２００を切断する際にバスプロトコル上の整合性を担保するものである。
【００１８】
マスタ切断ブリッジ４００の各々にはそれぞれ独立したマスタ切断信号４０９が入力され、これに従って対応するマスタ１００が切断される。すなわち、マスタ切断信号４０９はＭ本の信号から構成される。同様に、スレーブ切断ブリッジ５００の各々にはそれぞれ独立したスレーブ切断信号５０９が入力され、これに従って対応するスレーブ２００が切断される。すなわち、スレーブ切断信号５０９はＳ本の信号から構成される。これらマスタ切断信号４０９およびスレーブ切断信号５０９による切断指示は、インターコネクト３００においてハングアップを検出したことを契機としてもよく、また、ユーザからの操作入力を契機としてもよい。これらマスタ切断信号４０９およびスレーブ切断信号５０９の遷移タイミングは任意のタイミングでよく、他の信号との同期を考慮する必要はない。
【００１９】
なお、マスタ１００は、特許請求の範囲に記載の第１または第２の接続機器の一例である。また、スレーブ２００は、特許請求の範囲に記載の第２または第１の接続機器の一例である。また、インターコネクト３００は、特許請求の範囲に記載のバスの一例である。また、マスタ切断ブリッジ４００およびスレーブ切断ブリッジ５００は、特許請求の範囲に記載のブリッジの一例である。
【００２０】
［マスタプロトコル整合部の構成］
図２は、本発明の第１の実施の形態におけるマスタプロトコル整合部４０１の構成例を示す図である。このマスタプロトコル整合部４０１は、マスタリード整合部４１０と、マスタライト整合部４５０とを備えている。マスタリード整合部４１０およびマスタライト整合部４５０には、共通のマスタ切断信号４０９が入力される。
【００２１】
マスタリード整合部４１０は、対応するマスタ１００によるリード動作中にそのマスタ１００が切断された場合に、プロトコル上の整合性を担保するためのものである。ここでは、データ転送の要求と実際のデータ転送とをそれぞれ独立して制御する（スプリットトランザクション）バスの代表例として、ＡＸＩ（Advanced eXtensible Interface）プロトコルを想定する。このＡＸＩプロトコルでは、リード動作のためのパスとして、リードアドレスチャンネルおよびリードデータチャンネルが用意されている。マスタ１００からリードアドレスチャンネルを介してスレーブ２００にリードアドレスを含むリクエストが転送されると、これに応答してリードデータチャンネルを介してスレーブ２００からマスタ１００にリードデータが転送されるようになっている。
【００２２】
マスタライト整合部４５０は、対応するマスタ１００によるライト動作中にそのマスタ１００が切断された場合に、プロトコル上の整合性を担保するためのものである。ＡＸＩプロトコルでは、ライト動作のためのパスとして、ライトアドレスチャンネル、ライトデータチャンネルおよびライトレスポンスチャンネルが用意されている。マスタ１００からライトアドレスチャンネルおよびライトデータチャンネルを介してスレーブ２００にライトリクエストが転送されると、これに応答してスレーブ２００においてライト動作が行われる。そして、そのライト動作の結果が、ライトレスポンスチャンネルを介してスレーブ２００からマスタ１００に転送されるようになっている。
【００２３】
ＡＸＩプロトコルでは、それぞれのチャンネルにおいてバリッド信号（ＶＡＬＩＤ）およびレディ信号（ＲＥＡＤＹ）がともにアサートされているときに情報の伝達（例えば、データ転送）が行われる。例えば、リードアドレスチャンネルの場合、送信元であるマスタ１００はリードアドレス等をセットするとともに、バリッド信号（ＡＲＶＡＬＩＤ）を「１」にアサートする。このとき、受信側であるスレーブ２００は、受信可能となるタイミングにおいてレディ信号（ＡＲＲＥＡＤＹ）を「１」にアサートする。これにより、バリッド信号（ＡＲＶＡＬＩＤ）およびレディ信号（ＡＲＲＥＡＤＹ）がともに「１」にアサートされているときに、リードアドレス等が伝達される。
【００２４】
各チャンネルの詳細については後述するが、各チャンネルの信号名には、マスタ１００からスレーブ２００側に接続する信号には「Ｓ＿」が、スレーブ２００の方からマスタ１００側に接続する信号には「Ｍ＿」がそれぞれ接頭辞として付加される。そして、接頭辞に続き、リードアドレスチャンネルには「ＡＲ」が、リードデータチャンネルには「Ｒ」が、ライトアドレスチャンネルには「ＡＷ」が、ライトデータチャンネルには「Ｗ」が、ライトレスポンスチャンネルには「Ｂ」がそれぞれ付加される。また、この図では、バリッド信号（ＶＡＬＩＤ）およびレディ信号（ＲＥＡＤＹ）以外の信号を、「＊」により総称している。また、実線矢印はバリッドおよび送出情報の方向であり、点線矢印はレディ信号の方向を表している。
【００２５】
［ＡＸＩプロトコルにおけるチャンネル構成］
図３は、ＡＸＩプロトコルにおけるリードアドレスチャンネルを構成する信号を示す図である。リードアドレスチャンネルは、リードアドレスをマスタ１００からスレーブ２００に伝達するためのチャンネルである。このリードアドレスチャンネルは、リードアドレス識別子、リードアドレス、バースト長、バーストサイズ、バーストタイプ、ロックタイプ、キャッシュタイプ、プロテクションタイプ、リードアドレスバリッド、リードアドレスレディの各信号からなる。これらの信号のうち、リードアドレスレディのみがスレーブ２００からの信号であり、これ以外はマスタ１００からの信号である。
【００２６】
リードアドレス識別子ＡＲＩＤ［３：０］は、信号のリードアドレスグループを識別するための４ビットのタグである。ＡＸＩプロトコルでは、マスタがトランザクションを発行する際に、スレーブに対して順序関係を維持することを要求する場合には、同じ識別子を付与することになっている。換言すれば、識別子が異なるトランザクション間では順序関係が維持される保証はない。
【００２７】
リードアドレスＡＲＡＤＤＲ［３１：０］は、リード対象となる３２ビットのアドレスであり、バースト転送における初期アドレスを示す信号である。
【００２８】
バースト長ＡＲＬＥＮ［３：０］は、バースト転送のデータ数を示す４ビットの信号である。「１」から「１６」の何れかのデータ数が４ビットにエンコードされて示される。
【００２９】
バーストサイズＡＲＳＩＺＥ［２：０］は、バースト転送の各回における転送サイズを示す３ビットの信号である。「２0」、「２1」、「２2」、「２3」、「２4」、「２5」、「２6」、「２7」の何れかの転送サイズが３ビットにエンコードされて示される。
【００３０】
バーストタイプＡＲＢＵＲＳＴ［１：０］は、バースト転送のアドレス計算のタイプを示す２ビットの信号である。具体的には、ＦＩＦＯ型、連続アクセス、キャッシュラインの何れかのタイプを指定できるようになっている。
【００３１】
ロックタイプＡＲＬＯＣＫ［１：０］は、アトミックアクセスのための情報を示す２ビットの信号である。具体的には、ノーマルアクセス、排他的アクセス、ロック付きアクセスの何れかのタイプを指定できるようになっている。
【００３２】
キャッシュタイプＡＲＣＡＣＨＥ［３：０］は、キャッシュメモリ制御に必要な情報を示す４ビットの信号である。具体的には、キャッシュ可能か否か、ライトスルーかライトバックか等の制御情報が示される。
【００３３】
プロテクションタイプＡＲＰＲＯＴ［２：０］は、プロテクション制御に必要な情報を示す３ビットの信号である。具体的には、特権アクセス、非セキュアアクセス、インストラクションアクセスの各プロテクションレベルを指定できるようになっている。
【００３４】
リードアドレスバリッドＡＲＶＡＬＩＤは、アドレスおよび制御信号の有効性を示すバリッド信号である。リードアドレスレディＡＲＲＥＡＤＹは、スレーブ２００がアドレスおよび制御信号を受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、リードアドレスバリッドＡＲＶＡＬＩＤおよびリードアドレスレディＡＲＲＥＡＤＹがともにアサートされているときに、アドレスおよび制御信号の転送が行われる。
【００３５】
図４は、ＡＸＩプロトコルにおけるリードデータチャンネルを構成する信号を示す図である。リードデータチャンネルは、リードデータをスレーブ２００からマスタ１００に転送するためのチャンネルである。このリードデータチャンネルは、リード識別子タグ、リードデータ、リードレスポンス、リードラスト、リードバリッド、リードレディの各信号からなる。これらの信号のうち、リードレディのみがマスタ１００からの信号であり、これ以外はスレーブ２００からの信号である。
【００３６】
リード識別子タグＲＩＤ［３：０］は、信号のリードデータグループを識別するための４ビットのタグである。このリード識別子タグＲＩＤ［３：０］はスレーブにおいて生成されるものであり、リードアドレス識別子ＡＲＩＤ［３：０］と一致していなければならない。
【００３７】
リードデータＲＤＡＴＡ［３１：０］は、リードトランザクションによるスレーブ２００からのリードデータである。ここでは３２ビット幅のリードデータバスを想定したが、ＲＤＡＴＡのビット幅はリードデータバス幅に応じて変化する。リードデータバスは、８、１６、３２、６４、１２８、２５６、５１２および１０２４の何れかのビット幅を有する。
【００３８】
リードレスポンスＲＲＥＳＰ［１：０］は、リードトランザクションによるデータ転送の状態を示す２ビットの信号である。信号内容の詳細については後述する。
【００３９】
リードラストＲＬＡＳＴは、リードトランザクションにおける最終のデータ転送である旨を示す信号である。
【００４０】
リードバリッドＲＶＡＬＩＤは、要求されたリードデータの有効性を示すバリッド信号である。リードレディＲＲＥＡＤＹは、マスタ１００がリードデータを受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、リードバリッドＲＶＡＬＩＤおよびリードレディＲＲＥＡＤＹがともにアサートされているときに、リードデータの転送が行われる。
【００４１】
図５は、ＡＸＩプロトコルにおけるライトアドレスチャンネルを構成する信号を示す図である。ライトアドレスチャンネルは、ライトアドレスをマスタ１００からスレーブ２００に伝達するためのチャンネルである。このライトアドレスチャンネルは、ライトアドレス識別子、ライトアドレス、バースト長、バーストサイズ、バーストタイプ、ロックタイプ、キャッシュタイプ、プロテクションタイプ、ライトアドレスバリッド、ライトアドレスレディの各信号からなる。これらの信号のうち、ライトアドレスレディのみがスレーブ２００からの信号であり、これ以外はマスタ１００からの信号である。
【００４２】
ライトアドレス識別子ＡＷＩＤ［３：０］は、信号のライトアドレスグループを識別するための４ビットのタグである。ライトアドレスＡＷＡＤＤＲ［３１：０］は、ライト対象となる３２ビットのアドレスであり、バースト転送における初期アドレスを示す信号である。
【００４３】
バースト長ＡＷＬＥＮ［３：０］は、バースト転送のデータ数を示す４ビットの信号である。バーストサイズＡＷＳＩＺＥ［２：０］は、バースト転送の各回における転送サイズを示す３ビットの信号である。バーストタイプＡＷＢＵＲＳＴ［１：０］は、バースト転送のアドレス計算のタイプを示す２ビットの信号である。ロックタイプＡＷＬＯＣＫ［１：０］は、アトミックアクセスのための情報を示す２ビットの信号である。キャッシュタイプＡＷＣＡＣＨＥ［３：０］は、キャッシュメモリ制御に必要な情報を示す４ビットの信号である。プロテクションタイプＡＷＰＲＯＴ［２：０］は、プロテクション制御に必要な情報を示す３ビットの信号である。これらは基本的にリードアドレスチャンネルの場合と同様である。
【００４４】
ライトアドレスバリッドＡＷＶＡＬＩＤは、アドレスおよび制御信号の有効性を示すバリッド信号である。ライトアドレスレディＡＷＲＥＡＤＹは、スレーブ２００がアドレスおよび制御信号を受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、ライトアドレスバリッドＡＷＶＡＬＩＤおよびライトアドレスレディＡＷＲＥＡＤＹがともにアサートされているときに、アドレスおよび制御信号の転送が行われる。
【００４５】
図６は、ＡＸＩプロトコルにおけるライトデータチャンネルを構成する信号を示す図である。ライトデータチャンネルは、ライトデータをマスタ１００からスレーブ２００に転送するためのチャンネルである。このライトデータチャンネルは、ライト識別子タグ、ライトデータ、ライトストローブ、ラストライト、ライトバリッド、ライトレディの各信号からなる。これらの信号のうち、ライトレディのみがスレーブ２００からの信号であり、これ以外はマスタ１００からの信号である。
【００４６】
ライト識別子タグＷＩＤ［３：０］は、信号のライトデータグループを識別するための４ビットのタグである。このライト識別子タグＷＩＤ［３：０］は、ライトアドレス識別子ＡＷＩＤ［３：０］と一致していなければならない。
【００４７】
ライトデータＷＤＡＴＡ［３１：０］は、ライトトランザクションによるスレーブ２００へのライトデータである。ここでは３２ビット幅のライトデータバスを想定したが、ＷＤＡＴＡのビット幅はリードデータバス幅に応じて変化する。ライトデータバスは、８、１６、３２、６４、１２８、２５６、５１２および１０２４の何れかのビット幅を有する。
【００４８】
ライトストローブＷＳＴＲＢ［３：０］は、スレーブ２００のメモリにおいて更新されるべきバイト位置を示す４ビットの信号である。ライトデータバスの８ビット毎にライトストローブＷＳＴＲＢ［３：０］の１ビットが割り当てられる。すなわち、ＷＳＴＲＢ［ｉ］は、ＷＤＡＴＡ［（８×ｉ）＋７：（８×ｉ）］に対応する。
【００４９】
ライトラストＷＬＡＳＴは、ライトトランザクションにおける最終のデータ転送である旨を示す信号である。
【００５０】
ライトバリッドＷＶＡＬＩＤは、ライトデータの有効性を示すバリッド信号である。ライトレディＷＲＥＡＤＹは、スレーブ２００がライトデータを受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、ライトバリッドＷＶＡＬＩＤおよびライトレディＷＲＥＡＤＹがともにアサートされているときに、ライトデータの転送が行われる。
【００５１】
図７は、ＡＸＩプロトコルにおけるライトレスポンスチャンネルを構成する信号を示す図である。ライトレスポンスチャンネルは、ライトトランザクションの結果をスレーブ２００からマスタ１００に伝達するためのチャンネルである。このライトレスポンスチャンネルは、レスポンス識別子、ライトレスポンス、ライトレスポンスバリッド、レスポンスレディの各信号からなる。これらの信号のうち、レスポンスレディのみがマスタ１００からの信号であり、これ以外はスレーブ２００からの信号である。
【００５２】
レスポンス識別子ＢＩＤ［３：０］は、ライトレスポンスを識別するための４ビットのタグである。このレスポンス識別子ＢＩＤ［３：０］は、ライトアドレス識別子ＡＷＩＤ［３：０］と一致していなければならない。
【００５３】
ライトレスポンスＢＲＥＳＰ［１：０］は、ライトトランザクションによるデータ転送の状態を示す２ビットの信号である。信号内容の詳細については後述する。
【００５４】
ライトレスポンスバリッドＢＶＡＬＩＤは、ライトレスポンスの有効性を示すバリッド信号である。レスポンスレディＢＲＥＡＤＹは、マスタ１００がライトレスポンスを受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、ライトレスポンスバリッドＢＶＡＬＩＤおよびレスポンスレディＢＲＥＡＤＹがともにアサートされているときに、ライトレスポンスの伝達が行われる。
【００５５】
［マスタリード整合部の構成］
図８は、本発明の第１の実施の形態におけるマスタリード整合部４１０の構成例を示す図である。このマスタリード整合部４１０は、マルチプレクサ４１１および４１２と、リセット優先ＳＲフリップフロップ４２１と、論理和ゲート４２２とを備える。
【００５６】
マルチプレクサ４１１および４１２は、マスタ切断信号４０９に従って何れかの入力を選択して出力するものである。マルチプレクサ４１１は、マスタ切断信号４０９が非切断（例えば「０」）を示している場合にはリードアドレスバリッドＳ＿ＡＲＶＡＬＩＤ信号を出力し、マスタ切断信号４０９が切断（例えば「１」）を示している場合には定数値「０」を出力する。このマルチプレクサ４１１の出力は、リセット優先ＳＲフリップフロップ４２１のＳ入力端子および論理和ゲート４２２の一方の入力端子に入力される。マルチプレクサ４１２は、マスタ切断信号４０９が非切断を示している場合にはリードレディＳ＿ＲＲＥＡＤＹ信号を出力し、マスタ切断信号４０９が切断を示している場合には定数値「１」を出力する。このマルチプレクサ４１２の出力は、リードレディＭ＿ＲＲＥＡＤＹ信号として出力される。
【００５７】
リセット優先ＳＲフリップフロップ４２１は、セット入力Ｓがアサートされると次サイクルでセットされ、リセット入力Ｒがアサートされると次サイクルでリセットされるフリップフロップである。セット入力Ｓとリセット入力Ｒが同時にアサートされた場合にはリセット入力Ｒが優先されて、次サイクルでリセットされる。何れの入力もアサートされなければ、次サイクルの出力Ｑ［ｔ］は直前サイクルの出力Ｑ［ｔ−１］をそのまま示すことになる。図９は、本発明の第１の実施の形態におけるリセット優先ＳＲフリップフロップ４２１の動作の真理値表を示す図である。このリセット優先ＳＲフリップフロップ４２１の出力は、論理和ゲート４２２の一方の入力端子に入力される。
【００５８】
論理和ゲート４２２は、マルチプレクサ４１１の出力およびリセット優先ＳＲフリップフロップ４２１の出力の論理和（ＯＲ）演算を行う論理ゲートである。この論理和ゲート４２２の出力は、リードアドレスバリッドＭ＿ＡＲＶＡＬＩＤ信号として出力される。
【００５９】
［マスタリード整合部の動作］
リードアドレスチャンネルにおいて、リードアドレスバリッドＳ＿ＡＲＶＡＬＩＤ信号はマルチプレクサ４１１による切替対象となるが、他の信号については透過的でありそのまま信号が通過するようになっている。なお、この図ではリードアドレスバリッドＡＲＶＡＬＩＤ信号およびリードアドレスレディＡＲＲＥＡＤＹ信号以外の信号を総称してＡＲ＊と表している。
【００６０】
リードデータチャンネルにおいて、リードレディＳ＿ＲＲＥＡＤＹ信号はマルチプレクサ４１２による切替え対象となるが、他の信号については透過的でありそのまま信号が通過するようになっている。なお、この図ではリードバリッドＲＶＡＬＩＤ信号およびリードレディＲＲＥＡＤＹ信号以外の信号を総称してＲ＊と表している。
【００６１】
マスタ切断信号４０９が切断を示す場合、マルチプレクサ４１１および４１２は固定値である「０」および「１」をそれぞれ出力する。これにより、リードアドレスバリッドＳ＿ＡＲＶＡＬＩＤ信号が「０」になったときと同じ状態となり、マスタ１００がリードアドレスの発行を常に停止しているように振舞う。ただし、ＡＸＩプロトコルの規定上、一旦ＶＡＬＩＤ信号を「１」にアサートした場合には、ＲＥＡＤＹ信号を受けて転送が成立するまではＶＡＬＩＤ信号を「０」に戻してはいけないことになっている。そこで、リセット優先ＳＲフリップフロップ４２１を用いることにより、Ｍ＿ＡＲＶＡＬＩＤ信号が「１」かつＭ＿ＡＲＲＥＡＤＹ信号が「０」の状態においてマスタ切断信号４０９が切断を示すようにアサートされた場合の不都合を解消している。すなわち、この場合、Ｍ＿ＡＲＲＥＡＤＹ信号が「１」になるまでは、Ｍ＿ＡＲＶＡＬＩＤ信号は「１」のまま維持される。これにより、マスタ切断信号４０９が切断を示す場合であっても、リードアドレスチャンネルにおいて正常なＡＸＩプロトコルが保証される。また、リードデータチャンネルにおいては、マスタ切断信号４０９が切断を示す場合にはリードレディＳ＿ＲＲＥＡＤＹ信号が「１」になったときと同じ状態となり、マスタ１００がリードデータを常に受信可能であるように振舞う。
【００６２】
つまり、マスタ切断信号４０９が切断を示す場合には、マスタリード整合部４１０はインターコネクト３００に対するリードアドレスの発行を停止し、既に発行済のリードアドレスに対するリードデータを全て受信し、それらを破棄する。このとき、マスタ切断信号４０９を非切断から切断を示すように変化させる前後において、ＡＸＩプロトコルは正しいまま引き継がれる。
【００６３】
［マスタライト整合部の構成］
図１０は、本発明の第１の実施の形態におけるマスタライト整合部４５０の構成例を示す図である。このマスタライト整合部４５０は、マルチプレクサ４５１乃至４５４と、ＦＩＦＯ６０１と、論理積ゲート４６１乃至４６６と、リセット優先ＳＲフリップフロップ４７１と、論理和ゲート４７２と、カウンタ４８１と、比較器４８２とを備える。
【００６４】
マルチプレクサ４５１乃至４５４は、マスタ切断信号４０９に従って何れかの入力を選択して出力するものである。マルチプレクサ４５１は、マスタ切断信号４０９が非切断（例えば「０」）を示している場合にはライトアドレスバリッドＳ＿ＡＷＶＡＬＩＤ信号を出力し、マスタ切断信号４０９が切断（例えば「１」）を示している場合には定数値「０」を出力する。このマルチプレクサ４５１の出力は、リセット優先ＳＲフリップフロップ４７１のＳ入力端子および論理和ゲート４７２の一方の入力端子に入力される。
【００６５】
マルチプレクサ４５２は、マスタ切断信号４０９が非切断を示している場合にはライトバリッドＳ＿ＷＶＡＬＩＤ信号を出力し、マスタ切断信号４０９が切断を示している場合には定数値「１」を出力する。このマルチプレクサ４５２の出力は、論理積ゲート４６６の一方の入力端子に入力される。
【００６６】
マルチプレクサ４５３は、マスタ切断信号４０９が非切断を示している場合にはライトデータチャンネルのＳ＿ＷＶＡＬＩＤ信号およびＳ＿ＷＲＥＡＤＹ信号以外の信号Ｓ＿Ｗ＊をそのまま出力する。一方、マスタ切断信号４０９が切断を示している場合には、マルチプレクサ４５３は信号Ｓ＿Ｗ＊のうちライトストローブＷＳＴＲＢ［３：０］の４ビットを全てオフにして出力する。このマルチプレクサ４５３の出力は、ライトデータチャンネルのＭ＿ＷＶＡＬＩＤ信号、Ｍ＿ＷＲＥＡＤＹ信号およびＭ＿ＷＬＡＳＴ信号以外の信号Ｍ＿Ｗ＊として出力される。
【００６７】
マルチプレクサ４５４は、マスタ切断信号４０９が非切断を示している場合にはレスポンスレディＳ＿ＢＲＥＡＤＹ信号を出力し、マスタ切断信号４０９が切断を示している場合には定数値「１」を出力する。このマルチプレクサ４５４の出力は、ライトレスポンスチャンネルのＭ＿ＢＶＡＬＩＤ信号およびＭ＿ＢＲＥＡＤＹ信号以外の信号Ｍ＿Ｂ＊として出力される。
【００６８】
ＦＩＦＯ６０１は、先入れ先出し（ＦＩＦＯ：First-In First-Out）方式のバッファである。このＦＩＦＯ６０１は、図１１（ａ）のＦＩＦＯ６００のように、データ入力側とデータ出力側に端子が分けられている。すなわち、データ入力側においては、プッシュ入力ＰＵＳＨがアサートされたタイミングにおいて、データ入力ＤＩＮのデータが取り込まれる。ＦＩＦＯ６００内の容量が満杯になるまでＲＥＡＤＹ出力は有効である旨を示す。データ出力側においては、ＰＯＰ入力がアサートされたタイミングにおいて、データ出力ＤＯＵＴからデータが引き抜かれる。データが引き抜かれるまでは、ＦＩＦＯの順序で先頭のデータがデータ出力ＤＯＵＴから出力され続ける。ＦＩＦＯ６００内に少なくとも１つのデータが保持されている場合にＶＡＬＩＤ出力は有効である旨を示す。このＦＩＦＯ６０１は、少なくとも１つのエントリを備え、ライトアドレスチャンネルのうちのバースト長Ｓ＿ＡＷＬＥＮ信号を各エントリに保持する。ここのＦＩＦＯ６０１内に保持されるエントリ数は、一般にライトアドレスチャンネルのアウトスタンディング数を考慮して決定される。
【００６９】
図１１（ｂ）のＦＩＦＯ６００の動作例において、タイミングｔ０はＦＩＦＯ６００が空の状態であり、ＲＥＡＤＹ出力は「１」、ＶＡＬＩＤ出力は「０」である。タイミングｔ１でＤＩＮ入力にデータＡがＰＵＳＨされると、タイミングｔ２でＤＯＵＴ出力にデータＡが出力されるようになる。タイミングｔ２ではデータをＰＯＰしていないため、タイミングｔ３でも引き続きＤＯＵＴ出力にデータＡが出力されている。タイミングｔ５のＰＵＳＨにより、タイミングｔ６で保持データ数が４つとなり、ＲＥＡＤＹ出力が「０」となっている。タイミングｔ６のＰＯＰにより、タイミングｔ７で再度ＲＥＡＤＹ出力が「１」となり、ＰＯＰを続けることにより、タイミングｔ１０でＦＩＦＯ６００は空となり、ＶＡＬＩＤ出力が「１」となっている。
【００７０】
リセット優先ＳＲフリップフロップ４７１は、セット入力Ｓがアサートされると次サイクルでセットされ、リセット入力Ｒがアサートされると次サイクルでリセットされるフリップフロップである。論理和ゲート４７２は、マルチプレクサ４５１の出力およびリセット優先ＳＲフリップフロップ４７１の出力の論理和（ＯＲ）演算を行う論理ゲートである。リセット優先ＳＲフリップフロップ４７１および論理和ゲート４７２の機能は、図８において説明したリセット優先ＳＲフリップフロップ４２１および論理和ゲート４２２と同様である。
【００７１】
カウンタ４８１は、バースト転送開始前に「０」にリセットされ、各転送が行われるたびに１つずつインクリメントされるバースト転送回数カウンタである。比較器４８２は、カウンタ４８１の出力とＦＩＦＯ６０１のデータ出力ＤＯＵＴ、すなわちバースト長ＡＷＬＥＮとを比較するものである。この比較器４８２の出力は、ラストライトＭ＿ＷＬＡＳＴとして出力される。すなわち、カウンタ４８１および比較器４８２により、バースト転送の最終データのタイミングが検出される。なお、カウンタ４８１をリセットするタイミングは、バースト転送開始時でもよく、また、前回のバースト転送において最終データが検出された際でもよい。
【００７２】
論理積ゲート４６１は、ＦＩＦＯ６０１のＲＥＡＤＹ出力とライトアドレスチャンネルのライトアドレスレディＭ＿ＡＷＲＥＡＤＹ信号との論理積（ＡＮＤ）演算を行うものである。この論理積ゲート４６１の出力は、ライトアドレスチャンネルのライトアドレスレディＳ＿ＡＷＲＥＡＤＹ信号として出力される。すなわち、ＦＩＦＯ６０１のＲＥＡＤＹ出力が有効を示しているときのみ、ライトアドレスレディＳ＿ＡＷＲＥＡＤＹ信号が「受け取ることができる状態」を示すように制御される。
【００７３】
論理積ゲート４６２は、マルチプレクサ４５１の出力とライトアドレスチャンネルのライトアドレスレディＳ＿ＡＷＲＥＡＤＹ信号との論理積演算を行うものである。この論理積ゲート４６２の出力は、ＦＩＦＯ６０１のＰＵＳＨ入力に出力される。すなわち、ライトアドレスチャンネルの転送が成立する場合に、ライトアドレスチャンネルのバースト長Ｓ＿ＡＷＬＥＮ［３：０］がＦＩＦＯ６０１に取り込まれるように制御する。
【００７４】
論理積ゲート４６３は、論理和ゲート４７２の出力とＦＩＦＯ６０１のＲＥＡＤＹ出力との論理積演算を行うものである。この論理積ゲート４６３の出力は、ライトアドレスバリッドＭ＿ＡＷＶＡＬＩＤ信号として出力される。すなわち、ＦＩＦＯ６０１に空き容量が残っている場合にのみ、ライトアドレスバリッドＭ＿ＡＷＶＡＬＩＤ信号が有効になるように制御される。
【００７５】
論理積ゲート４６４は、ＦＩＦＯ６０１のＶＡＬＩＤ出力とライトレディＭ＿ＷＲＥＡＤＹ信号との論理積演算を行うものである。この論理積ゲート４６４の出力は、ライトレディＳ＿ＷＲＥＡＤＹ信号として出力される。すなわち、ＦＩＦＯ６０１に有効なデータが保持されているときのみ、ライトレディＳ＿ＷＲＥＡＤＹ信号がアサートされるように制御される。
【００７６】
論理積ゲート４６５は、論理積ゲート４６６の出力と比較器４８２の出力とライトレディＭ＿ＷＲＥＡＤＹ信号との論理積演算を行うものである。この論理積ゲート４６５の出力は、ＦＩＦＯ６０１のＰＯＰ入力に出力される。すなわち、バースト転送の最終データ（最終ビート）が転送された際に、ＦＩＦＯ６０１に保持されていた先頭のデータ（ＡＷＬＥＮ［３：０］）を引き抜くように制御される。
【００７７】
論理積ゲート４６６は、マルチプレクサ４５２の出力とＦＩＦＯ６０１のＶＡＬＩＤ出力との論理積演算を行うものである。この論理積ゲート４６６の出力は、ライトバリッドＭ＿ＷＶＡＬＩＤ信号として出力される。すなわち、ＦＩＦＯ６０１に有効なデータが保持されているときのみ、ライトバリッドＭ＿ＷＶＡＬＩＤ信号がアサートされるように制御される。
【００７８】
マスタ切断信号４０９が非切断を示している場合について説明する。ライトアドレスバリッドＡＷＶＡＬＩＤ信号およびライトアドレスレディＡＷＲＥＡＤＹ信号以外のライトアドレスチャネルの信号ＡＷ＊については透過的でありそのまま信号が通過するようになっている。転送成立時、すなわちＡＷＶＡＬＩＤ信号およびＡＷＲＥＡＤＹ信号がともにアサートされた時には、ＦＩＦＯ６０１にバースト長Ｓ_ＡＷＬＥＮが取り込まれる。ＦＩＦＯ６０１に空きエントリが無くなると、ＡＷＶＡＬＩＤ信号およびＡＷＲＥＡＤＹ信号がともに「０」にデアサートされ、ＦＩＦＯ６０１に空きエントリができるまでライトアドレスチャンネル転送成立が抑止される。
【００７９】
ライトバリッドＷＶＡＬＩＤ信号およびライトレディＷＲＥＡＤＹ信号以外のライトデータチャネルの信号Ｗ＊も透過的でありそのまま信号が通過するようになっている。信号Ｗ＊のバースト転送の最終データの転送成立時、すなわちＷＶＡＬＩＤ信号、ＷＲＥＡＤＹ信号およびＷＬＡＳＴ信号がともにアサートされたとき、ＦＩＦＯ６０１の先頭に保持されていたバースト長ＡＷＬＥＮが引き抜かれる。ＦＩＦＯ６０１が空の場合、Ｍ＿ＷＶＡＬＩＤおよびＳ＿ＷＲＥＡＤＹがともにデアサートされ、有効エントリが投入されるまでライトデータチャネルの転送成立が抑止される。
【００８０】
マスタ切断信号４０９が切断を示している場合、マルチプレクサ４５１乃至４５４の各々は、固定値側を選択する。ライトアドレスチャンネルについては、マルチプレクサ４５１によりライトアドレスバリッドＳ＿ＡＷＶＡＬＩＤ信号が「０」になったときと同じ状態となり、マスタ１００がライトアドレスの発行を常に停止しているように振舞う。ただし、ＡＸＩプロトコルの規定上、一旦ＶＡＬＩＤ信号を「１」にアサートした場合には、ＲＥＡＤＹ信号を受けて転送が成立するまではＶＡＬＩＤ信号を「０」に戻してはいけないことになっている。そこで、マスタリード整合部４１０と同様に、リセット優先ＳＲフリップフロップ４７１および論理和ゲート４７２を用いることにより、不都合を解消している。すなわち、この場合、Ｍ＿ＡＷＲＥＡＤＹ信号が「１」になるまでは、Ｍ＿ＡＷＶＡＬＩＤ信号は「１」のまま維持される。これにより、マスタ切断信号４０９が切断を示す場合であっても、ライトアドレスチャンネルにおいて正常なＡＸＩプロトコルが保証される。
【００８１】
また、ライトデータチャネルについては、マルチプレクサ４５２によりＳ＿ＷＶＡＬＩＤ信号が「１」に固定され、マルチプレクサ４５３によりライトデータチャネルのストローブ信号が「０」に固定される。これにより、マスタ１００の状態に関わらず、マスタ１００が書込みストローブオフの状態でライトトランザクションを常に発行しているように振舞う。
【００８２】
また、ライトレスポンスチャネルについては、マルチプレクサ４５４によりＳ＿ＢＲＥＡＤＹ信号が「１」に固定される。これにより、マスタ１００の状態に関わらず、マスタ１００がライトレスポンスを常に受信可能であるように振舞う。
【００８３】
つまり、マスタ切断信号４０９が切断を示す場合には、マスタライト整合部４５０はインターコネクト３００に対するライトアドレスの発行を停止し、既に発行済みのライトアドレスに対応するライトデータを書込みストローブオフの状態で発行する。そして、ライトレスポンスについては全て受信し、破棄する。このとき、マスタ切断信号４０９を非切断から切断を示すように変化させる前後において、ＡＸＩプロトコルは正しいまま引き継がれる。
【００８４】
［スレーブプロトコル整合部の構成］
図１２は、本発明の第１の実施の形態におけるスレーブプロトコル整合部５０１の構成例を示す図である。このスレーブプロトコル整合部５０１は、スレーブリード整合部５１０と、スレーブライト整合部５５０とを備えている。スレーブリード整合部５１０およびスレーブライト整合部５５０には、共通のスレーブ切断信号５０９が入力される。
【００８５】
スレーブリード整合部５１０は、対応するスレーブ２００によるリード動作中にそのスレーブ２００が切断された場合に、プロトコル上の整合性を担保するためのものである。上述のように、ＡＸＩプロトコルでは、リード動作のためのパスとして、リードアドレスチャンネルおよびリードデータチャンネルが用意されており、スレーブリード整合部５１０は両者における整合性を担保する。
【００８６】
スレーブライト整合部５５０は、対応するスレーブ２００によるライト動作中にそのスレーブ２００が切断された場合に、プロトコル上の整合性を担保するためのものである。上述のように、ＡＸＩプロトコルでは、ライト動作のためのパスとして、ライトアドレスチャンネル、ライトデータチャンネルおよびライトレスポンスチャンネルが用意されており、スレーブライト整合部５５０はこれらにおける整合性を担保する。
【００８７】
［スレーブリード整合部の構成］
図１３は、本発明の第１の実施の形態におけるスレーブリード整合部５１０の構成例を示す図である。このスレーブリード整合部５１０は、マルチプレクサ５１１乃至５１３と、論理積ゲート５２１乃至５２６と、ＦＩＦＯ６０２と、カウンタ５３１と、比較器５３２とを備える。
【００８８】
マルチプレクサ５１１乃至５１３は、スレーブ切断信号５０９に従って何れかの入力を選択して出力するものである。マルチプレクサ５１１は、スレーブ切断信号５０９が非切断（例えば「０」）を示している場合にはリードアドレスレディＭ＿ＡＲＲＥＡＤＹ信号を出力し、スレーブ切断信号５０９が切断（例えば「１」）を示している場合には定数値「１」を出力する。このマルチプレクサ５１１の出力は、論理積ゲート５２１の一方の入力端子に入力される。
【００８９】
マルチプレクサ５１２は、スレーブ切断信号５０９が非切断を示している場合にはリードバリッドＭ＿ＲＶＡＬＩＤ信号を出力し、スレーブ切断信号５０９が切断を示している場合には定数値「１」を出力する。このマルチプレクサ５１２の出力は、論理積ゲート５２４の一方の入力端子に入力される。
【００９０】
マルチプレクサ５１３は、スレーブ切断信号５０９が非切断を示している場合にはリードデータチャンネルのＭ＿ＲＶＡＬＩＤ信号およびＭ＿ＲＲＥＡＤＹ信号以外の信号Ｍ＿Ｒ＊をそのまま出力する。一方、スレーブ切断信号５０９が切断を示している場合には信号Ｍ＿Ｒ＊のうちのリードレスポンスＲＲＥＳＰ［１：０］信号についてエラー応答を示すように設定する。図１４は、ＡＸＩプロトコルにおけるリードレスポンスＲＲＥＳＰ信号およびライトレスポンスＢＲＥＳＰ信号の意味を示す図である。これによれば、通常アクセスが正常に完了した場合には、リードレスポンスＲＲＥＳＰ［１：０］信号は「００」を示す。排他アクセスが正常に完了した場合には、リードレスポンスＲＲＥＳＰ［１：０］信号は「０１」を示す。スレーブ２００においてエラーが発生した場合には、リードレスポンスＲＲＥＳＰ［１：０］信号は「１０」を示す。また、アドレスが適正ではない等のデコードエラーが発生した場合には、リードレスポンスＲＲＥＳＰ［１：０］信号は「１１」を示す。本発明の実施の形態では、スレーブ切断信号５０９が切断を示している場合には、マルチプレクサ５１３においてリードレスポンスＲＲＥＳＰ［１：０］信号としてエラー応答を意味する「１０」を設定する。
【００９１】
ＦＩＦＯ６０２は、先入れ先出し（ＦＩＦＯ）方式のバッファである。このＦＩＦＯ６０２は、ＦＩＦＯ６０１と同様に、図１１のＦＩＦＯ６００の機能を有する。このＦＩＦＯ６０２は、少なくとも１つのエントリを備え、リードアドレスチャンネルのうちのリードアドレス識別子Ｓ＿ＡＲＩＤ信号およびバースト長Ｓ＿ＡＲＬＥＮ信号を各エントリに保持する。ＦＩＦＯ６０２に保持されたバースト長ＡＲＬＥＮは比較器５３２の一方の入力端子に出力され、リードアドレス識別子ＡＲＩＤはリード識別子Ｓ＿ＲＩＤとして出力される。このＦＩＦＯ６０２内に保持されるエントリ数は、一般にリードアドレスチャンネルのアウトスタンディング数を考慮して決定される。
【００９２】
カウンタ５３１は、バースト転送開始前に「０」にリセットされ、各転送が行われるたびに１つずつインクリメントされるバースト転送回数カウンタである。
【００９３】
比較器５３２は、カウンタ５３１の出力とＦＩＦＯ６０２のデータ出力ＤＯＵＴのうちのバースト長ＡＲＬＥＮとを比較するものである。この比較器５３２の出力は、リードラストＳ＿ＲＬＡＳＴとして出力される。すなわち、カウンタ５３１および比較器５３２により、バースト転送の最終データのタイミングが検出される。なお、カウンタ５３１をリセットするタイミングは、バースト転送開始時でもよく、また、前回のバースト転送において最終データが検出された際でもよい。
【００９４】
論理積ゲート５２１は、マルチプレクサ５１１の出力とＦＩＦＯ６０２のＲＥＡＤＹ出力との論理積（ＡＮＤ）演算を行うものである。この論理積ゲート５２１の出力は、リードアドレスレディＳ＿ＡＲＲＥＡＤＹ信号として出力される。すなわち、ＦＩＦＯ６０２のＲＥＡＤＹ出力が有効を示しているときのみ、リードアドレスレディＳ＿ＡＲＲＥＡＤＹ信号が「受け取ることができる状態」を示すように制御される。
【００９５】
論理積ゲート５２２は、リードアドレスバリッドＳ＿ＡＲＶＡＬＩＤ信号とリードアドレスレディＳ＿ＡＲＲＥＡＤＹ信号との論理積演算を行うものである。この論理積ゲート５２２の出力は、ＦＩＦＯ６０２のＰＵＳＨ入力に入力される。すなわち、Ｓ＿ＡＲＶＡＬＩＤ信号およびＳ＿ＡＲＲＥＡＤＹ信号がともにアサートされてリードアドレスが伝達されたときに、ＦＩＦＯ６０２にリードアドレスチャンネルのＳ＿ＡＲＩＤ信号およびＳ＿ＡＲＬＥＮ信号が取り込まれるように制御される。
【００９６】
論理積ゲート５２３は、リードアドレスバリッドＳ＿ＡＲＶＡＬＩＤ信号とＦＩＦＯ６０２のＲＥＡＤＹ出力との論理積演算を行うものである。この論理積ゲート５２３の出力は、リードアドレスバリッドＭ＿ＡＲＶＡＬＩＤ信号として出力される。すなわち、ＦＩＦＯ６０２に空き容量が残っているときのみ、リードアドレスバリッドＭ＿ＡＲＶＡＬＩＤ信号がアサートされるように制御される。
【００９７】
論理積ゲート５２４は、マルチプレクサ５１２の出力とＦＩＦＯ６０２のＶＡＬＩＤ出力との論理積演算を行うものである。この論理積ゲート５２４の出力は、リードバリッドＳ＿ＲＶＡＬＩＤ信号として出力される。すなわち、ＦＩＦＯ６０２に有効なデータが保持されているときのみ、リードバリッドＳ＿ＲＶＡＬＩＤ信号がアサートされるように制御される。
【００９８】
論理積ゲート５２５は、リードバリッドＳ＿ＲＶＡＬＩＤ信号とリードレディＳ＿ＲＲＥＡＤＹ信号と比較器５３２の出力との論理積演算を行うものである。この論理積ゲート５２５の出力は、ＦＩＦＯ６０２のＰＯＰ入力に出力される。すなわち、バースト転送の最終データ（最終ビート）が転送された際に、ＦＩＦＯ６０２に保持されていた先頭のデータ（ＡＲＩＤ［３：０］およびＡＷＬＥＮ［３：０］）を引き抜くように制御される。
【００９９】
論理積ゲート５２６は、リードレディＳ＿ＲＲＥＡＤＹ信号とＦＩＦＯ６０２のＶＡＬＩＤ出力との論理積演算を行うものである。この論理積ゲート５２６の出力は、リードレディＭ＿ＲＲＥＡＤＹ信号として出力される。すなわち、ＦＩＦＯ６０２に有効なデータが保持されているときのみ、リードレディＭ＿ＲＲＥＡＤＹ信号がアサートされるように制御される。
【０１００】
［スレーブリード整合部の動作］
スレーブ切断信号５０９が非切断を示している場合について説明する。リードアドレスバリッドＡＲＶＡＬＩＤ信号およびリードアドレスレディＡＲＲＥＡＤＹ信号以外のリードアドレスチャネルの信号ＡＲ＊については透過的でありそのまま信号が通過するようになっている。転送成立時、すなわちＡＲＶＡＬＩＤ信号およびＡＲＲＥＡＤＹ信号がともにアサートされた時には、ＦＩＦＯ６０２にリードアドレス識別子Ｓ＿ＡＲＩＤおよびバースト長Ｓ_ＡＷＬＥＮが取り込まれる。ＦＩＦＯ６０２に空きエントリが無くなると、論理積ゲート５２１および５２３によりリードアドレスレディＳ＿ＡＲＲＥＡＤＹ信号およびリードアドレスバリッドＭ＿ＡＲＶＡＬＩＤ信号がともに「０」にデアサートされる。これにより、ＦＩＦＯ６０２に空きエントリができるまでリードアドレスチャンネル転送成立が抑止される。また、このリードアドレスチャンネルにおいて、リードアドレス識別子Ｍ＿ＡＲＩＤは固定値とされるか、もしくは、識別子自体が削除される。これにより、リードアドレス信号ＡＲ＊に対するリードデータ信号Ｒ＊は順序不変（in-order）となる。
【０１０１】
リードデータチャネルでは、リード識別子Ｓ＿ＲＩＤおよびリードラストＳ＿ＲＬＡＳＴについてはスレーブリード整合部５１０内で生成され、他の信号Ｒ＊は透過的である。バースト転送の最終データの転送成立時、すなわちＲＶＡＬＩＤ、ＲＲＥＡＤＹおよびＲＬＡＳＴが全てアサートされた場合に、ＦＩＦＯ６０２から先頭エントリのリードアドレス識別子ＡＲＩＤおよびバースト長ＡＲＬＥＮが引き抜かれる。すなわち、リードアドレスチャネルの転送成立時に取り込まれたリードアドレス識別子Ｓ＿ＡＲＩＤおよびバースト長Ｓ＿ＡＲＬＥＮが、対応するバースト転送の終了時までＦＩＦＯ６０２に保持される。先頭のエントリがデータ出力ＤＯＵＴに出力されており、リードアドレス識別子ＡＲＩＤがＳ＿ＲＩＤとなり、バースト長ＡＲＬＥＮがデータバースト最終データの検出に用いられる。ＦＩＦＯ６０２が空の場合、リードバリッドＳ＿ＲＶＡＬＩＤおよびリードレディＭ＿ＲＲＥＡＤＹがともに「０」にデアサートされ、有効エントリが取り込まれるまでリードデータチャネル転送成立が抑止される。
【０１０２】
ＦＩＦＯ６０２が出力するバースト長ＡＲＬＥＮとカウンタ５３１の出力とが一致した場合、リードラストＳ＿ＲＬＡＳＴが「１」にアサートされる。例えば、バースト長ＡＲＬＥＮが「０」（バースト長が１）の場合、バースト転送の最初のデータでＳ＿ＲＬＡＳＴが「１」となる。また、ＡＲＬＥＮが「３」（バースト長が４）の場合、バースト転送の最初の３つのデータビート転送成立後にカウンタ５３１の値が「３」となり、リードラストＳ＿ＲＬＡＳＴが「１」となる。
【０１０３】
スレーブ切断信号５０９が切断を示している場合、マルチプレクサ５１１乃至５１３の各々は、固定値側を選択する。リードアドレスチャンネルについては、マルチプレクサ５１１によりリードアドレスレディＳ＿ＡＲＲＥＡＤＹ信号が「１」になったときと同じ状態となり、スレーブ２００がリードアドレスＡＲ＊を常に受信可能であるように振舞う。また、リードデータチャンネルについては、マルチプレクサ５１２によりリードバリッドＭ＿ＲＶＡＬＩＤが「１」に固定され、マルチプレクサ５１３によりリードデータのうちリードレスポンスＲＲＥＳＰがエラー情報を示す固定値「１０」に設定される。これにより、スレーブ２００の状態に関わらず、スレーブ２００がリードデータＲ＊を固定値で常に送出しているように振舞う。
【０１０４】
つまり、スレーブ切断信号５０９が切断を示す場合には、スレーブリード整合部５１０が実際のスレーブ２００に代わってリードアドレス送出元に対して応答を始め、スレーブ２００が出力する信号は全て無視される。このとき、スレーブ切断信号５０９を非切断から切断を示すように変化させる前後において、ＡＸＩプロトコルは正しいまま引き継がれる。
【０１０５】
［スレーブライト整合部の構成］
図１５は、本発明の第１の実施の形態におけるスレーブライト整合部５５０の構成例を示す図である。このスレーブライト整合部５５０は、マルチプレクサ５５１乃至５５４と、論理積ゲート５６１乃至５６６と、ＦＩＦＯ６０３とを備える。
【０１０６】
マルチプレクサ５５１乃至５５４は、スレーブ切断信号５０９に従って何れかの入力を選択して出力するものである。マルチプレクサ５５１は、スレーブ切断信号５０９が非切断（例えば「０」）を示している場合にはライトアドレスレディＭ＿ＡＷＲＥＡＤＹ信号を出力し、スレーブ切断信号５０９が切断（例えば「１」）を示している場合には定数値「１」を出力する。このマルチプレクサ５５１の出力は、ライトアドレスレディＳ＿ＡＷＲＥＡＤＹ信号として出力される。
【０１０７】
マルチプレクサ５５２は、スレーブ切断信号５０９が非切断を示している場合にはライトレディＭ＿ＷＲＥＡＤＹ信号を出力し、スレーブ切断信号５０９が切断を示している場合には定数値「１」を出力する。このマルチプレクサ５５２の出力は、論理積ゲート５６１の一方の入力端子に入力される。
【０１０８】
マルチプレクサ５５３は、スレーブ切断信号５０９が非切断を示している場合にはライトレスポンスバリッドＭ＿ＢＶＡＬＩＤ信号を出力し、スレーブ切断信号５０９が切断を示している場合には定数値「１」を出力する。このマルチプレクサ５５３の出力は、論理積ゲート５６４の一方の入力端子に入力される。
【０１０９】
マルチプレクサ５５４は、スレーブ切断信号５０９が非切断を示している場合にはライトレスポンスチャンネルのＭ＿ＢＶＡＬＩＤ信号およびＭ＿ＢＲＥＡＤＹ信号以外の信号Ｍ＿Ｂ＊をそのまま出力する。一方、スレーブ切断信号５０９が切断を示している場合には信号Ｍ＿Ｂ＊のうちのライトレスポンスＢＲＥＳＰ［１：０］信号についてエラー応答を示すように設定する。ライトレスポンスＢＲＥＳＰ［１：０］信号の意味内容は図１４により説明したリードレスポンスＲＲＥＳＰ［１：０］信号と同様である。
【０１１０】
ＦＩＦＯ６０３は、先入れ先出し（ＦＩＦＯ）方式のバッファである。このＦＩＦＯ６０３は、ＦＩＦＯ６０１と同様に、図１１のＦＩＦＯ６００の機能を有する。このＦＩＦＯ６０３は、少なくとも１つのエントリを備え、ライトデータチャンネルのうちのライト識別子タグＳ＿ＷＩＤ信号を各エントリに保持する。ＦＩＦＯ６０３に保持されたライト識別子タグＷＩＤはライトレスポンスチャンネルのレスポンス識別子Ｓ＿ＢＩＤとして出力される。このＦＩＦＯ６０３内に保持されるエントリ数は、一般にライトアドレスチャンネルおよびライトデータチャンネルのアウトスタンディング数を考慮して決定される。
【０１１１】
論理積ゲート５６１は、マルチプレクサ５５２の出力とＦＩＦＯ６０３のＲＥＡＤＹ出力との論理積（ＡＮＤ）演算を行うものである。この論理積ゲート５６１の出力は、ライトレディＳ＿ＷＲＥＡＤＹ信号として出力される。すなわち、ＦＩＦＯ６０３のＲＥＡＤＹ出力が有効を示しているときのみ、ライトレディＳ＿ＷＲＥＡＤＹ信号が「受け取ることができる状態」を示すように制御される。
【０１１２】
論理積ゲート５６２は、ライトバリッドＳ＿ＷＶＡＬＩＤ信号と論理積ゲート５６１の出力とライトデータチャンネルのうちのライトラストＳ＿ＷＬＡＳＴ信号との論理積演算を行うものである。この論理積ゲート５６２の出力は、ＦＩＦＯ６０３のＰＵＳＨ入力に出力される。すなわち、バースト転送の最終データ（最終ビート）が転送された際に、ライト識別子タグＳ＿ＷＩＤを取り込むように制御される。
【０１１３】
論理積ゲート５６３は、ライトバリッドＳ＿ＷＶＡＬＩＤ信号とＦＩＦＯ６０３のＲＥＡＤＹ出力との論理積演算を行うものである。この論理積ゲート５６３の出力は、ライトバリッドＭ＿ＷＶＡＬＩＤ信号として出力される。すなわち、ＦＩＦＯ６０３に空き容量が残っているときのみ、ライトバリッドＭ＿ＷＶＡＬＩＤ信号がアサートされるように制御される。
【０１１４】
論理積ゲート５６４は、マルチプレクサ５５３の出力とＦＩＦＯ６０３のＶＡＬＩＤ出力との論理積演算を行うものである。この論理積ゲート５６４の出力は、ライトレスポンスバリッドＳ＿ＢＶＡＬＩＤ信号として出力される。すなわち、ＦＩＦＯ６０３に有効なデータが保持されているときのみ、ライトレスポンスバリッドＳ＿ＢＶＡＬＩＤ信号がアサートされるように制御される。
【０１１５】
論理積ゲート５６５は、ライトレスポンスバリッドＳ＿ＢＶＡＬＩＤ信号とレスポンスレディＳ＿ＢＲＥＡＤＹ信号との論理積演算を行うものである。この論理積ゲート５６５の出力は、ＦＩＦＯ６０３のＰＯＰ入力に入力される。すなわち、ライトレスポンスバリッドＳ＿ＢＶＡＬＩＤ信号およびレスポンスレディＳ＿ＢＲＥＡＤＹ信号がともにアサートされてライトレスポンスが伝達されたときに、ＦＩＦＯ６０３に保持されていた先頭のライト識別子タグＷＩＤ［３：０］を引き抜くように制御される。
【０１１６】
論理積ゲート５６６は、レスポンスレディＳ＿ＢＲＥＡＤＹ信号とＦＩＦＯ６０３のＶＡＬＩＤ出力との論理積演算を行うものである。この論理積ゲート５６６の出力は、レスポンスレディＭ＿ＢＲＥＡＤＹ信号として出力される。すなわち、ＦＩＦＯ６０３に有効なデータが保持されているときのみ、レスポンスレディＭ＿ＢＲＥＡＤＹ信号がアサートされるように制御される。
【０１１７】
［スレーブライト整合部の動作］
ここでは、前提として、ＡＸＩプロトコルで規定されるライトデータインターリーブデプス（write data interleaving depth）は「１」であるものとする。これは、ライトアドレス発行順序とライトデータ発行順序が等しいことを意味する。
【０１１８】
スレーブ切断信号５０９が非切断を示している場合について説明する。このとき、ライトアドレスチャンネルにおいて、ライトアドレスバリッドＡＷＶＡＬＩＤ、ライトアドレスレディＡＷＲＥＡＤＹ、および、その他の信号ＡＷ＊は透過的でありそのまま信号が通過するようになっている。また、ライトデータチャンネルにおいて、ライトバリッドＷＶＡＬＩＤおよびライトレディＷＲＥＡＤＹ以外の信号Ｗ＊は透過的でありそのまま信号が通過するようになっている。
【０１１９】
ライトデータを含む信号Ｗ＊のバースト転送の最終データの転送成立時、すなわちＷＶＡＬＩＤ、ＷＲＥＡＤＹおよびＷＬＡＳＴの全てが「１」にアサートされたとき、ＦＩＦＯ６０３にライト識別子タグＷＩＤが取り込まれる。ＦＩＦＯ６０３に空きエントリが無くなると、Ｓ＿ＷＲＥＡＤＹおよびＭ＿ＷＶＡＬＩＤがともに「０」になり、ＦＩＦＯ６０３に空きエントリができるまでライトデータチャネル転送成立が抑止される。
【０１２０】
スレーブリード整合部５１０の場合と同様に、スレーブライト整合部５５０においても、ライトアドレス識別子Ｍ＿ＡＷＩＤおよびライト識別子Ｍ＿ＷＩＤは同一の固定値とされるか、もしくは、識別子自体が削除される。これにより、ライトアドレス信号ＡＷ＊およびライトデータ信号Ｗ＊に対するライトレスポンス信号Ｂ＊は順序不変（in-order）となる。
【０１２１】
ライトレスポンスチャネルに関して、レスポンス識別子Ｓ＿ＢＩＤはスレーブライト整合部５５０内で生成される。他のライトレスポンスバリッドＢＶＡＬＩＤおよびレスポンスレディＢＲＥＡＤＹ以外のライトレスポンス信号Ｂ＊は透過的でありそのまま信号が通過するようになっている。
【０１２２】
ライトレスポンスの転送成立時、すなわちＢＶＡＬＩＤおよびＢＲＥＡＤＹが「１」になるとき、ＦＩＦＯ６０３から識別子（ライト識別子タグＷＩＤとして取り込まれたもの）が引き抜かれ、レスポンス識別子Ｓ＿ＢＩＤとして出力される。すなわち、ライトデータの最終データの転送成立の際に取り込まれたライト識別子タグＳ＿ＷＩＤが、対応するライトレスポンスの転送終了時までＦＩＦＯ６０３のＤＯＵＴ出力に出力されていて、この出力がレスポンス識別子Ｓ＿ＢＩＤとなる。ＦＩＦＯ６０３が空の場合、ライトレスポンスバリッドＳ＿ＢＶＡＬＩＤとレスポンスレディＭ＿ＢＲＥＡＤＹをともに「０」として、有効エントリが保持されるまでライトレスポンスチャネル転送成立が抑止される。
【０１２３】
スレーブ切断信号５０９が切断を示している場合、マルチプレクサ５５１乃至５５４の各々は、固定値側を選択する。ライトアドレスチャンネルおよびライトデータチャンネルについては、マルチプレクサ５５１および５５２により、それぞれＭ＿ＡＷＲＥＡＤＹおよびＭ＿ＷＲＥＡＤＹが「１」に固定される。これにより、スレーブ２００の状態に関わらず、スレーブ２００がライトアドレスＡＷ＊およびライトデータＷ＊を常に受信可能であるように振舞う。さらに、マルチプレクサ５５３によりライトレスポンスバリッドＭ＿ＢＶＡＬＩＤが「１」に固定され、マルチプレクサ５５４によりライトレスポンスのうちライトレスポンスＢＲＥＳＰがエラー情報を示す固定値「１０」に設定される。これにより、スレーブ２００の状態に関わらず、スレーブ２００がライトレスポンスＢ＊を固定値で常に送出しているように振舞う。
【０１２４】
つまり、スレーブ切断信号５０９が切断を示す場合には、スレーブライト整合部５５０が実際のスレーブ２００に代わって、ライトアドレスおよびライトデータの送出元に対して応答を始め、スレーブ２００が出力する信号は全て無視される。このとき、スレーブ切断信号５０９を非切断から切断を示すように変化させる前後において、ＡＸＩプロトコルは正しいまま引き継がれる。ただし、応答となるライトレスポンスは、エラー情報を示す固定値となる。
【０１２５】
このように、本発明の第１の実施の形態によれば、マスタ切断信号４０９またはスレーブ切断信号５０９が切断を示す場合に、マスタ１００またはスレーブ２００に代わって相手先との応答を行うことができる。これにより、マスタ１００またはスレーブ２００をバスシステムから切断する際にもプロトコル上の整合性を担保することができる。
【０１２６】
＜２．第２の実施の形態＞
［バスシステムの全体構成］
図１６は、本発明の第２の実施の形態におけるバスシステムの全体構成例を示す図である。このバスシステムは、基本的な構成は第１の実施の形態と同様であるが、インターコネクト３００、マスタ切断ブリッジ４００およびスレーブ切断ブリッジ５００が常時通電領域３０となっている点が異なる。すなわち、この常時通電領域３０内にあるインターコネクト３００、マスタ切断ブリッジ４００およびスレーブ切断ブリッジ５００は、バスシステム全体が稼動している間は電源が切断されることはない、と想定する。これに対し、常時通電領域３０内にないマスタ１００およびスレーブ２００は、それぞれ個別に電源が供給され、バスシステムが稼動中であっても単体で電源のオンまたはオフが可能である、と想定する。
【０１２７】
［マスタ切断ブリッジの構成］
図１７は、本発明の第２の実施の形態におけるマスタ切断ブリッジ４００の構成例を示す図である。この第２の実施の形態におけるマスタ切断ブリッジ４００は、マスタプロトコル整合部４０１に加えて、信号クランプ部４０２を備える。
【０１２８】
信号クランプ部４０２は、マスタ切断信号４０９の状態に応じて、マスタ１００からの信号をクランプするものである。マスタ１００が個別に電源オフの状態となった際、マスタ１００からの入力が不安定な状態となるが、これをそのままマスタプロトコル整合部４０１に伝達してしまうと誤動作を生じるおそれがあり、また、電源からグランドへの貫通電流が流れるおそれがある。そこで、信号クランプ部４０２は、マスタ切断信号４０９が切断を示す場合に、電源レベルまたはグランドレベルにクランプした信号を出力する。一方、マスタ切断信号４０９が非切断を示す場合には、信号クランプ部４０２は入力信号をクランプせずにそのまま出力信号として出力する。
【０１２９】
なお、マスタプロトコル整合部４０１の構成は第１の実施の形態と同様である。
【０１３０】
［スレーブ切断ブリッジの構成］
図１８は、本発明の第２の実施の形態におけるスレーブ切断ブリッジ５００の構成例を示す図である。この第２の実施の形態におけるスレーブ切断ブリッジ５００は、スレーブプロトコル整合部５０１に加えて、信号クランプ部５０２を備える。
【０１３１】
信号クランプ部５０２は、スレーブ切断信号５０９の状態に応じて、スレーブ２００からの信号をクランプするものである。スレーブ２００が個別に電源オフの状態となった際、スレーブ２００からの入力が不安定な状態となった場合の、上述のような不都合を解消するためのものである。すなわち、信号クランプ部５０２は、スレーブ切断信号５０９が切断を示す場合に、電源レベルまたはグランドレベルにクランプした信号を出力する。一方、スレーブ切断信号５０９が非切断を示す場合には、信号クランプ部５０２は入力信号をクランプせずにそのまま出力信号として出力する。
【０１３２】
なお、スレーブプロトコル整合部５０１の構成は第１の実施の形態と同様である。
【０１３３】
［信号クランプ部の構成］
図１９は、本発明の第２の実施の形態における信号クランプ部４０２および５０２に用いられるクランプ回路の構成例を示す図である。同図（ａ）はハイクランプ回路７１０の例であり、同図（ｂ）はロークランプ回路７２０の例である。何れの回路を用いるかは、マスタプロトコル整合部４０１またはスレーブプロトコル整合部５０１の想定する信号レベルに依存する。マスタ１００またはスレーブ２００の電源がオフ状態となった際に各信号が非アクティブな状態となるように設定することが望ましい。例えば、リードアドレスチャンネルであれば、マスタ１００の電源がオフ状態となった際にリードアドレスバリッドＡＲＶＡＬＩＤが「０」にデアサートされるように構成する。
【０１３４】
ハイクランプ回路７１０は、クランプイネーブル信号がＬレベルの場合に入力信号をそのまま出力信号として出力し、クランプイネーブル信号がＨレベルの場合に出力信号を電源レベル（Ｈレベル）にクランプする回路である。このハイクランプ回路７１０は、インバータ７１１と、トランジスタ７１２乃至７１４とを備えている。
【０１３５】
インバータ７１１は、入力されたクランプイネーブル信号を反転させる回路である。これにより、トランジスタ７１２のゲート端子にはクランプイネーブル信号そのものが供給される一方で、トランジスタ７１３のゲート端子にはクランプイネーブル信号の反転信号が供給される。
【０１３６】
トランジスタ７１２および７１３は、１対のスイッチを構成する。すなわち、クランプイネーブル信号がＬレベルであればトランジスタ７１２および７１３の両者が入力信号を通過させるが、クランプイネーブル信号がＨレベルであればトランジスタ７１２および７１３の両者が入力信号を通過させない。
【０１３７】
トランジスタ７１４は、出力端子を電源レベルにクランプするか否かを切り換えるスイッチである。すなわち、クランプイネーブル信号がＬレベルであればトランジスタ７１４がオフとなり、トランジスタ７１２および７１３からの信号を出力信号とする。一方、クランプイネーブル信号がＨレベルであればトランジスタ７１４がオンとなり、出力信号は電源レベルにクランプされる。
【０１３８】
ロークランプ回路７２０は、クランプイネーブル信号がＬレベルの場合に入力信号をそのまま出力信号として出力し、クランプイネーブル信号がＨレベルの場合に出力信号をグランドレベル（Ｌレベル）にクランプする回路である。このロークランプ回路７２０は、インバータ７２１と、トランジスタ７２２乃至７２４とを備えている。
【０１３９】
インバータ７２１は、入力されたクランプイネーブル信号を反転させる回路である。これにより、トランジスタ７２２のゲート端子にはクランプイネーブル信号そのものが供給される一方で、トランジスタ７２３のゲート端子にはクランプイネーブル信号の反転信号が供給される。
【０１４０】
トランジスタ７２２および７２３は、１対のスイッチを構成する。すなわち、クランプイネーブル信号がＬレベルであればトランジスタ７２２および７２３の両者が入力信号を通過させるが、クランプイネーブル信号がＨレベルであればトランジスタ７２２および７２３の両者が入力信号を通過させない。
【０１４１】
トランジスタ７２４は、出力端子を電源レベルにクランプするか否かを切り換えるスイッチである。すなわち、クランプイネーブル信号がＬレベルであればトランジスタ７２４がオフとなり、トランジスタ７２２および７２３からの信号を出力信号とする。一方、クランプイネーブル信号がＨレベルであればトランジスタ７２４がオンとなり、出力信号はグランドレベルにクランプされる。
【０１４２】
このようなクランプ回路において、マスタ切断信号４０９をクランプイネーブル信号として入力した場合、対応するマスタ１００が切断された際にマスタ１００からの信号を電源レベルまたはグランドレベルにクランプするように構成することができる。また、スレーブ切断信号５０９をクランプイネーブル信号として入力した場合、対応するスレーブ２００が切断された際にスレーブ２００からの信号を電源レベルまたはグランドレベルにクランプするように構成することができる。
【０１４３】
このように、本発明の第２の実施の形態によれば、マスタ切断信号４０９またはスレーブ切断信号５０９が切断を示す場合に、マスタ１００またはスレーブ２００からの信号を電源レベルまたはグランドレベルにクランプすることができる。したがって、マスタ１００またはスレーブ２００を切断する際の、信号の安定化を図ることができ、回路の誤動作を未然に防止することができる。
【０１４４】
以上、説明したように、本発明の実施の形態によれば、マスタ１００またはスレーブ２００を任意のタイミングで切断することができる。これにより、マスタ１００またはスレーブ２００がハングアップにより反応しなくなった場合に、該当するマスタ１００またはスレーブ２００を単独で切断し、完了出来なくなっていたアクセスを正常なプロトコルで完了させることができる。一方、切断部位以外は動作を継続させることができる。これにより、システムの障害耐性を向上させることができる。
【０１４５】
また、本発明の実施の形態によれば、マスタ１００またはスレーブ２００のうち、稼動させる必要のないものの電源をオフにすることにより、消費電力の低減を図ることができる。このとき、マスタ１００またはスレーブ２００がアクセス途中であったとしても、正常なプロトコルを継続したまま切断可能である。切断後のスレーブ２００に対してアクセスがあった場合も、スレーブ切断ブリッジ５００が応答するため、切断後も常に正常なプロトコルが継続される。
【０１４６】
また、本発明の実施の形態において、切断されたマスタ１００またはスレーブ２００は、容易に再接続することができる。すなわち、ハングアップして反応が無くなったマスタ１００またはスレーブ２００を切断後にリセットし、動作可能な状態となってからマスタ切断信号４０９またはスレーブ切断信号５０９を非切断に切り替えることにより、再びアクセスすることが可能となる。また、電源オフしたマスタ１００またはスレーブ２００を電源オンおよびリセットして動作可能な状態となった後に、マスタ切断信号４０９またはスレーブ切断信号５０９を非切断に切り替えることにより、再びアクセス可能することが可能となる。
【０１４７】
なお、本発明の実施の形態では、ＡＸＩプロトコルを想定して説明したが、本発明はこれに限定されるものではなく、スプリットトランザクションを許容するバス全般に適用することができる。そのようなバスの他の例として、例えば、ＯＣＰ（Open Core Protocol）や、ＰＬＢ（Processor Local Bus）等が挙げられる。
【０１４８】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【符号の説明】
【０１４９】
３０  常時通電領域
１００  マスタ
２００  スレーブ
３００  インターコネクト
４００  マスタ切断ブリッジ
４０１  マスタプロトコル整合部
４０２  信号クランプ部
４０９  マスタ切断信号
４１０  マスタリード整合部
４５０  マスタライト整合部
５００  スレーブ切断ブリッジ
５０１  スレーブプロトコル整合部
５０２  信号クランプ部
５０９  スレーブ切断信号
５１０  スレーブリード整合部
５５０  スレーブライト整合部
７１０  ハイクランプ回路
７２０  ロークランプ回路
【図１】
0005617429.tif 000002
【図２】
0005617429.tif 000003
【図３】
0005617429.tif 000004
【図４】
0005617429.tif 000005
【図５】
0005617429.tif 000006
【図６】
0005617429.tif 000007
【図７】
0005617429.tif 000008
【図８】
0005617429.tif 000009
【図９】
0005617429.tif 000010
【図１０】
0005617429.tif 000011
【図１１】
0005617429.tif 000012
【図１２】
0005617429.tif 000013
【図１３】
0005617429.tif 000014
【図１４】
0005617429.tif 000015
【図１５】
0005617429.tif 000016
【図１６】
0005617429.tif 000017
【図１７】
0005617429.tif 000018
【図１８】
0005617429.tif 000019
【図１９】
0005617429.tif 000020