Inleiding tot SSD. Deel 2. Interface

Inleiding tot SSD. Deel 2. Interface

В laatste deel cyclus "Inleiding tot SSD" hebben we het gehad over de geschiedenis van het verschijnen van schijven. Het tweede deel zal vertellen over de interfaces voor interactie met schijven.

Communicatie tussen de processor en randapparatuur vindt plaats volgens vooraf gedefinieerde conventies die interfaces worden genoemd. Deze overeenkomsten regelen het fysieke en softwareniveau van interactie.

Interface - een reeks middelen, methoden en regels voor interactie tussen elementen van het systeem.

De fysieke implementatie van een interface heeft invloed op de volgende parameters:

  • doorvoer van het communicatiekanaal;
  • het maximale aantal gelijktijdig aangesloten apparaten;
  • het aantal fouten dat optreedt.

Schijfinterfaces zijn gebouwd op I/O-poorten, wat het tegenovergestelde is van geheugen-I/O en geen ruimte inneemt in de adresruimte van de processor.

Parallelle en seriële poorten

Volgens de methode van gegevensuitwisseling zijn I / O-poorten verdeeld in twee typen:

  • parallel;
  • consistent.

Zoals de naam al aangeeft, verzendt de parallelle poort een machinewoord per keer, bestaande uit verschillende bits. Een parallelle poort is de eenvoudigste manier om gegevens uit te wisselen, omdat hiervoor geen ingewikkelde circuitoplossingen nodig zijn. In het eenvoudigste geval wordt elk bit van het machinewoord op zijn eigen signaallijn verzonden en worden twee servicesignaallijnen gebruikt voor feedback: Gegevens klaar и Gegevens geaccepteerd.

Inleiding tot SSD. Deel 2. Interface
Parallelle poorten zijn op het eerste gezicht goed schaalbaar: meer signaallijnen - er worden meer bits tegelijk verzonden en dus een hogere doorvoer. Door de toename van het aantal signaallijnen treedt er echter interferentie tussen hen op, wat leidt tot vervorming van de verzonden berichten.

Seriële poorten zijn het tegenovergestelde van parallel. Gegevens worden bit voor bit verzonden, wat het totale aantal signaallijnen vermindert, maar de I/O-controller bemoeilijkt. De zendercontroller ontvangt het machinewoord per keer en moet bit voor bit verzenden, en de ontvangercontroller moet op zijn beurt de bits ontvangen en in dezelfde volgorde opslaan.

Inleiding tot SSD. Deel 2. Interface
Met een klein aantal signaallijnen kunt u de frequentie van de berichtoverdracht verhogen zonder interferentie.

SCSI

Inleiding tot SSD. Deel 2. Interface
Small Computer Systems Interface (SCSI) verscheen in 1978 en was oorspronkelijk ontworpen om apparaten met verschillende profielen in één systeem te combineren. De SCSI-1-specificatie voorziet in de aansluiting van maximaal 8 apparaten (samen met de controller), zoals:

  • scanners;
  • tapedrives (streamers);
  • optische stations;
  • schijfstations en andere apparaten.

SCSI heette oorspronkelijk de Shugart Associates System Interface (SASI), maar de normcommissie wilde de naam naar het bedrijf niet goedkeuren, en na een dag brainstormen werd de naam Small Computer Systems Interface (SCSI) geboren. De vader van SCSI, Larry Boucher, bedoelde dat het acroniem als "sexy" zou worden uitgesproken, maar Dal Allan lees "sсuzzy" ("vertellen"). Vervolgens werd de uitspraak van "tell" stevig verankerd in deze standaard.

In SCSI-terminologie worden aangesloten apparaten onderverdeeld in twee typen:

  • initiatiefnemers;
  • doel apparaten.

De initiator stuurt een commando naar het doelapparaat, dat vervolgens een antwoord naar de initiator stuurt. De initiators en targets zijn aangesloten op een gemeenschappelijke SCSI-bus, die een bandbreedte heeft van 1 MB/s in de SCSI-5-standaard.

De gebruikte "gemeenschappelijke bus"-topologie legt een aantal beperkingen op:

  • aan de uiteinden van de bus zijn speciale apparaten nodig - terminators;
  • busbandbreedte wordt gedeeld door alle apparaten;
  • Het maximale aantal gelijktijdig aangesloten apparaten is beperkt.

Inleiding tot SSD. Deel 2. Interface

Apparaten op de bus worden geïdentificeerd door een uniek nummer dat wordt gebeld SCSI-doel-ID. Elke SCSI-eenheid in het systeem wordt vertegenwoordigd door ten minste één logisch apparaat, dat wordt geadresseerd door een uniek nummer binnen het fysieke apparaat. Logisch eenheidsnummer (LUN).

Inleiding tot SSD. Deel 2. Interface
Opdrachten in SCSI worden in het formulier verzonden opdrachtbeschrijvingsblokken (Command Descriptor Block, CDB), bestaande uit een operatiecode en commandoparameters. De standaard beschrijft meer dan 200 commando's, onderverdeeld in vier categorieën:

  • Verplicht — moet door het apparaat worden ondersteund;
  • optioneel - uitvoerbaar;
  • Leverancierspecifiek - gebruikt door een specifieke fabrikant;
  • Verouderd - verouderde commando's.

Van de vele commando's zijn er slechts drie verplicht voor apparaten:

  • TESTEENHEID KLAAR — het controleren van de gereedheid van het apparaat;
  • VERZOEK SENSE — vraagt ​​de foutcode van het vorige commando op;
  • ONDERZOEK — vraag naar de belangrijkste kenmerken van het apparaat.

Na ontvangst en verwerking van het commando stuurt het doelapparaat een statuscode naar de initiator, die het resultaat van de uitvoering beschrijft.

Verdere verbetering van SCSI (SCSI-2 en Ultra SCSI-specificaties) breidde de lijst met gebruikte commando's uit en verhoogde het aantal aangesloten apparaten tot 16, en de gegevensuitwisselingssnelheid op de bus tot 640 MB/s. Aangezien SCSI een parallelle interface is, ging het verhogen van de frequentie van gegevensuitwisseling gepaard met een afname van de maximale kabellengte en leidde dit tot ongemakken bij het gebruik.

Beginnend met de Ultra-3 SCSI-standaard, is ondersteuning voor "hot plugging" verschenen - het aansluiten van apparaten wanneer de stroom is ingeschakeld.

De eerste bekende SCSI SSD was de M-Systems FFD-350, uitgebracht in 1995. De schijf had hoge kosten en werd niet veel gebruikt.

Momenteel is parallelle SCSI geen populaire schijfinterface, maar de opdrachtenset wordt nog steeds actief gebruikt in USB- en SAS-interfaces.

ATA/PATA

Inleiding tot SSD. Deel 2. Interface
interface ATA (Advanced Technology Attachment), ook wel bekend als PATA (Parallel ATA) is in 1986 ontwikkeld door Western Digital. De marketingnaam voor de IDE-standaard (Eng. Integrated Drive Electronics - "elektronica ingebouwd in de drive") benadrukte een belangrijke innovatie: de drivecontroller was geïntegreerd in de drive, en niet op een apart uitbreidingsbord.

De beslissing om de controller in de drive te plaatsen loste meerdere problemen tegelijk op. Ten eerste is de afstand van de schijf tot de controller afgenomen, wat de prestaties van de schijf positief heeft beïnvloed. Ten tweede werd de ingebouwde controller alleen voor een bepaald type aandrijving "geslepen" en was dienovereenkomstig goedkoper.

Inleiding tot SSD. Deel 2. Interface
ATA gebruikt, net als SCSI, een parallelle I/O-methode, wat tot uiting komt in de gebruikte kabels. Voor het aansluiten van schijven via de IDE-interface zijn 40-aderige kabels nodig, ook wel platte kabels genoemd. Meer recente specificaties gebruiken 80-draads stubs, waarvan meer dan de helft aardlussen zijn om interferentie bij hoge frequenties te verminderen.

Er zijn twee tot vier connectoren op de ATA-kabel, waarvan er één is aangesloten op het moederbord en de rest op de schijven. Bij het aansluiten van twee apparaten in één lus, moet een ervan worden geconfigureerd als Master, en de tweede als Slaaf. Het derde apparaat kan alleen worden aangesloten in alleen-lezen modus.

Inleiding tot SSD. Deel 2. Interface
De positie van de jumper bepaalt de rol van een bepaald apparaat. De termen Master en Slave met betrekking tot apparaten zijn niet helemaal correct, aangezien met betrekking tot de controller alle aangesloten apparaten Slaves zijn.

Een bijzondere innovatie in ATA-3 is het uiterlijk Zelfcontrole, Analyse- en rapportagetechnologie (SMART). Vijf bedrijven (IBM, Seagate, Quantum, Conner en Western Digital) hebben hun krachten gebundeld en de technologie voor het beoordelen van de gezondheid van schijven gestandaardiseerd.

Ondersteuning voor solid-state schijven bestaat al sinds versie 1998 van de standaard, uitgebracht in 33.3. Deze versie van de standaard bood datatransmissiesnelheden tot XNUMX MB/s.

De norm stelt strenge eisen aan ATA-kabels:

  • de pluim moet vlak zijn;
  • maximale treinlengte 18 inch (45.7 centimeter).

De korte en brede trein was onhandig en belemmerde de koeling. Het werd steeds moeilijker om de transmissiefrequentie te verhogen met elke volgende versie van de standaard, en ATA-7 loste het probleem radicaal op: de parallelle interface werd vervangen door een seriële interface. Daarna verwierf ATA het woord Parallel en werd bekend als PATA, en de zevende versie van de standaard kreeg een andere naam - Serial ATA. SATA-versienummering begon vanaf één.

SATA

Inleiding tot SSD. Deel 2. Interface
De Serial ATA (SATA)-standaard werd geïntroduceerd op 7 januari 2003 en loste de problemen van zijn voorganger op met de volgende wijzigingen:

  • parallelle poort vervangen door serieel;
  • brede 80-aderige kabel vervangen door 7-aderig;
  • de "common bus"-topologie is vervangen door een "point-to-point"-verbinding.

Hoewel SATA 1.0 (SATA/150, 150 MB/s) iets sneller was dan ATA-6 (UltraDMA/130, 130 MB/s), was de overgang naar seriële communicatie "de basis" voor snelheden.

Zestien signaallijnen voor datatransmissie in ATA werden vervangen door twee getwiste paren: één voor verzending, de tweede voor ontvangst. SATA-connectoren zijn ontworpen om beter bestand te zijn tegen meerdere heraansluitingen, en de SATA 1.0-specificatie maakte hot-plugging mogelijk.

Sommige pinnen op de schijven zijn korter dan alle andere. Dit wordt gedaan om "hot swap" (Hot Swap) te ondersteunen. Tijdens het vervangingsproces "verliest" en "vindt" het apparaat de lijnen in een vooraf bepaalde volgorde.

Iets meer dan een jaar later, in april 2004, kwam de tweede versie van de SATA-specificatie uit. Naast het versnellen tot 3 Gb / s, introduceerde SATA 2.0 technologie Native Command Queueing (NCQ). Apparaten met NCQ-ondersteuning kunnen de volgorde van uitvoering van inkomende opdrachten onafhankelijk organiseren om maximale prestaties te bereiken.

Inleiding tot SSD. Deel 2. Interface
De volgende drie jaar werkte de SATA-werkgroep aan het verbeteren van de bestaande specificatie, en versie 2.6 introduceerde compacte Slimline- en micro SATA (uSATA)-connectoren. Deze connectoren zijn een kleinere versie van de originele SATA-connector en zijn ontworpen voor optische drives en kleine drives in laptops.

Terwijl SATA van de tweede generatie genoeg bandbreedte had voor HDD's, eisten SSD's meer. In mei 2009 werd de derde versie van de SATA-specificatie uitgebracht met een verhoogde bandbreedte tot 6 Gb/s.

Inleiding tot SSD. Deel 2. Interface
Bijzondere aandacht werd besteed aan solid state-schijven in de SATA 3.1-editie. Er is een Mini-SATA (mSATA) connector verschenen, ontworpen om solid-state drives in laptops aan te sluiten. In tegenstelling tot Slimline en uSATA zag de nieuwe connector eruit als een PCIe Mini, hoewel hij elektrisch niet compatibel was met PCIe. Naast de nieuwe connector bood SATA 3.1 de mogelijkheid om TRIM-commando's in de wachtrij te plaatsen met lees- en schrijfopdrachten.

Het TRIM-commando stelt de SSD op de hoogte van datablokken die geen payload bevatten. Voorafgaand aan SATA 3.1 zou deze opdracht caches leegmaken en I/O-bewerkingen onderbreken, gevolgd door een TRIM-opdracht. Deze benadering verslechterde de schijfprestaties tijdens verwijderbewerkingen.

De SATA-specificatie heeft de snelle groei van toegangssnelheden voor SSD's niet bijgehouden, wat in 2013 leidde tot een compromis genaamd SATA Express in de SATA 3.2-standaard. In plaats van de bandbreedte van SATA opnieuw te verdubbelen, hebben de ontwikkelaars de veelgebruikte PCIe-bus gebruikt, waarvan de snelheid hoger is dan 6 Gb / s. Schijven met SATA Express-ondersteuning hebben hun eigen vormfactor gekregen, M.2 genaamd.

SAS

Inleiding tot SSD. Deel 2. Interface
De SCSI-standaard, "concurrerend" met ATA, stond ook niet stil en slechts een jaar na het verschijnen van Serial ATA, in 2004, werd het herboren in een seriële interface. De naam van de nieuwe interface is Serial Attached SCSI (SAAS).

Hoewel SAS de SCSI-commandoset heeft geërfd, waren de veranderingen aanzienlijk:

  • seriële interface;
  • 29-aderige kabel met voeding;
  • punt-tot-punt verbinding

SCSI-terminologie is ook geërfd. De controller wordt nog steeds de initiator genoemd en de aangesloten apparaten worden het doel genoemd. Alle doelapparaten en de initiator vormen een SAS-domein. In SAS is de verbindingsbandbreedte niet afhankelijk van het aantal apparaten in het domein, aangezien elk apparaat zijn eigen toegewezen kanaal gebruikt.

Het maximale aantal gelijktijdig verbonden apparaten in een SAS-domein, volgens de specificatie, overschrijdt 16 duizend, en in plaats van een SCSI-ID wordt een identifier gebruikt voor adressering Wereldwijde naam (WWN).

WWN is een unieke identifier van 16 bytes lang, vergelijkbaar met het MAC-adres voor SAS-apparaten.

Inleiding tot SSD. Deel 2. Interface
Ondanks de overeenkomsten tussen SAS- en SATA-connectoren, zijn deze standaarden niet volledig compatibel. Een SATA-schijf kan echter op een SAS-connector worden aangesloten, maar niet andersom. Compatibiliteit tussen SATA-schijven en het SAS-domein wordt gegarandeerd met behulp van het SATA Tunneling Protocol (STP).

De eerste versie van de SAS-1-standaard heeft een bandbreedte van 3 Gb/s, en de modernste, SAS-4, heeft dit cijfer 7 keer verbeterd: 22,5 Gb/s.

PCIe

Inleiding tot SSD. Deel 2. Interface
Peripheral Component Interconnect Express (PCI Express, PCIe) is een seriële interface voor gegevensoverdracht, die verscheen in 2002. De ontwikkeling is gestart door Intel en vervolgens overgedragen aan een speciale organisatie - de PCI Special Interest Group.

De seriële PCIe-interface was geen uitzondering en werd een logische voortzetting van parallelle PCI, die is ontworpen om uitbreidingskaarten aan te sluiten.

PCI Express verschilt aanzienlijk van SATA en SAS. De PCIe-interface heeft een variabel aantal rijstroken. Het aantal lijnen is gelijk aan machten van twee en varieert van 1 tot 16.

De term "lane" in PCIe verwijst niet naar een specifieke signaalbaan, maar naar een aparte full-duplex communicatieverbinding bestaande uit de volgende signaalbanen:

  • ontvang+ en ontvang-;
  • transmissie+ en transmissie-;
  • vier aardedraden.

Het aantal PCIe-lanes heeft direct invloed op de maximale bandbreedte van de verbinding. Met de huidige PCI Express 4.0-standaard kunt u 1.9 GB / s op een enkele lijn behalen en 31.5 GB / s bij gebruik van 16 lijnen.

Inleiding tot SSD. Deel 2. Interface
De "eetlust" van solid-state drives groeit zeer snel. Zowel SATA als SAS hebben hun bandbreedte niet kunnen vergroten om gelijke tred te houden met SSD's, wat heeft geleid tot de introductie van PCIe-verbonden SSD's.

Hoewel PCIe-uitbreidingskaarten zijn vastgeschroefd, is PCIe hot-swappable. Korte pinnen PRSNT (English present - present) zorgen ervoor dat de kaart volledig in het slot zit.

Solid State-schijven die via PCIe zijn aangesloten, worden gereguleerd door een afzonderlijke standaard Niet-vluchtige Memory Host Controller Interface Specificatie en zijn belichaamd in verschillende vormfactoren, maar we zullen er in het volgende deel over praten.

Externe schijven

Bij het maken van grote datawarehouses was er behoefte aan protocollen waarmee u schijven die zich buiten de server bevinden, kunt verbinden. De eerste oplossing op dit gebied was Internet-SCSI (iSCSI), ontwikkeld door IBM en Cisco in 1998.

Het idee achter het iSCSI-protocol is eenvoudig: SCSI-commando's worden in TCP/IP-pakketten "verpakt" en naar het netwerk verzonden. Ondanks de externe verbinding wekt het de illusie bij clients dat de schijf lokaal is aangesloten. Storage Area Network (SAN), gebaseerd op iSCSI, kan worden gebouwd op bestaande netwerkinfrastructuur. Het gebruik van iSCSI verlaagt de kosten van het organiseren van een SAN aanzienlijk.

iSCSI heeft een "premium" optie - Fibre Channel-protocol (FCP). SAN met FCP is gebouwd op speciale glasvezelcommunicatielijnen. Deze aanpak vereist extra optische netwerkapparatuur, maar is stabiel en heeft een hoge doorvoer.

Er zijn veel protocollen voor het verzenden van SCSI-opdrachten via computernetwerken. Er is echter maar één standaard die het tegenovergestelde probleem oplost en waarmee u IP-pakketten over de SCSI-bus kunt verzenden: IP via SCSI.

De meeste SAN-protocollen gebruiken de SCSI-commandoset om schijven te beheren, maar er zijn uitzonderingen, zoals het eenvoudige ATA via Ethernet (AOE). Het AoE-protocol verzendt ATA-opdrachten in Ethernet-pakketten, maar de schijven verschijnen als SCSI in het systeem.

Met de komst van NVM Express-schijven voldoen iSCSI- en FCP-protocollen niet langer aan de snelgroeiende eisen van SSD's. Er kwamen twee oplossingen naar voren:

  • verwijdering van de PCI Express-bus buiten de server;
  • oprichting van het NVMe over Fabrics-protocol.

Het verwijderen van de PCIe-bus creëert complexe schakelhardware, maar verandert het protocol niet.

Het NVMe over Fabrics-protocol is een goed alternatief geworden voor iSCSI en FCP. NVMe-oF maakt gebruik van een glasvezelverbinding en de NVM Express-commandoset.

DDR-T

Inleiding tot SSD. Deel 2. Interface
De iSCSI- en NVMe-oF-standaarden lossen het probleem op van het verbinden van externe schijven als lokale schijven, terwijl Intel de andere kant opging en de lokale schijf zo dicht mogelijk bij de processor bracht. De keuze viel op de DIMM-slots waarin het RAM-geheugen is aangesloten. De maximale DDR4-bandbreedte is 25 GB/s, wat veel sneller is dan de PCIe-bus. Dit is hoe de Intel® Optane™ DC Persistent Memory SSD werd geboren.

Er is een protocol uitgevonden om een ​​drive aan te sluiten op DIMM-slots DDR-T, fysiek en elektrisch compatibel met DDR4, maar vereist een speciale controller die het verschil ziet tussen een geheugenbalk en een schijf. De snelheid van toegang tot de schijf is minder dan voor RAM, maar meer dan voor NVMe.

DDR-T is alleen beschikbaar met processors van de Intel® Cascade Lake-generatie of nieuwer.

Conclusie

Bijna alle interfaces hebben een lange weg afgelegd van seriële naar parallelle datatransmissie. SSD-snelheden schieten omhoog, gisteren waren SSD's een curiositeit en vandaag is NVMe geen verrassing meer.

In ons laboratorium Selectel Lab u kunt zelf SSD- en NVMe-schijven testen.

Alleen geregistreerde gebruikers kunnen deelnemen aan het onderzoek. Inloggen, Alsjeblieft.

Zullen NVMe-schijven in de nabije toekomst klassieke SSD's vervangen?

  • 55.5%Ja100

  • 44.4%Geen80

180 gebruikers hebben gestemd. 28 gebruikers onthielden zich van stemming.

Bron: www.habr.com

Voeg een reactie