Что такое nand записи
Взгляд изнутри: Flash-память и RAM
Предисловие
Новый Год – приятный, светлый праздник, в который мы все подводим итоги год ушедшего, смотрим с надеждой в будущее и дарим подарки. В этой связи мне хотелось бы поблагодарить всех хабра-жителей за поддержку, помощь и интерес, проявленный к моим статьям (1, 2, 3, 4). Если бы Вы когда-то не поддержали первую, не было и последующих (уже 5 статей)! Спасибо! И, конечно же, я хочу сделать подарок в виде научно-популярно-познавательной статьи о том, как можно весело, интересно и с пользой (как личной, так и общественной) применять довольно суровое на первый взгляд аналитическое оборудование. Сегодня под Новый Год на праздничном операционном столе лежат: USB-Flash накопитель от A-Data и модуль SO-DIMM SDRAM от Samsung.
Теоретическая часть
Постараюсь быть предельно краток, чтобы все мы успели приготовить салат оливье с запасом к праздничному столу, поэтому часть материала будет в виде ссылок: захотите – почитаете на досуге…
Какая память бывает?
На настоящий момент есть множество вариантов хранения информации, какие-то из них требуют постоянной подпитки электричеством (RAM), какие-то навсегда «вшиты» в управляющие микросхемы окружающей нас техники (ROM), а какие-то сочетают в себе качества и тех, и других (Hybrid). К последним, в частности, и принадлежит flash. Вроде бы и энергонезависимая память, но законы физики отменить сложно, и периодически на флешках перезаписывать информацию всё-таки приходится.
Тут можно подробнее ознакомиться с ниже приведённой схемой и сравнением характеристик различных типов «твердотельной памяти». Или тут – жаль, что я был ещё ребёнком в 2003 году, в таком проекте не дали поучаствовать…
Современные типы «твердотельной памяти». Источник
Единственное, что, пожалуй, может объединять все эти типы памяти – более-менее одинаковый принцип работы. Есть некоторая двумерная или трёхмерная матрица, которая заполняется 0 и 1 примерно таким образом и из которой мы впоследствии можем эти значения либо считать, либо заменить, т.е. всё это прямой аналог предшественника – памяти на ферритовых кольцах.
Что такое flash-память и какой она бывает (NOR и NAND)?
Начнём с flash-памяти. Когда-то давно на небезызвестном ixbt была опубликована довольно подробная статья о том, что представляет собой Flash, и какие 2 основных сорта данного вида памяти бывают. В частности, есть NOR (логическое не-или) и NAND (логическое не-и) Flash-память (тут тоже всё очень подробно описано), которые несколько отличаются по своей организации (например, NOR – двумерная, NAND может быть и трехмерной), но имеют один общий элемент – транзистор с плавающим затвором.
Схематическое представление транзистора с плавающим затвором. Источник
Итак, как же это чудо инженерной мысли работает? Вместе с некоторыми физическими формулами это описано тут. Если вкратце, то между управляющим затвором и каналом, по которому ток течёт от истока к стоку, мы помещаем тот самый плавающий затвор, окружённый тонким слоем диэлектрика. В результате, при протекании тока через такой «модифицированный» полевой транзистор часть электронов с высокой энергией туннелируют сквозь диэлектрик и оказываются внутри плавающего затвора. Понятно, что пока электроны туннелировали, бродили внутри этого затвора, они потеряли часть энергии и назад практически вернуться не могут.
NB: «практически» — ключевое слово, ведь без перезаписи, без обновления ячеек хотя бы раз в несколько лет Flash «обнуляется» так же, как оперативная память, после выключения компьютера.
Там же, на ixbt, есть ещё одна статья, которая посвящена возможности записи на один транзистор с плавающим затвором нескольких бит информации, что существенно увеличивает плотность записи.
В случае рассматриваемой нами флешки память будет, естественно, NAND и, скорее всего, multi-level cell (MLC).
Если интересно продолжить знакомиться с технологиями Flash-памяти, то тут представлен взгляд из 2004 года на данную проблематику. А здесь (1, 2, 3) некоторые лабораторные решения для памяти нового поколения. Не думаю, что эти идеи и технологии удалось реализовать на практике, но, может быть, кто-то знает лучше меня?!
Что такое DRAM?
Если кто-то забыл, что такое DRAM, то милости просим сюда.
Опять мы имеем двумерный массив, который необходимо заполнить 0 и 1. Так как на накопление заряда на плавающем затворе уходит довольно продолжительное время, то в случае RAM применяется иное решение. Ячейка памяти состоит из конденсатора и обычного полевого транзистора. При этом сам конденсатор имеет, с одной стороны, примитивное физическое устройство, но, с другой стороны, нетривиально реализован в железе:
Устройство ячейки RAM. Источник
Опять-таки на ixbt есть неплохая статья, посвящённая DRAM и SDRAM памяти. Она, конечно, не так свежа, но принципиальные моменты описаны очень хорошо.
Единственный вопрос, который меня мучает: а может ли DRAM иметь, как flash, multi-level cell? Вроде да, но всё-таки…
Часть практическая
Flash
Те, кто пользуется флешками довольно давно, наверное, уже видели «голый» накопитель, без корпуса. Но я всё-таки кратко упомяну основные части USB-Flash-накопителя:
Основные элементы USB-Flash накопителя: 1. USB-коннектор, 2. контроллер, 3. PCB-многослойная печатная плата, 4. модуль NAND памяти, 5. кварцевый генератор опорной частоты, 6. LED-индикатор (сейчас, правда, на многих флешках его нет), 7. переключатель защиты от записи (аналогично, на многих флешках отсутствует), 8. место для дополнительной микросхемы памяти. Источник
Пойдём от простого к сложному. Кварцевый генератор (подробнее о принципе работы тут). К моему глубокому сожалению, за время полировки сама кварцевая пластинка исчезла, поэтому нам остаётся любоваться только корпусом.
Корпус кварцевого генератора
Случайно, между делом, нашёл-таки, как выглядит армирующее волокно внутри текстолита и шарики, из которых в массе своей и состоит текстолит. Кстати, а волокна всё-таки уложены со скруткой, это хорошо видно на верхнем изображении:
Армирующее волокно внутри текстолита (красными стрелками указаны волокна, перпендикулярные срезу), из которого и состоит основная масса текстолита
А вот и первая важная деталь флешки – контроллер:
Контроллер. Верхнее изображение получено объединением нескольких СЭМ-микрофотографий
Признаюсь честно, не совсем понял задумку инженеров, которые в самой заливке чипа поместили ещё какие-то дополнительные проводники. Может быть, это с точки зрения технологического процесса проще и дешевле сделать.
После обработки этой картинки я кричал: «Яяяяязь!» и бегал по комнате. Итак, Вашему вниманию представляет техпроцесс 500 нм во всей свой красе с отлично прорисованными границами стока, истока, управляющего затвора и даже контакты сохранились в относительной целостности:
«Язь!» микроэлектроники – техпроцесс 500 нм контроллера с прекрасно прорисованными отдельными стоками (Drain), истоками (Source) и управляющими затворами (Gate)
Теперь приступим к десерту – чипам памяти. Начнём с контактов, которые эту память в прямом смысле этого слова питают. Помимо основного (на рисунке самого «толстого» контакта) есть ещё и множество мелких. Кстати, «толстый»
Во-первых, полный список опубликованных статей на Хабре:
Во-вторых, помимо блога на HabraHabr, статьи и видеоматериалы можно читать и смотреть на Nanometer.ru, YouTube, а также Dirty.
В-третьих, если тебе, дорогой читатель, понравилась статья или ты хочешь простимулировать написание новых, то действуй согласно следующей максиме: «pay what you want»
Различия между типами памяти SLC, MLC, TLC и 3D NAND в USB-накопителях, твердотельных накопителях и картах памяти
Что такое NAND?
NAND — это энергонезависимая флеш-память, которая может хранить данные, даже если она не подключена к источнику питания. Возможность сохранять данные при выключении питания делает NAND отличным вариантом для внутренних, внешних и портативных устройств. USB-накопители, твердотельные накопители и SD-карты используют флеш-технологию, обеспечивая память для таких устройств, как мобильные телефоны и цифровые видеокамеры.
На рынке представлены несколько типов памяти NAND. Попросту говоря, каждый из типов отличается количеством битов, которое может храниться в каждой ячейке. Биты представляют собой электрический заряд, который может содержать только одно из двух значений — 0 или 1 (вкл./выкл.).
Ключевые различия между типами памяти NAND заключаются в стоимости, емкости и сроке службы. Ресурс определяется количеством циклов программирования-стирания (P/E), которые может выдержать ячейка флеш-памяти до износа. Цикл P/E — это процесс стирания и записи ячейки, и чем больше циклов P/E может выдержать технология NAND, тем выше ресурс устройства.
Стандартные типы флеш-памяти NAND — SLC, MLC, TLC и 3D NAND. В этой статье рассматриваются различные характеристики каждого типа памяти NAND.
SLC NAND
Преимущества: Высочайший ресурс — Недостатки: Высокая стоимость и низкая емкость
NAND-память в одноуровневыми ячейками (SLC) хранит только 1 бит информации на ячейку. В ячейке хранится либо 0, либо 1, и в результате запись и извлечение данных может выполняться быстрее. SLC обеспечивает самую высокую производительность и ресурс: 100 000 циклов P/E То есть такая память служит дольше других типов NAND-памяти. Однако из-за низкой плотности размещения данных SLC является самым дорогим типом NAND-памяти и поэтому обычно не используется в потребительской продукции. Ее типичные области применения — серверы и другое промышленное оборудование, требующее высокой скорости и долговечности.
MLC NAND
Преимущества: Дешевле памяти SLC — Недостатки: Быстродействие и ресурс ниже по сравнению с SLC
Технология NAND-памяти с многоуровневыми ячейками (MLC) хранит несколько битов на ячейку, хотя термин MLC обычно относится к 2 битам на ячейку. MLC имеет более высокую плотность размещения данных по сравнению с SLC, поэтому позволяет создавать носители большей емкости. Память MLC отличается хорошим сочетанием цены, производительности и долговечности. Однако память MLC, обеспечивающая 10 000 циклов P/E более чувствительна к ошибкам данных и имеет меньший ресурс по сравнению с SLC. Память MLC обычно используется в потребительской продукции, где долговечность не столь важна.
TLC NAND
Преимущества: Наименьшая цена и высокая емкость — Недостатки: Низкая долговечность
NAND-память с трехуровневыми ячейками (TLC) хранит 3 бита на ячейку. За счет увеличения числа битов на ячейку снижается цена и увеличивается емкость. Однако это отрицательно сказывается на производительности и ресурсе (всего 3000 циклов P/E). Во многих потребительских изделиях используется память TLC как самый дешевый вариант..
3D NAND
В последние десять лет одной из крупнейших инноваций на рынке флеш-памяти стала память 3D NAND. Производители флеш-памяти разработали технологию 3D NAND, чтобы устранить проблемы, с которыми они столкнулись при уменьшении размера 2D NAND в попытке достичь более высокой плотности при меньших затратах. В памяти 2D NAND ячейки, в которых хранятся данные, размещаются горизонтально, рядом друг с другом. Это означает, что объем пространства, в котором могут быть размещены ячейки, ограничен, и попытка уменьшить размер ячеек снижает их надежность.
Поэтому производители NAND-памяти решили расположить ячейки в пространстве иначе, что привело к созданию памяти 3D NAND с вертикальным расположением ячеек. Более высокая плотность памяти позволяет увеличить емкость без значительного увеличения цены. Память 3D NAND также обеспечивает более высокую долговечность и меньшее энергопотребление.
В целом, NAND — чрезвычайно важная технология памяти, поскольку обеспечивает быстрое стирание и запись данных при более низкой стоимости на бит. С ростом игровой индустрии развитие технологии NAND продолжится, чтобы удовлетворить постоянно растущие потребности потребителей в хранении данных.
Технология флеш-памяти NAND и твердотельные накопители (SSD)
Если у вас есть USB-накопитель или SD-карта Kingston, у вас уже есть продукты с флеш-памятью, также известной как флеш-память NAND. В глобальном масштабе потребление флеш-памяти NAND резко выросло за последние пять лет, и новые продукты, такие как твердотельные накопители, в настоящее время широко внедряются в корпоративные вычислительные устройства, — ноутбуки, настольные компьютеры, рабочие станции и серверы.
Вот краткое описание того, что вам нужно знать о флеш-памяти NAND.
Энергонезависимая флеш-память NAND
Одним из преимуществ флеш-памяти NAND является энергонезависимое хранение данных. В отличие от памяти DRAM, которой необходимо постоянное питание для хранения данных, память NAND сохраняет данные даже при отключенном питании. Поэтому она идеально подходит в качестве хранилища для портативных устройств.
Типы флеш-памяти NAND
В настоящее время существует пять типов флеш-памяти NAND. Они различаются количеством битов, которые может хранить каждая ячейка. В SLC NAND — один бит на ячейку, MLC — два бита на ячейку, TLC — три бита на ячейку, QLC — четыре бита на ячейку, PLC — пять бит на ячейку. Таким образом, SLC NAND может хранить «0» или «1» в каждой ячейке, MLC NAND — «00», «01», «10» или «11» в каждой ячейке и так далее. Эти пять типов памяти NAND обеспечивают различные уровни производительности и срока службы в различных ценовых категориях (SLC является более производительным и наиболее дорогостоящим вариантом на рынке памяти NAND).
Память 3D NAND
В 3D NAND несколько слоев ячеек памяти размещаются вертикально, и между слоями организованы взаимосвязи. Организация нескольких уровней ячеек памяти в вертикальные слои обеспечивает большую емкость хранилища при меньшей площади и повышает производительность благодаря более коротким общим соединениям для каждой ячейки памяти. Этот тип памяти отличается меньшей стоимостью на бит по сравнению с 2D NAND. Во флеш-устройствах 3D NAND могут использоваться чипы MLC, TLC или QLC.
Выравнивание износа ячеек памяти NAND
Ячейки NAND не предназначены для вечной эксплуатации. В отличие от памяти DRAM, они со временем изнашиваются, поскольку циклы записи создают большую нагрузку по сравнению с циклами чтения. Устройства памяти NAND имеют ограниченное количество циклов записи, но функция выравнивания износа управляет износом ячеек с помощью контроллера флеш-памяти, который всегда находится на устройстве. На всех USB-накопителях, SD-картах и твердотельных накопителях есть контроллер NAND, который управляет флеш-памятью NAND и выполняет такие функции, как выравнивание износа и исправление ошибок.
Чтобы продлить срок службы устройств памяти NAND, контроллер флеш-памяти NAND гарантирует, что все записанные данные равномерно распределяются по всем физическим блокам устройства, чтобы какие-то области NAND не изнашивались быстрее, чем другие.
Твердотельные накопители (SSD)
Твердотельные накопители обладают значительными преимуществами в плане производительности и долговечности по сравнению со стандартными жесткими дисками. Твердотельные накопители не имеют движущихся частей; все они являются полупроводниковыми устройствами. В связи с этим твердотельные накопители не страдают от механических задержек, как жесткие диски. А без движущихся частей SSD-накопители могут подвергаться гораздо большим ударным нагрузкам и вибрации, чем жесткие диски, благодаря чему отлично подходят для широкого спектра портативных и мобильных устройств.
Раньше твердотельные накопители разрабатывались на основе чипов DRAM и были дорогостоящими, что делало их пригодными только для требовательных серверных сред.
Сегодня благодаря более низкой стоимости флеш-памяти NAND твердотельные накопители используются в самых разных сферах применения — от потребительских устройств до корпоративных и военных вычислительных систем.
Срок службы SSD
Компания Kingston использует флеш-память NAND с номинальным сроком службы, подходящим для рабочей нагрузки твердотельного накопителя. В результате Kingston может по конкурентоспособной цене предложить твердотельные накопители для различных вариантов применения.
Твердотельные накопители Kingston клиентского и корпоративного класса обладают номинальным сроком службы, соответствующим целевой рабочей нагрузке. Для клиентских SSD-накопителей компания Kingston предоставляет спецификацию TBW (количество записанных терабайтов), благодаря чему пользователи могут прогнозировать срок службы SSD-накопителя в своем варианте применения.
Корпоративные твердотельные накопители Kingston оцениваются аналогично с использованием спецификации TBW, а также характеризуются значением DWPD (количество перезаписей всего объема накопителя в день), которое определяется на основе TBW и гарантийного срока SSD-накопителя. Например, твердотельный накопитель емкостью 1 ТБ с номинальным эксплуатационным ресурсом 1DWPD означает, что пользователь может записывать на SSD-накопитель 1 ТБ данных в день в течение 5 лет. Значения TBW/DWPD помогают корпоративным клиентам, которые развертывают твердотельные накопители Kingston в своих корпоративных средах, планировать ИТ-инфраструктуру.
Компания Kingston предоставляет программную утилиту «KSM» (Kingston Storage Manager) для отслеживания срока службы SSD-накопителя. Думайте о ней как о датчике уровня топлива, по которому пользователь может периодически проверять состояние SSD-накопителя.
Производительность твердотельного накопителя
Большинство клиентских систем более не ограничено производительностью процессора. Практически всегда ограничивающим фактором является хранилище. Задержка в работе жестких дисков исчисляется в миллисекундах, в то время как для твердотельных накопителей она составляет сотни микросекунд.
SSD-накопитель может вдохнуть новую жизнь даже в системы, выпущенные несколько лет назад (если они имеют интерфейс, совместимый с SATA), и обеспечить их высокую производительность. В системе на основе ОС Windows® время загрузки сокращается с многих минут до одной или менее, что делает SSD-накопитель средством повышения производительности памяти. В целом, он часто обеспечивает самый высокий прирост производительности по сравнению с любой другой модернизацией системы.
Диски SSD на основе NAND-памяти: технологии, принцип работы, разновидности
В основу зарождения 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 в объеме хранимой на них информации, но при этом являются более быстрыми и долговечными. Поэтому производителям приходится использовать большее количество микросхем при меньшем суммарном объеме диска, что в конечном итогу повышает цену диска SLC более чем в два раза по сравнению с такого же объема диском MLC.
Механизмы записи и чтения элементарной ячейки NAND-память
Постараемся более подробно описать работу транзистора для NAND-памяти, которым является полевой транзистор с изолированным затвором или MOSFET.
Полевой транзистор с изолированным затвором или MOSFET
Главной особенность полевого транзистора, которая позволила его использование для хранения информации, стала возможность удерживать электрический заряд на «плавающем» затворе до 10 лет. Сам «плавающий» затвор выполнен из поликристаллического кремния и полностью окружен слоем диэлектрика, что обеспечивает ему полное отсутствие электрического контакта с элементами транзистора. Он расположен между управляющим затвором и подложкой из p-n переходов. Управляющий электрод полевого транзистора называется затвором. В данном случае проводимость p-n перехода, обусловленная электрическим сопротивлением, управляется разностью потенциалов, которая создает электрическое поле, воздействующее на состояние p-n переходов.
Немаловажными элементами транзистора являются также сток и исток. Для изменения бита записываемой информации в ячейку, напряжением на управляющем затворе создаётся электрическое поле и возникает туннельный эффект. Это позволяет некоторым электронам перейти через слой диэлектрика на плавающий затвор, обеспечив его зарядом, а значит и наполнение элементарной ячейки битом информации.
Программирование полевого транзистора – запись данных.
Накопленный заряд на плавающем затворе влияет на проводимость канала сток-исток, что используется при чтении.
Механизм чтения данных и состояние хранения информации.
Такая разность механизма записи и чтения явно сказывается на различном энергопотреблении этих режимов. NAND-память потребляет достаточно большой ток при записи, а при чтении затраты энергии наоборот малы. Для стирания информации на управляющий затвор подаётся высокое отрицательное напряжение, и электроны с плавающего затвора переходят на исток. Именно из таких элементарных ячеек объединенных в страницы, блоки и массивы и состоит современный твердотельный накопитель.
Срок жизни NAND-памяти
Главной особенностью NAND-памяти, позволяющей ее использование в SSD-дисках, стало ее умение хранить данные без внешнего источника энергии. Однако такая технология накладывает ограничения на число изменений логического состояния ячейки, что приводит к конечному числу циклов перезаписи этой ячейки. Это связанно с постепенным разрушением диэлектрического слоя. Данный эффект наступает намного быстрее у ячеек MLC ввиду их малого резерва изменения заряда плавающего затвора из-за конструктивных особенностей. Чтение ячейки тоже влияет на срок ее жизни, но это воздействие намного менее значительно, чем при записи/стирании, что позволяет считать циклы чтения не ограниченными, а срок жизни SSD-диска измеряется количеством возможных циклов перезаписи.
На всех SSD-дисках присутствует недоступная для стандартных операций записи/чтения часть. Она необходима как резерв в случае износа ячеек, по аналогии с магнитными накопителями HDD, который имеет резерв для замены bad-блоков. Дополнительный резерв ячеек используется динамически, и по мере физического изнашивания основных ячеек предоставляется резервная ячейка на замену.
Приведем приблизительную сравнительную таблицу основных характеристик, отличающих работу SSD-дисков с технологией SLC и дисков с ячейками MLC.
Чтение страницы, мкс
Запись страницы, мкс
Количество циклов, раз
Таблица явно говорит обо всех преимуществах и недостатках этих технологий. В ней видно превосходство 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-диска. Вследствие особенностей построения NAND-памяти, работать с ее каждой ячейкой отдельно нельзя. Как мы уже говорили выше, они объединены в страницы объемом по 4 Кбайта, и записать информацию можно только полностью заняв страницу. Стирать данные можно по блокам, которые равны 512 Кбайт. Все эти ограничения накладывают определенные обязанности на правильный интеллектуальный алгоритм работы контроллера. Поэтому правильно настроенный и оптимизированный контролер может существенно изменить как скоростные показатели, так и долговечность работы SSD-диска.
На данный момент пока еще рано говорить о полной победе SSD-накопителей над магнитными дисками. Если учитывать объем и скорость работы SSD-накопителя, сравнивая их с аналогичными параметрами для традиционных HDD, то главным сдерживающим фактором перехода на твердотельные диски все еще останется их цена. Анализ нескольких последних лет показал нежелание производителей снижать цену на NAND-память. Только последние полгода можно наблюдать небольшую тенденцию по снижению цены на SSD, и то это, скорее всего, обусловлено спадом потребительского спроса, что вызвано мировым кризисом. Твердотельные накопители уже несколько лет представлены в широком ассортименте на мировом рынке, но даже такой значительный для цифровых технологий срок не смог повлиять на их конкурентоспособность по критерию «цена за ГБ хранимой информации» по отношению к магнитным дискам. Плотность записи на один магнитный диск постоянно увеличивается, что способствует выпуску все более емких моделей (на данный момент широко доступны HDD емкостью 2 ТБ). Такое распределение рынка может заставить покупателя отдать предпочтение SSD накопителю только в случае острой необходимости в скорости чтения или стойкости к вибрации/удару, но основной объем информации все равно будет храниться на классических жестких дисках.
Достоинства и недостатки SSD по сравнению с магнитными дисками HDD: