2012-06-04 18:30:11

by Lutz Vieweg

[permalink] [raw]
Subject: Improving SD/SDHC/SDXC write performance by using a discard/TRIM like operation

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


2012-06-04 18:49:42

by Lutz Vieweg

[permalink] [raw]
Subject: Re: Improving SD/SDHC/SDXC write performance by using a discard/TRIM like operation

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
>