Cache L1

Transcription

Cache L1
Architectures PC
Françoise Roch
Plan
Historique et évolution des architectures
32 bits
„ Processeurs 64 bits
„ Performances
„ Architectures SMP (Symetric Multi
Processing)
„
12/10/2004
2
IA-32 Un peu d’histoire
„
L’IA-32 (partie32 bits de la série x86) date du
début des années 80
¾
¾
¾
¾
Premier CPU Intel 16-bit : le 8086 créé en1978
Architecture 32 bit sur le 80386 (ou i386)
co-processeur math. 80487 sur le 80486
Des évolutions importantes :
„
„
„
„
Espace d’adressage N, cache « on chip » (80486)
extensions SIMD, superscalaire(Pentium),
CISC to RISC et opérations «Out of order»(Pentium Pro)
floating point SIMD avec SSE et SSE2 (PentiumIII/IV)
HPC sur IA-32 possible à partir du Pentium3
Le Pentium IV est aujourd’hui en compétition avec les
meilleures architectures du HPC
12/10/2004
3
Architecture IA-32
„
Un jeu d’instructions CISC (Complex Instruction Set
Computing)
¾
Des opérations complexes telles que «charger une valeur depuis la
mémoire, ajouter au registre, et stocker le résultat dans le registre »
en 1 instr. Machine
Un grand nombre d’instructions assembler
¾
„
¾
Depuis le Pentium Pro, translation d’instructions x86 en
instructions (appelées µops) d’un jeu d’instructions
simplifié type RISC
Les µops sont stockées dans un « reorder buffer » pour traitement
ultérieur, « dans le désordre » (ou plutôt dans l’ordre le plus propice
à l’optimisation des performances globales)
12/10/2004
4
Quelques caractéristiques des architectures
de PC 32 bits
Marque
AMD
AMD
Intel
Intel
Intel
Proc.
Athlon
Athlon XP
3200+
Pentium3
Pentium4
Pentium4
Fréq.
1 GHz
2.2 GHz
450
à 1.2 GHz
2-3.06
GHz
3.4 GHz
Bus (MHz) 200 à 266
2.1 Go/s
400
100 à 133
400-533
800
Cache L1
128 Ko
128 Ko
32 Ko
12 K µ op
+ 8Ko
12 K µ op
+ 8 Ko
Cache L2
256 Ko
512 Ko
256 Ko
256 Ko –
512Ko
512 Ko
Cache L3
-
-
-
/
12/10/2004
- 1Mo 1 Mo
5
Pentium4
„
„
„
„
Fréquences d’horloge très élevée
Cache L1 contient des instructions prédécodées
Des opérations entières qui s’exécutent en ½
temps de cycles (Unité arithmétique entière et
logique cadencée à 2 fois la fréquence interne
du proc)
Des opérations SIMD(Single Instruction Multiple
Data) et des registres autorisant le calcul
vectoriel
12/10/2004
6
Avant le SIMD, un moteur
d’instruction FP basé sur une pile
Pentium IV : un adressage des
registres « à plat », autorisant le SIMD
xmm0
ST(0)
+
ST(1)
ST(2)
ST(3)
ST(4)
xmm1
xmm2
xmm3
xmm4
xmm5
xmm6
xmm7
ST(5)
ST(6)
ST(7)
12/10/2004
80 bits
128 bits
Chaque registre peut être partagé en plusieurs
types de données Int ou FP
ƒ Integer 8 à 128 bits
ƒ Single (SSE) ou double (SSE2) FP
Instructions SIMD peuvent opérer sur la 1ère ou
7
toutes les partitions du registre à la fois
IA 32 Opérations SIMD sur des FP
„
Exemple : addition de 2 vecteurs FP Simple
précision
X3
X2
X1
X0
xmm0
Y3
Y2
Y1
Y0
xmm1
+
+
+
+
X2+Y2
X1+Y1
X0+Y0
X3+Y3
xmm1
ƒ 4 add FP simple précision en 1 seule instruction
ƒ Performance crête : 2 DP-Flops / cycle
12/10/2004
8
Opérations Flottantes et SIMD
„
# types de données autorisés dans les registres SSE
16x8 bit
integer
8x16 bit
4x32 bit
2x64 bit
Floating point
128 bit
4x32 bit
2x64 bit
12/10/2004
9
La technologie Hyper threading
„
„
„
„
„
Principe : le système et les applications perçoivent 2
processeurs virtuels capables d’exécuter 2 ensembles de
tâches simultanément
Conséquence : le processeur exécute 2 séquences
d’instructions simultanément et utilise une plus grande
fraction des ressources
2 tâches se partagent les ressources d’1 CPU
Efficace si les threads utilisent #unités fonctionnelles
Inutile pour des codes utilisant intensivement les unités FP
Remarque :
…
…
l’HT n’accélère pas un thread seul
N’augmente pas la quantité de ressources par CPU
12/10/2004
10
Xeon
„
„
„
Versions optimisées des P2-3-4 pour
architecture SMP
Destiné aux serveurs
Gros cache (cache L3 jusqu’à 2 Mo)
Celeron
„
„
„
Versions allégées des Pentium, pour machines
bas de gamme
Petit cache (128ko dans les dernières versions)
Gère moins de slots pour les bus PCI
12/10/2004
11
Athlon
„
„
„
„
„
Processeur 32 bit de chez AMD, concurrent du
pentium (moins cher), même jeu d’instructions
Fréquence d’horloge moins élevée que le
Pentium4
Plus petit cache que le xeon, pas de L3
Support des instructions SSE2
Athlon MP : version serveur smp (pendant du
xeon)
12/10/2004
12
Processeurs 64 bits
12/10/2004
13
Quelques caractéristiques des architectures
de PC 64 bits
Marque
AMD
Intel
Intel
Proc.
Opteron 250
Itanium2
Nocona
Fréq.
2.4 GHz
1.5 GHz
3.4 GHz
Bus
système
Fonctionne à la Bus
vitesse du proc. 400MHz
+ Technologie
(6.4 Go/s)
Hyper transport
pt à pt - 6.4Go/s
Bus 800 MHz
Cache L1 128 Ko
32 Ko
16 Ko
Cache L2 1 Mo
256 Ko
1 Mo
Cache L3 -
6 Mo
12/10/2004
14
L’architecture IA64
„
„
„
Architecture EPIC(Explicit Parallel Instruction
Set Computing), 64 bit, superscalaire
Support du code x86 en mode émulé
La grande différence avec ses concurrents:
c’est le compilateur qui prend les décisions
concernant les instructions qui peuvent
s’exécuter en //
sur les autres architectures, ce travail est
effectué au niveau hard, via des circuits
complexes
12/10/2004
15
L’IA64
„
Architecture EPIC (Explicitly Parallel Instruction
Computing)
Le processeur reçoit des paquets (bundles)
d’instructions. Il essaie de les exécuter, autant que
possible en parallèle, en fonction des unités disponibles
I2
41 bits
I1
I0
T
5 bits
Le compilateur génère des
Bundles de 3 instructions
Et un Template
T (champ « template »)
Contient des informations sur le niveau de //isme :
Type d’instruction, groupe d’instructions indépendantes
Autorise seulement certaines combinaisons d’instructions
12/10/2004
16
Le Parallélisme d’instruction
„
„
„
Itanium1/Itanium2 peut exécuter 2 bundles/cycle,
soit un maximum de 6 instructions/cycle
Seules certaines combinaisons d’instr. sont
autorisées dans les bundles : par ex., 1 seule instr.
flottante/bundle.
Un « groupe » d’instructions est formé d’un
ensemble d’instructions qui peuvent s’exécuter en
parallèle, sans dépendance. C’est le compilateur
qui détermine ces groupes d’instructions, le //isme
est indiqué dans le code machine.
Un grand nombre de registres pour éviter les
contentions.
12/10/2004
17
L’Itanium2
Un nombre important de registres
128 registres flottants
„ 64 registres de prédicats
„ 128 Registres Généraux
„ 8 Registres de branchements
„ 128 registres d’applications
„
12/10/2004
18
L’Itanium2
L’Itanium2 à 2 unités FMA (a*x + b) Æ 4
flops/cycle
Soit une puissance crête de 1.5*4=6 Gflops
Pour la version 1.5MHz
„
12/10/2004
19
« Predication »
Architecture
Itanium
Architecture
traditionnelle
Cmp a, b
Cmp a, b pT, pF
Jump NEQ
then
pT
X=1
Jump END
X=0
12/10/2004
else
X=1
pF
X=0
Le code correspondant à chacun
des 2 chemins est routé vers 2 pipelines
d’exécution
Le chemin correspondant au prédicat
valide sera conservé une fois la
comparaison effectuée
20
Architecture AMD64
L’opteron
„
„
„
„
Une évolution de l’architecture x86
Jeux d’instructions x86-64, compatible avec les
instructions x86
Instructions SSE2
Le contrôleur mémoire
Intégré au processeur, synchronisé sur sa vitesse d’horloge =>
latence peu élevée (80 ns)
„
Technologie d’Hypertransport
Sert à établir une interconnexion asynchrone rapide
entre les différents composants d’une carte mère
connexion hypertransport :
constituée d’une paire de liens unidirectionnels
bande passante maximale de 6.4 Go/s
12/10/2004
21
L’opteron
„
„
„
„
Les pénalités dues aux défaut de cache sont
relativement faibles.
Sur les SMP, la mémoire peut être partagée de
façon quasi transparente entre les procs via les
liens hypertransport intégrés.
Mais le système migre éventuellement les
threads d’1 processeur à l’autre, donc pas de
garantie sur la localité des accès mémoire
Exécution «out-of-order»
12/10/2004
22
12/10/2004
23
12/10/2004
24
L’opteron
2 unités flottantes, mais pas de FMA
„ 40 registres FP double précision (16 128bit et 8 MMX)
„ 1 seule instruction SIMD par cycle
„
12/10/2004
25
Nocona : Processor 64 bit Intel
„
„
„
„
„
„
„
Evolution du Xéon
Registres 64 bit
Doublement du débit mémoire (bus 800MHz)
Instructions SSE3 (complex, mémoire, …)
Hyperthreading
Processeur 64 bit compatible 32 bit, Instructions
« Extended Memory 64 Technology »
2.8 à 3.6 GHz
12/10/2004
26
PowerPC G5, 64 bit
Fréquence : N 2GHz, mémoire max : 8 Go
„ Cache L1 : 64 Ko, cache L2 : 512 Ko
„ Jusqu’à 2 procs sur architecture Xserve
„ Bus frontal à 1GHz, bande passante 8Go/s , 1 par proc
+ système d’interconnexion point à point vers les soussystèmes
„ 2unités entières, 2 unités flottantes
„ Superscalaire, prédiction de branchement
„ Velocity Engine à 2 pipelines (exécution vectorielle)
2 unités FP double précision FMA, registres 128 bits
dédiés
2 GHz x (2 x 2 opérations FP FMA) -> 8Gflops
„
12/10/2004
27
Compilateurs fortran
Sur architectures 32 bit, jeu d’instruction IA32 :
Gcc, g77
Intel Ifc ou ifort
Portland Group pgf90
Absoft
„
Sur architectures 64 bits, on est lié à un compilateur
gcc
Intel efc ou ifort sur itanium ou itanium2
Portland Group, Pathscale sur opteron
IBM Xlf sur G5
„
12/10/2004
28
SPEC CPU 2000
Jeux de tests permettant de mesurer et
comparer les performances en calcul
intensif de différentes architectures calculs entiers (SpecINT) ou calculs
flottants (SpecFp)
„ SpecRate : evaluation des machines
multiprocesseurs permettant d’estimer la
scalabilité d’une architecture
„ Publication sur le site www.spec.org
„
12/10/2004
29
SPEC 2000
SpecInt
base
SpecInt
Specfp
base
Specfp
P4, 3.4GHz
Pas de L3
1342
1393
1303
1297
Xeon 3.2
L3 1Mo
1365
1415
1194
1202
Xeon 3.2
L3 2Mo
1532
1563
1338
1346
AthlonXp
3200+, 2.2
1044
1080
873
982
Athlon 64 FX 1623
2.4 GHz
1717
1595
1634
Ita2/HP 1.5
L3 6Mo
1312
1312
2161
2161
Opteron150
2.4 GHz
1369
1487
1591
1644
12/10/2004
30
Bande passante mémoire
Bande passante maximum du Bus frontal =
Vitesse d’horloge du Bus x Largeur du Bus
Ex :
Mémoire
3.2 GB/s
64 bit
400MHz
3.2 GHz
400MHz
CPU
12/10/2004
Cache L1
Bus frontal
1 cycle
Cache L2
Pénalités liées aux défaut de cache
31
Système à mémoire partagée
Architectures SMP et NUMA
„
Système à accès mémoire uniforme(UMA)
Architectures SMP(Symmetric Multi-Processor)
Temps d’accès à la mémoire identique
Gestion de la cohérence des caches (les données vues
par chaque processeur sont identiques)
„
Systèmes à accès mémoire non-uniforme(NUMA)
Architectures NUMA
Temps d’accès à la mémoire ne sont pas uniformes
Gestion de la cohérence des caches
12/10/2004
32
Architectures SMP
Mémoire physiquement partagée
Cache L1
CPU
Cache L1
Bus frontal
CPU
Les processeurs communiquent via leur mémoire commune
Contention au niveau du bus lorsque le nombre de
processeurs augmente
12/10/2004
33
Architectures SMP
Mémoire physiquement partagée
CPU
CPU
Interconnexion via un crossbar rapide
=> meilleure scalabilité
12/10/2004
34
Architectures NUMA
Mémoire physiquement distribuée mais logiquement
partagée
12/10/2004
CPU
CPU
CPU
CPU
35
Xeon
Contrôleur mémoire externe
„ Accès mémoire principale via un bus (64
bits, 800MHz)
=> Attention : risques de contention
„ Gros caches => efficace sur les codes qui
tiennent dans le cache
„
12/10/2004
36
Itanium2
Différentes architectures :
„ Interconnexion via un bus 128 bits à 400 MHz,
6.4 Go/s, jusqu’à 4 CPUs
Mêmes remarques que pour le xeon
„
Ou bi-processeurs avec liens NUMA link (2
liens full duplex à 6.4 Go/s par bi-pros chez
SGI)
Bien mais attention à la localité mémoire
12/10/2004
37
Opteron
„
„
„
Traffic entre le processor, la mémoire et les IOs
via un « tunnel hypertransport » qui opère à la
même vitesse d’horloge que le processor
(largement supèrieur à la vitesse d’un bus)
Chaque opteron à son propre chemin d’accès
rapide à la mémoire
=> pour 2 procs, bande passante x 2
Jusqu’à 8 processeurs SMP
12/10/2004
38
SPEC Int
2000
SpecInt
base
SpecInt
SpecIntbase SpecIntrate
rate/ nCPUs /nCPUs
Xeon 3.2
L3 1Mo
1365
1415
15.8 /1
28.1 /2
16.4 /1
29.3 /2
Xeon 3.2
L3 2Mo
1532
1563
17.8 /1
32.9 /2
18.1 /1
33.6 /2
Ita2/HP 1.5
L3 6Mo
1312
1312
16.0 /1
32.0 /2
63.4 /4
16.3 /1
32.5 /2
64.2 /4
Ita2/SGI 1.4
L3 3Mo
1078
__
24.7 /2
49.2 /4
98.2 /8
__
1515
16.0 /1
30.1 /2
57.2 /4
17.6 /1
33.7 /2
63.5 /4
Opteron/Sun 1379
2.4 GHz
V40z
12/10/2004
39
SPEC FP
2000
Specfp
base
Specfp
Specfp
Base rate
Specfp
rate
Xeon 3.2
L3 1Mo
1194
1202
13.8 /1
18.5 /2
13.9 /1
18.6 /2
Xeon 3.2
L3 2Mo
1338
1346
15.5 /1
22.0 /2
15.6/1
22.1 /2
Ita2/HP 1.5
L3 6Mo
2161
2161
25.1 /1
43.2 /2
65.6 /4
25.1 /1
43.2 /2
65.6 /4
Ita2/SGI 1.4
L3 3Mo
1931
1942
38.0 /2
75.2 /4
147 /8
38.3 /2
75.6 /4
148 /8
Opteron/Sun 1551
2.4 GHz
V40z
1692
18.0 /1
33.9 /2
61.5 /4
19.6 /1
37.2 /2
70.0 /4
12/10/2004
40
Conclusion
Des niveaux de performances
comparables avec une petite longueur
d’avance pour l’Itanium2 en calcul flottant
„ L’architecture EPIC est la plus novatrice,
mais aussi la plus chère
„ Attention aux architectures mémoire sur
les machines SMP
„ L’architecture hypertransport, un atout
pour l’opteron (« glueless processor »)
„
12/10/2004
41

Documents pareils