3 ms·
If I were designing drives, I would be considering the platter and all the mechanicals to be noisy, bendy, sticky, shaky, fade-y, and all the things you wished
by londons_explore 3y ago
If I were designing drives, I would be considering the platter and all the mechanicals to be noisy, bendy, sticky, shaky, fade-y, and all the things you wished your mechanical parts weren't. Every part of the disk has different amounts of noise, shakiness, etc, since the manufacturing process isn't consistent.
Yet you want to store as much good data on the whole disk as possible, and need to be able to retrieve smallish chunks of the data back in the typical case quickish.
In turn, that constrains how you group data, and how you allocate ECC bits. As a seller of disks, it's probably how you decide if you should stick a 3TB, 4TB or 5TB sticker on the box too.
The end result will be an algorithm that, based on factory calibration and recent measurements decides how to map data to physical areas of the disk. One head giving a weaker signal lately? Well we're gonna assign fewer data bits there.
And when reading data back there are also decisions to be made. For example, when we read a bunch of data but the ECC recovery fails due to too much noise, should we re-read the same data and combine the reads to get more signal and less noise? Should we shake the head a little and see if we can re-read and get better alignment next time? Should we go and read a few tens of megabytes of other data and see if we can recover the data from a higher hierarchical level ECC/erasure coding scheme?