Computing">
Chapitre 4 AO
Chapitre 4 AO
Chapitre 4 AO
ORDINATEURS
2ème Année Informatique
Chapitre 4:
Le processeur
Microprocesseur
Un microprocesseur est un circuit intégré complexe
caractérisé par une très grande intégration et doté des facultés
d'interprétation et d'exécution des instructions d'un
programme.
Il est chargé d’organiser les tâches précisées par le
programme et d’assurer leur exécution. Il doit aussi prendre
en compte les informations extérieures au système et assurer
leur traitement. C’est le cerveau du système.
1
Microprocesseur
Un processeur est défini par:
Son architecture, c'est-à-dire son
comportement vu par le programmeur, liée à:
Son jeu d'instructions(en anglais Instruction Set
Architecture, ISA);
la largeur de ses registres internes de
manipulation de données(8, 16, 32, 64, 128)bits
et leur utilisation;
les spécifications des entrées–sorties, de l'accès
à la mémoire, etc.
Microprocesseur
Un processeur est défini par:
Ses caractéristiques, variables même entre
processeurs compatibles,
la cadence de son horloge exprimée en mégahertz
(MHz) ou gigahertz (GHz);
sa finesse de gravure exprimée en nanomètres
(nm);
son nombre de cœurs de calcul.
2
Architectures CISC/RISC
Actuellement l’architecture des microprocesseurs se composent de
deux grandes familles :
L’ architecture CISC (Complex Instruction Set Computer)
Leurs instructions, de taille variable, sont variées et réalisent
souvent des transferts avec la mémoire. Ces processeurs possèdent
en général peu de registres, dont certains sont réservés pour des
usages spécifiques.
Exemples: Intel 8086 et Motorola 68000 (pré-1985).
L’architecture RISC (Reduced Instruction Set Computer)
Leurs instructions, de taille fixe, sont régulières et peu d’entre elles
lisent ou écrivent en mémoire. Ces processeurs possèdent en
général de nombreux registres, lesquels sont uniformes.
Exemples: Alpha, Sparc, Mips, PowerPC (post-1985).
Le Pentium d’Intel mélange les deux designs...
5
Architectures CISC/RISC:
3
Mode Utilisateur/Superviseur:
Afin de mettre en oeuvre les mécanismes de protection
nécessaires pour un système, le processeur possède deux
modes de fonctionnement :
• Le mode superviseur: permet une plus grande sécurité
pour le système. Quand le processeur est en mode
superviseur, l’utilisateur ne peut pas accéder à certaines
zones (ex: mémoire, registres...)
• Le mode utilisateur: Ce mode permet à l’utilisateur
d’accéder uniquement aux zones réservées aux utilisateurs.
Le processeur part en exception si l’utilisateur accède à une
zone privilégiée.
Note: quand le processeur est en mode superviseur, le
système peut accéder aux zone protégées et non protégées.
4
Les registres
Les registres sont des zones de stockage
temporaire située dans le processeur.
• La valeur de certains registres peut être lue ou
modifiée par les instructions.
• Selon les modes de fonctionnement du
processeur, il existe deux catégories de registres:
– Les registres non protégés (Accessibles en
mode utilisateur)
– Les registres protégés (Accessibles en mode
superviseur)
10
5
Les registres généraux
11
12
6
Format d’une instruction
Il y a 3 formats d’instructions différents :
• R : Register to Register – Register Type
• I : Accès mémoire, branchements – Immediate Type
• J : Instructions de sauts (non-conditionnels) : Jump Type
13
14
7
Format d’une instruction
Le format R
Le format I
Le format J
Opcode Immed
6 26
15
8
pseudo-instruction
17
pseudo-instruction
Pseudo-instruction move
Comment traduire A=B ?
• Sachant que A=$t0, B=$t1 et que le registre $0
vaut toujours 0 on peut écrire :
• add $t0, $0, $t1
• Il vaut mieux utiliser l’instruction move :
• move est une pseudo-instruction : sa traduction
en langage machine
• est celle de add $t0, $0, $t1.
18
9
Codage des instructions
Le codage des instructions est principalement défini
par les 6 bits du champ code opération de
l'instruction (INS 31:26). Cependant, trois valeurs
particulières de ce champ définissent en fait une
famille d'instructions : il faut alors analyser d'autres
bits de l'instruction pour décoder l'instruction. Ces
codes particuliers sont :
• SPECIAL (valeur "000000"),
• BCOND (valeur "000001")
• COPRO (valeur "010000")
19
20
10
Codage des instructions
OPCOD = SPECIAL
21
22
11
Codage des instructions
23
24
12
Co-processeurs de MIPS
Le microprocesseur Mips travaille avec des
coprocesseurs pour effectuer des opérations
spécifiques.
Le co-processeur 0: (processeur de contrôle
système) gère le système de mémoire virtuelle,
les exceptions ainsi que les transitions entre les
modes Superviseur et Utilisateur.
Le co-processeur FPU: (Floating Point Unit) Est
chargé d’effectuer les opérations arithmétiques à
virgules flottantes.
Il possède 32 registres nommés: $f0 – $f31
25
Co-processeurs de MIPS
26
13
ORGANISATION DE
LA MÉMOIRE EN
MIPS
R3000
27
Mémoire et programme
Quand on demande l'exécution d'un programme,
celui-ci est chargé par le système d'exploitation (à
partir du disque dur) dans une zone de la
mémoire principale RAM.
Chaque instruction est stockée dans une position
mémoire.
l'adresse (le numéro) de la case mémoire de
début est transférée au processeur (placée dans
le PC) pour qu'il commence l'exécution au bon
endroit.
28
14
Segmentation mémoire du MIPS R3000
Dans l’architecture MIPS R3000, la mémoire est
divisée en deux segments:
Le segment utilisateur, et le segment noyau (mode
superviseur).
Quand le processeur est en mode superviseur, les 2
segments sont accessibles.
Quand le processeur est en mode utilisateur, seul le
segment utilisateur est accessible.
Le processeur part en exception si une instruction
essaie d'accéder à la mémoire avec une adresse
correspondant au segment système alors que le
processeur est en mode utilisateur.
29
15
Segmentation mémoire du MIPS R3000
31
Adressage mémoire:
La mémoire est vue comme un tableau d'octets, qui contient
aussi bien les données que les instructions.
•L’unité d’adressage est l’octet.
•Les instructions sont codées sur 32bits.
•Pour enregistrer une instruction quatre(4)octets sont
nécessaires.
•La représentation d’un mot(32-bits) en mémoire est comme
suit:
32
16
Adressage mémoire:
Par exemple:
• num1: .word 42
• num2: .word 5.000.000
• 4210 est représentée en hexadécimal par:0x0000002A
• 5,000,00010 est représenté en hexadécimal par 0x004C4B40.
• La représentation de ces deux mots en mémoire est:
33
Adressage mémoire:
34
17