Вы заряжаете свои флешки?
Конечно нет, что за глупость.
Это же шутка для далёких от электроники людей.
Я тоже не заряжал, пока один очень умный человек, занимающий серьезный пост на заводе, производящем электронные компоненты, не показал пару интересных статей.
Заодно напомнил, что память работает по тем же принципам, что и любые другие проводники.
Смешно. Но совсем не долго: теория подсказывает, что без подзарядки данные на флеш-накопителях должны портиться.
А практика это подтверждает.
Как же так?
Что делать?
Заряжать флешки — вопреки удивлению гуманитариев.
Вспоминаем: как хранится информация и типы накопителей
Как известно, хранение данных может производиться на 2 типах запоминающих устройств:
- требующих постоянного питания — энергозависимых (оперативная память, кэш процессоров)
- не требующих постоянного питания — энергонезависимых (магнитные и оптические накопители, флеш-память)
С первыми более-менее понятно даже начинающим гикам: принципы их работы отлично изложены в энциклопедиях.
Если совсем кратко: есть питание — данные на месте; нет питания — данные утеряны, поскольку все ячейки памяти, работающие по принципу транзистора, обнулены.
Энергонезависимые носители предполагают длительное хранение данных, основанное на самых разнообразных способах.
До недавнего времени наиболее надёжными считалась модульная память в виде разнообразных флешек, SSD-накопителей.
Считается, что ячейки такой памяти не подвержены старению, а единократно записанная на них информация не подвержена.
Увы, это не так.
Магнитный HDD может через пару лет уйти в отказ из-за размагниченных блоков, оптические диски подвержены старению отражающего слоя, магнитная лента становится хрупкой и размагничивается.
А если если записать на флешку данные и положить в шкаф, все будет в порядке.
Длительно хранящиеся без питания твердотельные накопители могут не только терять данные, но и портиться целиком.
Причем, чем теплее, тем быстрее идёт процесс.
И вот почему.
SSD-диски и флеш-накопители не так просты, как кажется
Обычная USB-флешка, вне зависимости от формата и разъемов, которыми она оборудована, имеет определенную структуру.
Будь то microSD для фотоаппарата, крошечный Lightning-накопитель или современный стик с USB 3.0, внутри нахожится контроллер и NAND-flash память в виде отдельных микросхем.
1. Память этого типа разделена на блоки по несколько мегабайт.
2. Блок, в свою очередь, состоит из страниц в десятки килобайт каждый.
3. Перед каждой записью данных блок постранично стирается (перезаписывается определенным значением).
4. Внутри блока каждая страница должна записываться строго в порядке возрастания номера.
5. Каждая страница может быть записана целиком, но только единожды до следующего стирания.
Так задача записи данных на флешку для разработчиков превращается в головоломку. Не самую увлекательную.
Принципиальная схема работы памяти на всех уровнях.
Контроллер реализует тот самый FTL
Чтобы записывать данные быстро и без проблем для пользователя, контроллер USB-флешки превратился в полноценный процессор, который
1) строит таблицу адресов (аналогичную используемой в жестких дисках),
2) собирает мусор, размечая его для последующего стирания,
3) оптимизирует износ памяти, записывая данные максимально равномерно по всем блокам,
4) отслеживает «битые» блоки, «забывая» их номера в таблице адресов или подменяя их более «живыми».
Чтобы он выполнил эту рутинную работу, нужно питание.
Но это — далеко не самая главная проблема и не отвечает на вопрос, почему флешки нужно заряжать.
Для того, чтобы разобраться, придётся копать ещё глубже.
Как устроена твердотельная флеш-память?
Причины утери данных лежат, как ни странно, в тех же физических законах, что отвечают за долговременное хранение данных на твердотельных накопителях.
Принцип хранения информации флеш-памяти использует стандартную схему хранения заряда в конденсаторе.
Смеха работы ячейки памяти
Реализовано это так, что каждый бит представляет собой ячейку-транзистор с плавающим затвором, в который инжектируется заряд.
Фактически, он является одной из обкладок конденсатора.
Современные флешки имеют очень большую плотность информации, поэтому их ячейки малы, а пограничный слой диэлектрика очень тонкий.
Чуть более подробное описание работы ячейки
Поэтому сохраняемый в них заряд легко преодолевает границы, что ведёт к большим токам утечки.
Чем выше температура, тем быстрее электроны и выше ток утечки.
Соответственно, тем быстрее разряжается «ячейка-конденсатор», из-за чего информация теряется.
Ячейка при потере информации могут использоваться повторно, если записать на неё данные вновь.
Однако только до истечения собственного ресурса и полной утери свободного заряда.
При этом серьезно теряется ресурс: процесс чем-то похож на полностью разряженный аккумулятор, который нужно перед использованием «толкнуть», зарядив повышенным током.
Контроллер спасает данные от потери. Но не всегда
Схема работы с ячейками с точки зрения контроллера
Контроллер хранит таблицу всех блоков flash-памяти в которой есть количество циклов перезаписи этого блока и когда была его последняя перезапись.
Если какой-то блок очень долго не обновляется в процессе обычной работы, то контроллер считает из него данные и переместит в другой блок, а этот пометит свободным для записи других данных.
Схема работы диска с точки зрения данных
Время операции и ожидания зависит от конкретного контроллера и от конкретной микросхем флэша — на усмотрение производителя.
Именно так выравнивается износ и предотвращается потеря пользовательских данных из-за утечки зарядов в ячейках.
В результате при адекватном контроллере и заложенных в нем алгоритмах вероятность потери данных из-за утечек заряда в ячейках флеш-памяти сведена к минимуму.
Но только в то время, когда пока диск в работе или хотя бы подключен к питанию.
Так куда пропадают данные?
Как только SSD-диск или флешка остаются на длительное время без питания, вероятность отказа начинает расти.
Дело в том, что переразметка и перезапись производится только во время простоя.
Больше того: чем старше и сильнее изношен диск, чем больше он прошел циклов записи, тем отказов больше.
Процесс не зависит от используемых модулей памяти, года выпуска и типа диска.
Даже серверные отказоустойчивые накопители теряют данные.
Время жизни данных на изношенных дисках относительно температур — рабочей и хранения
Кстати, о них есть огромное аналитическое исследование, утверждающее, что при высокой температуре данные после выработки ресурса в некоторых случаях хранятся всего пару недель.
Скажете, статья старая?
Вот только с тех пор модули памяти стали дешевле, проще, а плотность их ячеек — выше (можно почитать здесь).
Поэтому процесс идёт ещё быстрее.
SSD-диски поддерживают команду TRIM, которая улучшает сохранность данных.
Аналог есть у SD и microSD-карт памяти, в промышленных USB-накопителях.
Дешёвые флешки и устаревшие форматы карт памяти (например, CF) фишку не поддерживают, поэтому данные они стирают только при обращении к ячейке.
И часть блоков никогда не перезаписывается, «протухая».
Здесь показано схематичное уплотнение памяти.
Сами понимаете, стенки толще не становятся
Известно, что SLC-память хранит данные несколько десятков лет, MLC — несколько лет без питания, TLC и вовсе около полугода, а многострадальные QLC может потерять все за пару недель.
По поводу выработки ресурса тоже есть неприятный момент: реальные цифры известны только производителю, а все тесты и замеры проводятся исключительно в рабочих режимах.
Поэтому ресурс может быть на порядок ниже предполагаемого.
Что нужно делать, чтобы флешки не теряли данные
Итак, что же нужно, чтобы данные с накопителей не пропадали?
Ничего сложного: нужно оставлять их в USB без нагрузки.
Скопировали данные, поработали с флешки — оставьте её подключенной к включенному компьютеру хотя бы на полчаса.
Через некоторое время можно будет обратить внимание, что диск нагреется, а лампочки при наличии — загорятся, как во время работы.
Это и будет говорить о работе контроллера по переразметке данных.
Хотя флагманские серии твердотельных дисков никак не выдают эти процессы.
Стоит учитывать, что работа проходит достаточно долго — ориентировочно, как при дефрагментации жестких дисков.
Поэтому короткие периоды подключения в простоя необходимо дополнять, оставляя диск подключенным на ночь, например.
Не забывайте заряжать свои флешки!