Протокол Non-Volatile Memory Express, пришедший на смену разработанным в начале 2000-х протоколам SATA и SAS, обеспечивает обмен данными напрямую между компьютером и флэш-памятью (SSD-дисками) через высокоскоростную шину PCIe, значительное сокращая издержки передачи данных.
Non-Volatile Memory Express (NVMe) – это протокол передачи информации для ускоренного доступа к данным, записанным на устройствах хранения на базе флэш-памяти, например, твердотельных дисках SSD. Благодаря высокой скорости и пропускной способности, а также за счет массового параллелизма NVMe обеспечивает обмен данными напрямую между компьютером и флэш-памятью через высокоскоростную шину Peripheral Component Interconnect Express (PCIe).
Протокол NVMe пришел на смену разработанным в начале 2000-х для работы с жесткими дисками протоколам Serial Advanced Technology Attachment (SATA) и Serial Attached SCSI (SAS). Группа NVM Express, отвечающая за стандартизацию NVMe, разработала расширения этой спецификации для различных сетевых протоколов передачи данных, включая TCP, Fibre Channel и InfiniBand.
Спецификация NVMe описывает высокопроизводительный протокол обмена данными между хост-компьютером и флэш-памятью, который обеспечивает значительное сокращение издержек передачи данных по сравнению с классическими SAS и SATA. Еще одно важная особенность NVMe – оптимизация для архитектуры доступа к памяти Non-Uniform Memory Access (NUMA), что позволяет нескольким процессорным ядрам управлять очередями команд доступа к данным. В результате NVMe реализует массивно-параллельную передачу данных с минимальными задержками.
Преимущества технологии. В числеважных преимуществ NVMe – возможность параллельно выполнять несколько операций ввода-вывода (I/O) при обслуживании запросов от многоядерного процесса и за счет этого увеличить пропускную способность каналов передачи данных. В целом протокол NVMe может выполнять более 1 млн операций ввода-вывода в секунду (IOPS).
В отличие от используемого с дисками SAS/SATA интерфейса Advanced Host Controller Interface (AHCI), который может обмениваться данными только с контроллером диска, NVMe позволяет накопителю напрямую обмениваться данными с центральным процессором хоста. У NVMe намного более длинная очередь команд работы с данными (64 тысяч вместо только одной очереди у AHCI), и в одной очереди может быть намного больше команд, чем у AHCI (64 тысяч против 32). Наконец, NVMe намного меньше загружает процессорные мощности хоста, чем AHCI.
NVMe позволяет использовать различные форм-факторы твердотельных накопителей, включая M.2 и U.2.
У NVMe высокая энергоэффективность: в ждущем режиме накопитель NVMe потребляет примерно в 20 раз меньше электроэнергии, чем в активном.
Недостатки. Разумеется, у накопителей NVMe SSD есть и свои недостатки, а именно:
- отсутствие совместимости с устаревшими системами хранения и серверами;
- высокая стоимость, из-за чего их невыгодно использовать для хранения больших объемов «холодных» данных.
Кроме того, большинство выпускаемых сегодня накопителей NVMe SSD выполнены в форм-факторе M.2, что ограничивает выбор моделей накопителей для систем хранения.
Применение. Наиболее эффективным считается использование накопителей NVMe SSD для таких приложений, как:
- базы данных и серверы web-сайтов;
- приложения, которые в реальном времени записывают и извлекают большие массивы данных, например, аналитические приложения для финансового сектора и приложения электронной коммерции, ИИ и машинного обучения;
- суперкомпьютерные вычисления, особенно если для них нужно обеспечить минимальную задержку доступа к данным;
- профессиональная обработка графики и видео.