L'exécution
d'une opération simple, comme l'addition de deux nombres,
est en fait un processus complexe qui met en oeuvre les mécanismes
fondamentaux du fonctionnement des microprocesseurs. Le programme
qui doit exécuter comporte trois instructions:
1
Aller chercher le premier nombre en mémoire et le placer
dans un registre du microprocesseur.
2 Aller chercher le second nombre et l'ajouter au premier.
Le résultat se trouve alors dans le même registre.
3 Ecrire le résultat en mémoire.
1-
L'unité d'anticipation connaît l'adresse en mémoire
de la prochaine instruction à exécuter. Elle
cherche tout d'abord à l'obtenir depuis la mémoire
cache.
2-
L'instruction ne se trouvant pas dans la mémoire cache,
l'unité d'interface de bus se charge d'aller la chercher
en mémoire, à l'adresse indiquée. (Les
unités de segmentation et de pagination se sont au
préalable chargées de traduire l'adresse, et
l'unité de contrôle et de test de protection
à vérifier était valide).
3-
L'instruction est transmise à l'unité d'anticipation,
qui la place dans la queue. Par la même occasion,
le contenu des adresses mémoire suivantes est copié
dans la mémoire cache.
4-
l'instruction est codée par l'unité de décodage.
Pendant ce temps, l'unité d'anticipation va chercher
l'instruction suivante. Cette recherche est beaucoup plus
rapide que la précédente car l'instruction se
trouve en mémoire cache (à l'intérieur
du microprocesseur).
5-
L'instruction décodée est transmise à
l'unité arithmétique et logique qui commence
à l'exécuter. Pendant ce temps, l'unité
de décodage décode l'instruction suivante et
l'unité d'anticipation continue d'aller chercher les
instructions suivantes pour les placer dans la queue.
6-
L'unité arithmétique et logique transmet l'adresse
aux unités de segmentation et de pagination. Le nombre
à additionner est recherché en mémoire
cache.
7- Aucune copie de l'adresse A ne se trouvant en mémoire
cache, l'unité de contrôle de bus se charge d'aller
chercher les données en mémoire.
8- Le contenu de l'adresse recherchée est transmit
à l'unité arithmétique et logique qui
le stocke dans un registre. En même temps, une copie
de la zone mémoire considérée est placée
dans la mémoire cache.
9- La deuxième instruction est exécutée
de la même façon, mais beaucoup plus rapidement
car:
> L'instruction est déjà décodée
> Le contenu de l'adresse B est déjà copié
en mémoire cache, à l'intérieur du microprocesseur.
10- La troisième instruction est exécutée.
Le résultat de l'addition, contenu dans le registre
du microprocesseur, est copié à l'adresse
C de la mémoire, ainsi qu'en mémoire cache.
De cette façon, si le contenu de l'adresse C doit
être réutilisé (ce qui est probable),
il sera rapidement accessible. Notez que, s'il doit être
réutilisé immédiatement, l'accès
est instantané car il se trouve toujours dans le
registre du microprocesseur.
Retour
en haut de la page
Un
ventilateur peut être ajouté afin d'assurer un
refroidissement parfait. Il doit être relié à
un connecteur libre de l'alimentation. S'il ne reste aucun
connecteur libre, vous devrez employer un câble en Y.
2)
La mémoire
L'ordinateur
stocke les données et les programmes sur lesquels il
travaille dans sa mémoire. On peut classer la mémoire
en deux catégories principales. La mémoire de
masse est constituée par des supports le plus souvent
magnétiques (disquettes, disques durs, bandes, etc.).
Les données et les programmes peuvent y être
stockés de façon prolongée. Ils ne s'effacent
pas lorsque l'on coupe l'alimentation. En revanche, ce type
de support est assez lent. Lorsque l'ordinateur est en fonctionnement,
les données et les programmes dont il a besoin sont
copiés en mémoire centrale. Lorsque l'on parle
de mémoire sans plus de précision, c'est généralement
de ce type de mémoire qu'il s'agit. La mémoire
centrale est constituée de composants électroniques
qui peuvent stocker des informations sous forme de 1 et de
0. Chaque information de ce type est appelée bit (de
l'anglais binage digit: chiffre binaire). Il s'agit de la
plus petite quantité d'information. Il existe deux
principaux types de mémoire: la mémoire vive
ou RAM (de l'anglais Radom Access Membron) que l'on peut lire
et modifier, et la mémoire morte ou ROM (de l'anglais
Read On Membron) qui ne peut être modifiée.
Retour
en haut de la page
A.
La mémoire vive
La
mémoire vive, généralement appelée
RAM (en anglais Random Access Memory, traduis : mémoire
à accès aléatoire), est la mémoire
principale du système, ou autrement dis l'espace permettant
de stocker de manière temporaire des données lors
de l'exécution d'un programme.
Les
bits sont stockés dans les composants de mémoire
vive, sous forme de charges électriques dans de minuscules
condensateurs. Un condensateur chargé représente
un 1 et un condensateur non chargé représente
un 0.
Les
condensateurs ayant la fâcheuse habitude de se décharger
naturellement, il faut entretenir la charge périodiquement.
Ce processus est appelé cycle de rafraîchissement
de la mémoire(d'une durée d'environ 15 nanosecondes
(ns)). La mémoire de ce type (nécessitant un rafraîchissement
périodique) est appelée mémoire dynamique
ou DRAM. La mémoire centrale des PC est constituée
de DRAM.
Les composants de mémoire dynamique se présente
sous la forme de parallélépipédiques de
plastique noir équipés de broches. Ils peuvent
être insérés dans des supports ou soudés
sur un circuit imprimé.
Chaque
composant peut contenir un certain nombre de bits. Les plus
courants ont une capacité de 1 mégabit ou 4 mégabits.
L'ordinateur
manipule le plus souvent des mots composés de plusieurs
bits. Les premiers PC manipulaient des mots de 8 bits. D'autre
part, 8 bits sont généralement employés
pour coder un caractère de texte. On a donc pris l'habitude
de mesurer la capacité de mémoire d'un ordinateur
en octets (mots 8 bits), kilo-octets et mégaoctets au
lieu de bits, kilo bits et mégabits. Cette façon
de faire ne reflète cependant qu'imparfaitement la réalité
car les PC modernes manipulent le plus souvent des mots de 32
bits voir de 64 bits.
Les
composants sont parfois groupés par neuf. Dans ce cas,
le neuvième bit est appelé bit de parité
et sert de contrôle afin de vérifier que les huit
autres sont corrects. La majorité des PC utilisent pour
leur mémoire centrale des barrettes portant de tels groupes
de composants. Elles sont appelées barrettes SIMM.
Dans
les ordinateurs manipulant des mots de 32 bits, ces barrettes
vont toujours par quatre. Un groupe de quatre barrettes est
appelé banque de mémoire.
Au
lieu d'utiliser des groupes de quatre barrettes de 8 ou 9 bits,
les PC les plus récents emploient des barrettes de 32
(4x8) ou 36 (4x9) bits. Ces barrettes simplifient l'installation
puisque il n'est plus indispensable de les grouper (sauf dans
les ordinateurs 64 bits, où elles vont par deux).
Retour
en haut de la page
a)
La correction d'erreurs
Certaines
mémoires ont des mécanismes permettant de réparer
les erreurs afin de garantir l'intégrité des données
qu'elles contiennent. Ce type de mémoire est généralement
utilisé sur des systèmes travaillant sur des données
critiques, c'est la raison pour laquelle on trouve ce type de
mémoire dans les serveurs.
Retour
en haut de la page
b)
Les barrettes ECC
Les
barrettes de mémoire ECC (en anglais Error Correction
Coding, traduit : bits de contrôle) sont des mémoires
possédant plusieurs bits dédiés à
la correction d'erreur. Ces barrettes sont utilisées
principalement dans les serveurs et permettent de détecter
les erreurs et de les corriger.
Retour
en haut de la page
B.
Fonctionnement de la mémoire
La
mémoire dynamique est composée de minuscules condensateurs
qui retiennent des informations qui sont regroupées en
mots. Chaque condensateur est couplé à un transistor
permettant de " récupérer " ou modifier
l'état du condensateur. Ces transistors sont rangés
sous forme de tableau (matrice), on accède donc à
une " case mémoire " (ou point mémoire)
par une ligne et une colonne.
Ces mots sont classés et accessibles à l'aide
d'une adresse. Ainsi, pour écrire un mot en mémoire,
il faut envoyer du courant dans les condensateurs correspondant
à l'adresse choisie. Pour cela, une tension électrique
est d'abord envoyée sur une ligne commandant des transistors
inclus dans les composants de mémoire. Les transistors
sont éléments électroniques permettant,
lorsque ils sont activés par courant, de fermer une ligne
électrique. (Contrairement à l'usage courant,
on dit qu'une ligne est fermée lorsque elle laisse passer
le courant.) Une fois les transistors correspondant à
l'adresse choisie fermés, un courant est envoyés
sur les lignes de données qui doivent prendre la valeur
1, ce qui a pour effet de charger les condensateurs.
Malheureusement,
les condensateurs ont la fâcheuse habitude de se décharger
spontanément. (On dit qu'ils fuient). C'est pourquoi,
en permanence, un circuit spécial appelé circuit
de rafraîchissement lit le contenu de la mémoire
pour le réécrire aussitôt, entretenant ainsi
la charge des condensateurs. C'est à cause de ce processus
d'écriture continue que l'on appelle ce type de mémoire
mémoire dynamique ou DRAM. Bien entendu, dès que
l'on coupe l'alimentation de l'ordinateur, les condensateurs
se déchargent et le contenu de la mémoire est
perdu. Lors de la mise sous tension, la mémoire ne contient
que des zéros.
Il
existe également des mémoires statiques (SRAM)
ne nécessitant pas de rafraîchissement. Elles sont
beaucoup plus rapides.
La
lecture des données en mémoire s'effectue de la
même façon. Les transistors correspondant à
l'adresse lue sont activés et laissent passer le courant
sur les lignes de données. Les condensateurs représentant
des bits de valeur 1 se déchargent sur les lignes de
données. Les données sont immédiatement
réécrites par le circuit de rafraîchissement.
De cette façon, la lecture d'une adresse ne modifie pas
son contenu.
Retour
en haut de la page
C.
Organisation
de la mémoire
La
capacité de la mémoire est toujours mesurée
en octets (mots de 8 bits).La raison principale en est qu'un
octet est utilisé pour représenter un caractère
de texte. Tous les mots formés par ces caractères,
sont classés, et accessibles à l'aide d'une adresse.
Ainsi, pour lire un mot en mémoire, il faut tout d'abord,
sélectionner l'adresse. L'ordinateur possède 32
lignes d'adresses. Chaque ligne pouvant prendre deux valeurs
(activée ou non activée), l'ordinateur peut accéder
à 4 294 967 296 (232) adresses différentes. Il
s'agit d'une valeur théorique, car il n'existe aucun
micro-ordinateur disposant des connecteurs nécessaires
pour installer autant de mémoire.
a)
Le
contrôle de parité
Des
barrettes contiennent des bits de parité. Ils permettent
de vérifier que les données contenues dans la
mémoire sont bien celles que l'on désire (un des
bits de chaque octet stocké en mémoire sert à
conserver la somme des bits de données).
Le
bit de parité vaut 0 lorsque la somme des bits de données
est impaire et 1 dans le cas contraire.
De cette façon les barrettes avec bit de parité
permettent de vérifier l'intégrité des
données mais ne permettent pas de corriger les erreurs.
De plus pour 8 Mo de mémoire, seulement 7 serviront à
stocker des données, dans la mesure où le dernier
mégaoctet conservera les bits de parité.
Le
principe consiste à faire la somme des huit bits de données,
puis à donner au neuvième la valeur 1 si le résultat
est pair, et 0 si le résultat est impair. (On peut également
faire le contraire. On parlera de parité paire dans le
premier cas, et de parité impaire dans le second). De
cette façon, si un des bits change de valeur par accident,
l'erreur sera repérable car le bit de parité ne
correspondra plus au résultat. Il peut sembler que la
sécurité ainsi obtenue ne soit pas de très
haut niveau. En effet, si un deuxième bit change de valeur,
la parité est de nouveau correcte. Cependant, s'il y
a une chance sur mile (par exemple) qu'une erreur se produise
sur un bit, il y aura une chance sur un million pour que deux
bits soient erronés. La sécurité obtenue
n'est donc pas négligeable.
Retour
en haut de la page
E.
Comment
un processeur accède à la mémoire
Les
données que manipule le microprocesseur ne peuvent séjourner
très longtemps à l'intérieur de celui-ci.
En effet, la capacité de ses registres est limitée.
Les registres sont en quelque sorte des zones de mémoire
interne du processeur. Cette limitation impose de nombreux échanges
de données entre le microprocesseur et un dispositif
de stockage extérieur constitué par la mémoire.
Par ailleurs,
nous avons vu dans la section consacrée au microprocesseur
que celui-ci doit également aller chercher dans la mémoire
les instructions à exécuter. Ces échanges
pénalisent la vitesse de traitement et doivent donc être
optimisés. Cela est particulièrement vrai lorsque
le microprocesseur est équipé d'un multiplieur
de fréquence. Il fonctionne alors deux ou trois fois
plus vite sans que les échanges avec la mémoire
soient accélérés.
Pour
résoudre ce problème, on utilise une technique
appelée cache. Elle consiste à placer à
l'intérieur du microprocesseur une zone de mémoire
dans laquelle sont copiés les éléments
qui seront nécessaires avant qu'ils na soient demandés.
Si le processeur a besoin du contenu d'une adresse mémoire,
il peut l'obtenir immédiatement à condition qu'il
ait été copié préalablement (pendant
l'exécution des instructions précédentes)
dans la mémoire cache. Toute l'efficacité de ce
système repose sur la capacité du contrôleur
de cache à prédire les adresses mémoire
auxquelles le processeur voudra accéder.
Un autre
phénomène vient ralentir encore l'accès
à la mémoire. Indépendamment de la vitesse
de transmission des données, les composants de mémoire
imposent un temps d'accès. C'est le temps nécessaire
pour que le contenu d'une adresse soit placé sur le bus
pour être envoyé au processeur. On utilise souvent
pour la mémoire centrale des composants de mémoire
dynamique (DRAM) ayant un temps d'accès compris entre
70 et 100 ns (nanosecondes ou milliardièmes de seconde).
Le temps d'accès n'est pas la seule caractéristique
en cause. Les mémoires ont également un temps
de charge qui s'ajoute au temps d'accès. De ce fait,
la mémoire ne peut pas fournir les données assez
rapidement et le processeur est obligé d'observer un
ou plusieurs temps d'attente. Un seul temps d'attente
augmente le délai de 50 %. Pour éviter ce problème,
on installe une mémoire cache de second niveau,
constituée de mémoire statique ayant un temps
d'accès de 20 ns. Sur les PC équipés de
ce type de mémoire, on peut généralement
installer entre 64 et 512 Ko de cache. 256 Ko constituent une
configuration efficace.
Retour
en haut de la page
F.
La
mémoire virtuelle
Il
existe une autre forme de mémoire appelée mémoire
virtuelle. Il ne s'agit pas d'un type de composant particulier,
mais d'une technique permettant de simuler à moindre
coût la présence d'une quantité de mémoire
importante. Cette technique est assez proche, dans son principe,
de celle utilisée pour la mémoire cache. Une zone
du disque dur est employée pour y placer temporairement
les données qui ne peuvent tenir en mémoire centrale.
Retour
en haut de la page
G.
Augmentation de la capacité mémoire
d'un PC
Si
vous voulez augmenter la capacité mémoire de votre
PC, vous devez prendre plusieurs précautions. Vous devez
tout d'abord vérifier la configuration existante et déterminer
les possibilités d'extension. Il vous faut ensuite savoir
quel type de composants acheter. Enfin, vous devez installer
physiquement les composants en respectant les précautions
nécessaires, tant pour leur positionnement que pour leur
insertion.
Retour
en haut de la page
H.
La
mémoire morte
Elle
contient les programmes de base permettant de contrôler
les éléments matériels. Ces programme constituent
le Bios du PC (en anglais Basic Input Output System, traduit
Système-d'entrée-sortie de base). En fait le BIOS
est composé de plusieurs éléments, répartis
dans différents composants. Il pilote les périphériques
au démarrage pour les amorcer
Le principal se trouve sur la carte mère. Il s'agit d'un
boîtier DIP (boîtiers de plastique noir possédant
deux rangés de broches) inséré sur un support.
Cette configuration permet de mettre a jour le BIOS en changeant
le composant.
Il existe également un BIOS sur la carte d'interface
de l'écran, ainsi que sur certaines autres cartes d'extension.
a)
La
"shadow ROM"
La ROM
d'un PC contient les programmes de base qui contrôlent
son fonctionnement. Il s'agit donc de programmes utilisés
avec une fréquence très élevée.
Un des inconvénients majeurs de la ROM est que ce type
de mémoire est très lent. Une technique a donc
été mise au point pour améliorer la vitesse
des PC. Au démarrage, le contenu de la ROM est copié
en RAM. Chaque fois qu'une fonction du BIOS doit être
employée, elle est lue dans la RAM, qui est d'un accès
beaucoup plus rapide. Cette technique est appelé Shadow
ROM (ou parfois ROM fantôme). Certains BIOS possèdent
également une option BIOS cachable qui permet de les
utiliser à partir de la mémoire cache, ce qui
est encore plus rapide.
Retour
en haut de la page