NVMe 2.0, l'interface SSD M.2 de nouvelle génération

NVMe 2.0

La norme NVMe définit une série de normes que tous les fabricants de produits non volatils RAM, mieux connu sous le nom de NAND Flash, doivent suivre pour construire leurs puces mémoire. Non seulement pour stocker des données, mais aussi sur la façon dont ce type de mémoire communique avec le PC. La version 2.0 de la norme NVMe va avoir des changements très importants dans SSD disques.

L'un des problèmes de la mémoire NVMe est que les PC d'aujourd'hui communiquent avec tous les types de mémoire Flash NAND comme s'il s'agissait d'abstractions d'un disque dur, ce qui ne leur permet pas de profiter de toutes les caractéristiques de ce type de mémoire non volatile. . La norme NVMe 2.0 cherche à résoudre ce problème et pour que le PC voie les SSD NVMe pour ce qu'ils sont vraiment, pas comme des disques durs.

Qu'est-ce que la spécification NVMe 2.0 ?

NVMe 2.0 Discothèques Duros

Il convient de préciser, pour commencer, que la spécification NVMe 2.0 ne définit à aucun moment comment sont les puces mémoire utilisées dans les SSD NVMe, ni comment se fait le transfert de données. Mais ils définissent une série de protocoles de communication entre le système hôte et le SSD. Étant le système invité rien de plus que le processeur en charge de faire la demande de mémoire, cela peut être un Processeurun GPU, une unité DMA, etc.

Il s'agit donc d'une série de spécifications différentes qui marquent les différents aspects qu'un disque SSD ou tout autre système utilisant de la mémoire NVMe doit respecter pour se conformer à la spécification NVMe 2.0. C'est le changement le plus important depuis la sortie de la version 1.0 en 2011, et il faut préciser qu'il est rétrocompatible avec les précédents du protocole.

NVMe discothèques duros

La base de ces spécifications est la NVM Express Base (NVMe Base), qui définit une série de nouveaux protocoles pour communiquer avec la mémoire NVMe. Ce sont ceux que nous traiterons dans cet article, car le reste est facultatif et ne fait pas partie de la spécification de base, mais les valeurs-clés et les espaces de noms zonés le sont.

Quelles sont les spécifications optionnelles ? Il y en a principalement trois :

  • L'interface de gestion NVM Express (NVMe-MI) définit une interface supplémentaire facultative pour la gestion de tous les systèmes qui utilisent les interfaces NVM Express.
  • Au lieu de cela, les structures de données, les caractéristiques, les pages de journal, les commandes et les valeurs d'état pour les E/S de données sont spécifiées dans la commande NVM Express I/O.
  • Le transport express NVM est une série de spécifications pour les propriétés du contrôleur de mémoire flash.

Espaces de noms zonés dans la norme NVMe 2.0

Espaces de noms zonés NVMe 2.0

L'une des nouveautés de la norme NVMe 2.0 est la mise en œuvre de la commande Zoned Namespaces, qui permet au PC de diviser l'organisation de la mémoire dans le SSD en différentes zones sous la norme NVMe 2.0, bien que sa mise en œuvre ait commencé à se produire dans la version 1.4 du Norme NVMe sa version finale est donnée dans la version dont nous traitons dans cet article.

Espaces de noms zonés NVMe 2.0

L'idée n'est autre que de diviser le stockage SSD en différentes zones, considérez-les comme des partitions. Lorsque le PC demande d'écrire les données dans une zone d'espace de noms, ce que fera le contrôleur de mémoire flash, c'est d'écrire séquentiellement dans ladite zone, qui sera délimitée en taille et ne pourra pas écrire plus de données si elle dépasse la taille pré-allouée , qu'il y ait ou non plus de mémoire flash disponible.

Le but de ceci? L'un des avantages est que cela signifie que le contrôleur de mémoire flash n'a pas à gérer les écritures sur des adresses mémoire aléatoires et que l'utilisation de l'espace est optimisée. La CPU réserve simplement une partie délimitée du stockage en tant que zone pour stocker les données. Lorsqu'il est nécessaire d'accéder à cette zone, le PC indiquera au contrôleur de mémoire flash qu'il souhaite accéder aux données de cette zone particulière.

Key-Value modifie la façon dont les données sont accessibles dans NVMe 2.0

Clave-Valeur

Une autre des améliorations intégrées à NVMe 2.0 est la commande Key-Value ou Key-Value. Qui est basé sur l'accès aux données stockées sur le SSD via une clé unique au lieu de l'adresse virtuelle du bloc de données. C'est quelque chose qui vient du monde des bases de données et cette nouveauté permet aux applications de communiquer avec le SSD via une clé-valeur. Ce qui revient à dire adieu aux tables de traduction entre les clés émises par le processeur et l'adresse physique de la mémoire.

Pour mieux comprendre le concept, nous devons tenir compte du fait que traditionnellement les informations sont stockées dans un SSD par blocs, quelque chose qui vient du monde des disques durs et qui implique ce qui suit :

  • Les données sont stockées dans des blocs ou des pages de mémoire de taille régulière, en revanche, un groupe de données associé à une valeur-clé peut être de n'importe quelle taille.
  • Les données du système de blocs sont accessibles à partir d'une adresse de mémoire virtuelle, tandis que dans NVMe 2.0, les données sont accessibles en connaissant la valeur-clé pour y accéder.
  • Avec le stockage utilisant des valeurs de clé, nous pouvons stocker n'importe quel nombre d'octets, d'autre part, dans la pagination de mémoire classique, nous ne pouvons stocker des données qu'en multiples de la taille de chaque bloc.

La Key-Value est basée sur deux valeurs différentes, la première est la clé qui est attribuée à chaque appareil et peut avoir une taille comprise entre 1 octet et 32 ​​octets. Pour chaque appareil NVMe 2.0, une clé unique vous sera générée pour accéder à vos données. La seconde à la place est la valeur qui permet d'accéder à un bloc de données spécifique.

Prise en charge des lecteurs de disque conventionnels

Support de rotation NVMe 2.0

Il faudra des années pour voir disparaître les disques durs conventionnels et nombre d'entre eux sont encore utilisés dans de nombreux systèmes en tandem aux côtés des SSD. Cependant, les nouvelles règles d'accès aux données apportées par la norme NVMe 2.0 diffèrent grandement de la façon dont les données sont stockées sur les disques durs.

La prise en charge des formats rotationnels repose sur deux choses, la première étant de donner aux disques durs la possibilité d'accéder au même espace physique sur les périphériques d'E/S que les SSD M.2 NVMe, c'est-à-dire le port PCI Express , ce qui ne veut pas dire que nous allons voir des disques avec une interface PCIe, mais nous allons voir dans les PC du futur des interfaces de transfert de SATA vers PCIe qui permettront de copier plus rapidement les données entre les deux périphériques de stockage.

L'autre est la prise en charge du nouvel adressage de données NVMe 2.0 sous la forme d'espaces de noms zonés et de valeurs clés, afin que les deux types de stockages puissent être compris au sein du même système. C'est-à-dire que le NVMe 2.0 suppose que le SSD arrête de parler dans la langue du disque dur pour que l'inverse se produise.