Что лучше nvme или ngff

Разные SSD: а есть ли разница? Страсти по NVMe

Оглавление

Вступление

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

Получилось так, что всего через два дня у меня на руках очутился накопитель Samsung SM951 в версии NVMe. Заурядно? И да, и нет одновременно.

Твердотельный накопитель Samsung SM951 на данный момент является единственным решением, доступным рядовому пользователю (де-факто, де-юре – это продукт для сборщиков компьютеров), которое выпускается в двух версиях – AHCI и NVMe. При этом их аппаратная база абсолютно идентична, а необходимый логический протокол включается на последнем этапе производства – в момент записи в накопитель его микрокода. Таким образом, у меня оказались оба этих SSD и появилась возможность без всяких теорий и допущений выяснить практическую пользу от нового протокола NVMe.

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

Обзор и тестирование пяти модулей оперативной памяти DDR4-2133 SK Hynix HMA451U6MFR8N0-TF объемом 4 Гбайт

реклама

Маркетинговая теория: NVMe – шаг к светлому будущему

Для связи устройств в системе нужен не только физический интерфейс, но и логический (программный). С середины двухтысячных для накопителей служила связка из физического SATA и логического AHCI, и если SATA поступательно развивался, пройдя через первую, вторую и третью ревизию с заметным ростом пропускной способности, то AHCI – с точки зрения производительности оставался практически неизменным. На данный момент AHCI (Advanced Host Controller Interface) уже 12 лет и он является преобладающим в отрасли.

Plextor M6e, Samsung XP941, Kingston HyperX Predator, Plextor M6e Black Edition – всеми этими первыми PCIe SSD в форм-факторе M.2 (ранее известном как NGFF) использовался протокол AHCI. Но он – лишь дань совместимости со старыми системами и в полной мере раскрыть потенциал таких SSD просто не в состоянии. Но это значит, что нет альтернативы, она есть – еще в 2011 году был представлен протокол NVM Express (он же NVMe, он же NVMHCI – Non-Volatile Memory Host Controller Interface).

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

реклама

Параметр AHCI NVMe
Максимальная глубина очереди запросов Одна очередь, до 32 команд в очереди 65 536 очередей до 65 536 команд в каждой очереди
Некэшируемые доступы к регистрам (2 000 циклов каждый) Шесть на команды вне очереди; девять на команды очереди Два на команду
MSI-X и управление прерываниями Одно прерывание, управление отсутствует 2 048 прерываний, передаваемых сообщениями или MSI-X (Message Signaled Interrupt Extended)
Многопоточность и параллелизм Требуется фиксация синхронизации для выдачи команды Не требуется
Эффективность для команд 4 Кбайт Параметры команды требуют два серийных запроса DRAM Все параметры получаются в одном 64-байтном запросе

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

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

Суровая действительность: NVMe – много головной боли

Даже сегодня абсолютно совместимым с протоколом NVMe является только совсем небольшой процент домашних ПК. Все остальное – от тех или иных ограничений до полной несовместимости. Причем речь идет не о каких-то совсем старых «печатных машинках» на базе, например, Intel Celeron Socket 478, мы говорим о вполне современных системах.

Наиболее сложно обстоят дела у AMD. Даже материнские платы под актуальные Socket FM2+ и Socket AM3+ отнюдь не всегда могут в совершенстве работать с NVMe SSD. Фактически полноценная поддержка реализована только для тех немногочисленных материнских плат нового поколения, где посадочное место M.2 есть изначально (вроде ASRock Fatal1ty 990FX Killer, ASRock A88M-G/3.1, ASUS 970 PRO Gaming/Aura (обзор которой сейчас готовится) или Gigabyte GA-990FX-Gaming). Впрочем, наличие M.2 не является обязательным внешним атрибутом: загрузка с NVMe SSD возможна на материнской плате MSI AMD 990FXA Gaming, на которой посадочное место M.2 отсутствует.

С платформой Intel немного проще, хотя и на ней хаоса предостаточно: протокол NVMe поддерживается почти всеми материнскими платами LGA1151 и LGA2011v3, значительным числом материнских плат на наборах системной логики Intel Z97/H97 и некоторым количеством – на Intel Z87. С более старыми платами на Intel X79, Intel Z77 и т.д. всё ещё сложнее и запутаннее. Но даже с новыми моделями материнских плат все равно надо быть осторожным. Например, материнская плата EVGA X99 Micro (не путать с EVGA X99 Micro2), по отзывам, с NVMe SSD загружаться не умеет.

Небольшая ремарка. Samsung SM951 в версии с протоколом AHCI отнюдь не является универсальным и полностью совместимым с всеми материнскими платами со слотами PCI-Express, в которые можно установить переходник M.2>PCIe. Тут возникает еще один фактор: в микрокоде контроллера Samsung SM951 (обеих версий) отсутствует модуль OpROM (как и у его предшественника Samsung XP941), поэтому материнская плата должна уметь грузиться с PCIe SSD самостоятельно. OpROM есть у Samsung 950 Pro, а также (по крайней мере, присутствовал на момент тестирования) в более старых Plextor M6e, Plextor M6e Black Edition и Kingston HyperX Predator. Относительно Plextor M8e, Patriot Hellfire, ADATA XPG SX8000 и ряда других SSD информации у меня пока нет. А проблему поддержки именно NVMe в ряде систем все-таки можно решить нестандартным способом. Для этого материнская плата должна отвечать трём условиям: должна иметь UEFI BIOS (напомню, что некоторые материнские платы Gigabyte на базе Intel P67/Z68 были выпущены сначала с AWARD BIOS, а потом получили обновление на UEFI BIOS), уметь загружаться с SSD без OpROM (если выбранная модель SSD его лишена), а владелец оной материнской платы должен обладать, выражаясь простонародным языком, «правильными версиями brain.dll и hands.dll». Точнее, суметь по общедоступной инструкции пересобрать BIOS, добавив необходимый модуль NVMe, и затем записать полученный микрокод во флеш-память материнской платы. Таким образом можно «привить» поддержку NVMe даже Intel P67.

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

Но с программной частью у пользователя также будет немало проблем. Для операционных систем Linux первый драйвер был включен в состав ядра 3.3 (январь 2012 года), но он обладал некоторыми недостатками, а более продвинутая и производительная реализация была осуществлена лишь в ядре 3.13 (январь 2014 года). Для OpenBSD поддержка была реализована и вовсе только в версии 6.0, выпущенной меньше двух месяцев назад (1 сентября 2016 года).

С творениями софтверного гиганта из Редмонда ситуация чуть проще. Соответствующий драйвер в операционные системы Windows был встроен, начиная с версии 8.1 (октябрь 2013 года). Для Windows 7 был выпущен отдельный пакет-обновление. Более ранние версии Windows драйвер NVMe не получили. Но простота ориентирования в Windows осложняется тем, что драйвер, созданный специалистами Microsoft, не настроен на максимальную производительность.

Драйвер «nvme» за авторством Microsoft оснащен дополнительной защитой данных от потери питания, а потому для накопителей, лишенных полной защиты от внезапного обесточивания, операции записи данных производятся с флагом запрета на буферизацию в оперативной памяти NAND-контроллера через команды FUA (Force Unit Access). В итоге все трансферы данных производятся в флеш-память напрямую, не позволяя микрокоду контроллера производить упорядочивание операций записи, что приводит к дополнительным издержкам и частичной потери производительности.

Отчасти проблему можно обойти, установив настройки как на скриншоте выше. Но для достижения максимальной производительности и полноценной работы необходима установка специального драйвера, который перенастроен надлежащим образом. На момент написания этих строк только три компании предлагали для своих накопителей такой драйвер: Samsung, Toshiba OCZ и Plextor. Причем для накопителей Plextor драйвер был опубликован только что. А вот Phison (например, Patriot Hellfire) и Silicon Motion (например, ADATA XPG SX8000) специальных драйверов пока не публиковали.

реклама

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

Источник

SATA SSD, NVMe SSD и HDD: изучаем разницу в реальных приложениях

Агитировать в 2018 году за установку SSD в настольные компьютеры и ноутбуки – это как рекомендовать сменить наконец старый кнопочный Ericsson на современный смартфон. Потому что SSD (как и смартфоны) сейчас можно игнорировать только по двум причинам: вы принципиально не хотите связываться с флэш-памятью или последние 10 лет вы провели на урановых рудниках Марса, не получая вестей с Земли.

Установка SSD в старый компьютер даст ему вторую жизнь, даже если процессор разменял первый десяток, а оперативной памяти едва набралось на минимальные системные требования операционной системы. Возвращение к ПК, где ОС установлена на обычный HDD поначалу вызывает шок – кажется, что компьютер заражен вирусней и вообще работает не так, как должен. Загрузка Windows за семь секунд, мгновенная реакция на действия пользователя – это всё про SSD.

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

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

AHCI или NVMe?

Для жестких дисков был и остается актуальным интерфейс SATA 3.0 с пропускной способностью до 600 Мбайт/с – HDD до этого предела едва ли вообще когда-нибудь доберутся. SSD же не просто уткнулись в эту планку, но и благополучно ее миновали, перейдя на форм-фактор M.2 и прямое подключение к скоростной шине PCI Express. SSD в размере 2,5’’ и интерфейсом SATA выпускаются до сих пор, но исключительно в низком ценовом сегменте. Конечно, даже такой накопитель даст чумовой прирост скорости реакции компьютера после обычного HDD, но если деньги на новый диск вы собирали не по рублю с завтраков, то можно выбрать что-нибудь поновее и побыстрее. А именно, SSD в форм-факторе M.2.

Вот тут и начинается разлюли-балалайка. Дело в том, что M.2 – это типоразмер компактных накопителей, которые устанавливают в ноутбуки или монтируют прямо на материнскую плату компьютера. M.2 сам по себе не является интерфейсом, это лишь слот. Поэтому дешевый SSD в размере M.2 вполне может гонять данные через шину SATA с соответствующим скоростным ограничением в 600 Мбайт/с – этот момент лучше уточнить в характеристиках устройства перед его покупкой.

Как понять, что перед нами суперскоростный накопитель? Удостовериться, что это NVMe-диск. В отличие от AHCI-контроллеров, которыми управляются SATA-накопители, NVMe-контроллер подключает хранилище прямо к шине PCI Express. Поэтому пределом пропускной способности для NVMe-диска будут не жалкие 600 Мбайт/с, как у SATA, а в шесть раз больше – 3,94 Гбайт/с (по факту, конечно, меньше). Скорость современных NVMe-SSD уже перешагнула за 2000 Мбайт/с, поэтому эффект от перехода на новый интерфейс налицо. Помимо этого, протокол NVMe принес ряд оптимизаций для работы с SSD, например, расширенную очередь команд.

Разъем M.2 начал появляться на материнских платах, но пока еще остается атрибутом дорогих моделей, поэтому NVMe-диски часто имеют версии с дополнительной платой-переходником в комплекте, которая вставляется в обычный слот PCI Express.

Пруфы будут?

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

Места подопытных кроликов великодушно согласились занять три модуля производства Kingston и один жесткий диск WD. А конкретно: Kingston SM2280S3G2/240G, Kingston SA1000M8/480G, Kingston SKC1000/480G и WD Black WD10003FZEX.

SM2280S3G2/240G, несмотря на достойный для системного диска объем 240 Гбайт, является самым бюджетным решением – всего 6750 рублей в среднем. Учитывая курс валют, это и правда ВСЕГО, зато 240 гигов гарантированно хватит и для операционной системы, и для многих необходимых программ, и даже пары-тройки игр с долгой загрузкой. Еще есть варианты на 120 и 480 Гбайт. Этот SSD – как раз тот случай, когда в современном компактном форм-факторе M.2 мы получаем накопитель, работающий по шине SATA. То есть выше теоретических 600 Мбайт/с скорости мы не увидим. Заявленная скорость чтения 550 Мбайт/с и записи 330 Мбайт/с уже намекает, что здесь не пахнет NVMe.

Модель SA1000M8/480G уже насчитывает 480 Гбайт, что даже избыточно для диска C:. Грамотно распоряжаться таким объемом помогает протокол NVMe, контроллер Phison PS5008-E8 и поддержка двух линий PCI Express. То есть, это не полноценный четырехлинейный NVMe, но все равно значительно превосходящий SATA интерфейс. Даже заявленные скоростные показатели составляют 1500 Мбайт/с на чтение и 900 Мбайт/с на запись, что несравнимо выше, чем у предыдущего SSD. Kingston позиционирует эту модификацию как универсальное решение ввиду наличия сразу двух вырезов (ключей) слотов M.2 – универсального B и скоростного M.

SKC1000/480G является самым производительным SSD компании. Он построен на мощнейшем четырехъядерном контроллере Phison PS5007-E7. Вообще Phison до недавних пор считались мэйнстримовыми контроллерами с весьма средненькой производительностью, уступавшей изделиям Marvell, но внезапно компания буквально выстрелила новыми контроллерами, уложившими конкурентов на лопатки.

Kingston обещают скорость чтения до 2700 Мбайт/с и записи до 1600 Мбайт/с. А теперь поднимитесь на несколько абзацев выше и посмотрите характеристики первого в тесте SSD. Трудно представить, зачем такая скорость может вообще потребоваться – чтобы быстро перегонять данные с диска на диск, потребуется второй такой же быстрый SSD, а при обработке данных (сжатие, кодирование) уже процессор не будет успевать справляться с ними.

Примечательное, что накопители серии SKC1000 опционально поставляются с HHHL-переходником на полноразмерный PCI Express на тот случай, если в настольном компьютере не обнаружится слота M.2.

Что же до жесткого диска, то WD Black WD10003FZEX на 1 Тбайт, то он принадлежит к самой быстрой серии WD Black, отличается отличными скоростными показателями и внушительной для малого объема ценой – около 5500 рублей.

Ожидания и реальность

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

Сперва прогоним стандартные бенчмарки.

WD Black WD10003FZEX

Между первым и вторым скриншотом буквально пропасть, отлично характеризующая разницу между SATA и NVMe-дисками. Что же HDD, то в тесте на чтение и запись маленьких блоков по 4 Кбайта всё совсем тоскливо. Особенно хорошо видно, как NVMe-накопители хорошо работают с очередью команд (CrystalDiskMark, строки Q32T1), обеспечивая двойной и больший отрыв от SATA-модификации. К тому же все SSD превзошли заявленные скоростные характеристики. Честность Kingston достойна уважения.

А теперь проверим диски в реальных сценариях в самых популярных отраслевых приложениях. Далеко не все из них завязаны на скорость хранилища, но всё же они демонстрируют влияние SSD на повседневную производительность.

До странного равные столбики? Отнюдь, как раз-таки очень предсказуемый финал. Дело в том, что приложения для рендеринга, кодирования или шифрования, такие как Blender, CINEBENCH, True Crypt, прежде всего утилизируют процессорную мощь, лишь понемногу загружая накопитель своими запросами. Получается, что на ту же скорость рендеринга 3D-модели быстрый SSD никак не влияет – подгруженные данные уходят в оперативную память, да там и крутятся, пока процессор трудится над визуализацией. Даже в играх установка SSD практически никак бы не повлияла на частоту кадров. Зато скорость загрузки сократилась бы в разы, если не на порядок.

Совсем другая картина наблюдается в приложениях, ведущих активное одновременное чтение и запись на диск. Это фото- и видеорендены (Premiere Pro, After Effects, Lightroom) и архиватор WinRAR. Жесткий диск явно проигрывает, не успевая одновременно вести запись и чтения ввиду особенностей работы HDD. А вот SSD совершенно побоку, что от него требуют одновременно считать и записать сразу несколько файлов – нет магнитных дисков, нет дорожек на них, нет магнитных движущихся головок, нет огромных задержек доступа к разным частям диска.

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

И как с этим жить?

Спокойно, потому что вы узнали правду, которую от вас скрывали: супербыстрые и супердорогие SSD щеголяют фантастическими скоростными показателями, но в ежедневном использовании разница с моделями попроще не так заметна. Конечно, это не значит, что SSD можно спокойно променять на емкий HDD – нельзя, потому что в первую очередь пострадает скорость случайного доступа, а вместе с ней скорость загрузки системы, приложений и реакции на действия пользователя.

Если при выборе SSD вы не руководствуетесь в первую очередь ценой, то лучше отдать предпочтение NVMe-модели с колоссальным запасом производительности, чем сэкономить тысячу рублей и получить устаревший еще несколько лет назад SATA-диск. 1500 или 2500 Мбайт/с на чтение показывает SSD – не важно, выбирайте согласно своему кошельку и предпочтениям.

Гораздо важнее стоит вопрос надежности SSD, которые имеют свойство «умирать» внезапно и без предварительных симптомов. Это одна из причин, почему лучше отдавать предпочтение брендовым накопителям с длительной гарантией и высоким временем наработки на отказ (или объемом записываемых данных). Kingston – бесспорный гранд мира флэш-памяти, который очень вовремя адаптировал для своих SSD контроллеры Phison.

Источник

NVMe стирает разницу между памятью и накопителями

История накопителей представляет собой гонку между носителями и вычислительными мощностями. На пути к компьютерной нирване встаёт узкое место – хранение миллиардов нулей и единиц. Самый новый из игроков на этом поприще – энергонезависимая память Non-Volatile Memory Express (NVMe), представляющая собой что-то вроде гибрида нескольких предыдущих технических решений.

В первом поколении домашних компьютеров в качестве накопителей использовались флоппи-диски и компакт-кассеты, но с ростом возможностей компьютеров постепенно росла и важность накопителей. К 1990-м большое распространение получили жёсткие диски, позволявшие хранить сначала мегабайты, а потом и гигабайты информации. В результате выросла необходимость в быстрой системе связи между накопителем и остальной системой. В то время чаще всего использовался интерфейс ATA (IDE) в режиме программного ввода-вывода Programmed Input-Output (PIO).

В результате технологии перешли на прямой доступ к памяти (DMA), интерфейс UDMA, также известный, как Ultra ATA и Parallel ATA, и основанные на этой системе интерфейсы SCSI в компьютерах Apple и большинстве серверов. В итоге Parallel ATA превратился в Serial ATA (SATA), а Parallel SCSI — в Serial Attached SCSI (SAS). SATA в основном использовался в ноутбуках и настольных компьютерах до прихода NVMe и твердотельных накопителей.

Все эти интерфейсы разрабатывались с тем, чтобы не отставать от накопителей. В этом смысле, NVMe выбивается из общей картины своей интеграцией в систему. Также NVMe отличается тем, что не привязан к какому-то определённому интерфейсу или коннектору, что может сбить с толку. Кто может разделить M.2 и U.2, не говоря уже о том, какой протокол использует интерфейс, будь то SATA или NVMe?

Давайте-ка разбираться в чудесном и странном мире NVMe.

Обманчивый внешний вид


Элементы SATA Express, функционально схожие с M.2.

Попросите любого человека показать вам слот для NVMe на материнской плате, и скорее всего вам покажут изображение слота M.2, поскольку он стал наиболее популярным для твердотельных накопителей (ТТН) в потребительской электронике. При этом даже слот M.2 со вставленным в него твердотельным накопителем может не относиться к NVMe, поскольку этот интерфейс использует и SATA.

На плате рядом со слотом M.2 часто указывают, какую технологию он поддерживает. Также хорошей идеей будет почитать инструкцию к материнке. Причина путаницы в том, что изначально для ТТН существовал стандарт Mini-SATA (mSATA), использовавший форм-фактор PCIe Mini Card, который потом развился до форм-фактора М.2 и интерфейса U.2. Последний больше похож на интерфейсы SATA и SAS, и комбинирует два канала, SATA и PCIe, в один интерфейс для подключения ТТН.

Тем временем стандарт М.2 (после краткого экскурса в недолго существовавший стандарт SATA Express) расширили с тем, чтобы поддерживать не только SATA, но и AHCI с NVMe. Поэтому слоты М.2 часто неправильно называют «слотами NVMe», когда на самом деле NVMe – это протокол, основанный на PCIe, не определяющий никаких форм-факторов или типов коннекторов.


Интерфейс М.2 с ключами B и M

Тем временем сам по себе форм-фактор М.2 довольно разносторонний – или запутанный, это кому как. Физически он может быть шириной в 12, 16, 22 и 30 мм, и поддерживать длины от 16 до 110 мм. На краю разъёма наносится последовательность меток, обозначающих функциональность, и совпадающих с метками на самом слоте. Чаще всего это метки В и М из списка ключевых меток, в котором, например, есть следующее:

A: 2x PCIe x1, USB 2.0, I2C и DP x4.
B: PCIe x2, SATA, USB 2.0/3.0, аудио, и т.д.
E: 2x PCIe x1, USB 2.0, I2C, etc.
M: PCIe x4, SATA и SMBus.

Получается, что физических размеров карты расширения М.2 бывает аж 32 штуки, и это ещё до того, как мы учтём 12 возможных вариантов модификаций из списка. К счастью, в основной массе промышленность, судя по всему, пришла к общему стандарту в 22 мм ширины для карт накопителей, варианты длин которых ограничены. В итоге ТТН стандарта NVMe имеют маркировку типа «2242», что означает 22 мм ширины и 42 мм длины. Карточки ТТН могут быть отмечены буквами В, М или обеими.

Важно отметить, что сегодня слоты М.2 активно используются в качестве расширения PCIe в стеснённых условиях. Поэтому карточки WiFi часто имеют форм-фактор М.2.

Определяя NVMe

Всё это приводит нас к основному определению NVMe: это стандартный интерфейс для накопителей, напрямую подсоединяемых к PCIe. От SATA он отличается тем, что первый преобразует протокол PCIe в протокол SATA, который затем приходится интерпретировать специальному чипу на накопителе перед тем, как можно будет выполнять какие-либо команды, связанные с хранением данных.

Вместо этого NVMe определяет интерфейс, который напрямую можно использовать в любой ОС, имеющей NVMe-драйвер. Команды отправляются на NVMe-накопитель, выполняющий их для чтения или записи или проводящий какие-то операции обслуживания типа TRIM. Поскольку можно положиться на то, что любое устройство, представившееся как NVMe-устройство, представляет собой ТТН (NAND Flash, 3D XPoint, и т.д.), протокол NVMe разработан в расчёте на низкие задержки и большую скорость передачи пакетов.


Optane SSD от Intel типа 3D XPoint работает ровно вне зависимости от нагрузок

Недавно популярность обрела такая особенность NVMe, как местный буфер памяти, Host Memory Buffer (HMB). Это попытка избавиться от необходимости буферизовать данные в DRAM используя ТТН типа NAND Flash. Особенность использует часть памяти системы в качестве буфера, относительно мало теряя при этом в быстродействии, при этом буфер в основном используется для кэширования таблицы адресов.

В долгосрочной перспективе, с учётом темпов развития накопителей, такие технологии, как 3D XPoint делают ненужными даже подобные хитрости. Скорость доступа к той же 3D XPoint ближе к показателям DRAM, чем к NAND Flash. Поскольку ТТН типа 3D XPoint не нуждаются в DRAM-буфере, увеличение их популярности может привести к тому, что NVMe будут оптимизировать уже под них.

Взламывая NVMe


Память на магнитных сердечниках 64×64 (4 кБ) [пользователь closegl утверждает, что тут ошибка, и имеется в виду 32×32, 1 кБ ]

Стоит задуматься, а что ещё можно сделать с NVMe, кроме как купить ТТН и засунуть его в слот M.2 B или М. Тут нужно решить, что вам больше интересно – взлом накопителя (пусть это будет лишь некая разновидность DRAM or SRAM), или же самого слота М.2.

Полноразмерные слоты PCIe имеют большой размер, а карты расширения предоставляют много места для таких громоздких компонентов, как BGA-чипы и гигантские системы охлаждения. Карты расширения М.2 наоборот, предназначены для мелких и компактных решений, способных уместиться в ноутбуке. Можно, к примеру, скомбинировать FPGA с нужными блоками железа SerDes и PCIe в форм-факторе M.2, и создать компактную карту расширения для ноутбуков и встраиваемых устройств.

Недавние хаки предлагают добавить поддержку NVMe к Raspberry Pi, заменить ТТН в Pinebook Pro WiFi-картой, и считывать NVMe Flash накопитель от айфона при помощи ZIF-адаптера для PCIe.

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

Заключение

Оглядываясь назад на десятилетия развития вычислительной техники, видно, что различие между памятью и накопителями существовало всегда. Причём памятью всегда служили энергозависимые устройства типа SRAM или DRAM. В последнее время это различие становится всё менее значимым. NAND Flash с NVMe-интерфейсом уже обещают нам потенциально очень низкие задержки и скорость в несколько гигабайт в секунду (особенно с использованием PCIe 4.0) но и это не конец истории.

Самая горячая новинка – это DIMM «постоянной памяти», размещаемые в обычных слотах памяти. Они используют твердотельную технологию Intel Optane, позволяющую увеличивать объём памяти в системе до 512 Гб на модуль. Эти модули, естественно, пока что работают только в серверах Intel. Используются они для буферизации баз данных, большие объёмы которых не дают использовать в качестве буфера обычную память (например, терабайты DDR4 DIMM).

Если у нас будет очень быстрый и энергонезависимый накопитель, соединённый с контроллером памяти процессора напрямую, мы сможем уменьшить задержки до абсолютных минимумов. И хотя 3D XPoint (как разновидность памяти с изменением фазового состояния) пока ещё не такая быстрая, как DDR SDRAM, она демонстрирует нам, что может появиться после NVMe, когда разница между «памятью системы» и «хранилищем данных» совсем исчезнет или изменится до неузнаваемости.

Источник

Читайте также:  чем лучше покрыть мангал
Библиотека с советами