Académique Documents
Professionnel Documents
Culture Documents
Oussama ELHAJJAMY 2
Objectifs du cours :
Oussama ELHAJJAMY 3
Objectifs du module :
Oussama ELHAJJAMY 4
Objectifs du module :
Oussama ELHAJJAMY 5
CHAPITRE I
Architecture de base d’un ordinateur
Architecture de base d’un ordinateur
• Introduction
• Introduction
• Blocs fonctionnels
processeur
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.
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.
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.
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
• Partie Système
• Introduction
Logique et
Codeurs/décodeurs numérique
OS
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)
• Introduction
Decimal : 17
Base = 10
• Introduction
Binaire : 0 1 1 0
Base = 2
• Introduction
• 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
• 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
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 = ?
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
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
Exemple : 1 1 0 1 1 – 1 1 0 1 = 1 1 1 0
101011–1101=11110
1001 – 110 = 1 1
13 × 5 = 65 = 64 + 1 = 1 0 0 0 0 0 1
Donc la division entière se traduit par la perte des bits de poids faible.
Exemple A = 101101110111001 et B = 10000
A/B=?
Donc la division entière se traduit par la perte des bits de poids faible.
Exemple A = 101101110111001 et B = 10000
A / B = 10110111011
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
• Changements de bases
Binaire
Hexadécimal
Décimal Octal
Octal
Hexadécimal
Octal
Binaire Décimal
Hexadécimal
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
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
Exemple :
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
• 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
• Addition (soustraction) en C1
• Addition (soustraction) en C1
On a C1(C1(n))=n
Donc (10110)C1 = (11001)SVA
= (-1001)2
= (-9)10
• 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
• 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
• Addition (soustraction) en C2
• Addition (soustraction) en C2
• 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
• Débordement -Overflows
Virgule fixe
Virgule flottante
• 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
• 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
SM Eb M
• 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
SM Eb M
SM Eb M
Exemple: A=(01000000111000000000000000000000)IEEE754SP
B=(01000000000100000000000000000000)IEEE754SP
1) Dénormalisation
Dénormalisation de A : Dénormalisation de B :
SM=0signe + SM=0signe +
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
(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
- Normalisation
Résultat = 10,000101x25=1,0000101*26
SM=0 ; E=6Eb=6+127=133=(10000101)2 ; M=0000101
• 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
• 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
• Le code Gray
Exemple:( 1 1 0 0 1 1 0 1 )2
( 0 1 0 1 0 1 1 )Gray
Exemple: ( 1 1 0 0 1 1 0 1 )Gray
( 0 0 0 1 0 0 1 )2
• Le code ASCII
Exemple:
• Première version ASCII
convertir le mot Codage en ASCII
C’est
1100001
1000011
1100100
1100101
1100111
1101111
• 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.
• La norme ISO-8859
• 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.
• 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.
Oussama ELHAJJAMY