L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... ·...

45
L’ARCHITECTURE DE VON NEUMANN COMPILATION

Transcript of L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... ·...

Page 1: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

L’ARCHITECTURE DE VON NEUMANN

COMPILATION

Page 2: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Organisation de base d'une machine de von Neumann

Eduardo Sanchez EPFL

Le logiciel

int data = 0x123456; int result = 0; int mask = 1; int count = 0; int temp;

while (count < 32) { temp = data & mask; result = result + temp; data = data >> 1; count = count + 1; };

/* result = 9 */

variables

data:

result:

mask:

0x123456

0

1

0 count:

undef temp:

contrôle

opérations et affectations

Eduardo Sanchez 2

Page 3: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

0 mov $r0, 0x123456 # $r0 data

1 mov $r1, 0 # $r1 result

2 mov $r2, 1 # $r2 mask

3 mov $r3, 0 # $r3 count

4 loop: and $r4, $r0, $r2 # $r4 = $r0 & $r2

5 add $r1, $r1, $r4 # $r1 = $r1 + $r4

6 srl $r0, $r0, 1 # $r0 = $r0 + 1

7 add $r3, $r3, 1 # $r3 = $r3 + 1

8 bne $r3, 32, loop # $r3 != 32 loop

9 fin:

variables

opérations et affectations

contrôle

Eduardo Sanchez 3

Architecture des ordinateurs

• Les données traitées par un ordinateur sont stockées dans sa mémoire

• L'élément de l'ordinateur qui réalise les opérations de traitement des données est le processeur ou CPU (Central Processing Unit)

• Le processeur peut être divisé en deux parties: • l'unité de traitement: ensemble d'opérateurs arithmétiques et logiques,

groupés autour d'une ou plusieurs ALUs (Arithmetic and Logic Unit); • l'unité de contrôle: coordonnateur des différentes activités du processeur

• En plus, le processeur possède ses propres unités de stockage d'information, plus rapides que la mémoire, mais moins nombreuses: les registres

Eduardo Sanchez 4

Page 4: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

• Le transfert des données entre la mémoire et le processeur se fait via un ensemble de lignes d'interconnexion: le bus

• Le processeur est capable de lire ou d'écrire une donnée dans la mémoire: il doit envoyer l'adresse de la donnée et un signal indiquant le type d'opération

mémoire unité de

contrôle

unité de traitement

bus

processeur

ALU registres

Eduardo Sanchez 5

• L'exécution d'une tâche, aussi simple soit-elle, implique une série d'opérations, réalisées dans l'unité de traitement et coordonnées par l'unité de contrôle, avec des transferts de données entre la mémoire et le processeur

• L'addition de deux nombres, par exemple, pourrait se faire en 5 pas: • chercher le premier nombre dans la mémoire et le placer dans un registre du

processeur • chercher le deuxième nombre dans la mémoire et le placer dans un autre

registre • activer l'additionneur avec les deux registres précédents comme sources;

stocker le résultat dans un registre • sauver le résultat dans la mémoire • arrêter

Eduardo Sanchez 6

Page 5: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

ALU Registres

A

B

W

AW Wr AA AB

Op

5 add $r1, $r1, $r4

$r1

$r4

$r1

'1' +

Eduardo Sanchez 7

+ 1

compteur de programme (PC) D Q

mémoire d'instruction

A Dout

logique de contrôle add $r1, $r1, $r4

$r1

$r4

$r1

'1' +

5

6

Eduardo Sanchez 8

Page 6: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

+ 1

compteur de programme (PC) D Q

mémoire d'instruction

A Dout

logique de contrôle bne $r3, 32, loop

$r3

32

undef

'0' !=

8

9

4 (= loop)

Eduardo Sanchez 9

Architecture de von Neumann

• Dans les premiers ordinateurs, les différents pas nécessaires à l'exécution d'une tâche, le programme, étaient directement câblés dans l'unité de contrôle

• Un grand progrès a été effectué lorsque le programme, comme les données, a été codé et stocké dans la mémoire principale: c'est l'architecture appelée de von Neumann

• La fonction de l'unité de contrôle est de lire le programme de la mémoire, décoder les instructions et commander leur exécution

• Un changement de programme se fait maintenant par une simple réécriture de la mémoire

Eduardo Sanchez 10

Page 7: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

processeur

mémoire d'instruction

mémoire de données

imA imD dmA dmD

architecture de Harvard

processeur

A D

architecture de von Neumann

mémoire unifiée

Eduardo Sanchez 11

Langage machine • Les processeurs doivent reconnaître des instructions codifiées sous la

forme de groupes de bits • L'ensemble des instructions reconnues par un processeur et son

système de codage forment ce qu'on appelle le langage machine du processeur

• Il y a deux grandes familles de processeurs, selon la complexité de son langage machine: • processeurs CISC (Complex Instruction Set Computer). Exemple: Pentium • processeurs RISC (Reduced Instruction Set Computer). Exemples: Sparc, PowerPC,

MIPS

• Il y a trois grands types d'instruction: • transfert de données • opérations arithmétiques/logiques • contrôle

Eduardo Sanchez 12

Page 8: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

0 0 1 1

opcode registre source1

registre destination

DIV

0 1 0 0

opcode

STOP

registre source2

Eduardo Sanchez 13

• Notre programme codé serait alors:

1 LOAD R0,M[0] 0000

2 LOAD R1,M[1] 0101

3 JUMP zéro,6 2006

4 DIV R2,R0,R1 3201

5 STORE M[2],R2 1202

6 STOP 4000

Eduardo Sanchez 14

Page 9: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Exécution du programme

• Pour exécuter un programme, l'unité de contrôle du processeur doit lire chaque instruction, la décoder et ensuite l'exécuter. C'est le cycle exécuté sans arrêt par un processeur: fetch-decode-execute

• Pour cela, l'unité de contrôle dispose de deux registres spécialisés: le compteur de programme (PC) et le registre d'instruction (IR)

• Le PC contient l'adresse de la prochaine instruction à exécuter. Le IR contient le code de l'instruction en exécution

• Pour notre exemple précédent, le fetch implique la lecture de deux mots de la mémoire. Toute instruction, sauf le JUMP, fait donc une incrémentation par deux du PC

Eduardo Sanchez 15

Exercice

• Supposez que vous voulez multiplier deux variables a et b, stockées dans les positions de mémoire M[20] et M[21], respectivement, pour affecter cette valeur à la variable toto, stockée à la position de mémoire M[40]

• C'est-à-dire, vous voulez effectuer l'opération: toto = a*b ou: M[40] = M[20]*M[21]

Eduardo Sanchez 16

Page 10: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

• Le processeur possède 8 registres (R0...R7). Le registre R0 contient toujours la valeur 0

• Les instructions du langage machine du processeur sont: • LOAD Rd, M[adr] Rd M[adr] • STORE M[adr], Rs M[adr] Rs • ADD Rd, Rs1, Rs2 Rd Rs1 + Rs2 • SUB Rd, Rs1, Rs2 Rd Rs1 – Rs2 • DEC R R R - 1 • JUMP zero, adr si zero alors sauter à adr

• Avant d'écrire le programme, nous devons trouver un algorithme réalisant la tâche voulue

• Un algorithme possible serait:

Eduardo Sanchez 17

lecture de a et b

a=0

b=0

résultat = 0

résultat = résultat+a

décrémenter b écriture du résultat

Eduardo Sanchez 18

Page 11: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

AE 7

Un modèle d’exécution-

Von Neumann

Page 12: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Introduction

Ø Computer Science

De quoi traite l’Informatique

Ø Informatique = Information + Automatique

compute = calculer

traitement automatique de l’information

Page 13: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Modèle de Von Neumann

Ø John Von Neumann 1943-45Ø Lignes essentielles pour construire une

machine électronique. (Projet ENIAC)Ø Appliqués jusqu'à nos jours

Ø Quatre blocs fonctionnels:Ø Le processeur (ALU + Control Unit)Ø La mémoireØ Le busØ Les I/O

Page 14: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Du câblé au programmé..

Ø Premiers ordinateurs les pas d’exécution du programme étaient directement câblés dans le circuitØ Aujourd'hui on parlerait d’accélérateur matériel

Ø On invente le programme vu comme des données stockées dans la mémoire principaleØ l’architecture de Von Neumann

Ø La fonction de l’unité de contrôle est de Ø lire le programme de la mémoireØ décoder les instructionsØ commander leur exécution

Ø Un changement de programme se fait par une simple réécriture de la mémoire

Page 15: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Du calcul sur des données…

Page 16: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Notion d’instruction

Page 17: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Mémoire banalisée

Page 18: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Quels échanges dans la machine?

Page 19: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Zoom inside

9

Fonction logique

Bascule mémoire

Décodeur

Page 20: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Un ordinateur simplifié…

IP ~CO~ CP~PC

Page 21: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Lecture de l’instruction

Page 22: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

L’instruction arriveon prépare la suite…

Page 23: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Les opérandes arrivent!

Page 24: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Prêt pour le calcul!!!

Page 25: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

On range le résultat et on recommence …

Page 26: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Et si on en exécute plusieurs?

Ø Le processeur exécute (interprète) les instructions élémentaires à la suite

Ø Une séquence d'opérations peut décrire tous les problèmes

notion de Programme

Page 27: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Déroulement du programme

Ø Le déroulement du programme est contrôlé par le Compteur Ordinal qui pointe vers la prochaine instruction à exécuter.

Ø La séquentialité est intrinsèque au modèle VN

Ø Les instructions sont exécutées en séquence sauf en cas de saut. (Jump)

Page 28: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Les données

Ø La mémoire conserve les données et les instructions, on parle de mémoire banalisée.

Ø Les instructions sont amenées une à une vers le processeur

Ø Les échanges entre mémoire / processeur se font via le système de communication : souvent le bus

Page 29: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Von Neumann vs. Harvard

Ø Von Neumann

Ø Harvard

MÉMOIRE CPUIO

• • • • •IO IO

BUS SYSTÈME

MÉMOIREDONNÉES CPU IO• • • • •IO IO

BUS DONNÉES

BUS INSTRUCTIONS

MÉMOIREINSTR

Page 30: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Séquencement des instructions

Ø L'exécution d'une instruction passe par plusieurs étapes successives, chacune étant considérée comme une micro-opération.

Ø Certaines de ces actions correspondent à une activité mémoire, d'autres à une activité processeur.

Ø Pour effectuer une instruction, il faut toujours effectuer les actions suivantes:

Page 31: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Séquencement des instructions

1. Aller chercher l'instruction en mémoire;2. Calculer l'adresse de la prochaine

instruction, incrémenter le compteur ordinal

3. Décoder le code de l'opération4. Calculer les adresses des opérandes si

nécessaire5. Extraire les opérandes éventuelles de la

mémoire6. Exécuter l'instruction7. Calculer l'adresse du résultat8. Ranger le résultat en mémoire

Page 32: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Phases 1 2 3

Ø 1: Lit instruction suivanteØ Bus Adresse PCØ Bus Commande « Lire instruction »Ø RI Bus Donnée

Ø 2: Incrémente compteur ordinalØ PC PC + taille(instruction)

Ø 3 :Décode Instruction ex: Add A,(123)Ø A A + contenu @123.

Page 33: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Phases 4 5

Ø 4 et 5 : Lit données (facultatif)Ø Bus A 123Ø Bus C « lire donnée »Ø tmp Bus D

Ø Transfert données UALØ UAL.E1 AØ UAL.E2 tmpØ UAL.Inst « addition »

Page 34: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Phases 6 7 8

Ø 6: UAL calcule opérationØ Activation de l’additionneur intégralØ tmp’

Ø 7 et 8 : UC range résultatØ A tmp’

Ø RecommenceØ Lit & Exécute instruction suivante

Ø Pas de repos pour un processeur…

Page 35: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Activités Processeur

Activités Mémoire

(1) Fetch instr(2)

Incrément

(3) Decode instr

(4) (5) Fetch operand

(6) Execution

(7) Calcul adr res

(8) Store résultat

Cycle instruction

Phase de chargement

Phase d' exécution

Opérandes multiples

Résultats multiples

Instruction sur des chaînes

Instruction terminée

Calcul adr Op

Page 36: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Aller chercher l'instruction en mémoire

Page 37: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Calculer l'adresse de la prochaine instruction

Page 38: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Décoder le code de l'opération

Page 39: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Calculer les adresses des opérandes si nécessaire

Page 40: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Extraire les opérandes éventuelles de la mémoire

Page 41: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Exécuter l'instruction

Page 42: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Calculer l'adresse du résultat

Page 43: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Ranger le résultat en mémoire

Page 44: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Cycle du processeur

Ø L'exécution d'une instruction peut être découpée en plusieurs phases successives.

Ø Deux phases au moins sont définies:Ø la phase de chargement 'Fetch' et Ø phase d'exécution 'Execute''

Page 45: L’ARCHITECTURE DE VON NEUMANNexcellant.be/CALCULATEURS/NAISSANCE ORDINATEURS/LES... · architecture de Harvard processeur A D architecture de von Neumann mémoire unifiée Eduardo

Différentes classes d’instruction