Exemple: le processeur MIPS

Transcription

Exemple: le processeur MIPS
Exécution des
instructions machine
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Exemple: le processeur MIPS
add
a, b, c
destination du
résultat
type d'opération
(mnémonique)
lw
a = b + c
opérandes
sources
a, addr
a = mem[addr]
adresse
(donnée, instruction suivante)
j
Page 2
addr
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
goto addr
♦ Le processeur MIPS possède 32 registres
♦ Les opérations arithmétiques et logiques se font toujours
entre registres
♦ Les seules instructions qui utilisent la mémoire comme
opérande sont lw (load) et sw (store)
♦ La façon de donner l'adresse d'un opérande est appelée le
mode d'adressage. Le processeur MIPS connaît cinq modes
d'adressage:
•
•
•
•
•
Page 3
registre
immédiat
direct ou absolu
indirect
déplacement ou relatif
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Exemples des modes d'adressage:
Page 4
• registre:
add $s0,$s1,$s2
s0=s1+s2
• immédiat:
add $s0,$s1,123
s0=s1+123
• direct ou absolu:
add $s0,$s1,(1234)
s0=s1+mem[1234]
• indirect:
add $s0,$s1,($s2)
s0=s1+mem[s2]
• déplacement ou relatif:
add $s0,$s1,123($s2)
s0=s1+mem[s2+123]
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Repertoire d'instructions
♦ Instructions arithmétiques et logiques
Page 5
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Instructions de comparaison
Page 6
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Instructions de saut conditionnel
Page 7
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Instructions de saut inconditionnel
Page 8
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Instructions d'accès à la mémoire
Page 9
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Registres
Page 10
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Exécution temporelle des instructions
♦ Toute instruction d'un processeur est exécutée en trois
phases:
• fetch: lecture de l'instruction en mémoire, à l'adresse donnée par le
PC. L'instruction est stockée dans le registre IR
• decode: identification de l'instruction
• execute: exécution des opérations nécessaires à l'instruction
♦ En général, l'exécution de chaque phase de l'instruction
demande au moins un cycle d'horloge. La phase execute peut
demander plus d'un cycle, en fonction de la complexité de
l'instruction: si une instruction de déplacement peut se faire
en un seul cycle, une instruction de division a besoin de
plusieurs dizaines de cycles
Page 11
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Les vitesses d'horloge des processeurs actuels vont de
plusieurs mégahertz (MHz) à plusieurs gigahertz (GHz) pour
les plus récents
♦ Il n'y a pas beaucoup de sens à comparer les performances
de deux processeurs en comparant seulement les vitesses
d'horloge. En effet, pour des familles différentes, la quantité
de travail effectuée en un cycle peut être très différente. Il
est plus réaliste de mesurer la performance en comparant les
temps d'exécution pour un même programme. Les
programmes utilisés pour effectuer ces mesures sont appelés
benchmarks
♦ L'ensemble de benchmarks le plus utilisé commercialement
est le SPEC (Standard Performance Evaluation Corporation)
Page 12
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ Une augmentation de performance sans augmentation de la
vitesse d'horloge est obtenue grâce au pipeline
♦ Dans un processeur sans pipeline, l'exécution d'une
instruction ne commence pas avant la fin d'exécution de
l'instruction précédente
i
t
t+1
t+2
FE
DE
EX
i+1
t+3
t+4
t+5
FE
DE
EX
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 13
♦ Dans un processeur à pipeline, à la fin de chaque phase
démarre l'exécution d'une nouvelle instruction
i
i+1
i+2
i+3
Page 14
t
t+1
t+2
t+3
FE
DE
EX
FE
DE
EX
FE
DE
EX
FE
DE
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
t+4
t+5
EX
♦ Le pipeline peut être vu comme un premier pas vers le
parallélisme. Toutefois, le vrai parallélisme est atteint seulement
avec plus d'une unité de traitement
♦ Les processeurs superscalaires peuvent chercher plusieurs
instructions à la fois, exécutées en parallèle par plusieurs unités
de traitement
♦ Dans les systèmes multiprocesseurs, plusieurs séquences
d'instructions sont exécutées en parallèle sur différents ensembles
de données: c'est les architectures MIMD (multiple-instruction
stream, multiple-data stream) appelées ainsi par opposition aux
traditionnelles SISD (single-instruction stream, single-data
stream)
♦ Un autre type de parallélisme est obtenu avec l'architecture SIMD
(single-instruction stream, multiple-data stream), où plusieurs
unités de traitement exécutent en parallèle la même séquence
d'instructions, mais chacune sur son propre ensemble de données
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 15
Processeurs actuels (28.08.06)
Alpha
21364 EV-78+
Architecture
IBM
Sun
Fujitsu
Power5+ UltraSPARC IV+ SPARC64 V
HP
PA-8900
64-bit
2x64-bit
2x64-bit
64-bit
1.3
2.3
1.8
2.16
1.1
0.7
Superscalaire
4
8
4
4
4
4
Pipeline
9
17
14
10
9
6
Désordre (instr)
80
200
0
112
56
48
Technologie
0.18-7
0.09-10
0.09-9
0.09-10
0.13-7
0.11-7
Taille (mm2)
397
245
335
294
304
110
Transistors (M)
135
276
295
400
300
7.2
Consommation (W)
155
100
90
65
103
17
Fréquence (GHz)
Cache (I/D/L2)
64K/64K/1.75M 64K/32K/1.92M 64K/64K/2M
2x64-bit
MIPS
R16000
64-bit
128K/128K/4M 1.5M/1.5M/64M 32K/32K
SPECint2000b
904
1820
1300
1501
950
560
SPECfp2000b
1279
3369
1800
2094
930
580
Page 16
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Intel
Intel
AMD
AMD
Xeon 5160 Pentium 965 Opteron 256 Opteron 285
Architecture
2x32/64-bit 2x32/64-bit
Itanium 2
9050
32/64-bit
2x32/64-bit
2x64-bit
3.03
3.73
3
2.6
1.6
Superscalaire
4
3
3
3
6
Pipeline
14
31
11
11
8
Désordre (instr)
96
126
72
72
0
Technologie
0.065-8
0.065-8
0.09-10
0.09-9
0.09-7
Taille (mm2)
143
162
115
199
596
Transistors (M)
291
376
114
233
1.72K
Consommation (W)
80
130
95
95
104
64K/64K/1M
64K/64K/1M
16K/16K/1M/12M
Fréquence (GHz)
Cache (I/D/L2/L3)
32K/32K/4M 12K/16K/2M
SPECint2000b
1556
1870
1942
1592
1474
SPECfp2000b
1694
2232
2260
1927
3017
Page 17
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Systèmes embarqués
Page 18
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 19
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 20
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Communication
♦ La communication entre le processeur et les dispositifs
d'entrée/sortie se fait normalement par le biais d'un dispositif
appelé un contrôleur
♦ Le contrôleur réalise la conversion des messages entre le
processeur et le périphérique, afin de respecter les formats
propres à chaque dispositif
périphérique
contrôleur
CPU
Page 21
bus
mémoire
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ La communication entre le processeur et le contrôleur se fait
de la même manière qu'avec la mémoire: une instruction
similaire au STORE envoie une chaîne de bits au contrôleur et
une instruction similaire au LOAD envoie une chaîne de bits
au processeur
♦ Chaque contrôleur possède un ensemble d'adresses
réservées, appelées ports
♦ Certains contrôleurs peuvent accéder directement à la
mémoire, sans passer par le processeur: ce type d'accès est
appelé DMA (Direct Memory Access)
♦ Par exemple, pour lire un secteur d'un disque, le processeur
peut envoyer une demande au contrôleur, qui se charge de la
tâche pendant que le processeur exécute d'autres opérations
Page 22
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ La communication avec un périphérique est en général à
double sens. Un processeur, par exemple, produit des
données beaucoup plus rapidement qu'une imprimante n'est
capable de les traiter: afin de ne pas perdre des données, il
est donc important pour le processeur de connaître l'état de
l'imprimante avant chaque envoi
♦ Le dialogue entre le périphérique et le processeur, via le
contrôleur, utilise un mot de status, généré par le
périphérique et stocké dans le contrôleur
Page 23
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
♦ La vitesse de transmission de l'information est mesurée en bits
par seconde (bps)
♦ Il y a deux grands types de trajectoires de communication: la
parallèle et la sérielle.
♦ Dans la communication parallèle, plusieurs bits sont transférés
en même temps, chacun sur une ligne séparée
♦ Dans la communication sérielle, on transfère un seul bit à la fois.
Cette technique est plus lente, mais demande une
implémentation plus simple (donc, moins chère)
♦ Un exemple bien connu de communication sérielle est l'utilisation
des modems (modulateur-démodulateur) pour transférer de
l'information via des lignes téléphoniques. Les chaînes de bits
sont d'abord transformées en tonalités pour être transférées par
la ligne téléphonique et, ensuite, à leur destination, ces tonalités
sont de nouveau transformées en chaînes de bits
Page 24
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne