41
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/

Chapitre ii architecture interne des processeurs

Embed Size (px)

Citation preview

Page 1: Chapitre ii architecture interne des processeurs

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/

Page 2: Chapitre ii architecture interne des processeurs

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

Page 3: Chapitre ii architecture interne des processeurs

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

Page 4: Chapitre ii architecture interne des processeurs

INTRODUCTION

ARCHITECTURE DE VON NEUMANN (1946)

4 Unité Centrale

Page 5: Chapitre ii architecture interne des processeurs

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

Page 6: Chapitre ii architecture interne des processeurs

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

Page 7: Chapitre ii architecture interne des processeurs

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

Page 8: Chapitre ii architecture interne des processeurs

INTRODUCTION

EXEMPLE DE MICRO ARCHITECTURE

8

Page 9: Chapitre ii architecture interne des processeurs

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

Page 10: Chapitre ii architecture interne des processeurs

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

Page 11: Chapitre ii architecture interne des processeurs

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

Page 12: Chapitre ii architecture interne des processeurs

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

Page 13: Chapitre ii architecture interne des processeurs

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

Page 14: Chapitre ii architecture interne des processeurs

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é

Page 15: Chapitre ii architecture interne des processeurs

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

Page 16: Chapitre ii architecture interne des processeurs

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

Page 17: Chapitre ii architecture interne des processeurs

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

Page 18: Chapitre ii architecture interne des processeurs

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

Page 19: Chapitre ii architecture interne des processeurs

Cours n°3: 30 Octobre 2013

Page 20: Chapitre ii architecture interne des processeurs

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.

Page 21: Chapitre ii architecture interne des processeurs

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

Page 22: Chapitre ii architecture interne des processeurs

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

Page 23: Chapitre ii architecture interne des processeurs

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

Page 24: Chapitre ii architecture interne des processeurs

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

Page 25: Chapitre ii architecture interne des processeurs

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

Page 26: Chapitre ii architecture interne des processeurs

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

Page 27: Chapitre ii architecture interne des processeurs

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

Page 28: Chapitre ii architecture interne des processeurs

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

Page 29: Chapitre ii architecture interne des processeurs

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

Page 30: Chapitre ii architecture interne des processeurs

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

Page 31: Chapitre ii architecture interne des processeurs

Cours n°4: 6 Novembre 2013

Page 32: Chapitre ii architecture interne des processeurs

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

Page 33: Chapitre ii architecture interne des processeurs

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

Page 34: Chapitre ii architecture interne des processeurs

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

Page 35: Chapitre ii architecture interne des processeurs

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

Page 36: Chapitre ii architecture interne des processeurs

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

Page 37: Chapitre ii architecture interne des processeurs

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

Page 38: Chapitre ii architecture interne des processeurs

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

Page 39: Chapitre ii architecture interne des processeurs

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

Page 40: Chapitre ii architecture interne des processeurs

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

Page 41: Chapitre ii architecture interne des processeurs

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