Qu'est-ce que NVMe ?
Norme d'interface permettant d'exploiter à grande vitesse des SSD connectés en PCI Express. Elle traite de nombreuses commandes en parallèle et offre une latence inférieure au SATA, conçu pour les disques durs.
Nom japonais: NVMe
« NVMe » apparaît dans 3 questions d'entraînement réparties sur 2 thèmes, dont SRAM et mémoire flash, Interfaces d'E/S et bus.
Domaine: SRAM et mémoire flash
Pourquoi les SSD avaient besoin d'une nouvelle interface
Les SSD SATA utilisent l'AHCI, une interface hôte conçue pour les disques durs : une seule file de commandes de 32 commandes au maximum, derrière une liaison plafonnant à environ 600 Mo/s. La mémoire flash peut traiter de nombreuses requêtes en parallèle, et cette interface est donc devenue le goulot d'étranglement. NVMe (NVM Express) est un protocole conçu pour la mémoire non volatile reliée directement au PCI Express. Il prend en charge jusqu'à 64K files d'E/S, chacune d'une profondeur allant jusqu'à 64K commandes, utilise un jeu de commandes compact et permet à chaque cœur de CPU de disposer de ses propres files, ce qui réduit la surcharge logicielle et la contention sur les verrous.
Commandes de gestion
Outre les lectures et écritures, NVMe définit des commandes d'administration pour créer des files, identifier le contrôleur, gérer les espaces de noms (namespaces) et mettre à jour le firmware. L'opération Deallocate, qui fait partie de la commande Dataset Management, est l'équivalent NVMe du TRIM ATA : elle indique au SSD quels blocs logiques ne contiennent plus de données utiles, afin que le ramasse-miettes (garbage collection) puisse les effacer sans les copier. Cela réduit l'amplification d'écriture, ce qui améliore les performances en écriture soutenue et prolonge l'endurance de la flash.
Questions fréquentes
Que signifie NVMe ?
NVMe signifie Non-Volatile Memory Express, également écrit NVM Express. C'est une interface hôte et un protocole de commandes permettant d'accéder aux SSD et à d'autres mémoires non volatiles via PCI Express.
Quelle est la différence entre un SSD NVMe et un SSD SATA ?
Un SSD SATA utilise le protocole AHCI avec une seule file de 32 commandes et une liaison limitée à environ 600 Mo/s. Un SSD NVMe se connecte en PCIe avec des milliers de files parallèles, ce qui donne de plusieurs à plus de dix gigaoctets par seconde et une latence logicielle plus faible.
NVMe prend-il en charge le TRIM ?
Oui. NVMe offre la même fonction grâce à l'attribut Deallocate de la commande Dataset Management, que les systèmes d'exploitation émettent lorsque des fichiers sont supprimés.