Лаборатория Элкомсофт: SSD-накопители становятся медленнее со временем

19 декабря, 2024, Oleg Afonin
Рубрика: «Аппаратное обеспечение», «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Современные SSD-накопители отличаются высокой скоростью как чтения, так и записи. В силу использования ячеек с высокой плотностью (TLC и QLC NAND) высокая скорость записи, как правило, является результатом использования кэша с технологией псевдо-SLC (pSLC) кэша, в котором память NAND работает в «ускоренном» режиме записи. Использование такого типа кэширования позволяет в разы ускорить запись относительно небольших объёмов данных. Недавно опубликованный отчёт заставляет задуматься: его авторы утверждают, что динамический pSLC-кэш, активно используемый в современных SSD, ускоряет процесс деградации ячеек и сказывается на скорости записи через считанные единицы циклов перезаписи. В этой статье мы рассмотрим, почему это происходит.

Как работает pSLC-кэш?

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

  • QLC (четырёхбитный режим) – низкая скорость записи, низкая надёжность, но высокая плотность данных и относительно низкая себестоимость.
  • TLC (трёхбитный режим) – сбалансированный вариант, в котором в каждой ячейке хранится три бита данных.
  • MLC (когда-то двухбитный, но в целом – «многобитный» режим) – в ячейке хранится более одного бита данных. Изначально под MLC понималась память с плотностью два бита на ячейку, но современные маркетологи (в том числе и таких компаний, как Samsung) предпочитают использовать термин MLC в его изначальном варианте — «много» бит, что создаёт у покупателей ложные ожидания.
  • SLC (однобитный режим) – максимальные скорость и надёжность при низкой плотности данных.

В режиме SLC каждая ячейка хранит всего один бит данных, что существенно ускоряет операции записи по сравнению с конфигурациями более высокой плотностью. Кроме того, современные чипы NAND могут быть сконфигурированы с любой поддерживаемой контроллером плотностью. Более того, конфигурацию ячеек можно менять на лету, переключая TLC-ячейки в режим SLC и наоборот. Эти особенности и используются для создания pSLC (псевдо-SLC) кэша, который бывает двух типов:

  1. Статический pSLC-кэш: ячейки NAND изначально сконфигурированы для работы в SLC-режиме и никогда не переключаются в другой режим. Этот тип кэша не зависит от свободного места на диске, а использующиеся для его создания ячейки берутся из дополнительной, неадресуемой ёмкости твердотельного накопителя.
  2. Динамический pSLC-кэш: ячейки выделяются из свободного пространства, временно переключаясь в SLC-режим. Объём динамического кэша зависит как от соотношения занятого и свободного места на диске, так и от конфигурации контроллера. Некоторые накопители (например, Crucial T500) позволяют резервировать под pSLC кэш всё свободное адресное пространство, другие — ограничивают его объём; у каждого подхода есть плюсы и минусы.

В отличие от статического pSLC-кэша, где фиксированная часть NAND постоянно работает в режиме SLC, динамический pSLC-кэш использует часть свободных ячеек накопителя, временно переключая их в SLC-режим. У производителей SSD — полная свобода выбора. В зависимости от выбранных производителем диска настроек, динамический pSLC-кэш может занимать до 100% свободного места на диске (разумеется, его реальный объём будет меньше, т.к. основной массив NAND обычно конфигурируется с плотностью TLC или QLC). Соответственно, объём доступного кэша будет уменьшаться по мере заполнения накопителя. Чем больше заполнен SSD, тем меньше доступного пространства для динамического pSLC-кэша, и тем быстрее будет падать скорость записи данных.

На этапе записи данные сначала попадают в статический (если он есть), а затем в динамический pSLC-кэш. Когда оба типа кэша заполняются, начинается так называемая «свёртка» (folding), при которой данные перемещаются в основной массив NAND (например, в TLC-режим).

Запись на диск, в котором есть только статический pSLC-кэш, выглядит следующим образом (источник — исследование компании Swissbit Ag):

Если накопитель сконфигурирован с использованием динамического псевдо-SLC кэша (то есть, такого, объём которого зависит от свободного места на диске), график скорости записи будет выглядеть следующим образом:

Разница между двумя графиками очевидна. С использованием динамического pSLC-кэша накопитель может поддерживать высокую скорость записи гораздо дольше аналогичного по объёму накопителя, оборудованного только статическим pSLC-кэшем (первая ступенька на графике). Вторая ступень показывает скорость записи напрямую в ячейки, сконфигурированные в режиме TLC или QLC. Наконец, третья ступень — этап очень медленной записи, сопровождающейся «свёрткой» динамического кэша, в процессе которой ячейки переконфигурируются из состояния псевдо-SLC в состояние TLC, а данные из них, соответственно, переносятся.

Что происходит при «свёртке»?

Процесс свёртки включает несколько шагов, каждый из которых снижает производительность:

  1. Чтение данных из pSLC-кэша.
  2. Запись этих данных в основную область NAND (TLC).
  3. Очистка использованных ячеек pSLC-кэша.
  4. Переключение ячеек из режима pSLC обратно в TLC.

Эти операции требуют времени и ресурсов, что приводит к сильному падению скорости записи после заполнения буфера псевдо-SLC. Эта особенность SSD-накопителей хорошо изучена и учитывается профессиональными обозревателями, которые проводят специальные тесты, позволяющие определить конфигурацию pSLC буфера и скорости записи в буфер, напрямую в ячейки стандартной плотностью, и в процессе «свёртки». Однако «свёртка» — далеко не единственная проблема динамического буфера. Со временем скорость записи быстрых накопителей уменьшается, часто — в разы по сравнению с новыми экземплярами. Схематично этот процесс отображён на следующем графике:

Здесь непрерывная линия показывает скорость записи полного объёма данных на пустой новый накопитель, а пунктирная — запись того же объёма данных на пустой, но уже бывший в употреблении диск. Как видим, высокую скорость записи б/у накопитель может демонстрировать только на очень коротком отрезке — это объём статического pSLC-кэша (сравните этот график и тот, на котором изображена работа накопителя, оборудованного только статическим pSLC-кэшем). Далее запись ведётся напрямую в ячейки TLC памяти, которая втрое медленнее записи в псевдо-SLC кэш. Если накопитель совсем не имеет статического pSLC-буфера или объём этого буфера невелик, пользователь заметит замедление работы при записи данных. Если же объём статического кэша достаточно большой, то несмотря на деградацию динамического буфера пользователь может и не заметить падения производительности.

Данный эффект связан с феноменом деградации pSLC кэша. Почему это происходит?

Почему динамический pSLC-кэш деградирует?

Существует важный нюанс, который часто упускают из виду: у NAND-памяти ограничено не только количество циклов записи, но и число переключений между режимами TLC и pSLC. Причины этого следующие:

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

В частности, в индустриальных применениях (серверные SSD) переключение конфигурации ячеек между TLC и pSLC допускается только один раз; в таких дисках изначально настраивается статический pSLC-кэш, который больше не изменяется. Для потребительских SSD ограничения менее строгие, но ресурс переключений всё равно ограничен.

Когда ресурс переключений между режимами TLC и псевдо-SLC исчерпывается, динамический pSLC-кэш перестаёт функционировать. Если накопитель имел достаточный объём статического pSLC-кэша, пользователь может не заметить падения скорости записи. Но если в конфигурации накопителя был настроен только динамический кэш, скорость записи резко упадёт, и это станет очевидным.

Как это выглядит на практике?

Пользователь pcpartpicker (сотрудник известной компании PCPartPicker, владельцев онлайн-платформы для выбора и проверки совместимости различных компьютерных компонентов) опубликовал результаты тестирования множества моделей SSD, которое провела его компания. На Reddit было опубликовано две статьи (несмотря на названия, это разные тексты; в первом тексте в комментариях приводятся дополнительные результаты):

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

На графике видно, как с каждым циклом уменьшается объём доступного динамического кэша псевдо-SLC; начиная с восьмого цикла, очевидно, в качестве буфера используется только статический pSLC-кэш, а динамический — исчез, как будто его и не было.

Деградации подвержены не все модели. Ярким исключением является диск WD SN850X, степень деградации которого после всех циклов перезаписи составила пренебрежимые 7%.

Ниже — данные, сведённые в таблицу:

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

Как понять, что у диска деградирует pSLC-кэш?

Все обозреватели тестируют новые накопители в начале их жизненного цикла. Новые экземпляры моделей с динамическим pSLC-кэшем демонстрирует высокую скорость записи (разумеется, с учётом особенностей по объёму и типам кэша). Однако уже после 10% использования ресурса ячеек (числа циклов программирования и стирания) производительность начинает постепенно падать, что связано с уменьшением пула ячеек, для которых доступно переключение режимов. В конце концов накопитель переходит в состояние, когда доступен только статический кэш, если он имелся в накопителе изначально.

В ветке на форуме AnandTech пользователи обсуждают деградацию скорости записи у накопителей SK Hynix P41 Platinum. На новом диске скорость записи — высокая:

Спустя короткое время — по утверждению пользователя, после записи всего 4ТБ данных, — скорость записи упала вдвое:

У пользователей ещё более старых накопителей этой модели наблюдается ещё более выраженное падение скорости записи:

Часто встречающийся на форумах совет — аппаратный сброс и полная очистка накопителя командой Secure Erase. Один из пользователей проделал сброс, и скорость записи на короткое время восстановилась, но уже через месяц скорость записи снова упала:

Только производитель может точно сказать, что стало причиной такого снижения производительности, однако симптомы очень похожи на те, которые возникают при деградации кэша псевдо-SLC.

Как снизить влияние деградации?

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

  1. Выбирать SSD с наличием статического pSLC-кэша. Эти накопители более устойчивы к деградации. Понять, у каких накопителей есть статический кэш pSLC, а в каких — нет, можно по обзорам накопителей, например, на сайте TomsHardware (раздел «Sustained Write Performance and Cache Recovery»), а также из результатов тестирования, направленного на выявление факта деградации.
  2. Для уже установленных дисков — избегать заполнения SSD до отказа. Чем больше свободного места, тем лучше работают внутренние алгоритмы накопителя по сборке мусора и выравнивания износа. В то же время на деградацию скорости записи свободное место на диске влияния не окажет.
  3. Обновлять прошивку SSD. Иногда производители оптимизируют работу контроллеров и алгоритмов свёртки (именно этот момент был исправлен в новой прошивке для накопителя Crucial T500), но обновления есть далеко не для всех моделей (в частности, для явного аутсайдера тестов на деградацию — накопителя SK hynix Platinum P41 обновления так и не появилось).

А нужно ли бороться с деградацией? Может быть, pSLC-кэш не нужен?

В статье The impact of SLC Cache in performance of an NVMe SSD провели исследование: у быстрого NVME-накопителя был отключён pSLC-кэш, после чего были сделаны замеры производительности. Результат можно увидеть на графиках:

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

Источники

Исходными данными для этой статьи стали следующие исследования:

 


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ