240 likes | 691 Views
Architecture et technologie des ordinateurs II . Gianluca Tempesti EPFL-DI-LSL, INN 235 Tel: 693 2676 E-Mail: gianluca.tempesti@epfl.ch Web: lslwww.epfl.ch/~tempesti/CoursUNIL.htm. Bibliographie. John P. Hayes, Computer Architecture and Organization , McGraw-Hill, 3rd ed., 1998.
E N D
Architecture et technologiedes ordinateurs II Gianluca Tempesti EPFL-DI-LSL, INN 235 Tel: 693 2676 E-Mail: gianluca.tempesti@epfl.ch 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.
Semaine 1: Introduction Historique Prix vs. performance Niveaux de conception Semaine 2: Arithmétique I Virgule fixe et flottante Addition et soustraction Semaine 3: Arithmétique II Multiplication et division Unité de traitement Semaine 4: Contrôle Unité de contrôle Programmes Semaine 5: Instructions Jeux d’instructions Décodage Séquencement Modes d’adressage Semaine 6: Processeurs Microprogrammation Types de processeur Programme détaillé
Semaine 7: Procédures Gestion des procédures Gestion des interruptions Semaine 8: Mémoires I RAM Mémoire virtuelle Semaine 9: Mémoires II Mémoire cache Mémoires associatives Semaine 10: Périphériques Gestion du bus système Gestion des périphériques Semaine 11: Petite pause Semaine 12: Pipelining Fonctionnement Aléas des pipelines Prédiction de branchement Semaine 13: Parallélisme des instructions I Ordonnancement dynamique Lancement multiple Compilation Semaine 14: Parallélisme des instructions II Architectures avancées Programme détaillé
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 - Difference engine - addition • Séquence d’instructions • 1834 - 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 • Instructions: read, write, move, halt • Machine “universelle” Processor P H Read/Write Head Memory Tape T
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 Technologie Tubes à vide Transistors Circuits intégrés VLSI ???? Produits Ordinateurs électroniques Ordinateurs commerciaux Miniordinateurs PC et stations de travaille ???? 1 2 3 4 5 Dates 1950-1959 1960-1968 1969-1977 1977-???? ????-????
Historique V - Générations Date 1951 1964 1965 1976 1981 1991 1996 Produit UNIVAC I IBM S/360 PDP-8 Cray-1 IBM PC HP9000 PPro 200 Taille (ft3) 1000 60 8 58 1 2 2 Puissance (W) 124500 10000 500 60000 150 500 500 Add/sec 1900 500K 330K 166M 240K 50M 400M Prix (1996) $5M $4M $66K $8.5M $4K $8K $4.5K
Performance • Temps d’exécution et bande passante • Coups d’horloge et instructions 1 Performance = Temps d’exécution # coups d’horloge pour le programme Temps d’exécution (CPU) = 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 • La loi d’Amdahl Temps d’exécution avant amélioration Accélération (speedup) = Temps d’exécution après amélioration Temps d’exécution après amélioration = Temps d’exécution concerné + Temps d’exécution non concerné Amélioration
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
Coûts • Coût de fabrication • Coût des composants = 25-30% du prix de vente 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
Vcc TRANSITORS INVERSEUR C=0 C=0 C A B C A B OUT=0 IN=1 C=1 C=1 A B A B IN OUT 0 1 A B A B 1 0 GND Codage binaire Dans les systèmes numériques, toute information est codée en binaire Codage en base 2: N = pn2n + … + p222 + p121 + p020 par exemple: 10110 = 1x24 + 0x23 + 1x22 + 1x21 + 0x20 = 16 + 4 + 2 = 22 mais aussi: 10110 = add R1, R2
2-INPUT 2-INPUT AND GATE OR GATE I O 1 0 0 1 A B O A B O S0 S1 O 0 0 0 0 0 0 0 0 A 0 1 1 0 1 B 0 1 0 1 0 C 1 0 0 1 0 1 1 1 D 1 1 1 1 1 1 Logique combinatoire I • Portes logiques • Algèbre booléenne • Minimisation (tables de Karnaugh) 4-INPUT INVERTER MULTIPLEXER A A A I O O O B B B O C D S0 S1
Logique combinatoire III • Unité arithmétique et logique (ALU) M S1 S0 F 0 0 0 A 0 0 1 A•B 0 1 0 A 0 1 1 A+B 1 0 0 A-1 1 0 1 A+B 1 1 0 A-B 1 1 1 A+1 logique A B M S F 2 arithmétique
Logique séquentielle I • Verrou (latch) • Bascule (flip-flop) 0 Q D Q Q LD Q D 1 D: entrée d’excitation LD: entrée de contrôle Q: sortie ou état du latch LD maître esclave D Q D Q D Q D Q CK LD Q LD Q Q Q CK
Logique séquentielle II • Machine d’état 10/1 n état présent ƒ bascules X1X2/Z état futur a 0001 11/1 10/1 00/0 01/0 00/0 b 0010 d 1000 CK 10/0 01/0 00/1 11/1 11/0 11/0 10/0 00/1 c 0100 01/1 01/1
Logique séquentielle III Registre Registre à décalage Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 CK CK S0 L D3 D2 D1 D0 D3 D3 D2 D1 D0 D0 S1 Pile (stack) Compteur push pop Q3 Q2 Q1 Q0 CK 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. CPU Cache Instructions Unité de Contrôle Unité de Traitement Cache Données Décodeur ALU Unité Flottante PC Registres
Niveau système • Unités d’information: programme, structures de données. • Composants de base: mémoire, CPU, I/O, 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. MÉMOIRE CPU IO IO IO • • • • • BUS SYSTÈME
Von Neumann vs. Harvard • Von Neumann • Harvard MÉMOIRE CPU IO IO IO • • • • • BUS SYSTÈME BUS INSTRUCTIONS MÉMOIRE DONNÉES MÉMOIRE INSTR CPU IO IO IO • • • • • BUS DONNÉES
Hiérarchie des mémoires • Architecture Von Neumann • Architecture Harvard • Architecture Harvard “réelle” Mémoire non-volatile (disque dur) Mémoire volatile (RAM) Mémoire cache (niveau 2) Mémoire cache (niveau 1) Registres CPU (niveau 0) Mémoire volatile instructions Cache instructions (niveau 2) Cache instructions (niveau 1) Mémoire non-volatile (disque dur) Mémoire volatile données Cache données (niveau 2) Cache données (niveau 1) Registres CPU (niveau 0) Cache instructions (niveau 1) Mémoire non-volatile (disque dur) Mémoire volatile (RAM) Mémoire cache (niveau 2) Cache données (niveau 1) Registres CPU (niveau 0)