[En-Nut-Discussion] network throughput gain (nicrtl output)

Waschk,Kolja enut at ixo.de
Sun Nov 30 22:54:46 CET 2003


> If I'm not wrong, this is even 1 cycle faster.

> .L94:
>  ld r24,Z+
>  sts -16376,r24
>  subi r22,lo8(-(-1))
>  sbci r23,hi8(-(-1))
>  brne .L94

4+4+1+1+2 = 12 cycles per byte, whereas

>> .L94:
>>   ld r24,X+
>>   std Y+16,r24
>>   subi r18,1
>>   brcc .L94
>>  subi r19,1
>>  brcc .L94

4+4+1+2 = 11 cycles most of the time,
4+4+1+1+1+2 = 13 cycles only at 8 bit boundary

For 536 bytes that's about 9% gain

To push throughput even more, I'm currently playing with the idea of
implementing an operating mode where m128 issues a read from RAM and some logic
(CPLD) translates this into a write access to the MAC at the same time (RAM
outputs data, MAC reads it).  Thus no explicit write instruction would be
needed, and the inner loop would shrink to 7 cycles. Anyone tried something
similar before?

Kolja

-- 
mr. kolja waschk - haubach-39 - 22765 hh - ger
phone +49 40 889130-34 - fax -35 - e-mail s.a.




More information about the En-Nut-Discussion mailing list