Title: Diapositive 1
1Chapitre 8 Larchitecture de base des
ordinateurs
- Introduction
- Architecture de base dune machine
- La Mémoire Centrale
- UAL ( unité arithmétique et logique )
- UC ( unité de contrôle ou de commande )
- Jeu dinstructions , Format et codage dune
instruction - Modes dadressage
- Étapes dexécution dun instruction
2Objectifs
- Comprendre larchitecture dune machine von
newman. - Comprendre les étapes de déroulement de
lexécution dune instruction. - Comprendre le principe des différents modes
dadressage.
31. Introduction
- Un programme est un ensemble dinstructions
exécutées dans un ordre bien déterminé. - Un programme est exécuté par un processeur (
machine ). - Un programme est généralement écrit dans un
langage évolué (Pascal, C, VB, Java, etc.). - Les instructions qui constituent un programme
peuvent être classifiées en 4 catégories - Les Instructions daffectations permet de
faire le transfert des données - Les instructions arithmétiques et logiques.
- Les Instructions de branchement ( conditionnelle
et inconditionnelle ) - Les Instructions dentrées sorties.
41. Introduction
- Pour exécuter un programme par une machine, on
passe par les étapes suivantes - Édition on utilise généralement un éditeur de
texte pour écrire un programme et le sauvegarder
dans un fichier. - Compilation un compilateur est un programme qui
convertit le code source ( programme écrit dans
un langage donné ) en un programme écrit dans un
langage machine ( binaire ). Une instruction en
langage évolué peut être traduite en plusieurs
instructions machine. - Chargement charger le programme en langage
machine dans mémoire afin de lexécuter .
5- Comment sexécute un programme dans la machine ?
- Pour comprendre le mécanisme dexécution dun
programme ? il faut comprendre le mécanisme de
lexécution dune instruction . - Pour comprendre le mécanisme de lexécution dune
instruction ? il faut connaître larchitecture de
la machine ( processeur ) sur la quelle va
sexécuter cette instruction.
62. Architecture matérielle dune machine (
architecture de Von Neumann )
- Larchitecture de Von Neumann est composée
- Dune mémoire centrale,
- Dune unité centrale UC , CPU (Central
Processing Unit), processeur , microprocesseur. - Dun ensemble de dispositifs dentrées sorties
pour communiquer avec lextérieur. - Cette architecture est la base des architectures
des ordinateurs.
72.1 La mémoire centrale
- La mémoire centrale (MC) représente lespace de
travail de lordinateur . - Cest lorgane principal de rangement des
informations utilisées par le processeur. - Dans un ordinateur pour exécuter un programme il
faut le charger ( copier ) dans la mémoire
centrale . - Le temps daccès à la mémoire centrale et sa
capacité sont deux éléments qui influent sur le
temps dexécution dun programme ( performances
dune machine ).
8Une adresse
- La mémoire centrale peut être vu comme un large
vecteur ( tableau ) de mots ou octets. - Un mot mémoire stocke une information sur n bits.
- Chaque mot possède sa propre adresse.
- La mémoire peut contenir des programmes et les
données utilisées par les programmes.
Contenu dune case (un mot)mémoire
9Structure dun programme en MC
1000000
Partie données ( variables )
1111111
0000000
11110000
Addition
11000001
Soustraction
11100001
11000001
11100001
Partie instructions
11100001
.
.
102.2 LUnité Centrale ( UC)
- Lunité centrale (appelée aussi processeur ,
microprocesseur) à pour rôle dexécuter les
programmes. - LUC est composée dune unité arithmétique et
logique (UAL) et dune unité de contrôle. - - Lunité arithmétique et logique réalise les
opérations élémentaires (addition, soustraction,
multiplication, . . .) . - - Lunité de commande contrôle les opérations sur
la mémoire (lecture/écriture) et les opérations à
réaliser par lUAL selon linstruction en cours
dexécution.
11Architecture matérielle dune machine Von Neumann
UC
122.2.1 LUAL
- Lunité arithmétique et logique réalise une
opération élémentaire (addition, ,soustraction,
multiplication, . . .). - LUAL regroupe les circuits qui assurent les
fonctions logiques et arithmétiques de bases (
ET,OU,ADD,SUS,..). - LUAL comporte un registre accumulateur ( ACC )
cest un registre de travail qui sert a stocker
un opérande (données )au début dune opération et
le résultat à la fin.
13- LUAL comporte aussi un registre détat Ce
registre nous indique létat du déroulement de
lopération . - Ce registre est composé dun ensemble de bits.
Ces bits sappels indicateurs (drapeaux ou
flags). - Ces indicateurs sont mis à jours ( modifiés
)après la fin de lexécution dune opération dans
lUAL. - Les principeaux indicateurs sont
- Retenue ce bit est mis à 1 si lopération
génère une retenue. - Signe ce bit est mis à 1 si lopération génère
un résultat négative. - Débordement ce bit est mis à 1 sil y a un
débordement. - Zero ce bit est mis à 1 si le résultat de
lopération est nul.
14Schéma dune UAL
152.2.2 Unité de contrôle
- Le rôle de l'unité de contrôle (ou unité de
commande ) est de - coordonner le travail de toutes les autres
unités ( UAL , mémoire,. ) - et d'assurer la synchronisation de l'ensemble.
- Elle assure
- la recherche ( lecture ) de linstruction et des
données à partir de la mémoire, - le décodage de linstruction et lexécution de
linstruction en cours - et prépare linstruction suivante.
16- Lunité de contrôle comporte
- Un registre instruction (RI) contient
linstruction en cours dexécution. Chaque
instruction est décoder selon sont code opération
grâce à un décodeur. - Un registre qui sappel compteur ordinal (CO) ou
le compteur de programme (CP ) contient
ladresse de la prochaine instruction à exécuter
(pointe vers la prochaine instruction à exécuter
). Initialement il contient ladresse de le
première instruction du programme à exécuter. - Un séquenceur il organise ( synchronise )
lexécution des instruction selon le rythme de
lhorloge, il génère les signaux nécessaires pour
exécuter une instruction.
17Schéma dune UC
18Schéma détaillé dune machine
UC
19Remarque
- Le microprocesseur peut contenir dautres
registres autre que CO,RI et ACC. - Ces registres sont considérés comme une mémoire
interne ( registre de travail ) du
microprocesseur. - Ces registres sont plus rapide que la mémoire
centrale , mais le nombre de ces registre est
limité. - Généralement ces registres sont utilisés pour
sauvegarder les données avant dexécuter une
opération. - Généralement la taille dun registre de travail
est égale à la taille dun mot mémoire
20Une machine avec des registres de travail
registres
213.Jeu dinstructions
- Chaque microprocesseur possède un certain nombre
limité dinstructions quil peut exécuter. Ces
instructions sappelles jeu dinstructions. - Le jeu dinstructions décrit lensemble des
opérations élémentaires que le microprocesseur
peut exécuter. - Les instructions peuvent être classifiées en 4
catégories - Instruction daffectation elle permet de faire
le transfert des données entre les registres et
la mémoire - Écriture registre ? mémoire
- Lecture mémoire ? registre
- Les instructions arithmétiques et logiques ( ET ,
OU , ADD,.) - Instructions de branchement ( conditionnelle et
inconditionnelle ) - Instructions dentrées sorties.
223.1 Codage dune instruction
- Les instructions et leurs opérandes ( données )
sont stocké dans la mémoire. - La taille dune instruction ( nombre de bits
nécessaires pour la représenter en mémoire )
dépend du type de linstruction et du type de
lopérande. - Linstruction est découpée en deux parties
- Code opération ( code instruction ) un code sur
N bits qui indique quelle instruction. - La champs opérande qui contient la donnée ou la
référence ( adresse ) à la donnée.
Code opération Opérande
N bits
K bits
- Le format dune instruction peut ne pas être le
même pour toutes les instructions. - Le champs opérande peut être découpé à sont tours
en plusieurs champs
23Machine à 3 adresses
- Dans ce type de machine pour chaque instruction
il faut préciser - ladresse du premier opérande
- du deuxième opérande
- et lemplacement du résultat
Code opération Opérande1 Opérande2
Résultat
Exemple ADD A,B,C
( C?BC )
- Dans ce type de machine la taille de
linstruction est grand . - Pratiquement il nexistent pas de machine de ce
type.
24Machine à 2 adresses
- Dans de type de machine pour chaque instruction
il faut préciser - ladresse du premier opérande
- du deuxième opérande ,
- ladresse de résultat est implicitement
ladresse du deuxième opérande .
Code opération Opérande1 Opérande2
Exemple ADD A,B
( B?A B )
25Machine à 1 adresses
- Dans de type de machine pour chaque instruction
il faut préciser uniquement ladresse du deuxième
opérande. - Le premier opérande existe dans le registre
accumulateur. - Le résultat est mis dans le registre accumulateur.
Code opération Opérande2
Exemple ADD A (
ACC?(ACC) A )
Ce type de machine est le plus utilisé.
264. Mode dadressage
- La champs opérande contient la donnée ou la
référence ( adresse ) à la donnée. - Le mode dadressage définit la manière dont le
microprocesseur va accéder à lopérande. - Le code opération de linstruction comportent un
ensemble de bits pour indiquer le mode
dadressage. - Les modes dadressage les plus utilités sont
- Immédiat
- Direct
- Indirect
- Indexé
- relatif
274.1 Adressage immédiat
- Lopérande existent dans le champs adresse de
linstruction
Code opération Opérande
Exemple ADD 150 Cette commande va avoir
leffet suivant ACC?(ACC) 150 Si le
registre accumulateur contient la valeur 200
alors après lexécution son contenu sera égale à
350
ADD 150
284.2 Adressage direct
- Le champs opérande de linstruction contient
ladresse de lopérande ( emplacement en mémoire
) - Pour réaliser lopération il faut le récupérer (
lire ) lopérande à partir de la mémoire. ACC ?
(ACC) (ADR)
Exemple On suppose que laccumulateur
continent la valeur 20 .
A la fin de lexécution nous allons avoir la
valeur 50 ( 20 30 )
30
150
294.3 Adressage indirect
- La champs adresse contient ladresse de ladresse
de lopérande. - Pour réaliser lopération il faut
- Récupérer ladresse de lopérande à partir de la
mémoire. - Par la suite il faut chercher lopérande à partir
de la mémoire. - ACC? (ACC) ((ADR))
- Exemple
- Initialement laccumulateur contient la valeur
20 - Il faut récupérer ladresse de ladresse (150).
- Récupérer ladresse de lopérande à partir de
ladresse 150 ( la valeur 200 ) - Récupérer la valeur de lopérande à partir de
ladresse 200 ( la valeur 40 ) - Additionner la valeur 40 avec le contenu de
laccumulateur (20) et nous allons avoir la
valeur 60
ADD 150
200
150
40
200
304.4 Adressage indexé
- Ladresse effectif de lopérande est relatif à
une zone mémoire. - Ldresse de cette zone se trouve dans un registre
spécial ( registre indexe ). - Adresse opérande ADR (X)
Registre dindexe
50
30
200
Remarque si ADR ne contient pas une valeur
immédiate alors Adresse opérande (ADR ) (X)
314.5 Adressage relatif
- Ladresse effectif de lopérande est relatif a
une zone mémoire. - Ldresse de cette zone se trouve dans un registre
spécial ( registre de base ). - Ce mode dadressage est utilisée pour les
instructions de branchement. - Adresse ADR (base)
Registre de base
100
ADD
250
325. Cycle dexécution dune instruction
- Le traitement dune instruction est décomposé en
trois phases - Phase 1 rechercher linstruction à traiter et
décodage - Phase 2 rechercher de lopérande et exécution
de linstruction - Phase 3 passer à linstruction suivante
- Chaque phase comporte un certain nombre
dopérations élémentaires ( microcommandes )
exécutées dans un ordre bien précis ( elle sont
générées par le séquenceur ). - La phase 1 et 3 ne change pas pour lensemble des
instructions , par contre la phase 2 change selon
linstruction et le mode dadressage
33- Exemple1 déroulement de linstruction
daddition en mode immédiat ACC?(ACC) Valeur - Phase 1 ( rechercher linstruction à traiter )
- Mettre le contenu du CO dans le registre RAM
RAM? (CO) - Commande de lecture à partir de la mémoire
- Transfert du contenu du RIM dans le registre RI
RI? (RIM) - Analyse et décodage
- Phase 2 (traitement )
- Transfert de l opérande dans lUAL UAL ?
(RI).ADR - Commande de lexécution de lopération (
addition ) - Phase 3 ( passer à linstruction suivante )
- CO ? (CO ) 1
34- Exemple 2 déroulement de linstruction
daddition en mode direct ACC?(ACC) (ADR) - Phase 1 ( rechercher linstruction à traiter )
- Mettre le contenu du CO dans le registre RAM
RAM? (CO) - Commande de lecture à partir de la mémoire
- Transfert du contenu du RIM dans le registre RI
RI? (RIM) - Analyse et décodage
- Phase 2 ( décodage et traitement )
- Transfert de ladresse de l opérande dans le RAM
RAM? (RI).ADR - Commande de lecture
- Transfert du contenu du RIM vers lUAL UAL
?(RIM) - Commande de lexécution de lopération (
addition ) - Phase 3 ( passer à linstruction suivante )
- CO ? (CO ) 1
35- Exemple 3 Déroulement de linstruction
daddition en mode indirect ACC?(ACC)
((ADR)) - Phase 1 ( rechercher linstruction à traiter )
- Mettre le contenu du CO dans le registre RAM
RAM? (CO) - Commande de lecture à partir de la mémoire
- Transfert du contenu du RIM dans le registre RI
RI? (RIM) - Analyse et décodage
- Phase 2 ( décodage et traitement )
- Transfert de ladresse de l opérande dans le
RAM ? (RI).ADR - Commande de lecture / récupérer ladresse /
- Transfert du contenu du RIM vers le RAM
RAM?(RIM) - Commande de lecture / récupérer lopérande /
- Transfert du contenu du RIM vers lUAL
UAL ? (RIM ) - Commande de lexécution de lopération ( addition
) - Phase 3 ( passer à linstruction suivante )
- CO ? (CO ) 1