Introduktion til SSD. Del 2. Interface

Introduktion til SSD. Del 2. Interface

I den forrige del I cyklus «Introduktion til SSD» har vi talt om historien bag diskene. Den anden del vil handle om grænsefladerne til interaktion med lagermedier.

Kommunikationen mellem procesoren og perifere enheder sker i overensstemmelse med foruddefinerede aftaler, kaldet grænseflader. Disse aftaler regulerer det fysiske og programniveau for interaktionen.

En grænseflade er en samling af værktøjer, metoder og regler for interaktion mellem systemelementerne.

Den fysiske implementering af grænsefladen påvirker følgende parametre:

  • båndbredden af kommunikationskanalen;
  • det maksimale antal tilsluttede enheder samtidig;
  • antal opståede fejl.

Diskgrænseflader er bygget på ind- og udgangsporte, hvilket er modsat ind- og udgang gennem hukommelsen og optager ikke plads i procesorens adresserum.

Parallelle og serielle porte

Efter datatransmissionsmetode opdeles ind- og udgangsportene i to typer:

  • parallelle;
  • serielle.

Som navnet antyder, sender den parallelle port en maskineord ad gangen, som består af flere bits. Den parallelle port er den enkleste metode til datatransmission, da den ikke kræver komplekse kredsløbsdesign. I det simpleste tilfælde sendes hver bit af maskineordet via sin egen signallinje, og der anvendes to betjeningssignallinjer til feedback: Data klar og Data modtaget.

Introduktion til SSD. Del 2. Interface
Parallelle porte ser ved første øjekast ud til at skalere glimrende: flere signallinjer betyder, at flere bits sendes ad gangen og dermed en højere båndbredde. Alligevel, på grund af det stigende antal signallinjer, opstår der interferens mellem dem, hvilket fører til forvrængning af de sendte beskeder.

Serielle porte er modsætningen af parallelle. Data sendes en bit ad gangen, hvilket reducerer det samlede antal signallinjer, men komplicerer ind- og udgangskontrollen. Afsendelseskontrolleren modtager maskinenordet ad gangen og skal sende en bit ad gangen, mens modtagekontrolleren i sin tur skal modtage bits og gemme dem i den samme rækkefølge.

Introduktion til SSD. Del 2. Interface
Det lille antal signallinjer muliggør en problemfri stigning i transmissionsfrekvensen.

SCSI

Introduktion til SSD. Del 2. Interface
Small Computer Systems Interface (SCSI) blev introduceret tilbage i 1978 og blev oprindeligt udviklet for at forbinde forskellige typer enheder i et samlet system. SCSI-1 specifikationen gav mulighed for tilslutning af op til 8 enheder (inklusive kontrolenheden), såsom:

  • scannere;
  • båndlagringsenheder (streamere);
  • optiske drev;
  • diskdrev og andre enheder.

Oprindeligt blev SCSI kaldt Shugart Associates System Interface (SASI), men standardiseringskomiteen ville ikke godkende et navn, der hyldede virksomheden, og efter en brainstorming-dag blev navnet Small Computer Systems Interface (SCSI) født. "Faderen" til SCSI, Larry Boucher, mente, at forkortelsen skulle udtales som "sexy", men Dal Allan lød som "sсuzzy". Udtalen "sсuzzy" har siden været fast etableret for denne standard.

I SCSI-terminologi opdeles tilsluttede enheder i to typer:

  • initiatorer;
  • mål-enheder.

Initiatoren sender en kommando til mål-enheden, som derefter sender et svar tilbage til initiatoren. Initiatorer og mål-enheder er tilsluttet en fælles SCSI-bus, hvis båndbredde i SCSI-1 standarden er 5 MB/s.

Den anvendte topologi "fælles bus" pålægger en række begrænsninger:

  • der kræves specielle enheder - terminatorer - i enderne af bussen;
  • båndbredden på bussen deles mellem alle enheder;
  • det maksimale antal tilsluttede enheder er begrænset.

Introduktion til SSD. Del 2. Interface

Enheder på bussen identificeres ved et unikt nummer kaldet SCSI Target ID. Hver SCSI-enhed i systemet er repræsenteret af mindst én logisk enhed, hvis adressering sker ved hjælp af et unikt nummer inden for den fysiske enhed, kaldet Logical Unit Number (LUN).

Introduktion til SSD. Del 2. Interface
Kommandoer i SCSI sendes som kommando beskrivelsesblokke (Command Descriptor Block, CDB), som består af en operationskode og kommandoparametre. Standarden beskriver mere end 200 kommandoer, opdelt i fire kategorier:

  • Mandatory — skal understøttes af enheden;
  • Optional — kan implementeres;
  • Vendor-specific — anvendes af en specifik producent;
  • Obsolete — forældede kommandoer.

Blandt de mange kommandoer er kun tre af dem obligatoriske for enheder:

  • TEST UNIT READY — tjekker enhedens beredskab;
  • REQUEST SENSE — anmoder om fejlkoden fra den forrige kommando;
  • INQUIRY — anmoder om grundlæggende enhedskarakteristika.

Efter at have modtaget og behandlet kommandoen sender den målrettede enhed en statuskode til initiatoren, som beskriver resultatet af udførelsen.

Den videre forbedring af SCSI (specifikationerne SCSI-2 og Ultra SCSI) udvidede listen over anvendte kommandoer og øgede antallet af tilsluttede enheder til 16, mens dataoverførselshastigheden over bussen nåede op på 640 MB/s. Da SCSI er en parallel interface, medførte en stigning i dataoverførselshastigheden en reduktion af den maksimale kabellængde, hvilket gjorde brugen besværlig.

Fra standarden Ultra-3 SCSI blev der indført støtte til 'hot-plugging' - tilslutning af enheder, mens strømmen er tændt.

Den første kendte SSD-disk med SCSI-interface kan betragtes som M-Systems FFD-350, som blev udgivet i 1995. Disken havde en høj pris og var ikke bredt udbredt.

I dag er parallel SCSI ikke en populær interface til tilslutning af diske, men sæt af kommandoer bruges stadig aktivt i USB- og SAS-interfacene.

ATA / PATA

Introduktion til SSD. Del 2. Interface
Interface ATA (Advanced Technology Attachment), også kendt som PATA (Parallel ATA) blev udviklet af Western Digital i 1986. Det markedsføringsmæssige navn for standarden, IDE (Integrated Drive Electronics - 'elektronik integreret i drevet'), fremhævede en vigtig innovation: controlleren til drevet blev indbygget i drevet i stedet for at være på et separat udvidelseskort.

Beslutningen om at placere controlleren inde i drevet løste flere problemer. For det første blev afstanden fra lagermediet til controlleren reduceret, hvilket havde en positiv indvirkning på lagermediets præstationer. For det andet var den indbyggede controller 'skræddersyet' til en bestemt type drev og var derfor billigere.

Introduktion til SSD. Del 2. Interface
ATA, ligesom SCSI, bruger en parallel metode til input-output, hvilket afspejles i de anvendte kabler. For at tilslutte diske med IDE-interface kræves 40-trådede kabler, også kaldet fladekabler. I de nyere specifikationer anvendes 80-trådede fladekabler, hvoraf mere end halvdelen er jordforbindelser for at reducere interferens ved høje frekvenser.

På ATA-fladekablet er der fra to til fire stik, hvoraf et tilsluttes bundkortet, og de andre tilsluttes lagermedierne. Når to enheder tilsluttes med et fladekabel, skal den ene konfigureres som Master, og den anden som Slave. Det tredje enhed kan kun tilsluttes i "læs kun"-tilstand.

Introduktion til SSD. Del 2. Interface
Jumperindstillingen bestemmer rollen for den specifikke enhed. Termerne Master og Slave i forhold til enheder er ikke helt korrekte, da alle tilsluttede enheder i forhold til controlleren er Slaves.

En særlig innovation i ATA-3 er introduktionen af Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Fem virksomheder (IBM, Seagate, Quantum, Conner og Western Digital) samarbejdede og standardiserede teknologien til vurdering af tilstande i lagermedier.

Understøttelsen af SSD'er kom med den fjerde version af standarden, der blev udgivet i 1998. Denne version af standarden gav en dataoverførselshastighed på op til 33,3 MB/s.

Standarden stiller strenge krav til ATA-kablerne:

  • kablet skal nødvendigvis være fladt;
  • den maksimale længde på kablet er 18 tommer (45,7 centimeter).

Et kort og bredt kabel var besværligt og hæmmede kølingen. Det blev stadig sværere at øge transmissionsfrekvensen med hver ny version af standarden, og ATA-7 løste problemet radikalt: den parallelle interface blev erstattet af en seriel. Herefter fik ATA ordet Parallel og blev kendt som PATA, mens den syvende version af standarden fik et andet navn — Serial ATA. Nummereringen af SATA-versioner begyndte med ét.

SATA

Introduktion til SSD. Del 2. Interface
Standard Serial ATA (SATA) blev introduceret den 7. januar 2003 og løste problemerne fra sin forgænger med følgende ændringer:

  • den parallelle port blev erstattet af en seriel;
  • det brede 80-trådede kabel blev erstattet af et 7-trådede;
  • topologien "fælles bus" blev erstattet af punkt-til-punkt-forbindelse.

Selvom standarden SATA 1.0 (SATA/150, 150 MB/s) var en smule hurtigere end ATA-6 (UltraDMA/130, 130 MB/s), var overgangen til seriel dataudveksling "forberedelsen" til at øge hastighederne.

Sytten signalledninger til dataoverførsel i ATA blev erstattet med to tvistede par: et til transmission, det andet til modtagelse. SATA-stik er designet til bedre modstandsdygtighed over for flere genforbindelser, og specifikationen for SATA 1.0 gjorde "hot swapping" (Hot Plug) muligt.

Nogle pins på drevene er kortere end de øvrige. Dette er gjort for at understøtte "hot swapping" (Hot Swap). I forbindelse med udskiftningen "mistede" enheden og "fandt" forbindelserne i en forudbestemt rækkefølge.

Lidt over et år senere, i april 2004, udkom den anden version af SATA-specifikationerne. Udover en hastighedsforøgelse til 3 Gbit/s indførte SATA 2.0 teknologien Native Command Queuing (NCQ). Enheder, der understøtter NCQ, kan selv organisere rækkefølgen af de modtagne kommandoer for at opnå maksimal ydeevne.

Introduktion til SSD. Del 2. Interface
De næste tre år arbejdede SATA Working Group på at forbedre den eksisterende specifikation, og i version 2.6 dukkede de kompakte forbindelser Slimline og micro SATA (uSATA) op. Disse forbindelser er en reduceret version af den originale SATA-forbindelse og er designet til optiske drev og små diske i bærbare computere.

Selvom båndbredden i den anden generation af SATA var tilstrækkelig til hårddiske, krævede solid state-drev mere. I maj 2009 blev den tredje version af SATA-specifikationen udgivet med en øget båndbredde på 6 Gbit/s.

Introduktion til SSD. Del 2. Interface
Specifikationen SATA 3.1 satte særlig fokus på solid state-drev. Den introducerede en Mini-SATA (mSATA) forbindelse, der var beregnet til tilslutning af solid state-drev i bærbare computere. I modsætning til Slimline og uSATA lignede den nye forbindelse PCIe Mini, selvom den ikke var elektrisk kompatibel med PCIe. Udover den nye forbindelse kunne SATA 3.1 prale af muligheden for at sætte TRIM-kommandoer i kø med læse- og skrivekommandoer.

TRIM-kommandoen informerer solid state-drevet om dataområder, der ikke indeholder nyttelast. Inden SATA 3.1 førte udførelsen af denne kommando til nulstilling af caches og ophør af I/O-operationer med efterfølgende udførelse af TRIM-kommandoen. Denne tilgang forringede diskens ydeevne ved sletteoperationer.

SATA-specifikationen kunne ikke følge med den hurtige vækst i adgangshastigheden til solid state-drev, hvilket førte til fremkomsten af SATA Express-kompromiset i standarden SATA 3.2 i 2013. I stedet for at fordoble båndbredden i SATA igen, benyttede udviklerne den bredt anvendte PCIe-bus, hvis hastighed overstiger 6 Gbit/s. Drev, der understøtter SATA Express, fik deres egen formfaktor kaldet M.2.

SAS

Introduktion til SSD. Del 2. Interface
Den 'konkurrerende' ATA-standard SCSI stod heller ikke stille og blev kun et år efter fremkomsten af Serial ATA i 2004 forvandlet til et serielt interface. Navnet på det nye interface er Serial Attached SCSI (SAS).

Selvom SAS har arvet SCSI-kommandoerne, har der været betydelige ændringer:

  • seriel interface;
  • 29-trådet strømkabel;
  • point-to-point forbindelse

Terminologien fra SCSI er også blevet arvet. Kontrolleren kaldes stadig initiatoren, mens de tilsluttede enheder kaldes mål. Alle målenheder og initiatoren udgør et SAS-domæne. I SAS afhænger båndbredden for forbindelsen ikke af antallet af enheder i domænet, da hver enhed bruger sin dedikerede kanal.

Det maksimale antal samtidig tilsluttede enheder i et SAS-domæne efter specifikationen overstiger 16.000, og i stedet for SCSI ID til adressering bruges en identifikator World-Wide Name (WWN).

WWN er en unik identifikator på 16 bytes, svarende til en MAC-adresse for SAS-enheder.

Introduktion til SSD. Del 2. Interface
Selvom SAS- og SATA-stik er ens, er disse standarder ikke fuldt kompatible. SATA-diske kan dog tilsluttes en SAS-stik, men ikke omvendt. Kompatibiliteten mellem SATA-diske og SAS-domænet sikres ved hjælp af SATA Tunneling Protocol (STP).

Den første version af SAS-standarden, SAS-1, har en båndbredde på 3 Gb/s, mens den nyeste, SAS-4, har forbedret dette tal syv gange: 22,5 Gb/s.

PCIe

Introduktion til SSD. Del 2. Interface
Peripheral Component Interconnect Express (PCI Express, PCIe) er et serielt interface til dataoverførsel, der blev introduceret i 2002. Udviklingen blev påbegyndt af Intel og blev senere overført til en specialorganisation - PCI Special Interest Group.

Det serielle PCIe-interface var ikke en undtagelse og blev en logisk fortsættelse af det parallelle PCI, der er beregnet til tilslutning af udvidelseskort.

PCI Express adskiller sig betydeligt fra SATA og SAS. PCIe-interface har et variabelt antal baner. Antallet af baner er lig med potenser af to og varierer fra 1 til 16.

Begrebet "bane" i PCIe refererer ikke til en specifik signalline, men til en separat fuld duplex kommunikationskanal, der består af følgende signallinjer:

  • modtagelse+ og modtagelse-;
  • transmission+ og transmission-;
  • fire jordledninger.

Antallet af PCIe-baner påvirker direkte den maksimale båndbredde for forbindelsen. Den moderne standard PCI Express 4.0 gør det muligt at nå 1,9 GB/s pr. bane og 31,5 GB/s ved brug af 16 baner.

Introduktion til SSD. Del 2. Interface
«Appetitterne» hos solid state-drev vokser meget hurtigt. Både SATA og SAS kan ikke følge med til at øge deres båndbredde for at «indhente» SSD, hvilket har ført til opkomsten af SSD-drev, der forbindes via PCIe.

Selvom PCIe Add-In kort fastgøres med en skrue, understøtter PCIe «hot swap». De korte stik PRSNT (engelsk: present) sikrer, at kortet er helt installeret i slotten.

Solid state-drev, der tilsluttes via PCIe, reguleres af en særlig standard Non-Volatile Memory Host Controller Interface Specification og findes i mange formfaktorer, men det vil vi tale om i næste del.

Fjernlagrede drev

Ved oprettelsen af store datalagre opstod behovet for protokoller, der muliggør tilslutning af drev placeret uden for serveren. Den første løsning på dette område var Internet SCSI (iSCSI), udviklet af IBM og Cisco i 1998.

Ideen bag iSCSI-protokollen er simpel: SCSI-kommandoer «indlejres» i TCP/IP-pakker og sendes over netværket. På trods af den fjernt tilslutning skabes der en illusion for klienterne om, at drevet er tilsluttet lokalt. Et Storage Area Network (SAN), der er baseret på iSCSI, kan opbygges på den eksisterende netværksinfrastruktur. Brug af iSCSI reducerer betydeligt omkostningerne ved at opbygge et SAN.

iSCSI har en «premium» variant — Fibre Channel Protocol (FCP). SAN, der bruger FCP, bygges på dedikerede fiberoptiske forbindelser. Denne tilgang kræver ekstra optisk netværksudstyr, men adskiller sig ved stabilitet og høj båndbredde.

Der findes mange protokoller til at sende SCSI-kommandoer over computernetværk. Der er dog kun en standard, der løser det modsatte problem og muliggør sending af IP-pakker over SCSI-bussen — IP-over-SCSI.

De fleste protokoller til opbygning af SAN bruger SCSI-kommandoer til at styre drevene, men der findes undtagelser, som for eksempel den enkle ATA over Ethernet (AoE). AoE-protokollen sender ATA-kommandoer i Ethernet-pakker, men drevene vises som SCSI i systemet.

Med fremkomsten af NVM Express-drev er iSCSI og FCP-protokollerne ikke længere tilstrækkelige til de hurtigt stigende krav fra solid state-drev. Der er opstået to løsninger:

  • at tage PCI Express-bussen uden for serveren;
  • at oprette en NVMe over Fabrics-protokol.

Attractions of the PCIe bus involve the creation of complex switching equipment, but do not change the protocol.

The NVMe over Fabrics protocol has become a good alternative to iSCSI and FCP. NVMe-oF uses fiber optic communication lines and the NVM Express command set.

DDR-T

Introduktion til SSD. Del 2. Interface
The iSCSI and NVMe-oF standards address the task of connecting remote disks as if they were local, while Intel has taken a different path, bringing the local disk as close as possible to the processor. The choice fell on DIMM slots where the RAM is plugged in. The maximum bandwidth of the DDR4 channel is 25 GB/s, significantly exceeding the speed of the PCIe bus. This led to the creation of the Intel® Optane™ DC Persistent Memory solid-state drive.

To connect the drive into DIMM slots, a protocol was invented DDR-T, which is physically and electrically compatible with DDR4, but requires a special controller that distinguishes between a memory stick and a drive. The access speed to the drive is lower than that of RAM, but higher than that of NVMe.

The DDR-T protocol is only available with Intel® processors of the Cascade Lake generation or newer.

Konklusion

Almost all interfaces have come a long way from serial to parallel data transmission. The speeds of solid-state drives are rapidly increasing; just yesterday solid-state drives were a novelty, and today NVMe no longer causes particular surprise.

In our laboratory Selectel Lab you can test SSD and NVMe drives yourself.

Kun registrerede brugere kan deltage i undersøgelsen. Log ind, please.

Will NVMe drives displace classic SSDs in the near future?

  • 55.5%Yes100

  • 44.4%No80

180 users voted. 28 users abstained.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster