Sunteți pe pagina 1din 35

ASI Chapitre 1 : Introduction 1

1. Introduction
ARCHITECTURE DES
SYSTMES INFORMATIQUES
1.1 Informatique / ASI ?
Michel MEYNARD
Une dfinition de l'informatique :
science et techniques du traitement de
linformation
3 Parties :
Architecture ; - discipline scientifique :
Assembleur ; - fortement lie au mathmatiques
Systmes dexploitation. historiquement et conceptuellement ;
- thorie des graphes, modlisation, maths discrtes,
algorithmique, calculabilit, complexit ;
Architecture :
analyse de la structure des ordinateurs et du - discipline technologique :
logiciel de base. - matriel : fortement lie llectronique,
architecture des ordinateurs, volution des
Assembleur : composants (SSI VLSI), multiprocesseurs ;
tude prcise d'un langage d'assemblage : - logiciel : art de la programmation, ateliers de
instructions, structures de contrle et de donnes. gnie logiciel, programmation oriente objet,
parallle, systmes dexploitation.
Systmes dexploitation :
systmes de fichiers et gestion des processus. Objectif du cours :
acqurir une vision cohrente de larchitecture
matrielle et logicielle des machines
informatiques traitant et stockant linformation.

ASI Chapitre 1 : Introduction 2 ASI Chapitre 1 : Introduction 3

1.2 Principe de dcomposition 1.2.1 Organisation multi-niveaux

Architecture multi-niveaux (ou couches) Le principe conceptuel du dcoupage en plusieurs


Afin damliorer les performances, et en raison des couches de complexits croissantes est
impratifs technologiques, le jeu dinstructions des omniprsent en informatique.
machines relles est limit et primitif. On
construit donc au-dessus, une srie de couches
logicielles permettant l'homme un dialogue plus Exemples :
ais.
- Les systmes informatiques (matriel + logiciel).
Machine virtuelle Mn
niveau n - La conception des systmes d'exploitation (noyau
Langage Ln
et couches Unix)

- Les rseaux informatiques : les 7 couches de la


Machine virtuelle M3 norme Open System Interconnection de l'ISO
niveau 3 - Les mthodes de conception de systmes
Langage L3
d'information (mthode Merise)
Machine virtuelle M2
niveau 2
Langage L2
- Les compilateurs (code source, intermdiaire,
Machine virtuelle M1 objet)
niveau 1
Langage L1
- Les Types Abstraits de Donnes et les langages
Les programmes en Li sont : Orients-Objet
soit traduits (compils) en Li-1 ou Li-2 ou L1,
soit interprts par un interprteur tournant - Les systmes transactionnels multi-niveaux
sur Li-1 ou Li-2 ou L1 - ...
ASI Chapitre 1 : Introduction 4 ASI Chapitre 1 : Introduction 5

1.2.2 Dcomposition des SI


1.3 Matriel et Logiciel
niveau 5 Couche des langages d'application Matriel (Hardware)
Traduction (Compilation) Ensemble des composants mcaniques et
lectroniques de la machine : processeur(s),
niveau 4 Couche du langage d'assemblage mmoires, priphriques, bus de liaison,
Traduction (Assemblage) alimentation
Soft
niveau 3 Couche du Systme d'Exploitation
Interprtation partielle appels syst. Logiciel (Software)
Ensemble des programmes, de quelque niveau que
niveau 2 Couche machine traditionnelle ce soit, excutables par un ou plusieurs niveaux de
Interprtation (microprogramme) l'ordinateur. Un programme = mot d'un langage.
Hard Le logiciel est immatriel mme s'il peut tre
niveau 1 Couche microprogramme stock physiquement sur des supports mmoires.
Execution par le matriel

niveau 0 Couche physique


Matriel et Logiciel sont conceptuellement
niveaux composant (lectronique) puis atomique (physique solide) quivalents

Vocabulaire : niveau ou langage ou machine Toute opration effectue par logiciel peut l'tre
directement par matriel et toute instruction
- 0 portes logiques, circuits combinatoires, mmoire ; excute par matriel peut tre simule par
- 1 une instruction machine (code binaire) interprte par son logiciel.
microprogramme ;
- 2 suite d'instructions machines du jeu d'instructions
- 3 niveau 2 + ensemble des services offerts par le S.E. (appels
systmes) ; Le choix est facteur du cot de ralisation, de la
- 4 langage dassemblage symbolique traduit en 3 par le
programme assembleur ;
vitesse d'excution, de la fiabilit requise, de
- 5 langages volus (de haut niveau) traduits en 3 par l'volution prvue (maintenance), du dlai de
compilateurs ou alors interprts par des programmes de ralisation du matriel
niveau 3.

ASI Chapitre 1 : Introduction 6 ASI Chapitre 1 : Introduction 7

Exemples de rpartition matriel/logiciel

- premiers ordinateurs : multiplication, division, 1.4 Plan du cours darchitecture


manip. de chanes, commutation de processus
par logiciel : actuellement descendus au niveau
matriel ; 1. Introduction
- l'inverse, l'apparition des processeurs micro-
programms fait remonter d'un niveau les 2. Reprsentation des donnes
instructions machines ; 3. Structure des ordinateurs
- les processeurs RISC jeu d'instructions rduit
ont galement favoris la migration vers le 4. La Couche Physique
haut ; 5. La Couche Microprogramme
- machines spcialises (Lisp, bases de donnes) ;
- Conception Assiste par Ordinateur : 6. La Couche Machine
prototypage de circuits lectroniques par
7. Perspectives et Conclusion
logiciel ;
- dveloppement de logiciels destins une
Bibliographie
machine matrielle inexistante par simulation
(contrainte conomique fondamentale).
[Cazes 2003] Architecture des machines et des
La frontire entre logiciel et matriel est trs systmes informatiques, Dunod
mouvante et dpend fortement de l'volution
[Tanenbaum 1988] Architecture de lordinateur,
technologique (de mme pour les frontires entre
InterEditions
niveaux).
[De Blasi 1990] Computer Architecture, Addison-
A chaque niveau, le programmeur communique Wesley
avec une machine virtuelle sans se soucier des
niveaux infrieurs. [Krakowiak 1982] Logiciel de base, Universit de
Grenoble
ASI Chapitre 2 : Reprsentation de linformation 8 ASI Chapitre 2 : Reprsentation de linformation 9

2. Reprsentation de Poids fort et faible


linformation La longueur des mots tant la plupart du temps
paire (n=2p), on parle de demi-mot de poids fort
(ou le plus significatif) pour les p bits de gauche et
de demi-mot de poids faible (ou le moins
2.1 Introduction significatif) pour les p bits de droite.

La technologie passe et actuelle a consacre les


circuits mmoires (lectroniques et magntiques) Exemple : mot de 16 bits
permettant de stocker des donnes sous forme
binaire. b15 b14 b8 b7 b0
octet le plus significatif octet le moins signif.
Remarque : Most Signifant Byte Least Significant Byte
des chercheurs ont tudi et continuent d'tudier
des circuits ternaires et mme dcimaux

le bit : Units multiples


abrviation de binary digit, le bit constitue la plus Ces mots sont eux-mmes groups et on utilise
petite unit d'information et vaut soit 0, soit 1. frquemment les units multiples de l'octet
suivantes :
les bits sont gnralement stocks
squentiellement et sont conventionnellement 1 Kilo-octet = 210 octets = 1024 octets not 1 Ko
numrots de la faon suivante :
1 Mga-octet = 220 octets = 1 048 576 octets not 1 Mo
bn-1 bn-2 b2 b1 b0
1 0 0 1 1 1 Giga-octet = 230 octets 109 octets not 1 Go

On regroupe ces bits par paquets de n qu'on 1 Tra-octet = 240 octets 1012 octets not 1 To
appelle des quartets (n=4), des octets (n=8)
byte , ou plus gnralement des mots de n bits
word .

ASI Chapitre 2 : Reprsentation de linformation 10 ASI Chapitre 2 : Reprsentation de linformation 11

2.2.2 Reprsentation en base 2p


2.2 Reprsentation des entiers positifs
La reprsentation d'un entier x en base 2,
2.2.1 Reprsentation en base 2 bn-1bn-2b0, est lourde en criture. Aussi lui
prfre-t-on une reprsentation plus compacte en
base 2p. On obtient cette reprsentation en
Un mot de n bits permet de reprsenter 2n
dcoupant le mot bn-1bn-2b0 en tranches de p bits
configurations diffrentes. En base 2, ces 2n
partir de la droite (la dernire tranche est
configurations sont associes aux entiers positifs x
complte par des 0 gauche si n n'est pas
compris dans l'intervalle [0, 2n-1] de la faon
multiple de p). Chacune des tranches obtenues est
suivante :
la reprsentation en base 2 d'un chiffre de x
reprsent en base 2p.
x = bn-1 * 2n-1 + bn-2 * 2n-2 + + b1 * 2 + b0
Usuellement, p=3 (reprsentation octale) ou p=4
Ainsi, un quartet permet de reprsenter
(reprsentation hexadcimale).
l'intervalle [0, 15], un octet [0, 255], un mot de 16
bits [0, 65535].
En reprsentation hexadcimale, les valeurs 10
15 sont reprsentes par les symboles A F.
Exemples :
Gnralement, on suffixe le nombre hexa par un
000 reprsente 0
H. De plus, on le prfixe par un 0 lorsque le
000001 reprsente 1
symbole le plus gauche est une lettre.
0000 0111 reprsente 7 (4+2+1)
0110 0000 reprsente 96 (64+32)
Exemples :
1111 1110 reprsente 254 (128+64+32+16+8+4+2)
x=200 et n=8
0000 0001 0000 0001 reprsente 257 (256+1)
en binaire : 11 001 000 (128+64+8)
10000 reprsente 2n-1
en octal : 3 1 0 (3*64+8)
11111 reprsente 2n-1
en hexadcimal : C 8 (12*16+8) : 0C8H
Par la suite, cette convention sera note
Reprsentation Binaire Non Signe (RBNS).
ASI Chapitre 2 : Reprsentation de linformation 12 ASI Chapitre 2 : Reprsentation de linformation 13

2.2.3 Oprations
2.3 Reprsentation des entiers relatifs
Les oprations arithmtiques +, -, /, * et de
comparaison < , >, = sur les nombres binaires Quatre faons d'utiliser les nombres ngatifs en
reprsentables sur machine sont des machine ont t employes. Actuellement et en
prolongements des oprations usuelles sur N ou pratique, la mthode du "complment 2" est la
sur Z. Cependant, des dpassements de capacit plus utilise.
surviennent sur les intervalles considrs
2.3.1 La valeur absolue signe
Addition binaire sur n bits
L'addition binaire de 2 mots de n bits est ralise
Dans cette reprsentation, le bit de poids n-1
en ajoutant successivement de droite gauche les
indique le signe (0 positif, 1 ngatif) tandis
bits de mme poids des deux mots ainsi que la
que les bits n-2 ... 0 reprsentent la valeur absolue
retenue ventuelle de l'addition prcdente. En
de l'entier ngatif dans la Reprsentation Binaire
binaire non sign, la dernire retenue ou report
Non Signe (RBNS).
(carry), reprsente le coefficient de poids 2n et est
donc synonyme de dpassement de capacit. Cet
Intervalle de dfinition : [-2n-1+1, 2n-1-1]
indicateur de Carry est situ dans le registre
d'tat du processeur.
Exemples sur un octet :
exemple sur 8 bits : 3 0000 0011 -3 1000 0011
1 1 1 1 1
127 0111 1111 -127 1111 1111
1 1 1 0 0 1 0 1 0 E5H
0 0000 0000 -0 1000 0000
+ 1 0 0 0 1 0 1 1 + 8BH
---------------------------------- ---------
Inconvnients :
(1) 0 1 1 1 0 0 0 0 170H 36810 > 255
- 2 reprsentations distinctes de 0
Pour les autres oprations, on va tout d'abord - oprations arithmtiques peu aises :
dfinir une reprsentation des entiers ngatifs. 3 + -3 = -6 !

ASI Chapitre 2 : Reprsentation de linformation 14 ASI Chapitre 2 : Reprsentation de linformation 15

2.3.2 Le complment 1 (C1) 2.3.3 Le complment 2 (C2)


(ou complment restreint) En C2 les entiers positifs sont en RBNS tandis que
les ngatifs sont obtenus par inversion de leur
Dans cette reprsentation, les entiers positifs sont valeur absolue (C1) puis addition binaire de 1. Ici
en RBNS tandis qu'un ngatif -|x| est obtenu par encore, le bit de poids n-1 indique le signe (0
inversion de tous les bits de la RBNS de |x|. Ici positif, 1 ngatif).
encore, le bit de poids n-1 indique le signe (0 Une autre faon d'obtenir le C2 d'un entier relatif
positif, 1 ngatif). x consiste crire la RBNS de la somme de x et de
2n.
Intervalle de dfinition : [-2n-1+1, 2n-1-1]
Intervalle de dfinition : [-2n-1, 2n-1-1]
Exemples sur un octet :
3 0000 0011 -3 1111 1100 Exemples sur un octet [-128, +127] :
127 0111 1111 -127 1000 0000 3 0000 0011 -3 1111 1101
0 0000 0000 0 1111 1111 127 0111 1111 -127 1000 0001
0 0000 0000 -128 1000 0000
Inconvnients :
2 reprsentations distinctes de 0 Inconvnient :
oprations arithmtiques peu aises : 3 + -3 = 0 Intervalle des ngatifs non symtrique des
(1111 1111) mais 4 + -3 = 0 (000) ! positifs ;
Le C2 de -128 est -128 !
Le second problme est rsolu si l'on ajoute 1
lorsqu'on additionne un positif et un ngatif : Avantage fondamental :
3+1+ -3=0 (000) et 4 +1+ -3=1 (0001) l'addition binaire fonctionne correctement !
-3+3=0 : 1111 1101+0000 0011=(1) 0000 0000
D'o l'ide de la reprsentation en Complment 2. -3 + -3 = -6 : 1111 1101+1111 1101=(1) 1111 1010

Remarquons ici que le positionnement du Carry


1 n'indique pas un dpassement de capacit !
ASI Chapitre 2 : Reprsentation de linformation 16 ASI Chapitre 2 : Reprsentation de linformation 17

Dpassement de capacit en C2 2.3.4 L'excdent 2n-1


127+127=-2 : 0111 1111+0111 1111=(0) 1111 1110
Dans cette reprsentation, l'ensemble des nombres
-128+-128=0 : 1000 0000+1000 0000=(1) 0000 0000
reprsentables est le mme qu'en C2. Tout nombre
-127+-128=1 : 1000 0001+1000 0000=(1) 0000 0001
x de cet ensemble est reprsent par x+2n-1 en
RBNS. Attention, le bit de poids n-1 indique le
Lors de la 1 addition, la somme de deux grands
signe (0 ngatif, 1 positif).
positifs aboutit un rsultat ngatif (retenue
entrante sur le bit 7) et le Carry n'est pas
L'excdent 2n-1 se dduit du C2 en inversant le
positionn (pas de retenue sortante du bit 7). Dans
bit de signe !
les deux autres exemples, la somme de deux
grands ngatifs donne un positif (retenue sortante
Intervalle de dfinition : [-2n-1, 2n-1-1]
du bit 7, Carry=1, mais pas de retenue entrante).
Exemples sur un octet :
La condition pour qu'une addition de deux
3 1000 0011 -3 0111 1101
entiers relatifs en C2 sur n bits soit correcte
127 1111 1111 -127 0000 0001
est que les retenues entrante et sortantes du
0 1000 0000 -128 0000 0000
bit n-1 soient identiques.
Avantage :
La plupart des processeurs possdent un
- reprsentation uniforme des entiers relatifs
indicateur d'Overflow (dpassement de capacit)
dans leur registre d'tat qui permet au
Inconvnients :
programmeur de tester l'incorrection d'une
- reprsentation des positifs diffrente de la RBNS
opration en C2.
- oprations arithmtiques peu aises 3+-3 =-128 !
Overflow = Carry XOR Retenuen-2 n-1

Remarquons que l'addition d'un positif et d'un


ngatif ne peut jamais donner lieu overflow.

ASI Chapitre 2 : Reprsentation de linformation 18 ASI Chapitre 2 : Reprsentation de linformation 19

2.3.5 Oprations en RBNS et C2 2.3.5.3 Multiplication et Division

La multiplication x*y peut tre ralise par y


Le C2 tant la reprsentation la plus utilise, nous additions successives de x tandis que la division
allons tudier les oprations arithmtiques en non peut tre obtenue par soustractions successives et
sign et en C2. incrmentation d'un compteur tant que le
dividende est suprieur 0 (pas efficace).
2.3.5.1 Addition
Cependant, la plupart des processeurs fournissent
Rappelons qu'en RBNS et en C2, l'addition binaire
des instructions MUL et DIV directement cbles
(ADD ralise par toutes les UAL de processeur)
et efficaces.
donne un rsultat cohrent tant que celui-ci reste
dans l'intervalle reprsent ([0, 2n-1] et [-2n-1, 2n-1-
Cas particulier
1])
Lorsqu'une multiplication ou une division a
En RBNS, le dpassement de capacit est signal comme oprande 2n, on peut la simuler par
par le positionnement 1 du Carry tandis qu'en dcalage (Shift) gauche ou droite de n positions
C2, c'est l'indicateur d'Overflow qui est mis 1. de l'autre oprande.

2.3.5.2 Soustraction Exemples :


13*8 : 0000 1101 dcal 3 fois gauche :
La soustraction x-y pourrait tre ralise par 0110 1000 cest--dire 104 ;
inversion du signe de y puis addition avec x (sauf 126/16 : 0111 1110 dcal 4 fois droite :
pour -128). L'inversion de signe (en C2) est 0000 0111 cest--dire 7.
gnralement fournie par le matriel (NEG).
Exemple : R1 := 5 - 8 En C2, il faut galement rintroduire le bit de
R1 := 5; R2 := 8; NEG R2; ADD R1,R2 signe lors du dcalage. Des instructions de
dcalage arithmtique sont gnralement fournies
L'instruction de soustraction SUB est par le processeur.
gnralement cble par le matriel.
ASI Chapitre 2 : Reprsentation de linformation 20 ASI Chapitre 2 : Reprsentation de linformation 21

Codage DCB des nombres virgule


2.4 Reprsentation des dcimaux
Une suite d'octets permet de coder un nombre
dcimal sign comme suit :
On s'intresse ici la catgorie des nombres
- 1 octet d'en-tte donne (en RBNS) le nombre
dcimaux, D, et non pas des rels, R. Les types de
total n de quartets utiliss.
donnes real sont trompeurs : pour s'en
- 1 octet spcifie la position (en RBNS) de la
convaincre, il suffit sur de nombreux calculateurs
virgule.
numriques non symboliques d'excuter
- 1 quartet indique le signe du nombre (0H:+;
l'opration 1/3 puis de multiplier par 3 le rsultat.
0FH:-).
- n quartets reprsentant les chiffres en DCB.
2.4.1 Dcimal Cod Binaire BCD
Exemple :
Utilis principalement en comptabilit pour sa 0000 0011 0000 0010 0000 0010 0010 0001
prcision, ce codage utilise un quartet pour chaque 3 2 + 2 2 1
chiffre dcimal :
0 0000; 1 0001; 2 0010; ; 9 1001 reprsente le nombre 2,21

Les quartets de code hexa 0AH 0FH sont Inconvnients


inutiliss. Chaque octet permet donc de stocker - format de longueur variable
100 combinaisons diffrentes reprsentant les - taille mmoire utilise importante
entiers de 0 99. - oprations arithmtique lentes : Ajustements
ncessaires
Les oprations de l'arithmtique binaire sur ces - dcalage des nombres ncessaires avant
entiers provoque des incohrences de oprations pour faire coincider la virgule.
reprsentation dans certaines situations :
33+58 : 0011 0011 + 0101 1000 = 1000 1011 =8BH Avantage
- Rsultats absolument corrects : pas d'erreurs de
Aussi, les processeurs possdent des instructions troncatures ou de prcision d'o son utilisation
spcialises d'ajustement des rsultats excuter en comptabilit.
la suite d'oprations binaires sur des oprandes
DCB. Ici, il faut rajouter 06H au rsultat !

ASI Chapitre 2 : Reprsentation de linformation 22 ASI Chapitre 2 : Reprsentation de linformation 23

2.4.2 Virgule flottante Remarques :


20 = 1 m < 21 = 2
Les puissances ngatives de 2 sont : 0,5; 0,25;
On exprime gnralement les nombres dcimaux
0,125; 0,0625; 0,03125; 0,015625; 0,0078125;
l'aide de la notation scientifique en virgule flottante :
La plupart des nombres partie dcimale finie
n'ont pas de reprsentation binaire finie : (0,1;
0,2; ).
x=m*be Par contre, tous les nombres finis en virgule
flottante en base 2 s'expriment de faon finie en
dcimal car 10 est multiple de 2.
o m est la mantisse, b la base et e l'exposant. Rflchir la reprsentation en base 3.
Exemple : Il faut bien comprendre que cette reprsentation binaire
pi = 0,0314159*102 = 31,4159*10-1=3,14159 en virgule flottante, quel que soit le nombre de bits de
mantisse et d'exposant, ne fait qu'approcher la plupart
des nombres dcimaux. Et cela, avant quelqu'opration
Il existe une reprsentation normalise de la que ce soit !
mantisse consistant positionner un seul chiffre
diffrent de 0 gauche de la virgule et tous les Algorithme de conversion de la partie dcimale
autres droite de la virgule. On obtient ainsi : On applique la partie dcimale des
b0 m < b1. multiplications successives par 2, et on range,
chaque itration, la partie entire du produit dans
Exemple : le rsultat.
pi = 3,14159*100
Exemples :
On a la mme forme de reprsentation en virgule 0,375 coder en binaire virgule flottante
flottante mantisse normalise pour le binaire 0,375*2=0,75*2=1,5; 0,5*2=1,0 0,011
(b=2)
0,23*2=0,46*2=0,92*2=1,84*2=1,68*2=1,36*2=0,7
Exemple : 7,2510 111,012 1,1101*22 2*2=1,44*2=0,88
4+2+1+0,25=(1+0,5+0,25+0,0625)*4 0,2310 sur 8 bits de mantisse : 0,00111010
ASI Chapitre 2 : Reprsentation de linformation 24 ASI Chapitre 2 : Reprsentation de linformation 25

2.4.3 Virgule Flottante en machine Exemple :


-5,25 = -101,01 = -1,0101 22
reprsent par : 1 1000 0001 0101 000...
Standardisation :
cest--dire : 0C0 A8 00 00H
portabilit entre machines, langages
reproductibilit des calculs et exactitude
Attention, certains codes spciaux servent
communication de donnes via les rseaux
reprsenter des nombres exceptionnels !
reprsentation de nombres spciaux
0 : e=0H et m=0H (s donne le signe)
procdures darrondi
infini : e=0FFH et m=0H (s donne le signe)
NaN (Not a Number) : e=0FFH et m qcq
dnormaliss : e=0H et m0H ; dans ce cas, il ny
La norme IEEE-754 (1985)
a plus de bit cach et la mantisse doit tre
simple prcision sur 32 bits (float)
dcale dun cran gauche : trs petits nombres
double prcision sur 64 bits (double)
(de 2-149=1.4 10-45 2-126-2-149=1.18 10-38)

En normalis :
Norme IEEE-754 flottants en simple prcision
Plus grande valeur absolue reprsentable
signe : 1 bit (0 : +, 1 : -)
MAX = 2127 * (2-2-23) 3.4 1038
exposant : 8 bits en excdent 127 [-127, 128]
PAS = 2127 * 2-23 2.03 1031
mantisse : 23 bits en RBNS ; normalis sans
soit 7 chiffres significatifs
reprsentation du 1 de gauche ! La mantisse est
arrondie !
Plus petite valeur absolue reprsentable (sauf 0)
soit 4 octets ordonns : signe, exposant, mantisse.
MIN = 2-126 * (1) 1.18 10-38
PAS = 2-126 * 2-23 1.4 10-45
Valeur dun float : (-1)s * 2(e-127) * 1,m
soit 7 chiffres significatifs

Quelques rgles de calcul


Exemple :
33,0 = +100001,0 = +1,00001 25 -0=+0 ; 1/+0=+ ; 1/-0=- ; x/=0 ;
reprsent par : 0 1000 0100 0000 100... NaN=/= 0/0=(-|x|)1/n ; x+=
cest--dire : 42 04 00 00H rgles darrondi extrmement complexes ...

ASI Chapitre 2 : Reprsentation de linformation 26 ASI Chapitre 2 : Reprsentation de linformation 27

Remarques :
2.5 Reprsentation des caractres
Il existe, entre deux nombres reprsentables, un
intervalle de rels non exprimables. La taille de
Symboles
ces intervalles (pas) crot avec la valeur absolue :
alphabtiques,
numriques,
proche et 0 : 2-149=1.4 10-45
de ponctuation et autres (semi-graphiques, ctrl)
proche de : 2124=2.03 1031

Utilisation
Cependant, si l'on exprime la distance entre un entres/sorties
nombre et son "successeur" en pourcentage de ce reprsentation externe (humaine) des
nombre, ce pourcentage reste constant : programmes (sources) et donnes y compris les
donnes numriques
2-149/2-126 = 2-23 1,19 10-7 2104/2127 = 2-23

Ainsi l'erreur relative due l'arrondi de Code ou jeu de car.


reprsentation est approximativement la mme Ensemble de caractres associs aux mots
pour les petits nombres et les grands ! binaires les reprsentant. La quasi-totalit des
codes ont une taille fixe (7 ou 8 ou 16 bits) afin de
faciliter les recherches dans les mmoires
Le nombre de chiffres dcimaux significatifs varie machines.
en fonction du nombre de bits de mantisse, tandis
que ltendue de lintervalle reprsent varie avec ASCII (7) ;
le nombre de bits dexposant : EBCDIC (8) ;
ISO 8859-1 ou ISO Latin-1 (8) ;
UniCode (16) ;
double UTF8 : 1 caractre cod sur 1 4 octets.
1 bit de signe
11 bits dexposant
52 bits de mantisse (16 chiffres significatifs)
ASI Chapitre 2 : Reprsentation de linformation 28 ASI Chapitre 2 : Reprsentation de linformation 29

2.5.1 Jeux de caractres


ASCII
2.5.1.1 Code ASCII
American Standard Code for Information Interchange Hexa MSD 0 1 2 3 4 5 6 7
LSD Bin. 000 001 010 011 100 101 110 111
Ce trs universel code 7 bits fournit 128 0 0000 NUL DLE espace 0 @ P p
caractres (0..127) divis en 2 parties : 32 1 0001 SOH DC1 ! 1 A Q a q
2 0010 STX DC2 " 2 B R b r
caractres de fonction (de contrle) permettant de
3 0011 ETX DC3 # 3 C S c s
commander les priphriques (0..31) et 96 4 0100 EOT DC4 $ 4 D T d t
caractres imprimables (32..127). 5 0101 ENQ NAK % 5 E U e u
Codes de contrle importants : 6 0110 ACK SYN & 6 F V f v
7 0111 BEL ETB ' 7 G W g w
0 Null <CTRL> <@>; 3 End Of Text <CTRL> <c>;
8 1000 BS CAN ( 8 H X h x
4 End Of Transmission <CTRL> <d>; 7 Bell 9 1001 HT EM ) 9 I Y i y
8 Backspace 10 Line Feed 12 Form Feed A 1010 LF SUB * : J Z j z
13 Carriage Return 27 Escape <CTRL> <z> B 1011 VT ESC + ; K [ k {
C 1100 FF FS , < L \ l |
Codes imprimables importants : D 1101 CR GS - = M ] m }
20HEspace; 30H..39H "0".."9"; 41H..5AH "A".."Z" E 1110 SO RS . > N ^ n ~
61H..7AH "a".."z" F 1111 SI US / ? O _ o DEL

Le code ASCII est normalis par le CCITT (Comit


Consultatif International Tlgraphique et
Tlphonique) qui a prvu certaines variantes ISO-8859-1
nationales : {} aux USA donnent en France
Hexa LSD
La plupart du temps, l'unit mmoire tant l'octet, MSD 0 1 2 3 4 5 6 7 8 9 A B C D E F
le 8 bit est utilis : C
soit pour dtecter les erreurs de transmission D
(bit de parit) E
soit pour dfinir des caractres spciaux (semi- F
graphiques, accents) dans un code ASCII
"tendu".

ASI Chapitre 2 : Reprsentation de linformation 30 ASI Chapitre 2 : Reprsentation de linformation 31

2.5.1.2 Code EBCDIC 2.5.2 Erreurs et compression


Extended Binary Coded Decimal Interchange Code
Dans la machine, l'information ne cesse de
Ce code 8 bits d'IBM est galement beaucoup circuler, via les bus internes, entre les divers
utilis sur les machines du constructeur. composants (U.C., M.C.). De plus, elle est
Cependant, certaines variantes existent en galement transmise aux priphriques, voire aux
fonction du type de matriel. Des programmes de autres machines distantes travers des rseaux
transcodage ASCIIEBCDIC existent sur la de communication. Ces communications
plupart des mini et gros ordinateurs. nombreuses ont deux inconvnients majeurs :
premirement, des erreurs surviennent pendant le
2.5.1.3 ISO-8859-1 ou ISO Latin-1 transport en raison de parasites ou de pannes;
deuximement, le temps de communication est
Code 8 bits trs utilis en Unix, il permet de grer gnralement trs grand devant les temps de
les lettres accentues, y compris majuscules, du traitement.
franais et dautres langues latines.

2.5.1.4 Unicode Pour viter le premier cueil, des algorithmes de


codage permettent la dtection, et certains mme,
Code 16 bits supportant la plupart des langues la correction des erreurs de transmission. Quant
crites : anglais, franais, chinois, japonais, ... la vitesse de communication, d'autres algorithmes
dits de compression (ou compactage) rduisent la
Les caractres de \u0020 (20H) \u007E (7EH) taille des donnes transmettre. Le nombre
correspondent ceux de lASCII et de Latin-1 d'algorithmes ralisant ces objectifs tant trs
importants, nous ne ferons qu'observer ceux qui
Les caractres de \u00A0 \u00FF correspondent sont parmi les plus simples et les plus rpandus.
ceux de Latin-1 sur [0A0H, 0FFH]

Ce jeu est utilis pour le codage interne Java des


char et des String. Il est difficilement utilisable car
peu doutils permettent de reprsenter lintgralit
des caractres (police de 216 caractres).
ASI Chapitre 2 : Reprsentation de linformation 32 ASI Chapitre 2 : Reprsentation de linformation 33

2.5.2.1 Contrle de parit 2.5.2.2 Code de Hamming

Cette mthode simple permet uniquement de Propos par R. Hamming (1952), ce code
dtecter une erreur dans un caractre. Elle autocorrecteur (dtection et localisation de
consiste rajouter un bit, dit de parit, au n bits l'unique erreur) consiste rajouter k bits de
du caractre transmettre. En parit paire, le parit chaque caractre cod sur n bits. Le
bit rajout au caractre est calcul de faon ce nouveau mot ainsi constitu de n+k bits contient
que le nombre total de bits 1 dans le caractre, y donc n bits d'information et k bits de contrle
compris le bit de parit, soit pair. En parit positionns l'intrieur du mot sur les indices
impaire, le nombre total de bits 1, y compris le correspondant des puissances de 2. Chaque bit
bit de parit, doit tre impair. On rajoute de parit bi contrle ainsi les bits d'information
gnralement le bit de parit sur le poids le plus dont les indices contiennent i en Binaire Non
fort du caractre (en ASCII sur b7). Sign.
Exemples :
Exemple : ASCII 7 bits + 4 bits de contrle
en ASCII, le "A" se code 100 0001 soit 41H
en parit paire, "A" devient : 0100 0001 soit 41H
b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11
en parit impaire, "A" devient : 1100 0001 = 0C1H
1 0 0 1 1 0 0 0 0 0 0
en ASCII, le "z" se code 111 1010 soit 7AH
en parit paire, "z" devient : 1111 1010 soit 0FAH Ci-dessus le code de l'espace (20H) avec un code de
en parit impaire, "z" devient : 0111 1010 = 7AH Hamming en parit paire :
b1 contrle b1, b3, b5, b7, b9, b11 : 1+0+1+0+0+0=2
Remarquons que l'altration d'un unique et b2 contrle b2, b3, b6, b7, b10, b11 : 0+0+0+0+0+0=0
quelconque bit durant la transmission est b4 contrle b4, b5, b6, b7 : 1+1+0+0=2
facilement dtecte l'arrive. Cependant, on ne b8 contrle b8, b9, b10, b11 : 0+0+0+0=0
peut pas dterminer sa position. De plus, si un
nombre pair de bits sont inverss, le contrle de Exemple du "b" (62H)
parit devient incohrent puisqu'il masque des b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11
erreurs ! 1 1 0 0 0 1 0
0 0 1 1

ASI Chapitre 2 : Reprsentation de linformation 34 ASI Chapitre 2 : Reprsentation de linformation 35

Dtection et correction
L'avantage du code de Hamming provient du fait 2.5.2.3 Code de Huffman
que chaque bit d'information est contrl par au
moins deux bits de parit : b5 par b4 et b1, b11 par Le codage de Huffman (1952) est une technique de
b8, b2 et b1. Ainsi, lorsqu'un bit d'information est compression de donnes permettant de stocker
erron, plusieurs bits de parit deviennent un message (un fichier) ou de le transmettre grce
incohrent ! un minimum de bits afin d'amliorer les
performances. Ce codage taille variable
Exemple : "b" erron sur le bit 7 suppose l'indpendance des caractres du message
b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 et on doit connatre la distribution probabiliste de
0 0 1 1 1 0 1 1 0 1 0 ceux-ci une position quelconque dans ce
message. Plus la probabilit d'occurrence d'un
b1 : parit incorrecte : 0+1+1+1+0+0=3 impair caractre dans un fichier est grande, plus son code
b2 : parit incorrecte : 0+1+0+1+1+0=3 impair doit avoir une taille rduite.
b4 : parit incorrecte : 1+1+0+1=3 impair
b8 : parit correcte : 1+0+1+0=2 pair On code chaque caractre par un mot de longueur
variable de faon ce qu'aucun mot ne soit le
pi=bi est erron prfixe d'un autre. La proprit principale des
1=(p1 xor p3 xor p5 xor p7 xor p9 xor p11) and (p2 codes de Huffman consiste en ce que la longueur
xor p3 xor p6 xor p7 xor p10 xor p11) and (p4 xor p5 moyenne du codage d'un caractre dans un fichier
xor p6 xor p7) and not p8 and not p9 and not p10 soit minimale.
and not p11 p7=1
Pour calculer le code d'un alphabet et de sa
distribution, on construit un arbre binaire tiquet
Remarquons que le calcul du bit erron revient par des 0 et des 1, les feuilles de cet arbre
additionner tous les indices des bits de parit reprsentant les caractres tandis que les chemins
incorrects (ici 1+2+4=7) ! Ce code fonctionne issus de la racine constituent les codes
galement lorsque c'est un bit de contrle qui a t correspondants.
invers. Rappelons que le code de Hamming
repose sur l'hypothse fondamentale qu'un bit au
plus est corrompu pendant la transmission !
ASI Chapitre 2 : Reprsentation de linformation 36 ASI Chapitre 2 : Reprsentation de linformation 37

Exemple : Algorithme de Huffman


L'algorithme consiste construire l'arbre en
Soit l'alphabet {a,b,c,d,e} associ la distribution partant des deux feuilles "les plus basses" (plus
probabiliste suivante : faibles probabilits ici d et e). On leur associe un
Car. a b c d e pre, sorte de nud virtuel dont la probabilit
Proba. 0,3 0,25 0,20 0,15 0,10 d'apparition du prfixe associ est gale la
somme des probabilits de ses deux fils. On ritre
arbre binaire : le processus en choisissant nouveau les deux
racine sommets sans pre de plus faible probabilit
0 1
jusqu' la construction de la racine.
0 1 0 1
a b c 0 1
d e Exemple : (a,b,c,d,e)
abcde (1) 4
code de Huffman correspondant : 3 1
Car. a b c d e 0
ade (0,55)
Code 00 01 10 110 111 0 1 2 a 11
b 01
de (0,25) a (0,3) bc (0,45) c 00
Remarquons que ce code n'est pas unique (il suffit 0 1 0 1 d 101
e (0,1) d (0,15) c (0,2) b (0,25) e 100
de permuter les 0 et les 1). On calcule la longueur
moyenne de codage comme suit : 1 Lmoy = 2*75% + 3*25%= 2,25

75% des caractres ncessitent 2 bits (a,b,c)


25% des caractres ncessitent 3 bits (d,e) Remarque
Lmoy=75%*2 + 25%*3 = 2,25 bits Lors de transmission de donnes, le message reu
est analys bit par bit jusqu' ce qu'on reconnaisse
Remarquons qu'avec un code de taille fixe, chaque une configuration valable. Ce codage est trs
caractre aurait ncessit 3 bits, soit une perte de sensible aux erreurs (un bit altr interdit la
33 %. comprhension de la fin du message) ! Par
consquent, il est frquent de dcouper le message
en mots de n bits et d'y associer un code
autocorrecteur (Hamming).

ASI Chapitre 2 : Reprsentation de linformation 38 ASI Chapitre 2 : Reprsentation de linformation 39

2.6 Reprsentation des images et 2.7 Structures de donnes


des sons
A partir des reprsentations lmentaires
Les images et les sons sont souvent cods sur des prcdentes (nombres et caractres), on peut
supports analogiques (continu). Il faut les construire des structures de donnes beaucoup
numriser (digitaliser, discrtiser) pour les plus complexes pouvant tre homognes (tableaux,
stocker sur des supports numriques. liste, pile) ou htrognes (articles).

On chantillonne limage ou le son en le Deux mthodes de rangement existent pour les


reprsentant par une suite finie de points : plus la structures de donnes de taille variable. Soit la
taille de lchantillon est grande, plus prcise est taille de la structure est conserve explicitement
la conversion analogique-numrique. et dynamiquement (fichiers, chanes pascal), soit
une marque de fin de structure indique la
La conversion numrique-analogique inverse est terminaison (lignes d'un fichier texte (CR-LF MS-
bien sur possible : modem (modulateur- DOS, LF UNIX), chanes C).
dmodulateur)
Exemple :
Les images peuvent tre reprsentes dans divers
formats : Chane pascal
bitmap ou pixmap : chaque point de limage est 17 e x e m p l e d e c h a n e
reprsente par un bit (0 : blanc, 1 : noir) ou par Avantage : taille connue permettant des calculs
un mot (1 couleur parmi 2n) rapides (accs ime, concatnation, ).
vectoriels : une figure gomtrique (rectangle, Inconvnient : taille maximum fixe= 255 octets.
cercle, ...)
Chane C
Ces formats donnent lieu de nombreux codes e x e m p l e d e c h a n e \0
alliant souvent formatage et compression Avantage : taille limite seulement par la mmoire.
bitmap : MS bitmap (.bmp), GIF (.gif), jpeg (.jpg), .. Inconvnient : parcours longs
vectoriel : DXF autocad (.dxf), EPS postscript (.eps)
son : MP3, OGG Vorbis,
ASI Chapitre 3 : Structure des ordinateurs 40 ASI Chapitre 3 : Structure des ordinateurs 41

3. Structure des ordinateurs 3.1 L' Unit Centrale (UC)


ou processeur (Central Processing Unit CPU)
Le modle d'architecture de la plupart des
ordinateurs actuels provient d'un travail effectu Cerveau de l'ordinateur, l'UC excute
par John Von Neumann en 1946. squentiellement les instructions stockes en
Mmoire Centrale. Le traitement d'une instruction
Le modle de Von Neumann se dcompose en 3 temps : chargement,
dcodage, excution. C'est l'unit de commande
Unit Centrale Mmoire Centrale Priphriques qui ordonnance l'ensemble, tandis que l'UAL
Unit de Commande excute des oprations telles que l'addition, la
rotation, la conjonction, dont les paramtres et
Unit Arith. et Log.
rsultats sont stocks dans les registres (mmoires
Registres rapides).

3.1.1.1 Les registres

Certains registres spcialiss jouent un rle


Bus (donnes, adresses, contrle) particulirement important. Le Compteur Ordinal (CO)
Instruction Pointer IP, Program Counter PC pointe sur
Principes du modle de programmation : la prochaine instruction excuter; le Registre
- code = squence d'instructions en MC ; Instruction (RI) contient l'instruction en cours
- donnes stockes en MC ; d'excution; le registre d'tat Status Register, Flags,
Program Status Word PSW contient un certain nombre
Actuellement, d'autres types d'architecture (5 d'indicateurs (ou drapeaux ou bits) permettant de
gnration, machines systoliques, ) utilisant connatre et de contrler certains tats du processeur; Le
massivement le paralllisme permettent pointeur de pile Stack Pointer permet de mmoriser
d'amliorer notablement la vitesse des calculs. l'adresse en MC du sommet de pile (structure de donnes
Last In First Out LIFO indispensable pour les appels
On peut conjecturer que dans l'avenir, d'autres procduraux); Des registres d'adresse (index ou bases)
paradigmes de programmation spcifiques permettent de stocker les adresses des donnes en
certaines applications induiront de nouvelles mmoire centrale tandis que des registres de travail
architectures. permettent de stocker les paramtres et rsultats de
calculs.

ASI Chapitre 3 : Structure des ordinateurs 42 ASI Chapitre 3 : Structure des ordinateurs 43

3.1.1.3 L'Unit Arith. et Log.


3.1.1.2 L'Unit de Commande
Celle-ci excute des oprations :
Celle-ci excute l'algorithme suivant : - arithmtiques : addition, soustraction, C2,
incrmentation, dcrmentation, multiplication,
rpter division, dcalages arithmtiques (multiplication
1.charger dans RI l'instruction stocke en MC ou division par 2n).
l'adresse pointe par le CO; - logiques : et, ou, xor, non, rotations et
2.CO:=CO+taille(instruction en RI); dcalages.
3.dcoder (RI) en micro-instructions;
4.(localiser en mmoire les donnes de Selon le processeur, certaines de ces oprations
l'instruction;) sont prsentes ou non. De plus, les oprations
5.(charger les donnes;) arithmtiques existent parfois pour plusieurs
6.excuter l'instruction (suite de micro-instructions); types de nombres (C2, DCB, virgule flottante) ou
7.(stocker les rsultats mmoires;) bien des oprations d'ajustement permettent de les
jusqu' l'infini raliser.

Lors du dmarrage de la machine, CO est Enfin sur certaines machines (8086) ne possdant
initialis soit l'adresse mmoire 0 soit l'adresse pas d'oprations en virgule flottante, des co-
correspondant la fin de la mmoire (2m-1). A processeurs arithmtiques (8087) peuvent tre
cette adresse, se trouve le moniteur en mmoire adjoint pour les raliser.
morte qui tente de charger l'amorce "boot-strap"
du systme d'exploitation. Les oprations arithmtiques et logiques
positionnent certains indicateurs d'tat du registre
Remarquons que cet algorithme peut parfaitement PSW. C'est en testant ces indicateurs que des
tre simul par un logiciel (interprteur). Ceci branchements conditionnels peuvent tre excuts
permet de tester des processeurs matriels avant vers certaines parties de programme.
mme qu'il en soit sorti un prototype, ou bien de
Pour acclrer les calculs, on a intrt utiliser
simuler une machine X sur une machine Y
les registres de travail comme paramtres,
(mulation).
notamment l'accumulateur (AX pour le 8086).
ASI Chapitre 3 : Structure des ordinateurs 44 ASI Chapitre 3 : Structure des ordinateurs 45

3.2 La Mmoire Centrale (MC) 3.2.2 Contenu/adresse (valeur/nom)


La mmoire centrale de l'ordinateur est Attention ne jamais confondre le contenu d'une
habituellement constitue d'un ensemble ordonn cellule, mot de n bits, et l'adresse de celle-ci, mot
de 2m cellules (cases), chaque cellule contenant un de m bits mme lorsque n=m.
mot de n bits. Ces mots permettent de conserver
programmes et donnes ainsi que la pile Parfois, le bus de donnes a une taille multiple de
d'excution. n ce qui permet la lecture ou l'criture de
plusieurs mots conscutifs en mmoire. Par
3.2.1 Accs la MC exemple, le microprocesseur 8086 permet des
changes d'octets ou de mots de 16 bits (appels
"mots").
La MC est une mmoire lectronique et l'on accde
n'importe laquelle de ses cellules au moyen de
Exemple (cellules d'un octet)
son adresse comprise dans l'intervalle [0, 2m-1].
Les deux types d'accs la mmoire sont :
Adresse Contenu bin hexa.
- la lecture qui transfre sur le bus de donnes, le
mot contenu dans la cellule dont l'adresse est 0 0 1 0 1 0 0 1 1 53H
situe sur le bus d'adresse. 1 1 1 1 1 1 0 1 0 0FAH
- l'criture qui transfre dans la cellule dont 2 1 0 0 0 0 0 0 0 80H
l'adresse est sur le bus d'adresse, le mot contenu
sur le bus de donnes. 32 0 0 1 0 0 0 0 0 20H (3210)

La taille n des cellules mmoires ainsi que la taille 2m-1 0 0 0 1 1 1 1 1 1FH
m de l'espace d'adressage sont des caractristiques
fondamentales de la machine. Le mot de n bits est Parfois, une autre reprsentation graphique de l'espace mmoire
est utilis, en inversant l'ordre des adresses : adresses de poids
la plus petite unit d'information transfrable faible en bas, adresses fortes en haut. Cependant, pour le 8086,
entre la MC et les autres composants. lorsqu'on range un mot (16 bits) l'adresse mmoire i, l'octet de
Gnralement, les cellules contiennent des mots poids fort se retrouve en i+1. Il est ais de s'en souvenir
de 8, 16 ou 32 bits. mnmotechniquement via la gravit dans les liquides de densits
diffrentes.

ASI Chapitre 3 : Structure des ordinateurs 46 ASI Chapitre 3 : Structure des ordinateurs 47

3.2.3 RAM et ROM 3.3 Les priphriques


Random Access Memory/ Read Only Memory
Les priphriques, ou organes d'Entre/Sortie
La RAM est un type de mmoire lectronique (E/S) Input/Output (I/O), permettent
volatile et rinscriptible. Elle est aussi nomme l'ordinateur de communiquer avec l'homme ou
mmoire vive et plusieurs technologies permettent d'autres machines, et de mmoriser
d'en construire diffrents sous-types : statique, massivement les donnes ou programmes dans
dynamique (rafrachissement). La RAM constitue des fichiers. La caractristique essentielle des
la majeure partie de l'espace mmoire puisqu'elle priphriques est leur lenteur :
est destine recevoir programme, donnes et pile - Processeur cadenc en Giga-Hertz : instructions
d'excution. xcutes chaque nano-seconde (10-9 s) ;
- Disque dur de temps daccs entre 10 et 20 ms
La ROM est un type de mmoire lectronique non (10-3 s) : rapport de 107 !
volatile et non rinscriptible. Elle est aussi - Clavier avec frappe 10 octets par seconde :
nomme mmoire morte et plusieurs technologies rapport de 108 !
permettent d'en construire diffrents sous-types
(ROM, PROM, EPROM, EEPROM (Flash), ). La 3.3.1 Communication
ROM constitue une faible partie de l'espace
mmoire puisqu'elle ne contient que le moniteur
L'ordinateur change des informations avec
ralisant le chargement du systme d'exploitation
l'homme travers des terminaux de
et les Entres/Sorties de plus bas niveau. Sur les
communication homme/machine : clavier , cran
PCs ce moniteur s'appelle le Basic Input Output
, souris , imprimante , synthtiseur (vocal)
System. Sur les Macintosh, le moniteur contient
galement les routines graphiques de base. C'est , table digitaliser , scanner , crayon
toujours sur une adresse ROM que le Compteur optique , lecteur de codes-barres , lecteur de
Ordinal pointe lors du dmarrage machine. cartes magntiques , terminaux consoles
stations
DDR SDRAM : Double Data Rate Synchronous Il communique avec d'autres machines par
Dynamic RAM est une RAM dynamique l'intermdiaire de rseaux locaux ou longue
(condensateur) qui a un pipeline interne distance (via un modem).
permettant de synchroniser les oprations R/W.
ASI Chapitre 3 : Structure des ordinateurs 48 ASI Chapitre 3 : Structure des ordinateurs 49

3.3.2 Mmorisation de masse Bandes magntiques


Ce sont des supports accs squentiel particulirement
ou mmorisation secondaire utiliss dans la sauvegarde. On les utilise de plus en plus sous
forme de cassettes. Les drouleurs de cassettes sont appels
Les mmoires lectroniques tant chres et soit streamers. Les densits et vitesses sont variables : quelques
volatiles (non fiables) soit non rinscriptibles, le milliers de bytes per inch (bpi) et autour d'un Mo/s. Le temps
stockage de masse est ralis sur d'autres d'accs dpendant de la longueur de la bande

supports. Ces autres supports sont caractriss schma d'une bande magntique
par : bloc i bloc i+1

non volatilit et rinscriptibilit 1


2

faible prix de l'octet stock 3


4
Pistes 5

lenteur d'accs et modes d'accs (squentiel, 6
7

squentiel index, alatoire, ) 8


9

forte densit
parfois amovibilit bit de parit gap inter-bloc
Mean Time Between Failures plus important car
organes mcaniques stratgie de sauvegarde Disques magntiques
Ils constituent la majorit des mmoires secondaires. Durs ou
souples, fixes ou amovibles, solidaires (Winchester) ou non
Supports Optiques (dispack) de leurs ttes de lecture/criture, il en existe une trs
Historiquement, les cartes 80 colonnes ont t grande diversit. Les disques durs ont des capacits variant
parmi les premiers supports mais sont entre quelques dizaines quelques centaines de Mo, des vitesses
de transfert autour du Mo/s et des temps d'accs approchant les
compltement abandonnes aujourd'hui. Les
10 ms.
rubans perfors, utiliss dans les milieux schma d'un disque magntique
risque de champ magntique (Machines Outils face tte de lecture/criture trou d'index
Commande Numrique), sont leurs descendants 0

secteurs 0, 1, , 7

directs dans le cadre des supports optiques. 1


2 translation
3
Supports Magntique 4 pistes
Aujourd'hui (annes 90), les supports magntiques 5
constituent la quasi-totalit des mmoires de 6
gap
masse des ordinateurs usage gnral. 7

rotation rotation

ASI Chapitre 3 : Structure des ordinateurs 50 ASI Chapitre 3 : Structure des ordinateurs 51

Compos de faces, de pistes concentriques, de Supports optiques


secteurs "soft sectored", la densit des disques est Supports optiques
souvent caractrise par le nombre de "tracks per
inch" (tpi) . Sur les disques durs, un cylindre est - units de lecture fonctionnant au moyen d'un
constitu d'un ensemble de pistes de mme faisceau laser ;
diamtre. - densits de stockage suprieures au
Un contrleur de disque (carte) est charg de magntique : de 102 104 fois plus ;
transfrer les informations entre un ou plusieurs - temps d'accs plus longs : archivage de masse.
secteurs et la MC. Pour cela, il faut lui fournir : le
sens du transfert (R/W), l'adresse de dbut en MC CDROM : disques compacts (mme format que les
(Tampon), la taille du transfert, la liste des CDs audio) pr-enregistrs par pressage en usine
adresses secteurs (n face, n cylindre, n secteur). et non rinscriptibles : (logiciels, annuaires,
La plus petite unit de transfert physique est 1 encyclopdies, ).
secteur.
CDR : inscriptibles une seule fois ;
Pour accder un secteur donn, le contrleur doit
commencer par translater les bras mobiles portes- CDRW : rinscriptibles (1000 fois)
ttes sur le bon cylindre, puis attendre que le bon
secteur passe sous la tte slectionne pour DVDR, DVDRW : idem CD mais avec des
dmarrer le transfert. Le temps d'accs moyen capacits plus importantes : 4,7 Go contre 700 Mo,
caractrise la somme de ces deux dlais moyens. double couches ...

Exemple : TAmoyen et transfert d'1 secteur ? Magnto-optiques : combinant la technologie


disque dur 8 faces, 50 cylindres, 10 secteurs/piste optique (laser) et magntique (particules
d'1 Ko, tournant 3600 tours/mn, ayant une orientes), ils sont rinscriptibles. Amovibles, plus
vitesse de translation de 1 m/s et une distance denses que les disques magntiques mais moins
entre la 1 et la dernire piste de 5 cm. rapides, ils constituent un compromis pour les
archivages et les fichiers rarement accds.
TAmoyen = (5 cm/2)/1 m/s + (1/60 t/s)/2= 25ms+8,3 ms
Transfert d'1 secteur = (1/60)/10 = 1,66 ms
ASI Chapitre 3 : Structure des ordinateurs 52 ASI Chapitre 3 : Structure des ordinateurs 53

3.4 Contrleur d'E/S et IT 3.5 Le(s) Bus


A lorigine, lUC grait les priphriques en leur Le bus de donnes est constitu d'un ensemble
envoyant une requte puis en attendant leur de lignes bidirectionnelles sur lesquelles
rponse. Cette attente active tait supportable transitent les bits des donnes lues ou crites par
en environnement monoprogramm. le processeur. (Data 0-31)

Actuellement, lUC dlgue la gestion des E/S aux Le bus d'adresses est constitu d'un ensemble de
processeurs situs sur les cartes contrleur lignes unidirectionnelles sur lesquelles le
(disque, graphique, ) : processeur inscrit les bits formant l'adresse
1. lUC transmet la requte dun processus la dsire.
carte contrleur ;
2. lUC endort le processus courant et excute Le bus de contrle est constitu d'un ensemble
un processus prt ; de lignes permettant au processeur de signaler
3. le contrleur excute lE/S ; certains vnements et d'en recevoir d'autres. On
4. le contrleur prvient lUC de la fin de lE/S trouve frquemment des lignes reprsentant les
grce au mcanisme dinterruption ; signaux suivants :
5. lUC dsactive le processus en cours dexcution
puis rveille le processus endormi qui peut Vcc et GROUND : tensions de rfrence
continuer sexcuter. RESET : rinitialisation de l'UC

Grce ce fonctionnement, lUC ne perd pas son R/ W : indique le sens du transfert


temps des tches subalternes ! MEM/ IO : adresse mmoire ou E/S

Gnralement, plusieurs niveaux Technologiquement, les bus de PC voluent


d'interruption plus ou moins prioritaires sont rapidement (Vesa Local Bus, ISA, PCI, PCI
admis par l'UC Express, ATA, SATA, SCSI, )

ASI Chapitre 3 : Structure des ordinateurs 54 ASI Chapitre 3 : Structure des ordinateurs 55

3.6.1.1 Niveaux et localisation des caches


3.6 Amliorer les performances
- Cache Processeur ralis en SRAM
3.6.1 Hirarchie mmoire et Cache
- Niveau 1 (L1) : spar en 2 caches (instructions,
Classiquement, il existe 3 niveaux de mmoire donnes), situ dans le processeur, communique
ordonns par vitesse d'accs et prix dcroissant et avec L2 ;
par taille croissante : - Niveau 2 (L2) : unique (instructions et donnes)
- Registres ; situ dans le processeur ;
- Mmoire Centrale ; - Niveau 3 (L3) : existe parfois sur certaines
- Mmoire Secondaire. cartes mres.

Afin dacclrer les changes, on peut augmenter Par exemple, Pentium 4 ayant un cache L2 de
le nombre des niveaux de mmoire en introduisant 256 Ko.
des CACHE ou antmmoire de Mmoire
Centrale et/ou Secondaire : Mmoire plus rapide
mais plus petite, contenant une copie de certaines - Cache Disque
donnes :
De quelques Mga-octets, ce cache ralis en
Fonctionnement : DRAM est gr par le processeur du contrleur
Le demandeur demande lire ou crire une disque. Il ne doit pas tre confondu avec les
information ; tampons systmes stocks en mmoire centrale
si le cache possde linformation, lopration est (100 Mo). Intrts de ce cache :
ralise, sinon, il rcupre linfo. depuis le
fournisseur puis ralise lop. - Lecture en avant (arrire) du cylindre ;
- Synchronisation avec linterface E/S (IDE, SATA,
Le principe de squentialit des instructions et )
des structures de donnes permet doptimiser le - Mise en attente des commandes (SCSI, SATA)
chargement du cache avec des segments de la
mmoire fournisseur. Stratgie de remplacement
est gnralement LRU (Moins Rcemment Utilise).
ASI Chapitre 3 : Structure des ordinateurs 56 ASI Chapitre 3 : Structure des ordinateurs 57

3.6.2 Pipeline Chaque tage du pipeline travaille la chane


en rptant la mme tche sur la srie
dinstructions qui arrive.
Technique de conception de processeur avec
plusieurs petites units de commande places en
Si la squence est respecte, et sil ny a pas de
srie et ddies la ralisation dune tche
conflit, le dbit dinstructions (throughput) est
spcifique. Plusieurs instructions se chevauchent
multipli par le nombre dtages !
l'intrieur mme du processeur.
Problmes et solutions :
Par exemple, dcomposition simple d'une
- Rupture de squence : vidage des tages !
instruction en 4 tapes :
- Dpendance dinstructions : mise en attente force
6. Fetch : chargement de l'instruction depuis la
Architecture superscalaire :
MC ;
Plusieurs pipeline (2) dans le mme processeur
7. Decode : dcodage en micro-instructions ;
travaillent en parallle (instons indpendantes).
8. Exec : excution de l'instruction (UAL) ;
9. Write Back : criture du rsultat en MC ou dans
Exemple :
un registre
Pentium 4 : selon ses versions, de 20 31 tages !
Soit la squence d'instruction : i1, i2, i3, ...
sans pipeline : 3.6.3 SIMD
i1F, i1D, i1E, i1W, i2F, i2D, i2E, i2W, i3F, ...
Single Instruction Multiple Data dsigne un
ensemble dinstructions vectorielles permettant
avec pipeline 4 tages des oprations scientifiques ou multimdia. Par
exemple, lAMD 64 possde 8 registres 128 bits et
i1F i1D i1E i1W
des instructions spcifiques utilisables pour le
i2F i2D i2E I2W streaming, lencodage audio ou vido, le calcul
scientifique.
i3F i3D I3E
i4F i4D

ASI Chapitre 3 : Structure des ordinateurs 58 ASI Chapitre 4 : La couche physique 59

3.6.4 DMA et BUS Mastering 4. La Couche Physique


L'accs direct mmoire ou DMA (Direct Memory
La couche physique est constitue de circuits
Access) est un procd informatique o des
lectroniques complexes interconnects. Ces
donnes circulant de ou vers un priphrique (port
circuits sont conus partir d'un nombre peu
de communication, disque dur) sont transfres
importants de circuits de base relativement
directement par un contrleur adapt vers la
simples. Seuls quelques uns de ces circuits seront
mmoire centrale de la machine, sans intervention
dcrits fonctionnellement ici.
du microprocesseur si ce n'est pour initier et
conclure le transfert. La conclusion du transfert ou
la disponibilit du priphrique peuvent tre 4.1 Portes logiques et Algbre boolenne
signals par interruption.
Nous ne nous intresserons qu'aux
La technique de Bus Mastering permet caractristiques essentielles des circuits et non
nimporte quel contrleur de demander et prendre l'implantation lectronique des rseaux de
le contrle du bus : le matre peut alors transistors sur les supports semi-conducteurs !
communiquer avec nimporte lequel des autres
Une porte logique gate a un comportement binaire,
contrleurs sans passer par lUC.
"il faut qu'une porte soit ouverte ou bien ferme",
Cette technique implmente dans le bus PCI
et on lui associera la valeur 0 ou 1 selon le
permet nimporte quel contrleur de raliser un
potentiel de sa sortie.
DMA. Si lUC a besoin daccder la mmoire, elle
devra attendre de rcuprer la matrise du bus. Le Exemple :
contrleur matre lui vole alors des cycles Volts
6
mmoires. 1 logique
4
2
0 logique
0
ASI Chapitre 4 : La couche physique 60 ASI Chapitre 4 : La couche physique 61

Remarque 4.2 Algbre boolenne


Ce dcoupage des tensions de sortie des circuits en
deux plages reprsentant le 0 et le 1 est tout
Variable boolenne
fait arbitraire et on a dj envisag d'autres
un nom x, y, z
dcoupages en 3, 4 et mme 10 plages de
2 valeurs possibles vrai (1), faux (0)
potentiels. Avec 10 plages reprsentant les chiffres
de 0 9, on obtient une machine travaillant
Oprations boolennes
directement en dcimal ! Cependant ces
non not x
architectures restent du domaine de la recherche
x 0 1
en raison :
x 1 0
1. de leur cot : il faut dvelopper tous les circuits
composant la machine
et not x.y ou plus simplement xy
2. de leur fiabilit plus faible : les 10 plages tant
plus "minces" et plus proches les unes des autres, x\y 0 1
des parasites peuvent plus facilement provoquer 0 0 0
des erreurs. 1 0 1

Technologie ou inclusif not x+y


2 familles de transistors sont utiliss : x\y 0 1
les transistors jonctions (techno. bipolaire) 0 0 1
utiliss en TTL (Transistor Transistor Logic) et 1 1 1
en ECL (Emitter Coupled Logic).
TTL rapide, consommation leve ou exclusif not x y
ECL trs rapide 10*TTL, consommation leve x\y 0 1
0 0 1
Les transistors effet de champ (techno.
1 1 0
unipolaire) utiliss en PMOS, CMOS, NMOS
MOS lent TTL/10, consommation faible
quivalence not x y
(portables)
x\y 0 1
HMOS, XMOS rapide 1*TTL, consommation
faible 0 1 0
1 0 1

ASI Chapitre 4 : La couche physique 62 ASI Chapitre 4 : La couche physique 63

4.3 Proprits des oprations 4.4 Circuits logiques de base


commutativits du et, du ou : 4.4.1 L'inverseur not
xy=yx x+y=y+x
Vcc (+5 V)
associativits du et, du ou : R
Vs
x(yz)=(xy)z=xyz x+(y+z)=(x+y)+z=x+y+z Ve collecteur S=non(E)
base
metteur

distributivits
x(y+z)=xy+xz avec la convention . prioritaire sur + Lorsque Ve est infrieur la valeur critique du
x+(yz)=(x+y)(x+z) transistor, celui-ci est bloqu et est quivalent
un interrupteur ouvert : Vs est donc proche de
lois de Morgan Vcc. Lorsque Ve est suprieur la tension critique,
( x + y) = x . y ( x. y) = x + y
le transistor bascule (la porte se ferme) et
quivaut une rsistance quasi-nulle : Vs est donc
double ngation : x = x proche de 0.
absorption : x.(x+y)=x=x+(x.y) Remarquons que l'inversion de l'entre sur la
sortie n'est pas instantane : selon les technologies
rduction : (x.y)+( x .y)=y=(x+y).( x +y) d'intgration, elle tourne autour des quelques
nano-secondes (10-9 s).
compltude du {non, et} ou du {non, ou} On schmatise une porte non not (inverseur) de la
toute fonction logique n-aire peut tre ralise par faon suivante :
des combinaisons de ces 2 oprations.
E S

Exemple : implication binaire, ou ternaire ...


ASI Chapitre 4 : La couche physique 64 ASI Chapitre 4 : La couche physique 65

4.4.2 Portes non-et, non-ou nand, nor Compltude


Les portes NAND et NOR sont dites compltes
Vcc (+5 V) car on peut cbler avec lune ou lautre nimporte
R quelle fonction boolenne n-aire.
Vs
V1 collecteur S=non(E1 and E2)
base
metteur Exemple : Implication (A implique B)
nonA ou B =non(A et nonB)=non(non(nonA ou B))
V2
A S A
B B S

NAND
Rappel des lois de Morgan :
Si V1 < Vcritique ou V2 < Vcritique alors Vs=Vcc non(A ou B)=nonA et non B
sinon Vs=0 non(A et B)=nonA ou non B

On schmatise une porte non-et nand de la faon Schmas :


suivante : On schmatise de la faon suivante les circuits
E1 S
logiques usuels raliss partir des portes de base
E2 :
A A A A A
E S S S S S S
B B B B B
not nand nor and or xor
En plaant deux transistors en srie, on obtient
une porte nor schmatise de la faon suivante :
4.4.3 Composants de base
Vcc (+5 V)
R S=non(E1 ou E2)
V1
Vs Les circuits intgrs logiques (puce, chip)
E1 S permettent dutiliser plusieurs fonctions logiques
V2 E2 sur une plaquette de silicium (5mm*5mm).
NOR Diffrents procds technologiques permettent
cette intgration plus ou moins forte densit. La
densit est calcule en nombre de portes ou de
transistors par mm2 ou par circuit. Ensuite,

ASI Chapitre 4 : La couche physique 66 ASI Chapitre 4 : La couche physique 67

chaque plaquette est encapsule dans un botier 4.5 Circuits logiques combinatoires
(noir) rectangulaire en plastique ou en cramique,
do sortent des broches (pattes) de connexion.
Ces circuits plus ou moins complexes sont
caractriss par le fait que leur sortie sexprime
Il existe 4 classes de produits classes selon leur
uniquement par une fonction logique de leurs
densit dintgration :
entres. Ils sont diffrentiables des circuits
mmoires dont la sortie dpend galement de leur
SSI (Small Scale Integration) 1 10 portes/circuit
tat antrieur.
MSI (Medium ) 10 100
LSI (Large ) 100 100 000
VLSI (Very Large ) plus de 100 000 4.5.1 Multiplexeur (Mux)

Exemple : SSI 7400 TTL (Vcc=5V) Texas Instr. C'est un cas typique de circuit MSI permettant
d'aiguiller une entre parmi 2n sur son unique
Vcc sortie grce n lignes de slection.
14 13 12 11 10 9 8

Exemple : Mux 4 entres, 1 sortie

MUX 1/4 entres


7400 D0
D1 F
D2
D3 D0
D1 F
D2
1 2 3 4 5 6 7 D3
GND
S1 S0
(2) (1) S1 S0
Ce circuit trs utilis permet de cbler 4 nands
binaires. Ce type de circuit est notamment utilis pour multiplexer le bus
d'adresses et le bus de donnes du 8086. Associ un compteur,
il permet galement la conversion parallle/srie. Le
dmultiplexeur ralise la fonction inverse en aiguillant une
entre unique vers l'une des 2n lignes de sorties (srie/parallle).
ASI Chapitre 4 : La couche physique 68 ASI Chapitre 4 : La couche physique 69

4.5.2 Dcodeur 4.5.3 Autres circuits


Ce MSI dispose de n lignes d'entres et de 2n Bien entendu, une multitude d'autres types de
lignes de sortie. Selon le nombre x en RBNS circuits combinatoires sont ncessaires. Afin de
prsent sur les n entres, seule la sortie d'indice permettre la ralisation de fonctions logiques
gal x est slectionne (active) tandis que les spcifiques, des circuits programmables existent.
autres sont au repos. Selon les circuits, l'tat actif Les rseaux logiques programmables
peut tre reprsent par 1 ou bien par 0 (actif (Programmable Logic Array ou PLA) sont
l'tat bas). constitus d'un rseau de portes Not, And et Or,
dont les entres sont des fusibles. La
Exemple : dcodeur 2 entres actif l'tat 1 programmation d'un PLA consiste faire "griller"
un certain nombre de ces fusibles afin de raliser
D0
la fonction logique dsire.
S0 D1
Dcodeur 2 entres
S1 D2 Exemple :
PLA 3 entres (3 not), 2 sorties (2 or), 5 and
D3
1 sortie : a or b c ; 2 sortie : majorit
Remarques a
Ce type de circuit permet de slectionner les
diffrents circuits mmoires de la MC. En effet, on b
utilise certaines lignes de poids forts du bus
d'adresses comme entres du dcodeur et les c
sorties comme slecteurs de botiers (Chip Select
CS ).

Les circuits dcodeurs du commerce sont de type 4


vers 16, 3 vers 8, ou contiennent plusieurs 2 vers
4. Il existe aussi des circuits spciaux 4 vers 10 a or b c
pour le DCB. Le circuit inverse nomm codeur
permet de donner l'indice de l'unique ligne
d'entre active. majorit

ASI Chapitre 4 : La couche physique 70 ASI Chapitre 4 : La couche physique 71

4.6 Circuits de calcul 4.6.2 Additionneur


Ces circuits MSI permettent deffectuer les Un demi-additionneur est constitu dun XOR
oprations arithmtiques et logiques. (mme table de vrit addition) associ un AND
pour la retenue de sortie. Pour obtenir un
4.6.1 Dcaleur additionneur, il faut rajouter un autre demi-
additionneur pour la retenue dentre.
Ce circuit permet de dcaler un registre du processeur dun ou
plusieurs bits vers la droite ou la gauche. Il existe des dcaleurs Exemple : additionneur 1 bit
logiques (introduction de 0 sur le bit entrant), des dcaleurs
droite arithmtiques (recopie du bit le plus significatif), et des Ri-1
rotateurs (recopie du bit sortant sur le bit entrant).

Exemple : Dcaleur 1 position sur 3 bits


Ai
D0 D1 D2 Bi Si

Right

Ri

Remarque :
ladditionneur est le circuit de base pour
larithmtique binaire signe et non signe. En
S0 S1 S2
effet, toutes les autres oprations peuvent tre
Remarque : obtenues logiciellement si on a un additionneur et
Dcalage gauche = multiplication par 2 un inverseur.
Dc. arithmtique droite = division par 2
Question : OR de la retenue sortante Ri peut il
tre remplac par un XOR? (oui)
ASI Chapitre 4 : La couche physique 72 ASI Chapitre 4 : La couche physique 73

4.6.3 U.A.L. 4.7 Horloge


A partir des circuits de calcul prcdents et de Lhorloge est la base de temps de lUC. Celle-ci
quelques circuits combinatoires, tels que des met une suite dimpulsions calibres. Lorigine
dcodeurs, il est ais dimaginer la construction de ces impulsions est un quartz qui, soumis une
dUnit Arithmtique et Logique ayant diffrence de potentiel, bat une frquence de
quelques dizaines de MgaHertz (MHz). Le temps
en entre : 2 mots de donnes de n bits, un mot de cycle ou priode de lhorloge varie donc entre
de slection de k bits 10 ns (100 Mhz) et 1 s (1 MHz).
en sortie, un mot de donnes de n bits rsultant
de lune des 2k oprations excute sur les 2 Exemple : diagramme temporel dune horloge
mots dentre ou sur un seul.

Exercice :
Construisez (schma de cblage) une UAL 1 cycle
ralisant laddition, la soustraction, les dcalages 1 Front descendant Front montant
bit, le C2, linversion sur des mots de 2 bits.
Il est parfois impratif de diviser le cycle de temps
de lhorloge principale en plusieurs intervalles. On
utilise alors dautres horloges dphases par
rapport lhorloge principale (circuit de
retardement). Le plus souvent, ces horloges
dlivrent des signaux symtriques et de mme
cycle (priode).
Le cadencement des actions lintrieur de lUC
est toujours dclench soit sur front montant,
soit sur front descendant.

ASI Chapitre 4 : La couche physique 74 ASI Chapitre 4 : La couche physique 75

4.8 Circuits de mmorisation 4.8.1 Organisation de la mmoire


Des circuits mmoires sont ncessaires dans Lvolution technologique a provoqu une
toutes les parties dune machine (UC, MC, augmentation importante du nombre de bits
priph.). A linverse dun circuit combinatoire, la stocks par botier. Annes 70 : 1Kbit puis
sortie dun circuit mmoire ne dpend pas que de 16Kbits,actuellement : 1Mbit. On peut
ses entres mais aussi de son tat prcdent. Tous schmatiser un botier mmoire (RAM) de la
les circuits mmoires sont des drivations de la manire suivante :
bascule RS dont voici le schma :
A0 D0
NOR A1 D1
S Q A2 D2
S A Q A3 n
0 0 1 2 mots
0 1 0
de m bits
Q 1 0 0
R 1 1 0
Dm
An
On remarque que les deux sorties Q et Q sont
rarement (S=R=1) simultanment gales et que OE RD CS
leur tat est stable (bascule) tant que les deux
entres ne varient pas. Lactivation de S (Set) 1
provoque le positionnement de Q 1. Ensuite, les OE Output Enable active les lignes de sortie
variations de S sont inoprantes. Inversement, D0m, tandis que RD slectionne la lecture ou
lactivation de R (Reset) bascule Q 0 . La bascule lcriture et que CS Chip Select slectionne le
RS se souvient donc de la dernire activation
dune entre. botier. OE est ncessaire car lors dune lecture,
il synchronise la recopie du mot slectionn sur les
Des amliorations de ce circuit permettent de lignes D0m.
construire des bascules stables et sans ambiguts
Une mmoire 16 Kbits peut tre constitue de 2
de fonctionnement (bascules JK, D). En associant
botiers de 8 Kbits ou de 4 * 4 Kbits ou de 16 *
n bascules, on construit des registres n bits.
1Kbits
ASI Chapitre 5 : La couche Microprogramme 76 ASI Chapitre 6 : La couche Machine 77

5. La Couche Microprogramme 6. La Couche Machine


La couche microprogramme dpend complte- Elle constitue le niveau le plus bas auquel
ment de la couche physique sous-jacente. En lutilisateur a accs.
fonction de larchitecture interne de lUC, elle
permet de coder chaque instruction du niveau Types dordinateurs (volution constante !)
Machine en une suite de micro-instructions
lmentaires. - les ordinateurs personnels (PC ou Macintosh) ;
- les ordinateurs de bureau ;
Chaque micro-instruction est code sur un certain - les ordinateurs portables ;
nombre de champs, chaque champ indiquant - les assistants personnels (ou PDA) ;
lactivit dun signal interne lUC. Dans lUC,
une mmoire de commande (ROM) (invisible - les moyens systmes (midrange) (ex IBM
lutilisateur) contient le texte correspondant AS/400-ISeries, RISC 6000...)
toutes les instructions machine. Lexcution dune
micro-instruction ncessite lexistence de plusieurs - les mainframes (serveurs centraux) (ex. : IBM
sous-cycles permettant de synchroniser les zSeries 64 bits, Siemens SR2000 et S110 ...) ;
diffrentes actions. Ces sous-cycles sont obtenus
grce des circuits retards internes. - les superordinateurs (Blue Gene machine IBM
utilisant 65536 Power PC ralisant 136,8
Lenchanement des micro-instructions est TFlops);
semblable lenchanement des instructions
machine ! La rgle gnrale est la squence mais
des ruptures conditionnelles ou non peuvent - les stations de travail (PC puissants pour CAO,
intervenir. Une micro-instruction spciale de fin ) ;
permet au micro-squenceur dexcuter
linstruction suivante.

ASI Chapitre 6 : La couche Machine 78 ASI Chapitre 6 : La couche Machine 79

6.2 Format des instructions


6.1 Exemples
Programme = suite d'instructions machines
Pentium 4 (x86 CPU) Une instruction est compose de plusieurs champs :
- 8 registres 32 bits (AL, AH, AX, EAX); 1 champ obligatoire : le code opration dsigne
- Espace adrs : 4 Go ; le type d'instruction. Sa longueur est souvent
- Mmoire virtuelle segmente (CS code, DS data, variable afin d'optimiser la place et la vitesse
SS stack) avec un slecteur de segment 16 bits + utilise par les instructions les plus frquentes
adrs virtuelle 32 bits ; (Huffman).
- (x87) coprocesseur arithmtique flottante (FPU) 0 n champs optionnels : les oprandes
32, 64 ou 80 bits dsignent des donnes immdiates ou stockes
dans des registres ou en MC. Le type de
AMD 64
dsignation de ces donnes est nomm mode
- 16 registres 64 bits (AL, AH, AX, EAX, RAX)
d'adressage.
- Espace adrs : 256 To
- Mmoire virtuelle non segmente sur 64 bits Exemple :
- SIMD avec registres 128 bits Code Opration Oprande1 Oprande2
De plus, la taille des cases et mots mmoires doivent
Big endian Little endian tre des multiples de la taille d'un caractre afin
d'viter le gaspillage de place ou des temps de
0 0000 1111 MSB 0 0000 1111 LSB recherche prohibitifs. Les codes alphanumriques
mot 0 MSB LSW
1 mot 0 MSW 1 usuels tant sur 8 bits (EBCDIC) ou 7+1 bits
2 2
3 LSB 3 double mot 0 MSW (ASCII), c'est la raison du dcoupage des MC en
Adrs 4 4
double mot 0 mot 4 octets.
5 LSW 5
6 6 double mot 4 Enfin, des adresses devant galement tre stockes
7 7
8 mot 8 8 en MC, c'est la raison pour laquelle la taille de
l'espace d'adressage est gnralement un multiple
double mot 8
IBM 370, Motorola 68000 x86, AMD de 28 octets (64 Ko, 16 Mo, 4 Go). Sauf lorsque la
En Little endian, mnmotechniquement, la "gravit" est oriente vers technique d'adressage utilise des segments
le bas de la mmoire (adresses suprieures). Les Power PC dIBM recouvrants : 8086 : 1Mo = 220 o; 1 adrs = 2 mots.
sont bi-endian.
ASI Chapitre 6 : La couche Machine 80 ASI Chapitre 6 : La couche Machine 81

6.3 Modes d'adressage 6.3.1 Adressage immdiat


Remarque : pour simplifier, nous utiliserons La valeur de la donne est stocke dans
dornavant la notation mnmonique des l'instruction. Cette valeur est donc copie de la MC
instructions machines, notation alphanumrique vers l'UC lors de la phase de chargement (fetch) de
qui correspond la couche 4 du langage l'instruction.
d'assemblage.
Avantage : pas d'accs supplmentaire la MC
Types de donne reprsents par les oprandes : Inconvnient : taille limite de l'oprande
donne immdiate stocke dans l'instruction
machine Exemples : Z80
donne dans un registre de l'UC (1) ADD A, <n> ; Code Op. 8 bits, n sur 8 bits en C2
donne une adresse en MC (2) LD <Reg>, <n> ; Code Op 5 b., Reg 3 b., n 8 b.

Nombres d'oprandes : 6.3.2 Adressage registre


Nous supposerons un nombre maximal de 2
oprandes, ce qui reprsente le cas gnral.
La valeur de la donne est stocke dans un
Souvent, un oprande implicite n'est pas dsign
registre de l'UC. La dsignation du registre peut
dans l'instruction : c'est l'accumulateur qui est
tre explicite (2) ou implicite (1) (A sur Z80).
un registre de travail privilgi; le Z80 a au
maximum un oprande explicite (et A comme
Avantage : accs rapide % MC
oprande implicite).
Inconvnient : taille limite de l'oprande
Source et Destination :
Lorsque 2 oprandes interviennent dans un Selon le nombre de registres de travail de l'UC, la
transfert ou une opration arithmtique, l'un est taille du code des instructions varie :
source et l'autre destination de l'instruction. 8 registres ncessitent 3 bits (Z80)
L'ordre d'apparition varie suivant le type d'UC : 16 registres ncessitent 4 bits (68000)
IBM 370, 8086 : ADD DST, SRC DST := DST+SRC
PDP-11, 68000 : ADD SRC, DST DST := DST+SRC

ASI Chapitre 6 : La couche Machine 82 ASI Chapitre 6 : La couche Machine 83

6.3.3 Adressage direct 6.3.4 Adressage indirect


La valeur de la donne est stocke une adresse La valeur de la donne est stocke une adresse
en MC. C'est cette adresse qui est reprsente m en MC. Cette adresse m est stocke dans un
dans l'instruction. registre r ou une adresse m'. C'est r ou m' qui est
cod dans l'instruction (m' est appel un
Avantage : taille quelconque de l'oprande pointeur). L'adressage indirect par registre est
Inconvnient : accs mmoire supplmentaire, prsent dans la totalit des UC, par contre,
taille importante de l'instruction l'adressage indirect par mmoire est moins
frquent. Il peut cependant tre simul par un
Selon le type d'implantation mmoire requis par adressage direct dans un registre suivi d'un
l'UC, plusieurs adressages directs peuvent adressage indirect par registre.
coexister. Peu de machines disposent de mode d'adressage
indirect plusieurs niveaux d'indirection !
Exemples : 8086
MOV AL, <dis> ; dplacement intra-segment (court) Avantage : taille quelconque de l'oprande
transfre dans le registre AL, l'octet situ Inconvnient : accs mmoire supplmentaire(s),
l'adresse dis dans le segment de donnes : dis est taille importante de l'instruction (pas par registre)
cod sur 16 bits, Data Segment est implicite.
Exemples : Z80 indirection seulement par HL
ADD BX, <aa> ; adresse absolue aa= S,D (long) ADD A, (HL) ; adressage indirect par registre
ajoute BX, le mot de 16 bits situ l'adresse D codage de l'instruction sur 8 bits (code op.) : A et
dans le segment S : D et S sont cods sur 16 bits. HL sont dsigns implicitement

LD (HL), <reg> ; adressage indirect par registre


L'IBM 370 n'a pas de mode d'adressage direct, code op. sur 5 bits et reg sur 3 bits; HL implicite
tandis que le 68000 permet l'adressage direct
court (16 bits) et long (32 bits).
ASI Chapitre 6 : La couche Machine 84 ASI Chapitre 6 : La couche Machine 85

6.3.5 Adressage index (ou bas) 6.3.6 Remarques


Il est parfois ncessaire d'accder des donnes Dans une instruction, lorsque deux oprandes sont
situes des adresses conscutives en MC. En utiliss, deux modes d'adressages interviennent.
adressage index, on charge un registre d'index Souvent certains modes sont incompatibles avec
avec l'adresse de dbut de cette zone de donnes, d'autres pour des raisons de taille du code
puis on spcifie dans l'instruction, le dplacement instruction ou de temps d'accs : par exemple en
raliser partir de cet index. L'adresse relle de 8086, jamais deux adressages directs. Par contre,
la donne accde est donc gale l'adresse de un oprande fait parfois appel la conjonction de
l'index ajoute au dplacement. deux modes d'adressage : mode index et bas +
Certaines UC excutent automatiquement dplacement du 8086 !
l'incrmentation ou la dcrmentation de leurs
registres d'index ce qui permet, en bouclant, de
raliser des transferts ou d'autres oprations sur Schma des diffrents modes d'adressage
des zones (chanes de caractres).
MC
LDIMM R, 100 LDIMM R, 100
Avantage : taille importante de la zone (256 R := 100 LDIND R, (R)
100 102
octets si dplacement sur 8 bits) LDIND R, (R)
LDDIR R, (100) R := 104
Inconvnient : taille importante de l'instruction 102 104
R := 102
(si codage du dplacement) LDIMM RX, 100
104 35 LDIX R, (RX+4)
LDIND R, ((100))
R := 104 rare R := 35
Exemple : Z80 indexation par IX et IY
LD (IX+<dpl>), <reg> ; adressage index par IX
codage de l'instruction : code op. sur 12 bits, IX sur
1 bit, reg sur 3 bits, dpl sur 8 bits. Toute indirection n niveaux peut tre simule
ds lors qu'on possde une instruction
Sur le 8086, MOVSB (MOVe String Byte) permet indirection simple.
de transfrer l'octet en (SI) vers (DI) puis
d'incrmenter ou dcrmenter SI et DI.
Remarquons que l'indexation sans dplacement
quivaut l'indirection.

ASI Chapitre 6 : La couche Machine 86 ASI Chapitre 6 : La couche Machine 87

6.3.7 Adressage par pile 6.3.8 Utilisations de la pile


La pile d'excution de l'UC est constitue d'une Avantages :
zone de la MC dans laquelle sont transfrs des structure de donnes LIFO et oprations de
mots selon une stratgie Dernier Entr Premier manipulation physiquement implantes : vitesse
Sorti (Last In First Out LIFO). Le premier instructions courtes car oprandes implicites
lment entr dans la pile est plac la base de la
pile et le dernier lment entr se situe au Inconvnients :
sommet de la pile. pas toujours dans une zone MC protge
sa cohrence ncessite galit du nombre
d'empilages et de dpilages (programmeur).
70
71 capacit souvent limite (par exemple 1 segment)
Sommet 72 0000 0011 PUSH 0
73 0000 0001 PUSH 0FFH
74 1111 1111 PUSH 1 L'appel procdural
Base 75 0000 0000 PUSH 3
76 L'intrt de l'utilisation de sous-programmes
77 nomms procdures lors de l'criture de gros
78
programmes a t dmontr : concision,
modularit, cohrence, Le programme
Les instructions d'entre et de sortie de pile sont principal (PP) fait donc appel (CALL) une
PUSH <n> et POP <reg>. Selon le type d'UC, la procdure P1 qui excute sa squence d'instructions
pile remonte vers les adresses faibles (voir puis rend la main, retourne (RET) l'instruction du
schma) ou bien descend vers les adresses fortes. PP qui suit l'appel. Cette rupture de squence avec
retour doit galement pouvoir tre ralise dans le
L'adresse du sommet de pile est toujours code de la procdure appele P1, soit rcursivement,
conserve dans un registre nomm pointeur de soit vers une autre procdure P2. Ces appels
pile (Stack Pointer SP). Sur certaines machines, imbriqus, en nombre quelconque, rendent
un registre gnral peut servir de SP. Certaines impossible l'utilisation d'une batterie de registres
UC utilisent galement un pointeur de base de qui sauveraient les valeurs de retour du CO !
pile (Base Pointer BP).
ASI Chapitre 6 : La couche Machine 88 ASI Chapitre 6 : La couche Machine 89

Exemple d'appels procduraux imbriqus Paramtres et Variables locales


P1 P2
La plupart des langages de programmation
ADD AX,BX MUL AX, BX
PP CALL P2 DIV AX, CX volus (Pascal, c, ) permettent le passage de
b1 : MOV AX, CX RET paramtres et l'utilisation de variables locales
ADD AX, 2 RET
MOV BX, 6 aux procdures. Les paramtres sont passs soit
P3
CALL P1 par valeur, soit par adresse. Les variables
a1 : ADD CX, 12 DEC CX
CALL P3 CMP CX, 0 locales sont cres l'activation de la procdure et
a2 : ROTL AX CALLNZ P3 dtruites lors de son retour (dure). D'autre part,
c1 : RET leur visibilit est rduite aux instructions de la
Les appels procduraux imbriqus ncessitent procdure.
l'utilisation de la pile de la manire suivante :
Passage de paramtre
CALL <adrs> gnre automatiquement (couche 1) :
1. PUSH CO ; le compteur ordinal pointe toujours Dans les programmes crits en langage machine,
sur l'instruction suivante la gestion des paramtres d'appel et de retour est
2. JMP <adrs> ; jump = goto la charge du programmeur (registres, MC, pile).
Par contre, un compilateur doit fournir une
RET gnre automatiquement : gestion gnrique des paramtres quel que soit
1. POP CO ; branchement l'adresse de retour leur nombre et leur mode de passage. La plupart
du temps, la pile est utilise de la faon suivante :
Exemple d'volution de la pile Dans lappelant, juste avant l'appel (CALL), le
compilateur gnre des instructions d'empilage
c1
(PUSHs) des paramtres d'appel et de retour.
c1 Juste aprs le CALL, il gnre le mme nombre de
b1 c1 c1 c1 c1 dpilage afin de nettoyer la pile. Dans le corps de
a1 a1 a1 a2 a2 a2 a2 a2 a2
la procdure appele, la premire opration
consiste affecter un registre d'index ou de base
Attention aux appels rcursifs mal programms qui (BP) la valeur du sommet de pile taille adresse
provoquent des dbordements de pile (Stack de retour. Par la suite, les rfrences aux
Overflow) ! P3 : 2n appels maximum (mots de n bits). paramtres sont effectues via ce registre
(BP0..n) !

ASI Chapitre 6 : La couche Machine 90 ASI Chapitre 6 : La couche Machine 91

Exemple de passage de paramtres : Paramtres et variables locales


Finalement, chaque instance dappel de procdure
Appelant Appele possde un espace dadressage local compos :

PUSH <param1> ; param de retour
PUSH BP; de l'appelant dune part, des paramtres dappel et de retour
MOV BP, SP
PUSH <param2> ; param d'appel MOV AX, (BP+2) ; param n localiss dans la pile (BP+2..n);

PUSH <param n> ; param d'appel
MOV BX, (BP+3) ; param n-1 dautre part, des variables locales localises dans
MOV CX, (BP+4) ; param n-2 la pile (BP+1..m).
CALL <appele>
a0 : POP <reg>
MOV (BP+n+1), AX ; rsultat
n POP BP Exemple simple
POP <reg> ; rsultat (retour) RET
Nous considrerons une procdure rcursive
BP appelant
simple nutilisant que des paramtres et variables
a0 a0 a0 locales cods sur un mot machine. La fonction
param n param n param n param n param n mult est une procdure un paramtre de retour
param n-1 param n-1 param n-1 param n-1 param n-1
ralisant la multiplication de 2 entiers positifs par
param1 param1 param1 param1 param1 additions successives. Nous ne traiterons pas des
problmes de dpassement de capacit ni de
loptimisation de lalgorithme (y=0).
Variables locales
L'implmentation de l'espace ddi aux variables entierpositif mult(entierpositif x, entierpositif y)
locales est ralis dans la pile d'excution. Les entierpositif i ; // inutile dans lalgo. !
premires instructions machines correspondant si x=0 alors retourne 0
la compilation d'une procdure consistent toujours sinon dbut
positionner les variables locales dans la pile, i=y
juste au dessus de ladresse de retour. Dans retourne mult(x-1,i) + y
lexemple prcdent, il suffit de rajouter autant de fin
PUSH, aprs le MOV BP,SP, que ncessaires. Ces
variables locales seront ensuite accdes via des Etudions le code compil de cette procdure et
adressages (BP-i) gnrs par le compilateur. Ce dun appel initial avec des donnes en entre : x=2,
type dimplmentation permet lappel procdural y=5.
ainsi que la rcursivit.
ASI Chapitre 6 : La couche Machine 92 ASI Chapitre 6 : La couche Machine 93

Image du code compil et de la pile Autres utilisations de la pile

Mult Cette structure de donnes LIFO est massivement


PUSH BP ; de l'appelant employe dans le cadre dalgorithmes divers et
MOV BP, SP
PUSH DX ; i qcq en (BP-1) varis.
CMP (BP+3), 0 ; x=0 ?
JE ZERO
MOV (BP-1),(BP+2) ; i:=y Exemples
Appelant
MOV AX, (BP+3) ;x
DEC AX ; x-1
PUSH <multret> ; param de retour PUSH DX ; retour qcq
drcursivation automatique : dans lexemple
PUSH x ; param d'appel 2 PUSH AX ; appel x-1 prcdent, les CALL rcursifs peuvent tre vits
PUSH y ; param d'appel 5 PUSH (BP-1) ; appel i
CALL mult CALL mult
en empilant successivement les valeurs des
; rcursif
A0: POP DX A1: POP DX ; dpile paramtres dappels puis en ralisant des
POP DX POP DX ; dpile appel additions successives lors des dpilages.
POP AX ; rsultat (retour) POP AX ; rsultat (retour)
CALL AFFICHEAX ADD AX, (BP+2) ; rsult + y
MOV (BP+4), AX ; range rsultat valuation dexpressions arithmtiques infixes
JMP FIN
ZERO : MOV (BP+4),0 ; range rs.=0 et parenthses : 3*(5+4*2)
FIN : POP DX ; var locale i
POP BP ; BP appelant 3*(5+4*2)
RET
0
BP2 ? BP3 ? 5 * 2 *
BP2 + 8 +
BP1 BP2 BP1 + 4 + 4
A1 A1 A1 5 5 ( 5 ( 5 ( 5 ( 13
? ( 3 *
BP1 5 5 5 5 3 * 3 * 3 * 3 * 3 * 39
BP0 1 0 1 BP0
A0 ? ? 5 A0 )
5 5 5 5 5 5 8=2*4 13=8+5 39=13*3
2 BP0 BP1 BP0 2 2
? 10 10
1 appel 2 appel 3 appel 1 retour 2 retour 3 retour parcours darbre (prfixe, infixe, postfixe)

Cet exemple illustre bien le danger de croissance etc


de la pile lors dappels rcursifs mal programms !
Remarquons que la drcursivation vidente de
mult peut tre ralise par le programmeur mais
parfois aussi par le compilateur.

ASI Chapitre 6 : La couche Machine 94 ASI Chapitre 6 : La couche Machine 95

6.4 Types dinstructions 6.4.2 Oprations arith. et logiques


Chaque catgorie dUnit Centrale possde un jeu Op. dyadiques ( deux oprandes)
particulier dinstructions machines. Cependant, on Un des 2 oprandes est souvent considr comme
peut classer les instructions de ces jeux en type destination de lopration moins que le rsultat
dinstructions : transfert, oprations arith., ne soit toujours transfr que dans laccumulateur.
Chaque machine a son type de reprsentation
6.4.1 Transfert de donnes prfr des oprandes (C2, DCB,).
Addition et Soustraction (toujours) : ADD SUB
Ces instructions permettent de copier ou bien de Multiplication et Division (parfois) : MUL DIV
dplacer une donne dun endroit source vers un ET, OU, OUeXclusif : AND OR XOR
emplacement destination. Les instructions de
copie sont largement majoritaires par rapport aux Remarques :
instructions de dplacement ! Selon les UC, les
termes suivants sont employs pour la copie : masquage par ET : AND R1, 00FH ; permet de
transfert, duplication, dplacement, mouvement, ne conserver dans R1 que le quartet de poids
chargement, rangement ! On aperoit donc faible !
souvent les mnmoniques : MOV, LOAD ou LD, inversion par OUX : XOR R1, 0F0H; permet
STORE ou ST, PUSH. dinverser le quartet de poids fort de R1 !
Remarquons que les instructions de dplacement raz par OUX : XOR R1,R1; <=> R1:=0 et plus
avec destruction de la source sont la plupart du rapide (adressage registre registre) !
temps restreintes aux dpilages : POP.
Les oprations en virgule flottante (simple ou
Ces instructions de transfert doivent prciser :
multiple prcision) peuvent tre cbles dans lUC
source , destination (voir modes dadressage), taille
ou cbles dans un co-processeur arithmtique ou
de la donne. La taille de donne peut tre code
excutes logiciellement par des sous-programmes.
dans le Code Opration mais peut galement tre
implicite ou constituer un oprande part entire.
ASI Chapitre 6 : La couche Machine 96 ASI Chapitre 6 : La couche Machine 97

Oprations monadiques (1 seul oprande) Branchements inconditionnels :


Lunique oprande source et destination peut JUMP adrs CO := adrs
parfois tre implicite (accumulateur).
Branchements conditionnels
Dcalages et rotations : SHL=SAL, SHR, SAR, JNC adrs si CF=0 alors CO:=adrs
ROL, ROR, RCL, RCR
Inc. et dcrmentations : INC DEC Il existe diffrents indicateurs dans le registre
Ngations log. et (arith.) : NOT (NEG) dtat : Carry Flag, Overflow F., Zero F., Neg. F.,
raz : CLEAR
Ces indicateurs sont positionns la suite de
Remarques lexcution dune opration arith. ou logique et
test dun bit par rotation : RCL R1; JC toto; sont plus ou moins rmanents ! Afin dviter une
positionne R1n-1 dans le Carry Flag. affectation inutile, une instruction particulire de
dcalage multiple dyadique : 2 oprande comparaison (CMP) permet de simuler la
immdiat ou dans un registre compteur : soustraction :
MOV CX, 4; SHL R1,CX ou bien SHL R1, 4 CMP R1, R2 PUSH R1; SUB R1,R2; POP R1
ngation C2 : NEG R1 ou NOT R1; INC R1
mult. et div. : R1*19= R1*24+R1*21+R1*20 2 A la suite de la comparaison, les indicateurs sont
dcalages (dont un multiple) et 3 additions. positionns et permettent donc deffectuer un
branchement conditionnel :
CMP R1,R2; JAE adrs3
6.4.3 Branchements et comparaisons
Remarque :
il existe des UC ayant des instructions 3
Pour raliser des ruptures de squence, des adresses permettant le branchement conditionnel
instructions de branchement, ou de saut, en une instruction :
permettent de modifier la valeur du Compteur
Ordinal. Ces instructions sont soit CMP adrs1, adrs2, adrs3, cest--dire si (adrs1)-
inconditionnelles (GOTO, BRANCH, JUMP), soit (adrs2)=0 alors JMP adrs3 sinon <continuer en
conditionnes par certaines valeurs des squence>
indicateurs du registre dtat (PSW ou Flags).

ASI Chapitre 6 : La couche Machine 98 ASI Chapitre 6 : La couche Machine 99

6.4.4 Procdures 6.4.6 Les Entres/Sorties


Une procdure, ou routine ou sous-programme, est I) Ces instructions sont trs fortement lies au
constitue dune suite dinstructions ralisant un matriel et varient donc normment en fonction
traitement particulier. Lappel cette procdure de lUC considre. Considrons dabord les UC
est gnralement ralis par une instruction pourvues dinstructions dE/S spcifiques :
CALL adrsproc. Le retour lappelant seffectue
ds que lon excute un RET dans la procdure 1) LUC excute les instructions dE/S et gre le
appele. priphrique : lUC passe son temps attendre

La rcursivit dune procdure est une proprit 2) LUC dlgue sa responsabilit une Unit
permettant celle-ci de sappeler elle-mme. La dE/S (ou dchange) qui effectue le contrle du
mise en uvre de la rcursivit est permise par la transfert des donnes. Paramtres : Nom priph.,
sauvegarde dans la pile de ladresse de retour, des sens transfert, adrs MC dbut (tampon ou buffer),
paramtres dappels ainsi que des variables locales nb de mots. Une fois le transfert initialis par une
la procdure. instruction spcifique, lUnit dE/S ralise ce
transfert de faon autonome en accdant
6.4.5 Itrations directement la MC (Direct Memory Access).

exemple dUnit dE/S : canal IBM 370


Lexcution rpte dune suite dinstruction, ou
1) lUC cre un prg canal en MC (suite
boucle, est permise grce certaines instructions
dinstructions spcifiques au canal considr).
de branchements conditionnels 3 adresses :
2) lUC charge ladrs MC 7210 ladrs de ce prg.
LOOP CX, 0, adrs ; permet de dcrmenter le
registre CX (compteur), de comparer CX avec 0, 3) lUC excute linston START I/O ncanal, npriph
enfin si CX?0 de boucler sur adrs (branchement). 4) lUC entreprend dautres traitements
4) Le canal effectue le transfert en excutant le
Sur certains processeurs, le compteur est implicite prg stock ladresse 72.
et la valeur immdiate (0) galement : LOOP adrs 5) lUC peut tester ou stopper lE/S : instructions
TEST I/O, TEST CHANNEL ou STOP I/O.
ASI Chapitre 6 : La couche Machine 100 ASI Chapitre 6 : La couche Machine 101

II) lUC ne possde pas dinstructions dE/S 6.5 Flux de commande


spcifiques. Dans ce cas, lUC communique avec
les priphriques de la mme faon quavec la MC.
Le flux de commande exprime lordre dexcution
On dit que les E/S sont projetes (ou mappes) en
des instructions par lUC. Le flux de commande
mmoire. Certaines adresses sont attribues aux
standard ou normal est la squence. Les
divers registres internes des units dE/S
instructions de branchement (conditionnel/
(registres programme, dtat, tampon). LUC crit
inconditionnel) ou dappel de procdures, ainsi que
donc des informations ces adresses pour
les droutements et les interruptions modifient cet
demander lunit dE/S correspondante
ordre.
dentreprendre une E/S.

Le premier avantage des E/S projetes en MC 6.5.1 Sauts et appels procduraux


consiste rduire le jeu dinstructions de lUC en
nayant pas dinstructions spcialises dE/S. Mais Tout dabord, on rappellera la nocivit des
lintrt primordial de cette mthode rside dans instructions GOTO (Branch, Jump) dans le cadre
lutilisation de la puissance du jeu dinstructions de lcriture de programmes sans erreur. Par
tout entier et des divers modes dadressage pour consquent, on essayera toujours :
accder aux registres des units dE/S. 1) dviter dcrire les programmes dans des
langages sans structures de contrle de haut
Linconvnient principal est la diminution de niveau (while, for, repeat);
lespace allouable la Mmoire Centrale. 2) de minimiser le nombre de saut dans les autres
programmes (notamment ceux de la couche
Exemple : machine).
Le PDP-11 a une imprimante standard projete On rappelle simplement ici le mcanisme dappel
ladresse octale 777514 (registre dtat) et 777516 (CALL) et de retour (RET) des procdures et
(registre tampon). Lorsque le bit 7 du registre lutilisation implicite et explicite de la pile pour la
dtat est 1 (bit ready) , cela signale que conservation : des adresses successives de
limprimante est prte recevoir un car. dans son retour, des paramtres dappel et de retour,
registre tampon. enfin des variables locales chaque appel.

ASI Chapitre 6 : La couche Machine 102 ASI Chapitre 6 : La couche Machine 103

6.5.2 Droutements 6.5.3 Interruptions (IT)


Un droutement (ou trappe trap) pendant Evnement provoqu par une cause externe au
lexcution dun programme P consiste stopper P programme et qui interrompt celui-ci pour
et appeler automatiquement une routine de excuter une routine de traitement de
traitement lorsque certaines conditions linterruption. A la fin de cette routine, le
surviennent. Par exemple, un dbordement de programme interrompu reprendra son excution
capacit survenu la suite dune opration dans ltat exact o il lavait laisse (sauf
arithmtique peut provoquer le droutement du exception : chute alimentation !).
programme vers une routine de traitement de
lerreur. Cette clause de reprise implique la sauvegarde du
contexte du programme en dbut de routine dIT
Remarquons quun droutement est provoqu par et sa restauration la fin. Le contexte du
lexcution du programme lui-mme, qui, en programme comprend en particulier lensemble
positionnant des indicateurs du mot dtat, des valeurs de tous les registres, y compris PSW.
dclenche, au niveau physique, un appel la
procdure approprie. Tout droutement pourrait Les IT sont principalement utilises dans la
tre simul par logiciel en testant le mot dtat gestion des E/S pour signaler la fin des transferts
puis en excutant un appel conditionnel la raliss de faon asynchrone, ce qui permet
routine aprs chaque opration dangereuse. dviter lattente active de lUC.
Le fait de traiter automatiquement les
Remarques :
droutements au niveau physique permet :
Les droutements sont parfois nomms
laugmentation de la vitesse dappel (couche
interruptions internes (8086).
physique)
La diffrence essentielle entre un droutement
la diminution de la taille du code
et une IT est que le droutement est synchrone
Exemples : avec le programme, alors que lIT ne lest pas.
dbordement, division par 0, dbordement de pile, Linstant dapparition dune IT est indpendante
violation de protection, opration indfinie du programme, pas le droutement !
ASI Chapitre 6 : La couche Machine 104 ASI Chapitre 7 : Perspectives et conclusion 105

Niveaux dinterruption
En gnral, il existe plusieurs niveaux de priorits 7. Perspectives et Conclusion
dIT. En effet, diffrents priphriques tant
connects, il importe dtablir une politique de 7.1 Perspectives de lASI
gestion des conflits. Diffrents algorithmes
utilisant plusieurs files de priorits sont utiliss. - Stratgie RISC/CISC : processeurs jeu
Par exemple, chaque niveau de priorit est associ dinstruction de limit/complexe : qui va gagner ?
un type de priph. et par consquent une
routine de traitement correspondante. Le numro - Nouveaux supports de mmoires de masse :
de priph. communiqu lors de lIT permettra de le optiques et magntiques, DVD ...
distinguer des autres de mme type.
- Miniaturisation : on va atteindre une
Transparence des IT imbriques asymptote horizontale pour les composants
Le mcanisme de traitement des IT est lectroniques actuels changement de
transparent lorsquil sapparente au mcanisme de technologie
lappel procdural. On utilise la pile pour - mtaux supraconducteurs
sauvegarder les contextes du programme et de la - ordinateurs biologiques (Science-Fiction ?)
suite des routines dIT interrompus. Attention
ne pas permettre de nouvelle IT pendant le - Standardisation : vue de lesprit puisque
chargement ou la sauvegarde dun contexte march fortement concurrentiel et impratifs
(atomicit) ! commerciaux prpondrants

Exemple : - Architectures parallles de machines


LIBM 370 ne permet pas les IT imbriques car un - multiprocesseurs mmoire partage
seul mot MC stocke le PSW du prog. interrompu. - machines systoliques communicantes (rseaux
Pour viter lcrasement de ce mot, un indicateur quadratiques ou cubiques de processeurs)
de contrle des IT du PSW de la routine est
positionn afin dinterdire (masquer) toute
nouvelle prise en compte dune autre IT.

ASI Chapitre 7 : Perspectives et conclusion 106 ASI Chapitre 7 : Perspectives et conclusion 107

7.2 Les autres couches : suivre 7.3 Conclusion


Il est absolument indispensable de comprendre les
Systmes dexploitation concepts de base des machines matrielles afin :

Etude des principes fondamentaux des systmes - dvaluer correctement les rsultats
dexploitation : numriques fournis par les machines (prcision).
- fichiers,
- processus, - de programmer intelligemment les algorithmes
- mmoire. dont on a minimis la complexit (des E/S
frquentes peuvent ruiner un algorithme dune
complexit infrieure un autre).

- de pouvoir optimiser les parties de programme


Assembleur les plus utilises en les rcrivant en langage de
bas niveau.
- mise en uvre dalgorithmes sur un jeu
dinstructions assembleur particulier ; - dcrire des compilateurs ou des interprteurs
- crire proprement dans un langage peu performants mme si ceux-ci sont crits en
structur ; langage de haut niveau.
- tudier concrtement des mcanismes
dadressage ; - de se prparer larrive de nouveaux
- (interfacer avec les autres couches : systme paradigmes de programmation
dexploitation et applications en langage volu). (programmation parallle).

et enfin dobtenir une bonne note lors de


lvaluation !
Systmes dexploitation Systmes de Gestion de Fichiers 108 Systmes dexploitation Systmes de Gestion de Fichiers 109

Remarque :
8. Les Systmes de Selon les SE, la longueur, le nombre, la structure
Gestion de Fichiers des champs est fixe ou variable. Lorsque l'article
est rduit un octet, le fichier est qualifi de non
structur. Au niveau logique, plusieurs modles
de base de donnes ont t dfinis : modle
8.1 Les Fichiers relationnel [Codd 76], rseau, hirarchique.

8.1.1 Introduction Dfinition physique :


Un fichier est constitu d'un ensemble de blocs
Dfinition conceptuelle : (enregistrement physique, granule, unit
Un fichier est une collection organise d'allocation, "block", "cluster") situs en mmoire
d'informations de mme nature regroupes en vue secondaire. Les articles d'un mme fichier
de leur conservation et de leur utilisation dans un peuvent tre groups sur un mme bloc (Facteur
Systme d'Information. de groupage ou de Blocage (FB) = nb
d'articles/bloc) mais on peut aussi avoir la
Remarque : situation inverse : une taille d'article ncessitant
inclut les SI non automatiss (agenda, catalogue plusieurs blocs. En aucun cas, un article de taille
de produits, rpertoire tlphonique,) taille d'un bloc n'est partitionn sur plusieurs
blocs lecture 1 article = 1 E/S utile.

Remarque :
les blocs de MS sont allous un fichier selon
Dfinition logique : diffrentes mthodes lies au type de support qu'il
C'est une collection ordonne d'articles soit adressable (disques, ) ou squentiel (bandes,
(enregistrement logique, item, "record"), chaque cassettes, "streamers"). Ces mthodes
article tant composs de champs (attributs, d'allocation sont couples des mthodes de
rubriques, zones, "fields"). Chaque champ est chanage des diffrents blocs d'un mme fichier
dfini par un nom unique et un domaine de et seront tudies dans le chapitre SGF.
valeurs.

Systmes dexploitation Systmes de Gestion de Fichiers 110 Systmes dexploitation Systmes de Gestion de Fichiers 111

8.1.2 Oprations et modes d'accs 8.1.3 Caractristiques fonctionnelles


Un certain nombre d'oprations gnriques Volume : taille d'un fichier en octets ou multiples.
doivent pouvoir tre ralises sur tout fichier : Si articles de longueur fixe alors taille article*nb
articles.
- cration cration et initialisation du
noeud descripteur (i-node, File Taux de consultation/mise jour pour un
Control Block, Data Control traitement donn : rapport entre le nombre
Block) contenant taille, date d'articles intervenant dans le traitement et nb
modif., crateur, adrs bloc(s), total d'articles.
- destruction dsallocation des blocs occups et
suppression du noeud descripteur Exemple : fichier "personnel", traitement "paye"
- ouverture rservation de tampons d'E/S en ==> taux de consultation = 100%
MC pour le transfert des blocs
- fermeture recopie des tampons MC vers MS Remarque : un taux de consultation important
(sauvegarde) implique souvent un traitement par lot avec une
mthode d'accs squentielle.
- lecture consultation d'un article
- criture insertion ou suppression d'un article Frquence d'utilisation : nb de fois o le fichier
est utilis pendant une priode donne.
La lecture et l'criture constituent les modes
d'accs et peuvent tre combins (mise jour) Taux d'accroissement : pourcentage d'articles
lors de l'ouverture d'un fichier (existant). A la ajouts pendant une priode donne.
cration, un fichier est toujours ouvert en criture.
Un SE multi-utilisateurs doit toujours vrifier les Taux de renouvellement/suppression :
droits de l'utilisateur lors de l'ouverture d'un pourcentage d'articles nouveaux/supprims pendant
fichier. une priode donne. (TR=TS ==> volume stable)
Systmes dexploitation Systmes de Gestion de Fichiers 112 Systmes dexploitation Systmes de Gestion de Fichiers 113

Ces diffrentes caractristiques ainsi que le type 8.1.4 Structure et Longueur des articles
prpondrant d'utilisation (traitement par lot ou
interactif) d'un fichier doivent permettre de
Articles de longueur fixe et de structure unique
dcider de la structuration des articles, du type de
Dans la plupart des cas, chaque article d'un fichier
support de stockage et des mthodes d'accs.
contient le mme nombre de champs chaque
champ tant de taille fixe. Il existe un type unique
On classe souvent les fichiers en diffrentes catgories :
d'articles.
fichiers permanents : informations vitales de
Exemple : fichier STOCK
l'entreprise : Client, Stock, Fournisseurs...
nom champ type taille exemple
dure de vie illimite, Frquence d'Utilisation
REF N 4 0018
leve, mj priodique par mouvements ou
DESIGN A 15 VIS 8*20
interactive.
QTE N 7 550 000
DATE D 6 23/09/92
fichiers historiques : archives du SI : Tarifs,
Prts-Bibliothque, journal des oprations
pas de mj, taux d'accroissement lev, taux de Articles de longueur fixe et de structure multiple
suppression nul. Les articles peuvent varier de structure parmi
plusieurs sous-types d'articles (record variant de
fichiers mouvements : permettent la mj en Pascal, union de C, C++). La longueur fixe des
batch des permanents afin d'viter incohrences articles d'un tel fichier correspond la longueur
ponctuelles : Entre/Sortie hebdomadaire stock, maximale des diffrents sous-types.
heures supplmentaires Janvier,
dure de vie limit, frquence d'utilisation trs Exemple : fichier PERSONNE, articles de 42 octets
faible.
NOM(20), PRENOM(15), SITUATION(1),
fichiers de manoeuvre : dure de vie trs courte cas SITUATION=M alors DATE_MAR(6)
(excution d'un programme) : spool, fichier cas SITUATION=D alors DATE_DIV(6)
intermdiaire. cas SITUATION=C alors rien

Systmes dexploitation Systmes de Gestion de Fichiers 114 Systmes dexploitation Systmes de Gestion de Fichiers 115

Remarque : les deux types d'articles prcdents 8.1.5 Mthodes d'accs


constituent la quasi-totalit des fichiers. La
longueur fixe des articles permet de raliser
8.1.5.1 Accs Squentiel
efficacement les calculs d'adresses de ceux-ci.
Les articles sont totalement et strictement
Articles de longueur var. et de structure multiple ordonns. L'accs (lecture/criture) un article ne
L'intrt principal de ce type d'articles consiste peut tre ralis qu'aprs l'accs l'article
dans le gain de place (suppression des blancs) prcdent. Un pointeur d'article courant permet
constitu par le compactage des fichiers concerns. de reprer la position dans le fichier un instant
L'inconvnient majeur rside dans la difficult donn. L'ouverture en lecture positionne le
calculer l'adresse d'un article. Ce type d'articles pointeur sur le 1er article puis les lectures
est particulirement utilis des fins d'archivage successives font progresser le pointeur jusqu' la
sur support squentiel et pour la tlinformatique. position End Of File (EOF). Selon les cas,
l'ouverture en criture positionne le pointeur en
La sparation des articles et des champs est dbut de fichier (rewrite) ou en fin de fichier
souvent effectue par insertion de prfixes (append). Il existe une opration spcifique de
indiquant la longueur de l'article ou du champ. remise zro du pointeur (retour en dbut de
fichier, rembobinage, "reset", "rewind").
Exemple : fichier PERSONNE
Historiquement li au support bande magntique et
TailleArt(1), NOM(1+20), PRENOM(1+15), SIT(1), cartes perfores, cette mthode d'accs est la plus
cas SIT=M alors DATE_MAR(6) simple et de surcrot est universelle. Elle reste trs
cas SIT=D alors DATE_DIV(6) utilise notamment pour les fichiers non structurs
cas SIT=C alors rien (textes, excutables,) ou les fichiers historiques.
Pour les fichiers permanents, si le taux de
18,5,UHAND,4,PAUL,M,23/08/91, consultation ou de mj est important, la solution
12,5,PETIT,4,JEAN,C, squentielle doit tre envisage. Cependant, l'accs
19,6,HOCHON,4,PAUL,D,10/10/89, squentiel est impensable pour un bon nombre d'op.
interactives (rservations, op. bancaires, )
Systmes dexploitation Systmes de Gestion de Fichiers 116 Systmes dexploitation Systmes de Gestion de Fichiers 117

8.1.5.2 Accs direct Adressage relatif


(ou slectif, alatoire, "random")
La cl est un nombre entier correspondant au
Ce type d'accs ncessite un support adressable!
numro logique (0..n-1) d'article dans le fichier.
Un ou plusieurs champs des articles servent
On obtient aisment l'adresse physique (bloc ;
d'expression d'accs (cl) pour "identifier" et
dpl.) de celui-ci :
accder un ou plusieurs articles. On peut taille fixe : AdPhy:=(Orga(nl div FactBloq); taille*(nl mod FactBloq))
directement lire ou crire l'article grce une taille var. : il existe une table de correspondance [nl --> AdPhy]
opration du type suivant :
Si la numrotation logique n'est plus continue
lire/crire(fichier, valcl, adrsMCtransfert) (suppressions), de l'espace inutile continue tre
occup par le fichier ! En effet, la compression
On peut galement vouloir accder aux articles aprs chaque suppression serait trop coteuse.
par l'intermdiaire de plusieurs cls : L'insertion suivante sera donc ralise dans un
trou. L'ordre des nl ne correspond donc pas
Exemple : fichier Personne; cl1 = NSS; cl2 = Nom
forcment l'ordre d'insertion !
Par la suite, nous traiterons de la manire de
raliser l'accs direct sur un fichier cl unique. Adressage dispers, calcul ("hash-coding")
Selon les cas, la transposition aux cls multiples
L'adressage dispers consiste calculer un
est plus ou moins simple !
numro logique d'article partir d'une valeur de
cl et d'une fonction de hachage : nl:=f(c).
Adressage direct
Ce type d'adressage est un cas d'cole puisqu'il associe chaque f permet de rduire le domaine des nl par rapport
valeur de cl l'adresse physique du bloc contenant l'article. Il
au domaine des cls afin de donner un volume de
y a ainsi identit des valeurs de cl d'article et des adresses
physiques de bloc. Un inconvnient vident est que le domaine fichier suprieur au volume utile mais infrieur
des valeurs de cl doit correspondre exactement aux domaine des card(domaineCl)*tailleArt.
adresses physiques. De plus, l'espace adressable est trs
fortement sous-occup (FB=1) et ne peut tre partag par Avantages :
plusieurs fichiers ayant des valeurs de cls conflictuelles ! Par calcul en MC ==> accs trs rapide
contre, le temps d'accs un article est minimal. La cl doit
tre identifiante !
cls quelconques : non identifiantes ==> collisions

Systmes dexploitation Systmes de Gestion de Fichiers 118 Systmes dexploitation Systmes de Gestion de Fichiers 119

exemple : La dtermination d'une bonne fonction de hachage


donnant un faible taux de collision est un gage
Domaine Cl Cls utilises numros logiques de rapidit d'accs. Exemple : somme des entiers
0
1 0 (16 bits) composant la clef modulo taille fichier.
1 1 Avec une cl non identif., le taux de collision
2
3 2
4 f 3 augmente.
4
4
5
5 Lorsque le volume utile du fichier crot, il est
99998 99998 6
7 ncessaire de rorganiser celui-ci, par exemple, en
99999
8 allouant un espace logique double du prcdent,
Dans cet exemple, un domaine de 106 cls potentielles est rduit
en modifiant f et en rorganisant les articles
un espace logique de 9 numros logiques permettant de stocker existants.
les 3 articles rels.
inconvnients :
hachage parfait collisions coteuses
Une fonction de dispersion idale est celle qui pas d'accs squentiel (accs calculs rpts)
ralise une bijection de l'ensemble des cls taux d'occupation mmoire <= 1
existantes vers l'ensemble des numros logiques. Il taille du fichier connue priori
n'y a ainsi aucun espace perdu. La recherche d'une rorganisations coteuses
fonction idale est calculable sur un ensemble
statique de cls identifiantes mais impossible sur Adressage index
un ensemble dynamique
Un index est une table de couples (valeur cl, nl)
Collisions ou conflits trie sur les valeurs de la cl. L'index est dense si
Il y a collision lorsque la fonction de hachage toutes les cls du fichier y sont recenses. Sinon
associe un numro logique dj utilis un nouvel l'index est dit creux et une cl c prsente dans le
article. Il faut alors traiter la collision pour insrer fichier et absente de l'index est dite couverte par
le nouvel article dans le fichier : la cl tout juste infrieure prsente dans l'index.
- soit dans une zone de collision gnrale accde soit Un index creux implique une cl primaire, c'est
squentiellement, soit par une autre fonction f2
- soit dans une zone de collision spcifique chaque numro
dire que le fichier soit tri sur cette cl. D'autres
logique. index secondaires doivent alors tre dense !
Systmes dexploitation Systmes de Gestion de Fichiers 120 Systmes dexploitation Systmes de Gestion de Fichiers 121

Exemple d'Index creux primaire : Exemple d'index par b-arbre :


numros logiques
0 1 2 3
Index 14 22
6,Paul/13,Durand/14,Pierre/
( ,4) 4 blocs
(6,0) 1,Dupont/5,Hochon/ / / d'index
(15,16) 10 18 20 30
(46,12) 135,Michel/ / / / Blocs (FB=4)
(135,8)
46,Potuit/49,Dru/ / / 2 10 14 18 20 22 30
Paul Ilot Duri Py Rat Ture Pou
15,Riton/ / / / 9 19 29
Piera Tota Roit
La recherche d'une cl d'un article est ralise par
dichotomie sur le fichier d'index. Lorsque le fichier
1 bloc de fichier = 1 2 articles
atteint un volume important, son fichier d'index
Afin de maintenir les contraintes lors des
ne tient plus sur un seul bloc et on est alors forc
suppressions ou des insertions d'articles, on est
de parcourir squentiellement les blocs d'index.
parfois oblig de rorganiser l'arborescence !
Moins rapide que le hachage pour l'accs direct,
Aussi, on prfre une organisation arborescente
l'adressage index permet cependant de traiter
(b-arbre) de l'index dans laquelle existe une
galement l'accs squentiel moindre cot
hirarchie de sous-tables d'index creux permettant
(index creux ou b-arbre).
une bonne rapidit d'accs. En fait, on indexe
chaque bloc d'index ! Remarques
Il existe toujours un compromis (place utilise/temps d'accs).
Contraintes sur un b-arbre d'ordre p (#ptrs/bloc Les insertions et suppressions d'articles provoquent des trous
index) dans les blocs de donnes. L'index b-arbre gre ceux-ci mais les
tout chemin (racine --> feuille) est de longueur index linaires (creux ou denses) ne le font pas (voir SGF)
identique = hauteur (exemple h=2) Pratiquement, les b-arbres et les index creux (ISAM)
prdominent dans les SGBD (vitesse + accs squentiel).
chaque bloc d'index est toujours au moins
index multiples : on peut ajouter des index secondaires denses
moiti plein (sauf la racine) : chaque bloc d'index peu efficaces pour l'accs squentiel.
contient k cls avec EntInf(p/2)kp-1 (ex. p=3).

Systmes dexploitation Systmes de Gestion de Fichiers 122 Systmes dexploitation Systmes de Gestion de Fichiers 123

8.2.2.2 Support adressable (disque)


8.2 Systme de Gestion des Fichiers
Espace adressable numrot (0..b-1) de b blocs.
L'accs deux blocs conscutifs est peu coteux
8.2.1 Organisation arborecente (translation et rotation minimale de la tte de
lecture/criture). Remarquons que la
La quasi-totalit des SGF sont organiss en numrotation logique des blocs ne correspond pas
arborescence de rpertoires (catalogue, la topologie (facteur d'entrelacement).
"directory") contenant des sous-rpertoires et
fichiers. Suivant le cas, les rpertoires sont 2 problmes :
considrs comme des fichiers (unix) ou bien disponibilit ou occupation d'un bloc
demeurent dans des zones de MS spcifiques (MS- localisation et ordonnancement des blocs d'un fichier
DOS zone DIR). Le rpertoire permet d'accder au
noeud descripteur d'un fichier qu'il contient. Ce
noeud permettra de connatre la localisation et Gestion des blocs disponibles
l'ordonnancement des blocs contenant les donnes
de ce fichier. Par la suite, on supposera des Une liste des blocs libres doit tre maintenue afin
rpertoires de mme nature que les fichiers. de grer les crations et destructions de fichiers.

8.2.2 Allocation de mmoire secondaire implmentations :


tableau de bits : 0100011111101110 (mot de b bits)
8.2.2.1 Support squentiel (bande) demande bloc : chercher le 1 0 dans la liste puis 0 -> 1
rejet bloc : 1 -> 0
- pistes longitudinales (1 car/ 8|16 pistes //)
- densit d'enregistrement en bpi (1600..6000) considrer cette liste des blocs libres comme un
- blocs spars par des gap inter-bloc (2 cm) fichier, donc utiliser une des mthodes d'allocation
- fichiers spars par des gaps inter-fichier
- enttes de blocs et de fichiers permettant le positionnement.
suivantes.
- on ne modifie jamais directement une bande.
- les maj sont effectues lors de la recopie sur une autre bande.
- faible cot, accs lent ==> archives, copies, sauvegardes
Systmes dexploitation Systmes de Gestion de Fichiers 124 Systmes dexploitation Systmes de Gestion de Fichiers 125

Allocation contige Allocation chane

Ex : fic1 (b0..b3); fic2(b9..b12); ; fick(b5..b6) Les blocs de donnes d'un fichier contiennent un
pointeur sur le bloc suivant. Le noeud descripteur
temps d'accs squentiel et direct optimal
contient, lui, la tte de liste. Lors de la cration, la
noeud descripteur contenant blocDebut, nbBlocs
tte est mise nil, puis, au fur et mesure des
peu utilis car les fichiers ont des tailles
demandes, une allocation contige (optimale en
dynamiques ==> survaluation a priori des
temps d'accs) est tente. Si celle-ci ne peut avoir
volumes fichiers, rorganisations frquentes et
lieu, on choisit le(s) premier bloc disponible.
coteuses lors des augmentations de volume.
utilisation pour les tables systmes de taille fixe :
MS-DOS : boot, FAT1, FAT2, DIR
Avantage
Unix : boot, SF type, i-node table
plus de fragmentation externe donc seule
Problme de l'allocation dynamique (=new, malloc) limitation = taille espace disque libre.
lors d'une demande de n blocs libres, le systme
doit chercher un trou (suite de blocs libres) Inconvnients
suffisament grand parmi les trous de l'espace Accs squentiel seulement !
disque.
fragmentation interne des fichiers ncessitant
Stratgies
de nombreux mouvements de tte. Des utilitaires
Premier trouv ("First-Fit") : on parcours la
de compactage permettent la rorganisation
liste des trous jusqu' en avoir trouv un assez
priodique des fichiers en allocation contige.
grand.
Plus Petit ("Best-Fit") : on cherche dans toute
fiabilit : si un pointeur est dtruit
la liste la borne suprieure des trous => parcours
logiciellement ou matriellement (bloc illisible) on
intgral ou liste des trous trie et recherche dicho.
perd tout le reste du fichier.
Plus Grand ("Worst-Fit") : inverse de Best-Fit.
Des simulations ont prouves la meilleure performance de BF et encombrement disque d aux pointeurs si blocs
FF en temps et en espace utilis. Lorsque l'espace libre est de petite taille
suffisant mais qu'il n'existe pas de trou assez grand, cette
fragmentation externe implique un compactage des fichiers.

Systmes dexploitation Systmes de Gestion de Fichiers 126 Systmes dexploitation Systmes de Gestion de Fichiers 127

Allocation chane dporte Avantage


accs direct et squentiel rapide
On dporte le chanage dans une table systme
(FAT pour MS-DOS) dont chaque entre pointe
Inconvnients
sur le bloc de donnes suivant du fichier. La tte
fragmentation interne => compactages priodiques
de liste est positionne dans le noeud descripteur.
taille gaspille dans les blocs d'index >> taille
Cette table de chanage est charge en MC
des pointeurs en alloc chane.
(volume courant) afin de permettre des accs
petits fichiers : pour 2 ou 3 adresses de blocs, on
directs rapides.
monopolise un bloc index !
trs grands fichiers : un bloc index tant
Avantage
insuffisant, plusieurs blocs index peuvent tre
Accs direct et squentiel peu coteux
chans et un mcanisme de multiple indirection
peut tre utilis.
Inconvnients
fragmentation interne (compactages priodiques)
accs direct aprs parcours de la liste en MC
Allocation directe
Allocation indirecte (indexe)
Le noeud descripteur contient tous les pointeurs
sur les blocs de donnes. De taille fixe et petite,
Un bloc d'index contient la liste des pointeurs sur
cette structure de donnes ne pourra tre utilise
les blocs de donnes du fichier. Ce bloc d'index est
que pour des fichiers de faible volume.
lui-mme point par un champ du noeud
descripteur de fichier. A la cration le bloc d'index
Avantage
est initialis nil, nil, , nil et lors des critures
accs direct et squentiel trs rapide
successives, les premiers pointeurs sont affects des
peut tre mixte avec indirection ou chanage
adresses des blocs allous par le gestionnaire de
mmoire disponible. Ici encore la contigut est
Inconvnients
tente ! A l'ouverture, le bloc index est charg en
taille limite des fichiers
MC afin de permettre les accs.
fragmentation interne
Systmes dexploitation Systmes de Gestion de Fichiers 128 Systmes dexploitation Systmes de Gestion de Fichiers 129

8.3 Exemples Fichier et catalogue

Un fichier MS-DOS est une suite d'octets dsign par un


8.3.1 Le SGF MS-DOS identifiant compos d'un nom de 8 caractres et d'une
extension de 3 caractres. Par exemple, COMMAND.COM,
PRG1.PAS, SALAIRES.DBF, TEXTE1.DOC
Nous dcrivons ci-aprs l'organisation physique
d'un volume MS-DOS sous la forme d'une Un catalogue ("directory") MS-DOS est un type de fichier
disquette 5,25 pouces. Les principes d'allocation de particulier permettant de regrouper diffrents fichiers de
MS-DOS restent les-mmes quel que soit le donnes et/ou d'autres catalogues dans une mme entit.
L'architecture du Systme de Fichiers est donc une arborescence
support adressable, seuls le nombre et la taille des
dont toutes les feuilles sont des fichiers et tous les nuds
champs varient. intermdiaires des catalogues. Le catalogue racine est dsign
par un "backslash" \ et est stock en dbut de disquette.
Une disquette, ou disque souple ou "floppy disk", est constitue
d'un support plastique mince de forme discale d'un rayon de 5,25
pouces (1 pouce = 2,54 cm) sur lequel a t dpos un substrat Allocation
magntique. Dans le cas de disquettes double face double
densit, cette surface homogne de particules magntisables est
Les fichiers sont fragments en allocation chane dporte
structure en 2 faces de 40 pistes possdant chacune 9
et MS-DOS conserve dans une table l'adresse des diffrents
secteurs. Les pistes concentriques sont numrotes de 0 39
fragments. Cette table s'appelle Table d'Allocation des Fichiers
depuis l'extrieur vers l'intrieur. Chaque secteur contient 512
("File Allocation Table") et sera dsigne par la suite par FAT.
octets utiles. La capacit d'une disquette est donc de 2 * 40 * 9 *
Deux copies de la FAT sont stockes sur la disquette (secteurs
512 = 360 Koctets.
1,2 et 3,4) afin de garantir la scurit des donnes en cas de
destruction accidentelle d'une des deux copies. Le catalogue
gnral (racine) de la disquette est lui situ sur les secteurs 5
L'unit d'allocation ("cluster"), ou bloc, est la plus petite partie
11. Le secteur 0, quant lui, contient le programme
d'espace mmoire allouable sur une disquette. Pour une
d'amorage sur les disquettes systmes ("boot-strap"). Enfin les
disquette 5,25 pouces 360 Ko, un bloc est constitu de deux
secteurs 12 719 contiennent les donnes des diffrents fichiers.
secteurs conscutifs et a donc une capacit d'1 Ko. La
numrotation des secteurs est effectue de la faon suivante :

Face 0Piste 0 Secteurs 0 8 catalogue racine


Face 1 Piste 0 Secteurs 9 17
Face 0 Piste 1 Secteurs 18 26 C'est une table dont les entres ("File Control Block") ont une
Face 1 Piste 1 Secteurs 27 35 etc longueur de 32 octets qui dcrivent les fichiers et les sous-
catalogues. Une entre de rpertoire peut tre schmatise de la
faon suivante :

Systmes dexploitation Systmes de Gestion de Fichiers 130 Systmes dexploitation Systmes de Gestion de Fichiers 131

FCB exemple de FAT

0..7 nom du fichier sur 8 octets type 005 000 i FFF


8..15 extension sur 3 octets attrib rserv par MS-DOS disquette
ut 0 1 2 3 4 5 6 i
16..23 rserv par MS-DOS heure 1 bloc du fichier 2 bloc du fichier indique la fin
modificat = bloc n 6 = bloc n 9 du chanage
24..31 date 1 entre Taille fichier (LSB, MSB)
modificat. FAT Dans cet exemple, le fichier est contenu sur trois blocs (6, 9 et
i+4). La fin du chanage est indiqu par la valeur 0FFFH (nil)
L'octet d'attribut permet de spcifier certaines protections : tandis qu'une valeur 000 indique un bloc libre. La gestion des
fichier cach, lecture seulement, archive, systme, normal ou blocs libres (table de "12 bits") est en effet coupl au
encore de prciser que le fichier est un catalogue. L'heure et la mcanisme de FAT.
date de dernire modification permettent de retrouver la
dernire version d'un fichier de travail. La taille du fichier est Deux remarques
cod sur 32 bits ce qui permet une taille maximale de 4 Giga- - Les entres du rpertoire racine ne sont pas compactes et la
octets ! Ce qui est bien entendu impossible sur une disquette valeur 0E5H situe sur le premier octet d'un FCB signifie que
de 360 Ko. Enfin, la 1re entre dans la FAT permet d'indiquer cette entre est libre. Soit cette entre n'a jamais t utilise
le premier maillon du chanage dans la FAT qui pointera lui- pour dcrire un fichier ou un catalogue, soit ce fichier ou ce
mme sur le second qui pointera sur le troisime etc catalogue a t dtruit (delete ou rmdir) et le systme a
simplement surcharg le premier octet du nom du fichier par
un code 0E5H. Par consquent, la recherche d'un nom dans le
la FAT 12 bits catalogue gnral est effectue squentiellement sur toutes les
entres. On aurait pu tout aussi bien choisir de compacter les
C'est une table d'entres d'une longueur de 12 bits (1,5 octets) entres du catalogue chaque destruction de fichier, ce qui
qui spcifie le chanage permettant de reconstituer un fichier aurait diminu le temps de recherche d'un fichier n'existant pas !
fragment sur plusieurs blocs. Les deux premires entres (0 et Mais cela aurait interdit les utilitaires de rcupration de
1) de cette table sont rserves par le systme pour prciser le fichiers dtruits (undelete).
type de la disquette sur laquelle elle se trouve (simple/double - La seconde remarque concerne la fragmentation des fichiers
face, simple/double densit). L'entre numro 2 correspond au sur la disquette. Au bout d'un certain nombre de crations et de
premier bloc de la disquette non rserv au systme, c'est-- destructions de fichiers et de rpertoires, les diffrents blocs
dire le bloc n 6 (secteurs 12 et 13). Ainsi le fichier dont le "1 supportant les donnes d'un fichier se trouvent tre dissmins
entre FAT" de son entre de rpertoire est 2 verra son premier sur la disquette. Or le transfert en mmoire centrale de tous les
bloc de donnes situ sur les secteurs 12 et 13. Dans cette blocs de ce fichier va ncessiter un grand nombre de
premire entre FAT on trouve la valeur de l'entre suivante, mouvements de translations du bras de lecture. C'est pourquoi il
par exemple 005, qui correspond au bloc de donnes suivant. existe des utilitaires de compactage des blocs des fichiers d'une
disquette permettant de minimiser les temps d'accs un
fichier.
Systmes dexploitation Systmes de Gestion de Fichiers 132 Systmes dexploitation Systmes de Gestion de Fichiers 133

La VFAT 32 8.3.2 Le SGF d'Unix

Nouveau standard de FAT permettant de grer Exemple d'une arborescence de fichiers Unix
des disques durs de grande capacit (>2Go) : 2 /
Entres de FAT sur 12, 16 ou 32 bits permettant
bin usr dev
des petits clusters ;
FCB sur 32, 37 ou 44 octets (FCB tendu). 6 5 8

ls cat dupont durand prt1 hda2

14 7
Exemple : disquette 1.4 Mo 3 12 10 15

data1 prg1 prg2 data2


Volume :
80 pistes/face : 160 pistes 19 18 13 11

18 secteurs/piste : 2880 secteurs


512 octets/secteurs : 1440 Ko soit 1.40 Mo catalogues : bin, usr, dev, dupont, durant;
1 secteur/cluster fichiers ordinaires : ls, cat , data1, prg1, prg2, data2;
fichiers priphriques : sous le catalogue dev ("device") : prt1,
dsk2.
FAT
1 FAT : 9 secteurs * 2 copies ; Caractristiques
Entre de FAT : 12 bits ; Entres/Sorties gnralises ou transparentes
3072 entres (2880 clusters) dsignation : chemin d'accs absolu /, ou relatif
fichiers non structurs = suite d'octets numrots logiquement
Rpertoire racine : de 0 n-1 (n = longueur du fichier) : structuration la charge des
programmeurs
Rpertoire racine sur 14 secteurs accs direct une suite d'octet partir d'une position i dans le
FCB sur 32 octets fichier (0 i n-1) et/ou accs squentiel
soit 224 entres catalogues Unix = liste (nom de fichier, # i-node)
identification = # i-node
dsignations multiples : compteurs de liens ou de rfrences
Taux de transfert : 500 Kbits/s
systme de protection : rwx rwx rwx propritaire groupe
Les noms longs de fichiers de WinX sont stocks autres

dans le FCB suivant immdiat cod en Unicode.

Systmes dexploitation Systmes de Gestion des processus 134 Systmes dexploitation Systmes de Gestion des processus 135

Remarque : l'observation des ressources


9. Les processus Unix courantes d'un processus actif ne peut tre fait
qu'entre deux instructions (atomicit).
9.1 Gnralits
ressource locale un pus i : si elle ne peut tre
Processus : suite temporelle d'excutions utilise que par le pus i. ex : variables du prog.
d'instructions d'un programme par un processeur.
(programme : donnes + suite d'instructions) ressource commune : si elle n'est locale aucun
pus. ex : tube
La gestion des processus (pus) tant trs
dpendante du SE tudi, nous nous bornerons partageabilit : une ressource commune est
dfinir quelques notions gnrales avant d'aborder critique (resp. partageable n=2 points d'accs)
plus particulirement les pus Unix. si sur un point observable elle ne peut tre
dtenue que par un (resp. n) pus au plus. ex : l'UC
nom d'un pus : o numro d'identification du pus est critique; une zone mmoire tube est
qui permet sa manipulation par le systme et par partageable 2 points d'accs.
l'utilisateur l'ayant cr.
Plusieurs pus sont dits en exclusion mutuelle sur
ressources : emplacements de mmoire centrale, r lorsque ils utilisent cette ressource critique r.
priodes d'utilisation de l'UC, priphriques
ncessaires un processus pour son volution. mode : niveau de pouvoir (droits) dans lequel
s'excute le pus lui permettant ou non d'accder
tat : un processus disposant de toutes les certaines ressources et/ou d'excuter certaines
ressources (UC, MC, ) ncessaires l'excution instructions privilgies de l'UC. ex : dans de
de sa prochaine instruction est dans l'tat actif. nombreux systmes deux modes (seulement)
Dans tous les autres cas, il est bloqu sur la ou les existent : mode matre (ou systme ou
ressources manquantes. noyau)/mode esclave (ou utilisateur). Le mode
d'un pus peut tre statiquement donn la
cration ou voluer dynamiquement (Unix).
Systmes dexploitation Systmes de Gestion des processus 136 Systmes dexploitation Systmes de Gestion des processus 137

dure de vie : un pus nat, aprs chargement en 9.2 Description des processus
MC, lors du lancement du programme par le SE et
meurt la fin de l'excution de ce programme lors
Unix
du retour au SE.
image mmoire d'un pus : ensemble des zones
Les mcanismes de synchronisation permettent mmoires utilises par un pus :
notamment l'activation d'un pus bloqu sur une
ressource ou au contraire le blocage d'un pus actif.
ex : l'accs de 2 pus une ressource critique zone Systme zone Utilisateur
ncessite leur synchronisation afin qu'un seul segment
d'entre eux n'obtienne la ressource. pid, ppid, tat
utilisateurs (2)

ADD AL,'X'
de code

valeurs reg.
descripteurs
Les mcanismes de communication permettent adresses segm. segment de
allocation
plusieurs pus de se transmettre des donnes. Afin
stat/extern
donnes
statiques
d'viter la communication par fichier (E/S lentes) 3.14159
tas
on utilise des structures de donnes en mmoire var dynam. segment de
new, malloc
centrale : variables partages, tubes, signaux, files donnes
dynamiques
de messages, sockets, var locales pile

Le recouvrement (overlay) est une technique qui


permet de remplacer une partie de la mmoire Un processus Unix ralise ses instructions
centrale par une autre. ex : un programme trs normales en mode utilisateur puis commute en
long peut tre dcompos en parties se recouvrant mode systme lors d'un appel au noyau, d'une
pour diminuer l'espace utilis (quasiment plus interruption, ou d'un droutement.
utilis car grande mmoires et pagination).
La commutation de pus est toujours effectue en
mode systme par le pus "partant" (pas de
premption).

ASI Chapitre 8 : Assembleur 138

10. Assembleur

S-ar putea să vă placă și