Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

Ethernet performance using TSE in uClinux

Hi all,

I am measuring ethernet performance on a NIOS II based board with an Altera TSE IP Core running uClinux, and it's been disappointing so far. I've done timing using TCP and UDP, and barely get up to 12Mbit/s.

I did some timings using UDP and a 1024 byte message using a bind()ed and connect()ed socket:

Total time to send message (when sendto() or write() is called until it returns): 650us

Time spent in the driver (using atse.c driver, altera_tse.c driver gives similar performance): 140us

Time in the driver waiting for the hardware to send data: 80us

(seems it's doing 100Mbit instead of GbE, but that's a relatively small issue here considering overall performance)

Kernel overhead before entering driver code: ~400us

Kernel overhead after exiting driver code: ~100us

Timing was done by writing to an output pin and using an osciloscope.

It seems there's just a lot of overhead using the linux IP stack on the Nios II. Has anybody been able to get better performance or is it hopeless given the speed of the processor?

55 Replies