Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 1
Architectures Avancéesdes
Ordinateurs
Jacques WEISSÉquipe de recherche ETSNSupélec Campus de Rennes
http://www.rennes.supelec.fr/ren/fi/elec
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 2
Plan du coursConstitution d’un ordinateurFonctionnement de la mémoire
HiérarchieCachesDRAM, SDRAM, RDRAM, …Mémoire virtuelle
Processeur de baseStructures accélératrices
Prédiction de branchementSuperscalairePipeline
Processeurs CISCProcesseurs RISCProcesseurs Pseudo-CISCArchitectures SIMDArchitectures VLIWStructures MultiprocesseursÉvolutions technologiques et tendances
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 3
Processeur(CPU)
Constitution d’un Ordinateur
Unité decommande
Unitéd’entrée
Unitéde sortie
Registres
ALU
Mémoire
bus d’adresses bus de données
bus
d’entrée
bus de
sortie
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 4
Technologie des ordinateurs
La machine dont on a besoin coûte toujours $2.000
1983 : IBM-PC/XT : ~2.000 €1987 : IBM-PC/AT : ~2.000 €1991 : IBM-PC/486 : ~2.000 €1997 : IBM-PC/PII : ~2.000 €
2001 : IBM-PC/P4 : ~2.000 €
Loi de Machrone :
Loi de Moore :
Le nombre de transistors intégrés sur silicium double tous les 18 à 24 mois
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 5
Constitution d’un Ordinateur(suite)
•Le cœur est le PROCESSEUR•Les poumons sont réalisés par la mémoire•les artères sont constituées par des bus de communication
Les performances de l’ensemble sont déterminées par leplus lent des organes ou par les capacités de communicationentre ceux-ci
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 6
Architectures de Processeurs
ZISC : Zero Instruction Set ComputerAutrement dit : Processeur Câblé (et donc PAS programmé)
CISC : Complex Instruction Set ComputerProcesseur possédant un jeu d’instructions fourni de longueur et de temps d’exécution variables.
RISC : Reduced Instruction Set ComputerProcesseur possédant un jeu d’instructions réduit de longueur et de temps d’exécution fixes
VLIW : Very Long Instruction WordProcesseur traitant des instructions de type RISC regroupées de manière à être exécutées explicitement en parallèle.
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 7
Architectures de Processeurs(historique)
Les premiers processeurs (apparus au début des années 70) étaient majoritairementbasés sur une approche CISC/Von Neumann avec une architecture mono-bus.
C’est au milieu des années 1980 que sont apparus les premiers concepts RISCpermettant de mieux exploiter la technologie silicium.
Au cours des années 1990, une nouvelle approche a vu le jour : VLIW ; elle est baséesur le fait que les autres architectures sont asphyxiées par la faible bande-passanteavec la mémoire et deviennent trop complexes (prédiction de branchement, …).
Les ordinateurs commencent à être confrontés aux limites technologiques depropagation des signaux(vitesse de la lumière : 30 cm/ns) ; pour s’affranchir de ces contraintes, il est impératif d’augmenter la densité d ’intégration.
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 8
Classification desArchitectures Parallèles
Parallel Architectures (PA)
Function-Parallel Architectures
Process-level PAsInstruction-level PAs Thread-level PAs
Data-Parallel Architectures
DPs ILPs MIMDs
VectorArchitectures
AssociativeAnd Neural
Architectures
SystolicArchitectures
SIMDs
PipelinedProcessors
SuperScalarProcessorsVLIWs Distributed
MemoryMIMD
SharedMemoryMIMD
CMPs
Intel MT(Multi-Threading)
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 9
Architecture de base des Processeurs
ALU
Accumulateur
NHVZC
Décaleur
8bus de données
Registres 8 bits(données)
PCSPIX
bus d’adresses
16Reg
istr
es 1
6 bi
ts(a
dres
ses)
Mémoire
Code opératoire
Décodage
Opérandes
Exécution
Résultat
Microprocesseur
Exemple :8080 (Intel 72)8.000 TransistorsBoîtier 40 broches
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 10
Performances d’un processeur
Temps par tâche = I.C.TI = nombre d'instructions/tâche.C = nombre de cycles/instructions.T = temps de cycle.
AMÉLIORATION DES PERFORMANCES
Paramètre I Augmenter le jeu d’instructions du µP ; instructions de + en + complexesArchitectures CISC et VLIW
Paramètre C Nécessite le traitement simultané de plusieurs instructions- structures pipeline,- structures parallèles, superscalaires
Paramètre T Amélioration de la technologie, réduction de la durée des opérations élémentaires- structures Super-Pipeline
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 11
Prédiction de Branchement
Statique :Aucune prédiction (ex. 80486) : 40 % de succèsOn prend tout : 60 % de succèsPrédiction rétrograde (ex. PA RISC) : 65 % de succèsLe compilateur positionne un bit (ex. RIDGE) : 75 % de succès
Dynamique :même comportement (ex. AMD-K5) : 80 % de succèsBranch History Table (ex. PPC-604, Pentium) : > 85 % de succès
Techniques de Prédiction de Branchement :
Les techniques d’accélération des traitements (pipeline, superscalaire, utilisation des caches) ne fonctionnent bien que pour des exécutions séquentielles des instructions ; en cas de branchement (conditionnel, boucle, interruption), il faut « remettre les pendules à l’heure »(vidage des pipeline, mise à jour des caches, …), ce qui peut être très long !
Ainsi, pour profiter de ces structures accélératrices, il faut être capable de prédire ledéroulement du programme, ce qui n’est pas chose aisée.
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 12
Architecture des Processeurs(Super-Scalaire)
Dans la recherche de performances de calcul maximales, il peut être intéressant d’intégrer plusieurs unités (N) arithmétiques en parallèle ; ainsi, sous réserve de non-dépendance des données et des ressources, on peut envisager d’exécuter N instructions simultanément.
Registres Registres
Scalaire Super-Scalaire
C’est au début des années 1990 que la technologie a permis d ’intégration de structuressuperscalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de1 à 2 unités de calcul flottant fonctionnant en parallèle
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 13
Séquencement des instructions• Exécution séquentielle
Fetch Décod Mem Exec
Fetch Décod Mem Exec
Fetch Décod
Fetch
Mem
Décod
Fetch
Exec
Mem
Décod
Fetch
Exec
Mem
Décod
Exec
Mem Exec
• Exécution « pipelined »
1 instruction/4 cycles
1 instruction/cycle
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 14
Séquencement des instructions(Pipeline - Super-Pipeline)
Le séquencement pipeline permet, dans un cas idéal, d’obtenir l’exécution d’une instruction/cycle mais il peut être intéressant de découper certaines phases pour pouvoir augmenter les fréquences d’horloge ; on parlera alors de structures Super-Pipeline.
10 ns 5 ns 5 ns
Reg
istr
e
H
Reg
istr
e
H
Reg
istr
e
H
Reg
istr
e
H
Tam
pon
H
Fmax = 100 MHz Fmax = 200 MHz
Opérateur arithmétiquecombinatoire
Opérateur arithmétiquepipeline
Exemple : le Pentium 4 possède 20 niveaux de pipeline, ce qui permet d’obtenirune fréquence d’horloge de 2 GHz.
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 15
PipelineAnalyse de conflits dans le pipeline
Instructions registre-registre:- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; opération arithmétique ou logique entre registres,- W : Mise à jour des registres internes - rangement du résultat.
I E TLoad A M
I E TLoad MB
I E TStore M C
I EAdd C A + B W
BranchX I Etemps
14
Exécution séquentielle
Instructions load/store :- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; calcul de l'adresse mémoire- T : Transfert de la donnée.
Instructions de branchement :- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; mise à jour de l'adresse de l'instruction suivante,
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 16
PipelineConflits de ressources
Accès simultanés à une même ressource, par exemple la mémoire. Phases d’attente (Wait)
I E
T
E
I E
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
X
temps
I
I W
E
E
w ait
T
w ait
T
8
I E
T
E
I E
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
Xtemps
I
I W
E
E
wait
T
wait
T
8
Séparation des mémoiresprogramme et données
(architecture Havard)
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 17
PipelineDépendances de données
I E T
E T
E
I E T
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
Xtemps
I
I
E
EINOP
W
7
I E T
E T
E
Load
Load
A M
MB
Add C A + B
I
I W
Insertion d’une instruction NOP
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 18
Pipeline Conflits de contrôle
Liés aux instructions de branchement :l’adresse de l’instruction n’est connue qu’à la finde la phase d’exécution de l’instruction de branchement
Insertiond’une instruction NOP
I E T
E T
E
I E T
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
X
temps
I
I
E
EINOP
W
7
INOP E
IInstruction suivante EX :
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 19
Mise en œuvre desstructures accélératrices
Pour profiter pleinement des structures superscalaires et pipeline, c’est à dire sanstemps d’attente (Wait ou NOP), l’idéal est d’ordonner correctement les instructions(Instruction Scheduling) ; ceci peut être fait par :
Le logiciel :un compilateur performant devrait être capable d’optimiser l’agencement des instructions en fonction des ressources matérielles ; ceci n’est hélas pas toujours possible (variétés de processeurs et d ’environnements, système d’exploitation, …)
Le matériel :sur la puce, un système de contrôle peut réorganiser les instructions en fonctiondes disponibilités du moment (exécution dans le désordre ou Out-Of-Order) ; le principe est efficace mais ne peut fonctionner que sur un faible nombre d’instructions.
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 20
Processeurs CISC (Intel Pentium)
•But : disposer d’un jeu d ’instructions performant pour minimiser la longueur du code
•Particularité d’Intel : la compatibilité ascendante x86 augmente encore la complexité du jeu d’instructions.
instructions sur 1 à 15 octetsOptionnel
PréfixeInstr.0 ou 1
ex. : Repeat
Préfixetaille @0 ou 1
20 bits (8086) ou 32 bits (386)
Préfixetaille Op.
0 ou 1
16 bits (8086) ou 32 bits (386)
Préfixe@ segment
0 ou 1
CS, DS, ... , GS
Code Op.
1
Mode @
0, 1 ou 2
Contient l’octet SIB:Scale,Index,Base
Déplacement
0, 1, 2 ou 4
Entier signé
ValeurImmédiate0, 1, 2 ou 4
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 21
Processeurs CISC (Intel Pentium)
Con
trôl
eur
de b
us
Adresses
Contrôle
Données64
32
32
64Cache
instructions256Tampon de
préchargementDécodage
Tampon d’@branchements
Unité decontrôle
ROMmicrocode
Registres entiers
PipeU
PipeV
Registres flottants
FPU 32 Cachedonnées32
•Sorti en 1993•Superscalaire x2 (+ flottant)•Pipeline x5
•Caches L1 (I + D) intégrés•Bus x2 (64 bits)•3,1 millions de transistors
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 22
Processeurs CISC (Intel Pentium)Gestion Pipeline/Superscalaire
8 niveaux de pipeline :U V FPUPF PF PrefetchD1 D1 D1 DécodageD2 D2 D2 Lecture RegistresEX EX EX Lecture RegistresWB WB X1 Exécution
X2 ExécutionWF Arrondi et Écriture RegistresER Rapport à l’UC
Il faut que les instructions soient «pairables» :Entiers :
NP — Non pairable, doit être exécuté sur l’unité UPU — Pairable si assigné à l’unité UPV — Pairable si assigné à l’unité UUV — Pairable sans condition
Flottants :FX — Pairable avec U ou VNP — Non pairable
Exemples :instructions d’E/S NPADC — ADD with Carry PUADD — Add UVIMUL — Signed Multiply NPLEA — Load Effective Address UVJcc — Jump if Condition is Met PV
FADD — Add FXFDIV — Divide FXFIADD — Add Integer NPFSIN — Sine NP
Limitations :- partage des ressources- synchronisation de pipelines
Le Pentium est le dernier « vrai » processeur CISC d’Intel
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 23
Processeurs RISC •But : disposer d’un jeu d’instructions réduit, de longueur et de temps d’exécution constants•Intérêt : simplifier la gestion du séquenceur et du pipeline, ce qui permet d’augmenter la
fréquence d’horloge•Conséquences :
- modes d’adressage simplifiés- longueur de code plus grande que pour les CISC- nécessité d’un grand nombre de registres pour réduire les accès mémoire
Add @mem_1,RA,@mem_2
(@mem_2) = RA + (@mem_1)
Load @mem_1,RBAdd RA,RBStore RB, @mem_2
RISCCISC
Exemple :
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 24
Processeurs RISCInstructions
Instructions de type registre-registre
Instructions de type registre-immédiat
Instructions d'accès mémoire
Instructions de branchements
Code op. S1 S2 D0
6 5 5 54
code op.(ext)
7
Code op. S1 Constante D
6 5 8 5
code op.(ext)
7
1
1
Code op. RbaseS/D
6 55
Déplacement
16
Code op. Rbase
6 5
Déplacement
21
organisation "registre-registre" avec trois ou quatre opérandes :2 ou 3 registres sources A et B et C et un registre résultat D
Format des instructions Alpha 21264 :
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 25
Processeurs RISCPipeline
Processeur SPARCProcesseur MIPS
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 26
Processeurs RISCGestion des registres
Nombre élevé de registres internes Limiter les échanges avec la mémoire( SPARC : 520 registres)
Fenêtres de registres Renommage des registres
Registres supplémentaires utiliséslors de dépendances de données.
Adresse logique
Table decorrespondance
Instruction
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 27
Architecture Alpha 21264
Int RegMap
Branch Predictors
FETCH MAP QUEUE REG EXEC DCACHEStage: 0 1 2 3 4 5 6
BusInter-faceUnit
IntIssue
Queue(20)
Exec
4 Instructions / cycle
RegFile(80)
Victim Buffer
L1 DataCache64KB2-Set
FP Reg Map
FP ADDDiv/Sqrt
FP MUL
Addr
80 in-flight instructionsplus 32 loads and 32 stores Addr
Miss Address
Next-LineAddress
L1 Ins.Cache64KB2-Set
Exec
Exec
ExecRegFile(80)
FP Issue
Queue(15)
RegFile(72)
Sys Bus
Cache Bus
Phys Addr
128 bit
44 bit
64 bit
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 28
Processeurs Pseudo-CISC (Intel P6)
Rang instruction Taux d’utilisation (calcul entier)1 load 22%2 conditional branch 20%3 compare 16%4 store 12%5 add 8%6 and 6%7 sub 5%8 move register-register 4%9 call 1%10 return 1%
Total 96%
Bilan : 10 instructions simples couvrent plus de 95% des besoins !
Top Ten des instructions x86 :
Conséquence : Intel maintient la compatibilité ascendante de ses processeurs (x86) tout en optant pour une architecture de type RISC (architecture P6).
Instructions CISC (1 à 15 Octets) Micro-ops (2 entrées, 1 sortie, longueur fixe)
Processeurs concernés : Pentium Pro, Pentium II, III et 4
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 29
Processeurs Pseudo-CISC (Intel P6)
Bus
Inte
rfac
e U
nit
Contrôle
Données64
Adresses36
I CacheLevel 1(8 kOctets)
FetchFetch/Decode
Unit
InstructionPool
Dispatch/Execute
UnitD CacheLevel 1
(8 kOctets)
Load
RetireUnit
Store
CacheLevel 2
(256 kOctets)
Bus Externe
BIU
L2
In-order front end(Fetch/Decode)
Out-of-order core(dispatch/exec)
In-order back end(Instruction Pool/Retire)
BTB
MIS
RAT
IFU
IDROBRRF
RS
DCU
AGU
IEU
MIU
MOB
FEU
Pentium Pro (1995)
•Exécution spéculative (désordre)•Cœur RISC•Cache L2 sur 2ème puce
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 30
Pentium 4 (2000) : Architecture
2xALUSimpleInstr.
2xALUSimpleInstr.
2xAGUStore
@
2xAGULoad
@
Slow ALUComplex
Instr.
Integer/FP µOp Queue
Integer SchedulersSlow Int Fast Int Fast Int Memory
Integer Register File + ByPass
Allocate Ressources / Rename Registers
Trace CacheBranch Prediction
4096 entry TLB
Execution Trace 12.000 µOpsMicro Code
ROM /Seq.
Instruction Decoder
Dynamic Branch Predictor : 4096 entries
CacheL2
Cache L1 Données (8kB)Double Port, 4 wayHardWare PreFetch
256 bits Core Clock
Instruction TLB256 bitsCore Clock
BisInterface
Unit-
64 bits100 MHz
QuadPumped3,2 Go/s
SystemBus
FP StoreFP Move
FmulFAdd
SSE/SSE2 MMX
Memory µOp Queue
FP Register File
FP SchedulersFP Gen FP Mem
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 31
Processeurs Pentium : Pipeline
Vitesse élevée, mais besoin d’une prédiction efficace des branchements
1Prefetch
2Decode
3Decode
4Exec
5Wrtbck
Architecture P5 (Pentium)(Limite : 233 MHz)
1fetch
3Decode
6Rename
10Exec
2fetch
4Decode
5Decode
7ROB rd
8Rdy/Sch
9Dispatch
Architecture P6 (Pentium Pro, PII, PIII)
(Limite : 1 GHz)
1TC
3 4TC fetch
7 8Rename
17Exec
2Next IP
5Drive
6Alloc
9Queue
10Sch
13 14Dispatch
11Sch
12Sch
15 16RF
18Flags
19Br Ck
20Drive
Architecture NetBurst (Pentium 4) (Introduction à 1,4 GHz)
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 32
Pentium 4 : Déroulement global
Fop
Fms
ALUALUALUALUAGUAGU
17 - 20
22 Go/s
Syst
em In
terf
ace
L1 D
-Cac
he &
TLB
3,2 Go/s
45 Go/sL2 Cache
Deep Buffering
6 - 85 9
3
Ren
ame/
Allo
c
µOp
Que
ue
10-1213-14
Sche
dule
rs
15-16
Inte
ger R
FFP
RF
3
Etages Pipeline 1 - 4
BTB
ROM
Trac
e C
ache
Hardware Prefetch
Dec
oder
BTB
& I-
TLB
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 33
Architecture SIMD
Mémoire deprogramme PE
Uni
té d
esé
quen
cem
ent pc
Horloges
Retour pour contrôle de séquencement
Instructionsadresses
mem ALU
PEi
mem ALU
PEi+1
mem ALU
PEi+2
Add r0, mem[x]
Contrôleur spécialisé
Mise en parallèle de processeurs élémentaires (PE) traitant la même instructionsur des données différentes (SIMD : Single Instruction, Multiple Data).
Ce type d’architecture ne se justifie qu’avec l’emploi de mémoires distribuées, ilreste à les alimenter à un débit suffisant !Que faire en cas de branchement conditionnel ?
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 34
Architecture SIMDPrinceton Engine
•Jusqu’à 2048 processeurs•PE : ALU, Mult, 64 registres•Mémoire élémentaire : 16 kmots de 16 bits
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 35
Architecture SIMDRéseau à couplage fort
Réseau à passage de messages
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 36
Extensions SIMD« multimédia »
Applications Multimédia : Données :
Vidéo : 8 bitsDCT : 16 bitsAudio : 16 bits
Traitement :Opérations parallèles (RVB)Petites boucles
Les processeurs traitent des donnéessur 32 bits et ils y accèdent sur 64 bits
MMX : Intel ‘ 1996MVI : DEC-Alpha ‘ 19963Dnow : AMD ‘ 1998SSE : Intel ‘ 1999Altivec : Motorola ‘ 2000SSE2 : Intel ‘ 2000
Systèmes existants :
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 37
Extensions SIMD(MMX)
63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
Packed Byte (huit éléments 8 bits)63 48 47 32 31 16 15 0
Packed Word (quatre éléments 16 bits)63 32 31 0
Packed DoubleWord (deux éléments 32 bits)63 0
QuadWord (un élément 64 bits)
57 instructions MMX :Arithmétique : 17 instructions Add/Sub : Wrap-around et Saturation (8, 16 et 32 bits), MUL : 16 bitsComparaison : 6 instructions Égalité/Supérieur (8, 16 et 32 bits)Conversion : 9 instructionsLogique : 4 instructionsDécalage : 16 instructions Arithmétique et Logique (8 à 64 bits)Transfert : 4 instructionsContrôle : 1 instruction
Formats de données MMX :
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 38
Extensions SIMD(Arithmétique MMX)
PADD[W] : Wrap-around Add
+ + + +a3 a2 a1 $FFFF
b3 b2 b1 $8000
a3+b3 a2+b2 a1+b1 $7FFF
PADDUS[W] : Saturating Arithmetic
+ + + +a3 a2 a1 $FFFF
b3 b2 b1 $8000
a3+b3 a2+b2 a1+b1 $FFFF
a3 a2 a1 a0
b3 b2 b1 b0
a3*b3 + a2*b2 a1*b1 + a0*b0
PMADDWD : 16*16 b -> 32 bits : Multiply Add
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 39
Architectures VLIWVLIW : Very Long Instruction Word
Le processeur exécute de longues d’instructions contenant plusieurs instructions élémentaires ; un descripteur est associé pour faciliterle parallélisme des opérations (branchement conditionnel ou existencede dépendances.
Les instructions VLIW sont générées par :•Le compilateur (Itanium en mode IA64)•A la volée :
Par logiciel (Transmeta)Par matériel (Itanium en mode x86)
InstructionsDescripteur
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 40
Architectures VLIWVLIW : Very Long Instruction Word
Ce qui limite la performance dans les systèmes superscalaires « standard »:– Les branchements
• Les mauvaises prédictions limitent la performance• Les petites branches (peu de code) ont peu de code à exécuter, ce qui limite le parallélisme
– L’accès à la mémoire• Utilise plus d’un coup d’horloge• Souvent, on doit faire un load juste après un branchement
– L’extraction du parallélisme des instructions• Le compilateur « sérialise » le code, dont le parallélisme intrinsèque doit être redécouvert
dynamiquement par le processeur
Code sourceoriginal
Code parallèle
Compilateur Code machineséquentiel
Code parallèle
…Unités d’exécution multiples
Matériel
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 41
Architectures VLIWParallélisme Explicite (EPIC)
• Le compilateur expose, améliore et exploite le parallélisme du programme source et le rend explicite dans le code machine
Compilateur
« Expose »
Code sourceoriginal
« Améliore »
Code machineparallèle
« Exploite »
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 42
Itanium (2000)(Intel - HP)
Architecture EPIC (Explicitly Parallel Instruction Computing)
• Développé conjointement par HP et Intel:– ISA mis au point chez HP– Design matériel principalement chez Intel
• But: mettre au point la prochaine génération de processeurs hautes performances 64 bits• Principes de base: éliminer les goulots d’étranglements connus des systèmes superscalaires
existants• Abandon de la recherche de compatibilité directe x86 (générée par émulation et donc moins
performante que sur un Pentium II)
Premières puces :CMOS 0,18 µm 25 Mtransistors733 - 800 MHz 130 WCache L1 : 16 + 16 kOctetsCache L2 : 96 kOctetsInterface pour cache L3 (< 4MOctets)
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 43
Itanium (2000)(Intel - HP)
Architecture EPIC (Explicitly Parallel Instruction Computing)
Le problème posé par les architectures précédentes d’Intel est l’optimisation de l’exploitation des ressources superscalaires et le vidage des pipelines en cas de branchement conditionnel.
L’approche est de type VLIW avec 3 instructions par champ de 128 bits (Bundle),chaque instruction est codée sur 41 bits et un gabarit (TEMPLATE) sur 4 bitspermet de faciliter le parallélisme des opérations :
Instruction Slot 2 TemplateInstructions
Bundle de 128 bits
Instruction Slot 2Instruction Slot 2
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 44
Itanium : Instructions
opcode PR GPR GPRGPR
6 bits – Registres tournants 7 bits - Registres généraux
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 45
Itanium : Instructions
Note : le double colonnage indique la présenced’un test conditionnel ou de dépendances
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 46
Itanium : Gestion des branchements
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 47
Itanium
Integer&
MM UnitsFloating
PointUnits
SIMDFMAC
FloatingPointUnits
SIMDFMAC
BranchUnits
Scor
eboa
rd, P
redi
cate
NaT
s, E
xcep
tions
ALAT
Dual-PortL1
DataCache
&TLB
L2 C
ache
B B B M M I I B B
Register Stack Engine / Re-Mapping
L3 C
ache
Bus Controller
IA-32Decode
&Control
BranchPrediction
L1 Instruction Cache andFetch/Pre-Fetch Engine ITLB
9 issues Port
InstructionQueue 8 bundles
128 Integer RegistersBranch & PredicateRegisters 128 FP Registers
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 48
Itanium 2Mc Kinley Madison
Itanium (2000) Itanium 2 (2003) Itanium 2 (2004)Nom (projet) Mc Kinley MadisonUnités entières (IEU) 4 6 6Bus système (FSB) 64 bits (2,1 GO/s) 128 bits (6,4 GO/s) 128 bits (6,4 GO/s)Technologie 0,18 µm 0,18 µm 0,13 µmFréquence (cœur) 800 MHz 1 GHz 1,5 GHzPuissance (dont fuites) 130 W 130 W (5 %) 130 W (21 %)Cache L1 (Taille/latence/accès) (16 + 16) kO / 2 / 64 bits (16 + 16) kO / 1 / 64 bits (16 + 16) kO / 1 / 64 bitsCache L2 (Taille/latence/accès) 96 kO / 12 / 64 bits 256 kO / 5 / 128 bits 256 kO / 5 / 128 bitsCache L3 (Taille/latence/accès) Externe / 20 / 64 bits 3 MO / 12 / 128 bits 6 MO / 14 / 128 bitsTransistors (hors caches) 25 Millions 25 MillionsTransistors (total) 25 Millions 221 Millions 410 Millions
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 49
Crusoe de Transmeta (2000 -)
But : Réaliser un processeur compatible X86 aussi performant que les architectures Intelconsommant de 3 à 30 fois moinsutilisant moins de silicium (70 %)
Moyen :Architecture VLIW simple (128 bits)compatibilité x86 assurée par logicielgestion de l’alimentationgestion de la fréquence d’horloge
Constat :La gestion du code CISC x86 est de plus en plus lourde à gérerL’exécution dans le désordre augmente la complexité de l’architectureLes performances sont étroitement liées à la prédiction de branchement
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 50
Crusoe de Transmeta (2000 -)
Applications x86
Système d ’exploitation x86(Windows, Linux, …)
BIOS x86
Code Morphing
Processeur VLIW
Environnement x86
Environnement Crusoe
Bas niveau
Logiciel
OS
Utilisateur
Matériel
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 51
Crusoe de Transmeta
InstructionDecode
ExecutionUnits
Cac
he L
1
X86
Inst
ruct
ion
Tran
slat
ion
InstructionReorder
RegisterRename
BranchPredict
Processeur x86 Processeur Crusoe
InstructionDecode
ExecutionUnits
Cac
he L
1
X86
Inst
ruct
ion
Tran
slat
ion
InstructionReorder
RegisterRename
BranchPredict
But : éliminer ce qui peut être traité par le Code Morphing Software
Gain :- puce plus petite et consommant moins- on peut intégrer plus de cache sur la puce
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 52
Structures Multiprocesseurs(Alpha EV7/21364)
MemoryController
RAMBUS21264
Core
16 L1Miss Buffers
L2Cache
Address Out
Address In
NetworkInterface
NSEWI/O
16 L1Victim Buf 16 L2
Victim Buf
64K Icache
64K Dcache
Processeur RISC intégrant un réseau de communication rapide (10 GOctets/s)
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 53
Structures Multiprocesseurs(Alpha EV7/21364)
EV7M
IOEV7
M
IOEV7
M
IOEV7
M
IO
EV7M
IOEV7
M
IOEV7
M
IOEV7
M
IO
EV7M
IOEV7
M
IOEV7
M
IOEV7
M
IO
Configuration multiprocesseurs avec mémoire distribuée
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 54
Marché des microprocesseurs
4 bits
8 bits
16 bits
64 bits
32 bits
CalculatricesJeux vidéoµsystèmes
Systèmes programmésMicrocontrôleurs (carte à puce)
Systèmes embarqués (ABS, Injection)
Micro-ordinateurs
Stations de travail,PlayStation
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 55
0.01
0.1
1
10
100
1000
10000
19861988
19901992
19941996P
erfo
rman
ce (
Mfl
op/s
)
Micros
Supers
8087 802876881
80387
R2000
i860RS6000/540
AlphaRS6000/590
Alpha
Cray 1S
Cray X-MP
Cray 2 Cray Y-MP Cray C90Cray T90
1998
Evolution des performances des µP/Ordinateurs
19801982
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 56
Puissance consomméepar les microprocesseurs
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 57
1997 1999 2001 2003 2006 2009
Dimensions minimales ( µm)
DRAM 0,25 0,18 0,15 0,13 0,1 0,13
Microprocesseur 0,2 0,14 0,12 0,1 0,07 0,05
Diamètre maximal des tranches (mm) 200 300 300 300 300 450
Densité d'intégration
DRAM (bits/puce) (échantillon/production) 256M/64M 1G/256M 2G/1G 4G/1G 16G/4G 64G/16G
Microprocesseur (transistors/cm²) 3,7M 6,2M 10M 18M 39M 84M
Circuit spécifique (transistors/cm²) 8M 14M 16M 24M 40M 64M
Tension d'alimentation (V) 1,8 - 2,5 1,5 - 1,8 1,2 - 1,5 1,2 - 1,5 0,9 - 1,2 0,6 - 0,9
Fréquence maximale (MHz) 750 1200 1400 1600 2000 2500
Nombre d'E/S
Microprocesseur 600 810 900 1100 1500 2000
Circuit spécifique 1100 1500 1800 2200 3000 4100
Taille de puce (mm²)
DRAM 280 400 445 560 790 1120
Microprocesseur 300 340 385 430 520 620
Générations technologiques