DSPRelated.com
Forums

EDMA transfer elment size

Started by Pavel Kyshtymov August 7, 2003
Hello all!

I have to program data transfers of consecutive blocks between
a peripheral and SDRAM using EDMA on 'C6711 (in both directions). The
peripheral (WIZnet i2Chip W3100A) has an 8-bit async interface, and SDRAM is
32-bit wide. As far as I know, working with SDRAM is more efficient when
using successive 32-bit accesses, so ESIZE == 00 would be the best decision.
But the size of data block can vary from dozens of bytes to 8 KB, and it isn't
always divisible by 4. So, if I want to use 32-bit element size, I have
to take care of a 0-3 bytes tale, using a chained EDMA transfer or a direct
access
to the memory (in last case I'll have performance problems with a cache, because
SDRAM buffers are cleaned/flushed before transfers).
The question: is a performance profit of using 32-bit accesses worth of
taking additional care of data tail? By the way, in case of 32-bit element
size peripheral's EMIF has to split every 32-bit access to four 8-bit accesses
because of WIZnet's interface. Maybe, fast SDRAM accesses must be on
successive CLKs, and this procedure will eat all the profit?
Unfortunately, I'm extremely short in time, so I don't have an
opportunity to experiment :(((( I suppose that everyone has to solve
similar problems from time to time, and I'll be very grateful to any
advice from experienced person. Maybe there are some other factors
and even completely different approaches to this problem...

Thanks in advance!

--
Best regards,
Pavel mailto: