(57)【特許請求の範囲】
【請求項１】
バッファメモリを有しており、第１のバス及び第２のバスが接続されるとともに、前記第１のバス側のＤＭＡ要求を禁止するための第１のフラグ及び前記第２のバス側のＤＭＡ要求を禁止するための第２のフラグを備えたバス中継手段と、
前記第１のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第１のバスと前記バス中継手段との間のＤＭＡ転送を行うための第１のＤＭＡ制御手段と、
前記第２のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第２のバスと前記バス中継手段との間のＤＭＡ転送を行うための第２のＤＭＡ制御手段と、
前記第１のバス及び前記第２のバスの少なくとも一方に設けられるデータ処理手段と、を備えた装置により実行される方法であって、
前記データ処理手段が、ＤＭＡ転送が正常に行われているか否かを診断する際に、前記第１のフラグ及び／又は前記第２のフラグにより前記バス中継手段から前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段へのＤＭＡ要求を禁止するとともに、前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段に代わって前記バス中継手段の前記バッファメモリに直接アクセスする段階、を含むことを特徴とする、
データ転送方法。
【請求項２】
バッファメモリを有しており、第１のバス及び第２のバスが接続されるとともに、前記第１のバス側のＤＭＡ要求を禁止するための第１のフラグ及び前記第２のバス側のＤＭＡ要求を禁止するための第２のフラグを備えたバス中継手段と、
前記第１のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第１のバスと前記バス中継手段との間のＤＭＡ転送を行うための第１のＤＭＡ制御手段と、
前記第１のバスに接続される第１のデータ処理手段と、
前記第２のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第２のバスと前記バス中継手段との間のＤＭＡ転送を行うための第２のＤＭＡ制御手段と、
前記第２のバスに接続される第２のデータ処理手段と、を備えた装置により実行される方法であって、
前記第１のデータ処理手段が、前記第１のバスと前記バス中継手段との間のＤＭＡ転送が正常に行われているか否かを診断する際に、前記第１のフラグにより前記バス中継手段から前記第１のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するとともに、前記第１のＤＭＡ制御手段に代わって前記バス中継手段の前記バッファメモリに直接アクセスする段階と、
前記第２のデータ処理手段が、前記第２のバスと前記バス中継手段との間のＤＭＡ転送が正常に行われているか否かを診断する際に、前記第２のフラグにより前記バス中継手段から前記第２のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するとともに、前記第２のＤＭＡ制御手段に代わって前記バス中継手段の前記バッファメモリに直接アクセスする段階と、を含むことを特徴とする、
データ転送方法。
【請求項３】
第１のバス及び第２のバスが接続されるとともに、前記第１のバス側のＤＭＡ要求を禁止するための第１のフラグ及び前記第２のバス側のＤＭＡ要求を禁止するための第２のフラグを備えたバス中継手段と、
前記第１のバスに接続されており、前記第１のバスと前記バス中継手段との間でＤＭＡ転送を行うための第１のＤＭＡ制御手段と、
前記第２のバスに接続されており、前記第２のバスと前記バス中継手段との間でＤＭＡ転送を行うための第２のＤＭＡ制御手段と、
前記第１のバス及び前記第２のバスの少なくとも一方に設けられており、ＤＭＡ転送が正常に行われているか否かを診断する際に、前記第１のフラグ及び／又は前記第２のフラグにより前記バス中継手段から前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段へのＤＭＡ要求を禁止するとともに、前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段に代わって前記バス中継手段を直接アクセスするデータ処理手段と、を備えることを特徴とする、
データ転送装置。
【請求項４】
前記データ処理手段が前記第１のバス及び前記第２のバスの各々に設けられており、
前記第１のバスに設けられているデータ処理手段は、前記第１のフラグにより前記第１のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するように構成され、
前記第２のバスに設けられているデータ処理手段は、前記第２のフラグにより前記第２のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するように構成されている、
請求項３記載のデータ転送装置。
【請求項５】
前記バス中継手段は、前記第１のバスと前記第２のバスとでデータの送受を行うためのバッファメモリを備えており、
前記データ処理手段は、このバッファメモリにアクセス可能なように構成されている、
請求項３記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２つの異なるバスにそれぞれ接続されたデバイスやメモリの間でデータを転送するためのデータ転送方法及び装置に関し、特に、データ転送が正常に機能しているか否かの診断が行えるデータ転送方法及び装置に関する。
【０００２】
【従来の技術】
従来において、メインバスとサブバスのような異なるバスをゲートウェイ等のバス中継器を介して接続し、メインバスに設けられたＤＭＡ（ダイレクトメモリアクセス）コントローラによりこれらのバス間でデータのＤＭＡ転送を行うものが知られている。
【０００３】
例えば、図６に示すような構成において、メインバス１０１とサブバス１０２とはそれぞれバスゲートウェイ等のバス中継器１０３に接続されている。メインバス１０１には、ＣＰＵや各種インターフェース等のデバイス１０４、ＤＭＡコントローラ１０５が接続され、サブバス１０２には、デバイス１０６、ＲＯＭ等のメモリ１０７が接続される。
【０００４】
この図６の例では、メインバス１０１上のＤＭＡコントローラ１０５がバス中継器１０３を介してサブバス１０２も制御することにより、例えばデバイス１０４とデバイス１０６との間のＤＭＡ転送を実現している。このように、異なるバス１０１、１０２間であっても、それぞれのバスのアクセス時間が同じ程度であれば、無駄な待ち時間がなく、効率の良いデータ転送を行うことができる。
【０００５】
【発明が解決しようとする課題】
ところで、１つのシステム内で異なるバスが共存する場合には、バス幅やデータアクセス速度が異なることが多く、例えば図６の例では、メインバス１０１が３２ビット幅で高速、サブバス１０２が１６ビット幅で低速となっている。
【０００６】
このように、バス幅やデータアクセス速度が異なるバス間でＤＭＡ転送を行わせる場合には、高速のバス、例えば図６のメインバス１０１上で無駄な待ち時間を生じさせてしまうという欠点がある。
【０００７】
そこで、２つの異なるバス間をバッファメモリを介して接続し、このバッファメモリを介してＤＭＡ転送を行うことが考えられるが、ＤＭＡ転送が正常に機能しているか否かを診断しようとすると、それぞれのバスのＣＰＵをデバッグモードで走らせなければならず面倒である。
【０００８】
また、データ転送が正常に行われなかった場合、双方のバスのＣＰＵや診断プログラムに欠陥があることが想定されるので、原因の発見が非常に困難になることが多い。
【０００９】
特に、１つのＬＳＩ内にＣＰＵやＤＭＡコントローラ等を設ける場合には、長い開発期間がかかり、診断のスケジュール等も大きな問題となる。
【００１０】
実際にＬＳＩを設計試作する前には周辺機器を含んだソフトウェアシミュレーションを行い、可能な限り多くの機能を確認するわけであるが、シミュレーションには時間がかかることから、十分な検証ができず、試作ＬＳＩ等ができてから短時間に問題点を洗い出さなければならないという実情もあり、上述したようなデバッグの困難性が製品開発のネックとなることが多い。
【００１１】
本発明は、このような実情に鑑みてなされたものであり、異なる２つのバス間でのＤＭＡ転送機能の診断が容易に行え、問題のある場所の特定が短時間で行えるようなデータ転送方法及び装置の提供を目的とする。
【００１２】
【課題を解決するための手段】
上記課題を解決する本発明のデータ転送方法は、バッファメモリを有しており、第１のバス及び第２のバスが接続されるとともに、前記第１のバス側のＤＭＡ要求を禁止するための第１のフラグ及び前記第２のバス側のＤＭＡ要求を禁止するための第２のフラグを備えたバス中継手段と、前記第１のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第１のバスと前記バス中継手段との間のＤＭＡ転送を行うための第１のＤＭＡ制御手段と、前記第２のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第２のバスと前記バス中継手段との間のＤＭＡ転送を行うための第２のＤＭＡ制御手段と、前記第１のバス及び前記第２のバスの少なくとも一方に設けられるデータ処理手段と、を備えた装置により実行される。このデータ転送方法では、前記データ処理手段が、ＤＭＡ転送が正常に行われているか否かを診断する際に、前記第１のフラグ及び／又は前記第２のフラグにより前記バス中継手段から前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段へのＤＭＡ要求を禁止するとともに、前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段に代わって前記バス中継手段の前記バッファメモリに直接アクセスする段階、を含むことを特徴とする。
【００１３】
他の本発明のデータ転送方法は、バッファメモリを有しており、第１のバス及び第２のバスが接続されるとともに、前記第１のバス側のＤＭＡ要求を禁止するための第１のフラグ及び前記第２のバス側のＤＭＡ要求を禁止するための第２のフラグを備えたバス中継手段と、前記第１のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第１のバスと前記バス中継手段との間のＤＭＡ転送を行うための第１のＤＭＡ制御手段と、前記第１のバスに接続される第１のデータ処理手段と、前記第２のバスに接続されており、前記バス中継手段からのＤＭＡ要求があるときに前記第２のバスと前記バス中継手段との間のＤＭＡ転送を行うための第２のＤＭＡ制御手段と、前記第２のバスに接続される第２のデータ処理手段と、を備えた装置により実行される。このデータ転送方法では、前記第１のデータ処理手段が、前記第１のバスと前記バス中継手段との間のＤＭＡ転送が正常に行われているか否かを診断する際に、前記第１のフラグにより前記バス中継手段から前記第１のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するとともに、前記第１のＤＭＡ制御手段に代わって前記バス中継手段の前記バッファメモリに直接アクセスする段階と、前記第２のデータ処理手段が、前記第２のバスと前記バス中継手段との間のＤＭＡ転送が正常に行われているか否かを診断する際に、前記第２のフラグにより前記バス中継手段から前記第２のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するとともに、前記第２のＤＭＡ制御手段に代わって前記バス中継手段の前記バッファメモリに直接アクセスする段階と、を含むことを特徴とする。
【００１４】
本発明のデータ転送装置は、第１のバス及び第２のバスを接続されるとともに、前記第１のバス側のＤＭＡ要求を禁止するための第１のフラグ及び前記第２のバス側のＤＭＡ要求を禁止するための第２のフラグを備えたバス中継手段と、前記第１のバスに接続されており、前記第１のバスと前記バス中継手段との間でＤＭＡ転送を行うための第１のＤＭＡ制御手段と、前記第２のバスに接続されており、前記第２のバスと前記バス中継手段との間でＤＭＡ転送を行うための第２のＤＭＡ制御手段と、前記第１のバス及び前記第２のバスの少なくとも一方に設けられており、ＤＭＡ転送が正常に行われているか否かを診断する際に、前記第１のフラグ及び／又は前記第２のフラグにより前記バス中継手段から前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段へのＤＭＡ要求を禁止するとともに、前記第１のＤＭＡ制御手段及び／又は前記第２のＤＭＡ制御手段に代わって前記バス中継手段を直接アクセスするデータ処理手段と、を備える。
【００１５】
このようなデータ転送装置において、前記データ処理手段が前記第１のバス及び前記第２のバスの各々に設けられている場合には、前記第１のバスに設けられているデータ処理手段は、前記第１のフラグにより前記第１のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するように構成され、前記第２のフラグにより前記第２のバスに設けられているデータ処理手段は、前記第２のＤＭＡ制御手段への前記ＤＭＡ要求を禁止するように構成される。
【００１６】
前記バス中継手段は、例えば、前記第１のバスと前記第２のバスとでデータの送受を行うためのバッファメモリを備えており、前記データ処理手段が、このバッファメモリに対してアクセス可能なように構成される。
【００１７】
また、前記バス中継手段は、例えば、前記第１のＤＭＡ制御手段及び第２のＤＭＡ制御手段へのＤＭＡ要求を表すためのフラグと、前記データ処理手段によりＤＭＡ要求がマスクされたことを表すフラグと、を備えおり、前記データ処理手段は、ＤＭＡ要求の状態を前記ＤＭＡ要求を表すためのフラグにより確認するように構成されている。
【００１８】
第１、第２のバス上の各ＤＭＡ制御手段により、各バス上のメモリやデバイスとバス中継手段のバッファメモリとの間でＤＭＡ転送することにより、このバッファメモリを介して、異なるバス上の各メモリやデバイスの間でのＤＭＡ転送が行える。このとき、各バス上のＤＭＡ要求をそれぞれのバス上のデータ処理手段（ＣＰＵ）がマスクし、直接上記バッファメモリをアクセスすることによって、ＤＭＡ機能をチェックすることができる。また、第１のバス上のデータ処理手段が第２のバス上のＤＭＡ要求をマスクし、第２のバス側から上記バッファメモリをアクセスすることによって、第２のバスのＤＭＡ機能をチェックすることができる。
【００１９】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら説明する。
図１は、本発明に係る実施の形態となるデータ転送方法が適用されるシステム構成をを示すブロック図である。
【００２０】
この図１において、第１のバス１１及び第２のバス１２は、ＦＩＦＯ等のバッファメモリを用いて成るバス中継器１３にそれぞれ接続され、このバス中継器１３を介してバス１１、１２間で互いにデータの転送を行うことができる。第１のバス１１には、ＣＰＵ２１、ＤＭＡ（ダイレクトメモリアクセス）コントローラ２２、デバイス２３、メモリ２４等が接続されており、第２のバス１２には、ＣＰＵ２６、ＤＭＡコントローラ２７、デバイス２８、メモリ２９等が接続されている。
【００２１】
デバイス２３はＤＭＡコントローラ２２に対して、デバイス２８はＤＭＡコントローラ２７に対して、それぞれＤＭＡ要求を出すことができる。これらのデバイス２３，２８としては、例えば、画像や音声のエンコーダ、デコーダ、グラフィック処理のためのグラフィックエンジン、画像処理や音声処理ＩＣ等、あるいは、それぞれのインターフェースを介してのハードディスク装置、光磁気ディスク装置、フロッピィディスク装置、ＣＤ−ＲＯＭ装置等の周辺機器を挙げることができる。バス中継器１３は、ＤＭＡコントローラ２２、２７に対してそれぞれＤＭＡ要求（ＤＲＥＱ）を出すことができる。これらのＤＭＡ要求は、複数のＤＭＡチャネルの内のどのＤＭＡチャネルかを指定することができる。また、バス中継器１３は、例えばバス１２上のＣＰＵ２６に対してバス１２の使用権の要求（ＢＲＥＱ）を出し、ＣＰＵ２６からのバス使用許可の応答（ＢＡＣＫ）を受け取ることができる。
【００２２】
このような図１のシステムに用いられるバス中継器１３の構成の一例を図２に示す。この図２において、上記図１の第１のバス１１はデータバス１１ａとアドレス・制御バス１１ｂとに分けて、上記第２のバス１２はデータバス１２ｂとアドレス・制御バス１２ｂとに分けて示されている。バス中継器１３内には、第１のバス１１のデータバス１１ａに接続される内部バス３１と、第２のバス１２のデータバス１２ａに接続される内部バス３２とが設けられ、これらの内部バス３１，３２には、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ：先入れ先出し）メモリ３３が接続されている。さらにバッファ制御ユニット３４をこれらの内部バス３１，３２に接続するようにしてもよい。バッファ制御ユニット３４は、第１のバス１１のアドレス・制御バス１１ｂ、及び第２のバス１２のアドレス・制御バス１２ｂとも接続されている。また、バッファ制御ユニット３４には、上記図１のＤＭＡコントローラ２２，２７との間でＤＭＡ要求（ＤＲＥＱ）やチャネル指定等を行うための制御信号ラインが接続されている。
【００２３】
マスクフラグ３５は、バス１１側のＤＭＡを禁止するためのフラグであり、図１のＣＰＵ２１の制御によって、このフラグがＯＮあるいは“１”になっているときは、バッファ制御ユニット３４から図１のＤＭＡコントローラ２２へのＤＭＡ要求（ＤＲＥＱ）は出力されない。マスクフラグ３６は、バス１２側のＤＭＡを禁止するためのフラグであり、図１のＣＰＵ２６によってこのフラグがＯＮあるいは“１”になっているときは、バッファ制御ユニット３４から図１のＤＭＡコントローラ２７へのＤＭＡ要求（ＤＲＥＱ）は出力されない。
【００２４】
ＤＲＥＱビット３７及び３８は、それぞれのバス１１及び１２に対するＤＭＡ要求のＯＮ／ＯＦＦ（あるいは“１”／“０”）を表すフラグで、ＣＰＵ２１、２２のいずれからも読むことができる。これらのＤＲＥＱビット３７及び３８のフラグは、上記マスクフラグ３５，３６がＯＮであってもマスクされず、バス中継器１３から各ＤＭＡコントローラ２２，２７へのＤＭＡ要求（ＤＲＥＱ）に現れないＤＭＡ要求の状態を各ＣＰＵ２１，２６で読み取ることができる。
【００２５】
バスゲートウェイ３９は、図１のバス１１側のＣＰＵ２１が、バス１２をアクセスするために内部バス３１と３２とを接続するものである。これらのマスクフラグ３５，３６、ＤＲＥＱビット３７，３８、及びバスゲートウェイ３９は、バッファ制御ユニット３４と接続されている。
【００２６】
この図２に示すバス中継器１３において、ＦＩＦＯメモリ３３は、バッファの役割を果たすメモリであり、バッファ制御ユニット３４によって、アクセスされるバス１１，１２、すなわちこれらに接続された内部バス３１，３２に対してデータの入出力を制御される。バッファ制御ユニット３４は、ＦＩＦＯメモリ３３のバスアクセス動作を制御すると共に、各バス１１，１２のＤＭＡコントローラ２２，２７に対してＤＭＡ要求（ＤＲＥＱ）を出し、その応答（ＤＭＡアクノリッジ：ＤＡＣＫ）を受け取る。このＤＭＡ要求は、複数のＤＭＡチャネルの１つを指定して出すことができる。ＤＭＡコントローラ２２，２７からのＤＭＡチャネル選択情報もこのバッファ制御ユニット３４に送られる。
【００２７】
また、例えばＣＰＵ２１がバス１２のアドレスをアクセスすると、バス中継器１３のバッファ制御ユニット３４がバス１２のＣＰＵ２６に対してバス１２の使用権の要求（ＢＲＥＱ：バスリクエスト）を出す。ＣＰＵ２６は、このバス要求に応じてバス１２の使用を許可する応答（ＢＡＣＫ：バスアクノリッジ）をバス中継器１３のバッファ制御ユニット３４に送る。この後、ＣＰＵ２１はバス中継器１３の内部バス３２側のマスクフラグ３６、ＦＩＦＯ３３、及びバス１２上のＤＭＡコントローラ２７、デバイス２８、メモリ２９等をアクセスすることができる。
【００２８】
ところで、第１のバス１１と第２のバス１２との間で、バス中継器１３を介してＤＭＡ転送を行う場合には、ＤＭＡコントローラ２２及び２７のＤＭＡの設定（例えばデータサイズ等）が矛盾なく対応している必要がある。ＣＰＵ２１はＤＭＡコントローラ２２に対して、またＣＰＵ２６はＤＭＡコントローラ２７に対して、それぞれのバス上のＤＭＡの設定を行う。
【００２９】
例えば、第１のバス１１のメモリ２４から第２のバス１２のメモリ２８にＤＭＡによるデータ転送を行う場合、第１のバス１１のＤＭＡコントローラ２２にはメモリ２４からバス中継器１３へのＤＭＡについて、また第２のバス１２のＤＭＡコントローラ２７にはバス中継器１３からメモリ２９へのＤＭＡについて、それぞれ同じデータサイズ（データ量）で対応するＤＭＡチャネルとなるように設定されることが必要である。これらの設定がされた後の処理手順は、図３のようになる。
【００３０】
この図３において、最初のステップＳ６１で、バス中継器１３からＤＭＡコントローラ２２に対してＤＭＡ要求（ＤＲＥＱ）を行う。次のステップＳ６２で、ＤＭＡコントローラ２２はＣＰＵ２１にバス１１の使用権の要求（ＢＲＥＱ）を行ってバス使用権をもらい、メモリ２４からバス中継器１３へのＤＭＡ転送を行う。次のステップＳ６３では、バス中継器１３はＤＭＡコントローラ２７に対してＤＭＡ要求（ＤＲＥＱ）を行う。次のステップＳ６４では、ＤＭＡコントローラ２７はＣＰＵ２６にバス１２の使用権の要求（ＢＲＥＱ）を行ってバス使用権をもらい、バス中継器１３からメモリ２９へのＤＭＡ転送を行う。
【００３１】
また、第２のバス１２上のデバイス２８から第１のバス１１上のデバイス２３にデータをＤＭＡ転送する場合には、ＤＭＡコントローラ２７にはデバイス２８からバス中継器１３へのＤＭＡについて、またＤＭＡコントローラ２２にはバス中継器１３からデバイス２３へのＤＭＡについて、それぞれ同じデータサイズで対応するＤＭＡチャネルとなるように設定されることが必要である。これらの設定がされた後の処理手順は、図４のようになる。
【００３２】
この図４の最初のステップＳ７１において、第２のバス１２上のデバイス２８はＤＭＡコントローラ２７に対してＤＭＡ要求（ＤＲＥＱ）を行う。次のステップＳ７２で、バス中継器１３はＤＭＡコントローラ２７に対してＤＭＡ要求（ＤＲＥＱ）を行う。ステップＳ７３で、ＤＭＡコントローラ２７は、デバイス２８及びバス中継器１３からの各ＤＭＡ要求を受けたことに応じて、ＣＰＵ２６にバス１２の使用権の要求（ＢＲＥＱ）を行ってバス使用権をもらい、デバイス２８からバス中継器１３へのＤＭＡ転送を行う。このとき、ＣＰＵ２６がバス要求（ＢＲＥＱ）に応じてバスを開放したときの応答をＤＭＡコントローラ２７に返し、ＤＭＡコントローラ２７はＤＭＡアクノリッジ（ＤＡＣＫ）をバス中継器１３等に返すことは、通常のＤＭＡ転送と同様である。次のステップＳ７４で、バス中継器１３が第１のバス１１上のＤＭＡコントローラ２２に対してＤＭＡ要求（ＤＲＥＱ）を行い、ステップＳ７５で、デバイス２３がＤＭＡコントローラ２２に対してＤＭＡ要求（ＤＲＥＱ）を行う。次のステップＳ７６で、ＤＭＡコントローラ２２は、デバイス２３及びバス中継器１３からの各ＤＭＡ要求を受けたことに応じて、ＣＰＵ２１にバス１１の使用権の要求（ＢＲＥＱ）を行ってバス使用権をもらい、バス中継器１３からデバイス２３へのＤＭＡ転送を行う。
【００３３】
なお、バス中継器１３のＦＩＦＯ等のメモリ容量は有限なので、それを超える大きさのデータを転送する場合には、ＤＭＡコントローラ２２、２７に分割転送の設定をして、上記ステップＳ６１からＳ６４まで、あるいはステップＳ７１からＳ７６までを繰り返せばよい。この分割転送の際の１回の転送単位（ブロック）は、バス中継器１３のメモリ容量によって決まる。
【００３４】
従って、バス中継器１３のバッファメモリを介して２つのバス１１，１２間でＤＭＡ転送を行わせることにより、異なるバス間のＤＭＡを無駄な待ち時間を発生させることなく行うことができる。また、複数のＤＭＡチャネルを同時に動作可能にすることにより、ＣＰＵの処理を簡素化し、平易なプログラミングと少ないオーバーヘッドを実現できる。また、バス間の中継器のバッファを効率よく活用することができる。さらに、マルチスレッドのプログラムを簡単に書くことができる。
【００３５】
ところで、例えばＣＰＵ２１がバス１２をアクセスするとき、バス中継器１３がＣＰＵ２６に対してバス１２の使用権の要求（ＢＲＥＱ）を出し、その応答（ＢＡＣＫ）を受け取って、バス１２上のＤＭＡコントローラ２７、デバイス２８、メモリ２９等をアクセスする。
【００３６】
このとき、図２のＦＩＦＯ３３は、マスクフラグ３５，３６により各ＤＭＡコントローラ２２，２７へのＤＭＡ要求（ＤＲＥＱ）の出力を禁止したときに、それぞれのバス１１，１２でＩ／Ｏアクセスが可能となるわけであるが、このＩ／Ｏアクセスは、ＤＭＡの処理と矛盾なく同等に行われなければならない。従って、任意にアクセスできるわけではなく、ＤＭＡのアクセスと同じ条件で許可されることになる。このＩ／Ｏアクセスの条件の一例を次の表１に示す。
【００３７】
【表１】
0003602293.tif 000002
【００３８】
この表１の「信号及びフラグの状態」の欄の「＊」は、任意（Ｄｏｎ’ｔ  ｃａｒｅ）の状態を表している。
【００３９】
ここで、ＤＭＡ機能を診断する条件としては、以下のような場合が考えられる。すなわち、
条件＃１：バス１１，バス１２共に、ＤＭＡコントローラ２２，２７を用いてデータ転送する。
条件＃２：バス１１側だけ、ＣＰＵ２１がＩ／Ｏアクセスでデータの授受を行う。
条件＃３：バス１２側だけ、ＣＰＵ２６がＩ／Ｏアクセスでデータの授受を行う。
条件＃４：バス１１，バス１２側共に、ＣＰＵ２１，２６がＩ／Ｏアクセスでデータの授受を行う。
条件＃５：バス１２側のデバイスが存在せず、あるいはバス１２側のデバイスを用いず、バス１１側はＤＭＡコントローラ２２によるＤＭＡで、バス１２側はＣＰＵ２１がＩ／Ｏアクセスでデータ転送する。
条件＃６：バス１２側のデバイスが存在せず、あるいはバス１２側のデバイスを用いず、バス１１，バス１２側共にＣＰＵ２１がＩ／Ｏアクセスでデータ転送する。
なお、現実のデバッグの順序としては、条件＃６から逆の順にＤＭＡ機能の診断を行うことが想定される。
【００４０】
上述した各条件＃１〜＃６の下で、次のような手順でデータ転送を行い、どの条件下で問題が起こるかを調べることによって、不完全なあるいは問題のある機能ユニットを特定することができる。
【００４１】
条件＃１
マスクフラグ３５：ｏｎ  、マスクフラグ３６：ｏｆｆ
転送方向  ：  ＊
ＣＰＵ２１：ＤＭＡＣ２２に転送の指示
ＣＰＵ２６：ＤＭＡＣ２７に転送の指示。
【００４２】
条件＃２
マスクフラグ３５：ｏｎ  、マスクフラグ３６：ｏｆｆ
転送方向  ：バス１１→バス１２
ＣＰＵ２６：ＤＭＡＣ２７に転送の指示
ＣＰＵ２１：ＤＲＥＱビット３７のｏｎを待ってバス中継器１３にデータを書く
転送方向  ：バス１２→バス１１
ＣＰＵ２６：ＤＭＡＣ２７に転送の指示
ＣＰＵ２１：ＤＲＥＱビット３７のｏｎを待ってバス中継器１３からデータを読む。
【００４３】
条件＃３
マスクフラグ３５：ｏｆｆ、マスクフラグ３６：ｏｎ
転送方向  ：バス１１→バス１２
ＣＰＵ２１：ＤＭＡＣ２２に転送の指示
ＣＰＵ２６：ＤＲＥＱビット３８のｏｎを待ってバス中継器１３からデータを読む
転送方向  ：バス１２→バス１１
ＣＰＵ２１：ＤＭＡＣ２２に転送の指示
ＣＰＵ２６：ＤＲＥＱビット３８のｏｎを待ってバス中継器１３にデータを書く。
【００４４】
条件＃４
マスクフラグ３５：ｏｎ  、マスクフラグ３６：ｏｎ
転送方向  ：バス１１→バス１２
ＣＰＵ２１：ＤＲＥＱビット３７のｏｎを待ってバス中継器１３にデータを書く
ＣＰＵ２６：ＤＲＥＱビット３８のｏｎを待ってバス中継器１３からデータを読む
転送方向  ：バス１２→バス１１
ＣＰＵ２６：ＤＲＥＱビット３８のｏｎを待ってバス中継器１３にデータを書く
ＣＰＵ２１：ＤＲＥＱビット３７のｏｎを待ってバス中継器１３からデータを読む。
【００４５】
0003602293.tif 000003
【００４６】
0003602293.tif 000004
【００４７】
これらの６種類の条件の内のいずれの条件で異常が生じるかを確認することにより、故障個所や問題点の診断をするわけである。なお、バス１２上に転送されたデータは、ＣＰＵ２１がバス１２を直接アクセスすることにより、ＣＰＵ２１のテストプログラムで確認することができる。
【００４８】
従って、このような本発明の実施の形態によれば、異なるバス１１，１２間のＤＭＡ転送機能を容易にデバッグし、問題のある場所を特定することができる。また、主体となるバス１１上のＣＰＵ２１だけで、機能確認を行うことができ、さらに、他方のバス１２に直接アクセスすることによりＤＭＡ機能以外のデバッグを行うこともできる。
【００４９】
次に、図５は、本発明の実施の形態が適用されるシステムの一例を示し、このシステムにおいては、高速の画像処理を行うためのメインバス１１１と、ＣＤ−ＲＯＭドライブ等の低速な周辺デバイスが接続されるサブバス１１２とを、ＦＩＦＯ等のバッファメモリを有するバス中継器１１３を介して接続している。
【００５０】
すなわち、図５において、高速のメインバス１１１には、メインＣＰＵ１２１と、ＤＭＡコントローラ１２２と、高速画像処理のためのグラフィックエンジン１２３と、メインメモリ１２４とが接続され、比較的低速のサブバス１２２には、サブＣＰＵ１２６と、ＤＭＡコントローラ１２７と、ＣＤ−ＲＯＭ等のデータ記録媒体１２８と、サブメモリ１２９とが接続されている。これらのメインバス１１１とサブバス１１２とは、上述したようなＦＩＦＯ等のバッファメモリを有するバス中継器１１３を介して接続され、このバス中継器１１３は、ＤＭＡコントローラ１２２、１２７に複数のＤＭＡチャネルに対応する複数種類のＤＭＡ要求、例えば３種類のＤＭＡ要求を出すことができる。このバス中継器１１３の具体的な構成及び動作は、上記図１〜図４と共に説明した実施の形態のバス中継器１３と同様とすればよいため、説明を省略する。
【００５１】
このように、高速バスと低速バスとの間でＤＭＡ転送する場合に、高速バス上で無駄な待ち時間を生じさせることなくデータ転送が行え、ＣＰＵの処理を簡素化できる。また、異なるバス間のＤＭＡ転送機能のデバッグを容易に行うことができる。
【００５２】
なお、本発明は上記実施の形態のみに限定されるものではなく、例えば、上記実施の形態では、第１のバスと第２のバスとの間で双方向のＤＭＡ転送を行う例について説明したが、第１のバスから第２のバスへのＤＭＡ転送のみ、あるいは第２のバスから第１のバスへのＤＭＡ転送のみを行う場合にも本発明を適用できる。また、ＤＭＡチャネル数、各バスに接続される回路等は実施の形態に限定されないことは勿論である。
【００５３】
【発明の効果】
以上の説明から明らかなように、本発明によれば、第１のバス及び第２のバスの間にバッファメモリを有するバス中継手段を設け、第１のバスに第１のダイレクトメモリアクセス（ＤＭＡ）制御手段を、第２のバスに第２のダイレクトメモリアクセス制御手段をそれぞれ接続し、これらの第１、第２のダイレクトメモリアクセス制御手段により、第１のバスに接続されたメモリやデバイスと第２のバスに接続されたメモリやデバイスとの間のダイレクトメモリアクセス転送を、上記バッファメモリを介して行わせると共に、上記バス中継手段からの上記第１又は上記第２のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求をデータ処理手段（ＣＰＵ）によりマスクし、上記データ処理手段により上記バス中継手段内の上記バッファメモリを直接アクセスすることにより、このバッファメモリを介して、異なるバス上の各メモリやデバイスの間でのダイレクトメモリアクセス転送が行える。このとき、各バス上のダイレクトメモリアクセス要求をそれぞれのバス上のデータ処理手段（ＣＰＵ）がマスクし、直接上記バッファメモリをアクセスすることによって、ダイレクトメモリアクセス機能をチェックすることができる。また、第１のバス上のデータ処理手段が第２のバス上のダイレクトメモリアクセス要求をマスクし、第２のバス側から上記バッファメモリをアクセスすることによって、第２のバスのダイレクトメモリアクセス機能をチェックすることができる。
【００５４】
従って、異なるバス間のダイレクトメモリアクセス転送機能を容易にデバッグし、問題のある場所を特定することができる。また、主体となるバス上のデータ処理手段だけで機能確認を行うことができ、さらに、他方のバスに直接アクセスすることによりダイレクトメモリアクセス機能以外のデバッグを行うこともできる。
【図面の簡単な説明】
【図１】本発明の実施の形態の概略構成を示すブロック図である。
【図２】本発明の実施の形態に用いられるバス中継器の内部構成の一例を示すブロック図である。
【図３】本発明の実施の形態の動作の一例を説明するためのフローチャートである。
【図４】本発明の実施の形態の動作の他の例を説明するためのフローチャートである。
【図５】本発明の実施の形態が適用されたシステムの一例を示すブロック図である。
【図６】２バスを用いるシステムの従来例を示すブロック図である。
【符号の説明】
１１  第１のバス、  １２  第２のバス、  １３  バス中継器、  ２１，２６ＣＰＵ、  ２２，２７  ＤＭＡコントローラ、  ２３，２８  デバイス、  ２４，２９  メモリ、  ３１，３２  内部バス、  ３３  ＦＩＦＯメモリ、  ３４バッファ制御ユニット、  ３５，３６  マスクフラグ、  ３７，３８  ＤＲＥＱビット、  ３９  バスゲートウェイ
【図１】
0003602293.tif 000005
【図２】
0003602293.tif 000006
【図３】
0003602293.tif 000007
【図４】
0003602293.tif 000008
【図５】
0003602293.tif 000009
【図６】
0003602293.tif 000010