(57)【特許請求の範囲】
【請求項１】
少なくとも２種類のクロック同期式バスである１次バスと２次バスと、該２種類のバスを結ぶバスブリッジと、該１次バスに接続される転送要求を出力する少なくとも１種類のクロック同期式マスタデバイス１と、該２次バスに接続される互いに周波数または周期の異なるクロックで動作し転送要求を受信する少なくとも２種類のクロック同期式ターゲットデバイスと、該マスタデバイス１と該ターゲットデバイスと該バスブリッジにクロックを供給するクロック供給部を備えるシステムにおいて、該バスブリッジ内部に、該マスタデバイスからの転送要求の転送先を検出するアドレスデコーダと、該アドレスデコーダで検出された転送先の該ターゲットデバイスの動作クロックを示すクロック選択信号を出力する手段と、該１次バスのクロックで動作する信号を該２次バスのクロックで、該２次バスのクロックで動作する信号を該１次バスのクロックで同期化する同期化回路とを備え、該クロック選択信号により該２種類以上のターゲットデバイスの動作クロックから該アドレスデコーダで検出された転送先の該ターゲットデバイスの動作クロックを選択して該２次バスのクロックとして該同期化回路に入力するクロック選択部を備えることにより、該２次バスに出力される信号がデータの転送先の該ターゲットデバイスによって異なるクロックに同期していることを特徴とするバス制御システム。
【請求項２】
請求項１記載のバス制御システムにおいて、該バスブリッジは、該１次バスから該バスブリッジに入力される信号を、該クロック選択信号の状態変化のタイミングよりも遅いタイミングで該同期化回路に入力して該２次バスのクロックで同期化することを特徴とするバス制御システム。
【請求項３】
請求項１のバス制御システムにおいて、該２次バスに接続される少なくとも１種類のマスタデバイス２を備え、該バスブリッジと該マスタデバイス２が出力する転送要求について、バス使用許可を該バスブリッジと該マスタデバイス２に交互に与えると同時に、バス使用許可を与えられた該バスブリッジもしくは該マスタデバイス２の希望する、転送先の該ターゲットデバイスの動作クロックが該２次バスの動作クロックとして選択されるように該クロック選択部にクロック選択信号を出力する機能を備え、異なるクロックに同期した信号が該２次バス上で衝突しないように転送要求を調停するバスアービタを備えることを特徴とするバス制御システム。
【請求項４】
該２次バスに接続される、該２次バスの動作クロックのみで動作する少なくとも１種類のマスタデバイス２を備える、請求項１のバス制御システムにおいて、該バスブリッジと該マスタデバイス２が出力する転送要求について、バス使用許可を該バスブリッジと該マスタデバイス２に交互に与えると同時に、バス使用許可を与えられた該バスブリッジもしくは該マスタデバイス２の希望する、転送先の該ターゲットデバイスの動作クロックが該２次バスの動作クロックとして選択されるように該クロック選択部にクロック選択信号を出力する機能を備え、異なるクロックに同期した信号が該２次バス上で衝突しないように転送要求を調停するバスアービタであって、該バスアービタから出力される該マスタデバイス２に対する転送許可信号を、該マスタデバイス２が希望する該２次バスの動作クロックに同期して出力することを特徴とするバスアービタを備えるバス制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の異なる周波数で動作するバスを有する計算機システムのバス制御に関する。
【０００２】
【従来の技術】
プロセッサに高速な動作周波数を必要とするシステムにおいて、プロセッサや記憶装置等を接続する高速プロセッサバスとは別に周辺装置等を接続する比較的低速のバスを用意し、プロセッサバスに接続するデバイス数を低減することで、プロセッサバスの動作周波数の高速化を実現する方法がある。複数のデバイスを接続するバスはクロック同期式のバスが一般的であるが、上記低速バスに接続されるデバイスは、機能面でも最大動作周波数の面でも多様化しており、単一の周波数を持つクロック同期式バスに複数のデバイスを接続するためには、デバイスの動作クロックをバスクロックと同一にするか、デバイス側に同期化回路を設ける方式が取られる。一般には、接続するデバイスを各々の最大周波数で動作させることができるため、同期化回路を設ける方式の方がシステム全体の性能が良いとされる。
【０００３】
デバイス側に同期化回路を設けた、バスの階層構造を有するシステムの一構成例を図２に示す。図２において、１０１は同期式１次バス、１０２は１次バス１０１とは異なる周波数で動作する同期式２次バス、１０３は１次バス１０１に接続されているプロセッサ、１０４は１次バス１０１に接続されている転送要求を出力するマスタデバイス、１０５は１次バス１０１に接続されている転送要求を受信するターゲットデバイス、１０６は１次バス１０１で発生した転送要求を２次バス１０２のデバイスに伝えるバスブリッジ、１０７は各デバイスにクロックを供給するクロック供給部、１０８は２次バス１０２に接続され、クロックＡで動作するターゲットデバイスＡ、１０９は２次バス１０２に接続され、クロックＢで動作するターゲットデバイスＢ、１１４は１次バス１が動作するクロックＸ、２０１は２次バス１０２が動作するクロックＹ、１１５はターゲットデバイスＡ１０８が動作するクロックＡ、１１６はターゲットデバイスＢ１０９が動作するクロックＢである。ここで、クロックＸ１１４、クロックＹ２０１、クロックＡ１１５、クロックＢ１１６はそれぞれ独立で周波数の異なるクロックであり、４種類のクロックの中でクロックＸ１１４が一番周波数が高いと仮定する。また、１１１は、１次バス１０１が動作するクロックＸ１１４に同期した信号を２次バス１０２が動作するクロックＹ２０１に、２次バス１０２が動作するクロックＹ２０１に同期した信号を１次バス１０１が動作するクロックＸ１１４にそれぞれ同期化するための同期化回路、２０２はクロックＹ２０１に同期した信号をクロックＡ１１５に、クロックＡ１１５に同期した信号をクロックＹ２０１にそれぞれ同期化する同期化回路、２０３はクロックＹ２０１に同期した信号をクロックＢ１１６に、クロックＢ１１６に同期した信号をクロックＹ２０１にそれぞれ同期化する同期化回路である。ターゲットデバイスＡ１０８やターゲットデバイスＢ１０９のように、接続するバスの動作クロックと異なるクロックで動作しているデバイスは、同期化回路２０２，２０３を備え、それぞれのデバイスの動作クロックで動作する信号をバスクロックＹ２０１で同期化して出力、および、入力したバスクロックＹ２０１に同期している信号をそれぞれのデバイスの動作クロックで同期化して使用する必要がある。
【０００４】
次に、１次バス１０１上のプロセッサ１０３から、２次バス１０２上のターゲットデバイスＡ１０８へのデータ転送の流れを、図２を使用して説明する。プロセッサ１０３で発生した転送要求は、転送先をターゲットデバイスＡ１０８に特定して１次バス１０１上に発行される。転送を受け取ったバスブリッジ１０６は、２次バス１０２に転送を伝達するため、１次バス１０１から入力した信号を同期化回路１１１で同期化する。同期化回路１１１を通ることで、信号は２次バス１０２の動作クロックＹ２０１に同期化され、２次バス１０２上に発行される。２次バス１０２では、転送先となるターゲットデバイスＡ１０８がその転送を受信し、受け取った信号をクロックＡ１１５で動作するよう同期化回路１１１に通して同期化する。
【０００５】
図２のようなシステムでは、各ターゲットデバイスが同期化回路を持たなくてはいけないことで論理規模や消費電力が増大する上、各ターゲットデバイスとバスブリッジ両方の同期化回路を通る際に発生するレイテンシにより転送効率の低下が生じる。これらの課題を解決する一手段として、異なる動作周波数を持つデバイスを同一のバスに接続する特開平６−８３７７０号公報記載の方式が考えられる。特開平６−８３７７０号公報記載の方式では、動作周波数の異なる複数のデバイスがアドレスバスとデータバスを共有している場合に、各デバイスの動作周波数に同期したコマンドを生成するコマンド生成回路をデバイス毎に設け、各デバイスにコマンドを送付した後、デバイスからのデータ送受信終了信号を受け取り転送を終了する、という手順で転送が行われる。この方式を使用すれば、一度のアドレス出力で一種類のデータのみを送受信する単純なプロトコルを持つバスを２次バスとして採用した場合には、デバイス側の同期化回路を削除することが可能である。
【０００６】
【発明が解決しようとする課題】
従来方式では、複雑なプロトコルを持つバスを２次バスとして採用すると、２次バスに接続されたデバイスのクロックの種類の分だけ制御線の同期化回路を設ける必要があるため、バスブリッジの同期化回路の規模が大きくなり、信号線もデバイス毎に１組ずつ持たなくてはならないためにバスブリッジのインタフェース信号の本数も増大する。さらに、アドレスとデータを同一信号線を用いて、決められたタイミングで切り替えるようなプロトコルを持つバスを２次バスとして採用した場合には、アドレス・データ線も各デバイスのクロックに同期して出力する必要があるため、バスブリッジは、バスの全信号をクロック周波数の種類分だけ、インタフェース信号として持たなければならない。
【０００７】
本発明の目的は、２次バスとして複雑なプロトコルを持つバスを選択しても、バスブリッジ側の同期化回路とインタフェース信号の本数を増大させることなく、異なる周波数で動作するデバイスの接続を可能にし、論理規模、消費電力を低減して転送効率を向上させることにある。
【０００８】
【課題を解決するための手段】
本発明では、上記の目的を解決するため、バスブリッジからのクロック選択信号により、２次バスに接続されている数種類のデバイスの動作クロックから２次バスの動作クロックを選択するクロック選択部を設け、クロック選択部から出力されたクロックで同期化した信号をバスブリッジから送出する機能を備える。また、複数マスタに対応した２次バスにおいても、転送要求の調停と同時に２次バスのクロック選択を行うバスアービタを設け、同期化回路を用いずターゲットデバイスの２次バスへの接続を可能にする。ここでバスブリッジ以外のマスタデバイスとしては、独自の動作クロックを持たないマスタデバイスと、独自の動作クロックを持つマスタデバイス、双方に対応する。ターゲットデバイスの同期化回路を不要にすることで、論理規模の低減、転送効率の向上が実現される。
【０００９】
【発明の実施の形態】
本発明の第一の実施例を図１を用いて説明する。図１において、１１０は１次バス１０１から入力されたアドレスをデコードするアドレスデコーダ、１１２はクロックＡ１１５とクロックＢ１１６を選択するクロックセレクタ、１１３はアドレスデコーダ１１０で転送先として特定されたターゲットデバイスの動作クロックを示すクロック選択信号、１１７はクロックセレクタ１１２で選択された同期化回路用クロックである。第一の実施例では、周波数の異なるクロックで動作する２つ以上のターゲットデバイスを、同一のバスに接続し、ターゲットデバイス内部に同期化回路を備えることなく実現するバス制御システムを示している。
【００１０】
バスブリッジ１０６には、図２の従来例と同様にクロック供給部１０７より２系統のクロックが入力されているが、本実施例では、２次バス１０２の動作クロックの替わりにクロックセレクタ１１２で選択された同期化回路用クロック１１７が使用されている。また、２次バス１０２に接続されているターゲットデバイスには、各デバイスの動作クロック、１系統のみが入力され、同期化回路は削除されている。２次バス１０２には規定の動作クロックはなく、データの転送先がターゲットデバイスＡ１０８の場合にはクロックＡ１１５に、転送先がターゲットデバイスＢ１０９の場合にはクロックＢ１１６に、それぞれ同期した信号をバスブリッジ１０６が出力することにより、ターゲットデバイスの同期化回路なしでの２次バス１０２上のデータ転送を可能にしている。
【００１１】
バスブリッジ１０６は、２次バス１０２上に出力する信号を同期するクロックを、発生した転送毎に動的に変化させる必要があるため、１次バス１０１から入力されたアドレスをアドレスデコーダ１１０でデコードして転送先のターゲットを特定し、その結果をクロックセレクタ１１２に送ることで、どちらのクロックに信号を同期化するかを選択する。
【００１２】
１次バス１０１上のプロセッサ１０３から、２次バス１０２上のターゲットデバイスＡ１０８へのデータ転送の流れを、図１を使用して説明する。プロセッサ１０３で発生した転送要求は、転送先をターゲットデバイスＡ１０８に特定して１次バス１０１上に発行される。転送を受け取ったバスブリッジ１０６は、受け取った転送のアドレスをデコードし、２次バス上のターゲットデバイスＡ１０８、ターゲットデバイスＢ１０９のどちらに対する転送なのかを判定する。判定の結果、プロセッサ１０３からの転送がターゲットデバイスＡ１０８への転送と判明すると、バスブリッジ１０６から出力する信号をクロックＡ１１５で同期化するために、判定結果をクロックセレクタ１１２へクロック選択信号１１３として出力する。クロックセレクタ１１２では、クロック選択信号１１３の値に従い、クロックＡ１１５を同期化回路用クロック１１７として選択する。クロック選択信号１１３は、２次バス１０２上の転送が終了するまで一定の値に保たれる。バスブリッジ１０６では、アドレスデコーダ１１０の判定結果をクロックセレクタ１１２に出力する一方、２次バス１０２に転送を伝達するため、１次バス１０１から入力した信号を同期化回路１１１で同期化する。以上の流れで、２次バス１０２にはクロックＡに同期した信号が出力され、転送先として指定されたターゲットデバイスＡ１０８が転送を受信する。転送先がターゲットデバイスＢ１０９の場合も同様の転送手順となる。
【００１３】
クロックセレクタ１１２におけるクロックの切り替えタイミングと、１次バス１０１から入力された信号の同期化の関係について、図３、図４を用いて説明する。図３は、バスブリッジ１０６の１次バス１０１から入力された信号を同期化する同期化回路１１１の周辺のブロック図、図４はそのタイミングチャートである。図３において、３０１はクロックＸ１１４の立ち上がりエッジで動作するフリップフロップ、３０２、３０３はクロックＡ１１５の立ち上がりエッジで動作するフリップフロップ、３０４はクロックＸ１１４に同期している１次バス１０１からバスブリッジ１０６に入力される信号１（Ｘ）、３０５はフリップフロップ３０１から出力された信号２（Ｘ）、３０６はフリップフロップ３０２から出力された信号３（Ａ）、３０７はフリップフロップ３０３から２次バス１０２に出力された信号４（Ａ）である。図４において、Ｘ１からＸ９はクロックＸ１１４の時間、Ａ１からＡ６はクロックＡ１１５の時間である。ここで、クロックＸ１１４、クロックＡ１１５、クロックＢ１１６は、それぞれ異なる周波数と位相を持つクロックであるとする。
【００１４】
図４のタイムチャートで、Ｘ４で変化した信号２（Ｘ）３０５は、Ａ３のクロックＡ１１５の立ち上がりエッジでフリップフロップ３０２に取り込まれる。Ａ３では、信号２（Ｘ）３０５の状態変化の発生時刻とクロックＡ１１５の立ち上がりエッジ発生時刻が極めて接近しているため、フリップフロップ３０２が信号２（Ｘ）３０５の状態変化をうまく取り込めず、出力された信号３（Ａ）３０６はＡ４で不確定状態（メタステーブル状態）に陥っている。このメタステーブル状態を除去するために１クロック間の時間を置き、信号３（Ａ）３０６は、Ａ５のクロックＡ１１５の立ち上がりエッジで、もう１段のフリップフロップ３０４に入力され、クロックＡ１１６に同期した信号４（Ａ）３０７が生成される。
【００１５】
本実施例１において、バスブリッジ１０６の同期化回路１１１で使用されるクロックは、クロックＡ１１５とクロックＢ１１６を選択した同期化回路用クロック１１７である。この同期化回路用クロック１１７の切り替わりタイミングは、クロックＸ１１４に同期したアドレスをデコードした結果得られたクロック選択信号１１３の状態変化のタイミングであるが、クロックＸ１１４、クロックＡ１１５、クロックＢ１１６は周波数や位相が異なるクロックであるため、切り替わりタイミング前後の同期化回路用クロック１１７の立ち上がりエッジ間の時間は保証されない。
【００１６】
アドレスが、信号１（Ｘ）３０４と同じＸ３のタイミングでバスブリッジに入力されるとすると、アドレスデコーダ１１０を通して生成したクロック選択信号１１３は、信号１（Ｘ）３０４よりも状態変化が遅れる。信号１（Ｘ）３０４に対して同期化を始めるとすれば、クロック選択信号１１３により選択された同期化回路用クロック１１７の立ち上がりエッジが発生しているＸ３で、状態変化した値がフリップフロップ３０２に取り込まれる。ここで、フリップフロップ３０２の出力信号がメタステーブル状態になったと仮定すると、同期化回路用クロック１１７の次の立ち上がりエッジであるＡ３までの時間、Ｔｃｋの間にメタステーブル状態を脱しないと、フリップフロップ３０３でメタステーブル状態を除去することができない。前述のように、同期化回路用クロック１１７の切り替えタイミング前後では、クロックの立ち上がりエッジ間の時間は保証されないため、Ｔｃｋが非常に短くなり、フリップフロップ３０２の出力信号がメタステーブル状態を脱することができない可能性がある。
【００１７】
そこで、正常に同期化を行うために、同期化する信号をクロック選択信号１１３よりも遅いタイミングで同期化回路に入力する必要がある。図３、図４の例では、入力信号１（Ｘ）３０４をクロックＸ１１４で動作するフリップフロップ３０１に入力し、状態変化を１クロック分遅延させてから同期化回路１１１に入力している。
【００１８】
同期化回路１１１に入力するクロックを選択することのない従来方式では、フリップフロップ３０１は必要ないため、バスブリッジ１０６のみのレイテンシを考えれば大きくなる。しかしシステム全体でみれば、クロックＸ１１４はクロックＡ１１５やクロックＢ１１６と比較して動作周波数が高いと考えられるので、ターゲットデバイスＡ１０８やターゲットデバイスＢ１０９の同期化回路を削除したことで短縮した遅延時間の方が、クロックＸ１１４で動作するフリップフロップ３０１の通過時間よりも充分大きく、本方式を採用したことによる効果に影響はないと言える。
【００１９】
次に、２次バス１０２にバスブリッジ１０６以外のマスタデバイスが接続されている場合の実施例２を図５を使用して説明する。実施例２で２次バス１０２に新たに接続されたマスタデバイスは、単一クロックで動作し、動的なクロック変化が可能なデバイスと仮定する。そのようなデバイスの例としては、レジスタを設定することで転送要求を発行するＤＭＡコントローラ等がある。図５において、５０１は２次バス１０２に接続された転送要求を発行するマスタデバイス、５０２は複数のバス使用者を調停するバスアービタ、５０３はバスブリッジ１０６からバスアービタ５０２に出力されるバスブリッジ転送要求、５０４はバスアービタ５０２からバスブリッジ１０６に出力されるバスブリッジ転送許可信号、５０５はマスタデバイス５０１からバスアービタ５０２に出力されるマスタ転送要求、５０６はバスアービタ５０２からマスタデバイス５０１に出力されるマスタ転送許可信号、５０７はクロック選択信号である。ここで、５０３と５０４の転送要求信号が出力されると同時に、クロック選択信号もバスアービタ５０２に対して出力されるものとする。
【００２０】
複数マスタを接続可能なバスにはバス使用者の調停を行う機構が必要であるが、実施例２では、バスアービタ５０２はバス使用者の調停だけでなく、クロック選択信号の出力も行う。図５において、２次バス１０２に接続された転送要求を発行する２つのデバイスであるバスブリッジ１０６とマスタデバイス５０１は、バスアービタ５０２に対して転送要求だけではなく、どのクロックで動作させるかを指定するクロック選択信号を出力する。
【００２１】
バスアービタ５０２は、２次バス１０２で転送を開始できるデバイスを選択して、そのデバイスに転送許可信号５０４、５０６を送信すると同時に、選択されたデバイスが発行しているクロック選択信号を、クロックセレクタ１１２に出力し、バス権を取ったデバイスが要求する周波数のクロックを選択する。バスアービタ５０２では、バス使用権の切り替えタイミングでクロックも切り替えるため、切り替えの前後で、何らかの方法を用いてバス衝突やメタステーブルが発生するのを防がなくてはならない。そこで実施例２では、バスアービタ５０２でクロック切り替えタイミングを操作する機構を導入する方式と、バスブリッジ１０６でクロックを操作する方式を採用する。
【００２２】
まずバスアービタ５０２においてクロック切り替えタイミングを操作する方式を、図６のバスアービタ５０２詳細図と図７のバス調停タイミングチャートを用いて説明する。図６において、６０１はバスブリッジ１０６が同期化回路用クロック１１７を選択するために出力するバスブリッジクロック選択信号、６０２はマスタデバイス５０１が同期化回路用クロック１１７を選択するために出力するマスタデバイスクロック選択信号、６０３はバス権が与えられたデバイスのクロック選択信号を選ぶクロック選択信号セレクタ、６０４は１次バス１０１のクロックＸ１１４に同期して出力される信号であるバスブリッジ転送要求５０３をバスアービタ５０２の動作クロックである同期化回路用クロック１１７に同期化する同期化回路、６０５は同期化回路６０４で同期化された同期化後バスブリッジ転送要求、６０６は同期化後バスブリッジ転送要求６０５とマスタ転送要求５０５を受け取り、任意の優先順位決定方法によってどちらのデバイスにバス権を与えるかを決定する優先順位判定部、６０７は優先順位判定部６０６で判定された結果であるバスブリッジ選択信号、６０８は２次バス１０２の制御信号、６０９は制御信号６０６を用いて２次バス１０２が使用中でないことを検出するバスアイドル検出部、６１０はバスアイドル検出部６０７の結果であるバス権切り替えタイミング信号、バスブリッジ選択信号６０７をバス権切り替えタイミング信号６１０がアサートしたときに取り込み、６１１はバスブリッジ転送許可信号を生成するフリップフロップ、６１２はインバータ、６１３はインバータ６１２で反転後の信号、６１４はマスタ転送許可信号５０６をマスタデバイス５０１が要求するクロック周波数で同期化する同期化回路である。また図７において、Ａ１からＡ５はクロックＡ１１５の時間、Ｂ１からＢ６はクロックＢ１１６の時間、７０１は図６の同期化回路６１０の内部信号で、同期化のため２段用意されたフリップフロップのうち、１段目のフリップフロップの出力信号である。
【００２３】
バスアービタ５０２でバスの調停が行われる手順を説明する。バスブリッジ１０６からの転送要求信号５０３は、同期化回路６０４において同期化回路用クロック１１７に同期化されてから、すでに同期化回路用クロック１１７に同期しているマスタデバイス５０１からの転送要求信号５０５は直接、優先順位判定部６０６に入力される。優先順位判定部６０６では、任意の優先順位判定アルゴリズムにより、どちらの転送要求の優先度が高いかを判定し、バスブリッジ１０６が選択されたときにアサートされるバスブリッジ選択信号６０７を出力する。
【００２４】
同時に、バスアイドル検出部６０７では、２次バス１０２の制御信号６０８を観測し、２次バス１０２が使用中であるかを監視、使用中でない場合はバス権切り替えタイミング信号６１０をアサートする。バスブリッジ選択信号６０７は、バス権切り替えタイミング信号６１０がアサートされているときのクロックの立ち上がりでフリップフロップ６１１に取り込まれ、バスブリッジ転送許可信号５０４が生成される。マスタ転送許可信号５０６は、バスブリッジ転送許可信号５０４の反転である。
【００２５】
本実施例２の前提として、マスタデバイス５０１を、レジスタを設定することにより転送要求が発生するデバイスと仮定している。そのようなデバイスは、通常データを転送する準備が整ってから転送要求を発行するため、マスタデバイス５０１は、転送要求に対する転送許可信号５０６を受信すると、同期化回路を通すことなく次の同期化回路用クロック１１７の立ち上がりエッジでバス出力動作を開始できる。よってバスアービタ５０２は、同期化回路が存在しないマスタデバイス５０１へのマスタ転送許可信号５０６を、マスタデバイス５０１が要求するクロックに同期させて出力しなくてはならない。一方でバスブリッジ１０６は、転送要求５０３を発行してバス権を獲得した後、信号を同期化回路１１１に通して２次バス１０２に出力するため、バスブリッジ転送許可信号５０４がクロックに同期している必要はなく、バスアービタ５０２でバスブリッジ転送許可信号５０４を同期化すると２重に同期化することになる。そこで、図６にあるように、バスブリッジ転送許可信号５０４はフリップフロップ６１１の出力をそのまま使用し、マスタ転送許可信号５０６はフリップフロップ６１１の出力をインバータ６１２で反転後、その信号６１２を同期化回路６１４でクロック切り替え後の同期化回路用クロック１１７に同期化して出力することで、同期化の重複を避ける。
【００２６】
バス権をバスブリッジ１０６からマスタデバイス５０１に切り替える際のタイミングの詳細を、図７のタイミングチャートに示す。Ａ１で、バスブリッジ１０６が２次バス１０２でクロックＡ１１５に同期して転送中に、マスタデバイス５０１が転送要求５０３を発行している。ここで、マスタデバイス５０１は、ターゲットデバイスＢ１０９に対する転送を要求しており、クロックＢ１１６で動作することを希望しているとする。Ａ１でバスブリッジ１０６の転送が終了し、Ａ２のクロックＡ１１５の立ち上がりでバスブリッジ１０６が転送要求５０３を下げる。同時に、２次バス１０２が未使用状態になるので、バス権切り替えタイミング信号６１０がアサートされる。Ａ３のクロックＡ１１５の立ち上がりで、バスブリッジ転送許可信号５０４がネゲートされ、クロック選択信号５０７として、マスタデバイス５０１から出力されたマスタデバイスクロック選択信号６０２が選択される。クロック選択信号５０７の切り替わり後、同期化回路用クロック１１７がクロックＡ１１５からクロックＢ１１６に切り替わる。バスブリッジ転送許可信号５０４は、クロックの切り替わりタイミングであるＡ３のクロックＡ１１５の立ち上がりでネゲートされているため、その反転信号をそのままマスタデバイス５０１への転送許可信号５０６として使用しては、マスタデバイス５０１が要求する動作クロックであるクロックＢ１１６とは非同期の信号になってしまう。そこで、Ｂ４のクロックＢ１１６の立ち上がりで、バスブリッジ転送許可信号５０４の反転信号６１３の値が、同期化１段目フリップフロップに取り込まれ、Ｂ５のクロックＢ１１６の立ち上がりで、同期化１段目フリップフロップからの出力信号７０１の値が同期化２段目フリップフロップに取り込まれることで、クロックＢ１１６に同期したマスタ転送許可信号５０６が生成される。
【００２７】
次に、バスブリッジ１０６でクロックを操作する方式について説明する。実施例２で用いられるマスタデバイス５０１は、プロセッサ１０３によってレジスタが設定されることにより転送要求５０５が発行されるため、どのターゲットに対してマスタデバイス５０１が転送要求５０５を発行するのか、転送要求発行前にプロセッサ１０３が把握しているはずである。そこで本方式では、マスタデバイス５０１にレジスタアクセスに行く際のクロックとして、転送要求５０５を発行時に選択される予定のクロックを選択して転送を行うよう、バスブリッジ１０６内部に設定できるような機構を設ける。このような機構の例としていくつかの方法が考えられる。一つは、バスブリッジ１０６内部に発行する転送の動作クロックを設定する専用レジスタを設けて、マスタデバイス５０１のレジスタを設定する転送を発行する前に設定し、その専用レジスタの値をクロック選択信号として出力する方法である。もう一つは、マスタデバイス５０１の転送要求５０３発行時のアドレスをマスタデバイス５０１内部のレジスタに設定する際に、そのアドレスの設定値をデコードする機構をバスブリッジ１０６内部に設け、クロック選択信号を決定する方法である。こうしてマスタデバイス５０１のレジスタアクセス時にクロックを選択しておけば、マスタデバイス５０１が転送要求５０５を発行する際にはクロックの切り替えが発生しないため、バスアービタ５０２がマスタ転送許可信号５０６を出力する際の同期化回路を設ける必要がなくなり、バスの調停にかかる時間を短くできる。
【００２８】
さらに、実施例３として、２次バス１０２に接続されたデバイスが、外部Ｉ／Ｏや他のバスに接続されているため独自の動作クロックを持っている場合を挙げ、図８を用いて説明する。図８において、８０１は２次バス１０２とのインタフェース以外に、外部とのインタフェースを持つマスタデバイス、８０２はマスタデバイス８０１に接続されている外部Ｉ／Ｏ、８０３は外部Ｉ／Ｏ８０２からのアドレスデコーダ、８０４は外部Ｉ／Ｏ８０２からの入力信号を同期化回路用クロック１１７に、２次バス１０２からの入力信号を外部Ｉ／Ｏ８０２の動作クロックにそれぞれ同期化する同期化回路、８０５はマスタデバイス８０１と外部Ｉ／Ｏ８０２が動作するクロックＣ、８０６はバスブリッジ１０６とマスタデバイス８０１から転送要求を受け取ってバスの調停をするバスアービタである。
【００２９】
実施例３では、マスタデバイス８０１が独自の動作クロックであるクロックＣ８０５を持っているため、実施例１におけるバスブリッジ１０６と同様の機能を設ける必要がある。すなわち、外部Ｉ／Ｏ８０２からの入力されたアドレスを、アドレスデコーダ８０３でデコードし、バスアービタ８０６にマスタ転送要求５０５と共に出力し、マスタ転送許可信号５０６を受け取った時点で、同期化回路８０４においてクロックＣ８０５で動作する信号を同期化回路用クロック１１７に同期化する。
【００３０】
実施例３のバスアービタ８０６の内部構成を図９に示す。図９において、９０１はマスタデバイス８０１の動作クロックであるクロックＣ８０５に同期して出力される信号であるマスタ転送要求５０５をバスアービタ５０２の動作クロックである同期化回路用クロック１１７に同期化する同期化回路、９０２は同期化回路９０１で同期化された同期化後マスタ転送要求である。マスタデバイス８０１に同期化回路８０４が存在するため、マスタ転送許可信号５０６は、フリップフロップ６１１で生成されたバスブリッジ転送許可信号５０４を反転しただけで出力される。マスタデバイス８０１が独自のクロックで動作していても、２種類のターゲットデバイスには同期化回路は必要ない。
【００３１】
【発明の効果】
本発明によれば、階層的バス構造を持つシステムにおいて、１次バス（高速プロセッサバス）と２次バス（周辺装置等を接続する比較的低速のバス）を結ぶバスブリッジが、データの２次バス上の転送先によって、出力する信号を同期させるクロックを選択できるような機構を設けることで、転送先になるターゲットデバイスの同期化回路を排除し、論理規模や消費電力が低減でき、転送効率も向上する。また、２次バス上にバスの調停以外に、各マスタが出力するデータを同期させるクロックの選択を行うバスアービタを設けることにより、ターゲットデバイスに同期化回路を持たせずに、２次バスへの複数マスタ接続を可能にする。さらに、２次バス上に接続されるバスブリッジ以外のマスタデバイスが独自の動作クロックを持たない場合には、そのマスタデバイス内部の同期化回路も削除することができる。
【図面の簡単な説明】
【図１】本発明の第一の実施例の構成図である。
【図２】従来の実施例の構成図である。
【図３】バスブリッジ内部の同期化回路の構成図である。
【図４】図３の信号線のタイミングを示すタイミングチャートである。
【図５】本発明の第二の実施例の構成図である。
【図６】第二の実施例におけるバスアービタの構成図である。
【図７】図６のバスアービタにおけるバス調停のタイミングチャートである。
【図８】本発明の第三の実施例の構成図である。
【図９】第三の実施例におけるバスアービタの構成図である。
【符号の説明】
１０１…同期式１次バス、１０２…１次バスとは異なる周波数で動作する同期式２次バス、１０３…１次バスに接続されているプロセッサ、１０４…１次バスに接続されている転送要求を出力するマスタデバイス、１０５…１次バスに接続されている転送要求を受信するターゲットデバイス、１０６…１次バスで発生した転送要求を２次バス１０２のデバイスに伝えるバスブリッジ、１０７…各デバイスにクロックを供給するクロック供給部、１０８…２次バスに接続され、クロックＡで動作するターゲットデバイスＡ、１０９…２次バスに接続され、クロックＢで動作するターゲットデバイスＢ、１１０…１次バスから入力されたアドレスをデコードするアドレスデコーダ、１１２…クロックＡとクロックＢを選択するクロックセレクタ、１１３…クロックＡとクロックＢのどちらを選択するかを示すクロック選択信号、１１７…クロックセレクタで選択された同期化回路用クロック、１１４…１次バスが動作するクロックＸ、１１５…ターゲットデバイスＡが動作するクロックＡ、１１６…ターゲットデバイスＢが動作するクロックＢ、１１１…バスブリッジ内部の同期化回路、２０１…２次バスが動作するクロックＹ、２０２…ターゲットＡ内部の同期化回路、２０３…ターゲットＢ内部の同期化回路、３０１…クロックＸの立ち上がりエッジで動作するフリップフロップ、３０２、３０３…クロックＡの立ち上がりエッジで動作するフリップフロップ、３０４…バスブリッジに入力されるクロックＸに同期している信号１（Ｘ）、３０５…フリップフロップ３０１から出力された信号２（Ｘ）、３０６…フリップフロップ３０２から出力された信号３（Ａ）、３０７…フリップフロップ３０３から２次バスに出力された信号４（Ａ）、５０１…２次バスに接続された転送要求を発行するマスタデバイス、５０２…複数のバス使用者の調停をするバスアービタ、５０３…バスブリッジからバスアービタ５０２に出力されるバスブリッジ転送要求、５０４…バスアービタ５０２からバスブリッジに出力されるバスブリッジ転送許可信号、５０５…マスタデバイス５０１からバスアービタ５０２に出力されるマスタ転送要求、５０６…バスアービタ５０２からマスタデバイス５０１に出力されるマスタ転送許可信号、５０７…クロック選択信号、６０１…バスブリッジが同期化回路用クロックを選択するために出力するバスブリッジクロック選択信号、６０２…マスタデバイス５０１が同期化回路用クロックを選択するために出力するマスタデバイスクロック選択信号、６０３…バス権が与えられたデバイスのクロック選択信号を選ぶクロック選択信号セレクタ、６０４…クロックＸに同期して出力される信号であるバスブリッジ転送要求を同期化回路用クロックに同期化する同期化回路、６０５…同期化回路６０４で同期化された同期化後バスブリッジ転送要求、６０６…同期化後バスブリッジ転送要求とマスタ転送要求を受け取り、任意の優先順位決定方法によってどちらのデバイスにバス権を与えるかを決定する優先順位判定部、６０７…優先順位判定部で判定された結果であるバスブリッジ選択信号、６０８…２次バスの制御信号、６０９…制御信号を用いて２次バスが使用中でないことを検出するバスアイドル検出部、６１０…バスアイドル検出部の結果であるバス権切り替えタイミング信号、６１１…バスブリッジ転送許可信号を生成するフリップフロップ、６１２…インバータ、６１３…インバータで反転した後の信号、６１４…マスタ転送許可信号をマスタデバイス５０１が要求するクロック周波数で同期化する同期化回路、７０１…同期化回路６１４の内部信号で、同期化のため２段用意されたフリップフロップのうち、１段目のフリップフロップの出力信号、８０１…２次バスとのインタフェース以外に、外部とのインタフェースを持つマスタデバイス、８０２…マスタデバイス８０１に接続されている外部Ｉ／Ｏ、８０３…外部Ｉ／Ｏからのアドレスデコーダ、８０４…マスタデバイス８０１内部の同期化回路、８０５…マスタデバイス８０１が動作するクロックＣ、８０６…バスブリッジとマスタデバイス８０１から転送要求を受け取ってバスの調停をするバスアービタ、９０１…クロックＣに同期して出力される信号であるマスタ転送要求５０５を同期化回路用クロック１１７に同期化する同期化回路、９０２…同期化回路９０１で同期化された同期化後マスタ転送要求、Ｘ１〜Ｘ９…クロックＸ１１４の時間、Ａ１〜Ａ６…クロックＡ１１５の時間、Ｂ１〜Ｂ６…クロックＢ１１６の時間。
【図１】
0004124579.tif 000002
【図２】
0004124579.tif 000003
【図３】
0004124579.tif 000004
【図４】
0004124579.tif 000005
【図５】
0004124579.tif 000006
【図６】
0004124579.tif 000007
【図７】
0004124579.tif 000008
【図８】
0004124579.tif 000009
【図９】
0004124579.tif 000010