(57)【要約】    【課題】  複数のＤＭＡＣによって同一の中間バッファのデータを使用する場合に、メモリバンド幅の占有率を少なくすると同時に、高速に読み込み側へデータを取り込むことを可能にするダイレクト・メモリ・アクセス制御装置を提供する。    【解決手段】  メモリ２０８に対する読み込み開始が指定されたときに次に読み出すべきメモリアドレスをレジスタ１０６に保持する。メモリバス２０７上に発行される書き込みアドレス及び書き込みデータを監視し、メモリバス２０７上に発行された書き込みアドレスとレジスタ１０６に保持されたメモリアドレスとが一致すると、前記メモリバス２０７上の書き込みデータを取り込むと共に、前記レジスタ１０６の保持値を更新する。その更新された保持値が読み込み終了アドレスと同一となると読み込み動作を終了する。【選択図】        図２
2005346581.tif 000002
【特許請求の範囲】
【請求項１】
メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置において、
前記メモリのアドレス空間を指定するアドレス指定手段と、
データ書き込み用のトランザクションが前記メモリバス上に発行されるのを監視する監視手段と、
前記メモリバス上に発行されたデータ書き込み用のトランザクションが、前記アドレス指定手段で指定されたアドレス空間内に対するトランザクションであるか否かを判定する判定手段と、
前記指定されたアドレス空間内に対するトランザクションであると前記判定手段により判定された場合に、前記データ書き込み用のトランザクションとして前記メモリバス上に発行された書き込みデータを取り込むデータ取り込み手段とを備えたことを特徴とするダイレクト・メモリ・アクセス制御装置。
【請求項２】
メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置において、
前記メモリに対する読み込み動作の開始を指定する読み込み開始指定手段と、
前記読み込み動作の開始が指定されたときに次に読み出すべきメモリアドレスを保持する次読み込みアドレス保持手段と、
前記メモリバス上に発行される少なくとも書き込みアドレス及び書き込みデータを監視する監視手段と、
前記メモリバス上に発行された書き込みアドレスと前記次読み込みアドレス保持手段に保持されたメモリアドレスとの一致、不一致を比較判定する判定手段と、
前記発行された書き込みアドレスと前記保持されたメモリアドレスとが一致すると前記判定手段により判定された場合に、前記メモリバス上の書き込みデータを取り込むデータ取り込み手段と、
前記発行された書き込みアドレスと前記保持されたメモリアドレスとが一致すると前記判定手段により判定された場合に、前記次読み込みアドレス保持手段の保持値を更新する更新手段と、
前記更新手段によって更新された保持値が読み込み終了アドレスと同一であった場合に読み込み動作を終了する読み込み終了手段とを備えたことを特徴とするダイレクト・メモリ・アクセス制御装置。
【請求項３】
メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置において、
前記メモリに対してデータ読み込み用のトランザクションを発行する第１のＤＭＡ処理手段と、
請求項１または請求項２に記載された少なくとも監視手段、判定手段及びデータ取り込み手段で構成される第２のＤＭＡ処理手段とを有し、
前記第１のＤＭＡ処理手段と前記第２のＤＭＡ処理手段とが選択的に動作することを特徴とするダイレクト・メモリ・アクセス制御装置。
【請求項４】
メモリに対してデータ書き込み処理を行う書き込み用メモリマスタデバイスと、前記書き込み用メモリマスタデバイスに保持されたデータを読み込んで高速な処理を行う第１の読み込み用メモリマスタデバイスと、前記書き込み用メモリマスタに保持されたデータを読み込み、前記第１の読み込み用メモリマスタデバイスよりも低速な処理を行う第２の読み込み用メモリマスタデバイスとを備えた情報処理システムであって、
前記第１の読み込み用メモリマスタデバイスは、前記書き込み用メモリマスタデバイスが発行した書き込み用トランザクションの読み込み処理を、請求項１、請求項２または請求項３に記載されたダイレクト・メモリ・アクセス制御装置によって実行し、
前記第２の読み込み用メモリマスタデバイスは、前記書き込み用メモリマスタデバイスが発行した書き込み用トランザクションの読み込み処理を、請求項１、請求項２または請求項３に記載されたダイレクト・メモリ・アクセス制御装置の構成を用いない通常構成のダイレクト・メモリ・アクセス制御装置によって実行することを特徴とする情報処理システム。
【請求項５】
請求項１乃至３に記載されたダイレクト・メモリ・アクセス制御装置と、画像入力手段と、画像出力手段とを有し、前記書き込みデータは画像データであることを特徴とする画像処理装置。
【請求項６】
メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置の制御方法であって、
前記メモリのアドレス空間を指定するアドレス指定工程と、
データ書き込み用のトランザクションが前記メモリバス上に発行されるのを監視する監視工程と、
前記メモリバス上に発行されたデータ書き込み用のトランザクションが、前記アドレス指定工程で指定されたアドレス空間内に対するトランザクションであるか否かを判定する判定工程と、
前記指定されたアドレス空間内に対するトランザクションであると前記判定工程により判定された場合に、前記データ書き込み用のトランザクションとして前記メモリバス上に発行された書き込みデータを取り込むデータ取り込み工程とを有することを特徴とするダイレクト・メモリ・アクセス制御装置の制御方法。
【請求項７】
メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置の制御方法を実行するための、コンピュータで読み取り可能な制御プログラムであって、
前記メモリのアドレス空間を指定するアドレス指定ステップと、
データ書き込み用のトランザクションが前記メモリバス上に発行されるのを監視する監視ステップと、
前記メモリバス上に発行されたデータ書き込み用のトランザクションが、前記アドレス指定ステップで指定されたアドレス空間内に対するトランザクションであるか否かを判定する判定ステップと、
前記指定されたアドレス空間内に対するトランザクションであると前記判定ステップにより判定された場合に、前記データ書き込み用のトランザクションとして前記メモリバス上に発行された書き込みデータを取り込むデータ取り込みステップとを有することを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置及びその制御方法、前記ダイレクト・メモリ・アクセス制御装置を有する情報処理システム、並びに前記ダイレクト・メモリ・アクセス制御装置の制御方法を実行するための制御プログラムに関する。
【背景技術】
【０００２】
各種モジュールとメモリとの間で、ＣＰＵを介さずにデータをＤＭＡ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ）方式で転送することにより、ＣＰＵの処理負担を軽減でき、しかもモジュールからメモリへのデータ転送を高速に行うことができる。
【０００３】
例えば、スキャナやプリンタ、ファックス等といった複数の機器機能を備えた複合機器の制御装置においては、ＣＰＵのほかに画像処理回路や外部バスインターフェースなど様々なモジュールを備えている。このようなモジュールには、ＤＭＡＣ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌｌｅｒ）が実装され、ＤＭＡＣは、メモリのマスタデバイスとして動作し様々な処理を実現している。
【０００４】
かかるＤＭＡＣを利用するメモリは、各モジュール間のデータ受け渡し用の中間バッファとして作用することがある。すなわち、あるモジュールの処理終了後の中間データをＤＭＡＣによってメモリに保持し、そのデータを更に別のモジュールがＤＭＡＣによってデータを取り込む、といった処理が継続して行われている（例えば特許文献１の図５を参照）。
【０００５】
例えば、ある画像に対してソフトウェアあるいはハードウエアを用いて画像処理を施し、その処理データをプリンタへ出力する場合では、画像処理用のモジュール、あるいはＣＰＵなどを用いて画像処理を行った結果の処理データをメモリ（中間バッファ）に書き込み、そのメモリ中のデータをプリンタインターフェース内のＤＭＡＣによりプリンタインターフェースに取り込み、最終的にプリンタエンジンに対して出力する。
【０００６】
また、中間バッファに蓄えられたデータは複数のモジュールにより使用されることがある。例えばスキャンとプリントを行う動作を実行する際に、この動作と同時にスキャンした画像データをＨＤＤなどの外部記憶デバイスに保存する（スプールする）場合において、スキャンした画像データは一旦、中間バッファに蓄えられる。そして、その中間バッファに蓄えられた画像は、プリンタインターフェース内のＤＭＡＣとＨＤＤインターフェース内のＤＭＡＣによりそれぞれプリンタインターフェースとＨＤＤインターフェースに取り込まれて処理が行われる。
【特許文献１】特開２００３−１６７８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のようにＤＭＡＣを利用するメモリを備えたシステムは、次のような問題点があった。
【０００８】
（１）同一の中間バッファに蓄えられたデータを複数のＤＭＡＣによって各々のモジュールに取り込む処理を行う場合、メモリバンド幅の占有率を増加させ、その結果、メモリ応答時間が長くなってシステムの性能の低下をもたらすことが考えられる。特に、上記のスキャン動作及びプリント動作とスプール動作を一連の動作として行う場合、スキャン動作でのデータ書き込み処理及びプリント動作でのデータ読み込み処理は、システムの性能を維持するためにも高速に行われる必要があり、ＤＭＡＣの速度も高速に処理が行われる必要があるため、メモリ応答時間の低下はシステムの性能に影響を与えてしまう。これに対して、スプール動作では、外部記憶デバイスに転送が行われるため、転送速度自体は高速である必要がなく、また動作自体に即時性が求められていない。これらの動作を並列に行った場合は、スキャン用ＤＭＡＣ、プリンタ用ＤＭＡＣ及びスプール用ＤＭＡＣの３つのＤＭＡＣが同時に動作するため、メモリバンド幅の占有率が大きく増加し、各ＤＭＡＣのメモリ応答時間を長くする。特に即時性の求められるスキャン用ＤＭＡＣやプリンタ用ＤＭＡＣに関して性能に与える影響は大きくなる。
【０００９】
また、スプール用ＤＭＡＣの動作をスキャン及びプリント動作時から時間的にずらして行うことにより、スキャン及びプリント動作におけるメモリバンド幅占有率を削減することは可能であるが、スプール用ＤＭＡＣの動作時に他のメモリを使用した処理が行われた場合にシステムの性能に影響を与えてしまう可能性がある。さらに、スプール用ＤＭＡＣの動作をずらして行っても、プリント動作時とスプール動作時に同一の中間バッファのデータを使用するということに変わりはなく、メモリバンド幅の効率的使用という観点で依然として問題を残している。
【００１０】
（２）スキャン動作とプリント動作を行い上記のようなスプール動作を行わない場合は、中間バッファのデータはプリント用ＤＭＡＣでのみ使用し、またスプール処理を行う場合ではプリント用ＤＭＡＣとスプール用ＤＭＡＣの双方で使用するといったように、複合機器の制御装置においては、処理形態に応じて、様々な中間バッファの使用方法や使用回数等の実現が可能である。例えば、単にスキャン動作とプリント動作を行う場合、スキャン用ＤＭＡＣのデータを直接、プリント用ＤＭＡＣに入力することによって、中間バッファの削減が可能となる上、メモリバンド幅の占有率を著しく削減することができる。そのため、他の処理が行われる場合、その処理のためにメモリバンド幅を占有でき、システムの高速処理の実現が可能となる。
【００１１】
しかし、このような中間バッファを使用しない構成は、スキャンとプリントの一連のシーケンスが必ず組で行われる場合のみ実現可能であり、スキャンしたデータに例えば回転処理を加えてプリントするといった処理が行えなくなってしまう。したがって、複合機器の制御装置等のシステムにおいては、中間バッファに処理データを書き込む手段を実装する必要があった。
【００１２】
（３）スキャン動作とプリント動作を連動する場合、一般的に、ある処理単位分あるいは１ページ分のスキャン用ＤＭＡＣの書き込み処理が終了した後にプリント用ＤＭＡＣの読み込み処理が行われる、といったＤＭＡＣの動作手順が用いられる。このようにＤＭＡＣ動作を連動させる場合、ソフトウェアやハードウエアシーケンスを組み込んで各ＤＭＡＣの同期をとる必要がある。例えば、スキャン用のＤＭＡＣの書き込みが終了すると終了通知フラグをＣＰＵ等に通知し、ＣＰＵ等はフラグの要因をチェックして終了通知フラグと認識した後にプリント用ＤＭＡＣに読み込み開始の指示を発行する必要がある。スキャン動作及びプリント動作をあるバンド単位ごとに行う場合、バンドの切り替わりごとに終了通知のフラグとＤＭＡＣの開始を指示する必要が生じる。システム内に複数のＤＭＡＣが存在する場合は各ＤＭＡＣごとに同様な処理手順を踏む必要があるため、ＣＰＵやハードウエアシーケンサ等に与える負荷が大きくなる。
【００１３】
そこで、本発明は、上記従来の問題点の少なくとも１つを解決することを目的とする。
【００１４】
本発明は、上記従来の問題点（１）に鑑み、複数のＤＭＡＣによって同一の中間バッファのデータを使用する場合に、メモリバンド幅の占有率を少なくすると同時に、高速に読み込み側へデータを取り込むことを可能にするダイレクト・メモリ・アクセス制御装置、情報処理システム、ダイレクト・メモリ・アクセス制御装置の制御方法、及び制御プログラムを提供することを目的とする。
【００１５】
また、上記従来の問題点（２）に鑑み、メモリバンド幅の占有率が少なくなるように、中間バッファからデータを読み込む側のＤＭＡＣを構成することにより、前記中間バッファへデータを書き込む側の既存のＤＭＡＣをその仕様変更することなしに簡易に実現し、システムの処理の自由度を維持することを可能にすると共に、システム全体の実効メモリバンド幅を増加してシステムの性能向上を実現するダイレクト・メモリ・アクセス制御装置、情報処理システム、ダイレクト・メモリ・アクセス制御装置の制御方法、及び制御プログラムを提供することを目的とする。
【００１６】
さらに、上記従来の問題点（３）に鑑み、各ＤＭＡＣの連携動作を行い易い構成を実現することによりＣＰＵやハードウエアシーケンサの負荷を低減することを可能にするダイレクト・メモリ・アクセス制御装置、情報処理システム、ダイレクト・メモリ・アクセス制御装置の制御方法、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、請求項１の発明であるダイレクト・メモリ・アクセス制御装置は、メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置において、前記メモリのアドレス空間を指定するアドレス指定手段と、データ書き込み用のトランザクションが前記メモリバス上に発行されるのを監視する監視手段と、前記メモリバス上に発行されたデータ書き込み用のトランザクションが、前記アドレス指定手段で指定されたアドレス空間内に対するトランザクションであるか否かを判定する判定手段と、前記指定されたアドレス空間内に対するトランザクションであると前記判定手段により判定された場合に、前記データ書き込み用のトランザクションとして前記メモリバス上に発行された書き込みデータを取り込むデータ取り込み手段とを備えたことを特徴とする。
【００１８】
請求項２の発明であるダイレクト・メモリ・アクセス制御装置は、メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置において、前記メモリに対する読み込み動作の開始を指定する読み込み開始指定手段と、前記読み込み動作の開始が指定されたときに次に読み出すべきメモリアドレスを保持する次読み込みアドレス保持手段と、前記メモリバス上に発行される少なくとも書き込みアドレス及び書き込みデータを監視する監視手段と、前記メモリバス上に発行された書き込みアドレスと前記次読み込みアドレス保持手段に保持されたメモリアドレスとの一致、不一致を比較判定する判定手段と、前記発行された書き込みアドレスと前記保持されたメモリアドレスとが一致すると前記判定手段により判定された場合に、前記メモリバス上の書き込みデータを取り込むデータ取り込み手段と、前記発行された書き込みアドレスと前記保持されたメモリアドレスとが一致すると前記判定手段により判定された場合に、前記次読み込みアドレス保持手段の保持値を更新する更新手段と、前記更新手段によって更新された保持値が読み込み終了アドレスと同一であった場合に読み込み動作を終了する読み込み終了手段とを備えたことを特徴とする。
【００１９】
請求項３の発明であるダイレクト・メモリ・アクセス制御装置は、メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置において、前記メモリに対してデータ読み込み用のトランザクションを発行する第１のＤＭＡ処理手段と、請求項１または請求項２に記載された少なくとも監視手段、判定手段及びデータ取り込み手段で構成される第２のＤＭＡ処理手段とを有し、前記第１のＤＭＡ処理手段と前記第２のＤＭＡ処理手段とが選択的に動作することを特徴とする。
【００２０】
請求項４の発明である情報処理システムは、メモリに対してデータ書き込み処理を行う書き込み用メモリマスタデバイスと、前記書き込み用メモリマスタデバイスに保持されたデータを読み込んで高速な処理を行う第１の読み込み用メモリマスタデバイスと、前記書き込み用メモリマスタに保持されたデータを読み込み、前記第１の読み込み用メモリマスタデバイスよりも低速な処理を行う第２の読み込み用メモリマスタデバイスとを備えた情報処理システムであって、前記第１の読み込み用メモリマスタデバイスは、前記書き込み用メモリマスタデバイスが発行した書き込み用トランザクションの読み込み処理を、請求項１、請求項２または請求項３に記載されたダイレクト・メモリ・アクセス制御装置によって実行し、前記第２の読み込み用メモリマスタデバイスは、前記書き込み用メモリマスタデバイスが発行した書き込み用トランザクションの読み込み処理を、請求項１、請求項２または請求項３に記載されたダイレクト・メモリ・アクセス制御装置の構成を用いない通常構成のダイレクト・メモリ・アクセス制御装置によって実行することを特徴とする。
請求項５の発明である画像処理装置は、請求項１乃至３に記載されたダイレクト・メモリ・アクセス制御装置と、画像入力手段と、画像出力手段とを有し、前記書き込みデータは画像データであることを特徴とする。
【００２１】
請求項６の発明であるダイレクト・メモリ・アクセス制御装置の制御方法は、メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置の制御方法であって、前記メモリのアドレス空間を指定するアドレス指定工程と、データ書き込み用のトランザクションが前記メモリバス上に発行されるのを監視する監視工程と、前記メモリバス上に発行されたデータ書き込み用のトランザクションが、前記アドレス指定工程で指定されたアドレス空間内に対するトランザクションであるか否かを判定する判定工程と、前記指定されたアドレス空間内に対するトランザクションであると前記判定工程により判定された場合に、前記データ書き込み用のトランザクションとして前記メモリバス上に発行された書き込みデータを取り込むデータ取り込み工程とを有することを特徴とする。
【００２２】
請求項７の発明である制御プログラムは、メモリバスを介してメモリと接続されるダイレクト・メモリ・アクセス制御装置の制御方法を実行するための、コンピュータで読み取り可能な制御プログラムであって、前記メモリのアドレス空間を指定するアドレス指定ステップと、データ書き込み用のトランザクションが前記メモリバス上に発行されるのを監視する監視ステップと、前記メモリバス上に発行されたデータ書き込み用のトランザクションが、前記アドレス指定ステップで指定されたアドレス空間内に対するトランザクションであるか否かを判定する判定ステップと、前記指定されたアドレス空間内に対するトランザクションであると前記判定ステップにより判定された場合に、前記データ書き込み用のトランザクションとして前記メモリバス上に発行された書き込みデータを取り込むデータ取り込みステップとを有することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、複数のＤＭＡＣによって同一のメモリのデータを使用する場合に、メモリバンド幅占有率を少なくすると同時に、高速に読み込み側へデータを取り込むことが可能になる。
【００２４】
また、メモリへデータを書き込む側の既存のＤＭＡＣをその仕様変更することなしに簡易に実現でき、システムの処理の自由度を維持することを可能にすると共に、システム全体の実効メモリバンド幅を増加してシステムの性能向上を実現する。
【００２５】
さらに、ＣＰＵやハードウエアシーケンサの負荷を低減することができる。
【発明を実施するための最良の形態】
【００２６】
本発明のダイレクト・メモリ・アクセス制御装置、情報処理システム、ダイレクト・メモリ・アクセス制御装置の制御方法、及び制御プログラムの実施の形態について、図面を参照しながら説明する。本実施の形態の情報処理システムは、例えば複合機器に適用される。
【００２７】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る複合機器の要部構成を示すブロック図である。
【００２８】
図１において、本実施の形態に係る複合機器は、信号の転送先を切り替えるバススイッチ回路２０１と、装置全体の動作を制御するＣＰＵ２０２と、メモリデバイス２０８に対するアクセスを制御するメモリコントローラ２０３と、ハードディスク装置（ＨＤＤ，図示省略）に対するアクセスを制御するＨＤＤコントローラ２０４と、プリンタ（図示省略）とのインターフェースをとるプリンタインターフェース回路（以下、プリンタＩＦ回路と記す）２０５と、スキャナ（図示省略）とのインターフェースをとるスキャナインターフェース回路（以下、スキャナＩＦ回路と記す）２０６とを備えている。
【００２９】
ＨＤＤコントローラ２０４、プリンタＩＦ回路２０５及びスキャナＩＦ回路２０６は、メモリデバイス２０８のマスタデバイス（メモリマスタデバイス）として動作する。すなわち、ＨＤＤコントローラ２０４及びプリンタＩＦ回路２０５は、メモリデバイス２０８に対するデータ読み込み用のＤＭＡ機構（以下、読み込みＤＭＡと記す）を有し、スキャナＩＦ回路２０６は、メモリデバイス２０８に対するデータ書き込み用のＤＭＡ機構（以下、書き込みＤＭＡと記す）を有している。プリンタＩＦ回路２０５内の読み込みＤＭＡは、図２を用いて後述するように本発明の特徴的な構成を適用し、ＨＤＤコントローラ２０４は、通常の構成の読み込みＤＭＡを用いている。
【００３０】
このような構成の複合機器においては、スキャンされた画像をプリンタで印刷するコピー動作や、スキャンされた画像をハードディスクにスプールするといった動作を行うことができる。すなわち、スキャナで取り込まれた画像データは、プリンタＩＦ回路２０５とＨＤＤコントローラ２０４の双方から読み込まれ、それぞれプリンタとＨＤＤ装置で処理が行われることになる。
【００３１】
上記の処理を行う場合において、プリンタ処理は、リアルタイムに処理が行われるため、高速に画像データを読み込むことで高速プリントを実現することが必要となる。これに対してスプール処理は、リアルタイム処理である必要がない上、一般的にハードディスクのアクセス速度がメモリのアクセス速度に対して遅いため、高速処理を必要としない。また、スキャナＩＦ回路２０６からの出力データは、スキャン速度に比例し高速にメモリデバイス２０８に書き込まれる。
【００３２】
本複合機器によってコピーとスプールの同時動作を行う場合、スキャナＩＦ回路２０６の書き込み動作は十分速く、プリンタＩＦ回路２０５とＨＤＤコントローラ２０４との速度差が大きいため、必ずメモリデバイス２０８を中間バッファとして使用しなければならない。
【００３３】
図２は、図１に示したプリンタＩＦ回路２０５の内部構成を示すブロック図である。
【００３４】
このプリンタＩＦ回路２０５は、メモリバス・スヌープ機構１０１と、バスインターフェース１０９と、読み込みＤＭＡ制御部１０８とを有し、バスインターフェース１０９を介してバススイッチ回路２０１に接続される。また、メモリバス・スヌープ機構１０１は、バススイッチ回路２０１とメモリコントローラ２０３と間に配されたメモリバス２０７上の信号をスヌープするための動作を行う。ここで述べるスヌープとは、ＤＭＡの開始指示時にメモリバス２０７上に発行される書き込み要求信号や書き込みアドレス、書き込みデータを監視し、その書き込みアドレスがメモリデバイス２０８のアドレス空間内を指示しているかを判定し、その判定結果に応じた処理を行うことである。本実施の形態のスヌープ処理は、図５を用いて後述する。
【００３５】
読み込みＤＭＡ制御部１０８は、読み込みＤＭＡの開始指示に従い、指定された読み込み開始アドレスと読み込み終了アドレスに基づき、指定された範囲内のデータをメモリマスタデバイスとしてメモリデバイス２０８から読み込む機能を有する。
【００３６】
さらに、プリンタＩＦ回路２０５は、スヌープＤＭＡフラグ１０３、読み込み開始アドレスレジスタ１０４、読み込み終了アドレスレジスタ１０５、及び次読み込みアクセスレジスタ１０６を備えている。読み込み開始アドレスレジスタ１０４によって読み込み開始アドレスを指定し、読み込み終了アドレスレジスタ１０５によって読み込み終了アドレスを指定し、これらアドレスは、読み込みＤＭＡ制御部１０８に入力される。
【００３７】
次読み込みアドレスレジスタ１０６は、読み込みＤＭＡ制御部１０８が発行する読み込みアドレスの指定を行い、読み込みＤＭＡ制御部１０８は、読み込みトランザクションを発行すると読み込みパルス３１１を出力する。読み込みトランザクションとは、メモリデバイス２０８に格納されているデータを読み込むために、メモリバス２０７上に読み込み要求信号及び読み込みアドレスを発行する処理である。
【００３８】
次読み込みアドレスレジスタ１０６は、前記読み込みパルス３１１に基づいて、次に読み込むアドレスを更新する。すなわち、次読み込みアクセスレジスタ１０６は、読み込みＤＭＡ開始レジスタ１０２がセットされたタイミングで、読み込み開始アドレスレジスタ１０４に保持された値をロードし、読み込み発行パルス３１２の入力により次の読み込みアドレスに保持値を更新する。この読み込みアドレスの更新方法は任意であり、本実施の形態ではアドレスを１番地インクリメントするものとする。次読み込みアクセスレジスタ１０６に入力される読み込み発行パルス３１２は、読み込みＤＭＡ制御部１０８からの読み込みパルス３１１と、メモリバス・スヌープ機構１０１からのメモリバスデータストローブ信号３０６との論理和（ＯＲ）がとられたパルスである。
【００３９】
読み込みＤＭＡ制御部１０８に対する読み込みＤＭＡの開始指示は、読み込みＤＭＡ開始レジスタ１０２とスヌープＤＭＡフラグ１０３の反転値の論理積として入力される。すなわち、読み込みＤＭＡ開始レジスタ１０２に読み込み開始の指示として“１”が設定され、スヌープＤＭＡフラグ１０３がセットされていないときに、読み込みＤＭＡ制御部１０８は読み込みＤＭＡの開始指示を受けたと認識する。
【００４０】
このような構成により、読み込みＤＭＡ制御部１０８は、メモリデバイス２０８に保持されたデータを取り込む場合には、ソフトウェアにより次のような処理を行う。すなわち、読み込み開始アドレスを読み込み開始アドレスレジスタ１０４に指定し、読み込み終了アドレスを読み込み終了アドレスレジスタ１０５に指定し、さらにスヌープＤＭＡフラグ１０３をクリアし、読み込みＤＭＡ開始レジスタ１０２をセットする。これにより、メモリデバイス２０８上のデータを取り込むことができる。
【００４１】
そして、メモリデバイス２０８からの読み込みデータは、バスインターフェース１０９とセレクタ１１０を介し、読み込みデータ制御部１０７で処理が行われ、最終的にプリンタ出力インターフェース１１１を介してプリンタへと出力される。
【００４２】
図３は、図２に示したメモリバス・スヌープ機構１０１の要部構成を示すブロック図である。
【００４３】
このメモリバス・スヌープ機構１０１は、メモリバスデコーダ３０３を備え、メモリバス２０７上の信号を入力し、これらの信号をメモリバスデコーダ３０３で監視し、スヌープする。すなわち、メモリバスデコーダ３０３は、メモリバス２０７上の信号をデコードすることにより、この信号に対応したアクセス処理（トランザクション）を監視する機能を有する。例えば、メモリバス２０７上に書き込み要求信号、書き込みアドレス及び書き込みデータが発行された場合は、メモリバス２０７上に、前記書き込みアドレスに前記書き込みデータを書き込むトランザクション（以下、書き込みトランザクションと記す）が発行されていることになる。メモリバスデコーダ３０３は、メモリバス２０７上にメモリデバイス２０８への書き込みトランザクションが発行されたのを検知すると、メモリ書き込み検知パルス３０４を発行する。
【００４４】
さらに、メモリバス・スヌープ機構１０１内には、アドレス比較器３０１，３０２が組み込まれている。アドレス比較器３０１，３０２は、２つの入力アドレスを比較して同一アドレスである場合に“１”を出力する。アドレス比較器３０１には、読み込み終了アドレスレジスタ１０５に保持された値である入力アドレス３０７と、次読み込みアドレスレジスタ１０６に保持された値である入力アドレス３０８とが供給され、もう一方のアドレス比較器３０２には、前記入力アドレス３０８と、メモリバス２０７上に発行された書き込みアドレスとが供給される。
【００４５】
そして、アドレス比較器３０１の出力の反転値と、アドレス比較器３０２の出力値と、メモリ書き込み検知パルス３０４との論理積（ＡＮＤ）がとられ、その結果がメモリバスデータストローブ信号３０６として出力される。また、メモリバス２０７上の書き込みデータは、そのままメモリバスデコーダ３０３よりメモリバス・スヌープ機構１０１外へ出力データ３０５として出力される。
【００４６】
メモリバス・スヌープ機構１０１では、読み込みＤＭＡ開始レジスタ１０２とスヌープＤＭＡフラグ１０３との論理積の入力３１３により機能を開始し、次読み込みアドレスが読み込み終了アドレスと同一値になるまで動作するよう制御される。
【００４７】
メモリバス・スヌープ機構１０１からの出力データ３０５は、セレクタ１１０介し読み込みデータ制御部１０７に伝達される。セレクタ１１０の選択信号は、スヌープＤＭＡフラグ１０３の値がそのまま使用され、この値に“１”がセットされている場合はメモリバス・スヌープ機構１０１からの出力データが選択され、“０”がセットされている場合はバスインターフェース１０９からの出力データが選択され、読み込みデータ制御部１０７へとデータが伝達される。
【００４８】
読み込みデータ制御部１０７は、セレクタ１１０からの出力データを読み込みデータとして取り込む。読み込みデータ制御部１０７では、バスインターフェース１０９からのデータストローブ信号１１２とメモリバス・スヌープ機構１０１からのメモリバスデータストローブ信号３０６との論理和をデータストローブ信号とし、セレクタ１１０からの出力データを取り込む。読み込みデータ制御部１０７は、取り込んだデータに対して任意の処理を施して出力し、その出力された画像データが、プリンタ出力インターフェース１１１を介してプリンタへと出力される。
【００４９】
次に、以上のように構成される複合機器のスキャン動作、プリント動作、及びスプール動作について図４及び図５を用いて説明する。
【００５０】
図４は、第１の実施の形態に係る複合機器において実行されるスキャン動作、プリント動作及びスプール動作の手順を示すフローチャートであり、図５は、プリンタＩＦ回路２０５で実行されるメモリバス・スヌープ処理（図４のステップＳ１５）を示すフローチャートである。
【００５１】
初めに、本実施の形態で実行されるスキャン動作、プリント動作及びスプール動作の概要について説明する。
【００５２】
スキャナＩＦ回路２０６は、スキャナからの画像データを書き込みＤＭＡによってメモリデバイス２０８に書き込む。その際のメモリデバイス２０８へのアドレスは任意であるが、本実施の形態では順に１番地ずつインクリメントするものとする。スキャナＩＦ回路２０６からの書き込みトランザクションは、バススイッチ回路２０１、メモリバス２０７、及びメモリコントローラ２０３を介しメモリデバイス２０８へと伝達される。
【００５３】
プリンタＩＦ回路２０５は、スキャナＩＦ回路２０６がメモリデバイス２０８に書き込む順番と同一順で、プリンタに出力するデータをメモリバス２０７上から取り込む。また、ＨＤＤコントローラ２０４は、スキャナＩＦ回路２０６がメモリデバイス２０８に書き込んだデータをＨＤＤ装置に格納する。
【００５４】
以下、本実施の形態で実行されるスキャン動作、プリント動作及びスプール動作の詳細について図４のフローチャートを参照しつつ説明する。
【００５５】
スキャン、プリント及びスプールの一連の動作を行う際に、まずスキャナＩＦ回路２０６に対して、画像データを書き込むアドレス領域の指定を行い（ステップＳ１１）、さらにプリンタＩＦ回路２０５に対して、同一のアドレス領域を読み込み開始アドレスレジスタ１０４と読み込み終了アドレスレジスタ１０５に設定する（ステップＳ１２）。そして、スヌープＤＭＡフラグ１０３をセットし（ステップＳ１３）、読み込みＤＭＡ開始レジスタ１０２をセットする（ステップＳ１４）。プリンタＩＦ回路２０５の読み込みＤＭＡ開始レジスタ１０２をセットすることにより、プリンタＩＦ回路２０５のメモリバス・スヌープ機構１０１の機能が開始され、メモリバス２０７のスヌープが開始される（ステップＳ１５）。
【００５６】
上記の設定が終了した後にスキャナＩＦ回路２０６の書き込みＤＭＡを開始すると（ステップＳ１６）、スキャナで取り込んだ画像データが、メモリデバイス２０８の指定されたアドレス領域にメモリバス２０７を介して書き込まれる（ステップＳ１７）。
【００５７】
ここで図５を用いて、プリンタＩＦ回路２０５で実行されるメモリバス・スヌープ処理（図４のステップＳ１５）について説明する。
【００５８】
図５において、スキャナＩＦ回路２０６からの最初の書き込みトランザクションがメモリバス２０７上に発行されると（ステップＳ２１）、メモリバス・スヌープ機構１０１は、メモリバス２０７上の前記書き込みトランザクションが読み込み対象のアクセス（つまり前記ステップＳ１２において読み込み開始アドレスレジスタ１０４と読み込み終了アドレスレジスタ１０５に設定されたアドレス領域に対するアクセス）であるか否かを判定する（ステップＳ２２）。
【００５９】
前記読み込み対象のアクセスと判定された場合には、メモリバス２０７上の書き込みデータを取り込み（ステップＳ２３）、読み込みデータ制御部１０７に対して伝達するとともに、次読み込みアドレスレジスタ１０６の値を１番地インクリメントする（ステップＳ２４）。
【００６０】
さらに、スキャナＩＦ回路２０６からの後続の書き込みトランザクションは１番地ずつインクリメントされて順次発行されるので、前記ステップＳ２２において、その度に、プリンタＩＦ回路２０５内のメモリバス・スヌープ機構１０１で読み込み対象アクセスであると判定される。その結果、スキャナからの画像データをメモリデバイス２０８に書き込むためにスキャナＩＦ回路２０６がメモリバス２０７上に発行した全ての書き込みトランザクションを、プリンタＩＦ回路２０５内に取り込むことができる。
【００６１】
すなわち、図４に戻り、プリンタＩＦ回路２０５は、スキャナＩＦ回路２０６がメモリデバイス２０８に書き込む順番と同一順で、プリンタへ出力するデータをメモリバス２０７上から取り込むことになる（図４のステップＳ１８）。
【００６２】
一方、ＨＤＤコントローラ２０４は、メモリデバイス２０８にスキャナＩＦ回路２０６によって書き込まれたデータを読み込みＤＭＡによって取り込み、そのデータをＨＤＤ装置に書き込む（ステップＳ１９）。
【００６３】
上記の処理手順から明らかなように、メモリバス２０７上には、スキャナＩＦ回路２０６からの書き込みトランザクションと、ＨＤＤコントローラ２０４からの読み込みトランザクションが発行されるが、プリンタＩＦ回路２０５からの書き込みトランザクションは発行されない。
【００６４】
このように本実施の形態によれば、メモリバス２０７をスヌープして、メモリバス２０７上に発行されたメモリデバイス２０８への書き込みトランザクションを検知し、この書き込みトランザクションからデータを読み込みＤＭＡが取り込むようにしたので、複数のＤＭＡＣにより同一の中間バッファを介してデータをやり取りする場合において、メモリバンド幅の占有率を少なくすると同時に、高速にデータを取り込むことができる。
【００６５】
また、読み込みＤＭＡのメモリバンド幅の占有率が少なくなるように処理を行うことができるので、複合機器の制御装置といった複数処理が並列して行われる構成においては、複数処理の競合時における性能向上が可能になる。
【００６６】
さらに、読み込みＤＭＡは、メモリデバイス２０８に対してトランザクションを発行せずにメモリデバイス２０８の格納データを取り込むことができるため、複合機器全体の実効メモリバンド幅が増加し、複合機器の性能向上が可能になる。
【００６７】
また、書き込みＤＭＡＣに関しては、従来の構成から仕様変更を行うことなしに簡易に実現でき、複合機器の制御装置等における処理の自由度を維持することが可能である。
【００６８】
また、ＤＭＡＣの同時動作や同期を行う場合において、読み込み側がメモリバスを監視し、書き込み側が発行した書き込みトランザクションを読み込みデータとして取り込むことにより、書き込みＤＭＡの終了後に読み込みＤＭＡを開始させるといったＤＭＡの同期機構をＣＰＵやハードウエアシーケンサの介在なしに行うことが可能となり、さらに書き込みトランザクションがそのまま読み込みＤＭＡのデータとなるため、書き込み側と読み込み側の連携動作の高速化を実現することが可能となる。
【００６９】
なお、本実施の形態では、書き込み側と読み込み側の双方アドレスが１番地ずつインクリメントされる構成のＤＭＡＣを用いたが、書き込み側のアドレスの変化に応じて読み込み側の次読み込みアドレスを更新する構成を実現することによって、任意のアドレス変化に応じてメモリバス２０７上のトランザクションを読み込みＤＭＡで取り込むことも可能である。
【００７０】
［第２の実施の形態］
本実施の形態では、スキャンした画像に任意の画像処理を加えてプリントし、さらにプリント画像をハードディスクに保持する処理について説明する。
【００７１】
図６は、本発明の第２の実施の形態に係る複合機器の要部構成を示すブロック図である。
【００７２】
本実施の形態の複合機器は、前述の図１に示した構成において、画像処理用のメモリマスタ回路２０９を追加した構成となっている。メモリマスタ回路２０９は、読み込みＤＭＡと書き込みＤＭＡを有し、メモリデバイス２０８上に展開された画像データを読み込みＤＭＡによって取り込み、画像処理を施した画像を書き込みＤＭＡによってメモリデバイス２０８へと展開する機能を有する。また、メモリマスタ回路２０９に組み込まれる読み込みＤＭＡは、図２で示したプリンタＩＦ回路２０５に組み込まれる読み込みＤＭＡと同様の機構を有するものとする。
【００７３】
図７は、本実施の形態に係るメモリデバイス２０８のメモリ領域マップを示す図である。
【００７４】
本実施の形態に係るメモリデバイス２０８には、画像処理前のスキャン出力データを記憶するメモリ領域（Ａ）と、画像処理済みのデータを格納するメモリ領域（Ｂ）とが設けられている。本実施の形態では、領域（Ａ）にスキャナＩＦ回路２０６から入力された画像データを展開し、領域（Ｂ）にメモリマスタ回路２０９によって画像処理を施したデータを展開するように制御を行う。したがって、メモリマスタ回路２０９が読み込む画像データは領域（Ａ）に保持され、プリンタＩＦ回路２０５が読み込む画像データは領域（Ｂ）に保持される。
【００７５】
また、メモリデバイス２０８に対してスキャナＩＦ回路２０６及びメモリマスタ回路２０９が行う書き込み処理において設定される書き込みアドレスは、第１の実施の形態と同様にトランザクションごとに１番地ずつインクリメントされるものとする。
【００７６】
図８は、第２の実施の形態に係る複合機器において実行されるスキャン動作、プリント動作及びスプール動作の手順を示すフローチャートである。
【００７７】
まず、スキャナＩＦ回路２０６の書き込みＤＭＡに対してメモリ領域（Ａ）をＤＭＡの書き込み領域として指定し、メモリマスタ回路２０９の書き込みＤＭＡに対してメモリ領域（Ｂ）をＤＭＡの書き込み領域として指定する（ステップＳ５０）。また、メモリマスタ回路２０９の読み込みＤＭＡの設定として、読み込み開始アドレスレジスタ１０４と読み込み終了アドレスレジスタ１０５を領域（Ａ）の開始アドレスと終了アドレスにそれぞれ設定する。プリンタＩＦ回路２０５の読み込みＤＭＡの設定として、読み込み開始アドレスレジスタ１０４と読み込み終了アドレスレジスタ１０５を領域（Ｂ）の開始アドレスと、終了アドレスにそれぞれ設定する（ステップＳ５１）。
【００７８】
そして、メモリマスタ回路２０９及びプリンタＩＦ回路２０５の各々において、スヌープＤＭＡフラグ１０３をセットし（ステップＳ５２）、読み込みＤＭＡ開始レジスタ１０２をセットする（ステップＳ５３）。
【００７９】
上記の設定を全て行った後に、スキャナＩＦ回路２０６の書き込みＤＭＡを開始すると（ステップＳ５４）、スキャナＩＦ回路２０６は、スキャナで読み取った画像データをメモリデバイス２０８のメモリ領域（Ａ）に展開する（ステップＳ５５）。
【００８０】
このとき、メモリマスタ回路２０９内のメモリバス・スヌープ機構１０１は、スキャナＩＦ回路２０６からの領域（Ａ）への書き込みトランザクションを読み込み対象として判別して、メモリバス２０７上の書き込みデータを取り込み（ステップＳ５６）、その書き込みデータに対して画像処理を施し（ステップＳ５７）、その画像処理済みのデータを領域（Ｂ）に展開する（ステップＳ５８）。
【００８１】
一方、プリンタＩＦ回路２０５内のメモリバス・スヌープ機構１０１は、メモリマスタ回路２０９の書き込みＤＭＡからメモリバス２０７上へ発行されたメモリ領域（Ｂ）への書き込みトランザクションを読み込み対象として判別し、この時のメモリバス２０７上の書き込みデータを取り込み、プリンタへと出力する（ステップＳ５９）。
【００８２】
そして、メモリマスタ回路２０９のメモリバス・スヌープ機構１０１は、スキャナＩＦ回路２０６の書き込みアドレスがメモリ領域（Ａ）の終了アドレスに達すると読み込みアクセスを終了し、プリンタＩＦ回路２０５のメモリバス・スヌープ機構１０１は、メモリマスタ回路２０９の書き込みアドレスがメモリ領域（Ｂ）の終了アドレスに達すると読み込みアクセスを終了する。
【００８３】
その後、ＨＤＤコントローラ２０４は、メモリ領域（Ｂ）に展開されたデータをＨＤＤ装置へ転送する（ステップＳ６０）。
【００８４】
上記の処理手順から明らかなように、メモリバス２０７上には、スキャナＩＦ回路２０６による領域（Ａ）への書き込みトランザクションと、メモリマスタ回路２０９による領域（Ｂ）への書き込みトランザクションと、ＨＤＤコントローラ２０４による領域（Ｂ）への読み込みトランザクションのみが発行される。
【００８５】
なお、上述した図４、図５及び図８のフローチャートに従ったプログラムを複合機器内の記憶装置（例えばメモリデバイス２０８）に格納し動作することにより、上述の制御方法を実現させることが可能となる。
【００８６】
本発明は、上述した実施形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用してもよい。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータまたはＣＰＵやＭＰＵが記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【００８７】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１の実施の形態に係る複合機器の要部構成を示すブロック図である。
【図２】図１に示したプリンタＩＦ回路２０５の内部構成を示すブロック図である。
【図３】図２に示したメモリバス・スヌープ機構１０１の要部構成を示すブロック図である。
【図４】第１の実施の形態に係る複合機器において実行されるスキャン動作、プリント動作及びスプール動作の手順を示すフローチャートである。
【図５】プリンタＩＦ回路２０５で実行されるメモリバス・スヌープ処理（図４のステップＳ１５）を示すフローチャートである。
【図６】本発明の第２の実施の形態に係る複合機器の要部構成を示すブロック図である。
【図７】第２実施の形態に係るメモリデバイス２０８のメモリ領域マップを示す図である。
【図８】第２の実施の形態に係る複合機器において実行されるスキャン動作、プリント動作及びスプール動作の手順を示すフローチャートである。
【符号の説明】
【００９０】
１０１  メモリバス・スヌープ機構
１０２  読み込みＤＭＡ開始レジスタ
１０３  スヌープＤＭＡフラグ
１０４  読み込み開始アドレスレジスタ
１０５  読み込み終了アドレスレジスタ
１０６  次読み込みアドレスレジスタ
１０７  読み込みデータ制御部
１０８  読み込みＤＭＡ制御部
１０９  バスインターフェース
１１０  データセレクタ
１１１  プリンタ出力インターフェース
２０１  バススイッチ回路
２０２  ＣＰＵ
２０３  メモリコントローラ
２０４  ＨＤＤコントローラ
２０５  プリンタＩＦ回路
２０６  スキャナＩＦ回路
２０７  メモリバス
２０８  メモリデバイス
２０９  メモリマスタ回路
３０１，３０２  アドレス比較器
３０３  メモリバスデコーダ
【図１】
2005346581.tif 000003
【図２】
2005346581.tif 000004
【図３】
2005346581.tif 000005
【図４】
2005346581.tif 000006
【図５】
2005346581.tif 000007
【図６】
2005346581.tif 000008
【図７】
2005346581.tif 000009
【図８】
2005346581.tif 000010