Unité 10: Superordinateurs et microprocesseurs Unité 10

publicité
Unité 10: Superordinateurs et microprocesseurs
Objectifs
À la fin de cette unité, vous aurez un aperçu des nouvelles technologies utilisées pour améliorer la performance des ordinateurs, du
microprocesseur au superordinateur. V o u s s a u r e z c e qu'est un
processeur RISC et comment le pipeline et la mémoire cache sont
utilisés pour en augmenter la performance.
Pour y parvenir, vous devrez maîtriser les objectifs suivants :
- décrire les principes de l’architecture RISC ;
- décrire le fonctionnement d’un pipeline ;
- décrire les modèles de machine parallèle SIMD et MIMD.
©Pierre Marchand, 2001
311
Unité 10: Superordinateurs et microprocesseurs
9.1 Introduction
La performance des ordinateurs modernes couvre la gamme de celle
des superordinateurs tels que le Cray à celle des micro-ordinateurs
personnels à base de microprocesseurs.
Le plus puissant des Cray actuels,
le Cray T3E-1200, possède de 6 à
2048 proces-seurs, jusqu’à 2 G o
de mémoire centrale par processeur (RAM statique!), et est capable d’atteindre 2458 milliards
d’opérations de virgule flottante
(Gigaflops) à la seconde.
La bande passante mémoire est de
l’ordre de 700 Go / s.
Les processeurs sont des Alpha
21164A de DEC.
©Pierre Marchand, 2001
312
1
Unité 10: Superordinateurs et microprocesseurs
9.1 Introduction
Ces performances sont nécessaires dans des disciplines ayant des
problèmes nécessitant d’énormes quantités d’opérations arithmétiques,
par exemple :
la météorologie,
la dynamique des fluides,
l’aérodynamique,
l’analyse des structures,
la micro-électronique,
la physique des particules,
la chimie et la biologie moléculaire,
les mathématiques appliquées,
la simulation numérique de systèmes,
©Pierre Marchand, 2001
313
Unité 10: Superordinateurs et microprocesseurs
9.1 Introduction
Le traitement d’images (en particulier, les images 3D),
la reconnaissance des formes, etc.
On résout ces problèmes d’abord en augmentant la vitesse du processeur, puis en mettant plusieurs processeurs en parallèle.
©Pierre Marchand, 2001
314
2
Unité 10: Superordinateurs et microprocesseurs
9.1 Introduction
9.1.1 Accroissement de la puissance des ordinateurs
Une des limites à la vitesse des processeurs est le temps de
propagation des signaux.
Distance parcourue
Vitesse
en 1 ns
en km / s
Lumière dans le vide
30 cm
300 000
Signal électrique dans un
1 µm à 1 cm
1 à 100 000
Semiconducteur
On a donc intérêt à réduire les dimensions physiques des processeurs.
©Pierre Marchand, 2001
315
Unité 10: Superordinateurs et microprocesseurs
9.1 Introduction
Une façon de contourner ce problème est d’introduire du parallélisme :
pipelines, unités d’exécution multiples, processeurs auxiliaires spécialisés : accélérateurs graphiques, transformée de Fourier rapide, etc.
Dans le cas de problèmes numériques, les machines vectorielles
s’avèrent souvent une bonne solution. Ces machines effectuent
simultanément la même instruction sur des données différentes au
moyen d’UAL multiples.
©Pierre Marchand, 2001
316
3
Unité 10: Superordinateurs et microprocesseurs
9.1.2 Technologie et performance
Loi d’Amdahl
On peut définir le «speed-up» comme le rapport entre les temps
d’exécution avant et après l’amélioration apportée au matériel.
Comme certains dispositifs ne sont pas nécessairement utilisés à
chaque instruction du programme, le gain obtenu par une
performance accrue, sur une partie de programme, diminue au fur
et à mesure qu’on ajoute des améliorations.
Par exemple, un additionneur dix fois plus rapide ne produira pas
un speed-up de 10 et une machine avec 1000 processeurs
n’exécutera pas chaque travail 1000 fois plus vite.
©Pierre Marchand, 2001
317
Unité 10: Superordinateurs et microprocesseurs
9.1.2 Technologie et performance
Loi d’Amdahl
Le temps d’exécution après une amélioration d’un aspect d’une
machine est donné par :
Temps d'exécution après amélioration
Temps d'exécution affecté par l' amélioration
=
+ Temps d'exécution non affecté
Facteur d'amélioration
Exemple : Supposons que le temps d’exécution d’un certain
programme soit 100 sec et que les multiplications représentent 80
sec de ce temps. Quel sera le temps d’exécution après avoir
apporté une amélioration de 5 dans la vitesse de multiplication ?
Temps d'exécution après amélioration =
80
+ 20=36
5
Donc une amélioration globale de 2,77 seulement.
©Pierre Marchand, 2001
318
4
Unité 10: Superordinateurs et microprocesseurs
9.1.2 Technologie et performance
Loi d’Amdahl
On ne peut donc pas s’attendre à ce qu’une amélioration d’un
aspect d’une machine apporte une amélioration proportionnelle au
facteur d’amélioration.
Unités de traitement
Les technologies ULSI (Ultra Large Scale Integration) et WSI
(Wafer Scale Integration),
les fréquences d’horloge ≥ 1 GHz,
la technologie RISC,
permettent aujourd’hui d’atteindre un cycle machine inférieur à 1
ns, donc plus de 1000 MIPS.
©Pierre Marchand, 2001
319
Unité 10: Superordinateurs et microprocesseurs
Mémoires
La capacité des DRAM augmente d’un facteur 4 tous les 3 ans.
La capacité des disques durs double tous les trois ans. Avec les
nouvelles têtes magnéto-résistives qui survolent la surface du
disque à 0,01 microns, on s’attend à c e q u e l’augmentation
annuelle de la densité passe de 30 à 60%.
Communications
Communications par câble, par satellite, etc. Transmission par
fibre optique. Communications par infra-rouge.
Parallélisme à tous les niveaux.
Parallélisme des actions et des opérations à tous les niveaux de
traitement, de stockage et de transmission des opérations.
©Pierre Marchand, 2001
320
5
Unité 10: Superordinateurs et microprocesseurs
9.1.3 Évaluation de la performance
L’évaluation de la performance de traitement d’un ordinateur n’est
pas simple.
Pour le processeur lui-même, on utilise comme unité de mesure
les MIPS (Millions of Intructions Per Second) ou les MFLOPS
(Millions of FLoating-point Operations Per Second).
Toutefois, ces unités de performance sont des indicateurs peu
fiables car leur valeur varie selon l’architecture du processeur
(RISC ou CISC) et son jeu d’instructions.
De la même façon, les MFLOPS peuvent induire en erreur. Par
exemple, la division prend plus de temps que l’addition mais les
deux sont considérées de la même façon dans le calcul de la
performance.
©Pierre Marchand, 2001
321
Unité 10: Superordinateurs et microprocesseurs
9.1.3 Évaluation de la performance
L’évaluation de la performance fait intervenir plusieurs facteurs : la
vitesse du traitement proprement dit, la réponse des différents
étages de la mémoire (caches), et la vitesse des entrées / sorties.
Des programmes de test, appelés benchmarks, permettent
d’évaluer les performances des ordinateurs, mais peu d’entre eux
sont réellement utilisés de façon standard étant donné la difficulté
de couvrir avec quelques tests une vaste gamme d’architectures,
de machines et de problèmes à traiter.
Un certain nombre de constructeurs se sont groupés pour former
un groupe appelé SPEC (System Performance Evaluation
Cooperative) qui a pour but de définir des mesures standards
communes. SPEC a défini une dizaine de programmes de test. On
les exécute sur une machine à évaluer, puis on compare le temps
d’exécution avec un temps de référence.
©Pierre Marchand, 2001
322
6
Unité 10: Superordinateurs et microprocesseurs
9.1.3 Évaluation de la performance
On calcule un SPECratio pour chaque programme et on fait la
moyenne de tous les programmes du test pour obtenir la valeur
finale en SPECmarks. Il y a deux classements. Les SPECint, pour
mesurer la performance lors de calculs sur des entiers, et les
SPECfp pour mesurer la performance en virgule flottante. La
dernière mise à jour de ces tests remonte à 1995, de sorte qu’on
parle présentement de SPECint95 et de SPECfp95.
Il existe beaucoup d’autres benchmarks, par exemple, les
Dhrystones, les Whetstones, les tests Linpack et les Livermore
Loops.
On évalue avec ces tests que la croissance de la performance des
microprocesseurs est de 40 % par an.
©Pierre Marchand, 2001
323
Unité 10: Superordinateurs et microprocesseurs
9.1.3 Évaluation de la performance
Par exemple, un Pentium III à 733 MHz obtient 35,7 SPECint95 et
28,1 SPECfp95, tandis qu’un PowerPC 7400 (G4) à 450 MHz
obtient 21,4 SPECint95 et 20,4 SPECfp95. Si on normalise à la
fréquence de l’horloge, on peut comparer les deux processeurs et
observer que le Pentium III est légèrement plus rapide pour les
entiers, mais moins rapide pour la virgule flottante.
©Pierre Marchand, 2001
324
7
Unité 10: Superordinateurs et microprocesseurs
9.1.3 Évaluation de la performance
La technologie actuelle fait des gains de 30 à 40 % par année,
mais on approche de plus en plus des limites physiques, et les
investissements nécessaires pour progresser deviennent de plus
en plus prohibi-tifs.
Progression estimée de la largeur du trait et de la capacité de
mémoire correspondante :
Année
Largeur trait en µm
Capacité puce
DRAM en Mbits
©Pierre Marchand, 2001
1996
0,35
64
1999
0,25
256
2002
0,18
1024
2005
0,13
4096
2008
0,1
16392
325
Unité 10: Superordinateurs et microprocesseurs
9.1.3 Évaluation de la performance
On se rend donc compte qu’on a exploité les progrès « faciles» et
que les prochains seront plus ardus.
C’est sans doute du côté de l’architecture qu’on pourra gagner des
facteurs 100 ou 1000 sur les performances actuelles.
On peut construire aujourd’hui des machines parallèles performantes et fiables. Malheureusement, le logiciel avance beaucoup
moins rapidement que le matériel et on sait mal exploiter ce
parallélisme.
On remarque toutefois qu’on a de plus tendance à construire des
superordinateurs à partir d’un grand nombre de microprocesseurs
standards.
©Pierre Marchand, 2001
326
8
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
Le premier superordinateur fut le Cray-1, monoprocesseur de 10
MIPS et 160 MFLOP) réalisé en 1976 par Seymour Cray (un
Pentium III à 500 MHz fait environ 500 Mflops).
Dans les années 80, on retrouve le Cray-XMP et le Cray-2 avec de
1 à 4 processeurs de 450 Mflops chacun. Par la suite, le CrayYMP et le Cray-3 font leur apparition, ainsi que la série SX de
NEC, et d’autres machines par Hitachi, Fujitsu, IBM et bien
d’autres. Toutes possédent de nombreux processeurs.
Le projet ASCI (Advanced Super Computing Initiative) d’Intel a
amené en 1996 la construction d’une machine parallèle contenant
plus de 7000 Pentium Pro interconnectés. Elle a atteint 1 Tflops
(1012 opérations de virgule flottante par sec).
©Pierre Marchand, 2001
327
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
Un autre exemple est le Cray-T3D, qui
avait entre 32 et 2 048 processeurs
Alpha 21064 de DEC, qui étaient des
microprocesseurs RISC de 64 bits avec
une fréquence d’horloge de 200 MHz.
La mémoire vive totale était de 0,5 à
128 Go et la performance de 4,8 à 307
Gflops.
©Pierre Marchand, 2001
328
9
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.1 Architecture des superordinateurs
Les superordinateurs SIMD (Single Instruction stream Multiple Data
streams) opérent s u r d e s v e c t e u r sd e données. Ces machines
possèdent un mélange d’instructions SISD (Single Instruction stream
Single Data stream) e t d’instructions SIMD. Les instructions SISD,
exécutées par un processeur scalaire, effectuent les opérations
séquentielles telles que les branchements et les calculs d’adresses.
Les instructions SIMD sont envoyées à toutes les unités d’exécution
possédant chacune de la mémoire et son propre jeu de registres.
Le SIMD fonctionne à son meilleur quand il a affaire à des tableaux
dans des boucles for. Il doit donc y avoir parallélisme au niveau des
données.
©Pierre Marchand, 2001
329
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.1 Architecture des superordinateurs
Une architecture voisine du SIMD est la machine vectorielle. Elle a des
instructions de haut niveau qui s’appliquent à des tableaux linéaires de
nombres ou vecteurs. Les machines SIMD ont aussi de telles
instructions. La différence est que le processeur vectoriel utilise des
unités fonctionnelles pipelinées qui opèrent sur quelques éléments d’un
vecteur, tandis que le SIMD agit sur tous les éléments à la fois.
Le Cray-J90 et le Cray-T90 sont des machines vectorielles, tandis que
le Cray-T3D est une machine SIMD.
©Pierre Marchand, 2001
330
10
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.1 Architecture des superordinateurs
Les avantages du traitement vectoriel sur le modèle traditionnel SISD
sont les suivants :
1. Chaque résultat est indépendant des résultats précédents, ce qui permet
de longs pipelines et des fréquences d’horloge élevées.
2. Une instruction vectorielle effectue beaucoup de travail, ce qui implique
moins d’instructions en général et moins de branchements, donc moins de
branchements mal prédits.
3. Les instructions vectorielles accèdent à l a m émoire par blocs, ce qui
permet d’étaler la latence de la mémoire sur plusieurs éléments.
4. Les instructions vectorielles accèdent à l a m émoire selon des patrons
connus, ce qui permet à des blocs de mémoire multiples de fournir des
opérandes.
©Pierre Marchand, 2001
331
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.1 Architecture des superordinateurs
Machines MIMD (Multiple Instruction Multiple Data streams).
C’est l’architecture parallèle la plus générale, dans laquelle les processeurs sont affectés à des tâches au fur et à mesure des besoins. C’est
aussi celle qui présente le plus de problèmes théoriques au plan du
logiciel.
Un exemple est le Cosmic cube, à base d’hypercubes (16 processeurs
interreliés), construit à Caltech en 1985.
Un autre est la Thinking Machine CM-2 de 1987, qui pouvait avoir
jusqu’à 65 536 processeurs de 1 bit avec une horloge de 7 MHz, et
2048 processeurs de virgule flottante.
Aujourd’hui, on ne trouve l’architecture MIMD que sous forme de
grappes d’ordinateurs, comme la IBM RS/6000 SP2 avec 256
processeurs.
©Pierre Marchand, 2001
332
11
Unité 10: Superordinateurs et microprocesseurs
9.4 Parallélisme
Machines scalaires
Machines parallèles
SISD
SIMD
MIMD
Mémoire partagée
(Multiprocesseur)
Mémoire distribuée
(Multicomputer)
333
©Pierre Marchand, 2001
Unité 10: Superordinateurs et microprocesseurs
9.4 Parallélisme
CU
IS
PU
DS
SISD
DS
LM1
DS
CU
Légende :
CU = Control Unit
IS = Instruction Stream
DS = Data Stream
PU = Processing Unit
MU = Memory Unit
PE = Processing Element
LM = Local Memory
©Pierre Marchand, 2001
PE1
MU
IS
PE2
LM2
•
•
•
DS
PEn
LMn
SIMD
334
12
Unité 10: Superordinateurs et microprocesseurs
9.4 Parallélisme
CUn
IS
IS
PE1
DS
DS
PE2
•
•
•
DS
PEn
CU1
Mémoire
partagée
CU2
IS
CU2
CUn
MIMD à mémoire
partagée
(Multiprocessor)
©Pierre Marchand, 2001
IS
IS
IS
PE1
DS
LM1
DS
PE2
LM2
•
•
•
DS
PEn
LMn
Réseau
d’interconnexion
CU1
MIMD à mémoire
distribuée
(Multicomputer)
335
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Pipelines
Le pipelining consiste à segmenter une opération complexe en
une séquence d ’actions plus simples. Chaque action simple est
réalisée par un dispositif particulier. Tous les dispositifs peuvent
fonctionner simultanément.
On peut segmenter l’exécution d’une instruction comme suit :
Chargement de l’instruction (instruction fetch IF)
Décodage de l’instruction (D)
Chargement des opérandes (operand fetch OF)
Exécution (E)
Écriture du résultat (W)
©Pierre Marchand, 2001
336
13
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Pipelines
Sans pipeline
Instruction 1
Instruction 2
IF1 D1 OF1 E1 W1 IF2 D2 OF2 E2
W2
Avec pipeline
IF1
D1 OF1 E1 W1
IF2 D2 OF2 E2 W2
IF3 D3 OF3 E3 W3
IF4 D4 OF4 E4 W4
IF5 D5 OF5 E5
W5
Instruction 1
Instruction 2
Instruction 3
Instruction 4
Instruction 5
temps
©Pierre Marchand, 2001
337
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Pipelines
Problème des branchements
Supposons que l’instruction 1 soit un branchement conditionnel vers
l’instruction n.
Temps perdu
IF1 D1 OF1 E1 W1
IF2 D2 OF2 E2
IF3 D3 OF3
IF4 D4
IF5
IFn Dn OFn En Wn
IFn+1 Dn+1 OFn+1 En+1 Wn+1
temps
©Pierre Marchand, 2001
338
14
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Pipelines
Avec un pipeline à 5 étages, on a donc accéléré le fonctionnement par
un facteur 5!
©Pierre Marchand, 2001
339
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Processeurs RISC
L’idée de l’architecture RISC (Reduced Instruction Set Computer)
e s t de n’avoir qu’un petit nombre d’instructions simples, qui
peuvent être exécutées très rapidement (1 cycle machine).
Cette approche contraste avec les machines CISC (Complex
Instruction Set Computer) où le jeu d’instructions est riche et les
instructions complexes afin de simplifier la tâche du compilateur.
Le concept RISC était présent dans les premières machines, et
Cray l’adopta pour la conception des CDC 6000 et 7000. Il a été
mis de côté p a r l ’invasion des machines CISC, mais a repris
l’avantage au début des années 80, avec l’IBM 801, le RISC-1 de
Berkeley et les machines MIPS de Stanford.
©Pierre Marchand, 2001
340
15
Unité 10: Superordinateurs et microprocesseurs
9.6 RISC, CISC et architectures superscalaires
9.6.1 RISC
Ce concept est revenu à la mode après qu’on ait eu constaté que
dans 80 % des cas, un processeur n’utilise que 20 % de son jeu
d’instructions.
Principales caractéristiques :
• Exécution des instructions en un cycle machine
• Format unique des instructions (généralement 32 bits)
• Utilisation intensive des registres (minimisation des accès
mémoire)
• Peu de modes d’adressage
• Architecture load / store
• Séquenceur câblé
• Pipeline et architecture superscalaire
©Pierre Marchand, 2001
341
Unité 10: Superordinateurs et microprocesseurs
9.6 RISC, CISC et architectures superscalaires
9.6.4 Exemples de microprocesseurs RISC
RISC-1, Berkeley, 1980 : 31 instructions, 138 registres et un seul
mode d’adressage (basé).
RISC-II, 1984, 41 000 transistors.
Principaux fabricants :
MIPS, achetée par SGI
SUN
DEC
IBM
IBM-Motorola-Apple
Hewlett-Packard
Intel
©Pierre Marchand, 2001
342
16
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Processeurs superscalaires
Dans un processeur ayant plusieurs unités d’exécution, on peut
avoir plusieurs pipelines fonctionnant en parallèle. On donne le
nom superscalaire à un processeur capables d’émettre ainsi plus
d’une instruction par cycle machine (2 à 5).
Exemples : le PowerPC d’IBM/Motorola/Apple, le R10000 de SGI,
l’UltraSparc de SUN, le PA 8000 de HP, le Pentium III d’Intel, le
Alpha 21364 de DEC, le RS 6000 d’IBM, et bientôt l’Itanium d’Intel,
etc.
Tous sont des processeurs RISC à l ’exception du Pentium (du
moins vu de l’extérieur).
©Pierre Marchand, 2001
343
Unité 10: Superordinateurs et microprocesseurs
9.2 Superordinateurs
9.2.2 Évolution de l’architecture du CPU
Approche VLIW
L’approche VLIW (Very Long Instruction Word) consiste à placer
dans un mot de taille assez grande (> 100 bits) plusieurs
instructions prêtes à être exécutées en parallèle par des unités
fonctionnelles multiples indépendantes. Un exemple de processeur de ce type est le i860 d’Intel (mots de 128 bits)
Le parallélisme est ici géré par le compilateur et non par le
processeur.
On trouvera une extrapolation de ce concept dans le Itanium
d’Intel, qui utilise la technologie EPIC (Explicitly Parallel Instruction
Computer). Des mots de 128 bits contiennent 3 instructions de 40
bits + des prédicats indiquant lesquelles peuvent être exécutées
en parallèle.
©Pierre Marchand, 2001
344
17
Unité 10: Superordinateurs et microprocesseurs
9.5 Microprocesseurs
9.5.1 Microprocesseur et micro-ordinateur
Microprocesseur = circuit intégré réalisant une unité de traitement
complète
Micro-ordinateur = microprocesseur + mémoire + entrées / sorties
+ périphériques
9.5.2 Évolution des microprocesseurs
1971 Intel 4004, 4 bits
1972 Intel 4008, 8 bits
1975 Intel 8008 Motorola M6800, 8 bit
1978 Intel 8088 et 8086, 8 / 16 bits
1979 Motorola MC68000, 16 bits
1982 Motorola MC68010, 32 bits
©Pierre Marchand, 2001
345
Unité 10: Superordinateurs et microprocesseurs
9.5 Microprocesseurs
9.5.2 Évolution des microprocesseurs
1984 Motorola MC68020, 32 bits
1985 Intel 80386
1987 Motorola MC68030, 32 bits + mémoire virtuelle
1989 Intel 80486
1990 Motorola MC68040, 32 bits + coprocesseur
1993 Intel Pentium
1995 Intel Pentium Pro, 32 bits + cache L2
1996 Intel Pentium MMX
1997 Intel Pentium II, 32 bits + cache L2
1999 Intel Pentium III, ajout du SIMD
©Pierre Marchand, 2001
346
18
Unité 10: Superordinateurs et microprocesseurs
9.6 RISC, CISC et architectures superscalaires
9.6.5 Importance du logiciel
Optimisation du code par les compilateurs :
• Allocation optimale des registres pour minimiser les accès à la
mémoire
• Élimination des redondances
• Optimisation des boucles
• Remplacement d’opérations lentes par des opérations rapides
• Optimisation des pipelines
©Pierre Marchand, 2001
347
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
9.8.4 Exemple d’architecture RISC superscalaire : le PowerPC
7400 (G4) d’IBM-Motorola-Apple
Horloge :
Instructions par horloge :
Cache L1 :
Cache L2 :
Transistors :
SPECint95 :
SPECfp95 :
MIPS
Unités d’exécution :
©Pierre Marchand, 2001
400 MHz, 450 MHz, 500 MHz
3 (2+branch)
32 Ko inst
32 Ko data
512 Ko, 1 Mo, ou 2 Mo
6,5 million
21,4 @ 450 MHz
20,4 @ 450 MHz
825 MIPS @ 450 MHz
Integer (2)
Virgule flottante
Vecteur
Branchement
Load / Store
348
19
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
9.8.4 Exemple d’architecture RISC superscalaire : le PowerPC
7400 (G4) d’IBM-Motorola-Apple
Registres :
©Pierre Marchand, 2001
32 registres d’entiers de 32 bits
32 registres de virgule flottante de 64 bits
32 registres de vecteurs de 128 bits.
349
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
Unité de
complétion
PowerPC 7400
Unité de
branchement
Unité de
dispatch
Unité
d’entiers
Registres
d’entiers
Unité
de VF
Registres
de VF
Unité
vectorielle
Registres
de vecteurs
Unité load / store
D MMU
Cache de données
I MMU
Cache d’instructions
Unité d’interface de bus
Adresses 32 bits
Données 64 bits
Bus 60xMPS
©Pierre Marchand, 2001
Tags L2
Port de cache
L2 de 64 bits
FSRAM
350
20
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
9.8.5 Exemple de compromis RISC-CISC-superscalaire :
le Pentium III
Horloge :
450 à 733 MHz
Instructions par horloge : 3
Cache L1 :
16 Ko inst
16 Ko data
Cache L2 :
256K avec ECC ou 512 Ko
SPECint95 :
35,7 @ 733 MHz
SPECfp95 :
28,1 @ 733 MHz
Unités d’exécution :
Integer (2)
Virgule flottante
MMX
Registres :
8 registres d’entiers de 32 bits
8 registres de SIMD/MMX/virgule
flottante de 128/80/64 bits
351
©Pierre Marchand, 2001
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
9.8.5 Exemple de compromis RISC-CISC-superscalaire : le
Pentium III
Bus système
Cache L2
Bus de cache
Unité d'interface de bus
Cache d'instructions L1
©Pierre Marchand, 2001
Cache de données L1
Fetch
Load
Unité de
recherche et
décodage des
instructions
Unité de
dispatch
et exécution
352
Store
Unité de sortie
des instructions
complétées
Registres de
l'architecture
Intel
Pool d'instructions
21
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
9.8.6 Le Itanium d’Intel.
Horloge :
?
Transistors :
15 M
Unités d’exécution : 4 unités d’entier + 4 unités MMX
2 unités de virgule flottante
2 unités Load / Store
Registres :
128 registres d’entiers (64 bits)
128 registres de virgule flottante (82 bits)
128 registres d’application (64 bits)
64 registres de prédicats
Trois niveaux de cache, L1, L2 et L3
Pipeline de 10 stages
ALAT (Advanced Load Address Table) de 32 entrées
353
©Pierre Marchand, 2001
Unité 10: Superordinateurs et microprocesseurs
9.8 Nouvelles architectures
9.8.6 Le Itanium d’Intel.
Cache d'instructions L1
et moteur fetch /prefetch
Prédiction des
branchements
ITLB
Décodage
et contrôle
IA-32
File d'instructions
M M I I
B B B
F F
Register stack engine / remapping
Unités de
branchement
128 registres d'entiers
Unités
d'entiers
et MM
Contrôleur
©Pierre Marchand, 2001
Cache
de
données
L1 et
DTLB
128 registres de VF
Cache L3
Cache L2
Scoreboard
Registres de
branchement
et de prédicat
Unités
de
virgule
flottante
de bus
354
22
Téléchargement