JP2010198138A - データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 - Google Patents

データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 Download PDF

Info

Publication number
JP2010198138A
JP2010198138A JP2009039952A JP2009039952A JP2010198138A JP 2010198138 A JP2010198138 A JP 2010198138A JP 2009039952 A JP2009039952 A JP 2009039952A JP 2009039952 A JP2009039952 A JP 2009039952A JP 2010198138 A JP2010198138 A JP 2010198138A
Authority
JP
Japan
Prior art keywords
data
dma transfer
band size
descriptor
dma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009039952A
Other languages
English (en)
Inventor
Hideomi Fujimoto
英臣 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009039952A priority Critical patent/JP2010198138A/ja
Publication of JP2010198138A publication Critical patent/JP2010198138A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Image Processing (AREA)

Abstract

【課題】本発明は、外部へのデータ送出に必要なデータ転送を効率的に行うデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
【解決手段】画像処理装置1は、CPU2が、バンドサイズレジスタ23の保持するバンドサイズに応じたディスクリプタd1〜dnとディスクリプタd1〜dnのバンドサイズに分割したデータD1〜Dnをメインメモリ4に書き込み、DMAコントローラ13が、メインメモリ4のディスクリプタd1〜dnを読み取って該ディスクリプタd1〜dnに応じてメインメモリ4のデータD1〜Dnをネットワークコントローラ12にDMA転送し、ネットワークコントローラ12からネットワークNWへデータ送出するデータ送出性能に対するDMA転送性能の適否を転送状況監視部21で判定して、ダミーディスクリプタ生成部22がバンドサイズレジスタ23にDMA転送のバンドサイズを設定する。
【選択図】 図1

Description

本発明は、データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、ネットワークや外部デバイス等の外部へのデータ送出に必要なDMAデータ転送を効率的に行うデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
LAN(Local Area Network)、インターネット等のネットワークとの間でデータ送受信を行ったり、USBデバイス等との間でデータ送受信を行うコンピュータ、複合装置、複写装置、スキャナ装置等の画像処理装置は、ネットワーク等の外部と接続される外部デバイス、メインCPU(Central Processing Unit )、メインメモリ及びメインメモリとの間でデータ転送する内部デバイス(ハードディスク、スキャナ部、プロッタ部等)を備えており、例えば、ネットワークデバイスは、ネットワークとの間でデータ転送処理を行うネットワークコントローラ、バスを介してメインメモリに接続するバスインターフェイス及びメインメモリとの間でデータをDMA(Direct Memory Access)転送するDMAコントローラ(以下、DMACという。)等を備えている。
画像処理装置は、ネットワークに対してデータ転送を行う場合、内部デバイスから転送対象のデータをメインメモリにDMA転送によって書き込む。ネットワークデバイスは、そのDMACが、バスインターフェイスを介してメインメモリから転送対象データをDMA転送によって読み出してネットワークコントローラに渡し、ネットワークコントローラがDMACから渡されたデータをネットワークに送出する(特許文献1参照)。
しかしながら、メインメモリからネットワークデバイスへのデータのDMA転送においては、所定のひとかたまりのデータを複数のバンドに分割してメインメモリに書き込んで、該分割データ毎にDMA転送され、データを分割するバンドサイズを大きくしてバンド分割数を減らすと、DMA転送の転送性能は向上するが、1回のDMA転送で転送されるデータ量が大きくなるため、DMA転送を遅滞なく連続して行うためには、メインメモリのメモリ使用領域が増大する。逆に、DMA転送においては、バンドサイズを小さくしてバンド分割数を増やすと、DMA転送の転送性能は低下するが、1回のDMA転送で転送されるデータ量が小さくなるため、DMA転送を遅滞なく連続して行うために必要なメインメモリのメモリ使用領域が減少する。一方、ネットワークデバイスが、ネットワークとの間でデータ送出するレートは、ワイヤスピードによりその最大値が決定される。
そして、従来から、メインメモリからネットワークデバイスへのデータのDMA転送における技術の向上が要望されている。
そこで、本発明は、ネットワークや外部デバイス等の外部へのデータ送出における記憶手段の利用効率を向上させつつ、外部へのデータ送出を向上させるDMA転送の最適化を図ることのできるデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体を提供することを目的としている。
本発明は、上記目的を達成するために、データ及び該データに関するディスクリプタを記憶する記憶手段に、バンドサイズ保持手段の保持するバンドサイズに応じた前記ディスクリプタと及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを書き込むディスクリプタ設定を行い、前記記憶手段のディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して、データ送出手段にDMA転送し、該データ送出手段による外部へのデータ送出性能に対する前記DMA転送における前記分割データのDMA転送性能の適否を判定するデータ転送判定を行い、所定のテストタイミングに、前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのDMA転送を行って、該DMA転送における前記DMA転送性能判定で判定された判定結果に基づいて前記DMA転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させることを特徴としている。
また、本発明は、前記DMA転送性能判定において、前記DMA転送されてきた前記分割データを前記データ送出手段が所定の単位時間当たりに前記外部へのデータ送出に成功したデータ量に基づいて、前記データ送出手段による前記外部へのデータ送出性能に対する前記分割データのDMA転送性能の適否を判定することを特徴としてもよい。
さらに、本発明は、前記バンドサイズ設定において、前記テストタイミングに前記DMA転送にテスト用のダミーディスクリプタを設定し、該テストタイミングでのDMA転送において、前記記憶手段への前記ディスクリプタの読み込み動作を行うが、設定された該ダミーディスクリプタに基づいてDMA転送を行うことを特徴としてもよい。
本発明によれば、ネットワークや外部デバイス等の外部へのデータ送出性能に応じたDMA転送性能を確保して、記憶手段の利用効率を向上させることができるとともに、DMA転送性能を最適化することができる。
本発明の一実施例を適用した画像処理装置の要部ブロック構成図。 転送状況監視部による転送レート監視処理の説明図。 ディスクリプタのフォーマット例を示す図。 2.5Kバイトのデータを3つに分割して転送する場合のDMA転送データとディスクリプタの一例を示す図。 2.5Kバイトのデータを3つに分割して転送するDMA転送処理を示すフローチャート。 2.5K倍とのデータを2つに分割して転送する場合のDMA転送データとディスクリプタの一例を示す図。 2.5Kバイトのデータを2つに分割して転送するDMA転送処理を示すフローチャート。 内部構成が変更された画像処理部の要部ブロック構成図。
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
図1〜図8は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を示す図であり、図1は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を適用した画像処理装置1の要部ブロック構成図である。
図1において、画像処理装置(データ転送装置)1は、CPU(Central Processing Unit )2、メモリコントローラ3、メインメモリ4及びネットワークデバイス5等を備えており、メモリコントローラ3とネットワークデバイス5とは、PCIeバス6によって接続されている。このPCIe((Peripheral Component Interconnect) Express)バス6は、要求と応答が分離され、応答を待たずに次の要求を発行できる高速のスプリットトランザクションのバスである。
画像処理装置1は、複合装置、複写装置、スキャナ装置であり、図示しないが、スキャナ部、ハードディスク、操作表示部等を備えている。画像処理装置1は、スキャナ部やネットワークデバイス5からの画像データをハードディスクに蓄積し、ハードディスクの画像データをメインメモリ4に転送して一旦メインメモリ4に保存した後、ネットワークデバイス5からネットワークNW上の送信先装置(外部)に送信する。
ネットワークデバイス5は、PHY(物理メディアインタフェース)11、ネットワークコントローラ12、DMAコントローラ13、アービタ14、PCIeエンドポイント15及びDMA転送設定部20等を備えており、DMA転送設定部20は、転送状況監視部21、ダミーディスクリプタ生成部22及びバンドサイズレジスタ23等を備えている。
PHY11には、LAN等のネットワークNWが接続されており、PHY11は、ネットワークNWを介して外部装置と通信を行う。PHY11は、ネットワークコントローラ12との間で、信号及びデータの授受を行う。ネットワークコントローラ(データ送出手段)12は、DMAコントローラ13との間でデータの授受を行い、PHY11を介してネットワークNWを使用したネットワーク通信を行って、DMAコントローラ13から受け取ったデータのネットワークNWへのデータ転送(データ送出)及びネットワークNWから受信したデータのDMAコントローラ13への出力を行う。
DMAコントローラ(DMA転送制御手段)13は、メインメモリ(記憶手段)4上のディスクリプタd1〜dNをリードして、ディスクリプタd1〜dnに基づいてメインメモリ4からデータD1〜Dnをリードし(読み出し)、また、メインメモリ4にデータをライトする(書き込む)。
アービタ14は、ネットワークデバイス5によるPCIeバス6に対するDMAアクセスを調停し、PCIeエンドポイント15は、ネットワークデバイス5のPCIeバス6とのインターフェイスである。
転送状況監視部(DMA転送性能判定手段)21は、PHY11とネットワークコントローラ12との間のデータ転送状況を監視し、例えば、8bit×125MHz(Max 1Gbps)のバス上で、PHY11からは、Req信号、ネットワークコントローラ12からは、Ack信号が出力されて、Req信号、Ack信号が共にアサート状態であるときに、データが転送される。転送状況監視部21は、このバス上の転送レートを監視し、転送レートの監視方法としては、例えば、図2に示すように行う。すなわち、Req信号は、PHY11から出力されるリクエスト信号、Ack信号は、ネットワークコントローラ12から出力されるアクセプト信号であり、量信号がハイ(Hi)のときに、ネットワークコントローラ12からPHY11に対してデータ(Data(8bit))が転送される。転送状況監視部21は、サイクルカウンタを備え、所定のサイクル数、図2のタイミングチャート上では、サイクルカウンタの値Nの間に、何サイクルデータ転送が成立したかをカウントする。図2では、サイクルカウンタが0〜Nの間に、0〜(M−2)サイクルのデータD0〜DM-2が転送されており、この場合、転送レートは、M−2/N×1G[bps]となる。すなわち、転送状況監視部21は、DMAコントローラ13によってDMA転送されてきた分割データD1〜Dnをネットワークコントローラ12が所定の単位時間(例えば、サイクルカウンタが0〜Nの間)当たりに外部であるPHY11を介してネットワークNWへ送出するデータ送出に成功したデータ量に基づいて、ネットワークコントローラ13による外部へのデータ送出性能に対するDMAコントローラ13による分割データD1〜DnのDMA転送性能の適否を判定する。
そして、転送状況監視部21は、上記サイクルカウンタのカウント結果から、転送状況を次の3つの転送状況パターンに分類する。
転送状況パターンTP1:DMA転送性能に対してネットワーク転送性能の方が早いパターン(DMA転送性能<ネットワーク転送性能)
転送状況パターンTP2:ネットワーク転送性能に対してDMA転送性能の方が早いパターン(DMA転送性能>ネットワーク転送性能)
転送状況パターンTP3:ネットワーク転送性能とDMA転送性能がほぼ同等のパターン(DMA転送性能≒ネットワーク転送性能)
ダミーディスクリプタ生成部(バンドサイズ設定手段)22は、テストモード時に、PHY11とネットワークNWローラ12との間の転送レートを観測するテストDMA転送を行うためのテスト用ディスクリプタ情報をDMAコントローラ13に通知し、テストモード時に、転送状況監視部21の監視結果の転送状況パターンTP1〜TP3に対して最適なディスクリプタのパラメータをDMAコントローラ13に渡してテストDMA転送を実施させる。
バンドサイズレジスタ23は、ダミーディスクリプタ生成部22がテストDMA転送用に生成したテスト用ディスクリプタ、特に、バンドサイズ情報を保存するレジスタであり、CPU2からアクセス可能なレジスタである。
メインメモリ4は、メモリコントローラ3を経由してPCIeバス6に接続されているとともに、CPU2に接続されており、RAM(Random Access Memory)等で構成されている。メインメモリ4は、CPU2の制御下で、処理対象の画像データ等のデータ、プログラム及びディスクリプタ等を格納し、このプログラムとしては、画像処理装置1としての基本プログラム及び本発明のデータ転送を効率的に行うデータ転送制御方法を実行するデータ転送制御プログラムを格納する。
なお、画像処理装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んでメインメモリ4やネットワークデバイス5に導入することで、後述するデータ転送を効率的に行うデータ転送制御方法を実行するデータ転送制御装置を備えた画像処理装置として構築されている。このデータ転送制御プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
そして、メインメモリ4は、処理対象、特に、ネットワーク送信を行う転送対象のデータD1〜Dnをデータ領域に記憶し、データD1〜Dnに対応するディスクリプタd1〜dnをディスクリプタ領域に記憶する。このディスクリプタd1〜dnは、CPU2によってライト(書き込み)が行われ、DMAコントローラ13によってリード(読み出し)及びライト(書き戻し)が行われることで、データD1〜DnのDMA転送が行われる。
すなわち、DMA転送は、ディスクリプタ方式で制御され、ディスクリプタd1〜dnは、例えば、図3に示すようにフォーマット構成されていて、32bitx4のデータサイズで構成されている。ディスクリプタd1〜dnは、次のディスクリプタのアドレスが登録される次ディスクリプタポインタ、DMA転送のデータのスタートアドレスが登録されるDMAスタードアドレス、該DMA転送対象のデータのサイズが登録されるデータサイズ等で構成され、次ディスクリプタポインタに「0」が登録されていると、次のディスクリプタが無く、そのディスクリプタによるDMA転送が最後のDデータのMA転送であることを示している。
次に、本実施例の作用を説明する。本実施例の画像処理装置1は、ネットワークNWにデータ転送する際に、ネットワークNWへのデータ転送状況をテスト転送することで取得して、取得したデータ転送状況からメインメモリ4からのDMA転送の転送サイズを調整して、効率的でメインメモリ4の使用容量の少ないネットワーク送信及びDMAデータ転送を行う。
画像処理装置1は、ネットワークNWへのデータ転送を行う場合、ハードディスク等から転送対象のデータをバンドサイズに分割した分割データをデータ単位としてPCIeバス6を介してDMA転送によって、一旦メインメモリ4に転送して保管し、ネットワークデバイス5のDMAコントローラ13が、このメインメモリ4の分割データである転送対象データD1〜DnをCPU2によって書き込まれたメインメモリ4のディスクリプタd1〜dnを読み取り、該ディスクリプタd1〜dnに基づいてメインメモリ4からネットワークコントローラ12に転送対象データD1〜DnをDMA転送する。
いま、2.5KByte(キロバイト)のデータを、複数のバンドに分割してネットワークデバイス5にDMA転送する場合について、図4〜図7に基づいて説明する。
まず、2.5KByteのデータを、1KByte、1KByte、512Byteの3つのバンドデータに分割してネットワークデバイス5に転送する場合について、図4及び図5に基づいて説明する。DMAコントローラ13は、図4及び図5に示すように、起動後に、まず、ディスクリプタd1を読み込み(ステップS101)、ディスクリプタd1に記載されているデータD1のスタートアドレス、データサイズ(1KByte)から、データD1のDMA転送を実施する(ステップS102)。DMAコントローラ13は、データD1のDMA転送が終了すると、ディスクリプタd2を読み込み(ステップS103)、ディスクリプタd2に記載されているデータD2のスタートアドレス、データサイズ(1KByte)から、データD2のDMA転送を実施する(ステップS104)。DMAコントローラ13は、データD2のDMA転送が終了すると、ディスクリプタd3を読み込み(ステップS105)、ディスクリプタd3に記載されているデータD3のスタートアドレス、データサイズ(512Byte)から、データD3のDMA転送を実施して、終了する(ステップS106)。
同様に、2.5KByteのデータを、2KByteと512Byteの2つのバンドに分割して転送する場合について、図6及び図7に基づいて説明する。DMAコントローラ13は、図6及び図7に示すように、起動後に、まず、ディスクリプタd1を読み込み(ステップS201)、ディスクリプタd1に記載されているデータD1のスタートアドレス、データサイズ(2KByte)から、データD1のDMA転送を実施する(ステップS202)。DMAコントローラ13は、データD1のDMA転送が終了すると、ディスクリプタd2を読み込み(ステップS203)、ディスクリプタd2に記載されているデータD2のスタートアドレス、データサイズ(512Byte)から、データD2のDMA転送を実施して、データD2のDMA転送が終了すると、DMA転送処理を終了する(ステップS204)。
図4及び図5と図6及び図7を比較して分かるように、2.5KByteという同じデータ量のデータを、複数のバンドに分割してDMA転送する場合、2つのバンド(2KByteと512Byte)に分割して転送するDMA転送と(図6、図7)、3つのバンド(1KByte、1KByte、512Byte)に分割して転送するDMA転送とを比較して、2バンドに分割して転送するときの方が、ディスクリプタへのアクセス回数が1回少なく、2回のアクセスで全てのデータの転送が完了している。
そして、DMA転送においては、メインメモリ4のディスクリプタd1〜dnへのアクセス中は、DMA転送が停止することから、1つのまとまったデータを複数のバンドに分割してDMA転送する場合、バンド分割数をできるだけ少なく、すなわち、1つのバンドのデータサイズを大きくすると、DMA転送性能が向上する。
ところが、バンド分割数を少なくすると、DMA転送で使用するメインメモリ4のメモリ領域が大きくなるというデメリットもある。
例えば、いま、所定の文書の1ページの画像データを1つのバンドデータとしてDMA転送すると、メインメモリ4上に1ページ分の画像データを記憶する領域が必要となるが、この1ページの画像データを複数のバンドに分割してDMA転送する場合は、メインメモリ4のメモリ領域へのバンドデータの補充と、DMA転送のバンドデータの読み出しをトグルで制御することで、メインメモリ4のメモリ使用領域が1つのバンドデータとしてDMA転送する場合よりも少なくて済む。
一方、ネットワークデバイス5からデータをネットワークNWに送出できるデータ送出レートは、ネットワークNWのワイヤスピードによって規制される。
そこで、本実施例の画像処理装置1のDMA転送設定部20は、ダミーディスクリプタ生成部22に入力されているテストモードオン/オフ信号がオンにされると、ダミーディスクリプタ生成部22がオンのテストモード信号をDMAコントローラ13に出力して、DMAコントローラ13が、テストモードを実行し、転送状況監視部21が、PHY11とネットワークコントローラ12間の転送状況が、上記3つの転送状況パターンTP1〜TP3のどの状態に当てはまるかを判断して、ネットワークNWへのデータ送出量とDMA転送量が均衡する転送状況パターンTP3を実現できるようなDMA転送性能の制御パラメータ、すなわち、分割バンド時の最適なバンドサイズ情報をバンドサイズレジスタ23に記憶して、ユーザに通知する。ユーザは、ネットワークNWのワイヤスピードの高い利用効率を維持したまま、最も小さいDMAアクセスのバンドサイズを知ることができる。
すなわち、画像処理装置1は、テストモードにおいて、まず、ネットワークコントローラ12からPHY11を介してネットワークNWに1バンド(例えば、1KByte)のデータ転送を行う場合のデータ転送レート状況を確認する。このとき、DMAコントローラ13は、上記通常のDMA転送処理と同様に、メインメモリ4上にあるディスクリプタ情報の読み込み(メモリリード)を行う。DMAコントローラ13は、メインメモリ4からメモリリードデータが返ってくると、メモリリードデータのデータは参考にせず、ダミーディスクリプタ生成部22から送られてくるダミーディスクリプタによるバンドサイズ(例えば、1KByte)、適当なスタートアドレス信号を参考にして、DMA転送を開始する。
すなわち、DMAコントローラ13は、テストモードにおいては、ダミーディスクリプタ生成部22から送られてくるダミーディスクリプタ(パラメータ情報)を参考にすることで、テスト用の複数のディスクリプタをメインメモリ4に記憶することなく、DMA転送時にメインメモリ4の読み取り(リード)にかかるレイテンシーによるDMA転送停止時間を観測することができる。
そして、DMAコントローラ13は、上記処理を繰り返し実施して、このテストモード時のDMA転送中に、転送状況監視部21は、PHY11とネットワークコントローラ12間のデータ転送状況が、上記転送状況パターンTP1〜TP3のいずれに該当する確認して、確認結果をダミーディスクリプタ生成部22に通知する。ダミーディスクリプタ生成部22は、転送状況監視部21の監視結果に基づいてDMAコントローラ13に次のテストで実行させるバンドサイズを通知し、また、該バンドサイズを最適バンドサイズとしてバンドサイズレジスタ23に格納する。
例えば、ダミーディスクリプタ生成部22は、転送状況監視部21の監視したPHY11とネットワークコントローラ12間のデータ転送状況が転送状況パターンTP1であった場合、DMA転送性能がネットワーク転送性能に対して低く、バンドサイズを大きくする必要があると判断して、現在のテストモードのバンドサイズよりも大きなバンドサイズをDMAコントローラ13に通知し、DMAコントローラ13は、新たに通知されたバンドサイズでDMA転送を実施する。逆に、ダミーディスクリプタ生成部22は、転送状況監視部21の監視したPHY11とネットワークコントローラ12間のデータ転送状況が転送状況パターンTP2であった場合、DMA転送性能がネットワークの転送性能に対して十分足りていると判断し、DMAコントローラ13に、現在のテストモードのバンドサイズよりも小さなバンドサイズ、例えば、1KByteより小さなバンドサイズを通知する。ネットワークデバイス5は、上記テストモード処理を繰り返し行って、転送状況パターンTP3の転送状況、すなわち、ネットワーク速度とDMA転送性能がほぼ同等な転送状況に転送速度を設定すると、そのバンドサイズを、バンドサイズレジスタ23に格納し、ユーザに通知する。CPU2は、このバンドサイズレジスタ23のバンドサイズに基づいてメインメモリ4へのディスクリプタd1〜dnの設定と該ディスクリプタd1〜dnのバンドサイズのデータD1〜Dnの書き込みを行う。
そして、画像処理装置1は、DMA転送設定部20が、上記テストモードによるデータ転送サイズの設定を、ユーザによる操作またはCPU2等による自動判断によって適宜のタイミングに実行する。例えば、ネットワークNWが、10Base、100Base、GBase等のPHY11側の接続状況が変更された場合、画像処理装置1内部のシステム構成が変更された場合、他のI/Oデバイスの接続状況が変更された場合等に実行する。
例えば、ネットワークデバイスが、従来、100Baseのネットワーク環境に接続されていた場合に、GBaseのネットワーク環境に接続が切り換えられた場合についてテストモードを実行する。すなわち、100Baseのネットワーク環境に接続されていて、PHY11とネットワークコントローラ12間の転送状況が、転送状況パターンTP3で、ネットワーク転送性能とDMA転送性能がほぼ同等にDMAコントローラ13のバンドサイズが調整されているときに、ネットワークデバイスが、GBaseのネットワーク環境に接続しなおされと、ネットワークデバイス5は、テストモードに入り、DMAコントローラ13のDMA転送におけるバンドサイズの再設定を実施する。
また、例えば、DMA転送設定部20は、画像処理装置1の装置内部のシステム構成が変更される場合にも、DMA転送の転送サイズの設定を実行する。例えば、図8に示すように、画像処理装置30が、PCIeバス6に画像処理アクセラレータ31がオプションユニットとして接続された場合にも、DMA転送サイズ設定処理を行う。なお、図8において、図1と同様の構成部分には、同一の符号を付して、その説明を省略する。
図8において、画像処理装置30は、PCIeバス6に、オプションユニットの画像処理アクセラレータ31が接続されており、画像処理アクセラレータ31は、CPU2の制御下で、スキャナ部で読み込んだ画像データやネットワークNWを介して受信した画像データを、JPEG(Joint Photographic Experts Group)変換等の画像処理を行う。画像処理装置30は、このような画像処理アクセラレータ31を搭載することで、JPEG変換等の画像処理を、画像処理アクセラレータ31で実施し、ネットワークデバイス32によってネットワークNWへ送信することが行われる。画像処理アクセラレータ31は、メインメモリ4に記憶される画像データを変換処理し、メインメモリ4に出力結果を記憶する。ネットワークデバイス32のネットワークモジュール33は、上記図1に示したDMAコントローラ13、ネットワークコントローラ12及びPHY11等を搭載しており、画像処理アクセラレータ31の出力結果を、メインメモリ4からDMA転送で受け取ってネットワークNWに送信する。なお、図8の説明においては、ネットワークモジュール33の搭載するDMAコントローラ13、ネットワークコントローラ12及びPHY11については、図示しないが、図1と同じ符号を用いて説明する。
画像処理装置30は、画像処理アクセラレータ31とメインメモリ4が同時動作する場合、PCIeバス6が混んで、双方のメモリリードレイテンシーが増え、ネットワーク送信の転送レートが低下する。
そこで、このような状況において、DMA転送設定部20は、ネットワークモジュール33のDMAコントローラ13をテストモードに設定し、バンドサイズの調整を実施する。このテストモードでのバンドサイズの調整においては、画像処理アクセラレータ31は、メモリリード、メモリライトのスルー動作を実施し、意図的にPCIeバス6を混雑させた状態でバンドサイズの調整を行う。
また、DMA転送のテストモードの実施は、図8に示すように、ネットワークデバイス32がUSBモジュール34を搭載している場合、接続されるUSBデバイスの規格によって転送性能が変化するため、USBモジュール34に接続されるUSBデバイスが変更された場合にも実施してもよい。このUSBモジュール34は、DMAコントローラを搭載しており、メモリコントローラ3との間でデータのDMA転送を行う。そして、USBモジュール34に接続されるUSBデバイスがUSB1.0規格であるか、2.0規格であるかによって、USBモジュール34の転送性能が変化する。そこで、DMA転送設定部20は、USBモジュール34に接続されるUSBデバイスが変更されると、USBモジュール34の搭載するDMAコントローラによるDMA転送のテストモードを実施し、バンドサイズの調整を行う。
このように、本実施例の画像処理装置1は、CPU2が、データ及び該データに関するディスクリプタを記憶するメインメモリ4に、バンドサイズレジスタ23の保持するバンドサイズに応じたディスクリプタd1〜dnと及び所定のブロック単位のデータを該ディスクリプタd1〜dnのバンドサイズに分割した分割データであるデータD1〜Dnを書き込むディスクリプタ設定を行い、DMAコントローラ13が、メインメモリ4のディスクリプタd1〜dnを読み取って該ディスクリプタd1〜dnに対応するデータD1〜Dnをメインメモリ4から読み出して、ネットワークNW等の外部にデータを送出するネットワークコントローラ12にDMA転送し、ネットワークコントローラ12によるネットワークNWへのデータ送出性能に対するDMA転送におけるデータD1〜DnのDMA転送性能の適否を転送状況監視部21が判定し、所定のテストタイミングに、バンドサイズレジスタ23の保持するバンドサイズでデータD1〜DnのDMA転送を行って、該DMA転送における転送状況監視部21で判定された判定結果に基づいてDMA転送のバンドサイズをダミーディスクリプタ生成部22が決定してバンドサイズレジスタ23に保持させている。
したがって、ネットワークNW等の外部へのデータ送出においてネットワークNW等の外部へのデータ送出性能を向上させることができるとともに、DMA転送性能の最も低い(高転送レートの最も小さい)DMA転送のバンドメモリサイズ(バンドサイズ)を設定することができ、メインメモリ4のデータ使用領域を削減してメインメモリ4の利用効率を向上させることができる。
また、本実施例の画像処理装置1は、転送状況監視部21が、DMAコントローラ13によってDMA転送されてきたデータD1〜Dnをネットワークコントローラ12が所定の単位時間当たりにPHY11を介してネットワークNWへの送出に成功したデータ量に基づいて、ネットワークコントローラ12によるネットワークNWへのデータ送出性能に対するDMAコントローラ13によるデータD1〜DnのDMA転送性能の適否を判定している。
したがって、簡単な構成で適切かつ正確に、ネットワークコントローラ12によるネットワークNWへのデータ送出性能に対するDMAコントローラ13によるデータD1〜DnのDMA転送性能の適否を判定することができる。
さらに、本実施例の画像処理装置1は、転送状況監視部21が、ネットワークコントローラ12によるネットワークNWへのデータ送出性能とDMAコントローラ13によるデータD1〜DnのDMA転送性能がつり合っていると判定すると、ダミーディスクリプタ生成部22が該バンドサイズを最適なバンドサイズとしてバンドサイズレジスタ23に保持させている。
したがって、ネットワークNW等の外部へのデータ送出性能を向上させることができるとともに、DMA転送性能を該データ送出性能により一層最適なものとすることができる。
また、本実施例の画像処理装置1は、ダミーディスクリプタ生成部22が、テストタイミングにDMAコントローラ13にテスト用のダミーディスクリプタを設定し、DMAコントローラ13、メインメモリ4へのディスクリプタの読み込み動作を行うが、ダミーディスクリプタ生成部22によって設定されたダミーディスクリプタに基づいてDMA転送を行っている。
したがって、テストモードでのDMA転送を自動的にかつ適切に行って、ネットワークNW等の外部へのデータ送出性能を向上させることができるとともに、DMA転送性能を該データ送出性能により一層最適なものとすることができる。
さらに、本実施例の画像処理装置1は、操作部等によってテスト指示が行われたタイミング、CPU2によってメインメモリ4にデータD1〜Dn及びディスクリプタd1〜dnの設定処理環境が変化したタイミング、外部へのデータ転送環境が変化したタイミングのうちいずれかのタイミングをテストタイミングとして、テストモードの処理を行っている。
したがって、ユーザの意図するタイミングやネットワークコントローラ12によるネットワークNWへのデータ送出性能に対するDMAコントローラ13によるデータD1〜DnのDMA転送性能が変化するタイミング及びメインメモリ4へのデータ設定処理速度に変化が生じるタイミング等に適切にDMA転送性能を設定することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、メモリからDMA転送で受け取ったデータを外部に出力する複写装置、複合装置、ファクシミリ装置、スキャナ装置、コンピュータ等の画像処理装置に利用することができる。
1 画像処理装置
2 CPU
3 メモリコントローラ
4 メインメモリ
5 ネットワークデバイス
6 PCIeバス
11 PHY
12 ネットワークコントローラ
13 DMAコントローラ
14 アービタ
15 PCIeエンドポイント
20 DMA転送設定部
21 転送状況監視部
22 ダミーディスクリプタ生成部
23 バンドサイズレジスタ
30 画像処理装置
31 画像処理アクセラレータ
32 ネットワークデバイス
33 ネットワークモジュール
34 USBモジュール
特開2002−185466号公報

Claims (10)

  1. データ及び該データに関するディスクリプタを記憶する記憶手段と、
    外部にデータを送出するデータ送出手段と、
    データをDMA転送するバンドサイズを保持するバンドサイズ保持手段と、
    前記バンドサイズ保持手段の保持する前記バンドサイズに応じたディスクリプタ及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを前記記憶手段に書き込むディスクリプタ設定手段と、
    前記記憶手段の前記ディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して前記データ送出手段にDMA転送するDMA転送制御手段と、
    前記データ送出手段による前記外部へのデータ送出性能に対する前記DMA転送制御手段による前記分割データのDMA転送性能の適否を判定するDMA転送性能判定手段と、
    所定のテストタイミングに、前記DMA転送制御手段に前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのDMA転送を行わせて該DMA転送における前記DMA転送性能判定手段の判定した判定結果に基づいて前記DMA転送制御手段によるDMA転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させるバンドサイズ設定手段と、
    を備えていることを特徴とするデータ転送装置。
  2. 前記DMA転送性能判定手段は、前記DMA転送制御手段によってDMA転送されてきた前記分割データを前記データ送出手段が所定の単位時間当たりに前記外部への送出に成功したデータ量に基づいて、前記データ送出手段による前記外部へのデータ送出性能に対する前記DMA転送制御手段による前記分割データのDMA転送性能の適否を判定することを特徴とする請求項1記載のデータ転送装置。
  3. 前記バンドサイズ設定手段は、前記DMA転送性能判定手段が前記データ送出性能と前記DMA転送性能がつり合っていると判定した前記バンドサイズを決定して前記バンドサイズ保持手段に保持させることを特徴とする請求項1または請求項2記載のデータ転送装置。
  4. 前記バンドサイズ設定手段は、前記テストタイミングに前記DMA転送制御手段にテスト用のダミーディスクリプタを設定し、
    前記DMA転送制御手段は、前記記憶手段への前記ディスクリプタの読み込み動作を行うが、前記バンドサイズ設定手段によって設定された前記ダミーディスクリプタに基づいてDMA転送を行うことを特徴とする請求項1から請求項3のいずれかに記載のデータ転送装置。
  5. 前記バンドサイズ設定手段は、操作手段によってテスト指示が行われたタイミング、前記ディスクリプタ設定手段によって前記記憶手段に前記データ及び前記ディスクリプタの設定処理環境が変化したタイミング、前記外部へのデータ転送環境が変化したタイミングのうちいずれかのタイミングを前記テストタイミングとすることを特徴とする請求項1から請求項4のいずれかに記載のデータ転送装置。
  6. データ及び該データに関するディスクリプタを記憶する記憶手段に、バンドサイズ保持手段の保持するバンドサイズに応じた前記ディスクリプタと及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを書き込むディスクリプタ設定処理ステップと、
    前記記憶手段のディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して、外部にデータを送出するデータ送出手段にDMA転送するDMA転送制御処理ステップと、
    前記データ送出手段による前記外部へのデータ送出性能に対する前記DMA転送制御処理ステップにおける前記分割データのDMA転送性能の適否を判定するDMA転送性能判定処理ステップと、
    所定のテストタイミングに、前記DMA転送制御処理ステップに前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのDMA転送を行わせて該DMA転送における前記DMA転送性能判定処理ステップで判定された判定結果に基づいて前記DMA転送制御処理ステップでのDMA転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させるバンドサイズ設定処理ステップと、
    を有していることを特徴とするデータ転送制御方法。
  7. 前記DMA転送性能判定処理ステップは、前記データ送出手段が前記DMA転送制御処理ステップによってDMA転送されてきた前記分割データの所定の単位時間当たりに前記外部への送出に成功したデータ量に基づいて、前記データ送出手段による前記外部へのデータ送出性能に対する前記DMA転送制御処理ステップによる前記分割データのDMA転送性能の適否を判定することを特徴とする請求項6記載のデータ転送制御方法。
  8. 前記バンドサイズ設定処理ステップは、前記テストタイミングに前記DMA転送制御処理ステップにテスト用のダミーディスクリプタを設定し、
    前記DMA転送制御処理ステップは、前記記憶手段への前記ディスクリプタの読み込み動作を行うが、前記バンドサイズ設定処理ステップで設定された前記ダミーディスクリプタに基づいてDMA転送を行うことを特徴とする請求項6または請求項7記載のデータ転送制御方法。
  9. コンピュータに、
    データ及び該データに関するディスクリプタを記憶する記憶手段に、バンドサイズ保持手段の保持するバンドサイズに応じた前記ディスクリプタと及び所定のブロック単位のデータを該ディスクリプタのバンドサイズに分割した分割データを書き込むディスクリプタ設定処理と、
    前記記憶手段のディスクリプタを読み取って該ディスクリプタに対応する前記分割データを該記憶手段から読み出して、外部にデータを送出するデータ送出手段にDMA転送するDMA転送制御処理と、
    前記データ送出手段による前記外部へのデータ送出性能に対する前記DMA転送制御処理における前記分割データのDMA転送性能の適否を判定するDMA転送性能判定処理と、
    所定のテストタイミングに、前記DMA転送制御処理に前記バンドサイズ保持手段の保持する前記バンドサイズで前記分割データのDMA転送を行わせて該DMA転送における前記DMA転送性能判定処理で判定された判定結果に基づいて前記DMA転送制御処理でのDMA転送のバンドサイズを決定して前記バンドサイズ保持手段に保持させるバンドサイズ設定処理と、
    を行わせることを特徴とするデータ転送制御プログラム。
  10. 請求項9記載のデータ転送制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
JP2009039952A 2009-02-23 2009-02-23 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 Pending JP2010198138A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009039952A JP2010198138A (ja) 2009-02-23 2009-02-23 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009039952A JP2010198138A (ja) 2009-02-23 2009-02-23 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2010198138A true JP2010198138A (ja) 2010-09-09

Family

ID=42822832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009039952A Pending JP2010198138A (ja) 2009-02-23 2009-02-23 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2010198138A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211349A (ja) * 2009-03-09 2010-09-24 Ricoh Co Ltd 半導体集積回路及びメモリアクセス制御方法
JP2015043237A (ja) * 2010-09-29 2015-03-05 株式会社東芝 メモリシステム
JP2017122972A (ja) * 2016-01-05 2017-07-13 Necプラットフォームズ株式会社 情報処理装置、dma転送制御方法およびdma転送制御プログラム
CN116701284A (zh) * 2023-06-26 2023-09-05 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211349A (ja) * 2009-03-09 2010-09-24 Ricoh Co Ltd 半導体集積回路及びメモリアクセス制御方法
JP2015043237A (ja) * 2010-09-29 2015-03-05 株式会社東芝 メモリシステム
JP2017122972A (ja) * 2016-01-05 2017-07-13 Necプラットフォームズ株式会社 情報処理装置、dma転送制御方法およびdma転送制御プログラム
CN116701284A (zh) * 2023-06-26 2023-09-05 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质
CN116701284B (zh) * 2023-06-26 2024-02-09 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN106874224B (zh) 自动搬运且适应器件的多线SPI-Flash控制器
CN1237455C (zh) 数据传输控制装置、电子设备、及数据传输控制方法
US7640374B2 (en) Data transfer apparatus by direct memory access controller
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
CN109478168B (zh) 内存访问技术及计算机系统
JP5551512B2 (ja) 通信制御装置、データ通信方法及びプログラム
US8799536B2 (en) Data processing apparatus, data processing method and computer-readable medium
US20120166681A1 (en) Information processing device, information processing system, information processing method, and program
CN101339541B (zh) 一种dma数据传输方法及dma控制器
CN113590512B (zh) 可直连外设设备的自启动dma装置及应用
US20060236001A1 (en) Direct memory access controller
JP2010198138A (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JP5293283B2 (ja) 半導体集積回路及びメモリアクセス制御方法
US11010114B2 (en) Read/write direction-based memory bank control for imaging
JP2008046771A (ja) ダイレクトメモリアクセスコントローラ
JP2008015876A (ja) データアクセスシステム、データアクセス装置、データアクセス集積回路及びデータアクセス方法
US10922038B2 (en) Memory control method, memory control apparatus, and image forming method that uses memory control method
JP2012034254A (ja) データ転送装置、画像形成装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
US10489319B2 (en) Automatic transmission of dummy bits in bus master
JP2004349836A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US11709791B2 (en) Techniques for deconflicting USB traffic in an extension environment
US10579317B1 (en) Memory control method, memory control apparatus, and image forming method that uses memory control method
US10614001B1 (en) Memory control method, memory control apparatus, and image forming method that uses memory control method
JP2014167763A (ja) 電子機器及びその制御方法
JP2009065564A (ja) 受信端末装置、受信データ格納方法、プログラム及び記録媒体