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