Особенности работы современных SSD-дисков. SSD накопители. Проблемы и предостережения Логические проблемы твердотельных дисков ssd

01.07.2020

Если на вашем компьютере установлен SSD, следует использовать современную операционную систему. В частности, не нужно использовать Windows XP или Windows Vista. Обе эти ОС не поддерживают команду TRIM. Таким образом, когда вы удаляете файл в старой операционной системе, она не может послать данную команду твердотельному диску и, таким образом, данные остаются на нем (дальнейшее зависит от контроллера, но в общем случае - это не очень хорошо).

Не заполняйте SSD полностью

Необходимо оставлять свободное место на твердотельном диске, в противном случае, скорость записи на него может значительно упасть. Это может показаться странным, но на самом деле, объясняется достаточно просто. Когда на SSD имеется достаточное количество свободного места, твердотельный диск использует свободные блоки для записи новой информации. В идеале - загрузить официальную утилиту от производителя SSD и посмотреть, сколько места она предлагает зарезервировать, обычно такая функция присутствует в этих программах (может называться Over Provisioning). На некоторых дисках это зарезервированное пространство присутствует по умолчанию и его можно увидеть в управлении дисками Windows как не распределенную область.


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

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

Ограничьте запись на SSD. Или не стоит.

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

С учетом того, что сегодняшние твердотельные накопители в общем-то сравнительно живучие, я бы, пожалуй, не стал принудительно отключать системные файлы и функции, переносить служебные файлы с SSD на HDD. За исключением одной ситуации: если у вас самый дешевый диск на 60-128 Гб от неизвестного китайского производителя с очень малым ресурсом записи TBW (таких в последнее время становится все больше, несмотря на общее увеличение срока службы для популярных марок).

Не храните большие файлы, к которым не нужен быстрый доступ, на SSD

Это достаточно очевидный пункт: вашей коллекции фильмов, фотографий и других медиа-материалов и архивов обычно не требуется высокая скорость доступа. Твердотельные диски SSD меньше по объему и более дорогие в пересчете на гигабайт, чем обычные жесткие диски. На SSD, особенно при наличии второго жесткого диска, следует хранить файлы операционной системы, программ, игр - для которых важен быстрый доступ и которые постоянно используются.

Обычные файлы документов (под документами я тут подразумеваю и видео и музыку и любое другое медиа) с одинаковой скоростью будут воспроизводиться и с HDD и с SSD, а потому особенного смысла в хранении их на твердотельном накопителе нету, при условии, что это не единственный диск на компьютере или ноутбуке.

Надеюсь, эта информация поможет вам увеличить срок жизни вашего SSD и радоваться скорости его работы. Есть что добавить? - буду рад вашему комментарию.

Эпиграф

«Никогда не доверяй компьютеру, который не можешь выбросить из окна»
Стив Возняк

Два месяца назад поставил себе в ноутбук SSD диск. Работал он великолепно, но на прошлой неделе он внезапно умер из-за истощения ячеек (как я полагаю). Эта статья посвящена тому, как это случилось, и тому, что я делал неправильно.

Описание окружения

  • Пользователь: Веб-разработчик. То есть в ходу такие вещи как: виртуалки, eclipse, частые обновления репозиториев.
  • ОС: Gentoo. То есть часто «пересобирается мир».
  • ФС: ext4. То есть пишется журнал.

Итак, история начинается в апреле, когда, наконец, у меня дошли руки, чтобы скопировать разделы на 64Гб SSD веник, купленный ещё в сентябре. Намеренно не сообщаю производителя и модель, ибо пока я ещё не сильно разобрался что случилось, да это и не имеет большого значения.

Что я сделал, чтобы он работал дольше

Конечно же, я изучил многочисленные публикации, о том как беречь SSD-диски. И вот что я сделал:
  • Поставил noatime для разделов, чтобы при обращению к файлу не обновлялась запись о времени последнего доступа.
  • Увеличил оперативку до максимума и отключил своп.
Больше я ничего не делал, так как считал, что компьютер должен служить пользователю, а не наоборот, и излишние пляски с бубном - неправильно.

S.M.A.R.T.

За три дня до падения я озаботился вопросом: а как узнать насколько мне хватит счастья? Я попробовал утилиту smartmontools , но она выводила неверную информацию. Пришлось скачать Datasheet и написать патч для них.
Написав патч, я нарыл один интересный параметр: среднее_количество_стираний/максимальное_количество_стираний = 35000/45000. Но прочитав, что MLC ячейки выдерживают только 10000 циклов, я решил, что эти параметры значат не совсем то, что я думаю, и забил на них.

Хроника падения

Внезапно, во время работы стали происходить необъяснимые вещи, например новые программы не запускались. Ради интереса посмотрел на тот самый S.M.A.R.T. параметр, было уже 37000/50000 (+2000/5000 за три дня). Перезапуститься уже не удалось, не читалась файловая система основного раздела.
Я запустился с компакта и начал проверку. Проверка показала, много битых нодов. В процессе починки утилита начала тестировать на битые сектора и их помечать. Завершилось это всё на следующий день со следующим результатом: 60Гб из 64Гб оказались помеченными как плохими.
На заметку: В SSD винчестерах ячейка считается битой, если туда нельзя записать новую информацию. Чтение из такой ячейки по прежнему будет возможным. По этому эли запустить утилиту badblocks в режиме только чтения, то врядли она что-то найдёт.

Я решил запустить утилиту перепрошивки, ибо она не только перепрошивает, но и переформатирует диск. Утилита начала форматировать, покряхтела и выдала, что превышено разумное допустимое количество битых секторов, а также что есть сбои, поэтому завершить форматирование не возможно.
После этого диск стал определяться как диск с очень странным именем, номером модели и размером в 4Гб. И, в дальнейшем, кроме специализированных, утилит его никто не видит.
Я написал письмо в поддержку производителя. Они порекомендовали мне перепрошить, если не получится, то вернуть продавцу. Гарантии ещё 2 года, так что попробую.
Завершаю данный раздел благодарностями Стиву Возняку, который научил делать меня периодические бекапы.

Что произошло

Честно говоря, я и сам не знаю. Предполагаю следующее: S.M.A.R.T. не врал и ячейки действительно поизносились (это косвенно подтверждает бекап, который я делал за два дня до падения, он при распаковке показал, что даты создания некоторых файлов обнулены). А при проверке на бед сектора контроллер диска просто разрешил помечать все ячейки как битые, в которых превышено допустимое количество циклов записи.

Что нужно делать, если у вас SSD

Windows
Поставить Windows 7 в ней максимально всё оптимизировано для таких дисков. Также поставить много оперативки.
MacOs
Скорее всего оптимизированы только те компьютеры, которые будут сразу продаваться с SSD.
FreeBSD
Поставить 9.0. Почитать советы для линукса, подумать что из них можно сделать.
Linux
  • Поставить ядро 2.6.33, в котором есть оптимизация для таких дисков в виде команды TRIM.
  • Увеличить памяти, чтобы можно было безболезненно отключить своп.
  • Поставить для монтируемых разделов noatime .
  • Использовал файловую систему, сделанную по принципу copy-on-write или нежурналируемую файловую систему (например ext2).
    На текущий момент copy-on-write ФС использовать достаточно сложно. ZFS пока работает только через FUSE. А nilfs и btrfs при монтировании ругаются, что их формат ещё окончательно не финализирован.
  • Включить NOOP IO Scheduler он позволит не выполнять лишних бесполезных действий для SSD.
  • Концептуально верно, но не сильно поможет диску - переброс временных файлов на tmpfs .
  • Для систем интенсивно пишущих в лог нужно хранить в другом месте. В основном это актуально для серверов, для которых без проблем подымается лог сервер.
  • Обзавестись S.M.A.R.T.-утилитами корректно отображающих состояние SSD-диска, чтобы можно было периодически следить за диском.
  • Просто щадить диск. А для гентушников это дополнительно значит не «пересобирать мир».

Вопросы к хабрасообществу

  • Действительно ли за 2 месяца можно убить MLC-ячейки? Я, конечно понимаю, что диск я не жалел, но ничего сверхъестественного я не делал, просто работал как обычно.
  • Гарантийный ли это случай?

UPD : Диск у меня был Transcend TS64GSSD25S-M.
UPD2 : В комментах очень хорошие отзывы о SSD Intel и SAMSUNG. Кроме того люди удивляются как можно так быстро убить SSD веник. Поверьте мне, я недоумевал точно также. Тем не менее возможно, что это наспех скроенная SSD серия и её можно быстро убить.
UPD3 : В комментах и

Твердотельные диски (SSD) сравнительно новый и все еще довольно дорогой вид накопителя, поэтому принимая решение о приобретении SSD нужно учесть все особенности данной технологии, чтобы максимально использовать преимущества новых дисков и, по возможности, минимизировать влияние недостатков.

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

Почему так происходит? Для этого вспомним, каким образом организовано хранение данных в современных системах. Эволюция жестких дисков привела к тому, что операционная система ничего не знает о физической структуре диска, которая еще на уровне BIOS преобразуется в логическую структуру с которой уже взаимодействует драйвер контроллера дисков. Фактически все взаимодействие ОС и накопителя заканчивается на уровне файловой системы. Все что находится глубже остается для ОС неким черным ящиком. С одной стороны это правильно, так как обеспечивает обратную совместимость и дает возможность старым ОС эффективно использовать новые накопители. Но в случае использования принципиально иной технологии хранения данных подобный подход добавил только новые проблемы.

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

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

Здесь мы подошли к главной проблеме, при использовании SSD система должна взаимодействовать с диском на уровне его физической структуры - блоков, только так можно использовать все преимущества данных дисков. Но это невозможно без кардинального изменения логики работы всех уровней системы хранения данных, что сделает ее несовместимой со всеми предыдущими технологиями. Поэтому разработчики пошли другим путем, введением специальной команды TRIM, которая уведомляет накопитель, что данные блоки больше не используются и он может их очистить. Это существенно улучшило ситуацию: ОС, определив что имеет дело с SSD, при удалении файла посылает накопителю команду TRIM, а он в свою очередь очищает указанные ячейки, делая снова возможной быструю запись в них. Все что требуется: это поддержка TRIM со стороны SSD и OC.

Что касается дисков, то здесь вопрос на сегодняшний день закрыт, все актуальные модели поддерживают TRIM, а для ранее выпущенных моделей существую новые прошивки. С операционными системами не все так радужно, TRIM на сегодняшний день поддерживают:

  • Windows 7
  • Windows Server 2008 R2
  • Linux c ядром 2.6.33 и выше
  • FreeBSD 8.1, ограниченная поддержка только для низкоуровневого форматирования, полная поддержка ожидается в FreeBSD 9.

Сегодня наше теоретическое отступление оказалось неожиданно обширным, самое время проверить как обстоят дела на практике. После в феврале этого года мы решили подвергнуть один из дисков OCZ Agility 2 продолжительному испытанию. Мы установили его в качестве дополнительного диска в сервер под управлением Windows Server 2003 и разместили на нем базы 1С:Предприятие 7.7 с суммарной нагрузкой в 30 пользователей. В начале этой недели мы сняли этот диск. Все последующие операции производились на Windows 7 SP1 64-бита.

Основной интерес для нас представляли два параметра: степень износа SSD и уровень производительности после продолжительной работы в системе без поддержки TRIM. Так как SSD имеет конечное количество циклов перезаписи, многие испытывают вполне обоснованные опасения по поводу пригодности SSD для высоконагруженных дисковых подсистем. Данный показатель можно узнать из S.M.A.R.T. таблицы накопителя. Для этого мы воспользовались удобной утилитой CrystalDiskInfo :

Как видим, по поводу ресурса можно не беспокоиться, отработав 4 месяца в режиме активного использования диск по прежнему имеет это значение на уровне 100% и, как показывает практика, диск будет заменен как морально устаревший ранее чем выработает свой ресурс.

Теперь перейдем к производительности, в наших февральских тестах диск показал следующие результаты:

Посмотрим, что он покажет теперь:

Результат работы без TRIM налицо: производительность операций записи снизилась на 15-40%, что весьма существенно. Внимательный читатель заметит, что тестирование мы проводили в ОС которая поддерживает TRIM, однако производительность так и осталась низкой. Все правильно, ОС не знает какие блоки свободны, а какие нет, поэтому наличие TRIM будет действовать только для вновь удаляемых данных.

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

Да, есть от чего прийти в отчаяние, светлое будущее SSD перестает казаться таким светлым и заставляет задуматься о правильном вложении средств. Сегодня единственным реально работающим способом вернуть SSD былую производительность является использование фирменных утилит, однако это связано с полным уничтожением данных на диске. Мы воспользовались утилитой OCZ Toolbox , а именно функцией Secure Erase .

После использования данной функции нужно перезагрузить ПК и заново создать раздел на SSD (текущий будет автоматически удален), форматирование нового раздела, несмотря на установленный флажок "Быстрое форматирование", займет довольно продолжительное время, в итоге SSD будет полностью очищен. Проверим производительность:

Ну, наконец то! Производительность вернулась к исходным показателям.

Выводы:

Что можно сказать по этому поводу? Практического смысла в приобретении SSD для систем не поддерживающих TRIM нет, лучше потратьте эти деньги на создание производительного RAID массива из SATA / SAS дисков. При использовании бывших в эксплуатации SSD обязательно произведите очистку диска фирменной утилитой и не забудьте проверить оставшийся ресурс диска. В остальном остается пожелать вам благоразумия и использовать SSD только в тех случаях, когда это действительно имеет смысл.

Представьте момент, вы только приобрели новенький SSD диск, но при подключении к компьютеру он не определяется или вы им пользуетесь уже достаточно долго, но в один прекрасны момент, он перестал распознаваться. Конечно, тут можно подумать, что он сломался, сгорел, в общем, вышел из строя. И правильным решением будет отнести его в сервисный центр.

Однако зачастую проблема кроется в обычных системных ошибках, которые могут возникнуть после различных сбоев или если вы подключаете новый ССД. В таком случае, исправить это достаточно просто, об этом мы поговорим ниже.

Причины неполадок с подключением SSD

Несмотря на то, что твердотельный накопитель имеет совершенно другой принцип хранения информации, зачастую в них используются те же интерфейсы и форм-факторы, что и в обычных HDD. Для подключения SSD к компьютеру сегодня используется интерфейс SATA. Исходя из этого, напрашивается вывод, что эти винчестеры подвержены при подключении тем же , что и винчестеры SATA. Более того, широкое распространение получили твердотельные накопители, предназначенные для подключения к разъемам mSATA, M.2 или слоту PCI-Express.

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

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

Проводим инициализацию

Первым делом нужно рассмотреть ситуацию, когда компьютер не видит новый SSD диск при первом же подключении. То есть, накопитель не может инициализироваться самостоятельно, и это нужно сделать вручную, в качестве примера я буду использовать Windows 7, однако в других версиях, Windows 8 и 10, все действия будут аналогичны:

  1. Нажимаем сочетание клавиш «Win+R» и вводим «compmgmt.msc», после чего жмем «ОК».
  2. Ищем в левой колонке пункт «Управление дисками» и нажимаем на него.
  3. Выбираем нужный, жмем правой кнопкой и кликаем «Инициализировать диск».
  4. В новом окне ставим на нем галочку, выбираем «MBR» или «GBT» и жмем «ОК». Рекомендуется выбирать «MBR»
  5. В нижней части главного окна жмем по диску и далее выбираем пункт «Создать простой том».
  6. Откроется новое окно, жмем «Далее».
  7. Теперь нужно указать объем тома. Не рекомендуется менять выставленный по умолчанию параметр. Жмем «Далее».
  8. Далее выбираем любую букву и снова нажимаем «Далее».
  9. После выбираем «Форматировать этот том», в пункте «Файловая система» отмечаем NTFS. Нажимаем «Далее».
  10. В новом окне отобразятся основные параметры. В случае их соответствия прожимаем «Готово».

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

Если присутствует нераспределенная область, то достаточно просто , начинать следует с 5 пункта.

Изменение буквы

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

Исправить эту неполадку достаточно просто следующим образом:


Таким образом, вы быстро измените букву и решите проблему, когда компьютер или ноутбук не видит SSD устройство.

Тип файловой системы

Возможен такой вариант, когда отсутствует пункт «Изменить букву диска». Это говорит о несоответствии в файловой системе, именно поэтому компьютер и не видит ССД. Для нормальной работы накопителя в виндовс он должен быть формата NTFS.

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

Необходимо сделать следующее:


После того как накопитель отформатируется, проблема будет исправлена.

Не отображается в БИОС

В некоторых случаях бывает такое, что SSD не отображается даже в BIOS. Существует две причины, почему это случается, и столько же решений. Первая из них — отключенный контроллер SATA, чтобы его включить, нужно:


Следует заметить, что операционная система может не устанавливаться из-за выбранного режима «AHCI», в таком случае измените его на «IDE» и после установки обратно поменяйте на «AHCI».

Если это не помогло, то следует сбросить настройки Биос. При наличии соответствующих знаний рекомендуется обновить сам BIOS до новой версии.

Еще одной причиной тому, что он не определяется, может служить – кривая прошивка SSD на этапе производства. Конечно, можно самостоятельно попробовать его перепрошить, но есть риск, что из-за неправильных действий он может окончательно выйти из строя. Поэтому лучше сдать его обратно по гарантии или отнести в ремонт.

Поврежден кабель или шлейф

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


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

Неисправность накопителя

Напоследок нужно сказать о вероятности выхода накопителя из строя, ввиду чего он и перестал определяться. Даже не смотря на отсутствие движущихся частей в SSD устройте, это не значит, что он не может сломаться.


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

Неисправность блока питания

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

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

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

Встроенный накопитель

Также следует сказать об еще одной особенности, характерной исключительно SSD накопителям. Иногда бывает так, что твердотельный винчестер выступает не в качестве подключаемого к SATA разъему, а присутствует в виде интегрированного диска на материнской плате. В этом случае ССД обнаруживается средствами ОС, но не виден в BIOS.


Исходя из того, что эти диски нужны для применения как служебные винчестеры для потребностей операционной системы, то ситуация, когда SSD не определяется в БИОС, вполне нормальная, так как этот накопитель является неотъемлемым от материнской платы.

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

Рынок SSD-дисков постепенно становится всё более разнообразным. Растет емкость SSD-дисков, и одновременно с этим падает цена в расчете на гигабайт памяти. Однако говорить о том, что SSD-диски стали популярными, еще преждевременно. Главная причина этого - их невысокая (в сравнении с традиционными HDD-дисками) емкость и очень высокая (опять-таки в сравнении с традиционными HDD-дисками) стоимость в расчете на гигабайт памяти. А потому наличие SSD-диска в домашнем настольном ПК - это скорее исключение из правила. Более того, даже в нетбуках и ноутбуках SSD-диски встречаются пока крайне редко. В то же время уже сейчас очевидно, что будущее систем хранения данных именно за SSD-дисками, которые в дальнейшем вытеснят с рынка HDD-диски. Когда это произойдет? Да, собственно, как только они станут сопоставимы по емкости и стоимости с HDD-дисками. Тогда последние просто исчезнут как класс, поскольку SSD-диски имеют ряд неоспоримых преимуществ перед HDD-дисками.
В этой статье мы рассмотрим некоторые особенности функционирования современных SSD-дисков, которые иногда вызывают массу вопросов и недоумение, поговорим об особенностях их архитектуры, а также о возможных вариантах использования этих дисков в ноутбуках, ПК и серверах.

Актуальность перехода на SSD-диски

Производительность современных центральных процессоров, определяющих вычислительные возможности ПК, существенно превосходит производительность традиционных жестких дисков (HDD). В результате именно подсистемы хранения данных во многих случаях становятся узким местом, сдерживающим рост производительности компьютеров в целом. Использование дорогостоящих решений на основе RAID-массивов лишь отчасти позволяет решить проблему дисбаланса в производительности процессоров и подсистем хранения данных на основе HDD. И в дальнейшем дисбаланс производительности процессоров и HDD-дисков будет только увеличиваться, и мы неизбежно придем к тому, что производительность компьютера во многих приложениях уже перестанет определяться производительностью процессора, а будет упираться в самое слабое звено - подсистему хранения данных. Так, с 1996 года усредненная производительность процессоров выросла в 175 раз, в то время как производительность HDD-дисков (имеется в виду выборочное чтение блоков размером 20 Кбайт) - всего в 1,3 раза.

Сегодня единственным способом решения этой проблемы является переход от HDD к твердотельным дискам SSD (Solid State Drive) на основе флэш­памяти. Такие диски способны обеспечить уровень производительности, который в полной мере отвечает производительности современных многоядерных процессоров.

Впрочем, высокая производительность - это не единственное преимущество SSD-дисков. Они также абсолютно бесшумны, поскольку не содержат движущихся частей, и, что особенно важно для ноутбуков, потребляют гораздо меньше электроэнергии по сравнению с HDD-дисками. Так, энергопотребление обычного 2,5-дюймового HDD-диска в режиме активности составляет порядка 2,5-3 Вт и порядка 0,85-1 Вт в режиме простоя (Idle). Если HDD-диск не активен, то через некоторое время (в зависимости от настроек) он переходит в режим пониженного энергопотребления (Standby или Sleep) и при выходе из этого режима ему требуется порядка 1-2 с для раскрутки. Типичное энергопотребление SSD-диска (не серверного) в режиме активности составляет порядка 0,15 Вт, а в режиме простоя - 0,06 Вт. Причем при правильной настройке переход из режима активности в режим пониженного энергопотреб­ления происходит автоматически, если диск не активен в течение 25 мс. А включаются эти диски практически мгновенно, поскольку им просто нечего раскручивать. Отметим, что для автоматического перехода SSD-диска в режим пониженного энергосбережения необходимо активировать функцию Device Initiated Power Management (DIPM) в реестре, поскольку по умолчанию задана функция Host Initiated Power Management (HIPM), когда переходом в режим пониженного энергопотребления управляет не сам диск, а операционная система.

Не уступают SSD-диски традиционным HDD-дискам и по такой характеристике, как среднее время наработки на отказ (MTFB). Так, если для HDD среднее время наработки на отказ составляет порядка 300 тыс. ч, то для SSD-дисков - свыше миллиона часов.

Казалось бы, если преимущества SSD-дисков настолько очевидны, почему они до сих пор не получили широкого распространения? Увы, но у SSD-дисков есть и серьезные недостатки. Прежде всего современные SSD-диски не сопоставимы с HDD-дисками по емкости. Так, если емкость HDD-дисков (размером 3,5 дюйма) достигает 3 Тбайт, то максимальная емкость SSD-дисков (размером 2,5 дюйма) составляет только 512 Гбайт. Правда, если сравнивать 2,5-дюймовые SSD- и HDD-диски, то их емкость вполне сопоставима.

Второй недостаток SSD-дисков - это их стоимость, которая в несколько раз выше, чем у HDD.

Впрочем, что касается емкости SSD-дисков, то не всё так плохо, как может показаться. Емкость SSD-дисков растет гораздо более высокими темпами, чем емкость HDD-дисков, и недалек тот день, когда SSD-диски превзойдут по емкости HDD. В качестве доказательства приведем интересную статистику. В 2006 году компания Intel, один из ведущих игроков на рынке SSD-дисков, производила микросхемы флэш­памяти типа NAND для SSD-дисков по 90-нм техпроцессу, при этом их емкость составляла 1 или 2 Гбит. В 2009 году Intel выпускала микросхемы флэш­памяти уже по 34-нм техпроцессу, а емкость микросхем стала составлять 32 Гбит. В 2010 году компания освоила 25-нм процесс производства микросхем флэш­памяти емкостью 64 Гбит. Как видим, темпы роста емкости микросхем флэш­памяти для SSD-дисков впечатляют: фактически ежегодно происходит ее удвоение. Так что в скором времени SSD-диски будут превосходить по объему HDD.

Нужно также отметить, что хотя до широкого распространения SSD-дисков еще далеко, но говорить о том, что SSD-диски вообще не покупают, неверно. Статистика такова: в 2008 году в мире было продано всего 700 тыс. SSD-дисков, в 2009 году объем продаж составил уже 2 млн штук, а в этом году, согласно прогнозам, он достигнет 5,9 млн штук. Предполагается, что к 2013 году рынок SSD-дисков составит 61,8 млн штук.

Итак, прогнозы по объемам продаж SSD-дисков весьма оптимистичны, однако они отнюдь не отвечают на главный вопрос: что делать пользователям сегодня, когда емкость SSD-дисков еще недостаточно высока, а их стоимость всё еще очень высока? Если речь идет о домашних пользователях, то, конечно же, не имеет смысла выбрасывать HDD-диски, чтобы установить SSD. Однако повысить производительность компьютера за счет использования SSD-дисков всё же можно. Оптимальным является решение, когда в настольном ПК применяется комбинация одного SSD-диска и одного или нескольких HDD-дисков. На SSD-диск можно установить операционную систему и все программы (для этого будет достаточно диска объемом 80 Гбайт), а HDD-диск использовать для хранения данных.

Устройство ячейки флэш­памяти

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

На простейшем уровне ячейка флэш­памяти представляет собой n -канальный MOSFET-транзистор с так называемым плавающим затвором. Напомним, что обычный n -канальный MOSFET-транзистор (структура n -p -n ) может находиться в двух состояниях: открытом и запертом (закрытом). Управляя напряжением между стоком и затвором, можно создавать канал проводимости электронов (n -канал) между истоком и стоком (рис. 1). Напряжение, при котором возникает канал проводимости, называется пороговым. Наличие канала проводимости соответствует открытому состоянию транзистора, а отсутствие (когда транзистор не способен проводить ток от истока к стоку) - запертому.

Рис. 1. Устройство MOSFET-транзистора (открытое и закрытое состояние)

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

Рис. 2. Устройство транзистора с плавающим затвором и чтение содержимого ячейки памяти

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

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

То есть в отсутствие управляющего напряжения на затворе, независимо от наличия или отсутствия заряда на плавающем затворе, транзистор будет всегда закрыт, а при подаче порогового значения напряжения на затвор состояние транзистора будет определяться наличием заряда на плавающем затворе: если заряд имеется, то транзистор будет закрыт и выходное напряжение будет высоким; если заряд отсутствует, то транзистор будет открыт и выходное напряжение будет низким.

Закрытое состояние транзистора (отсутствие канала проводимости) принято трактовать как логический ноль, а открытое (наличие канала проводимости) - как логическую единицу. Таким образом, при инициализации ячейки памяти (подаче порогового значения напряжения на затвор) наличие заряда на плавающем затворе трактуется как логический ноль, а его отсутствие - как логическая единица (см. таблицу).

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

Помещение заряда на плавающий затвор реализуется либо методом инжекции горячих электронов (CHE-Channel Hot Electrons), либо методом туннелирования Фаулера - Нордхейма (рис. 3). Ну а удаление заряда производится только методом туннелирования Фаулера.

Рис. 3. Процесс записи и стирания информационного бита в транзистор с плавающим затвором

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

Для удаления заряда с плавающего затвора (процесс стирания ячейки памяти) на управляющий затвор подается высокое отрицательное напряжение, а на область истока - положительное. Это приводит к тому, что электроны туннелируют из области плавающего затвора в область истока (квантовое туннелирование Фаулера - Нордхейма (Fowler - Nordheim, FN)).

Рассмотренный нами транзистор с плавающим затвором может выступать в роли элементарной ячейки флэш­памяти. Однако однотранзисторные ячейки имеют ряд существенных недостатков, главный из которых - плохая масштабируемость. Дело в том, что при организации массива памяти каждая ячейка памяти (транзистор) подключается к двум перпендикулярным шинам: управляющие затворы - к шине, называемой линией слов, а стоки - к шине, называемой битовой линией (в дальнейшем данная организация будет рассмотрена на примере NOR-архитектуры). Вследствие наличия в схеме высокого напряжения при записи методом инжекции горячих электронов все линии - слов, битов и истоков - необходимо располагать на достаточно большом расстоянии друг от друга для обеспечения требуемого уровня изоляции, что, естественно, сказывается на ограничении объема флэш­памяти.

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

Широкое распространение получили и другие типы ячеек памяти, например ячейка SST (рис. 4), разработанная компанией Silicon Storage Technology, Inc. В транзисторе SST-ячейки изменены формы плавающего и управляющего затворов. Управляющий затвор выровнен своим краем с краем стока, а его изогнутая форма дает возможность разместить плавающий затвор частично под ним и одновременно над областью истока. Такое расположение плавающего затвора позволяет упростить, с одной стороны, процесс помещения на него заряда методом инжекции горячих электронов, а с другой - процесс снятия заряда за счет эффекта туннелирования Фаулера - Нордхейма.

Рис. 4. Структура SST-ячейки памяти

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

При помещении заряда на плавающий затвор сток заземляется, а к истоку и управляющему затвору подается положительное напряжение. Управляющий затвор формирует при этом канал проводимости, а напряжение между стоком и истоком «разгоняет» электроны, сообщая им энергию, достаточную для преодоления потенциального барьера, то есть для туннелирования на плавающий затвор.

В отличие от однотранзисторной ячейки памяти, ячейка SST имеет несколько иную схему организации массива памяти.

Многоуровневые и одноуровневые ячейки флэш­памяти

Все рассмотренные до этого типы ячеек памяти способны сохранять только один бит информации в расчете на одну ячейку. Подобные ячейки памяти получили название одноуровневых (Single Level Cell, SLC). Однако существуют и такие ячейки, каждая из которых сохраняет по нескольку битов, - это многоуровневые ячейки, или MLC (Multi Level Cell).

Как уже отмечалось при описании однотранзисторной ячейки памяти, наличие логической единицы или нуля определяется по значению напряжения на битовой линии и зависит от наличия или отсутствия заряда на плавающем затворе. Если на управляющий затвор подается пороговое значение напряжения, то при отсутствии заряда на плавающем затворе транзистор открыт, что соответствует логической единице. Если же на плавающем затворе имеется отрицательный заряд, своим полем экранирующий поле, создаваемое управляющим затвором, то транзистор оказывается в закрытом состоянии, что соответствует логическому нулю. Понятно, что даже при наличии отрицательного заряда на плавающем затворе транзистор можно перевести в открытое состояние, однако для этого придется подать на управляющий затвор напряжение, превышающее пороговое значение. Следовательно, об отсутствии или наличии заряда на плавающем затворе можно судить по пороговому значению напряжения на управляющем затворе. Поскольку пороговое напряжение зависит от величины заряда на плавающем затворе, то можно не только определить два предельных случая - отсутствие или присутствие заряда, - но и по величине порогового напряжения судить о количестве заряда. Таким образом, если имеется возможность размещать на плавающем затворе разное количество уровней заряда, каждому из которых соответствует свое значение порогового напряжения, то в одной ячейке памяти можно сохранять несколько информационных битов. К примеру, для того чтобы с использованием такого транзистора сохранять в одной ячейке 2 бита, необходимо различать четыре пороговых напряжения, то есть иметь возможность размещать на плавающем затворе четыре различных уровня заряда. Тогда каждому из четырех пороговых напряжений можно поставить в соответствие комбинацию двух битов: 00, 01, 10, 11.

Для того чтобы иметь возможность записывать в одну ячейку 4 бита, необходимо различать уже 16 пороговых напряжений.

Ячейки MLC активно разрабатываются компанией Intel, поэтому технология памяти на основе MLC-ячеек получила название Intel StrataFlash.

Отметим, что SLC-ячейки памяти обеспечивают более высокую скорость чтения и записи. Кроме того, они более долговечны, однако SSD-диски на их основе дороже, поскольку при равной емкости SSD-дисков на базе MLC- и SLC-ячеек памяти количество самих ячеек памяти в MLC-диске будет в два раза меньше (в случае четырехуровневых ячеек памяти). Именно поэтому SSD-диски на основе SLC-ячеек памяти используются главным образом в серверах.

Архитектура массивов флэш­памяти

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

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

Архитектура NOR (рис. 5) подразумевает параллельный способ объединения ячеек памяти в массив. Как уже отмечалось, для инициализации ячейки памяти, то есть для получения доступа к содержимому ячейки, необходимо подать пороговое значение напряжения на управляющий затвор. Поэтому все управляющие затворы должны быть подсоединены к линии управления, называемой линией слов (Word Line). Анализ содержимого ячейки памяти производится по уровню сигнала на стоке транзистора. Поэтому стоки транзисторов подключаются к линии, называемой битовой линией (Bit Line).

Рис. 5. Архитектура NOR

Своим названием архитектура NOR обязана логической операции «ИЛИ-НЕ» (английская аббревиатура - NOR). Логическая операция NOR над несколькими операндами дает единичное значение, когда все операнды равны нулю, и нулевое значение во всех остальных случаях. В данном случае имеется в виду принцип соединения транзисторов вообще, а не конкретно транзисторов с плавающим затвором.

Рассмотрим в качестве примера несколько транзисторов (без плавающего затвора), присоединенных к одной битовой линии (рис. 6). В этом случае если хотя бы один транзистор открыт, то выходное напряжение на битовой линии будет низким. И только в случае, когда все транзисторы закрыты, напряжение на битовой линии будет высоким. Получаем таблицу истинности входных напряжений на затворах транзисторов и выходного напряжения на битовой линии, соответствующую таблице истинности логической функции «ИЛИ-НЕ» (NOR). Именно поэтому такая схема объединения транзисторов и получила название NOR.

Рис. 6. Соединение транзисторов по схеме NOR

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

Другой распространенной архитектурой флэш­памяти является архитектура NAND (рис. 7), соответствующая логической операции «И-НЕ». Операция NAND дает нулевое значение только в том случае, когда все операнды равны нулю, и единичное значение во всех остальных случаях. Архитектура NAND подразумевает последовательный способ подключения транзисторов, при котором сток каждого транзистора связан с истоком соседнего транзистора, а в серии нескольких последовательно соединенных транзисторов только один из них оказывается подключенным к линии битов. Причем при рассмотрении архитектуры соединения речь не идет конкретно о транзисторах с плавающим затвором.

Рис. 7. Архитектура NAND

Рассмотрим группу таких последовательно соединенных транзисторов (без плавающего затвора) (рис. 8). В случае если управляющее напряжение на затворах всех транзисторов равно пороговому значению, то все транзисторы находятся в открытом состоянии и выходное напряжение (напряжение на битовой линии) будет низким, что соответствует логическому нулю. Если же входное напряжение хотя бы на одном транзисторе будет низким (ниже порогового значения), то есть если хотя бы один транзистор будет находиться в запертом состоянии, то напряжение на битовой линии будет высоким, что соответствует логической единице. Получаем таблицу истинности входных напряжений на затворах транзисторов (напряжений на линии слов) и выходного напряжения на битовой линии, соответствующую таблице истинности логической функции «И-НЕ» (NAND). Именно поэтому такая схема объединения транзисторов и получила название NAND.

Рис. 8. Соединение транзисторов по схеме NAND

В схеме соединения NAND-транзисторов с плавающим затвором к группе последовательно соединенных транзисторов с обоих концов подключаются обычные транзисторы (без плавающего затвора), которые изолируют группу транзисторов и от земли, и от битовой линии и подключают всю группу транзисторов к битовой линии при их инициализации.

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

Естественно, возникает вопрос: каким образом в архитектуре NAND можно получить доступ к отдельно взятой ячейке памяти (прочитать содержимое ячейки)? Ведь если хотя бы один из транзисторов в такой последовательно соединенной группе будет находиться в закрытом состоянии (что можно трактовать как наличие заряда на плавающем затворе соответствующего транзистора), то напряжение на битовой линии будет высоким независимо от состояния остальных ячеек. Для того чтобы получить доступ к отдельно взятой ячейке, недостаточно просто подать пороговое значение напряжения на затвор транзистора, соответствующего этой ячейке, и измерить напряжение на битовой линии. Еще нужно, чтобы все остальные транзисторы при этом находились в открытом состоянии. Для этого на затвор транзистора, соответствующего ячейке памяти, чье содержимое необходимо прочитать, подается пороговое значение напряжения, а на затворы всех остальных транзисторов - напряжение, превышающее пороговое значение и достаточное для образования канала проводимости даже при наличии заряда на плавающем затворе, но недостаточное для эффекта квантового туннелирования зарядов. В таком случае все эти транзисторы переходят в открытое состояние и напряжение на битовой линии определяется наличием или отсутствием заряда на плавающем затворе транзистора, соответствующего ячейке памяти, к которой реализуется доступ.

Логическая структура NAND флэш­памяти

Как мы уже отмечали, в SSD-дисках используется флэш­память с организацией по типу NAND, поэтому в дальнейшем мы сосредоточимся на рассмотрении исключительно NAND флэш­памяти.

Несмотря на тот факт, что флэш­память позволяет получить доступ для чтения, записи и стирания отдельно взятой ячейки, для более эффективного использования элементарных ячеек памяти они были объединены в массивы с четырехуровневой структурой. На низшем уровне находится элементарная ячейка памяти, а элементарные ячейки, объединенные в массив, вмещающий 4 Кбайт данных, называются страницей памяти. 128 таких страниц образуют блок памяти размером 512 Кбайт (иногда в блок памяти входит 64 страниц), а 1024 блока - массив размером 512 Мбайт. Таким образом, логическая структура объединения ячеек в массивы довольно проста. Страница подобна кластеру (сектору) в жестком диске и представляет собой минимальный размер данных, с которым работает флэш­память. Однако между кластером жесткого диска и страницей флэш­памяти существует принципиальная разница при выполнении операций чтения, записи и удаления. Так, если в жестком диске кластер можно прочитать, записать и удалить, то во флэш­памяти операции чтения и записи возможны страницами по 4 Кбайт, а стирание данных - только блоками по 512 Кбайт. Причем как только информация записана на страницу, она не может быть перезаписана до тех пор, пока не будет очищена (удалена).

Особенности операций записи данных в SSD-дисках

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

В случае жестких дисков HDD наименьшая единица информации, которой оперирует система управления жесткого диска, носит название сектора или блока. В HDD размер сектора равен 4 Кбайт (в новых моделях) или 512 байт. Для адресации секторов (блоков) на диске используется метод LBA (Logical Block Addressing), при котором каждый блок, адресуемый на жестком диске, имеет свой порядковый номер - целое число, начиная с нуля (то есть первый блок LBA = 0, второй LBA = 1 и т.д.). Количество LBA-блоков на диске определяется количеством цилиндров, дорожек, секторов и головок чтения/записи. Так, расчет номера LBA-блока производится по формуле:

LBA = [(Cylinder x No_of_heads + Heads) x Sectors/track] + }

Похожие статьи