Страница 3: В чем разница между AHCI и NVMe?

Некоторые SSD, подобные Samsung SM951, вышли на рынок в двух версиях, с поддержкой AHCI или NVMe. Здесь разница заключается в программном интерфейсе, с помощью которого накопитель «общается» с host-системой. AHCI (Advanced Host Controller Interface) был опубликован в 2004 году. NVMe (Non-Volatile Memory Express) появился только в 2011, интерфейс намного моложе. Стандарт NVMe изначально оптимизировался под энергонезависимую флэш-память, которая весьма существенно отличается по характеристикам от традиционных жестких дисков.

M.2 SSD Samsung SM951 является OEM-продуктом, опционально доступным с интерфейсами AHCI или NVMe

Если вы когда-нибудь устанавливали Windows XP, представленную в 2001 году, на современные материнские платы, то знакомы с проблемой: необходимо либо выключить режим AHCI при установке, либо загрузить драйвер (кнопкой F6), чтобы утилита установки нашла накопитель. История повторяется с NVMe: «родная» поддержка была добавлена только в Windows 8.1, так что если вы устанавливаете Windows 7 на накопитель NVMe, придется загрузить соответствующий драйвер во время установки или создать специальный инсталляционный образ системы с hotfix от Microsoft, где добавлена поддержка NVMe для операционной системы 2009 года. Впрочем, если накопитель NVMe SSD вам нужен только для хранения данных, то hotfix для Windows 7 можно установить и на работающую операционную систему. После чего накопители NVMe будут распознаваться без проблем.

Преимущество стандартизированных технологий, таких как AHCI и NVMe, заключается в том, что Microsoft и другим разработчикам операционных систем необходимо разрабатывать только один драйвер, который будет поддерживать все накопители упомянутых стандартов. Конечно, никто не мешает производителям SSD разрабатывать собственные драйверы – например, Samsung предлагает собственный драйвер NVMe, который обеспечивает прирост производительности по сравнению с драйвером Microsoft NVMe. Но есть риск, что с обновлением версии Windows драйвер перестанет работать, поскольку производитель SSD прекратит поддержку и разработку драйвера. Подобная проблема хорошо знакома пользователям RAID-контроллеров.

M.2 SSD Samsung SSD 950 PRO доступен только с интерфейсом NVMe.

В чем же кроются преимущества NVMe перед AHCI? Имеет ли смысл покупать накопитель NVMe, а не ограничиться SSD AHCI? Как мы уже отмечали выше, интерфейс NVMe был оптимизирован под скоростные накопители с энергонезависимой флэш-памятью, в то время как разработчики AHCI ориентировались на сравнительно медленные механические HDD. В результате NVMe может похвастаться существенно меньшими задержками, а также улучшением параллельной обработки данных. Если AHCI поддерживает, максимум, 32 одновременных запроса, то у NVMe их количество увеличилось до 65.536, причем, в отличие от AHCI, поддерживается уже не одна очередь, а 65.536 очередей. Подобные высокие значения просто не имели смысла с механическими HDD, поскольку с ними они остаются недостижимыми.

Но теория не всегда реализуется на практике. Десятки или сотни тысяч одновременных запросов редко встречаются даже на серверах с интенсивной нагрузкой, не говоря уже о домашних компьютерах. Хорошо, если глубина очереди достигает нескольких одновременных запросов. Поэтому для дома NVMe пока дает ограниченные преимущества. Но для корпоративного сегмента поддержка NVMe весьма желанна, поэтому производители SSD сегодня концентрируются на данном стандарте. Но если ваша система с NVMe не совместима, вполне можно довольствоваться накопителем AHCI. Тот же Samsung SSD 950 PRO поддерживает только NVMe. Но если вам требуется быстрый SSD M.2 с поддержкой AHCI, обратите внимание на Samsung SM951. Впрочем, SM951 доступен только для OEM-клиентов, поэтому найти его в рознице проблематично.

Многие современные материнские платы оснащены слотом M.2, на фотографии он находится между слотами PCI Express

Остается вопрос: как узнать, что ваша система поддерживает NVMe? Со стороны операционной системы мы уже ответили на него выше: Windows с версией 8.1 и старше содержит драйвер NVMe, а для Windows 7 и соответствующих серверных версий ОС Microsoft предлагает hotfix. Современные дистрибутивы Linux тоже поддерживают накопители NVMe. Если вы хотите загружаться с накопителя NVMe, то следует проверить поддержку стандарта у материнской платы. Если такой поддержки нет, то загружаться с накопителя NVMe вы не сможете. Здесь следует проверять спецификации. Как правило, поддержка есть у всех материнских плат с чипсетом Intel X99 или старше.

Чем старее материнская плата, тем меньше вероятность найти поддержку NVMe. В случае нашей Asus P8Z77-V мы без проблем загрузились с Samsung SSD 950 PRO. Если в руководстве пользователя такой информации нет, имеет смысл провести поиск в Интернете или спросить у других пользователей. Но наличие UEFI является обязательным фактором. Если система настолько старая, что она не поддерживает UEFI, то и NVMe она вряд ли «понимает».