Skip to contentSkip to conversation

Improving SD/SDHC/SDXC write performance by using a discard/TRIM like operation

DISCUSSION Lutz Vieweg 1 participant 2 messages Jun 4, 2012

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

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:

Quoted 2 lines

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

Quoted 23 lines · Lutz Vieweg

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