(57)【要約】【課題】高速なバスラインを備えたシステムに従来の低速な入出力装置を接続したシステムにおいて、高速なホスト側バスを長時間占有することなく、低速なＩ／Ｏ側バスへリードアクセスを行うこと。【解決手段】初回のＤＭＡリクエスト１１に応じて、ＤＭＡＣはホスト側でリード１２を行う。バスブリッジ装置はＤＭＡＣにダミーのデータを返すと同時に、Ｉ／Ｏ側でリード１３を行う。次のＤＭＡリクエスト１４に応じて、ＤＭＡＣはホスト側でリード１５を行う。バスブリッジ装置は１回前のＩ／Ｏ側でのリードデータをＤＭＡＣへ返送すると同時に、Ｉ／Ｏ側でリード１６を行う。最後のＤＭＡリクエスト１７に応じて読み出されたＩ／Ｏ側の最後のリードデータは、バスブリッジ装置内のバッファに格納される。ＣＰＵは、割り込みリクエスト２０に応じて、そのバッファから最後のリードデータを読み出す。【選択図】        図１
2006113689.tif 000002
【特許請求の範囲】
【請求項１】
高速なバスラインと低速なバスラインとの間に接続されるバスブリッジ装置であって、
低速なバスラインに接続された低速な装置から読み出されたデータを一時的に保持するリードデータバッファ部と、
前記リードデータバッファ部に有効なデータが保持されていることを示すバリッドフラグの値を格納するレジスタと、
低速なバスラインに接続された同一の低速な装置から高速なバスラインに接続された同一の高速な装置へ連続して所定回数、データを転送する際に、低速な装置からのデータの読み出しが終了する前に高速なバスラインを開放し、低速な装置から読み出したデータを前記リードデータバッファ部に格納し、前記バリッドフラグを有効なデータの格納を示す値に設定し、１回後の高速な装置へのアクセス時に、前記バリッドフラグの値が有効なデータの格納を示す値に設定されていることを確認して、前記リードデータバッファ部に格納されているデータを高速な装置へ出力する制御を行うコントロールロジック部と、
を備えることを特徴とするバスブリッジ装置。
【請求項２】
前記コントロールロジック部は、初回の高速な装置へのアクセス時に、ダミーのデータを高速な装置へ出力する制御を行うことを特徴とする請求項１に記載のバスブリッジ装置。
【請求項３】
前記コントロールロジック部は、高速な装置へのアクセス回数が所定回数に達した後に、低速な装置への最後のアクセス時に低速な装置から読み出されて前記リードデータバッファ部に格納されているデータを、高速な装置へ出力する制御を行うことを特徴とする請求項１または２に記載のバスブリッジ装置。
【請求項４】
前記コントロールロジック部は、低速な装置への最後のアクセスが完了したときに発生するイベントに基づいて、前記リードデータバッファ部に格納されている最後のデータを、高速な装置へ出力する制御を開始することを特徴とする請求項３に記載のバスブリッジ装置。
【請求項５】
前記コントロールロジック部は、前記イベントに基づいて、前記バリッドフラグの値が有効なデータの格納を示す値に設定されていることを確認し、一旦、高速なバスラインを開放した後、前記リードデータバッファ部に格納されている最後のデータを高速な装置へ出力する制御を行うことを特徴とする請求項４に記載のバスブリッジ装置。
【請求項６】
高速なバスラインと低速なバスラインとの間に接続されたバスブリッジ装置を介して、低速なバスラインに接続された同一の低速な装置から高速なバスラインに接続された同一の高速な装置へ連続して所定回数、データを転送するにあたって、
低速な装置からのデータの読み出しが終了する前に高速なバスラインを開放するとともに、低速な装置から読み出したデータをバスブリッジ装置内に一時的に保持し、１回後の高速な装置へのアクセス時に、前記バスブリッジ装置から前記データを高速な装置へ出力することを特徴とするデータ転送方法。
【請求項７】
初回の高速な装置へのアクセス時に、ダミーのデータを高速な装置へ出力することを特徴とする請求項６に記載のデータ転送方法。
【請求項８】
高速な装置へのアクセス回数が所定回数に達した後に、低速な装置への最後のアクセス時に低速な装置から読み出されて前記バスブリッジ装置内に一時的に保持されているデータを、高速な装置へ出力することを特徴とする請求項６または７に記載のデータ転送方法。
【請求項９】
低速な装置への最後のアクセスが完了したときに発生するイベントに基づいて、前記バスブリッジ装置内に一時的に保持されている最後のデータを、高速な装置へ出力することを特徴とする請求項８に記載のデータ転送方法。
【請求項１０】
前記イベントに基づいて、前記バスブリッジ装置内に有効なデータが保持されていることを確認し、一旦、高速なバスラインを開放した後、前記バスブリッジ装置内に保持されている最後のデータを高速な装置へ出力することを特徴とする請求項９に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バスブリッジ装置およびデータ転送方法に関する。
【０００２】
近年、ＣＰＵのバスラインの動作周波数が向上しており、高速な入出力装置間のデータ転送速度が高くなってきている。その一方で、過去のコンピュータシステムとの互換性を確保するなどの理由により、高速なバスラインを備えたコンピュータシステムに従来の低速な入出力装置を接続する必要がある。
【背景技術】
【０００３】
従来より、高速バスに接続されたマスタ機器が、バスブリッジを介して、低速バスに接続された低速機器にアクセスする構成が公知である（例えば、特許文献１参照。）。また、高速なデバイスが接続されるＰＣＩバス（高速バス）と、低速なデバイスが接続される低速バスと、ＰＣＩバスと低速バスとの間に接続されるバスブリッジとを有する構成が公知である（例えば、特許文献２参照。）。さらに、バスブリッジ、ＤＭＡ（ダイレクトメモリアクセス）コントローラ、ＣＰＵ（マイクロプロセッサ）、高速な入出力装置、低速な入出力装置、高速なバスおよび低速なバスを備えた構成が公知である（例えば、特許文献３参照。）。
【０００４】
図７は、高速なバスラインを備えたコンピュータシステムに従来の低速な入出力装置を接続したシステムにおいて、高速なバスライン上のバスマスタ（以下、高速バスマスタとする）から低速なバスライン上の入出力装置（以下、低速スレーブデバイスとする）へリードアクセスを行う際の従来の方法を説明するためのタイミングチャートである。なお、以下の説明では、高速バスマスタ側をホスト側とし、低速スレーブデバイス側をＩ／Ｏ側とする。
【０００５】
図７に示すように、まず、低速スレーブデバイスは、ＤＭＡコントローラ（以下、ＤＭＡＣとする）に対してＤＭＡリクエスト１を発生する。ＤＭＡＣは、このＤＭＡリクエストを受け取ると、符号２で示すように、ホスト側でリードを行う。一方、バスブリッジは、符号３で示すように、Ｉ／Ｏ側でリードを行う。Ｉ／Ｏ側のリードが完了し、バスブリッジがＤＭＡＣにリードデータを返すと、低速スレーブデバイスは、新たなＤＭＡリクエスト４を発生する。
【０００６】
それによって、ＤＭＡＣは、符号５で示すように、再びホスト側でリードを行う。また、バスブリッジは、符号６で示すように、Ｉ／Ｏ側でリードを行い、ＤＭＡＣにリードデータを返す。以降、同様の動作を繰り返し、転送が進行する。そして、低速スレーブデバイスが最後のＤＭＡリクエスト７を発生すると、それまでと同様に、ＤＭＡＣおよびバスブリッジは、符号８および９で示すように、それぞれホスト側およびＩ／Ｏ側で最後のリードを行う。バスブリッジからＤＭＡＣに最後のリードデータが返されると、転送が終了する。
【０００７】
【特許文献１】特開平１０−４４２０号公報（図１およびその説明）
【特許文献２】特開平１１−１１０３４２号公報（図１およびその説明）
【特許文献３】特開２００１−１０９７０６号公報（図１およびその説明）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、低速な入出力装置を高速なバスラインに接続すると、その低速な入出力装置がアクセスされた際に、大量のウェイトサイクルが挿入されるため、システムの性能低下を招くという問題点がある。また、同じバスラインに高速な入出力装置と低速な入出力装置が混在して接続されていると、低速な入出力装置がアクセスされた際に挿入されるウェイトサイクルによって、高速な入出力装置の高速な動作が阻害されるという問題も発生する。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、高速なバスラインを備えたコンピュータシステムに従来の低速な入出力装置を接続したシステムにおいて、高速なホスト側バスを長時間占有することなく、低速なＩ／Ｏ側バスへリードアクセスを行うことができるバスブリッジ装置およびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
図１は、本発明に従って、高速なバスライン上の高速バスマスタから低速なバスライン上の低速スレーブデバイスへリードアクセスを行う際の原理を説明するためのタイミングチャートである。図１に示すように、まず、低速スレーブデバイスは、ＤＭＡＣに対してＤＭＡリクエスト１１を発生する。ＤＭＡＣは、このＤＭＡリクエストを受け取ると、符号１２で示すように、ホスト側でリードを行う。このとき、バスブリッジ装置は、ＤＭＡＣに対してダミーのリードデータを返す。これと同時に、バスブリッジ装置は、符号１３で示すように、Ｉ／Ｏ側でリードを開始する。
【００１１】
Ｉ／Ｏ側のリードが完了すると、低速スレーブデバイスは、新たなＤＭＡリクエスト１４を発生する。このＤＭＡリクエストに応じて、ＤＭＡＣは、符号１５で示すように、再びホスト側でリードを行う。このとき、バスブリッジ装置は、二点鎖線の矢印２２で示すように、１回前のＩ／Ｏ側のリード１３で得られたデータをＤＭＡＣへ返送する。これと同時に、バスブリッジ装置は、符号１６で示すように、Ｉ／Ｏ側で新たなリードアクセスを開始する。以降、同様の動作を繰り返し、転送が進行する。
【００１２】
そして、低速スレーブデバイスが最後のＤＭＡリクエスト１７を発生すると、それまでと同様に、ＤＭＡＣは、符号１８で示すように、ホスト側でリードを行う。また、バスブリッジ装置は、二点鎖線の矢印２３で示すように、１回前のＩ／Ｏ側のリードで得られたデータをＤＭＡＣへ返送する。同時に、バスブリッジ装置は、符号１９で示すように、Ｉ／Ｏ側で最後のリードを開始する。Ｉ／Ｏ側の最後のリードデータは、このＩ／Ｏ側の最後のリード１９が終るときに、バスブリッジ装置に届く。
【００１３】
このとき、ＤＭＡＣは、プログラムされた回数のＤＭＡ転送を既に終えているため、この最後のリードデータは、バスブリッジ装置内のバッファに格納される。そして、バスブリッジ装置内のバッファに有効なデータが保持されていることを示すバリッドフラグがアサートされる。Ｉ／Ｏ側の最後のリードが終了すると、低速スレーブデバイスは、ＣＰＵに割り込みリクエスト２０を発生する。ＣＰＵは、割り込みリクエスト２０を受けると、割り込みを処理する際に、符号２１で示すように、バリッドフラグがアサートされていることを確認した後、バスブリッジ装置内のバッファから最後のリードデータを読み出して転送する。
【００１４】
ＤＭＡＣの代わりに、ＣＰＵがホスト側の高速バスマスタとして転送を行う場合には、２回目以降のデータが有効であることは、バリッドフラグの値をポーリングすることにより、検出することができる。すなわち、Ｎ回の転送を行う場合、ＣＰＵは、合計でＮ＋１回のリードアクセスをホスト側バスで実行する。１回目にバスブリッジ装置から返されるデータは無効であるため、読み捨てる。
【００１５】
そして、２回目からＮ＋１回目の転送の際には、バリッドフラグがアサートされていることを確認してから、リードを行うことによって、有効なデータを読み出すことができる。バリッドフラグの値を確認するにあたっては、例えばバスブリッジ装置内のレジスタとして見えているバリッドフラグの値を読み出すことによって行う。
【００１６】
この発明によれば、高速なバスライン上の待ち状態が少なくなり、高速なバスラインを開放することが可能となる。また、ディスコネクトやリトライ等のバスプロトコルを持たないバス規格と共に使用することができるので、低速かつ旧式なバスを有する低速スレーブデバイスと高速なＣＰＵとのインターフェースとして適用可能である。特に、ＤＭＡ転送の場合には、Ｉ／Ｏ側から、転送すべきデータが揃ったことがＤＭＡリクエストとして通知される。従って、バリッドフラグのポーリングを最後の１回だけ行えばよいので、効率よくバスの占有時間を削減することが可能である。
【発明の効果】
【００１７】
本発明にかかるバスブリッジ装置およびデータ転送方法によれば、高速なホスト側バスを長時間占有することなく、低速なＩ／Ｏ側バスへリードアクセスを行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照して、この発明にかかるバスブリッジ装置およびデータ転送方法の好適な実施の形態を詳細に説明する。
【００１９】
図２は、実施の形態のバスブリッジ装置を適用したシステムの一例を示すブロック図である。図２に示すように、バスブリッジ装置３１の高速なホスト側バス３２に、高速バスマスタとしてＤＭＡＣ３４やＣＰＵ３５が接続される。また、バスブリッジ装置３１の低速なＩ／Ｏ側バス３３に、低速スレーブデバイス３６が接続される。低速スレーブデバイス３６は、ＤＭＡＣ３４に対してＤＭＡリクエスト（ＤＭＡ転送要求）３７を発生する。また、低速スレーブデバイス３６は、ＣＰＵ３５に対して割り込みリクエスト（割り込み要求）３８を発生する。
【００２０】
図３は、バスブリッジ装置３１の一例を示すブロック図である。図３において、ホスト側（同図左側）にＤＭＡＣ３４やＣＰＵ３５が接続され、Ｉ／Ｏ側（同図右側）に低速スレーブデバイス３６が接続される。図３に示すように、バスブリッジ装置３１は、コントロールロジック部４１、アドレスバッファ部４２、ライトデータバッファ部４３およびリードデータバッファ部４４を備えている。
【００２１】
コントロールロジック部４１は、バスブリッジ装置３１の動作を制御する論理回路であり、バリッドフラグ４５を内蔵している。バリッドフラグ４５は、リードデータバッファ部４４に有効なデータが保持されていることを示す値を格納するレジスタである。バリッドフラグ４５の値は、後述するＲＳ＿ＩＮ信号を伴うホスト側のリードにより、バッファ４６を介してホスト側データバス（Ｄａｔａ＿Ａ）へ出力され、ＣＰＵに読み出される。その際、バッファ４６は、コントロールロジック部４１から内部信号として出力される制御信号に基づいて制御される。
【００２２】
アドレスバッファ部４２は、ホスト側からＩ／Ｏ側をアクセスする際のアドレスを、Ｉ／Ｏ側でバスサイクルが続いている間、保持するためのバッファレジスタである。ライトデータバッファ部４３は、ホスト側から低速スレーブデバイス３６へ書き込まれるデータを、Ｉ／Ｏ側でバスサイクルが続いている間、保持するバッファレジスタである。リードデータバッファ部４４は、Ｉ／Ｏ側から読み出されたデータを一時的に保持するバッファレジスタである。
【００２３】
コントロールロジック部４１には、ホスト側からＲＤ＿ＩＮ信号およびＷＲ＿ＩＮ信号が入力される。ＲＤ＿ＩＮ信号は、ホスト側のバスサイクルがデータの読み出しであることを示す信号である。ＷＲ＿ＩＮ信号は、ホスト側のバスサイクルがデータの書き込みであることを示す信号である。また、コントロールロジック部４１には、アドレスデコーダ５１で生成されたＣＳ＿ＩＮ信号およびＲＳ＿ＩＮ信号が入力する。ＣＳ＿ＩＮ信号は、ホスト側のバスサイクルによりＩ／Ｏ側がアクセスされることを示す信号である。
【００２４】
ＲＳ＿ＩＮ信号は、ホスト側からリードデータバッファ部４４をアクセスする際に用いられる選択信号である。特に限定しないが、この実施の形態では、アドレスデコーダ５１は、ホスト側に設けられており、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）からホスト側のアドレスが入力される。コントロールロジック部４１は、ホスト側にＲＤＹ＿ＯＵＴ信号を出力する。ＲＤＹ＿ＯＵＴ信号は、ホスト側バスサイクルの完了をホスト側の高速バスマスタに対して通知する信号である。
【００２５】
また、コントロールロジック部４１は、Ｉ／Ｏ側にＲＤ＿ＯＵＴ信号、ＷＲ＿ＯＵＴ信号およびＣＳ＿ＯＵＴ信号を出力する。ＲＤ＿ＯＵＴ信号は、バスブリッジ装置３１によりＩ／Ｏ側で実行されているバスサイクルがデータの読み出しであることを示す信号である。ＷＲ＿ＯＵＴ信号は、バスブリッジ装置３１によりＩ／Ｏ側で実行されているバスサイクルがデータの書き込みであることを示す信号である。
【００２６】
ＣＳ＿ＯＵＴ信号は、バスブリッジ装置３１がＩ／Ｏ側でバスサイクルを実行中であることを示す信号である。また、コントロールロジック部４１には、Ｉ／Ｏ側からＲＤＹ＿ＩＮ信号が入力される。ＲＤＹ＿ＩＮ信号は、Ｉ／Ｏ側のバスサイクルの完了をバスブリッジ装置３１に通知する信号であり、低速スレーブデバイス３６から出力される。
【００２７】
また、コントロールロジック部４１は、バスブリッジ装置３１の内部信号として、ＲＤＬＥ信号、ＷＤＯＥ信号、ＷＤＬＥ信号、ＲＤＯＥ信号およびＡＬＥ信号を出力する。ＲＤＬＥ信号は、リードデータバッファ部４４にＩ／Ｏ側データバス（Ｄａｔａ＿Ｂ）からデータを取り込むことを指示する信号である。ＷＤＯＥ信号は、ライトデータバッファ部４３内のデータをバッファ４７を介してＩ／Ｏ側データバス（Ｄａｔａ＿Ｂ）へ出力することを指示する信号である。ＷＤＬＥ信号は、ライトデータバッファ部４３にホスト側データバス（Ｄａｔａ＿Ａ）からデータを取り込むことを指示する信号である。
【００２８】
ＲＤＯＥ信号は、リードデータバッファ部４４内のデータをバッファ４８を介してホスト側データバス（Ｄａｔａ＿Ａ）へ出力することを指示する信号である。ＡＬＥ信号は、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）からホスト側のアドレスをアドレスバッファ部４２へ取り込むことを指示する信号である。アドレスバッファ部４２の内容は、Ｉ／Ｏ側アドレスバス（Ａｄｄｒｅｓｓ＿Ｏｕｔ）へ出力される。
【００２９】
上述した構成のバスブリッジ装置３１は、ホスト側からの入力信号の組み合わせに対して、次のような動作を行う。ＣＳ＿ＩＮ信号とＲＳ＿ＩＮ信号がともに相対的に低い電位レベル（以下、“Ｌ”と表記する）である場合、またはＲＤ＿ＩＮ信号とＷＲ＿ＩＮ信号がともに“Ｌ”である場合、バスブリッジ装置３１の動作は、ノーオペレーションとなる。また、ＣＳ＿ＩＮ信号とＲＳ＿ＩＮ信号がともに相対的に高い電位レベル（以下、“Ｈ”と表記する）である場合、またはＲＤ＿ＩＮ信号とＷＲ＿ＩＮ信号がともに“Ｈ”である場合、バスブリッジ装置３１の動作は、入力禁止となる。
【００３０】
ＣＳ＿ＩＮ信号、ＲＳ＿ＩＮ信号、ＲＤ＿ＩＮ信号およびＷＲ＿ＩＮ信号がそれぞれ“Ｌ”、“Ｈ”、“Ｈ”および“Ｌ”である場合、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）上のアドレスの最下位ビットの値に応じて、バスブリッジ装置３１内のレジスタへのリードアクセスが行われる。そのアドレスの最下位ビットの値が“０”であれば、読み出しの対象はバリッドフラグ４５の値であり、“１”であれば、読み出しの対象はリードデータバッファ部４４内のデータである。ＣＳ＿ＩＮ信号、ＲＳ＿ＩＮ信号、ＲＤ＿ＩＮ信号およびＷＲ＿ＩＮ信号がそれぞれ“Ｌ”、“Ｈ”、“Ｌ”および“Ｈ”である場合、バスブリッジ装置３１内のレジスタへのライトアクセスが行われるが、図示例ではバスブリッジ装置３１内に書き込み可能なレジスタがないので、バスブリッジ装置３１の動作は、ノーオペレーションとなる。
【００３１】
ＣＳ＿ＩＮ信号、ＲＳ＿ＩＮ信号、ＲＤ＿ＩＮ信号およびＷＲ＿ＩＮ信号がそれぞれ“Ｈ”、“Ｌ”、“Ｈ”および“Ｌ”である場合、バスブリッジ装置３１は、Ｉ／Ｏ側へのリードアクセスを開始する。そして、バスブリッジ装置３１は、Ｉ／Ｏ側のアクセス完了を待たずに、リードデータバッファ部４４内のデータを返してホスト側の動作を完了させる。ＣＳ＿ＩＮ信号、ＲＳ＿ＩＮ信号、ＲＤ＿ＩＮ信号およびＷＲ＿ＩＮ信号がそれぞれ“Ｈ”、“Ｌ”、“Ｌ”および“Ｈ”である場合、バスブリッジ装置３１は、Ｉ／Ｏ側へのライトアクセスを開始する。そして、バスブリッジ装置３１は、ライトデータバッファ部４３にデータを取り込んだ後、Ｉ／Ｏ側の動作完了を待たずに、ホスト側の動作を完了させる。
【００３２】
図４は、ホスト側からのリードアクセスに応じてＩ／Ｏ側でリードアクセスを行う際の動作を説明するためのタイミングチャートである。図４に示すように、まず、初回のＤＭＡリクエストが発生し、それによってホスト側バスで転送の制御を行うＣＰＵまたはＤＭＡＣ（以下、これらを総称してホスト側バスマスタとする）が、ＣＳ＿ＩＮ信号をアサートする（図示例では、“Ｈ”にする）と同時に、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）にアドレスを出力して、アクセスを開始する。アクセス開始から少し遅れて、ホスト側バスマスタは、ホスト側バスで行われるアクセスがデータの読み出しであることを示すために、ＲＤ＿ＩＮ信号をアサートする。
【００３３】
バスブリッジ装置３１は、ＲＤ＿ＩＮ信号のアサートを受けて、ホスト側データバス（Ｄａｔａ＿Ａ）にリードデータバッファ部４４の内容を出力すると同時に、ＲＤＹ＿ＯＵＴ信号をアサートして、ホスト側バスサイクルの完了をホスト側バスマスタに通知する。このとき、バリッドフラグ４５がネゲートされており、リードデータバッファ部４４には有効なデータが存在していないので、ホスト側データバス（Ｄａｔａ＿Ａ）には無効なデータ、すなわちダミーのデータが出力される。続いて、ホスト側バスマスタがＲＤ＿ＩＮ信号をネゲートする（図示例では、“Ｌ”にする）。その後、バスブリッジ装置３１は、ＲＤＹ＿ＯＵＴ信号をネゲートし、ホスト側バスマスタは、ＣＳ＿ＩＮ信号をネゲートする。
【００３４】
一方、バスブリッジ装置３１は、ＲＤ＿ＩＮ信号のアサートによりホスト側バスでリードアクセスが開始されたことを検出すると、Ｉ／Ｏ側へアクセスを中継し、ＣＳ＿ＯＵＴ信号をアサートする。同時に、バスブリッジ装置３１は、Ｉ／Ｏ側アドレスバス（Ａｄｄｒｅｓｓ＿Ｏｕｔ）にアドレスバッファ部４２の内容を出力する。また、バスブリッジ装置３１は、ＣＳ＿ＯＵＴ信号のアサートを受けて、ＲＤ＿ＯＵＴ信号をアサートする。
【００３５】
この状態で、バスブリッジ装置３１は、ＲＤＹ＿ＩＮ信号のアサートを検出したら、リードデータバッファ部４４にＩ／Ｏ側データバス（Ｄａｔａ＿Ｂ）上のデータを取り込む。そして、バスブリッジ装置３１は、ＲＤ＿ＯＵＴ信号、ＣＳ＿ＯＵＴ信号およびＲＤＹ＿ＩＮ信号をネゲートして、Ｉ／Ｏ側のリードバスサイクルを完了する。このとき、リードデータバッファ部４４に有効なデータが存在する状態になるので、バリッドフラグ４５がアサートされる。ここまでを期間Ａとする。
【００３６】
２回目のＤＭＡリクエストが発生すると、ホスト側バスマスタは、再びＣＳ＿ＩＮ信号をアサートすると同時に、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）にアドレスを出力して、アクセスを開始する。これ以降、ホスト側データバス（Ｄａｔａ＿Ａ）にリードデータバッファ部４４の内容を出力して、ホスト側バスサイクルを完了するまでは、上述した期間Ａの説明と同じである。ただし、今回のアクセスでは、バリッドフラグ４５がアサートされており、リードデータバッファ部４４に有効なデータが存在することが示されている。そのため、バスブリッジ装置３１は、ホスト側データバス（Ｄａｔａ＿Ａ）にリードデータバッファ部４４内のデータを出力し、アクセス完了後にバリッドフラグ４５をネゲートする。
【００３７】
その後、上述したように、Ｉ／Ｏ側のリードバスサイクルにおいて、リードデータバッファ部４４にＩ／Ｏ側データバス（Ｄａｔａ＿Ｂ）上のデータが取り込まれるので、再びバリッドフラグ４５がアサートされる。期間Ａの後、ここまでを期間Ｂとする。これ以降、ＤＭＡリクエストの発生により、再びＣＳ＿ＩＮ信号がアサートされると、期間Ｂの動作が繰り返される。Ｉ／Ｏ側に対するアクセスが連続して行われている状態では、常に、１回遅れでデータがホスト側へ送られることになる。そのため、ホスト側バスマスタが、プログラムされた回数のＤＭＡ転送を終了した時点では、Ｉ／Ｏ側から読み出されたデータがリードデータバッファ部４４内に残ったままとなる。この残ったデータは、図５に示す動作によりホスト側へ引き揚げられる。
【００３８】
図５は、ＤＭＡ転送の終了後にリードデータバッファ部４４内に残ったデータをホスト側へ引き揚げる際の動作を説明するためのタイミングチャートであり、図４に示すタイミングチャートの後に続くものである。図５に示すように、ホスト側バスマスタが、ＣＳ＿ＩＮ信号をアサートし、アドレスを出力して、アクセスを開始する。これ以降、Ｉ／Ｏ側の最後のリードバスサイクルによりリードデータバッファ部４４に有効なデータが格納され、バリッドフラグ４５がアサートされるまで（同図の期間Ｃ）は、図４の期間Ｂの動作と同じである。
【００３９】
Ｉ／Ｏ側の最後のリードバスサイクルが完了すると、割り込みリクエストが発生する。それによって、ホスト側バスマスタは、リードデータバッファ部４４内に有効なデータが存在することを確認するため、ＲＳ＿ＩＮ信号をアサートすると同時に、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）にアドレスを出力して、バリッドフラグ４５に対するリードアクセスを開始する。アクセス開始から少し遅れて、ホスト側バスマスタは、ホスト側バスで行われるアクセスがデータの読み出しであることを示すために、ＲＤ＿ＩＮ信号をアサートする。
【００４０】
バスブリッジ装置３１は、ＲＤ＿ＩＮ信号のアサート受けて、ホスト側データバス（Ｄａｔａ＿Ａ）にバリッドフラグ４５の値を出力すると同時に、ＲＤＹ＿ＯＵＴ信号をアサートして、ホスト側バスサイクルの完了をホスト側バスマスタに通知する。ホスト側バスマスタがＲＤ＿ＩＮ信号をネゲートした後、バスブリッジ装置３１は、ＲＤＹ＿ＯＵＴ信号をネゲートする。また、ＲＤ＿ＩＮ信号のネゲート後、ホスト側バスマスタは、ＲＳ＿ＩＮ信号をネゲートする。Ｉ／Ｏ側へのアクセスの場合とは異なり、バスブリッジ装置３１内のレジスタへのアクセスの際には、Ｉ／Ｏ側でのアクセスは発生しない。期間Ｃの後、ここまでを期間Ｄとする。
【００４１】
ここで、バリッドフラグ４５がネゲートされている場合には、リードデータバッファ部４４に有効なデータがまだ入っていないため、再びバリッドフラグ４５の値のチェックを行う。そして、バリッドフラグ４５の値がアサートされた状態になるまで、期間Ｄの動作を繰り返す。バリッドフラグ４５がアサートされており、リードデータバッファ部４４内に有効なデータが存在する場合には、ホスト側バスマスタは、ＲＳ＿ＩＮ信号をアサートすると同時に、ホスト側アドレスバス（Ａｄｄｒｅｓｓ＿Ｉｎ）にアドレスを出力し、リードデータバッファ部４４に対するリードアクセスを開始する。
【００４２】
リードデータバッファ部４４へのアクセス開始から少し遅れて、ホスト側バスマスタは、ホスト側バスで行われるアクセスがデータの読み出しであることを示すために、ＲＤ＿ＩＮ信号をアサートする。バスブリッジ装置３１は、ＲＤ＿ＩＮ信号のアサートを受けて、ホスト側データバス（Ｄａｔａ＿Ａ）にリードデータバッファ部４４内のデータを出力すると同時に、ＲＤＹ＿ＯＵＴ信号をアサートして、ホスト側バスサイクルの完了をホスト側バスマスタに通知する。
【００４３】
ホスト側バスマスタがＲＤ＿ＩＮ信号をネゲートした後、バスブリッジ装置３１は、ＲＤＹ＿ＯＵＴ信号をネゲートする。また、ＲＤ＿ＩＮ信号のネゲート後、ホスト側バスマスタは、ＲＳ＿ＩＮ信号をネゲートする。期間Ｄの後の期間Ｅにおけるアクセスもバスブリッジ装置３１内のレジスタへのアクセスであるから、Ｉ／Ｏ側へのアクセスは発生しない。最後に、リードデータバッファ部４４内に存在した有効なデータをホスト側データバス（Ｄａｔａ＿Ａ）へ出力したので、バスブリッジ装置３１は、アクセス完了後にバリッドフラグ４５をネゲートする。
【００４４】
なお、ホスト側からバスブリッジ装置３１内のバリッドフラグ４５のレジスタをリードし、その値によりバリッドフラグ４５の値を確認する代わりに、バリッドフラグ４５の値を信号線としてバスブリッジ装置３１の外へ引き出すことによって、バリッドフラグ４５の値を確認する構成としてもよい。この場合には、制御用のＣＰＵとして、汎用Ｉ／Ｏポートを内蔵しているものを使用し、そのような汎用Ｉ／Ｏポートに、バスブリッジ装置３１がバリッドフラグ４５の値を出力している信号線を接続すればよい。そうすれば、その信号線が接続されている汎用Ｉ／Ｏポートを読み出すことにより、バリッドフラグ４５の値を確認することができる。また、図６に示すように、バスブリッジ装置３１の内部にアドレスデコーダ５１を内蔵する構成としてもよい。
【００４５】
以上説明したように、実施の形態によれば、高速なホスト側バス３２の待ち状態が少なくなり、ホスト側バス３２を速く開放することができる。従って、高速なホスト側バス３２を長時間占有することなく、低速なＩ／Ｏ側バス３３へリードアクセスを行うことができるという効果を奏する。また、バスブリッジ装置３１は、ディスコネクトやリトライ等のバスプロトコルを持たないバス規格と共に使用することができるので、低速かつ旧式なバスを有する低速スレーブデバイス３６と高速なＣＰＵ３５とのインターフェースとして適用可能である。
【００４６】
特に、ＤＭＡ転送の場合には、Ｉ／Ｏ側から、転送すべきデータが揃ったことがＤＭＡリクエストとして通知されるため、バリッドフラグのポーリングを最後の１回だけ行えばよいので、効率よくバスの占有時間を削減することができる。以上において、本発明は、上述した実施の形態に限らず、種々変更可能である。
【産業上の利用可能性】
【００４７】
以上のように、本発明は、高速なバスラインと低速なバスラインとの間に接続されるバスブリッジ装置に適している。
【図面の簡単な説明】
【００４８】
【図１】本発明によるリードアクセス方法の原理を説明するためのタイミングチャートである。
【図２】実施の形態のバスブリッジ装置を適用したシステムの一例を示すブロック図である。
【図３】実施の形態のバスブリッジ装置の一例を示すブロック図である。
【図４】実施の形態のリードアクセス方法を説明するためのタイミングチャートである。
【図５】実施の形態のリードアクセス方法を説明するためのタイミングチャートである。
【図６】実施の形態のバスブリッジ装置の他の例を示すブロック図である。
【図７】従来のリードアクセス方法を説明するためのタイミングチャートである。
【符号の説明】
【００４９】
２０  割り込みリクエスト（イベント）
３１  バスブリッジ装置
３２  ホスト側バス（高速なバスライン）
３３  Ｉ／Ｏ側バス（低速なバスライン）
３４  ＤＭＡＣ（高速な装置）
３５  ＣＰＵ（高速な装置）
３６  低速スレーブデバイス（低速な装置）
４１  コントロールロジック部
４４  リードデータバッファ部
４５  バリッドフラグ
【図１】
2006113689.tif 000003
【図２】
2006113689.tif 000004
【図３】
2006113689.tif 000005
【図４】
2006113689.tif 000006
【図５】
2006113689.tif 000007
【図６】
2006113689.tif 000008
【図７】
2006113689.tif 000009