Поиск по сайту

up

Диски SSD на основе NAND-памяти: технологии, принцип работы, разновидности

28-06-2010

В основу зарождения NAND-памяти легла появившаяся намного раньше флеш-память, используемая в твердотельных накопителях с явно меньшей скоростью работы, долговечностью и большей площадью чипа, чем у NAND-памяти. Флеш-память изобрел Fujio Masuoka в 1984 году, работая в компании Toshiba. После представления разработки Fujio Masuoka на IEEE 1984 (International Electron Devices Meeting) в Сан-Франциско (Калифорния) компания Intel в 1988 году выпустила первый коммерческий флеш-чип типа NOR. Появление NAND-типа флеш-памяти было анонсировано Toshiba в 1989 году на Международной конференции, посвященной твердотельным дискам (International Solid-State Circuits Conference).

Flash-память, типы NAND-памяти

Принципиальным отличием флеш-памяти является хранение ею одного бита информации в массиве транзисторов с плавающим затвором, называемых ячейками. Существует два типа NAND-памяти, используемой в SSD дисках – SLC и MLC. Чем же отличаются SLC и MLC типы памяти? SLC-устройства имеют одноуровневые ячейки, которые хранят в каждом транзисторе только один бит, а многоуровневые MLC могут хранить в каждой ячейке несколько бит информации. Это следствие использования разных уровней электрического заряда на плавающем затворе транзистора. Принцип кодирования (логического 0 или 1) информации во всех случаях одинаков, он будет описан нами ниже. Различается лишь строение ячейки. Глубина уровней MLC может доходить до 4-х, то есть хранить до 4-х бит информации, в то время как SLC является более простой единицей и хранит 1 бит.

Технология MLC позволяет за счет наращивания уровней существенно увеличить объем диска, оставив его физические размеры неизменными, что уменьшает себестоимость каждого гигабайта. На этом положительные качества данной технологии заканчиваются. С каждым дополнительным уровнем усложняется задача распознавания уровня сигнала, не говоря уже об уменьшении ресурса работы SSD-диска, увеличивается время поиска адреса ячейки, повышается вероятность ошибок. Контроль за ошибками осуществляется аппаратно, что в случае технологии MLC ведет к удорожанию управляющей электроники и соответственно увеличивает конечную стоимость SSD. Диски SSD, массово продающиеся на мировом рынке, используют MLC-технологию с четырехуровневой записью. При этом данные кодируются как (11), (10), (01), (00).  Для SLC одноуровневая ячейка может принимать лишь значения 0 или 1.

Разница между ячейками SLC и MLC у SSD дисков.

Разница между ячейками SLC и MLC у SSD дисков.

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

Механизмы записи и чтения элементарной ячейки NAND-память

Постараемся более подробно описать работу транзистора для NAND-памяти, которым является полевой транзистор с изолированным затвором или MOSFET.

Полевой транзистор с изолированным затвором или MOSFET

Полевой транзистор с изолированным затвором или MOSFET

Главной особенность полевого транзистора, которая позволила его использование для хранения информации, стала возможность удерживать электрический заряд на «плавающем» затворе до 10 лет. Сам «плавающий» затвор выполнен из поликристаллического кремния и полностью окружен слоем диэлектрика, что обеспечивает ему полное отсутствие электрического контакта с элементами транзистора. Он расположен между управляющим затвором и подложкой из p-n переходов. Управляющий электрод полевого транзистора называется затвором. В данном случае проводимость p-n перехода, обусловленная электрическим сопротивлением, управляется разностью потенциалов, которая создает электрическое поле, воздействующее на состояние p-n переходов.

Немаловажными элементами транзистора являются также сток и исток. Для изменения бита записываемой информации в ячейку, напряжением на управляющем затворе создаётся электрическое поле и возникает туннельный эффект. Это позволяет некоторым электронам перейти через слой диэлектрика на плавающий затвор, обеспечив его зарядом, а значит и наполнение элементарной ячейки битом информации.

Программирование полевого транзистора – запись данных.

Программирование полевого транзистора – запись данных.

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

Механизм чтения данных и состояние хранения информации.

Механизм чтения данных и состояние хранения информации.

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

Срок жизни NAND-памяти

Главной особенностью NAND-памяти, позволяющей ее использование в SSD-дисках, стало ее умение хранить данные без внешнего источника энергии. Однако такая технология накладывает ограничения на число изменений логического состояния ячейки, что приводит к конечному числу циклов перезаписи этой ячейки. Это связанно с постепенным разрушением диэлектрического слоя. Данный эффект наступает намного быстрее у ячеек MLC ввиду их малого резерва изменения заряда плавающего затвора из-за конструктивных особенностей. Чтение ячейки тоже влияет на срок ее жизни, но это воздействие намного менее значительно, чем при записи/стирании, что позволяет считать циклы чтения не ограниченными, а срок жизни SSD-диска измеряется количеством возможных циклов перезаписи.

На всех SSD-дисках присутствует недоступная для стандартных операций записи/чтения часть. Она необходима как резерв в случае износа ячеек, по аналогии с магнитными накопителями HDD, который имеет резерв для замены bad-блоков. Дополнительный резерв ячеек используется динамически, и по мере физического изнашивания основных ячеек предоставляется резервная ячейка на замену.

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

 

SLC

MLC

Чтение страницы, мкс

25

50

Стирание блока, мс

2

2

Запись страницы, мкс

250

900

Количество циклов, раз

1 000 000

100 000

Таблица явно говорит обо всех преимуществах и недостатках этих технологий. В ней видно превосходство SLC решений над MLC, но не указан главный критерий популярности SSD-дисков – их цена. Указывать ее и нет смысла ввиду быстрого удешевления таких решений. Скажем лишь, что MLC диски хоть и уступают во всем SLC, но они более чем в два раза выигрывают в цене и могут быть компактнее при тех же объемах хранимых данных.

Структура SSD-диска: размер ячейки, страницы, блока NAND-памяти

Для более эффективного использования элементарных ячеек памяти они были объединены в массивы с несколько уровневой структурой. Одна ячейка хранящая один (для SLC) или, как правило, два (для нынешнего поколения MLC) бита данных, объединена в группу названную страницей и вмещающую 4 КБ данных.

Далее 128 страниц объединены в блок объемом 512 КБ, а 1024 блока дают массив, представляющий 512 МБ. Управление данными в одном массиве обычно осуществляется одним контроллером.

Специальные алгоритмы для работы с SSD-дисками

Ввиду ограниченности циклов записи/стирания ячеек флеш-памяти разработчикам пришлось составить правильный алгоритм работы SSD-диска, позволяющий равномерно «изнашивать» всё его запоминающее пространство. Как уже было нами отмечено, весь объем диска делится на блоки размером 512 КБ, а они в свою очередь на страницы емкостью 4 КБ, на которые осуществляются операции чтения и записи. Но как только вы записали информацию на страницу, она не может быть перезаписана до тех пор, пока не будет очищена. Проблема заключается в том, что минимальный размер записываемой информации не может быть меньше 4 КБ, а стереть данные можно минимум блоками по 512 КБ. Для этого контроллер группирует и переносит данные (этот алгоритм мы опишем ниже) для освобождения целого блока. Эта операция приводит к увеличению времени отклика и сокращению ресурс SSD, но чем-то приходится жертвовать.

Поговорим об алгоритме записи/удаления.

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

В своем оснащении контроллер обычно имеет 10 каналов, в частности таким количеством каналов обладает контроллеры SSD-дисков от Intel. Весь пул микросхем равномерно закреплен за каждым каналом обмена данных. На данном этапе развития технологий работы SSD-дисков, микросхемы памяти, взаимодействующие с первым каналом, не могут пересекаться на операциях со вторым, третьим и последующими каналами, но данная проблема вполне может разрешиться в недалеком будущем. Вполне логично бы было использовать «плавающие» связи для всей памяти, размещенной на диске. Часто возникает необходимость записи очереди из мелких данных, тогда контроллер автоматически распределяет весь блок по всем каналам, но связь между ячейками сохраняется, т.к. этот кусок данных является одной логической единицей.

Операция удаления данных тоже напрямую зависит от объема и размещения удаляемых данных. Если вся информация, записана в одном блоке или в группе блоков, полностью занимая их, то блок/блоки попросту очищаются и помечаются как пустые и готовые для последующей записи с максимально возможной скоростью. Но данный идеальный случай встречается не всегда.

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

Зачем нужен Тримминг?

Это еще одна немаловажная технология, обеспечивающая более равномерный износ SSD-диска и более быструю работу с данными за счет команды TRIM. Она позволяет выстроить цепочку и определить приоритет освобождаемых блоков. Раньше данная операция была возложена на ОС, но современные SSD-контроллеры уже поддерживают данную функцию аппаратно в прошивках накопителей. Время выполнение операции по «зачистке» блоков связано по экспоненте со свободным объемом на диске. Чем меньше информации и больше свободного места, тем быстрее происходит «тримминг» на SSD. По мере заполнения диска до 75% функция очистки все еще не сильно выражена относительно простоя. Но, как только остаётся менее 15% свободного места, «триммирование» становится затруднительным. Естественно, часть зависимости полностью обуславливается типом информации (статичная, т.е. редко перемещаемая и в основном только читаемая, или динамическая). Согласно исследованию IBM идеальные условия работы SSD, когда он заполнен менее, чем на 75% и соотношения статической и динамической части информации 3 к 1.

TRIM является неотъемлемой частью современных твердотельных накопителей. Он обеспечивает прирост производительности при заполнении данными дисков более чем на 2/3, за счет правильной сортировки блоков и подготовке их к записи. Это позволяет сократить разницу в скорости работы нового и уже заполнено на 75% диска до 2-3%.

Не стоит забывать, что по умолчанию операционная система настроена на работу с обычным HDD диском, а значит пользователю обязательно необходимо, отключить «старые» механизмы увеличения скорости работы магнитного диска, а так же алгоритмы дефрагментации. Кроме того, важно побеспокоиться о неполном использовании всего пространства своего SSD-диска.

Для чего используется кэш-буфер на SSD-дисках? 

Кэш-буфер на SSD-дисках не применяется для ускорения процедуры записи/чтения как это принято для HDD-накопителей. Его объем даже не указывается в технических спецификациях SSD основной массой производителей. Он и не может считаться обычной кэш-памятью, как мы это привыкли понимать. Кэш-память на SSD дисках используется динамически, для хранения таблиц размещения и занятости ячеек диска. Параллельно в ней может храниться временная информация со стираемых ячеек, при нехватке пустого места на диске. Таблицы представляют собой трехмерную матрицу, и являются основным помощником для контроллера SSD. Основываясь на этих данных, диск принимает решения о стирании дополнительных ячеек. В нем так же хранится информация о частоте и интенсивности использования каждого доступного блока на диске. Кроме того, здесь записаны адреса «мест», где невозможно осуществить запись, ввиду физического износа.

Контроллер SSD-диска

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

Итоги

На данный момент пока еще рано говорить о полной победе SSD-накопителей над магнитными дисками. Если учитывать объем и скорость работы SSD-накопителя, сравнивая их с аналогичными параметрами для традиционных HDD, то главным сдерживающим фактором перехода на твердотельные диски все еще останется их цена. Анализ нескольких последних лет показал нежелание производителей снижать цену на NAND-память. Только последние полгода можно наблюдать небольшую тенденцию по снижению цены на SSD, и то это, скорее всего, обусловлено спадом потребительского спроса, что вызвано мировым кризисом. Твердотельные накопители уже несколько лет представлены в широком ассортименте на мировом рынке, но даже такой значительный для цифровых технологий срок не смог повлиять на их конкурентоспособность по критерию «цена за ГБ хранимой информации» по отношению к магнитным дискам. Плотность записи на один магнитный диск постоянно увеличивается, что способствует выпуску все более емких моделей (на данный момент широко доступны HDD емкостью 2 ТБ). Такое распределение рынка может заставить покупателя отдать предпочтение SSD накопителю только в случае острой необходимости в скорости чтения или стойкости к вибрации/удару, но основной объем информации все равно будет храниться на классических жестких дисках.

Достоинства и недостатки SSD по сравнению с магнитными дисками HDD:

Достоинства:

  • намного большая скорость чтения;
  • полное отсутствие шума;
  • надежность ввиду отсутствия движущихся частей;
  • малое энергопотребление;
  • высокая устойчивость к вибрационным нагрузкам.

Недостатки: 

  • высокая стоимость за каждый ГБ сохраняемой информации;
  • ограниченное количество циклов записи и удаления данных.

Автор: Валерий Паровышник

Статья прочитана раз(а)
Опубликовано : 28-06-2010
Подписаться на наши каналы
telegram YouTube facebook Instagram