Introduzione agli SSD. Parte 2. Interfaccia

Introduzione agli SSD. Parte 2. Interfaccia

In parte precedente Nella prima parte del ciclo «Introduzione agli SSD» abbiamo parlato della storia dell'emergere dei dischi. La seconda parte discuterà delle interfacce di interazione con i dispositivi di archiviazione.

La comunicazione tra il processore e i dispositivi periferici avviene secondo accordi predefiniti, noti come interfacce. Questi accordi disciplinano il livello fisico e quello software dell'interazione.

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

La realizzazione 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 di disco sono costruite sui porti di input/output, che sono opposti all'input/output tramite memoria e non occupano spazio nell'area indirizzi del processore.

Porti paralleli e seriali

In base al modo di scambio dei dati, i porti di input/output sono divisi in due tipi:

  • paralleli;
  • seriali.

Come suggerisce il nome, il porto parallelo invia una parola macchina composta da diversi bit contemporaneamente. Il porto parallelo è il modo più semplice di 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, mentre per il feedback vengono utilizzate due linee di segnale di servizio: Dati pronti e Dati ricevuti.

Introduzione agli SSD. Parte 2. Interfaccia
I porti paralleli, a prima vista, si scalano perfettamente: più linee di segnale, più bit vengono inviati contemporaneamente e, di conseguenza, maggiore è la larghezza di banda. Tuttavia, a causa dell'aumento del numero di linee di segnale, si verifica un'interferenza tra di esse, causando distorsioni nei messaggi trasmessi.

I porti seriali sono l'opposto dei porti paralleli. 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 una parola macchina alla volta e deve inviare bit uno per uno, mentre il controllore del ricevitore deve ricevere i bit e conservarli nello stesso ordine.

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

SCSI

Introduzione agli SSD. Parte 2. Interfaccia
Small Computer Systems Interface (SCSI) è apparso nel lontano 1978 ed è stato inizialmente sviluppato per collegare dispositivi di vari profili in un unico sistema. La specifica SCSI-1 prevedeva il collegamento di fino a 8 dispositivi (incluso il controllore), come:

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

Inizialmente, SCSI era chiamato Shugart Associates System Interface (SASI), ma il comitato di standardizzazione non approvò un nome in onore dell'azienda e, dopo una sessione di brainstorming, nacque il nome Small Computer Systems Interface (SCSI). Il "padre" di SCSI, Larry Boucher, intendeva che l'acronimo fosse pronunciato come "sexy", ma Dal Allan lo lesse come "sсuzzy". In seguito, la pronuncia "sсuzzy" si consolidò per questo standard.

Nella terminologia SCSI, i dispositivi connessi sono classificati in due tipi:

  • iniziatori;
  • dispositivi target.

L'iniziatore invia un comando al dispositivo target, che poi risponde all'iniziatore. Gli iniziatori e i dispositivi target sono connessi a un bus SCSI comune, la larghezza di banda di cui nel padrão SCSI-1 è di 5 MB/s.

La topologia utilizzata "bus condiviso" impone alcune limitazioni:

  • alle estremità del bus sono necessari dispositivi speciali — terminatori;
  • la larghezza di banda del bus è suddivisa tra tutti i dispositivi;
  • il numero massimo di dispositivi connessi contemporaneamente è limitato.

Introduzione agli SSD. Parte 2. Interfaccia

I dispositivi nel 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 mediante un numero unico all'interno del dispositivo fisico chiamato Logical Unit Number (LUN).

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

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

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

  • TEST UNIT READY — verifica la prontezza del dispositivo;
  • REQUEST SENSE — richiede il codice di errore del comando precedente;
  • INQUIRY — richiede le principali caratteristiche del dispositivo.

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

Il successivo miglioramento dello SCSI (specifiche SCSI-2 e Ultra SCSI) ha ampliato l'elenco dei comandi utilizzati e aumentato il numero di dispositivi collegabili a 16, con una velocità di trasferimento dati sulla bus fino a 640 MB/s. Poiché lo SCSI è un'interfaccia parallela, l'aumento della frequenza di trasferimento dati è stato accompagnato da una riduzione della lunghezza massima dei cavi, il che ha reso l'uso meno comodo.

Con lo standard Ultra-3 SCSI è stata introdotta la supporto per il 'hot plugging' — il collegamento dei dispositivi con l'alimentazione accesa.

Il primo SSD conosciuto con interfaccia SCSI è il M-Systems FFD-350, rilasciato nel 1995. Il disco era costoso e non ha avuto una diffusione ampia.

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

ATA / PATA

Introduzione agli SSD. Parte 2. Interfaccia
Interfaccia ATA (Advanced Technology Attachment), noto anche come PATA (Parallel ATA) è stato sviluppato dalla Western Digital nel 1986. Il nome di marketing dello standard IDE (Integrated Drive Electronics — 'elettronica integrata nel disco') sottolineava la novità fondamentale: il controller del disco era integrato nel disco stesso, e non su una scheda di espansione separata.

La scelta di inserire il controller all'interno del disco ha risolto diversi problemi. In primo luogo, è stata ridotta la distanza tra l'unità e il controller, il che ha avuto un impatto positivo sulle prestazioni dell'unità. In secondo luogo, il controller integrato era 'ottimizzato' per un tipo specifico di disco e, di conseguenza, era più economico.

Introduzione agli SSD. Parte 2. Interfaccia
L'ATA, come lo SCSI, utilizza un metodo di input-output parallelo, il che si riflette nei cavi utilizzati. Per collegare i dischi con l'interfaccia IDE sono necessari cavi a 40 fili, noti anche come nastri. Nelle specifiche più recenti, vengono utilizzati nastri a 80 fili: più della metà di essi è usata per la messa a terra al fine di ridurre le interferenze ad alte frequenze.

Il nastro ATA ha da due a quattro connettori, uno dei quali si collega alla scheda madre, mentre gli altri si collegano alle unità. Quando si collegano due dispositivi con un unico nastro, uno di essi deve essere configurato come Master, e l'altro come Slave. Un terzo dispositivo può essere collegato esclusivamente in modalità 'sola lettura'.

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

Una novità particolare nell'ATA-3 è stata l'introduzione di 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 hanno standardizzato la tecnologia di valutazione dello stato delle unità.

Il supporto per gli SSD è stato introdotto 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 per i nastri ATA:

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

Un nastro corto e largo era scomodo e ostacolava il raffreddamento. Aumentare la frequenza di trasmissione con ciascuna nuova versione dello standard diventava sempre più difficile, e l'ATA-7 ha affrontato il problema in modo radicale: l'interfaccia parallela è stata sostituita da una sequenziale. Da quel momento, l'ATA ha acquisito la parola Parallel e ha iniziato a chiamarsi PATA, mentre la settima versione dello standard ha ricevuto un nome diverso — 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 risolto i problemi del suo predecessore con le seguenti modifiche:

  • la porta parallela è stata sostituita da una sequenziale;
  • il largo nastro a 80 fili è stato sostituito da uno a 7 fili;
  • la topologia 'bus condiviso' è stata sostituita da una connessione '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 sequenziale di scambio dati ha preparato il terreno per l'aumento delle velocità.

Sedici linee di segnale per il trasferimento dati in ATA sono state sostituite da due coppie intrecciate: una per la trasmissione e l'altra per la ricezione. I connettori SATA sono progettati per una maggiore resistenza a più riconnessioni, e le specifiche SATA 1.0 hanno reso possibile il 'hot plugging'.

Alcuni pin sui dischi sono più corti rispetto a tutti gli altri. Questo è stato fatto per supportare la 'hot swap'. Durante la sostituzione di un dispositivo, questo 'perde' e 'ritrova' le linee in un ordine prestabilito.

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

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

Nonostante la larghezza di banda del secondo generazione di 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 riservata nella revisione SATA 3.1. È stato introdotto il connettore Mini-SATA (mSATA), progettato per collegare unità a stato solido nei laptop. A differenza di Slimline e uSATA, il nuovo connettore era simile a PCIe Mini, anche se non era elettricamente compatibile con PCIe. Oltre al nuovo connettore, SATA 3.1 poteva vantare la possibilità di mettere in coda i comandi TRIM insieme a quelli di lettura e scrittura.

Il comando TRIM notifica all’unità a stato solido quali blocchi di dati non trasportano carico utile. Fino a SATA 3.1, l'esecuzione di questo comando comportava il ripristino delle cache e l'interruzione delle operazioni di input/output con il successivo completamento del comando TRIM. Questo approccio deteriorava le prestazioni dell'unità durante le operazioni di cancellazione.

Le specifiche SATA non riuscivano a tenere il passo con l'accelerazione della velocità di accesso alle unità a stato solido, portando all'introduzione nel 2013 di un compromesso chiamato SATA Express nel standard SATA 3.2. Invece di raddoppiare nuovamente la larghezza di banda di SATA, i progettisti hanno utilizzato il bus PCIe ampiamente diffuso, la cui velocità supera i 6 Gbit/s. Le unità compatibili con SATA Express hanno adottato un proprio form factor chiamato M.2.

SAS

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

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

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

Anche la terminologia SCSI è stata ereditata. Il controller è ancora chiamato iniziatore, mentre i dispositivi collegati sono chiamati obiettivi. Tutti i dispositivi obiettivo 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 collegati contemporaneamente in un dominio SAS secondo le specifiche supera i 16.000, e invece dell'ID SCSI viene utilizzato un identificatore. World-Wide Name (WWN).

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’unità SATA può essere collegata a un connettore SAS, ma non viceversa. La compatibilità tra le unità SATA e il dominio SAS è garantita attraverso 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 dei dati, introdotta nel 2002. Lo sviluppo è stato avviato da Intel e successivamente trasferito a un'organizzazione specializzata: PCI Special Interest Group.

L'interfaccia seriale PCIe non è stata un'eccezione e ha rappresentato un'estensione logica del parallelo PCI, progettato per collegare le schede di espansione.

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 si riferisce a una specifica linea di segnale, ma a un canale di comunicazione full-duplex separato, composto da:

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

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

Introduzione agli SSD. Parte 2. Interfaccia
L'appetito degli SSD cresce rapidamente. Sia SATA che SAS non riescono ad aumentare la loro larghezza di banda per tenere il passo con gli SSD, portando alla creazione di SSD con connessione PCIe.

Sebbene le schede PCIe add-in siano fissate con una vite, il PCIe supporta la 'sostituzione a caldo'. I pin corti PRSNT (inglese per 'presenti') assicurano che la scheda sia completamente installata nello slot.

Gli SSD collegati tramite PCIe sono regolati da uno standard separato Non-Volatile Memory Host Controller Interface Specification e sono disponibili in diversi formati, di cui parleremo nella prossima parte.

Storage remoti

Con la creazione di grandi archivi di dati, è emersa la necessità di protocolli che consentissero di collegare dispositivi di archiviazione situati 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 il collegamento remoto, si crea l'illusione per i clienti che l'archiviazione sia locale. Una rete di archiviazione dati (Storage Area Network, SAN) basata su iSCSI può essere realizzata utilizzando l'infrastruttura di rete esistente. L'uso di iSCSI riduce notevolmente i costi per la creazione di una SAN.

C'è una versione 'premium' di iSCSI — Fibre Channel Protocol (FCP). Una SAN che utilizza FCP viene costruita su linee di comunicazione in fibra ottica dedicate. Questo approccio richiede attrezzature di rete ottica aggiuntive ma offre stabilità e alta larghezza di banda.

Esistono numerosi protocolli per inviare comandi SCSI attraverso le reti informatiche. Tuttavia, c'è solo uno standard che affronta il problema opposto e consente di inviare pacchetti IP attraverso il bus SCSI — IP-over-SCSI.

La maggior parte dei protocolli per la creazione di SAN utilizza il set di comandi SCSI per gestire i dispositivi di archiviazione, ma ci sono eccezioni, come il semplice ATA over Ethernet (AoE). Il protocollo AoE invia comandi ATA in pacchetti Ethernet, ma nel sistema i dispositivi di archiviazione vengono visualizzati come SCSI.

Con l'avvento degli SSD NVM Express, i protocolli iSCSI e FCP non soddisfano più le crescenti esigenze degli SSD. Sono emerse due soluzioni:

  • l'estensione del bus PCI Express oltre il server;
  • la creazione del protocollo NVMe over Fabrics.

L'estensione del bus PCIe richiede la creazione di hardware di commutazione complesso, ma non introduce modifiche al protocollo.

Il protocollo NVMe over Fabrics è diventato una valida alternativa a iSCSI e FCP. In NVMe-oF si utilizzano linee di 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 del collegamento di dischi remoti come se fossero locali, mentre Intel ha seguito un approccio diverso avvicinando il disco locale al processore. La scelta è caduta sulle slot DIMM, in cui viene collegata la memoria RAM. La massima larghezza di banda del canale DDR4 è di 25 GB/s, il che supera di gran lunga la velocità del bus PCIe. Così è nato l'SSD Intel® Optane™ DC Persistent Memory.

Per connettere il dispositivo alle slot DIMM è stato inventato un protocollo DDR-T, fisicamente ed elettricamente compatibile con DDR4, ma richiede un controller speciale che riconosce la differenza tra un modulo di memoria e un dispositivo di archiviazione. La velocità di accesso al dispositivo di archiviazione è inferiore a quella della memoria 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 percorso un lungo cammino evolutivo, passando da modalità di trasmissione seriali a parallele. Le velocità degli SSD stanno crescendo rapidamente: ieri gli SSD erano una rarità, oggi gli NVMe non sorprendono più.

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

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

Sostituiranno gli SSD classici gli NVMe in tempi brevi?

  • 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, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster