Можно ли перепрограммировать страницу в SSD (не стирая ее), если новые данные содержат подмножество однобитовых данных предыдущих данных?
В теории да.
Флэш-страницу NAND можно записать несколько раз без операции стирания.
Вы можете поэкспериментировать с этим на SBC, который имеет (необработанный) флэш-чип NAND и команды U-Boot.
Это может быть физически невозможно, не поддерживается текущей схемой / прошивкой или уже выполняется. Что он?
Идея не реализована в прошивке SSD, потому что это нецелесообразно.
Во-первых, время для чтения исходного блока стирания и выполнения сравнения будет дополнительным расходом для каждой операции записи и, как правило, будет потрачено впустую время, поскольку ожидание положительного результата, вероятно, низкое.
Компромисс в сниженных скоростях записи, вероятно, не стоит незначительного увеличения срока службы устройства.
Во-вторых, и что более важно, вы упускаете из виду необходимость обновления ECC (кода исправления ошибок) сектора (который обычно хранится в области OOB (внеполосной) страницы).
Если только область данных сектора на странице "записана" без обновления ECC, то любое последующее чтение этой страницы будет неудачным для проверки ECC.
Вероятность того, что новое значение ECC также похоже на данные страницы (для которых требуется только запись разрядов от одного до нуля, а не разрядов от нуля до одного), слишком мала для рассмотрения.