Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

eMMC performance

 

I'm having trouble achieving good performance on a Micron eMMC.
I'm working with kernel version 2.6.32.

Writing to the card I get to ~3MByte/s, and reading from it ~10MByte/s.

According to the data sheet the optimal speed is 21MB/s.

Any ideas how to improve the performance?

 

  • Korner,

    Have you tested the same eMMC card on a PC to compare the performance ?  The figure of 21MBps that you quote is this from eMMC vendor data sheet?

    Could you share the spec's relating to this card such as frequency of operation, voltage range, bus width (1, 4, 8 bit etc.).

    regards

    swami

  • Hi

    I've tested an MMCplus card on my PC, and actually got worse results (1-1.5MBps for writing).

    However, the vendor's (Micron) data sheet does say it's supposed to be able to work in 21MBps.

    the frequency is 52MHz, we work on 1.8v and with 4 bit bus.

    Thanks!

  • Korner,

    Pl. note the vendor typically publishes their performance numbers under controlled conditions.  Controller conditions would typically not reflect the actual customer use scenarios.

    Having said that I believe the 21MBps figure that the vendor pusblished is raw bus level throughput data.  Throughput in a system/application context would be far lower.  Pl. note that the voltage of operation might also have to do with the throughput achieved. Can you verify the following information

     

    • Whether 21MBps is in the context of filesystem environment
    • Whether 21MBps was obtained (at what ever level) at 1.8v

    From the infocmation you have quoted it is almost certain that 21MBps is the raw bus level throughput measured (as the max theoretical throughput at 52MHz clock would be close to ~24MBps).

    regards

    swami

  • how can i get the emmc read and wirte speed? before i used the iozone with -s option to specific nominated size test in /data .But the memsize of /data was to lower to system's main memory size ,so the result was untrusted.

    and i tried with dd command

    read:

    busybox dd if=/dev/block/mmcblk0p13 of=/dev/null  bs=4K count=20000

    write:

    busybox dd  of=/dev/block/mmcblk0p13 if=/dev/zero bs=4k count=20000

    Thank you very much!

     

  • Danile,

    I am using the following procedure to do write on MMC/SD and observe the performance. I believe the same can be used for eMMC.

    #mount /dev/mmcblk0p2 /mnt

    #date; dd if=/dev/zero of=/mnt/temp count=100 bs=1M; sync; date

    Similarly, the read performance can be measured.

    Regards,

    Parth

  • Parth,

          Thank you very much for your helping; but i still have some problem with get emmc write/read speed. Please see the following steps:

     1. adb shell my devices and get some info for my /data:

     /dev/block/mmcblk0p13 /data ext4 rw,nosuid,nodev,relatime,barrier=1,data=ordered,noauto_da_alloc 0 0

    2 I use typed the command as you said:

    #busybox date; busybox dd if=/dev/zero of=/data/temp count=100 bs=1M; sync; busybox date

    Tue Sep 27 09:57:57 UTC 2011
    100+0 records in
    100+0 records out
    104857600 bytes (100.0MB) copied, 11.407439 seconds, 8.8MB/s
    Tue Sep 27 09:58:11 UTC 2011

    But the read performance was wired:
    sh-4.1# busybox date; busybox dd if=/data/temp of=/dev/null   bs=1M count=100;>
    Tue Sep 27 10:01:13 UTC 2011
    100+0 records in
    100+0 records out
    104857600 bytes (100.0MB) copied, 0.569172 seconds, 175.7MB/s
    Tue Sep 27 10:01:13 UTC 2011

    I can not believe the read performance as 175.7MB/s. And it must be effected  by system cache.

    can you help me ?

     

     

  • Hi,

     

    It was effected by system cache.

     

    You probably should do 'sync', 'echo 3 > /proc/sys/vm/drop_caches' and umount after write. And then mount again to do read.

     

    Regards,

    Yan

  • Hi liat,

              How you can read/write the eMMC device,can you please provide the steps.

    which is your eMMC driver.

     

    Thanks by,

    Venkat