Vous êtes sur la page 1sur 84

Leçon 1

Introduction à l’informatique

1
Leçon 1

Introduction
 Ce que vous croyez que l’informatique est :
- Il s’agit d’un PC ou d’un MAC ?
- Il s’agit de savoir utiliser MS Word, Excel ou PPT !!
- Il s’agit de connaitre le langage C ou JAVA ou n’importe !!
 Ce que l’informatique est vraiment :
- Avoir un modèle sur le fonctionnement d’un ordinateur dans le niveau
adéquat.
- Arriver à comprendre et à gérer la complexité d’un système
informatique.
- Savoir utiliser un ordinateur/microprocesseur/microcontrôleur pour
la résolution d’un problème d’ingénierie quelconque.
ISSAT Kasserine 2
Leçon 1

Architecture des ordinateurs (1)


 Notion de Hardware (matériel) et de Software (logiciel)

Hardware
Processeurs
i3,i5,AMD,ARM

Mémoires
Caches, RAM, Disque Dur

Périphérique E/S
(clavier, écran)

ISSAT Kasserine 3
[ Arr 1C
Leçon
A Ls s
s
d, s, C,

Architecture des ordinateurs (2)


d, i
i b mrT
taBéCcab
i sami ul
ocnori e
Exemple de Pporte NON
……. avec deux transistors fabriqués avec la
nuci ctt Si Grille = 1 
o
technologie CMOS
nl rust
ree ei e Drain et Source connectés
tusd ti s,
er, ecasm Si Grille = 0  Drain et Source
ss, rci pe
M rt déconnectés
Uehni c
l bXgetm
oa, i , éé
A gsc stggrs
T
i udéreé
r
ql cess
uesosti
a
e, d, o Si Grille = 0 
s eubn Drain et Source connectés
n
,Mrl n
s
Usoa
X i
c, , qur
Si Grille = 1  Drain et Source
i
e ree
déconnectés

l
s
l de
égmd
ISSAT Kasserine ci ée 4
Leçon 1

Les niveaux d’abstraction


Application

Système
d’exploitation
Software
Compilateur

Pilotes (Drivers),
Programmation niveau bas (Assembleur)
Jeu d’instruction (ISA)
Interface
Processeur Mémoires
E/S

Hardware Electronique Numérique (portes logiques,


MUX, additionneurs, ALUs, etc)

Electronique Analogique (transistors)

ISSAT Kasserine 5
Leçon 1

Le jeu d’instructions (ISA)


Questions ?
1) C’est quoi, qu’est ce que ça veut dire ?
2) Ça sert à quoi ?
3) Quelles sont ses principales caractéristiques ?

Réponses
1) C’est l’interface entre le niveau Hardware et Software d’un système
2) Ça comporte l’organisation des instructions pour le processeur, le format
de ces instructions, l’accès aux instructions et aux données, les modes
d’adressage.

 Exemple d’ISA : ARM, Intel 80x86 / Pentium, PowerPC, SPARC, etc.


ISSAT Kasserine 6
Leçon 1

Facteurs d’influence sur l’architecture des ordinateurs

Langage de
Technologie
programmation

Architecture
des ordinateurs

Systèmes Application
d’exploitation

ISSAT Kasserine 7
Leçon 1

Influence de la technologie
Année Nom Fabricant Horloge max Technologie Nombre de transistors
1974 8080 Intel 2 MHz 6 µm ~ 6000 NMOS

PowerPC IBM-
1993 50 - 80 MHz 0.6 µm ~ 2.6 M
601 Motorolla

2012 Core i7 Intel 2.5 – 3.7 GHz 22 nm ~ 1400 M

Rapport  X 1500 X 270 X 230 000

Evolution des microprocesseurs depuis 1972 jusqu’à 2012 :


 http://en.wikipedia.org/wiki/Microprocessor_chronology

ISSAT Kasserine 8
Leçon 1

Résumé
 Tout les systèmes à base de microprocesseur se composent de :

1 - Un ou plusieurs Processeurs  (A) Chemin de Données,


(B) Unité de Contrôle « Datapath & Control »
2 - De la mémoire.
3 - Des interfaces d’entrée / sortie.

 Le jeu d’instruction (ISA) est un niveau d’abstraction très important.

ISSAT Kasserine 9
Leçon 2
La conception d’un processeur
simple

10
Leçon 2

Rappels de la 1 ère
leçon
Application

Système
d’exploitation
Software
Compilateur

Pilotes (Drivers),
Programmation niveau bas (Assembleur)
Jeu d’instruction (ISA)
Interface
Processeur Mémoires
E/S

Hardware Electronique Numérique (portes logiques,


MUX, additionneurs, ALUs, etc)

Electronique Analogique (transistors)

ISSAT Kasserine 11
Leçon 2

Objectifs
1) Connaitre l’architecture interne d’un µP et savoir distinguer
entre les différents éléments qui le constituent.

2) Concevoir un jeu d’instruction (ISA)

3) Suivre et analyser l’exécution des instructions sur un µP.

ISSAT Kasserine 12
Leçon 2

Un processeur très simple


Les instructions (code ou programme) à exécuter par le
microprocesseur sont sauvegardées dans la Mémoire.

L’Unité Processeur contient:


UP Mémoire

- Unité Arithmétique et Logique (UAL)


- Des Registres Chemin de données

- Unité de Contrôle (UC)


(Datapath) E/S Bus du
processeur

Le bloque d’interface E/S pour la communication avec le monde


extérieur.
La communication entre les éléments précédents est assurée
par le bus local du processeur.
ISSAT Kasserine 13
Leçon 2

Les mémoires (1)


Questions ?
1) Ça sert à quoi ?
2) Quelles sont ses principales caractéristiques ?
3) Quels sont les différents types de mémoires ?
4) Comment ça fonctionne ?

Réponses
1) Stocker, sauvegarder des informations (en binaire 010001110 d’une façon
permanente ou temporaire (des données ou des instructions).
2) Technologie, Taille, Largeur du bus d’adresse.
3) RAM, ROM, cache, EEPROM, etc.
ISSAT Kasserine 14
Leçon 2

Les mémoires (2)


 le bus de contrôle permet de choisir entre Bus de contrôle Case N [15:0] (0100000..100)
le mode Lecture/Ecriture et d’activer ou
RW
désactiver la mémoire.
Mémoire
Enable
Case 1 [15:0] (0101001…010)

 Le bus d’adresse indique la case Case 0 [15:0] (0100000..100)

mémoire en cours d’utilisation.

 Le bus de données transporte la donnée Bus d’adresses


vers ou à partir de la mémoire.
A[11:0] D[15:0]
Bus de donnée
 A l’intérieur de la mémoire  des cases mémoire pleines de 0 et 1.

 La largeur du bus d’adresse détermine la taille de la mémoire (combien de cases ?)

La largeur du bus de données détermine la largeur de ces cases mémoire.

ISSAT Kasserine 15
Leçon 2

Les mémoires : Exemple (1)


RW Enable

0x007 Case 7

.
.
Nombre total de cases mémoire
0x002 Case 2

0x001 Case 1

0x000 Case 0

A[2:0] D[7:0]

Le bus d’adresse est de largeur 3 bits.


Nombre total de cases mémoire = 2 3 = 8 cases mémoires.
Le bus de données est de larguer 8 bits  la case mémoire « word » = 8 bits
ISSAT Kasserine 16
Leçon 2

Les mémoires : Exemple (2)


RW Enable

0xFFF mot N
mot N-1
.
.
.
.. Nombre total de mots
.
0x003 mot 3
0x002 mot 2
0x001 mot 1
0x000 mot 0

A[11:0] D[15:0]

Le bus d’adresse est de largeur 12 bits


Le bus de données est de larguer 16 bits  le mot mémoire « word » = 16 bits
 Nombre total de mots mémoire = 2 largeur du bus d’adresse = 212 mots de 16 bits chacun
ISSAT Kasserine 17
Leçon 2

Mémoire, registres et UAL

U A L : effectue les opérations arithmétiques (+, - , ÷ , ×) et logiques (AND, OR , etc.)


R e g i s t r e s : emplacement de sauvegarde temporaire de quelques données ou instructions.

 Pour Exécuter un programme, l’UP doit :


1) Lire l’instruction – A partir de la mémoire moyennant l’adresse de cette instruction.
2) Décoder l’instruction – Distinguer entre les différents types d’instructions possibles moyennant un
code (opcode).
3) Lire les données – A partir de la mémoire moyennant l’adresse de cette donnée.
4) Exécuter l’instruction – Faire le nécessaire moyennant les étapes précédentes.
ISSAT Kasserine 18
Leçon 2

Les registres
Questions ?
1) Comment ça fonctionne ?
2) Où est ce qu’on les trouve ?
3) Quelle est la différence entre un registre et une mémoire ?

Réponses
1) Stocker, ou sauvegarder des informations (en binaire 010001110) d’une façon
temporaire.
2) Situés à proximité du processeur  accès rapide.
3) Taille réduite.

ISSAT Kasserine 19
Leçon 2

Concevoir un processeur ?
Bus d’adresse 12 bits
16 bits Contrôle 16 bits
PC IR
Mémoire
16 bits 2 12 mots de 16 bits
16 bits Instructions (+,-, OR,…)
ALU ACC
Données (5,FF,…)

16 bits
MU0
UP Bus de données
Configuration minimale :
UAL : réalise les opérations arithmétiques sur les données.
Accumulator (ACC) : sauvegarde les données en cours de traitement.
Program Counter (PC) : contient l’adresse de la prochaine instruction.
Instruction Register: contient le code de l’instruction en cours d’exécution.
ISSAT Kasserine 20
Leçon 2

Lire l’instruction : instr. Fetch


Bus d’adresse

Contrôle
PC IR
Mémoire
Instructions (+,-, OR,…)
ALU ACC
Données (5,FF,…)

Bus de données
 UP applique le contenu de PC sur le bus d’adresse.
 La mémoire renvoie le contenu de la case d’adresse PC. Ce contenu est la 1 ère instruction.
 L’instruction est sauvegardée dans IR.

ISSAT Kasserine 21
Leçon 2

Décoder l’instruction : Instr. Decode


Bus d’adresse

Contrôle
PC  PC + i IR
Mémoire
Instructions (+,-, OR,…)
ALU ACC
Données (5,FF,…)

Bus de données
L’instruction contenue dans IR est décodée par le circuit de contrôle qui applique les signaux
nécessaires à l’ALU et le reste des éléments de l’UP.
Le PC est incrémenté par l’ALU de la valeur i  c’est l’adresse de la prochaine instruction.

ISSAT Kasserine 22
Leçon 2

Lire les données : Data Fetch


Bus d’adresse

Contrôle
PC IR
Mémoire
Instructions (+,-, OR,…)
ALU ACC
Données (5,FF,…)

Bus de données

Le registre IR applique l’adresse de la donnée qui va être utilisée par l’ALU.
 La mémoire renvoie le contenu de la case dont l’adresse est fournie par IR.
 Ce contenu sera utilisé soit par l’ALU ou l’ACC.

ISSAT Kasserine 23
Exécuter : Execute
Leçon 2

Bus d’adresse

Contrôle
PC IR
Mémoire
Instructions (+,-, OR,…)
ALU ACC
Données (5,FF,…)

Bus de données

Les opérations arithmétiques et logiques sont effectuées par l’ALU sur les données suivant
l’instruction.
Le résultat est sauvegardé dans l’ACC.

ISSAT Kasserine 24
Sauvegarde du résultat : Save
Leçon 2

Bus d’adresse

Contrôle
PC IR
Mémoire
Instructions (+,-, OR,…)
ALU ACC
Données (5,FF,…)

Bus de données

Le résultat est copié de l’ACC vers la mémoire. L’adresse de sauvegarde se trouve aussi dans
le registre IR.
Cette opération peut ne pas avoir lieu  elle dépend de la nature de l’instruction.

ISSAT Kasserine 25
Leçon 2

Concevoir un jeu d’instructions (ISA) pour MU0?


Les instructions (code ou programme) à exécuter par le microprocesseur ainsi que

les données à traiter sont sauvegardées dans la Mémoire.


0xFFF mot N
mot N-1
.

?
.
.
..

Mémoire
.
0x003 mot 3
0x002 mot 2
0x001 mot 1
0x000 mot 0
Instructions (+,-, OR,…)

Données (5,FF,…) 0xFFF mot N


mot N-1
.

?
.
.
..
.
0x003 mot 3
0x002 mot 2
0x001 mot 1
0x000 mot 0

ISSAT Kasserine 26
Leçon 2

Concevoir un jeu d’instructions (ISA) pour MU0?


Instruction (16 bits)
Opcode Opérandes / Operands

4 bits 12 bits

Opcode = Operation code, avec un Opcode sur 4 bits on peut concevoir 24 = 16 opérations

possibles (Arithmétiques, Logiques, de sauvegarde (Save), de chargement (load), de contrôle de


flux, de branchement, etc).

Opérandes = un nombre, une adresse d’une donnée dans la mémoire.

Le code binaire formé par « Opcode + Opérandes » est appelé code machine.

Dans le cas de MU0 le code machine est de largeur de 16 bits.

ISSAT Kasserine 27
Leçon 2

Concevoir un jeu d’instructions (ISA) pour MU0?


Instruction Opcode Effet
LDA valeur 0000 ACC  mem16[valeur]
STO valeur 0001 mem16[valeur]  ACC
ADD valeur 0010 ACC  ACC + mem16[valeur]
SUB valeur 0011 ACC  ACC  mem16[valeur]
JMP valeur 0100 PC  valeur
JGE valeur 0101 si ACC  0 PC  valeur
JNE valeur 0110 si ACC  0 PC  valeur
STP valeur 0111 stop
mem16[valeur] : le contenu de la case mémoire d’adresse valeur .
LDA, STO : instructions de chargement/sauvegrade (load/store).
ADD, SUBB : instructions de calcul (computation).
JMP, JGE, JNE, STP : instructions de branchement (conditional branches).

ISSAT Kasserine 28
Leçon 2

Application de l’ISA sur MU0 (1)


 Soit le code/programme composé des instructions suivantes:

Instructions Commentaires

1. LDA 02E ; charger mem[02E] dans ACC.


2. ADD 02F ; ajouter mem[02F]au contenu de ACC.

3. STO 030 ; sauvegarder le contenu de ACC. dans mem[030]

4. STP ; arrêter le programme

Langage Langage
Assembleur Machine MU0

ISSAT Kasserine 29
Leçon 2

Application de l’ISA sur MU0 (2)


….. 030 …..

MU0 1234 02F 1234

Reg. Adresse
PC
ABCD 02E ABCD

……….
ALU ACC
…..
005 …..
IR
…..

Reg. données
004 …..
7 000
Décodeur
003 STP
1 030
002 STO 030
2 02F
001 ADD 02F
0 02E
000 LDA 02E
Code machine
 Au démarrage, les registres sont équivalent Instructions
initialisés à la valeur 0 .

ISSAT Kasserine 30
Leçon 2

Instruction 1 : LDA 02E


….. 030
MU0

Adresse
0000 1234 02F

Reg.
0000 PC
Cycle 1 ABCD 02E
ALU
0000 ACC

……….
données
0000
0 02E IR

Reg.
00000
02E
Décodeur ….. 005
….. 004
002E 7 000 003
MU0
Adresse
PC  PC + 1 002E
Reg.
1 030 002
0001
0000 PC
Cycle 2 2 02F 001
ALU
ABCD
0000 ACC 0 02E 000
données

0 02E IR ABCD Code machine


Reg.

Décodeur

ISSAT Kasserine 31
Leçon 2

Instruction 2 : ADD 02F


0001 ….. 030
MU0

Adresse
1234 02F

Reg.
0001 PC
Cycle 1 ABCD 02E
ALU
ABCD ACC

……….
données
0 02F
2 02E IR

Reg.
2 02F
Décodeur ….. 005
….. 004
002F 7 000 003
MU0
Adresse
PC  PC + 1 002F
Reg.
1 030 002
0002
0001 PC
Cycle 2 2 02F 001
ALU
ABCD
BE01 ACC 0 02E 000
données

2 02F IR 1234 Code machine


Reg.

Décodeur

ISSAT Kasserine 32
Leçon 2

Instruction 3 : STO 030


0002 030
BE01
MU0

Adresse
1234 02F

Reg.
0002 PC
Cycle 1 ABCD 02E
ALU
BE01 ACC

……….
données
2 030
1 02F IR

Reg.
1 030
Décodeur ….. 005
….. 004
0030 7 000 003
MU0
Adresse
PC  PC + 1
Reg.
1 030 002
0002
0003 PC
Cycle 2 2 02F 001
ALU
BE01 ACC 0 02E 000
BE01
données

1 030 IR Code machine


Reg.

Décodeur

ISSAT Kasserine 33
Leçon 2

Instruction 4 : STP
BE01 030
0003 1234 02F
MU0

Reg. Adresse
ABCD 02E
0003

……….
STOP PC
ALU
BE01 ACC ….. 005

Reg. données
1 000
7 030 ….. 004
IR
7 000 7 000 003
Décodeur
1 030 002
2 02F 001
0 02E 000
Code machine

ISSAT Kasserine 34
Leçon 2

Résumé (1)
L’exécution des opérations dans le processeur est déclenché par un signal
d’horloge (clock).
 Un accès mémoire consomme un cycle horloge.
Les instructions LDA, STO, ADD et SUB consomme 2 cycles horloge.
Les instructions JMP, JGE, JNE et STP consomme 1 cycle horloge.
Le registre PC est incrémenté à chaque fois qu’il est utilisé  pour pointer
sur la prochaine instruction à exécuter.
Après une mise à zéro (reset), le registre PC est mis à 0 ainsi que le reste des
registres.

ISSAT Kasserine 35
Leçon 2

Résumé (2)
Les processeurs exécutent les instructions sauvegardées dans la mémoire !
Une instruction est composée de 2 champs : Opcode + Opérandes
La configuration minimale pour réaliser un processeur est :
Unité Processeur (ALU, Registres, Unité de contrôle) + Mémoire +
Des bus de communication.
Tous les processeurs fonctionnent avec les mêmes principes que MU0 mais
ont des architectures internes plus complexes.
Cette complexité vient du besoin de plus de performances : temps
d’exécution, consommation d’énergie, Jeu d’instruction plus complet..

ISSAT Kasserine 36
Leçon 2

Comment améliorer les performances de MU0 ?


Plusieurs techniques :
Architecture : Von Neumann, Harvard, Harvard modifié, Pipeline,
Périphérique Spécifiques (ex. FPU), plusieurs modes spéciaux de
fonctionnement (priorité, exclusivité, protection), ..
Jeux d’instruction : CISC, RISC, ISA sur 32 bits, plus de modes
d’adressage, …
Mémoire : plus de mémoire cache, Augmenter le nombre de
Registres, …  Le sujet de la leçon 3
ISSAT Kasserine 37
Leçon 3
La conception avancée des
processeurs

38
Leçon 3 : Rappel

Comment améliorer les performances de MU0 ?


Plusieurs techniques :
Architecture : Von Neumann, Harvard, Harvard modifié, Pipeline,
Périphérique Spécifiques (ex. FPU), plusieurs modes spéciaux de
fonctionnement (priorité, exclusivité, protection), ..
Jeux d’instruction : CISC, RISC, ISA sur 32 bits, plus de modes
d’adressage, …
Mémoire : plus de mémoire cache, Augmenter le nombre de
Registres, …

ISSAT Kasserine 39
Leçon 3

Objectifs
1) Identifier les différentes techniques de conception des
processeurs modernes. (c’est quoi ?)

2) Connaitre l’impact de chacune de ces techniques sur les


performances du processeurs ou du système. (ça sert à
quoi ?)

ISSAT Kasserine 40
Leçon 3

Plusieurs techniques « très variées »


 Architecture, ISA et Mémoire !
 Au cours de cette leçon :
• Architectures Von Neumann, Harvard et Harvard modifié
• Jeu d’instruction CISC et RISC
• Technique de pipeline
• Modes d’adressage
• Mémoire cache
• Périphériques et modes spécifiques
ISSAT Kasserine 41
Leçon 3

Architectures (1)
Bus Les instructions et les données sont
Mémoire
Instructions sauvegardées dans la même mémoire.
MU0  Architecture Von Neumann
Données

Mémoire
MU0 Les instructions et les données sont
Instr.
Bus 1
sauvegardées dans des mémoires
différentes (Mémoire donnée et
Bus 2 Mémoire programme ou code).
 Architecture Harvard
Mémoire
Donn.

ISSAT Kasserine 42
Leçon 3

Architectures (2) : Von Neumann vs Harvard

Von Neumann Harvard


• Conception simple bus. • Accès aux données et aux
• Possibilité de modification instructions simultanément.
des instructions comme des •Exécution plus rapide des
Avantages données. programmes.
(+)

• Mémoire à accessibilité • Conception compliquée (2 bus


limitée. d’adresse, de données et de
Inconvénients contrôle).
()

ISSAT Kasserine 43
Leçon 3

Jeu d’instruction « ISA » (1)


Une adresse Fonction Adr. Opér. 1 MU0, µC Motorola
f bits n bits
2 adresses Fonction Adr. Opér. 1 Adr. Destin. ARM, Intel 8086
f bits n bits n bits
3 adresses Fonction Adr. Opér. 1 Adr. Opér. 2 Adr. Destin. ARM
f bits n bits n bits n bits
4 adresses Fonction Adr. Opér. 1 Adr. Opér. 2 Adr. Destin. Adr. Next_i
f bits n bits n bits n bits n bits

Exemple de la leçon 2 : code exécuté sur MU0


Avec MU0 (Instruction codée sur 16 bits) Avec un µP x (Instruction codée sur 32 bits)
1. ADD 02E, 02F, 030
1. LDA 02E 2. STP
2. ADD 02F
3. STO 030
4. STP
ISSAT Kasserine 44
Leçon 3

Jeu d’instruction « ISA » (2)


Courtes, simples Longues, Sophistiquées
Instructions Instructions
Uni-opération Multi-opération
Uni-accès mémoire Multi-accès mémoire

Programme Programme
Compliqué Simple
ou Code ou Code

Architecture Architecture
Simple Compliqué
interne du interne du
processeur processeur
RISC CISC
ISSAT Kasserine 45
Leçon 3

Jeu d’instruction CISC


CISC : Complex Instruction Set Computer (Jeu d’instruction étendu)
Exemples : Intel x86, Motorola 68k, …
 Possibilité d’exécuter des opérations très variées : lecture ou sauvegarde de mémoire via
plusieurs modes d’adressage, arithmétiques, opérations multi-cycles.
 Un nombre important d’instruction disponible au programmeurs
 Problèmes
1) Environ 20 % des instructions CISC est réellement utilisé !
2) Consommation importante en mémoire (très couteux) !
3) Architecture des µP CISC est très compliquée à réaliser (Pb. de technologie).
4) Le gain en temps d’exécution n’est pas garanti !
 un code plus court ne donne pas toujours un temps d’exécution plus court.

ISSAT Kasserine 46
Leçon 3

Jeu d’instruction RISC


RISC : Restricted Instruction Set Computer (Jeu d’instruction réduit)
Exemples : ARM, AMD, Motorola 88k, …
 Minimum d’instructions permettant de réaliser l’essentiel des opérations, des instructions de
même taille, accès à la mémoire explicite soit pour la lecture ou pour l’écriture, temps
d’exécution d’une instruction prévisible ( 1 ou 2 cycles horloge).
 Une bonne maîtrise du temps d’exécution et de l’espace mémoire
utilisé par le programme.
 Problèmes
1) Les programmes réalisés avec des instructions RISC sont relativement longs et prend plus
de temps à corriger (débugger).
 Un jeu d’instruction RISC n’est pas la solution aux problèmes liés au jeu
d’instruction CISC mais une autre alternative.
ISSAT Kasserine 47
Leçon 3

RISC vs. CISC (1)


 Considérons cette équation:
1 2
Nombre total Nombre
3
Temps d’exécution Secondes d’instructions de cycles Secondes
d’un programme = Programme
= Programme
× instruction
× Cycle

 Les architectures CISC essaient de diminuer le nombre total d’instructions par


programme . 1
 Les architectures RISC essaient de diminuer le nombre de cycle par une seule
instruction . 2
 3 dépend de la fréquence de fonctionnement qui elle aussi dépend de la
technologie de fabrication du µP.
ISSAT Kasserine 48
Leçon 3

RISC vs. CISC (2)


Exemple de la leçon 2 : code exécuté sur MU0
RISC CISC
1. ADD 02E, 02F, 030 (15 cycles)
1. LDA 02E (2 cycles)
2. ADD 02F (2 cycles)
3. STO 030 (2 cycles)
4. STP (1 cycles)

Le nombre total de cycle pour l’architecture RISC peut être calculé comme suit :

(1 LDA × 2 cycles)+(1 ADD × 2 cycles)+(1 STO × 2 cycles)+(1 STP × 1 cycle) = 7 cycles

Le nombre total de cycle pour l’architecture CISC peut être calculé comme suit :
1 ADD × 15 cycles = 15 cycles

 Pour cet exemple 1 seule instruction CISC est équivalente à 4 en RISC mais le
gain en nombre de cycle du RISC vs. CISC est de plus de 50 %
ISSAT Kasserine 49
Leçon 3

RISC vs. CISC : Résumé


• Des instructions simples, et de nombre limité.
• La longueur des instructions est fixe.
• Les codes développés sont compliqués mais entrainent une
conception simple d’architecture interne.
RISC • L’accès à la mémoire principale est effectué uniquement par des
instructions LOAD/STORE qui consomment 1 ou 2 cycles.
• Des modes d’adressage limités.
• Excellentes opportunités de PIPELINE.
• Plusieurs instructions pour réaliser des opérat. compliquées.
• La longueur des instructions est variable.
• Les codes développés sont simples mais entrainent une conception
compliquée d’architecture interne.
CISC • La mémoire principale est accessible par plusieurs instructions qui
peuvent consommer plusieurs cycles.
• Plusieurs modes d’dressage.
• Pauvres opportunités de PIPELINE.

ISSAT Kasserine 50
Leçon 3

ISA : Tendances
 Ils existent des architectures de processeur qui offrent
encore plus de flexibilité du point de vue ISA :

 Des instructions spéciales pour supporter l’exécution des fonctions

JAVA. Ces instructions sont conçues pour des plateformes qui accueillent

un OS Android (Option Jazelle d’ARM)

 Variation de la largeur des instructions de 32 bits à 16 bits ou une

combinaison des deux(Jeu d’instruction Thumb / Thumb-2 d’ARM)

ISSAT Kasserine 51
Leçon 3

Modes d’adressage (1)


Instruction (16 bits)
Opcode Opérandes / Operands

Une adresse Fonction Adr. Opér. 1 MU0, µC Motorola


f bits n bits
3 adresses Fonction Adr. Opér. 1 Adr. Opér. 2 Adr. Opér. 3 ARM
f bits n bits n bits n bits

 les champs Adr. Opér. 1 ou Adr. Opér. 2 ou Adr. Opér. 3 constituent le champs «
opérande » d’une instructions.
 Il existe plusieurs façons d’interprétation du contenu de ces opérandes.

 Les modes d’adressage


ISSAT Kasserine 52
Leçon 3

Modes d’adressage (2)


Les modes d’adressage : c’est la façon avec laquelle le contenu des champs
« opérandes » est interprété par le processeur.
 Plusieurs modes/techniques d’adressage possibles
Peuvent être tous disponibles ou en partie, ça dépend de la conception du
processeur.

Pourquoi plusieurs modes d’adressage ?


Pour faciliter la programmation (possibilité d’utiliser des boucles, des
instructions de condition, construction de tableaux).
Pour supporter les langages qui permettent de réaliser des structures de
données, ou l’utilisation de système d’exploitations.
ISSAT Kasserine 53
Leçon 3

Modes d’adressage (3)


1) Adressage immédiat : la valeur désirée est encodée dans
l’instruction. Exemple : ADD 02F  ACC  ACC + 02F
2) Adressage absolu (direct) : l’instruction contient l’adresse dans la
mémoire de la valeur désirée. Exemple : ADD 02F
 ACC  ACC + mem[02F]
3) Adressage indirect : l’instruction contient l’adresse d’une case
mémoire qui contient l’adresse de la valeur désirée. Exemple : ADD
[02F]  ACC  ACC + mem[ mem[02F] ]

ISSAT Kasserine 54
Leçon 3

Modes d’adressage (4)


4) Adressage par registre : la valeur désirée est contenue dans un
registre, l’instruction contient le numéro de ce registre. Exemple :
ADD R1  ACC  ACC + R1
5) Adressage indirect par registre : l’adresse de la valeur désirée est
contenu dans un registre. Exemple : ADD [R1] 
ACC  ACC + mem[R1]
6) Adressage par base avec déplacement : l’instruction contient un
registre (la base) auquel est ajouté un déplacement (offset) pour
former l’adresse de la case mémoire souhaitée.
Exemple : ADD R1,5  ACC  ACC + mem[R1+5]
ISSAT Kasserine 55
Leçon 3

Modes d’adressage (5)


7) Adressage par base avec index : l’instruction contient un registre (la
base) auquel est ajouté un autre registre (index) pour former l’adresse
de la case mémoire souhaitée. Exemple : ADD R1, R2  ACC 
ACC + mem[R1+R2]
8) Adressage par base avec déplacement d’index : similaire que le
précédant sauf pour l’index qui est multiplié par une cte. Exemple:
ADD R1, R2  ACC  ACC + mem[R1+R2. 2<<3]

ISSAT Kasserine 56
Leçon 3

Modes d’adressage (6)


9) Adressage de pile : un registre spécial appelé pointeur de pile (stack
pointer) pointe sur une portion de la mémoire appelé pile où les
données sont sauvegardées (push) et lues (pop) d’une façon LIFO
(last in first out).

ISSAT Kasserine 57
Leçon 3

Modes d’adressage : Résumé


1 Adressage immédiat Immediate addressing
2 Adressage absolu (direct) Absolute addressing
3 Adressage indirect Indirect addressing
4 Adressage par registre Register addressing
5 Adressage indirect par registre Register indirect addressing
Adressage par base avec
6 Base plus offset addressing
déplacement
7 Adressage par base avec index Base plus index addressing
Adressage par base avec
8 Base plus scaled index addressing
déplacement d’index
9 Adressage de pile Stack addressing

ISSAT Kasserine 58
Leçon 3

Technique de PIPELINE (1)


Soit le problème suivant :
Soient 3 étudiants qui désirent laver, sécher et plier des vêtements sales. Les sacs de
vêtements sales sont appelés respectivement E1, E2 et E3. L’opération de lavage prend
30 mn, de séchage 20 mn et de pliage 10 mn.
1) Combien de temps prennent les lavages, séchages et pliages des 3 sacs ?

E1 L S P Temps total = 3 × 60 mn
E2 L S P = 3H

E3 L S P  Exécution séquentielle
des tâches L, S et P.
Temps
60 mn 60 mn 60 mn
ISSAT Kasserine 59
Leçon 3

Technique de PIPELINE (2)


Et si on opte pour une exécution en PIPELINE  la machine à laver
ou à sécher est utilisée dès qu’elle est disponible !

E1 L S P Temps total = 2 × 60 mn
= 2H
E2 L S P
 Gain de 33 %
E3 L S P

60 mn 60 mn 60 mn Temps

ISSAT Kasserine 60
Leçon 3

Technique de PIPELINE (3)


Quels sont le débit et la latence pour les deux cas ?
Latence : le temps nécessaire pour la réalisation d’un cycle de lavage complet Lavage
+ Séchage + Pliage.
Débit : le nombre de sac de vêtements propres (résultats) produits par unité de temps.

1er cas 2ème cas


E1 L S P L S P

E2 L S P L S P

E3 L S P L S P

Latence = 60 mn Latence = 60 mn
Débit = 1 sac/60 mn Débit = 1 sac/30 mn
 Gain en débit
ISSAT Kasserine 61
Leçon 3

Technique de PIPELINE (4)


Le PIPELINE n’améliore pas la latence d’un seul cycle mais améliore
le débit de tout le système.
Le taux de PIPELINE est limité par la plus longue tâche (le lavage de
30 mn).
Plus un cycles est divisé en petites tâches plus le potentiel de
PIPELINE est important.
Plus la différence en temps d’exécution entre les différentes tâches
d’un seul cycle est importante plus l’amélioration du débit du système
est difficile à réaliser.

ISSAT Kasserine 62
Leçon 3

Technique de PIPELINE (5)


Dans le cas d’un processeur, comment peut-on réaliser un PIPELINE ?
Sur quoi ? Est-ce qu’il y a des risques ?

Les étapes d’exécution d’une instructions :

1) Lire l’instruction = Instruction Fetch (IF)


2) Décoder l’instruction = Instruction Decode (ID)
3) Lire les données = Data Fetch (DF)
4) Exécuter = Execute (E)
5) Sauvegarde du résultat = Save (S)

ISSAT Kasserine 63
Leçon 3

Technique de PIPELINE (6)


Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Ins. 1 IF ID DF E S
R
Ins. 2 IF ID DF E S
R
Ins. 3 IF ID DF E S
R
Ins. 4 IF ID DF E SR
A partir du 5ème cycle , le Débit = 1 résultat / 5 cycles
Ce PIPELINE est possible si chaque étape
Cycles 1 2 3 4 5 6 7 8 (IF, ID, etc.) consomme 1 cycle.
Ins. 1 IF ID DF E S R Mais est ce que c’est toujours le cas ?
Ins. 2 IF ID DF E S
R Si par exemple l’ étape exécution (E) de
Ins. 3 Inst. 1 consomme 2 ou 3 cycles ? Quel est
IF ID DF E S
R
l’impact sur l’exécution du reste des
Ins. 4 IF ID DF E S R
instructions ?
A partir du 5ème cycle , le Débit = 1 résultat / cycle

ISSAT Kasserine 64
Leçon 3

Technique de PIPELINE : Problèmes


Au cours de l’instruction 1, l’exécution a occupé les ressources matérielles du
processeur pendant 2 cycles  l’instruction 2 ne peut pas être exécutée.

Solution ?
 Attendre jusqu’à ce que les ressources d’exécution sont libérées.

Comment ?
 En insérant un NOP (No Operation)

Cycles 1 2 3 4 5 6 7 8 9 10 11 ….

Ins. 1 IF ID DF E S

Ins. 2 IF ID DF NOP E S

Ins. 3 IF ID DF NOP E S

Ins. 4 IF ID DF NOP E S

ISSAT Kasserine 65
Leçon 3

Technique de PIPELINE : Problèmes


 Plusieurs types de problèmes liés à la technique de PIPELINE :
1) Problèmes de contrôle : les décisions à prendre selon les résultats
(exemple : insérer un NOP ou non).
2) Problèmes de données : dépendance entre les données (exemple : si
les données utilisées par l’instruction 2 sont le résultat de l’exécution
de l’instruction 1 ! ).
3) Problèmes structurels : conception matérielle (hardware) du
processeur  Comment réaliser un circuit qui peut faire ça ?

ISSAT Kasserine 66
Leçon 3

Mémoire : Quelques Règles !


Plus la mémoire est rapide (vitesse d’accès) et disponible (taille)
plus les performances du produit (ordinateur, tablette, smartphone) sont
meilleures.
 Une mémoire rapide est plus chère qu’une mémoire lente.

Conclusion :
Pour améliorer les performances d’un produit  une des possibilités
c’est de dépenser plus en mémoire.

Question :
Y a-t-il un compromis possible pour avoir un rapport performances /
coût en mémoire plus optimal ?
ISSAT Kasserine 67
Leçon 3

Mémoire : Organisation
 Comment organiser la mémoire autour d’un processeur pour obtenir
de bonnes performances tout en contrôlant le coût ?

Taille Temps d’accès Coût Processeur

Réduite Rapide Couteuse Mémoire_1

Mémoire_2

Mémoire_3
Large Lente Pas chère

ISSAT Kasserine 68
Leçon 3

Mémoire : taille, temps d’accès et coût


Taille Temps d’accès Coût Exemples

Réduite Rapide Couteuse Registres

Mémoire cache L1

Mémoire cache L2, L3

Mémoire principale

Large Lente Pas chère Disque dur


ISSAT Kasserine 69
Leçon 3

Mémoire cache : Définition


 Une mémoire cache est une mémoire de taille réduite avec une vitesse
d’accès très rapide qui contient une copie des données récemment utilisées.
 Localisée sur le même circuit du processeur.

Comment une mémoire cache améliore les performances ?


 Grâce au principe de localité des programmes !
Si à un instant donné une instruction est exécutée, il est fort probable que les
données manipulées par cette instruction seront réutilisées prochainement (localité
temporelle), il est aussi fort probable que des données au voisinage seront aussi
utilisées (localité spatiale).

ISSAT Kasserine 70
Leçon 3

Mémoire cache : Fonctionnement


 Un accès à une information qui se trouve dans la mémoire cache est
dit « hit
, un accès » information qui n’est pas dans la mémoire cache
à une
est dit . « miss »
 Pour une architecture donnée, il peut y avoir plusieurs niveaux de
cache, L1, L2 et L3.
 Un accès à une information se fait du niveau supérieur vers le niveau
inférieur

Processeur  cache L1  L2  L3  Mémoire principale

ISSAT Kasserine 71
Leçon 3

Mémoire cache : Organisation


 Un processeur peut avoir une des deux organisations possibles de
cache :

Architecture
Harvard modifié

Un seul cache……… unifié Deux caches ……….séparés


pour instructions et données. pour instructions et données.

ISSAT Kasserine 72
Leçon 3

Modes spéciaux et Périphériques


 Si on énumère les différentes étapes d’un jeux de carte :
1. Mélanger les cartes.
2. Distribuer les cartes.
3. Jouer.
4. Faire le calcul pour déterminer les gagnants et les perdants.
 Mais si on sonne à la porte au cours du jeu !
 a) On arrête le jeu b) On répond à la porte « ouverture et fermeture » c)
On reprend le jeu là où il s’est arrêté.
 La réponse à la porte est plus importante que le jeu.
 Cette interruption est imprévisible.
ISSAT Kasserine 73
Leçon 3

Les interruptions (1)


 Les processeurs sont conçus de façon à ce qu’il répondent à des sources
d’interruptions très variés.

La définition d’une interruption :


Elle est imprévisible, survient d’une façon asynchrone et indépendante du
programme en cours d’exécution.
Peut venir d’une source externe au système (périphérique externe, signal
externe, capteurs, reset, chute de la tension d’alimentation, etc.) ou d’une
source interne et dans ce cas elle est appelée exception (débordement
arithmétique, tentative d’utilisation d’instruction réservée, erreur d’adressage,
défaut de cache, débordement de timer)
ISSAT Kasserine 74
Leçon 3

Les interruptions (2)


Que ce passe-t-il si une interruption survient ?
1. L'arrêt de l'exécution normale d'un programme   le
programme est interrompu.
2. La sauvegarde de l‘état du programme en cours d'exécution  la
sauvegarde du contexte d'exécution.
3. L'exécution d'une routine spécifique (un programme) liée à cet
évènement  la routine de service de l'interruption « ISR :
Interrupt Service Routine ».
4. La restauration du contexte d'exécution.
5. Le retour à l'exécution du programme interrompu.
ISSAT Kasserine 75
Leçon 3

Les interruptions (3)


 Considérons le programme composé des instructions suivantes :
Instruction_1
Instruction_2 ti on
rr up 1. Arrêt du programme principal.
te
Instruction_3 In 2. Sauvegarde du Program Counter.
Instruction_4 3. Exécution de l’ISR relative à cette

Instruction_5 interruption.
4. Restitution du Program Counter.
Instruction_6
5. Exécution du programme principal.
Instruction_7 Ret
l’in our d
t er r e
Instruction_8 upt
io n
Instruction_9

ISSAT Kasserine 76
Leçon 3

Les interruptions (4)


Que ce passe-t-il si plusieurs interruptions surviennent
simultanément ?
 Solution :
 Classer les interruptions par ordre de priorité
Dans chaque processeur qui possède plusieurs sources d’interruption,
il existe un circuit qui permet de régler les conflits d’interruption en
affectant à chacune des sources d’interruption une priorité.
Ce circuit est paramétrable par le programmeur par l’intermédiaire
d’un registre dédié.
 Gestionnaire d’interruption

ISSAT Kasserine 77
Leçon 3

Les coprocesseurs (1)


Architecture d’un processeur simple :

GPU
Graphical Processor Unit
UP Mémoire
FPU
Floating Point Unit
E/S Bus du
processeur
DSP
Digital Signal Processing

ISSAT Kasserine 78
Leçon 3

Les coprocesseurs (2)


Architecture d’un processeur simple :

GPU
Graphical Processor Unit
UP MMU Mémoire
Memory
FPU Management
Unit
Floating Point Unit

DSP
Digital Signal Processing

ISSAT Kasserine 79
Leçon 3

Les coprocesseurs (3)


Architecture d’un processeur simple :

GPU
Graphical Processor Unit
UP1
UP MMU
MMU1 Mémoire
Mémoire 1
Memory
FPU Management
Units
Floating Point Unit
UP2 MMU2 Mémoire 2
DSP
Digital Signal Processing

ISSAT Kasserine 80
Leçon 3

Exemple d’architecture avancée de processeur


ARM11(Version Simple Cœur)
 Caches séparés pour données et
instructions.
 Unité de calcul virgule flottante
(FPU).
 Unité de gestion de la mémoire
(MMU).
 Interface de bus AMBA.
 Contrôleur de Coprocesseurs.
 Interface de Débogage.

ISSAT Kasserine 81
Leçon 3

Exemple d’architecture avancée de processeur

ARM11
(Version Quad Cœurs)

ISSAT Kasserine 82
Leçon 3

Résumé (1)
 Architectures Von Neumann, Harvard et Harvard modifié
 Jeu d’instruction CISC et RISC
 Technique de pipeline
 Mémoire cache
 Modes d’adressage
 Interruptions
 Coprocesseurs : FPU, GPU, DSP
 Architectures Multiprocesseurs

ISSAT Kasserine 83
Leçon 3

Résumé (2)
Les processeurs actuels sont pour la majorité conçus avec plusieurs ou
la totalité des techniques citées.
Chaque processeur est caractérisé par une architecture et un jeu
d’instruction.
Il est possible de trouver les processeurs dans des produits
commercialisés comme ils peuvent être intégrés dans des circuits plus
grands tels que des Microcontrôleurs, des DSPs, des FPGAs, des APIs.

ISSAT Kasserine 84

Vous aimerez peut-être aussi