Rx210で DMAとDTCはどう違う?

またまた、基本的な質問で恐れ入ります。

RX210のデータシートを読んでいます。そこで質問です。

DMAとDTCの違いってなんでしょう?

アドレス範囲とか、起動条件の設定可能範囲とか、パラメータの違いはデーシートで明らかなのですが、基本機能の差が理解できてません。

コンセプトの違いとか、想定用途とか伺えますでしょうか。

名前からすると別の機能を意図して用意したが出来上がったものは似たものになったのではないかと想像しています。
  • スタッフのチョコです。

    DMAとDTCの違いについて,私が知っている範囲で簡単に説明します。

    DMAコントローラは,DMAの転送元や転送先アドレス等DMA転送に必要な情報をDMAコントローラ内部にもっています。そのため,DMA要求があるとかなり短い時間で転送が可能です。

    一方のDTCは要求のトリガで,そのトリガに対応したRAMから転送に必要なアドレス等の情報を読み出してきて,その情報に基づいて転送を行います。このため,DMA転送に比べて時間が余計にかかります。
    実行時間ではDMAほど速くありませんが,チャネルを割り込みの数まで増やせそうです。
    また,DTCはいろんな付加機能がありそうです。

    つまり,速度はDMA,チャネル数や付加機能はDTCが勝っているようです。
  • 自分のイメージですが、

    ・DMA
    バス優先順位高、高速転送、転送空間512MB

    ・DTC
    バス優先順位中、中速転送、転送空間(16M/SA or 4GB/FA)
    SA:ShortAddressMode、FA:FullAddressMode

    DMAの場合、レジスタの初期設定が済んでしまえばバスマスタを優先して使えるため、データガンガンを転送してくれ、応答性がとてもいいです。

    DTCの場合、転送元、先の制限が緩いおかげ(?)か意外とサイクル数を消費します。自分の経験では1転送完了までに10~15サイクル消費したケースもあります。

    サイクル数の違いはHWマニュアル(16.3.6、17.4.8)をご覧ください。

    転送時間制約、転送空間制約、まずはどちらかで見極めてみてはいかがでしょうか。
    使い勝手は「慣れ」だと思います。
  • チョコさん
    すとさん   

    なんとなくイメージが出来ました。

    DMAが高速で、DTCは高機能の感じでということですね。

    ありがとうございました。
  • Lupin05 さん

    具体的なイメージが大丈夫だと思います。
    もちょっと細かい理解が欲しだと以下のウェブリンクを見てみてください。
    en-sg.knowledgebase.renesas.com/