(57)【特許請求の範囲】
【請求項１】
第１及び第２のＰＣＩバス間におけるデータ転送を制御するデータ転送装置であって、
第１及び第２のＰＣＩバス間でトランザクションを転送するブリッジ手段と、
前記第１及び第２のＰＣＩバス間でＤＭＡ転送を行うＤＭＡ転送手段と、
前記ブリッジ手段によるトランザクションの転送と、前記ＤＭＡ転送手段によるＤＭＡ転送との転送の順序を制御する順序制御手段とを有し、
前記順序制御手段は、
リードトランザクションの転送は、実行待ちのＤＭＡ転送及びライトトランザクションがない場合に、前記ブリッジ手段により実行され、
ライトトランザクション、及び当該ライトトランザクションより先に生成されたＤＭＡ転送が実行待ちの場合、
前記実行待ちのＤＭＡ転送の起動条件が成立していれば前記実行待ちのＤＭＡ転送が前記ＤＭＡ転送手段により実行され、
前記実行待ちのＤＭＡ転送の起動条件が成立していなければ前記実行待ちのライトトランザクションの転送が前記ブリッジ手段により実行されるように、前記転送の順序を制御することを特徴とするデータ転送装置。
【請求項２】
前記ＤＭＡ転送の起動条件は、前記ＤＭＡ転送の転送先となるＰＣＩバスのアドレスが取得されていることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記データ転送の転送先となるＰＣＩバスのアドレスは、前記ＤＭＡ転送の転送先のＰＣＩバスの記述子によって取得されることを特徴とする請求項１記載のデータ転送装置。
【請求項４】
第１及び第２のＰＣＩバス間におけるデータ転送を制御するデータ転送装置の制御方法であって、
第１及び第２のＰＣＩバス間でトランザクションを転送するブリッジ工程と、
前記第１及び第２のＰＣＩバス間でＤＭＡ転送を行うＤＭＡ転送工程と、
前記ブリッジ工程におけるトランザクションの転送と、前記ＤＭＡ転送工程におけるＤＭＡ転送との転送の順序を制御する順序制御工程とを有し、
前記順序制御工程は、
リードトランザクションの転送は、実行待ちのＤＭＡ転送及びライトトランザクションがない場合に、前記ブリッジ工程により実行され、
ライトトランザクション、及び当該ライトトランザクションより先に生成されたＤＭＡ転送が実行待ちの場合、
前記実行待ちのＤＭＡ転送の起動条件が成立していれば前記実行待ちのＤＭＡ転送が前記ＤＭＡ転送工程により実行され、
前記実行待ちのＤＭＡ転送の起動条件が成立していなければ前記実行待ちのライトトランザクションの転送が前記ブリッジ工程により実行されるように、前記転送の順序を制御することを特徴とするデータ転送装置の制御方法。
【請求項５】
前記ＤＭＡ転送の起動条件は、前記ＤＭＡ転送の転送先となるＰＣＩバスのアドレスが取得されていることを特徴とする請求項４記載のデータ転送装置の制御方法。
【請求項６】
第１及び第２のＰＣＩバス間におけるデータ転送を制御するデータ転送装置の制御手順をコンピュータに実行させるためのプログラムであって、
第１及び第２のＰＣＩバス間でトランザクションを転送するブリッジ手順と、
前記第１及び第２のＰＣＩバス間でＤＭＡ転送を行うＤＭＡ転送手順と、
前記ブリッジ手順におけるトランザクションの転送と、前記ＤＭＡ転送手順におけるＤＭＡ転送との転送の順序を制御する順序制御手順と、をコンピュータに実行させ、
前記順序制御手順は、
リードトランザクションの転送は、実行待ちのＤＭＡ転送及びライトトランザクションがない場合に、前記ブリッジ手順により実行され、
ライトトランザクション、及び当該ライトトランザクションより先に生成されたＤＭＡ転送が実行待ちの場合、
前記実行待ちのＤＭＡ転送の起動条件が成立していれば前記実行待ちのＤＭＡ転送が前記ＤＭＡ転送手順により実行され、
前記実行待ちのＤＭＡ転送の起動条件が成立していなければ前記実行待ちのライトトランザクションの転送が前記ブリッジ手順により実行されるように、前記転送の順序を制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１及び第２のＰＣＩバス間におけるデータ転送を制御する技術に関するものである。
【背景技術】
【０００２】
従来、ＰＣＩブリッジでブリッジ機能とＤＭＡ機能を同時に動作させるシステムの通信経路はブリッジに集約するか、或いはプロトコルをブリッジとＤＭＡで別々に設け、依存関係をなくし、ＰＣＩトランザクション順序に問題が生じないようにしている。
【０００３】
例として、２つのプロトコルで、パスＡ、パスＢとして動作するブリッジが開示されている（例えば、特許文献１参照）。
【特許文献１】特開2001-256176号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１では、パスＡをブリッジ、パスＢをＤＭＡとしてもパスＡとＢの間に関連がないため、それぞれのパスで順序を守る動作をすることになり、ブリッジとＤＭＡが同時に動作し互いに関連がある場合は当てはまらない。
【０００５】
また、ブリッジとＤＭＡを単純に１つのチップに搭載し、トランザクションの順序制御を入力順に出力するだけとした場合、次のような問題がある。ブリッジにはＰＣＩの順序規則でリードをライトが追い越して良いというものがあり、トランザクションがリードの場合、ライトと等価なＤＭＡがリードを追い越しても良いが、追い越せずに待たされる。また、ＤＭＡ転送が入力バスでイネーブルとされても出力バスで動作条件が成り立たず、起動できない場合、ブリッジトランザクションが待たされる。
【０００６】
このＤＭＡの動作条件とは、出力バス側のＤＭＡアドレス（あて先アドレス）を意味し、出力バスのＤＭＡアドレスを出力バスで設定するシステムをターゲットにしている。
【０００７】
出力バス側のあて先アドレスを入力側で設定すると、出力バスにおけるメモリアドレスのマッピング自由度を束縛するか、常に出力バス上でＤＭＡに有効なアドレスを入力バスのＣＰＵなどに通知しなければならない。
【０００８】
更に、アドレスのマッピング自由度を残してＤＭＡ転送を成り立たせるために、ＤＭＡアドレスを出力バスの記述子（descriptor）からＤＭＡに取り込ませる方法がある。
【０００９】
その場合、入力バスでＤＭＡをイネーブルとしても、出力バスでＤＭＡアドレスを取得できているとは限らないため、取得できていないときにＤＭＡ動作条件が不成立となり、ＤＭＡの待ち状態が発生する。
【００１０】
本発明は、第１及び第２の拡張バス間におけるトランザクションの転送とデータ転送とを規定の順序とデータ転送の起動条件に基づいて制御する。
【課題を解決するための手段】
【００１１】
本発明は、第１及び第２のＰＣＩバス間におけるデータ転送を制御するデータ転送装置であって、第１及び第２のＰＣＩバス間でトランザクションを転送するブリッジ手段と、前記第１及び第２のＰＣＩバス間でＤＭＡ転送を行うＤＭＡ転送手段と、前記ブリッジ手段によるトランザクションの転送と、前記ＤＭＡ転送手段によるＤＭＡ転送との転送の順序を制御する順序制御手段とを有し、前記順序制御手段は、リードトランザクションの転送は、実行待ちのＤＭＡ転送及びライトトランザクションがない場合に、前記ブリッジ手段により実行され、ライトトランザクション、及び当該ライトトランザクションより先に生成されたＤＭＡ転送が実行待ちの場合、前記実行待ちのＤＭＡ転送の起動条件が成立していれば前記実行待ちのＤＭＡ転送が前記ＤＭＡ転送手段により実行され、前記実行待ちのＤＭＡ転送の起動条件が成立していなければ前記実行待ちのライトトランザクションの転送が前記ブリッジ手段により実行されるように、前記転送の順序を制御することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、第１及び第２のＰＣＩバス間におけるトランザクションの転送とＤＭＡ転送のパフォーマンスを向上させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１４】
本実施形態は、ブリッジとＤＭＡとを同時に動作させる場合に、互いの転送動作の順序をＰＣＩ規則に合わせ、不必要な待ち時間をなくしたものである。
【００１５】
図１は、本実施形態におけるデータ転送装置の構成の一例を示す図である。図１において、１０１は第１のＰＣＩバス、１１９は第２のＰＣＩバスである。１０２は本実施形態の順序制御方法に基づいて動作するデータ転送装置である。
【００１６】
データ転送装置１０２において、１０３はＰＣＩインターフェース（Ｉ／Ｆ）部である。１０４はＰＣＩＩ／Ｆ部１０３と後述するＤＭＡ部を接続する内部バスである。１０５はＥＮＤ信号であり、第１のＰＣＩバス１０１の転送終了時にＰＣＩＩ／Ｆ部１０３から後述する順序制御部へ出力される。１０６はＰＣＩＩ／Ｆ部１０３と後述するブリッジを接続する内部バスである。
【００１７】
１０７はＤＭＡ部であり、ＤＭＡ転送のための論理回路とＤＭＡ転送時のデータを保持するバッファとで構成される。１０８はＤＭＡ転送イネーブル信号であり、ＤＭＡ転送のイネーブルを通知するために後述する順序制御部からＤＭＡ部１０７へ出力される。１０９はＤＭＡエントリー信号及びＤＭＡ起動条件信号である。このＤＭＡエントリー信号は、ＤＭＡ転送を第１のＰＣＩバス１０１に対して発生させることを後述する順序制御部に通知する信号である。ＤＭＡ起動条件信号は、ＰＣＩＩ／Ｆ部１０３へ転送するデータが確定したときに通知される。
【００１８】
また、ＤＭＡ部１０７は、１１６の内部バスから入力されたデータとＤＭＡコマンドを処理し、内部バス１０４へＤＭＡデータを転送する。また、ＤＭＡ転送の順番を後述する順序制御部で管理するためのＤＭＡ転送エントリー信号１０９の生成とＤＭＡイネーブル信号１０８の認識も行う。
【００１９】
１１０は順序制御部であり、第１のＰＣＩバス１０１に対するＤＭＡ転送及びブリッジ転送の発行順番を制御する。順序制御部１１０はキュー構造のエントリーを持ち、ＤＭＡエントリー信号１０９又は後述するブリッジ転送エントリー信号のアサートによりＤＭＡ転送又はブリッジ転送をキューに登録する。
【００２０】
順序制御部１１０において、１１１はＤＭＡ起動条件認識部であり、ＤＭＡ部１０７によるＤＭＡ転送が第１のＰＣＩバス１０１上で起動条件を満たしているか否かを認識する。この起動条件は、第１のＰＣＩバス１０１上でＤＭＡアドレスを取得できたかである。また、ＤＭＡアドレスは、第１のＰＣＩバス１０１の記述子によって取得される。１１２はＰＣＩコマンド認識部であり、後述するブリッジの転送がリードかライトかを識別し、順序制御部１１０のイネーブル生成判断に利用する。
【００２１】
１１３はブリッジ転送イネーブル信号であり、ブリッジ転送のイネーブルを通知するために順序制御部１１０から後述するブリッジへ出力される。１１４はブリッジ転送エントリー信号であり、ブリッジ転送を実行することを順序制御部１１０に通知する。１１５はブリッジであり、１１７に示すＰＣＩＩ／Ｆ部からブリッジ転送を受けてＰＣＩＩ／Ｆ部１０３にブリッジ転送を行う。
【００２２】
ブリッジ１１５は、ブリッジ転送を行う際にアドレス変換を行う論理回路と、ブリッジ転送データの格納のためのバッファとを備える。また、ブリッジ転送の順番を順序制御部１１０で管理するためのブリッジ転送エントリー信号１１４の生成及びブリッジ転送イネーブル信号１１３の認識も行う。
【００２３】
１１６はＰＣＩＩ／Ｆ部１１７とＤＭＡ部１０７を接続する内部バスである。１１７はＰＣＩＩ／Ｆ部であり、第２のＰＣＩバス１１９からのブリッジ転送トランザクションの入力、ＤＭＡ部１０７のＤＭＡ動作の設定、起動となるレジスタリードライト及びＤＭＡ動作によるデータの入力を行う。１１８はブリッジ１１５とＰＣＩＩ／Ｆ部１１７を接続する内部バスである。
【００２４】
また、ＰＣＩＩ／Ｆ部１０３は、第１のＰＣＩバス１０１に対してＤＭＡ部１０７からのＤＭＡ転送を行い、終了すると順序制御部１１０へＥＮＤ信号１０５を出力する。また第１のＰＣＩバス１０１に対してブリッジ１１５からのブリッジ転送を行い、終了すると順序制御部１１０に対してＥＮＤ信号１０５を出力する。
【００２５】
尚、図１に示す構成は、第１のＰＣＩバス１０１と第２のＰＣＩバス１１９を逆に見た場合にも、同じものが１セットある構成である。
【００２６】
次に、ＤＭＡ部１０７又はブリッジ１１５で第２のＰＣＩバス１１９から第１のＰＣＩバス１０１へＤＭＡ転送又はブリッジ転送する場合の順序制御部１１０のエントリー受付処理を説明する。
【００２７】
図２は、順序制御部１１０におけるエントリー受付処理を示すフローチャートである。まず、ＤＭＡ部１０７がＰＣＩＩ／Ｆ１１７を介して第２のＰＣＩバス１１９からＤＭＡの起動コマンド及び第１のＰＣＩバス１０１へ転送するためのデータを受け取ると、そのデータをＤＭＡ部１０７のバッファに格納する。そして、ＤＭＡ部１０７がデータの格納を終了すると、ＤＭＡ転送エントリー信号１０９を順序制御部１１０にアサートする。
【００２８】
一方、順序制御部１１０がＤＭＡ部１０７でアサートされたＤＭＡ転送エントリー信号１０９を認識すると（Ｓ２０１）、内部キューにエントリーを登録する（Ｓ２０２）。
【００２９】
また、順序制御部１１０は、ＤＭＡ部１０７と同様に、ブリッジ１１５からＰＣＩコマンドによりアサートされたブリッジ転送エントリー信号１１４を認識すると（Ｓ２０１）、内部キューにエントリーを登録する（Ｓ２０２）。
【００３０】
従って、順序制御部１１０におけるエントリー受付処理に関しては、ＤＭＡ部１０７とブリッジ１１５で差がない。
【００３１】
次に、順序制御部１１０がＤＭＡ部１０７又はブリッジ１１５からのエントリーを受け付け、順序制御を行ってイネーブルを生成する処理を説明する。ここで、イネーブルは、ＤＭＡイネーブルと、ＰＣＩコマンドのリード又はライトトランザクションイネーブルである。
【００３２】
図３は、順序制御部１１０における順序制御処理を示すフローチャートである。まず、順序制御部１１０は、内部キューに基づいて、ＥＮＤ待ちの転送があるか否かを確認する（Ｓ３０１）。その結果、ＥＮＤ待ちの転送がなければステップＳ３０４へ進むが、転送があれば、ＰＣＩＩ／Ｆ１１７で転送が終了し、ＥＮＤ信号１０５が出力されるのを待つ（Ｓ３０２）。その後、ＥＮＤ信号１０５が出力されると（Ｓ３０２のＹＥＳ）、ＥＮＤ待ち転送を内部キューから削除する。
【００３３】
次に、ＤＭＡ又はライトトランザクションがあるか否かを確認する（Ｓ３０４）。その結果、ＤＭＡもライトトランザクションもない場合は（Ｓ３０４のＮＯ）、リードトランザクションのイネーブル信号を生成し（Ｓ３０８）、ステップＳ３０１に戻る。
【００３４】
また、ＤＭＡ又はライトトランザクションがある場合（Ｓ３０４のＹＥＳ）、ＤＭＡがライトトランザクションより先にエントリーされているか否かを内部キューの中の順番で確認する（Ｓ３０５）。そして、ＤＭＡが先の場合は（Ｓ３０５のＹＥＳ）、ＤＭＡ起動条件が成立しているか否かを確認する（Ｓ３０６）。ここで、ＤＭＡ転送エントリー信号１０９によりＤＭＡ起動条件認識部１１１でＤＭＡ起動条件が成立しているか否かを確認する。その結果、ＤＭＡ起動条件が成立していれば（Ｓ３０６のＹＥＳ）、ＤＭＡのイネーブル信号を生成し（Ｓ３０７）、ステップＳ３０１に戻る。
【００３５】
また、ＤＭＡよりライトトランザクションが先の場合（Ｓ３０５のＮＯ）、ライトトランザクションのイネーブルを生成し（Ｓ３０９）、ステップＳ３０１に戻る。
【００３６】
上述したように、ステップＳ３０４→Ｓ３０５→Ｓ３０９の処理により、リードを追い越し可能なライトが先行してイネーブルとなるので、完了の遅いリードを待たずにライトを完了させることができ、パフォーマンスを向上させることができる。
【００３７】
また、ステップＳ３０６でＤＭＡの起動条件が不成立の場合もステップＳ３０９へ進み、完了の遅いＤＭＡをライトトランザクションが追い越すことができ、パフォーマンスを向上させることができる。
【００３８】
本実施形態によれば、第１のバスと第２のバスのトランザクション入力順だけでなく、ブリッジ転送のコマンドがリードかライトかを認識する。或いは、ＤＭＡ転送の出力側となるバスのＤＭＡアドレスの確定待ちなどのＤＭＡ起動条件を確認することで、データやステータスの停滞によるパフォーマンスの低下を防止できる。
【００３９】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００４０】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００４１】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００４２】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【００４４】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４５】
【図１】本実施形態におけるデータ転送装置の構成の一例を示す図である。
【図２】順序制御部１１０におけるエントリー受付処理を示すフローチャートである。
【図３】順序制御部１１０における順序制御処理を示すフローチャートである。
【符号の説明】
【００４６】
１０１  第１のＰＣＩバス
１０２  データ転送装置
１０３  ＰＣＩインターフェース（Ｉ／Ｆ）部
１０５  ＥＮＤ信号
１０７  ＤＭＡ部
１０８  ＤＭＡ転送イネーブル信号
１０９  ＤＭＡエントリー信号及びＤＭＡ起動条件信号
１１０  順序制御部
１１３  ブリッジ転送イネーブル信号
１１４  ブリッジ転送エントリー信号
１１５  ブリッジ
１１７  ＰＣＩＩ／Ｆ部
１１９  第２のＰＣＩバス
【図１】
0004785637.tif 000002
【図２】
0004785637.tif 000003
【図３】
0004785637.tif 000004