SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
1/54
TABLE DES MATIERES
CHAPITRE 1 : GENERALITES.................................................................................. 4
1. Introduction ...................................................................................................................... 4
2. Qu’est ce qu’une architecture ? ...................................................................................... 4
3. Quatre générations d’ordinateurs .................................................................................. 4
4. Qu’est ce qu’un microprocesseur ? ................................................................................ 5
5. Où trouve-t-on des systèmes à microprocesseur ? ........................................................ 7
6. Types d’information et numérisation............................................................................. 8
6.1. Le texte....................................................................................................................... 9
6.2. L’image ...................................................................................................................... 9
6.3. Le son et la vidéo ..................................................................................................... 10
7. Rappels ............................................................................................................................ 12
CHAPITRE 2 : ARCHITECTURE DE BASE............................................................ 13
1. Modèle de Von Neumann .............................................................................................. 13
2. L’unité centrale .............................................................................................................. 13
3. La mémoire principale................................................................................................... 14
4. Les interfaces d’entrées / sorties ................................................................................... 14
5. Les bus............................................................................................................................. 14
6. Décodage d’adresses....................................................................................................... 15
CHAPITRE 3 : LES MEMOIRES.............................................................................. 16
1. Organisation d’une mémoire......................................................................................... 16
2. Caractéristiques d’une mémoire................................................................................... 18
3. Différents types de mémoires ........................................................................................ 18
3.1. Les mémoires vives (RAM) ..................................................................................... 18
3.1.1. Les RAM Statiques .......................................................................................... 19
3.1.2. Les RAM Dynamiques..................................................................................... 19
3.2. Les mémoires mortes ............................................................................................... 19
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
2/54
4. Critères de choix d’une mémoire.................................................................................. 20
5. Notion de hiérarchie mémoire....................................................................................... 20
CHAPITRE 4 : LE MICROPROCESSEUR............................................................... 22
1. Architecture de base d’un microprocesseur ................................................................ 22
1.1. L’unité de Commande.............................................................................................. 23
1.2. L’unité de Traitement............................................................................................... 23
1.3. Les registres.............................................................................................................. 25
1.4. Schéma fonctionnel.................................................................................................. 26
2. Cycle d’exécution d’une instruction ............................................................................. 26
3. Jeu d’instructions ........................................................................................................... 28
3.1. Définition ................................................................................................................. 28
3.2. Type d’instructions................................................................................................... 28
3.3. Codage...................................................................................................................... 29
3.4. Temps d’exécution ................................................................................................... 29
4. Langage de programmation .......................................................................................... 29
5. Performances d’un microprocesseur............................................................................ 30
6. Notion d’architecture CISC et RISC............................................................................ 31
6.1. L’architecture CISC ................................................................................................. 31
6.1.1. Pourquoi ........................................................................................................... 31
6.1.2. Comment .......................................................................................................... 31
6.2. L’architecture RISC ................................................................................................. 32
6.2.1. Pourquoi ........................................................................................................... 32
6.2.2. Comment .......................................................................................................... 32
6.3. Comparaison............................................................................................................. 32
7. Amélioration de l’architecture de base ........................................................................ 33
7.1. Architecture Pipeline................................................................................................ 33
7.1.1. Principe............................................................................................................. 33
7.1.2. Gain de performance ........................................................................................ 35
7.2. Notion de cache mémoire......................................................................................... 35
7.2.1. Principe............................................................................................................. 35
7.3. Architecture superscalaire........................................................................................ 36
7.4. Architecture pipeline et superscalaire ...................................................................... 37
8. Etude du processeur 8088.............................................................................................. 38
8.1. Architecture externe du 8088 ................................................................................... 38
8.1.1. Bus de commande ............................................................................................ 39
8.1.2. Signaux de contrôle.......................................................................................... 40
8.2. Architecture interne du 8088.................................................................................... 41
8.2.1. UIB................................................................................................................... 41
8.2.2. UE..................................................................................................................... 41
8.3. Les registres du 8088................................................................................................ 42
8.3.1. Groupe de données........................................................................................... 43
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
3/54
8.3.2. Groupe de pointeurs et indexes ........................................................................ 43
8.3.3. Registre IP (Instruction Pointer) ...................................................................... 46
8.3.4. Registre d’état (Flag)........................................................................................ 46
8.3.5. Les registres segment ....................................................................................... 48
8.4. Gestion de la mémoire.............................................................................................. 49
8.4.1. Introduction ...................................................................................................... 49
8.4.2. Adresse physique (segmentation de la mémoire)............................................. 50
8.4.3. Exemple de configuration des 4 segments de la mémoire ............................... 51
CHAPITRE 5 : LES ECHANGES DE DONNEES .................................................... 52
1. L’interface d’entrée/sortie............................................................................................. 52
1.1. Rôle .......................................................................................................................... 52
1.2. Constitution.............................................................................................................. 52
2. Techniques d’échange de données ................................................................................ 53
2.1. Echange programmé................................................................................................. 53
2.1.1. Scrutation ......................................................................................................... 53
2.1.2. Interruption....................................................................................................... 53
2.2. Echange direct avec la mémoire (DMA).................................................................. 53
3. Types de liaisons............................................................................................................. 54
3.1. Liaison parallèle ....................................................................................................... 54
3.2. Liaison série ............................................................................................................. 54
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
4/54
Chapitre 1 : Généralités
1. Introduction
 Le cours d’architecture des systèmes à microprocesseur expose les principes de base
du traitement programmé de l’information.
 La mise en œuvre de ces systèmes s’appuie sur 2 modes de réalisation distincts :
Matériel + Logiciel.
 Matériel (Hardware) = Correspond à l’aspect concret du système : Unité Centrale,
Mémoires, Organes d’Entrées / Sorties, etc…
 Logiciel (Software) = correspond à un ensemble d’instructions : appelé programme,
qui sont contenues dans les différentes mémoires du système et qui définissent les
actions effectuées par le matériel.
2. Qu’est ce qu’une architecture ?
 L’architecture d’un système à microprocesseur représente l’organisation de ses
différentes unités et de leurs interconnexions.
 Le choix d’une architecture est toujours le résultat d’un compromis :
o Entre performances et coûts,
o Entre efficacités et facilités de constructions,
o Etc…
3. Quatre générations d’ordinateurs
 Première génération : Les ordinateurs à tubes électroniques.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
5/54
 Deuxième génération : Les ordinateurs à transistors.
 Troisième génération : Les ordinateurs à circuits intégrés.
 Quatrième génération : Les ordinateurs à microprocesseurs.
4. 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 (logique et/ou arithmétique) et séquentielles
(registres, compteurs, etc…).
 Le microprocesseur est capable d’interpréter et d’exécuter les instructions d’un
programme.
 Un microprocesseur est le résultat d’intégration d’un ensemble de transistors sur une
seule puce mémoire.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
6/54
Ex : Le premier microprocesseur noté le 4004, qui était une unité de calcul 4 bits
fonctionnant à 108 kHz, intégrant 2300 transistors, apparue en 1971.
Tableau depuis 1971 à 2010 des architectures avec largeur de bus de données
Date Nom
Nombre de
transistors
Finesse de
gravure
(µm)
Fréquence
de l'horloge
Largeur
des
données
MIPS
1971 4004 2 300 108 kHz
4 bits/4
bits bus
1974 8080 6 000 6 2 MHz
8 bits/8
bits bus
0,64
1982 80286 134 000 1,5 6 MHz
16 bits/16
bits bus
1
1985 80386 275 000 1,5 16 à 40 MHz
32 bits/32
bits bus
5
1989 80486 1 200 000 1 25 à 100 MHz
32 bits/32
bits bus
20
1993 Pentium 3 100 000 0,8 à 0.28 60 à 233 MHz
32 bits/64
bits bus
100
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
7/54
1997 Pentium II 7 500 000 0,35 à 0.25 233 à 450 MHz
32 bits/64
bits bus
300
1999 Pentium III 9 500 000 0,25 à 0.13 450 à 1400 MHz
32 bits/64
bits bus
510
2000 Pentium 4 42 000 000
0,18 à
0.065
1,3 à 3.8 GHz
32 bits/64
bits bus
1 700
2006
Core 2™
Duo
291 000
000
0,065 2,4 GHz
64 bits/64
bits bus
22 000
2007
Core 2™
Quad
2*291 000
000
0,065 3 GHz
64 bits/64
bits bus
2*
22000
2008
Core 2™
Duo (Penryn)
410 000
000
0,045 3,33 GHz
64 bits/64
bits bus
~24200
2008
Core 2™
Quad
(Penryn)
2*410 000
000
0,045 3,2 GHz
64 bits/64
bits bus
~2*
24200
2010
Intel Core i7
(Nehalem)
731 000
000
0,045 -
0,032
(2010)
2,93 GHz (Core i7
940) - 3,2 GHz (Core
i7 Extreme Edition
965)
64 bits/64
bits bus
~4*
24200
5. Où trouve-t-on des systèmes à microprocesseur ?
 Les applications des systèmes à microprocesseurs sont multiples et variées :
o Ordinateur
o Console de jeux
o Calculatrice
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
8/54
o Télévision
o Téléphone portable
o Distributeur automatique d’argent
o Robotique
o Lecteur carte à puce, code barre
o Automobile
o Instrumentation
o etc…
6. Types d’information et numérisation
 On distingue 4 types d’informations :
o Texte
o Image
o Son
o Vidéo
 Chaque type d’information nécessite une technique particulière de numérisation :
 En sortie, chaque information sera codée sous forme d’une suite binaire.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
9/54
6.1. Le texte
On distingue 2 types de textes :
 Texte numérique : la numérisation consiste à écrire ce nombre numérique dans la base
2 ( conversion vers la base 2).
 Texte non numérique : comme : caractères, symboles (*, $, ?, …), touche clavier
(espace, tabulation, …), la numérisation est basée sur un code interne tel que : Code
ASCII (ce type de codage est appelé codage interne)
 Etablir des correspondances entre le texte non numérique et des suites binaires.
6.2. L’image
 Une image numérique est décrite en un ensemble de lignes, chaque ligne en un
ensemble de points  on parle de la Résolution.
Ex : Image avec résolution 640*480  480 lignes et 640 points par ligne.
 On distingue 3 types d’images :
 Image noir et blanc :
o Un seul bit suffit pour coder un point : 0 pour noir, 1 pour blanc.
 Image en 256 nuances de gris :
o Dans ce cas, chaque point est représenté par 1 octet = 8bits  28
=256
combinaisons  256 couleurs gris entre le blanc et le noir.
Texte
Image
Son
Vidéo
Numérisation
Données
Informatiques
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
10/54
 Image en couleur :
o Chaque couleur est une combinaison linéaire de 3 couleurs de base : Rouge
(R), Bleu (B) et Vert (V).
o Ainsi, une couleur quelconque X est exprimée comme : X=aR+bB+cV, ou
a, b et c sont des doses de couleurs de base.
o Ainsi, une image claire correspond à des doses allant de 0 à 255.
 Par suite, 1 octet par dose  3 octets = 24 bits pour coder 1 point
coloré.
Exemple : une image de résolution 640*480
o Contient 640*480 points= 307200 points.
o En noir et blanc  307200bits ~300Kbits.
o En nuances de 256 gris  300Kbts*8bits ~ 2.4Mbits.
o En couleur  2.4Mbits*24 = 57.6Mbits.
6.3. Le son et la vidéo
 Le son et la vidéo sont des données continues en fonction du temps,
 Ces données sont de type analogique, et sont transportées sur des signaux analogiques
(forme sinusoïdale),
 Les signaux analogiques sont numérisés en utilisant la technique de
l’échantillonnage.
 Echantillonnage : Le signal sur une période de temps (1 seconde) qui sera divisée en
plusieurs échantillons, on mesure la hauteur du signal, on obtient alors une séquence
de mesures, puis ces mesures sont codées en binaire.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
11/54
Exemple :
Temps
Amplitude du signal
1
2
3
4
5
6
7
1 sec
1. Un signal analogique sur une
période de temps de 1sec
Temps
Amplitude du signal
1
2
3
4
5
6
7
1 sec
3. Chaque valeur est transformée
en sa conversion binaire. La suite
de ces conversions est la
numérisation de cette donnée :
010001011101110101110
Temps
Amplitude du signal
1
2
3
4
5
6
7
1 sec
2. Des mesures de l’amplitude du
signal sur des périodes de temps
(échantillons)
010
001
011
101
110
101
110
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
12/54
7. Rappels
 Les informations traitées par un microprocesseur sont de différents types (nombres,
instructions, images, vidéo, etc…) mais elles sont toujours représentées sous un format
binaire.
 Le binaire est représenté physiquement par 2 niveaux de tensions différents.
 En binaire, une information élémentaire est appelé bit et ne peut prendre que deux
valeurs différentes : 0 ou 1.
 Une information plus complexe sera codée sur plusieurs Bits. On appelle cet ensemble
un mot. Un mot de 8 bits est appelé un Octet (Byte).
Remarque :
o 1 kilobit = 210
bit = 1024 bit
o 1 mégabit = 210
kbit = 1024 kbit
o 1 gigabit = 210
Mbit = 1024 Mbit
 Pour plus d’informations sur le binaire, voir le complément du cours : Système de
représentation des informations au TDs.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
13/54
Chapitre 2 : Architecture de base
1. Modèle de Von Neumann
 Pour traiter une information, un microprocesseur seul ne suffit pas, il faut l’insérer au
sein d’un système minimum de traitement programmé de l’information.
 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement
programmé de l’information (1946).
 Cette architecture sert de base à la plupart des systèmes à microprocesseur actuel. Elle
est composée des éléments suivants :
o une unité centrale (microprocesseur)
o une mémoire principale
o des interfaces d’entrées/sorties
 Les différents organes du système sont reliés par des voies de communication appelées
Bus.
2. L’unité centrale
 Elle est composée par le microprocesseur qui est chargé d’interpréter et d’exécuter les
instructions d’un programme, de lire ou de sauvegarder les résultats dans la mémoire
et de communiquer avec les unités d’échange.
 Toutes les activités du microprocesseur sont cadencées par une horloge.
 On caractérise le microprocesseur par :
o sa fréquence d’horloge : en MHz ou GHz
o le nombre d’instructions par secondes qu’il est capable d’exécuter : en MIPS
Unité Centrale
Microprocesseur
Mémoire
Principale Interfaces d’E/S
Bus
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
14/54
o la taille des données qu’il est capable de traiter : en bits
3. La mémoire principale
 Elle contient les instructions du ou des programmes en cours d’exécution et les
données associées à ce programme.
 Physiquement, elle se décompose souvent en :
o Une mémoire morte (ROM = Read Only Memory) chargée de stocker le BIOS
(Basic Input Output System, Système d’Entrées/Sorties de base) du système
d’exploitation, il est donc responsable de la gestion du matériel. ces données ne
sont pas perdues à la mise hors tension. C’est une mémoire à lecture seule.
o Une mémoire vive (RAM = Random Access Memory) chargée de stocker les
données intermédiaires ou les résultats de calculs. On peut lire ou écrire des
données dedans, ces données sont perdues à la mise hors tension.
Remarque :
 Les disques durs, disquettes, CDROM, etc… sont des périphériques de stockage, et
considérés comme des mémoires secondaires.
4. Les interfaces d’entrées / sorties
 Elles permettent d’assurer la communication entre le microprocesseur et les
périphériques. (capteur, clavier, moniteur ou afficheur, imprimante, modem, etc…).
5. Les bus
 Un bus est un ensemble de fils (appelés broches) qui assure la transmission du même
type d’information.
 On retrouve trois types de bus véhiculant des informations en parallèle dans un
système de traitement programmé de l’information :
o Un bus de données : C’est un ensemble de broches qui véhiculent les
instructions et les données à traités. Ce bus est bidirectionnel, le nombre de
broches de ce bus correspond à la capacité de traitement du microprocesseur.
Ex : - microprocesseur de 8 bits  Bus de données à 8 broches.
- microprocesseur de 16 bits  Bus de données à 16 broches.
- microprocesseur de 32 bits  Bus de données à 32 broches.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
15/54
o Un bus d'adresses: C’est un ensemble de broches qui permettent au
microprocesseur d’adresser des différentes cases mémoires et des interfaces
d’E/S. ce bus est unidirectionnel (du microprocesseur  mémoire centrale ou
interface d’E/S). le nombre n de broches détermine la capacité maximale
d’adressage qui est égal à 2n
.
Ex : - Bus d’adresses à 16 broches  adresser 216
= 65536 cases mémoires
= 64 KOct.
- Bus d’adresses à 20 broches  adresser 220
= 1 Méga Octet.
- Bus d’adresses à 30 broches  adresser 230
= 1 Géga Octet.
- Bus d’adresses à 40 broches  adresser 240
= 1 Téra Octet.
o Un bus de commande: constitué par quelques conducteurs qui assurent la
synchronisation des flux d'informations sur les bus des données et des adresses.
6. Décodage d’adresses
 La multiplication des périphériques autour du microprocesseur oblige la présence d’un
décodeur d’adresse chargé d’aiguiller les données présentes sur le bus de données.
 En effet, le microprocesseur peut communiquer avec les différentes mémoires et les
différents boîtiers d’interface. Ceux-ci sont tous reliés sur le même bus de données et
afin d’éviter des conflits, un seul composant doit être sélectionné à la fois.
 Ainsi, on a besoin d’un décodeur d’adresses qui doit attribuer à chaque périphérique
une zone d’adresses spécifique.
Unité Centrale Mémoire
Principale
Interfaces E/S
Bus de données
Bus d’adresses
Décodeur
d’adresses
Bus de Commande
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
16/54
Chapitre 3 : Les mémoires
 Une mémoire est un circuit intégré permettant d’enregistrer, de conserver et de
restituer des informations (instructions et variables).
 Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des
informations en mémoire, lecture lorsqu'on récupère des informations précédemment
enregistrées.
1. Organisation d’une mémoire
 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.
 Avec une adresse de n bits il est possible de référencer au plus 2n
cases mémoire.
Case mémoireAdresse
7 = 111
6 = 110
5 = 101
4 = 100
3 = 011
2 = 010
1 = 001
0 = 000 0001 0110
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
17/54
 Chaque case est remplie par un mot de données (sa longueur m est toujours une
puissance de 2).
 Le nombre de broches du bus d’adresses d’un boîtier mémoire définit donc le nombre
de cases mémoire que comprend le boîtier.
 Le nombre de broches du bus de données définit la taille des données que l’on peut
sauvegarder dans chaque case mémoire.
 En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une
entrée de commande qui permet de définir le type d’action que l’on effectue avec la
mémoire (lecture/écriture) et une entrée de sélection qui permet de mettre les
entrées/sorties du boîtier en haute impédance.
 On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut
distinguer :
o Les entrées d’adresses
o Les entrées de données
o Les sorties de données
o Les entrées de commandes :
 Une entrée de sélection de lecture ou écriture ( WR / ).
 Une entrée de sélection du circuit ( MIO/ ).
 Une opération de lecture ou d’écriture de la mémoire suit toujours le même cycle :
1. Sélection de l’adresse
2. Choix de l’opération à effectuer ( WR / )
3. Sélection de la mémoire ( MIO/ = 1)
4. Lecture ou écriture la donnée
Mémoire
Adresses
(n bits)
R / W
IO/M
Données
(m bits)
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
18/54
2. Caractéristiques d’une mémoire
 La capacité : c’est le nombre total de bits que contient la mémoire. Elle s’exprime
aussi souvent en octet.
 Le format des données : c’est le nombre de bits que l’on peut mémoriser par case
mémoire. On dit aussi que c’est la largeur du mot mémorisable.
 Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une
opération de lecture/écriture en mémoire et l'instant où la première information est
disponible sur le bus de données.
 Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes
successives de lecture ou d'écriture.
 Le débit : c’est le nombre maximum d'informations lues ou écrites par seconde.
 Volatilité : elle caractérise la permanence des informations dans la mémoire.
L'information stockée est volatile si elle risque d'être altérée par un défaut
d'alimentation électrique et non volatile dans le cas contraire.
Exemple : Chronogramme d’un cycle de lecture
3. Différents types de mémoires
3.1. Les mémoires vives (RAM)
 Une mémoire vive sert au stockage temporaire de données.
 Elle doit avoir un temps de cycle très court pour ne pas ralentir le microprocesseur.
Bus @ @ x
DxBus D
Données
Accessibles
T accès
T cycle
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
19/54
 Les mémoires vives sont en général volatiles : elles perdent leurs informations en cas
de coupure d'alimentation.
 Il existe deux grandes familles de mémoires RAM (Random Acces Memory :
mémoire à accès aléatoire) :
o Les RAM statiques
o Les RAM dynamiques
3.1.1. Les RAM Statiques
 Le bit mémoire d’une RAM Statique (SRAM) contient entre 4 à 6 transistors.
 Les SRAM sont non volatiles tant qu’il n’y a pas de coupure d’alimentation.
 Les SRAM sont plus rapides (T accès) que les RAM Dynamiques (DRAM).
 Au niveau du coût, les SRAM sont plus chers que les DRAM.
 Les SRAM sont utilisées lorsque le facteur vitesse est critique, notamment pour des
mémoires de petite taille comme les caches et les registres.
3.1.2. Les RAM Dynamiques
 Le bit mémoire d’une RAM Dynamique (DRAM) contient un seul transistor.
 Cette technique permet une plus grande densité d'intégration, car un point mémoire
nécessite environ quatre fois moins de transistors que dans une mémoire statique. Sa
consommation s’en retrouve donc aussi très réduite.
 Les DRAM sont moins chers que les SRAM.
 Les DRAM doivent être rafraîchis régulièrement pour entretenir la mémorisation :
l’information dans le transistor est perdue si on ne la régénère pas périodiquement.
Donc toute lecture doit être suivie d’une réécriture.
 Ce rafraîchissement indispensable a plusieurs conséquences :
o Gestion compliquée des DRAM.
o Temps d’accès plus important.
 En général les DRAM, qui offrent une plus grande densité d'information et un coût par
bit plus faible, sont utilisés pour la mémoire centrale.
3.2. Les mémoires mortes
 Pour certaines applications, il est nécessaire de pouvoir conserver des informations de
façon permanente même lorsque l'alimentation électrique est interrompue.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
20/54
 On utilise alors des mémoires mortes ou mémoires à lecture seule (ROM : Read Only
Memory). Ces mémoires sont non volatiles.
 L’inscription en mémoire des données reste possible est appelée programmation.
 Suivant le type de ROM, la méthode de programmation changera. Il existe donc
plusieurs types de ROM :
o ROM : Elle est programmée par le fabricant et son contenu ne peut plus être ni
modifié, ni effacé par l'utilisateur.
o PROM : C’est une ROM qui peut être programmée une seule fois par
l'utilisateur (Programmable ROM). La programmation est réalisée à partir d’un
programmateur spécifique
o EPROM : Pour faciliter la mise au point d'un programme ou tout simplement
permettre une erreur de programmation, il est intéressant de pouvoir
reprogrammer une PROM. L'EPROM (Erasable Programmable ROM) est une
PROM qui peut être effacée.
o FLASH EPROM : est une mémoire programmable et effaçable électriquement.
Elle répond ainsi à l’inconvénient principal de l’EPROM (Impossible de
sélectionner une seule cellule à effacer) et peut être reprogrammée in situ (mot
par mot).
4. Critères de choix d’une mémoire
 Les principaux critères à retenir sont :
o Capacité
o Vitesse
o Consommation
o Coût
5. Notion de hiérarchie mémoire
Une mémoire idéale serait une mémoire de grande capacité, capable de stocker un maximum
d’informations et possédant un temps d’accès très faible afin de pouvoir travailler rapidement
sur ces informations. Mais il se trouve que les mémoires de grande capacité sont souvent très
lentes et que les mémoires rapides sont très chères. Et pourtant, la vitesse d’accès à la
mémoire conditionne dans une large mesure les performances d’un système. En effet, c’est là
que se trouve le goulot d’étranglement entre un microprocesseur capable de traiter des
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
21/54
informations très rapidement et une mémoire beaucoup plus lente (ex : processeur actuel à
3Ghz et mémoire à 400MHz). Or, on n’a jamais besoin de toutes les informations au même
moment. Afin d’obtenir le meilleur compromis coût - performance, on définie donc une
hiérarchie mémoire. On utilise des mémoires de faible capacité mais très rapide pour stocker
les informations dont le microprocesseur se sert le plus et on utilise des mémoires de capacité
importante mais beaucoup plus lente pour stocker les informations dont le microprocesseur se
sert le moins. Ainsi, plus on s’éloigne du microprocesseur et plus la capacité et le temps
d’accès des mémoires vont augmenter.
 Les registres sont les éléments de mémoire les plus rapides. Ils sont situés au niveau
du processeur et servent au stockage des opérandes et des résultats intermédiaires.
 La mémoire cache est une mémoire rapide de faible capacité destinée à accélérer
l’accès à la mémoire centrale en stockant les données les plus utilisées.
 La mémoire principale est l’organe principal de rangement des informations. Elle
contient les programmes (instructions et données) et est plus lente que les deux
mémoires précédentes.
 La mémoire d’appui sert de mémoire intermédiaire entre la mémoire centrale et les
mémoires de masse. Elle joue le même rôle que la mémoire cache.
 La mémoire de masse est une mémoire périphérique de grande capacité utilisée pour
le stockage permanent ou la sauvegarde des informations. Elle utilise pour cela des
supports magnétiques (disque dur) ou optiques (CDROM, DVDROM).
Mémoire de masse
Mémoire d’appui
Mémoire principale
Mémoire cache
Registres
< 400 oct
8Ko à 4Mo
Jusqu’à 1Go
2 à 4 Go
200Go
1 ns
5 ns
10 ns
5 ms
+
Vitesse
+
Capacité
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
22/54
Chapitre 4 : Le microprocesseur
 Un microprocesseur 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.
1. Architecture de base d’un microprocesseur
 Un microprocesseur est construit autour de deux éléments principaux :
o Une unité de commande.
o Une unité de traitement.
 Ces unités sont associées à des registres chargés de stocker les différentes
informations à traiter.
 Ces trois éléments sont reliés entre eux par des bus interne (Adresses, Données et
Commande) permettant les échanges d’informations.
Unité de
Traitement
Unité de
Commande
Bus d’adresses
Bus de données
Programmes
Données
@
D
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
23/54
Remarque :
 Il existe deux types de registres :
o Les registres d'usage général permettent à l'unité de traitement de manipuler
des données à vitesse élevée. Ils sont connectés au bus de données interne au
microprocesseur.
o Les registres d'adresses (pointeurs) connectés sur le bus adresses.
1.1. L’unité de Commande
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 constitué par un registre dont le contenu est initialisé
avec l'adresse de la première instruction du programme. Il contient toujours l’adresse
de l’instruction à exécuter.
 Le registre d'instruction et le décodeur d'instruction : chacune des instructions à
exécuter est rangée dans le registre instruction puis est décodée par le décodeur
d’instruction.
 Bloc logique de commande (ou séquenceur) : Il organise l'exécution des instructions
au rythme d’une horloge. Il élabore tous les signaux de synchronisation internes ou
externes (bus de commande) du microprocesseur en fonction des divers signaux de
commande provenant du décodeur d’instruction ou du registre d’état par exemple. Il
s'agit d'un automate réalisé soit de façon câblée (obsolète), soit de façon micro-
programmée, on parle alors de microprocesseur.
1.2. L’unité de Traitement
 C’est le cœur du microprocesseur. Elle regroupe les circuits qui assurent les
traitements nécessaires à l'exécution des instructions. Cette unité est composée de :
o L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure
les fonctions logiques (ET, OU, Ou exclusif, etc…) ou arithmétique (Addition,
soustraction, multiplication).
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
24/54
 Table logique de ET (produit)
A B A ET B (noté A .B)
0 0 0
0 1 0
1 0 0
1 1 1
 Table logique de OU (Somme)
A B A OU B (noté A +B)
0 0 0
0 1 1
1 0 1
1 1 1
 Table logique de Ou exclusif
A B A OU Exclusif B (noté BA )
0 0 0
0 1 0
1 0 0
1 1 1
o Le registre d’état : ce registre est directement relié à l’UAL, il stocke
certaines informations particulières concernant les opérations effectuées par
l’UAL. Ce registre est généralement composé de 8 bits ou 16 bits, quelques
bits de ce registre (connu sous le nom d’indicateurs d’états).
 Bit ou Indicateur de retenue (CF) :
– CF = 1, il y a un retenu à la fin d’une opération d’addition ou
soustraction.
– CF = 0, dans le cas contraire (pas de retenu).
Exemple : Addition de 2 données sur 8 bits.
00000000
00000001
11111111

, CF = 1
00011000
00010000
00001000

, CF = 0
 Bit ou Indicateur de zéro (CZ) :
– CZ = 1, résultat d’une opération est nul.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
25/54
– CZ = 0, dans le cas contraire (résultat non nul).
Exemple : Addition de 2 données sur 8 bits.
00000000
00000001
11111111

, CF = 1 et CZ = 1
00011000
00010000
00001000

, CF = 0 et CZ = 0
 Bit ou Indicateur de signe (CS) :
– CS = 1, le bit le plus significatif du résultat d’une opération est
à 1 (le résultat est négatif car le résultat est codé en complément
à 2).
– CS = 0, le bit le plus significatif du résultat d’une opération est
à 0 (le résultat est positif).
Exemple : Addition de 2 données sur 8 bits.
00000000
00000001
11111111

, CS = 0
10011110
01010110
01001000

, CS = 1
 Bit ou Indicateur de débordement (OV) :
– OV = 1, dépassement de capacité de codage.
– OV = 0, pas de dépassement de codage.
Exemple : Addition des 2 données -64 et -65 sur 8 bits codées en
complément à 2 (cà2).
01111111
10111111
11000000

, CF = 1, CZ = 0, CS = 0 et OV = 1
o Les accumulateurs sont des registres de travail qui servent à stocker un
opérande au début d'une opération arithmétique et le résultat à la fin de
l'opération.
1.3. Les registres
 Un registre est un ensemble de bits qui permet de stocker une information binaire dans
un microprocesseur. Cette information peut être une instruction, une donnée a traitée,
ou une adresse d’une instruction. Il existe 6 registres fondamentaux qu’on trouve dans
chaque microprocesseur :
 Compteur ordinale ou compteur de programme (CP) de l’unité de
commande.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
26/54
 Registre d’instructions de l’unité de commande.
 Registre d’état de l’unité de traitement.
 L’accumulateur de l’unité de traitement.
 Registre d’adresse : ce registre est directement relié au compteur de
programme (CP), il représente une interface entre le compteur de
programme et le bus d’adresse (voir figure du schéma fonctionnel).
 Registre de données : il représente une interface entre le bus de
données et l’UAL (voir figure du schéma fonctionnel), ce registre
continent les données a traitées par l’UAL.
1.4. Schéma fonctionnel
2. Cycle d’exécution d’une instruction
 Le traitement d’une instruction peut être décomposé en trois phases :
o Phase 1: Recherche de l'instruction à traiter.
1. Le Compteur de Programmes PC contient l'adresse de l'instruction suivante
du programme. Cette valeur est placée sur le bus d'adresses par l'unité de
commande qui émet un ordre de lecture.
2. Au bout d'un certain temps (temps d'accès à la mémoire), le contenu de la
case mémoire sélectionnée est disponible sur le bus des données.
3. L'instruction est stockée dans le registre d’instruction du processeur.
Bus d’adresses
Bus de données
Programmes
Données
Acc
Registre
d’état
UAL
Registre
Données
Registre d’@
PC
Bloc logique de commande
Registre
d’instruction
Décodeur
d’instructio
ns
Horlog
e
Bus
Commande
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
27/54
o Phase 2: Décodage de l’instruction et recherche de l’opérande.
Le registre d'instruction contient maintenant le premier mot de l'instruction qui
peut être codée sur plusieurs mots. Ce premier mot contient le code opératoire
qui définit la nature de l'opération à effectuer (addition, rotation,...) et le
nombre de mots de l'instruction.
1. L'unité de commande transforme l'instruction en une suite de commandes
élémentaires nécessaires au traitement de l'instruction.
2. Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité
de commande récupère sa valeur sur le bus de données.
3. L’opérande est stocké dans un registre.
Microprocesseur
PC $2000
Instr 1RI
Décodeur
d’Instruction
Mémoire
Instr 1
Opér 1
Instr 2
Instr 3
.
.
.
$2000
$2001
$2002
$2003
$2004
$FFF
F
@ $2000
Instr1
1
2
3
Microprocesseur
PC $2000
Instr 1RI
Décodeur
d’Instruction
Mémoire
Instr 1
Opér 1
Instr 2
Instr 3
.
.
.
$2000
$2001
$2002
$2003
$2004
$FFF
F
@ $2001
Instr1
1
2
3
Bloc
logique de
commande
UAL
Opér 1Opér 2
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
28/54
o Phase 3: Exécution de l’instruction.
1. Le micro-programme réalisant l'instruction est exécuté.
2. Les drapeaux sont positionnés (registre d'état).
3. L'unité de commande positionne le PC pour l'instruction suivante.
3. Jeu d’instructions
3.1. Définition
 Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le
microprocesseur pourra exécuter.
 Il représente l’aspect programmable du microprocesseur : c’est de faire fonctionner le
microprocesseur dans le déroulement de l’application à exécuter.
 Ce jeu d’instruction doit respecter une certaine syntaxe, appelée syntaxe du langage de
programmation : Langage Assembleur.
3.2. Type d’instructions
 Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées
en 4 groupes :
o Transfert de données pour charger ou sauver en mémoire, effectuer des
transferts de registre à registre, etc…
o Opérations arithmétiques : addition, soustraction, division, multiplication
Microprocesseur
PC $2002
Instr 1RI
Décodeur
d’Instruction
Mémoire
Instr 1
Opér 1
Instr 2
Instr 3
.
.
.
$2000
$2001
$2002
$2003
$2004
$FFF
F
1
2
3
Bloc
logique de
commande
UAL
Opér 1Résult
CF=0,
CZ=1, …
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
29/54
o Opérations logiques : ET, OU, NON, NAND, comparaison, test, etc…
o Contrôle de séquence : branchement, test, etc…
3.3. Codage
 Les instructions et leurs opérandes (paramètres) sont stockés en mémoire principale.
La taille totale d’une instruction (nombre de bits nécessaires pour la représenter en
mémoire) dépend du type d’instruction et aussi du type d’opérande. Chaque
instruction est toujours codée sur un nombre entier d’octets afin de faciliter son
décodage par le processeur. Une instruction est composée de deux champs :
o Le code instruction, qui indique au processeur quelle instruction réaliser
o Le champ opérande qui contient la donnée, ou la référence à une donnée en
mémoire (son adresse).
Exemple :
Code Instruction Code Opérande
10010011 00111110
 Le nombre d'instructions du jeu d'instructions est directement lié au format du code
instruction. Ainsi un octet permet de distinguer au maximum 256 instructions
différentes.
3.4. Temps d’exécution
 Chaque instruction nécessite un certain nombre de cycles d’horloges pour s’effectuer.
 Le nombre de cycles dépend de la complexité de l’instruction.
 Il est plus long d’accéder à la mémoire principale qu’à un registre du processeur.
 La durée d’un cycle dépend de la fréquence d’horloge du séquenceur.
4. Langage de programmation
 Le langage machine est le langage compris par le microprocesseur. Ce langage est
difficile à maîtriser puisque chaque instruction est codée par une séquence propre de
bits. Afin de faciliter la tâche du programmeur, on a créé différents langages plus ou
moins évolués.
 Le langage assembleur est le langage le plus « proche » du langage machine. Il est
composé par des instructions en général assez rudimentaires que l’on appelle des
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
30/54
mnémoniques. Ce sont essentiellement des opérations de transfert de données entre
les registres et l'extérieur du microprocesseur (mémoire ou périphérique), ou des
opérations arithmétiques ou logiques. Chaque instruction représente un code machine
différent. Chaque microprocesseur peut posséder un assembleur différent.
 La difficulté de mise en œuvre de ce type de langage, et leur forte dépendance avec la
machine a nécessité la conception de langages de haut niveau, plus adaptés à l'homme,
et aux applications qu'il cherchait à développer. Faisant abstraction de toute
architecture de machine, ces langages permettent l'expression d'algorithmes sous une
forme plus facile à apprendre, et à dominer (C, Pascal, Java, etc…). Chaque
instruction en langage de haut niveau correspondra à une succession d’instructions en
langage assembleur. Une fois développé, le programme en langage de haut niveau
n’est donc pas compréhensible par le microprocesseur. Il faut le compiler pour le
traduire en assembleur puis l’assembler pour le convertir en code machine
compréhensible par le microprocesseur. Ces opérations sont réalisées à partir de
logiciels spécialisés appelés compilateur et assembleur.
5. Performances d’un microprocesseur
 On peut caractériser la puissance d’un microprocesseur par le nombre d’instructions
qu’il est capable de traiter par seconde. Pour cela, on définit :
o Le CPI (Cycle Par Instruction) qui représente le nombre moyen de cycles
d’horloge nécessaire pour l’exécution d’une instruction pour un
microprocesseur donné.
Langage Haut niveau
(for, if…then, write, etc…)
Langage Assembleur
(cmp, add, mov, etc…)
Langage Machine
(00011100, 11010011, etc…)
Compilation
Assemblage
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
31/54
o Le MIPS (Millions d'Instructions Par Seconde) qui représente la puissance de
traitement du microprocesseur :
CPI
F
MIPS H
 , avec MHzenFH
 Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter
la fréquence d'horloge (limitation matérielle), soit diminuer le CPI (choix d'un jeu
d'instruction adapté).
6. Notion d’architecture CISC et RISC
 Actuellement l’architecture des microprocesseurs se compose de deux grandes
familles :
o L’architecture CISC (Complex Instruction Set Computer)
o L’architecture RISC (Reduced Instruction Set Computer)
6.1. L’architecture CISC
6.1.1. Pourquoi
 CISC est l’architecture la plus ancienne, était la seule envisageable pour les machines
à microprocesseur.
 En effet, vu que la mémoire travaillait très lentement par rapport au processeur, on
pensait qu’il était plus intéressant de soumettre au microprocesseur des instructions
complexes.
 Ainsi, plutôt que de coder une opération complexe par plusieurs instructions plus
petites (qui demanderaient autant d’accès mémoire très lent).
 Il semblait préférable d’ajouter au jeu d’instructions du microprocesseur une
instruction complexe qui se chargerait de réaliser cette opération.
 On a donc eu tendance à incorporer au niveau processeur des instructions plus proches
de la structure de ces langages.
6.1.2. Comment
 C’est donc une architecture avec un grand nombre d’instructions où le
microprocesseur doit exécuter des tâches complexes par instruction unique.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
32/54
 Pour une tâche donnée, une machine CISC exécute ainsi un petit nombre
d’instructions mais chacune nécessite un plus grand nombre de cycles d’horloge.
 Le code machine de ces instructions varie d’une instruction à l’autre et nécessite donc
un décodeur complexe (micro-code).
6.2. L’architecture RISC
6.2.1. Pourquoi
 Des études statistiques menées au cours des années 1970 ont clairement montré que
les programmes générés par les compilateurs se contentaient le plus souvent
d'affectations, d'additions et de multiplications par des constantes.
 Ainsi, 80% des traitements des langages de haut niveau faisaient appel à seulement
20% des instructions du microprocesseur.
 D’où l’idée de réduire le jeu d’instructions à celles le plus couramment utilisées et
d’en améliorer la vitesse de traitement.
6.2.2. Comment
 C’est donc une architecture dans laquelle les instructions sont en nombre réduit
(chargement, branchement, appel sous-programme).
 Les architectures RISC peuvent donc être réalisées à partir de séquenceur câblé. Leur
réalisation libère de la surface permettant d’augmenter le nombre de registres ou
d’unités de traitement par exemple.
 Chacune de ces instructions s’exécutent ainsi en un cycle d’horloge.
 Les accès à la mémoire s’effectuent seulement à partir de deux instructions (Load et
Store). Par contre, les instructions complexes doivent être réalisées à partir de
séquences basées sur les instructions élémentaires, ce qui nécessite un compilateur très
évolué dans le cas de programmation en langage de haut niveau.
6.3. Comparaison
Le choix dépendra des applications visées. En effet, si on diminue le nombre d'instructions,
on crée des instructions complexes (CISC) qui nécessitent plus de cycles pour être décodées
et si on diminue le nombre de cycles par instruction, on crée des instructions simples (RISC)
mais on augmente alors le nombre d'instructions nécessaires pour réaliser le même traitement.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
33/54
Architecture RISC Architecture CISC
Instructions simples ne prenant qu’un seul
cycle machine.
Décodeur simple.
Beaucoup de registres.
Seules les instructions LOAD et STORE
ont accès à la mémoire.
Compilateur complexe.
Instructions complexes prenant plusieurs
cycles machines.
Décodeur complexe (microcode).
Peu de registres.
Toutes les instructions sont susceptibles
d’accéder à la mémoire.
Compilateur simple.
7. Amélioration de l’architecture de base
 L'ensemble des améliorations des microprocesseurs visent à diminuer le temps
d'exécution du programme :
1. La première idée qui vient à l’esprit est d’augmenter tout simplement la fréquence
de l’horloge du microprocesseur. Mais l’accélération des fréquences provoque un
surcroît de consommation ce qui entraîne une élévation de température. On est
alors amené à équiper les processeurs de systèmes de refroidissement ou à
diminuer la tension d’alimentation.
2. Une autre possibilité d’augmenter la puissance de traitement d’un microprocesseur
est de diminuer le nombre moyen de cycles d’horloge nécessaire à l’exécution
d’une instruction :
o Dans le cas d’une programmation en langage de haut niveau, cette
amélioration peut se faire en optimisant le compilateur. Il faut qu’il soit
capable de sélectionner les séquences d’instructions minimisant le nombre
moyen de cycles par instructions.
o Une autre solution est d’utiliser une architecture de microprocesseur qui
réduise le nombre de cycles par instruction.
7.1. Architecture Pipeline
7.1.1. Principe
 L’exécution d’une instruction est décomposée en une succession d’étapes et chaque
étape correspond à l’utilisation d’une des fonctions du microprocesseur. Lorsqu’une
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
34/54
instruction se trouve dans l’une des étapes, les composants associés aux autres étapes
ne sont pas utilisés. Le fonctionnement d’un microprocesseur simple n’est donc pas
efficace.
 L’architecture pipeline permet d’améliorer l’efficacité du microprocesseur. En effet,
lorsque la première étape de l’exécution d’une instruction est achevée, l’instruction
entre dans la seconde étape de son exécution et la première phase de l’exécution de
l’instruction suivante débute.
 Il peut donc y avoir une instruction en cours d’exécution dans chacune des étapes et
chacun des composants du microprocesseur peut être utilisé à chaque cycle d’horloge.
 Une machine pipeline se caractérise par le nombre d’étapes utilisées pour l’exécution
d’une instruction, on appelle aussi ce nombre d’étapes le nombre d’étages du pipeline.
Exemple d’une exécution en 4 phases :
Modèle classique :
Modèle pipeliné :
Recherche Décodage Exécution Sauv. Résultat
R1
D1
E1
S1
R2
D2
E2
S2
R3
D3
E3
S3
1 2 3 4 5 6 7 8 9 10 11 12
Nbre de
cycles
R1
D1
E1
S1
R2
D2
E2
S2
R3
D3
E3
S3
1 2 3 4 5 6 7 8 9 10 11 12
Nbre de
cycles
R4 R5 R6 R7 R8 R9
D4 D5 D6 D7 D8 D9
E4 E5 E6 E7 E8 E9
S4 S5 S6 S7 S8 S9
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
35/54
7.1.2. Gain de performance
 Dans cette structure, la machine débute l’exécution d’une instruction à chaque cycle et
le pipeline est pleinement occupé à partir du quatrième cycle.
 Le gain obtenu dépend donc du nombre d’étages du pipeline.
 En effet, pour exécuter n instructions, en supposant que chaque instruction s’exécute
en k cycles d’horloge, il faut :
o n.k cycles d’horloge pour une exécution séquentielle.
o k cycles d’horloge pour exécuter la première instruction puis n-1 cycles pour
les n-1 instructions suivantes si on utilise un pipeline de k étages.
 Donc lorsque le nombre n d’instructions à exécuter est grand par rapport à k, on
peut admettre qu’on divise le temps d’exécution par k.
Exemples :
 Les Pentium 2, 3 et 4 d’Intel comprennent respectivement un pipeline de 10, 12 et 20
étages.
7.2. Notion de cache mémoire
7.2.1. Principe
 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.
 Au départ cette mémoire était intégrée en dehors du microprocesseur mais elle fait
maintenant partie intégrante du microprocesseur.
 Le principe de cache est très simple : le microprocesseur n’a pas conscience de sa
présence et lui envoie toutes ses requêtes comme s’il agissait de la mémoire
principale:
o Soit la donnée ou l’instruction requise est présente dans le cache et elle est
alors envoyée directement au microprocesseur. On parle de succès de cache.
(a)
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
36/54
o 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.
On parle de défaut de cache. (b)
a)
b)
7.3. Architecture superscalaire
 Une autre façon de gagner en performance est d’exécuter plusieurs instructions en
même temps.
 L'approche superscalaire consiste à doter le microprocesseur de plusieurs unités de
traitement travaillant en parallèle.
 Les instructions sont alors réparties entre les différentes unités d'exécution.
Architecture scalaire :
Unité de
traitement
Unité de
commande
Cache
Microprocesseur Mémoire
1
2
Unité de
traitement
Unité de
commande
Cache
Microprocesseur Mémoire
1 2
34
I1 I2 I3 I4 I5 I6 I7 I8
N cycles
Unité de
traitement
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
37/54
Architecture superscalaire :
Remarque :
C'est le type d'architecture mise en œuvre dans les premiers Pentium d'Intel apparus en 1993.
7.4. Architecture pipeline et superscalaire
 Le principe est d’exécuté les instructions de façon pipeliné dans chacune des unités de
traitement travaillant en parallèle.
I1
I3
I5 I7
I2 I4 I6
I8
N/2 cycles
Unité de
traitement 1
Unité de
traitement 2
Recherche Décodage Exécution Sauv. RésultatUT1
Recherche Décodage Exécution Sauv. RésultatUT2
Nbre de
cycles
1 11
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
38/54
8. Etude du processeur 8088
 Le processeur 8086 d'Intel est à la base des processeurs Pentium actuels. Les
processeurs successifs (de PC) se sont en effet construits petit à petit en ajoutant à
chaque processeurs des instructions et des fonctionnalités supplémentaires,
mais en conservant à chaque fois les spécificités du processeur précédent.
8.1. Architecture externe du 8088
 Nombre de broches : 40.
 Bus de données de AD0 à AD7 : 8 broches.
 Bus d’adresses de AD0 à AD7 et de A8 à A19 : 20 broches.
(AD0 à AD7 représente à la fois le bus de données et une partie du bus d’adresses).
 L’adresse d’un mot mémoire est sur 5 bits : de 00000 H à FFFFF H.
A13
A12
A8
A9
A10
A11
A14
A15
A19
A18
A17
A16
AD7
AD0
Alimentation Masse
Horloge
Bus de commande
Signaux de
contrôle
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
39/54
8.1.1. Bus de commande
 RD : Broche de lecture mémoire ou interface.
Si 0RD le microprocesseur effectue une lecture de données à partir de la mémoire
ou d’une interface d’E/S.
 WR : Broche d’écriture.
Si 1WR le microprocesseur effectue une écriture dans la mémoire ou dans
l’interface d’E/S.
 MIO/ : Broche de sélection.
o Si 1/ MIO c’est la mémoire qui est sélectionnée pour une lecture ou une
écriture.
o Si 0/ MIO c’est l’interface qui est sélectionnée pour une lecture ou une
écriture.
Remarque :
RD WR MIO/ Opération
0 0 0 Lecture d’une interface d’E/S.
1 1 0 Ecriture dans une interface d’E/S.
0 0 1 Lecture de la mémoire.
1 1 1 Ecriture dans la mémoire.
 ALE : validité du bus d’adresse AD0 à AD7.
o Si ALE = 1, AD0 à AD7 représente l’octet faible d’une adresse : AD0 à AD7 et
A8 à AD19 (20 broches).
o Si ALE = 0, AD0 à AD7 représente le bus de données.
8088 Bus de commande
RD
WR
MIO /
ALE
READY
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
40/54
 READY : Broche de synchronisation.
o Si READY = 1, la mémoire ou l’interface d’E/S est prête à recevoir des
informations où à fournir des informations au microprocesseur.
o Si READY = 0, mémoire où interface d’E/S non prête pour le dialogue.
8.1.2. Signaux de contrôle
 INTR : Interruption masquable (considérée ou non par le microprocesseur).
o Si INTR = 1, une interruption est demandée.
Remarque : au niveau du registre d’état, il y a un bit appelé IF. Il est utilisé pour
accepter l’interruption demandée.
 Si IF = 1, l’interruption sera prise en compte par le microprocesseur 
saut au sous programme de dialogue : microproc – Interface d’E/S.
 Si IF = 0, l’interruption ne sera pas prise en compte par le
microprocesseur  pas de saut au sous programme de dialogue :
microproc – Interface d’E/S.
Si INTR est acceptée  INTR = 1 et IF = 1.
 INTA : Broche de réponse
o Si INTA = 0, pour informer l’interface d’E/S que l’interruption demandée a
été acceptée.
8088 Quelques signaux de contrôle
NMI
INTA
Hold
HOLDA
INTR
8088 Interface
D’E/S
Périphérique
externe
INTR
INTA
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
41/54
 NMI : Broche d’interruption non masquable.
o Si NMI = 1, saut obligatoire à un sous programme de dialogue avec l’interface
d’E/S qui a générée l’interruption NMI.
 HOLD : Broche de demande des bus de données, d’adresses et de commande.
o Si HOLD = 0, les bus de données, d’adresses et de commande effectuent la
liaison entre le microprocesseur et la mémoire.
 Echange d’information entre le microprocesseur et la mémoire.
o Si HOLD = 1, le contrôleur du disque dur demande les bus de données,
d’adresses et de commande (liaison entre le contrôleur et la mémoire).
 Echange d’information entre le contrôleur et la mémoire.
Utilisation : dans le cas d’un transfert d’une grande quantité d’informations entre une
interface d’E/S et la mémoire. Ceci pour augmenter la vitesse de transfert
d’informations.
 HOLDA : Broche de réponse à HOLD.
o Si HOLDA = 1, le microprocesseur informe l’interface qu’il est déconnecté de
ses bus.
 Elle pourra faire l’échange d’informations avec la mémoire.
8.2. Architecture interne du 8088
 Il existe deux unités internes distinctes: l'UE (Unité d'Exécution) et l'UIB (Unité
d'Interfaçage avec le Bus).
8.2.1. UIB
 Elle est constituée d’un ensemble de registres d’adressage, d’un générateur d’adresse
(compteur ordinal) et d’une file d’attente (registre d’instruction), son rôle est de
chercher séquentiellement les instructions et les données stockées dans la mémoire.
8.2.2. UE
 Elle est destinée au traitement de données, elle se compose essentiellement d’une
UAL, d’une unité de commande et des registres opérationnels et d’adressage. Son rôle
est de lire les instructions stockées dans la file d’attente pour décodage et d’exécution.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
42/54
8.3. Les registres du 8088
 Un registre est une petite partie de mémoire intégrée au microprocesseur, dans le but
de recevoir des informations spécifiques, notamment des adresses et des données
stockées durant l'exécution d'un programme.
 Les registres peuvent être utilisés dans toutes les opérations arithmétiques et logiques
que le programmeur insère dans le code assembleur.
 Un registre complet présente une grandeur de 16 bits.
 chaque registre est en réalité divisé en deux registres distincts de 8 bits.
 De cette façon, nous pouvons utiliser une partie du registre si nous désirons y stocker
une valeur n'excédant pas 8 bits.
 Si, au contraire, la valeur que nous désirons y ranger excède 8 bits, nous
utiliserons le registre complet, c'est à dire 16 bits.
 Le programmeur dispose de 8 registres internes de 16 bits qu'on peut diviser en deux
groupes :
o Groupe de données : formé par 4 registres de 16 bits (AX, BX, CX, et DX)
chaque registre peut être divisé en deux registres de 8 bits (AH, AL,
BH, BL, CH, CL, DH et DL).
o Groupe de pointeur et indexe : formé de 4 registres de 16 bits (SI, DI, SP, BP)
et font généralement référence à un emplacement en mémoire.
AH AL
BH BL
CH CL
DH DL
15 8 7 0
AX
BX
CX
DX
SP
BP
SI
DI
15 0
Stack Pointer
Base Pointer
Source Index
Destination Index
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
43/54
8.3.1. Groupe de données
Registre AX : (Accumulateur)
 Toutes les opérations de transferts de données avec les entrées-sorties ainsi que le
traitement des chaînes de caractères se font dans ce registre, de même les opérations
arithmétiques et logiques.
Registre BX : (Registre de Base)
 Il contient une adresse de décalage par rapport à une adresse de référence. Par
exemple, l'adresse de début d'un tableau.
Registre CX : (Le Compteur)
 Lors de l'exécution d'une boucle on a souvent recours à un compteur de boucles pour
compter le nombre d'itérations, le registre CX a été fait pour servir comme compteur
lors des instructions de boucle.
Registre DX
 On utilise le registre DX pour les opérations de multiplication et de division mais
surtout pour contenir le numéro d'un port d'entrée/sortie pour adresser les
interfaces d'E/S.
8.3.2. Groupe de pointeurs et indexes
 Ces registres sont plus spécialement adaptés au traitement des éléments dans la
mémoire. Ils sont en général munis de propriétés d'incrémentation et de
décrémentation.
Registre SP : pointeur sommet de la pile (Stach Pointer)
 Une pile est un ensemble de cases mémoire définie dans une RAM pour stocker
temporairement les données d’un programme et les contenues des registres interne du
microprocesseur. Elle est utilisée dans le cas d’une rupture de séquence d’un
programme, saut à un sous programme ou appel à une procédure.
 Si on n’effectue pas l’empilement des registres interne (AX, BX, CX et DX) utilisés
par un programme, leurs contenues peuvent être détruits par les instructions du sous
programme ou de la procédure appelée.
 Le registre SP (Pointeur de Pile) à une longueur de 16 bits, il permet l’adressage des
cases mémoire de la pile. Il pointe toujours sur la première case mémoire libre de la
pile.
 La pile a une structure LIFO (Last In First Out), dernier entré premier sortie, ainsi :
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
44/54
o Lors d’un empilement du contenu d’un registre interne, le contenu du registre
SP est décrémenté par 2 (SP=SP-2).
o Lors du dépilement, le contenu du registre SP est incrémenté par 2 (SP=SP+2).
Exemple :
RAM
Programme Principal
……..
Instructions
utilisant les
registres AX,
BX, CX et DX
……….
Empilement du contenu de
AX, BX, CX et DX
Saut à un sous-
programme
Dépilement du contenu de
AX, BX, CX et DX
……..
Instructions
suite du
programme
principal
……….
Instructions du sous-
programme utilisant les
registres AX, BX, CX et DX
AX
BX
CX
DX ….
….
….
AL
AH
BL
DH
RAM
Pile
Empilement
(Sauvegarde)
Dépilement
(Chargement)
RAM
11
01
01
0E
01 11
AX
ALAH
Empilement
Dépilement
FF4C
FF4D
FF4E
FF4F
FF50
FF4B
Sommet de la pile (1ère
case mémoire libre)
SP = FF4B
Après empilement et
avant dépilement
SP = FF4D
Après dépilement de AX
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
45/54
Registre BP : pointeur base de la pile (Base Pointer)
 C’est un registre de 16 bits qui permet l’adressage de la 1ère
case mémoire de la pile
(libre ou non).
 SP = BP, dans le cas d’une pile vide.
 BP reste constant durant l’exécution d’un programme.
Registres SI et DI : ( SI : Source Indexe, DI : Destination Indexe)
 A partir d’une adresse de base associée à un bloc de données (tableau, chaîne de
caractères, …) (l’adresse de base correspond à la 1ère
adresse de stockage), les
registres SI et DI permettent l’adressage séquentiel des données de ce bloc.
 Adresse d’une données du bloc = Adresse associée au bloc + contenu du registre SI ou
DI.
 Ces registres ont une taille de 16 bits chacun.
Exemple :
o Adresse du 1er
élément du bloc de données (SI = 0 ou DI = 0)
= 1000H + SI (ou DI) = 1000H
Puis, SI (ou DI) est incrémenté automatiquement :
SI = SI + 1 (ou DI = DI + 1)
o Adresse du 2er
élément du bloc de données (SI = 1 ou DI = 1)
= 1000H + SI (ou DI) = 1001H
Puis, SI (ou DI) est incrémenté automatiquement :
SI = SI + 1 (ou DI = DI + 1)
RAM
Adresse associée
au bloc
1000H
1001H
1100H
Bloc de données
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
46/54
8.3.3. Registre IP (Instruction Pointer)
 IP, Instruction Pointer ou Compteur de Programme ou Compteur Ordinale, contient
l'adresse de l'emplacement mémoire où se situe la prochaine instruction à exécuter.
Autrement dit, il doit indiquer au processeur la prochaine instruction à exécuter.
 Le registre IP est constamment modifié après l'exécution de chaque instruction afin
qu'il pointe sur l'instruction suivante.
8.3.4. Registre d’état (Flag)
 Le registre d'état FLAG sert à contenir l'état de certaines opérations effectuées par le
processeur.
 Par exemple, quand le résultat d'une opération est trop grand pour être contenu dans le
registre cible (celui qui doit contenir le résultat de l'opération), un bit spécifique du
registre d'état (le bit OF) est mis à 1 pour indiquer le débordement.
 Flags = Drapeaux, Les drapeaux sont des indicateurs suite à des opérations
arithmétiques ou logiques.
 Le registre d'état du 8088 est formé par les bits suivants :
Remarque :
X : bit non utilisé
CF : (Carry Flag)
 Bit indicateur au retenue, positionné à 1 lors d’un retenu dans une opération d’addition
(ADD) ou soustraction (SUB) (voir partie : 1.2. Unité de commande).
PF : (Parity Flag)
 Parité : si le résultat de l'opération contient un nombre pair de 1 cet indicateur est mis
à 1, sinon zéro.
Instruction Pointer
015
IP
FLAGSH
015
Registre d’état FLAGSL
8 7
X X X X OF DF IF TF SF ZF X AF X PF X CF
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
47/54
AF : (Auxiliary Flag)
 Demie retenue : Ce bit est égal à 1 si on a un retenue du quarter de poids faible
dans le quarter de poids plus fort.
ZF : (Zero Flag)
 Zéro : Cet indicateur est mis à 1 quand le résultat d'une opération est égal à zéro.
Lorsque l'on vient d'effectuer une soustraction (ou une addition). (voir partie :
1.2. Unité de commande).
SF : (Sign Flag)
 SF est positionné à 1 si le bit de poids fort du résultat d'une addition ou soustraction
est 1 ; sinon SF=0.
 SF est utile lorsque l'on manipule des entiers signés, car le bit de poids fort donne
alors le signe du résultat. (voir partie : 1.2. Unité de commande).
OF : (Overflow Flag)
 Débordement : si on a un débordement arithmétique ce bit est mis à 1, c-a-d le
résultat d'une opération excède la capacité de l'opérande (registre ou case mémoire),
sinon il est à 0.
DF : (Direction Flag)
 Auto Incrémentation/Décrémentation : utilisée pendant les instructions sur des blocs
de données (chaînes de caractères, tableaux, …) pour auto incrémenter ou auto
décrémenter le SI et le DI.
IF : (Interrupt Flag)
 Masque d'interruption : pour masquer les interruptions venant de l'extérieur ce bit est
mis à 0, dans le cas contraire le microprocesseur reconnaît l'interruption de
l'extérieur.
TF : (Trap Flag)
 Piége : pour que le microprocesseur exécute le programme pas à pas.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
48/54
8.3.5. Les registres segment
 Le 8088 a quatre registres segments de 16 bits chacun : CS (Code Segment),
DS (Data Segment), ES (Extra Segment) et SS (Stack Segment).
 Ces registres sont chargés de sélectionner les différents segments (parties) de la
mémoire en pointant sur le début de chacun d'entre eux.
 Chaque segment de la mémoire ne peut excéder les 65535 octets.
Registre CS : (Code Segment)
 Il pointe sur le segment qui contient les codes des instructions du programme en cours.
 Si la taille du programme dépasse les 65535 octets alors on peut diviser le code sur
plusieurs segments (chacun ne dépasse pas les 65535 octets) et pour basculer d'une
partie à une autre du programme il suffit de changer la valeur du registre CS et de cette
manière on résout le problème des programmes qui ont une taille supérieure à 65535
octets.
Registre DS : (Data Segment)
 Le registre segment de données pointe sur le segment des variables globales du
programme, bien évidemment la taille ne peut excéder 65535 octets. S
 Si on a des données qui dépassent cette limite, on utilise la même astuce citée dans la
remarque précédente mais dans ce cas on change la valeur de DS.
Registre ES : (Extra Segment)
 Le registre de données supplémentaires ES est utilisé par le microprocesseur lorsque
l'accès aux autres registres est devenu difficile ou impossible pour modifier des
données, de même ce segment est utilisé pour le stockage des chaînes de caractères.
CS
DS
SS
ES
15 0
Code Segment
Data Segment
Stack Segment
Extra Segment
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
49/54
Registre SS : (Stack Segment)
 Le registre SS pointe sur la pile : la pile est une zone mémoire ou on peut sauvegarder
les registres ou les adresses ou les données pour les récupérer après l'exécution d'un
sous programme ou l'exécution d'un programme d'interruption.
 En général il est conseillée de ne pas changer le contenu de ce registre car on risque de
perdre des informations très importantes (exemple les passages d'arguments entre
le programme principal et le sous programme).
8.4. Gestion de la mémoire
8.4.1. Introduction
 L'espace mémoire adressable (1 Méga Octet = 220
Octets, 20 broches du bus
d'adresse) du 8088 est divisé en quatre segment logiques allant jusqu'à 64 KOctets
chacun.
 L'accès à ces espaces est direct et simultané, or Le compteur de programme est de 16
bits donc la possibilité d'adressage est de 216
Octet= 64 KOctet (Ce qui ne couvre pas
la totalité de la mémoire), alors on utilise deux registres pour indiquer une adresse au
processeur.
 Chaque segment débute à l'endroit spécifié par le registre segment. Le
déplacement (offset) à l'intérieur de chaque segment se fait par un registre de
décalage qui permet de trouver une information à l'intérieur du segment.
o IP est un registre de déplacement dans le segment code (CS).
o SP est un registre de déplacement dans le segment pile (SS).
o SI et DI sont des registres de déplacement dans les segments de données (DS)
et segment de données supplémentaires (ES).
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
50/54
8.4.2. Adresse physique (segmentation de la mémoire)
 La mémoire est divisée en segments de taille 64 Ko.
 Chaque segment contient un type différent d’information :
o Segment Code, contient les instructions d’un programme,
o Segment Données, contient les données d’un programme,
o Segment Extra, contient des données supplémentaires (utilisé dans des données
blocs : chaînes de caractères, tableaux, …),
o Segment Pile, contient le contenu des registres interne AX, BX, CX et DX lors
d’une interruption.
 Chaque segment est adressé par deux registres :
o Registre Segment ou Registre Base : pointe sur le début du segment (Base),
o Registre de décalage : pointe sur l’information à l’intérieur du segment
(Offset).
 Ainsi, L’adresse physique = Base * 16 + Offset.
Remarque :
o L’adresse segment (Base) et l’adresse de déplacement (Offset) sont des
adresses sur 16 bits (4 chiffres hexadécimaux), adressées par des registres sur
16bits.
CS
DS
ES
SS
IP
SI ou DI
SI ou DI
SP
7 0
64 Ko
Segment
Code
64 Ko
Segment
Données
64 Ko
Segment
Extra
64 Ko
Segment
Pile
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
51/54
o Tandis que l’adresse physique est une adresse sur 20 bits (5 chiffres
hexadécimaux), adressées par le bus d’adresse de 20 broches.
 Le schéma de la figure suivante illustre la formation d'une adresse 20 bits à partir du
segment et du déplacement sur 16 bits :
Exemple :
Pour : CS = 1000H et IP = 2006H
 Adresse Physique = 10000H + 02006H = 12006H
8.4.3. Exemple de configuration des 4 segments de la mémoire
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Bits
Base 0 0 0 0
0 0 0 0 Offset
Adresse Physique
+
=
Segment
Code
Segment
Pile
Segment
Données
Segment
Extra
Zone
Inutilisée
Zone
Inutilisée
Zone
Inutilisée
Zone
Inutilisée
Case mémoire
Adresse physique
La mémoire
IP = 0000H
CS = 0200H
IP = FFFFH
DS = 1300H
SI = FFFFH
ES = 3000H
DI = FFFFH
SS = 4000H
SP = FFFFH
SI = 0000H
DI = 0000H
SP = 0000H
Adr phy = 0200H*10H+0000H = 02000H
11FFFH
13000H
22FFFH
30000H
3FFFFH
40000H
4FFFFH
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
52/54
Chapitre 5 : Les échanges de données
 La fonction d’un système à microprocesseurs, quel qu’il soit, est le traitement de
l’information. Il est donc évident qu’il doit acquérir l’information fournie par son
environnement et retourner les résultats de ses traitements.
 Chaque système est donc équipé d’une ou plusieurs interfaces d’entrées/sorties
permettant d’assurer la communication entre le microprocesseur et le monde extérieur.
 Durant une opération d’entrée/sortie, l’information est échangée entre la mémoire
principale et un périphérique relié au système, appelé périphérique d’entrée / sortie
(clavier, imprimante, écran, scanner, …).
 Cet échange nécessite une interface (ou contrôleur) pour gérer la connexion.
 Plusieurs techniques sont employées pour effectuer ces échanges.
1. L’interface d’entrée/sortie
1.1. Rôle
 Chaque périphérique sera relié au système par l’intermédiaire d’une interface (ou
contrôleur) dont le rôle est de :
o Connecter le périphérique au bus de données.
o Gérer les échanges entre le microprocesseur et le périphérique
1.2. Constitution
 Pour cela l’interface est constituée par :
o Un registre de commande dans lequel le processeur décrit le travail à
effectuer (sens de transfert, mode de transfert).
o Un ou plusieurs registres de données qui contiennent les mots à échanger
entre le périphérique et la mémoire.
o Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est
bien déroulé, etc…
 On accède aux données de l’interface par le biais d’un espace d’adresses
d’entrées/sorties.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
53/54
2. Techniques d’échange de données
 Avant d’envoyer ou de recevoir des informations, le microprocesseur doit savoir si un
périphérique est prêt à recevoir ou à transmettre une information pour que la
transmission se fasse correctement.
 Il existe 2 modes d’échange d’information :
o Le mode programmé par scrutation ou interruption où le microprocesseur
sert d’intermédiaire entre la mémoire et le périphérique.
o Le mode en accès direct à la mémoire (DMA) où le microprocesseur ne se
charge pas de l’échange de données.
2.1. Echange programmé
2.1.1. Scrutation
 Le microprocesseur interroge l’interface pour savoir si des transferts sont prêts. Tant
que des transferts ne sont pas prêts, le microprocesseur attend.
Inconvénient : le microprocesseur se retrouve souvent en phase d’attente. Il est occupé par
l’interface d’entrée/sortie  ce type d’échange est très lent.
2.1.2. Interruption
 Une interruption est un signal, pouvant être émis par tout dispositif externe au
microprocesseur.
 Le microprocesseur possède une ou plusieurs entrées réservées à cet effet.
 L’interruption interrompre le travail courant du microprocesseur pour forcer
l’exécution d’un programme traitant la cause de l’interruption.
 Ainsi, dans un échange de données par interruption, le microprocesseur exécute donc
son programme principal jusqu’à ce qu’il reçoive un signal sur sa ligne de requête
d’interruption. Il se charge alors d’effectuer le transfert de données entre l’interface et
la mémoire.
2.2. Echange direct avec la mémoire (DMA)
 Ce mode permet le transfert de blocs de données entre la mémoire et un périphérique
sans passer par le microprocesseur.
SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs
54/54
 Pour cela, un circuit appelé contrôleur de DMA (Direct Memory Access) prend en
charge les différentes opérations.
 Le DMA se charge entièrement du transfert d’un bloc de données. Le microprocesseur
doit tout de même :
o Initialiser l’échange en donnant au DMA l’identification du périphérique
concerné.
o Donner le sens du transfert.
o Fournir l’adresse du premier et du dernier mot concernés par le transfert.
3. Types de liaisons
 Les systèmes à microprocesseur utilisent deux types de liaisons différentes pour se
connecter à des périphériques :
o Liaison parallèle.
o Liaison série.
3.1. Liaison parallèle
 Dans ce type de liaison, tous les bits d’un mot sont transmis simultanément.
 Ce type de transmission permet des transferts rapides mais reste limitée à de faibles
distances de transmission à cause du nombre important de lignes nécessaires (coût).
3.2. Liaison série
 Dans ce type de liaison, les bits constitutifs d’un mot sont transmis les uns après les
autres sur un seul fil.
 Les distances de transmission peuvent donc être plus beaucoup plus importantes mais
la vitesse de transmission est plus faible.
Microprocesseur Interface Périphérique.
.
.
.
.
.
Microprocesseur Interface Périphérique

Contenu connexe

Tendances

Compte rendu tp automatique 1
Compte rendu tp automatique 1Compte rendu tp automatique 1
Compte rendu tp automatique 1hamdinho
 
ANALISIS DE SISTEMAS Y SEÑALES.pptx
ANALISIS DE SISTEMAS Y SEÑALES.pptxANALISIS DE SISTEMAS Y SEÑALES.pptx
ANALISIS DE SISTEMAS Y SEÑALES.pptxGustavoNuez55
 
T. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddl
T. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddlT. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddl
T. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddltawfik-masrour
 
Robotica - cinematica2
Robotica - cinematica2Robotica - cinematica2
Robotica - cinematica2Marc Llanos
 
Metre etude de_prix_cours_2
Metre etude de_prix_cours_2Metre etude de_prix_cours_2
Metre etude de_prix_cours_2m.a bensaaoud
 
Dessin technique cour singenieur
Dessin technique cour singenieurDessin technique cour singenieur
Dessin technique cour singenieurTout Droit
 
349665547 devis-general-pour-les-travaux-d-assainissement
349665547 devis-general-pour-les-travaux-d-assainissement349665547 devis-general-pour-les-travaux-d-assainissement
349665547 devis-general-pour-les-travaux-d-assainissementsimmsos
 
Transmission adherence 2
Transmission  adherence 2Transmission  adherence 2
Transmission adherence 2OussamaNssais
 
Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...
Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...
Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...Technoton
 
Practica 1 Expresiones lógicas de PLC
Practica 1 Expresiones lógicas de PLC Practica 1 Expresiones lógicas de PLC
Practica 1 Expresiones lógicas de PLC SANTIAGO PABLO ALBERTO
 
261507976 cotation-de-fabrication
261507976 cotation-de-fabrication261507976 cotation-de-fabrication
261507976 cotation-de-fabricationabdelkader SLIMANE
 

Tendances (20)

Résistance des matériaux
Résistance des  matériaux Résistance des  matériaux
Résistance des matériaux
 
Compte rendu tp automatique 1
Compte rendu tp automatique 1Compte rendu tp automatique 1
Compte rendu tp automatique 1
 
Chap 12 transmission du mouvement
Chap 12   transmission du mouvementChap 12   transmission du mouvement
Chap 12 transmission du mouvement
 
Dallage doc
Dallage docDallage doc
Dallage doc
 
ANALISIS DE SISTEMAS Y SEÑALES.pptx
ANALISIS DE SISTEMAS Y SEÑALES.pptxANALISIS DE SISTEMAS Y SEÑALES.pptx
ANALISIS DE SISTEMAS Y SEÑALES.pptx
 
Les chaudieres
Les chaudieresLes chaudieres
Les chaudieres
 
Bascules
BasculesBascules
Bascules
 
projet fin d'etude : ouvrage d'art
projet fin d'etude : ouvrage d'artprojet fin d'etude : ouvrage d'art
projet fin d'etude : ouvrage d'art
 
T. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddl
T. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddlT. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddl
T. Masrour - cours dynamique des systèmes - vibrations -chapitre1-1ddl
 
Robotica - cinematica2
Robotica - cinematica2Robotica - cinematica2
Robotica - cinematica2
 
Metre etude de_prix_cours_2
Metre etude de_prix_cours_2Metre etude de_prix_cours_2
Metre etude de_prix_cours_2
 
3698035.ppt
3698035.ppt3698035.ppt
3698035.ppt
 
Dessin technique cour singenieur
Dessin technique cour singenieurDessin technique cour singenieur
Dessin technique cour singenieur
 
349665547 devis-general-pour-les-travaux-d-assainissement
349665547 devis-general-pour-les-travaux-d-assainissement349665547 devis-general-pour-les-travaux-d-assainissement
349665547 devis-general-pour-les-travaux-d-assainissement
 
Algorithme DPLL
Algorithme DPLLAlgorithme DPLL
Algorithme DPLL
 
Transmission adherence 2
Transmission  adherence 2Transmission  adherence 2
Transmission adherence 2
 
Terminologie hall cm
Terminologie hall cmTerminologie hall cm
Terminologie hall cm
 
Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...
Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...
Capteurs de niveau de carburant avec Bluetooth et GSM. Webinaire Technoton. 0...
 
Practica 1 Expresiones lógicas de PLC
Practica 1 Expresiones lógicas de PLC Practica 1 Expresiones lógicas de PLC
Practica 1 Expresiones lógicas de PLC
 
261507976 cotation-de-fabrication
261507976 cotation-de-fabrication261507976 cotation-de-fabrication
261507976 cotation-de-fabrication
 

En vedette

JASPARD, M. LOGIC un service GeoWeb d’aide à la décision et à la coopération...
JASPARD, M. LOGIC  un service GeoWeb d’aide à la décision et à la coopération...JASPARD, M. LOGIC  un service GeoWeb d’aide à la décision et à la coopération...
JASPARD, M. LOGIC un service GeoWeb d’aide à la décision et à la coopération...IT-Gatineau2011
 
Intro_Programmation_Informatique
Intro_Programmation_InformatiqueIntro_Programmation_Informatique
Intro_Programmation_InformatiqueEmeric Tapachès
 
Algorithmic Forex Trading
Algorithmic Forex TradingAlgorithmic Forex Trading
Algorithmic Forex TradingInvestingTips
 
Digital elect total
Digital elect totalDigital elect total
Digital elect totalmasterslide
 
Combinators - Lightning Talk
Combinators - Lightning TalkCombinators - Lightning Talk
Combinators - Lightning TalkMike Harris
 
exercice_réseau
exercice_réseauexercice_réseau
exercice_réseaunoureddineb
 
Combinational circuit (7-Segment display)
Combinational circuit (7-Segment display)Combinational circuit (7-Segment display)
Combinational circuit (7-Segment display)ali9753
 
Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielleSylvain Leroy
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)mahbouba
 
combinational_circuits
combinational_circuitscombinational_circuits
combinational_circuitsBindu Madhavi
 
COMBINATIONAL CIRCUITS & FLIP FLOPS
COMBINATIONAL CIRCUITS & FLIP FLOPSCOMBINATIONAL CIRCUITS & FLIP FLOPS
COMBINATIONAL CIRCUITS & FLIP FLOPSStarlee Lathong
 
Lecture3 combinational blocks
Lecture3 combinational blocksLecture3 combinational blocks
Lecture3 combinational blocksNima Shafiee
 
Lecture 1
Lecture 1Lecture 1
Lecture 1GIKI
 
Exos de logique séquentielle
Exos de logique séquentielleExos de logique séquentielle
Exos de logique séquentielleMo Ur Ad Es-se
 

En vedette (20)

JASPARD, M. LOGIC un service GeoWeb d’aide à la décision et à la coopération...
JASPARD, M. LOGIC  un service GeoWeb d’aide à la décision et à la coopération...JASPARD, M. LOGIC  un service GeoWeb d’aide à la décision et à la coopération...
JASPARD, M. LOGIC un service GeoWeb d’aide à la décision et à la coopération...
 
Intro_Programmation_Informatique
Intro_Programmation_InformatiqueIntro_Programmation_Informatique
Intro_Programmation_Informatique
 
Algorithmic Forex Trading
Algorithmic Forex TradingAlgorithmic Forex Trading
Algorithmic Forex Trading
 
Digital elect total
Digital elect totalDigital elect total
Digital elect total
 
Combinators - Lightning Talk
Combinators - Lightning TalkCombinators - Lightning Talk
Combinators - Lightning Talk
 
Combinational logic
Combinational logicCombinational logic
Combinational logic
 
Bca i sem de lab
Bca i sem  de labBca i sem  de lab
Bca i sem de lab
 
exercice_réseau
exercice_réseauexercice_réseau
exercice_réseau
 
Combinational circuit (7-Segment display)
Combinational circuit (7-Segment display)Combinational circuit (7-Segment display)
Combinational circuit (7-Segment display)
 
58210401202 งาน 1 ss
58210401202 งาน 1 ss58210401202 งาน 1 ss
58210401202 งาน 1 ss
 
Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielle
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)
 
combinational_circuits
combinational_circuitscombinational_circuits
combinational_circuits
 
Canaux logiques et codage dans le gsm
Canaux logiques et codage dans le gsmCanaux logiques et codage dans le gsm
Canaux logiques et codage dans le gsm
 
COMBINATIONAL CIRCUITS & FLIP FLOPS
COMBINATIONAL CIRCUITS & FLIP FLOPSCOMBINATIONAL CIRCUITS & FLIP FLOPS
COMBINATIONAL CIRCUITS & FLIP FLOPS
 
Lecture3 combinational blocks
Lecture3 combinational blocksLecture3 combinational blocks
Lecture3 combinational blocks
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Exos de logique séquentielle
Exos de logique séquentielleExos de logique séquentielle
Exos de logique séquentielle
 
Combinational circuit
Combinational circuitCombinational circuit
Combinational circuit
 

Similaire à S3 cours architectureord

Bureau virtuel
Bureau virtuelBureau virtuel
Bureau virtuelraymen87
 
gestion d'approvisionnement et gestion de stock
gestion  d'approvisionnement et gestion de stockgestion  d'approvisionnement et gestion de stock
gestion d'approvisionnement et gestion de stockMaryam Boussaffa
 
chaleur et thermodynamique
chaleur et thermodynamiquechaleur et thermodynamique
chaleur et thermodynamiqueTeber Khalil
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE HINDOUSSATI
 
initiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesinitiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesjojo sekkat
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Mohamed Aziz Chetoui
 
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes Souhail Bouzidi
 
Mode d'emploi bouilloire électrique cuisinart cpk18e notice
Mode d'emploi bouilloire électrique cuisinart cpk18e noticeMode d'emploi bouilloire électrique cuisinart cpk18e notice
Mode d'emploi bouilloire électrique cuisinart cpk18e noticehabiague
 
Rg total co p f_mars2012_sans changements visibles-f
Rg total co p f_mars2012_sans changements visibles-fRg total co p f_mars2012_sans changements visibles-f
Rg total co p f_mars2012_sans changements visibles-fcreapik
 
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael HartlTutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael HartlMarc Maurer
 
Mémoire fin d'étude gestion des interventions
Mémoire fin d'étude gestion des interventionsMémoire fin d'étude gestion des interventions
Mémoire fin d'étude gestion des interventionsMohamed Arar
 
Rapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwokRapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwokAbdessamad IDRISSI
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...mouafekmazia
 

Similaire à S3 cours architectureord (20)

C08 site
C08 siteC08 site
C08 site
 
Bureau virtuel
Bureau virtuelBureau virtuel
Bureau virtuel
 
gestion d'approvisionnement et gestion de stock
gestion  d'approvisionnement et gestion de stockgestion  d'approvisionnement et gestion de stock
gestion d'approvisionnement et gestion de stock
 
chaleur et thermodynamique
chaleur et thermodynamiquechaleur et thermodynamique
chaleur et thermodynamique
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE
 
Deviens un Ninja avec Angular2
Deviens un Ninja avec Angular2Deviens un Ninja avec Angular2
Deviens un Ninja avec Angular2
 
Manuel 3
Manuel 3Manuel 3
Manuel 3
 
Manuel 3
Manuel 3Manuel 3
Manuel 3
 
initiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesinitiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corriges
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes
 
Bureautique
BureautiqueBureautique
Bureautique
 
Rapport pfev7
Rapport pfev7Rapport pfev7
Rapport pfev7
 
Mode d'emploi bouilloire électrique cuisinart cpk18e notice
Mode d'emploi bouilloire électrique cuisinart cpk18e noticeMode d'emploi bouilloire électrique cuisinart cpk18e notice
Mode d'emploi bouilloire électrique cuisinart cpk18e notice
 
Rg total co p f_mars2012_sans changements visibles-f
Rg total co p f_mars2012_sans changements visibles-fRg total co p f_mars2012_sans changements visibles-f
Rg total co p f_mars2012_sans changements visibles-f
 
Les 5S bureau
Les 5S bureauLes 5S bureau
Les 5S bureau
 
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael HartlTutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
 
Mémoire fin d'étude gestion des interventions
Mémoire fin d'étude gestion des interventionsMémoire fin d'étude gestion des interventions
Mémoire fin d'étude gestion des interventions
 
Rapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwokRapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwok
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 

Plus de yarsenv47 (16)

Js cours
 Js cours Js cours
Js cours
 
Algevre de bool
Algevre de boolAlgevre de bool
Algevre de bool
 
Numeration et codage_de_linfo
Numeration et codage_de_linfoNumeration et codage_de_linfo
Numeration et codage_de_linfo
 
Ch13
Ch13Ch13
Ch13
 
Ch12
Ch12Ch12
Ch12
 
Ch11
Ch11Ch11
Ch11
 
Ch10
Ch10Ch10
Ch10
 
Ch09
Ch09Ch09
Ch09
 
Ch08
Ch08Ch08
Ch08
 
Ch07
Ch07Ch07
Ch07
 
Ch06
Ch06Ch06
Ch06
 
Ch05
Ch05Ch05
Ch05
 
Ch04
Ch04Ch04
Ch04
 
Ch03
Ch03Ch03
Ch03
 
Ch02
Ch02Ch02
Ch02
 
Language C++ Ch01
Language C++ Ch01 Language C++ Ch01
Language C++ Ch01
 

S3 cours architectureord

  • 1. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 1/54 TABLE DES MATIERES CHAPITRE 1 : GENERALITES.................................................................................. 4 1. Introduction ...................................................................................................................... 4 2. Qu’est ce qu’une architecture ? ...................................................................................... 4 3. Quatre générations d’ordinateurs .................................................................................. 4 4. Qu’est ce qu’un microprocesseur ? ................................................................................ 5 5. Où trouve-t-on des systèmes à microprocesseur ? ........................................................ 7 6. Types d’information et numérisation............................................................................. 8 6.1. Le texte....................................................................................................................... 9 6.2. L’image ...................................................................................................................... 9 6.3. Le son et la vidéo ..................................................................................................... 10 7. Rappels ............................................................................................................................ 12 CHAPITRE 2 : ARCHITECTURE DE BASE............................................................ 13 1. Modèle de Von Neumann .............................................................................................. 13 2. L’unité centrale .............................................................................................................. 13 3. La mémoire principale................................................................................................... 14 4. Les interfaces d’entrées / sorties ................................................................................... 14 5. Les bus............................................................................................................................. 14 6. Décodage d’adresses....................................................................................................... 15 CHAPITRE 3 : LES MEMOIRES.............................................................................. 16 1. Organisation d’une mémoire......................................................................................... 16 2. Caractéristiques d’une mémoire................................................................................... 18 3. Différents types de mémoires ........................................................................................ 18 3.1. Les mémoires vives (RAM) ..................................................................................... 18 3.1.1. Les RAM Statiques .......................................................................................... 19 3.1.2. Les RAM Dynamiques..................................................................................... 19 3.2. Les mémoires mortes ............................................................................................... 19
  • 2. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 2/54 4. Critères de choix d’une mémoire.................................................................................. 20 5. Notion de hiérarchie mémoire....................................................................................... 20 CHAPITRE 4 : LE MICROPROCESSEUR............................................................... 22 1. Architecture de base d’un microprocesseur ................................................................ 22 1.1. L’unité de Commande.............................................................................................. 23 1.2. L’unité de Traitement............................................................................................... 23 1.3. Les registres.............................................................................................................. 25 1.4. Schéma fonctionnel.................................................................................................. 26 2. Cycle d’exécution d’une instruction ............................................................................. 26 3. Jeu d’instructions ........................................................................................................... 28 3.1. Définition ................................................................................................................. 28 3.2. Type d’instructions................................................................................................... 28 3.3. Codage...................................................................................................................... 29 3.4. Temps d’exécution ................................................................................................... 29 4. Langage de programmation .......................................................................................... 29 5. Performances d’un microprocesseur............................................................................ 30 6. Notion d’architecture CISC et RISC............................................................................ 31 6.1. L’architecture CISC ................................................................................................. 31 6.1.1. Pourquoi ........................................................................................................... 31 6.1.2. Comment .......................................................................................................... 31 6.2. L’architecture RISC ................................................................................................. 32 6.2.1. Pourquoi ........................................................................................................... 32 6.2.2. Comment .......................................................................................................... 32 6.3. Comparaison............................................................................................................. 32 7. Amélioration de l’architecture de base ........................................................................ 33 7.1. Architecture Pipeline................................................................................................ 33 7.1.1. Principe............................................................................................................. 33 7.1.2. Gain de performance ........................................................................................ 35 7.2. Notion de cache mémoire......................................................................................... 35 7.2.1. Principe............................................................................................................. 35 7.3. Architecture superscalaire........................................................................................ 36 7.4. Architecture pipeline et superscalaire ...................................................................... 37 8. Etude du processeur 8088.............................................................................................. 38 8.1. Architecture externe du 8088 ................................................................................... 38 8.1.1. Bus de commande ............................................................................................ 39 8.1.2. Signaux de contrôle.......................................................................................... 40 8.2. Architecture interne du 8088.................................................................................... 41 8.2.1. UIB................................................................................................................... 41 8.2.2. UE..................................................................................................................... 41 8.3. Les registres du 8088................................................................................................ 42 8.3.1. Groupe de données........................................................................................... 43
  • 3. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 3/54 8.3.2. Groupe de pointeurs et indexes ........................................................................ 43 8.3.3. Registre IP (Instruction Pointer) ...................................................................... 46 8.3.4. Registre d’état (Flag)........................................................................................ 46 8.3.5. Les registres segment ....................................................................................... 48 8.4. Gestion de la mémoire.............................................................................................. 49 8.4.1. Introduction ...................................................................................................... 49 8.4.2. Adresse physique (segmentation de la mémoire)............................................. 50 8.4.3. Exemple de configuration des 4 segments de la mémoire ............................... 51 CHAPITRE 5 : LES ECHANGES DE DONNEES .................................................... 52 1. L’interface d’entrée/sortie............................................................................................. 52 1.1. Rôle .......................................................................................................................... 52 1.2. Constitution.............................................................................................................. 52 2. Techniques d’échange de données ................................................................................ 53 2.1. Echange programmé................................................................................................. 53 2.1.1. Scrutation ......................................................................................................... 53 2.1.2. Interruption....................................................................................................... 53 2.2. Echange direct avec la mémoire (DMA).................................................................. 53 3. Types de liaisons............................................................................................................. 54 3.1. Liaison parallèle ....................................................................................................... 54 3.2. Liaison série ............................................................................................................. 54
  • 4. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 4/54 Chapitre 1 : Généralités 1. Introduction  Le cours d’architecture des systèmes à microprocesseur expose les principes de base du traitement programmé de l’information.  La mise en œuvre de ces systèmes s’appuie sur 2 modes de réalisation distincts : Matériel + Logiciel.  Matériel (Hardware) = Correspond à l’aspect concret du système : Unité Centrale, Mémoires, Organes d’Entrées / Sorties, etc…  Logiciel (Software) = correspond à un ensemble d’instructions : appelé programme, qui sont contenues dans les différentes mémoires du système et qui définissent les actions effectuées par le matériel. 2. Qu’est ce qu’une architecture ?  L’architecture d’un système à microprocesseur représente l’organisation de ses différentes unités et de leurs interconnexions.  Le choix d’une architecture est toujours le résultat d’un compromis : o Entre performances et coûts, o Entre efficacités et facilités de constructions, o Etc… 3. Quatre générations d’ordinateurs  Première génération : Les ordinateurs à tubes électroniques.
  • 5. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 5/54  Deuxième génération : Les ordinateurs à transistors.  Troisième génération : Les ordinateurs à circuits intégrés.  Quatrième génération : Les ordinateurs à microprocesseurs. 4. 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 (logique et/ou arithmétique) et séquentielles (registres, compteurs, etc…).  Le microprocesseur est capable d’interpréter et d’exécuter les instructions d’un programme.  Un microprocesseur est le résultat d’intégration d’un ensemble de transistors sur une seule puce mémoire.
  • 6. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 6/54 Ex : Le premier microprocesseur noté le 4004, qui était une unité de calcul 4 bits fonctionnant à 108 kHz, intégrant 2300 transistors, apparue en 1971. Tableau depuis 1971 à 2010 des architectures avec largeur de bus de données Date Nom Nombre de transistors Finesse de gravure (µm) Fréquence de l'horloge Largeur des données MIPS 1971 4004 2 300 108 kHz 4 bits/4 bits bus 1974 8080 6 000 6 2 MHz 8 bits/8 bits bus 0,64 1982 80286 134 000 1,5 6 MHz 16 bits/16 bits bus 1 1985 80386 275 000 1,5 16 à 40 MHz 32 bits/32 bits bus 5 1989 80486 1 200 000 1 25 à 100 MHz 32 bits/32 bits bus 20 1993 Pentium 3 100 000 0,8 à 0.28 60 à 233 MHz 32 bits/64 bits bus 100
  • 7. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 7/54 1997 Pentium II 7 500 000 0,35 à 0.25 233 à 450 MHz 32 bits/64 bits bus 300 1999 Pentium III 9 500 000 0,25 à 0.13 450 à 1400 MHz 32 bits/64 bits bus 510 2000 Pentium 4 42 000 000 0,18 à 0.065 1,3 à 3.8 GHz 32 bits/64 bits bus 1 700 2006 Core 2™ Duo 291 000 000 0,065 2,4 GHz 64 bits/64 bits bus 22 000 2007 Core 2™ Quad 2*291 000 000 0,065 3 GHz 64 bits/64 bits bus 2* 22000 2008 Core 2™ Duo (Penryn) 410 000 000 0,045 3,33 GHz 64 bits/64 bits bus ~24200 2008 Core 2™ Quad (Penryn) 2*410 000 000 0,045 3,2 GHz 64 bits/64 bits bus ~2* 24200 2010 Intel Core i7 (Nehalem) 731 000 000 0,045 - 0,032 (2010) 2,93 GHz (Core i7 940) - 3,2 GHz (Core i7 Extreme Edition 965) 64 bits/64 bits bus ~4* 24200 5. Où trouve-t-on des systèmes à microprocesseur ?  Les applications des systèmes à microprocesseurs sont multiples et variées : o Ordinateur o Console de jeux o Calculatrice
  • 8. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 8/54 o Télévision o Téléphone portable o Distributeur automatique d’argent o Robotique o Lecteur carte à puce, code barre o Automobile o Instrumentation o etc… 6. Types d’information et numérisation  On distingue 4 types d’informations : o Texte o Image o Son o Vidéo  Chaque type d’information nécessite une technique particulière de numérisation :  En sortie, chaque information sera codée sous forme d’une suite binaire.
  • 9. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 9/54 6.1. Le texte On distingue 2 types de textes :  Texte numérique : la numérisation consiste à écrire ce nombre numérique dans la base 2 ( conversion vers la base 2).  Texte non numérique : comme : caractères, symboles (*, $, ?, …), touche clavier (espace, tabulation, …), la numérisation est basée sur un code interne tel que : Code ASCII (ce type de codage est appelé codage interne)  Etablir des correspondances entre le texte non numérique et des suites binaires. 6.2. L’image  Une image numérique est décrite en un ensemble de lignes, chaque ligne en un ensemble de points  on parle de la Résolution. Ex : Image avec résolution 640*480  480 lignes et 640 points par ligne.  On distingue 3 types d’images :  Image noir et blanc : o Un seul bit suffit pour coder un point : 0 pour noir, 1 pour blanc.  Image en 256 nuances de gris : o Dans ce cas, chaque point est représenté par 1 octet = 8bits  28 =256 combinaisons  256 couleurs gris entre le blanc et le noir. Texte Image Son Vidéo Numérisation Données Informatiques
  • 10. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 10/54  Image en couleur : o Chaque couleur est une combinaison linéaire de 3 couleurs de base : Rouge (R), Bleu (B) et Vert (V). o Ainsi, une couleur quelconque X est exprimée comme : X=aR+bB+cV, ou a, b et c sont des doses de couleurs de base. o Ainsi, une image claire correspond à des doses allant de 0 à 255.  Par suite, 1 octet par dose  3 octets = 24 bits pour coder 1 point coloré. Exemple : une image de résolution 640*480 o Contient 640*480 points= 307200 points. o En noir et blanc  307200bits ~300Kbits. o En nuances de 256 gris  300Kbts*8bits ~ 2.4Mbits. o En couleur  2.4Mbits*24 = 57.6Mbits. 6.3. Le son et la vidéo  Le son et la vidéo sont des données continues en fonction du temps,  Ces données sont de type analogique, et sont transportées sur des signaux analogiques (forme sinusoïdale),  Les signaux analogiques sont numérisés en utilisant la technique de l’échantillonnage.  Echantillonnage : Le signal sur une période de temps (1 seconde) qui sera divisée en plusieurs échantillons, on mesure la hauteur du signal, on obtient alors une séquence de mesures, puis ces mesures sont codées en binaire.
  • 11. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 11/54 Exemple : Temps Amplitude du signal 1 2 3 4 5 6 7 1 sec 1. Un signal analogique sur une période de temps de 1sec Temps Amplitude du signal 1 2 3 4 5 6 7 1 sec 3. Chaque valeur est transformée en sa conversion binaire. La suite de ces conversions est la numérisation de cette donnée : 010001011101110101110 Temps Amplitude du signal 1 2 3 4 5 6 7 1 sec 2. Des mesures de l’amplitude du signal sur des périodes de temps (échantillons) 010 001 011 101 110 101 110
  • 12. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 12/54 7. Rappels  Les informations traitées par un microprocesseur sont de différents types (nombres, instructions, images, vidéo, etc…) mais elles sont toujours représentées sous un format binaire.  Le binaire est représenté physiquement par 2 niveaux de tensions différents.  En binaire, une information élémentaire est appelé bit et ne peut prendre que deux valeurs différentes : 0 ou 1.  Une information plus complexe sera codée sur plusieurs Bits. On appelle cet ensemble un mot. Un mot de 8 bits est appelé un Octet (Byte). Remarque : o 1 kilobit = 210 bit = 1024 bit o 1 mégabit = 210 kbit = 1024 kbit o 1 gigabit = 210 Mbit = 1024 Mbit  Pour plus d’informations sur le binaire, voir le complément du cours : Système de représentation des informations au TDs.
  • 13. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 13/54 Chapitre 2 : Architecture de base 1. Modèle de Von Neumann  Pour traiter une information, un microprocesseur seul ne suffit pas, il faut l’insérer au sein d’un système minimum de traitement programmé de l’information.  John Von Neumann est à l'origine d'un modèle de machine universelle de traitement programmé de l’information (1946).  Cette architecture sert de base à la plupart des systèmes à microprocesseur actuel. Elle est composée des éléments suivants : o une unité centrale (microprocesseur) o une mémoire principale o des interfaces d’entrées/sorties  Les différents organes du système sont reliés par des voies de communication appelées Bus. 2. L’unité centrale  Elle est composée par le microprocesseur qui est chargé d’interpréter et d’exécuter les instructions d’un programme, de lire ou de sauvegarder les résultats dans la mémoire et de communiquer avec les unités d’échange.  Toutes les activités du microprocesseur sont cadencées par une horloge.  On caractérise le microprocesseur par : o sa fréquence d’horloge : en MHz ou GHz o le nombre d’instructions par secondes qu’il est capable d’exécuter : en MIPS Unité Centrale Microprocesseur Mémoire Principale Interfaces d’E/S Bus
  • 14. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 14/54 o la taille des données qu’il est capable de traiter : en bits 3. La mémoire principale  Elle contient les instructions du ou des programmes en cours d’exécution et les données associées à ce programme.  Physiquement, elle se décompose souvent en : o Une mémoire morte (ROM = Read Only Memory) chargée de stocker le BIOS (Basic Input Output System, Système d’Entrées/Sorties de base) du système d’exploitation, il est donc responsable de la gestion du matériel. ces données ne sont pas perdues à la mise hors tension. C’est une mémoire à lecture seule. o Une mémoire vive (RAM = Random Access Memory) chargée de stocker les données intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces données sont perdues à la mise hors tension. Remarque :  Les disques durs, disquettes, CDROM, etc… sont des périphériques de stockage, et considérés comme des mémoires secondaires. 4. Les interfaces d’entrées / sorties  Elles permettent d’assurer la communication entre le microprocesseur et les périphériques. (capteur, clavier, moniteur ou afficheur, imprimante, modem, etc…). 5. Les bus  Un bus est un ensemble de fils (appelés broches) qui assure la transmission du même type d’information.  On retrouve trois types de bus véhiculant des informations en parallèle dans un système de traitement programmé de l’information : o Un bus de données : C’est un ensemble de broches qui véhiculent les instructions et les données à traités. Ce bus est bidirectionnel, le nombre de broches de ce bus correspond à la capacité de traitement du microprocesseur. Ex : - microprocesseur de 8 bits  Bus de données à 8 broches. - microprocesseur de 16 bits  Bus de données à 16 broches. - microprocesseur de 32 bits  Bus de données à 32 broches.
  • 15. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 15/54 o Un bus d'adresses: C’est un ensemble de broches qui permettent au microprocesseur d’adresser des différentes cases mémoires et des interfaces d’E/S. ce bus est unidirectionnel (du microprocesseur  mémoire centrale ou interface d’E/S). le nombre n de broches détermine la capacité maximale d’adressage qui est égal à 2n . Ex : - Bus d’adresses à 16 broches  adresser 216 = 65536 cases mémoires = 64 KOct. - Bus d’adresses à 20 broches  adresser 220 = 1 Méga Octet. - Bus d’adresses à 30 broches  adresser 230 = 1 Géga Octet. - Bus d’adresses à 40 broches  adresser 240 = 1 Téra Octet. o Un bus de commande: constitué par quelques conducteurs qui assurent la synchronisation des flux d'informations sur les bus des données et des adresses. 6. Décodage d’adresses  La multiplication des périphériques autour du microprocesseur oblige la présence d’un décodeur d’adresse chargé d’aiguiller les données présentes sur le bus de données.  En effet, le microprocesseur peut communiquer avec les différentes mémoires et les différents boîtiers d’interface. Ceux-ci sont tous reliés sur le même bus de données et afin d’éviter des conflits, un seul composant doit être sélectionné à la fois.  Ainsi, on a besoin d’un décodeur d’adresses qui doit attribuer à chaque périphérique une zone d’adresses spécifique. Unité Centrale Mémoire Principale Interfaces E/S Bus de données Bus d’adresses Décodeur d’adresses Bus de Commande
  • 16. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 16/54 Chapitre 3 : Les mémoires  Une mémoire est un circuit intégré permettant d’enregistrer, de conserver et de restituer des informations (instructions et variables).  Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, lecture lorsqu'on récupère des informations précédemment enregistrées. 1. Organisation d’une mémoire  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.  Avec une adresse de n bits il est possible de référencer au plus 2n cases mémoire. Case mémoireAdresse 7 = 111 6 = 110 5 = 101 4 = 100 3 = 011 2 = 010 1 = 001 0 = 000 0001 0110
  • 17. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 17/54  Chaque case est remplie par un mot de données (sa longueur m est toujours une puissance de 2).  Le nombre de broches du bus d’adresses d’un boîtier mémoire définit donc le nombre de cases mémoire que comprend le boîtier.  Le nombre de broches du bus de données définit la taille des données que l’on peut sauvegarder dans chaque case mémoire.  En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une entrée de commande qui permet de définir le type d’action que l’on effectue avec la mémoire (lecture/écriture) et une entrée de sélection qui permet de mettre les entrées/sorties du boîtier en haute impédance.  On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut distinguer : o Les entrées d’adresses o Les entrées de données o Les sorties de données o Les entrées de commandes :  Une entrée de sélection de lecture ou écriture ( WR / ).  Une entrée de sélection du circuit ( MIO/ ).  Une opération de lecture ou d’écriture de la mémoire suit toujours le même cycle : 1. Sélection de l’adresse 2. Choix de l’opération à effectuer ( WR / ) 3. Sélection de la mémoire ( MIO/ = 1) 4. Lecture ou écriture la donnée Mémoire Adresses (n bits) R / W IO/M Données (m bits)
  • 18. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 18/54 2. Caractéristiques d’une mémoire  La capacité : c’est le nombre total de bits que contient la mémoire. Elle s’exprime aussi souvent en octet.  Le format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire. On dit aussi que c’est la largeur du mot mémorisable.  Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une opération de lecture/écriture en mémoire et l'instant où la première information est disponible sur le bus de données.  Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes successives de lecture ou d'écriture.  Le débit : c’est le nombre maximum d'informations lues ou écrites par seconde.  Volatilité : elle caractérise la permanence des informations dans la mémoire. L'information stockée est volatile si elle risque d'être altérée par un défaut d'alimentation électrique et non volatile dans le cas contraire. Exemple : Chronogramme d’un cycle de lecture 3. Différents types de mémoires 3.1. Les mémoires vives (RAM)  Une mémoire vive sert au stockage temporaire de données.  Elle doit avoir un temps de cycle très court pour ne pas ralentir le microprocesseur. Bus @ @ x DxBus D Données Accessibles T accès T cycle
  • 19. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 19/54  Les mémoires vives sont en général volatiles : elles perdent leurs informations en cas de coupure d'alimentation.  Il existe deux grandes familles de mémoires RAM (Random Acces Memory : mémoire à accès aléatoire) : o Les RAM statiques o Les RAM dynamiques 3.1.1. Les RAM Statiques  Le bit mémoire d’une RAM Statique (SRAM) contient entre 4 à 6 transistors.  Les SRAM sont non volatiles tant qu’il n’y a pas de coupure d’alimentation.  Les SRAM sont plus rapides (T accès) que les RAM Dynamiques (DRAM).  Au niveau du coût, les SRAM sont plus chers que les DRAM.  Les SRAM sont utilisées lorsque le facteur vitesse est critique, notamment pour des mémoires de petite taille comme les caches et les registres. 3.1.2. Les RAM Dynamiques  Le bit mémoire d’une RAM Dynamique (DRAM) contient un seul transistor.  Cette technique permet une plus grande densité d'intégration, car un point mémoire nécessite environ quatre fois moins de transistors que dans une mémoire statique. Sa consommation s’en retrouve donc aussi très réduite.  Les DRAM sont moins chers que les SRAM.  Les DRAM doivent être rafraîchis régulièrement pour entretenir la mémorisation : l’information dans le transistor est perdue si on ne la régénère pas périodiquement. Donc toute lecture doit être suivie d’une réécriture.  Ce rafraîchissement indispensable a plusieurs conséquences : o Gestion compliquée des DRAM. o Temps d’accès plus important.  En général les DRAM, qui offrent une plus grande densité d'information et un coût par bit plus faible, sont utilisés pour la mémoire centrale. 3.2. Les mémoires mortes  Pour certaines applications, il est nécessaire de pouvoir conserver des informations de façon permanente même lorsque l'alimentation électrique est interrompue.
  • 20. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 20/54  On utilise alors des mémoires mortes ou mémoires à lecture seule (ROM : Read Only Memory). Ces mémoires sont non volatiles.  L’inscription en mémoire des données reste possible est appelée programmation.  Suivant le type de ROM, la méthode de programmation changera. Il existe donc plusieurs types de ROM : o ROM : Elle est programmée par le fabricant et son contenu ne peut plus être ni modifié, ni effacé par l'utilisateur. o PROM : C’est une ROM qui peut être programmée une seule fois par l'utilisateur (Programmable ROM). La programmation est réalisée à partir d’un programmateur spécifique o EPROM : Pour faciliter la mise au point d'un programme ou tout simplement permettre une erreur de programmation, il est intéressant de pouvoir reprogrammer une PROM. L'EPROM (Erasable Programmable ROM) est une PROM qui peut être effacée. o FLASH EPROM : est une mémoire programmable et effaçable électriquement. Elle répond ainsi à l’inconvénient principal de l’EPROM (Impossible de sélectionner une seule cellule à effacer) et peut être reprogrammée in situ (mot par mot). 4. Critères de choix d’une mémoire  Les principaux critères à retenir sont : o Capacité o Vitesse o Consommation o Coût 5. Notion de hiérarchie mémoire Une mémoire idéale serait une mémoire de grande capacité, capable de stocker un maximum d’informations et possédant un temps d’accès très faible afin de pouvoir travailler rapidement sur ces informations. Mais il se trouve que les mémoires de grande capacité sont souvent très lentes et que les mémoires rapides sont très chères. Et pourtant, la vitesse d’accès à la mémoire conditionne dans une large mesure les performances d’un système. En effet, c’est là que se trouve le goulot d’étranglement entre un microprocesseur capable de traiter des
  • 21. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 21/54 informations très rapidement et une mémoire beaucoup plus lente (ex : processeur actuel à 3Ghz et mémoire à 400MHz). Or, on n’a jamais besoin de toutes les informations au même moment. Afin d’obtenir le meilleur compromis coût - performance, on définie donc une hiérarchie mémoire. On utilise des mémoires de faible capacité mais très rapide pour stocker les informations dont le microprocesseur se sert le plus et on utilise des mémoires de capacité importante mais beaucoup plus lente pour stocker les informations dont le microprocesseur se sert le moins. Ainsi, plus on s’éloigne du microprocesseur et plus la capacité et le temps d’accès des mémoires vont augmenter.  Les registres sont les éléments de mémoire les plus rapides. Ils sont situés au niveau du processeur et servent au stockage des opérandes et des résultats intermédiaires.  La mémoire cache est une mémoire rapide de faible capacité destinée à accélérer l’accès à la mémoire centrale en stockant les données les plus utilisées.  La mémoire principale est l’organe principal de rangement des informations. Elle contient les programmes (instructions et données) et est plus lente que les deux mémoires précédentes.  La mémoire d’appui sert de mémoire intermédiaire entre la mémoire centrale et les mémoires de masse. Elle joue le même rôle que la mémoire cache.  La mémoire de masse est une mémoire périphérique de grande capacité utilisée pour le stockage permanent ou la sauvegarde des informations. Elle utilise pour cela des supports magnétiques (disque dur) ou optiques (CDROM, DVDROM). Mémoire de masse Mémoire d’appui Mémoire principale Mémoire cache Registres < 400 oct 8Ko à 4Mo Jusqu’à 1Go 2 à 4 Go 200Go 1 ns 5 ns 10 ns 5 ms + Vitesse + Capacité
  • 22. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 22/54 Chapitre 4 : Le microprocesseur  Un microprocesseur 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. 1. Architecture de base d’un microprocesseur  Un microprocesseur est construit autour de deux éléments principaux : o Une unité de commande. o Une unité de traitement.  Ces unités sont associées à des registres chargés de stocker les différentes informations à traiter.  Ces trois éléments sont reliés entre eux par des bus interne (Adresses, Données et Commande) permettant les échanges d’informations. Unité de Traitement Unité de Commande Bus d’adresses Bus de données Programmes Données @ D
  • 23. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 23/54 Remarque :  Il existe deux types de registres : o Les registres d'usage général permettent à l'unité de traitement de manipuler des données à vitesse élevée. Ils sont connectés au bus de données interne au microprocesseur. o Les registres d'adresses (pointeurs) connectés sur le bus adresses. 1.1. L’unité de Commande 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 constitué par un registre dont le contenu est initialisé avec l'adresse de la première instruction du programme. Il contient toujours l’adresse de l’instruction à exécuter.  Le registre d'instruction et le décodeur d'instruction : chacune des instructions à exécuter est rangée dans le registre instruction puis est décodée par le décodeur d’instruction.  Bloc logique de commande (ou séquenceur) : Il organise l'exécution des instructions au rythme d’une horloge. Il élabore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction des divers signaux de commande provenant du décodeur d’instruction ou du registre d’état par exemple. Il s'agit d'un automate réalisé soit de façon câblée (obsolète), soit de façon micro- programmée, on parle alors de microprocesseur. 1.2. L’unité de Traitement  C’est le cœur du microprocesseur. Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions. Cette unité est composée de : o L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, Ou exclusif, etc…) ou arithmétique (Addition, soustraction, multiplication).
  • 24. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 24/54  Table logique de ET (produit) A B A ET B (noté A .B) 0 0 0 0 1 0 1 0 0 1 1 1  Table logique de OU (Somme) A B A OU B (noté A +B) 0 0 0 0 1 1 1 0 1 1 1 1  Table logique de Ou exclusif A B A OU Exclusif B (noté BA ) 0 0 0 0 1 0 1 0 0 1 1 1 o Le registre d’état : ce registre est directement relié à l’UAL, il stocke certaines informations particulières concernant les opérations effectuées par l’UAL. Ce registre est généralement composé de 8 bits ou 16 bits, quelques bits de ce registre (connu sous le nom d’indicateurs d’états).  Bit ou Indicateur de retenue (CF) : – CF = 1, il y a un retenu à la fin d’une opération d’addition ou soustraction. – CF = 0, dans le cas contraire (pas de retenu). Exemple : Addition de 2 données sur 8 bits. 00000000 00000001 11111111  , CF = 1 00011000 00010000 00001000  , CF = 0  Bit ou Indicateur de zéro (CZ) : – CZ = 1, résultat d’une opération est nul.
  • 25. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 25/54 – CZ = 0, dans le cas contraire (résultat non nul). Exemple : Addition de 2 données sur 8 bits. 00000000 00000001 11111111  , CF = 1 et CZ = 1 00011000 00010000 00001000  , CF = 0 et CZ = 0  Bit ou Indicateur de signe (CS) : – CS = 1, le bit le plus significatif du résultat d’une opération est à 1 (le résultat est négatif car le résultat est codé en complément à 2). – CS = 0, le bit le plus significatif du résultat d’une opération est à 0 (le résultat est positif). Exemple : Addition de 2 données sur 8 bits. 00000000 00000001 11111111  , CS = 0 10011110 01010110 01001000  , CS = 1  Bit ou Indicateur de débordement (OV) : – OV = 1, dépassement de capacité de codage. – OV = 0, pas de dépassement de codage. Exemple : Addition des 2 données -64 et -65 sur 8 bits codées en complément à 2 (cà2). 01111111 10111111 11000000  , CF = 1, CZ = 0, CS = 0 et OV = 1 o Les accumulateurs sont des registres de travail qui servent à stocker un opérande au début d'une opération arithmétique et le résultat à la fin de l'opération. 1.3. Les registres  Un registre est un ensemble de bits qui permet de stocker une information binaire dans un microprocesseur. Cette information peut être une instruction, une donnée a traitée, ou une adresse d’une instruction. Il existe 6 registres fondamentaux qu’on trouve dans chaque microprocesseur :  Compteur ordinale ou compteur de programme (CP) de l’unité de commande.
  • 26. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 26/54  Registre d’instructions de l’unité de commande.  Registre d’état de l’unité de traitement.  L’accumulateur de l’unité de traitement.  Registre d’adresse : ce registre est directement relié au compteur de programme (CP), il représente une interface entre le compteur de programme et le bus d’adresse (voir figure du schéma fonctionnel).  Registre de données : il représente une interface entre le bus de données et l’UAL (voir figure du schéma fonctionnel), ce registre continent les données a traitées par l’UAL. 1.4. Schéma fonctionnel 2. Cycle d’exécution d’une instruction  Le traitement d’une instruction peut être décomposé en trois phases : o Phase 1: Recherche de l'instruction à traiter. 1. Le Compteur de Programmes PC contient l'adresse de l'instruction suivante du programme. Cette valeur est placée sur le bus d'adresses par l'unité de commande qui émet un ordre de lecture. 2. Au bout d'un certain temps (temps d'accès à la mémoire), le contenu de la case mémoire sélectionnée est disponible sur le bus des données. 3. L'instruction est stockée dans le registre d’instruction du processeur. Bus d’adresses Bus de données Programmes Données Acc Registre d’état UAL Registre Données Registre d’@ PC Bloc logique de commande Registre d’instruction Décodeur d’instructio ns Horlog e Bus Commande
  • 27. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 27/54 o Phase 2: Décodage de l’instruction et recherche de l’opérande. Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut être codée sur plusieurs mots. Ce premier mot contient le code opératoire qui définit la nature de l'opération à effectuer (addition, rotation,...) et le nombre de mots de l'instruction. 1. L'unité de commande transforme l'instruction en une suite de commandes élémentaires nécessaires au traitement de l'instruction. 2. Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de commande récupère sa valeur sur le bus de données. 3. L’opérande est stocké dans un registre. Microprocesseur PC $2000 Instr 1RI Décodeur d’Instruction Mémoire Instr 1 Opér 1 Instr 2 Instr 3 . . . $2000 $2001 $2002 $2003 $2004 $FFF F @ $2000 Instr1 1 2 3 Microprocesseur PC $2000 Instr 1RI Décodeur d’Instruction Mémoire Instr 1 Opér 1 Instr 2 Instr 3 . . . $2000 $2001 $2002 $2003 $2004 $FFF F @ $2001 Instr1 1 2 3 Bloc logique de commande UAL Opér 1Opér 2
  • 28. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 28/54 o Phase 3: Exécution de l’instruction. 1. Le micro-programme réalisant l'instruction est exécuté. 2. Les drapeaux sont positionnés (registre d'état). 3. L'unité de commande positionne le PC pour l'instruction suivante. 3. Jeu d’instructions 3.1. Définition  Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le microprocesseur pourra exécuter.  Il représente l’aspect programmable du microprocesseur : c’est de faire fonctionner le microprocesseur dans le déroulement de l’application à exécuter.  Ce jeu d’instruction doit respecter une certaine syntaxe, appelée syntaxe du langage de programmation : Langage Assembleur. 3.2. Type d’instructions  Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées en 4 groupes : o Transfert de données pour charger ou sauver en mémoire, effectuer des transferts de registre à registre, etc… o Opérations arithmétiques : addition, soustraction, division, multiplication Microprocesseur PC $2002 Instr 1RI Décodeur d’Instruction Mémoire Instr 1 Opér 1 Instr 2 Instr 3 . . . $2000 $2001 $2002 $2003 $2004 $FFF F 1 2 3 Bloc logique de commande UAL Opér 1Résult CF=0, CZ=1, …
  • 29. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 29/54 o Opérations logiques : ET, OU, NON, NAND, comparaison, test, etc… o Contrôle de séquence : branchement, test, etc… 3.3. Codage  Les instructions et leurs opérandes (paramètres) sont stockés en mémoire principale. La taille totale d’une instruction (nombre de bits nécessaires pour la représenter en mémoire) dépend du type d’instruction et aussi du type d’opérande. Chaque instruction est toujours codée sur un nombre entier d’octets afin de faciliter son décodage par le processeur. Une instruction est composée de deux champs : o Le code instruction, qui indique au processeur quelle instruction réaliser o Le champ opérande qui contient la donnée, ou la référence à une donnée en mémoire (son adresse). Exemple : Code Instruction Code Opérande 10010011 00111110  Le nombre d'instructions du jeu d'instructions est directement lié au format du code instruction. Ainsi un octet permet de distinguer au maximum 256 instructions différentes. 3.4. Temps d’exécution  Chaque instruction nécessite un certain nombre de cycles d’horloges pour s’effectuer.  Le nombre de cycles dépend de la complexité de l’instruction.  Il est plus long d’accéder à la mémoire principale qu’à un registre du processeur.  La durée d’un cycle dépend de la fréquence d’horloge du séquenceur. 4. Langage de programmation  Le langage machine est le langage compris par le microprocesseur. Ce langage est difficile à maîtriser puisque chaque instruction est codée par une séquence propre de bits. Afin de faciliter la tâche du programmeur, on a créé différents langages plus ou moins évolués.  Le langage assembleur est le langage le plus « proche » du langage machine. Il est composé par des instructions en général assez rudimentaires que l’on appelle des
  • 30. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 30/54 mnémoniques. Ce sont essentiellement des opérations de transfert de données entre les registres et l'extérieur du microprocesseur (mémoire ou périphérique), ou des opérations arithmétiques ou logiques. Chaque instruction représente un code machine différent. Chaque microprocesseur peut posséder un assembleur différent.  La difficulté de mise en œuvre de ce type de langage, et leur forte dépendance avec la machine a nécessité la conception de langages de haut niveau, plus adaptés à l'homme, et aux applications qu'il cherchait à développer. Faisant abstraction de toute architecture de machine, ces langages permettent l'expression d'algorithmes sous une forme plus facile à apprendre, et à dominer (C, Pascal, Java, etc…). Chaque instruction en langage de haut niveau correspondra à une succession d’instructions en langage assembleur. Une fois développé, le programme en langage de haut niveau n’est donc pas compréhensible par le microprocesseur. Il faut le compiler pour le traduire en assembleur puis l’assembler pour le convertir en code machine compréhensible par le microprocesseur. Ces opérations sont réalisées à partir de logiciels spécialisés appelés compilateur et assembleur. 5. Performances d’un microprocesseur  On peut caractériser la puissance d’un microprocesseur par le nombre d’instructions qu’il est capable de traiter par seconde. Pour cela, on définit : o Le CPI (Cycle Par Instruction) qui représente le nombre moyen de cycles d’horloge nécessaire pour l’exécution d’une instruction pour un microprocesseur donné. Langage Haut niveau (for, if…then, write, etc…) Langage Assembleur (cmp, add, mov, etc…) Langage Machine (00011100, 11010011, etc…) Compilation Assemblage
  • 31. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 31/54 o Le MIPS (Millions d'Instructions Par Seconde) qui représente la puissance de traitement du microprocesseur : CPI F MIPS H  , avec MHzenFH  Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter la fréquence d'horloge (limitation matérielle), soit diminuer le CPI (choix d'un jeu d'instruction adapté). 6. Notion d’architecture CISC et RISC  Actuellement l’architecture des microprocesseurs se compose de deux grandes familles : o L’architecture CISC (Complex Instruction Set Computer) o L’architecture RISC (Reduced Instruction Set Computer) 6.1. L’architecture CISC 6.1.1. Pourquoi  CISC est l’architecture la plus ancienne, était la seule envisageable pour les machines à microprocesseur.  En effet, vu que la mémoire travaillait très lentement par rapport au processeur, on pensait qu’il était plus intéressant de soumettre au microprocesseur des instructions complexes.  Ainsi, plutôt que de coder une opération complexe par plusieurs instructions plus petites (qui demanderaient autant d’accès mémoire très lent).  Il semblait préférable d’ajouter au jeu d’instructions du microprocesseur une instruction complexe qui se chargerait de réaliser cette opération.  On a donc eu tendance à incorporer au niveau processeur des instructions plus proches de la structure de ces langages. 6.1.2. Comment  C’est donc une architecture avec un grand nombre d’instructions où le microprocesseur doit exécuter des tâches complexes par instruction unique.
  • 32. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 32/54  Pour une tâche donnée, une machine CISC exécute ainsi un petit nombre d’instructions mais chacune nécessite un plus grand nombre de cycles d’horloge.  Le code machine de ces instructions varie d’une instruction à l’autre et nécessite donc un décodeur complexe (micro-code). 6.2. L’architecture RISC 6.2.1. Pourquoi  Des études statistiques menées au cours des années 1970 ont clairement montré que les programmes générés par les compilateurs se contentaient le plus souvent d'affectations, d'additions et de multiplications par des constantes.  Ainsi, 80% des traitements des langages de haut niveau faisaient appel à seulement 20% des instructions du microprocesseur.  D’où l’idée de réduire le jeu d’instructions à celles le plus couramment utilisées et d’en améliorer la vitesse de traitement. 6.2.2. Comment  C’est donc une architecture dans laquelle les instructions sont en nombre réduit (chargement, branchement, appel sous-programme).  Les architectures RISC peuvent donc être réalisées à partir de séquenceur câblé. Leur réalisation libère de la surface permettant d’augmenter le nombre de registres ou d’unités de traitement par exemple.  Chacune de ces instructions s’exécutent ainsi en un cycle d’horloge.  Les accès à la mémoire s’effectuent seulement à partir de deux instructions (Load et Store). Par contre, les instructions complexes doivent être réalisées à partir de séquences basées sur les instructions élémentaires, ce qui nécessite un compilateur très évolué dans le cas de programmation en langage de haut niveau. 6.3. Comparaison Le choix dépendra des applications visées. En effet, si on diminue le nombre d'instructions, on crée des instructions complexes (CISC) qui nécessitent plus de cycles pour être décodées et si on diminue le nombre de cycles par instruction, on crée des instructions simples (RISC) mais on augmente alors le nombre d'instructions nécessaires pour réaliser le même traitement.
  • 33. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 33/54 Architecture RISC Architecture CISC Instructions simples ne prenant qu’un seul cycle machine. Décodeur simple. Beaucoup de registres. Seules les instructions LOAD et STORE ont accès à la mémoire. Compilateur complexe. Instructions complexes prenant plusieurs cycles machines. Décodeur complexe (microcode). Peu de registres. Toutes les instructions sont susceptibles d’accéder à la mémoire. Compilateur simple. 7. Amélioration de l’architecture de base  L'ensemble des améliorations des microprocesseurs visent à diminuer le temps d'exécution du programme : 1. La première idée qui vient à l’esprit est d’augmenter tout simplement la fréquence de l’horloge du microprocesseur. Mais l’accélération des fréquences provoque un surcroît de consommation ce qui entraîne une élévation de température. On est alors amené à équiper les processeurs de systèmes de refroidissement ou à diminuer la tension d’alimentation. 2. Une autre possibilité d’augmenter la puissance de traitement d’un microprocesseur est de diminuer le nombre moyen de cycles d’horloge nécessaire à l’exécution d’une instruction : o Dans le cas d’une programmation en langage de haut niveau, cette amélioration peut se faire en optimisant le compilateur. Il faut qu’il soit capable de sélectionner les séquences d’instructions minimisant le nombre moyen de cycles par instructions. o Une autre solution est d’utiliser une architecture de microprocesseur qui réduise le nombre de cycles par instruction. 7.1. Architecture Pipeline 7.1.1. Principe  L’exécution d’une instruction est décomposée en une succession d’étapes et chaque étape correspond à l’utilisation d’une des fonctions du microprocesseur. Lorsqu’une
  • 34. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 34/54 instruction se trouve dans l’une des étapes, les composants associés aux autres étapes ne sont pas utilisés. Le fonctionnement d’un microprocesseur simple n’est donc pas efficace.  L’architecture pipeline permet d’améliorer l’efficacité du microprocesseur. En effet, lorsque la première étape de l’exécution d’une instruction est achevée, l’instruction entre dans la seconde étape de son exécution et la première phase de l’exécution de l’instruction suivante débute.  Il peut donc y avoir une instruction en cours d’exécution dans chacune des étapes et chacun des composants du microprocesseur peut être utilisé à chaque cycle d’horloge.  Une machine pipeline se caractérise par le nombre d’étapes utilisées pour l’exécution d’une instruction, on appelle aussi ce nombre d’étapes le nombre d’étages du pipeline. Exemple d’une exécution en 4 phases : Modèle classique : Modèle pipeliné : Recherche Décodage Exécution Sauv. Résultat R1 D1 E1 S1 R2 D2 E2 S2 R3 D3 E3 S3 1 2 3 4 5 6 7 8 9 10 11 12 Nbre de cycles R1 D1 E1 S1 R2 D2 E2 S2 R3 D3 E3 S3 1 2 3 4 5 6 7 8 9 10 11 12 Nbre de cycles R4 R5 R6 R7 R8 R9 D4 D5 D6 D7 D8 D9 E4 E5 E6 E7 E8 E9 S4 S5 S6 S7 S8 S9
  • 35. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 35/54 7.1.2. Gain de performance  Dans cette structure, la machine débute l’exécution d’une instruction à chaque cycle et le pipeline est pleinement occupé à partir du quatrième cycle.  Le gain obtenu dépend donc du nombre d’étages du pipeline.  En effet, pour exécuter n instructions, en supposant que chaque instruction s’exécute en k cycles d’horloge, il faut : o n.k cycles d’horloge pour une exécution séquentielle. o k cycles d’horloge pour exécuter la première instruction puis n-1 cycles pour les n-1 instructions suivantes si on utilise un pipeline de k étages.  Donc lorsque le nombre n d’instructions à exécuter est grand par rapport à k, on peut admettre qu’on divise le temps d’exécution par k. Exemples :  Les Pentium 2, 3 et 4 d’Intel comprennent respectivement un pipeline de 10, 12 et 20 étages. 7.2. Notion de cache mémoire 7.2.1. Principe  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.  Au départ cette mémoire était intégrée en dehors du microprocesseur mais elle fait maintenant partie intégrante du microprocesseur.  Le principe de cache est très simple : le microprocesseur n’a pas conscience de sa présence et lui envoie toutes ses requêtes comme s’il agissait de la mémoire principale: o Soit la donnée ou l’instruction requise est présente dans le cache et elle est alors envoyée directement au microprocesseur. On parle de succès de cache. (a)
  • 36. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 36/54 o 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. On parle de défaut de cache. (b) a) b) 7.3. Architecture superscalaire  Une autre façon de gagner en performance est d’exécuter plusieurs instructions en même temps.  L'approche superscalaire consiste à doter le microprocesseur de plusieurs unités de traitement travaillant en parallèle.  Les instructions sont alors réparties entre les différentes unités d'exécution. Architecture scalaire : Unité de traitement Unité de commande Cache Microprocesseur Mémoire 1 2 Unité de traitement Unité de commande Cache Microprocesseur Mémoire 1 2 34 I1 I2 I3 I4 I5 I6 I7 I8 N cycles Unité de traitement
  • 37. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 37/54 Architecture superscalaire : Remarque : C'est le type d'architecture mise en œuvre dans les premiers Pentium d'Intel apparus en 1993. 7.4. Architecture pipeline et superscalaire  Le principe est d’exécuté les instructions de façon pipeliné dans chacune des unités de traitement travaillant en parallèle. I1 I3 I5 I7 I2 I4 I6 I8 N/2 cycles Unité de traitement 1 Unité de traitement 2 Recherche Décodage Exécution Sauv. RésultatUT1 Recherche Décodage Exécution Sauv. RésultatUT2 Nbre de cycles 1 11
  • 38. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 38/54 8. Etude du processeur 8088  Le processeur 8086 d'Intel est à la base des processeurs Pentium actuels. Les processeurs successifs (de PC) se sont en effet construits petit à petit en ajoutant à chaque processeurs des instructions et des fonctionnalités supplémentaires, mais en conservant à chaque fois les spécificités du processeur précédent. 8.1. Architecture externe du 8088  Nombre de broches : 40.  Bus de données de AD0 à AD7 : 8 broches.  Bus d’adresses de AD0 à AD7 et de A8 à A19 : 20 broches. (AD0 à AD7 représente à la fois le bus de données et une partie du bus d’adresses).  L’adresse d’un mot mémoire est sur 5 bits : de 00000 H à FFFFF H. A13 A12 A8 A9 A10 A11 A14 A15 A19 A18 A17 A16 AD7 AD0 Alimentation Masse Horloge Bus de commande Signaux de contrôle
  • 39. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 39/54 8.1.1. Bus de commande  RD : Broche de lecture mémoire ou interface. Si 0RD le microprocesseur effectue une lecture de données à partir de la mémoire ou d’une interface d’E/S.  WR : Broche d’écriture. Si 1WR le microprocesseur effectue une écriture dans la mémoire ou dans l’interface d’E/S.  MIO/ : Broche de sélection. o Si 1/ MIO c’est la mémoire qui est sélectionnée pour une lecture ou une écriture. o Si 0/ MIO c’est l’interface qui est sélectionnée pour une lecture ou une écriture. Remarque : RD WR MIO/ Opération 0 0 0 Lecture d’une interface d’E/S. 1 1 0 Ecriture dans une interface d’E/S. 0 0 1 Lecture de la mémoire. 1 1 1 Ecriture dans la mémoire.  ALE : validité du bus d’adresse AD0 à AD7. o Si ALE = 1, AD0 à AD7 représente l’octet faible d’une adresse : AD0 à AD7 et A8 à AD19 (20 broches). o Si ALE = 0, AD0 à AD7 représente le bus de données. 8088 Bus de commande RD WR MIO / ALE READY
  • 40. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 40/54  READY : Broche de synchronisation. o Si READY = 1, la mémoire ou l’interface d’E/S est prête à recevoir des informations où à fournir des informations au microprocesseur. o Si READY = 0, mémoire où interface d’E/S non prête pour le dialogue. 8.1.2. Signaux de contrôle  INTR : Interruption masquable (considérée ou non par le microprocesseur). o Si INTR = 1, une interruption est demandée. Remarque : au niveau du registre d’état, il y a un bit appelé IF. Il est utilisé pour accepter l’interruption demandée.  Si IF = 1, l’interruption sera prise en compte par le microprocesseur  saut au sous programme de dialogue : microproc – Interface d’E/S.  Si IF = 0, l’interruption ne sera pas prise en compte par le microprocesseur  pas de saut au sous programme de dialogue : microproc – Interface d’E/S. Si INTR est acceptée  INTR = 1 et IF = 1.  INTA : Broche de réponse o Si INTA = 0, pour informer l’interface d’E/S que l’interruption demandée a été acceptée. 8088 Quelques signaux de contrôle NMI INTA Hold HOLDA INTR 8088 Interface D’E/S Périphérique externe INTR INTA
  • 41. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 41/54  NMI : Broche d’interruption non masquable. o Si NMI = 1, saut obligatoire à un sous programme de dialogue avec l’interface d’E/S qui a générée l’interruption NMI.  HOLD : Broche de demande des bus de données, d’adresses et de commande. o Si HOLD = 0, les bus de données, d’adresses et de commande effectuent la liaison entre le microprocesseur et la mémoire.  Echange d’information entre le microprocesseur et la mémoire. o Si HOLD = 1, le contrôleur du disque dur demande les bus de données, d’adresses et de commande (liaison entre le contrôleur et la mémoire).  Echange d’information entre le contrôleur et la mémoire. Utilisation : dans le cas d’un transfert d’une grande quantité d’informations entre une interface d’E/S et la mémoire. Ceci pour augmenter la vitesse de transfert d’informations.  HOLDA : Broche de réponse à HOLD. o Si HOLDA = 1, le microprocesseur informe l’interface qu’il est déconnecté de ses bus.  Elle pourra faire l’échange d’informations avec la mémoire. 8.2. Architecture interne du 8088  Il existe deux unités internes distinctes: l'UE (Unité d'Exécution) et l'UIB (Unité d'Interfaçage avec le Bus). 8.2.1. UIB  Elle est constituée d’un ensemble de registres d’adressage, d’un générateur d’adresse (compteur ordinal) et d’une file d’attente (registre d’instruction), son rôle est de chercher séquentiellement les instructions et les données stockées dans la mémoire. 8.2.2. UE  Elle est destinée au traitement de données, elle se compose essentiellement d’une UAL, d’une unité de commande et des registres opérationnels et d’adressage. Son rôle est de lire les instructions stockées dans la file d’attente pour décodage et d’exécution.
  • 42. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 42/54 8.3. Les registres du 8088  Un registre est une petite partie de mémoire intégrée au microprocesseur, dans le but de recevoir des informations spécifiques, notamment des adresses et des données stockées durant l'exécution d'un programme.  Les registres peuvent être utilisés dans toutes les opérations arithmétiques et logiques que le programmeur insère dans le code assembleur.  Un registre complet présente une grandeur de 16 bits.  chaque registre est en réalité divisé en deux registres distincts de 8 bits.  De cette façon, nous pouvons utiliser une partie du registre si nous désirons y stocker une valeur n'excédant pas 8 bits.  Si, au contraire, la valeur que nous désirons y ranger excède 8 bits, nous utiliserons le registre complet, c'est à dire 16 bits.  Le programmeur dispose de 8 registres internes de 16 bits qu'on peut diviser en deux groupes : o Groupe de données : formé par 4 registres de 16 bits (AX, BX, CX, et DX) chaque registre peut être divisé en deux registres de 8 bits (AH, AL, BH, BL, CH, CL, DH et DL). o Groupe de pointeur et indexe : formé de 4 registres de 16 bits (SI, DI, SP, BP) et font généralement référence à un emplacement en mémoire. AH AL BH BL CH CL DH DL 15 8 7 0 AX BX CX DX SP BP SI DI 15 0 Stack Pointer Base Pointer Source Index Destination Index
  • 43. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 43/54 8.3.1. Groupe de données Registre AX : (Accumulateur)  Toutes les opérations de transferts de données avec les entrées-sorties ainsi que le traitement des chaînes de caractères se font dans ce registre, de même les opérations arithmétiques et logiques. Registre BX : (Registre de Base)  Il contient une adresse de décalage par rapport à une adresse de référence. Par exemple, l'adresse de début d'un tableau. Registre CX : (Le Compteur)  Lors de l'exécution d'une boucle on a souvent recours à un compteur de boucles pour compter le nombre d'itérations, le registre CX a été fait pour servir comme compteur lors des instructions de boucle. Registre DX  On utilise le registre DX pour les opérations de multiplication et de division mais surtout pour contenir le numéro d'un port d'entrée/sortie pour adresser les interfaces d'E/S. 8.3.2. Groupe de pointeurs et indexes  Ces registres sont plus spécialement adaptés au traitement des éléments dans la mémoire. Ils sont en général munis de propriétés d'incrémentation et de décrémentation. Registre SP : pointeur sommet de la pile (Stach Pointer)  Une pile est un ensemble de cases mémoire définie dans une RAM pour stocker temporairement les données d’un programme et les contenues des registres interne du microprocesseur. Elle est utilisée dans le cas d’une rupture de séquence d’un programme, saut à un sous programme ou appel à une procédure.  Si on n’effectue pas l’empilement des registres interne (AX, BX, CX et DX) utilisés par un programme, leurs contenues peuvent être détruits par les instructions du sous programme ou de la procédure appelée.  Le registre SP (Pointeur de Pile) à une longueur de 16 bits, il permet l’adressage des cases mémoire de la pile. Il pointe toujours sur la première case mémoire libre de la pile.  La pile a une structure LIFO (Last In First Out), dernier entré premier sortie, ainsi :
  • 44. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 44/54 o Lors d’un empilement du contenu d’un registre interne, le contenu du registre SP est décrémenté par 2 (SP=SP-2). o Lors du dépilement, le contenu du registre SP est incrémenté par 2 (SP=SP+2). Exemple : RAM Programme Principal …….. Instructions utilisant les registres AX, BX, CX et DX ………. Empilement du contenu de AX, BX, CX et DX Saut à un sous- programme Dépilement du contenu de AX, BX, CX et DX …….. Instructions suite du programme principal ………. Instructions du sous- programme utilisant les registres AX, BX, CX et DX AX BX CX DX …. …. …. AL AH BL DH RAM Pile Empilement (Sauvegarde) Dépilement (Chargement) RAM 11 01 01 0E 01 11 AX ALAH Empilement Dépilement FF4C FF4D FF4E FF4F FF50 FF4B Sommet de la pile (1ère case mémoire libre) SP = FF4B Après empilement et avant dépilement SP = FF4D Après dépilement de AX
  • 45. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 45/54 Registre BP : pointeur base de la pile (Base Pointer)  C’est un registre de 16 bits qui permet l’adressage de la 1ère case mémoire de la pile (libre ou non).  SP = BP, dans le cas d’une pile vide.  BP reste constant durant l’exécution d’un programme. Registres SI et DI : ( SI : Source Indexe, DI : Destination Indexe)  A partir d’une adresse de base associée à un bloc de données (tableau, chaîne de caractères, …) (l’adresse de base correspond à la 1ère adresse de stockage), les registres SI et DI permettent l’adressage séquentiel des données de ce bloc.  Adresse d’une données du bloc = Adresse associée au bloc + contenu du registre SI ou DI.  Ces registres ont une taille de 16 bits chacun. Exemple : o Adresse du 1er élément du bloc de données (SI = 0 ou DI = 0) = 1000H + SI (ou DI) = 1000H Puis, SI (ou DI) est incrémenté automatiquement : SI = SI + 1 (ou DI = DI + 1) o Adresse du 2er élément du bloc de données (SI = 1 ou DI = 1) = 1000H + SI (ou DI) = 1001H Puis, SI (ou DI) est incrémenté automatiquement : SI = SI + 1 (ou DI = DI + 1) RAM Adresse associée au bloc 1000H 1001H 1100H Bloc de données
  • 46. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 46/54 8.3.3. Registre IP (Instruction Pointer)  IP, Instruction Pointer ou Compteur de Programme ou Compteur Ordinale, contient l'adresse de l'emplacement mémoire où se situe la prochaine instruction à exécuter. Autrement dit, il doit indiquer au processeur la prochaine instruction à exécuter.  Le registre IP est constamment modifié après l'exécution de chaque instruction afin qu'il pointe sur l'instruction suivante. 8.3.4. Registre d’état (Flag)  Le registre d'état FLAG sert à contenir l'état de certaines opérations effectuées par le processeur.  Par exemple, quand le résultat d'une opération est trop grand pour être contenu dans le registre cible (celui qui doit contenir le résultat de l'opération), un bit spécifique du registre d'état (le bit OF) est mis à 1 pour indiquer le débordement.  Flags = Drapeaux, Les drapeaux sont des indicateurs suite à des opérations arithmétiques ou logiques.  Le registre d'état du 8088 est formé par les bits suivants : Remarque : X : bit non utilisé CF : (Carry Flag)  Bit indicateur au retenue, positionné à 1 lors d’un retenu dans une opération d’addition (ADD) ou soustraction (SUB) (voir partie : 1.2. Unité de commande). PF : (Parity Flag)  Parité : si le résultat de l'opération contient un nombre pair de 1 cet indicateur est mis à 1, sinon zéro. Instruction Pointer 015 IP FLAGSH 015 Registre d’état FLAGSL 8 7 X X X X OF DF IF TF SF ZF X AF X PF X CF
  • 47. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 47/54 AF : (Auxiliary Flag)  Demie retenue : Ce bit est égal à 1 si on a un retenue du quarter de poids faible dans le quarter de poids plus fort. ZF : (Zero Flag)  Zéro : Cet indicateur est mis à 1 quand le résultat d'une opération est égal à zéro. Lorsque l'on vient d'effectuer une soustraction (ou une addition). (voir partie : 1.2. Unité de commande). SF : (Sign Flag)  SF est positionné à 1 si le bit de poids fort du résultat d'une addition ou soustraction est 1 ; sinon SF=0.  SF est utile lorsque l'on manipule des entiers signés, car le bit de poids fort donne alors le signe du résultat. (voir partie : 1.2. Unité de commande). OF : (Overflow Flag)  Débordement : si on a un débordement arithmétique ce bit est mis à 1, c-a-d le résultat d'une opération excède la capacité de l'opérande (registre ou case mémoire), sinon il est à 0. DF : (Direction Flag)  Auto Incrémentation/Décrémentation : utilisée pendant les instructions sur des blocs de données (chaînes de caractères, tableaux, …) pour auto incrémenter ou auto décrémenter le SI et le DI. IF : (Interrupt Flag)  Masque d'interruption : pour masquer les interruptions venant de l'extérieur ce bit est mis à 0, dans le cas contraire le microprocesseur reconnaît l'interruption de l'extérieur. TF : (Trap Flag)  Piége : pour que le microprocesseur exécute le programme pas à pas.
  • 48. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 48/54 8.3.5. Les registres segment  Le 8088 a quatre registres segments de 16 bits chacun : CS (Code Segment), DS (Data Segment), ES (Extra Segment) et SS (Stack Segment).  Ces registres sont chargés de sélectionner les différents segments (parties) de la mémoire en pointant sur le début de chacun d'entre eux.  Chaque segment de la mémoire ne peut excéder les 65535 octets. Registre CS : (Code Segment)  Il pointe sur le segment qui contient les codes des instructions du programme en cours.  Si la taille du programme dépasse les 65535 octets alors on peut diviser le code sur plusieurs segments (chacun ne dépasse pas les 65535 octets) et pour basculer d'une partie à une autre du programme il suffit de changer la valeur du registre CS et de cette manière on résout le problème des programmes qui ont une taille supérieure à 65535 octets. Registre DS : (Data Segment)  Le registre segment de données pointe sur le segment des variables globales du programme, bien évidemment la taille ne peut excéder 65535 octets. S  Si on a des données qui dépassent cette limite, on utilise la même astuce citée dans la remarque précédente mais dans ce cas on change la valeur de DS. Registre ES : (Extra Segment)  Le registre de données supplémentaires ES est utilisé par le microprocesseur lorsque l'accès aux autres registres est devenu difficile ou impossible pour modifier des données, de même ce segment est utilisé pour le stockage des chaînes de caractères. CS DS SS ES 15 0 Code Segment Data Segment Stack Segment Extra Segment
  • 49. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 49/54 Registre SS : (Stack Segment)  Le registre SS pointe sur la pile : la pile est une zone mémoire ou on peut sauvegarder les registres ou les adresses ou les données pour les récupérer après l'exécution d'un sous programme ou l'exécution d'un programme d'interruption.  En général il est conseillée de ne pas changer le contenu de ce registre car on risque de perdre des informations très importantes (exemple les passages d'arguments entre le programme principal et le sous programme). 8.4. Gestion de la mémoire 8.4.1. Introduction  L'espace mémoire adressable (1 Méga Octet = 220 Octets, 20 broches du bus d'adresse) du 8088 est divisé en quatre segment logiques allant jusqu'à 64 KOctets chacun.  L'accès à ces espaces est direct et simultané, or Le compteur de programme est de 16 bits donc la possibilité d'adressage est de 216 Octet= 64 KOctet (Ce qui ne couvre pas la totalité de la mémoire), alors on utilise deux registres pour indiquer une adresse au processeur.  Chaque segment débute à l'endroit spécifié par le registre segment. Le déplacement (offset) à l'intérieur de chaque segment se fait par un registre de décalage qui permet de trouver une information à l'intérieur du segment. o IP est un registre de déplacement dans le segment code (CS). o SP est un registre de déplacement dans le segment pile (SS). o SI et DI sont des registres de déplacement dans les segments de données (DS) et segment de données supplémentaires (ES).
  • 50. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 50/54 8.4.2. Adresse physique (segmentation de la mémoire)  La mémoire est divisée en segments de taille 64 Ko.  Chaque segment contient un type différent d’information : o Segment Code, contient les instructions d’un programme, o Segment Données, contient les données d’un programme, o Segment Extra, contient des données supplémentaires (utilisé dans des données blocs : chaînes de caractères, tableaux, …), o Segment Pile, contient le contenu des registres interne AX, BX, CX et DX lors d’une interruption.  Chaque segment est adressé par deux registres : o Registre Segment ou Registre Base : pointe sur le début du segment (Base), o Registre de décalage : pointe sur l’information à l’intérieur du segment (Offset).  Ainsi, L’adresse physique = Base * 16 + Offset. Remarque : o L’adresse segment (Base) et l’adresse de déplacement (Offset) sont des adresses sur 16 bits (4 chiffres hexadécimaux), adressées par des registres sur 16bits. CS DS ES SS IP SI ou DI SI ou DI SP 7 0 64 Ko Segment Code 64 Ko Segment Données 64 Ko Segment Extra 64 Ko Segment Pile
  • 51. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 51/54 o Tandis que l’adresse physique est une adresse sur 20 bits (5 chiffres hexadécimaux), adressées par le bus d’adresse de 20 broches.  Le schéma de la figure suivante illustre la formation d'une adresse 20 bits à partir du segment et du déplacement sur 16 bits : Exemple : Pour : CS = 1000H et IP = 2006H  Adresse Physique = 10000H + 02006H = 12006H 8.4.3. Exemple de configuration des 4 segments de la mémoire 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Bits Base 0 0 0 0 0 0 0 0 Offset Adresse Physique + = Segment Code Segment Pile Segment Données Segment Extra Zone Inutilisée Zone Inutilisée Zone Inutilisée Zone Inutilisée Case mémoire Adresse physique La mémoire IP = 0000H CS = 0200H IP = FFFFH DS = 1300H SI = FFFFH ES = 3000H DI = FFFFH SS = 4000H SP = FFFFH SI = 0000H DI = 0000H SP = 0000H Adr phy = 0200H*10H+0000H = 02000H 11FFFH 13000H 22FFFH 30000H 3FFFFH 40000H 4FFFFH
  • 52. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 52/54 Chapitre 5 : Les échanges de données  La fonction d’un système à microprocesseurs, quel qu’il soit, est le traitement de l’information. Il est donc évident qu’il doit acquérir l’information fournie par son environnement et retourner les résultats de ses traitements.  Chaque système est donc équipé d’une ou plusieurs interfaces d’entrées/sorties permettant d’assurer la communication entre le microprocesseur et le monde extérieur.  Durant une opération d’entrée/sortie, l’information est échangée entre la mémoire principale et un périphérique relié au système, appelé périphérique d’entrée / sortie (clavier, imprimante, écran, scanner, …).  Cet échange nécessite une interface (ou contrôleur) pour gérer la connexion.  Plusieurs techniques sont employées pour effectuer ces échanges. 1. L’interface d’entrée/sortie 1.1. Rôle  Chaque périphérique sera relié au système par l’intermédiaire d’une interface (ou contrôleur) dont le rôle est de : o Connecter le périphérique au bus de données. o Gérer les échanges entre le microprocesseur et le périphérique 1.2. Constitution  Pour cela l’interface est constituée par : o Un registre de commande dans lequel le processeur décrit le travail à effectuer (sens de transfert, mode de transfert). o Un ou plusieurs registres de données qui contiennent les mots à échanger entre le périphérique et la mémoire. o Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est bien déroulé, etc…  On accède aux données de l’interface par le biais d’un espace d’adresses d’entrées/sorties.
  • 53. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 53/54 2. Techniques d’échange de données  Avant d’envoyer ou de recevoir des informations, le microprocesseur doit savoir si un périphérique est prêt à recevoir ou à transmettre une information pour que la transmission se fasse correctement.  Il existe 2 modes d’échange d’information : o Le mode programmé par scrutation ou interruption où le microprocesseur sert d’intermédiaire entre la mémoire et le périphérique. o Le mode en accès direct à la mémoire (DMA) où le microprocesseur ne se charge pas de l’échange de données. 2.1. Echange programmé 2.1.1. Scrutation  Le microprocesseur interroge l’interface pour savoir si des transferts sont prêts. Tant que des transferts ne sont pas prêts, le microprocesseur attend. Inconvénient : le microprocesseur se retrouve souvent en phase d’attente. Il est occupé par l’interface d’entrée/sortie  ce type d’échange est très lent. 2.1.2. Interruption  Une interruption est un signal, pouvant être émis par tout dispositif externe au microprocesseur.  Le microprocesseur possède une ou plusieurs entrées réservées à cet effet.  L’interruption interrompre le travail courant du microprocesseur pour forcer l’exécution d’un programme traitant la cause de l’interruption.  Ainsi, dans un échange de données par interruption, le microprocesseur exécute donc son programme principal jusqu’à ce qu’il reçoive un signal sur sa ligne de requête d’interruption. Il se charge alors d’effectuer le transfert de données entre l’interface et la mémoire. 2.2. Echange direct avec la mémoire (DMA)  Ce mode permet le transfert de blocs de données entre la mémoire et un périphérique sans passer par le microprocesseur.
  • 54. SMI/SMA-S3 http://www.smia-uit.com Architecture des ordinateurs 54/54  Pour cela, un circuit appelé contrôleur de DMA (Direct Memory Access) prend en charge les différentes opérations.  Le DMA se charge entièrement du transfert d’un bloc de données. Le microprocesseur doit tout de même : o Initialiser l’échange en donnant au DMA l’identification du périphérique concerné. o Donner le sens du transfert. o Fournir l’adresse du premier et du dernier mot concernés par le transfert. 3. Types de liaisons  Les systèmes à microprocesseur utilisent deux types de liaisons différentes pour se connecter à des périphériques : o Liaison parallèle. o Liaison série. 3.1. Liaison parallèle  Dans ce type de liaison, tous les bits d’un mot sont transmis simultanément.  Ce type de transmission permet des transferts rapides mais reste limitée à de faibles distances de transmission à cause du nombre important de lignes nécessaires (coût). 3.2. Liaison série  Dans ce type de liaison, les bits constitutifs d’un mot sont transmis les uns après les autres sur un seul fil.  Les distances de transmission peuvent donc être plus beaucoup plus importantes mais la vitesse de transmission est plus faible. Microprocesseur Interface Périphérique. . . . . . Microprocesseur Interface Périphérique