Introduzione all'SSD. Parte 2. Interfaccia

Introduzione all'SSD. Parte 2. Interfaccia

В ultima parte ciclo "Introduzione a SSD" abbiamo parlato della storia dell'aspetto dei dischi. La seconda parte parlerà delle interfacce per l'interazione con le unità.

La comunicazione tra il processore e le periferiche avviene secondo convenzioni predefinite chiamate interfacce. Questi accordi regolano il livello di interazione fisico e software.

Interfaccia: un insieme di mezzi, metodi e regole di interazione tra elementi del sistema.

L'implementazione fisica di un'interfaccia influisce sui seguenti parametri:

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

Le interfacce del disco sono costruite su porte I/O, che è l'opposto dell'I/O di memoria e non occupa spazio nello spazio degli indirizzi del processore.

Porte parallele e seriali

Secondo il metodo di scambio dei dati, le porte I/O sono divise in due tipi:

  • parallelo;
  • coerente.

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

Introduzione all'SSD. Parte 2. Interfaccia
Le porte parallele, a prima vista, si adattano bene: più linee di segnale - vengono trasmessi più bit alla volta e, quindi, maggiore throughput. Tuttavia, a causa dell'aumento del numero di linee di segnale, si verifica un'interferenza tra di esse, che porta alla distorsione dei messaggi trasmessi.

Le porte seriali sono l'opposto del parallelo. I dati vengono inviati un bit alla volta, il che riduce il numero totale di linee di segnale, ma complica il controller I/O. Il controllore trasmettitore riceve la parola macchina alla volta e deve trasmettere un bit alla volta, e il controllore ricevitore a sua volta deve ricevere i bit e memorizzarli nello stesso ordine.

Introduzione all'SSD. Parte 2. Interfaccia
Un piccolo numero di linee di segnale consente di aumentare la frequenza di trasmissione dei messaggi senza interferenze.

SCSI

Introduzione all'SSD. Parte 2. Interfaccia
Small Computer Systems Interface (SCSI) è apparso nel 1978 ed è stato originariamente progettato per combinare dispositivi di vari profili in un unico sistema. La specifica SCSI-1 prevedeva la connessione di un massimo di 8 dispositivi (insieme al controller), come ad esempio:

  • scanner;
  • unità a nastro (streamer);
  • drive ottici;
  • unità disco e altri dispositivi.

SCSI era originariamente chiamato Shugart Associates System Interface (SASI), ma il comitato per gli standard non avrebbe approvato il nome dopo la società e, dopo una giornata di brainstorming, è nato il nome Small Computer Systems Interface (SCSI). Il padre di SCSI, Larry Boucher, voleva che l'acronimo fosse pronunciato "sexy", ma Dal Allan leggi "sсuzzy" ("racconta"). Successivamente, la pronuncia di "tell" è stata saldamente radicata in questo standard.

Nella terminologia SCSI, i dispositivi collegati sono divisi in due tipi:

  • iniziatori;
  • dispositivi di destinazione.

L'iniziatore invia un comando al dispositivo di destinazione, che quindi invia una risposta all'iniziatore. Gli iniziatori e le destinazioni sono collegati a un bus SCSI comune, che ha una larghezza di banda di 1 MB/s nello standard SCSI-5.

La topologia "bus comune" utilizzata impone una serie di restrizioni:

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

Introduzione all'SSD. Parte 2. Interfaccia

I dispositivi sul bus sono identificati da un numero univoco chiamato ID destinazione SCSI. Ogni unità SCSI nel sistema è rappresentata da almeno un dispositivo logico, che è indirizzato da un numero univoco all'interno del dispositivo fisico. Numero di unità logica (LUN).

Introduzione all'SSD. Parte 2. Interfaccia
I comandi in SCSI vengono inviati nel modulo blocchi di descrizione dei comandi (Command Descriptor Block, CDB), costituito da un codice operazione e parametri di comando. Lo standard descrive più di 200 comandi, suddivisi in quattro categorie:

  • Obbligatorio — deve essere supportato dal dispositivo;
  • Opzionale - può essere implementato;
  • Specifico del fornitore - utilizzato da un produttore specifico;
  • Obsoleto - comandi obsoleti.

Tra i tanti comandi, solo tre sono obbligatori per i dispositivi:

  • UNITÀ DI PROVA PRONTO — verifica della prontezza del dispositivo;
  • RICHIESTA SENSO — richiede il codice di errore del comando precedente;
  • INCHIESTA — richiedere le principali caratteristiche del dispositivo.

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

Un ulteriore miglioramento di SCSI (specifiche SCSI-2 e Ultra SCSI) ha ampliato l'elenco dei comandi utilizzati e aumentato il numero di dispositivi collegati fino a 16 e la velocità di scambio dei dati sul bus fino a 640 MB/s. Poiché SCSI è un'interfaccia parallela, l'aumento della frequenza di scambio dei dati è stato associato a una diminuzione della lunghezza massima del cavo e ha portato a inconvenienti nell'uso.

A partire dallo standard Ultra-3 SCSI, è apparso il supporto per "hot plugging", il collegamento dei dispositivi quando l'alimentazione è accesa.

Il primo SSD SCSI conosciuto è stato l'M-Systems FFD-350, rilasciato nel 1995. Il disco aveva un costo elevato e non fu molto utilizzato.

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

ATA/PATA

Introduzione all'SSD. Parte 2. Interfaccia
Interfaccia ATA (Advanced Technology Attachment), noto anche come PATA (Parallel ATA) è stato sviluppato da Western Digital nel 1986. Il nome commerciale dello standard IDE (Eng. Integrated Drive Electronics - "elettronica integrata nell'unità") sottolineava un'importante innovazione: il controller dell'unità era integrato nell'unità e non su una scheda di espansione separata.

La decisione di posizionare il controller all'interno dell'unità ha risolto diversi problemi contemporaneamente. Innanzitutto, la distanza dall'unità al controller è diminuita, il che ha influito positivamente sulle prestazioni dell'unità. In secondo luogo, il controller integrato è stato "affilato" solo per un certo tipo di unità e, di conseguenza, era più economico.

Introduzione all'SSD. Parte 2. Interfaccia
ATA, come SCSI, utilizza un metodo di I/O parallelo, che si riflette nei cavi utilizzati. Il collegamento delle unità tramite l'interfaccia IDE richiede cavi a 40 conduttori, detti anche cavi piatti. Le specifiche più recenti utilizzano stub a 80 fili, più della metà dei quali sono loop di terra per ridurre le interferenze alle alte frequenze.

Ci sono da due a quattro connettori sul cavo ATA, uno dei quali è collegato alla scheda madre e il resto alle unità. Quando si collegano due dispositivi in ​​un loop, uno di essi deve essere configurato come Maestro, e il secondo come Schiavo. Il terzo dispositivo può essere connesso solo in modalità di sola lettura.

Introduzione all'SSD. Parte 2. Interfaccia
La posizione del ponticello determina il ruolo di un particolare dispositivo. I termini Master e Slave in relazione ai dispositivi non sono del tutto corretti, poiché in relazione al controller, tutti i dispositivi collegati sono Slave.

Un'innovazione speciale in ATA-3 è l'aspetto Autocontrollo, Tecnologia di analisi e reportistica (SMART). Cinque aziende (IBM, Seagate, Quantum, Conner e Western Digital) hanno unito le forze e standardizzato la tecnologia di valutazione dello stato delle unità.

Il supporto per le unità a stato solido esiste dalla versione 1998 dello standard, rilasciata nel 33.3. Questa versione dello standard forniva velocità di trasferimento dati fino a XNUMX MB/s.

Lo standard prevede requisiti rigorosi per i cavi ATA:

  • il pennacchio deve essere piatto;
  • lunghezza massima del treno 18 pollici (45.7 centimetri).

Il treno corto e largo era scomodo e interferiva con il raffreddamento. È diventato sempre più difficile aumentare la frequenza di trasmissione con ogni versione successiva dello standard e ATA-7 ha risolto radicalmente il problema: l'interfaccia parallela è stata sostituita da una seriale. Successivamente, ATA ha acquisito la parola Parallel ed è diventato noto come PATA, e la settima versione dello standard ha ricevuto un nome diverso: Serial ATA. La numerazione delle versioni SATA è iniziata da uno.

SATA

Introduzione all'SSD. Parte 2. Interfaccia
Lo standard Serial ATA (SATA) è stato introdotto il 7 gennaio 2003 e ha risolto i problemi del suo predecessore con le seguenti modifiche:

  • porta parallela sostituita da seriale;
  • cavo largo a 80 fili sostituito da 7 fili;
  • la topologia "bus comune" è stata sostituita con una connessione "punto-punto".

Anche se SATA 1.0 (SATA/150, 150 MB/s) era leggermente più veloce di ATA-6 (UltraDMA/130, 130 MB/s), il passaggio alla comunicazione seriale stava "preparando il terreno" per le velocità.

Sedici linee di segnale per la trasmissione dei dati in ATA sono state sostituite con due doppini intrecciati: uno per la trasmissione, il secondo per la ricezione. I connettori SATA sono progettati per essere più resistenti a riconnessioni multiple e la specifica SATA 1.0 ha reso possibile l'hot plug.

Alcuni pin sulle unità sono più corti di tutti gli altri. Questo viene fatto per supportare "hot swap" (Hot Swap). Durante il processo di sostituzione, il dispositivo "perde" e "ritrova" le linee in un ordine prestabilito.

Poco più di un anno dopo, nell'aprile 2004, è stata rilasciata la seconda versione della specifica SATA. Oltre ad accelerare fino a 3 Gb / s, SATA 2.0 ha introdotto la tecnologia Accodamento comandi nativi (NCQ). I dispositivi con supporto NCQ sono in grado di organizzare autonomamente l'ordine di esecuzione dei comandi in entrata per ottenere le massime prestazioni.

Introduzione all'SSD. Parte 2. Interfaccia
Nei tre anni successivi, il gruppo di lavoro SATA ha lavorato per migliorare le specifiche esistenti e la versione 2.6 ha introdotto i connettori compatti Slimline e micro SATA (uSATA). Questi connettori sono una versione più piccola del connettore SATA originale e sono progettati per unità ottiche e piccole unità nei laptop.

Mentre la SATA di seconda generazione aveva una larghezza di banda sufficiente per gli HDD, gli SSD ne richiedevano di più. Nel maggio 2009 è stata rilasciata la terza versione della specifica SATA con una larghezza di banda aumentata a 6 Gb / s.

Introduzione all'SSD. Parte 2. Interfaccia
Particolare attenzione è stata prestata alle unità a stato solido nell'edizione SATA 3.1. È apparso un connettore Mini-SATA (mSATA), progettato per collegare unità a stato solido nei laptop. A differenza di Slimline e uSATA, il nuovo connettore sembrava un PCIe Mini, sebbene non fosse elettricamente compatibile con PCIe. Oltre al nuovo connettore, SATA 3.1 vantava la capacità di mettere in coda i comandi TRIM con comandi di lettura e scrittura.

Il comando TRIM notifica all'SSD i blocchi di dati che non trasportano un carico utile. Prima di SATA 3.1, questo comando scaricava le cache e sospendeva le operazioni di I/O, seguito da un comando TRIM. Questo approccio ha ridotto le prestazioni del disco durante le operazioni di eliminazione.

La specifica SATA non ha tenuto il passo con la rapida crescita delle velocità di accesso per gli SSD, portando a un compromesso nel 2013 chiamato SATA Express nello standard SATA 3.2. Invece di raddoppiare nuovamente la larghezza di banda di SATA, gli sviluppatori hanno utilizzato il bus PCIe ampiamente utilizzato, la cui velocità supera i 6 Gb / s. Le unità con supporto SATA Express hanno acquisito il proprio fattore di forma chiamato M.2.

SAS

Introduzione all'SSD. Parte 2. Interfaccia
Anche lo standard SCSI, "in competizione" con ATA, non si è fermato e solo un anno dopo la comparsa di Serial ATA, nel 2004, è rinato in un'interfaccia seriale. Il nome della nuova interfaccia è Serial Attached SCSI (SAS).

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

  • interfaccia seriale;
  • cavo a 29 fili con alimentatore;
  • connessione punto a punto

Anche la terminologia SCSI è stata ereditata. Il controller è ancora chiamato iniziatore e i dispositivi collegati sono chiamati target. Tutti i dispositivi di destinazione 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 i 16mila e invece di un ID SCSI viene utilizzato un identificatore per l'indirizzamento Nome in tutto il mondo (WWW).

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

Introduzione all'SSD. Parte 2. Interfaccia
Nonostante le somiglianze 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 utilizzando il protocollo STP (SATA Tunneling Protocol).

La prima versione dello standard SAS-1 ha una larghezza di banda di 3 Gb / se la più moderna, SAS-4, ha migliorato questa cifra di 7 volte: 22,5 Gb / s.

PCIe

Introduzione all'SSD. Parte 2. Interfaccia
Peripheral Component Interconnect Express (PCI Express, PCIe) è un'interfaccia seriale per il trasferimento dei dati, apparsa nel 2002. Lo sviluppo è stato avviato da Intel e successivamente trasferito a un'organizzazione speciale: il PCI Special Interest Group.

L'interfaccia PCIe seriale non ha fatto eccezione ed è diventata una logica continuazione del PCI parallelo, progettato per collegare schede di espansione.

PCI Express è significativamente diverso da SATA e SAS. L'interfaccia PCIe ha un numero variabile di corsie. Il numero di linee è pari a potenze di due e va da 1 a 16.

Il termine "corsia" in PCIe non si riferisce a una corsia di segnale specifica, ma a un collegamento di comunicazione full duplex separato costituito dalle seguenti corsie di segnale:

  • ricevi+ e ricevi-;
  • trasmissione+ e trasmissione-;
  • quattro fili di terra.

Il numero di corsie PCIe influisce direttamente sulla larghezza di banda massima della connessione. L'attuale standard PCI Express 4.0 consente di raggiungere 1.9 GB / s su una singola linea e 31.5 GB / s quando si utilizzano 16 linee.

Introduzione all'SSD. Parte 2. Interfaccia
Gli "appetiti" delle unità a stato solido stanno crescendo molto rapidamente. Sia SATA che SAS non sono stati in grado di aumentare la loro larghezza di banda per tenere il passo con gli SSD, il che ha portato all'introduzione di SSD connessi a PCIe.

Sebbene le schede PCIe Add-In siano avvitate, PCIe è sostituibile a caldo. I pin corti PRSNT (inglese presente - presente) assicurano che la scheda sia completamente installata nello slot.

Le unità a stato solido collegate tramite PCIe sono regolate da uno standard separato Specifiche dell'interfaccia del controller host della memoria non volatile e sono incarnati in una varietà di fattori di forma, ma ne parleremo nella parte successiva.

Azionamenti remoti

Durante la creazione di data warehouse di grandi dimensioni, erano necessari protocolli che consentissero di connettere unità situate all'esterno del server. La prima soluzione in questo settore è stata SCSI Internet (iSCSI), sviluppato da IBM e Cisco nel 1998.

L'idea alla base del protocollo iSCSI è semplice: i comandi SCSI vengono "avvolti" in pacchetti TCP/IP e inviati alla rete. Nonostante la connessione remota, dà l'illusione ai client che l'unità sia connessa localmente. La SAN (Storage Area Network) basata su iSCSI può essere costruita sull'infrastruttura di rete esistente. L'uso di iSCSI riduce significativamente il costo di organizzazione di una SAN.

iSCSI ha un'opzione "premium" - Protocollo Fibre Channel (FCP). La SAN che utilizza FCP è costruita su linee di comunicazione in fibra ottica dedicate. Questo approccio richiede ulteriori apparecchiature di rete ottica, ma è stabile e ad alto rendimento.

Esistono molti protocolli per l'invio di comandi SCSI su reti di computer. Tuttavia, esiste un solo standard che risolve il problema opposto e consente di inviare pacchetti IP tramite il bus SCSI: IP su SCSI.

La maggior parte dei protocolli SAN utilizza il set di comandi SCSI per gestire le unità, ma esistono eccezioni, come il semplice ATA su Ethernet (AOE). Il protocollo AoE invia comandi ATA in pacchetti Ethernet, ma le unità vengono visualizzate come SCSI nel sistema.

Con l'avvento delle unità NVM Express, i protocolli iSCSI e FCP non soddisfano più i requisiti in rapida crescita delle unità SSD. Sono emerse due soluzioni:

  • rimozione del bus PCI Express all'esterno del server;
  • creazione del protocollo NVMe over Fabrics.

La rimozione del bus PCIe crea hardware di commutazione complesso ma non modifica il protocollo.

Il protocollo NVMe over Fabrics è diventato una buona alternativa a iSCSI e FCP. NVMe-oF utilizza un collegamento in fibra ottica e il set di comandi NVM Express.

DDR-T

Introduzione all'SSD. Parte 2. Interfaccia
Gli standard iSCSI e NVMe-oF risolvono il problema di collegare unità remote come locali, mentre Intel è andata dall'altra parte e ha portato l'unità locale il più vicino possibile al processore. La scelta è ricaduta sugli slot DIMM in cui è collegata la RAM. La larghezza di banda massima DDR4 è di 25 GB/s, che è molto più veloce del bus PCIe. Ecco come è nata l'unità SSD a memoria persistente Intel® Optane™ DC.

È stato inventato un protocollo per collegare un'unità agli slot DIMM DDR-T, compatibile fisicamente ed elettricamente con DDR4, ma richiede un controller speciale che vede la differenza tra una barra di memoria e un'unità. La velocità di accesso all'unità è inferiore a quella della RAM, ma superiore a quella di NVMe.

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

conclusione

Quasi tutte le interfacce hanno fatto molta strada dalla trasmissione dati seriale a quella parallela. Le velocità degli SSD sono alle stelle, ieri gli SSD erano una curiosità e oggi NVMe non è più una sorpresa.

Nel nostro laboratorio Laboratorio Selectel puoi testare tu stesso le unità SSD e NVMe.

Solo gli utenti registrati possono partecipare al sondaggio. AccediPer favore.

Le unità NVMe sostituiranno i classici SSD nel prossimo futuro?

  • 55.5%Sì100

  • 44.4%No80

180 utenti hanno votato. 28 utenti si sono astenuti.

Fonte: habr.com

Aggiungi un commento