sakoman.com

MicroSD card performance test results PDF Print E-mail

NOTE: Work in progress, additional results will be added periodically

Introduction

Anyone who has worked with SD cards in embedded systems has probably noticed that the brand of card can make a dramatic difference in performance.  This series of tests shows as much as a 12x difference in performance between best and worst cards in real world embedded tasks.

It also shows that the "class" ratings used by manufacturers as a measure of performance are not reliable indicators of performance in embedded systems.  In fact, some manufacturer's class 2 and class 4 rated cards routinely outperform cards rated as class 6 or class 10!

The SD card specification defines the following speed ratings:

  • Class 0 - These class cards do not specify performance
  • Class 2 is more than or equal to 2 MB/sec write performance
  • Class 4 is more than or equal to 4 MB/sec write performance
  • Class 6 is more than or equal to 6 MB/sec write performance
  • Class 10 is more than or equal to 10 MB/sec write performance

Note that the class ratings only specify write performance, which is a legacy of SD cards' origin as storage media for digital cameras.  Read speed is not a factor in the rating.

Though the class ratings are defined by the SD Card Association (SDA), they not verified by any independent evaluation process.

For additional background on SD card internal operations, see this article.

The tests

The following tests were run on an OMAP3730 Overo Fire/Tobi system with 512 MB of RAM using new, freshly partitioned and formatted microSD cards running the GNOME r12 release from this site.

The initial benchmark was a "first boot" test, which measured the elapsed time for the first boot of a GNOME r12 image.  The time was measured from the kernel "Remounting root file system..." message to the login prompt.  The first boot completes the installation process, and involves a good mix of random reads and writes to the root file system.

The second test was the standard iozone file system benchmark.  The benchmark tests file I/O performance for a wide variety of file system operations including: read, write, re-read, re-write, read backwards, read strided, fread, fwrite, freread and frewrite.

The results

Below is a brief summary table highlighting the first boot time (lower is better) and the izone measured read and write data rates (higher is better) for a 512MB file with 16KB record length.  Click on the details link for each entry to open a new web page with plots of the results as well as the raw data.  Navigate between the plots and raw data by using the tabs at the bottom of the newly opened page.  For help interpreting the plots and raw data, see the Iozone File System Benchmark document.

Brand Capacity Class First boot (secs) Write (MB/s) Read(MB/s) iozone results
ADATA 4GB 6
ADATA 8GB 6 5363 2.021 15.145 details
Kingston 4GB 4 7718 4.690 12.576 details
Patriot 4 GB 10 6055 7.038 19.465 details
Patriot 8 GB 10 6177 7.170 19.342 details
PNY 4 GB 4 6173 4.777 12.803 details
RiData 4 GB 6 15707 2.344 13.977 details
SanDisk 2 GB 2 1803 4.112 10.622 details
Topram 8GB 4 1252 9.784 19.950 details
Transcend 4GB 6 2040 4.531 19.657 details
Transcend (year old) 8GB 6 1543 6.364 16.131 details
Transcend (new) 8GB 6 1721 5.024 19.082 details
Transcend 16GB 6 1986 5.057 18.850 details

Conclusions

The test results clearly show that buying a microSD card based upon the manufacturers "class" rating is no guarantee of performance in an embedded system.  The speed class system was developed for the digital camera market and was designed to certify that cards could support a certain write speed on fresh cards under typical digital camera sequential write usage patterns.  This certification process obviously is quite useless for typical embedded system usage patterns.

The tests also show that having good data rates for large record writes and reads doesn't necessarily translate into reasonable system level performance.  The Patriot cards, for example,  have good data rates in the iozone tests, but fairly miserable system level performance (as evidenced by the "first boot" test).  I suspect that the wear leveling algorithms seriously impact performance on these cards.

The "first boot" test seems to correlate most highly with my subjective experience with these cards in normal use.  As such, it is fairly safe to use this test as a good first level screen when deciding which brand of card to purchase.

Recommendations

Based upon the above data and several years of working with SD media in embedded applications I would recommend SanDisk, Topram, and Transcend as reasonable choices for embedded systems.  In performance critical applications you should always test a variety of brands in the intended application environment.

Tags: GNOME Tests
Last Updated on Thursday, 03 March 2011 10:14
 

7 Comments

  1. Nice article Steve! The high degree of variation between cards is remarkable.
  2. Some interesting numbers here, Steve.

    I've a question though, are you working on pre-release Fire hardware? Be swell to have a Fire or a Water with 512MB of RAM and the 3730.
  3. Yes, I am working with pre-release hardware.
  4. Is it possible to discover what NAND silicon is in these cards, and whether they use eMMC or 3rd party SD/MMC controllers?
  5. Quote:
    Is it possible to discover what NAND silicon is in these cards, and whether they use eMMC or 3rd party SD/MMC controllers?

    Unfortunately vendors don't disclose this information.
  6. It is possible to find out the NAND silicon.
    http://www.bunniestudios.com/blog/?p=918
    But it involves acid.
  7. Just bought a 16G Ptriot class10, very slugish running Android. Gonna tradeit in for a Trancend class 6, sad thing is that I will end up paying more for the Transcend.

Add Comment


     

    You are here  : Home

    Advertisement

    Advertisement