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 G. Tempesti 1
Architecture et technologie des ordinateurs II 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. G. Tempesti 2
Architecture et technologie des ordinateurs II Programme détaillé 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 G. Tempesti 3
Architecture et technologie des ordinateurs II 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 G. Tempesti 4
Historique I - Époque méchanique Architecture et technologie des ordinateurs II 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 G. Tempesti 5
Architecture et technologie des ordinateurs II 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 G. Tempesti 6
Historique III - Deuxième guerre 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) G. Tempesti 7
Historique IV - Générations Architecture et technologie des ordinateurs II Historique IV - Générations 1 2 3 4 5 Dates 1950-1959 1960-1968 1969-1977 1977-???? ????-???? Technologie Tubes à vide Transistors Circuits intégrés VLSI ???? Produits Ordinateurs électroniques Ordinateurs commerciaux Miniordinateurs PC et stations de travaille ???? G. Tempesti 8
Historique V - Générations Architecture et technologie des ordinateurs II 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 Puissance (W) 124500 10000 500 60000 150 Add/sec 1900 500K 330K 166M 240K 50M 400M Prix (1996) $5M $4M $66K $8.5M $4K $8K $4.5K G. Tempesti 9
Architecture et technologie des ordinateurs II 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 G. Tempesti 10
Performance - Loi d’Amdahl Architecture et technologie des ordinateurs II 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 G. Tempesti 11
Architecture et technologie des ordinateurs II 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 12
Architecture et technologie des ordinateurs II 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 G. Tempesti 13
Architecture et technologie des ordinateurs II Codage binaire Dans les systèmes numériques, toute information est codée en binaire IN OUT 0 1 1 0 IN=1 OUT=0 Vcc GND INVERSEUR TRANSITORS C C=0 C=1 B A C C=0 C=1 B A 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 G. Tempesti 14
Logique combinatoire I Architecture et technologie des ordinateurs II Logique combinatoire I Portes logiques Algèbre booléenne Minimisation (tables de Karnaugh) 2-INPUT AND GATE 2-INPUT OR GATE 4-INPUT INVERTER MULTIPLEXER A A A I O O O B B B O C I O 0 1 1 0 A B O 0 0 0 0 1 0 1 0 0 1 1 1 A B O 0 0 0 0 1 1 1 0 1 1 1 1 D S0 S1 S0 S1 O 0 0 A 0 1 B 1 0 C 1 1 D G. Tempesti 15
Logique combinatoire III Architecture et technologie des ordinateurs II 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 G. Tempesti 16
Logique séquentielle I Architecture et technologie des ordinateurs II Logique séquentielle I Verrou (latch) Bascule (flip-flop) D Q 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 D Q D Q Q D Q LD Q LD Q CK Q Q CK G. Tempesti 17
Logique séquentielle II Architecture et technologie des ordinateurs II 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 01/1 c 0100 00/1 01/1 G. Tempesti 18
Logique séquentielle III Architecture et technologie des ordinateurs II Logique séquentielle III Registre Registre à décalage Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 CK CK S0 L D3 D2 D1 D0 S1 D3 D3 D2 D1 D0 D0 Pile (stack) Compteur push pop Q3 Q2 Q1 Q0 CK DIR CK sommet G. Tempesti 19
Architecture et technologie des ordinateurs II 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). G. Tempesti 20
Niveau processeur (CPU) Architecture et technologie des ordinateurs II 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 G. Tempesti 21
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 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 G. Tempesti 22
Architecture et technologie des ordinateurs II 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 G. Tempesti 23
Hiérarchie des mémoires Architecture et technologie des ordinateurs II 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) G. Tempesti 24