TCP/IP Stack Platform Support Package for EVMDM642
Version
1.94.01.001
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.
Specifically, these tests use
the non-copy mode of TCP, and the extended sockets API that allows applications
to receive non-copy data directly. The socket buffer size used is 8192 bytes. The
test is 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 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:
C6455 DSK rev B
·
Compiler
Options: -o2
·
CPU
Speed: 1GHz
·
Cache
configuration: L2 – 256kB,
L1P – 32kB, L1D – 32kB
·
Code/Data
Placement: Internal memory (IRAM)
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.
C6400
Performance
The following performance
results are measured by using the following test configurations:
·
Board:
DM642 EVM (Rev. 3)
·
Compiler
Options: –o2
·
CPU
Speed: 720MHz
·
Cache
Configuration: 256kB (all internal memory)
·
Code/Data
Placement: External memory (SDRAM)
For the purposes of keeping the
tests "fair", no internal memory was directly utilized - even when
available. The test measures sustained Mb/s throughput of the TCP data payload
(the actual application data). The DM642 internal EMAC is tested with a TCP
socket buffer size of 8KB. Network Management Interface Unit (NIMU) is introduced
in NDK 1.94.00.001. Results show performance of NDK 1.94.00.001 with NIMU and LL architectures
separately.The results are as follows:
With LL Architecture
Driver/Hardware
Used |
TCP Operation |
Sustained Data
Rate |
CPU Loading |
DM642 |
Transmit |
94Mb/s |
36% |
DM642 |
Receive |
94Mb/s |
29% |
With NIMU Architecture
Driver/Hardware
Used |
TCP Operation |
Sustained Data
Rate |
CPU Loading |
DM642 |
Transmit |
94Mb/s |
27% |
DM642 |
Receive |
95Mb/s |
28% |
TCP/IP Stack Library Footprint
The code size measurements are
taken for both the C6400 and C64PLUS.
All values are in 8-bit bytes.
Program Memory
C6400
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.