Market needs are always evolving, and for the optimal user experience, manufacturers and consumers alike must stay in touch with updates to SD memory card standards. Most of today’s Android and Windows smartphones and mobile computing devices allow application data to be saved on removable cards. Additionally, when Google released Android Marshmallow in 2015, it expanded microSD memory card support by offering Adoptable Storage Devices, allowing users to run applications directly from the installed memory card. When using memory cards as storage and/or to run applications, there are some basic performance requirements based on a combination of random and sequential memory access that optimize user experiences.
The Application Performance Class standard defines the App Performance symbol for use on cards, packaging and manuals to help consumers find the right card for their device at the point of sale. App Performance also defines an assured combination of minimum random and sustained
sequential performance levels under certain conditions.
Until February 2017, the only App Performance Class was A1, introduced in the SD 5.1 specification in November 2016 – and this class continues to work well for most users and applications developers, but the SDA assumes the demand for higher performance in some products and applications may increase. With that in mind, the SD 6.0(1) specification introduced App Performance Class 2 (A2) along with new features, like Command Queuing, that are supported today by SSDs.
A2’s Goals
Any new SD specification enhancements are intended to meet or anticipate market requirements by standardizing a common language for consumers and product manufacturers, allowing best utilization of specific products with related best cost-effective card type.
In the not-so-distant future, some users and app developers will require cards with capabilities that are designed to meet the higher host/product performance needs of applications running or other usages that require intensive random memory access.
A2 raises the next level of minimum performance, allowing users to match with the best cost-performance needs. It offers higher minimum random write/read performance levels and a new set of features that enables memory cards to achieve these higher levels.
This will allow more variety in the marketplace for consumers and product manufacturers, and cater to users that need a higher-performance card to match their higher-performance mobile phones or mobile computers. This gives users and product developers the flexibility to optimize cost performance needs for their product and applications requirements for their intended market segments.
What A2 delivers
The new A2 provides more flexibility in the market for cost-performance optimization per product or application need and various market segments. It offers newly introduced features like Command Queuing, Cache and Self-Maintenance that work together to enable higher performance levels. Memory cards offering A2 deliver app-running performance by meeting or exceeding the following levels under specified conditions:
- Random Read Input-Output Access Per Second (IOPS) of 4000
- Write IOPS of 2000
- Sustained Sequential performance of 10 MB/s
The latest SD specification also allows SD host product manufacturers to offer devices that only support 1.8V Low Voltage Signaling (LVS), which complements the latest chip designs for higher performance and less power consumption. LVS SD memory cards are backward compatible with legacy host products. All memory cards supporting A2 will also support the new LVS signaling.
New features supporting A2 performance
The following features are similar to those used in other advance memory access standards/products like SSDs or embedded memories. These features are required on all products that indicate A2 performance and are expected to be supported by hosts looking to utilize the A2 performance levels of A2-class cards:
Command Queue
The new CQ mechanism allows the SD memory card to accept several commands in a series (without their associated data) and execute them (with the data) whenever the memory card is ready. It contributes mainly to random read performance.
During the data transfer, additional commands may be sent to the card as long as the maximum number of queued commands does not exceed the maximum queue depth supported by the card (the SD standard allows queue depth of min 2, max 32).
With CQ, advanced information on intended commands is provided to the card. The card may manage and optimize its internal operations to prepare for the various commands in advance. Multiple tasks can be handled at one time in arbitrary order. New information on next commands may be sent to the card during current execution and during data transfer.
Cache function
In order to overcome the relatively limited write speed operation of flash memory, the Cache function allows the card to accumulate the data accepted by the host in a high-speed memory (e.g., RAM or SLC flash)) first, release the busy line and perform the actual write to the non-volatile slower memory (e.g., TLC NAND Flash) in the background or upon flush command. The card may cache the host data during write and read operation. Cache size is card-implementation specific; flushing of contents stored in cache is done in less than one second. It is supported by OSs today for embedded memory devices and is assumed to be easy to implement for cards.
Data loss is allowed if the data is not moved to non-volatile storage. In order to minimize data loss, the flush cache feature shall be supported and implemented by host before power-down operation. The data is not guaranteed as long as the flush operation is not completed. Cache contributes mainly to random write performance. Cache flushing is triggered by host followed by up to one second of the card’s busy time.
Self-Maintenance
The Self-Maintenance operation of the card is an internal data management operation done on the memory to improve its performance (i.e., defragmentation). There are two cases when the Self-Maintenance may start its operation: card initiated and host initiated.
Card-initiated operation allows the SD memory card to perform internal maintenance operations while the host bus is idle. When a new command is received, the card must ensure that new command is serviced without violating SD standard timing (Read Command, 100 milliseconds; Write Command, 250 milliseconds).
Power-off notification function support is mandatory to ensure graceful shutdown, allowing the host to tell the card in advance about its intention to power off. In host-initiated operation, the SD memory card indicates to the host the self-maintenance urgency level through four levels of urgency. The memory card could notify the host via Card Status when it is at middle or urgent level.
Maintenance operation is triggered by the host via a specific command. After the card’s Self-Maintenance is initiated, it sets the busy line (prg state) for up to one second and then moves back to normal (tran state). The self-maintenance urgency level may still be the same after a maintenance operation.
What consumers and manufacturers need to know
For consumers
It’s easy: Match the SD memory card and Application Performance Class defined by the host device manufacturer. This information is found on the product, package or user manual with a symbol. The App Performance Class symbol provides both card and device manufacturers with a way to communicate app-running capabilities and requirements.
For manufacturers
There is an important new expectation for product manufacturers seeking A2 designation. While there was no need to support any new SD protocol functions for A1, A2 products must support the new functions of Command Queuing and Cache. Therefore, before referring customers to A2 cards, manufacturers must make sure that their product supports these functions.
Product manufacturers supporting SD memory cards and requiring certain minimum random and sequential performance levels that are satisfied by either A1 or A2 may check for the desired Application Performance Class level as follows:
- Check the Application Performance Class type of the SD memory card in the SD Card Status and confirm whether it matches its requirement level.
- The host may also perform an internal benchmark test and check for the absolute execution time to qualify the memory card. If it matches or exceeds the execution time expected from the corresponding Application Performance Class expected by the host, the card should be accepted for use.
An important note about A1 cards: Starting with Android Nougat version 7.1.1 r23, the performance level that SD memory cards indicate during the Android’s Card Adoption process is designed to allow A1 SD memory cards to pass, but they cannot be guaranteed by Android. The reason is that the Android benchmark test is dependent on the device environment (i.e. clock speed, background apps, etc.), not only the memory card. It is recommended that product manufacturers first test their devices with A1-margin cards, or use one of the available SD testers with A1 card emulation mode (e.g., from TestMetrix), before they would recommend their customers use an SD memory card with A1, assuring acceptance during the card adoption process. An SD memory card that indicates Application Performance Class support is guaranteed to meet the SD standard specification for Application Performance Class conditions – whether the class is A1 or A2.
SD: The Memory Card of the Future
The new features in SD 6.0 add significant performance improvements over previous versions of SD memory cards, taking memory card functionality to a new level. The new SD standard is perfect for users with limited memory on their device, allowing them to run apps directly from a microSD memory card. SD cards are already used in billions of devices around the world, and this latest initiative will help expand the usages of the SD card and answer the market’s evolving needs.
Yosi Pinto is director of standards at Western Digital (former SanDisk) and chairman of the board at SD Association. Pinto can be reached at Yosi.Pinto@sandisk.com.
(1) SD 6.0 released by SD Association in February 2017 included, in addition to A2 and the associated new features mentioned in this article, Low Voltage Signaling card and UHS-III (624MB/s).
© SD Association. All rights reserved. SD, SDHC, miniSDHC, microSDHC, SDXC and microSDXC marks and Logos are trademarks of SD-3C LLC.