On 01.10.2009 00:32, ron minnich wrote:
can anyone even buy an m57sli any more? Was it an unfortunate mistake -- never repeated -- that FLASH was not directly accessible? If the m57sli is an exception and we'll never see this problem again, I say we drop it. Copying all of flash into ram sounds bad. If we have to cope with this problem in future, maybe we're stuck with accessor functions.
But FLASH is so slow I doubt that the cost of an accessor function is going to kill us. Function calls run in nanoseconds, and if SPI really is only 40 MB/sec., then that's 25 ns/byte.
The accessor function has the disadvantage of ruining readability of the code, and it also has to perform these extremely slow accesses every time someone walks the CBFS image.
AFAIK the M57SLI worst case read performance is ~400 kB/s, and the best case is ~855 kB/s. Each one-byte read access to flash needs at least 2.5 us (microseconds), and a three-byte read access needs at least 3.5 us. If your flash chip can handle 33 MHz with the normal read command (instead of the fast read command), flash access latency will be cut in half and data rate will be doubled.
While using accessor functions look somewhat beneficial from a performance standpoint, using accessor functions to run the lzma decompressor is waaaaay slower (I think by at least a factor of 4) than copying the uncompressed code to RAMand decompressing it there.
My suggestion would be to drop support for these large flash chips on M57SLI for now and use the copy-to-RAM mechanism once someone complains. I think Harald Gutmann has such a board with big flash.
Regads, Carl-Daniel