JP2004355041A - Dma転送中継装置,dma転送方法,及びdma転送システム - Google Patents
Dma転送中継装置,dma転送方法,及びdma転送システム Download PDFInfo
- Publication number
- JP2004355041A JP2004355041A JP2003148237A JP2003148237A JP2004355041A JP 2004355041 A JP2004355041 A JP 2004355041A JP 2003148237 A JP2003148237 A JP 2003148237A JP 2003148237 A JP2003148237 A JP 2003148237A JP 2004355041 A JP2004355041 A JP 2004355041A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- dma
- signal
- dma transfer
- 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
Links
Images
Abstract
【課題】インターフェースの異なるバスに接続可能であると共に,転送要求されたデータ量に関係なく効率のよいDMA転送処理を実現すること。
【解決手段】DMA転送中継装置に転送されたデータをCPUのキャッシュラインサイズと同容量の記憶手段に一時的に記憶させ,上記データ或いはデータ転送処理に関連する信号(DMAコントローラが出力するステータスデータ等)を検出し,検出された信号に基づいて上記一時的に記憶されたデータを所定のデータ記憶部に転送する。
【選択図】図1
【解決手段】DMA転送中継装置に転送されたデータをCPUのキャッシュラインサイズと同容量の記憶手段に一時的に記憶させ,上記データ或いはデータ転送処理に関連する信号(DMAコントローラが出力するステータスデータ等)を検出し,検出された信号に基づいて上記一時的に記憶されたデータを所定のデータ記憶部に転送する。
【選択図】図1
Description
【0001】
【発明の属する技術分野】
本発明は,DMAコントローラをインターフェースの異なるバス上において接続可能とするDMA転送中継装置,及び該DMA転送中継装置を用いたDMA転送方法,DMA転送システムに関するものである。
【0002】
【従来の技術】
入出力装置からデータを効率よく転送する方法の一つに,メインメモリ等のディスクリプタ領域に記載されたディスクリプタ情報(転送制御情報)に基づいてデータ転送を行うDMA転送方式がある。このDMA転送方式は,DMAコントローラという新たなハードウェアを必要とするが,CPUから干渉されずに入出力装置とメインメモリとの間で直接的にデータの転送が行えるため,転送効率がよく,また,データ転送処理にCPUが関与しないので,CPUの稼働率が軽減されシステム全体の処理の高速化が実現されるという利点がある。
【0003】
このようなDMAコントローラがバスに接続されてDMA転送システムを構成する場合は,該DMAコントローラとバスとのインターフェース(I/F)の整合性を考慮しなければならず,I/Fの異なるバスに上記DMAコントローラを接続する場合は,例えば特許文献1に記載されるバスI/F変換回路を備えた接続中継装置が必要となる。これによれば,バスとDMAコントローラとの間に,当該接続中継装置を設けることにより,I/Fの異なるバス上にも上記DMAコントローラを接続することが可能になる。更に,上記接続中継装置は,ディスクリプタ領域に次の転送データ情報を書き込むことができるので,かかる情報を参照してDMA転送することが可能となり,これにより連続したデータ転送を実現している。
【0004】
【特許文献1】
特開平11−134289号公報
【0005】
【発明が解決しようとする課題】
しかしながら,上記特許文献1の技術により可能となった連続転送は,所詮はシングル転送(1回のバスアクセス(転送要求)に対して1バイトのデータを転送すること)を繰り返し行うことにより,ディスクリプタ領域に記載されたデータ量のみのデータを転送する方法であるので,従来のシングル転送と較べると,その転送速度は向上するものの,例えば,膨大な量のデータの転送が要求された場合は,十分に処理できる転送速度を備えるものではなかった。
従って,本発明は上記事情に鑑みてなされたものであり,その目的とするところは,インターフェースの異なるバスに接続可能でありながら,転送要求されたデータ量に関わらず効率のよいデータ転送を可能とすると共に,CPUの処理負担を軽減しシステム全体の処理速度を向上させることが可能なDMA転送中継装置,DMA転送方法及びDMA転送システムを提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために本発明は,複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置において,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶手段と,上記データ転送に関連する所定の信号を検出する信号検出手段と,上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送手段と,を具備してなることを特徴とするDMA転送中継装置として構成されている。
このように構成されることにより,例えばバス幅の異なるインターフェース間においてデータの転送が要求された場合であっても,要求されたデータ量に関わらず,常に略一定の転送速度で効率のよい転送処理が実現される。
【0007】
ここで,上記データ記憶手段が,キャッシュラインサイズと同容量の1又は複数のFIFOメモリに記憶するものであることが考えられる。
通常,CPUはキャッシュラインサイズのデータを1単位として演算処理を行う。従って,上記キャッシュラインサイズと同容量のFIFOメモリを設け,該キャッシュラインサイズのデータのみを転送して上記所定のメモリへ格納することとすれば,CPUは上記所定のメモリに格納されたデータを最も効率よく処理することが可能となり,これによりCPUの処理負担が軽減され,その結果,システム全体の処理速度が向上する効果を奏する。
【0008】
また,上記所定の信号が,上記データ記憶手段がデータで満杯となったことを示すデータフル信号であることが望ましい。このデータフル信号に基づいてデータを転送することにより,上記データ記憶手段に記憶し得る容量を1単位としたデータの転送が可能となる。この場合,上記データ記憶手段がキャッシュラインサイズと同容量のFIFOメモリであれば,上記データ転送手段が,キャッシュラインサイズのデータをバースト転送するものであることが望ましい。バースト転送とは,1回のバスアクセス(転送要求)に対して,連続して複数のデータを転送する動作である。これにより,上記データ記憶手段に記憶し得る容量を1単位として,連続したデータの転送が可能となり,より高速なデータ転送を行うことが可能となる。
更に,上記所定の信号が,上記DMAコントローラによる上記データ記憶手段への転送が完了したことを示す転送完了信号であってもよい。これにより,例えば,該転送完了信号の検出結果に基づいて,上記データ記憶手段に記憶されたデータの転送を開始することができるので,上記データ記憶手段がデータで満杯とならない場合であっても,転送要求されたデータを全て転送することが可能となる。尚,上記転送完了信号はディスクリプタ領域に記載された情報を更新するために上記DMAコントローラから送信される信号である。
【0009】
また,上記信号検出手段により上記転送完了信号が検出されたことに応じて,上記データ記憶手段の空領域にダミーデータを付加することにより上記データ記憶手段をデータで満杯にさせるダミーデータ付加手段を更に具備するものであってもよい。
例えば,データ記憶手段の容量をバースト転送データ量(バーストサイズ)と定めた場合は,該データ記憶手段がデータで満たされない限り,データをバースト転送することができない。従ってこの場合は,上記データ記憶手段がデータで満杯とならない状態であっても,ダミーデータを付加して,上記データ記憶手段を強制的にデータで満杯とすることで,データのバースト転送を実現することが可能となる。
【0010】
また,上記信号検出手段により検出された上記転送完了信号に基づいて,上記データ転送手段により上記データ記憶手段に記憶された全データが上記所定の記憶部に転送された後に,上記転送完了信号に対する応答信号を上記DMAコントローラに送信する応答信号送信手段を更に具備してなるものであってもよい。
DMAコントローラは,通常,上記応答信号を受信するとCPUに対してCPUの処理を再開させるための割り込み信号を発信する。この場合,例えば,上記データ記憶手段に記憶されたデータの上記所定の記憶部への転送が不完全な状態で,DMAコントローラが割り込み信号を送信すると,CPUは,上記所定の記憶部に格納された転送不完全なデータを処理することになり,その結果,プログラム等の誤作動が生じるおそれがある。従って,上記応答信号送信手段を更に具備することにより,かかる誤作動を排除し,システム全体の処理遅延を回避させている。
【0011】
また,バスの使用頻度を判断するバス使用頻度判断手段を更に具備し,上記データ転送手段が,上記バス使用頻度判断手段による判断結果に基づいて,上記データ記憶手段に記憶されたデータを上記所定の記憶部に転送するものであることが考えられる。
例えば転送データ量が少ない,即ちバス使用頻度が低いと判断された場合は,ダミーデータを付加して複数のデータを連続転送(例えばバースト転送)するよりも,1バイト毎にバスの開放・要求を必要とするシングル転送を行った方が転送処理が速く,また逆に,転送データ量が多い,即ちバス使用頻度が高いと判断された場合は,上記シングル転送よりも上記連続転送を行った方が転送処理が速い場合がある。従って,バス使用頻度に応じて,データの転送処理が速い転送方法を適用することにより,転送効率を向上させることができる。
【0012】
また,本発明は,上記DMA転送中継装置の具備する各手段に相当する処理を行うDMA転送方法として捉えたものであってもよい。
即ち,複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置に用いられるDMA転送方法において,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶工程と,上記データ転送に関連する所定の信号を検出する信号検出工程と,上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送工程と,を具備してなることを特徴とするDMA転送方法として構成することができる。
【0013】
更に,本発明は,少なくとも上記DMAコントローラと上記DMA転送中継装置とを備えて構成される,DMA転送システムとして捉えたものであってもよい。
即ち,複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラと,該DMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置とを備え,上記DMAコントローラが上記DMA転送中継装置を介して上記DMA転送方式によるデータ転送を実行するDMA転送システムにおいて,上記DMA転送中継装置が,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶手段と,上記データ転送に関連する所定の信号を検出する信号検出手段と,上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送手段と,を具備してなることを特徴とするDMA転送システムとして構成することができる。
【0014】
【発明の実施の形態】
以下添付図面を参照しながら,本発明の実施の形態及び実施例について説明し,本発明の理解に供する。尚,以下の実施の形態及び実施例は,本発明を具体化した一例であって,本発明の技術的範囲を限定する性格のものではない。
ここに,図1は本発明の実施の形態に係るDMA転送中継装置を用いたDMA転送システムAを示すブロック図,図2は本発明の実施の形態に係るDMA転送中継装置が行う処理手順の一例を示すフローチャートである。
【0015】
図1を用いて,本発明の実施の形態に係るDMA転送中継装置20を用いたDMA転送システムAの構成について説明する。尚,本実施の形態では,プリンタ,コピー機,ファックス等の画像処理装置に搭載されるイーサネットシステム(「イーサネット」は富士ゼロックス株式会社の登録商標)において利用されるDMA転送システムについて例示する。
図1に示されるように,DMA転送システムAは,CPU2と,ディスクリプタ情報(転送制御情報)を有するディスクリプタ領域11及び転送されたデータを格納するデータ格納領域12を有するメインメモリ10と,本発明に係るDMA転送中継装置20とがデータバス1に接続され,更に上記DMA転送中継装置20にDMA転送方式による転送制御を行うDMAC(DMAコントローラ)31を搭載するイーサネットシステム30が接続されて構成されている。尚,本DMA転送システムAにおけるデータの転送は,上記イーサネットシステム30に設けられた外部インターフェース(外部I/F)3を通じて行われるものとする。
【0016】
CPU2は,上記DMA転送システムAを統括制御する中央演算処理装置の一例である。
上記メインメモリ10はEEPROMやフラッシュメモリ等の不揮発性メモリからなるものであり,上記メインメモリ10のディスクリプタ領域11には,転送開始アドレス,転送終了アドレス,転送データ量,転送完了信号の有無或いは転送完了状態等の複数のディスクリプタ情報が格納されている。また,上記データ格納領域12は,DMA転送されたデータを格納するメモリ領域である。
上記イーサネットシステム30は,例えばLAN等のネットワークを介して外部端末装置或いは外部記憶装置の入出力デバイス等(不図示)とインターフェースをとる外部インターフェース34と,上記入出力デバイスとイーサネットシステム30との間においてネットワークの通信接続環境を制御するイーサネットコントローラ33と,上記入出力デバイス等から転送されたデータを一時的に保管するFIFOメモリ(以下,「FIFO」と称す)32と,上記複数のディスクリプタ情報に基づくDAM転送方式によるデータ転送を制御・実行するDMAC31とを備えて構成されている。このイーサネットシステム30は,例えばプリンタ,コピー機,ファックス等の画像制御装置やパソコン等の汎用システムに適用され得るものである。
【0017】
上記DMA転送中継装置20は,インターフェースが異なるバス,例えば上記イーサネットシステム30において転送し得るデータのバス幅とデータバス1のバス幅とが異なる場合に,そのインターフェースの差異(バス幅の差異)を整合させる不図示のI/F変換回路(例えばブリッジ回路等)と,DMAC31により転送されたデータを一時的に記憶するFIFO22(データ記憶手段の一例)と,上記FIFO22に記憶されたデータ量をカウントし,そのカウント結果を出力するカウンタ23と,上記DMAC31により制御・転送されるデータ或いはデータ転送処理に関連する所定の信号を検出する信号検出回路21(信号検出手段の一例)と,上記検出回路21により検出された信号に基づいて上記FIFO22に記憶されたデータを上記データ格納領域12に転送するデータ転送回路(データ転送手段の一例)とを具備して構成されている。
【0018】
ここで,上記DMA転送中継装置20が具備するFIFO22,信号検出回路21,及びデータ転送回路24について詳述する。
上記FIFO22は,DMAC31により転送されたデータを一時的に記憶するデータ記憶手段の一例であり,本実施形態ではCPU2が有するキャッシュメモリのラインサイズと同容量のFIFOメモリとする。DMAC31が外部の入出力デバイス(不図示)から上記イーサネットシステム30に転送されたデータを,インターフェース(例えばバス幅)の異なるデータバス1を介してDMA転送する場合,インターフェース間の転送方式の差を吸収するために,当該転送データを上記DMA転送中継装置20内に一時的に記憶させる必要がある。上記FIFO22はそのためのデータ記憶手段である。通常CPUはキャッシュラインサイズのデータを1単位として演算処理を行う。従って,上記キャッシュラインサイズと同容量のFIFO22を設け,該キャッシュラインサイズのデータのみをDMA転送して上記データ格納領域12に格納することにより,CPU2はデータ格納領域12のデータを最も効率よく処理することができ,その結果,CPUの処理負担が軽減され,システム全体の処理速度が向上することになる。
【0019】
上記信号検出回路21は,DMAC31が制御・転送するデータに関連する所定の信号を検出する信号検出手段の一例であって,例えば,DMAC31によるFIFO22への転送が完了したことを示す転送完了信号(LSビット信号)を検出するものである。一般的にディスクリプタ情報に基づいてDMA転送を行う場合,DMAC31は,データ転送完了後にディスクリプタ情報を更新する。更新されるディスクリプタ情報には転送開始アドレス,転送終了アドレス,転送データ量等に関する情報だけでなく,DMAC31による上記FIFO22への転送が完了したかどうかの情報,或いは転送状態を示す情報も更新される。このとき,上記転送の完了,転送状態を更新する場合,上記DMAC31は上記ディスクリプタ領域11にアクセスし,転送データのステータスデータを送信して上記ディスクリプタ情報を更新する。上記信号検出回路21は,この転送データのステータスデータ内に上記FIFO22への転送が完了したことを示す転送完了信号(LSビット信号)の有無を検出するものである。
また,上記転送完了信号を含む上記ステータスデータは,上記FIFO21のデータが上記データ格納領域12へ転送された後に送信されるのではなく,上記FIFO21へのデータ転送が完了した後に送信されるものである。CPU2に対して上記データ格納領域12へデータが完全に転送される前に処理を再開させないために,上記信号検出回路21は,上記転送完了信号を含むステータスデータをその場に留める機能をも有する。
また,上記信号検出回路21は,DMA転送中継装置20のFIFO22がデータで満杯となったことを示すデータフル信号を検出するものでもある。例えば,カウンタ23(信号検出手段の一例)によりFIFO22のデータ量がカウントされ,データ量が満杯であるとカウントされた場合に出力される信号を検出する。上記転送完了信号及び上記データフル信号が検出されることにより,後述するデータ転送回路24が機能する。
更にまた,上記信号検出回路21は,後述するデータ転送回路24により上記FIFO22内に記憶されたデータが全て上記データ格納領域12に転送されたことを示す信号を検出するものでもある。例えば,カウンタ23によりFIFO22のデータ量がカウントされ,カウンタ23が零をカウントすることによりデータが無い場合に出力される信号を検出する。この信号を検出することにより,後述する不図示の応答信号送信回路が機能する。
【0020】
上記データ転送回路24は,上記信号検出回路21により検出された信号に基づいて,上記FIFO23に記憶されたデータを上記データ格納領域12に転送するデータ転送手段の一例であって,例えば,FIFO22にデータが満杯となったことを示すデータフル信号を検出したことにより,上記FIFO22内のデータを上記データ格納領域12へDMA転送させるものである。この場合,上記FIFO22がキャッシュラインサイズと同容量であれば,キャッシュラインサイズのデータをバースト転送することが望ましい。バースト転送とは,1回のバスアクセス(転送要求)に対して,連続して複数のデータを転送する動作である。これにより,上記FIFO22に記憶し得る容量を1単位として,連続したデータの転送が可能となり,より高速なデータ転送を行うことが可能となる。
また,DMAC31によるFIFO22への転送が完了したことを示す転送完了信号(LSビット信号)を検出することにより,上記FIFO22内のデータを上記データ格納領域12へDMA転送させるものでもある。これにより,FIFO22がデータで満杯とならない場合であっても転送要求されたデータを全て転送することが可能となる。しかし,この場合,FIFO22に記憶されたデータ量がキャッシュラインサイズ(バースト転送データ量)を満たしていない場合は,バースト転送をすることができず,通常のシングル転送によりデータを転送しなければならない。従って,上記FIFO22がデータで満杯とならない状態であっても,上記信号検出回路21が上記転送完了信号を検出したことにより,上記FIFO22の空領域にダミーデータを付加させてFIFO22を強制的にデータで満杯にすることにより上記バースト転送を実現することが可能となる。具体的には,予めプログラムやデータ等に影響を与えないダミーデータをメインメモリ10或いはDMA転送中継装置若しくはイーサネットシステム30内のデータ記憶領域(不図示)に保存して用意しておき,上記転送完了信号(LSビット信号)を検出すると同時に,上記ダミーデータを読み出して上記FIFO22に転送させることで,上記FIFO22をデータで満杯とさせる。これにより,上述したようにバースト転送が可能となり,効率的なデータ転送を行なうことができる。
【0021】
次に,図2のフローチャートに基づいて,本発明の実施の形態に係るDMA転送中継装置20を用いたDMA転送システムAが行う処理手順の一例について説明する。図中のS10,S20…は処理手順(ステップ)番号を示す。処理はステップS10より開始される。尚,本実施形態においては,データはDMA転送方式により転送処理がなされるため,その処理は上記DMAC31によって実行される。
【0022】
外部入出力デバイスから入力されたデータが,上記DMAC31により上記FIFO22に転送されると,上記DMAC31はカウンタ23に対してFIFO22に蓄積されるデータをカウントさせる(S10)。
ステップS20では,上記DMAC31は信号検出回路21に対して,該DMAC31から出力された転送完了信号(LSビット信号)を検出させる。当該転送完了信号はビット列信号であるので,例えば,該ビット信号がアサート状態であるかどうかを判断させることにより転送完了信号の有無を検出することができる。上記S20において転送完了信号が有ると判断されると処理はステップS50に進み,無いと判断されると処理はS30に進む。
ステップS20において,転送完了信号が無いと判断されると,続いてFIFO22がデータで満杯であるかどうかが判断される(S30)。これはカウンタ23により示されるデータ量がFIFOの容量に達しているかどうかにより判断される。ここで,FIFOが満杯でないと判断された場合は,全てのデータの転送がまだ完了しておらず,つまりDMAC31がまだFIFO22へデータを転送中であるため,FIFO22内のデータを上記データ格納領域12へ転送せず,処理は再びステップS20に戻り,S20〜S30のループ処理が実行される。また,ステップS30においてFIFO20がデータで満杯であると判断されると,DMAC31はFIFO22のデータを上記転送回路24に転送させ(S40),DMAC31から引き続き転送されるデータを処理するため再びステップS20〜30のループ処理が実行される。尚,ステップS40及び後述するステップS60で行われるデータ転送処理は,バスの使用頻度やFIFO22に記憶されたデータ量に基づき,データの転送処理方法を選択する閾値を定め,当該転送処理方法を選択して最適なデータ転送処理を行うことが考えられ,その詳細については,後段にて説明する。
また,ステップS20において,転送完了信号が有ると判断されると,DMAC31はFIFO22の空領域に予め用紙されたダミーデータを当該FIFO22に転送し,FIFO22内をデータで満杯状態にして(S30),その後,DMAC31はFIFO22内のデータをデータ転送回路24に転送させる(S60)。転送が完了して,FIFO22内のデータが零であることを上記カウンタ23によりカウントされると,即ちFIFO22内のデータが全て転送されたと判断されると(S70),DMAC31は上記信号検出回路21により留められていた上記転送完了信号を含むステータスデータをディスクリプタ領域11に送信する。当該ステータスデータの送信は,DMAC31がデータ転送回路24にさせるものであってもよい。上記ステータスデータが送信され,上記ディスクリプタ領域11のディスクリプタ情報が書き換えられると,DMAC31は不図示の応答信号送信回路から送信された応答信号を受信し(S80),その後,CPU2に対して割り込み信号を送信する。これにより,DMAC31がCPU2に対して行う割り込み信号の送信を遅延させることができ,その結果,CPU2が転送不完全なデータを処理することにより発生し得るプログラム等の誤作動を排除することができ,システム全体の処理遅延を回避することができる。
【0023】
次に,上記DMA転送中継装置20が,データバス1の使用頻度を判断するバス使用頻度判断回路(バス使用頻度判断手段の一例)を更に具備する実施形態について説明する。このバス使用頻度判断回路は,例えば,DMAC31がCPU2にバスの開放を要求するためのDMA転送要求信号(dmareq)を送信されてから,上記CPU2がバスを開放したことをDMAC31に通知するためのDMA転送応答信号(dmaack)を返信するまでのクロック周波数をカウントすることにより,データバス1の使用頻度を判断するものである。かかる判断結果に基づいて,FIFO22に記憶されたデータを,上記メインメモリ10のデータ格納領域12に転送することが可能になる。具体的には,FIFO22に記憶されたデータ量に見合った上記クロック周波数の閾値を定め,この閾値を基準にデータの転送方法を選択する。選択される転送方法には,▲1▼FIFO22に記憶されたデータにダミーデータを付加してFIFO22を強制的に満杯としてからバースト転送をする方法,或いは▲2▼FIFO22に記憶されたデータをシングル転送する方法,が挙げられる。このように,データバス1の使用頻度によって,転送速度が速い転送方法を選択的に定めることが可能となり,その結果,転送効率を向上させることができる。
【0024】
ここで,図3,図4を用いて,上記クロック周波数に基づくデータの転送の選択方法について説明する。尚,図3,図4におけるバースト転送は,1回のバスアクセス(転送要求)で8バイトのデータを転送するものとする。
【0025】
図3は,データバス1の使用頻度が低い場合であって,DMAC31がDMA転送要求信号を送信してから,2クロック後にCPU2からDMA転送応答信号が返信された場合(上記DMA転送応答信号の返信が早い場合)のデータ転送速度のタイムチャートを示している。つまり,データバス1の使用頻度が低いため,DMA転送要求送信から2クロック後にDMA転送が行えることを意味する。この場合,バースト転送する場合は,DMA転送要求信号が送信されてから10クロック後に転送が完了する。またシングル転送する場合は,転送データが1バイトのときは3クロック,転送データが2バイトのときは7クロック後にデータ転送が完了し,この場合はバースト転送よりもシングル転送の方が,転送速度が速い。しかし,転送データが3バイト以上のときは,DMA転送要求信号が送信されてから転送完了までに少なくとも11クロック要し,この場合はバースト転送によりデータを転送した方が,転送速度が速い。
【0026】
図4は,データバス1の使用頻度が高い場合であって,DMAC31がDMA転送要求信号を送信してから,6クロック後にCPU2からDMA転送応答信号が返信された場合(上記DMA転送応答信号の返信が遅い場合)のデータ転送速度のタイムチャートを示している。つまり,データバス1の使用頻度が高いため,DMA転送要求送信から6クロック後でなければDMA転送が行えないことを意味する。この場合,バースト転送する場合は,DMA転送要求信号が送信されてから14クロック後に転送が完了する。またシングル転送する場合は,転送データが1バイトのときは7クロック後に転送が完了し,この場合はバースト転送よりもシングル転送の方が,転送速度が速い。しかし,転送データが2バイト以上のときは,DMA転送要求信号が送信されてから転送完了までに少なくとも15クロック要し,この場合はバースト転送の法が,転送速度が速い。
このように,バスの使用頻度及び転送データ量によって,最も転送効率のよい転送方法を選択する閾値を求め,その閾値に基づいてデータ転送方法を選択的に定めることにより,転送効率のよいシステム構成とすれば,転送効率が向上し,システム全体の効率も向上する。
【0027】
【実施例】
上記実施形態では,イーサネットシステム30を用いたDMA転送システムAについて説明した。このイーサネットシステム30で扱える1フレームデータの最大長は,イーサネット規格IEEE802.3において,1518バイトと定められている。従って,上記1フレームの最大長の1518バイトに十分対応できるように,最大フレームサイズ以上の一定単位のバッファ領域をメインメモリに確保し,1バッファ領域内では1フレームのみの処理を行えるようにすることが望ましい。従って,メインメモリ10内のデータ格納領域12には2048バイト(800hバイト)単位のバッファに1フレームが格納され得るようにメモリ領域を確保することが考えられる。この場合,ディスクリプタ領域11には,データ格納領域12の転送開始アドレス情報及び該転送開始アドレスから2048バイト分の容量を隔てた転送終了アドレス情報が記載されていることになる。メインメモリ10内の空領域を少なくするために,上記バッファ領域を小さく分けることとしても特に問題は無いが,上記バースト転送が可能であるためには,最低でもCPU2が扱うキャッシュラインサイズのバッファサイズを確保する必要がある。
【0028】
【発明の効果】
以上説明したとおり,本発明によれば,DMAコントローラが送受信するDMA転送に関する所定の信号を検出し,その検出結果に基づきデータ転送が行えるので,転送データ量に関わらず効率のよいデータ転送を可能とすると共に,CPUの処理負担を軽減し,システム全体の処理速度を向上させることが可能となる。更に,バス使用頻度を判断し,その判断結果に基づいてデータ転送が行えるので,例えばバス使用頻度等に応じて,転送速度が速い転送方法を選択することが可能となり,その結果,転送効率を向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るDMA転送方式のシステム構成図。
【図2】本発明の実施の形態に係るDMA転送中継装置が行う処理手順を示すフローチャート。
【図3】データバス1の使用頻度が低い場合のデータ転送速度のタイムチャート。
【図4】データバス1の使用頻度が高い場合のデータ転送速度のタイムチャート。
【符号の説明】
1…データバス
2…CPU
3…外部I/F
10…メインメモリ
11…ディスクリプタ領域
12…データ格納領域
20…DMA転送中継装置
21…信号検出回路
22…FIFOメモリ
23…カウンタ
24…データ転送回路
30…イーサネットシステム
31…DMAコントローラ
32…FIFOメモリ
33…イーサネットコントローラ
61…クロック周波数
62…バースト転送
63…シングル転送
64…DMA転送要求信号
65…DMA転送応答信号
66…○印は1バイト分のデータを示す。
【発明の属する技術分野】
本発明は,DMAコントローラをインターフェースの異なるバス上において接続可能とするDMA転送中継装置,及び該DMA転送中継装置を用いたDMA転送方法,DMA転送システムに関するものである。
【0002】
【従来の技術】
入出力装置からデータを効率よく転送する方法の一つに,メインメモリ等のディスクリプタ領域に記載されたディスクリプタ情報(転送制御情報)に基づいてデータ転送を行うDMA転送方式がある。このDMA転送方式は,DMAコントローラという新たなハードウェアを必要とするが,CPUから干渉されずに入出力装置とメインメモリとの間で直接的にデータの転送が行えるため,転送効率がよく,また,データ転送処理にCPUが関与しないので,CPUの稼働率が軽減されシステム全体の処理の高速化が実現されるという利点がある。
【0003】
このようなDMAコントローラがバスに接続されてDMA転送システムを構成する場合は,該DMAコントローラとバスとのインターフェース(I/F)の整合性を考慮しなければならず,I/Fの異なるバスに上記DMAコントローラを接続する場合は,例えば特許文献1に記載されるバスI/F変換回路を備えた接続中継装置が必要となる。これによれば,バスとDMAコントローラとの間に,当該接続中継装置を設けることにより,I/Fの異なるバス上にも上記DMAコントローラを接続することが可能になる。更に,上記接続中継装置は,ディスクリプタ領域に次の転送データ情報を書き込むことができるので,かかる情報を参照してDMA転送することが可能となり,これにより連続したデータ転送を実現している。
【0004】
【特許文献1】
特開平11−134289号公報
【0005】
【発明が解決しようとする課題】
しかしながら,上記特許文献1の技術により可能となった連続転送は,所詮はシングル転送(1回のバスアクセス(転送要求)に対して1バイトのデータを転送すること)を繰り返し行うことにより,ディスクリプタ領域に記載されたデータ量のみのデータを転送する方法であるので,従来のシングル転送と較べると,その転送速度は向上するものの,例えば,膨大な量のデータの転送が要求された場合は,十分に処理できる転送速度を備えるものではなかった。
従って,本発明は上記事情に鑑みてなされたものであり,その目的とするところは,インターフェースの異なるバスに接続可能でありながら,転送要求されたデータ量に関わらず効率のよいデータ転送を可能とすると共に,CPUの処理負担を軽減しシステム全体の処理速度を向上させることが可能なDMA転送中継装置,DMA転送方法及びDMA転送システムを提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために本発明は,複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置において,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶手段と,上記データ転送に関連する所定の信号を検出する信号検出手段と,上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送手段と,を具備してなることを特徴とするDMA転送中継装置として構成されている。
このように構成されることにより,例えばバス幅の異なるインターフェース間においてデータの転送が要求された場合であっても,要求されたデータ量に関わらず,常に略一定の転送速度で効率のよい転送処理が実現される。
【0007】
ここで,上記データ記憶手段が,キャッシュラインサイズと同容量の1又は複数のFIFOメモリに記憶するものであることが考えられる。
通常,CPUはキャッシュラインサイズのデータを1単位として演算処理を行う。従って,上記キャッシュラインサイズと同容量のFIFOメモリを設け,該キャッシュラインサイズのデータのみを転送して上記所定のメモリへ格納することとすれば,CPUは上記所定のメモリに格納されたデータを最も効率よく処理することが可能となり,これによりCPUの処理負担が軽減され,その結果,システム全体の処理速度が向上する効果を奏する。
【0008】
また,上記所定の信号が,上記データ記憶手段がデータで満杯となったことを示すデータフル信号であることが望ましい。このデータフル信号に基づいてデータを転送することにより,上記データ記憶手段に記憶し得る容量を1単位としたデータの転送が可能となる。この場合,上記データ記憶手段がキャッシュラインサイズと同容量のFIFOメモリであれば,上記データ転送手段が,キャッシュラインサイズのデータをバースト転送するものであることが望ましい。バースト転送とは,1回のバスアクセス(転送要求)に対して,連続して複数のデータを転送する動作である。これにより,上記データ記憶手段に記憶し得る容量を1単位として,連続したデータの転送が可能となり,より高速なデータ転送を行うことが可能となる。
更に,上記所定の信号が,上記DMAコントローラによる上記データ記憶手段への転送が完了したことを示す転送完了信号であってもよい。これにより,例えば,該転送完了信号の検出結果に基づいて,上記データ記憶手段に記憶されたデータの転送を開始することができるので,上記データ記憶手段がデータで満杯とならない場合であっても,転送要求されたデータを全て転送することが可能となる。尚,上記転送完了信号はディスクリプタ領域に記載された情報を更新するために上記DMAコントローラから送信される信号である。
【0009】
また,上記信号検出手段により上記転送完了信号が検出されたことに応じて,上記データ記憶手段の空領域にダミーデータを付加することにより上記データ記憶手段をデータで満杯にさせるダミーデータ付加手段を更に具備するものであってもよい。
例えば,データ記憶手段の容量をバースト転送データ量(バーストサイズ)と定めた場合は,該データ記憶手段がデータで満たされない限り,データをバースト転送することができない。従ってこの場合は,上記データ記憶手段がデータで満杯とならない状態であっても,ダミーデータを付加して,上記データ記憶手段を強制的にデータで満杯とすることで,データのバースト転送を実現することが可能となる。
【0010】
また,上記信号検出手段により検出された上記転送完了信号に基づいて,上記データ転送手段により上記データ記憶手段に記憶された全データが上記所定の記憶部に転送された後に,上記転送完了信号に対する応答信号を上記DMAコントローラに送信する応答信号送信手段を更に具備してなるものであってもよい。
DMAコントローラは,通常,上記応答信号を受信するとCPUに対してCPUの処理を再開させるための割り込み信号を発信する。この場合,例えば,上記データ記憶手段に記憶されたデータの上記所定の記憶部への転送が不完全な状態で,DMAコントローラが割り込み信号を送信すると,CPUは,上記所定の記憶部に格納された転送不完全なデータを処理することになり,その結果,プログラム等の誤作動が生じるおそれがある。従って,上記応答信号送信手段を更に具備することにより,かかる誤作動を排除し,システム全体の処理遅延を回避させている。
【0011】
また,バスの使用頻度を判断するバス使用頻度判断手段を更に具備し,上記データ転送手段が,上記バス使用頻度判断手段による判断結果に基づいて,上記データ記憶手段に記憶されたデータを上記所定の記憶部に転送するものであることが考えられる。
例えば転送データ量が少ない,即ちバス使用頻度が低いと判断された場合は,ダミーデータを付加して複数のデータを連続転送(例えばバースト転送)するよりも,1バイト毎にバスの開放・要求を必要とするシングル転送を行った方が転送処理が速く,また逆に,転送データ量が多い,即ちバス使用頻度が高いと判断された場合は,上記シングル転送よりも上記連続転送を行った方が転送処理が速い場合がある。従って,バス使用頻度に応じて,データの転送処理が速い転送方法を適用することにより,転送効率を向上させることができる。
【0012】
また,本発明は,上記DMA転送中継装置の具備する各手段に相当する処理を行うDMA転送方法として捉えたものであってもよい。
即ち,複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置に用いられるDMA転送方法において,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶工程と,上記データ転送に関連する所定の信号を検出する信号検出工程と,上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送工程と,を具備してなることを特徴とするDMA転送方法として構成することができる。
【0013】
更に,本発明は,少なくとも上記DMAコントローラと上記DMA転送中継装置とを備えて構成される,DMA転送システムとして捉えたものであってもよい。
即ち,複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラと,該DMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置とを備え,上記DMAコントローラが上記DMA転送中継装置を介して上記DMA転送方式によるデータ転送を実行するDMA転送システムにおいて,上記DMA転送中継装置が,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶手段と,上記データ転送に関連する所定の信号を検出する信号検出手段と,上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送手段と,を具備してなることを特徴とするDMA転送システムとして構成することができる。
【0014】
【発明の実施の形態】
以下添付図面を参照しながら,本発明の実施の形態及び実施例について説明し,本発明の理解に供する。尚,以下の実施の形態及び実施例は,本発明を具体化した一例であって,本発明の技術的範囲を限定する性格のものではない。
ここに,図1は本発明の実施の形態に係るDMA転送中継装置を用いたDMA転送システムAを示すブロック図,図2は本発明の実施の形態に係るDMA転送中継装置が行う処理手順の一例を示すフローチャートである。
【0015】
図1を用いて,本発明の実施の形態に係るDMA転送中継装置20を用いたDMA転送システムAの構成について説明する。尚,本実施の形態では,プリンタ,コピー機,ファックス等の画像処理装置に搭載されるイーサネットシステム(「イーサネット」は富士ゼロックス株式会社の登録商標)において利用されるDMA転送システムについて例示する。
図1に示されるように,DMA転送システムAは,CPU2と,ディスクリプタ情報(転送制御情報)を有するディスクリプタ領域11及び転送されたデータを格納するデータ格納領域12を有するメインメモリ10と,本発明に係るDMA転送中継装置20とがデータバス1に接続され,更に上記DMA転送中継装置20にDMA転送方式による転送制御を行うDMAC(DMAコントローラ)31を搭載するイーサネットシステム30が接続されて構成されている。尚,本DMA転送システムAにおけるデータの転送は,上記イーサネットシステム30に設けられた外部インターフェース(外部I/F)3を通じて行われるものとする。
【0016】
CPU2は,上記DMA転送システムAを統括制御する中央演算処理装置の一例である。
上記メインメモリ10はEEPROMやフラッシュメモリ等の不揮発性メモリからなるものであり,上記メインメモリ10のディスクリプタ領域11には,転送開始アドレス,転送終了アドレス,転送データ量,転送完了信号の有無或いは転送完了状態等の複数のディスクリプタ情報が格納されている。また,上記データ格納領域12は,DMA転送されたデータを格納するメモリ領域である。
上記イーサネットシステム30は,例えばLAN等のネットワークを介して外部端末装置或いは外部記憶装置の入出力デバイス等(不図示)とインターフェースをとる外部インターフェース34と,上記入出力デバイスとイーサネットシステム30との間においてネットワークの通信接続環境を制御するイーサネットコントローラ33と,上記入出力デバイス等から転送されたデータを一時的に保管するFIFOメモリ(以下,「FIFO」と称す)32と,上記複数のディスクリプタ情報に基づくDAM転送方式によるデータ転送を制御・実行するDMAC31とを備えて構成されている。このイーサネットシステム30は,例えばプリンタ,コピー機,ファックス等の画像制御装置やパソコン等の汎用システムに適用され得るものである。
【0017】
上記DMA転送中継装置20は,インターフェースが異なるバス,例えば上記イーサネットシステム30において転送し得るデータのバス幅とデータバス1のバス幅とが異なる場合に,そのインターフェースの差異(バス幅の差異)を整合させる不図示のI/F変換回路(例えばブリッジ回路等)と,DMAC31により転送されたデータを一時的に記憶するFIFO22(データ記憶手段の一例)と,上記FIFO22に記憶されたデータ量をカウントし,そのカウント結果を出力するカウンタ23と,上記DMAC31により制御・転送されるデータ或いはデータ転送処理に関連する所定の信号を検出する信号検出回路21(信号検出手段の一例)と,上記検出回路21により検出された信号に基づいて上記FIFO22に記憶されたデータを上記データ格納領域12に転送するデータ転送回路(データ転送手段の一例)とを具備して構成されている。
【0018】
ここで,上記DMA転送中継装置20が具備するFIFO22,信号検出回路21,及びデータ転送回路24について詳述する。
上記FIFO22は,DMAC31により転送されたデータを一時的に記憶するデータ記憶手段の一例であり,本実施形態ではCPU2が有するキャッシュメモリのラインサイズと同容量のFIFOメモリとする。DMAC31が外部の入出力デバイス(不図示)から上記イーサネットシステム30に転送されたデータを,インターフェース(例えばバス幅)の異なるデータバス1を介してDMA転送する場合,インターフェース間の転送方式の差を吸収するために,当該転送データを上記DMA転送中継装置20内に一時的に記憶させる必要がある。上記FIFO22はそのためのデータ記憶手段である。通常CPUはキャッシュラインサイズのデータを1単位として演算処理を行う。従って,上記キャッシュラインサイズと同容量のFIFO22を設け,該キャッシュラインサイズのデータのみをDMA転送して上記データ格納領域12に格納することにより,CPU2はデータ格納領域12のデータを最も効率よく処理することができ,その結果,CPUの処理負担が軽減され,システム全体の処理速度が向上することになる。
【0019】
上記信号検出回路21は,DMAC31が制御・転送するデータに関連する所定の信号を検出する信号検出手段の一例であって,例えば,DMAC31によるFIFO22への転送が完了したことを示す転送完了信号(LSビット信号)を検出するものである。一般的にディスクリプタ情報に基づいてDMA転送を行う場合,DMAC31は,データ転送完了後にディスクリプタ情報を更新する。更新されるディスクリプタ情報には転送開始アドレス,転送終了アドレス,転送データ量等に関する情報だけでなく,DMAC31による上記FIFO22への転送が完了したかどうかの情報,或いは転送状態を示す情報も更新される。このとき,上記転送の完了,転送状態を更新する場合,上記DMAC31は上記ディスクリプタ領域11にアクセスし,転送データのステータスデータを送信して上記ディスクリプタ情報を更新する。上記信号検出回路21は,この転送データのステータスデータ内に上記FIFO22への転送が完了したことを示す転送完了信号(LSビット信号)の有無を検出するものである。
また,上記転送完了信号を含む上記ステータスデータは,上記FIFO21のデータが上記データ格納領域12へ転送された後に送信されるのではなく,上記FIFO21へのデータ転送が完了した後に送信されるものである。CPU2に対して上記データ格納領域12へデータが完全に転送される前に処理を再開させないために,上記信号検出回路21は,上記転送完了信号を含むステータスデータをその場に留める機能をも有する。
また,上記信号検出回路21は,DMA転送中継装置20のFIFO22がデータで満杯となったことを示すデータフル信号を検出するものでもある。例えば,カウンタ23(信号検出手段の一例)によりFIFO22のデータ量がカウントされ,データ量が満杯であるとカウントされた場合に出力される信号を検出する。上記転送完了信号及び上記データフル信号が検出されることにより,後述するデータ転送回路24が機能する。
更にまた,上記信号検出回路21は,後述するデータ転送回路24により上記FIFO22内に記憶されたデータが全て上記データ格納領域12に転送されたことを示す信号を検出するものでもある。例えば,カウンタ23によりFIFO22のデータ量がカウントされ,カウンタ23が零をカウントすることによりデータが無い場合に出力される信号を検出する。この信号を検出することにより,後述する不図示の応答信号送信回路が機能する。
【0020】
上記データ転送回路24は,上記信号検出回路21により検出された信号に基づいて,上記FIFO23に記憶されたデータを上記データ格納領域12に転送するデータ転送手段の一例であって,例えば,FIFO22にデータが満杯となったことを示すデータフル信号を検出したことにより,上記FIFO22内のデータを上記データ格納領域12へDMA転送させるものである。この場合,上記FIFO22がキャッシュラインサイズと同容量であれば,キャッシュラインサイズのデータをバースト転送することが望ましい。バースト転送とは,1回のバスアクセス(転送要求)に対して,連続して複数のデータを転送する動作である。これにより,上記FIFO22に記憶し得る容量を1単位として,連続したデータの転送が可能となり,より高速なデータ転送を行うことが可能となる。
また,DMAC31によるFIFO22への転送が完了したことを示す転送完了信号(LSビット信号)を検出することにより,上記FIFO22内のデータを上記データ格納領域12へDMA転送させるものでもある。これにより,FIFO22がデータで満杯とならない場合であっても転送要求されたデータを全て転送することが可能となる。しかし,この場合,FIFO22に記憶されたデータ量がキャッシュラインサイズ(バースト転送データ量)を満たしていない場合は,バースト転送をすることができず,通常のシングル転送によりデータを転送しなければならない。従って,上記FIFO22がデータで満杯とならない状態であっても,上記信号検出回路21が上記転送完了信号を検出したことにより,上記FIFO22の空領域にダミーデータを付加させてFIFO22を強制的にデータで満杯にすることにより上記バースト転送を実現することが可能となる。具体的には,予めプログラムやデータ等に影響を与えないダミーデータをメインメモリ10或いはDMA転送中継装置若しくはイーサネットシステム30内のデータ記憶領域(不図示)に保存して用意しておき,上記転送完了信号(LSビット信号)を検出すると同時に,上記ダミーデータを読み出して上記FIFO22に転送させることで,上記FIFO22をデータで満杯とさせる。これにより,上述したようにバースト転送が可能となり,効率的なデータ転送を行なうことができる。
【0021】
次に,図2のフローチャートに基づいて,本発明の実施の形態に係るDMA転送中継装置20を用いたDMA転送システムAが行う処理手順の一例について説明する。図中のS10,S20…は処理手順(ステップ)番号を示す。処理はステップS10より開始される。尚,本実施形態においては,データはDMA転送方式により転送処理がなされるため,その処理は上記DMAC31によって実行される。
【0022】
外部入出力デバイスから入力されたデータが,上記DMAC31により上記FIFO22に転送されると,上記DMAC31はカウンタ23に対してFIFO22に蓄積されるデータをカウントさせる(S10)。
ステップS20では,上記DMAC31は信号検出回路21に対して,該DMAC31から出力された転送完了信号(LSビット信号)を検出させる。当該転送完了信号はビット列信号であるので,例えば,該ビット信号がアサート状態であるかどうかを判断させることにより転送完了信号の有無を検出することができる。上記S20において転送完了信号が有ると判断されると処理はステップS50に進み,無いと判断されると処理はS30に進む。
ステップS20において,転送完了信号が無いと判断されると,続いてFIFO22がデータで満杯であるかどうかが判断される(S30)。これはカウンタ23により示されるデータ量がFIFOの容量に達しているかどうかにより判断される。ここで,FIFOが満杯でないと判断された場合は,全てのデータの転送がまだ完了しておらず,つまりDMAC31がまだFIFO22へデータを転送中であるため,FIFO22内のデータを上記データ格納領域12へ転送せず,処理は再びステップS20に戻り,S20〜S30のループ処理が実行される。また,ステップS30においてFIFO20がデータで満杯であると判断されると,DMAC31はFIFO22のデータを上記転送回路24に転送させ(S40),DMAC31から引き続き転送されるデータを処理するため再びステップS20〜30のループ処理が実行される。尚,ステップS40及び後述するステップS60で行われるデータ転送処理は,バスの使用頻度やFIFO22に記憶されたデータ量に基づき,データの転送処理方法を選択する閾値を定め,当該転送処理方法を選択して最適なデータ転送処理を行うことが考えられ,その詳細については,後段にて説明する。
また,ステップS20において,転送完了信号が有ると判断されると,DMAC31はFIFO22の空領域に予め用紙されたダミーデータを当該FIFO22に転送し,FIFO22内をデータで満杯状態にして(S30),その後,DMAC31はFIFO22内のデータをデータ転送回路24に転送させる(S60)。転送が完了して,FIFO22内のデータが零であることを上記カウンタ23によりカウントされると,即ちFIFO22内のデータが全て転送されたと判断されると(S70),DMAC31は上記信号検出回路21により留められていた上記転送完了信号を含むステータスデータをディスクリプタ領域11に送信する。当該ステータスデータの送信は,DMAC31がデータ転送回路24にさせるものであってもよい。上記ステータスデータが送信され,上記ディスクリプタ領域11のディスクリプタ情報が書き換えられると,DMAC31は不図示の応答信号送信回路から送信された応答信号を受信し(S80),その後,CPU2に対して割り込み信号を送信する。これにより,DMAC31がCPU2に対して行う割り込み信号の送信を遅延させることができ,その結果,CPU2が転送不完全なデータを処理することにより発生し得るプログラム等の誤作動を排除することができ,システム全体の処理遅延を回避することができる。
【0023】
次に,上記DMA転送中継装置20が,データバス1の使用頻度を判断するバス使用頻度判断回路(バス使用頻度判断手段の一例)を更に具備する実施形態について説明する。このバス使用頻度判断回路は,例えば,DMAC31がCPU2にバスの開放を要求するためのDMA転送要求信号(dmareq)を送信されてから,上記CPU2がバスを開放したことをDMAC31に通知するためのDMA転送応答信号(dmaack)を返信するまでのクロック周波数をカウントすることにより,データバス1の使用頻度を判断するものである。かかる判断結果に基づいて,FIFO22に記憶されたデータを,上記メインメモリ10のデータ格納領域12に転送することが可能になる。具体的には,FIFO22に記憶されたデータ量に見合った上記クロック周波数の閾値を定め,この閾値を基準にデータの転送方法を選択する。選択される転送方法には,▲1▼FIFO22に記憶されたデータにダミーデータを付加してFIFO22を強制的に満杯としてからバースト転送をする方法,或いは▲2▼FIFO22に記憶されたデータをシングル転送する方法,が挙げられる。このように,データバス1の使用頻度によって,転送速度が速い転送方法を選択的に定めることが可能となり,その結果,転送効率を向上させることができる。
【0024】
ここで,図3,図4を用いて,上記クロック周波数に基づくデータの転送の選択方法について説明する。尚,図3,図4におけるバースト転送は,1回のバスアクセス(転送要求)で8バイトのデータを転送するものとする。
【0025】
図3は,データバス1の使用頻度が低い場合であって,DMAC31がDMA転送要求信号を送信してから,2クロック後にCPU2からDMA転送応答信号が返信された場合(上記DMA転送応答信号の返信が早い場合)のデータ転送速度のタイムチャートを示している。つまり,データバス1の使用頻度が低いため,DMA転送要求送信から2クロック後にDMA転送が行えることを意味する。この場合,バースト転送する場合は,DMA転送要求信号が送信されてから10クロック後に転送が完了する。またシングル転送する場合は,転送データが1バイトのときは3クロック,転送データが2バイトのときは7クロック後にデータ転送が完了し,この場合はバースト転送よりもシングル転送の方が,転送速度が速い。しかし,転送データが3バイト以上のときは,DMA転送要求信号が送信されてから転送完了までに少なくとも11クロック要し,この場合はバースト転送によりデータを転送した方が,転送速度が速い。
【0026】
図4は,データバス1の使用頻度が高い場合であって,DMAC31がDMA転送要求信号を送信してから,6クロック後にCPU2からDMA転送応答信号が返信された場合(上記DMA転送応答信号の返信が遅い場合)のデータ転送速度のタイムチャートを示している。つまり,データバス1の使用頻度が高いため,DMA転送要求送信から6クロック後でなければDMA転送が行えないことを意味する。この場合,バースト転送する場合は,DMA転送要求信号が送信されてから14クロック後に転送が完了する。またシングル転送する場合は,転送データが1バイトのときは7クロック後に転送が完了し,この場合はバースト転送よりもシングル転送の方が,転送速度が速い。しかし,転送データが2バイト以上のときは,DMA転送要求信号が送信されてから転送完了までに少なくとも15クロック要し,この場合はバースト転送の法が,転送速度が速い。
このように,バスの使用頻度及び転送データ量によって,最も転送効率のよい転送方法を選択する閾値を求め,その閾値に基づいてデータ転送方法を選択的に定めることにより,転送効率のよいシステム構成とすれば,転送効率が向上し,システム全体の効率も向上する。
【0027】
【実施例】
上記実施形態では,イーサネットシステム30を用いたDMA転送システムAについて説明した。このイーサネットシステム30で扱える1フレームデータの最大長は,イーサネット規格IEEE802.3において,1518バイトと定められている。従って,上記1フレームの最大長の1518バイトに十分対応できるように,最大フレームサイズ以上の一定単位のバッファ領域をメインメモリに確保し,1バッファ領域内では1フレームのみの処理を行えるようにすることが望ましい。従って,メインメモリ10内のデータ格納領域12には2048バイト(800hバイト)単位のバッファに1フレームが格納され得るようにメモリ領域を確保することが考えられる。この場合,ディスクリプタ領域11には,データ格納領域12の転送開始アドレス情報及び該転送開始アドレスから2048バイト分の容量を隔てた転送終了アドレス情報が記載されていることになる。メインメモリ10内の空領域を少なくするために,上記バッファ領域を小さく分けることとしても特に問題は無いが,上記バースト転送が可能であるためには,最低でもCPU2が扱うキャッシュラインサイズのバッファサイズを確保する必要がある。
【0028】
【発明の効果】
以上説明したとおり,本発明によれば,DMAコントローラが送受信するDMA転送に関する所定の信号を検出し,その検出結果に基づきデータ転送が行えるので,転送データ量に関わらず効率のよいデータ転送を可能とすると共に,CPUの処理負担を軽減し,システム全体の処理速度を向上させることが可能となる。更に,バス使用頻度を判断し,その判断結果に基づいてデータ転送が行えるので,例えばバス使用頻度等に応じて,転送速度が速い転送方法を選択することが可能となり,その結果,転送効率を向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るDMA転送方式のシステム構成図。
【図2】本発明の実施の形態に係るDMA転送中継装置が行う処理手順を示すフローチャート。
【図3】データバス1の使用頻度が低い場合のデータ転送速度のタイムチャート。
【図4】データバス1の使用頻度が高い場合のデータ転送速度のタイムチャート。
【符号の説明】
1…データバス
2…CPU
3…外部I/F
10…メインメモリ
11…ディスクリプタ領域
12…データ格納領域
20…DMA転送中継装置
21…信号検出回路
22…FIFOメモリ
23…カウンタ
24…データ転送回路
30…イーサネットシステム
31…DMAコントローラ
32…FIFOメモリ
33…イーサネットコントローラ
61…クロック周波数
62…バースト転送
63…シングル転送
64…DMA転送要求信号
65…DMA転送応答信号
66…○印は1バイト分のデータを示す。
Claims (10)
- 複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置において,
上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶手段と,
上記データ転送に関連する所定の信号を検出する信号検出手段と,
上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送手段と,
を具備してなることを特徴とするDMA転送中継装置。 - 上記データ記憶手段が,キャッシュラインサイズと同容量の1又は複数のFIFOメモリに記憶するものである請求項1に記載のDMA転送中継装置。
- 上記所定の信号が,上記データ記憶手段がデータで満杯となったことを示すデータフル信号である請求項1又は2に記載のDMA転送中継装置。
- 上記所定の信号が,上記DMAコントローラによる上記データ記憶手段への転送が完了したことを示す転送完了信号である請求項1〜3のいずれかに記載のDMA転送中継装置。
- 上記データ転送手段が,キャッシュラインサイズのデータをバースト転送するものである請求項1〜4のいずれかに記載のDMA転送中継装置。
- 上記信号検出手段により上記転送完了信号が検出されたことに応じて,上記データ記憶手段の空領域にダミーデータを付加することにより上記データ記憶手段をデータで満杯にさせるダミーデータ付加手段を更に具備してなる請求項1〜5のいずれかに記載のDMA転送中継装置。
- 上記信号検出手段により検出された上記転送完了信号に基づいて,上記データ転送手段により上記データ記憶手段に記憶された全データが上記所定の記憶部に転送された後に,上記転送完了信号に対する応答信号を上記DMAコントローラに送信する応答信号送信手段を更に具備してなる請求項1〜6のいずれかに記載のDMA転送中継装置。
- バスの使用頻度を判断するバス使用頻度判断手段を更に具備し,上記データ転送手段が,上記バス使用頻度判断手段による判断結果に基づいて,上記データ記憶手段に記憶されたデータを上記所定の記憶部に転送するものである請求項1〜7のいずれかに記載のDMA転送中継装置。
- 複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置に用いられるDMA転送方法において,
上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶工程と,
上記データ転送に関連する所定の信号を検出する信号検出工程と,
上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送工程と,
を具備してなることを特徴とするDMA転送方法。 - 複数のディスクリプタ情報に基づくDMA転送方式によるデータ転送を実行するDMAコントローラと,該DMAコントローラをインターフェースの異なるバスに接続可能とするDMA転送中継装置とを備え,上記DMAコントローラが上記DMA転送中継装置を介して上記DMA転送方式によるデータ転送を実行するDMA転送システムにおいて,
上記DMA転送中継装置が,上記DMAコントローラにより転送されたデータを一時的に記憶するデータ記憶手段と,
上記データ転送に関連する所定の信号を検出する信号検出手段と,
上記信号検出手段により検出された信号に基づいて上記データ記憶手段に記憶されたデータを所定の記憶部に転送するデータ転送手段と,
を具備してなることを特徴とするDMA転送システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003148237A JP2004355041A (ja) | 2003-05-26 | 2003-05-26 | Dma転送中継装置,dma転送方法,及びdma転送システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003148237A JP2004355041A (ja) | 2003-05-26 | 2003-05-26 | Dma転送中継装置,dma転送方法,及びdma転送システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004355041A true JP2004355041A (ja) | 2004-12-16 |
Family
ID=34044725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003148237A Pending JP2004355041A (ja) | 2003-05-26 | 2003-05-26 | Dma転送中継装置,dma転送方法,及びdma転送システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004355041A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009212544A (ja) * | 2008-02-29 | 2009-09-17 | Panasonic Corp | 画像記録装置及び画像記録方法 |
JP2013535735A (ja) * | 2010-07-29 | 2013-09-12 | サムスン エレクトロニクス カンパニー リミテッド | マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法 |
-
2003
- 2003-05-26 JP JP2003148237A patent/JP2004355041A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009212544A (ja) * | 2008-02-29 | 2009-09-17 | Panasonic Corp | 画像記録装置及び画像記録方法 |
US8355061B2 (en) | 2008-02-29 | 2013-01-15 | Panasonic Corporation | Image record apparatus and image record method for calculating and setting a pre-record volume |
JP2013535735A (ja) * | 2010-07-29 | 2013-09-12 | サムスン エレクトロニクス カンパニー リミテッド | マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3127523B2 (ja) | 通信制御装置およびデータ送信方法 | |
GB2282474A (en) | Buffer memory management for a computer network. | |
JP2004157966A (ja) | エンドポイント・メモリ制御方法、エンドポイント・メモリ制御装置、usb装置および記憶媒体 | |
KR100866204B1 (ko) | 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법 | |
US6167032A (en) | System and method for avoiding host transmit underruns in a communication network | |
US8230137B2 (en) | Network processor, reception controller and data reception processing method performing direct memory access transfer | |
US6445718B1 (en) | Serial interface circuit | |
JP2004355041A (ja) | Dma転送中継装置,dma転送方法,及びdma転送システム | |
US20100106869A1 (en) | USB Storage Device and Interface Circuit Thereof | |
US8842547B2 (en) | Communication control apparatus and control method | |
JP3189269B2 (ja) | ネットワークプリンタ | |
US8547985B2 (en) | Network interface controller capable of sharing buffers and buffer sharing method | |
EP1506488B1 (en) | Data transfer unit with support for multiple coherency granules | |
EP1195685B1 (en) | A process for interfacing a microprocessor with a packet based device and respective system | |
JP5381476B2 (ja) | ファクシミリ通信装置、及び直列信号伝送線割当プログラム | |
TW200837629A (en) | Network interface controller | |
JP2003063118A (ja) | 記録装置、インタフェース制御装置およびインタフェース制御方法 | |
JP5780768B2 (ja) | 情報処理装置、その制御方法、およびプログラム | |
JP5334173B2 (ja) | データ転送システム及びリトライ制御方法 | |
JPH11161466A (ja) | データ転送制御装置 | |
JP2008148181A (ja) | 通信装置及び通信制御方法 | |
JP2006260273A (ja) | サブシステムモジュール、情報処理装置およびサブシステムモジュールにおけるデータ転送方法 | |
JPH11252150A (ja) | ネットワーク接続装置、及びネットワーク接続制御方法 | |
JP2024002146A (ja) | 通信装置、usbデバイス、通信方法、及びプログラム | |
JP4371786B2 (ja) | Usbデバイスコントローラおよびプリンタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050530 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080318 |
|
A131 | Notification of reasons for refusal |
Effective date: 20080325 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080722 |