chapitre i architectures avancées des ordinateurs

29
Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 1 Architectures Avancées des Ordinateurs Jacques WEISS Équipe de recherche ETSN Supélec Campus de Rennes [email protected] http://www.rennes.supelec.fr/ren/fi/elec Janvier 2004 Architectures Avancées des Ordinateurs ; J. Weiss 2 Plan du cours Constitution d’un ordinateur Fonctionnement de la mémoire Hiérarchie Caches DRAM, SDRAM, RDRAM, … Mémoire virtuelle Processeur de base Structures accélératrices Prédiction de branchement Superscalaire Pipeline Processeurs CISC Processeurs RISC Processeurs Pseudo-CISC Architectures SIMD Architectures VLIW Structures Multiprocesseurs Évolutions technologiques et tendances

Upload: sofiene-ben-fraj

Post on 03-Jul-2015

281 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre I Architectures Avancées des ordinateurs

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

Architectures Avancéesdes

Ordinateurs

Jacques WEISSÉquipe de recherche ETSNSupélec Campus de Rennes

[email protected]

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

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

Plan du coursConstitution d’un ordinateurFonctionnement de la mémoire

HiérarchieCachesDRAM, SDRAM, RDRAM, …Mémoire virtuelle

Processeur de baseStructures accélératrices

Prédiction de branchementSuperscalairePipeline

Processeurs CISCProcesseurs RISCProcesseurs Pseudo-CISCArchitectures SIMDArchitectures VLIWStructures MultiprocesseursÉvolutions technologiques et tendances

Page 2: Chapitre I Architectures Avancées des ordinateurs

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

Processeur(CPU)

Constitution d’un Ordinateur

Unité decommande

Unitéd’entrée

Unitéde sortie

Registres

ALU

Mémoire

bus d’adresses bus de données

bus

d’entrée

bus de

sortie

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

Technologie des ordinateurs

La machine dont on a besoin coûte toujours $2.000

1983 : IBM-PC/XT : ~2.000 €1987 : IBM-PC/AT : ~2.000 €1991 : IBM-PC/486 : ~2.000 €1997 : IBM-PC/PII : ~2.000 €

2001 : IBM-PC/P4 : ~2.000 €

Loi de Machrone :

Loi de Moore :

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

Page 3: Chapitre I Architectures Avancées des ordinateurs

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

Constitution d’un Ordinateur(suite)

•Le cœur est le PROCESSEUR•Les poumons sont réalisés par la mémoire•les artères sont constituées par des bus de communication

Les performances de l’ensemble sont déterminées par leplus lent des organes ou par les capacités de communicationentre ceux-ci

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

Architectures de Processeurs

ZISC : Zero Instruction Set ComputerAutrement dit : Processeur Câblé (et donc PAS programmé)

CISC : Complex Instruction Set ComputerProcesseur possédant un jeu d’instructions fourni de longueur et de temps d’exécution variables.

RISC : Reduced Instruction Set ComputerProcesseur possédant un jeu d’instructions réduit de longueur et de temps d’exécution fixes

VLIW : Very Long Instruction WordProcesseur traitant des instructions de type RISC regroupées de manière à être exécutées explicitement en parallèle.

Page 4: Chapitre I Architectures Avancées des ordinateurs

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

Architectures de Processeurs(historique)

Les premiers processeurs (apparus au début des années 70) étaient majoritairementbasés sur une approche CISC/Von Neumann avec une architecture mono-bus.

C’est au milieu des années 1980 que sont apparus les premiers concepts RISCpermettant de mieux exploiter la technologie silicium.

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

Les ordinateurs commencent à être confrontés aux limites technologiques depropagation des signaux(vitesse de la lumière : 30 cm/ns) ; pour s’affranchir de ces contraintes, il est impératif d’augmenter la densité d ’intégration.

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

Classification desArchitectures Parallèles

Parallel Architectures (PA)

Function-Parallel Architectures

Process-level PAsInstruction-level PAs Thread-level PAs

Data-Parallel Architectures

DPs ILPs MIMDs

VectorArchitectures

AssociativeAnd Neural

Architectures

SystolicArchitectures

SIMDs

PipelinedProcessors

SuperScalarProcessorsVLIWs Distributed

MemoryMIMD

SharedMemoryMIMD

CMPs

Intel MT(Multi-Threading)

Page 5: Chapitre I Architectures Avancées des ordinateurs

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

Architecture de base des Processeurs

ALU

Accumulateur

NHVZC

Décaleur

8bus de données

Registres 8 bits(données)

PCSPIX

bus d’adresses

16Reg

istr

es 1

6 bi

ts(a

dres

ses)

Mémoire

Code opératoire

Décodage

Opérandes

Exécution

Résultat

Microprocesseur

Exemple :8080 (Intel 72)8.000 TransistorsBoîtier 40 broches

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

Performances d’un processeur

Temps par tâche = I.C.TI = nombre d'instructions/tâche.C = nombre de cycles/instructions.T = temps de cycle.

AMÉLIORATION DES PERFORMANCES

Paramètre I Augmenter le jeu d’instructions du µP ; instructions de + en + complexesArchitectures CISC et VLIW

Paramètre C Nécessite le traitement simultané de plusieurs instructions- structures pipeline,- structures parallèles, superscalaires

Paramètre T Amélioration de la technologie, réduction de la durée des opérations élémentaires- structures Super-Pipeline

Page 6: Chapitre I Architectures Avancées des ordinateurs

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

Prédiction de Branchement

Statique :Aucune prédiction (ex. 80486) : 40 % de succèsOn prend tout : 60 % de succèsPrédiction rétrograde (ex. PA RISC) : 65 % de succèsLe compilateur positionne un bit (ex. RIDGE) : 75 % de succès

Dynamique :même comportement (ex. AMD-K5) : 80 % de succèsBranch History Table (ex. PPC-604, Pentium) : > 85 % de succès

Techniques de Prédiction de Branchement :

Les techniques d’accélération des traitements (pipeline, superscalaire, utilisation des caches) ne fonctionnent bien que pour des exécutions séquentielles des instructions ; en cas de branchement (conditionnel, boucle, interruption), il faut « remettre les pendules à l’heure »(vidage des pipeline, mise à jour des caches, …), ce qui peut être très long !

Ainsi, pour profiter de ces structures accélératrices, il faut être capable de prédire ledéroulement du programme, ce qui n’est pas chose aisée.

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

Architecture des Processeurs(Super-Scalaire)

Dans la recherche de performances de calcul maximales, il peut être intéressant d’intégrer plusieurs unités (N) arithmétiques en parallèle ; ainsi, sous réserve de non-dépendance des données et des ressources, on peut envisager d’exécuter N instructions simultanément.

Registres Registres

Scalaire Super-Scalaire

C’est au début des années 1990 que la technologie a permis d ’intégration de structuressuperscalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de1 à 2 unités de calcul flottant fonctionnant en parallèle

Page 7: Chapitre I Architectures Avancées des ordinateurs

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

Séquencement des instructions• Exécution séquentielle

Fetch Décod Mem Exec

Fetch Décod Mem Exec

Fetch Décod

Fetch

Mem

Décod

Fetch

Exec

Mem

Décod

Fetch

Exec

Mem

Décod

Exec

Mem Exec

• Exécution « pipelined »

1 instruction/4 cycles

1 instruction/cycle

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

Séquencement des instructions(Pipeline - Super-Pipeline)

Le séquencement pipeline permet, dans un cas idéal, d’obtenir l’exécution d’une instruction/cycle mais il peut être intéressant de découper certaines phases pour pouvoir augmenter les fréquences d’horloge ; on parlera alors de structures Super-Pipeline.

10 ns 5 ns 5 ns

Reg

istr

e

H

Reg

istr

e

H

Reg

istr

e

H

Reg

istr

e

H

Tam

pon

H

Fmax = 100 MHz Fmax = 200 MHz

Opérateur arithmétiquecombinatoire

Opérateur arithmétiquepipeline

Exemple : le Pentium 4 possède 20 niveaux de pipeline, ce qui permet d’obtenirune fréquence d’horloge de 2 GHz.

Page 8: Chapitre I Architectures Avancées des ordinateurs

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

PipelineAnalyse de conflits dans le pipeline

Instructions registre-registre:- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; opération arithmétique ou logique entre registres,- W : Mise à jour des registres internes - rangement du résultat.

I E TLoad A M

I E TLoad MB

I E TStore M C

I EAdd C A + B W

BranchX I Etemps

14

Exécution séquentielle

Instructions load/store :- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; calcul de l'adresse mémoire- T : Transfert de la donnée.

Instructions de branchement :- I : Lecture et décodage de l'instruction (Fetch),- E : Exécution de l'instruction; mise à jour de l'adresse de l'instruction suivante,

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

PipelineConflits de ressources

Accès simultanés à une même ressource, par exemple la mémoire. Phases d’attente (Wait)

I E

T

E

I E

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

X

temps

I

I W

E

E

w ait

T

w ait

T

8

I E

T

E

I E

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

Xtemps

I

I W

E

E

wait

T

wait

T

8

Séparation des mémoiresprogramme et données

(architecture Havard)

Page 9: Chapitre I Architectures Avancées des ordinateurs

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

PipelineDépendances de données

I E T

E T

E

I E T

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

Xtemps

I

I

E

EINOP

W

7

I E T

E T

E

Load

Load

A M

MB

Add C A + B

I

I W

Insertion d’une instruction NOP

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

Pipeline Conflits de contrôle

Liés aux instructions de branchement :l’adresse de l’instruction n’est connue qu’à la finde la phase d’exécution de l’instruction de branchement

Insertiond’une instruction NOP

I E T

E T

E

I E T

I

Load

Load

Add

Store

Branch

A M

M

C

B

A + B

M C

X

temps

I

I

E

EINOP

W

7

INOP E

IInstruction suivante EX :

Page 10: Chapitre I Architectures Avancées des ordinateurs

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

Mise en œuvre desstructures accélératrices

Pour profiter pleinement des structures superscalaires et pipeline, c’est à dire sanstemps d’attente (Wait ou NOP), l’idéal est d’ordonner correctement les instructions(Instruction Scheduling) ; ceci peut être fait par :

Le logiciel :un compilateur performant devrait être capable d’optimiser l’agencement des instructions en fonction des ressources matérielles ; ceci n’est hélas pas toujours possible (variétés de processeurs et d ’environnements, système d’exploitation, …)

Le matériel :sur la puce, un système de contrôle peut réorganiser les instructions en fonctiondes disponibilités du moment (exécution dans le désordre ou Out-Of-Order) ; le principe est efficace mais ne peut fonctionner que sur un faible nombre d’instructions.

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

Processeurs CISC (Intel Pentium)

•But : disposer d’un jeu d ’instructions performant pour minimiser la longueur du code

•Particularité d’Intel : la compatibilité ascendante x86 augmente encore la complexité du jeu d’instructions.

instructions sur 1 à 15 octetsOptionnel

PréfixeInstr.0 ou 1

ex. : Repeat

Préfixetaille @0 ou 1

20 bits (8086) ou 32 bits (386)

Préfixetaille Op.

0 ou 1

16 bits (8086) ou 32 bits (386)

Préfixe@ segment

0 ou 1

CS, DS, ... , GS

Code Op.

1

Mode @

0, 1 ou 2

Contient l’octet SIB:Scale,Index,Base

Déplacement

0, 1, 2 ou 4

Entier signé

ValeurImmédiate0, 1, 2 ou 4

Page 11: Chapitre I Architectures Avancées des ordinateurs

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

Processeurs CISC (Intel Pentium)

Con

trôl

eur

de b

us

Adresses

Contrôle

Données64

32

32

64Cache

instructions256Tampon de

préchargementDécodage

Tampon d’@branchements

Unité decontrôle

ROMmicrocode

Registres entiers

PipeU

PipeV

Registres flottants

FPU 32 Cachedonnées32

•Sorti en 1993•Superscalaire x2 (+ flottant)•Pipeline x5

•Caches L1 (I + D) intégrés•Bus x2 (64 bits)•3,1 millions de transistors

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

Processeurs CISC (Intel Pentium)Gestion Pipeline/Superscalaire

8 niveaux de pipeline :U V FPUPF PF PrefetchD1 D1 D1 DécodageD2 D2 D2 Lecture RegistresEX EX EX Lecture RegistresWB WB X1 Exécution

X2 ExécutionWF Arrondi et Écriture RegistresER Rapport à l’UC

Il faut que les instructions soient «pairables» :Entiers :

NP — Non pairable, doit être exécuté sur l’unité UPU — Pairable si assigné à l’unité UPV — Pairable si assigné à l’unité UUV — Pairable sans condition

Flottants :FX — Pairable avec U ou VNP — Non pairable

Exemples :instructions d’E/S NPADC — ADD with Carry PUADD — Add UVIMUL — Signed Multiply NPLEA — Load Effective Address UVJcc — Jump if Condition is Met PV

FADD — Add FXFDIV — Divide FXFIADD — Add Integer NPFSIN — Sine NP

Limitations :- partage des ressources- synchronisation de pipelines

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

Page 12: Chapitre I Architectures Avancées des ordinateurs

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

Processeurs RISC •But : disposer d’un jeu d’instructions réduit, de longueur et de temps d’exécution constants•Intérêt : simplifier la gestion du séquenceur et du pipeline, ce qui permet d’augmenter la

fréquence d’horloge•Conséquences :

- modes d’adressage simplifiés- longueur de code plus grande que pour les CISC- nécessité d’un grand nombre de registres pour réduire les accès mémoire

Add @mem_1,RA,@mem_2

(@mem_2) = RA + (@mem_1)

Load @mem_1,RBAdd RA,RBStore RB, @mem_2

RISCCISC

Exemple :

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

Processeurs RISCInstructions

Instructions de type registre-registre

Instructions de type registre-immédiat

Instructions d'accès mémoire

Instructions de branchements

Code op. S1 S2 D0

6 5 5 54

code op.(ext)

7

Code op. S1 Constante D

6 5 8 5

code op.(ext)

7

1

1

Code op. RbaseS/D

6 55

Déplacement

16

Code op. Rbase

6 5

Déplacement

21

organisation "registre-registre" avec trois ou quatre opérandes :2 ou 3 registres sources A et B et C et un registre résultat D

Format des instructions Alpha 21264 :

Page 13: Chapitre I Architectures Avancées des ordinateurs

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

Processeurs RISCPipeline

Processeur SPARCProcesseur MIPS

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

Processeurs RISCGestion des registres

Nombre élevé de registres internes Limiter les échanges avec la mémoire( SPARC : 520 registres)

Fenêtres de registres Renommage des registres

Registres supplémentaires utiliséslors de dépendances de données.

Adresse logique

Table decorrespondance

Instruction

Page 14: Chapitre I Architectures Avancées des ordinateurs

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

Architecture Alpha 21264

Int RegMap

Branch Predictors

FETCH MAP QUEUE REG EXEC DCACHEStage: 0 1 2 3 4 5 6

BusInter-faceUnit

IntIssue

Queue(20)

Exec

4 Instructions / cycle

RegFile(80)

Victim Buffer

L1 DataCache64KB2-Set

FP Reg Map

FP ADDDiv/Sqrt

FP MUL

Addr

80 in-flight instructionsplus 32 loads and 32 stores Addr

Miss Address

Next-LineAddress

L1 Ins.Cache64KB2-Set

Exec

Exec

ExecRegFile(80)

FP Issue

Queue(15)

RegFile(72)

Sys Bus

Cache Bus

Phys Addr

128 bit

44 bit

64 bit

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

Processeurs Pseudo-CISC (Intel P6)

Rang instruction Taux d’utilisation (calcul entier)1 load 22%2 conditional branch 20%3 compare 16%4 store 12%5 add 8%6 and 6%7 sub 5%8 move register-register 4%9 call 1%10 return 1%

Total 96%

Bilan : 10 instructions simples couvrent plus de 95% des besoins !

Top Ten des instructions x86 :

Conséquence : Intel maintient la compatibilité ascendante de ses processeurs (x86) tout en optant pour une architecture de type RISC (architecture P6).

Instructions CISC (1 à 15 Octets) Micro-ops (2 entrées, 1 sortie, longueur fixe)

Processeurs concernés : Pentium Pro, Pentium II, III et 4

Page 15: Chapitre I Architectures Avancées des ordinateurs

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

Processeurs Pseudo-CISC (Intel P6)

Bus

Inte

rfac

e U

nit

Contrôle

Données64

Adresses36

I CacheLevel 1(8 kOctets)

FetchFetch/Decode

Unit

InstructionPool

Dispatch/Execute

UnitD CacheLevel 1

(8 kOctets)

Load

RetireUnit

Store

CacheLevel 2

(256 kOctets)

Bus Externe

BIU

L2

In-order front end(Fetch/Decode)

Out-of-order core(dispatch/exec)

In-order back end(Instruction Pool/Retire)

BTB

MIS

RAT

IFU

IDROBRRF

RS

DCU

AGU

IEU

MIU

MOB

FEU

Pentium Pro (1995)

•Exécution spéculative (désordre)•Cœur RISC•Cache L2 sur 2ème puce

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

Pentium 4 (2000) : Architecture

2xALUSimpleInstr.

2xALUSimpleInstr.

2xAGUStore

@

2xAGULoad

@

Slow ALUComplex

Instr.

Integer/FP µOp Queue

Integer SchedulersSlow Int Fast Int Fast Int Memory

Integer Register File + ByPass

Allocate Ressources / Rename Registers

Trace CacheBranch Prediction

4096 entry TLB

Execution Trace 12.000 µOpsMicro Code

ROM /Seq.

Instruction Decoder

Dynamic Branch Predictor : 4096 entries

CacheL2

Cache L1 Données (8kB)Double Port, 4 wayHardWare PreFetch

256 bits Core Clock

Instruction TLB256 bitsCore Clock

BisInterface

Unit-

64 bits100 MHz

QuadPumped3,2 Go/s

SystemBus

FP StoreFP Move

FmulFAdd

SSE/SSE2 MMX

Memory µOp Queue

FP Register File

FP SchedulersFP Gen FP Mem

Page 16: Chapitre I Architectures Avancées des ordinateurs

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

Processeurs Pentium : Pipeline

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

1Prefetch

2Decode

3Decode

4Exec

5Wrtbck

Architecture P5 (Pentium)(Limite : 233 MHz)

1fetch

3Decode

6Rename

10Exec

2fetch

4Decode

5Decode

7ROB rd

8Rdy/Sch

9Dispatch

Architecture P6 (Pentium Pro, PII, PIII)

(Limite : 1 GHz)

1TC

3 4TC fetch

7 8Rename

17Exec

2Next IP

5Drive

6Alloc

9Queue

10Sch

13 14Dispatch

11Sch

12Sch

15 16RF

18Flags

19Br Ck

20Drive

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

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

Pentium 4 : Déroulement global

Fop

Fms

ALUALUALUALUAGUAGU

17 - 20

22 Go/s

Syst

em In

terf

ace

L1 D

-Cac

he &

TLB

3,2 Go/s

45 Go/sL2 Cache

Deep Buffering

6 - 85 9

3

Ren

ame/

Allo

c

µOp

Que

ue

10-1213-14

Sche

dule

rs

15-16

Inte

ger R

FFP

RF

3

Etages Pipeline 1 - 4

BTB

ROM

Trac

e C

ache

Hardware Prefetch

Dec

oder

BTB

& I-

TLB

Page 17: Chapitre I Architectures Avancées des ordinateurs

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

Architecture SIMD

Mémoire deprogramme PE

Uni

té d

esé

quen

cem

ent pc

Horloges

Retour pour contrôle de séquencement

Instructionsadresses

mem ALU

PEi

mem ALU

PEi+1

mem ALU

PEi+2

Add r0, mem[x]

Contrôleur spécialisé

Mise en parallèle de processeurs élémentaires (PE) traitant la même instructionsur des données différentes (SIMD : Single Instruction, Multiple Data).

Ce type d’architecture ne se justifie qu’avec l’emploi de mémoires distribuées, ilreste à les alimenter à un débit suffisant !Que faire en cas de branchement conditionnel ?

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

Architecture SIMDPrinceton Engine

•Jusqu’à 2048 processeurs•PE : ALU, Mult, 64 registres•Mémoire élémentaire : 16 kmots de 16 bits

Page 18: Chapitre I Architectures Avancées des ordinateurs

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

Architecture SIMDRéseau à couplage fort

Réseau à passage de messages

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

Extensions SIMD« multimédia »

Applications Multimédia : Données :

Vidéo : 8 bitsDCT : 16 bitsAudio : 16 bits

Traitement :Opérations parallèles (RVB)Petites boucles

Les processeurs traitent des donnéessur 32 bits et ils y accèdent sur 64 bits

MMX : Intel ‘ 1996MVI : DEC-Alpha ‘ 19963Dnow : AMD ‘ 1998SSE : Intel ‘ 1999Altivec : Motorola ‘ 2000SSE2 : Intel ‘ 2000

Systèmes existants :

Page 19: Chapitre I Architectures Avancées des ordinateurs

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

Extensions SIMD(MMX)

63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0

Packed Byte (huit éléments 8 bits)63 48 47 32 31 16 15 0

Packed Word (quatre éléments 16 bits)63 32 31 0

Packed DoubleWord (deux éléments 32 bits)63 0

QuadWord (un élément 64 bits)

57 instructions MMX :Arithmétique : 17 instructions Add/Sub : Wrap-around et Saturation (8, 16 et 32 bits), MUL : 16 bitsComparaison : 6 instructions Égalité/Supérieur (8, 16 et 32 bits)Conversion : 9 instructionsLogique : 4 instructionsDécalage : 16 instructions Arithmétique et Logique (8 à 64 bits)Transfert : 4 instructionsContrôle : 1 instruction

Formats de données MMX :

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

Extensions SIMD(Arithmétique MMX)

PADD[W] : Wrap-around Add

+ + + +a3 a2 a1 $FFFF

b3 b2 b1 $8000

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

PADDUS[W] : Saturating Arithmetic

+ + + +a3 a2 a1 $FFFF

b3 b2 b1 $8000

a3+b3 a2+b2 a1+b1 $FFFF

a3 a2 a1 a0

b3 b2 b1 b0

a3*b3 + a2*b2 a1*b1 + a0*b0

PMADDWD : 16*16 b -> 32 bits : Multiply Add

Page 20: Chapitre I Architectures Avancées des ordinateurs

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

Architectures VLIWVLIW : Very Long Instruction Word

Le processeur exécute de longues d’instructions contenant plusieurs instructions élémentaires ; un descripteur est associé pour faciliterle parallélisme des opérations (branchement conditionnel ou existencede dépendances.

Les instructions VLIW sont générées par :•Le compilateur (Itanium en mode IA64)•A la volée :

Par logiciel (Transmeta)Par matériel (Itanium en mode x86)

InstructionsDescripteur

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

Architectures VLIWVLIW : Very Long Instruction Word

Ce qui limite la performance dans les systèmes superscalaires « standard »:– Les branchements

• Les mauvaises prédictions limitent la performance• Les petites branches (peu de code) ont peu de code à exécuter, ce qui limite le parallélisme

– L’accès à la mémoire• Utilise plus d’un coup d’horloge• Souvent, on doit faire un load juste après un branchement

– L’extraction du parallélisme des instructions• Le compilateur « sérialise » le code, dont le parallélisme intrinsèque doit être redécouvert

dynamiquement par le processeur

Code sourceoriginal

Code parallèle

Compilateur Code machineséquentiel

Code parallèle

…Unités d’exécution multiples

Matériel

Page 21: Chapitre I Architectures Avancées des ordinateurs

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

Architectures VLIWParallélisme Explicite (EPIC)

• Le compilateur expose, améliore et exploite le parallélisme du programme source et le rend explicite dans le code machine

Compilateur

« Expose »

Code sourceoriginal

« Améliore »

Code machineparallèle

« Exploite »

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

Itanium (2000)(Intel - HP)

Architecture EPIC (Explicitly Parallel Instruction Computing)

• Développé conjointement par HP et Intel:– ISA mis au point chez HP– Design matériel principalement chez Intel

• But: mettre au point la prochaine génération de processeurs hautes performances 64 bits• Principes de base: éliminer les goulots d’étranglements connus des systèmes superscalaires

existants• Abandon de la recherche de compatibilité directe x86 (générée par émulation et donc moins

performante que sur un Pentium II)

Premières puces :CMOS 0,18 µm 25 Mtransistors733 - 800 MHz 130 WCache L1 : 16 + 16 kOctetsCache L2 : 96 kOctetsInterface pour cache L3 (< 4MOctets)

Page 22: Chapitre I Architectures Avancées des ordinateurs

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

Itanium (2000)(Intel - HP)

Architecture EPIC (Explicitly Parallel Instruction Computing)

Le problème posé par les architectures précédentes d’Intel est l’optimisation de l’exploitation des ressources superscalaires et le vidage des pipelines en cas de branchement conditionnel.

L’approche est de type VLIW avec 3 instructions par champ de 128 bits (Bundle),chaque instruction est codée sur 41 bits et un gabarit (TEMPLATE) sur 4 bitspermet de faciliter le parallélisme des opérations :

Instruction Slot 2 TemplateInstructions

Bundle de 128 bits

Instruction Slot 2Instruction Slot 2

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

Itanium : Instructions

opcode PR GPR GPRGPR

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

Page 23: Chapitre I Architectures Avancées des ordinateurs

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

Itanium : Instructions

Note : le double colonnage indique la présenced’un test conditionnel ou de dépendances

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

Itanium : Gestion des branchements

Page 24: Chapitre I Architectures Avancées des ordinateurs

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

Itanium

Integer&

MM UnitsFloating

PointUnits

SIMDFMAC

FloatingPointUnits

SIMDFMAC

BranchUnits

Scor

eboa

rd, P

redi

cate

NaT

s, E

xcep

tions

ALAT

Dual-PortL1

DataCache

&TLB

L2 C

ache

B B B M M I I B B

Register Stack Engine / Re-Mapping

L3 C

ache

Bus Controller

IA-32Decode

&Control

BranchPrediction

L1 Instruction Cache andFetch/Pre-Fetch Engine ITLB

9 issues Port

InstructionQueue 8 bundles

128 Integer RegistersBranch & PredicateRegisters 128 FP Registers

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

Itanium 2Mc Kinley Madison

Itanium (2000) Itanium 2 (2003) Itanium 2 (2004)Nom (projet) Mc Kinley MadisonUnités entières (IEU) 4 6 6Bus système (FSB) 64 bits (2,1 GO/s) 128 bits (6,4 GO/s) 128 bits (6,4 GO/s)Technologie 0,18 µm 0,18 µm 0,13 µmFréquence (cœur) 800 MHz 1 GHz 1,5 GHzPuissance (dont fuites) 130 W 130 W (5 %) 130 W (21 %)Cache L1 (Taille/latence/accès) (16 + 16) kO / 2 / 64 bits (16 + 16) kO / 1 / 64 bits (16 + 16) kO / 1 / 64 bitsCache L2 (Taille/latence/accès) 96 kO / 12 / 64 bits 256 kO / 5 / 128 bits 256 kO / 5 / 128 bitsCache L3 (Taille/latence/accès) Externe / 20 / 64 bits 3 MO / 12 / 128 bits 6 MO / 14 / 128 bitsTransistors (hors caches) 25 Millions 25 MillionsTransistors (total) 25 Millions 221 Millions 410 Millions

Page 25: Chapitre I Architectures Avancées des ordinateurs

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

Crusoe de Transmeta (2000 -)

But : Réaliser un processeur compatible X86 aussi performant que les architectures Intelconsommant de 3 à 30 fois moinsutilisant moins de silicium (70 %)

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

Constat :La gestion du code CISC x86 est de plus en plus lourde à gérerL’exécution dans le désordre augmente la complexité de l’architectureLes performances sont étroitement liées à la prédiction de branchement

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

Crusoe de Transmeta (2000 -)

Applications x86

Système d ’exploitation x86(Windows, Linux, …)

BIOS x86

Code Morphing

Processeur VLIW

Environnement x86

Environnement Crusoe

Bas niveau

Logiciel

OS

Utilisateur

Matériel

Page 26: Chapitre I Architectures Avancées des ordinateurs

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

Crusoe de Transmeta

InstructionDecode

ExecutionUnits

Cac

he L

1

X86

Inst

ruct

ion

Tran

slat

ion

InstructionReorder

RegisterRename

BranchPredict

Processeur x86 Processeur Crusoe

InstructionDecode

ExecutionUnits

Cac

he L

1

X86

Inst

ruct

ion

Tran

slat

ion

InstructionReorder

RegisterRename

BranchPredict

But : éliminer ce qui peut être traité par le Code Morphing Software

Gain :- puce plus petite et consommant moins- on peut intégrer plus de cache sur la puce

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

Structures Multiprocesseurs(Alpha EV7/21364)

MemoryController

RAMBUS21264

Core

16 L1Miss Buffers

L2Cache

Address Out

Address In

NetworkInterface

NSEWI/O

16 L1Victim Buf 16 L2

Victim Buf

64K Icache

64K Dcache

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

Page 27: Chapitre I Architectures Avancées des ordinateurs

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

Structures Multiprocesseurs(Alpha EV7/21364)

EV7M

IOEV7

M

IOEV7

M

IOEV7

M

IO

EV7M

IOEV7

M

IOEV7

M

IOEV7

M

IO

EV7M

IOEV7

M

IOEV7

M

IOEV7

M

IO

Configuration multiprocesseurs avec mémoire distribuée

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

Marché des microprocesseurs

4 bits

8 bits

16 bits

64 bits

32 bits

CalculatricesJeux vidéoµsystèmes

Systèmes programmésMicrocontrôleurs (carte à puce)

Systèmes embarqués (ABS, Injection)

Micro-ordinateurs

Stations de travail,PlayStation

Page 28: Chapitre I Architectures Avancées des ordinateurs

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

0.01

0.1

1

10

100

1000

10000

19861988

19901992

19941996P

erfo

rman

ce (

Mfl

op/s

)

Micros

Supers

8087 802876881

80387

R2000

i860RS6000/540

AlphaRS6000/590

Alpha

Cray 1S

Cray X-MP

Cray 2 Cray Y-MP Cray C90Cray T90

1998

Evolution des performances des µP/Ordinateurs

19801982

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

Puissance consomméepar les microprocesseurs

Page 29: Chapitre I Architectures Avancées des ordinateurs

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

1997 1999 2001 2003 2006 2009

Dimensions minimales ( µm)

DRAM 0,25 0,18 0,15 0,13 0,1 0,13

Microprocesseur 0,2 0,14 0,12 0,1 0,07 0,05

Diamètre maximal des tranches (mm) 200 300 300 300 300 450

Densité d'intégration

DRAM (bits/puce) (échantillon/production) 256M/64M 1G/256M 2G/1G 4G/1G 16G/4G 64G/16G

Microprocesseur (transistors/cm²) 3,7M 6,2M 10M 18M 39M 84M

Circuit spécifique (transistors/cm²) 8M 14M 16M 24M 40M 64M

Tension d'alimentation (V) 1,8 - 2,5 1,5 - 1,8 1,2 - 1,5 1,2 - 1,5 0,9 - 1,2 0,6 - 0,9

Fréquence maximale (MHz) 750 1200 1400 1600 2000 2500

Nombre d'E/S

Microprocesseur 600 810 900 1100 1500 2000

Circuit spécifique 1100 1500 1800 2200 3000 4100

Taille de puce (mm²)

DRAM 280 400 445 560 790 1120

Microprocesseur 300 340 385 430 520 620

Générations technologiques