Производительность диска зависит от температуры
Осенью прошлого года стало известно, что твердотельный накопитель Samsung 840 Evo теряет скорость при чтении старых данных. Записанную более месяца назад информацию можно было прочесть лишь с падением производительности, и компания Samsung вскоре выпустила патч с обновлением прошивки, который был призван решить эту проблему. Тогда было указано, что напряжения для ячеек со старыми данными были откалиброваны неправильно. Как выяснилось позднее, проблема всё равно оставалась, и решить её должно второе обновление, которое периодически перезаписывает старые данные в фоне. Пер Ханссон выяснил, что проблеме деградации подвержены и другие диски Samsung с памятью TLC NAND.
Samsung 840 Evo — это диски от 120 гигабайт до 1 «честного» терабайта, доступные в форм-факторах для подключения по SATA и mSATA. Сразу после появления благодаря агрессивной ценовой политике и неплохим характеристикам они являлись одними из лучших твердотельников для домашнего использования. Спустя некоторое время пользователи начали замечать странное: записанные несколько месяцев назад данные было больше нельзя прочесть на полной скорости. Иногда скорость чтения падала до 30 МБ/с. Но недавно записанные данные всегда читались со скоростью до 500 МБ/с — настолько же быстро, насколько показывает любой бенчмарк, который пишет новый блок информации для теста. Для проявления падения скорости чтения требовалось лишь несколько недель. К октябрю 2014 года ветка с обсуждением на overclock.net растянулась на сотню страниц.
Так полгода назад проявлялась проблема.
Компания Samsung быстро признала наличие проблемы и пообещала выпустить патч. К концу октября вышла специальная утилита как для 2,5-дюймовых накопителей (EXT0CB6Q), так и для подключаемых по mSATA дисков (EXT42B6Q). Программа выполняла два простых шага:
- Обновлялась прошивка диска. Новая учитывала неизбежный сдвиг уровней напряжения, который происходит во всех NAND-ячейках по мере старения. Этот эффект усиливался числом бит, хранящихся в каждой ячейке: в SLC NAND хранится лишь один бит, и можно легко различить два его состояния. В MLC NAND каждая ячейка хранит по два бита, и прочесть их становится сложнее, но количество хранимых данных удваивается. В TLC NAND требуется корректная калибровка сразу восьми уровней напряжения, но объём данных увеличивается ещё в полтора раза.
Как утверждал производитель, в читавший данные алгоритм была заложена ошибка, приводившая к тому, что старые данные становилось всё труднее и труднее читать. Скорости чтения старых файлов падали с порядка 500 МБ/с до менее 50 МБ/с — в 10 раз. Обнаружение этой проблемы было затруднено, поскольку обычно бенчмарки для выполнения теста скорости пишут новые данные и немедленно их читают. Для пользователей заметить проблему легко: файлы операционной системы, установленные программы и приложения, документы записываются один раз и используются ежедневно.
- Второй шаг полностью перезаписывал все данные на накопителе. Именно поэтому скорость выполнения Performance Restoration Software напрямую зависела от объёмов накопителя и записанной на него информации. Поскольку падению скорости требуется для проявления порядка 8 недель, некоторое время оставалось неясным, работает ли обновление прошивки.
Как выяснилось позднее, первая попытка исправить ситуацию не являлась успешной. Проблема начала проявляться повторно. Компания Samsung начала работу над новой версией прошивки (EXT0DB6Q), но в этот раз вместо изменения алгоритмов для чтения старых данных было решено заложить в накопители периодическую перезапись старых файлов в фоновом режиме. Это решение нельзя назвать элегантным: ячейки NAND-памяти изнашиваются от записи и стирания, поэтому срок службы накопителя упадёт. Но, как показывает исследование издания Tech Report, в современные твердотельники заложен неплохой ресурс.
На момент написания заметки Ханссоном, обновление вышло только для 2,5-дюймовой модели 840 Evo, и обладателям накопителя форм-фактора mSATA приходится проявлять терпение. Также новая прошивка плохо работает с реализацией команды TRIM в семействе операционных систем Linux (прошивка не поддерживает queued TRIM, хотя указывается обратное). Важной деталью последнего обновления является признание наличия изъяна не в прошивке накопителей, а в микросхемах TLC NAND компании Samsung. Вероятно, производитель не может написать такой алгоритм, который смог бы учитывать старение информации в ячейках, поэтому предлагается перезаписывать их.
Samsung утверждает, что проблема есть только в 840 Evo. Но это не так. Существуют и другие версии для встраивания, к примеру, Samsung PM851, который попадает в продукты компании Dell. На форумах пользователи сообщают о таких же проблемах со скоростью чтения. Встраиваемые версии накопителей Samsung также можно встретить в ноутбуке Razer Blade Pro и Microsoft Surface Pro 3. В последнем случае Samsung выпустила обновление прошивки, но позже без объяснения удалила его с сайта.
Также потенциально затрагиваемым продуктом может быть Samsung 845DC Evo, версия накопителя для предприятий, как указано на сайте, специально созданная для «приложений, требующих интенсивное чтение». 845DC Evo использует те же TLC NAND чипы, что и 840 Evo — K90KGY8S7M-CCK0. Вероятно, Samsung выбирает наилучшие компоненты для промышленных твердотельников, поэтому для проявления падения скорости чтения и для начала бурных обсуждений на форумах может потребоваться время.
Наконец, есть модель 840 (без Evo в названии), в которой впервые использовалась TLC NAND-память. На данный момент обновление прошивки для этого накопителя так и не выпускалось. Хотя падение скорости чтения проявляется и здесь, Samsung не признаёт наличие проблемы. Ранее Samsung Germany заявила, что старые данные на 840 читаются медленнее, но позднее в сообщениях компании это опровергалось. Вот ответ «Самсунга» на вопрос издания PC Per.
PC Per: Будет ли обновление прошивки для других твердотельных TLC-накопителей компании Samsung, которые также продемонстрировали эту проблему скорости чтения? Если да, то в какие сроки и для каких моделей выйдут новые версии прошивок?
Samsung: Сообщается об этой проблеме только для твердотельных накопителей 840 Evo.
Ханссон приводит данные, которые он собрал из сообщений пользователей с форумов:
- 840 Evo использует TLC NAND с техпроцессом 19 нм, и для деградации требуется 8 недель.
- Обычный 840 основан на 21-нм TLC NAND, для старения требуется 40 недель.
Ниже представлено падение скорости чтения на модели 840. Тест выполнялся Ханссоном на ноутбуке Lenovo ThinkPad T530 под управлением Windows 7. Plextor M5M mSATA использовался в качестве основного диска, Samsung 840 — в качестве дополнительного. В HD Tune был задан размер блока в 64 КБ. Пустые 40 ГБ не подвержены деградации скорости чтения, поэтому в них достигается пиковая производительность в 375 МБ/с. Можно заметить, что первая часть испытывает особенно сильное проседание скорости чтения — так случилось из-за клонирования обычного жёсткого диска на ноутбуке Compaq, и первые 13 ГБ содержат раздел восстановления. В этих 13 ГБ, которые никогда не перезаписывались, заметен пик двух пустых гигабайт.
Столкнувшись с проблемой чтения 840 Evo, пользователь Techie007 форума overclock.net создал очень полезную утилиту SSD Read Speed Tester, в результате работы которой можно получить график производительности чтения отдельных файлов в зависимости от их возраста. Ханссон также проверил свой 840, и пришёл к выводу, что проблема чтения подтверждается.
Визуализация результата ограничена 99 неделями, а на диске были данные старее. Ханссон построил график в Excel с помощью сырых данных, по оси абсцисс отложены дни. При анализе результатов данных становится ясно, что чем старше файл, тем хуже он читается.
Для сравнения: так выглядит результат Samsung 840 Pro, в котором используются ячейки памяти MLC NAND, хранящие по два бита и требующие калибровки всего четырёх уровней напряжения. На нём нет падения скорости чтения.
Другим интересным наблюдением оказалась зависимость производительности от температуры. Результаты бенчмарка «плавали», и Ханссон выяснил, что это происходит из-за температуры накопителя. Чем теплее 840, тем лучше читаются старые данные. Но подобное может быть справедливо не для всех разновидностей твердотельников — они могут быть откалиброваны под другую температуру. Повышать температуру выше порога тоже нельзя: при перегреве контроллер будет ограничивать скорость передачи данных. Эти явления лишний раз подчёркивают, насколько сложной является коррекция алгоритма чтения.
При 15° C скорость заметно ниже, чем при 40° C.
Чем горячее диск, тем лучше читаются старые данные, но улучшения пиковой скорости чтения нет.
Неизвестно, признает ли Samsung наличие проблемы чтения для других твердотельников с TLC NAND, или корейский гигант продолжит отвергать жалобы пользователей. Обновление прошивки для Samsung 840 Evo доступно в программе Samsung Magician 4.6, которую можно скачать на странице http://www.samsung.com/samsungssd/, или там же в виде ISO-образов.
Автор: FakeFactFelis