Vous êtes sur la page 1sur 100

Ecole Nationale des Sciences Appliquées de Tétouan

Architecture des ordinateurs

Pr. Oussama ELHAJJAMY


Email : oelhajjamy@uae.ac.ma
2022/2023

09/06/2019 Oussama ELHAJJAMY 1


Descriptif du cours :

• Etudier les différents composants d’un ordinateur et leurs


rôles.
• Comprendre le fonctionnement global d'un ordinateur et de
ses composants.
• Comprendre la communication entre les différentes parties
matérielles et logicielles d'un ordinateur.

Oussama ELHAJJAMY 2
Objectifs du cours :

• Comprendre l’architecture et le fonctionnement d’un micro-


processeur.
• Distinguer les différents types de mémoires et leur
fonctionnement.
• Comprendre le rôle, les différents types et le fonctionnement
des bus dans un ordinateur.
• Présenter les différents périphériques dans un ordinateur et
leur fonctionnement.
• Manipuler les systèmes de numération et de codage dans un
ordinateur.

Oussama ELHAJJAMY 3
Objectifs du module :

CHAPITRE I : Architecture de base d’un ordinateur


• Introduction
• Blocs fonctionnels
• Structure d'un ordinateur
• Composants d’un ordinateur
 L’unité centrale de traitement (CPU)
 Les mémoires
 Les bus
 Chipset
 Unité d’échange d’ E/S
• Partie Système
 Système d’exploitation
 Langages informatiques
 Assembleurs
 Langages haut niveau

Oussama ELHAJJAMY 4
Objectifs du module :

CHAPITRE II : Représentation des données


1. Introduction
2. Les systèmes de numération
3. Les bases de numération
4. Conversion entre les bases
5. Codage des nombres
6. Codage des caractères

Oussama ELHAJJAMY 5
CHAPITRE I
Architecture de base d’un ordinateur
Architecture de base d’un ordinateur

• Introduction

Informatique : information + automatique


 traitement automatique de l’information par des machines

On fait souvent le raccourci informatique = Ordinateur … mais


« l’informatique » remonte à bien plus loin que l’ordinateur.

09/06/2019 Oussama ELHAJJAMY 7


Architecture de base d’un ordinateur

• Introduction

Architecture des ordinateurs : domaine de l’informatique centré sur les


machines.
 point de vue à la fois matériel et logiciel

Ordinateur : un appareil, une machine qui permet de réaliser, d’exécuter des


opérations, des calculs, c’est un calculateur.

Remarque : un ordinateur n’est pas intelligent, il est rapide, très rapide …


c’est tout.

09/06/2019 Oussama ELHAJJAMY 8


Architecture de base d’un ordinateur

• Blocs fonctionnels

09/06/2019 Oussama ELHAJJAMY 9


Architecture de base d’un ordinateur

• Structure d'un ordinateur

L’organisation matérielle des ordinateurs usuels suit l’architecture de Von


Neuman , son originalité est de stocker les données el les instructions dans la
même mémoire

09/06/2019 Oussama ELHAJJAMY 10


Architecture de base d’un ordinateur

• Structure d'un ordinateur

09/06/2019 Oussama ELHAJJAMY 11


Architecture de base d’un ordinateur

• Composants d’un ordinateur : L’unité centrale de traitement (CPU)

Le processeur est composé de deux parties :


 L’unité de contrôle
 L’unité de traitement

processeur

09/06/2019 Oussama ELHAJJAMY 12


Architecture de base d’un ordinateur

• Composants d’un ordinateur : L’unité centrale de traitement (CPU)


L’unité de commande : qui coordonne le fonctionnement des autres
éléments pour exécuter la séquence d’instructions constituant le programme.
Constitué :
 Registre d’adresse : contient l’adresse de la donnée a lire ou à écrire en
mémoire.
 Registres de données : contient temporairement la donnée lue ou à écrire
en mémoire.
 Séquenceur : déclenche et coordonne les différentes opérations pour
réaliser l’instruction
 Horloge : qui permet la synchronisation des éléments et des événements
 Compteur programme : permet d’orchestrer l’exécution des instructions
 Registre d’instruction : permet de stocker l’instruction qui doit être
exécutée

09/06/2019 Oussama ELHAJJAMY 13


Architecture de base d’un ordinateur

• Composants d’un ordinateur : L’unité centrale de traitement (CPU)

L’unité de traitement : regroupe les circuits qui assurent les traitements


nécessaires à l’exécution des instructions. Constitué :
 L’unité Arithmétique et logique (UAL) : 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.
 L’unité de calcul en virgule flottante : spécialement conçu pour effectuer
des opérations sur des nombres à virgule flottante
 L’unité multimédia : est chargée d’accélérer l’exécution des programmes
multimédia comportant des vidéos, du son, graphisme en 3D etc.

09/06/2019 Oussama ELHAJJAMY 14


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Mémoire Centrale

 Permet de stocker des informations (instructions et données) au moment


de l’exécution.
 Correspond à un ensemble fini de cellule.
 Une case mémoire (cellule) contient une donnée ou une instruction.
 Elle est composée d’une suite de mots (mémoire) qui sont des suites de
bits de taille fixe.
 chaque mot mémoire est identifié par son adresse qui est un code binaire.

09/06/2019 Oussama ELHAJJAMY 15


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Mémoire Centrale

Exemple : Mémoire de 16 mots de deux octets chacun avec des adresses de 0


à 15 codées sur quatre bits.

09/06/2019 Oussama ELHAJJAMY 16


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Types de mémoires

Mémoire vive, généralement appelée RAM (Random Access Memory,


traduisez mémoire à accès direct), est la mémoire principale du système,
c'est-à-dire qu'il s'agit d'un espace permettant de stocker de manière
temporaire des données lors de l'exécution d'un programme

Mémoire morte, appelée ROM pour Read Only Memory (traduisez mémoire
en lecture seule) est un type de mémoire permettant de conserver les
informations qui y sont contenues même lorsque la mémoire n'est plus
alimentée électriquement. A la base ce type de mémoire ne peut être
accédée qu'en lecture. Toutefois il est désormais possible d'enregistrer des
informations dans certaines mémoires de type ROM.

09/06/2019 Oussama ELHAJJAMY 17


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Types de mémoires

Mémoire de masse (appelée également mémoire physique ou mémoire


externe) permettant de stocker des informations à long terme, y compris lors
de l'arrêt de l'ordinateur. La mémoire de masse correspond aux dispositifs de
stockage magnétiques, tels que le disque dur, aux dispositifs de stockage
optique, correspondant par exemple aux CD-ROM ou aux DVD-ROM, ainsi
qu'aux mémoires mortes.

Mémoire flash est un compromis entre les mémoires de type RAM et les
mémoires mortes. En effet, la mémoire Flash possède la non-volatilité des
mémoires mortes tout en pouvant facilement être accessible en lecture ou en
écriture. En contrepartie les temps d'accès des mémoires flash sont plus
importants que ceux de la mémoire vive.

09/06/2019 Oussama ELHAJJAMY 18


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Types de mémoires

Mémoire Cache : est une mémoire plus rapide et plus proche du matériel
informatique (processeur, disque dur) auquel elle sert des données et des
instructions. Son rôle est de stocker les informations les plus fréquemment
utilisées par les logiciels et applications lorsqu'ils sont actifs.

09/06/2019 Oussama ELHAJJAMY 19


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Types de mémoires

La mémoire cache est organisée en trois niveaux :


 La mémoire cache de niveau 1 ou L1 intégrée au processeur, très rapide
mais petite en capacité de stockage.
 La mémoire cache de niveau 2 ou L2 dont la capacité est plus importante
que la L1 et qui peut être intégrée soit au processeur, soit sur la carte-mère
avec une liaison haute vitesse par bus informatique vers le processeur
central.
 La mémoire cache de niveau 3 ou L3, moins rapide que les précédentes
mais dotée d'une capacité plus élevée. En général, elle sert à améliorer les
performances des L1 et L2, notamment dans les processeurs à architecture
multicœur. Chaque cœur est doté de ses propres mémoires cache L1 et L2
tandis que la L3 est mise en commun.

09/06/2019 Oussama ELHAJJAMY 20


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Types de mémoires

Les principales caractéristiques d'une mémoire sont les suivantes :


 La capacité, représentant le volume global d'informations (en bits) que la
mémoire peut stocker ;
 Le temps d'accès, correspondant à l'intervalle de temps entre la demande
de lecture/écriture et la disponibilité de la donnée ;
 Le temps de cycle, représentant l'intervalle de temps minimum entre
deux accès successifs ;
 Le débit, définissant le volume d'information échangé par unité de temps,
exprimé en bits par seconde ;
 La non volatilité caractérisant l'aptitude d'une mémoire à conserver les
données lorsqu'elle n'est plus alimentée électriquement.

09/06/2019 Oussama ELHAJJAMY 21


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Les bus

Ensembles de fils pour établir des connexions entre les unités fonctionnelles.
Ils représentent le chemin utilisé par les informations pour aller d’une unité à
l’autre

09/06/2019 Oussama ELHAJJAMY 22


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Chipset

Son rôle est de gérer des flux de données numériques entre le


microprocesseur et les divers composants et sous ensembles de composants
de la carte mère, bus informatique, RAM, disque dur etc.

09/06/2019 Oussama ELHAJJAMY 23


Architecture de base d’un ordinateur

• Composants d’un ordinateur : Unité d’échange d’ E/S

On appelle entrées-sorties les échanges d'informations entre le processeur et


les périphériques qui lui sont associés.

Dans un système d'exploitation :


 Les entrées sont les données envoyées par un périphérique (disque,
clavier, capteur…) à destination de l'unité centrale.
 Les sorties sont les données émises par l'unité centrale à destination d'un
périphérique (disque, écran, imprimante …).

09/06/2019 Oussama ELHAJJAMY 24


Architecture de base d’un ordinateur

• Partie Système

Un ordinateur possède une partie logicielle (software). Cette partie contient


des programmes, applications et données. On peut diviser cette partie en trois
grandes catégories :
 Systèmes de base : ce sont les systèmes d'exploitation comme Windows,
Linux, Mac OS, etc.
 Langages informatiques : à fin de créer des applications et des logicielles
(C/C++, Java, Pascal, Matlab, etc.).
 Logiciels d'application : sont choisis par l’utilisateur pour répondre à ses
propres besoins ou faire des traitements particuliers. Exemple : MSOffice
(Word, Excel, PowerPoint, etc.), PhotoShop, Auto CAD, Jeux, etc.

09/06/2019 Oussama ELHAJJAMY 25


Architecture de base d’un ordinateur

• Partie Système : Système d’exploitation

Ensemble de programmes qui gèrent le matériel et contrôlent les applications


 Gestion des périphériques (affichage à l'écran, lecture du clavier, pilotage
d’une imprimante, …)
 Gestion des utilisateurs et de leurs données (comptes, partage des
ressources, gestion des fichiers et répertoires, …)
 Interface avec l’utilisateur (textuelle ou graphique): Interprétation des
commandes
 Contrôle des programmes (découpage en taches, partage du temps
processeur, …)

09/06/2019 Oussama ELHAJJAMY 26


Architecture de base d’un ordinateur

• Partie Système : Langages informatiques

Un langage informatique est un outil permettant de donner des ordres


(instructions) à la machine
• A chaque instruction correspond une action du processeur

Intérêt : écrire des programmes (suite consécutive d’instructions) destinés à


effectuer une tache donnée
• Exemple: un programme de gestion de comptes bancaires

Contrainte: être compréhensible par la machine.

09/06/2019 Oussama ELHAJJAMY 27


Architecture de base d’un ordinateur

• Partie Système : Assembleurs

• Problème: le langage machine est difficile à comprendre par l'humain

• Idée: trouver un langage compréhensible par l'homme qui sera ensuite


converti en langage machine
– Assembleur (1er langage): exprimer les instructions élémentaires de
façon symbolique
ADD A, 4
traducteur langage machine
LOAD B
MOV A, OUT

– +: déjà plus accessible que le langage machine
– -: dépend du type de la machine (n’est pas portable)
– -: pas assez efficace pour développer des applications complexes
 Apparition des langages évolués

09/06/2019 Oussama ELHAJJAMY 28


Architecture de base d’un ordinateur

• Partie Système : Langages haut niveau

Intérêts multiples pour le haut niveau:


 proche du langage humain «anglais» (compréhensible)
 permet une plus grande portabilité (indépendant du matériel)
 Manipulation de données et d’expressions complexes (réels, objets, a*b/c, …)
 Nécessité d’un traducteur (compilateur/interpréteur), exécution plus ou moins
lente selon le traducteur

09/06/2019 Oussama ELHAJJAMY 29


Architecture de base d’un ordinateur

• Partie Système : Langages haut niveau

Intérêts multiples pour le haut niveau:


 proche du langage humain «anglais» (compréhensible)
 permet une plus grande portabilité (indépendant du matériel)
 Manipulation de données et d’expressions complexes (réels, objets, a*b/c, …)
 Nécessité d’un traducteur (compilateur/interpréteur), exécution plus ou moins
lente selon le traducteur

Code source Compilateur ou


Langage machine
en langage évolué interpréteur

09/06/2019 Oussama ELHAJJAMY 30


CHAPITRE II
Représentation des données
Représentation des données

• Introduction

 Les informations traitées par un ordinateur peuvent être de différents


types (texte, nombres, etc.)
 Pour autant, elles sont toujours représentées et manipulées par
l’ordinateur sous forme binaire.
 Architecture utilisant l’absence ou la présence de courant (tubes ou
transistors)
 Toute information sera traitée comme une suite de 0 et de 1.
 L’unité d’information est le chiffre binaire (0 ou 1), que l’on appelle bit

09/06/2019 Oussama ELHAJJAMY 32


Représentation des données

• Introduction (où se situe la couche numérique?)

Langage de programmation Traducteurs/Compilateur

Assembleur Langage d’assemblage

Logique et
Codeurs/décodeurs numérique
OS

Ordonnanceur Jeux d’instructions

Unité de calcul Exécution

09/06/2019 Oussama ELHAJJAMY 33


Représentation des données

• Introduction (Pourquoi le binaire ?)

Un nombre binaire (mot) binaire est constitué uniquement de 1 et 0


Dans un ordinateur, les mots binaires représentent le codage de l’information
Ces mots binaire son stockés dans les mémoires de l’ordinateur et sont
véhiculés par des bus (fils conducteurs isolés entre eux)

09/06/2019 Oussama ELHAJJAMY 34


Représentation des données

• Introduction (Pourquoi le binaire ?)

Un ordinateur est un circuit électronique où circule la tension. Le binaire


représente les états de logique (états d’équilibre) de l’ordinateur traduit
par 1, s’il y a une tension, ou 0 en absence de te tension.

Nos programmes manipulent, calculent et utilisent donc uniquement des


mots binaires.

Les opérations binaires seront utiles pour construire et comprendre les


réseaux informatiques

09/06/2019 Oussama ELHAJJAMY 35


Représentation des données

• Introduction (Pourquoi le binaire ?)

Le regroupement de 8 chiffres binaires est nommé octect (Byte).

Plus précisément, un octet, c’est 8 bits et un bit signifie binary digit c’est-à-
dire 0 ou 1 (deux états possibles pour un bit)

09/06/2019 Oussama ELHAJJAMY 36


Représentation des données

• Introduction

Decimal : 17
Base = 10

des chiffre compris entre 0 à 9

09/06/2019 Oussama ELHAJJAMY 37


Représentation des données

• Introduction

Binaire : 0 1 1 0
Base = 2

des chiffre compris entre 0 à 1

09/06/2019 Oussama ELHAJJAMY 38


Représentation des données

• Introduction

En base b, on utilise b chiffres. Notons ai la suite des chiffres utilisés pour


écrire un nombre x=an an-1 … a1 a0 . a0 est le chiffre des unités.
 En décimal, b =10, ai ∈ {0,1,2,3,4,5,6,7,8,9};
 En binaire, b =2, ai ∈ {0,1}: 2 chiffres binaires, ou bits;
 En hexadécimal, b =16, ai ∈ {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} (on utilise les 6
premières lettres comme des chiffres).

09/06/2019 Oussama ELHAJJAMY 39


Représentation des données

• Introduction

Binaire : 0 1 1 0 12

Poids Poids
Fort Faible
Dans un nombre binaire la valeur du bit est appelé poids est le nom du poids
dépend de son positionnement dans le nombre

09/06/2019 Oussama ELHAJJAMY 40


Représentation des données

• Introduction

Binaire : 0 1 1 1 0
Rang : 4 3 2 1 0
Base : 2 2 2 2 2
Décimal : 16 8 4 2 1

Donc la valeur décimal c’est : 20 × 0 + 21×1+ 22×1 + 23×1 + 24×0


= 1×0 + 2×1+ 4×1 + 8×1 + 16×0
= 14

09/06/2019 Oussama ELHAJJAMY 41


Représentation des données

• Addition de deux nombres en binaire

0+0=0
0+1=1
1+0=1
1 + 1 = 10

Exemple : 1 0 1 1 1 0 1 1 + 1 1 0 1 = ?

09/06/2019 Oussama ELHAJJAMY 42


Représentation des données

• Addition de deux nombres en binaire

0+0=0
0+1=1
1+0=1
1 + 1 = 10

Exemple : 1 0 1 1 1 0 1 1 + 1 1 0 1 = 1 1 0 0 1 0 0 0

09/06/2019 Oussama ELHAJJAMY 43


Représentation des données

• Addition de deux nombres en binaire

Exemple : 1 0 1 1 1 0 1 1 + 1 1 0 1 = 1 1 0 0 1 0 0 0

1 0 1 1 1 0 1 12 = 128 + 32 + 16 + 8 + 2 + 1 = 18710
1 1 0 12 = 8 + 4 + 1 = 1310

1 1 0 0 1 0 0 02 = 128 + 64 + 8 = 20010

09/06/2019 Oussama ELHAJJAMY 44


Représentation des données

• Soustractions des binaires positifs

Même principe que la soustraction en base 10


Retenue créée lorsque la différence est inférieure à 0
0–0=0
1–1=0
1–0=1
0 – 1 = 1 avec un emprunt de 1 à gauche

Exemple : 1 1 0 1 1 – 1 1 0 1 = 1 1 1 0
101011–1101=11110
1001 – 110 = 1 1

09/06/2019 Oussama ELHAJJAMY 45


Représentation des données

• Multiplication des binaires

Multiplication par une base binaire :


Exemple : 1 1 0 1 1 × 1 0 0 0 = 1 1 0 1 1 0 0 0

Multiplication de deux binaires quelconque


Exemple : 1 1 0 1 × 1 0 1 = 1 0 0 0 0 0 1

13 × 5 = 65 = 64 + 1 = 1 0 0 0 0 0 1

09/06/2019 Oussama ELHAJJAMY 46


Représentation des données

• Division des binaires

La division par une puissance de 2 :


Se traduit par un décalage vers la droite du nombre divisé.

Supposons deux nombres A et B, tel que B est une base (B=2N )


 B s’écrit "1" suivi de N "0"
 A / B s’écrit "A privé des N bits de poids faible"

Donc la division entière se traduit par la perte des bits de poids faible.
Exemple A = 101101110111001 et B = 10000
A/B=?

09/06/2019 Oussama ELHAJJAMY 47


Représentation des données

• Division des binaires

La division par une puissance de 2 :


Se traduit par un décalage vers la droite du nombre divisé.

Supposons deux nombres A et B, tel que B est une base (B=2N )


 B s’écrit "1" suivi de N "0"
 A / B s’écrit "A privé des N bits de poids faible"

Donc la division entière se traduit par la perte des bits de poids faible.
Exemple A = 101101110111001 et B = 10000
A / B = 10110111011

09/06/2019 Oussama ELHAJJAMY 48


Représentation des données

• Division des binaires

Pour décrire le processus de la division, nous supposons 2 nombres binaires A


et B. Nous posons alors les notations suivantes :
nA est la taille (en nombre de chiffres) du nombre A.
nB est la taille (en nombre de chiffres) du nombre B.
b1 et b2 sont des numéros de bits (pour un binaire) ayant une taille de N, les
bits sont numérotés de 0 à N-1, le bit 0 étant celui de poids faible
A‘ est un nombre binaire formé en prenant les bits de A dont les numéros
sont compris entre b1 et b2

Exemple : Diviser 1 0 1 1 0 1 1 1 par 1 1 0 0

09/06/2019 Oussama ELHAJJAMY 49


Représentation des données

• Les unités de mesure de l’octet

Bit : {0,1}
1 Octet = 8 bits
1 Kilo-Octet (KO) = 1024 Octet
1 Mega-Octet (MO) = 1024 KO
1 Gega-Octet (GO) = 1024 MO
1 Tera-Octet (TO) = 1024 GO

09/06/2019 Oussama ELHAJJAMY 50


Représentation des données

• Les Systèmes de numération

Système Base Symboles utilisés


Binaire 2 0,1
Octal 8 0,1,2,3,4,5,6,7
Décimal 10 0,1,2,3,4,5,6,7,8,9
Hexadécimal 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

09/06/2019 Oussama ELHAJJAMY 51


Représentation des données

• Changements de bases

Binaire
Hexadécimal
Décimal Octal
Octal
Hexadécimal

Octal

Binaire Décimal

Hexadécimal

09/06/2019 Oussama ELHAJJAMY 52


Représentation des données

• Changements de bases : Conversion d'un nombre de base


quelconque en nombre décimal
Exemple1 :

Binaire : 0 1 1 1 0
Rang : 4 3 2 1 0
Base : 2 2 2 2 2
Décimal : 16 8 4 2 1

Donc la valeur décimal c’est : 20 × 0 + 21×1+ 22×1 + 23×1 + 24×0


= 1×0 + 2×1+ 4×1 + 8×1 + 16×0
= 14

09/06/2019 Oussama ELHAJJAMY 53


Représentation des données

• Changements de bases : Conversion d'un nombre de base


quelconque en nombre décimal
Exemple2 :

Octal : 1 2 7 5 3
Rang : 4 3 2 1 0
Base : 8 8 8 8 8
Décimal : 4096 512 64 8 1

Donc la valeur décimal c’est : 80 × 3 + 81×5+ 82×7 + 83×2 + 84× 1


= 1×3 + 8×5+ 64×7 + 512×2 + 4096×1
= 5611

09/06/2019 Oussama ELHAJJAMY 54


Représentation des données

• Changements de bases : Conversion d'un nombre décimal en


nombre binaire

La conversion de l'expression décimale d'un nombre en son expression base X


repose sur la recherche des multiples des puissances successives de la base
(X) que contient ce nombre.
La méthode pratique consiste à effectuer des divisions successives: du
nombre par la base, puis du quotient obtenu par la base, puis du nouveau
quotient par la base,… jusqu'à ce que le quotient devienne nul. L'expression
cherchée est constituée par l'ensemble des restes successifs des divisions, lu
à l'envers.

09/06/2019 Oussama ELHAJJAMY 55


Représentation des données

• Changements de bases : Conversion d'un nombre décimal en


nombre de base quelconque

Exemple :

la même méthode serait applicable pour les conversions :


• décimal → octal (des divisions successives par 8)
• décimal → hexadécimal(des divisions successives par 16).

09/06/2019 Oussama ELHAJJAMY 56


Représentation des données

• Changements de bases : conversion octal → binaire (binaire →


octal)

On peut remarquer que 8 = 23 ; On peut donc faire correspondre à chaque


digit d'un nombre exprimé en octal un ensemble de 3 bits du même nombre
exprimé en binaire. Par exemple:
(763)8 = (111)(110)(011) =(111110011)2

La conversion inverse, binaire → octal, se fait de la même façon, en


décomposant le nombre binaire par ensembles de 3 bits à partir de la droite.
Par exemple:
(10111011101)2 =(2735)8

09/06/2019 Oussama ELHAJJAMY 57


Représentation des données

• Changements de bases : Conversion hexadécimal → binaire (binaire


→ hexadécimal)

De la même manière, on peut remarquer que 16=24 On fera donc


correspondre à chaque digit d'un nombre hexadécimal 4 bits du nombre
binaire correspondant. Par exemple :
(A28)16=(101000101000)2

La conversion inverse, binaire hexadécimal, se fait en décomposant le nombre


binaire par ensembles de 4 bits à partir de la droite. Par exemple:
(101110011101001)2 = ( 0101)(1100)(1110)(1001) =(5CE9)16

09/06/2019 Oussama ELHAJJAMY 58


Représentation des données

• Changements de bases : Conversion d'une base X vers base Y

Si X = Bm et Y= Bn
Alors convertir le nombre de la base X (Bm) vers B puis de la base B vers la
base Y (Bn)
Sinon Convertir de la base X vers la base 10 puis de la base 10 vers la base Y

Base X Base Y

Base B (ou 10)

09/06/2019 Oussama ELHAJJAMY 59


Représentation des données

• Représentation des entiers signés

Sont des nombres possédant un signe + ou - , 3 méthodes pour les


représenter :

 SVA : signe et valeur absolue


 Cà1 : complément à 1
 Cà2 : complément à 2

09/06/2019 Oussama ELHAJJAMY 60


Représentation des données

• Signe et valeur absolue

Si un nombre est représenté sur n bits

Exemple: (1101)SVA = (-101)2 = (-5)10

09/06/2019 Oussama ELHAJJAMY 61


Représentation des données

• Complément à 1

Le premier bit est réservé pour le signe et si le nombre est positif alors il
garde son format, sinon (il est négatif) alors chaque bit est inversé (0 devient
1 et 1 devient 0)

Exemple :
(+6)10  (+110)2  (0110)SVA  (0110)C1
(-5)10  (-101)2  (1101)SVA  (1010)C1

09/06/2019 Oussama ELHAJJAMY 62


Représentation des données

• Addition (soustraction) en C1

Elle se base sur le principe suivant :


 Si aucune retenue n’est générée par le bit de signe, le résultat est correct,
et il est représenté en C1
 Sinon, elle sera enlevé et additionnée au résultat de l’opération, celui-ci
est représenté en C1

09/06/2019 Oussama ELHAJJAMY 63


Représentation des données

• Addition (soustraction) en C1

Exemple (pas de retenu) : Opération sur 5 bits


-13 + 4 = (-1101)2 + (+0100)2
= (11101)SVA + (00100)SVA
= (10010)C1 + (00100)C1
= (10110)C1
Je n’ai pas de retenue, alors le résultat est correct

On a C1(C1(n))=n
Donc (10110)C1 = (11001)SVA
= (-1001)2
= (-9)10

09/06/2019 Oussama ELHAJJAMY 64


Représentation des données

• Addition (soustraction) en C1
Exemple (avec retenu) : Opération sur 5 bits
+13 - 4 = (+1101)2 + (-0100)2
= (01101)SVA + (10100)SVA
= (01101)C1 + (11011)C1
= 1(01000)C1

J’ai une retenue, alors j’additionne le résultat avec la retenue générée


Donc (01000)C1 + 1= (01001)C1 = (01001)SVA
= (+1001)2
= (+9)10
Inconvénient : Additionner 2 fois

09/06/2019 Oussama ELHAJJAMY 65


Représentation des données

• Complément à 2

Le premier bit est réservé pour le signe et si le nombre est positif alors il
garde son format, sinon (il est négatif) alors il est transformé en C1 puis
ajouté à 1

Exemple :
(-5)10  (-101)2  (1101)SVA  (1011)C2
(+6)10  (+110)2  (0110)SVA  (0110)C2

09/06/2019 Oussama ELHAJJAMY 66


Représentation des données

• Addition (soustraction) en C2

Elle se base sur le principe suivant :


 S’il y a une retenue générée par le bit de signe, elle est ignorée et le
résultat est en C2 ,
 Sinon le résultat est correct et il est représenté en C2.

09/06/2019 Oussama ELHAJJAMY 67


Représentation des données

• Addition (soustraction) en C2

Exemple (pas de retenu) : Opération sur 5 bits


-13 + 4 = (-1101)2 + (+0100)2
= (11101)SVA + (00100)SVA
= (10010)C1 + (00100)C1
= (10011)C2 + (00100)C2
= (10111)C2
Je n’ai pas de retenue, alors le résultat est correct
On a C2(C2(n))=n
Donc (10111)C2 = (11001)SVA
= (-1001)2
= (-9)10

09/06/2019 Oussama ELHAJJAMY 68


Représentation des données

• Addition (soustraction) en C2
Exemple (avec retenu) : Opération sur 5 bits
+13 - 4 = (+1101)2 + (-0100)2
= (01101)SVA + (10100)SVA
= (01101)C1 + (11011)C1
= (01101)C2 + (11100)C2
= 1(01001)C2
J’ai une retenue, alors la retenue sera ignorée et le résultat est correct

Donc (01001)C2 = (01001)SVA


= (+1001)2
= (+9)10

09/06/2019 Oussama ELHAJJAMY 69


Représentation des données

• Débordement -Overflows

Espace réservé pour le résultat est insuffisant.


Exemple : addition de deux nombres de même signe avec un résultat de signe
différent.

Exemple 6 + 5 sur 4 bits

09/06/2019 Oussama ELHAJJAMY 70


Représentation des données

• Représentation des nombres réels

 Comment représenter la virgule en machine ?


 Comment indiquer a la machine la position de la virgule ?

 Virgule fixe
 Virgule flottante

09/06/2019 Oussama ELHAJJAMY 71


Représentation des données

• Virgule fixe

Utilisée par les premières machines, possède une partie ‘entière’ et une
partie ‘décimale’ séparées par une virgule. La position de la virgule est fixe
d’où le nom.

Exemple:
Dans une représentation sur 8 bits tels que: 1bit représente le signe, 4 bits
représentent la partie entière et 3 bits représentent la partie décimale on a:
• (-1011,11)2 (11011110)en machine

09/06/2019 Oussama ELHAJJAMY 72


Représentation des données

• Virgule flottante
Utilisée actuellement sur machine, définie par : ±m . be
 un signe + ou –
 une mantisse m (en virgule fixe)
 un exposant e (un entier signé)
 une base b (2,8,10,16)
Exemple:
(+3,1)10=(+11,01)2=[(+0,1101x22)=(+1,101x21)
=(+110,1x2-1)=(+1101x2-2)]en virgule flottante

Plusieurs manières de représenter un nombre réel en virgule flottante


(différentes valeurs de m et e) Donc il faut une normalisation

09/06/2019 Oussama ELHAJJAMY 73


Représentation des données

• Codage en virgule flottante Normalisé

SM Eb M

1 bit p bits q bits

• SM : signe de la mantisse, il est codé sur 1 bit ayant le poids fort : le signe
– : bit 1 ; le signe + : bit 0
• Eb : Exposant biaisé, il est placé avant la mantisse pour simplifier la
comparaison ; codé sur p bits et biaisé pour assurer d’être positif (ajout
de 2p-1-1)
• M : Mantisse normalisée: la virgule est placée après le bit à 1 ayant le
poids fort; elle est codée sur q bits
• Exemple : 11,01 = 1,101 x21

09/06/2019 Oussama ELHAJJAMY 74


Représentation des données

• Le standard IEEE 754 (1985) Simple précision (32bits)

SM Eb M

1 bit 8 bits 23 bits

Exemple : (35,5)10=( ?)IEEE 754 simple précision


(35,5)10=(100011,1)2(virgule fixe) =(1,000111x25) (virgule flottante)
Eb=E+2p-1-1=5+28-1-1 =5+127=132=(10000100)2
1,M=1,000111M=00011100000000000000000
SM=0 ; c’est un nombre positif
0 10000100 00011100000000000000000
1 bit 8 bits 23 bits

09/06/2019 Oussama ELHAJJAMY 75


Représentation des données

• Le standard IEEE 754 (1985) Simple précision (32bits)

Exemple 2 : (+7)10=( ?)IEEE 754 simple précision


(+7)10=(+111)2 =+1,11x22
Donc
SM=0 ; c’est un nombre positif
M=11000000000000000000000
E=2  Eb=2+28-1-1 =2+127=129=(10000001)2
(+7)10=(01000000111000000000000000000000)IEEE754SP

09/06/2019 Oussama ELHAJJAMY 76


Représentation des données

• Le standard IEEE 754 (1985) Simple précision (32bits)

Exemple 3 : (-2,25)10=( ?)IEEE 754 simple précision


(-2,25)10=(-10,01)2 =-1,001x21
Donc
SM=1 ; c’est un nombre négatif
M=00100000000000000000000
E=1  Eb=1+28-1-1 =1+127=128=(10000000)2
(-2,25)=(11000000000100000000000000000000)IEEE754SP

09/06/2019 Oussama ELHAJJAMY 77


Représentation des données

• Le standard IEEE 754 (1985) Double précision (64bits)

SM Eb M

1 bit 11 bits 52 bits

Exemple : (35,5)10=( ?)IEEE 754 simple précision


(35,5)10=(100011,1)2(virgule fixe) =(1,000111x25) (virgule flottante)
Eb=E+2p-1-1=5+211-1-1 =5+1023=1028=(10000000100)2
1,M=1,000111M=00011100000000000000000000000000000000…0
SM=0 ; c’est un nombre positif
0 10000000100 00011100000000000000000000…0
1 bit 11 bits 52 bits

09/06/2019 Oussama ELHAJJAMY 78


Représentation des données

• Addition en IEEE 754

Elle se fait en trois étapes :


 Dénormaliser les deux nombres afin d’avoir le même exposant (le plus
élevé)
 Additionner les mantisses
 Normaliser le résultat

09/06/2019 Oussama ELHAJJAMY 79


Représentation des données

• Addition en IEEE 754

Exemple: A=(01000000111000000000000000000000)IEEE754SP

B=(01000000000100000000000000000000)IEEE754SP

1) Dénormalisation

Dénormalisation de A : Dénormalisation de B :
SM=0signe + SM=0signe +
Eb=(10000001)2=129 Eb=(10000000)2=128
E=Eb-(28-1-1)=129-127=2 E=Eb-(28-1-1)=128-127=1
M=11 M=001
Donc A=+1,11x22 Donc B=+1,001x21=+0,1001x22

09/06/2019 Oussama ELHAJJAMY 80


Représentation des données

• Addition en IEEE 754


1,11
2) Addition des mantisses 0,1001
Donc A+B=10,0101x22
10,0101
3) Normalisation
A+B=10,0101x22=1,00101x23
E=3Eb=127+3=130=(10000010)2 et M=00101
Donc: A+B=(01000001000101000000000000000000)IEEE754

09/06/2019 Oussama ELHAJJAMY 81


Représentation des données

• Multiplication en IEEE 754

Elle se fait en quatre étapes :


 Dénormaliser les deux nombres (exposants naturels)
 Additionner les exposants naturels
 Multiplier les mantisses
 Normaliser le résultat

09/06/2019 Oussama ELHAJJAMY 82


Représentation des données

• Multiplication en IEEE 754


Exemple : (01000000111000000000000000000000)IEEE754

(01000001000110000000000000000000)IEEE754

- Dénormalisation
Eb=129 E=Eb-127=2

Eb=130 E=Eb-127=3

(01000000111000000000000000000000)IEEE754=1,11*22
(01000001000110000000000000000000)IEEE754=1,0011*23

- Addition des exposants : E=2+3=5

- Multiplication des mantisses : 1,11x1,0011=10,000101


Résultat= 10,000101x25

09/06/2019 Oussama ELHAJJAMY 83


Représentation des données

• Multiplication en IEEE 754

- Normalisation

Résultat = 10,000101x25=1,0000101*26
SM=0 ; E=6Eb=6+127=133=(10000101)2 ; M=0000101

Donc les résultat est :


(0 10000101 00001010000000000000000)IEEE754

09/06/2019 Oussama ELHAJJAMY 84


Représentation des données

• Codification et représentation α-numérique

Il existe de nombreuses possibilités de codage de l’information, par exemple :


 BCD
 Code Gray
 ASCII
 Norme ISO-8859
 UNICODE
 Codage UTF-8

09/06/2019 Oussama ELHAJJAMY 85


Représentation des données

• BCD (binary coded decimal)

 Utilisé pour coder des nombres en se rapprochant de la représentation


humaine usuelle, en base 10.

 Dans ce format, chacun de ces chiffres est codé sur 4 bits.

09/06/2019 Oussama ELHAJJAMY 86


Représentation des données

• Addition en BCD
L’opération de l’addition se fait en deux étapes :
 Calculer individuellement la somme de chaque paire de groupe de quatre
bits et sans porter la retenue au prochain groupe de bits.
 Corriger (de droit à gauche) chaque groupe de quatre bits dépassant le
1001 par ajout de 110, si le groupe dégage une retenue elle sera envoyée
au prochain groupe.

Exemple: (39+58)10=(00111001+01011000)BCD
= (1001 0111)BCD

09/06/2019 Oussama ELHAJJAMY 87


Architecture de base d’un ordinateur

• Compilateur et Interpréteur
Compilateur: traduire le programme entier une fois pour toutes

Compilateur exécution
exemple.c exemple
fichier source fichier exécutable
– + plus rapide à l’exécution
– + sécurité du code source
– - il faut recompiler à chaque modification

Interpréteur: traduire au fur et à mesure les instructions du programme à


chaque exécution
Interprétation+exécution
exemple.bas
fichier source
– + exécution instantanée appréciable pour les débutants
– - exécution lente par rapport à la compilation

09/06/2019 Oussama ELHAJJAMY 88


Architecture de base d’un ordinateur

• Etapes de réalisation d’un programme


Enoncé du problème
Spécification
Cahier des charges
Analyse
Algorithme
Traduction en langage
Programme source
Compilation
Programme exécutable
Tests et modifications
Version finale et résultats

La réalisation de programmes passe par l’écriture d’algorithmes


 D’où l’intérêt de l’Algorithmique

09/06/2019 Oussama ELHAJJAMY 89


Représentation des données

• Le code Gray

L’opération de l’addition En code Gray, le passage d’un nombre au nombre


suivant se traduit par un changement d’un seul bit seulement,

09/06/2019 Oussama ELHAJJAMY 90


Représentation des données

• Code Binaire vers Code Gray

On conserve le premier bit (poids fort) du binaire pur, c'est-à-dire le premier


bit du binaire pur reste le premier bit du binaire réfléchi(Gray). On additionne
le premier bit du binaire pur au deuxième bit du binaire pur pour obtenir le
deuxième bit du binaire réfléchi. On additionne ensuite le deuxième bit du
binaire pur au troisième bit du binaire pur pour obtenir le troisième bit du
binaire réfléchi et ainsi de suite. Dans toutes ces additions, on considère
toujours 0+0=0, 0+1=1 et 1+1=0.

Exemple:( 1 1 0 0 1 1 0 1 )2
( 0 1 0 1 0 1 1 )Gray

09/06/2019 Oussama ELHAJJAMY 91


Représentation des données

• Code Gray vers Code Binaire

On conserve le premier bit (poids fort) du code Gray, c'est-à-dire le premier


bit du code Gray reste le premier bit du binaire. On additionne le premier bit
du binaire pur au deuxième bit du code Gray pour obtenir le deuxième bit du
binaire. On additionne ensuite le deuxième bit du binaire au troisième bit du
code Gray pour obtenir le troisième bit du binaire, et ainsi de suite. Dans
toutes ces additions, on considère toujours 0+0=0, 0+1=1 et 1+1=0.

Exemple: ( 1 1 0 0 1 1 0 1 )Gray
( 0 0 0 1 0 0 1 )2

09/06/2019 Oussama ELHAJJAMY 92


Représentation des données

• Le code ASCII

(American Standard Code for Information Interchange) code américain


standard pour l‘échange d'informations

La mémoire de l'ordinateur conserve toutes les données sous forme


numérique. Il n'existe pas de méthode pour stocker directement les
caractères. Chaque caractère possède donc son équivalent en code
numérique: c'est le code ASCII.

09/06/2019 Oussama ELHAJJAMY 93


Représentation des données

• Première version ASCII

C’est un code sur 7 bits (valeurs 0 à 127), il permet de définir :

 Des codes de contrôle non imprimables (0 à 31) : indicateurs de saut de


ligne, de fin de texte, codes de contrôle de périphériques, …

 Des caractères imprimables universels : lettres anglaises minuscules (65 à


90) et majuscules (97 à 122), chiffres, symboles,…

09/06/2019 Oussama ELHAJJAMY 94


Représentation des données

Exemple:
• Première version ASCII
convertir le mot Codage en ASCII

C’est
1100001

1000011
1100100
1100101

1100111

1101111

09/06/2019 Oussama ELHAJJAMY 95


Représentation des données

• La norme ISO-8859

À la fin des années 1980, sont définis les codages ISO-8859 qui sont diverses
extensions du codage ASCII permettant de coder en plus des lettres latines
accentuées et d'introduire (en partie) certains autres alphabets (arabe,
cyrillique, grec, hébreu).

Tous ces codages codent les caractères avec des mots binaires de 8 bits.

09/06/2019 Oussama ELHAJJAMY 96


Représentation des données

• La norme ISO-8859

09/06/2019 Oussama ELHAJJAMY 97


Représentation des données

• L’Unicode

Dans les années 1990, le projet Unicode de codage de tous les alphabets est
né. Unicode est une famille de codages, C’est une autre norme que l'ASCII,
qui présente l'avantage de proposer une version unifiée des différents
encodages de caractères complétant l'ASCII mais aussi de permettre
l'encodage de caractères autres que ceux de l'alphabet latin. Unicode définit
des dizaines de milliers de codes, mais les 128 premiers restent compatibles
avec ASCII.

09/06/2019 Oussama ELHAJJAMY 98


Représentation des données

• Le codage UTF-8
C’est un codage de longueur variable. Certains caractères sont codés sur un
seul octet, ce sont les 128 caractères du codage ASCII. Le bit de poids fort des
codes de ces caractères est toujours un 0. Les autres caractères peuvent être
codés sur 2, 3 ou 4 octets. Les bits de poids fort du premier octet codant l'un
de ces caractères indique toujours le nombre d'octets codant. Si le caractère
est codé sur 2 octets, les trois premiers bits du premier octet sont 110. S'il est
codé sur 3 octets, alors les quatre premiers bits du premier octet sont 1110.
Et enn s'il est codé sur 4 octets les cinq premiers bits du premier octet sont
11110. Les deux bits de poids fort des octets qui suivent le premier octet
codant sont toujours 10.

09/06/2019 Oussama ELHAJJAMY 99


Merci de votre attention

Oussama ELHAJJAMY

Vous aimerez peut-être aussi