Inleiding tot SSD. Deel 2. Interface

Inleiding tot SSD. Deel 2. Interface

In vorige deel In de cyclus 'Inleiding tot SSD' hebben we gesproken over de geschiedenis van de opkomst van schijven. Het tweede deel zal ingaan op de interfaces voor interactie met opslagmedia.

De communicatie tussen de processor en randapparaten verloopt volgens vooraf gedefinieerde afspraken, die interfaces worden genoemd. Deze afspraken reguleren het fysieke en programmatische niveau van interactie.

Een interface is een verzameling middelen, methoden en regels voor interactie tussen de elementen van een systeem.

De fysieke realisatie van de interface beïnvloedt de volgende parameters:

  • de bandbreedte van de communicatielijn;
  • het maximale aantal tegelijkertijd aangesloten apparaten;
  • het aantal fouten dat optreedt.

Schijfinterfaces zijn opgebouwd uit invoer- en uitvoerpoorten, wat het tegenovergestelde is van invoer- en uitvoer via geheugensystemen en geen ruimte in het adresseringsgebied van de processor inneemt.

Parallelle en seriële poorten

Wat betreft de wijze van gegevensuitwisseling worden invoer- en uitvoerpoorten in twee types onderverdeeld:

  • parallel;
  • serieel.

Zoals de naam al aangeeft, verzendt de parallelle poort in één keer een machinetaalwoord dat uit meerdere bits bestaat. De parallelle poort is de eenvoudigste manier van gegevensuitwisseling, omdat het geen complexe technische oplossingen vereist. In de eenvoudigste gevallen wordt elke bit van het machinetaalwoord verzonden via zijn eigen signaallijn, en voor feedback worden twee speciale signaallijnen gebruikt: Gegevens zijn gereed en Gegevens zijn ontvangen.

Inleiding tot SSD. Deel 2. Interface
Parallelle poorten schalen op het eerste gezicht geweldig: meer signaallijnen betekent meer bits die tegelijk worden verzonden en dus een hogere bandbreedte. Echter, door de toename van het aantal signaallijnen ontstaat er interferentie tussen deze lijnen, wat leidt tot vervorming van de verzonden berichten.

Seriële poorten zijn het tegenovergestelde van parallelle poorten. Gegevens worden bit voor bit verzonden, wat het totale aantal signaallijnen vermindert, maar de invoer- en uitvoercontroller complexer maakt. De verzendcontroller ontvangt het machinetaalwoord in één keer en moet bits één voor één verzenden, terwijl de ontvangcontroller de bits moet ontvangen en ze in dezelfde volgorde moet opslaan.

Inleiding tot SSD. Deel 2. Interface
Een klein aantal signaallijnen maakt het mogelijk om de transmissiefrequentie van het bericht zonder storing te verhogen.

SCSI

Inleiding tot SSD. Deel 2. Interface
Small Computer Systems Interface (SCSI) werd opgericht in 1978 en was oorspronkelijk ontwikkeld om verschillende apparaten in één enkel systeem te integreren. De SCSI-1 specificatie voorzag in de aansluiting van maximaal 8 apparaten (inclusief de controller), zoals:

  • scanners;
  • bandopslag (streamers);
  • optische schijven;
  • harde schijven en andere apparaten.

Oorspronkelijk heette SCSI Shugart Associates System Interface (SASI), maar de standaardisatiecommissie zou de naam niet goedkeuren uit naam van het bedrijf, en na een brainstormsessie werd de naam Small Computer Systems Interface (SCSI) gekozen. De 'vader' van SCSI, Larry Boucher, had bedoeld dat de afkorting uitgesproken zou worden als 'sexy', maar Dal Allan las het als 'sсuzzy'. Later raakte de uitspraak 'sсuzzy' stevig verbonden met deze standaard.

In de SCSI-terminologie worden aangesloten apparaten onderverdeeld in twee soorten:

  • initiators;
  • doelapparaten.

Een initiator verstuurt een opdracht naar een doelapparaat, dat dan een antwoord terugstuurt naar de initiator. Initiators en doelapparaten zijn aangesloten op dezelfde SCSI-bus, waarvoor de bandbreedte in de SCSI-1 standaard 5 MB/s bedraagt.

De gebruikte 'bus-topologie' heeft een aantal beperkingen:

  • aan de uiteinden van de bus zijn speciale apparaten nodig - terminators;
  • de bandbreedte van de bus wordt gedeeld tussen 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 genoemd SCSI Target ID. Elke SCSI-unit in het systeem wordt weergegeven door ten minste één logisch apparaat, waarvan de adressering gebeurt op basis van een uniek nummer binnen het fysieke apparaat Logical Unit Number (LUN).

Inleiding tot SSD. Deel 2. Interface
Commando's in SCSI worden verzonden in de vorm van opdrachtbeschrijvingsblokken (Command Descriptor Block, CDB), bestaande uit een operatiecode en de parameters van de opdracht. De standaard beschrijft meer dan 200 opdrachten, onderverdeeld in vier categorieën:

  • Verplicht - moeten door het apparaat worden ondersteund;
  • Optioneel - kunnen worden geïmplementeerd;
  • Fabrikant-specifiek - wordt door een specifieke fabrikant gebruikt;
  • Verouderd - verouderde commando's.

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

  • TEST UNIT READY - controleert de gereedheid van het apparaat;
  • REQUEST SENSE - vraagt om de foutcode van de vorige opdracht;
  • INQUIRY - vraagt om de basiskenmerken van het apparaat.

Na het ontvangen en verwerken van het commando stuurt het doelapparaat een statuscode terug naar de initiator, die het resultaat van de uitvoering beschrijft.

Verdere verbeteringen aan SCSI (de SCSI-2 en Ultra SCSI specificaties) hebben de lijst met gebruikte commando's uitgebreid en het aantal aangesloten apparaten tot 16 verhoogd, terwijl de datasnelheid op de bus tot 640 MB/s is gestegen. Aangezien SCSI een parallelle interface is, ging een verhoging van de datasnelheid gepaard met een verkorting van de maximale kabellengte, wat het gebruik bemoeilijkte.

Met de Ultra-3 SCSI standaard kwam ondersteuning voor 'hot-swapping' — het aansluiten van apparaten met ingeschakelde voeding.

De eerste bekende SSD met een SCSI-interface is de M-Systems FFD-350, die in 1995 werd uitgebracht. De schijf had een hoge prijs en was niet wijdverbreid.

Tegenwoordig is parallelle SCSI niet meer populair als interface voor schijfverbindingen, maar de commando-set 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) werd in 1986 ontwikkeld door Western Digital. De marketingnaam van de standaard IDE (Integrated Drive Electronics — 'elektronica ingebouwd in de schijf') benadrukte de belangrijke innovatie: de schijfcontroller was in de schijf ingebouwd en niet op een apart uitbreidingsbord.

De beslissing om de controller in de schijf te plaatsen loste verschillende problemen op. Ten eerste werd de afstand van de opslag naar de controller verkort, wat een positieve invloed had op de prestaties van de opslag. Ten tweede was de ingebouwde controller specifiek ontworpen voor één type schijf en dus goedkoper.

Inleiding tot SSD. Deel 2. Interface
ATA, net als SCSI, gebruikt een parallele invoer/uitvoer methode, wat zich weerspiegelt in de gebruikte kabels. Voor de aansluiting van schijven met de IDE-interface zijn 40-aderige kabels, ook wel ribbon cables genoemd, nodig. In latere specificaties worden 80-aderige ribbon cables gebruikt, waarvan meer dan de helft aardingsdraden zijn om interferentie op hoge frequenties te verminderen.

Op de ATA ribbon cable zijn er twee tot vier connectoren aanwezig, waarvan er één op het moederbord is aangesloten en de andere op de opslagapparaten. Bij het aansluiten van twee apparaten aan één ribbon, moet één van hen worden geconfigureerd als Master, en de andere als SlaveHet derde apparaat kan uitsluitend in de modus "alleen-lezen" worden aangesloten.

Inleiding tot SSD. Deel 2. Interface
De positie van de jumper bepaalt de rol van het specifieke apparaat. De termen Master en Slave met betrekking tot apparaten zijn niet helemaal correct, omdat alle aangesloten apparaten ten opzichte van de controller Slaves zijn.

Een bijzondere vernieuwing in ATA-3 is de introductie van Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Vijf bedrijven (IBM, Seagate, Quantum, Conner en Western Digital) hebben samengewerkt en de technologie voor het beoordelen van de staat van schijven gestandaardiseerd.

Ondersteuning voor solid-state drives werd geïntroduceerd met de vierde versie van de standaard, die in 1998 werd uitgebracht. Deze versie van de standaard bood een gegevensoverdrachtsnelheid tot 33,3 MB/s.

De standaard stelt strenge eisen aan de ATA-kabels:

  • de kabel moet plat zijn;
  • de maximale lengte van de kabel is 18 inch (45,7 centimeter).

Een korte en brede kabel was onhandig en verhinderde koeling. Het werd steeds moeilijker om de overdrachtsnelheid met elke volgende versie van de standaard te verhogen, en ATA-7 loste het probleem radicaal op: de parallelle interface werd vervangen door een seriële. Daaropvolgend verkreeg ATA het woord Parallel en werd het PATA genoemd, terwijl de zevende versie van de standaard een andere naam kreeg — Serial ATA. De nummering van de SATA-versies begon met één.

SATA

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

  • de parallelle poort werd vervangen door een seriële;
  • de brede 80-aderige kabel werd vervangen door een 7-aderige;
  • de topologie "gemeenschappelijke bus" werd vervangen door punt-tot-punt verbinding.

Hoewel de SATA 1.0 standaard (SATA/150, 150 MB/s) iets sneller was dan ATA-6 (UltraDMA/130, 130 MB/s), was de overgang naar een seriële gegevensoverdracht "de voorbereiding op" een toename van de snelheden.

Zestien signaallijnen voor gegevensoverdracht in ATA werden vervangen door twee twisted pairs: één voor verzending, de andere voor ontvangst. SATA-connectors zijn ontworpen voor een betere weerstand tegen meerdere herverbindingen, en de SATA 1.0 specificatie maakte "hot-plug" mogelijk.

Sommige pinnen op de schijven zijn korter dan de andere. Dit is gedaan ter ondersteuning van "hot-swap". Tijdens de vervangingsprocedure "verliest" het apparaat lijnen en "vindt" deze in een vooraf bepaalde volgorde.

Bijna een jaar later, in april 2004, werd de tweede versie van de SATA-specificatie uitgebracht. Naast een snelheid tot 3 Gbit/s introduceerde SATA 2.0 de technologie Native Command Queuing (NCQ). Apparaten die NCQ ondersteunen, kunnen de volgorde van de ontvangen opdrachten zelf organiseren om maximale prestaties te behalen.

Inleiding tot SSD. Deel 2. Interface
De daaropvolgende drie jaar werkte de SATA Working Group aan het verbeteren van de bestaande specificatie en in versie 2.6 werden de compacte connectors Slimline en micro SATA (uSATA) geïntroduceerd. Deze connectors zijn een kleinere versie van de originele SATA-connector en zijn ontwikkeld voor optische drives en kleine schijven in laptops.

Hoewel de bandbreedte van de tweede generatie SATA voldoende was voor harde schijven, vereisten solid-state drives meer. In mei 2009 werd de derde versie van de SATA-specificatie uitgebracht met een verhoogde bandbreedte tot 6 Gbit/s.

Inleiding tot SSD. Deel 2. Interface
In de editie SATA 3.1 kreeg solid-state drives speciale aandacht. Er kwam een Mini-SATA (mSATA) connector die bedoeld was voor het aansluiten van solid-state drives in laptops. In tegenstelling tot Slimline en uSATA leek de nieuwe connector op PCIe Mini, hoewel deze niet elektrisch compatibel was met PCIe. Naast de nieuwe connector kon SATA 3.1 ook de TRIM-opdrachten in de wachtrij zetten samen met lees- en schrijfopdrachten.

De TRIM-opdracht informeert de solid-state drive over gegevensblokken die geen nuttige informatie bevatten. Voor SATA 3.1 leidde de uitvoering van deze opdracht tot het wissen van caches en het pauzeren van I/O-bewerkingen, gevolgd door de uitvoering van de TRIM-opdracht. Deze aanpak verminderde de prestaties van de schijf bij verwijderbewerkingen.

De SATA-specificatie kon niet gelijke tred houden met de snelle groei van de toegangssnelheid naar solid-state drives, wat leidde tot de introductie van een compromis genaamd SATA Express in de standaard SATA 3.2 in 2013. In plaats van de bandbreedte van SATA opnieuw te verdubbelen, maakten de ontwikkelaars gebruik van de veelgebruikte PCIe-bus, die een snelheid heeft die hoger is dan 6 Gbit/s. Schijven die SATA Express ondersteunen, kregen een eigen factorformaat genaamd M.2.

SAS

Inleiding tot SSD. Deel 2. Interface
De 'concurrerende' SCSI-standaard bleef ook niet stilzitten en slechts een jaar na de opkomst van Serial ATA, in 2004, werd het omgevormd tot een seriële interface. De naam van de nieuwe interface is Serial Attached SCSI (SAS).

Hoewel SAS een set SCSI-opdrachten heeft geërfd, waren de veranderingen aanzienlijk:

  • seriële interface;
  • 29-aderige voedingskabel;
  • point-to-point verbinding

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

Het maximale aantal gelijktijdig aangesloten apparaten in een SAS-domein volgens de specificatie is meer dan 16.000, en in plaats van SCSI ID voor adressering wordt een identificator gebruikt World-Wide Name (WWN).

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

Inleiding tot SSD. Deel 2. Interface
Hoewel de aansluitingen van SAS en SATA op elkaar lijken, zijn deze standaarden niet volledig compatibel. Een SATA-schijf kan echter in een SAS-aansluiting worden aangesloten, maar niet andersom. Compatibiliteit tussen SATA-schijven en het SAS-domein wordt bereikt via het SATA Tunneling Protocol (STP).

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

PCIe

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

De seriële interface PCIe was geen uitzondering en werd een logisch vervolg op het parallelle PCI, dat bedoeld was voor de aansluiting van uitbreidingskaarten.

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

De term 'lijn' in PCIe verwijst niet naar een specifieke signaallijn, maar naar een afzonderlijk full-duplex communicatiekanaal, bestaande uit de volgende signaallijnen:

  • ontvangst+ en ontvangst-;
  • zender+ en zender-;
  • vier aardingsdraden.

Het aantal PCIe-lijnen heeft directe invloed op de maximale bandbreedte van de verbinding. De moderne standaard PCI Express 4.0 staat een snelheid van 1.9 GB/s per lijn toe, en 31.5 GB/s bij gebruik van 16 lijnen.

Inleiding tot SSD. Deel 2. Interface
De „honger” van solid-state drives stijgt zeer snel. Zowel SATA als SAS kunnen hun bandbreedte niet snel genoeg verhogen om de SSD's bij te houden, wat heeft geleid tot de ontwikkeling van SSD's die via PCIe zijn aangesloten.

Hoewel PCIe Add-In kaarten met een schroef worden vastgemaakt, ondersteunt PCIe „hot swapping”. Korte pinnen PRSNT (Engels: present) zorgen ervoor dat de kaart volledig in de sleuf is geïnstalleerd.

Solid-state drives die via PCIe zijn aangesloten, worden gereguleerd door een aparte standaard. Non-Volatile Memory Host Controller Interface Specification en worden gerealiseerd in verschillende form factors, maar daarover zullen we in het volgende deel vertellen.

Externe opslagmedia

Bij de creatie van grote datastorages ontstond de behoefte aan protocollen die het mogelijk maken om opslagmedia buiten de server aan te sluiten. De eerste oplossing op dit gebied was Internet SCSI (iSCSI), ontwikkeld door IBM en Cisco in 1998.

Het idee van het iSCSI-protocol is eenvoudig: SCSI-commando's worden „ingepakt” in TCP/IP-pakketten en via het netwerk verzonden. Ondanks de externe verbinding creëert het voor de klanten de illusie dat de opslagmedium lokaal is aangesloten. Een storage area network (SAN) dat op iSCSI is gebaseerd, kan worden opgebouwd op bestaande netwerkinfrastructuur. Het gebruik van iSCSI verlaagt aanzienlijk de kosten voor het opzetten van een SAN.

Er is een „premium” variant van iSCSI — Fibre Channel Protocol (FCP). Een SAN met gebruik van FCP wordt opgebouwd op speciale glasvezellijnen. Deze aanpak vereist extra optische netwerkinfrastructuur, maar biedt stabiliteit en hoge bandbreedte.

Er zijn verschillende protocollen voor het verzenden van SCSI-commando's over computernetwerken. Echter, er is slechts één standaard die het tegenovergestelde probleem oplost en het mogelijk maakt om IP-pakketten over een SCSI-bus te verzenden — IP-over-SCSI.

De meeste protocollen voor het opzetten van een SAN maken gebruik van een set SCSI-commando's voor het beheren van opslagmedia, maar er zijn ook uitzonderingen, zoals de eenvoudige ATA over Ethernet (AoE). Het AoE-protocol verzendt ATA-commando's in Ethernet-pakketten, maar in het systeem worden de opslagmedia weergegeven als SCSI.

Met de opkomst van NVM Express-opslagmedia voldoen de protocollen iSCSI en FCP niet meer aan de snel groeiende eisen van solid-state drives. Er zijn twee oplossingen ontstaan:

  • het uitbreiden van de PCI Express-bus buiten de server;
  • het creëren van het NVMe over Fabrics-protocol.

De PCIe-busuitgang gaat gepaard met het creëren van complexe switchapparatuur, maar verandert het protocol niet.

Het NVMe over Fabrics-protocol is een goede vervanging voor iSCSI en FCP. NVMe-oF maakt gebruik van glasvezelverbindingen en een set NVM Express-commando's.

DDR-T

Inleiding tot SSD. Deel 2. Interface
De standaarden iSCSI en NVMe-oF lossen het probleem op van de verbinding van externe schijven als lokale schijven, maar Intel heeft een andere weg ingeslagen en heeft de lokale schijf zo dicht mogelijk bij de processor gebracht. Ze hebben gekozen voor DIMM-sleuven, waarin het RAM wordt aangesloten. De maximale bandbreedte van de DDR4-kanaal bedraagt 25 GB/s, wat aanzienlijk hoger is dan de snelheid van de PCIe-bus. Zo ontstond de Intel® Optane™ DC Persistent Memory.

Om een schijf in DIMM-sleuven aan te sluiten, is er een protocol uitgevonden DDR-T, dat fysiek en elektrisch compatibel is met DDR4, maar een speciale controller vereist die het verschil tussen een geheugenchip en een schijfje herkent. De toegangssnelheid tot de schijf is lager dan die van het RAM, maar hoger dan die van NVMe.

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

Conclusie

Bijna alle interfaces hebben een lange weg afgelegd van seriële naar parallelle gegevensoverdracht. De snelheden van SSD's groeien snel; gister waren SSD's nog een noviteit en tegenwoordig wekt NVMe al geen verbazing meer.

In ons laboratorium Selectel Lab kun je zelf SSD's en NVMe-schijven testen.

Alleen geregistreerde gebruikers kunnen deelnemen aan de enquête. Log in, alstublieft.

Zullen NVMe-schijven de klassieke SSD's binnenkort verdringen?

  • 55.5%Ja100

  • 44.4%Nee80

180 gebruikers hebben gestemd. 28 gebruikers hebben zich onthouden.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster