Vous êtes sur la page 1sur 39

CHAPITRE 4

LA MMOIRE DE L'ORDINATEUR
1.

Les diffrents types de mmoires

Un ordinateur est compos de plusieurs types de mmoire. premire vue, on peut d'abord distinguer la
mmoire principale l'interne et les mmoires priphriques l'externe (appeles aussi mmoires
auxiliaires ou mmoires de masse ou alors secondaire).
Les mmoires auxiliaires sont des mmoires de grande capacit qui permettent de stocker les
informations pour une plus longue priode que ne le fait la mmoire principale de capacit plus limite.
Ce sont par exemple les disques et disquettes, ou les bandes magntiques. Ces mmoires ont par contre
un temps d'accs plus lent que la mmoire principale, mais leur cot de fabrication est bien plus bas. Ces
mmoires seront vues plus en dtail lorsque nous aborderons les priphriques de l'ordinateur.
La mmoire principale, quant elle, est une mmoire plus rapide, laquelle la CPU est relie. C'est l
que sont emmagasines les informations et les instructions excuter (par exemple les programmes de
l'usager) et que transitent les informations permettent au CPU d'excuter ces instructions. C'est la
mmoire principale que ce chapitre s'attarde principalement.
Essentiellement, le rle de la mmoire est celui d'emmagasiner de l'information et de la restituer au
besoin. Pour ce faire, l'information contenue dans la mmoire doit tre bien identifie, de faon
pouvoir la retrouver au besoin.
Il y a plusieurs faons diffrentes d'organiser une mmoire. La taille des units d'information qu'elle
contient peut galement varier. Les choix des constructeurs sont en fonction de ce qu'on attend de
l'ordinateur construire. Les caractristiques des mmoires dpendent, entre autres, des performances
dsires, de la capacit souhaite, et du budget dont on dispose car gnralement leur cot est prohibitif,
malgr la tendance la baisse.
Une mmoire se prsente comme un ensemble de cellules ou d'units de rangement identiques destines
mmoriser de l'information. Chaque unit de rangement est identifi par un numro qu'on appelle son
adresse. Pour une mmoire comportant N cellules, les adresses sont les entiers compris entre 0 et N-1. Il
existe donc un systme physique assurant la correspondance entre chaque unit de rangement de la
mmoire et son adresse. Le bloc de contrle de la mmoire (ou contrleur) effectue ce travail
d'aiguillage.
La mmoire doit aussi pouvoir communiquer avec les autres parties de l'ordinateur, l'unit centrale de
traitement (CPU) et les units d'entres/sorties en particulier. Cette communication est assure par des
organes de liaison forms par les lignes ( ou bus), les portes et les registres. Les lignes sont en ralit des
"autoroutes" sur lesquels circulent les bits d'information formant les adresses et les donnes. Les portes
servent contrler la synchronisation du traitement en laissant passer les impulsions lectriques ou non
en tant ouvertes ou fermes. Tant qu'aux registres, ils sont en ralit des mmoires trs petites et trs
rapides qui servent emmagasiner temporairement certaines informations concernant le travail
effectuer.

La mmoire
1.1.

Les technologies utilises pour construire des mmoires principales

Comme on l'a mentionn prcdemment, plusieurs types de mmoires composent un ordinateur: la


mmoire principale, les registres et les mmoires priphriques. Nous allons pour l'instant nous pencher
surtout sur la mmoire principale.
Ceci nous amne faire la distinction entre deux autres types de mmoire: la mmoire vive (Random
Acces Memory) et la mmoire morte (Read Only Memory). Par dfaut, la mmoire morte, est une
mmoire dont le contenu est fix en permanence. Ce type de mmoire ne peut donc qu'tre lu. Par
contre, le contenu de la mmoire vive peut tre chang volont, il s'agit donc d'une mmoire o on
peut lire et crire au besoin.
Jusqu'au milieu des annes 70, les mmoires principales taient constitues de tores magntiques.
Depuis, les mmoires semi-conducteurs se sont imposes et diffrentes technologies de mmoires
semi-conducteurs ont t mises au point pour construire des mmoires vives et les mmoires mortes.
Certaines recherches sont faites dans le but de mettre au point des procds utilisant la perforation
optique ou l'effet Jacobson, mais pour l'instant, il ne semble pas que les mmoires semi-conducteurs
soient vraiment menaces de disparatre; les dernires amliorations technologiques ont plutt consist
pousser de plus en plus l'intgration des circuits.
1.1.1

Les mmoires tores magntiques

Le "tore" magntique est en fait un petit anneau, fait de ferrite, qui peut prendre deux tats: tre aimant
dans un sens ou dans l'autre, selon la charge de courant qui lui est applique. Les tores, dont le diamtre
est d'une fraction de millimtres, sont disposs en ranges et en colonnes pour former un plan o chaque
tore reprsente un bit. Plusieurs plans peuvent tre superposs, de faon ce que les tores dont les
coordonnes (range, colonne) sont les mmes sur chaque plan forment des mots.
Chaque tore est travers par trois fils: un dcodeur de range et un dcodeur de colonne qui permettent
de localiser un tore (donc un bit) et finalement un fil dtecteur dont la fonction est de dtecter le sens de
l'aimantation et de le modifier au besoin. Il suffit d'appliquer un tore une certaine charge de courant
pour changer le sens de l'aimantation, et donc, son tat.
L'opration de lecture consiste reprer le tore correspondant l'adresse recherche et utiliser le fil
dtecteur pour savoir si le bit contient un 0 ou un 1. Comme cette opration se fait en appliquant une
charge sur les fils de range et de colonne, chaque opration de lecture a pour consquence de mettre
zro le contenu de la cellule lue. Il faut donc lire et rcrire le contenu de la mmoire lue chaque
lecture.
Pour effectuer une opration d'criture, il faut aussi deux tapes: d'abord mettre la cellule zro, puis
procder l'aimantation de la cellule.
1.1.1.1 Dsavantages:
Cette ncessit de procder la mise zro avant d'crire et la restauration du contenu aprs chaque
lecture est un des principaux dsavantages des mmoires tores, puisque ces oprations augmentent le
temps de lecture et d'criture ainsi que les risques d'erreur. L'autre inconvnient des mmoires tores est
leur taille qui ne peut concurrencer la miniaturisation possible avec les mmoires semi-conducteurs.

La mmoire
1.1.2

Les mmoires semi-conducteurs.

Un semi-conducteur est un matriau dont la conductibilit lectrique se situe entre celle des isolants et
celle des mtaux. Les plus utiliss sont le germanium et surtout, le silicium.
Les mmoires lecture seulement, ou ROM (Read Only Memory) contiennent un contenu qui est
enregistr de faon dfinitive lors de la construction, et par consquent ce contenu est conserv mme en
cas de perte de tension lectrique. Ce n'est pas le cas des mmoires vives ou RAM (pour Random Acces
Memory) qui voient leur contenu s'envoler ds que la tension lectrique disparat, par exemple, ds que
l'appareil est teint. Les mmoires vives peuvent par contre tre lues et crites autant de fois que
ncessaire, car leur contenu n'est pas "cbl".
Quoique laisse supposer l'appellation RAM (Random Acces signifie accs alatoire), les deux types de
mmoire ont des accs "alatoires", en ce sens que le temps ncessaire pour accder une information
varie "au hasard", par opposition aux mmoires o l'accs se fait de faon squentielle, comme sur les
bandes magntiques.
1.1.2.1 Les mmoires lecture seule (ROM).
Une mmoire ROM est d'abord un circuit intgr. Cela veut dire qu'il s'agit d'un ensemble de circuits
inter relis dans le but d'excuter une fonction. Dans ce cas-ci, la fonction est d'emmagasiner un certain
nombre d'informations et de les restituer au besoin. Le botier ROM comporte donc les diffrentes units
d'information (bits) et les circuits ncessaires pour "livrer" la partie d'information requise lorsqu'on lui
en fait la demande et qu'on lui fournit l'adresse de la cellule d'information recherche.
Les entres du circuit sont donc les diffrents bits contenant l'adresse de l'information recherche, et les
sorties sont les diffrents bits contenant les donnes. cela s'ajoute une entre qui signale l'ordre de
lecture.
On sait donc qu' chaque combinaison de bits d'adresse en entre doit correspondre une combinaison de
bits de donnes en sortie. Comme on l'a dit, le contenu d'une mmoire ROM est fix la construction et
ne peut plus tre chang. C'est donc dire, que ds la construction, on connat les sorties qu'on dsire pour
chaque entre. Il suffit alors de construire le transcodeur, un circuit qui permet de "transformer" les bits
d'entre pour produire les sorties dsires.
1.1.2.1.1 Les "PROM" ou ROM programmables.
Cependant, comme il est coteux de construire des mmoires ROM pour des applications trs
spcifiques, il existe des variantes de mmoires ROM qui peuvent tre programmes par l'utilisateur. Ce
sont les PROM (Programmable ROM), qui sont en fait des ROM "vierges" qui contiennent toutes les
connexions possibles et sur lesquelles un appareil spcial, le programmeur de PROM permet de dtruire
certains fusibles internes.
Cela revient liminer certaines connections pour ne conserver que celles dsires. Les "EPROM" ou
PROM effaables.
Il peut tre avantageux de pouvoir modifier une PROM. Mais les fusibles dtruits lors de la
programmation d'une PROM ne peuvent pas tre recrs. C'est pourquoi les EPROM ont t mis au
point. Situe un peu mi-chemin entre la RAM et la ROM, l'EPROM (Erasable PROM) est un dispositif

La mmoire

dont le contenu peut tre effac lorsqu'il est soumis un rayonnement ultraviolet, autorisant ainsi une
nouvelle programmation.
1.1.2.1.2 Les "EEPROM" ou PROM effaables lectroniquement.
Cette catgorie de mmoires ROM a l'avantage d'tre effaable lectriquement, ce qui est plus simple
que d'utiliser le rayonnement ultraviolet comme c'est le cas pour les EPROM.
1.1.2.2 Les mmoires lecture-criture (RAM).
Les mmoires vives ou RAM sont aussi des circuits intgrs. Comme le contenu de chaque cellule peut
tre lu ou crit, il doit pouvoir varier. Contrairement au cas des ROM, la sortie correspondant une srie
de bits d'adresse donne en entre n'est pas fixe ds la construction, mais elle peut au contraire changer
selon le programme utilis et les donnes qui l'alimentent.
Les oprations diffrent selon qu'on procde une lecture ou une criture. Dans le cas d'une lecture,
les bits qui constituent l'adresse sont "reus" par un dcodeur d'adresse qui localise la cellule recherche.
Selon que cette cellule contient un 0 ou un 1, la donne est achemine en sortie sur la ligne de
lecture/criture d'un 0 ou sur la ligne de lecture/criture d'un 1.
Pour une opration d'criture, l'adresse est aussi dcode par le dcodeur d'adresse qui localise la cellule
recherche, et selon qu'on veut crire un 0 ou un 1, la ligne de lecture/criture d'un 0 ou la ligne de
lecture/criture d'un 1 est utilise pour acheminer la donne la cellule dsire.
1.1.2.3 Les RAM "statiques" et RAM "dynamiques".
On distingue deux sortes de mmoires vives: les statiques et les dynamiques. Dans une mmoire vive
statique, un "bistable" form de deux transistors est utilis pour reprsenter un lment de mmorisation.
Sans intervention de l'extrieur, le bistable maintient un tat lectrique reprsentant une information
binaire. chacun des tats, un des deux transistors est satur et l'autre bloqu, et seule l'application
d'une tension lectrique peut faire passer le bistable d'un tat l'autre. C'est le fait qu'un tat stable soit
maintenu sans intervention extrieure qui fait qu'on l'appelle mmoire statique.
Par contre, les mmoires dites "dynamiques" sont bases sur l'utilisation d'un condensateur qui maintient
entre ses lectrodes une tension lectrique de 5 V ou de 0 V qui quivalent aux tats 1 et 0. Cependant,
le condensateur se dcharge et il faut donc procder un rafrachissement priodique de la mmoire.
Cela signifie qu'on procde une lecture puis la rcriture de la mmoire rgulirement. Il faut donc
une intervention externe rgulire, le rafrachissement, pour maintenir l'tat d'une mmoire dynamique.
Malgr cet inconvnient, la simplicit des RAM dynamiques permet de les intgrer en plus grand
nombre sur une mme puce de silicium que leurs concurrentes statiques. C'est d'ailleurs cette
caractristique qui a contribu gnraliser l'emploi de RAM dynamiques; IBM, notamment, les a
introduites sur ses micro-ordinateurs IBM PC

La mmoire

Tableau 1 : Tableau Comparatif DRAM VS SRAM


Caractristiques

DRAM

SRAM

Donnes sont emmagasines dans


besoin d'tre rafrachi
Lire une donnes est destructif
Vitesse
Temprature
Prix

Capacitor
Oui
Oui
Lente
Froide
Bas

Transistor
Non
Non
Rapide
Chaude
Haut

1.1.2.4 Classification de la mmoire dynamique.


Chaque technologies a ses avantages et dsavantages. On prend comme rgle gnrale que plus cest
rapide, plus a cote cher.
DRAM (Dynamic RAM), est la mmoire la moins chre et la plus rpandue des mmoires semiconducteurs.
FPM (Fast Page Mode), est une mmoire Dram standard qui est disponible avec une vitesse de 60ns.
EDO (Extended Data Output), amlioration du standard FPM.
SDRAM (Synchronous), DDRRAM (Double Data Rate), DRRAM (Direct Rambus), SLRAM
(Sync Link), sont toutes des type de mmoire qui fonctionnent en synchronisation avec lhorloge du
CPU.
1.1.3

Technologie BIPOLAIRE et MOS.

Que ce soit pour la construction de mmoires ROM ou RAM, les constructeurs ont le choix de deux
technologies: les technologies unipolaires MOS ou la technologie bipolaire.
Les principales mmoires bipolaires sont celles de la famille des TTL (Transistor Transistor Logic). On
les retrouve surtout sur des ordinateurs de grande taille. Elles permettent d'obtenir des temps d'accs plus
rapides , mais leur prix est plus lev et elles ont tendance dgager plus de chaleur.
Il existe plusieurs variantes de la gamme des mmoires MOS. Les plus utilises sont les C-MOS et les
H-MOS. On trouve aussi les N-MOS, P-MOS, MOSFET, MOSROM,... Ces mmoires permettent
d'atteindre un haut niveau d'intgration. Certaines ont des caractristiques particulires pour une
application, comme les FAMOS (Floating gate Avalanche injection MOS) dont le dispositif grille
flottante permet la ralisation des EPROM.

La mmoire

Figure 1 : Les mmoires semi-conducteurs.


Mmoires

semi-conducteurs

mmoires
vives

statiques

dynamiques

mmoires
mortes

ROM

Fusibles
bipolaires

PROM

EPROM

EEPROM

1.2.

La hirarchie des mmoires.

Nous savons qu'un ordinateur, de part sa fonction, doit emmagasiner de l'information, extraite plus ou
moins court chance par le ou les usagers (information destine l'externe) ou encore par des units
mmes de la machine (information destine l'interne). La quantit d'information transfre varie de
quelques bits, quelques caractres, quelques centaines et milliers de caractres et mme jusqu'
quelques milliards de caractres sur de gros systmes. Toutes ces informations, quel que soit le volume
considr, sont retenues dans des mmoires, dispositifs pouvant conserver des tats stables et bien
dfinis. Il existe une certaine hirarchie ou classification dans les mmoires qui dpend essentiellement
des trois critres suivants:

La mmoire

1. le temps d'accs,
2. la capacit de mmorisation,
3. le cot de l'information.
On peut rsumer cette classification l'aide de la figure suivante:

Variation
du contenu
Temps
d'accs
plus rapide

registres
lmentaires
registres
internes
mmoires principales

Capacit
plus grande
Cot
plus bas

mmoires accs direct

mmoires accs squentiel


Dans cette pyramide, plus nous allons vers le haut, plus les mmoires qu'on y trouve sont de faibles
capacits, coteuses produire, ayant des temps d'accs rapides et dont les contenus sont changeants
dans le temps. Au sommet, on trouve en fait les registres conus et raliss l'aide des plus hautes
technologies. La capacit des ces mmoires se rsume quelques bits ou mots-mmoire. Dans le centre
de la pyramide, on trouve la mmoire principale de l'ordinateur dont l'accs est rapide mais pas autant
que celui des registres internes dans lesquels les contenus sont susceptibles de changer continuellement.
Dans le bas de la pyramide, on trouve les mmoires de masse ou de trs forte capacit. Par contre, les
temps d'accs sont plus longs comparer avec ceux de la mmoire centrale et encore plus avec les temps
d'accs des registres. On trouve deux principales sous-classes de mmoires de masse: celles accs
direct et celles accs squentiel.

Les mmoires accs squentiel.


L'accs aux enregistrements se fait de faon squentielle, c'est--dire qu'on lit ou crit d'abord le
premier, puis le second, le troisime et ainsi de suite.. . Les mdiums pouvant tre utiliss sont: les cartes
perfores, le ruban perfor, le ruban magntique (3000 caractres au centimtre, 100 millions de
caractres sur une bobine de ruban de 20 centimtres de rayon) et mme le disque magntique ( plus
d'un million de caractres sur une disquette de 10 centimtres de rayon pour un cot aussi bas que
1.50$). C'est le type de mmoire le moins coteux par unit d'information, de temps d'accs le plus long

La mmoire

et dont les capacits sont les plus grandes.

Les mmoires accs direct.


On trouve dans cette catgorie de mmoires, les disques magntiques. Le temps d'accs pour lire sur un
ruban magntique est beaucoup plus grand que sur un disque magntique. Pour comprendre ce
phnomne, il nous suffit de faire le parallle entre le temps pris pour atteindre une chanson qu'on aime
sur une cassette comparativement celui requis pour l'atteindre sur un disque. Par contre, la capacit est
moins grande en gnral et le cot d'un disque est plus lev que celui d'un ruban magntique. Il existe
plusieurs types de disques, allant des grands disques pour les gros systmes dont la capacit peut
atteindre plusieurs milliards d'octets et de temps d'accs moyen de quelques milli-secondes, des disques
moyens (30 centimtres de diamtre) placs en permanence dans un contenant de plastique, jusqu'aux
disquettes rigides ou souples que tout le monde connat pouvant contenir au maximum quelques millions
de caractres et de temps d'accs de quelques centaines de milli-secondes. Nous allons maintenant
dtailler les principales mmoires de masse dans ces deux catgories que sont les disques et les bandes
magntiques.
1.3.

Les lments d'information de la mmoire principale

1.3.1

Le bit

Le bit est la plus petite unit d'information. Il ne peut prendre que deux tats diffrents et par
consquent, il ne peut reprsenter que deux tats diffrents:

0
0V
VRAI
OUI
PAIR
1.3.2

ou
ou
ou
ou
ou

1
5V
FAUX
NON
IMPAIR

Le caractre

tant donn que le bit est une unit d'information trop petite, on regroupe les bits de faon crer des
units d'information qui puissent reprsenter un plus grand nombre d'tats diffrents. Un groupe de 8
bits permet de reprsenter 28 tats diffrents, donc 256 valeurs au lieu de 2.
Ces groupes de bits sont appels caractres. Bien qu'on puisse retrouver des caractres de 4 bits, et de 6
bits, les caractres de 8 bits (ou octets) sont les plus rpandus. tel point que les mots octet et caractre
sont souvent utiliss comme des synonymes.
L'intrt de l'octet est facilement comprhensible: d'abord, avec ses 256 possibilits, l'octet permet de
reprsenter les lettres majuscules et minuscules, les chiffres et une srie de caractres spciaux
(caractres de contrle pour l'imprimante, pour le curseur, etc,). Ensuite, comme les 10 chiffres du
systme dcimal se codent sur 4 bits (qui offrent somme toute une possibilit de 16 tats distincts),
l'octet peut aussi tre utilis comme deux caractres de 4 bits chacun, ce qui permet de crer des
algorithmes spciaux pour les calculs dcimaux.

1.3.3

Le mot

Bien que le caractre permette de reprsenter tous les symboles dsirs, il ne permet pas de reprsenter
toute l'information ncessaire pour faire un calcul par exemple ou encore reprsenter une instruction

La mmoire

machine. On a donc besoin de chanes de caractres. Les caractres sont alors regroups en units de
rangement plus grandes appeles mots.
Grosso modo, le principe du mot est de permettre de contenir une opration, une instruction, c'est--dire
un oprateur accompagn d'une ou plusieurs oprandes. L'ide est de minimiser le nombre d'accs la
mmoire ncessaires pour excuter une instruction. Le mot est l'unit de base pour le transfert
d'information entre la mmoire et l'unit centrale.
Afin de ne pas gaspiller d'espace mmoire, les mots doivent tre assez courts pour tre raisonnablement
remplis. Ils doivent en mme temps tre assez longs pour permettre de contenir l'information ncessaire
pour excuter des oprations simples.
Les mots peuvent tre de diffrente longueur selon le type d'ordinateur ou selon le genre d'application.
Certaines machines permettent en effet de varier au besoin la longueur des mots (voir annexe sur la
reprsentation des donnes sur le VAX).
On trouve des mots de 12, 16, 24, 32 et mme 60 bits dpendant du type de machine. Sur les microordinateurs, les mots sont de 16 bits, c'est dire 2 octets. Sur les plus gros ordinateurs, les mots sont de
32 bits et plus. Cependant, les nouveaux microprocesseurs prsentent des mots de 32 bits sur les microordinateurs, les rendant beaucoup plus efficaces et plus performants. Certains utilisent le terme mot
uniquement pour dsigner des units de 2 octets. Il faut donc se mfier du sens donn ce terme.
Certains parlent aussi de double mots pour dsigner des units de rangement de 4 octets et de quadruple
mots pour dsigner des units de 8 octets.

1.3.4

Le bloc

Pour faciliter l'adressage et le transfert avec les priphriques, qui sont relativement plus lents fournir
aux demandes d aux dplacements mcaniques que cela exige, les mots sont groups en blocs. La taille
des blocs varie d'une machine l'autre. titre d'exemple, la capacit de votre compte sur le disque reli
l'ordinateur est mesure en blocs allant de 400 1000 blocs. Cette notion sera tudie plus fond dans
le cadre du cours "structure de fichiers".

1.4.

Les caractristiques de la mmoire principale

Outre la taille, ou capacit de la mmoire, certaines caractristiques de la mmoire principale sont des
indicateurs importants pour mesurer la performance d'un ordinateur. Les principales sont la taille des
mots-mmoire, le temps d'accs et le dbit binaire.

1.4.1

La taille des mots-mmoire

Comme le mot (ou cellule) est l'unit adressable de base, et que la longueur des mots varie selon les
machines, la taille des mots mmoire, c'est--dire le nombre de bits lmentaires regroups sous une
mme adresse et formant le mot, est une caractristique importante d'un ordinateur. Des units de
rangement plus longues permettront d'emmagasiner des oprations plus complexes ou d'atteindre une
plus grande prcision de reprsentation des donnes numriques.
Ainsi, les ordinateurs spcialiss une tche spcifique impliquant des calculs scientifiques ont des
units de mmoire de grande taille afin de mmoriser les nombres avec le plus de chiffres significatifs
possibles. Les mini-ordinateurs et les ordinateurs spcialiss dans des tches spcifiques de contrle
traitent en gnral des informations plus courtes, aussi rduit-on la taille de leurs units de rangement

La mmoire

10

afin d'en abaisser le cot. Pour les ordinateurs tout usage, la longueur des units de base de rangement
est comprise entre ces valeurs extrmes.

1.4.2

Le temps d'accs: le cycle-mmoire

Lorsqu'une unit provoque la consultation la mmoire, il s'coule un certain dlai entre la demande et
l'obtention de la valeur demande. Ce dlai est gnralement appel le temps d'accs la mmoire.
Comme chaque unit de l'ordinateur effectue des lectures et des critures frquentes la mmoire, le
temps d'accs la mmoire est dterminant pour la vitesse de fonctionnement de l'ordinateur galement
lie directement la frquence de son horloge.
Pour les mmoires semi-conducteurs, le temps de lecture est en gnral diffrent du temps d'criture
pour des raisons de nature lectroniques. On utilise le plus long des deux pour dfinir le cycle mmoire,
qui est un meilleur indicateur de la performance relle.
Pour les anciennes mmoires tores, il fallait procder une mise zro avant d'effectuer une opration
d'criture, et une restauration du contenu tait ncessaire aprs chaque opration de lecture. Le cycle
mmoire se dfinissait alors comme tant le temps total ncessaire avant que la mmoire soit en mesure
de rpondre une autre requte.
Plusieurs techniques sont mises au point pour tenter d'augmenter la performance de la mmoire. Citons
en particulier les mmoires caches ou antmmoires. Il s'agit de mmoires trs rapides et de faible
capacit servant de tampon entre la mmoire principale proprement dite et l'unit de traitement. Ces
mmoires caches de trs haute performance lectronique contiennent la plupart des informations dont,
statistiquement, l'unit centrale peut avoir besoin. Cela diminue le nombre de requtes la mmoire
principale dont le temps d'accs est plus long.

1.4.3

Le dbit binaire

Le cycle mmoire nous dit combien de temps est ncessaire pour effectuer une requte de transfert
partir de la mmoire ou vers celle-ci. Comme la longueur des mots machines varie d'un appareil
l'autre, la quantit de bits transfre lors d'une requte varie aussi.
Il devient donc difficile de comparer la performance des diffrentes machines.
Le taux de transfert, ou dbit binaire nous permet de remdier cela. En effet, le dbit binaire permet de
mesurer le nombre de bits transfrs par unit de temps. titre d'exemple, considrons une mmoire
ayant un cycle de 1.2 ms et des mots de 36 bits. Le taux de transfert sera:
36 bits = 30 X 106 bits par secondes
1.2 X 10 -6 sec
Si les mots taient d'une longueur de 18 bits pour le mme cycle de 1.2 msec, on aurait alors:
18 bits = 15 X 106 bits par secondes
1.2 X 10 -6 sec
ce qui donne du point de vue dbit binaire une performance diminue de moiti.

La mmoire

11

Par contre, un cycle-mmoire deux fois plus rapide, soit de 0.6 msec., donnerait avec des mots d'une
longueur de 18 bits le mme dbit binaire.
En effet, on a:
18 bits = 30 X 106 bits par secondes
0.6 X 10 -6 sec
De plus, il existe plusieurs faons d'augmenter le dbit binaire. On peut utiliser une technologie plus
pousse ou augmenter la longueur des mots-machine. On peut aussi organiser la mmoire de faon ce
que plus de requtes puissent tre satisfaites.

Calcul de dbit binaire


Dbit binaire

Longueur du mot
Longueur du cycle

La mmoire

1.5.

12

L'organisation de la mmoire principale

La cellule (la plus petite partie adressable d'une mmoire) peut tre:
- le bit, on a alors une machine bits;
- le caractre, on a alors une machine caractres;
- le mot, on a alors une machine mots.
Il existe plusieurs faons diffrentes d'organiser une mmoire. a titre d'exemple, une mmoire forme de
96 bits peut avoir les trois organisations suivantes (en terme d'adressage):
(A)
6 mots de 16 bits
(B)
8 mots de 12 bits
(C)
12 mots de 8 bits,
impliquant respectivement 6, 8 et 12 adresses.

Figure 2 : Mmoire de 96 bits organise en 6 mots de 16 bits


15

14

13

12

11

10

0
1
2
3
4
5

Figure 3 : Mmoire de 96 bits organise en 8 mots de 12 bits


11
0
1
2
3
4
5
6
7

10

La mmoire

13

Figure 4 : Mmoire de 96 bits organise en 12 mots de 8 bits

0
1
2
3
4
5
6
7
8
9
10
11

Lorsque la cellule mmoire comporte plus d'un octet, elle est toujours adresse par rapport l'octet de
plus faible poids. Les octets sont gnralement numrots comme les bits, de droite gauche.

Figure 5 :Adressage des octets


7
octet 0

Octet
15

Mot de 16 bits ou
Mot de 2 caractres

octet 1

31

Mot de 32 bits ou
Double-mot ou
Mot de 4 caractres

octet 3

00
octet 0

00
octet 2

octet 1

63
octet 7

octet 0

00
octet 6

Mot de 64 bits ou
Quadri-mot ou
Mot de 8 caractres

octet 5

octet 4

octet 3

octet 2

octet 1

octet 0

La mmoire

14

Par contre, le choix d'une organisation de la mmoire a des rpercussions sur la performance. Voyons,
par exemple, comment une chane de caractres, disons:
IF X > 0 THEN GO TO 123;
peut tre emmagasine dans la mmoire.
Si la machine possde une mmoire 4 octets par mot, alors on trouvera en gnral 4 caractres par
cellule, soit de gauche droite ou de droite gauche selon les machines.

Figure 6 : Architecture de la mmoire


Machine droite

Machine gauche

>

>

Pour tout changement dans la chane de caractres demand par l'usager, le programme diteur devra
faire les dplacements ncessaires l'insertion de nouveaux caractres, ce qui demande un certain temps.
On peut diminuer ce temps de manipulation si on utilise une autre organisation de la mmoire. Dans
cette nouvelle organisation, chaque cellule contient un seul caractre (au lieu de 4), et on y insre un
pointeur qui indique o se trouve le prochain caractre.
On remarque cependant que la performance ainsi gagne se paie par le fait qu'un espace plus grand de
mmoire est requis pour mmoriser le mme nombre de caractres (d la redondance des pointeurs).

La mmoire

15

Le schma suivant montre ce qui se passe lorsqu'on modifie la chane originale pour
READ B;
la chane modifie par l'diteur
READ A,B;

Figure 7 : Structure par pointeur


Avant

Aprs

FIN

FIN

1.6.

Les organes de liaison (bus, portes et registres)

Afin de communiquer entre eux, les diffrents blocs de l'ordinateur disposent d'organes de liaison que
sont les lignes, qu'on appelle souvent bus, les portes et les registres.

1.6.1

Les lignes (ou bus)

Une ligne est essentiellement un chemin physique entre un metteur et un rcepteur. Une ligne se
compose de lignes simples. Il y a autant qu'il y a de bits transmettre en parallle. Ce nombre de bits
pouvant tre transmis paralllement est appel largeur de bande de la ligne. C'est--dire que des donnes
codes sur 8 bits ne peuvent tre transmises que sur une ligne dont la largeur de bande est de 8.
Une ligne est dite oriente si les donnes ne peuvent y circuler que dans un seul sens. Si l'information
peut circuler dans les deux sens, on dit qu'elle est bidirectionnelle.
Sur une ligne, il peut se produire une bifurcation, c'est--dire que la ligne se spare en deux lignes
quivalentes la premire.

La mmoire

16

Sur une ligne, on peut galement installer une ou des portes. Une porte est un dispositif permettant
d'autoriser ou d'interdire le passage des informations sur la ligne. Il y a toujours une commande spciale
permettant d'ouvrir ou de fermer une porte.

Figure 8 : Bus
Emetteur

Emetteur

Bifurcateur

Rcepteur

1.6.2

Rcepteur

Rcepteur

registre

Porte

registre

Les registres

Un registre est un dispositif qui permet de mmoriser une information et de la restituer autant de fois que
dsir. Un registre est un assemblage de registres lmentaires qui se partageant la mme ligne. Comme
un registre lmentaire permet de mmoriser un bit, le registre doit avoir la mme largeur de bande que
la ligne.
Tout registre comporte un mcanisme de remise zro (RAZ), qui met tous les registres lmentaires
qui le compose zro simultanment. L'agencement des matriaux et la technologie utiliss fait en sorte
qu'en gnral, les registres sont 10 fois plus rapides que la mmoire principale.
Notons qu'on ne retrouve pas seulement des registres dans la mmoire centrale, mais aussi dans les
autres composantes de l'ordinateur comme l'unit centrale de traitement (CPU), dans les units
d'entres/sorties, etc.
Les registres sont utiliss bien diffremment que la mmoire principale. Certains registres, les registres
adressage implicite, ne sont mme pas accessibles au software, mais sont plutt ncessaires au
fonctionnement propre du processeur central.
D'autres registres, les registres adressage explicite, servent surtout mmoriser de faon temporaire
des lments ncessaires pour effectuer une des instructions d'un programme. Il peut s'agir, par exemple,
de rsultats intermdiaires dans un calcul plusieurs tapes, de l'adresse d'une oprande, etc.

La mmoire

17

Suivant le type d'information qu'ils sont destins retenir, on parlera de registres d'adresses, de registre
arithmtique, fixe ou flottant, de registre d'instructions, de registre de base ou de translation, de registre
d'index, ... etc.
On trouve aussi des registres dcalage, qui sont spcialement conus pour effectuer des dcalages sur
les chanes binaires. Le procd de dcalage est particulirement utile dans les oprations arithmtiques
de multiplication et de division binaire que nous aborderons plus loin.
Il y a aussi des registres tampons (buffer) qui permettent de stocker temporairement de l'information
entre un dispositif source et un dispositif destinataire non-synchroniss.

1.7.

Le bloc de contrle de la mmoire

Comment la mmoire parvient-elle retracer une unit d'enregistrement de la mmoire partir de son
adresse? Le dcodage de l'adresse est en fait un gigantesque systme d'aiguillage en forme d'arbre
binaire. C'est le bloc de contrle de mmoire qui permet d'obtenir l'information demande partir de
l'adresse de l'unit d'enregistrement de la mmoire o est loge cette information.
Pour effectuer une requte la mmoire, au minimum quatre types d'information sont utiliss: il faut
savoir si la mmoire est disponible pour accepter une requte; si la requte en est une de lecture ou une
d'criture; il faut galement savoir l'adresse de l'unit d'enregistrement de la mmoire laquelle on veut
accder et finalement, il faut la donne elle-mme qui constitue le contenu lu (ou crire) dans l'unit
d'enregistrement en question.
C'est pourquoi le bloc de contrle de mmoire correspond avec l'extrieur de 4 faons au moins:
- par un registre de donnes (capacit: 1 mot mmoire)
- par un registre d'adresse (capacit: la largeur d'une adresse)
- par un indicateur libre/occup
- par un indicateur lecture/criture
Le registre de donnes sert recevoir le mot lu lors d'une lecture ou garder le mot crire avant une
criture. Ce registre doit donc avoir une largeur de bande gale au nombre de bits d'un mot mmoire. S'il
s'agit de double mots, la largeur doit tre de 16 registres lmentaires (soit deux octets).
Le registre d'adresse reoit l'adresse du mot auquel on veut accder. Il doit avoir une largeur suffisante.
Par exemple, si la mmoire contient 32,768 mots-mmoire, les adresses sont des entiers compris entre 0
et 32,767. Comme il faut 15 bits pour reprsenter ces entiers en binaire, le registre d'adresse devra avoir
une largeur de bande de 15 bits.

La mmoire

1.7.1

18

Droulement d'une requte au bloc de contrle de mmoire

Le schma suivant rsume les activits du bloc de contrle de la mmoire.

Figure 9 : Requte la mmoire


mmoire

adresses
0

m-1

m-1

2
2

registre de
donnes
m bits
octet/mot

libre/occup

emplacements
adressables
de m bits de longueur

lire/crire
registre de
d'adresses
n bits

n-2

m-1

n-1

m-1

m-1

Prosesseur central

Pour la lecture d'une unit d'enregistrement de la mmoire, la squence est la suivante:


Si le bloc est occup, attendre
Placer l'adresse dsire dans le registre d'adresses
Envoyer le signal lire
Attendre que le signal libre soit rtabli. Le registre de donnes contient alors une copie du mot mmoire
dsir.

1.7.2

Structure du bloc de contrle de mmoire

Le bloc de contrle de la mmoire (ou contrleur), est en fait une pyramide d'aiguillages faits sur chaque
bit de l'adresse. Chaque bit de l'adresse contrle un tage de la pyramide, de sorte qu'il y a autant
d'oprations d'aiguillage qu'il y a de bits dans l'adresse.
Le principe est celui d'un arbre binaire: au premier tage, le premier bit est test. Selon qu'il s'agit d'un 0
ou d'un 1, on prendra une direction diffrente (bifurcation). Le deuxime bit est ensuite test au
deuxime niveau, et ainsi de suite, jusqu' ce qu'on arrive l'unit d'enregistrement recherche.

La mmoire

19

Figure 10 : Cblage interne du contrleur


AUTOROUTE

DES ADRESSES

1
BITS

CELLULE 00

CELLULE 01

D'ADRESSE

CELLULE 10

CELLULE 11

DONNEE

AUTOROUTE DES MOTS

LIRE /ECRIRE

1.7.3

Correspondance du bloc de contrle de mmoire avec l'extrieur

Sur le registre de donnes est connecte une ligne de donnes (bus de donnes) et sur le registre
d'adresses est connect une ligne d'adresses (bus d'adresses).
L'indicateur libre/occup est connect une ligne oriente simple, tout comme l'indicateur d'ordre de
lecture/criture.
Les autres composantes de l'ordinateur, en particulier l'unit centrale et le bloc de contrle
d'entres/sorties sont branches sur ces lignes. Plusieurs modules peuvent tre connects au mme bloc
de contrle de mmoire grce des portes qui vitent le chevauchement des requtes.

La mmoire

20

Figure 11 : Une mmoire centrale


Entre de l'adresse du mot-mmoire

Registre d'adresses

0
1
2
3

.
.

n-2
n-1

Registre de donnes

ordres
d'excution

Entre/sortie
de l'information

oprations
effectuer

Bloc de
contrle
de la
mmoire

La mmoire

21

Figure 12

registre
de donnes
Bloc de
contrle de
la mmoire

m
o
i
r
e

ligne
de
contrle

ligne de
mots

registre de
contrle
libre/occup
lire/crire
ect..

ligne
d'adresses

registre
d'adresses

Canal

Bloc de
contrle
des
entres/sorties

Unit
centrale

La mmoire

1.8.

22

GESTION DE LA MMOIRE PRINCIPALE

1.8.1 Exigences de la gestion de mmoire


Les mcanisme de gestions de la mmoire doivent tre capable de satisfaire 5 exigences :
Relocalisation
Protection
Partage
Organisation Logique
Organisation physique

1.8.1.1 Relocalisation
Dans un systeme qui supporte plusieurs programmes (multiprogramming) laccessibilit la mmoire
principale est gnralement partage entre plusieurs processus/programmes. Il est presque impossible
pour un programmeur de savoir o son programme va rsider, ni avec quel programme il devra partager
la mmoire. De plus, il est important de pouvoir sortir et entrer I(swap) les diffrents processus pour
pouvoir optimiser lutilisation de la mmoire et du processeur. Lorsquun programme transfr sur un
disque doit tre recharger en mmoire, nous voulons quil soit possible de le relocaliser nimporte o en
mmoire. Nous serions trop limits si nous avions le recharger sa place initiale. Cette possibilit de
relocaliser un programme nimporte o en mmoire nous oblige grer ladressage de notre mmoire

Figure 13 : Adressage pour un programme en mmoire

Le systme dexploitation doit savoir tout moment ladresse du programme, de ses donnes et de sa
pile. Il doit tre capable de traduire les rfrences la mmoire dans le code, lemplacement physique
actuel du programme. Il doit aussi savoir o le dbut du programme se trouve. Ainsi lorsque nous aurons

La mmoire

23

des rfrences aux donnes ou encore des instructions de branchement lintrieur du programme, le
systme dexploitation pourra grce ladressage rpondre aux demandes.

1.8.1.2 Protection
Chaque programmes charg en mmoire doit tre avant tout protg de changements par dautres
programmes. La relocalisation des programmes rend la protection plus difficile. tant donn quil est
impossible de savoir lemplacement du programme, il est impossible de vrifier ladresse absolue lors de
la compilation du programme et de la protger. Donc tous les rfrences des emplacements mmoire
sont vrifies lors de lexcution, afin de sassurer que toutes les rfrences ne sont faites qu des
espaces rservs ce programme. Le processeur doit pouvoir arrter tout programme qui essaye
daccder une espace mmoire qui ne lui appartient pas.
Cette protection doit tre faite au niveau du processeur et non du systme dexploitation. Le OS ne peut
anticiper sur toutes les rfrences quun programme pourra faire. Il est donc possible de le faire
seulement lors de lexcution de linstruction.

1.8.1.3 Organisation logique


La mmoire des ordinateurs est gnralement organise de faon linaire en une seule dimension.
Comme nous lavons vu, les espaces mmoire consistent en une squence de bytes ou de mots. Cela ne
correspond pas la mthode utilise en programmation. La majeure partie des programmes maintenant
sont constitus de modules.
Si les systmes dexploitation et lordinateur peuvent utiliser efficacemen des programmes ou des
donnes sous forme de modules, nous pourrons alors en tirer les avantages suivants :
Modules peuvent tre crit et compil indpendamment, avec toutes les rfrences entre les modules
rsolu par le systme durant lexcution.
Nous pouvons facilement ajouter diffrents degrs de protection (lecture seulement, excution
seulement).
Possibilit de partager des modules entre diffrents programmes.
Nous allons voir plus loin dans ce chapitre que lun des outils utiliss pour satisfaire ces exigences est
la segmentation.

1.8.1.4 Organisation Physique


La mmoire est organis en au moins deux niveaux. La mmoire principale et secondaire. La principale
nous donne un accs rapide un cot plus lev, elle est volatile, ce qui ne permet pas demmagasiner
de linformation de faon permanente. La secondaire, plus lente et beaucoup moins dispendieuse, permet
demmagasin de large quantit de donnes de manire permanente.
On utilisera donc la secondaire pour garder les programmes et les donnes, tandis que la primaire servira
manipuler les donnes et les programme prsentement en utilisation. Avec cette architecture deux
niveaux, le contrle de lchange dinformation entre les mmoires primaire et secondaire est
primordiale. La responsabilit de ce contrle pourrait tre assign au programmeur, mais ceci est
presque impossible pour deux raisons.

La mmoire

24

1. La mmoire disponible pour un programme et ses donnes peut ne pas tre suffisante. Le
programmeur devra alors utiliser la mthode overlaying. Cela permet de partager les mme espace
mmoire pour diffrents modules du programme et des donnes. Un programme principale est alors
en charge de grer le chargement/d-chargement des modules. Cette mthode est une perte de temps
pour le programmeur
2. Dans un environnement multiprogramm, le programmeur ne sait pas lavance, combien despace
sera disponible et o elle sera localise.
Cest pour ces raisons que nous laissons le systme grer linformation changer entre les deux niveaux
de mmoire.

1.8.2

Partitionnement de la mmoire

La tche principale de la gestion de la mmoire est de charger des programmes en mmoire pour quils
soient excut par la CPU. De nos jours, dans tous nos systmes nous parlons de la mmoire virtuelle.
Cette mthode est base sur deux principes de gestions, la SEGMENTATION et la PAGINATION.
Mais avant de discuter de la mmoire virtuelle et de sa gestion, nous allons parler de techniques plus
simples. Lune de ces techniques, le partitionnement, a t utilise sous plusieurs formes. Les deux
autres techniques de base, pagination simple et segmentation simple ne sont pas utilises sous cette
forme. Cependant, nous nous en servirons titre dexemples sans prendre en considration la mmoire
virtuelle en tant que telle.

1.8.2.1 Partitionnement fixe (statique)


Dans toutes les mthodes de gestion de la mmoire, nous pouvons assumer que les OS occupent une
partie fixe de la mmoire principale et que le reste de la mmoire est disponible. Le mthode la plus
simpliste est le partitionnement fixe. Il peut exist sous 2 formats, des partitions de mme grandeur ou
de grandeur diffrente.
Si un programme est que la grandeur des partitions il sera charg dans une des partitions disponibles.
Si on veux charger un autre programme en mmoire, mais quaucune place nest disponible, nous
devrons alors transfrer un programme afin de permettre de charge le nouveau.
De plus, si un programme est plus gros que la grandeur des partitions de la mmoire le programmeur
devra utiliser la mthode overlaying. Tous les programmes charg en mmoire, mme ceux qui sont plus
petits que la grandeur dune partition, utilisent lespace totale de la partition, ce qui cause de la
fragmentation interne.
Nous pouvons diminuer limpact de ces 2 problmes en implantant des partitions de grandeurs
diffrentes. La figure 14 nous montre un partitionnement qui vas jusqu' 16 MB.

La mmoire

25

Figure 14 : Exemple de partitions fixes

1.8.2.2 Algorithme de placement


Lorsquun nouveau programme est prt tre charger en mmoire le systme doit alors dcider dans
quelle partition il va pouvoir le charger. Dans le cas dun partitionnement de dimension gale (fig. 14a),
il va choisir un des programmes qui nest plus en mode actif et le remplacer, tant donn que la
dimension du programme ou de la partition na pas dinfluence sur le choix. Dans le cas de partition de
dimensions diffrentes, plusieurs possibilits soffrent au systme. Nous allons voir que deux mthodes
existent : une file par partition ou une file pour tous les partitions.
Si nous avons une file par partition, le choix de la partition se fera avant mme de vrifier la
disponibilit. Le systme va choisir la partition qui se rapproche le plus du programme et mettre le
programme en attente dans la file de cette partition. Le dsavantage est que mme sil reste encore
dautres partitions non utilises, le systme ne va pas les utiliser. Si, en revanche, nous avons une file
pour toutes les partitions, le systme va essayer de charger le programme dans la partition libre la plus
petite. Si toutes les partitions sont prises, une dcision sera alors prise sur quel programme devra tre
dcharg.

La mmoire

26

Figure 15 : Algorithme de placement, partition fixe

1.8.2.3 Partitionnement dynamique


Afin de corriger les problmes relis au partitionnement fixe, une autre mthode a t invente. Le
partitionnement dynamique permet davoir un nombre diffrent et de diffrentes dimensions pour
combler les besoins du systme. Quand un programme est charg en mmoire, on lui alloue la quantit
exacte de mmoire dont il a besoin.
Nous pouvons voir la figure 16 (ci-dessous), le processus dallocation dynamique des partitions. Cette
technique utilise un nombre variable de partitions de dimensions variables. Quand un programme est
charg en mmoire, on lui alloue lespace ncessaire. Cette technique nest plus utilise de nos jours.
Elle a t remplace par des techniques plus sophistiques. Lallocation dynamique cause avec le temps
ce quon appelle la fragmentation externe. On peut voir quau fur et mesure que des programme sont
chargs et retirs de la mmoire, il se cre des trous entre les programme. Il a donc t ncessaire de
mettre ne place une technique de compaction (algorithme de ramasse-miettes). Le systme va
dplacer des programmes en mmoire de faon combler les trous entre les programmes de manire
offrir de plus grands espaces continues de mmoire. Notons que la compaction cote beaucoup de temps
processeur.

La mmoire

27

Figure 16 : Partionnement dynamique

<

1.8.2.4 Algorithme de placement


tant donne que la compaction de la mmoire nous faire perdre beaucoup de temps CPU, il est donc
important dimplanter de bon algorithmes de placement afin de bien remplir les trous. Nous allons voir
trois mthodes :
1. Best-Fit (meilleur place)
2. First-Fit (premire place)
3. Next-Fit (prochaine place).
La meilleure place choisi lespace disponible qui a la dimension la plus proche du programme charger.
Le premire place, commence vrifier la mmoire en partant den haut et va placer le programme dans
la premire espace qui peut recevoir le programme, sans se soucier de lespace perdu. La prochaine
place commence vrifier la mmoire partir du dernier programme plac et va allouer la prochaine

La mmoire

28

espace qui peut recevoir le programme charger. La figure 17, nous montre lapplication des 3
mthodes.

Figure 17 : Algorithme de placement, partition dynamique

La mmoire

29

Question : Laquelle de ces trois mthodes est la meilleure ?


Rponse : Tout dpend de lordre dans lequel les programmes sont chargs et dchargs. On peut
cependant dire que le First-Fit est non seulement le plus simple implanter, il est aussi le meilleur et le
plus rapide. Le next-fit va frquemment allouer la mmoire la fin de la mmoire. La plus grosse partie
de lespace mmoire qui est libre est normalement la fin de la mmoire physique, qui va donc tre
rapidement fractionne en petites parties, on aura donc besoin de compacter souvent la mmoire. Le
Best-fit, contrairement se que son nom veut dire est la pire des mthodes. En utilisant cette mthode
nous allons nous retrouver avec plein de petites espaces, toutes trop petites pour recevoir des
programmes et nous devrons compacter la mmoire beaucoup plus souvent.
1.8.2.5 Le Buddy System
Voici un bon compromis entre les avantages et dsavantages du partitionnement fixe et dynamique.
Cette mthode considre que la mmoire est un bloc dune grandeur de 2U. Lorsquune requte
dallocation est faite, le systme vrifie la grandeur et alloue lespace disponible ou la divise en deux
parties gales. Lorsque les blocs se librent ils vont tre regroups pour redevenir un seul bloc.
Lalgorithme est comme suit :

Dbuter avec un seul block de taille 2U

Sur une requte pour un block de taille S


1. si 2 u 1 < S 2 u alors allouer le block entier de taille 2U
2. Sinon partager ce block deux compagnons (buddies), chacun de taille 2U-1
3. Si 2 u 2 < S 2 u 1 alors allouer un des deux buddies
4. Sinon diviser diviser un des deux buddies

Le processus est rpt jusqu ce que le plus petit block pouvant contenir S soit gnr.

Deux compagnons sont fusionns lorsquils deviennent tous les deux non alloues.

Voyons cela sur un exemple.

La mmoire

30

Figure 18 : Buddy System

1.8.3

Pagination

Comme nous venons de voir les techniques de partitionnement fixes ou variables ne grent pas
efficacement la mmoire, ils causent des problmes de fragmentation internes ou externes. Nous allons
voir maintenant une mthode qui en plus de fractionner la mmoire en petits blocs gales(frames), va
fractionner les programmes en petits blocs (pages) de mme dimension que les partitions de la mmoire.
Le terme frames (cadre en franais) est utilis car un cadre va tenir une page dinformation. Nous
verrons que grce cette mthode, la fragmentation externe est compltement limine. La seule
fragmentation interne sera cause par la dernire page du programme qui peut tre plus petite quun
cadre. Afin de rendre lutilisation plus pratique, nous allons aussi fixer la grandeur des pages un
nombre gale une puissance de 2. En utilisant cette mthode nous rendons transparent la pagination
aux programmeurs car ladresse relative est la mme que ladresse absolue.

La mmoire

31

Figure 19 : Allocation l'aide de la pagination

Nous pouvons voir dans cet exemple le processus dallocation de la mmoire. On peut voir la figure
ci-dessus que mme sil ne reste pas despace continu, on peut charger un programme sans faire de
compactage des autres programmes. Nous aurons cependant besoin dune table pour pouvoir retrouver
les adresses de chaque partie de notre programme. On peut voir la figure 20 la table des pages au
temps (f). On peut y voir aussi une liste des frames qui sont disponibles.

Figure 20 : Tables des pages de la figure 19

La mmoire

32

Il existe 2 types de pagination:


- un niveau
- plusieurs niveaux (utilise lorsque l'espace virtuel est trs suprieur l'espace rel).

1. Pagination 1 niveau
Une adresse (relle ou virtuelle) peut tre scinde en un numro de page et un dplacement dans la

page. Le dplacement est invariant puisqu'il dsigne le rang d'un mot par rapport au dbut de la page
(qui est toujours charge d'un seul tenant). Il n'interviendra donc pas dans la transformation d'adresse.

adresse
relle

n de page

dplacement

R-k bits

k bits

pour un espace rel de 2R mots et des pages de 2k mots

adresse
virtuelle

n de page
V-k bits

dplacement
k bits

pour des espaces virtuels de 2V mots et des pages de 2k mots.


Le nombre de pages relles et virtuelles est connu la gnration du systme: la fonction

topographique sera ralise par une table appele table des pages. L'implantation de cette table des
pages sera faite en MC ou dans des registres rapides car elle sera consulte frquemment (lors de
l'excution de chaque instruction rfrence mmoire).

La mmoire

33

Table des pages


adresse virtuelle

n PV dplacement

0
1
2

1
2
page relle

n PR
V-1
nPR dplacement
adresse relle

infos
complmentaires

R-1
Mmoire Centrale

Informations pouvant se trouver dans une entre de la table des pages, outre le numro de page relle:
- bit de prsence (ou d'invalidit) I: positionn, il indique que la page virtuelle rfrence n'est
pas charge en MC d'o un droutement pour dfaut de page. C'est le premier lment test par le
mcanisme de traduction automatique d'adresse.
- bit d'criture E: positionn, ce bit indique que la page a t modifie par une ou plusieurs
oprations d'criture; dans ce cas, la page doit tre recopie sur le disque lors d'un remplacement
ventuel.
- bit de rfrence R: ce bit peut avoir une utilit pour connatre les pages rfrences (et donc
susceptibles de l'tre nouveau) et celles qui ne l'ont pas t (qu'on peut donc choisir comme victime
lors d'un remplacement).
- verrou d'accs V: donne les accs permis dans la page.
exemple: verrou d'accs (2 bits) associ une page:
00: tout accs permis
01: criture interdite (lecture et excution permises)
10: lecture seulement
11: aucun accs permis
La proprit de localit doit limiter le nombre de consultations de la table des pages. La proprit de
localit est une caractristique importante de l'excution des programmes en gnral. En effet la quasitotalit des programmes contiennent des boucles d'itrations et/ou utilisent des variables structures tels

La mmoire

34

les vecteurs ou les matrices; et si l'on voit un processus comme une suite de rfrences des instructions
ou des donnes dans un espace adressable linaire (mmoire virtuelle), on constate que la distribution
des rfrences aux pages mmoire n'est pas uniforme: pendant un intervalle de temps T non ngligeable,
les rfrences portent sur les mmes pages.
Cette proprit peut tre mise en dfaut par certains programmes (plutt rares) qui n'utilisent que des
listes chanes (dynamiques) dont les lments sont disperss dans la mmoire d'allocation dynamique.
La consultation de la table des pages peut provoquer un droutement pour dfaut de page. Le traitement
de ce droutement se fera ainsi:
- Chercher une page libre en MC en consultant la table d'allocation des pages relles,

- Si pas de page libre alors faire une rquisition suivant un algorithme de remplacement.
2. Traitement des dfauts de pages
La consultation de la table des pages peut provoquer un droutement pour dfaut de page. Le traitement
de ce droutement se fait ainsi:
- Chercher une page libre en MC en consultant la table d'allocation des pages relles
- Si pas de page libre Alors faire une rquisition suivant un algorithme de remplacement
- Mise jour de la table des pages et des registres associatifs
- Branchement l'instruction qui a provoqu le droutement.

3. Les algorithmes de remplacement


Diffrents critres peuvent tre utiliss pour dterminer la page rquisitionner pour un remplacement;
c'est ce qui diffrencie ces algorithmes.

Random: choisir la page remplacer (victime) au hasard.


FIFO: remplacer la plus anciennement charge (ncessit de mmoriser l'ordre de chargement des
pages).

NRU (Not Recently Used): remplacer une page non rcemment rfrence; cet algorithme utilise les bits
de rfrence R et d'criture E de la table des pages. Priodiquement, toutes les 20 ou 30 ms par exemple,
le bit de rfrence de toutes les pages est remis 0. La victime sera la premire page trouve ayant la
plus petite valeur (0 3) donne par les bits RE :
00 = page non rcemment rfrence et non modifie,
01 = modifie et non rcemment rfrence,
10 = non modifie mais rcemment rfrence,
11 = modifie et rcemment rfrence.

La mmoire

35

LRU (Least Recently Used): remplacer la moins rcemment rfrence (ncessit de mmoriser l'instant
de la dernire rfrence pour chaque page relle). Pratiquement, il serait trs coteux d'associer un
registre 32 bits chaque page et qui serait mis jour chaque rfrence la page.

LFU (Least Frequently Used): remplacer la moins frquemment rfrence (ncessit de mmoriser le
nombre de rfrences chaque page relle).

1.9.

Les modes d'adressage.

Nous avons vu dans la dernire section que les programmes qui sont chargs en mmoire le sont dune
manire un peu alatoire au niveau de leurs adresses, ce qui rend impossible pour les programmeurs de
coder les rfrences des saut (if, goto) ou aux donnes directement dans les programmes. Pour ce
faire, le systme doit pouvoir grer ladressage lui-mme. Nous allons faire la distinction entre diffrents
types dadressage.
Ladresse relative est un type dadresse logique, ladresse est exprime en fonction (relativement) dun
point connu. Ladresse physique ou encore absolue, est ladresse actuelle en mmoire.

1.9.1

Adressage relative

Figure 21 : Adressage Relative.

La mmoire

36

1.9.1.1 Registre ncessaire ladressage relative


Les registres ncessaires pour ladressage relative sont le registre de base (base register) et le registre de
frontire (bounds register). Le registre de base nous donne ladresse de dbut o le programme est
emmagasin et le registre de frontire nous donne la fin de lespace allou. Ces valeurs sont dcides
lorsque le programme est charg en mmoire.
Pour gnrer ladresse, nous additionnons ladresse contenue dans le registre de base une adresse
relative pour nous donner ladresse absolue. Cette adresse est maintenant compare la valeur limite
(frontire) et si celle-ci dpasse la limite fixe par le systme un message derreur est gnr et le
programme est interrompu.

1.9.2

Segmentation

Encore une fois, on spare le programme en petite partie appele segment. Ces segments non pas tre
de la mme taille, il existe cependant une taille maximum la longueur dun segment.
Comme pour la pagination une adresse sera constitu de 2 parties; un numro de segment et un
dplacement (offset). tant donn que les segments ne sont pas ncessairement de mme longueur, la
segmentation est semblable au partitionnement dynamique. Il existe une diffrence majeure entre les 2 :
avec la segmentation un programme peut occuper plus dune partition et ces partitions nont pas tre
continues.
La segmentation limine ainsi la fragmentation interne mais cause de la fragmentation externe, quoique
tant donn que nous pouvons dcouper les programmes en petits segments elle devrait tre moindre.

1.10. Pagination VS Segmentation


Contrairement la pagination qui est invisible pour le programmeur, la segmentation procure un outil
pour la gestion des programmes et des donnes. Normalement le programmeur ou le compilateur va
assigner les donnes et les programmes des segments diffrents. Un autre consquence des segments
ingaux est le manque de relation simple entre ladresse physique et relative
Nous allons voir ici le processus de dcodage de la pagination et de la segmentation.

Exemple 49 :
Pour notre exemple, nous allons utiliser une adresse de 16 bits et des pages de 1024 bytes (1K). Si
ladresse relative est 1502 ou 0000010111011110 en binaire. Nous avons besoin de 10 bits pour le
dplacement avec une grandeur de pages de 1K, ce qui nous laisse 6 bits pour le nombre de pages. Nous
pouvons donc avoir 26 ou 64 pages de 1K. La figure 53b nous montre que ladresse relative de 1502
correspond a un dplacement de 478 (0111011110) la page 1 (000001). On peut voir ici que
lutilisation dune grandeur de page de 1024 K soit une puissance de 2 nous donne une adresse absolue
qui est la mme que ladresse relative.
En se servant du mme nombre 1502, si nous utilisons 4 bytes pour le segment et 12 bytes pour le
dplacement, nous aurons alors le premier segment avec un dplacement de 752. Cela nous donne aussi
une grandeur de segment maximum de 212 = 4096.

La mmoire

37

Figure 22:Adresse logique

Exemple 50 :
Continuons avec notre exemple. Pour la pagination, si nous savons que la page numro 1 rside en
mmoire au cadre 6 (000110), nous aurons alors physique de 0001100111011110 dmontr la figure
54a.
Alors que pour la segmentation, supposons que le segment 1 rside en mmoire ladresse physique
0010000000100000. Alors ladresse physique sera 0010000000100000 + 001011110000 =
0010001100010000 figure 54b.

La mmoire

Figure 23 : Adresse logique vers adresse physique

38

La mmoire

39