• Aucun résultat trouvé

Exemple: le processeur MIPS

N/A
N/A
Protected

Academic year: 2022

Partager "Exemple: le processeur MIPS"

Copied!
24
0
0

Texte intégral

(1)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

Exécution des

instructions machine

(2)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 2

Exemple: le processeur MIPS

add a, b, c

lw a, addr

j addr

destination du

résultat opérandes sources

adresse

(donnée, instruction suivante) type d’opération

(mnémonique)

a = b + c

a = mem[addr]

goto addr

(3)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 3

♦ 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:

registre

immédiat

direct ou absolu

indirect

déplacement ou relatif

(4)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 4

♦ Exemples des modes d’adressage:

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]

(5)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 5

Repertoire d'instructions

♦ Instructions arithmétiques et logiques

(6)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 6

♦ Instructions de comparaison

(7)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 7

♦ Instructions de saut conditionnel

(8)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 8

♦ Instructions de saut inconditionnel

(9)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 9

♦ Instructions d'accès à la mémoire

(10)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 10

Registres

(11)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 11

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

(12)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 12

♦ 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

)

(13)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 13

♦ 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

FE DE EX

FE DE EX

i i+1

t t+1 t+2 t+3 t+4 t+5

(14)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 14

♦ Dans un processeur à pipeline, à la fin de chaque phase démarre l’exécution d’une nouvelle instruction

FE DE EX

FE DE EX

i i+1

t t+1 t+2 t+3 t+4 t+5

FE DE EX

FE DE EX

i+2 i+3

(15)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 15

♦ 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

(16)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 16

Alpha

21364 EV-78+ IBM

Power5 Sun

UltraSPARC VI HP

PA-8900 MIPS R16000

Fréquence (GHz) 1.3 1.9 1.2 1.16 0.7

Superscalaire 4 8 8 4 4

Pipeline 7/9 12/17 14 7/9 6

Technologie 0.18-7 0.13-7 0.13-7 0.13-7 0.11-7

Taille (mm2) 397 389 356 304 110

Transistors (M) 135 276 66 300 7.2

Consommation (W) 155 120 108 103 17

SPECint2000b 904 1398 - - -

SPECfp2000b 1279 2576 - - -

Processeurs actuels (29.08.05)

Cache (I/D/L2) 64K/64K/1.75M 64K/32K/1.92M 32K/64K/16M 1.5M/1.5M/64M 32K/32K

Désordre (instr) 80 200 0 56 48

Architecture 64-bit 2x64-bit 2x64-bit 2x64-bit 64-bit

Fujitsu SPARC64 V

2.16 8 9

0.09-10 294 400 65

1456 1808

128K/128K/4M

112 64-bit

(17)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 17

Itanium 2

Fréquence (GHz) 1.66

Superscalaire 6

Pipeline 8

Technologie 0.13-6

Taille (mm2) 432

Transistors (M) 592

Consommation (W) 130

SPECint2000b 1490

SPECfp2000b 2801

Cache (I/D/L2/L3) 16K/16K/256K/9M

Désordre (instr) 0

Architecture 64-bit

Intel Xeon

3.6 3 22/24

0.09-6 145 175 110

1725 1809 126

AMD Opteron 152

2.6 3 9/11

0.13-6 193 106 92

1621 1901

64K/64K/1M

72

32/64-bit 32/64-bit

AMD Opteron 275

2.2 3 9/11

0.09-7 199 233 95

1465 1719

64K/64K/1M

72 2x32/64-bit Intel

XeonMP

3.6 3 22/24

0.09-6 130 125 140

1388 1314 126 32/64-bit

12K/512K/2M 12K/8K/1M

(18)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 18

Systèmes embarqués

(19)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 19

(20)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 20

(21)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 21

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

CPU mémoire

contrôleur périphérique

bus

(22)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 22

♦ 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

(23)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 23

♦ 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

(24)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne Page 24

♦ 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

Références

Documents relatifs

La syntaxe générale pour lire la mémoire à l’adresse adr et enregistrer la valeur dans le registre reg est la suivante (les crochets font partie de la syntaxe) :.. 1 mov

Si par exemple nous analysons examples/board timer 64led, nous constatons que le comportement du circuit imprim´ e est d´ ecrit dans timer 64led.c tandis que le logiciel ` a

Dans ce cas, il vous faudra probablement supprimer le bruit, améliorer la netteté, ajouter des informations de droits d'auteur et redimensionner vos photos avant de les

5- Calculer en octal puis en hexadécimale, l’adresse du 4 ème élément du tableau dont l’adresse du 1 er élément est (1C) en base 16 et dont tous les éléments sont composés

L’instruction load permet de charger dans l’accumulateur une donnée de la mémoire, on utilise l’opération mov2 de l’UAL qui recopie la deuxième opérande sur la sortie :.

La strat´ egie SJF peut ˆ etre adpat´ ee pour un mode pr´ eemptif : si un processus plus court que le processus actif arrive dans la file, le processus actif est pr´ eempt´

ajoute la constante offset `a l’adresse contenue dans le registre base pour obtenir une nouvelle adresse. sauvegarde le registre source `a cette adresse move

Même si au fil des années les processeurs embarquent de plus en plus de fonctionnalités anciennement prises en charge par des composants de la carte mère,