1、 multicore navigator 是可以实现数据的搬移的,比如 从core0LL2 0X1080 0100 –core1LL2 0X1180 2000,那么在navigator 中肯定有地方指定源地址和目的地地址的,我在看user guide时,看到了host packet descriptor中有 buffer 0 pointer可以指定源地址,但是没有看到在哪里指定目的地地址。RX Flow中register A 可以指定 RX_DEST_QNUM但是没有目的地址。
2、在6678中,可以使用 multicore navigator 完成数据在 core0 core1…..core7, SRIO之间的传输,但是packet在push进一个TX队列后,它怎么知道传给谁? descriptor 中没有相关的描述。 比如core0 要将数据传给 core3, core0怎么知道是传给了core3而不是别的core。
Allen35065:
1. descriptor里的buffer地址决定了接收的数据放在什么地方,RX收到一个包,就从FDQ里取一个desc,分析desc的buffer pointer指向何处,然后把数据拷贝过去;
2. TX queue的映射是固定的,详见Navigator 5.1节Queue map。
Annie Ren:
回复 Allen35065:
谢谢Allen Yin 的回答 !
但还是有些不清楚:
对于1、是说descriptor 中的 buffer 0 pointer中存储的是data要存储的目的地址,而不是源地址吗?
那它怎么知道从哪里取数据(data的源地址在哪定义)?
对于2、我知道对于TX queue是固定的,向特定的queue中push descriptor就可以进行传输,但是它向谁传输(core 还是peripheral)怎么定义的?
Annie Ren:
回复 Allen35065:
谢谢Allen Yin的回答 !
对于1、是说TX queue中的descriptor决定了要transfer的data从哪来,RX queue中接收的descriptor决定了进来的data存在哪里,这样理解对吗?
2、我之前理解的是比如SRIO 要传 data给 core0 就用 SRIO TX queue作为发送队列呢,跟您说的刚好相反。。。真是大错特错了。
Allen35065:
回复 Annie Ren:
是的,你的理解没有问题。
Annie Ren:
回复 Allen35065:
万分感谢!!