(57)【要約】【課題】バス渡り転送における周辺バスアクセス転送のレイテンシ性能を向上させる。【解決手段】第１バス（１００）と第２バス（２００）とがバスブリッジを介して接続される。このとき、上記バスブリッジは、第１バスにアドレス信号が出力されたバスサイクルにおいて、上記アドレス信号が上記第２バスアクセスである場合に、同じバスサイクルで上記第１バスのアドレス信号を上記第２バスへ出力可能なアドレス伝達回路（１０１）を含んで構成される。第１バスにアドレス信号が出力されたバスサイクルと同じサイクルで、第２バスにアドレス信号を出力することが可能となるため、低速なバスサイクルで１サイクル分削減可能となり、低レイテンシ転送が実現できる。【選択図】図１
2008287557.tif 000002
【特許請求の範囲】
【請求項１】
第１バスと第２バスとがバスブリッジを介して接続されるバスシステムであって、
上記バスブリッジは、第１バスにアドレス信号が出力されたバスサイクルにおいて、上記アドレス信号が上記第２バスアクセスである場合に、上記バスサイクルと同じバスサイクルで上記第１バスのアドレス信号を上記第２バスへ出力可能なアドレス伝達回路を含んで成ることを特徴とするバスシステム。
【請求項２】
上記アドレス伝達回路は、上記第１バスのアクセスが上記第２バスへのアクセスである場合に、第１バスにアドレス信号が出力されたバスサイクルにおいて、上記第２バスに出力するアドレス信号として、第１バスから出力されたアドレス信号と、それ以前のバスサイクルで第１バスに出力されたアドレス信号のいずれかを選択的に上記第２バスへ出力可能なセレクタを含む請求項１記載のバスシステム。
【請求項３】
第１バスと第２バスとがバスブリッジを介して接続されるバスシステムであって、
上記バスブリッジは、上記第１バスに出力されたアドレス信号が第２バスであることを判定可能なアドレスデコーダと、
上記第２バスへのアドレス信号出力の有無を切り替えるトライステートドライバと、
上記アドレスデコーダの判定結果及び第２バスのアクセス状態をもとに上記トライステートドライバの動作制御を可能とするアドレス出力制御回路と、
上記第１バスのアドレス信号を保持するバッファと、
上記第２バスに出力するアドレス信号として上記第１バスから出力されるアドレス信号と上記バッファに保持したアドレス信号のいずれかを選択するセレクタと、
上記セレクタの動作制御を可能とするセレクタ制御回路と、
上記第２バスへのアクセス開始を判定して上記バッファへの取り込みの制御信号を出力するアクセス開始判定回路と、を含んで成ることを特徴とするバスシステム。
【請求項４】
ＣＰＵと、
上記ＣＰＵによって動作制御可能な周辺モジュールと、
上記ＣＰＵによってアクセス可能な内部バスと、
上記周辺モジュールが結合された周辺バスと、
上記内部バスと上記周辺バスとを接続するためのバスブリッジと、を含むマイクロコンピュータであって、
上記バスブリッジは、上記第１バスに出力されたアドレス信号が第２バスであることを判定可能なアドレスデコーダと、
上記第２バスへのアドレス信号出力の有無を切り替えるトライステートドライバと、
上記アドレスデコーダの判定結果及び第２バスのアクセス状態をもとに上記トライステートドライバの動作制御を可能とするアドレス出力制御回路と、
上記第１バスのアドレス信号を保持するバッファと、
上記第２バスに出力するアドレス信号として上記第１バスから出力されるアドレス信号と上記バッファに保持したアドレス信号のいずれかを選択するセレクタと、
上記セレクタの動作制御を可能とするセレクタ制御回路と、
上記第２バスへのアクセス開始を判定して上記バッファへの取り込みの制御信号を出力するアクセス開始判定回路と、を含んで成ることを特徴とするマイクロコンピュータ。
【請求項５】
上記セレクタ制御回路は、アクセス開始判定信号を入力し、上記周辺バスへのアクセスが行われている最中であることを示す周辺バスアクセス実行信号を出力する第１周辺バスアクセス状態制御回路と、
上記周辺バスアクセス実行信号と上記アクセス開始判定信号とに基づいて上記セレクタを制御するための制御信号を生成するセレクタ制御信号出力回路と、を含み、
上記周辺バスアクセス状態制御回路は、上記周辺バスアクセス実行信号を形成するための順序回路を含んで成る請求項４記載のマイクロコンピュータ。
【請求項６】
上記アドレス出力制御回路は、アクセス開始判定信号を入力とし、上記周辺バスへのアクセスが行われている最中であることを示す周辺バスアクセス実行信号を出力する第２周辺バスアクセス状態制御回路と、
上記周辺バスアクセス実行信号と上記アクセス開始判定信号を入力とに基づいてトライステートドライバ制御信号を生成するトライステートドライバ制御信号出力回路と、を含んで成る請求項４記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスが接続されて成るバスシステムに関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
近年、組込み用途向けマイクロコンピュータの分野では、ＣＰＵ（中央処理装置）の動作周波数の向上により性能向上を実現してきていた。一方、主に低速なＩ／Ｏ（入出力）制御を行う周辺内蔵モジュールに関しては、既存ＩＰ（設計資産）の互換性を保ち、開発期間の短縮を図るために、動作周波数は従来の製品と同等とされる。そのため、ＣＰＵの動作周波数を大幅に向上させた分、ＣＰＵと周辺内蔵モジュールとの動作周波数差がますます拡大してきた。このように組込み用途向けマイクロコンピュータでは、それぞれ最適な動作周波数が異なるモジュール同士を１つのチップに集積する必要がでてきたことや、多数のモジュールを直接１つのバスに接続すると、バスの容量が大きくなり増加する消費電力を抑えることなどから、一般的に、ＣＰＵバス、内部バス、周辺バス等がバスブリッジを介して分離されるバス構成が用いられる（例えば特許文献１参照）。
【０００３】
【特許文献１】特開平８−２８７００５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えばＣＰＵバス、内部バス、周辺バス等がバスブリッジを介して分離されるバス構成において、バスブリッジを介して行われるデータ転送を「バス渡り転送」と称する。このバス渡り転送について本願発明者が検討したところ、以下のような課題が見いだされた。
【０００５】
バス渡り転送においては、バスの接続部におけるアドレス信号などの受け渡しによるサイクル数の増加が生じたため、複数バスを経由するバス転送のレイテンシが長くなる。特にＣＰＵ（中央処理装置）の高性能化に伴い、ＣＰＵコアと低速なＩ／Ｏ系のモジュールが接続される周辺バスとの速度差が大きくなると、動作周波数が低い内部バス及び周辺バスへのアクセスサイクルによる転送レイテンシが支配的となるため、周辺バスアクセス転送のレイテンシ性能低下が顕著になる。また、リードアドレス信号がＣＰＵバスに出力されてから、内部バス、周辺バス経由でアクセスサイクルが完了してＣＰＵバスにデータが出力されるまで、バスを占有しＣＰＵの周辺バスアクセス転送命令以降の処理も待たされるため、ＣＰＵの処理効率が低下する。尚、このような不都合は、ＣＰＵバスから内部バスを経由して周辺バスへ出力するアドレス信号の転送レイテンシが長いことに起因する。
【０００６】
本発明の目的は、バス渡り転送における周辺バスアクセス転送のレイテンシ性能を向上させるための技術を提供することにある。
【０００７】
本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【０００９】
すなわち、第１バスと第２バスとがバスブリッジを介して接続される。このとき、上記バスブリッジは、第１バスにアドレス信号が出力されたバスサイクルにおいて、上記アドレス信号が上記第２バスアクセスである場合に、同じバスサイクルで上記第１バスのアドレス信号を上記第２バスへ出力可能なアドレス伝達回路を含んで構成される。第１バスにアドレス信号が出力されたバスサイクルと同じサイクルで、第２バスにアドレス信号を出力することが可能となるため、低速なバスサイクルで１サイクル分削減可能となり、低レイテンシ転送が実現できる。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１１】
すなわち、バス渡り転送における周辺バスアクセス転送のレイテンシ性能を向上させることができる。
【発明を実施するための最良の形態】
【００１２】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１３】
〔１〕本発明の代表的な実施の形態に係るバスシステムは、第１バス（１００）と第２バス（２００）とがバスブリッジを介して接続されて成る。このとき、上記バスブリッジは、第１バスにアドレス信号が出力されたバスサイクルにおいて、上記アドレス信号が上記第２バスアクセスである場合に、同じバスサイクルで上記第１バスのアドレス信号を上記第２バスへ出力可能なアドレス伝達回路を含んで構成する。
【００１４】
上記の構成によれば、第１バスにアドレス信号が出力されたバスサイクルと同じサイクルで、第２バスにアドレス信号を出力することが可能となるため、低速なバスサイクルで１サイクル分削減可能となり、低レイテンシ転送が実現できる。
【００１５】
〔２〕上記アドレス伝達回路は、上記第１バスのアクセスが上記第２バスへのアクセスである場合に、第１バスにアドレス信号が出力されたバスサイクルにおいて、上記第２バスに出力するアドレス信号として、第１バスから出力されたアドレス信号と、それ以前のバスサイクルで第１バスに出力されたアドレス信号のいずれかを選択的に上記第２バスへ出力可能なセレクタ（１０１）を含んで構成することができる。
【００１６】
〔３〕また、上記バスブリッジは、上記第１バスに出力されたアドレス信号が第２バスであることを判定可能なアドレスデコーダ（１１１）と、上記第２バスへのアドレス信号出力の有無を切り替えるトライステートドライバ（１０３）と、上記アドレスデコーダの判定結果及び第２バスのアクセス状態をもとに上記トライステートドライバの制御信号を出力するアドレス出力制御回路（１０２）と、上記第１バスのアドレス信号を保持するバッファ（１１０）と、上記第２バスに出力するアドレス信号として上記第１バスから出力されるアドレス信号と上記バッファに保持したアドレス信号のいずれかを選択するセレクタ（１０１）と、上記セレクタの動作制御を可能とするセレクタ制御回路（１０４）と、上記バッファへの取り込みの制御信号を出力するアクセス開始判定回路（１０５）とを含んで構成することができる。
【００１７】
〔４〕別な観点では、ＣＰＵ（１）と、上記ＣＰＵによって動作制御可能な周辺モジュール（２０〜２ｎ）と、上記ＣＰＵによってアクセス可能な内部バス（１００）と、上記周辺モジュールが結合された周辺バス（２００）と、上記内部バスと上記周辺バスとを接続するためのバスブリッジ（１０）と、を含んでマイクロコンピュータ（９０）を構成する。このとき、上記バスブリッジは、上記第１バスに出力されたアドレス信号が第２バスであることを判定可能なアドレスデコーダ（１１１）と、上記第２バスへのアドレス信号出力の有無を切り替えるトライステートドライバ（１０３）と、上記アドレスデコーダの判定結果及び第２バスのアクセス状態をもとに上記トライステートドライバの制御信号を出力するアドレス出力制御回路（１０２）と、上記第１バスのアドレス信号を保持するバッファ（１１０）と、上記第２バスに出力するアドレス信号として上記第１バスから出力されるアドレス信号と上記バッファに保持したアドレス信号のいずれかを選択するセレクタ（１０１）と、上記セレクタの動作制御を可能とするセレクタ制御回路（１０４）と、上記バッファへの取り込みの制御信号を出力するアクセス開始判定回路（１０５）とを含んで構成することができる。
【００１８】
〔５〕上記セレクタ制御回路は、アクセス開始判定信号を入力し、上記周辺バスへのアクセスが行われている最中であることを示す周辺バスアクセス実行信号を出力する第１周辺バスアクセス状態制御回路（６００Ａ）と、上記周辺バスアクセス実行信号と上記アクセス開始判定信号とに基づいて上記セレクタを制御するための制御信号を生成するセレクタ制御信号出力回路（４００）とを含んで構成することができる。上記周辺バスアクセス状態制御回路は、上記周辺バスアクセス実行信号を形成するための順序回路を含んで構成することができる。
【００１９】
〔６〕上記アドレス出力制御回路は、アクセス開始判定信号を入力とし、上記周辺バスへのアクセスが行われている最中であることを示す周辺バスアクセス実行信号を出力する第２周辺バスアクセス状態制御回路（６００Ｂ）と、上記周辺バスアクセス実行信号と上記アクセス開始判定信号を入力とに基づいてトライステートドライバ制御信号を生成するトライステートドライバ制御信号出力回路（５００）とを含んで構成することができる。
【００２０】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２１】
図９には、本発明にかかるバスシステムが適用されたマイクロコンピュータが示される。
【００２２】
図９に示されるマイクロコンピュータ９０は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。このマイクロコンピュータ９０におけるバスとして、ＣＰＵバス２、内部バス１００、周辺バス２００を挙げることができる。ＣＰＵバス２には、所定のプログラムを実行することによって演算処理可能なＣＰＵ１が接続されている。内部バス１００には、内部バスの調停を行うＩＢＳＣ（内部バスステートコントローラ）５と、ＣＰＵ１を介さずにバスに接続されているモジュール間のデータを直接転送するＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）６、外部バスに接続されるメモリと内部バス間でのバスのプロトコル変換を行うＥＢＳＣ（外部バス・ステート・コントローラ）４が接続されている。周辺バス２００は、ＣＰＵバス２に比べ低速な動作を行なうＩ／Ｏ装置などの周辺モジュール（ＭＤＬ）２０〜２ｎが接続されている。各バスのアクセスプロトコル変換を目的として、ＣＰＵバス２と内部バス１００はバスブリッジ３を介して接続され、また、内部バス１００と周辺バス２００はバスブリッジ１０を介して接続されている。
【００２３】
ここで、上記バスブリッジ１０の基本的な構成について説明する。
【００２４】
図１０には、上記バスブリッジ１０の基本的な構成が示される。
【００２５】
内部バス１００から周辺バス２００へ出力するためのアドレス信号を保持するバッファ１１０と、周辺バスへのアドレス信号出力のオンオフの切り替えを行うトライステートドライバ１０３と、内部バス１００と周辺バス２００との間のデータ授受のためのデータ入出力回路１２０とが設けられる。内部バス１００から出力されるアドレス信号１５０をデコードするアドレスデコーダ１１１と、リードあるいはライトの識別や転送サイズなどの情報を含むコマンドをデコードするコマンドデコーダ１１４と、周辺バスへのアクセス開始を判定するアクセス開始判定回路１０５とが設けられる。コマンドデコーダ１１４の出力信号１６１と内部バスのアクセス有効信号１２０をもとに、データ入出力回路の制御信号を出力するデータ制御回路１１３と、アドレス信号出力を制御するアドレス出力制御回路１００２とが設けられる。
【００２６】
アドレスデコーダ１１１は、内部バス１００から出力されたアドレス信号１５０をデコードし、そのアドレス信号が周辺バスの領域に該当するかを判別し、そのアドレス信号が周辺バスの領域に該当する場合は、周辺バスアドレス判定信号１２１を出力する。
【００２７】
アクセス開始判定回路１０５は、周辺バスアドレス判定信号１２１と内部バスのアクセス有効信号１２０を入力とし、内部バスのアドレス信号が周辺バスの領域であり、かつそのアドレス信号が有効であるときに、周辺バスへのアクセス開始を判定し、アクセス開始判定信号１２２を出力する。このアクセス開始判定信号１２２は、内部バスに出力されたアドレス信号をバッファに格納するためのバッファ格納制御信号としても使用される。
【００２８】
アドレス出力制御回路１０２は、アクセス開始を判定するアクセス開始判定信号をもとに、その信号が出力された次の周辺バスのクロックの立ち上がりから周辺バスのプロトコルに規定されたサイクル期間分、周辺バスへアドレス信号を出力するために、トライステートドライバ制御信号１２３を出力する。
【００２９】
これらのバッファ格納制御信号として使用されるアクセス開始判定信号１２２とトライステートドライバ制御信号１２３をもとに、バスブリッジは、周辺バスへのアドレス信号出力を制御している。また、トライステートドライバ制御信号１２３の仕様として、信号値が論理値“１”のときは、バッファ１１０出力信号１５１を周辺バス２００に出力されたアドレス信号２５０として出力する。論理値“０”のときは、周辺バス２００の出力アドレス信号がオフとなり、ハイインピーダンス状態となる。ハイインピーダンス状態にする理由は、通常バスのアクセスを行わない場合に、他の周辺バス２００に接続されているモジュールのアクセスに対して影響を与えないようにするためである。
【００３０】
図１１には、バスブリッジ１０として、図１０に示される構成を採用した場合の動作タイミングが示される。
【００３１】
尚、図１１は、ＣＰＵバス２と内部バス１００と周辺バス２００の周波数比が１０：１：１の場合である。ＣＰＵから周辺バスにアクセスする際、ＣＰＵバス、内部バスを経由する必要があり、バスサイクル１１００１の期間にＣＰＵバスから出力されるアドレス信号は、バスサイクル１１００２の期間に、内部バス、そしてバスサイクル１１００３の期間以降に周辺バスへ順に出力されており、バス渡り転送では、フリップフロップ回路を経由してアドレス信号を受け渡しする必要があった。図１０の構成で説明すると、バスサイクル１１００２の期間において、内部バス１００から出力されたアドレス信号１５０が周辺バスでかつそのアドレス信号が有効であるため、アドレスデコーダ１１１から出力された周辺アドレス判定信号１２１及び内部バスアクセス有効信号１２０が論理値“１”にされる。それを受けて、アクセス開始判定回路１０５は、周辺バスへのアクセスが有ると判定し、アクセス開始判定信号１２２を論理値“１”にする。この出力により、バスサイクル１１００３の期間において内部バスに出力されたアドレス信号がバッファ１１０に格納される。更に同じバスサイクル１１００３の期間において、アドレス出力制御回路１００２は、トライステートドライバ制御信号１２３を論理値“１”にすることで、周辺バスクロックの立ち上がりに同期してバッファ１１０に格納したアドレス信号１５１を周辺バス２００へ出力することを開始する。
【００３２】
以上述べたバッファが前に述べたフリップフロップ回路の役割を果たす。バス渡り転送においては、バスの接続部におけるアドレス信号などの受け渡しによるサイクル数の増加が生じたため、複数バスを経由するバス転送のレイテンシが長くなる。特にＣＰＵ１の高性能化に伴いＣＰＵコアと低速なＩ／Ｏ系のモジュールが接続される周辺バスとの速度差が大きくなると、動作周波数が低い内部バス１００及び周辺バス２００へのアクセスサイクルによる転送レイテンシが支配的となるため、周辺バスアクセス転送におけるレイテンシ性能の低下が顕著になる。また、リードアドレス信号ＲＡ１がＣＰＵバス２に出力されてから、内部バス１００、周辺バス２００経由でアクセスサイクルが完了してＣＰＵバス２にデータＲＤ１が出力されるまで、バスが占有され、ＣＰＵ１の周辺バスアクセス転送命令以降の処理も待たされるため、ＣＰＵ１の処理効率も低下する。
【００３３】
そこで、周辺バスアクセス転送におけるレイテンシ性能の向上や、ＣＰＵ１の処理効率の向上を図るため、上記バスブリッジ１０を図１に示されるように構成する。
【００３４】
図１に示される構成が図１０に示されるのと大きく相違するのは、周辺バスに出力するアドレス信号として内部バス１００に出力されるアドレス信号１５０あるいはバッファ１１０に保持したアドレス信号１５１を選択するセレクタ１０１と、このセレクタ１０４の動作を制御するセレクタ制御回路１０４とを設けた点である。
【００３５】
セレクタ１０１は、セレクタ制御回路１０４から出力されるセレクタ制御信号１０７に従って、周辺バスへ出力するアドレス信号として、内部バスに出力されたアドレス信号とバッファに格納したアドレス信号のどちらかを選択する。例えば、セレクタ制御信号１０７の仕様として、信号値が論理値“１”のときは、内部バス１００に出力されたアドレス信号１０５を出力する。論理値“０”のときは、バッファに格納されたアドレス信号１５１を出力する。ここで、上記セレクタ１０１は、内部バス１００のアドレス信号を周辺バス２００へ出力可能なアドレス伝達回路の一例とされる。
【００３６】
セレクタ制御回路１０４は、特に制限されないが、図４に示されるように、アクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２を入力とし、周辺バスアクセス実行信号１３０Ａを出力する周辺バスアクセス状態制御回路６００Ａと、その周辺バスアクセス実行信号１３０Ａとアクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２を入力とし、セレクタ制御信号１２４を出力するセレクタ制御信号出力回路４００とを含んで成る。
【００３７】
周辺バスアクセス状態制御回路６００Ａは、周辺バスへのアクセスが行われている最中であることを示す周辺バスアクセス実行信号１３０Ａを出力するための順序回路を備えている。図６には、上記順序回路の状態遷移が示される。
【００３８】
上記周辺バスアクセス状態制御回路６００Ａに含まれる順序回路は、周辺バスクロックに同期して動作を行い、Ｐ０、Ｐ１、Ｐ２、Ｐ３の４つの状態を有する。Ｐ０は、周辺バスへのアクセスが行われていない状態であり、Ｐ１、Ｐ２、Ｐ３は、周辺バスへのアクセスが行われている状態である。そのため、周辺バスアクセス実行信号１３０Ａは、周辺バスへのアクセスが行われているＰ１、Ｐ２、Ｐ３の状態のときに出力される。周辺バスへのアクセスが行われていないＰ０の状態において、アクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２が入力されると、周辺バスクロックに同期して、順にＰ１、Ｐ２の状態となり、周辺バスアクセス実行信号１３０Ａが出力される。Ｐ２の状態において、連続して周辺バスへのアクセスが行われない、すなわちアクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２が入力されていないと、周辺バスクロックに同期して、Ｐ０の状態となり、周辺バスアクセス実行信号１３０Ａが出力されない。一方、Ｐ２の状態において、連続して周辺バスへのアクセスが行われる、すなわちアクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２が入力されると、周辺バスクロックに同期して、順にＰ３、Ｐ１、Ｐ２の状態となり、周辺バスアクセス実行信号１３０Ａが出力される。
【００３９】
図７には、上記セレクタ制御信号出力回路４００の動作の流れが示される。
【００４０】
セレクタ制御信号出力回路１０４は、アクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２をもとに、内部バス１００のアクセスが周辺バス２００へのアクセスであることを判定する（図７の７０１）。周辺バスへのバスアクセスでない場合は、セレクタ制御回路１０４は、セレクタ制御信号１２４を論理値“０”にする（図７の７０４）。一方、周辺バスへのバスアクセスである場合は、続けて、周辺バスアクセス状態制御回路から出力された周辺バスアクセス実行信号１３０Ａをもとに、周辺バス２００がバスアクセス中であることを判定する（図７の７０２）。周辺バスがバスアクセス中である場合には、セレクタ制御回路１０４は、セレクタ制御信号１２４を論理値“０”にする（図７の７０４）。一方、周辺バスがバスアクセス中でない場合は、セレクタ制御回路１０４は、セレクタ制御信号１２４を論理値“１”にする（図７の７０３）。
【００４１】
アドレス出力制御回路１０２は、特に制限されないが、図５に示されるように、アクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２を入力とし、周辺バスアクセス実行信号１３０Ｂを出力する周辺バスアクセス状態制御回路６００Ｂと、その周辺バスアクセス実行信号１３０Ｂとアクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２を入力とし、トライステートドライバ制御信号１２３を出力するトライステートドライバ制御信号出力回路５００とを含んで成る。
【００４２】
図８には、バスブリッジ１０に含まれるアドレス出力制御回路の動作フローチャートが示される。
【００４３】
トライステートドライバ制御出力回路５００は、アクセス開始判定回路１０５から出力されるアクセス開始判定信号１２２をもとに、内部バス１００のアクセスが周辺バス２００へのアクセスであることを判定する（図８の８０１）。周辺バスへのバスアクセスである場合は、トライステートドライバ制御信号出力回路５００は、トライステートドライバ制御信号１２３を論理値“１”にする（図８の８０３）。一方、周辺バスへのバスアクセスでない場合は、続けて、周辺バスアクセス状態制御回路６００Ｂから出力された周辺バスアクセス実行信号１３０Ｂをもとに、周辺バス２００がバスアクセス中であることを判定する（図８の８０２）。周辺バスがバスアクセス中である場合には、トライステートドライバ制御出力回路５００は、トライステートドライバ制御信号１２３を論理値“１”にする（図８の８０３）。一方、周辺バスがバスアクセス中でない場合は、トライステートドライバ制御出力回路５００は、トライステートドライバ制御信号１２３を論理値“０”にする（図８の８０４）。
【００４４】
次に、ＣＰＵ１から周辺バスに接続されているモジュールへのリード動作する場合を、図２のタイミング図を用いて説明する。尚、図２のタイミング図は、ＣＰＵバス２と内部バス１００と周辺バス２００の周波数比が１０：１：１の場合である。まず、ＣＰＵから出力されたリードアドレス信号ＲＡ１は、バスサイクル２００１の期間内にＣＰＵバスクロックに同期してＣＰＵバス２に出力される。ＣＰＵバス２に出力されたリードアドレス信号ＲＡ１は、内部バスクロックの立ち上がりに同期して、バスサイクル２００２の期間に内部バス１００に出力される。その出力されたアドレス信号ＲＡ１がアドレスデコーダ１１１でデコードされることで、周辺アドレス判定信号１２１が得られる。その周辺アドレス判定信号１２１と、内部バス有効信号１２０がともに出力されているので、アクセス開始判定回路１１５は、周辺バスへアクセスが有ると判断し、同じバスサイクル２００２の期間に、バッファ格納制御信号１２２を論理値“１”にアサートする。それを受けて、次の周辺バスクロックの立ち上がりでＲＡ１アドレス信号を、バッファ１１０に保持する。また同じバスサイクル２００２の期間で、アクセス開始判定回路１０５から出力されたアクセス開始判定信号１２２の出力を受けて、セレクタ制御回路１０４内のセレクタ制御信号出力回路４００は、図７のステップ７０１に従って、内部バス１００に出力されたアドレス信号ＲＡ１が周辺バス２００へのアクセスであることを判定する。続けて、同じバスサイクルで、周辺アクセス状態制御回路６００ＡのステートがＰ０であり、周辺アクセス実行信号１３０Ａが出力されていないため、図７のステップ７０２に従って、周辺バス２００がバスアクセス中でないことを判定する。その判定を受けて、セレクタ制御信号１２４が論理値“１”にされる。更に同じバスサイクル２００２の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、アドレス出力制御回路１０２内のトライステート制御信号出力回路５００は、図８のステップ８０１に従って、内部バス１００に出力されたアドレス信号ＲＡ１が周辺バス２００へのアクセスであることを判定する。その判定を受けて、トライステート制御信号１２３が論理値“１”にされる。その結果、バスサイクル２００２で内部バス１００のアドレス信号１５０を周辺バス２００に出力する。以上で、内部バスにアドレス信号が出力されたバスサイクル２００２と同じサイクルで、周辺バスにアドレス信号を出力することが可能となる。
【００４５】
その後、周辺バス２００にアクセスして内部バスにリードデータが出力されるサイクルまでのバスサイクル２００３と２００４の期間内は、周辺バスにアドレス信号ＲＡ１を出力し続ける必要がある。バスサイクル２００２の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、バスサイクル２００３と２００４の期間においては、周辺アクセス状態制御回路６００Ａのステートは、それぞれＰ１、Ｐ２であるため、周辺アクセス実行信号１３０Ａが出力される。その間は、アクセス開始判定回路１０５から出力された制御信号は論理値“０”にネゲートされるため、セレクタ制御回路１０４内のセレクタ制御信号出力回路４００は、図７のステップ７０１に従って、内部バス１００に出力されたアドレス信号が周辺バス２００へのアクセスでないことを判定し、セレクタ制御信号１２４を論理値“０”にネゲートする。そのセレクタ制御信号を受けて、セレクタ１０１は、バッファ１１０に格納されたアドレス信号ＲＡ１を選択して出力する。また、アドレス出力制御回路１０２内のトライステート制御信号出力回路５００において、図８のステップ８０１に従って、内部バス１００に出力されたアドレス信号が周辺バス２００へのアクセスでないことを判定し、周辺アクセス実行信号が論理値“１”アサートしているため、周辺バスがアクセス中であることを判定する。その判定を受けて、トライステートドライバ制御信号１２３が論理値“１”にされる。その出力を受けて、トライステートドライバはオンとなり、周辺バス２００のアドレス信号２５０としてバッファ１１０に格納したアドレス信号を出力する。周辺バス２００のアドレス信号で示されたレジスタを有する周辺内蔵モジュールは、バスサイクル２００３の期間にリードデータＲＤ１を周辺バスに出力する。そのリードデータＲＤ１は、データ制御回路１１３によって制御されるデータ入出力回路１２０を介して、バスサイクル２００４の期間に内部バス１００に出力される。内部バス１００に出力されたリードデータＲＤ１は、バスサイクル２００４の期間内にＣＰＵバスクロックに同期してＣＰＵバス２に出力される。
【００４６】
尚、周辺バス２００へのアドレス信号出力の低レイテンシ転送に関しては、リード動作やライト動作において同様とされるため、ライト動作の説明は省略する。
【００４７】
以上のような動作により、ＣＰＵ１から周辺バス２００に接続されているモジュールへアクセスした場合に、周辺バス２００へのアクセスが検出されたサイクルで周辺バス２００のアクセスを開始するために周辺バス２００へアドレス信号を出力することが可能となり、周辺バス２００へのレイテンシが短い転送を実現することができる。
【００４８】
更に、ＣＰＵ１から周辺バス２００に接続されているモジュールへ連続リード動作する場合を、図３のタイミング図を用いて説明する。尚、バスの動作周波数とプロトコルは図２と同一条件である。
【００４９】
まず、ＣＰＵ１から出力されたリードアドレス信号ＲＡ１は、バスサイクル３００１の期間内にＣＰＵバスクロックに同期してＣＰＵバス２に出力され、続けてその次のＣＰＵバスクロックに同期して、リードアドレス信号ＲＡ２がＣＰＵバス２に出力される。ＣＰＵバス２に出力されたリードアドレス信号ＲＡ１は、内部バスクロックの立ち上がりに同期して、バスサイクル３００２の期間に内部バス１００に出力され、続けて、内部バス１００へバスサイクル３００３の期間にその次のリードアドレス信号ＲＡ２を出力する。その出力されたアドレス信号ＲＡ１はアドレスデコーダ１１１でデコードされる。これにより周辺アドレス判定信号１２１が得られる。その周辺アドレス判定信号１２１と、内部バス有効信号１２０がともに出力されているので、アクセス開始判定回路１１５は、周辺バスへアクセスが有ると判断し、同じバスサイクル３００２の期間に、バッファ格納制御信号１２２を論理値“１”にアサートする。それを受けて、次の周辺バスクロックの立ち上がりでＲＡ１アドレス信号を、バッファ１１０に保持する。また同じバスサイクル３００２の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、セレクタ制御回路１０４内のセレクタ制御信号出力回路４００は、図７のステップ７０１に従って、内部バス１００に出力されたアドレス信号ＲＡ１が周辺バス２００へのアクセスであることを判定する。続けて、同じバスサイクルで、周辺アクセス状態制御回路６００ＡのステートがＰ０であり、周辺アクセス実行信号１３０Ａが出力されていないため、図７のステップ７０２に従って、周辺バスがバスアクセス中でないことを判定する。その判定を受けて、セレクタ制御信号１２４が論理値“１”にされる。更に同じバスサイクル３００２の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、アドレス出力制御回路１０２内のトライステート制御信号出力回路５００は、図８のステップ８０１に従って、内部バス１００に出力されたアドレス信号ＲＡ１が周辺バス２００へのアクセスであることを判定する。その判定を受けて、トライステート制御信号１２３が論理値“１”にされる。その結果、バスサイクル３００２で内部バス１００のアドレス信号１５０を周辺バス２００に出力する。以上により、内部バス１００にアドレス信号が出力されたバスサイクル３００２と同じサイクルで、周辺バス２００にアドレス信号を出力することが可能となる。
【００５０】
その後、周辺バス２００にアクセスして内部バス１００にリードデータが出力されるサイクルまでのバスサイクル３００３と３００４の期間内は、周辺バスにアドレス信号ＲＡ１を出力し続ける必要がある。バスサイクル３００２の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、バスサイクル３００３と３００４の期間においては、周辺アクセス状態制御回路６００Ａのステートは、それぞれＰ１、Ｐ２であるため、周辺アクセス実行信号１３０Ａが出力される。その間は、アクセス開始判定回路１０５から出力された制御信号は論理値“０”にネゲートされたため、セレクタ制御回路１０４内のセレクタ制御信号出力回路４００は、図７のステップ７０１において、内部バス１００に出力されたアドレス信号が周辺バス２００へのアクセスでないことを判定し、セレクタ制御信号１２４を論理値“０”にネゲートする。そのセレクタ制御信号１２４を受けてセレクタ１０１は、バッファ１１０に格納されたアドレス信号ＲＡ１を選択して出力する。また、アドレス出力制御回路１０２内のトライステート制御信号出力回路５００において、図８のステップ８０１により、内部バス１００に出力されたアドレス信号が周辺バス２００へのアクセスでないことが判定され、周辺アクセス実行信号１３０Ｂが論理値“１”アサートしているため、周辺バス２００がアクセス中であることを判定する。その判定を受けて、トライステートドライバ制御信号１２３が論理値“１”にされる。その出力を受けて、トライステートドライバ１０３はオン状態となり、周辺バス２００のアドレス信号２５０としてバッファ１１０に格納されたアドレス信号を出力する。周辺バス２００のアドレス信号で示されたレジスタを有する周辺内蔵モジュールは、バスサイクル３００３の期間にリードデータＲＤ１を周辺バスに出力する。そのリードデータＲＤ１は、データ制御回路１１３により制御されるデータ入出力回路１２０を介して、バスサイクル３００４の期間に内部バス１００に出力される。内部バス１００に出力されたリードデータＲＤ１は、バスサイクル３００４の期間内にＣＰＵバスクロックに同期してＣＰＵバス２に出力される。
【００５１】
一方、リードアドレス信号ＲＡ２に関する転送は、リードアドレス信号ＲＡ１に関する転送が完了した後のバスサイクル３００５から開始される。そのリードアドレス信号ＲＡ２はバスサイクル３００３以降に内部バス１００に出力されている。リードアドレス信号ＲＡ１に関する転送でリードデータＲＤ１がＣＰＵバス２に出力されているバスサイクル３００４の期間で、その出力されたアドレス信号ＲＡ２をアドレスデコーダ１１１が周辺バス２００のアドレス領域であることをデコードし、周辺アドレス判定信号１２１を出力する。その周辺アドレス判定信号１２１と、内部バス有効信号１２０がともに出力されているので、アクセス開始判定回路１１５は、周辺バス２００へのアクセスが有ると判断し、同じバスサイクル３００２の期間に、バッファ格納制御信号１２２を論理値“１”にアサートする。それを受けて、次の周辺バスクロックの立ち上がりでＲＡ２アドレス信号を、バッファ１１０に保持する。
【００５２】
また同じバスサイクル３００４の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、セレクタ制御回路１０４内のセレクタ制御信号出力回路４００は、図７のステップ７０１に従って、内部バス１００に出力されたアドレス信号ＲＡ２が周辺バス２００へのアクセスであることを判定する。続けて、同じバスサイクルで、周辺アクセス状態制御回路６００ＡのステートがＰ２であり、周辺アクセス実行信号１３０Ａが出力されているため、図７のステップ７０２で、周辺バスがバスアクセス中であることが判定される。その判定を受けて、セレクタ制御信号１２４が論理値“０”にされる。更に同じバスサイクル５００４の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、アドレス出力制御回路１０２内のトライステート制御信号出力回路５００は、図８のステップ８０１において、内部バス１００に出力されたアドレス信号ＲＡ２が周辺バス２００へのアクセスであることが判定される。その判定を受けて、トライステート制御信号１２３が論理値“１”にされる。その結果、バスサイクル３００４では、バッファ１１０に格納されたアドレス信号ＲＡ１が周辺バス２００に出力される。
【００５３】
その後、周辺バス２００にアクセスして内部バス１００にリードデータが出力されるサイクルまでのバスサイクル３００５と３００７の期間内は、周辺バスにアドレス信号ＲＡ２を出力し続ける必要がある。バスサイクル３００４の期間で、アクセス開始判定回路１０５から出力された制御信号の出力を受けて、バスサイクル３００５と３００６と３００７の期間においては、周辺アクセス状態制御回路６００Ａのステートは、それぞれＰ３，Ｐ１、Ｐ２となるため、周辺アクセス実行信号１３０Ａが出力される。その間は、アクセス開始判定回路１０５から出力された制御信号は論理値“０”にネゲートされたため、セレクタ制御回路１０４内のセレクタ制御信号出力回路４００は、図７のステップ７０１において、内部バス１００に出力されたアドレス信号が周辺バス２００へのアクセスでないことが判定され、セレクタ制御信号１２４が論理値“０”にネゲートされる。そのセレクタ制御信号１２４を受けてセレクタ１０１は、バッファ１１０に格納されたアドレス信号ＲＡ２を選択して出力する。また、アドレス出力制御回路１０２内のトライステート制御信号出力回路５００において、図８のステップ８０１により、内部バス１００に出力されたアドレス信号が周辺バス２００へのアクセスでないことが判定され、周辺アクセス実行信号が論理値“１”アサートしているため、周辺バス２００がアクセス中であることが判定される。その判定を受けて、トライステートドライバ制御信号１２３が論理値“１”にされる。その出力を受けて、トライステートドライバ１０３はオン状態となり、周辺バス２００のアドレス信号２５０としてバッファ１１０に格納されたアドレス信号を出力する。周辺バス２００のアドレス信号で示されたレジスタを有する周辺内蔵モジュールは、バスサイクル３００６の期間にリードデータＲＤ１を周辺バス２００に出力する。そのリードデータＲＤ１は、データ制御回路１１３によって制御されるデータ入出力回路１２０を介して、バスサイクル３００７の期間に内部バス１００に出力される。内部バス１００に出力されたリードデータＲＤ１は、バスサイクル３００７の期間内にＣＰＵバスクロックに同期してＣＰＵバス２に出力される。
【００５４】
尚、周辺バス２００へのアドレス信号出力の低レイテンシ転送に関しては、リード動作やライト動作において同様とされるため、ライト動作の説明は省略する。
【００５５】
以上のような動作により、ＣＰＵ１１から周辺バス１２０に接続されているモジュールへのアクセスが連続した場合においても、１番目の周辺バス２００へのアクセスが検出されたサイクルで周辺バス２００のアクセスを開始するために周辺バス２００へアドレス信号を出力することが可能となり、周辺バス２００へのレイテンシが短い転送を実現することができる。
【００５６】
以上述べた例は、内部バス１００にアドレス信号が出力されてから、そのアドレス信号をデコードし、アドレス信号出力を制御するためにセレクタ制御信号１２４及びトライステートドライバ制御信号１２３を生成し、それらの制御信号にもとづいて内部バスに出力されたアドレス信号を周辺バスに出力し、転送先である周辺バスに接続された周辺内蔵モジュールがその出力された周辺バスのアドレス信号を受け取りデコードするまでの動作が次の周辺バスクロックの立ち上がりまでに完了することが前提となっている。仮に、内部バスが周辺バスより周波数が高く、さらに周波数差が拡大している場合に、特に、内部バスへのアドレス信号出力が周辺バスクロックのバスサイクルの終わりに近いときに、上記動作が次の周辺バスクロックの立ち上がりまでに完了しないという問題がおこる恐れがある。しかし、内部バスへのアドレス信号出力が周辺バスクロックのバスサイクルの始めに近いときには、上記動作が次の周辺バスクロックの立ち上がりまでに完了するので、周辺バスの１バスサイクル期間内で、周辺バスへの全てのアドレス信号出力に関する上記動作が、次の周辺バスクロックの立ち上がりまでに完了しないというわけではない。例えば、内部バスが周辺バスの周波数比が２：１であるときには、上記動作が次の周辺バスクロックの立ち上がりまでに完了しない問題が起こった場合でも、周辺バスクロックのバスサイクル内の前半では、上記動作が次の周辺バスクロックの立ち上がりまでに完了する時間で、内部バスのアドレス信号が出力可能であるので、２サイクルに１回は周辺バスサイクルの１サイクル分の削減を実現することができる。
【００５７】
このように図１に示されるバスブリッジ１０によれば、内部バスと周辺バスの階層渡りのバス転送において、内部バスにアドレス信号が出力されたバスサイクルと同じサイクルで、周辺バスにアドレス信号を出力することが可能となるため、低速なバスサイクルで１サイクル分削減可能となり、低レイテンシ転送が実現できる。
【００５８】
上記の例によれば、以下の作用効果を得ることができる。
【００５９】
（１）図１に示されるバスブリッジ１０によれば、内部バスと周辺バスの階層渡りのバス転送において、内部バスにアドレス信号が出力されたバスサイクルと同じサイクルで、周辺バスにアドレス信号を出力することが可能となるため、低速なバスサイクルで１サイクル分削減可能となり、低レイテンシ転送が実現できる。
【００６０】
（２）上記低レイテンシ転送が実現されることにより、ＣＰＵバス２から内部バス１００を経由して周辺バス２００へ出力するアドレス信号の転送レイテンシが短くなるため、ＣＰＵ１での処理効率の向上を図ることができる。
【００６１】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【図面の簡単な説明】
【００６２】
【図１】本発明にかかるバスシステムが適用されたマイクロコンピュータにおけるバスブリッジの構成例ブロック図である。
【図２】上記マイクロコンピュータにおけるＣＰＵから周辺バスへのリード動作に関するタイミング図である。
【図３】上記マイクロコンピュータにおけるＣＰＵから周辺バスへの連続リード動作に関するタイミング図である。
【図４】上記バスブリッジに含まれるセレクタ制御回路の構成例ブロック図である。
【図５】上記バスブリッジに含まれるアドレス出力制御回路の構成例ブロック図である。
【図６】上記バスブリッジに含まれる周辺バスアクセス状態制御回路の状態遷移図である
【図７】上記バスブリッジに含まれるセレクタ制御回路の動作フローチャートである。
【図８】上記バスブリッジに含まれるアドレス出力制御回路の動作フローチャートである。
【図９】上記マイクロコンピュータの全体的な構成例ブロック図である。
【図１０】上記バスブリッジの基本的な構成例ブロック図である。
【図１１】図１０に示されるバスブリッジを採用した場合のＣＰＵから周辺バスへのリード動作に関するタイミング図である。
【符号の説明】
【００６３】
１  ＣＰＵ
２  ＣＰＵバス
３，１０  バスブリッジ
４  ＥＢＳＣ
５  ＩＢＳＣ
６  ＤＭＡＣ
２０−２ｎ  周辺内蔵モジュール
１００  内部バス
１０１  セレクタ
１０２  アドレス出力制御回路
１０３  トライステートドライバ
１０４  セレクタ制御回路
１０５  アドレス出力制御回路
１１０  バッファ
１１１  アドレスデコーダ
１１２  コマンドデコーダ
１１３  アクセス制御回路
４００  セレクタ制御信号出力回路
５００  トライステートドライバ制御信号出力回路
６００Ａ，６００Ｂ  周辺バスアクセス状態制御回路
【図１】
2008287557.tif 000003
【図２】
2008287557.tif 000004
【図３】
2008287557.tif 000005
【図４】
2008287557.tif 000006
【図５】
2008287557.tif 000007
【図６】
2008287557.tif 000008
【図７】
2008287557.tif 000009
【図８】
2008287557.tif 000010
【図９】
2008287557.tif 000011
【図１０】
2008287557.tif 000012
【図１１】
2008287557.tif 000013