(57)【特許請求の範囲】
【請求項１】
所定のデータを出力する第１の手段、第１のダイレクトメモリアクセス制御手段、及び第１のＣＰＵが接続される第１のバスと、
前記所定のデータを受信する第２の手段、第２のダイレクトメモリアクセス制御手段、及び第２のＣＰＵが接続される第２のバスと、
バッファメモリを有しており、前記第１のバスと前記第２のバスとの間に接続されるバス中継手段と、を備えた装置において実行される方法であって、
前記第１のダイレクトメモリアクセス制御手段が、前記バス中継手段及び前記第１の手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送する段階と、
前記第２のダイレクトメモリアクセス制御手段が、前記バス中継手段及び前記第２の手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送する段階と、を含む、
データ転送方法。
【請求項２】
前記装置が、
前記第１の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第１のアクセスチャネルのデータサイズと、前記バス中継手段の前記バッファメモリから前記第２の手段へのダイレクトメモリアクセス転送に用いる第２のアクセスチャネルのデータサイズと、を同じになるように設定する段階を、前記バス中継手段から前記第１のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の前に実行する、
請求項１記載のデータ転送方法。
【請求項３】
前記第１の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第１のアクセスチャネル、及び前記バス中継手段の前記バッファメモリから前記第２の手段へのダイレクトメモリアクセス転送に用いる第２のアクセスチャネルがそれぞれ複数用意され、各第１のアクセスチャネル及び各第２のアクセスチャネルにはそれぞれ優先順位が付けられており、
前記バス中継手段が、
前記優先順位に応じて１の第１のアクセスチャネルを選択して、前記前記第１のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第１のアクセスチャネルを指定し、
前記優先順位に応じて１の第２のアクセスチャネルを選択して、前記前記第２のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第２のアクセスチャネルを指定する、
請求項２記載のデータ転送方法。
【請求項４】
前記第１のダイレクトメモリアクセス制御手段が、前記所定のデータを前記バッファメモリの記憶容量に応じたサイズに分割してダイレクトメモリアクセス転送する、
請求項１記載のデータ転送方法。
【請求項５】
バッファメモリを有しており、第１のバスと第２のバスとの間に接続されるバス中継手段と、
前記第１のバスに接続されており、所定のデータを出力する第１の手段と、
前記第１のバスに接続されており、前記第１の手段から前記第１のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第１のダイレクトメモリアクセス制御手段と、
前記第１のバスに接続されており、前記第１のダイレクトメモリアクセス制御手段に対して前記第１のバス上のダイレクトメモリアクセスの設定を行う第１のＣＰＵと、
前記第２のバスに接続されており、前記所定のデータを受信する第２の手段と、
前記第２のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第２のバスを介して前記第２の手段に転送する第２のダイレクトメモリアクセス制御手段と、
前記第２のバスに接続されており、前記第２のダイレクトメモリアクセス制御手段に対して前記第２のバス上のダイレクトメモリアクセスの設定を行う第２のＣＰＵと、を備えており、
前記第１のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記第２のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記バス中継手段の前記バッファメモリを介して、前記第１の手段から前記第２の手段へ前記所定のデータを転送するようにしたことを特徴とする、
データ転送装置。
【請求項６】
バッファメモリを有しており、第１のバスと第２のバスとの間に接続されるバス中継手段と、
前記第１のバスに接続されており、所定のデータを出力する第１の手段と、
前記第１のバスに接続されており、前記第１の手段から前記第１のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第１のダイレクトメモリアクセス制御手段と、
前記第１のバスに接続されており、前記第１のダイレクトメモリアクセス制御手段に対して前記第１のバス上のダイレクトメモリアクセスの設定を行う第１のＣＰＵと、
前記第２のバスに接続されており、前記所定のデータを受信する第２の手段と、
前記第２のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第２のバスを介して前記第２の手段に転送する第２のダイレクトメモリアクセス制御手段と、
前記第２のバスに接続されており、前記第２のダイレクトメモリアクセス制御手段に対して前記第２のバス上のダイレクトメモリアクセスの設定を行う第２のＣＰＵと、を備えており、
前記第１のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第１の手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記第２のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第２の手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記バス中継手段の前記バッファメモリを介して、前記第１の手段から前記第２の手段へ前記所定のデータを転送するようにしたことを特徴とする、
データ転送装置。
【請求項７】
前記バス中継手段は、
前記バッファメモリのアクセス動作を制御するとともに、前記第１のダイレクトメモリアクセス制御手段及び前記第２のダイレクトメモリアクセス制御手段に対してダイレクトメモリアクセス要求を行うバッファ制御手段をさらに備えている、
請求項５または６記載のデータ転送装置。
【請求項８】
前記第１のバス及び前記第２のバスは、それぞれ複数のアクセスチャネルを有しており、
前記バッファ制御手段は、
前記第１のダイレクトメモリアクセス制御手段及び前記第２のダイレクトメモリアクセス制御手段に対して、複数のアクセスチャネルの各々に対応する複数種類のダイレクトメモリアクセス要求のうちの一つを選択して送ることにより、どのアクセスチャネルを用いたダイレクトメモリアクセス転送を行うかを指定するように構成されている、
請求項７記載のデータ転送装置。
【請求項９】
前記第１のバスは複数の第１のアクセスチャネルを有しており、前記第２のバスは複数の第２のアクセスチャネルを有し、各第１のアクセスチャネル及び各第２のアクセスチャネルにはそれぞれ優先順位が付けられており、
前記バッファ制御手段は、
前記優先順位に応じて１の第１のアクセスチャネルを選択して、前記前記第１のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第１のアクセスチャネルを指定するとともに、前記優先順位に応じて１の第２のアクセスチャネルを選択して、前記前記第２のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第２のアクセスチャネルを指定するように構成されている、
請求項７記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２つの異なるバスにそれぞれ接続されたデバイスやメモリの間でデータを転送するためのデータ転送方法及び装置に関する。
【０００２】
【従来の技術】
従来において、メインバスとサブバスのような異なるバスをゲートウェイ等のバス中継器を介して接続し、メインバスに設けられたＤＭＡ（ダイレクトメモリアクセス）コントローラによりこれらのバス間でデータのＤＭＡ転送を行うものが知られている。
【０００３】
例えば、図６に示すような構成において、メインバス１０１とサブバス１０２とはそれぞれバスゲートウェイ等のバス中継器１０３に接続されている。メインバス１０１には、ＣＰＵや各種インターフェース等のデバイス１０４、ＤＭＡコントローラ（ＤＭＡＣ）１０５が接続され、サブバス１０２には、デバイス１０６、ＲＯＭ等のメモリ１０７が接続される。
【０００４】
この図６の例では、メインバス１０１上のＤＭＡコントローラ１０５がバス中継器１０３を介してサブバス１０２も制御することにより、例えばデバイス１０４とデバイス１０６との間のＤＭＡ転送を実現している。このように、異なるバス１０１、１０２間であっても、それぞれのバスのアクセス時間が同じ程度であれば、無駄な待ち時間がなく、効率の良いデータ転送を行うことができる。
【０００５】
【発明が解決しようとする課題】
ところで、１つのシステム内で異なるバスが共存する場合には、バス幅やデータアクセス速度が異なることが多く、例えば図６の例では、メインバス１０１が３２ビット幅で高速、サブバス１０２が１６ビット幅で低速となっている。
【０００６】
このように、バス幅やデータアクセス速度が異なるバス間でＤＭＡ転送を行わせる場合には、高速のバス、例えば図６のメインバス１０１上で無駄な待ち時間を生じさせてしまうという欠点がある。
【０００７】
本発明は、このような実情に鑑みてなされたものであり、異なる２つのバス間でのデータ転送が、無駄な待ち時間なく、効率よく行えるようなデータ転送方法及び装置の提供を目的とする。
【０００８】
【課題を解決するための手段】
以上のような課題を解決する本発明のデータ転送方法は、所定のデータを出力する第１の手段、第１のダイレクトメモリアクセス制御手段、及び第１のＣＰＵが接続される第１のバスと、前記所定のデータを受信する第２の手段、第２のダイレクトメモリアクセス制御手段、及び第２のＣＰＵが接続される第２のバスと、バッファメモリを有しており、前記第１のバスと前記第２のバスとの間に接続されるバス中継手段と、を備えた装置において実行される方法である。
すなわち、本発明のデータ転送方法は、前記第１のダイレクトメモリアクセス制御手段が、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記第１のバスを介して前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送する段階と、前記第２のダイレクトメモリアクセス制御手段が、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２のバスを介して前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送する段階と、を含む。
本発明の他のデータ転送方法として、前記第１のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第１の手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送する。また、前記第２のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第２の手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送する。
【０００９】
バス中継手段から第１及び第２のダイレクトメモリアクセス制御手段にダイレクトメモリアクセス要求を行う前に、前記第１の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第１のアクセスチャネルのデータサイズと、前記バス中継手段の前記バッファメモリから前記第２の手段へのダイレクトメモリアクセス転送に用いる第２のアクセスチャネルのデータサイズと、を同じになるように設定するようにしてもよい。これにより、第１のバスと第２のバスとでバス幅が異なる場合でも、転送速度を同じにして、バス幅が大きいバスに無駄な待ち時間が発生することを防ぐことができる。
前記第１の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第１のアクセスチャネル、及び前記バス中継手段の前記バッファメモリから前記第２の手段へのダイレクトメモリアクセス転送に用いる第２のアクセスチャネルがそれぞれ複数用意され、各第１のアクセスチャネル及び各第２のアクセスチャネルのそれぞれに優先順位が付けられている場合には、前記バス中継手段が、前記優先順位に応じて１の第１のアクセスチャネルを選択して、前記前記第１のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第１のアクセスチャネルを指定し、前記優先順位に応じて１の第２のアクセスチャネルを選択して、前記前記第２のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第２のアクセスチャネルを指定するようにしてもよい。
また、前記第１のダイレクトメモリアクセス制御手段が、前記所定のデータを前記バッファメモリの記憶容量に応じたサイズに分割してダイレクトメモリアクセス転送するようにしてもよい。これにより、画像処理の際に用いるような大容量のデータを転送する場合でも、バッファメモリとして大容量のものを用意する必要がなくなる。
【００１０】
本発明のデータ転送装置は、バッファメモリを有しており、第１のバスと第２のバスとの間に接続されるバス中継手段と、前記第１のバスに接続されており、所定のデータを出力する第１の手段と、前記第１のバスに接続されており、前記第１の手段から前記第１のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第１のダイレクトメモリアクセス制御手段と、前記第１のバスに接続されており、前記第１のダイレクトメモリアクセス制御手段に対して前記第１のバス上のダイレクトメモリアクセスの設定を行う第１のＣＰＵと、前記第２のバスに接続されており、前記所定のデータを受信する第２の手段と、前記第２のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第２のバスを介して前記第２の手段に転送する第２のダイレクトメモリアクセス制御手段と、前記第２のバスに接続されており、前記第２のダイレクトメモリアクセス制御手段に対して前記第２のバス上のダイレクトメモリアクセスの設定を行う第２のＣＰＵと、を備えており、前記第１のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記第２のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記バス中継手段の前記バッファメモリを介して、前記第１の手段から前記第２の手段へ前記所定のデータを転送するようにしたことを特徴とする。
【００１１】
本発明の他のデータ転送装置は、バッファメモリを有しており、第１のバスと第２のバスとの間に接続されるバス中継手段と、前記第１のバスに接続されており、所定のデータを出力する第１の手段と、前記第１のバスに接続されており、前記第１の手段から前記第１のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第１のダイレクトメモリアクセス制御手段と、前記第１のバスに接続されており、前記第１のダイレクトメモリアクセス制御手段に対して前記第１のバス上のダイレクトメモリアクセスの設定を行う第１のＣＰＵと、前記第２のバスに接続されており、前記所定のデータを受信する第２の手段と、前記第２のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第２のバスを介して前記第２の手段に転送する第２のダイレクトメモリアクセス制御手段と、前記第２のバスに接続されており、前記第２のダイレクトメモリアクセス制御手段に対して前記第２のバス上のダイレクトメモリアクセスの設定を行う第２のＣＰＵと、を備えており、前記第１のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第１の手段からダイレクトメモリアクセス要求があると、前記第１のＣＰＵに前記第１のバスの使用権の要求を行って前記第１のバスの使用権を確保して、前記第１の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記第２のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第２の手段からダイレクトメモリアクセス要求があると、前記第２のＣＰＵに前記第２のバスの使用権の要求を行って前記第２のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第２の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記バス中継手段の前記バッファメモリを介して、前記第１の手段から前記第２の手段へ前記所定のデータを転送するようにしたことを特徴とする。
前記バス中継手段は、前記バッファメモリのアクセス動作を制御するとともに、前記第１のダイレクトメモリアクセス制御手段及び前記第２のダイレクトメモリアクセス制御手段に対してダイレクトメモリアクセス要求を行うバッファ制御手段をさらに備えるようにしてもよい。
また、前記第１のバス及び前記第２のバスが、それぞれ複数のアクセスチャネルを有する場合に、前記バッファ制御手段を、前記第１のダイレクトメモリアクセス制御手段及び前記第２のダイレクトメモリアクセス制御手段に対して、複数のアクセスチャネルの各々に対応する複数種類のダイレクトメモリアクセス要求のうちの一つを選択して送ることにより、どのアクセスチャネルを用いたダイレクトメモリアクセス転送を行うかを指定ように構成してもよい。
前記第１のバスは複数の第１のアクセスチャネルを有しており、前記第２のバスは複数の第２のアクセスチャネルを有し、各第１のアクセスチャネル及び各第２のアクセスチャネルにはそれぞれ優先順位が付けられている場合には、前記バッファ制御手段を、前記優先順位に応じて１の第１のアクセスチャネルを選択して、前記前記第１のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第１のアクセスチャネルを指定するとともに、前記優先順位に応じて１の第２のアクセスチャネルを選択して、前記前記第２のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第２のアクセスチャネルを指定するように構成してもよい。
【００１２】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら説明する。
図１は、本発明に係る実施の形態となるデータ転送方法が適用されるシステム構成をを示すブロック図である。
【００１３】
この図１において、第１のバス１１及び第２のバス１２は、ＦＩＦＯ等のバッファメモリを用いて成るバス中継器１３にそれぞれ接続され、このバス中継器１３を介してバス１１、１２間で互いにデータの転送を行うことができる。第１のバス１１には、ＣＰＵ２１、ＤＭＡ（ダイレクトメモリアクセス）コントローラ（ＤＭＡＣ）２２、デバイス２３、メモリ２４等が接続されており、第２のバス１２には、ＣＰＵ２６、ＤＭＡコントローラ２７、デバイス２８、メモリ２９等が接続されている。
【００１４】
デバイス２３はＤＭＡコントローラ２２に対して、デバイス２８はＤＭＡコントローラ２７に対して、それぞれＤＭＡ要求を出すことができる。これらのデバイス２３，２８としては、例えば、画像や音声のエンコーダ、デコーダ、グラフィック処理のためのグラフィックエンジン、画像処理や音声処理ＩＣ等、あるいは、それぞれのインターフェースを介してのハードディスク装置、光磁気ディスク装置、フロッピィディスク装置、ＣＤ−ＲＯＭ装置等の周辺機器を挙げることができる。バス中継器１３は、ＤＭＡコントローラ２２、２７に対してそれぞれＤＭＡ要求を出すことができる。これらのＤＭＡ要求は、複数のＤＭＡチャネルの内のどのＤＭＡチャネルかを指定することができる。
【００１５】
このような図１のシステムに用いられるバス中継器１３の構成の一例を図２に示す。この図２において、上記図１の第１のバス１１はデータバス１１ａとアドレス・制御バス１１ｂとに分けて、上記第２のバス１２はデータバス１２ｂとアドレス・制御バス１２ｂとに分けて示されている。バス中継器１３内には、第１のバス１１のデータバス１１ａに接続される内部バス３１と、第２のバス１２のデータバス１２ａに接続される内部バス３２とが設けられ、これらの内部バス３１，３２には、ＦＩＦＯ（First In First Out：先入れ先出し）メモリ３３と、バッファ制御ユニット３４とがそれぞれ接続されている。バッファ制御ユニット３４は、第１のバス１１のアドレス・制御バス１１ｂ、及び第２のバス１２のアドレス・制御バス１２ｂとも接続されている。また、バッファ制御ユニット３４には、上記図１のＤＭＡコントローラ２２，２７との間でＤＭＡ要求（DREQ）やチャネル指定等を行うための制御信号ラインが接続されている。
【００１６】
この図２に示すバス中継器１３において、ＦＩＦＯメモリ３３は、バッファの役割を果たすメモリであり、バッファ制御ユニット３４によって、アクセスされるバス１１，１２、すなわちこれらに接続された内部バス３１，３２に対してデータの入出力を制御される。バッファ制御ユニット３４は、ＦＩＦＯメモリ３３のバスアクセス動作を制御すると共に、各バス１１，１２のＤＭＡコントローラ２２，２７に対してＤＭＡ要求（DREQ）を出し、その応答（ＤＭＡアクノリッジ：DACK）を受け取る。このＤＭＡ要求は、複数のＤＭＡチャネルの１つを指定して出すことができる。ＤＭＡコントローラ２２，２７からのＤＭＡチャネル選択情報もこのバッファ制御ユニット３４に送られる。
【００１７】
ところで、第１のバス１１と第２のバス１２との間で、バス中継器１３を介してＤＭＡ転送を行う場合には、ＤＭＡコントローラ２２及び２７のＤＭＡの設定（例えばデータサイズ等）が矛盾なく対応している必要がある。ＣＰＵ２１はＤＭＡコントローラ２２に対して、またＣＰＵ２６はＤＭＡコントローラ２７に対して、それぞれのバス上のＤＭＡの設定を行う。
【００１８】
例えば、第１のバス１１のメモリ２４から第２のバス１２のメモリ２８にＤＭＡによるデータ転送を行う場合、第１のバス１１のＤＭＡコントローラ２２にはメモリ２４からバス中継器１３へのＤＭＡについて、また第２のバス１２のＤＭＡコントローラ２７にはバス中継器１３からメモリ２９へのＤＭＡについて、それぞれ同じデータサイズ（データ量）で対応するＤＭＡチャネルとなるように設定されることが必要である。これらの設定がされた後の処理手順は、図３のようになる。
【００１９】
この図３において、最初のステップＳ６１で、バス中継器１３からＤＭＡコントローラ（ＤＭＡＣ）２２に対してＤＭＡ要求（DREQ）を行う。次のステップＳ６２で、ＤＭＡコントローラ２２はＣＰＵ２１にバス１１の使用権の要求（BREQ）を行ってバス使用権をもらい、メモリ２４からバス中継器１３へのＤＭＡ転送を行う。次のステップＳ６３では、バス中継器１３はＤＭＡコントローラ２７に対してＤＭＡ要求（DREQ）を行う。次のステップＳ６４では、ＤＭＡコントローラ２７はＣＰＵ２６にバス１２の使用権の要求（BREQ）を行ってバス使用権をもらい、バス中継器１３からメモリ２９へのＤＭＡ転送を行う。
【００２０】
また、第２のバス１２上のデバイス２８から第１のバス１１上のデバイス２３にデータをＤＭＡ転送する場合には、ＤＭＡコントローラ２７にはデバイス２８からバス中継器１３へのＤＭＡについて、またＤＭＡコントローラ２２にはバス中継器１３からデバイス２３へのＤＭＡについて、それぞれ同じデータサイズで対応するＤＭＡチャネルとなるように設定されることが必要である。これらの設定がされた後の処理手順は、図４のようになる。
【００２１】
この図４の最初のステップＳ７１において、第２のバス１２上のデバイス２８はＤＭＡコントローラ（ＤＭＡＣ）２７に対してＤＭＡ要求（DREQ）を行う。次のステップＳ７２で、バス中継器１３はＤＭＡコントローラ２７に対してＤＭＡ要求（DREQ）を行う。ステップＳ７３で、ＤＭＡコントローラ２７は、デバイス２８及びバス中継器１３からの各ＤＭＡ要求を受けたことに応じて、ＣＰＵ２６にバス１２の使用権の要求（BREQ）を行ってバス使用権をもらい、デバイス２８からバス中継器１３へのＤＭＡ転送を行う。このとき、ＣＰＵ２６がバス要求（BREQ）に応じてバスを開放したときの応答をＤＭＡコントローラ２７に返し、ＤＭＡコントローラ２７はＤＭＡアクノリッジ（DACK）をバス中継器１３等に返すことは、通常のＤＭＡ転送と同様である。次のステップＳ７４で、バス中継器１３が第１のバス１１上のＤＭＡコントローラ２２に対してＤＭＡ要求（DREQ）を行い、ステップＳ７５で、デバイス２３がＤＭＡコントローラ２２に対してＤＭＡ要求（DREQ）を行う。次のステップＳ７６で、ＤＭＡコントローラ２２は、デバイス２３及びバス中継器１３からの各ＤＭＡ要求を受けたことに応じて、ＣＰＵ２１にバス１１の使用権の要求（BREQ）を行ってバス使用権をもらい、バス中継器１３からデバイス２３へのＤＭＡ転送を行う。
【００２２】
ここで、バス中継器１３のＦＩＦＯ等のメモリ容量は有限なので、それを超える大きさのデータを転送する場合には、ＤＭＡコントローラ２２、２７に分割転送の設定をして、上記ステップＳ６１からＳ６４まで、あるいはステップＳ７１からＳ７６までを繰り返せばよい。この分割転送の際の１回の転送単位（ブロック）は、バス中継器１３のメモリ容量によって決まる。
【００２３】
ところで、一まとまりのＤＭＡ転送が終わってから次のＤＭＡ転送を設定する場合には、単にバス中継器が介在するのみでよいが、例えば上記図３に示すＤＭＡ転送と上記図４に示すＤＭＡ転送との両方を設定しておき、条件が整ったものから、あるいは優先順位が高いものから順次転送処理し、転送が行われたものに対する次の処理を始める、というような効率のよいタスク管理を行う場合には、バス中継器１３に複数のＤＭＡチャネルを管理する機能を備えることが必要となる。
【００２４】
以下、例えば３チャネルのＤＭＡチャネル管理機能を有するバス中継器１３を用いたＤＭＡ転送処理について説明する。この場合の設定の一例を次の表１に示す。この表１における各チャネルの優先順位は、Ch２が優先、Ch１，Ch３が同等とする。この表１中の開始アドレスの“０ｘ”は１６進数を表す。
【００２５】
【表１】
0003678537.tif 000002
【００２６】
この表１に示す設定の終了時の初期状態として、例えばデバイス２３、デバイス２８が共にＤＭＡ要求を出しているものとする。このとき、バス中継器１３はどのチャネルからでもＤＭＡ転送を始められることから、先ず優先度の高い２番のチャネルCh２を選び、第２のバス１２のＤＭＡコントローラ２７に対してチャネルCh２のＤＭＡ要求（DREQ）を行い、ＤＭＡコントローラ２７はデバイス２８からバス中継器１３に例えば６４バイトのデータを転送する。この時点で例えばデバイス２８からのＤＭＡ要求は取り下げられるものとする。
【００２７】
次に、バス中継器１３から第１のバス１１のＤＭＡコントローラ２２に対してチャネルCh２のＤＭＡ要求（DREQ）を行い、ＤＭＡコントローラ２２はバス中継器１３からメモリ２４の上記0x1000以下のアドレスに対して６４バイトのデータ転送を行う。
【００２８】
この時点では、デバイス２８からのＤＭＡ要求が消えているので、優先順位の高いチャネルCh２は選択されない。チャネルCh１とCh３との優先順位は同等で、過去の履歴があればいわゆるラウンドロビン方式で順位決定が行われるが、最初であるのでチャネルCh１が選ばれる。ここで、ラウンドロビン方式とは、ロータリング式優先度制御方式ともいわれ、タイムシェアリング処理において、利用者に一定時間間隔で実行の権利を与える方式である。
【００２９】
このようにしてバス中継器１３は順次ＤＭＡチャネルを選択し、例えば次の表２に示すような順序でＤＭＡ転送処理を進めている。この表２においては、第１のバス１１上のデバイス２３からＤＭＡコントローラ２２へのＤＭＡ要求（DREQ）であるＳA と、バス中継器１３からＤＭＡコントローラ２２へのＤＭＡ要求（DREQ）であるＳB とについて、これらのＤＭＡ要求ＳA ，ＳB の状態と処理の順序とを示している。
【００３０】
【表２】
0003678537.tif 000003
【００３１】
この表２中の転送方向としては、バス中継器１３、デバイス２３，２８、メモリ２４，２９の間をそれぞれの指示符号と矢印とで示している。また、各チャネルのブロック番号（B_No）を、Bk１，Bk２，Bk３で示している。さらに、ＤＭＡコントローラ２２，２７の各チャネルの転送の終了については、END_n_m によりＤＭＡコントローラｎのチャネルChｍの転送が終了したことを示している。
【００３２】
ここで、ＤＭＡコントローラ２２，２７の上述したチャネル以外のＤＭＡチャネルにそれぞれのバス内の転送が設定されていれば、そのチャネルの優先順位をＤＭＡコントローラ２２，２７が考慮してそれぞれのバス上でのＤＭＡの順番を決める。すなわち、バス中継器１３を介したＤＭＡの優先順位だけバス中継器１３で決められることになる。
【００３３】
なお、チャネルの数やそれぞれのバス上のデバイスの構成等は上記の例に限定されない。また、優先順位、チャネル選択の条件としては、種々の組み合わせがあり、プログラムによって変更、設定することもできる。
【００３４】
上記表２の処理手順に従って、それぞれのバス上でそれぞれのＤＭＡチャネルに設定された全てのデータ転送が終わったところでＤＭＡコントローラがＣＰＵに割り込み要求を出すことによって、転送されたデータを用いる処理の開始を促すことができ、プログラマは最初にＤＭＡ制御の設定をするだけでいわゆるマルチスレッドのきっかけを与えることができる。
【００３５】
従って、上述したような本発明の実施の形態によれば、異なるバス間のＤＭＡを無駄な待ち時間を発生させることなく行うことができる。また、複数のＤＭＡチャネルを同時に動作可能にすることにより、ＣＰＵの処理を簡素化し、平易なプログラミングと少ないオーバーヘッドを実現できる。また、バス間の中継器のバッファを効率よく活用することができる。さらに、マルチスレッドのプログラムを簡単に書くことができる。
【００３６】
次に、図５は、本発明の実施の形態が適用されるシステムの一例を示し、このシステムにおいては、高速の画像処理を行うためのメインバス１１１と、ＣＤ−ＲＯＭドライブ等の低速な周辺デバイスが接続されるサブバス１１２とを、ＦＩＦＯ等のバッファメモリを有するバス中継器１１３を介して接続している。
【００３７】
すなわち、図５において、高速のメインバス１１１には、メインＣＰＵ１２１と、ＤＭＡコントローラ１２２と、高速画像処理のためのグラフィックエンジン１２３と、メインメモリ１２４とが接続され、比較的低速のサブバス１２２には、サブＣＰＵ１２６と、ＤＭＡコントローラ１２７と、ＣＤ−ＲＯＭ等のデータ記録媒体１２８と、サブメモリ１２９とが接続されている。これらのメインバス１１１とサブバス１１２とは、上述したようなＦＩＦＯ等のバッファメモリを有するバス中継器１１３を介して接続され、このバス中継器１１３は、ＤＭＡコントローラ１２２、１２７に複数のＤＭＡチャネルに対応する複数種類のＤＭＡ要求、例えば３種類のＤＭＡ要求を出すことができる。このバス中継器１１３の具体的な構成及び動作は、上記図１〜図４と共に説明した実施の形態のバス中継器１３と同様とすればよいため、説明を省略する。
【００３８】
このように、高速バスと低速バスとの間でＤＭＡ転送する場合に、高速バス上で無駄な待ち時間を生じさせることなくデータ転送が行え、ＣＰＵの処理を簡素化できる。
【００３９】
なお、本発明は上記実施の形態のみに限定されるものではなく、例えば、上記実施の形態では、第１のバスと第２のバスとの間で双方向のＤＭＡ転送を行う例について説明したが、第１のバスから第２のバスへのＤＭＡ転送のみ、あるいは第２のバスから第１のバスへのＤＭＡ転送のみを行う場合にも本発明を適用できる。また、ＤＭＡチャネル数、各バスに接続される回路等は実施の形態に限定されないことは勿論である。
【００４０】
【発明の効果】
以上の説明から明らかなように、本発明によれば、第１のバスに接続された第１のダイレクトメモリアクセス制御手段により、上記第１のバスに接続された少なくともデータ供給機能を有する回路手段からのデータをバス中継手段内のバッファメモリに転送し、第２のバスに接続された第２のダイレクトメモリアクセス制御手段により、上記バス中継手段内のバッファメモリから上記第２のバスに接続された少なくともデータ受取機能を有する回路手段に転送することにより、異なるバス間のデータ転送を、高速バス上での無駄な待ち時間等を生じさせることなく行うことができる。これは第２のバスから第１のバスへのデータ転送の場合も同様である。
【００４１】
また、上記バス中継手段には、バッファメモリと、このバッファメモリの動作を制御するバッファ制御手段とを設け、このバッファ制御手段は、上記バッファメモリにアクセスする複数のアクセスチャネルを管理する機能を有し、これらのアクセスチャネルに対応する複数種類のダイレクトメモリアクセス要求を上記第１、第２のダイレクトメモリアクセス制御手段に対して出すことにより、各バスに接続されるＣＰＵの処理を簡素化して平易なプログラミングと少ないオーバーヘッドを実現でき、バス間のバッファを効率よく活用することができ、マルチスレッドのプログラムを簡単に書くことを可能とすることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態の概略構成を示すブロック図である。
【図２】本発明の実施の形態に用いられるバス中継器の内部構成の一例を示すブロック図である。
【図３】本発明の実施の形態の動作の一例を説明するためのフローチャートである。
【図４】本発明の実施の形態の動作の他の例を説明するためのフローチャートである。
【図５】本発明の実施の形態が適用されたシステムの一例を示すブロック図である。
【図６】２バスを用いるシステムの従来例を示すブロック図である。
【符号の説明】
１１  第１のバス、  １２  第２のバス、  １３  バス中継器、  ２１，２６ＣＰＵ、  ２２，２７  ＤＭＡコントローラ、  ２３，２８  デバイス、  ２４，２９  メモリ
【図１】
0003678537.tif 000004
【図２】
0003678537.tif 000005
【図３】
0003678537.tif 000006
【図４】
0003678537.tif 000007
【図５】
0003678537.tif 000008
【図６】
0003678537.tif 000009