(57)【要約】【課題】動作タイミングによる不整合を取り除いてソフトウェアコードの削減並びに動作性能の向上を行うことのできるバス制御システムおよび半導体集積回路の提供を図る。【解決手段】第１回路４が接続された第１バス１と、第２回路９が接続された第２バス２と、前記第１回路と前記第２回路との間のデータの受け渡しを行う制御回路７と、を有するバス制御システムであって、前記制御回路は、当該制御回路内に滞留しているアクセス要求の処理が完了したことを監視し、処理タイミングによる不整合を防止する。【選択図】図３
2010277160.tif 000002
【特許請求の範囲】
【請求項１】
第１回路が接続された第１バスと、
第２回路が接続された第２バスと、
前記第１回路と前記第２回路との間のデータの受け渡しを行う制御回路と、を有するバス制御システムであって、
前記制御回路は、当該制御回路内に滞留しているアクセス要求の処理が完了したことを監視することを特徴とするバス制御システム。
【請求項２】
請求項１に記載のバス制御システムにおいて、
前記制御回路は、
該制御回路に対するアクセス要求の受け付けを処理するアクセス要求処理部と、
前記アクセス要求処理部の動作を制御する制御レジスタと、を有することを特徴とするバス制御システム。
【請求項３】
請求項２に記載のバス制御システムにおいて、
前記アクセス要求処理部は、
前記制御回路に対する新たなアクセス要求の受け付けを制御するディセーブル制御部と、
該ディセーブル制御部からのアクセス要求を保持するメモリと、
該メモリに保持されたアクセス要求を監視するコマンド制御部と、を備え、該コマンド制御部と前記制御レジスタの出力の論理を取って該制御レジスタをリセットすることにより、新たなアクセス要求の受け付けを自動的に再開することを特徴とするバス制御システム。
【請求項４】
請求項２に記載のバス制御システムにおいて、
前記アクセス要求処理部は、
前記制御回路に対する新たなアクセス要求に対してフラグの付与を制御するアクセス制御部と、
該アクセス制御部からのアクセス要求を保持するメモリと、
該メモリに保持されたアクセス要求を監視するコマンド制御部と、を備え、該コマンド制御部と前記制御レジスタの出力の論理を取って該制御レジスタをリセットすることを特徴とするバス制御システム。
【請求項５】
請求項１〜４のいずれか１項に記載のバス制御システムにおいて、
前記制御回路は、前記第１バスおよび前記第２バスに接続されたバスブリッジ回路であることを特徴とするバス制御システム。
【請求項６】
請求項１〜５のいずれか１項に記載のバス制御システムを有することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御システムおよび半導体集積回路に関する。
【背景技術】
【０００２】
従来、半導体集積回路の内部には、様々なプロトコルのバスが使用されており、近年では、性能の向上を目指して新たな高性能バスが開発され、その新たなバスを使用したＩＰ（Intellectual Property）も開発されている。
【０００３】
ところで、ＳｏＣ（System On a Chip）の開発を行う上で、開発に要する費用および工数の削減を目的として旧資産の再利用が行われている。
【０００４】
しかしながら、異なったプロトコルのバスを使用したＩＰをひとつのＳｏＣとして組み上げるには、プロトコル変換を行うバスブリッジ回路（Bus Bridge）が必要になる。
【０００５】
このようなバスブリッジ回路を使用するとき、一連のアクセス要求（コマンド）の処理を通常の方法で行った場合、レイテンシの増大につながり、また、双方のバスを使用（専有）する時間が増大することで性能の低下を来すことになる。
【０００６】
そのため、従来、バスブリッジ回路内に一時的にデータを保管するバッファを設けておき、マスター回路からのアクセス要求を一旦バスブリッジ回路内で受けて、マスター回路側へはアクセス要求の終了を通知する。
【０００７】
そして、バスブリッジ回路は、マスター回路側へアクセス要求の終了を通知した後、スレーブ側に適したアクセス要求に変換して出力するものが知られている。
【０００８】
しかしながら、このような手法を用いた場合、異なるバス間において処理のタイミングに不整合が発生する虞がある。
【０００９】
ところで、従来、複数のバスを有するバス制御システムを備えた半導体集積回路において、それら複数のバスに接続された回路による誤動作を無くすようにしたものが提案されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０００−０４００７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
図１は従来のバス制御システムが適用される半導体集積回路の一例の要部を概略的に示すブロック図である。
【００１２】
図１に示されるように、従来のバス制御システムは、例えば、異なる２種類のバス１０１および１０２を、バスブリッジ回路１０７を介して接続するようになっている。
【００１３】
ここで、第１バス１０１には、第１ＣＰＵ１０３、マスター回路１０４、第１スレーブ回路１０５、割り込みコントローラ（ＩＲＣ）１０６およびバスブリッジ回路１０７が接続されている。
【００１４】
また、第２バス１０２には、バスブリッジ回路１０７、第２ＣＰＵ１０８および第２スレーブ回路１０９が接続されている。
【００１５】
なお、バスブリッジ回路１０７には、例えば、マスター回路１０４からのアクセス要求（コマンド）を受信するスレーブポートＰ１０１、および、第２スレーブ回路１０９へのリクエストを送信するマスターポートＰ１０２を有する。
【００１６】
このような、バス制御システムにおいて、例えば、マスター回路１０４から第２スレーブ回路１０９に対して書き込みアクセス要求を行う場合、本来、書き込みデータは、マスター回路１０４→バスブリッジ回路１０７→第２スレーブ回路１０９という経路を辿る。
【００１７】
しかしながら、図１に示すバス制御システムでは、バスブリッジ回路１０７が第２スレーブ回路１０９からの書き込みデータの受信通知を待たずに書き込みアクセス要求を完了させたとして処理を行うようになっている。
【００１８】
このとき、マスター回路１０４からの割り込みによる完了通知が第２ＣＰＵ１０８に与えられた際に、第２スレーブ回路１０９に対するデータの書き込み処理が完了していないケースが発生する。
【００１９】
そこで、従来、このようなケースを回避する手法として図２に示す処理が提案されている。すなわち、図２は従来のバス制御システムにおける処理の一例を説明するためのフローチャートであり、上述したケースの発生を回避するソフトウェアによる処理の例を示すものである。
【００２０】
図２に示されるように、アクセス要求の完了制御が開始すると、ステップＳＴ１〜ＳＴ３の各アクセス要求を行い、ステップＳＴ４で読み出しデータが正しいと判別されるまでステップＳＴ３およびＳＴ４の処理を繰り返す。
【００２１】
すなわち、ステップＳＴ１でマスター回路１０４から第２スレーブ回路１０９に対するデータ書き込み要求を行った後、ステップＳＴ２で第１ＣＰＵ１０３から第２スレーブ回路１０９に対するデータ書き込み要求を行う。
【００２２】
さらに、ステップＳＴ３で第１ＣＰＵ１０３から第２スレーブ回路１０９対するデータ読み出し（ＳＴ２で書き込みを行ったアドレス）要求を行い、ステップＳＴ４で読み出しデータが正しいと判別されるまでステップＳＴ３およびＳＴ４の処理を繰り返す。
【００２３】
そして、ステップＳＴ４において、読み出しデータが正しいと判別されると、アクセス要求の完了制御を終了する。
【００２４】
これにより、例えば、バスブリッジ回路１０７が第２スレーブ回路１０９からの書き込みデータの受信通知を待たずにアクセス要求を完了させたとして処理を行うバス制御システムにおいて、タイミングの不整合（データの不一致）を回避するようになっている。
【００２５】
しかしながら、上述した従来の手法では、ソフトウェアによる余分な処理が必要となり、ソフトウェアコードの増加および動作性能の低下を来すことになる。
【００２６】
この出願は、上述した課題に鑑み、動作タイミングによる不整合を取り除いてソフトウェアコードの削減並びに動作性能の向上を行うことのできるバス制御システムおよび半導体集積回路の提供を目的とする。
【課題を解決するための手段】
【００２７】
一実施形態によれば、第１回路が接続された第１バスと、第２回路が接続された第２バスと、前記第１回路と前記第２回路との間のデータの受け渡しを行う制御回路と、を有するバス制御システムが提供される。
【００２８】
前記制御回路は、当該制御回路内に滞留しているアクセス要求の処理が完了を監視することが可能な機構を有している。
【発明の効果】
【００２９】
開示のバス制御システムおよび半導体集積回路は、動作タイミングによる不整合を取り除いてソフトウェアコードの削減並びに動作性能の向上の効果を奏する。
【図面の簡単な説明】
【００３０】
【図１】従来のバス制御システムが適用される半導体集積回路の一例の要部を概略的に示すブロック図である。
【図２】従来のバス制御システムにおける処理の一例を説明するためのフローチャートである。
【図３】各実施例が適用される半導体集積回路の一例の要部を概略的に示すブロック図である。
【図４】第１実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図である。
【図５】第１実施例のバス制御システムを説明するためのシーケンス図である。
【図６】第１実施例のバスブリッジ回路におけるディセーブル制御部を実現する論理回路の一例を示す図である。
【図７】第１実施例のバスブリッジ回路におけるコマンド制御部を実現する論理回路の一例を示す図である。
【図８】第２実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図である。
【図９】第２実施例のバス制御システムを説明するためのシーケンス図である。
【図１０】第３実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図である。
【図１１】第３実施例のバス制御システムを説明するためのシーケンス図である。
【図１２】第４実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図である。
【図１３】第４実施例のバス制御システムを説明するためのシーケンス図である。
【図１４】第４実施例のバスブリッジ回路におけるアクセス制御部を実現する論理回路の一例を示す図（その１）である。
【図１５】第４実施例のバスブリッジ回路におけるアクセス制御部を実現する論理回路の一例を示す図（その２）である。
【図１６】第５実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図である。
【図１７】第５実施例のバス制御システムを説明するためのシーケンス図である。
【図１８】第６実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図である。
【図１９】第６実施例のバス制御システムを説明するためのシーケンス図である。
【図２０】第７実施例のバス制御システムにおけるストアバッファ回路の一例を示すブロック図である。
【図２１】第７実施例のバス制御システムを説明するためのシーケンス図である。
【発明を実施するための形態】
【００３１】
以下、本発明のバス制御システムおよび半導体集積回路の各実施例を、添付図面を参照して詳述する。
【００３２】
図３は各実施例のバス制御システムが適用される半導体集積回路の一例の要部を概略的に示すブロック図である。ここで、以下に説明する各実施例のバス制御システムは、様々な半導体集積回路に対して幅広く適用することができるものである。
【００３３】
図３に示されるように、各実施例のバス制御システムは、例えば、異なる２つ（同種もしくは異種）のバス１および２を、バスブリッジ回路７を介して接続するようになっている。
【００３４】
ここで、第１バス１には、第１ＣＰＵ３、マスター回路４、第１スレーブ回路５、割り込みコントローラ（ＩＲＣ）６およびバスブリッジ回路７が接続されている。
【００３５】
また、第２バス２には、バスブリッジ回路７、第２ＣＰＵ８および第２スレーブ回路９が接続されている。
【００３６】
なお、バスブリッジ回路７には、例えば、マスター回路４からのアクセス要求を受信するスレーブポートＰ１、および、第２スレーブ回路９へのリクエストを送信するマスターポートＰ２を有する。
さらに、バスブリッジ回路７には、例えば、内部の制御レジスタ（７１）へのアクセス要求を行うレジスタ用スレーブポートＰ３を有する。なお、制御レジスタへのアクセス要求を行うポートとしては、レジスタ用マスターポートＰ３’を設けることもできる。
【００３７】
図４は第１実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図であり、また、図５は第１実施例のバス制御システムを説明するためのシーケンス図である。
【００３８】
図４において、参照符号７ａはバスブリッジ回路、７１は制御レジスタ、７２はディセーブル制御部、７３はＦＩＦＯ（First In First Out）、７４はコマンド制御部、そして、ＭＴはモニタ端子を示している。
【００３９】
制御レジスタ７１は、アクセス要求の完了制御機能を有効にするレジスタであり、また、ディセーブル制御部７２は、バスブリッジ回路７ａに対する新たなアクセス要求（コマンド）処理の受け付けを制御する。
さらに、ＦＩＦＯ７３は、アクセス要求を保持するメモリであり、コマンド制御部７４は、アクセス要求を監視する。
【００４０】
ここで、制御レジスタ７１は、例えば、ＳＲフリップフロップとされ、そのセット端子ＳにＣＰＵまたはバスからの制御信号が入力されている。
【００４１】
なお、制御レジスタ７１のセット端子Ｓに供給される信号は、例えば、第１ＣＰＵ３からの制御信号が第１バス１または専用の信号線を介して入力される。
【００４２】
また、この制御レジスタ７１のセット端子Ｓに供給される信号は、バス制御システムの構成および処理動作に応じた適切なものとされる。すなわち、バスブリッジ回路７ａの各入出力部は、図４に示したポートＰ１〜Ｐ３（Ｐ３’）および端子ＭＴに限定されるものではなく、適宜変更されることになる。
【００４３】
また、本第１実施例のバスブリッジ回路７ａは、制御レジスタ７１のＱ出力とコマンド制御部７４の出力との論理積を取るアンドゲート７５１を有し、その出力を制御レジスタ７１のリセット端子Ｒに供給するようになっている。
【００４４】
さらに、制御レジスタ７１の／Ｑ出力を滞留アクセス要求の有無を示すモニタ端子ＭＴの出力として使用している。なお、モニタ端子ＭＴから出力されるモニタ信号は、例えば、滞留アクセス要求の有無の確認を必要とする第２ＣＰＵ８に対して第２バス２または専用の信号線を介して供給される。
【００４５】
なお、このモニタ信号は、バス制御システムの構成および処理動作に応じた適切な相手に対して供給されるのはいうまでもない。
【００４６】
図５に示されるように、本第１実施例のバス制御システムにおいて、ソフトウェアは、制御レジスタ７１に対して起動設定を行う（ＳＱ１１）。また、ディセーブル制御部７２は、制御レジスタ７１の出力が”１”になると、バスブリッジ回路７ａへの新たなアクセス要求の受け付けを停止する（ＳＱ１２）。
【００４７】
コマンド制御部７４は、すべてのアクセス要求（コマンド）の処理が終了したタイミング、すなわち、滞留コマンドが存在しない状態になると、制御レジスタ７１をリセット（クリア）する（ＳＱ１３）。
【００４８】
ディセーブル制御部７２は、制御レジスタ７１のＱ出力が”０”になると、通常処理へ復帰する（ＳＱ１４）。ソフトウェアは、モニタ端子ＭＴの値により滞留コマンドの有無を確認することができる（ＳＱ１５，ＳＱ１６）。
【００４９】
ここで、モニタ端子ＭＴの値は、例えば、”０”のときは、コマンドの滞留あり、また、”１”のときは、コマンドの滞留なしを表している。なお、図５におけるモニタ部は、制御レジスタ７１が兼用されることになる。
【００５０】
このように、本第１実施例のバス制御システムによれば、バスブリッジ回路７ａ内の滞留コマンドがなくなるまで、新たなアクセス要求の中断と監視を行うようになっている。
【００５１】
この新たなコマンド（アクセス要求）処理の中断と監視機能の起動は、制御レジスタ７１に対するアクセス要求とし、終了は、バスブリッジ回路７ａ内のすべてのアクセス要求の処理の終了としている。
【００５２】
図６は第１実施例のバスブリッジ回路におけるディセーブル制御部を実現する論理回路の一例を示す図である。
【００５３】
図６に示されるように、ディセーブル制御部７２は、アンドゲート７２１〜７２３およびオアゲート７２４を有する。アンドゲート７２１の一方の入力には、制御レジスタ７１のＱ出力が供給されている。
【００５４】
アンドゲート７２２の一方の入力には、第１イネーブル信号（第１モード信号）ＥＳ１が供給され、また、その他方の入力には、ＦＩＦＯ７３の状態信号が供給されている。アンドゲート７２３の一方の入力には、第２イネーブル信号（第２モード信号）ＥＳ２が供給され、また、その他方の入力には、書き込みフラグの信号が供給されている。
【００５５】
ここで、ＦＩＦＯの状態信号は、ＦＩＦＯ７３が空でないとき”１”になり、また、書き込みフラグは、書き込みアクセス要求があるとき”１”になる。
【００５６】
アンドゲート７２２および７２３の出力は、オアゲート７２４の入力に供給され、オアゲート７２４の出力がアンドゲート７２１の他方の入力に供給されている。
【００５７】
そして、アンドゲート７２１の出力が”１”のとき、アクセス要求の受け付けを停止する。すなわち、図６に示すディセーブル制御部７２は、その出力Ｓ７２が”１”のとき、新たなアクセス要求の受け付けを停止するようになっている。
【００５８】
図７は第１実施例のバスブリッジ回路におけるコマンド制御部を実現する論理回路の一例を示す図である。
【００５９】
図７に示されるように、コマンド制御部７４は、アンドゲート７４１〜７４３およびオアゲート７４４を有する。アンドゲート７４１の一方の入力には、第１イネーブル信号ＥＳ１が供給され、また、その他方の入力には、ＦＩＦＯの状態信号が供給されている。ここで、ＦＩＦＯの状態信号は、ＦＩＦＯ７３が空のとき”１”になる。
【００６０】
アンドゲート７４２の一方の入力には、第２イネーブル信号ＥＳ２が供給され、また、その他方の入力には、最終フラグの信号が供給されている。さらに、アンドゲート７４３の一方の入力には、第３イネーブル信号ＥＳ３が供給され、また、その他方の入力には、書き込みフラグの信号が供給されている。
【００６１】
ここで、最終フラグは、最終のアクセス要求に付加されるフラグであり、最終のアクセス要求ではないとき”１”になる。また、書き込みフラグは、書き込みアクセス要求のとき付加されるフラグであり、書き込みアクセス要求のとき”１”になる。
【００６２】
なお、イネーブル信号ＥＳ１〜ＥＳ３単なる例として３つ示したものであり、様々なモード信号であってもよく、その数も３つに限定されるものではない。
【００６３】
アンドゲート７４１〜７４３の出力は、オアゲート７４４の入力に供給され、オアゲート７４４の出力がコマンド制御部７４の出力Ｓ７４になる。
【００６４】
そして、オアゲート７４４の出力が”１”のとき、すなわち、コマンド制御部７４の出力Ｓ７４が”１”のとき、コマンドの滞留がないと判断して制御レジスタ７１をクリア（リセット）する。
【００６５】
なお、図６および図７に示す論理回路は、ディセーブル制御部７２およびコマンド制御部７４を実現する論理回路の単なる例であり、バスブリッジ回路７の構成や使用する信号、並びに、その信号の論理等により様々に変更されるのはいうまでもない。
【００６６】
このように、本第１実施例のバス制御システムによれば、滞留コマンドをクリアすることで、処理タイミングの不整合を回避することができ、図２を参照して説明したようなソフトウェアで行う処理を削減或いは不要とすることができる。
【００６７】
さらに、本第１実施例のバス制御システムによれば、バスブリッジの処理性能の低下を最小限に抑えることが可能になる。
【００６８】
従って、本第１実施例のバス制御システムによれば、一時的に書き込みデータを保存しておく回路に対してアクセス要求の完了制御を組込むことで、バス性能を維持したままソフトウェアによる余分な処理の発生を抑えることが可能になる。
【００６９】
なお、上記の効果は、第１実施例に限定されるものではなく、以下に説明する第２〜第７実施例においても同様に発揮されるものである。
【００７０】
図８は第２実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図であり、また、図９は第２実施例のバス制御システムを説明するためのシーケンス図である。
【００７１】
図８と前述した図４との比較から明らかなように、本第２実施例のバスブリッジ回路７ｂでは、制御レジスタ７１のセット入力Ｓに供給する信号をマスク信号ＭＳとＩＲＣ６からの割り込み信号ＩＲＱとの論理を取った信号とするようになっている。
【００７２】
すなわち、本第２実施例のバスブリッジ回路７ｂにおいて、アンドゲート７５２の一方の入力には、マスク信号ＭＳが論理反転されて供給され、また、その他方の入力には、割り込み信号ＩＲＱが供給されている。
【００７３】
そして、アンドゲート７５２の出力が制御レジスタ７１のセット入力Ｓに供給されるようになっている。
【００７４】
なお、他の構成は、図４を参照して説明した第１実施例のバスブリッジ回路７ａと同様であり、その説明は省略する。
【００７５】
図９に示されるように、本第２実施例のバス制御システムにおいて、まず、マスク信号ＭＳが不活性（”０”）で割り込み信号ＩＲＱが有効（”１”）になると、制御レジスタ７１が起動設定される（ＳＱ２１）。
【００７６】
また、ディセーブル制御部７２は、制御レジスタ７１の出力が”１”になると、バスブリッジ回路７ｂへの新たなアクセス要求の受け付けを停止する（ＳＱ２２）。
【００７７】
コマンド制御部７４は、すべてのコマンドの処理が終了したタイミング、すなわち、滞留コマンドが存在しない状態になると、制御レジスタ７１をリセットする（ＳＱ２３）。
【００７８】
ディセーブル制御部７２は、制御レジスタ７１のＱ出力が”０”になると、通常処理へ復帰する（ＳＱ２４）。そして、ソフトウェアは、モニタ端子ＭＴの値により滞留コマンドの有無を確認することができる（ＳＱ２５，ＳＱ２６）。
【００７９】
このように、本第２実施例のバス制御システムによれば、バスブリッジ回路７ｂ内の滞留コマンドがなくなるまで、新たなアクセス要求の中断と監視を行うようになっている。
【００８０】
この機能の起動は、割り込み（ＩＲＱ）とし、終了はバスブリッジ回路７ｂ内のすべてのコマンドの処理の終了とするようになっている。
【００８１】
なお、割り込み（ＩＲＱ）がレベル信号、もしくは、Ｌアクティブ（ロー・アクティブ）のパルス信号である場合には、Ｈアクティブ（ハイ・アクティブ）のパルス信号に変換して入力する必要がある。
【００８２】
図１０は第３実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図であり、また、図１１は第３実施例のバス制御システムを説明するためのシーケンス図である。
【００８３】
図１０と上述した図８との比較から明らかなように、本第３実施例のバスブリッジ回路７ｃは、第３実施例のバスブリッジ回路７ｂに対して、割り込み出力部７６を追加したものに相当する。
【００８４】
割り込み出力部７６は、フリップフロップ７６１アンドゲート７６２，７６４およびオアゲート７６３を有する。
【００８５】
フリップフロップ７６１のデータ入力Ｄには、ＩＲＣ６からの割り込み信号ＩＲＱが入力され、そのＱ出力は、一方の入力に制御レジスタ７１の反転出力／Ｑが供給されたアンドゲート７６２の他方の入力に供給されている。
【００８６】
アンドゲート７６２の出力は、一方の入力にマスク信号ＭＳが供給されたオアゲート７６３の他方の入力に供給され、また、オアゲート７６３の出力は、アンドゲート７６４の一方の入力に供給されている。
【００８７】
アンドゲート７６４の他方の入力には、割り込み信号ＩＲＱが入力され、アンドゲート７６４の出力が割り込み出力ＩＲＯとしてバスブリッジ回路７ｃから出力されるようになっている。
【００８８】
すなわち、本第３実施例のバスブリッジ回路７ｃにおいて、割り込み信号ＩＲＱが有効（”１”）になることで制御レジスタ７１が起動設定され、それと同時に、割り込み出力ＩＲＯが出力されて、ＣＰＵへの割り込み信号がマスクされるようになっている。
【００８９】
ここで、例えば、図３におけるＩＲＣ６から第２ＣＰＵ８に対して割り込み信号ＩＲＱを供給するとき、その割り込み信号ＩＲＱは、本第３実施例のバスブリッジ回路７ｃからの割り込み出力ＩＲＯに置き換えて第２ＣＰＵ８に供給されることになる。
【００９０】
なお、割り込み出力部７６は、バスブリッジ回路７ｃ内に設けずに、必要な信号（例えば、制御レジスタ７１の／Ｑ出力）を外部に取り出して、バスブリッジ回路７ｃの外部、例えば、ＩＲＣ６内に設けることも可能である。
【００９１】
図１１に示されるように、本第３実施例のバス制御システムにおいて、まず、マスク信号ＭＳが不活性（”０”）で割り込み信号ＩＲＱが有効（”１”）になると、制御レジスタ７１が起動設定される（ＳＱ３１）。
【００９２】
さらに、制御レジスタ７１の起動設定と同時に、ＣＰＵへの割り込み信号（ＩＲＯ）がマスクされる（ＳＱ３２）。
【００９３】
また、ディセーブル制御部７２は、制御レジスタ７１の出力が”１”になると、バスブリッジ回路７ｃへの新たなアクセス要求の受け付けを停止する（ＳＱ３３）。
【００９４】
コマンド制御部７４は、すべてのコマンドの処理が終了したタイミング、すなわち、滞留コマンドが存在しない状態になると、制御レジスタ７１をリセットする（ＳＱ３４）。
【００９５】
ディセーブル制御部７２は、制御レジスタ７１のＱ出力が”０”になると、通常処理へ復帰する（ＳＱ３５）。そして、制御レジスタ７１の出力が”０”になると、ＣＰＵへの割り込み信号（ＩＲＯ）のマスクが解除される（ＳＱ３６）。
【００９６】
このように、本第３実施例のバス制御システムによれば、バスブリッジ回路７ｃ内の滞留コマンドがなくなるまで、新たなアクセス要求の中断と監視を行うようになっている。この新たなアクセス要求の中断と監視機能の起動は、割り込みとし、また、終了は、バスブリッジ内のすべてのコマンドの処理終了となっている。
【００９７】
なお、Ｌアクティブのレベル信号である場合には、Ｈアクティブのレベル信号に変換して入力する必要がある。また、割り込み（ＩＲＱ）がパルス信号である場合には、Ｈアクティブのレベル信号に変換して入力すると共に、割込み処理終了後、変換した割込み信号をリセットする機構が必要である。
【００９８】
図１２は第４実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図であり、また、図１３は第４実施例のバス制御システムを説明するためのシーケンス図である。
【００９９】
図１２と前述した図４との比較から明らかなように、本第４実施例のバスブリッジ回路７ｄは、第１実施例のバスブリッジ回路７ａにおけるディセーブル制御部７２の代わりにアクセス制御部７７を設けたものに相当する。ここで、アクセス制御部７７は、コマンド制御部７４と直接信号の遣り取りを行うようになっている。
【０１００】
制御レジスタ７１は、アクセス要求の完了制御機能を有効にするレジスタであり、また、ＦＩＦＯ７３は、アクセス要求を保持するメモリであり、そして、コマンド制御部７４は、アクセス要求を監視する。
【０１０１】
アクセス制御部７７は、コマンド制御部７４との間で信号の遣り取りをして、入力されたコマンドにフラグを付与してＦＩＦＯ７３に出力するようになっている。なお、他の構成は、前述した第１実施例と同様なのでその説明は省略する。
【０１０２】
図１３に示されるように、本第４実施例のバス制御システムにおいて、ソフトウェアは、制御レジスタ７１に対して起動設定を行う（ＳＱ４１）。また、アクセス制御部７７は、制御レジスタ７１の出力が”１”になると同時に、処理中のコマンドにフラグを付与してアクセス要求の受け付けを制御する（ＳＱ４２）。
【０１０３】
コマンド制御部７４は、フラグが付与されたコマンドの処理が終了したタイミング、すなわち、フラグが付与されたコマンドが終了すると、制御レジスタ７１をリセットする（ＳＱ４３）。
【０１０４】
ソフトウェアは、モニタ端子ＭＴの値により滞留コマンドの有無を確認することができる（ＳＱ４４，ＳＱ４５）。
【０１０５】
このように、本第４実施例のバス制御システムによれば、制御レジスタ７１にセットされた時点で受け付け中または最後に受け付けられたアクセス要求に対してフラグを立て、そのコマンド（アクセス要求）の処理の完了を監視するようになっている。
【０１０６】
図１４および図１５は第４実施例のバスブリッジ回路におけるアクセス制御部を実現する論理回路の一例を示す図である。
【０１０７】
図１４および図１５に示されるように、アクセス制御部７７は、２つの論理回路部７７１および７７２を有し、３つの信号Ｓ７７ａ，Ｓ７７ｂ，Ｓ７７ｃを出力するようになっている。
【０１０８】
図１４に示されるように、論理回路部７７１は、３つのアンドゲート７７１１〜７７１３を有し、アンドゲート７７１１の一方の入力には、制御レジスタ７１のＱ出力が供給され、また、その他方の入力には、最終フラグの信号が供給されている。
【０１０９】
アンドゲート７７１２の一方の入力には、第１イネーブル信号ＥＳ１が供給され、また、その他方の入力には、ＦＩＦＯ７３の状態信号が供給されている。そして、アンドゲート７７１３は、アンドゲート７７１１および７７１２の出力の論理積を取って信号Ｓ７７ａを出力するようになっている。
【０１１０】
ここで、アンドゲート７７１１に供給される最終フラグの信号は、最終フラグなし（最後に受け付けられたアクセス要求ではない）のとき”１”になる。また、アンドゲート７７１２に供給されるＦＩＦＯの状態信号は、ＦＩＦＯ７３が空でないとき”１”になる。
【０１１１】
そして、アクセス制御部７７は、信号Ｓ７７ａが”１”でアクセス要求に最終フラグを付与するようになっている。
【０１１２】
図１５に示されるように、論理回路部７７２は、２つのアンドゲート７７２１および７７２２を有し、アンドゲート７７２１の一方の入力には、制御レジスタ７１のＱ出力が供給され、また、その他方の入力には、第２イネーブル信号ＥＳ２が供給されている。
【０１１３】
すなわち、アンドゲート７７２１は、第２イネーブル信号ＥＳ２が”１”のときに、制御レジスタ７１のＱ出力の”０”から”１”への変化に応じてその出力（信号Ｓ７７ｂ）を”１”に変化させる。
【０１１４】
アンドゲート７７２２の一方の入力には、第２イネーブル信号ＥＳ２が供給され、また、その他方の入力には、書き込みアクセス要求のとき”１”になる信号が供給されている。そして、アンドゲート７７２１の出力が信号Ｓ７７ｂとなり、また、アンドゲート７７２２の出力が信号Ｓ７７ｃとしてアクセス制御部７７から出力される。
【０１１５】
そして、アクセス制御部７７は、信号Ｓ７７ｂが”１”で書き込みフラグの付与を別バンクに変更し、また、信号Ｓ７７ｃが”１”で受信中のアクセス要求に対して書き込みフラグを付与するようになっている。
【０１１６】
なお、図１４および図１５に示す論理回路は、アクセス制御部７７を実現する論理回路の単なる例であり、バスブリッジ回路７の構成や使用する信号、並びに、その信号の論理等により様々に変更されるのはいうまでもない。
【０１１７】
図１６は第５実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図であり、また、図１７は第５実施例のバス制御システムを説明するためのシーケンス図である。
【０１１８】
本第５実施例のバス制御システムは、滞留コマンドに書き込みアクセス要求が存在した場合のみ処理対象とするものである。なお、図１６および図１７は、図４および図５を参照して説明した第１実施例のバス制御システムに対応させて描いたものである。
【０１１９】
図１６と図４との比較から明らかなように、本第５実施例のバスブリッジ回路７ｅでは、書き込みコマンドによる制御を行うためにディセーブル制御部７２とコマンド制御部７４とが信号線で結ばれるようになっている。
【０１２０】
本第５実施例のバス制御システムにおいて、コマンド制御部７４は、第１実施例のバス制御システムにおけるコマンド制御部のように、すべてのアクセス要求を監視するのではなく、書き込みアクセス要求のみ監視する。なお、他の構成は、図４を参照して説明した第１実施例のバスブリッジ回路７ａと同様であり、その説明は省略する。
【０１２１】
図１７に示されるように、本第５実施例のバス制御システムにおいて、ソフトウェアは、制御レジスタ７１に対して起動設定を行う（ＳＱ５１）。
【０１２２】
また、ディセーブル制御部７２は、制御レジスタ７１の出力が”１”になると、バスブリッジ回路７ｆ内に書き込みアクセス要求が存在する場合には、新たなアクセス要求の受け付けを停止する（ＳＱ５２）。
【０１２３】
すなわち、ディセーブル制御部７２による新たなアクセス要求の受け付け停止は、コマンド制御部７４からディセーブル制御部７２に対する書き込みアクセス要求の有無の通知（ＳＱ５３）を受けて行われる。
【０１２４】
さらに、コマンド制御部７４は、すべての書き込みコマンドの処理が終了したタイミング、すなわち、書き込みコマンドが存在しない状態になると、制御レジスタ７１をリセットする（ＳＱ５４）。
【０１２５】
ここで、コマンド制御部７４は、すべての書き込みコマンドの処理が終了した後、既に受け付けた他のコマンドの処理が終了したタイミングで制御レジスタ７１をリセットするようにしてもよい。
【０１２６】
ディセーブル制御部７２は、制御レジスタ７１のＱ出力が”０”になると、通常処理へ復帰する（ＳＱ５５）。ソフトウェアは、モニタ端子ＭＴの値により滞留コマンドの有無を確認することができる（ＳＱ５６，ＳＱ５７）。
【０１２７】
図１８は第６実施例のバス制御システムにおけるバスブリッジ回路の一例を示すブロック図であり、また、図１９は第６実施例のバス制御システムを説明するためのシーケンス図である。
【０１２８】
本第６実施例のバス制御システムは、上述した第５実施例と同様に、滞留コマンドに書き込みアクセス要求が存在した場合のみ処理対象とするものである。なお、図１８および図１９は、図１２および図１３を参照して説明した第４実施例のバス制御システムに対応させて描いたものである。
【０１２９】
ここで、図１８および図１２は同様に描かれているが、本第６実施例におけるコマンド制御部７４とアクセス制御レジスタ７７を結ぶ信号線は、バスブリッジ回路７ｆ内に書き込みコマンドがなくなると制御レジスタ７１をリセットするためにも機能している。
【０１３０】
本第６実施例のバス制御システムにおいて、コマンド制御部７４は、第４実施例のバス制御システムにおけるコマンド制御部のように、すべてのアクセス要求を監視するのではなく、書き込みアクセス要求のみ監視する。なお、他の構成は、図１２を参照して説明した第４実施例のバスブリッジ回路７ｄと同様であり、その説明は省略する。
【０１３１】
図１９に示されるように、本第６実施例のバス制御システムにおいて、ソフトウェアは、制御レジスタ７１に対して起動設定を行う（ＳＱ６１）。また、アクセス制御部７７は、制御レジスタ７１の出力が”１”になると同時に、処理中の書き込みコマンドにフラグを付与してアクセス要求の受け付けを制御する（ＳＱ６２）。
【０１３２】
コマンド制御部７４は、フラグが付与された書き込みコマンドの処理が終了したタイミング、すなわち、フラグが付与された書き込みコマンドが終了すると、制御レジスタ７１をリセットする（ＳＱ６３）。
【０１３３】
ソフトウェアは、モニタ端子ＭＴの値により滞留コマンドの有無を確認することができる（ＳＱ６４，ＳＱ６５）。
【０１３４】
このように、本第６実施例のバス制御システムによれば、制御レジスタ７１にセットされた時点で受け付け中または最後に受け付けられた書き込みアクセス要求に対してフラグを立て、その書き込みコマンドの処理の完了を監視するようになっている。
【０１３５】
上述した第５および第６実施例のバス制御システムにおいて、処理の対象として書き込みコマンドに注目するのは、動作タイミングによる不整合は、通常、書き込みコマンドに起因するためである。
【０１３６】
なお、第６実施例のように、書き込みコマンドにフラグを付与し、そのフラグが付与された書き込みコマンドの終了により制御レジスタ７１をリセットする場合、そのバスブリッジ回路７ｆは、第５実施例のバスブリッジ回路７ｄよりも回路規模が多少大きくなる。
【０１３７】
ただし、第６実施例のように、フラグが付与された書き込みコマンドの終了により制御レジスタ７１を直ちにリセットする場合、動作速度の面では、第５実施例よりも有利なものとなる。
【０１３８】
図２０は第７実施例のバス制御システムにおけるストアバッファ回路の一例を示すブロック図であり、また、図２１は第７実施例のバス制御システムを説明するためのシーケンス図である。
【０１３９】
すなわち、本第７実施例のバス制御システムは、上述した第１実施例のバス制御システムにおけるバスブリッジ回路７ａの代わりに、ストアバッファ回路７０に対して同様の機能を持たせるようにしたものである。
【０１４０】
図２０に示されるように、ストアバッファ回路７０は、制御レジスタ７０１、ディセーブル制御部７０２、ＦＩＦＯ７０３、コマンド制御部７０４およびアンドゲート７０５を有する。
【０１４１】
制御レジスタ７０１は、アクセス要求の完了制御機能を有効にするレジスタであり、また、ディセーブル制御部７０２は、ストアバッファ回路７０に対する新たなアクセス要求の受け付けを制御する。
【０１４２】
そして、ＦＩＦＯ７０３は、アクセス要求を保持するメモリであり、コマンド制御部７０４は、アクセス要求を監視する。
【０１４３】
ここで、制御レジスタ７０１は、例えば、ＳＲフリップフロップとされ、そのセット端子ＳにＣＰＵまたはバスからの制御信号が入力されている。
【０１４４】
アンドゲート７０５は、制御レジスタ７０１のＱ出力とコマンド制御部７０４の出力との論理積を取り、そのアンドゲート７０５の出力は、制御レジスタ７１のリセット端子Ｒに供給されている。
【０１４５】
なお、制御レジスタ７１の／Ｑ出力は、滞留コマンドの有無を示すモニタ端子ＭＴ’の出力として使用されている。
【０１４６】
図２１に示されるように、本第７実施例のバス制御システムにおいて、ソフトウェアは、制御レジスタ７０１に対して起動設定を行う（ＳＱ７１）。また、ディセーブル制御部７０２は、制御レジスタ７０１の出力が”１”になると、ストアバッファ回路７０への新たなアクセス要求の受け付けを停止する（ＳＱ７２）。
【０１４７】
コマンド制御部７０４は、すべてのコマンドの処理が終了したタイミング、すなわち、滞留コマンドが存在しない状態になると、制御レジスタ７０１をリセットする（ＳＱ７３）。
【０１４８】
ディセーブル制御部７０２は、制御レジスタ７０１のＱ出力が”０”になると、通常処理へ復帰する（ＳＱ７４）。ソフトウェアは、モニタ端子ＭＴの値により滞留コマンドの有無を確認することができる（ＳＱ７５，ＳＱ７６）。
【０１４９】
なお、本第７実施例は、第１実施例におけるバスブリッジ回路７ａを同様の機能を有するストアバッファ回路７０に置き換えたものであるが、第２〜第第６実施例のバスブリッジ回路７ｂ〜７ｆも同様の機能を有するストアバッファ回路に置き換えることができる。
【０１５０】
さらに、図３を参照して述べたように、上述した各実施例のバス制御システムは、様々な半導体集積回路に対して幅広く適用することができるのはいうまでもない。
【０１５１】
以上の実施例１〜７を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
第１回路が接続された第１バスと、
第２回路が接続された第２バスと、
前記第１回路と前記第２回路との間のデータの受け渡しを行う制御回路と、を有するバス制御システムであって、
前記制御回路は、当該制御回路内に滞留しているアクセス要求の処理が完了したことを監視することを特徴とするバス制御システム。
【０１５２】
（付記２）
付記１に記載のバス制御システムにおいて、
前記制御回路は、
該制御回路に対するアクセス要求の受け付けを処理するアクセス要求処理部と、
前記アクセス要求処理部の動作を制御する制御レジスタと、を有することを特徴とするバス制御システム。
【０１５３】
（付記３）
付記２に記載のバス制御システムにおいて、
前記アクセス要求処理部は、
前記制御回路に対する新たなアクセス要求の受け付けを制御するディセーブル制御部と、
該ディセーブル制御部からのアクセス要求を保持するメモリと、
該メモリに保持されたアクセス要求を監視するコマンド制御部と、を備え、該コマンド制御部と前記制御レジスタの出力の論理を取って該制御レジスタをリセットすることにより、新たなアクセス要求の受け付けを自動的に再開することを特徴とするバス制御システム。
【０１５４】
（付記４）
付記３に記載のバス制御システムにおいて、
前記ディセーブル制御部は、前記制御回路内にアクセス要求が滞留しているときは、新たなアクセス要求を停止することを特徴とするバス制御システム。
【０１５５】
（付記５）
付記３に記載のバス制御システムにおいて、
前記ディセーブル制御部は、前記制御回路内に書き込みアクセス要求が滞留しているときは、新たなアクセス要求を停止することを特徴とするバス制御システム。
【０１５６】
（付記６）
付記２に記載のバス制御システムにおいて、
前記アクセス要求処理部は、
前記制御回路に対する新たなアクセス要求に対してフラグの付与を制御するアクセス制御部と、
該アクセス制御部からのアクセス要求を保持するメモリと、
該メモリに保持されたアクセス要求を監視するコマンド制御部と、を備え、該コマンド制御部と前記制御レジスタの出力の論理を取って該制御レジスタをリセットすることを特徴とするバス制御システム。
【０１５７】
（付記７）
付記６に記載のバス制御システムにおいて、
前記アクセス制御部は、前記制御レジスタがセットされた時点で受け付け中のアクセス要求、または、受け付け済みのアクセス要求のうち、最も最後に受け付けられたアクセス要求に対してフラグを立て、該フラグが立っているアクセス要求の処理の完了を監視することを特徴とするバス制御システム。
【０１５８】
（付記８）
付記６に記載のバス制御システムにおいて、
前記アクセス制御部は、前記制御レジスタがセットされた時点で滞留しているアクセス要求全てにフラグを立て、該フラグが立っているアクセス要求の処理が全ての完了を監視することを特徴とするバス制御システム。
【０１５９】
（付記９）
付記６に記載のバス制御システムにおいて、
前記アクセス制御部は、前記制御レジスタがセットされた時点で受け付け中のアクセス要求、または、新たに受け付けられた最初のアクセス要求に対してフラグを立て、該フラグが立っているアクセス要求の処理の完了を監視することを特徴とするバス制御システム。
【０１６０】
（付記１０）
付記７に記載のバス制御システムにおいて、
前記フラグを立てるアクセス要求は、書き込みアクセス要求のみに限定し、該フラグが立っているアクセス要求の処理の完了を監視することを特徴とするバス制御システム。
【０１６１】
（付記１１）
付記１〜１０のいずれか１項に記載のバス制御システムにおいて、
前記制御回路は、前記第１バスおよび前記第２バスに接続されたバスブリッジ回路であることを特徴とするバス制御システム。
【０１６２】
（付記１２）
付記１〜１１のいずれか１項に記載のバス制御システムを有することを特徴とする半導体集積回路。
【符号の説明】
【０１６３】
１，１０１    第１バス
２，１０２    第２バス
３，１０３    第１ＣＰＵ
４，１０４    マスター回路
５，１０５    第１スレーブ回路
６，１０６    割り込みコントローラ（ＩＲＣ）
７，７ａ〜７ｆ，１０７    バスブリッジ回路
８，１０８    第２ＣＰＵ
９，１０９    第２スレーブ回路
７０    ストアバッファ回路
７１，７０１    制御レジスタ
７２，７０２    ディセーブル制御部
７３，７０３    ＦＩＦＯ
７４，７０４    コマンド制御部
７６    割り込み出力部
７７    アクセス制御部
【図１】
2010277160.tif 000003
【図２】
2010277160.tif 000004
【図３】
2010277160.tif 000005
【図４】
2010277160.tif 000006
【図５】
2010277160.tif 000007
【図６】
2010277160.tif 000008
【図７】
2010277160.tif 000009
【図８】
2010277160.tif 000010
【図９】
2010277160.tif 000011
【図１０】
2010277160.tif 000012
【図１１】
2010277160.tif 000013
【図１２】
2010277160.tif 000014
【図１３】
2010277160.tif 000015
【図１４】
2010277160.tif 000016
【図１５】
2010277160.tif 000017
【図１６】
2010277160.tif 000018
【図１７】
2010277160.tif 000019
【図１８】
2010277160.tif 000020
【図１９】
2010277160.tif 000021
【図２０】
2010277160.tif 000022
【図２１】
2010277160.tif 000023