如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C64XEDMA优先级及优先级队列下图为EDMA传输请求方框图:从图中我们可以看到,请求有三种:lL2控制器传输请求:L2控制器发布所有用于CACHE服务的传输请求:如存取非CACHE内存、QDMA传输等。对C64xDSP,CACHE服务请求可以在任何优先级上产生,这可以通过CACHE配置寄存器(CCFG)的P位来设置。对于读请求,CACHE控制器对一个L2行,总是以2个突发64字节来请求:首先请求行的MISSED部分。对于写请求,可能是由于回写/回写并无效或逐出等操作引起的,CAHCE控制器以两个突发64字节来完成1行的传输。QDMA传输请求与EDMA通道的限制是一样的。lHPI/PCI传输请求:HPI/PCI自动产生传输请求以服务HOST传输。对于C64xDSP,缺省的HPI/PCI传输请求是中等级别,但是请求的优先级可以通过TRCTL来编程,对于固定模式的HOST存取,HPI/PCI发布单个元素读写请求及短时数据突发增量传输请求。突发尺寸总是以8个或更少的元素进行。lEDMA通道传输请求:EDMA通道传输请求可以发生在Urgent、High、Medium、Low四个级别上,推荐,高优先级用于短时突发和单元素传输,低优先级用于长时块的搬移。下表为C64xDSP数据请求的可编程优先级OPT中的PRI位优先级请求者000Level0:Urgent优先级L2控制器、EDMA、QDMA、HPI/PCI001Level1:High优先级L2控制器、EDMA、QDMA、HPI/PCI010Level2:Medium优先级L2控制器、EDMA、QDMA、HPI/PCI011Level3:Low优先级L2控制器、EDMA、QDMA、HPI/PCI100-111保留保留4个优先级级别都有各自的请求排队队列,每个队列的总长度固定为16;但是每个队列中三个请求者在其中占有的长度可以编程,下表为C64xDSP传输请求队列的分配情况:Queue优先级固定的队列总长度请求者缺省队列长度编程队列长度的寄存器Q0Urgent16L2控制器和QDMAEDMAHPI/PCI620L2ALLOC0(长度范围:0-7)PQAR0(长度范围:0-15)TRCTL(长度范围:0-15)Q1High16L2控制器和QDMAEDMAHPI/PCI260L2ALLOC0(长度范围:0-7)PQAR0(长度范围:0-15)TRCTL(长度范围:0-15)Q2Medium16L2控制器和QDMAEDMAHPI/PCI224L2ALLOC0(长度范围:0-7)PQAR0(长度范围:0-15)TRCTL(长度范围:0-15)Q3Low16L2控制器和QDMAEDMAHPI/PCI260L2ALLOC0(长度范围:0-7)PQAR0(长度范围:0-15)TRCTL(长度范围:0-15)因为一旦一个队列里的请求满了,那么这个队列如果再来请求的时候,EDMA控制器会STALL,所以所有的请求都会不响应,直到那个队列有空闲位置才继续响应事件。所以,我们不要让某个级别的请求太过繁忙,从而导致STALL发生。比较好的情况是:让各个级别的请求的负担基本差不多,这样避免EDMA控制器阻塞。