По меркам рынка компьютерных комплектующих Western Digital начала осваивать сегмент твердотельных накопителей сравнительно недавно: если опустить первые попытки в виде Silicon Edge Blue (2009 год) и гибридного WD Black SSHD (2013), то отправной точкой можно назвать 11 октября 2016 года, когда состоялся анонс линейки SATA-дисков WD Green и Blue SSD, а чуть позднее вышли высокоскоростные WD Black NVMe SSD, ориентированные на энтузиастов. С тех пор прошло 2 года. За это время мы перепрофилировали производственные мощности на выпуск инновационной 3D NAND, лишенной ряда недостатков планарной флэш-памяти, и обновили модельный ряд SSD-накопителей. «Черная» серия также эволюционировала: 4 июня 2018 года мы представили новое поколение WD Black 3D NVMe SSD. Какие же выгоды обеспечил переход на новый техпроцесс и чем NVMe-устройства отличаются от SATA?

WD Black 3D NVMe SSD наглядно продемонстрировали все преимущества новой архитектуры чипов флэш-памяти и переработанного контроллера, позволивших существенно повысить производительность накопителей, о чем красноречиво свидетельствует приведенная ниже таблица.

Сравнение производительности WD Black NVMe SSD первого и второго поколений на примере 500-гигабайтных моделей

Модельный номер


WDS512G1X0C


WDS500G2X0C


Форм-фактор


M.2 2280


Интерфейс


PCI Express 3.0 x4 – NVMe


Чипы памяти


SanDisk 15-нм 128-Гбит TLC NAND


SanDisk 64-слойная 256-Гбит BiCS3 3D TLC NAND


Контроллер


Marvell 88SS1093


SanDisk 20-82-007011


Буфер


LPDDR3-1600, 512 Мбайт


DDR4-2400, 512 Мбайт


Скорость последовательного чтения, МБ/с


2050


3400


Скорость последовательной записи, МБ/с


700


2500


Скорость произвольного чтения (блоки по 4 Кбайт), IOPS


170 000


410 000


Скорость произвольной записи (блоки по 4 Кбайт), IOPS


130 000


330 000


Ресурс записи, ТБ


160


300


Как видно, переход на новый техпроцесс обеспечил практически 40% прирост производительности по чтению, четырехкратный — по записи и случайным операциям, а рабочий ресурс изделий возрос практически вдвое, что, безусловно, придется по вкусу контентмейкерам и геймерам. Кстати, специально для самых хардкорных игроков и тех, чья работа связана с обработкой видео, мы выпустили терабайтный флагман, способный похвастаться уже 500 тысячами IOPS при чтении и 400 000 — при записи!

Результаты действительно впечатляющие, и тем более странно выглядит ситуация с SATA-версиями твердотельных накопителей. Наверняка те, кто следил за развитием технологии 3D NAND, испытал разочарование, ознакомившись с цифрами:

  • скорость последовательного чтения — 560 МБ/с против 545 ранее;
  • скорость последовательной записи — 530 МБ/с против 525;
  • скорость произвольного чтения — 95000 IOPS против 100000;
  • скорость произвольной записи — 84000 IOPS против 80000.

Вызывает замешательство, не так ли? При прочих равных, в случае с SATA производительность осталась практически на неизменном уровне, но в чем же тогда был смысл модернизации? Вкратце — в увеличении объема в прежнем форм-факторе, а также повышении отказоустойчивости накопителей, о чем мы подробно писали в одном из предыдущих материалов, посвященных 3D NAND. Что же касается скоростных показателей, то увы — здесь все упирается в особенности самого интерфейса, которые попросту не позволяют раскрыть весь потенциал технологии. Подробнее об этом мы и поговорим сегодня.

Несколько слов о SATA, AHCI и NVMe


Давным-давно, несколько десятилетий назад, винчестеры для персональных компьютеров использовали интерфейс ST-506/412, получивший свое название в честь первого 5.25-дюймового жесткого диска.


Первый 5.25-дюймовый жесткий диск Seagate ST-506

Главная его особенность заключалась в том, что плата самого HDD содержала лишь модули управления двигателем, актуатором и коммутатором головок, а также аналоговой обработки — все остальное располагалось в контроллере самого PC. Такой подход был достаточно дешев в реализации, однако уже тогда пропускная способность интерфейса оказалась ниже, чем потенциально могли обеспечить первые персональные компьютеры. Но в те времена торопиться было некуда, а по соотношению цены и качества все всех устраивало.

Однако прогресс не стоял на месте, а потребности частных и коммерческих пользователей неумолимо росли. Ни прежняя производительность, ни количество устройств (ST-506/412 позволял подключать лишь два диска) уже никого не могли удовлетворить, и разработчики стали искать альтернативу. Так появился ATA, который на долгие годы стал стандартом для всех ПК, чему в немалой степени способствовало расширение ATAPI, по сути представлявшее собой реализацию набора стандартов SCSI, применяющихся в высокопроизводительных серверах.

Через несколько лет параллельный интерфейс уперся в потолок 133 МБ/с. О себе давала знать и унаследованная от вышеупомянутого ST-506/412 особенность: на один канал подключалась пара дисковых устройства, нивелировать взаимное влияние которых друг на друга оказалось попросту невозможным. Так появился SATA, пропускная способность которого возросла до 150 МБ/с с возможностью дальнейшего наращивания, а благодаря использованию звездообразной топологии, каждый канал стал независимым.

По большому счету, именно топология являлась главным козырем, так как для медленных винчестеров того времени даже полторы сотни мегабайт были избыточными. Чтобы повысить их производительность, необходимо было оптимизировать запросы чтения/записи и минимизировать количество перемещений блока головок. И тут как нельзя кстати пришелся Advanced Host Controller Interface (AHCI) с поддержкой технологии Native Command Queuing (NCQ), то есть, аппаратной установкой очередности команд. Настоящего параллелизма здесь, конечно же, нет: хотя NCQ умеет принимать запросы из нескольких источников одновременно, их дальнейшая реорганизация осуществляется в пределах одной очереди, помогая лишь сократить количество перемещений пишущих головок и период ожидания нужного сектора на треке. С другой стороны, большего и не требовалось, ведь магнитная головка может находиться в каждый определенный момент времени лишь над одним конкретным цилиндром.

С появлением твердотельных накопителей ситуация изменилась с точностью до наоборот. Для SSD даже SATA III оказался тесен, и только разработка нового протокола помогла изменить ситуацию. Кардинально: если AHCI поддерживал лишь одну очередь глубиной 32 запроса, то представленный в августе 2012 года Non-Volatile Memory Host Controller Interface (NVMe) умел обрабатывать уже 65536 очередей глубиной 65536 каждая (то есть, 64К) и использовать многоядерные процессоры. Также добавилась оптимизация задержки прерываний, обеспечивающая практически полуторакратный выигрыш производительности.


Сравнение задержек операций чтения/записи между SAS, SATA и NVMe

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

Раскрыть потенциал: на что способны новые контроллеры?


Выбирая контроллеры для обновленной линейки WD Black SSD, мы пришли к неутешительному выводу: решения, предлагаемые Marvell, которые использовались ранее, равно как и продукция их конкурентов, попросту не отвечают нашим текущим потребностям. Единственным правильным шагом в данной ситуации стало создание собственных микроконтроллеров, благодаря чему мы получили, во-первых, полную независимость от сторонних разработчиков, а во-вторых — возможность тонко оптимизировать аппаратную платформу под особенности конкретных модификаций накопителей.


Операции распределены между вычислительными блоками

Так появился SanDisk 20-82-007011, в основу которого лег 28-нанометровый трехъядерный процессор на ARM Cortex-R, уже заметно превосходящий по мощности Marvell Eldora, задействованный ранее. Главным же новшеством стала передача части операций, обрабатываемых на программном уровне, специализированным вычислительным блокам: к таковым, например, относится чтение данных из флэш-памяти, обработка NVMe-команд, а также LDPC-кодирование. Последнее, к слову, стало трехуровневым и обрело эшелонированный характер. На практике это означает, что наиболее подходящий алгоритм подбирается исходя из степени износа ячеек памяти. Новый, только что установленный в компьютер WD Black 3D NAND SSD будет использовать облегченный вариант коррекции ошибок, отличающийся быстротой выполнения и минимальными затратами энергии. Напротив, когда ресурс флэш-памяти станет подходить к концу, в дело вступят более ресурсоемкие сценарии которые, хоть и замедлят чтение/запись, позволят предотвратить утрату ценной информации, при этом максимально продлив срок службы SSD.


Сценарий ECC подбирается в зависимости от состояния флэш-памяти

Сам контроллер поддерживает новейший протокол NVM Express 1.3, при этом в нем реализовано 4 линии PCI-E 3.0, а передача информации осуществляется по восьми каналам, так что проблем с пропускной способностью не возникает.

Мы поработали и над устранением еще одного «бутылочного горлышка», в роли которого выступал кэш. Как и ранее, здесь присутствует промежуточный SLC-буфер, однако фирменный алгоритм nCache 3.0 теперь научился переходить в режим direct-to-TLC и записывать данные напрямую в TLC-память. Что же это значит? Вы, как и раньше, пользуетесь всеми преимуществами скоростного кэша, однако если буфер переполнится, драматического падения производительности не произойдет, так как информация будет сбрасываться в память напрямую, минуя кэш. При этом в высокоскоростном SLC-режиме WD Black NVMe демонстрирует впечатляющие 2.4 ГБ/с последовательной записи, а прямая запись в TLC-память осуществляется на скорости 840 МБ/с, что более, чем в 2 раза быстрее по сравнению с предыдущей модификацией. Объем же кэш-памяти остался прежним, что позволило удешевить само устройство.


Динамика изменения производительности по мере заполнения кэш-памяти

Таким образом WD Black NVMe SSD получились действительно сбалансированными: обновленная аппаратная платформа идеально дополняет чипы 3D NAND, полностью раскрывая их потенциал. В сухом остатке имеем по-настоящему надежное решение, ориентированное на тех, кому рамки SATA кажутся слишком узкими, демонстрирующее достойные показатели производительности и способное потягаться за пальму первенства с большинством эталонных моделей в потребительском сегменте благодаря наилучшему соотношению цены и качества.

Комментарии (27)


  1. BD9
    30.11.2018 00:22

    ПМСМ, для местного сообщества статья слабовата. Можно выкладывать более технически сложные статьи.
    Например, могли бы написать о воплощённых возможностях NVM Express 1.3: значительная часть нововведений не является обязательной — напишите что сумели сделать. Т.ж. в NVME 1.3 вроде есть возможность перенести загрузочную запись из UEFI в накопитель NVME — как обстоят дела с этим у вас?


  1. Igor_O
    30.11.2018 01:32
    +1

    Динамика изменения производительности по мере заполнения кэш-памяти

    А что будет, если в момент, когда кэшпамять заполняется со скоростью 2.5 гига в секунду, отключат электричество?..
    — Оно все допишется на остатках электричества в конденсаторах?
    — Просто пропадет последняя операция?
    — Драйв идет в ближайшую помойку?
    — Другое (опишите в ответе).


    1. QuakeMan
      30.11.2018 02:00

      этот кэш тоже флеш память, но с хранением один бит на элемент


      1. Igor_O
        30.11.2018 02:16

        «Папа, с кем ты сейчас разговаривал?»
        Зачем нужен кэш с хранением один бит на элемент, если это тоже флэш? Почему не писать сразу? Или зачем говорить, что он кэш, если пишется сразу куда надо?
        И что будет, если при записи в кэш «один бит на элемент» выключится электричество?
        И каким образом весь диск не состоит из столь же быстрой флэш-памяти, как этот кэш? Все равно же делаем на флэш-памяти? Зачем что-то мудрить?


        1. AndreyKu
          30.11.2018 03:25

          Потому что SLC память более быстрая, но дорогая и не может достигать больших объемов. Поэтому она выполняет роль буфера.


          1. Igor_O
            30.11.2018 03:38

            Из семи вопросов вы ответили аж на один… Но вопросов-то гораздо больше… Самый простой из них — а что будет, когда SLC память сдохнет от слишком частой перезаписи? Она же тоже флэш. У нее же, конечно, 100К перезаписей, но эти 100К перезаписей круто, если это просто файлы на «диске». А когда это кэш — то это совсем мало, т.к. этот кэш перезаписывается постоянно. И если для простого файла 10К перезаписей — круто и много, то для кэша 100К перезаписей — вдруг не так круто и не так много. Всего одинадцать перезаписей в час — и SSD сдохнет за год!


            1. old_bear
              30.11.2018 04:02
              +1

              ЕМНИП, SLC-буфер это та же TLC-память, просто в другом режиме работы. Так что никто не мешает перемещать этот кеш для равномерности износа, как это делается с остальными данными.
              P.S. Вам бы умерить экспрессию своих вопросов в пользу прокачки умения гуглить ответы на эти вопросы. Ну или как минимум воспользоваться логикой и задать себе на вопрос: «почему не наблюдается массового отказа SSD в компьютерах, где они используются в качестве единственного диска?».


              1. Dioxin
                30.11.2018 09:13
                -2

                «P.S. Вам бы умерить экспрессию своих вопросов в пользу прокачки умения гуглить ответы на эти вопросы.»
                Т.е. хабр можно смело закрывать в пользу гугления?
                Железная логика.


                1. Firz
                  30.11.2018 10:23

                  Просто Хабр ? Тостер
                  Хотя и там вроде люди как-то тактичнее реагируют на ответы на свои вопросы.


              1. LexLiven
                01.12.2018 02:25

                А мне вот вообще в целом интересна ситуация с современными SSD. С разных сторон летит противоречивая информация об их надежности. Одни говорят, что SSD умирают просто от работы в винде, ибо файл подкачки и реестр перезаписываются слишком часто. Другие говорят, что запись туда оптимизирована, чтобы не гробить… Про линукс вообще молчат — там-то как?


                1. WesternDigital Автор
                  01.12.2018 02:42

                  Вы задали вопрос на опережение :) У нас готовится материал, посвященный вопросам надежности флэш-памяти вообще и 3D NAND в частности. Если отвечать коротко: долговечность твердотельных накопителей определяется не только архитектурой чипов и режимом записи, но и алгоритмами выравнивания износа, реализованными на уровне прошивки SSD. Суть этого процесса заключается в том, чтобы равномерно задействовать все блоки ячеек, а не переписывать раз за разом одни и те же. Поскольку операционная система использует LBA (логические блоки), а контроллер оперирует PBA (физическими блоками), с этим не возникает каких-либо проблем, и нагрузка действительно распределяется равномерно. Так что современные SSD устаревают гораздо раньше, чем успевают выработать свой ресурс.


                  1. LexLiven
                    01.12.2018 18:28

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


                1. old_bear
                  01.12.2018 06:12

                  За линукс не скажу.
                  А вот по поводу использования в среднестатистическом компьютере под win можно вполне спокойно ориентироваться на сроки гарантии производителей. Они уже все риски за нас взвесили и подсчитали.
                  Я обычно покупаю железо со сроком гарантии не меньше времени морального устаревания. IMHO, для SSD это где-то 5 лет.
                  Из моего личного опыта, ни один из купленных мною SSD (первые покупки были объёмом 40-80 гигов) не помер до того момента, как я решил его заменить на более ёмкий/скоростной. И меняю я их отнюдь не каждый год.


                1. geher
                  01.12.2018 14:43

                  Линукс очень даже неплохо живет на SSD, по крайней мере на то указывает мой личный опыт.
                  А умирают SSD чаще точно так же, как и HDD, от брака или кривой реализации конкретной модели.
                  Если рассматривать мою личную статистику (лично используемое, используемое знакомыми и в некоторых организациях, где работают знакомые), то в основном дохли контроллеры. Следующая по популярности проблема — повреждение данных при длительном хранении в обесточенном виде (например, в контейнерах для внешних ЖД). Причем для современных SSD распространенность первой проблемы несколько снизилась, а второй заметно повысилась.
                  Пока что почти все SSD служат до замены на более емкий (часто вместе с компьютером целиком). А это порой до 7 лет, а то и больше.


            1. EKV-ch
              30.11.2018 11:35

              Плохо будет, если сдохнет. А вы предполагали к-л другие варианты? А вообще, считаю, что было бы неплохо как для вас, так и для ряда читателей, если бы вы озадачились поиском ответов на несколько довольно таких простых вопросов: сравнение SLC, MLC и TLC в плане надёжности/ресурса циклов перезаписи, во сколько раз в среднем, при прочих равных, SLC в этом плане превосходит остальные; сравнение SLC, MLC и TLC в части цены за гигабайт, на сколько хуже в этом плане SLC? Дополнительно можно ещё попытаться сравнить оные в плане скорости чтения/записи (тут, правда, отличие (в лучшую сторону) одноуровневых ячеек будет не столь разительным). А после этого написали бы коммент с ответами: думаю, в этом случае полезно было бы не только вам, но и некоторым другим читателям.


        1. XakRU
          30.11.2018 06:35
          +1

          Можно бы сразу отправить гуглить отличия SLC и TLC, может узнаете еще о существовании MLC ячеек.

          Зачем нужен кэш с хранением один бит на элемент, если это тоже флэш? Почему не писать сразу?

          Рынок. TLC — дешевле, но медленнее. SLC — ну очень дорого, гораздо быстрее, ресурс циклов перезаписи выше чем у TLC.
          Или зачем говорить, что он кэш, если пишется сразу куда надо?

          В статье ведь сказано, что SLC не предназначен для постоянного хранения данных и используется в качестве временного буфера (кеша). В случае когда ячейки из SLC не успевают освободиться и ждут завершения записи в TLC, контроллер пишет данные в TLC напрямую, что также увеличивает срок эксплуатации SLC относительно TLC и снижает скорость записи до 840 МБ/с.
          И что будет, если при записи в кэш «один бит на элемент» выключится электричество?

          SLC — разновидность полупроводниковой технологии электрически перепрограммируемой памяти как и TLC.
          И каким образом весь диск не состоит из столь же быстрой флэш-памяти, как этот кэш?

          Цена. Стоимость SSD диска на SLC ячейках объемом в 512GB на SATAIII — около 6.400$ Разве обычным пользователям по карману?
          Все равно же делаем на флэш-памяти?

          Зачем что-то мудрить?

          Последние 3 вопроса по сути повторяют предыдущие вопросы.

          P.S. Не готов полагаться на TLC, пока готов доплатить за MLC.
          Являюсь обладателем SSD дисков Toshiba — RD400 на MLC ячейках, контроллер Toshiba TC58NCP070GSB (Marvell 88SS1093). Ждал что WD перейдут на MLC.


          1. DGN
            30.11.2018 10:58

            Вот кстати интересно. Казалось бы, есть массив флешпамяти, ее можно использовать как QLC/TLC/MLC/SLC — один и тот же диск сконфигурировал, и получил от терабайта медленной QLC до 256 гигов сверхбыстрой SLC. Ан нет, SLC выходит сильно дороже. Маркетинг?


            1. geher
              30.11.2018 12:38

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


              1. old_bear
                30.11.2018 13:48

                Понятно, что идеального превращения MLC в SLC не произойдёт, но всё же…
                В общем, погуглите по слову SLC-mode, найдёте много чего.
                Вот, на вскидку, как это делает Панасоник с SD-карточками.


              1. DGN
                30.11.2018 14:19

                На мой взгляд дилетанта, заряд с ячейки считывает АЦП, грубо говоря,

                SLC mode — 0-2В = 0, 3-5В = 1

                QLC mode 0-1В = 00, 1-2В = 01, 2-3В = 10, 3-4В = 11 все что пограничное, мы восстановим кодами коррекции, ну грубо говоря пятым битом 4-5В куда мы пишем 1 или 0 (четность).

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

                Но вполне возможно, честный SLC флеш и SLC режим многоуровнего флеша — совсем разные вещи, а не маркетинг.


              1. Mad__Max
                01.12.2018 03:56

                Сейчас это работает именно простым конфигурированием, настоящей SLC уже не найти, в лучшем случае eMLC для серверных моделей.
                В обычном диске типа описываемых в статье нет 2х разных видов памяти — она вся одинаковая. Но есть выделенные (ПО в прошивке) области с которыми контроллер работает сильно по разному. Вплоть до того, что на одном и том же диске размер «SLC» памяти может меняться в разных версиях прошивки.

                Естественно это разница в работе контроллере не сводится к примитивному «отбрасыванию» лишних бит в ячейке. Сам процесс записи и чтения существенно отличаются. DGN выше упрощенно описал основную суть, только еще общий диапазон «вкачиваемых зарядов» становится уже, за счет этого растет не только скорость чтения-записи и снижается уровень ошибок, но и долговечность (ресурс) при работе в SLC режиме серьезно увеличивается: меньше заряда(электронов) при записи прокачивается через барьер, меньшие напряжения используются — медленнее(минимум на порядок для SLC vs TLC) идет износ.


                1. lelik363
                  01.12.2018 10:08
                  +1

                  SSD c SLC всё ещё производится и даже выпускаются новые модели, просто они стали нишевыми. Вот несколько производителей ATP, Innodisk, Apacer и пр.


                  1. Mad__Max
                    01.12.2018 11:09

                    А, индустриальная электроника. Да туда я как-то не заглядывал.

                    Там SLС видимо сохранилось с другой целью — не большой ресурс по записи, а сохранность данных в условиях длительных воздействий относительно высоких температур. Это 2е «больное место» флэш памяти, а SLC и в нем имеет большее преимущество.


        1. koreec
          30.11.2018 07:06

          У этого флеша скорость записи сильно выше. Сделать весь диск из такой памяти — слишком дорого.


  1. lelik363
    30.11.2018 08:09

    Диск поддерживает режим dual port?


  1. gazella
    30.11.2018 17:21

    А нормалная поддержка Linux и серверных платформ появилась?
    Купленные еще в августе wd black nvme не заводились в линуксе через PCIe extension card, хотя любые другие samsung и всякие интелы работают без проблем.
    Поставлено на рабочий десктоп с windows напрямую на слот на материнской плате — работает нормально.
    Поддержка WD смогла ответить только Please bear in mind that as Linux is an open source Operating system we do not provide support or assistance, either on servers.


  1. stalinets
    30.11.2018 20:47

    Интересно, как флеш-память и прочая управляющая электроника ведёт себя при облучении обычным дневным светом интенсивностью до солнечного? Нельзя ли сделать дизайнерскую модель SSD, где будет плата из прозрачного текстолита (чтоб были видны слои с дорожками), местами в ней (а может, и прямо в кристаллы микросхем!) встроены микроскопические светодиоды, а сами микросхемы были «голыми» без корпусов, и всё это залито в монолит из прозрачного поликарбоната или другого пластика? Была же у WD модель жёсткого диска с прозрачным окошком в крышке, и это было круто. Рассматривать микросхемы памяти с окошком для УФ-стирания тоже можно очень подолгу. А можно ли сделать подобный описанный SSD?
    image