Introduction au SSD. Partie 2. Interface



Dans la dernière partie de la série Introduction aux SSD, nous avons parlé de l'historique de l'apparition des disques. La deuxième partie parlera des interfaces d'interaction avec les disques.

La communication entre le processeur et les périphériques se fait conformément à des conventions prédéfinies appelées interfaces. Ces accords régissent le niveau d'interaction physique et logiciel.

Interface - un ensemble d'outils, de méthodes et de règles d'interaction entre les éléments du système.

L'implémentation physique de l'interface affecte les paramètres suivants:

  • largeur de bande du canal de communication;
  • nombre maximum d'appareils connectés simultanément;
  • le nombre d'erreurs qui se produisent.

Les interfaces de disque sont construites sur des ports d'E / S , ce qui est l'opposé des E / S de mémoire et ne prend pas d'espace dans l'espace d'adressage du processeur.

Ports parallèle et série


Selon la méthode d'échange de données, les ports d'entrée-sortie sont divisés en deux types:

  • parallèle;
  • consécutifs.

Comme son nom l'indique, le port parallèle envoie un mot machine composé de plusieurs bits à la fois. Un port parallèle est le moyen le plus simple d'échanger des données, car il ne nécessite pas de solutions de circuits complexes. Dans le cas le plus simple, chaque bit d'un mot machine est envoyé sur sa propre ligne de signal et deux lignes de signal de service sont utilisées pour la rétroaction: les données sont prêtes et les données sont reçues .


Les ports parallèles, à première vue, évoluent parfaitement: plus de lignes de signal - plus de bits sont transmis à la fois et, par conséquent, un débit plus élevé. Néanmoins, en raison de l'augmentation du nombre de lignes de signaux, une interaction d'interférence se produit entre elles, conduisant à une distorsion des messages transmis.

Les ports série sont l'opposé du parallèle. Les données sont envoyées un bit à la fois, ce qui réduit le nombre total de lignes de signal, mais complique le contrôleur d'E / S. Le contrôleur émetteur reçoit le mot machine à la fois et doit transmettre un bit à la fois, et le contrôleur récepteur à son tour doit recevoir les bits et les stocker dans le même ordre.


Un petit nombre de lignes de signaux permet d'augmenter la fréquence de transmission des messages sans interférence.

SCSI



L'interface SCSI (Small Computer Systems Interface) est apparue en 1978 et a été initialement conçue pour intégrer des périphériques de différents profils dans un seul système. La spécification SCSI-1 prévoyait la connexion d'un maximum de 8 périphériques (avec le contrôleur), tels que:

  • scanners
  • lecteurs de bande (streamers);
  • lecteurs optiques;
  • lecteurs de disque et autres périphériques.

SCSI s'appelait à l'origine Shugart Associates System Interface (SASI), mais le comité de normalisation n'aurait pas approuvé le nom de l'entreprise, et après une journée de réflexion, le nom Small Computer Systems Interface (SCSI) est apparu. Le «père» de SCSI, Larry Boucher, a laissé entendre que l'abréviation serait prononcée «sexy», mais Dal Allan a lu «ssuzzy». Par la suite, la prononciation des «contes» fermement ancrée dans cette norme.

Dans la terminologie SCSI, les périphériques connectés sont divisés en deux types:

  • initiateurs;
  • les appareils cibles.

L'initiateur envoie une commande à l'équipement cible, qui envoie ensuite une réponse à l'initiateur. Les initiateurs et les périphériques cibles sont connectés à un bus SCSI commun, dont le débit dans la norme SCSI-1 est de 5 Mo / s.

La topologie de bus commune utilisée impose un certain nombre de limitations:

  • aux extrémités du bus, des dispositifs spéciaux sont nécessaires - terminaisons;
  • la bande passante du bus est partagée entre tous les appareils;
  • le nombre maximum d'appareils connectés simultanément est limité.



Les périphériques sur le bus sont identifiés par un numéro unique appelé ID cible SCSI . Chaque unité SCSI du système est représentée par au moins un périphérique logique, dont l'adressage a lieu à l'aide d'un numéro d'unité logique (LUN) unique au sein du périphérique physique.


Les commandes dans SCSI sont envoyées sous forme de blocs de descripteur de commande (CDB), comprenant le code d'opération et les paramètres de commande. La norme décrit plus de 200 équipes, réparties en quatre catégories:

  • Obligatoire - doit être pris en charge par l'appareil;
  • Facultatif - peut être mis en œuvre;
  • Spécifique au fournisseur - utilisé par un fabricant spécifique;
  • Obsolète - commandes obsolètes.

Parmi les nombreuses équipes, seules trois d'entre elles sont obligatoires pour les appareils:

  • TEST UNIT READY - contrôle de préparation de l'appareil;
  • REQUEST SENSE - demande le code d'erreur de la commande précédente;
  • DEMANDE - demande des principales caractéristiques de l'appareil.

Après avoir reçu et traité la commande, le périphérique cible envoie à l'initiateur un code d'état qui décrit le résultat de l'exécution.

Une amélioration supplémentaire de SCSI (spécifications SCSI-2 et Ultra SCSI) a étendu la liste des commandes utilisées et augmenté le nombre de périphériques connectés à 16, et la vitesse d'échange de données sur le bus jusqu'à 640 Mo / s. Étant donné que SCSI est une interface parallèle, une augmentation de la fréquence des échanges de données a été associée à une diminution de la longueur maximale du câble et a entraîné des inconvénients d'utilisation.

À partir de la norme Ultra-3 SCSI, la prise en charge de la «connexion à chaud» est apparue - connexion des périphériques lorsque l'appareil est sous tension.

Le premier SSD SCSI connu est le M-Systems FFD-350, sorti en 1995. Le disque était d'un coût élevé et peu répandu.

SCSI parallèle n'est actuellement pas une interface de montage de disque populaire, mais le jeu de commandes est toujours largement utilisé dans les interfaces USB et SAS.

ATA / PATA



L' interface ATA (Advanced Technology Attachment), également connue sous le nom de PATA (Parallel ATA), a été développée par Western Digital en 1986. Le nom commercial de la norme IDE (Integrated Drive Electronics - «électronique intégrée dans le lecteur») a souligné une innovation importante: le contrôleur de lecteur a été intégré dans le lecteur, plutôt que sur une carte d'extension séparée.

La décision de placer le contrôleur à l'intérieur du lecteur a résolu plusieurs problèmes à la fois. Premièrement, la distance entre le variateur et le contrôleur a diminué, ce qui a eu une incidence positive sur les caractéristiques du variateur. Deuxièmement, le contrôleur intégré n'était «affûté» que pour un certain type de lecteur et, par conséquent, était moins cher.


ATA, comme SCSI, utilise une méthode d'E / S parallèle, qui affecte les câbles utilisés. Pour connecter des disques à l'aide de l'interface IDE, des câbles à 40 conducteurs, également appelés boucles, sont nécessaires. Les spécifications ultérieures utilisent des boucles à 80 conducteurs: plus de la moitié sont des mises à la terre pour réduire les interférences aux hautes fréquences.

Sur le câble ATA, il y a de deux à quatre connecteurs, dont l'un est connecté à la carte mère et le reste aux disques. Lors de la connexion de deux appareils avec une boucle, l'un d'entre eux doit être configuré comme maître et le second comme esclave . Le troisième appareil ne peut être connecté qu'en mode lecture seule.


La position du cavalier définit le rôle d'un périphérique spécifique. Les termes maître et esclave en ce qui concerne les appareils ne sont pas entièrement corrects, car en ce qui concerne le contrôleur, tous les appareils connectés sont des esclaves.

Une innovation spéciale dans ATA-3 est l'introduction de la technologie d' autosurveillance , d' analyse et de rapport (SMART) . Cinq sociétés (IBM, Seagate, Quantum, Conner et Western Digital) ont uni leurs forces pour normaliser la technologie d'évaluation de la santé des disques.

La prise en charge des disques SSD est venue avec la quatrième version de la norme, publiée en 1998. Cette version de la norme fournit des taux d'échange de données allant jusqu'à 33,3 Mo / s.

La norme propose des exigences strictes pour les boucles ATA:

  • la boucle doit être plate;
  • longueur maximale de la boucle 18 pouces (45,7 centimètres).

La boucle courte et large était inconfortable et gênait le refroidissement. Il est devenu de plus en plus difficile d'augmenter la fréquence de transmission avec chaque prochaine version de la norme, et ATA-7 a résolu le problème radicalement: l'interface parallèle a été remplacée par l'interface série. Après cela, ATA a acquis le mot Parallel et est devenu connu sous le nom de PATA, et la septième version de la norme a reçu un nom différent - Serial ATA. Le versionnage SATA a commencé par un.

SATA



La norme Serial ATA (SATA) a été introduite le 7 janvier 2003 et a résolu les problèmes de son prédécesseur par les modifications suivantes:

  • le port parallèle est remplacé par un port série;
  • large boucle de 80 cœurs remplacée par 7 cœurs;
  • la topologie de bus commune a été remplacée par une connexion point à point.

Malgré le fait que la norme SATA 1.0 (SATA / 150, 150 Mo / s) était légèrement plus rapide que l'ATA-6 (UltraDMA / 130, 130 Mo / s), la transition vers une méthode séquentielle d'échange de données «préparait le sol» à augmenter vitesses.

Seize lignes de signaux pour la transmission de données dans l'ATA ont été remplacées par deux paires torsadées: une pour la transmission et une pour la réception. Les connecteurs SATA sont conçus pour être plus résistants aux multiples reconnexions, et la spécification SATA 1.0 rend possible la connexion à chaud.

Certaines broches sur les disques sont plus courtes que toutes les autres. Cette opération est effectuée pour prendre en charge le remplacement à chaud. Au cours du processus de remplacement, l'appareil «perd» et «trouve» les lignes dans un ordre prédéterminé.

Un peu plus d'un an plus tard, en avril 2004, la deuxième version de la spécification SATA est sortie. En plus d'accélérer jusqu'à 3 Gb / s, SATA 2.0 a introduit la technologie NCQ ( Native Command Queuing ). Les périphériques avec prise en charge NCQ peuvent organiser indépendamment l'ordre d'exécution des commandes reçues pour obtenir des performances maximales.


Au cours des trois années suivantes, le groupe de travail SATA a travaillé pour améliorer les spécifications existantes, et des connecteurs compacts Slimline et micro SATA (uSATA) sont apparus dans la version 2.6. Ces connecteurs sont une petite copie du connecteur SATA d'origine et sont conçus pour les lecteurs optiques et les petits disques des ordinateurs portables.

Malgré le fait que la bande passante de la deuxième génération SATA était suffisante pour les disques durs, les SSD en demandaient plus. En mai 2009, la troisième version de la spécification SATA a été publiée avec une bande passante augmentée jusqu'à 6 Gb / s.


Une attention particulière a été accordée aux SSD dans l'édition SATA 3.1. Un connecteur Mini-SATA (mSATA) a été ajouté pour connecter des disques SSD à des ordinateurs portables. Contrairement à Slimline et uSATA, le nouveau connecteur ressemblait à un PCIe Mini, bien qu'il ne soit pas électriquement compatible avec PCIe. En plus du nouveau connecteur, SATA 3.1 offrait la possibilité de mettre en file d'attente les commandes TRIM avec les commandes de lecture et d'écriture.

La commande TRIM notifie le SSD des blocs de données qui ne transportent pas de charge utile. Avant SATA 3.1, l'exécution de cette commande entraînait le vidage des caches et la suspension des opérations d'E / S, suivies de l'exécution de la commande TRIM. Cette approche a dégradé les performances du disque lors des opérations de suppression.

La spécification SATA n'a pas suivi le rythme de l'augmentation rapide de la vitesse d'accès aux disques SSD, qui a conduit à l'apparition en 2013 d'un compromis appelé SATA Express dans la norme SATA 3.2. Au lieu de doubler à nouveau la bande passante SATA, les développeurs ont utilisé le bus PCIe répandu, dont la vitesse dépasse 6 Gb / s. Les disques compatibles SATA Express ont acquis leur propre facteur de forme appelé M.2.

SAS



Le standard SCSI rival avec ATA ne s'est pas non plus arrêté et un an seulement après l'apparition de Serial ATA, en 2004, il a dégénéré en interface série. Le nom de la nouvelle interface est Serial Attached SCSI (SAS).

Bien que SAS ait hérité du jeu d'instructions SCSI, les modifications étaient importantes:

  • interface série
  • Câble d'alimentation à 29 conducteurs;
  • connexion point à point

La terminologie SCSI a également été héritée. Le contrôleur est toujours appelé l'initiateur et les appareils connectés sont la cible. Tous les équipements cibles et l'initiateur forment le domaine SAS. En SAS, la bande passante de connexion ne dépend pas du nombre de périphériques dans le domaine, car chaque périphérique utilise son propre canal dédié.

Selon la spécification, le nombre maximal de périphériques connectés simultanément dans le domaine SAS dépasse 16 000 et, au lieu de l'ID SCSI, l'identifiant WWN ( World-Wide Name ) est utilisé pour l'adressage.

WWN est un identifiant unique d'une longueur de 16 octets, un analogue de l'adresse MAC pour les périphériques SAS.


Malgré les similitudes entre les connecteurs SAS et SATA, ces normes ne sont pas entièrement compatibles. Cependant, un disque SATA peut être connecté au connecteur SAS, mais pas l'inverse. La compatibilité entre les disques SATA et le domaine SAS est fournie à l'aide du protocole SATA Tunneling Protocol (STP).

La première version de la norme SAS-1 a une bande passante de 3 Gb / s, et la plus moderne, SAS-4, a amélioré ce chiffre par 7 fois: 22,5 Gb / s.

PCIe



Peripheral Component Interconnect Express (PCI Express, PCIe) - une interface série pour le transfert de données, apparue en 2002. Le développement a été lancé par Intel, puis transféré à une organisation spéciale - PCI Special Interest Group.

L'interface série PCIe n'a pas fait exception et est devenue une suite logique du PCI parallèle, conçu pour connecter des cartes d'extension.

PCI Express est significativement différent de SATA et SAS. L'interface PCIe a un nombre variable de lignes. Le nombre de lignes est égal aux puissances de deux et va de 1 à 16.

Le terme «ligne» dans PCIe ne signifie pas une ligne de signal spécifique, mais un canal de communication duplex intégral, composé des lignes de signal suivantes:

  • réception + et réception-;
  • transmission + et transmission-;
  • quatre conducteurs de terre.

Le nombre de lignes PCIe affecte directement la bande passante maximale de la connexion. La norme PCI Express 4.0 moderne vous permet d'atteindre 1,9 Go / s sur une seule ligne et 31,5 Go / s lorsque vous utilisez 16 lignes.


«L'appétit» des SSD croît très rapidement. SATA et SAS n'ont pas le temps d'augmenter leur bande passante pour suivre les SSD, ce qui a conduit à l'émergence de SSD avec connexion PCIe.

Bien que les cartes d'extension PCIe soient vissées, PCIe prend en charge le remplacement à chaud. De courtes broches PRSNT (présentes - présentes) vous permettent de vous assurer que la carte est complètement insérée dans la fente.

Les SSD connectés via PCIe sont réglementés par une norme distincte de spécification d'interface d'interface de contrôleur hôte de mémoire non volatile et sont incorporés dans de nombreux facteurs de forme, mais nous en parlerons dans la partie suivante.

Lecteurs à distance


Lors de la création de grands entrepôts de données, il y avait un besoin de protocoles qui vous permettent de connecter des disques situés à l'extérieur du serveur. La première solution dans ce domaine a été Internet SCSI (iSCSI), développée par IBM et Cisco en 1998.

L'idée d'iSCSI est simple: les commandes SCSI sont enveloppées dans des paquets TCP / IP et envoyées au réseau. Malgré la connexion à distance, l'illusion est créée pour les clients que le lecteur est connecté localement. Un réseau de stockage (SAN) basé sur iSCSI peut être construit sur l'infrastructure réseau existante. L'utilisation d'iSCSI réduit considérablement le coût d'organisation d'un SAN.

ISCSI propose une option «premium» - le protocole Fibre Channel (FCP). Le SAN utilisant FCP est construit sur des liaisons fibre optique dédiées. Cette approche nécessite un équipement de réseau optique supplémentaire, mais diffère par sa stabilité et son débit élevé.

Il existe de nombreux protocoles pour envoyer des commandes SCSI sur des réseaux informatiques. Cependant, il n'y a qu'une seule norme qui résout le problème opposé et vous permet d'envoyer des paquets IP sur le bus SCSI - IP sur SCSI .

La plupart des protocoles SAN utilisent le jeu de commandes SCSI pour gérer les lecteurs, mais il existe des exceptions, comme le simple ATA sur Ethernet (AoE). Le protocole AoE envoie des commandes ATA dans des paquets Ethernet, mais les disques s'affichent en SCSI dans le système.

Avec l'avènement des disques NVM Express, iSCSI et FCP ont cessé de répondre à la demande croissante des SSD. Deux solutions sont apparues:

  • retrait du bus PCI Express à l'extérieur du serveur;
  • Création du protocole NVMe over Fabrics.

La suppression du bus PCIe est associée à la création d'équipements de commutation complexes, mais ne modifie pas le protocole.

NVMe over Fabrics est devenu une bonne alternative à iSCSI et FCP. NVMe-oF utilise des liaisons par fibre optique et le jeu de commandes NVM Express.

DDR-T



Les normes iSCSI et NVMe-oF résolvent le problème de la connexion de disques distants comme locaux, tandis qu'Intel a fait le contraire et a rapproché le disque local le plus près possible du processeur. Le choix s'est porté sur les emplacements DIMM dans lesquels la RAM est connectée. La bande passante maximale du canal DDR4 est de 25 Go / s, ce qui dépasse considérablement la vitesse du bus PCIe. C'est ainsi que le SSD à mémoire persistante Intel® Optane ™ DC a vu le jour.

Pour connecter le lecteur aux emplacements DIMM, le protocole DDR-T a été inventé, physiquement et électriquement compatible avec DDR4, mais nécessitant un contrôleur spécial qui voit la différence entre la barre de mémoire et le lecteur. La vitesse d'accès au disque est inférieure à celle de la RAM, mais supérieure à celle de NVMe.

DDR-T n'est disponible qu'avec les processeurs Intel® Cascade Lake ou versions ultérieures.

Conclusion


Presque toutes les interfaces ont parcouru un long chemin entre le transfert de données série et parallèle. La vitesse des SSD croît rapidement. Hier, les SSD étaient une nouveauté, mais aujourd'hui NVMe n'est plus une surprise.

Dans notre Selectel Lab, vous pouvez tester vous-même les SSD et les disques NVMe.

Source: https://habr.com/ru/post/fr478684/


All Articles