Vous êtes sur la page 1sur 66

Fonctionnement du processeur : excution des instructions machine

STRUCTURE DU PROCESSEUR

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

Processeur (Unit Centrale)


Y1

Unit Arithmtique et Logique

Opration Y2
PSW

Bus Interne
Donnes Registres Commandes
horloge

Squenceur Dcodeur
RI
CO RAD RDO

Unit de Commande

Bus Processeur /Mmoire


Architecture des machines NFA004, 2006/2007 Jolle Delacroix

Commandes Lecture/Ecriture Adresses Donnes


2

Processeur (Unit Centrale)


horloge

Squenceur Dcodeur
RI
CO RAD RDO

Unit de Commande

Bus Processeur /Mmoire

Commandes Lecture/Ecriture Adresses Donnes

L'unit de commande est charge de la reconnaissance des instructions et de leur excution par lunit de traitement au rythme de l'horloge Les registres : - RI (registre instruction) : contient l'instruction en cours d'excution - CO (compteur ordinal ) : contient l'adresse en MC de la prochaine instruction - RAD (registre adresse) et RDO (registre de donnes) : registres d'interfaage avec la mmoire centrale
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 3

Processeur (Unit Centrale)

RSP RB R0 R1

Le registre est lentit de base manipule par le processeur. Aucune opration nest directement ralise sur les cellules mmoires.

R2

Registres : - les registres gnraux R0, R1, R2 - le registre de pile RSP (Register Stack Pointer) - les registres d'adressage : RB (registre de base)

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

Processeur (Unit Centrale)


Y1

Unit Arithmtique et Logique

Opration Y2
PSW

L'unit Arithmtique et Logique (UAL) constitue l'unit d'excution du processeur. Elle est compose : - de l'ensemble des circuits permettant de raliser les oprations arithmtiques (addition, multiplication, division,) et les oprations logiques (complment 2, inverse, OU, ET, ) sur les oprandes Y1 et Y2 - d'un registre d'tat PSW qui contient des indicateurs positionns par le rsultat Z des oprations effectues :
- O : positionn 1 si Overflow, 0 sinon - Z : positionn 1 si rsultat opration nul, 0 sinon - C : positionn 1 si carry, 0 sinon - S : positionn 0 si rsultat opration positif, 1 sinon
Jolle Delacroix 5

O C

Architecture des machines NFA004, 2006/2007

Processeur (Brochage)

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15

Microprocesseur

Adresses

Entre horloge ou cristal


Jolle Delacroix 6

Architecture des machines NFA004, 2006/2007

Donnes
Read Write

Alimentation et masse

Vcc GND

D0 D1 D2 D3 D4 D5 D6 D7

Fonctionnement du processeur : excution des instructions machine

EXECUTION DUNE INSTRUCTION MACHINE : CHEMIN DE DONNEES DU PROCESSEUR

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

CONTEXTE
Le programme compos dinstructions machine et de donnes a t charg en mmoire centrale par un outil CHARGEUR Le compteur ordinal CO est charg avec ladresse en Mmoire centrale du mot contenant la premire instruction du programme Lexcution du programme seffectue instruction par instruction, sous le pilotage de lunit de commande du processeur. Le traitement dune instruction par le processeur se dcoupe en trois tapes : )FETCH : linstruction est lue en mmoire centrale et copie dans le registre RI du processeur )DECODAGE : linstruction est reconnue par lunit de dcodage )EXECUTION : lopration correspondant linstruction est ralise

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

CONTEXTE
RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

R
Horloge

Store B R X 13 STOP
CO

A 14
15 16

Squenceur Dcodeur

10
RI RDO RAD

C 17
C A D
9

adresses donnes
Architecture des machines NFA004, 2006/2007 Jolle Delacroix

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Charger la prochaine instruction excuter depuis la mmoire dans le registre instruction (RI), le Compteur Ordinal pour quil pointe sur la prochaine instruction excuter,

Fetch

Modifier

Dcoder

linstruction qui vient dtre charge,

Dcodage Excution
10

Charger Excuter Fin


Architecture des machines NFA004, 2006/2007

les donnes ventuelles dans les registres internes, linstruction,


Jolle Delacroix

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Charger la prochaine instruction excuter depuis la mmoire dans le Registre instruction, le Compteur Ordinal pour quil pointe sur la prochaine instruction excuter,

Fetch

Modifier

Horloge Squenceur Dcodeur Compteur Ordinal : contient ladresse de la prochaine instruction a excuter Registre Instruction : contient linstruction en cours dexcution Bus

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

11

Excution de LOAD Im R 3 : Fetch


RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

R
Horloge

Store B R X 13 STOP
CO

A 14
CO --> RAD lecture 15 16

Squenceur Dcodeur

10
RI RDO

C 17
C A D
12

10
lecture
RAD

10
Architecture des machines NFA004, 2006/2007 Jolle Delacroix

adresses donnes

Excution de LOAD Im R 3 : Fetch


RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

R
Horloge

Store B R X 13 STOP
CO

Squenceur Dcodeur

10
RI Load RDO Load RAD

Fin de lecture RDO --> RI

A 14
15 16

C 17
C A D
13

lecture

Load Im R 3
Architecture des machines NFA004, 2006/2007 Jolle Delacroix

adresses donnes

Excution de LOAD Im R 3 : Fetch


RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

R
Horloge

Store B R X 13 STOP
CO

Incrment CO

A 14
15 16

Squenceur Dcodeur

11
RI Load INCO RDO Load RAD

C 17
C A D
14

adresses donnes
Architecture des machines NFA004, 2006/2007 Jolle Delacroix

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Charger la prochaine instruction excuter depuis la mmoire dans le registre instruction, le Compteur Ordinal pour quil pointe sur la prochaine instruction excuter,

Fetch

Modifier

CO RAD Lecture RDO RI Incrmentation CO


Jolle Delacroix 15

Architecture des machines NFA004, 2006/2007

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Dcoder linstruction qui vient dtre charge,

Dcodage Excution

Charger Excuter Fin

les donnes ventuelles dans les registres internes, linstruction,

LOAD Im R 3 : l'adressage est un mode immdiat. Il ny a pas doprandes en mmoire centrale.


Architecture des machines NFA004, 2006/2007 Jolle Delacroix 16

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Dcoder linstruction qui vient dtre charge,

Dcodage Excution

Charger Excuter Fin

les donnes ventuelles dans les registres internes, linstruction,

LOAD Im R 3 : l'opration est un chargement de registre. La valeur 3 est place dans le registre R. R3
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 17

Excution de LOAD Im R 3 : excution


RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

3
Horloge

Store B R X 13 STOP
CO

3R

A 14
15 16

Squenceur Dcodeur

11
Load Im R 3 RDO RAD

C 17
C A D
18

adresses donnes
Architecture des machines NFA004, 2006/2007 Jolle Delacroix

Add D R A : Fetch
RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

3
Horloge

Squenceur Dcodeur

11, 12
INCO

CO RAD Lecture RDO RI Incrment CO

Store B R X 13 STOP A 14
15 16 5

RI
Add D R A

RDO
Add D R A

C 17
C A D
Jolle Delacroix 19

RAD 11

lecture
11 Add D R A
Architecture des machines NFA004, 2006/2007

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Dcoder linstruction qui vient dtre charge,

Dcodage Excution

Charger Excuter Fin

les donnes ventuelles dans les registres internes, linstruction,

Architecture des machines NFA004, 2006/2007

Add D R A : l'adressage est un mode direct. Un premier oprande est le contenu de R. Le deuxime oprande est un mot mmoire d'adresse A : ramener cet oprande au niveau du CPU ncessite une opration de lecture en MC l'adresse A. Jolle Delacroix 20

Add D R A : Dcodage, excution


RB Y1 Z PSW

10
Y2

Load Im R 3 Add D R A

11 12

3
Horloge

A RAD lecture
CO

Store B R X 13 STOP A 14
15 16 5

Dcodeur

Add D R A

RDO A

C 17
C A D
Jolle Delacroix 21

Lecture
A

Architecture des machines NFA004, 2006/2007

Add D R A : Dcodage, excution


RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

3
Horloge

5 RDO
CO

Store B R X 13 STOP A 14
15 16 5

Dcodeur

Add D R A

RDO 5 A

C 17
C A D
Jolle Delacroix 22

5
Architecture des machines NFA004, 2006/2007

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Dcoder linstruction qui vient dtre charge,

Dcodage Excution

Charger Excuter Fin

les donnes ventuelles dans les registres internes, linstruction,

Add D R A : l'opration est une addition : il faut amener les deux oprandes l'UAL et activer le circuit d'addition. Puis stocker le rsultat dans R.
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 23

Add D R A : Dcodage, excution


RB Z=8 Y1 Add PSW Y2

10 11 12

Load Im R 3 Add D R A

3
Horloge

CO Add

RDO Y1 R Y2 ADD Z8

Store B R X 13 STOP A 14
15 16 5

Dcodeur

Add D R A

RDO 5 A

C 17
C A D

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

24

Add D R A : Dcodage, excution


RB Z=8 Y1

10
PSW Y2

Load Im R 3 Add D R A

11 12

8
Horloge

ZR

Store B R X 13 STOP A 14
5 15 16

CO

Dcodeur

Add D R A

RDO 5 A

C 17
C A D

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

25

Store B R X : Fetch
RB Y1 Z PSW Y2

10 11 12

Load Im R 3 Add D R A

8
Horloge

Store B R X 13 STOP A 14
12, 13
INCO

Squenceur Dcodeur

RI
Store B R X

RDO
Store B R X

CO RAD Lecture RDO RI Incrment CO

15 16

C 17
C A D

RAD 12

lecture
12 Store B R X
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 26

Les tapes dexcution dune instruction


(Chargement/Dcodage/Excution)
Dbut Dcoder linstruction qui vient dtre charge,

Dcodage Excution

Charger Excuter Fin

les donnes ventuelles dans les registres internes, linstruction,

Store B R X : l'adressage est un mode bas. On crit le contenu de R dans le mot mmoire dadresse C = (RB) + X

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

27

Store B R X : Dcodage, excution


RB Z=C Y1 Add PSW Y2

10 11 12

Load Im R 3 Add D R A

8
Horloge

Store B R X 13 STOP A 14
CO
Store B R X

Add

Dcodeur

RB Y1 X Y2 ADD ZC

15 16

RDO RAD

C 17
C A D

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

28

Store B R X : Dcodage, excution


RB Z=C Y1

10
PSW Y2

Load Im R 3 Add D R A

11 12

8
Horloge

Store B R X 13 STOP A 14
CO
Store B R X

Dcodeur

Z RAD R RDO Ecriture

15 16

RDO 8 RAD C

C 17

8
C A D

Ecriture

C 8
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 29

Fonctionnement du processeur : excution des instructions machine

EXECUTION DUNE INSTRUCTION MACHINE : LES MICROCOMMANDES DU PROCESSEUR

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

30

Excution dune instruction machine : les micro-commandes du processeur


Lunit de commande (squenceur) gnre, en fonction des tops horloge, des micro-commandes pour piloter les registres, lUal et la mmoire centrale

Horloge Squenceur Dcodeur Compteur Ordinal Registre Instruction Bus

L' unit de commande : Charger une instruction : Dcoder l'instruction : Excuter l'instruction: fetch dcodage excution

Micro commandes
UAL

Activer une opration sur les oprandes Activer une opration sur la mmoire Ouvrir / Fermer les registres

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

31

Registre (principe de fonctionnement)

Signal dentre

Ouvrir/ fermer

Barrire dentre

Bit

Registre

Bus

Signal de sortie
Ouvrir/ fermer

Barrire de sortie

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

32

Excution : Registre (principe de fonctionnement)


Barrire dentre Signal dentre
Horloge

R1en : R1sor :

Signal dentre Squenceur du registre R1 Signal de sortie du registre R1

R1

Bus

Dcodeur

Signal de sortie

Barrire de sortie

R1en R1 R1sor R2en R2


Architecture des machines NFA004, 2006/2007

(R2) Bus

(R1)

R1sor,R2en
Jolle Delacroix 33

R2sor

UAL (principe de fonctionnement)


Y1en : entre de loprande Y1 dans lUAL Y2en : entre de loprande Y2 dans lUAL Zsor : sortie du rsultat Z de lUAL RazY1 : mise 0 de loprande Y1

RazY1

+ Zsor

Y1en

Bus donnes

Selection opration

Rsultat

Y2en

Bus commande Registre dtat (PSW)


Architecture des machines NFA004, 2006/2007 Jolle Delacroix 34

RazY1 Zsor

RBUALen RB Y1en

RBsor RBen Add, Mul, And

Microcommandes
RADen RDOen, RDOsor RIen RIsor, Xsor COen, COsor INCO Entre dans RAD Entre dans RDO, Sortie de RDO Entre dans RI, Sortie de RI Sortie partie basse (X) de RI Entre dans CO, Sortie de CO Incrmentation du CO Entre dans R, Sortie de R Entre dans RSP, Sortie de RSP Incrmentation RSP Dcrmentation RSP Entre Oprandes Y1, Y2 dans UAL Sortie du rsultat Z de lUAL Entre dans RB, Sortie de RB Entre de RB dans UAL Mise 0 de loprande Y1 Lecture/criture vers MC Opration sur UAL

PSW INCRSP DECRSP

Y2en

RSP R
Horloge

RSPsor RSPen Rsor Ren COsor COen RIsor Xsor

Ren, Rsor RSPen,RSPsor INCRSP DECRSP Y1en, Y2en Zsor RBen, RBsor RBUALen RazY1 LEC/ECR Add, And, Mul, Or, Xor

CO INCO

Dcodeur
LEC/ECR

RI

RIen

RDOsor RDO RDOen RAD RADen

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

35

Microcommandes
RazY1 Zsor RBUALen RB Y1en Add, Mul, And PSW INCRSP DECRSP Y2en RBsor RBen

LOAD Im R 3 Fetch

Co RAD lecture RDO RI Incrment CO X (3) R Co RAD lecture RDO RI Incrment CO X RAD lecture RDO Y1 R Y2 Addition ZR Co RAD lecture RDO RI Incrment CO X Y2 RBUAL Addition ZRAD R RDO Ecriture

COsor, RADen LEC RDOsor, RIen INCO Xsor, Ren COsor, RADen LEC RDOsor, RIen INCO Xsor, RADen LEC RDOsor, Y1en Rsor, Y2en Add Zsor, Ren COsor, RADen LEC RDOsor, RIen INCO Xsor, Y2en RBUALen Add Zsor, RADen Rsor, RDOen ECR
36

Excution ADD D R A Fetch

RSP R
Horloge

RSPsor RSPen Rsor Ren COsor COen RIsor Xsor


STORE B R X Fetch Excution

CO INCO

Dcodeur
LEC/ECR

RI

RIen

RDOsor RDO RDOen RAD RADen


Excution

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

Fonctionnement du processeur : excution des instructions machine

EXECUTION DUNE INSTRUCTION MACHINE : LE CADENCEMENT DE LHORLOGE MICROPROGRAMMATION, SEQUENCEUR


Architecture des machines NFA004, 2006/2007 Jolle Delacroix 37

Excution dune instruction machine : micro-commandes et micro-instructions

Horloge Squenceur Dcodeur Compteur Ordinal Registre Instruction Bus

Lactivation des micro-commandes composant une instruction machine seffectue au rythme de lhorloge du processeur A chaque top horloge, le squenceur active un sous-ensemble de microcommandes composant une instruction

Processeur F (horloge ) = 2 GHZ ; P top horloge = 0,5 ns = dure du cycle processeur


LOAD Im R 3 Fetch Co RAD lecture RDO RI Incrment CO X (3) R COsor, RAD en LEC RDOsor, RIen INCO Xsor, Ren
Jolle Delacroix

TOP horloge 1 TOP horloge 2 TOP horloge 3


38

Excution
Architecture des machines NFA004, 2006/2007

Excution dune instruction machine : micro-commandes et micro-instructions

Le concepteur de processeur

Dfinit larchitecture de son processeur

Dfinit le jeu dinstructions du processeur


32 bits Code opration Mode d'adressage registre X

Construit le circuit squenceur Il programme lactivation des micro-commandes en fonction des tops horloge. Il cherche minimiser le temps dexcution de chaque instruction, donc le nombre de tops horloge ncessaire pour excuter chaque instruction

Choisit des conventions de reprsentations des nombres, caractres Complment 2, ASCII, IEEE754

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

39

Excution dune instruction machine : micro-commandes et micro-instructions

Le concepteur du processeur programme lactivation des micro-commandes en fonction des tops horloge. Il cherche minimiser le temps dexcution de chaque instruction, donc le nombre de tops horloge ncessaire pour excuter chaque instruction

R1

R1sor

10
10
R2 R2sor

15

??

Cpu 2 GHZ P = 0,5 ns

15
R1sor, R2sor
Deux registres ne peuvent ouvrir leur porte de sortie sur un mme cycle
Architecture des machines NFA004, 2006/2007

Mmoire 600 MHz P = 1,5 ns

La mmoire a un cycle 3 fois plus long que celui du processeur : le processeur attend la mmoire centrale durant deux cycles processeur
Jolle Delacroix 40

LOAD Im R 3 Fetch

Excution

Co RAD lecture RDO RI Incrment CO X (3) R

I1 : COsor, RADen, LEC I2 : RDOsor, RIen, INCO I3 : Xsor, Ren

1 cycle Attente mmoire (2 cycles) 1 cycle 1 cycle 5 cycles 1 cycle Attente mmoire (2 cycles) 1 cycle 1 cycle Attente mmoire (2 cycles) 1 cycle 1 cycle 1 cycle 10 cycles 1 cycle Attente mmoire (2 cycles) 1 cycle 1 cycle 1 cycle 1 cycle Attente mmoire (2 cycles) 9 cycles

ADD D R A Fetch

Excution

Co RAD lecture RDO RI Incrment CO X RAD lecture RDO Y1 R Y2 Addition ZR Co RAD lecture RDO RI Incrment CO X Y2 RBUAL Addition ZRAD R RDO Ecriture

I1 : COsor, RADen, LEC I2 : RDOsor, RIen, INCO I3 : Xsor, RADen, LEC I4 : RDOsor, Y1en I5 : Rsor, Y2en, Add I6 : Zsor, Ren I1 : COsor, RADen, LEC I2 : RDOsor, RIen, INCO

STORE B R X Fetch

Excution

I3 : Xsor, Y2en, RBUALen, Add I4 : Zsor, RADen I5 : Rsor, RDOen, ECR

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

41

Niveaux de programmation ...


Programme en langage de haut niveau instructions de haut niveau

fonction perimetre (a, b : in integer) return integer is begin perimetre := (2 * a) + (2 * b); end;

Compilateur
processeur

Niveau utilisateur Machine physique "matrielle"

COsor, RADen, LEC RDOsor, RIen R1sor, Y1en Xsor, Y2en, Mul Zsor, R1en

MUL Im R1 2 MUL Im R2 2 ADD Rg2 R1 R2

Programme en langage dassemblage

Assembleur
011011100000.10010 001110111101.11011 001111110001.11101
Mmoire centrale

Programme en langage machine

Squenceur : microprogrammation
Bus

traduction
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 42

Squenceur micro-programm
Il est constitu :
dune mmoire qui contient les micro-programmes de chaque instruction machine; dun micro-compteur ordinal qui pointe sur la microinstruction excuter.

Une micro-instruction :
est une chaine binaire dont la taille est gale au nombre de micro-commandes disponibles; Un bit 0 indique que la micro-commande ne doit pas tre active; un bit 1 indique que la micro-commande doit tre active au cours du cycle processeur.

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

43

Add D R A

RI DRA

Horloge
Signal mmoire prte

Add

Gnrateur d'adresse initiale

Micro-CO

00000 000000101001000001 00001 000000000010001010 00010 000010100001000101 00011 100000000000001000 00100 001001010000000000 00101 000110000000000000 00110 000000101001000001 00111 000000000010001010 01001 000000000001001000 01010 01011 0000000100001101 01100 0000010000000010 01101 01110 01111 Mmoire 10000 de micro-programme

Fetch
0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 Y1en RAZY1 Y2en Zsor Ren Rsor Lec Add COen COsor RIen RIsor RADen RDOen RDOsor Xsor INCO AttMem

Load Im,R 3

Architecture des machines NFA004, 2006/2007

Squenceur micro-programm
Jolle Delacroix

44

Fonctionnement du processeur : excution des instructions machine

RUPTURE DE PROGRAMME : les INTERRUPTIONS

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

45

Notion dinterruptions
Lexcution dun programme seffectue instruction aprs instruction.
Une interruption est un mcanisme permettant de stopper lexcution du programme en cours afin daller excuter une tche juge plus prioritaire. Une interruption permet de signaler un vnement survenu sur la machine et dexcuter un traitement spcifique (programme de service ou routine dinterruption) li cet vnement .

Elle travaille
Architecture des machines NFA004, 2006/2007

DRING !

Elle rpond au tlphone


Jolle Delacroix

Elle reprend son travail


46

Notion dinterruptions
Une interruption est un mcanisme permettant de stopper lexcution du programme en cours afin daller excuter une tche juge plus prioritaire. Elle est caractrise par un numro et un traitement associ (la routine ou traitant dinterruption)
On distingue principalement deux types dvnements : Les interruptions externes ou matrielles sont mises par les priphriques du processeur (fin dcriture disques, plus de papier imprimante). Ce sont les IRQs. Les interruptions internes ou logicielles sont mises par le processeur lui-mme lorsquil rencontre une erreur dans lexcution du programme (division par zro, accs mmoire illgal). Ce sont les trappes.

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

47

Notion dinterruptions
Une interruption est un mcanisme permettant de stopper lexcution du programme en cours afin daller excuter une tche juge plus prioritaire. Elle vite au processeur de scruter les priphriques
Y-a-t-il le feu chez vous ?

vnement Il y a le feu As tu une donne ?

vnement IRQ 1 Jai une donne

SCRUTATION : Toutes les 5 minutes


Architecture des machines NFA004, 2006/2007

INTERRUPTION : quand lvnement survient


Jolle Delacroix 48

Notion dinterruptions
Liste des IRQs sur un processeur Intel famille x86 :
IRQ 0 1 3 4 5 6 7 8 9 10 11 12 13 14 15
Architecture des machines NFA004, 2006/2007

Priphrique Horloge interne clavier port de communication COM2/COM4 port de communication COM1/COM3 libre contrleur de disquettes port imprimante LPT1 CMOS (Horloge temps rel) libre libre libre port souris PS2/libre processeur numrique de donnes(Coprocesseur arithmtique) contrleur de disques durs primaire (IDE) contrleur de disques durs secondaire (IDE)
Jolle Delacroix 49

Mcanisme des interruptions


CPU
INTR
IRQ
non oui

Intr?

UE

Fetch dcodage excution

Acquittement Identification IRQ Traitement de l'interruption

Un priphrique signale un vnement au processeur en mettant une interruption matrielle. Le processeur teste sa ligne dentre dinterruption (INTR) avant de commencer le traitement de linstruction suivante du programme quil excute.
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 50

Les interruptions
Mmoire centrale
Numro 1 2 3 4 adresse 1000 1100 1500 2000

CPU

INTR
INTA

IRQ numro

UE

1. L'UE envoie un signal d'interruption : INTR 2. Le CPU acquitte avec le signal INTA 3. L'UE transmet un numro d'interruption. Ce numro indexe une table en mmoire centrale le vecteur d'interruption, qui pour chaque numro dinterruption donne l'adresse de la routine associe en mmoire centrale.

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

51

Les Interruptions

Table des vecteurs d'interruptions (adresse 00000) 0017 CO 1002

IRQ 3

0017

traitant IRQ3 Programme

Programme
1002 Latence
Interruption n3

CO <-- 0017

Traitant d'IRQ n3 0017 Traitement IRQ

1002

CO <-- 1002

9 La table des vecteurs dinterruptions est ladresse 00000 sur un pc; Elle occupe 1 Ko (256 entres de 4 octets)
Jolle Delacroix 52

Architecture des machines NFA004, 2006/2007

Exemple : IRQ 1 : donne en provenance du clavier


3. IRQ 1/ 4. code ascii Code ascii
1. INTR 2. INTA Contrleur du clavier processeur

Code ascii

IRQ 1

Copie code ascii dans un registre du processeur

Programme X

Routine IRQ 1

Excutions du CPU
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 53

Brochage du processeur pour le traitement des interruptions Donnes Numro IRQ


Read Write Entre horloge ou cristal
Jolle Delacroix 54

Alimentation et masse

Vcc GND

INTR INTA
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15

Architecture des machines NFA004, 2006/2007

Microprocesseur

D0 D1 D2 D3 D4 D5 D6 D7

Adresses

Le masquage des interruptions


Registre PSW du processeur

S O C Z I

I = 1, Interruptions masques I = 0, Interruptions dmasques


- O : positionn 1 si Overflow, 0 sinon - Z : positionn 1 si rsultat opration nul, 0 sinon - C : positionn 1 si carry, 0 sinon - S : positionn 0 si rsultat opration positif, 1 sinon

Une interruption masque nest pas prise en compte par le processeur lorsque celle-ci survient. EI : Enable Interrupt
les interruptions sont dmasques

DI : Desable Interrupt
les interruptions sont masques

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

55

Hirarchisation des interruptions


Le processeur dispose dune seule broche INTR pour recevoir les interruptions. Que faire :
Si deux interruptions arrivent en mme temps ? Si une interruption survient durant le traitement dune autre interruption ?

On introduit une notion de priorit (niveau) entre interruptions.


Exemple : 8 niveaux Niveau 0 1 2 3 4 5 6 7 Plus forte priorit Plus faible priorit
Jolle Delacroix 56

Architecture des machines NFA004, 2006/2007

Hirarchisation des interruptions


Le processeur dispose dune seule broche INTR pour recevoir les interruptions. Que faire :
Si deux interruptions arrivent en mme temps ?

) On traite dabord la plus prioritaire


Si une interruption survient durant le traitement dune autre interruption ?

) Elle interrompt le traitement en cours seulement si elle est de priorit suprieure

On introduit une notion de priorit (niveau) entre interruptions.


Exemple : 8 niveaux Niveau 0 1 2 3 4 5 6 7

Plus forte priorit


Architecture des machines NFA004, 2006/2007

Plus faible priorit


Jolle Delacroix 57

Hirarchisation des interruptions


Arrive IRQ 5, 6 Traitement IRQ 5, IRQ 6 en attente Arrive IRQ 7; IRQ 6, 7 en attente

Arrive IRQ 2 On interrompt le traitement de IRQ5

Traitement IRQ 2, IRQ 6, 7 , 5 en attente

Fin traitement IRQ 2, Reprise traitement IRQ 5 Fin traitement IRQ 5, Traitement IRQ 6, puis IRQ 7
Architecture des machines NFA004, 2006/2007 Jolle Delacroix 58

Le contrleur dinterruption
La gestion des priorits entre interruptions matrielles est la charge dun circuit spcifique : le contrleur dinterruption. Il reoit les interruptions dlivres par les priphriques du processeur, mmorise les interruptions reues, arbitre les priorits et dlivre linterruption la plus prioritaire au processeur.

IRR ISR

IMR

UE UE UE UE UE UE UE UE

IRR : registre des requtes dinterruptions ISR : registre des interruptions en cours IMR : registre des interruptions masques

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

59

Le contrleur dinterruption
CPU
INTR, INTA

ISR IRR

Numro IRQ / EOI

IRR Arrive IRQ5, IRQ6 Arrive IRQ7 Arrive IRQ2 Fin IRQ2 (EOI) Fin IRQ5 (EOI) Fin IRQ6 (EOI) Fin IRQ 7 (EOI) Irq 2 vers cpu EOI vers ctleur EOI vers ctleur Irq 6 vers cpu EOI vers ctleur Irq 7 vers cpu EOI vers ctleur Irq 5 vers cpu 01100000 11000000 11000100 11000000 11000000 10000000 00000000
Jolle Delacroix

ISR Traitement IRQ5 Traitement IRQ5 Traitement IRQ2 Traitement IRQ5 Traitement IRQ6 Traitement IRQ7 00100000 00100000 00100100 00100000 01000000 10000000 00000000

IRR 01000000

11000000

10000000 00000000

Architecture des machines NFA004, 2006/2007

60

Les interruptions : la zone de pile en mmoire centrale


La pile est une zone de la mmoire centrale constitue dun ensemble de mots. Seul le mot au sommet de la pile est accessible. Son adresse est contenue dans le registre du processeur RSP Deux oprations sont seulement autorises : Ajouter un mot au sommet de la pile (PUSH) Oter le mot au sommet de la pile (POP)

RSP

Pile
Jolle Delacroix 61

Architecture des machines NFA004, 2006/2007

Instructions machines pour manipuler la pile


RSP Ajouter un mot au sommet de la pile Push Rg1 R0 Le contenu du registre R0 est crit dans le mot dont ladresse est (RSP). RSP est incrment R0

40 10 2

123

RSP 123 40 10 2

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

62

Instructions machines pour manipuler la pile


RSP Oter un mot au sommet de la pile POP Rg1 R1 R1 123 40 10 2

RSP est dcrment. Le contenu du mot dont ladresse est (RSP) est mis dans le registre R1.

RSP R1

123
Jolle Delacroix

40 10 2
63

Architecture des machines NFA004, 2006/2007

Les interruptions : la zone de pile en mmoire centrale


La pile est une zone de la mmoire centrale constitue dun ensemble de mots Dans le cadre des interruptions, cette zone est utilise pour sauvegarder les adresses contenues dans la CO, quand le processeur passe du programme utilisateur aux routines dinterruptions.
Programme 1002 Traitant d'IRQ n3 Interruption n3 On crit dans CO, ladresse de la routine dIRQ 1002 CO <-- 0017. Auparavant, on mmorise la valeur du CO (1002) dans la pile 0017 Traitement IRQ RTI

1002

1002
0035 Le traitement de lIRQ est termin. On retourne dans le programme utilisateur ladresse o il a t interrompu. On remet dans CO la valeur crite au sommet de pile

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

64

IRQ 1 IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 IRQ 8

10 20 30 40 50 60 70 80

Hirarchisation des interruptions


Le processeur excute le programme X, arrive de IRQ 5 CO CO IRQ 5 1002 1002

50

10 20 30 40 50 60 70 80
1000 1001 1002 1003 1004 1005

Routine irq1 Routine irq2 Routine irq3 Routine irq4 Routine irq5 Routine irq6 Routine irq7 Routine irq8
I1 I2 I3 I4 I5 I6

Le processeur excute le traitant IRQ 5, arrive de IRQ 2 CO

55

IRQ 2

CO
55

1002

20

Le processeur achve le traitant IRQ 2, reprise du traitant IRQ 5 CO


55

CO 1002

1002

29

55

Le processeur achve le traitant IRQ 5, reprise du programme X CO


Programme X

CO

Architecture des machines NFA004, 2006/2007

1002

Jolle Delacroix

59

1002
65

Instructions machine / assembleur

Instructions lies aux interruptions Instructions lies la pile

EI : Autoriser les interruptions DI : Masquer les interruptions RTI : retour de traitant dinterruption POP Rg1 R1 : Le sommet de pile est mis dans R1 PUSH Rg1 R1 : R1 est plac au sommet de la pile

Architecture des machines NFA004, 2006/2007

Jolle Delacroix

66