Introduzione agli SSD. Parte 2. Interfaccia

Introduzione agli SSD. Parte 2. Interfaccia

In parte precedente Nel ciclo «Introduzione agli SSD» abbiamo parlato della storia della comparsa dei dischi. La seconda parte tratta delle interfacce di interazione con i dispositivi di memorizzazione.

La comunicazione tra il processore e i dispositivi periferici avviene in base a convenzioni predefinite, chiamate interfacce. Queste convenzioni regolano il livello fisico e il livello software dell'interazione.

L'interfaccia è un insieme di strumenti, metodi e regole per l'interazione tra gli elementi di un sistema.

L'implementazione fisica dell'interfaccia influisce sui seguenti parametri:

  • larghezza di banda del canale di comunicazione;
  • numero massimo di dispositivi connessi contemporaneamente;
  • numero di errori che si verificano.

Le interfacce dei dischi si basano su porte di input-output, che è l'opposto dell'input-output attraverso la memoria e non occupa spazio nello spazio di indirizzamento del processore.

Porte parallele e seriali

In base al metodo di scambio dati, le porte di input-output si dividono in due tipi:

  • parallele;
  • serie.

Come suggerisce il nome, la porta parallela invia in una volta una parola macchina composta da diversi bit. La porta parallela è il modo più semplice per scambiare dati, poiché non richiede soluzioni circuitali complesse. Nel caso più semplice, ogni bit della parola macchina viene inviato attraverso la propria linea di segnale, e per il feedback vengono utilizzate due linee di segnale di servizio: Dati pronti e Dati ricevuti.

Introduzione agli SSD. Parte 2. Interfaccia
Le porte parallele, a prima vista, sembrano scalare bene: più linee di segnale ci sono, più bit vengono trasmessi in una volta e, di conseguenza, maggiore è la larghezza di banda. Tuttavia, a causa dell'aumento del numero di linee di segnale, si verifica un'interazione di interferenza tra di esse, portando a una distorsione dei messaggi trasmessi.

Le porte seriali sono l'opposto delle porte parallele. L'invio dei dati avviene bit per bit, il che riduce il numero totale di linee di segnale, ma complica il controllore di input-output. Il controllore del trasmettitore riceve in una volta la parola macchina e deve trasmettere bit per bit, mentre il controllore del ricevitore deve ricevere i bit e conservarli nell'ordine corretto.

Introduzione agli SSD. Parte 2. Interfaccia
Il ridotto numero di linee di segnale consente di aumentare senza problemi la frequenza di trasmissione del messaggio.

SCSI

Introduzione agli SSD. Parte 2. Interfaccia
L'Interfaccia dei Sistemi di Computer di Piccole Dimensioni (SCSI) è stata introdotta nel lontano 1978 ed era originariamente progettata per unire dispositivi di vari profili in un unico sistema. La specifica SCSI-1 prevedeva il collegamento di fino a 8 dispositivi (compreso il controllore), come ad esempio:

  • scanner;
  • unità a nastro (streamer);
  • unità ottiche;
  • dischi rigidi e altri dispositivi.

Inizialmente, SCSI era chiamato Shugart Associates System Interface (SASI), ma il comitato di standardizzazione non avrebbe approvato un nome in onore della società e dopo una sessione di brainstorming è emerso il nome Interfaccia dei Sistemi di Computer di Piccole Dimensioni (SCSI). Il 'padre' di SCSI, Larry Boucher, intendeva che l'acronimo fosse pronunciato come "sexy", ma Dal Allan ha letto "sсuzzy" ("scuzzy"). Successivamente, la pronuncia "scuzzy" si è consolidata per questo standard.

Nella terminologia SCSI, i dispositivi collegati sono suddivisi in due categorie:

  • iniziali;
  • dispositivi target.

L'iniziatore invia un comando al dispositivo target, che quindi invia una risposta all'iniziatore. Gli iniziatori e i dispositivi target sono collegati a un bus SCSI comune, la cui larghezza di banda nel standard SCSI-1 è di 5 MB/s.

La topologia utilizzata "bus condiviso" impone una serie di limitazioni:

  • alla fine del bus sono necessari dispositivi speciali — terminatori;
  • la larghezza di banda del bus è condivisa tra tutti i dispositivi;
  • il numero massimo di dispositivi collegati contemporaneamente è limitato.

Introduzione agli SSD. Parte 2. Interfaccia

I dispositivi sul bus sono identificati da un numero unico, chiamato SCSI Target ID. Ogni unità SCSI nel sistema è rappresentata da almeno un'unità logica, il cui indirizzamento avviene tramite un numero unico all'interno del dispositivo fisico Logical Unit Number (LUN).

Introduzione agli SSD. Parte 2. Interfaccia
I comandi in SCSI sono inviati sotto forma di blocchi di descrizione del comando (Command Descriptor Block, CDB), composti da un codice di operazione e dai parametri del comando. Nel standard sono descritti oltre 200 comandi, suddivisi in quattro categorie:

  • Obbligatori — devono essere supportati dal dispositivo;
  • Facoltativi — possono essere implementati;
  • Specifici del fornitore — utilizzati da un produttore specifico;
  • Obsoleti — comandi obsoleti.

Tra i numerosi comandi, solo tre di essi sono obbligatori per i dispositivi:

  • TEST UNIT READY — verifica della prontezza del dispositivo;
  • REQUEST SENSE — richiede il codice di errore del comando precedente;
  • RICHIESTA — richiesta delle caratteristiche principali del dispositivo.

Dopo aver ricevuto ed eseguito il comando, il dispositivo target invia all'iniziatore un codice di stato che descrive il risultato dell'esecuzione.

Il successivo perfezionamento dello SCSI (specifiche SCSI-2 e Ultra SCSI) ha ampliato l'elenco dei comandi utilizzabili e ha aumentato il numero di dispositivi collegabili fino a 16, con una velocità di trasferimento dati sulla bus fino a 640 MB/c. Poiché SCSI è un'interfaccia parallela, l'aumento della frequenza di trasferimento dati era associato a una riduzione della lunghezza massima del cavo, rendendo l'uso scomodo.

A partire dallo standard Ultra-3 SCSI è stato introdotto il supporto per il «collegamento a caldo» — la possibilità di connettere dispositivi mentre l'alimentazione è attiva.

Il primo SSD noto con interfaccia SCSI può essere considerato l'M-Systems FFD-350, rilasciato nel 1995. Il disco aveva un costo elevato e non era ampiamente diffuso.

Attualmente, lo SCSI parallelo non è un'interfaccia popolare per collegare dischi, ma il set di comandi è ancora utilizzato attivamente nelle interfacce USB e SAS.

ATA / PATA

Introduzione agli SSD. Parte 2. Interfaccia
Document ATA (Advanced Technology Attachment), noto anche come PATA (Parallel ATA) è stato sviluppato dalla Western Digital nel 1986. Il nome commerciale dello standard IDE (inglese: Integrated Drive Electronics — «elettronica integrata nel drive») sottolineava una novità importante: il controller del drive era integrato nel drive stesso, invece di trovarsi su una scheda d'espansione separata.

La decisione di posizionare il controller all'interno del drive ha risolto subito diversi problemi. Innanzitutto, la distanza dal dispositivo di archiviazione al controller si è ridotta, con effetti positivi sulle prestazioni del dispositivo. In secondo luogo, il controller integrato era «ottimizzato» solo per un determinato tipo di drive e, di conseguenza, risultava più economico.

Introduzione agli SSD. Parte 2. Interfaccia
ATA, come SCSI, utilizza un metodo di input-output parallelo, il che influisce sui cavi utilizzati. Per collegare i dischi utilizzando l'interfaccia IDE sono necessari cavi a 40 fili, noti anche come floppy. Nelle specifiche più recenti si usano i floppy a 80 fili: più della metà di essi è utilizzata come messa a terra per ridurre le interferenze ad alte frequenze.

Nel cavo ATA sono presenti da due a quattro connettori, uno dei quali si collega alla scheda madre e gli altri ai dischi. Quando si collegano due dispositivi con un cavo, uno di essi deve essere configurato come Master, e l'altro come Slave. Il terzo dispositivo può essere connesso esclusivamente in modalità 'sola lettura'.

Introduzione agli SSD. Parte 2. Interfaccia
La posizione del jumper determina il ruolo di un dispositivo specifico. I termini Master e Slave relativamente ai dispositivi non sono del tutto corretti, poiché rispetto al controller tutti i dispositivi collegati sono Slave.

Una delle novità più importanti dell'ATA-3 è l'introduzione della Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Cinque aziende (IBM, Seagate, Quantum, Conner e Western Digital) hanno unito le forze e standardizzato la tecnologia di valutazione dello stato dei dischi.

Il supporto per gli SSD è arrivato con la quarta versione dello standard, rilasciata nel 1998. Questa versione dello standard garantiva una velocità di trasferimento dati fino a 33,3 MB/s.

Lo standard impone requisiti rigorosi ai cavi ATA:

  • il cavo deve essere necessariamente piatto;
  • la lunghezza massima del cavo è di 18 pollici (45,7 centimetri).

Un cavo corto e largo era scomodo e ostacolava il raffreddamento. Aumentare la frequenza di trasferimento con ogni nuova versione dello standard è diventato sempre più complesso, e l'ATA-7 ha risolto radicalmente il problema: l'interfaccia parallela è stata sostituita con una sequenziale. Da quel momento, ATA ha acquisito il termine Parallel ed è diventato conosciuto come PATA, mentre la settima versione dello standard ha assunto una nuova denominazione: Serial ATA. La numerazione delle versioni SATA è iniziata da uno.

SATA

Introduzione agli SSD. Parte 2. Interfaccia
Lo standard Serial ATA (SATA) è stato presentato il 7 gennaio 2003 e ha affrontato i problemi del suo predecessore attraverso le seguenti modifiche:

  • la porta parallela è stata sostituita da una sequenziale;
  • il cavo ampio a 80 fili è stato sostituito da uno a 7 fili;
  • la topologia 'bus condiviso' è stata sostituita dal collegamento 'point-to-point'.

Nonostante lo standard SATA 1.0 (SATA/150, 150 MB/s) fosse leggermente più veloce dell'ATA-6 (UltraDMA/130, 130 MB/s), il passaggio a un metodo di scambio dati sequenziale era la 'preparazione del terreno' per aumentare le velocità.

Sedici linee di segnale per la trasmissione dei dati in ATA sono state sostituite da due coppie intrecciate: una per la trasmissione, l'altra per la ricezione. I connettori SATA sono progettati per una maggiore resistenza a ripetuti scollegamenti, e la specifica SATA 1.0 ha reso possibile il 'collegamento a caldo' (Hot Plug).

Alcuni pin sui dischi sono più corti di tutti gli altri. Questo è stato fatto per supportare la «sostituzione a caldo» (Hot Swap). Durante la sostituzione, il dispositivo «perde» e «ritrova» le linee in un ordine predefinito.

Poco più di un anno dopo, ad aprile 2004, è stata rilasciata la seconda versione delle specifiche SATA. Oltre ad aumentare la velocità fino a 3 Gbit/s, la SATA 2.0 ha introdotto la tecnologia Native Command Queuing (NCQ). I dispositivi che supportano NCQ sono in grado di organizzare autonomamente l'ordine di esecuzione dei comandi ricevuti per ottenere le migliori prestazioni.

Introduzione agli SSD. Parte 2. Interfaccia
Nei successivi tre anni, il SATA Working Group ha lavorato per migliorare le specifiche esistenti e nella versione 2.6 sono apparsi connettori compatti Slimline e micro SATA (uSATA). Questi connettori sono una versione ridotta del connettore SATA originale e sono stati progettati per unità ottiche e piccoli dischi nei laptop.

Nonostante la larghezza di banda di seconda generazione SATA fosse sufficiente per i dischi rigidi, le unità a stato solido richiedevano di più. Nel maggio 2009 è stata rilasciata la terza versione delle specifiche SATA con una larghezza di banda aumentata a 6 Gbit/s.

Introduzione agli SSD. Parte 2. Interfaccia
Un'attenzione particolare alle unità a stato solido è stata data nella revisione SATA 3.1. È stato introdotto un connettore Mini-SATA (mSATA), progettato per collegare unità a stato solido nei laptop. A differenza dei connettori Slimline e uSATA, il nuovo connettore somigliava a un PCIe Mini, anche se non era elettricamente compatibile con PCIe. Oltre al nuovo connettore, la SATA 3.1 poteva vantare la possibilità di mettere in coda i comandi TRIM insieme ai comandi di lettura e scrittura.

Il comando TRIM informa l'unità a stato solido riguardo ai blocchi di dati che non trasportano utile. Fino alla SATA 3.1, l'esecuzione di questo comando portava alla cancellazione delle cache e alla sospensione delle operazioni di input-output con successiva esecuzione del comando TRIM. Questo approccio deteriorava le prestazioni del disco durante le operazioni di cancellazione.

Le specifiche SATA non riuscivano a tenere il passo con la rapida crescita della velocità di accesso alle unità a stato solido, portando all'emergere nel 2013 di un compromesso chiamato SATA Express nello standard SATA 3.2. Invece di raddoppiare nuovamente la larghezza di banda della SATA, gli sviluppatori hanno sfruttato il bus PCIe ampiamente diffuso, la cui velocità supera i 6 Gbit/s. I dischi che supportano SATA Express hanno acquisito un format proprietario chiamato M.2.

SAS

Introduzione agli SSD. Parte 2. Interfaccia
Il standard SCSI «competitivo» con ATA non è rimasto fermo e, solo un anno dopo l’apparizione del Serial ATA, nel 2004, si è trasformato in un'interfaccia seriale. Il nuovo nome per questa interfaccia è Serial Attached SCSI (SAS).

Nonostante il SAS abbia ereditato il set di comandi SCSI, le modifiche sono state significative:

  • interfaccia seriale;
  • cavo da 29 pin con alimentazione;
  • connessione punto-punto

La terminologia SCSI è stata anch’essa ereditata. Il controller è ancora chiamato iniziatore, mentre i dispositivi collegati sono chiamati target. Tutti i dispositivi target e l'iniziatore formano un dominio SAS. In SAS, la larghezza di banda della connessione non dipende dal numero di dispositivi nel dominio, poiché ogni dispositivo utilizza il proprio canale dedicato.

Il numero massimo di dispositivi connessi contemporaneamente in un dominio SAS, secondo le specifiche, supera le 16.000 unità, e invece dell'ID SCSI per l'indirizzamento si utilizza l'identificatore World-Wide Name (WWN).

Il WWN è un identificatore unico lungo 16 byte, simile all'indirizzo MAC per i dispositivi SAS.

Introduzione agli SSD. Parte 2. Interfaccia
Nonostante la somiglianza tra i connettori SAS e SATA, questi standard non sono completamente compatibili. Tuttavia, un disco SATA può essere collegato a un connettore SAS, ma non viceversa. La compatibilità tra dischi SATA e il dominio SAS è garantita tramite il protocollo SATA Tunneling Protocol (STP).

La prima versione dello standard SAS-1 ha una larghezza di banda di 3 Gbit/s, mentre l'ultima, SAS-4, ha migliorato questo valore di 7 volte: 22,5 Gbit/s.

PCIe

Introduzione agli SSD. Parte 2. Interfaccia
Peripheral Component Interconnect Express (PCI Express, PCIe) è un'interfaccia seriale per la trasmissione di dati, apparsa nel 2002. Lo sviluppo è stato avviato da Intel e successivamente affidato a un'organizzazione specifica: PCI Special Interest Group.

L'interfaccia seriale PCIe non è stata un'eccezione ed è diventata una continuazione logica del PCI parallelo, destinato al collegamento di schede di espansione.

Il PCI Express è significativamente diverso da SATA e SAS. L'interfaccia PCIe ha un numero variabile di linee. Il numero di linee è una potenza di due e varia da 1 a 16.

Il termine «linea» in PCIe non indica una singola linea di segnale, ma un canale di comunicazione full duplex separato, composto dalle seguenti linee di segnale:

  • ricezione+ e ricezione-;
  • trasmissione+ e trasmissione-;
  • quattro conduttori di messa a terra.

Il numero di linee PCIe influisce direttamente sulla larghezza di banda massima della connessione. Lo standard moderno PCI Express 4.0 consente di raggiungere 1,9 GB/s per linea e 31,5 GB/s utilizzando 16 linee.

Introduzione agli SSD. Parte 2. Interfaccia
Le "appetiti" degli SSD stanno crescendo molto rapidamente. Sia SATA che SAS non riescono ad aumentare la loro larghezza di banda per "stare al passo" con gli SSD, il che ha portato alla creazione di SSD con connessione PCIe.

Sebbene le schede PCIe Add-In siano fissate con delle viti, PCIe supporta la "sostituzione a caldo". I brevi pin PRSNT (inglese present - presente) consentono di verificare che la scheda sia completamente inserita nello slot.

Gli SSD collegati tramite PCIe sono regolamentati da uno standard separato Specifiche dell'interfaccia Host Controller per memoria non volatile ed esistono in molteplici fattori di forma, di cui parleremo nella prossima parte.

Unità di archiviazione remote

Con la creazione di grandi archivi di dati è emersa la necessità di protocolli che consentano di collegare unità situate al di fuori del server. La prima soluzione in questo campo è stata Internet SCSI (iSCSI), sviluppato da IBM e Cisco nel 1998.

L'idea del protocollo iSCSI è semplice: i comandi SCSI vengono "incapsulati" in pacchetti TCP/IP e inviati attraverso la rete. Nonostante la connessione remota, si crea per i client l'illusione che l'unità sia collegata localmente. Una rete di archiviazione (Storage Area Network, SAN) basata su iSCSI può essere costruita su un'infrastruttura di rete esistente. L'uso di iSCSI riduce significativamente i costi per la creazione della SAN.

Esiste una variante "premium" di iSCSI - Fibre Channel Protocol (FCP). La SAN che utilizza FCP è costruita su linee di comunicazione ottiche dedicate. Questo approccio richiede attrezzature di rete ottiche aggiuntive, ma è caratterizzato da stabilità e alta larghezza di banda.

Esistono molti protocolli per inviare comandi SCSI attraverso le reti informatiche. Tuttavia, esiste solo uno standard che risolve l'opposto problema e consente di inviare pacchetti IP attraverso il bus SCSI - IP-over-SCSI.

La maggior parte dei protocolli per la creazione di SAN utilizza un set di comandi SCSI per gestire le unità, ma ci sono anche eccezioni, come la semplice ATA over Ethernet (AoE). Il protocollo AoE invia comandi ATA in pacchetti Ethernet, ma nel sistema le unità sono visualizzate come SCSI.

Con l'arrivo degli storage NVM Express, i protocolli iSCSI e FCP non soddisfano più le crescenti richieste degli hard disk a stato solido. Sono emerse due soluzioni:

  • l'uscita del bus PCI Express al di fuori del server;
  • la creazione del protocollo NVMe over Fabrics.

L'uscita del bus PCIe comporta la creazione di hardware di commutazione complesso, ma non modifica il protocollo.

Il protocollo NVMe over Fabrics è diventato una buona alternativa a iSCSI e FCP. In NVMe-oF si utilizzano linee di comunicazione in fibra ottica e il set di comandi NVM Express.

DDR-T

Introduzione agli SSD. Parte 2. Interfaccia
Gli standard iSCSI e NVMe-oF risolvono il problema della connessione di dischi remoti come locali, mentre Intel ha intrapreso un'altra strada avvicinando maggiormente il disco locale al processore. È stata scelta una connessione tramite slot DIMM, nei quali viene collegata la memoria RAM. La larghezza di banda massima del canale DDR4 è di 25 GB/s, superando di gran lunga la velocità del bus PCIe. È così nato l'unità a stato solido Intel® Optane™ DC Persistent Memory.

Per collegare lo storage agli slot DIMM è stato inventato un protocollo DDR-T, fisicamente ed elettricamente compatibile con DDR4, ma che richiede un controller speciale in grado di riconoscere la differenza tra il modulo di memoria e l'unità di storage. La velocità di accesso all'unità è inferiore a quella della RAM, ma superiore a quella di NVMe.

Il protocollo DDR-T è disponibile solo con i processori Intel® di generazione Cascade Lake o successivi.

Conclusione

Quasi tutte le interfacce hanno fatto un lungo viaggio evolutivo, passando dal metodo di trasmissione seriale a quello parallelo. Le velocità degli hard disk a stato solido stanno crescendo rapidamente; solo ieri gli SSD erano una novità, mentre oggi NVMe non sorprende più.

Nel nostro laboratorio Selectel Lab puoi testare autonomamente SSD e dischi NVMe.

Solo gli utenti registrati possono partecipare al sondaggio. Accedi, per favore.

Gli NVMe sostituiranno gli SSD classici nel prossimo futuro?

  • 55.5%Sì100

  • 44.4%No80

Hanno votato 180 utenti. Si sono astenuti 28 utenti.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster