You are on page 1of 43

Architecture des ordinateurs

MR Radouane CHAHIN

Année Académique 2014-2015


2
Plan du cours
1- Introduction
2- Représentation de l’information
- Représentation des caractères
- Représentation des entiers
- Représentation des réels
- Entiers relatifs
- Représentation des données alphanumériques
3- Les composantes de l’ordinateur
- Le modèle de Von Neumann
- L’unité centrale
- Opérations logiques - Algèbre de Boole
- Circuit logique (combinatoire, séquentiel)
- Les mémoires
- La hiérarchie mémoire
4- Architecture logicielle du processeur
- Modèle d’exécution
- Format des instructions
- Instructions arithmétiques et logiques
- Instructions d’accès mémoire
- Instructions de comparaison
- Instructions de saut et de branchement

3
Introduction
But de cours:
1 Décrire l'organisation interne des ordinateurs et son évolution.
2 Modéliser le fonctionnement des ordinateurs.
3 Représenter des données alphanumériques.
4 Modéliser le calcul arithmétique et logique.
5 Ecrire un petit programme en langage assembleur.
6 Appréhender les principes généraux sous-jacents a la programmation.

4
Introduction:Définitions
Ordinateur
Une machine de traitement de l'information (acquérir, conserver, traiter
et restituer).
Type d'information & représentation
Valeurs numériques, textes, images, son, vidéos représentés sous forme
de données numériques(Des 0 et des 1 ).
Informatique
Science du traitement de l'information.
Système informatique
Ensemble des moyens logiciels & matériels nécessaires pour satisfaire les
besoins informatiques des utilisateurs.

5
Qu’est-ce qu’un ordinateur ?
• « Machine automatique de traitement de l’information
obéissant à des programmes formés par des suites
d’opérations arithmétiques et logiques » (Larousse 2002)
• Différents niveaux d’approche : utilisateur, programmeur
machine, concepteur de circuits logiques …

6
Qu’est ce qu’un microprocesseur ?
• Un microprocesseur est un circuit intégré complexe. Il
résulte de l’intégration sur une puce de fonctions logiques
combinatoires (logiques et/ou arithmétique) et
séquentielles (registres, compteur, etc…). Il est capable
d'interpréter et d'exécuter les instructions d'un
programme. Son domaine d’utilisation est donc presque
illimité.

7
Où trouve-t-on des systèmes à
microprocesseur ?
• Les applications des systèmes à microprocesseurs sont
multiples et variées :
Ordinateur, PDA, console de jeux, calculatrice, télévision,
téléphone portable, distributeur automatique d’argent,
robotique, lecteur carte à puce, code barre, automobile,
instrumentation, etc…

8
Introduction: Utilisation des ordinateurs
Programme
Suite d'instructions dans un langage donnée, définissant un traitement exécutable
par un ordinateur
• programmes systèmes
• programmes d'application
Système d'exploitation
Programme système qui gère les différentes ressources de la machine
Programmation
A partir d'un problème donne, réaliser un programme dont l‘exécution apporte une
solution satisfaisante au problème pose
• langages de programmation (machine, assembleur, évolues)

9
Evolution schématique des langages

10
De quoi allons-nous parler et quel chemin
allons nous suivre ?

11
Représentation de l’information

Objectifs du chapitre
1 Comprendre le principes des codages binaires.
2 Représenter des nombres entiers dans diverses représentations classiques (vas, C1, C2).
3 Représenter des nombres réels en IEEE 754
4 Comprendre le lien entre représentation des nombres et calcul arithmétique
5 Représenter des données alphanumériques ASCII, UNCODE (UTF8,UTF16,UTF32)
5

12
Représentation de l’information
Différents types d'informations
• 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.

13
Système binaire
• Binaire: 0, 1
• Décimal: 0, 1, …, 9
• Octal: 0, 1, …, 7
• Hexadécimal: 0, 1, …, 9, A, B, C, D, E, F
• E.g. Binaire-Décimal-Hexadécimal
0000 = 0 = 0 0101 = 5 =5 1010 = 10 = A

14
Valeur numérique binaire
• Un nombre qui s'exprime en base B par les quatre chiffres
1101 s'analyse :

qui donne :
• 1101 en base B = 10 :
1*103 + 1*102 + 0*101 + 1*100 = 1101
• 1101 en base B = 8 :
1*83 + 1*82 + 0*81 + 1*80 = 577
• 1101 en base B = 2 :
1*23 + 1*22 + 0*21 + 1*20 = 13

15
Conversion
• Binaire décimal:
10010=1*24 + 0*23 + 0*22 + 1*21 + 0*20 = 18
• Décimal  binaire

• Binaire  octal ou hexadécimale

16
Un autre exemple
• Convertissons 010011012 en décimal à
l'aide du schéma ci-dessous:

27 26 25 24 23 22 21 20

0 1 0 0 1 1 0 1

• Le nombre en base 10 est


26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = 77.

17
Dans le sens inverse
• De décimal en binaire: 7710

• Résultat = 10011012

18
Valeurs: comparaison
• Comparer dans l’ordre de gauche à droite
• Si à une position, ai<bi, alors a<b

19
Valeurs: addition
• 60+17 en base 2
111 1 1 0 0
+ 0 1 0 0 0 1

1 0 0 1 1 0 1
• => 77
• 25 + 24 + 23 + 22 = 32 +16 + 8 + 4 = 60
• 24 + 20 = 16 + 1= 17
• 26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = 77

20
Valeurs: soustraction
• 8-1 en base 2
1 10 10 10
- 01 01 01 1
0 1 1 1

• => 7
• 23 = 8
• 20 = 1
• 22 + 21 + 20 = 4 + 2 + 1 = 7

21
Valeurs: 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
• 22 + 20 = 4+ 1= 5
• 25 + 21 + 20 = 32+ 2+ 1 = 35

22
Valeurs: division

• 37/5 en base 2
100101
/ 101
000111
• => 7

• 25 + 22 +21 + 20 = 32+ 2+ 1 = 37
• 22 + 20 = 4+ 1= 5
• 22 + 21 + 20 = 4 + 2 + 1 = 7
23
Valeurs: négatives

24
Exemples

Négative:
On inverse,
et puis
ajoute 1.

25
Addition et soustraction

26
Dépassement à éviter

27
Capacité de représentation
• Valeur entière avec 8 bits
• Valeur positive max:
000000002  011111112 = 0  25510
• Valeur négative max (complément à 2):
100000002  111111112 = -256  -110

• Capacité de representation=
Pour les valeurs positifs: [0, 2 nombre bits -1]
Pour negatives (complément à 2):
[-(2 nombre bits)/2, -1+(2 nombre bits)/2]

28
Comment représenter des valeurs réel
• Virgule fixe

• E.g. avec 3 bits

29
Conversion chiffre réel décimale Binaire
• Exemple 77,75 avec e.g. n=8 et m=2
• Pour la partie entier il faut faire une diversion successive des quottions 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 restes par 2 puis écrire les
quottions en commençant par le premier
• 0,75*2=1,5 après 0,5*2=1 on binaire 0,11 (1*2 -1 +1*2 -2 =0,5 + 0,25 = 0,75)
• Résultat = 01001101 112
• Exemple 0,4 avec e.g. n=1 et m=4
• 0,4*2=0,8 après 0,8*2 =1,6 après 0,6*2=1,2 après 0,2*2=0,4 on a 4 chiffre après la virgule on
(tronque) arrêt le calcule (le résultat est approximatif).
on binaire 0,0110 (0*2 -1 +1*2 -2 + 1*2 -3 + 0*2 -4 = 0,25+0,125=0,375)

30
Valeurs: réel
Pour n et m (virgule fixe)
fixes, e.g. n=4 et m=0:

• Pour d’autres n et m fixes, même opération, mais


différentes interprétations

31
Valeurs: réel (virgule flottant)
• virgule flottante : la position de la virgule n'est pas fixe. Ces
nombres sont des approximations de nombres réels.
0,23643 * 103 = 236,43
• L’exposant et la mantisse peut etre signé.

32
Valeurs: réel (virgule
Codage de l'exposant
flottant)
• Taille de l'exposant bornée.
• Codage par excèdent n : on décale l'exposant on lui ajoutant n.
=> Pas d'exposant négatifs
=> Facilite les opérations de tri (pas besoin de conversion au décimal pour
trier)
• Exemple , sur 3 bits, excèdent a 4 :
+3 111
+2 110
+1 101
0 100
-1 011
-2 010
-3 001
-4 000
• Si la taille de l'exposant augmente alors l'intervalle des valeurs possibles
représentables grandit.

33
Valeurs: réel (virgule flottant)
Codage de la mantisse
• Taille de la mantisse bornée.
• Changement de base (décimal binaire) obtenu par multiplications successives par 2.
• Si cela ne converge pas vers 1 alors il n'y a pas de représentation exacte de ce nombre, on
tronque alors suivant la taille de la mantisse.
• Si la taille de la mantisse augmente, la précision des valeurs possibles représentables grandit.

34
Valeurs: réel (virgule flottant: Norme
IEEE 754)

35
Valeurs: réel (virgule flottant: Norme
IEEE 754)
• Exemples

36
Encoder des lettres ASCII (7 bits)
Binary Oct Dec Hex Glyph
010 0000040 32 20
010 0001041 33 21 !
010 0010042 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 0001101 65 41 A
100 0010102 66 42 B

110 0001 141 97 61 a
110 0010 142 98 62 b
110 0011 143 99 63 c

37
Un “texte” en ASCII
Cher ami,
67 104 101 114 32 97 109 105 44 (en décimal)

38
Un “texte” en UNICODE UTF-8 =ASCI
Cher ami,
67 104 101 114 32 97 109 105 44 (en décimal)

• UTF-8 ASCII
• UTF-16
• UTF-32

• Il faut différencier entre


• 12 =(12)10=(001100)2
• "12" ou '12'= (49 50) 10
=(00110001 00110010)2

39
Encodage de l'information 1/2
• Objectif
Utilisation des codes pour représenter l'information afin de résoudre 3 types de problèmes :
• Assurer l‘ intégrité de l'information (détection et correction d'erreurs)
• Codes autovérificateurs (contrôle de parité ou somme de contrôle ), exemple code ASCII :
7 bits étaient utilisés le bit 8 bits est la somme de nombre de 1 dans le code.
• Codes autocorrecteurs (double parité(2 bit ligne et colonne), hamming, codes
polynomiaux).
• Minimiser la taille de l'information (compression), (Codage de Huffman)
• Garantir la sécurité de l'information (encryptage/chiffrement).

40
Encodage de l'information 2/2
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

41
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

2 (sur processeur 16 bits) -32 768 à 32 767


int Entier
4 (sur processeur 32 bits) -2 147 483 648 à 2 147 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

long int Entier long 4 -2 147 483 648 à 2 147 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

42
Récapitulatif des différentes représentations
relatives aux données

43