Краткий экскурс в историю флэш-памяти

от автора

Многие современные технологии мы уже привыкли воспринимать как должное, не особо задумываясь, как они работают, что за ними стоит, какова история их развития. Касается это в том числе и компьютеров. Я уже писал об истории развития технологий хранения данных, наглядно показывающую эволюцию в этой отрасли. На этот раз я решил рассказать подробней про одну из технологий, активно используемых компанией LSI, про твердотельную, или SSD (Solid State Drive) память.


Используется она повсеместно, начиная с микросхемы, хранящей код BIOS компьютера (кто постарше — тот помнит вирус Win.CIH, выводивший компьютеры из строя, стирая содержимое этой микросхемы) и заканчивая ультрасовременными гибридными контроллерами RAID с функцией кэширования, такие как LSI Nytro, о которой мы рассказывали). Не говоря уже про разные внешние накопители, без которых, пожалуй, был бы невозможен прогресс современной техники: каким анахронизмом выглядят сейчас цифровые камеры Sony Mavica MVC-FD5 (и ряд других моделей), сохранявшие изображения на 3.5 дюймовые дискеты.

Начиналась история флэш-памяти еще в середине 20 века, именно тогда, в подразделении Arma корпорации American Bosch Arma, ученый-баллистик и пионер цифрового компьютинга Вэн Цинг Чоу (Wen Tsing Chow) работал над задачей улучшения блоков памяти координат бортового компьютера ракетной системы Atlas E/F. Разработанное им решение несколько лет являлось секретным, так как Атлас стоял на вооружении американского аналога РВСН, но позже технология была рассекречена, и технология, названая PROM (programmable read-only memory) получила широкое распространение.

Технология достаточно проста по своей сути: такая память представляет собой пересечение двух массивов проводников, образующих координатную сетку. В узлах этой сетки проводники замкнуты специальной перемычкой. Когда нужно определить значение ячейки по заданным координатам, достаточно проверить, проходит ли ток по пересечению нужных проводников. Наличие тока означает, что перемычка цела, и соответствует значению 1, обратная ситуация — кодирует 0. По-умолчанию все ячейки имели значение 1. Несложно догадаться, что программирование таких микросхем (называвшееся прожиганием) происходило очень просто: к тем ячейкам, где нужны были нули, подавалось высокое напряжение, испарявшее перемычку. Таким образом, получались микросхемы с возможностью одноразовой записи. На самом деле, «дозаписать» микросхему было возможно, но только в сторону стирания перемычек. Также в силу несовершенства технологий перемычка могла восстановиться, искажая значения. Для борьбы с изменением данных в обе стороны использовали контрольные суммы. Кроме того, к недостаткам микросхем такого типа относилась весьма маленькая емкость.

Но были у ППЗУ (русский перевод аббревиатуры) и достоинства: высокая скорость доступа к данным и устойчивость к электромагнитным импульсам, столь ценная для мест, где ядерные взрывы — не редкость.

Следующий шаг в технологиях постоянного хранения данных был сделан в недрах компании Intel. Исследуя дефекты микросхем, в которых затворы транзисторов оказались разрушенными, Довом Фроманом (Dov Frohman-Bentchkowsky) был изобретен новый тип памяти EPROM. Каждая ячейка такой памяти представляет собой полевой транзистор с двумя затворами: первый управляющий, второй — плавающий, который не имеет связи с другими элементами схемы. В роли изоляции выступает слой оксида кремния.

Для запоминания данных нужно выбрать нужные ячейки и подать на них более высокое напряжение, это позволит электронам за счет более высокой энергии пройти слой изоляции и аккумулироваться на затворе (этот эффект туннелирования носит название Фаулера — Нордгейма). После того, как управляющее напряжение снимается, электроны оказываются «заперты» на затворе, сохраняя информацию надолго. Главная проблема в этом случае — невозможность электрически стереть информацию. Для их стирания используют мощные ултрафиолетовые лампы, освещающие микросхему через специальное окошко из кварцевого стекла. Ультрафиолет вызывает ионизацию в изолирующем слое оксида, заряд утекает и данные оказываются стертыми.

Такие микросхемы использовались в роли микросхем БИОС в старых компьютерах. Окно стирания обычно заклеивалось наклейкой с логотипом производителя, чтобы защитить микросхему от самопроизвольного стирания под действием солнечного света. Такие микросхемы, например, использовались в компьютерах ZX Spectrum (русские варианты Поиск, Magic). Именно эти компьютеры (многие помнят скрипуче-модемный звук, издаваемый магнитофонными кассетами с записанными на них играми для этих ПК) стали для многих современных инженеров и специалистов первыми компьютерами, с которых начался их путь в IT.

В 1978 году, инженер компании Intel Джордж Перлегос (George Perlegos) представил микросхему Intel 2816, схожую по технологии с EPROM, но за счет более тонкого слоя изоляции, микросхема могла стирать свое содержимое без использования ультрафиолетового облучения. Это стало началом технологии ЭСППЗУ или по-английски EEPROM (Electrically Erasable Programmable Read-Only Memory). Главными недостатками микросхем, выполненных по данной технологии являются ограниченное количество циклов записи (хотя современные чипы довели это количество где-то до миллиона) и самопроизвольное стирание данных (для нынешних микросхем промышленного класса, гарантируется хранение данных минимум 3 года).

Так как в микросхемах ЭСППЗУ для стирания нужно было создать электрическое поле большой напряженности в достаточно тонком слое диэлектрика, это привело к невозможности создания микросхем перезаписываемой памяти с высокой степенью компоновки. Это, в свою очередь, привело к развитию двух классов устройств: емких микросхем с однократной записью без возможности стирания и перезаписываемых микросхем высокой емкости. Проблема была решена инженером компании Toshiba Фудзио Масуокой, название его открытию дал его коллега Сёдзи Ариидзуми, которому процесс стирания напомнил фотовспышку. Как не сложно догадаться, назвални они эти микросхемы flash-memory (флэш-память). Изобретение было представлено публике в 1984 году, а в 1988 — компания Intel представала коммерческие чипы памяти, построенные на принципе NOR-флеш, а в 1989 году компанией Toshiba была анонсирована NAND память.

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

Микросхемы, в которых одна ячейка хранит один бит информации стали называть Single-Level Cell или SLC, а их альтернативу, в которой каждая ячейка сохраняет два бита информации за счет возможности хранения 4 уровней заряда, стали называть Multi-Level Cell или MLC. Таким образом, MLC чипы получаются дешевле SLC, но работают медленней, и менее надежны. В последнее время можно увидеть также аббревиатуру eMLC (Enterprise class MLC). Обычно так обозначают устройства, имеющие повышенные по сравнению с MLC скоростные характеристики чтения-записи, а также увеличенный срок службы. Анализируя ценовые характеристики, современные eMLC стоят примерно в два раза дешевле и лишь незначительно уступают по скорости и надежности устройствам, построенным на базе SLC.

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

Основная область применения NOR — микросхемы небольшого объема, но с повышенными требованиями к надежности хранение: микросхемы начальной загрузки компьютеров, встраиваемая память однокристальных контроллеров и т.п. NAND — это традиционные хранилища данных максимального объема: карты памяти, SSD диски и так далее. В случаях использования NAND обычно применяется избыточность хранения данных и контрольные суммы для защиты от сбоев. Так же обычно микросхемы оснащаются «запасными» блоками, вступающими в работу взамен тех, что уже «износились».

Современные флэш-накопители не возможны без использования сервисных микросхем, управляющих хранением данных на чипах NAND. Эти микросхемы получили название FSP (Flash Storage Processor) или процессоры, управляющие хранением на флэш-памяти. Компания SandForce (ныне подразделение LSI), является лидером по производству такого класса микросхем. Интересно, что вычислительная мощность таких процессоров очень и очень высока. Современное поколение имеет в своем составе 2 ядра, имеет возможность защиты (с подсчетом проверочных сумм) данных, похожей на то, что мы обычно называем RAID 50/60 и управляет процессами сбора цифрового «мусора», следит за равномерным износом ячеек памяти, выполняет другие сервисные функции. С введением такого интеллектуального управления NAND-памятью, современные устройства имеют прогнозируемый срок службы и программируемую надежность. Имея статистические данные, очень легко сделать SSD, обладающий заданными параметрами производительности и надежности. Подобные сервисные микросхемы имеют длительные циклы разработки, и сейчас разрабатываются чипы, которые будут работать с микросхемами флэш-памяти, которые будут производиться только через 2-3 года.

Кстати, до сих пор можно встретить достаточно распространенное заблуждение, что при достижении предела по записи, устройства SSD умирают с потерей данных. Это не так. При достижении определённых лимитов по перезаписи, сначала администратору сервера высылаются предупреждения о скором окончании срока службы устройства, а при достижении критического порога, запись на устройство прекращается, а само устройство переходит в режим READ ONLY, только для чтения. Все современные контроллеры хранения умеют работать с этим функционалом SSD, а пользователям SSD всего лишь необходимо приобретать устройства, предназначенные для их класса задач. Если это сервер, то нужно покупать SSD промышленного уровня, предназначенные для работы в режиме 24×7, если это ноутбук или десктоп, подойдут и более дешевые устройства.

Итак, современные SSD или флэш-устройства представлены сегодня в форматах SD, USB-flash, SATA(SAS) SSD – в тех же 2.5’’ и 3.5’’ форм-факторах, что и жесткие диски HDD. В мире серверов набирает обороты PCIe-SSD – формат, когда SSD смонтированы на плате, подключаемой непосредственно в PCI-слот.

Nytro WarpDrive

Для кэширования и бездисковой загрузки SSD монтируются на платы RAID-контроллеров.
Nytro MegaRAID

Внешние системы хранения уже несколько лет предлагают в виде опции SSD вместо HDD. Кроме этого, есть и специальные внешние системы хранения данных на флэш-технологиях, например, Violin и Ramsan.

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

По материалам личного опыта, внутренних ресурсов компании LSI (SandForce), ресурсов How Staff Works, Википедии, курсов MIT.

ссылка на оригинал статьи http://habrahabr.ru/post/189294/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *