Твердотельный накопитель (англ. SSD, solid-state drive) — компьютерное немеханическое запоминающее устройство на основе микросхем памяти. Кроме них, SSD содержит управляющий контроллер. Различают два вида твердотельных накопителей: SSD на основе памяти, подобной оперативной памяти компьютеров, и SSD на основе флеш-памяти. В настоящее время твердотельные накопители используются в компактных устройствах: ноутбуках, нетбуках, коммуникаторах и смартфонах. Некоторые известные производители переключились на выпуск твердотельных накопителей уже полностью, например Samsung продал бизнес по производству жёстких дисков компании Seagate.[1] Существуют и так называемые, гибридные жесткие диски[2], появившиеся, в том числе, из-за текущей, пропорционально более высокой стоимости твердотельных накопителей. Такие устройства сочетают в одном устройстве накопитель на жёстких магнитных дисках (HDD) и твердотельный накопитель относительно небольшого объёма, в качестве кэша (для увеличения производительности и срока службы устройства, снижения энергопотребления). Пока такие накопители используются, в основном, в переносных устройствах (ноутбуках, сотовых телефонах, планшетах и т. п.). История развития 1978 год — американская компания StorageTek разработала первый полупроводниковый накопитель современного типа (основанный на RAM-памяти). 1982 год — американская компания Cray представила полупроводниковый накопитель на RAM-памяти для своих суперкомпьютеров Cray-1 со скоростью 100 МБит/с и Cray X-MP со скоростью 320 МБит/с, объемом 8, 16 или 32 миллиона 64 разрядных слов.[3] 1995 год — израильская компания M-Systems представила первый полупроводниковый накопитель на flash-памяти. 2008 год — Южнокорейской компании Mtron Storage Technology удалось создать SSD накопитель со скоростью записи 240 МБ/с и скоростью чтения 260 МБ/с, который она продемонстрировала на выставке в Сеуле. Объём данного накопителя — 128 ГБ. По заявлению компании, выпуск таких устройств начнётся уже в 2009 году.[4] 2009 год — Super Talent Technology выпустила SSD объёмом 512 гигабайт.[5], OCZ представляет SSD объёмом 1 терабайт.[6] В настоящее время наиболее заметными компаниями, которые интенсивно развивают SSDнаправление в своей деятельности, можно назвать Intel, Kingston, Samsung Electronics, SanDisk, Corsair, Renice, OCZ Technology, Crucial и ADATA. Кроме того, свой интерес к этому рынку демонстрирует Toshiba. Архитектура и функционирование NAND SSD Сравнение: компоненты разобранного HDD (слева) и разобранный SSD (справа) Накопители, построенные на использовании энергонезависимой памяти (NAND SSD), появились относительно недавно, но в связи с гораздо более низкой стоимостью (от 1 доллара США за гигабайт) начали уверенное завоевание рынка. До недавнего времени существенно уступали традиционным накопителям — жестким дискам — в скорости записи, но компенсировали это высокой скоростью поиска информации (начального позиционирования). Сейчас уже выпускаются твердотельные накопители Flash со скоростью чтения и записи, в разы превосходящие возможности жестких дисков. [7] Характеризуются относительно небольшими размерами и низким энергопотреблением. RAM SSD Эти накопители, построенные на использовании энергозависимой памяти (такой же, какая используется в ОЗУ персонального компьютера) характеризуются сверхбыстрыми чтением, записью и поиском информации. Основным их недостатком является чрезвычайно высокая стоимость. Используются, в основном, для ускорения работы крупных систем управления базами данных и мощных графических станций. Такие накопители, как правило, оснащены аккумуляторами для сохранения данных при потере питания, а более дорогие модели — системами резервного и/или оперативного копирования. Примером таких накопителей является I-RAM. Пользователи, обладающие достаточным объёмом оперативной памяти могут организовать виртуальную машину и расположить её жёсткий диск в ОЗУ и оценить производительность. Недостатки и преимущества Недостатки Главный недостаток NAND SSD — ограниченное количество циклов перезаписи. Обычная (MLC, Multi-level cell, многоуровневые ячейки памяти) флеш-память позволяет записывать данные примерно 10 000 раз. Более дорогостоящие виды памяти (SLC, Single-level cell, одноуровневые ячейки памяти) — более 100 000 раз[8]. Для борьбы с неравномерным износом применяются схемы балансирования нагрузки. Контроллер хранит информацию о том, сколько раз какие блоки перезаписывались и при необходимости «меняет их местами»[9]. Данный недостаток отсутствует у RAM SSD. Подпроблема совместимости SSD накопителей с устаревшими и даже многими актуальными версиями ОС семейства Microsoft Windows, которые не учитывают специфику SSD накопителей и дополнительно изнашивают их. Использование операционными системами механизма свопинга (подкачки) на SSD также, с большой вероятностью, уменьшает срок эксплуатации накопителя; Цена гигабайта SSD-накопителей существенно выше цены гигабайта HDD. К тому же, стоимость SSD прямо пропорциональна их ёмкости, в то время как стоимость традиционных жёстких дисков зависит от количества пластин и медленнее растёт при увеличении объёма накопителя. Применение в SSD-накопителях команды TRIM делает невозможным восстановление удалённой информации recovery-утилитами. Невозможность восстановить информацию при перепаде напряжения. Т. к. контроллер и носитель информации в SSD находятся на одной плате, то при превышении или перепаде напряжения чаще всего сгорает весь SSD носитель, с безвозвратной гибелью информации. Напротив, в жёстких дисках чаще сгорает только плата контроллера, что делает возможным восстановление информации с приемлемой трудоёмкостью. Вообще, если произошёл аппаратный отказ SSD из-за выхода из строя чипа контроллера или флеш-памяти, это делает процесс восстановления информации практически неосуществимым. Преимущества Отсутствие движущихся частей, отсюда: Полное отсутствие шума; Высокая механическая стойкость; Стабильность времени считывания расположения или фрагментации; файлов вне зависимости от их Высокая скорость чтения/записи, нередко превосходящая пропускную способность интерфейса жесткого диска (SAS/SATA II 3 Gb/s, SAS/SATA III 6 Gb/s, SCSI, Fibre Channel и т. д.); Низкое энергопотребление; Широкий диапазон рабочих температур; Большой модернизационный потенциал как у самих накопителей так и у технологий их производства. Отсутствие магнитных дисков, отсюда: Намного меньшая чувствительность к внешним электромагнитным полям; Малые габариты и вес; (нет необходимости делать увесистый корпус для экранирования) Microsoft Windows и компьютеры данной платформы с твердотельными накопителями В ОС Windows 7 введена специальная оптимизация для работы с твердотельными накопителями. При наличии SSD-накопителей эта операционная система работает с ними иначе, чем с обычными HDD-дисками. Например, Windows 7 не применяет к SSDнакопителю дефрагментацию, технологии Superfetch и ReadyBoost и другие техники упреждающего чтения, ускоряющие загрузку приложений с обычных HDD-дисков. Предыдущие версии Microsoft Windows такой специальной оптимизации не имеют и рассчитаны на работу только с обычными жесткими дисками. Поэтому, например, некоторые файловые операции Windows Vista, не будучи отключенными, могут уменьшить срок службы SSD-накопителя. Операция дефрагментации должна быть отключена, так как она практически никак не влияет на производительность SSD-носителя и лишь дополнительно изнашивает его. Компания ASUS ещё в 2007 г. выпустила нетбук EEE PC 701 с SSD-накопителем объёмом 4Гб. Компания Dell 9 сентября 2011 года заявила о первой на рынке комплектации ноутбуков Dell Precision твердотельной памятью объемами 512Гб одним накопителем и 1Тб двумя накопителями для моделей компьютеров M4600 и M6600 соответственно. Производитель установил цену за один 512Гб SATA3 накопитель на момент объявления в $1120 долларов США.[10] На SSD-накопителе работают планшеты компании Acer — модели Iconia Tab W500 и W501, Fujitsu Stylistic Q550 под управлением Windows 7. Mac OS X и компьютеры Макинтош с твердотельными накопителями Операционная система Mac OS X начиная с версии 10.7 (Lion) полностью осуществляет TRIM-поддержку для установленной в системе твердотельной памяти. [11] С 2010 года компания Apple представила компьютеры линейки Air полностью комплектуемые только твердотельной памятью на основе Флеш-NAND памяти. До 2010 г. покупатель мог выбрать для данного компьютера обычный жесткий диск в комплектации, но дальнейшее развитие линейки в пользу максимального облегчения и уменьшения корпуса компьютеров данной серии потребовало полного отказа от обычных жестких дисков в пользу твердотельных накопителей. Объем комплектуемой памяти в компьютерах серии Air составляет от 64Гб до 512Гб.[12] По данным J.P. Morgan с момента представления было продано 420 000 компьютеров этой серии полностью на твердотельной Флеш-NAND памяти.[13] 11 июня 2012 года на основе флеш-памяти был представлен новый MacBook Retina 15 дюймов, в котором опционально можно установить 768 Гб флеш-памяти[14] Перспективы развития Главный недостаток SSD накопителей — ограниченное число циклов перезаписи — при развитии технологий изготовления энергонезависимой памяти будет устранён путём изготовления по другим физическим принципам и из других материалов, например, FeRam. К 2013 году компания HP планирует запустить в розничную продажу накопители, построенные по технологии ReRAM (resistive random-access memory).[15] Диски 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 25 2 250 1 000 000 MLC 50 2 900 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: Достоинства: намного большая скорость чтения; полное отсутствие шума; надежность ввиду отсутствия движущихся частей; малое энергопотребление; высокая устойчивость к вибрационным нагрузкам. Недостатки: высокая стоимость за каждый ГБ сохраняемой информации; ограниченное количество циклов записи и удаления данных.