
Dans Dans le cadre du cycle « Introduction au SSD », nous avons abordé l'histoire de l'apparition des disques. La deuxième partie traitera des interfaces d'interaction avec les supports de stockage.
La communication entre le processeur et les périphériques s'effectue conformément à des accords préétablis, appelés interfaces. Ces accords régissent le niveau physique et le niveau logiciel de l'interaction.
Une interface est l'ensemble des moyens, méthodes et règles d'interaction entre les éléments d'un système.
La réalisation physique de l'interface influence les paramètres suivants :
- la bande passante du canal de communication ;
- le nombre maximal de périphériques pouvant être connectés simultanément ;
- le nombre d'erreurs générées.
Les interfaces de disque sont basées sur des ports d'entrée-sortie, ce qui est l'opposé de l'entrée-sortie par la mémoire et ne prend pas de place dans l'espace d'adressage du processeur.
Ports parallèles et série
En fonction du mode d'échange des données, les ports d'entrée-sortie se divisent en deux types :
- parallèles ;
- série.
Comme l'indique le nom, un port parallèle envoie un mot machine à la fois, composé de plusieurs bits. Le port parallèle est le moyen le plus simple d'échanger des données, car il ne nécessite pas de solutions techniques complexes. Dans le cas le plus simple, chaque bit d'un mot machine est envoyé par sa propre ligne de signal, et deux lignes de signal de service sont utilisées pour le retour d'information : Données prêtes et Données reçues.
Les ports parallèles, à première vue, se scalent très bien : plus il y a de lignes de signal, plus de bits sont transmis en une fois et, par conséquent, une bande passante plus élevée. Cependant, en raison de l'augmentation du nombre de lignes de signal, il y a une interaction d'interférence entre elles, entraînant une distorsion des messages transmis.
Les ports série sont l'opposé des paralèles. L'envoi de données se fait un bit à la fois, ce qui réduit le nombre total de lignes de signal, mais complique le contrôleur d'entrée-sortie. Le contrôleur émetteur reçoit un mot machine à la fois et doit transmettre un bit à la fois, tandis que le contrôleur récepteur doit recevoir les bits et les enregistrer dans le même ordre.
Un faible nombre de lignes de signal permet d'augmenter sans interférence la fréquence de transmission des messages.
SCSI

L'Interface des petits systèmes informatiques (SCSI) a été introduite en 1978 et a été initialement développée pour connecter divers périphériques en un seul système. La spécification SCSI-1 prévoyait la connexion de jusqu'à 8 dispositifs (y compris le contrôleur), tels que :
- scanners ;
- magasins de bandes (streamers) ;
- lecteurs optiques ;
- disques durs et autres appareils.
À l'origine, SCSI était appelé Shugart Associates System Interface (SASI), mais le comité de normalisation n'a pas approuvé le nom en l'honneur de l'entreprise, et après une séance de brainstorming, le nom Small Computer Systems Interface (SCSI) a été adopté. Le « père » de SCSI, Larry Boucher, s'est imaginé que l'acronyme serait prononcé comme « sexy », mais l'a lu comme « sсuzzy » (« skuzi »). Par la suite, la prononciation « skuzi » est restée associée à cette norme.
Dans la terminologie SCSI, les périphériques connectés sont divisés en deux types :
- initiateurs ;
- dispositifs cibles.
L'initiateur envoie une commande au dispositif cible, qui renvoie ensuite une réponse à l'initiateur. Les initiateurs et les dispositifs cibles sont connectés à un bus SCSI commun, dont la bande passante dans la norme SCSI-1 est de 5 Mo/s.
La topologie utilisée du « bus commun » impose certaines restrictions :
- des dispositifs spéciaux — terminaisons — sont nécessaires aux extrémités du bus ;
- la bande passante du bus est partagée entre tous les appareils ;
- le nombre maximum de dispositifs connectés simultanément est limité.
Les appareils sur le bus sont identifiés par un numéro unique, appelé SCSI Target ID. Chaque unité SCSI dans le système est représentée par au moins un appareil logique, dont l'adressage se fait par un numéro unique à l'intérieur du dispositif physique. Logical Unit Number (LUN).

Les commandes SCSI sont envoyées sous forme de blocs de description de commande (Command Descriptor Block, CDB), qui se composent d'un code d'opération et de paramètres de commande. La norme décrit plus de 200 commandes, réparties en quatre catégories :
- Obligatoires — doivent être prises en charge par le dispositif ;
- Optionnelles — peuvent être mises en œuvre ;
- Spécifiques au fournisseur — utilisées par un fabricant particulier ;
- Obsolètes — commandes dépassées.
Parmi les nombreuses commandes, seules trois d'entre elles sont obligatoires pour les appareils :
- TEST UNIT READY — vérification de l'état du dispositif ;
- REQUEST SENSE — demande le code d'erreur de la commande précédente ;
- DEMANDE — demande les caractéristiques principales de l'appareil.
Après réception et exécution de la commande, l'appareil cible envoie à l'initiateur un code d'état, décrivant le résultat de l'exécution.
L'amélioration ultérieure du SCSI (spécifications SCSI-2 et Ultra SCSI) a élargi la liste des commandes utilisées et augmenté le nombre d'appareils connectables à 16, tandis que la vitesse de transfert des données sur le bus a atteint 640 Mo/s. Étant donné que le SCSI est une interface parallèle, l'augmentation de la fréquence de transfert a entraîné une réduction de la longueur maximale du câble et a rendu son utilisation moins pratique.
Avec la norme Ultra-3 SCSI, la prise en charge du " branchement à chaud " est apparue — connexion des appareils sous tension.
Le premier SSD connu avec une interface SCSI est le M-Systems FFD-350, lancé en 1995. Le disque avait un coût élevé et n'était pas largement répandu.
Actuellement, le SCSI parallèle n'est pas une interface populaire pour connecter des disques, mais l'ensemble des commandes est encore largement utilisé dans les interfaces USB et SAS.
ATA / PATA

Interface ATA (Advanced Technology Attachment), également connu sous le nom de PATA (Parallel ATA) a été développé par Western Digital en 1986. Le nom commercial de la norme IDE (anglais : Integrated Drive Electronics — « électronique intégrée au disque ») soulignait l'innovation importante : le contrôleur de disque était intégré directement dans le disque, et non sur une carte d'extension séparée.
La décision de placer le contrôleur à l'intérieur du disque a résolu plusieurs problèmes. Tout d'abord, la distance entre le stockage et le contrôleur a été réduite, ce qui a eu un impact positif sur les performances du stockage. Ensuite, le contrôleur intégré était "conçu" uniquement pour un type de disque spécifique et était donc moins coûteux.

L'ATA, comme le SCSI, utilise un mode d'entrée-sortie parallèle, ce qui se reflète dans les câbles utilisés. Pour connecter des disques à l'aide de l'interface IDE, des câbles à 40 fils sont nécessaires, également appelés nappes. Dans les spécifications ultérieures, des nappes à 80 fils sont utilisées : plus de la moitié d'entre elles étant des fils de mise à la terre pour réduire l'interférence à haute fréquence.
Le câble ATA comporte de deux à quatre connecteurs, dont l'un se connecte à la carte mère et les autres aux disques de stockage. Lors de la connexion de deux dispositifs avec un seul câble, l'un d'eux doit être configuré comme Maître, et l'autre comme Esclave. Un troisième dispositif peut être connecté exclusivement en mode « lecture seule ».
La position du cavalier détermine le rôle de chaque dispositif. Les termes Maître et Esclave ne sont pas tout à fait corrects, car par rapport au contrôleur, tous les dispositifs connectés sont des Esclaves.
Une innovation particulière de l'ATA-3 est l'introduction de Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Cinq entreprises (IBM, Seagate, Quantum, Conner et Western Digital) ont uni leurs efforts pour standardiser la technologie d'évaluation de l'état des disques.
La prise en charge des disques à état solide est apparue avec la quatrième version de la norme, publiée en 1998. Cette version de la norme offrait des vitesses de transfert de données allant jusqu'à 33,3 Mo/s.
La norme impose des exigences strictes pour les câbles ATA :
- le câble doit absolument être plat ;
- la longueur maximale du câble est de 18 pouces (45,7 centimètres).
Un câble court et large était gênant et nuisait au refroidissement. Il devenait de plus en plus difficile d'augmenter la fréquence de transfert avec chaque nouvelle version de la norme, et l'ATA-7 a résolu le problème de manière radicale : l'interface parallèle a été remplacée par une interface série. Après cela, l'ATA a acquis le mot Parallel et a été appelé PATA, tandis que la septième version de la norme a reçu un autre nom — Serial ATA. La numérotation des versions SATA a commencé à un.
SATA

La norme Serial ATA (SATA) a été présentée le 7 janvier 2003 et a résolu les problèmes de son prédécesseur par les modifications suivantes :
- le port parallèle a été remplacé par un port série ;
- le large câble à 80 fils a été remplacé par un câble à 7 fils ;
- la topologie « bus commun » a été remplacée par une connexion « point à point ».
Bien 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), le passage à un mode de transfert de données séquentiel était une « préparation du terrain » pour une augmentation des vitesses.
Seize lignes de signalisation pour le transfert de données dans l'ATA ont été remplacées par deux paires torsadées : une pour l'envoi, l'autre pour la réception. Les connecteurs SATA sont conçus pour une meilleure résistance aux multiples reconnexions, et la spécification SATA 1.0 a permis le « branchement à chaud » (Hot Plug).
Certains pins sur les disques sont plus courts que les autres. Cela a été fait pour soutenir la « substitution à chaud » (Hot Swap). Lors de la substitution, le dispositif « perd » et « retrouve » les lignes dans un ordre prédéfini.
Un peu plus d'un an plus tard, en avril 2004, la deuxième version de la spécification SATA a été publiée. En plus d’accélérer jusqu'à 3 Gbit/s, SATA 2.0 a introduit la technologie Native Command Queuing (NCQ). Les dispositifs prenant en charge le NCQ sont capables d'organiser eux-mêmes l'ordre d'exécution des commandes reçues pour maximiser les performances.
Au cours des trois années suivantes, le SATA Working Group a travaillé à l'amélioration de la spécification existante et la version 2.6 a introduit des connecteurs compacts Slimline et micro SATA (uSATA). Ces connecteurs sont une version réduite du connecteur SATA d'origine et ont été conçus pour des lecteurs optiques et de petits disques dans des ordinateurs portables.
Bien que la bande passante de deuxième génération SATA était suffisante pour les disques durs, les disques à état solide nécessitaient plus. En mai 2009, la troisième version de la spécification SATA a été publiée avec une bande passante augmentée à 6 Gbit/s.
Une attention particulière a été accordée aux disques à état solide dans la révision SATA 3.1. Un connecteur Mini-SATA (mSATA) a été introduit pour connecter des disques à état solide dans des ordinateurs portables. Contrairement aux 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 pouvait se vanter de la possibilité de mettre en file d'attente les commandes TRIM avec les commandes de lecture et d'écriture.
La commande TRIM notifie le disque à état solide des blocs de données qui ne contiennent pas de charge utile. Avant SATA 3.1, l'exécution de cette commande entraînait une réinitialisation des caches et la suspension des opérations d'E/S, suivie de l'exécution de la commande TRIM. Cette approche réduisait les performances du disque lors des opérations de suppression.
La spécification SATA n'a pas suivi la croissance rapide de la vitesse d'accès aux disques SSD, ce 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 de SATA, les développeurs ont utilisé le bus PCIe largement répandu, dont la vitesse dépasse 6 Gbit/s. Les disques prenant en charge SATA Express ont acquis leur propre facteur de forme appelé M.2.
SAS

Le standard SCSI, qui « rivalisait » avec l'ATA, n'est pas resté inactif non plus, et seulement un an après l'apparition de l'ATA série, en 2004, il s'est transformé en une interface série. Le nouveau nom de cette interface est Serial Attached SCSI (SAS).
Bien que le SAS ait hérité de l'ensemble de commandes SCSI, les modifications ont été significatives :
- interface série ;
- câble de 29 conducteurs avec alimentation ;
- connexion point à point
La terminologie SCSI a également été héritée. Le contrôleur est toujours appelé initiateur, et les dispositifs connectés sont appelés cibles. Tous les dispositifs cibles et l'initiateur forment un domaine SAS. Dans le SAS, la bande passante de la connexion ne dépend pas du nombre de dispositifs dans le domaine, car chaque dispositif utilise son canal dédié.
Le nombre maximal de dispositifs connectés simultanément dans un domaine SAS selon la spécification dépasse 16 000, et au lieu d'un ID SCSI pour l'adressage, on utilise un identifiant World-Wide Name (WWN).
Le WWN est un identifiant unique de 16 octets, semblable à une adresse MAC pour les dispositifs SAS.
Malgré la ressemblance des connecteurs SAS et SATA, ces normes ne sont pas entièrement compatibles. Cependant, un disque SATA peut être connecté à un connecteur SAS, mais pas l'inverse. La compatibilité entre les disques SATA et le domaine SAS est assurée par le protocole SATA Tunneling Protocol (STP).
La première version de la norme SAS-1 avait une bande passante de 3 Gbit/s, et la version la plus récente, SAS-4, a amélioré cette spécification par un facteur de 7 : 22,5 Gbit/s.
PCIe

Le Peripheral Component Interconnect Express (PCI Express, PCIe) est une interface série pour le transfert de données, apparue en 2002. Le développement a été initié par Intel, puis transféré à une organisation spéciale — le PCI Special Interest Group.
L'interface série PCIe n'a pas échappé à cette évolution et est devenue la continuation logique du PCI parallèle, qui est destiné à connecter des cartes d'extension.
Le PCI Express diffère considérablement du SATA et du SAS. L'interface PCIe a un nombre variable de lignes. Le nombre de lignes est une puissance de deux et varie de 1 à 16.
Le terme « ligne » dans PCIe désigne non pas une ligne de signal spécifique, mais un canal de communication duplex complet, composé des lignes de signal suivantes :
- réception+ et réception- ;
- transmission+ et transmission- ;
- quatre fils de mise à la terre.
Le nombre de lignes PCIe influence directement la bande passante maximale de la connexion. La norme moderne PCI Express 4.0 permet d'atteindre 1,9 Go/s par ligne, et 31,5 Go/s lors de l'utilisation de 16 lignes.

Les « appétits » des disques SSD augmentent très rapidement. Ni le SATA ni le SAS ne parviennent à accroître leur bande passante pour « rattraper » les SSD, ce qui a conduit à l'émergence des disques SSD connectés via PCIe.
Bien que les cartes d'extension PCIe soient fixées par vis, le PCIe supporte le « remplacement à chaud ». Les broches courtes PRSNT (anglais : present — être présent) permettent de s'assurer que la carte est complètement installée dans le slot.
Les disques SSD connectés par PCIe sont régis par une norme distincte la Non-Volatile Memory Host Controller Interface Specification et se déclinent en de nombreux formats, mais nous en parlerons dans la prochaine partie.
Disques distants
Avec la création de grands stockages de données, un besoin est apparu pour des protocoles permettant de connecter des disques situés en dehors du serveur. La première solution dans ce domaine a été l'Internet SCSI (iSCSI), développé par IBM et Cisco en 1998.
L'idée du protocole iSCSI est simple : les commandes SCSI sont « encapsulées » dans des paquets TCP/IP et transmises sur le réseau. Malgré la connexion distante, les clients ont l'illusion que le disque est connecté localement. Un réseau de stockage (Storage Area Network, SAN) basé sur iSCSI peut être construit sur une infrastructure réseau existante. L'utilisation d'iSCSI réduit considérablement les coûts de mise en place du SAN.
iSCSI a une version « premium » — le Fibre Channel Protocol (FCP). Un SAN utilisant le FCP est construit sur des lignes de communication en fibre optique dédiées. Cette approche nécessite un équipement réseau optique supplémentaire, mais se distingue par sa stabilité et sa haute bande passante.
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 la tâche opposée et permet d'envoyer des paquets IP sur le bus SCSI — .
La plupart des protocoles utilisés pour établir un SAN utilisent un ensemble de commandes SCSI pour gérer les disques, mais il existe des exceptions, comme la simple ATA over Ethernet (AoE). Le protocole AoE envoie des commandes ATA dans des paquets Ethernet, mais dans le système, les disques sont affichés comme SCSI.
Avec l'émergence des disques NVM Express, les protocoles iSCSI et FCP ne répondent plus aux exigences croissantes des SSD. Deux solutions sont apparues :
- étendre le bus PCI Express au-delà du serveur ;
- créer un protocole NVMe over Fabrics.
L'extension du bus PCIe nécessite la création d'un équipement de commutation complexe, mais ne modifie pas le protocole.
Le protocole NVMe over Fabrics est devenu une bonne alternative à iSCSI et FCP. Dans NVMe-oF, des lignes de communication en fibre optique et un ensemble de commandes NVM Express sont utilisés.
DDR-T

Les normes iSCSI et NVMe-oF résolvent le problème de la connexion des disques distants comme s'ils étaient locaux, tandis qu'Intel a suivi une voie différente et a rapproché le disque local du processeur. Le choix s'est porté sur les emplacements DIMM, dans lesquels la mémoire vive est connectée. La bande passante maximale du canal DDR4 est de 25 Go/s, ce qui dépasse de loin la vitesse du bus PCIe. C'est ainsi qu'est apparu le disque SSD Intel® Optane™ DC Persistent Memory.
Pour connecter le disque aux emplacements DIMM, un protocole a été inventé DDR-T, physiquement et électriquement compatible avec DDR4, mais nécessitant un contrôleur spécial qui voit la différence entre la barrette de mémoire et le disque. La vitesse d'accès au disque est inférieure à celle de la mémoire vive, mais supérieure à celle de NVMe.
Le protocole DDR-T n'est disponible qu'avec des processeurs Intel® de la génération Cascade Lake ou plus récents.
Conclusion
Presque toutes les interfaces ont parcouru un long chemin depuis le transfert de données séquentiel jusqu'au parallèle. Les vitesses des SSD augmentent rapidement, hier encore, les SSD étaient rares, et aujourd'hui, NVMe ne suscite plus vraiment d'étonnement.
Dans notre laboratoire vous pouvez tester vous-même des SSD et des disques NVMe.
Seuls les utilisateurs enregistrés peuvent participer au sondage. , s'il vous plaît.
Les disques NVMe remplaceront-ils les SSD classiques dans un avenir proche ?
55.5%Oui100
44.4%Non80
180 utilisateurs ont voté. 28 utilisateurs se sont abstenus.
Source : habr.com
