0,0
рейтинг
7 августа 2013 в 14:29

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

Многие современные технологии мы уже привыкли воспринимать как должное, не особо задумываясь, как они работают, что за ними стоит, какова история их развития. Касается это в том числе и компьютеров. Я уже писал об истории развития технологий хранения данных, наглядно показывающую эволюцию в этой отрасли. На этот раз я решил рассказать подробней про одну из технологий, активно используемых компанией 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 промышленного уровня, предназначенные для работы в режиме 24x7, если это ноутбук или десктоп, подойдут и более дешевые устройства.



Итак, современные 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.
Александр Зейников @alexzeynikov
карма
72,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (41)

  • +5
    Жаль, что про физическую реализацию хранения нескольких бит в одной ячейке ни слова не скаазно.
    • +3
      Можно бы найти информацию по тому, как это реализуется в физике, но будет очень скучно. Я закончил кафедру технологий производства радиоэлектронного оборудования и помню из курса физических основ микроэлектроники как там все сложно… Затворы-стоки-истоки-легирование… Это все же для ИТшников статья, а не для профессионалов в области микроэлектроники.
    • +2
      Если совсем коротко, то в SLC логическому уровню соответствует наличие/отсутствие заряда на ячейке, тогда как в MLC по тем или иным характеристикам измеряется уровень (или «количество») этого заряда. Если мы можем достоверно различить 4 уровня заряда на ячейке, то им можно поставить в соответствие 2 бита информации.

      Разумеется, чем больше уровней тем больше вероятность ошибки различения или уплывания параметров, поэтому надежность меньше, но зато больше удельная емкость.

      Реально различать уровни можно если заставить транзистор работать не в ключевом режиме а линейно.
  • +1
    > Микросхемы, в которых одна ячейка хранит один бит информации стали называть Single-Level Cell или SLC, а их альтернативу, в которой каждая ячейка сохраняет два бита информации за счет возможности хранения 4 уровней заряда, стали называть Multi-Level Cell или MLC.

    Вы забыли про TLC.
    For MLC, you store two bits per cell, which means instead of two voltage states (0 and 1) you have four states (00, 01, 10, 11). TLC takes that a step further and stores three bits per cell, or eight voltage states (000, 001, 010, 011, 100, 101, 110, and 111).
    • +1
      Спасибо за дополнение. По битикам когда распишешь, гораздо понятней становится. BTW, TLC — жесткая экзотика и подкласс MLC
      • +1
        Не то чтобы экзотика — новые 1ТБ Самсунги на них построены, да и Микрон чипы, емнип, с 2010 года клепает вовсю.
  • +3
    Классная статья!
    Автор давай еще и по остальным темам в той же стилистике!
  • +4
    ZX Spectrum (русские варианты Поиск, Magic)

    Поиск не являлся аналогом Спектрума. Он был на 8088
    • 0
      Точно, Поиск это 8088. Но там тоже была такая микросхемка вроде. А вторая торговая марка была по-моему Кворум, что-ли… А кто знает про теневое ПЗУ с поддержкой 5.25'' флоппи-дисков для Спектрумов? Удивительное техническое решение.
      • 0
        Такая «микросхемка» (или похожая по функциональности) есть практически в любом компьютере.
        В особенно старых компах чаще встречались одноразовые (можно пережечь бит только один раз).
    • 0
      Байт забыли. У него был режим Спектрум48 совместимости.
  • 0
    А возможно ли производство памяти на пережигаемых перемычках с гигабайтной ёмкостью?
    • +2
      эту микросхему надо будет портальным краном поднимать
      • 0
        Почему же? На меньшие ёмкости такие микросхемы и сейчас производятся ради низкой цены в больших тиражах. Размером как и обычные электрически-стираемые на ту же ёмкость.
        • –1
          Электрически-стираемые флешки можно делать и сильно меньше, их просто для удобства пакуют в корпуса крупней, сам кристалл там небольшой. А вот на перемычках — гигабайт — это 1073741824 перемычки, и они явно крупней чем полупроводниковые транзисторы с плавающим затвором. Дальше думайте сами.
          • 0
            Наверно, я не в том направлении думаю.
            Но если, например, взять 32 мегабитную разово-программируемую (даже не масочную) микросхему в самом крупном корпусе (PDIP-42). Для гигабайта надо 256 таких микросхем.
            Предположим каждая микросхема весит 10 грамм (хотя, на практике меньше), то получается что для гигабайта надо 2 с половиной килограмма таких.
            А ведь если сделать меньшее количество корпусов, то масса будет значительно меньше.
            • 0
              а есть 32-мегабайтная микросхема на пережигаемых перемычках?
              может это как раз я недооцениваю современные технологии?
              • 0
                32 мегабайтные не нашёл, а 32 мегабитные есть.

                Я так сходу нашёл у ST микросхему M27C322. Это 32 мегабита (2Mx16) в вариациях с UV и OTP.
                Datasheet если интересно. Кстати, даташит датирован 2000-ым годом.

                Так же у ST есть M27C320 (4Mx8) в более компактных корпусах TSOP48 и SO44. Datasheet там вообще от 1998-ого года.

                Возможно, есть более современные варианты в природе. Хотя, по поводу этого я уже не уверен.
          • 0
            А почему 1073741824 перемычки должны занимать больше места чем 1073741824 транзистора?
            Перемычкой может быть тот же p-n переход, например, пробиваемый при программировании.
            • 0
              Я так понимаю что это связано с тем, что метал с перегоревшей перемычки испаряется, он никуда не девается и надо принять какие-то меры, что бы он не осел где попало (например, чуть больше свободного места).
              Хотя, возможно, это были проблемы только с биполярными одноразовами prom'ами. Поправьте если кто знает наверняка.
            • 0
              скорее всего вы правы, просто «пережигаемая перемычка» ассоциируется в уме автоматически с проволокой :)
  • –3
    Нитро Мега Рэйд ?! — супер пупер ультра КРУТО
    • +2
      MegaRAID — это у них марка такая, поэтому даже пишется слитно. Но в комбинации на слух звучит интересно, конечно.
    • 0
      Да там это поголовно. У Supermicro, например: superServer, superBlade, и вишенкой на торте superRaid. Think ветку от ИБМ тоже многие помнят.
      Gigabyte — туда же, как и многие другие
      Как говорится: «Это маркетинг — детка».
      P.S.: хочется процитировать одного хабровчанина:
      «И именно благодаря таким мыслям иногда хочется взять всех маркетологов, согнать их на огромный корабль и затопить где-то в океане.
      Прошу прощения за резкое высказывание, конечно, я не всерьез. Я знаю, что океан не резиновый и мы не можем просто топить там что-попало, нужны специальные заводы по утилизации.»
  • +1
    Вопрос — стоит ли брать SLC SSD 25 GiB за 5000-6000 или ограничиться «нормальными» MLC?
    • 0
      а куда?
      • 0
        Для хранения swap-файла;-) и, заодно, может быть, установки системы…
        • 0
          Точно не стоит.
          • 0
            Почему? SCL же — они надёжнее и раз в 10 выносливее.
            • 0
              Для SLC главные задачи это СУБД, Web, то есть приложения где много IOPs-ориентированных операций. В вашем случае это бессмысленная трата денег, на мой взгляд. Если только скорость загрузки ОС для вас не критична.
              • 0
                Для меня критична скорость работы файла подкачки.
                бессмысленная трата денег
                По сравнению с MLC или тут вообще SSD не нужен?
                • +1
                  На мой взгляд SSD здесь не нужен вовсе. Проблемы с файлом подачки решаются всё-таки его отсутствием (увеличьте память если можно).
                  • 0
                    Проблемы с файлом подачки решаются всё-таки его отсутствием

                    Если операционная система не windows — в windows возникают новые проблемы и глюки, выход — просто уменьшить размер файла подкачки. С unix-подобными системами после отключения файла подкачки подобных проблем не замечал (всегда ставлю linux без swap).
  • –1
    Кстати, до сих пор можно встретить достаточно распространенное заблуждение, что при достижении предела по записи, устройства SSD умирают с потерей данных. Это не так.


    К сожалению, это не миф. Достаточно часто слышал о преждевременной кончине SSD от знакомых админов, в связи с чем бэкапы встают на первое место при установке такого рода дисков. Но это не отбивало желание покупать новые, т.к. скорость работы — первостепенная задача для них.
    • 0
      Прежде какого времени кончились SSD? Бэкапы нужны вообще всегда и к надежности SSD никакого отношения не имеют. Что надежней, HDD или SSD? Правильный ответ выражается в цифрах MTBF для конкретных моделей HDD и SSD.
      • 0
        Прежде времени, заявленного производителем. Такие диски меняют, практически, без проблем, но это же не дело… Даже те диски что действительно исчерпывали свой ресурс дохли с потерей данных. Один единственный издох с режимом READ ONLY. Он издох по истечении гарантии, но ресурс по счетчикам еще должен был быть. Самое странное, что он просто так взял и превратился в «CD-R» READ ONLY без суда и следствия предупреждения. И мы еще долго ломали голову что это случилось (такое впервые в нашей практике) и в чем, собственно, проблема. На счет бекапов, это да, но HDD все-же надежнее в разы. И в случае чего, если не было прямых попаданий из крупнокалиберных орудий из крейсера «Аврора» при бережном пользовании все легко восстановить. А с SSD данные «забудь его, забудь» практически невозможно восстановить если нет знакомого шамана с бубном из племени «Тумба-юмба» без серъезного вмешательства в електронику, а, порой, восстановить нереально никак.
        • 0
          А кто производитель ваших горе-SSD?
          • 0
            Если не ошибаюсь, то Kingston, по крайней мере, большинство.
            • 0
              Kingston OEMил Intel x25E, один из лучших SLC своего времени, насколько я помню. Очень странно слышать такие заявления, вы первый кто встречался с подобными проблемами из моих коллег.
              • 0
                Ну не я лично, а мой знакомый и я не рискнул покупать вообще, а вот с флешками Kingston хлебнул горя я лично, на счастье ничего важного на них не было. В ходе расследований выяснил, что данный производитель экономит на контроллерах (к самой флеш памяти претензи не было, но возможно, и на них). Возможно, за 5 лет (это в 2008 году было) что-то изменилось (я в данный момент про флешки), но всеравно не рискну своим здоровьем своих данных покупать и пробовать не улучшилось ли их качество… Итак к чему я веду, что не исключаю, что и на SSD идет та же экономия и качество. Да они самые дешевые (ито не всегда), но не лучшие. Я нашел много IT специалистов, которые жаловались на то же, что и я. Если мне перепадают такие флешки на халяву я всеравно отказываюсь — мне мои данные дороже. Лично я предпочитаю Transend. Все что у меня были я перепродал (апгрейдился сейчас имею на 16 ГБ Transend и на 16 ГБ Attache) и до сих пор они служат верой и правдой другим хозяевам.
                Добавлю, что даже SSD от Transend я б не купил. Если уж переходить с HDD, то только на Racetrack, а она еще неизвестно когда появится.
              • –1
                К стате, забыл самое главное… Мой знакомый не считает такую работу катастрофической: ну и что, что издох, есть бекапы, заменят по гарантии или свое уже отслужил. (Что они дохли всегда гораздо раньше HDD, думаю говорить не надо) «Зато как база летала! Ух!» Я не разделяю его мыслей совсем. Да купи оперативы, оптимизируй под обработку в ней (я так и зделал) и радуйся, вообще оптимизируй! Да лень или что — лучше купить SSD и все.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.