Dear Paul,

Am I correct to assume that a NVMe driver is also an AHCI driver?

Thanks for all your input. To briefly summarize, the NVMe [1] and AHCI [2] interfaces are not interchangeable. NVMe has been specifically designed to target solid-state drives and make optimal use of their low latency and internal data access parallelism.

While AHCI (and its predecessors SATA and ATA/IDE) can be certainly also used to connect to solid-state drives, it is a legacy technology in that regard.

(To be honest, the confusion is understandable, because the common M.2 [3] form factor solid-state drives might actually use legacy SATA, AHCI over PCIe or NVMe over PCIe, although generally just one of the three interfaces at one time.)

Note that NVMHCI is a predecessor of the current NVMe, but as far as I can tell, the two standards are quite different. Most notably, NVMHCI lacks the most prominent feature of NVMe: independent submission and completion queues.

HelenOS currently has an ATA/IDE driver [4] (which should, by means of backward compatibility, also support SATA drives) and an AHCI driver [5]. We lack an NVMe driver.

[1] https://nvmexpress.org/developers/
[2] https://www.intel.com/content/www/us/en/io/serial-ata/ahci.html
[3] https://en.wikipedia.org/wiki/M.2
[4] https://github.com/HelenOS/helenos/tree/master/uspace/drv/block/ata_bd
[5] https://github.com/HelenOS/helenos/tree/master/uspace/drv/block/ahci


Best regards

Martin Decky

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/listinfo/helenos-devel

Reply via email to