22
1 ©Pierre Marchand, 2001 311 Objectifs À la fin de cette unité, vous aurez un aperçu des nouvelles techno- logies utilisées pour améliorer la performance des ordinateurs, du microprocesseur au superordinateur. Vous saurez ce qu'est un processeur RISC et comment le pipeline et la mémoire cache sont utilisés pour en augmenter la performance. Pour y parvenir, vous devrez maîtriser les objectifs suivants : - décrire les principes de l’architecture RISC ; - décrire le fonctionnement d’un pipeline ; - décrire les modèles de machine parallèle SIMD et MIMD. Unité 10: Superordinateurs et microprocesseurs ©Pierre Marchand, 2001 312 9.1 Introduction La performance des ordinateurs modernes couvre la gamme de celle des superordinateurs tels que le Cray à celle des micro-ordinateurs personnels à base de microprocesseurs. Unité 10: Superordinateurs et microprocesseurs Le plus puissant des Cray actuels, le Cray T3E-1200, possède de 6 à 2048 proces-seurs, jusqu’à 2 G o de mémoire centrale par proces- seur (RAM statique!), et est capa- ble d’atteindre 2458 milliards d’opérations de virgule flottante (Gigaflops) à la seconde. La bande passante mémoire est de l’ordre de 700 Go / s. Les processeurs sont des Alpha 21164A de DEC.

Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

1

©Pierre Marchand, 2001 311

ObjectifsÀ la fin de cette unité, vous aurez un aperçu des nouvelles techno-logies utilisées pour améliorer la performance des ordinateurs, dumicroprocesseur au superordinateur. Vous saurez ce qu'est unprocesseur RISC et comment le pipeline et la mémoire cache sontutilisés pour en augmenter la performance.

Pour y parvenir, vous devrez maîtriser les objectifs suivants :

- décrire les principes de l’architecture RISC ;

- décrire le fonctionnement d’un pipeline ;

- décrire les modèles de machine parallèle SIMD et MIMD.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 312

9.1 IntroductionLa performance des ordinateurs modernes couvre la gamme de celledes superordinateurs tels que le Cray à celle des micro-ordinateurspersonnels à base de microprocesseurs.

Unité 10: Superordinateurs et microprocesseurs

Le plus puissant des Cray actuels,le Cray T3E-1200, possède de 6 à2048 proces-seurs, jusqu’à 2 Gode mémoire centrale par proces-seur (RAM statique!), et est capa-ble d’atteindre 2458 milliardsd’opérations de virgule flottante(Gigaflops) à la seconde.La bande passante mémoire est del’ordre de 700 Go / s.Les processeurs sont des Alpha21164A de DEC.

Page 2: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

2

©Pierre Marchand, 2001 313

9.1 IntroductionCes performances sont nécessaires dans des disciplines ayant desproblèmes nécessitant d’énormes quantités d’opérations arithmétiques,par exemple :

la météorologie,

la dynamique des fluides,

l’aérodynamique,

l’analyse des structures,

la micro-électronique,

la physique des particules,

la chimie et la biologie moléculaire,

les mathématiques appliquées,

la simulation numérique de systèmes,

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 314

9.1 IntroductionLe traitement d’images (en particulier, les images 3D),

la reconnaissance des formes, etc.

On résout ces problèmes d’abord en augmentant la vitesse du proces-seur, puis en mettant plusieurs processeurs en parallèle.

Unité 10: Superordinateurs et microprocesseurs

Page 3: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

3

©Pierre Marchand, 2001 315

9.1 Introduction9.1.1 Accroissement de la puissance des ordinateurs

Une des limites à la vitesse des processeurs est le temps depropagation des signaux.

Distance parcourue Vitesseen 1 ns en km / s

Lumière dans le vide 30 cm 300 000

Signal électrique dans un 1 µm à 1 cm 1 à 100 000Semiconducteur

On a donc intérêt à réduire les dimensions physiques des processeurs.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 316

9.1 Introduction

Une façon de contourner ce problème est d’introduire du parallélisme :pipelines, unités d’exécution multiples, processeurs auxiliaires spéciali-sés : accélérateurs graphiques, transformée de Fourier rapide, etc.

Dans le cas de problèmes numériques, les machines vectorielless’avèrent souvent une bonne solution. Ces machines effectuentsimultanément la même instruction sur des données différentes aumoyen d’UAL multiples.

Unité 10: Superordinateurs et microprocesseurs

Page 4: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

4

©Pierre Marchand, 2001 317

9.1.2 Technologie et performance

Loi d’Amdahl

On peut définir le «speed-up» comme le rapport entre les tempsd’exécution avant et après l’amélioration apportée au matériel.

Comme certains dispositifs ne sont pas nécessairement utilisés àchaque instruction du programme, le gain obtenu par uneperformance accrue, sur une partie de programme, diminue au furet à mesure qu’on ajoute des améliorations.

Par exemple, un additionneur dix fois plus rapide ne produira pasun speed-up de 10 et une machine avec 1000 processeursn’exécutera pas chaque travail 1000 fois plus vite.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 318

9.1.2 Technologie et performance

Loi d’Amdahl

Le temps d’exécution après une amélioration d’un aspect d’unemachine est donné par :

Exemple : Supposons que le temps d’exécution d’un certainprogramme soit 100 sec et que les multiplications représentent 80sec de ce temps. Quel sera le temps d’exécution après avoirapporté une amélioration de 5 dans la vitesse de multiplication ?

Donc une amélioration globale de 2,77 seulement.

Unité 10: Superordinateurs et microprocesseurs

Temps d'exécution après amélioration

= Temps d'exécution affecté par l' amélioration

Facteur d'amélioration+ Temps d'exécution non affecté

Temps d'exécution après amélioration =

805

+ 2 0 = 3 6

Page 5: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

5

©Pierre Marchand, 2001 319

9.1.2 Technologie et performance

Loi d’Amdahl

On ne peut donc pas s’attendre à ce qu’une amélioration d’unaspect d’une machine apporte une amélioration proportionnelle aufacteur d’amélioration.

Unités de traitement

Les technologies ULSI (Ultra Large Scale Integration) et WSI(Wafer Scale Integration),

les fréquences d’horloge ≥ 1 GHz,

la technologie RISC,

permettent aujourd’hui d’atteindre un cycle machine inférieur à 1ns, donc plus de 1000 MIPS.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 320

Mémoires

La capacité des DRAM augmente d’un facteur 4 tous les 3 ans.

La capacité des disques durs double tous les trois ans. Avec lesnouvelles têtes magnéto-résistives qui survolent la surface dudisque à 0,01 microns, on s’attend à ce que l’augmentationannuelle de la densité passe de 30 à 60%.

Communications

Communications par câble, par satellite, etc. Transmission parfibre optique. Communications par infra-rouge.

Parallélisme à tous les niveaux.

Parallélisme des actions et des opérations à tous les niveaux detraitement, de stockage et de transmission des opérations.

Unité 10: Superordinateurs et microprocesseurs

Page 6: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

6

©Pierre Marchand, 2001 321

9.1.3 Évaluation de la performance

L’évaluation de la performance de traitement d’un ordinateur n’estpas simple.

Pour le processeur lui-même, on utilise comme unité de mesureles MIPS (Millions of Intructions Per Second) ou les MFLOPS(Millions of FLoating-point Operations Per Second).

Toutefois, ces unités de performance sont des indicateurs peufiables car leur valeur varie selon l’architecture du processeur(RISC ou CISC) et son jeu d’instructions.

De la même façon, les MFLOPS peuvent induire en erreur. Parexemple, la division prend plus de temps que l’addition mais lesdeux sont considérées de la même façon dans le calcul de laperformance.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 322

9.1.3 Évaluation de la performance

L’évaluation de la performance fait intervenir plusieurs facteurs : lavitesse du traitement proprement dit, la réponse des différentsétages de la mémoire (caches), et la vitesse des entrées / sorties.Des programmes de test, appelés benchmarks, permettentd’évaluer les performances des ordinateurs, mais peu d’entre euxsont réellement utilisés de façon standard étant donné la difficultéde couvrir avec quelques tests une vaste gamme d’architectures,de machines et de problèmes à traiter.

Un certain nombre de constructeurs se sont groupés pour formerun groupe appelé SPEC (System Performance EvaluationCooperative) qui a pour but de définir des mesures standardscommunes. SPEC a défini une dizaine de programmes de test. Onles exécute sur une machine à évaluer, puis on compare le tempsd’exécution avec un temps de référence.

Unité 10: Superordinateurs et microprocesseurs

Page 7: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

7

©Pierre Marchand, 2001 323

9.1.3 Évaluation de la performance

On calcule un SPECratio pour chaque programme et on fait lamoyenne de tous les programmes du test pour obtenir la valeurfinale en SPECmarks. Il y a deux classements. Les SPECint, pourmesurer la performance lors de calculs sur des entiers, et lesSPECfp pour mesurer la performance en virgule flottante. Ladernière mise à jour de ces tests remonte à 1995, de sorte qu’onparle présentement de SPECint95 et de SPECfp95.

Il existe beaucoup d’autres benchmarks, par exemple, lesDhrystones, les Whetstones, les tests Linpack et les LivermoreLoops.

On évalue avec ces tests que la croissance de la performance desmicroprocesseurs est de 40 % par an.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 324

9.1.3 Évaluation de la performance

Par exemple, un Pentium III à 733 MHz obtient 35,7 SPECint95 et28,1 SPECfp95, tandis qu’un PowerPC 7400 (G4) à 450 MHzobtient 21,4 SPECint95 et 20,4 SPECfp95. Si on normalise à lafréquence de l’horloge, on peut comparer les deux processeurs etobserver que le Pentium III est légèrement plus rapide pour lesentiers, mais moins rapide pour la virgule flottante.

Unité 10: Superordinateurs et microprocesseurs

Page 8: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

8

©Pierre Marchand, 2001 325

9.1.3 Évaluation de la performance

La technologie actuelle fait des gains de 30 à 40 % par année,mais on approche de plus en plus des limites physiques, et lesinvestissements nécessaires pour progresser deviennent de plusen plus prohibi-tifs.

Progression estimée de la largeur du trait et de la capacité demémoire correspondante :

Année 1996 1999 2002 2005 2008

Largeur trait en µm 0,35 0,25 0,18 0,13 0,1

Capacité puce 64 256 1024 4096 16392DRAM en Mbits

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 326

9.1.3 Évaluation de la performance

On se rend donc compte qu’on a exploité les progrès « faciles» etque les prochains seront plus ardus.

C’est sans doute du côté de l’architecture qu’on pourra gagner desfacteurs 100 ou 1000 sur les performances actuelles.

On peut construire aujourd’hui des machines parallèles perfor-mantes et fiables. Malheureusement, le logiciel avance beaucoupmoins rapidement que le matériel et on sait mal exploiter ceparallélisme.

On remarque toutefois qu’on a de plus tendance à construire dessuperordinateurs à partir d’un grand nombre de microprocesseursstandards.

Unité 10: Superordinateurs et microprocesseurs

Page 9: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

9

©Pierre Marchand, 2001 327

9.2 SuperordinateursLe premier superordinateur fut le Cray-1, monoprocesseur de 10MIPS et 160 MFLOP) réalisé en 1976 par Seymour Cray (unPentium III à 500 MHz fait environ 500 Mflops).

Dans les années 80, on retrouve le Cray-XMP et le Cray-2 avec de1 à 4 processeurs de 450 Mflops chacun. Par la suite, le Cray-YMP et le Cray-3 font leur apparition, ainsi que la série SX deNEC, et d’autres machines par Hitachi, Fujitsu, IBM et biend’autres. Toutes possédent de nombreux processeurs.

Le projet ASCI (Advanced Super Computing Initiative) d’Intel aamené en 1996 la construction d’une machine parallèle contenantplus de 7000 Pentium Pro interconnectés. Elle a atteint 1 Tflops(1012 opérations de virgule flottante par sec).

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 328

9.2 SuperordinateursUn autre exemple est le Cray-T3D, quiavait entre 32 et 2 048 processeursAlpha 21064 de DEC, qui étaient desmicroprocesseurs RISC de 64 bits avecune fréquence d’horloge de 200 MHz.

La mémoire vive totale était de 0,5 à128 Go et la performance de 4,8 à 307Gflops.

Unité 10: Superordinateurs et microprocesseurs

Page 10: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

10

©Pierre Marchand, 2001 329

9.2 Superordinateurs9.2.1 Architecture des superordinateurs

Les superordinateurs SIMD (Single Instruction stream Multiple Datastreams) opérent sur des vecteurs de données. Ces machinespossèdent un mélange d’instructions SISD (Single Instruction streamSingle Data stream) et d’instructions SIMD. Les instructions SISD,exécutées par un processeur scalaire, effectuent les opérationsséquentielles telles que les branchements et les calculs d’adresses.Les instructions SIMD sont envoyées à toutes les unités d’exécutionpossédant chacune de la mémoire et son propre jeu de registres.

Le SIMD fonctionne à son meilleur quand il a affaire à des tableauxdans des boucles for. Il doit donc y avoir parallélisme au niveau desdonnées.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 330

9.2 Superordinateurs9.2.1 Architecture des superordinateurs

Une architecture voisine du SIMD est la machine vectorielle. Elle a desinstructions de haut niveau qui s’appliquent à des tableaux linéaires denombres ou vecteurs. Les machines SIMD ont aussi de tellesinstructions. La différence est que le processeur vectoriel utilise desunités fonctionnelles pipelinées qui opèrent sur quelques éléments d’unvecteur, tandis que le SIMD agit sur tous les éléments à la fois.

Le Cray-J90 et le Cray-T90 sont des machines vectorielles, tandis quele Cray-T3D est une machine SIMD.

Unité 10: Superordinateurs et microprocesseurs

Page 11: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

11

©Pierre Marchand, 2001 331

9.2 Superordinateurs9.2.1 Architecture des superordinateurs

Les avantages du traitement vectoriel sur le modèle traditionnel SISDsont les suivants :1. Chaque résultat est indépendant des résultats précédents, ce qui permet

de longs pipelines et des fréquences d’horloge élevées.

2. Une instruction vectorielle effectue beaucoup de travail, ce qui impliquemoins d’instructions en général et moins de branchements, donc moins debranchements mal prédits.

3. Les instructions vectorielles accèdent à l a mémoire par blocs, ce quipermet d’étaler la latence de la mémoire sur plusieurs éléments.

4. Les instructions vectorielles accèdent à la mémoire selon des patronsconnus, ce qui permet à des blocs de mémoire multiples de fournir desopérandes.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 332

9.2 Superordinateurs9.2.1 Architecture des superordinateurs

Machines MIMD (Multiple Instruction Multiple Data streams).

C’est l’architecture parallèle la plus générale, dans laquelle les proces-seurs sont affectés à des tâches au fur et à mesure des besoins. C’estaussi celle qui présente le plus de problèmes théoriques au plan dulogiciel.

Un exemple est le Cosmic cube, à base d’hypercubes (16 processeursinterreliés), construit à Caltech en 1985.

Un autre est la Thinking Machine CM-2 de 1987, qui pouvait avoirjusqu’à 65 536 processeurs de 1 bit avec une horloge de 7 MHz, et2048 processeurs de virgule flottante.

Aujourd’hui, on ne trouve l’architecture MIMD que sous forme degrappes d’ordinateurs, comme la IBM RS/6000 SP2 avec 256processeurs.

Unité 10: Superordinateurs et microprocesseurs

Page 12: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

12

©Pierre Marchand, 2001 333

9.4 Parallélisme

Unité 10: Superordinateurs et microprocesseurs

SIMD MIMD

Mémoire partagée(Multiprocesseur)

Mémoire distribuée(Multicomputer)

Machines parallèlesMachines scalaires

SISD

©Pierre Marchand, 2001 334

9.4 Parallélisme

Unité 10: Superordinateurs et microprocesseurs

CUPE1MU

IS DS

SISD

SIMD

CUIS

PE2

PEn

PULM1

DS

LM2DS

LMnDS

•••

Légende :CU = Control UnitIS = Instruction StreamDS = Data StreamPU = Processing UnitMU = Memory UnitPE = Processing ElementLM = Local Memory

Page 13: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

13

©Pierre Marchand, 2001 335

9.4 Parallélisme

Unité 10: Superordinateurs et microprocesseurs

PE1

MIMD à mémoirepartagée

(Multiprocessor)

CUnIS

PE2

PEn

DS

DS

DS

•••

CU2

CU1

IS

ISPE1

MIMD à mémoiredistribuée

(Multicomputer)

CUnIS

PE2

PEn

LM1DS

LM2DS

LMnDS

•••

CU2

CU1

IS

IS

moire

partagé

e

Rése

aud’in

terconnexion

©Pierre Marchand, 2001 336

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Pipelines

Le pipelining consiste à segmenter une opération complexe enune séquence d ’actions plus simples. Chaque action simple estréalisée par un dispositif particulier. Tous les dispositifs peuventfonctionner simultanément.

On peut segmenter l’exécution d’une instruction comme suit :

Chargement de l’instruction (instruction fetch IF)

Décodage de l’instruction (D)

Chargement des opérandes (operand fetch OF)

Exécution (E)

Écriture du résultat (W)

Unité 10: Superordinateurs et microprocesseurs

Page 14: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

14

©Pierre Marchand, 2001 337

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Pipelines

Sans pipeline

Avec pipeline

Unité 10: Superordinateurs et microprocesseurs

Instruction 1IF1 D1 OF1 E1 W1

Instruction 2IF2 D2 OF2 E2 W2

IF1 D1 OF1 E1 W1IF2 D2 OF2 E2 W2

IF3 D3 OF3 E3 W3

IF4 D4 OF4 E4 W4

IF5 D5 OF5 E5 W5

Instruction 1Instruction 2Instruction 3Instruction 4Instruction 5

temps

©Pierre Marchand, 2001 338

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Pipelines

Problème des branchements

Supposons que l’instruction 1 soit un branchement conditionnel versl’instruction n.

Unité 10: Superordinateurs et microprocesseurs

IF1 D1 OF1 E1 W1IF2 D2 OF2 E2

IF3 D3 OF3

IF4 D4

IF5

temps

IFn Dn OFn En Wn

IFn+1 Dn+1 OFn+1 En+1 Wn+1

Temps perdu

Page 15: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

15

©Pierre Marchand, 2001 339

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Pipelines

Avec un pipeline à 5 étages, on a donc accéléré le fonctionnement parun facteur 5!

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 340

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Processeurs RISC

L’idée de l’architecture RISC (Reduced Instruction Set Computer)est de n’avoir qu’un petit nombre d’instructions simples, quipeuvent être exécutées très rapidement (1 cycle machine).

Cette approche contraste avec les machines CISC (ComplexInstruction Set Computer) où le jeu d’instructions est riche et lesinstructions complexes afin de simplifier la tâche du compilateur.

Le concept RISC était présent dans les premières machines, etCray l’adopta pour la conception des CDC 6000 et 7000. Il a étémis de côté par l ’invasion des machines CISC, mais a reprisl’avantage au début des années 80, avec l’IBM 801, le RISC-1 deBerkeley et les machines MIPS de Stanford.

Unité 10: Superordinateurs et microprocesseurs

Page 16: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

16

©Pierre Marchand, 2001 341

9.6 RISC, CISC et architectures superscalaires9.6.1 RISC

Ce concept est revenu à la mode après qu’on ait eu constaté quedans 80 % des cas, un processeur n’utilise que 20 % de son jeud’instructions.

Principales caractéristiques :

• Exécution des instructions en un cycle machine

• Format unique des instructions (généralement 32 bits)

• Utilisation intensive des registres (minimisation des accèsmémoire)

• Peu de modes d’adressage

• Architecture load / store

• Séquenceur câblé

• Pipeline et architecture superscalaire

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 342

9.6 RISC, CISC et architectures superscalaires9.6.4 Exemples de microprocesseurs RISC

RISC-1, Berkeley, 1980 : 31 instructions, 138 registres et un seulmode d’adressage (basé).

RISC-II, 1984, 41 000 transistors.

Principaux fabricants :MIPS, achetée par SGI

SUN

DEC

IBM

IBM-Motorola-Apple

Hewlett-Packard

Intel

Unité 10: Superordinateurs et microprocesseurs

Page 17: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

17

©Pierre Marchand, 2001 343

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Processeurs superscalaires

Dans un processeur ayant plusieurs unités d’exécution, on peutavoir plusieurs pipelines fonctionnant en parallèle. On donne lenom superscalaire à un processeur capables d’émettre ainsi plusd’une instruction par cycle machine (2 à 5).

Exemples : le PowerPC d’IBM/Motorola/Apple, le R10000 de SGI,l’UltraSparc de SUN, le PA 8000 de HP, le Pentium III d’Intel, leAlpha 21364 de DEC, le RS 6000 d’IBM, et bientôt l’Itanium d’Intel,etc.

Tous sont des processeurs RISC à l ’exception du Pentium (dumoins vu de l’extérieur).

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 344

9.2 Superordinateurs9.2.2 Évolution de l’architecture du CPU

Approche VLIW

L’approche VLIW (Very Long Instruction Word) consiste à placerdans un mot de taille assez grande (> 100 bits) plusieursinstructions prêtes à être exécutées en parallèle par des unitésfonctionnelles multiples indépendantes. Un exemple de proces-seur de ce type est le i860 d’Intel (mots de 128 bits)

Le parallélisme est ici géré par le compilateur et non par leprocesseur.

On trouvera une extrapolation de ce concept dans le Itaniumd’Intel, qui utilise la technologie EPIC (Explicitly Parallel InstructionComputer). Des mots de 128 bits contiennent 3 instructions de 40bits + des prédicats indiquant lesquelles peuvent être exécutéesen parallèle.

Unité 10: Superordinateurs et microprocesseurs

Page 18: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

18

©Pierre Marchand, 2001 345

9.5 Microprocesseurs9.5.1 Microprocesseur et micro-ordinateur

Microprocesseur = circuit intégré réalisant une unité de traitementcomplète

Micro-ordinateur = microprocesseur + mémoire + entrées / sorties+ périphériques

9.5.2 Évolution des microprocesseurs

1971 Intel 4004, 4 bits

1972 Intel 4008, 8 bits

1975 Intel 8008 Motorola M6800, 8 bit

1978 Intel 8088 et 8086, 8 / 16 bits

1979 Motorola MC68000, 16 bits

1982 Motorola MC68010, 32 bits

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 346

9.5 Microprocesseurs9.5.2 Évolution des microprocesseurs

1984 Motorola MC68020, 32 bits

1985 Intel 80386

1987 Motorola MC68030, 32 bits + mémoire virtuelle

1989 Intel 80486

1990 Motorola MC68040, 32 bits + coprocesseur

1993 Intel Pentium

1995 Intel Pentium Pro, 32 bits + cache L2

1996 Intel Pentium MMX

1997 Intel Pentium II, 32 bits + cache L2

1999 Intel Pentium III, ajout du SIMD

Unité 10: Superordinateurs et microprocesseurs

Page 19: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

19

©Pierre Marchand, 2001 347

9.6 RISC, CISC et architectures superscalaires9.6.5 Importance du logiciel

Optimisation du code par les compilateurs :

• Allocation optimale des registres pour minimiser les accès à lamémoire

• Élimination des redondances

• Optimisation des boucles

• Remplacement d’opérations lentes par des opérations rapides

• Optimisation des pipelines

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 348

9.8 Nouvelles architectures9.8.4 Exemple d’architecture RISC superscalaire : le PowerPC

7400 (G4) d’IBM-Motorola-AppleHorloge : 400 MHz, 450 MHz, 500 MHzInstructions par horloge : 3 (2+branch)Cache L1 : 32 Ko inst

32 Ko dataCache L2 : 512 Ko, 1 Mo, ou 2 MoTransistors : 6,5 millionSPECint95 : 21,4 @ 450 MHzSPECfp95 : 20,4 @ 450 MHzMIPS 825 MIPS @ 450 MHzUnités d’exécution : Integer (2)

Virgule flottanteVecteurBranchementLoad / Store

Unité 10: Superordinateurs et microprocesseurs

Page 20: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

20

©Pierre Marchand, 2001 349

9.8 Nouvelles architectures9.8.4 Exemple d’architecture RISC superscalaire : le PowerPC

7400 (G4) d’IBM-Motorola-Apple

Registres : 32 registres d’entiers de 32 bits32 registres de virgule flottante de 64 bits32 registres de vecteurs de 128 bits.

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 350

9.8 Nouvelles architecturesPowerPC 7400

Unité 10: Superordinateurs et microprocesseurs

Unité d’entiersRegistresd’entiers

Unité de VF

Registresde VF

UnitévectorielleRegistres

de vecteurs

Unité debranchementUnité de

dispatch

Unité decomplétion

Unité load / store

FSRAM

Unité d’interface de busTags L2

Adresses 32 bits Données 64 bits Port de cacheL2 de 64 bits

Bus 60xMPS

D MMU I MMU

Cache de données Cache d’instructions

Page 21: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

21

©Pierre Marchand, 2001 351

9.8 Nouvelles architectures9.8.5 Exemple de compromis RISC-CISC-superscalaire :

le Pentium III

Horloge : 450 à 733 MHzInstructions par horloge : 3Cache L1 : 16 Ko inst

16 Ko dataCache L2 : 256K avec ECC ou 512 KoSPECint95 : 35,7 @ 733 MHzSPECfp95 : 28,1 @ 733 MHzUnités d’exécution : Integer (2)

Virgule flottanteMMX

Registres : 8 registres d’entiers de 32 bits8 registres de SIMD/MMX/virguleflottante de 128/80/64 bits

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 352

9.8 Nouvelles architectures9.8.5 Exemple de compromis RISC-CISC-superscalaire : le

Pentium III

Unité 10: Superordinateurs et microprocesseurs

Cache L2Bus système

Unité de sortiedes instructions

complétées

Registres del'architecture

Intel

Unité derecherche et

décodage desinstructions

Unité dedispatch

et exécution

Pool d'ins-tructions

Unité d'interface de bus

Cache d'ins-tructions L1

Cache de données L1

Fetch Load Store

Bus de cache

Page 22: Unité 10: Superordinateurs et microprocesseursmarchand/ift17583/Acetates/17583...(RISC ou CISC) et son jeu d’instructions. De la même façon, les MFLOPS peuvent induire en erreur

22

©Pierre Marchand, 2001 353

9.8 Nouvelles architectures

9.8.6 Le Itanium d’Intel.

Horloge : ?

Transistors : 15 M

Unités d’exécution : 4 unités d’entier + 4 unités MMX

2 unités de virgule flottante

2 unités Load / Store

Registres : 128 registres d’entiers (64 bits)

128 registres de virgule flottante (82 bits)

128 registres d’application (64 bits)

64 registres de prédicats

Trois niveaux de cache, L1, L2 et L3

Pipeline de 10 stages

ALAT (Advanced Load Address Table) de 32 entrées

Unité 10: Superordinateurs et microprocesseurs

©Pierre Marchand, 2001 354

9.8 Nouvelles architectures

9.8.6 Le Itanium d’Intel.

Unité 10: Superordinateurs et microprocesseurs

Cache d'instructions L1et moteur fetch /prefetch

Unitésde

virguleflottante

Cachede

donnéesL1 et

DTLB

Unitésd'entiers

et MM

File d'ins-tructions

128 registres d'entiers 128 registres de VF

Registres debranchementet de prédicat

Contrôleur de bus

ITLB

Ca

che L2

Ca

che L3

Unités debranchement

Décodageet contrôle

IA-32

Prédiction desbranchements

Register stack engine / remapping

B B B M M I I F F

Scoreboard