Re: Improving SD/SDHC/SDXC write performance by using a discard/TRIMlike operation

From: Lutz Vieweg
Date: Mon Jun 04 2012 - 14:49:35 EST


I just found another credible reference claiming existence of an "erase" command
for SD cards: The "SD Card Specification Simplified Version of: Part E1" (see:
http://www.sandisk.com/Assets/File/OEM/Manuals/SD_SDIO_specsv1.pdf ) states:

ERASE_WR_BLK_START Sets the address of the first write block to be Index address erased.
ERASE_WR_BLK_END Sets the address of the last write block of the address continuous range to be erased.

Since these are "SD bus commands", I wonder whether they are easily accessible
behind usual USB card reader hardware... but the mentioned "formatter" tool
seems to be able to do so.

Regards,

Lutz Vieweg


On 06/04/2012 08:27 PM, Lutz Vieweg wrote:
When I read reports from (non-expert) users who claimed that they were able
to restore the initial write performance of their SDXC cards by using a "special
formatter tool" (while normal "formatting" did not improve performance),
I was very sceptical, as I also had read that there is no way to discard/TRIM
blocks on SD/SDHC/SDXC cards.

But then I noticed that this "special formatter" tool was actually offered (for free)
by the SD Association:
https://www.sdcard.org/downloads/formatter_3/
... and its documentation clearly states that this tool is capable of using
"flash erase" operations on SD cards, which are said to be different from
ordinary "overwrites", see
https://www.sdcard.org/downloads/formatter_3/SDFormatter_3.1e.pdf
pages 7 ("Format type Erase" vs. "Format type Overwrite") and the screen shot on page 9.

Now I wonder: Is there really such a thing as a command to erase NAND flashes
in SD cards like there is for SSDs? If so, it would certainly be a good thing
to support it with Linux block discard...

Regards,

Lutz Vieweg


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/