Architecture des ordinateurs Introduction Daniel Etiemble [email protected] Les grandes classes de système Caractéristique Ordinateur de bureau Serveur Enfoui/embarqué Prix du microprocesseur 100 à 1000 € 200 à 2000 € par processeur 0,20 à 200 € par processeur Microprocesseurs vendus en 2000 150 millions 4 millions 300 millions (en ne comptant que les 32 et 64 bits) Critères Prixperformance Performance graphique Débit, disponibilité, extensibilité Prix, puissance dissipée, performance pour l’application IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 2 1 Ventes des microprocesseurs (fin du siècle dernier ☺) • Processeurs enfouis/embarqués – – – – 4 bits : 2 milliards 8 bits : 4,7 milliards 16 bits : 700 millions 32 bits : 400 millions • DSP (traitement du signal) – 600 millions • Généralistes classiques – 150 millions IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 3 Les applications • • • • • • • • Usage général Calcul Scientifique GRAPHIQUE Traitement du signal JAVA BD WEB Enfoui et embarqué IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 4 2 PERFORMANCE NI Texécution = NI * CPI * Tc = IPC * F Temps de cycle Nombre de cycles/Instruction • Nombre d’instructions – Jeu d’instructions et compilateur • CPI – Microarchitecture • Tc – Technologie CMOS et Microarchitecture IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 5 DES EXPONENTIELLES MICROPROCESSEURS 2x/1,5an CPU Performance après 1987 Performance avant 1986 Fréquence d'horloge (MOS) Evolution/an IFIPS2 2007-08 0% 10% 20% 30% 40% 50% 60% Architecture des ordinateurs D. Etiemble 6 3 DES EXPONENTIELLES MEMOIRES 2x/1,5an 0% 20% 40% 60% C ap a cit é La te nc e 0,5/10 ans Evolution/an DISK IFIPS2 2007-08 DRAM Architecture des ordinateurs D. Etiemble 7 Moore’s Law Transistors Per Die 108 256M Memory Microprocessor 107 106 256K i486™ i486™ 64K 4K 16K 1K 80286 Pentium® Pentium® III Pentium® II Pentium® Pro i386™ i386™ 8086 103 102 4M 1M 105 104 16M 64M 4004 8080 101 100 ’70 ’73 ’76 ’79 ’82 ’85 ’88 ’91 ’94 '97 2000 Source: Intel IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 8 4 LES DIFFERENTIELS 10000 1000 CPU 100 Mémoire 10 2000 98 96 94 92 90 88 86 84 82 80 1 Complexité croissante de la hiérarchie mémoire IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 9 Densité de puissance 1000 Nuclear Nuclear Reactor Reactor 2 Watts/cm 100 Rocket Nozzle Pentium® Pentium® 4 Hot plate 10 Pentium® Pentium® III Pentium® Pentium® II Pentium® Pentium® Pro Pentium® Pentium® i386 i486 1 1.5µ 1µ 0.7µ 0.5µ 0.35µ 0.25µ 0.18µ 0.13µ 0.1µ 0.07µ * “New Microarchitecture Challenges in the Coming Generations of CMOS CMOS Process Technologies” Technologies” – Fred Pollack, Intel Corp. Micro32 conference key note - 1999. IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 10 5 Le grand virage… • Evolution des processeurs pour PC (Intel, AMD) – De l’augmentation de la fréquence d’horloge… – Au parallélisme Processeur logique 1 Processeur logique 2 Processeur physique 1 Etat archit. Etat archit. (registres) (registres) Etat archit. (registres) Unités fonctionnelles Unités fonctionnelles Caches Caches Mémoire principale Etat archit. (registres) Unités fonctionnelles Caches Mémoire principale Multi-threads IFIPS2 2007-08 Processeur physique 2 Multi-cœurs Architecture des ordinateurs D. Etiemble 11 Jeux d’instructions • Des objectifs différents selon les classes d’applications – Vitesse maximale (PC, serveurs) – Taille de code minimale (embarqué) – Consommation • essentiel pour embarqué • important pour tous • Taille des instructions – Fixe – Variable • Modèles d’exécution IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 12 6 Les objectifs • Performance – Pipeline efficace • Instructions de longueur fixe • Décodage simple • Modes d’adressage simples • Taille du code – Minimiser la taille des instructions • Instructions de longueur variable (ou fixe) – Accès aux données efficace • Modes d’adressage complexes et efficaces pour applications visées • Compatibilité binaire avec les générations précédentes – Exemple IA-32 (x86) IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 13 Modèles d’exécution • Modèles d’exécution (n,m) – n : nombre d’opérandes par instruction – m : nombre d’opérandes mémoire par instruction • Les différents modes – RISC : (3,0) • Instructions de longueur fixe • Load et Store : seules instructions mémoire – IA-32 : (2,1) – Pile (0,0) • Tous les opérandes sont accédés via la pile IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 14 7 Modèle d’exécution RISC (n,m) n : nombre d’opérandes par instruction m : nombre d’opérandes mémoire par instruction Ex : A : = B + C LOAD-STORE (3,0) MP Load Load Add Store R1 @B R2 @C R3 R2 R1 R3 @A MP C B A R1 R2 R3 MP C B A R1 R2 R3 R1 R2 R3 C B A + R1 R2 R3 Instructions de longueur fixe Seules les instructions Load et Store accèdent à la mémoire IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 15 Registres: organisation RISC • 32 registres généraux (entiers) R0 à R31 • 32 registres flottants • Instructions UAL et mémoire – Registre – registre • Rd ← Rs1 op Rs2 – Registre – immédiat • Rd ← Rs1 op immédiat • Rd ↔ Mémoire (Rs1 + dépl.) IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 16 8 Formats d’instructions RISC • Instructions UAL et Mémoire 6 MIPS Code Op MIPS Code Op 6 5 5 5 S1 S2 D 5 Décalages 5 5 16 S1 D Immédiat 6 RR Ext. Code op RI • Sauts et branchements 6 MIPS 5 Code Op 5 S1 16 S2/ext code op 6 MIPS Déplacement BC 26 Code Op Déplacement IFIPS2 2007-08 B,J,C Architecture des ordinateurs D. Etiemble 17 Modèle (2,1) (n,m) n : nombre d’opérandes par instruction m : nombre d’opérandes mémoire par instruction Ex : A : = B + C REGISTRE-MEMOIRE (2,1) MP Load Add Store R1 R1 R1 @B @C @A R1 R2 R3 MP MP C B A C B A R1 R2 R3 C B A R1 R2 R3 + CISC compatible avec la technologie MOS des années 75-80 IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 18 9 Caractéristiques IA-32 • Instructions de longueur variable Op code Reg. et MA Déplacement 1 or 2 1 or 2 0, 1, 2 or 4 Immédiat 0, 1, 2 or 4 octets – Inst dest, source REG REG REG MEM REG MEM IMM REG MEM IMM Lecture mémoire, Exécution, Ecriture mémoire • Instructions complexes – Rep • Modes d’adressage complexes Adresse mémoire = Rb + RI x f + déplacement IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 19 Registres : organisation IA-32 • Organisation non homogène – 8 registres «généraux» avec rôle spécifique – Registres flottants fonctionnant en pile (x87) – Registres «SIMD» MMX, SSE-SSE2SSE3) IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 20 10 Le débat RISC-CISC pour les PC • Définition – RISC : modèle (3,0) – CISC : tous les autres • RISC et pipeline – Les jeux d’instructions RISC facilitent la réalisation de pipelines performants • « Solution » Intel et AMD pour IA-32 – Convertir les instructions CISC en instructions RISC lors du décodage des instructions (conversion dynamique) • On conserve la compatibilité binaire • On a l’efficacité des pipelines « RISC » IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 21 Traduction des instructions x86 Pentium Pro, PII, PIII, P4 IFIPS2 2007-08 Instructions x86 Opérations RISC add EAX, [EBP +d8] load temp, [EBP + d8] add EAX, temp add [EBP +d8], EAX load temp, [EBP + d8] add EAX, temp store EAX, [EBP+8] cmp EAX, imm32 cmp EAX, imm32 push ECX sub ESP, 4 store [ESP], ECX Architecture des ordinateurs D. Etiemble 22 11 Jeux d’instructions et applications • Instructions SIMD • Instructions pour traitement du signal (processeur DSP) – Multiplication - accumulation – Produit scalaire – Modes d’adressage complexes pour simplifier l’accès aux données – Modes d’adressage spécifiques au traitement du signal • Mode d’adressage circulaire • Mode d’adressage « bits inversées » pour la FFT IFIPS2 2007-08 Architecture des ordinateurs D. Etiemble 23 12