Red Hat Enterprise Linux 3: Introduction à l'administration système | ||
---|---|---|
Précédent | Chapitre 4. Mémoire physique et mémoire virtuelle | Suivant |
De nos jours, les ordinateurs modernes ont recours à une variétés de technologies de stockage. Chaque technologie sert à remplir une fonction spécifique etpour ce faire, a des vitesses et capacités appropriées.
Parmi ces technologies figurent :
Registres du CPU
Mémoire cache
RAM
Disques durs
Stockage de sauvegarde hors-ligne (bande, disque optique, etc.)
En termes de possibilités et de coût, ces technologies constituent un large éventail. Par exemple, les registres du CPU affichent les caractéristiques suivantes :
Très rapides (temps d'accès de quelques nanosecondes)
Faible capacité (généralement moins de 200 octets)
Possibilités de développement très limitées (un changement de l'architecture CPU serait nécessaire)
Coûteux (plus d'un dollar par octet)
Toutefois, à l'autre extrémité de l'éventail, le stockage hors-ligne affiche lui, les caractéristiques suivantes :
Très lent (les temps d'accès peuvent se mesurer en jours si le support de sauvegarde doit être acheminé sur de longues distances)
Très haute capacité (dizaines - centaines de giga-octets)
Possibilités de développement quasiment illimitées (la seule limitation se situe au niveau de l'espace physique nécessaire pour héberger les supports de sauvegarde)
Très coûteux (de l'ordre du centime par octet)
En utilisant différentes technologies dotées des possibilités différentes, il est possible de raffiner la conception des systèmes afin de maximiser la performance, tout en réduisant les coûts au minimum. La section suivante examine chacune des technologies composant l'éventail des possibilités de stockage.
Toute conception de CPU moderne inclut des registres et ce, pour une variété de raisons allant du stockage de l'adresse de l'instruction en cours d'exécution au stockage et aux manipulations de données à des fins plus générales. Les registres du CPU tournent à la même vitesse que celle du CPU ; dans le cas contraire, il existerait un sérieux goulet d'étranglement pour la performance générale du système. En effet, les registres jouent un rôle dans presque toutes les opérations effectuées par le CPU.
Le nombre de registres du CPU (et leurs utilisations) dépendent strictement de la conception de l'architecture du CPU lui-même. Il n'existe aucun moyen de modifier le nombre de registres du CPU, sauf en migrant vers un CPU avec une architecture différente. Dans de telles consditions, le nombre de registres du CPU peut être considéré comme fixe dans la mesure où son changement nécessite non seulement de grands efforts mais également de lourdes dépenses.
Le but de la mémoire cache est de jouer le rôle d'un tampon entre les registres du CPU à stockage limité et vitesse élevé d'une part, et la mémoire du système principal dotée d'une capacité beaucoup plus élevée — à laquelle on fait généralement référence sous l'acronyme RAM[1] d'autre part. La mémoire cache a une vitesse de fonctionnement semblable à celle du CPU lui-même, si bien que lorsque le CPU accède à des données mises en cache, il ne doit pas attendre avant d'obtenir les données souhaitées.
La mémoire cache est configurée de sorte que lors de toute demande de lecture de données, le matériel du système vérifie d'abord si les données requises sont en cache. Si tel est le cas, les données sont rapidement extraites et utilisées par le CPU. En revanche, si les données ne sont pas en cache, elles sont lues depuis la mémoire vive (ou RAM) et, tout en étant transmises au CPU, sont également mises en cache (juste au cas où elles seraient nécessaires plus ultérieurement). Pour le CPU, tout le processus est effectué de manière transparente si bien que la seule différence entre l'accès aux données en cache et l'accès aux données en mémoire vive réside au niveau de la durée nécessaire à l'obtention des données souhaitées.
En termes de capacité de stockage, le cache a une taille beaucoup plus petite que la RAM. Par conséquent, tous les octets en mémoire vive ne peuvent pas bénéficier de leur propre emplacement unique en cache. Dans de telles circonstances, il est nécessaire de subdiviser le cache en sections qui peuvent alors être utilisées pour d'une part, stocker différentes parties de la RAM et d'autre part, disposer d'un mécanisme permettant à chaque partie du cache d'accueillir différentes parties de la RAM et ce, à différents moments. Malgré la différence de taille entre le cache et la RAM, et étant donnée la nature séquentielle ou localisée de l'accès au stockage, une toute petite quantité de cache peut vraiment accélérer l'accès à une grande quantité de mémoire vive.
Lors de l'écriture de données depuis le CPU, les choses se compliquent quelque peu. Pour une telle opération, deux approches différentes peuvent être adoptées. Dans les deux cas, les données sont tout d'abord mises en cache. Toutefois, étant donné que le but du cache est de jouer le rôle d'une copie très rapide du contenu de certaines parties choisies de la mémoire vive, chaque fois que des données changent de valeur, cette dernière doit être enregistrée aussi bien dans le cache que dans la mémoire vive. Dans le cas contraire, les données mises en cache et celles stocker dans la mémoire vive ne seraient plus identiques.
Les deux approches différent dans la manière selon laquelle elles effectuent cette opération. Selon une approche de mise en cache dite write-through (ou en double écriture), l'écriture des données modifiées se fait immédiatement dans la mémoire vive. Selon l'autre approche de mise en cache dite Write-back (ou réécriture), l'écriture des données modifiées dans la mémoire vive est en revanche différée. Cette méthode permet de réduire la fréquence selon laquelle les opérations de réécriture en mémoire vive devront être effectuées pour mettre à jour les données fréquemment modifiées.
Un cache en double-écriture étant plus facile à implémenter, il représente le choix le plus courant. Un cache en réécriture est d'une implémentation plus complexe ; en plus du stockage des données elles-mêmes, il est nécessaire de maintenir un certain mécanisme capable d'identifier les données mises en cache en tant que propres (ou clean, signifiant que les données en cache sont identiques à celle dans la RAM) ou sales (dirty, indiquant que les données en cache ont été modifiées et que celles de la RAM ne sont par conséquent plus actuelles). Il est également nécessaire de mettre en place un moyen de transférer des entrées sales du cache vers la RAM).
Les sous-systèmes de cache des ordinateurs conçus de nos jours peuvent avoir de multiples niveaux ; c'est-à-dire qu'il peut exister plus d'un système de cache entre le CPU et la mémoire principale. Les niveaux de cache sont souvent numérotés, les numéros les plus bas représentant les niveaux de cache les plus proches du CPU. De nombreux systèmes ont deux niveaux de cache :
Le cache L1, placé directement sur la puce même du CPU et tournant à la même vitesse que ce dernier
Le cache L2, souvent partie intégrante du module CPU et tournant aux mêmes vitesses (ou presque) que celles du CPU, est généralement un peu plus grand et moins rapide que le cache L1
Certains systèmes (d'habitude les serveurs haute performance) ont aussi un cache L3 qui fait généralement partie de la carte mère du système. Comme on pourrait s'y attendre, le cache L3 est plus grand (est probablement plus lent) que le cache L2.
Dans les deux cas, le but de tous les sous-systèmes de cache — qu'ils aient un seul niveau ou des niveaux multiples — est de réduire le temps d'accès moyen à la mémoire vive.
La mémoire principale (aussi appelée RAM ou mémoire vive) constitue la majorité du stockage électronique présent sur les ordinateurs modernes. Elle est utilisée comme stockage aussi bien pour des données que pour des programmes lors de leur utilisation. La vitesse de la mémoire vive dont la plupart des ordinateurs modernes sont dotés, se situe entre celle de la mémoire cache et celle des disques durs et se rapproche généralement plus de la vitesse du premier que de celle du dernier.
Le fonctionnement de base de la RAM est en fait très simple. Au niveau le plus bas figurent les puces de la RAM — des circuits intégrés qui sont responsables de la "mémorisation elle-même." Ces puces sont dotées de quatre types de connexions avec l'extérieur :
Des connexions électriques (pour faire fonctionner la circuitrie au sein de la puce)
Les connexions aux données (pour permettre le transfert de données depuis et vers la puce)
Des connexions pour la lecture/l'écriture (pour contrôler si les données doivent être stockées sur la puce, ou au contraire extraites de cette dernière)
Des connexions d'adresse (pour déterminer l'endroit dans la puce où les données devraient être lues/écrites)
Ci-après figurent les étapes effectuées pour stocker les données dans la RAM :
Les données à stocker sont envoyées aux connexions de données.
L'adresse à laquelle les données doivent être stockées est transmise aux connexions d'adresse.
La connexion de lecture/écriture aux données est réglée sur le mode d'écriture.
La recherche de données est un processus tout aussi simple :
L'adresse des données recherchées est transmise aux connexions d'adresse.
La connexion de lecture/écriture aux données est réglée sur le mode d'écriture.
Les données recherchées sont lues à partir des connexions de données.
Alors que ces étapes semblent relativement simples, elles ont lieu avec une très grande rapidité, la durée de chacune des étapes se mesurant en effet en nanosecondes.
Presque toutes les puces de RAM fabriquées de nos jours sont vendues en tant que modules. Chaque module se compose d'un nombre de puces RAM individuelles reliées à une petite carte à circuit. La présentation mécanique et électrique du module est conforme aux normes de l'industrie informatique si bien que l'achat de mémoire peut se faire auprès d'un vaste éventail de revendeurs.
![]() | Remarque |
---|---|
L'avantage principal d'un système utilisant des modules de RAM conformes aux normes de l'industrie informatique réside dans le fait que le coût de la mémoire à tendance à rester faible, dans la mesure où le fabricant du système n'est pas la seule source possible pour l'achat de modules. Bien que la plupart des ordinateurs utilisent des modules de RAM conformes aux normes de l'industrie informatique, il existe tout de même des exceptions. Parmi les plus importantes figurent les ordinateurs portables (et à ce niveau également, un certain degré de normalisation a lieu) et les serveurs de haut niveau. Toutefois, même dans ces cas-là, il est possible que des modules de RAM d'autres fabricants soient disponibles, à condition que le système soit assez populaire et ne soit pas d'une conception complètement nouvelle. |
Toutes les technologies examinées jusqu'à présent sont de nature volatile. En d'autres termes, toutes les données contenues dans un stockage volatil sont perdues lors d'une mise hors tension.
Les disques durs en revanche, sont eux non volatils — en effet, les données qu'ils contiennent sont conservées même lors d'une mise hors tension. C'est la raison pour laquelle les disques durs occupent une place spéciale dans la gamme des options de stockage. En raison de leur nature non volatile, ils représentent une option idéale en matière de stockage de programmes et de données pour une utilisation à plus long terme. Un autre aspect unique des disques durs est que, contrairement à la RAM et à la mémoire cache, il n'est pas possible d'exécuter des programmes directement lorsqu'ils sont stockés sur des disques durs ; ils doivent être lus en mémoire vive avant d'être exécutés.
La vitesse à laquelle les données sont stockées et extraites est également différente de celle caractérisant le cache et la RAM ; la vitesse des disques durs est généralement une mesure de grandeur inférieur à celle des technologies entièrement électroniques utilisées pour le cache ou la RAM. Cette différence de vitesse s'explique essentiellement par la nature électromécanique de ces derniers. Tout transfert de données depuis ou vers un disque dur se déroule selon un processus composé de quatre étapes distinctes. La liste figurant ci-dessous illustre non seulement ces étapes, mais fournit aussi le temps moyen nécessaire à un disque dur haute performance normal pour effectuer chacune d'elles :
Déplacement du bras d'accès (5,5 millisecondes)
Rotation du disque (0,1 millisecondes)
Lecture/écriture de données par les têtes (0,00014 millisecondes)
Transfert de données vers/depuis les composants électroniques du disque (0,003 millisecondes)
Parmi toutes ces étapes, seule la dernière ne dépend pas d'un fonctionnement mécanique quelconque.
![]() | Remarque |
---|---|
Nous n'avons en aucun cas couvert ici tous les aspects des disque durs, mais les technologies de stockage disque sont examinées de manière détaillée dans le Chapitre 5. À ce stade, il suffit de garder à l'esprit d'une part, qu'il existe une différence de vitesse énorme entre la RAM et les technologies à base de disques et d'autre part, que leur capacité de stockage est souvent plus de 10 fois, voire souvent 100 fois, supérieure à celle de la RAM. |
Le stockage de sauvegarde hors ligne va encore plus loin que le stockage sur disque dur en termes de capacité (supérieure) et vitesse (inférieure). À ce niveau en effet, les possibilités ne sont vraiment limitées que par votre capacité à obtenir et à stocker des supports amovibles.
Les technologies utilisées dans ces périphériques peuvent être très variées. Ci-après figurent les types les plus couramment utilisés :
Bande magnétique
Disque optique
Il va de soit que le fait d'avoir des supports amovibles rallonge souvent encore plus le temps d'accès, en particulier lorsque les données recherchées ne sont pas actuellement chargées sur le périphérique de stockage. L'utilisation de dispositifs robotisés capables de monter et démonter automatiquement des supports améliore quelque peu la situation, mais les capacités de stockage des supports de ces périphériques demeurent toutefois limitées. Même dans le meilleur des cas, les temps d'accès sont mesurés en secondes, ils demeurent toujours loin des temps d'accès pourtant assez longs caractérisant les disques durs haute performance, qui se mesurent eux en plusieurs millisecondes.
Après avoir brièvement examiné les différentes technologies de stockage utilisées à l'heure actuelle, il convient maintenant d'aborder les concepts élémentaires de la mémoire virtuelle.
[1] | Alors que "RAM" signifie "Random Access Memory" et pourrait tout à fait être utilisé pour toute technologie de stockage permettant l'accès non séquentiel aux données stockées, lorsque les administrateurs système emploient l'acronyme RAM, ils ne font référence à rien d'autre que la mémoire principale du système. |
Précédent | Sommaire | Suivant |
Mémoire physique et mémoire virtuelle | Niveau supérieur | Concepts élémentaires de la mémoire virtuelle |