L'histoire du stockage est une course entre le stockage et la puissance de traitement. Sur le chemin du nirvana informatique, il y a un goulot d'étranglement - le stockage de milliards de zéros et de uns. Le plus récent joueur dans ce domaine est Non-Volatile Memory Express (NVMe), qui ressemble à un hybride de plusieurs solutions techniques précédentes.
La première génération d'ordinateurs domestiques utilisait des disquettes et des cassettes compactes comme périphériques de stockage mais à mesure que les ordinateurs se développaient, l'importance du stockage augmentait. Dans les années 1990, les disques durs se sont généralisés, vous permettant de stocker d'abord des mégaoctets, puis des gigaoctets d'informations. En conséquence, le besoin d'un système de communication rapide entre le variateur et le reste du système s'est accru. À cette époque, l'interface ATA (IDE) était la plus couramment utilisée en mode d'entrée-sortie programmée (PIO).
En conséquence, la technologie s'est déplacée vers l'accès direct à la mémoire (DMA), l'UDMA, également connu sous le nom d'Ultra ATA et Parallel ATA, et les interfaces SCSI dans les ordinateurs Apple et la plupart des serveurs. Par conséquent, Parallel ATA est devenu Serial ATA (SATA), et Parallel SCSI est devenu Serial Attached SCSI (SAS). Le SATA était principalement utilisé dans les ordinateurs portables et les ordinateurs de bureau avant l'arrivée des NVMe et des disques SSD.
Toutes ces interfaces ont été conçues pour s'adapter aux périphériques de stockage. En ce sens, NVMe est hors de propos avec son intégration dans le système. NVMe diffère également en ce qu'il n'est lié à aucune interface ou connecteur spécifique, ce qui peut prêter à confusion. Qui peut séparer M.2 et U.2, sans parler du protocole utilisé par l'interface, que ce soit SATA ou NVMe?
Comprenons le monde merveilleux et étrange de NVMe.
Apparence trompeuse
Éléments SATA Express, fonctionnellement similaires à M.2.
Demandez à n'importe qui de vous montrer l'emplacement NVMe sur la carte mère et vous verrez probablement une image de l'emplacement M.2, car il est devenu le disque SSD le plus populaire dans l'électronique grand public. Dans le même temps, même un slot M.2 avec un disque SSD inséré peut ne pas appartenir à NVMe, car cette interface utilise également SATA.
La carte à côté de l'emplacement M.2 indique souvent la technologie qu'elle prend en charge. C'est également une bonne idée de lire les instructions de la carte mère. La raison de la confusion est qu'au départ, il y avait une norme Mini-SATA (mSATA) pour TTN, qui utilisait le facteur de forme PCIe Mini Card, qui a ensuite évolué vers le facteur de forme M.2 et l'interface U.2. Ce dernier ressemble plus aux interfaces SATA et SAS, et combine deux canaux, SATA et PCIe, en une seule interface pour connecter TTN.
Pendant ce temps, la norme M.2 (après une brève excursion dans la norme SATA Express de courte durée) a été étendue afin de prendre en charge non seulement SATA, mais aussi AHCI.avec NVMe. Par conséquent, les emplacements M.2 sont souvent appelés à tort «emplacements NVMe», alors qu'en fait NVMe est un protocole basé sur PCIe qui ne définit aucun facteur de forme ou type de connecteur.
Interface M.2 avec touches B et M
En attendant, le facteur de forme M.2 lui-même est assez polyvalent - ou déroutant, c'est comme tout le monde. Physiquement, il peut avoir une largeur de 12, 16, 22 et 30 mm et des longueurs de support de 16 à 110 mm. Sur le bord de la fente, une série d'étiquettes est appliquée pour indiquer la fonctionnalité et faire correspondre les étiquettes sur la fente elle-même. Le plus souvent, ce sont les marques B et M de la liste des marques de clé, qui, par exemple, contient les éléments suivants:
A: 2x PCIe x1, USB 2.0, I2C et DP x4.
B: PCIe x2, SATA, USB 2.0 / 3.0, audio, etc.
E: 2x PCIe x1, USB 2.0, I2C, etc.
M: PCIe x4, SATA et SMBus.
Il s'avère que la taille physique de la carte d'extension M.2 est de 32 pièces, et c'est avant même de prendre en compte 12 modifications possibles de la liste. Heureusement, l'industrie générale semble avoir adopté une norme commune de 22 mm de large pour les cartes de stockage de longueur limitée. En conséquence, les TTN NVMe sont marqués comme «2242», ce qui signifie 22 mm de large et 42 mm de long. Les cartes TTN peuvent être marquées des lettres B, M ou les deux.
Il est important de noter qu'aujourd'hui les slots M.2 sont activement utilisés comme extension PCIe dans des conditions exiguës. Par conséquent, les cartes WiFi sont souvent au format M.2.
Définition de NVMe
Cela nous amène à la définition de base de NVMe: c'est une interface standard pour les lecteurs PCIe à connexion directe. Il diffère du SATA en ce que le premier convertit le protocole PCIe en protocole SATA, qui doit ensuite être interprété par une puce spéciale sur le lecteur avant que toute commande liée au stockage de données puisse être exécutée.
Au lieu de cela, NVMe définit une interface qui peut être directement utilisée sur n'importe quel système d'exploitation doté d'un pilote NVMe. Les commandes sont envoyées au lecteur NVMe, qui les exécute pour la lecture ou l'écriture ou pour effectuer des opérations de maintenance telles que TRIM... Étant donné que tout périphérique qui prétend être un périphérique NVMe peut être considéré comme un TTN (NAND Flash, 3D XPoint, etc.), le protocole NVMe est conçu avec une faible latence et des taux de transfert de paquets élevés à l'esprit.
Le SSD Optane d'Intel, comme 3D XPoint, fonctionne sans problème quelle que soit la charge de travail.
Récemment, une fonction NVMe comme un tampon de mémoire local, Host Memory Buffer ( HMB ), a gagné en popularité . Il s'agit d'une tentative de se débarrasser de la nécessité de mettre en mémoire tampon les données dans la DRAM à l'aide de NAND Flash de type TTN. La fonction utilise une partie de la mémoire système comme tampon, tout en perdant relativement peu de performances, tandis que le tampon est principalement utilisé pour mettre en cache la table d'adresses.
À long terme, étant donné le rythme du développement du stockage, des technologies telles que 3D XPoint rendent même de telles astuces inutiles. La vitesse d'accès au même 3D XPoint est plus proche de DRAM que de NAND Flash. Étant donné que les TTN de type 3D XPoint n'ont pas besoin de tampon DRAM, leur popularité croissante peut conduire au fait que NVMe sera déjà optimisé pour eux.
Piratage de NVMe
Mémoire sur noyaux magnétiques 64 × 64 (4 kB)
Il vaut la peine de réfléchir à ce qui peut être fait d'autre avec NVMe, sauf comment acheter un TTN et le mettre dans un slot M.2 B ou M. Ici, vous devez décider quoi est plus intéressant pour vous - pirater le lecteur (que ce soit juste une sorte de DRAM ou SRAM), ou le slot M.2 lui-même.
Les emplacements PCIe pleine longueur sont grands et les cartes d'extension offrent beaucoup de place pour les composants volumineux tels que les puces BGA et les systèmes de refroidissement gigantesques. Au contraire, les cartes d'extension M.2 sont conçues pour des solutions petites et compactes pouvant tenir dans un ordinateur portable. Vous pouvez, par exemple, combiner un FPGA avec le matériel SerDes et PCIe requis au format M.2 pour créer une carte d'extension compacte pour les ordinateurs portables et les périphériques embarqués.
Des hacks récents suggèrent d' ajouter le support NVMe au Raspberry Pi, de remplacer le TTN dans le Pinebook Pro par une carte WiFi et de lire le lecteur Flash NVMe depuis l'iPhone à l'aide d'un adaptateur PCIe ZIF.
Dans le même temps, personne n'interdit d'essayer de combiner quelque chose de très étrange - par exemple, un lecteur NVMe sur des noyaux magnétiques.
Conclusion
En regardant des décennies de technologie informatique, il est clair que la distinction entre mémoire et stockage a toujours existé. De plus, la mémoire a toujours servi de périphériques volatils tels que SRAM ou DRAM. Récemment, cette distinction est devenue de moins en moins significative. NAND Flash avec interface NVMe nous promet déjà une latence potentiellement très faible et des vitesses de plusieurs gigaoctets par seconde (notamment en utilisant PCIe 4.0) mais ce n'est pas la fin de l'histoire.
La nouvelle fonctionnalité la plus populaire est les modules DIMM de «mémoire en lecture seule», qui sont situés dans des emplacements de mémoire ordinaires. Ils utilisent la technologie à l'état solideIntel Optane pour étendre la mémoire système jusqu'à 512 Go par module. Ces modules, bien sûr, ne fonctionnent que sur les serveurs Intel jusqu'à présent. Ils sont utilisés pour tamponner des bases de données dont les gros volumes ne permettent pas d'utiliser la mémoire ordinaire comme tampon (par exemple, des téraoctets de DIMM DDR4).
Si nous avons un périphérique de stockage très rapide et non volatile connecté directement au contrôleur de mémoire du processeur, nous pouvons réduire la latence au minimum absolu. Et bien que 3D XPoint (en tant que sorte de mémoire à changement de phase) ne soit pas encore aussi rapide que la DDR SDRAM, il nous montre ce qui peut apparaître après NVMe, lorsque la différence entre «mémoire système» et «stockage de données» disparaît complètement ou devient méconnaissable .