Как я понимаю, выравнивание износа на USB-флешках / флеш-дисках позволит:
- помогите сделать последнее дольше. (уменьшите «износ», что физическая ячейка памяти может быть записана только в XX раз)
- действительно может работать, только если есть неиспользуемые ячейки флэш-памяти для переключения. (Чем больше заполнена флешка, тем меньше альтернативных ячеек для выравнивания износа)
В худшем случае в какой-то момент времени я израсходовал все и вся память USB-флешки. Тогда менее вероятно, что некоторое выравнивание износа может произойти все еще. Можно /(как бы) вернуть это состояние?
Я имею ввиду с точки зрения флешки, что пусто
0000 0000 0000 0000
(заполнение нулями) мне кажется, что данные так же достоверны, как
1111 1111 1111 1111
или 1010 1110 0011 1111
или любой другой битовый шаблон.
Прошивка Usb-флешки должна каким-то образом знать, что считать "неиспользованной" Flash-ячейкой, чтобы она могла снова использовать ее для выравнивания износа. Но после того, как я в конце концов полностью заполнил всю флешку, у меня возникают проблемы с тем, как встроенное ПО сможет определить, какие данные можно "перезаписать", поскольку они не содержат данных?
Поэтому мой вопрос: может ли заполнение нулями быть способом сброса выравнивания износа USB-флешки?
Несмотря на то, что я боюсь, что, возможно, это часто будет зависеть от реализации ("прошивка" и "производитель"), я все же думаю, что в этом подходе может быть логика, заключающаяся в том, что "заполнение нулями" может приводить к перезагрузке usb-флешки в определенных случаях - лучше спроектированные USB-флешки.
Логика, которую я представляю, состояла бы в том, что выравнивание износа микропрограммы распознало бы, что весь блок (то есть 512 байтов или 2 килобайта) будет установлен только на нули.
Блок до: 1101 1011 1000 0010 ... 0001 0011
Блок после: 0000 0000 0000 0000 ... 0000 0000
Когда я читаю из этого блока, я хотел бы, конечно, получить эту информацию:
Блок после: 0000 0000 0000 0000 ... 0000 0000
Но эту информацию можно сгенерировать на лету, сохранив, что Блок XYZ = пуст в определенной ячейке флэш-памяти, доступной только для прошивки.
Если бы это было так, пул, когда "сброс" (путем заполнения нуля) был бы включен для использования в других целях, так как информация хранится в BLOCK XYZ = пустой части памяти прошивки флешки.
Я читал, что должны быть некоторые USB-флешки, которые имеют такую прошивку и, следовательно, могут быть сброшены? Может ли это быть правдой? Я хотел бы знать по этому вопросу, что "тенденция" может быть подкреплена информацией от известного производителя. Возможно, существует даже список, в котором перечислены USB-флешки, которые можно сбросить таким образом. Чтобы ответ мог содержать ссылку на такой список.
Также я предполагаю, что не существует "новой прошивки", разработанной каждой USB-флешкой, и, возможно, есть выдающаяся (часто используемая) USB-прошивка, которая делает такое выравнивание износа. Так что тогда можно ответить на вопрос относительно этой прошивки.
В лучшем случае, какой-нибудь умный человек мог бы придумать способ ответить на вопрос в такой форме, что он содержит некоторые инструкции, которые позволили нам, пользователям (суперпользователям) "выяснить", включено ли это выравнивание износа или нет.
немного предыстории на мой вопрос
USB-флешки / флешки - это приятные вещи. Но проблема в том, что способ хранения данных изнашивается, что означает, что после только XX записей в ячейку данных!БИНГО! твоя палка мертва!
Одним из способов решения этой проблемы (когда ячейки флэш-памяти могут быть записаны довольно мало раз) является "выравнивание износа". Который будет заботиться о том, что - если возможно - данные не всегда записываются в одни и те же ячейки флэш-памяти.
Способ, который работает, состоит в том, что вместо записи данных всегда в одни и те же физические ячейки данные (при изменении) записываются в некоторые другие новые физические ячейки. Это уменьшает "стресс", потому что в лучшем случае так будет продолжаться.
Чтобы помочь понять некоторые базовые принципы выравнивания износа, я включил эту концепцию ниже, которая показывает, как информация "hello", "salut", "hola" и "hi" впоследствии сохраняется в логической ячейке данных с именем data, которая фактически записывается к другой физической флэш-памяти каждый раз (отсюда и небольшая "концепция" выравнивания износа).
state 1: [CELL1: e-m-p-t-y] [CELL2:e-m-p-t-y] [CELL3: e-m-p-t-y] => write data "hello" state 2: [CELL1: hello] [CELL2:e-m-p-t-y] [CELL3: e-m-p-t-y] data=CELL1 => update data to "salut" state 3: [CELL1: hello] [CELL2: salut] [CELL3: e-m-p-t-y] data=CELL2 => update data to "hola" state 4: [CELL1: hello] [CELL2: salut] [CELL3: hola] data=CELL3 => update data to "hi" state5 [CELL1: hi] [CELL2: salut] [CELL3: hola] data=CELL1
Обратите внимание, что после записи 4-х раз данные каждой ячейки в среднем были записаны только 1,33 раза. Также обратите внимание, что информация о том, какая ячейка содержит «логические данные », также должна храниться и обновляться (что требует, чтобы микропрограмма выполняла этот учет - используя для этого также некоторую зарезервированную память)