Vous êtes sur la page 1sur 137

Informatique: Architecture des ordinateurs

Pr. Houssam AMIRY


H. AMIRY 02/11/2019 1
Objectifs du module

 Décrire l'organisation interne des ordinateurs et son évolution.

 Modéliser le fonctionnement des ordinateurs.

 Représenter des données alphanumériques.

 Modéliser le calcul arithmétique et logique.

 Ecrire un petit programme en langage assembleur.

 Appréhender les principes généraux sous-jacents a la programmation.

H. AMIRY 02/11/2019 2
PLAN

Introduction du module

Partie 1: Systèmes de numération

Partie 2: Architecture des ordinateurs

H. AMIRY 02/11/2019 3
Introduction du module: Définitions

Informatique

 Science du traitement automatique de l’information grâce à une machine


appelée ordinateur.
 Le terme « informatique » vient de la contraction des mots « information » et
« automatique ».

Informatique = information + automatique

H. AMIRY 02/11/2019 4
Introduction du module : Définitions
Ordinateur ?????
 Ensemble de circuits électroniques

permettant de manipuler des données sous

forme binaire , c'est-à-dire sous forme de

bits (0 ou 1).

 Les trois éléments essentiels d'un

ordinateur sont, le processeur, les mémoires

et les dispositifs de gestion des entrées-

sorties.
H. AMIRY 02/11/2019 5
Introduction du module : Utilisation des ordinateurs

Système d'exploitation

Programme système qui gère les différentes ressources de la machine

Programme

Suite d'instructions dans un langage donnée, définissant un traitement exécutable par un ordinateur
• programmes systèmes
• programmes d'application

Programmation

A partir d'un problème donne, réaliser un programme (langages de programmation machine) dont
l‘exécution apporte une solution satisfaisante au problème posé

H. AMIRY 02/11/2019 6
Partie 1: Systèmes de numération

Objectifs:

• Comprendre le principes des codages binaires.

• Représenter des nombres entiers dans diverses représentations classiques (M&S, Cà1, Cà2).

• Représenter des nombres réels en IEEE 754.

• Comprendre le lien entre représentation des nombres et calcul arithmétique.

• Représenter des données alphanumériques ASCII, Huffman.

H. AMIRY 02/11/2019 7
Partie 1: Systèmes de numération
Plan 1. Le système binaire
2. Le système décimal
3. Le système octal
4. Le système hexadécimal
5. Passage de la base 2, 8, 16 à la base 10
6. Passage de la base 10 à la base 2, 8, 16
7. Passage de l’octal au binaire
8. Passage de l’hexadécimal au binaire
9. L'arithmétique binaire
10. Les nombres négatifs et les nombres réels
11. Différentes représentations relatives aux données
H. AMIRY 02/11/2019 8
Systèmes de numération

 Instructions

 Données
• Nombres (entiers, réels)
• Images
• Vidéos
• Sons
• etc.

 Toujours représentées sous forme binaire (0 ou 1) a l'aide de bits.

H. AMIRY 02/11/2019 9
Systèmes de numération
Définition

 Un système de numération est un


ensemble de symboles et de règles
permettant de représenter les
nombres
 Un système de numération se définit
par deux éléments:
• La base du système,
• Les symboles du système.
En informatique, les systèmes les plus
utilisés sont les suivants: décimal,
binaire, octal et hexadécimal.
H. AMIRY 02/11/2019 10
Systèmes de numération
Notation
Soit N un nombre quelconque exprimé dans une base b. N sera noté comme suit:

N = (an-1 an-2 an-3………..a0)b

Tel que:
b: base du système de numération.
ai: symbole du système, i = 0, … , n-1. avec . ai < b

H. AMIRY 02/11/2019 11
Systèmes de numération
Exemple:
• N1 = (19017)10
En Décimal, avec: a4= 1, a3= 9, a2= 0, a1= 1, a0= 7.
On remarque que les ai sont tous inférieurs à la base 10 (ai < 10).
• N2 = (1011101)2
En Binaire, avec: a6= 1, a5= 0, a4= 1, a3= 1, a2= 1, a1= 0, a0= 1 (ai < 2).
• N3 = (1370)8
En Octal, avec: a3= 1, a2= 3, a1= 7, a0= 0 (ai < 8).
• N4 = (A9120)16
En Hexadécimal, avec: a4= A, a3= 9, a2= 1, a1= 2, a0= 0 (ai < 16).
• N5 = (18095)8
La notation N5 = (18095)8 n’est pas correcte, car tous les chiffres doivent être inférieurs à 8
(ai < 8) ce qui n’est pas le cas pour le 2ième chiffre et aussi pour le 4ième (a1= 9 > 8) et (a3= 8).

H. AMIRY 02/11/2019 12
1. Le système binaire
20

• C’est le système de numération utilisant la base 2. 21


• On nomme bit les chiffres de la 22
numération binaire positionnelle. 23
• Un bit peut prendre deux valeurs, notées par convention
24
0 et 1.
(101101) 2
• C’est le système utilisée en informatique pour la
représentation des informations au niveau machine.
1 x 20
• Les deux états 0 et 1 sont les seuls que la machine peut 0 x 21
assimiler. 1 x 22
• La position des 0 et des 1 indique respectivement 1 x 23
l'absence ou la présence d'une puissance de 2. 0 x 24
1 x 25
H. AMIRY 02/11/2019 13
2. Le système décimal

• C’est le système usuel dans la vie quotidienne. La base du


(319038) 10
système décimal est la base 10 et ses symboles sont les dix
chiffres: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
8 x 100
• Les dix chiffres précédents sont suffisants pour exprimer
3 x 101
n’importe quel nombre .
0 x 102
• La machine ne pouvant assimiler que les deux valeurs 0 et 1, il 9 x 103
serait important de savoir comment exprimer les nombres 1 x 104
décimaux en binaires et comment effectuer l’opération inverse et 3 x 105
on parle de conversion de base.

H. AMIRY 02/11/2019 14
3. Le système octal

(540371) 8
• La base du système octal est 8.
• En octal, les nombres sont représentés sous forme de 1 x 80
combinaisons de chiffres parmi les suivants: 0, 1, 2, 3, 4, 5, 6, et 7. 7 x 81
3 x 82
0 x 83
4 x 84
5 x 85

H. AMIRY 02/11/2019 15
4. Le système hexadécimal

• Le système hexadécimal ( base 16) utilise 16 chiffres pour la


représentation des nombres, à savoir: (140FC1) H
- les chiffres du système décimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- les six (6) premières lettres de l’alphabet: A, B, C, D, E, F. 1 x 160
12 x 161
15 x 162
0 x 163
4 x 164
1 x 165

H. AMIRY 02/11/2019 16
5. Passage de la base 2, 8, 16 à la base 10

• L’exemple suivant illustre la méthode de conversion, en décimal, d’un nombre exprimé dans une
base b quelconque.
Soit N = (an-1 an-2 an-3………..a0)b

• Pour avoir la représentation en décimal du nombre N exprimé dans une base b quelconque, il suffit
d’effectuer le calcul suivant:

(N)b = an-1 * bn-1 + an-2 * bn-2 + ………..+ a1 * b1 + a0 * b0

• La formule générale s’écrit comme suit:

Avec : i étant le poids du chiffre ai.


H. AMIRY 02/11/2019 17
5. Passage de la base 2, 8, 16 à la base 10

• Exemple 1 : On considère le nombre: N = (1023)4


 On commence par définir le poids de chaque chiffre et cela en les numérotant de droite à
gauche et on commençant la numérotation à partir de 0.

3 2 1 0 Poids des chiffres (i)

1 0 2 3
 Puis, on multiplie chaque chiffre ai de poids i par la base b élevée à la puissance i. (ai * bi )
N = 1 * 43 + 0 * 42 + 2 * 41 + 3 * 40
= 64 + 0 + 8 + 3
= 75.
Ainsi, nous avons: N = (1023)4 = (75)10

H. AMIRY 02/11/2019 18
5. Passage de la base 2, 8, 16 à la base 10

• Exemple 2 : Soit à convertir en décimal, le nombre N exprimé en binaire comme suit: N = (10111001)2
 Les poids des chiffres:

7 6 5 4 3 2 1 0 Poids des chiffres (i)

1 0 1 1 1 0 0 1
 Ainsi, le nombre N en décimal est calculé comme suit:
N = 1 * 27 + 0 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20
= 128 + 0 +32 + 16 + 8 + 0 + 0 + 1
= 185.
D’où: N = (10110101)2 = (185)10

H. AMIRY 02/11/2019 19
5. Passage de la base 2, 8, 16 à la base 10

• Exemple 3 : Soit à convertir en décimal le nombre X = (175)8 .

(X)10 = 1*82 + 7*81 + 5*80


= 64 + 56 +5
= 125.

Ainsi, (175)8 = (125)10

Soit à convertir en décimal le Nombre X = (A24)H .

(X)10 = A * 162 + 2 * 161 + 4 * 160


= 10 * 162 + 2 * 161 + 4 * 160
= 2596.

Ainsi, (A24)H = (2596)10

H. AMIRY 02/11/2019 20
6. Passage de la base 10 à la base 2, 8, 16

Pour exprimer en binaire, un nombre Les étapes à suivre sont les suivantes:
exprimé dans une base b, on dispose
soit Xi: le résultat de la division.
d’une méthode par divisions successives.
ri: le reste de la division n°i.
Conversion par division successives
1) Effectuer la division X / b = X0 et le reste r0
Soit X un nombre exprimé dans la base
si X0 = 0 alors aller à 3)
10. Pour l’exprimer dans une autre base b,
sinon aller à 2)
il suffit d’effectuer des divisions
2) Effectuer la division Xi / b = Xi+1 et le reste ri+1
successives sur b jusqu’à l’obtention d’un
si Xi+1 = 0 alors aller à 3)
résultat nul.
sinon aller à 2)
3) Arrêter la division. Le résultat est (X)10 = (rm rm-1 … r1r0 )b

H. AMIRY 02/11/2019 21
6. Passage de la base 10 à la base 2, 8, 16

Exemple:

H. AMIRY 02/11/2019 22
7. Passage de l’octal au binaire

La base 8 est une puissance de la base 2. Pour convertir un nombre octal en binaire, on possède
comme suit:
• On a 8 = 23 cela veut dire que pour représenter un seul chiffre octal en binaire, il faut utiliser 3 bits.
• Ainsi, la représentation des chiffres de la base 8 en binaire est la suivante:

H. AMIRY 02/11/2019 23
7. Passage de l’octal au binaire

Exemple: Soit le nombre Y = (175)8 = (???)2 .

Pour trouver l’équivalent binaire de ce nombre octal, il suffit de trouver l’équivalent binaire de
chaque chiffre octal.

H. AMIRY 02/11/2019 24
8. Passage de l’hexadécimal au binaire

La base 16 est une puissance de la base 2.


Pour convertir un nombre hexadécimal en
binaire, on possède comme suit:
On a 16 = 24 cela veut dire que pour
représenter un seul chiffre hexadécimal en
binaire, il faut utiliser 4 bits.
Ainsi, la représentation des chiffres de la
base 16 en binaire est la suivante:

H. AMIRY 02/11/2019 25
8. Passage de l’hexadécimal au binaire

Exemple: Soit le nombre Y = (A24)H = (???)2 .

Pour trouver l’équivalent binaire de ce nombre hexadécimal, il suffit de trouver l’équivalent binaire
de chaque chiffre hexadécimal.

H. AMIRY 02/11/2019 26
9. L'arithmétique binaire
Addition

• 60+17 en base 2
11 1 1 1 0 0

+ 0 1000 1
1 00 1101
 77
• 25 + 24 + 23 + 22 = 32 +16 + 8 + 4 = (60)10
• 24 + 20 = 16 + 1= (17)10
• 26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = (77)10

H. AMIRY 02/11/2019 27
9. L'arithmétique binaire
Soustraction

• 8-1 en base 2
1 10 10 10

- 01 01 01 1
0 1 1 1
7
• 23 = (8)10
• 20 = (1)10
• 22 + 21 + 20 = 4 + 2 + 1 = (7)10

H. AMIRY 02/11/2019 28
9. L'arithmétique binaire
Multiplication

7*5 en base 2
111
*101
111
1 1 01 0 0 .
1 1 1 . .
100 011
 35
• 22 + 21 + 20 = 4 + 2 + 1 = (7)10
• 22 + 20 = 4+ 1=(5)10
• 25 + 21 + 20 = 32+ 2+ 1 = (35)10

H. AMIRY 02/11/2019 29
9. L'arithmétique binaire
Division

• 37/5 en base 2
100101 101
100101 -000 00111
/ 101 100
000111 - 000
1001
7 - 101
• Tapez une équation ici. 1000
- 101
• 25 + 22 + 20 = 32+ 4+ 1 = (37)10
0111
• 22 + 20 = 4+ 1= (5)10 - 101
• 22 + 21 + 20 = 4 + 2 + 1 = (7)10 010

H. AMIRY 02/11/2019 30
10. Les nombres négatifs et les nombres réels
Décimal négatif  binaire

3 façons de représenter les nombres négatifs avec n bits:

• Module et signe (noté M&S)


 on utilise le bit le plus à gauche pour représenter le signe
 exemple mots de 4 bits ((3)10=(011)2) donc (0011)2 =(3)10 et (1011)2 =(-3)10

• Complément à 1 (noté Cà1)


 pour un nombre négatif, on prend la représentation de la partie entière et on inverse tous
les bits
 exemple mots de 4 bits: ((4)10=(100)2) donc (0100)2=4 et (1011)2 =(-4)10

• Complément à 2 (noté Cà2)


 idem, mais avant d’inverser, on soustrait 1 (ou on inverse puis on ajoute 1)
 exemple mots de 4 bits : ((6)10=(110)2) donc (0110)2=6 et (1010)2=(-6)10

H. AMIRY 02/11/2019 31
10. Les nombres négatifs et les nombres réels
Addition (ADD) et soustraction (SUB)

• Le bit signe est traité comme tous les autres bits

• La soustraction est un cas particulier de l’addition

• Les nombres négatifs sont traités comme des nombres à additionner


Exemple mots de 3 bits:

• Addition par C à 1, (si retenue? on ajoute 1 au résultat)


 0102+1102 = 10002un retenu +1 0012 équivalent on décimal 2+(-1)=1
 0012+1012 = 1102pas de retenu 1102 équivalent on décimal 1+(-2)=-1

• Addition par Cà2 (Directe)

 0102+1112 = 1 00120012 équivalent on décimal2+(-1)=1

 0012+1102 = 11121112 équivalent on décimal 1+(-2)=-1

H. AMIRY 02/11/2019 32
10. Les nombres négatifs et les nombres réels

Conversion chiffre réel binaire décimal

• Virgule fixe: dn-1 dn-2 dn-3 ….. d2 d1 d0 , d-1 d-2 d-m avec n et m fixe

• Un nombre qui s'exprime en base B par 3 bits avec n=2 et m=1 le chiffres 101 s'analyse : 1*B1 + 0*B0 +1*B-1

 En binaire (10,1)2 = 1*21 + 0*20 +1*2-1=(2,5)10

 En octale(10,1)8 = 1*81 + 0*80 +1*8-1=(8,125)10

 En hexadécimal (10,1)16 = 1*161 + 0*160 +1*16-1=(16,0625)10

H. AMIRY 02/11/2019 33
10. Les nombres négatifs et les nombres réels
Conversion chiffre réel décimal Binaire

Exemple : (77,75)10 = (??)2 avec n=8 et m=2

• Pour la partie entier il faut faire une diversion successive des quotients sur 2 puis écrire les
restes en commençant par le dernier: 77,7510

• Pour la partie réel il faut faire une multiplication successive des parties réel par 2 puis écrire
la suite de la partie entier en commençant par le premier.

• 0,75*2=1,5

• 0,5*2 =1

• on binaire 0,11 (1*2 -1 +1*2 -2 =0,5 + 0,25 = 0,75) Résultat 77,7510 = 01001101,112

H. AMIRY 02/11/2019 34
10. Les nombres négatifs et les nombres réels
Réel négatif (virgule fixe)

• Pour les valeurs négatives ont utilisent les mêmes règles de représentations vu avant M&S, Cà1 et Cà2
Exemple pour n=3 et m=2:

décimale M&S Cà1 Cà2


-1,25 101,01 110,10 110,11

• Calcule pour n et m fixes, e.g. en


Cà2: n=5 et n=3 et m=2 n=5 et n=3 et
m=0 m=0 m=2

0 0 1 1 0 6 1,5 0 0 1 1 0 6 1,5
+ 1 1 0 1 1 -5 -1,25 - 0 0 1 0 1 5 1,25
0 0 0 0 1 1 0,25 0 0 0 0 1 1 0,25

• Pour d’autres n et m fixes, la même opération à différentes interprétations selon les valeurs de n et m.

H. AMIRY 02/11/2019 35
10. Les nombres négatifs et les nombres réels
Réel négatif (virgule flottant): Notation exponentielle

Exposant
-3
- 0 . 9 8 7 6 x 10

Signe de
Signe de Position du l’exposant
la mantisse point décimal Mantisse

Base
Base de système du nombre!

H. AMIRY 02/11/2019 36
10. Les nombres négatifs et les nombres réels
Réel négatif (virgule flottant): Représentation normalisée

• Un nombre représenté en virgule flottante est


normalisé s'il est sous la forme:
• ± 0,M * X±c
• M – un nombre dont le premier chiffre est non nul
• Exemple:
• + 59,4151 * 10-5 =>
Normalisé: +0,594151 * 10-3

H. AMIRY 02/11/2019 37
10. Les nombres négatifs et les nombres réels
Réel négatif (virgule flottant): Norme IEEE 754
32 bits
Un format standardisé S C M en base 2, avec un bit caché à 1
Format simple précision: 32 bits
• Bit du signe (1 bit) Mantisse (23 bits)
• Exposant (8 bits) Exposant (8 bits)
• Mantisse (23 bits)
Signe de la mantisse (1 bit)
Format double précision: 64 bits 64 bits
• Bit du signe (1 bit)
• Exposant (11 bits)
• Mantisse (52 bits) Mantisse (52 bits)
Exposant (11 bits)
Signe de la mantisse (1 bit)
H. AMIRY 02/11/2019 38
10. Les nombres négatifs et les nombres réels
Réel négatif (virgule flottant): Norme IEEE 754

• La mantisse est normalisé sous la forme


• ±1,M*2±E
• Le 1 précédant la virgule n’est pas codé en machine et est appelé bit caché
• Exemple:
• Simple précision: application Codons le nombre
• −6, 625
• -=1
• (6, 625)10 = (110, 1010)2
• 110, 1010 = 1, 101010 × 2 2
• M = 10101000000000000000000
• E=127 + 2 = (129)10 = (10000001)2
• −6, 625 = 1 10000001 10101000000000000000000
• En hexadécimal : C0 D4 00 00
H. AMIRY 02/11/2019 39
11. Différentes représentations relatives aux données
Nombres entiers positifs
Conversion directe
(Décimal  binaire)

Nombres entiers négatifs


Numériques
(M&S, Cà1, Cà2)

Données Nombres fractionnaires

Codage par tables


Non numériques
(ASCII)

H. AMIRY 02/11/2019 40
11. Différentes représentations relatives aux données
Codage ASCII
Chaque caractère possède son équivalent en code numérique: c'est le code ASCII (American Standard Code for
Information Interchange). Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128
caractères possibles, de 0 à 127).

Binary Octal Décimal Hexadécimal Caractères


010 0001 041 33 21 !
010 0010 042 34 22 "
010 0011 043 35 23 #
011 0000 060 48 30 0
011 0001 061 49 31 1
011 0010 062 50 32 2
100 0001 101 65 41 A
100 0010 102 66 42 B
110 0001 141 97 61 a
110 0010 142 98 62 b
110 0011 143 99 63 c

H. AMIRY 02/11/2019 41
11. Différentes représentations relatives aux données
Cher ami, Codage ASCII

67 104 101 114 32 97 109 105 44 (en décimal)

Il faut différencier entre


• Nombre
12 =(12)10=(00000000001100)2
• Texte
"12" ou '12'= (49 50) 10
=(00110001 00110010)2

H. AMIRY 02/11/2019 42
11. Différentes représentations relatives aux données
Représentation en mémoire : texte
En informatique, un texte est une chaîne de caractères est à la fois conceptuellement une suite ordonnée de
caractères et physiquement une suite ordonnée d'unité de code (code unit exemple ASCII)
Dans une mémoire informatique, l'adresse mémoire du premier caractère est connu. Deux méthodes pour
délimiter la fin de la chaîne:
• soit elle est terminée par un caractère de fin de chaîne (zéro binaire en langage C, et on parle alors
d’ASCIIZ pour indiquer « terminé par un zéro »),
• soit le nombre de caractères est stocké en parallèle au début.
Exemple mot FRANK en mémoire avec les deux méthodes
FRANK en mémoire, délimité par un caractère nul (utilisé pour afficher en écran en DOS)
F R A N K NUL k e f w
46 52 41 4E 4B 00 6B 65 66 77
FRANK en mémoire stocké avec la longueur (utilisé pour lire de clavier en DOS)
longueur F R A N K k e f w
05 46 52 41 4E 4B 6B 65 66 77

H. AMIRY 02/11/2019 43
11. Différentes représentations relatives aux données
Codage de Huffman
• Consiste a remplacer les caractères les plus fréquents par des codes courts et les caractères les
moins fréquents par des codes longs.

• Utilise la notion de code préfixe.

H. AMIRY 02/11/2019 44
11. Différentes représentations relatives aux données
• exemple : "recherchechatchatain"
Codage de Huffman
1. Construction du tableau :Il faut compter tout d’abord tous les caractères du fichier a coder et affecter a chacun
d’entre eux son ≪ poids ≫ d’apparition. On obtient alors un tableau ou chaque case correspond a un caractère et
son poids, tout étant range dans l'ordre du codage ASCII (ordre alphabétique)
Caractère a c e h i n r t
poids 3 4 3 4 1 1 2 2
2. Construction de l'arbre: Chacune des cellules du tableau sera une feuille de cet arbre. Pour compléter cet
arbre, il faut associer les feuilles (caractères ensemble). Dans chaque étape on va associer les caractères ayant
le plus petit poids pour former un nouveau nœud.(chercher la plus petite somme de deux poids possible)
• Ainsi, on commence par choisir les deux caractères ayant les ≪ poids ≫ les plus faibles. En cas d'égalité
entre différents ≪ poids ≫, on choisit en priorité le premier caractère dans l'ordre correspondant au codage
ASCII.
• Apres cela, on ajoute un nœud à l'arbre avec la somme des deux poids des (feuilles) caractères (ou nœud)
choisis précédemment.
• On réitère le processus en considérant l'arbre obtenu. En cas d'égalité entre différents ≪ poids ≫, on choisit
en priorité une somme de deux feuilles que une somme de feuille-nœud selon l'ordre correspondant au
codage ASCII.
• Ensuite, on refait ainsi pour tous les caractères suivants jusqu'au dernier.
3. Association bits/lettres : Une fois l'arbre termine on va associer un bit aux branches de l’arbre, c'est-a-dire que
l’on va choisir, par convention, que les branches de gauche correspondent a 0 et que les branches de droite correspo
H. AMIRY 02/11/2019 45
11. Différentes représentations relatives aux données
Codage de Huffman
• Exemple : "recherchechatchatain" 2 Construction de l'arbre (suit exemple):
1) poids 1+1>=1 deux nœuds successives de 1 2) poids 2+2 >=2 deux nœuds successives de 2

3) poids 2+3 >=3, on ajout le 1er nœud dans 4) poids 4+3>=5 , le plus proche dans l’ordre ASCI
l'ordre ASCI nœud (a) au racine 2 sont (c) et (e)

cacher

cacher

5) poids 4+4>=7, on ajout le nœud (h) dans 6) poids 5+7>=7


l'ordre ASCI au racine 4

cacher

cacher

H. AMIRY 02/11/2019 46
11. Différentes représentations relatives aux données
Codage de Huffman
• Exemple : "recherchechatchatain" 3 Association bits/lettres(suit exemple):
caractère code
a3 101
c4 111
e3 110
h4 00
i1 1000
n1 1001
r2 010
t2 011

On obtient le codage suivant :


010 110 111 00 110 010 111 00 110 111 00 101 011 111 00 101 011 101 1000 1001
r e c h e r c h e c h a t c h a t a i n
H. AMIRY 02/11/2019 47
11. Différentes représentations relatives aux données
Représentation des primitives d'un langage (exemple, langage C)
Type de donnée Signification Taille (en octets) Plage de valeurs acceptée
char Caractère 1 -128 à 127
unsigned char Caractère non signé 1 0 à 255
short int Entier court 2 -32 768 à 32 767
unsigned short int Entier court non signé 2 0 à 65 535
-32 768 à 32 767
2 (sur processeur 16 bits)
int Entier -2 147 483 648 à 2 147
4 (sur processeur 32 bits)
483 647
2 (sur processeur 16 bits) 0 à 65 535
unsigned int Entier non signé
4 (sur processeur 32 bits) 0 à 4 294 967 295
-2 147 483 648 à 2 147
long int Entier long 4
483 647
unsigned long int Entier long non signé 4 0 à 4 294 967 295
float Flottant (réel) 4 3.4*10-38 à 3.4*1038
double Flottant double 8 1.7*10-308 à 1.7*10308
long double Flottant double long 10 3.4*10-4932 à
3.4*104932
H. AMIRY 02/11/2019 48
11. Différentes représentations relatives aux données
Unités de mesure en informatique

H. AMIRY 02/11/2019 49
Partie 2: Architecture des ordinateurs

Objectifs:
• Maitriser les bases de l’algèbre booléenne.
• Faire la synthèse et l'analyse d'une circuit logique.
• Connaitre les circuits logiques les plus importants.
• Appréhender les principes des circuits séquentiels et des bascules.
• Décrire l'organisation interne des ordinateurs.
• Modéliser le fonctionnement des ordinateurs.
• Connaitre la pyramide des types de mémoires informatique.
• Comparer les mémoires suivant différents critères et caractéristiques.
• Percevoir les principes des technologies sous-jacentes aux mémoires vives, et disques
magnétiques.

H. AMIRY 02/11/2019 50
Partie 2: Architecture des ordinateurs
Plan

1. Circuits logiques

2. Les composants matériels de l'ordinateur

3. Les composants logiques de l'ordinateur

4. Langage machine

H. AMIRY 02/11/2019 51
Partie 2: Architecture des ordinateurs
Introduction
 L'ordinateur est un dispositif électronique qui traite l'information mise sous forme d'impulsions

électriques traduisant les chaînes binaires (suite de bits).

 L’ordinateur ne comprend que les impulsions électriques.

 Le traitement de données par un ordinateur est essentiellement réalisé à l'aide d'opérations

telles que l'addition, la soustraction, la multiplication, la division, la comparaison.

 Plus fondamentalement, les opérations sont composées d'opérations logiques qui sont

effectuées par des circuits logiques de base appelés portes.

 Une porte est en fait un circuit combinatoire à une ou plusieurs entrées et à au moins une

sortie. Les conditions aux entrées d'une porte déterminent l'état des sorties.

H. AMIRY 02/11/2019 52
Partie 2: Architecture des ordinateurs
Introduction
 Il existe trois portes de base correspondant aux trois opérations logiques: OU, ET, NON.
 On dit que les portes OU, ET, NON sont des opérateurs booléens, parce qu'ils impliquent ou
traitent des variables booléennes, c'est à dire des variables logiques qui ne peuvent prendre que
deux valeurs: 0 et 1.
 Le terme booléen vient du nom du mathématicien anglais George Boole (1815-1864), qui fit une
analyse mathématique de la logique.
 L'ensemble des règles relatives au traitement des variables booléennes est appelé algèbre de
Boole.

H. AMIRY 02/11/2019 53
1. Circuits logiques

 Tout ordinateur est conçu à partir de circuits intégrés qui ont tous une fonction spécialisée.

 Les circuits intégrés sont fait à partir de circuits logiques dont le but est d’exécuter des opérations

sur des variables logiques (binaires).

 Les circuits logiques sont élaborés à partir de composants électroniques – transistors.

 Types de circuits logiques: Combinatoires et Séquentiels.

H. AMIRY 02/11/2019 54
1. Circuits logiques
Circuits combinatoires

 Support théorique – algèbre de Boole.


 Les fonctions de sortie s’expriment selon des expressions logiques des seules variables
d’entrée.
 Un circuit combinatoire est défini par une ou plusieurs fonctions logiques.

H. AMIRY 02/11/2019 55
1. Circuits logiques
Circuits séquentiels ou à mémoire

 Support théorique – FSM (Finite State Machine).


 Les fonctions de sortie dépendent non seulement de l’état des variables d’entrée mais également
de l’état antérieur de certaines variables de sortie (propriétés de mémorisation).

H. AMIRY 02/11/2019 56
1. Circuits logiques: combinatoires
Conception d’un circuit logique

A. Identifier les entrées et les sorties (IN / OUT) du circuit + Construire la table de vérité.

B. Identifier la fonction à partir de la table de vérité.

C. Simplification de la fonction.

D. Dessiner le schéma du circuit (logigramme).

H. AMIRY 02/11/2019 57
1. Circuits logiques: combinatoires
A. Identifier les entrées et les sorties (IN / OUT) du circuit + Construire la table
de vérité.
• Ecrire sur une première ligne le nom des variables d'entrée et de la variable de sortie.
• Diviser le tableau en un nombre de colonnes égal au total des entrées et de la sortie. Ainsi, la table
de vérité d'une fonction logique à deux entrées aura trois colonnes (deux pour les entrées et une
pour la sortie).
• Déterminer le nombre de combinaisons possibles à l'aide des variables d'entrées. Ce nombre est
égal à deux exposant le nombre d'entrées. Par exemple, avec trois entrées, il y aura 23 = 8
combinaisons possibles.
• Tracer des lignes horizontales dont le nombre est égal au nombre de combinaisons possibles.
• Inscrire dans la colonne "sortie" la valeur de la fonction pour chaque combinaison 1 ou 0 ou - si la
valeur est indéterminé
a b F
Exemple: tables de vérité de addition 0 0 0
arithmétique a+b 0 1 1
1 0 1
1 1 1
H. AMIRY 02/11/2019 58
1. Circuits logiques: combinatoires
B. Identifier la fonction à partir de la table de vérité

Méthodes des minterms et des maxterms

 Il est possible d'exprimer toute fonction logique a l'aide des operateurs NON, ET, OU.

 L'expression algébrique obtenu est dite forme normale (ou canonique).

 Terme produit : fonction composée uniquement de produits (A . B . C).

 Terme somme : fonction composée uniquement de sommes (A + B + C).

 Minterm (1èr forme canonique) : dans un terme produit où chaque variable est présente une fois
exactement.

 Maxterm (2ème forme canonique) : dans un terme somme où chaque variable est présente une
fois exactement.

H. AMIRY 02/11/2019 59
1. Circuits logiques: combinatoires
B. Identifier la fonction à partir de la table de vérité
Méthodes des minterms et des maxterms

H. AMIRY 02/11/2019 60
1. Circuits logiques: combinatoires
C. Simplification de la fonction: la méthode algébrique
• Associativité
Comme avec les opérations habituelles: • Éléments neutres

• Absorption
• Commutativité : L'ordre est sans importance:

• Simplification
• Distributivité

• Première loi de De Morgan (négation de la conjonction)


• Idempotence s'exprime par l'égalité suivante

• Deuxième loi de De Morgan (négation de la disjonction)

H. AMIRY 02/11/2019 61
1. Circuits logiques: combinatoires
C. Simplification de la fonction: la méthode algébrique

• Exemple

H. AMIRY 02/11/2019 62
1. Circuits logiques: combinatoires
C. Simplification de la fonction: la méthode de Karnaugh

Pour les tables a 4 variables, il faut de préférence procéder dans l'ordre suivant :
• les rectangles 8 cases, puis
• les rectangles 4 cases, puis
• les rectangles 2 cases, et enfin
• les cases uniques.
Dans l'exemple ci-contre : on peut former un rectangle de 8
cases (en bleu), puis un carre de 4 (en vert) et enfin on peut
rassembler les deux 1 restants dans un groupe de 4 (en rouge).

H. AMIRY 02/11/2019 63
1. Circuits logiques: combinatoires
Exemple A : Tableau de Karnaugh :

H. AMIRY 02/11/2019 64
1. Circuits logiques: combinatoires
Tableau de Karnaugh :
Exemple B :

H. AMIRY 02/11/2019 65
1. Circuits logiques: combinatoires
D. Dessiner le schéma du circuit (logigramme)

H. AMIRY 02/11/2019 66
1. Circuits logiques: combinatoires
D. Dessiner le schéma du circuit (logigramme)
Représenter une fonction logique sous la forme d'un logigramme revient à réaliser son schéma de câblage à l'aide
des portes logiques.
Exemple1: f1=ab+cd

H. AMIRY 02/11/2019 67
1. Circuits logiques: combinatoires
Exemple 1:

Simplification algébrique:
Simplification par tableau
de Karnaugh :

H. AMIRY 02/11/2019 68
1. Circuits logiques: combinatoires
Exemple 2:

Simplification par tableau de Karnaugh :

H. AMIRY 02/11/2019 69
1. Circuits logiques: combinatoires
Exemple 3:

Simplification par tableau de Karnaugh :

H. AMIRY 02/11/2019 70
1. Circuits logiques: combinatoires
Exemple 4:
Simplification par tableau de Karnaugh :

H. AMIRY 02/11/2019 71
1. Circuits logiques: combinatoires
Exemple 5:

H. AMIRY 02/11/2019 72
1. Circuits logiques: combinatoires
Exemple 6: cas indéterminé

Tableau de Karnaugh :

H. AMIRY 02/11/2019 73
1. Circuits logiques: combinatoires
Fonctionnement des portes logiques: Inverseur
• Décharge et charge de la capacité de sortie d’un
inverseur
• Si E=0  S=5V après le temps de charge
• Si E=5V  S=0V après le temps de décharge

H. AMIRY 02/11/2019 74
1. Circuits logiques: combinatoires
Structure interne de différentes portes de base

H. AMIRY 02/11/2019 75
1. Circuits logiques: combinatoires
Exemple 1 : Multiplexeur
 X entrées, 1 sortie.
 la sortie f prend la valeur de l’une des entrées
 Son rôle consiste à sélectionner, à l’aide de signaux de
commande, une des entrées et à la lier à la sortie.

H. AMIRY 02/11/2019 76
1. Circuits logiques: combinatoires
Exemple 2: Démultiplexeur
• 1 entrée, X sorties
• Selon une adresse s (n bits), une seul des X sorties prend la valeur de l’entrée

Application Demultiplexeur/ Multiplexeur : Conversion Série/Parallèle; Parallèle/Série


H. AMIRY 02/11/2019 77
1. Circuits logiques: combinatoires
Exemple 3: Décodeur

• Active une des X sorties selon un code


• Entrée sur n bits
• Nombre de sorties: 2n
• Une seule sortie est mise à 1 selon la configuration des entrées

H. AMIRY 02/11/2019 78
1. Circuits logiques: combinatoires
Exemple 4: Encodeur
• Active un code selon l’une des X entrées actives
• 2n entrées, 1 entrée active (valeur 1), les autres sont toutes désactivées (valeur 0)
• Sortie : sur n bits

H. AMIRY 02/11/2019 79
1. Circuits logiques: combinatoires
Exemple 5: Additionneur

• Additionneur 1 bit pour les bits de poids faible a0 et b0 :

• Le circuit logique associé est donc constitué de deux portes, un OU exclusif pour le résultat et
un ET pour la retenue.
• Comme ce circuit ne tient pas compte d’une retenue propagée depuis le rang inférieur.

H. AMIRY 02/11/2019 80
1. Circuits logiques: combinatoires
Exemple 5: Additionneur

Additionneur 1 bit pour les bits de poids fort:


Afin de permettre une liaison de plusieurs additionneurs en série, un additionneur doit avoir une
retenue en entrée Re en plus de la retenue en sortie Rs:

H. AMIRY 02/11/2019 81
1. Circuits logiques: combinatoires
Exemple 5: Additionneur

Additionneur complet n bits:

• L’additionneur n bits est obtenu en chaînant entre eux un demi-additionneur et n-1 additionneurs
1 bit complets
• Le chaînage s’effectue par le biais des retenues propagées

H. AMIRY 02/11/2019 82
1. Circuits logiques: séquentiels
Circuits séquentiels ou à mémoire
• Circuits combinatoires
– Les sorties ne dépendent que des valeurs des entrées
• Circuits séquentiels
– Ajout des notions d'état et de mémoire
– Ajout de la notion de temps (horloge)
• Les valeurs de sorties du circuit dépendent:
– Des valeurs en entrée
– De valeurs calculées précédemment
– De l'état dans lequel on se trouve
• Théories utilisées pour étudier/spécifier les différents types de circuits
– Circuits combinatoires : algèbre de Boole
– Circuits séquentiels : théorie des automates finis
H. AMIRY 02/11/2019 83
1. Circuits logiques: séquentiels
Principe de fonctionnement

Particularité de ce circuits
– La sortie S du circuit est réinjectée à l’entrée du circuit
– Rétroaction
– L’état de sortie du circuit influencé par l’état antérieur

La table de vérité

L’état pour lequel X1=0 et X2=1 correspond à l’état de mémorisation du circuit séquentiel

H. AMIRY 02/11/2019 84
1. Circuits logiques: séquentiels
Exemple 1: Bascule Bistable

Principe général d'une bistable : 2 portes NON (inverseurs) en opposition

H. AMIRY 02/11/2019 85
1. Circuits logiques: séquentiels
Exemple 2: Bascule RS
• 2 entrées : R et S ; R = reset : remise à 0 de Q; S = set : mise à 1 de Q.
• 1 sortie: Q qui correspond à l'état stocké.

Principe : la valeur de Q à t+1 dépend de R, S et de la valeur de Q à t

H. AMIRY 02/11/2019 86
1. Circuits logiques: séquentiels
Exemple 3: Bascule JK

Bascule JK sur front d’horloge


• Possède 2 entrées de données J et K
• Fonctionnalité identique à la bascule RS à la différence près que l’état J=1, K=1 est autorisé
• J= 1, K = 1 => inversion de l’état de la bascule

H. AMIRY 02/11/2019 87
2. Les composants matériels de l'ordinateur: introduction

Schématiquement un ordinateur peut être symbolisé comme suit :

H. AMIRY 02/11/2019 88
2. Les composants matériels de l'ordinateur: introduction

Schématiquement un ordinateur peut être symbolisé aussi par :

H. AMIRY 02/11/2019 89
2. Les composants matériels de l'ordinateur: introduction

Un ordinateur est un ensemble de composants électroniques modulaires, c'est-à-dire des composants
pouvant être remplacés par d'autres composants ayant éventuellement des caractéristiques différentes,
capables de faire fonctionner des programmes informatiques.
 On parle ainsi de « hardware » pour désigner l'ensemble des éléments matériels de l'ordinateur et
de « software » pour désigner la partie logicielle.

H. AMIRY 02/11/2019 90
2. Les composants matériels de l'ordinateur: introduction

Les composants matériels d’un ordinateur architecturés autour d'une carte principale
comportant quelques circuits intégrés et beaucoup de composants électroniques tels que
condensateurs, résistances, etc. Tous ces composants sont soudés sur la carte et sont reliés par
les connexions du circuit imprimé et par un grand nombre de connecteurs : cette carte est
appelée carte mère.

H. AMIRY 02/11/2019 91
2. Les composants matériels de l'ordinateur: introduction
 L'élément constitutif principal de l'ordinateur est la carte mère qui permet la
connexion de l'ensemble des éléments essentiels de l'ordinateur. Elle est logée
dans un boîtier.
 Le boitier comportant des emplacements pour les périphériques de stockage
sur la face avant.
 Ainsi que des boutons permettant de contrôler la mise sous tension de
l'ordinateur et un certain nombre de voyants permettant de vérifier l'état de
marche de l'appareil et l'activité des disques durs.
 Sur la face arrière, le boîtier présente des ouvertures en vis-à-vis des cartes
d'extension et des interfaces d'entrée-sortie connectées sur la carte mère.
 Les éléments externes au boîtier centrale sont appelés périphériques. .
 Il est possible de connecter une grande diversité de périphériques sur les
interfaces d'entrée-sortie (ports séries, port parallèle, port USB, ) :
Imprimante, scanner, carte son externe, disque dur externe, Périphérique
de stockage externe.

H. AMIRY 02/11/2019 92
2. Les composants matériels de l'ordinateur: introduction
Carte mère

H. AMIRY 02/11/2019 93
2. Les composants matériels de l'ordinateur: Assemblage
1- Ouverture du boîtier 3- Installation du processeur et de l'ensemble
dissipateur thermique/ventilateur sur la carte mère

2- Installation de l'alimentation à l’intérieur du boitier 4- Installation de la mémoire vive sur la carte mère

H. AMIRY 02/11/2019 94
2. Les composants matériels de l'ordinateur: Assemblage
5- Installation de la carte mère à l’intérieur du boitier

6- Installation du disque dur à l’intérieur du boitier

H. AMIRY 02/11/2019 95
2. Les composants matériels de l'ordinateur: Assemblage
7- Installation du lecteur optique sur le boitier

8- Installation des cartes d’extension sur la carte mère

H. AMIRY 02/11/2019 96
2. Les composants matériels de l'ordinateur: Assemblage
9- Connexion de l'alimentation à la carte mère et les autres composants

10- Connexion des câbles de données internes

H. AMIRY 02/11/2019 97
2. Les composants matériels de l'ordinateur: Assemblage
11- Réassemblage du boîtier

12- Installation des câbles externes

H. AMIRY 02/11/2019 98
2. Les composants matériels de l'ordinateur: Le processeur
Présentation
Un processeur est un circuit intégré complexe caractérisé par une très grande intégration et doté des facultés
d'interprétation et d'exécution des instructions d'un programme.
 Il est chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit aussi prendre en
compte les informations extérieures au système et assurer leur traitement.
 C’est le cerveau du système. A l’heure actuelle, un processeur regroupe sur quelques millimètres carrés des
fonctionnalités toujours plus complexes.

H. AMIRY 02/11/2019 99
2. Les composants matériels de l'ordinateur: Le processeur
Architecture de base
Un processeur est constitué au minimum :
• d'une unité de commande qui coordonne le fonctionnement;
• d'une unité arithmétique et logique qui effectue les traitements;
• des registres qui permettent un stockage local.

H. AMIRY 02/11/2019 100


2. Les composants matériels de l'ordinateur: Le processeur
Schéma général du fonctionnement du CPU (central processing unit)

H. AMIRY 02/11/2019 101


2. Les composants matériels de l'ordinateur: Le processeur
Unité de commande (UC ou unité de contrôle)

 Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de l'instruction.
 Comme chaque instruction est codée sous forme binaire, elle en assure le décodage pour enfin réaliser son exécution puis
effectue la préparation de l'instruction suivante. Pour cela, elle est composée par :
• Le compteur de programme : (en anglais Program Counter PC) appelé aussi compteur ordinal (CO). Le CO est
constitué par un registre dont le contenu représente l’adresse de la prochaine instruction à exécuter. Il est donc initialisé
avec l'adresse de la première instruction du programme. Puis il sera incrémenté automatiquement pour pointer vers la
prochaine instruction à exécuter.
• Un registre d'instruction qui mémorise l'instruction en cours d'exécution.
• Un décodeur d'instruction qui reconnait l'instruction contenue dans le registre instruction (il indique au séquenceur la
séquence de micro-commandes à réaliser pour exécuter l'instruction).
• Un séquenceur qui fournit la suite de micro-commandes (chargement, décalage,...) nécessaires au déroulement de
l'instruction. Il organise l'exécution des instructions au rythme d’une horloge.

H. AMIRY 02/11/2019 102


2. Les composants matériels de l'ordinateur: Le processeur
Unité Aritmétique et logique (UAL)
Appelée aussi unité de calcul, UT (Unité de Traitement) ou ALU (Arithmetic and Logical Unit). Elle est composée de circuits
logiques tels que les additionneurs, soustracteurs, comparateurs logiques…etc., afin d’effectuer les calculs et les
opérations logiques des différents instructions à exécuter, les données à traiter se présentent aux entrées de l’UAL,
sont traités, puis le résultat est fourni en sortie et généralement stocké dans un registre dit accumulateur. Les
informations qui concernent l’opération sont envoyées vers le registre d’état.
Le schéma suivant montre l’UAL ainsi que ses entrées et ses sorties:

H. AMIRY 02/11/2019 103


2. Les composants matériels de l'ordinateur: Le processeur
Exemple d’exécution d'une instruction portant sur un opérande mémoire

Une instruction est l'opération élémentaire que le processeur peut accomplir. Les instructions sont

stockées dans la mémoire principale, en vue d'être traitée par le processeur. Une instruction est

composée de deux champs :

• le code opération, représentant l'action que le processeur doit accomplir ;

• le code opérande, définissant les paramètres de l'action. Le code opérande dépend de l'opération. Il

peut s'agir d'une donnée ou bien d'une adresse mémoire.

H. AMIRY 02/11/2019 104


2. Les composants matériels de l'ordinateur: Le processeur
Exemple d’exécution d'une instruction portant sur un opérande mémoire
1ère phase : recherche et décodage de l'instruction (cette première phase est valable pour tout type d'instruction).

H. AMIRY 02/11/2019 105


2. Les composants matériels de l'ordinateur: Le processeur
Exemple d’exécution d'une instruction portant sur un opérande mémoire

2ème phase: exécution de l'instruction

H. AMIRY 02/11/2019 106


2. Les composants matériels de l'ordinateur: Les mémoires
Présentation

 Une mémoire est un circuit à semi-conducteur permettant d’enregistrer, de conserver et de restituer des
informations (instructions et variables).
L’ordinateur, à travers diverses composants électroniques, est capable de stocker des informations. On
pourrait grossièrement comparer ce système au cerveau humain lorsque vous recevez une information (le nom
d'une chanson) et bien vous la "stocker" dans votre cerveau. Pour l'ordinateur c'est un peu le même principe, il
est capable de se souvenir et de récupérer ces informations et d'en stocker des nouvelles. Cependant, il existe
différent type de mémoire sur un ordinateur.

Disque Dur

H. AMIRY 02/11/2019 107


2. Les composants matériels de l'ordinateur: Les mémoires
Présentation
 Une mémoire peut être représentée comme une armoire de rangement constituée de différents
tiroirs. Chaque tiroir représente alors une case mémoire qui peut contenir un seul élément : des
données. Le nombre de cases mémoires pouvant être très élevé, il est alors nécessaire de
pouvoir les identifier par un numéro. Ce numéro est appelé adresse. Chaque donnée devient alors
accessible grâce à son adresse RAM
 Type d’accès au donnée une case mémoire:
• accès directe par adresse: on accède directement à n'importe quelle information dont on
connaît l'adresse et que le temps mis pour obtenir cette information ne dépend pas de
l'adresse.
• accès séquentiel :pour accéder à une information sur bande magnétique, il faut dérouler la
bande en repérant tous les enregistrements jusqu'à ce que l'on trouve celui que l'on désire.
On dit alors que l'accès à l'information est séquentiel. Le temps d'accès est variable selon la Disque
Dur
position de l'information recherchée.
• accès semi-séquentiel :combinaison des accès direct et séquentiel. Pour un disque
magnétique par exemple l'accès à la piste est direct, puis l'accès au secteur est séquentiel.

H. AMIRY 02/11/2019 108


2. Les composants matériels de l'ordinateur: Les mémoires
Caractéristiques
 Adresse : valeur numérique désignant un élément physique de mémoire (exemple adresse d'un mot).
 Capacité : (taille) nombre d'information que la mémoire peut contenir.
 Vitesse :
 Temps d'accès : temps de l’exécution d'une opération de lecture ou d’écriture:
– accès séquentiel : Le plus lent. Pour accéder à une information particulière, on est obligé de parcourir toutes
celles qui la précèdent.
– accès direct : les informations ont une adresse propre.
– accès semi-séquentiel : combinaison des accès direct et séquentiel
 Cycle mémoire : temps minimal entre 2 accès (plus long que le temps d’accès).
 Débit : nombre d'informations lues ou écrites par secondes.
 Volatilité: caractérisant l'aptitude d'une mémoire à conserver les données lorsqu'elle n'est plus alimentée
électriquement.
 Type d’opération :
 Mémoire vive : lecture / écriture
 Mémoire morte : lecture seulement

H. AMIRY 02/11/2019 109


2. Les composants matériels de l'ordinateur: Les mémoires
Différents types de mémoire

 Une mémoire vive (RAM: Random Access Memory) désigne une mémoire où chaque information stockée
peut en tout temps être consultée, ou modifiée.
 Une mémoire morte (ROM: Read Only Memory) est une mémoire où les informations ne peuvent pas être
modifiées(exp: BIOS).
 Une mémoire volatile est une mémoire où les informations sont perdues lors de la mise hors tension de
l'appareil.
 Une mémoire rémanente ou non volatile est une mémoire où les informations sont conservées même après
la mise hors tension de l'appareil.
 Une mémoire flash est une mémoire rémanente dont le contenu peut être intégralement effacé en une seule
opération. Les premières mémoires de ce type pouvaient être effacées par une exposition à l'ultraviolet.

H. AMIRY 02/11/2019 110


2. Les composants matériels de l'ordinateur: Les mémoires
Différents types de mémoire: Registre
 Plusieurs bistable en parallèle permettent de mémoriser plusieurs bits d'information. Ce sont des registres. Ils
sont utilises dans un processeur pour stocker des valeurs lors de l’exécution d'un programme.
 Un registre est une élément de mémoire ayant une fonction particulière.
 Très grande vitesse
 Très faible capacité (e.g., taille d'un mot mémoire)
 Volatile
 Généralement intègres dans le CPU
 Serve principalement au stockage des
opérandes et résultats intermédiaires.
 Type de registre: visible, invisible
 Exemples de registre : RA, RM, RI, CO, SP
 Taille des registres mot RM et adresse RA: La taille qu'il faut pour stocker un mot mémoire et la taille qu'il faut
pour stocker le nombre possible de mot mémoire
 n bits  2n possibilités (donc 2n mots) ;
 x possibilités  log2(x) = log2(2y ) = y bits.
Si la mémoire comporte 256 mots de 32 bits, le registre d'adresse doit avoir log2(256) = log2(28) = 8 bits tandis
que le registre mot doit avoir 32 bits.
H. AMIRY 02/11/2019 111
2. Les composants matériels de l'ordinateur: Les mémoires
Différents types de mémoire: Mémoire cache
La mémoire cache est utilisée comme mémoire tampon entre le CPU et la mémoire centrale :

 Grande vitesse

 Faible capacité

 Volatile

 Intégrée dans le processeur et cadencée a la même fréquence

 Accès par le contenu en utilisant l'adresse en mémoire centrale comme clé

 Divers niveaux de mémoire cache: Mémoire cache des microprocesseurs L1, L2 et L3

 Généralement de type SRAM, Le bit mémoire d'une RAM statique (SRAM) est composé d'une bascule.
Chaque bascule contient entre 4 et 6 transistors.

H. AMIRY 02/11/2019 112


2. Les composants matériels de l'ordinateur: Les mémoires
Différents types de mémoire: Mémoire centrale

La mémoire centrale est l'organe principal de rangement des informations utilisées par le CPU. Elle contient les
instructions et les données lors de l’exécution d'un programme :

 Vitesse moyenne

 Capacité moyenne

 Volatile

 Mémoire a semi-conducteurs

 Utilise des bistables comme point mémoire

 Mémoire a accès direct (Random Access Memory (RAM))

 SRAM, DRAM, …

H. AMIRY 02/11/2019 113


2. Les composants matériels de l'ordinateur: Les mémoires
Différents types de mémoire: Mémoire de masse (stockage)
Ce sont des mémoires utilisées pour le stockage permanent de
l'information, constituées de périphériques divers (disque dur, supports
optiques ou magnétiques, etc.)
• Vitesse lente
• Grande et très grande capacité
• Non volatile
• Mémoires a accès séquentiel et semi-séquentiel
• Les mémoires de masse sont utilisées pour la sauvegarde et
l'archivage de l'information
• Mémoire flash est une mémoire de masse à semi-conducteurs
réinscriptible de type EEPROM (mémoire morte effaçable
électriquement et programmable)

H. AMIRY 02/11/2019 114


2. Les composants matériels de l'ordinateur: Les mémoires
Les mémoires: Hiérarchie des mémoires
 Depuis le début des années 80, une des solutions utilisées pour masquer cette latence est de disposer une mémoire
très rapide entre le microprocesseur et la mémoire. Elle est appelée cache mémoire. On compense ainsi la faible
vitesse relative de la mémoire en permettant au microprocesseur d’acquérir les données à sa vitesse propre.
 Soit la donnée ou l’instruction requise est présente dans le cache et elle est alors envoyée directement au
microprocesseur.

 Soit la donnée ou l’instruction n’est pas dans le cache, et le contrôleur de cache envoie alors une requête à la mémoire
principale. Une fois l’information récupérée, il la renvoie au microprocesseur tout en la stockant dans le cache.

H. AMIRY 02/11/2019 115


2. Les composants matériels de l'ordinateur: Les mémoires
Les mémoires: Hiérarchie des mémoires

H. AMIRY 02/11/2019 116


2. Les composants matériels de l'ordinateur: Les mémoires
Les mémoires: Hiérarchie des mémoires

H. AMIRY 02/11/2019 117


2. Les composants matériels de l'ordinateur: Les périphériques E/S
Dispositifs matériels permettant d’assurer les échanges d’informations en entrée et en sortie entre l’ordinateur et
l’extérieur ou de stocker de manière permanente des informations.

H. AMIRY 02/11/2019 118


3. Les composants logiques de l'ordinateur (logiciels)

Système
d’exploitation

Utilitaires Utilisateurs
Gestion
de la
mémoire Gestion des Logiciels et
processus progiciels

Gestion
des données Gestion des
et des fichiers communications

Gestion des périphériques


Modem

Disque

Câble
réseau

Imprimante Ecran - Clavier

H. AMIRY 02/11/2019 119


3. Les composants logiques de l'ordinateur
Installation d’un système d'exploitation

• Configuration système
• Compatibilité matérielle et logicielle
• Stratégie de partitionnement de disque
• Formatage et Stratégie de système de fichiers
• Emplacement d’installation

H. AMIRY 02/11/2019 120


3. Les composants logiques de l'ordinateur
Installation des périphériques
• Connexion du périphérique à l'ordinateur.

• Chargement des pilotes de périphérique appropriés pour le périphérique.

• Configuration des propriétés et des paramètres du périphérique.

H. AMIRY 02/11/2019 121


4. Langage machine
Présentation

Le langage machine ou code machine est la suite de bits qui est interprétée par le processeur
de l’ordinateur lors de l’exécution d’un programme. C’est le langage natif du processeur, et le seul qui soit
reconnu par celui-ci. Chaque processeur possède son propre langage machine. Si un processeur A est
capable d’exécuter toutes les instructions du processeur B, on dit que A est compatible avec B. L’inverse
n’est pas forcément vrai, A peut avoir des instructions supplémentaires que B ne connaît pas.
Nous définissons un microprocesseur simplifié que nous appellerons MP0. Il saura exécuter des
programmes dans un langage machine, également simplifié, appelé LM0. MP0 ne possède que des
registres huit bits (c’est bien trop peu pour un vrai microprocesseur). Il ne peut donc que manipuler des
octets et accéder à des adresses de 0 à 255.

H. AMIRY 02/11/2019 122


4. Langage machine
Les registres de MP0
• Un compteur ordinal (CO) : contient l’adresse de la prochaine instruction à exécuter.
• Un registre d’état (SR) qui contient les bits Z et N.
 Quand Z = 1, cela signifie que la dernière instruction a produit un résultat égal à zéro.
 Quand N = 1, cela signifie que la dernière instruction a produit un résultat négatif.
• Deux registres de données D0 et D1 qui stockent chacun un octet à traiter ;
• Deux registres d’adresse A0 et A1 qui stockent chacun une adresse pour accéder à des octets de la
RAM ;
• Un pointeur de pile PP : registre d’adresse réservé pour la pile. Un pointeur est une zone mémoire
contenant comme valeur une adresse.

H. AMIRY 02/11/2019 123


4. Langage machine
Format numérique des instructions
• Chaque instruction de LM0 est codée sur 2 octets :
 Premier octet : code le type de l’opération et le type de son ou ses opérandes (les valeurs).
 Second octet : peut être utilisé pour coder une valeur associée à une opérande.
• Par exemple, “ mettre la valeur 23 dans D0 ”
 Premier octet : 121 qui code l’instruction “ mettre la valeur [octet suivant] dans D0 ” ;
 Second octet : 23 (la valeur à mettre dans D0).
• S’il n’y a pas de valeur à associer à une opérande, alors le second octet est égal à 0 ;
• Par exemple, “ mettre la valeur de D0 dans D1 ”
 Premier octet : 248 qui code l’instruction “ mettre la valeur de D0 dans D1 ” ;
 Second octet : 0.

H. AMIRY 02/11/2019 124


4. Langage machine
Format symbolique des instructions
• Comme il n’est pas pratique de désigner une instruction du langage machine par son numéro, on lui

attribuera un nom et une syntaxe.

• On écrira chaque instruction sous forme symbolique (c’est-à-dire en langage assembleur).

• Par exemple, MOVE (transfert), ADD (addition), SUB (soustraction), JMP (saut), etc.

• On ajoutera l’opérande après le nom symbolique. Par exemple, JMP #120. S’il y a deux opérandes,

on les séparera avec une virgule. Par exemple, MOVE #100, D0.

H. AMIRY 02/11/2019 125


4. Langage machine
Par adressage on entend la façon de coder l’accès aux donnés manipulées par le processeur. Les instructions
de LM0 ne permettent de désigner qu’une seule opérande au maximum grâce à un numéro, l’autre opérande
devant se référer à un registre. Il existe trois modes d’adressage :
Adressage immédiat
• Si on connait la valeur que l’on veut traiter, on peut la spécifier explicitement
• La valeur désignée est stockée dans le second octet de l’instruction
• Syntaxe : on préfixe la valeur avec le caractère dièse “ # ” ;
• Par exemple : “ MOVE #3, D0 ” place la valeur 3 dans le registre D0. Code correspondant : 1er octet : “
MOVE # ?, D0”, 2e octet : “ 3 ”.

H. AMIRY 02/11/2019 126


4. Langage machine
Par adressage on entend la façon de coder l’accès aux donnés manipulées par le processeur. Les instructions
de LM0 ne permettent de désigner qu’une seule opérande au maximum grâce à un numéro, l’autre opérande
devant se référer à un registre. Il existe trois modes d’adressage :
Adressage immédiat
• Si on connait la valeur que l’on veut traiter, on peut la spécifier explicitement
• La valeur désignée est stockée dans le second octet de l’instruction
• Syntaxe : on préfixe la valeur avec le caractère dièse “ # ”
• Par exemple : “ MOVE #3, D0 ” place la valeur 3 dans le registre D0. Code correspondant : 1er octet : “
MOVE # ?, D0”, 2e octet : “ 3 ”.
Adressage direct
• L’adressage direct est l’accès à une valeur située à une adresse dont on spécifie le numéro
• Syntaxe : on écrit simplement adresse (et rien d’autre)
• Par exemple : “ MOVE 100, D0 ” place la valeur située à l’adresse 100 dans le registre D0. Code
correspondant : 1er octet : “ MOVE ?, D0 ”, 2e octet : “ 100 ”.
H. AMIRY 02/11/2019 127
4. Langage machine
Adressage indirect
• L’adressage indirect est l’accès à une valeur située à une adresse mémorisée dans un registre
d’adresse ;
• Syntaxe : on spécifie le registre d’adresse entre parenthèses
• Par exemple : “ MOVE (A1), D1 ” place la valeur située à l’adresse contenue dans le registre
d’adresse A1 dans le registre D1. Code correspondant : 1er octet : “ MOVE (A1), D1 ”, 2e octet : “
0 ”.
Types d’instructions
On peut regrouper l’ensemble des instructions en trois groupes :
• les instructions de transfert telles que MOVE, PSH, POP
• les opérations arithmétiques et logiques ADD, SUB, MUL, DIV, NOT, AND, OR, ...
• les instructions de saut comme JMP, JEQ, JSR, ...

H. AMIRY 02/11/2019 128


4. Langage machine

• L’instruction MOVE permet de transférer un octet d’un emplacement (registre ou case mémoire) à
un autre
• Syntaxe : MOVE source, destination. Attention, “ source ” ou “ destination ” est nécessairement un
registre parmi D0, D1, A0, A1
• Par exemple :
 MOVE #10, A1 (on place la valeur - représentant une adresse - 10 dans le registre A1)
 MOVE D0, 123 (on place la valeur contenue dans D0 à l’adresse 123)
 MOVE (A0), (A1) (on place la valeur se situant l’adresse contenue dans A0 dans la case
mémoire dont l’adresse est contenue dans A1)
 MOVE #10,110 n’est pas valide. On doit faire MOVE #10,D0 puis MOVE D0,110.

H. AMIRY 02/11/2019 129


4. Langage machine
Instructions de transfert
• L’instruction MOVE permet de transférer un octet d’un emplacement (registre ou case mémoire) à
un autre
• Syntaxe : MOVE source, destination. Attention, “ source ” ou “ destination ” est nécessairement un
registre parmi D0, D1, A0, A1
• Par exemple :
 MOVE #10, A1 (on place la valeur - représentant une adresse - 10 dans le registre A1)
 MOVE D0, 123 (on place la valeur contenue dans D0 à l’adresse 123)
 MOVE (A0), (A1) (on place la valeur se situant l’adresse contenue dans A0 dans la case
mémoire dont l’adresse est contenue dans A1)
 MOVE #10,110 n’est pas valide. On doit faire MOVE #10,D0 puis MOVE D0,110.
 De plus : si la valeur transférée est nulle, le bit Z du registre d’état passe à 1 ; si la valeur
transférée est négative, le bit N du registre d’état passe à 1.
H. AMIRY 02/11/2019 130
4. Langage machine
Instructions de transfert

• Les instructions PSH et POP respectivement empile et dépile un octet grâce au registre PP
• L’instruction PSH décrémente PP et place la valeur de l’opérande à l’adresse pointée par PP.
• Ainsi l’instruction PSH source est équivalent à la séquence d’instructions MOVE source, (PP) puis
SUB #1, PP
• L’instruction POP place la valeur pointée par PP dans l’opérande et incrémente PP.
• Ainsi l’instruction POP dest est équivalent à la séquence d’instructions ADD #1, PP puis MOVE (PP),
dest

H. AMIRY 02/11/2019 131


4. Langage machine
Opérations arithmétiques et logiques

Les opérations arithmétiques et logiques permettent d’effectuer les calculs élémentaires (addition,
soustraction, multiplication, etc.) ainsi que l’évaluation des conditions booléennes (conjonction,
disjonction, négation, test de comparaison, etc.). Les opérations arithmétiques et logiques permettent
la modification de la valeur de l’unique opérande ou bien le calcul d’une valeur à partir de deux
opérandes. Dans le langage simplifié LM0, le résultat du calcul remplace la valeur de la deuxième
opérande. Par exemple, “ ADD D0, D1 ” effectue la somme (“ ADD ” pour “ addition ”) des valeurs de
D0 et D1, et place le résultat dans D1. Le résultat d’une opération affecte les bits Z et N du registre
d’état de la façon habituelle (i.e., Z prend la valeur 1 si le résultat de l’opération est nul, et N prend la
valeur 1 si le résultat de l’opération est négatif).

H. AMIRY 02/11/2019 132


4. Langage machine
Opérations arithmétiques et logiques

• L’addition : ADD source, destination. On effectue l’addition de source et de destination, et le résultat est placé
dans destination
• La soustraction : SUB source, destination. On soustrait source à destination, le résultat est placé dans
destination
• La multiplication : MUL source, destination. La valeur de “ destination × source ” est placée dans destination
• La division entière : DIV source, destination. On effectue la division entière de destination par source,
destination prend alors comme valeur le résultat de ce calcul
• Exemples : SUB #3, D0 : si D0 contenait 5, D0 passe à 2 ; DIV #5, D0 : si D0 contenait 18, D0 passe à 3.
• La destination doit être un registre car on va y stocker une valeur

H. AMIRY 02/11/2019 133


4. Langage machine
Opérations arithmétiques et logiques

Les opérations logiques sont des opérations binaires : on travaille donc directement sur les
représentations binaires.
• La négation : NOT destination. Cette opération transforme le contenu de destination en substituant
chaque bit à 0 de destination en un bit à 1, et réciproquement pour les bits à 1. Le résultat final est
stocké dans destination. Par exemple, “ NOT D0 ” : si D0 contenait 55, D0 passe à 200.
• La conjonction : AND source, destination. Cette opération réalise la conjonction bits-à-bits selon la
règle “ 0 AND x = x AND 0 = 0 ” quel que soit la valeur du bit x, et “ 1 AND 1 = 1 ”. Par exemple, “
AND #179, D0 ” : si D0 contenait 241, D0 passe à 177.
• La disjonction : OR source, destination. Cette opération réalise la disjonction bits-à-bits selon la
règle “ 1 OR x = x OR 1 = 1 ” quel que soit la valeur du bit x, et “ 0 OR 0 = 0 ”. Par exemple, “ OR
#179, D0 ” : si D0 contenait 241, D0 passe à 243.

H. AMIRY 02/11/2019 134


4. Langage machine
Opérations arithmétiques et logiques

• Instruction de comparaison : CMP source, destination. Cette instruction effectue le même


traitement que l’instruction SUB mais ne modifie pas la deuxième opérande
• Par contre, elle modifie les bits Z et N du registre d’état
• Par exemple, “ CMP #3, D0 ” Z passe à 1 si D0 contient 3 (et Z passe à 0 sinon)
• N passe à 1 si D0 contient une valeur < 3 (et N passe à 0 sinon)
• Cette instruction s’utilise en préparation d’une instruction de saut conditionnel, que l’on verra plus
tard, dont l’exécution dépend de Z et de N.

H. AMIRY 02/11/2019 135


4. Langage machine
Exemple d’une instruction

L’instruction suivante

“x=3*y+5;”

se simule en LM0 ainsi : (x : adresse 100, y : adresse 101)

MOVE 101, D0

MUL #3, D0

ADD #5, D0

MOVE D0, 100

H. AMIRY 02/11/2019 136


H. AMIRY 02/11/2019 137