# Cylindre/Tête/Secteur

L'adressage en CHS (abréviation de Cylinder/Head/Sector en anglais soit « Cylindre/Tête/Secteur » en français ; l'abréviation CTS est rarement employée) est un moyen historique d'adresser les secteurs de données stockés sur une disquette ou un disque dur, ce moyen n'est par contre jamais employé avec les CD-ROM.
Cette adresse permet de désigner d'une façon unique un secteur de données d'un disque dur. Il s'agit de la plus petite unité de données transférée par ce dernier en lecture ou en écriture. La taille de ce secteur est le plus souvent de 512 octets. Cependant les disques modernes utilisent le standard Advanced Format (en) avec une taille de secteur de 4096 octets. D'autres supports comme les disques optiques ou opto-magnétiques en émulation de disque dur emploient d'autres valeurs comme 1024 octets ou 2048 octets.

## Histoire

Les BIOS des anciens ordinateurs personnels n'autorisaient la lecture ou l'écriture de secteurs de données consécutifs d'un disque dur que si aucun mouvement des têtes de lecture/enregistrement du disque n'était requis pendant l'opération (c'est-à-dire que tous les secteurs de données se trouvaient bien sur le même cylindre) et si toutes les données étaient accédées par la même tête de lecture/écriture (c'est-à-dire que le disque était incapable d'enchaîner l'accès à un secteur par une tête particulière avec celui du secteur suivant par une autre tête). C'était par exemple de cas avec l'IBM PC/XT équipé d'un disque dur de 10 Mo à interface ST-506.
Pour cette raison technique, il a alors semblé naturel que tout logiciel accédant au disque dur soit « conscient » de la géométrie de ce dernier et ne tente pas d'opération que le matériel n'aurait pas pu mener à bien.

## Définitions des composants de l'adresse
### Cylindre (Cylinder en anglais, le C dans CHS)

Un disque dur est usuellement constitué de plusieurs plateaux coaxiaux entraînés en rotation (A en gris clair sur le croquis) recouverts de chaque côté d'un oxyde magnétique. Un ensemble de bras mobiles (B en gris foncé sur le croquis) disposés en dents de peigne permet de positionner des têtes de lecture/enregistrement (C en bleu sur le croquis) de façon stable à plusieurs emplacements au-dessus des surfaces. Pour une disquette le principe est exactement le même mais il n'y a qu'un seul plateau souple. Le nombre de positions repérées varie de 40 (pour les premières disquettes 5¼") à plusieurs dizaines de milliers pour des disques durs modernes, chacune de ces positions se nomme cylindre (D surligné en jaune sur le croquis).
Pour un disque possédant NC cylindres, le cylindre le plus externe porte le numéro 0, le plus intérieur le numéro NC-1. Par exemple pour un disque de 1 000 cylindres les numéros vont de 0 à 999.

### Tête (Head en anglais, le H dans CHS)

Les têtes de lecture/enregistrement (C sur le croquis) sont solidaires des bras mobiles (le plus souvent il y a une tête par surface soit deux par plateau, mais pas toujours : par exemple sur les premiers disques dur, une surface appelée "servo" était dédiée au guidage des bras et ne stockait aucune donnée). Pour une disquette, comme il n'y a qu'un seul plateau, on aura deux têtes en utilisation double-face et une seule en simple-face. Le chemin parcouru par une tête particulière sur un cylindre particulier s'appelle une piste (E sur le croquis).
Pour un disque possédant NT têtes de lecture/écriture, celles-ci sont donc numérotées arbitrairement en partant de 0 et jusqu'à NT-1. Par exemple pour un disque ayant 8 têtes les numéros iront de 0 à 7.

### Secteur (Sector en anglais, le S dans CHS)

Les plateaux circulaires sont en rotation et les secteurs angulaires (F surligné en gris moyen sur le croquis) qui se déplacent sous une tête pendant une durée donnée sont donc nommés secteurs, l'adressage CHS considère implicitement que le nombre de secteurs accessibles est le même quel que soit le cylindre sélectionné (ce qui n'est plus vrai sur les disques durs actuels, car cela implique que la densité d'enregistrement soit plus élevée sur les cylindres intérieurs que sur les cylindres extérieurs, le croquis montrant clairement que les secteurs extérieurs sont plus longs que ceux de l'intérieur).
Pour un disque possédant NS secteur de données, le premier secteur d'une rotation sera numéroté 1 (c'est le seul composant de l'adresse dont l'origine est à 1 pas à 0) et le dernier NS. Par exemple pour un disque ayant 23 secteurs par piste les numéros iront de 1 à 23.

## Adresse CHS

L'adresse CHS est simplement constituée par l'assemblage des trois composants décrits ci-dessus.
Le tout premier secteur d'un disque est à l'adresse 0 / 0 / 1 : c'est le premier secteur accédé par la première tête positionnée sur le premier cylindre. Le suivant sera 0 / 0 / 2 (ce secteur est naturellement atteint juste après par la même tête), et ainsi de suite jusqu'à ce que la surface ait effectué une rotation complète. Le dernier secteur accédé ici porte l'adresse 0 / 0 / NS.
Le secteur suivant est à l'adresse 0 / 1 / 1 : c'est le premier secteur accédé par la tête suivante (idéalement la sélection électronique d'une tête prend moins de temps qu'il ne faut au disque pour présenter de nouveau le secteur numéro 1), puis chaque secteur de la piste qui défile devant cette seconde tête est exploré et ainsi de suite jusqu'à avoir employé toutes les têtes, le dernier secteur du premier cylindre porte ainsi l'adresse 0 / NT-1 / NS.
Le secteur suivant est à l'adresse 1 / 0 / 1 : le bras des têtes de lecture/enregistrement devra préalablement s'être déplacé (ce qui peut prendre de moins d'une milliseconde à plusieurs centaines de millisecondes) puis l'ensemble des opérations décrites plus haut (le parcours de chaque secteur de chaque piste) pourra se répéter pour ce cylindre.
Le tout dernier secteur du disque est à l'adresse NC-1 / NT-1 / NS. Le nombre total de secteurs accessibles par ce moyen d'adressage (la capacité totale du disque) est simplement NC × NT × NS.

## Limites et contournement

Comme le BIOS code le numéro de cylindre avec 10 bits, le numéro de tête avec 8 bits et le numéro de secteur avec 6 bits, un disque accédé en CHS n’aura jamais plus de 1 024 cylindres, 256 têtes (ce qui est mécaniquement impossible car demanderait 128 plateaux : même le RAMAC d’IBM n’en avait que 50) et 63 secteurs par rotation donc une capacité maximale d’un peu moins de 8 Gio (le produit de ces trois nombres par 512 qui est le nombre usuel d’octets par secteur de données vaut exactement 8 455 716 864 octets soit 7,875 Gio).
Si ces valeurs maximales conviennent parfaitement bien pour une disquette (qui n’a jamais vu le nombre de pistes dépasser 100 ni le nombre de têtes dépasser 2), le cas des disques durs est très différent et les limites de ce système d’adressage ont commencé à se faire ressentir au début des années 1990 quand les disques durs ont commencé à avoir plus de 1 000 cylindres et surtout ont commencé à employer des technologies ZBR (en) en remplacement de MFM (en) pour l’enregistrement : le nombre de secteurs est plus élevé sur les cylindres extérieurs que sur les cylindres près de l’axe (l’adressage CHS est incapable de gérer cela).
L’adressage CHS reste cependant employé dans les premières phases de démarrage d’un ordinateur puisqu’il permet toujours d’accéder aux premiers secteurs d’un disque. Ainsi le BIOS charge le secteur 0 / 0 / 1 du premier disque dur qui est souvent un MBR, ce dernier emploie à son tour une adresse CHS pour charger le secteur d’amorce de la partition active. C’est l’emploi d’adresses CHS durant cette phase qui fait que beaucoup d’utilitaires disques vous alertent si la partition active se trouve au-delà des premiers 8 Gio d’un disque (le secteur d’amorce deviendrait alors inaccessible par une adresse CHS).
Aussi les deux méthodes d’adressages ECHS (Enhanced CHS en anglais, soit « Cylindre/Tête/Secteur amélioré » en français) puis LBA ont-elles été mises en place à partir de mi-1994 pour contourner les limites des adresses CHS.

### Adressage ECHS

L’adressage ECHS demande au BIOS de collaborer avec le disque dur pour présenter une « fausse » géométrie de disque (le plus souvent en employant les valeurs maximales pour NC, NT et NS) et de gérer la conversion entre les adresses CHS qui lui sont passées et la géométrie réelle du disque. Une forme de cet adressage ECHS a depuis toujours été employée par les BIOS embarqués dans les contrôleurs SCSI car les disques SCSI n’emploient que l’adressage LBA et une conversion d’adresse était incontournable.