II. Les normes
Les différentes normes SCSI sont définies par tout un ensemble
de paramètres. Ici sont présentées les
caractéristiques principales qui permettent de différencier les normes les unes
par rapport aux autres.
Type de bus: Le SCSI est à l’origine un bus parallèle
fonctionnant de manière synchrone ou asynchrone.
Bus parallèle, cela signifie que plusieurs bits
de données sont envoyés en même temps. A opposer à un bus série où chaque bit
est transmis l´un à la suite de l´autre.
Synchrone/Asynchrone : les deux modes de transmissions des données.
En
asynchrone, l’envoi d’un octet de donnée est tributaire d’une demande d’émission
et d’un accusé de réception. Tant que la réception n’a pas été confirmée, un
nouvel octet ne peut être envoyé. Ce mode limite sérieusement les débits sur le
bus.
En
synchrone, l’émetteur n’est pas obligé d’attendre la confirmation du récepteur
pour envoyer un nouvel octet de donnée. Cette méthode augmente considérablement
les débits maximums. A noter que les demandes d’émissions et les preuves de
réception sont elles toujours envoyées en asynchrone… jusqu´à la norme SPI-3 qui
initia une méthode pour contourner ce problème (et augmenter encore les
performances).
Le bus est
aussi défini par le niveau électrique employé : SE, HVD, LVD.
Le mode SE
(Single Ended), ou Asymétrique. Dans ce mode, les données sont véhiculées sur un
seul fil, avec juste une masse associée a chacun. On trouve donc 8 fils de
données sur un câble 8 bits (narrow) et 16 sur un câble 16 bits (wide). C’est la
différence entre la tension sur le fil de donnée et la masse qui détermine le
bit transféré. Ce système à l’inconvénient d’être très sensible aux
interférences ce qui explique les distances maximums de branchement peu élevées
(et qui se raccourcissent très vite avec l’augmentation du débit).
Le mode
HVD (High Voltage Differential) : Différentiel haute tension. Dans ce mode, il
y’a deux fois plus de fils dédiés aux transfert des données, 16 en 8 bits et 32
en 16 bits. La moitié de ces fils véhicule une tension positive, l’autre moitié
une tension négative. L’information est obtenue en faisant la différence entre
la tension positive et la tension négative de chaque fil de donnée.
Contrairement au mode asymétrique, ce système à l’énorme avantage d’être
nettement moins sensible aux interférences, permettant à la fois des débits plus
élevés et une distance de câblage plus important (jusqu´à 25 mètres).
Le mode
LVD (Low Voltage Differential) : Différentiel basse tension. Le principe de
fonctionnement est le même que pour le HVD, la différence se situant au niveau
de la tension utilisée : 3,3 V au lieu de 5 V pour le HVD. Lire les informations
relatives à la norme SPI-2 pour plus de détails.
Largeur de bus : Indique la quantité de données transférées
en un cycle d’horloge. La norme SCSI-1 a défini le transfert sur 8 bits, baptisé
« Narrow » (étroit) ; le SCSI-2 le transfert sur 16 bits « Wide» (large) et 32
bits « Extra Wide » (extra large) ou « Double Wide » (double largeur). La norme
SPI-3 a rendu obsolète les transferts 32 bits, car elle était très rarement
employée. Elle nécessitait l’utilisation de deux câbles ou nappes en parallèle
pour être opérationnelle, et un câble unique en 32 bits n’a jamais été mis au
point (il aurait intégré plus de 100 fils…).
Fréquence : la vitesse à laquelle fonctionne le bus,
exprimé en Mhz.
Débit : il se calcule à partir de la largeur de bus et de la fréquence de celui-ci,
et est exprimé en Mo/sec (MB/sec en anglais). A noter que l’ANSI et certains fabricants parlent en
Megatransfers/sec, dont voici la définition officielle :
- megatransfers/sec :
débit répétitif par lequel les données sont transférés sur le bus. Il est
équivalent au mégaoctets/sec sur un bus 8 bits.
Nombre de périphériques : indique le nombre maximum de
périphérique utilisable sur une seule chaîne. Il est de 8 en 8 bits, de 16 en 16
bits et de 32 en 32 bits.
Longueur de câblage : en mètres, précise quel distance
maximum peut être utilisé sur un bus donné. Ne pas oublier qu´il faut au minimum
10 cm de câble/nappe entre deux périphériques et qu´une trentaine de cm est
recommandé.
Le tableau ci-dessous présente un récapitulatif des normes SCSI les plus couramment utilisés :
| Nom |
Largeur de bus* |
Fréquence |
Débit |
Nombre de périphériques |
Longueur de câble (suivant type de bus) |
| SE |
LVD |
HVD |
| SCSI-1 |
8 bits |
5 Mhz | 5 Mo/sec | 8 | 6m | - | - |
| SCSI-2 (Fast-10 SCSI) | 8 bits |
10 Mhz | 10 Mo/sec | 8 |
3m | - | 25m |
| Wide SCSI-2 (Fast-10 SCSI ) |
16 bits |
10 Mhz |
20 Mo/sec |
16 |
3m** |
- | 25m |
| Ultra SCSI-2 (Fast-20 SCSI) |
8 bits |
20 Mhz |
20 Mo/sec |
8 (4) |
1,5m** (3m) |
- |
25m |
| Ultra Wide SCSI-2 (Fast-20 SCSI) | 16 bits |
20 Mhz |
40 Mo/sec |
16 (4) |
1,5m** (3m) |
- |
25m |
| Ultra2 Wide SCSI Fast-40 SCSI) | 16 bits |
40 Mhz |
80 Mo/sec |
16 (2) |
- |
12m (25m) |
25m |
| Ultra3 SCSI (Fast-80 - Ultra160 SCSI) | 16 bits |
40 Mhz |
160 Mo/sec |
16 (2) |
- |
12m (25m) |
- |
| Ultra320 SCSI (Fast-160) |
16 bits |
80 Mhz |
320 Mo/sec |
16 (2) |
- |
12m (25m) |
- |
| Ultra640 SCSI*** | ?? |
?? |
640 Mo/sec |
?? |
?? |
?? |
?? |
*Aucune norme utilisant le 32 bits n’a été
consigné dans le tableau, vu leur rareté
**en mode SE, il est impossible de pouvoir
connecter 8 ou 16 périphériques avec ces normes. L’ultra Wide SCSI-2, exemple
extrême, devrait en pratique disposer d’une longueur de plus de 4,50 mètres,
trois fois le maxima de la norme…
***en cours de développement
Reprenons plus en détail chaque norme :
Le
SCSI-1, norme originelle, ne peut plus vraiment être
qualifié de performante vu les standards actuels. Elle a surtout permis de poser
les bases de l’interface :
- Transfert des données en parallèle sur 8 bits (Narrow),
de manière synchrone ou asynchrone
- Débit maximum de 5Mo/sec et sur une distance de 6 mètres
- Pour la connectique, utilisation de terminateurs passifs,
de nappes 50 points en interne et de câbles Centronics 50 connecteurs
(appelé « connecteur SCSI-1 » ) en externe.
Le
SCSI-2 fut par contre un grand bond en avant :
- Mise en place du CCS (Common Command Set), un jeu de 18
commandes définissant une interface logiciel commune pour l´ensemble des
périphériques, mettant ainsi fin à bon nombre d’incompatibilités
(les différents constructeurs prenaient un peu trop de liberté vis-à-vis de la
norme SCSI-1).
- Instauration d’une technologie électronique
différentielle, baptisée plus tard HVD, afin de pallier au raccourcissement des
distances maximum de câblages, la portant à 25 mètres.
- Définition des bus de données 16 et 32 bits (dit « Wide »
pour le 16 bits et « Extra Wide » ou « Double Wide » pour le 32 bits)
- Doublement des débits par l’augmentation de la vitesse de
transfert de 5 à 10 Mhz (le Fast-10). On obtient ainsi 10Mo/sec en 8 bits, 20 Mo/sec et 40 Mo/sec en 16 et 32 bits respectivement
- Niveau connectique, introduction du connecteur Mini 50
points Haute Densité (Mini50HD, couramment appelé « connecteur SCSI-2 ») ;
utilisation recommandée de terminateurs actifs
- Compatibilité avec la norme SCSI-1
- Distance maximum de connexion de 3 mètres en mode SE (Asymétrique)
- A noter que les modes wide nécessite l’utilisation de deux nappes en simultané. Cela limita sérieusement leur popularisation.
La norme
SCSI-3 quand à elle n’est plus définie dans un
seul document mais dans tout un ensemble, chacun traitant d’un domaine
particulier : le SAM (SCSI Architecture Model). Cela permet des évolutions indépendantes de ces différents domaines
sans avoir à reprendre l’intégralité de la norme. De cette manière fut également
possible la mise en œuvre de nouveaux types de connections (série par exemple).
Ce diagramme présente l’architecture de la norme SCSI-3
dans son ensemble :

On trouve ainsi par exemple dans la norme SCSI-3 :
- SCSI-3 Primary Command : Commandes primaires, utilisées
par n’importe quel périphérique SCSI-3
- SCSI-3 Block Commands (SBC) / Reduced Block Commands (RBC) : Pour les disques durs.
- SCSI-3 Stream Commands (SBC) : Pour les lecteurs de bandes.
- SCSI-3 Controller Commands (SCC) : Pour la gestion du RAID.
- SCSI-3 Multimedia Commands (MMC) : Pour les lecteurs CD, DVD, etc.
- SCSI-3 Fibre Channel Protocol (FCP) : Pour l’utilisation du Fibre Channel.
- SCSI-3 Serial Bus Protocol (SBP) : Pour l’utilisation de l’IEEE 1394 “Firewire".
Mais penchons-nous sur la partie qui nous intéresse le
plus, le SCSI Parallel Interface (SPI).
Ce document décrit les signaux électriques et les
connecteurs nécessaires pour un branchement des périphériques SCSI en parallèle
(tout comme le SCSI-1 et 2). Ce sont les différentes révisions du SPI qui sont à
l’origine des évolutions des périphériques SCSI que nous utilisons.
SPI 1 : Une des nouveautés qui
fut le plus vite adoptée est l’introduction du fameux connecteur 68 broches haute
densité (Mini68HD), autorisant des transfert sur un bus 16 bits via un seul
câble au lieu de deux auparavant. Communément appelé « connecteur SCSI-3 », il a
permis un développement nettement plus rapide du Wide SCSI.
Une révision du SPI
1 a mis en place l’Ultra (ou Fast-20) SCSI, doublant les vitesses de débits
(jusqu´à 40 Mo/sec en 16 bits), mais réduisant la longueur maximum de câblage en
mode SE à 1,5 mètres (3 mètres avec quatre périphériques). En mode différentiel,
cela reste inchangé à 25 mètres.
SPI 2: Apparition de l’Ultra 2
(Fast-40) SCSI, qui fit passer la vitesse du bus de 20 à 40 Mhz, et permit donc
un nouveau doublement des débits (80 Mo/sec en 16 bit). Mais cette augmentation
posait comme problème récurrent un dégagement de chaleur beaucoup plus important
de la part des périphériques utilisés en différentiels. Il fut donc développé
une nouvelle interface électrique, le LVD, fonctionnant à 3,3 Volts. L’ancienne
technologie différentielle est désormais appelée HVD et n’est pas compatible
avec la nouvelle.
La plupart des interfaces LVD
sont conçus pour pouvoir également fonctionner en SE. Cela permet d’utiliser des
périphériques LVD sur une chaîne SE, avec les limitations en débits et en
distance propre à ce type de bus, et dans le même ordre d’idée de connecter un
périphérique SE sur une chaîne LVD, mais avec comme conséquence de basculer
l’intégralité du bus en mode SE, toujours avec les même limitations. On
rappellera qu’en mode SE les débits ne peuvent dépasser ceux de l’Ultra SCSI.
La longueur de câblage est
définie a 12 mètres (25 mètres si deux périphériques sont utilisé).
Hormis régler les problèmes de
chaleur, le LVD, par une plus grande intégration des composants dans le
contrôleur, réduisit les coûts de fabrications des cartes.
Enfin niveau connectique deux
nouveaux connecteurs ont été ajoutés :
- le SCA-80 (Single Connector Attachment) qui inclut les
signaux du câble 16 bits ainsi que l’alimentation. Il a été conçu pour le
branchement / remplacement à chaud (Hot Plug - Hot Swap) et est destiné au marché des serveurs.
- Le VHDCI (Very High Density Cable Interconnect), qui possède aussi la connectique 16 bits et est très petit en taille.
Cela permet d’en placer plus sur une seule équerre. Les cartes SCSI récentes, notamment
double canal, possèdent ce connecteur.
SPI 3 : Encore un doublement
des débits avec l’Ultra 3 SCSI (Ultra160 ou Fast-80), on atteint ainsi 160
Mo/sec en 16 bits (80 Megatransfers/Sec). Pour obtenir ce taux, il est en fait
envoyé deux bits de données à chaque cycle d’horloge au lieu d’un seul. Cette
méthode est appelé Double Transition Clocking (DT clocking) et n’existe que pour
le bus 16 bits.
Pour améliorer encore les
performances, il fut développé deux autres technologies : le Groupement par
Paquets (Packetization) et la Sélection et Arbitrage Rapide (Quick Arbitration
and Selection : QAS). Le groupement par paquets permet le transfert des
commandes et des états en même temps que les données (Cet ensemble de donnée est
appelée une unité d´information - Information Unit), le tout en mode DT clocking,
au lieu d´utiliser les modes asynchrones beaucoup plus lents. La Sélection et
Arbitrage Rapide est une méthode qui permet de passer le contrôle du bus d´un
périphérique à un autre (les deux doivent supporter cette fonction), sans
attendre une phase de libération du bus (étape normalement indispensable entre
chaque transfert sur celui-ci). L´emploi de ces deux nouveautés permet de
réduire le surdébit de commandes et de maximiser l´utilisation du bus.
Afin de fiabiliser au maximum
les transferts de données, la norme SPI-3 inclut deux nouvelles
caractéristiques : le test CRC 32 bits (Cyclic Redundancy Check) et la
validation de domaine (Domain Validation). Le test CRC se caractérise par
l’envoi d’octets supplémentaires pour chaque bloc de données qui permettent au
périphérique destinataire d’en vérifier le contenu. La validation de domaine
quand à elle sert à déterminer le débit maximum que peut utiliser un
périphérique.
Il fut rendu obsolète
l’interface électrique HVD et le bus 32 bits. Les distances de câblages restent
inchangés : 12 mètres par défaut ou 25 mètres avec deux périphériques.
On notera l’existence de l’Ultra160/m, un
dérivé de l’Ultra 3 SCSI. Sont désigné ainsi les périphériques (des disques durs
surtout) qui répondent à ces trois critères : le DT Clocking, le test CRC et
la validation de domaine. Cette catégorie fut instauré par certains fabricants
dans le but d´accélérer l´introduction de produits répondant à la norme
Ultra160. (Pour être considéré comme compatible avec cette norme, un
périphérique doit inclure au moins une des cinq caractéristiques précitées : le
DT clocking, le test CRC, la Validation de Domaine, la Sélection et Arbitrage
Rapide et le Groupement par Paquets).
SPI 4 : Le débit maximum passe à 320 Mo/sec en augmentant la fréquence de bus à
80 Mhz : Ultra320 (Fast-160). Les deux principales innovations sont :
- Lecture et Ecriture de Données en Continu (Read and Write Data Streaming) :
cette fonction permet l´envoi de plusieurs paquets de données après l´envoi d´un
paquet de contrôle au lieu d´un seul.
- Contrôle de Flux : La cible peut, pendant un transfert de données, indiquer à
quel moment le dernier paquet sera transféré. Cela permet à la source de
terminer sa pré lecture de donnée ou de vider ses tampons plus rapidement
qu´auparavant.
La norme SPI-4 n´étant pas encore finalisée, de nouvelles innovations sont à
prévoir.
SPI 5 : L´Ultra640 est actuellement en cours de développement.