Université Saad Dahleb de Blida

Faculté des Sciences
Département d’Informatique

Licence Génie des Systèmes Informatique (GSI)
Semestre 3 (2ème année)

CHAPITRE II
ARCHITECTURE INTERNE
DES

PROCESSEURS

Cours n°2: 23 Octobre 2013

AROUSSI Sana
Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
PLAN DU CHAPITRE II
 Introduction
 Unité

Arithmétique et Logique (UAL)

 Unité

de Commande (U.C)

 Jeu

d’instruction

 Étapes

d’exécution d’un instruction

2
INTRODUCTION


Un programme est un ensemble d’instructions exécutées
dans un ordre bien déterminé.



Un programme est exécuté par un processeur (machine).



Pour

comprendre

le

mécanisme

d’exécution

d’un

programme  il faut comprendre le mécanisme de
l’exécution

d’une

instruction



il

faut

connaître

l’architecture du processeur sur lequel va s’exécuter cette

instruction.

3
INTRODUCTION
ARCHITECTURE DE VON NEUMANN (1946)

Unité Centrale

4
INTRODUCTION
VU DÉTAILLÉ DE L’ARCHITECTURE D’UN PROCESSEUR
BUS d’Adresse
BUS d’Adresse interne

Unité de
Traitement

Bus de
commande

Unité de
Commande

Bus de
commande

BUS de données interne

BUS de Données

5
INTRODUCTION
REGISTRES


Pour assurer leur fonctionnement l’unité de traitement (Partie

opérative) et l’unité de commande (Partie contrôle), on utilise des
mémoires très rapides appelés registre


En règle général, dans le contexte d’un processeur particulier, les
registres sont associés à des noms court (ou mnémonique) indiquant
leur rôle dans une architecture de processeur
Nom

Désignation

RI

Registre Instruction

ACC

Registre Accumulateur

RAM

Registre Adresse Mémoire

PC

Compteur Programme

RE

Registre d’Etat

6
INTRODUCTION
REGISTRES DU TRAVAIL


Le microprocesseur peut contenir d’autres registres autre que

RI, ACC, RAM, PC et RE.


Ces registres, appelés registres de travail, sont considérés

comme une mémoire interne du microprocesseur.


Les registres de travail sont plus rapide que la mémoire
centrale , mais leur nombre est limité.



Généralement, ces registres sont utilisés pour sauvegarder les
données avant d’exécuter une opération.



Généralement, la taille d’un registre de travail est égale à la
taille d’un mot mémoire

7
INTRODUCTION
EXEMPLE DE MICRO ARCHITECTURE

8
INTRODUCTION

Registres de
travail

LA MACHINE PÉDAGOGIQUE MIASM

Unité de
traitement

Unité de
commande

9
UNITÉ DE TRAITEMENT
Est dédié à contenir le résultat d’une
opération réalisée par l’UAL
ACCUMULATEUR

Registre d’état
UAL

Bus de
contrôle

Registres de travail

Bus de Données

10
UNITÉ DE TRAITEMENT
U.A.L


L’unité Arithmétique et Logique (UAL) est un circuit
complexe assurant:


les fonctions logiques (ET, OU, XOR, Comparaison, Décalage).



les fonctions arithmétique (Addition, soustraction)



Les opérandes sont dans les registres de travail



Les résultats sont mis dans l’accumulateur
11
UNITÉ DE TRAITEMENT
U.A.L


Reçoit deux opérandes A (An . . . A1 A0) et B (Bn . . . B1 B0)
et produit le résultat S (Sm . . . S1 S0) selon l'indication
appliquée sur l'entrée C (Ck . . . C1 C0).

12
UNITÉ DE TRAITEMENT
REGISTRE D’ÉTAT


Le registre d’état est composé de quelque bits (8 bits en
général):


Les bit sont considérés individuellement.



Chaque bit est un indicateur de l'état du résultat de la dernière

opération effectuée par l’UAL.




Les bits sont appelés: indicateur d’état, flag, drapeaux.
Le résultat du test de leur état conditionne le déroulement de la
13

suite d’un programme
UNITÉ DE TRAITEMENT
EXEMPLE D’INDICATEURS DU REGISTRE D’ÉTAT
C

S

O

Z

P

Bit

Indication

C (Carry)

Bit de la retenue

S (Sign)

Bit du signe

O (Overflow)

Bit de débordement

Z (Zero)

Résultat nul

P ( Parity)

Bit de Parité

14
UNITÉ DE COMMANDE
Bus d’adresse
Compteur Programme (PC)

UAL

Séquenceur
Décodeur

Registre d’Instruction (RI)

Horloge

Bus de Données

15
UNITÉ DE COMMANDE
COMPTEUR DE PROGRAMME


Le compteur de programme, appelé aussi Compteur
Ordinal (CO), est un registre contenant toujours
l’adresse de la prochaine instruction à exécuter:
 Initialisé avec l'adresse de la première instruction à exécuter du

programme.


Mis à jour avec incrémentation d’une valeur ou chargement d’une
valeur

16
UNITÉ DE COMMANDE
REGISTRE D’INSTRUCTION


Le registre d’instruction contient l’instruction en cours
d’exécution

Séquenceur
Décodeur
Code Instruction

Informations pour l’instruction

Registre d’Instruction (RI)
17
UNITÉ DE COMMANDE
SÉQUENCEUR



Le Séquenceur (contrôleur) Organise l'exécution des
instructions au rythme de l’horloge



Il élabore tous les signaux de commande des diverses
parties du processeur en fonction du code de l’instruction

18
Cours n°3: 30 Octobre 2013
JEU D’INSTRUCTIONS


Chaque processeur possède un certain nombre limité d’instructions
qu’il peut exécuter. Ces instructions s’appelles jeu d’instructions.



Le jeu d’instructions décrit l’ensemble des opérations élémentaires
que le processeur peut exécuter.



Les instructions peuvent être classifiées en 4 catégories :


Instruction d’affectation



Instructions arithmétiques et logiques ( ET , OU , ADD,….)



Instructions de branchement ( conditionnelle et inconditionnelle )
20



Instructions d’entrées sorties.
JEU D’INSTRUCTIONS

FORMAT D’INSTRUCTION


L’instruction est composée de deux champs :


Code

d’opération

représentant

l'action que le

processeur

doit

accomplir.


Champ des opérandes définissant les paramètres de l'action. Un

opérande peut s'agir d'une donnée ou bien d'une adresse mémoire.
Code opération
N bits


Opérandes
K bits

La taille d’une instruction dépend du type de l’instruction et du type
de l’opérande.



Les instructions et leurs opérandes sont stockés dans la mémoire.
21
JEU D’INSTRUCTIONS

EXEMPLE DU FORMAT D’INSTRUCTION


Instruction à trois opérandes: Il faut préciser le premier

opérande, le deuxième opérande et l’emplacement du résultat
Code opération

Exemple: ADD A,B, C

Opérande1

ADD

Opérande2

A

B

Résultat

C

CA +B

La taille de l’instruction est grand  Pratiquement il
22

n’existent pas d’instruction de ce type.
JEU D’INSTRUCTIONS

EXEMPLE DU FORMAT D’INSTRUCTION


Instruction à deux opérandes: Il faut préciser le premier

opérande et le deuxième opérande. Le résultat est implicitement
mis dans le deuxième opérande .
Code opération

Exemple: ADD A,B

ADD

Opérande1

A

Opérande2

B

BA +B
23
JEU D’INSTRUCTIONS

EXEMPLE DU FORMAT D’INSTRUCTION


Instruction à un opérande: il faut préciser uniquement le

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

Exemple ADD B

ADD

Opérande

B

ACC ACC +B
24

Ce type d’instruction est le plus utilisé.
JEU D’INSTRUCTIONS

MODE D’ADRESSAGE
Code opération

N bits


Opérandes

K bits

Le mode d’adressage définit la manière dont le
processeur va accéder à l’opérande.



Le code opération comporte un ensemble de bits pour
indiquer le mode d’adressage.



Les modes d’adressage les plus utilisés sont : immédiat,
direct, indirect, indexé et relatif.
25
JEU D’INSTRUCTIONS

ADRESSAGE IMMÉDIAT


La valeur de l’opérande existe dans le champ opérande de
l’instruction
Code opération

Exemple :

ADD

valeur
150

ADD 150
Cette commande va avoir l’effet suivant :

ACCACC+ 150

Si le registre accumulateur contient la valeur 200 alors
après l’exécution son contenu sera égale à 350

26
JEU D’INSTRUCTIONS

ADRESSAGE DIRECT


Le champs opérande contient l’adresse de l’opérande (emplacement

en mémoire )


Code opération

adresse de l’opérande

Pour réaliser l’opération, il faut récupérer (lire) l’opérande à partir de la
mémoire.

Exemple :
ADD 150

ADD

150

Cette commande va avoir l’effet suivant :
ACCACC+ (150)
ACCACC+ 30
Si le registre accumulateur contient la valeur 200
alors après l’exécution son contenu sera égale à 230

30

150
27
JEU D’INSTRUCTIONS

ADRESSAGE INDIRECT


Le champs opérande contient l’adresse de l’adresse de l’opérande.
Code opération



adresse d’adresse de l’opérande

Pour réaliser l’opération, il faut d’abord récupérer l’adresse de l’opérande à
partir de la mémoire, ensuite, chercher l’opérande à partir de la mémoire.

Exemple :
ADD

ADD 150

150

Cette commande va avoir l’effet suivant :

ACCACC+ ((150))
ACCACC+ (255)

150

255

255

40

ACCACC+ 40
Si le registre accumulateur contient la valeur 200

alors après l’exécution son contenu sera égale à 240

28
JEU D’INSTRUCTIONS

ADRESSAGE INDEXÉ


Le champs opérande contient l’adresse absolue de l’opérande.

L’adresse effectif de l’opérande est relatif à une zone mémoire. L’adresse
de cette zone se trouve dans un registre spécial appelé registre index.


Adresse opérande = ADR + R_Index
Code opération

adresse absolue de l’opérande

Registre d’index

50
ADD

150

Adresse absolue

+
200

Adresse effectif

30

29
JEU D’INSTRUCTIONS

ADRESSAGE RELATIF


Le champs opérande contient l’adresse absolue de l’opérande.

L’adresse effectif de l’opérande est relatif à une zone mémoire. L’adresse
de cette zone se trouve dans un registre spécial appelé registre de
base.


Code opération

adresse absolue de l’opérande

Ce mode d’adressage est utilisée pour les instructions de branchement.
Adresse opérande = ADR + R_Base
Registre de base

100
BR

130

Adresse absolue

+
230

Adresse effectif

ADD

200

30
Cours n°4: 6 Novembre 2013
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION
Phase 1

Phase 2

Phase 3

Phase 4

Phase 5

•Rechercher (ou charger) l’instruction à traiter

•Décoder l’instruction chargée
•Rechercher (ou charger) l’opérande
•Exécuter l’instruction
•Passer à l’instruction suivante

32
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 1 : CHARGER L’INSTRUCTION À TRAITER
1.

Mettre le contenu du CO dans le registre RAM : RAM CO

2.

Commande de lecture à partir de mémoire

3.

Transfert du contenu du RIM dans le registre RI: RI RIM

1
CO

2001

Bus d’adresse

2

Lecture
Bus de commandes

RAM

100

150

......
2001

Instruction 1

2002

Instruction 2

2003

Instruction 3
RIM
33

RI

3

Instruction 1

Bus de données
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 2 : DÉCODER L’INSTRUCTION


Le code d’opération la nature de l'opération à effectuer (addition,

soustraction,...) et le nombre de mots de l'instruction


A la base du code de l’instruction le séquenceur élabore une suite de
commandes élémentaires
Les commandes élaborées à chaque cycle
d’horloge

Séquenceur

horloge
Résultat du décodage

Décodeur
Code Opération

Registre d’Instruction

34
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 3 : CHARGER L’OPÉRANDE


Si l'instruction nécessite une donnée qui se trouve en mémoire, le

séquenceur émet les commandes pour récupérer cette donnée.
RAM  RI. ADR

ACC
ADD

Séquenceur

Lecture

Addition en
mode direct
Registre de
150
données (RD)

Décodeur

RI

100
RAM

UAL

100

150
......

2001

Instruction 1

2002

Instruction 2

2003

Instruction 3
RIM

ADD 100

ACC  ACC + (100)

35

UAL  RIM
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 4 : EXÉCUTER L’INSTRUCTION
Les bits d’état sont positionnés
S = 0, Z = 0, .....

Etat
Aprés l’exécution: ACC =200

ACC  ACC + RD

ACC = 50
UAL

RD = 150

ADD

36
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 5 : PASSER À L’INSTRUCTION SUIVANTE


Le Compteur Ordinal (CO) est mis à jour avec l’adresse de
l'instruction suivante.

CO  CO + 1
CO

2002
2001

UAL

100
RAM

ACC

150
......

Registre de
données (RD)

Décodeur
RI

ADD (2002)

Instruction 1

2002

Instruction 2

2003

Séquenceur

2001

Instruction 3
RIM

37
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION
DÉROULEMENT DE L’INSTRUCTION D’ADDITION EN MODE DIRECT

ADD ADR

Phase 1 : Charger l’instruction
• RAM CO
• Lecture
• RI RIM

Phase 2: Décoder l’instruction
Phase 3: Charger l’opérande
• RAMADR
• Lecture
• RDRIM

Phase 4: Exécuter l’instruction
• ACC ACC + RD

Phase 5: Passer à l’instruction suivante
• COCO + 1

38
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION
DÉROULEMENT DE L’INSTRUCTION D’ADDITION EN MODE IMMÉDIAT

ADD VALEUR

Phase 1 : Charger l’instruction
• RAM CO
• Lecture
• RI RIM

Phase 2: Décoder l’instruction
Phase 4: Exécuter l’instruction
• RDvaleur
• ACC ACC + RD

Phase 5: Passer à l’instruction suivante
• COCO + 1

39
ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION
DÉROULEMENT DE L’INSTRUCTION D’ADDITION EN MODE INDIRECT

ADD ADR

Phase 1 : Charger l’instruction
• RAM CO
• Lecture
• RI RIM

Phase 2: Décoder l’instruction
Phase 3: Charger l’opérande
• RAMADR
• Lecture
• RAMRIM
• Lecture
• RDRIM

Phase 4: Exécuter l’instruction
• ACC ACC + RD

Phase 5: Passer à l’instruction suivante
• COCO + 1

40
SOURCES DE CE COURS


Djamal BENNOUAR, Cours Architecture des Ordinateurs 1,
Département Informatique, Faculté des Sciences, USDB, 2012.



Amrouche Hakim, Cours d’Architecture des ordinateurs, École
nationale

Supérieure

d’Informatique

(ESI),

Alger,

Année

universitaire 2011/2012. Disponible sur http://amrouche.esi.dz/

41

Chapitre ii architecture interne des processeurs

  • 1.
    Université Saad Dahlebde Blida Faculté des Sciences Département d’Informatique Licence Génie des Systèmes Informatique (GSI) Semestre 3 (2ème année) CHAPITRE II ARCHITECTURE INTERNE DES PROCESSEURS Cours n°2: 23 Octobre 2013 AROUSSI Sana Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
  • 2.
    PLAN DU CHAPITREII  Introduction  Unité Arithmétique et Logique (UAL)  Unité de Commande (U.C)  Jeu d’instruction  Étapes d’exécution d’un instruction 2
  • 3.
    INTRODUCTION  Un programme estun ensemble d’instructions exécutées dans un ordre bien déterminé.  Un programme est exécuté par un processeur (machine).  Pour comprendre le mécanisme d’exécution d’un programme  il faut comprendre le mécanisme de l’exécution d’une instruction  il faut connaître l’architecture du processeur sur lequel va s’exécuter cette instruction. 3
  • 4.
    INTRODUCTION ARCHITECTURE DE VONNEUMANN (1946) Unité Centrale 4
  • 5.
    INTRODUCTION VU DÉTAILLÉ DEL’ARCHITECTURE D’UN PROCESSEUR BUS d’Adresse BUS d’Adresse interne Unité de Traitement Bus de commande Unité de Commande Bus de commande BUS de données interne BUS de Données 5
  • 6.
    INTRODUCTION REGISTRES  Pour assurer leurfonctionnement l’unité de traitement (Partie opérative) et l’unité de commande (Partie contrôle), on utilise des mémoires très rapides appelés registre  En règle général, dans le contexte d’un processeur particulier, les registres sont associés à des noms court (ou mnémonique) indiquant leur rôle dans une architecture de processeur Nom Désignation RI Registre Instruction ACC Registre Accumulateur RAM Registre Adresse Mémoire PC Compteur Programme RE Registre d’Etat 6
  • 7.
    INTRODUCTION REGISTRES DU TRAVAIL  Lemicroprocesseur peut contenir d’autres registres autre que RI, ACC, RAM, PC et RE.  Ces registres, appelés registres de travail, sont considérés comme une mémoire interne du microprocesseur.  Les registres de travail sont plus rapide que la mémoire centrale , mais leur nombre est limité.  Généralement, ces registres sont utilisés pour sauvegarder les données avant d’exécuter une opération.  Généralement, la taille d’un registre de travail est égale à la taille d’un mot mémoire 7
  • 8.
  • 9.
    INTRODUCTION Registres de travail LA MACHINEPÉDAGOGIQUE MIASM Unité de traitement Unité de commande 9
  • 10.
    UNITÉ DE TRAITEMENT Estdédié à contenir le résultat d’une opération réalisée par l’UAL ACCUMULATEUR Registre d’état UAL Bus de contrôle Registres de travail Bus de Données 10
  • 11.
    UNITÉ DE TRAITEMENT U.A.L  L’unitéArithmétique et Logique (UAL) est un circuit complexe assurant:  les fonctions logiques (ET, OU, XOR, Comparaison, Décalage).  les fonctions arithmétique (Addition, soustraction)  Les opérandes sont dans les registres de travail  Les résultats sont mis dans l’accumulateur 11
  • 12.
    UNITÉ DE TRAITEMENT U.A.L  Reçoitdeux opérandes A (An . . . A1 A0) et B (Bn . . . B1 B0) et produit le résultat S (Sm . . . S1 S0) selon l'indication appliquée sur l'entrée C (Ck . . . C1 C0). 12
  • 13.
    UNITÉ DE TRAITEMENT REGISTRED’ÉTAT  Le registre d’état est composé de quelque bits (8 bits en général):  Les bit sont considérés individuellement.  Chaque bit est un indicateur de l'état du résultat de la dernière opération effectuée par l’UAL.   Les bits sont appelés: indicateur d’état, flag, drapeaux. Le résultat du test de leur état conditionne le déroulement de la 13 suite d’un programme
  • 14.
    UNITÉ DE TRAITEMENT EXEMPLED’INDICATEURS DU REGISTRE D’ÉTAT C S O Z P Bit Indication C (Carry) Bit de la retenue S (Sign) Bit du signe O (Overflow) Bit de débordement Z (Zero) Résultat nul P ( Parity) Bit de Parité 14
  • 15.
    UNITÉ DE COMMANDE Busd’adresse Compteur Programme (PC) UAL Séquenceur Décodeur Registre d’Instruction (RI) Horloge Bus de Données 15
  • 16.
    UNITÉ DE COMMANDE COMPTEURDE PROGRAMME  Le compteur de programme, appelé aussi Compteur Ordinal (CO), est un registre contenant toujours l’adresse de la prochaine instruction à exécuter:  Initialisé avec l'adresse de la première instruction à exécuter du programme.  Mis à jour avec incrémentation d’une valeur ou chargement d’une valeur 16
  • 17.
    UNITÉ DE COMMANDE REGISTRED’INSTRUCTION  Le registre d’instruction contient l’instruction en cours d’exécution Séquenceur Décodeur Code Instruction Informations pour l’instruction Registre d’Instruction (RI) 17
  • 18.
    UNITÉ DE COMMANDE SÉQUENCEUR  LeSéquenceur (contrôleur) Organise l'exécution des instructions au rythme de l’horloge  Il élabore tous les signaux de commande des diverses parties du processeur en fonction du code de l’instruction 18
  • 19.
    Cours n°3: 30Octobre 2013
  • 20.
    JEU D’INSTRUCTIONS  Chaque processeurpossède un certain nombre limité d’instructions qu’il peut exécuter. Ces instructions s’appelles jeu d’instructions.  Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le processeur peut exécuter.  Les instructions peuvent être classifiées en 4 catégories :  Instruction d’affectation  Instructions arithmétiques et logiques ( ET , OU , ADD,….)  Instructions de branchement ( conditionnelle et inconditionnelle ) 20  Instructions d’entrées sorties.
  • 21.
    JEU D’INSTRUCTIONS FORMAT D’INSTRUCTION  L’instructionest composée de deux champs :  Code d’opération représentant l'action que le processeur doit accomplir.  Champ des opérandes définissant les paramètres de l'action. Un opérande peut s'agir d'une donnée ou bien d'une adresse mémoire. Code opération N bits  Opérandes K bits La taille d’une instruction dépend du type de l’instruction et du type de l’opérande.  Les instructions et leurs opérandes sont stockés dans la mémoire. 21
  • 22.
    JEU D’INSTRUCTIONS EXEMPLE DUFORMAT D’INSTRUCTION  Instruction à trois opérandes: Il faut préciser le premier opérande, le deuxième opérande et l’emplacement du résultat Code opération Exemple: ADD A,B, C Opérande1 ADD Opérande2 A B Résultat C CA +B La taille de l’instruction est grand  Pratiquement il 22 n’existent pas d’instruction de ce type.
  • 23.
    JEU D’INSTRUCTIONS EXEMPLE DUFORMAT D’INSTRUCTION  Instruction à deux opérandes: Il faut préciser le premier opérande et le deuxième opérande. Le résultat est implicitement mis dans le deuxième opérande . Code opération Exemple: ADD A,B ADD Opérande1 A Opérande2 B BA +B 23
  • 24.
    JEU D’INSTRUCTIONS EXEMPLE DUFORMAT D’INSTRUCTION  Instruction à un opérande: il faut préciser uniquement le 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 Exemple ADD B ADD Opérande B ACC ACC +B 24 Ce type d’instruction est le plus utilisé.
  • 25.
    JEU D’INSTRUCTIONS MODE D’ADRESSAGE Codeopération N bits  Opérandes K bits Le mode d’adressage définit la manière dont le processeur va accéder à l’opérande.  Le code opération comporte un ensemble de bits pour indiquer le mode d’adressage.  Les modes d’adressage les plus utilisés sont : immédiat, direct, indirect, indexé et relatif. 25
  • 26.
    JEU D’INSTRUCTIONS ADRESSAGE IMMÉDIAT  Lavaleur de l’opérande existe dans le champ opérande de l’instruction Code opération Exemple : ADD valeur 150 ADD 150 Cette commande va avoir l’effet suivant : ACCACC+ 150 Si le registre accumulateur contient la valeur 200 alors après l’exécution son contenu sera égale à 350 26
  • 27.
    JEU D’INSTRUCTIONS ADRESSAGE DIRECT  Lechamps opérande contient l’adresse de l’opérande (emplacement en mémoire )  Code opération adresse de l’opérande Pour réaliser l’opération, il faut récupérer (lire) l’opérande à partir de la mémoire. Exemple : ADD 150 ADD 150 Cette commande va avoir l’effet suivant : ACCACC+ (150) ACCACC+ 30 Si le registre accumulateur contient la valeur 200 alors après l’exécution son contenu sera égale à 230 30 150 27
  • 28.
    JEU D’INSTRUCTIONS ADRESSAGE INDIRECT  Lechamps opérande contient l’adresse de l’adresse de l’opérande. Code opération  adresse d’adresse de l’opérande Pour réaliser l’opération, il faut d’abord récupérer l’adresse de l’opérande à partir de la mémoire, ensuite, chercher l’opérande à partir de la mémoire. Exemple : ADD ADD 150 150 Cette commande va avoir l’effet suivant : ACCACC+ ((150)) ACCACC+ (255) 150 255 255 40 ACCACC+ 40 Si le registre accumulateur contient la valeur 200 alors après l’exécution son contenu sera égale à 240 28
  • 29.
    JEU D’INSTRUCTIONS ADRESSAGE INDEXÉ  Lechamps opérande contient l’adresse absolue de l’opérande. L’adresse effectif de l’opérande est relatif à une zone mémoire. L’adresse de cette zone se trouve dans un registre spécial appelé registre index.  Adresse opérande = ADR + R_Index Code opération adresse absolue de l’opérande Registre d’index 50 ADD 150 Adresse absolue + 200 Adresse effectif 30 29
  • 30.
    JEU D’INSTRUCTIONS ADRESSAGE RELATIF  Lechamps opérande contient l’adresse absolue de l’opérande. L’adresse effectif de l’opérande est relatif à une zone mémoire. L’adresse de cette zone se trouve dans un registre spécial appelé registre de base.  Code opération adresse absolue de l’opérande Ce mode d’adressage est utilisée pour les instructions de branchement. Adresse opérande = ADR + R_Base Registre de base 100 BR 130 Adresse absolue + 230 Adresse effectif ADD 200 30
  • 31.
    Cours n°4: 6Novembre 2013
  • 32.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 •Rechercher (ou charger) l’instruction à traiter •Décoder l’instruction chargée •Rechercher (ou charger) l’opérande •Exécuter l’instruction •Passer à l’instruction suivante 32
  • 33.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION PHASE 1 : CHARGER L’INSTRUCTION À TRAITER 1. Mettre le contenu du CO dans le registre RAM : RAM CO 2. Commande de lecture à partir de mémoire 3. Transfert du contenu du RIM dans le registre RI: RI RIM 1 CO 2001 Bus d’adresse 2 Lecture Bus de commandes RAM 100 150 ...... 2001 Instruction 1 2002 Instruction 2 2003 Instruction 3 RIM 33 RI 3 Instruction 1 Bus de données
  • 34.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION PHASE 2 : DÉCODER L’INSTRUCTION  Le code d’opération la nature de l'opération à effectuer (addition, soustraction,...) et le nombre de mots de l'instruction  A la base du code de l’instruction le séquenceur élabore une suite de commandes élémentaires Les commandes élaborées à chaque cycle d’horloge Séquenceur horloge Résultat du décodage Décodeur Code Opération Registre d’Instruction 34
  • 35.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION PHASE 3 : CHARGER L’OPÉRANDE  Si l'instruction nécessite une donnée qui se trouve en mémoire, le séquenceur émet les commandes pour récupérer cette donnée. RAM  RI. ADR ACC ADD Séquenceur Lecture Addition en mode direct Registre de 150 données (RD) Décodeur RI 100 RAM UAL 100 150 ...... 2001 Instruction 1 2002 Instruction 2 2003 Instruction 3 RIM ADD 100 ACC  ACC + (100) 35 UAL  RIM
  • 36.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION PHASE 4 : EXÉCUTER L’INSTRUCTION Les bits d’état sont positionnés S = 0, Z = 0, ..... Etat Aprés l’exécution: ACC =200 ACC  ACC + RD ACC = 50 UAL RD = 150 ADD 36
  • 37.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION PHASE 5 : PASSER À L’INSTRUCTION SUIVANTE  Le Compteur Ordinal (CO) est mis à jour avec l’adresse de l'instruction suivante. CO  CO + 1 CO 2002 2001 UAL 100 RAM ACC 150 ...... Registre de données (RD) Décodeur RI ADD (2002) Instruction 1 2002 Instruction 2 2003 Séquenceur 2001 Instruction 3 RIM 37
  • 38.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION DÉROULEMENT DE L’INSTRUCTION D’ADDITION EN MODE DIRECT ADD ADR Phase 1 : Charger l’instruction • RAM CO • Lecture • RI RIM Phase 2: Décoder l’instruction Phase 3: Charger l’opérande • RAMADR • Lecture • RDRIM Phase 4: Exécuter l’instruction • ACC ACC + RD Phase 5: Passer à l’instruction suivante • COCO + 1 38
  • 39.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION DÉROULEMENT DE L’INSTRUCTION D’ADDITION EN MODE IMMÉDIAT ADD VALEUR Phase 1 : Charger l’instruction • RAM CO • Lecture • RI RIM Phase 2: Décoder l’instruction Phase 4: Exécuter l’instruction • RDvaleur • ACC ACC + RD Phase 5: Passer à l’instruction suivante • COCO + 1 39
  • 40.
    ÉTAPES D’EXÉCUTION D’UNEINSTRUCTION DÉROULEMENT DE L’INSTRUCTION D’ADDITION EN MODE INDIRECT ADD ADR Phase 1 : Charger l’instruction • RAM CO • Lecture • RI RIM Phase 2: Décoder l’instruction Phase 3: Charger l’opérande • RAMADR • Lecture • RAMRIM • Lecture • RDRIM Phase 4: Exécuter l’instruction • ACC ACC + RD Phase 5: Passer à l’instruction suivante • COCO + 1 40
  • 41.
    SOURCES DE CECOURS  Djamal BENNOUAR, Cours Architecture des Ordinateurs 1, Département Informatique, Faculté des Sciences, USDB, 2012.  Amrouche Hakim, Cours d’Architecture des ordinateurs, École nationale Supérieure d’Informatique (ESI), Alger, Année universitaire 2011/2012. Disponible sur http://amrouche.esi.dz/ 41