This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于6670的srio message 功能

6670上srio对于传输大量数据的情况,采用message方式有没有什么限制,与Direct IO相比有什么优缺点?两个device之间(比如DSP和FPGA)采用message方式都可以主动读写对方吗?受host/master的限制吗?

  • lu han 您好:

    第一个问题,我认为,Msg更适合小的数据传输。因为Msg传输不用指定地址,而是根据一个ID默认发送到邮箱中的。所以如果要使用还需要从邮箱中搬出。Direct IO方式可以直接写到对方指定内存,不需要额外的操作。不过,在C66中,Msg可以结合QMSS和Navigator一起操作,可以很方便的实现自动接收。大量数据的传输,Msg也没有什么限制,只是如果邮箱满了就会发送失败,不过这在Direct IO模式下也会有这种情况(FIFO满)。

    第二个和第三个问题,Msg和Direct都可以主动写,不需要对方许可。因为SRIO既是Master设备同时也是SLAVE设备。

    谢谢!

  • King Wang 您好:

       谢谢您的答复。关于mater/slave,如果DSP和FPGA通过SRIO通信,那么DSP和FPGA都可作为master同时向对方进行写操作,从srio接口来看,就是接收的同时也在发送,DSP和FPGA实现双master,这样是否可行?当采用message方式时,当FPGA接收buffer满时如何通知DSP停止发数据,当buffer有空余可以继续接收时如何启动DSP继续发送数据,如何实现?6670的srio,cppi,Qmss有没有实现这种机制?谢谢!

  • lu han您好:

    DSP和FPGA可以实现双master方式,都是全双工模式。

    如果一方由于buffer满堵塞的话,另一方发送将会不成功。这样,在发送方会返回发送失败的信息(从SRIO寄存器中可以读取),接收方根据堵塞的情况不同会有不同的反应。比如,如果是SRIO内部的FIFO满,那是不可见得,所以也没法处理。如果是Msg方式而且是由于没有接收Desc导致的,那么CPPI和QMSS能有类似的反馈接收队列空的信息可以获知。

    谢谢!