Introducere în SSD-uri. Partea 2. Interfață

Introducere în SSD-uri. Partea 2. Interfață

В ultima parte În seria „Introducere în SSD”, am vorbit despre istoria apariției discurilor. A doua parte va vorbi despre interfețele pentru interacțiunea cu unitățile.

Comunicarea dintre procesor și dispozitivele periferice are loc conform unor convenții predefinite numite interfețe. Aceste acorduri reglementează nivelul fizic și software al interacțiunii.

Interfața este un set de instrumente, metode și reguli de interacțiune între elementele sistemului.

Implementarea fizică a interfeței afectează următorii parametri:

  • capacitatea canalului de comunicare;
  • numărul maxim de dispozitive conectate simultan;
  • numărul de erori care apar.

Interfețele de disc sunt construite pe Porturi I/O, care este opusul I/O de memorie și nu ocupă spațiu în spațiul de adrese al procesorului.

Porturi paralele și seriale

În funcție de metoda de schimb de date, porturile I/O sunt împărțite în două tipuri:

  • paralel;
  • consistent.

După cum sugerează și numele, un port paralel trimite un cuvânt de mașină format din mai mulți biți la un moment dat. Un port paralel este cel mai simplu mod de a face schimb de date, deoarece nu necesită soluții complexe de circuite. În cel mai simplu caz, fiecare bit al unui cuvânt de mașină este trimis de-a lungul propriei linii de semnal și două linii de semnal de serviciu sunt utilizate pentru feedback: Date gata и Date acceptate.

Introducere în SSD-uri. Partea 2. Interfață
Porturile paralele par să se scaleze foarte bine la prima vedere: mai multe linii de semnal înseamnă că sunt transferați mai mulți biți simultan și, prin urmare, un randament mai mare. Cu toate acestea, din cauza creșterii numărului de linii de semnal, între ele apar interferențe, ducând la denaturarea mesajelor transmise.

Porturile seriale sunt opusul porturilor paralele. Datele sunt trimise câte un bit, ceea ce reduce numărul total de linii de semnal, dar adaugă complexitate controlerului I/O. Controlerul emițătorului primește câte un cuvânt de mașină și trebuie să transmită câte un bit, iar controlerul receptor, la rândul său, trebuie să primească biții și să-i memoreze în aceeași ordine.

Introducere în SSD-uri. Partea 2. Interfață
Un număr mic de linii de semnal vă permite să creșteți frecvența transmiterii mesajelor fără interferențe.

SCSI

Introducere în SSD-uri. Partea 2. Interfață
Small Computer Systems Interface (SCSI) a apărut în 1978 și a fost concepută inițial pentru a combina dispozitive de diferite profiluri într-un singur sistem. Specificația SCSI-1 furnizată pentru conectarea a până la 8 dispozitive (împreună cu controlerul), cum ar fi:

  • scanere;
  • Unități de bandă (streamere);
  • unități optice;
  • unități de disc și alte dispozitive.

SCSI a fost inițial numit Shugart Associates System Interface (SASI), dar comitetul de standarde nu a aprobat numele după companie și, după o zi de brainstorming, s-a născut numele Small Computer Systems Interface (SCSI). „Tatăl” SCSI, Larry Boucher, a vrut ca acronimul să fie pronunțat „sexy”, dar Dal Allan Am citit „scuzzy” („spune-mi”). Ulterior, pronunția „skazi” a fost atribuită ferm acestui standard.

În terminologia SCSI, dispozitivele conectate sunt împărțite în două tipuri:

  • inițiatori;
  • dispozitive țintă.

Inițiatorul trimite o comandă către dispozitivul țintă, care apoi trimite un răspuns inițiatorului. Inițiatorii și țintele sunt conectate la o magistrală SCSI comună, care are o lățime de bandă de 1 MB/s în standardul SCSI-5.

Topologia „magistrală comună” utilizată impune o serie de restricții:

  • La capetele magistralei sunt necesare dispozitive speciale - terminatoare;
  • Lățimea de bandă a magistralei este partajată între toate dispozitivele;
  • Numărul maxim de dispozitive conectate simultan este limitat.

Introducere în SSD-uri. Partea 2. Interfață

Dispozitivele de pe autobuz sunt identificate printr-un număr unic numit ID țintă SCSI. Fiecare unitate SCSI din sistem este reprezentată de cel puțin un dispozitiv logic, care este adresat folosind un număr unic în cadrul dispozitivului fizic Numărul unității logice (LUN).

Introducere în SSD-uri. Partea 2. Interfață
Comenzile SCSI sunt trimise ca blocuri de descriere a comenzilor (Command Descriptor Block, CDB), constând dintr-un cod de operare și parametri de comandă. Standardul descrie peste 200 de comenzi, împărțite în patru categorii:

  • obligatoriu - trebuie suportat de aparat;
  • Opțional - poate fi implementat;
  • Specific furnizorului - folosit de un anumit producator;
  • învechit - comenzi învechite.

Dintre numeroasele comenzi, doar trei dintre ele sunt obligatorii pentru dispozitive:

  • UNITATEA DE TESTARE GATA — verificarea pregătirii dispozitivului;
  • CERERE SENS — solicită codul de eroare al comenzii anterioare;
  • ANCHETĂ — solicitarea caracteristicilor de bază ale dispozitivului.

După primirea și executarea comenzii, dispozitivul țintă trimite inițiatorului un cod de stare care descrie rezultatul execuției.

Îmbunătățirea ulterioară a SCSI (specificații SCSI-2 și Ultra SCSI) a extins lista de comenzi utilizate și a crescut numărul de dispozitive conectate la 16, iar viteza de schimb de date pe magistrală la 640 MB/s. Deoarece SCSI este o interfață paralelă, creșterea frecvenței schimbului de date a fost asociată cu o scădere a lungimii maxime a cablului și a dus la inconveniente în utilizare.

Începând cu standardul Ultra-3 SCSI, a apărut suportul pentru „conectarea la cald” - conectarea dispozitivelor în timp ce alimentarea este pornită.

Prima unitate SSD cunoscută cu o interfață SCSI poate fi considerată M-Systems FFD-350, lansat în 1995. Discul avea un cost ridicat și nu era răspândit.

În prezent, SCSI paralel nu este o interfață populară de conectare la disc, dar setul de comenzi este încă utilizat în mod activ în interfețele USB și SAS.

ATA/PATA

Introducere în SSD-uri. Partea 2. Interfață
interfață ATA (Advanced Technology Attachment), cunoscut și ca HOOF (Parallel ATA) a fost dezvoltat de Western Digital în 1986. Denumirea de marketing pentru standardul IDE (Integrated Drive Electronics) a subliniat o inovație importantă: controlerul unității a fost construit în unitate, mai degrabă decât pe o placă de expansiune separată.

Decizia de a plasa controlerul în interiorul unității a rezolvat mai multe probleme simultan. În primul rând, distanța de la unitate la controler a scăzut, ceea ce are un efect pozitiv asupra caracteristicilor unității. În al doilea rând, controlerul încorporat a fost „creat” doar pentru un anumit tip de unitate și, în consecință, a fost mai ieftin.

Introducere în SSD-uri. Partea 2. Interfață
ATA, ca și SCSI, utilizează o metodă I/O paralelă, care afectează cablurile utilizate. Pentru a conecta unități folosind interfața IDE, sunt necesare cabluri cu 40 de fire, numite și cabluri. Specificațiile mai recente folosesc bucle cu 80 de fire: mai mult de jumătate dintre acestea sunt împământare pentru a reduce interferența la frecvențe înalte.

Cablul ATA are de la doi până la patru conectori, dintre care unul este conectat la placa de bază, iar restul la unități. Când conectați două dispozitive cu un singur cablu, unul dintre ele trebuie configurat ca Maestru, iar al doilea - ca Sclav. Al treilea dispozitiv poate fi conectat exclusiv în modul numai citire.

Introducere în SSD-uri. Partea 2. Interfață
Poziția jumperului specifică rolul unui anumit dispozitiv. Termenii Master și Slave în legătură cu dispozitivele nu sunt în întregime corecti, deoarece în ceea ce privește controlerul, toate dispozitivele conectate sunt Slave.

O inovație specială în ATA-3 este aspectul Automonitorizare, Tehnologia de analiză și raportare (SMART). Cinci companii (IBM, Seagate, Quantum, Conner și Western Digital) și-au unit forțele și au standardizat tehnologia pentru evaluarea stării de sănătate a unităților.

Suportul pentru unitățile SSD a apărut cu a patra versiune a standardului, lansată în 1998. Această versiune a standardului a oferit viteze de transfer de date de până la 33.3 MB/s.

Standardul propune cerințe stricte pentru cablurile ATA:

  • trenul trebuie să fie plat;
  • lungimea maximă a trenului este de 18 inchi (45.7 centimetri).

Trenul scurt și lat era incomod și interfera cu răcirea. A devenit din ce în ce mai dificilă creșterea frecvenței de transmisie cu fiecare versiune ulterioară a standardului, iar ATA-7 a rezolvat problema în mod radical: interfața paralelă a fost înlocuită cu una serială. După aceasta, ATA a dobândit cuvântul Parallel și a devenit cunoscut sub numele de PATA, iar cea de-a șaptea versiune a standardului a primit un alt nume - Serial ATA. Numerotarea versiunilor SATA a început de la unul.

SATA

Introducere în SSD-uri. Partea 2. Interfață
Standardul Serial ATA (SATA) a fost introdus pe 7 ianuarie 2003 și a abordat problemele predecesorului său cu următoarele modificări:

  • portul paralel a fost înlocuit cu unul serial;
  • cablul lat de 80 de fire este înlocuit cu unul de 7 fire;
  • Topologia „magistrală comună” a fost înlocuită cu o conexiune „punct la punct”.

În ciuda faptului că standardul SATA 1.0 (SATA/150, 150 MB/s) a fost puțin mai rapid decât ATA-6 (UltraDMA/130, 130 MB/s), trecerea la o metodă de schimb de date în serie a „pregătit terenul” pentru viteze crescute

Cele șaisprezece linii de semnal pentru transmiterea datelor în ATA au fost înlocuite cu două perechi răsucite: una pentru transmitere, cealaltă pentru recepție. Conectorii SATA sunt proiectați pentru a fi mai rezistenți la reconectari multiple, iar specificația SATA 1.0 a făcut posibilă conectarea la cald.

Unii pini de pe discuri sunt mai scurti decât toți ceilalți. Acest lucru se face pentru a sprijini Hot Swap. În timpul procesului de înlocuire, dispozitivul „pierde” și „găsește” linii într-o ordine predeterminată.

Puțin mai mult de un an mai târziu, în aprilie 2004, a fost lansată a doua versiune a specificației SATA. Pe lângă accelerația de până la 3 Gbit/s, SATA 2.0 a introdus tehnologia Coada nativă de comandă (NCQ). Dispozitivele cu suport NCQ sunt capabile să organizeze în mod independent ordinea în care sunt executate comenzile primite pentru a obține performanță maximă.

Introducere în SSD-uri. Partea 2. Interfață
În următorii trei ani, grupul de lucru SATA a lucrat pentru a îmbunătăți specificațiile existente, iar versiunea 2.6 a introdus conectori compacti Slimline și micro SATA (uSATA). Acești conectori sunt o versiune mai mică a conectorului SATA original și sunt proiectați pentru unități optice și unități mici din laptopuri.

Deși a doua generație de SATA avea suficientă lățime de bandă pentru hard disk-urile, SSD-urile necesitau mai mult. În mai 2009, a fost lansată a treia versiune a specificației SATA cu lățime de bandă crescută la 6 Gbit/s.

Introducere în SSD-uri. Partea 2. Interfață
O atenție deosebită a fost acordată unităților cu stare solidă în ediția SATA 3.1. A apărut un conector Mini-SATA (mSATA), conceput pentru conectarea unităților SSD în laptopuri. Spre deosebire de Slimline și uSATA, noul conector era similar cu PCIe Mini, deși nu era compatibil electric cu PCIe. Pe lângă noul conector, SATA 3.1 se lăuda cu capacitatea de a pune în coadă comenzile TRIM cu comenzi de citire și scriere.

Comanda TRIM notifică SSD-ul cu privire la blocurile de date care nu poartă o sarcină utilă. Înainte de SATA 3.1, executarea acestei comenzi ar duce la golirea memoriei cache și la suspendarea I/O, urmată de o comandă TRIM. Această abordare a degradat performanța discului în timpul operațiunilor de ștergere.

Specificația SATA nu a putut ține pasul cu creșterea rapidă a vitezelor de acces pentru unitățile SATA, ceea ce a dus la apariția în 2013 a unui compromis numit SATA Express în standardul SATA 3.2. În loc să dubleze din nou lățimea de bandă SATA, dezvoltatorii au folosit magistrala PCIe utilizată pe scară largă, a cărei viteză depășește 6 Gbps. Unitățile care acceptă SATA Express au dobândit propriul factor de formă numit M.2.

SAS

Introducere în SSD-uri. Partea 2. Interfață
Standardul SCSI, „concurent” cu ATA, nu a stat nici el pe loc și la doar un an de la apariția Serial ATA, în 2004, a renascut ca interfață serială. Numele noii interfețe este Serial SCSI atașat (ROGOZ).

În ciuda faptului că SAS a moștenit setul de comenzi SCSI, modificările au fost semnificative:

  • Interfață serială;
  • cablu de alimentare cu 29 de fire;
  • conexiune punct la punct

Terminologia SCSI a fost, de asemenea, moștenită. Controlerul este încă numit inițiator, iar dispozitivele conectate sunt încă numite țintă. Toate dispozitivele țintă și inițiatorul formează un domeniu SAS. În SAS, debitul conexiunii nu depinde de numărul de dispozitive din domeniu, deoarece fiecare dispozitiv folosește propriul canal dedicat.

Numărul maxim de dispozitive conectate simultan într-un domeniu SAS, conform specificației, depășește 16 mii și, în loc de un ID SCSI, se folosește un identificator pentru adresare. Nume mondial (WWN).

WWN este un identificator unic lung de 16 octeți, analog unei adrese MAC pentru dispozitivele SAS.

Introducere în SSD-uri. Partea 2. Interfață
În ciuda asemănării conectorilor SAS și SATA, aceste standarde nu sunt complet compatibile. Cu toate acestea, o unitate SATA poate fi conectată la un conector SAS, dar nu invers. Compatibilitatea între unitățile SATA și domeniul SAS este asigurată prin protocolul SATA Tunneling Protocol (STP).

Prima versiune a standardului SAS-1 are un throughput de 3 Gbit/s, iar cea mai modernă, SAS-4, a îmbunătățit această cifră de 7 ori: 22,5 Gbit/s.

PCIe

Introducere în SSD-uri. Partea 2. Interfață
Peripheral Component Interconnect Express (PCI Express, PCIe) este o interfață serială pentru transferul de date, care a apărut în 2002. Dezvoltarea a fost începută de Intel și ulterior transferată la o organizație specială - PCI Special Interest Group.

Interfața serială PCIe nu a făcut excepție și a devenit o continuare logică a PCI-ului paralel, care este proiectat pentru conectarea plăcilor de expansiune.

PCI Express este semnificativ diferit de SATA și SAS. Interfața PCIe are un număr variabil de benzi. Numărul de linii este egal cu puterile a două și variază de la 1 la 16.

Termenul „bandă” în PCIe nu se referă la o linie de semnal specifică, ci la un singur canal de comunicație full-duplex constând din următoarele linii de semnal:

  • recepție+ și recepție-;
  • transmisie+ și transmisie-;
  • patru conductori de împământare.

Numărul de benzi PCIe afectează direct debitul maxim al conexiunii. Standardul modern PCI Express 4.0 vă permite să atingeți 1.9 GB/s pe o linie și 31.5 GB/s când utilizați 16 linii.

Introducere în SSD-uri. Partea 2. Interfață
Apetitul pentru unitățile SSD crește foarte repede. Atât SATA, cât și SAS nu au timp să-și mărească lățimea de bandă pentru a „ține pasul” cu SSD-urile, ceea ce a dus la apariția unităților SSD cu conexiuni PCIe.

Deși cardurile PCIe Add-In sunt înșurubate, PCIe se poate schimba la cald. Pinii scurti PRSNT (prezent în engleză - prezent) vă permit să vă asigurați că cardul este complet instalat în slot.

Unitățile cu stare solidă conectate prin PCIe sunt reglementate de un standard separat Specificația interfeței controlerului gazdă cu memorie non-volatilă și sunt întruchipate într-o varietate de factori de formă, dar despre ei vom vorbi în partea următoare.

Unități de la distanță

La crearea unor depozite mari de date, a apărut necesitatea unor protocoale care să permită conectarea unităților aflate în afara serverului. Prima soluție în acest domeniu a fost Internet SCSI (iSCSI), dezvoltat de IBM și Cisco în 1998.

Ideea protocolului iSCSI este simplă: comenzile SCSI sunt „împachetate” în pachete TCP/IP și transmise în rețea. În ciuda conexiunii la distanță, clienților se creează iluzia că unitatea este conectată local. O rețea de stocare (SAN) bazată pe iSCSI poate fi construită pe infrastructura de rețea existentă. Utilizarea iSCSI reduce semnificativ costul organizării unui SAN.

iSCSI are o opțiune „premium” - Protocolul Fibre Channel (FCP). Un SAN care utilizează FCP este construit pe linii de comunicații dedicate prin fibră optică. Această abordare necesită echipamente optice suplimentare de rețea, dar este stabilă și are un randament ridicat.

Există multe protocoale pentru trimiterea comenzilor SCSI prin rețele de computere. Cu toate acestea, există un singur standard care rezolvă problema opusă și permite trimiterea pachetelor IP prin magistrala SCSI - IP-over-SCSI.

Majoritatea protocoalelor SAN folosesc setul de comenzi SCSI pentru a gestiona unitățile, dar există excepții, cum ar fi simplu ATA prin Ethernet (AoE). Protocolul AoE trimite comenzi ATA în pachete Ethernet, dar unitățile apar ca SCSI în sistem.

Odată cu apariția unităților NVM Express, protocoalele iSCSI și FCP nu mai îndeplinesc cerințele în creștere rapidă ale SSD-urilor. Au apărut două soluții:

  • mutarea magistralei PCI Express în afara serverului;
  • crearea protocolului NVMe over Fabrics.

Îndepărtarea magistralei PCIe implică crearea de echipamente de comutare complexe, dar nu modifică protocolul.

Protocolul NVMe over Fabrics a devenit o alternativă bună la iSCSI și FCP. NVMe-oF utilizează o legătură cu fibră optică și setul de instrucțiuni NVM Express.

DDR-T

Introducere în SSD-uri. Partea 2. Interfață
Standardele iSCSI și NVMe-oF rezolvă problema conectării discurilor la distanță ca fiind locale, dar Intel a luat o altă rută și a adus discul local cât mai aproape de procesor. Alegerea a căzut pe sloturile DIMM în care este conectată RAM. Lățimea de bandă maximă a unui canal DDR4 este de 25 GB/s, ceea ce este semnificativ mai mare decât viteza magistralei PCIe. Așa a luat naștere Intel® Optane™ DC Persistent Memory SSD.

A fost inventat un protocol pentru a conecta unitățile la sloturile DIMM DDR-T, compatibil fizic și electric cu DDR4, dar care necesită un controler special care vede diferența dintre stick-ul de memorie și unitate. Viteza de acces a unității este mai mică decât RAM, dar mai rapidă decât NVMe.

DDR-T este disponibil numai cu procesoare Intel® Cascade Lake sau mai recente.

Concluzie

Aproape toate interfețele au parcurs un drum lung de la metodele de transfer de date în serie la cele în paralel. Vitezele SSD-urilor cresc rapid; chiar ieri SSD-urile au fost o noutate, dar astăzi NVMe nu mai este deosebit de surprinzător.

În laboratorul nostru Selectel Lab puteți testa singuri unitățile SSD și NVMe.

Numai utilizatorii înregistrați pot participa la sondaj. Loghează-te, Vă rog.

Vor înlocui unitățile NVMe SSD-urile clasice în viitorul apropiat?

  • 55.5%Da100

  • 44.4%Nr.80

Au votat 180 utilizatori. 28 utilizatori s-au abținut.

Sursa: www.habr.com

Adauga un comentariu