C64X EDMA优先级及优先级队列
下图为EDMA传输请求方框图:
从图中我们可以看到,请求有三种:
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控制器阻塞。
分享到:
相关推荐
TI C6000平台C64x内核的EDMA实例及分析总结
C64X-DSP-EDMA小结及实例详解,非常有用
C64X特有的汇编指令集 C64X特有的汇编指令集
c64X+的图像处理库,里面有TI提供的各种图像处理函数,可以直接调用。
H.264算法在TI C64x上的移植及优化,介绍H.264算法,并在开发板上移植的代码及优化算法
TMS320C64x的中文资料:包括TMS320C64x 的CPU,TMS320C64x的主要外设,DSP程序的编写与优化,是初学TMS320C64x系列DSP者不可多得的资料
基于EDMA实现TMS320C64X与FPGA的数据传输.pdf
C64x指令集的程序优化,对做优化有很大的帮助
TMS320C64x/C64x+ DSP CPU and Instruction Set
C64x+ IQMath 库 - 虚拟浮点引擎 浮点转换定点
6678手册及 CSL库,包含 以下文件 csl.h csl_chip.h csl_edma3.h csl_emifa.h csl_error.h csl_intc.h csl_intczjs.h csl_tmr.h csl_types.h cslr.h cslr_chip.h cslr_dev.h cslr_edma3cc.h cslr_emifa.h cslr_intc....
TMS320C64x DSP Flash 设计
TI DSP的官方发布信号处理库参考文档。 涉及FIR滤波器,FFT,相关运算,乘除法等常用数学运算。
TMS320C64x+ DSP Little-Endian DSP Library Programmer’s Reference
TI C64x,ddk开发包,包括vport,usart,音频等
TI C6000 integration workshop: TI C64x培训ppt
对DSP C64X系列进行了概括总结,希望能对大家有所帮助
c64x+dsp库函数,里面提供了fft、fir、math等函数,经过了ti的优化,效率很高
TI C6000 integration workshop: TI C64x培训ppt