MikeBur
ManualPilot
Actually doesn’t call out what wear leveling techniques to use, so useful info for general don’t do stupid, though the heuristics used for wear- leveling is what I’m calling out."wacky" , um , it's pretty standard to use "Wear leveling techniques", see below for an example of a recommendation to OEM's:
Flash Wear Management in Android Automotive
Whacky-leveling technique as in moving stable, static, data to high wear level areas to enable the higher frequency writes to be written back to lower write tagged areas. The more usual wear leveling techniques is prioritizing choice of available blocks. I don’t know which heuristics are being used.
Edit: this has more info:
https://www.micron.com/-/media/clie...note/nand-flash/tn2942_nand_wear_leveling.pdf
Notably a lot depends on the available blocks. Moving data from low-wear level would require a level of software which may happen in the controller (italicized text)
Depending on the wear-leveling method used, the controller typically either writes to the available erased block with the lowest erase count (dynamic wear leveling); or it selects an available target block with the lowest overall erase count, erases the block if necessary, writes new data to the block, and ensures that blocks of static data are moved when their block erase count is below a certain threshold (static wear leveling).
Net: it depends. If we knew the controller we could dig more, though is not beneficial as the damage was done through poor logging choices and exacerbated by the small physical nand size and wear count mtbf
Last edited: