NVMe : qu’est-ce que c’est ?

NVMe est un protocole logiciel permettant de connecter des périphériques de stockage de masse non volatils via l’interface matérielle PCI Express. L’abréviation NVMe signifie « Non-Volatile Memory Express ». Une mémoire non-volatile est un support de stockage dont le contenu n’est pas perdu lorsque l’alimentation est coupée.

NVMe parvient à permettre un accès rapide malgré le stockage permanent des données. Comment fonctionne cette technologie et quels autres avantages offre le NVM Express ?

Des HDD aux SSD

Traditionnellement, une distinction est faite entre la mémoire principale volatile (mémoire vive, en anglais Random Access Memory, RAM) d’un ordinateur et une mémoire de masse non volatile. Alors que la RAM d’un ordinateur perd son contenu lorsqu’il est éteint, le contenu de la mémoire de masse non volatile est conservé. Après les cartes perforées utilisées dans les premières années de l’informatique et les systèmes de stockage sur bande magnétique qui se sont répandus par la suite, les disques durs rotatifs (en anglais Hard Disk Drive, HDD) se sont imposés comme le support de stockage de masse standard.

La rupture médiatique entre la mémoire principale et le disque dur s’est accompagnée de temps d’accès radicalement différents. Le temps d’accès aux données stockées séquentiellement dans la RAM était environ un centième du temps nécessaire pour lire la même quantité de données sur un disque dur en rotation. Ce n’est qu’avec la généralisation des appareils mobiles et l’émergence de serveurs avec disque dur : Solid State Drives (SSD) que cette dynamique fut rompue.

Aujourd’hui, les ordinateurs portables et de bureau sont aussi principalement équipés de SSD, de sorte que l’on peut parler d’un support de stockage continu : du registre du processeur à la mémoire de masse du SSD, en passant par les caches L1 et L2, les données sont stockées de manière entièrement électronique, sans aucune pièce mobile. Cependant, l’accès aux données des SSD se fait toujours via des protocoles optimisés pour les disques durs rotatifs, tels que Serial ATA (SATA).

Comment fonctionne NVM Express ?

NVM Express est le premier protocole spécifiquement conçu pour les dispositifs de stockage de masse non rotatifs basés sur le SSD. Il est le successeur des interfaces logicielles SATA et AHCI établies de longue date. Le protocole SATA, qui était initialement utilisé pour la communication interne avec les SSD, est rapidement devenu un goulot d’étranglement : les SSD modernes étaient capables de fournir un débit de données beaucoup plus élevé que ce que le protocole SATA permettait. Aujourd’hui, grâce à l’interface du Non-Volatile Memory Express, qui a été optimisée spécifiquement pour les supports SSD, les SSD peuvent atteindre leur plein potentiel.

La norme existante PCI Express (Peripheral Component Interconnect Express, PCIe) est préférée pour connecter le stockage de masse SSD sur la carte mère. Par exemple, les cartes graphiques et autres matériels sont déjà connectés via PCIe. PCIe est une interface physique - NVMe en est le pendant logique en tant que protocole, optimisé pour le stockage non volatile à l’état solide. Cela signifie qu’un seul pilote du côté du système d’exploitation est suffisant pour prendre en charge tous les SSD compatibles avec le NVM Express de différents fabricants.

Jeu d’instructions du protocole NVM Express

Un protocole logiciel sert à structurer la communication numérique, c’est-à-dire l’échange de données. À cette fin, le protocole définit un ensemble de commandes qui détermine la langue utilisée entre les partenaires de communication. Le protocole de Non-Volatile Memory Express s’en sort avec un jeu d’instructions très mince ne comprenant que 13 instructions.

Ainsi, seules dix commandes administratives sont obligatoires :

  • Create I/O Submission Queue
  • Delete I/O Submission Queue
  • Create I/O Completion Queue
  • Delete I/O Completion Queue
  • Get Log Page
  • Identify
  • Abort
  • Set Features
  • Get Features
  • Async Event Requests

En outre, trois commandes d’I/O sont absolument nécessaires :

  • Read
  • Write
  • Flush
Remarque

L’abréviation « I/O » signifie Input/Output en informatique, l’équivalent en français d’« Entrée/Sortie ».

Création et traitement des commandes avec le Non-Volatile Memory Express

Un disque dur moderne comporte plusieurs disques rotatifs. Deux têtes de lecture-écriture sont généralement utilisées par disque. Les têtes de lecture-écriture sont toutes fixées à un seul bras de lecture-écriture mobile. En raison de cette disposition physique, ni les HDD (disques durs) ni les protocoles développés pour eux ne sont optimisés pour un accès parallèle de masse aux données.

Le protocole SATA, qui existe depuis longtemps, ne dispose que d’une seule file d’attente (Command Queue) pour exécuter les commandes successives sur le disque dur. Le protocole Non-Volatile Memory Express, en revanche, prend en charge 64 000 files d’attente, avec jusqu’à 64 000 commandes par file. Cela garantit un parallélisme élevé des accès aux données, ce qui se traduit par des débits de données élevés et de faibles temps de latence.

Contrairement aux HDD (disques durs), les SSD ne lisent et n’écrivent pas les données de manière séquentielle ; comme pour la mémoire principale à accès aléatoire, l’accès aux données des SSD est tout aussi rapide, quelle que soit la position. La création et le traitement des commandes de protocole avec NVMe suivent ce schéma :

  1. Host transmet I/O Submission Queues
  2. Controller récupère I/O Submission Queues
  3. Controller exécute I/O Submission Queues
  4. Controller transmet I/O Completion Queues
  5. Host reçoit I/O Completion Queues

Quels sont les avantages du NVMe ?

Les avantages du NVM Express sont dus à l’utilisation de la norme PCIe existante et à l’optimisation du protocole pour le stockage moderne à l’état solide. Le jeu de commandes du protocole allégé, adapté au mode de fonctionnement des SSD, permet de réduire les frais généraux lors de la lecture et de l’écriture des données. En utilisant directement PCIe, les traducteurs de protocole peuvent être éliminés, ce qui permet de réduire les temps de latence.

Grâce aux files d’attente de commandes traitées massivement en parallèle, les SSD connectés via le NVMe peuvent développer tout leur potentiel de performance. Dans les environnements d’hébergement professionnel et de calcul haute performance, les appareils NVMe peuvent également être connectés par multi-cheminement. Cela implique de connecter un dispositif NVMe au sein de l’infrastructure informatique via plusieurs lignes de données parallèles. Si une ligne tombe en panne, l’appareil reste accessible. Les appareils NVMe prennent également en charge l’échange à chaud ; si un support de stockage tombe complètement en panne, il peut être remplacé en cours de fonctionnement.

Conseil

Vous pouvez utiliser les avantages du Non-Volatile Memory Express pour votre propre projet Web. Pour ce faire, réservez sur IONOS un serveur dédié avec NVMe.

Où le NVMe est-il utilisé ?

Le NVM Express est utilisé dans presque tous les systèmes informatiques actuels. Des ordinateurs portables et de bureau, des serveurs et des postes de travail aux superordinateurs : des supports de stockage SSD rapides connectés via NVMe sont installés partout. Divers facteurs de forme sont utilisés, notamment :

  • Cartes PCI Express
  • Cartes M.2
  • SFF (Small Form Factor) ou appareils de 2,5" avec connexion U.2
  • E1 ou NGSFF (Next Generation Small Form Factor)

Un autre développement intéressant du protocole de Non-Volatile Memory Express est le NVMe over Fabrics. Ici, au lieu d’une connexion physique directe, une connexion réseau est utilisée pour adresser le stockage à l’état solide NVMe sur le réseau. De cette manière, il est possible de mettre en place des réseaux de médias SSD qui fournissent d’énormes volumes de stockage avec des temps d’accès réduits.

Conclusion

Non-Volatile Memory Express fournit un protocole optimisé pour les exigences du stockage moderne à l’état solide qui est déjà devenu une norme de facto pour les SSD.