SPRACT8 September 2020 66AK2H06 , 66AK2H12 , 66AK2H14
This application report explains how to create the FTP server application on TI K2H device, using TI processor SDK and NDK software offerings with RTOS. The example runs on an Arm A15 core and its network throughput performance is measured. The steps creating the Arm CCS project also apply to DSP CCS project. The same can be extended to other TI devices supported by Processor SDK RTOS, which share the same NIMU driver and NDK stack architecture. In addition, the document illustrates how to measure CPU load using TI UIA tool, to understand if the CPU processing power a limitation factor.
The document largely explores the network performance tuning by various approaches. At first, application level code check and project build optimization are tried for simple throughput boost. Next, the NDK driver is updated with larger TCP buffer sizes. A typical memory allocation issue arises and it is dealt with. Moreover, PC side improvement is studied by analyzing the packet traffic and implementing interrupt coalescing from TCP ACK packet generation perspective. Finally, the K2H NIMU driver is optimized and adjusted for receiving packet interrupt coalescing as an advanced topic.
While the K2H NIMU driver and NDK are TI devices specific, the topics such as TCP window scaling, checksum offloading and interrupt coalescing are not limited to this and they are applicable to generic TCP/IP network performance tuning. Collectively with all the changes, significant throughput improvement is achieved. Certainly there can be more works, like implementing jumbo packets, ensuring the TCP window size is scaled up, offloading checksum calculation to hardware by redesigning the NDK, NIMU interfaces and so forth. Those may be investigated in the future.