Назад

Вы заряжаете свои флешки?

Конечно нет, что за глупость. Это же шутка для далёких от электроники людей. Смешно. Но совсем не долго: теория подсказывает, что без подзарядки данные на флеш-накопителях должны портиться. А практика это подтверждает. Как же так? Что делать? Заряжать флешки – вопреки удивлению гуманитариев. Вспоминаем: как хранится информация и типы накопителей

Как известно, хранение данных может производиться на 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-диск или флешка остаются на длительное время без питания, вероятность отказа начинает расти.

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

Что нужно делать, чтобы флешки не теряли данные

Итак, что же нужно, чтобы данные с накопителей не пропадали? Ничего сложного: нужно оставлять их в USB без нагрузки. Скопировали данные, поработали с флешки — оставьте её подключенной к включенному компьютеру хотя бы на полчаса. Через некоторое время можно будет обратить внимание, что диск нагреется, а лампочки при наличии — загорятся, как во время работы. Это и будет говорить о работе контроллера по переразметке данных. Хотя флагманские серии твердотельных дисков никак не выдают эти процессы. Стоит учитывать, что работа проходит достаточно долго — ориентировочно, как при дефрагментации жестких дисков. Поэтому короткие периоды подключения в простоя необходимо дополнять, оставляя диск подключенным на ночь, например.

Не забывайте заряжать свои флешки!

Назад