I am surprised (shocked):
The AVNET eMMC module on ZUBoard is way slower as any SD card! Why?
The eMMC uses an 8bit interface - SD card just a 4bit interface. I have configured eMMC to use 200MHz clock.
But the eMMC module is way slower as any SD card!
Speed Measurement Results:
eMMC write: 4..5 MB/s (max., seldom at 5 MB/s) - very slow compared to SD cards
eMMC read: varies a lot, typical 20..58 MB/s
SD Cards:
it depends heavily which SD card manufacturer (and SD card type) you use.
ATT: some SD cards can even fail immediately when using, with an I/O Error, bad blocks... Use a fast and
well known brand.
Tested:
SanDisk, 32GB:
write: 10..11 MB/s - OK, but Samsung is 2x faster
read: 34..80 MB/s
Samsung EVO, 512GB:
write: 19..23 MB/s
read: 36..49 (sometimes 121) MB/s
Samsung Pro Plus, 1TB:
write: 20..24 MB/s - a little bit faster, even 180 MB/s read, 130 MB/s write announced
read: 20..55 (55, 99) MBs
--> a little bit faster
Lexar, 64GB:
write: 26 MB/s - the fastest on write
read: 49..79 MB/s
--> this seems to be the fastest
Anyway, the eMMC module is way slower on WRITE, just 4 MB/s, compared to achieve at least 10 MB/s with an SD Card!
So, AVNET eMMC module with Petalinux settings provided is 2.5..5 times SLOWER as SD Card! (on write)
Why?
I assume, some settings for the delay values on SD0/mmc0 are too "strong", or: the mmc0 driver is not optimized, takes
a lot of time to erase and write sectors on eMMC, or not using INT or DMA...?
How to speed up eMMC, so that it is for sure faster as any SD card (esp. due to an 8bit interface)?
I was expecting that eMMC module is at least 2x faster as SD card. But it is not!:
- a write to eMMC module is way slower as to SD card
- maybe, running from eMMC module (reading) is similar to SD card, a bit faster
Maybe, the eMMC module uses a chip with a large page/sector erase delay or the driver is polling for erase done.
CONCLUSION
if you need fast write performance on the system - use a good SD Card and expect as max. write speed (e.g. to record measurement data) as:
10..20 MB/s