(57)【要約】【課題】  ＤＭＡ転送とＣＰＵアクセスのバス分離が可能で、データ転送効率とＣＰＵ利用効率の向上が図れるデータ転送システムを提供する。【解決手段】  メインバス１４とローカルバス１５が分離して設けられ、ＤＭＡコントローラ４と、メインバス１４とローカルバス１５の両方のバススレーブになり得る第２スレーブ機器７，８がメインバス１４とローカルバス１５の両方のインタフェースを備えて、メインバス１４とローカルバス１５の両方に接続し、ＣＰＵ１とメインバス１４のみのバススレーブになり得る第１スレーブ機器５，６がメインバス１４に接続し、ローカルバス１５上でバスマスタとなったＤＭＡコントローラ４が、メインバス１４上でバスマスタとなったＣＰＵ１の動作と並行して、ローカルバス１５を介して第２スレーブ機器７，８間のＤＭＡ転送を行う。【選択図】        図１
2006244399.tif 000002
【特許請求の範囲】
【請求項１】
メインバスと、
前記メインバスから独立したローカルバスと、
前記メインバス上でバスマスタになり得るＣＰＵと、
前記メインバス用と前記ローカルバス用の両方のインタフェースを備え、前記メインバス上と前記ローカルバス上でＤＭＡ転送を行えるバスマスタになり得るＤＭＡコントローラと、
前記メインバス用のインタフェースを備え、前記メインバスのバススレーブになり得る１または複数の第１スレーブ機器と、
前記メインバス用と前記ローカルバス用の両方のインタフェースを備え、前記メインバスと前記ローカルバスの両方のバススレーブになり得る複数の第２スレーブ機器と、を備え、
前記メインバスに、前記ＣＰＵと前記ＤＭＡコントローラと前記第１スレーブ機器と前記第２スレーブ機器が接続し、
前記ローカルバスに、前記ＤＭＡコントローラと前記第２スレーブ機器が接続し、
前記ローカルバス上でバスマスタとなった前記ＤＭＡコントローラが、前記メインバス上でバスマスタとなった前記ＣＰＵの動作と並行して、前記ローカルバスを介して前記第２スレーブ機器間のＤＭＡ転送を行えることを特徴とするデータ転送システム。
【請求項２】
前記ＤＭＡコントローラが、前記第２スレーブ機器のアドレス番地情報と前記第２スレーブ機器がＤＭＡ転送中か否かの情報を保持し、且つ、当該情報を書き換え可能であることを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
前記ＤＭＡコントローラが、ＤＭＡ転送元アドレスとＤＭＡ転送先アドレスを保持し、且つ、前記各アドレスを書き換え可能であり、前記第２スレーブ機器の前記アドレス番地情報と、前記ＤＭＡ転送元アドレス及び前記ＤＭＡ転送先アドレスとを比較し、前記ローカルバスでＤＭＡ転送が行えるか否かを判断可能であることを特徴とする請求項２に記載のデータ転送システム。
【請求項４】
前記ＤＭＡコントローラが、前記ローカルバス上でＤＭＡ転送を行っている際に、常に前記メインバスを監視し、前記メインバスでのアクセスアドレスとＤＭＡ転送中の前記第２スレーブ機器の前記アドレス番地情報と前記ＤＭＡ転送中か否かの情報に基づいて、前記ローカルバス上でＤＭＡ転送を行っている前記第２スレーブ機器に対して前記メインバスからアクセスが発生したか否かを判断し、
当該アクセスが発生した場合であって、前記ローカルバスで前記ＤＭＡコントローラに対してウエイト命令が有る状態では、実行中の転送が終了してからＤＭＡ転送を中断し、前記メインバスからＤＭＡ転送中の前記第２スレーブ機器に対するアクセスが無くなり次第、次のデータからＤＭＡ転送を再開し、
当該アクセスが発生した場合であって、前記ローカルバスで前記ＤＭＡコントローラに対してウエイト命令が無い状態では、その時点で実行中の転送が存在していたら当該転送を中止し、前記メインバスからＤＭＡ転送中の前記第２スレーブ機器に対するアクセスが無くなり次第、再び転送を中止したデータからＤＭＡ転送を再開することを特徴とする請求項２または３に記載のデータ転送システム。
【請求項５】
前記第２スレーブ機器が、前記メインバスからアクセスが無いことを確認してから、前記ローカルバスのアクセスを受け付けることを特徴とする請求項１〜４の何れか１項に記載のデータ転送システム。
【請求項６】
前記ローカルバスにて前記ＤＭＡコントローラがＤＭＡ転送を行っている際に、前記メインバスからアクセスがあった前記第２スレーブ機器が、当該ＤＭＡ転送を行っている前記第２スレーブ機器である場合、当該ＤＭＡ転送を終了してから前記メインバスからのアクセス処理を行い、当該ＤＭＡ転送を行っていない機器である場合、前記ローカルバスでウエイト命令が無くなってから前記メインバスからのアクセス処理を行うことを特徴とする請求項１〜５の何れか１項に記載のデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（ダイレクトメモリアクセス）コントローラを用いたデータ転送システムに関し、より具体的には、ＣＰＵアクセスとＤＭＡ転送とが並行で行われるデータ転送システムに関する。
【背景技術】
【０００２】
コンピュータ等のシステムにはＣＰＵ（中央演算処理装置）の動作を行うためのプログラムが格納されているＲＯＭ（読み出し専用メモリ）が実装されている。このＲＯＭは通常ＣＰＵが本来備えるバス幅より狭く、またアクセス速度も遅い。よって、多くのシステムにおいては、ＲＯＭの中のプログラムを高速アクセスが可能なＲＡＭ（ランダムアクセスメモリ）上に転送してこのＲＡＭ上から実行している。また、このＲＡＭはＣＰＵのワークメモリとしても兼用されることがある。
【０００３】
しかし、この転送するプログラムは数Ｍバイトにも及ぶことがあり、ＤＭＡコントローラを用いたＤＭＡ転送により効率の良いデータ転送を行ったとしても、その間ＣＰＵはメインバスをＤＭＡ転送に使用されているため何もできないためＣＰＵの利用効率は悪い。
【０００４】
そこで、プログラム転送効率も良く且つＣＰＵ利用効率も良くするためには、このＤＭＡ転送とＣＰＵアクセスのバスを切り離し、ＤＭＡ転送はローカルバスで、ＣＰＵアクセスはメインバスで動作できるようにし、そのＣＰＵの動作プログラムはシステム起動時にキャッシュに書き込み、キャッシュからＣＰＵを動作させるようにすれば良い。
【０００５】
このＤＭＡ転送バスとＣＰＵアクセスバスを切り離すのに、以下のようなバス構成方法が知られている。
【０００６】
第１に、予め決められたＤＭＡ転送可能なデバイスをＣＰＵから見てバスセパレータの向こう側へ纏めて置き、ＤＭＡ転送を行う時はそのＤＭＡ転送バスをメインバスから切り離し、ＤＭＡ転送可能なデバイスと、ＣＰＵアクセスデバイスを完全に切り分けることにより、ＤＭＡ転送とＣＰＵアクセスを同時に実現するバス構成方法がある（例えば、下記特許文献１参照）。
【０００７】
第２に、ＤＭＡ転送を行いたい機器に関して、その都度ＣＰＵアクセスバスから切り離すことによりＤＭＡ転送とＣＰＵアクセスを同時に実現できるバス構成方法がある（例えば、下記特許文献２参照）。
【０００８】
第３に、初めからメインバスとローカルバスとを切り離し、バスブリッジにより両バスを接続し、ローカルバスにＤＭＡコントローラを設置することにより、ＤＭＡ転送とＣＰＵアクセスを同時に実現するバス構成方法がある。
【０００９】
図４は、上記第１のバス構成方法（下記特許文献１参照）を用いたシステム構成の概略を示すブロック図である。上記ＲＯＭにＦｌａｓｈＭｅｍｏｒｙ３０、上記ＲＡＭにＳＤＲＡＭ３１を用いている。
【００１０】
バスセパレータ３６でメインバス３４とローカルバス３５を接続すれば、バスマスタになった機器は、接続された１つのバスに繋がる全ての機器にアクセスすることができる。
【００１１】
バスセパレータ３６でメインバス３４とローカルバス３５を分離した場合は、メインバス３４では、ＣＰＵ２１がバスマスタとなり、キャッシュ２２、Ａスレーブ２５、Ｂスレーブ２６にのみアクセスすることができ、ローカルバス３５では、ＤＭＡコントローラ２４がバスマスタとなり、ＦｌａｓｈＭｅｍｏｒｙコントローラ２７、ＳＤＲＡＭコントローラ２８にのみアクセスすることができる。
【００１２】
これにより、ＦｌａｓｈＭｅｍｏｒｙコントローラ２７とＳＤＲＡＭコントローラ２８経由でＦｌａｓｈＭｅｍｏｒｙ３０とＳＤＲＡＭ３１間でＤＭＡ転送を行っている間、ＣＰＵ２１はキャッシュ２２に書き込まれたプログラムにより自由にＡスレーブ２５またはＢスレーブ２６にアクセスできる。
【００１３】
図５は、上記第３のバス構成方法を用いたシステム構成の概略を示すブロック図である。上記ＲＯＭにＦｌａｓｈＭｅｍｏｒｙ５０、上記ＲＡＭにＳＤＲＡＭ５１を用いている。この場合、ＣＰＵ４１のあるメインバス５４とＤＭＡコントローラ４４のあるローカルバス５５は並行して処理を行うことができる。
【００１４】
【特許文献１】特開平５−５３９７２号公報
【特許文献２】特開平６−３０１６３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、キャッシュ２２，４２のメモリ容量は限られているため、このプログラム転送中に実行させたいプログラムとそのプログラムのワークメモリをキャッシュ２２，４２のメモリ容量内だけで動作させるという制約の下に、プログラムを作成するには多大な労力と困難が伴い、また実現できたとしてもそれは限られた動作しかできないものになってしまう。よって、現実的にはプログラムのＤＭＡ転送中のＦａｌｓｈＭｅｍｏｒｙ３０，５０へのアクセス、若しくはワークメモリとしてのＳＤＲＡＭ３１，５１へのアクセスを考慮しなければならない。
【００１６】
上記第１または第２のバス構成方法では、ＤＭＡ転送バスとＣＰＵアクセスバスとを切り離し、ＤＭＡ転送を行っている機器に対してＣＰＵ２１がアクセスする場合には、ＣＰＵ２１が、ＤＭＡコントローラ２４へＤＭＡ転送を一時中断させ、切り離されたバスを接続して、ＦａｌｓｈＭｅｍｏｒｙ３０またはＳＤＲＡＭ３１にアクセスし、そのアクセスが終了すると再びバスを切り離し、ＤＭＡコントローラ２４へＤＭＡ転送再開を指示することをプログラムで手続きしなければならず、アクセスするためのオーバーヘッドが多くなり、ＣＰＵ２１からのアクセス効率が悪い。
【００１７】
また、上記第３のバス構成方法では、バスブリッジ５６を介して２つのバス５４，５５を接続し、ＤＭＡ転送を行っている機器に対してＣＰＵ４１がアクセスする場合には、ローカルバス５５上のアービタ５７により管理できるため、ローカルバス５５でＤＭＡ転送中の機器にＣＰＵ４１からアクセスする際に、上記手続きをプログラムで行う必要が無いため、ＣＰＵ４１のアクセス効率は良い。しかし、バスブリッジ５６では通常データをラッチしてから受け渡しするので、ＣＰＵ４１から頻繁にアクセスするメインプログラム格納場所でありワークメモリであるＳＤＲＡＭ５１が、バスブリッジ５６を経由しなければアクセスできないバス構成では、ＤＭＡ転送中ではない通常の場合において、ＣＰＵ４１のアクセス効率が悪くなってしまうという不都合がある。
【００１８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ＤＭＡ転送とＣＰＵアクセスのバス分離が可能で、データ転送効率とＣＰＵ利用効率の向上が図れるデータ転送システムを提供する点にある。
【課題を解決するための手段】
【００１９】
上記目的を達成するための本発明に係るデータ転送システムは、メインバスと、前記メインバスから独立したローカルバスと、前記メインバス上でバスマスタになり得るＣＰＵと、前記メインバス用と前記ローカルバス用の両方のインタフェースを備え前記メインバス上と前記ローカルバス上でＤＭＡ転送を行えるバスマスタになり得るＤＭＡコントローラと、前記メインバス用のインタフェースを備え前記メインバスのバススレーブになり得る１または複数の第１スレーブ機器と、前記メインバス用と前記ローカルバス用の両方のインタフェースを備え前記メインバスと前記ローカルバスの両方のバススレーブになり得る複数の第２スレーブ機器と、を備え、前記メインバスに、前記ＣＰＵと前記ＤＭＡコントローラと前記第１スレーブ機器と前記第２スレーブ機器が接続し、前記ローカルバスに、前記ＤＭＡコントローラと前記第２スレーブ機器が接続し、前記ローカルバス上でバスマスタとなった前記ＤＭＡコントローラが、前記メインバス上でバスマスタとなった前記ＣＰＵの動作と並行して、前記ローカルバスを介して前記第２スレーブ機器間のＤＭＡ転送を行えることを特徴とする。
【００２０】
更に、上記特徴の本発明に係るデータ転送システムにおいて、前記ＤＭＡコントローラが、前記第２スレーブ機器のアドレス番地情報と前記第２スレーブ機器がＤＭＡ転送中か否かの情報を保持し、且つ、当該情報を書き換え可能であることが好ましい。
【００２１】
更に、上記特徴の本発明に係るデータ転送システムにおいて、前記ＤＭＡコントローラが、ＤＭＡ転送元アドレスとＤＭＡ転送先アドレスを保持し、且つ、前記各アドレスを書き換え可能であり、前記第２スレーブ機器の前記アドレス番地情報と、前記ＤＭＡ転送元アドレス及び前記ＤＭＡ転送先アドレスとを比較し、前記ローカルバスでＤＭＡ転送が行えるか否かを判断可能であることが好ましい。
【００２２】
更に、上記特徴の本発明に係るデータ転送システムにおいて、前記ＤＭＡコントローラが、前記ローカルバス上でＤＭＡ転送を行っている際に、常に前記メインバスを監視し、前記メインバスでのアクセスアドレスとＤＭＡ転送中の前記第２スレーブ機器の前記アドレス番地情報と前記ＤＭＡ転送中か否かの情報に基づいて、前記ローカルバス上でＤＭＡ転送を行っている前記第２スレーブ機器に対して前記メインバスからアクセスが発生したか否かを判断し、当該アクセスが発生した場合であって、前記ローカルバスで前記ＤＭＡコントローラに対してウエイト命令が有る状態では、実行中の転送が終了してからＤＭＡ転送を中断し、前記メインバスからＤＭＡ転送中の前記第２スレーブ機器に対するアクセスが無くなり次第、次のデータからＤＭＡ転送を再開し、当該アクセスが発生した場合であって、前記ローカルバスで前記ＤＭＡコントローラに対してウエイト命令が無い状態では、その時点で実行中の転送が存在していたら当該転送を中止し、前記メインバスからＤＭＡ転送中の前記第２スレーブ機器に対するアクセスが無くなり次第、再び転送を中止したデータからＤＭＡ転送を再開することが好ましい。
【００２３】
更に、上記特徴の本発明に係るデータ転送システムにおいて、前記第２スレーブ機器が、前記メインバスからアクセスが無いことを確認してから、前記ローカルバスのアクセスを受け付けること好ましい。
【００２４】
更に、上記特徴の本発明に係るデータ転送システムにおいて、前記ローカルバスにて前記ＤＭＡコントローラがＤＭＡ転送を行っている際に、前記メインバスからアクセスがあった前記第２スレーブ機器が、当該ＤＭＡ転送を行っている前記第２スレーブ機器である場合、当該ＤＭＡ転送を終了してから前記メインバスからのアクセス処理を行い、当該ＤＭＡ転送を行っていない機器である場合、前記ローカルバスでウエイト命令が無くなってから前記メインバスからのアクセス処理を行うことが好ましい。
【００２５】
上記特徴の構成により、本発明に係るデータ転送システムは、ＤＭＡ転送用のローカルバスがメインバスとは独立して設けられ、ＤＭＡコントローラと第２スレーブ機器がメインバス用とローカルバス用の両方のインタフェースを備えていることから、起動時にＤＭＡ転送を行いたい機器を第２スレーブ機器としてＣＰＵと同じメインバス上に設置できるとともに、ＤＭＡコントローラとともにローカルバスに接続することもできる。これにより、ローカルバス上でバスマスタとなったＤＭＡコントローラは、メインバス上でバスマスタとなったＣＰＵの動作と並行して、ローカルバス上において第２スレーブ機器間のＤＭＡ転送を行える。そして、ＤＭＡコントローラは、ローカルバスでＤＭＡ転送を行っている間メインバスを監視し、ＣＰＵからそのＤＭＡ転送中の第２スレーブ機器にアクセスがあった場合、ローカルバスにてＤＭＡコントローラに対するウエイト命令が有るならば、ウエイト命令が無くなるまで待ち、ウエイト命令が無くなってからＤＭＡ転送を中断し、ローカルバスにてＤＭＡコントローラに対するウエイト命令が無いならば、即座にＤＭＡ転送を中断することができる。
【００２６】
一方、ローカルバスでＤＭＡ転送中にメインバスのＣＰＵからアクセスのあった時のローカルバスに接続する第２スレーブ機器の処理は、それがローカルバスでＤＭＡ転送を行っていた第２スレーブ機器の場合、ＤＭＡ転送が終わっていないのならばそのＤＭＡ転送を終えてからＣＰＵからのアクセス処理を行い、それがローカルバスでＤＭＡ転送を行っていない第２スレーブ機器の場合、ローカルバスでＤＭＡコントローラに対するウエイト命令が無くなってからＣＰＵからのアクセス処理を行うことができる。
【００２７】
そして、ＣＰＵからそのローカルバスでＤＭＡ転送を行っている第２スレーブ機器へのアクセスが無くなったことをＤＭＡコントローラが確認してからＤＭＡ転送の再開を行うことにより、ＤＭＡ転送の中断、再開とその間に発生したＣＰＵのアクセス処理とが正しく行われる。
【発明の効果】
【００２８】
上記特徴の本発明に係るデータ転送システムによれば、ＤＭＡ転送用のローカルバスがメインバスとは独立して設けられ、ＤＭＡコントローラと第２スレーブ機器がメインバス用とローカルバス用の両方のインタフェースを備えていることから、ＣＰＵアクセスとＤＭＡ転送とが同時に並行で実行することができ、ＣＰＵ利用効率、データ転送効率ともに向上し、且つ、ＣＰＵからの第２スレーブ機器へのアクセスが、第２スレーブ機器がローカルバスでＤＭＡ転送を行っているかどうかを意識することなく行えるので、ＣＰＵアクセスのオーバーヘッドは無く、ＣＰＵのアクセス効率が向上する。
【発明を実施するための最良の形態】
【００２９】
以下、本発明に係るデータ転送システム（以下、適宜「本発明システム」と略称する）の実施形態を図面に基づいて説明する。
【００３０】
初めに、本発明システムの機器構成について述べる。図１は、本発明システムのシステム構成例を示すブロック図である。
【００３１】
図１に示すように、本発明システムでは、メインバス１４とローカルバス１５が独立して設けられ、メインバス１４を介して、ＣＰＵ１、キャッシュ２、アービタ３、ＤＭＡコントローラ４、Ａスレーブ５とＢスレーブ６の２つの第１スレーブ機器、及び、ＦｌａｓｈＭｅｍｏｒｙコントローラ７とＳＤＲＡＭコントローラ８の２つの第２スレーブ機器が相互に接続している。ここで、Ａスレーブ５、Ｂスレーブ６、ＦｌａｓｈＭｅｍｏｒｙコントローラ７、及び、ＳＤＲＡＭコントローラ８は、夫々、メインバス１４のバススレーブになり得る。
【００３２】
ＦｌａｓｈＭｅｍｏｒｙコントローラ７に内蔵されたローカルバス用インタフェース１２とＳＤＲＡＭコントローラ８に内蔵されたローカルバス用インタフェース１３により、ＦｌａｓｈＭｅｍｏｒｙコントローラ７とＳＤＲＡＭコントローラ８とＤＭＡコントローラ４が、ローカルバス１５により相互に接続している。ここで、ＦｌａｓｈＭｅｍｏｒｙコントローラ７とＳＤＲＡＭコントローラ８は、夫々、ローカルバス１５のバススレーブになり得る。
【００３３】
ＦｌａｓｈＭｅｍｏｒｙコントローラ７には、バスコントローラ９を介してＦｌａｓｈＭｅｍｏｒｙ１０が、ＳＤＲＡＭコントローラ８には、バスコントローラ９を介してＳＤＲＡＭ１１が接続する。尚、通常外部ピンの削減を考慮して、外部にあるＦｌａｓｈＭｅｍｏｒｙ１０とＳＤＲＡＭ１１の端子は一部共有することが多く、そのため、本実施形態では、バスコントローラ９により切り替えている。
【００３４】
次に、ＤＭＡコントローラ４の動作について図１及び図２を参照して説明する。図２は、ＤＭＡコントローラ４内の内部構成例を示すブロック図である。
【００３５】
ＣＰＵ１が、ＤＭＡ転送の設定である転送元アドレスと転送先アドレスとその他転送設定をＤＭＡコントローラ４に設定すると、メインバス用インタフェース６０を経由して、転送元アドレスは転送元アドレスレジスタ６１に、転送先アドレスは転送先アドレスレジスタ６２に、その他転送設定は転送制御機６７に送られる。転送元アドレスが転送元アドレスレジスタ６１に、転送先アドレスが転送先アドレスレジスタ６２に夫々設定されると、自動外部メモリアドレス比較機６５は、それらのアドレスがローカルバスに接続されている第２スレーブ機器のアドレスかを判定するために、予めＦｌａｓｈＭｅｍｏｒｙ１０とＳＤＲＡＭ１１のアドレス領域が記憶されているローカルバス接続機器アドレス群６３から当該アドレス領域を読み出して判定し、その判定結果を転送制御機６７に出力する。
【００３６】
当該判定結果が、転送元と転送先の少なくとも何れか一方がローカルバス１５に未接続の第１スレーブ機器である場合、例えば、Ａスレーブ５からＦｌａｓｈＭｅｍｏｒｙコントローラ７、ＳＤＲＡＭコントローラ８からＢスレーブ６、或いは、Ｂスレーブ６からＡスレーブの５への転送等の場合、転送制御機６７がメインバス１４でのＤＭＡ転送の準備をする。そして、ＣＰＵ１からＤＭＡ転送開始命令を受け取ると、転送制御機６７は、アービタ３にメインバス権限要求を出し、メインバス使用権を得てメインバス上でバスマスタとなり、メインバス用インタフェース６０を経由しＤＭＡ転送用レジスタ群６６を使用してＤＭＡ転送を行う。これは、通常のメインバス１４によるＤＭＡ転送と同様である。
【００３７】
しかし、当該判定結果が、転送元と転送先の両方がローカルバス１５に接続する第２スレーブ機器である場合、例えば、ＦｌａｓｈＭｅｍｏｒｙコントローラ７からＳＤＲＡＭコントローラ８への転送の場合、転送制御機６７はローカルバス転送準備をする。そして、ＣＰＵ１からＤＭＡ転送開始命令を受け取ると、転送制御機６７は、ローカルバス用インタフェース６８を経由しＤＭＡ転送用レジスタ群６６を使用してＤＭＡ転送を行う。同時に転送制御機６７は、ローカルバス接続機器アドレス群６３のアドレスに現在設定されたローカルバスＤＭＡ転送を行う機器に転送中の状態を書き込む。この時、メインバス権限をアービタ３に要求しないため、ＣＰＵ１はメインバス上でバスマスタを維持し、キャッシュ２、Ａスレーブ５、及び、Ｂスレーブ６に自由にアクセスできる。
【００３８】
そして、上記ローカルバスＤＭＡ転送中、メインバス監視機６４は、メインバス用インタフェース６０を経由してメインバス１４上のＣＰＵ１からのアクセスを常に監視し、そのアクセスがローカルバス接続機器アドレス群６３に設定されたアドレスで且つ現在転送中の状態にある、ＦｌａｓｈＭｅｍｏｒｙコントローラ７またはＳＤＲＡＭコントローラ８であれば、転送制御機６７に対してローカルバスＤＭＡ転送の一時中止命令を与える。この時、ローカルバス１５にてウエイト命令が有る場合は、転送制御機６７はローカルバス１５のウエイト命令が無くなったことを確認してからＤＭＡ転送を中断し、次のデータからローカルバス１５にてＤＭＡ転送が再開される状態で停止する。逆に、この時、ローカルバス１５にてウエイト命令が無い場合は、転送制御機６７は即時ＤＭＡ転送を中断し、その時に転送しようとしたデータからローカルバス１５にてＤＭＡ転送を再開できる状態で停止する。
【００３９】
そして、メインバス１４を監視しているメインバス監視機６４が、ＣＰＵ１のＦｌａｓｈＭｅｍｏｒｙコントローラ７またはＳＤＲＡＭコントローラ８へのアクセス終了を確認したら、ローカルバスＤＭＡ転送を再開させるために、転送制御機６７への一時中止命令を解除し、転送制御機６７は、ローカルバス用インタフェース６８を経由し、先程中断したＤＭＡ転送の再開を行う。
【００４０】
次に、ローカルバスＤＭＡ転送を行える第２スレーブ機器であるＦｌａｓｈＭｅｍｏｒｙコントローラ７とＳＤＲＡＭコントローラ８の動作について図１及び図３を参照して説明する。図３は、メインバス１４とローカルバス１５にアクセス可能なＦｌａｓｈＭｅｍｏｒｙコントローラ７とＳＤＲＡＭコントローラ８のバスインタフェースに関するＩＤＬＥ（アイドル）状態とメインバスアクセス状態とローカルバスアクセス状態の関係のみを示した状態遷移図である。
【００４１】
初めに、アクセスの無い状態をＩＤＬＥ状態（＃７０）とし、ここではメインバス１４のアクセス確認（＃７５）、または、ローカルバス１５のアクセス確認（＃７７）を行う。
【００４２】
ＩＤＬＥ状態（＃７０）におけるアクセス確認（＃７５）で、メインバスアクセスが有った場合、ローカルバス１５のウエイト命令の有無の確認（＃７６）を行い、ウエイト命令が無いときはメインバス用インタフェースでのアクセス状態遷移（＃７１）に移行し、ウエイト命令の有無確認（＃７６）でウエイト命令が有るときはメインバス１４にウエイト命令を与えて（＃７３）、ローカルバス１５でウエイト命令が無くなるのを待ってから、メインバス用インタフェースでのアクセス状態遷移（＃７１）に移行し、以降は通常のデバイスアクセス処理を行う。
【００４３】
そして、メインバス用インタフェースでのアクセス状態遷移（＃７１）において、メインバスアクセスが無くなったら、ＩＤＬＥ状態（＃７０）に移行する。このメインバスアクセス時に、万が一ローカルバス１５からアクセスが有ったとしても、メインバスアクセスが優先なので当該アクセスを無視する。
【００４４】
ＩＤＬＥ状態（＃７０）におけるアクセス確認（＃７５）でメインバスアクセスが無く、次のアクセス確認（＃７７）でローカルバスアクセスが有った場合は、ローカルバス用インタフェースでのアクセス状態遷移（＃７２）に移行し、以降はＤＭＡコントローラ４の指示通りローカルバス１５でＤＭＡ転送のデバイス処理を行う。ローカルバス用インタフェースでのアクセス状態遷移（＃７２）に移行する場合はＩＤＬＥ状態（＃７０）におけるアクセス確認（＃７５，＃７７）でメインバスアクセスが無く、ローカルバスアクセスが有った場合のみである。
【００４５】
ローカルバス用インタフェースでのアクセス状態遷移（＃７２）におけるローカルバス１５のＤＭＡ転送中でも、常にメインバス１４のアクセスを監視する（＃７８）。メインバス１４からのアクセスが無く、ローカルバス１５のＤＭＡ転送が終了したら、ＩＤＬＥ状態（＃７０）へ移行する。アクセス監視（＃７８）でメインバス１４からのＣＰＵ１のアクセスが有った場合、その時点のローカルバス１５のＤＭＡ転送アクセスの終了を判定し（＃７９）、ＤＭＡ転送アクセスが終了したらメインバス用インタフェースでのアクセス状態遷移（＃７１）に移行する。ＤＭＡ転送アクセスの終了判定（＃７９）でローカルバス１５のＤＭＡ転送アクセスが未終了なら、メインバス１４のＣＰＵ１へウエイト命令を出し（＃７４）、ＤＭＡ転送アクセスの終了判定（＃７９）でローカルバス１５のＤＭＡ転送アクセスが終了するのを待って、メインバス用インタフェースでのアクセス状態遷移（＃７１）に移行する。
【００４６】
以上の動作により、ローカルバス１５でＦｌａｓｈＭｅｍｏｒｙコントローラ７からＳＤＲＡＭコントローラ８へＤＭＡ転送を行っている最中に、ＣＰＵ１からＳＤＲＡＭコントローラ８へアクセスが有った場合、ＤＭＡコントローラ４は、その時点でＤＭＡ転送を中断し、ＳＤＲＡＭコントローラ８はＤＭＡ転送を終えてからＣＰＵ１からのアクセス処理を行い、ＣＰＵ１からのＳＤＲＡＭコントローラ８のアクセスが無くなったら、ＤＭＡコントローラ４はローカルＤＭＡ転送を再開する。この結果、ローカルバス１５にてＤＭＡ転送中でもそのＤＭＡ転送機器に対するＣＰＵ１からのアクセスは実行でき、且つ、ローカルバス１５でのＤＭＡ転送が漏れなく行われる。
【００４７】
以上、本発明システムの構成及び動作につき詳細に説明したが、本発明システムは上記実施形態の構成に限定されるものではない。例えば、第１スレーブ機器及び第２スレーブ機器の個数、その具体的な機器の種類は、上記実施形態で例示したものに限定されない。
【産業上の利用可能性】
【００４８】
本発明に係るデータ転送システムは、ＤＭＡコントローラを用いたデータ転送システム、及び、ＤＭＡコントローラを用いたデータ転送システムを備えるコンピュータシステムに利用可能である。
【図面の簡単な説明】
【００４９】
【図１】本発明に係るデータ転送システムの一実施形態におけるシステム構成例を示すブロック図
【図２】本発明に係るデータ転送システムの一実施形態で使用されるＤＭＡコントローラの内部構成例を示すブロック図
【図３】本発明に係るデータ転送システムの一実施形態で使用される第２スレーブ機器のバスインタフェースに関するＩＤＬＥ状態とメインバスアクセス状態とローカルバスアクセス状態の関係のみを示した状態遷移図
【図４】従来のバス構成方法を用いたデータ転送システムの一例の概略を示すブロック図
【図５】従来のバス構成方法を用いたデータ転送システムの他の一例の概略を示すブロック図
【符号の説明】
【００５０】
１，２１，４１：  ＣＰＵ
２，２２，４２：  キャッシュ
３，２３：  アービタ
４，２４，４４：  ＤＭＡコントローラ
５，２５，４５：  Ａスレーブ（メインバス用インタフェース付き）
６，２６，４６：  Ｂスレーブ（メインバス用インタフェース付き）
７，２７，４７：  ＦｌａｓｈＭｅｍｏｒｙコントローラ（メインバス用インタフェース付き）
８，２８，４８：  ＳＤＲＡＭコントローラ（メインバス用インタフェース付き）
９，２９，４９：  外部バスコントローラ
１０，３０，５０：  ＦｌａｓｈＭｅｍｏｒｙ
１１，３１，５１：  ＳＤＲＡＭ
１２：  ＦｌａｓｈＭｅｍｏｒｙコントローラのローカルバス用インタフェース
１３：  ＳＤＲＡＭコントローラのローカルバス用インタフェース
１４，３４，５４：  メインバス
１５，３５，５５：  ローカルバス
３６：  バスセパレータ
４３：  メインバスのアービタ
５６：  バスブリッジ
５７：  ローカルバスのアービタ
６０：  メインバス用インタフェース
６１：  転送元アドレスレジスタ
６２：  転送先アドレスレジスタ
６３：  ローカルバス接続機器アドレス群
６４：  メインバス監視機
６５：  自動外部メモリアドレス比較機
６６：  ＤＭＡ転送用レジスタ群
６７：  転送制御機
６８：  ローカルバス用インタフェース
＃７０：  アイドル状態（ＩＤＬＥ）
＃７１：  メインバス用インタフェースでのアクセス状態遷移群
＃７２：  ローカルバス用インタフェースでのアクセス状態遷移群
＃７３：  メインバスにウエイト命令を出している状態
＃７４：  ローカルバス用インタフェースでのアクセス状態遷移群の中の１状態でメインバスにウエイト命令を出している状態
＃７５：  メインバス上のアクセスの有無分岐
＃７６：  ローカルバス上のウエイト命令の有無分岐
＃７７：  ローカルバス上のアクセスの有無分岐
＃７８：  ローカルバス用インタフェースでのアクセス状態遷移群の中の１状態でメインバスアクセス上のアクセスの有無分岐
＃７９：  ローカルバスインタフェースでのアクセス状態遷移群の中の１状態でローカルバスでのアクセスの終了分岐
【図１】
2006244399.tif 000003
【図２】
2006244399.tif 000004
【図３】
2006244399.tif 000005
【図４】
2006244399.tif 000006
【図５】
2006244399.tif 000007