0% ont trouvé ce document utile (0 vote)
75 vues42 pages

Architecture externe d'un processeur

Transféré par

Persephone Raito
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPSX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
75 vues42 pages

Architecture externe d'un processeur

Transféré par

Persephone Raito
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPSX, PDF, TXT ou lisez en ligne sur Scribd

Chapitre I

Architecture externe d’un processeur

1
Introduction
L'architecture externe d’un processeur représente ce que doit connaître un
programmeur souhaitant programmer directement avec le langage du processeur

Langage du processeur :

Langage machine : représenté par un code binaire propre à chaque


processeur
Exemple: 1 0 1 10 1 1000011 0 10 01
1 01 1 0 1 1 R1  R2 + R3

Code binaire de l’addition


Registre R1
Registre R2
Registre R3

Langage assembleur : équivalent au langage machine sauf qu’il utilise des


représentations mnémoniques des opérations et des opérandes

Exemple: Add R1, R2, R3

2
Pourquoi programmer en assembleur ?
 Ecrire des programmes destinés aux systèmes d’exploitation

 Réaliser les Drivers de périphériques

 Ecrire des programmes efficaces et performants (en matière de temps d’exécution et


d’occupation de la mémoire:

Petite comparaison : un programme affichant "Hello, World !" en C occupe


15 839 octets, alors que le même programme affichant le même message en
Assembleur occupe 23 octets)
 Programmer des processeurs nouveaux n’ayant pas encore de compilateurs

 Programmer des systèmes embarqués et temps réel

…

3
Architecture externe d’un processeur
 L’architecture externe d’un processeur concerne les éléments suivants :

Les registres visibles


Ce sont les registres qu’on peut manipuler par notre programme
 Nombre de registres
 Tailles des registres
L'adressage de la mémoire
 Taille du bus de données du processeur
 Taille du bus d’adresse du processeur
 Les modes d’adressage de la mémoire
Le jeu d'instructions
 Format de l’instruction
 Nombre d’instructions
Les mécanismes de traitement des interruptions et des exceptions
 Lignes d’interruption
Priorité des interruptions
Localisation du gestionnaire d’interruption 4
Fonctionnement d’un processeur
Pour pouvoir fonctionner correctement, tout processeur doit disposer des
registres suivants :

Un compteur d’instruction ou Program Counter (PC)


Pointe vers la prochaine instruction à exécuter et s’incrémente après l’exécution
de cette dernière pour pointer vers la suivante et ainsi de suite.
Il est initialisé à une valeur fixe quand la ligne d’interruption RESET est activée
Un à plusieurs registres à usage général
Quand il y a un seul registre il est dit accumulateur
Les processeurs modernes contiennent plusieurs registres
Contiennent les données en vu de leurs effectuer des opérations (addition,
soustraction, multiplication, …etc)

Un registre d’état ou status register (SR)


Résume le résultat de l’opération effectuée (nul, négatif, overflow, …etc)
Autres registres à usage spécifique
Pointeur de pile (SP)
Registres indexes
…etc.
5
Exemple d’un processeur
Interface externe

4 bits
Bus d’adresses
RESET Lecture
Sources INT1 Ecriture Bus de commande
d’interruption INT2
Bus de données
16 bits

 Quelle est la taille de la mémoire gérée par ce processeur ?


24x16 = 256 bits =32 Octets
 Quelle est la plus petite et la plus grande valeur pouvant être stoquée dans une case
mémoire
de -32768 à + 32767 (en utilisant le complément à 2)

6
Exemple d’un processeur
Registres internes

PC 4 bits

R1

R2
16 bits
R3

O N Z
SR

16 bits
7
Exemple d’un processeur
Format d’instruction
Code Mode Registre Registre Registre Adresse ou
OP Adressage destination opérande opérande constante
1 2
4 bits 2 bits 2 bits 2 bits 2 bits 4 bits
Code Op
Code Instruction Signification
0000 LOAD Charger le registre à partir de la mémoire
0001 STORE Enregistrer le contenu du registre source en mémoire
0010 ADD RD  OP1 + OP2 (OP 1 et OP2 sont des registres)
0011 SUB RD OP1 –OP2 (OP 1 et OP2 sont des registres)
0100 JUMP PC  Adresse mémoire
0101 CMP Comparer entre OP1 et OP2 (OP1 –OP2)
0110 JSUP PC  Adresse mémoire si OP1 > OP2 (exécuter CMP
avant)
0111 JEQ PC  Adresse mémoire si OP1 = OP2 (exécuter CMP
avant)
8
Exemple d’un processeur
Mode d’Adressage

Code Mode Signification


00 Immédiat Le contenu du champ adresse est une constante
01 Direct Le contenu du champ adresse est une case
mémoire
10 Registre Les opérations sont effectuées dans les registres
11 basé L’adresse se trouve dans la zone mémoire
indiquée dans le registre OP1 + déplacement

9
Exemple d’un processeur
Exercice
En se basant sur le processeur précédent, écrire le code machine permettant de :
1. Charger la valeur 10 dans le registre 1
2. Charger la valeur 14 dans le registre 2
3. Effectuer l’addition de ces deux valeurs
4. Ranger le résultat en mémoire à l’adresse 4

1. LOAD R1, #10  0000 00 01 00 00 1010


2. LOAD R2, #14  0000 00 10 00 00 1110
3. ADD R3, R1, R2  0010 10 11 01 10 0000
4. STORE R3, 04  0001 01 11 00 00 0100

10
Organisation mémoire
L’organisation mémoire diffère d’un processeur à un autre

La différence réside dans la taille affectée aux bus d’adresse et de données

La taille du bus de données prédomine car elle est en relation avec la puissance du
processeur

Processeur 8 bits  bus de données sur 8 bits


Processeur 16 bits  bus de données sur 16 bits
Processeur 32 bits  bus de données sur 32 bits
Processeur 64 bits  bus de données sur 64 bits
…etc.

11
Mémoire adressable par octet
Les processeurs actuels permettent d’adresser des mots de tailles variables

Un processeur 32 bits peut, par exemple, charger des mots de 32 bits mais peut
aussi charger des mots de tailles plus petites.
En général, le plus petit objet que le processeur peut charger est l’octet.

Dans ce cas la mémoire est adressable par octet

Chaque octet dispose de sa propre adresse

Les mots de tailles plus grandes sont stockés comme une séquence d’octets
L’adresse d’un mot large correspond à l’adresse du premier octet de la séquence

12
Mémoire adressable par octet
Exemple d’une mémoire adressable par octets
Bus de données sur 32 bits
Bus d’adresses sur 32 bits
Octet 0 Octet 1 Octet 2 Octet 3
0x00000000
0x00000004
0x00000008
0x0000000C
0x00000010
0x00000014
…………………...

0xFFFFFFFC

13
Big Endian vs Little Endian
Quand un objet occupe plus d’un octet, il faut le stocker dans un ordre bien déterminé
dit Endianess
Il existe deux ordres possibles :
Big Endian : l’adresse du mot correspond à l’adresse de l’octet des poids forts. Les
octets de poids faibles suivent ceux de poids forts
Little Endian : l’adresse du mot correspond à l’adresse de l’octet de poids faibles.
Les octets de poids forts suivent ceux de poids faibles

Exemple X = 1247 stocké en mémoire à l’adresse 0

Big Endian Little Endian


0 1 0 7
1 2 4
1
2 4 2
2
3 7 1
3

14
Modes d’adressage de la mémoire
L’accès à la mémoire se fait par une adresse spécifiée dans un champ (une partie)
de l’instruction

Parfois, l’espace mémoire adressé par le processeur est plus grand que la capacité
d’adressage du champ de l’instruction

Il est aussi fréquent de manipuler des structures de données complexes comme
les tableaux, les matrices, les enregistrements …etc.

Pour cela, les processeurs utilisent des techniques d’adressage particulières dites
modes d’adressage

Un mode d'adressage spécifie la façon dont est calculée l'adresse mémoire


effective d'un opérande à partir de valeurs contenues dans des registres et de
constantes contenues dans l'instruction ou ailleurs dans la machine.

15
Modes d’adressage de la mémoire
Adressage immédiat

Ce mode est utilisé pour manipuler des constantes connues sans passer par la
mémoire pour les chercher
L’opérande est une valeur immédiate se trouvant directement dans l’instruction

Load R1, #10  0000 00 01 00 00 1010

10 R1

16
Modes d’adressage de la mémoire
Adressage direct

L’adresse de l’information à chercher se trouve directement dans l’instruction


Ce mode est le plus simple mais l’espace mémoire accessible dépend de la
taille du champ adresse de l’instruction

Load R1, 10  0000 01 01 00 00 1010


Mémoire
20 R1

10 20

17
Modes d’adressage de la mémoire
Adressage indirect
L’instruction contient une adresse qui contient l’adresse de l’information à
chercher
Ce mode nécessite deux accès à la mémoire et tend à être abandonné et ne plus
être utilisé sur les processeurs modernes.

Load R1, [10] Mémoire

30 R1
10 20

20 30

18
Modes d’adressage de la mémoire
Adressage par registre
L’information ne se trouve pas en mémoire mais dans un autre registre interne
du processeur
Ne nécessite pas d’accès à la mémoire

Load R1, R2  0000 10 01 10 00 0000

10 R1

10 R2

19
Modes d’adressage de la mémoire
Adressage indirect par registre
L’information à chercher se trouve en mémoire à l’adresse indiqué par un
registre interne

Load R1, [R2]


Mémoire

R2 10 10 20 20 R1

20
Modes d’adressage de la mémoire
Adressage basé

L’adresse de l’information est donnée en deux parties


Une partie dite base se trouvant dans un registre
Une partie, dite déplacement figurant dans le champs adresse de l’instruction

Load R1, [R2, 10]  0000 11 01 10 1010


Mémoire

20 R1
+ 15 20

R2 5

21
Modes d’adressage de la mémoire
Adressage relatif
Ce mode est souvent utilisé dans les instructions de branchement
L’adresse de l’information est la combinaison du contenu du compteur programme
(PC) et d’un déplacement

Mémoire
Brel 10
14 Brel 10

+ 25 Autre inst

PC 15
25

22
Cycle d’exécution d’un programme
Le fonctionnement du processeur est caractérisé par une boucle indéfinie dans
laquelle il exécute de manière cyclique des instructions se trouvant en mémoire
La boucle (ou le cycle) est composée de plusieurs phases
On distingue en général, trois phases de base

La phase de recherche (fetch)


Le processeur recherche l’instruction depuis la mémoire
La phase de décodage (Decode)
L’instruction est décodée dans un registre spécial dans le processeur dit registre
instruction
La phase d’exécution (Exécute)
L’instruction est exécutée par le processeur

23
Phases d’exécution d’un programme
Première instruction : Load R1, 10

Processeur
Phase recherche

PC 00 + 2 = 02
00 Mémoire
00 Load R1, 10
00 02 Load R2, 12
R1 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 08
Lecture
R3 10 20
12 25
14
Données

RI 0000 01 01 00 00 1010

24
Phases d’exécution d’un programme
Première instruction : Load R1, 10

Processeur
Phase Décodage

PC 00
02 Mémoire
00 Load R1, 10
02 Load R2, 12
R1 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 08
R3 10 20
12 25
Adressage direct 14
Données
Load Zone
mémoire
RI 0000 01 01 00 00 1010

Registre dest
25
Phases d’exécution d’un programme
Première instruction : Load R1, 10

Processeur
Phase Exécution

PC 00
02 Mémoire
00 Load R1, 10
10
02 Load R2, 12
R1 20 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 08
Lecture
R3 10 20
12 25
14
Données

RI 0000 01 01 00 00 1010

26
Phases d’exécution d’un programme
Deuxième instruction : Load R2, 12
Quel est le contenu des registres après l’exécution de l’instruction: Load R2, 12
Processeur

PC 00?
04 Mémoire
00 Load R1, 10
02 Load R2, 12
R1 20? 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 25? 08
R3 ? 10 20
12 25
14
Données

RI 0000 01 10 00 00 1100?

27
Phases d’exécution d’un programme
Troisième instruction : Add R3, R1, R2

Processeur
Phase recherche

PC Mémoire
04
04 + 2 = 06
04
00 Load R1, 10
04 02 Load R2, 12
R1 20 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 25 08
Lecture
R3 10 20
12 25
14
Données

RI 0010 10 11 01 10 0000

28
Phases d’exécution d’un programme
Troisième instruction : Add R3, R1, R2

Processeur
Phase Décodage

PC 00
06 Mémoire
00 Load R1, 10
02 Load R2, 12
R1 20 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 25 08
R3 10 20
12 25
Adressage Registre 14
Données
Add
R1

RI 0010 10 11 01 10 0000

R2
R3
29
Phases d’exécution d’un programme
Troisième instruction : Add R3, R1, R2

Processeur
Phase Exécution

PC 00
06 Mémoire
00 Load R1, 10
02 Load R2, 12
R1 20 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 25 08
R3 45 10 20
12 25
14
UAL Données

add
RI 0010 10 11 01 10 0000

30
Phases d’exécution d’un programme
Quatrième instruction : Store R3, 14

Processeur
Phase recherche

PC 06 + 2 = 08
06 Mémoire
00 Load R1, 10
06 02 Load R2, 12
R1 20 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 25 08
Lecture
R3 45 10 20
12 25
14
Données

RI 0001 01 11 00 00 1110

31
Phases d’exécution d’un programme
Quatrième instruction : Store R3, 14

Processeur
Phase Décodage

PC 00
08 Mémoire
00 Load R1, 10
02 Load R2, 12
R1 20 04 Add R3, R1, R2
Adresses 06 Store R3, 14
R2 25 08
R3 45 10 20
12 25
Adressage direct 14
Données
Store Zone
mémoire
RI 0001 01 11 00 00 1110

R3
32
Phases d’exécution d’un programme
Quatrième instruction : Store R3, 14

Processeur
Phase Exécution

PC 00
08 Mémoire
00 Load R1, 10
14
02 Load R2, 12
R1 20 Adresses 04 Add R3, R1, R2
06 Store R3, 14
R2 25 Ecriture 08
R3 45 45 10 20
12 25
14 45
Données

RI 0001 01 11 00 00 1110

33
Phases d’exécution d’un programme

Le processeur dispose d’une fréquence d’horloge de 1 GHz. La mémoire à un


temps de cycle de 20 ns (en lecture ou en écriture) . On suppose que chaque phase
est enclenchée par un top d’horloge. Indiquez le nombre de cycles mémoire et le
temps d’exécution de chaque instruction du programme suivant

Nombre de cycles Temps d’exécution


mémoire
LOAD R1, 10 Deux cycles 41 ns

LOAD R2, 12 Deux cycles 41 ns

ADD R3, R1, R2 Un cycle 22 ns

STORE R3, 14 Deux cycles 41 ns

On remarque que quand les opération s’effectue dans les registres l’exécution est
plus rapide
34
Le Pipeline
Pour accélérer l’exécution des instructions, un processeur peut lancer plusieurs
phases en même temps
Dans les exemples précédents, il peut par exemple:
1. Exécuter la phase recherche de la première instruction
2. Exécuter la phase décodage de la première instruction et la phase recherche
de la deuxième instruction en même temps
3. Lancer la phase recherche de la troisième instruction, décodage de la
deuxième instruction et la phase exécution de la première instruction en
même temps

Recherche Décodage Exécution


E1 Load R1, 10
E2 Load R2, 12 Load R1, 10
E3 Add R3, R1, R2 Load R2, 12 Load R1, 10

Temps

35
Harvard vs Von Neuman
Architecture de Von Neuman
Dans les architectures classiques de type (Von Neuman), le processeur dispose d’un
seul bus de données et d’un seul bus d’adresses
Les programmes et les données se trouvent dans la même mémoire
Ceci peut être une limite dans certains cas :
Il est impossible d’exécuter la phase de recherche et d’exécution en Pipeline
car il y a un conflit de bus pour certaines instructions (Load et Store)
Dans les systèmes embarqués, le programme est mis dans une mémoire
morte (ou non volatile) alors que les données sont temporaires

Architecture de Harvard
Dans les architectures de Harvard, le processeur distingue entre la mémoire contenant
les programme et la mémoire de données
Il dispose de deux bus séparés, l’un pour la mémoire programmes et l’autre pour la
mémoire de données
La taille des bus peut être différente

36
Harvard vs Von Neuman
Architecture de Von Neuman

Mémoire
Processeur Programmes et
de données

Architecture de Harvard

Mémoire Mémoire
Processeur programmes
données

37
Architectures CISC vs RISC
Architecture CISC (Complex Instruction Set Computer)
Processeur à jeu d’instruction complexe
Dispose généralement d’un grand nombre d’instructions pouvant réaliser des
opérations complexes
Les instructions ont des tailles variables et effectuent les opérations soit sur les
registres, soit sur des opérandes se trouvant en mémoire
Les phases d’exécution sont variables d’une instruction à l’autre
Fournis un grand nombre de modes d’adressages

Architecture RISC (Reduced Instruction Set Computer)


Processeur à jeu d’instruction réduit
Dispose de peu d’instructions effectuant des opérations simples
Deux instructions seulement manipulent la mémoire (Load et Store). Les autres
instructions travaillent sur les registres
Très peu de modes d’adressage.
Un grand nombre de registres
38
Architectures CISC vs RISC
Les architectures CISC permettent de développer facilement des applications en
assembleur et des compilateurs de langages évolués
Toutefois, les processeurs sont encombrés par la logique nécessaire pour réaliser des
instructions complexes
Les techniques d’optimisation comme le Pipline sont difficiles à réaliser sur des
instructions de taille variable
Les processeurs CISC sont lents, consomment beaucoup et coutent plus cher

Pour les processeur RISC, par contre, la complexité est déplacée du processeur au
programmeur
Le programmeur doit se « débrouiller » pour réaliser des opérations complexes avec
un petit jeu d’instructions simples
Toutefois, le processeur et plus performant avec un coût et une consommation réduite

39
Mode d’exécution du processeur
Les processeurs modernes permettent de séparer le code appartenant au système
d’exploitation du code appartenant au programme utilisateur
Quand le processeur exécute un programme du système d’exploitation il se trouve
dans un mode dit protégé
Quand il est dans ce mode, il peut accéder à n’importe quelle zone mémoire et
utiliser des instructions privilégiées
Par contre quand le processeur est dans le mode utilisateur, il ne peut accéder qu’à
une partie de la mémoire et exécuter uniquement les instructions non privilégiées
Le mode du processeur est activé en général par un bit (ou plusieurs bits) dit bit
mode dans le registre d’état
Mode
O N Z

0 : Utilisateur
1: Privilégié

40
Les interruptions et les exceptions
Dans son fonctionnement normal, le processeur exécute les instructions l’une
après l’autre
Le compteur ordinal (PC) s’incrémente régulièrement pour pointer vers l’instruction
prochaine sauf dans le cas d’une instruction de branchement, auquel cas, le PC reçoit
l’adresse de branchement indiquée dans l’instruction
Toutefois, il existe des situations dans lesquelles le processeur interrompt
l’exécution normale du programme et se branche vers un autre programme
Ces événements sont :
La réinitialisation (le signal RESET)
Les interruptions
Les exceptions
Les appels système

41
Interruption vs Exception

Les interruptions surviennent de façon asynchrones. Elles sont


commandées par le matériel ou par le système (interruption
système). Les interruptions n'ont aucune relation avec les
instructions en cours d'exécution (interruption externe) .

Les exceptions sont provoquées par l’exécution d’un programme


qui amènent à interrompre celui-ci , soit pour remédier à une
anomalie de fonctionnement, soit pour arrêter définitivement le
programme. Comme exemple d’exception on cite : la division par
zero, tentative d'utilisation d'instructions réservées, erreur
d'adressage.

42

Vous aimerez peut-être aussi