Эволюция SSD: магия меркантологов и ее разоблачение. Longread о проникновении твердотельных накопителей в нашу жизнь

TLC — не Toyota Land Cruiser, 2016

Следующий этап развития твердотельных накопителей внес некую сумятицу и неразбериху в терминологию. Техническая мысль подсказывала, что если в одной ячейке научиться распознавать и задавать больше отдельных уровней заряда, то можно на той же площади кремниевой заготовки вырастить бОльший рабочий объем итоговых накопителей при практически тех же затратах. Т.е. заработки будут больше при том же техпроцессе или издержки на тот же объем накопителя ниже, т.е. рождается главное конкурентное преимущество — ценовое. Идея не сказать, что была инновационной, она была известна давно и опытно разрабатывалась в рабочем порядке, но успех MLC накопителей ускорил НИОКР в этом направлении. В итоге технологию довели до серии и она была названа TLC (Triple Level Cell), т.е. в ячейке предлагалось различать 8 уровней заряда или 3 бита. Отсюда и слово Triple.

История SSD

Неразбериха заключалась в том, что в глазах массового потребителя Multi Level Cell звучало круче, чем Triple Level Cell! Ведь маркетинг приучил потребителя, что «мульти» должно быть явно больше чем «три». Глубоко, конечно, мало кто разбирался. Главным критерием покупки для широких масс по сей день является цена и острота маркетингового соуса, но к маркетингу мы еще вернемся.

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

В итоге заявленный ресурс TLC-ячейки оказался еще меньше, чем у предыдущих технологий — 1000–3000 перезаписей. Несложно догадаться, что носитель небольшого физического объема выработает такой ресурс в качестве системного под нагрузкой быстрее предшественников. Покупатели с опаской отнеслись к новому классу продуктов и еще активнее начали интересоваться уже прочно зарекомендовавшими себя как надежными накопителями на технологии MLC.

Но TLC была дешевле, что являлось определяющим, особенно при массовых закупках, где один доллар на конечной стоимости уже очень большая разница. Да и контроллеры подтянулись — работа с ошибками была хорошо отлажена и в целом TLC-решения при относительно небольшой цене показали вполне неплохие результаты, как по скорости, так и по надежности. Правда, на розничном рынке понятие дорого-дешево в части твердотельных накопителей получилось несколько смазанным. Нередко разницы не было совсем, либо она была незначительна. Как в такой ситуации убедить покупателя, что брать надо TLC с меньшим ресурсом, чем MLC с большим? А никак не надо — со временем MLC должна была либо уйти в ниши рынка по относительно высокой цене, либо вообще могла быть вытеснена новыми технологиями как архаизм. Надежный такой, быстрый и недорого архаизм на «толстом» техпроцессе, который грозил пережить последователей.

Но мы помним, что заявленный производителем гарантированный ресурс и фактические предельные возможности — вещи разные в т.ч. юридически. И в технических спецификациях TLC-накопителей страшных цифр никто не увидел. Даже наоборот, Kingston SSDNow UV400 240GB, построенный на Toshiba 15-нм TLC NAND имел заявленный ресурс аж в 100 ТБ. Т.е. покупатель в табличке видел данный накопитель даже как более выносливый, чем приведенный выше пример на MLC. И тут маркетологи решили, что три — это тоже мульти-, а значит TLC можно вполне честно назвать 3-bit MLC! Сколько премии выдали за этот ход — история умалчивает, но 3-bit мало кого интересовали, зато MLC это MLC.

Т.е. мои 5 ГБ записи в день позволили бы этому накопителю на достаточно хорошем контроллере Marvell проработать с моей типичной нагрузкой примерно 55 лет. Это конечно один из лучших представителей платформы, но даже если усилить нагрузку и занизить ресурс, то лет 10 работы ему отведено.

В итоге надежность массовых накопителей на TLC оказалась вполне приемлемой для массового рынка и в конечном итоге зависела от применяемой логики и конкретного исполнения.

Итак, за относительно короткий промежуток времени твердотельные накопители, основанные на флэш-памяти (которая, как явление была придумана в середине 80-х), где данные задавались и считывались формированием и анализом уровня заряда в конкретной микроскопической ячейке, продвинулись в развитии достаточно серьезно, но для обывателя этот прогресс выглядит нелогичным. Ведь SLC-память на толстых техпроцессах выдерживала 100 000 циклов, MLC в зависимости от толщины процесса и контроллера уже переносила 3000–10000 заявленных циклов, а более продвинутая TLC — всего-то официально 1000+. Обратный какой-то прогресс. А в документах к конкретным носителям гарантированные циклы вообще измерялись трехзначными числами.

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

Но указанное было далеко не вершиной развития твердотельных накопителей.

Эра 3D

Достигнув, как казалось, разумного предела по количеству уровней заряда, производители решили посмотреть вверх и увеличить плотность продукта на выходе, формируя физически вертикальные структуры памяти. Nvmdurance нарисовали это для наглядности так:

История SSD

Источник — NVMdurance.com

Обобщенно такие варианты начали называться с приставкой 3D: 3D MLC, 3D TLC, причем, вторая на рынке распространена сильно шире. Особыми усилиями в этой сфере отличились Samsung и Мicron. Количество слоев таких вертикальных структур выросло до 96 в 2018 году. Но эти технические детали не имеют особого значения для пользователя. Практически выносливость новых типов в части компоновки памяти оказалась на достаточном уровне, чтобы не забивать себе голову расчётом количества дней до планируемого выхода из строя накопителя. Отдельные экземпляры на 32 слойной 3D MLC памяти от Samsung в тестах на протирание до дыр показали просто фантастические результаты выносливости, уверенно перевалив за 7 ПТ при заявке производителя в 150 ТБ ресурса. Мы помним, что эти тесты на самом деле не показательны, но совсем игнорировать их тоже нельзя — такой выдающийся результат во многом намекает, что вопрос ресурса окончательно утратил актуальность в общем случае. Гарантированный пробег любой накопитель любого более-менее приличного бренда гарантированно отработает, а для массового потребителя этого, в общем, достаточно.

Условный ресурс 3D MLC в зависимости от слойности, техпроцесса и прочего можно оценить от 5000 до 40000 перезаписей. Приведенный выше пример протирания до дыр показал почти 54000 (!) условных циклов.

Для 3D TLC это, опять же условно, будет 1000–3000 циклов, но на фоне возрастающих объемов самих носителей это количество записывать придется достаточно долго.

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

SATA, M.2, NVMe и PCI-E

Как уже упоминалось выше, твердотельные накопители унаследовали форм-фактор HDD. Единичные были даже с IDE-интерфейсом, например от Transcend. Отдельные были воплощены даже в 3,5-дюймовых корпусах (Imation 3000 Mtron), но большинство в 2,5″. Места хватало и там и там, но таким образом была достигнута совместимость с основным объемом компьютерного парка — к моменту массового выхода SSD на рынок систем без интерфейса SATA уже практически не производилось.

Известны три основные ревизии, именуемые в быту SATA1, SATA2 и SATA3. Для пользователя разница в основном в пропускной способности — 150, 300 и 600 мегабайт в секунду соответственно. Есть и иные реализации, но мы сконцентрируемся на указанных.

Первая ревизия родилась аж в 2003, вторая через год, а третья — в 2008. Последняя встречается почти в любом современном компьютере, реже встречается вторая. В общем случае есть обратная совместимость.

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

Исследования Intel внутри компании показывают, что в офисной жизни такие нагрузки крайняя редкость. Дома — тоже. Ну не копируете вы целыми днями большие объемы последовательно туда-сюда. Т.е. такие пользовательские сценарии, конечно, есть, но они в подавляющем меньшинстве и пользователи там озадачены совсем иными проблемами.

История SSDИстория SSD

Источник — Habr.com

Основным типом нагрузки в SOHO является как раз работа с 4K-блоками и глубиной запроса 1, реже 2, а более — еще реже.

В этом прекрасном сценарии даже самые современные жесткие диски могут показать эффективную скорость чтения-записи хорошо если в 1 мегабайт в секунду. Один! На практике будет еще меньше — 0,6 МБ/с примерно. Т.е. вся основная нагрузка на накопительную подсистему в случае HDD не способна выбрать даже 1% пропускной способности SATA1. Любой читатель может проверить это, запустив популярный тест на своем системном винчестере.

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

Не так страшно подождать запись учебного фильма на скорости 150 мегабайт в секунду, как постоянно ждать фризы интерфейса в привычном ПО. И переход на SATA3 в случае HDD увеличит разве что скорость последовательных чтения-записи до физических пределов носителя, но скорость работы с 4К с глубиной запроса в 1 не изменится вообще никак, т.е. интерфейс будет продолжать «подтормаживать». Сделать с этим почти ничего нельзя. Почти.

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

Были попытки улучшить ситуацию технологией ReadyBoost в ОС Windows, но нужно было искать быстрый носитель для поддержки HDD. Таковой был найден в виде Intel Turbo Memory, но сегодня его даже в музеях 2,5 экземпляра. Опять кольцевая.

Отдельные энтузиасты, имея большие объемы ОЗУ, благодаря кэшированию ОС после первичного медленного запуска тяжелого ПО могли длительно не упираться в скорость жесткого диска, т.к. работа с данными крутилась в ОЗУ и подкачка была не нужна, как и дополнительное чтение. Но это узкий случай.

Еще раз — большинство реальных сценариев нагрузки на дисковую подсистему не способны выбрать даже ширину SATA1, не говоря о третьей ревизии.

Но зачем тут об этом?

Дело в том, что типичный SSD выполнен в формате 2,5-дюймового носителя с SATA-интерфейсом, который можно прямо подключать почти в любую систему. Фото типичного SSD было в самом начале.

Ключевой особенностью SSD является скорость работы с разными типами нагрузки. Линейные скорости SATA SSD действительно упираются в ширину интерфейса. 500–560 мегабайт в секунду линейного чтения-записи — реальность. Но реальность эта востребована, как мы помним, нечасто или даже вообще редко. Линейная работа с накопителем в подавляющем большинстве случаев не является типичной нагрузкой. Но цифры красивые. Причем это далеко не предел, как мы увидим ниже.

В случае же с 4К нагрузкой и глубиной запроса в 1–2 типичные SATA SSD показывают скорость в 15–20–40 мегабайт в секунду. А вот тут уже самое время быть повнимательней. Это самая основная и типовая нагрузка, которая сегодня бывает в современных ОС и SSD, позволяет ускорить работу в этом сегменте примерно в 40–80 раз! В реальности это очень сильно возросшая скорость загрузки системы, программ, отзывчивости интерфейсов, скорость работы браузеров т.к. они очень любят дисковый кэш и т.п.

Именно поэтому простая замена старого НЖМД в типичном немолодом ноутбуке дает такие чудесные субъективные результаты — тысячи видео об этом на Youtube.com.

Заметим, что в части типичной нагрузки даже современные SSD не способны выбрать ширину пропускания даже SATA1 в 150 мегабайт в секунду. Однако все же есть пользователи, которым нужны линейные скорости и современные SSD здесь могут выступить совершенно обескураживающе быстро. Но вот незадача — SATA3 пропустит только 600 мегабайт, а лучшие экземпляры твердотельных накопителей давно перешагнули этот рубеж благодаря многоканальности, новым технологиям, контроллерам и прочему. Что делать?

Расширять рамки. В 2013 году появились первые NVMe SSD в формате М.2, работающие через PCI Express, а это уже гигабайты пропускной способности в секунду.

История SSD

Так, например, Samsung 960 EVO способен линейно читать со скоростью 3200 мегабайт в секунду, а записывать — 1500! Цифры ориентировочные — нас интересуют именно порядки.

Трудно представить, где массово могут быть утилизированы такие скорости на бытовом уровне сегодня, но есть у этого передового примера и обратная сторона — в режиме случайного чтения 4К-блоков скорость снижается примерно до 40–50 мегабайт в секунду. Т.е. в реальных задачах опять не выбрана даже ширина SATA1.

На практике это означает, что каких-то прорывных преимуществ пользователь такого передового накопителя по сравнению с менее передовым, даже в ряде случаев на SATA3-интерфейсе, накопителем не получит. Бытовые задачи как-то заметно отличаться в скорости проведения не будут, т.к. все они лежат в зоне 4К-операций с малыми глубинами запросов. Если уж совсем по бытовому, то игры на Samsung 960 EVO не будут быстрее, чем на 850 EVO или 860 EVO, т.к. у последних 4К-скорости примерно 40 и 50 МБ/с соответственно.

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

Так же хотелось бы отметить, что, как и жесткие диски, некоторые SSD не лишены буфера из DRAM. Это позволяет поддержать накопитель в ситуациях, когда объемы обмена небольшие и их можно провести через буфер с отложенной записью в NAND. В общем случае, чем больше такой буфер, тем лучше. Особенно он поможет слабеньким реализациям SSD на относительно медленной памяти и со слабыми контроллерами, но даже такие будут всегда быстрее любых НЖМД. Даже в его отсутствии буфер может создаваться программно в режиме SLC из имеющегося массива на носителе. Решение обходное, но рабочее.

Тут надо отметить, что с распространением флэш-памяти ее пытались пристраивать буфером в НЖМД. Получались так называемые гибриды SSDHDD, SSHDD или как фантазия маркетологов решит назвать это. Получалось очень так себе. Размер буфера из флэш был маленьким, настраивать работу его логики не разрешалось, а штатная прошивка ничем выдающимся обычно не выделялась. В массы такие решения не пошли, хотя могли бы. Об этом мы еще поговорим. В любом случае именно в такой гибридной аппаратной реализации они были вообще не нужны никому и никогда. Зато в нишу пришли разработчики ПО для этих целей, которое позволяло создавать связку из HDD и кэша на любом SSD. Получалось куда лучше. Например, PrimoCache крайне эффективно умеет кэшировать как запись так и чтение на медленный НЖМД через ОЗУ и любой SSD — подойдет даже самый маленький гигабайт на 16. Эффект будет сразу и заметный.