Нужно ли заряжать флешку

Обновлено: 19.05.2024

Вопрос о том, нужно ли заряжать флешку, оказывается не таким смешным и однозначным, как многие думают. По мнению разработчика накопителей, этот процесс может продлить срок службы устройства и увеличить скорость работы.

Зачем заряжать USB-флешку?

В то время, как у большинства пользователей разговоры о зарядке USB-накопителя вызывают только смех, профессионалы разбирают этот вопрос с точки зрения алгоритма работы накопительного устройства. По мнению специалиста в области разработки твердотельных накопителей, зарядка флешки является далеко не бесполезным занятием. Объем устройства этот процесс, конечно, не увеличит, однако выполнит другую функцию — своевременно избавит от мусора и ускорит быстродействие USB-флешки.

Все ячейки данных накопителя объединены в страницы, а страницы — в блоки. В процессе перезаписи файлов на флешке появляются неактуальные страницы, от которых необходимо избавляться. Однако сделать это не так просто — страницу можно удалить только с целым блоком, в котором она находится. А так как в блоке могут храниться и актуальные страницы, удалить весь блок не получится — велик риск лишиться важной информации.

Решить эту проблему призван специальный функционал флешки, занимающийся сбором мусора. Он сортирует актуальные и неактуальные страницы по отдельным блокам, чтобы первые оставались на накопителе, а вторые можно было спокойно удалить.

Процесс сортировки занимают больше времени, чем обычно дается флешке для работы. В большинстве случаев пользователи стремятся как можно быстрее перенести файлы с компьютера на компьютер, а затем моментально отключить накопитель. Однако для самостоятельного обслуживания флешка требует больше времени, поэтому и выполнить сортировку она не успевает. Из-за этого старые USB-флешки начинают принудительно требовать ее отформатировать, а файлы на накопители могут оказаться поврежденными.

Если периодически оставлять флешку на "зарядке" (подключать к сети), процесс сортировки мусора пройдет успешно. Накопитель успеет самостоятельно "перебрать" данные, устранить ошибки и выровнять износ блоков. В результате устройство и прослужит дольше, и скорость передачи файлов увеличится.

Специалист советует если не подключать USB-флешку к зарядке, то хотя бы оставлять ее в USB-разъеме ноутбука или персонального компьютера. Конкретное время для очистки от мусора и оптимизации неизвестно, однако дополнительные 15-20 минут не помешают. Важно помнить и то, что процесс "зарядки" флешки работает не на всех устройствах, так как алгоритм ее работы во многом зависит от производителя.


В интернете прошла смута под названием «зачем заряжать флешку». На первый взгляд смешно, но предлагаю еще раз подумать и разобраться в вопросе. После прочтения этой статьи вы тоже начнете заряжать свои флешки.

Лично мне ссылочку на статью скинул главный конструктор одного из предприятий радиоэлектронной промышленности с формулировкой «хочешь поржать?».

Пара ссылок по теме:

USB-флешка является блочным устройством хранения данных: все адресное пространство разбито на секторы по 512 байт. Операционная система может обратиться по адресу определенного сектора (LBA) и прочитать его или перезаписать, все просто.

А теперь заглянем под капот нашей флешки…

В состав флешки входят микросхемы:


Попробуйте представить, как бы эту задачку решили вы, и увидите сходство с игрушкой Ханойская башня.

Для того, чтобы «подружить» user-friendly блочную адресацию накопителя и sadist-friendly адресацию NAND-flash памяти, внутри контроллера флешки крутится процессор, который реализует алгоритм трансляции адресов, он же FTL (Flash Translation Layer). В задачи алгоритма FTL входят:

  • построение и поддержка таблицы трансляции адресов (page mapping);
  • «сборка мусора» (garbage collection);
  • выравнивание износа блоков NAND-flash памяти (wear leveling).

Немного ликбеза по обозначенным пунктам:

Page mapping

Ну, тут, пожалуй, все понятно… Адресное пространство логических адресов накопителя (LBA) транслируется в адреса блоков и страниц NAND-flash памяти (физический адрес) через огромный массив, индекс которого означает LBA, а значение элемента — физический адрес. Если необходимо перезаписать одну страницу, то данные этой страницы пишутся в свободный блок по порядку, а, затем, в массиве заменяется номер страницы на вновь записанный. Когда школьник покупает флешку 32ГБайта, а обнаруживает, что на ней только 29 ГБайт, школьник еще не знает, что недостающее место не китайцы на фабрике украли, а разработчики алгоритма FTL. Чтобы иметь возможность писать данные на накопитель.


Garbage Collection

А что будет со страницей, которая утратила актуальность? Данные, записанные в ней больше не нужны, но стереть ее мы не сможем, потому что стирать дозволено только блоками, а в этом же блоке могут быть еще актуальные страницы. Рано или поздно сложится ситуация, когда у нас больше нет свободных блоков, в которые можно писать страницы. Зато, в остальных блоках то там, то сям будут неактуальные страницы. Чтобы такого не случилось, в накопителях крутится функционал «сборщика мусора», который занимается тем, что отыскивает «дырявые» блоки, в которых меньше всего актуальных страниц, и переносит актуальные страницы в новый блок. Таким образом «дырявый» блок освобождается полностью от актуальных страниц и его можно стереть… А в новом же блоке все страницы остаются актуальными. Напоминает дефрагментацию.


Wear Leveling

Ничто не вечно под луной, а NAND-flash — особенно. Так уж вышло, что NAND-flash память имеет ограниченный ресурс, который выражается ограниченным числом циклов стирания блоков (возрастом блока). Блоки, которые стирались большее число раз (старые блоки), имеют большую вероятность выхода из строя, чем те, которые менее изношенные (молодые блоки).

Задумывались ли вы когда-нибудь над тем, что надо бы таблицу FAT перенести из нулевых адресов накопителя куда-нибудь в другое место, чтобы не протереть дырку в адресном пространстве флешки? Это вряд ли, да и не следует над этим думать. Потому что во флешке работает механизм выравнивания износа блоков. Суть его в том, что молодые блоки, меняются местами со старыми в принудительном порядке, чтобы износ всех блоков был равномерным в течение эксплуатации накопителя. Так у накопителя есть шанс жить долго и счастливо, пока все его блоки не умрут в один день.


А теперь о главном — зачем таки «заряжать» флешки?

1) Бывало у вас такое, что вы изо дня в день собираетесь постирать носки, но каждый вечер оказывается не до этого? А потом наступает такой момент, что чистых носков на завтра просто физически не осталось! И тогда вам приходится жертвовать сном ради стирки носков. Еще хуже, если приходится опаздывать на работу с феном в руках.

Примерно это же происходит и с алгоритмом сборки мусора в FTL. Пользователь зачастую использует флешку для переноса каких-то данных с одного компьютера на другой. При этом, сценарий действий следующий: воткнуть флешку в комп — записать быстро файлы — выдернуть флешку — добежать до другого компа — воткнуть флешку — считать файлы. Через некоторое время пользователь начинает замечать, что его накопитель медленно работает. Обычно в таких случаях грешат на то, что «ну, просто флешка дешевая, старая. Вот, куплю новую, она будет летать!». И действительно будет! Но ее, скорее всего, постигнет та же участь через некторое время. Дело в том, что сценарий таких «короткометражек» не позволяет алгоритму garbage collection производить высвобождение блоков для записи, что рано или поздно приведет к тому, что свободных блоков больше просто физически не останется. И тогда контроллер вынужден сначала заняться высвобождением блоков, а затем только записью ваших файлов в них, отсюда и потеря скорости. Чтобы быть готовым принять ваши данные на полной скорости, накопителю необходимо свободное время для того, чтобы «постирать носки» заранее. Как легко догадаться, «зарядка» флешки снимает эту проблему, предоставляя контроллеру достаточно времени для наведения порядка в данных.


2) Проблема нехватки «личного времени» контроллера актуальна и для алгоритма выравнивания износа. Алгоритм Wear Leveling выполняется контроллером в моменты простоя накопителя, пока нет задач для записи или чтения пользовательских данных. Если же накопитель работает в режиме «короткометражек», то времени на выравнивание износа блоков просто нет. Неравномерный износ блоков приводит к тому, что старые блоки выходят из строя. При этом число доступных для записи блоков уменьшается, пока не наступит критичный момент, когда свободных блоков для записи просто не останется, хотя NAND-flash память в целом еще не изношена, и могла бы еще долго прослужить.


3) Эволюция научила нас прикапывать дорогие нам ценности где-нибудь подальше от проходных мест. Это хорошо работает в случае кладов и необитаемых островов. Но с цифровыми данными и NAND дело обстоит с точностью до наоборот. Наверняка, у вас были случаи, когда вы скинули на флешку какие-то фотографии со свадьбы друга, год флешка полежала в ящике стола (как вам казалось, в целости и сохранности), а потом некоторые из фоток прочитались только наполовину. Дело в том, что единожды записанная в NAND-flash память информация способна «протухнуть» со временем. Производитель памяти не гарантирует 100% сохраняемость данных, а просто озвучивает вероятность возникновения битовых ошибок.

Конечно же, контроллер накопителя решает задачу устранения битовых ошибок, добавляя избыточный код к данным, но какой бы ни был большой этот код, со временем заряд в ячейках NAND-памяти рассасывается, и число битовых ошибок может перевалить за любую корректирующую способность. Нельзя оставлять данные лежать долго в одиночестве в NAND-flash памяти, за ними надо ухаживать. А именно — периодически перезаписывать. Правильный контроллер производит периодически перечитывание данных, контроль числа битовых ошибок и перезапись данных в случае необходимости (пока число битовых ошибок не превысило допустимое). Разумеется, для этого также контроллеру необходимо «свободное время».

Из всего вышесказанного подведу итог: не стесняйтесь «заряжать» флешки, это благоприятно сказывается на их быстродействии и надежности. А если вас захэйтят технари, просто дайте им ссылочку на эту статью.

Вам стало, смешно прочитав заголовок этой статьи? Но это ненадолго.

реклама


Вернее до того момента, как ваша флешка или SSD диск пролежав некоторое время (например пол года или год, да ещё и в очень теплом месте) без подключения к питанию потеряет важную для вас информацию. А у меня такой случай с довольно немолодой флешкой, которая пролежала на полке больше года произошел.

Дешевая 3070 Gigabyte Gaming - успей пока не началось

Да, конечно же, я имел в виду не в буквальном смысле процесс заряда флеш накопителей, а необходимость периодического их подключения к питающему напряжению.

Давайте разберемся почему это необходимо. Кратко вспомним устройство и принцип работы флэш памяти.

реклама

var firedYa28 = false; window.addEventListener('load', () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);


Каждый бит флеш памяти состоит из ячейки транзистора с плавающим затвором, в котором при записи сохраняется инжектируемый в него заряд.

Другими словами плавающий затвор является одной из обкладок конденсатора который и запоминает приложенный к нему заряд. Поскольку технологические процессы изготовления накопителей малы и составляют в районе двух десятков нанометров, то толщина слоя диэлектрика этого конденсатора чрезвычайно мала, что приводит к преодолению электронами этого слоя диэлектрика и возникновению тока утечки. И чем выше температура хранения, тем больше ток утечки, и тем быстрее произойдет разряд ячейки памяти и утрата информации на накопителе.

реклама

Теперь выясним, какие процессы происходят в накопителе при его повседневной работе. Часть информации хранящейся на накопителе постоянно перезаписывается, старая удаляется, новая записывается (то есть на плавающие затворы транзисторов инжектируется свежая порция заряда ещё не подвергшаяся потерям от токов утечки, то есть отсчёт времени ее хранения начат с нуля). И эта информация вне опасности.

А что же происходит с информацией к которой ни сам пользователь, ни система не обращается, которая вообще не изменяется и перезапись которой ими не инициируется.

А ее спасет контроллер, который согласно алгоритму выравнивания износа ячеек из блока, который давно не обновлялся (не перезаписывался) произведет чтение данных, и их запись в другой блок, а высвободившийся блок сотрёт, обозначит его свободным дня записи новых данных. В результате и эти данные будут перезаписаны, и угрозы их утраты не будет.


реклама

Если в накопителе стоит «годный» контроллер и его работа обеспечивается «правильными» программными алгоритмами, то вероятность потери данных по причине утечки тока в ячейках памяти будет минимальна.

Но для этого накопитель на некоторое время после его использования (записи или чтения) необходимо оставлять под питанием. Так как перезапись и перераспределение данных происходит во время простоя накопителей. Вы может быть, не раз замечали как на флешке, с которой компьютер не выполняет никаких действий иногда радостно начинает мигать индикатор активности, так вот это и есть работа вышеуказанных процессов во время простоя флеш накопителя. Так что после окончания работы с флеш накопителями оставляйте их хотя бы на некоторое время под питанием.


В интернете прошли нешуточные баталии - зачем заряжать флешку. На первый взгляд смешно, но можно подумать и разобраться в этом вопросе. После прочтения этой статьи возможно вы тоже начнете заряжать свои флешки.

avatar.jpg (239.34 KB, Downloads: 44)

2020-07-29 17:47:53 Upload

На первый взгляд, для технически подкованного человека, кажется очевидным, что подключение накопителя к заряднику бессмысленно. В интернете много разных разоблачений и откровенного стёба на тему стоит ли заряжать флешки. Можете смеяться, но разработчики флешек именно заряжают свои изделия, устанавливая их в зарядники на некоторое время!

Когда покупаете флешку 32ГБайта и обнаруживаете что на ней только 29 ГБайт, знайте что недостающее место не китайцы на фабрике украли, а разработчики алгоритма для того чтобы иметь возможность писать данные на накопитель.
USB-флешка является блочным устройством хранения данных: все адресное пространство разбито на секторы. Операционная система может обратиться по адресу определенного сектора и прочитать его или перезаписать, все просто.


avatar.jpg (96.38 KB, Downloads: 44)

2020-07-29 17:48:32 Upload

В состав стандартной флешки входят микросхемы -контроллер и NAND-flash память. Для того, чтобы подружить блочную адресацию накопителя и адресацию NAND-flash памяти, внутри контроллера флешки крутится процесс, который реализует алгоритм трансляции адресов страниц. Стирать информацию дозволено только блоками, а в этом же блоке могут быть еще актуальные страницы. Рано или поздно сложится ситуация, когда больше нет свободных блоков, в которые можно писать новые страницы. Зато, в остальных блоках то там, то сям будут неактуальные страницы уже удалённых данных.


Чтобы такого не случилось, в накопителях крутится функционал «сборщика мусора», который занимается тем, что отыскивает «дырявые» блоки, в которых меньше всего актуальных страниц, и переносит актуальные страницы в новый блок. Таким образом «дырявый» блок освобождается полностью от актуальных страниц и его можно стереть… А в новом же блоке все страницы остаются актуальными. Происходит своего рода дефрагментация.

avatar.jpg (117.04 KB, Downloads: 38)

2020-07-29 17:48:18 Upload


Ещё, во флешке работает механизм выравнивания износа блоков. Суть его в том, что молодые блоки, меняются местами со старыми в принудительном порядке, чтобы износ всех блоков был равномерным в течение эксплуатации накопителя. Так у накопителя есть шанс жить долго и счастливо, пока все его блоки не умрут в один день.

avatar.jpg (71.05 KB, Downloads: 36)

2020-07-29 17:48:56 Upload

А теперь о главном — зачем всё таки заряжать флешки?Пользователь зачастую использует флешку для переноса по сценарию: воткнуть флешку в комп — записать быстро файлы — выдернуть флешку — до другого компа — воткнуть флешку — считать файлы. Через некоторое время пользователь начинает замечать, что его накопитель медленно работает. Дело в том, что такие короткометражки не позволяют алгоритму процессора производить высвобождение блоков для записи, что рано или поздно приведет к тому, что свободных блоков больше просто физически не останется. И тогда контроллер вынужден сначала заняться высвобождением блоков, а затем только записью файлов в них, отсюда и потеря скорости.
Чтобы быть готовым принять данные на полной скорости, накопителю необходимо свободное время для наведения порядка. Как можно легко догадаться, зарядка флешки снимает эту проблему, предоставляя контроллеру достаточно времени для наведения порядка в данных. Также это касается времени на выравнивание износа блоков. Неравномерный износ блоков приводит к тому, что старые блоки выходят из строя. При этом число доступных для записи блоков уменьшается, пока не наступит критичный момент, хотя NAND-flash память в целом еще не изношена, и могла бы еще долго прослужить.

Нельзя оставлять данные лежать долго в одиночестве в NAND-flash памяти, за ними надо ухаживать. Правильный контроллер производит периодически пересчитывание данных, контроль числа ошибок и перезапись данных в случае необходимости . Разумеется, для этого также контроллеру необходимо «свободное время».

Читайте также: