I found the part about smallest write and erase units being different sizes to be confusing initially because it doesn't explicitly explain the difference between "write" and "erase". I guess it makes more sense from an EE perspective than a software perspective: I think "write" here really means to set selected bits to 1, which for arbitrary write operations would require all bit's starting state to be 0... where as erase sets all to 0, but can only be done at the larger block level. I guess this makes sense when comparing to things like EEPROMs.
Reminds me of the old IBM punch cards where I guess you could always add holes (1s) but not remove them... if this were exposed to the OS for SSDs it might be possible to do more interesting things like modify data in ways that only adds 1s more efficiently. Remember ASCII del char 0b01111111? :D
[edit]
Unrelated, but by the time I finished reading enough of this to upvote it, it had already dropped to the 4th "new" page on HN... this does make it feel like HN is biased towards low investment short articles.
Reminds me of the old IBM punch cards where I guess you could always add holes (1s) but not remove them... if this were exposed to the OS for SSDs it might be possible to do more interesting things like modify data in ways that only adds 1s more efficiently. Remember ASCII del char 0b01111111? :D
[edit]
Unrelated, but by the time I finished reading enough of this to upvote it, it had already dropped to the 4th "new" page on HN... this does make it feel like HN is biased towards low investment short articles.