平台:TI C6678处理器,使用CUSTOM board,未使用操作系统
问题描述:多片C6678经过交换机互联,多个源DSP同时向一片目的DSP进行传输时出现丢包问题
TI的各位工程师好,
我在使用6678的SRIO模块时遇到一些困惑,在此请教下各位前辈。CUSTOM板上有多片C6678通过交换机CPS1848进行互联,分别与交换机的不同port相连并绑定各ID号。正常传输时没有问题,DSP间两两传输,可以正常通信。
但是,实际使用时,会遇到有多片DSP同时向一片DSP写数据的情况,此时发现有丢包现象。咨询1848的FAE了解到,SRIO协议能够实现无丢包的数据传输,交换机内部也有特殊的调度机制来保证不会丢包,当交换机的各个port的接收缓存满时,会有满的标志出现,但目前暂时不清楚它怎样使用这个标志。我的理解是,假如交换机缓存已满,可能会导致交换机堵塞而使得传输时间延长,但是由于调度机制的存在,不会出现丢包的问题,此时交换机很有可能使用一种通知机制来通知传输发起方。那么,很可能就是DSP这边的配置有问题。
我使用的传输模式是Stream Write,了解到这是一种不需要回应的写模式。请问,是否因为使用的是这种写模式,DSP端不管有没有传输成功而一直不停传输从而导致了丢包现象?DSP端所谓的流控机制是怎样的?会根据接收方的通知信息而控制自己的流量传输吗,Stream Write的这种没有对方回应的模式下是否支持这种流控机制,没有回应接收方又是怎么通知发送方使其自动进行流量控制的?
如果我上面的分析不对,那么能否给出关于这个问题的一些建议?
谢谢!