SCSI, Small Computer System Interface en anglais, est un standard définissant un bus informatique permettant de relier un ordinateur à des périphériques ou bien même à un autre ordinateur.
Le standard décrit les spécifications mécaniques, électriques et fonctionnelles du bus.
Le bus SCSI a été initialement créé par la société Shugart, du nom de son fondateur Al Shugart, un pionnier de l'informatique, ancien ingénieur chez IBM (spécialiste des disques durs), sous le nom de SASI (en) (Shugart Associates Systems Interface) en 1979.
Shugart se lie avec NCR Corporation en 1981 dans l'espoir d'en faire un standard ANSI. Un comité technique est créé, il améliorera sensiblement le bus SASI, le renomme SCSI et la norme X3.131 le décrivant verra le jour en 1986.
La première norme définissait trop de paramètres optionnels pour la norme (notamment dans le jeu de commandes, mais aussi dans les possibilités matérielles comme pour les bits de parité, etc.), et les incompatibilités entre fabricants sont nombreuses.
Des améliorations furent apportées en 1994 avec la norme SCSI-2 et récemment avec la norme SCSI-3, réduisant ces problèmes d'interopérabilité.
La norme SCSI-2 précise que le bus peut relier entre eux :
avec des périphériques tels que :
La norme ne restreint pas l'utilisation du bus à l'interconnexion d'un ordinateur avec des périphériques, mais qu'il peut être utilisé entre des ordinateurs, ou pour partager des périphériques entre ordinateurs.
La norme SCSI-3 est plus généraliste. On se référera à la page du comité technique pour en avoir le détail.
Ce qui différencie ce bus des autres est qu'il déporte l'intelligence vers le périphérique lui-même. De ce fait les commandes envoyées au périphérique peuvent être complexes, c'est sous le contrôle du périphérique qu'elles seront (éventuellement) décomposées en sous-tâches plus simples, ce qui est extrêmement avantageux si l'on travaille avec des systèmes d'exploitation multi-tâche.
Cette interface est donc plus rapide, plus universelle et plus complexe que l'interface E-IDE dont le principal inconvénient est d'accaparer un pourcentage non négligeable du processeur, ce qui constitue un handicap quand de nombreux flux de données sont simultanément ouverts.
Plus « intelligente » et moins dépendante vis-à-vis de l'unité centrale, l'interface SCSI peut gérer des périphériques internes et externes très variés, tels que disques durs, scanners, graveurs, unités de sauvegardes, etc.
Le SCSI-3 présente comme énorme changement l'apparition d'un bus série, dans une technologie jusqu'à présent exclusivement parallèle. Il apporte aussi quelques nouveautés et améliorations dans l'interface parallèle.
La fréquence du bus est doublée. On passe donc de 40 à 80 MHz. Les périphériques SE ne sont plus du tout compatibles avec ces fréquences à causes des phénomènes de réverbération.
L'interface Ultra 160 utilise le LVD, elle n'est absolument plus compatible avec SCSI-1 et 2. L'Ultra 160 apporte de lourdes modifications dans la gestion du transfert de données.
L'interface 320 apporte des modifications supplémentaires par rapport à l'ultra160, ce qui permet d'augmenter encore la fréquence de travail à 160 MHz et d'augmenter les débits utiles.
Avec l'explosion des fréquences, les problèmes de décalage entre les signaux et leur sensibilité au bruit et aux capacités parasites deviennent problématiques et causent des restrictions dans la taille des câbles. On passe donc sur des bus série (un seul fil) ce qui évite les problèmes de courants induits.
La réflexion sur des interfaces séries fut commencée avant la mise au point de l'Ultra 160 et 320. Mais les débits offerts sont tels que ces technologies restent tout à fait viables. Le but de l'interface série est d'empaqueter les commandes et données SCSI et de les transférer via un seul fil, tout en conservant la compatibilité SCSI (afin de garder avantage notamment de la possibilité de stockage des commandes, très utile en multi-tâche).
On retrouve de nombreux avantages dans ces technologies, on peut citer notamment :
On peut citer comme technologies séries utilisant les commandes SCSI :