Lorsque l'ordinateur n'est plus sous tension, la mémoire vive perd
toutes les données qu'elle contenait l'instant précédent. Il est
indispensable de conserver ces informations. Le disque dur présente
certainement la meilleure forme de stockage. En effet, ses qualités
sont nombreuses : vitesse d'accès aux données (environ 10ms), sa
capacité (de l'ordre du Go), son
faible coût (moins de 10 centimes le Mo) et sa fiabilité.
Le disque dur est un des rares composants de l'ordinateur où
l'électronique doit cohabiter avec la mécanique. De façon schématique,
la mécanique du disque dur peut être comparée à celle d'un tourne-disque
allié à une précision d'horloger. La partie électronique du disque
dur, quant à elle, assure la communication entre ce bijou mécanique et le système (c'est l'interface).
Le premier disque dur a vu le jour en 1956 dans les laboratoires
d'IBM. Il est le fruit de recherches pour pallier l'inconvénient
majeur des bandes magnétiques à savoir l'accès séquentiel. Cet ancêtre
du disque dur s'appelait le 305
Ramac, occupait le volume d'une grosse armoire pour une capacité
de 5 Mo et un prix de 250 000F. Cependant, il révolutionna l'industrie informatique.
Un peu plus de vingt ans après, en 1979, la société Seagate (fondé
par Alan Shugart, un des concepteurs du Ramac) proposait un disque dur
d'également 5 Mo mais au prix de 20000F. Aujourd'hui, un disque dur de
20 Go s'achète moins de 1500F.
Dans la mécanique du disque dur, on peut distinguer deux grands
sous-ensembles : les plateaux et le bloc bras/têtes.
L'élément essentiel du disque dur est bien évidemment celui où est
stocké l'information. Il s'agit d'un plateau circulaire généralement
en aluminium (à la fois léger et amagnétique) ou bien en verre pour
les technologies plus récentes.
La majorité des disques durs actuels ont un facteur de forme
(diamètre du plateau) de 3,5 pouces (8,89 cm) ou 2,5 pouces. Cependant, il en existe de 5,25 et 1,8 pouces.
Généralement, pour augmenter sa capacité, un disque dur comporte plusieurs plateaux fixés sur un même axe.
Chaque plateau est recouvert sur les deux faces d'une fine couche (0,5
à 0,75 microns) d'oxyde de fer magnétisable pour les technologies
classiques et d'un film mince (Thin Film, 0,05 à 1 micron) de phosphore/nickel ou phosphore/cobalt pour les technologies actuelles.
Chaque face du disque est composée de pistes concentriques sur lesquelles
sont stockées les données. Le nombre de pistes par plateau varie selon
les modèles : d'une dizaine à plus de mille. Les pistes sont
numérotées, en partant de zéro, de l'extérieur vers l'intérieur
du disque.
De plus, chaque piste est divisée en secteurs (de 8 à 34) qui sont en fait des portions de pistes limitées par deux
rayons. Chaque secteur contient un nombre fixe d'octets. Ceci implique
une densité d'enregistrement
accrue au fur et à mesure que l'on se rapproche du centre.
Le second élément physique de base d'un disque dur est constitué
du bloc bras/tête(s) de lecture-écriture. Le procédé d'accès aux
données est similaire à celui d'un tourne-disque : un moteur fait
tourner les plateaux à une vitesse constante et les têtes (au nombre
de deux par plateaux) viennent se positionner au dessus de la piste à
lire ou à écrire. Les plateaux n'étant pas constitués d'un microsillon
comme sur les disques vinyl, un second moteur est nécéssaire pour
déplacer les bras. Ces derniers sont solidaires d'un même axe ce qui
implique le déplacement de toutes les têtes simultanèment. Ainsi, à un
instant donné, toutes les pistes situées sous les têtes portent le même
numéro. C'est ce que l'on appelle un cylindre : il s'agit en fait du
cylindre virtuel passant par toutes les pistes de même numéro. Cette
notion de cylindre a un effet non négligeable : si un fichier ne peut
être écrit sur une même piste, il sera intéressant qu'il se trouve sur
un même cylindre. En effet, l'accès aux données de ce fichier sera
plus rapide puisqu'il n'y aura pas de mouvement des bras.
Une autre différence importante avec le tourne-disque est dû à
la vitesse de rotation des plateaux. Celle-ci étant de l'ordre de
plusieurs milliers de tours par minute (3600 à 7200 tpm), la tête ne doit en aucun cas être
en contact avec le plateau sous peine d'échauffement et de destruction
du revêtement magnétique (crash). Par conséquent, les têtes
flottent sur un coussin d'air provoqué par la rotation des disques (le
vent créé est de l'ordre de 250km/h). La hauteur de vol est
d'environ 0,2 microns alors qu'une simple empreinte digitale mesure plus
de 0,5 microns.
Le disque dur doit donc être à l'abris du monde
extérieur sous peine de crash. Le disque dur est en effet fabriqué en
salle blanche et il est protégé dans un boitier étanche. Seul un petit
évent permet d'échanger un air soigneusement filtré avec l'extérieur
afin d'équilibrer les pressions.
Lors de l'arrêt de la rotation du disque dur, le coussin d'air
diminue progressivement et les têtes se posent en douceur sur une piste qui leur est réservée : c'est la zone d'atterrissage (landing track).
Maintenant que nous avons vu l´aspect mécanique du disque dur nous allons nous intéresser à la manière dont le système gère les accès au disque.
Comme pour la file d'attente de l'unité centrale ou d'une ressource quelconque, la stratégie la plus simple pour gérer la file d'attente d'une unité de disque consiste à traiter les demandes dans l'ordre d'arrivée (FIFO). Bien qu'il s'agisse d'une statégie équitable, les performances sont parfois très médiocres.
Exemple
Supposons qu'un disque contienne 20 pistes, numérotées de 0 à 19, et que la tête de lecture/écriture soit positionnée à la piste numéro 14. Une requête étant représentée par son numéro de piste, la file d'attente contient les requêtes suivantes, dans l'ordre d'arrivée :
La tête se déplace d'abord de la piste 14 à la
piste 17, parcourant 3 pistes. Elle passe ensuite de 17 à 18,
puis de 18 à 4, et ainsi de suite (fig. 1). Si nous calculons le
déplacement total de la tête, en nombre de pistes
parcourues, nous obtenons :
d = (17-14) + (18-17) + (18-4) + (11-4) + (11-2) + (2-12) = 44
pistes. Manifestement, cet algorithme ne minimise pas le
déplacement puisque le simple fait de regrouper le traitement de
requêtes concernant des pistes proches permettrait de le
réduire. Par exemple, traiter 4 et 2 ensemble avant 11 et 12
conduirait à un déplacement total de 30 pistes.
L'idée de regrouper les requêtes concernant des pistes proches conduit naturellement à l'algorithme d'ordonnancement suivant le plus court temps de recherche : la prochaine requête traitée est celle pour laquelle le déplacement de la tête est minimal, à partir de la position courante.
Exemple
Reprenons la liste de requêtes précédente pour les
pistes 17, 18, 4, 11, 2, 12, en supposant toujours que la tête
est placée initialement sur la piste 14. La requête la plus
proche de 14 est 12. Une fois que la tête est sur la piste 12, la
prochaine requête la plus proche concerne la piste 11. Ensuite, la
distance à la piste 4 est de 7, tandis que la distance à la piste 17
est de 6. L'algorithme choisit donc de traiter la requête pour la
piste 17. Finalement, les requêtes sont traitées dans l'ordre : 12,
11, 17, 18, 4, 2 et le déplacement total est de 26 pistes, ce qui
représente une amélioration notable par rapport au traitement FIFO.
L'algorithme d'ordonnancement par balayage a été introduit pour
éviter ce dernier inconvénient. Il est particulièrement adapté aux
systèmes dans lesquels les accès au disque sont très fréquents. Comme
son nom l'indique, il parcourt toutes les pistes dans une direction
donnée, par exemple vers l'intérieur, et traite au fur et à mesure les
requêtes qu'il rencontre. Ensuite, la tête change de direction et
balaie toutes les pistes vers l'extérieur. Bien entendu, les nouvelles
requêtes qui sont arrivées après le passage de la tête de
lecture-écriture doivent attendre le trajet retour pour être
traitées. Cette version de base de l'algorithme, appelée SCAN, est
implémentée de plusieurs façons.
Par exemple, dans la version connue sous le nom de LOOK, la tête
ne va pas jusqu'au bout des pistes mais repart dans l'autre sens dès
qu'il n'y a plus de requêtes en attente.
Exemple
Dans la liste de requêtes précédente, avec la tête initialement sur
la piste 14, supposons que le mouvement courant de la tête soit vers
la piste 19. L´algorithme LOOK traite les requêtes dans l´ordre : 17,
18, 12, 11, 4, 2 et conduit à un déplacement total de 20 pistes.
Lorsque les demandes sont très nombreuses, on trouve fréquemment
plusieurs références à une même piste ou à un même cylindre. Les
requêtes doivent alors être ordonnées suivant les secteurs qu´elles
recherchent, de façon à réduire le temps de latence.
L´algorithme PCTL (Plus Court Temps de Latence) sélectionne les
requêtes concernant le secteur le plus proche de la position courante
de la tête, en tenant compte du sens de rotation. Le fonctionnement
est donc le suivant : à chaque secteur d´un même cylindre est associée
une file d´attente des requêtes pour ce secteur. Lorsque la tête est
positionnée sur une piste donnée, les requêtes sont traitées dans le
même ordre que celui du défilement des secteurs concernés sous la
tête, indépendament de leur ordre d´arrivée. Cette stratégie est
relativement facile à implanter et on peut prouver que les
performances sont assez proches de la valeur théorique optimale.
Exemple
Supposons que chaque piste soit divisée en 12 secteurs et que la tête soit placée au dessus du secteur 12, avec un sens de rotation correspondant au défilement de secteurs par numéros croissants. Si les requêtes pour les secteurs 11, 5, 8, 7 sont en attente, l´ordre de traitement est : 5, 7, 8, 11. Ceci évite d´atendre plus d´un tour pour traiter les requêtes des secteurs 5, 8, 7.
Le rôle de l´interface disque - contrôleur disque ou BUS est de gérer les échanges de données et leur encodage entre le disque et le système. Les interfaces les plus utilisées actuellement sont les EIDE et SCSI.
Le contrôleur IDE (Integrated Drive
Electronic) ou BUS-AT est apparu en 1988. Le
contrôleur peut être intégré sur le disque et permet de gérer des
disques de 20 à 200 Mo. C´est un contrôleur relativement répandu
assurant des taux de transfert de l´ordre de 32 Mbps.
Le mode IDE est désormais délaissé au profit du
EIDE (Enhanced IDE), plus performant et
permettant de gérer des disques de grande capacité (500 Mo et
plus). Les contrôleurs EIDE utilisent actuellement deux protocoles de
transmission - soit PIO (Programmed Input Output), soit
Multiword DMA (Direct Memory Access). En mode PIO le taux de
transfert varie de 3.33 Mo/s - pour le PIO Mode 0 à 16.67 Mo/s pour le
PIO Mode 4. Le mode Multiword DMA offre quant à lui des taux de
transfert allant de 4.17 Mo/s à 16.67 Mo/s. Le mode PIO 4,
actuellement très répandu a par contre tendance à monopoliser le
processeur ce qui n´est pas le cas du Multiword DMA. Une technologie
Fast-ATA-2 est équivalente à l´EIDE et utilise des
principes de fonctionnement similaires.
L'interface SCSI (Small Computer System Interface) est de plus
en plus adopté par les constructeurs. Sa vitesse de transfert est de
l'ordre de 4 Mo/s à 40 Mo/s selon la largeur du bus et le standard
SCSI employé (SCSI-1, SCSI-2, SCSI-3, Fast Wide SCSI, Ultra SCSI...).
L'interface SCSI peut gérer jusqu'à 31 unités physiques différentes
qui ne sont pas forcèment des disques durs (imprimantes, streamers,
...). Couplée à une interface série SSA (Serial Storage
Architecture) elle permet d'atteindre un taux de transfert de 80 Mo/s et elle
peut moner à 200 Mo/s avec une interface FC-AL (Fiber Channel
Arbitrated Loop).
C'est un contrôleur intelligent pouvant fonctionner en autonome
(transfert entre deux unités SCSI sans faire intervenir la mémoire
centrale, gestion optimisée des transferts entre le périphérique et
l'unité centrale limitant les états d'attente du
microprocesseur...). SCSI utilise trois principes :
Il existe une autre interface actuellement : l'interface PCMCIA qui correspond aux disques de facteur de forme 1,8 pouces et qui sápplique donc avant tout aux portables.
Le disque dur est encore loin d'avoir atteind ses limites. En effet,
la limite théorique du stockage est de 100 000 Go par pouce carré
alors qu'IBM compte arriver au Go par pouce carré en l'an 2000. Avant
la fin du siècle, la vitesse de rotation devrait atteindre 14 000 tpm (ce qui implique une vitesse de transfert accrue), un
disque moyen aura une capacité de 10 Go et le prix devrait être divisé
par dix : 100F/Go.
Pour ceux qui ne seraient pas encore convaincu, on peut rajouter
que la fiabilité des disques durs est en forte hausse : sur certains
modèles, le temps moyen avant une
panne est d'un million d'heures, soit un siècle...