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.

研讨会后fftc模块的疑惑



首先感谢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

  • 没人回复,自顶一下!

  • 关于上行FFTC使用,可以参考AIF2-FFTC Connection user guide:http://www.ti.com/lit/an/sprabf3/sprabf3.pdf

    1. 意思是说上行经过FFTC出来的数据排成三部分,头尾的数据是pad,中间才是有效的载波数据,所以对于每个symbol,可以准备三个Rx描述符,其中每个符号上的第一,三个描述符上挂接的buffer指向同一块垃圾buffer,主要用于接收每个symbol头尾垃圾数据,覆盖即可;每个symbol第二个描述符上挂接特定的buffer存储有效的频域数据;

    2.  1)一般来说FFTC的配置在小区建立后配置一次即可,不需要实时修改;

    2)数据copy进入descriptor的地址是说下行么?你可以在前面处理的时候直接将数据存放在descriptor中数据预留的位置;

    3)对于前段及下行后端FFTC的处理,其配置都可以在小区建立后完成,不需要实时修改;即使对于每个TTI中的IDFT/DFT,其中很多参数都可以只需配置一次,后面每个TTI配置的参数很少;FFTC的使用主要涉及到CPPI,QMSS和FFTC本身,如果考虑效率的话建议对LLD进行简化;

    3. 如果FFTC-AIF2直连发送的话,如你理解在定时将数据发送到FFTC后就不需要core去管理;在测试的时候不用AIF2,将FFTC处理数据放回一块指定的buffer,此时可以考虑在FFTC Rx侧分配多个Rx descriptor用于将处理结果存放到指定的区域,也不需要core去做维护。

  • 谢谢!

    1.这个问题我在看文档时发现您是对的,但是只是对上行有帮助,下行直接aif了。即使不aif,按您所说可以设置多个RX。

    2. lld既然时效性(一次大概10K周期)是正常的,那我就只有在自己简化一下。

    最后一个问题:

    目前我确实做的就是下行,最后一个问题就是问一下 1ms是14个symbol,原则上建议每次ifft一个symbol么,那RE映射的时候我们的方法可能目前还不能按symbol来影射,需要整个资源格一起,申请descriptor的地址不会需要申请14个block吧;如果几个symbol一起,这样fftc效率应该在3个block以上的时候更高,但是cp160下的时候有点麻烦,这方面希望按照您们的经验指导一下,谢谢!

  • 关于一个packet进几个block这个事一斤刚找到解答,其实就是每个block的CP的配置切换耗费时间,如果不改lld, fftc_rxopen, fftc_txopen这两个函数消耗的时间太多,目前就是怎么减小这两个lld函数的事情了。如果有解答麻烦指教一下,那位仁兄做出来了也请指导一下您们做到了哪个水平?谢谢啦!

  • 你好,我参考了sprabf3.pdf:  Connecting AIF2 to FFTC Guide for KeyStone Devices。

    使用其中指导的AIF2上行和EDMA级联,我想通过QMSS 配置PDSP, 在 RXQ 收到2个描述符后通过 accumulator  event模式触发EDMA,但我不清楚怎么把 accumulator  event 来映射到EDMA上。能说下简要的流程吗?

    谢谢你的回复。