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
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_STARTSets the address of the first write block to be Index address erased.ERASE_WR_BLK_ENDSets 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