Architecture et technologie des ordinateurs II Architecture et technologie des ordinateurs II Gianluca Tempesti EPFL-DI-LSL, INN 235 Tel: 693 2676 E-Mail: [email protected] Web: lslwww.epfl.ch/~tempesti/CoursUNIL.htm Bibliographie ¾John P. Hayes, Computer Architecture and Organization , McGraw-Hill, 3rd ed., 1998. ¾David A. Patterson and John L. Hennessy, Computer Architecture : A Quantitative Approach, Morgan Kaufmann, 2nd Ed., 1996. ¾David A. Patterson and John L. Hennessy, Computer Organization and Design : The Hardware/Software Interface, Morgan Kaufmann, 2nd ed., 1997. ¾David A. Patterson and John L. Hennessy, Architecture des ordinateurs: une approche quantitative, Thomson Publishing, 2ème ed., 1996. Programme détaillé ® Semaine ¾ ¾ ¾ ® Semaine ¾ ¾ 1: Introduction Historique Prix vs. performance Niveaux de conception ® ¾ ¾ ® 2: Arithmétique I ¾ ¾ ¾ ® Semaine ¾ ¾ Multiplication et division Unité de traitement G. Tempesti ® Unité de contrôle Programmes Semaine 5: Instructions ¾ Virgule fixe et flottante Addition et soustraction 3: Arithmétique II Semaine 4: Contrôle Jeux d’instructions Décodage Séquencement Modes d’adressage Semaine 6: Processeurs ¾ ¾ Microprogrammation Types de processeur Semaine I 1 Architecture et technologie des ordinateurs II Programme détaillé ® Semaine ¾ ¾ ® Semaine ¾ ¾ ¾ ¾ Semaine 11: Petite pause ® Semaine 12: Pipelining ¾ ¾ ¾ ® 9: Mémoires II ¾ ¾ ¾ 10: Périphériques Gestion du bus système Gestion des périphériques ® Fonctionnement Aléas des pipelines Prédiction de branchement Semaine 13: Parallélisme des instructions I Mémoire cache Mémoires associatives ® Semaine ¾ ® 8: Mémoires I RAM Mémoire virtuelle ® Semaine ¾ 7: Procédures Gestion des procédures Gestion des interruptions Ordonnancement dynamique Lancement multiple Compilation Semaine 14: Parallélisme des instructions II ¾ Architectures avancées Historique I - Époque méchanique ® Blaise Pascal - 1642 - Addition et soustraction ¾ Retenue ® automatique, complément Gottfried Leibniz - 1671 - Multiplication et division ¾ Additions ® successives Charles Babbage ¾ 1823 ¾ 1834 - Difference engine - addition Séquence d’instructions - Analytical engine - toute opération Contrôle de séquence (programme), ALU et mémoire Historique II - Calcul ® Calcul : Z=f(X) ® Turing machine - 1936 Processor P HH Read/Write Head Memory Tape T ¾ Instructions: ¾ Machine G. Tempesti read, write, move, halt “universelle” Semaine I 2 Architecture et technologie des ordinateurs II Historique III - Deuxième guerre ® Ordinateurs éléctroméchaniques ¾ Konrad Zuse - Z3 (1941) - nombres binaires, flottants - Colossus (1943/1970) - décodage ¾ Howard Aiken - Harvard Mark I (1944) ¾ ??? ® Ordinateurs éléctroniques ¾ Mauchly & Eckert - ENIAC (1946) Programmation manuelle, base 10 ¾ Wilkes - EDSAC (1949) Programme embarqué, base 2 ¾ Von Neumann, Mauchly & Eckert - EDVAC (1951) Rapport Burks, Goldstine et Von Neumann (1946) Historique IV - Générations Dates Technologie Produits 1 1950-1959 Tubes à vide Ordinateurs électroniques 2 1960-1968 Transistors Ordinateurs commerciaux 3 1969-1977 Circuits intégrés Miniordinateurs 4 1977-???? VLSI PC et stations de travaille 5 ????-???? ???? ???? Historique V - Générations Date Produit Taille (ft 3) Puissance (W) Add/sec Prix (1996) 1951 UNIVAC I 1000 124500 1900 1964 IBM S/360 60 10000 500K $4M 1965 PDP-8 8 500 330K $66K 1976 Cray-1 58 60000 166M $8.5M 1981 IBM PC 1 150 240K $4K 1991 HP9000 2 500 50M $8K 1996 PPro 200 2 500 400M $4.5K G. Tempesti $5M Semaine I 3 Architecture et technologie des ordinateurs II Performance ® Temps d’exécution et bande passante 1 Performance = Temps d’exécution ® Coups d’horloge et instructions Temps d’exécution (CPU) = # coups d’horloge pour le programme Fréquence d’horloge # coups d’horloge pour le programme = # instructions ¥ # coups d’horloge moyen par instruction Performance - Loi d’Amdahl ® Améliorations et accélération Accélération (speedup) = Temps d’exécution avant amélioration Temps d’exécution après amélioration ® La loi d’Amdahl Temps d’exécution après amélioration = Temps d’exécution concerné Amélioration + Temps d’exécution non concerné Performance - Mesures ® MIPS et FLOPS ® Fréquence d’horloge ® Performance de pointe (peak) ® Benchmarks ¾ Répartition des instructions ¾ Taille ¾ Localité des références (spatiale et/ou temporelle) ¾ SPEC G. Tempesti Semaine I 4 Architecture et technologie des ordinateurs II Coûts ® Coût de fabrication Coût du circuit intégré = Coût de la puce + Coût du test + Coût de la mise en boîtier Rendement après le test final Coût de la tranche (wafer) Coût d’une puce = Puces par tranche x Rendement des puces ® Coût des composants = 25-30% du prix de vente Codage binaire Dans les systèmes numériques, toute information est codée en binaire Vcc TRANSITORS C=0 C A INVERSEUR C=0 B C A B OUT=0 IN=1 A C=1 B A A B C=1 B A B IN 0 1 OUT 1 0 GND Codage en base 2: N = p n2n + … + p222 + p121 + p020 par exemple: 10110 = 1x2 4 + 0x2 3 + 1x2 2 + 1x2 1 + 0x2 0 = 16 + 4 + 2 = 22 mais aussi: 10110 = add R1, R2 Logique combinatoire I ® Portes logiques INVERTER I I 1 0 O O 0 1 2-INPUT AND GATE A O B A B O 0 0 0 0 1 0 1 0 0 1 1 1 2-INPUT OR GATE A O B A B O 0 0 0 0 1 1 1 0 1 1 1 1 ® Algèbre booléenne ® Minimisation (tables de Karnaugh) G. Tempesti 4-INPUT MULTIPLEXER A B O C D S0 S1 S0 0 0 1 1 S1 0 1 0 1 O A B C D Semaine I 5 Architecture et technologie des ordinateurs II Logique combinatoire III ® Unité arithmétique et logique (ALU) M S1 S0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 F A A•B A A+B A-1 A+B A-B A+1 logique A B M S F 2 arithmétique Logique séquentielle I ® Verrou (latch) 0 D Q D Q LD Q Q 1 D: entrée d’excitation LD: entrée de contrôle Q: sortie ou état du latch LD ® Bascule (flip-flop) maître D D esclave Q Q Q LD Q Q D LD Q D Q CK Q CK Logique séquentielle II ® Machine d’état 10/1 ƒ bascules état futur n état présent X1X2/Z a 0001 11/1 10/1 01/0 00/0 00/0 CK 11/1 d 1000 10/0 01/0 b 0010 00/1 11/0 11/0 10/0 01/1 c 00/1 0100 01/1 G. Tempesti Semaine I 6 Architecture et technologie des ordinateurs II Logique séquentielle III Registre CK Q3 Q2 Q1 Q0 L D3 D2 D1 D0 Registre à décalage CK S0 S1 Q3 Q2 Q1 Q0 D3 D3 D2 D1 D0 D0 Pile (stack) Compteur CK push pop Q3 Q2 Q1 Q0 DIR CK sommet Niveau registre ® Unité d’information: mot (2N bits) ® Composants de base: multiplexeurs, décodeurs, additionneurs, ALUs, registres, registres à décalage, compteurs, etc. ® Pas de méthode formelle pour les optimisations et les simplifications. ® L’algèbre booléenne peut être adaptée, mais ne suffit pas (opérations numériques). Niveau processeur (CPU) ® Unités d’information: blocs d’instructions, blocs de données. ® Composants de base: mémoire cache, datapath, décodeur, bancs de registres, unité flottante. Cache Instructions Unité Unitéde de Contrôle Contrôle Décodeur CPU Unité Unitéde de Traitement Traitement Cache Données ALU Unité Flottante PC Registres Registres G. Tempesti Semaine I 7 Architecture et technologie des ordinateurs II Niveau système ® Unités d’information: programme, structures de données. ® Composants de base: mémoire, CPU, I/O, bus système MÉMOIRE MÉMOIRE CPU CPU IO IO IO IO IO IO • • • • • BUS SYSTÈME ® I/Os “standard”: cartes SCSI et/ou IDE, clavier, souri, haut-parleurs, etc. ® La vitesse du bus système devient le facteur prédominant pour la performance d’un ordinateur. Von Neumann vs. Harvard ® Von Neumann MÉMOIRE MÉMOIRE CPU CPU IO IO IO IO IO IO • • • • • BUS SYSTÈME ® Harvard BUS INSTRUCTIONS MÉMOIRE MÉMOIRE MÉMOIRE MÉMOIRE DONNÉES INSTR DONNÉES INSTR CPU CPU IO IO IO IO IO IO • • • • • BUS DONNÉES Hiérarchie des mémoires Architecture Von Neumann Mémoire non-volatile (disque dur) Architecture Mémoire cache (niveau 1) Mémoire volatile instructions Cache instructions (niveau 2) Cache instructions (niveau 1) Mémoire volatile données Cache données (niveau 2) Cache données (niveau 1) Registres CPU (niveau 0) Registres CPU (niveau 0) Harvard “réelle” Mémoire non-volatile (disque dur) G. Tempesti Mémoire cache (niveau 2) Harvard Mémoire non-volatile (disque dur) Architecture Mémoire volatile (RAM) Mémoire volatile (RAM) Mémoire cache (niveau 2) Cache instructions (niveau 1) Cache données (niveau 1) Registres CPU (niveau 0) Semaine I 8