我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 3331|回复: 0

[技术文章] C64X EDMA优先级及优先级队列

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2012-5-2 23:40:25 | 显示全部楼层 |阅读模式
C64X EDMA优先级及优先级队列


下图为EDMA传输请求方框图:
0_1329726424ljJt.gif
从图中我们可以看到,请求有三种:
l  L2控制器传输请求:L2控制器发布所有用于CACHE服务的传输请求:如存取非CACHE内存、QDMA传输等。对C64x DSP,CACHE服务请求可以在任何优先级上产生,这可以通过CACHE配置寄存器(CCFG)的P位来设置。对于读请求,CACHE控制器对一个L2行,总是以2个突发64字节来请求:首先请求行的MISSED部分。对于写请求,可能是由于回写/回写并无效或逐出等操作引起的,CAHCE控制器以两个突发64字节来完成1行的传输。QDMA传输请求与EDMA通道的限制是一样的。
l  HPI/PCI传输请求:HPI/PCI自动产生传输请求以服务HOST传输。对于C64x DSP,缺省的HPI/PCI传输请求是中等级别,但是请求的优先级可以通过TRCTL来编程,对于固定模式的HOST存取,HPI/PCI发布单个元素读写请求及短时数据突发增量传输请求。突发尺寸总是以8个或更少的元素进行。
l  EDMA通道传输请求:EDMA通道传输请求可以发生在Urgent、High、Medium、Low四个级别上,推荐,高优先级用于短时突发和单元素传输,低优先级用于长时块的搬移。

下表为C64x DSP数据请求的可编程优先级

OPT中的PRI位

优先级

请求者

000

Level 0:Urgent优先级

L2控制器、EDMA、QDMA、HPI/PCI

001

Level 1:High优先级

L2控制器、EDMA、QDMA、HPI/PCI

010

Level 2:Medium优先级

L2控制器、EDMA、QDMA、HPI/PCI

011

Level 3:Low优先级

L2控制器、EDMA、QDMA、HPI/PCI

100-111

保留

保留


4个优先级级别都有各自的请求排队队列,每个队列的总长度固定为16;但是每个队列中三个请求者在其中占有的长度可以编程,下表为C64x DSP传输请求队列的分配情况:

Queue

优先级

固定的队列总长度

请求者

缺省队列长度

编程队列长度的寄存器

Q0

Urgent

16

L2控制器和QDMA
EDMA
HPI/PCI

6
2
0

L2ALLOC0(长度范围:0-7)
PQAR0(长度范围:0-15)
TRCTL(长度范围:0-15)

Q1

High

16

L2控制器和QDMA
EDMA
HPI/PCI

2
6
0

L2ALLOC0(长度范围:0-7)
PQAR0(长度范围:0-15)
TRCTL(长度范围:0-15)

Q2

Medium

16

L2控制器和QDMA
EDMA
HPI/PCI

2
2
4

L2ALLOC0(长度范围:0-7)
PQAR0(长度范围:0-15)
TRCTL(长度范围:0-15)

Q3

Low

16

L2控制器和QDMA
EDMA
HPI/PCI

2
6
0

L2ALLOC0(长度范围:0-7)
PQAR0(长度范围:0-15)
TRCTL(长度范围:0-15)

因为一旦一个队列里的请求满了,那么这个队列如果再来请求的时候,EDMA控制器会STALL,所以所有的请求都会不响应,直到那个队列有空闲位置才继续响应事件。所以,我们不要让某个级别的请求太过繁忙,从而导致STALL发生。比较好的情况是:让各个级别的请求的负担基本差不多,这样避免EDMA控制器阻塞。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表