[an error occurred while processing this directive]
diff logo Informatica e sistemi alternativi
su questo sito sul Web
    Home   Chi siamo    Contattaci    Scrivi per diff    Proponi un argomento 18/04/24
    Cos'è diff    Come accedere    F.A.Q.    Promuovi    Dicono di diff    Amici di diff    
AmigaOS
Linux
FreeBSD
BeOS
OpenSource
Java
Database
Informatica
Hardware
E-Commerce
Narrativa

Mi scusi lo SCSI (signorina!)
di Andrea Vallinotto

Una conseguenza dell'evoluzione: la scalabilità

Il fatto che lo SCSI si sia evoluto negli anni ha comportato delle scelte più o meno consapevoli dei costruttori, che in genere si sono orientati verso la compatibilità con il passato. Questo significa che un host adapter che implementa le ultime versioni dello standard (come Wide-Ultra3) è in grado di gestire anche le periferiche più vecchie. Questo è anche vero per i dispositivi che si allineano ad una stessa versione dello SCSI: i requisiti minimi per far funzionare una periferica SCSI sono molto ridotti rispetto a tutte le 'features' che implementa teoricamente lo SCSI. Quando una periferica dialoga con l'unità centrale, la comunicazione si attesta su un terreno comune, una scelta fatta al ribasso: se, ad esempio, l'host adapter supporta la trasmissione sincrona, la riselezione e i Linked Commands (si veda più in basso per una spiegazione di questi termini), ma il dispositivo in questione supporta solo la trasmissione asincrona, il trasferimento dei dati avviene in asincrono, che è il 'livello' comune. Questo significa che si può avere il controller più veloce del mondo, ma una periferica lenta resta lenta.
Inoltre, questo 'gioco al ribasso' può degradare le prestazioni delle periferiche più veloci, almeno nel caso dei bus 'parallel'.
In maniera più sottile, questo è vero anche per i comandi, che sono il mezzo con il quale le applicazioni di alto livello (i programmi utente) dialogano sul bus SCSI. Ad esempio, il set di comandi comuni ad ogni periferica (Shared Command Set) prevede una sotto-famiglia di comandi destinati alla gestione delle periferiche in presenza di più host adapter - il caso cioè in cui più computer siano connessi sulla stessa catena. Per questi casi sono previsti alcuni comandi detti di reservation che servono a 'prenotare' una periferica da parte di un specifico computer, onde evitare conflitti. Essendo questi comandi considerati dallo standard come 'opzionali', sono implementati da ben pochi dispositivi. Un altro esempio sono i comandi di copia, che consentono di copiare dei dati da una periferica all'altra (di solito hard-disk, ma non solo) senza dover passare per l'unità centrale; senza dubbio sarebbero di grande utilità perché scaricano di molto il lavoro dell'host adapter - ma essendo implementati da pochi hard-disk, non vengono mai utilizzati.
Ecco quindi i pregi e i difetti dell'evoluzione a cui è andato incontro lo SCSI.

Incominciamo a dare i numeri: gli ID e le LUN...

... e facciamo visita allo Zoo SCSI

Ogni unità sul bus SCSI deve avere un numero identificativo unico, che serve all'host adapter ed alle applicazioni per dialogarci. La numerazione dipende strettamente dal tipo di bus di trasporto che si sta utilizzando: quindi uno schema di numerazione valido per il Parallel-Wide potrebbe essere diverso da un FireWire-SCSI e così via.

    Le uniche regole generiche sono:
  • esiste un valore massimo per il numero di periferica. Nello SCSI Narrow questo valore è 7, nel Wide 15. Il minimo è 0.
  • ogni unità deve avere un numero unico e diverso da tutti gli altri;
  • anche i controller devono avere un proprio numero. Di solito si usa il valore più alto, ma nulla vieta di usarne un altro. Questo diventa fondamentale per le catene con più di un controller.

La scelta dell'ID va quindi effettuata in maniera unica per ogni unità. Di solito questo viene effettuato con dei ponticelli (jumper) presenti sulla scheda del dispositivo. La scelta degli ID è completamente indipendente da quale posizione abbia una periferica sulla catena.
Quest'operazione, però, per gli utenti meno perspicaci è fonte di grattacapi; da ciò è nato (solo ed esclusivamente per lo SCSI Parallel) lo SCAM, acronimo che significa SCSI Configured AutoMatically (l'acronimo SCA era già preso). Questo protocollo, che si trova descritto in appendice al documento sullo SCSI Parallel (SPI-3), si preoccupa, durante le prime fasi di vita del bus - cioè all'accensione - di dare un numero univoco ad ogni periferica. Per il discorso fatto prima sulla scalabilità e l'evoluzione, per trarre vantaggio da questa 'feature' bisogna avere sia l'host adapter sia le periferche che supportino tale standard.

Non è tutto oro quel che luccica però - soprattutto se si parla di Plug'n'Play, nome sotto il quale è anche compreso lo SCAM. Infatti molti sistemi operativi e molti programmi utente memorizzano l'ID di una particolare periferica per usi futuri (ad esempio i programmi di masterizzazione). La diretta conseguenza è che appena si aggiunge o toglie una periferica SCAM gli ID rischiano di cambiare e combinare dei problemi. Come disse l'ingegnerissimo Canali, parlando di un lettore CD-ROM: La prova con un PC compatibile in ambiente Windows'95 è stata altrettanto positiva. La conformità alle specifiche SCAM P'n'P fa sì che l'unica cosa da fare per l'installazione a 32 bit sia il collegamento del cavo: persino l'ID viene attribuito via software (purché il controller abbia l'opportuno supporto da Microsoft). Il CD è quindi perfettamente funzionante sin dalla prima accensione. A questo punto, se necessario, basta riconfigurare o reinstallare manualmente tutte le altre risorse del computer (spostate o cancellate automaticamente da Windows'95 per fare spazio alla nuova unità) e gli opportuni programmi applicativi, per ottenere in poche ore una configurazione funzionante.

Una seconda suddivisione sono le LUN - Logical Unit Number: è un secondo livello di indirizzamento, al di sotto degli ID. Di solito il valore massimo è 7, sempre nel caso dello SCSI Parallel. Al contrario degli ID, i numeri di LUN sono assegnati e gestiti per intero dalla periferica. Tramite le LUN si ottengono così delle sotto-suddivisioni di un'unità; sono molte poche le periferiche che le utilizzano: una unità monolitica si dice che ha un'unica LUN, all'indirizzo 0. Nel caso in cui vengano utilizzate, invece, per individuare una singola unità logica si forma una coppia di valori con l'ID: ad esempio ID 5 LUN 4. I lettori CD multipli ne fanno uso per organizzare i dischi interni, nel senso che un tale dispositivo è visto sotto un unico ID come CD-ROM e le varie LUN corrispondo ai vari dischi che può caricare.



Continua...

AMIGA


Andrea Vallinotto
Studente di Informatica all'Universtità degli Studi di Torino.
Utente e sviluppatore Amiga, programma, quando ha tempo, in C e ARexx.
Collabora come free-lance (senza sapere dove poi atterra) alla rivista francese AmigaNews.
Altri hobby: subacquea e viaggi.

Puoi contattare l'autore scrivendo a:
avallino@diff.org


Articoli dello stesso autore:
Annuncio AmigaOS 5 (DevCon '98)
Reportage dalla fiera di Colonia '98
Clickboom
Signorina, mi scusi lo SCSI
Introduzione alla programmazione
AmigaOS 3.5 è realtà
Utility ed inutilities per la rete e per Internet
I Love You: cronache del dopobomba
I Love You ed i sistemi nostrani


 


    Indice dell'articolo:

  1. Introduzione
  2. Parte prima: ovvero lo standard dai 50 volti.

© 1999,2000,2001,2002 NonSoLoSoft di Ferruccio Zamuner (Italia)- tutti i diritti sono riservati