I'm currently running with Samsung EVO Micro SD card in my phone (GT-i9195 or serranoltexx
) in Adoptable storage mode.
I'm looking for a faster card to improve performance. I was about to get Sandisk Extreme A2 card for my phone.
However, I found the official pages about A1 and A2 class by SD Association. According to the official documentation,
A1:
The Application Performance Class 1 (A1) was defined by SD Physical
5.1 specification.
A2:
The Application Performance Class 2 (A2) is defined by SD Physical 6.0
specification. It makes SD memory card much higher performance than A1
performance by using functions of Command Queuing and Cache.
Note that A2 uses extra tricks to achieve better performance, especially Command Queuing (A2 spec'd cards have minimum support of 2
for Command Queuing depth).
I'm looking for a card that has as low latency as possible for a single read. Should I get A1 spec'd card instead of A2 because even though A2 has higher random access "minimum" IOPS, it may only get it with QD32 queues? I'm looking for a good random 4K read QD1.
I wish storage manufacturers specified random 4K read QD1 performance. It seems that only storage with manufacturer published numbers is Intel Optane series where those numbers don't look too bad.
Update: more information:
Another document on the official site explains A2 features a bit more:
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.
Note that this clearly uses "random read performance" as average IOPS, not the maximum time for any given read operation.
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[)] [...]
Data loss is allowed if the data is not moved to non-volatile storage.
So... high write IOPS is allowed to be writing to card internal RAM and data loss is acceptable? The OS can already do exactly the same thing with higher performance!
Self-Maintenance:
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).
And if card has entered "card initiated self-maintenance" mode (which A2 card is allowed to enter any time no commands are in the queue) the effective read IOPS may go down to 10
and effective write IOPS may go down to 4
.
I think A2 spec has way too huge tolerances for bad performance. Calling the above as "minimum 4K read: 4000 IOPS" and "minimum 4K write: 2000 IOPS" is a lie.
(I'm wondering if I should get Sandisk Extreme A1 card when those are still available on the market. Samsung EVO+ cards have nice performance in benchmarks, too, but if I've understood correctly those are meant for non-application usage and have worse wear leveling algorithm than Sandisk Extreme cards. The same thing with Sandisk Ultra cards - they don't last having the same sectors written repeatedly.)