Решение принято: начиная с чипсета 9-й серии жесткие диски подключаются напрямую к шине PCI Express, минуя SATA-контроллер. В итоге, производительность дисковой подсистемы увеличивается в полтора-два раза с соблюдением всех требований AHCI-стандарта, т.е. без потери программной совместимости:
Такова надводная часть айсберга. Каковы отдаленные последствия, связанные с нововведением? Обратимся к спецификации NVM Express, регламентирующей логику работы твердотельного диска на PCIe-шине.
Место интерфейса NVMe отлично иллюстрирует статья Дейла Ландсмена из SanDisk «AHCI and NVMe as Interfaces for SATA».
Из нее всем интересующимся полезно будет узнать, что «AHCI was developed at a time when the purpose of the HBA in a system was to connect the CPU/Memory subsystem with the much slower rotating media-based storage subsystem. Such an interface has some inherent inefficiency when applied to SSD devices, which behave much more like DRAM than spinning media».
Иными словами, контроллер AHCI разработан во времена господства электромеханических накопителей с целью оптимизации их взаимодействия с системой. В частности, изменения очередности команд передачи данных для минимизации механических перемещений блока магнитных головок, а также оптимальной синхронизации процессов чтения и записи с вращением диска. Очевидно, для твердотельных накопителей, применяющих иные принципы хранения информации, и работающих на больших скоростях, использование архитектуры AHCI является временным выходом, продиктованным требованиями совместимости. Полное раскрытие скоростного потенциала SSD дисков, а также поддержка современных технологий виртуализации станут возможными только при использовании контроллера, оптимизированного для данного типа накопителей.
Выше проиллюстрированы три возможных метода подключения устройства хранения данных:
Вернемся к спецификации NVMe. При ее разработке изначально учитывалась возможность поддержки Single-Root Input-Output Virtualization:
Тем, кто незнаком с концепцией SR-IOV, в двух словах сообщим, что сие суть дальнейшее развитие идеи виртуализации, пришедшей на периферию. Физический девайс с помощью SR-IOV представляется как совокупность виртуальных устройств со всеми вытекающими последствиями: разграничение доступа, повышение производительности etc. В настоящее время используется виртуализация центрального процессора VT-x, виртуализация адресного пространства для bus-master устройств VT-d, но продвижение в сторону виртуализации периферийных устройств пока затруднено. Вернее так: на рынке уже полно сетевых адаптеров, которые поддерживают SR-IOV, но слишкомдалеки они от народа дороги они. Массового психоза, связанного с раздвоением и прочим клонированием девайсов не наблюдается. Пока нет виртуализируемых USB-контроллеров (а жаль, кстати!), как следствие – флеш-дисков и других накопителей, в т.ч. SATA. Так вот – будут.
Есть, правда, одно «но». В силу того, что NVMe-контроллер становится частью жесткого диска, а сам накопитель подключается как PCI Express устройство, поддержка SR-IOV будет зависеть не только от чипсета и платформы, но и от накопителя. Это означает дальнейшую дивергенцию любительского (офисного) и профессионального (серверного) оборудования. Таковы перспективы будущего, на наш взгляд.
Такова надводная часть айсберга. Каковы отдаленные последствия, связанные с нововведением? Обратимся к спецификации NVM Express, регламентирующей логику работы твердотельного диска на PCIe-шине.
Несколько слов о Non-Volatile Memory Host Controller Interface Specification
Место интерфейса NVMe отлично иллюстрирует статья Дейла Ландсмена из SanDisk «AHCI and NVMe as Interfaces for SATA».
Из нее всем интересующимся полезно будет узнать, что «AHCI was developed at a time when the purpose of the HBA in a system was to connect the CPU/Memory subsystem with the much slower rotating media-based storage subsystem. Such an interface has some inherent inefficiency when applied to SSD devices, which behave much more like DRAM than spinning media».
Иными словами, контроллер AHCI разработан во времена господства электромеханических накопителей с целью оптимизации их взаимодействия с системой. В частности, изменения очередности команд передачи данных для минимизации механических перемещений блока магнитных головок, а также оптимальной синхронизации процессов чтения и записи с вращением диска. Очевидно, для твердотельных накопителей, применяющих иные принципы хранения информации, и работающих на больших скоростях, использование архитектуры AHCI является временным выходом, продиктованным требованиями совместимости. Полное раскрытие скоростного потенциала SSD дисков, а также поддержка современных технологий виртуализации станут возможными только при использовании контроллера, оптимизированного для данного типа накопителей.
Выше проиллюстрированы три возможных метода подключения устройства хранения данных:
- Legacy SATA – традиционный SATA накопитель;
- SATA Express / AHCI – накопитель с физическим интерфейсом SATA Express и интегрированным контроллером, совместимым со стандартом AHCI;
- SATA Express / NVMe – накопитель с физическим интерфейсом SATA Express и интегрированным контроллером с архитектурой NVMe.
SR-IOV как зеркало хардверной революции
Вернемся к спецификации NVMe. При ее разработке изначально учитывалась возможность поддержки Single-Root Input-Output Virtualization:
Тем, кто незнаком с концепцией SR-IOV, в двух словах сообщим, что сие суть дальнейшее развитие идеи виртуализации, пришедшей на периферию. Физический девайс с помощью SR-IOV представляется как совокупность виртуальных устройств со всеми вытекающими последствиями: разграничение доступа, повышение производительности etc. В настоящее время используется виртуализация центрального процессора VT-x, виртуализация адресного пространства для bus-master устройств VT-d, но продвижение в сторону виртуализации периферийных устройств пока затруднено. Вернее так: на рынке уже полно сетевых адаптеров, которые поддерживают SR-IOV, но слишком
Есть, правда, одно «но». В силу того, что NVMe-контроллер становится частью жесткого диска, а сам накопитель подключается как PCI Express устройство, поддержка SR-IOV будет зависеть не только от чипсета и платформы, но и от накопителя. Это означает дальнейшую дивергенцию любительского (офисного) и профессионального (серверного) оборудования. Таковы перспективы будущего, на наш взгляд.
Используемая литература
- AHCI and NVMe as Interfaces for SATA Express Devices. Dave Landsman, SanDisk
- SATA Express PCIe Client Storage. Paul Wassenberg, SATA-IO
- PCIe SSD 101: An Overview of Standards, Markets and Performance. Eden Kim, Tom Coughlin, Walt Hubis, Chuck Paridon, Doug Voigt, Paul von Behren, Jack Hollins, Paul Wassenberg, Kristen Hopper, Doug Rollins, Jim Handy, Tony Roug, Marty Czekalski, PCIe SSD Committee
- Specification NVM Express, Rev.1.1b