Commande SCSI

Commande SCSI

Dans l'architecture SCSI chaque équipement connecté au bus peut envoyer un ordre à n'importe quel autre. Le format de cet ordre ou commande est normalisé pour garantir l'interopérabilité (ainsi un disque dur de n'importe quel fabricant fonctionnera de la même façon une fois connecté à un contrôleur SCSI employé sur un serveur.)

Sommaire

Format d'une commande

Les commandes sont envoyées en respectant un format appelé CDB pour Command Descriptor Block. Historiquement le format des commandes SCSI employait un nombre d'octets prédéterminé (6, 10, 12 ou 16 octets), les commandes les plus récentes emploient un nombre variable d'octets, voici par exemple la description de la commande READ (6) :

bit→
↓octet
7 6 5 4 3 2 1 0
0 8 = opération READ (6)
1 Numéro d'unité (MSB) 
2 Numéro du premier bloc à lire
3  (LSB)
4 Nombre de blocs contigus à lire
5 Contrôle

Un bloc est la capacité minimale transférable de/vers le support de stockage, le plus souvent il fait 512 octets pour un disque dur mais comme ce n'est pas nécessairement le cas, la commande READ CAPACITY permet à l'ordinateur y accédant de déterminer la taille exacte de l'unité de stockage manipulée par le support.

Les commandes varient selon la catégorie de l'équipement connecté au bus SCSI (disques durs, lecteurs de bandes magnétiques, robots de sauvegarde, tiroirs de disques, etc.) Il existe un ensemble commun de commandes que tout équipement implémente et des versions spécifiques selon la catégorie de l'équipement[1]. Le format CDB est spécifié dans le document d'architecture générale SCSI[2].

Exemples de commandes

Ces commandes correspondent à la norme ANSI INCITS 408-2005[3]. L'exemple READ vient de la norme ANSI INCITS 405-2005[4].

TEST UNIT READY

Cette commande permet de demander à un périphérique s'il est prêt à transférer des données, i.e. le disque dur est en rotation, la bande dans un lecteur est chargée et prête, etc.

bit→
↓octet
7 6 5 4 3 2 1 0
0 0 = opération TEST UNIT READY
1 Numéro d'unité
2 (réservé)
3
4
5 Contrôle

INQUIRY

Cette commande est obligatoirement présente sur tous les périphériques. Elle permet d'obtenir des informations sur l'équipement connecté. Cette commande est disponible dès que l'équipement est alimenté, même s'il n'a pas encore fini sa séquence d'initialisation (il fournira éventuellement une réponse plus complète une fois initialisé.)

bit→
↓octet
7 6 5 4 3 2 1 0
0 0x12 = 18 = opération INQUIRY
1 Numéro d'unité (réservé) EVPD
2 Numéro de page
3 (MSB)  Taille maxi de la réponse
4  (LSB)
5 Contrôle

READ

Il existe plusieurs versions de cette commande, la plus ancienne READ (6) permet de coder le numéro de premier bloc à lire sur 21 bits (sur un disque dur cela ne permet d'accéder qu'au premier Gio) cette commande est pourtant toujours obligatoirement supportée pour conserver la compatibilité avec les codes en ROM de certains serveurs informatiques qui lisent leur code d'amorçage via cette commande (ce dernier devra alors être enregistré vers le début du disque.)

bit→
↓octet
7 6 5 4 3 2 1 0
0 8 = opération READ (6)
1 Numéro d'unité (MSB) 
2 Numéro du premier bloc à lire
3  (LSB)
4 Nombre de blocs contigus à lire
5 Contrôle

Read 10

La commande READ (10) est une extension de la précédente, elle propose un numéro de LBA sur 32 bits (Tio avec un bloc de 512 octets). Le bit DPO signale à l'unité qu'il n'est sans doute pas utile de mettre les données lues en cache car elles ne sont plus nécessaires, à l'inverse le bit FUA demande de ne pas utiliser le cache lors d'une lecture, enfin le bit RelAd est employé lors de commandes liées pour préciser que le numéro de LBA est relatif à la précédente commande de lecture. Cette commande a été spécifiée vers 1982 et aurait donc pu être décrite dans la première norme ce qui à l'époque où les plus gros disques durs n'atteignaient pas Gio était d'une clairvoyance remarquable.

bit→
↓octet
7 6 5 4 3 2 1 0
0 0x28 = 40 = opération READ (10)
1 Numéro d'unité DPO FUA (réservé) RelAd
2 (MSB) 
3 Numéro du premier bloc à lire
4
5  (LSB)
6 (réservé)
7 (MSB)  Nombre de blocs contigus à lire
8  (LSB)
9 Contrôle

Read 12

La commande READ (12) est a nouveau une extension de la précédente, elle propose un nombre de blocs à lire codé sur 32 bits (avec un bloc de 512 octets cela permet un transfert maximum de Tio en une seule commande.)

bit→
↓octet
7 6 5 4 3 2 1 0
0 0xA8 = 168 = opération READ (12)
1 Numéro d'unité DPO FUA (réservé) RelAd
2 (MSB) 
3 Numéro du premier bloc à lire
4
5  (LSB)
6 (MSB) 
7 Nombre de blocs contigus à lire
8
9  (LSB)
10 (réservé)
11 Contrôle

Read 16

La commande READ (16) est elle aussi une extension de la précédente, elle propose un numéro de LBA sur 64 bits (plus de 8 000 000 Pio avec un bloc de 512 octets).

bit→
↓octet
7 6 5 4 3 2 1 0
0 0xA8 = 168 = opération READ (12)
1 Numéro d'unité DPO FUA (réservé) RelAd
2 (MSB) 
3
4
5 Numéro du premier bloc à lire
6
7
8
9  (LSB)
10 (MSB) 
11 Nombre de blocs contigus à lire
12
13  (LSB)
14 (réservé)
15 Contrôle

Annexes

Articles connexes

Liens externes

Notes et références

  1. Voir le lien externe vers l'ensemble des spécifications publiée par le comité T10.
  2. SCSI Architecture Model - 4 (SAM-4) ce document n'est plus (depuis janvier 2009) consultable librement ; la version suivante, en cours de rédaction, l'est encore SCSI Architecture Model - 5 (SAM-5).
  3. SCSI Primary Commands - 3 (SPC-3) ce document n'est plus (depuis janvier 2009) consultable librement ; la version suivante, en cours de rédaction, l'est encore SCSI Primary Commands - 4 (SPC-4).
  4. SCSI Block Commands - 2 (SBC-2) ce document n'est plus (depuis janvier 2009) consultable librement ; la version suivante, en cours de rédaction, l'est encore SCSI Block Commands - 3 (SBC-3).

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Commande SCSI de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • SCSI — Small Computer System Interface Connecteurs SCSI 25 50 broches (à gauche, le connecteur 50 broches) SCSI, Small Computer System Interface en anglais, est un standard définissant un bus informatique permettant de relier un ordinateur à des… …   Wikipédia en Français

  • Commande UNIX — Commandes Unix Les systèmes d exploitation de type UNIX offrent à leurs utilisateurs des centaines de commandes qui font de la console un outil pratique et extrêmement puissant. Certaines d entre elles sont fournies directement par le shell,… …   Wikipédia en Français

  • Commande Unix — Commandes Unix Les systèmes d exploitation de type UNIX offrent à leurs utilisateurs des centaines de commandes qui font de la console un outil pratique et extrêmement puissant. Certaines d entre elles sont fournies directement par le shell,… …   Wikipédia en Français

  • Small Computer System Interface — Symbole du SCSI Connecteurs SCSI 25 50 broches (à gauche, le connecteur 50 broches) SCSI, Sm …   Wikipédia en Français

  • CDB — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. CDB, sigle composé des trois lettres C, D et B, peut faire référence à : Convention sur la diversité biologique, Aéroport de Cold Bay, en Alaska aux… …   Wikipédia en Français

  • Advanced Technology Attachment Peripheral Interface — Integrated Drive Electronics …   Wikipédia en Français

  • Atapi — Integrated Drive Electronics …   Wikipédia en Français

  • IDE (Integrated Drive Electronics) — Integrated Drive Electronics …   Wikipédia en Français

  • IDE (Integrated drive electronics) — Integrated Drive Electronics …   Wikipédia en Français

  • Integrated Drive Electronics — Integrated Drive Electronics …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”