Chapitre ii architecture interne des processeurs

Preview:

Citation preview

CHAPITRE II

ARCHITECTURE INTERNE

DES PROCESSEURS

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)

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

3

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.

INTRODUCTION

INTRODUCTION

ARCHITECTURE DE VON NEUMANN (1946)

4 Unité Centrale

INTRODUCTION

VU DÉTAILLÉ DE L’ARCHITECTURE D’UN PROCESSEUR

5

BUS d’Adresse

BUS de Données

Bus de

commande

Bus de

commande

BUS de données interne

BUS d’Adresse interne

Unité de

Commande

Unité de

Traitement

INTRODUCTION

REGISTRES

6

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

INTRODUCTION

REGISTRES DU TRAVAIL

7

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

INTRODUCTION

EXEMPLE DE MICRO ARCHITECTURE

8

INTRODUCTION

LA MACHINE PÉDAGOGIQUE MIASM

9

Regis

tres

de

Regis

tres

de

tra

va

il

Unité de Unité de

traitement

Unité de Unité de

commande

10

UNITÉ DE TRAITEMENT

Registres de travail

ACCUMULATEUR

UAL

Bus de Données

Bus de

contrôle

Registre d’état Registre d’état

Est dédié à contenir le résultat d’une

opération réalisée par l’UAL

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

12

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).

13

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

suite d’un programme

14 14

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é

15

UNITÉ DE COMMANDE

Bus de Données

Registre d’Instruction (RI)

Décodeur Décodeur

Horloge

Bus d’adresse

Compteur Programme (PC) Compteur Programme (PC)

Séquenceur UAL

16

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

17

UNITÉ DE COMMANDE

REGISTRE D’INSTRUCTION

Le registre d’instruction contient l’instruction en cours

d’exécution

Registre d’Instruction (RI) Registre d’Instruction (RI)

Décodeur Décodeur

Séquenceur

Code Instruction Code Instruction Informations pour l’instruction Informations pour l’instruction

18

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

Cours n°3: 30 Octobre 2013

20

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 )

Instructions d’entrées sorties.

21

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.

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.

Code opération Opérandes

N bits K bits

22

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

Exemple: ADD A,B, C

CA +B

La taille de l’instruction est grand Pratiquement il

n’existent pas d’instruction de ce type.

Code opération Opérande1 Opérande2 Résultat

ADD A B C

23

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 .

Exemple: ADD A,B

BA +B

Code opération Opérande1 Opérande2

ADD A B

24

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.

Exemple ADD B

ACC ACC +B

Ce type d’instruction est le plus utilisé.

Code opération Opérande

ADD B

25

JEU D’INSTRUCTIONS

MODE D’ADRESSAGE

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.

Code opération Opérandes

N bits K bits

26

JEU D’INSTRUCTIONS

ADRESSAGE IMMÉDIAT

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

l’instruction

Code opération valeur

Exemple :

ADD 150

Cette commande va avoir l’effet suivant : ACCACC+ 150

Si le registre accumulateur contient la valeur 200 alors

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

ADD 150

27

JEU D’INSTRUCTIONS

ADRESSAGE DIRECT

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

en mémoire )

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

mémoire.

ADD 150

30 150

Code opération adresse de l’opérande

Exemple :

ADD 150

Cette commande va avoir l’effet suivant :

ACCACC+ (150)

ACCACC+ 30

Si le registre accumulateur contient la valeur 200

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

28

JEU D’INSTRUCTIONS

ADRESSAGE INDIRECT

Le champs opérande contient l’adresse de l’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.

Code opération adresse d’adresse de l’opérande

Exemple :

ADD 150

Cette commande va avoir l’effet suivant :

ACCACC+ ((150))

ACCACC+ (255)

ACCACC+ 40

Si le registre accumulateur contient la valeur 200

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

ADD 150

255

40

150

255

29

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

ADD 150

30

50 50

Registre Registre d’index

+

200

Adresse absolue

Adresse effectif

30

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.

Ce mode d’adressage est utilisée pour les instructions de branchement.

Adresse opérande = ADR + R_Base

Code opération adresse absolue de l’opérande

Adresse absolue

Adresse effectif

BR 130

ADD 200

100 100

Registre de base Registre de base

+

230

Cours n°4: 6 Novembre 2013

32

ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

Phase 1 •Rechercher (ou charger) l’instruction à traiter

Phase 2 •Décoder l’instruction chargée

Phase 3 •Rechercher (ou charger) l’opérande

Phase 4 •Exécuter l’instruction

Phase 5 •Passer à l’instruction suivante

33

ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 1 : CHARGER L’INSTRUCTION À TRAITER

100 150

......

2001 Instruction 1

2002 Instruction 2

2003 Instruction 3

RA

M

RIM

2001

Bus d’adresse

CO

RI Bus de données

1 1

Lecture Lecture 2 2

3 3 Instruction 1

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

Bus de commandes

34

ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 2 : DÉCODER L’INSTRUCTION

Code Opération

Décodeur

Registre d’Instruction

Séquenceur

Les commandes élaborées à chaque cycle

d’horloge

Résultat du décodage

horloge horloge

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

35

É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.

100 150

......

2001 Instruction 1

2002 Instruction 2

2003 Instruction 3

RA

M

RIM

ADD 100

Addition en

mode direct

RI

Lecture Lecture

Décodeur

Séquenceur

RAM RI. ADR RAM RI. ADR

100 100

ADD ADD

ACC ACC + (100)

UAL

ACC

Registre de

données (RD) 150

UAL RIM UAL RIM

36

ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 4 : EXÉCUTER L’INSTRUCTION

ADD ADD UAL

ACC = 50

RD = 150

ACC ACC + RD

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

Etat

Les bits d’état sont positionnés

S = 0, Z = 0, .....

37

ÉTAPES D’EXÉCUTION D’UNE INSTRUCTION

PHASE 5 : PASSER À L’INSTRUCTION SUIVANTE

100 150

......

2001 Instruction 1

2002 Instruction 2

2003 Instruction 3

RA

M

RIM

ADD (2002) RI

Décodeur

Séquenceur

UAL

ACC

Registre de

données (RD)

2001 CO

Le Compteur Ordinal (CO) est mis à jour avec l’adresse de

l'instruction suivante.

2002

CO CO + 1 CO CO + 1

38

É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

• RAMADR

• Lecture

• RDRIM

Phase 4: Exécuter l’instruction

• ACC ACC + RD

Phase 5: Passer à l’instruction suivante

• COCO + 1

39

É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

• RDvaleur

• ACC ACC + RD

Phase 5: Passer à l’instruction suivante

• COCO + 1

40

É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

• RAMADR

• Lecture

• RAMRIM

• Lecture

• RDRIM

Phase 4: Exécuter l’instruction

• ACC ACC + RD

Phase 5: Passer à l’instruction suivante

• COCO + 1

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

Recommended