JP2009151487A - Dma転送制御装置及びデータ転送装置 - Google Patents

Dma転送制御装置及びデータ転送装置 Download PDF

Info

Publication number
JP2009151487A
JP2009151487A JP2007327888A JP2007327888A JP2009151487A JP 2009151487 A JP2009151487 A JP 2009151487A JP 2007327888 A JP2007327888 A JP 2007327888A JP 2007327888 A JP2007327888 A JP 2007327888A JP 2009151487 A JP2009151487 A JP 2009151487A
Authority
JP
Japan
Prior art keywords
transfer
register
dma
control device
setting
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
JP2007327888A
Other languages
English (en)
Inventor
Ryuji Sawai
隆二 澤井
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2007327888A priority Critical patent/JP2009151487A/ja
Priority to US12/212,831 priority patent/US8037216B2/en
Publication of JP2009151487A publication Critical patent/JP2009151487A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

【課題】DMA転送制御装置において、1回のDMA転送設定で一時的な転送内容の変更を可能とする。
【解決手段】DMA転送制御装置は、転送内容を設定するための設定レジスタ群2〜5と、転送実施回数を設定し且つ1回のDMA転送完了毎に値を更新する転送回数レジスタ1と、転送制御部120とを備える。更に、前記DMA転送制御装置は、前記転送内容とは異なる他の転送内容を設定するための二次設定レジスタ群12〜15と、指定回数レジスタ6とを備える。1回のDMA転送を開始する毎に、前記転送回数レジスタ1の値と前記指定回数レジスタ6の値との演算結果に従って、前記設定レジスタ群2〜5と前記二次設定レジスタ群12〜15との何れかの値を、各転送内容毎に選択して転送制御部120に入力する。
【選択図】図1

Description

本発明は、デバイス間でデータを転送するDMA転送制御装置に関する。
従来、CPUを経由させずにデータ転送を転送デバイス間で直接行うDMA転送方法が広く知られており、メモリ同士のデータ転送を両メモリ間で直接行う等において使われている。
DMA転送では、データ転送元開始アドレス、データ転送先開始アドレス、データ転送サイズ等の転送に必要な情報をDMA転送制御装置のレジスタ等に設定し、その後、CPU等が転送開始を制御することにより、転送動作を実行する。転送時にはCPUによる転送制御の必要はないため、CPUを経由する場合に比べて高速にデータ転送を行うことができ、また、CPUの負担を減らすことができる。レジスタ等に設定された転送サイズだけ転送が完了すれば、DMA転送制御装置の設定によって、DMA転送終了割り込みをアサートする。CPUは、DMA転送終了割り込みを検知すると、DMA転送制御装置のレジスタ等を読み込んで、DMA転送の結果やステータスを監視する。
DMA転送の使われ方として、複数の転送要求が送られて、同じ内容の転送又は続きのアドレスからの転送を複数回DMA転送する場合が多い。例えば、周辺デバイスからメモリにデータを転送する場合、周辺デバイスの持つFIFOに蓄積されるデータ量を見て転送要求が発生し、それに応じてDMA転送が行われる。この処理を、決められた総転送数分実施する。
前記の構成において、一回のDMA転送完了毎にCPUに割り込みを発生させていると、その都度転送内容を設定する必要があり、転送効率が悪くなる。また、DMA転送制御装置に転送内容を再設定してDMA転送する前に、FIFOのデータが蓄積されてしまうと、FIFOがオーバーフローを起こして、システムとして不具合が生じてしまう。
このような課題に対し、従来、特許文献1に記載されたDMA転送制御装置がある。このDMA転送制御装置では、転送回数レジスタに設定した回数だけDMA転送を繰り返す。具体的には、図11に示すように、1回のDMA転送要求に対するデータ転送回数を設定するためのCYCレジスタ60と、データ転送を行った回数を計数するCYCカウンタ61と、CYCレジスタ60に保持されている回数だけデータ転送を行う毎に、保持している値を更新するTRNカウンタ52とを設け、TRNカウンタ62が所定値になるまで前記の動作を繰り返してデータ転送を行っている。
特開2002−73527号公報
しかしながら、前記従来の転送制御装置では、DMAの総転送量は、CYCレジスタ60の設定値(A)×TRNカウンタ62の設定値(B)となるが、転送させたいDMAの総転送量が(A)の整数倍であるとは限らないため、(A)×(B)に合わず、端数が生じる場合がある。この時の転送方法として、以下の幾つかの方法が考えられる。
1.(A)×(B)の転送完了後にCPUに割込みを出して、再び端数分の転送を行うように設定して実行する。
2.端数に合わせて転送データ量を小さくするよう設定値を変更し、(A')×(B')とする。
3.ダミー転送を混ぜて、(A)×(B)の大きさになるよう調整する。
しかし、前記各々の方法では、デメリットも発生する。例えば、前記1.では、端数以外の転送を実施した後に、再度端数転送用の設定をする必要があり、ソフト設定の手間が発生する。また、前記2.では、一度のDMA転送要求で転送できるデータ量が小さくなるため、やはり転送が遅くなってしまう。また必要な転送速度に足らなくなり、データがあふれて取り込めない場合が発生することもある。更に、前記3.では、ダミー転送により必要なデータが上書きされてしまう場合もある。
また、前記従来技術では、各DMA転送要求により行うDMA転送に用いる設定レジスタは毎回同じであり、転送元開始アドレスや転送先開始アドレス等も固定又は前回の続きとなるため、一時的に転送量を調整したい場合や転送アドレスを変更したい場合において、柔軟な設定変更ができない。
本発明の目的は、前記で述べたデメリットがなく、端数を含む様々な転送の実現など、柔軟に設定内容を変更できるようにし、より高度なDMA転送制御装置を提供することにある。
前記目的を達成するため、本発明では、変更したい転送内容を設定する二次設定レジスタを設け、元々の転送内容とこの変更したい転送内容とを転送回数に応じて適宜変更可能な構成を採用する。
具体的に、請求項1記載の発明のDMA転送制御装置は、転送内容を設定するための設定レジスタ群と、転送実施回数を設定し且つDMA転送完了毎に値を更新する転送回数レジスタと、転送制御部とを備えたDMA転送制御装置であって、前記転送内容とは異なる他の転送内容を設定するための二次設定レジスタ群と、指定回数レジスタとを備え、DMA転送を開始する毎に、前記転送回数レジスタの値と前記指定回数レジスタの値との演算結果に従って、前記設定レジスタ群と前記二次設定レジスタ群の何れかの値が、各転送内容毎に選択されて前記転送制御部に入力されることを特徴とする。
従って、請求項1記載の発明のDMA転送制御装置では、DMA転送を始める際には、各種レジスタに値を設定し、その後、転送要求によってDMA転送を開始する際には、先ず、現在の転送回数レジスタの値と指定回数レジスタを用いて演算を行い、その結果によって、設定レジスタ群又は二次設定レジスタ群かを選択し、レジスタの値を転送制御部へ入力する。選択する内容は、転送元開始アドレス、転送先開始アドレス、転送サイズ、転送モードなどの各転送内容毎に異なっていても良い。そして、1回のDMA転送が完了すれば、転送回数レジスタの値を更新し、再び演算を行って次のDMA転送時に使用するためのレジスタの値を決定する。転送回数レジスタが0などの所定値に達すれば、DMA転送を完了させてCPUに割込みを出力する。よって、ある特定の転送回数においてのみ転送内容の設定を変更することが、1回のDMA転送設定のみで可能となる。
請求項2記載の発明は、前記請求項1記載のDMA転送制御装置において、前記指定回数レジスタ及び二次設定レジスタ群は、各々、複数設けられ、前記転送回数レジスタの値と前記複数の指定回数レジスタの値との演算結果に従って、前記設定レジスタ群と前記複数の二次設定レジスタ群の何れかの値が、各転送内容毎に選択されることを特徴とする。
従って、請求項2記載の発明のDMA転送制御装置では、複数の指定回数において、その各々で異なる転送内容に設定を変更することが、1回のDMA転送設定のみで可能となる。
請求項3記載の発明は、前記請求項1又は2記載のDMA転送制御装置において、転送サイズ、転送元開始アドレス、転送先開始アドレス、転送モードの一部又は全部が前記設定レジスタ群に格納されることを特徴とする。
従って、請求項3記載の発明のDMA転送制御装置では、転送サイズ、転送元開始アドレス、転送先開始アドレスを入れ替えることにより、総転送数が転送サイズの整数倍とならない場合の転送や、複数アドレスからのデータマージや、複数アドレスへのデータ分散が1回のDMA設定のみで可能となる。また、ある転送回数での転送モードを転送元開始アドレス固定とすることにより、特定アドレスのデータを再取得して転送先開始アドレスに転送すること等が、1回のDMA設定のみで可能となる。
請求項4記載の発明は、前記請求項1又は2記載のDMA転送制御装置において、前記転送回数レジスタと前記指定回数レジスタとの値の一致を前記演算で行うことを特徴とする。
従って、請求項4記載の発明のDMA転送制御装置では、容易に所望の転送回数において転送設定を変更できる。
請求項5記載の発明は、前記請求項1又は2記載のDMA転送制御装置において、前記転送回数レジスタの一部のビットと前記指定回数レジスタの値とを前記演算に用いることを特徴とする。
従って、請求項5記載の発明のDMA転送制御装置では、演算結果を周期的に変化させることが可能となる。
請求項6記載の発明は、前記請求項1又は2記載のDMA転送制御装置において、前記演算内容を決定するための演算レジスタを有することを特徴とする。
従って、請求項6記載の発明のDMA転送制御装置では、演算内容を転送途中で変更したり、チャネル毎に演算内容を変えることが可能となる。
請求項7記載の発明は、前記請求項1記載のDMA転送制御装置において、前記設定レジスタ群、前記転送回数レジスタ、及び指定回数レジスタを、各々、複数チャネル有し、チャネル毎に、使用する設定レジスタ群、転送回数レジスタ及び指定回数レジスタを切り替えることを特徴とする。
従って、請求項7記載の発明のDMA転送制御装置では、指定回数レジスタや二次設定レジスタ群を、複数のチャネル間で共用使用することができる。
請求項8記載の発明は、前記請求項7記載のDMA転送制御装置において、チャネル毎に、前記演算を実施するか、その演算を実施せずに前記設定レジスタ群の該当するチャネルの値を使用するかを制御することを特徴とする。
従って、請求項8記載の発明のDMA転送制御装置では、特定のチャネルのみ設定内容の変更を実施することが可能となる。
請求項9記載の発明は、前記請求項1記載のDMA転送制御装置において、前記二次設定レジスタ群は、二次転送サイズレジスタを有し、前記転送回数レジスタの値が最後のDMA転送でない場合には、前記設定レジスタ群の前記転送サイズレジスタの値を前記転送制御部に入力し、一方、前記転送回数レジスタの値が最後のDMA転送となる場合には、前記二次転送サイズレジスタの値を前記転送制御部に入力することを特徴とする。
従って、請求項9記載の発明のDMA転送制御装置では、転送サイズレジスタの値の端数を二次転送サイズレジスタに設定することにより、総転送数が転送サイズの整数倍とならない場合の転送が1回のDMA転送設定で可能となり、また二次転送レジスタ群を用いるための演算も容易となる。
請求項10記載の発明のデータ転送装置は、前記請求項1〜9の何れかに記載のDMA転送制御装置と、前記DMA転送制御装置の転送元又は転送先としての周辺デバイスとを備えたことを特徴とする。
従って、請求項10記載の発明のデータ転送装置では、周辺デバイスの設定によって1回のDMA転送における転送サイズの値が決定されるが、総転送数は転送サイズの値の整数倍とならないようなDMA転送においても、1回のDMA転送設定で可能となる。
以上説明したように、請求項1〜10記載の発明のDMA転送制御装置によれば、1つ以上の特定の転送回数においてのみ転送内容を変更することを容易に可能としたので、総転送数が転送サイズの整数倍とならない場合や、複数アドレスからのデータマージや、複数アドレスへのデータ分散などの複雑なデータ転送が、1回のDMA設定のみで可能となる効果を奏する。
以下、本発明のDMA転送制御装置の実施形態を図面に基づいて説明する。尚、本発明の実施形態において使用される手法、構成は一例であり、本発明はこれらに限定されるものでない。
(実施形態1)
図1は、本発明の実施形態1におけるDMA転送制御装置100の概略構成を示すブロック図である。
図1において、110は転送情報を格納する設定レジスタ、120は設定レジスタ110より入力される情報を元にデータ転送を制御する転送制御部である。
前記設定レジスタ110内には、転送回数レジスタ1、転送サイズレジスタ2、転送元開始アドレスレジスタ3、転送先開始アドレスレジスタ4、転送モードレジスタ5の5個のレジスタがあり、これ等のレジスタに格納されている転送回数、転送サイズ、転送元開始アドレス、転送先開始アドレス、転送モードは基本転送情報である。尚、これ等の基本転送情報についても、説明に便宜上、それ等を格納するレジスタと同一番号を付しておく。
また、前記設定レジスタ110内には、何回数目であるかを指定する指定回数レジスタ6と、前記転送回数1と指定回数6とを入力して演算する演算回路7が備えられる。更に、設定レジスタ110内には、他に、二次的な転送情報の格納レジスタとして、二次転送サイズレジスタ12、二次転送元開始アドレスレジスタ13、二次転送先開始アドレスレジスタ14、二次転送モードレジスタ15の4個のレジスタが備えられる。これ等のレジスタに格納されている二次的な転送情報(二次転送サイズ、二次転送元開始アドレス、二次転送先開始アドレス、二次転送モード)や前記指定回数についても、以下、それ等を格納するレジスタと同一番号を付して説明する。
更に、図1において、22は、演算回路7の出力により、転送サイズ2か二次転送サイズ12の何れかを選択して転送制御部120に出力するセレクタ、23は、演算回路7の出力により、転送元開始アドレス3か二次転送元開始アドレス13の何れかを選択して転送制御部120に出力するセレクタ、24は演算回路7の出力により、転送先開始アドレス4か二次転送先開始アドレス14の何れかを選択して転送制御部120に出力するセレクタ、25は演算回路7の出力により、転送モード5か二次転送モード15の何れかを選択して転送制御部120に出力するセレクタである。
尚、転送に必要な情報を格納している設定レジスタ110が有している各種レジスタについては、これ等に限るものではなく、例えば、外部端子より転送情報が入力される等、異なる方法により転送情報を与えるように構成しても構わない。また、転送で選択される基本的な転送情報は前記に限らず、転送先連続領域サイズ、転送元データ幅、転送先データ幅など、高度な転送を行うために必要な追加情報も含まれる。
次に、前記のように構成された本実施形態のDMA転送制御装置の動作を説明する。
DMA転送を開始する前に、設定レジスタ110にある各種レジスタに値を設定する。転送回数レジスタ1には、転送制御部120にてDMA転送する回数を設定する。転送制御部120にて実際にDMA転送する内容を、基本転送情報(転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5)に設定し、一時的に変更したい転送情報を二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)に設定する。
また、指定回数レジスタ6には、二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)によって転送したい転送回数(何番目の転送回数目かを示す値)を設定する。
DMA転送要求が来てDMA転送が開始されると、設定レジスタ110より転送制御部120へ必要な情報を送るが、この際に、演算回路7にて転送回数1と指定回数6との比較を行う。比較した結果が一致しない場合、セレクタ22〜25では、基本転送情報(転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5)を選択し、転送制御部120に出力する。一方、一致した場合は、セレクタ22〜25では、二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)を選択し、転送制御部120に出力する。
尚、この際、全ての転送情報において二次転送情報を用いる必要はなく、セレクタ22〜25では各々異なる選択をして、基本転送情報と二次転送情報とを混在させても良い。
転送制御部120では、得られた転送情報の内容でDMA転送を行う。DMA転送が完了すると、設定レジスタ110に通知し、転送回数1を1減算する。また必要に応じて、転送元開始アドレス3、転送先開始アドレス4を更新する。次のDMA転送要求が入力された際には、再び転送回数1と指定回数6とを比較し、転送制御部120に入力する転送情報を決定する。転送回数1が0回となったら、終了割込みを出力してCPUに通知し、全転送完了となる。
尚、これらの説明はあくまで一例であって限定されるものではない。例えば、終了割込みについては、割込みという形態である必要はなく、DMA転送制御装置内のレジスタをポーリングするなどの異なる方法であっても構わない。また、DMA転送要求が別の制御で行われたり、DMA転送要求を必要としない制御であっても構わない。
前記の構成により、本実施形態では、演算回路7の結果によって、基本転送情報でなく二次転送情報を用いてDMA転送できるので、一時的な転送情報の柔軟な設定変更が、1回のDMA転送設定のみで可能となる。
また、演算回路7で転送回数1と指定回数6との比較一致を演算することにより、指定回数にて設定した転送回数においてのみ、転送情報を変更することが容易に可能となる。
(実施形態2)
図2は、本発明の実施形態2におけるDMA転送制御装置100の概略構成を示すブロック図である。
本実施形態のDMA転送制御装置100の構成については、前記実施形態1の図1の構成に加えて、演算回路7における演算を指定する演算内容レジスタ26を持ち、また、指定回数6と二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)を各々m個分備えている。
次に、前記のように構成された本実施形態のDMA転送制御装置の動作を説明する。
指定回数レジスタ6では、1〜mの複数の指定回数を演算回路7に入力する。
演算回路7では、演算内容レジスタ26において設定された演算内容に基づき、入力された複数の指定回数6を参考にして、演算される。尚、演算回路7の出力は、真か偽のみではなく、複数ビット幅を持った結果を持つことができる。
セレクタ22〜25では、この演算回路7の出力に応じて、実行チャネルの基本転送情報(転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5)又は二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)の1〜mの何れかを選択し、転送制御部120に出力する。
尚、これらの説明はあくまで一例であって限定されるものではない。例えば、保有するレジスタの数が転送情報毎に異なっていても構わない。また、セレクタ22〜25では、各々異なる構成を持つことにより、基本転送情報や1〜mの複数の二次転送情報を混在させても構わない。その他の動作については、実施形態1と同様である。
前記の構成により、本実施形態では、複数の転送回数に応じて、使用する二次転送情報を変更し、それぞれ異なる転送情報に一時的に変更することが、1回のDMA転送設定のみで可能となる。尚、演算情報の変更は、転送回数1の変化など、他の要因を参照して変更することも可能である。
また、転送回数1と複数の指定回数6との比較一致を演算する旨を演算内容レジスタ26に設定し、演算回路7で比較一致演算を行うことにより、指定回数6にて設定した複数の転送回数においてのみ、転送情報をそれぞれ異なる転送情報に変更することが容易に可能となる。
更に、演算回路7の出力が基本転送情報のみを選択するよう、演算内容レジスタ26に設定することにより、転送情報の一時的な変更を行わず、基本転送情報のみを用いることが可能となる。
(実施形態3)
図3は、本発明の実施形態3におけるDMA転送制御装置100の概略構成を示すブロック図である。
本実施形態のDMA転送制御装置100の構成については、前記実施形態1の図1の構成に加えて、実行するチャネルを決定するための調停部130、演算回路7における演算を指定するチャネル数(n個)分の演算内容レジスタ26、転送内容の変更を行うかどうかを決定するチャネル数(n個)分のイネーブルレジスタ27を持ち、また、転送回数1と基本転送情報(転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5)は各々チャネル数(n個)分備え、指定回数6と二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)は各々m個分備えている。
次に、前記のように構成された本実施形態のDMA転送制御装置の動作を説明する。
基本転送情報(転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5)では、調停部130にて決定された、次の実行チャネルの基本転送情報を使用する。
次の実行チャネルのイネーブルレジスタ27がオフの時は、転送情報の一時的な変更を行わず基本転送情報を用いて転送を実施する。
また、指定回数レジスタ6では、実行チャネルに応じて1〜mの中から1つ以上の指定回数を選び、演算回路7に入力する。
更に、演算内容レジスタ26では、調停部130で決定された次の実行チャネルの演算内容を演算回路7に入力する。尚、演算回路7の出力は、真か偽のみではなく、複数ビット幅を持った結果を持つことができる。
セレクタ22〜25では、この演算回路7の出力に応じて、実行チャネルの基本転送情報(転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5)又は二次転送情報(二次転送サイズ12、二次転送元開始アドレス13、二次転送先開始アドレス14、二次転送モード15)の1〜mの何れかを選択し、転送制御部120に出力する。
尚、これらの説明はあくまで一例であって限定されるものではない。例えば、保有するレジスタの数が転送情報毎に異なっていても構わない。また、セレクタ22〜25では、各々異なる構成を持つことにより、実行チャネルの基本転送情報や1〜mの複数の二次転送情報を混在させても構わない。また、演算内容レジスタ26を用いず、調停部130で決定される実行チャネルを演算回路7に直接入力して、演算内容を決定しても構わない。また、演算回路7の出力が基本転送情報のみを選択するよう、演算内容レジスタ26に設定することにより、イネーブルレジスタ27を用いずに、転送情報の一時的な変更を行わず基本転送情報のみを用いることが可能となる。その他の動作については、実施形態1と同様である。
前記の構成により、本実施形態では、実行チャネルが変化する毎に、基本転送情報、転送回数と指定回数との演算内容、使用する二次転送情報を変更することが、1回のDMA転送設定のみで可能となる。尚、演算情報の変更は、チャネルの変化だけでなく、転送回数1の変化など、他の要因を参照して変更することも可能でなる。
また、複数の指定回数6を演算回路7に加えて複数の出力を得て、複数の二次転送情報を用いることにより、複数の異なる転送情報に一時的に変更することが、1回のDMA転送設定のみで可能となる。
更に、演算回路7の出力が基本転送情報のみを選択するように、演算内容レジスタ26に設定することにより、任意実行チャネルにおいて、転送情報の一時的な変更を行わず、基本転送情報のみを用いることが可能となる。
(実施形態4)
図4は、本発明の実施形態4におけるDMA転送制御装置100の概略構成を示すブロック図である。
図4において、110は転送情報を格納する設定レジスタであり、120は設定レジスタ110より入力される情報を元にデータ転送を制御する転送制御部である。
前記設定レジスタ110で格納されている基本転送情報としては、転送回数1、転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5の5つの情報がある。
また、転送サイズ2の値が1であるかを判定する判定回路8がある。他に二次的な転送情報として、二次転送サイズ12がある。22は、判定回路8の出力により、転送サイズ2と二次転送サイズ12との何れかを選択して転送制御部120に出力するセレクタである。
尚、データ転送に必要な情報を格納している設定レジスタ110が有している各種レジスタについては、これに限るものではなく、例えば、外部端子より転送情報が入力される等、異なる方法により転送情報を与えるように構成しても構わない。また、データ転送で選択される基本的な転送情報は前記に限らず、転送先連続領域サイズ、転送元データ幅、転送先データ幅など、高度な転送を行うために必要な追加情報も含まれる。
次に、前記のように構成された本実施形態のDMA転送制御装置の動作を説明する。
DMA転送を開始する前に、設定レジスタ110にある各種レジスタに値を設定する。転送回数1には、転送制御部120にてDMA転送する回数を設定する。転送制御部120にて実際にDMA転送する内容を、転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5に設定する。この際、転送させたい総転送数が、転送サイズ2の整数倍に一致しない場合、つまり総転送数がQsum=Qs×Qn+Qf(Qsが転送サイズ)となって端数が発生する場合には、図5に示すように、Qsを転送サイズ2に、Qn+1を転送回数1に、端数であるQfを二次転送サイズ12に各々設定する。
DMA転送要求が来てDMA転送が開始されると、設定レジスタ110より転送制御部120へ必要な情報を送るが、この際に、判定回路8にて転送回数1が1であるかどうか判定する。判定結果が不一致の場合、セレクタ22では、基本転送情報である転送サイズ2を選択し、Qsだけ転送するよう転送制御部120に出力する。一致した場合、セレクタ22では、二次転送情報である二次転送サイズ12を選択し、Qfだけ転送するよう転送制御部120に出力する。
転送元開始アドレス3、転送先開始アドレス4、転送モード5の値はそのまま転送制御部120に送られる。
転送制御部120では、得られた転送情報の内容でDMA転送を行う。DMA転送が完了すれば、設定レジスタ110に通知し、転送回数1を1減算する。また、必要に応じて、転送元開始アドレス3、転送先開始アドレス4を更新する。次のDMA転送要求が入力された際には、再び、転送回数1が1回であるか判定し、転送制御部120に入力する転送サイズを決定する。転送回数1が0回となれば、終了割込みを出力してCPUに通知し、全転送完了となる。
尚、これらの説明はあくまで一例であって限定されるものではない。例えば、終了割込みについては、割込みという形態である必要はなく、DMA転送制御装置内のレジスタをポーリングするなどの異なる方法であっても構わない。また、DMA転送要求が別の制御で行われたり、DMA転送要求を必要としない制御であっても構わない。
前記の構成により、本実施形態では、最後の転送回数においては、転送サイズ2でなく二次転送サイズ12を用いてDMA転送できるので、総転送数が転送回数×転送サイズとならずに端数が生じる場合においても、1回のDMA転送設定のみで可能となる。また、少ないハードウェアの増加のみで実現できる。
(実施形態5)
図6は、本発明の実施形態5におけるDMA転送制御装置100の概略構成を示すブロック図である。
図6において、110は転送情報を格納する設定レジスタ、120は設定レジスタ1より入力される情報を元にデータ転送を制御する転送制御部である。
前記設定レジスタ110で格納されている基本転送情報としては、転送回数1、転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5の情報がある。
また、転送サイズ2の最下位ビットが1かどうかを判定する判定回路8がある。他に、二次的な転送情報として、二次転送サイズ12と、二次転送元開始アドレス13の情報がある。また、22は、判定回路8の出力により、転送サイズ2か二次転送サイズ12の何れかを選択して転送制御部120に出力するセレクタ、23は、判定回路8の出力により、転送元開始アドレス3か二次転送元開始アドレス13の何れかを選択して転送制御部120に出力するセレクタである。
尚、転送に必要な情報を格納している設定レジスタ110が有している各種レジスタについては、これに限るものではなく、例えば、外部端子より転送情報が入力される等、異なる方法により転送情報を与えるように構成しても構わない。また、転送で選択される基本的な転送情報は前記に限らず、転送先連続領域サイズ、転送元データ幅、転送先データ幅など、高度な転送を行うために必要な追加情報も含まれる。
次に、前記のように構成された本実施形態のDMA転送制御装置の動作を説明する。
DMA転送を開始する前に、設定レジスタ110にある各種レジスタに値を設定する。転送回数レジスタ1には、転送制御部120にてDMA転送する回数を設定する。転送制御部120にて実際にDMA転送する内容を、転送サイズ2、転送元開始アドレス3、転送先開始アドレス4、転送モード5に設定する。ここで、2箇所の転送元開始アドレスのデータを1箇所の転送先開始アドレスへマージさせたい場合に、二次転送元開始アドレス13にもう一つの転送元開始アドレスと、二次転送サイズ12にその時に取得したい転送サイズを設定する。
DMA転送要求が来てDMA転送が開始されると、設定レジスタ110より転送制御部120へ必要な情報を送るが、この際に、判定回路8にて転送回数1の最下位ビットが1であるかどうか判定を行う。判定結果が不一致の場合には、セレクタ22では転送サイズ2を、セレクタ23では転送元開始アドレス3を選択して、転送制御部120に出力する。一方、一致した場合には、セレクタ22では二次転送サイズ12を、セレクタ23では二次転送元開始アドレス13を選択し、転送制御部120に出力する。
転送先開始アドレス4、転送モード5の値はそのまま転送制御部120に送られる。
転送制御部120では、得られた転送情報の内容でDMA転送を行う。DMA転送が完了すれば、設定レジスタ110に通知し、転送回数1を1減算する。また必要に応じて、転送元開始アドレス3、転送先開始アドレス4、二次転送元開始アドレス13を更新する。次のDMA転送要求が入力された際は、再び転送回数1が1であるか判定を行い、転送制御部120に入力する転送サイズを決定する。転送回数1が0回となれば、終了割込みを出力してCPUに通知し、全転送完了となる。転送の様子を図7に示す。転送回数毎に、転送サイズ2及び転送元開始アドレス3、又は、二次転送サイズ12及び二次転送元開始アドレス13が交互に用いられ、図中の[1]〜[8]の順序で転送が行われるため、二箇所の転送元データがマージされて転送先へ送られる。
尚、これらの説明はあくまで一例であって限定されるものではない。例えば、終了割込みについては、割込みという形態である必要はなく、DMA転送制御装置内のレジスタをポーリングするなどの異なる方法であっても構わない。また、DMA転送要求が別の制御で行われたり、DMA転送要求を必要としない制御であっても構わない。
前記の構成により、本実施形態では、転送先には、2箇所の転送元から異なるサイズのデータを交互に送ることができる。従って、画素情報などのデータをマージしたい場合に、1回のDMA転送設定のみで可能であり、少しのハードウェア増加のみで実現できる。
また、図1の指定回数レジスタ6を複数個備え、判定回路8による出力結果を複数とし、二次転送元開始アドレス23を複数持つことにより、3つ以上の転送元開始アドレスから選択することが可能となる。3箇所以上の転送元からデータをマージして転送先に送るという複雑な転送が可能となる。
更に、二次転送元開始アドレスの代わりに、二次転送先開始アドレスを備えることにより、図8に示すように、1箇所の転送元データを、二箇所以上の転送先データに振り分けることが可能となる。図中の[1]〜[8]の順序で転送が行われるため、1箇所の転送元データが2箇所の転送先に振り分けて送られる。
また、二次転送元開始アドレスの代わりに、二次転送先開始アドレスと二次転送モードとを備えて、転送モードで転送元開始アドレスの更新あり/更新なしを切り替えることができる場合、図9に示すように、一部の転送元データを2回取得して、各々の転送先に送ることが可能となる。図中の[1]〜[8]の順序で転送が行われるので、一部の転送元データが2箇所の転送先にコピーされて転送される。また、転送先開始アドレスを同一にすれば、一部のデータをコピーして転送することが可能となる。尚、転送モードについては、前記の切り替えに限らないことは明らかである。
(実施形態6)
図10は、本発明の実施形態6におけるデータ転送装置200の概略構成を示すブロック図である。
図10において、本実施形態のデータ転送装置200は、集積回路30、SDRAM40、周辺デバイス50を有する。集積回路30は、CPU31、DMA転送制御装置100、メモリコントローラ32、周辺コントローラ33を有しており、各々がバス34により相互接続されている。メモリコントローラ32は、SDRAM40と接続されており、周辺コントローラ33は周辺デバイス50と接続されている。また、DMA転送制御装置100は、前記実施形態1〜5の何れかで説明したものである。
本データ転送装置200では、DMA転送制御装置100を用いて、周辺デバイス50からSDRAM40へデータを引き抜く場合では、DMA転送制御装置100にて設定される転送サイズは、周辺コントローラ33にあるデータFIFOの容量と周辺デバイス50からFIFOに入るデータ転送速度に依存して決定される。
ここで、引き抜きたいデータの総数が、前記で決定される転送サイズの整数倍でない場合では、転送サイズに対して端数が生じる。この時、前記実施形態4にて説明した方法で二次転送サイズに前記の端数を設定し、転送回数の最後においては二次転送サイズを使用する。この方法により、一回のDMA転送設定で総転送量のデータを引き抜くことができる。また、引き抜く途中で新たにDMA転送設定をすることにより、データの引き抜きが間に合わないというリスク要因がなくなる。
また、SDRAM40から周辺デバイス50へデータを転送する場合においても、DMA転送制御装置100にて設定される転送サイズは、周辺コントローラ33にあるデータFIFOの容量とSDRAM40からFIFOに入るデータ転送速度に依存して決定される。
ここで、転送したいデータの総数が、前記で決定される転送サイズの整数倍でない場合では、転送サイズに対して端数が生じる。この時、前記実施形態4にて説明した方法で二次転送サイズに前記の端数を設定し、転送回数の最後においては二次転送サイズを使用する。この方法により、一回のDMA転送設定で総転送量のデータを転送することができる。また、転送する途中で新たにDMA転送設定をすることにより、周辺デバイス50へのデータ転送が間に合わないというリスク要因がなくなる。
このように、転送サイズの設定が周辺デバイスなどDMA転送制御装置外の要因により決定されるような場合に、本発明は有効であり、外部記憶装置や周辺デバイスに限らないことは明らかであり、集積回路30の内部の機能ブロック等にアクセスする場合にも有効である。
尚、実現の方法については、前記実施形態で述べた複数の構成を組み合わせて実現することも当然可能である。また、上述した本発明の実施形態において使用される手法や構成は一例であり、本発明はこれらに限定されるものでない。
本発明に係るDMA転送制御装置は、転送内容を一時的に変更することが僅かなハードウェアの追加で容易に可能となるので、総転送数が転送サイズの整数倍とならない場合の転送や、複数アドレスからのデータマージや、複数アドレスへのデータ分散などの複雑な転送が1回のDMA設定のみで実現できるDMA転送制御装置として有用である。
本発明の実施形態1のDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施形態2のDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施形態3のDMA転送制御装置の概略構成を示すブロック図である。 本発明の実施形態4のDMA転送制御装置の概略構成を示すブロック図である。 同実施形態の総転送数と設定レジスタとの関係を示した図である。 本発明の実施形態5のDMA転送制御装置の概略構成を示すブロック図である。 同実施形態のデータマージと設定レジスタとの関係を示した図である。 同実施形態の変形例によるデータ振り分けと設定レジスタとの関係を示した図である。 同実施形態の変形例による一部データのコピー振り分けと設定レジスタとの関係を示した図である。 本発明の実施形態6のデータ転送装置の概略構成を示すブロック図である。 従来のDMA転送制御装置の概略構成を示すブロック図である。
符号の説明
1 転送回数レジスタ
2 転送サイズレジスタ
3 転送元開始アドレスレジスタ
4 転送先開始アドレスレジスタ
5 転送モードレジスタ
6 指定回数レジスタ
7 演算回路
8 判定回路
12 二次転送サイズレジスタ
13 二次転送元開始アドレスレジスタ
14 二次転送先開始アドレスレジスタ
15 二次転送モードレジスタ
22〜25 セレクタ
26 演算内容レジスタ
27 イネーブルレジスタ
30 集積回路
31 CPU
32 メモリコントローラ
33 周辺コントローラ
34 バス
40 SDRAM
50 周辺デバイス
100 DMA転送制御装置
110 設定レジスタ
120 転送制御部
130 調停部
200 データ転送装置

Claims (10)

  1. 転送内容を設定するための設定レジスタ群と、
    転送実施回数を設定し且つDMA転送完了毎に値を更新する転送回数レジスタと、
    転送制御部とを備えたDMA転送制御装置であって、
    前記転送内容とは異なる他の転送内容を設定するための二次設定レジスタ群と、
    指定回数レジスタとを備え、
    DMA転送を開始する毎に、前記転送回数レジスタの値と前記指定回数レジスタの値との演算結果に従って、前記設定レジスタ群と前記二次設定レジスタ群の何れかの値が、各転送内容毎に選択されて前記転送制御部に入力される
    ことを特徴とするDMA転送制御装置。
  2. 前記請求項1記載のDMA転送制御装置において、
    前記指定回数レジスタ及び二次設定レジスタ群は、各々、複数設けられ、
    前記転送回数レジスタの値と前記複数の指定回数レジスタの値との演算結果に従って、前記設定レジスタ群と前記複数の二次設定レジスタ群の何れかの値が、
    各転送内容毎に選択される
    ことを特徴とするDMA転送制御装置。
  3. 前記請求項1又は2記載のDMA転送制御装置において、
    転送サイズ、転送元開始アドレス、転送先開始アドレス、転送モードの一部又は全部が前記設定レジスタ群に格納される
    ことを特徴とするDMA転送制御装置。
  4. 前記請求項1又は2記載のDMA転送制御装置において、
    前記転送回数レジスタと前記指定回数レジスタとの値の一致を前記演算で行う
    ことを特徴とするDMA転送制御装置。
  5. 前記請求項1又は2記載のDMA転送制御装置において、
    前記転送回数レジスタの一部のビットと前記指定回数レジスタの値とを前記演算に用いる
    ことを特徴とするDMA転送制御装置。
  6. 前記請求項1又は2記載のDMA転送制御装置において、
    前記演算内容を決定するための演算レジスタを有する
    ことを特徴とするDMA転送制御装置。
  7. 前記請求項1記載のDMA転送制御装置において、
    前記設定レジスタ群、前記転送回数レジスタ、及び指定回数レジスタを、各々、複数チャネル有し、
    チャネル毎に、使用する設定レジスタ群、転送回数レジスタ及び指定回数レジスタを切り替える
    ことを特徴とするDMA転送制御装置。
  8. 前記請求項7記載のDMA転送制御装置において、
    チャネル毎に、前記演算を実施するか、その演算を実施せずに前記設定レジスタ群の該当するチャネルの値を使用するかを制御する
    ことを特徴とするDMA転送制御装置。
  9. 前記請求項1記載のDMA転送制御装置において、
    前記二次設定レジスタ群は、二次転送サイズレジスタを有し、
    前記転送回数レジスタの値が最後のDMA転送でない場合には、前記設定レジスタ群の前記転送サイズレジスタの値を前記転送制御部に入力し、一方、
    前記転送回数レジスタの値が最後のDMA転送となる場合には、前記二次転送サイズレジスタの値を前記転送制御部に入力する
    ことを特徴とするDMA転送制御装置。
  10. 前記請求項1〜9の何れかに記載のDMA転送制御装置と、
    前記DMA転送制御装置の転送元又は転送先としての周辺デバイスとを備えた
    ことを特徴とするデータ転送装置。
JP2007327888A 2007-12-19 2007-12-19 Dma転送制御装置及びデータ転送装置 Pending JP2009151487A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007327888A JP2009151487A (ja) 2007-12-19 2007-12-19 Dma転送制御装置及びデータ転送装置
US12/212,831 US8037216B2 (en) 2007-12-19 2008-09-18 DMA transfer control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007327888A JP2009151487A (ja) 2007-12-19 2007-12-19 Dma転送制御装置及びデータ転送装置

Publications (1)

Publication Number Publication Date
JP2009151487A true JP2009151487A (ja) 2009-07-09

Family

ID=40789990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007327888A Pending JP2009151487A (ja) 2007-12-19 2007-12-19 Dma転送制御装置及びデータ転送装置

Country Status (2)

Country Link
US (1) US8037216B2 (ja)
JP (1) JP2009151487A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101324580B1 (ko) * 2009-12-21 2013-11-04 한국전자통신연구원 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170153994A1 (en) * 2015-11-30 2017-06-01 Robert J. Royer, Jr. Mass storage region with ram-disk access and dma access

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6398757A (ja) * 1986-10-16 1988-04-30 Fujitsu Ltd Dma回路のデ−タチエイン制御方式
JP2002073527A (ja) * 2000-08-25 2002-03-12 Rohm Co Ltd Dmaコントローラ
JP2004118300A (ja) * 2002-09-24 2004-04-15 Rohm Co Ltd Dmaコントローラ
JP2007004667A (ja) * 2005-06-27 2007-01-11 Matsushita Electric Ind Co Ltd Dma転送制御方法
JP2007080037A (ja) * 2005-09-15 2007-03-29 Fujitsu Ltd Dma転送システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613162A (en) * 1995-01-04 1997-03-18 Ast Research, Inc. Method and apparatus for performing efficient direct memory access data transfers
US20040093439A1 (en) 2002-09-24 2004-05-13 Rohm Co., Ltd Data processing control apparatus and DMA controller
KR100703406B1 (ko) 2005-02-04 2007-04-03 삼성전자주식회사 Dma 제어 장치 및 방법
JP2006251916A (ja) 2005-03-08 2006-09-21 Fujitsu Ltd Dma転送システム及びdma転送方法
US7660916B2 (en) 2005-06-16 2010-02-09 Agere Systems Inc. Emulation of independent active DMA channels with a single DMA capable bus master hardware and firmware
US7873757B2 (en) * 2007-02-16 2011-01-18 Arm Limited Controlling complex non-linear data transfers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6398757A (ja) * 1986-10-16 1988-04-30 Fujitsu Ltd Dma回路のデ−タチエイン制御方式
JP2002073527A (ja) * 2000-08-25 2002-03-12 Rohm Co Ltd Dmaコントローラ
JP2004118300A (ja) * 2002-09-24 2004-04-15 Rohm Co Ltd Dmaコントローラ
JP2007004667A (ja) * 2005-06-27 2007-01-11 Matsushita Electric Ind Co Ltd Dma転送制御方法
JP2007080037A (ja) * 2005-09-15 2007-03-29 Fujitsu Ltd Dma転送システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101324580B1 (ko) * 2009-12-21 2013-11-04 한국전자통신연구원 복수의 dma 채널을 갖는 메모리 시스템 및 복수의 dma 채널에 대한 통합 관리 방법

Also Published As

Publication number Publication date
US8037216B2 (en) 2011-10-11
US20090164673A1 (en) 2009-06-25

Similar Documents

Publication Publication Date Title
JP2004287757A (ja) Dma制御装置
US11334504B2 (en) Hybrid architecture for signal processing and signal processing accelerator
US8554962B2 (en) Data transfer control device and data transfer control method
US8780914B2 (en) Parallel processing of network packets
JP2007034392A (ja) 情報処理装置及びデータ処理方法
US7512148B2 (en) Weighted round-robin arbitrator
JP2009151487A (ja) Dma転送制御装置及びデータ転送装置
US7380027B2 (en) DMA controller and DMA transfer method
JP2010282352A (ja) Dma転送制御装置
CN115580572B (zh) 路由方法、路由节点、路由装置和计算机可读存储介质
JP6316593B2 (ja) 半導体装置
JP2008021257A (ja) データ転送装置
JPWO2008105494A1 (ja) Dma転送装置及び方法
JP4882116B2 (ja) バッファ制御装置およびバッファ制御方法
JP2006024134A (ja) Dma転送装置及びdma転送方法
JP2003256356A (ja) Dmaコントローラ
JP5549179B2 (ja) データアクセス装置、データアクセス制御方式、及び、データアクセス制御プログラム
JP2004062401A (ja) 演算プロセッサおよび当該演算プロセッサを用いたカメラ装置
JP3178669B2 (ja) スイッチ回路
JPH07281869A (ja) 演算ネットワーク
CN117155848A (zh) 路由器输入仲裁方法、装置、设备及存储介质
JP2002024157A (ja) Dma処理方法およびdma処理装置
US8073992B2 (en) Data transfer device and data transfer method
JPH07210371A (ja) パイプライン型除算処理装置
JP2009277040A (ja) データ転送処理装置およびデータ転送処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111226

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120904