(57)【要約】【課題】本発明は、外部へのデータ送出に必要なデータ転送を効率的に行うデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。【解決手段】画像処理装置１は、ＣＰＵ２が、バンドサイズレジスタ２３の保持するバンドサイズに応じたディスクリプタｄ１〜ｄｎとディスクリプタｄ１〜ｄｎのバンドサイズに分割したデータＤ１〜Ｄｎをメインメモリ４に書き込み、ＤＭＡコントローラ１３が、メインメモリ４のディスクリプタｄ１〜ｄｎを読み取って該ディスクリプタｄ１〜ｄｎに応じてメインメモリ４のデータＤ１〜Ｄｎをネットワークコントローラ１２にＤＭＡ転送し、ネットワークコントローラ１２からネットワークＮＷへデータ送出するデータ送出性能に対するＤＭＡ転送性能の適否を転送状況監視部２１で判定して、ダミーディスクリプタ生成部２２がバンドサイズレジスタ２３にＤＭＡ転送のバンドサイズを設定する。【選択図】          図１
2010198138.tif 000002
【特許請求の範囲】
【請求項１】
データ及び該データに関するディスクリプタを記憶する記憶手段と、
外部にデータを送出するデータ送出手段と、
データをＤＭＡ転送するバンドサイズを保持するバンドサイズ保持手段と、
前記バンドサイズ保持手段の保持する前記バンドサイズに応じたディスクリプタ及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを前記記憶手段に書き込むディスクリプタ設定手段と、
前記記憶手段の前記ディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して前記データ送出手段にＤＭＡ転送するＤＭＡ転送制御手段と、
前記データ送出手段による前記外部へのデータ送出性能に対する前記ＤＭＡ転送制御手段による前記分割データのＤＭＡ転送性能の適否を判定するＤＭＡ転送性能判定手段と、
所定のテストタイミングに、前記ＤＭＡ転送制御手段に前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのＤＭＡ転送を行わせて該ＤＭＡ転送における前記ＤＭＡ転送性能判定手段の判定した判定結果に基づいて前記ＤＭＡ転送制御手段によるＤＭＡ転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させるバンドサイズ設定手段と、
を備えていることを特徴とするデータ転送装置。
【請求項２】
前記ＤＭＡ転送性能判定手段は、前記ＤＭＡ転送制御手段によってＤＭＡ転送されてきた前記分割データを前記データ送出手段が所定の単位時間当たりに前記外部への送出に成功したデータ量に基づいて、前記データ送出手段による前記外部へのデータ送出性能に対する前記ＤＭＡ転送制御手段による前記分割データのＤＭＡ転送性能の適否を判定することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記バンドサイズ設定手段は、前記ＤＭＡ転送性能判定手段が前記データ送出性能と前記ＤＭＡ転送性能がつり合っていると判定した前記バンドサイズを決定して前記バンドサイズ保持手段に保持させることを特徴とする請求項１または請求項２記載のデータ転送装置。
【請求項４】
前記バンドサイズ設定手段は、前記テストタイミングに前記ＤＭＡ転送制御手段にテスト用のダミーディスクリプタを設定し、
前記ＤＭＡ転送制御手段は、前記記憶手段への前記ディスクリプタの読み込み動作を行うが、前記バンドサイズ設定手段によって設定された前記ダミーディスクリプタに基づいてＤＭＡ転送を行うことを特徴とする請求項１から請求項３のいずれかに記載のデータ転送装置。
【請求項５】
前記バンドサイズ設定手段は、操作手段によってテスト指示が行われたタイミング、前記ディスクリプタ設定手段によって前記記憶手段に前記データ及び前記ディスクリプタの設定処理環境が変化したタイミング、前記外部へのデータ転送環境が変化したタイミングのうちいずれかのタイミングを前記テストタイミングとすることを特徴とする請求項１から請求項４のいずれかに記載のデータ転送装置。
【請求項６】
データ及び該データに関するディスクリプタを記憶する記憶手段に、バンドサイズ保持手段の保持するバンドサイズに応じた前記ディスクリプタと及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを書き込むディスクリプタ設定処理ステップと、
前記記憶手段のディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して、外部にデータを送出するデータ送出手段にＤＭＡ転送するＤＭＡ転送制御処理ステップと、
前記データ送出手段による前記外部へのデータ送出性能に対する前記ＤＭＡ転送制御処理ステップにおける前記分割データのＤＭＡ転送性能の適否を判定するＤＭＡ転送性能判定処理ステップと、
所定のテストタイミングに、前記ＤＭＡ転送制御処理ステップに前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのＤＭＡ転送を行わせて該ＤＭＡ転送における前記ＤＭＡ転送性能判定処理ステップで判定された判定結果に基づいて前記ＤＭＡ転送制御処理ステップでのＤＭＡ転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させるバンドサイズ設定処理ステップと、
を有していることを特徴とするデータ転送制御方法。
【請求項７】
前記ＤＭＡ転送性能判定処理ステップは、前記データ送出手段が前記ＤＭＡ転送制御処理ステップによってＤＭＡ転送されてきた前記分割データの所定の単位時間当たりに前記外部への送出に成功したデータ量に基づいて、前記データ送出手段による前記外部へのデータ送出性能に対する前記ＤＭＡ転送制御処理ステップによる前記分割データのＤＭＡ転送性能の適否を判定することを特徴とする請求項６記載のデータ転送制御方法。
【請求項８】
前記バンドサイズ設定処理ステップは、前記テストタイミングに前記ＤＭＡ転送制御処理ステップにテスト用のダミーディスクリプタを設定し、
前記ＤＭＡ転送制御処理ステップは、前記記憶手段への前記ディスクリプタの読み込み動作を行うが、前記バンドサイズ設定処理ステップで設定された前記ダミーディスクリプタに基づいてＤＭＡ転送を行うことを特徴とする請求項６または請求項７記載のデータ転送制御方法。
【請求項９】
コンピュータに、
データ及び該データに関するディスクリプタを記憶する記憶手段に、バンドサイズ保持手段の保持するバンドサイズに応じた前記ディスクリプタと及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを書き込むディスクリプタ設定処理と、
前記記憶手段のディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して、外部にデータを送出するデータ送出手段にＤＭＡ転送するＤＭＡ転送制御処理と、
前記データ送出手段による前記外部へのデータ送出性能に対する前記ＤＭＡ転送制御処理における前記分割データのＤＭＡ転送性能の適否を判定するＤＭＡ転送性能判定処理と、
所定のテストタイミングに、前記ＤＭＡ転送制御処理に前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのＤＭＡ転送を行わせて該ＤＭＡ転送における前記ＤＭＡ転送性能判定処理で判定された判定結果に基づいて前記ＤＭＡ転送制御処理でのＤＭＡ転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させるバンドサイズ設定処理と、
を行わせることを特徴とするデータ転送制御プログラム。
【請求項１０】
請求項９記載のデータ転送制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、ネットワークや外部デバイス等の外部へのデータ送出に必要なＤＭＡデータ転送を効率的に行うデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ＬＡＮ（Local Area Network）、インターネット等のネットワークとの間でデータ送受信を行ったり、ＵＳＢデバイス等との間でデータ送受信を行うコンピュータ、複合装置、複写装置、スキャナ装置等の画像処理装置は、ネットワーク等の外部と接続される外部デバイス、メインＣＰＵ（Central Processing Unit ）、メインメモリ及びメインメモリとの間でデータ転送する内部デバイス（ハードディスク、スキャナ部、プロッタ部等）を備えており、例えば、ネットワークデバイスは、ネットワークとの間でデータ転送処理を行うネットワークコントローラ、バスを介してメインメモリに接続するバスインターフェイス及びメインメモリとの間でデータをＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラ（以下、ＤＭＡＣという。）等を備えている。
【０００３】
画像処理装置は、ネットワークに対してデータ転送を行う場合、内部デバイスから転送対象のデータをメインメモリにＤＭＡ転送によって書き込む。ネットワークデバイスは、そのＤＭＡＣが、バスインターフェイスを介してメインメモリから転送対象データをＤＭＡ転送によって読み出してネットワークコントローラに渡し、ネットワークコントローラがＤＭＡＣから渡されたデータをネットワークに送出する（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、メインメモリからネットワークデバイスへのデータのＤＭＡ転送においては、所定のひとかたまりのデータを複数のバンドに分割してメインメモリに書き込んで、該分割データ毎にＤＭＡ転送され、データを分割するバンドサイズを大きくしてバンド分割数を減らすと、ＤＭＡ転送の転送性能は向上するが、１回のＤＭＡ転送で転送されるデータ量が大きくなるため、ＤＭＡ転送を遅滞なく連続して行うためには、メインメモリのメモリ使用領域が増大する。逆に、ＤＭＡ転送においては、バンドサイズを小さくしてバンド分割数を増やすと、ＤＭＡ転送の転送性能は低下するが、１回のＤＭＡ転送で転送されるデータ量が小さくなるため、ＤＭＡ転送を遅滞なく連続して行うために必要なメインメモリのメモリ使用領域が減少する。一方、ネットワークデバイスが、ネットワークとの間でデータ送出するレートは、ワイヤスピードによりその最大値が決定される。
【０００５】
そして、従来から、メインメモリからネットワークデバイスへのデータのＤＭＡ転送における技術の向上が要望されている。
【０００６】
そこで、本発明は、ネットワークや外部デバイス等の外部へのデータ送出における記憶手段の利用効率を向上させつつ、外部へのデータ送出を向上させるＤＭＡ転送の最適化を図ることのできるデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、上記目的を達成するために、データ及び該データに関するディスクリプタを記憶する記憶手段に、バンドサイズ保持手段の保持するバンドサイズに応じた前記ディスクリプタと及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを書き込むディスクリプタ設定を行い、前記記憶手段のディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して、データ送出手段にＤＭＡ転送し、該データ送出手段による外部へのデータ送出性能に対する前記ＤＭＡ転送における前記分割データのＤＭＡ転送性能の適否を判定するデータ転送判定を行い、所定のテストタイミングに、前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのＤＭＡ転送を行って、該ＤＭＡ転送における前記ＤＭＡ転送性能判定で判定された判定結果に基づいて前記ＤＭＡ転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させることを特徴としている。
【０００８】
また、本発明は、前記ＤＭＡ転送性能判定において、前記ＤＭＡ転送されてきた前記分割データを前記データ送出手段が所定の単位時間当たりに前記外部へのデータ送出に成功したデータ量に基づいて、前記データ送出手段による前記外部へのデータ送出性能に対する前記分割データのＤＭＡ転送性能の適否を判定することを特徴としてもよい。
【０００９】
さらに、本発明は、前記バンドサイズ設定において、前記テストタイミングに前記ＤＭＡ転送にテスト用のダミーディスクリプタを設定し、該テストタイミングでのＤＭＡ転送において、前記記憶手段への前記ディスクリプタの読み込み動作を行うが、設定された該ダミーディスクリプタに基づいてＤＭＡ転送を行うことを特徴としてもよい。
【発明の効果】
【００１０】
本発明によれば、ネットワークや外部デバイス等の外部へのデータ送出性能に応じたＤＭＡ転送性能を確保して、記憶手段の利用効率を向上させることができるとともに、ＤＭＡ転送性能を最適化することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を適用した画像処理装置の要部ブロック構成図。
【図２】転送状況監視部による転送レート監視処理の説明図。
【図３】ディスクリプタのフォーマット例を示す図。
【図４】２．５Ｋバイトのデータを３つに分割して転送する場合のＤＭＡ転送データとディスクリプタの一例を示す図。
【図５】２．５Ｋバイトのデータを３つに分割して転送するＤＭＡ転送処理を示すフローチャート。
【図６】２．５Ｋ倍とのデータを２つに分割して転送する場合のＤＭＡ転送データとディスクリプタの一例を示す図。
【図７】２．５Ｋバイトのデータを２つに分割して転送するＤＭＡ転送処理を示すフローチャート。
【図８】内部構成が変更された画像処理部の要部ブロック構成図。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１３】
図１〜図８は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を示す図であり、図１は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を適用した画像処理装置１の要部ブロック構成図である。
【００１４】
図１において、画像処理装置（データ転送装置）１は、ＣＰＵ（Central Processing Unit ）２、メモリコントローラ３、メインメモリ４及びネットワークデバイス５等を備えており、メモリコントローラ３とネットワークデバイス５とは、ＰＣＩｅバス６によって接続されている。このＰＣＩｅ（（Peripheral Component Interconnect） Express）バス６は、要求と応答が分離され、応答を待たずに次の要求を発行できる高速のスプリットトランザクションのバスである。
【００１５】
画像処理装置１は、複合装置、複写装置、スキャナ装置であり、図示しないが、スキャナ部、ハードディスク、操作表示部等を備えている。画像処理装置１は、スキャナ部やネットワークデバイス５からの画像データをハードディスクに蓄積し、ハードディスクの画像データをメインメモリ４に転送して一旦メインメモリ４に保存した後、ネットワークデバイス５からネットワークＮＷ上の送信先装置（外部）に送信する。
【００１６】
ネットワークデバイス５は、ＰＨＹ（物理メディアインタフェース）１１、ネットワークコントローラ１２、ＤＭＡコントローラ１３、アービタ１４、ＰＣＩｅエンドポイント１５及びＤＭＡ転送設定部２０等を備えており、ＤＭＡ転送設定部２０は、転送状況監視部２１、ダミーディスクリプタ生成部２２及びバンドサイズレジスタ２３等を備えている。
【００１７】
ＰＨＹ１１には、ＬＡＮ等のネットワークＮＷが接続されており、ＰＨＹ１１は、ネットワークＮＷを介して外部装置と通信を行う。ＰＨＹ１１は、ネットワークコントローラ１２との間で、信号及びデータの授受を行う。ネットワークコントローラ（データ送出手段）１２は、ＤＭＡコントローラ１３との間でデータの授受を行い、ＰＨＹ１１を介してネットワークＮＷを使用したネットワーク通信を行って、ＤＭＡコントローラ１３から受け取ったデータのネットワークＮＷへのデータ転送（データ送出）及びネットワークＮＷから受信したデータのＤＭＡコントローラ１３への出力を行う。
【００１８】
ＤＭＡコントローラ（ＤＭＡ転送制御手段）１３は、メインメモリ（記憶手段）４上のディスクリプタｄ１〜ｄＮをリードして、ディスクリプタｄ１〜ｄｎに基づいてメインメモリ４からデータＤ１〜Ｄｎをリードし（読み出し）、また、メインメモリ４にデータをライトする（書き込む）。
【００１９】
アービタ１４は、ネットワークデバイス５によるＰＣＩｅバス６に対するＤＭＡアクセスを調停し、ＰＣＩｅエンドポイント１５は、ネットワークデバイス５のＰＣＩｅバス６とのインターフェイスである。
【００２０】
転送状況監視部（ＤＭＡ転送性能判定手段）２１は、ＰＨＹ１１とネットワークコントローラ１２との間のデータ転送状況を監視し、例えば、８ｂｉｔ×１２５ＭＨｚ（Ｍａｘ  １Ｇｂｐｓ）のバス上で、ＰＨＹ１１からは、Ｒｅｑ信号、ネットワークコントローラ１２からは、Ａｃｋ信号が出力されて、Ｒｅｑ信号、Ａｃｋ信号が共にアサート状態であるときに、データが転送される。転送状況監視部２１は、このバス上の転送レートを監視し、転送レートの監視方法としては、例えば、図２に示すように行う。すなわち、Ｒｅｑ信号は、ＰＨＹ１１から出力されるリクエスト信号、Ａｃｋ信号は、ネットワークコントローラ１２から出力されるアクセプト信号であり、量信号がハイ（Ｈｉ）のときに、ネットワークコントローラ１２からＰＨＹ１１に対してデータ（Ｄａｔａ（８ｂｉｔ））が転送される。転送状況監視部２１は、サイクルカウンタを備え、所定のサイクル数、図２のタイミングチャート上では、サイクルカウンタの値Ｎの間に、何サイクルデータ転送が成立したかをカウントする。図２では、サイクルカウンタが０〜Ｎの間に、０〜（Ｍ−２）サイクルのデータＤ０〜ＤM-2が転送されており、この場合、転送レートは、Ｍ−２／Ｎ×１Ｇ［ｂｐｓ］となる。すなわち、転送状況監視部２１は、ＤＭＡコントローラ１３によってＤＭＡ転送されてきた分割データＤ１〜Ｄｎをネットワークコントローラ１２が所定の単位時間（例えば、サイクルカウンタが０〜Ｎの間）当たりに外部であるＰＨＹ１１を介してネットワークＮＷへ送出するデータ送出に成功したデータ量に基づいて、ネットワークコントローラ１３による外部へのデータ送出性能に対するＤＭＡコントローラ１３による分割データＤ１〜ＤｎのＤＭＡ転送性能の適否を判定する。
【００２１】
そして、転送状況監視部２１は、上記サイクルカウンタのカウント結果から、転送状況を次の３つの転送状況パターンに分類する。
【００２２】
転送状況パターンＴＰ１：ＤＭＡ転送性能に対してネットワーク転送性能の方が早いパターン（ＤＭＡ転送性能＜ネットワーク転送性能）
転送状況パターンＴＰ２：ネットワーク転送性能に対してＤＭＡ転送性能の方が早いパターン（ＤＭＡ転送性能＞ネットワーク転送性能）
転送状況パターンＴＰ３：ネットワーク転送性能とＤＭＡ転送性能がほぼ同等のパターン（ＤＭＡ転送性能≒ネットワーク転送性能）
ダミーディスクリプタ生成部（バンドサイズ設定手段）２２は、テストモード時に、ＰＨＹ１１とネットワークＮＷローラ１２との間の転送レートを観測するテストＤＭＡ転送を行うためのテスト用ディスクリプタ情報をＤＭＡコントローラ１３に通知し、テストモード時に、転送状況監視部２１の監視結果の転送状況パターンＴＰ１〜ＴＰ３に対して最適なディスクリプタのパラメータをＤＭＡコントローラ１３に渡してテストＤＭＡ転送を実施させる。
【００２３】
バンドサイズレジスタ２３は、ダミーディスクリプタ生成部２２がテストＤＭＡ転送用に生成したテスト用ディスクリプタ、特に、バンドサイズ情報を保存するレジスタであり、ＣＰＵ２からアクセス可能なレジスタである。
【００２４】
メインメモリ４は、メモリコントローラ３を経由してＰＣＩｅバス６に接続されているとともに、ＣＰＵ２に接続されており、ＲＡＭ（Random Access Memory）等で構成されている。メインメモリ４は、ＣＰＵ２の制御下で、処理対象の画像データ等のデータ、プログラム及びディスクリプタ等を格納し、このプログラムとしては、画像処理装置１としての基本プログラム及び本発明のデータ転送を効率的に行うデータ転送制御方法を実行するデータ転送制御プログラムを格納する。
【００２５】
なお、画像処理装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Video Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んでメインメモリ４やネットワークデバイス５に導入することで、後述するデータ転送を効率的に行うデータ転送制御方法を実行するデータ転送制御装置を備えた画像処理装置として構築されている。このデータ転送制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００２６】
そして、メインメモリ４は、処理対象、特に、ネットワーク送信を行う転送対象のデータＤ１〜Ｄｎをデータ領域に記憶し、データＤ１〜Ｄｎに対応するディスクリプタｄ１〜ｄｎをディスクリプタ領域に記憶する。このディスクリプタｄ１〜ｄｎは、ＣＰＵ２によってライト（書き込み）が行われ、ＤＭＡコントローラ１３によってリード（読み出し）及びライト（書き戻し）が行われることで、データＤ１〜ＤｎのＤＭＡ転送が行われる。
【００２７】
すなわち、ＤＭＡ転送は、ディスクリプタ方式で制御され、ディスクリプタｄ１〜ｄｎは、例えば、図３に示すようにフォーマット構成されていて、３２ｂｉｔｘ４のデータサイズで構成されている。ディスクリプタｄ１〜ｄｎは、次のディスクリプタのアドレスが登録される次ディスクリプタポインタ、ＤＭＡ転送のデータのスタートアドレスが登録されるＤＭＡスタードアドレス、該ＤＭＡ転送対象のデータのサイズが登録されるデータサイズ等で構成され、次ディスクリプタポインタに「０」が登録されていると、次のディスクリプタが無く、そのディスクリプタによるＤＭＡ転送が最後のＤデータのＭＡ転送であることを示している。
【００２８】
次に、本実施例の作用を説明する。本実施例の画像処理装置１は、ネットワークＮＷにデータ転送する際に、ネットワークＮＷへのデータ転送状況をテスト転送することで取得して、取得したデータ転送状況からメインメモリ４からのＤＭＡ転送の転送サイズを調整して、効率的でメインメモリ４の使用容量の少ないネットワーク送信及びＤＭＡデータ転送を行う。
【００２９】
画像処理装置１は、ネットワークＮＷへのデータ転送を行う場合、ハードディスク等から転送対象のデータをバンドサイズに分割した分割データをデータ単位としてＰＣＩｅバス６を介してＤＭＡ転送によって、一旦メインメモリ４に転送して保管し、ネットワークデバイス５のＤＭＡコントローラ１３が、このメインメモリ４の分割データである転送対象データＤ１〜ＤｎをＣＰＵ２によって書き込まれたメインメモリ４のディスクリプタｄ１〜ｄｎを読み取り、該ディスクリプタｄ１〜ｄｎに基づいてメインメモリ４からネットワークコントローラ１２に転送対象データＤ１〜ＤｎをＤＭＡ転送する。
【００３０】
いま、２．５ＫＢｙｔｅ（キロバイト）のデータを、複数のバンドに分割してネットワークデバイス５にＤＭＡ転送する場合について、図４〜図７に基づいて説明する。
【００３１】
まず、２．５ＫＢｙｔｅのデータを、１ＫＢｙｔｅ、１ＫＢｙｔｅ、５１２Ｂｙｔｅの３つのバンドデータに分割してネットワークデバイス５に転送する場合について、図４及び図５に基づいて説明する。ＤＭＡコントローラ１３は、図４及び図５に示すように、起動後に、まず、ディスクリプタｄ１を読み込み（ステップＳ１０１）、ディスクリプタｄ１に記載されているデータＤ１のスタートアドレス、データサイズ（１ＫＢｙｔｅ）から、データＤ１のＤＭＡ転送を実施する（ステップＳ１０２）。ＤＭＡコントローラ１３は、データＤ１のＤＭＡ転送が終了すると、ディスクリプタｄ２を読み込み（ステップＳ１０３）、ディスクリプタｄ２に記載されているデータＤ２のスタートアドレス、データサイズ（１ＫＢｙｔｅ）から、データＤ２のＤＭＡ転送を実施する（ステップＳ１０４）。ＤＭＡコントローラ１３は、データＤ２のＤＭＡ転送が終了すると、ディスクリプタｄ３を読み込み（ステップＳ１０５）、ディスクリプタｄ３に記載されているデータＤ３のスタートアドレス、データサイズ（５１２Ｂｙｔｅ）から、データＤ３のＤＭＡ転送を実施して、終了する（ステップＳ１０６）。
【００３２】
同様に、２．５ＫＢｙｔｅのデータを、２ＫＢｙｔｅと５１２Ｂｙｔｅの２つのバンドに分割して転送する場合について、図６及び図７に基づいて説明する。ＤＭＡコントローラ１３は、図６及び図７に示すように、起動後に、まず、ディスクリプタｄ１を読み込み（ステップＳ２０１）、ディスクリプタｄ１に記載されているデータＤ１のスタートアドレス、データサイズ（２ＫＢｙｔｅ）から、データＤ１のＤＭＡ転送を実施する（ステップＳ２０２）。ＤＭＡコントローラ１３は、データＤ１のＤＭＡ転送が終了すると、ディスクリプタｄ２を読み込み（ステップＳ２０３）、ディスクリプタｄ２に記載されているデータＤ２のスタートアドレス、データサイズ（５１２Ｂｙｔｅ）から、データＤ２のＤＭＡ転送を実施して、データＤ２のＤＭＡ転送が終了すると、ＤＭＡ転送処理を終了する（ステップＳ２０４）。
【００３３】
図４及び図５と図６及び図７を比較して分かるように、２．５ＫＢｙｔｅという同じデータ量のデータを、複数のバンドに分割してＤＭＡ転送する場合、２つのバンド（２ＫＢｙｔｅと５１２Ｂｙｔｅ）に分割して転送するＤＭＡ転送と（図６、図７）、３つのバンド（１ＫＢｙｔｅ、１ＫＢｙｔｅ、５１２Ｂｙｔｅ）に分割して転送するＤＭＡ転送とを比較して、２バンドに分割して転送するときの方が、ディスクリプタへのアクセス回数が１回少なく、２回のアクセスで全てのデータの転送が完了している。
【００３４】
そして、ＤＭＡ転送においては、メインメモリ４のディスクリプタｄ１〜ｄｎへのアクセス中は、ＤＭＡ転送が停止することから、１つのまとまったデータを複数のバンドに分割してＤＭＡ転送する場合、バンド分割数をできるだけ少なく、すなわち、１つのバンドのデータサイズを大きくすると、ＤＭＡ転送性能が向上する。
【００３５】
ところが、バンド分割数を少なくすると、ＤＭＡ転送で使用するメインメモリ４のメモリ領域が大きくなるというデメリットもある。
【００３６】
例えば、いま、所定の文書の１ページの画像データを１つのバンドデータとしてＤＭＡ転送すると、メインメモリ４上に１ページ分の画像データを記憶する領域が必要となるが、この１ページの画像データを複数のバンドに分割してＤＭＡ転送する場合は、メインメモリ４のメモリ領域へのバンドデータの補充と、ＤＭＡ転送のバンドデータの読み出しをトグルで制御することで、メインメモリ４のメモリ使用領域が１つのバンドデータとしてＤＭＡ転送する場合よりも少なくて済む。
【００３７】
一方、ネットワークデバイス５からデータをネットワークＮＷに送出できるデータ送出レートは、ネットワークＮＷのワイヤスピードによって規制される。
【００３８】
そこで、本実施例の画像処理装置１のＤＭＡ転送設定部２０は、ダミーディスクリプタ生成部２２に入力されているテストモードオン／オフ信号がオンにされると、ダミーディスクリプタ生成部２２がオンのテストモード信号をＤＭＡコントローラ１３に出力して、ＤＭＡコントローラ１３が、テストモードを実行し、転送状況監視部２１が、ＰＨＹ１１とネットワークコントローラ１２間の転送状況が、上記３つの転送状況パターンＴＰ１〜ＴＰ３のどの状態に当てはまるかを判断して、ネットワークＮＷへのデータ送出量とＤＭＡ転送量が均衡する転送状況パターンＴＰ３を実現できるようなＤＭＡ転送性能の制御パラメータ、すなわち、分割バンド時の最適なバンドサイズ情報をバンドサイズレジスタ２３に記憶して、ユーザに通知する。ユーザは、ネットワークＮＷのワイヤスピードの高い利用効率を維持したまま、最も小さいＤＭＡアクセスのバンドサイズを知ることができる。
【００３９】
すなわち、画像処理装置１は、テストモードにおいて、まず、ネットワークコントローラ１２からＰＨＹ１１を介してネットワークＮＷに１バンド（例えば、１ＫＢｙｔｅ）のデータ転送を行う場合のデータ転送レート状況を確認する。このとき、ＤＭＡコントローラ１３は、上記通常のＤＭＡ転送処理と同様に、メインメモリ４上にあるディスクリプタ情報の読み込み（メモリリード）を行う。ＤＭＡコントローラ１３は、メインメモリ４からメモリリードデータが返ってくると、メモリリードデータのデータは参考にせず、ダミーディスクリプタ生成部２２から送られてくるダミーディスクリプタによるバンドサイズ（例えば、１ＫＢｙｔｅ）、適当なスタートアドレス信号を参考にして、ＤＭＡ転送を開始する。
【００４０】
すなわち、ＤＭＡコントローラ１３は、テストモードにおいては、ダミーディスクリプタ生成部２２から送られてくるダミーディスクリプタ（パラメータ情報）を参考にすることで、テスト用の複数のディスクリプタをメインメモリ４に記憶することなく、ＤＭＡ転送時にメインメモリ４の読み取り（リード）にかかるレイテンシーによるＤＭＡ転送停止時間を観測することができる。
【００４１】
そして、ＤＭＡコントローラ１３は、上記処理を繰り返し実施して、このテストモード時のＤＭＡ転送中に、転送状況監視部２１は、ＰＨＹ１１とネットワークコントローラ１２間のデータ転送状況が、上記転送状況パターンＴＰ１〜ＴＰ３のいずれに該当する確認して、確認結果をダミーディスクリプタ生成部２２に通知する。ダミーディスクリプタ生成部２２は、転送状況監視部２１の監視結果に基づいてＤＭＡコントローラ１３に次のテストで実行させるバンドサイズを通知し、また、該バンドサイズを最適バンドサイズとしてバンドサイズレジスタ２３に格納する。
【００４２】
例えば、ダミーディスクリプタ生成部２２は、転送状況監視部２１の監視したＰＨＹ１１とネットワークコントローラ１２間のデータ転送状況が転送状況パターンＴＰ１であった場合、ＤＭＡ転送性能がネットワーク転送性能に対して低く、バンドサイズを大きくする必要があると判断して、現在のテストモードのバンドサイズよりも大きなバンドサイズをＤＭＡコントローラ１３に通知し、ＤＭＡコントローラ１３は、新たに通知されたバンドサイズでＤＭＡ転送を実施する。逆に、ダミーディスクリプタ生成部２２は、転送状況監視部２１の監視したＰＨＹ１１とネットワークコントローラ１２間のデータ転送状況が転送状況パターンＴＰ２であった場合、ＤＭＡ転送性能がネットワークの転送性能に対して十分足りていると判断し、ＤＭＡコントローラ１３に、現在のテストモードのバンドサイズよりも小さなバンドサイズ、例えば、１ＫＢｙｔｅより小さなバンドサイズを通知する。ネットワークデバイス５は、上記テストモード処理を繰り返し行って、転送状況パターンＴＰ３の転送状況、すなわち、ネットワーク速度とＤＭＡ転送性能がほぼ同等な転送状況に転送速度を設定すると、そのバンドサイズを、バンドサイズレジスタ２３に格納し、ユーザに通知する。ＣＰＵ２は、このバンドサイズレジスタ２３のバンドサイズに基づいてメインメモリ４へのディスクリプタｄ１〜ｄｎの設定と該ディスクリプタｄ１〜ｄｎのバンドサイズのデータＤ１〜Ｄｎの書き込みを行う。
【００４３】
そして、画像処理装置１は、ＤＭＡ転送設定部２０が、上記テストモードによるデータ転送サイズの設定を、ユーザによる操作またはＣＰＵ２等による自動判断によって適宜のタイミングに実行する。例えば、ネットワークＮＷが、１０Ｂａｓｅ、１００Ｂａｓｅ、ＧＢａｓｅ等のＰＨＹ１１側の接続状況が変更された場合、画像処理装置１内部のシステム構成が変更された場合、他のＩ／Ｏデバイスの接続状況が変更された場合等に実行する。
【００４４】
例えば、ネットワークデバイスが、従来、１００Ｂａｓｅのネットワーク環境に接続されていた場合に、ＧＢａｓｅのネットワーク環境に接続が切り換えられた場合についてテストモードを実行する。すなわち、１００Ｂａｓｅのネットワーク環境に接続されていて、ＰＨＹ１１とネットワークコントローラ１２間の転送状況が、転送状況パターンＴＰ３で、ネットワーク転送性能とＤＭＡ転送性能がほぼ同等にＤＭＡコントローラ１３のバンドサイズが調整されているときに、ネットワークデバイスが、ＧＢａｓｅのネットワーク環境に接続しなおされと、ネットワークデバイス５は、テストモードに入り、ＤＭＡコントローラ１３のＤＭＡ転送におけるバンドサイズの再設定を実施する。
【００４５】
また、例えば、ＤＭＡ転送設定部２０は、画像処理装置１の装置内部のシステム構成が変更される場合にも、ＤＭＡ転送の転送サイズの設定を実行する。例えば、図８に示すように、画像処理装置３０が、ＰＣＩｅバス６に画像処理アクセラレータ３１がオプションユニットとして接続された場合にも、ＤＭＡ転送サイズ設定処理を行う。なお、図８において、図１と同様の構成部分には、同一の符号を付して、その説明を省略する。
【００４６】
図８において、画像処理装置３０は、ＰＣＩｅバス６に、オプションユニットの画像処理アクセラレータ３１が接続されており、画像処理アクセラレータ３１は、ＣＰＵ２の制御下で、スキャナ部で読み込んだ画像データやネットワークＮＷを介して受信した画像データを、ＪＰＥＧ（Joint Photographic Experts Group）変換等の画像処理を行う。画像処理装置３０は、このような画像処理アクセラレータ３１を搭載することで、ＪＰＥＧ変換等の画像処理を、画像処理アクセラレータ３１で実施し、ネットワークデバイス３２によってネットワークＮＷへ送信することが行われる。画像処理アクセラレータ３１は、メインメモリ４に記憶される画像データを変換処理し、メインメモリ４に出力結果を記憶する。ネットワークデバイス３２のネットワークモジュール３３は、上記図１に示したＤＭＡコントローラ１３、ネットワークコントローラ１２及びＰＨＹ１１等を搭載しており、画像処理アクセラレータ３１の出力結果を、メインメモリ４からＤＭＡ転送で受け取ってネットワークＮＷに送信する。なお、図８の説明においては、ネットワークモジュール３３の搭載するＤＭＡコントローラ１３、ネットワークコントローラ１２及びＰＨＹ１１については、図示しないが、図１と同じ符号を用いて説明する。
【００４７】
画像処理装置３０は、画像処理アクセラレータ３１とメインメモリ４が同時動作する場合、ＰＣＩｅバス６が混んで、双方のメモリリードレイテンシーが増え、ネットワーク送信の転送レートが低下する。
【００４８】
そこで、このような状況において、ＤＭＡ転送設定部２０は、ネットワークモジュール３３のＤＭＡコントローラ１３をテストモードに設定し、バンドサイズの調整を実施する。このテストモードでのバンドサイズの調整においては、画像処理アクセラレータ３１は、メモリリード、メモリライトのスルー動作を実施し、意図的にＰＣＩｅバス６を混雑させた状態でバンドサイズの調整を行う。
【００４９】
また、ＤＭＡ転送のテストモードの実施は、図８に示すように、ネットワークデバイス３２がＵＳＢモジュール３４を搭載している場合、接続されるＵＳＢデバイスの規格によって転送性能が変化するため、ＵＳＢモジュール３４に接続されるＵＳＢデバイスが変更された場合にも実施してもよい。このＵＳＢモジュール３４は、ＤＭＡコントローラを搭載しており、メモリコントローラ３との間でデータのＤＭＡ転送を行う。そして、ＵＳＢモジュール３４に接続されるＵＳＢデバイスがＵＳＢ１．０規格であるか、２．０規格であるかによって、ＵＳＢモジュール３４の転送性能が変化する。そこで、ＤＭＡ転送設定部２０は、ＵＳＢモジュール３４に接続されるＵＳＢデバイスが変更されると、ＵＳＢモジュール３４の搭載するＤＭＡコントローラによるＤＭＡ転送のテストモードを実施し、バンドサイズの調整を行う。
【００５０】
このように、本実施例の画像処理装置１は、ＣＰＵ２が、データ及び該データに関するディスクリプタを記憶するメインメモリ４に、バンドサイズレジスタ２３の保持するバンドサイズに応じたディスクリプタｄ１〜ｄｎと及び所定のブロック単位のデータを該ディスクリプタｄ１〜ｄｎのバンドサイズに分割した分割データであるデータＤ１〜Ｄｎを書き込むディスクリプタ設定を行い、ＤＭＡコントローラ１３が、メインメモリ４のディスクリプタｄ１〜ｄｎを読み取って該ディスクリプタｄ１〜ｄｎに対応するデータＤ１〜Ｄｎをメインメモリ４から読み出して、ネットワークＮＷ等の外部にデータを送出するネットワークコントローラ１２にＤＭＡ転送し、ネットワークコントローラ１２によるネットワークＮＷへのデータ送出性能に対するＤＭＡ転送におけるデータＤ１〜ＤｎのＤＭＡ転送性能の適否を転送状況監視部２１が判定し、所定のテストタイミングに、バンドサイズレジスタ２３の保持するバンドサイズでデータＤ１〜ＤｎのＤＭＡ転送を行って、該ＤＭＡ転送における転送状況監視部２１で判定された判定結果に基づいてＤＭＡ転送のバンドサイズをダミーディスクリプタ生成部２２が決定してバンドサイズレジスタ２３に保持させている。
【００５１】
したがって、ネットワークＮＷ等の外部へのデータ送出においてネットワークＮＷ等の外部へのデータ送出性能を向上させることができるとともに、ＤＭＡ転送性能の最も低い（高転送レートの最も小さい）ＤＭＡ転送のバンドメモリサイズ（バンドサイズ）を設定することができ、メインメモリ４のデータ使用領域を削減してメインメモリ４の利用効率を向上させることができる。
【００５２】
また、本実施例の画像処理装置１は、転送状況監視部２１が、ＤＭＡコントローラ１３によってＤＭＡ転送されてきたデータＤ１〜Ｄｎをネットワークコントローラ１２が所定の単位時間当たりにＰＨＹ１１を介してネットワークＮＷへの送出に成功したデータ量に基づいて、ネットワークコントローラ１２によるネットワークＮＷへのデータ送出性能に対するＤＭＡコントローラ１３によるデータＤ１〜ＤｎのＤＭＡ転送性能の適否を判定している。
【００５３】
したがって、簡単な構成で適切かつ正確に、ネットワークコントローラ１２によるネットワークＮＷへのデータ送出性能に対するＤＭＡコントローラ１３によるデータＤ１〜ＤｎのＤＭＡ転送性能の適否を判定することができる。
【００５４】
さらに、本実施例の画像処理装置１は、転送状況監視部２１が、ネットワークコントローラ１２によるネットワークＮＷへのデータ送出性能とＤＭＡコントローラ１３によるデータＤ１〜ＤｎのＤＭＡ転送性能がつり合っていると判定すると、ダミーディスクリプタ生成部２２が該バンドサイズを最適なバンドサイズとしてバンドサイズレジスタ２３に保持させている。
【００５５】
したがって、ネットワークＮＷ等の外部へのデータ送出性能を向上させることができるとともに、ＤＭＡ転送性能を該データ送出性能により一層最適なものとすることができる。
【００５６】
また、本実施例の画像処理装置１は、ダミーディスクリプタ生成部２２が、テストタイミングにＤＭＡコントローラ１３にテスト用のダミーディスクリプタを設定し、ＤＭＡコントローラ１３、メインメモリ４へのディスクリプタの読み込み動作を行うが、ダミーディスクリプタ生成部２２によって設定されたダミーディスクリプタに基づいてＤＭＡ転送を行っている。
【００５７】
したがって、テストモードでのＤＭＡ転送を自動的にかつ適切に行って、ネットワークＮＷ等の外部へのデータ送出性能を向上させることができるとともに、ＤＭＡ転送性能を該データ送出性能により一層最適なものとすることができる。
【００５８】
さらに、本実施例の画像処理装置１は、操作部等によってテスト指示が行われたタイミング、ＣＰＵ２によってメインメモリ４にデータＤ１〜Ｄｎ及びディスクリプタｄ１〜ｄｎの設定処理環境が変化したタイミング、外部へのデータ転送環境が変化したタイミングのうちいずれかのタイミングをテストタイミングとして、テストモードの処理を行っている。
【００５９】
したがって、ユーザの意図するタイミングやネットワークコントローラ１２によるネットワークＮＷへのデータ送出性能に対するＤＭＡコントローラ１３によるデータＤ１〜ＤｎのＤＭＡ転送性能が変化するタイミング及びメインメモリ４へのデータ設定処理速度に変化が生じるタイミング等に適切にＤＭＡ転送性能を設定することができる。
【００６０】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６１】
本発明は、メモリからＤＭＡ転送で受け取ったデータを外部に出力する複写装置、複合装置、ファクシミリ装置、スキャナ装置、コンピュータ等の画像処理装置に利用することができる。
【符号の説明】
【００６２】
１  画像処理装置
２  ＣＰＵ
３  メモリコントローラ
４  メインメモリ
５  ネットワークデバイス
６  ＰＣＩｅバス
１１  ＰＨＹ
１２  ネットワークコントローラ
１３  ＤＭＡコントローラ
１４  アービタ
１５  ＰＣＩｅエンドポイント
２０  ＤＭＡ転送設定部
２１  転送状況監視部
２２  ダミーディスクリプタ生成部
２３  バンドサイズレジスタ
３０  画像処理装置
３１  画像処理アクセラレータ
３２  ネットワークデバイス
３３  ネットワークモジュール
３４  ＵＳＢモジュール
【先行技術文献】
【特許文献】
【００６３】
【特許文献１】特開２００２−１８５４６６号公報
【図１】
2010198138.tif 000003
【図２】
2010198138.tif 000004
【図３】
2010198138.tif 000005
【図４】
2010198138.tif 000006
【図５】
2010198138.tif 000007
【図６】
2010198138.tif 000008
【図７】
2010198138.tif 000009
【図８】
2010198138.tif 000010