首先感谢TI上周四在北京举行的研讨会!谢谢!
在研讨会上,向TI的FAE询问了很多问题,也很感谢!但是fftc的问题回来后我还是感到了一些疑惑,希望能得到更多的解答。(LTE场景下)
1.会上FAE说,我们可以把fftc的RX的descriptor写成三个,这样只需要取出,有用的部分就行。并且希望不要用descriptor直接申请数据所在的内容空间,容易导致地址无法对齐。但是即使写成三个Descriptor,都需要从descriptor申请的地址中把数据copy出来,内存消耗始终是不变的,copy有效数据的时间消耗也是不变。这样做,感觉就没有了意义。
2.第二个问题就是fftc与core并行处理的问题。由于目前还没有考虑到上行,所以我采用固定配置的方式配置fftc还是可以接受。但是加上上行后,我已经发现自己的fftc使用方式有问题了。所以这个是需要改进的。但是改进上有几点不明白:
1)每次都传递fftc的配置参数,是不是太消耗时间。我的理解是除了fftc的配置,至少还要要改变RX(循环CP数不一样),这样对每个包都进行配置会不会导致时间消耗的上升。
2)如果选择每次把数据copy进入descriptor申请的地址,这个copy进和copy出的时间消耗怎么减少,这部分挺大的,所以目前我改用edma再做,但是感觉用dma传输数据后又用PKDMA,有点多余,而且edma的lantecy我没考虑,不知道会不会出错。
3)我用的是fftc的lld,感觉各种fftc_request这样函数的时间消耗都大于了fftc计算的时间,这部分时间消耗很大,我不知道我这样做的结果是不是正确的。各种配置的时间消耗大已经大于了dsp-lib中fftc函数的时间。如果每个包再用lld配置一下,时间消耗太大。
3.还是希望能更多了解一下keystone硬核与core并行的策略,在使用aif2的条件下,是不是用core把数据传进fftc后到天线发射这部分就不用管了,但是不使用aif2,那我还要把数据收回到L2或者ddr3,这样是不是就没法实现fftc和core的并行处理,毕竟在整个代码中,fftc数据维护的时间占据的绝大多数。
问题主要是对fftc这块的疑惑,希望得到FAE的解答,谢谢你们!
Alan