Технологии флэш-памяти. Форм-факторы и интерфейсы

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

В настоящее время можно выделить две основных структуры построения флэш-памяти: память на основе ячеек NOR и NAND. Структура NOR (рис.1) состоит из параллельно включенных элементарных ячеек хранения информации. Такая организация ячеек обеспечивает возможность произвольного доступа к данным и побайтной записи информации. В основе структуры NAND (рис.2) лежит принцип последовательного соединения элементарных ячеек, образующих группы (в одной группе 16 ячеек), которые объединяются в страницы, а страницы – в блоки. При таком построении массива памяти обращение к отдельным ячейкам невозможно. Программирование выполняется одновременно только в пределах одной страницы, а при стирании обращение производится к блокам или к группам блоков.

рис.1 Структура NOR рис.2 Структура NAND

В результате различия в организации структуры между памятью NOR и NAND находят свое отражение в их характеристиках. При работе со сравнительно большими массивами данных процессы записи/стирания в памяти NAND выполняются значительно быстрее памяти NOR. Поскольку 16 прилегающих друг другу ячеек памяти NAND соединены последовательно друг с другом без каких-либо контактных промежутков, достигается высокая площадь размещения ячеек на кристалле, что позволяет получить большую емкость при одинаковых технологических нормах. В основе программирования флэш-памяти NAND лежит процесс туннелирования электронов. А поскольку он используется как для программирования, так и для стирания, достигается низкое энергопотребление микросхемы памяти. Последовательная структура организации ячеек позволяет получить высокую степень масштабируемости, что делает NAND-флэш лидером в гонке наращивания объемов памяти. Ввиду того, что туннелирование электронов осуществляется через всю площадь канала ячейки, интенсивность захвата заряда на единицу площади у NAND-флэш ниже, чем в других технологиях флэш-памяти, в результате чего она имеет более высокое количество циклов программирования/стирания. Программирование и чтение выполняются посекторно или постранично, блоками по 512 байт, для эмуляции общераспространенного размера сектора дисковых накопителей.

Основные отличия в параметрах флэш-памяти, изготовленной по различным технологиям, приведены в таблице 1.

Таблица 1. Сравнительные характеристики модулей памяти на основе ячеек NAND и NOR

Параметр NAND NOR
Емкость ~ 1 Гбит (2 кристалла в корпусе) ~ 128 Мбит
Напряжение питания 2.7 – 3.6 В 2.3 – 3.6 В
Ввод/вывод х8 / х16 х8 / х16
Время доступа 50 нС (цикл последовательного доступа)
25 мкС (случайный доступ)
70 нС (30 пФ, 2.3 В)
65 нС (30 пФ, 2.7 В)
Скорость программирования (типовая) -
200 мкС / 512 байт
8 мкС / байт
4.1 мС / 512 байт
Скорость стирания (типовая) 2 мС / блок (16 кБ) 700 мС / блок
Совокупная скорость
программирования и стирания (типовая)
33.6 мС / 64 кБ 1.23 сек / блок (основной: 64 кБ)

Ведущим лидером в производстве NAND-флэш микросхем является фирма Hynix. Она производит несколько разновидностей микросхем памяти, различающихся по следующим ключевым параметрам:

  • емкость (256 Мбит, 512 Мбит и 1 Гбит);
  • ширина шины, 8 или 16 бит (х8, х16);
  • напряжение питания: от 2.7 до 3.6 В (3.3 В устройства) или от 1.7 до 1.95 В (1.8 В устройства);
  • размер страницы: в х8 устройствах (512 + 16 запасных) байт, в 16х – (256 + 8 запасных) слов;
  • размер блока: в х8 устройствах (16 К + 512 запасных) байт, в 16х – (8 К + 256 запасных) слов;
  • время доступа: случайный доступ 12 мкС, последовательный 50 нС;
  • время программирования страницы 200 мкС;

Все микросхемы NAND-флэш от Hynix характеризуются типичным временем стирания блока 2 мС, имеют аппаратную защиту данных при переходных процессах по питанию и позволяют выполнять 100000 циклов записи/стирания. Гарантированное время сохранности данных составляет 10 лет. Важной особенностью микросхем памяти Hynix является их повыводная совместимость вне зависимости от емкости. Это позволяет очень легко улучшать потребительские характеристики конечного изделия. В таблице 2 приведены базовые параметры всех микросхем NAND-флэш фирмы Hynix.

Таблица 2. Сравнительный перечень микросхем NAND-флэш фирмы Hynix

Об"ем Тип Организаця Напряжение
питания
Диапазон
рабочих
температур*
Сккорость
(ns)
Корпус
256Mbit 32Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
32Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
16Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
16Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
512Mbit 64Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
32Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
32Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
1Gb 128Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA

* - Диапазоны температур
C - Коммерческий диапазон рабочих температур 0...+70°C
E - Расширенный диапазон рабочих температур -25...+85°C
I - Индустриальный диапазон рабочих температур -40...+85°C

Более детально особенности микросхем памяти Hynix можно рассмотреть на примере кристаллов серии HY27xx(08/16)1G1M. На рис.3 показана внутренняя структура и назначение выводов этих приборов. Линии адреса мультиплексированы с линиями ввода/вывода данных на 8-ми или 16-ти разрядной шине ввода/вывода. Такой интерфейс уменьшает количество используемых выводов и делает возможным переход к микросхемам большей емкости без изменения печатной платы. Каждый блок может быть запрограммирован и стерт 100000 раз. Для увеличения жизненного цикла NAND-флэш устройств настоятельно рекомендуется применять код корректировки ошибок (ECC). Микросхемы имеют выход «чтение/занят» с открытым стоком, который может использоваться для идентификации активности контроллера PER (Program/Erase/Read). Поскольку выход сделан с открытым стоком, существует возможность подключать несколько таких выходов от разных микросхем памяти вместе через один «подтягивающий» резистор к положительному выводу источника питания.


Рис.3 Внутренняя организация микросхем NAND-флэш Hynix

Для оптимальной работы с дефектными блоками доступна команда «Copy Back». Если программирование какой-либо страницы оказалось неудачным, данные по этой команде могут быть записаны в другую страницу без их повторной отправки.

Микросхемы памяти Hynix доступны в следующих корпусах:

  • 48-TSOP1 (12x20x1.2 мм) – рис.4;
  • 48-WSOP1 (12х12х0.7 мм)
  • 63-FBGA (8.5х15х1.2 мм, 6х8 массив шаровых контактов, 0.8 мм шаг)


Рис.4 NAND-флэш Hynix

Массив памяти NAND-структуры организован в виде блоков, каждый из которых содержит 32 страницы. Массив раздел на две области: главную и запасную (рис.5). Главная область массива используется для хранения данных, в то время как запасная область обычно задействована для хранения кодов коррекции ошибок (ECC), программных флагов и идентификаторов негодных блоков (Bad Block) основной области. В устройствах х8 страницы в главной области разделены на две полустраницы по 256 байт каждая, плюс 16 байт запасной области. В устройствах х16 страницы разделены на главную область объемом 256 слов и запасную объемом 8 слов.


Рис.5 Организация массива NAND-памяти

NAND-флэш устройства со страницами 528 байт / 264 слова могут содержать негодные блоки, в которых может быть одна и более неработоспособных ячеек, надежность которых не гарантируется. Помимо этого, дополнительные негодные блоки могут появиться в ходе эксплуатации изделия. Информация о плохих блоках записывается в кристалл перед отправкой. Работа с такими блоками выполняется по процедуре, детально описанной в справочном руководстве по микросхемам памяти Hynix.

При работе с микросхемами памяти выполняются три основных действия: чтение (рис.6), запись (рис.7) и стирание (рис.8).

Процедура чтения данных


Рис.6 Диаграмма процедуры чтения

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

Чтение страницы выполняется после доступа в режиме случайного чтения, при котором содержимое страницы переносится в буфер страницы. О завершении переноса информирует высокий уровень на выход «Чтение/занят». Данные могут быть считаны последовательно (от выбранного адреса столбца до последнего столбца) по импульсу сигнала на Read Enable (RE).

Режим последовательного построчного чтения активен, если на входе Chip Enable (CE) остается низкий уровень, а по входу Read Enable поступают импульсы после прочтения последнего столбца страницы. В этом случае следующая страница автоматически загружается в буфер страниц и операция чтения продолжается. Операция последовательного построчного чтения может использоваться только в пределах блока. Если блок изменяется, должна быть выполнена новая команда чтения.

Процедура записи данных


Рис.7 Диаграмма процедуры записи

Стандартной процедурой записи данных является постраничная запись. Главная область массива памяти программируется страницами, однако допустимо программирование части страницы с необходимым количеством байт (от 1 до 528) или слов (от 1 до 264). Максимальное число последовательных записей частей одной и той же страницы составляет не более одной в главной области и не более двух в резервной области. После превышения этих значений необходимо выполнить команду стирания блока перед любой последующей операцией программирования этой страницы. Каждая операция программирования состоит из пяти шагов:

  1. Один цикл на шине необходим для настройки команды записи страницы.
  2. Четыре шинных цикла требуются для передачи адреса.
  3. Выдача данных на шину (до 528 байт / 264 слов) и загрузка в буфер страниц.
  4. Один цикл на шине необходим для выдачи команды подтверждения для старта контроллера PER.
  5. Выполнение контроллером PER записи данных в массив.

Процедура стирания блока


Рис.8 Диаграмма процедуры стирания

Операция стирания выполняется за один раз над одним блоком. В результате её работы все биты в указанном блоке устанавливаются в «1». Все предыдущие данные оказываются утерянными. Операция стирания состоит из трех шагов (рис.8):

  1. Один цикл шины необходим для установки команды стирания блока.
  2. Только три цикла шины нужны для задания адреса блока. Первый цикл (A0-A7) не требуется, поскольку верны только адреса с А14 по А26 (старшие адреса), А9-А13 игнорируются.
  3. Один цикл шины необходим для выдачи команды подтверждения для старта контроллера PER.

Помимо Hynix микросхемы NAND-памяти выпускаются еще несколькими производителями, среди которых весьма большую номенклатуру и объем продаж изделий имеет компания Samsung. Она производит две базовые линейки микросхем памяти NAND Flash и One NAND™. Модули памяти семейства One NAND™ представляют собой одиночный кристалл памяти со стандартным интерфейсом NOR-флэш, основанный на массиве ячеек NAND-флэш.

Ассортимент выпускаемых компанией Samsung изделий более широк, чем у Hynix. Представлены модули емкостью от 4 Мбит до 8 Гбит, работающие в коммерческом и индустриальном температурных диапазонах. Доступны как 8-ми, так и 16-разрядные модификации на разные диапазоны питающих напряжений: 1,65…1,95 В или 2,7…3,6 В. Выпускаемые Samsung изделия имеют развитые аппаратные возможности защиты данных: защиту от записи для BootRAM, защитный режим для Flash-массива и защиту от случайной записи при включении и выключении.

В остальном устройство микросхем памяти Hynix и изделий семейства NAND Flash от Samsung практически идентично. В этой ситуации предпочтительным для потребителя вариантом является продукция того производителя, рыночная стоимость изделий которого наиболее приемлема.

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

Таблица 3. Преимущества и недостатки использования NAND-флэш в твердотельных накопителях

Категория Содержимое
Возможности Преимущества Хранилище данных, которые могут быть переданы через USB
Малый размер, легкость создания портативных устройств
Нет ограничений в объеме памяти
Безопасное хранение данных, физически более надежное в сравнении в HDD
Поддержка функции «горячей» установки Plug&Play
Быстрая скорость передачи:
USB 1.1: максимум до 12 Мбод, USB 2.0: максимум 480 Мбод
Превосходная совместимость со стандартизованным USB интерфейсом
Возможность питания от USB порта (500 мА, 4,5…5,5 В)
Недостатки Необходимость в программном обеспечении в операционной системе хост-контроллера
Необходимость в использовании чипсета USB-хоста
Высокая стоимость в сравнении с HDD сравнимой емкости
Емкость продукта От 16 Мбит до 8 Гбит
Скорость передачи Запись До 13 Мб/с под USB 2.0 у карты CF от SanDisk
Чтение До 15 Мб/с под USB 2.0 у SanDisk
Применение ПК (настольные, переносные), DVC,PDA, сотовые телефоны и пр.
Ведущие производители, использующие флэш-память M-Systems, Lexar Media, SanDisk и др.
Ассоциации USB-IF (форум конструкторов USB), UTMA (ассоциация универсальной транспортабельной памяти)

Продолжаем обсуждать устройство и принцип работы запоминающих устройств на нашем сайте. В прошлый раз мы обсуждали Flash-память (), а сегодня сконцентрируем внимание на одном из типов уже упомянутой Flash-памяти, а именно на NAND-памяти. Частично мы уже разобрались с устройством и работой NAND, так что перейдем к рассмотрению основных алгоритмов, способов подключения и некоторых тонкостей, о которых нельзя забывать, работая с NAND.

Начнем с того, что рассмотрим два типа NAND-памяти – а именно SLC-(single-level cell ) и MLC-(multi-level cell ) устройства. В SLC приборах одна ячейка памяти хранит один бит информации – именно такие устройства мы обсуждали в предыдущей статье. Возможно только два состояния ячейки памяти (полевого транзистора с плавающим затвором). Первое состояние соответствует заряженному затвору, а второе, соответственно, разряженному. Тут все просто – подаем пороговое напряжение и по наличию или отсутствию тока стока можем определить, какой бит записан в данную ячейку памяти.

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

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

MLC-память имеет меньшее количество максимально возможных циклов перезаписи по сравнению с SLC. Кроме того, SLC быстрее – то есть операции чтения/записи/стирания выполняются за меньшее количество времени. А поскольку для определения состояния ячейки памяти используется только одно пороговое значение напряжения, при использовании SLC-памяти меньше вероятность возникновения ошибки. Но это не значит, что MLC хуже. MLC-память, во-первых позволяет сохранять большее количество информации, а во-вторых дешевле. То есть с точки зрения отношения цена/качество MLC, в принципе, выглядит предпочтительнее.

Переходим к структуре NAND-памяти 😉

Как мы помним, в отличие от NOR-памяти, при использовании NAND мы не имеем доступа к произвольной ячейке памяти. Все ячейки объединены в страницы. А страницы объединены в логические блоки. Каждая страница помимо сохраненной пользователем информации содержит некоторые дополнительные данные – информация о “плохих” блоках, дополнительная служебная информация для коррекции ошибок.

Сложность при работе с NAND заключается в том, что невозможно получить доступ к какой-то конкретной ячейке информации. Запись данных можно производить только постранично, то есть если мы хотим изменить какой-то бит, то нам нужно перезаписать все страницу целиком. А стирать данные и вовсе можно только блоками. Вот для примера характеристики микросхемы NAND-памяти NAND128W3A: размер страницы – 512 байт + 16 байт дополнительной служебной информации, размер блока – 16 кБайт, то есть 32 страницы.

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

Со структурой разобрались, напоследок я бы еще хотел немного рассказать о том, как осуществляется подключение микросхем NAND-памяти.

А для этого используется параллельная шина передачи данных, Ширина шины – 8 или 16 байт, в зависимости от конкретного устройства. Линии данных объединены с линиями адреса, что позволяет уменьшить количество занятых выводов. Вот тут хорошо описаны управляющие сигналы и их назначение:

Если мы хотим подключить память к микроконтроллеру, то лучше всего выбрать контроллер, в котором есть аппаратная поддержка передачи данных по параллельному интерфейсу. Например, многие STM32 оснащены модулем FSMC, который позволяет подключить внешнее устройство памяти. Но в это мы сейчас не будем углубляться, лучше оставим эту тему до будущих статей 😉 Возможно, в ближайшее время как раз и попробуем соорудить небольшой пример для STM32, в котором будем записывать и считывать данные из NAND-памяти, так что до скорых встреч!)

#Тип_чипов #3D_MLC_(Multi_Level_Cell) MLC_(Multi_Level_Cell) #3D_TLC_(Triple_Level_Cell) #TLC_(Triple_Level_Cell)

В современных SSD наиболее распространены три типа чипов памяти : SLC, MLC и TLC.

SLC – Single Level Cell – ячейка с одним уровнем. Имеет высокую производительность, низкое потребление электроэнергии, наибольшую скорость записи и количество . Такой тип памяти обычно используется в серверах высокого уровня, поскольку стоимость на их основе велика.

MLC - Multi Level Cell – ячейка с несколькими уровнями. Обладает меньшей стоимостью, по сравнению с SLC, однако обладает меньшей выносливостью и меньшим количеством . Является хорошим решением для коммерческих и рабочих платформ - имеет хорошее соотношение цена/скорость работы.

EMLC - Enterprise Multi Level Cell – ячейка, аналогичная по структуре обычной MLC, но с увеличенным ресурсом по . По надежности eMLC находится между SLC и MLC, при этом цена не сильно выше, чем у последней. Типичное применение - рабочие станции и серверы среднего класса.

TLC - Three Level Cell – ячейка с тремя уровнями. Обладает большей плотностью, но меньшей выносливостью, медленной скоростью чтения и записи и меньшим количеством по сравнению с SLC и MLC. До настоящего момента, память типа TLC использовалась в основном в flash-накопителях (флешках), однако совершенствование технологий производства сделало возможным его использование и в стандартных SSD.

Все описанные выше типы ячеек памяти относятся к планарному типу, то есть 2D. Их недостатком является то, что для увеличения плотности в каждом отдельном чипе приходится уменьшать техпроцесс, и из-за ряда физических ограничений делать это до бесконечности не получится. Для преодоления этого были разработаны 3D ячейки памяти. Такие ячейки представляет собой цилиндр:

Таким образом появляется возможность разместить большее количество ячеек памяти на одном слое микросхемы. Такие ячейки называются 3D V-NAND и 3D TLC. Что касается емкости и надежности, то она соответствует ячейкам TLC.

Количество состояний ячейки, в зависимости от типа памяти
Физически, все три типа технологий памяти состоят из одинаковых транзисторов, единственным отличием является то, что они хранят в себе различное количество зарядов. Все три работают одинаково: при появлении напряжения ячейка переходит из состояния «выключено» в состояние «включено». SLC использует два отдельных значения напряжения для представления одного бита информации на ячейку и двух логических уровней (0 и 1). MLC использует четыре отдельных значения напряжения для представления четырех логических состояний (00, 01, 10, 11) или двух битов. TLC использует восемь отдельных значений напряжения для представления восьми логических состояний (000, 001, 010, 011, 100, 101, 110, 111) или трех битов информации.

Поскольку в SLC используется только два значения напряжения, они могут сильнее отличаться друг от друга, уменьшая потенциальную возможность некорректно интерпретировать текущее состояние ячейки и позволяя использовать стандартные условия коррекции ошибки . Вероятность ошибок чтения увеличивается при использовании TLC NAND, поэтому такой тип памяти требует большего объема ECC (Error Correction Code – код коррекции ошибок) при исчерпании ресурса NAND, поскольку в TLC приходится корректировать сразу три бита информации, в отличие от одного для SLC и двух для MLC.

В 1989 году состоялся анонс Nand Flash памяти, данная разработка была представлена компанией Toshiba на International Solid-State Circuits Conference. До этого существовали только разработки NOR памяти, основными недостатками которой были: скорость работы и большая площадь чипа. Основным отличием NAND Flash от Nor Flash являются особенности адресации, если в NOR Flash можно адресовать произвольную ячейку, то в NAND Flash применена страничная адресация (обычно размер страницы 528, 2112, 4224, 4304, 4320, 8576 байт).

На сегодня существует масса устройств, где используются микросхемы NAND Flash в том числе и в различных носителях информации, таких как SSD накопители, USB Flash, различные Flash card (MMC, RS-MMC, MMCmicro, SD, miniSD, MicroSD, SDHC, CF, xD, SmartMedia, Memory Stick и т.д.)

Принципиально носители информации на NAND Flash из себя представляют микроконтроллер, который обеспечивает работу с микросхемами памяти, а также работу с различными устройствами по заданному стандартами интерфейсу. В большинстве устройств это выглядит как небольшая плата, на которой размещены одна или несколько микросхем NAND Flash памяти в конструктивном исполнении TSOP-48, short TSOP-48 или TLGA-52 и микроконтроллер. Миниатюрные устройства, как правило выполнены в виде одного чипа в который интегрированы как микросхема Nand Flash, так и микроконтроллер.

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

Для равномерного износа NAND Flash практически во всех контроллерах организованно разделение адресного пространства на логические банки, которые в свою очередь разделяются на блоки (состоящие из нескольких страниц памяти), обычно на 256-2048 блоков. Контроллером ведется учет количества записей в каждый из блоков. Для того чтобы данные пользователя можно было свободно перемещать внутри банка, для этого имеется логическая нумерация блоков т.е. на практике при чтении микросхемы в дамп видим картину что данные пользователя в виде достаточно крупных блоков (16кб – 4Мб) хаотично перемешаны. Порядок работы с пользовательскими данными отражен в трансляторе в виде таблицы в которой указан порядок построения блоков для того чтобы получить упорядоченное логическое пространство.

Для увеличения операций чтения/записи производители контроллеров реализуют функции распараллеливания данных, то есть прямая аналогия с RAID массивом уровня 0 (stripe), только немного более сложная реализация. На практике это выглядит либо в виде внутриблочного распараллеливания (интерлива), на более мелкие подблоки (как правило от 1 байта, до 16Кб), также симметричное распараллеливание (страйп) между физическим банками микросхемы NAND Flash и между несколькими микросхемами.

Стоит понимать, что при таком принципе работы, транслятор накопителя – постоянно изменяющаяся таблица, практически при каждой записи в NAND Flash. Исходя из принципа работы с NAND Flash – чтение блока в буфер, внесение изменений и запись блока на место, очевидно, что наиболее опасны для данных являются незавершенные операции записи; например, когда происходит запись измененного транслятора. В результате необдуманного обращения с накопителями: внезапного извлечения их из USB разъема или из разъема кардридера во время записи, чревато разрушением служебных данных, в частности таблицы трансляции.

При разрушение служебных данных, накопитель не может функционировать или в некоторых случаях функционирует неверно. Извлечение данных программными средствами, как правило, не представляется возможным по многим причинам. Одно из решений – это выпаивание микросхем NAND Flash с последующим чтением на соответствующем считывателе (программаторе). Учитывая, что оригинальный транслятор отсутствует, либо поврежден, предстоит работа по разбору дампа извлеченного из микросхемы NAND Flash. Многие, наверное, обратили внимание на кажущийся странным размер страниц памяти в NAND Flash. Это объясняется тем, что в каждой странице, кроме данных пользователя имеются служебные данные обычно это представлено в виде 512/16; 2048/64; 4096/128; 4096/208 (существуют и значительно более сложные варианты организации данные/служебка). В служебных данных присутствую различные маркеры (маркер, номера блока в логическом банке; маркер ротации блока; ECC; и т.п.) Восстановление пользовательских данных сводится к устранению распараллеливания данных внутри блоков, между банков и между микросхемами памяти для получения цельных блоков. Если есть необходимость, то устраняются внутриблочные ротации, ренумерации и т.п. Дальнейшая задача, состоит в поблочной сборке. Для того чтобы ее осуществить необходимо четко уяснить количество логических банков, количество блоков в каждом логическом банке, количество используемых блоков в каждом банке (задействованы не все) местонахождение маркера в служебных данных, алгоритм нумерации. И только потом производить сбор блоков в конечный файл-образ из которого можно будет произвести чтение пользовательских данных. В процессе сбора подстерегают подводные камни в виде нескольких блоков-претендентов на одну позицию в конечный файл-образ. После решение данного круга задач, получаем файл-образ с пользовательской информацией.

В случаях, когда данные не играют никакой роли, но есть желание восстановить работоспособность самого накопителя, то лучшие вариант коррекции проблем со служебными данными – это выполнение процедуры форматирования фирменной утилитой с сайта производителя накопителя. Многие утилиты фактически переписывают всю служебную информацию, создают чистый транслятор, и выполняют процедуру форматирования с созданием новой файловой системы. Если же производитель не удосужился выложить Recovery-утилиту, тогда выход в виде поиска утилит форматирования накопителей на NAND Flash «по контроллеру», единственно, что покажется сложным пользователю – это обилие производителей контроллеров и сложности с идентификацией последнего.

Павел Янчарский

Перепечатка материалов разрешена только с указанием активной ссылки на оригинал статьи

В настоящее время все больше популярности набирают твердотельные накопители или SSD (S olid S tate D rive). Связанно это с тем, что они способны обеспечить как высокую скорость чтения-записи файлов, так и хорошую надежность. В отличии от обычных жестких дисков, здесь нет движущихся элементов, а для хранения данных используется специальная флеш-память — NAND.

На момент написания статьи в ССД используются три вида флеш-памяти: MLC, SLC и TLC и в этой статье мы постараемся разобраться какая из них лучше и в чем различие между ними.

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

Теперь давайте рассмотрим, какие виды памяти применяются в твердотельных накопителях.

Single Level Cell (SLC)

SLC — это уже устаревший тип памяти, в котором использовались одноуровневые ячейки памяти для хранения информации (кстати, дословный перевод на русский язык звучит как «Одноуровневая ячейка»). То есть, в одной ячейки хранился один бит данных. Подобная организация хранения данных позволяла обеспечить высокую скорость и огромный ресурс перезаписи. Так, скорость чтения достигает 25 мс, а количество циклов перезаписи — 100’000. Однако, несмотря на свою простоту, SLC является очень дорогим типом памяти.

Плюсы:

  • Высокая скорость чтения-записи;
  • Большой ресурс перезаписи.

Минусы:

  • Высокая стоимость.

Multi Level Cell (MLC)

Следующим этапом развития флеш-памяти является тип MLC (в переводе на русский звучит как «мультиуровневая ячейка»). В отличии от SLC, здесь используются двухуровневые ячейки, которые хранят по два бита данных. Скорость чтения-записи остается на высоком уровне, однако выносливость значительно снижается. Если говорить языком цифр, то здесь скорость чтения составляет 25 мс, а количество циклов перезаписи — 3’000. Также этот тип является и более дешевым, поэтому он используется в большинстве твердотельных накопителях.

Плюсы:

  • Более низкая стоимость;
  • Высокая скорость чтения-записи по сравнению с обычными дисками.

Минусы:

  • Низкое количество циклов перезаписи.

Three Level Cell (TLC)

И наконец, третий тип памяти — это TLC (русский вариант названия этого типа памяти звучит как «трехуровневая ячейка»). Относительно двух предыдущих, этот тип является более дешевым и в настоящее время встречается достаточно часто в бюджетных накопителях.

Этот тип является более плотным, в каждой ячейке здесь хранится по 3 бита. В свою очередь, высокая плотность приводит к снижению скорости чтения/записи и снижает выносливость диска. В отличии от других типов памяти, скорость здесь снизилась до 75 мс, а количество циклов перезаписи — до 1’000.

Плюсы:

  • Высокая плотность хранения данных;
  • Низкая стоимость.

Минусы:

  • Низкое количество циклов перезаписи;
  • Низкая скорость чтения-записи.

Заключение

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

Бюджетным, и в тоже время, менее скоростным является тип TLC.

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




Top