NVMe est un protocole logiciel per­met­tant de connecter des pé­ri­phé­riques de stockage de masse non volatils via l’interface ma­té­rielle PCI Express. L’abré­via­tion 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’ali­men­ta­tion est coupée.

NVMe parvient à permettre un accès rapide malgré le stockage permanent des données. Comment fonc­tionne cette tech­no­lo­gie et quels autres avantages offre le NVM Express ?

Des HDD aux SSD

Tra­di­tion­nel­le­ment, une dis­tinc­tion est faite entre la mémoire prin­ci­pale volatile (mémoire vive, en anglais Random Access Memory, RAM) d’un or­di­na­teur et une mémoire de masse non volatile. Alors que la RAM d’un or­di­na­teur 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’in­for­ma­tique et les systèmes de stockage sur bande mag­né­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é­dia­tique entre la mémoire prin­ci­pale et le disque dur s’est ac­com­pag­née de temps d’accès ra­di­ca­le­ment dif­fé­rents. Le temps d’accès aux données stockées sé­quen­tiel­le­ment dans la RAM était environ un centième du temps né­ces­saire pour lire la même quantité de données sur un disque dur en rotation. Ce n’est qu’avec la gé­né­ra­li­sa­tion des appareils mobiles et l’émergence de serveurs avec disque dur : Solid State Drives (SSD) que cette dynamique fut rompue.

Aujourd’hui, les or­di­na­teurs portables et de bureau sont aussi prin­ci­pa­le­ment équipés de SSD, de sorte que l’on peut parler d’un support de stockage continu : du registre du pro­ces­seur à la mémoire de masse du SSD, en passant par les caches L1 et L2, les données sont stockées de manière en­tiè­re­ment élec­tro­nique, sans aucune pièce mobile. Cependant, l’accès aux données des SSD se fait toujours via des pro­to­coles optimisés pour les disques durs rotatifs, tels que Serial ATA (SATA).

Comment fonc­tionne NVM Express ?

NVM Express est le premier protocole spé­ci­fi­que­ment conçu pour les dis­po­si­tifs de stockage de masse non rotatifs basés sur le SSD. Il est le suc­ces­seur des in­ter­faces lo­gi­cielles SATA et AHCI établies de longue date. Le protocole SATA, qui était ini­tia­le­ment utilisé pour la com­mu­ni­ca­tion interne avec les SSD, est ra­pi­de­ment devenu un goulot d’étran­gle­ment : les SSD modernes étaient capables de fournir un débit de données beaucoup plus élevé que ce que le protocole SATA per­met­tait. Aujourd’hui, grâce à l’interface du Non-Volatile Memory Express, qui a été optimisée spé­ci­fi­que­ment pour les supports SSD, les SSD peuvent atteindre leur plein potentiel.

La norme existante PCI Express (Pe­ri­phe­ral Component In­ter­con­nect Express, PCIe) est préférée pour connecter le stockage de masse SSD sur la carte mère. Par exemple, les cartes gra­phiques 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’ex­ploi­ta­tion est suffisant pour prendre en charge tous les SSD com­pa­tibles avec le NVM Express de dif­fé­rents fa­bri­cants.

Jeu d’ins­truc­tions du protocole NVM Express

Un protocole logiciel sert à struc­tu­rer la com­mu­ni­ca­tion 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 par­te­naires de com­mu­ni­ca­tion. Le protocole de Non-Volatile Memory Express s’en sort avec un jeu d’ins­truc­tions très mince ne com­pre­nant que 13 ins­truc­tions.

Ainsi, seules dix commandes ad­mi­nis­tra­tives sont obli­ga­toires :

  • Create I/O Sub­mis­sion Queue
  • Delete I/O Sub­mis­sion Queue
  • Create I/O Com­ple­tion Queue
  • Delete I/O Com­ple­tion Queue
  • Get Log Page
  • Identify
  • Abort
  • Set Features
  • Get Features
  • Async Event Requests

En outre, trois commandes d’I/O sont ab­so­lu­ment né­ces­saires :

  • Read
  • Write
  • Flush
Remarque

L’abré­via­tion « I/O » signifie Input/Output en in­for­ma­tique, l’équi­valent en français d’« Entrée/Sortie ».

Création et trai­te­ment 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é­ra­le­ment 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 dis­po­si­tion physique, ni les HDD (disques durs) ni les pro­to­coles dé­ve­lop­pé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 suc­ces­sives 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 pa­ral­lé­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.

Con­trai­re­ment aux HDD (disques durs), les SSD ne lisent et n’écrivent pas les données de manière sé­quen­tielle ; comme pour la mémoire prin­ci­pale à 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 trai­te­ment des commandes de protocole avec NVMe suivent ce schéma :

  1. Host transmet I/O Sub­mis­sion Queues
  2. Con­trol­ler récupère I/O Sub­mis­sion Queues
  3. Con­trol­ler exécute I/O Sub­mis­sion Queues
  4. Con­trol­ler transmet I/O Com­ple­tion Queues
  5. Host reçoit I/O Com­ple­tion Queues

Quels sont les avantages du NVMe ?

Les avantages du NVM Express sont dus à l’uti­li­sa­tion de la norme PCIe existante et à l’op­ti­mi­sa­tion du protocole pour le stockage moderne à l’état solide. Le jeu de commandes du protocole allégé, adapté au mode de fonc­tion­ne­ment des SSD, permet de réduire les frais généraux lors de la lecture et de l’écriture des données. En utilisant di­rec­te­ment PCIe, les tra­duc­teurs 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 mas­si­ve­ment en parallèle, les SSD connectés via le NVMe peuvent dé­ve­lop­per tout leur potentiel de per­for­mance. Dans les en­vi­ron­ne­ments d’hé­ber­ge­ment pro­fes­sion­nel et de calcul haute per­for­mance, les appareils NVMe peuvent également être connectés par multi-che­mi­ne­ment. Cela implique de connecter un dis­po­si­tif NVMe au sein de l’in­fras­truc­ture in­for­ma­tique via plusieurs lignes de données pa­ral­lèles. Si une ligne tombe en panne, l’appareil reste ac­ces­sible. Les appareils NVMe prennent également en charge l’échange à chaud ; si un support de stockage tombe com­plè­te­ment en panne, il peut être remplacé en cours de fonc­tion­ne­ment.

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 in­for­ma­tiques actuels. Des or­di­na­teurs portables et de bureau, des serveurs et des postes de travail aux su­pe­ror­di­na­teurs : 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 Ge­ne­ra­tion Small Form Factor)

Un autre dé­ve­lop­pe­ment in­té­res­sant 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 four­nis­sent d’énormes volumes de stockage avec des temps d’accès réduits.

Con­clu­sion

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.

Aller au menu principal