Forum Discussion
Altera_Forum
Honored Contributor
11 years ago --- Quote Start --- For your product transmitting a lot, may i know what limited its TCP throughput under 100Mbps? Is the Nios II handling TCP/IP stack only or other tasks as well? My project's target is to achieve more than 200Mbps on TCP transmission with GbE. If i let Nios II handling raw mode TCP/IP stack only, do you think if it is possible to achieved the desired throughput? --- Quote End --- The NIOS II was basically running lwIP 99% of the time - but CPU time is needed to transfer the image to memory. We were unable to clock the NIOS II faster than 100Mhz - I believe it should have worked at 125MHz or faster. lwIP is inefficient in places although I contributed code to speed up what I could. Turns out the TCP checksum was a large consumer of time (overall for lwIP) because it has to touch all data. When we switched to putting the data in memory (in hardware) in TCP packet sized chunks *with* the checksum appended, speeds went up some 50%. The checksum at the end was added to the TCP header checksum to get the final checksum. I also put several of the most often called lwIP functions in on chip memory - that made a *huge* difference. A post earlier in this thread lists all of the optimizations I made in the order of impact. 200MbS? Maybe if you're running faster than I am with faster memory and you speed up the checksum (in hardware is best). We have no-copy TCP (UDP) writes too - if you're not using zero copy I would say you won't reach 200MbS. Unfortunately your question can only really be answered by implementing it. BillA