(57)【要約】【課題】転送先アドレスや転送元アドレスなどをバスブリッジに設定するためのＣＰＵ負担を軽減することで、独立した異なるシステムバス上のメモリからメモリにデータ転送する際の実質的な転送速度を高速化する。【解決手段】第１ＤＭＡコントローラ３２は第１バス１１側の第１メモリ１３とＦＩＦＯメモリ３１との間でのデータ転送を制御し、第２ＤＭＡコントローラ３３は第２バス２１側の第２メモリ２３とＦＩＦＯメモリ３１との間でのデータ転送を制御する。転送元アドレス、転送先アドレス、転送量など転送に必要なすべての情報は第１バス１１側の第１ＣＰＵ１２から第１ＤＭＡコントローラ３２と第２ＤＭＡコントローラ３３とに設定される。データ転送に先だって第１ＣＰＵ１２と第２ＣＰＵ２２との間で情報交換したり同期をとったりする手間が軽減され、実質的な高速化が図られる。【選択図】図１
2005293435.tif 000002
【特許請求の範囲】
【請求項１】
独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置に対して、
転送元アドレス、転送先アドレス、転送量など転送に必要な情報の設定を一方のシステムから行なう
ことを特徴とするデータ転送装置の設定方法。
【請求項２】
独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置において、
転送元アドレス、転送先アドレス、転送量など転送に必要な情報を一方のシステムから設定可能に構成した
ことを特徴とするデータ転送装置。
【請求項３】
独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置において、
バッファメモリと、
前記バッファメモリと第１のシステムに接続されたメモリとの間でデータ転送する第１転送手段と、
前記バッファメモリと第２のシステムに接続されたメモリとの間でデータ転送する第２転送手段と
を備え、
転送元アドレス、転送先アドレス、転送量など転送に必要な情報を一方のシステムから前記第１転送手段と第２転送手段とに設定可能に構成した
ことを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置およびその設定方法に関する。
【背景技術】
【０００２】
複数の独立したシステム間でデータ転送する場合、システム間でのクロック周波数などを吸収するために、バッファメモリを内蔵したバスブリッジをシステム間に介在させることが行なわれる。
【０００３】
通常、システム間のデータ転送は、一方のシステムのメモリと他方のシステムのデバイスとの間あるいはデバイスとデバイスとの間で行なわれる。しかしながら、画像データのように情報量の大きなデータの場合には、デバイスに直接データを転送するとデバイス側で処理できなくなる場合（たとえば回転処理など）があり、システム間のメモリからメモリへデータを転送する必要の生じることがある。
【０００４】
図２は、独立した異なるバス上のメモリからメモリにバスブリッジを使用してデータ転送するシステムの構成および動作の一例を示している。第１バス１０１には、第１ＣＰＵ（中央処理装置）１０２と第１メモリ１０３とが接続されており、第２バス１１１には、第２ＣＰＵ１１２と第２メモリ１１３とが接続されている。第１バス１０１と第２バス１１１とはバスブリッジ１２０を介して接続されている。
【０００５】
バスブリッジ１２０は、バッファメモリとしてのＦＩＦＯ（ファースト・イン・ファースト・アウト）メモリ１２１と、第１ＤＭＡ（ダイレクト・メモリ・アクセス）コントローラ１２２と第２ＤＭＡコントローラ１２３とを備えている。第１ＤＭＡコントローラ１２２は、第１バス１０１側の第１メモリ１０３とＦＩＦＯメモリ１２１との間でのデータ転送を制御し、第２ＤＭＡコントローラ１２３は第２バス１１１側の第２メモリ１１３とＦＩＦＯメモリ１２１との間でのデータ転送を制御する。
【０００６】
このような構成のシステムにおいて第２バス１１１に接続された第２メモリ１１３から第１バス１０１に接続された第１メモリ１０３にデータ転送する際の手順は以下のようになる。
【０００７】
（１）：第２バス１１１側の第２ＣＰＵ１１２と第１バス１０１側の第１ＣＰＵ１０２との間で、今回のデータ転送を同期して行なうための情報をやり取りする。
【０００８】
（２）：第２ＣＰＵ１１２は、転送すべきデータの第２メモリ１１３内での先頭アドレス（転送元アドレス）と、転送するデータサイズ（転送量）とを第２ＤＭＡコントローラ１２３に設定する。
【０００９】
（３）：第１ＣＰＵ１０２は、第２メモリ１１３から転送されてくるデータを格納すべき領域の第１メモリ１０３内での先頭アドレス（転送先アドレス）と、格納すべきデータサイズ（転送量）とを第１ＤＭＡコントローラ１２２に設定する。
【００１０】
（４）：上記（２）、（３）の設定に基づき第１ＤＭＡコントローラ１２２および第２ＤＭＡコントローラ１２３はＦＩＦＯメモリ１２１を制御してＤＭＡ転送を行なう。
【００１１】
（５）：第１ＤＭＡコントローラ１２２および第２ＤＭＡコントローラ１２３の制御により、第２バス１１１側の第２メモリ１１３からＦＩＦＯメモリ１２１を介して第１バス１０１側の第１メモリ１０３にデータが転送される。
【００１２】
このほか、システム間でデータ転送する際のＣＰＵ負担を軽減するための技術が提案されている。たとえば、バスブリッジを介してシステムバスとローカルバスとが接続されたシステムにおいて、ローカルバス上に接続された複数のデバイスの割り込み要因を、バスブリッジのＤＭＡ転送機能を使用してシステム上のメインメモリに転送することで、システムバス側のＣＰＵにローカル側の割り込み要因を容易に認識させるようにしたものがある（特許文献２参照。）。
【００１３】
【特許文献１】特開平１１−２２４２３２号公報
【特許文献２】特開平１１−３１２１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
バスブリッジを介して独立した異なるシステム間でメモリからメモリへデータを転送する場合には、データ転送を同期して行なうための情報交換をＣＰＵ間で行なったり、転送元のバス側のＣＰＵと転送先のバス側のＣＰＵとがそれぞれバスブリッジに対して各種の設定を行なったりしなければならず、各ＣＰＵへの負担が大きかった。また、データ転送に先立ってＣＰＵ間で同期をとる必要があるので、データ転送を開始するまでの前処理に時間を要し、転送処理の高速化を妨げていた。特許文献２等に開示されている技術は、バスブリッジを経由したデバイス間でのデータ転送には有効であるが、独立した異なるシステム間のメモリからメモリへのデータ転送については、ＣＰＵの負担低減や処理効率の改善に寄与するものではなかった。
【００１５】
本発明は、上記の問題を解決しようとするものであり、転送先アドレスや転送元アドレスなどの設定に係わるＣＰＵ負担を軽減することで、独立した異なるシステムのメモリからメモリにデータ転送する際の実質的な転送速度を高速化することのできるデータ転送装置およびその設定方法を提供することを目的としている。
【課題を解決するための手段】
【００１６】
請求項１に係わる発明は、独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置に対して、
転送元アドレス、転送先アドレス、転送量など転送に必要な情報の設定を一方のシステムから行なう
ことを特徴とするデータ転送装置の設定方法である。
【００１７】
上記発明によれば、一のシステムのメモリから他の一のシステムのメモリへデータ転送するための設定をデータ転送装置に対して一方のシステムから行なう。一方のシステムからデータ転送に必要なすべての設定を行なうことで、データ転送に先だってシステム間で情報交換したり同期をとったりする必要がなくなる。この設定方法は、転送に必要な情報を設定する側のシステムが、他方のシステムのメモリ内におけるデータの格納アドレスを予め知っている場合に好適である。
【００１８】
メモリは各システムのバスに接続される。データ転送装置は、いわゆるバスとバスとを接続するバスブリッジとして構成される。データ転送装置に対する設定は、通常、システムに接続されたＣＰＵが行なう。
【００１９】
転送に必要な情報は、一方のシステムから設定すればよく、そのシステムを固定的に定める必要はない。転送に必要な情報を設定するシステムを転送毎に変えてもよい。
【００２０】
請求項２に係わる発明は、独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置において、
転送元アドレス、転送先アドレス、転送量など転送に必要な情報を一方のシステムから設定可能に構成した
ことを特徴とするデータ転送装置である。
【００２１】
請求項３に係わる発明は、独立した異なるシステムのメモリからメモリにデータ転送するデータ転送装置において、
バッファメモリ（３１）と、
前記バッファメモリ（３１）と第１のシステムに接続されたメモリ（１３）との間でデータ転送する第１転送手段（３２）と、
前記バッファメモリ（３１）と第２のシステムに接続されたメモリ（２３）との間でデータ転送する第２転送手段（３３）と
を備え、
転送元アドレス、転送先アドレス、転送量など転送に必要な情報を一方のシステムから前記第１転送手段（３２）と第２転送手段（３３）とに設定可能に構成した
ことを特徴とするデータ転送装置である。
【００２２】
上記発明によれば、転送元アドレス、転送先アドレス、転送量など転送に必要な情報を一方のシステムから第１転送手段（３２）と第２転送手段（３３）の双方に設定することができる。第１転送手段（３２）および第２転送手段（３３）は、ダイレクト・メモリ・アクセス・コントローラなどで構成される。バッファメモリ（３１）の種類は問わないが、ＦＩＦＯメモリ（先入れ先出し式のメモリ）を使用すると、バッファメモリ（３１）に対するアドレス管理が簡略化される。
【発明の効果】
【００２３】
本発明に係わるデータ転送装置およびその設定方法によれば、転送元アドレス、転送先アドレス、転送量など転送に必要な情報を一方のシステムから設定するので、データ転送に先だってシステム間で情報交換したり同期をとったりする必要がなくなる。これにより、転送に必要な情報を設定するためのＣＰＵ負担が軽減され、実質的に転送速度を高速化することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面に基づき本発明の実施の形態を説明する。
【００２５】
図１は、本発明の実施の形態に係わるデータ転送装置としてのバスブリッジ３０の構成および接続状態を示している。第１のシステムのシステムバスである第１バス１１には、第１ＣＰＵ１２と第１メモリ１３とが接続されている。第２のシステムのシステムバスである第２バス２１には、第２ＣＰＵ２２と第２メモリ２３とが接続されている。第１バス１１と第２バス２１とはバスブリッジ３０を介して接続されている。ここでは、第１バス１１と第１ＣＰＵ１２は共にＰＣＩ（Peripheral Component Interconnect）バスになっている。
【００２６】
バスブリッジ３０は、バッファメモリとしてのＦＩＦＯメモリ３１と、第１ＤＭＡコントローラ３２と、第２ＤＭＡコントローラ３３とを備えている。第１ＤＭＡコントローラ３２は、第１バス１１側の第１メモリ１３とＦＩＦＯメモリ３１との間でのデータ転送を制御する。第２ＤＭＡコントローラ３３は第２バス２１側の第２メモリ２３とＦＩＦＯメモリ３１との間でのデータ転送を制御するものである。ここでは、第１ＤＭＡコントローラ３２および第２ＤＭＡコントローラ３３の内部レジスタの設定は第１バス１１上の第１ＣＰＵ１２から行なわれる。
【００２７】
第１ＤＭＡコントローラ３２は、第１バス１１のアドレスバスおよびデータバスと接続されている。また第１ＤＭＡコントローラ３２の各内部レジスタは第１ＣＰＵ１２のアドレス空間上にマッピングされており、第１ＣＰＵ１２は、第１バス１１を通じて第１ＤＭＡコントローラ３２の各種設定レジスタにアクセス可能になっている。
【００２８】
第１ＤＭＡコントローラ３２は、第１メモリ１３とＦＩＦＯメモリ３１との間でデータ転送する際には第１バス１１のバスマスタとなり、アドレス信号やライト信号、リード信号などを第１バス１１に送出するようになっている。ＦＩＦＯメモリ３１は第１バス１１のデータバスと接続されており、第１ＤＭＡコントローラ３２から入力される制御信号に応じて第１バス１１にデータを送出したり第１バス１１上のデータを内部に取り込んだりするようになっている。
【００２９】
第２ＤＭＡコントローラ３３は、第１バス１１のアドレスバスとデータバスに接続されており、各内部レジスタは第１ＣＰＵ１２のアドレス空間上にマッピングされている。第１ＣＰＵ１２は、第１バス１１を通じて第２ＤＭＡコントローラ３３の各種設定レジスタにアクセス可能になっている。
【００３０】
また第２ＤＭＡコントローラ３３は、第２バス２１のアドレスバスと接続されており、第２メモリ２３とＦＩＦＯメモリ３１との間でデータ転送する際には第２バス２１のバスマスタとなり、アドレス信号やライト信号、リード信号などを第２バス２１に送出するようになっている。ＦＩＦＯメモリ３１は第２バス２１のデータバスと接続されており、第２ＤＭＡコントローラ３３から入力される制御信号に応じて第２バス２１にデータを送出したり第２バス２１上のデータを内部に取り込んだりするようになっている。
【００３１】
次に、第２バス２１に接続された第２メモリ２３から第１バス１１に接続された第１メモリ１３へバスブリッジ３０を用いてデータ転送する際の動作を説明する。
【００３２】
（１）：第１ＣＰＵ１２は、転送すべきデータの第２メモリ２３内での先頭アドレス（転送元アドレス）と、転送するデータサイズ（転送量）とを第２ＤＭＡコントローラ３３に設定する（図１のＰ１）。
【００３３】
（２）：第１ＣＰＵ１２は、転送するデータを格納すべき領域の第１メモリ１３内での先頭アドレス（転送先アドレス）と、格納すべきデータサイズ（転送量）とを第１ＤＭＡコントローラ３２に設定する（図１のＰ２）。
【００３４】
（３）：上記（１）、（２）の設定に基づき第１ＤＭＡコントローラ３２および第２ＤＭＡコントローラ３３はＦＩＦＯメモリ３１を制御してＤＭＡ転送を行なう。
【００３５】
（４）：第１ＤＭＡコントローラ３２および第２ＤＭＡコントローラ３３の制御により、第２バス２１側の第２メモリ２３からＦＩＦＯメモリ３１を介して第１バス１１側の第１メモリ１３にデータが転送される。
【００３６】
このように、システム間でメモリからメモリへデータ転送するために必要なすべての設定をバスブリッジ３０に対して一方のシステムのＣＰＵから行なうので、データの転送元システムのＣＰＵと転送先システムのＣＰＵとの間で同期をとる必要がなくなり、データ転送に先立つ処理が簡略化され、転送速度を実質的に高速化することができる。
【００３７】
転送すべきデータの第２メモリ２３内での格納アドレスを第２ＣＰＵ２２が管理し、必要なデータがどこに格納されているかを第１ＣＰＵ１２が知らない場合には、第２ＣＰＵ２２が転送元アドレスや転送量を第２ＤＭＡコントローラ３３に設置しなければならない。しかしながら、第２メモリ２３から第１メモリ１３に転送すべきデータの第２メモリ２３内での格納アドレスを予め取り決めておけば、第１ＣＰＵ１２が第２メモリ２３側のアドレス（転送元アドレス）等を第２ＤＭＡコントローラ３３に設定することができる。本発明はこのような場合に好適である。
【００３８】
たとえば、フレームメモリに格納された画像データを第２メモリ２３から第１メモリ１３に転送するような場合、フレームメモリ内の各ページの先頭アドレスを予め取り決めておけば、一方のＣＰＵがバスブリッジ３０の第１ＤＭＡコントローラ３２および第２ＤＭＡコントローラ３３の双方に対してデータ転送に必要なすべての情報を設定することができる。これにより、データの転送元システムのＣＰＵと転送先システムのＣＰＵとの間で同期をとる必要がなくなり、処理が効率化され、実質的な高速化が実現される。
【００３９】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。たとえば、ＦＩＦＯメモリ３１と第１ＤＭＡコントローラ３２と第２ＤＭＡコントローラ３３とを一組としたものを１つのバスブリッジ３０に複数組内蔵してもよい。この場合、システム間でのデータ転送の方向を組毎に固定的に定めるとよい。
【００４０】
また実施の形態では、転送先システムのＣＰＵからデータ転送に必要なすべての情報をバスブリッジ３０に設定するように構成したが、転送元システムのＣＰＵが設定するように構成してもよい。
【００４１】
バッファメモリはＦＩＦＯメモリに限定されず、転送されるデータを一時的に格納可能なメモリであればよい。また実施の形態では、ＰＣＩバスとＰＣＩバスとをバスブリッジで接続する場合を例に説明したが、他の種類のバスを接続するものであってもかまわない。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態に係わるバスブリッジの構成および接続状態の一例を示すブロック図である。
【図２】従来から使用されているバスブリッジの構成および接続状態の一例を示すブロック図である。
【符号の説明】
【００４３】
１１…第１バス
１２…第１ＣＰＵ
１３…第１メモリ
２１…第２バス
２２…第２ＣＰＵ
２３…第２メモリ
３０…バスブリッジ
３１…ＦＩＦＯメモリ
３２…第１ＤＭＡコントローラ
３３…第２ＤＭＡコントローラ
【図１】
2005293435.tif 000003
【図２】
2005293435.tif 000004