1 2 8 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

SCSI

La norme SCSI est un standard utilisé par de nombreuses cartes d’extensions dans les IBM PC et compatibles permettant de connecter de nombreuse extensions telles que les disques dur, des cartes de réseaux, des CD-ROM, etc… Elles permettent, comparativement aux autres cartes d’extensions, d’être plus rapide et pouvoir, sur une même carte connecter 7 extensions différentes. Malheureusement, la norme SCSI n’a pas standardisé dans ses débuts et chaque fabriquant proposait son propre format SCSI. Maintenant le SCSI au Fast SCSI-3 est parfaitement standard.

J’ai entendu ou lu tellement de choses ces derniers temps à propos de l’évolution de la norme SCSI-1 vers SCSI-2, que je ne peux résister au besoin de faire quelques petites mises au point techniques.

En 1985, quand la première norme SCSI fut finalisée à l’American National Standard Institute (ANSI pour les intimes), le groupe de travail X3T9.2 fut approché par un groupe de fabricants. Le groupe en question, désirait étendre les spécifications du SCSI et définir des méthodes et des fonctions plus élaborées concernant les périphériques à accès direct (on dit aussi ‘Direct Access Devices’). A l’époque, plutôt que de retarder la sortie du standard SCSI, X3T9.2 constitua un groupe interne pour élaborer un document de travail, connu par la suite sous l’appellation de ‘Common Command Set’ (CCS). Un grand nombre de produits allaient être conçus à partir de ce document.

En parallèle avec ce développement du CCS, X3T9.2 sollicita l’autorisation de commencer à réfléchir à une extension du standard SCSI, qui serait appelé SCSI-2. SCSI-2 inclurait les résultats du CCS, des fonctions de cache, des améliorations de performance, et en fait tout ce qui passerait par la tête de X3T9.2. Bien que devant dépasser largement les performances du SCSI original (déjà appelé SCSI-1), SCSI-2 devait offrir la plus grande compatibilité avec les produits SCSI-1, cela va sans dire.

Un mot de discussion

Il y a des différences majeures entre le standard SCSI de 1986 et le SCSI-2 de 1990. Le taux de compatibilité entre les fabricants, objectif de la norme de 1986 ne fut que très partiellement atteint en raison notamment de la prolifération de ce que l’on pourrait pudiquement appeler “undocumented features” (fonctions non documentées).

Chaque implémentation fut suffisamment différente pour qu’il soit nécessaire d’écrire des drivers différents pour chaque périphérique.

Tout ceci généra un véritable appel pour une vraie compatibilité, qui se matérialisa par la création du CCS. Celui-ci devint si populaire qu’il acquit une identité propre très rapidement.

Le CCS définit les structures des commandes “Mode Sense” et “Mode Select”, la gestion des défauts de surface rencontrés lors de la commande “Format” ainsi que les procédures de correction d’erreurs. Le CCS fut un succès, principalement parce que les buts étaient limités, les objectifs clairs et l’époque favorable…

Le CCS fut le point de départ de SCSI-2, mais applicable seulement aux disques magnétiques dans un premier temps. Les lecteurs de bandes et les disques optiques étaient par trop différents, c’est pour cette raison que le premier groupe de travail sur SCSI-2 concentra ses efforts sur ces deux derniers systèmes.

SCSI-2 représente trois années de réflexion et de “brain storming” de la part des meilleurs spécialistes de cette discipline. Plusieurs nouvelles fonctionnalités sont utilisées seulement dans les systèmes les plus sophistiqués, quelques unes apparaîtront certainement dans des systèmes grand public, quelques autres toutefois n’auront jamais d’implémentation réelle et finiront par être abandonnées, comme l’ont été certaines des fonctionnalités de l’original SCSI-1 (tel “Extended Identify” par exemple).

Avant de discuter plus avant des différences entre les deux standards, il faut signaler que les circuits (électroniques) conçus pour gérer le SCSI-1 sont toujours utilisables. Aucune des nouvelles fonctionnalités introduites n’oblige à utiliser de nouveaux circuits. De même, les initiateurs (contrôleurs) bien conçus au départ d’après la norme SCSI 1986 supporteront sans problème les périphériques SCSI-2. Cependant il faut également signaler que tous les contrôleurs commercialisés ces dernières années ne tombent pas forcément dans ce cas et peuvent être sévèrement “perturbés” par des périphériques SCSI-2. En effet, la norme de 1986 autorise aussi bien le contrôleur que le périphérique à entamer une séquence de négociation pour un transfert synchrone. Un pourcentage élevé de contrôleurs SCSI vont cependant retourner une condition d’erreur si c’est le périphérique qui entame cette négociation le premier!

Un effort particulier a été fait pour que les contrôleurs “1986 compatibles” n’aient pas de problèmes de compatibilité avec des périphériques SCSI-2. Si toutefois vous rencontrez des problèmes de ce type, commencez par blâmer le contrôleur plutôt que le périphérique….

Bon, après cette petite discussion sur le fond, il est temps d’aborder les nouvelles fonctionnalités que vous allez découvrir avec SCSI-2.

Wide SCSI : SCSI peut à présent assurer des transferts de données sur des largeurs de bus de 16 et 32 bits. Bien entendu les commandes, les messages de statuts ainsi que l’arbitrage sont toujours codés sur 8 bits (compatibilité quand tu nous tiens…), et le Cable-B possède donc 68 conducteurs pour les bits de données. Le design du “cabling” fut d’ailleurs un sujet de confusion dans les jours qui précédèrent la clôture du standard SCSI-2, principalement parce que le premier projet de SCSI-3 portait sur la définition d’un P-Cable de 16 bits de large qui devait supporter l’arbitrage sur 16 bits aussi bien que le transfert des données en 16 bits. Bien que SCSI-2 ne contienne pas de définition du P-Cable, il est très probable que ce même P-Cable soit dans les prochains mois la fonctionnalité non-SCSI-2 la plus populaire sur des périphériques SCSI-2… Le marché obtient en général ce qu’il veut sans vraiment se conformer strictement aux standards….

Fast SCSI : Un taux de transfert de 10 Mb/s pour le SCSI fut l’aboutissement d’un effort conjoint de la part de l’IPI (Intelligent peripehral interface Comittee) et du groupe ASC X3T9.3. Fast SCSI peut assurer un transport de 10Mb/sec sur un cabling type A (celui que vous avez tous chez vous…) et même 20 ou 40 Mb/sec sur des cablings de 16 et 32 bits de large. Il faut noter cependant que le temps que le besoin du marché se fasse sentir pour des transferts de 40 Mb/sec, il est très probable que les efforts visant à sérialiser l’interface physique pour SCSI-3 attirent de ce fait les utilisateurs de systèmes SCSI hautes performances vers les systèmes à fibre optiques.

L’arbitrage du Bus, la Parité et les Messages d’identification étaient optionnels dans SCSI-1. Ils sont maintenant obligatoires dans SCSI-2. En fait, seuls les premières (et les plus primitives) des implémentations SCSI ne possédaient pas ces options. Sur ce plan là, la norme SCSI-2 ne fait que légaliser les choix du marché. Les Messages d’identification ont été étendus pour permettre à la cible d’exécuter un processus, de façon à ce que des commandes puissent être adressées à une cible (Target) et non plus uniquement à des unités logiques (LUN).

Rotational Position Locking : Cette fonctionnalité définit des mouvement de bras synchrones, de façon à ce qu’un contrôleur puisse gérer des périphériques ayant leurs bras verrouillés dans une position relative connue l’un par rapport à l’autre. En déclarant des “tableaux” de disques synchronisés on peut ainsi atteindre des taux de transfert très élevés.

C’est de là que vient la technologie des “disk arrays” qui est en train de faire son apparition actuellement sur le marché.

Contingent Allegiance : Cette fonctionnalité, bien que non définie formellement, existait de fait dans le SCSI-1 et était nécessaire pour prévenir la corruption des données renvoyées par un “Error Sense Data”. Les cibles en état de “Contingent Allegiance” rejettent toutes les commandes émises par les unités jusqu’à ce que la condition d’erreur ne soit levée par l’initiateur qui reçut la commande “Check Condition” au moment de l’erreur. (ouf! C’est un peu confus mais en deux mots, cela “fige” l’unité en erreur jusqu’à ce qu’on ait lu son statuts d’erreur).

A ce propos d’ailleurs, les “Erreurs Différées” (Deferred Errors), bien que non décrites explicitement constituent un véritable problème dans le SCSI-1. En effet une condition d’Erreur Différée peut survenir dans un système bufférisé quand la cible retourne un statuts correct après avoir accepté les data dans son buffer. Vu de l’initiateur, l’écriture est donc un succès. Mais en fait, si quelque chose flanche au moment ou l’unité transfère physiquement les données de son buffer sur le média, on obtient alors une “Erreur Différée”.

Extended Contingent Allegiance (ECA) : Cette fonction allonge la durée d’un état de “Contingent Allegiance” pour une période indéfinie durant laquelle l’initiateur qui a reçu la condition d’erreur peut mettre en oeuvre des algorithmes de correction très complexes.

Asynchronous Event Notification (AEN) : Cette fonction compense un défaut dans le SCSI original qui interdisait à un périphérique d’aviser le contrôleur lors de la survenue d’un événement asynchrone comme l’introduction ou le retrait d’une cartouche magnétique par exemple…

Command Queuing : Dans le SCSI-1, les initiateurs étaient limités à une seule commande par LUN. Dans le SCSI-2, la cible est autorisée à “ré-arranger” l’ordre d’exécution de ces commandes de façon à optimiser les déplacement des têtes.

Disk Cacheing : Deux bits de contrôle sont utilisés dans le CDB (Command Descriptor Block) pour déterminer si le cache est en mode lecture ou écriture et quelques commandes ont été ajoutées pour contrôler le “pre-fetching” et le verrouillage des données dans le cache. Les utilisateurs n’ont pas à changer leurs logiciels pour tirer profit du cache, cependant, les trames “Mode Select/Mode Sense Cache” acceptent des paramètres pouvant optimiser les algorithmes utilisés dans la cible pour améliorer les performances du cache. Il est toutefois déconseillé de chercher à modifier ces paramètres sans une connaissance approfondie du périphérique en question, certains ajustement pouvant produire un effet contraire….

Change Definition : Autorise un initiateur SCSI-2 à ordonner à une cible également SCSI-2 de cesser de fonctionner en mode “SCSI-1 1986 compatible” et d’autoriser l’emploi des fonctionnalités avancées de SCSI-2. La plupart des périphériques, pour des raisons de compatibilité, fonctionnent au démarrage en mode “1986 compatible” pour ne pas risquer de perturber les autres unités qui pourraient être strictement SCSI-1. En général il faut que le contrôleur émette une commande “Chande Definition” pour que ces unités se mettent en mode SCSI-2.

Les “pages” Mode Sense et Mode Select qui décrivent les paramètres d’utilisation ont été largement étendues (de quelques octets en 1986 à plusieurs centaines d’éléments en SCSI-2).

La commande “Inquiry” fournit à présent toutes sortes de données très intéressantes sur les cibles et leurs LUN’s. Quelques unes d’entre elles sont définies par la norme, mais la plupart d’entre elles sont regroupées à l’intérieur des “Vendor unique Data” et “Vital Product Data” qui permettent aux intégrateurs d’agir sur le fonctionnement de ces unités.

Select Log et Sense Log ont été ajoutées de manière à ce que le contrôleur puisse retrouver à la fois l’historique et les statistiques sur les différentes conditions de la cible.

Des fonctions de diagnostic on été ajoutées aux commandes Read/write Buffer et Read/Write Long. Les différentes manières que l’unité possède pour gérer les défauts de surface à l’intérieur de l’espace utilisateur on été définies plus précisément pour remédier aux incohérences de la norme de 1986.

Un nouveau groupe de Blocs de Commande (de 12 octets de long) ont été définis pour les unités optiques pour leur permettre de supporter des volumes de grande taille ainsi que des tailles de transferts potentiellement longues. La commande “Erase” a été ajoutée pour les disques optiques réinscriptibles de façon à ce que des zones du média puissent être pré-effacées pour pouvoir être réécrites. D’autre part les disques optiques à écriture unique ont besoin de la commande “Média Scan” pour pouvoir déterminer les zones vierges sur le média.

De nouveaux jeux de commandes ont été ajoutés pour les Scanners, les changeurs de média, les CD-ROM, etc.

Toute cette masse de détails techniques peut se révéler ennuyeuse à la longue, alors pourquoi ne pas parler à présent des quelques “bons trucs” qui devraient bénéficier au commun des mortels et faciliter la vie de ces pauvres informaticiens ?

La première (et la plus importante) des améliorations dans le SCSI-2, et bien, c’est que le document (la norme) à été trié par ordre alphabétique ! Plus besoin de passer la moitié de la nuit à chercher une commande ou une option !

Un autre bonus à mes yeux est l’introduction pour chaque classe de périphériques, de modèles qui décrivent les caractéristiques de cette classe. Le modèle “lecteur de bandes” était le plus attendu, parce que plusieurs lecteurs de bandes utilisaient le même acronyme avec différentes significations ou différents acronymes pour la même signification…

Le modèle “lecteur de bandes magnétiques” en SCSI-2 définit les termes utilisés en SCSI-2, et à quels acronymes ils correspondent pour différents modèles de lecteurs. Par exemple, sur un lecteur de bandes 9 pistes (vous savez ces gros trucs qu’on voit dans les films américains des années 70), “End of Tape” est un simple avertissement, car il y a suffisamment de bande encore après le marner pour écrire la fin d’un bloc et la séquence de fin. Par contre, sur un lecteur de cartouches 1/4 de pouce, “End of Tape” signifie que la bande est terminée et que plus un seul bit ne peut être écrit. Cette sorte d’« interprétation » peut conduire à un véritable cauchemar quand il s’agit de normalisation….

Bon, et bien voilà, pour ceux que la technique passionne, je résume ci-dessous les différences techniques. Pour ceux que la littérature passionne, je vous signale qu’à cette date la norme SCSI-2 doit être disponible chez votre documentaliste préféré, ou à l’AFNOR (« AFNOR » est la normalisation française de matériel, disponible à la Défense, pour ceux qui habitent la région Parisienne, France).

Différences techniques de SCSI-2 par rapport à SCSI-1

  1. Plusieurs options furent supprimées par rapport à SCSI-1 :
  • “Single initiator” option fut supprimée.
  • “Non-arbitrating Systems” option, fut supprimée.
  • “Non-extended Sense Data” option, fut supprimée.
  • “Reservation queuing” option, fut également supprimée.

Le jeu de commandes “Lecture Seule” (Read Only pour les cultivés) fut remplacé par le jeu de commandes CD-ROM. En effet, vous en connaissez beaucoup vous qui utilisent leur HD en Read-Only ? Moi pas ! Par contre le CD-ROM, ça sert de plus en plus… – Le connecteur blindé de substitution type 1 fut supprimé.

  1. Plusieurs fonctionnalités de bas-niveau furent ajoutées :
  • La parité devait être supportée.
  • Les émetteurs (contrôleurs) doivent pouvoir fournir la terminaison chargée “TERMPWR”
  • Les cibles (périphériques) doivent optionnellement la fournir.
  • Le délai d’arbitrage du bus (Arbitration delay) fut étendu de 2.2 µs à 2.4 µs.
  • Le support de la fonction “Message” est désormais obligatoire.
  1. Plusieurs options, apportant des améliorations significatives par rapport à SCSI-1 furent ajoutées :
  • SCSI “Large” (Wide SCSI), jusqu’à 32 bits en utilisant un second câble.
  • SCSI “Rapide” (Fast SCSI), permettant des transferts jusqu’à 10 Mbytes par seconde, et jusqu’à 40 Mbytes par seconde en combinaison avec le précédent.
  • Empilement des commandes (Command Queuing), jusqu’à 256 commandes par initiateur et par unité logique.
  • Connecteurs optionnels “Haute densité”, blindés et non-blindés.
  • Terminaison améliorée (Alternative 2)
  • Notification d’événements asynchrone (Asynchronous event notification)
  1. Des nouveaux jeux de commandes furent ajoutés à SCSI-2, notamment :
  • CD-ROM (remplace le fameux jeu Read-Only!)
  • Scanners
  • Disques optiques (WO, RO, et WMRM)
  • Périphériques de communication
  1. Tous les jeux de commandes furent étendus :
  • “Device Models” furent ajoutés
  • “Extended Sense” reçut 4 fonctions supplémentaires (Additional sense codes, Additional sense codes qualifiers, Field remplaçable unit code, Sense key specific bytes)
  • “INQUIRY DATA” fut étendu pour supporter :

* Un octet “Options implémentées”
* Un champ “Vendor identification”
* Un champ “Product identification”
* Un champ “Product revision level”
* Un champ “Vital product data”

  • Les commandes “MODE SELECT” et “MODE SENSE” furent étendues à tous les types de périphériques
  • Les commandes suivantes : “CHANGE DEFINITION”, “LOG SELECT”, “LOG SENSE”, “READ BUFFER” et “WRITE BUFFER” furent ajoutées pour tous les types de périphériques.
  • La définition de la commande “COPY” fut étendue pour inclure les informations nécessaires pour gérer des tailles de blocs inexactes et pour inclure une option “image copy”.
  • Le jeu de commandes relatif à l’accès direct fut étendu comme suit :

La commande “FORMAT UNIT” offre un contrôle plus étendu sur la gestion des défauts de surface.

Une gestion de cache fut ajoutée :

$ Commande “LOCK / UNLOCK CACHE”
$ Commande “PREFETCH”
$ Commande “SYNCHRONIZE CACHE”
$ Bit de contrôle “Accès forcé à l’unité”
$ Bit de contrôle “Disable Page out”

Plusieurs nouvelles commandes furent implémentées :

$ “READ DEFECT DATA”
$ “READ LONG”
$ “WRITE LONG”
$ “WRITE SAME”

Le jeu de commandes concernant les périphériques à accès séquentiel fut modifié de la manière suivante :

$ Le concept de média partitionné fut ajouté avec les commandes “LOCATE” et “READ POSITION”

$ Le “Buffered mode 2” fut ajouté
$ Un flag bit “Immediate” fut ajouté à la commande “WRITE FILEMARKS”

Le jeu de commandes concernant les périphériques d’impression fut étendu comme suit :

$ Plusieurs modes nouveaux définis (Disconnect/Reconnect, Parallell Printer, Serial Printer, Printer Options)

Le jeu de commandes “écriture-unique” (disques optiques) fut étendu des nouvelles commandes : MEDIUM SCAN, READ UPDATED BLOCK et UPDATE BLOCK. En sus, des descripteurs de commandes ayant à présent 12 bytes de long furent définis pour pouvoir gérer des transferts plus importants.

 

 

À propos de ymartin

YMartin.com / ve2ymm.com
Ajoutez en favoris avec ce permalien.

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire le pourriel. En savoir plus sur comment les données de vos commentaires sont utilisées.