220
1 ARPO Architectures des processeurs superscalaires, VLIW et optimisations

ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

1

ARPO

Architectures des processeurssuperscalaires, VLIW et optimisations

Page 2: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

2

L’interface logiciel / matériel

transistor

micro-architecture

jeu d’instructions (ISA)

compilateur

langagelogiciel

matériel

Page 3: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

3

Jeu d’instructions (ISA)

� C’est l’interface matériel / logiciel� Exemples

� Intel x86 (1979)� MIPS , SPARC (milieu années 80)� Alpha (début années 90)

� Les ISA évoluent lentement, par ajouts successifs� il faut avoir de bonnes raisons pour lancer un nouveau jeu

d’instructions• plus de raisons pour les processeurs enfouis : applications

spécifiques, densité du code, consommation électrique, ...

Page 4: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

4

Microarchitecture

� Vision macrocospique de l ’implémentation du matériel:� pas besoin de savoir comment fonctionne un transistor !!

� Mais comprendre pourquoi un programme séquentiel (ensémantique), lisant ses données et instructions dans unemémoire répondant en 100 ns peut exécuter 4 instructionstoutes les 500 ps

Page 5: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

5

Contextes des processeurs hautesperformances

� Processeurs à usage général� serveurs, ordinateurs de bureau, ordinateurs de poche

...� exécute tous types d’applications

� Processeurs « enfouis »� téléphone, télévision, voiture ...� application spécifique� processeur spécialisé ou dérivé d’un processeur à

usage général

Page 6: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

6

Besoins en performances

� Performance:� améliorer le temps de réponse => interactivité� applications scientifiques� bases de données� traitement du signal� multimédia� …

� Pseudo-loi vérifiée dans l ’histoire de l’informatique:

Tout gain en performance génère de nouvelles applications qui génèrent de nouvelles demandes en performance

Page 7: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

7

Comment améliorer la performance ?

transistor

micro-architecture

jeu d’instructions (ISA)

compilateur

langage

écrire un meilleuralgorithme

optimisations ducompilateur

améliorer l’ISA

meilleure micro-architecture

nouvelletechnologie

Page 8: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

8

Où doit porter l’effort ?

compilateur ISA micro-architecture

processeur usage général

processeur enfoui

+ + + + + ++ ++ + + + +

Processeur usage général ISA préexistant (exemple: Intel x86)

compatibilité binaire: la nouvelle génération de processeur doit pouvoir exécuterles codes exécutables sur les anciennes générations

Processeur enfouiattention au coût du processeurcompromis performance / consommation électrique

Page 9: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

9

Qu’est ce que la performance ?

� Choisissez votre point de vue !

� Débit d’exécution: faire plus de travail utile pendant un temps donné� serveurs� environnement multiprogrammé

� Temps d’exécution : faire un travail donné dans un temps plus court� point de vue de l’utilisateur

� Faire un travail en un temps déterminé: temps réel, une fois l’objectifrien ne sert d’aller plus vite� consommer moins, circuit plus petit, ..

Page 10: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

10

Quelques métriques

Fréquence CPU f : fréquence de l’horloge interne du processeur

dépend de la technologie et de la micro-architecture

Cycle CPU: T = 1 / f

Nombre moyen d’instructionsexécutées par cycle cycles de totalnb

exécutées nsinstructiod' totalnb=IPC

Page 11: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

11

pour l’architecte, à application, jeux de données, ISA et compilateurfixés,

+ fréquence fixée: Instruction par Cycle (IPC)

MIPS / megaflops

MIPS =

f⋅= IPCMIPS

nombre moyen de millions d’opérationsvirgule flottante par seconde

Utilisé pour le calcul numérique intensif

megaflops =

nombre moyen de millions d’instructionsexécutées par seconde

Page 12: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

12

Comparer des machines différentes !?

Solution 1 : temps CPU

Les MIPS n’ont aucune signification ici car les ISA sont différents

Solution 2 : utiliser une machine de référence

référenceréférencerelatif MIPSonaccélératiMIPS ×=

Exemple: VAX MIPS

Page 13: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

13

Accélération locale / globale

Un programme passe 50% du temps d’exécution dans du calculen virgule flottante, et supposons qu’on multiplie par 10 lesperformances du calcul en virgule flottante. Quelle estl’accélération globale ?

tttt2011

201

21 =+=′

81.11120 ==

′=

ttaglobale

Page 14: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

14

Accélération locale / globale (2)

supposons qu’on multiplie par 1.5 les performances du calcul enentier et par 4 les performances en virgule flottante. Quelle estl’accélération globale ?

tttt2411

41*

21

32*

21 =+=′

18.21124 ==

′=

ttaglobale

Page 15: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

15

Accélération locale / globale (3)

tttt50069

5049*

101

501 =+=′

24.769

500 ==′

=ttaglobale

Un programme passe 98 % du temps d’exécution dans du calculen virgule flottante, et supposons qu’on multiplie par 10 lesperformances du calcul en virgule flottante. Quelle estl’accélération globale ?

Page 16: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

16

Loi d’Amdahl

tfractionta

fractiont

tta

amélioréelocale

amélioréeglobale

)1( −+=

′=

locale

amélioréeaméliorée

globale

afractionfraction

a+−

=)1(

1

Page 17: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

17

Que dit la loi d’Amdhal

Il faut optimiser d’abord le cas le plus fréquent

Mais aussi optimiser tous les composants

Page 18: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

18

Programmes de test

� Programmes « standards » (benchmarks)� exemple 1 : SPEC CPU2000

• SPEC int : compression de données, compilateur, interpréteur,synthèse d’image, analyseur grammatical, jeu d’échec,conception de circuits ...

• SPEC fp : physique, maths, chimie, météo ...� Exemple 2 : TPC (Transaction Processing Performance)

• base de données multi-utilisateurs• sollicite les entrées-sorties

� Programmes spécifiques

Il faut choisir les programmes de test

appropriés à l’utilisation envisagée ...

Page 19: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

19

Évaluer / analyser les performances

� L ’utilisateur lambda: mesures de temps d’exécution� Comprendre le temps d’exécution: instrumentation

� quelle partie du code contribue le plus au temps d’exécution ?� code instrumenté = code original + code supplémentaire permettant de

récupérer de l’information à l’exécution (exemple: adresses mémoire)� exemples d’outils: Prof, Pixie, Salto, EEL, Atom, …

� Compréhension fine: utiliser les compteurs matériels du processeur� compte certains évènements

� Définition de nouvelles architectures� simuler l’exécution au lieu d’exécuter réellement� l’ISA simulé peut ne pas être celui de la machine sur laquelle on simule� Exemples de simulateurs: Simplescalar, Shade, SimOS, Impact ...

Page 20: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

20

N’oubliez pas

Pour comprendre l’architecture,il faut une vision minimale du contexte technologique

mais aussi économique

Contexte technologique =

Cible mouvante

Contexte économique

« Intel est le plus fort »

Page 21: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

21

« Loi » de Moore

� Le nombre de transistors sur un micro-processeur double tous les 18 mois� 1972: 2000 transistors (Intel 4004)� 1979: 30000 transistors (Intel 8086)� 1989: 1 M transistors (Intel 80486)� 1999: 130 M transistors (HP PA-8500)

� Les performances des processeurs doublent tous les 18 mois:� 1989: Intel 80486 16 Mhz (< 1inst/cycle)� 1993 : Intel Pentium 66 Mhz x 2 inst/cycle� 1995: Intel PentiumPro 150 Mhz x 3 inst/cycle� 06/2000: Intel Pentium III 1Ghz x 3 inst/cycle� 09/2002: Intel Pentium 4 2.8 Ghz x 3 inst/cycle

Page 22: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

22

Utilisation des transistors: évolution

années 70

Étoffer l’ISA pour diminuer lenombre d’instructions exécutées + +

+ de mémoire on-chip (cache,registres)pour diminuer les accès externes

années 80

+ +

années 90

+

+ ++

Exécution superscalaire + +

+

RISC

8 => 16 => 32 bitscalcul flottant

32 => 64 bitsmultimédia

+

Page 23: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

23

Quelques repères (sept. 2002)

� Fréquence : 900 Mhz à 2.8 Ghz� Durée d'une opération ALU: 1 cycle� Durée d'une opération flottante : 3 cycles� Lecture/écriture dans un registre : 1-3 cycles

� souvent un chemin critique ...� Lecture/écriture du cache L1: 1-2 cycles

� dilemme taille-associativité-temps d ’accès

Page 24: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

24

Quelques repères (2001)

� L'intégration : 0.18µ, 0.130µ, 0.90µ� 10 à 20 millions de transistors de logique� Le reste en mémoire cache: jusqu'à 100 millions de

transistors� 20 à 75 Watts

� > 120 W (Itanium 2)� 400 à 600 broches

� > 1000 bientôt

Page 25: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

25

Quelques repères (sept. 2002)

� Processeurs x86 pour PC:�bas de gamme: Duron 1.3 Ghz, 64 $�haut de gamme: Athlon 2.25 Ghz, 397 $

� La mémoire DDR DRAM : 0.20 $ le Mbyte

Page 26: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

26

Compatibilité binaire

� Une donnée économique : 500 000 000 dePCs !�un nouveau jeu d'instructions: RISQUÉ !!

� Le monde change (peut-être):�les processeurs enfouis, le multimédia�l'IA 64 arrive�x86: mutation vers 64 bits (AMD ) ?

Page 27: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

27

Architecture 32 ou 64 bits

� Architecture 32 bits: l'adresse virtuelle est de 32 bits� PowerPC, x86,

� Architecture 64 bits : l'adresse virtuelle est de 64bits.� MIPS III, Alpha, Sparc V9, HP-PA 2.x, IA64� En 2005: les jeux ? Word ?

� LE MOUVEMENT EST INEXORABLE:� x86 la rupture ou x86-64 ?

Page 28: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

28

L’angoisse de l’architectedu processeur haute performance

� 400 mm2 de silicium� 3 générations de technologie en avant� que faire pour obtenir les performances ?

� Pipeline� Parallélisme d’instruction� L’exécution spéculative� La hiérarchie mémoire

� demain, le parallélisme de processus

Page 29: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

29

Le pipeline

Page 30: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

30

Principe de base

� Faire se chevaucher l'exécution de plusieurs instructions.

� On décompose l'exécution d'une instruction en plusieursphases successives

Page 31: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

31

Pipeline (2)� On ajuste les phases pour qu'elles aient la même durée :

� 1 cycle de la machine

� L'exécution d'une instruction est allongée� Difficile de découper en phases de même durée� Le découpage entraîne un surcoût :

• traversée de buffers

� Mais une instruction peut être lancée tous les cycles.

Page 32: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

32

Exemples de pipeline

� MIPS R3000 :

� MIPS R4000 :

Page 33: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

33

Exemples de pipeline (2)

� DEC 21064 :� 2 étages d’exécution

� Cypress Sparc� étages EX et MEM confondus

� Aujourd’hui:� Pentium 4: 18 cycles avant l ’étage EX !

Page 34: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

34

Le débit d'un pipeline

� Hypothèse on peut séquencer une instruction par cycle� débit maximum d'1 instruction par cycle� Exemple : 5 étages

� Sur une machine non pipeline : 300 ps, 400 ps, 300 ps ,200 ps, 400 ps

• Durée totale = 1600 ps� Sur une machine pipeline : cycle 500 ps = 400 ps + 100 ps

(pour les buffers)• Speed-up potentiel : 3.2

� Limite en multipliant les étages du pipeline : overhead desbuffers

Page 35: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

35

Le pipeline: les limites

� Actuellement:� 1 cycle = traversée de 12 à 15 portes logique:

• en gros le temps d ’une addition 64 bits

� Demain:� 6 à 8 portes� Déjà sur le Pentium 4:

• ALU séquencée au 1/2 cycle:– temps d’une addition 16 bits

Page 36: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

36

Attention aux exécutions longues

� Sur les entiers :� multiplication : 5-10 cycles� division : 20-50 cycles

� Sur les flottants :� Addition : 2-5 cycles� Multiplication: 2-6 cycles� Division: 10-50 cycles

Page 37: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

37

Vie d’une instruction (MIPS 4000)

� 1. IF (Instruction Fetch).� Lecture du cache instructions et lecture du TLB

� 2. IS (Instruction Fetch, Second Half)� Fin de lecture du TLB et du cache instructions

� 3. RF (Register File):� Décodage de l’instruction , lecture des opérandes,

vérification des étiquettes� 4.EX (Exécution).

� Exécution des opérations registre-registre ou� calcul de l’adresse virtuelle pour les Load/Store ou� calcul de l'adresse virtuelle de la cible pour les

branchements

Page 38: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

38

Vie d ’une instructionsur le MIPS R4000 (2)

� 5 DF (Data Fetch, First Half):� accès au cache de données, et parallèlement, et

traduction de l'adresse virtuelle en adresse physique� 6. DS (Data Fetch, Second Half):

� fin de l'accès au cache et de la traduction d'adresses.� 7. TC (Tag Check) :

� comparaison de l'étiquette du cache avec l'adressephysique du TLB pour déterminer si il y a eu un défaut decache ou non.

� 8. WB (Write Back) :� Ecriture du résultat de l'instruction dans un registre (s'il y a

lieu).

Page 39: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

39

Les aléas dans les processeurspipelines

� Parfois (souvent), l'instruction suivante ne peut pas êtreexécutée tout de suite :� Ces situations sont appelées aléas

� Aléas de structure : conflits de ressources� Aléas de données : dépendances de données� Aléas de contrôle : les branchements

Page 40: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

40

Que faire sur les aléas?

� Gestion par matériel :� détecter les aléas et les éviter en retardant l'avancée de

l'instruction amont en attendant la résolution de l'aléa.

� Gestion par logiciel :� retarder les instructions pour éviter les dépendances, ..

Page 41: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

41

Petite digression:De l'avantage d'un jeu d'instruction

régulier pour le pipeline

Page 42: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

42

RISC versus CISC

� Entre 1960 et 1980, la complexité des opérations qui pouvaientêtre implémentées en matériel a augmenté

� les jeux d'instructions ont suivi le même chemin.

Page 43: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

43

Complex Instruction Set Computing(CISC).

� But: une instruction machine = une instruction langage de hautniveau� VAX, Intel 80x86, Motorola 680x0, IBM 360

� sur le VAX, une opération arithmétique (2 opérandes, unrésultat) :� opérandes et résultat soit en registre, soit en mémoire� 8 cas� Le calcul de l'adresse pour chacun des accès à la mémoire peut être :

• absolu : adresse codée dans l'instruction• basé : registre + immédiat• indexé : registre + registre• indirect : lue en mémoire

Page 44: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

44

CISC (2)

� Codage compact des applications:� peu demandeur en lecture sur les instructions� Tailles d'instructions variables (1 à 15 octets sur le xxx86)� Temps d'exécution variables et occupation chaotique des

ressources:• une même instruction peut occuper 6 fois la mémoire

sur le VAX.

Page 45: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

45

De la difficulté du pipeline sur les CISC

� Taille variable des instructions� pour connaître l'adresse de l'instruction suivante, il faut

d'abord décoder l'instruction courante.� Le séquencement des instructions entraîne de nombreux

conflits de ressource :� plusieurs utilisations de la même unité fonctionnelles

� Pipeline difficile, mais pas impossible :� Le coût de la logique de contrôle est relativement important

Page 46: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

46

RISC : Reduced Instruction SetComputer

� Concept mis en forme par Patterson et Ditzel (1980), préexistaitbien avant.

� Principes :� Une seule taille d'instruction : 32 bits en général , simplifie

le décodage� Architecture load/store : pas d'opérations avec opérandes

ou résultat en mémoire� Modes d'adressage simples : basé et indexé� Instructions simples registre-registre : opérandes dans les

registres et résultat dans les registres� Registres indifférenciés

Page 47: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

47

RISC (2)

� Code relativement volumineux :� C= A+B :

• load A,R2• load B,R3• add R3, R2, R1

� pour une même application:� 1.5 à 2 fois le volume que pour un CISC.

� Avantage : se pipeline bien !� Lecture de l'instruction et décodage en temps constant.� Occupation d'une unité fonctionnelle à un instant précis

Page 48: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

48

La saga RISC

� 1980 : Patterson et Ditzel formalisent le concept� 1982 : IBM 801, RISC I et RISC II� 1987-88 : MIPS R2000, Sparc� 1990 : IBM Power, Intel i860� 1992- : DEC Alpha, TI Supersparc, MIPS R4000, R8000 et

R10000, HP8000, Ultrasparc , ..

� Intel xxx86 fait de la résistance !

Page 49: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

49

Jeux d'instructions des processeurs RISCPrincipes communs

� Une seule taille d'instruction : 32 bits en général� simplifie le décodage et le calcul de l'anticipation de

l'adresse suivante� Architecture load/store� Modes d'adressage simples : basé et indexé� Instructions simples registre-registre

� Presque consensus:� 32 registres� Bloc de registres distincts pour les flottants

Page 50: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

50

RISC et Instructions multimédia:une entorse à la simplicité

� Principe général:

� Les instructions multimédia:

N’implémenter une instruction que si le compilateur est capable de la générer.

On « packe » plusieurs mots de 16 bits dans un registre de 64 bits. On exécute 4 fois la même instruction en //.

Aucun compilateur ne les gère correctement

Page 51: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

51

Retour au pipeline

Page 52: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

52

Les aléas de données

� L’exécution pipeline d'une séquence d'instructions doitproduire le même résultat qu'une exécution séquentielle.

� 3 types d'aléas peuvent se produire: i précède j� RAW (Read After Write) :

• j utilise un résultat de i comme opérande:– le résultat doit être écrit par avant que j ne le lise.

� WAR (Write After Read) :• j écrit un résultat dans une source de i

– i doit avoir lu sa source avant que j ne l'écrive� WAW (Write After Write) :

• i et j écrivent leurs résultats à la même place– j doit écrire son résultat après i

Page 53: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

53

Read After Write sur les processeursRISC� Le problème:

� Une solution: mais perte de 2 cycles !

Page 54: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

54

De l'utilité des mécanismes de bypass

� Le résultat en sortie de l'ALU est en fait disponible plus tôt :� On peut l'intercepter avant l'écriture dans le fichier de registres

Page 55: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

55

Aléas Read After Write sur lesprocesseurs RISC

� Le délai de chargement mémoire

Page 56: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

56

Et comment s'en affranchir

� a= b+c ; d= e+f

Page 57: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

57

Les aléas WAR et WAW sur lesprocesseurs RISC

� Il n'y en a jamais !� Les opérandes sont lus dans les registres dès le décodage.� Les aléas Write After Write sur les processeurs RISC

� Il ne peut y en avoir que si les écritures ne sont pas faites à uncycle précis du pipeline:� en principe, il n'y en a pas.� Sauf que … (multiplication, division, flottants)

Page 58: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

58

Les aléas de données sur lesprocesseurs CISC

� Tous les types d'aléas sont possibles :� Read After Write� Write after Read :

• le nombre des opérandes d'une instruction est trèsélevé.

� Write after Write :• la durée d'exécution des instructions est tout à fait

variable� Pipeliner l'exécution de plusieurs instructions sur un processeur

CISC requiert beaucoup de précautions.

Page 59: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

59

RISC versus CISC

� RISC :� mécanismes de contrôle plus simple� possibilité de réordonnancement de code� RISC : coût et temps de conception plus réduit.� RISC : taille du composant plus réduit (à performance et

technologies équivalentes)

� CISC : volume de code plus réduit

Page 60: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

60

Les aléas de contrôle

� L'instruction est un branchement conditionnel ou non� quelle instruction exécuter ?

� Le nombre de cycles perdu sur les branchements peut êtretrès important.

Page 61: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

61

Les dépendances de contrôle

� 15 à 30% des instructions sont des branchements.� La cible et la direction d'un branchement sont

connues très tard dans le pipeline. Au plus tôt :� Cycle 7 sur le DEC 21264� Cycle 11 sur l'Intel Pentium III� Cycle 18 sur l ’Intel Pentium 4

� multiplié par X inst./ cycles !� Pas question de perdre tous ces cycles !

Page 62: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

62

Le problème des sauts

En moyenne, un saut se produit toutes les 7 instructions

Pipeline de plus en plus long: > 10 étages (Intel P6, Ultrasparc 3, AMD Athlon…), et même ~20 étages (Intel Pentium 4)

)1(77

−+ N inst / cycleIPC = 0

0.25

0.5

0.75

1

1 2 3 4 5 6 7 8

N

IPC

N= étage auquel les sautssont exécutés

Page 63: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

63

Le problème des sauts (2)

En moyenne, un saut se produit toutes les 7 instructions

Pipeline de plus en plus long: > 10 étages (Intel P6, Ultrasparc 3, AMD Athlon…), et même ~20 étages (Intel Pentium 4)

)1(77

−+ N inst / cycleIPC = 0

0.25

0.5

0.75

1

1 2 3 4 5 6 7 8

N

IPC

N= étage auquel les sautssont exécutés

Page 64: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

64

La prédiction de branchements

prédiction PC

chargement

décodage

exécution

écriture registre

accès cache

correction simal prédit

On essaie de prédirel ’adresse de la prochaine

instruction

Page 65: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

65

Types de branchements

� Branchement inconditionnel� le saut est systématique� saut relatif

• adresse de saut statique, connue à la compilation• exemple: PC du branchement + offset immédiat

� saut indirect• adresse de saut dynamique, lue dans un registre• retours de fonction, appels de fonctions, switch case, pointeurs de

fonctions …� Branchement conditionnel

� dépend de l’évaluation d’une condition: le branchement peut être pris (onsaute) ou non pris (on passe à l’instruction suivante)

� comparaison entre 2 registres ou comparaison d’un registre avec 0� en général, adresse de saut statique� boucles, if…then…else, switch case, ...

Page 66: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

66

Quelques statistiques ...

� En moyenne 1 instruction sur 5 est un branchement (conditionnel ou inconditionnel)� les blocs de base sont petits (certains font 1 ou 2 instructions)� il est souhaitable de pouvoir prédire un branchement par cycle

� 75 % des branchements sont conditionnels� il est important de bien prédire les branchements conditionnels� 40 % des branchements conditionnels sont non pris

• prédire toujours non pris 60 % de mauvaises prédictions� 10 % des branchements sont des retours de fonction� 0 à 10 % des branchements sont des appels de fonction indirects

� plus nombreux dans les codes orientés objet� Restant = branchements inconditionnels relatifs

Page 67: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

67

Les branchements dans le pipeline

Adresse de saut relatif

Branchementconditionnel exécuté

Saut indirect exécuté

prédiction

chargement

décodage

exécution

écriture registre

accès cache

Branchement identifié

Page 68: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

68

Prédiction de branchementdynamique

� Garder un historique des derniers passages etutiliser cet historique pour anticiper le branchement

� Mise en œuvre: une table lue en même temps que lecache d’instructions

� On prédit:� la cible et la direction des branchements� les retours de procédures� les branchements indirects

Page 69: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

69

Les étapes de la prédiction

� Prédire qu’à l’adresse indiquée par le compteur de programme se trouve une instructionde branchement

� Identifier le branchement� branchement conditionnel ou inconditionnel ?� appel de fonction ?� retour de fonction ?

� Prédire l’adresse de saut� Pour les branchements conditionnels, prédire si le branchement est pris (1) ou non pris

(0)� En cas de mauvaise prédiction, profiter du temps de réparation du pipeline pour corriger

la table de prédiction

Page 70: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

70

Table de prédictions

prédiction

chargement

décodage

exécution

écriture registre

accès cache

Est-ce un branchement ?Si oui : info table= (type, 0/1,adresse saut) PC <== F (PC, info table)Si non : PC <== PC + 4

PC suivant

PC courant

Mise à jour si mauvaise prédiction

Page 71: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

71

Identifier le branchement

BTB (Branch Target Buffer)

étiquettes cibles

PC

= ?

Cible

Page 72: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

72

Utilisation du BTB

� On stocke dans le BTB les sauts inconditionnels et les branchements pris� La présence d’une entrée dans le BTB entraîne un saut à l’adresse indiquée par le BTB� En l’absence d’une entrée BTB, on suppose que l’instruction n’est pas un branchement

ou est un branchement non pris� En cas de mauvaise prédiction, corriger le BTB

� si on a « manqué » un saut, rajouter l’entrée manquante� si on a prédit un branchement pris alors qu’en réalité il est non pris, enlever

l’entrée du BTB� si on a sauté à une mauvaise adresse, corriger l’adresse de saut dans le BTB

Page 73: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

73

Direction d ’un branchementconditionnel

� Il est plus important de prédire la direction que la cible d ’unbranchement conditionel:

� saut relatif: cible recalculée au décodage

� direction connue: à l ’exécution

Page 74: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

74

Prédiction comme la dernière fois

for (i=0;i<1000;i++) { for (j=0;j<4;j++) { : corps de la boucle }}

Branchement mal prédit à lapremière et à la dernière itération

prédictiondirectioneffective

11101110

1110111

1 0

mal préditmal prédit

mal préditmal prédit

Page 75: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

75

Le compteur 2 bits

0123

0000

11 1 1

prédit 0prédit 1

� 4 états 2 bits� la prédiction est obtenue en lisant le bit de poids fort du compteur� il faut 2 mauvaises prédictions consécutives pour changer la prédiction en partant d’un état « fort » (0

ou 3)� Se trompe seulement à la dernière itération d ’une boucle

Page 76: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

76

Efficacité du compteur 2 bits

for (i=0;i<1000;i++) { for (j=0;j<4;j++) { : corps de la boucle }}

Branchement mal prédit à ladernière itération seulement

� Le compteur 2 bits divise par 2 le nombre de mauvaises prédictions sur lesbranchements conditionnels� 10 % de mauvaises prédictions sur les conditionnels

Page 77: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

77

Compteur 2 bits : mise en œuvre

� Première possibilité : rajouter un compteur 2 bits dans chaque entrée du BTB

� si un branchement est prédit pris mais qu’en réalité il est non pris, on décrémentele compteur et on laisse l’entrée dans le BTB

� Deuxième possibilité : stocker les compteurs 2 bits dans une table spécifique, la BHT(branch history table)� MIPS R10000, IBM Power3, PowerPC, AMD Athlon, HP PA-8500� pas de tags, juste 2 bits dans chaque entrée

• la BHT peut comporter plus d’entrées que le BTB• taille: 256 à 2k entrées

� quand le compteur passe de l’état 2 à l’état 1, l’entrée dans le BTB n’est plusnécessaire

� Autre avantage: plus important de prédire direction que la cible

Page 78: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

78

BHT

poids forts poids faibles

BHT

2n compteurs2 bits

n bits

PC du branchementconditionnel

Le bit de poids fort ducompteur donne la prédiction

Interférences entre branchements:

2 branchements en conflit pourune même entrée.

Page 79: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

79

Prédire les retours de fonction

� Utiliser une pile d’adresses de retour� pour chaque call exécuté, on empile l’adresse de retour� pour prédire un retour, au lieu d’utiliser l’adresse fournie par le BTB,

dépiler l’adresse au sommet de la pile et sauter à cette adresse� Peut être utilisé aussi pour prédire les retours d’interruptions et d’exceptions� Si pile suffisamment profonde, 100 % de bonnes prédictions

� UltraSparc-3 (8 entrées), AMD Athlon (12 entr.), Alpha 21264 (32 entr.)� ne pas abuser de la récursivité

� Principale « difficulté »: identifier les appels et les retours� utiliser le code-op (ex. appel = saut avec lien)� le compilateur peut aider le processeur

• exemple: hint (Alpha), jr $31 (MIPS) ...

Page 80: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

80

Mauvaises prédictions: 10 % c’est trop

� Les processeurs actuels sont superscalaires� chaque étage du pipeline peut traiter plusieurs instructions

simultanément� Le pipeline d’instructions est long� Exemple

� 4 instructions par cycles• IPCidéal = 4

� 12 cycles de pénalité si branchement mal prédit• 1 conditionnel pour ~ 8 instructions, soit 80 instructions par

mauvaise prédiction• IPCmaxi = 80 / (80/4 + 12) = 2.5

� On sait faire mieux: la prédiction à 2 niveaux d’historique

Page 81: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

81

Inter-corrélations

B1: SI cond1 ET cond2 …

B2: SI cond1 …

Supposons les 4 cas équiprobables.

La probabilité de bien prédire B2 en se basant sur soncomportement passé vaut 50 %

cond1 cond2 cond1 ET cond2

FFVV

FVFV

FFFV

Supposons maintenant qu’on connaisse le résultat de B1 au moment de prédire B2Si cond1 ET cond2 vrai (probabilité 1/4), prédire cond1 vrai 100 % de succèsSi cond1 ET cond2 faux (probabilité 3/4), prédire cond1 faux 66 % de succèsOn peut prédire B2 avec un taux de succès de 1/4 + 3/4 * 2/3 = 75 %

Remarque: si on permute B1 et B2, c’est moins bien ...

Page 82: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

82

Auto-corrélation

for (i=0; i<100; i++)

for (j=0;j<4;j++)

: corps de la boucle

111011101110

Si les 3 dernières directions sontdes 1, prédire 0, sinon prédire 1

100 % de succès

Page 83: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

83

Prédicteur à 2 niveaux d’historique

� Premier niveau d’historique� historique global pour détecter les inter-corrélations

• un seul registre à décalage de L bits contient les directions prises par les Lderniers branchements rencontrés

� historique local pour détecter les auto-corrélations• un registre à décalage de L bits pour chaque branchement• contient les L dernières directions prises par ce branchement• prédit bien les boucles faisant au plus L itérations

� Deuxième niveau d’historique� chaque branchement utilise plusieurs compteurs 2 bits, stockés dans une PHT

(pattern history table)� utiliser la valeur d’historique local ou global pour sélectionner le compteur dans la

PHT

Page 84: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

84

Prédicteur à historique global

PC du branchement conditionnel

PHT

2n compteurs2 bits

histo L bits

n bits

xor

prédiction 0/1

Prédiction insérée dansl’historique pour prédirele branchement suivant

Appliquer une fonction dehachage entre l’adresse etl’historique (par ex. OUexclusif bit à bit)

Page 85: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

85

Prédicteur à historique local

2m historiqueslocaux de L

bits

PHT

2n compteurs 2 bits

histo L bits

Prédiction 0/1

NB: temps d’accès pluslong (2 accès chaînés)

PC du branchement conditionnelm bits

Page 86: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

86

Hors contraintes matérielles ...

� Les prédicteurs à deux niveaux permettent de diviser par 2-3 le nombre demauvaises prédictions� typique: 5 % de mauvaises prédictions

• voire moins sur les codes « flottants »� Historique global

� efficace sur les codes « entiers »� Historique local

� plus efficace sur les codes « flottants »• beaucoup de boucles, comportement régulier

Page 87: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

87

En pratique ...

� Beaucoup d’interférences de conflits dans la PHT� « paradoxe » de l’anniversaire:

• soit une classe de 23 élèves, la probabilité d’avoir 2 élèves quifêtent leur anniversaire le même jour est de 50 %

� l’espace de la PHT est très mal utilisé

� Quelle longueur d’historique ?� sur les « grosses » applications, trop d’interférences de capacité,

on préfère un historique court (voire une BHT)� sur les « petites » applications, on préfère un historique long

� Historique local ou historique global ?� ça dépend de l’application

Page 88: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

88

Prédicteurs hybrides : principe

Prédicteur 1

Prédicteur 2

Prédicteur N

Méta-prédicteur

PC dubranchement

••

Prédiction

Quelles étaient lesprédictions correctes ?

Page 89: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

89

PHT 4kcompteurs

2 bits

Le prédicteur de l’Alpha 21264

1k historiqueslocaux de 10

bits

PHT 1kcompteurs 3

bits

Méta 4kcompteurs

2 bits

historiqueglobal 12 bits

PC du branchement

prédictiontotal: 29 Kbits

Page 90: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

90

Exécution conditionnelle

saute à SUITE si (r1 >= r2)r4 = mem(a)r4 = r4 + 1mem(a) = r4SUITE:

r3 = r1 - r2r4 = mem(a)r5 = r4+1r4 = r5 si (r3<0)mem(a)=r4

r3 = r1 - r2p1 = (r3<0)r4 = mem(a) si p1r4 = r4+1 si p1mem(a)=r4 si p1

a = a + (((x - y)>>31)&1) ;

code initial, avec un branchement move conditionnel prédication

if (x<y) { a++;}

prédication sans supports ?

Attention au surcoût en instructions

Page 91: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

91

Prédiction de branchement

� 1992: Alpha 21064, schéma à 1 bit� 1993: Pentium, schéma à 2 bits� 1995: PentiumPro, historique local� 1998: Alpha 21264, prédicteur hybride

� 2000: Pentium 4 secret !� Alpha 21464 (arrété en juin 2001):

� global, mixe 4 longueurs d ’historique� 352 Kbits au total

Page 92: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

92

Prédiction de branchement:tendance générale

� Schémas de plus en plus complexes� Découplage de la prédiction de l'adresse et

de la direction� Pile de retour pour les procédures� Support dans les jeux d'instructions pour

l’exécution spéculative:�CMOV�prédicats de l ’IA64

Page 93: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

93

Le parallélisme d’instructions

Page 94: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

94

Toujours plus de puissance : les processeurssuperscalaires, VLIW et EPIC

� Processeurs RISC jusqu'en 1991 :� objectif 1 instruction par cycle

� mais comment aller plus vite :� Diviser le temps de cycle et multiplier les étages :

superpipeline� Lancer plusieurs instructions par cycle :

• qui contrôle:– Le matériel: superscalaire– Le compilateur: VLIW (Very Long Instruction Word)– Les 2: EPIC (Explicitly Parallel Instruction

Computing)

Page 95: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

95

Les processeurs superscalaires

� le droit de lancer les instruction par cycle est géré à l'exécutionpar matériel:� aléas de ressource : e.g. partage d'une même unité fonctionnelle� aléas de données : ne pas lancer 2 opérations dépendantes� aléas de contrôle : attention aux branchements

� permet la compatibilité binaire d'une génération deprocesseurs à l'autre:� du processeur RISC (1 instruction par cycle) au processeur

superscalaire (x instructions par cycle)� TOUS LES PROCESSEURS (GENERAUX) ANNONCES

DEPUIS 1993 SONT SUPERSCALAIRES

On va en parler (beaucoup)

Page 96: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

96

VLIW: Very Long Instruction Word

� Parallélisme contrôlé par logiciel:� Le compilateur est en charge de contrôler les unités

fonctionnelles:• gère les aléas de contrôle, de données et de ressources

� Problème: l’absence de compatibilité binaire

� Non utilisé pour les processeurs généraux, mais populairepour les calculateurs enfouis

Page 97: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

97

Architecture VLIW (Very LongInstruction Word)

� Une unité de contrôle émet une instruction longue par cycle.

� Chaque instruction longue initialise simultanément plusieurs opérationsindépendantes:� le compilateur garantit que les instructions d ’une même instruction

longue sont indépendantes.� Ie compilateur garantit que les instructions lancées sont

indépendantes de toutes les instructions encore « en vol »� Il n’y a pas de matériel pour imposer le respect des dépendances

Page 98: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

98

Architecture VLIW

UF

Unité decontrôle

UF UF UF inte

rfac

e m

émoi

reBanc de registres

igtr r6 r5 -> r127, uimm 2 -> r126, iadd r0 r6 -> r36, ld32d (16) r4 -> r33, nop;igtr r6 r5 -> r127, uimm 2 -> r126, iadd r0 r6 -> r36, ld32d (16) r4 -> r33, nop;

Page 99: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

99

VLIW: format des instructions

� Le format des instructionscomporte un grand nombre de bitspour contrôler directement l'actiondes multiples unités fonctionnelles.

� Pb: trop de NOPs� Multiflow 27 UFs 1024 bits de

large

� Un groupe d’instructions RISC

� Plus d ’unités fonctionnellesque d ’instructions codées dansun mot VLIW

À l’origine Aujourd’hui

Les instructions sont, en général,compressées en mémoire, mais

expansées dans le cache instruction

Page 100: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

100

Un exemple de de jeu d’instructions:Trimedia

� Les instructions:� 5 opérations par instruction� la plupart des opérations sont de la forme:

IF rc opcode op1 op2 -> op3

avec rc la garde, op1, op2 et op3les opérandes.Si rc contient « vrai » alors op3 est modifié.Les gardes s ’applique à l ’ensemble des opérations saufiimm et uimm (load de constante)

� 128 registres généraux de 32bits (r0==0, r1==1)

Page 101: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

101

Gardes

� Intérêt : éliminer des branchements

if (x==3) y=y1+y2;if (x==3) y=y1+y2;

cmp r11,3bne suiteadd r2 r3 r4

suite:

cmp r11,3bne suiteadd r2 r3 r4

suite:

iseq r11 3 r10IF r10 add r2 r3 r4

iseq r11 3 r10IF r10 add r2 r3 r4

ALU

r2 r3r10

r4

?

Page 102: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

102

« Slots » des instructions

� Les opérations ne peuvent être affectées indifféremment dansn’importe quels emplacements (slots) de l’instructions

� Un slot « contrôle » un sous ensemble des unités fonctionnellescapable d ’exécuter un sous ensemble des opérations del ’architecture

FU Type Slot 1 Slot 2 Slot 3 Slot 4 Slot 5CONST X X X X XALU X X X X XDMEM X XBR. X X X....

Page 103: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

103

Ordonnancement statique

� latence d’une multiplication = 3 cycles

VLIW

add r1 r2 r9

nop

add r3 r4 r5

mul r6 r7 r3

RISC-CISC

add r1 r2 r9

add r3 r4 r5

mul r6 r7 r3

3 cycles

Page 104: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

104

slot 1 slot 2 slot 3 slot 4 slot 51 add r1,r2,r3 add r5,1,r62 ld [r3],r4345 add r4,4,r4 jmp suite

Ordonnancement statique

add r1,r2,r3ld [r3],r4add r5,1,r6add r4,4,r4jmp suite...

add r1,r2,r3ld [r3],r4add r5,1,r6add r4,4,r4jmp suite...

Ordonnancement

ld [r3],r4

Page 105: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

105

Et aussi les branchements « retardés »

� On n ’exécute les branchements qu ’au cycle EX du pipeline:� pas de contrôle = pas de prédiction de branchement� pas de contrôle = pas d ’annulation d ’instruction en cours

� Les slots entre le branchement et la connaissance de sonrésultat doivent être remplis avec des instructionsindépendantes du branchement: « branch delay slots »

Aussi utilisés dans les premiers ISA RISC (Sparc, MIPS)

Page 106: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

106

Branchements retardés

� Sur le TM1000 le branch « delay slot » des branchements estde 3 cycles:

5 x 3 + 4 = 19 instructions à trouver !

b suiteadd r1,r2,r3…

suite:

b suiteadd r1,r2,r3…

suite:

add r1,r2,r3b suitenop...

suite:

add r1,r2,r3b suitenop...

suite:

Page 107: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

107

VLIW: architecture pour lesapplications embarquées

� Pas de possibilités de compatibilité binaire d ’une génération àl ’autre

� Efficace sur les codes réguliers (boucle), peu efficace sur lesapplications general-purpose (trop de branchements)

� « Cost-effective »:� pas de contrôle:

• moins de surface de silicium• moins de consommation• temps de conception et mise au point réduit

Page 108: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

108

Superscalaire : les problèmes

� Parallélisme d'instructions limité:� 3 à 8 instructions par cycle� Le fichier de registres:

• le nombre de ports augmentent : chemin critique

� La fourniture des instructions

� La gestion des dépendances de données

� Les branchements.

Page 109: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

109

//isme d ’instruction et« general-purpose »

Les processeurs superscalaires

Page 110: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

110

superscalaire « naturel » →→→→ 1995

� les unités fonctionnelles existantes dans les microprocesseursne sont pas dupliquées:� ALU� Unité flottante� Accès à la mémoire� Unité de séquencement

� → DEC 21064, IBM Power, Power601� Certaines unités fonctionnelles dupliquées :

� TI SuperSparc : 2 ALUs� MIPS R8000, IBM Power2 : 2 opérateurs flottants, 2 accès

au cache

Page 111: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

111

Le degré superscalaire

� Difficile à définir:� « performance qu’on est certain de ne pas

dépasser »� 4 inst / cycles sur presque tous les processeurs

existants� 6 inst / cycles sur Itanium� 8 inst / cycles sur le (ex-futur) Alpha 21464:

� projet abandonné en juin 2001� 16 -32 en 2012 ? :=)

Page 112: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

112

Exécution dans l’ordre ou dansle désordre

� Respecter l’ordre du programme ou non:� Ah! Si toutes les latences étaient connues

statiquement,…� Les « partisans » de l ’ordre:

� UltraSparc 3, Itanium� Le compilateur doit faire le travail

� Les « partisans » du désordre:� Alpha 21264, Pentium III et 4, Athlon, Power

(PC), HP-PA 8500

Page 113: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

113

Pourquoi l’exécution dansl’ordre

� simple à mettre en œuvre� moins de transistors� moins de temps de développement� horloge rapide (discutable)

� pipeline moins profond� le compilateur « voit » tout:

� la micro-architecture� le programme

Même philosophie que VLIW

Page 114: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

114

Le compilateur voit « tout »

� Au sein d’un bloc de base !� (bloc de base: suite d ’instructions non séparée par un

branchement ou une étiquette)� le compilateur est capable de réordonnancer les

instructions pour les lancer en //

� On peut appliquer des techniques logicielles pour dépasser lafrontière d’un bloc de base:� déroulage de boucle, pipeline logiciel, hyperbloc, ..

Page 115: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

115

Pourquoi l’exécution dans ledésordre

� l ’ILP statique est limité dans les codes nonréguliers

� le compilateur ne « voit » pas tout:�latences inconnues à la compilation�(in)dépendances inconnues à la

compilation:• sur la mémoire

� pas besoin de recompiler�hum !!

Page 116: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

116

Le compilateur ne « voit » pas tout

� Latences inconnues à la compilation:� accès à la mémoire: 1 ou 10 ou 100 cycles

� (In)dépendances mémoires:� Le compilateur ne peut prendre que des décisions

conservatrices

� « Perdu » après quelques branchements:� explosion combinatoire� explosion de la taille de code

Page 117: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

117

Exécution dans le désordre (1)

� Principe :�exécuter les instructions dès que :

opérandes disponibles et unitésfonctionnelles disponibles

� Mise en œuvre :�une grande fenêtre d'instructions où on

choisit les instructions exécutables (80 surAlpha 21264, plus de 100 sur Pentium 4)

Page 118: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

118

Exécution dans le désordre (2)

� Le séquencement consiste à :� Lire les instructions en //� Marquer les dépendances� Renommer les registres� Dispatcher vers les unités fonctionnelles� Attendre ..

� La gestion des dépendances prend de la place etdu temps : pipeline profond

Page 119: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

119

Renommage de registres:ou comment enlever les fausses dépendances (1)

� Aléas WAW et WAR sur les registres peuvent être évitées parrenommage dynamique des registres.

Page 120: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

120

Renommage de registres:ou comment enlever les fausses dépendances (2)

� Plus de registres physiques que de registres logiques dansl ’ISA

� Maintenir une liste de registres physiques disponibles

� Affecter un nouveau registre physique à chaque nouvelleécriture de registres

� Libérer les registres après leur dernière utilisation

Page 121: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

121

Renommage de registres:ou comment enlever les fausses dépendances (3)

1:Op R6, R7 -> R52:Op R2, R5 -> R63:Op R6, R3 -> R44:Op R4, R6 -> R2

1:Op L6, L7 -> res12:Op L2, res1 -> res23:Op res2, L3 -> res34:Op res3,res2 -> res4

4 new free registers

+Old map table

1:Op P6, P7 -> RES12:Op P2, RES1 -> RES23:Op RES2, L3 -> RES34:Op RES3,RES2 -> RES4

New map table

Page 122: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

122

Dépendances mémoires

� pour exécuter une écriture sur la mémoire, on abesoin de la donnée à écrire

� en dehors de toute information, toute lecturemémoire est potentiellement dépendante de touteécriture mémoire précédente

� solution (provisoire):� Calcul des adresses dans l'ordre du programme� Dépassement des écritures par les lectures avec

détection des aléas

Page 123: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

123

Dépendances mémoires (2)

� Solution provisoire:� Exécution optimiste dans le désordre� Réparation si la dépendance existe� Pb: coût de la réparation

� Solution émergente: la prédiction de dépendancessur la mémoire� Moshovos et Sohi, Micro'30, décembre 1997� Chrysos et Emer, ISCA ’26, juin 1998

Page 124: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

124

Et les interruptions ?

Page 125: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

125

Les interruptions

� L ’exécution d ’un processus peut être interrompue par un événement externe(préemption du système, signal extérieur, ..) ou interne (traitement d ’uneexception).

� Mais le résultat du programme ne doit pas (en général ) dépendre dutraitement de l’interruption:� Le traitement d ’une interruption nécessite de pouvoir à tout instant être

capable de définir et sauver un état cohérent de la machine:• Program Counter• Registres• Mémoire

� Sur les processeurs exécutant dans l ’ordre, relativement simple mais sur lesprocesseurs exécutant dans le désordre !!

Page 126: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

126

Exécution dans le désordre:Savoir « défaire »

� Mauvaise prédiction de branchement� Mauvaise anticipation d'indépendance� Interruption, exception

� Valider dans l’ordre du programme� Ne rien faire de définitif dans le désordre

Page 127: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

127

Savoir « défaire »

� Une copie du fichier de registres est miseà jour dans l'ordre du programme

� ou� Une <<carte>> registres logiques-registres

physiques est sauvegardée

� Les écritures en mémoire sont faites à lavalidation

Page 128: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

128

Organisation des unités fonctionnelles

Page 129: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

129

Unités fonctionnelles centralisées:une fenêtre d’instruction unique

Register File

Functional Units X instructions choisies à l’exécution dans toute la fenêtre

Pb majeur: implémenter le choix X parmi N

Page 130: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

130

Design en clusters: N fenêtresd ’instrustions

C0 C1 C3C2

Les instructions sont réparties entre les clustersdans les étages amont

+ Sélection des instructionssimplifiée

- équilibrage de charge

Page 131: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

131

Semi-unifié: fenêtres d ’instructions partype d ’instructions

Ld/St ALU1 BRALU2

Page 132: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

132

Petit retour sur le pipeline

Page 133: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

133

Le pipeline: de plus en plusprofond

� Plus on stresse l'horloge, moins on en fait en uncycle.

� 1 cycle = traversée d’une ALU + rebouclage� Communications intra-CPU de + en + longues:

� plusieurs cycles pour traverser le composant� Le contrôle est de + en + complexe:

� plus d’instructions en //� plus de spéculation

Page 134: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

134

Quelques profondeurs depipeline

� 12-14 cycles sur l’Intel Pentium III� 10-12 cycles sur l’AMD Athlon� 7-9 cycles sur l’Alpha 21264� 9 cycles sur l’UltraSparc

� 10 cycles sur l’Itanium (juin 2001)� 20 cycles sur le Pentium 4 (fin 2000)

� Et ça ne va pas s’améliorer !!

Page 135: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

135

Retour au jeu d’instruction

Page 136: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

136L ’IA64: un jeu d’instruction« general-purpose »pour le //isme d’instructions

� parallélisme explicite entre les instructions (à laVLIW)

� Support pour l’exécution spéculative

� Compatibilité assurée par le matériel

Page 137: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

137

Le jeu d’instruction EPIC IA64(Explicitly Parallel Instruction Computing)

� EPIC IA64 =� RISC� + plus de registres (128 entiers, 128 flottants)� + 3 instructions codées en 128 bits� + 64 registres de prédicats� + dépendances gérées par le matériel� + (?) Advanced Loads

� officiellement le compilateur gère le parallélisme d’instructions,� mais la compatibilité est assurée par le matériel

Page 138: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

138

IA 64

� L’angoisse de la page blanche !?� -Support matériel au pipeline logiciel

• Rotating registers: numéro logique de registre calculé ?• Gestion de boucle: compteurs spécialisés ?

� -Fenêtres de registres: à taille variable!� -Pas d’adressage basé� -adressage post-incrémenté� - (?) Advanced Loads

Page 139: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

139

Intel PentiumPro (2, 3) ou comments’abstraire du jeu d’instruction

Page 140: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

140

De la difficulté du superscalaire sur les jeuxd'instruction non réguliers

� Les difficultés liées au jeu d'instructions:

� Taille d'instructions variables (1 à 15 bytes)� Plusieurs occupations successives d'une même ressource� Nombre d'itérations inconnu sur certaines instructions� Temps d'exécution imprévisible pour certaines instructions

Page 141: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

141

Intel PentiumPro: la solution adoptée

� Une constation :� les jeux d'instruction RISC sont plus simples à pipeliner et

exécuter en parallèle

� La solution :� exécuter du "code " RISC !

� Comment ?� Le décodage des instructions est remplacée par une

traduction en pseudo-code RISC

Page 142: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

142

Intel PentiumPro

� MEM + REG → MEM:� 4 microoperations (RISC-like)

� La plupart des instructions sont traduites en 1 à 4microopérations en un cycle

� Certaines instructions ne peuvent pas être traduites en unnombre fixé de microopérations (boucles, instruction flottantestranscendantales , ..) :� traduites en plusieurs cycles

� 3 traducteurs en parallèles (1 complexe + 2 simples)

Page 143: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

143

Intel PentiumPro

� Les microopérations venant de différentes instructions sontexecutées dans le désordre comme sur les processeurssuperscalaires out-of-order RISC�

� renommage de registres� stations de réservations ..� Buffer de réordonnancement� Jusqu'à 5 microopérations par cycle.

Page 144: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

144

Pentium 4 et Trace cache: juste uncoup plus loin

� Pourquoi retraduire les instructions x86 à chaque nouvelleutilisation ?� Perte de temps� Consommation électrique

� Idée simple mais logique:� Mémoriser les µopérations dans un cache: le Trace Cache

Page 145: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

145

Jeu d’instruction: est-ceimportant ?

� 32 ou 64 bits:�vers l’abandon (ou la mutation !) d’x86�AMD x86-64 !

� Les performances:�et x86 ? :=)�en flottant !!�à technologie égale ?

Page 146: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

146

Jeu d’instruction: est-ceimportant (2) ?

� x86: traduction en µOpérations� 4 cycles perdus !� Ou utilisation d’un trace cache

• (on mémorise les µOpérations )� x86 pas assez de registres flottants� Alpha 21264: 2 opérandes 1 résultat

� le + performant des RISCs� Mort commerciale

� Itanium: l’IA 64 dans l’ordre� 800 Mhz en 0.18 µ� Alpha 21164 700 Mhz 0.35µ (1997)

Page 147: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

147

Jeu d’instruction: est-ceimportant (3) ?

� Pour x86 NON:

transistor

micro-architecture

jeu d’instructions (ISA)

compilateur

langagelogiciel

matériel

Traduction en µµµµopérations

Page 148: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

148

Jeu d’instruction: est-ceimportant (4) ?

� IA 64:� Bien pour le calcul régulier� Prochaines implémentations dans le désordre:

• Un grand mystère ?

� Les processeurs enfouis:� minimiser la couche de traduction� taille, consommation, coût de développement

Page 149: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

149

Des erreurs qui ont coûté cher (1)

� L’absence d’accès mémoire octet ou 16 bits sur le jeu Alpha(1992)

� Résultait d ’une mauvaise analyse de l’utilisation des octets

Ecriture d un octet: 4 instructions1. Lecture du mot de 32 bits englobant2. Décalage de l’octet3. Merge de 2 mots de 32 bits4. Ecriture du mot de 32 bits

Page 150: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

150

Des erreurs qui ont coûté cher (2)

� L’introduction du CMOV sur l ’Alpha 21164 (1994):� jolie idée pour un processeur exécutant dans l’ordre

� Seule instruction à 3 opérandes sur l ’Alpha 21264 (1998):

In-Order:If R1=0 then R3=R2Out-of-Order:If P1=0 then newP3= P2 else newP3=OldP3

Page 151: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

151

Pourrait coûter cher:IA64 et l’exécution dans le désordre

� IA64 a été conçu pour l ’exécution dans l ’ordre etessentiellement pour le code régulier:� exécution conditionnelle de toutes les instructions� support spécial pour l’exécution des boucles� fenêtre de registres tournantes:

• le numéro logique du registre est calculé� instructions avec jusqu’à 5 opérandes et 4 résultats

Page 152: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

152

La hiérarchie mémoire

Page 153: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

153

La mémoire

� Plus une mémoire est grande, plus son temps d’accès est long� 3 types de mémoire

� banc de registres• peu d’entrées, temps d’accès court (cycle), plusieurs ports

� mémoire dynamique (DRAM)• mémorisation d’une charge sur une capacité, 1 transistor par bit• grande densité d’intégration (16-64 Mbits)• temps d’accès long: 50-100 ns• utilisé comme mémoire principale

� mémoire statique (SRAM)• mémorisation par bouclage de 2 portes: 1-4 Mbits• cher• temps d’accès court: 5-10 ns

Page 154: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

154

Latence mémoire

� La latence mémoire n’est pas seulement constituée par letemps d’accès DRAM� traduction d’adresse� traverser les broches du processeur et le bus externe� multiplexage si plusieurs bancs mémoires

� Latence mémoire principale: 100-200 ns� à 1 GHz, ça fait 100 à 200 cycles CPU

� problème !!

Page 155: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

155

Les caches

� La mémoire est:� bon marché et lente ou� chère et rapide.

� Les caches : donner l'illusion d'une mémoire globale rapide.

� Principe: utiliser les propriétés de localité temporelles etspatiales des applications

Page 156: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

156

Principes de fonctionnement d'uncache

� Le cache est une petite mémoire rapide dont le contenu est uneimage d'un sous-ensemble de la mémoire.

� Lors d'une référence à la mémoire, la requête est:

� 1.) présentée au cache� 2.) si la donnée absente alors la requête est présentée à la

mémoire principale (ou à un second niveau de cache).

Page 157: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

157

Cache: principe de mise en œuvre

lignes de cacheétiquette (tag) =identificateur de ligne

Load &A

Si l’adresse de la lignecontenant A se trouve dansla table des étiquettes, ladonnée est dans le cache

Espace mémoire

A

Page 158: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

158

De l'importance de la hiérarchiemémoire

� Exemple :� 4 instructions/cycle,� 1 accès mémoire par cycle� 10 cycles de penalité sur le cache secondaire� 100 cycles pour la mémoire� 2% de défauts d'instructions L1, 4% de défauts données

L1, 1 référence sur 4 en défaut sur L2

� Pour exécuter 400 instructions : 520 cycles !!

Page 159: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

159

Transferts mémoire-cache

� Le temps d ’accès à un bloc de K mots:� T = a + (K-1) b

� Le temps d'accès au premier mot est plus long:� envoi de l'adresse + retour� Structure des mémoires RAM dynamiques

� On n'attend pas la fin du transfert complet des mots avantd'utiliser un mot du bloc chargé:� le mot en défaut est en général chargé en premier

Page 160: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

160

Placement des données dans lescaches

� Chaque bloc ne peut être chargé qu'à une seule place dans lecache: cache� DIRECT MAPPED ou à correspondance directe.

� Chaque bloc peut être chargé à n'importe quelle place dans lecache:� FULLY ASSOCIATIVE ou totalement associatif.

� Chaque bloc ne peut être chargé qu'à un nombre limité deplaces (ensemble ou SET):� SET ASSOCIATIVE ou associatif par ensembles.

Page 161: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

161

Cache direct-mapped

Page 162: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

162

Cache set-associatifs

Page 163: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

163

Cache fully-associatifs

Page 164: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

164

Remplacer un bloc

� Lorque l'ensemble est plein, quel bloc rejeter en mémoire ?� RANDOM: les candidats sont choisis de manière aléatoire� LRU: Least Recently Used

� Random:� plus simple à mettre en oeuvre

� LRU:� meilleur en général� effets bizarres

Page 165: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

165

Ecrire

� Toute écriture doit être répercutée dans la mémoire:� Tout de suite: WRITE THROUGH� ou plus tard: WRITE BACK ( quand le bloc est évincé du

cache)� WRITE BACK:

� moins de trafic sur la mémoire� problème de cohérence entre la mémoire et le cache

� WRITE THROUGH:� trafic important vers la mémoire

Page 166: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

166

Quelle taille de bloc ?

� Blocs longs:� bénéficie de la localité spatiale� réduit le nombre de blocs et perd de la place

� Blocs courts:� nombreux défauts sur des blocs contigus

� Expérimentalement :� 16 - 64 bytes pour les caches 8-32 Kbytes

Page 167: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

167

Plusieurs niveaux de caches

� Une hiérarchie de caches:� des capacités de plus en plus grandes� des temps d'accès de plus en plus longs.

� L2 devenu la règle générale:� sur le composant ou sur le même module que le processeur� temps d ’accès: 7-15 cycles

Page 168: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

168

Plusieurs niveaux de cache (2):memoire - processeur - L2

Page 169: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

169

Plusieurs niveaux de cache (3):memoire - L2 - processeur

Page 170: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

170

Problème d’inclusion

� doit-on assurer que toute donnée présente dans le cache depremier niveau est aussi présente dans le cache de secondniveau?� Mémoire - processeur - L2 : non

• L ’architecture des années 90� Mémoire - L2 - processeur : oui

• Aujourd’hui généralisé: le processeur ne voit pas lestransactions sur le bus.

Page 171: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

171

Un défaut de cache n’arrête pas(complètement) le processeur

� Cache non-bloquant:� en présence d’un défaut on envoie la requête vers le niveau

suivant et on continue !

� Préchargement:� on anticipe les prochaines requêtes (par matériel ou par

logiciel)

Page 172: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

172

Quelques paramêtres

� Intel Pentium : 2 * 8K bytes, 2-way, 60 (1993)-233 Mhz (1997)� MIPS R4400 : 16K Inst + 16K data, DM, 100 (1992) 250 Mhz (1996)� Alpha 21164 : 2* 8K (DM) + L2 96 Kbytes (3-way) 266 (1995) Mhz

700 Mhz (1998)� Intel Pentium III: 2* 16K, 4-way, 1 Ghz (2000)+ L2 256-512K-1M� Alpha 21264 : 2 * 64 Kbytes (2-way), 500 Mhz (1997) 1 Ghz (2001)

� Amd Athlon: 2*64K, 2-way, 1,4 Ghz (2001) + 256K L2� Intel Pentium 4: 8K + trace cache + 256K L2, 2 Ghz (2001)

� Intel Itanium: 2 * 16K + 96 K L2 (+ 1-4M L3), 800 Mhz (2001)

Page 173: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

173

Caches primaires:tendance générale

� 1-2 cycles pour lecture ou écriture� multiples accès par cycle� non-bloquant� associatif faible degré

� Restera petit !� Une exception: HP-PA 8500

Page 174: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

174

Caches secondaires : tendancegénérale

� Il n’est plus question de s’en passer !� Généralisation on-chip ou sur le module� Accès pipeliné

� latence courte : 7-12 cycles� bus 128 bits, devrait s’élargir� temps de cycle: 1-3 cycles processeurs

� La contention sur le cache L2 devient un goulotd’étranglement

Page 175: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

175

Mémoire virtuelle

� L ’adresse virtuelle est calculée par le programme. Cette adresse est traduite àtravers une table de pages en adressse physique� permet de faire cohabiter plusieurs processus� permet de « voir » un espace d’adressage plus grand que celui par la

mémoire physique� convertir les adresses logiques en adresses physiques

� en général, combinaison de techniques matérielles et logicielles� l’unité de mémoire sur laquelle on travaille = page mémoire� mécanisme de pagination

• les pages qu’on ne peut pas stocker en DRAM sont stockées surdisque

• on utilise une table des pages pour faire la translation page logique /physique

• pour accéder à une page qui se trouve sur disque, on la recopie enDRAM et on met à jour la table des pages

Page 176: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

176

Pagination

� Tailles de page typiques: 4 Ko-8Ko-64Ko� Table des pages indexée avec le numéro de page logique -> fournit un numéro

de page physique� La table des pages est stockée en DRAM, dans une zone ne nécessitant pas

de translation� exemple: espace logique sur 32 bits, pages 4 Ko (12 bits d’offset), soit 220

pages logiques� Si on devait consulter la table des pages pour chaque accès mémoire, le temps

de traductions serait dominant� On utilise un TLB (translation look-aside buffer)

� TLB = cache de traduction d’adresses intégré sur le processeur� contient un sous-ensemble de la table des pages� typique: 64/128 entrées, fully-associative

Page 177: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

177

TLB

Exemple: adresses logiques 32 bits, pages de 4 Ko, TLB 64 entrées

numéro de page logique offset page12 bits20 bits

64 numéros depages physiques +

qq bits de statut

64 tags =numéros de page

logique

adresselogique

numéro de page physique offset pageadressephysique

12 bits

TLB

Page 178: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

178

Défauts de TLB

� Gestion par matériel (x86) ou logiciel (SparcV9, Alpha, MIPS)� Logiciel: sur un défaut de TLB, une exception est générée� Matériel: déroule un automate

� Servir un défaut de TLB:� le système consulte la table des pages� si la page est présente en mémoire, le système met le TLB à jour

puis rend la main au programme• latence: quelques dizaines à quelques centaines de cycles

� si la page n’est pas présente c’est un défaut de page• latence: centaines de milliers de cycles (accès disque)

Page 179: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

179

Mémoire virtuelle et caches

� adresses virtuelles ou physiques pour l ’accès au cache?� Adresse virtuelle

• pb des synonymes sur les pages accessibles en écriture– des pages virtuelles distinctes projetées sur la même

page physique– plusieurs copies de la même donnée dans le cache

� Adresse physique• accès au TLB avant d’accès au cache ..

� Souvent:• cache L1 données: adresse virtuelle /tag physique• cache L1 instructions: tag physique• cache L2: adresse physique / tag physique

Page 180: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

180

Index virtuel / tags physiques

� Permet l’accès au cache et au TLB en //� lecture du cache avec l’adresse virtuelle� l’accès TLB se fait en parallèle avec l’indexage du cache� la comparaison sur les tags s’effectue avec l’adresse physique

� Chemin critique:� L ’accès au TLB

• besoin de l ’adresse physique pour la comparaison des tags

Page 181: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

181

Adresse physique / Tag physique

� Une petite astuce pour faire la traduction en //:� utiliser l ’offset comme index !

Page 182: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

182

La mémoire principale

� Loin, trop loin du processeur:� 100-150 ns de temps d ’accès� plusieurs centaines d’instructions

� Temps d ’accès:� défaut L1 + logique vers L2� défaut L2 + logique vers le bus mémoire� bus mémoire� composant mémoire� et retour

Page 183: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

183

la mémoire principale sur lebus système

Page 184: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

184

Mémoire principale et débit.

� Problème de débit aussi:� Largeur du bus: 8-16 bytes� Structures des composants mémoires:

• accès séquentiel plus rapide qu ’accès aléatoire� Débit des composants mémoires:

• Entrelacement des bancs (mais plus de logique àtraverser)

� Fréquence du bus:• Seulement une fraction du cycle processeur

Page 185: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

185

Mémoire principale en connexiondirecte

Page 186: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

186

Mémoire principale en connexiondirecte (2)

� Connexion directe:� pas d ’arbitrage� bus courts: fréquences élevées (jusqu à 800

MHz)� utilisation de composants mémoire spécialisés

(Rambus)

� Mais difficile d ’implémenter la cohérence de caches

Page 187: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

187

Un processeur récent: l ’Alpha 21264

(bien documenté par le constructeur !)

Page 188: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

188

l’Alpha 21264

� COMPAQ / DEC� Disponible depuis fin 1998

� Quelques caractéristiques technologiques� transistors : 15 Millions (6 M logique, 9 M caches)� fréquence : 700 MHz (0.25 micron) -> 1 Ghz (0.18 micron)� puissance dissipée : 75 W (2 V)

� Marché visé� stations de travail, serveurs

Page 189: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

189

21264: caractéristiques générales

� adresses logiques sur 64 bits� pipeline de 7 étages pour les instructions de calcul entier� processeur superscalaire out-of-order de degré 4� cache de données 64 Ko 2-way SA write-back (ligne 64 octets)� cache d’instructions 64 Ko 2-way SA (ligne 64 octet)� TLB données et TLB instructions de 128 entrées chacun� bus cache secondaire 128 bits� bus système 64 bits� 4 ALUs et 2 unités flottantes

� 2 des ALUs peuvent calculer les adresses load/store, et 2 load/store peuvent accéderau cache par cycle

� au maximum 6 instructions peuvent s’exécuter simultanément (4 int + 2 flottantes)

Page 190: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

190

21264: disposition sur silicium

cache d’instructionset prédicteur de

ligne

cache dedonnées

D-TLB (dupliqué)contrôlecache

donnéesgén.PCpréd br

div/sqrt

fp add

reg fp

fp mulfp map interface

L2

tamponload/store

I-TLB

tamponamorç

fp

ALU

ALU

ALU

ALU

ROB

tamponamorç

int

int map

regint

regint

bus load/store

Page 191: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

191

Le pipeline du 21264

charg. extrait renom. lance lit reg exec écrit int

lit reg adresse cache 1 cache 2

lit reg FP 1 FP 2 FP 3 FP 4

PC répare

écrit int

écrit fp

pénalité mini si branch mal prédit: 7 cycles

attente éventuelle

calculentier

load/store

calculflottant

lectureligne

extrait bloc/ transit

insert dansfenêtre

1 2 3 4 5 6 7

5 6 7 8 9

5 6 7 8 9 10

load-use: +2 cycleson peutlancer ?

écrit fp

10transit

load-use: +3 cycles

Page 192: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

192

21264: prédiction et chargement

� Étage 0: prédiction de ligne� chaque ligne du cache d’instructions comporte un pointeur vers la prochaine ligne de cache (index et

prédiction de banc 0/1) (accès < 1 cycle)� on commence la prédiction de branchement

• rem: prédicteur hybride pour les conditionnels (cf. transparent 115)� Étage 1: chargement et génération PC

� on charge la ligne prédite à l’étage précédent et les 2 tags ayant le même index que la ligne (cache2-way SA)

� la prédiction de branchement commencée au cycle précédent est utilisée pour générer le PC(complet) du bloc en cours de chargement

� comparaison d’index: si désaccord entre étages 0 et 1, c’est le prédicteur de branchement qui« gagne »: on recharge la ligne (bulle dans le pipeline)

• sauf pour les sauts indirect qui ne sont pas des retours� Étage 2: comparaison du PC avec les 2 tags chargés à l’étage précédent

� 2 bulles si mauvaise prédiction de banc� détection éventuelle d’un cache miss

Page 193: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

193

21264: prédiction et chargement

Cache 2-waySA

préd.ligne

génération PC

compare index

bloc d’instructions

tags bancs0 et 1

prédhyb

préd. ligne tags

compare tags

PC

Bloc BBloc A

préd. br.

Bloc CÉtage 0Étage 1Étage 2

Page 194: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

194

Clusters du 21264

80 registresphysiques (int)

ALU 1 ALU 2

80 registresphysiques (int)

ALU 3 ALU 4

+1 cycle

Page 195: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

195

21264: tampons d’adresses

� En fait, séparé en 2 tampons: un tampon de load et un tampon de store de 32entrées chacun

� Les instructions dans chaque tampon sont ordonnées� on associe à tout load/store une entrée dans le tampon d’adresses

correspondant

� Le tampon de store comporte également les données à écrire� les store peuvent s’exécuter OOO mais écrivent dans le tampon de store� les données du tampon sont recopiées dans le cache au retirement, dans

l ’ordre séquentiel

� L ‘ ordre total des load/store est maintenu par matériel entre les deux tampons

Page 196: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

196

21264: exécuter les load sans attendre

� Les load peuvent s’exécuter dans le désordre vis à vis des store

� Quand un load accède au cache, on consulte en // le tampon de store� si un store plus ancien a écrit à la même adresse, c’est la donnée dans le

tampon de store qui est mise sur le bus et qui est envoyée au load

� Si un store s’exécute et qu’on trouve qu’un load plus récent a déjà accédé à lamême adresse, le load et les instructions suivantes sont effacées du processeurpuis rechargées� comme une mauvaise prédiction de branchement: on essaie d’éviter� une table de 1k * 1 bits, indexée avec le PC du load, permet de prédire si le

load dépend d’un store ou pas� si on prédit qu’il sera dépendant, on attend que tous les store antérieurs au

load soient exécutés

Page 197: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

197

21264: défauts de cache

� 8 défauts de cache de données peuvent être en cours de résolution� Les requêtes peuvent être servies dans le désordre� Sur un miss, la ligne remplacée (si modifiée depuis qu’elle est dans le

cache) est mise dans un tampon de 8 lignes en attente d’écriture versle cache L2

� miss L1 / hit L2:� latence minimum de résolution = 12 cycles (SRAM 6 cycles + 4

cycles de remplissage + 2 cycles pour l ’instruction)� bande passante bus: 16 octets pour 1.5 cycles CPU

� miss L2� latence typique: 160 ns (DRAM 60 ns)

• 96 cycles CPU à 600 MHz� bande passante bus système: 8 octets pour 1.5 cycles CPU

Page 198: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

198

Le monoprocesseur à usage général

Synthèse pour aujourd’hui et problèmes pour demain

Page 199: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

199

Les tendances (1)

� plus d'instructions par cycle ?� au delà d'un bloc de base par cycle ?� 4 en 1990, 6 en 2001� pas beaucoup de changement en apparence

� mais exécution dans le désordre:� de plus en plus de prédictions de branchement et

spéculation sur l ’indépendance des accès mémoires� pipeline de séquencement très long:

� de moins en moins de fonctionalités par cycle� temps de transit proportionnellement + grand� pénalité de mauvaise prédiction de branchement ?

Page 200: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

200

Les tendances (2)

� Caches premier niveau multiport, non-bloquants, accédés en 1-2 cycles:� compromis temps d ’accès, taille, associativité

� Cache second niveau pipeliné non-bloquant :� latence 10-15 cycles� débit 16-32 octets par cycle

� Vers les mémoires en connexion directe

Page 201: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

201

Doubler le degré: pas si simple !

� Problème de performance:� juste pas assez d ’instructions indépendantes� prédicteurs de branchement pas assez précis

� suivant les sources:• 20-50 % de performances en plus

� Problème de mise en œuvre:� ce n ’est pas simplement dupliquer les unités fonctionnelles

Page 202: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

202

Doubler le degré superscalaire (2)

� Unités fonctionnelles� Surface de silicium: 2x

� consommation: 2x

� même latence

� Registres :� Surface de silicium : 8x� consommation: 3-4x� accès plus long

� Cache L1:� 2 fois plus de ports� pb sur surface,

consommation et tempsd’accès

� Réseau de bypass:� multiplexeurs plus larges

>2x� communications plus

lointaines

Page 203: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

203

Le problème des registres

� Besoin d’un registre physique par instruction « en vol »� plus de 100 instructions en vol sur le Pentium 4� 80 sur l ’Alpha 21264

� Besoin de plus de registres physiques quand degrésuperscalaire augmente:� > 256 si degré 8 et pipeline profond

� Organisé en fichier de registres:� physiquement toutes les unités fonctionnelles y lisent leur(s)

opérande(s) et écrivent leur(s) résultat(s)

Page 204: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

204

La surface du fichier de registres

Page 205: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

205

Fichier de registres distribué4 copies identiques32 Watt (x 3.2)5 cycles (+1)256 x 960 w2 x W (x10)

Fichier de registres centralisé40 Watt (x 4)7 cycles (+3)256 x 768 w2 x W (x 8)

Centralisé 4 voies

10 Watt

4 cycles

128 x 192 w2 x W

Degré 8 contre degré 4100nm, 5 Ghz ( 2003-2004)

8 voies

Page 206: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

206

Et demain ?

Page 207: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

207

Que faire avec un milliard detransistors ou plus?

� monoprocesseur + exécution spéculative

� Le parallélisme de processus:�multiprocesseur à mémoire partagée�processeur SMT

Page 208: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

208

Un monoprocesseur +exécution spéculative

� superscalaire 16 ou 32 voies� hyperspéculation:

� branchements, dépendances, données ..

� Les défis:� la qualité de la prédiction� les temps de communication sur le composant� la contention sur les structures:

• caches , registres, ...

Page 209: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

209

Le //isme de processus:à la croisée des chemins

� Le parallélisme « gros grain » arrive sur lecomposant

� Un multiprocesseur on-chip ?• IBM Power 4 ( fin 2001)

� Simultaneous Multithreading ?• Compaq Alpha 21464

– Abandonné en juin 2001• Pentium 4 est SMT

Page 210: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

210

Un multiprocesseur on-chip

� Mettre un multiprocesseur sur un mêmecomposant:�Réplication simple�Partage de cache L2 et de l ’accès

mémoire

� Mais la performance sur un processus ?

Page 211: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

211

multiprocesseur on-chip:IBM Power 4 (2001)

� Marché visé: les serveurs

� 2 processeurs superscalaire 4 voies sur uncomposant:� cache secondaire partagé

� 4 composants sur un même MCM (multichip module)� bande passante énorme sur le MCM

Page 212: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

212

La vision du programmeur

Page 213: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

213

Simultaneous Multithreading(SMT)

� Les UFs d’un processeur superscalairessont sous-utilisées

� SMT:� Partager les UFs d’un processeur superscalaire

entre plusieurs processus� Avantages:

� 1 processus a toutes les ressources s ’il est seul� partage dynamique des structures (caches,

prédicteurs, UFs) quand plusieurs processus

Page 214: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

214

SMT: Alpha 21464(annulé en juin 2001)

� Un processeur superscalaire 8 voies� Performance ultime sur un processus

� Si multiprocessus, 4 processus se partagentles unités fonctionnelles:�Surcoût pour ce partage 5-10 %

Page 215: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

215

La vision du programmeur

Page 216: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

216

Le SMT: les avantages

� Partage dynamique des ressources

� Tolérance à la latence mémoire

� Thread d ’un même programme:� communication ultra-rapide:

• données partagées dans le cache L1 !� Préchargement implicite:

• données, mais aussi instructions et prédiction

Page 217: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

217

SMT: la difficulté

Il faut implémenter un processeur superscalaire très large

Page 218: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

218

Le processeur de l ’an 2010 ?

� Jeu d'instruction x86+ ?�extension pour mode 64 bits

� (Multi ?) Superscalaire 10 voies SMT

� Exécution dans le désordre très aggressive

Page 219: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

219

La vision du programmeur !

Page 220: ARPO - IRISAARPO Architectures des processeurs superscalaires, VLIW et optimisations 2 L’interface logiciel / matériel transistor micro-architecture jeu d’instructions (ISA) compilateur

220

Les grandes questions

� Saura-t-on maitriser la complexitédu design?�Temps de mise au point�consommation électrique

� Qui saura programmer cesmonstres ?