Other Software Wear Levelling

Yes, all the time. Consumer SSDs are sold with a fixed "FTL" = flash translation layer. That's the software in the SSD that makes large blocks of flash memory appear like a SCSI/SATA disk with small sectors, and performs caching, block assembly, block erase, wear leveling, reliability tracking, and diagnostics.

Big users of SSDs write their own FTLs, or they buy SSDs with flexible FTLs that allow special commands or modifications. Here, "big user" mean companies that build large storage systems for (EMC, HP, IBM, NetApp, ...), and large cloud providers (Amazon, Apple, Facebook, Google, Microsoft, and their Chinese counterparts). There are also a lot of academic papers about how to write FTLs (in particular how to do good wear leveling), typically from Korean universities, whose faculty/students work closely with Samsung etc. as hardware providers. You can look in the proceedings of the FAST conferences for lots of such papers.

Writing a workable FTL, good enough for academic research, takes a few person-years (typically a PhD project for 2-3 graduate students). Doing the same for industrial/enterprise applications takes a good-size engineering team (a few dozen people), if you include quality control, vendor interfacing, and project management. The starting point is always contacting the maker of flash = SSDs, and entering a non-disclosure agreement, under which the vendor will tell you how to access the internals of the device. Been there, done that, got the T-shirt (not as an engineer, but as an R&D participant on the edge).
 
I am interested whether wear leveling will work if I overwrite million times the same block (512 bytes) on SD card. E.g. block 102 - rewrite new values all day and modify other blocks rarely or never. And where are stored the internal tables for flash reallocation. If they are on flash, is it wear leveled as well?
 
Even small and cheap flash storage (like USB sticks and SD cards) have a FTL. They all do wear leveling, otherwise for systems would kill the card quickly. Now, is the FTL implementation as good in a $2 card as in a $200 SSD? Probably not. And not all cards are the same: cheap cards are intended for video recorders and cameras (rare writes, big sequential writes), expensive grade 10 cards are intended for embedded use.

Where is the internal mapping information stored? Inside the flash, as metadata. SSDs have interestingly complex internal structure.
 
Back
Top