SD Specifications 5.1 to Introduce App Performance Class (for Random I/O) & Logo

SD cards used to store media data only, for example photos and videos in your camera or smartphone, but with the introduction of “Adoptable Storage” in Android 6.0 you can now run apps directly on a micro SD card, and many development boards rely on (micro) SD card to run the full operating system. The difference is important, as with media storage, the raw sequential read and write speeds are the most important, as large files are created and accessed, but for apps and operating systems many small read and write operations such as databases access take place on the card, so random IO performance becomes much more important. So far, the SD card specifications would only report sequential performance with different classes, and for example for are often recommended to use “Class 10” SD cards on Raspberry Pi, which does not clearly indicates the random IO performance.

Sandisk Class 10, Class A1 micro SD card

SD Specifications 5.1 address this issue, as a new Application Performance Class is introduced, and micro SD card will A1 performance class will deliver at least 1500 random read input-output access per second (IOPS), 500 random write IOPS, and 10 MB/s sustained sequential performance.

It will be easy to purchase such card as they will come with either “A1 App Performance” or “A1” logo.

There’s no difference in performance between the two logo. Eventually, the SD card association will released higher App Performance Levels, likely A2, A3… as the market evolves. The new App Performance Class is shortly explained in the video below.

SD Specification are only available to paid members, but you may find out more by reading the white paper entitled “Application Performance Class: The new class of performance for applications on SD memory cards.”, or visit SD Card Association Application page. One of the first micro SD card compliant with Class A1 is the 256GB Sandisk Ultra microSD UHS-I card, although they don’t seem to have done anything specific to match Class A1 requirements, the card was already fast enough, and Sandisk simply added the A1 logo.

Thanks to tkaiser for the tip

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.

Support CNX Software - Donate via PayPal, become a Patron on Patreon, or buy review samples
Subscribe
Notify of
guest
17 Comments
oldest
newest most voted
jim st
jim st
3 years ago

any idea how long before the boots on devices will support these direct booting? Or do they already. I’ve run across a few situations where I’ve wanted to use 128gb devices and they are not bootable. And in one case the thing didn’t work at all, needed < 64gb

theguyuk
theguyuk
3 years ago

(throughput, latency and IOPS) that is what matters.

tkaiser
tkaiser
3 years ago

@jim st
The higher capacity and price, the higher the chance you buy counterfeit SD cards: http://www.happybison.com/reviews/how-to-check-and-spot-fake-micro-sd-card-8/

Easy solution: always check your card directly after purchase and don’t use stupid burning tools but Etcher instead.

theguyuk
theguyuk
3 years ago

@jim st
You have to consider the size of capacity your device supports both on the hardware and operating system.

willmore
willmore
3 years ago

This is good to see. Let’s hope that there is some kind of compliance testing so that this doesn’t end up like the “C” performance levels which seemed to have been self reported by card makers–and often highly inaccurate.

tkaiser
tkaiser
3 years ago

@willmore Well, testing is pretty easy, just be prepared that some filesystem related overhead is involved and more importantly when testing on devices that implement cpufreq scaling that settings matter (switching to ‘performance’ cpufreq governor prior to testing strongly recommended since otherwise you get numbers without meaning). With iozone for example you would use Shell iozone -I -O -i0 -i1 -i2 -e -+n -r 4K -s 100m iozone -I -a -i0 -i1 -i2 -e -+n -r 4K -s 100m 12 iozone -I -O -i0 -i1 -i2 -e -+n -r 4K -s 100miozone -I -a -i0 -i1 -i2 -e -+n -r… Read more »

Nobody of Import
Nobody of Import
3 years ago

@jim st This depends on your device and the SD card, obviously. You won’t get a boot off of the stock configuration of the 128GiB cards because pretty much NOTHING supports ExFAT right at the moment. Me, I’ve gotten good results with “premium” microSD’s that would likely meet the A1 spec currently on my RaspberryPi3. It’s only drawback is that the media controller there is still slower than sharing the USB 2.0 bus and using USB media on the four port on the Pi3. But it DOES boot up with it directly and works “fine” for the values present with… Read more »

tkaiser
tkaiser
3 years ago

Nobody of Import : because pretty much NOTHING supports ExFAT right at the moment. This is only a problem when using those Raspberry Pis since there Linux is under control of the ‘firmware’ running on VideoCore IV which is that outdated that it can’t cope with anything other than FAT16/FAT32 which is why there always has to be a small FAT partition and why you need ‘SD formatter’ when you want to use a large SD card with Raspberry (since you need to reformat the card to be FAT32 so the primitive VideoCore IV can find the blobs needed to… Read more »

Theguyuk
Theguyuk
3 years ago
tkaiser
tkaiser
3 years ago

Some information about A2 (App Performance Class 2) available here: https://www.sdcard.org/consumers/choices/application/ (most important piece of information that A2 preconditions and test environment will be specified in yet not released SD 6.1 specification later). Speed/performance class compliance testing will happen with test equipment. So I’m already curious how that will relate with real-world situations since stuff like cpufreq governor used in Linux/Android can have a huge impact on real storage performance in embedded/mobile devices (and SBC as well) BTW: No SD card I tested so far is close to A2 compliant, best results with eMMC were Orange Pis (PC Plus, Plus… Read more »

tkaiser
tkaiser
3 years ago

cnxsoft : @tkaiser Most eMMC flash chips can handle 4K/2K R/W IOPS Nope, at least not now if we’re talking about stuff that is used on real devices today 😉 The eMMC used on most SBC for example is really ‘low end’, SinoVoip and FriendlyELEC for example use Samsung eMMC that does not even meet the ’10 MB/s sequential write performance’. Writes get bottlenecked by eMMC and reads by SDIO implementation (maxing out at 80 MB/s with all the cheap implementations). If we’re talking about SBC it seems Hardkernel are the only ones really caring about maximum performance (and surprisingly… Read more »

tkaiser
tkaiser
3 years ago

cnxsoft : all of which deliver above 4K/2K IOPS Well, the problem is that IOPS is nothing clearly defined when used in vendor data sheets (same with SSDs for example, every vendor can use whatever numbers he wants as long as he’s able to document ‘some procedure’ how numbers were created in case somebody should complain). Even the most basic information (which block size? Are we talking about 4K?) is missing when looking at vendor IOPS numbers. Same for the procedure used to test, for example queue depth / number of parallel requests plays an important role. Serious publications testing… Read more »

tkaiser
tkaiser
3 years ago

@Jean-Luc Aufranc (CNXSoft) Of course latency and IOPS are somewhat related (the lower the queue depth the more IOPS depend solely on latency) but it depends a lot on storage/controller internals how both relate and which bottlenecks are here and there (and also how external parameters like parallel requests impact test results and benchmark setups — ‘queue depth’ being the magic word here) For some workloads average and max latency become more important than IOPS. Imagine caching in a storage cluster to prevent data losses in case one cluster node dies. With a ZFS based implementation this is done by… Read more »

tkaiser
tkaiser
2 years ago

Some performance data generated with two new 32 GB SanDisks: An Ultra A1 and an Extreme A1: https://forum.armbian.com/topic/954-sd-card-performance/?do=findComment&comment=49811

TL;DR: Buy genuine A1 cards and forget about everything else around. At least if it’s about random IO performance (and the ‘rootfs on SD card’ use case)

Advertisements