NDK Support Package for TCI6484

Version 2.00.00.000 

NDK Benchmarking

For the performance measurements supplied here, the benchmarks are designed to use methods for best performance, but that still fit into typical operating paradigms. For example, the socket buffer size is about 8K bytes, not 32K or 64K, which would be unreasonable for some embedded environments.

The following tests were run and benchmarking numbers collected:

  1. Non-copy mode TCP socket application on a 100Mbps Ethernet link
  2. Non-copy mode TCP socket application on a 1000Mbps Ethernet link
  3. Raw Ethernet Socket application on 1000Mbps Ethernet link

The non-copy mode of TCP, and the extended sockets API allow applications to receive non-copy data directly. These tests use a data buffer size of 8192 bytes and socket buffer size of 8192 bytes. On the other hand, the Raw Ethernet sockets allow applications to bypass the IP stack processing and send/receive packets faster. Since no IP fragmentation exists in absence of IP stack processing, the Raw ethernet sockets were tested using data buffer size of 1514 bytes and socket buffer size of 81920 bytes. All the tests are performed by running the data servers on one DSP board and a client application running on a second DSP board connected via a crossover cable.  The CPU load is measured by comparing the amount of work a low priority task can get done when the system is at idle, to when the benchmark applications are executing. The CPU load measurements were obtained from the DSP/BIOS CPU load graphs in CCS.

The values obtained in the next sections measure the throughput and CPU load from the data server (testee) side.  Both the data server and the client application run the C6000 TCP/IP stack.  Previous published values used a client Windows based platform (tester) to gather performance data.  The client application was Windows configuration specific, which caused varied results on different PCs.  Therefore to provide a more consistent way of measuring performance, the new benchmark values are being gathered using two DSP boards connected via crossover cable. The DSP client application (tester) configuration is as follows:

·        Board: TCI6488 EVM

·        Compiler Options: -o2

·        CPU Speed: 1044 MHz

·        Cache configuration: L2 – 256kB,  L1P – 32kB, L1D – 32kB

·        Code/Data Placement: Internal memory (L2RAM)

Similar benchmarks can be measured by using the included NDK Client example program and the send/recv Windows applications in the “winapps” directory.  Note:  The PCs TCP/IP protocol (send/receive) throughput is limited by various factors (machine speed, memory, operating system versions and configurations, etc).  Therefore running these tests may vary from published results.

C64PLUS Performance

The following performance results are measured by using the following test configurations:

·        Board: TCI6484 EVM

·        Compiler Options: –o2

·        CPU Speed: 1000 MHz

·        Code/Data Placement:  Internal memory (IRAM)

The TCI6484 internal EMAC is tested with a TCP socket buffer size of 8KB and Raw ethernet socket buffer size of 80KB. Results show performance of NDK 2.0.0 with NIMU architecture. The results are as follows:

Benchmarking Results:

Driver/Hardware Used

TCP Operation

Ethernet Line Rate

Data Rate Sustained

CPU Loading

TCI6484

Transmit

100Mb/s

95Mb/s

21%

TCI6484

Receive

100Mb/s

87Mb/s

19%

TCI6484

Transmit

1000Mb/s

612Mb/s

50%

TCI6484

Receive

1000Mb/s

517Mb/s

75%

Raw Ethernet Application Results:

Driver/Hardware Used

Raw Ethernet Operation

Ethernet Line Rate

Data Rate Sustained

CPU Loading

TCI6484

Transmit

1000Mb/s

781Mb/s

10%

TCI6484

Receive

1000Mb/s

728Mb/s

9%

 

NDK Support Package Library Footprint

The code size measurements are taken for both the C6400 and C64PLUS.All values are in 8-bit bytes.

Program Memory

C64PLUS

 

The sizing measurements are generated at packaging time and are provided under the lib directory in text files identified by the <lib_name>_size.txt. Please refer to the individual library size file for more sizing details.

 

Data Memory

The Data memory depends on the application. The Client example provided in this release uses a total of 120 KB: 48 KB for scratch pad and 72 KB for Ethernet buffers. This memory can be further reduced if necessary, when the application will allow it.