Vous êtes sur la page 1sur 29

Architectures Avancées

des
Ordinateurs

Jacques WEISS
Équipe de recherche ETSN
Supélec Campus de Rennes

Jacques.Weiss@supelec.fr

http://www.rennes.supelec.fr/ren/fi/elec

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 1

Plan du cours
Constitution d’un ordinateur
Fonctionnement de la mémoire
Hiérarchie
Caches
DRAM, SDRAM, RDRAM, …
Mémoire virtuelle
Processeur de base
Structures accélératrices
Prédiction de branchement
Superscalaire
Pipeline
Processeurs CISC
Processeurs RISC
Processeurs Pseudo-CISC
Architectures SIMD
Architectures VLIW
Structures Multiprocesseurs
Évolutions technologiques et tendances

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 2


Constitution d’un Ordinateur
Processeur
(CPU) Unité de
commande
Registres
Unité bus bus de Unité
d’entrée d’entrée ALU sortie de sortie

bus d’adresses bus de données

Mémoire

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 3

Technologie des ordinateurs

Loi de Moore :
Le nombre de transistors intégrés sur silicium double tous les 18 à 24 mois

Loi de Machrone :
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 €

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 4


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 le


plus lent des organes ou par les capacités de communication
entre ceux-ci

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 5

Architectures de Processeurs
ZISC : Zero Instruction Set Computer
Autrement dit : Processeur Câblé (et donc PAS programmé)

CISC : Complex Instruction Set Computer


Processeur possédant un jeu d’instructions fourni de longueur
et de temps d’exécution variables.

RISC : Reduced Instruction Set Computer


Processeur possédant un jeu d’instructions réduit de longueur
et de temps d’exécution fixes

VLIW : Very Long Instruction Word


Processeur 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 6


Architectures de Processeurs
(historique)
Les premiers processeurs (apparus au début des années 70) étaient majoritairement
basé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 RISC
permettant de mieux exploiter la technologie silicium.

Au cours des années 1990, une nouvelle approche a vu le jour : VLIW ; elle est basée
sur le fait que les autres architectures sont asphyxiées par la faible bande-passante
avec la mémoire et deviennent trop complexes (prédiction de branchement, …).

Les ordinateurs commencent à être confrontés aux limites technologiques de


propagation 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 7

Classification des
Architectures Parallèles
Parallel Architectures (PA)

Data-Parallel Architectures Function-Parallel Architectures

Instruction-level PAs Thread-level PAs Process-level PAs

DPs ILPs CMPs MIMDs

Pipelined SuperScalar
VLIWs Distributed Shared
Processors Processors
Vector SIMDs Memory Memory
Architectures MIMD MIMD
Associative Systolic
And Neural Intel MT
Architectures (Multi-Threading)
Architectures
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 8
Architecture de base des Processeurs
bus de données 8

Registres 16 bits
Exemple : Accumulateur

(adresses)
PC
8080 (Intel 72) N
SP
8.000 Transistors IX
H
V
ALU
Z
Boîtier 40 broches 16 C
Décaleur
bus d’adresses

Registres 8 bits
(données)
Microprocesseur Mémoire
Code opératoire

Décodage
Opérandes

Exécution
Résultat

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 9

Performances d’un processeur


Temps par tâche = I.C.T
I = 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 + complexes


Architectures 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 10


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 le
déroulement du programme, ce qui n’est pas chose aisée.

Techniques de Prédiction de Branchement :


Statique :
Aucune prédiction (ex. 80486) : 40 % de succès
On prend tout : 60 % de succès
Prédiction rétrograde (ex. PA RISC) : 65 % de succès
Le compilateur positionne un bit (ex. RIDGE) : 75 % de succès
Dynamique :
même comportement (ex. AMD-K5) : 80 % de succès
Branch History Table (ex. PPC-604, Pentium) : > 85 % de succès

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 11

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 structures
superscalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de
1 à 2 unités de calcul flottant fonctionnant en parallèle

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 12


Séquencement des instructions
• Exécution séquentielle
Fetch Décod Mem Exec 1 instruction/4 cycles

Fetch Décod Mem Exec

• Exécution « pipelined »
Fetch Décod Mem Exec
1 instruction/cycle
Fetch Décod Mem Exec

Fetch Décod Mem Exec

Fetch Décod Mem Exec

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 13

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
Tampon
Registre

Registre
Registre
Registre

H H H H H
Opérateur arithmétique Opérateur arithmétique
combinatoire pipeline
Fmax = 100 MHz Fmax = 200 MHz

Exemple : le Pentium 4 possède 20 niveaux de pipeline, ce qui permet d’obtenir


une fréquence d’horloge de 2 GHz.

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 14


Pipeline
Analyse de conflits dans le pipeline
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 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.
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,

Load A M I E T
Load B M I E T Exécution séquentielle
Add C A+B I E W
Store M C I E T
Branch X I E
temps
14

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 15

Pipeline
Conflits de ressources
Accès simultanés à une même ressource, par exemple la mémoire. Phases d’attente (Wait)
Load A M I E T

Load B M I E T

Add C A+B w ait w ait I E W

Store M C I E T

Branch X I E
temps
8

Load A M I E T
Load B M I wait E T
Add C A+B I wait E W
Store M C I E T Séparation des mémoires
Branch X I E programme et données
temps (architecture Havard)
8

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 16


Pipeline
Dépendances de données

Load A M I E T

Load B M I E T

Add C A+B I E W

Insertion d’une instruction NOP Load A M I E T

Load B M I E T

NOP I E

Add C A+B I E W

Store M C I E T

Branch X I E
temps
7

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 17

Pipeline
Conflits de contrôle

Liés aux instructions de branchement :


l’adresse de l’instruction n’est connue qu’à la fin
de la phase d’exécution de l’instruction de branchement

Load A M I E T
Load B M I E T
NOP I E

Insertion Add C A+B I E W


d’une instruction NOP Store M C I E T
Branch X I E
NOP I E
X : Instruction suivante I E
temps
7
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 18
Mise en œuvre des
structures accélératrices
Pour profiter pleinement des structures superscalaires et pipeline, c’est à dire sans
temps 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 fonction
des 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 19

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 octets


Optionnel
Préfixe Préfixe Préfixe Préfixe Code Op. Mode @ Déplacement Valeur
Instr. taille @ taille Op. @ segment Immédiate
0 ou 1 0 ou 1 0 ou 1 0 ou 1 1 0, 1 ou 2 0, 1, 2 ou 4 0, 1, 2 ou 4

CS, DS, ... , GS


Entier signé
16 bits (8086) ou 32 bits (386)
Contient l’octet SIB:
20 bits (8086) ou 32 bits (386) Scale,
ex. : Repeat
Index,
Base
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 20
Processeurs CISC (Intel Pentium)
64
Tampon de 256 Cache
Décodage préchargement instructions
Adresses
ROM 32
microcode

Contrôleur de bus
Unité de Tampon d’@
contrôle branchements Contrôle
32

Registres entiers Registres


flottants Données
64

Pipe Pipe
U V FPU 32
Cache
32 données

•Sorti en 1993 •Caches L1 (I + D) intégrés


•Superscalaire x2 (+ flottant) •Bus x2 (64 bits)
•Pipeline x5 •3,1 millions de transistors

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 21

Processeurs CISC (Intel Pentium)


Gestion Pipeline/Superscalaire

8 niveaux de pipeline :
U V FPU Limitations :
PF PF Prefetch
D1 D1 D1 Décodage - partage des ressources
D2 D2 D2 Lecture Registres - synchronisation de pipelines
EX EX EX Lecture Registres
WB WB X1 Exécution
X2 Exécution
WF Arrondi et Écriture Registres
ER Rapport à l’UC
Exemples :
instructions d’E/S NP
Il faut que les instructions soient «pairables» : ADC — ADD with Carry PU
Entiers : ADD — Add UV
NP — Non pairable, doit être exécuté sur l’unité U IMUL — Signed Multiply NP
PU — Pairable si assigné à l’unité U LEA — Load Effective Address UV
PV — Pairable si assigné à l’unité U Jcc — Jump if Condition is Met PV
UV — Pairable sans condition
Flottants : FADD — Add FX
FX — Pairable avec U ou V FDIV — Divide FX
NP — Non pairable FIADD — Add Integer NP
FSIN — Sine NP

Le Pentium est le dernier « vrai » processeur CISC d’Intel


Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 22
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

Exemple : (@mem_2) = RA + (@mem_1)

CISC RISC

Add @mem_1,RA,@mem_2 Load @mem_1,RB


Add RA,RB
Store RB, @mem_2

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 23

Processeurs RISC
Instructions
Format des instructions Alpha 21264 :
6 5 5 4 7 5
Instructions de type registre-registre Code op. S1 S2 0 code op.(ext) D
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

6 5 8 1 7 5
Instructions de type registre-immédiat Code op. S1 Constante 1 code op.(ext) D

6 5 5 16
Instructions d'accès mémoire Code op. S/D Rbase Déplacement

6 5 21
Instructions de branchements Code op. Rbase Déplacement

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 24


Processeurs RISC
Pipeline
Processeur MIPS Processeur SPARC

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 25

Processeurs RISC
Gestion des registres
Nombre élevé de registres internes Limiter les échanges avec la mémoire
( SPARC : 520 registres)
Fenêtres de registres Renommage des registres

Instruction
Adresse logique

Table de
correspondance

Registres supplémentaires utilisés


lors de dépendances de données.

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 26


Architecture Alpha 21264
FETCH MAP QUEUE REG EXEC DCACHE
Stage: 0 1 2 3 4 5 6
Branch Int Int Reg Exec
Predictors Reg Issue File Sys Bus
Map Queue (80) Exec
Addr
(20) 64 bit
L1 Bus Cache Bus
Reg Data Inter-
80 in-flight instructions
Exec 128 bit
File Cache face
plus 32 loads and 32 stores Addr
(80) 64KB Unit Phys Addr
Next-Line Exec
Address
2-Set 44 bit

L1 Ins. 4 Instructions / cycle


Cache FP ADD
64KB FP Reg
FP File
Div/Sqrt
2-Set Issue Victim
Reg (72) Buffer
Queue FP MUL
Map
(15) Miss
Address

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 27

Processeurs Pseudo-CISC
(Intel P6)
Top Ten des instructions x86 :
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 !


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 28
Processeurs Pseudo-CISC
(Intel P6)

Fetch/ I Cache Cache


Decode Fetch
Level 1 Level 2 Pentium Pro (1995)

Bus Interface Unit


Unit (8 kOctets) (256 kOctets)

Adresses
Dispatch/ 36
Instruction Load Bus Externe
Execute L2 Out-of-order core
Pool
Unit Contrôle (dispatch/exec)
D Cache
Level 1 MOB
(8 kOctets)
Données BIU
Retire 64 DCU
Store
Unit MIU
In-order front end IFU AGU
(Fetch/Decode) R
S IEU
BTB
FEU
ID MIS
ROB
•Exécution spéculative (désordre) RAT RRF
•Cœur RISC
•Cache L2 sur 2ème puce In-order back end
(Instruction Pool/Retire)

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 29

Pentium 4 (2000) : Architecture


256 bits Dynamic Branch
Instruction TLB
System Core Clock Predictor : 4096 entries
Bus
Instruction Decoder
Bis
Interface Trace Cache
Unit Execution Trace
Micro Code 12.000 µOps Branch Prediction
- ROM / 4096 entry TLB
64 bits Seq.
100 MHz Allocate Ressources / Rename Registers
Quad
Pumped Integer/FP µOp Queue Memory µOp Queue
3,2 Go/s
Integer Schedulers FP Schedulers
Slow Int Fast Int Fast Int Memory FP Gen FP Mem

Integer Register File + ByPass FP Register File

Slow ALU 2xALU 2xALU 2xAGU 2xAGU


Cache FP Store Fmul SSE/
Complex Simple Simple Store Load MMX
L2 FP Move FAdd SSE2
Instr. Instr. Instr. @ @

256 bits Core Clock Cache L1 Données (8kB)


HardWare PreFetch Double Port, 4 way
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 30
Processeurs Pentium : Pipeline
Architecture P5 (Pentium)
1 2 3 4 5 (Limite : 233 MHz)
Prefetch Decode Decode Exec Wrtbck

Architecture P6 (Pentium Pro, PII, PIII)


1 2 3 4 5 6 7 8 9 10
fetch fetch Decode Decode Decode Rename ROB rd Rdy/Sch Dispatch Exec (Limite : 1 GHz)

Architecture NetBurst (Pentium 4) (Introduction à 1,4 GHz)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
TC Next IP TC fetch Drive Alloc Rename Queue Sch Sch Sch Dispatch RF Exec Flags Br Ck Drive

Vitesse élevée, mais besoin d’une prédiction efficace des


branchements
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 31

Pentium 4 : Déroulement global


45 Go/s
L2 Cache
System Interface

AGU
3,2 Go/s
BTB AGU
Integer RF

L1 D-Cache & TLB

ALU
ALU
Schedulers
Rename/Alloc
Trace Cache
BTB & I-TLB

ALU
µOp Queue
Decoder

3 3 ALU

Fms
FP RF

Hardware Prefetch Fop 22 Go/s


Deep Buffering
ROM

Etages Pipeline 1-4 5 6-8 9 10-12 15-16 17 - 20


13-14

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 32


Architecture SIMD
Mise en parallèle de processeurs élémentaires (PE) traitant la même instruction
sur 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, il


reste à les alimenter à un débit suffisant !
Que faire en cas de branchement conditionnel ?

Add r0, mem[x]

Instructions
pc adresses
séquencement

Mémoire de PEi PEi+1 PEi+2


Unité de

programme PE mem

mem

mem
ALU ALU ALU
Horloges

Contrôleur spécialisé Retour pour contrôle de séquencement

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 33

Architecture SIMD
Princeton 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 34


Architecture SIMD
Réseau à couplage fort

Réseau à passage de messages

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 35

Extensions SIMD
« multimédia »
Applications Multimédia :
Données :
Vidéo : 8 bits
DCT : 16 bits Les processeurs traitent des données
Audio : 16 bits sur 32 bits et ils y accèdent sur 64 bits
Traitement :
Opérations parallèles (RVB)
Petites boucles

Systèmes existants :
MMX : Intel ‘ 1996
MVI : DEC-Alpha ‘ 1996
3Dnow : AMD ‘ 1998
SSE : Intel ‘ 1999
Altivec : Motorola ‘ 2000
SSE2 : Intel ‘ 2000

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 36


Extensions SIMD
(MMX)
Formats de données 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 bits
Comparaison : 6 instructions Égalité/Supérieur (8, 16 et 32 bits)
Conversion : 9 instructions
Logique : 4 instructions
Décalage : 16 instructions Arithmétique et Logique (8 à 64 bits)
Transfert : 4 instructions
Contrôle : 1 instruction

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 37

Extensions SIMD
(Arithmétique MMX)

a3 a2 a1 $FFFF a3 a2 a1 $FFFF
+ + + + + + + +
b3 b2 b1 $8000 b3 b2 b1 $8000

a3+b3 a2+b2 a1+b1 $7FFF a3+b3 a2+b2 a1+b1 $FFFF


PADD[W] : Wrap-around Add PADDUS[W] : Saturating Arithmetic

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 38


Architectures VLIW
VLIW : Very Long Instruction Word
Le processeur exécute de longues d’instructions contenant plusieurs
instructions élémentaires ; un descripteur est associé pour faciliter
le parallélisme des opérations (branchement conditionnel ou existence
de dépendances.

Descripteur
Instructions

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)

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 39

Architectures VLIW
VLIW : 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 source Compilateur Code machine Matériel


original séquentiel

Code parallèle
Code parallèle

Unités d’exécution multiples


Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 40
Architectures VLIW
Parallélisme Explicite (EPIC)
• Le compilateur expose, améliore et exploite le parallélisme du
programme source et le rend explicite dans le code machine

Code source Compilateur Code machine


original parallèle

« Expose »

« Améliore » « Exploite »

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 41

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 Mtransistors
733 - 800 MHz 130 W
Cache L1 : 16 + 16 kOctets
Cache L2 : 96 kOctets
Interface pour cache L3 (< 4MOctets)

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 42


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 bits
permet de faciliter le parallélisme des opérations :
Instruction Slot 2 Instruction Slot 2
Instructions Instruction Slot 2 Template

Bundle de 128 bits

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 43

Itanium : Instructions

opcode PR GPR GPR GPR

6 bits – Registres tournants 7 bits - Registres généraux

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 44


Itanium : Instructions

Note : le double colonnage indique la présence


d’un test conditionnel ou de dépendances

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 45

Itanium :
Gestion des branchements

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 46


Itanium
L1 Instruction Cache and
ITLB
Fetch/Pre-Fetch Engine IA-32
Branch
Instruction Decode
Prediction 8 bundles
Queue &
Control
9 issues Port B B B M M I I B B

Register Stack Engine / Re-Mapping


L2 Cache

Branch & Predicate

L3 Cache
128 Integer Registers 128 FP Registers
Scoreboard, Predicate

Registers
NaTs, Exceptions

Branch Integer
Dual-Port
&

ALAT
Units L1
MM Units Floating
Data
Cache Point
Floating
Point
Units
& Units
TLB SIMD
FMAC
SIMD
FMAC

Bus Controller

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 47

Itanium 2
Mc Kinley Madison

Itanium (2000) Itanium 2 (2003) Itanium 2 (2004)


Nom (projet) Mc Kinley Madison
Unités entières (IEU) 4 6 6
Bus 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 µm
Fréquence (cœur) 800 MHz 1 GHz 1,5 GHz
Puissance (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 bits
Cache L2 (Taille/latence/accès) 96 kO / 12 / 64 bits 256 kO / 5 / 128 bits 256 kO / 5 / 128 bits
Cache L3 (Taille/latence/accès) Externe / 20 / 64 bits 3 MO / 12 / 128 bits 6 MO / 14 / 128 bits
Transistors (hors caches) 25 Millions 25 Millions
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 48
Transistors (total) 25 Millions 221 Millions 410 Millions
Crusoe de Transmeta (2000 -)
But : Réaliser un processeur compatible X86
aussi performant que les architectures Intel
consommant de 3 à 30 fois moins
utilisant moins de silicium (70 %)
Constat :
La gestion du code CISC x86 est de plus en plus lourde à gérer
L’exécution dans le désordre augmente la complexité de l’architecture
Les performances sont étroitement liées à la prédiction de branchement

Moyen :
Architecture VLIW simple (128 bits)
compatibilité x86 assurée par logiciel
gestion de l’alimentation
gestion de la fréquence d’horloge

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 49

Crusoe de Transmeta (2000 -)

Utilisateur Applications x86

Environnement x86 Système d ’exploitation x86


OS (Windows, Linux, …)

Bas niveau BIOS x86

Logiciel Code Morphing


Environnement Crusoe
Matériel Processeur VLIW

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 50


Crusoe de Transmeta

Processeur x86 Processeur Crusoe


Instruction Instruction
X86 Instruction

X86 Instruction
Decode Decode
Translation

Translation
Cache L1

Cache L1
Execution Execution
Units Units

Branch Register Instruction


Predict Rename Reorder Branch Register Instruction
Predict Rename Reorder

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 51

Structures Multiprocesseurs
(Alpha EV7/21364)

Address In
16 L1
Address Out R
Miss Buffers A
M
B
64K Icache L2 Memory U
S
21264
Cache Controller
Core N
Network S
E
Interface W
I/O
64K Dcache
16 L1
Victim Buf 16 L2
Victim Buf

Processeur RISC intégrant un réseau de communication rapide (10 GOctets/s)

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 52


Structures Multiprocesseurs
(Alpha EV7/21364)

M M M M
EV7 EV7 EV7 EV7
IO IO IO IO

M M M M
EV7 EV7 EV7 EV7
IO IO IO IO

M M M M
EV7 EV7 EV7 EV7
IO IO IO IO

Configuration multiprocesseurs avec mémoire distribuée

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 53

Marché des microprocesseurs

Calculatrices
4 bits Jeux vidéo
µsystèmes

8 bits Systèmes programmés


Microcontrôleurs (carte à puce)
16 bits Systèmes embarqués (ABS, Injection)

32 bits Micro-ordinateurs

Stations de travail,
64 bits PlayStation

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 54


Evolution des performances
des µP/Ordinateurs
10000
Performance (Mflop/s)

Cray T90
Cray Y-MP Cray C90
Supers
1000 Cray 2
Alpha
Cray X-MP RS6000/590
100
Alpha
RS6000/540
Micros
Cray 1S
i860
10 R2000

1
80387
0.1 6881
8087 80287
0.01

98
86

92
94
0
2

88
90

19 6
8
8

9
19

19
19
19
19

19
19

Janvier 2004
19 Architectures Avancées des Ordinateurs ; J. Weiss 55

Puissance consommée
par les microprocesseurs

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 56


Générations technologiques

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

Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 57