本文转自http://volvet.blogbus.com/logs/8270502.html

(1)    Transfer Request

1)    Transfer Request

每次数据传输都是由Transfer Request(TR)发起的,TR包含了所有数据传输所需要的信息:源地址,目标地址,优先级,传输的元素个数等等。TR根据不同的优先级被塞入相应的队列中,每次排于队列首位的TR被传入EDMA 控制器中,实际的数据传输就开始了。

(2)    L2 Memory/Cache Controller

Level 2 Memory/Cache Controller要实现很多种控制:允许CPU直接访问数据,递交QDMA申请(Quick DMA Request),维护L1 Cache和L2 Cache的一致性(Coherence),另外所有Memory-Mapped Peripherals和CPU的通信也是通过L2 Memory Controller的。

L2 Memory Controller 的 QDMA Request 的申请可能是以下几种情况:CPU主动发起QDMA Request, CPU访问不能Cache的片外内存,L2 Cache读取可以被Cache的片外内存,L2 Cache 上的内容失效时候(把L2 Cache的数据写回片外内存),用户的一些Cache操作。

(3)    Transfer ControllerTransfer Request 按照优先级不同分4个队列 ,分别是Q0(Urgent),Q1(High),,Q2(Medium),Q3(Low),每个队列的长度是16,就是说可以放入16个TR, 这里要注意的是并不是把TR的优先级设为最高,数据就能优先得到传输的, 因为对不同队列TR的处理是并发的,所以要把TR均匀的分步到4个队列中,才能得到最优的数据传输性能。

EDMA控制寄存器是内存映射模式的,EDMA的Channel参数表是一块2k Bytes的片内内存( Parameter RAM -PaRAM )。每一个Channel的参数长度为24Bytes , 因为C64x CPU有64个Channel , 所以C64x CPU有64×24 Bytes作为EDMA到参数表,剩下的部分内存作为Link Parameter Set。

EDMA的PaRAM的地址是:0x01A00000-0x01A00017  Parameter For Event 1

0x01A00018-0x01A0002F  Parameter For Event 2

………

0x01A005E8-0x01A005FF  Parameter For Event 63

EDMA Parameter的格式如下:

Option - 4 Bytes     EDMA Transfer Configuration Option

Source Address - 4 Bytes   源地址

Array/Frame Count  - 2 Bytes  需要传输的Frame或者Array的个数  ( Frame指1D,Array指2D )

Element Count  - 2 Bytes  每个Frame 或者 Array 中 Element 的个数

Destination Address - 4 Bytes   目的地址

Frame/Array Index - 2 Bytes  1D时候是指被拷贝到目标地址的每个Frame之间的偏移, 2D时候是指每个Array的偏移。

Element Index - 2 Bytes    1D时候有效, 2D时候被ignore,是指被拷贝到目的地址的Frame中每个Element的偏移。

Element Count Reload - 2 Bytes

Link Address - 2 Bytes

要完成多种功能的数据拷贝功能 比如说数据重排等等, 往往需要借助Frame/Array Index和Element Index的合理设置。

EMDA Transfer Configuration Option 的定义如下:

Bits 31-28 Priority -  000: Urgent

001: High

010: Medium

011: Low

Others: Reserved

Bits 28-27 ESize -    00:32 Bits Element

01:16 Bits Element

10: 8 Bits Element

11: Reserved

Bits 26  2DS -  0: Source 1D模式

1: Source 2D 模式

Bits 25-24  SUM -  00: Same Source Address, 是指用相同值填充目标地址的情况 , 类似DAT操作时候DAT_fill的情况。

01: Increment Source Address ,  拷贝完一个值后,Source Address + 1。

10: Decrement Source Address, 拷贝完一个之后,Source Address – 1。

11: Index 模式, 在2D模式下这个值无效果,会导致不可预料的情况,在1D模式下,表示拷贝完一个值后,Source Address + Element Index。

Bits 23  2DD - 0: Destination 1D模式

1: Destination 2D 模式

Bits 22-21  DUM -  Destination Address Update Mode , 与SUM 的定义相同。

Bits 20  TCINT - 0:  Transfer Complete Interrupt Disable

1:  Transfer Complete Interrupt Enable

Bits 19-16  TCC -  Transfer Complete Interrupt Code 的低4位

Bits 15 -  Reserved

Bits 14-13  TCCM - Transfer Complete Code的高2位。这个值等同与传输结束时候的事件代号。

Bits 12  ATCCINT -  Alternate Transfer Complete Interrupt

Bits 11 - Reserved

Bits 10-5  ATCC  - Alternate Transfer Complete Interrupt Code

Bits 4 - Reserved

Bits 3   PDTS - Peripheral Device Transfer Mode for Source

Bits 2   PDTD - Peripheral Device Transfer Mode for Destination

Bits 1   Link -  1: Link Enable

0: Link Disable

Bits 0   FS -  0:Channel is Element/Array synchronization

1:Channel is Frame/Block synchronization

QDMA跟EDMA很象,不同之处就是QDMA的 Parameter中没有

Element Count Reload和Link Address , QDMA 的Parameter的长度是20 Bytes。另外QDMA

的Transfer Configuration Option没有ATCCINT,ATCC,PDTS,PDTD,Link等参数,这说明

QDMA不能用来做外围设备跟RAM之间的数据传输, 仅仅是L2 Memory跟Extern Memory

之间的数据传输。

C64x EDMA Architecture相关推荐

  1. C64X EDMA优先级及优先级队列

    C64X EDMA优先级及优先级队列 下图为EDMA传输请求方框图: 从图中我们可以看到,请求有三种: l L2控制器传输请求:L2控制器发布所有用于CACHE服务的传输请求:如存取非CACHE内存. ...

  2. 基于DSP的数字图像处理(1)

    基于DSP的数字图像处理(1) <script> var $tag='数字图像处理,dsp芯片,预处理,模式匹配,识别'; var $tag_code='23ca84b655eca5142 ...

  3. EDMA 和QDMA 还看不懂,先收藏着

    1)EDMA概要 ①EDMA数据传输有两种发起方式: ü         CPU发起的EMDA数据传输(非同步方式):需要传输时,CPU设置ESR寄存器的相应位为1,从而触发一个EDMA事件的产生,事 ...

  4. DSP模块之:EDMA

    转自:http://datou97.blog.51cto.com/2989061/731810 EDMA:增强型直接内存存取(EDMA),Enhanced Direct Memory Access,是 ...

  5. EDMA 和QDMA

    http://hi.baidu.com/phoebus08/blog/item/5d3ccffba88452d6b58f316d.html 1)EDMA概要 ①EDMA数据传输有两种发起方式: ü   ...

  6. DSP原理学习笔记--第七章--增强直接存储器访问(EDMA)

    第七章 增强直接存储器访问(EDMA) 第七章 增强直接存储器访问(EDMA) DMA 数据传输 EDMA的特点 EDMA控制器的结构 EDMA传输中的术语 EDMA传输方式 同步事件 EDMA通道与 ...

  7. C6000 EDMA 使用心得总结

    转载自左超的CSDN博客http://blog.csdn.net/henhen2002/article/details/4464166 几天调下来,总感觉TI的文档语焉不详.不过想想也对,250页的文 ...

  8. EDMA - DMA QDMA 完美总结

    EDMA - DMA QDMA -------------------------------- 做个参考,和6487/8 的EDMA3的user guide有点区别. --------------- ...

  9. 基于TI C64X DSP高清视频编、×××软硬件技术概要

    1 技术参数一览 Items Encoder Decoder 备注 硬件参数 CPU TMS320DM642(720MHz) 兼容C64X 视频D/A(A/D) ADV7401(74.25MHz) A ...

  10. 激光雷达Lidar Architecture and Lidar Design(下)

    激光雷达Lidar Architecture and Lidar Design(下) Considerations on Lidar Design 双基地还是单基地? 双轴还是同轴? 几何重叠 向上还 ...

最新文章

  1. .net中的对象序列化(1): 序列化是什么, 以及一个简单的例子
  2. linux下添加用户并赋予root权限
  3. 第一个SSM整合的Maven入门级项目(超详细步骤)
  4. VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
  5. 按自己喜欢的方式过一生?
  6. Jmeter参数化的理解
  7. C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信
  8. mysql查询开启事务_MySQL中的查询事务问题
  9. 25@JSP_day09
  10. 02205微型计算机原理与接口技术自考,2012年微型计算机原理与接口技术自考题模拟(2)...
  11. Django入门-helloworld
  12. python模拟内置函数all_python内置函数all和any
  13. 技术干货 | SDN controller高可用之路
  14. 把图片url 伪静态 php,thinkphp5系列之URL伪静态(生成优雅的URL)
  15. STREAM内存带宽测试工具介绍及其内部实现
  16. C#/VB.NET 如何旋转PDF页面
  17. Win10将用户名修改为英文
  18. PHP即充宝v3.0实例
  19. 如何登录华为云服务器
  20. 运用C语言指针知识实现对一个二维数组转置

热门文章

  1. 拼多多直通车有作用?新手为什么不适合开直通车?
  2. ILSVRC2012下载+训练
  3. [DCDC](DC-DC) 电感计算有难题 ? 你我一起来学习
  4. 微信小程序弹窗提示:wx.showToast、wx.showModal、wx.showLoading的使用场景与实现
  5. libreelec投屏_我的NAS+HTPC折腾之旅 篇八:LibreELEC部署媒体中心服务器emby和jellyfin篇...
  6. kodi树莓派_【树莓派】树莓派与XBMC及Kodi、LibreELEC插件(二)
  7. 值得总结!推荐10款超实用的神级办公网站和软件,效率翻倍
  8. 支付宝小程序实现自定义头部导航栏
  9. 2012年软件评测师真题精选
  10. Python中显示图片