Вольный перевод обзорной листовки, представленной на сайте организации
http://www.nvmexpress.org/white-papers/
Собственно, документ: http://www.nvmexpress.org/wp-content/uploads/NVMe_Overview.pdf
NVM Express® (NVMe ™) - высокопроизводительный и масштабируемый интерфейс хост-контроллера. Оптимизирован для удовлетворения потребностей систем предприятия и клиентских систем, использующих твердотельные накопители с интерфейсом PCI Express®.
Интерфейс разработан, чтобы выйти за рамки "древней" технологии жесткого диска, NVMe построен с нуля и учитывает особенности работы с энергонезависимой памятью (NVM, Non-volatile memory - https://ru.wikipedia.org/wiki/Энергонезависимая_память). NVMe предназначен для обеспечения эффективного доступа к устройствам хранения данных на энергонезависимой памяти, построенных как на современной технологии NAND флэш, так и на будущих высокопроизводительных типах памяти.
Есть несколько ключевых характеристик, на которые ориентирован NVMe - пропускная способность, IOPs (количество операций ввода/вывода в секунду) и латентность (вносимые задержки).
Например, максимально возможное значение IOPs для интерфейса Serial ATA - 200 000, в то время как устройства NVMe уже продемонстрировали уровень более 1 000 000 IOPS.
Поскольку NVMe поддерживает передачу как через собственную структуру, так и Fibre Channel fabric в качестве транспортного протокола (NVME Over Fabrics, NVMe Over Fibre Channel - обзор Qlogic ), а также прямой доступ к памяти RDMA), NVM Express может поддерживать гораздо более высокую пропускную способность, чем SATA или SAS. Например, хост-контроллер x4 PCI Express Gen3 (третьего поколения) обеспечивает скорость передачи 4 Гбит / с.
Наконец, запоминающие устройства следующих поколений - как видится - будут иметь задержку на чтение, составляющую микросекунды. Для оптимальной работы с такими системами потребуется протокол, обеспечивающий суммарную задержку канала передачи из конца в конец менее 10 микросекунд, включая задержки, привносимые программным обеспечением.
NVMe представляет собой комплексную законченную архитектуру хранения, включающую как средства (стек) программного обеспечения, так и аппаратные устройства и системы
ИСТОРИЯ
NVM Express Work Group - рабочая группа NVM Express зарегистрирована в 2014 году как консорциум и отвечает за разработку спецификаций протокола NVM Express.
В настоящее время организация насчитывает более 100 компаний-членов. Заинтересованные в присоединении должны посетить www.nvmexpress.org/join-nvme.
Версия 1.0 спецификации NVM Express, разработанная совместно компаниями-членами, была выпущен на 1 марта 2011г. Версия 1.1 спецификации была выпущена 11 октября 2012 года, а версия 1.2 - 3 ноября 2014.
В ноябре 2015 г. выпущена спецификация Интерфейс Управления NVM Express (NVMe-MI), обеспечивающая управление удаленными компонентами и системами NVMe. NVMe-MI реализует общую базовую функцию управления всеми установленными устройствами и системами NVMe и метод расширения функционала дополнительными функциями. Команды интерфейса управления реализуют:
- запрос и настройку конфигурации,
- запрос текущего состояния системы,
- управление встроенным программным обеспечением,
- управления пространством имен
-, управление безопасностью
и т.д.
Организация NVM Express в настоящее время работает над версией 1.3, которая, как ожидается, будет завершена в течение 2016 года. Версия 1.3 учитывает особенности мобильных устройств, в частности - их потребность в режиме низкого энергопотребления. Когда версия 1.3 будет завершена, NVMe станет единственным интерфейсом систем хранения данных, доступным как с мобильных устройств, так и с систем хранения ЦОД.
Видя необходимость в управлении большим количеством устройств в системе, а также управление устройствами, расположенными на расстоянии, консорциум начал в 2014 и закончил в 2016 году работу над спецификацией NVMe Express over Fabrics, обеспецивающей доступ к отдельным устройствам NVMe и к целым системам хранения NVMe через сети, такие как Ethernet, Fibre Channel и InfiniBand®,
ПРЕИМУЩЕСТВА ИНТЕРФЕЙСА
Так как NVMe как протокол хранения разработан с нуля, он не имеет ограничений, присущих протоколам хранения данных, предназначенных для жестких дисков.
Протокол NVMe поддерживает несколько глубоких очередей, что является усовершенствованием по сравнению с традиционными протоколами SAS и SATA. Типичные устройства SAS поддерживает до 256 команд и устройств SATA поддерживают до 32 команд в одной очереди. Эти показатели были достаточными для технологий жестких дисков, но не соответствуют возможностям, соответствующим устройствам текущего и следующих поколений NVM технологий.
В противоположность этому, NVMe поддерживает команды 64K в очереди и до 64К очередей. Эти очереди сконструированы таким образом, что команды ввода / вывода и ответы на эти команды обрабатываются на одном и том же ядре процессора. Каждое приложение или поток может иметь свою собственную независимую очередь, поэтому не требуется блокировка ввода / вывода. В случае необходимости, можно использовать возможности параллельной обработки многоядерных процессоров. NVMe также поддерживает MSI-X (Message Signaled Interrupts, MSI, Прерывания, инициируемые сообщениями) и управление прерываниями, которые предотвращают возникновение узких мест (бутылочных горлышек) на уровне процессора и позволяет существенно повысить масштабируемость системы.
. Ответ на запрос к устройству NVM возвращается на обработку в то же ядро, которое формировало запрос. Эффективнее возобновить прерванный в случае надобности процесс. Прерывание в ядре инициируется пришедшим от устройства ответом. Ядро процессора не простаивает попусту, но оперативно включается в работу по получении ответа от устройства.
Кроме того, NVMe имеет более простой набор команд, составляющий меньше половины числа тактов, необходимых процессору для обработки запросов ввода / вывода SAS или SATA. Благодаря этому, достигается более высокий показатель IOPS за такт инструкций процессора. NVMe также поддерживает расширенные функции - например, управление питанием, выводящие общую эффективность интерфейса за рамки только ввода / вывода.
http://www.nvmexpress.org/white-papers/
Собственно, документ: http://www.nvmexpress.org/wp-content/uploads/NVMe_Overview.pdf
NVM Express® (NVMe ™) - высокопроизводительный и масштабируемый интерфейс хост-контроллера. Оптимизирован для удовлетворения потребностей систем предприятия и клиентских систем, использующих твердотельные накопители с интерфейсом PCI Express®.
Интерфейс разработан, чтобы выйти за рамки "древней" технологии жесткого диска, NVMe построен с нуля и учитывает особенности работы с энергонезависимой памятью (NVM, Non-volatile memory - https://ru.wikipedia.org/wiki/Энергонезависимая_память). NVMe предназначен для обеспечения эффективного доступа к устройствам хранения данных на энергонезависимой памяти, построенных как на современной технологии NAND флэш, так и на будущих высокопроизводительных типах памяти.
Есть несколько ключевых характеристик, на которые ориентирован NVMe - пропускная способность, IOPs (количество операций ввода/вывода в секунду) и латентность (вносимые задержки).
Например, максимально возможное значение IOPs для интерфейса Serial ATA - 200 000, в то время как устройства NVMe уже продемонстрировали уровень более 1 000 000 IOPS.
Поскольку NVMe поддерживает передачу как через собственную структуру, так и Fibre Channel fabric в качестве транспортного протокола (NVME Over Fabrics, NVMe Over Fibre Channel - обзор Qlogic ), а также прямой доступ к памяти RDMA), NVM Express может поддерживать гораздо более высокую пропускную способность, чем SATA или SAS. Например, хост-контроллер x4 PCI Express Gen3 (третьего поколения) обеспечивает скорость передачи 4 Гбит / с.
Наконец, запоминающие устройства следующих поколений - как видится - будут иметь задержку на чтение, составляющую микросекунды. Для оптимальной работы с такими системами потребуется протокол, обеспечивающий суммарную задержку канала передачи из конца в конец менее 10 микросекунд, включая задержки, привносимые программным обеспечением.
NVMe представляет собой комплексную законченную архитектуру хранения, включающую как средства (стек) программного обеспечения, так и аппаратные устройства и системы
ИСТОРИЯ
NVM Express Work Group - рабочая группа NVM Express зарегистрирована в 2014 году как консорциум и отвечает за разработку спецификаций протокола NVM Express.
В настоящее время организация насчитывает более 100 компаний-членов. Заинтересованные в присоединении должны посетить www.nvmexpress.org/join-nvme.
Версия 1.0 спецификации NVM Express, разработанная совместно компаниями-членами, была выпущен на 1 марта 2011г. Версия 1.1 спецификации была выпущена 11 октября 2012 года, а версия 1.2 - 3 ноября 2014.
В ноябре 2015 г. выпущена спецификация Интерфейс Управления NVM Express (NVMe-MI), обеспечивающая управление удаленными компонентами и системами NVMe. NVMe-MI реализует общую базовую функцию управления всеми установленными устройствами и системами NVMe и метод расширения функционала дополнительными функциями. Команды интерфейса управления реализуют:
- запрос и настройку конфигурации,
- запрос текущего состояния системы,
- управление встроенным программным обеспечением,
- управления пространством имен
-, управление безопасностью
и т.д.
Организация NVM Express в настоящее время работает над версией 1.3, которая, как ожидается, будет завершена в течение 2016 года. Версия 1.3 учитывает особенности мобильных устройств, в частности - их потребность в режиме низкого энергопотребления. Когда версия 1.3 будет завершена, NVMe станет единственным интерфейсом систем хранения данных, доступным как с мобильных устройств, так и с систем хранения ЦОД.
Видя необходимость в управлении большим количеством устройств в системе, а также управление устройствами, расположенными на расстоянии, консорциум начал в 2014 и закончил в 2016 году работу над спецификацией NVMe Express over Fabrics, обеспецивающей доступ к отдельным устройствам NVMe и к целым системам хранения NVMe через сети, такие как Ethernet, Fibre Channel и InfiniBand®,
ПРЕИМУЩЕСТВА ИНТЕРФЕЙСА
Так как NVMe как протокол хранения разработан с нуля, он не имеет ограничений, присущих протоколам хранения данных, предназначенных для жестких дисков.
Протокол NVMe поддерживает несколько глубоких очередей, что является усовершенствованием по сравнению с традиционными протоколами SAS и SATA. Типичные устройства SAS поддерживает до 256 команд и устройств SATA поддерживают до 32 команд в одной очереди. Эти показатели были достаточными для технологий жестких дисков, но не соответствуют возможностям, соответствующим устройствам текущего и следующих поколений NVM технологий.
В противоположность этому, NVMe поддерживает команды 64K в очереди и до 64К очередей. Эти очереди сконструированы таким образом, что команды ввода / вывода и ответы на эти команды обрабатываются на одном и том же ядре процессора. Каждое приложение или поток может иметь свою собственную независимую очередь, поэтому не требуется блокировка ввода / вывода. В случае необходимости, можно использовать возможности параллельной обработки многоядерных процессоров. NVMe также поддерживает MSI-X (Message Signaled Interrupts, MSI, Прерывания, инициируемые сообщениями) и управление прерываниями, которые предотвращают возникновение узких мест (бутылочных горлышек) на уровне процессора и позволяет существенно повысить масштабируемость системы.
. Ответ на запрос к устройству NVM возвращается на обработку в то же ядро, которое формировало запрос. Эффективнее возобновить прерванный в случае надобности процесс. Прерывание в ядре инициируется пришедшим от устройства ответом. Ядро процессора не простаивает попусту, но оперативно включается в работу по получении ответа от устройства.
Кроме того, NVMe имеет более простой набор команд, составляющий меньше половины числа тактов, необходимых процессору для обработки запросов ввода / вывода SAS или SATA. Благодаря этому, достигается более высокий показатель IOPS за такт инструкций процессора. NVMe также поддерживает расширенные функции - например, управление питанием, выводящие общую эффективность интерфейса за рамки только ввода / вывода.
Диаграмма Относительных IOPS/ ядро процессора для различных SAS, SATA интерфейсов в сравнении с NVMe |
Сравнительная диаграмма циклов процессора / операций ввода-вывода для различных SAS, SATA интерфейсов в сравнении с NVMe |