Академический Документы
Профессиональный Документы
Культура Документы
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
http://hdl.handle.net/2243/BK_1001
Architectures
Logicielles
et
Matrielles
e
Ar
P. chit
F. Am ectu
La bla res
P.
Sic gnie rd, J Log
ar r, F .-C ici
d,
. M . F elle
Ph
ar ern s et
.W a
ail nin ande Ma
ch
le
z, tr
e
i,
iel
les
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
17
22
25
28
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
34
36
39
46
54
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
57
59
66
72
73
74
75
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
83
84
90
98
99
103
104
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VI
II
Ar
P. chit
F. Am ectu
La bla res
P.
Sic gnie rd, J Log
ar r, F .-C ici
d,
. M . F elle
Ph
ar ern s et
.W a
ail nin ande Ma
ch
le
z, tr
e
i,
iel
les
.
.
.
.
.
.
.
.
7 De
1.
2.
3.
4.
5.
6.
129
130
134
135
141
143
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
145
145
148
151
156
164
170
8 Circuits combinatoires
1.
Notion de circuit combinatoire . . . . . .
2.
Assemblage de blocs de base... . . . . . .
3.
Algorithmique cble : conception logique
a e
4.
Etude de cas . . . . . . . . . . . . . . . .
5.
Exercices . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
173
174
181
186
194
196
9 Elments de mmorisation
e
e
1.
Points de mmorisation de bits : bascules et registres . . . . . . .
e
2.
La mmoire : organisation matricielle des points de mmorisation
e
e
3.
Ralisation des mmoires statiques . . . . . . . . . . . . . . . . .
e
e
4.
Optimisations et techniques particuli`res . . . . . . . . . . . . . .
e
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
199
200
211
215
218
10 Circuits squentiels
e
1.
Notion de circuit squentiel . . . . . . . . . . . . . . . . . .
e
2.
Synth`se des automates dcrits par leur graphe . . . . . . .
e
e
3.
Synth`se des circuits squentiels par ots de donnes . . .
e
e
e
4.
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
223
224
230
241
248
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
251
252
253
257
261
271
III
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
sparation du
e
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
275
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
277
278
304
310
310
315
VII
IV
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
machine
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
357
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
359
360
363
364
370
372
376
385
321
322
327
342
351
387
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
391
391
395
399
405
16 Circuits dentres/sorties
e
1.
Notion dentres/sorties . . . . . . . . . . . . . . . . .
e
2.
Synchronisation entre le processeur et un priphrique
e
e
3.
Connexion dorganes priphriques . . . . . . . . . . .
e
e
4.
Programmation dune sortie . . . . . . . . . . . . . . .
5.
Programmation dune entre . . . . . . . . . . . . . .
e
6.
Optimisation des entres/sorties groupes . . . . . . .
e
e
7.
Exercices . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
407
407
409
410
412
418
419
425
17 Pilotes de priphriques
e
e
1.
Structure dun pilote de priphrique
e
e
2.
Pilote pour un clavier . . . . . . . .
3.
Pilote pour un disque . . . . . . . .
4.
Pour aller plus loin... . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
427
428
429
433
442
18 Vie
1.
2.
3.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
des programmes
445
Interprtation et compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
e
Compilation spare et code translatable . . . . . . . . . . . . . . . . . . . . . 452
e e
Format des chiers objets translatables et dition de liens . . . . . . . . . . . 464
e
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
473
475
476
480
486
VIII
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.
VI
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
493
494
495
505
511
513
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
515
515
517
518
520
22 Le mcanisme dinterruption
e
1.
Architecture dun processeur pour la multiprogrammation .
2.
Introduction dun mcanisme de scrutation lmentaire . . .
e
ee
3.
Un exemple dtaill dutilisation : mise ` jour de la pendule
e
e
a
4.
Notion de concurrence et datomicit des oprations . . . .
e
e
5.
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
521
521
525
531
538
540
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
541
541
546
549
556
560
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
561
562
569
575
580
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Index
581
Bibliographie
587
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Introduction
10
Introduction
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Parmi les th`mes tr`s intressants que nous avons dlibrement carts (et
e
e
e
e e
e
e
rservs pour le tome 2 !) gurent :
e
e
Ltude ne des fonctionnalits dun syst`me dexploitation particulier.
e
e
e
Beaucoup de nos rfrences sont inspires dunix1 .
ee
e
Ltude de la hirarchie mmoire (cache et mmoire virtuelle), que nous
e
e
e
e
passons totalement sous silence.
Ltude dtaille dun langage dassemblage dun processeur donn. Beaue
e
e
e
2
coup de nos rfrences sont inspires du sparc ou du Motorola 680003 .
ee
e
Ltude des techniques de conception de circuits micro-lectroniques. Par
e
e
exemple nous ne parlons ni de consommation, ni de circuits asynchrones.
Ltude des techniques doptimisation des performances des procese
seurs. Nous ne dveloppons pas les techniques de pipeline, ni celles de
e
rordonnancement dynamique du ot dexcution des instructions.
e
e
Les entres/sorties tr`s particuli`res que constituent les acc`s dun ordinae
e
e
e
teur ` un rseau, ce qui demanderait un dveloppement spcique.
a
e
e
e
marque dpose, et dans la suite de louvrage nous ne prciserons plus que les noms de
e e
e
syst`mes et de machines sont, videmment, dposs.
e
e
e e
2
marque dpose
e e
3
marque dpose
e e
11
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Introduction
2 : Alg`bre de Boole
e
1 : LORDINATEUR
6 : Aspects temporels
7 : Electronique
9 : Elments de
e
mmorisation
e
4 5 : Reprsentation
e
des traitements et
donnes
e
3 : Reprsentation
e
des grandeurs
8 : Circuits
combinatoires
12 13 : Langages
machine et
dassemblage
10 11 : Circuits
squentiels
e
14 : LE PROCESSEUR
15 : Liaisons mmoire
e
processeur
16 17 : Matriel et
e
logiciel dentres / sorties
e
18 : Vie des
programmes
19 : Gestion de chiers
21 ` 24 :Syst`me complexe
a
e
Interruptions Processus
20 : Interpr`te
e
de commandes
Fig. 0.1 Relations de dpendance des principales ides utilises dans les 24 chapitres.
e
e
e
La zone grise correspond plutt au monde du logiciel, la zone blanche au
e
o
matriel.
e
12
Introduction
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Remerciements
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 1
1.
Notion dinformation
1.1
14
1.1.1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Une information peut tre en relation avec une grandeur physique, lorie
gine tant par exemple mcanique (forme, dimensions, emplacements dobjets,
e
e
intensit dune force), lectromagntique (amplitude, frquence ou phase dun
e
e
e
e
signal lectrique, dune onde lectromagntique), lectrochimique (PH dun
e
e
e
e
liquide, potentiel lectrochimique dune cellule nerveuse).
e
1.1.2
Reprsentation et codage
e
1. Notion dinformation
15
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
entre les disques anciens et les disques compacts. Il est parfois ncessaire de
e
raliser par un dispositif lectronique une conversion entre ces deux types de
e
e
reprsentation.
e
Un chire binaire, 0 ou 1, sut ` reprsenter un bit. Un vecteur de bits
a
e
constitue un mot. Les mots de 8 bits sont des octets.
Une mme information peut tre reprsente dans lordinateur de faons
e
e
e
e
c
diverses : le caract`re frapp au clavier est dabord connu comme un couple
e
e
de coordonnes dune touche au clavier (la touche en deuxi`me colonne de la
e
e
troisi`me ligne), puis par une squence de variations de potentiel sur une ligne
e
e
lectrique liant le clavier et lordinateur (combinaison temporelle), puis par un
e
vecteur de chires binaires dont les composantes sont les unes ` ct des autres
a oe
en mmoire (combinaison spatiale), puis par une reprsentation sous forme de
e
e
matrice de points allums/teints sur lcran.
e e
e
Pour les informations structures complexes (en raison des combinaisons)
e
le codage constitue un langage. Les programmes sont crits dans des langages
e
de programmation, les gures sont dcrites dans des langages de description
e
de gures, etc.
Dans le langage courant on assimile souvent linformation, sa valeur, sa
reprsentation.
e
1.2
16
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Les informations peuvent tre transmises dun point ` un autre. Des liaie
a
sons par ls lectriques ou par ondes lectro-magntiques (radio, infra-rouge,
e
e
e
visible, . . .) nous sont famili`res. A lintrieur dun ordinateur la distance est
e
e
parfois de moins dun micron (106 m). Quand une fuse transmet vers la Terre
e
des images de lespace, la distance est de plusieurs millions de kilom`tres. Les
e
rseaux permettent les transmissions entre ordinateurs.
e
Il arrive que le codage de linformation comporte une certaine redondance.
Cela peut permettre, si lon garde linformation en exc`s, de dtecter des ere
e
reurs de transmission, ou, si le dbit dinformation est une priorit, de come
e
presser la reprsentation avant de la transmettre.
e
1.2.3
1.3
17
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.4
2.
18
Mot de m bits
Adresses
Acc`s mmoire
e
e
Compteur
1 1 1 0 ... 0 Programme
0
1
2
3
0 1 0 0 1 ... 0
Lecture/Ecriture 0 1 0 1 0 ... 1
0 0 1 0 ... 0 Registre
Instruction
bus donnes
e
1 0 1 0 ... 1
0 0 1 1 ... 1 Registres
de
calcul
bus adresses
Donnes
e
1 1 1 1 0 ... 0
1 1 1 0 0 ... 1
Unit de calcul
e
Processeur
Programme
Initialisation
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Horloge
2n 1
Mmoire centrale
e
2.1
2.2
19
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La mmoire centrale
e
Les informations sont codes sous forme numrique. Les instructions, les
e
e
caract`res, les couleurs, etc., sont reprsents par des suites de chires bie
e
e
naires. Les informations sont stockes dans une mmoire dans des emplacee
e
ments numrots nomms mots. Le numro dun emplacement est son adresse.
e e
e
e
Le maintien de la correspondance entre le nom de linformation et ladresse du
mot mmoire o` est range une de ses reprsentations est une tche dicile et
e
u
e
e
a
une proccupation permanente en informatique.
e
Une criture dans la mmoire associe une valeur ` une adresse (on parle
e
e
a
aussi daectation). Apr`s une criture, on peut excuter une ou plusieurs
e
e
e
lectures de la mme information. La lecture fournit la valeur associe ` cette
e
e a
adresse.
La mmoire est ` aectations multiples : on peut crire successivement
e
a
e
plusieurs valeurs dans un mot. Chaque criture associe une nouvelle valeur
e
a
` ladresse. Elle induit un changement de ltat de la machine, en dtruisant
e
e
lassociation prcdente. Elle nest pas rversible : il nest pas possible dannuler
e e
e
la nouvelle association pour accder ` nouveau ` lancien contenu.
e
a
a
La mmoire contient des donnes et des programmes constitus de suite
e
e
e
dinstructions. Le codage de linformation est tel que rien ne permet de reconna
tre une reprsentation de donne et une reprsentation dinstruction.
e
e
e
Cette distinction naurait pas de sens puisquun programme peut mme crer
e
e
des donnes qui sont en fait des instructions. Cette possibilit est ce qui donne
e
e
toute sa spcicit aux ordinateurs. Cela oppose le mod`le de type Von Neue
e
e
mann ` celui dit de Harvard ou de Manchester dans lequel il existe deux
a
mmoires respectivement ddies aux donnes et aux instructions.
e
e e
e
20
Le processeur
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2.2
21
Ecran
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Clavier
Processeur
Mmoire
e
centrale
Disque
Fils spcialiss
e
e
Coupleur
de clavier
Coupleur
dcran
e
Coupleur
de disque
Bus donnes
e
Bus adresses
2.2.3
22
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
3.1
Matriel
e
Aspect du matriel
e
23
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
pas quun ordinateur peut parfois tre une armoire, ou une carte imprime,
e
e
voire simplement une puce ou circuit comme sur votre carte bancaire. Lcran
e
nest pas ncessaire ` lordinateur. Ce nest quun moyen de communiquer entre
e
a
la machine et ltre humain.
e
3.1.2
Technologie du matriel
e
Fonctions du matriel
e
24
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
porte une partie de mmoire vive et une partie de mmoire morte. Quand on
e
e
coupe lalimentation lectrique, la mmoire morte ne perd pas les informations
e
e
qui y sont inscrites. La mmoire morte ne peut pas tre facilement modie.
e
e
e
La mmoire secondaire contient des informations moins directement accessibles
e
par le processeur. Il faut passer par une interface. Ainsi les disques souples ou
durs sont des mmoires secondaires. Elles sont gnralement permanentes :
e
e e
linformation y reste en labsence dalimentation lectrique. La carte perfore
e
e
a longtemps constitu un support de stockage en informatique. Son avantage
e
est de pouvoir tre lue directement par lutilisateur humain.
e
Une mmorisation a lieu aussi dans le processeur qui garde temporairement
e
des copies de certaines informations dans ses registres.
La fonction de traitement est assure par le processeur. Il peut lire ou crire
e
e
le contenu de la mmoire principale. Il peut ensuite, comme on la vu, excuter
e
e
les instructions lues.
Dautres circuits ont des fonctions de communication entre le processeur
et la mmoire ou entre le processeur et le monde extrieur. Ces circuits dine
e
terfaage et de communication sont des coupleurs. Les communications avec
c
le monde extrieur se font ` travers des priphriques comme les claviers, soue
a
e
e
ris, lecteur/graveur/enregistreurs de disques. Dautres types de coupleurs permettent de connecter lordinateur ` dautres ordinateurs via un rseau. Dans
a
e
les applications industrielles o` une cha de production est pilote par ordiu
ne
e
nateur il serait incongru de considrer la cha comme un priphrique ! Du
e
ne
e
e
point de vue du programmeur cest pourtant le cas.
3.2
Les programmes et les donnes peuvent tre enregistrs sur des supports
e
e
e
magntiques ou en mmoire vive ou morte. Ils peuvent tre prsents (en pare
e
e
e
tie) dans le processeur : ` un instant donn linstruction en cours dexcution
a
e
e
est dans dans le registre dinstruction du processeur. Cette information est
duplique, on ne lenl`ve pas de la mmoire pour lexcuter. Les programmes
e
e
e
e
peuvent tre achs ` lcran ou crits sur une feuille de papier.
e
e a e
e
Sur un mme disque optique ou magntique, ou dans une mmoire, on
e
e
e
peut trouver le texte source dun programme et le format objet correspondant. Quand on ach`te un logiciel on nach`te gnralement que le code objet.
e
e
e e
Lditeur se prot`ge ainsi contre la possibilit pour le client de modier le logie
e
e
ciel. On ach`te aussi le plus souvent des donnes : dictionnaire du vricateur
e
e
e
orthographique, images des jeux, etc.
3.3
Le matriel a une vie tr`s simple : avant la mise sous tension, il ne fait
e
e
rien. Certaines informations sont stockes en mmoire morte ou en mmoire
e
e
e
secondaire. Aucun traitement na lieu ; ` la mise sous tension, il se produit une
a
25
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
Cette partie dcrit dirents usages de lordinateur. Cela nous permet ene
e
suite de distinguer lordinateur de direntes machines programmables qui ne
e
sont pas des ordinateurs.
4.1
26
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Dans ces machines il faut pouvoir crire des programmes et les traduire
e
en langage machine puis les charger et les lancer. La traduction dun pro-
27
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.2
28
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.
Plan du livre
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5. Plan du livre
29
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
30
Quest-ce quun ordinateur ?
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Premi`re partie
e
Outils de base de
lalgorithmique logicielle et
matrielle
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 2
34
Alg`bre de Boole
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
1.1
Oprations
e
Soit lensemble B = {0, 1}. On dnit une relation dordre total sur cet
e
ensemble en posant : 0 1. A partir de cette relation dordre, on dnit les
e
oprations suivantes sur les lments de B :
e
ee
Addition :
x + y = max(x, y)
Multiplication :
x.y = min(x, y)
Complmentation : x = 0 si x = 1 et x = 1 si x = 0
e
1.2
b
0
0
1
1
a+b
0
1
1
1
a.b
0
0
0
1
1
0
-
Dnition
e
1. Alg`bre de Boole
e
35
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
Lalg`bre de Boole la plus simple est dnie sur lensemble ` deux lments :
e
e
a
ee
B = {0, 1}. Pour ltude des raisonnements sur les propositions logiques,
e
il existe des synonymes pour les noms des lments de cet ensemble et des
ee
oprations ; on parle alors de faux et vrai (au lieu de 0 et 1) et des oprateurs et
e
e
et ou (au lieu de la multiplication et de laddition). Les dnitions et les proe
prits mathmatiques restent identiques. Ces termes sont utiliss aussi dans
ee
e
e
ltude des circuits logiques.
e
Lensemble des parties dun ensemble E (not P(E)) muni des oprations
e
e
dintersection ensembliste (correspondant ` .), dunion ensembliste (correspona
dant ` +) et de complmentaire ensembliste dans E (correspondant ` ) forme
a
e
a
une alg`bre de Boole. Lensemble vide correspond ` 0 et lensemble E ` 1.
e
a
a
Lensemble des nuplets de boolens muni des oprations daddition, de mule
e
tiplication et de complmentation tendues aux vecteurs forme une alg`bre de
e
e
e
Boole. (0, 0, . . . , 0) correspond ` 0 et (1, 1, . . . , 1) ` 1.
a
a
(x1 , x2 , ..., xn ) + (y1 , y2 , ..., yn ) = (x1 + y1 , x2 + y2 , ..., xn + yn )
(x1 , x2 , ..., xn ).(y1 , y2 , ..., yn ) = (x1 .y1 , x2 .y2 , ..., xn .yn )
(x1 , x2 , ..., xn ) = (x1 , x2 , ..., xn )
1.4
Principaux thor`mes
e e
de
a=a
a+1=1
a+a=a
a + a.b = a
a + a.b = a + b
a.b + a.b = b
simplication
duale
duale
duale
duale
duale
duale
duale
boolenne
e
a=a
a.0 = 0
a.a = a
a.(a + b) = a
a.( + b) = a.b
a
(a + b).( + b) = b
a
(a + b).( + c).(b + c) = (a + b).( + c)
a
a
36
x2
0
0
1
1
x3
0
1
0
1
y
1
1
0
0
x1
1
1
1
1
x2
0
0
1
1
x3
0
1
0
1
y
1
1
0
1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
x1
0
0
0
0
R`gles de De Morgan
e
duale
a.b = a + a + b = a.
b
b
duale
x1 .x2 . . . . .xn = x1 + x2 + . . . + xn x1 + x2 + . . . + xn = x1 .2 . . . . .n
x
x
2.
Fonctions boolennes
e
2.1
2.1.1
Dnitions
e
(x1 , x2 , ..., xn ) est appele variable boolenne gnrale. f est appele fonction
e
e
e e
e
a
` n variables. Une valeur donne de (x1 , x2 , ..., xn ) est appele point de la
e
e
fonction.
La faon la plus simple de dnir une fonction est de donner la liste de
c
e
ses valeurs en chaque point. On peut le faire sous la forme dun tableau que
lon appelle aussi table de vrit. La gure 2.1 donne la table de vrit dune
e e
e e
fonction ` 3 variables.
a
Lensemble des points de la fonction forme le domaine de la fonction. On
dit quune fonction couvre tous les points pour lesquelles elle vaut 1 (sousensemble du domaine pour lequel la fonction vaut 1). La fonction f dnie par
e
la table 2.1 couvre les points (0, 0, 0), (0, 0, 1), (1, 0, 0),(1, 0, 1) et (1, 1, 1).
Remarque : Une fonction boolenne peut servir ` reprsenter un ensemble :
e
a
e
la fonction vaut 1 en chacun des points appartenant ` lensemble. On parle de
a
fonction caractristique.
e
2.1.2
2. Fonctions boolennes
e
x2
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
f13
1
1
0
1
f14
1
1
1
0
f7
0
1
1
1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
x1
0
0
1
1
37
x1
0
0
1
1
x2
0
1
0
1
f8
1
0
0
0
f9
1
0
0
1
f10
1
0
1
0
f11
1
0
1
1
f12
1
1
0
0
f15
1
1
1
1
Les tables de vrit des 16 fonctions ` deux variables sont listes dans la e e
a
e
gure 2.2. f1 et f7 correspondent respectivement ` la multiplication et laddition
a
algbriques vues auparavant.
e
2.1.3
2.2
2.3
Relations dordre
Lordre dni sur B est tendu aux variables gnrales et aux fonctions
e
e
e e
boolennes.
e
La relation dordre partiel sur les variables boolennes gnrales est dnie
e
e e
e
par : (x1 , x2 , ..., xn ) (y1 , y2 , ..., yn ) si et seulement si j, xj yj . Par exemple
(0, 0, 1) (0, 1, 1). En revanche, (1, 0, 1) et (0, 1, 0) ne sont pas comparables.
La relation dordre partiel sur les fonctions boolennes simples est dnie
e
e
comme suit. La fonction f est infrieure ` la fonction g si et seulement si pour
e
a
tout point P : f (P ) g(P ) ; cest-`-dire si tous les points couverts par f sont
a
couverts par g.
Remarque : Si f et g sont respectivement les fonctions caratristiques des
e
ensembles A et B, f g signie que A est inclus dans B.
38
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La relation dordre partiel sur les fonctions boolennes gnrales est dnie
e
e e
e
comme suit. La fonction gnrale F = (f1 , f2 , . . . , fm ) est infrieure ` la fonce e
e
a
tion G = (g1 , g2 , . . . , gm ) si pour tout i dans 1..m, on a fi gi .
2.4
Fonctions phi-boolennes
e
Une fonction boolenne partielle est une fonction boolenne dont la valeur
e
e
nest pas dnie en chaque point. Dans la pratique les fonctions partielles
e
sont utilises pour dnir des fonctions dont la valeur en certains points est
e
e
indirente ou dont la valeur des entres en certains points est impossible.
e
e
On peut coder une fonction partielle f par une fonction totale dont le
codomaine est complt par une valeur appele . La valeur est associe
ee
e
e
aux points non dtermins de f . Une telle fonction est dite phi-boolenne.
e
e
e
Dnition On appelle fonction phi-boolenne une application f de {0, 1}n
e
e
f
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
39
3.1
3.1.1
Expressions algbriques
e
Dnitions
e
1.(0 + x1 .x2 ).
e
e
Littral : On appelle littral loccurrence dune variable ou de son
e
e
complment dans une expression algbrique. Les littraux apparaissant dans
e
e
e
lexpression de la fonction f dnie ci-dessus sont : x1 , x2 , x2 .
e
o
toutes les variables de la fonction. Chaque ligne de la table de vrit correse e
pond ` un monme canonique. On note dans le monme x si la variable x vaut
a
o
o
40
3.1.2
Thor`me de Shannon
e e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
i 1..n
f (x1 , x2 , ..., xn ) = xi .f (x1 , x2 , . . . , 0, ..., xn ) + xi .f (x1 , x2 , . . . , 1, ..., xn )
f (x1 , , xi1 , 1, xi+1 , , xn ) et f (x1 , , xi1 , 0, xi+1 , , xn ) sont appels cofacteurs positif et ngatif de f par rapport ` la variable xi . Ils sont
e
e
a
nots respectivement fxi et fxi .
e
La dcomposition de Shannon sur la variable xi scrit : f = xi .fxi + xi .fxi .
e
e
Cette dcomposition est unique.
e
Il existe la forme duale du thor`me de Shannon :
e e
f (x1 , x2 , ..., xn ) = (xi + f (x1 , x2 , . . . , 1, ..., xn )).(xi + f (x1 , x2 , . . . , 0, ..., xn ))
3.1.3
Formes de Lagrange
1 0
x1 .x2 + x1 .x2 qui se simplie en x1 .
1 1
y
1
1
0
0
Noms usuels
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Fonctions Expressions
f0
0
f1
x1 .x2
f2
x1 .x2
f3
x1
f4
x1 .x2
f5
x2
f6
x1 .x2 + x1 .x2
f7
x1 + x2
f8
x1 + x2
f9
x1 .x2 + x1 .x2
f10
x2
f11
x1 + x2
f12
x1
f13
x1 + x2
f14
x1 .x2
f15
1
41
ou exclusif
ou, or, somme
ni, non ou, nor
conjonction
complment de x2
e
complment de x1
e
implication
exclusion, non et, nand
tautologie
3.2
3.2.1
Tableaux de Karnaugh
Dnition
e
42
c
(0,0,1)
(0,1,1)
01
11
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
00
(1,0,1)
(1,1,1)
(0,1,0)
b
(0,0,0)
(1,0,0)
a
10
O
(1,1,0)
(b)
(a)
ab
00
01
11
10
00
01
11
10
cd
a.d
a..d
c
3.2.2
de 4 cases est a.d puisque a poss`de la valeur 1 pour ces 4 cases et d poss`de
e
e
la valeur 0 pour ces 4 cases. Il correspond ` la simplication suivante ` partir
a
a
01
11
ab
00
cd
10
01
11
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ab
00
cd
43
10
00
00
01
01
11
11
10
10
e=0
e=1
b.
b)
Ce type de reprsentation est bien adapt aux fonctions de 2 ` 5 variables.
e
e
a
Les fonctions ` 5 variables peuvent tre reprsentes sur deux tableaux de
a
e
e
e
Karnaugh ` 4 variables (lun pour une des variables ` 0, lautre pour cette
a
a
mme variable ` 1). Deux cases situes ` la mme place sur les 2 tableaux sont
e
a
e a
e
adjacentes. Sur la gure 2.6, les 2 regroupements griss sont un seul monme :
e
o
a..d. Il correspond ` la simplication ` partir des 4 monmes canoniques
c
a
a
o
suivants : a. c.d.+ a.b..d.+ a. c.d.e+ a.b..d.e = a..d..(b+ a..d.e.(b+
b. e c e b.
c
c e
b)+ c
= a..d. + a..d.e = a..d.(e + e) = a..d.
b) c e c
c
c
Lexpression polynmiale de la fonction dnie par les tableaux de Karo
e
naugh de la gure 2.6 est a..d + a.c. + a.d.e + a. c.d.
c
e
b.
On peut procder de la mme mani`re pour des fonctions ` 6 variables en
e
e
e
a
dessinant 4 tableaux ` 4 variables, au-del` cela devient inextricable.
a
a
3.2.3
On peut obtenir facilement une forme compose des monaux dune fonction
e
(forme duale) ` partir de son tableau de Karnaugh. Pour cela on regroupe les
a
cases adjacentes comportant des 0. Les variables du monal sont celles qui ne
changent pas mais sont donnes sous forme complmente par rapport ` leur
e
e
e
a
valeur.
Lexpression algbrique sous forme produit de monaux de la fonction f
e
dnie par le tableau de Karnaugh de la gure 2.7 est : f (a, b, c) = (a+)( c).
e
c b+
3.3
44
ab
00
01
11
10
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a+c
+c
b
xi
fxi
fxi
Arbre de Shannon
45
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
f
a
Fig. 2.9 Larbre de Shannon dune fonction f ` 3 variables a, b, c avec lordre : a <
a
<
b < c et le rsultat de la mise en commun de 3 sous-arbres identiques.
<
e
est unique.
3.3.2
46
f
a
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
(a)
(b)
4.
Manipulation de reprsentations
e
de fonctions boolennes
e
Un circuit est en gnral spci par une fonction boolenne. Nous vere e
e e
e
rons dans le chapitre 8 comment peut tre ralis le processus de synth`se
e
e e
e
dune fonction boolenne vers une technologie cible. Selon les outils, la forme
e
de dpart de la fonction dans ce processus inue normment sur la forme
e
e
e
du circuit rsultant et en particulier sur ses performances en terme de rapie
dit de calcul, surface en millim`tres carrs, consommation lectrique, etc. Ces
e
e
e
e
crit`res de performance peuvent tre traduits de faon plus ou moins prcise en
e
e
c
e
crit`res simples doptimisation sur les formes des fonctions boolennes. Nous
e
e
justierons ces crit`res au chapitre 8.
e
Nous indiquons dans ce paragraphe quelques formes particuli`res et
e
quelques mthodes pour manipuler lexpression dune fonction boolenne `
e
e
a
des ns doptimisation en vue dune implmentation physique.
e
Les premi`res mthodes bases sur les tableaux de Karnaugh ont vu le
e
e
e
jour dans les annes 50 [Kar53]. Elles permettent dobtenir une forme poe
lynmiale minimise de faon manuelle. Des algorithmes permettant de trouver
o
e
c
une forme polynmiale minimale ont ensuite t dvelopp dans les annes 60
o
ee e
e
e
et 70 [Kun65, Kun67]. Devant laugmentation de la complexit des fonctions et
e
des formes ncessaires pour une implmentation dans des technologies de plus
e
e
en plus varies, des mthodes bases sur des reprsentations plus compactes,
e
e
e
e
en particulier graphe de dcision binaire, ont vu le jour depuis.
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.1
47
b
Le probl`me est donc dans tous les cas de partir dune fonction boolenne
e
e
et daboutir ` un ensemble de fonctions respectant la ou les formes imposes
a
e
par la technologie cible. Des algorithmes propres ` chaque technologie ont t
a
ee
dvelopps.
e
e
Les crit`res doptimisation sont alors le nombre de fonctions (qui est li ` la
e
ea
surface du circuit rsultant) et le nombre dtages de sous-fonctions imbriques
e
e
e
(qui est li au temps de calcul du circuit). Le nombre dtages maximal est
e
e
appel chemin critique.
e
Exemple E2.3 Soit la fonction f dnie par lexpression algbrique :
e
e
f (a, b, c, d) = a.b.c + a. c + c.d + c.d. Regardons les solutions auxquelles on
b.
b.
e
est 11. Le nombre de fonctions imbriques maximal est gal ` 2 : (f, SF ). Une
e
e
a
nouvelle fonction appele sous-fonction SF a t introduite pour parvenir `
e
ee
a
un ensemble de fonctions respectant le crit`re.
e
Si lon veut aboutir ` des fonctions possdant au plus deux monmes de
a
e
o
trois variables : f (a, b, c, d) = SF1 + SF2 avec SF1 = a.b.c + a. c et SF2 =
b.
c.d + c.d. Deux sous fonctions ont t introduites. Le nombre de littraux est
ee
e
12 . Le chemin critique est gal aussi ` 2.
e
a
48
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
SF2 = c.d + c.d. De plus SF3 = b.c et SF4 = c. Le nombre de littraux est
b.
e
14. Le chemin critique est gal ici ` 3 (f, SF1 , SF3 ).
e
a
4.2
Dnitions
e
On peut obtenir de faon tr`s visuelle les monmes premiers sur un tableau
c
e
o
de Karnaugh ` 2 dimensions en cherchant les pavs de cases adjacentes valant
a
e
1, les plus grands possible.
Exemple E2.4 La fonction reprsente sur la gure 2.11 poss`de 5
e
e
e
d, M 4 = a..d,
c
Elle poss`de 2 bases irrdondantes : M 1 + M 2 + M 4 + M 5
M 5 = a.b.c.
e
e
et M 1 + M 2 + M 3. Lexpression minimale (en nombre de monmes) de la
o
fonction est : f = b. +
c b.c.d + a. d
b.
01
11
10
00
01
11
10
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
ab
00
cd
49
4.2.3
50
00 01
11 10
ab
cd
00
00
01
01
11
11
10
10
00 01
ab
cd
00 01
11 10
00
01
11
10
11 10
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ab
cd
(a)
(b)
(c)
ab
00
cd
11
ab
00
cd
10
01
11
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
01
51
10
00
00
01
01
11
11
10
10
f1
f2
M4
ab
00
cd
01
11
10
M6
00
01
11
10
M1
M2
ab
00
cd
01
11
10
00
M3
01
11
M7
10
f1
f2
M5
52
01
11
10
ab
00
cd
01
11
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ab
00
cd
10
00
00
01
01
11
11
10
10
f1
f2
4.3
Lutilisation des BDDs est aujourdhui largement rpandue car cest une
e
reprsentation tr`s compacte et particuli`rement adapte ` lobtention de
e
e
e
e a
formes factorises et ` la dcomposition en sous-fonctions.
e
a
e
Nous donnons ici les principes de base pour construire un BDD rduit ore
donn ` partir dune expression boolenne algbrique. Le lecteur pourra trouver
ea
e
e
la justication et des dtails dimplmentation logicielle de cette construction
e
e
dans [KB90].
Nous avons vu quun BDD est un graphe de Shannon dans lequel il ny a
pas de redondances. Il sagit de construire le BDD sans construire larbre de
Shannon complet. Pour cela, on construit rcursivement le BDD en vitant de
e
e
fabriquer un sous-arbre dj` construit.
ea
Soit un ordre donn sur les variables de la fonction. On eectue ` chaque
e
a
tape de la rcursion la dcomposition de Shannon suivant la variable coue
e
e
rante et lon construit le BDD ` partir des BDDs des cofacteurs positif et
a
ngatif de f. Pour xer les ides, nous donnons gure 2.16 un algorithme de
e
e
spcication fonctionnelle de la construction dun BDD ` partir dune exprese
a
sion algbrique boolenne. Lors de la mise en oeuvre de cet algorithme, il faut
e
e
viter de construire deux fois le mme objet.
e
e
La fonction RepCanonique fabrique un nouveau BDD ` partir dune variable
a
et de deux BDDs dirents, si le BDD ` construire nexiste pas, dans le cas
e
a
contraire elle donne le graphe correspondant au BDD qui existait dj`. Pour
ea
la mettre en oeuvre, il faut dnir une table avec adressage dispers (hashcode
e
e
en anglais), la fonction de dispersion portant sur la variable et les pointeurs
des BDD ls. La comparaison de deux BDDs consiste en la comparaison des
pointeurs associs aux racines des graphes.
e
:
le BDD reprsentant la valeur 1
e
le BDD reprsentant la valeur 0
e
D\ : un arbre binaire de racine r, de ls gauche G et de ls droit D
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Notations
/1\ :
/0\ :
/G, r,
53
Fonction principale :
LeBdd (e : une expression algbrique) un BDD
e
{ e tant une expression boolenne, LeBdd(e) est le BDD associ ` e. }
e
e
ea
LeBdd (1) = /1\
LeBdd (0) = /0\
LeBdd (e1 op e2) = TBop (LeBdd(e1), LeBdd(e2))
LeBdd (op e) = TUop (LeBdd(e))
Fonctions intermdiaires
e
TBop (b1, b2 : deux BDD) un BDD
{ b1 et b2 sont deux BDD. Il existe une fonction TBop par oprateur bie
naire trait : elle fabrique le BDD rsultat de lapplication de loprateur
e
e
e
en question aux deux BDD b1 et b2. }
TUop (b : un BDD) un BDD
{ b est un BDD. Il existe une fonction TUop par oprateur unaire pris
e
en compte : elle produit le BDD rsultat de lapplication de loprateur
e
e
au BDD b }
RepCanonique (x une variable ; b1,b2 : deux BDD) un BDD
{ RepCanonique(x, b, b) = b. x tant une variable, b1 et b2 deux BDDs
e
dirents, RepCanonique(x, b1, b2) est le BDD de racine x, de ls
e
gauche b1 et de ls droit b2. Ce BDD nest construit que sil nexiste
pas dans lensemble des BDD dj` construits }
ea
Exemple pour loprateur OR
e
{ On applique les r`gles de simplication triviales associes ` loprateur
e
e a
e
or : vrai or e = vrai, faux or e = e, e or e = e }
TBor (1,b) = /1\
TBor (0,b) =b
TBor (b, 1) = /1\
TBor (b, 0) = b
TBor (b, b) = b
TBor (b1, b2) =
selon b1, b2 { b1 = b2 }
/Ax, x, A\ = b1 et /Bx, x, B\ = b2 :
x
x
RepCanonique (x, TBor(Ax, Bx), TBor(A, B))
x x
/Ax, x, A\ = b1 et /By, y, B\ = b2 :
x
y
si x < y alors RepCanonique (x, TBor(Ax, b2), TBor(A, b2))
<
x
sinon RepCanonique (y, TBor(b1, By), TBor(b1, B))
y
Fig. 2.16 Construction dun BDD ` partir dune expression algbrique boolenne
a
e
e
54
Exercices
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.
a.b + a.b = b
a
` partir de la deuxi`me forme du thor`me de Shannon.
e
e e
E2.15 : Poids dun vecteur boolen
e
On appelle poids dun vecteur boolen le nombre de 1 de ce vecteur. le vecteur
e
(0, 1, 1, 0) a un poids de 2. Donner des expressions boolennes des fonctions
e
simples p2 , p1 et p0 qui correspondent au codage en base 2 du poids dun vecteur de 4 variables boolennes x1 , x2 , x3 , x4 .
e
5. Exercices
55
a
g
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
f
e
e + a.b.d.e + a..d..
b.c.e + a.b.d.
c e
E2.18 : Acheur 7 segments
Soit un acheur ` cristaux liquides comportant 7 segments, comme il y en a
a
sur la plupart des calculettes.
On veut raliser les 7 fonctions boolennes (a, b, c, d, e, f , g) ` 4 variables
e
e
a
(e4 , e3 , e2 , e1 ) qui correspondent aux 7 segments (Cf. Figure 2.17). La fonction
boolenne vaudra 1 si le segment doit tre allum pour la reprsentation du
e
e
e
e
chire dcimal donn en binaire par (e4 , e3 , e2 , e1 ). Par exemple le chire 3
e
e
(e3 e2 e1 e0 = 0011) en entre donne a = b = c = g = d = 1.
e
Ces 7 fonctions sont phi-boolennes car on ne veut reprsenter que les
e
e
chires dcimaux (0...9). Sur 4 bits on a aussi les entres de 10 ` 15 qui
e
e
a
correspondent donc ` des points ` pour les 7 fonctions. Attention le 6 et
a
a
le 9 pouvant avoir direntes reprsentations sur lacheur, nous choisirons ici
e
e
de reprsenter le 6 avec le segment a allum et le 9 avec le segment d allum.
e
e
e
Donner les tableaux de Karnaugh de ces 7 fonctions. Donner une base
irrdondante minmale gnrale de la fonction gnrale F = (a, b, c, d, e, f, g).
e
e e
e e
Donner les ROBDDs de a, b et c avec dirents ordres sur les variables.
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
56
Alg`bre de Boole et fonctions boolennes
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 3
1.
1.1
Codage binaire
58
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
semble des N ls peut se trouver dans une des 2N congurations possibles. Les
N ls peuvent reprsenter 2N informations direntes. On parle aussi des 2N
e
e
valeurs possibles dune information. Il y a l` une dirence entre le vocabulaire
a
e
courant et un vocabulaire technique.
Pour valuer le nombre de valeurs direntes reprsentables sur N bits, il
e
e
e
est commode davoir en tte les valeurs des petites puissances de 2 et les ordres
e
de grandeurs des grandes : 20 = 1 ; 21 = 2. Les puissances suivantes sont
4, 8, 16, 32, 64, 128, 28 = 256 et 210 = 1024. Comme 1000 est proche de
1024, il est facile de complter la suite : 210 103 , 220 106 , 230 109 ,
e
240 1012 .
Les prxes dunits correspondants sont kilo, mga, giga, tra. Un kiloe
e
e
e
bit correspond donc ` 1024 bits et non ` 1000 bits.
a
a
Reprer un lment parmi un ensemble de 256 lments suppose de le loe
ee
ee
caliser par un numro cod sur 8 bits. Dans certains contextes ce numro est
e
e
e
appel une adresse. Reprer un lment parmi un ensemble de 4 giga-lments
e
e
ee
ee
suppose de le localiser par un numro cod sur 32 bits.
e
e
La notation de logarithme ` base 2 est parfois utilise : si 2N = M, log2 M =
a
e
N ; ainsi pour reprsenter P valeurs direntes il faut au moins R bits, o`
e
e
u
R est lentier immdiatement suprieur au logarithme ` base 2 de P . Ainsi
e
e
a
log2 2048 = 11 et pour reprsenter 2050 valeurs direntes il faut 12 bits.
e
e
La correspondance entre la reprsentation par un vecteur de boolens et la
e
e
valeur se fait par une convention, un code. Lensemble des valeurs codables est
caractristique du domaine (nombres, couleurs...) Par exemple, si une gamme
e
de temprature va de - 10 ` + 40 degrs, et si la temprature est code sur
e
a
e
e
e
9
9 bits, la prcision peut tre de lordre du dizi`me de degr (2 = 512 codes
e
e
e
e
possibles pour 50 degrs). Si la temprature est code sur 12 bits la prcision
e
e
e
e
12
est de lordre du centi`me (2 = 4096 codes possibles pour 50 degrs).
e
e
1.2
2. Les naturels
59
noir
blanc
rouge
cyan
violet
b3 b2 b1 b0
0101
0110
0111
1000
1001
vert
bleu
jaune
orange
brun
b3 b2 b1 b0
1010
1011
1100
1101
1110
1111
rose
gris fonc
e
gris moyen
vert ple
a
bleu ple
a
gris ple
a
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
b3 b2 b1 b0
0000
0001
0010
0011
0100
b3 b2 b1 b0
0000
0001
0010
0011
0100
noir
bleu
vert
cyan
rouge
b3 b2 b1 b0
0101
0110
0111
1000
1001
violet
brun
gris
noir ple
a
bleu ple
a
b3 b2 b1 b0
1010
1011
1100
1101
1110
1111
vert ple
a
cobalt
rose
mauve
jaune
blanc
1.3
Codage 1 parmi n
2.
Les naturels
2.1
2.1.1
Numration de position
e
Les entiers naturels peuvent tre crits de direntes faons (voir par
e
e
e
c
exemple [Ifr94]). Le syst`me des Romains est encore prsent dans certaines
e
e
notations, les dates des livres par exemple.
La meilleure reprsentation est la numration de position dans une base
e
e
choisie. En base 10, ou syst`me dcimal, on choisit 10 symboles dirents, les
e
e
e
10 chires dcimaux 0, 1, . . . , 9. Ils reprsentent les valeurs des 10 premiers
e
e
naturels. Les naturels suivants scrivent avec plusieurs chires : un chire des
e
units, un chire des dizaines, des centaines, des milliers, etc.
e
Si un naturel X scrit en base sur N chires xN 1 xN 2 ... x1 x0 , la
e
correspondance entre la valeur du naturel X et celles des chires est donne
e
60
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
par lquation :
e
N 1
N 1
valeur(xi )
X=
i=0
i xi
i=0
La correspondance est telle que lcriture dun naturel dans une base donne
e
e
est unique. Dans la suite nous ne prcisons plus que cest toujours la vae
leur du chire (et non le chire lui-mme) qui intervient dans les expressions
e
arithmtiques. En base , sur N chires, tous les naturels compris au sens large
e
entre 0 et N 1 sont reprsentables. Les nombres plus grands peuvent tre
e
e
reprsents par leur reste modulo N . Cest ce qui se produit sur les compteurs
e
e
kilomtriques des voitures : si le compteur a 5 chires, quand on a parcouru
e
100 012 kilom`tres, le compteur marque 00 012. Une situation analogue a lieu
e
pour les angles o` on ne donne que le reprsentant dans lintervalle [0, 2.[. En
u
e
informatique on rencontre le terme de chire de poids faible, pour le chire des
units et, si un naturel est crit sur 7 chires, celui de chire de poids le plus
e
e
fort pour le chire des millions. Lusage dans la vie courante est de ne pas crire
e
les 0 en poids forts. A certains endroits, pour des raisons matrielles, cest une
e
obligation. Le compteur kilomtrique des voitures par exemple. En informae
tique, on les crit tr`s souvent. Les machines ont un format pour reprsenter
e
e
e
les nombres, cest-`-dire un nombre de chires pr-tabli. Quand ce nombre de
a
ee
chires est mal choisi, comme par exemple reprsenter une date avec seulement
e
deux chires dcimaux pour lanne, les consquences sont ennuyeuses. Dans
e
e
e
les documents crits o` il y a risque dambigu e, on crit la base en indice. La
e
u
t
e
base elle-mme est alors crite en base dcimale (ou base 10). Par exemple, le
e
e
e
nombre qui scrit 147 en base 10 scrit 1042 en base 5 :
e
e
14710 = 100100112 = 1739 = 9316 = 10425 = 121103
Il existe une autre reprsentation conventionnelle : le dcimal cod en bie
e
e
naire (DCB) dans laquelle chaque chire dcimal est crit en binaire sur 4 bits.
e
e
On a alors 14710 = 0001 0100 0111dcb .
2. Les naturels
61
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
62
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Si un naturel est cod sur N bits et quil faille le coder sur M bits, avec
e
M > N , il sut dajouter des 0 en poids forts. A linverse, si la reprsentation
e
de C a k bits ` 0 en poids forts, C peut tre reprsent sur k bits de moins.
a
e
e
e
Par exemple 000011002 = 11002 .
2.2.2
Addition
Nous emploierons le terme de report pour laddition et, plus loin, celui demprunt pour
la soustraction. La langue courante utilise le terme de retenue dans les deux cas.
2. Les naturels
63
bi
repei
repsi =
si =
maj(ai , bi , repei ) (ai , bi , repei )
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ai
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
aN1
bN1
aj+1
aj
bj+1
bj
a1
b1
a0
b0
0
rep
e0
repe(j+1) = rep
sj
sN1
rep
sj+1
sj
s1
s0
s(N1)
Les tables daddition pour un tage sont donnes par la gure 3.4.
e
e
Pour laddition de deux nombres ` N bits, les formules sont donnes par
a
e
les quations suivantes qui utilisent les reports intermdiaires ri o` ri+1 est la
e
e
u
retenue sortante de ltage numro i :
e
e
s0 = (a0 , b0 , 0)
si = (ai , bi , ri )
r1 = maj (a0 , b0 , 0)
ri+1 = maj(ai , bi , ri ) i. 1 i N 1
64
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2.3
2.2.4
Ecriture
de N en
binaire
000101
001101
011101
011100
100011
Ecriture
de N 2 en
binaire
001010
011010
111010
111000
impossible
Ecriture
de N/4 en
binaire
000001
000011
000111
000111
001000
Ecriture
de N mod 8 en
binaire
000101
000101
000101
000100
000011
Multiplication gnrale
e e
Si deux naturels A et B sont cods sur N bits, leur produit est cod sur
e
e
2 N bits. Si N vaut 1, le produit de A et B est facile ` calculer. Sinon,
a
comme dans lexercice E3.14 on dcompose A et B en parties faible et forte.
e
2. Les naturels
65
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2.5
Soustraction
66
bi
0
0
1
1
0
0
1
1
ee
0
1
0
1
0
1
0
1
es
0
1
1
1
0
0
0
1
di
0
1
1
0
1
0
0
1
bi
1
1
0
0
1
1
0
0
bi
re
1
0
1
0
1
0
1
0
ee
rs
0
1
1
1
0
0
0
1
es
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ai
0
0
0
0
1
1
1
1
ai
0
0
0
0
1
1
1
1
ai
(a)
(b)
si
0
1
1
0
1
0
0
1
di
Remarque :
Dans les processeurs, apr`s une soustraction, le
e
complmentaire du bit demprunt sortant est disponible dans le mot dtat
e
e
sous le nom de bit indicateur C. Il vaut 0 si la dirence de deux naturels
e
cods sur N bits est positive, donc reprsentable sur N bits.
e
e
3.
Les relatifs
3.1
3. Les relatifs
67
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
N 1
Y = (2
2i yi
yN 1 ) +
i=0
N 1
Y = (2N yN 1 ) +
2i yi
i=0
La correspondance est telle que lcriture est unique comme pour le cas des
e
naturels dans une base donne.
e
Remarquons que si lon consid`re les deux vecteurs binaires reprsentant
e
e
un relatif et son oppos, et si lon interpr`te ces deux vecteurs comme les
e
e
reprsentations en binaire de deux naturels, la somme de ces deux naturels
e
est 2N . Cest lorigine du nom complment ` 2N . Ainsi, sur 4 bits, 0101 code
e
a
5. En complment ` 2, sur 4 bits -5 est reprsent par 1011. En base 2, 1011
e
a
e
e
reprsente le naturel 11, et 11 + 5 = 16.
e
Conversion Une dicult notable vient dappara
e
tre, la mme que pour les
e
couleurs en dbut de chapitre. La question Que reprsente 100011 ? ou Come
e
ment est reprsent lentier K ? na pas de sens. Il faut ` chaque fois prciser
e
e
a
e
dans quelle convention, binaire pur ou complment ` 2. Comme pour les coue
a
leurs, on peut avoir besoin de convertir dune convention ` lautre les nombres
a
qui sont reprsentables dans les deux (comme le brun et le bleu ple, pour
e
a
les couleurs). Pour les nombres sur N bits ce sont les nombres de lintervalle
[0, 2N 1 1]. Ils ont la mme reprsentation dans les deux codes (comme le
e
e
cyan et le noir qui ont le mme code dans lexemple des couleurs).
e
68
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
3.2.1
Addition
N 1
A = (2
N 1
) aN 1 +
2 ai ,
B = (2
N 2
2i bi
) bN 1 +
i=0
i=0
N 2
2 ai ,
2i bi ,
i=0
= ( + ) modulo 2N 1
i=0
avec :
[0, 2N 1 1],
[0, 2N 1 1],
[0, 2N 1 1].
On a videmment :
e
A = 2N 1 aN 1 +
et, de mme,
e
B = 2N 1 bN 1 + .
+ = re 2N 1 + .
2N 1 (aN 1 + bN 1 re ) +
3. Les relatifs
69
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2N 1 (aN 1 + bN 1 re ) + < 2N 1
2N 1 (aN 1 + bN 1 re 1) <
2N 1 (aN 1 + bN 1 re 1) >
Puisque [0, 2N 1 1], cette ingalit ne peut tre vrie avec certie
e
e
e e
tude que si
aN 1 + bN 1 re 1 1 cest-`-dire si aN 1 + bN 1 re 1 = 1.
a
2N 1 (aN 1 + bN 1 re ) +
2N 1 (aN 1 + bN 1 re ) +
2N 1 (aN 1 + bN 1 re + 1)
2N 1 (aN 1 + bN 1 re + 1)
> 2N 1 1
2N 1
aN 1 + bN 1 re + 1 0 cest-`-dire si aN 1 + bN 1 re + 1 = 0
a
= bN 1 = 0, re
= bN 1 = 1, re
= 1, bN 1 = 0,
= 0, bN 1 = 1,
=0
=1
re quelconque
re quelconque
bN 1
1
0
0
1
0
1
re
0
1
0
1
x
x
rs
1
0
0
1
x
x
Interprtation
e
Premier cas : S < 2N 1
Deuxi`me cas : S > 2N 1 1
e
Somme reprsentable
e
Somme reprsentable
e
Somme reprsentable
e
Somme reprsentable
e
aN 1 + bN 1 re
2
-1
0
1
x
x
70
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
N 1
S = 2
2i si
sN 1 +
i=0
On sait que
S=
2N 1 (aN 1 + bN 1 re ) + ,
avec [0, 2N 1 1]
En identiant bit ` bit les deux critures, on voit que pour i [0, N 2],
a
e
les si ne sont rien dautres que les chires binaires de .
De plus, puisque aN 1 + bN 1 re vaut 0 ou 1, car S est reprsentable sur
e
N bits, alors (aN 1 + bN 1 re ) = (aN 1 , bN 1 , re ).
On a reconnu dans re et rs les reports entrant et sortant du dernier tage
e
daddition binaire normale des vecteurs ai et bi . Ce qui signie que les chires
binaires de lcriture de S sobtiennent de la mme faon que les chires binaires
e
e
c
de la somme des deux naturels reprsents en binaire pur par les ai et les bi .
e
e
Cest l` tout lintrt du codage en complment ` 2.
a
ee
e
a
Remarque : Cette proprit est dune porte pratique considrable.
ee
e
e
Elle signie que le mme mcanisme daddition peut ajouter deux vecteurs bie
e
naires sans avoir ` tenir compte de linterprtation, binaire pur ou complment
a
e
e
a
` 2, qui est faite des oprandes et du rsultat. Les chires binaires du rsultat,
e
e
e
si celui-ci est reprsentable, sont identiques quelle que soit linterprtation.
e
e
On retrouvera cette proprit dans le chapitre 12 o` lon verra que la mme
ee
u
e
instruction du langage machine convient pour laddition, indpendamment du
e
code choisi, et dans le chapitre 8 o` lon verra que le mme circuit combinatoire
u
e
additionneur convient pour laddition indpendamment du code choisi.
e
3. Les relatifs
71
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2i ai
A = (2 aN 1 ) +
i=0
2i (1 ai )
A = 2 (1 aN 1 ) +
i=0
Soustraction
72
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La division par 2 des entiers relatifs, qui revient ` diviser par 2 la valeur
a
absolue de lentier en conservant son signe, ncessite quelques prcautions pour
e
e
les entiers ngatifs impairs.
e
Le dcalage arithmtique ne tient en eet aucun compte de la valeur du bit
e
e
de poids faible. Or changer de 0 ` 1 le bit de poids faible dun entier pair a pour
a
eet den augmenter la valeur absolue sil est positif ou nul, et au contraire de
la diminuer sil est ngatif.
e
Pour en tenir compte, il faut au pralable ajouter 1 aux seuls entiers ngatifs
e
e
avant deectuer le dcalage vers les poids faibles. Si lentier est pair, ceci ne
e
modie que le bit de poids faible qui est ensuite ignor lors du dcalage.
e
e
Si lentier est impair, cette opration le ram`ne ` lentier pair de valeur
e
e a
absolue immdiatement infrieure. Ainsi, pour lentier -7, on appliquera en
e
e
fait le dcalage sur lentier -6.
e
Ecriture
de N en
dcimal
e
13
29
-6
-7
-21
4.
Ecriture
de N en
complment ` 2
e
a
001101
011101
111010
111001
101011
Ecriture
de N 2 en
complment ` 2
e
a
011010
impossible
110100
110010
impossible
Ecriture
de N/4 en
complment ` 2
e
a
000011
000111
111101
111110
110110
5. Les caract`res
e
73
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
nk
p
k bits
nk1
q
n k bits
q = X modulo 2nk ,
p = X div 2nk
5.
Les caract`res
e
74
(
0
8
@
H
P
X
h
p
x
21
29
31
39
41
49
51
59
61
69
71
79
!
)
1
9
A
I
Q
Y
a
i
q
y
22
2A
32
3A
42
4A
52
5A
62
6A
72
7A
*
2
:
B
J
R
Z
b
j
r
z
23
2B
33
3B
43
4B
53
5B
63
6B
73
7B
#
+
3
;
C
K
S
[
c
k
s
{
24
2C
34
3C
44
4C
54
5C
64
6C
74
7C
$
,
4
<
D
L
T
\
d
l
t
|
25
2D
35
3D
45
4D
55
5D
65
6D
75
7D
%
5
=
E
M
U
]
e
m
u
}
26
2E
36
3E
46
4E
56
5E
66
6E
76
7E
&
.
6
>
F
N
V
f
n
v
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
20
28
30
38
40
48
50
58
60
68
70
78
27
2F
37
3F
47
4F
57
5F
67
6F
77
7F
/
7
?
G
O
W
g
o
w
del
6.
7. Exercices
75
32 bits
1 bit
64 bits
1 bit
128 bits
1 bit
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Taille totale
Taille de S
0s1
Taille de E
0 e 28,11,15
Taille de F
0 f 223,52,112
Valeur de la
partie fractionnaire fr
Valeur normale de e
Valeur de X
cas normal e = 0, f = 0
Valeur de X
si e = 0
X = 0 si de plus f = 0
Cas particuliers : e =
8 bits
11 bits
15 bits
23 bits
52 bits
112 bits
fr = f 224
fr = f 253
fr = f 2113
255
2047
32767
7.
Exercices
76
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
dans le cas o` les deux sont signs (et reprsents en complment ` 2),
u
e
e
e
e
a
dans le cas o` un nombre est sign et lautre non.
u
e
77
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
7. Exercices
(0011)
3b
+3c2
(0100)
4b
+4c2
(0101)
5b
+5c2
(1011)
11b
5c2
(1100)
12b
4c2
(1101)
13b
3c2
(0101)
(1011)
(1100)
(1101)
3b
+3c2
(0011)
(0100)
4b
+4c2
5b
+5c2
11b
5c2
12b
4c2
13b
3c2
(0110)
(0111)
(1000)
(1110)
(1111)
(0000)
6b
7b
8b
14b
15b
0b
+6c2
+7c2
8c2
2c2
1c2
0c2
r 3 = 0 r 3 = 0 r3 = 1 r3 = 0 r3 = 0 r3 = 1
r 4 = 0 r 4 = 0 r4 = 0 r4 = 0 r4 = 0 r4 = 1
(0111)
(1000)
(1001)
(1111)
(0000)
(0001)
7b
8b
9b
15b
0b
1b
+7c2
8c2
7c2
1c2
0c2
+1c2
r 3 = 0 r 3 = 1 r3 = 1 r3 = 0 r3 = 1 r3 = 1
r 4 = 0 r 4 = 0 r4 = 0 r4 = 0 r4 = 1 r4 = 1
(1000)
(1001)
(1010)
(0000)
(0001)
(0010)
8b
9b
10b
0b
1b
2b
8c2
7c2
6c2
0c2
+1c2
+2c2
r 3 = 1 r 3 = 1 r3 = 1 r3 = 1 r3 = 1 r3 = 1
r 4 = 0 r 4 = 0 r4 = 0 r4 = 1 r4 = 1 r4 = 1
(1110)
(1111)
(0000)
(0110)
(0111)
(1000)
14b
15b
0b
6b
7b
8b
2c2
1c2
0c2
+6c2
+7c2
8c2
r 3 = 0 r 3 = 0 r3 = 1 r3 = 0 r3 = 0 r3 = 1
r 4 = 0 r 4 = 0 r4 = 1 r4 = 1 r4 = 1 r4 = 1
(1111)
(0000)
(0001)
(0111)
(1000)
(1001)
15b
0b
1b
7b
8b
9b
1c2
0c2
+1c2
+7c2
8c2
7c2
r 3 = 0 r 3 = 1 r3 = 1 r3 = 0 r3 = 1 r3 = 1
r 4 = 0 r 4 = 1 r4 = 1 r4 = 1 r4 = 1 r4 = 1
(0000)
(0001)
(0010)
(1000)
(1001)
(1010)
0b
1b
2b
8b
9b
10b
0c2
+1c2
+2c2
8c2
7c2
6c2
r 3 = 1 r 3 = 1 r3 = 1 r3 = 1 r3 = 1 r3 = 1
r 4 = 1 r 4 = 1 r4 = 1 r4 = 1 r4 = 1 r4 = 1
Fig. 3.8 Table daddition
78
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
neg :
pos :
spe :
fin :
cmp
bge
subcc
bxx
mov
ba
mov
mov
ba
mov
i0, 0
pos
0, i0, i3
spe
1, i2
fin
1, i2
i0, i3
fin
0, i2
! si i0 0
7. Exercices
79
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a.b.(a b) = a.b.(a b) = 0
s = a b re
(on note parfois s = (a, b, re ))
rs = maj (a, b, re )
80
bP
re
rs =
maj(aP , bP , re )
indic. C
0
0
0
1
0
1
1
1
sP =
(aP , bP , re )
indic. N
0
1
1
0
1
0
0
1
V =
r e rs
indic. V
0
1
0
0
0
0
1
0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
aP
signe A
0
0
0
0
1
1
1
1
signe B
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Plus blanc que blanc, cest quoi comme couleur ? demandait Coluche dans un de ses
textes !
7. Exercices
81
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
231 ou U > 231 1), on dit que laddition dborde. Mais dans ce cas U
e
est reprsentable sur 64 bits (33 suraient). Ecrire un programme en langage
e
dassemblage qui donne toujours la somme U dans deux registres %l3, %l2.
On peut videmment faire lexercice analogue pour la dirence.
e
e
E3.14 : Description rcursive de laddition de 2 naturels
e
Dcrire laddition de deux naturels comme une opration rcursive sur la taille
e
e
e
des deux naturels, selon lindication suivante.
Si le nombre N de bits de A et B vaut 1, la somme de A et B est facile `
a
calculer, elle est reprsentable sur 2 bits. Si N est une puissance de 2 suprieure
e
e
a
` 1, N/2 est entier ; on peut couper A et B en deux parties Af ort Af aible et
Bf ort Bf aible , chacune sur N/2 bits ; on a alors A = Af ort 2N/2 + Af aible .
Calculons un report intermdiaire rinter :
e
rinter = 1 si Af aible + Bf aible 2N/2
rinter = 0 si Af aible + Bf aible < 2N/2
82
e1
0
0
0
0
1
e0
0
1
1
1
0
pi`ce
e
5 centimes
10 centimes
20 centimes
50 centimes
1 Franc
m2 m1 m0
010
101
001
010
e1
1
1
1
1
e0
0
0
1
1
pi`ce
e
2 Francs
5 Francs
10 Francs
20 Francs
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
m2 m1 m0
101
001
010
101
001
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 4
84
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
Un langage dactions
1.1
1.2
1.2.1
Nous tudions ici les structures de donnes oertes par les constructeurs de
e
e
types usuels des langages de programmation (n-uplets, tableaux, pointeurs).
Pour dcrire un type construit et le nommer, on crit :
e
e
T : le type ...
o` les pointills doivent tre complts par une expression de type, utilisant
u
e
e
ee
lun des constructeurs dcrits ci-dessous.
e
1. Un langage dactions
85
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
N-uplets Le constructeur de type n-uplet permet de grouper des informations de types dirents et de les manipuler comme un tout. On notera ces
e
groupements par des chevrons :
T1 : le type ...
T2 : le type ...
Structure12 : le type < x : un T1, y : un T2 >
S : un Structure12
Tableaux Le constructeur de type tableau permet de grouper des informations de mme type et dy accder par un indice. On note les tableaux par des
e
e
crochets :
Elem : le type ...
Tab : le type tableau sur [...] de Elem
En gnral [...] doit tre complt par la notation dun type intervalle. En
e e
e
ee
Pascal ou Ada, ces intervalles peuvent eux-mmes tre dnis dapr`s des types
e
e
e
e
numrs gnraux. En C les tableaux sont toujours dnis sur un intervalle de
e
ee e e
e
la forme [0..N], o` N est un entier strictement positif. Pour la suite de lexpos,
u
e
nous nous restreignons ` des intervalles dentiers. On crira par exemple :
a
e
Tab : le type tableau sur [42..56] dentiers
T : un Tab
Lacc`s aux lments du tableau est not par des crochets : T[42], T[43],
e
ee
e
ou encore T[a+b], si a et b sont des noms de variables de type entier, dont
les valeurs sont telles que a+b appartient ` lintervalle [42..56]. On peut aussi
a
utiliser une notation indice : T42 , Ta+b .
e
Lacc`s aux lments par un indice permet de parcourir tous les lments
e
ee
ee
dun tableau dans une boucle. En anticipant sur la notation des traitements
(paragraphes 1.4 et 1.5), on crit typiquement :
e
Tab : le type tableau sur [42..56] dentiers
T : un Tab
i parcourant [42..56]
T[i] 2 * i
86
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
Les variables de type pointeur peuvent avoir une valeur particuli`re note
e
e
NIL, qui signie pointeur sur rien (Cf. Paragraphe 2.4.3).
1.3
Pour les boolens, on consid`re les oprateurs de base et, ou, non, ouexcl,
e
e
e
etc. hrits de lalg`bre de Boole (Cf. Chapitre 2). On y ajoute les oprateurs
e e
e
e
boolens dits squentiels (ou non stricts) etpuis, oualors (en Ada : andthen,
e
e
orelse).
La smantique de ces oprateurs peut tre dcrite par une transformation
e
e
e
e
en expression conditionnelle :
expr1 etpuis expr2 { est identique ` : } si expr1 alors expr2 sinon faux
a
expr1 oualors expr2 { est identique ` : } si expr1 alors vrai sinon expr2
a
1.3.2
1. Un langage dactions
87
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.4
Aectation
Nous revenons sur la traduction en assembleur de ces fonctions au chapitre 13. Nous verrons en particulier que la traduction en langage dassemblage
de la fonction Naturel31VersEntier32 est un programme vide ! Au chapitre 3,
paragraphe 3.1, nous signalions dj` ce cas.
ea
88
1.5
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
On se donne les constructions si ... alors ... sinon et si ... alors ... usuelles
dans tous les langages de programmation impratifs. Notons que lon peut ici
e
omettre la partie sinon, alors que cest impossible pour une expression conditionnelle, qui doit avoir une valeur dans tous les cas. Autrement dit, ne rien
faire est une action particuli`re.
e
Noter que les 3 actions suivantes sont quivalentes :
e
X (si C1 alors E1 sinon E2) + (si C1 alors E3 sinon E4)
X (si C1 alors E1+E3 sinon E2+E4)
si C1 alors X E1+E3 sinon X E2+E4
Une construction moins courante est le selon, qui permet de dcrire une
e
analyse par cas exhaustive et sans duplication de cas, pour les valeurs dune
ou plusieurs expressions de type quelconque. Dans lexemple qui suit, A1, A2
et A3 reprsentent des actions quelconques.
e
X : un entier
Y : un caract`re
e
selon X, Y
X 0 et Y = a : A1
X 0 et Y = a : A2
X < 0 : A3
Cette structure gnrale doit souvent tre code par une srie dexpressions
e e
e
e
e
conditionnelles si ... alors ... sinon encha ees, comme en Pascal, en C, ... Les
n
structures case et switch de ces langages ne permettent en eet que des
conditions de la forme expr = constante, pour des types dont les constantes
ont une notation dans le langage, cest-`-dire les entiers, caract`res, types
a
e
numrs. La structure selon ` conditions quelconques existe en Lisp (cond),
e
ee
a
mais sa smantique est squentielle et les direntes conditions ne sont pas
e
e
e
ncessairement exhaustives.
e
Nous utilisons par ailleurs 3 structures itratives : parcourant (qui correse
pond au for de Pascal, C, Ada, ...), tantque (qui correspond au while de
Pascal, C et Ada), rpter ... jusqu` (qui correspond au do ... while de C,
e e
a
au repeat ... until de Pascal, au loop ... while de Ada).
La smantique de ces constructions est prcise par leur traduction en mae
e e
chines squentielles ` actions (ou organigrammes) au chapitre 5.
e
a
On peut dj` ramener la structure parcourant ` une structure tantque :
ea
a
i parcourant [a .. b] : A
{ Est quivalent ` : }
e
a
i : un entier sur [a .. b+1]
i a
tantque i b :
A ; i i + 1
1. Un langage dactions
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.6
89
90
1.7
Entres/Sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
On utilisera les actions Lire et Ecrire, pour tout type de donnes, et avec un
e
nombre quelconque de param`tres.
e
Les param`tres de Lire sont des rsultats, ceux de Ecrire sont des donnes.
e
e
e
Une utilisation typique est dcrite ci-dessous :
e
lexique : x, y : des entiers
Ecrire (Donnez deux entiers : ) ; Lire (x, y)
Ecrire (Somme des deux entiers : , x+y)
2.
2.1
2.2
2.2.1
91
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
taille possible : une unit adressable (voir toutefois le paragraphe 2.4.2 pour
e
le cas particulier des tableaux de boolens, o` lon peut esprer gagner de la
e
u
e
place). Il faut convenir dun codage des deux constantes vrai, faux parmi les 2k
congurations dune unit adressable de k bits.
e
Rien nempche, a priori, de choisir, vrai = 4210 et faux = 7710 (sur un octet
e
par exemple). Le choix du bon codage dpend essentiellement de la ralisation
e
e
des oprations dans lesquelles intervient un oprande ou un rsultat de type
e
e
e
boolen. Il faut penser aux oprations internes du type boolen (conjonction,
e
e
e
disjonction, ...) et ` la fabrication de valeurs boolennes par comparaison de
a
e
deux entiers par exemple (qui appara bien sr dans si X < Y alors ... mais
t
u
aussi dans des expressions de la forme : B (X < Y)).
Pour vrai = 4210 et faux = 7710 , il est dicile de dcrire la conjonction de
e
deux boolens a et b plus simplement que par :
e
si a=42 alors si b = 42 alors 42 sinon 77 sinon 77.
Dans le langage C, le choix est le suivant : 0 reprsente faux, toute autre
e
valeur reprsente vrai ; une conjonction peut alors tre ralise ` laide de
e
e
e e a
loprateur et logique disponible sur tous les processeurs.
e
2.2.2
Nous avons suppos lexistence dun type de base entier. Les types de
e
donnes qui permettent de dnir des entiers dans les langages de programe
e
mation usuels correspondent le plus souvent ` des entiers borns, cest-`-dire `
a
e
a
a
des intervalles dentiers. En C, par exemple, on dclare des entiers en prcisant
e
e
leur taille et en dcidant si ce sont des entiers naturels ou relatifs.
e
Il existe des langages, comme scheme [Aa91], dans lesquels les traitements
dentiers sont dits ` prcision innie. Cest un abus de langage pour expria e
mer que la taille des entiers manipulables nest pas statiquement borne : la
e
simple addition de deux entiers peut provoquer lallocation dune zone mmoire
e
supplmentaire ncessaire ` la reprsentation du rsultat. Le terme inni est
e
e
a
e
e
abusif puisque, mme si lon consacre toute la mmoire de la machine ` la
e
e
a
reprsentation dun seul entier, lintervalle des valeurs reprsentables nen est
e
e
pas moins born.
e
2.2.3
92
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3
Nous venons de voir que des variables de types simples comme les entiers
peuvent ncessiter plusieurs units adressables. Nous nous intressons donc au
e
e
e
probl`me de lacc`s simultan ` plusieurs units adressables contigus.
e
e
ea
e
e
93
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La situation dcrite ci-dessous nest pas la plus gnrale que lon pourrait
e
e e
imaginer. Elle est guide par les contraintes matrielles de liaison entre le
e
e
processeur et la mmoire, que nous tudierons au chapitre 15.
e
e
Tout dabord, nous ne nous intressons quau cas de blocs dunits adrese
e
sables en nombre gal ` une puissance de 2 (pour ne pas perdre despace
e
a
dadressage, Cf. Chapitre 15). Dautre part, sur la plupart des machines, les
acc`s ne sont permis que lorsque ladresse est un multiple de la taille du transe
fert (les autres acc`s ne sont pas ncessairement implments parce quils sont
e
e
e
e
moins ecaces). Cette restriction est connue sous le nom de contrainte dalignement mmoire.
e
Les contraintes matrielles dacc`s ` la mmoire ont galement pour
e
e a
e
e
consquence que les acc`s simultans ` un nombre quelconque dunits adrese
e
e a
e
sables ne peuvent pas constituer des oprations lmentaires dans une machine
e
ee
(un processeur) usuel. Les aectations de mmoire prsentes ci-dessous, ine
e
e
dices par le nombre dunits ` transfrer, sont en petit nombre, x.
e
e a
e
e
Nous noterons k une aectation de taille k, cest-`-dire un transfert
a
simultan de k units adressables. Nous considrons par la suite les aectae
e
e
tions :
x 1 MEM[a]
{ Lunit adressable dindice a dans le tableau MEM est copie dans la variable
e
e
x (suppose de taille adquate) }
e
e
x 2 MEM[a]
{ Valide si a est multiple de 2. Les deux units adressables dindices a et a+1
e
sont copies dans la variable x (suppose de taille adquate). }
e
e
e
x 4 MEM[a]
{ Valide si a est multiple de 4. Les quatre units adressables dindices a, a+1,
e
a+2 et a+3 sont copies dans la variable x (suppose de taille adquate). }
e
e
e
2.4
2.4.1
Les n-uplets, de mme que les entiers susamment grands, demandent plue
sieurs units adressables. On utilise lorsque cest possible des units contigus.
e
e
e
Considrons les dnitions de type :
e
e
T1 : le type entier dans [2321 , 2321 1]
T2 : le type entier dans [2161 , 2161 1]
Structure12 : le type < x : un T1, y : un T2 >
Structure21 : le type < x : un T2, y : un T1 >
94
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.4.2
95
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
est tel que deux objets de type T peuvent toujours tre placs cte ` cte
e
e o a o
en mmoire, il ny a pas de place perdue. Cest le cas par exemple pour
e
T : le type < c1, c2, c3 : des caract`res >.
e
En revanche, si T est le type Structure12 tudi au paragraphe prcdent,
e
e
e e
on doit mnager un espace de deux octets entre deux lments, de mani`re `
e
ee
e a
satisfaire la contrainte dalignement sur des adresses multiples de 4 du champ
x.
On peut conserver la formule qui donne ladresse T[i] en fonction de ladresse
a de dbut de T, ` condition de rednir la notion de taille ncessaire ` la
e
a
e
e
a
reprsentation dun type. Par exemple, taille align (Structure12) = 8, et non 6.
e
Remarque : cette fonction correspond ` la macro-notation sizeof du lana
gage C, applicable ` un nom de type ou ` une expression type.
a
a
e
Cas particulier des tableaux de boolens Nous avons vu plus haut quun
e
boolen seul occupe un octet. Lorsquon consid`re un tableau de boolens,
e
e
e
il devient intressant dessayer de gagner de la place en choisissant une
e
reprsentation plus compacte. Considrons le tableau T dni par :
e
e
e
T : un tableau sur [0, N1] de boolens
e
96
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
97
MEM
MEM
T[0,0]
T[0,1]
3=N-1
Ar
chi
P.
te c
Am tu
F.
bla res
La
P.
gn rd, J Logi
Sic ier,
.-C ciel
ard
F.
. F les
,P
Ma ern et
h.
ran and Ma
Wa
inc
ez, tri
e
ille
hi,
ell
es
2=M-1
T[0,0]
T[1,0]
T[0,2]
T[2,0]
T[0,3]
T[0,1]
T[1,0]
T[1,1]
T[1,1]
........
T[2,1]
........
(a)
(b)
(c)
T : un Tab
e
La reprsentation de T en mmoire ncessite N M taille align(T) units
e
e
e
adressables.
La gure 4.1 illustre les choix de placement des lments de T dans le
ee
tableau MEM, dans le cas o` N = 4 et M = 3. Noter que la reprsentation de
u
e
T sous forme de matrice (a), et le choix de la dimension quon appelle ligne sont
conventionnels ; nous convenons ici que dans lexpression T[i,j], i reprsente un
e
numro de ligne et j un numro de colonne.
e
e
Dans le cas (b), on range les lments de T ligne par ligne, et ladresse de
ee
u
llment T[i,j] sexprime par la formule : a + (i N + j) taille align (T), o`
ee
a est ladresse de dbut du tableau.
e
Dans le cas (c), on range les lments colonne par colonne, et ladresse de
ee
llment T[i,j] sexprime par la formule : a + (j M + i) taille align (T).
ee
Noter la symtrie des deux formules.
e
Remarque : Nous rservons le terme de tableau ` deux dimensions aux
e
a
structures implantes de mani`re contigu. En Java, on appelle tableau ` deux
e
e
e
a
dimensions une structure de donnes plus complique qui consiste en un tae
e
bleau ` une dimension de pointeurs sur des tableaux ` une dimension. Dans
a
a
ce cas les lignes (ou colonnes) ne sont plus ncessairement contigus.
e
e
2.4.3
NIL : un pointeur
T : un type
98
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La variable pt contient une valeur a qui est une adresse dans le tableau
MEM. Cest donc un entier, dune certaine taille majore par la taille de la
e
mmoire disponible de la machine.
e
Nous avons vu dans ce qui prc`de que, lorsque les valeurs des objets
e e
(structurs ou non) ncessitent plusieurs units dacc`s, celles-ci sont contigus.
e
e
e
e
e
Ainsi, pour reprer de mani`re non ambigu une valeur en mmoire, il sut
e
e
e
e
de conna : 1) ladresse de la premi`re unit dacc`s o` elle est stocke ; 2)
tre
e
e
e u
e
le nombre dunits dacc`s utilises, qui peut se dduire de son type.
e
e
e
e
Nous avons vu (paragraphe 1.2.2) que pointeur de T est le type des adresses
mmoire dobjets de type T. Le type pointeur de T spcie donc linformae
e
tion de taille, ncessaire par exemple ` la traduction des aectations comme
e
a
t1 pt.
On dit que pt pointe sur un objet qui occupe dans le tableau MEM, taille(T)
units adressables dadresses a + 0, ... a + taille(T) 1.
e
La constante NIL est de type pointeur, compatible avec tous les types
pointeur de T, quel que soit T. Elle reprsente le pointeur sur rien, et doit tre
e
e
code par une valeur qui nappartient pas ` lensemble de valeurs que peuvent
e
a
prendre les autres pointeurs. Avec la vision abstraite de la mmoire que nous
e
avons adopte jusque l`, il sut de choisir NIL : lentier tmem, si MEM est
e
a
dni sur lintervalle [0..tmem-1]. Dans la ralit, la plupart des compilateurs
e
e e
choisissent de coder NIL par lentier 0 qui est facile ` tester (par convention 0
a
nest alors pas une adresse valide).
3.
99
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
daectations.
3.1
Aectation de structures
3.2
Aectation de tableaux
Elem : un type
T : le type tableau sur [a...b] de Elem
t1, t2 : des T ;
t1 t2
{ est quivalent ` : }
e
a
i parcourant a...b
t1[i] t2[i]
4.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
100
ctif
LaSquence
e
sup
inf
101
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.1
102
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
considrons ici que le tableau MEM est partitionn en deux : une premi`re
e
e
e
portion P 1, qui va de lindice 0 ` lindice T , dans laquelle on trouve en para
ticulier les variables du lexique global ; une deuxi`me portion P 2 qui va de
e
lindice T + 1 ` lindice du dernier lment tmem1, dans laquelle on trouve
a
ee
les blocs allous dynamiquement et les informations de gestion du tas.
e
Allouer : une action (le rsultat : un pointeur ; la donne : un entier > 0)
e
e
{ Allouer (p, n) rserve dans la zone de mmoire comprise entre les indices
e
e
T +1 et tmem1 une zone contigu de n lments, dmarrant sur une fronti`re
e
ee
e
e
multiple de n. p est ladresse de la premi`re unit adressable de cette zone
e
e
rserve. Si lespace disponible est dj` enti`rement occup, la valeur nale
e
e
ea
e
e
p = NIL exprime limpossibilit dallouer.
e
Cest une action gnrique, qui convient pour tout type de pointeur. }
e e
Librer : une action (la donne : un pointeur ; la donne : un entier > 0)
e
e
e
{ Librer (p, n) restitue la zone de mmoire situe entre les adresses p incluse
e
e
e
et p+n exclue. }
4.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.
103
Les piles et les les sont des structures de donnes tr`s utilises dans tous
e
e
e
les domaines de linformatique. Nous prcisons ci-dessous les oprations utie
e
lises dans cet ouvrage. Dans certains chapitres nous serons amens ` prciser
e
e a e
comment sont implants les types Pile et File, et comment sont programmes
e
e
les oprations de manipulation de ces types.
e
Dans une pile, les lments sont extraits dans lordre inverse de leur ordre
ee
dinsertion (en anglais last in, rst out, ou LIFO). Dans une le, les lments
ee
sont extraits dans lordre de leur insertion (en anglais rst in, rst out, ou
FIFO). Voir par exemple [BB88] pour une spcication formelle des structures
e
de pile et de le et une tude de la programmation de ces structures (par des
e
tableaux, des squences cha ees, ...).
e
n
Nous considrons ici des piles et des les de taille ventuellement borne,
e
e
e
do` la notion de pile (ou de le) pleine. Une pile ou une le peut galement
u
e
tre vide. Ajouter un lment ` une pile ou le nest possible que si elle nest
e
ee
a
pas pleine ; ter un lment nest possible que si elle nest pas vide.
o
ee
5.1
Elem : un type
PileElem : un type { sans prjuger de la reprsentation des piles par des structures
e
e
de donnes particuli`res }
e
e
TailleMax : un entier > 0
Lorsque la pile est de taille susante pour lutilisation qui en est faite, ou
lorsque quon ne veut pas sintresser au probl`me du dbordement (cest-`e
e
e
a
dire une tentative dinsertion lorsque la pile est pleine), on utilisera une action
104
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
Empiler sans param`tre rsultat boolen. Dans ce cas, ltat nal dune pile qui
e
e
e
e
tait pleine lors de lempilement dun lment, est non spci.
e
ee
e e
De mme, si lon ne sintresse pas au probl`me dacc`s ` la pile vide, ou si
e
e
e
e a
lon sait que laction Dpiler nest jamais appele avec une pile vide, on peut
e
e
utiliser une action Dpiler sans param`tre rsultat boolen.
e
e
e
e
5.2
Spcication dune le
e
Elem : un type
FileElem : un type
TailleMax : un entier > 0
Initialiser : une action (le rsultat F : une FileElem)
e
{ tat nal : F est la le vide }
e
Sous les mmes hypoth`ses que pour la pile, on sautorise les actions Entrer
e
e
et Sortir sans param`tres rsultats boolens.
e
e
e
6.
Exercices
6. Exercices
105
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
oprations ensemblistes
e
Les vecteurs boolens peuvent reprsenter des ensembles, ou, plus exactement,
e
e
un vecteur boolen de N bits peut reprsenter une partie dun ensemble ` N
e
e
a
lments : le bit de rang x est ` 1 si et seulement si llment x appartient `
ee
a
ee
a
lensemble. (Cf. Paragraphe 4. du chapitre 3). On consid`re les types :
e
Elem : le type entier dans [0..31] ; EnsElem : le type ensemble dElems
E1, E2 : des EnsElem
106
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lexique
Entier32s : le type entier sur [2321 , 2321 1]
T : un tableau sur [0 .. N-1] de < a : un Entier32s, b : un caract`re >
e
algorithme
i parcourant 0 .. N-1
T[i].a i * 2 ; T[i].b a
Choisir une reprsentation en mmoire des objets de type Tab et donner la fore
e
mule qui exprime ladresse de dbut de llment T[i0 , i1 , ..., ik1 ] en fonction
e
ee
de ladresse de dbut de T et des dimensions N0 , N1 , ..., Nk1 .
e
E4.7 : Transformation dalgorithme dacc`s ` un tableau de struce a
tures
Reprendre le dveloppement du paragraphe sur loptimisation des parcours de
e
tableaux (Cf. Paragraphe 2.4.2) dans le cas o` un tableau de structures est
u
reprsent en mmoire par une structure de tableaux.
e
e
e
6. Exercices
107
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Cet exercice se poursuit par la programmation en assembleur sparc, exercice E13.10 du chapitre 12.
E4.9 : Programmation dune le et dune pile
Raliser les actions de manipulation des piles et les dcrites au paragraphe 5. :
e
e
En rangeant les lments dans un tableau, cest-`-dire en considrant le
ee
a
e
type : PileElem : un tableau sur 1 .. TailleMax dElem
En rangeant les lments dans une squence cha ee
ee
e
n
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
108
Reprsentation des traitements et des donnes...
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 5
1.
1.1
110
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Fonctionnement squentiel
e
Une transition (q, e, q ) exprime que, si la machine est dans ltat q, et quelle
e
reoit lentre e, alors elle passe dans ltat q . La squence de sorties Ss =
c
e
e
e
s0 , s1 , ... est ensuite dnie par lintermdiaire de la squence dtats :
e
e
e
e
n N, sn = f (qn )
1.1.2
n 0, (qn , en , sn , qn+1 ) T
Dterminisme et ractivit
e
e
e
111
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
excuter au plus une (resp. au moins une) transition. Une machine ` la fois
e
a
dterministe et ractive peut donc excuter exactement une transition, pour
e
e
e
chaque tat et chaque entre.
e
e
Dnition 5.2 : dterminisme
e
e
On dira quune machine de Mealy (Q, q0 , E, S, T ) est dterministe si et seulee
ment si :
q1 Q, e1 E, s1 S, (q, e1 , s1 , q1 ) T
q Q,
= e1 = e2
q2 Q, e2 E, s2 S, (q, e2 , s2 , q2 ) T
De mme, on dira quune machine de Moore (Q, q0 , E, S, T, f ) est dterministe
e
e
si et seulement si :
q1 Q, e1 E(q, e1 , q1 ) T
q Q,
= e1 = e2
q2 Q, e2 E(q, e2 , q2 ) T
2
112
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2
Lune des caractrisations de la classe des langages rguliers (on dit aussi
e
e
langage rationnel) nonce que ces langages sont exactement les langages ree
connaissables par des machines ` tats nies (Cf. par exemple [Ben91]).
ae
Les reconnaisseurs de langages rguliers sont des machines de Moore qui
e
produisent une unique sortie boolenne. Dans un tat E, cette sortie est vrai
e
e
si et seulement si les squences dentres qui permettent datteindre E depuis
e
e
ltat initial constituent des phrases correctes du langage ` reconna
e
a
tre. Lusage
a consacr une notation particuli`re de ces machines de Moore, dans laquelle
e
e
on omet la notation de la sortie : il sut de distinguer, par exemple par des
triangles, les tats pour lesquels elle vaut vrai. Dans la littrature on trouvera
e
e
souvent le terme dtat nal, ou de satisfaction. Notons que, si ltat initial est
e
e
galement nal, la phrase vide appartient au langage.
e
Les machines de Moore qui expriment la reconnaissance de langages
rguliers ne sont pas ncessairement ractives : ` partir dun tat donn, il
e
e
e
a
e
e
peut ne pas exister de transition excutable, pour un lment particulier de
e
ee
la squence, et la machine peut donc se bloquer. Dans ce cas toutefois, la
e
squence dentres ne permettra jamais datteindre un tat de satisfaction. On
e
e
e
interpr`te donc les blocages de la machine comme un rsultat ngatif.
e
e
e
Elles ne sont pas non plus ncessairement dterministes ; mais pour tout
e
e
langage rgulier il existe une machine squentielle dterministe qui le ree
e
e
113
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
c
1
a,b
4
a,b,c
(a)
a, b, c
(b)
1.3
114
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
115
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.4
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
116
AUCUNE
Attente
Pi`ces
e
s5
s2
fs
rien
rien
fs
Trop
peru
c
R,C,B
s2
rien
2F reus
c
C,B
s1
s1
s5
1F reu
c
rien
AUCUNE
Entre
e
rien
rien
rien
s2
rien
rien
rien
fs
s1
rien
s2
rien
fs
...
Sortie
{AUCUNE}
{AUCUNE}
{AUCUNE}
{AUCUNE}
{C, B}
{C, B}
{C, B}
{C, B}
{AUCUNE}
{AUCUNE}
{AUCUNE}
{R, C, B}
{R, C, B}
{AUCUNE}
Etat courant
Attente Pi`ces
e
Attente Pi`ces
e
Attente Pi`ces
e
Attente Pi`ces
e
2F reus
c
2F reus
c
2F reus
c
2F reus
c
Attente Pi`ces
e
1F reu
c
1F reu
c
Trop peru
c
Trop peru
c
Attente Pi`ces
e
Fig. 5.3 Une squence dexcution du contrleur de la machine ` caf : chaque ligne
e
e
o
a
e
correspond ` un instant dirent ; le temps passe du haut vers le bas dans le
a
e
tableau.
117
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
118
C?
faux
vrai
(a)
(b)
Fig. 5.5 Machine de Moore avec actions et organigramme. (a) : un tat de machine
e
de Moore avec actions (C est une condition boolenne et A une action) ; (b) :
e
une portion dorganigramme qui reprsente le mme traitement.
e
e
2.
2.1
Dnition
e
On se donne un lexique (au sens dni chapitre 4) qui dnit des types,
e
e
des variables types, des fonctions et des actions sans param`tres. Parmi les
e
e
fonctions on distingue les prdicats, qui sont ` rsultat boolen. Le prdicat
e
a e
e
e
constant vrai et laction vide vide sont toujours dnis, et jouent un rle pare
o
ticulier dans les manipulations de machines squentielles ` actions (Cf. Parae
a
graphe 2.4).
Une machine squentielle avec actions est une machine ` tats nie dont le
e
ae
vocabulaire dentre est lensemble des prdicats : lvaluation dun prdicat
e
e
e
e
reprsente une entre de la machine, au sens du paragraphe 1.1. Les transitions
e
e
sont donc tiquetes par des prdicats. Lensemble des actions constitue le
e
e
e
vocabulaire de sortie.
Une machine de Moore avec actions est tr`s similaire aux organigrammes
e
classiques, ainsi que le montre la gure 5.5.
Les machines de Mealy avec actions sont tudies dans [SFLM93]. Elles sont
e
e
119
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
2.3
120
A ;B
si C alors A
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
si C alors A sinon B
non C
vrai
non C
vrai
vrai
vrai
Rpter A jusqu` C
e e
a
non C
vrai
tantque C faire A
vrai
non D
non C
vrai
vrai
vrai
X ; si C alors A
non C
vrai
non C
vrai
non C
vrai
Fig. 5.6 Traduction des structures de contrle en machines squentielles avec actions.
o
e
Les tats non tiquets portent implicitement laction vide.
e
e
e
121
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
00
10
21
31
42
52
63
73
83
94
10 4
11 5
12 5
3
2
0
11
12
Fig. 5.7 Trac dun segment dont les extrmits sont les points de coordonnes (0, 0)
e
e e
e
et (12, 5). Le trait blanc est idal, les pixels noirs sont obtenus par lalgorithme,
e
les pixels gris pourraient sembler candidats.
2.3.1
122
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lexique
n : lentier ... ; m : lentier ...
T : un tableau sur [0..m, 0..n] de boolens
e
j, k, : des entiers
algorithme
k 0 ; j 0 ; m
{ Valeur initiale de lcart : labscisse j vaut 0, lordonne k vaut 0, donc
e
e
= m }
tant que j m :
{ Invariant : 0 j m et -2*m 0 }
Tj,k vrai { Le point de coord. j, k doit tre ach }
e
e
{ Pour le point suivant, on augmente j de 1 }
j j + 1 ; + 2*n
si > 0
{ Si est devenu trop grand, on le ram`ne ` une valeur convee a
nable en augmentant lordonne courante }
e
k k + 1 ; 2*m
{ 2 m 0 }
Fig. 5.8 Algorithme de Bresenham
De | |
1
2
(n/m).j k
2.n.j 2.m.k
2.n.j 2.m.k m
1
2
1
2
m
0
123
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
{ Les variables : }
Fini, pos : des boolens
e
{ Les actions : }
Init : une action : j 0 ; k 0 ; m
MajTetIncrAbs : une action
Tj,k vrai ; j j + 1 ; + 2 * n
IncrOrdonne : une action : k k + 1 ; 2 * m
e
CalculFini : une action : Fini j > m
Calculpos : une action : pos > 0
{ Les prdicats : }
e
EstFini : un boolen : ni
e
EstPos : un boolen : pos
e
Fig. 5.9 Lexique de machine squentielle avec actions reprsentant lalgorithme de Bree
e
senham
Init
vrai
CalculFini
non EstFini
EstFini
non estPos
MajTetIncrAbs
vrai
Calculpos
vrai
estPos
IncrOrdonnee
124
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.4
Fusion dtats
e
Eclatement dtats
e
125
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Nous verrons au chapitre 11 que lorsquil sagit de produire un circuit synchrone pour implanter une machine squentielle, il faut placer sur chaque tat
e
e
une action ralisable en 1 coup dhorloge. Cela peut imposer de dcomposer des
e
e
actions complexes en suites dactions lmentaires ralisables en 1 seul coup
ee
e
dhorloge chacune. La machine squentielle comporte alors une suite dtats
e
e
spars par des transitions portant le prdicat vrai.
e e
e
2.4.3
Que les machines squentielles soient utilises pour construire des circuits
e
e
squentiels synchrones (chapitre 11), ou pour produire du langage machine
e
(chapitre 12), il faut parfois se restreindre ` des branchements binaires. La
a
transformation systmatique dune machine ` branchements n-aires en mae
a
chine ` branchements uniquement binaires peut ajouter des tats, et donc
a
e
allonger le chemin ncessaire ` lexcution dune action. Dans le cas logiciel
e
a
e
comme dans le cas matriel, cet allongement du chemin se traduit par un
e
allongement du temps dexcution.
e
La gure 5.11 donne deux machines squentielles correspondant ` la struce
a
ture conditionnelle :
selon
C1 : A1 ; C2 : A2 ; C3 : A3
Echange contrle/donnes
o
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
126
C3
non C3
C3
A3
C2
C1
A1
vrai
A2
vrai
A3
non C2
C2
C1
A2
vrai
non C1
A1
vrai
vrai
vrai
127
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lexique
B1 : le boolen ... ; B2 : le boolen ... ; N : lentier ... ; i : un entier
e
e
T : un tableau sur [0..N] de boolens
e
CondT : un entier un boolen { une proprit portant sur un entier }
e
ee
algorithme 1 :
i 0
tant que i N
si CondT(i) alors Ti (Ti et B1) sinon Ti (Ti ou B2)
i i + 1
algorithme 2 :
i 0
tant que i N
Ti (CondT(i) et (Ti and B1)) ou (non CondT(i) et (Ti ou B2))
i i + 1
Fig. 5.12 Echange contrle/donnes : deux algorithmes quivalents
o
e
e
{ lexique : }
C1, C2 : des boolens
e
{ les actions : }
Init : une action (la donne-rsultat i : un entier) : i 0
e e
CalculC1 : une action (les donnes i : un entier, N : un entier) : C1 i N
e
CalculC2 : une action (la donne i : un entier) : C2 CondT(i)
e
AndT : une action (les donnes : x : un boolen, i : un entier) : Ti Ti et x
e
e
OrT : une action (les donnes : x : un boolen, i : un entier) : Ti Ti ou x
e
e
ActCond : une action (les donnes : x1, x2 : deux boolens, i : un entier)
e
e
Ti (CondT(i) et (Ti et x1)) ou (non CondT(i) et (Ti ou x2))
{ les prdicats : }
e
EstC1 : un boolen : C1
e
EstC2 : un boolen : C2
e
Fig. 5.13 Echange contrle/donnes : lexique des machines squentielles
o
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
128
Init
vrai
CalculC1
non EstC1
EstC1
CalculC2
EstC2
non EstC2
AndT(B1,i)
OrT(B2,i)
vrai
vrai
vrai
Incr(i)
Init
vrai
non EstC1
CalculC1
EstC1
ActCond(B1, B2, i)
vrai
vrai
Incr(i)
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 6
1.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
130
1.1
1.2
131
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
1.4
Interprtation asynchrone
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
132
(a)
temps
temps
temps
(b)
temps
GD
GD
(c)
GD
GD
(d)
(A)
(B)
133
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
En revanche, d`s que lon consid`re plusieurs grandeurs, les paliers (ou,
e
e
de mani`re quivalente, les fronts) sont superposs. En associant une variable
e e
e
boolenne par exemple ` chacune des grandeurs, et en notant la
e
a
valeur 1 de cette grandeur, la valeur 0 de cette grandeur, on peut construire
une squence de monmes boolens qui re`te les superpositions de paliers.
e
o
e
e
On passe ` un nouvel lment de la squence d`s que lune au moins des deux
a
ee
e
e
grandeurs change de palier. Pour lexemple de la gure 6.1-Bc, on construit la
squence
e
., ., ., ., ., ., ., .
Il devient intressant de dcrire des machines squentielles capables de traie
e
e
ter des squences ainsi construites.
e
Exemple E6.1 : Interprtation asynchrone de deux grandeurs et
e
comptage
Considrons une machine squentielle qui peroit deux grandeurs et , et
e
e
c
dont la sortie boolenne est vraie si et seulement si les deux grandeurs ont
e
eu la mme valeur un nombre pair de fois dans le pass.
e
e
En utilisant la squence des niveaux superposs, on crira par exemple la
e
e
e
machine de Moore suivante :
(. .)
(. .)
. .
= vrai
Impair = faux
Pair
. .
Interprtation synchrone
e
134
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lune des grandeurs est lhorloge de lautre. La grandeur choisie comme horloge dnit un dcoupage de laxe du temps qui permet dchantillonner lautre
e
e
e
grandeur. Ce dcoupage nest pas ncessairement rgulier en temps physique ;
e
e
e
laxe du temps sous-jacent nest pas dcoup en intervalles de tailles gales,
e
e
e
quoique ce soit gnralement le cas avec des horloges rgules par des quartz.
e e
e e
En interprtation synchrone, on a donc toujours au moins deux grandeurs.
e
Notons dailleurs que synchrone signie littralement qui partage le mme
e
e
temps, et quil faut tre au moins deux pour partager quelque chose. Deux
e
grandeurs seront dites synchrones si elles sont chantillonnes sur la mme
e
e
e
horloge, asynchrones sinon.
A partir dune grandeur qui sert dhorloge et dune ou plusieurs autres
grandeurs, on fabrique une squence dentres de la machine squentielle en
e
e
e
crant un lment de squence par front dhorloge : cest un monme qui dcrit
e
ee
e
o
e
le niveau des autres grandeurs ` linstant de ce front.
a
Nous verrons quune machine squentielle peut tre ralise par un circuit
e
e
e e
squentiel synchrone (Cf. Chapitres 10 et 11). Une horloge dtermine alors
e
e
les instants auxquels la machine change dtat. Un processeur peut tre vu
e
e
comme une machine squentielle synchrone cadence elle-aussi par son hore
e
loge (Cf. Chapitre 14). Il existe aussi des ralisations, dont des processeurs,
e
asynchrones. Nous ntudions pas cette technique dans ce livre.
e
2.
3. Probl`mes de synchronisation
e
135
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Temps
S2
S1
S0
t1
t2
3.
Probl`mes de synchronisation
e
136
a)
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
b)
t0
3.1
3. Probl`mes de synchronisation
e
137
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
3.2.1
Pour viter les deux cas de fonctionnement incorrect dcrits par la gure 6.6,
e
e
on doit assurer que :
1. le rcepteur ne peut pas lire deux fois la donne V sans avoir t prvenu
e
e
ee e
par lmetteur dun changement entre temps ;
e
2. lmetteur ne peut pas modier la valeur de la donne (cest-`-dire
e
e
a
mettre deux valeurs direntes) ` moins davoir t prvenu par
e
e
a
ee
e
le rcepteur entre temps que la premi`re valeur a eectivement t
e
e
ee
consomme.
e
e
e
On introduit ` cet eet deux signaux de synchronisation E prt et R prt.
a
e
e
e
e
e
E prt est produit par lmetteur et consomm par le rcepteur. R prt est
produit par le rcepteur et consomm par lmetteur. Lide est dassurer la
e
e
e
e
synchronisation par un dialogue entre lmetteur (E) et le rcepteur (R), de la
e
e
forme suivante : E est responsable de la production des valeurs V, et prvient
e
R de lapparition dune nouvelle valeur cest le signal E prt ; R attend
e
dtre ainsi prvenu pour consommer la valeur prsente sur le l ; il envoie
e
e
e
e
c
ensuite ` E un acquittement de lecture cest le signal R prt ; lorsquil reoit
a
laquittement de lecture en provenance de R, E peut procder ` la production
e
a
dune nouvelle valeur.
Remarque : Cette ide dun change dinformations supplmentaires du
e
e
e
type jai crit et jai bien lu, pour rguler les acc`s en lecture/criture ` une
e
e
e
e
a
information partage est une ide simple et tr`s gnrale. La complexit des
e
e
e e e
e
protocoles de communication dans les rseaux informatiques tient ` un autre
e
a
probl`me : les lignes de transmission entre lmetteur et le rcepteur ne peuvent
e
e
e
pas tre considres comme ables, ce qui oblige ` prvoir la rmission des
e
ee
a e
ee
e
messages et de leurs acquittements. En eet, lorsquun signal comme X prt
est mis par lun, on na pas de garantie de rception par lautre.
e
e
138
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2.2
139
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3. Probl`mes de synchronisation
e
Emetteur (changements
dtat sur fronts montants de H e)
e
Rcepteur (changements
e
dtat sur fronts montants de H r)
e
d rp
E1
d ep
R1
p ep
t3
t1
d rp
d rp
t4
d ep
d ep
t2
E2
d rp
p rp
p ep
R2
p rp
d ep
140
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
He
p ep
d ep
p rp
d rp
Hr
Emetteur
Ecr.
Recepteur
Att.
Attente Ecr
Consomm.
Temps
Ecriture
Attente
Consomm.
Fig. 6.8 Comportement temporel des signaux dans un protocole poigne de mains.
e
On a reprsent : la donne V dont les valeurs sont mises par lmetteur,
e
e
e
e
e
e
sur son horloge H e ; lhorloge du rcepteur H r ; les signaux logiques p ep,
d ep (resp. d rp, p rp) qui correspondent ` lchantillonnage du signal E prt
a e
e
(resp. R prt) sur les horloges de lmetteur et du rcepteur. Les courbes
e
e
e
pointilles grasses termines par une `che illustrent des relations de cause `
e
e
e
a
eet, dductibles du fonctionnement temporel de lmetteur et du rcepteur.
e
e
e
Les lignes obliques en trait plein, sans `che, illustrent les dcalages temporels
e
e
entre la production dun signal, cest-`-dire son chantillonnage sur lhorloge
a
e
du producteur, et la dtection de ce signal, cest-`-dire son chantillonnage
e
a
e
sur lhorloge du consommateur.
141
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
142
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
s1
s1h
s1hf
sortie
s1hf obtenu par dtection des fronts montants de s1h ; une sortie sortie de la
e
machine squentielle.
e
Il est ncessaire de dtecter les fronts de s1h an de fournir en entre du
e
e
e
contrleur un signal logique qui indique linsertion dune pi`ce pendant au
o
e
plus une priode dhorloge. En eet la machine squentielle qui reprsente le
e
e
e
contrleur change dtat ` chaque priode dhorloge, et risquerait sinon dutio
e
a
e
liser plusieurs fois le mme signal pour compter une pi`ce de 1F. Nous verrons
e
e
au chapitre 9, paragraphe 1.2.4, un dispositif matriel capable de raliser cette
e
e
dtection de fronts.
e
Si lentre s1 fait passer dans un tat o` la sortie sortie est active, le signal
e
e
u
logique correspondant ` cette sortie est vrai d`s la priode dhorloge qui suit
a
e
e
le front montant de s1h et le reste pendant toutes les priodes dhorloge o` la
e
u
machine squentielle est dans le mme tat.
e
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Deuxi`me partie
e
Techniques de
lalgorithmique matrielle
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 7
1.
1.1
1.1.1
Atomes, lectrons
e
146
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ga gallium
C carbone
Si silicium
Ge germanium
P phosphore
As arsenic
Cristaux
Les atomes dun corps sont lis entre eux plus ou moins fortement et
e
peuvent se disposer les uns par rapport aux autres selon des structures
rguli`res : les cristaux. Le diamant et le graphite sont 2 organisations phye
e
siques direntes du mme lment chimique carbone. De mme il existe des
e
e
ee
e
varits de silicium monocristallin et polycristallin qui sont obtenues par des
ee
procds de fabrication dirents.
e e
e
1.2
Courant et conducteur
147
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
Diusion et dopage
148
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
2.1
149
Grille
Vue de dessus
Coupe x y
Transistor seul
substrat P
substrat P
A
N
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Grille
Coupe x y
Vue de dessus
Transistor reli
e
2.2
2.2.1
Comportement lectrique
e
Supposons que le substrat est reli ` la masse et que les tensions sont telles
ea
que Vsubstrat VA < VB . Nous appellerons B le drain et A la source.
Si la tension de grille est nulle, entre le drain et la source, se trouvent deux
jonctions NP orientes en sens inverse lune de lautre. Or une jonction a pour
e
proprit de ne conduire le courant que dans le sens N vers P. La jonction
ee
drain
B
A=0V
Grille
A=0V
Grille
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Grille
P
Tension de grille = 0 V
..
.. . .: :N
P
Tension de grille = 0.5 V
source
A=0V
150
::::::::::::::::::::N::::::::
:
: : : : : : ::: : : :
P
Tension de grille = 5 V
Le transistor ` canal P
a
151
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
potentiel sur la grille est susamment plus petit que celui du substrat.
On remarque la dicult de cohabitation sur un mme substrat de silicium
e
e
dun transistor N avec un substrat P ` la masse et dun transistor P avec un
a
substrat N reli ` lalimentation. Cest pourtant ce que lon cherche ` faire en
ea
a
technologie CMOS, o` les deux types de transistors cohabitent. La technologie
u
de ralisation bri`vement dcrite au paragraphe 5.2 en tient compte.
e
e
e
2.2.4
3.
3.1
Labstraction logique
Les valeurs 0 et 1 dun bit sont reprsentes par des tensions, respectivement
e
e
nulle (0 volt ou masse) et la tension dalimentation, standardise ` 5 volts (de
e a
152
Tension de commande
Alimentation
Masse
Masse
Alimentation
Comportement
Passant
Bloqu
e
Passant
Bloqu
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Type de transistor
Canal N
Canal P
plus en plus souvent 3,3 volts, voire moins, notamment dans les machines
portables).
Les transistors sont fabriqus de telle faon quil existe une tension de
e
c
seuil (threshold en anglais) Vth au-dessus de laquelle lentre dun circuit ine
terprtera le signal comme un 1, et comme un 0 au-dessous. La valeur nominale
e
de Vth est choisie de mani`re ` optimiser la tolrance aux bruits et parasites
e a
e
lectriques pouvant aecter le signal. Compte tenu des tolrances de fabricae
e
tion sur la valeur de Vth , tous les circuits interprteront une tension infrieure
e
e
a 0,75 volts comme un 0 et suprieure ` 4,5 volts comme un 1.
e
a
On parle de niveaux 0 logique et 1 logique, ou de niveaux logiques bas et
haut. En logique ngative le niveau haut correspond au 0 et le niveau bas au
e
1. Nous ne prendrons pas cette convention.
Etudions un comportement simpli du transistor. Cette simplication
e
consiste ` faire comme si le canal du transistor tait soit totalement bloqu soit
a
e
e
passant, auquel cas il a une rsitance R. Nous ne regardons les transistors que
e
relis soit a la masse, (le potentiel 0 volt), soit ` un potentiel positif, la tension
e
`
a
dalimentation. En ralit les tensions lectriques varient de faon continue, et
e e
e
c
parfois il y a des parasites.
Pour un transistor ` canal N avec le substrat ` la masse :
a
a
Si la grille est ` lalimentation, le transistor est passant. Sil y a une
a
dirence de potentiel entre A et B, du courant circule entre A et B.
e
Si la grille est ` la masse, le transistor est bloqu. Mme sil y a une dirence
a
e e
e
de potentiel entre A et B, aucun courant ne circule entre A et B.
Pour un transistor ` canal P, avec le substrat ` lalimentation, le fonctiona
a
nement est invers :
e
Si la grille est ` ` la masse, le transistor est passant. Sil y a une dirence
aa
e
de potentiel entre A et B, du courant circule entre A et B.
Si la grille est ` lalimentation, le transistor est bloqu. Mme sil y a une
a
e
e
dirence de potentiel entre A et B, aucun courant ne circule entre A et B.
e
Ces direntes fonctions sont regroupes dans le tableau de la gure 7.3. Ce
e
e
comportement simpli fait abstraction de nombreux phnom`nes. On parle
e
e
e
dabstraction logique.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
153
Les fonctions logiques peuvent tre modlises simplement par des fonce
e e
tions boolennes. La ralisation matrielle de lopration boolenne de
e
e
e
e
e
complmentation sappelle un inverseur . Linverseur peut tre un montage
e
e
lectrique ayant une entre E et une sortie S (Lalg`bre de Boole ne tient
e
e
e
videmment pas compte de lexistence de lalimentation et de la masse dans
e
les montages lectriques).
e
On fait abstraction des valeurs exactes des tensions lectriques en disant :
e
Si E = 0, alors S = 1 et si E = 1 , alors S = 0.
En ralit, comme on va le voir, si 0 <= E <= 0,75 volts, alors S = 5 volts
e e
et si 4,5 <= E <= 5 volts, alors S = 0 volt.
Cela nous donne les points extrmes de fonctionnement dun inverseur.
e
Mais quel peut tre le comportement souhaitable de linverseur entre ces deux
e
extrmes ? Pour rpondre ` cette question imaginons deux montages : lun
e
e
a
constitu de 4 inverseurs en srie : la sortie de lun est lentre du suivant. Dans
e
e
e
lautre les deux inverseurs sont rtrocoupls : la sortie de lun est lentre de
e
e
e
lautre et rciproquement. Les schmas simplis correspondants sont donns
e
e
e
e
gure 7.4. Linverseur y est reprsent par une simple bo avec une entre e
e
e
te
e
et une sortie s.
Dans le montage de 4 inverseurs en srie, envoyons un signal dentre qui
e
e
en fonction du temps passe de 0 ` 5 volts (la reprsentation en escalier ntant
a
e
e
pas ` prendre au pied de la lettre).
a
Examinons les sorties apr`s 2, ou 4, inversions pour trois types dinverseurs.
e
Les trois sont candidats au titre du meilleur inverseur.
Pour les trois types, nomms Accroissement, Maintien, Diminution, nous
e
donnons une courbe de transfert donnant la tension de sortie de linverseur
en fonction de la tension dentre (Figure 7.5). Pour les trois types les vae
leurs extrmes des tensions sont respectes, et il existe une tension mdiane
e
e
e
VM pour laquelle la tension de sortie est gale ` la tension dentre. Mais le
e
a
e
comportement entre ces points est dirent.
e
Pour les trois types nous donnons lallure de la rponse du montage
e
constitu de 2 ou de 4 inverseurs ` lentre en escalier.
e
a
e
Linverseur de type Accroissement accentue les dirences entre les niveaux
e
faibles et forts. Cest un amplicateur. Si il y a un faible parasite en entre, le
e
parasite nest pas apparent en sortie.
A linverse linverseur de type Diminution diminue les dirences entre
e
niveaux faibles et forts. D`s que le signal dentre prsente un parasite, le
e
e
e
niveau de sortie risque dtre autour de VM , ce qui nest pas souhaitable.
e
De mme, pour le montage constitu de deux inverseurs rtrocoupls, on
e
e
e
e
comprend aisment que linverseur de type Accroissement donne un syst`me
e
e
stable. Soit une sortie vaut 1 et lautre 0, soit le contraire, mais une stabilisation
a
` un tat intermdiaire est tr`s improbable (quoique pas impossible). Avec un
e
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
154
Accroissement
Maintien
5V
0V
entre
e
Diminution
s2 apr`s 4 inversions
e
s1 apr`s 2 inversions
e
s1
4 inverseurs en srie
e
s2
2 inverseurs rtro-coupls
e
e
Vs
Vs
Vs
1
Accroissement
Ve
1
Maintien
Ve
1
Diminution
Ve
155
Transistors
entre
e
gP
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
gN
Inverseur CMOS
dN
sN
` canal N
a
dP
gN
sP
` canal P
a
gP
alim.
masse
sN
dN
dP
sP
sortie
Fig. 7.6 Schma conventionnel des transistors MOS et de linverseur CMOS. d,g,s sont
e
respectivement les Drains, Grilles et Sources. N et P dsignant les transistors
e
N et P.
Tension
dentre
e
Ve
0 V <= Ve <= 0.75 V
4.5 V <= Ve <= 5 V
Rsistance du
e
transistor N
RN
innie
R2
Rsistance du
e
transistor P
RP
R1
innie
Tension de
sortie
Vs
5V
0V
156
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.3
4.
Circuits logiques
157
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4. Circuits logiques
E=0V
Charge
E=5V
S=5V
S=0V
Dcharge
e
C Charge
e
C Dcharge
e
e
E1
E1
E2
E2
E2
E1
E3
(a)
(b)
(c)
(d)
Inverseur
NOR2
NAND2
Porte inconnue
158
4.1
Assemblages combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
De faon tr`s similaire au montage des portes NAND ou NOR ` deux entres,
c
e
a
e
on obtient une porte NOR ` trois entres avec 3 transistors N en parall`le entre
a
e
e
la masse et la sortie et 3 transistors P en srie entre la sortie et lalimentation.
e
De mme on obtient une porte NAND ` trois entres avec 3 transistors N en
e
a
e
srie entre la masse et la sortie et 3 transistors P en parall`le entre la sortie et
e
e
lalimentation.
Le procd semble pouvoir continuer. Noublions pas que les rsistances
e e
e
des transistors passants en srie sajoutent. Certaines techniques de ralisation
e
e
vont imposer des contraintes dorigine lectrique au nombre maximal dentres
e
e
des portes.
4.1.4
4. Circuits logiques
159
c2
c3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
c1
e
e1
e2
e3
Commutateur
- structure interne
- schma simpli
e
e
C
s
4.1.5
La source dun transistor MOS peut ne pas tre connecte au mme potene
e
e
tiel que le substrat. On obtient alors entre drain et source un demi-interrupteur
lectronique command par la tension de grille qui permet de raliser des
e
e
e
160
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
s = si
c1 et non c2 et non c3 alors non e1 sinon
si non c1 et
c2 et non c3 alors non e2 sinon
si non c1 et non c2 et
c3 alors non e3 sinon
indfini
e
Fig. 7.11 Comportement de laiguillage
Laiguillage
Lamplicateur 3 tats
e
Observons la gure 7.12. Lensemble inverseur (qui est aussi un amplicateur) suivi dun commutateur est parfois ralis en un seul circuit nomm
e e
e
amplicateur/inverseur 3 tats. Le montage constitu de deux inverseurs suivis
e
e
dun commutateur reoit le nom de porte de sortie 3 tats. On peut dire aussi
c
e
que cest un inverseur suivi dun amplicateur/inverseur. Ce montage est utilis dans beaucoup de dispositifs comprenant des bus. Nous en utiliserons dans
e
les chapitres relatifs aux entres/sorties. On donne aussi une autre ralisation
e
e
de la porte 3 tats. Dans ces dirents montages, les rsistances des transistors
e
e
e
quand ils sont passants doivent tre ajustes soigneusement.
e
e
4.1.9
La gare de triage
4. Circuits logiques
161
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
OE
OE
OE
(b)
(a)
OE
OE
OE
s
(c)
aout
ain
cin
cout
bout
bin
din
dout
162
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.2
4.2.1
Assemblages squentiels
e
Introduction
Le bistable
4. Circuits logiques
163
F1
E
F3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
F2
e s
s e
Bistable
(a)
V1
s e
e s
C1
e s
e s
C2
V2
une valeur V1 et son complment V2 ` laide de circuits plus puissants que les
e
a
deux inverseurs utiliss dans le montage bistable, ces deux valeurs restent en
e
place quand la commande F sur les deux transistors redevient inactive.
Cest un point de mmorisation dans lequel on peut donc crire. La lece
e
ture se fait simplement en rcuprant les valeurs du bit mmoris et de son
e
e
e
e
complmentaire en sortie des deux inverseurs. Le chapitre 9, consacr aux
e
e
lments de mmorisation, reprend ces points en dtail.
ee
e
e
4.2.4
Loscillateur
Le monostable
Lors de lappui sur le bouton Reset dun ordinateur, une impulsion est
gnre, puis elle dispara Un montage comme celui de la gure 7.15-b assure
e ee
t.
164
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
R
R
Clock
(a)
Vreset
(b)
Fig. 7.15 (a) Oscillateur dlivrant une horloge. (b) Syst`me de rinitialisation dlivrant
e
e
e
e
une tension de Reset.
cette fonctionnalit.
e
5.
5.1
Le procd de photogravure
e e
165
lumi`re
e
A
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
A
B
prod photo
A
B
2 : apr`s enl`vement
e
e
du produit photo
non illumin
e
3 apr`s enl`vement
e
e
du produit A `
a
dcouvert
e
1 : ashage
face des blancs du masque et nen reoit pas en face des noirs du masque. Un
c
produit chimique permet dattaquer le produit photo-sensible l` o` il a reu
a u
c
de la lumi`re et seulement l` (tape 2 de la gure 7.16).
e
a e
Apr`s cette attaque, le matriau A est apparent en face des blancs du
e
e
masque. Puis un deuxi`me produit chimique attaque le matriau A l` o` il est
e
e
a u
en surface (tape 3 de la gure 7.16). Le matriau B est alors sur le dessus
e
e
en face des blancs du masque. Un troisi`me produit chimique attaque le proe
duit photo-sensible l` o` il na pas t illumin. On obtient ainsi une forme en
a u
ee
e
matriau A ` la surface dun substrat constitu de matriau B. Cette forme
e
a
e
e
est celle qui tait dessine sur le masque. La mise en oeuvre eective de ce proe
e
cessus de fabrication demande une haute technologie pour obtenir des dessins
dont les tailles sont de lordre du dizi`me de micron.
e
A partir du schma de connexions entre les transistors lobtention des dese
sins des masques suppose de manipuler quelques centaines de millions de rectangles. Un outil de Conception Assiste par Ordinateur est videmment ine
e
dispensable. Les vieillards se souviennent avec motion du bon temps o` les
e
u
circuits navaient que quelques centaines de transistors et o` les crayons de couu
leurs et le papier quadrill tenaient lieu dassistance. Les schmas physiques
e
e
taient obtenus en dcoupant de lautocollant noir, aux ciseaux, et en le collant
e
e
sur du papier blanc. Un ngatif dune photo de la feuille de papier tenait lieu
e
de masque.
5.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
166
F
E
F
E
F
E
F
E
F
E
F
E
F
E
F
E
F
E
F
E
F
E
F
E
F
E
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
D
C
C
C
C
Caisson P
F
E
Caisson P
Caisson N
Coupe xy
F
E
F
E
Caisson N
Caisson P
C
@
9
@
9
@
9
@
9
@
9
@
9
@
9
@
9
@
9
@
9
@
9
@
9
@
9
H
G
@
9
@
9
8
7
@
9
@
9
8
7
8
7
8
7
8
7
8
7
8
7
8
7
8
7
8
7
8
7
H
G
V
6
6
5
5
Coupe xy
6
6
5
5
6
6
5
5
H
G
H
G
H
G
H
G
H
G
H
G
P
I
P
I
P
I
P
I
P
I
P
I
P
I
P
I
P
I
P
I
P
I
G
G
P
I
P
I
P
I
P
I
P
I
P
I
P
I
P
I
P
I
8
7
H
G
H
G
P
I
P
I
8
7
H
G
8
7
H
G
8
7
H
G
8
7
H
G
H
G
8
7
H
G
8
7
H
G
H
G
8
7
8
7
H
G
H
G
B
A
@
9
P
I
P
I
P
I
"
!
"
!
"
!
"
!
"
!
6
6
5
5
5
5
4
3
$
#
&
%
$
#
DifP
@
9
D
Lgende des masques
e
@
9
@
9
@
9
Coupe xy
A
E
Schma lectrique
e
e
e entre
e
DifN
(
'
(
'
'
'
Sipol
0
)
0
)
V Vref
0
)
0
)
0
)
0
)
0
)
0
)
0
)
2
1
2
1
Alu2
2
1
2
1
Alu1
a masse
C1
C2
Contacts
s sortie
2
1
2
1
Fig. 7.17 Les masques intervenant dans la technologie CMOS. DifP est le masque de
la zone diuse P, DifN de la zone diuse N, Sipol est le masque du silicium
e
e
polycristallin, Alu1 et Alu2 sont les deux niveaux daluminium, C1 et C2 sont
les deux niveaux de contacts sous laluminium. Les masques sont cumuls
e
dans les direntes parties de la gure. La vue en coupe apr`s lopration est
e
e
e
selon la ligne xy ou la ligne xy. Dans les vues en coupe loxyde nest pas
color.
e
167
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Nos dessins sont simplis par rapport ` la ralit. Sur les vues en coupe les
e
a
e e
vraies proportions ne sont pas respectes. La ligne de surface du substrat qui
e
appara sur les coupes nest pas si rectiligne. Il y a en ralit environ 15
t
e e
masques.
Dcrivons les oprations principales :
e
e
1. La premi`re consiste ` doper, faiblement, un caisson P pour y raliser des
e
a
e
transistors N. Le caisson P existe sous toute la zone des transistors N.
Il y a de mme un caisson N pour les transistors P. Cette tape utilise
e
e
un premier masque. Puis on dlimite ` laide dun deuxi`me masque une
e
a
e
zone active comprenant lensemble des zones qui seront diuses et les
e
transistors. Des points de contacts entre lalimentation, ou la masse, et
le subtrat, ou le caisson, sont aussi dans les zones actives. Ce sont les
points de polarisation. A lextrieur de la zone active se trouve un oxyde
e
pais de silicium (ces deux masques caisson et zone active sont partie A).
e
2. Puis on dlimite la zone de silicium polycristallin, qui est au-dessus dune
e
couche doxyde mince. Cette zone est lentre de linverseur. (partie B,
e
o` le caisson nappara plus).
u
t
3. Puis deux masques marquent les zones diuses N ou P. Cette diusion
e
ne passe pas ` travers loxyde. Elle ne se fait pas, donc ni sous loxyde
a
mince, laissant la place aux canaux des transistors, ni sous loxyde pais
e
hors de la zone active (partie C).
4. Une nouvelle couche doxyde pais est ajoute, dans laquelle on dlimite
e
e
e
des trous de contacts selon un nouveau masque (partie D).
5. Des connexions daluminium sont graves entre direntes parties des
e
e
dirents transistors. Lalimentation, ` droite sur la gure, relie le point
e
a
de polarisation du substrat N, et un ct des transistors P. La masse, `
oe
a
gauche sur la gure, relie le point de polarisation du caisson P et un ct
oe
des transistors N. Une autre connexion daluminium, au centre, relie le
transistor N, le transistor P et la sortie de linverseur. Des connexions
daluminium peuvent aussi servir ` relier des sorties dinverseurs ou de
a
portes ` des entres dautres portes (partie E).
a
e
6. Si ncessaire, on introduit une nouvelle couche doxyde pais, perce de
e
e
e
contacts, et une nouvelle couche daluminium (partie F). On peut trouver
ainsi 3 ou 4 niveaux daluminium.
Puis lensemble du circuit est recouvert dun oxyde de protection.
5.3
Procds simplis
e e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
168
Fig. 7.18 Masque du niveau daluminium dun petit morceau de circuit (une centaine
de transistors). On remarque une rptitivit du motif.
e e
e
que peut tre le masque du niveau daluminium dun petit morceau de circuit
e
(une centaine de transistors). La forme des connexions est, en fait, la fonction.
La conception, incluant notamment le dessin, et la fabrication des circuits
intgrs digitaux sont des oprations complexes et onreuses. On essaie dans
e e
e
e
certains cas de les simplier. Les diverses simplications peuvent porter soit sur
la fabrication proprement dite, soit sur le dessin du circuit. La simplication
vise ` apporter un gain soit dans la surface du circuit, soit dans sa vitesse
a
de fonctionnement, soit dans la dicult de conception, soit dans sa facilit `
e
ea
raliser plusieurs fonctions. La surface est souvent un param`tre critique : plus
e
e
le circuit est grand, plus il risque dy avoir des dfauts de fabrication, donc
e
plus le rendement de fabrication est faible.
Des mthodes visant ` simplier la conception ou la fabrication sont exe
a
poses ci-apr`s.
e
e
5.3.1
Une des simplications possibles est de ne pas fabriquer totalement le circuit pour une application donne. En sortant de ltape de fabrication, le circuit
e
e
na pas encore de fonction. Cette fonction sera donne par une tape de persone
e
nalisation nale du circuit. Cette personnalisation est plus ou moins dnitive.
e
Elle reoit parfois le nom, plus ou moins impropre, de programmation.
c
Il y a quatre cas :
1. Aucune personnalisation, le circuit sort de la fabrication bon ` lemploi
a
(mmoires vives, processeurs, . . .).
e
2. Personnalisation par modication dnitive : une tape de modicae
e
tion est applique au circuit. Certaines connexions sont tablies, ou
e
e
supprimes, pendant cette modication. Cette programmation se fait
e
169
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
170
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.3.3
6.
Exercices
6. Exercices
171
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
172
De llectron aux dispositifs logiques
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 8
Circuits combinatoires
174
Circuits combinatoires
Alimentation
Masse
s0
F : 2 entres , 1 sortie
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
e0
e1
e2
e3
entres
s1
s2
s3
G : 3 entres, 2 sorties
Circuit global :
4 entres, 4 sorties
sorties
Fig. 8.1 Un exemple de circuit combinatoire. Les carrs F et G sont des portes ou des
e
circuits combinatoires.
1.
1.1
175
1 logique
0 logique
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
e0
e1
5 Volts
0 Volt
s0 observ
Indtermin
e
e
1 logique
0 logique
s0 (avec dlais)
1.2
1.2.1
Un circuit combinatoire ralise une fonction. Cela veut dire quune certaine
e
conguration des entres donne toujours la mme conguration des sorties.
e
e
Examinons ce que signie ce toujours. Si plusieurs congurations dentres
e
sont appliques successivement aux entres du circuit combinatoire, on observe,
e
e
apr`s stabilisation, certaines congurations de sorties.
e
Un circuit est combinatoire si :
Pour tout couple (C1,C2) de congurations dentres, le circuit recevant
e
la squence temporelle C1, C2, C1 en entre donne, apr`s ventuelle
e
e
e e
stabilisation des valeurs, une squence de sortie S1, S2, S1.
e
176
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
Le principe de ralisation
e
Les objets de base utiliss dans les circuits combinatoires sont les portes
e
logiques. Une technologie de ralisation tant choisie, il nest pas ncessaire de
e
e
e
garder la reprsentation en transistors des portes NOR ou NAND comme dans
e
le chapitre 7. Lusage a consacr des symboles pour les portes. Les connexions
e
entre ces portes sont reprsentes par des traits. Ces symboles sont reprsents
e
e
e
e
gure 8.3.
On trouve souvent des portes NAND et NOR sans le petit rond utilises
e
pour reprsenter des fonctions ET et OU.
e
1.3.1
Les inverseurs, les NAND et les NOR sont les portes lmentaires. Linveree
seur est un NAND (ou un NOR) ` une seule entre. Pour des raisons lectriques
a
e
e
(trop grande rsistance obtenue en mettant beaucoup de transistors en srie,
e
e
par exemple) le nombre dentres des portes est parfois limit. Ainsi pour la
e
e
ralisation de carte imprime ` base de bo
e
e a
tiers de la famille technologique
TTL (Transistor Transistor Logic) on peut disposer de portes NAND ` 2, 3, 4,
a
8 ou 13 entres. Pour raliser une fonction NAND portant sur 6 variables, tout
e
e
va bien puisque NAND(a, b, c, d, e, f) = NAND(a, b, c, d, e, f, f, f) et la porte
e1
e1
e1
a
b
a
s
e3
e2
e2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
177
c
6
NAND ` 8 entres fait laaire. Mais pour une fonction ` plus de 13 entres
a
e
a
e
cest moins simple.
Lexercice E8.15 donne une ide de solution ` ce probl`me. Dans dautres
e
a
e
technologies les portes NOR ne peuvent avoir que 2 ou 3 entres et les portes
e
NAND que 2, 3 ou 4. Dans certains cas, plusieurs technologies peuvent intervenir dans un mme quipement matriel comportant plusieurs puces. Une puce
e
e
e
peut ne contenir que des portes ` au plus 4 entres alors que la puce voisine a
a
e
des portes ` 20 ou 2000 entres.
a
e
1.3.2
Assemblage systmatique
e
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
178
NAND soit de NOR. Ces circuits sont optimaux en terme de nombre dtages.
e
Exemple E8.1 : Ralisation en NAND de la fonction majorit
e
e
Reprenons la table de vrit de laddition de deux naturels (Cf. Parae e
graphe 2.2.2, chapitre 3) en nous limitant ` la fonction majorit :
a
e
a b
re
0
0
0
0
0
1
0
1
0
0
1
1
rs
maj(a, b, re )
0
0
0
1
a b
re
1
1
1
1
0
1
0
1
0
0
1
1
rs
maj(a, b, re )
0
1
1
1
ou
179
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a
b
re
a
b
re
Fig. 8.5 Ralisation de la fonction majorit en portes NAND. Sur le schma, deux
e
e
e
conventions usuelles sont prsentes : avec lune, les points noirs reprsentent
e
e
e
des connexions entre un l horizontal et un l vertical ; avec lautre, un trou
dans le l vertical permet de mettre en vidence la non-connexion.
e
1.4
Algorithmique cble
a e
Pour la beaut de son nom signalons un outil qui construit les portes ` partir de la
e
a
description de la fonction boolenne : BuildGates !
e
180
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Synth`se logique
e
181
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
2.1
Dcodeurs, encodeurs
e
2.1.1
2.1.2
Synth`se systmatique
e
e
182
Circuits combinatoires
Encodeur1
Entres
e
Sorties
e3 e2 e1 e0 s1 s0
0001
00
0010
01
0100
10
1000
11
Encodeur2
Entres
e
Sorties
e3 e2 e1 e0 s1 s0 a
0000
1
0001
000
001x
010
0 1 xx
100
1 xxx
110
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Dcodeur
e
Entres
e
Sorties
val e1 e0 s3 s2 s1 s0
100
0001
101
0010
110
0100
111
1000
0xx
0000
Fig. 8.6 Tables de vrit des encodeurs et dcodeurs. Les x et les indiquent une
e e
e
valeur non pertinente respectivement en entre ou en sortie.
e
2.2
2.2.1
Synth`se systmatique
e
e
183
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
x3
a
b
c
d
e
f
g
x2
x1
x0
g
d
b
c
x3 x2 x1 x0
x3 x2 x1 x0
a b c d e f g
a b c d e f g
Fig. 8.8 Description symbolique des PLA ralisant le codage pour un acheur 7 sege
ments. A gauche minimisation de chacune des fonctions, indpendamment les
e
unes des autres, ` droite, minimisation globale.
a
184
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
entre 0 et 15. Il dlivre 7 sorties activant 7 segments dun acheur. Les 7 sege
ments se nomment a, b, c, d, e, f et g. Ils sont disposs comme sur la gure 8.7.
e
Les chires hexadcimaux sont achs comme indiqu. La fonction du circuit
e
e
e
est de transcoder entre le code binaire des nombres et le code en segments
allums et segments teints.
e
e
On cherche ` exprimer chacune des 7 fonctions boolennes a, . . ., g en
a
e
fonction de x3 , x2 , x1 , x0 . Par exemple,
a = x3 .x1 + x2 .x1 + x2 .x0 + x3 .x0 + x3 .x2 .x0 + x3 .x2 .x1
2.2.3
2.3
2.3.1
185
x3
x3 x2 x1 x0
x2
x1
x0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
c1
c1
c0
11 10 01 00
c0
e1 e0
Fig. 8.9 Reprsentation symbolique des multiplexeurs 4 voies vers 1 et 2 voies vers 1.
e
Structure interne du multiplexeur 4 voies vers 1.
2.3.2
Synth`se systmatique
e
e
Pour une fonction de 8 variables on forme les 256 monmes canoniques pour
o
exprimer la fonction sous forme de somme de produits ` partir de la table de
a
vrit, et on ralise un circuit combinatoire en collant ` cette expression.
e e
e
a
2.4
2.4.1
Multiplexeurs
Synth`se systmatique
e
e
Les multiplexeurs sont tr`s pratiques pour synthtiser une fonction dcrite
e
e
e
par un graphe de dcision binaire (BDD). Ils sont surtout une brique de base de
e
lalgorithmique cble o` ils ralisent la primitive de choix. Ainsi de nombreux
a e u
e
186
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.5
2.5.1
Portes complexes
Dans certains types de ralisations des portes un peu complexes sont utie
lises ; par exemple les portes ORNAND et ANDNOR prsentes gure 8.3.
e
e
e
2.5.2
Synth`se systmatique
e
e
3.
3.1
La question de la rgularit
e
e
187
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
188
Circuits combinatoires
8 7 6 5 4 3 2 1 0
7532
864875 642310
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
7543864876352 86
8 7
432
9 8 7 6 5
4 3 2 1 0
Solution 2
Solution 1
3.2
3.2.1
Assemblages linaires
e
ai b0 a0
b
n
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
an1
189
Add
S
additionneur
A
rn1
r0
Schma en tranches
Schma en blocs
Mux
B
1
C
multiplexeur
190
Circuits combinatoires
Bn1
A0 B0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
An1
10
10
10
10
Add/Sub
1
0
Sn1
Sn2
S1
S0
Arbre de OUEXCLUSIFs
Arbre de ETs
Arbres mixtes
de ce report sortant. Le bit doVerow V est le XOR des deux derniers reports.
Le schma, en tranches, du circuit est donn gure 8.12.
e
e
3.3
Assemblages arborescents
191
e0
Dcodeur 2 vers 4
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
e1
D2
s0
e3
s1
D1
e2
s3
s3
s10
s0
entres. Une seule des sorties est ` 1. Il est tr`s facile de dcrire un tel circuit
e
a
e
e
rcursivement :
e
si N vaut 1, le circuit consiste en 1 seul inverseur. Les deux sorties sont
lentre et lentre complmente.
e
e
e
e
si N est suprieur ` 1, on dispose de deux dcodeurs ` N/2 entres. Ils
e
a
e
a
e
N/2
ont chacun 2
sorties. En combinant 2 ` 2 dans des portes AND ` deux
a
a
entres les sorties des 2 dcodeurs, on obtient le dcodeur souhait.
e
e
e
e
Montrons le passage de 2 entres ` 4 par un exemple (Cf. Figure 8.14).
e a
Un dcodeur D1 ` 2 entres e3 e2 dlivre les 4 sorties s3 s2 s1 s0 .
e
a
e
e
Un dcodeur D2 ` 2 entres e1 e0 dlivre les 4 sorties s3 s2 s1 s0 .
e
a
e
e
Les quations des sorties du dcodeur ` 4 entres sont, pour p compris entre 0
e
e
a
e
et 15 :
sp = sp div 4 AND sp modulo 4
cest-`-dire :
a
3.4
Assemblages gnraux
e e
192
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
193
anne
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
8
4
mois
jour
Db
>2
bis
Opration
e
souhaite
e
A+B
A-B
B div 2
A AND B
Opration
e
ralise
e e
A+B+0
A+B+1
B div 2 + 0 + 0
A AND B
retenue
entrante
0
1
0
entre di
e
entre ei
e
sortie fi
ai
ai
bi
bi
0
bi
si
si
si
xi
bi+1
ai
Opration
e
A+B
A-B
B div 2
A AND B
mux 1
bi
bi
bi
mux 2
ci
ci
0
ci
mux 3
ai
ai
bi+1
ai
mux 4
si
si
si
xi
Les nappes peuvent tre interprtes comme des entiers ou des vecteurs de
e
ee
bits. LUAL calcule, selon 2 bits de commande com1 com0, la somme de A
et B, la dirence de A et B, le quotient de B par 2 ou, sans linterprtation
e
e
enti`re, le AND (bit ` bit) des nappes A et B.
e
a
LUAL comporte un additionneur. En aiguillant les bonnes valeurs sur les
entres ei , di et la retenue entrante de ladditionneur, on obtient les 3 rsultats
e
e
arithmtiques en sortie si de ladditionneur (Cf. Figure 8.16). En utilisant
e
la sous-fonction AND prsente dans la fonction majorit de chaque tranche
e
e
dadditionneur, on obtient la valeur xi = ei AND di . Un dernier multiplexeur
permet dobtenir fi gal soit ` xi soit ` si .
e
a
a
Les slections des multiplexeurs 1, 2, 3 et 4 de la gure 8.18 peuvent tre
e
e
obtenues aisment (Cf. Figure 8.17). Il reste ` exprimer les commandes de
e
a
chaque multiplexeur en fonction de com1 com0.
194
Circuits combinatoires
ai
bi
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
bi+1
1
ci
2
di
Add
Add
ri+1
ei
xi
Add
Add
ri
si
fi
Fig. 8.18 UAL. Les tranches reprsentes sont la tranche de plus fort poids, une tranche
e
e
de rang intermdiaire et la tranche de poids faible. Le remplacement de
e
certains multiplexeurs par des portes est fait dans la partie droite.
4.
Etude de cas
4. Etude de cas
195
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
196
Circuits combinatoires
x0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
P1
P2
P1
P0
P0
P3
P7
P1 P0
Fig. 8.19 Direntes solutions pour la ralisation de lincrmenteur. Les portes XOR
e
e
e
ne sont pas dessines dans la solution 4
e
chaque bloc, il faut dessiner le dernier tage de portes ralisant les AND avec
e
e
le dernier produit de ltage prcdent.
e
e e
Dans cette solution aussi il conviendrait de remplacer les cascades de AND
par des cascades de NAND et de NOR, alternativement. La mise au point de
cette solution est un excellent exercice.
5.
Exercices
5. Exercices
197
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Apr`s tre all au NOR, il faut quon pense ` faire NAND (G. Brassens)
e e
e
a
198
Circuits combinatoires
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tur
F.
bla es L
P. Lagn rd,
ogi
Sic ier J.- cie
ard , F C.
l les
, P . M Fer
et
ara na
h.
Ma
Wa ni nde
e
nch z, trie
il le
l l es
i,
Chapitre 9
Elments de mmorisation
e
e
200
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
1.1
1.1.1
201
Q1
Q
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
(a)
S
(b)
Q2
(c)
Fig. 9.1 a) le bistable b) la bascule RS ralise avec des portes NOR c) le symbole
e e
logique de la bascule RS
202
R Q1
0 Q1
0
1
1
0
1
0
Q2
Q2
0
1
0
Q1
=
=
=
=
=
=
Q1.S.R + S.R
R.(Q1.S + S)
R.(Q1 + S)
Q2.S.R + S.R
S.(Q2.R + R)
S.(Q2 + R)
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
S
0
1
0
1
Elments de mmorisation
e
e
Q2
R
S
Q1
Q2
temps
Fig. 9.2 Chronogramme du comportement logique idal dune bascule RS. Les poine
tills reprsentent les instants de changement de Q1 et Q2.
e
e
e
On remarque que si R.S = 1, Q1 = Q2 ce qui justie le schma logique de
la gure 9.1-c. En revanche, dans le cas o` R et S valent 1, les sorties Q1 et
u
Q2 ne sont pas complmentaires.
e
Le chronogramme de la gure 9.2 montre le comportement temporel logique
de la bascule RS.
Avec la bascule RS ` portes NOR, la remise ` 0 est prioritaire sur la mise
a
a
a
a
` 1 : en eet, Q = R.(Q + S). Donc, si R vaut 1, la sortie Q passe ` 0. Sinon,
la sortie est conditionne ` la valeur de S : si S vaut 1, la sortie Q vaut 1 sinon
e a
0.
La bascule RS peut tre aussi ralise avec des portes NAND. Les entres
e
e e
e
de commande sont actives ` 0 (lorsque R=S=1, la nouvelle valeur est gale `
a
e
a
lancienne, si R vaut 0 et S vaut 1, Q passe ` 0, si R vaut 1 et S vaut 0, Q
a
passe ` 1) et la mise ` 1 est prioritaire sur la mise ` 0.
a
a
a
La table dvolution de la bascule et sa dnition quationnelle sont alors :
e
e
e
S
1
1
0
0
1
0
1
0
Q
0
1
1
Q
1
0
1
= R.Q.S = R.Q + S
= S.Q.R = S.Q + R
1.1.2
203
Verrou
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Un verrou (Cf. Figure 9.4) poss`de une entre de donne D (pour Data),
e
e
e
qui est la valeur ` mmoriser, et une entre de commande En (pour Enable).
a e
e
Lorsque lentre En est active (En=1), le verrou est dit transparent et sa sortie
e
Q est gale ` la valeur de lentre D apr`s un petit dlai appel temps de
e
a
e
e
e
e
traverse du verrou. Lorsque En est ` 0, le montage est quivalent ` un bistable.
e
a
e
a
La sortie Q est ge et sa valeur est celle de lentre D au moment du front
e
e
descendant de En. La dnition quationnelle du verrou D est : Q = En.D +
e
e
En. Q. Le chronogramme de la gure 9.3 illustre ce comportement.
Le verrou peut tre ralis de plusieurs faons, par exemple ` partir dun bise
e e
c
a
table en intercalant un multiplexeur entre les deux inverseurs (Cf. Figure 9.4a
a). Lquation dduite de la gure est : Q = En.D + En.Q. On retrouve l`
e
e
lquation du verrou en notant que Q=Q.
e
Un autre montage peut tre envisag en rebouclant directement la sortie
e
e
du multiplexeur sur son entre. En eet, la ralisation dun multiplexeur dee
e
mande lutilisation de portes, induisant ainsi un dlai de commutation lorse
quon eectue le rebouclage de la sortie sur lentre. Il est donc possible
e
de ne pas intercaler dinverseurs (en nombre pair) entre la sortie du multiplexeur et lentre. Dans la gure 9.4-d, on montre une ralisation de vere
e
rou ` partir dun multiplexeur, lui-mme ralis ` partir de portes NAND.
a
e
e e a
Remarquons que nous retrouvons cette ralisation ` partir de lquation :
e
a
e
Q = En.D + En.Q = En.D.En.Q.
Nous proposons une derni`re ralisation dun verrou ` partir dune bascule
e e
a
RS. Nous lobtenons en transformant lquation prcdente :
e
e e
Q = En.D.En.Q
= (En + D)(En + Q)
= D.En + Q.(En + D) = En.D + Q.En.D
= En.D.(Q + En.D)
1.2
Nous avons dit prcdemment que nous souhaitions raliser des fonctions de
e e
e
mmorisation permettant des aectations de la forme x f(x, e) en nous lie
mitant aux syst`mes synchrones o` la progression des valeurs de x est cadence
e
u
e
par un signal (gnralement priodique) appel horloge.
e e
e
e
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
204
En
D
temps
En
10
En
(b)
(a)
En
En
(c)
(d)
Fig. 9.4 Trois ralisations dun verrou de type D et son symbole logique. a) ralisation
e
e
dun verrou ` partir dun bistable et dun multiplexeur, b) ralisation dun
a
e
verrou ` partir dune bascule RS, c) symbole logique dun verrou, d) ralisation
a
e
dun verrou ` partir dun multiplexeur seul (en gris est reprsent lintrieur
a
e
e
e
du multiplexeur).
205
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Etudions le circuit dont lquation est x=x.e, ralis avec un verrou, dont
e
e e
lentre dactivation est connecte au signal priodique En (par exemple lhore
e
e
loge) et lentre D est relie ` la sortie dune porte NAND ` deux entres.
e
e a
a
e
Cette porte NAND a pour entre e et la sortie Q du verrou. Nous avons les
e
quations suivantes :
e
Q = En.D + En.Q
D = e.Q
206
Elments de mmorisation
e
e
e
x
i1
i2
i3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ADD
instants xs
e
i0
par H
x
e
Q0 D0
En
x0
1
x1
1
x2
3
i4
x3
x4
ADD
Qp Dp
En
H
D0
Q0
transparent
1
1.2.2
Bascule de type ma
tre-esclave
e
deux verrous commands par des signaux complmentaires. Les gures 9.6
e
e
et 9.7 donnent respectivement le montage et un exemple de chronogramme.
Le premier verrou, appel ma
e
tre, mmorise lentre D lorsque En1, ceste
e
a
`-dire H, est ` 1 : la sortie Q1 suit lentre D (D1=D). Pendant ce temps, la
a
e
valeur mmorise par le second verrou reste stable, puisque En2=0. Lorsque
e
e
H prend la valeur 0, le contenu du premier verrou reste g et est transfr
e
ee
dans le second verrou qui devient actif (En2=1) et mmorise donc la valeur
e
prcdemment stocke dans le premier verrou. Ainsi, la sortie Q reste stable
e e
e
pendant que le signal H est ` 1 ou pendant que le signal H reste ` 0. La sortie
a
a
Q change lorsque le signal H passe de 1 ` 0. Le temps pendant lequel H est `
a
a
1 doit tre suprieur au temps de traverse du verrou.
e
e
e
1.2.3
Bascule D ` front
a
207
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
D1 Q1
En1
D2 Q2
En2
Q1
R1
S1
R2
S2
Q1
Q1
Q2
Q2
R3
Q3
S3
Q3
Fig. 9.8 Une ralisation de la bascule de type D ` front descendant et son symbole
e
a
logique
208
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
=
=
=
=
=
=
D
S1.(Q1 + R1)
Q1
Q2
Q2
S3(Q3 + R3)
(1)
(3)
(5)
(7)
(9)
(11)
S1
R2
Q2
Q2
Q3
=
=
=
=
=
H
H + Q1
R2(Q2 + S2)
S2(Q2 + R2)
R3(Q3 + S3)
(2)
(4)
(6)
(8)
(10)
Nous allons montrer que la sortie ne change pas entre deux fronts descendants de H.
Nous faisons lhypoth`se que D reste stable pendant que H passe de 1 ` 0.
e
a
Considrons ltat initial H=1, qui prc`de le front descendant de H. En
e
e
e e
appliquant les quations, nous obtenons les rsultats partiels suivants : S1 =
e
e
1, Q1 = 0, R2 = 1, R3 =0 , Q2 = 0, S3 =0 . Donc, la bascule RS3 ne change
pas dtat et la sortie Q3 est stable.
e
Supposons qu` ltat initial, on ait en plus D=0. Il en rsulte que S2=0,
a e
e
Q2=1, R1=1. Lors du passage de H ` 0, nous obtenons S1=0 dapr`s (2).
a
e
u
Puisque R1=1 dapr`s (3), nous obtenons Q1=1. Do` R3=1 . Par ailleurs,
e
le fait que R2=1 entra Q2=0 dapr`s (4), et donc S3=0 . La sortie de la
ne
e
bascule Q3 est 0. Ensuite, tant que H reste ` 0, Q1 = 1 et R2=1. Il sensuit
a
que R3=1 et S3=0 . La sortie reste ` 0. Lorsque H repasse ` 1, Q1=0 dapr`s
a
a
e
(2) et (3), et R2=1 dapr`s (4). Donc R3 passe ` 0 et S3 reste ` 0 : la sortie
e
a
a
reste inchange.
e
Si ` ltat initial D=1, alors S2=1, Q2=0, R1=0. Nous obtenons Q1 = 0.
a e
Comme R2=0 et S2=1, Q2=1. La bascule RS3 est force ` 1. Par un raisone a
nement analogue au cas o` D=0 ` ltat initial, la sortie Q3 reste stable.
u
a e
Nous avons montr que, si lentre D reste stable pendant que H passe de
e
e
1 ` 0, la sortie Q3 reste stable jusquau front descendant suivant.
a
Le chronogramme de la gure 9.9 montre lvolution de la sortie Q de la
e
bascule ` front descendant en fonction de lentre D.
a
e
Du point de vue de la ralisation, en technologie CMOS, la bascule ` front
e
a
utilise autant de transistors quune bascule ma
tre-esclave cest-`-dire deux fois
a
plus quun verrou.
209
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2.4
1.3
Pour certains circuits complexes, il est indispensable dintroduire une nouvelle entre dite de commande de chargement sur les bascules. Lensemble des
e
bascules a lentre dhorloge connecte ` lentre dhorloge du circuit et des
e
e a
e
groupes de bascules peuvent avoir lentre de chargement en commun.
e
En interne, le signal dhorloge est lentre dhorloge de la bascule (H) et
e
le signal de chargement (Ch) commande un multiplexeur (Cf. Figure 9.11).
Notons que dans certaines documentations lentre de chargement est appele
e
e
enable ce qui peut entra
ner une certaine confusion avec le verrou.
On peut ajouter dautres signaux, par exemple, pour linitialisation Preset
(ou Set) et Clear (ou Reset) forcent respectivement la valeur de la bascule ` 1 et
a
a
` 0. Dans le chapitre 10, on fera gurer sur les bascules les entres de commande
e
et dinitialisation. Selon la structure interne de la bascule, ces entres sont
e
considres soit ` un front (initialisation synchrone), soit d`s quelles sont
ee
a
e
actives (initialisation asynchrone).
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
210
Q1
Q2
H
e
Q1
Q2
S
Ch
0
1
Ch
Fig. 9.11 Une ralisation dune bascule avec commande de chargement et son symbole
e
logique
1.4
211
Notion de registre
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Un verrou ` n bits permet de stocker des informations codes sur plus dun
a
e
bit. On lobtient par simple juxtaposition de verrous lmentaires commands
ee
e
par le mme signal de chargement.
e
Sur le mme principe, en utilisant des bascules D, on obtient un registre `
e
a
n bits.
La nappe des n boolens peut tre interprte comme un vecteur de bits
e
e
ee
mais aussi comme un nombre, un caract`re, etc. (Cf. Chapitre 3).
e
Dans les chapitres 11 et 14, nous verrons lutilisation de tels registres dans
la ralisation des parties opratives. Dans la suite et en particulier dans ces
e
e
chapitres, nous considrons systmatiquement des registres fabriqus ` partir
e
e
e a
de bascules ` front et le plus souvent avec une commande de chargement.
a
2.
Tout ordinateur est dot de mmoires plus ou moins grandes ` acc`s plus
e
e
a
e
ou moins rapide. Ce paragraphe prsente la mmoire du point de vue externe,
e
e
celui de lutilisateur. Nous expliquons ce que sont un mot mmoire et un acc`s
e
e
mmoire, et nous donnons une ide des dirents types de mmoire.
e
e
e
e
2.1
212
Elments de mmorisation
e
e
Adresses
bit n-1
mot 0
mot 1
bit 0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
S0
Cellule
Mmoire
e
Dcodeur
e
A0
Am-1
Sp1
mot 2m 1
SelMem
0
0
1
1
l/e
Opration
e
0
1
0
1
pas dacc`s
e
pas dacc`s
e
criture
e
lecture
Donnes
e
SelMem
l/e
FinAcces
Fig. 9.12 Mmoire de 2m mots de n bits et signication des signaux SelMem et l/e.
e
2.2
213
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Entre deux cycles dacc`s mmoire, le signal AccesMem vaut 0 et les signaux
e e
dadresses, de donnes et l/e ne sont pas signicatifs.
e
Si un acc`s ` la mmoire dure un seul cycle dhorloge du processeur et si
e a
e
le temps de cycle de la mmoire est infrieur ou gal ` ce dernier, on peut
e
e
e
a
simplier le protocole de communication : la mmoire nmet pas lacquite
e
tement FinAcces pour signier explicitement la n dun acc`s. Le processeur
e
demande lacc`s, signal mis sur sa propre horloge, et la lecture ou lcriture
e
e
e
sont supposes tre eectives lors du prochain top dhorloge du processeur.
e e
214
Elments de mmorisation
e
e
A1
A2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Adresse
AccesMem
l/e
T1
T2
La gure 9.13 montre une volution possible des dirents signaux, donnes
e
e
e
et adresses intervenant lors dun acc`s ` la mmoire par le processeur.
e a
e
2.3
Typologie de mmoires
e
215
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
3.1
3.2
3.2.1
Ralisation physique
e
216
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
217
v
(b)
v
C1
B1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
(a)
Cellule
moti
moti
EnD
Q
A0
motj
+-
Am1
motj
EnD
Q
Slecteur
e
l/e
SelMem
l/e
Don
C2
B2
Don SelMem
SelMem
Poids forts
A19
A9
l/e
Slecteurs
e
Poids faibles
A8
A0
Donnes
e
Fig. 9.15 Matrice de Cellules construite ` partir de bistables
a
218
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
4.1
Multiplexage lignes/colonnes
Dans le cas dune organisation de la mmoire telle que nous lavons vue `
e
a
la gure 9.15, on peut diminuer le nombre de broches de moiti. En eet, il ne
e
sert ` rien dactiver une colonne avant que la ligne ne soit slectionne.
a
e
e
Lide est de rutiliser les broches servant ` la slection des lignes pour
e
e
a
e
raliser la slection des colonnes. Il convient alors que le nombre de ls soit le
e
e
mme et on fabrique ainsi des matrices carres de cellules.
e
e
Etant donn m/2 broches et une adresse code sur m bits (m tant pair),
e
e
e
les m/2 bits de poids forts codent une ligne et les m/2 bits de poids faibles
une colonne. Le circuit reoit les m/2 bits de poids forts, qui sont mmoriss
c
e
e
et relis au dcodeur des lignes. Puis, pendant ce dcodage, le circuit reoit les
e
e
e
c
m/2 bits de poids faibles qui sont relis au dcodeur des colonnes.
e
e
Ce circuit est ralis ` partir dune matrice de cellules, en utilisant deux
e ea
signaux supplmentaires RAS (Row Address Strobe) et CAS (Column Address
e
Strobe). La ligne (respectivement la colonne) est slectionne au front dese
e
e a
cendant de RAS, i.e. RAS (respectivement CAS). Le temps dacc`s ` une
cellule mmoire est la somme du temps de slection dune ligne et du temps
e
e
de slection dune colonne.
e
4.2
Mmoires dynamiques
e
e
a
Dans une mmoire de 16Mbits (4096 lignes) de 50 ns de temps de cycle, le
e
rafra
chissement reprsente de lordre dun acc`s ligne par microseconde, ce qui
e
e
consomme environ 5% du dbit thorique de la mmoire. La cellule dynamique
e
e
e
ne ncessite que deux transistors et un seul signal de colonne. Cela autorise la
e
construction de mmoires de plus grande capacit.
e
e
219
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Par ailleurs, les mmoires dynamiques sont dotes dun registre interne
e
e
de stockage de numro de ligne (adresses de poids fort), ce qui permet
e
dconomiser la moiti des broches dadresse sur le bo
e
e
tier au prix dun dispositif externe de multiplexage (commun ` tous les bo
a
tiers).
Lacc`s mmoire se droule en deux temps : le numro de ligne est ene
e
e
e
voy le premier et stock dans un verrou interne. Le temps de dcodage et
e
e
e
ltablissement de la connexion entre la ligne slectionne et les signaux de coe
e
e
lonne est mis ` prot pour transmettre la deuxi`me partie de ladresse (numro
a
e
e
de colonne) au bo
tier. Notons que dans la salve dacc`s ` direntes colonnes
e a
e
dune mme ligne, ltape de slection et de connexion de la ligne aux colonnes
e
e
e
peut tre eectue en une seule fois en dbut de salve. Cette optimisation est
e
e
e
applicable a toute suite dacc`s mmoire ` des adresses ne dirant que par les
`
e e
a
e
poids faibles, qui correspondent au numro de colonne (Cf. Paragraphe 4.3).
e
A partir de ce principe, certaines mmoires ont t conues spcialement pour
e
ee
c
e
la ralisation de cartes vido (Cf. Paragraphe 4.5).
e
e
4.3
Mode rafale
Elments de mmorisation
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
220
adresse
mode page
c1
adresse
mode quartet
c1
c2
c3
c4
RAS
CAS
Donne
e
Fig. 9.16 Chronogrammes dcrivant lacc`s mmoire en mode rafale, pour une interface
e
e e
asynchrone
adresse
mode quartet
c1
RAS
CAS
SelMem
Donne
e
Horloge
Fig. 9.17 Chronogrammes dcrivant lacc`s mmoire en mode rafale, pour une interface
e
e e
synchrone
221
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
mot b
mot a
4.4
Le principe est daccder simultanment ` deux (ou plus dans le cas dacc`s
e
e
a
e
multiple) emplacements mmoire. On a autant de dcodeurs, de signaux l/e,
e
e
de slection de bo
e
tiers SelMem et de bus de donnes, que dacc`s. De plus,
e
e
on rajoute un comparateur pour vrier quil ny a pas dacc`s simultans au
e
e
e
mme emplacement mmoire en criture. Le schma interne dune cellule dune
e
e
e
e
telle mmoire est donn gure 9.18.
e
e
Les mmoires ` n acc`s permettent de raliser des bancs de n registres
e
a
e
e
utiliss par exemple dans la partie oprative du processeur.
e
e
222
4.5
Elments de mmorisation
e
e
La mmoire vido
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 10
Circuits squentiels
e
224
Circuits squentiels
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
la conception du circuit se fait selon des procds dirents (Cf. Chapitre 11).
e e
e
On est proche ici de lalgorithmique cble. Deux grands types darchitectures
a e
(organisations matrielles) des circuits squentiels sont alors employs.
e
e
e
Dans lun, la partie qui permet de stocker les variables de lalgorithme
et de raliser les calculs sur ces variables (partie oprative) est spare de la
e
e
e e
partie commandant lencha
nement de ces oprations (partie contrle). Ces
e
o
deux parties sont des circuits squentiels.
e
Dans lautre type darchitecture, les aspects de contrle et de calcul sont
o
mlangs. Ce sont les valeurs des variables (les donnes) qui contrlent direce
e
e
o
tement lencha
nement des oprations sur celles-ci. On parle darchitecture `
e
a
ots de donnes (Data ow en anglais). Des architectures ` ots de donnes
e
a
e
sont illustres par des exemples dans ce chapitre. Le cas particulier des orgae
nisation ` pipeline est introduit.
a
La mthode de synth`se base sur une partie contrle et une partie oprative
e
e
e
o
e
est prsente en dtail au chapitre 11.
e
e
e
Ces mthodes de conception de circuits sont aujourdhui automatises grce
e
e
a
a
` des outils de CAO de circuits. La ralisation se fait ` partir des spcications
e
a
e
des algorithmes dans dirents langages. Le plus courant, VHDL (devenu
e
un standard) permet de dcrire des spcications de circuits squentiels `
e
e
e
a
dirents niveaux : graphes dautomates dtats ni et algorithmes ` base
e
e
a
dinstructions de types divers (itratif, conditionnel . . .).
e
Nous dnissons dans le paragraphe 1. la notion de circuit squentiel en
e
e
prcisant son architecture et en dcrivant son comportement temporel.
e
e
Dans le paragraphe 2. nous tudions en dtail les mthodes de ralisation
e
e
e
e
de circuits squentiels ` partir du graphe explicite dun automate dtats
e
a
e
ni (Cf. Chapitre 5). Nous dtaillons ici deux types de synth`se : cble et
e
e
a e
microprogramme. Dans le paragraphe 3. nous dcrivons deux exemples
e
e
de ralisations par ots de donnes de circuits squentiels ` partir dun
e
e
e
a
algorithme. Nous donnons aussi une ide de la notion de pipeline.
e
1.
1.1
Caractrisation
e
225
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2
Architecture gnrale
e e
1.3
1.3.1
Comportement temporel
226
Circuits squentiels
e
entres
e
entres
e
sorties
Fonction
de sortie
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Fonction
de sortie
(a)
init
Fonction
de
transition
bascules
Etat courant
bascules
Fonction
de
transition
Etat suivant
clock
sorties
(b)
init
clock
Fig. 10.1 Architecture gnrale dun circuit ralisant un automate dtats ni.
e e
e
e
a) Mod`le de Moore ; b) mod`le de Mealy.
e
e
227
Clock
Clock
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Clock
Temps
i-entres
e
t-tats
e
(a)
Temps
i-entres
e
(b)
i-entres
e
t-tats
e
Temps
(c)
t-tats
e
Une premi`re ide est dchantillonner les entres sur le front descendant
e
e
e
e
de clock. Le circuit arrivant dans un nouvel tat au front montant et les entres
e
e
sur le front descendant, les sorties des circuits combinatoires calculant ltat
e
suivant ont alors une demi-priode de lhorloge pour se stabiliser. Le chronoe
gramme de la gure 10.2-b montre cette dpendance : la demi-priode de clock
e
e
doit tre suprieure ` t-tats pour que les entres des bascules soient stables
e
e
a e
e
au front montant.
Si lon regarde de plus pr`s, il sav`re que lon peut anticiper cet
e
e
chantillonnage et leectuer au mme front que le changement dtat. Au
e
e
e
mme instant ltat suivant est mmoris et les entres sont fournies. En eet
e
e
e
e
e
grce au temps de stabilisation des sorties des circuits combinatoires t-tats,
a
e
larrive des nouvelles valeurs des entres nest pas encore rpercute ` lentre
e
e
e
e a
e
des bascules au moment du chargement du nouvel tat. La priode de clock doit
e
e
tre suprieure ` t-tats. Pour une valeur de t-tats maximale donne, on peut
e
e
a e
e
e
ainsi doubler par rapport ` la premi`re solution (Figure 10.2-b) la frquence
a
e
e
maximale ` laquelle lautomate peut voluer (si on prend des niveaux haut et
a
e
bas de lhorloge de mme dure). Le chronogramme de la gure 10.2-c montre
e
e
cette volution.
e
Calcul des sorties
(Cf. Figure 10.3) Si la solution adopte est
e
lchantillonnage des entres sur le front dactivation des bascules, que lon
e
e
soit dans le cas dun automate de Moore ou de Mealy le rsultat est le mme.
e
e
Soit t-sorties le dlai de stabilisation des circuits combinatoires calculant les
e
sorties. Les signaux de sorties seront stables un temps t-sorties apr`s le front
e
dactivation des bascules (Cf. Figure 10.3-a).
En revanche, dans le cas o` lchantillonnage ne se fait pas sur le front
u e
dactivation des bascules, les sorties dun automate de Mealy auraient un comportement dirent de celui dun automate de Moore. Dans le cas de Moore,
e
les sorties ne dpendant que de ltat courant, lchantillonnage des entres ne
e
e
e
e
change en rien leur calcul.
Dans le cas du mod`le de Mealy, les sorties dpendent des entres et de
e
e
e
ltat courant. Soit i-entres linstant ` partir duquel les entres sont stables.
e
e
a
e
228
Circuits squentiels
e
Clock
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Clock
Temps
t-sorties
(a)
i-entres
e
t-sorties
Temps
(b)
Fig. 10.3 Chronogrammes des sorties dun automate. a) Cas de Moore ; b) cas de
Mealy.
Les sorties sont stables un temps t-sorties apr`s i-entres (Cf. Figure 10.3-b).
e
e
Il appara alors des valeurs transitoires sur les sorties pendant des temps non
t
ngligeables avant leur stabilisation. Ces valeurs transitoires peuvent provoquer
e
des volutions non voulues pour un syst`me aval (qui utiliserait les sorties ainsi
e
e
produites).
1.3.2
Initialisation
229
t-sorties1
Ar
chi
P.
te c
Am tu
F.
bla res
La
P.
gn rd, J Logi
Sic ier,
.-C ciel
ard
F.
. F les
,P
Ma ern et
h.
ran and Ma
Wa
inc
ez, tri
e
ille
hi,
ell
t-tats1
e
es
Clock1
Clock2
t-tats2
e
Une faon simple pour raliser ce dcalage est de prendre pour clock2 le
c
e
e
complment de clock1. Le dcalage est alors dune demi-priode. Pour que les
e
e
e
entres des bascules des deux automates soient toujours stables au moment du
e
front dactivation, la priode minimale P de lhorloge doit alors vrier :
e
e
P/2 > t-sorties1 + t-tats2 pour que ltat de lautomate 2 soit stable au
e
e
moment du front montant de clock2.
P > t-tats1 pour que ltat de lautomate 1 soit stable au moment du front
e
e
montant de clock1.
Dans ce cas le dcalage de lvolution de ltat des deux automates est
e
e
e
dune demi-priode de lhorloge.
e
Il sav`re que lon peut aussi prendre clock1 gale ` clock2. Les entres des
e
e
a
e
bascules restent stables si lon respecte les conditions suivantes sur la priode
e
P de lhorloge :
P > t-sorties1 + t-tats2 pour que ltat de lautomate 2 soit stable au
e
e
moment du front montant de clock.
P > t-tats1 pour que ltat de lautomate 1 soit stable au moment du front
e
e
montant de clock.
Automates en boucle Le cas particulier o` les sorties de lautomate 2 sont
u
les entres de lautomate 1 est intressant ` tudier. Ce cas de gure se prsente
e
e
ae
e
souvent et appara en particulier dans la ralisation dalgorithmes complexes
t
e
tudis au chapitre 11.
e
e
Dans le cas o` les deux automates sont de type Mealy, nous obtenons la
u
conguration de la gure 10.5. Cette architecture peut ne pas arriver dans
un tat stable puisque les entres des blocs combinatoires C1 et C2 sont des
e
e
sorties de ces mmes blocs.
e
Il faut donc que lun des deux automates soit de type Moore. Pour simplier
230
Circuits squentiels
e
Fonction
de sortie
C1
sorties1
entres2
e
Fonction
de sortie
C2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
entres1
e
Fonction
de
transition
Fonction
de
transition
bascules
bascules
init
sorties2
clock
init
clock
Clock
t-sorties1 t-tats2
e
t-sorties2
t-tats1
e
supposons que les deux soient de type Moore. Les deux automates peuvent alors
voluer ` laide de la mme horloge clock (chronogramme de la gure 10.6).
e
a
e
Nous obtenons alors les conditions suivantes sur la priode P de lhorloge :
e
P > t-sorties1 + t-tats2 pour que ltat de lautomate 2 soit stable au
e
e
moment du front montant de clock.
P > t-sorties2 + t-tats1 pour que ltat de lautomate 1 soit stable au
e
e
moment du front montant de clock.
2.
231
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
2.1
Ralisation cble
e
a e
On veut raliser une commande dun feu tricolore ` plaque. Les informations
e
a
dentres sont : voiture-prsente (vp), voiture-absente (va). La sortie est la
e
e
couleur du feu : Vert (V), Orange(O) ou Rouge (R).
Le comportement du syst`me est le suivant (automate de Moore de la
e
gure 10.7). Au dpart le feu est rouge. Si le feu est rouge : si une voiture est
e
prsente, le feu passe au vert sinon le feu reste rouge. Si le feu est orange le
e
feu passe au rouge. Si le feu est vert : si une voiture est prsente, le feu reste
e
au vert ; si une voiture est absente deux fois de suite, le feu passe au orange.
Remarque : Le terme deux fois de suite implique que le temps est dcoup
e
e
en intervalles rguliers. Nous retrouvons ici les entres dun automate syne
e
232
Circuits squentiels
e
va
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Un
va
vp
vp
Quatre
Deux
vp
vp
va
V
Trois
va
Vocabulaire
va
vp
(a)
e
0
1
Vocabulaire
R
O
V
(b)
s1
0
0
1
s2
0
1
0
Etat
Un
Deux
Trois
(c) Quatre
q1
0
0
1
1
q2
0
1
0
1
Fig. 10.8 Codage des entres, des sorties et des tats du syst`me de commande de feu
e
e
e
tricolore.
chrone chantillonnes sur une horloge qui dcoupe le temps de faon rguli`re.
e
e
e
c
e
e
deux fois de suite signie alors pendant deux priodes dhorloge successives.
e
2.1.2
Les lments des vocabulaires dentre et de sortie sont cods en binaire. Les
ee
e
e
codes inutiliss dans ce codage correspondent ` des cas de valeur phi-boolenne
e
a
e
dans les fonctions de transition et de sortie.
Reprenons lexemple. Le vocabulaire dentre {va, vp} est cod ` laide
e
e a
dune variable boolenne e (Figure 10.8-a). Le vocabulaire de sortie {R, O, V}
e
est cod ` laide de deux variables boolennes s1 et s2 (Figure 10.8-b). Le code
ea
e
s1 = s2 = 1 ne correspond ` aucune sortie.
a
2.1.4
233
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ltat tant mmoris dans des bascules, une bascule stockant une infore
e
e
e
mation binaire, les direntes valeurs de ltat doivent tre codes en binaire.
e
e
e
e
Les variables boolennes correspondant ` ce codage sont appeles variables
e
a
e
dtats. Dirents types de codage peuvent tre utiliss (Cf. Chapitre 3). Soit
e
e
e
e
n le nombre dtats, le nombre minimum de bits permettant de raliser le coe
e
dage est log2 (n). Un tel codage est appel compact. Il permet une ralisation
e
e
avec un nombre minimum de points de mmorisation. Un autre type de coe
dage souvent utilis est le codage un parmi n. Ce type de codage entra
e
ne
un nombre maximum de points de mmorisation mais llaboration du circuit
e
e
ralisant lautomate peut se faire dune mani`re spcique que nous prcisons
e
e
e
e
dans le paragraphe 2.1.6.
Lautomate de la gure 10.7 comporte 4 tats. La gure 10.8-c donne un
e
exemple de codage compact des tats de cet automate ` laide de deux variables
e
a
dtats q1 , q2 .
e
Le choix du code q1 = 0, q2 = 0 pour ltat initial implique que linitialisae
tion des bascules ` laide du signal init est une initialisation ` zro.
a
a e
On peut choisir un autre code pour ltat initial. Dans ce cas les bascules
e
doivent comporter les deux types dinitialisation (` 0 et ` 1).
a
a
Il est a noter que les fonctions boolennes de sortie et de transition
`
e
dpendent de ces codages et que le choix du codage inuence fortement les
e
caractristiques du circuit (par exemple sa complexit en nombre de portes)
e
e
et donc ses performances. Les outils de CAO ralisant cette synth`se prennent
e
e
en compte ces crit`res lors du choix de ces codes.
e
2.1.5
234
Circuits squentiels
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
QD
...
q1 ...qn
d1 ...dn
init
clock
donne les valeurs des variables codant ltat suivant (d1 , d2 ) en fonction des
e
variables codant ltat courant (q1 , q2 ) et de lentre (e). Ce tableau correspond
e
e
a
` la table de vrit des deux fonctions boolennes d1 , d2 . La gure 10.10 donne
e e
e
ces tables ainsi que celles correspondant aux sorties. La gure 10.11 dcrit le
e
circuit rsultant ralis ` base de portes NAND et dinverseurs.
e
e ea
2.1.6
Ce codage consiste ` coder n tats sur n bits en reprsentant chaque tat par
a
e
e
e
un bit ; le code dun tat comporte alors un seul bit (parmi n) ` 1. On peut
e
a
procder de la mme faon que prcdemment. Les fonctions de lautomate
e
e
c
e e
comportent alors beaucoup de phi-boolens puisquil y a un nombre important
e
de codes inutiliss pour les tats.
e
e
Toutefois on peut obtenir plus simplement une solution quivalente (et
e
simplie) du circuit en se calquant directement sur le graphe de lautomate.
e
La gure 10.13 montre la ralisation du circuit de commande de feu tricolore.
e
Par exemple, la bascule 1, codant ltat 1, est charge avec la valeur 1 si ltat
e
e
e
courant est 1 et lentre e ou si ltat courant est 4. De faon plus gnrale,
e
e
c
e e
pour raliser le circuit on applique les r`gles suivantes :
e
e
235
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
entre
e
va
vp
va
vp
va
vp
va
vp
tat courant
e
Un
Un
Deux
Deux
Trois
Trois
Quatre
Quatre
tat
e
Un
Deux
Trois
Quatre
e
0
1
0
1
0
1
0
1
tat suivant
e
Un
Deux
Trois
Deux
Quatre
Deux
Un
Un
q1
0
0
1
1
sortie
R
V
V
O
q2
0
1
0
1
q1
0
0
0
0
1
1
1
1
q2
0
0
1
1
0
0
1
1
s1
0
1
1
0
d1
0
0
1
0
1
0
0
0
d2
0
1
0
1
1
1
0
0
s2
0
0
0
1
s2
s1
Fonctions de sortie
d1
d2
DQ
q1
DQ
clock
q2
init
Fonctions de transition
236
Circuits squentiels
e
q1
1
0
0
0
q2
0
1
0
0
q3
0
0
1
0
q4
0
0
0
1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Etat
Un
Deux
Trois
Quatre
Fig. 10.12 Codage 1 parmi n des tats du syst`me de commande de feu tricolore
e
e
2.2
Ralisation microprogramme
e
e
237
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
D
Q1
s1
#
"
#
"
s1
3
s1
s2
s2
%
$
%
$
Fig. 10.13 Un circuit ralisant un automate avec un codage un parmi n des tats
e
e
238
Circuits squentiels
e
sorties[q]
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
succ [q]
Bascules
q+1
tat-suivant
e
+1
ROM
clock init
Fonction f de
calcul de condition
entres
e
peut que cela ne soit pas possible, on ajoute alors un tat supplmentaire
e
e
an dobtenir cette conguration.
Calcul de ltat suivant Le code de ltat courant est mmoris dans des
e
e
e
e
bascules et fournit une adresse de la mmoire.
e
Les primitives de calcul de ltat suivant sont de deux types : une
e
incrmentation (circuit +1 sur la gure 10.14) ; la donne dans la mmoire
e
e
e
du code de ltat suivant, lacc`s ` ce code se faisant ` laide du code de ltat
e
e a
a
e
courant (adresse dune ligne de la mmoire).
e
Le fait que chaque tat ait au maximum deux tats successeurs permet de
e
e
limiter la largeur de la mmoire. Quand le code de ltat suivant nest pas le
e
e
code de ltat courant plus 1, son code se trouve dans la mmoire.
e
e
Par ailleurs, il faut pouvoir spcier quelle est la condition permettant de
e
choisir ltat successeur (dpendant des entres de lautomate) quand il y en
e
e
e
a deux. Cette condition est aussi spcie dans la mmoire et correspond `
e e
e
a
certaines sorties de celle-ci. On parle de champ condition.
Soit q le code dun tat, soit succ[q] le code de ltat successeur (qui nest
e
e
pas q + 1) contenu dans la mmoire, soit cond[q] la condition ` tester pour
e
a
choisir ltat successeur suivant les entres de lautomate. Larchitecture mie
e
croprogramme comporte les circuits permettant de dnir le code de ltat
e
e
e
suivant comme suit :
tat-suivant(q)= si f (cond[q], entres) alors succ[q] sinon q+1.
e
e
Les codes sont choisis de faon ` ce que :
c a
quand un tat de code q ne poss`de quun tat successeur, cond [q] spcie
e
e
e
e
soit la condition toujours vraie et tat-suivant(q) = succ[q], soit toujours
e
239
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
240
Circuits squentiels
e
s1
s2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
+1
1 0
DQ
0
1
0
1
DQ
bne
be
be
ba
et1
et2,
et2,
et1,
s1
s1
s2
tat
e
1
2
3
4
code
00
01
10
11
succ
00
01
01
00
tat + 1
e
01
10
11
00
cond
e
e
e
-
code
0
1
1
-
2.2.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3
241
3.
242
Circuits squentiels
e
rien
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
AUCUNE
Attente
Pi`ces
e
s5
s2
fs
rien
fs
Trop
peru
c
R,C,B
rien
2F reus
c
C,B
s1
s2
s1
s5
1F reu
c
rien
AUCUNE
Vocabulaire de sorties
AUCUNE
R,C,B
C,B
s2
0
0
1
0
0
sortie1
0
1
0
s5
0
0
0
1
0
fs
0
0
0
0
1
e1
0
1
0
1
0
e2
0
0
1
1
0
e3
0
0
0
0
1
Etats
Attentes Pi`ces
e
1F reu
c
2F reu
c
Trop peru
c
sortie2
0
1
1
q1
1
1
0
0
q2
1
0
1
0
Fig. 10.18 Codage des entres, des sorties et des tats pour la synth`se de lautomate
e
e
e
de contrle de la machine ` caf
o
a
e
e1
0
0
0
0
0
1
1
e2
0
0
0
0
0
0
1
e3
0
1
0
1
0
0
0
q1
0
0
0
0
1
1
1
q2
0
0
1
1
0
0
0
d1
0
1
0
1
1
0
0
d2
0
1
1
1
0
1
0
e1
0
0
1
1
0
-
e2
1
0
1
0
1
-
e3
0
0
0
0
0
-
q1
1
1
1
1
1
-
q2
0
1
1
1
1
-
d1
0
1
0
1
0
d2
0
1
0
0
1
243
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.1
Nous nous intressons ici ` ltude dun circuit qui dlivre successivement
e
a e
e
les entiers composant une suite particuli`re (dite de Syracuse) dnie par :
e
e
si UN est pair alors UN +1 = UN DIV 2 sinon UN +1 = 3 * UN +1, o` DIV dnote
u
e
la division enti`re. On peut dcrire le calcul de cette suite par lalgorithme :
e
e
Lexique
U 0 : lentier > 0 donn ; U : un entier > 0
e
Algorithme
U U 0
tantque vrai :
si U MODULO 2 = 0
alors U U DIV 2
sinon U 3 * U + 1
244
Circuits squentiels
e
init
clock
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
U0
1
U0
x DIV 2
1
0
DQ
3x+1
0
1
3.2
U 0n1
245
U 00
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
U 0i
init
clock
Q0
Qn2 Qi
Qi1
Add
cn1
ci+1
Qn1 Qi+1
tranche n-1
ci
c1
Qi
Add
Q1
tranche i
Add
Q0
tranche 0
Fig. 10.21 Architecture en tranche pour le calcul de la suite de Syracuse par un circuit
` ot de donnes
a
e
Lexique
x : lentier 0 donn
e
u, z, y, rsultat : des entiers 0
e
Algorithme
u 1
tantque u x : u 4* u
z u ; y x
tantque u > 1 :
u u DIV 4
z z DIV 2 - u
si z y :
y y - z
z z + 2 * u
rsultat z DIV 2
e
246
Circuits squentiels
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
rsultat
e
u div 4
div4
z div 2 - u
div2
moins
z + 2*u
mult2
plus
moins
test
y-z
si z y
tant que u > 1
test1
247
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.3
Notion de pipeline
248
Circuits squentiels
e
Entres
e
R1
C1
R2
C2
Sorties
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
Clock
4.
Exercices
E10.2 : Compteur
On veut raliser un compteur. Il dlivre en sortie les entiers successifs de 0
e
e
a
` 7 (sur 3 bits). La sortie sur 3 ls (s2 , s1 , s0 ) est incrmente modulo 8 `
e
e
a
chaque front montant dune entre incr. Linitialisation ` 0 des sorties se fait
e
a
a
` laide du signal init actif ` 1. Donner lautomate de Moore correspondant `
a
a
ces spcications. Donner une ralisation cble de cet automate.
e
e
a e
Comment pourrait-on raliser un circuit quivalent ` laide dun circuit
e
e
a
combinatoire calculant une sortie S sur 3 bits gale ` une entre E (sur 3 bits)
e
a
e
plus 1 ? Ce circuit a fait lobjet dune tude de cas dans le chapitre 8.
e
Vriez en dessinant un chronogramme que le circuit de la gure 10.25 a
e
le mme comportement que les circuits prcdents.
e
e e
E10.3 : Automate reconnaisseur de squence
e
Donner un codage binaire de trois informations a, b et c et construire une
ralisation de lautomate tudi au chapitre 5 reconnaissant le langage rgulier
e
e
e
e
ab + c.
4. Exercices
249
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
incr
clock
clock
clock
reset
reset
reset
s2
init
s0
s1
s=0
s=0
s=1
250
Circuits squentiels
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 11
Conception de circuits
squentiels par sparation du
e
e
contrle et des oprations
o
e
Nous avons vu dans le chapitre 10 comment concevoir un circuit squentiel
e
correspondant ` un automate dtats ni en partant de son graphe explicite.
a
e
Ceci nest faisable que lorsque le graphe de lautomate na pas trop dtats
e
(une centaine). Au-del` le travail est complexe et fastidieux. Cest en partia
culier le cas lors de la ralisation de circuits correspondant ` des algorithmes
e
a
manipulant des variables enti`res. Dans ce cas dautres techniques de concepe
tions de circuits existent. Nous avons vu dans le chapitre 10 ` travers deux
a
exemples une technique appele ot de donnes. Nous nous intressons ici `
e
e
e
a
une technique dirente permettant de dcomposer le probl`me (et du coup
e
e
e
le circuit correspondant) en deux parties distinctes : une partie contrle et
o
une partie oprative. La partie oprative est forme dun ensemble de registres
e
e
e
et doprateurs permettant de mmoriser les variables de lalgorithme et de
e
e
raliser les oprations apparaissant sur ces variables dans lalgorithme. Par
e
e
contre lencha
nement dans le temps des oprations est dcid par la partie
e
e e
contrle. Par rapport au ot de donnes cette technique permet doptimio
e
ser le nombre doprateurs ncessaires mais souvent au dtriment du temps
e
e
e
dexcution.
e
Nous expliquons dans le paragraphe 1. le principe gnral dune telle are e
chitecture. Nous dcrivons dans le paragraphe 2. une partie oprative
e
e
type, utilisable dans la plupart des cas. Nous donnons dans le paragraphe 3. les principes de la partie contrle et tudions sa synchronio
e
sation temporelle avec la partie oprative. Nous appliquons ensuite ces
e
principes gnraux ` deux exemples dtaills (paragraphe 4.).
e e
a
e
e
Nous nous appuyons sur cette technique pour expliquer les principes de
conception dun processeur au chapitre 14.
252
Ordres
Acquittements
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Partie contrle
o
Comptes-rendus
Init
Horloge
Commandes
Donnes :
e
Partie oprative
e
Entres
e
Sorties
1.
Principe gnral
e e
La partie oprative (ou PO) ore les ressources (Bus, registres, UAL . . .)
e
ncessaires ` chaque opration sur les direntes variables apparaissant dans
e
a
e
e
lalgorithme. Mais ce nest pas elle qui dcide de lopration ` eectuer ` un
e
e
a
a
instant donn. Elle envoie des signaux de comptes rendus sur ces calculs ` la
e
a
partie contrle.
o
La partie contrle (ou PC) g`re lencha
o
e
nement des calculs eectus sur
e
les donnes au vu des comptes rendus de la PO. Elle gn`re lactivation des
e
e e
oprations ` un instant donn, en envoyant des signaux de commandes ` la
e
a
e
a
partie oprative. Elle ne modie pas directement les donnes. Elle traduit les
e
e
primitives de contrle apparaissant dans lalgorithme.
o
Les deux parties sont deux circuits squentiels cadencs sur la mme hore
e
e
loge. La gure 11.1 donne lorganisation des signaux entre la PC, la PO et
le monde extrieur. Les communications entre les deux parties se font par
e
les signaux de commande et de compte-rendu. A chaque front (montant par
exemple) dhorloge :
des valeurs de commandes sont envoyes ` la PO par la PC pour slectionner
e a
e
un calcul donn (par exemple : slection des entres de lUAL, opration
e
e
e
e
eectue dans lUAL, . . .).
e
des comptes-rendus du calcul eectu (par exemple les indicateurs
e
arithmtiques dune UAL) peuvent alors tre renvoys par la PO ` la PC
e
e
e
a
an de lui permettre de prendre une dcision pour le choix du calcul suivant.
e
Les connexions au monde extrieur tiennent compte de cette spcialisation :
e
e
la PC ne reoit que des ordres et ne dlivre que des acquittements, signalant
c
e
la n de sa mission, par exemple.
la PO ne reoit que des donnes et ne dlivre que des donnes. Les ls
c
e
e
e
dentres et de sorties peuvent dans certains cas tre les mmes (bus bidie
e
e
rectionnel).
253
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
Nous donnons Figure 11.2 la structure dune partie oprative type pere
mettant une construction mthodique et rpondant ` la plupart des besoins.
e
e
a
Cette PO peut tre dans la plupart des cas optimise en termes de nombre de
e
e
ressources (registres, bus, oprateurs) ou en termes de temps dexcution. Ces
e
e
crit`res sont souvent incompatibles.
e
Une partie oprative comprend des registres, un oprateur appel UAL
e
e
e
(Unit Arithmtique et Logique) et des bus.
e
e
Remarque : Il est intressant de noter quune partie oprative peut tre
e
e
e
dcrite comme un automate dtats ni. Ses entres sont les donnes entrantes,
e
e
e
e
les commandes de chargement et dinitialisation des registres, les commandes
dopration. Son tat est compos des valeurs contenues dans les dirents
e
e
e
e
registres. Ses sorties sont les donnes sortantes et les comptes-rendus ` dese
a
tination de la PC. Une utilisation systmatique de cette description est faite
e
dans lexercice E14.4 du chapitre 14.
2.1
Les registres contiennent les valeurs des variables apparaissant dans lalgorithme. Un registre est un ensemble de bascules de mme type partageant
e
les mmes commandes dactivation et dinitialisation (Cf. Chapitre 9, parae
graphes 1.3 et 1.4). Les primitives matrielles sur un registre permettent dy
e
forcer une valeur prsente sur la nappe de ls en entre. Ceci est fait en connece
e
tant lhorloge gnrale du circuit ` lentre dhorloge des bascules et en connece e
a
e
tant lentre Enable des bascules ` un signal de commande nomm signal de
e
a
e
chargement de ce registre.
Sur la gure 11.2 chaque registre (Ri , i = 1, ..., n) est connect ` lhorloge
ea
gnrale et au signal de chargement not ChRi. Ces signaux de chargement font
e e
e
partie des commandes envoyes par la PC.
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
254
Sorties
SelSorties
Opration UAL
e
Bus A
ChR1
SelBusAR1
UAL
Rn
R1
SelBusBR1
SelUAL
horloge
Bus B
ComptesRendus
Bus Rsultat
e
SelEntres
e
Entres
e
microactions
Ri Rj op Rk
Ri entre
e
sortie Ri
Fig. 11.3 Sorties correspondant aux microactions pour la P.O type de la gure 11.2
255
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La sortie de chaque registre est connecte aux deux entres de lUAL mais
e
e
une de ces deux connexions peut tre inutile et donc supprime. Il peut tre
e
e
e
intressant dinitialiser les registres ` laide du signal dinitialisation (` 1 ou `
e
a
a
a
0) des bascules plutt que dobtenir des valeurs initiales via le bus Entres.
o
e
2.2
2.3
Les liaisons entre les registres et loprateur se font par des liaisons nommes
e
e
bus. Deux bus oprandes (A et B) permettent damener aux deux entres de
e
e
lUAL le contenu dun des registres. Les signaux SelBusARi et SelBusBRi permettent deectuer cette slection. Un bus Rsultat permet damener ` lentre
e
e
a
e
des n registres le rsultat du calcul. Les signaux ChRi permettent deectuer
e
le chargement du registre souhait.
e
256
C1
C2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
C1 C
2
Dcodeur
e
D1
D3
D2
D1
D2
D4
BUS
D3
S1
D4
(a)
S2
S3
(b)
S4
BUS
La liaison des registres ` chaque bus est ralise soit ` laide de multia
e e
a
plexeurs, soit ` laide de portes trois tats entre les sorties des registres et
a
e
le bus. Elle ncessite des signaux de commande permettant de dterminer ce
e
e
choix. La gure 11.4 montre la ralisation dun bus supportant 4 entres D1 ,
e
e
D2 , D3 et D4 (qui sont par exemple les sorties de 4 registres) ` laide de deux
a
signaux de commande C1 et C2 . Dans le cas dune ralisation ` base de portes
e
a
trois tats, le bus obtenu est ` double sens (contrairement ` lautre cas). Cela
e
a
a
peut tre indispensable dans le cas dentres/sorties avec lextrieur. Cette
e
e
e
solution est la plus souvent utilise.
e
Sur la gure 11.2, cest la solution ` base de portes trois tats qui a t
a
e
ee
choisie. Le dcodeur dlivrant les signaux Si (dans la gure 11.4) nappara
e
e
t
pas sur la gure 11.2. Ces signaux de slections (Si ) peuvent tre directement
e
e
dlivrs dans chaque tat de la PC. Une autre solution consiste a raliser le
e e
e
e
dcodeur dans la PC ; le nombre de ls de commande entre la PC et la PO est
e
alors fortement augment.
e
On peut diminuer le nombre de connexions en diminuant le nombre de
bus au dtriment du temps dexcution de lalgorithme. On peut placer par
e
e
exemple un registre tampon supplmentaire en sortie de lUAL et connecter ce
e
registre ` un bus qui servira en mme temps de bus rsultat et de bus oprande.
a
e
e
e
2.4
Entres/Sorties
e
Le bus Entres permet de charger des valeurs depuis lextrieur dans les
e
e
registres. Les signaux SelEntres et ChRi du registre concern doivent alors
e
e
tre actifs et la valeur initiale prsente sur le bus Entres.
e
e
e
Le bus Sorties permet de dlivrer ` lextrieur les rsultats de lalgorithme.
e
a
e
e
Il est donc connect ` un des deux bus de sorties des registres de la PO. La
ea
porte trois tats active par SelSorties nest pas toujours ncessaire.
e
e
e
3. Partie contrle
o
257
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.5
2.6
3.
Partie contrle
o
258
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
au paragraphe 4. Cet automate peut tre ensuite ralis par du matriel suivant
e
e e
e
une des mthodes dcrites dans le chapitre 10.
e
e
Le probl`me est de dcider quels oprateurs et comptes-rendus de calculs
e
e
e
sont disponibles dans la PO. Chaque calcul et aectation de variable correspondante eectu dans un tat de lautomate doit tre ralisable en un cycle
e
e
e
e
dhorloge dans la PO. Chaque condition apparaissant sur les transitions de
lautomate doit tre un compte-rendu de loprateur utilis disponible dans
e
e
e
ltat prcdent.
e
e e
3.1
Entres/sorties
e
3. Partie contrle
o
Attente
Entre
e
PresS
SelSorties
SelBusARi
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
EPrise
259
PresE
Sortie
prsente
e
PresE
EPrise
Chargement
ChRi
e
SelEntres de lentre
e
SPrise
SPrise
PresE
PresS
Attente
SPrise
SPrise
PresE
(a)
(b)
La mmoire dlivre alors un signal FinAcc`s lorsque, soit la donne ` lire est
e
e
e
e a
prte sur le bus, soit la donne ` crire est eectivement crite en mmoire.
e
e ae
e
e
e a
e
Le processeur dlivre les signaux SelMem et l/e lors dun acc`s ` la mmoire.
e
On reprend les automates de la gure 11.5. Pour lcriture SPrise correspond `
e
a
a
e
FinAcc`s, PresS ` SelMem et l/e ; pour la lecture PresE correspond ` FinAcc`s,
e
a
Eprise ` SelMem et l/e.
a
Nous retrouverons la connexion dun processeur avec une mmoire dans ltude
e
e
de cas du paragraphe 4.3 et dans le chapitre 14. Nous nous placerons alors dans
le cas simple et idal o` la mmoire est susamment rapide pour permettre un
e
u
e
acc`s en un cycle dhorloge du processeur ; le signal FinAcc`s nest alors plus
e
e
utile, il est implicite.
Nous retrouverons les aspects de synchronisation au chapitre 15, pour relier
lensemble processeur/mmoire avec le monde extrieur.
e
e
3.2
260
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4. Etudes de cas
Etudes de cas
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
261
4.1
Dmarche de conception
e
Obtention de la PO :
Assemblage de la PC et de la PO
262
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Lexique
m,n : des entiers 0 { m et n tant donns}
e
e
n : le boolen Vrai
e
j, k : des entiers 0
: un entier
Algorithme
Tantque VRAI :
Acqurir(m) ; Acquerir(n) ;
e
k 0 ; j 0 ; m ;
tantque j m : {invariant : 0 j m et 2.m 0 }
Dlivrer (j) ; Dlivrer (k) ;
e
e
j j+1 ;
+ 2.n ; {2.m + 2.n 2.n}
si 0
k k + 1 ;
2.m ; { apr`s cela : 2.m 0 }
e
n VRAI ;
Dlivrer(n) ;
e
Fig. 11.8 Algorithme de Bresenham
4.2
Le traceur de segments
Le circuit que nous voulons concevoir doit dlivrer les coordonnes des
e
e
points dun segment de droite sur un cran. Nous choisissons lalgorithme de
e
Bresenham prsent au paragraphe 2.3 du chapitre 5. La gure 11.8 rappelle
e
e
lalgorithme. Les actions Acqurir et Dlivrer correspondent aux entres et sore
e
e
ties. Pour que le circuit puisse fonctionner pour un nombre de segments illimit,
e
nous ajoutons une boucle globale sans n.
4.2.1
4. Etudes de cas
263
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Acqurir(m)
e
Dlivrer(n)
e
Acqurir(n)
e
m || j 0 || k 0
ResNeg
m-j
ResNeg
2.m
Dlivrer(j)
e
ResNeg
Dlivrer(k)
e
k k+1
ResNeg
j j +1
+ 2.n
Fig. 11.9 Une machine squentielle avec actions ralisant lalgorithme de Bresenham
e
e
facile de raliser une UAL qui donne un indicateur signiant rsultat ngatif
e
e
e
que rsultat ngatif ou nul. Pour le prdicat 0, on a besoin du mme
e
e
e
e
indicateur.
Le calcul dun prdicat peut ncessiter lajout dun tat. Par exemple ici le
e
e
e
calcul de j > m doit tre eectu dans un tat spcique alors que le calcul de
e
e
e
e
0 peut tre eectu au moment de laction + 2.n.
e
e
On obtient la machine squentielle avec actions de la gure 11.9.
e
4.2.2
264
Op1
0
0
1
Op0
0
1
0
Opration
e
A+1
BA
A + 2*B
Op2
0
1
Op1
1
0
Op0
1
0
Opration
e
A 2*B
B
es
Op2
0
0
0
Ar
chi
P.
te c
Am tu
F.
bla res
La
P.
gn rd, J Logi
Sic ier,
.-C ciel
ard
F.
. F les
,P
Ma ern et
h.
ran and Ma
Wa
inc
ez, tri
e
ille
hi,
ell
InitJK
ChN
N
UAL
SelUAL
ChM
InitJK
ChD
SelMBusB
ChK
SelDBusA
ChJ
SelKBusA
SelJBusA
Bus A
Bus B
BUS Rsultat
e
ResNeg
SelEntres
e
Entres
e
raliser les oprations suivantes sur ses oprandes A et B : A+1, BA, A+2*B,
e
e
e
A2*B et B. Chacune de ces oprations doit tre eectue dans un tat
e
e
e
e
dirent de la machine squentielle avec actions.
e
e
La signication des trois signaux Op2 , Op1 , Op0 de commande des
oprations de lUAL est donne dans le tableau de la gure 11.10.
e
e
Cette UAL peut tre ralise ` laide dun additionneur (Cf. Chapitre 8).
e
e e a
Elle doit gnrer un bit de signe du rsultat (ResNeg).
e e
e
4.2.3
4. Etudes de cas
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.2.4
265
4.2.5
Assemblage de la PC et de la PO
4.3
La machine ` trier
a
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
266
PresM
PresM
SPrise
PresM
SPrise
Chargement de M
PresM
16
PresN
SPrise
PresN
Sortir Fin
PresN
15
4 Chargement de N
PresN
5 D M
SPrise
J 0
K 0
ResNeg
SPrise
MJ
ResNeg
7
Sortir J
SPrise
14 D D 2*M SPrise
SPrise
SPrise
ResNeg
9 Sortir K
13 K K+1
SPrise
SPrise
10
ResNeg
12
D D+2*N
SPrise
11
J J +1
4. Etudes de cas
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
267
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Fig. 11.13 Sorties mises dans chaque tat de la partie contrle de la gure 11.12. Les
e
e
o
signaux dont la valeur est 1 ou sont prciss et ceux pour lesquels elle
e e
vaut 0 sont omis.
H
Sorties
Entres
e
Init
ResNeg
Partie
contrle
o
PresN
PresM
SPrise
EPrise
SortieJ
SortieK
SortieFin
268
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Lexique
M : un entier donn
e
i, j, t : des entiers 0 ; trouv, n : des boolens
e
e
mem : un tableau [0..M1] dentiers 0
Algorithme
i 1
tantque i M1 :
j i ; t mem[i] ; trouv FAUX
e
tantque (j > 0 et non trouv) :
e
si mem[j1] > t alors mem [j] mem[j1] ; j j1
sinon trouv VRAI
e
mem [j] t ; i i + 1
n VRAI ;
Dlivrer (n)
e
Fig. 11.15 Algorithme de la machine ` trier
a
4.3.1
4. Etudes de cas
269
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
0 i 1
Dlivrer(n)
e
ResNul
1 iM
ResNul
j i
ResNul
ResNul
trouv
e
mem[j] t
12
ResNul
ResNul
i i + 1
temp mem[j1]
temp - t
13
ResPos
mem[j] temp
ResPos
11 trouv VRAI
e
j j 1 10
Linitialisation de trouv ` FAUX peut tre faite dans le mme tat que
e a
e
e
e
laectation t mem[i] en se servant de linitialisation ` 0 du registre trouv.
a
e
Le calcul du prdicat j > 0 et non (trouv) se fait dans deux tats successifs
e
e
e
(voir le mcanisme dclatement de conditions complexes dans le chapitre 5).
e
e
La machine squentielle avec actions donne dans la gure 11.16 tient
e
e
compte de ces remarques.
4.3.2
Obtention de la PO
270
Op2,Op1
BusAdresses
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
IBusA
JBusA
TPBusA
Bus A
InitI
ChI
ChJ
T
E
M
P
TRBusA
ResetTR
SetTR
TR
UAL
MBusB
TPBusB
ChT
ChTEMP
BusRsultat
e
SelAdr
SelUAL
Bus B
ComptesRendus
SelEntres
e
SelSorties
BusDonnes
e
5. Exercices
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
271
4
5
7
Fig. 11.18 Sorties pour quelques tats de lautomate de la gure 11.16 ; sont prciss
e
e e
les signaux ` 1 et ` et omis ceux ` 0.
a
a
a
Optimisation
5.
Exercices
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
272
i 1
Dlivrer(Fin)
e
ResNul
iM
ResNul
j i
t mem[i]
ResNul
ResNul
mem[j] t
temp mem[j1]
ResPos
i i + 1
temp t
ResPos
mem[j] temp
j j 1
5. Exercices
273
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Lexique
U : un entier > 0 ; n : un booleen
Algorithme
Tantque VRAI :
Acqurir(U)
e
tantque U > 1 :
si U MODULO 2 = 0 alors U U DIV 2
sinon U 3 * U + 1
Dlivrer (U)
e
Dlivrer(n)
e
SelSorties
Bus A
Sorties
Op
ChU
UAL
horloge
Bus Rsultat
e
SelUAL
BitPoidsFaible
ResNeg
SelEntres
e
Entres
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
274
Conception de circuits squentiels...
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Troisi`me partie
e
Techniques de
lalgorithmique logicielle
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 12
Le langage machine et le
langage dassemblage
278
Ar
P. chite
Am ctu
F.
bla res
P. Lagn rd, Log
Sic ier J.- ici
ard , F C. el le
, P . M Fe s e
h.
ara rna t M
Wa ni nd
at
il le nch ez, erie
l le
i,
s
1.
Le langage machine
1.1
1. Le langage machine
279
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
machines, au contraire, les registres sont banaliss. Les machines les plus
e
anciennes ne comportaient quun seul registre, dit accumulateur
Nous dtaillons au chapitre 14 linuence de ce genre de distinction sur ce quon
e
appelle la partie oprative du processeur, cest-`-dire la structure du circuit qui
e
a
connecte lunit de calcul aux bus et aux divers registres.
e
La distinction entre ces deux types de mmoire permet de tenir compte, dans le
e
choix dun jeu dinstructions, de crit`res tels que le temps dacc`s ` la mmoire :
e
e a
e
les registres sont accessibles plus rapidement que la grande mmoire. Nous vere
rons au chapitre 15 que les registres sont en gnral situs physiquement dans
e e
e
le processeur, contrairement ` la grande mmoire. Dautre part les adresses
a
e
des octets dans la grande mmoire sont des entiers assez longs (typiquement
e
32 bits), qui soit ne peuvent pas appara tels quels dans le codage dune instre
truction (Cf. Paragraphe 1.3), soit en ralentissemnt lexcution ; en revanche,
e
les adresses ou numros des registres sont de petits entiers 5 bits sur le proe
cesseur sparc1 par exemple et peuvent donc appara comme dsignation
tre
e
doprande dans le codage dune instruction.
e
1.2
Instructions et codage
Dans ce chapitre, sparc dsigne le sparc V8 qui a des mots de 32 bits, et non le sparc
e
V9, qui a des mots de 64 bits.
280
1.2.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1. Le langage machine
281
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
282
valeur ` utiliser
a
(pour oprandes
e
sources de calcul
et
sources
de
transferts)
adresse
eective
(pour
rsultats et
e
cibles de
transferts)
Pour les instructions de calcul et les transferts mmoire
e
immdiat
e
une constante rela- k
tive k
absolu
une constante na- MEM[k]
k
turelle k
registre di- un numro n
e
contenu de Regn
Regn
rect
indirect par un numro n
e
MEM[contenu de contenu de
registre
Regn ]
Regn
indirect par deux numros n et MEM[contenu de contenu de
e
registre avec d
Regn + contenu Regn
+
index
de Regd ]
contenu de
Regd
indirect par un numro n, une MEM[contenu de contenu de
e
registre avec constante relative Regn + d]
Regn + d
dplacement d
e
indirect par un numro n
e
MEM[contenu de contenu de
registre pre
Regn - t]
Regn - t
dcrment
e e
e
indirect
un numro n
e
MEM[contenu de contenu de
par
reRegn ]
Regn
gistre postdcrment
e e
e
Pour les instructions de rupture de squence
e
relatif
au une constante rela- PC + d
compteur
tive d
N
programme
absolu
une constante na- k
turelle k
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
nom usuel
eet
ventuel
e
sur
les
oprandes
e
Regn
Regn
-t
Regn
Regn
-t
Fig. 12.1 Modes dadressage usuels. Noter que, pour les adressages indirects par registre avec pr (ou post) incrmentation (ou dcrmentation), leet sur
e
e
e e
le registre dindirection est de la forme : Regn Regn op t, o` op est
u
lopration + ou lopration , et t ne vaut pas ncessairement 1. t dpend
e
e
e
e
de la taille de lopration, cest-`-dire de la taille des oprandes. Par exemple,
e
a
e
si linstruction travaille sur des mots de 32 bits, t = 4. Pour les adressages
relatifs au compteur programme PC, la constante d donne dans linstruction
e
peut ventuellement tre multiplie par une constante N. Voir un exemple
e
e
e
paragraphe 1.4.3.
1. Le langage machine
283
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
1.3.1
Lopration eectue est prise parmi toutes les oprations de lunit de cale
e
e
e
cul, les transferts entre mmoire et registres, les branchements, les instructions
e
spciques ventuelles (Cf. Paragraphe 1.4 pour une liste dtaille dinstruce
e
e
e
tions).
Si le jeu dinstructions comporte n instructions, le codage compact de la
nature de lopration demande b = log2 n bits (lentier immdiatement
e
e
suprieur a log2 n). Il ny a aucune raison pour que le nombre dinstructions
e
`
dune machine soit exactement une puissance de 2, et il existe donc toujours au
moins une conguration dun vecteur de b boolens qui ne correspond ` aucune
e
a
instruction. Cela justie le cas derreur dans lalgorithme dinterprtation du
e
langage machine du paragraphe 1.6.2 ci-dessous, et constitue lune des causes
dinterruption logicielle tudies dans la partie VI.
e
e
On suppose que la nature dune instruction comporte implicitement linformation sur le nombre doprandes. Mme si lon imagine un langage machine
e
e
orant par exemple une addition binaire et une addition ternaire, on consid`re
e
que ce sont deux instructions direntes ` compter dans les n instructions,
e
a
et ` coder globalement. Cela donne un codage plus compact que de sparer
a
e
le codage de la nature de linstruction et le codage dun entier donnant le
nombre doprandes (qui pour une grande majorit des oprations est toujours
e
e
e
le mme). De mani`re gnrale, le choix de la structure des informations qui
e
e
e e
constituent une instruction, cest-`-dire le choix des champs, a une inuence
a
sur la compacit du codage.
e
284
1.3.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Structure du code
1. Le langage machine
285
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.4
1.4.1
En langage machine il ny a pas de typage des donnes, mais les types sont
e
implicites dans les oprations oertes. Certaines instructions ne sont utilises
e
e
que si le programmeur interpr`te la correspondance entre vecteurs de boolens
e
e
et entiers selon un certain code (binaire pur, complment ` 2, virgule ottante,
e
a
dcimal cod binaire, pixels...). Il existe des oprations qui ont un sens si on
e
e
e
interpr`te les vecteurs de bits comme le codage dentiers (ADD, branchements
e
sur codes de conditions enti`res, voir ci-dessous), et il existe des oprations
e
e
qui les interpr`tent comme des vecteurs de boolens (AND). En revanche il nen
e
e
existe pas qui les interpr`tent comme le code ASCII dun caract`re ; ce serait
e
e
le cas sil existait une instruction spcique du langage machine capable de
e
transformer un vecteur de bits reprsentant le caract`re a en vecteur de bits
e
e
reprsentant le caract`re A ; cette opration est videmment ralisable sur
e
e
e
e
e
tout processeur, mais en passant par le codage des caract`res par des entiers
e
ou des vecteurs de boolens. Les seuls types sont donc les entiers et les vecteurs
e
de boolens ; lextension MMX [Int97] et VIS orent de plus des oprations qui
e
e
interpr`tent les vecteurs de 32 bits comme 4 sous-vecteurs de 8 bits.
e
286
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
31 3029
25 24
19 18
14 13 12
0
1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 00 0 0 0 1 0 1 0 1 0
numro
e
du reg.
dest. : 2
numro
e
du reg.
source : 1
oprande immdiat : 42
e
e
(a)
0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1
0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1
0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0
Oprations sur les entiers Tous les processeurs orent les oprations dade
e
dition et de soustraction dentiers. La mme instruction est utilisable pour les
e
oprations sur les naturels cods en binaire bur et sur les entiers cods en
e
e
e
complment ` deux, grce aux bonnes proprits du codage en complment `
e
a
a
ee
e
a
deux (Cf. Chapitre 3). La dirence dinterprtation du codage des entiers ape
e
para dans les instructions de branchement conditionnels (paragraphe 1.4.3).
t
Certains processeurs orent galement la multiplication et la division
e
enti`re ; mais ce sont des instructions coteuses en temps ou en surface du cire
u
cuit interpr`te. Le sparc ore une instruction mulscc eectivement excutable
e
e
en temps gal ` celui dune addition, mais cette instruction ne constitue quun
e
a
pas de la multiplication 32 bits (la version 9 ore une vraie multiplication).
Pour raliser la multiplication de deux entiers 32 bits, il faut crire 32 instruce
e
tions mulscc en squence. Le 68000 ore deux instructions muls et mulu de
e
multiplication de deux entiers signs ou non de 16 bits, dont le rsultat est sur
e
e
32 bits ; il ore de mme deux instructions divs et divu.
e
Lorsque la multiplication et la division gnrale nexistent pas, on trouve
e e
toutefois les instructions de dcalage arithmtique, qui permettent la division
e
e
et la multiplication par des puissances de 2. (Cf. Chapitre 3, paragraphe 2.2.3).
1. Le langage machine
287
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Oprations sur les vecteurs de boolens Les oprations sur les vecteurs
e
e
e
de boolens sont les extensions bit ` bit des oprateurs boolens usuels et, ou,
e
a
e
e
non, nand, etc. Elles nexistent pas ncessairement toutes. Par exemple le sparc
e
ore AND et ANDN, OR et ORN, XOR et XORN, mais pas de NOT. ANDN (resp. ORN)
calcule la conjonction (resp. la disjonction), bit ` bit, du premier oprande
a
e
et de la ngation bit ` bit du second. Les proprits de lalg`bre de Boole
e
a
ee
e
permettent de fabriquer les oprateurs manquants en termes des oprateurs
e
e
disponibles.
Pour utiliser les oprations sur les vecteurs de boolens dans la compilae
e
tion des oprations boolennes des langages de haut niveau, il faut inventer
e
e
un bon codage des boolens du langage de haut niveau (Cf. Chapitre 4, parae
graphe 2.2.1 et chapitre 13, paragraphe 1.2).
Oprations structurelles Les oprations structurelles manipulent les vece
e
teurs de bits sans interprtation particuli`re de leur signication. Ce sont les
e
e
dcalages logiques, ` droite ou ` gauche. Un dcalage ` droite, combin avec
e
a
a
e
a
e
la conjonction boolenne bit ` bit utilise comme masquage, permet dexae
a
e
miner individuellement tous les bits dun vecteur de bits, ou dextraire des
sous-champs de longueur quelconque.
Par exemple, lalgorithme suivant permet de calculer le nombre de 1 dans
a
e
un vecteur de bits. Il utilise une opration ET bit ` bit avec loprande 1 (ceste
a
`-dire le vecteur de bits qui na quun 1 en poids faible) pour tester le bit de
poids faible de V. A chaque tape, le vecteur V est dcal dun bit vers la
e
e e
droite.
lexique :
V : un vecteur de bits ; Nb : un entier 0
algorithme
Nb 0
tantque V = 0
si (V ET bit ` bit 1 = 1) alors Nb Nb+1
a
dcaler V dun bit vers la droite
e
288
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1. Le langage machine
289
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
290
Oprations LOAD
e
w
x
y
z
Mmoire
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a
a+1
a+2
a+3
registre 32 bits
31
24 23 16 15
87
Oprations STORE
e
1 octet
transfert
MEM R
taille
4
sign
e
inst.
LD
MEM R
non
LDUH
MEM R
oui
LDH
MEM R
non
LDUB
MEM R
oui
LDB
MEM R, R
LDD
R MEM
ST
R MEM
STH
R MEM
R, R MEM
1
8
STB
STD
eet
R[7..0] 1 MEM[a+3] ;
R[15..8] 1 MEM[a+2] ;
R[23..16] 1 MEM[a+1] ;
R[31..24] 1 MEM[a]
R[7..0] 1 MEM[a+1]
R[15..8] 1 MEM[a] ;
R[31..16] 2 ext16(0)
R[7..0] 1 MEM[a+1]
R[15..8] 1 MEM[a] ;
R[31..16] 2 ext16(R[15])
R[7..0] 1 MEM[a] ;
R[31..8] 3 ext24(0)
R[7..0] 1 MEM[a] ;
R[31..8] 3 ext24(R[7])
idem LD plus :
R[7..0] 1 MEM[a+7] ;
R[15..8] 1 MEM[a+6] ;
R[23..16] 1 MEM[a+5] ;
R[31..24] 1 MEM[a+4]
MEM[a] 1 R[31..24] ;
MEM[a+1] 1 R[23..16] ;
MEM[a+2] 1 R[15..8] ;
MEM[a+3] 1 R[7..0]
MEM[a] 1 R[15..8] ;
MEM[a+1] 1 R[7..0]
MEM[a] 1 R[7..0]
idem ST plus :
MEM[a+4] 1 R[31..24] ;
MEM[a+5] 1 R[23..16] ;
MEM[a+6] 1 R[15..8] ;
MEM[a+7] 1 R[7..0]
Fig. 12.3 Transferts registres vers mmoire et mmoire vers registres du sparc. On
e
e
note ext16(b) (resp. ext24(b)) le mot de 16 (resp. 24) bits obtenu en copiant
16 fois (resp. 24 fois) le boolen b.
e
1. Le langage machine
1.4.3
291
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
292
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1. Le langage machine
293
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
existent en deux exemplaires : une version qui ne touche pas aux indicateurs,
et une version qui les met ` jour.
a
Ces 4 indicateurs sont : Z, qui est vrai si le rsultat de lopration est 0 ; C,
e
e
qui est vrai si lopration arithmtique a produit une retenue (C pour Carry)
e
e
et qui, si lon interpr`te les oprandes et le rsultat comme des entiers naturels
e
e
e
cods en binaire pur, signie que le rsultat nest pas codable sur le mme
e
e
e
nombre de bits que les oprandes ; N, qui est le bit de poids fort du rsultat
e
e
(si ce rsultat est interprt comme le codage en complment ` 2 dun entier
e
ee
e
a
relatif, si N vaut 1 alors le rsultat est ngatif) ; V, qui na de sens que si
e
e
lon interpr`te les oprandes et le rsultat comme des entiers relatifs cods en
e
e
e
e
complment ` 2, et qui est vrai si le rsultat nest pas reprsentable sur le mme
e
a
e
e
e
nombre de bits que les oprandes (V pour oVerow). Reprendre le chapitre 3
e
pour un expos dtaill de la signication des divers indicateurs arithmtiques.
e e
e
e
Si lon consid`re un processeur qui travaille sur des nombres rels
e
e
reprsents en virgule ottante, il faut tenir compte dautres indicateurs ; il
e
e
existe pour la reprsentation en virgule ottante une notion de dbordement
e
e
pour des valeurs trop petites ou trop grandes, non reprsentables avec la
e
prcision disponible.
e
294
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Inst-1
JSR SP1
Inst-2
Inst-3
JSR SP2
Inst-4
SP1 Inst-5
Inst-6
RTS
SP2 Inst-7
Inst-8
JSR SP1
Inst-9
RTS
1. Le langage machine
295
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
tion JSR) est excut et une parenth`se fermante lors du retour correspondant
e e
e
(instruction RTS). Lors du premier appel (excution de JSR SP1) ladresse saue
vegarde est 3 ; lexcution de linstruction RTS eectue le retour ` cette adresse.
e
e
a
Linstruction de branchement avec sauvegarde de ladresse de dpart est
e
gnralement spcique : il sagit dune instruction de branchement qui nest
e e
e
pas ordinaire puisquil lui faut intgrer une sauvegarde. Or apr`s le saut il est
e
e
trop tard pour sauvegarder ladresse do` lon vient ; avant le saut il nest pas
u
toujours tr`s simple de la calculer. Selon les machines ladresse sauvegarde
e
e
est ladresse qui suit le branchement, ou ladresse du branchement elle-mme ;
e
le retour de sous-programme doit tre cohrent avec ce choix.
e
e
Les instructions de branchement ` des sous-programmes peuvent tre aba
e
solues ou relatives, et ladressage peut-tre direct ou indirect par registre, avec
e
ou sans dplacement. Sur le sparc on dispose de deux instructions de brane
chement avec sauvegarde, qui peuvent donc tre utilises pour coder des sauts
e
e
a
` des sous-programmes : call et jmpl. call est un branchement relatif `
a
adressage direct, qui sauvegarde sa propre adresse dans un registre, toujours le
mme. jmpl est un branchement absolu ` adressage indirect par registre avec
e
a
dplacement, qui sauvegarde sa propre adresse dans un registre spci par
e
e e
linstruction.
Nous dtaillons au chapitre 13 lutilisation des instructions de saut ` des
e
a
sous-programmes, et la structure de pile sous-jacente, pour le codage des actions et fonctions paramtres des langages impratifs usuels, comme celui
e e
e
prsent au chapitre 4.
e
e
1.4.4
On trouve sur certains processeurs, par exemple mips r10000, ultrasparc, PentiumPro, des instructions de transfert de registres conditionnels.
Une telle instruction est conditionne par le rsultat de lopration prcdente
e
e
e
e e
et permet dviter des branchements explicites. Nous empruntons ` [SL96]
e
a
lexemple suivant :
A, B : des entiers
A min (A, B)
296
Instructions spciales
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.4.5
1. Le langage machine
297
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.5
1.6
298
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1. Le langage machine
299
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
SoustReg (1,2,3)
fonctionZ
fonctionZbar
SoustReg (1, 2, 3)
fonctionBGU
fonctionBLEU
SoustReg(1,2,1)
SoustReg(2,1,2)
fonctionA
fonctionA
fonctionA
Fig. 12.5 Traduction dun algorithme en machine squentielle ` actions et lexique rese
a
treint : la machine peut bien sr tre simplie. Initialement, A0 et B0 sont
u e
e
respectivement dans les registres 1 et 2.
300
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.6.2
Interprtation
e
Pour dcrire linterprtation dun programme crit dans notre petit langage
e
e
e
machine, nous supposons ici que le programme est install en mmoire, ` partir
e
e
a
de ladresse dbut. Le probl`me gnral de linstallation du codage binaire dun
e
e
e e
programme en mmoire, ou chargement, est tudi au chapitre 18.
e
e
e
Chaque instruction est code sur 1 octet, plus un ou deux octets dextene
sion. Lalgorithme dinterprtation est donn gure 12.6.
e
e
Noter la complexit de certaines actions, par exemple celle ncessaire `
e
e
a
linterprtation dune instruction dincrmentation en mmoire, avec adrese
e
e
sage indirect par registre : MEM[Reg[NumReg]] MEM[Reg[NumReg]] + 1.
Nous verrons au chapitre 14 les contraintes quimpose une telle action sur ce
quon appelle la partie oprative du processeur, cest-`-dire lunit de calcul,
e
a
e
les registres et les bus. Au niveau algorithmique, il est facile de remplacer cette
action complexe par une action quivalente :
e
temp MEM[Reg[NumReg]]
temp temp + 1
MEM[Reg[NumReg]] temp
qui fait appara un nouveau registre temp. Cette nouvelle forme permet de
tre
sparer lacc`s en criture de lacc`s en lecture ` la mmoire.
e
e
e
e
a
e
Noter galement le cas derreur lorsque le code dinstruction lu ne correse
pond ` aucune instruction valide (il est en eet possible que le codage de
a
lensemble des instructions en vecteurs de n bits ne constitue pas une fonction surjective, comme nous lavons signal au paragraphe 1.3.1). Dans un
e
programme dinterprtation du langage machine, on peut mettre un message
e
e
derreur. Lorsque le langage machine est directement interprt par le procesee
seur, cette erreur doit galement tre dtecte, et signale au programmeur.
e
e
e
e
e
Nous y revenons au chapitre 24, paragraphe 1.2.
En toute rigueur, il faudrait prvoir une dtection derreur lors de la lecture
e
e
dun numro de registre dans un octet : NumReg MEM[PC], ` moins de
e
a
supposer que toute conguration dun vecteur de 8 boolens correspond eectie
vement ` un numro de registre existant, cest-`-dire que la machine comporte
a
e
a
256 registres.
301
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1. Le langage machine
lexique
Vecteur8 : un tableau sur [0..7] de boolens
e
Vecteur32 : un tableau sur [0..31] de boolens
e
Reg : le tableau sur 0..31 de Vecteurs32
{ Les 32 registres }
NumReg : le type entier sur 0..7 ; adresse : le type entier sur 0..tmem1
MEM : un tableau sur [adresse] de Vecteurs8
{ La mmoire }
e
Z : un boolen
e
{ Indicateur dopration arithmtique }
e
e
ADD, BT, BZ, INCRR, INCRM : les constantes de type Vecteur8 : 0, 1, 2, 3, 4
Inst : un Vecteur8 ; PC : une adresse
dbut : une adresse ; taille : un entier > 0
e
{ MEM[dbut ... dbut+taille] contient les instructions }
e
e
algorithme
PC dbut
e
tantque PC < dbut + taille
e
Inst MEM[PC] { premier octet } ; PC PC + 1
{ Lire no registre, ncessaire pour toutes les instructions (1 octet) }
e
NumReg MEM[PC] ; PC PC + 1
{ lecture autres octets selon linstruction }
selon Inst :
Inst = ADD :
{ ajout de la valeur immdiate, troisi`me octet : }
e
e
Reg[NumReg] Reg[NumReg] + MEM[PC] ; PC PC + 1
si Reg[NumReg] = 0 alors Z 1 sinon Z 0
Inst = BT : { NumReg est le numro du registre dindirection }
e
PC Reg[NumReg]
Inst = BZ : { NumReg est le numro du registre dindirection }
e
si Z alors { branchement eectif }
PC PC + Reg[NumReg]
sinon { PC PC + 1 dj` eectu : passage en squence }
ea
e
e
Inst = INCRR : { NumReg est le numro du registre ` incrmenter }
e
a
e
Reg[NumReg] Reg[NumReg] + 1
si Reg[NumReg] = 0 alors Z 1 sinon Z 0
Inst = INCRM : { NumReg est le numro du registre dindirection,
e
qui donne ladresse de lemplacement mmoire `
e
a
incrmenter }
e
MEM[Reg[NumReg]] MEM[Reg[NumReg]] + 1
si MEM[Reg[NumReg]] = 0 alors Z 1 sinon Z 0
sinon :
{ code dinstruction invalide. Cf. Chapitre 24 }
Fig. 12.6 Algorithme dinterprtation du petit langage machine
e
302
1.7
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Selon que lon privilgie la varit des instructions oertes par le langage
e
ee
machine, ou bien le cot du circuit interpr`te (le processeur), on construit des
u
e
jeux dinstructions assez dirents.
e
Lexemple typique consiste ` comparer un sparc et un 68000. Le sparc est
a
une machine dite RISC (pour Reduced Instruction Set Computer). En ralit
e e
lensemble des oprations eectivement disponibles nest pas si rduit que cela,
e
e
mais les modes dadressage sont rudimentaires : toute opration arithmtique
e
e
se fait sur des registres, et il nexiste que deux instructions spciques Load
e
et Store pour raliser des acc`s mmoire. Les instructions sont codables sur
e
e
e
un format xe, et leur interprtation est algorithmiquement simple. Le circuit
e
interpr`te est donc simple, lui aussi. La simplicit, en termes de matriel, se
e
e
e
traduit par la taille du circuit (en nombre de portes par exemple). Il reste donc
de la place pour quiper le processeur dun grand nombre de registres (peut
e
tre de lordre de 500, nous verrons au chapitre 13 comment utiliser ce banc de
e
registres du sparc pour rendre ecace le codage des procdures dun langage
e
dactions). Dautre part le format xe des instructions permet de les excuter
e
toutes dans le mme temps.
e
Le 68000, en revanche, autorise gnralement 8 modes dadressage pour les
e e
oprations. Les instructions ont un format variable selon quelles font rfrence
e
ee
ou non ` un oprande en mmoire, qui doit tre dsign par son adresse.
a
e
e
e
e
e
Lalgorithme dinterprtation est plus complexe. Le processeur est microproe
gramm (Cf. Chapitre 10) et les interprtations des instructions ont des dures
e
e
e
direntes.
e
1.7.2
Probl`mes de compatibilit
e
e
La dnition dun langage machine pour une nouvelle machine nest jae
mais totalement libre. Une nouvelle machine est en gnral une tape dans
e e
e
une gamme de machines similaires plus anciennes, pour lesquelles il existe de
nombreux programmes.
Lorsquun constructeur propose la machine de gnration n + 1, il doit ase e
surer que les programmes qui fonctionnent sur les machines de gnration n
e e
peuvent tre rutiliss. Cette notion cache de nombreux niveaux. Elle peut
e
e
e
signier, simplement, que le constructeur fournit avec sa nouvelle machine un
syst`me et un compilateur pour chaque langage qui tait disponible auparae
e
vant. Un utilisateur ayant programm en C doit transmettre dune machine
e
1. Le langage machine
303
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a
` lautre les chiers source de ses programmes, les compiler avec le nouveau
compilateur, et les excuter.
e
Malheureusement les utilisateurs tr`s anciens ont parfois perdu les chiers
e
source de leurs programmes, ou bien, ce qui est le cas pour presque tous les
logiciels commerciaux, ils navaient achet le programme que sous sa forme
e
excutable. Ils ne disposent donc plus que du chier objet, cest-`-dire un proe
a
gramme en langage machine de gnration n. Le constructeur doit alors garane e
tir la compatibilit ascendante de ses machines, cest-`-dire faire en sorte que
e
a
le chier objet de gnration n soit interprtable sur la machine de gnration
e e
e
e e
n + 1.
Il y a essentiellement deux solutions. Si les deux machines sont conceptuellement proches lune de lautre, le jeu dinstructions de la nouvelle machine
est dni comme un sur-ensemble du jeu dinstructions de lancienne. Les ane
ciens programmes sont excutables directement sur la nouvelle machine ; ils
e
nutilisent quune partie du nouveau jeu dinstructions, et sont donc peut-tre
e
moins ecaces que ce quils auraient pu tre en protant au mieux du nouveau
e
jeu dinstructions. Cest le cas entre sparc et ultrasparc.
Si les deux machines sont tr`s direntes, le constructeur fournit un
e
e
mulateur du langage machine n sur la machine n + 1. Un mulateur est un
e
e
programme, crit dans un langage quelconque, par exemple C, et compil sur
e
e
la nouvelle machine, avec le nouveau compilateur C. Ce programme est un
interpr`te du langage machine n. Le code objet des anciens programmes nest
e
donc plus directement interprt par un processeur, mais par un programme,
ee
lui-mme compil et excut sur un autre processeur.
e
e
e e
Cest le cas des macintosh : les processeurs 68000 et PowerPC sont tr`s
e
dirents et il ny a pas de compatibilit ascendante de leurs jeux dinstruce
e
tions. Apple fournit donc un mulateur de 68000 parmi les programmes du
e
logiciel de base fourni avec les machines ` PowerPC.
a
1.7.3
Le jeu dinstructions dune machine peut comporter, outre les classes dinstructions usuelles du mod`le Von Neumann, des instructions tr`s spciques
e
e
e
destines ` la traduction des programmes en langage de haut niveau.
e a
On peut dire ainsi que le 68000 est une machine pour la compilation des
langages ` structures de blocs (Pascal, C, Ada, etc.). Le jeu dinstructions
a
comporte les instructions link et unlink qui ne servent qu` grer lallocation
a e
dynamique de mmoire pour les variables dun tel type de langage (Cf. Chae
pitre 13).
De la mme mani`re, le processeur sparc ore les instructions save et
e
e
restore qui permettent de dcaler une fentre sur le banc de registres.
e
e
Ce mcanisme permet lallocation de mmoire pour le contexte local dune
e
e
procdure, et le passage de param`tres directement dans les registres, sans
e
e
304
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
acc`s mmoire.
e
e
De mani`re gnrale, la conception des processeurs est de plus en plus
e
e e
indissociable de la compilation des langages de haut niveau.
Si lon pousse le raisonnement ` lextrme, le jeu dinstructions dune maa
e
chine peut tre enti`rement conu pour lexcution de programmes crits dans
e
e
c
e
e
un langage donn. On a ainsi construit des machines LISP, des machines
e
PROLOG, etc. On entend parler galement de machines JAVA. Dans ce dere
nier cas, de quoi sagit-il exactement ? Les concepteurs du langage JAVA en
ont fait la publicit avec des arguments de portabilit et de scurit : JAVA
e
e
e
e
est dabord compil en une forme intermdiaire (appele byte code) qui est
e
e
e
ensuite excutable, par interprtation, sur tout ordinateur qui poss`de line
e
e
terpr`te adquat. Lexcution sous forme dinterprtation est censment plus
e
e
e
e
e
sre que lexcution par le processeur dun programme en langage machine ;
u
e
en eet, loutil dinterprtation peut eectuer quelques vrications sur les
e
e
oprations quil eectue. Si maintenant on propose un processeur dont le lane
gage machine est exactement le format intermdiaire produit par la premi`re
e
e
phase de compilation de Java, on obtient une machine Java.
En gnral, la question se pose de savoir sil vaut mieux concevoir une
e e
machine ddie ` un langage particulier, et capable dassurer une excution
e e a
e
ecace des programmes crits dans ce langage, ou bien concevoir un bon come
pilateur de ce langage pour machine universelle.
2.
Le langage dassemblage
Le langage machine ore dj` tout ce qui est thoriquement ncessaire pour
ea
e
e
programmer nimporte quel algorithme. Il lui manque une notation lisible et
manipulable par un tre humain. Le langage dassemblage est introduit ` cet
e
a
eet et ore donc :
tout dabord une notation textuelle aisment lisible du langage mae
chine, cest-`-dire : 1) une notation des oprations de la machine (les
a
e
mnmoniques) et de leurs oprandes, 2) un ensemble de directives de
e
e
rservation et dinitialisation de la mmoire
e
e
la possibilit dintroduire des commentaires
e
2. Le langage dassemblage
305
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.1
2.2
306
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3
Pour reprer les instructions dans la zone TEXT, ou les donnes dans la
e
e
zone DATA, le langage dassemblage fournit la notion dtiquette. Ce mcanisme
e
e
permet de faire abstraction des adresses absolues et des dcalages exacts, dans
e
le cas des branchements par exemple.
On crit typiquement, dans un langage dassemblage possible du processeur
e
sparc (BNE, SUBcc et BA sont des mnmoniques. voir paragraphe suivant) :
e
boucle:
fin:
2. Le langage dassemblage
307
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.4
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
308
MAX=4
ADDcc
ADD
LDUH
BNE
CALL
JMPL
VAL=250
ISE=-125
.data
XX :
.long 0x15
YY :
ZZ :
!
!
!
!
!
.half -12
!
!
.byte VAL
!
!
.byte ISE
!
!
.skip 12000
!
!
.asciz "toto" !
!
!
.align 4
!
.long XX
!
!
!
2. Le langage dassemblage
309
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.5
310
3.
Ar
chi
P.
te c
Am tu
F.
bla res
La
P.
gn rd, J Logi
Sic ier,
.-C ciel
ard
F.
. F les
,P
Ma ern et
h.
ran and Ma
Wa
inc
ez, tri
e
ille
hi,
ell
es
4.
Un exemple de programme
4. Un exemple de programme
311
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Lexique :
x : un entier 0 { la donne }
e
NombreDeUns : un entier 0 { le rsultat ` calculer }
e
a
Algorithme :
NombreDeUns 0
tantque x = 0
si x mod 2 = 0 alors NombreDeUns NombreDeUns + 1
x x div 2
Nous donnons ci-dessous des programmes correspondants dans des langages dassemblage possibles pour les processeurs sparc et 68000, et les programmes en langage machine correspondants. Noter quen langage dassemblage les oprations arithmtiques notes x mod 2 et x div 2 sont remplaces
e
e
e
e
par des manipulations explicites de vecteurs de boolens (dcalage logique et
e
e
masquage).
4.1
43f9 00000028
2211
7000
4a81
6710
2401
0282 00000001
6702
5280
e281
60ec
23c0 0000002c
4e75
lea
move.l
moveq
tst.l
beq
move.l
andi.l
beq
addq.l
asr.l
bra
move.l
rts
40,A1
(A1),D1
#0,D0
D1
+16
D1,D2
#1,D2
+2
#1,D0
#1,D1
-20
D0,44
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
312
4. Un exemple de programme
313
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.2
9de3bfc0
90000000
808a6001
93326001
a0142000
21000000
80a24000
02800003
10bffff8
d0240000
a0142000
02800009
01000000
01000000
81c7e008
d2040000
01000000
90022001
21000000
81e80000
314
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5. Exercices
315
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
reg d
0 0
inutilis
e
0 0 0
code op
0 0 0
reg s 2
0 0
reg s 1
0 0
i
0
Exemple 4 : 02800009
be fin_tq
Lopration est code sur les bits 31 et 30 (resp. 0 et 0) et 24 ` 22 (010).
e
e
a
La condition equal est code sur les bits 28 ` 25 (0001). Le dplacement
e
a
e
est cod sur les bits 21 ` 0 ; la valeur est ici 9, ce qui correspond au
e
a
nombre dinstruction de linstruction de branchement jusqu` ltiquette
a e
fin tq.
5.
Exercices
316
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
signication
Ri Ri OP val
Ri Ri OP MEM[adr]
Ri Ri OP Rj
MEM[adr] Ri
Ri val
Ri MEM[adr]
5. Exercices
317
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
instruction
signication
Rf. destinations en mode dadressage registre direct
e
ope val, Ri
Ri val OP Ri
ope [adr], Ri
Ri Ri OP MEM[adr]
ope [Rj], Ri
Ri Ri OP MEM[Rj]
Rf. destination en mode dadressage absolu
e
ope Ri,[adr]
MEM[adr] MEM[adr] ope Ri
Rf. destination en mode dadressage reg. indirect
e
ope Ri,[Rj]
MEM[Rj] MEM[Rj] OP Ri
Instruction move
move Rj, Ri
Ri Rj
move val, Ri
Ri val
move [adr], Ri Ri MEM[adr]
move Ri, [adr] MEM[adr] Ri
318
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
5. Exercices
319
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
.text
main:
save %sp,-104,%sp
mov 0,%o0
.LL2:
cmp %o0,9
ble .LL4
nop
b .LL3
nop
.LL4:
mov %o0,%o2
sll %o2,2,%o1
sethi %hi(T),%o3
or %o3,%lo(T),%o2
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
mov %o0,%o3
sll %o3,1,%o4
add %o4,1,%o3
st %o3,[%o1+%o2]
add %o0,1,%o0
b .LL2
nop
.LL3:
.LL1:
ret
restore
.data
T: .skip 40
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
320
Le langage machine et le langage dassemblage
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 13
322
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Comment utiliser ces transformations pour obtenir le programme en langage dassemblage correspondant ` un programme du langage dactions, et que
a
reste-t-il ` faire ? Deux types de probl`mes se posent.
a
e
Tout dabord, il faut dcrire la transformation de chaque bloc (action ou
e
fonction) dun programme du langage dactions en machine squentielle `
e
a
lexique restreint, pour se rapprocher dun langage machine. En particulier,
puisque le lexique restreint ne propose que le tableau MEM et quelques variables reprsentant les registres, il faut dcider, pour chacune des variables
e
e
dnies dans le bloc, dun emplacement mmoire qui lui correspond. La die
e
cult de linstallation en mmoire du lexique vient de lexistence des lexiques
e
e
locaux de fonctions et des actions ventuellement rcursives. Il faut dautre
e
e
part traduire toutes les structures conditionnelles et itratives en nutilisant
e
que des branchements binaires, portant des prdicats prdnis sur Z, N, C et
e
e e
V.
Supposons maintenant quon a su obtenir, pour chaque bloc (action ou
fonction) du langage dactions, une machine squentielle ` lexique restreint. Il
e
a
ne reste plus qu` traduire ces machines squentielles en textes de programmes
a
e
en langage dassemblage. Cela demande de disposer de mani`re squentielle les
e e
codages des dirents tats, avec les branchements adquats ; il faut nalement
e
e
e
coder les appels de procdures ou fonctions en utilisant les instructions dappel
e
de sous-programmes oertes par le langage machine considr.
ee
Nous tudions tout dabord dans le paragraphe 1. le cas des programmes
e
a
` un seul bloc : installation du lexique en mmoire et obtention dune
e
machine squentielle ` lexique restreint, production du texte en langage
e
a
dassemblage. Le paragraphe 2. prsente les probl`mes spciques au coe
e
e
dage des programmes ` plusieurs blocs : probl`me du lexique local, des
a
e
procdures ou fonctions rcursives, passage de param`tres et contenu de
e
e
e
la mmoire lors de lexcution. En se basant sur les principes tudis
e
e
e
e
dans ces deux premiers paragraphes, il est possible de dvelopper au pae
ragraphe 3. des solutions globales pour deux types de langages machine :
un langage machine ` structure de pile explicite, type 68000 ; un langage
a
machine ` fentres de registres, type sparc.
a
e
1.
323
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ments binaires faisant intervenir des conditions prdnies sur les indicateurs
e e
arithmtiques (paragraphe 1.3).
e
A partir des machines squentielles ` lexique restreint, on obtient facilement
e
a
des textes de programmes en langage dassemblage (paragraphe 1.4).
1.1
1.1.1
324
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
On parlera par la suite de taille du lexique. Attention, cette taille peut dpendre
e
de lordre de dclaration des variables, qui a une inuence sur la position et
e
la taille des trous ncessaires aux contraintes dalignement. Noter que, dans le
e
cas dun programme ` un seul bloc, les variables ont toutes la mme dure de
a
e
e
vie, qui est celle du programme lui-mme.
e
Dans lexemple ci-dessous, la mmoire est un tableau doctets, et on dispose
e
des aectations de tailles 1, 2 et 4 :
N : lentier 42
Entier32s : le type entier dans [2321 , 2321 1]
Entier16ns : le type entier dans [0, 216 1]
Structure : le type < x : un Entier32s, y : un Entier16ns>.
c1, c2 : des caract`res ; a : un Entier32s ; b : un Entier16ns
e
T : un tableau sur [0..N-1] de Structures
en :
1.2
1.2.1
325
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Il faut choisir un codage des boolens compatible avec ces trois types dutie
lisation, et susceptible dtre manipul ecacement en langage machine. Typie
e
quement, les processeurs orent des oprations boolennes bit ` bit (Cf. Chae
e
a
pitre 12, paragraphe 1.4.1) quon peut utiliser pour coder les oprations
e
boolennes. En revanche il nexiste pas, en gnral, dinstruction de compae
e e
raison arithmtique de deux registres, avec rsultat boolen dans un troisi`me,
e
e
e
e
qui permettrait de coder simplement B X < Y. Le rsultat boolen des
e
e
comparaisons est ` recuprer dans les indicateurs arithmtiques. Dautre part,
a
e
e
comme le mot dtat du processeur nest en gnral pas accessible en lecture
e
e e
explicite, on doit coder B X < Y comme on coderait :
si X < Y alors B vrai sinon B faux
Nous avons introduit dans le langage dactions des actions Lire et Ecrire
gnriques (cest-`-dire valables pour tous types). La manipulation dtaille
e e
a
e
e
des priphriques dentre/sortie ne fait pas partie, en gnral, du codage des
e
e
e
e e
programmes crits en langage de haut niveau. Nous verrons en dtail au chae
e
pitre 16 comment sont ralises les communications entre le processeur et des
e e
priphriques comme le clavier et lcran. Les programmes ncessaires, souvent
e
e
e
e
crits directement en assembleur, font partie du logiciel de base fourni avec un
e
ordinateur ; nous dnissons au chapitre 17 linterface entre ces programmes
e
de bas niveau rangs dans une biblioth`que et les programmes en langage dase
e
semblage produits par les compilateurs de langages de haut niveau. On trouve
entre autres dans le logiciel de base usuel les primitives de manipulation des
chiers, telles que nous les dnissons au chapitre 19.
e
Pour un compilateur, le codage dune entre/sortie est compl`tement simie
e
326
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
1.3.1
en :
si X < Y alors (si Y > 0 alors A1 sinon A2) sinon A2.
!
!
!
!
!
!
!
!
!
!
!
!
codage de laction A1
codage de la condition C1
branchement sur non C1
codage de laction A2
codage de la condition C2
branchement sur non C2
codage de laction A3
branchement inconditionnel
codage de laction A4
codage de laction A5
branchement inconditionnel
codage de laction A6
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
A1 ...
:
C1 ...
:
Bicc A6
A2 ...
:
C2 ...
:
Bicc A4
A3 ...
:
ba A5
A4 ...
:
A5 ...
:
ba C1
A6 ...
:
327
A1
tantque C1
A2
si C2 alors A3 sinon A4
A5
A6
Fig. 13.1 Squentialisation des codages en langage dassemblage des tats dune mae
e
chine squentielle ` actions et lexique restreint.
e
a
1.4
2.
! on suppose A
boucle : SUBcc
BEQ
SUBcc
BLEU
SUBcc
BA
sinon : SUBcc
finsi : BA
fin :
dans r1
r1, r2,
fin
r1, r2,
sinon
r1, r2,
finsi
r2, r1,
boucle
et B dans r2
g0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
328
tantque A = B
si A > B alors
A A B
sinon
B B A
g0
r1
r2
Fig. 13.2 Squentialisation des codages en langage dassemblage des tats dune mae
e
chine squentielle ` actions et lexique restreint : exemple du pgcd, Cf. Chae
a
pitre 12, gure 12.5. Le programme en langage dassemblage est obtenu de
mani`re systmatique ; il peut ensuite tre simpli de plusieurs faons : supe
e
e
e
c
pression de la deuxi`me comparaison SUBcc r1, r2, g0 ; remplacement du
e
BA finsi par BA boucle directement.
paragraphes 2.3 et 2.4. Enn le paragraphe 2.5 introduit le lien dynamique des
compilateurs, et le paragraphe 2.6 rsume loccupation de la mmoire lors de
e
e
lexcution dun ensemble de procdures et fonctions paramtres.
e
e
e e
Dans le cas o` une procdure A appelle une procdure B, nous appelons
u
e
e
contexte appelant lensemble des variables de A et contexte appel lensemble
e
des variables de B.
2.1
2.1.1
2.1.2
329
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Lorsque les actions et fonctions peuvent tre rcursives, il nest plus pose
e
sible dappliquer la mme mthode. Observons pour nous en convaincre le
e
e
programme donn ` titre dexemple gure 13.3, qui utilise une action rcursive
ea
e
de calcul de la suite de Fibonacci (dnie par : x0 = x1 = 1 puis n 2 xn =
e
xn1 + xn2 ). La gure 13.4 illustre le droulement du calcul si lentier lu dans
e
le programme principal est 4.
Pour obtenir le rsultat correct il faut disposer dautant dexemplaires de
e
f1 et f2 (nots f1, f1, etc.) que dappels imbriqus. Il faut donc un espace
e
e
mmoire pour la variable locale f1 (resp. f2) de CalculFibo pour chaque appel
e
de cette action. Or le nombre dappels dpend de la variable dentre A ; sa
e
e
valeur est obtenue par Lire et est donc par dnition inconnue quand on est en
e
train de modier le texte du programme, indpendamment de toute excution,
e
e
comme cest le cas ici. Il nous faut donc trouver un mcanisme permettant
e
dallouer une zone de mmoire ` chaque entre dans la procdure, zone qui
e
a
e
e
devra tre restitue avant la sortie de procdure.
e
e
e
2.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
330
331
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Passage des donnes par valeur : Les valeurs des expressions qui constie
tuent les param`tres donnes eectifs doivent tre calcules puis places en
e
e
e
e
e
mmoire par lappelant, ` un endroit connu de lappel qui les lira. Ainsi
e
a
e
on calcule la valeur de X+1, cest-`-dire MEM[aX] + 1, et on la recopie dans
a
MEM[aA].
Passage des rsultats par rfrence : Pour les param`tres rsultats,
e
e e
e
e
passer leur valeur na aucun intrt. Par dnition un rsultat est produit par
ee
e
e
laction appele. Quand on crit CalculSomme (X+1, Y2, Z), on sattend `
e
e
a
ce que la valeur de la variable Z soit modie. Pour cela il faut que laction
e
appele soit capable daecter une nouvelle valeur ` la variable Z. Si lace
a
tion CalculSomme tait toujours appele depuis le programme principal, avec
e
e
comme troisi`me param`tre la variable Z, il surait dcrire dans le corps de
e
e
e
laction : MEM[aZ] .... Mais elle peut tre appele ` divers endroits du
e
e a
programme, avec des param`tres dirents. Le corps de laction doit donc tre
e
e
e
capable dcrire dans la variable quon lui indique. Pour assurer ce fonctione
nement, ladresse de la variable qui constitue le param`tre rsultat eectif est
e
e
fournie ` lappele ; elle est place en mmoire par lappelant, ` un endroit
a
e
e
e
a
connu de lappele qui la lira. On crit donc : MEM[aR] 4 aZ. Lappele
e
e
e
peut alors rcuprer cette adresse dans MEM[aR], et sen servir pour crire
e
e
e
dans la bonne variable, par indirection : MEM[MEM[aR]] .... On retrouve
332
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Une fois adoptes ces conventions de passage des param`tres donnes par
e
e
e
valeur et rsultat par adresse, il reste ` tudier la mani`re dobtenir aA, aB et
e
ae
e
aR : cest le probl`me de lallocation mmoire pour les param`tres.
e
e
e
Cas sans rcursivit : Il faut prvoir une zone de mmoire pour chaque
e
e
e
e
param`tre de F1 vers F2, pour chaque couple dactions ou fonctions F1, F2
e
telles quun appel de F2 appara quelque part dans le corps de F1. Un examen
t
du texte complet du programme, indpendamment de toute excution, permet
e
e
de reprer qui appelle qui, et la place ncessaire pour la liste de param`tres,
e
e
e
dans chaque cas. On choisit alors les adresses dans MEM, par exemple ` la
a
suite de tous les emplacements allous aux variables globales. Il sut de se
e
tenir ` ces choix lorsque lon transforme les algorithmes des appelants et des
a
appels, comme nous lavons fait pour CalculSomme ci-dessus.
e
Cas avec rcursivit : Dans le cas avec rcursivit, on retombe sur le
e
e
e
e
probl`me voqu pour les variables des lexiques locaux : il faut un emplacement
e e
e
ddi aux param`tres, pour chaque appel de F1 qui appelle F2, ` lexcution.
e e
e
a
e
Le choix des adresses des param`tres ne peut donc se faire statiquement, ceste
a
`-dire au moment de la transformation du programme.
2.3
333
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
direntes variables du lexique local suit la mme dmarche que celle prsente
e
e
e
e
e
au paragraphe 1.1.2. Une fois obtenue une adresse de base p par allocation
dynamique, on dispose les variables les unes apr`s les autres en mnageant des
e
e
espaces ventuels pour tenir compte des contraintes dalignement.
e
Cette transformation na pas encore permis dliminer le lexique local : on
e
a remplac les variables dorigine par une seule : p, mais il en faut toujours
e
autant dexemplaires que dappels de CalculFibo.
Toutefois, on peut poursuivre la transformation du programme. En eet, on
remarque que, vue la structure des appels dactions et fonctions, la derni`re
e
zone alloue est toujours la premi`re libre (autrement dit, les appels sont
e
e
ee
bien parenthss : on ne peut pas successivement entrer dans A ; entrer dans
ee
B ; sortir de A, sortir de B). On prote donc de cette situation tr`s particuli`re
e
e
pour ne pas utiliser un mcanisme gnral dallocation et libration despaces
e
e e
e
mmoire, dont la complexit provient justement de la gestion des trous qui
e
e
apparaissent si lon ne lib`re pas toujours le dernier allou.
e
e
On propose de raliser lallocation mmoire par les algorithmes de la e
e
gure 13.9. Le corps des actions est tr`s court ; si lon suppose de plus quil
e
y a toujours de la place, on peut remplacer tout appel Allouer (p, n) par
pp pp n ; p pp et tout appel Librer (p, n) par pp pp + n. On
e
peut ensuite liminer la variable locale p et ne garder que la variable globale
e
pp. Cela donne lalgorithme de la gure 13.8. On dit que la mmoire est gre
e
ee
en pile, pour rendre compte du fait que les allocations se font selon un ordre
dernier allou/premier libr (Cf. Chapitre 4, paragraphe 5.).
e
e e
2.4
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
334
335
MEM
pp : un pointeur
Initialiser :
pp tmem
Allouer (p, n) :
si pp n < T+1 alors
p NIL
sinon
pp pp n
p pp
adresses croissantes
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Zone
libre
Zone
occupe
e
T+1
pp
tmem 1
Librer (p, n) :
e
pp pp + n
tmem
Fig. 13.9 Gestion mmoire simplie : pour allouer une nouvelle zone de taille n, on
e
e
dplace le pointeur pp de n octets vers les adresses dcroissantes. La zone
e
e
ainsi rendue disponible est entre les adresses pp incluse et pp+n exclue.
2.5
336
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Fig. 13.10 Elimination compl`te des lexiques et des param`tres dans CalculFibo (On
e
e
a suppos taille 2 entiers = 8).
e
337
MEM
MEM
MEM
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
pp
f1
f2
@B
4
A=4
B
pp
@B
A=4
B
4
A=4
B
@B
tmem
@B
tmem
tmem
Prog. principal
avant CalculFibo
point 2
Prog. principal
Point 1
on a lu A=4
MEM
MEM
MEM
pp T
f1
f1
f2
@f1
1
f1
f2
@f1
2
f1
f2
@f1
3
f1
f2
@B
4
A=4
B
f2
@f1
3
f1
f2
@B
4
A=4
B
@f1
pp
@f1
pp
@f1
@B
tmem
@f1
3
f1
f2
@B
4
A=4
B
@f1
(f)
(n)
@B
(f)
(n)
(f)
(n)
@f1
@B
tmem
tmem
pp
338
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
en cours dexcution, cest-`-dire juste sous les variables locales du bloc. Sur
e
a
la gure 13.12-a, les pointeurs de base denvironnement sont gurs par des
e
`ches en trait gras ; la notation @x est utilise pour signier ladresse de x.
e
e
Lorsquon passe dun bloc appelant ` un bloc appel, il sut de placer
a
e
la variable pb ` la base de lenvironnement du bloc appel. Lorsque le bloc
a
e
appel se termine, il faut replacer pb ` sa position antrieure, cest-`-dire la
e
a
e
a
base de lenvironnement du bloc appelant. Contrairement ` ce qui se passe
a
pour le pointeur pp, il nest pas toujours ais de calculer lancienne position
e
de pb de mani`re ` dplacer pb par une action de la forme pb pb + k. On
e a e
introduit donc un mcanisme de sauvegarde de pb, ce qui donne le schma de
e
e
la gure 13.12-b. Chacune des positions de pb pointe sur une case mmoire qui
e
contient la sauvegarde de lancienne valeur (plus bas dans la pile). La suite des
ces sauvegardes successives forme ce que lon appelle le cha
nage dynamique,
ou lien dynamique.
Remarque : Il existe galement en compilation une notion de lien statique,
e
a
` ne pas confondre avec le lien dynamique. Le lien dynamique cha entre eux
ne
les environnements de deux blocs A et B tels que A appelle B, ` lexcution.
a
e
Le lien statique cha entre eux les environnements de deux blocs A et B tels
ne
que B est dni dans A, dans le texte du programme. Cela peut arriver en
e
Pascal, Ada, ANSI C, par exemple, mais pas en C classique.
2.6
Nous avons dj` dit au chapitre 4, paragraphe 4., que la mmoire ncessaire
ea
e
e
aux donnes dun programme est forme de deux zones disjointes : une zone
e
e
ncessaire ` la gestion des zones mmoire alloues et libres dynamiquement
e
a
e
e
ee
a
` la demande du programme, quon appelle tas, et une zone ncessaire ` la
e
a
gestion des variables du lexique global et des lexiques locaux des procdures.
e
Nous venons de voir prcdemment que cette deuxi`me zone comporte non
e e
e
seulement les variables et les param`tres mais aussi ventuellement des donnes
e
e
e
de liaison entre appelant et appel : sauvegarde du lien dynamique dans notre
e
cas, adresse de retour de sous-programme dans le cas o` linstruction dappel
u
lempile (cas du 68000, paragraphe 3.4.1), lien statique ventuellement. Cette
e
zone est gre comme une pile et on parle souvent de la pile ` lexcution pour
ee
a
e
la dsigner.
e
Un certain nombre de variables peuvent aussi tre stockes dans les registres
e
e
du processeur. Il est alors ncessaire dassurer que leur valeur ne peut pas
e
tre modie par un sous-programme appel. La sauvegarde ventuelle de ces
e
e
e
e
registres est aussi eectue dans la zone pile (Cf. Paragraphe 3.1.3).
e
Noter que les acc`s ` la zone pile sont des acc`s directs dans un tableau,
e a
e
par adresse et dplacement, du genre MEM[pp+4]. Dans une vritable pile les
e
e
seules actions autorises sont Empiler et Dpiler (Cf. Chapitre 4, paragraphe 5.)
e
e
339
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
MEM
...
f1
f2
param. @f1
param. 3
f1
f2
param. @B
param. 4
A=4
B
MEM
Variables locales
de CalculFibo
Variables locales
de CalculFibo
Variables locales
du prog. principal
...
ancien pb
param. @f1
param. 3
f1
f2
ancien pb
param. @B
param. 4
A=4
B
(a)
(b)
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
340
Fig. 13.13 Elimination compl`te des lexiques et des param`tres dans CalculFibo et
e
e
introduction du pointeur de base denvironnement pb.
341
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
et ne prjugent pas de limplantation de la pile, qui peut fort bien tre une
e
e
squence cha ee.
e
n
Noter aussi que la gestion en pile de la mmoire permet une rutilisation
e
e
maximale de la mmoire pour les lexiques locaux de deux blocs qui ne sape
pellent pas lun lautre.
2.6.1
Probl`mes dinitialisation
e
Nous verrons plus tard que, lors de lexcution eective, le programme dit
e
principal dans le texte dun programme utilisateur nest pas le premier bloc
existant. Il y a toujours un appelant, ne ft-ce que linterpr`te de commandes
u
e
a
` partir duquel on lance lexcution du programme (Cf. Chapitre 20).
e
Le codage du programme principal suit donc exactement les mmes prine
cipes que le codage des actions et fonctions paramtres. Linitialisation des
e e
pointeurs pp et pb nappara pas dans le code des programmes utilisateurs.
t
En produisant le codage du bloc qui correspond au programme principal, on
suppose que ce bloc hrite, ` lexcution, dune valeur pertinente de ces deux
e
a
e
pointeurs, installe auparavant. Le codage du programme principal doit en
e
contrepartie assurer que ce bloc se termine proprement comme une action ou
fonction, par un retour au contexte appelant.
2.6.2
342
3.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
adresses sont calculables statiquement, et inscrites une fois pour toutes comme
des constantes dans le programme en langage machine.
3.1
3.1.1
Les registres de la machine pour laquelle on produit du code sont bien appropris pour ranger les uniques variables globales qui subsistent apr`s toutes
e
e
les transformations de programme envisages : les deux pointeurs, ou adresses,
e
pp et pb. En eet les registres sont par dnition accessibles dans tout contexte,
e
et la rapidit dacc`s (mmoire plus rapide que la grande mmoire, nombreuses
e
e
e
e
instructions du langage machine travaillant directement sur des registres) est
intressante pour des variables qui sont manipules tr`s souvent.
e
e
e
3.1.2
3.1.3
343
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
Nous avons rsolu les probl`mes dallocation mmoire pour les lexiques
e
e
e
locaux et les param`tres. Dans nos algorithmes modis, il subsiste des appels
e
e
rduits au nom de la procdure ou fonction appele. Chaque bloc est cod en
e
e
e
e
langage dassemblage dapr`s les principes noncs au paragraphe 1. Il reste
e
e
e
a
` coder les appels de blocs par des instructions de branchement ` des sousa
programmes disponibles dans le langage machine considr. Se pose alors le
ee
probl`me de ladresse du bloc ` atteindre.
e
a
Le cas le plus simple est celui des structures de blocs statiques : les
procdures et fonctions sont toutes connues, elles ont des noms, et sont toue
jours appeles directement par lintermdiaire de leur nom, dans le programme
e
e
en langage de haut niveau.
On code chaque bloc P sparment (voir aussi aspects de compilation
e e
spare, chapitre 18, paragraphe 2.), en lui associant une tiquette de dbut
e e
e
e
dapr`s le nom du bloc dans le langage de haut niveau, par exemple P. Les
e
appels de P sont cods par : call P, si call est le nom de linstruction de
e
saut ` un sous-programme (Cf. Chapitre 12, paragraphe 1.4.3).
a
Les textes obtenus par codage des dirents blocs sont simplement juxtae
344
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Le programme en langage dassemblage correspondant doit manipuler explicitement les adresses des fonctions, cest-`-dire les adresses associes aux
a
e
tiquettes de dbut des squences dinstructions des fonctions. Ladresse `
e
e
e
a
laquelle on doit brancher pour appeler la fonction Tf[x] doit tre calcule dye
e
namiquement, et le langage machine doit orir un appel de sous-programme
par adressage indirect. Dans la suite nous ne nous intressons plus ` ce cas.
e
a
3.3
345
Ar
chi
P.
te c
Am tu
F.
bla res
La
P.
gn rd, J Logi
Sic ier,
.-C ciel
ard
F.
. F les
,P
Ma ern et
h.
ran and Ma
Wa
inc
ez, tri
e
ille
hi,
ell
es
3.4
3.4.1
346
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
pp pp - 4 ; MEM[pp] pb ; pb pp ; pp pp 8
Soit les actions A, B et C dnies Figure 13.14. A est laction principale, elle
e
appelle B qui appelle C. Nous donnons gure 13.15 le codage de la procdure A
e
dans un langage dassemblage pour 68000. Rappelons que ladresse de retour
de sous-programme est sauv dans la pile dexcution par linstruction jsr et
e
e
que la sauvegarde du lien dynamique et la mise en place de lenvironnement
local du sous-programme sont assures par linstruction link. Par rapport au
e
schma de pile donn gure 13.12-b, la zone des donnes de liaison comporte
e
e
e
non seulement la sauvegarde de pb mais aussi ladresse de retour (en-dessous),
ce qui donne la taille de deux adresses (8 octets) ` cette zone.
a
3.5
347
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
348
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.5.1
3.5.2
349
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
banc de registres i
32 bits
SAVE
RESTORE
7 registres globaux
appelee:
save
! utilisation des param`tres dentre %i0...%i6
e
e
! et des variables locales %l0..%l7
restore
jmpl %o7+8, %g0
nop
appelante:
! place les param`tres dans %o0..%o6
e
call appelee ! sauvegarde de ladresse de retour dans %o7
nop
...
Fig. 13.17 Schma de codage idal utilisant le mcanisme de fentres de registres
e
e
e
e
350
3.5.3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Cas raliste
e
4. Exercices
351
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Pour que la proprit soit toujours vraie il sut, lors de tout changement de
ee
contexte qui installe une nouvelle fentre, dinitialiser le registre %o6 de la
e
nouvelle fentre.
e
Or linstruction save du sparc se comporte comme une addition, qui
interpr`te la dsignation de ses oprandes dans la fentre de dpart, et la
e
e
e
e
e
dsignation du rsultat dans la fentre darrive. Une instruction save %o6,
e
e
e
e
-64, %o6 permet donc dinitialiser le registre %o6 de la nouvelle fentre dapr`s
e
e
la valeur du registre %o6 de lancienne : linstruction dcale le pointeur vers les
e
adresses infrieures, rservant ainsi un espace de la pile de taille 4 16 = 64
e
e
pour 16 registres de 4 octets. Lancien pointeur de pile, qui sappelait %o6
dans le contexte de lappelant, est toujours accessible. Il sappelle %i6 dans
le contexte de lappel. %fp, pour Frame Pointer, est un synonyme de %i6 en
e
assembleur. Le programme de la gure 13.19 illustre ce mcanisme.
e
3.5.5
Dans le cas o` le nombre de registres ne sut pas pour stocker les variables
u
locales et passer les param`tres, il est possible dutiliser la pile. On peut lors
e
du save demander plus de place dans la pile que les 64 octets ncessaires ` la
e
a
sauvegarde des registres %i0..%i7 et %l0..%l7 par le traitant dinterruption
grant la demande dune fentre alors quil nen existe plus de libre.
e
e
La gure 13.20 illustre lorganisation de la pile et des fentres de registres
e
dans ce cas. La seule contrainte quil faut respecter est de conserver la place
en haut de zone alloue pour la sauvegarde ventuelle de la fentre courante.
e
e
e
Les variables locales sont alors ranges en bas de pile et on y acc`de via
e
e
une adresse de la forme %fp d, le dplacement d pouvant tre calcul stae
e
e
tiquement de la mme faon que pour la solution ` base de pile seulement.
e
c
a
Les param`tres sont ranges par lappelant dans le haut de sa zone locale,
e
e
juste sous la zone de sauvegarde pour le traitant dinterruption. Dans lappel
e
on acc`de alors aux param`tres eectifs via une adresse de la forme %sp + d
e
e
avec d 64, d tant lui aussi calculable statiquement.
e
4.
Exercices
352
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
fentre 1
e
i
Zone de sauvegarde
de la fentre 2
e
fentre 2
e
PILE
6
7
restore
fentre2.SP
e
6
7
64
fentre1.SP = fentre2.FP
e
e
Fig. 13.18 Utilisation des fentres de registres avec rservation de place dans la pile
e
e
pour la sauvegarde des fentres. Noter que dans lcriture de linstruction
e
e
save %o6, -64, %o6, le premier %o6 dsigne celui de lancienne fentre
e
e
et le second celui de la nouvelle fentre.
e
appelee:
save %o6, -64, %o6
! ou save %sp, -64, %sp
! rserve une zone de 64=16*4 octets dans la pile, pour
e
! la sauvegarde des registres i et l de ce nouveau contexte.
! ... utilisation des param`tres dentre %i0...%i6
e
e
! et des variables locales %l0..%l7 ...
! retour et restauration de la fen^tre
e
jmpl %i7+8, %g0
restore
appelante:
...
call appelee ! sauvegarde de ladresse de retour dans %o7
nop
Fig. 13.19 Programme ncessitant la sauvegarde des registres
e
353
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4. Exercices
appelant
appel.sp
e
appelant.sp =
appel.fp
e
6
7
Contexte
sauvegarde
registres
i, l
var. locales
sauvegarde
registres
i, l
param`tres
e
>6
6
7
de lappel
e
taille > 64
Contexte de
lappelant
PILE
appelant.fp
var. locales
appel
e
354
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
comme dans le cas des actions : on passe leur valeur. Le rsultat dune fonce
tion est calcul par lappel sans que lappelant lui ait fourni ladresse dune
e
e
de ses variables. Il faut donc choisir un mcanisme qui permet ` la fonction
e
a
appele decrire le rsultat quelle calcule dans un emplacement mmoire connu
e
e
e
du contexte appelant, qui pourra le lire. On peut examiner deux solutions : le
rsultat est stock dans un registre ou dans la pile. Noter que selon le type du
e
e
rsultat de la fonction (par exemple sil sagit dun produit de types ou dun
e
tableau) la solution de la pile est plus facile ` mettre en oeuvre.
a
E13.3 : Nombre de 1 dans la reprsentation binaire dun entier
e
Traduire dans le langage dassemblage de votre choix lalgorithme prsent
e
e
au chapitre 12, paragraphe 1.4.1, qui permet de compter les bits ` 1 dans la
a
reprsentation binaire dun entier.
e
E13.4 : Traduction de boucles imbriques
e
Traduire en langage dassemblage lalgorithme suivant :
lexique
i, j, x : des entiers ; N : lentier ... { donn }
e
algorithme
x 0
i parcourant 0 .. N
j parcourant 0 .. N
x x + i * j
{ X est impair }
{ X est pair }
4. Exercices
355
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lexique
N : lentier ... { donn }
e
T : un tableau sur [0..N1] dentiers
S, i : des entiers
algorithme
{ calcul de la somme des lments du tableau }
ee
S T[0]
i parcourant (1..N1) : S S + T[i]
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
356
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Quatri`me partie
e
A la charni`re du logiciel et du
e
matriel...
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tur
F.
bla es L
P. Lagn rd,
ogi
Sic ier J.- cie
ard , F C.
l les
, P . M Fer
et
ara na
h.
Ma
Wa ni nde
e
nch z, trie
il le
l l es
i,
Chapitre 14
Le processeur : linterpr`te
e
cbl du langage machine
a e
Ce chapitre dcrit la mise en oeuvre par un circuit de lalgorithme dine
terprtation des instructions dun processeur. Nous parlons aussi dinterpr`te
e
e
du langage machine. Cet interpr`te est cbl : ce nest pas un programme mais
e
a e
un circuit.
Etant donn le jeu dinstructions dni pour un processeur, la description
e
e
de cet algorithme permet de comprendre comment est excute une instruce e
tion, donc un programme en langage machine. Cest ce point de vue simple et
purement pdagogique que nous adoptons ici, la description des mthodes de
e
e
conception dun processeur dpassant le cadre de ce livre. Nous ne parlerons
e
pas non plus de processeur ` ot de donnes ou pipelin ; pour une description
a
e
e
approfondie le lecteur peut consulter [HP94].
Un processeur peut tre considr comme une machine algorithmique
e
ee
(Cf. Chapitre 11) forme dune partie oprative (une UAL, des bus, des
e
e
lments de mmorisation, etc.) et dune partie contrle. Le processeur est reli
ee
e
o
e
a
` une mmoire dans laquelle est stock un programme en langage machine. La
e
e
question de la liaison entre une machine algorithmique et une mmoire a t
e
ee
tudie au chapitre 11.
e
e
Le processeur doit rcuprer les instructions en langage machine dans la
e
e
mmoire, dans lordre du programme, et les excuter une par une. Lalgoe
e
rithme dinterprtation du langage machine consiste ainsi en une boucle ine
nie (mais nous verrons dans la partie VI, Chapitre 22, quil est possible
dinterrompre cette boucle innie) : lire linstruction courante, la dcoder,
e
raliser le travail correspondant et dterminer ladresse de linstruction suie
e
vante (Cf. Paragraphe 1.6 du chapitre 12). Si linstruction ` excuter est par
a e
exemple add d0, d1, d2 le processeur doit faire en sorte que les contenus des
registres d0 et d1 soient prsents aux deux entres de lUAL, activer laddition
e
e
et envoyer le rsultat dans le registre d2.
e
La comprhension de ce chapitre suppose connus les chapitres 8, 9, 10, 11
e
et 12. Apr`s avoir expliqu les principes de linterprtation des instruce
e
e
360
Mmoire
e
SelMem
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Processeur
Partie contrle
o
l/e
bus donnes
e
programme
RI
PC
bus adresses
donnes
e
UAL
Partie oprative
e
1.
1.1
361
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2
La partie oprative dun processeur doit tre capable deectuer toutes les
e
e
oprations et tous les transferts dinformation ncessaires ` lexcution des
e
e
a
e
instructions du langage machine.
Elle peut donc tre tr`s proche dune partie oprative type, dcrite au
e
e
e
e
chapitre 11. Une particularit ` signaler est lexistence dun registre particulier
ea
(appel registre instruction et not RI), non manipulable par les instructions
e
e
du langage machine et qui contient ` chaque instant linstruction en cours
a
dinterprtation. Le contenu de ce registre sert de compte-rendu pour la partie
e
contrle.
o
LUAL a deux types de sorties : une donne qui est le rsultat dun calcul
e
e
et les codes de conditions arithmtiques Zu, Nu, Cu, Vu. La donne circule
e
e
sur un bus et sera charge dans un registre ou un mot mmoire ; les codes
e
e
de conditions sont des informations de contrle qui peuvent tre testes par
o
e
e
la partie contrle : ce sont des entres de la partie contrle. Ces codes de
o
e
o
conditions peuvent aussi tre chargs dans 4 bits dun registre dtat.
e
e
e
Notons quune adresse peut tre une entre de lUAL lorsquun calcul est
e
e
ncessaire sur une adresse ; par exemple, pour traiter un mode dadressage ine
direct avec dplacement, il faut ajouter la valeur de ladresse et le dplacement.
e
e
362
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3
363
2.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
icie
J.ard , F C.
lles
, P . M Fer
ara na et M
h.
Wa ni nde at
ri
e
z,
ille nch
elle
i,
s
des variables et la mmoire comme un tableau. Nous donnons ensuite une dese
cription sous forme de machine squentielle avec actions aux tats de laquelle
e
e
on associe des microactions : ce sont les oprations eectivement ralisables
e
e
par la partie oprative. Lobjectif est de montrer comment on peut concevoir
e
la partie oprative et la partie contrle dun processeur, tant donn le jeu
e
o
e
e
dinstructions retenu.
364
mmoire
e
0010
0011
0011
1000
0101
1000
0100
0100
code de lopration ld
e
valeur immdiate 3
e
code de lopration st
e
adresse 8
code de lopration add
e
adresse 8
code de lopration jmp
e
adresse 4
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
0000
clr
ld #vi
st [ad]
jmp ad
add [ad]
1
2
3
4
5
vi
ad
ad
ad
0100
0111
(a)
(b)
Fig. 14.2 (a) Codage des instructions ; (b) reprsentation en mmoire dun programme
e
e
en langage machine
3.
365
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lexique :
entier4 : le type entiers reprsents sur 4 bits
e
e
{ les oprations arithmtiques sont donc modulo 16 }
e
e
PC, Acc : des entier4
tailleMem : lentier 16
Mem : un tableau sur [0..tailleMem-1] dentier4
algorithme dinterprtation des instructions :
e
PC 0
tant que vrai
selon Mem[PC]
clr : Acc 0 ; PC PC + 1
ld : Acc Mem[PC + 1] ; PC PC + 2
st : Mem[Mem[PC + 1]] Acc ; PC PC + 2
jmp : PC Mem[PC + 1]
add : Acc Acc + Mem[Mem[PC + 1 ]] ; PC PC + 2
Fig. 14.3 Algorithme dinterprtation du langage machine
e
3.1
366
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
367
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
RI2
0 1
RI1
SelAccPC
chRI1
ACC
resetAcc
chACC
sAccUAL
PC
resetPC
chPC
ADD/INCR
sPCUAL
UAL
sAccDon
Mem
BusDon
sRI2Ad
Mem
sPCAd
BusAd
microactions
RI1 = Mem[PC]
RI2 = Mem[PC]
transferts utiliss
e
PC ; BusAd
Mem[BusAd] ; BusDon
BusDon ; RI1
PC ; BusAd
Mem[BusAd] ; BusDon
BusDon ; RI2
Acc = 0
Acc = RI2
Mem[RI2] = Acc
RI2 ; Acc
RI2 ; BusAd
Acc ; BusDon
BusDon ; Mem[BusAd]
SelAccPC, chAcc
sRI2Ad, sAccDon,
SelMem, l/e
RI2 ; PC
Acc ; UAL(1)
RI2 ; BusAd
Mem[BusAd] ; BusDon
BusDon ; UAL(2)
UAL ; Acc
SelAccPC, chPC
PC = RI2
Acc =
Acc + Mem[RI2]
PC = PC + 1
PC ; UAL(1)
UAL ; PC
PC = 0
sPCUAL, add/incr,
SelAccPC, chPC
resetPC
5
6
resetAcc
sAccUAL, sRI2Ad,
SelMem, l/e,
add/incr, SelAccPC
chAcc
Fig. 14.5 Commandes et transferts associs aux microactions. Les notations UAL(1)
e
et UAL(2) dsignent lentre 1 et lentre 2 de lUAL.
e
e
e
368
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.3
369
E0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
PC = 0
E1
RI1 = Mem[PC]
RI1=clr
RI1 = clr
E2
PC = PC + 1
E4
E3
ACC = 0
RI2 = Mem[PC]
RI1=ld
RI1=jmp
E6
E5
ACC = RI2
PC = RI2
RI1=st
E7
RI1=add
Mem[RI2] = ACC
E8
E9
PC = PC + 1
PC = 0
E2
RI1 = Mem[PC]
PC = PC + 1
RI1=clr
RI1 = clr
RI2 = Mem[PC]
PC = PC + 1
E3
RI1=ld
ACC = 0
RI1=jmp
E6
E5
ACC = RI2
RI1=st
PC = RI2
RI1=add
E7
Mem[RI2] = ACC
E8
E4
370
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
Apr`s avoir produit une solution, il est judicieux de se demander si elle peut
e
tre amliore. Il faut alors savoir selon quels crit`res physiques : frquence de
e
e e
e
e
fonctionnement, surface du circuit, puissance lectrique dissipe, etc.
e
e
En gnral, on essaie de rendre le processeur le plus rapide possible en
e e
diminuant le temps dexcution des instructions machine. Le temps dexcution
e
e
dune instruction donne est gal ` N C o` N est le nombre dtats ncessaires
e
e a
u
e
e
a
` lexcution de linstruction et C est le temps de cycle. On peut donc diminuer
e
soit le temps de cycle, soit le nombre dtats ncessaires ` lexcution dune
e
e
a
e
instruction. Dans notre exemple, lexcution de linstruction add, par exemple,
e
prend 5 cycles dhorloge.
On peut aussi chercher ` conomiser le matriel : utiliser le moins possible
ae
e
de registres ou de bus dans la partie oprative.
e
Une bonne ralisation est souvent le rsultat dun compromis entre tous
e
e
ces aspects. Nous donnons ici quelques ides damliorations sur lexemple
e
e
prcdent.
e e
4.1
Paralllisation de microactions
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.2
371
4.3
372
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Etat 8
ri3.ri2.ri1.ri0
chACC
chACCouPC
chPC
ri3.ri2.ri1.ri0
Etat 2 ou Etat 4
Fig. 14.8 Production des commandes chACC et chPC selon la commande chACCouPC,
le code opration et ltat de lautomate de contrle. chACCouPC est mise
e
e
o
e
par la partie contrle, chACC et chPC sont reues par la partie oprative.
o
c
e
chACC est active lorsque lautomate de contrle est dans ltat 8 ou lorsque
e
o
e
chACCouPC est vraie alors que linstruction courante est ld (code par 2 en
e
dcimal). chPC est active lorsque lautomate de contrle est dans un des
e
e
o
tats 2 ou 4 ou lorsque chACCouPC est vraie alors que linstruction courante
e
est jmp (code 4 en dcimal).
e
e
5.
Extensions du processeur
5.1
Imaginons que notre processeur ait 16 registres de donnes ACC0, ACC1, ...,
e
ACC15 au lieu dun seul accumulateur.
Les instructions clr, ld, st et add ont alors un param`tre supplmentaire.
e
e
Linstruction jmp reste inchange. La syntaxe de ces instructions peut tre :
e
e
5. Extensions du processeur
st ou add
ad
numro de registre
e
clr
numro de registre
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
ld
vi
numro de registre
e
373
clr ACCi
ld #vi, ACCi
st ACCi, [ad]
add [ad], ACCi
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
374
BusA
Mem
sACC0Don
UAL
ACC15
ACC1
ACC0
sACC0A
BusDon
BusB
sRI2B
R
I
1
R
I
3
1
0
R
I
2
P
C
sRI2Ad
BusAd
CALC
sPCAd
Mem
microaction
ACCRI3 = 0
ACCRI3 = RI2
Mem[RI2] = ACCRI3
ACCRI3 = ACCRI3 + Mem[RI2]
commandes
resetACC
sRI2B, chACC
sACCDon, sRI2Ad, SelMem, Ecr
sACCA, sRI2Ad, SelMem, Lec, chACC
5. Extensions du processeur
375
RI3
RI3
chACC0
chACC1
chACC
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
resetACC0
resetACC1
resetACC
chACC15
resetACC15
RI3
sACCDon
RI3
sACC0Don
sACC1Don
sACCA
sACC15Don
sACC0A
sACC1A
sACC15A
un dcodeur.
e
La description de la partie contrle paramtre est ainsi la mme que pour
o
e e
e
un seul registre ACC.
5.2
376
RI2 = Mem[PC]
RI1=brn
et N
UAL
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
RI1 = clr
PC = PC + 1
RI1=brn
et N
Nu
Registre Etat
PC = RI2
*
Fig. 14.13 Extrait de la partie contrle pour le traitement de linstruction brn. Les
o
`ches notes * ont pour cible lacquisition de linstruction suivante, ceste
e
`-dire ltat E2 de la gure 14.7.
a
e
6.
Exercices
6. Exercices
377
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
378
inst
e0
0
1
1
0
1
0
0
0
entres (RInst)
e
ri3 ri2 ri1 ri0
x
x
x
x
0
0
0
1
=0 0
0
1
x
x
x
x
x
x
x
x
0
0
1
0
0
0
1
1
0
1
0
0
nouvel tat
e
ne2 ne1 ne0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
ne3
0
0
0
0
1
0
0
0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
e3
0
0
0
0
0
0
0
0
tat
e
e2 e1
0 0
0 0
0 0
0 1
0 1
1 0
1 0
1 0
clr
autre
ld
st
jmp
e3
0
0
1
tat
e
e2 e1
0 0
0 1
0 0
chRI1
e0
1
0
0
SelAccPC
chAcc
ADD/INCR
...
1
0
0
0
1
0
0
1
0(incr)
1(add)
...
...
...
donne dans la gure 14.6 selon la technique tudie au chapitre 10. Lautomate
e
e
e
a 10 tats que lon peut coder sur 4 bits e3 , e2 , e1 , e0 ; ltat Ei est reprsent
e
e
e
e
par le codage binaire de lentier i.
La table de la gure 14.15 donne une partie de la fonction de transition.
Terminer cette table et raliser la synth`se de cette fonction combinatoire avec
e
e
des portes, ou un PLA (Cf. Chapitre 8). Remarquer au passage que lautomate de contrle rv`le une sous-spcication : rien nest prvu si le code de
o e e
e
e
linstruction dans RI1 nest pas un code valide. En fait, dans le cas de code
invalide, lors du dcodage de linstruction une interruption est gnre par le
e
e ee
processeur (Cf. Chapitre 22).
La partie contrle a 16 ls de sorties : SelMem, l/e, resetPC, resetAcc, chRI1,
o
chRI2, chAcc, chPC, add/incr, SelAccPC, sAccUAL, sPCUAL, sAccDon, sRI2Ad,
sPCAd (Cf. Paragraphe 3.2). La partie contrle tant dcrite par un automate
o e
e
de Moore, les sorties dpendent uniquement de ltat. Nous donnons dans la
e
e
gure 14.16 une partie de la fonction de sortie de lautomate. Complter cette
e
table et synthtiser la fonction combinatoire avec des portes ou un PLA.
e
En utilisant des bascules D pour reprsenter ltat de lautomate, dessiner
e
e
le circuit synthtisant la partie contrle toute enti`re.
e
o
e
E14.6 : Interpr`te dun langage machine type sparc
e
Ce probl`me a pour but de dcrire linterpr`te du langage machine dun proe
e
e
cesseur imaginaire inspir du processeur sparc.
e
Les adresses et les donnes sont sur 32 bits. Le processeur comporte 31
e
registres (nots R1, . . ., R31) de 32 bits chacun et un registre spcial not R0
e
e
e
6. Exercices
379
assembleur
ADD S1, S2, Rd
SUB S1, S2, Rd
SUBR S1, S2, Rd
AND S1, S2, Rd
OR S1, S2, Rd
XOR S1, S2, Rd
LOAD Rx, S2, Rd
STORE Rx, S2, Rs
JMP COND, S2, Rx
JMPR COND, Y
LDHI Rd, Y
smantique
e
Rd S1 + S2
Rd S1 - S2
Rd S2 - S1
Rd S1 S2
Rd S1 S2
Rd S1 S2
Rd Mem[Rx+S2]
Mem[Rx+S2] Rs
PC Rx + S2 si COND
PC PC + Y si COND
Rd3113 Y, Rd120 0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
nom de linstruction
addition
soustraction
soustraction bis
conjonction
disjonction
ou exclusif
charg. dun registre
stockage en mmoire
e
branchement index
e
branchement relatif
charg. bit poids forts
380
18
12
14
I
S2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
(a)
30
25 23
0 code op C
Rd ou Rs
S1 ou Rx
=1 si code op
suivi de CC
25
30
0 code op
23
18
(b)
Rd pour LDHI
cond pour JMP relatif
(c)
30
25
0 code op
23
cond
18 14
Rx
0
4
S2
Fig. 14.18 Codage des instructions dun processeur inspir du sparc : a) inse
tructions ADD, ADDcc, SUB, SUBcc, SUBRm SUBRcc, AND, OR, XOR,
LOAD, STORE ; b) instructions LDHI et JMPR ; c) instruction JMP.
Cest une machine ` deux rfrences (Cf. Chapitre 12) ; nRd est le numro
a
ee
e
dun registre qui constitue le premier oprande. Les deux informations ModeAdr
e
et nRs dsignent le deuxi`me oprande, ModeAdr dcrivant le mode dadrese
e
e
e
sage de cet oprande et nRs le numro du registre concern. Le rsultat dune
e
e
e
e
opration binaire est stock dans le registre de numro nRd.
e
e
e
BusDon
Mem
R
I
R0
13
R
1
ext-sign
32
BusRes
Bus1
R
31
19
DEC
Bus2
ZNCV
COND
INCR
PC
Mem
BusAd
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
6. Exercices
381
382
Mem
BusAd
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Bus Source
ZNCV
Di
INCR
PC
Bus Rsultat
e
BusDon
Mem
RI
Les modes dadressage considrs sont : registre direct (not nRs), registre
ee
e
indirect (not nRs@), registre indirect avec prdcrmentation (not nRs@-), ree
e e e
e
gistre indirect avec postincrmentation (not nRs@+), immdiat (not #imm),
e
e
e
e
relatif et absolu. Les modes dadressage immdiat, relatif et absolu ncessitent
e
e
un mot dextension ; pour ladressage immdiat, il sagit dune valeur, pour
e
ladressage relatif dun dplacement par rapport ` la valeur courante du compe
a
teur de programme et pour ladressage absolu dune adresse. Pour une description de la smantique des modes dadressage, voir le chapitre 12.
e
Les instructions considres sont laddition (add), la soustraction (sub), le
ee
et logique (and), le chargement dune adresse (lea), le chargement dun registre
(load), le stockage dun registre en mmoire (store), le branchement (jmp) et
e
le branchement ` un sous-programme (bsr).
a
La table 14.21 donne un codage des instructions, le code opration tant
e
e
cod sur trois bits (nomms a, b, c), et un codage pour le mode dadressage
e
e
lui aussi sur trois bits (nomms d, e, f). Une croix dans une case indique que le
e
mode dadressage est autoris pour linstruction. Le tableau indique aussi les
e
instructions pour lesquelles il y a une mise ` jour du mot dtat (bits Z, N, C,
a
e
V). Voici quelques pistes ` explorer :
a
1. Etudier le droulement de linstruction add pour chacun des modes
e
dadressage. Constater les redondances et remarquer que linterprtation
e
peut tre faite en deux phases : tout dabord le calcul de ladresse du
e
deuxi`me oprande (sil sagit dune valeur, on la stockera dans D, et si
e
e
6. Exercices
383
000
nRs
X
X
X
X
X
X
X
X
101
110
#imm
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
MaJ
ZNCV
lea
jmp
jsr
store
add
sub
and
load
abc
000
001
010
011
100
101
110
111
X
X
X
X
111
abs
X
X
X
X
X
X
X
X
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
384
Le processeur : linterpr`te cbl du langage machine
e
a e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Cinqui`me partie
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Processeur/mmoire et entres/sorties
e
e
Le chapitre 15 montre comment connecter le processeur et de la mmoire
e
centrale (ou principale). Il sagit de mmoire ` semiconducteurs, ` acc`s
e
a
a
e
alatoire. Cette mmoire est organise en plusieurs composants dont cere
e
e
tains sont des mmoires mortes programmables (EEPROM) ; dautres sont
e
ncessairement des mmoires vives. Cette mmoire sert ` lutilisateur : le proe
e
e
a
gramme en cours dexcution et les donnes associes sont stocks en mmoire
e
e
e
e
e
vive. Les informations et le code ncessaire au dmarrage de lordinateur sont
e
e
stocks en mmoire morte.
e
e
Pour raliser des programmes dont la valeur ne se rduit pas ` une
e
e
a
constante, lensemble processeur/mmoire doit tre ouvert vers lextrieur.
e
e
e
Nous verrons dans le chapitre 16 que la communication avec le monde extrieur
e
comporte des aspects de cblage (connexion physique de priphriques
a
e
e
dentres/sorties) mais quil faut surtout grer des probl`mes de synchronie
e
e
sation (Cf. Chapitre 6). Nous reprendrons la description des entres/sorties
e
dans la partie VI et verrons des amliorations utilisant le mcanisme des ine
e
terruptions.
Les priphriques dentres/sorties sont tr`s divers. On peut distinguer deux
e
e
e
e
388
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
389
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
390
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 15
1.
Le bus mmoire
e
392
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
la mmoire. Ce bus est bidirectionnel (transfert dans les deux sens). Le bus
e
dadresse (unidirectionnel) est un ensemble de ls Am1 ` A0 en sortie du
a
processeur via lesquels ce dernier indique ` la mmoire le numro (ladresse)
a
e
e
du mot auquel il acc`de.
e
Dans lhypoth`se o` le temps de cycle de la mmoire est infrieur ou gal
e
u
e
e
e
au cycle dhorloge du processeur, les seuls signaux Acc`sMem et l/e susent
e
pour grer le protocole de communication. Nous nous limitons ` cette situation
e
a
dans ce chapitre pour nous concentrer sur les aspects connexion, organisation
en dirents bo
e
tiers et acc`s ` des sous-ensembles du mot mmoire.
e a
e
Notons toutefois que cette hypoth`se est assez rarement vrie. Le temps
e
e e
dacc`s peut dpendre de la zone mmoire ` laquelle on acc`de (ROM, RAM ou
e
e
e
a
e
entres/sorties). Les processeurs g`rent donc un protocole complet (inspir du
e
e
e
protocole poigne de mains dcrit dans le chapitre 6) et la dure dun acc`s peut
e
e
e
e
tre tendue dune ou plusieurs priodes dhorloge via un signal dacquittement
e e
e
pilot par la mmoire. Le nom du signal varie avec les familles de processeurs
e
e
(Data Transfert Ack pour le 68000, Memory Hold pour le sparc, Wait ou
ready pour dautres processeurs 8 ou 16 bits ...).
1.1
Connexion simple
Nous avons dit au chapitre 9 que la connexion des ls tait simple mais en
e
ralit il ne sut pas de relier directement les ls de mme nature.
e e
e
Les adresses et les donnes reprsentent un grand nombre de sorties du
e
e
processeur (64 pour un processeur ` 32 bits). La puissance dissipe totale
a
e
et le courant quest capable de dbiter un circuit intgr sont limits. Cela
e
e e
e
limite le courant pour chaque l de sortie. Chaque sortie ne peut donc piloter
quun nombre rduit dentres, alors quelle peut tre connecte ` de nombreux
e
e
e
e a
bo
tiers de mmoire, do` la ncessit dune amplication externe.
e
u
e
e
Lamplication des signaux unidirectionnels tels que les adresses ne pose
pas de probl`me particulier : la sortie des amplicateurs externes peut rester
e
active en permanence.
Le bus de donnes, bidirectionnel, implique au contraire le recours ` des
e
a
amplicateurs ` sorties 3 tats monts tte-bche. Lors dune lecture, la coma
e
e e
e
mande 3 tats dans le sens mmoire/processeur doit tre active et celle dans le
e
e
e
e
sens processeur/mmoire doit tre au contraire inhibe ; et rciproquement lors
e
e
e
e
dune criture. Il sut donc de commander la validation des sorties processeur
e
e
et mmoire respectivement par le signal l/e et son complment.
e
La gure 15.1 illustre ces connexions ; seul 1 l de la nappe des ls du bus
donnes (respectivement bus adresses) est reprsent, ` savoir Di (respectivee
e
e a
ment Aj).
Sur la gure, on voit un signal supplmentaire DeconnexionProcesseur dont
e
nous parlons au paragraphe 1.3.
393
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1. Le bus mmoire
e
Donne(no i)
e
Di
l/e
l/e
AccesMem
Slection bo
e
tier
Adresse (no j)
Aj
MEMOIRE
PROCESSEUR
DconnexionProcesseur
e
l/e
AutD
Donne (no i)
e
Ai/Di
D Q
En
AutAd
AccesMem
PROCESSEUR
Adresse (no i)
Slection bo
e
tier
MEMOIRE
DconnexionProcesseur
e
394
Ad
Don
Ad Don
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ad/Don
AutAd
AutD
l/e
T1
T2
Fig. 15.3 Chronogrammes dcrivant lacc`s ` la mmoire dans le cas dun bus multie
e a
e
plex : lintervalle T1 correspond ` une lecture mmoire et lintervalle T2 `
e
a
e
a
une criture mmoire.
e
e
1.2
1.3
395
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
2.1
Le probl`me peut se poser dans les termes suivants : comment former une
e
mmoire de 2m mots avec 2k bo
e
tiers mmoires (numrots de 0 ` 2k 1), de
e
e e
a
mk
2
mots chacune ? Chacun de ces bo
tiers a ses m k bits dadresse et son
propre signal de slection.
e
A
m
A k
bo
tier 0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a = b 2mk + l
396
bo
tier 1
2mk
mk
Slection
e
du bo
tier
bo
tier b
Dcodeur
e
externe
2m 1
bo
tier 2k 1
(a)
Acc`sMem
e
B
n
Donnes
e
(b)
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
397
2.3
Supports de bo
tiers multitaille et
extension mmoire
e
398
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
bo
tiers disponibles sur le march au moment de la conception que les futurs
e
bo
tiers de capacit double ou quadruple (et plus) que lutilisateur pourra se
e
procurer ultrieurement.
e
Soit 2k le nombre de connecteurs. Soit 2p la taille de la plus petite barette
supporte et 2g celle de la plus grande. La technique consiste ` dcoder les
e
a e
signaux Ap ` Ap+k1 pour gnrer les signaux de slection de bo
a
e e
e
tiers. Les
autres signaux A0 ` Ap1 et Ap+k ` Ag1 sont disponibles sur les connecteurs
a
a
et relis aux entres de slection de mots des bo
e
e
e
tiers.
2.4
399
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
400
O2
O3
O1
O0
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
bus adresses
22
D31
D24
D23
D16
D15
D8
D7
D0
32
bus donnes
e
Si lon veut accder ` des donnes de taille suprieure ` celle du bus donnes,
e
a
e
e
a
e
il faut raliser plusieurs acc`s mmoire, le programmeur organisant lui-mme
e
e
e
e
le stockage de ces donnes en mmoire.
e
e
3.1
Organisation matrielle
e
Nous disposons de 4 bo
tiers mmoire de 1Mo (1 Mega-octets), cest-`-dire
e
a
20
20
10
10
6
de 2 octets. En eet, 2 = 2 2 = 1024 1024 10 .
Pour pouvoir accder ` un mot mmoire de 32 bits en 1 cycle, on prend
e
a
e
chacun des 4 octets dans un des bo
tiers. La gure 15.5 donne une premi`re
e
ide de cette organisation.
e
Puisquil ne peut y avoir quune adresse ` la fois sur le bus adresses, les
a
quatre octets auxquels le processeur acc`de sont ` la mme adresse, chacun
e
a
e
dans son bo
tier. En consquence ladresse dun mot de 32 bits doit tre un
e
e
multiple de 4. Supposons, en eet, que lon veuille accder ` 4 octets conscutifs
e
a
e
a
` partir dun octet du bo
tier O2 ; il faudrait prendre les 3 premiers octets
respectivement dans O2, O1 et O0 et le quatri`me dans O3, mais ` ladresse
e
a
suivante do` une adresse dirente pour ce dernier octet . . .
u
e
Nous utilisons les 2 bits de poids faibles de ladresse mise par le processeur
e
pour distinguer les bo
tiers.
Remarque : Lassociation entre les mmoires et les octets du bus dpend de
e
e
la convention utilise : gros ou petit boutiste (Cf. Chapitre 4). Nous supposons
e
ici que la convention est gros-boutiste.
401
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.1.2
Le dcodeur dadresses
e
402
AccesMem
A1
A0
DECODEUR DADRESSES
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
PROCESSEUR
taille
A21 ... A2
SelO3 SelO2
SelO1 SelO0
erreur
l/e
SelO3
SelO2
SelO1
SelO0
Fig. 15.6 Dcodage dadresse dans le cas dacc`s ` des sous-ensembles du mot mmoire
e
e a
e
interne de chaque bo
tier reoit ladresse sur 20 bits de loctet auquel le proc
cesseur acc`de.
e
La gure 15.6 dcrit cette organisation. Le tableau 15.7 donne la table de
e
vrit de la fonction de dcodage dadresses. Notons la prsence dun signal
e e
e
e
erreur mis par le dcodeur ; ce signal correspond ` une demande dacc`s ` une
e
e
a
e a
adresse invalide, il pourra tre associ ` une interruption (Cf. Chapitre 22).
e
ea
Les exercices E15.4 et E15.5 poursuivent cette tude de cas.
e
Nous avons dit que la taille de la mmoire peut varier dans la vie dun
e
ordinateur, les constructeurs prvoyant en eet la possibilit de rajouter des
e
e
bo
tiers mmoire. Le dcodeur dadresses doit avoir t prvu pour ce faire et
e
e
ee e
cest lors de linitialisation de lordinateur quun programme dtecte la quantit
e
e
de mmoire rellement prsente.
e
e
e
3.2
A0
0
1
0
1
0
1
0
1
0
1
0
1
taille
octet
octet
octet
octet
16 bits
16 bits
16 bits
16 bits
32 bits
32 bits
32 bits
32 bits
SelO3
1
0
0
0
1
0
0
0
1
0
0
0
SelO2
0
1
0
0
1
0
0
0
1
0
0
0
SelO1
0
0
1
0
0
0
1
0
1
0
0
0
SelO0
0
0
0
1
0
0
1
0
1
0
0
0
erreur
0
0
0
0
0
1
0
1
0
1
1
1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
A1
0
0
1
1
0
0
1
1
0
0
1
1
403
mmoire note 2X stocke les octets dadresses paires (adresse = Am1 , ..., A1 , 0)
e
e
et la mmoire note 2X + 1 stocke les octets dadresses impaires (adresse =
e
e
Am1 , ..., A1 , 1).
La mmoire 2X est connecte ` loctet de poids fort du bus donnes
e
e a
e
(D15 , ..., D8 ) et la mmoire 2X + 1 est connecte ` loctet de poids faible du
e
e a
bus donnes (D7 , ..., D0 ).
e
Le processeur indique au dispositif de dcodage dadresses la taille de line
formation a laquelle il acc`de (octet ou mot de 16 bits) et le bit de poids faible
`
e
dadresse (A0 ) indique sil sagit dune adresse paire ou impaire.
Le dcodeur dadresses produit les signaux de slection des bo
e
e
tiers
mmoire : Sel2X et Sel2X+1.
e
Lorsquun acc`s ` un mot de 16 bits avec une adresse paire est demand,
e a
e
il ny a aucun probl`me : un octet de chacun des bo
e
tiers tant envoy (ou
e
e
rcupr) sur le bus donnes.
e
ee
e
Lorsque le processeur veut crire un octet en mmoire le probl`me est
e
e
e
simple. Le programmeur sait ` quelle adresse il crit et est responsable de
a
e
lorganisation de ses donnes en mmoire. Il lui sut donc de prciser la taille
e
e
e
de la donne ` crire. En gnral des instructions sont prvues pour cela dans
e ae
e e
e
les processeurs ; par exemple, dans le sparc (Cf. Chapitre 12, gure 12.3),
lcriture de 32 bits dans la mmoire est ralise par linstruction ST et lcriture
e
e
e e
e
dun octet par une instruction dirente (STB, store byte).
e
En revanche, pour transfrer un octet de mmoire vers un registre R (lecture
e
e
dun octet en mmoire), il faut savoir quelle partie du registre est aecte et
e
e
que vaut le reste du registre. Le probl`me est ainsi de slectionner la bonne
e
e
partie du bus donnes.
e
Pour traiter ce probl`me, un circuit C est ajout au processeur : la e
e
gure 15.9 montre sa position et la table 15.10 dcrit la fonction quil ralise.
e
e
Les octets tant cadrs dans les poids faibles du registre R, si un octet de
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
404
PROCESSEUR
erreur
Sel2X+1
Sel2X
2X
Am1 ... A1
2X+1
2m1 1
D15...8
2m1 1
D7...0
l/e
2X
Bus Donnes
e
2X+1
D15
D8
D7
D0
16
PROCESSEUR
Registre instruction
un registre
Fig. 15.9 Recadrage des donnes lors de lecture de sous-multiples du mot mmoire
e
e
Type Acc`s
e
16
16
8
8
8
8
Adresse
paire
impaire
paire
impaire
paire
impaire
Type Instruction
non sign
e
non sign
e
sign
e
sign
e
R15 ... R8
D15 ... D8
0 ... 0
0 ... 0
D15 ... D15
D7 ... D7
R7 ... R0
D7 ... D0
D15 ... D8
D7 ... D0
D15 ... D8
D7 ... D0
Fig. 15.10 Cadrage des donnes dans un registre lors dune opration de lecture
e
e
mmoire
e
4. Exercices
405
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
Exercices
406
ROMs
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
0
1M
2M
3M
4M
RAMs
8M
RAMu
12M
RAMu
16M
Le processeur a des donnes sur 32 bits et des adresses sur 32 bits. Il met
e
e
e
les signaux : Acc`sMem, l/e, et le type dacc`s (octet, 16 bits ou 32 bits).
e
De plus, il envoie un signal s/u indiquant sil est en mode superviseur ou
utilisateur. Nous verrons au chapitre 22 que le processeur poss`de dirents
e
e
modes dexcution mais pour linstant on se contentera dmettre une erreur
e
e
dacc`s mmoire dans le cas o` un acc`s ` une zone superviseur est demande
e
e
u
e a
e
alors que le processeur nest pas en mode superviseur.
Faire un schma prcis de lorganisation de cette mmoire et dcrire le
e
e
e
e
dcodeur dadresses. La fonction de dcodage dadresses doit calculer les sie
e
gnaux dacc`s ` chacun des bo
e a
tiers utiliss et le signal derreur dacc`s
e
e
mmoire.
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 16
Circuits dentres/sorties
e
1.
Notion dentres/sorties
e
Pour xer les ides, considrons une conguration simple avec deux ore
e
ganes priphriques : un clavier pour les entres et un acheur sept segments
e
e
e
(Cf. Exemple E8.2) pour les sorties (Cf. Figure 16.1).
408
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
PROCESSEUR/MEMOIRE
transcodeur
transcodeur
.....
ENTREE
SORTIE
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
409
2.1
410
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
Une entre (ou une sortie) met en jeu deux entits : un metteur et un
e
e
e
rcepteur. Dans le cas dune entre lmetteur est le priphrique et le rcepteur
e
e e
e
e
e
est le processeur. Dans le cas dune sortie cest linverse. Il faut mettre en
oeuvre un protocole dchange qui permette au rcepteur de dtecter larrive
e
e
e
e
des informations ` consommer et assurer un contrle de ux, autrement dit
a
o
viter que lmetteur ne soumette des informations plus vite que le rcepteur ne
e
e
e
peut les traiter ou que le rcepteur ne traite plusieurs fois la mme information.
e
e
Par exemple, considrons la sortie de caract`res sur une imprimante ; le
e
e
protocole dchange doit assurer que le processeur nmettra pas un nouveau
e
e
caract`re si le prcdent na pas encore t imprim et que limprimante nime
e e
ee
e
prime pas plusieurs fois le mme caract`re.
e
e
Dans le cas gnral, lchange entre un processeur et un priphrique peut
e e
e
e
e
tre rgi par le protocole de dialogue dit poigne de mains prsent au chae
e
e
e
e
pitre 6.
La mise en oeuvre de ce protocole rclame la gestion de signaux de synchroe
nisation disant si linformation ` changer est parvenue ou non au rcepteur
ae
e
et si le rcepteur a trait ou non linformation quil a reue.
e
e
c
Dans un programme dentre ou de sortie la valeur de ces signaux de syne
chronisation est teste et tant que le signal attendu na pas la bonne valeur il
e
faut le tester ` nouveau jusqu` ce quil devienne correct. On parle dattente
a
a
active car le processeur qui excute ce test ne peut rien faire dautre pendant
e
ce temps-l`, il est mobilis pendant toute la dure du transfert.
a
e
e
Nous verrons au chapitre 24, paragraphe 3. que dautres solutions (utilisant
la notion dinterruption) plus ecaces et plus ralistes sont en fait mises en
e
oeuvre dans les syst`mes multitches.
e
a
3.
3.1
Notion de coupleur
411
l/e
Dcodage
e
dadresses
slection de dirents
e
e
bo
tiers mmoire
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Acc`sMem
e
Slection Coupleur
e
Coupleur
Processeur
bus adresses
Priphrique
e
e
bus donnes
e
ls spcialiss
e
e
emplacements mmoire
e
dits registres du coupleur
3.2
Pour dcrire les connexions physiques des ls, nous commenons par rape
c
peler comment une cellule mmoire est connecte au bus donnes. Nous
e
e
e
412
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
e
considrons une cellule de 1 bit (reprsent par un verrou) connecte au i`me l
e
e
e
e
du bus de donnes Di. Le schma 16.3 montre la structure du circuit dchange
e
e
e
dinformation entre ce bit et le processeur. Acc`sMem et l/e sont les signaux
e
de slection et de lecture/criture de la mmoire.
e
e
e
Nous voulons maintenant faire communiquer lensemble processeur/mmoire avec le monde extrieur. Considrons, par exemple, un
e
e
e
monde extrieur tr`s simple dans lequel le processeur doit pouvoir envoyer
e
e
(crire) une valeur sur des lampes, ou bien rcuprer (lire) une valeur sur des
e
e
e
interrupteurs.
Reprenons le schma 16.3 et supprimons la connexion entre la sortie Q du
e
verrou et la porte 3 tats donnant lacc`s au l Di du bus donnes. Le montage
e
e
e
(Cf. Figure 16.4) cre un port dentre et un port de sortie relis sur lexemple
e
e
e
respectivement ` un interrupteur et une lampe.
a
Le montage dcrit permet la cration dune entre lmentaire et dune
e
e
e ee
sortie lmentaire. Le port dentre et celui de sortie peuvent occuper la mme
ee
e
e
adresse, comme ici, ou des adresses direntes.
e
Lcriture sur un port de sortie ou la lecture sur un port dentre mettent en
e
e
jeu un mcanisme de slection dadresse analogue ` celui que nous avons dcrit
e
e
a
e
au chapitre 15. Pour une criture (respectivement une lecture) sur un port de
e
sortie (respectivement dentre), le dcodeur dadresses reoit une demande
e
e
c
dacc`s ` la mmoire (Acc`sMem=1) accompagne dune adresse correspondant
e a
e
e
e
a
` lun des circuits consacrs aux entres/sorties. Il active alors le signal de
e
e
slection de ce circuit : SelCoupleur.
e
Le coupleur doit lui-mme comporter un dcodeur dadresses. Il fabrique les
e
e
signaux de commande de chargement des bascules associes aux ports de sortie
e
et les signaux de commande des portes 3 tats associes aux ports dentre, `
e
e
e a
e
partir de SelCoupleur, du signal l/e mis par le processeur et de ladresse. Sur
la gure 16.4, une seule cellule mmoire est reprsente ; nous navons donc pas
e
e
e
tenu compte de ladresse. La gure 16.5 dcrit lorganisation dun coupleur `
e
a
deux ports dentre et deux ports de sortie. Nous pouvons y observer la place
e
des dcodeurs.
e
Dans la suite de ce chapitre, nous ne reprsenterons plus les dirents
e
e
dcodeurs mais dessinerons le processeur, le dcodeur dadresses et le dcodeur
e
e
e
du coupleur comme un ensemble.
4.
4.1
Interface simplie
e
413
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
amplicateur
3 tats
e
Di
1 bit de
bus donnes
e
D Q
En
Acc`sMem
e
l/e
Fig. 16.3 Echange entre le processeur et la mmoire sur un bit : lorsque le signal
e
e
e
Acc`sMem vaut 1 et le signal l/e vaut 0 la bascule mmorise la valeur prsente
e
sur le bus et lorsque Acc`sMem et l/e valent tous deux 1 la valeur mmorise
e
e
e
dans la bascule est prsente sur le bus.
e
+5V
interrupteur
Di
D Q
En
Ecr
Lec
SelCoupleur
l/e
lampe
Fig. 16.4 Echange entre le processeur et lextrieur sur un bit : le signal lectrique
e
e
command par linterrupteur appara sur le l Di du bus donnes lors dun
e
t
e
cycle de lecture (SelCoupleur=1 et l/e=1). Si linterrupteur est ferm le
e
processeur lira un 0, sil est ouvert il lira un 1. Par ailleurs la valeur mise
e
sur le l Di par le processeur lors dune criture (SelCoupleur=1 et l/e=0)
e
est mmorise par le verrou ; si cette valeur est 1 alors la lampe sallume, si
e
e
cest 0 la lampe steint.
e
Circuits dentres/sorties
e
D Q
En
PROCESSEUR
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
...
...
Di
Bus donnes
e
D Q
En
EcrS1
EcrS0
LecE1
LecE0
A0
MONDE EXTERIEUR
414
Dcodeur du coupleur
e
Bus adresses
Dcodeur
e
dadresses
SelCoupleur
slection de dirents
e
e
...
bo
tiers mmoire
e
Acc`sMem
e
l/e
Fig. 16.5 Coupleur ` deux ports dentres et deux ports de sortie : le dcodeur
a
e
e
dadresses active le signal SelCoupleur lorsquil reconna ladresse qui lui
t
est fournie comme une adresse du circuit dentres/sorties. En supposant
e
que le bit dadresse A0 permet de faire la distinction entre les deux mots
du coupleur, le dcodeur du coupleur fabrique les signaux de commande des
e
2 ports de sortie EcrS0 et EcrS1 et des 2 ports dentre LecE0 et LecE1, `
e
a
partie des signaux SelCoupleur, l/e et A0.
un boolen processeur prt qui signie quun nouveau caract`re est dispoe
e
e
nible et doit tre imprim,
e
e
un boolen imprimante prte, qui signie que limprimante est prte ` traiter
e
e
e a
un caract`re. Apr`s une impression il signie que le caract`re prcdent a
e
e
e
e e
t imprim.
ee
e
Le coupleur est compos dun registre de donnes RegD et dun registre de
e
e
commande RegC auxquels on acc`de en criture, et dun registre dtat RegE
e
e
e
auquel on acc`de en lecture. Vus du processeur RegD est ` ladresse RD et
e
a
contient la donne, RegC est ` ladresse RC et contient un seul bit signicatif :
e
a
processeur prt ; RegE est ` ladresse RE et contient un seul bit signicatif
e
a
imprimante prte.
e
Posons comme convention que le signal processeur prt est actif lorque le
e
registre RegC vaut 1 et que le signal imprimante prte est actif lorsque le signal
e
RegE vaut 1.
La gure 16.6 dcrit cette organisation matrielle et la gure 16.7 donne les
e
e
programmes dinitialisation du coupleur et dimpression dun caract`re stock
e
e
a
` ladresse car. Ils sont crits en langage dassemblage 68000 (Cf. Chapitre 12
e
pour un exemple de syntaxe de ce langage dassemblage). Lexcution de ces
e
415
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.2
Gestion derreur
4.3
Interface optimise
e
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
416
Processeur
et
dcodage
e
bus donnes
e
D7
RegD
D0
ECRS0
criture donne
e
e
Imprimante
RegC
processeur
prt
e
e
ECRS1 criture commande
RegE
LECE1
imprimante
prte
e
lecture tat
e
Rcepteur
e
Emetteur
bus donnes
e
D7
D1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Processeur
et
dcodage
e
417
RegD
D0
e
e
ECRS0 criture donne
Imprimante
RegC
e
ECRS1 criture commande
processeur
prt
e
RegE
imprimante
prte
e
erreur papier
LECE1
lecture tat
e
418
Circuits dentres/sorties
e
e
Processeur bus donnes RegD
et
dcodage
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Imprimante
e
e
ECRS0 criture donne
processeur prt
e
RegE transfert
possible
LECE1
imprimante prte
e
lecture tat
e
caract`re ait t rcupr par limprimante, ce qui est dtectable par le fait que
e
ee e
ee
e
processeur prt soit inactif. Si cette nouvelle double condition (transfert possible
e
sur la gure 16.10) est teste ` la place de la simple condition imprimante prte,
e a
e
la boucle dattente qui suit lmission dun caract`re peut tre supprime.
e
e
e
e
Le processeur na plus alors qu` tester transfert possible et crire le caa
e
ract`re ` transfrer dans le registre de donnes. Le signal processeur prt est
e a
e
e
e
automatiquement mis ` jour par la bascule. La prsence de la bascule RS
a
e
remplace les acc`s au registre de commande.
e
La gure 16.10 dcrit le matriel ncessaire ` cette nouvelle interface et
e
e
e
a
le programme dimpression dun caract`re sur limprimante dans ce nouveau
e
contexte est dcrit dans la gure 16.11 .
e
Remarque : Nous verrons, au paragraphe 6. de ce chapitre et au paragraphe 3. du chapitre 24, deux mthodes pour liminer lattente active sur
e
e
att-pret excute par le processeur.
e e
5.
5.1
Interface simplie
e
419
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
TRANSFERT-POSSIBLE = 1
.data
car :
.ascii A
.text
ImpCar :
att-pret :move.b RE, D1
andi.b TRANSFERT-POSSIBLE, D1
beq att-pret
move.b car, RD
! la bascule RS passe a 1, limprimante sait quelle
! doit prendre un caractere
rts
Fig. 16.11 Programme de sortie optimis
e
est prt ` traiter un caract`re. Apr`s une lecture antrieure cela signie que le
e a
e
e
e
caract`re prcdemment envoy a t rcupr.
e
e e
e ee e
ee
Les gures 16.12 et 16.13 dcrivent respectivement lorganisation matrielle
e
e
et les programmes dinitialisation du coupleur et de lecture dun caract`re.
e
5.2
Interface optimise
e
6.
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
420
Processeur
et
dcodage
e
LECE0
bus donnes
e
RegD
lecture donne
e
Clavier
RegC
e
ECRS1 criture commande
RegE
LECE1
processeur
prt
e
clavier prt
e
lecture tat
e
Emetteur
Rcepteur
e
Fig. 16.12 Exemple de coupleur de clavier. Lmetteur est le clavier, le rcepteur est
e
e
constitu du processeur, du coupleur et des dcodeurs. Cette organisation
e
e
ncessite 2 ports dentres (E0 pour la donne, E1 pour ltat) et un port
e
e
e
e
de sortie pour la commande (S1).
CLAVIER-PRET = 1
PROC-PRET = 1
NON-PROC-PRET = 0
.data
! un octet initialis ` 0 pour stocker le caract`re lu
e a
e
car :
.byte 0
.text
Init :
! le processeur est pr^t ` recevoir
e a
moveq PROC-PRET, RC
LireCar :
att-clavier :ove.b RE, D1 ! attendre priphrique pr^t
m
e
e
e
andi.b CLAVIER-PRET, D1
beq att-clavier
! le clavier na rien envoy
e
! le priphrique est pr^t : rcuprer le caract`re
e
e
e
e
e
e
move.b RD, car
moveq NON-PROC-PRET, RC
att-traite :move.b RE, D1 ! attendre le traitement
andi.b CLAVIER-PRET, D1
bne att-traite
! le caractere a t lu
e e
moveq PROC-PRET, RC
rts
Fig. 16.13 Programme dentre simple
e
421
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Processeur
et
dcodage
e
bus donnes
e
RegD
lecture donne
e
ECRS0
Clavier
R processeur prt
e
S
clavier prt
e
RegE
LECE1
transfert
possible
lecture tat
e
TRANSFERT-POSSIBLE = 1
.data
car :
.byte 0
.text
LireCar :
att-clavier :ove.b RE, D1
m
andi.b TRANSFERT-POSSIBLE, D1
beq att-clavier
move.b RD, car
rts
Fig. 16.15 Programme dentre optimis
e
e
422
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
6.1
423
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
CDMA
requte transfert
e
COUPLEUR
transfert possible
autorisation requte dma
e
acq transfert
ECRS0
adresse
taille
criture donne
e
e
RegD
slection
e
coupleur
lib`re bus
e
demande bus
slection
e
CDMA
Dcodeur dadresse
e
Adresses
PROCESSEUR
Donnes
e
slection
e
mmoire
e
MEMOIRE
Fig. 16.16 Acc`s ` la mmoire avec DMA : on observe les 5 composants : processeur,
e a
e
contrleur de DMA, coupleur, mmoire et dispositif de dcodage dadresse
o
e
e
qui slectionne les bo
e
tiers. Le CDMA comporte des registres dcrivant la
e
zone de mmoire ` transfrer (adresse et taille) et un registre index (i). Via
e
a
e
deux amplicateurs 3 tats, le bus dadresses est pilot soit par le processeur,
e
e
soit par le CDMA. Le bus dadresses est une entre pour le CDMA, le
e
coupleur et la mmoire : il sert ` slectionner le registre du CDMA ou du
e
a e
coupleur ou le mot mmoire lors dun acc`s initi par le processeur. Le bus
e
e
e
dadresses est une sortie pour les deux ma
tres : le processeur et le CDMA ;
il sert alors ` slectionner le registre du coupleur ou le mot mmoire.
a e
e
424
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
6.2
La politique de partage des bus mmoire peut tre plus ou moins sophise
e
tique. Elle peut tre rudimentaire et pr-tablie (par exemple acc`s par le
e
e
ee
e
processeur durant la demi-priode haute dune horloge, et par le CDMA pene
dant lautre demi-priode). Elle peut tre cone ` un ma privilgi (tel
e
e
e a
tre
e e
que le processeur), qui dcide seul des instants auxquels il va cder les bus.
e
e
7. Exercices
425
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
6.3
7.
Exercices
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
426
Circuits dentres/sorties
e
Ar
chi
P.
tec
Am tur
F.
bla es L
P. Lagn rd,
ogi
Sic ier J.- cie
ard , F C.
l les
, P . M Fer
et
ara na
h.
Ma
Wa ni nde
e
nch z, trie
il le
l l es
i,
Chapitre 17
Pilotes de priphriques
e
e
428
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
1.1
1.2
Les adresses des routines des pilotes sont regroupes dans une table de
e
branchement ` deux dimensions, indice dune part par le type de priphrique
a
e
e
e
et dautre part par la fonction demande.
e
Il peut exister plusieurs exemplaires dun mme type de priphrique,
e
e
e
reprs par un numro dexemplaire et grs par le mme pilote. Dans ce cas
ee
e
ee
e
la structure de donnes du pilote devient un tableau ` autant dentres que
e
a
e
dunits connectables ` lordinateur.
e
a
Chaque priphrique peut, par exemple, tre identi par son numro de
e
e
e
e
e
type et son numro dexemplaire, appels numros de priphriques respectivee
e
e
e
e
ment majeur et mineur dans la terminologie du syst`me unix. Les exemplaires
e
de disques de mme type peuvent par exemple direr par leur taille (2,4 ou
e
e
9 Go). Des priphriques de mme nature peuvent avoir des caractristiques
e
e
e
e
susamment direntes pour tre considrs comme des types dirents et
e
e
ee
e
429
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
grs par des pilotes distincts. On pourra par exemple trouver un pilote de
ee
disques ` la norme de raccordement ide et un pilote de disques de type scsi.
a
2.
2.1
2.1.1
Vision interne
En pratique, les claviers sont organiss sous forme matricielle pour obtee
nir une ralisation plus conomique et plus compacte (moins de ls). Chaque
e
e
430
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
2.2.1
431
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Probl`mes dchantillonnage
e
e
432
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2.4
433
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
{ Donnes du pilote }
e
ModeLigne : un boolen
e
ModeEcho : un boolen
e
MaxLigne : un entier > 0
Ligne : un tableau sur 0..MaxLigne 1 de caract`res { le tampon }
e
tailleligne : un entier 0
DebLigne : un entier sur 0..MaxLigne 1 { pointeur }
2.3
3.
3.1
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
434
435
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
436
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
3.2.1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2.2
437
438
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.3
Une piste a un dbut. Le rayon marquant le dbut dune piste est repr
e
e
ee
par un index. Dans le cas des disquettes, cet index est un simple trou dans le
support, dtect par une fourche optolectronique.
e
e
e
Le contenu dune piste est une suite dautant denregistrements que de
secteurs. Chaque enregistrement se compose dune en-tte et dun bloc de
e
donnes (le contenu du secteur). Lors dune criture, seul le bloc de donnes
e
e
e
est crit sur le disque, len-tte tant utilise pour reprer le dbut du secteur.
e
e e
e
e
e
Lcriture des en-ttes est eectue une fois pour toutes lors dune opration
e
e
e
e
dinitialisation appele formatage physique du disque.
e
Une en-tte contiendra vraisemblablement le numro de piste et le numro
e
e
e
de secteur dans la piste. On pourrait en principe se contenter dune simple
marque de dbut denregistrement. La piste peut tre connue en comptant les
e
e
dplacements de la tte depuis la piste 0, mais le mcanisme qui dplace la tte
e
e
e
e
e
doit tre parfaitement prcis et able. De mme, le numro de secteur pourrait
e
e
e
e
tre dtermin en comptant les dbuts denregistrement depuis le dbut de
e
e
e
e
e
piste.
3.3.2
Les informations stockes sont munies doctets dits de CRC qui permettent
e
de dtecter dventuelles erreurs de recopie des donnes. Cette technique de
e
e
e
dtection derreur, qui ne permet pas de les corriger, est appele contrle de
e
e
o
redondance cyclique.
Les intervalles avant et apr`s les donnes sont remplis par des motifs bie
e
naires prdnis tels quune suite de bits ` 1 (sur laquelle lenregistrement
e e
a
prcdent peut dborder lg`rement) suivie dune squence plus courte de bits
e e
e
e e
e
a
` 0 qui permet de dtecter la n de lintervalle.
e
439
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
La valeur de CRC est calcule ` partir de celle des donnes transfres. Elle
e a
e
ee
est ajoute aux donnes lors de lcriture et, lors dune lecture, compare aux
e
e
e
e
octets de CRC prsents sur le disque. Toute dirence indique bien entendu
e
e
une erreur.
3.4
3.4.1
440
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.5
Les coupleurs ont volu avec les gnrations de circuits et intgr une part
e
e
e e
e e
croissante de la gestion des disques. Les coupleurs rudimentaires sont devenus
des contrleurs de disques qui dchargent le processeur de lessentiel du travail
o
e
(formatage physique des disques, srialisation des octets de donnes, calcul de
e
e
CRC et acc`s aux pistes et aux secteurs). Ce sont des circuits complexes dont
e
la documentation technique est souvent aussi volumineuse (plusieurs dizaines
de pages) que celle des processeurs qui les utilisent.
Il est donc hors de question de prsenter ici un contrleur de disque : la
e
o
description de la norme de raccordement scsi peut occuper ` elle seule un livre
a
entier.
Nous nous contenterons donc de donner les grandes lignes de lalgorithme
de lecture et dcriture dun secteur, sans prciser la rpartition des rles entre
e
e
e
o
le logiciel du pilote et le matriel du contrleur.
e
o
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.5.1
441
442
Pilotes de priphriques
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Dautre part les fonctions de contrle du pilote pourraient tre les suio
e
vantes : acc`s aux param`tres : taille dun secteur, du disque, nombre de
e
e
secteurs par bloc ; formatage physique du disque ; etc. Certaines fonctions
sont spciques des units ` support amovible : marche/arrt rotation, chargee
e a
e
ment/dchargement des ttes, dtection de protection contre lcriture, jection
e
e
e
e
e
du mdia (disquette, CDROM).
e
4.
443
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
0x00
0x3E
0x20
0x20
0x3C
0x20
0x20
0x3E
0x00
laquelle le processeur donne des ordres tr`s lmentaires, tels que : dplacer la
e ee
e
tte de limprimante dun dixi`me de millim`tre ` droite, et dautres disposant
e
e
e a
en interne de vritables petits ordinateurs de gestion capable dinterprter des
e
e
requtes de niveau smantique lev, telles que : tracer un cercle et peindre
e
e
e e
lintrieur en jaune. On parle dans ce dernier cas de priphriques intelligents.
e
e
e
Au coeur de nombreux priphriques on rencontre une puce lectronique
e
e
e
intgrant tous les ingrdients (processeur, mmoire vive et mmoire morte)
e
e
e
e
dun petit ordinateur. Lventail de priphriques concerns est tr`s large, des
e
e
e
e
e
syst`mes de disques jusquaux ensembles clavier/souris.
e
4.1
444
Pilotes de priphriques
e
e
Priphriques
e
e
caract`re
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ecran
cathodique
Mmoire dcran
e
e
Entres/Sorties
e
Mmoire principale
e
Bus Mmoire
e
DMA de
Rafra
chissement
Acclrateur
ee
graphique
Processeur
Pour un achage plus performant, les primitives grahiques les plus courantes (dont le trac de segments de droites et de gures gomtriques) peuvent
e
e e
tre cbles (Cf. Chapitre 11) et dlgues ` un circuit acclrateur. Le bus peut
e
a e
ee e a
ee
galement tre scind en deux parties (csure en pointill) par des connexions
e
e
e
e
e
de type trois tats, pour autoriser des acc`s simultans de lacclrateur grae
e
e
ee
phique ` la mmoire dcran et du processeur ` la mmoire principale ou aux
a
e
e
a
e
autres entres/sorties.
e
Le processeur principal qui gn`re linformation ` acher peut donc adrese e
a
ser de la mme mani`re la mmoire dcran et la mmoire principale.
e
e
e
e
e
A loppos, lensemble de la gure 17.6 peut constituer un terminal grae
phique intelligent. Le dialogue avec le terminal sera en ralit un change
e e
e
entre deux ordinateurs : le syst`me informatique central qui dcide dacher
e
e
quelque chose et lordinateur interne ddi du terminal. Ces deux ordinateurs
e e
se consid`reront lun lautre comme des priphriques ordinaires de sortie et
e
e
e
dentre, transfrant des caract`res.
e
e
e
Le processeur du terminal excute une boucle innie consistant ` attendre
e
a
un ordre dachage venant de lordinateur principal et ` eectuer ensuite
a
lopration correspondante : dessiner un rectangle, allumer tel pixel, eae
cer tout lcran, etc. Le processeur principal se contente alors denvoyer les
e
quelques octets reprsentant lordre graphique correspondant.
e
La syntaxe de commande des priphriques de sortie graphique peut tre
e
e
e
tr`s labore : la complexit et la puissance dexpression du langage poste e
e
e
script, reconnu par de nombreuses imprimantes, sont celles des langages de
programmation.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 18
446
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
Interprtation et compilation
e
1.1
Le langage nore que le type entier relatif, dune seule taille. Il y a trois
noms de variables prdnis : "X", "Y" et "Z", et aucun moyen den dclarer
e e
e
de nouvelles. La porte et la dure de vie de ces 3 variables sont globales (le
e
e
langage na pas de structure de blocs). On dispose de trois oprations binaires
e
notes "+", "*" et "" avec le sens usuel. On peut utiliser dans les oprations
e
e
des constantes enti`res positives.
e
Comme actions lmentaires, le langage dispose de primitives
ee
dentre/sortie ` un seul param`tre, et de laectation. Les composie
a
e
tions dactions sont la squence, la boucle while et la structure conditionnelle
e
if-then-else. Les conditions boolennes du while sont toujours de la forme
e
variable = 0. Celles du if sont de la forme variable > 0. Les boucles ne sont
pas imbriques, les structures conditionnelles non plus. En revanche on peut
e
trouver une boucle dans une structure conditionnelle ou vice-versa.
La squence dactions est implicite : chaque action occupe une ligne. On
e
a droit ` des lignes de commentaires, dont le premier mot est rem. Les
a
entres/sorties se notent : Read ... et Write ..., o` les pointills doivent
e
u
e
tre remplacs par le nom dune des variables prdnies. La structure while
e
e
e e
comporte un marqueur de n : le mot-cl endwhile tout seul sur sa ligne. De
e
mme la structure conditionnelle comporte une ligne endif (voir lexemple de
e
la gure 18.1 pour la notation des conditions. Laectation est note par une
e
1. Interprtation et compilation
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
read X
read Y
Z <-- X - Y
while Z
rem signifie :
rem tant que Z non nul
if Z
rem signifie Z > 0
then
X <-- X - Y
else
Y <-- Y - X
endif
Z <-- X - Y
endwhile
write X
447
1.2
448
1.3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.3.1
Dans le langage L prsent ci-dessus, nous avons suppos que les structures
e
e
e
itratives ne sont pas imbriques. Cette hypoth`se justie lalgorithme tr`s
e
e
e
e
simple dinterprtation des structures itratives, pour lequel une seule adresse
e
e
de dbut de boucle DebBoucle sut. Si les structures itratives peuvent tre
e
e
e
imbriques ` un niveau quelconque, il faut prvoir une pile dadresses de ree a
e
tour. Dautre part la recherche du mot-cl "endwhile" (lorsque la condition de
e
boucle devient fausse) est plus complique. Il faut en eet parcourir les lignes
e
du texte en comptant les while et en dcomptant les endwhile.
e
1.3.3
Prtraitements divers
e
1. Interprtation et compilation
e
449
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.4
1.4.1
Dnitions et exemples
e
Compilation
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
450
lexique
MAXLIGNE : lentier 100
numligne : le type entier sur 1..MAXLIGNE
Texte : le type squence de caract`res
e
e
{ On suppose lexistence doprations manipulant des textes, comme
e
lgalit note =, la dirence note =, etc. De plus on note les
e
e
e
e
e
constantes texte avec des guillemets. }
Ligne : le type < Mot1, Mot2, Mot3, Mot4, Mot5 : des Textes >
Prog : un tableau sur [1..MAXLIGNE] de Lignes
M1, M2, M3, M4, M5 : des Textes
CP : un entier sur 1..MAXLIGNE+1
{ Le compteur programme, cest-`-dire le numro de la ligne de linsa
e
truction en cours dinterprtation. }
e
DebBoucle : un entier sur 1..MAXLIGNE
vX, vY, vZ : des entiers
tmp1, tmp2 : des entiers ; cond : un boolen
e
N : le numro de la derni`re ligne du texte lu
e
e
1. Interprtation et compilation
e
451
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
CP 1
tantque CP = N+1
M1 Mot1 de Prog[CP]
selon M1 :
M1 = rem : CP CP + 1
M1 = read :
Lire (tmp) ; AectParNom (Mot2 de Prog[CP], tmp) ; CP CP + 1
M1 = write :
Ecrire (ValeurDeNom (Mot2 de Prog[CP])) ; CP CP + 1
M1 = X ou M1 = Y ou M1 = Z :
M3 Mot3 de Prog[CP] ; M4 Mot4 de Prog[CP]
M5 Mot5 de Prog[CP]
tmp1 selon M3
M3 = X ou M3 = Y ou M3 = Z : ValeurDeNom (M3)
sinon ValeurDeNombre (M3)
tmp2 selon M5
M5 = X ou M5 = Y ou M5 = Z : ValeurDeNom (M5)
sinon ValeurDeNombre (M5)
tmp selon M4
M4 = + : tmp1 + tmp2
M4 = * : tmp1 * tmp2
M4 = : tmp1 tmp2
AectParNom (M1, tmp) ; CP CP + 1
M1 = while :
tmp ValeurDeNom (Mot2 de Prog[CP])
cond (tmp = 0)
si cond alors
DebBoucle CP ; CP CP + 1
sinon
tantque Mot1 de Prog[CP] = endwhile : CP CP + 1
CP CP + 1
{ on est sur la ligne qui suit la ligne du endwhile }
M1 = endwhile : CP DebBoucle
M1 = if :
cond (ValeurDeNom (Mot2 de Prog[CP])) > 0
si cond alors CP CP + 1
sinon
tantque Mot1 de Prog[CP] = else : CP CP + 1
CP CP + 1
M1 = then : CP CP + 1
M1 = else :
tantque Mot1 de Prog[CP] = endif : CP CP + 1
M1 = endif : CP CP + 1
sinon : Ecrire (Erreur : instruction inconnue :, M1)
Fig. 18.3 Algorithme dinterprtation
e
452
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Compilation dynamique
Emulation
Code intermdiaire
e
2.
453
/* FICHIER fact.h */
extern long Fact (short) ;
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
/* FICHIER main.c */
include <stdio.h>
include "fact.h"
void main ()
{
long R ; short n ;
/* FICHIER fact.c */
include "fact.h"
long Fact(short x)
{
if (x==0)
return 1 ;
else
return x * Fact (x-1) ;
}
2.1
Un exemple en C
2.2
454
outil
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
chier
source
1
chier
source
2
concatnation
e
de textes
outil
outil
chier
outil
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2.1
455
456
2.2.2
Rassemblement de codes
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
457
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
duire les mmes noms pour le codage des structures de contrle, et ces noms
e
o
seront identis par loutil de fusion .
e
Pour les tiquettes provenant de noms dobjets du programme source, cela
e
peut para moins contraignant : il est ` la charge du programmeur de ne
tre
a
pas dnir deux fois la mme fonction dans deux chiers dirents du mme
e
e
e
e
programme. Toutefois, si lon imagine un programme vraiment tr`s grand, crit
e
e
par une quipe de 50 programmeurs, il est fort probable que deux dentre eux
e
auront crit une fonction max pour des besoins locaux. Dans un langage comme
e
Ada, C ansi, Pascal, on peut cacher la dnition de la fonction max dans une
e
autre fonction, et le probl`me est rduit : pour ces fonctions locales, le mme
e
e
e
mcanisme de porte que pour les variables locales de procdures sapplique.
e
e
e
Le probl`me subsiste pour les fonctions principales, qui ne sont incluses dans
e
aucune autre.
Ces probl`mes trouvent une solution dans la structure de modules des lane
gages de programmation, implmente de mani`re plus ou moins propre et
e
e
e
contrle selon les langages.
oe
Lide de base, que lon retrouve dans le mcanisme rudimentaire de
e
e
dnition de porte par chier en C, consiste ` permettre un regroupement
e
e
a
dobjets du langage dans un module. A lintrieur dun module, des objets
e
sont dnis et localement utilisables. Pour tre visibles de lextrieur (dans les
e
e
e
autres modules), ils doivent tre exports. Il devient donc possible de dnir
e
e
e
deux fonctions max dans deux modules dirents, du moment quon ne les exe
porte pas. Linterface dun module rcapitule les objets dnis dans ce module
e
e
et utilisables ` lextrieur.
a
e
En C, la notion de module correspond ` la structure de chier. Ce nest
a
pas le cas en Ada par exemple, o` un mme chier peut contenir plusieurs
u
e
modules ou packages. En C, tout objet dni dans un chier est par dfaut
e
e
export. Pour cacher sa dnition ` lextrieur, il faut prxer sa dclaration
e
e
a
e
e
e
par le mot-cl static. En langage dassemblage, cest souvent linverse : toute
e
tiquette dnie est locale au chier, sauf exportation explicite. Dans les lane
e
gages dassemblage que nous avons utiliss dans cet ouvrage, lexportation
e
explicite se fait par une directive .global (voir par exemple lexemple donn
e
Figure 12.9 du chapitre 12).
Ce mcanisme rudimentaire de masquage des noms ne saurait tre quali
e
e
e
de support ` la programmation modulaire. Un inconvnient majeur est limposa
e
sibilit de partager un nom entre deux chiers (ou modules) dun programme,
e
sans le partager galement avec tous les autres : la directive dexportation est
e
tous azimuts.
2.2.4
458
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3
cos(3M)
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Mathematical Library
459
NAME
460
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
.data
D :
.long 42 ! une donne de 32 bits initialise ` la valeur 42
e
e a
.text
debut :
sethi %hi (D), %r1
! couple dinstructions destin
e
or %r1, %lo(D), %r1
! ` ranger la valeur sur 32 bits de
a
! ladresse reprsente par D dans r1
e
e
ld [%r1], %r2
! chargement depuis la mmoire
e
! du mot dadresse r1
! ici r2 doit contenir 42.
nop
ba debut
! branchement inconditionnel
nop
Fig. 18.7 Utilisation relative ou absolue dun symbole
Le cas des instructions sethi %hi (D), %r1 et or %r1, %lo(D), %r1 est
plus compliqu. Toutes deux sont des utilisations absolues du symbole D. De
e
mme linstruction add %r1, X, %r2 est une utilisation absolue de X. Attene
tion, il ny a pas dindirection implicite, et il sagit bien dajouter au registre r1 la valeur dadresse associe au symbole X ; toutefois, cette valeur
e
est ncessairement tronque ` 13 bits puisque cest la taille du champ valeur
e
e a
immdiate dans le codage de linstruction add du sparc.
e
Du point de vue de la traduction des symboles en adresses, cela signie que
le symbole D doit tre remplac par ladresse ` laquelle se trouvera la donne
e
e
a
e
42, en mmoire vive, lors de lexcution du programme.
e
e
Cette adresse ne peut tre connue ` lassemblage que si le chargeur (Cf. Chae
a
pitre 20) dcide de toujours installer les programmes ` excuter ` une adresse
e
a e
a
xe A connue de lassembleur ; dans ce cas, lassembleur peut remplacer le
symbole D par une valeur de la forme A + d, o` d reprsente la position relative
u
e
de la donne D dans le code produit pour ce programme. Ici, en supposant que
e
les donnes sont places apr`s les instructions, d = 6 4 octets, puisquil y a
e
e
e
6 instructions codes sur 4 octets avant la donne repre par D.
e
e
ee
Toutefois, dans les syst`mes multitches, le chargeur g`re la mmoire de
e
a
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
A
A+4
A+8
A+12
A+16
A+20
A+24
461
La gure 18.8 montre ce que doit tre le contenu de la mmoire vive lors de
e
e
lexcution du programme de la gure 18.7. Chaque instruction est code sur
e
e
32 bits. Les donnes sont supposes places en mmoire apr`s les instructions :
e
e
e
e
e
on trouve en derni`re ligne le codage en binaire de la valeur 4210 , sur 32 bits.
e
La colonne de gauche donne les adresses, en supposant que le programme a
t install en mmoire ` ladresse A. Linstruction ba debut a t enti`rement
ee
e
e
a
ee
e
code, le champ dplacement contient le codage en complment ` 2, sur 22
e
e
e
a
bits, de la valeur 4.
La question intressante est : que contiennent les deux champs de bits nots
e
e
par des ? ? Linstruction sethi comporte un champ de 22 bits qui contient
une valeur immdiate. sethi %hi(D), %r1 signie quil faut utiliser les 22
e
bits de poids fort (high) de la valeur dadresse reprsente par D comme vae
e
leur immdiate. Or D = A + 24, donc hi(D) = hi(A + 24). De mme, or
e
e
%r1, %lo(D), %r1 signie quil faut placer dans le champ de 13 bits rserv
e
e
a
` une valeur immdiate, les 10 bits de poids faible (low) de la valeur dadresse
e
reprsente par D, ce qui vaut : lo (A + 24).
e
e
Ces deux valeurs dpendent de ladresse de chargement A, et les deux
e
champs reprsents par des ? ne peuvent donc pas tre remplis correctement
e
e
e
tant que lon ne conna pas A.
t
2.3.4
462
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
463
lexique
ModeDeCalcul : le type (reloc hi22, reloc lo10, reloc13, ...)
{ Type numr reprsentant les expressions de calcul. Les noms sont les
e
e e
e
noms eectifs utiliss dans les syst`mes ` base de sparc. En anglais, transe
e
a
lation se dit relocation }
DonneTranslation : le type <
e
position : un entier 0, mode : un ModeDeCalcul,
const : un entier >
{ La taille du trou est implicitement code dans le mode de calcul ; la position
e
du trou est donne en adresses dinstructions (donc cest un multiple de 4)
e
car le codage des instructions sparc est tel que les trous sont toujours
cadrs ` droite. }
e a
D : une DonneTranslation
e
Masque22pF : lentier ((222 1) 210 )
{ 22 bits ` 1 en poids Forts, 10 bits ` 0 en poids faibles. Pour les dtails de
a
a
e
construction, revoir le paragraphe 4. du chapitre 3, ` propos du lien entre
a
larithmtique et les boolens. }
e
e
Masque10pf : lentier 210 1
Masque13pf : lentier 213 1
{ 10 (ou 13) bits ` 1 en poids faibles, 22 (ou 19) bits ` 0 en poids Forts }
a
a
algorithme
{ Le chier objet translatable a t copi en mmoire ` partir de ladresse A,
ee
e
e
a
instructions dabord, donnes ensuite, comme sur la gure 18.8. On parcourt
e
les donnes de translation du chier objet. }
e
D parcourant les donnes de translation du chier :
e
selon D.mode :
{ On modie un mot de 32 bits dans la mmoire, ` ladresse
e
a
A+D.position, en superposant un autre mot de 32 bits, grce ` une
a a
opration OR bit ` bit. Voir chapitre 12, paragraphe 1.4.1 }
e
a
D.mode = reloc hi22 :
MEM [A + D.position] 4
MEM [A + D.position] OR (((A + D.const) ET Masque22pF) / 210 )
D.mode = reloc lo10 :
MEM [A + D.position] 4
MEM[A + D.position] OR ((A + D.const) ET Masque10pf)
D.mode = reloc 13 :
MEM [A + D.position] 4
MEM [A + D.position] OR ((A + D.const) ET Masque13pf
....
3.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
464
3.1
3.2
Comme signal plus haut, un chier objet translatable est constitu essene
e
tiellement de langage machine. Nous avons dni au paragraphe prcdent les
e
e e
besoins en informations supplmentaires relatives ` la translation dadresses.
e
a
Il nous faut ici complter ces informations par la table des symboles. En
e
eet, en tudiant loutil au paragraphe 2.2.2, nous avons suppos que le
e
e
Ar
ch
it
P.
Am ectu
F.
bl
ar res
La
P.
d,
gn
Lo
ie
Si
r, J.-C gici
ca
rd
el
.
F.
,
Ma Fern les
Ph
ra
.
ni ande et M
Wa
nc
il
at
hi z,
le
e
r
,
ie
ll
es
465
En-tte
e
466
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
la forme :
X:
Y:
.long
.long
.long
.long
42
212
X
Y - X
Pour conserver linformation relative aux noms des symboles, le chier comporte une table des cha
nes et une table des symboles.
La table des cha
nes est un tableau de caract`res o` sont ranges, les unes
e
u
e
apr`s les autres et spares par des 0, toutes les cha
e
e e
nes de caract`res qui
e
sont des noms dtiquettes (et non pas les cha
e
nes de caract`res qui sont des
e
donnes du programme, dclares par des directives .asciz "machaine" dans
e
e
e
la zone DATA, et dont le code ASCII est prsent dans la zone DATA du
e
chier objet). Isoler la table des cha
nes permet de ne stocker quune fois
une cha lorsquelle est le nom de plusieurs symboles. Nous expliquons au
ne
paragraphe 3.3 comment un chier objet translatable peut contenir plusieurs
symboles de mme nom.
e
La table des symboles est une collection de n-uplets dcrivant chacun un
e
symbole, rangs dans un tableau indic de 1 ` NombreSymboles (lordre nest
e
e
a
pas pertinent, toutefois). Chaque n-uplet est cod sur un format xe (de lordre
e
de 12 octets). Le type correspondant est donn gure 18.10.
e
Lensemble Zone et Porte permet de dterminer exactement le statut du
e
e
symbole considr (Figure 18.11).
ee
3.2.4
Le chier objet contient deux zones distinctes pour les donnes de transe
lation relatives aux instructions, et pour celles relatives aux donnes. La zone
e
BSS ntant pas initialise, il ny a pas de trous dans son codage, et donc pas
e
e
de donnes de translations associes.
e
e
467
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Porte
e
Zone
Zone = zNONDEF
Zone = zNONDEF
vrai
faux
468
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.3
Considrons trois chiers objets 1, 2, et 3, tels que 3 soit la fusion des chiers
e
1 et 2. Notons respectivement Hi, Ti, Di, TTi, TDi, TSi, TCi len-tte, la zone
e
TEXT, la zone DATA, la zone de translation TEXT, la zone de translation
DATA, la table des symboles et la table des cha
nes du chier numro i.
e
Le chier 3 est en gros la concatnation, zone par zone, des chiers 1 et 2.
e
Plus prcisment :
e e
T3 est la concatnation de T1 et T2 ; certains trous sont ventuellement
e
e
remplis. Le chier fusionn comporte toutes les instructions du chier 1, et
e
toutes celles du chier 2. Lordre na pas dimportance, mais il faut dcider
e
o` se trouve le point dentre. Loutil de fusion peut prendre en param`tre
u
e
e
le nom dune tiquette qui dsigne le point dentre global.
e
e
e
De mme, D3 est la concatnation de D1 et D2 ; certains trous sont
e
e
ventuellement remplis. Le chier fusionn comporte toutes les donnes du
e
e
e
chier 1 et toutes celles du chier 2. Il ny a pas de probl`me de point
e
dentre.
e
TT3 est bas sur lunion des donnes de translation TEXT du chier 1
e
e
(TT1) et de celles du chier 2 (TT2). Toutefois certaines donnes de transe
lation peuvent tre utilises pendant la fusion pour complter certains trous
e
e
e
en zone T3, et disparaissent donc.
La situation est similaire pour TD3 par rapport ` TD1, TD2.
a
La table des symboles TS3 est obtenue dapr`s TS1 et TS2 de la mani`re
e
e
suivante : les noms de symboles qui napparaissent que dans lun des chiers
sont conservs tels que ; pour un nom de symbole qui appara dans les deux
e
t
469
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
chiers, il faut considrer, pour chaque symbole, les 3 cas de la gure 18.11.
e
Dautre part un chier objet peut comporter plusieurs symboles de mme
e
nom. Lanalyse dtaille de tous les cas possibles donne la structure de
e
e
lalgorithme de fusion.
Eets de dcalages La fusion des deux chiers a tout dabord des eets de
e
dcalage, puisque les symboles sont numrots indpendamment dans les deux
e
e e
e
chiers, et leurs valeurs calcules indpendamment :
e
e
Lunion des tables de symboles produit une nouvelle numrotation globale
e
des symboles, quil faut reporter dans les donnes de translation qui y font
e
rfrence.
ee
La concatnation des zones TEXT (resp. DATA) a pour eet de dplacer les
e
e
tiquettes du deuxi`me chier par rapport au dbut de lensemble. Il faut
e
e
e
donc modier la valeur des symboles du deuxi`me chier. Aux symboles
e
dnis en zone T2, on ajoute la taille de T1 ; aux symboles dnis en zone
e
e
D2 on ajoute la taille de T1, plus la taille de D1, etc. Dans le chier 3,
les valeurs des symboles sont des dcalages par rapport au dbut de la
e
e
concatnation T1 T2 D1 D2.
e
La concatnation des zones TEXT (resp. DATA) a aussi pour eet de
e
dplacer les trous par rapport au dbut de lensemble. Il faut donc mettre
e
e
a
` jour les positions de trous dans les donnes de translation. Cela peut se
e
faire globalement au dbut.
e
Identication de symboles Un cas intressant de fusion survient lorsquun
e
trou peut-tre rempli. Cela se produit par exemple si le chier 1 comporte
e
une instruction call F avec F non dni, et le chier 2 une dnition de F
e
e
exporte. On a donc un symbole de nom F dans chacun des chiers. Dautre
e
part linstruction call F est incompl`te dans le chier 1, et il y a dans TT1
e
une donne de translation qui dcrit ce trou.
e
e
En considrant les portes relatives de ces deux symboles, la fusion
e
e
dtermine quil sagit en fait du mme symbole, et ralise lidentication. Cela
e
e
e
consiste ` ne garder quun lment dans la table de symboles globale. Dautre
a
ee
part, puisque linstruction call F fait une utilisation relative du symbole F, et
que celui-ci est connu dans le chier fusionn, linstruction call F incompl`te
e
e
qui provenait du chier 1 peut maintenant tre complte. La donne de transe
ee
e
470
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
lation du chier 1, plus les informations sur le symbole donnes par TS2 sufe
sent pour cela.
Noter que si la mme situation se prsente, mais avec une instruction utie
e
lisant F de mani`re absolue dans le chier 1, il y a bien identication des
e
symboles, mais il subsiste une donne de translation pour cette instruction, et
e
elle ne sera complte quau chargement.
ee
Il y a galement identication de symboles lorsque par exemple les deux
e
chiers importent la mme fonction, qui nest dnie dans aucun deux. Elle
e
e
le sera peut-tre dans un troisi`me chier, qui sera fusionn avec ceux-l` plus
e
e
e
a
tard.
Plusieurs symboles de mme nom dans un chier Les chiers obtee
nus par assemblage dun programme en langage dassemblage ont exactement
un symbole par nom. Pour bien comprendre lalgorithme de fusion, qui peut
sappliquer incrmentalement, il faut remarquer quun chier objet obtenu par
e
fusion peut contenir deux symboles de mme nom, qui di`rent par leurs autres
e
e
attributs (zone de dnition, valeur). Ce phnom`ne est d au mcanisme de
e
e
e
u
e
masquage des noms par chier : si lon fusionne deux chiers objet contenant
chacun un symbole de nom i dni et non export, le chier global comporte
e
e
deux symboles de nom i. Notons toutefois que si plusieurs symboles ont le
mme nom, ce sont ncessairement des symboles dnis localement et non exe
e
e
ports. Dans les donnes de translation du chier, les symboles sont rfrencs
e
e
ee
e
par numro, pas par leur nom.
e
De mani`re gnrale, pour un nom de symbole i donn, un chier objet peut
e
e e
e
contenir : un nombre quelconque de symboles de nom i dnis localement et
e
non exports (cas 2 de la gure 18.11) ; au plus un symbole de nom i visible,
e
cest-`-dire dni localement et export (cas 1), ou bien non dni et import
a
e
e
e
e
(cas 3).
3.3.3
Ebauche dalgorithme
La gure 18.13 dtaille lanalyse par cas selon les portes respectives des
e
e
symboles communs aux deux chiers.
471
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
472
Vie des programmes
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 19
474
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
dune mmoire secondaire, il faut tenir compte des acc`s que lon dsire raliser
e
e
e
e
sur ces donnes : si lon a besoin de lacc`s direct, un support ` acc`s squentiel
e
e
a
e e
ne convient pas. Chacun sait quil est plus facile dcouter le troisi`me mouvee
e
ment dune symphonie sur un disque compact que sur une cassette audio.
Il existe une deuxi`me dirence essentielle entre les donnes dun proe
e
e
gramme (qui sont stockes quelque part en mmoire vive pendant lexcution
e
e
e
du programme) et les donnes stockes sur un support de mmoire secondaire.
e
e
e
Il sagit du mcanisme dacc`s aux informations par leur nom, autrement dit
e
e
du lien entre un nom externe connu de lutilisateur et une adresse en mmoire.
e
Dans le cas des programmes, les informations sont ranges dans des vae
riables nommes par lutilisateur ; la correspondance entre le nom et ladresse
e
dans le tableau MEM est calcule par le compilateur, et prise en compte lors
e
de la fabrication du chier excutable, dans lequel on peut oublier les noms
e
(sauf si lon dsire eectuer du dbogage symbolique, voir chapitre 18).
e
e
Dans le cas des donnes prsentes sur un support de mmoire secondaire, le
e
e
e
nom externe est un nom de chier, dans la terminologie usuelle. La correspondance entre ce nom externe et les adresses des donnes du chier sur le support
e
est tablie par exemple lors de la cration dun chier, par le logiciel qui soce
e
cupe de la gestion du support. Cette correspondance est une information dont
la dure de vie doit tre au moins gale ` celle des donnes considres : elle
e
e
e
a
e
ee
doit donc tre stocke sur le support lui-mme. A nimporte quel autre ene
e
e
droit (mmoire vive de la machine, que ce soit dans un programme syst`me
e
e
ou dans un programme utilisateur), elle aurait une dure de vie infrieure `
e
e
a
celle des donnes sur le support de mmoire.
e
e
On appelle syst`me de chiers lensemble des donnes stockes sur un supe
e
e
port de mmoire secondaire (disque, bande, ...). Ces donnes comprennent
e
e
bien sr les donnes de lutilisateur, mais aussi des informations quil na pas `
u
e
a
conna
tre, sur lorganisation de ce support de mmoire : correspondance entre
e
noms externes et adresses, o` reste-t-il de la place libre ?, etc.
u
On appelle syst`me de gestion de chiers (SGF dans la suite) lensemble
e
des programmes responsables de linstallation dun syst`me de chiers sur un
e
support de mmoire secondaire. Le SGF ralise linterface entre lutilisateur,
e
e
qui peut dsigner ses donnes par des noms de chiers par exemple, et le logiciel
e
e
pilote de priphrique qui ralise les lectures/critures eectives sur le support
e
e
e
e
de mmoire.
e
Notons que ces deux notions correspondent aussi bien ` la gestion des
a
chiers utilisateurs sur un syst`me mono ou multi-utilisateurs ordinaire, qu` la
e
a
manipulation des chiers de stockage dun SGBD (Syst`me de Gestion de Bases
e
de Donnes). Lorganisation des informations sur les supports secondaires est
e
toutefois plus complique dans le cas des SGBD, pour lesquels les contraintes
e
de temps dacc`s sont primordiales (et le volume des donnes tel que lon ne
e
e
peut pas systmatiquement recopier les donnes en mmoire vive avant de
e
e
e
les traiter). Nous tudierons dans ce chapitre le cas dun syst`me de chiers
e
e
475
Disque
Adresses logiques
Adresses physiques
Ar
Logiciel
Matriel
e
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Bande
utilisateurs ordinaire.
1.
476
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
magntique (Cf. Chapitre 17) fournit vers les couches dabstraction suprieures
e
e
une interface qui permet de manipuler des blocs ou units dacc`s
e
e
numrots squentiellement. Dans la suite de ce chapitre, nous appellerons
e e e
adresse physique le mcanisme de dsignation non ambigu dune unit dacc`s,
e
e
e
e
e
cest-`-dire le numro de bloc. Rappelons que le logiciel pilote de priphrique
a
e
e
e
traduit cette numrotation squentielle en couples (numro de secteur, numro
e
e
e
e
de piste) pour les disques (lunit dacc`s peut mme tre constitue de plue
e
e
e
e
sieurs secteurs).
Tout en haut du schma on trouve la couche suprieure visible par lutie
e
lisateur. Les informations manipules sont des noms de chiers (qui re`tent
e
e
ventuellement la structure hirarchique de lensemble des chiers). On peut
e
e
trouver galement dautres informations associes ` un chier, comme les droits
e
e a
dacc`s des dirents utilisateurs, la date de cration, le nom du programme
e
e
e
qui la cr, etc.
ee
Le SGF est la couche intermdiaire : il assure la correspondance entre les
e
noms de chiers et la position des donnes de ces chiers sur les blocs du
e
support de mmoire.
e
Lorsque lutilisateur tape editer /users/machin/toto.c, le programme
editer fait appel aux fonctions du SGF pour retrouver le lien entre ce nom
externe et la position des donnes sur le support de mmoire, et aux fonctions
e
e
oertes par le logiciel pilote de priphrique pour raliser la lecture eective
e
e
e
de ces donnes.
e
Nous dtaillons au paragraphe 5. les principales fonctions du SGF accese
sibles aux programmes de lutilisateur.
2.
2.1
Notion de chier
Les donnes ` stocker sont regroupes dans des chiers. Cest lunit de base
e a
e
e
a
` laquelle on peut associer un nom externe connu de lutilisateur (` travers un
a
interpr`te de commandes, ou par programme). Chaque chier a une certaine
e
structure interne, qui correspond au type des donnes qui y sont stockes.
e
e
2.2
2.2.1
477
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
oprations usuelles que lon eectue sur un chier source (dition, impression,
e
e
...) linterpr`tent comme une suite de caract`res (cest-`-dire une suite doce
e
a
tets). De mme, le chier objet peut tre considr comme une suite de bits,
e
e
ee
ou comme une suite doctets. Les images ou les contenus de bases de donnes
e
constituent dautres types de chiers.
Les chiers texte sont intrins`quement squentiels, puisque le type Texte
e
e
manipul par les programmes est dni comme une squence de caract`res
e
e
e
e
(lordre des lments fait partie du type). Inversement les chiers de bases de
ee
donnes relationnelles correspondent au type de donnes ensemble de n-uplets.
e
e
Un chier de personnes peut ainsi tre constitu de triplets forms dun
e
e
e
nom, dune date de naissance et dun nom de ville. Il ny a pas de structure
squentielle attache ` ce type de donnes. Les n-uplets peuvent tre dsigns
e
e a
e
e
e
e
de mani`re non ambigu par une cl. Dans la thorie de lalg`bre relationnelle,
e
e
e
e
e
la cl ou identiant dune relation est un sous-ensemble des champs tel
e
que, pour une valeur des champs de la cl, le n-uplet est unique. Dans le chier
e
de personnes donn en exemple, on peut dcider dutiliser le nom comme cl.
e
e
e
On appelle adresse logique le mcanisme de dsignation non ambigu dun
e
e
e
enregistrement du chier. Si le chier comporte une structure squentielle, cest
e
en gnral un numro par rapport au dbut ; dans le cas contraire, on utilise
e e
e
e
la notion didentiant fournie par la structuration des donnes : une valeur de
e
la cl permet de dsigner un n-uplet sans ambigu e.
e
e
t
2.2.2
Types dacc`s
e
478
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
non squentiel.
e
Reprenons lanalogie avec les disques et cassettes audio : il est plus facile
dcouter la douzi`me chanson sur un disque compact que sur une cassette
e
e
audio, mais, lorsquon recopie une cassette sur une autre, on na besoin de
lacc`s direct ni sur la source, ni sur la copie.
e
Dernier point important : pourquoi se proccuper dacc`s direct aux
e
e
donnes stockes sur un support de mmoire secondaire ? On pourrait en eet
e
e
e
imaginer une mani`re fort simple de manipuler les chiers : on commence toue
jours par le recopier enti`rement en mmoire vive (et cela ncessite une lecture
e
e
e
squentielle), puis on eectue tout type de modication, puis on le recopie sur
e
le support de mmoire secondaire (et cela constitue une criture squentielle).
e
e
e
Dans ce cas les seuls types dacc`s ncessaires sont squentiels.
e e
e
Cette approche est applicable ` ldition de petits chiers texte. Pour
a e
dautres types dapplication cest hors de question : tri de gros chiers, acc`s
e
a
` une base de donnes, ...
e
Pour assurer des acc`s directs parmi les donnes dun chier, il faut donc
e
e
prvoir limplantation en consquence.
e
e
2.3
Cest le cas raliste dun syst`me de gestion des chiers utilisateurs. Quel
e
e
que soit le type des donnes de ces chiers, ils sont considrs comme des suites
e
ee
doctets, et les adresses logiques sont des dcalages par rapport au dbut en
e
e
nombre doctets.
Acc`s direct sur support squentiel Cest un cas peu raliste. Sur tout
e
e
e
support squentiel on dispose dune opration de retour au dbut (rembobinage
e
e
e
dune bande magntique), mais passer dun lment dadresse n ` un lment
e
ee
a
ee
dadresse m en rembobinant, puis en avanant de m, ne peut pas avoir des
c
performances comparables ` celles dun vritable acc`s direct.
a
e
e
Acc`s squentiel sur support squentiel Ceci constitue le cas typique de
e e
e
la sauvegarde, pendant laquelle les chiers sont considrs comme squentiels.
ee
e
En eet, aucune insertion ou suppression dlment du chier ne sera efee
fectue sur le support ` acc`s squentiel. Les acc`s au support squentiel sont
e
a
e e
e
e
squentiels, lors des sauvegardes et restaurations.
e
479
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Acc`s direct sur support ` acc`s direct Le chier peut tre considr
e
a
e
e
ee
comme une squence de n-uplets plus ou moins complexes, numrots par les
e
e e
adresses logiques.
On trouve dans tout bon ouvrage dalgorithmique une discussion sur les
mrites respectifs de la reprsentation des squences dans des tableaux ou des
e
e
e
squences cha ees. Dans un tableau, lordre des lments de la squence est
e
n
ee
e
implicite : cest lordre des indices ; dans une squence cha ee, lordre des
e
n
lments est reprsent de mani`re explicite : chaque lment pointe sur
ee
e
e
e
ee
son successeur (et/ou sur son prdcesseur). Notons que les lments de la
e e
ee
squence sont de toute faon dans le tableau MEM : la dirence entre les
e
c
e
deux approches est donc entre une implantation contigu et une implantation
e
disperse. .
e
Avec la solution tableau on occupe le minimum de mmoire ; avec la solue
tion cha ee, on ajoute un pointeur par lment (cest-`-dire une adresse
n
ee
a
mmoire, de lordre de 32 bits). La comparaison sur le temps ncessaire
e
e
pour une opration dinsertion tourne en revanche ` lavantage de la solution
e
a
cha ee : il sut de raccrocher deux ou trois pointeurs et le tour est jou ; dans
n
e
un tableau il faut mnager une place en dcalant des lments, cest-`-dire en
e
e
ee
a
les recopiant dune case dans une autre. Comme dhabitude en informatique, les
gains en place se font au dtriment du temps, et vice-versa. Notons galement
e
e
quavec une implantation contigu on dispose de lacc`s direct ` un lment
e
e
a
ee
par son numro ; on perd cette proprit avec une implantation disperse.
e
ee
e
Imaginons le cas dune squence de bits, stocke en utilisant une solution
e
e
mixte contige/disperse : on peut cha
u
e
ner entre eux des octets, auquel cas le
rapport entre informations utiles et informations de cha
nage est assez mauvais : un pointeur occupe de lordre de 4 octets, et il en faut 1 par octet utile.
En choisissant la taille des blocs cha es, on r`gle le rapport entre informations
n
e
utiles et informations de cha
nage.
Appliquons le raisonnement au cas de limplantation des chiers.
Dans une implantation contigu, les emplacements de deux enregistrements
e
conscutifs quelconques du chier sont eux-mmes conscutifs ` lintrieur
e
e
e
a
e
dune mme unit dacc`s, ou situs dans deux units dacc`s de numros
e
e
e
e
e
e
e
conscutifs. La structure de squence du chier est reprsente grce ` la
e
e
e
e
a a
squence des adresses physiques. Une insertion ou suppression denregistree
ment dans le chier demande un dcalage des lments prsents, ce qui peut
e
ee
e
tre assez coteux.
e
u
Dans une implantation disperse, deux enregistrements conscutifs du e
e
chier peuvent tre placs ` des positions quelconques sur le disque. Pour ree
e a
constituer la structure squentielle, on peut cha
e
ner les lments entre eux, ou
ee
utiliser une table dimplantation (voir paragraphe 3. ci-dessous). Linsertion
ou la suppression dun lment demande alors seulement la rorganisation du
ee
e
cha
nage ou de la table dimplantation, mais jamais le dplacement des enree
gistrements du chier sur le disque. La solution par cha
nage est coteuse en
u
taille (une adresse de suivant pour chaque lment du chier), et impose un
ee
480
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
481
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.1
Considrons tout dabord le cas simple dun seul chier de petite taille. On
e
introduit une table dimplantation de taille T , qui donne T adresses physiques
de dbut de blocs de taille gale ` lunit dallocation.
e
e
a
e
Cette table dimplantation doit elle-mme tre stocke sur disque, de
e
e
e
mani`re contigu, et ` une position connue. Elle peut occuper une ou plue
e
a
sieurs units dacc`s au dbut du disque par exemple (Cf. Figure 19.2).
e
e
e
La taille du chier est limite ` T Ua octets, o` Ua reprsente lunit
e a
u
e
e
dallocation.
3.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
482
Table dimplantation :
dans lunit dacc`s de numro 1.
e
e
e
2 3
...
Fig. 19.2 Implantation disperse dun seul chier de petite taille : lunit dallocation
e
e
est gale ` deux units dacc`s, et la table dimplantation est situe sur une
e
a
e
e
e
unit dacc`s. Elle donne T adresses physiques dunits dacc`s, quil faut
e
e
e
e
interprter comme les adresses de dbut des blocs du chier, chacun de taille
e
e
gale ` lunit dallocation.
e
a
e
483
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Table secondaire
1
Table primaire
T
T+1
Fig. 19.3 Implantation disperse dun seul chier de taille moyenne : lunit dallocation
e
e
correspond ` deux unit dacc`s. La table dimplantation primaire est situe
a
e
e
e
sur une unit dacc`s. Elle donne tout dabord T adresses physiques dunits
e
e
e
dacc`s, quil faut interprter comme les adresses de dbut de blocs du chier.
e
e
e
Elle donne galement, dans sa case dindice T + 1, ladresse physique dune
e
unit dacc`s qui contient une table secondaire. Cette nouvelle table donne T
e
e
adresses physiques dunits dacc`s, quil faut interprter comme les adresses
e
e
e
de dbut des blocs du chier. Tous les blocs du chier sont de taille gale `
e
e
a
lunit dallocation
e
484
3.3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.4
Tant que lon consid`re le cas dun seul chier, la table dimplantation prie
maire peut tre place ` une position xe sur le disque. Si lon veut maintenant
e
e a
stocker plusieurs chiers selon la mme mthode, chacun doit disposer de sa
e
e
table dimplantation, elle-mme stocke sur le disque. Il faut donc tablir une
e
e
e
correspondance entre le chier et ladresse physique de sa table dimplantation.
A cet eet, on rserve sur le disque une zone dite des descripteurs de e
chiers, de taille xe, et permettant le stockage de n tables dimplantation. Le
nombre de chiers stockables est ainsi born par n, une fois pour toutes (lors
e
du formatage du disque). Un chier est dsign par un numro, et ladresse
e
e
e
physique de son descripteur est obtenue comme un dcalage par rapport `
e
a
ladresse physique 0.
Le nombre de descripteurs prvu au formatage est donc le nombre maxie
mum de chiers reprsentables sur le disque. Selon la nature de lensemble des
e
chiers ` reprsenter, ce param`tre peut tre choisi plus ou moins grand.
a
e
e
e
3.5
Allocation de blocs
485
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.6
3.7
486
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
4.1
4.2
487
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.3
5.
5.1
Formatage logique
488
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.2
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.3
489
Les octets formant le contenu du chier sont stocks sur les units dacc`s
e
e
e
dadresses physiques :
tab-imp[0]+0, tab-imp[0]+1, ..., tab-imp[0]+UAlloc 1,
tab-imp[1]+0, tab-imp[1]+1, ..., tab-imp[1]+UAlloc 1,
...
Le nombre dunits dacc`s eectivement occupes est dtermin par la
e
e
e
e
e
taille du chier en octets et la taille de lunit dacc`s en octets.
e
e
Lensemble des chiers prsents sur le disque est reprsent dans le
e
e
e
rpertoire o` un chier est identi par son nom et son acc`s indiqu par
e
u
e
e
e
le numro de son NoeudInfo. Une entre de rpertoire peut tre dcrite par :
e
e
e
e
e
EntreeRep : le type (nom : un texte ; NoNoeudInfo : un entier)
5.4
490
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
dsign par un nom ; louverture consiste ` donner acc`s ` toutes les informae
e
a
e a
tions stockes dans le chier.
e
Ensuite on utilise les actions de lecture et dune action dcriture dune
e
unit dacc`s fournies par le pilote de priphrique associ au disque (Cf. Pae
e
e
e
e
ragraphe 3. du chapitre 17).
5.4.1
Les programmes utilisateurs du SGF manipulent les chiers par lintermdiaire dune structure de donnes qui contient toutes les informations
e
e
permettant daccder au chier ; outre les informations concernant lacc`s phye
e
sique, tires du descripteur physique (ou noeud dinformation) du chier, il est
e
ncessaire si lon veut raliser un acc`s squentiel, de mmoriser la position
e
e
e e
e
atteinte lors du dernier acc`s, le mode dutilisation autoris, etc. Cette struce
e
ture de donnes est installe par le syst`me de gestion de chier en mmoire
e
e
e
e
lors de louverture du chier et recopie sur le disque lors de la fermeture. On
e
obtient :
Descripteur : le type <
type : (catalogue, chier-ordinaire) { type du chier }
taille : un entier ; { taille du chier en nombre doctets }
tab-imp : un tableau sur [0..99] dAdPhysiques
{ potentiellement : adresses de dbut de 100 blocs du chier, chacun de la
e
taille de lunit dallocation UAlloc. }
e
oset : un entier ;
{ pointeur courant dans le chier : cest un dcalage par rapport au
e
dbut, en nombre doctets. }
e
mode : (lect, ecr) ; { acc`s en lecture ou en criture }
e
e
{ Autres informations comme par exemple les droits dacc`s ` un utilie a
sateur ou ` un autre }
a
>
5.4.2
491
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
recopi et les informations non lies ` limplantation du chier sur disque sont
e
e a
initialises.
e
5.4.3
5.5
5.6
492
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 20
494
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
Dmarrage du syst`me
e
e
1.1
495
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2
Une fois cette structure de mmoire installe, il ne reste plus qu` lancer
e
e
a
un programme interpr`te dun langage de commandes, qui sera actif durant
e
toute la dure de vie du syst`me, et fera appel ` la procdure de chargee
e
a
e
ment/lancement de programme pour excuter les programmes requis par lutilie
sateur ` la ligne de commandes. Pour installer le programme interpr`te de coma
e
mandes lui-mme, la procdure de dmarrage utilise galement la procdure
e
e
e
e
e
de chargement/lancement.
1.3
Fin du syst`me
e
2.
496
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.1
2.1.1
497
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.1.2
Le rsultat
e
498
2.1.3
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
2.2.1
Dans le cas que nous allons dtailler, nous supposerons que le syst`me nest
e
e
ni multi-utilisateurs, ni multitches. Dans ce cas les besoins en zones mmoire
a
e
pour le chargement des programmes suivent le schma dernier allou/premier
e
e
libr. En eet, la procdure dinitialisation charge linterpr`te, qui peut charee
e
e
ger des programmes utilisateur, lesquels peuvent eux-mmes charger dautres
e
programmes, mais tout cela se droule comme une suite dappels de procdures
e
e
499
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
MEM
MEM
code de
lamorce
ROM
SP
Syst`me
e
3 (nombre de param`tres)
e
RAM
DbutMEM
e
nMEM
DbutMEMlibre
e
m o
0
0 t o
R
t
0
o
max
SP
(a)
(b)
500
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3
Droulement du chargement/lancement
e
501
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
...
TDB (R)
ZoneP
TDB (P)
SP
Variables locales
de P
FP
Sauv. FP de R
Ad. Retour dans R
Copyright 2006 TIMA EDITIONS
Premire dition : Dunod 2000
...
Adresses
faibles
Adresses
fortes
502
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3.3
503
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
de chier dapr`s son nom (Cf. Chapitre 19). Les param`tres ` lui passer sont :
e
e
a
ladresse du nom de chier, le mode douverture (ici lecture), ladresse de la
variable PFichier. La procdure douverture peut chouer, et rendre un code
e
e
derreur dans un registre ; dans ce cas la procdure de chargement se termine,
e
en conservant ce code de retour (voir dernier point).
Lorsque louverture du chier sest bien passe, la variable PFichier est
e
pertinente, et peut servir ` raliser les acc`s suivants. Ltape suivante est
a e
e
e
lappel de la procdure du SGF qui permet de lire une portion du chier de
e
la taille de EnTete, ` partir du dbut du chier. Les param`tres ` lui passer
a
e
e
a
sont : ladresse de PFichier, ladresse de EnTete. Si tout se passe bien, la variable EnTete contient ensuite la description des zones du chier excutable,
e
ainsi quun marqueur qui indique la nature du chier. Si ce nest pas un chier excutable, cela constitue un nouveau cas o` la procdure de chargement
e
u
e
choue, en rendant un code derreur. Si le chier est bien un chier excutable,
e
e
on peut poursuivre.
Le code de la procdure de chargement/lancement consiste ensuite ` calcue
a
ler la taille de la zone mmoire ncessaire ` linstallation du code et des donnes
e
e
a
e
du programme Q. Len-tte du chier excutable donne les tailles respectives
e
e
des zones TEXT, DATA et BSS du programme. La variable Taille est aecte
e
a
` la somme de ces tailles (ventuellement arrondie au multiple de 4 ou de 8
e
suprieur, si ce nest pas dj` fait dans le chier excutable, pour satisfaire `
e
ea
e
a
des contraintes dalignement en mmoire vive).
e
Il faut ensuite allouer une zone mmoire pour le programme ` lane
a
cer et dterminer ainsi ladresse de chargement. Nous avons vu au parae
graphe 2.2.2 que la zone de mmoire utilise pour installer le code des proe
e
grammes que lon charge est gre en pile, dans notre syst`me simple. Il
ee
e
sut donc de dplacer le pointeur de dbut de la zone de mmoire libre, `
e
e
e
a
partir de son ancienne position. Cette position est connue et vaut, pendant
lexcution de C, ZoneP = MEM [MEM[FP] + ]]. Il sut donc de calculer
e
ZoneQ ZoneP + Taille.
La gure 20.2-(c) montre le rsultat de lallocation : la zone disponible pour
e
Q est comprise entre les adresses ZoneP incluse et ZoneQ exclue.
La procdure C poursuit en recopiant le chier excutable en mmoire vive,
e
e
e
a
` partir de ladresse ZoneP, vers les adresses fortes, cest-`-dire entre ZoneP
a
incluse et ZoneQ = ZoneP + taille exclue. Elle applique ensuite lalgorithme de
translation des adresses. Pour cela il faut lire dans le chier toujours ouvert la
zone des donnes de translation TEXT et la zone des donnes de translation
e
e
DATA. Le chier ne sert plus ` rien ensuite, et peut donc tre referm. Le
a
e
e
mot mmoire qui contient ladresse du nom du chier ` charger (juste sous
e
a
ladresse de retour dans lappelant du chargeur, marqu dune * sur la gure)
e
peut tre cras, puisque le nom ne sert plus ` rien. On y range ladresse ZoneQ
e e
e
a
(Cf. Figure 20.2-(c)).
Lun des champs de len-tte donne le dcalage Dcal du point dentre du
e
e
e
e
programme Q par rapport au dbut de sa zone TEXT : cest ladresse relative
e
504
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3.4
Il ne reste plus quune tape pour atteindre ltat dcrit par la gure 20.2e
e
e
(d), dans lequel le programme Q est install et en cours dexcution. On sest
e
e
ramen ` linvariant dcrit par la gure 20.2-(a), Q peut lui-mme charger et
ea
e
e
lancer un autre programme.
Une instruction type rts du langage machine 68000 sut () : son excution
e
dpile ladresse absolue du point dentre du programme Q dans le compteur
e
e
programme. On entre donc dans le code de la procdure principale du proe
gramme Q avec SP pointant sur ladresse de retour dans P, et FP pointant sur
la base de lenvironnement de P. Le prologue de la procdure principale de Q
e
installe la sauvegarde du pointeur de base, dplace FP, puis dplace SP pour
e
e
mnager la place des variables locales de la procdure principale de Q.
e
e
Les param`tres pour Q, qui lui avaient t transmis par P via C, sont
e
ee
disponibles dans la pile ` lendroit habituel, ` partir de FP+3 4 (les adresses
a
a
tant stockes dans 4 octets).
e
e
2.3.5
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.4
505
3.
Programmation de linterpr`te
e
de commandes
506
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.1
3.2
3.2.1
507
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
508
Lexique
Fin : un boolen
e
L : un tableau de caract`res
e
NomProg : un tableau de caract`res
e
Param : un tableau de tableaux de caract`res
e
CommandesIntrins`ques : un ensemble de tableaux de caract`res
e
e
{ Les noms des commandes directement traites dans la boucle dine
terprtation, dont Quitter }
e
NbParam : un entier 0
Algorithme
{ Diverses initialisations }
Fin faux
rpter jusqu` Fin
e e
a
{ Lecture dune ligne par appel du pilote de clavier. }
L ...
{ Analyse lexicale et syntaxique de la ligne L : fournit NomProg, Param
et NbParam }
si NomProg CommandesIntrins`ques
e
selon NomProg
NomProg = comm1 : ...
NomProg = comm2 : ...
NomProg = Quitter : Fin vrai
...
sinon
{ Squence dappel du chargeur/lanceur, voir paragraphe 3.1 cie
dessus. }
{ Fin de linterpr`te. }
e
Fig. 20.3 Commandes intrins`ques de linterpr`te de commandes
e
e
509
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
dant est charg en mmoire, excut, rend un rsultat, et ce rsultat est ach
e
e
e e
e
e
e
par linterpr`te de commandes.
e
Il est important de noter que, si le SGF nore pas la notion de rpertoire
e
courant, il est impossible de lintroduire au niveau de linterpr`te de come
mandes. Linformation sur le rpertoire courant devrait tre une variable du
e
e
programme interpr`te, et les fonctions de consultation et modication de cette
e
variable des commandes intrins`ques. La prise en compte dune notion de
e
rpertoire courant devrait tre assure par lalgorithme de linterpr`te, qui dee
e
e
e
vrait prxer systmatiquement les noms de chiers non absolus (ceux qui ne
e
e
commencent pas par un caract`re slash, dans la syntaxe unix) par la cha
e
ne
de caract`res rpertoire courant. Mais linterpr`te de commandes na aucun
e
e
e
moyen de savoir lesquels, parmi les arguments dune commande, sont des noms
de chiers. Seul le programme lanc sait lesquels de ses param`tres sont des
e
e
noms de chiers, et pour ceux-l` il appelle les fonctions dacc`s du SGF, lesa
e
quelles peuvent prxer le nom par le rpertoire courant. La commande cd
e
e
(change directory) des interpr`tes de unix usuels ne peut donc pas tre une
e
e
commande intrins`que : elle fait appel ` la fonction correspondante du SGF.
e
a
En revanche, il est possible de grer, dans linterpr`te de commandes, une
e
e
pile de rpertoires. On introduit alors empiler et dpiler, comme spcis
e
e
e e
au chapitre 4, paragraphe 5.1, sous forme de commandes intrins`ques. Par
e
exemple, dans linterpr`te csh de syst`mes unix, ces commandes sappellent
e
e
pushd et popd. Une telle commande met ` jour la variable pile de linterpr`te
a
e
de commandes, et appelle la fonction SetRepCour du SGF.
3.2.4
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
510
Lexique
...
Prxes : un tableau de tableaux de caract`res
e
e
{ Les prxes possibles pour un nom de chier correspondant ` une
e
a
commande }
NbPrxes : un entier 0
e
ok : un boolen ; j : un entier
e
Algorithme
{ Diverses initialisations dont celle du tableau Prxes et de la variable
e
NbPrxes }
e
...
rpter jusqu` Fin
e e
a
ok faux ; j 1
tant que (non ok) et (j NbPrxes)
e
Empiler les param`tres ` destination du programme ` lancer
e
a
a
Empiler la cha Prxes[j] & / & NomProg
ne e
{ On a empil le nom du programme ` lancer. & est loprateur
e
a
e
de concatnation de cha
e
nes de caract`res }
e
{ Empiler les adresses des cha
nes prcdentes, le nombre de pae e
ram`tres et ladresse du nom du programme ` lancer }
e
a
Appel du chargeur/lanceur
{ Si le chargeur ne trouve pas le chier demand, il rend un code
e
derreur FICHIER NON TROUVE (Cf. Paragraphe 2.1.2). }
si rsultat = FICHIER NON TROUVE
e
alors j j+1 { on va essayer avec un autre prxe }
e
sinon ok vrai { on sort de la boucle }
si (non ok)
alors Ecrire (Commande non trouve)
e
sinon
{ le programme a t excut, dpiler les param`tres du charee
e e e
e
geur/lanceur }
{ Fin de linterpr`te. }
e
Fig. 20.5 Gestion dune liste de chemins dacc`s
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
511
4.1
4.2
Structures de contrle
o
$i parcourt
ls.
de base, sans extension
se termine pas par .fig
nom $i
On reconna
tra aisment dans le texte de programme ci-dessus des struce
tures de contrle similaires ` celles prsentes au chapitre 4. Les actions de
o
a
e
e
base, en revanche, sont tr`s direntes. Dans un langage de programmation
e
e
ordinaire, on y trouve principalement laectation et les entres/sorties. Ici on
e
512
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Sixi`me partie
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 21
1.
Les syst`mes avec lesquels nous avons lhabitude de travailler sont mule
titches et multi-utilisateurs. Ce sont deux notions tr`s direntes, et quasia
e
e
ment indpendantes lune de lautre, que nous dtaillons ci-dessous. Par ailleurs
e
e
ces syst`mes donnent des droits dirents ` dirents programmes.
e
e
a
e
1.1
Syst`mes multitches
e
a
516
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2
Syst`mes multi-utilisateurs
e
1.3
Hirarchie de droits
e
2. Scrutation
517
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a
` introduire des mcanismes qui permettent, entre autres, dinterdire ` lutie
a
lisateur nal de raliser des oprations de tr`s bas niveau sur le disque. Les
e
e
e
acc`s aux entres/sorties sont rservs aux programmes qui ont t conus
e
e
e
e
ee
c
par les dveloppeurs du syst`me dexploitation. Il faut donc un mcanisme
e
e
e
de vrication que tous les acc`s aux entres/sorties, faits apparamment par
e
e
e
lutilisateur nal, se font bien, en ralit, ` travers des programmes dment
e e a
u
certis. Cette vrication se fait pendant lexcution, sans que lutilisateur ne
e
e
e
sen aperoive.
c
2.
Scrutation
518
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
3.1
519
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
520
Plan de la suite
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 22
Le mcanisme dinterruption
e
Nous allons doter un processeur dun mcanisme capable de scruter le
e
monde extrieur frquemment, rguli`rement et ` des instants bien identie
e
e
e
a
ables. Le choix qui est fait est de scruter entre les instructions. On pourrait
tout aussi bien construire un processeur o` la scrutation aurait lieu toutes
u
les 4 instructions. Ce mcanisme permet de mettre en place un partage du
e
temps entre le programme de lutilisateur et une tche active en fonction
a
e
des rsultats de la scrutation. Ce mcanisme sera enrichi dans les chapitres
e
e
ultrieurs dune scrutation ` des instants particuliers pendant lexcution dune
e
a
e
instruction.
Le processeur dcrit au chapitre 14 ne convient pas. Il tait fait pour mone
e
trer les principes de base de ce quest un processeur. Il tait trop simple pour
e
supporter les extensions dont la scrutation a besoin.
La premi`re tape du travail consiste (paragraphe 1.) ` se doter dun
e e
a
processeur pouvant tre tendu aisment par un mcanisme de scrutae
e
e
e
tion lmentaire (paragraphe 2.). Nous donnons au paragraphe 3. une
ee
utilisation typique de ce mcanisme : la mise ` jour de lheure. De nome
a
breuses autres utilisations existent. Au paragraphe 4., nous voquons les
e
probl`mes lis aux acc`s concurrents ` des informations partages.
e
e
e
a
e
1.
1.1
522
Le mcanisme dinterruption
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
BusA
Regdo,T,..
Rinst,
REtat
PC,SP,..
Oprateur
e
BusB
BusC
Bus Adresses
Bus Donnes
e
Vers la P.C.
TA
donnes vers la mmoire font aussi N bits. Les adresses de mots sont des
e
e
multiples de 4. Les registres sont identis par un numro ou un nom. Les
e
e
noms sont principalement une facilit mnmotechnique. Les instructions ont
e
e
3 oprandes au plus. Comme sur le sparc le registre de numro 0 contient
e
e
la constante 0. Les registres apparaissent sur la gure comme Regdo. SP vaut
pour Stack Pointer ; il est utilis comme pointeur de pile. PC vaut pour Program
e
Counter ; cest le compteur programme. Le programmeur peut les manipuler
par des instructions spciales.
e
Le processeur comporte un registre dtat REtat dont le contenu est accese
sible en permanence par la partie contrle.
o
Tous les registres, y compris le registre dtat, peuvent tre transmis via
e
e
les bus A et B vers loprateur. La sortie de loprateur peut tre transmise
e
e
e
dans nimporte quel registre via un bus C. Loprateur est dot de toutes les
e
e
oprations ncessaires : extraction des p bits de poids faible, gnration de
e
e
e e
constantes, fabrication des bits dtat Z, N, C, V, etc.
e
Des commutateurs entre le bus donnes bidirectionnel vers la mmoire et
e
e
les bus B et C permettent les communications dans les deux sens : mmoire
e
vers registres et registres vers mmoire.
e
Certains registres ne sont pas directement accessibles par le programmeur
dans les instructions : un registre particulier, connu sous le nom de Registre
Instruction Rinst, dont le contenu est accessible en permanence dans la partie
contrle du processeur ; un registre tampon gnral T sert dintermdiaire de
o
e e
e
stockage de valeurs temporaires ; un registre TA sert de Tampon dAdresse,
son contenu est transmis sur le bus adresses.
1.2
523
Rpertoire dinstructions
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
524
Le mcanisme dinterruption
e
reset
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
PC = 0
PC = PC+4
TA = PC
Inst 2 mots
RInst = M[TA]
Inst 1 mot
op reg
PC = PC+4
rts
op cst
T = M[TA]
SP = SP + 4
PC = M[TA]
M[TA] = regb
M[TA] = PC
jmp,brV
ld
regb = M[TA]
brF
jsr
TA,SP = SP-4
TA = SP
TA = PC
PC = T+(reg ou PC)
Fig. 22.2 Graphe de contrle du processeur, premi`re version. Certains rectangles como
e
portent 2 lignes distinctes, correspondant ` deux tats successifs, donc ` deux
a
e
a
microactions conscutives. Les deux tats seraient spars par une transition
e
e
e e
portant sur le prdicat toujours vrai.
e
instruction
ret. de ss-prog.
arithmtique
e
arithmtique
e
acc`s mm. LD
e
e
acc`s mm. ST
e
e
saut
branchement
options
+ cc
+ cc
champ1
champ2
champ3
regs1
regs1
rega
rega
regs2
Const.
Const.
Const.
Const.
Const.
regd
regd
regb
regb
rega
1.3
525
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
2.1
526
Le mcanisme dinterruption
e
=
=
=
=
=
SP-4
PC
44
M[TA]
M[TA]
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
basculement
de dpart
e
TA,SP
M[TA]
TA
TA
PC
reset
PC = 0
PC = PC+4 TA = PC
RInst = M[TA]
Inst 1 mot
rts, rti
TA = SP SP = SP+4
PC = M[TA]
Inst 2 mots
op
autres
non IRQ
IRQ
non IRQ
...
...
IRQ
527
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a
` plusieurs traitants dont les adresses de dbut seraient stockes ` partir de
e
e a
ladresse 6000.
On discutera, sous le nom de vectorisation du choix de cette technique au paragraphe 1.5 du chapitre 24. Lexercice E22.1 permet de discuter aussi ce point.
2.2
2.3
Commentaires
528
Le mcanisme dinterruption
e
adresses
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Rinst,REtat
Adresses
PO
Donnes
PC
IRQ
Calcul
tat
suivant
Calcul des
commandes
E
t
a
t
Const : 44
1000
2000
3000
6000
Prog1
TRAITANT
3500
4000
5000
Pile
6000
Clock, Reset
rti
3000
L/E
Processeur
Mmoire
TRAITANT
basculements
dpart
e
Prog1
retour
IRQ
PC
1200
1204
1212
SP
4800
4800
4800
M[4800]
1216
1216
1224
4800
4800
1216
1216
temps
Fig. 22.5 Diagrammes dvolution des valeurs de PC et SP. Une tranche de temps vere
ticale pleine correspond ` lexcution dune instruction. La tranche verticale
a
e
vide correspond au basculement de dpart. Les basculements de dpart et de
e
e
retour sont mis en vidence. Arbitrairement certaines instructions sont sur 1
e
mot, dautres sur 2.
529
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
530
Le mcanisme dinterruption
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.4
2.5
531
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
3.1
Le mcanisme dinterruption
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
532
TA,SP
M[TA]
TA,SP
M[TA]
REtat[I]
TA
TA
PC
=
=
=
=
=
=
=
=
SP-4
PC
SP-4
REtat
Vrai
44
M[TA]
M[TA]
basculement
de dpart
e
reset
PC = 0
PC = PC+4
swi
TA = PC
RInst = M[TA]
rti
rts
TA = SP
clri
SP = SP+4
seti
REtat[I] = Faux
REtat = M[TA]
autres instructions
REtat[I] = Vrai
ope
TA = SP
non IRQ ou I
SP = SP+4
PC = M[TA]
IRQ et non I
non IRQ ou I
IRQ et non I
Fig. 22.6 Graphe de contrle avec tout le traitement du mcanisme dinterruption. Les
o
e
instructions non lies aux interruptions ne gurent plus.
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
.data
secondes :long 0
.
minutes :.long 0
heures : .long 0
.text
plus1sec :* utilise R4 comme
/
ld [secondes], R4
add R4, 1, R4
st R4, [secondes]
subcc R4, 60, R0
blu retour
st R0, [secondes]
ld [minutes], R4
add R4, 1, R4
st R4, [minutes]
subcc R4, 60, R0
blu retour
st R0, [minutes]
ld [heures], R4
add R4, 1, R4
st R4, [heures]
subcc R4, 24, R0
blu retour
st R0, [heures]
retour : rts
533
registre de travail */
/* ou [R0 + secondes] */
/* secondes = secondes +1 */
/* si sec < 60 : termin */
e
/* secondes = 0 */
/* minutes = minutes +1 */
/* si min < 60 : termin */
e
/* minutes = 0 */
/* heures = heures +1 */
/* si heures < 24 : termin */
e
/* heures = 0 */
while (1)
{
/* attendre une impulsion sur le signal */
while (signal == 0) ; /* boucle vide ; sortie si signal = 1 */
while (signal == 1) ; /* boucle vide ; sortie si signal = 0 */
/* il y a bien eu une impulsion. */
plus1sec () ;
}
Fig. 22.8 Programme pendule
534
Le mcanisme dinterruption
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
535
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
SecondesDbut= secondes ;
e
MinutesDbut = minutes ;
e
HeuresDbut = heures ;
e
CALCUL ; /* Le calcul proprement dit */
SecondesFin = secondes ;
MinutesFin
= minutes ;
HeuresFin
= heures ;
Dure
e
= SecondesFin - SecondesDbut
e
+ 60 * (MinutesFin MinutesDbut) ;
e
+ 3600 * (HeuresFin HeuresDbut) ;
e
Fig. 22.9 Mesure dun temps de calcul
traitant :
Prologue :add sp, -4, sp
st R4, [sp]
/*empiler Reg de travail*/
Appel :
/* utilise le Reg de travail R4 */
jsr plus1sec
Epilogue ld [sp] , R4
add sp, +4, sp
/*dpiler Reg de travail*/
e
rti
Fig. 22.10 Traitant dinterruption de mise ` lheure
a
heure
3 :59 :57
3 :59 :58
3 :59 :59
4 :00 :00
traitant
calcul
IRQ
i d1
r1
d2
r2
d3
r3
536
Le mcanisme dinterruption
e
traitant
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
calcul
IRQ
3.3
3.3.1
537
traitant
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
calcul
IRQ
Fig. 22.13 Limpulsion du signal dinterruption, trop longue, est comptabilise 4 fois.
e
3.3.2
3.3.3
Le mcanisme dinterruption
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
IRQ
538
instr
add
add
jsr
test
test
test
t
test
Fig. 22.14 Limpulsion dune dure de 4 cycles dhorloge du processeur est prise en
e
compte si linstruction en cours est add et ignore parce que trop courte
e
dans le cas de jsr. Sur cette gure, le dpart en interruption entre les deux
e
instructions add nest pas reprsent.
e
e
3.4
De linterruption priodique au
e
partage de temps gnralis
e e
e
4.
03
minutes
59
secondes
04
59
00
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
heures
539
00
traitant
calcul
IRQ
s = 59
m=0 h=4
Supposons que lon ralise un transfert de 1000 francs dun compte bane
caire X crdit de 10000 francs vers un compte bancaire Y crdit de 2000
e e
e e
francs. Le transfert consiste ` dbiter X de 1000 francs puis ` crditer Y de
a e
a e
la mme somme. De ltat initial (10000,2000), le couple (X,Y ) passe par un
e
e
tat transitoire (9000,2000) pour atteindre ltat nal (9000,3000).
e
e
On dit que lopration de transfert est atomique, si un programme
e
sexcutant en concurrence avec celui qui ralise le transfert peut observer
e
e
(X,Y ) dans ltat initial ou dans ltat nal, mais pas dans ltat transitoire
e
e
e
(9000,2000).
Dans notre exemple de la pendule, le programme de calcul peut lire une
heure errone. Supposons quune interruption arrive ` 3h 59mn 59s o` le proe
a
u
gramme termine son calcul et lit lheure courante pour en calculer la dure
e
(gure 22.15).
Le scnario suivant montre que la lecture de lheure courante nest pas
e
atomique et peut rendre une valeur errone.
e
Le programme de calcul lit les secondes (Instruction SecondesFin =
secondes) et trouve 59. Linterruption est prise en compte juste apr`s et fait
e
passer lheure courante ` 4 :00 :00. Au retour dinterruption, le programme
a
interrompu poursuit sa consultation de lheure courante et lit les minutes (00)
et les heures (4). Lheure obtenue par le programmme nest ni 3 :59 :59, ni
4 :00 :00, mais 4 :00 :59. Cest une erreur. Le mme genre de probl`me peut
e
e
tre mis en vidence avec deux mises ` jour concurrentes. Sur un ordinateur
e
e
a
simple ` un seul processeur, le rem`de consiste ` suspendre la prise en compte
a
e
a
des interruptions pendant lacc`s aux variables partages pour le rendre atoe
e
mique. Cest la principale utilit des instructions clri et seti que nous avons
e
dcrites au paragraphe 2.5.
e
540
Exercices
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.
Le mcanisme dinterruption
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 23
1.
Principe et dnitions
e
542
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
par un troisi`me programme. Nous restons toutefois ici dans le contexte des
e
machines ` un seul processeur.
a
Un programme est une entit statique compose dinstructions dcrivant
e
e
e
une suite doprations ` raliser pour aboutir au rsultat recherch. A chaque
e
a e
e
e
excution dun programme correspond une activit et un processus associ dans
e
e
e
les tables du syst`me dexploitation, crs lors du lancement du programme et
e
ee
dtruits quand lexcution du programme se termine.
e
e
Il ne faut pas confondre programme avec processus ou activit. Si un utilie
sateur lance une compilation et une dition, il y a deux activits et le syst`me
e
e
e
dexploitation cre deux processus excutant deux programmes dirents (le
e
e
e
compilateur et lditeur). A deux compilations simultanes correspondent deux
e
e
processus distincts partageant le mme chier excutable mais des donnes
e
e
e
direntes.
e
Les ordinateurs capables dexcuter rellement plusieurs instructions dans
e
e
plusieurs processeurs sont des machines ` architecture dite parall`le, dotes
a
e
e
dautant de processeurs que de calculs simultans. On trouve dans le commerce
e
de telles machines, puissantes mais onreuses, inadaptes pour un utilisateur
e
e
qui na pas besoin dune grande puissance de calcul mais qui ne veut pas tre
e
bloqu durant une compilation.
e
Les syst`mes dexploitation multitches ont t conus pour ce genre dutie
a
ee
c
lisation. Ils g`rent un partage de temps du processeur et donnent aux utilisae
teurs limpression de disposer dautant de processeurs (virtuels) que de travaux
a
` mener de front. Les contraintes matrielles sur lordinateur se rsument ese
e
sentiellement ` une taille de mmoire susante pour contenir lensemble des
a
e
programmes ` excuter et ` lexistence dun mcanisme dinterruption.
a e
a
e
La prsentation du mcanisme de partage de temps dans ce paragraphe et
e
e
les paragraphes 2. et 3. suppose que les programmes ont dj` t lancs et que
eaee
e
les processus prexistent.
e
1.1
1. Principe et dnitions
e
543
lection
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
a3
a2
a1
IRQ
di1 ri1
di2 ri2
di3 ri3
di4 ri4
di5 ri5
t
di6
lexcution de lactivit a2. Cette derni`re est ` son tour suspendue par le
e
e
e
a
deuxi`me dpart en interruption (di2 ) et sera reprise lors du quatri`me retour
e
e
e
dinterruption (ri4 ).
Lintervalle de temps entre les deuxi`me et troisi`me interruptions est utilis
e
e
e
par a3, dont lexcution sera reprise puis suspendue ` nouveau aux instants
e
a
respectifs ri5 et di6 .
Le mme scnario se reproduit toutes les trois interruptions et le processeur
e
e
travaille ` tour de rle pour la premi`re activit, la deuxi`me, et ainsi de suite
a
o
e
e
e
jusqu` la derni`re, apr`s quoi le processeur est raect ` la premi`re activit
a
e
e
e
ea
e
e
et cette squence se reproduit ` lidentique dans un nouveau cycle.
e
a
Le processus associ ` lactivit en cours dexcution est le processus actif
ea
e
e
ou lu. Les autres processus sont dits prts (sous entendu ` poursuivre leur
e
e
a
excution lorsque le processeur leur sera attribu de nouveau). Dans le parae
e
graphe 3. du chapitre 24 nous verrons que les processus peuvent aussi se bloquer
en attente dvnements tels que des ns dentres/sorties par exemple.
e e
e
On parle de commutation dactivit, ou de commutation de processus, pour
e
dsigner le passage dune activit, et videmment dun processus, ` une autre.
e
e
e
a
La gure 23.2 en dtaille le droulement. Cette commutation est dclenche
e
e
e
e
par une interruption. Le traitant est alors appel traitant de commutation.
e
Lors du retour dinterruption, une activit doit retrouver la machine dans
e
ltat o` elle la laisse lors de sa suspension. Ltat de la machine est saue
u
e
e
vegard dans des structures de donnes que nous tudions en dtail au parae
e
e
e
graphe 2..
La premi`re tape de la commutation (s) est reprsente en traits ns sur
e e
e
e
les gures 23.1 et 23.2. Elle sauvegarde le contexte (essentiellement le contenu
des registres du processeur) de lactivit suspendue (a2) dans les structures de
e
donnes du processus actif (p2).
e
Le mcanisme de dpart en interruption intgr au processeur sauvegarde
e
e
e e
automatiquement certains registres. La sauvegarde des autres registres est explicitement programme dans le prologue du traitant de commutation.
e
Le droulement de linterruption se termine par une squence symtrique de
e
e
e
544
ordonnanceur
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
activit a3
e
RTI
activit a2
e
processus
actif
RTI
p2
nant
e
p3
IRQ
di2
de2
fe2
ri2
restauration (r) du contexte du (nouveau) processus actif (p3) depuis les structures de donnes convenables. Une partie de cette squence est programme
e
e
e
dans lpilogue du traitant, et lautre ralise automatiquement par linstruce
e e
tion rti. On a videmment symtrie par rapport au dpart.
e
e
e
Le syst`me dexploitation comporte des procdures charges dlire un noue
e
e
e
veau processus actif. Ces procdures constituent lordonnanceur. Le corps du
e
traitant appelle les procdures de lordonnanceur.
e
Lexcution des programmes des utilisateurs, lactivit, cesse d`s le dpart
e
e
e
e
en interruption et ne reprend quau retour dinterruption. Mais on notera que
du point de vue de la gestion des structures de donnes du syst`me, la come
e
mutation eective de processus a lieu entre la n de la sauvegarde et le dbut
e
de la restauration, qui utilisent les structures de donnes de lancien (p2) et
e
du nouveau (p3) processus actifs.
Lordonnanceur nest pas une activit comme une autre. Il ne rsulte pas
e
e
du lancement dune commande et le syst`me ne maintient pas de structures
e
de donnes pour lui ; ainsi, lordonnanceur nest pas un processus.
e
On note une dirence par rapport ` lexcution dun rti normal : ici lactie
a
e
vit reprise nest pas ncessairement celle qui a t interrompue lors du dpart
e
e
ee
e
en interruption. Lordonnanceur peut choisir et installer une autre activit.
e
1.2
1. Principe et dnitions
e
545
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
546
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
2.1
547
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
est dot ` cet eet dune zone de mmoire prive destine ` la sauvegarde et
ea
e
e
e a
a
` la restauration du contenu des registres, y compris le pointeur de pile SP
(dans le prologue et lpilogue du traitant de commutation).
e
Enn il est ncessaire que la suspension nait pas dincidence directe sur les
e
entres et sorties eectues par le processus suspendu. Il sut pour cela de doe
e
ter les processus de tables de chiers ouverts individuelles et de terminaux de
dialogue distincts. Les syst`mes multi-utilisateurs sont videment dots daue
e
e
tant dcrans-claviers que de personnes utilisant simultanment la machine.
e
e
Mais lorsque les processus sont lancs par le mme individu depuis le mme
e
e
e
cran-clavier, lcran peut tre divis en fentres qui constituent autant de
e
e
e
e
e
terminaux virtuels.
Quand un processus est actif, les registres du processeur (Rtat, PC, SP,
e
registres donnes) contiennent des valeurs ` jour. Quand le processus est inace
a
tif, les informations pertinentes sont en mmoire dans la zone de sauvegarde
e
du processus.
On peut ainsi assimiler un processus ` une machine virtuelle excutant
a
e
un programme, dont la mmoire est consitue des zones texte, donnes
e
e
e
et pile alloues au processus, et dont le processeur est reprsent par la
e
e
e
zone de sauvegarde des registres en mmoire.
e
2.2
2.2.1
Une partie de la mmoire est occupe par les instructions et les variables
e
e
globales du syst`me dexploitation : elle contient entre autres lamorce de
e
dmarrage, les pilotes de priphriques, le syst`me de gestion de chiers, lore
e
e
e
donnanceur et les traitants.
La gure 23.3 dcrit les structures de donnes en mmoire reprsentant les
e
e
e
e
processus. Le syst`me dexploitation g`re une table proc dont la taille dnit un
e
e
e
nombre maximal de processus. Chaque entre de cette table est une structure,
e
nomme descripteur (de taille TPROC) qui dcrit un processus. Les processus
e
e
peuvent tre identis par leur numro dentre, ou pid (process identier),
e
e
e
e
dans cette table.
Dans la mthode du tourniquet, les processus dont lexcution est suspene
e
due sont cha es dans une le des (processus) prts. Deux variables globales
n
e
du syst`me mmorisent les pid respectifs du premier et du dernier procese
e
sus de cette le (tte-prts et queue-prts). Le pid du processus lu (en cours
e
e
e
e
dexcution) est stock dans la variable globale actif.
e
e
Le reste de la mmoire utilise est structur en autant dexemplaires de
e
e
e
zones texte, donnes et pile que de processus.
e
Le champ suivant du descripteur permet de lier les processus prts entre
e
eux dans la le des prts. Le champ tat du descripteur dcrit le statut du
e
e
e
548
suivant
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
proc
0
1
table des
PID
tat
e
proc[PID]
T dbut
e
T n
TPROC
processus
n-1
D dbut
e
donnes
e
D n
P dbut
e
actif
tte-prts
e
e
queue-prts
e
texte
P n
pile
sregs
ssp
Fig. 23.3 Reprsentation dun processus en mmoire : ` gauche les variables globales
e
e
a
du syst`me dont la table des processus, au centre le dtail dun descripteur
e
e
de processus et ` droite les zones de mmoires aectes ` un processus
a
e
e a
(texte, donnes et pile du processus). La portion de zone pile dj` utilise
e
ea
e
est reprsente en gris plus fonc.
e
e
e
processus : actif, prt ou inexistant (pour les entres de la table encore inoce
e
cupes). Le descripteur contient aussi les adresses de dbut et de n des zones
e
e
texte (T), donnes (D) et pile (P) alloues au processus. Le champ ssp contient
e
e
une copie du registre pointeur de pile SP.
2.2.2
Quand le processus est actif, les valeurs ` jour sont dans les registres du
a
processeur. De plus, il existe en mmoire une zone de sauvegarde des registres
e
dont le contenu nest signicatif que si le processus nest pas actif. Cette zone
comporte deux parties physiquement spares.
e e
Une premi`re partie occupe le sommet de la zone de pile du processus.
e
On la note sregs. Elle est destine aux registres ordinaires dont le contenu est
e
empil lors du dpart en interruption.
e
e
Une autre partie se rduit ` la copie du registre pointeur de pile SP qui nest
e
a
pas sauvegard au moment du basculement de dpart en interruption. Elle est
e
e
dans le champ ssp du descripteur du processus dans la table des processus.
Ce champ ssp contient ladresse de la zone sregs. Cette information est sauvegarde par le prologue du traitant de commutation, et, symtriquement,
e
e
restaure par lpilogue.
e
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.
549
3.1
pr^tversactif () {
e
actif = retirer_pr^ts ();
e
proc[actif].tat = ACTIF; }
e
550
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
3.2
551
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Le fragment de code suivant range dans le registre R1 ladresse du descripteur du processus actif :
set actif, R1
ld [R1], R1
mul R1, TPROC, R1
set proc, R2
add R1, R2, R1
Ce fragment de code sera remplac par lexpression : INITdesc (R1, actif).
e
3.2.1
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
552
traitant :
prologue :INITdesc (R1, actif)
st SP, [R1+deltassp]
e
lection :/* code dans le paragraphe prcdent */
e e
epilogue :INITdesc (R1, actif)
ld [R1+deltassp], SP
Pile Pprec
descripteur
Pprec
pret
R0 = 0
R1
s
r
e
g
s
R1
Rn-1
REtat
PC
Pile Pnouv
Rn-1
REtat
PC
SP
Registres du
processeur
Pdbut
e
Pn
ssp
descripteur
Pnouv
pret
sregs
Pdbut
e
Pn
ssp
Fig. 23.5 Contenu de la mmoire et des registres du processeur lors dune commutae
tion du processus Pprec au processus Pnouv, au point dobservation avant
lexcution de linstruction rti
e
553
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
traitant :
/* les registres ordinaires ont t empils par le processeur
e e
e
dans la pile de Pprec */
prologue : jsr sauver
pointobsA : /* Point dobservation */
election : /* masquer IT : atomicit dacc`s ` file des pr^ts */
e
e a
e
seti
/* Election du nouveau proc. dans pile spciale*/
e
set pileordo , SP
jsr actifverspret
jsr pretversactif
/* actif = Pnouv */
cli /* dmasquer IT : fin dexclusion mutuelle */
e
epilogue : jsr restaurer
reprise : rti /* restaure les registres autres que SP */
sauver :
restaurer :
pointobsB : /* Point dobservation */
INITdesc (R1, actif) /* actif est Pnouv */
ld [R1+deltassp], SP /* SP = proc[Pnouv].ssp */
pointobsC : /* Point dobservation */
/* Corrige ladresse de retour pour excution
e
du rts de la procdure restaurer */
e
set reprise, R1
st R1, [SP] /* sommet de pile = ladresse reprise */
pointobsD : /* Point dobservation */
rts /* retour ` reprise */
a
Fig. 23.6 Traitant de commutation de processus utilisant une pile prive
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
554
(a)
(b)
descripteur
Pprec
descripteur
Pprec
pile Pprec
election
sregs
SP
var globales
pile ordo
var globales
pile ordo
descripteur
Pnouv
pile Pprec
election
sregs
descripteur
Pnouv
pile Pnouv
(c)
SP
pile Pnouv
(d)
descripteur
Pprec
reprise
descripteur
Pprec
pile Pprec
election
sregs
pile Pprec
election
sregs
var globales
pile ordo
descripteur
Pnouv
var globales
pile ordo
descripteur
Pnouv
pile Pnouv
election
sregs
SP
pile Pnouv
reprise
sregs
SP
555
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
556
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
Cration
e
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.1
557
4.2
Terminaison
558
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.3
4.4
Le mod`le unix
e
559
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.5
Scnario de dmarrage :
e
e
cration dun premier processus
e
Nous considrons ici les cas dun ordinateur auquel sont relis un certain
e
e
nombre de terminaux. Un chier sur disque dcrit ces terminaux ainsi que
e
lensemble des utilisateurs autoriss ` se connecter.
e a
A linitialisation le processeur excute un traitant de dmarrage (amorce)
e
e
rsidant en mmoire morte et contenant un pilote de disque rudimentaire.
e
e
Apr`s que le syst`me ait t charg en mmoire, que les structures de donnes
e
e
ee
e
e
e
aient t initialises, quun certain nombre de vrications aient t faites, la
ee
e
e
ee
procdure damorage fabrique un pseudo processus pour appeler la procdure
e
c
e
de cration de processus et crer le processus initial appartenant ` un utilisae
e
a
teur privilgi : le superutilisateur.
e e
Le chier excutable pass en param`tre (init) contient le programme de
e
e
e
dmarrage du syst`me. Celui-ci consulte un chier donnant la liste des termie
e
naux via lesquels les utilisateurs sont autoriss ` se connecter. Pour chacun
e a
deux, il cre un processus grant la procdure de connexion (login) avec pour
e
e
e
param`tre le nom du terminal ` grer.
e
a e
Ce dernier processus ache la banni`re de connexion. Il saisit ensuite le
e
nom du compte et le mot de passe (en supprimant lcho ` lcran) et les
e
a e
compare au contenu du chier de dclaration des utilisateurs. Dans le cas
e
o` la connexion est accepte, le processus de connexion cre un processus
u
e
e
appartenant ` lutilisateur connect pour excuter le programme associ `
a
e
e
e a
cet utilisateur dans le chier de dclaration. Cela peut tre par exemple un
e
e
interpr`te de commandes.
e
Linterpr`te de commande fonctionne comme celui du syst`me simple `
e
e
a
e
deux dirences pr`s : lappel de la procdure charger lancer est remplac par
e
e
e
un appel superviseur de cration de processus suivi dun appel dattente de
e
terminaison ; lorsque la commande est une dconnexion (logout), le processus
e
interpr`te de commande excute un appel de terminaison et meurt.
e
e
La terminaison du processus termine la session de travail, rveille le proe
cessus p`re qui rache la banni`re et attend une nouvelle connexion dun
e
e
e
utilisateur sur le terminal.
560
Exercices
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
5.
empiler :
sub SP, delta_reg7, SP
st REG1, [SP + delta_reg1]
st REG2, [SP + delta_reg2]
...
st REG6, [SP + delta_reg6]
ld [SP + delta_reg7], REG1
st REG1, [SP]
st REG7, [SP + delta_reg7]
rts
election : seti
jsr actifverspr^t
e
jsr pr^tversactif
e
cli
epilogue : jsr restaurer
rti
sauver :
INITdesc (R1, actif)
st SP, [R1+deltassp]
rts
restaurer:
INITdesc (R1, actif)
ld [R1+deltassp], SP
rts
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Chapitre 24
Gnralisation du mcanisme
e e
e
dinterruption et applications
Nous avons introduit au chapitre 23 la notion de processus, brique de base
de la construction des syst`mes complexes. Ce mcanisme plus avanc permet
e
e
e
de donner limpression de vraiment traiter deux tches simultanment.
a
e
Il nous reste maintenant ` tudier comment gnraliser le mcanisme des
ae
e e
e
interruptions ` plusieurs sources dinterruption et grer les probl`mes de proa
e
e
tection des informations des direntes activits se droulant simultanment.
e
e
e
e
Par ailleurs, les direntes approches dentres/sorties tudies au chae
e
e
e
pitre 16 utilisent principalement une phase dattente active o` le procesu
seur ne fait rien dautre que de scruter un coupleur en attendant que le
priphrique soit en tat de communiquer. Lenrichissement du syst`me dintere
e
e
e
ruption et lutilisation du mcanisme de processus vont permettre de partager
e
vritablement le temps du processeur entre des tches de calcul et des tches
e
a
a
dentres/sorties. Nous gardons toutefois la synchronisation lmentaire : le
e
ee
coupleur maintient la requte tant quil ne reoit pas de la part du processeur
e
c
un acquittement signiant que la requte est prise en compte.
e
562
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.
1.1
Il importe de distinguer les sources dinterruption selon leur origine physique et logique. Certaines proviennent de lintrieur du processeur, dautres
e
de lextrieur.
e
1.1.1
Sources internes
Parmi les sources internes, citons tout ce qui est li ` lexcution dune
e a
e
instruction.
Instruction SoftWare Interrupt (swi) On a dj` mentionn lexistence
ea
e
de cette instruction. Elle est utilise prioritairement pour appeler une fonction
e
563
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
564
PC = PC+4
RInst = M[TA]
Load
swi
source = 3
reg = M[TA]
mot align
e
adresse valide
mot non
align
e
TA = PC
adresse invalide
et mot align
e
source = 2
code invalide
autres
excution
e
source = 4
non IRQ ou I
IRQ et non I
source = 1
source = 5
TA,SP =
M[TA] =
TA,SP =
M[TA] =
REtat[I] =
TA =
TA =
PC =
SP-4
PC
SP-4
REtat
Vrai
f(source)
M[TA]
M[TA]
Fig. 24.1 Graphe de contrle (tr`s partiel) du processeur acceptant plusieurs sources
o
e
dinterruptions
1.1.2
Sources externes
565
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.2
1.3
566
1.4
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
1.5
567
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Par matriel, cela revient ` utiliser les boolens irq1, irq1.irq2, irq1.irq2.irq3,
e
a
e
et irq1.irq2.irq3 comme conditions de validation des arcs dans le graphe de lautomate de contrle. Cest ce qui est fait sur la gure 24.1 pour les sources mot
o
non align et adresse invalide apr`s ltat de lecture mmoire et chargement
e
e e
e
dun registre dans lexcution de linstruction de chargement.
e
Le deuxi`me cas sapplique pour les machines o` les coupleurs fournissent
e
u
chacun un l de requte, par exemple jusqu` 16 ls, mais o` un circuit externe
e
a
u
au processeur, nomm encodeur de priorit dinterruptions, ne fournit au proe
e
cesseur que le numro, sur 4 bits, du l actif de plus fort numro. Le cblage du
e
e
a
clic souris sur lentre 3, de lhorloge sur lentre 14 et du contrleur de disque
e
e
o
sur lentre 7 xe alors les priorits respectives de ces direntes sources pose
e
e
sibles. Si les 3 sources mettent des requtes simultanes, cest lhorloge (de
e
e
e
niveau 14) qui sera servie.
Les troisi`me et quatri`me cas ont lieu quand plusieurs sources sont relies
e
e
e
par un seul l physique au processeur selon un montage ` base dune porte NOR
a
en NMOS o` la rsistance de rappel ` lalimentation est, par exemple, interne
u
e
a
au processeur (Cf. Figure 24.2). Le processeur entame alors une scrutation,
par logiciel, dans un ordre donn, des registres dtats des dirents coupleurs
e
e
e
pour identier celui qui est lauteur de la requte. Dans le cas de requtes
e
e
568
bo
tier coupleur k
irq k
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
bo
tier coupleur i
irq i
processeur
bo
tier coupleur j
irq j
1.6
Les processeurs sparc ont une protection contre une utilisation dune nouvelle fentre qui viendrait ` craser une fentre dj` utilise. Si un tel acc`s
e
ae
e
ea
e
e
est tent par une instruction, une interruption interne est mise. Le traitant
e
e
dinterruption doit alors sauver en mmoire, dans une zone gre en pile, le
e
ee
contenu des registres menacs. Au retour du traitant dinterruption, il convient
e
569
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.
2.1
570
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.2
571
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.3
Instructions privilgies
e e
2.4
572
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
syst`me est interdit. SP est le nom du pointeur de pile actif dans le mode
e
dexcution courant, les commandes dacc`s aux registres tiennent compte
e
e
du mode dexcution. Lappel de procdure, qui fait usage de SP, est ainsi
e
e
indpendant du mode dans lequel sexcutent les procdures.
e
e
e
2.5
2.6
Protection gnralise
e e
e
573
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
2.7
Nous avons vu que chaque processus peut accder ` une zone texte, une
e
a
zone donnes et une zone pile en mmoire. Pour garantir quun processus
e
e
nacc`de pas aux zones de ses voisins, nous dotons le processeur de 6 ree
gistres supplmentaires. Ces registres seraient inclus dans une partie de calcul
e
dadresse CA qui ne gure pas sur la gure 22.1. On la situerait dans la zone
du registre TA. Ces 6 registres doivent contenir en fonctionnement normal les
adresses de dbut et de n des 3 zones de texte, donnes et pile du processus en
e
e
cours dexcution. Le bloc CA contient de plus 6 comparateurs entre ladresse
e
courante et ces 6 constantes (Cf. Figure 24.3).
Ces 6 registres sont mis ` jour lors de ltape dpilogue du traitant dintera
e
e
ruption qui assure la commutation de processus (Cf. Figure 23.6). Les valeurs
a
` y installer gurent dans le descripteur du processus.
La protection peut se faire ` dirents niveaux que nous allons aborder
a
e
successivement.
Un premier niveau de vrication consiste ` sassurer, ` la vole, lors de
e
a
a
e
chaque acc`s mmoire ` une addresse ad que :
e
e
a
Dbut texte ad Fin texte
e
Dbut donnes ad Fin donnes
e
e
e
Dbut pile ad Fin pile
e
Si aucune de ces conditions nest satisfaite (t=d=p=0), lacc`s mmoire
e
e
est annul (signal Acc`sMem mis ` 0) et une interruption est mise. Cest
e
e
a
e
574
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
bus int
z-1
fZ
z+1
z-1
z+1
axb
x
dZ
z-1
z+1
z-1
z+1
Fig. 24.3 Comparateur simple entre une adresse et des dbuts (dZ) et n (fZ) de zones.
e
Les trois comparateurs sont cascads. Lentre S est le bit superviseur. En
e
e
eet la vrication est faite en mode Utilisateur seulement.
e
Translation dadresses
575
Rtrad
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Super/Util
Adresse logique
Adresse physique
chaque acc`s ` la mmoire une addition soit faite entre ladresse logique mise
e a
e
e
par le processeur et le contenu dun registre de traduction Rtrad. Dans beaucoup de cas les donnes des programmes sexcutant en mode superviseur ne
e
e
sont pas soumises ` ce traitement (Cf. Figure 24.4).
a
En cumulant protection et translation dadresse, on a un vricateur dacc`s
e
e
pour chaque zone. Ces dirents vricateurs voient leurs rsultats cumuls par
e
e
e
e
un simple circuit qui donne un signal dautorisation dacc`s ` la mmoire et le
e a
e
dplacement correspondant si il y a un acc`s permis, un signal dinterruption
e
e
interne si aucun acc`s nest permis.
e
3.
3.1
576
pendule
Actif
Endormi
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
Prt
e
pendule
IRQnE/S(coupleur)
3.2
Nous venons de voir que le processeur na plus besoin de scruter par programme le mot dtat dun coupleur lanc dans une action dentre/sortie.
e
e
e
Mais que peut-il faire dautre ? Un programme comportant une lecture dun
caract`re au clavier et le traitement de ce caract`re ne peut videmment pas
e
e
e
se poursuivre tant que le caract`re nest pas obtenu. On va donc dire que ce
e
programme, le processus qui lui est associ en fait, sendort ou se bloque.
e
Les tats des processus Aux deux tats Prt et Actif des processus, nous
e
e
e
ajoutons un tat Endormi (ou Bloqu). Ces 3 tats sont reprsents sur la
e
e
e
e
e
gure 24.5. Dtaillons les raisons qui font passer un processus dun tat ` un
e
e
a
autre :
1. Un processus Actif qui na pas dentres/sorties en cours peut tre mis
e
e
sur la le des Prts ` la suite dune interruption cause par la pendule
e a
e
priodique de lordinateur.
e
2. Un processus Prt, en tte de le, peut tre remis en tat Actif ` la suite
e
e
e
e
a
dune interruption cause par la pendule priodique de lordinateur.
e
e
Ces deux situations ne sont pas nouvelles par rapport au chapitre 23.
3. Si un processus Actif a besoin dune action dentre/sortie, il fait un appel
e
syst`me (par une instruction swi) en donnant toutes les informations
e
sur la nature de lentre/sortie souhaite. Le syst`me dexloitation lance
e
e
e
laction en crivant dans le coupleur les commandes ncessaires et met
e
e
le processus en tat Endormi.
e
577
a)
actif
prt
e
actif
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
P1
P2
prt
e
P3
actif
endormi
prt
e
P4
actif
prt
e
prt
e
actif
prt
e
actif
SWI
prt
e
prt
e
IRQnE/S
Priode de pendule
e
P1
b)
P2
endormi
P3
endormi
P4
3.3
578
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
attendre priphrique () {
e
e
dormeur = actif ;
proc[actif].endormir = VRAI ;
/* autoriser IT au niveau du coupleur */
*commande coupleur = AUTORISER IT ;
appel superviseur dormir ; }
Fig. 24.7 Procdure dattente
e
traitant dormir () {
empiler () ;
sauver () ;
masquer it () ;
/* la manipulation de la structure dcrivant les processus */
e
/* ncessite une exclusion mutuelle */
e
si proc[actif].endormir alors actif vers bloqu () ;
e
dmasquer it () ;
e
restaurer () ;
dpiler () ; }
e
actif vers bloqu () {
e
proc[actif].tat = BLOQUE ;
e
pr^t vers actif () ; }
e
Fig. 24.8 Traitant de blocage
579
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
traitant reveil () {
empiler () ;
masquer it () ;
/* la manipulation de la structure dcrivant les processus */
e
/* ncessite une exclusion mutuelle */
e
si proc[actif].tat == BLOQUE ;
e
alors
bloqu vers actif () ;
e
sinon
/* le processus na pas eu le temps de sendormir */
proc[actif].endormir = FAUX ;
dmasquer it () ;
e
dpiler () }
e
bloqu vers actif () {
e
proc[dormeur].tat = PRET ;
e
ajouter pr^t (dormeur) ; }
e
Fig. 24.9 Traitant dinterruption de rveil
e
580
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
4.
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
Index
582
INDEX
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
bogue, 17
boolen, 14, 57
e
Boole (alg`bre de), 33
e
boutiste (gros, petit), 92
branchement, 20, 280
Bresenham (algorithme de), 121, 262
BSS (zone), 306, 465, 496, 548, 570
bus, 21, 160, 189, 255
adresse, 21, 212
dconnexion de , 395
e
donnes, 21, 212
e
mmoire, 212, 391
e
multiplex, 394
e
INDEX
583
hexadcimal, 61
e
horloge, 25, 134, 224
i-node, 489
icnique, 511
o
implantation contigu/disperse, 479
e
e
indicateur, 66, 523
de dbordement (V), 70, 190, 293
e
de rsultat ngatif (N), 293
e
e
de rsultat nul (Z), 293
e
de retenue (C), 64, 190, 293
indirection et passage de param`tre, 331
e
information, 13
inhib, 530
e
initialisation, 209, 228
instruction, 16, 279
invalide, 300
jeu d, 277, 363
pseudo- , 309
interface, 15, 407, 453, 511
interpr`te de commandes, 25, 493
e
interprtation, 26, 297, 304, 448
e
du langage machine, 277, 359, 525
interruption, 289, 518, 519, 527, 542, 561
invariant, 96
inverseur, 153
isolant, 146
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
emprunt, 62
encodeur, 181
de priorit, 567
e
entier
naturel, 59, 84
relatif, 66, 84
entre, 407
e
dun circuit, 152, 173
dune machine squentielle, 109
e
entres/sorties, 407, 575
e
excuter, 20, 253, 359
e
exception (voir interruption), 289
exposant, 74
expression, 86
algbrique, 39, 186, 233
e
conditionnelle, 86
rguli`re, 113
e
e
jeu (dinstructions), 21
Karnaugh (tableau de), 41
584
INDEX
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
priode, 536
e
dhorloge, 25, 134, 225, 260, 368
priphrique, 24, 387, 407, 427
e
e
intelligent, 425
paralllisme, 255, 261, 371, 580
e
param`tre
e
donne, rsultat, 89, 331
e e
formel, 455
formel, eectif, 89
paramtrisation, 371, 525
e
partie
contrle, 224, 251, 257, 360
o
oprative, 224, 251, 253, 279, 360
e
passage (de param`tre)
e
par rfrence, 331
ee
par valeur, 331
pendule, 25, 531
phi-boolenne (fonction), 38
e
pid, 547
pile, 295, 327, 333, 448, 509, 522, 546
syst`me ` lexcution, 338
e
a
e
type abstrait, 103
pilote de priphrique, 27, 427, 474
e
e
pipeline, 247, 359
piste, 436, 487
PLA, PLD, 169
poids (fort, faible), 60, 92, 396
poigne de mains, 129, 258, 392, 410, 530
e
point dentre, 344, 465
e
pointeur, 85
dinstruction, 20
de base denvironnement, 335
de pile, 317, 380, 522, 546
reprsentation, 97
e
utilisation, 99
port (dentre, de sortie), 412
e
porte des noms, 89, 456
e
portabilit, 304
e
porte
INDEX
585
robot, 23
ROM, 184, 214
rupture de squence, 20, 291
e
slection, 252
e
de bo
tier, 396
mmoire, 212, 360, 395
e
squence cha ee, 99
e
n
squenceur, 27, 362
e
saut, 20, 291
a
` un sous-programme, 294, 343
secteur, 436
semi-conducteur, 146
SGBD, 474
SGF, 473, 474
Shannon, 40
signal
de commande, 252, 360
logique, physique, 134
signe, 66
simulation, 26
somme boolenne, 34
e
sortie, 407
dun circuit, 151, 173
dune machine squentielle, 109
e
fonction de, 225
sp (pointeur de pile), 317, 350
sparc, 313, 346, 362, 378, 403, 447, 498,
529, 568
statique
allocation , 101
lien, 335
point mmoire, 162, 214
e
superviseur, 565
suppression de chier, 489
synchrone, 131, 224
synchronisation, 257
dentres/sorties, 409
e
de circuits squentiels, 228
e
par poigne de mains, 129, 258, 392,
e
410, 530
Partie Contrle, Partie Oprative,
o
e
259
synth`se
e
cble/microprogramme, 224
a e
e
dautomate, 230
logique, 180
Syracuse (suite de), 243, 354
syst`me
e
a
` lexcution, 323
e
dexploitation, 27, 388
dmarrage, 493
e
de gestion de chiers, 25, 473, 474
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
586
INDEX
squentiel, 19
e
tche, 541
a
table de vrit, 36, 181, 234
e e
table des cha
nes, 466
table des symboles, 464
tableau (parcours de), 96
taille(), 92
tas, 101, 338
temporaires, 342
temps
dacc`s, 213
e
de cycle, 265, 368
de rponse, 156, 173
e
logique, continu, discret, 129
tester, 17
TEXT (zone), 306, 496, 548, 570
traduction, 25, 445
traitant dinterruption, 527, 542, 562
traitement, 24
transistor, 23, 149
transition, 258, 368
dune machine squentielle, 109
e
fonction de, 225, 232
translation dadresse, 307, 446, 573
TTL, 156
Turing (machine de), 18
type, 84
compatibilit de , 87
e
zone
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
Ar
P. chite
F. Amb cture
P. Lagn lard, s Lo
Sic ier
J.- gici
ard , F C. ell
, P . M Fe es e
h.
ara rna t M
Wa ni nd
nch ez, atr
ei
ille
elle
i,
s
Bibliographie
[Aa91]
[AL78]
[Bac90]
[BB83]
[BB88]
[Ben91]
[BGN63]
[CDLS86]
[CGV80]
P.-Y. Cunin, M. Griffith et J. Voiron : Comprendre la compilation. Springer Verlag, 1980. 2.4.2, 1.1.1, 2.2.1, 1.2
[CW96]
[GDS98]
[Gir95]
[HP94]
[Ifr94]
588
BIBLIOGRAPHIE
[Kar53]
[KB90]
[Kra85]
[Kun65]
[Kun67]
Ar
chi
P.
tec
Am tu
F.
bla res
La
P.
gn rd, Log
Sic ier
J.- icie
ard , F C.
. M Fe lles e
,P
ara rna t M
h.
Wa ni nde at
ri
e
ille nch z,
elle
i,
s
[Int97]
[Las98]
[Liv78]
[Mul89]
J.M. Muller :
Arithmtique des ordinateurs. oprateurs et fonctions
e
e
lmentaires. Masson, collection Etudes et Recherches en Informatique, 1989.
ee
2.2
[Org72]
[SFLM93]
P.-C. Scholl, M.-C. Fauvet, F. Lagnier et F. Maraninchi : Cours dinformatique : langages et programmation. Masson, 1993. 1., 1.4, 2.1, E8.9
[SG96]
[SL96]
[Tan94]
[Tur54]
[WM94]
[Zak80]