You are on page 1of 90

Architecture

et programmation
des ordinateurs
PUBLIC CONCERNE : premire anne DUT Informatique

Jacques LONCHAMP

DATE : 2012/2013

UNIVERSITE DE LORRAINE
IUT Nancy-Charlemagne
2ter boulevard Charlemagne
CS 55227
54052 NANCY Cedex
-----------------------

Tl : 03.54.50.38.00
Fax : 03.54.50.38.01
http://iut-charlemagne.univ-nancy2.fr

Table des matires


1 Introdu tion
1.1
1.2
1.3

Dnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
lments historiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Organisation du ours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 La reprsentation des informations


2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9

Rappels sur le binaire . . . . . . . . . . . . . . . . . . . . . . . .


Quelques lments de vo abulaire . . . . . . . . . . . . . . . . . .
Reprsentation des entiers naturels (N) . . . . . . . . . . . . . . .
Reprsentation o tale et hexad imale des nombres binaires . . .
Reprsentation des entiers relatifs (Z) . . . . . . . . . . . . . . .
Reprsentation des rels (R) . . . . . . . . . . . . . . . . . . . . .
Les ara tres alphanumriques . . . . . . . . . . . . . . . . . . .
Les types en Java et leur reprsentation en mmoire . . . . . . .
Reprsentation en mmoire des autres objets : sons, images, vido
2.9.1 Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9.2 Les images . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9.3 La vido . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

Les omposants le troniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Les portes logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les ir uits logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Constru tion d'un ir uit ombinatoire quel onque . . . . . . . . . . . . . .
3.3.2 Un ir uit squentiel  la bas ule . . . . . . . . . . . . . . . . . . . . . . . .
La stru ture d'un ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Organisation gnrale en omposants . . . . . . . . . . . . . . . . . . . . . .
3.4.2 La mmoire entrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.3 L'unit de ommande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.4 L'unit arithmtique et logique (UAL ou ALU) . . . . . . . . . . . . . . . .
3.4.5 Le y le omplet d'ex ution d'une instru tion de al ul ou de bran hement
3.4.6 Les bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.7 Les priphriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.8 Les units d' hange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.9 Les interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les ar hite tures avan es : ar hite tures pipelines, supers alaires et multi- ore . .
La dnition et la mesure des performan es . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

3 Le matriel
3.1
3.2
3.3

3.4

3.5
3.6

4 Le  langage ma hine 
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10

Dnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prsentation de la ma hine simule pour l'apprentissage du langage d'assemblage
Instru tions de base du langage de la ma hine simule . . . . . . . . . . . . . . .
Le s hma onditionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le s hma itratif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Par ours d'un ensemble de donnes ons utives  l'adressage indire t . . . . . .
Les entres/sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les manipulations de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examen du ode gnr par un ompilateur . . . . . . . . . . . . . . . . . . . . .

5 Annexe A : table des puissan es de 2

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

1
1
1
3

4
5
6
7
7
10
12
15
15
15
16
18

22

22
24
24
26
29
33
34
35
36
38
39
40
41
42
43
44
45

52
52
53
54
56
58
58
59
60
62
64

72
i

6 Annexe B1 : ode ASCII

73

7 Annexe B2 : ode ISO-8859-1

76

8 Annexe C : les tableaux de Karnaugh

77

9 Annexe D : le langage d'assemblage de la ma hine simule


9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9

Instru tions de transfert . . . . . . . . . . . . . . . . . . . . . .


Instru tions de al ul arithmtique et logique sur des registres .
Cal uls ave une onstante hexad imale (adressage immdiat)
Instru tions de omparaison . . . . . . . . . . . . . . . . . . . .
Instru tions de bran hement . . . . . . . . . . . . . . . . . . . .
Appel de sous-programmes . . . . . . . . . . . . . . . . . . . . .
Manipulation de la pile . . . . . . . . . . . . . . . . . . . . . . .
Instru tions d'entre/sortie . . . . . . . . . . . . . . . . . . . .
Instru tions diverses . . . . . . . . . . . . . . . . . . . . . . . .

10 Annexe E : glossaire des prin ipaux termes

ii

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

79
79
79
79
79
80
80
80
80
80

81

Programme pdagogique national du DUT Informatique (2005)


U.F. ARCHITECTURE DE L'ORDINATEUR : TC-INFO-ASR1
Volume horaire : 30h  Pr-requis : au un.
Obje tifs :
 Comprendre le fon tionnement gnral d'un mi ropro esseur et de son environnement matriel.
Compten es minimales :
 Connatre les mthodes de odage et de reprsentation de l'information, et les traitements asso is.
 Connatre le fon tionnement des ir uits ombinatoires et squentiels asso is au traitement de
es donnes.
Contenu :
 Codage de l'information : numration, reprsentation des nombres et odage en ma hines, odage
des ara tres, arithmtique et traitement asso is.
 lments logiques : algbre de Boole, ir uits logiques ombinatoires (d odeur, additionneur,
unit de al ul), systmes squentiels simples (registres, ompteurs).
 Mi ropro esseur : mi roprogrammation, squen ement, bus, langage ma hine, interruptions,
omposants externes (mmoires, ontrleurs, priphriques).
Indi ations de mise en oeuvre :
 Intera tions souhaitables ave l'enseignement des mathmatiques (reprsentation des nombres,
algbre de Boole).
 L'tude du mi ropro esseur et de son environnement matriel peut faire l'objet de l'examen
(voire de l'assemblage) d'un vritable ordinateur et de ses omposants.
U.F. ARCHITECTURE ET PROGRAMMATION : TC-INFO-ASR2
Volume horaire : 30h  Pr-requis : U.F. TC-INFO-ASR1.
Obje tifs :
 Comprendre l'implmentation bas niveau des m anismes lis aux langages de haut niveau.
Compten es minimales :
 Manipuler les on epts du langage ma hine.
 Connatre l'inuen e des ar hite tures des mi ropro esseurs modernes sur les performan es des
programmes.
Contenu :
 Langage ma hine : pile systme, modes d'adressage, jeux d'instru tions, langage d'assemblage.
 M anismes de haut niveau : gestion des donnes par le ompilateur (donnes statiques/dynamiques,
pile, tas), arbres de al ul, appel de fon tions/pro dures.
 Pro esseurs modernes : mmoire a he, pipeline, instru tions SIMD, performan e des programmes.
Indi ations de mise en oeuvre :
 Des san es de travaux pratiques peuvent tre mises en pla e pour visualiser, au travers d'exemples
simples, les on epts abords ( riture de ourts programmes en langage d'assemblage, tude du
ode gnr par un ompilateur, mesures de performan e de programmes).

iii

iv

1 Introdu tion
1.1

Dnitions

Il n'est pas fa ile aujourd'hui de d rire e qu'est un ordinateur en raison de la grande diversit des
ma hines existantes (super al ulateurs, serveurs, postes de travail xes ou portables, assistants personnels et tablettes ta tiles, pu es embarques dans tous les objets de la vie ourante) et de la rapidit
des volutions te hnologiques. Il existe ependant un ertains nombre de prin ipes d'organisation et
de fon tionnement que e ours her he prsenter de manire synthtique et dont la onnaissan e
est importante pour tous les informati iens.
Un ordinateur est une ma hine le tronique programmable apable d'ee tuer des traitements automatiques de donnes et d'interagir ave son environement. Plus pr isment, un ordinateur ralise
quatre fon tions de base :
 transfert des informations depuis et vers son environnement,
 mmorisation des informations (donnes, rsultats et programmes),
 traitement des donnes ( al uls arithmtiques et logiques),
 ommande et ontrle des fon tions pr dentes partir des ordres de l'utilisateur, sp is au
sein des programmes.
Cette vue fon tionnelle de l'ordinateur est rsume par la gure suivante :
Environnement
programmes,
donnes

rsultats
Transfert des
informations

priphriques

Commande et Contrle

mmoires

1.2

Mmorisation
des informations

Traitement des
donnes

unit de commande

unit arithmtique et
logique

lments historiques

L'ordinateur est l'aboutissement d'une longue histoire. L'informatique est ne de la onvergen e de


plusieurs dmar hes indpendantes, parfois trs an iennes :
1. la m anisation du al ul arithmtique, ave par exemple :
 la Pas aline de Blaise Pas al (1643), apable d'ee tuer additions et soustra tions,
 la ma hine de Leibnitz (1673) qui ajoute la multipli ation, la division et le al ul des ra ines
arres,
2. la onstru tion de ma hines (automates) ommandes par des  programmes , ave par exemple
les mtiers tisser programmables de Fal on et de Ja quard (1804) dont les programmes sont
enregistrs sur des artons perfors,
3. la logique mathmatique, ave par exemple :
 Boole (1854) qui formalise une algbre ave deux lments (vrai et faux) et trois oprations
(et, ou, non),
 Shannon (1938) qui lie l'algbre de Boole, les nombres binaires et les signaux le triques,
 Turing (1936) qui dnit les fon tions al ulables par une ma hine thorique et jette les bases
de l'algorithmique moderne.

La onvergen e du al ul m anique et de la ommande par programme remonte Charles Babbage,


vers 1830. Sa  ma hine analytique  ontient dj l'essentiel des on epts qui se retrouvent dans les
ordinateurs modernes : une unit de al ul (le moulin) ommande par une unit de ontrle, une
mmoire (le magasin), une unit d'entre pour re evoir des artes perfores (oprations et nombres)
et une unit de sortie pour perforer le rsultat. Elle n'a pu tre onstruite de son vivant. En eet,
'est l'insusan e des te hnologies disponibles (m aniques puis le tro-m aniques) qui a emp h
pendant de nombreuses annes la ralisation d'un ordinateur omplet.
L'apparition de l'le tronique a permis de onstruire les premiers : l'ENIAC, en 1945, omporte 19000
tubes, pse 30 tonnes, ouvre 72 m2 et permet 330 multipli ations par se onde. La programmation se
fait par des  hes bran her sur un tableau de onne tions.

En 1948, Von Neumann a propos de oder le programme en binaire et de le ranger en mmoire.


L'ar hite ture de base des ordinateurs, appele depuis  ar hite ture de Von Neumann , est ainsi
a quise.
La mme anne, le transistor apparat qui apporte rapidit et abilit aux ordinateurs.
L'aventure industrielle peut dmarrer (vers 1955), ave en parti ulier la so it IBM.
Le premier langage de programmation volu, le FORTRAN, est dni par John Ba kus d'IBM, en
1957.
Contrle

Calcul

1650

Pascal
Leibnitz

Mcanique

Jacquart
Thorie

1850

Boole

Babbage

Turing, Shannon

Von Neumann

ElectroMcanique

1950
Industrie informatique

Electronique

La rvolution suivante est elle des ir uits intgrs et des mi ropro esseurs sur une pu e (1971).
Le premier PC (personal omputer ), le Mi ral de la so it Franaise R2E, apparat en 1973.
Enn, les proto oles TCP et IP, la base d'Internet, sont dnis en 1982.
2

1.3

Organisation du ours

La premire partie de e ours s'intresse la fon tion de mmorisation des donnes et plus parti ulirement la manire dont sont reprsentes les informations dans l'ordinateur ( odi ation et
numrisation).
La deuxime partie du ours d rit omment sont ralises les fon tions lmentaires de traitement
et de mmorisation, en termes de ir uits logiques, puis l'organisation en omposants matriels de
l'ordinateur (mmoires, unit de ontrle, unit arithmtique et logique, units d' hange, bus, priphriques, . . .).
La troisime partie traite de la programmation en  langage ma hine , 'est dire dans le langage
dire tement omprhensible par l'unit de ommande et retant les ir uits mis en uvre dans l'unit
arithmtique et logique. Cette tude se fait ave une ma hine simule.

2 La reprsentation des informations


2.1

Rappels sur le binaire

Le binaire est le systme de numration en base 2.


Rappelons que tout systme de numration omporte un ensemble B de symboles (ou hires) et un
ensemble de rgles permettant de reprsenter les lments d'un ensemble ni ou non de nombres. La
taille de l'ensemble B, note b dans la suite, s'appelle la base du systme de numration.
Le binaire omprend don deux symboles, reprsents onventionnellement par 0 et 1.
Le tableau i-dessous donne les premiers entiers naturels exprims en binaire :
d imal
binaire

0
0

1
1

2
10

3
11

4
100

5
101

6
110

7
111

8
1000

9 ...
1001 . . .

a) Rappel mathmatiques sur la notation positionnelle en base

b
Dans les systmes de numration lassiques, appels systmes de numration pondrs, haque hire
a un poids qui dpend de sa position dans le nombre.
Plus pr isment, un nombre N est reprsent par une suite de hires cn , cn1 , cn2 , ..., c1 , c0 dont la
valeur est omprise entre 0 et b 1. Le hire ci de rang i a un poids gal bi :
N = cn bn + cn1 bn1 + ... + c1 b1 + c0 b0

Exemples :
En base 10 : 5908 = 5 103 + 9 102 + 0 101 + 8 100
En base 2 : 11001 = 1 24 + 1 23 + 0 22 + 0 21 + 1 20 = 16 + 8 + 0 + 0 + 1 = 25
En base 8 : 1045 = 1 83 + 0 82 + 4 81 + 5 80 = 512 + 0 + 32 + 5 = 549
Dans le ontexte du binaire, il est don important de bien matriser la table des puissan es de 2.
Cette table est donne l'annexe A.

b) Intrt du binaire

C'est une forme de reprsentation fa ile transmettre (ex : prsen e/absen e de ourant le trique
dans un l) et fa ile mmoriser par tout dispositif 2 tats stables dont on peut ommander le
hangement d'tat (ex : surfa e aimante ou non aimante).
Pour es raisons, nous verrons dans la suite que toutes les informations (nombres, textes, images,
sons. . .) sont  odes en binaire dans les ordinateurs, 'est dire odes par des suites de 0 et de 1.

) Des oprations trs simples

Les tables d'addition et de multipli ation sont trs simples.


+
0
1

0
0
1

1
1
0(1)

0
1

Exemple d'addition et de multipli ation :

1
1001
+ 101
----1110

1011 (multipli ande)


x 1001 (multipli ateur)
-----1011
0000
0000
1011
------1100011
4

0
0
0

1
0
1

On remarque qu'une multipli ation se ramne une suite de re opiages du multipli ande, de d alages
et d'additions. La soustra tion peut se ramener l'addition d'un nombre ngatif dont nous verrons
dans la suite quelle est sa reprsentation. La division peut se ramener des soustra tions itres tant
que le rsultat est suprieur ou gal au diviseur.

d) Conversion entre base 2 et base 10

Elle d oule dire tement de la dnition du binaire.


Exemple : 101001 donne 1 25 + 0 24 + 1 23 + 0 22 + 0 21 + 1 20 = 32 + 8 + 1 = 41.

e) Conversion entre base 10 et base 2

On peut utiliser la mthode des  restes su essifs qui onsiste al uler les restes des divisions
entires su essives du nombre (puis du quotient) par la base autant de fois que possible, 'est--dire
tant que le quotient n'est pas nul. Le rsultat est onstitu des restes lus du dernier au premier.
Montrons le ave un nombre N qui s' rit sur 4 bits (N = a3 23 + a2 22 + a1 21 + a0 ).
N peut s' rire aussi : ((a3 2 + a2 ) 2 + a1 ) 2 + a0 .
Don , la division de N par 2 donne : (a3 2 + a2 ) 2 + a1 ave un reste = a0 .
La division du quotient (a3 2 + a2 ) 2 + a1 par 2 donne a3 2 + a2 ave un reste = a1 .
La division du quotient a3 2 + a2 par 2 donne a3 ave un reste = a2 .
La division du quotient a3 (0 ou 1) par 2 donne 0 ave un reste = a3 .
Exemple :
41 divis par 2 donne 20 reste 1 ; 'est le hire des units, droite du nombre ;
20 divis par 2 donne 10 reste 0 ;
10 divis par 2 donne 5 reste 0 ;
5 divis par 2 donne 2 reste 1 ;
2 divis par 2 donne 1 reste 0 ;
1 divis par 2 donne 0 reste 1 ; 'est le hire de la plus forte puissan e de 2, gau he du nombre ;
D'o le nombre binaire : 101001

Exer i es
1. Additionnez 101101 et 11001.
2. Multipliez 101 et 110.

Comment peut-on fa ilement multiplier un nombre binaire par 2, 4, 8 ?

3. Vriez les oprations pr dentes en onvertissant en d imal donnes et rsultats.


4. Convertissez 37 en binaire.
2.2

Quelques lments de vo abulaire

Bit = binary digit en anglais = symbole binaire (0 ou 1).


O tet = byte en anglais = 8 bits (ex : 01001111).
Mot = nombre entier d'o tets, manipulable omme un tout par un ordinateur (pour les fon tions de
al ul, de mmorisation, de transfert). Les plus ourants sont les mots de 32 bits et les mots de 64 bits.
Units de apa it (par exemple, taille d'une mmoire en nombre de bits) :
 kilo (K) = 210 = 1024 1000,
 mga (M) = 220 1000000,
 giga (G) = 230 1000000000,
 tra (T) = 240 1000000000000,
 pta (P) = 250 1000000000000000.
5

Le bit le plus gau he d'un nombre binaire est dit bit de  poids fort (ou MSB pour Most Signi ant
Bit ). Le bit le plus droite d'un nombre binaire est dit bit de  poids faible (ou LSB pour Less
Signi ant Bit ).

Exer i es
5. Quel est le plus grand entier binaire qui tient sur un o tet ? sur un mot de 16 bits ? sur un mot de

32 bits ? sur n bits ?


6. Algorithme de la multipli ation de deux entiers en binaire.
Le multipli ateur est rang dans le mot MCAT. Le multipli ande est rang dans le double mot
MCANDE. Le rsultat est rang dans le double mot RES.
Montrez sur un exemple que l'algorithme suivant ralise bien la multipli ation :
1. mettre RES 0,
2. si MCAT est impair (bit de poids faible 1), additionner MCANDE et RES dans RES,

3. d aler MCAT de 1 bit vers la droite et MCANDE de 1 bit vers la gau he, les bits qui sortent
du mot tant perdus,
4. si MCAT vaut 0, arrter, sinon re ommen er en 2.
On pourra par exemple al uler 11 9 en utilisant le tableau suivant ave des mots de 4 bits :
MCAT
1001
...

2.3

MCANDE
00001011
...

RES
00000000
...

Reprsentation des entiers naturels (N)

Ce sont les entiers positifs et le zro. On les appelle aussi  entiers non signs .

a) En binaire  pur 

Il s'agit du mode de reprsentation habituel des entiers naturels. Il existe un danger de dbordement,
d la taille limite des mots utiliss.
Exemple : sur 8 bits, il y a dbordement partir de 255.
La plupart des pro esseurs ( eux d'Intel en parti ulier) se ontentent d'indiquer le dbordement
dans un bit d'un registre sp ial qui peut tre test par le programme. Quelques rares pro esseurs
d len hent une ex eption qui entrane l'arrt du programme. C'est don au programmeur de faire
attention aux dbordements possibles !
Selon les pro esseurs, les o tets des entiers sont rangs en mmoire de manire lassique 'est dire
par poids d roissants (pro esseurs big-endian ou  gros-boutistes , omme les pro esseurs Motorola
ou Spar ) ou de manire plus surprenante par poids roissants (pro esseurs little-endian ou  petitsboutistes , omme les pro esseurs Intel).

b) En d imal od binaire (DCB ou BCD en anglais)

Chaque hire d imal est od en binaire sur 4 bits, en onservant la stru ture du nombre d imal.
Exemple : 1428 donne 0001 0100 0010 1000, soit 1 en binaire sur 4 bits, suivi de 4 en binaire sur 4
bits, suivi de 2 en binaire sur 4 bits et de 8 en binaire sur 4 bits.
Ce type de reprsentation onsomme beau oup de pla e mmoire. Son utilisation est aujourd'hui
peu frquente.

2.4

Reprsentation o tale et hexad imale des nombres binaires

Un nombre en binaire est long et di ile lire par un humain. On prfre souvent le reprsenter en
o tal ou en hexad imal, e qui fa ilite la ommuni ation entre humains.

Attention ! il s'agit d'une reprsentation externe pour l'homme et non d'une reprsentation interne en
ma hine.

a) O tal C'est le systme de numration en base 8. Il utilise huit hires : 0, 1, 2, 3, 4, 5, 6 et


7. Un hire o tal orrespond trois hires binaires ( ar 8 = 23 ). Pour passer du binaire l'o tal
il sut don de d ouper des tran hes de trois bits. Pour passer de l'o tal au binaire, haque hire
o tal gnre une tran he de trois bits.
Exemples : 1 101 101 010 donne 1552 en o tal. 632 en o tal, not 632(8) , donne 110 011 010.
b) Hexad imal C'est le systme de numration en base 16. Il utilise seize hires : 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, A, B, C, D, E et F. Un hire hexad imal orrespond quatre hires binaires ( ar
16 = 24 ). Pour passer du binaire l'hexad imal il sut don de d ouper des tran hes de quatre bits.
Pour passer de l'hexad imal au binaire, haque hire hexad imal gnre une tran he de quatre bits.
Exemples : 11 0110 1010 donne 36A en hexad imal. 1A2(16) donne 0001 1010 0010.

Exer i es
7. Convertissez 10100011101 en hexad imal, en d imal.
8. Que vaut FFF en binaire, en d imal ?
9. Convertissez 1100110 en o tal, en d imal.
2.5

Reprsentation des entiers relatifs (Z)

Ce sont les entiers positifs, ngatifs et le zro. On les appelle aussi  entiers signs . Il existe trois
mthodes possibles de reprsentation des entiers relatifs : ave bit de signe, en omplment 2 et par
ex dent.

a) Reprsentation ave bit de signe

Le bit de gau he est rserv pour le signe : 0 pour le signe + (an que les positifs soient identiques
aux entiers naturels) et 1 pour le signe .
Ave ette reprsentation :
 il existe deux zros dirents (+0 et 0),
 l'addition d'un positif et d'un ngatif ne peut pas se faire par une simple addition des bits :
un nombre positif additionn un nombre ngatif donnerait toujours un nombre ngatif ! Pour
dterminer le signe du rsultat il faut savoir quelle est la plus grande valeur absolue. Les ir uits
de al ul sont don omplexes.
Pour es raisons, ette forme de reprsentation n'est plus utilise.

b) Reprsentation en omplment 2 sur n bits

On souhaite une reprsentation telle que :


 les positifs soient identiques aux entiers naturels,
 l'addition des bits d'un nombre u et de son oppos u donne toujours 0,
 il y ait peu prs autant de positifs que de ngatifs.
La meilleure solution onsiste hoisir la orrespondan e binaireentiers suivante, montre sur le er le
i-dessous pour n = 3, qui vrie les trois proprits souhaites. Les entiers relatifs sont l'intrieur
7

du er le et leurs reprsentations en binaire sont l'extrieur du er le. Les nombres dont le bit de
poids fort est 0 sont utiliss pour reprsenter les positifs selon la numration binaire. Les nombres
dont le bit de poids fort est 1 sont utiliss pour reprsenter les ngatifs en hoisissant un ertain
ordre qui permet de vrier les proprits i-dessus.
000
0
-1

111
110
101

001

1
2

-2
-3

car 111 + 001 = (1)000

010
011

car 110 + 010 = (1) 000


car 101 + 011 = (1) 000

-4
100

On vrie que l'addition de u et de u donne 2n 'est dire 0 quand on ignore le bit de retenue qui
 sort  gau he (on peut aussi dire que u + u = 0 modulo 2n ). La valeur mdiane (100) est attribue
-4 plutt qu' 4 an que tous les ngatifs ommen ent par 1 et tous les positifs ommen ent par 0.
On retrouve ainsi un bit de signe !
Plus gnralement, on peut dire que le omplment 2 sur n bits d'un nombre binaire A, not
c2(A), est tel que A + c2(A) = 2n 'est dire un 1 suivi de n zros.
Don : c2(A) = 2n A = (2n 1) A + 1.
2n 1 est une suite de n hires 1. (2n 1) A revient soustraire haque bit de A un 1. Si e bit
vaut 0 le rsultat est 1. Si e bit vaut 1 le rsultat est 0. Autrement dit on hange les 0 en 1 et les 1
en 0 dans le nombre A. C'est e qu'on appelle le  omplment 1 . Reste nalement ajouter 1
e omplment 1 pour obtenir le omplment 2 ( f. exemple i-dessous).

on rempla e les
0 par des 1, les 1 par des 0 et on ajoute 1. On ne tient jamais ompte du bit de retenue
qui dborde gau he des n bits (ou arry bit ) .

D'o la rgle pratique pour obtenir le omplment 2 d'un nombre binaire : 


Exemple : (n = 8)
28 = 1 0000 0000 (1 plus 8 zros),
28 1 = 1111 1111 (des 1 partout),
soit A = 0000 1011 ( 'est dire 11 en d imal),
(28 1) A = 1111 0100 ( hangement des 0 en 1 et des 1 en 0),
(28 1) A + 1 = 1111 0101 ( 'est le omplment 2 de 11, reprsentant 11).
On vrie que A + c2(A) = 0000 1011 + 1111 0101 = (1) 0000 0000.

On note galement que si on re ommen e la mme transformation on retrouve le nombre positif :


c2(c2(A)) = c2(2n A) = 2n (2n A) = A.
Exemple :

1111 0101
0000 1010
+
1
--------0000 1011

(-11)
(modifi ation des bits)
(ajout de 1)
(on retrouve 11).

Cette reprsentation a les avantages suivants :


 on a un seul 0, od par 0000 0000 ; en eet : c2(0) = 2n 0 = 2n qui  sort  gau he.

0000 0000
1111 1111 (modifi ation des bits)
+
1 (ajout de 1)
-----------(1)0000 0000 (on ne tient pas ompte du dbordement gau he don -0 = +0)
 le premier bit est aussi un bit de signe : les nombres stri tement ngatifs ommen ent toujours
par 1 (en eet en enlevant 2n un nombre ompris entre 1 et 2n1 on obtient un nombre entre
2n 1 et 2n1 ; es nombres ommen ent tous par 1 en binaire sur n bits) ;
 on peut additionner un nombre positif et un nombre ngatif sans se pro uper du
signe ; le rsultat est toujours orre t. Considrons par exemple l'addition binaire de x et
y ave y < 0. On sait que y est reprsent par 2(y)= 2n - y. Don x + y = x + 2n - y = x - y
+ 2n . Comme le 2n est perdu par dbordement gau he le rsultat de l'addition est bien gal
x - y.
Exemple : 7 + (-6)
0000 0111 (7)
+ 1111 1010 (-6)
-----------(1)0000 0001 (dbordement gau he perdu et rsultat = 1)
 l'apparition d'un bit qui sort gau he n'est pas n essairement une erreur en omplment 2 ;
les al uls in orre ts orrespondent un report de l'avant dernier bit dans le dernier bit sans
report du dernier bit en dehors du mot ou bien un report en dehors du mot sans report de
l'avant dernier sur le dernier bit ( f. exer i e 13).
Exemples : deux exemples de al uls in orre ts
0 1
1 0
1
0100 0000 (64)
1000 0001 (-127)
+ 0100 0001 (65)
+ 1000 0001 (-127)
---------------------(0)1000 0001 (-127 !)
(1)0000 0010 (2 !)
Le omplment 2 est utilis dans tous les ordinateurs pour reprsenter les entiers relatifs. Il existe
ependant un as parti ulier o une autre reprsentation est employe. Nous la prsentons au paragraphe suivant.

) Reprsentation par ex dent (ou  biaise )

Pour reprsenter l'intervalle [i, +j , on ajoute i toutes les valeurs de l'intervalle : 0 reprsente don
la plus petite valeur ngative (i) et i + j reprsente la valeur j . On parle  d'ex dent i et el
orrespond un d alage de i pour tous les nombres.
Sur n bits, on peut par exemple ajouter 2n1 qui est en gros la valeur entrale de toutes les valeurs possibles.
Exemple : sur 8 bits, 281 = 27 = 128.
En  ex dent 128  :
128 est od par 0,
127 est od par 1,
126 est od par 2,
...
1 est od par 127,
0 est od par 128,
1 est od par 129,
...
126 est od par 254,
127 est od par 255.
9

On peut galement dnir un  ex dent 127 pour l'intervalle [127, +128.


Comme nous le verrons dans la suite, ette reprsentation en ex dent est utilise pour oder les
exposants des nombres rels .

Exer i es
10. Cal ulez 30 + 20, 20 tant od en omplment 2 sur 8 bits.
11. Donnez en base 10 les nombres dont le odage en omplment 2 sur 16 bits sont les suivants :
0110 1100 0001 1011 et 1011 0110 1011 0011.
12.

Comparez les trois systmes de reprsentation des relatifs sur 4 bits en dressant un tableau de
toutes les valeurs possibles ave les trois systmes.

13. Cal ulez

les six oprations i-dessous, ara tristiques de tous les as possibles d'additions dans
Z, en omplment 2 sur 8 bits.
Positif + positif sans dbordement : 6 + 8.
Positif + positif ave dbordement : 127 + 1.
Positif + ngatif, rsultat positif : 4 + (2).
Positif + ngatif, rsultat ngatif : 2 + (4).
Ngatif + ngatif sans dbordement : (2) + (4).
Ngatif + ngatif ave dbordement : (127) + (2).
On note C le bit de arry ( 'est--dire le bit  qui sort ) et V le bit d'overow ( 'est dire le bit qui
se reporte de l'avant dernier sur le dernier bit). Au vu des six rsultats obtenus, quelle ondition sur
C et V permet de dte ter qu'une addition est orre te ?

C V

14. Multipli ation de deux entiers relatifs en omplment 2.

Comment faut-il pro der en supposant que l'on dispose d'un moyen pour multiplier les entiers naturels ? Vous onsidrerez les trois as possibles : deux positifs, un positif et un ngatif, deux ngatifs.

2.6

Reprsentation des rels (R)

Ce sont tous les nombres  virgule


. C'est dire les rationels, qui peuvent s' rire omme des
fra tions, et les irrationels, omme 2 ou .

a) Rappels sur la  notation s ientique 

Un nombre rel peut s' rire ave une mantisse m et un exposant e : nb = m 10e .
Exemples : 123000 = 1, 23 105 ; 0, 0071 = 7, 1 103 .
L' riture d'un nombre rel en notation s ientique n'est pas unique.
Exemples : 123 103 reprsente galement 123000 ; 0, 71 102 reprsente galement 0,0071.
On peut xer une rgle qui impose l'uni it de la reprsentation, ou  normalisation . Une rgle de
normalisation possible peut stipuler que la mantisse doit ommen er par 0, nccc. . .o n est un hire
non nul et c un hire quel onque.
Exemples : ave ette rgle, les valeurs normalises de 123000 et 0,0071 sont 0, 123 106 et 0, 71 102 .

b) Proprits de la  notation s ientique 

Elle omporte un nombre ni de valeurs, alors qu'il y a une innit de rels. On travaille don ave
des valeurs appro hes. Leur densit varie selon la proximit du 0 : plus on s'loigne de 0 et plus la
10

distan e entre les nombres reprsents s'a rot.


Exemple : ave une mantisse 4 hires normalise en 0,n et un exposant 2 hires, on peut
reprsenter 900 199 2 = 358200 nombres. Des trs petits et des trs grands !
Dans les zones Z4 et Z5 de la gure i-aprs les nombres sont trs pro hes les uns des autres (forte densit) proximit de 0 et trs loigns les uns des autres (faible densit) du t des grands nombres. Par
exemple, entre 0, 998 100 et 0, 999 100 l' art entre 2 nombres ons utifs est de 0, 001. Au ontraire,
entre 0, 9981020 et 0, 9991020 l' art entre 2 nombres ons utifs est de 1017 , soit 100000000000000000 !
Dans la zone Z3 les nombres sont trop pro hes de 0 pour tre distingus de 0 (underow ).
Dans les zones Z1 et Z2 les nombres sont trop grands pour tre reprsents (overow ).
Z1

Z3

Z4

-0,999 10

-0,1 10

Z5
0,1 10

Z2
0,999 10

La multipli ation des rels en notation s ientique ne pose pas de problme : il faut additionner les
exposants et multiplier les mantisses, puis normaliser. Par ontre, l'addition exige une dnormalisation
pour avoir les mmes exposants avant addition, puis une re-normalisation aprs addition.

) Reprsentation de la partie fra tionnaire en binaire

Il sut de gnraliser la notation positionnelle aux puissan es ngatives. Aprs la virgule les valeurs
des hires binaires orrespondent aux puissan e ngatives de 2 :
21 = 1/2 = 0, 5
22 = 1/4 = 0, 25
23 = 1/8 = 0, 125 . . .
Exemple : 101,101 donne 1 22 + 0 21 + 1 20 + 1 21 + 0 22 + 1 23 = 4 + 1 + 0, 5 + 0, 125 = 5, 625.
Pour trouver la reprsentation binaire d'une partie fra tionnaire on fait une suite de multipli ations
par 2 en retirant haque fois le hire avant la virgule jusqu' obtenir 0. Cette suite de hires retirs
onstitue la partie fra tionnaire en binaire.
Exemple :
0, 375 2 = 0, 750 ; on retire 0 ; on obtient 0,750
0, 750 2 = 1, 5 ; on retire 1 ; on obtient 0,5
0, 5 2 = 1 ; on retire 1 ; on obtient 0 ; don 0,375 donne 0,011 en binaire.

d) Reprsentation des rels en virgule ottante

La norme IEEE 754 (Institute of Ele tri al and Ele troni s Engineers ) est une norme quasi universelle
pour la reprsentation des rels.
Pour les mots de 32 bits ( rel en simple pr ision ) :
 le signe est reprsent dans le premier bit (0 pour +, 1 pour ),
 l'exposant est reprsent sur 8 bits en ex dent 127,
 la mantisse est normalise sous la forme 1, bbb. Le 1, n'est pas reprsent (on parle de  bit
a h ou hidden bit ). La suite de la mantisse est reprsente sur 23 bits.
1,
signe

exposant

mantisse

Le zro est reprsent par 32 bits 0. Par onvention :


 quand l'exposant est rempli de 1 et la mantisse est zro, il s'agit de l'inni,
 quand l'exposant est rempli de 1 et la mantisse est dirente de 0, il s'agit d'un ode d'erreur
(un N aN pour Not a Number ).
Exemple : 1,5 en d imal donne 1,1 en binaire soit +1, 1 20 .
L'exposant vaut 127 en ex dent 127. Le nombre rel donne don :
11

0 01111111 (1,) 1000... soit 3FC00000 en hexad imal.


Sur 64 bits ( rel en double pr ision ), l'exposant est en ex dent 1023 sur 11 bits et la mantisse
o upe 52 bits. Il existe galement une  pr ision tendue sur 80 bits.
Comme la taille de la mantisse est nie, on peut avoir des erreurs d'arrondi. La norme IEEE 754
dnit quatre modes de al ul pour l'arrondi : au plus pro he (mode par dfaut), vers moins l'inni,
vers plus l'inni et par tron ature.

Exer i es
15. Donnez la reprsentation hexad imale de -12,625 en ottant IEEE 754 sur 32 bits.
16. Quelle est la valeur d imale du rel ottant IEEE 754 : 42E4 8000 ?
17. Quelle est la valeur d imale du rel ottant IEEE 754 : 3E94 0000 ?
18. Reprsentez 7/8 en format IEEE 754 sur 32 bits. Donnez le rsultat en hexad imal.
19. On appelle pr ision la diren e entre 1 et le plus petit nombre qui le suit. Que vaut-elle en
simple pr ision ? Exprime omme une puissan e de 10 ? Cela orrespond ombien de hires signi atifs aprs la virgule ?
20. Addition de deux rels.

Pour faire une addition, il faut ramener les deux oprandes au mme exposant en dnormalisant elui
qui a l'exposant le plus petit. Ce faisant, on doit d aler sa mantisse vers la droite ave le risque de
perdre des hires. Le rsultat peut don tre enta h d'erreur. Cette erreur est d'autant plus grande
que la diren e entre les exposants est plus grande.
On suppose que la mantisse est reprsente sur 6 hires binaires.
On veut additionner 1.001100 24 et 1.011011 22 .
Quelle est l'erreur ommise ?
Remarque : une applet pour raliser des onversions du d imal vers l'IEEE 754 et r iproquement
est disponible sur www.loria.fr/~jlon ham rubrique Enseignement.

e) Reprsentation des rels en  virgule xe 

La virgule ottante onvient parfaitement aux appli ations de al ul s ientique dans lesquelles la
pla e de la virgule peut varier normment. Au ontraire, dans les appli ations de gestion la virgule
est souvent pla e une position donne. En omptabilit, par exemple, les nombres ont 2 hires
aprs la virgule pour les montants en euros et entimes d'euros. On peut utiliser dans es as une
reprsentation en  virgule xe .
Dans une reprsentation en virgule xe, la virgule n'est pas reprsente dans le nombre. Sa position
est soit xe un ertain empla ement, soit dnie par le programmeur au moment de l'utilisation de
la valeur ( f. la lause V, omme virgule, dans les rels en COBOL dnis par des d larations telles
que SOMME PIC S9999V99).

2.7

Les ara tres alphanumriques

a) Le ode ASCII

Dans ette norme (Ameri an Standard Code for Information Inter hange ) haque ara tre est od
sur sept bits. On peut don reprsenter 128 ara tres dirents e qui sut pour la langue anglaise
12

dpourvue d'a ents. Les odes sont en gnral sto ks et transmis sur un o tet. Pour un ara tre
sto k en mmoire le 8ebit est en gnral 0. Lors des transmissions, e 8ebit peut tre utilis pour
faire un ontrle de parit ( f. exer i es r apitulatifs).
On peut souligner plusieurs points importants propos du ode ASCII :
 Les odes ompris entre 0 et 31 ne reprsentent pas des ara tres a hables. Ces odes, souvent
nomms  ara tres de ontrle sont utiliss pour indiquer des a tions aux terminaux informatiques. Par exemple, dans un  hier texte, la n d'une ligne est reprsente par un ara tre
de ontrle (ou une paire de ara tres de ontrle). Plusieurs onventions oexistent : sous les
systmes Unix ou  type Unix (Linux, AIX, Ma OS X, et .), la n de ligne est indique par un
saut de ligne (LF) ; sous Ma OS jusqu' la version 9, la n de ligne est indique par un retour
hariot (CR) ; sous les systmes Mi rosoft Windows, la n de ligne est indique par un retour
hariot suivi d'un saut de ligne (CR+LF, 2 o tets). Ainsi, quand on ouvre un  hier ASCII r
par un systme sous un autre systme, il faut souvent modier les ns de ligne an de pouvoir
l'a her de manire orre te. Les diteurs de texte volus (Wordpad mais pas Notepad sous
Windows) peuvent dte ter le type de n de ligne et agir en onsquen e.
 Le ode 32 orrespond l'espa e.
 Les lettres se suivent dans l'ordre alphabtique ( odes 65 90 pour les majus ules, 97 122
pour les minus ules), e qui simplie les omparaisons.
 Les hires sont rangs dans l'ordre roissant ( odes 48 57), et les 4 bits de poids faibles
dnissent la valeur en binaire du hire.
La table du ode ASCII est donne l'annexe B1.

b) Le ode ode ISO-8859-1 (ou  ISO Latin-1 ou  ASCII tendu )

Dans ette norme de l'ISO (International Standard Organisation ), le ode ASCII pr dent est tendu
en ajoutant de nombreux ara tres, en parti ulier a entus, qui sont utiliss par les langues europennes ourantes : allemand, anglais, espagnol, franais (sauf ara tres , et ), italien, nerlandais, norvgien, portugais, sudois, et . L'afrikaans et le swahili sont galement ouverts. Cette
norme est don utilise en Europe de l'Ouest, en Amrique, en Australie et dans une grande partie
de l'Afrique. Elle ontient 256 ara tres orrespondants tous les odes possibles sur 8 bits. Les 128
premiers ara tres sont eux du ode ASCII sur 7 bits.
ISO-8859-1 est le odage standard utilis par le systme X Window sur la plupart des ma hines UNIX.
La limitation prin ipale du odage sur un o tet est la n essit d'utiliser plusieurs tables de ode
(les normes ISO-8859-x ave x variant de 1 10) pour ouvrir plusieurs alphabets. Or ertains do uments sont typs l'aide de mta-donnes. Dans e as, une table de ara tres et une seule est
asso ie haque do ument. Par exemple pour un do ument HTML la balise

<meta http-equiv=" ontent-Type" ontent="text/html; harset=iso-8859-1" />


indique que le do ument utilise la table des ara tres ISO-8859-1. De mme en XML la balise

<?xml version="1.0" en oding="iso-8859-1"?>


indique l'en odage des ara tres utilis. Par dfaut, 'est la table de ara tres du systme d'exploitation qui est utilise. Si elle ne orrespond pas elle du do ument l'a hage devient in ohrent. De
plus, il est impossible de mlanger dans un mme do ument des alphabets qui ne sont pas dnis par
la mme table, omme par exemple le franais et l'hbreu. La seule solution est de passer Uni ode
qui est prsent au paragraphe suivant.
La norme ISO-8859-15 a ajout le symbole de l'euro et quelques ara tres omme , et
la norme ISO-8859-1.
13

Windows-1252, disponible sur les systmes Windows, dire de l'ISO-8859-1 par l'utilisation de ara tres imprimables ( omme le symbole de l'euro, et ), plutt que des ara tres de ontrle, dans
les odes 128 159.
La table du ode ISO-8859-1 est donne l'annexe B2.

) Uni ode

Uni ode est une norme dveloppe par le Consortium Uni ode qui vise donner tout ara tre de
toute langue un nom et un identiant numrique quelle que soit la plate-forme informatique ou le logi iel. Uni ode, dont la premire publi ation remonte 1991, a t dvelopp dans le but de rempla er
l'utilisation des pages de ode. La version a tuelle 5.1 dnit plus de 120000 ara tres.
Uni ode est dni suivant un modle en ou hes. Les autres normes ne faisaient typiquement pas
de distin tion entre le jeu de ara tres et la reprsentation physique. Les prin ipales ou hes sont
prsentes i i en partant de la plus loigne de la ma hine :
 Rpertoire des ara tres abstraits (Abstra t Chara ter Repertoire )
La ou he la plus leve est la dnition du jeu de ara tres. Uni ode leur donne des noms. Par
exemple, le ara tre est nomm  Lettre majus ule latine dille .
 Jeu de ara tres ods (Coded Chara ter Set )
I i, on ajoute la table pr dente un index numrique. Il ne s'agit pas d'une reprsentation
en mmoire, juste d'un nombre. Ce nombre, appel  point de ode , est not U+xxxx o xxxx
est en hexad imal et omporte 4, 5 ou 6 hires. Ainsi, le ara tre nomm  Lettre majus ule
latine dille a omme point de ode U+00C7.
 Formalisme de odage des ara tres (Chara ter En oding Form )
On arrive la reprsentation physique (en mmoire, sur disque . . .) : ette ou he sp ie quelles
units de sto kage ( ode units ), o tets ou bien mots de 16 ou de 32 bits, vont reprsenter un
point de ode. On ne peut don pas parler de la taille d'un ara tre Uni ode ar elle dpend
du odage hoisi.
Uni ode a epte plusieurs types de transformations universelles (Universal Transformation Format ou UTF) pour reprsenter un point de ode valide : UTF-8, UTF-16, UTF-32. Le nombre
aprs UTF reprsente le nombre minimal de bits ave lesquels un point de ode valide est reprsent.
 L'UTF-8 est le plus ommun pour les appli ations Unix et Internet. Son odage de taille
variable lui permet d'tre en moyenne moins oteux en o upation mmoire (un o tet pour
les points de ode assigns aux ara tres ASCII, 2 4 o tets pour les autres points de ode).
 L'UTF-16 est un bon ompromis lorsque la pla e mmoire n'est pas trop restreinte, ar la
grande majorit des ara tres des langues modernes peuvent tre reprsents sur 16 bits.
C'est notamment le odage qu'utilise la plate-forme Java en interne, ainsi que Windows pour
ses APIs ompatibles Uni ode (ave le type WCHAR). Les autres ara tres sont reprsents
par deux  seizets .
 L'UTF-32 est utilis lorsque la pla e mmoire n'est pas un problme. L'avantage de ette
transformation est que tous les odes ont la mme taille (32 bits).

Exer i es
21. D odez la squen e de ara tres ASCII sur 8 bits suivante :
01001001 00100000 01001100 01001111 01010110
01000101 00100000 01011001 01001111 01010101
22.

Comment transformer le ode ASCII sur 8 bits d'une minus ule en le ode de la mme lettre
en majus ule ?

14

d) Autres odes

Les odes tudis dans e paragraphe sont susants pour la programmation. Mais il en existe de nombreux autres. Lorsque des donnes sont transmises sur des rseaux informatiques, des informations
redondantes sont envoyes an de dte ter voire mme de orriger des altrations de bits pendant la
transmission, toujours possibles en raison des perturbations le triques. Ces odes parti uliers seront
vus dans le ours rseau et un exemple simple est donn dans les exer i es r apitulatifs la n de
ette partie sur la odi ation.

2.8

Les types en Java et leur reprsentation en mmoire

Dans les langages de programmation volus, dirents types de donnes sont dnis. A haque type
est asso i une ertaine reprsentation mmoire. Par exemple, Java ore huit types de base (ou types
primitifs) dont les ara tristiques sont rsumes dans le tableau suivant :

Mot l Des ription

Format

double

IEEE 754 sur 64 bits

byte
short
int
long
oat

har
boolean

o tet (entier trs ourt)


entier ourt
entier
entier long
rel en virgule ottante
simple pr ision
rel en virgule ottante
double pr ision
ara tre
boolen

omplment 2 sur 8 bits


omplment 2 sur 16 bits
omplment 2 sur 32 bits
omplment 2 sur 64 bits
IEEE 754 sur 32 bits

Uni ode sur 16 bits

Valeurs

-128 127
32768 32767
2147483648 2147483647
9, 22 1018
3, 4 1038 3, 4 1038
(pr ision 7 hires)
1, 7 10308 1, 7 10308
(pr ision 15 hires)
65536 ara tres
vrai, faux

Remarque : le sto kage ee tif en mmoire dpend de la ma hine virtuelle Java.

2.9

Reprsentation en mmoire des autres objets : sons, images, vido

Il existe aussi des  odes pour reprsenter numriquement les sons, les images, la vido dans le adre
des appli ations multimdia. Cet aspe t est survol dans e paragraphe.
Comme toutes les informations en mmoire, es objets doivent tre ods par des bits ; on dit plutt
qu'ils sont  numriss . Il existe de trs nombreuses reprsentations pour es objets. On se limitera
i i quelque exemples simples.

2.9.1 Les sons


Un son est une vibration de l'air, 'est dire une variation de la pression autour de la pression atmosphrique normale. Par exemple, la vibration de la note LA est une sinusode rgulire ave 440 y les
par se onde, 'est dire une frquen e de 440Hertz.
pression
t
cycle

Pour numriser un son quel onque, l'ordinateur peut mesurer la valeur prise par ette ourbe des
intervalles de temps rguliers.

15

0,8
0,6
0,3

0,9

0,0

En qualit CD audio, l'ordinateur prend 44100 mesures par se onde. On dit qu'il  hantillonne
44100Hertz (ou 44,1kHz).
Dans un  hier wav (format Mi rosoft), haque mesure est ode en binaire sur 16 bits (65535 valeurs
possibles) en mono et sur 2 16 bits en stro. Une minute de son en qualit CD audio stro o upera
don (44100 60 16 2) / (8 1024 1024) 10Mo.
Tous les sons (paroles, bruits, musiques) sont des vibrations omplexes que l'on peut hantillonner
ainsi. Mais ela gnre un grand nombre de donnes par se onde.
Une autre appro he, onsiste d omposer la vibration omplexe en une somme de vibrations rgulires (sinusodes).
U1/V

U1/V

3
2

1.5

1
0
1
-1
-2
0.5
-3
-4
50

100

150

200

250
t/ms

300

350

400

450

100

200

300

400

f/Hz

La vibration complexe

Les frquences trouves

Pour ha une de es vibrations rgulires, omme le LA i-dessus, il sut d'enregistrer sa frquen e


(nombre de vibrations par se onde exprime en Hz ; par exemple 440Hz pour le LA).
La transformation mathmatique qui permet de trouver les frquen es onstituant un signal s'appelle
la transforme de Fourier.
C'est sur e prin ipe qu'est bas le format MP3 (MPEG Audio Layer 3) : on enregistre une partie (plus
ou moins grande) des frquen es qui omposent le signal et on les note dans le  hier MP3. qualit
sensiblement gale, une minute de son o upe environ 1Mo, ontre 10Mo en wav. Pour rejouer le son,
on prend la liste des frquen es, on re re des signaux des direntes frquen es et on les mlange pour
re onstituer le son. Les logi iels qui rent des  hiers MP3 se basent sur un modle psy ho-a oustique
pour supprimer ertaines frquen es inutiles. En eet, l'oreille humaine et le erveau ne peroivent
pas ertains sons (frquen es trs pro hes, sons faibles ouverts par d'autres sons, et .) Ce modle
psy ho-a oustique fait toute la diren e entre les dirents odeurs/d odeurs (ou  ode s ) MP3.

2.9.2 Les images


Les images peuvent tre reprsentes omme des ensembles de points ou pixels (formats bitmaps ) ou
omme des ensembles d'objets gomtriques (formats ve toriels). Nous ne onsidrons i i que les formats bitmaps qui sont utiliss par les priphriques d'a hage et les priphriques de saisie (s anners).
Les images mono hromes (noir et blan ) sont fa iles reprsenter. Chaque bit 0 ode un pixel
16

blan et haque bit 1 ode un pixel noir. Les gris peuvent tre obtenus visuellement par des mlanges de pixels blan s et de pixels noirs. Une image mono hrome en rsolution 1024 768 n essite
don 786432 bits, soit 96Ko. On peut amliorer la qualit en asso iant haque pixel un niveau de
gris, od sur huit bits. La mme image prendra alors 770Ko.

La odi ation des ouleurs peut se faire selon deux modes :


1. en ouleurs indexes : l'image est une su ession d'index qui font rfren e une palette de
ouleurs. Les index sur huit bits permettent de dsigner 256 ouleurs. La palette est une table
sto ke en dbut de  hier et qui fait orrespondre haque index une ouleur d rite par un
mlange de trois ouleurs primaires. En RGB il s'agit du % de rouge, du % de vert et du % de
bleu, ha un sur huit bits. Soit une palette de 256 ouleurs prises parmi 256 256 256 = 16,7
millions.
Une image ouleur en 1024 768 n essite don (1024 768 8 + 256 24)/(1024 8)
770Ko. Si on hange de palette, le rendu de l'image hange.
2. en ouleurs vraies (true olor ) : haque pixel est d rit par un ode ouleur, par exemple en
RGB. Comme on l'a vu i-dessus, ave 24 bits on peut oder 16,7 millions de ouleurs. Une
image ouleur en 1024 768 et en 16,7 millions de ouleurs n essite don (1024 768
24)/(1024 1024 8) 2,25Mo.
Au vu de es hires, on omprend que la vido n essite des te hniques de ompression des images.
Prenons par exemple une petite squen e de 15 minutes en 1024 768 et 16,7 millions de ouleurs.
Pour obtenir une uidit orre te de la vido, une vitesse de dlement de 25 images/se onde est n essaire. La squen e sera don ompose de 22500 images qui psent ha une 2,25Mo ( f. i dessus).
Soit plus de 50Go sto ker et ventuellement transfrer sur Internet !
Il existe des te hniques de ompression sans perte de donnes et des te hniques ave perte possible
de donnes. La te hnique sans perte de donnes la plus simple est le RLE (Run Length En oding ) :
quand n o tets su essifs sont identiques (ave n suprieur un seuil donn) on les rempla e par un
marqueur sp ial suivi du nombre de rptitions (sur un o tet) suivi de la valeur de l'o tet rpt.
Exemple : seuil = 3, marqueur 
GGOOOOOOOOOXAAAAAAAMLLLLLLLLLL donne GG9OX7AM10L soit un passage de 30 14 ara tres (gain
de 53%).
C'est une te hnique utilisable par exemple ave des images ontenant des plages homognes de noir
et de blan . S'il y a peu de plages homognes la mthode peut onduire perdre de la pla e au lieu
d'en gagner !
Le format JPEG exploite des te hniques pro hes de elles vues pour le son en MP3. L'image est
d ompose en petits arrs de 8 8 pixels. Chaque pixel est od d'une ertaine manire, par
exemple en RGB ave les valeurs de rouge, vert et bleu. La matri e 8 8 pour haque ouleur est
onsidre omme un signal qui est d ompos en 8 8 frquen es par une varit de la transformation
de Fourier, dite  transforme en osinus dis rte . Les hautes frquen es, auxquelles l'il humain
est peu sensible, sont supprimes. Les valeurs des frquen es restantes sont elles mmes ompresses.
Quand on enregistre un  hier JPEG, on peut hoisir le taux de ompression (de 1% 99%) inversement proportionnel la qualit de l'image. En eet, ette qualit orrespond la pr ision ave
laquelle on onserve les rsultats de l'analyse frquentielle. Une image JPEG de faible qualit apparat
fortement  pixlise ave les blo s 8 8 presque uniformes et assez visibles. Par ontre le volume
de l'image est fortement diminu. Une image de bonne qualit est moins pixlise mais prend plus de
pla e en mmoire.
17

2.9.3 La vido
La premire ide qui vient l'esprit, aprs s'tre intress la ompression des images, est d'en appliquer les prin ipes la vido. Le Motion JPEG (not MJPEG ou M-JPEG) onsiste appliquer
su essivement l'algorithme de ompression JPEG aux direntes images d'une squen e vido. Etant
donn que le M-JPEG ode sparment haque image de la squen e il permet d'a der alatoirement
n'importe quelle partie d'une vido e qui est intressant par exemple pour les studios de montage
numrique.
Dans beau oup de squen es vido, de nombreuses zones dans les images sont xes ou bien hangent
trs peu, omme par exemple les arrire-plan. C'est e que l'on nomme la  redondan e temporelle .

L'ide est de ne d rire que les hangements d'une image l'autre sous forme d'un ensemble de  ma ro
blo s  ods en JPEG. C'est e que font les standards MPEG vido. Il en existe plusieurs :
 MPEG-1 permet le sto kage d'une heure de vido dans une qualit pro he des assettes VHS
sur un support CD de 600Mo,
 MPEG-2 est utilis par les DVD vidos (4,7Go pour 2h30 de vido de haute qualit),
 MPEG-4 permet le odage et la diusion de donnes multimdia sous forme d'objets numriques
pour le Web et les priphriques mobiles (par tl hargement ou par streaming, 'est dire
transmission et a hage au fur et mesure).
Le ode DivX utilise la norme MPEG-4 et permet un DVD de tenir sur un simple CD au prix d'une
lgre dgradation de la qualit. Il fa ilite bien entendu le transfert (parfois illi ite . . .) des vidos sur
Internet, omme le MP3 permet le transfert des  hiers audio.

18

Exer i es r apitulatifs (devoirs surveills des annes pr dentes)


23. Chires lumineux

Pour symboliser un hire quel onque (0 9), on utilise sept segments lumineux numrots de 0 6
et disposs selon le s hma suivant :
1
0

2
3

La visualisation de haque hire orrespond l'a tivation d'une partie des segments. Le systme
adopt est rsum par la gure suivante :

Note : le 1 utilise les barres de gau he.


On dsire onstruire un ode sur sept bits o le bit de rang i est positionn 1 lorsque le segment
orrespondant est allum.
a) Construisez la table qui haque hire asso ie son ode sur 7 bits.
b) Reprsentez dans e ode la squen e de hires : 1987.

24. D odage d'une zone mmoire

Une entreprise gre des informations pour ha un de ses lients. A haque lient est asso i une zone
mmoire de longueur xe, organise de la manire suivante :
 nom du lient : la zone est prvue pour un nom de 15 ara tres au maximum,
 nombre de ommandes ee tues par le lient : un entier,
 la somme que le lient doit ou que l'entreprise doit au lient (somme < 0) : un rel,
 un ommentaire gnral sur le lient : la zone est prvue pour un ommentaire de 20 ara tres
au maximum.
L'ordinateur utilis par l'entreprise ode les informations de la manire suivante.
 Une hane de n ara tres est ode sur n + 1 o tets o le premier o tet reprsente la taille
ee tive de la hane. Les ara tres sont ods en ASCII sur 8 bits.
 Les entiers sont ods sur 16 bits, les nombres ngatifs tant ods en omplments deux.
L'o tet ontenant les bits de poids les plus faibles est pla avant l'o tet ontenant les bits de
poids les plus forts.
Exemple : la valeur 1 est ode en hexad imal sur deux o tets par 01 00.
 Les rels sont ods en virgule ottante sur 48 bits de la manire suivante.
 Le nombre rel N est normalis en N = m 2e o 0, 1 m < 1.
 L'exposant e est od en ex dent 128.
 Pour la mantisse m, on remarque que dans la forme normalise 0, p0 p1 p2 ...p39 2e le bit p0
vaut toujours 1. En onsquen e seuls les bits de p1 p39 sont reprsents.
 Le premier bit s ode le signe.
octet 1 octet 2
s p1 p2 ...

octet 3

octet 4

octet 5 octet 6
p39 exposant

s : bit de signe

Exemple : ave e systme de odi ation la reprsentation en ma hine du nombre 256,0 est
00 00 00 00 00 89.
19

a) Quelle est la taille de la zone mmoire d'un lient (en o tets) ?


b) D odez les zones mmoire des deux premiers lients ommenant l'adresse 0000. Les adresses
sont en d imal et reprent des o tets.

Adresses ------0000 07 42 6F 6C
0016 19 00 33 90
0032 43 4F 4E 54
0048 76 61 6C 6E
0064 94 00 00 00
0080 54 45 4E 54
0096 31 1D FF FF
0112 39 1D 3A 1D

Codes Hexad imaux


6C 69 6E 6F 25 39 64
00 00 00 8B 10 4A 41
45 4E 54 20 21 20 64
6F 25 39 64 20 46 69
8C 0A 42 4F 4E 20 43
20 21 20 64 69 73 2E
33 1D 34 1D 35 1D 36
3B 1D 3C 1D 3D 1D 3E

-----------20 46 69 63 68
4D 41 49 53 20
69 73 05 44 75
63 68 36 00 9E
4C 49 45 4E 54
1D 2F 1D 30 1D
1D 37 1D 38 1D
1D 3F 1D 40 1D

25. Codage d'une zone mmoire

Dans un  hier omptable, le des riptif de haque ompte omporte trois zones ons utives odes
de la manire suivante :
 le numro du ompte (binaire sur un o tet),
 le libell du ompte (20 ara tres ASCII sur un o tet ha un),
 le solde du ompte (rel sur 32 bits en IEEE 754).
Donnez en hexad imal la odi ation du ompte ontenant :
204PRODUITS_FINANCIERS_520,50 (le soulign orrespondant un ara tre espa e).

26. Codage ave bit de parit

a) On ajoute au ode ASCII sur sept bits un premier bit de parit. Le bit de parit vaut 1 quand le
nombre de bits 1 du ode sur sept bits est impair et vaut 0 quand le nombre de bits 1 du ode sur
sept bits est pair.
Exemple : 11001111 (le premier bit gau he est le bit de parit).
Donnez dans e ode le ara tre F.
b) On ajoute un o tet de parit haque blo de quatre ara tres : le premier bit est le bit de parit des
quatre bits de parit, le deuxime bit est le bit de parit des quatre premiers bits des odes ASCII, et .
Bit de parit
Caractre 1
Caractre 2
Caractre 3
Caractre 4
Octet de parit

Donnez la odi ation du blo de 4 ara tres FUTE.


) Si un des bits a t hang par erreur lors d'une transmission, omment peut-on trouver et orriger
le bit erron ?

27. Rels double pr ision

La norme IEEE 754 pour les rels longs sur 64 bits est similaire la norme pour les rels ourts sur
32 bits ave les ara tristiques suivantes :
 bit de signe (1 pour ngatif, 0 pour positif),
 exposant sur 11 bits en ex dent 1023,
 mantisse sur 52 bits normalise en 1.bbbb (o b est un hire binaire quel onque) le 1. n'tant
pas reprsent (bit a h).
20

a) donnez en hexad imal la odi ation du nombre d imal 157.6875.


b) onvertissez en d imal la valeur hexad imale C00F000000000000.

28. Rels IEEE 754

Soient les deux nombres ods suivant la norme IEEE 754 et reprsents en hexad imal : 3EE00000
et 3D800000.
Cal ulez en la somme et donnez le rsultat sous forme IEEE 754 et sous forme d imale.

29. Sans al uls

Classez les nombres suivants (exprims en omplment 2) dans l'ordre roissant. Justiez votre
rponse sans al uler les nombres.

A
B
C
D
E

:
:
:
:
:

11111111
01111111
01110001
10000001
11110001

30. Suites

On onsidre la suite L1 d'o tets suivante en hexad imal : 00 FF 00 41 00 42 FF FA


a) Dterminez la suite L2 de nombres d imaux qui orrespond au as o L1 est un odage en binaire
pur sur un o tet.
b) Dterminez la suite L3 de nombres d imaux qui orrespond au as o L1 est un odage en
omplment deux sur un o tet.
) Dterminez la suite L4 de nombres d imaux qui orrespond au as o L1 est un odage en binaire
pur sur des mots de deux o tets.
d) Dterminez la suite L5 de nombres d imaux qui orrespond au as o L1 est un odage en
omplment deux sur des mots de deux o tets.
e) Donnez la suite d'o tets L6 telle que L6 reprsente L2 ode en binaire pur sur deux o tets.
f) Donnez la suite d'o tets L7 telle que L7 reprsente L3 ode en omplment deux sur deux o tets.

21

3 Le matriel
Dans e hapitre, nous tudions le matriel selon une appro he en dirents niveaux ou ou hes. Nous
nous limitons aux on epts de base, utiles pour la ulture gnrale de tout informati ien professionnel.
Les dirents niveaux que nous allons d rire sont les suivants :
 les omposants le troniques qui sont la base de tout,
 les portes logiques ET, OU, NON, . . .qui sont des assemblages de omposants le troniques
ralisant les fon tions logiques lmentaires,
 les ir uits logiques (additionneur, omparateur, bas ule, et .) qui sont des assemblages de portes
logiques,
 les onstituants des ma hines (mmoire, unit arithmtique et logique, et .) qui sont des assemblages de ir uits logiques,
 les ma hines (PC, serveur, super- al ulateur . . .) qui sont des assemblages de onstituants.

3.1

Les omposants le troniques

a) Le transistor

Le transistor est le omposant a tif de base.

Il est d rit par l'le troni ien de la manire suivante.


Collecteur (reli lalimentation)
sortie s
base
(entre e)
Emetteur (reli la terre)

Son fon tionnement peut tre rsum de la manire suivante. Du ourant arrive par le olle teur. Si
au un ourant n'arrive par la base, le transistor est  bloqu et ne laisse pas passer le ourant. Le
ourant entr par le olle teur sort obligatoirement par la sortie. Soit en simpliant le dessin :
1
s
1

e
0

1 = prsence de courant
0 = absence de courant

Au ontraire, si du ourant arrive par la base, le transistor est  satur ou  passant . Il laisse passer
le ourant. Celui- i va toujours vers la terre, via l'metteur, et ne passe plus par la sortie.
1
s
0

e
1
1

22

En notant e la base et s la sortie, 0 l'absen e de ourant et 1 la prsen e de ourant, on obtient la


table suivante (table de vrit) qui rsume la fon tion ralise par le transistor :
e
0
1

s
1
0

e
Faux
Vrai

s
Vrai
Faux

Remarque : en dsignant par Vrai la prsen e de ourant et par Faux son absen e, on re onnat
aisment la fon tion logique NON ou ngation.
Une autre reprsentation de ette fon tion est l'quation logique : s = e, qui se lit  s vaut 1 (not s)
si et seulement si e vaut 0 (not e) .
Enn la reprsentation graphique dans la norme internationale d'une porte NON est la suivante :
s

b) Combinaison de 2 transistors

En ombinant 2 transistors on obtient 2 autres fon tions logiques.


1. Combinaison en srie selon le montage suivant :

e1

e2

Pour que le ourant aille vers la terre (s) il faut que les 2 transistors soient saturs (e1=1 et
e2=1) ; sinon, un des transistors est bloqu et le ourant sort obligatoirement par le haut.
La table de vrit est don la suivante :
e1 e2 s
e1
e2
s
0
0 0
Faux Faux Faux
1 0
0
Faux Vrai Faux
1
Vrai Faux Faux
0 0
1 1
Vrai
1
Vrai Vrai
On re onnat la fon tion logique ET. L'quation logique s' rit : s = e1.e2, qui se lit  s vaut 1
si et seulement si e1 ET e2 valent 1 .
La reprsentation graphique du ET ( 2 ou n entres) est la suivante.
e1
e2

2. Combinaison en parallle selon le montage suivant :

e1

e2
s

23

Le ourant n'atteint pas s seulement si les deux transistors sont bloqus (e1 et e2 = 0) ; sinon,
un des transistors est satur et le ourant va vers la terre (s).
La table de vrit est don la suivante :
e1
e2
s
e1 e2 s
0
0 0
Faux Faux Faux
0
Faux Vrai
1 1
Vrai
0 1
1
Vrai Faux Vrai
1 1
Vrai
1
Vrai Vrai

+ e1.e2, qui se
On re onnat la fon tion logique OU. L'quation logique est : s = e1.e2
+ e1.e2
lit  s vaut 1 si et seulement si [e1 vaut 0 ET e2 vaut 1 OU [e1 vaut 1 ET e2 vaut 0 OU [e1
vaut 1 ET e2 vaut 1 .
La reprsentation graphique du OU ( 2 ou n entres) est la suivante.
e1
s
e2

3.2

Les portes logiques

Ave le NON, le ET et le OU on peut onstruire toutes les fon tions logiques. Le NON-OU (ngation
du OU), le NON-ET (ngation du ET), et le OU ex lusif (XOR qui vaut 1 si l'une des deux entres
mais pas les deux valent 1) onstituent d'autres portes logiques souvent utilises.
e1
0
0
1
1

e2
0
1
0
1

NON ET
1
1
1
0

e1
Faux
Faux
Vrai
Vrai

e2
Faux
Vrai
Faux
Vrai

s = e1.e2 + e1.e2 + e1.e2

NON ET
Vrai
Vrai
Vrai
Faux

e1
e2

s = e1.e2

e1
0
0
1
1

e2
0
1
0
1

NON OU
1
0
0
0

e1
Faux
Faux
Vrai
Vrai

e2
Faux
Vrai
Faux
Vrai

NON OU
Vrai
Faux
Faux
Faux

e1
s

e2

s = e1.e2 + e1.e2 = e1 + e2

e1
0
0
1
1

3.3

e2
0
1
0
1

XOR
0
1
1
0

e1
Faux
Faux
Vrai
Vrai

e2
Faux
Vrai
Faux
Vrai

XOR
Faux
Vrai
Vrai
Faux

e1
s
e2

Les ir uits logiques

Il existe deux grandes atgories de ir uits logiques :


1. les ir uits  ombinatoires ou  de al ul , o les sorties (Si ) ne dpendent que des entres
(Ei ) : S1 , ... , Sn =f(E1 , ...,Em ),

24

2. les ir uits  squentiels , o les sorties l'instant t dpendent des entres et des sorties
l'instant t-1 : S1 (t), ... , Sn (t) =f(E1 , ...,Em , S1 (t 1), ..., Sn (t 1)) ; il y a don possibilit
de onserver de l'information du temps t 1 au temps t et don de onstruire des mmoires
( ir uits qui  se souviennent des valeurs pr dentes).
Il ne faut pas onfondre ir uits logiques et ir uits physiques. Les ir uits physiques sont des botiers
(pu es) qui renferment un nombre plus ou moins important de portes logiques inter onne tes. Les
mi ropro esseurs sont des pro esseurs intgrs dans une pu e et onstruits ave des ir uits trs forte
intgration (VLSI pour very large s ale integration ).

La loi de Moore, non e en 1965 et approximativement vrie depuis, prdisait que le nombre de
transistors intgrs dans les pu es allait doubler haque anne.

Au ontraire, le CMOS 4011 reprsent i-dessous est un ir uit trs faible intgration qui ontient
quatre portes NON-ET et 14 bro hes (la bro he 14 est l'alimentation et la bro he 7 est la terre). Un
tel ir uit permet de raliser des petits montages en onne tant les bro hes.

25

14

On peut noter au passage qu'ave uniquement des portes NON-ET (ou uniquement des portes NONOU) on peut onstruire des ir uits quivalents aux portes ET, OU et NON et don n'importe quelle
fon tion logique. On le montrera dans un des exer i es.

3.3.1 Constru tion d'un ir uit ombinatoire quel onque


Une dmar he systmatique est possible partir de la table de vrit. Par exemple :
a
0
0
0
0
1
1
1
1

b
0
0
1
1
0
0
1
1


0
1
0
1
0
1
0
1

d
0
0
0
1
0
1
1
1

On rit l'quation logique qui lui est asso ie. Soit : d = a


.b.c + a.b.c + a.b.
c + a.b.c Il sut de prendre
haque ligne de la table de vrit o le rsultat vaut 1 et de trans rire la onjon tion des donnes qui
produit e rsultat. Sur le dessin, on onstruit toutes les entres possibles (a, a
, b, b, c et c) en plaant
systmatiquement une porte NON sur haque entre. Puis on onstruit haque terme de l'quation
logique ave es entres et des portes ET. Enn, on regroupe les termes ave des portes OU pour
obtenir la fon tion logique souhaite. On obtient don le ir uit suivant :
a

b b

abc

abc

d
abc

abc

26

Il est lair que plus l'quation logique est simple, plus le ir uit est simple. Il est don intressant
d'appliquer les rgles de l'algbre de Boole pour simplier l'quation logique. Vous tudierez ette
thorie plus en dtail en ours d'algbre. Elle est dnie par les axiomes et thormes suivants :
0 = 1
a+0 = a
a+1 = 1
a+a = a
a+a
=1
(a + b) + c = a + (b + c)
a+b = b+a
a.(b + c) = a.b + a.c
=a
a
a+b = a
.b

1=0
a.1 = a
a.0 = 0
a.a = a
a.
a=0
(a.b).c = a.(b.c)
a.b = b.a
a + b.c = (a + b).(a + c)
a.b = a
+ b

onstantes
lments neutres
lments absorbants
lments idempotents
lments omplmentaires
asso iativit
ommutativit
distributivit
double ngation
thormes de De Morgan

Les dmonstrations se font trs fa ilement en utilisant les tables de vrit.


Exemples :
a a
a+a

=1
Montrons que a + a
0 1
1
1
1 0
a b b+ a.(b+ )
0 0 0
0
0
1
0
0 0 1
0 1 0
1
0
Montrons que a.(b+ ) = a.b + a.
1
0
0 1 1
0
0
1 0 0
1 0 1
1
1
1
1
1 1 0
1 1 1
1
1

a.b
0
0
0
0
0
0
1
1

a.
0
0
0
0
0
1
0
1

a.b+a.
0
0
0
0
0
1
1
1

La simpli ation du ir uit onstruit au dbut du paragraphe est donne i-dessous. L'quation logique
.b.c+ a.b.c+ a.b.
c + a.b.c = (
a.b+ a.b).c+ a.b.(
c + c) = (a b).c+ a.b.
est fa torise puis simplie : d = a
Soit le ir uit :

noter qu'il existe des mthodes systmatiques de simpli ation, omme la mthode des tableaux de
Karnaugh. Elle est explique l'annexe C.
Les exer i es suivants permettent de onstruire des ir uits de al ul de plus en plus omplexes jusqu'
obtenir une unit arithmtique et logique simplie.

Exer i es
1. Donnez

la table de vrit, l'quation logique et le s hma du OU ex lusif (en suivant la mthode


de onstru tion systmatique expose dans le ours).

2.

a + b) = a
.b + a.b. Donnez un deuxime ir uit possible pour le OU exMontrez que (a + b).(
lusif.

27

3. Montrez qu'ave uniquement des NON-OU on peut raliser le NON, le OU et le ET.


4.

Construisez un demi-additionneur. Ce ir uit logique a l'apparen e suivante et orrespond la


table de vrit i-dessous.
a
0
0
1
1

b
0
1
0
1

s
0
1
1
0

r
0
0
0
1

a
b

s
r

1/2+

Il ralise l'addition de deux bits a et b ave la somme dans s et la retenue dans r . Penser utiliser le
OU ex lusif.

5.

A partir du demi-additionneur on veut onstruire un additionneur omplet. Ce ir uit permet


d'additionner deux bits et une retenue en entre. On essayera de le onstruire en ombinant deux
demi-additionneurs. Puis on vriera le rsultat obtenu gr e une table de vrit.
a
b
re
(retenue
en entre)

s (somme)

rs (retenue en sortie)

Remarque : l'applet JARCHI (disponible sur le site www.loria.fr/~jlon ham, onglet enseignement)
donne une simulation pas pas d'un demi-additionneur et d'un additionneur omplet.

6. Construisez un additionneur de deux mots de n bits partir de n additionneurs omplets.


7.

Construisez un d odeur qui transforme l'information porte par n entres (le ode binaire) en
un hoix d'un l de sortie parmi les 2n sorties possibles.
Exemple pour n = 2 :
e1
0
0
1
1

e2
0
1
0
1

s1
1
0
0
0

s2
0
1
0
0

s3
0
0
1
0

e1

s4
0
0
0
1

dec
e2

Remarque : l'applet JARCHI permet une simulation pas--pas du d odeur.

8. Construisez un omparateur (exer i e fa ultatif).


a) as simple (un bit) : s = 1 si a = b, sinon s = 0.

a
b

E rivez l'quation logique. Pensez au OU ex lusif.


b) as plus omplexe (quatre bits) : s = 1 si A = B, sinon s = 0.
A
B

a0
...
a3
b0
...
b3

28

s1
s2
s3
s4

Gnralisez la solution de la question a).

9. Construisez une unit arithmtique et logique lmentaire. A partir d'un ode opration sur deux
bits (quatre oprations possibles) et trois bits de donnes, elle ralise soit un OU, soit un ET, soit un
NON, soit une addition de deux bits.
1
0
0
1
1

2
0
1
0
1

rsultat
a ET b dans s, 0 dans rs
a OU b dans s, 0 dans rs
NON a dans s, 0 dans rs
somme de a, b et re dans s, retenue dans rs

donnes
code

a
b
re
c1
c2

UAL

s
rs

On utilisera un d odeur et un additionneur omplet. Le prin ipe est le suivant : partir des ls de
donnes, faites tous les  al uls demands ; gr e une porte sur haque l de sortie du d odeur,
sle tionnez un des rsultats et amenez e rsultat dans les ls s et rs.
Remarques :
 l'applet JARCHI donne une simulation pas pas de e ir uit,
 le lien entre matriel et logi iel ommen e un peu apparatre. Comme nous le verrons plus
tard, haque instru tion du langage ma hine omprend un ode opration. Gr e au d odeur
et aux portes de sle tion d'un des ir uits de al ul, e ode opration d len he l'apparition
du rsultat de l'opration voulue sur les ls de sortie de l'UAL.

3.3.2 Un ir uit squentiel  la bas ule


Une bas ule est un ir uit qui peut prendre deux tats (0 et 1). En absen e d'entre la bas ule reste
dans l'tat qu'elle possde. Elle fon tionne don omme une mmoire de 1 bit. Les entres permettent
de modier et tat. Les deux sorties donnent toujours la valeur de l'tat et son omplment. Il existe
plusieurs types de bas ules.
La bas ule RS est onstitue de deux portes NON-OU dont les sorties  bou lent sur les entres de
doivent avoir des
manire roise. L'tat se lit sur le l de sortie Q. A la mise sous tension Q et Q
valeurs opposes (0 et 1 ou 1 et 0). Ces valeurs doivent toujours rester opposes.
S
Q

Q
R

Il y a huit as regarder, fon tion des deux entres et de l'tat initial de Q. Les gures i-aprs
illustrent es huits as.
Si Q = 0 et si R = S = 0 (pas d'entres), Q reste 0. La bas ule garde indniment en mmoire le
bit 0 (tat stable 0).
Si Q = 1 et si R = S = 0 (pas d'entres), Q reste 1. La bas ule garde indniment en mmoire le
bit 1 (tat stable 1).
Si Q = 1 et si R = 1, Q passe 0 (reset ). La valeur de la mmoire est modie.
Si Q = 0 et R = 1, la mmoire reste 0.
Si Q = 0 et si S = 1, Q passe 1 (set ). La valeur de la mmoire est modie.
Si Q = 1 et S = 1, la mmoire reste 1.
.
S = 1 en mme temps que R = 1 doit tre interdit. On arrive en eet un tat in ohrent o Q = Q
En jouant ave les entres R et S , on peut donner la mmoire la valeur que l'on veut.
29

JARCHI permet de visualiser les volutions pas pas des 8 as possibles (selon les valeurs de Q,
S et R).
S

S
1

0
Q

S
1
0->1

1
R

Q
0

1->0

0
0->1

0
R

1->0
R 0

1
1

1->0
0->1

0
1
R 0

1
0

1->0

1->0
0

0
R
Q

1->0
Q

1->0
R

1
Q

1
R

1->0
Q

l'instant
Si on veut utiliser une table de vrit pour d rire la bas ule RS il faut distinguer Q et Q
n (avant l'arrive des bits sur R et S ) et l'instant n+1 (aprs l'arrive des bits sur R et S ).

30

R
0
0
0
0
1
1
1
1

S
0
0
1
1
0
0
1
1

Qn
0
1
0
1
0
1
0
1

Qn
1
0
1
0
1
0
1
0

Qn+1
0
1
1
1
0
0
0
0

Qn+1
1
0
0
0
1
1
0
0

Commentaire
mmorisation de 0
mmorisation de 1
mise 1
dj 1
dj 0
mise 0
interdit
interdit

Cette table peut se simplier en :


R
0
0
1
1

S
0
1
0
1

Commentaire
mmorisation
mise 1
mise 0
interdit

Qn+1
Qn
1
0


Si on veut d rire en ore plus pr isment les ir uits squentiels il faut tenir ompte des dures de
bas ulement des portes et de propagation des bits entre les portes. Le hronogramme i-aprs est une
manire de reprsenter les volutions temporelles d'un ir uit.
temps
S
R
Q 1
0
Q

, aprs un dlai et ensuite Q, aprs un deuxime dlai


On note qu'un Set fait d'abord bas uler Q
, aprs un deuxime dlai .
. Un reset fait d'abord bas uler Q, aprs un dlai et ensuite Q
orrespond au temps de bas ulement de la porte NON-OU, les temps de propagation des signaux tant
onsidrs omme ngligeables.
Pour les ir uits squentiels omplexes, les hronogrammes sont des lments importants d'analyse ( f.
exer i e 15).

Les exer i es suivants permettent de onstruire des ir uits de mmoire de plus en plus omplexes
jusqu' obtenir une mmoire entrale simplie.

Exer i es
10.

A partir de la bas ule RS, ajouter une entre CS ( hip sele t ) qui inhibe les entres R et S .
Si CS = 0, R et S n'ont pas d'eet. Si CS = 1, R et S ont leur eet normal. Gr e CS , la bas ule
ne peut hanger de valeur que si la bas ule est sle tionne (CS = 1).
Q

S
CS

Bascule
RS

31

Remarque : si le l CS est reli une horloge (on parle alors de l CK, abrviation de lo k ), la
bas ule n'est a tive qu'au moment des tops d'horloge. Une telle bas ule "syn hrone" n'volue don
plus au moment o les entres hangent mais des moments bien pr is et rgulirement espa s. On
parle de bas ule  syn hrone .

11. Reprendre la bas ule pr dente et onstruire une bas ule ave une seule entre D, telle que :

D = 0 S = 0 et R = 1,
D = 1 S = 1 et R = 0.
Ce i limine les as interdits (S et R = 1 en mme temps).
D

?
CS

On a don une mmoire de 1 bit qui garde sur Q la valeur de D (D omme data ou  donne ) et
qui ne peut hanger de valeur que quand la mmoire est sle tionne (CS 1). On parle de  bas ule
D ( omme donne) ou de bas ule  lat h . Sa table de vrit est trs simple :
D
0
1

Qn+1
0
1

Commentaire
mmorisation de 0
mmorisation de 1

Remarque : l'applet JARCHI donne la simulation pas pas de la bas ule RS et de la bas ule D.

12. Construire un registre de trois bits ave trois bas ules D.

On appelle CSi et Qi , les ls CS et Q de la iebas ule.

Entres
E1,E2,E3

Sorties
S1,S2,S3

Reg

CS

LEC

Si CS = 0, les bas ules ne peuvent tre modies (CSi = 0) et les Si = 0.


Si CS = 1 et LEC = 0, les bas ules mmorisent les Ei et les Si = 0 (le registre est  rit ).
Si CS = 1 et LEC = 1, les Si prennent les valeurs des bas ules (Qi ) qui ne hangent pas (le registre
est  lu ).
On pourra s'aider des quations logiques des Si et des CSi :
Si = CS.LEC.Qi (Si vaut 1 ssi CS = 1 et LEC = 1 et Qi = 1)
CSi = CS.LEC (CSi vaut 1 ssi CS = 1 et LEC = 0).

Remarque : l'applet JARCHI permet de simuler e registre.

13.

Construire une mmoire de 4 mots de 3 bits, ave quatre registres de 3 bits et un d odeur
pour l'adresse. L'adresse ontient le numro du mot lire/ rire (de 0 3).
Entres
(E1,E2,E3)

Mem

Sorties
(S1,S2,S3)

Adresses
(A1,A2)
CS

LEC

On pourra s'aider des quations logiques suivantes (o fi est un l de sortie du d odeur d'adresse) :
32

CSi = fi .CS (seul un registre est sle tionn : elui dont on donne l'adresse),
LECi = LEC (tous les registres sont soit lus soit rits).

Remarques :
 l'applet JARCHI donne une simulation de ette mmoire.
 le lien entre matriel et logi iel se pr ise un peu plus ; omme nous le verrons plus tard, en
plus du ode opration, haque instru tion en langage ma hine ontient une (des) adresse(s)
d'oprande(s). Gr e au d odeur, haque adresse permet de r uprer une valeur qui peut tre
envoye en entre de l'UAL pour subir l'opration d rite par le ode opration.

14. Reprendre la bas ule RS ave l CS de l'exer i e 10. On onsidre e l CS omme une entre et

sur l'entre S et la sortie Q sur l'entre R.


on bou le la sortie Q
S

entre

Donner le omportement de e ir uit en remplissant sa table de vrit et en donnant son hronogramme :


entre
0
0
1
1

Qt
0
1
0
1

Qt+1

Rsumer e omportement en une phrase.

15. On monte en srie trois ir uits du type de elui de l'exer i e 14.


C

Q
S

entre
R

Q
R

On envoie de brves impulsions 1 su essives sur le l d'entre. On suppose que par onstru tion la
bas ule hange de valeur la n de l'impulsion (sur son front des endant de 1 0). Initialement, les
trois bas ules sont 0. Dessiner le hronogramme montrant les valeurs sur le l d'entre et sur les ls
de sortie A, B et C . Quelle fon tion ralise e ir uit ?

3.4

La stru ture d'un ordinateur

C'est en 1946 que John von Neumann a pos les prin ipes de e qu'est un ordinateur, 'est--dire une
ma hine de traitement de l'information programme enregistr. Les instru tions du programme sont
ranges dans les ellules su essives d'une mmoire et sont ex utes dans l'ordre de leur rangement
(sauf instru tion de  bran hement ou  saut ou  rupture de squen e qui aiguille vers une autre
partie du programme). Comme le programme est introduit en mmoire et non g dans les ir uits
de la ma hine on peut en hanger volont : on parle de ma hine  universelle de traitement de
l'information.
33

3.4.1 Organisation gnrale en omposants


Nous nous intressons i i aux ordinateurs  lassiques ave une seule unit de traitement ou pro esseur. Il existe en eet des ar hite tures plus omplexes ave plusieurs pro esseurs dont nous parlerons
ultrieurement.
Un ordinateur lassique omporte inq types de omposants :
1. la mmoire entrale,
2. l'unit de traitement (ou pro esseur ou unit entrale ou CPU) qui omprend l'unit de ommande (ou unit de ontrle) et l'unit arithmtique et logique ; on peut noter au passage qu'un
mi ro-pro esseur est un pro esseur implant sur une seule pu e,
3. les units d' hange qui interfa ent les priphriques,
4. les priphriques d'entre, de sortie, de mmoire auxiliaire,
5. les bus pour la ir ulation des informations entre omposants.
Les instru tions (entre, sortie, transfert vers ou depuis les mmoires auxiliaires, al ul arithmtique
et logique . . .) sont interprtes par l'unit de ommande qui a tionne les autres omposants pour les
raliser via des signaux de ommande (ordres donns aux ir uits).
La gure i-dessous pr ise les ux d'informations (donnes, instru tions, signaux de ommande). On
note le rle essentiel de la mmoire entrale : tout (donnes, rsultats, programmes) transite par elle.
Priphriques
Entre
donnes &
instructions
(d&i)

Mmoire
auxiliaire

Sortie
d&i

Unit
dchange

d&i

Unit
dchange

Unit
dchange

Mmoire centrale

d&i

Instr 1

Donne

Instr N

Donne

programme

donnes

signaux de commande
Unit de
commande

instructions

Unit arithmtique
et logique

donnes

Processeur ou unit de traitement

Bus

Chaque type de pro esseur est apable d'ex uter un ertain ensemble d'instru tions, son  jeu d'instru tions . Cet ensemble d'instru tions onstitue le langage dire tement omprhensible par le pro esseur ou  langage ma hine .
Les donnes sont transformes par l'unit arithmtique et logique qui ee tue les oprations arithmtiques (+, , , / . . .) et logiques (=, <, >, ET, OU . . .).
Ces prin ipes trs simples n'ont pu tre on rtiss que dans les annes 1950 ave l'avnement de
l'le tronique moderne.

34

3.4.2 La mmoire entrale


a) Prin ipes

C'est un ensemble de ellules mmoires ( mots ) qui peuvent ontenir ha une une donne ou une
instru tion en binaire. Chaque ellule est repre par un numro, ou adresse. On peut lire ou rire
une information une adresse donne. Le temps d'a s est le mme quel que soit le mot on ern.
L'adresse doit tre pla e dans le registre d'adresse (RA). Un dispositif sle tionne la bonne ellule
( f. le d odeur et le l hip sele t vu pr demment). En as d' riture, l'information rire doit
tre pla e dans le registre mot (RM). En as de le ture, l'information lue est pla e dans le registre
mot.
La mmoire entrale perd tout son ontenu lorque l'alimentation le trique est oupe ( ontrairement
aux mmoires externes omme les disques). La mmoire entrale peut tre sujette des erreurs soit
permanentes (usure, dfaut de fabri ation) soit intermittentes (problme d'alimentation le trique,
parti ules alpha). On sto ke souvent haque mot de M bits ave K bits supplmentaires permettant
de dte ter et de orriger d'ventuelles erreurs. Ces K bits de ontrle sont al uls avant riture en
mmoire, sto ks en mmoire et re al uls en le ture pour omparaison et ventuellement orre tion
de la donne.

adresse

1000

1001

Valeur binaire
(donne ou
instruction)

val

4369

mot

Slection
dadresse

Registre
dadresse (RA)

4369
val

Registre
Mot (RM)

999

Lecture ou criture (signal de commande)

Comme la mmoire entrale est de taille limite elle est souvent gre omme une  mmoire virtuelle plus grande que la mmoire physique. Cette mmoire virtuelle est d oupe en  pages ranges soit en mmoire physique soit en mmoire auxiliaire (disque). C'est le systme d'exploitation qui
transfre, selon les besoins du moment, les pages utiles vers la mmoire physique et les pages inutiles
vers la mmoire auxilaire.

b) Te hnologies

Du point de vue te hnologique on distingue 2 types de mmoires entrales (ou  mmoires vives ou
RAM pour Random A ess Memory ) dont les donnes sont perdues en absen e d'alimentation le trique :
1. les RAM statiques (SRAM) qui utilisent le prin ipe des bas ules ; elles sont trs rapides, de prix
lev et don prin ipalement utilises dans les mmoires a hes ( f. i-aprs),
2. les RAM dynamiques (DRAM de divers types SDRAM, RDRAM, DR-SDRAM, DDR-SDRAM,
DDR2-SDRAM . . .) qui n essitent un rafra hissement priodique des informations ; elles sont
moins rapides, moins oteuses et plus fortement intgres. Elles sont utilises pour les mmoires
entrales.
Il existe aussi des  mmoires mortes  le ture seule (ROM pour Read Only Memory ). Elles gardent
leurs valeurs mme en absen e d'alimentation le trique. On distingue les :
 ROM vritables : harges en informations la fabri ation,
35

 PROM (Programmable ROM) : harges par l'utilisateur du ir uit ( riture une seule fois),
 EPROM (Erasable PROM) : eaables en les plaant dans une ma hine sp iale (sous rayons
ultraviolets par exemple) et modiables plusieurs fois,
 EEPROM (Ele tri ally EPROM) : eaables le triquement (plusieurs entaines de mi ro se ondes par o tet).

) Mmoire a he

Le pro esseur est beau oup plus rapide que la mmoire entrale. Pour tenir ompte de ette diren e
de vitesse on inter ale une mmoire a he plus rapide que la mmoire entrale entre le pro esseur et la
mmoire entrale. La mmoire a he est ralise ave des te hnologies oteuses et reste don de faible
apa it. Son prin ipe est le suivant : si l'information utile, 'est--dire un mot mmoire parti ulier,
est dans le a he on y a de rapidement ; sinon, on a de la mmoire entrale et on range dans
le a he un blo de K mots autour du mot dsir, ar il y a une bonne probabilit que e mot ou
un mot pro he soit de nouveau utile peu de temps aprs. C'est le prin ipe de  lo alit spatiale et
temporelle , li au fait que les instru tions se suivent en mmoire et que les donnes sont souvent
sto kes ons utivement. Un algorithme de rempla ement d ide quel blo prsent dans le a he est
rempla par le nouveau blo : le plus an ien (rst in rst out ou FIFO), le plus an iennement utilis
(last re ently used ou LRU), le moins frquemment utilis (least frequently used ou LFU), un pris au
hasard, et .
requte

requte
cache

processeur

bloc

mot

mmoire
centrale

Les ordinateurs a tuels possdent souvent plusieurs niveaux de a he. Sur les PC, le a he L1 (level
1 ), le plus rapide, est interne au mi ro-pro esseur. Il omporte un mini a he d'instru tions et un mini
a he de donnes. Le a he L2, un peu moins rapide, est souvent in lus dans le mme botier que le
pro esseur. Il est parfois omplt par un a he L3, situ sur la arte mre.

d) Hirar hie des mmoires

L'idal, pour un ordinateur, serait de disposer d'un seul type de mmoire, trs rapide et de trs grande
apa it. Cela est malheureusement irralisable a tuellement du fait du ot engendr, les mmoires
les plus rapides tant aussi les plus hres. Par ailleurs, bien que la apa it totale de donnes mmoriser soit importante, il n'est pas n essaire de disposer d'un temps d'a s rapide pour toutes les
donnes. Seules les donnes les plus utilises n essitent un temps d'a s trs ourt. On utilise don
une hirar hie de mmoires qui va de la mmoire d'a s trs rapide en petite quantit (le registre)
la mmoire de trs grande apa it orant un temps d'a s plus important (disque ou SSD). Le
tableau i-dessous prsente les niveaux mmoire que l'on trouve dans les ma hines a tuelles :
Capa its typiques
Temps d'a s (ns)
Cot relatif

Registre
<Ko
15
50

Mmoire a he
Mo
3 10
10

Mmoire entrale
Go
10 400
1

Disque
>100Go
5000000
0,001

3.4.3 L'unit de ommande


Elle d ode les instru tions du programme et les transforme en une srie de signaux de ommande qui
a tivent les autres omposants de l'ordinateur.

a) Les registres

L'unit de ommande omporte 2 registres essentiels :


1. le ompteur ordinal (CO) : il ontient l'adresse mmoire de la pro haine instru tion ex uter ;
il est in rment de 1 en 1 (en supposant que toutes les instru tions o upent un et un seul
mot) ; en as de bran hement il reoit l'adresse o il faut poursuivre le programme.
36

2. le registre instru tion (RI) : il reoit l'instru tion ex uter ; l'instru tion ontient toujours un
ode opration (ou ode instru tion) et de 0 n adresses d'oprandes.
La prise en ompte du ode opration onsiste envoyer une srie de signaux de ommande aden s
par l'horloge qui ommandent la ralisation de l'opration par les autres ir uits.
On peut don avoir un mme langage ma hine (mmes odes oprations) traduit en signaux de ommande dirents qui retent des ar hite tures matrielles direntes.
Plus l'horloge bat vite (frquen e d'horloge exprime en GigaHertz) et plus l'instru tion est ralise
vite sur les ir uits de la ma hine.
instruction

Horloge

Code
instruction

Adresses
oprandes

Registre instruction (RI)

top

Squenceur
Adresse de la prochaine
instruction excuter
Compteur ordinal (CO)

Squence de signaux de commande

b) Le y le  her herd oderex uter 

Le prin ipe d'ex ution d'un programme est don la rptition du mme y le d'oprations, appel
y le  her herd oderex uter  :

rpter

n

her her l'instru tion dont l'adresse est dans CO et la mettre dans RI ;
in rmenter de 1 CO ;
d oder le ontenu de RI ;
s'il y en a, her her le (les) oprande(s) dont on a l'adresse (les adresses) ;
ex uter l'opration orrespondant au ode opration ; si 'est un bran hement CO est re-modi

) Les ar hite tures CISC et RISC

Le squen eur, qui gnre les signaux de ommande partir du ode opration, peut tre bl ( 'est
dire ralis par un ir uit) ou mi roprogramm. Dans e dernier as, le squen ement est d rit par une
suite de mi ro-instru tions. Ce mi roprogramme, lo alis en ROM, est ex ut par une mi ro-ma hine
dote d'un mi ro- ompteur de programme et d'une mmoire.
C'est souvent le as des pro esseurs ayant un jeu d'instru tions omplexes et de tailles variables ou
pro esseurs CISC (Complex Instru tion Set Computer ), omme les pro esseurs Intel. Au ontraire,
les pro esseurs RISC (Redu ed Instru tion Set Computer ), omme les pro esseurs PowerPC, ALPHA,
SPARC ou MIPS, ont un petit nombre d'instru tions de taille xe et utilisent en gnral un squen eur
bl pour plus d'e a it.
L'ar hite ture CISC, la plus an ienne, se justife par la lenteur de la mmoire vis vis du pro esseur. Il apparat don intressant de dnir des oprations omplexes, ralises au sein du pro esseur,
plutt que des suites d'oprations simples, impliquant de nombreux a s mmoire. Mais des tudes
statistiques ont montr au dbut des annes 70 que 80% des programmes gnrs par les ompilateurs
faisaient appel seulement 20% des instru tions ma hine. D'o l'ide de l'ar hite ture RISC de rduire le jeu d'instru tions es 20% d'instru tions les plus utilises, en her hant les optimiser au
maximum ave des squen eurs bls. La tendan e a tuelle onsiste mitiger les ar hite tures RISC
ave des ara tristiques issues des ar hite tures CISC ou inversement.
37

CISC
jeu d'instru tions large
instru tions de tailles direntes
instru tions de dures direntes
squen eur mi roprogramm

RISC
jeu d'instru tions rduit
instru tions de mmes tailles
instru tions de mmes dures
squen eur bl

3.4.4 L'unit arithmtique et logique (UAL ou ALU)


Elle ex ute les al uls arithmtiques ( omme l'addition) et logiques ( omme la omparaison). Les diffrents bits du registre d'tat (RE) renseignent sur le droulement de l'opration ( omme l'existen e
d'un dbordement). On les appelle aussi indi ateurs ou drapeaux (ags ).
Normalement une instru tion de al ul devrait omporter trois adresses : les deux oprandes traiter
et l'adresse o ranger le rsultat. Trs peu de ma hines sont onues ainsi ar les instru tions trois
adresses demandent beau oup de bits (VAX-11 de Digital).
Pour simplier les instru tions, un des oprandes est souvent pla dans un registre parti ulier, l'a umulateur (ACC), de mme que le rsultat. Il sut don d'une seule adresse dans l'instru tion, puisque
la ma hine travaille impli itement ave ACC pour les deux autres valeurs. En ontrepartie, il faut trois
instru tions pour faire une opration :
Rsultat
(mmoire centrale)

Circuits de calcul
de lUAL

Code opration

Registre
dtat (RE)

Oprande1
(mmoire centrale)

Oprande2
(mmoire centrale)

1. transfert de l'oprande 1 dans ACC,


2. opration ave ACC et oprande 2 indiqu dans l'instru tion ; rangement du rsultat dans ACC,
3. transfert du rsultat de ACC en mmoire.
Oprande 1
(mmoire
centrale)

1
Accumulateur (ACC)

Circuits de calcul
de lUAL
Registre
dtat (RE)

Rsultat
(mmoire centrale)

Code opration

Oprande2
(mmoire centrale)

Cette organisation ave a umulateur a t utilise par les premiers mi ropro esseurs 8 bits (Intel 8080
et Motorola 6800). Dans les mi ropro esseurs 16 bits (Intel 8086 et Motorola 68000) l'a umulateur
38

a t rempla par un petit nombre de registres gnraux. Pour reprer un registre parmi les quatre
(R1, R2, R3, R4) 2 bits susent dans les instru tions :
1. transfert de l'oprande dans un des 4 registres gnraux (Ri),
2. opration ave Ri et l'oprande 2, rsultat dans Ri,
3. transfert de Ri en mmoire.
Les mi ropro esseurs les plus r ents (Pentium, PowerPC, ALPHA, SPARC, MIPS . . .) utilisent uniquement des registres et plus au une adresse dans les instru tions :
1. transfert de l'oprande 1 dans un registre Ri,
2. transfert de l'oprande 2 dans un registre Rj,
3. opration ave Ri et Rj, rsultat dans Rk,
4. rangement de Rk en mmoire.
Il peut alors y avoir un grand nombre de registres adresss par quelques bits seulement.
noter enn qu'il peut exister d'autres units de al ul que l'UAL dans un pro esseur. C'est le
as des units de al ul pour les rels ottants (FPU) et des units de al ul multimdia (MMU) pour
les al uls ve toriels.

3.4.5 Le y le omplet d'ex ution d'une instru tion de al ul ou de bran hement


On dtaille le y le  her herd oderex uter pour une ma hine ave un a umulateur :
a) Phase her her
A1 : transfert CO dans RA (adresse de la pro haine instru tion ex uter dans RA).
A2 : in rmentation de 1 de CO (la pro haine instru tion est l'adresse suivante).
A3 : le ture de l'instru tion en mmoire et rangement dans RM.
A4 : transfert de l'instru tion de RM RI pour d odage.
b) Phase d oder
B1 : analyse du ode instru tion ; le squen eur envoie les signaux de ommande adquats.
B2 : adresse de l'oprande ventuel dans RA.
B3 : le ture de l'oprande en mmoire et rangement dans RM.
) Phase ex uter
C1 : l'opration de al ul est applique aux oprandes dans RM et ACC (rappel : ette instru tion de
al ul a t pr de par une instru tion de transfert du premier oprande de la mmoire vers ACC
et sera suivie d'une instru tion de transfert du rsultat de ACC vers la mmoire).
Pour les instru tions de bran hement : A1, A2, A3, A4, B1 sont in hangs ; B2 et B3 sont absents ;
C2 : l'adresse de l'instru tion de bran hement est range dans CO (l'instru tion ette adresse devient
don la pro haine instru tion ex uter).

39

ACC

C1

Squenceur

UAL
B1

C1

C1
RM

Code

Unit de cde

RI

adresse
B2

A4

CO

B3
A2

A3

A1

+1

oprande
RA
instruction

Mmoire centrale

JARCHI permet de simuler l'ex ution d'un programme sur une ar hite ture ave un a umulateur.
La ma hine est minimum et omporte N mots de 4 ara tres, d'adresses 0 N. Le programme doit
ommen er l'adresse 0 (initialisation du CO 0).
Chaque instru tion omporte un ode sur 2 ara tres et ventuellement une adresse sur 2 ara tres.
Codes
10
20
30
40
50
51
52
53
99

Instru tions
hargement dans ACC du mot indiqu
(ex : 1025 pour le hargement dans ACC du mot 25)
rangement de ACC dans le mot mmoire indiqu
addition de ACC et du mot mmoire indiqu
omparaison de ACC et du mot mmoire indiqu ; le drapeau reoit 0,1,2
selon que ACC est =, >, < au mot mmoire
saut in onditionnel l'adresse indique (ex : 5012)
si drapeau = 0, saut l'adresse indique
si drapeau = 1, saut l'adresse indique
si drapeau = 2, saut l'adresse indique
arrt du programme

On tudiera au hapitre suivant une ma hine simule ave un langage ma hine plus raliste.

Exer i es
16.

rire un programme qui additionne trois donnes et range le rsultat dans un 4emot de la
mmoire. Simuler le ave JARCHI.

17. Mme question ave inq donnes.


3.4.6 Les bus
Un bus est une voie de ommuni ation onne tant plusieurs omposants. C'est un support de transmission partag.
Les bus internes onne tent les omposants dans l'unit entrale. Ils ontiennent de quelque dizaines
plusieurs entaines de lignes par lesquelles transitent en parallle les bits. Il y a des lignes de donnes,
des lignes d'adresses et des lignes pour signaux de ommande.
Un signal mis par un omposant peut tre reu par tous les autres omposants onne ts au bus. Par
40

ontre, il faut interdire deux omposants d'mettre simultanment un signal ar eux- i pourraient
interfrer. Une mthode d'arbitrage vitant ette situation doit tre mise en pla e. Cet arbitrage est
ralis soit par un omposant sp ialis (le ontrleur de bus), dans le as d'un arbitrage entralis,
soit par la oopration des omposants onne ts au bus, dans le as d'un arbitrage d entralis.
Il y a de nombreux types de bus organiss selon direntes ar hite tures de bus. On trouve en gnral
le bus lo al entre le pro esseur et le a he, trs rapide, le bus systme entre la mmoire entrale et le
a he, assez rapide, et des bus d'entres/sorties ou bus d'extension entre le bus systme et les priphriques, plus lents.
Parmi les bus d'entres/sorties ourants sur les PC on peut iter les bus AGP et PCI-EXPRESS pour
les artes graphiques, les bus PCI pour les artes rseaux et son, les bus ATA, SATA, SCSI pour les
disques, les bus USB et Firewire pour les priphriques externes.

3.4.7 Les priphriques


La des ription te hnologique de tous les priphriques sort du adre de e ours. Nous nous limitons
quelques informations de base on ernant les disques durs qui sont importantes onnatre lorsque l'on
administre une ma hine. A noter que les disques sont de plus en plus on urren s par les SSD ( Solid
State Drive ), onstitus de ir uits de mmoire ash (plus de moteur, don plus rapide, moins de
onsommation le trique, moins de bruit, plus de rsistan e aux ho s . . .mais en ore un peu plus her).
Une unit de disque dur est onstitue de plusieurs disques, ou plateaux, en aluminium ou en verre
empils et en rotation rapide autour d'un mme axe (ex : 10000 tours/minute). Chaque fa e d'un
plateau est lue ou rite par une tte de le ture. An de simplier le m anisme, toutes les ttes se
dpla ent en mme temps, radialement, sur un m anisme en forme de peigne.
Les disques sont stru turs en pistes et en se teurs. Le nombre de pistes est x par la densit transversale (nombre de pistes par unit de longueur radiale). Cette densit dpend essentiellement de la
pr ision du positionnement des ttes sur le disque.
Chaque piste ou se teur ontient le mme nombre d'o tets (ave une densit qui augmente de l'extrieur vers le entre) ou non. L'unit de le ture ou d' riture sur le disque est le se teur ( apa it
typique 512 o tets). Le ontrleur du disque doit tre apable d' rire ou de lire n'importe quel se teur.
Pour reprer un se teur, il faut onnatre son plateau, le numro de sa piste, et le numro du se teur
dans la piste. La plupart des systmes introduisent la notion de ylindre, form par l'ensemble des
pistes de mme position sur tous les plateaux. Un se teur est alors repr par :
 un numro de ylindre (distan e tte-axe de rotation) ;
 un numro de tte de le ture ;
 un numro du se teur (li l'angle).
tte de lecture

secteur
rotation

axe

piste

cylindre

axe

Dplacement des
ttes

Le temps d'a s pour lire ou rire un se teur du disque dur dpend de la vitesse de rotation du
disque, de la vitesse de dpla ement des ttes et de la dimension du disque.
Chaque transfert (le ture ou riture d'un se teur) demande les oprations suivantes :
41

 si les ttes ne sont pas sur le bon ylindre, dpla ement des ttes ; on dnit le temps de positionnement moyen (par ours en moyenne de la moiti du rayon),
 attente de l'arrive du dbut du se teur vis sous la tte de le ture ; en moyenne, il faut que le
disque tourne d'un demi-tour ; e temps est appel demi dlai rotationnel,
 transfert des donnes, qui dure le temps n essaire pour faire dler le se teur entier sous la tte
de le ture.
Le dbit d'information maximal est dtermin par la vitesse de rotation du disque et la densit d'enregistrement longitudinale. Il est parfois limit par le dbit du bus d'entres/sorties reliant le disque
l'ordinateur. Les fabriquants de disques durs indiquent en gnral le temps d'a s moyen et le taux
de transfert maximum (dbit).
Le rangement des  hiers sur le disque dpend du systme de gestion des  hiers du systme d'exploitation.
Avant utilisation un disque dur doit tre format.
1. Formatage de bas niveau : les pistes du disque sont divises en un nombre donn de se teurs.
2. Partitionnement : il permet de diviser le disque dur en plusieurs zones appeles partitions pouvant
tre gres par dirents systme d'exploitation. Il est possible d'installer des partitions pour
plusieurs systmes, omme Windows (systmes de  hiers FAT32 ou NTFS) et Linux (systmes
de  hiers ext2 et ext3).
3. Formatage de haut niveau (ou formatage logique) : pendant ette phase, le systme d'exploitation
rit sur le disque les stru tures n essaires pour grer les  hiers et les donnes (se teur amor e,
tables d'allo ation, rpertoires ra ines par partition . . .).

3.4.8 Les units d' hange


Il existe une grande varit de priphriques ave des vitesses, des dbits et des formats de donnes trs
dirents. Tous es priphriques ont un point ommun : ils sont trs lents par rapport au pro esseur
et la mmoire (de quelques nanose ondes pour le pro esseur des millise ondes ou se ondes pour les
priphriques). Il faut don des units d' hange (ou ontrleurs d'entres/sorties) entre pro esseur et
priphriques pour grer leur oordination, le trans odage, la dte tion des erreurs, et . Il existe trois
te hniques de base pour grer les entres/sorties.
1. La s rutation : le pro esseur interroge l'unit d' hange pour savoir si des transferts (entres
ou sorties) sont possibles. Tant que es transferts ne sont pas possibles, le pro esseur attend
puis redemande (bou le de s rutation). L'in onvnient majeur est que le pro esseur se retrouve
souvent en phase d'attente. Il est ompltement o up par la ralisation de l'entre/sortie. De
plus, l'initiative de l' hange de donnes revient au programme. Il peut don arriver que des
entres ne soient pas traites immdiatement ar le programme ne se trouve pas en ore dans la
bou le de s rutation. Ce type d'entre/sortie est trs lent.
2. Les interruptions : une interruption est un signal pouvant tre mis par un dispositif externe au
pro esseur. Le pro esseur possde une ou plusieurs entres rserves aux interruptions. L'interruption peut stopper le travail ourant du pro esseur pour for er l'ex ution d'un programme
traitant la ause de l'interruption.
Dans une opration d'entre/sortie ave interruption, le pro esseur ex ute sa requte de le ture/ riture de donne et reprend l'ex ution d'un programme (le mme ou un autre en ayant
sauvegard l'tat du programme initial et harg l'tat du programme remplaant). Il n'attend
don plus. C'est l'unit d' hange qui ralise l'entre/sortie. Quand elle a r upr la donne
(entre) ou ni de l' rire (sortie) elle envoie une interruption au pro esseur. Avant haque ex ution d'une instru tion, le pro esseur examine s'il y a eu une requte d'interruption. Si 'est le
as, il interrompt le programme en ours et sauvegarde son tat. Ensuite, il ex ute le programme
d'interruption (qui transfre la donne en mmoire pour une entre) puis reprend le programme
initial en re hargeant son tat.

42

3. L' hange dire t ave la mmoire : e mode permet le transfert de blo s de donnes entre la
mmoire et un priphrique sans passer par le mi ropro esseur. Pour ela, un ir uit appel
ontrleur de DMA (Dire t Memory A ess ) prend en harge entirement le transfert des blo s
de donnes. Le mi ropro esseur doit tout de mme :
 initialiser l' hange en donnant au DMA l'identi ation du priphrique on ern,
 donner le sens du transfert (entre ou sortie),
 fournir l'adresse du premier et du dernier mot on erns par le transfert.
Le ontrleur de DMA est dot d'un registre d'adresse, d'un registre de donne, d'un ompteur
et d'un dispositif de ommande ( 'est un vrai petit pro esseur sp ialis). Pour haque mot
hang, le DMA demande au mi ropro esseur le ontrle du bus, ee tue la le ture ou l' riture
mmoire l'adresse ontenue dans son registre et libre le bus. Il in rmente ensuite ette adresse
et d rmente son ompteur. Lorsque le ompteur atteint zro, le dispositif informe le pro esseur
de la n du transfert par une interruption.
Le prin ipal avantage est que, pendant toute la dure du transfert d'un blo de donnes, le
pro esseur est libre d'ee tuer un autre traitement. La seule ontrainte est une limitation de
ses propres a s mmoire pendant toute la dure de l'opration, puisqu'il doit parfois retarder
ertains de ses a s pour permettre au dispositif d'a s dire t la mmoire d'ee tuer les siens
(arbitrage pour l'a s au bus).
La gure suivante donne une ar hite ture de ma hine possible ave les dirents types de bus et le
ontrleur DMA.
Processeur

Mmoire centrale

Bus local

Cache

Bus systme

Contrleur DMA
Bus E/S

UE

UE

UE

Bus externes

Ecran

Disque

rseau

3.4.9 Les interruptions


Outre les interruptions lies aux entres/sorties, il existe d'autres types d'interruptions :
 dfaillan e matrielle (ex : erreur mmoire, problme d'alimentation le trique . . .),
 dfaillan e logi ielle (ex : division par zro, a s une zone mmoire protge . . .),
 signal d'un temporisateur (ex ution d'une fon tion du systme d'exploitation ertains instants), et .
Il est possible qu'une demande d'interruption intervienne pendant l'ex ution d'un autre programme
d'interruption. Des priorits peuvent tre asso ies aux interruptions. L'interruption qui arrive est prise
en ompte immdiatement si elle a une priorit suprieure elle en ours. Ce m anisme permet de
grer les urgen es direntes des interruptions.
l'o asion d'une entre/sortie, nous avons vu qu'un programme bloqu en attente de donnes par
exemple peut tre rempla par un autre. Cette ide de partage du pro esseur et de la mmoire par
43

plusieurs programmes est mise en uvre par le systme d'exploitation (unix, windows . . .).
Le systme d'exploitation est un programme harg de fa iliter l'utilisation de l'ordinateur et d'en
optimiser le fon tionnement. Il gre en parti ulier les ressour es (mmoire virtuelle, pro esseur(s),
units d' hange) pour les partager entre plusieurs programmes en ours d'ex ution (pro essus).
L'tude des systmes d'exploitation sort du adre du ours d'ar hite ture des ordinateurs et fera
l'objet de ours sp iques ultrieurement.
Applications
Systme dexploitation

Langage machine

Matriel

3.5

Les ar hite tures avan es : ar hite tures pipelines, supers alaires et multi ore

Comme nous l'avons vu, le traitement d'une instru tion omprend plusieurs phases. Au lieu de les
ex uter squentiellement on peut her her les ee tuer en parallle pour plusieurs instru tions
su essives. Supposons que les phases orrespondent aux trois tapes her her (CH), d oder (DE),
ex uter (EX). Dans une ma hine pipeline on aura don :
Instru tions/tages
instri
instri+1
instri+2

1
CH

Instru tions/tages
instri
instri+1
instri+2

1
CH

2
DE
CH

3
EX
DE
CH

EX
DE

EX

2
DE

3
EX

CH

DE

EX

CH

DE

EX

au lieu de :

Le gain de rapidit est d l'augmentation du ux des instru tions traites et non pas la rapidit de
traitement de haque instru tion. Il faut noter que haque tage du pipeline a omme dure elle de
la phase la plus longue ( ar les trois s'ex utent en parallle). L'e a it du pipeline dpend aussi de
la manire dont le programme est rit. Par exemple, si une instru tion de al ul a besoin du rsultat
de l'instru tion de al ul juste avant, le pipeline est en dfaut. Les al uls doivent tre optimiss par
le programmeur ou le ompilateur. De plus, en as de bran hement onditionnel, on peut ommen er
le traitement des instru tions qui suivent de manire inutile. Dans ertains pro esseurs on tente de
prdire si le bran hement va avoir lieu ou non en fon tion d'une table des ex utions passes des
bran hements ( anti ipation de bran hement ).
Les pro esseurs  supers alaires possdent plusieurs pipelines qui fon tionnent en parallle. Un supers alaire de degr n possde n pipelines parallles. On a don du paralllisme entre instru tions en
plus du re ouvrement des phases l'intrieur des instru tions.
Ce paralllisme est omplexe grer ause des syn hronisations n essaires. En outre, il n'est pas
toujours possible d'utiliser plein tous les pipelines.
Exemple d'ex ution sur un supers alaire de degr 4 :

44

Instru tions/tages
instri
instri+1
instri+2
instri+3
instri+4
instri+5
instri+6
instri+7
instri+8
instri+9
instri+10
instri+11

1
CH
CH
CH
CH

2
DE
DE
DE
DE
CH
CH
CH
CH

3
EX
EX
EX
EX
DE
DE
DE
DE
CH
CH
CH
CH

EX
EX
EX
EX
DE
DE
DE
DE

EX
EX
EX
EX

Par exemple, le Pentium 4 est un mi ropro esseur de type supers alaire ave :
 un jeu d'instru tions trs large ave des formats d'instru tion variables,
 haque instru tion est traduite en une ou plusieurs mi ro-oprations de taille xe,
 le pro esseur ex ute les mi ro-oprations ave une organisation plusieurs pipelines de 20 tages
(soit 20 tapes par mi ro-opration !).
Les appro hes multi- ore (multi oeurs) onsistent mettre plusieurs pro esseurs sur la mme pu e.
A tuellement on trouve des pro esseurs dual- ore ou quadi- ore mais l'avenir le nombre de pro esseurs
intgrs pourra augmenter. Cela permet d'ex uter des appli ations en parallle ou des threads en
parallle issus d'une appli ation multi threads.
NB : les threads sont des pro essus lgers grs au sein d'une appli ation et qui partagent les mmes
ressour es ; au ontraire, les pro essus lourds sont grs par le systme d'exploitation et possdent des
ressour es qu'ils ne partagent pas ave les autres.

3.6

La dnition et la mesure des performan es

a) Dnition thorique

La vitesse de l'horloge aden e les instru tions. A partir de l, on peut al uler le temps CPU pour
un programme P omme le produit entre le nombre de y les n essaires pour le programme P par le
temps de y le d'horloge T CH . Pour dterminer le nombre de y les n essaires pour le programme
P, on peut multiplier le nombre d'instru tions ex utes par le pro esseur N I par le nombre moyen
de y les par instru tion pour l'ar hite ture onsidre CP I :
temps CPU = N I CP I T CH
Pour rduire le temps CPU on peut soit augmenter la frquen e de l'horloge (mais il existe une limite
matrielle l'amlioration de la te hnologie), soit rduire le CP I ( hoix du jeu d'instru tions ou a s
mmoire plus rapides), soit rduire le nombre d'instru tions N I ( ompilateur optimisant).
On peut al uler les MIPS (Millions d'Instru tions Par Se onde) par :
MIPS = F H/CP I , o F H est la frquen e d'horloge en MHz (millions de y les par se onde).
Sur le mme modle existent galement les MegaFlops (millions d'instru tions ottantes  sur des
rels  par se onde).
Les MIPS et les MegaFlops al uls ne permettent pas rellement de omparer les ma hines entre elles
ar ils dpendent de la  quantit de travail ee tue par les instru tions qui peut varier beau oup
entre les ar hite tures CISC (instru tions omplexes) ou RISC (instru tions simples).
De plus, les performan es globales d'une ma hine dpendent non seulement de l'organisation du pro esseur mais aussi de tous les omposants qui y sont relis : hemins de donnes (bus), interfa es,
45

mmoire entrale et units de sto kage, ainsi que du systme d'exploitation.

b) Mesure pratique

L'ide est de mesurer le temps d'ex ution de programmes rels. Mais e temps d'ex ution peut se
dnir de plusieurs manires, ave des rsultats trs dirents selon le hoix qui est fait. On peut
distinguer par exemple :
 le temps total pour terminer la t he (en in luant les a s disques et mmoire, les oprations
d'entres-sorties),
 le temps CPU (pro esseur) utilis pour la t he,
 le temps CPU utilis par le systme d'exploitation pour ette la t he, et .
La ommande time sous Unix permet d'avoir des informations sur es dures sous la forme :

29.090 user 13.140 system 2:08:38.09 elapsed

0.5 %CPU

Le temps CPU pour la t he est de 29.09 s. Le temps CPU pour le systme est de 13.14 s. Le temps
total est 7718 s (2 h 8 mn 38 s), d'o un temps d'o upation du pro esseur de (29.09 + 13.40)/7718 soit
0.5% seulement pour ette t he.
En pratique, l'appro he la plus raliste pour mesurer les performan es onsiste raliser des tests
(ben hmarks ). Ils omparent les ma hines par types d'appli ations ( al uls numriques, jeux, bureautique, et .) en utilisant des programmes et des donnes ommunes. Les rsultats de ertains tests sont
publis et permettent des omparaisons peu prs ables entre ma hines. C'est le as par exemple
des test du SPEC (Standard Performan e Evaluation Corporation http://www.spe .org) utiliss par
beau oup de onstru teurs.

46

Exer i es r apitulatifs (extraits de DS)


18. Dmultiplexeur

On appelle dmultiplexeur un ir uit qui transmet le bit du l d'entre (E) sur un des ls de sortie
(S0, S1, S2, S3) en fon tion de l'adresse fournie sur les ls d'adresse (A0, A1).
Exemple : dmultiplexeur 2 bits dont la table de vrit est la suivante.
E
0
0
0
0
1
1
1
1

A0
0
0
1
1
0
0
1
1

A1
0
1
0
1
0
1
0
1

S0
0
0
0
0
1
0
0
0

S1
0
0
0
0
0
1
0
0

S2
0
0
0
0
0
0
1
0

S3
0
0
0
0
0
0
0
1

S0
S1
S2
S3

E
A0 A1

a) Donnez les quations logiques de S0, S1, S2, S3,


b) Construisez, par la mthode systmatique, le ir uit orrespondant.

19. Table de vrit

Donnez la table de vrit du ir uit suivant.


A

S
ET

ET
D

OU

20. Codi ation et ir uit logique

a) Cal ulez les omplments 2 des nombres de 3 bits du tableau suivant :


nombres
000
001
010
011
100
101
110
111

omplments 2

b) On veut onstruire le ir uit logique qui al ule le omplment 2 de 3 bits. On onsidre le tableau
de la question a) omme sa table de vrit en appelant e1, e2 et e3 les entres et s1, s2 et s3 les sorties.
Donnez les quations logiques de s1, s2 et s3.
) Construisez par la mthode systmatique vue en ours e ir uit logique (ave des portes ET, OU,
NON).
.b).
d) Fa torisez les quations logiques pour faire apparatre des OU ex lusifs (a.b + a
Dessinez le ir uit simpli (ave des portes ET, OU, NON, OU EXCLUSIF).

21. Bit majoritaire

a) Soit le ir uit trois entres qui donne en sortie le bit majoritaire sur les trois entres. Donnez
l'quation logique non simplie et dessinez le ir uit orrespondant ave des portes ET, OU, NON
(les portes ET et OU pouvant omporter plus de deux entres).
Le ir uit est dni par la table de vrit i-dessous :
47

e1
0
0
0
0
1
1
1
1

e2
0
0
1
1
0
0
1
1

e3
0
1
0
1
0
1
0
1

s (majorit de 0 ou de 1)
0
0
0
1
0
1
1
1

e1
e2

e3

b) Proposez un ir uit ralisant la mme fon tion et utilisant moins de portes logiques. Vous pouvez
utiliser le ET, le OU, le OU ex lusif, et le NON.

22. Cir uit programmable

Selon la valeur de d (0 ou 1), le ir uit suivant ralise deux fon tions direntes. On parle parfois de
 ir uit programmable. A l'aide des tables de vrit ou des fon tions logiques, dmontrez quelles sont
es deux fon tions.
a

d
ET

f
OU

OU

ET

NON

23. A heur

On onsidre un d odeur d'a hage permettant d'a her les hires de 0 3 sur un ensemble de
diodes le trolumines entes. Chaque diode orrespond un segment. Sept segments (sept diodes) a,
b, , d, e, f, g permettent d'a her un hire.
Les hires sont a hs en allumant ertains segments :
 a, b, , d, e, f pour 0,
 b, pour 1,
 a, b, g, e, d pour 2,
 a, b, g, , d pour 3.
Le d odeur d'a hage reoit en entre le hire en binaire (poids faible dans e0). Il met en sortie
des 1 dans les ls des segments allumer.
a
b

f
e

e1
e0

Dcodeur
daffichage

a
b
c
d
e
f
g

a) Donnez la table de vrit du d odeur d'a hage.


b) Donnez les sept quations logiques de a, b, , d, e, f, g.
) Simpliez les sept quations logiques.
d) Dessinez le ir uit du d odeur d'a hage partir des quations simplies.

24. Cir uit BT7454

Le ir uit B7454 a 4 entres e0 , e1 , e2 , e3 et une sortie s.


48

e0
e1
e2
e3

B7454

L'quation logique de e ir uit est la suivante :


s = e0 .e1 + e2 .e3

a) Donnez la table de vrit du ir uit.


b) Dessinez le s hma du ir uit partir de son quation logique.
) Soit la fon tion g six variables (a, b, c, d, e, f ) :
g=a
.
c.
e+a
.d.
e + b.
c.
e + b.d.
e + f.b

1) Simpliez l'quation g.
2) Construisez le s hma de g en utilisant le ir uit B7454.

25. Code de Gray

Le ode de Gray est un odage binaire des entiers naturels tel que l'on passe d'un entier au suivant en
ne modiant qu'un bit.
Exemple : ode de Gray sur 3 bits
entier
0
1
2
3
4
5
6
7

ode
000
001
011
010
110
111
101
100

Soit la table de vrit suivante ave gau he les entiers binaires et droite les odes de Gray orrespondants :
b1
0
0
0
0
1
1
1
1

b2
0
0
1
1
0
0
1
1

b3
0
1
0
1
0
1
0
1

g1
0
0
0
0
1
1
1
1

g2
0
0
1
1
1
1
0
0

g3
0
1
1
0
0
1
1
0

a) Donnez les quations logiques de g1, g2, g3.


.b).
b) Simpliez les quations logiques (rappel : le OU ex lusif a b = a.b + a
) Dessinez le ir uit qui traduit un entier binaire dans le ode de Gray orrespondant ( partir des
quations simplies).

26. In rmenteur 4 bits

On veut raliser un in rmenteur 4 bits. Ce ir uit, plus simple qu'un additionneur, ajoute 1 au
nombre binaire en entre (en as de dbordement le bit qui sort est oubli).
49

e4
e3
e2
e1

Inc 4

s4
s3
s2
s1

a) Donnez la table de vrit sous la forme :


e4
..

e3
..

e2
..

e1
..

s4
..

s3
..

s2
..

s1
..

b) Au vu de la table de vrit et sans faire au un al ul, dterminez l'quation logique simplie de


s1.
) Montrez ave des tables de vrit que :
s2 = e2 e1 (o reprsente le ou ex lusif)
s3 = e3 (e2.e1)
s4 = e4 (e3.e2.e1)
d) Dessinez le ir uit partir de es quations logiques.

27. Cir uit ave d odeur

a) On dispose d'un d odeur pour des odes sur 3 bits. Utilisez-le pour onstruire la valeur 1 si et
seulement si l'entre sur 3 bits reprsente un entier 5 et la valeur 0 dans le as ontraire.
b) Obtenez le mme rsultat ave un ir uit onstruit dire tement ave des portes ET, OU et NON.

28. Cir uit mystre (1)

Donnez la table de vrit de e ir uit (St+1 en fon tion de E0, E1 et St ). De quel ir uit vu en ours
e ir uit se rappro he-t-il le plus ? Quels autres noms peut on donner aux entres E0 et E1 ?
E0

S
E1

29. Cir uit mystre (2)

a) Donnez l'expression logique des valeurs la sortie de haque porte (numrotes de 1 17 sur le
dessin du ir uit).
b) Simpliez R quand vaut 0 et quand vaut 1.
) Si a, b et sont des donnes et F0 et F1 un ode, dites quelles oprations sont ee tues par e
ir uit. Pour F0=1 et F1=1 vous pouvez onstruire la table de vrit donnant S et R en fon tion de
a, b et .

50

51

4 Le  langage ma hine 
4.1

Dnitions

Le langage ma hine est onstitu des instru tions binaires dire tement interprtables par l'unit de
ommande d'un type de pro esseur donn. Il est don propre haque type de pro esseur, puisque
dire tement li aux ir uits qui le omposent. Chaque instru tion omporte en gnral un ode opration binaire et des adresses binaires de registres et/ou de mots mmoire.
On appelle langage d'assemblage une version  ode en lair du langage ma hine, o les odes
oprations sont rempla s par des mnmoniques et o les adresses peuvent tre rempla es par des
identi ateurs.
Exemple :
Langage
langage ma hine
langage d'assemblage

Code opration
00110011
ADD

Registre
0111
AL,

Adresse mot mmoire


0011111000000001100
VALEUR

Le programme de tradu tion qui onvertit le langage d'assemblage en langage ma hine s'appelle un
assembleur. Le langage d'assemblage n'est plus utilis que dans des ir onstan es parti ulires (pour
une e a it maximum par ontrle dire t de la ma hine) ou sur des pro esseurs trs lmentaires
pour lesquels il n'existe pas de tradu teurs de langages volus en langage ma hine. Nanmoins une
onnaissan e minimale des langages de bas niveau permet de mieux omprendre ertaines ara tristiques des langages volus. C'est pourquoi nous le prsentons dans e ours.
La majorit des langages volus ( omme C, C++, COBOL) sont traduits en langage d'assemblage
par un ompilateur. Chaque instru tion du langage volu donne une suite plus ou moins omplexe
(et plus ou moins optimise) d'instru tions en langage d'assemblage.
Programme en langage
volu
traduction par un compilateur
Programme en langage
dassemblage
traduction par un assembleur
Programme en langage
machine
excution par le matriel
Processeur

Ci dessous trois exemples de tradu tion d'une itration par un ompilateur sur des pro esseurs dirents (Intel pour PC, Motorola pour Ma , SPARC).

L'itration (C): pro esseur Intel :


s=0;
xorl %edx,%edx
i=1;
movl $1,%eax
do{
L5:
s=s+2;
addl $2,%edx
i=i+1;
in l %eax
} while(i>9);
mpl $9,%eax
jle L5

pro esseur Motorola :


lrl d1
moveq #1,d0
L5:
addql #2,d1
addql #1,d0
moveq #9,d2
mpl d0,d2
jge
L5$
52

pro esseur SPARC :


mov 0,%o1
mov 1,%o0
L5:
add %o0,1,%o0
mp %o0,9
ble L5
add %o1,2,%o2

On note que la stru ture reste en gros onstante mais que ertains dtails dirent (manire d'initialiser 0, nombre d'oprandes pour les additions, forme et sens de la omparaison et bran hement vers
le dbut de l'itration . . .). noter pour le SPARC la notion de  bran hement retard  : l'instru tion
qui suit le bran hement est toujours ex ute avant que le bran hement soit ralis !
Certains langages volus ne sont pas ompils mais interprts ( omme Basi , PHP, javas ript, . . .).
L'interprteur est un programme qui traduit en langage ma hine haque instru tion du programme en
langage volu et l'ex ute immdiatement. Une mme instru tion peut don tre traduite plusieurs
fois, e qui rend l'ex ution moins rapide.
Enn, ertains langages r ents ( omme Java, C#) sont ompils dans un langage intermdiaire indpendant de la ma hine (appel byte ode ), avant d'tre interprts par un programme propre haque
type de pro esseur (appel  ma hine virtuelle ).
Nous prsentons la programmation de bas niveau en langage d'assemblage sur une ma hine simule. Son langage s'inspire du langage des mi ropro esseurs Intel en le simpliant notablement.

4.2

Prsentation de la ma hine simule pour l'apprentissage du langage d'assemblage

La ma hine simule sms32v50 est distribue sous li en e GNU GPL (www.softwareforedu ation. om).
La mmoire entrale omporte 256 mots de un o tet. Les adresses vont de 0 255 et sont notes [00
[FF en hexad imal. Les ro hets distinguent les adresses des onstantes hexad imales.
Ex : 1F est la onstante 31 alors que [1F repre le mot d'adresse 31.
Les mots d'adresse C0 FF sont utiliss pour a her automatiquement des odes ASCII dans une
fentre de rsultat (les mots sont initialiss ave des valeurs ASCII 20 en hexad imal 'est dire des
espa es). On se limitera don aux adresses [00 [BF.
La ma hine ne omporte pas un a umulateur unique, mais 4 registres de un o tet utilisables indiremment et nots AL, BL, CL, et DL. Leurs ontenus sont a hs en binaire, en hexad imal et en
d imal par le simulateur.
On visualise galement le ompteur ordinal (Instru tion Pointer ou IP), le pointeur de pile (Sta k
Pointer ou SP) et le mot d'tat (Status Register ou SR) ave un ensemble de drapeaux ou ags : sign
(S) et zero (Z) pour les omparaisons, overow (O) pour les dbordements.
Le ompteur ordinal est initialis 0. Les mots peuvent ontenir des entiers entre 128 et +127 ou
des odes ASCII.

L'interfa e sous Windows omporte plusieurs boutons :


 Assemble pour traduire l'assembleur en ode ma hine,
 Step pour ex uter le programme en pas pas,
 Run pour ex uter le programme d'un oup,
 Slower pour ralentir l'ex ution,
 Faster pour l'a lrer,
 Stop pour l'arrter,
 Continue pour la reprendre,
 Cpu reset pour remettre le ompteur ordinal 0,
 Show Ram pour visualiser la mmoire entrale.
53

L'interfa e omporte aussi des  priphriques que l'on peut piloter : des feux rouges, un as enseur,
un moteur . . .).

4.3

Instru tions de base du langage de la ma hine simule

a) Instru tion de transfert (mmoire registre ou registre mmoire)


MOV destination, sour e
La sour e est re opie dans la destination (attention l'ordre d' riture ave la destination en premier !)
Les seules formes autorises ralisent des transferts de onstante vers registre, de mot mmoire vers
registre et de registre vers mot mmoire :
Assembleur
MOV AL, 1B
MOV BL, [C2
MOV [15, CL

Langage ma hine
D0 00 1B (3 mots)
D1 01 C2
D2 15 02

Expli ation
AL = 1B range la onstante hexad imale 1B dans AL
BL = [C2 opie le mot d'adresse C2 dans BL
[15 = CL opie CL dans le mot d'adresse 15

Les transferts de mmoire mmoire sont interdits ar il faudrait deux adresses mmoire pour une seule
instru tion ( f. paragraphe pr dent sur l'UAL.). Les transferts entre registres sont aussi interdits
sur ette ma hine simule ontrairement beau oup de ma hines relles. Il faut passer par un mot
mmoire intermdiaire ou par la pile.
La pile est une zone de mmoire o l'on empile et dpile des valeurs. tout instant le registre SP
pointe sur le sommet de la pile. Les instru tions PUSH et POP permettent d'empiler et de dpiler en
sommet de pile.
sommet de pile

Assembleur
PUSH BL
POP CL

Langage ma hine
E0 01
E1 02

Expli ation
ajoute le ontenu de BL en sommet de pile
retire le sommet de pile et le range dans CL

Le transfert du registre AL au registre BL peut don s' rire :

PUSH AL
POP BL

; empile la valeur de AL au sommet de la pile


; dpile ette valeur et la range dans BL

La pile a bien d'autres utilits : sauvegarder temporairement la valeur d'un registre pour utiliser e
registre pour autre hose, dans la gestion des sous-programmes ( f. paragraphe 4.9), et .

b) Instru tions de al ul

Il s'agit de l'addition, de la soustra tion, de la multipli ation, de la division entire, du reste de la


division entire ou modulo, de l'in rmentation de un, de la d rmentation de un. Elles utilisent des
registres et rangent leur rsultat dans le premier registre.
Assembleur
ADD AL, BL
SUB BL, CL
MUL CL, DL
DIV DL, AL
MOD AL, BL
INC DL
DEC AL

Langage ma hine
A0 00 01 (3 mots)
A1 01 02
A2 02 03
A3 03 00
A6 00 01
A4 03 (2 mots)
A5 00

Expli ation
AL = AL + BL
BL = BL CL
CL = CL DL
DL = DL/AL
AL = AL mod BL
DL = DL + 1
AL = AL 1

Dans les inq instru tions deux oprandes, l'oprande de droite peut aussi tre une onstante hexad imale ( odes ma hine Bn au lieu de An).
54

) Instru tions de omparaison


CMP destination,

sour e

Compare la sour e et la destination et met jour des bits parti uliers appels drapeaux (ou ags en
anglais). Plus pr isment, soustrait la sour e la destination et met 1 dans le drapeau Z (zero ) si le
rsultat est nul et 1 dans le drapeau S (signe ) si le rsultat est ngatif.
Assembleur
CMP AL, BL

Langage ma hine
DA 00 01 (3 mots)

CMP BL,13

DB 01 13

CMP CL, [20

DC 02 20

Expli ation
met Z 1 si AL = BL
met S 1 si AL < BL
met Z 1 si BL = 13
met S 1 si BL < 13
met Z 1 si CL = [20
met S 1 si CL < [20

d) Instru tions de bran hement in onditionnel


JMP

tiquette_de_destination

L'tiquette vers laquelle se fait le saut o upe une ligne du programme assembleur mais ne prend pas
de pla e en mmoire. Elle reprsente une ertaine adresse. Elle ne doit pas omporter de ara tres
a entus.
Assembleur
JMP HERE

Langage ma hine
C0 12

Expli ation
augmente IP de 12 (l'tiquette HERE est 12 mots aprs
l'instru tion ourante)

JMP fin

fin: (ne pas oublier les : )

e) Instru tions de bran hement onditionnel


JZ (ou JNZ ou JS ou JNS) tiquette_de_destination
Une instru tion de bran hement onditionnel suit en gnral une instru tion de omparaison (CMP)
et ralise le saut en fon tion de la valeur des drapeaux, 'est--dire en fon tion du rsultat de la
omparaison. Si le saut n'est pas possible le pro esseur passe l'instru tion suivante.
Il y a quatre bran hements onditionnels :
 JZ pour Jump if Zero qui ralise le saut si Z = 1,
 JNZ pour Jump if Not Zero qui ralise le saut si Z = 0,
 JS pour Jump if Sign qui ralise le saut si S = 1,
 JNS pour Jump if Not Sign qui ralise le saut si S = 0.
Assembleur
JZ A

Langage ma hine
C1 09

JNZ PLACE
JS R

C2 04
C3 E1

JNS START

C4 04

Expli ation
augmente IP de 9 si Z est 1 (l'tiquette
A est 9 mots aprs l'instru tion ourante)
augmente IP de 4 si Z est 0
diminue IP de 31 si S est 1 (l'tiquette R
est 31 mots avant l'instru tion ourante)
augmente IP de 4 si S est 0
55

En jouant sur l'ordre des registres on peut raliser toutes les omparaisons (>, <, , , =, 6=) omme
nous le dtaillerons au paragraphe 4.4.

f) Instru tions diverses


Assembleur
END
HALT
DB onstante

Langage ma hine
00
00
onstante hexad imale

Expli ation
n du programme (une seule sur la dernire ligne)
arrt de l'ex ution (ventuellement plusieurs)
dnit une donne (DeneByte )

g) Prsentation d'un programme

Nous prenons l'habitude de pla er les donnes en dbut de mmoire ave un JMP qui les saute pour
aller au dbut du programme ( ar le ompteur ordinal est initialis 0). En eet, si on pla e les donnes
aprs le programme on ne peut onnatre leurs adresses qu'aprs avoir rit tout le programme e qui
n'est gure pratique. Notez les ommentaires ommenant par un ; qui suivent ertaines instru tions.

JMP
DB
DB
DB
MOV
MOV
ADD
MOV
END

debut
5
2
0
AL, [2
BL, [3
AL, BL
[4, AL

;
;
;
;
;

ette instru tion o upe les mots 0 et 1


mot 2 (donne 1)
mot 3 (donne 2)
mot 4 (rsultat)
premire instru tion du programme

; rsultat dans AL
; les mots d'adresse 2 et 3 ont ts additionns
; et le rsultat rang dans le mot 4

Exer i es
1. rivez un programme qui multiplie une donne range dans le mot d'adresse 2 par 5 puis range le
rsultat dans le mot d'adresse 50.
Ave le programme pr dent testez un dbordement (overow ). Vous pouvez prendre 20 (en hexad imal) multipli par 5.
2. Que ontient AL la n de la suite d'instru tions suivante ?
MOV AL,
PUSH AL
MOV AL,
PUSH AL
POP BL
SUB BL,
POP AL
ADD AL,

4.4

10
20
5
BL

Le s hma onditionnel

C'est le s hma :

SI ondition ALORS
instru tions_du_ as_vrai
SINON
instru tions_du_ as_faux
FSI
56

o ondition s' rit : op1 oprateur op2, ave op1 et op2 omme oprandes et >, <, >=, <=, =,
! = omme oprateur.
En assembleur, il n'y a pas d'instru tion onditionnelle  SI ALORS SINON . Il faut la traduire
ave des bran hements onditionnels et in onditionnels. Le s hma de tradu tion standard est le suivant :

vrai:
fin:

MOV AL, op1 // ou un autre registre


MOV BL, op2 // ou un autre registre
CMP AL, BL ou BL, AL // selon les as
J?? vrai
// un des quatre bran hements possibles (JZ, JNZ, JS ou JNS)
instru tions_du_ as_faux
JMP fin
instru tions_du_ as_vrai
...

Le hoix du bran hement et de l'ordre des regsitres est d rit dans le tableau suivant :

Condition
op1 = op2
op1 != op2
op1 < op2
op1 >= op2
op1 > op2
op1 <= op2

Tradu tion
CMP AL, BL
CMP AL, BL
CMP AL, BL
CMP AL, BL
CMP BL, AL
CMP BL, AL

suivi
suivi
suivi
suivi
suivi
suivi

de
de
de
de
de
de

JZ...
JNZ...
JS...
JNS...
JS...
JNS...

Expli ation
op1-op2 = 0 <=> op1 = op2
op1-op2 != 0 <=> op1 != op2
op1-op2 < 0 <=> op1 < op2
op1-op2 >= 0 <=> op1 >= op2
op2-op1 < 0 <=> op1-op2 > 0 <=> op1 > op2
op2-op1 >= 0 <=> op1-op2 <= 0 <=> op1 <= op2

Les ompilateurs utilisent e s hma pour traduire les onditionnelles en langage d'assemblage.
Dans le as d'un s hma sans partie sinon :

SI ondition ALORS
instru tions_du_ as_vrai
FSI
le s hma pr dent est inutilement ompliqu ar instru tions_du_ as_faux est vide. Il est onseill
de prendre la ngation de la ondition et de sauter l'tiquette n si ette ngation est vraie (autrement
dit  si la ondition est fausse alors je ne fais rien ). Le s hma de tradu tion est le suivant :

fin:

MOV AL, op1 // ou un autre registre


MOV BL, op2 // ou un autre registre
CMP AL, BL ou BL, AL // selon les as
J?? fin
instru tions_du_ as_vrai
...

o le hoix de J ? ? et l'ordre des oprandes est donne par le tableau pr dent pour la ngation de
la ondition.

Exer i es
3. rivez un programme qui met dans le mot 4 la plus grande des valeurs des mots 2 et 3.
4. rivez un programme qui al ule la valeur absolue d'une donne et la range dans le mme mot.
57

4.5

Le s hma itratif

C'est le s hma :

POUR i DE 1 A limite FAIRE


instru tions__rpter
FPOUR
Il faut aussi le traduire ave des bran hements onditionnels et in onditionnels. Le s hma de tradu tion standard est le suivant :

re:

fin:

MOV registre1, 1
MOV registre2, limite

; registre ompteur

CMP registre2, registre1


JS fin
; limite- ompteur<0 <=> ompteur>limite
blo __rpter
INC registre1
JMP re

Exer i es
5.

rivez un programme qui fait la somme des n premiers entiers ; n est dans le mot d'adresse 2
et le rsultat est rang dans le mot d'adresse 3.

somme <- 0
pour i de 1 n faire
somme <- somme + i
fpour

6. rivez un programme qui al ule n! = n (n 1) (n 2) 2 1. n est dans le mot d'adresse 2 et


le rsultat est rang l'adresse 3.
fa t <- 1
si n > 1 alors
pour i de 2 n faire
fa t <- fa t x i
fpour
fsi
Attention : limite 5 ! = 120.

4.6

Par ours d'un ensemble de donnes ons utives  l'adressage indire t

Pour par ourir et traiter un ensemble de donnes ons utives en mmoire (un tableau de donnes),
il faut pouvoir dsigner su essivement tous les lments de et ensemble dans une itration. Pour e
faire, on met l'adresse de la premire donne dans un registre (ex : AL) et on utilise la notation [AL
qui signie  le ontenu du mot dont l'adresse est dans AL . Il sut d'in rmenter AL de 1 en 1
dans l'itration pour a der su essivement toutes les donnes de l'ensemble. On parle  d'adressage
indire t . C'est un des modes d'adressage lassique en langage d'assemblage :

- Adressage immdiat
- Adressage dire t

: 10
: [10

( onstante 10)
(mot mmoire d'adresse 10)
58

- Adressage indire t
- Adressage bas
- Adressage index

: [AL
(le registre AL ontient l'adresse voulue)
: [AL+4 ( ontenu de AL + 4 est l'adresse voulue)
Attention! n'existe pas dans la ma hine simule
: [AL+BL ( ontenu de AL + ontenu de BL)
Attention! n'existe pas dans la ma hine simule

Attention : dans la ma hine simule, l'adressage indire t n'est autoris que dans les instru tions MOV,
e qui est trs restri tif par rapports aux pro esseurs rels !
Langage ma hine
D3 03 00
D4 03 00

Assembleur
MOV DL, [AL
MOV [CL, AL

Expli ation
DL = [AL Copie le mot [AL dans DL
[CL = AL Copie AL dans le mot [CL

Exer i es
7. rivez un programme qui fait la somme de 10 mots rangs dans les mots 3 12 ; le rsultat
est rang l'adresse 2.
somme <- 0
pour i de 3 12 faire
somme <- somme + mot[i
fpour

(le ime mot)

8. rivez un programme qui her he le maximum des mots 2 11 de la mmoire et le range l'adresse
12.

max <- -128


(plus petite valeur sur 8 bits)
pour i de 2 11 faire
si mot[i > max alors
max <- mot[i
fsi
fpour

9. rivez un programme de tri d roissant des mots 2 11 de la mmoire selon l'algorithme suivant
( tri par permutations ) :
pour i de 2 10 faire
pour j de i+1 11 faire
si mot[i < mot[j alors
hanger mot[i et mot[j
fsi
fpour
fpour

4.7

Les entres/sorties

Les entres/sorties s'ee tuent via des ports. Les ports sont des adresses sp iales asso ies aux priphriques d'entre/sortie et repres par des numros. Un o tet peut tre lu ou rit dans es ports
gr e aux instru tions IN et OUT.
OUT
registre

port sortie

priphrique
de sortie

port entre

priphrique
dentre

IN

59

Assembleur
IN 00
OUT 01

Langage ma hine
F0 00
F1 01

Expli ation
entre depuis le port 00 vers AL
sortie depuis AL vers le port 01

Dans le simulateur le port de sortie 01 est onne t deux feux tri olores ; selon la valeur de l'o tet
transmis es deux feux s'allument d'une ertaine manire :

bits 7
6
5
4
3
2
1
0
rouge orange vert
rouge orange vert non utiliss
feu de gau he
feu de droite
Le port d'entre 00 est onne t au lavier. Le registre AL reoit le ode ASCII de la tou he du lavier
qui a t enfon e.
Cette forme d'entre/sortie sans ondition orrespond aux priphriques qui sont toujours disponibles,
omme les interrupteurs, les voyants lumineux . . .
Dans le as de priphriques plus omplexes il faut re ourir aux entres/sorties ave ondition : en eet,
il faut onnatre l'tat du priphrique avant d'envoyer ou de lire des informations (ex : rseau, disque,
. . .). Comme nous l'avons vu dans la partie sur le matriel, il existe deux appro hes prin ipales. Dans la
premire, le pro esseur teste rptitivement l'tat jusqu' e que le priphrique soit prt. Cette bou le
de s rutation o upe inutilement le pro esseur. La deuxime appro he utilise la notion d'interruption.
Une demande d'entre/sortie est mise. Ds que le priphrique est prt il envoie une interruption qui
est prise en ompte immdiatement par le pro esseur en interrompant le traitement en ours. En eet,
pendant l'attente, le pro esseur peut tre ae t par le systme d'exploitation un autre programme.

Exer i es
10. rivez un programme qui fait alterner indniment les deux feux :
feu gau he : rouge
puis feu gau he : rouge
puis feu gau he : vert
puis feu gau he : orange
et on re ommen e...

feu
feu
feu
feu

droite
droite
droite
droite

:
:
:
:

vert
orange
rouge
rouge

11. rivez un programme qui pilote le feu de gau he partir de la saisie au lavier des lettres r pour
rouge, v pour vert, o pour orange. L'autre feu reste teint. Pour toute autre saisie le feu reste teint.

4.8

Les manipulations de bits

a) Les instru tions de d alage et de rotation

Ces oprations d alent vers la gau he ou vers la droite les bits d'un registre. Elles sont utilises pour
d oder bit bit des donnes, ou simplement pour diviser ou multiplier rapidement par une puissan e
de 2. En eet, d aler AL de n bits vers la gau he revient le multiplier par 2n (sous rserve qu'il
reprsente un nombre naturel et qu'il n'y ait pas de dpassement de apa it). De mme, un d alage
vers la droite revient diviser par 2n .
Assembleur
SHL CL

Langage ma hine
9C 02

SHR DL

9D 03

ROL AL

9A 00

ROR BL

9B 01

Expli ation
D alage gau he : le bit de poids fort est perdu,
le bit de poids faible devient 0 (SHift Left ).
D alage droite : le bit de poids faible est perdu,
le bit de poids fort devient 0 (SHift Right ).
Rotation gau he : le bit de poids fort devient le
bit de poids faible (ROtate Left ).
Rotation droite : le bit de poids faible devient le
bit de poids fort (ROtate Right ).
60

SHL :
ROL :

b) Les instru tions logiques

Les instru tions logiques ee tuent des oprations logiques bit bit. On dispose de trois oprateurs
logiques : ET, OU et OU ex lusif. Il n'y a jamais propagation de retenue lors de es oprations ( haque
bit du rsultat est al ul indpendamment des autres).

0 0 1 1
OU 0 1 0 1
0 1 1 1

ET

0 0 1 1
0 1 0 1
0 0 0 1

OU EX

0 0 1 1
0 1 0 1
0 1 1 0

b1) L'instru tion OR :

OR

AL, BL

; AL = AL OU BL

OR est souvent utilis pour for er ertains bits 1 gr e un  masque ayant des 1 es positions.
Exemple :

MOV BL, F0 ; masque


BL: 11110000
MOV AL, 55
AL: 01010101
OR AL, BL
11110101
Les 4 premiers bits de AL sont for s 1, les 4 autres sont in hangs.
b2) L'instru tion AND :

AND

AL, BL

; AL = AL ET BL

AND est souvent utilis pour for er ertains bits 0 gr e un  masque ayant des 0 es positions.
Exemple :

MOV BL, 0F ; masque


BL: 00001111
MOV AL, 55
AL: 01010101
AND AL, BL
00000101
Les 4 premiers bits de AL sont for s 0, les 4 autres sont in hangs.
b3) L'instru tion XOR :

XOR AL, BL

; AL = AL OU EXCLUSIF BL

XOR est souvent utilis pour inverser ertains bits gr e un  masque ayant des 1 es positions.
Exemple :

MOV BL, F0 ; masque


BL: 11110000
MOV AL, 55
AL: 01010101
XOR AL, BL
10100101
Les 4 premiers bits de AL sont inverss, les 4 autres sont in hangs.
Remarque : on n'a pas besoin de re ourir l'assembleur pour manipuler des bits ; es oprateurs
existent dans beau oup de langages volus, omme Java. En Java SHL s' rit >>, SHR s' rit <<, OR
s' rit | , AND s' rit & et XOR s' rit . Exemple :

short i = 13;
i = i << 2;

// i a la valeur
// i prend la valeur
61

0000000000001101
0000000000110100

Exer i es
12. Comment mettre le registre AL 0 ave un XOR ?
13. Comment tester si AL est pair sans al uler le reste de la division par 2 ?
14. Le mot mmoire 2 ontient un entier sur sept bits. Le bit de poids faible est nul. On veut mettre
un 1 dans le bit de poids faible si le nombre de bits 1 parmi les sept premiers est impair et laisser
le 0 sinon (bit de parit).
4.9

Les sous-programmes

Un sous-programme est une suite d'instru tions ee tuant un ertain traitement et qui sont regroupes
par ommodit : d oupage d'un gros programme en  mor eaux , dnition d'un  mor eau qui est
utilis plusieurs fois.
Un sous-programme est repr par l'adresse de sa premire instru tion. L'ex ution du sous programme
est d len he par un programme appelant. Un sous-programme peut lui mme en appeler un autre
et ainsi de suite.
L'appel du sous-programme est ee tu par l'instru tion CALL :

CALL adresse
L'ex ution se poursuit l'adresse indique dans le CALL. La n du sous-programme est marque par
l'instru tion :

RET
Le pro esseur revient l'instru tion pla e immdiatement aprs le CALL.
sous programme :

appelant :

(adresse)

RET

CALL adresse

L'adresse de retour, utilise par RET, est sauvegarde sur la pile par l'instru tion CALL. Lorsque le
pro esseur ex ute l'instru tion RET, il dpile l'adresse de la pile et la range dans le ompteur ordinal.
Ce m anisme fon tionne mme dans le as des appels imbriqus (un CALL dans un sous-programme
vers un autre sous-programme) et dans le as des appels r ursifs (un sous-programme qui s'appelle
lui mme un ertain nombre de fois).
Assembleur
CALL 30
RET

Langage ma hine
CA 30
CB

Expli ation
sauvegarde CO sur la pile et saute 30.
prend CO sur la pile et saute ette adresse.

Le plus souvent, le sous-programme ee tue un traitement sur des donnes (paramtres) qui sont
fournis par le programme appelant et produit un rsultat qui est retourn e programme.
Plusieurs stratgies peuvent tre employes pour passer les paramtres :

a) passage par les registres

Les valeurs des paramtres et du rsultat sont ontenues dans des registres bien dnis. C'est une
mthode simple qui ne onvient que si le nombre de paramtres est faible, ar il y a peu de registres.
Exemple : le sous-programme l'adresse hexad imale 30 al ule le maximum de deux entiers naturels.
On onvient que les entiers sont passs par les registres AL et BL, et que le rsultat est pla dans le
registre AL. L'appel s' rit :
62

MOV AL, ... ; donne1


MOV BL, ... ; donne2
CALL 30
....
; rsultat disponible dans AL
Le sous-programme s' rit :

ORG 30

; dire tive qui indique que le ode qui suit est situ
; l'adresse 30. Cette dire tive ne prend pas de pla e
; en mmoire

CMP AL, BL
JNS saut
; si AL >= BL (AL-BL >= 0)
PUSH BL
; sinon hange de AL et BL
POP AL ; en utilisant la pile de telle sorte que le max soit dans AL
saut :
RET

b) passage par la pile

Les valeurs des paramtres sont empiles. Il peut y en avoir un nombre quel onque. Le sous-programme
r upre les valeurs dans la pile.
Exemple : le sous-programme l'adresse 40 utilise la pile pour passer les paramtres et reoit le rsultat
dans la pile. L'appel s' rit :

PUSH
PUSH
CALL
POP

AX
BX
40
AX

; donne1 pralablement range dans le registre AX


; donne2 pralablement range dans le registre BX
; r upration du rsultat par exemple dans AX

Aprs le CALL la pile ontient :


adresse de retour
donne2
donne1

Le sous-programme peut s' rire :

ORG 40
POP CL
; 'est l'adresse de retour empile par le CALL
POP BL
; deuxime paramtre
POP AL
; premier paramtre
CMP BL, AL
JNS saut
; si AL >= BL
PUSH BL ; sinon hange de AL et BL
POP AL
; en utilisant la pile de telle sorte que le max soit dans AL
saut :
PUSH AL
; rsultat dans la pile
PUSH CL
; adresse de retour dans la pile
RET
; dpile l'adresse de retour
adresse de retour
rsultat

Le programme apparat plus omplexe. Mais il faut noter que dans les langages d'assemblage rels on
peut a der aux valeurs de la pile sans dpiler, e qui simplie le dbut et la n du sous-programme.
Ce point sera illustr au paragraphe suivant.
63

noter que les sous-programmes sauvegardent galement dans la pile le ontexte du programme appelant (ses registres, ses drapeaux, et .) avant de ommen er leur ex ution et restituent e ontexte
avant de retourner. De la sorte, le programme appelant n'est pas perturb par les traitements ralises
dans le sous-programme. Un registre retrouve au retour du sous-programme la valeur qu'il avait avant
l'appel mme s'il a t utilis par le sous-programme pour ses al uls propres.
Enn, la pile sert galement a ueillir les variables lo ales aux sous-programmes ar leur dure
de vie est la mme que elle du sous-programme.
Dans le langage C, la mmoire est gre ave d'un t la pile (ave pour haque appel de sousprogramme ses variables lo ales, ses paramtres, son adresse de retour et le ontexte sauvegard) et
de l'autre t le ode et le tas qui ontient les donnes statiques dont la pla e est rserve la ompilation et les donnes dynamiques dont la pla e est alloue l'ex ution. C'est le programmeur qui
doit grer expli itement les donnes dynamiques (allo ation par mallo et libration par free ).
Pile

Donnes dynamiques
Donnes statiques
Instructions

En Java, un programme peut omporter plusieurs threads qui s'ex utent en parallle, ave ha un
son ompteur ordinal et ses registres. La mmoire est organise ave une pile par thread et un tas
ommun tous les threads. Dans la pile sont rangs les paramtres des appels de mthodes, les valeurs
retournes, leurs ontextes et leurs variables lo ales (valeurs pour les types de base et rfren es pour
les objets). Dans le tas sont rangs tous les objets rs dynamiquement par new. Le ramasse-miettes
(garbage olle tor ) libre priodiquement l'espa e o up dans le tas par les objets qui ne sont plus
rfren s. le programmeur n'a pas s'en sou ier.

4.10

Examen du ode gnr par un ompilateur

Nous examinons pour terminer quelques exemples de tradu tion de programmes C en assembleur Intel
16 bits. Il s'agit d'une ar hite ture an ienne mais dont la ma hine simule utilise pr demment s'est
inspire. Le ompilateur utilis est le ompilateur C/C++ libre Open Wat om qui fon tionne sous
Windows (www.openwat om.org) et peut ompiler vers toutes les ar hite tures Intel 16 bits et 32 bits.
Le premier exemple illustre le sto kage des variables dans la pile et la tradu tion d'une onditionnelle.
Le ode C est le suivant :

int main(void) {
int x = 11;
int res;
har = 'A';
if (x < 0)
res = -1;
else
res = 1;
}
La tradu tion assembleur produite par le ompilateur pour une ar hite ture mots de 16 bits est la
suivante (le ode C est rappel en dbut de ligne) :

mov
sub

bp,sp
sp,0x0006

(rserve 3 mots dans la pile)


64

int x = 11;

L$1:
mov

int res;
har = 'A';
if (x < 0)

res = -1;
else
res = 1;

word ptr -0x6[bp,0x000b

(met 11 dans x dans la pile)

mov

byte ptr -0x2[bp,0x41

(met 'A' dans dans la pile)

mp
jge

word ptr -0x6[bp,0x0000


L$2

( ompare x et 0)
(si >= saute en L$2)

mov

word ptr -0x4[bp,0xffff

(met -1 dans res dans la pile)

jmp

L$3

(saute la fin)

word ptr -0x4[bp,0x0001

(met 1 dans res dans la pile)


(fin)

L$2:
mov
L$3:

La tradu tion utilise deux registres de un mot (16 bits) : SP (Sta k Pointer ) qui pointe vers le sommet
de la pile et BP (Base Pointer ) qui permet de faire de l'adressage bas, 'est--dire qui ajoute ou
retire une ertaine valeur entire au ontenu du registre.
La premire instru tion opie SP dans BP.
La se onde instru tion soustrait 6 en hexa (6 en d imal) SP. Cela revient rserver trois mots dans
la pile omme le montre la gure suivante, an de sto ker les variables du programme.
SP

BP-6

3 mots
rservs

BP-4
BP-2
SP, BP

adresses
croissantes

tat initial de la pile


(mots de 2 octets)

BP

tat suivant de la pile

L'instru tion suivante range b en hexad imal (soit 11 en d imal) dans un mot (word ptr ) l'adresse
ontenu de BP moins 6 en hexad imal (not -0x6[bp), qui orrespond l'empla ement de la variable
x.
L'instru tion suivante range 41 en hexad imal (soit le ode ASCII de A) dans un o tet (byte ptr )
l'adresse BP-2, qui orrespond l'empla ement de la variable c.
Le mot l'adresse BP-4 est rserv par le ompilateur la variable res.
x

SP

res
41

BP

adresses
croissantes

tat suivant
de la pile

La tradu tion de la onditionnelle reprend le s hma vu en ours. Les tiquettes sont notes L$2 et
L$3. La omparaison (CMP) ompare x (en BP-6) et 0. Si x est suprieur ou gal 0 (jge ou jump
65

if greater or equal ) le programme range 1 dans res (en BP-4) et sort de la onditionnelle. Sinon le
programme range ffff (soit 1 en omplment 2) dans res.
Le deuxime exemple illustre un appel de sous-programme. Le ode C est le suivant :

int ma_fon tion(int x, int y) {


return x+y;
}
int main(void) {
int a = 11;
int b = 22;
int res;
res = ma_fon tion(a,b);
}
La tradu tion assembleur produite par le ompilateur est la suivante :

main
int a = 11;

mov
sub

bp,sp
sp,0x0008

(rserve 4 mots dans la pile)

L$3:
mov

word ptr -0x6[bp,0x000b (met 11 dans a dans la pile)

mov

word ptr -0x4[bp,0x0016 (met 22 dans b dans la pile)

int b = 22;

int res;
res = ma_fon tion(a,b);
mov
mov
all
mov

dx,word ptr -0x4[bp


ax,word ptr -0x6[bp
ma_fon tion_
word ptr -0x2[bp,ax

(met b dans la pile dans dx)


(met a dans la pile dans ax)
(appel de la fon tion)
(rsultat dans ax rang dans
res dans la pile)
------------------------------------------------------------------------------int ma_fon tion(int x, int y) {
ma_fon tion_:
push
bx
push
x
push
si
push
di
push
bp
mov
bp,sp
sub
sp,0x0006
L$1:
mov
word ptr -0x6[bp,ax
mov
word ptr -0x4[bp,dx
return x+y;

mov
add

ax,word ptr -0x6[bp


ax,word ptr -0x4[bp
66

(sauvegarde tous les registres


sauf ax et dx qui ontiennent
a et b)
(rserve 3 mots dans la pile)
(met ax, ad a, dans la pile)
(met bx, ad b, dans la pile)
(met a dans ax)
(met a+b dans ax)

mov

word ptr -0x2[bp,ax

(met a+b dans la pile)

mov
L$2:
mov
pop
pop
pop
pop
pop
ret

ax,word ptr -0x2[bp

(met a+b dans ax)

sp,bp
bp
di
si
x
bx

(restaure tous les registres)

Le ompilateur a hoisi de passer les deux arguments dans les registres ax et dx et de r uprer le
rsultat dans ax. Les inq autres registres ( x, dx, si, di, bp) sont sauvegards (push) sur la pile en
dbut de sous-programme.
En dbut du programme prin ipal (main), quatre mots sont rservs sur la pile pour a, b, res et
l'adresse de retour. Les arguments sont rangs dans ax et dx avant l'appel du sous-programme ( all)
et le rsultat est rang de ax dans res au retour.
En dbut de sous-programme, aprs sauvegarde des registres, trois mots sont rservs sur la pile pour
les deux arguments et le rsultat. Puis la somme est ee tue : le premier argument est mis dans ax
(alors qu'il y est dj !) ; le se ond argument est ajout ax ; la somme est remise dans la pile.
En n de sous-programme le rsultat est retourn dans ax (il y est pla alors qu'il y est dj !) et
les registres sont restaurs depuis la pile (pop) an d'viter les eets de bord indsirables (le sousprogramme doit laisser les registres dans l'tat o il les a trouvs).
Le ode est gnr par le ompilateur en appliquant des s hmas de tradu tion prdnis. Il n'est
don pas optimal. On trouve, omme nous l'avons not, plusieurs transferts inutiles. Les ompilateurs
peuvent supprimer es instru tions inutiles en ralisant une analyse du ode gnr dans une se onde
passe.
Les volutions de la pile sont rsumes dans la gure suivante :

67

BP-8
BP-6

ad. retour
b

BP-4

16

SP

BP-2
SP, BP

BP

adresses
croissantes tat initial de la pile au
dbut du main

rservation des mots


pour a, b, res et ad. retour

BP-6

BP-4

16

SP

16
21
bp
di

BP-2

bp
di
si
cx

b
16

bx

ad. retour

ad. retour

b
16

res

a
b

b
16

res

fin du calcul
(rsultat dans la pile
et ax)

rservation des mots


pour x, y et le rsultat
SP

ad. retour
b
16

si
cx

cx
bx
a
b

sauvegarde des
registres

BP

bp
di
si

BP, SP

bx
ad. retour

4 mots
rservs

b
res

SP

b
16

a
b

21

res

Avant retour, aprs


restauration des registres

res
BP

BP

fin du main aprs retour


rangement du rsultat dans res

Exer i e
15. rivez un sous-programme

situ l'adresse 20 qui lit un texte au lavier termin par la tou he


entre ( ode hexad imal 0D) et range e texte l'adresse mmoire reue dans la pile.
rivez le programme appelant qui appelle e sous-programme ave l'adresse C0 en paramtre dans
la pile ( ette adresse entrane l'a hage du texte dans une fentre par le simulateur).

68

Exer i es r apitulatifs (tirs des DS des annes pr dentes)


16. Oprations sur des ensembles de donnes

a) rivez un programme qui enlve 1 tous les nombres ontenus dans les mots d'adresses 2 11.
b) rivez un programme qui enlve 1 seulement aux mots mmoire qui ontiennent un nombre impair.
Utilisez l'instru tion MOD qui donne le reste de la division entire pour tester la parit. Exemple :

avant
mot 2: 12
mot 3: 13
mot 4: 19
mot 5: 4

aprs
mot 2: 12
mot 3: 12
mot 4: 18
mot 5: 4

17. Cal ul itratif d'une puissan e

La rptition tant que se traduit de la manire suivante :

tant que op1 > op2 rpter


instru tions
fin tant que

re:
CMP op2, op1
JNS fin
instru tions
JMP re
fin:
...

; op2-op1 >= 0

rivez le programme qui al ule 25 suivant l'algorithme :

e <- 1
n <- 5
x <- 2
tant que
e <- e
n <- n
fin tant

n > 0 rpter
* x
- 1
que

18. La suite de Syra use

Elle est dnie par :


u1 = a, o a est un entier quel onque
...
un+1 = un /2, si un est pair
un+1 = (3 un +1)/2, si un est impair
Cette suite a la parti ularit de toujours atteindre 1 au bout d'un ertain temps (mais ela n'a jamais
pu tre prouv).
Exemple :
u1 = 7
u2 = (3 7 + 1) / 2 = 11
u3 = (3 11 + 1) / 2 = 17
u4 = (3 17 + 1) / 2 = 26
u5 = 26 / 2 = 13
u6 = (3 13 + 1) / 2 = 20
u7 = 20 / 2 = 10
u8 = 10 / 2 = 5
u9 = (3 5 + 1) / 2 = 8
u10 = 8 / 2 = 4
69

u11 = 4 / 2 = 2
u12 = 2 / 2 = 1

rivez un programme qui ompte le nombre d'lments al uler pour atteindre 1 (12 dans l'exemple).
La donne initiale (a) est dans le mot d'adresse 2 et le rsultat est rang dans le mot d'adresse 3.
L'algorithme est le suivant :

nb <- 1
u <- a
tant que u != 1 rpter
si u est pair alors
u <- u / 2
sinon
u <- (3 * u + 1) / 2
finsi
nb <- nb + 1
fin tant que

19. Passage en o tal

On a 24 hires binaires dans les mots d'adresses 2, 3 et 4. rivez le programme qui al ule les hires
o taux orrespondant aux 6 premiers hires binaires de es 3 mots dans les mots 5 10.
Exemple :

Mots
2
Valeurs (hexa) 34
Binaire
00110100

3
17
00010111
donnes

4
84
10000100

5
1

6
5

7
0

8
5

9
4

10
1

rsultats (tran hes de 3 bits)

L'algorithme est le suivant :

k = 5
pour i de 2 4 rpter
d aler mot[i de 5 bits droite
(on pourrait rire un sous-programme de d alage droite de n bits)
ranger rsultat dans mot[k
k++
for er les 3ers bits de mot[i 0
d aler le rsultat de 2 bits droite
ranger le rsultat dans mot[k
k++
fin pour

20. Re her hes

a) rivez un programme de re her he d'une valeur dans un tableau de 10 entiers par la mthode
nave orrespondant l'algorithme i-dessous.
La variable trouv est range dans le mot 2. Elle vaut 1 si le mot est trouv et 0 sinon. La valeur
her he est range dans le mot 3. Le tableau de 10 entiers est rang dans les mots 4 13 (en d imal).

trouv <- 0
pour i de 4 13 faire
si (mot[i = val- her he) alors
trouv <- 1 ; terminer (arrt ou sortie de la bou le)
fsi
finpour
70

b) Reprenez le mme problme en utilisant l'algorithme de re her he di hotomique :

trouv <- 0
bas <- 4
haut <- 13
tantque bas <= haut faire
milieu <- (haut+bas)/2
si (mot[milieu = val- her he) alors
trouv <- 1
terminer
sinon
si (mot[milieu < val- her he) alors
bas <- milieu + 1
sinon haut <- milieu - 1
fsi
fsi
fintantque

21. Entres et sorties

E rivez un programme qui lit des ara tres au lavier jusqu' la frappe de la tou he entre. Les
lettres minus ules sont transformes en majus ules. Les autres ara tres ne sont pas modis. Tous
les ara tres modis ou non sont rangs dans la zone de mmoire d'adresses C0 FF ( ette zone est
automatiquement a he dans une fentre par la ma hine simule).
Rappel :
 l'instru tion IN 00 attend l'appui d'une tou he et range dans le registre AL le ode ASCII du
ara tre saisi,
 la table des odes ASCII est donne en annexe ; la tou he entre orrespond au ode ASCII
d imal 13.

22. D'autres ma hines

On onsidre les trois ma hines suivantes, dans lesquelles les mots mmoire sont reprs par des
identi ateurs (ex : A, B, X, . . .).
1. M0 est une ma hine pile : elle peut ranger un mot mmoire au sommet de la pile (PUSH X),
ranger le sommet de la pile en mmoire et le retirer de la pile (POP X). L'opration ADD enlve
2 mots de la pile, fait l'addition et met le rsultat au sommet de la pile.
2. M1 est une ma hine ave un a umulateur : elle peut transfrer un mot mmoire dans l'a umulateur (LOAD X) et sauvegarder l'a umulateur dans un mot mmoire (STORE X). Elle
peut additionner un mot mmoire ave le ontenu de l'a umulateur et ranger le rsultat dans
l'a umulateur (ADD X).
3. M2 est une ma hine ave 8 registres (Ri pour i de 1 8) : elle peut transfrer un mot mmoire
vers un registre par LOAD Ri, X et transfrer un registre vers un mot mmoire par STORE X,
Ri. Les oprations arithmtiques se font uniquement ave des registres : ADD Ri, Rj, Rk o Ri
est la destination.
a) Soient 3 mots mmoire A, B, C. rivez pour les trois ma hines, le ode qui ralise A = B + C.
b) De mme, rivez pour les trois ma hines, le ode orrespondant la suite d'instru tions :

A = B + C
B = A + C
Comparez es odes en nombre d'instru tions et en nombre d'a s mmoire, 'est--dire de le tures
ou ritures en mmoire. Essayez de minimiser e nombre d'a s mmoire en rivant les odes. Les
a s aux registres et la pile ne sont pas des a s mmoire.
71

5 Annexe A : table des puissan es de 2


n
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

2n
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576

2n
1
0,5
0,25
0,125
0,0625
0,03125
0,015625
0,0078125
0,00390625
0,001953125
0,0009765625
0,00048828125
0,000244140625
0,0001220703125
0,00006103515625
0,000030517578125
0,0000152587890625
0,00000762939453125
0,000003814697265625
0,0000019073486328125
0,00000095367431640625

72

6 Annexe B1 : ode ASCII


Base 10
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

Base 16
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30

Cara tre
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0

Signi ation
Null ( ara tre nul)
Start of Header (dbut d'entte)
Start of Text (dbut de texte)
End of Text (n du texte)
End of Transmission (n de transmission)
Enquiry (demande)
A knowledge (a us de r eption)
Bell ( ara tre d'appel)
Ba kspa e (espa ement arrire)
Horizontal Tab (tabulation horizontale)
Line Feed (saut de ligne)
Verti al Tab (tabulation verti ale)
Form Feed (saut de page)
Carriage Return (retour hariot)
Shift Out (n d'extension)
Shift In (dmarrage d'extension)
Data Link Es ape happement de liaison de donnes)
Devi e Control 1 ( ontrle de priphrique 1)

Devi e Control 2
Devi e Control 3
Devi e Control 4
Negative A knowledge (a us de r eption ngatif)
Syn hronous Idle (ina tivit)
End of Transmission Blo k (n du blo de transmission)
Can el (annulation)
End of Medium (n de support)
Substitute (substitution)
Es ape ( happement)
File Separator (sparateur de  hier)
Group Separator (sparateur de groupe)
Re ord Separator (sparateur d'enregistrement)
Unit Separator (sparateur d'unit)
Spa e (espa e)
Point d'ex lamation
Guillemet droit
Croisillon ou Dise
Dollar (symbole)
Pour ent
Esperluette ou  et ommer ial 
Apostrophe droite
Parenthse ouvrante
Parenthse fermante
Astrisque
Plus
Virgule
Moins
Point
Barre oblique (slash )
Chire 0
73

Base 10
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

Base 16
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64

Cara tre
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\


_
`
a
b

d

Signi ation

Deux-points
Point-virgule
Infrieur
gal
Suprieur
Point d'interrogation
A ommer ial (arrobase)
Lettre A majus ule

Cro het ouvrant


Barre oblique inverse (ba kslash )
Cro het fermant
A ent ir onexe
Tiret bas ou soulign (Unders ore )
Apostrophe gau he
Lettre a minus ule

74

Base 10
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

Base 16
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F

Cara tre
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

Signi ation

A olade ouvrante
Barre verti ale
A olade fermante
Tilde
Delete (ea ement)

75

7 Annexe B2 : ode ISO-8859-1

ISO-8859-1 (codes hxa)


5
6
7
8
9
ENQ ACK BEL BS HT
NAK SYN ETB CAN EM
% & '
(
)
5
6
7
8
9
E
F
G H I
U
V W X Y
e
f
g
h
i
u
v
w x
y
NEL SSA ESA HTS HTJ
MW SPA EPA SOS SGCI

-> 0
1
2
3
4
0 NUL SOH STX ETX EOT
1 DLE DC1 DC2 DC3 DC4
2 SP
!
"
#
$
3 0
1
2
3
4
4 @
A
B
C
D
5 P
Q
R
S
T
6 `
a
b
c
d
7 p
q
r
s
t
8 PAD HOP BPH NBH IND
9 DCS PU1 PU2 STS CCH
A NBSP

E
F

A B C
LF VT FF
SUB ESC FS
*
+
,
:
;
<
J
K L
Z [
\
j
k
l
z
{
|
VTS PLD PLU
SCI CSI ST

D E F
CR SO SI
GS RS US
.
/
=
> ?
M N O
]
^ _
m n o
}
~ DEL
RI SS2 SS3
OSC PM APC

76

8 Annexe C : les tableaux de Karnaugh


La mthode de simpli ation de Karnaugh repose sur l'identit :
= A (B + B)
=A
(A B) + (A B)
Elle est base sur l'inspe tion visuelle de tableaux disposs de faon telle que les ases adja entes en
ligne et en olonne ne dirent que par l'tat d'une variable et une seule, e qui permet d'exploiter
l'identit i-dessus pour simplier la fon tion.
Si une fon tion dpend de n variables il y a 2n valeurs possibles dans la table de vrit. Cha une de
es valeurs est reprsente par une ase dans un tableau. Les gures suivantes donnent la stru ture des
tableaux de Karnaugh pour 2, 3 et 4 variables (on peut gnraliser la mthode 5 et 6 variables). Les
lignes et les olonnes sont dnies de telle sorte que d'une ase sa voisine une seule variable hange
de valeur.
xy
zt

00

01

11

10

00
x
y

xy
z

00

01

11

10

01

11

10
Tableau 3 variables

Tableau 2 variables

Tableau 4 variables

Il faut omprendre haque ligne et haque olonne omme une stru ture y lique ontinue : haque
ase a toujours quatre voisins qu'il faut ventuellement her her l'autre extrmit de la ligne ou de
la olonne. De manire image, on peut dire que l'on enroule la table en rappro hant le bas et le haut
du tableau ou bien son bord droit et son bord gau he.
Les gures suivantes illustrent ette ide, les roix y matrialisent les voisins des ases olores qui
orrespondent respe tivement aux termes x y z t, x y z t, x y z t :
xy
zt

00

01

11

10

xy
zt

00

01

11

10

xy
zt

00

00

00

01

01

01

11

11

11

10

10

10

00

01

11

10

Le passage de la table de vrit au tableau de Karnaugh onsiste remplir haque ase ave la valeur
orrespondante de la fon tion.
La mthode de simpli ation de Karnaugh onsiste rassembler les ases adja entes ontenant des
1 par groupes de 2, 4 ou 8 termes. Dans un groupement de deux termes on limine la variable qui
hange de valeur et on onserve le produit des variables qui ne hangent pas. Dans un groupement de
quatre on limine les deux variables qui hangent de valeurs. Dans un groupement de huit on limine
trois variables, et .
On her he avoir le minimum de groupements, haque groupement rassemblant le maximum de
termes. Une mme ase peut intervenir dans plusieurs groupements ar A + A = A. Pour les ases
isoles on ne peut liminer au une variable. L'expression logique nale est la runion des groupements.

77

Exemple 1 : soit la fon tion F dnie par la table de vrit suivante.


x
0
0
0
0
1
1
1
1

y
0
0
1
1
0
0
1
1

t
0
1
0
1
0
1
0
1

F
0
0
0
1
0
1
1
1

On obtient le tableau :
t

xy 00

01

11

10
xy

0
1

1
xt

yt

La fon tion simplie s' rit : F = x y + x t + y t.


Exemple 2 : soit la fon tion F dnie par la table de vrit suivante.
x
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

y
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

z
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

01

11

t
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

F
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0

On obtient le tableau :
zt
00

xy 00

10
1

xy
1

01

11
10

La fon tion simplie s' rit : F = x y + y t + y z t.


78

yzt
yt

9 Annexe D : le langage d'assemblage de la ma hine simule


9.1

Instru tions de transfert

Les ags ne sont pas modis.


Assembleur
MOV AL, 1B
MOV BL, [C2
MOV [15, CL
MOV DL, [AL
MOV [CL, AL

9.2

Langage ma hine
D0 00 1B
D1 01 C2
D2 15 02
D3 03 00
D4 03 00

Expli ation
AL = 1B range 1B (hexa) dans AL
BL = [C2 opie le mot d'adresse C2 dans BL
[15 = CL opie CL dans le mot d'adresse 15
DL = [AL opie le mot [AL dans DL
[CL = AL opie AL dans le mot [CL

Instru tions de al ul arithmtique et logique sur des registres

Les ags sont modis.

9.3

Assembleur
ADD AL, BL
SUB BL, CL
MUL CL, DL
DIV DL, AL
MOD AL, BL
INC DL
DEC AL
AND AL, BL
OR CL, BL
XOR AL,BL
NOT BL
ROL AL

Langage ma hine
A0 00 01
A1 01 02
A2 02 03
A3 03 00
A6 00 01
A4 03
A5 00
AA 00 01
AB 02 01
AC 00 01
AD 01
9A 00

ROR BL

9B 01

SHL CL

9C 02

SHR DL

9D 03

Expli ation
AL = AL + BL
BL = BL CL
CL = CL DL
DL = DL / AL (division entire)
AL = AL mod BL (reste de la division entire)
DL = DL + 1
AL = AL 1
AL = AL et BL
CL = CL ou BL
AL = AL ou ex lusif BL
BL = non BL
Rotation gau he : le bit de poids fort
devient le bit de poids faible
Rotation droite : le bit de poids faible
devient le bit de poids fort.
D alage gau he : le bit de poids fort
est perdu, le bit de poids faible devient 0.
D alage droite : le bit de poids faible
est perdu, le bit de poids fort devient 0.

Cal uls ave une onstante hexad imale (adressage immdiat)

Les ags sont modis.


Assembleur
ADD AL, 12
SUB BL, 15
MUL CL, 03
DIV DL, 02
MOD AL,10
AND AL, 0F
OR CL, F0
XOR AL, AA

9.4

Langage ma hine
B0 00 12
B1 01 15
B2 02 03
B3 03 02
B6 00 10
BA 00 0F
BB 02 F0
BC 00 AA

Expli ation
AL = AL + 12
BL = BL 15
CL = CL 3
DL = DL / 2 (division entire)
AL = AL mod 10 (reste de la division entire)
AL = AL et 0F
CL = CL ou F0
AL = AL ou ex lusif AA

Instru tions de omparaison

Les ags sont modis.


79

9.5

Assembleur
CMP AL, BL

Langage ma hine
DA 00 01

CMP BL,13

DB 01 13

CMP CL, [20

DC 02 20

Expli ation
met le ag Z 1 si AL = BL
met le ag S 1 si AL < BL
met le ag Z 1 si BL = 13
met le ag S 1 si BL < 13
met le ag Z 1 si CL = [20
met le ag S 1 si CL < [20

Instru tions de bran hement

Les ags ne sont pas modis.


Le ompteur ordinal (IP) est modi. Les plus grands sauts possibles sont de +127 mots et 128
mots.
Langage ma hine Expli ation
Assembleur
JMP HERE C0 12
augmente IP de 12 (l'tiquette HERE est 12
mots aprs l'instru tion ourante)
JZ A
C1 09
augmente IP de 9 si le ag Z est 1
(l'tiquette A est 9 mots aprs l'instru tion ourante)
augmente IP de 4 si le ag Z est 0
JNZ PLACE C2 04
JS R
C3 E1
diminue IP de 31 si le ag S est 1
(l'tiquette R est 31 mots avant l'instru tion ourante)
JNS START C4 04
augmente IP de 4 si le ag S est 0

9.6

Appel de sous-programmes

Les ags ne sont pas modis.


Assembleur
CALL 30
RET

9.7

Langage ma hine
CA 30
CB

Expli ation
sauvegarde IP au sommet de la pile et saute 30.
prend IP au sommet de la pile et saute ette adresse

Manipulation de la pile

Les ags ne sont pas modis.


Assembleur
PUSH BL
POP CL

9.8

Langage ma hine
E0 01
E1 02

Expli ation
BL est sauvegard au sommet de la pile
CL est restaur depuis le sommet de la pile

Instru tions d'entre/sortie

Les ags ne sont pas modis.


Assembleur
IN 00
OUT 01

9.9

Langage ma hine
F0 00
F1 01

Expli ation
entre depuis le port 00 vers le registre AL
sortie depuis le registre AL vers le port 01

Instru tions diverses

Les ags ne sont pas modis.


Assembleur
END
HALT
DB onstante
DB "HELLO"
NOP

Langage ma hine
00
00
onstante hexa
suite de odes
FF

Expli ation
n du programme (une seule sur la dernire ligne)
arrt de l'ex ution (ventuellement plusieurs)
dnit une donne (DeneByte )
les odes ASCII de HELLO en mmoire
instru tion vide
80

10 Annexe E : glossaire des prin ipaux termes


Ce glossaire ontient une sle tion des prin ipaux termes utiliss dans e ours et dont la onnaissan e
fait partie du jargon de base des informati iens professionnels.

a s dire t la mmoire

m anisme qui permet un a s dire t la mmoire vive sans passer


par le pro esseur e qui a lre les performan es des entres/sorties ( f. DMA)

a umulateur registre de al ul de l'unit arithmtique et logique


adressage dire t dans une instru tion, rfren e un mot mmoire par son adresse
adressage immdiat dans une instru tion, rfren e une valeur
adressage indire t dans une instru tion, rfren e un mot mmoire dont l'adresse
registre

est dans un

ASCII odi ation des ara tres sur 7 ou 8 bits


assembleur programme de tradu tion du langage d'assemblage en langage ma hine
bas ule ir uit ralisant une mmoire de un bit
ben hmark programme et donnes permettant de tester les performan es des ordinateurs
pro esseurs

ou des

bit hire binaire (abbrviation de binary digit )


bit de poids faible bit de puissan e 0 (unit)
bit de poids fort bit orrespondant la plus grande puissan e de 2
byte f. o tet
bran hement onditionnel instru tion de saut onditionn par les drapeaux du registre d'tat
bran hement in onditionnel instru tion de saut sans ondition
bus support de transfert d'information entre les omposants d'un ordinateur
bus d'extension bus o sont onne ts les ontrleurs de priphriques
bus lo al bus interne entre pro esseur et mmoire a he
bus systme bus entre pro esseur et mmoire entrale
ir uit ombinatoire ir uit de al ul o les sorties dpendent uniquement des donnes
ir uit intgr ir uit lo alis sur une pu e le tronique
ir uit squentiel ir uit de mmoire o les sorties dpendent des entres et des sorties pr dentes
ompilateur programme de tradu tion d'un langage volu dans un langage de plus bas niveau
(langage d'assemblage ou ode intermdiaire)

omplment 2 mode de reprsentation des entiers relatifs


ompteur ordinal registre de l'unit de ommande qui ontient l'adresse de la pro haine instru tion
ex uter

CPU f. unit entrale ( entral pro essing unit )


DCB f. d imal od binaire
DMA f. a s dire t la mmoire (Dire t Memory A ess )
d imal od binaire reprsentation des entiers par odi ation binaire de haque hire d imal
drapeau indi ateur d'tat (bit du registre d'tat) f. ag
reprsentation en ex dent reprssentation des entiers relatifs par d alage
exposant puissan e de 2 dans un rel ottant
ag f. drapeau
formattage prparation d'un disque en vue de re evoir des donnes
81

garbage olle tor f. ramasse-miettes


giga 2 puissan e 30 (milliard)
hexad imal reprsentation en base 16
horloge permet l'unit de ommande de gnrer les mi ro ommandes selon un han ier pr is
IEEE 754 norme de odi ation des rels
instru tion de transfert instru tion de dpla ement de donnes entre registres et/ou mots mmoire
instru tion de bran hement instru tion de saut ou rupture de squen e
interprte programme de tradu tion et d'ex ution ligne par ligne d'un programme
interruption vnement gnr par le matriel ou par programme qui interrompt le pro esseur et
permet de transfrer le ontrle d'un programme un autre

jeu d'instru tions ensemble des instru tions d'un pro esseur
kilo 2 puissan e 10 (1024 ou un millier)
langage d'assemblage langage ma hine sous forme symbolique (ave mnmoniques, identi ateurs,
tiquettes, et .)

langage volu

langage de plus haut niveau que le langage d'assemblage et qui doit tre traduit vers
lui (ex : java, C, COBOL, ...)

langage ma hine langage dire tement ex utable par le pro esseur (forme binaire)
mantisse partie d imale et fra tionnaire d'un rel ottant
mga 2 puissan e 20 (un million)
mgaop million d'instru tions ottantes par se onde
mmoire auxiliaire mmoire externe persistante
mmoire a he mmoire plus rapide que la mmoire entrale o sont sto kes les informations
plus utilises pour a lrer le traitement

les

mmoire entrale

mmoire vive (non persistante) de l'ordinateur o sont sto ks programmes, donnes et rsultats

mmoire morte mmoire en le ture seulement


mmoire vive f. mmoire entrale
mi ro ommande ordre envoy par le squen eur
raliser par les omposants de l'ordinateur

aprs d odage d'une instru tion pour la faire

MIPS million d'instru tions par se onde


mot groupement d'o tets qui peut tre trait d'un blo
o tal reprsentation en base 8
o tet ensemble de huit bits (byte )
pta 2 puissan e 50 (un million de milliards)
pile zone mmoire gre en dernier entr premier sorti ou LIFO (last in rst out )
pipeline mode de traitement ave paralllisme entre les tapes de ralisation des instru tions (tages)
pixel position d'a hage sur un ran en mode graphique
port adresse d'entre/sortie
porte logique ir uit logique lmentaire (ET, OU, NON, OU EXCLUSIF)
pro esseur CISC pro esseur ave un jeu d'instru tion tendu (Complex Instru tion Set Computer )
pro esseur RISC pro esseur ave un jeu d'instru tion rduit (Redu ed Instru tion Set Computer )
RAM f. mmoire vive (Random A ess Memory )
82

ramasse-miettes
olle tor )

programme qui r upre la mmoire des objets qui ne sont plus utiliss ( f. garbage

registre zone mmoire d'un mot a s trs rapide


registre d'tat registre ontenant les drapeaux (ags ) positions par l'unit arithmtique et logique
aprs traitement d'une instru tion

registre instru tion registre de l'unit de ommande qui a ueille l'instru tion d oder
ROM f. mmoire morte (Read Only Memory )
squen eur de ommandes omposant de l'unit de ontrle aden par l'horloge qui gnre les
mi ro ommandes

SSD mmoire auxiliaire base de mmoire ash qui peut rempla er le disque dur (Solid State Drive )
supers alaire ordinateur ave plusieurs units de traitement sp ialises fon tionnant en parallle
(oprations entires, oprations ottantes . . .)

tas zone de sto kage en mmoire


tera 2 puissan e 40 (mille milliards)
UAL f. unit arithmtique et logique
Uni ode odi ation des ara tres sur seize bits
unit arithmtique et logique unit ralisant les al uls arithmtiques et logiques (UAL)
unit entrale pro esseur + mmoire ( f. CPU)
unit de ommande unit qui d ode et ex ute les instru tions
unit d' hange unit qui interfa e les priphriques

83

You might also like