Small Computer System Interface

thumb|300 px|Hard disk SCSI Ultra2 Multi-Mode LVD da 3,5 pollici - Su questo modello sono visibili, da sinistra verso destra: il connettore dati a 68 contatti, l'alloggiamento per i jumper e il connettore di alimentazione standard a 4 contatti

Lo SCSI (acronimo di Small Computer System Interface) è un'interfaccia standard progettata per realizzare il trasferimento di dati fra diversi dispositivi interni di un computer (detti devices) collegati fra di loro tramite un bus. SCSI si pronuncia scasi (qualcuno, senza successo, ha proposto in passato la pronuncia sexy).

Per collegare un computer ad un host, il bus di collegamento ha bisogno di un host adapter SCSI che gestisce il trasferimento dei dati sul bus stesso. La periferica deve disporre di un controller SCSI, che è solitamente incorporato in tutte le periferiche, ad eccezione di quelle di più vecchia concezione. L'interfaccia SCSI viene per lo più usata per la comunicazione con unità hard disk e unità nastro di memorizzazione di massa, ma anche per connettere una vasta gamma di dispositivi, come scanner d'immagini, lettori e scrittori di CD (CD-R e CD-RW), lettori DVD. In effetti lo standard SCSI è stato ideato per favorire l'intercambiabiltà e la compatibilità dei dispositivi (tutti, almeno in teoria). Esistono anche stampanti SCSI.

In passato l'interfaccia SCSI era molto diffusa in ogni tipologia di computer, mentre attualmente trova un vasto impiego solamente in workstation, server e periferiche di fascia alta (cioè con elevate prestazioni). I computer desktop e portatili sono invece di solito equipaggiati con l'interfaccia ATA/IDE (acronimi rispettivamente di Advanced Technology Attachment e Integrated Drive Electronics) per gli hard disk e con l'interfaccia USB (Universal Serial Bus) per altre periferiche di uso comune. Queste ultime interfacce sono più lente della SCSI, ma anche più economiche. Notare che l'USB utilizza lo stesso set di comandi dello SCSI per implementare alcune delle sue funzionalità.

Indice

Storia

Nel 1979 Alan Shugart, fondatore della Shugart Technology, introdusse sul mercato un'interfaccia semplificata, chiamata SASI. Contemporaneamente la divisione Periferiche della NCR Corporation (ora diventata Engenio), aveva sviluppato un prodotto più evoluto, il BYSE, e, per implementarlo, stava progettando un ASIC (Application Specific Integrated Circuit cioè circuito integrato per applicazioni specifiche o custom). Alla fine del 1981, NCR e Shugart si accordarono per far convergere il meglio delle due soluzioni in un unico progetto, in modo da costituire la base per un nuovo standard ANSI. Dopo una serie di riunioni del comitato normativo, e dopo che molti altri produttori avevano deciso di adottare il nuovo standard, fu scelto il nome SCSI.

Nel 1986, quando già lo SCSI si era largamente diffuso, l'ANSI approvò definitivamente la cosiddetta specifica SCSI (nota con la sigla X3.131-1986). Da allora lo SCSI si è affermato come uno standard industriale universale, in grado di trovare applicazioni in quasi tutti i sistemi di computer (c'è stata perfino un implementazione SCSI per il famoso home computer Commodore 64, per alcuni diventato un vero e proprio oggetto di culto). Il primo ASIC impiegato per realizzare un'interfaccia SCSI è stato donato dalla NCR allo Smithsonian Museum, a dimostrazione della grande popolarità raggiunta.

Versioni

Immagine mancante
SCSI_Terminator_50pol_Centronics.jpg
Un terminatore SCSI

Lo SCSI ha subito un'evoluzione negli anni, ma prima di illustrarne le caratteristiche è opportuno fare chiarezza sulla differente terminologia usata quando ci si riferisce allo standard SCSI vero e proprio, codificata da comitato T10 dell'INCITS, e dal linguaggio di uso corrente, codificato dalla associazione dei venditori di dispositivi SCSI.

Nel 2003 esistevano soltanto tre standard: SCSI-1, SCSI-2, e SCSI-3, tutti di tipo modulare, incorporanti funzionalità che i vari produttori potevano decidere di includere o non includere. I vari vendor hanno dato nomi particolari a specifiche combinazioni di funzionalità. Ad esempio il termine Ultra-SCSI è definito nello standard, ma di solito è utilizzato per indicare quelle versioni dotate di velocità di trasferimento dati doppie di quelle ottenibili con il Fast-SCSI. Questa velocità di trasferimento non è conforme alla specifica SCSI-2, ma invece è una delle opzioni previste dallo SCSI-3. Analogamente, nessuna versione dello standard richiede di indicare se il dispositivo è di tipo LVD (Low Voltage Differential) che significa che utilizza 3 volt di livello logico, invece dei 5 volt del tipo HVD (High Voltage Differential). Ciononostante i prodotti marcati Ultra-2 SCSI includono tutti questa opzione. Questo tipo di terminologia è utile ai consumatori perché denominare un dispositivo Ultra-2 SCSI descrive le funzionalità meglio che denominarlo SCSI-3.

Nessuna edizione della specifica SCSI ha mai prescritto il tipo di connettori da usare, che sono stati invece scelti dai vari vendor. Sebbene i dispositivi SCSI-1 siano equipaggiati tipicamente con connettori tipo Centronics Blue Ribbon, e gli SCSI-2 con connettori tipo Mini-D, non è corretto riferirsi a questi tipi come i connettori degli SCSI-1 e SCSI-2.

Le principali implementazioni dello standard SCSI sono le seguenti (in ordine cronologico e usando la terminologia di uso corrente):

Riepilogo caratteristiche dell'interfaccia SCSI
Interfaccia Velocità del bus
(Transfer rate)
(MBytes/s)
Larghezza del bus (bits) Max lunghezza cavi (metri) Max numero di dispositivi
SCSI 5 8 6 8
Fast SCSI 10 8 1,5-3 8
Wide SCSI 20 16 1,5-3 16
Ultra SCSI 20 8 1,5-3 5-8
Ultra Wide SCSI 40 16 1,5-3 5-8
Ultra2 SCSI 40 8 12 8
Ultra2 Wide SCSI 80 16 12 16
Ultra3 SCSI 160 16 12 16
Ultra-320 SCSI 320 16 12 16
iSCSI limitata solo dalle caratteristiche di rete N/A N/A  ??

SCSI-1

È la versione originale, derivata dal SASI, ed ufficialmente adottata dall'ANSI a partire dal 1986. SCSI-1 dispone di un bus a 8 bit, con controllo di parità, funzionante in modo asincrono alla velocità di 3,5 MB/s, oppure in modo sincrono a 5 MB/s, con una lunghezza massima consentita dei cavi di collegamento pari a 6 metri, un notevole passo in avanti rispetto al limite di 0,45 metri dell'interfaccia ATA (Advanced Technology Attachment). Una variante del progetto iniziale prevedeva l'implementazione del cosiddetto HVD (High Voltage Differential) cioè 5 volt di livello logico per il segnale, caratteristica che consente di aumentare di molte volte la massima lunghezza consentita per i cavi di collegamento.

SCSI-2

Questa versione è stata lanciata nel 1989, dando in seguito origine alle varianti Fast-SCSI e Wide-SCSI. Il Fast-SCSI ha consentito di elevare la massima velocità di trasferimento dei dati (Transfer rate) fino ad un massimo di 10 MB/s, mentre il Wide-SCSI ha raddoppiato sia larghezza del bus, portata a 16 bit, che la velocità, portata a 20 MB/s. Tuttavia queste maggiori prestazioni hanno comportato una limitazione a 3 metri della lunghezza massima dei cavi di collegamento. SCSI-2 prevedeva inizialmente anche una versione a 32 bit del Wide-SCSI, che montava due bus a 16 bit, ciascuno con un proprio cavo di collegamento. Tuttavia questa variante è stata di fatto ignorata sia dai costruttori di dispositivi che dal mercato, tanto che è stata ufficilamente abolita dallo standard SCSI-3.

SCSI-3

Prima che la Adaptec, e in seguito la SCSITA, codificassero l'attuale terminologia, il primo dispositivo SCSI in grado di superare le prestazioni dello SCSI-2 era stato semplicemente chiamato SCSI-3. Questi dispositivi, noti anche come Ultra-SCSI e Fast-20-SCSI, furono lanciati nel 1992. La velocità del bus era raddoppiata a 20 MB/s per i sistemi a 8-bit e a 40 MB/s per i sistemi a 16-bit. La massima lunghezza dei cavi rimase 3 metri, ma l'Ultra-SCSI si guadagnò una pessima reputazione per la sua estrema sensibilità alla lunghezza e alle condizioni dei cavi, che spesso provocava malfunzionamenti a causa di piccoli difetti nei cavi stessi, nei connettori o nei terminatori.

Ultra-2

Questa versione è stata introdotta sul mercato nel 1997 ed è dotata del bus di tipo LVD (vedi sopra), e per questo motivo viene a volte chiamata LVD SCSI. L'impiego della tecnologia LVD ha permesso di aumentare la lunghezza massima dei cavi a 12 metri, mantenendo un'alta immunità contro i disturbi. In qualche applicazione speciale la velocità è stata elevata fino a 80 MB/s. Tuttavia questa versione ha avuto vita breve, in quanto presto soppiantata dall'Ultra-3 (Ultra-160).

Ultra-3

Conosciuta anche come Ultra-160 e introdotta alla fine del 1999, questa versione è sostanzialmente un'evoluzione dell'Ultra-2 in cui la velocità di trasmissione è stata ancora una volta raddoppiata a 160 MB/s con l'impiego di una tecnologia chiamata double transition clocking. L'Ultra-160 inoltre è dotato di altre nuove caratteristiche, come il CRC (Cyclic Redundancy Check) che implementa un meccanismo di correzione automatica degli errori di trasmissione.

Ultra-320

Costituisce un'evoluzione dell'Ultra-160 in cui la velocità è stata raddoppiata a 320 MB/s. Quasi tutti i nuovi hard drive SCSI prodotti dall'ottobre 2003 sono di questo tipo.

Ultra-640

Altrimenti noto anche come Fast-320, è realizzato in conformità ad una specifica INCITS 367-2003 or SPI-5 emessa all'inizio del 2003, e, ancora una volta, raddoppia la velocità, portandola a 640 MB/s.

iSCSI

La versione iSCSI (sta per: internet SCSI) è un'evoluzione dello SCSI-3 che mantiene praticamente invariata l'impostazione dello SCSI di base, specialmente per quanto riguarda il set di comandi. Essa si basa sull'idea di incorporare nello standard SCSI il protocollo TCP/IP, realizzando un protocollo di storage che possa viaggiare su Ethernet. I sostenitori dello standard iSCSI ritengono che questa tecnologia possa rimpiazzare, nel lungo termine, le tecnologie concorrenti, compresa la tecnologia Fibre Channel, poiché le velocità di trasmissione dati ottenibili con reti Ethernet stanno attualmente aumentando più rapidamente di quelle ottenibili con le altre tecnologie. In prospettiva l'iSCSI ha dunque i requisiti necessari per affermarsi sia nel mercato di fascia bassa (low-end) che di fascia alta (high-end), utilizzando la medesima tecnologia.

SAS, ovvero il futuro dello SCSI

Sarà il SAS, il Serial Attached SCSI, a sostituire la gloriosa interfaccia che per 20 anni ha fatto mostra di sé all'interno dei server e delle postazioni esigenti in fatto di prestazioni. Come per il passaggio dal Parallel ATA al Serial ATA, anche in questo caso ci troviamo di fronte ad un cambio drastico (nell'interfaccia, non nei dischi!): i cavi utilizzati sono molto diversi, così come è completamente diversa la gestione delle unità da parte del sistema. La connessione è ora point to point, ovvero ad un cavo può essere connesso uno e un solo disco, con vantaggi prestazionali notevoli che eliminano le priorità e gli stand-by per il passaggio dei dati tipiche del "vecchio" SCSI.

L'interfaccia SCSI ultra 320 permette lo scambio massimo di 320 MB di dati al secondo, valore facilmente raggiungibile da catene RAID nemmeno troppo complesse; la nuova interfaccia SAS di fatto permette lo scambio di 300 MB al secondo massimi per ogni disco, non per tutta la catena. Questo fa sì che la larghezza di banda totale non sia più limitata a 320 MByte/s ma a 300 MByte/s per disco, quindi in un sistema formato da 4 dischi avremmo una larghezza di banda totale di ben 1200 MByte/s.

Altra importante innovazione è che dischi dotati di interfaccia Serial ATA possono essere collegati a connettori SAS, in ragione di una commutabilità del 100% dell'interfaccia fisica; sarà dunque possibile in futuro equipaggiare un sistema con dischi sia SATA che SAS utilizzando gli stessi cavi e connettori, a patto di utilizzare un controller che gestisca entrambi gli standard.

Compatibilità

Le versioni Ultra-2, Ultra-160 e Ultra-320 possono essere liberamente collegate sullo stesso bus di tipo LVD senza alcuno scadimento delle prestazioni, poiché il computer host effettuerà automaticamente l'arbitraggio della velocità di trasmissione e dell'utilizzo del bus di ciascun dispositivo. Nota: nessun dispositivo funzionante in single-ended mode (cioè con una linea collegata a terra) deve essere connesso al bus LVD, poiché ciò limiterebbe la velocità di tutti i dispositivi alla velocità del dispositivo single-ended più lento. A partire dall'emanazione della specifica SPI-5 (che descrive la versione Ultra-640) il supporto dell'interfaccia single-ended è fortemente sconsigliato, e quindi i dispositivi che saranno prodotti in futuro non saranno più compatibili con quelli precedenti.

Attenzione: i moderni dispositivi SCA devono essere collegati in catena ai precedenti modelli usando gli appositi adattatori SCA. Sebbene questi adattatori siano solitamente equipaggiati con connettori ausiliari di alimentazione di tipo speciale, si potrebbe correre il pericolo di danneggiare il dispositivo in caso di errata connessione alla sorgente di alimentazione. È consigliabile effettuare sempre un test preliminare del dispositivo senza l'alimentazione ausiliaria. I dispositivi SCSI sono di norma compatibili con le versioni precedenti (backward compatibility), il che significa che, ad esempio, è possibile collegare un hard disk Ultra-3 SCSI con un controller Ultra-2 SCSI e pilotarlo regolarmente, anche se a velocità e funzionalità ridotte.

Ad ogni dispositivo SCSI (compreso l'adattore del computer host), deve essere assegnato, in fase di configurazione, un ID (codice di identificazione) univoco, in modo che possa condividere uno stesso bus con altri dispositivi. Inoltre il bus deve anche essere correttamente collegato ad un terminatore. Possono essere utilizzati terminatori sia di tipo attivo che passivo, anche se il tipo attivo è preferibile (obbligatorio se il bus è di tipo LVD). Errati collegamenti del terminatore sono una delle più frequenti cause di malfunzionamento dei dispositivi SCSI.

È possibile convertire un bus largo in uno stretto, con l'avvertenza di installare i dispositivi che richiedono il bus largo più vicini all'adattatore. Ciò richiede la presenza di un cavo di collegamento dotato di terminatori alla fine del lato largo del bus. Questa tecnica di collegamento viene solitamente chiamata terminazione high-9. È necessario inviare comandi specifici all' host per abilitare questa modalità. Questa pratica è comunque sconsigliata.

Architettura del modello SCSI

Lo standard SCSI-1 originario definiva le caratteristiche fisiche richieste al bus di collegamento, nonché la sequenza dei segnali elettrici necessari a compiere determinate azioni. Con lo standard SCSI-2 si ebbe un notevole ampliamento delle funzionalità, in particolare con la definizione definitiva del set di istruzioni da inviare al controller. Sta di fatto che il set di comadi SCSI è utile e funzionale di per sé stesso, dal momento che esiste ormai un gran numero di utilizzatori e progettisti esperti. Con l'avvento dello standard SCSI-3 si è realizzata la netta separazione fra il set di comandi SCSI vero e proprio e la sua tradizionale implementazione in modalità parallela.

La struttura logica del set di comandi SCSI è denominata SAM (SCSI Architecture Model) ed è inclusa nelle specifiche di interfacciamento con dispositivi rispondenti ai seguenti standard:

Tutti questi tipi di dispositivi son in grado di interpretare, in tutto o in parte, il set di comandi SCSI.

Collegamenti esterni

In lingua inglese

See also: Small Computer System Interface, 1979, 1981, 1986, 1989, 1992, 1997, 1999, 2003, ANSI