Network Performance
The performance of any network depends on several considerations, including the length of the cabling, the size of packets, amount of traffic and performance of the Ethernet controller itself.
TCP throughput
The TCP throughput performance is measured using the IP_SpeedClient_TCP.c sample application on a target and the speed test server counterpart on a PC. It shows the MB/s throughput performance for a contiguous TCP stream.
ARM7 System
Detail | Description |
---|---|
CPU | ARM7 with integrated MAC running with 48MHz |
Tool chain | IAR Embedded Workbench for ARM V6.30.6 |
Model | ARM7, Thumb instructions, no interwork |
Compiler options | Highest speed optimization |
Memory Configuration:
#define ALLOC_SIZE 0xD000
IP_AddBuffers(12, 256);
IP_AddBuffers(18, mtu + 16);
IP_ConfTCPSpace(8 * (mtu-40), 8 * (mtu-40));
Driver Configuration
#define NUM_RX_BUFFERS (2 * 12 + 1)
Measurements
The following table shows the send and receive speed of emNet:
Description | Speed [MB/s] |
---|---|
TCP - socket interface | |
Send speed | Approximately 9.0 |
Receive speed | Approximately 7.5 |
TCP - zero-copy interface | |
Send speed | Approximately 9.0 |
Receive speed | Approximately 11.7 |
Cortex-M3 System
Detail | Description |
---|---|
CPU | Cortex-M3 with integrated MAC running with 96MHz |
Tool chain | IAR Embedded Workbench for ARM V6.30.6 |
Model | Cortex-M3 |
Compiler options | Highest speed optimization |
Memory Configuration
#define ALLOC_SIZE 0x10000
IP_AddBuffers(12, 256);
IP_AddBuffers(12, mtu + 16);
IP_ConfTCPSpace(9 * (mtu-40), 9 * (mtu-40));
Driver Configuration
#define NUM_RX_BUFFERS (36)
#define BUFFER_SIZE (256)
Measurements
The following table shows the send and receive speed of emNet:
Description | Speed [MB/s] |
---|---|
TCP - socket interface | |
Send speed | Approximately 9.4 |
Receive speed | Approximately 11.7 |
TCP - zero-copy interface | |
Send speed | Approximately 9.4 |
Receive speed | Approximately 11.8 |
Response time
The application response time is the processing time it takes to receive and respond to a message from the network. Together with the hardware latency of the PHY and Ethernet controller this results in the Round-Trip-Time (RTT). Additional switches and other network equipment increase the RTT and are not subject of the following results.
The values below have been measured with an emPower (K66) eval board running @168MHz using Fast-Ethernet (100Mbit) and an emPower-Zynq eval board running @666MHz using Gigabit Ethernet in an isolated network.
For further information about how these values have been measured, please refer to our SEGGER Wiki article "Network performance measurement".
Hardware latency
The following table shows the hardware delays specific to the medium and hardware (especially the Ethernet controller) used. These times have to be added on top of the plain application response time of emNet.
Platform | Rx latency | Tx latency |
---|---|---|
emPower (K66), Fast-Ethernet (100Mbit) | Approximately 3.641us | Approximately 1.456us |
emPower-Zynq, Gigabit Ethernet | Approximately 1.699us | Approximately 1.083us |
PING response time
The following table shows the application response time it takes to evaluate a 64 byte PING-request and send back a proper PING-reply. Please note that while the values roughly scale linear with the processing power, there are architectural differences like use of cache, memory latency and other platform specifics that have to be taken into account.
Platform | PING (ICMP) response time |
---|---|
emPower (K66) @168MHz | Approximately 26.449us |
emPower-Zynq @666MHz | Approximately 7.819us |
TCP response time
The following table shows the application response time it takes to evaluate a TCP packet with the minimal payload of 1 byte and send back an echo. Please note that while the values roughly scale linear with the processing power, there are architectural differences like use of cache, memory latency and other platform specifics that have to be taken into account.
Platform | TCP response time |
---|---|
TCP - socket interface | |
emPower (K66) @168MHz | Approximately 83.770us |
emPower-Zynq @666MHz | Approximately 21.100us |
TCP - zero-copy interface | |
emPower (K66) @168MHz | Approximately 50.120us |
emPower-Zynq @666MHz | Approximately 14.949us |