Exemple: le processeur MIPS
Transcription
Exemple: le processeur MIPS
Exécution des instructions machine Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Exemple: le processeur MIPS add a, b, c destination du résultat type d'opération (mnémonique) lw a = b + c opérandes sources a, addr a = mem[addr] adresse (donnée, instruction suivante) j Page 2 addr Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne goto addr ♦ Le processeur MIPS possède 32 registres ♦ Les opérations arithmétiques et logiques se font toujours entre registres ♦ Les seules instructions qui utilisent la mémoire comme opérande sont lw (load) et sw (store) ♦ La façon de donner l'adresse d'un opérande est appelée le mode d'adressage. Le processeur MIPS connaît cinq modes d'adressage: • • • • • Page 3 registre immédiat direct ou absolu indirect déplacement ou relatif Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Exemples des modes d'adressage: Page 4 • registre: add $s0,$s1,$s2 s0=s1+s2 • immédiat: add $s0,$s1,123 s0=s1+123 • direct ou absolu: add $s0,$s1,(1234) s0=s1+mem[1234] • indirect: add $s0,$s1,($s2) s0=s1+mem[s2] • déplacement ou relatif: add $s0,$s1,123($s2) s0=s1+mem[s2+123] Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Repertoire d'instructions ♦ Instructions arithmétiques et logiques Page 5 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Instructions de comparaison Page 6 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Instructions de saut conditionnel Page 7 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Instructions de saut inconditionnel Page 8 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Instructions d'accès à la mémoire Page 9 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Registres Page 10 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Exécution temporelle des instructions ♦ Toute instruction d'un processeur est exécutée en trois phases: • fetch: lecture de l'instruction en mémoire, à l'adresse donnée par le PC. L'instruction est stockée dans le registre IR • decode: identification de l'instruction • execute: exécution des opérations nécessaires à l'instruction ♦ En général, l'exécution de chaque phase de l'instruction demande au moins un cycle d'horloge. La phase execute peut demander plus d'un cycle, en fonction de la complexité de l'instruction: si une instruction de déplacement peut se faire en un seul cycle, une instruction de division a besoin de plusieurs dizaines de cycles Page 11 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Les vitesses d'horloge des processeurs actuels vont de plusieurs mégahertz (MHz) à plusieurs gigahertz (GHz) pour les plus récents ♦ Il n'y a pas beaucoup de sens à comparer les performances de deux processeurs en comparant seulement les vitesses d'horloge. En effet, pour des familles différentes, la quantité de travail effectuée en un cycle peut être très différente. Il est plus réaliste de mesurer la performance en comparant les temps d'exécution pour un même programme. Les programmes utilisés pour effectuer ces mesures sont appelés benchmarks ♦ L'ensemble de benchmarks le plus utilisé commercialement est le SPEC (Standard Performance Evaluation Corporation) Page 12 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ Une augmentation de performance sans augmentation de la vitesse d'horloge est obtenue grâce au pipeline ♦ Dans un processeur sans pipeline, l'exécution d'une instruction ne commence pas avant la fin d'exécution de l'instruction précédente i t t+1 t+2 FE DE EX i+1 t+3 t+4 t+5 FE DE EX Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 13 ♦ Dans un processeur à pipeline, à la fin de chaque phase démarre l'exécution d'une nouvelle instruction i i+1 i+2 i+3 Page 14 t t+1 t+2 t+3 FE DE EX FE DE EX FE DE EX FE DE Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne t+4 t+5 EX ♦ Le pipeline peut être vu comme un premier pas vers le parallélisme. Toutefois, le vrai parallélisme est atteint seulement avec plus d'une unité de traitement ♦ Les processeurs superscalaires peuvent chercher plusieurs instructions à la fois, exécutées en parallèle par plusieurs unités de traitement ♦ Dans les systèmes multiprocesseurs, plusieurs séquences d'instructions sont exécutées en parallèle sur différents ensembles de données: c'est les architectures MIMD (multiple-instruction stream, multiple-data stream) appelées ainsi par opposition aux traditionnelles SISD (single-instruction stream, single-data stream) ♦ Un autre type de parallélisme est obtenu avec l'architecture SIMD (single-instruction stream, multiple-data stream), où plusieurs unités de traitement exécutent en parallèle la même séquence d'instructions, mais chacune sur son propre ensemble de données Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 15 Processeurs actuels (28.08.06) Alpha 21364 EV-78+ Architecture IBM Sun Fujitsu Power5+ UltraSPARC IV+ SPARC64 V HP PA-8900 64-bit 2x64-bit 2x64-bit 64-bit 1.3 2.3 1.8 2.16 1.1 0.7 Superscalaire 4 8 4 4 4 4 Pipeline 9 17 14 10 9 6 Désordre (instr) 80 200 0 112 56 48 Technologie 0.18-7 0.09-10 0.09-9 0.09-10 0.13-7 0.11-7 Taille (mm2) 397 245 335 294 304 110 Transistors (M) 135 276 295 400 300 7.2 Consommation (W) 155 100 90 65 103 17 Fréquence (GHz) Cache (I/D/L2) 64K/64K/1.75M 64K/32K/1.92M 64K/64K/2M 2x64-bit MIPS R16000 64-bit 128K/128K/4M 1.5M/1.5M/64M 32K/32K SPECint2000b 904 1820 1300 1501 950 560 SPECfp2000b 1279 3369 1800 2094 930 580 Page 16 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Intel Intel AMD AMD Xeon 5160 Pentium 965 Opteron 256 Opteron 285 Architecture 2x32/64-bit 2x32/64-bit Itanium 2 9050 32/64-bit 2x32/64-bit 2x64-bit 3.03 3.73 3 2.6 1.6 Superscalaire 4 3 3 3 6 Pipeline 14 31 11 11 8 Désordre (instr) 96 126 72 72 0 Technologie 0.065-8 0.065-8 0.09-10 0.09-9 0.09-7 Taille (mm2) 143 162 115 199 596 Transistors (M) 291 376 114 233 1.72K Consommation (W) 80 130 95 95 104 64K/64K/1M 64K/64K/1M 16K/16K/1M/12M Fréquence (GHz) Cache (I/D/L2/L3) 32K/32K/4M 12K/16K/2M SPECint2000b 1556 1870 1942 1592 1474 SPECfp2000b 1694 2232 2260 1927 3017 Page 17 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Systèmes embarqués Page 18 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 19 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 20 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Communication ♦ La communication entre le processeur et les dispositifs d'entrée/sortie se fait normalement par le biais d'un dispositif appelé un contrôleur ♦ Le contrôleur réalise la conversion des messages entre le processeur et le périphérique, afin de respecter les formats propres à chaque dispositif périphérique contrôleur CPU Page 21 bus mémoire Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ La communication entre le processeur et le contrôleur se fait de la même manière qu'avec la mémoire: une instruction similaire au STORE envoie une chaîne de bits au contrôleur et une instruction similaire au LOAD envoie une chaîne de bits au processeur ♦ Chaque contrôleur possède un ensemble d'adresses réservées, appelées ports ♦ Certains contrôleurs peuvent accéder directement à la mémoire, sans passer par le processeur: ce type d'accès est appelé DMA (Direct Memory Access) ♦ Par exemple, pour lire un secteur d'un disque, le processeur peut envoyer une demande au contrôleur, qui se charge de la tâche pendant que le processeur exécute d'autres opérations Page 22 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ La communication avec un périphérique est en général à double sens. Un processeur, par exemple, produit des données beaucoup plus rapidement qu'une imprimante n'est capable de les traiter: afin de ne pas perdre des données, il est donc important pour le processeur de connaître l'état de l'imprimante avant chaque envoi ♦ Le dialogue entre le périphérique et le processeur, via le contrôleur, utilise un mot de status, généré par le périphérique et stocké dans le contrôleur Page 23 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne ♦ La vitesse de transmission de l'information est mesurée en bits par seconde (bps) ♦ Il y a deux grands types de trajectoires de communication: la parallèle et la sérielle. ♦ Dans la communication parallèle, plusieurs bits sont transférés en même temps, chacun sur une ligne séparée ♦ Dans la communication sérielle, on transfère un seul bit à la fois. Cette technique est plus lente, mais demande une implémentation plus simple (donc, moins chère) ♦ Un exemple bien connu de communication sérielle est l'utilisation des modems (modulateur-démodulateur) pour transférer de l'information via des lignes téléphoniques. Les chaînes de bits sont d'abord transformées en tonalités pour être transférées par la ligne téléphonique et, ensuite, à leur destination, ces tonalités sont de nouveau transformées en chaînes de bits Page 24 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne