You are on page 1of 220

Architectures des

machines
Support de cours EII 1
D.Chillet
Daniel.Chillet@enssat.fr
http://cairn.enssat.fr

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Architecture des machines


Plan

Introduction
objectif du cours
historique des systmes informatiques
machines algorithmiques : classification

Machines ddies ou programmables ?


automate tats finis
modle, matrialisation, implantation dalgorithmes
hirarchisation
notion de langage associ un niveau de la hirarchie

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Architecture des machines


Plan (suite)

Modle Von Neumann


la machine et le cycle Von Neumann
excution d'instruction

Le concept RISC
historique, observations
concepts
volution des processeurs
processeurs CISC -- RISC

Hirarchie mmoire
Mmoire cache

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Architecture des machines


Plan (suite)

Fonctionnement pipeline
Principe
Objectifs
Problmes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Architecture des machines


Plan

Introduction

Machines ddies ou programmables ?

Modle Von Neumann

Le concept RISC

Hirarchie mmoire

Fonctionnement pipeline

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

INTRODUCTION

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Introduction

Computer Science

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Introduction

Historique : les bases


le calcul a pour anctre :
mains : doigts et articulations
digit

binary digit = bit

calculer = grouper des cailloux


la manipulation de cailloux : calculus

abaque :
romain : compos d'une plaque mtallique et de 9 rainures dans lesquelles on vient placer
des jetons

les cordelettes nuds


le boulier occidentales (environ 500 av J.C) :
trs proche de l'abaque
pratique, "rapide", mais ne reporte pas la retenue

rgle calculer
exemple : 2*4

tables :
trs grand nombre de tables produites la main (logarithme, multiplication, etc)
trs nombreuses erreurs

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Introduction
la cryptographie et le codage ont pour anctres :
remplacement des lettres par leurs numros
utilis par la cours d'Angleterre : (1561-1626)
les lettres sont cods de la faon suivante :
A = aaaaa
E = aabaa

B = aaaab
F = aabab

C = aaaba
G = aabba

D = aaabb
H = aabbb

exemple : Honni soit qui mal y pense : codage de chaque lettre :


Honni = aabbb abbab abbaa abbaa abaaa

on prend un texte quelconque, dans lequel on crit en gras les lettres


qui correspondent aux lettres b et en normal les lettres qui
correspondent aux a :
Il deviendra un serpent noir

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Introduction
Morse invente le tlgraphe et
le codage associ :
les lettres sont transmises par
des sries de points et de traits
reprsentation binaire de
symboles :

la notation est simple


les rgles opratoires sont simples
les lettres les plus frquentes ont un
codage le plus petit possible

Frquence d'apparition des lettres


de l'alphabet dans les textes anglais

A
B
C
D
E
F
G
H
I
J
K
L
M

.-...
-.-.
-..
.
..-.
--.
.
..
.---..-..
--

N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Erreur
Debut
Fin

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

-.
--.--.
--..-.
...
...--..-.---..

0
1
2
3
4
5
6
7
8
9
.
,
?

----.---..---...
-.
--...
---..
----.
.-.-.--..-..--..

..
-.-..-.-.
10

Introduction
notion de programme :
enregistrement pralable d'une suite
d'oprations :
orgue barbarie, pianos mcaniques, boites
musique
portage vers les activits industrielles :

commande de mtier tisser, utilisation de bandes


perfores (fin 18 ime sicle) le motif tisser est
"cod" sur la bande qui tourne en continue. On change
le motif en changeant la bande
Jacquard est le premier utiliser la notion de
programme

mot "ordinateur" :
proposition de Jacques Perret IBM
France en 1956

mot informatique :
cr par Philippe Dreyfus en 1964
partir des mots :
information
automatique
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

11

Introduction
notion de logiciel :
naissance partir de l'apparition des ordinateurs programmables

machines construites :
mcanique :
Konrad Zuse : machine Z1 (1936), machine entirement mcanique, utilisation d'un
systme binaire pour la reprsentation des nombres, nombres codes en virgule flottante,
la machine recevait le programme sur un film 35 mm avec des trous fait la main

lectromcanique :
Konrad Zuse : machine Z2, Z3 et Z4
le Z3, 1941 (lectromcanique) est considr comme le premier ordinateur avec
programme fournit par bande perfore, traitement des nombres en virgule flottante avec 14
bits pour la mantisse et 7 bits pour l'exposant. Machine ralisant 3 ou 4 additions par
secondes, 1 multiplication en 4 secondes. La machine ne pouvait pas raliser de
branchements conditionnels (frquence de processeur 5,33 Hertz, 20 Flops)

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

12

Introduction
Stibitz (1904 - 1995) : ralisa un additionneur binaire lectromcanique l'aide
de relais de tlphone,

Les Bell Labs utilisrent cette ide pour construire une calculatrice de nombres
complexes (oprations : addition, soustraction, multiplication, division). Le code
binaire tait redondant si bien que les machines (peu fiable) taient capable de
dtecter des erreurs de calculs
MARK 1 : machine de Babbage lectromcanique, cycle de 6 secondes,
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

13

Introduction
lectronique :
Stibitz : le Z22 : machine entirement lectronique
Atanasoff (1903 1995) : machine ABC (Atanasoff Berry Computer), machine utilisant le
code binaire, oprations d'addition et de soustraction, frquence d'excution de 60
hertz (60 cycles d'excution par seconde). Cette machine servit de modle pour la
construction de l'ENIAC.

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

14

Introduction
ENIAC :

1943 1944, vitesse de travail 200 000 Hz ou tapes par secondes, la machine travaillait avec la
base 10 et non la base 2, il tait compos d'un multiplieur, d'un diviseur, d'une table de fonction ,
sa programmation consistait connecter les diffrentes units entres elles, la notion de
programmation consistait alors en la ralisation d'un cblage long et non modifiable par la
machine elle mme. L'ENIAC tait sujet une panne tous les 3 jours environ. Il calcul 5000
additions ou 350 multiplications par seconde. Cette machine fut utilise pour calculer les 70
premires dcimale de PI en 70 heures de calcul. La machine fonctionna 10 ans.

7,4 * 5,3 mm
174 569 transistors
Ralis pour le 50ime anniversaire

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

15

Introduction

Quelques grands noms

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

16

Introduction

Historique, quelques grands noms :


Blaise Pascal : 1623 - 1662 :
mise au point l'ge de 19 ans
utilise des roues dentes qui permettent de raliser des
additions et soustractions
les roues comportent 10 positions (de 0 9)
chaque fois qu'une roue passe de 9 0 elle entrane la
roue immdiatement gauche
la soustraction est ralise grce la mthode des
complments arithmtiques :

s=a-b
s=a+!b

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Machine arithmtique de Pascal

machine Pascaline :

17

Introduction
Babbage : 1792 -

1871

prof de mathmatique Cambridge


ide de dpart :
consistait mcaniser les calculs des tables utilises notamment
la navigation

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

18

Introduction
1820 : machine diffrences n1 : objectifs : produire des tables
mathmatiques exactes
observation : les longs calculs sont souvent des rptitions d'oprations
similaires (traitement d'une srie d'oprations en squence)
ide de dpart : concept dvelopp par Jacquart
programme inscrits sur cartes perfores
calcul de fonctions polynomiales de degr 6 avec une prcision 16 chiffres
cette machine ne fut jamais acheve
elle donna toutefois naissance premier calculateur automatique (plus simple) qui
mcanisait une rgle mathmatique
ensuite Babbage labora les plans dune machine plus perfectionne : machine
diffrences n2

fonctions polynomiales de degr 7 avec une prcision de 31 chiffres

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

19

Introduction
1833 : machine analytique :
objectif : trouver la valeur de toute expression mathmatique pouvant sexprimer
sous forme algorithmique (droulement des oprations de faon conditionnelle)
4 oprations de base : addition, soustraction, multiplication, division
itrations et branchements conditionnels permettaient la programmation
deux lments principaux :

le moulin ====> le processeur


le magasin ===> la mmoire

cette machine ne fut jamais construite


il fut nanmoins encourag par Ada Augusta King (1816 1852) qui se passionna
pour cette machine et crivit des programmes partir des plans fournis par
Babbage. Elle est considre comme la premire programmeuse et le langage
Ada fut baptise de son premier prnom.

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

20

Introduction
A partir des plans originaux, la machine diffrences n2 fut
construite, elle fonctionne parfaitement :
elle est expose dans un muse Londres

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

21

Introduction
Boole : 1815 -

1864

mathmaticien
Il conoit l'algbre qui porte son nom :
algbre base sur 2 signes :

Oui = 1 ; Non = 0

et sur 3 oprateurs :

ET ;
OU ;
PAS

A
0
0
1
1

B
0
1
0
1

ET
0
0
0
1

OU
0
1
1
1

PAS B
1
0
1
0

algbre capable d'assurer la totalit des calculs envisageables (toutes fonctions


calculables)

La logique devient une discipline mathmatique

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

22

Introduction
Turing : 1912 - 1954
il formule le concept de calculabilit :
tout processus logique peut tre dcompos en une suite
doprations lmentaires qui peuvent tre excutes par une
machine

il dfinit une machine pouvant travailler de faon


automatique :
notion de programmation par table d'instructions : automate

partir du moment ou la configuration est dfinie par une table dinstructions


(machine universelle) la machine excute son travail
1 calcul particulier ===> une table dinstructions particulire

travaillera au dchiffrage des messages allemand,


systme Enigma
il sintresse ensuite la mcanisation des processus
de la pense

Statue du mmorial Alan Turing


Whitworth Gardens
(Manchester, Angleterre)

rflexions propos dune machine capable de jouer aux checs

aprs la guerre, il travaille sur un projet de machine


universelle :
ACE (Automatic Computing Engine)

en 1950 il publie un article dans une revue


philosophique :
"Lordinateur et lintelligence", prmisse de lintelligence
artificielle
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

23

Introduction
Machine de Turing :
vue interne

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Ruban
de taille
infinie

24

Introduction
Machine de Turing :
vue externe

fonctionnement
la machine est dans un tat

lecture du ruban
criture sur le ruban
dplacement gauche ou droite
changement d'tat

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

25

Introduction
Exemple de machine:
incrmentation d'une valeur
Etat courant

START
Addition

Retenue
Pas de retenue

Dpassement
Retour

Contenu
cellule
courante

Contenu

crire

Dplacement
tte de
lecture

Nouvel
tat

*
0
1
*
0
1
*
0
1
*
?
0
1
*

*
1
0
*
1
0
1
0
1
*
*
0
1
*

gauche
gauche
gauche
droite
gauche
gauche
gauche
gauche
gauche
droite
droite
droite
droite
rien

Addition
Pas de retenue
Retenue
Retour
Pas de retenue
Retenue
Dpassement
Pas de retenue
Pas de retenue
Retour
Retour
Retour
Retour
STOP

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

26

Introduction
*

Tte de lecture

Tte de lecture

Etat :
START
Lecture :
*
Ecriture :
*
Dpla :
gauche
Etat suiv : Add

Etat :
Add
Lecture :
1
Ecriture :
0
Dpla :
gauche
Etat suiv : Retenue

Tte de lecture

Tte de lecture

Etat :
Retenue
Lecture :
0
Ecriture :
1
Dpla :
gauche
Etat suiv : Pas retenue

Etat :
Pas retenue
Lecture :
1
Ecriture :
1
Dpla :
gauche
Etat suiv : Pas retenue

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

27

Introduction
*

Tte de lecture

Tte de lecture

Etat :
Retour
Lecture :
1
Ecriture :
1
Dpla :
droite
Etat suiv : Retour

Etat :
Pas retenue
Lecture :
*
Ecriture :
*
Dpla :
droite
Etat suiv : Retour

Tte de lecture

Tte de lecture

Etat :
Retour
Lecture :
1
Ecriture :
1
Dpla :
droite
Etat suiv : Retour

Etat :
Retour
Lecture :
0
Ecriture :
0
Dpla :
droite
Etat suiv : Retour

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

28

Introduction
Von Neumann : 1903- 1957
mathmaticien Hongrois brillant :
il changea de nationalit en 1937 pour devenir amricain
il sest intress aux disciplines suivantes :

mathmatiques purs, thories des ensembles, logique, thorie de la mesure, physique, thorie des
oprateurs, statistique, analyse numrique, hydrodynamique, balistique, etc etc

il participe au dveloppement de la bombe atomique (Los Alamos) :

pour raliser les calculs de dtonation et dimplosion, il imagine une nouvelle machine compose
dune unit de calcul, dune mmoire et dun programme.

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

29

Introduction
en 1944 il rejoint Eckert et Mauchly qui sont en train de mettre au point un calculateur
lectronique :

ENIAC : Electronic Numerical Integrator and Computer : sa premire tche consista dcoder les messages cods des
Nazis
machine pouvant prendre des dcisions en fonction d'un rsultat de calcul prcdent (rsultat positif ou ngatif)

nouveau projet EDVAC : Electronic Discrete Variable Automatic Computer :


Mauchly

les instructions sont enregistres dans une mmoire et le programme peut sauto modifier, la machine passe du stade
de calculateur celui dordinateur
il publie un rsum du projet, le rapport (un pr rapport suite aux nombreuses discussions sur les limitations de l'ENIAC
avec Eckert et Mauchly) est attribu (maladroitement) Von Neumann, tous les honneurs lui reviennent (Eckert et
Mauchly se sentent exclus du succs auquel ils ont largement particip).

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

30

Introduction
Von Neumann montre qu'en enregistrant le programme dans la mmoire en
mme temps que les donnes traiter, alors on obtient un automate qui a les
proprits de la machine de Turing :

machine algorithmique universelle


en 1947 un rapport est diffus par Von Neumann, Burks et Goldstine, il donne
les prescriptions pour la ralisation d'un ordinateur :

le programme et les donnes sont enregistrs


le programme et les donnes sont dans une mme mmoire dcoups en cellules
cette mmoire est unique et banalise
les contenus de la mmoire sont accessibles pour la lecture et l'criture par localisation de leur
contenant (c'est ce que l'on appellera plus tard les adresses).
la commande de la machine est squentielle (excution des oprations instruction aprs instruction)
dans l'ordre des cellules mmoire (sauf en cas de branchements qui peuvent tre impratif ou
conditionn par des rsultats de calcul prcdent)
l'excution de chaque instruction est acheve avant que la suivante ne commence
l'unit de traitement ralise un jeu d'oprations entre les registres

Un grand nombre de ralisation furent bases sur


ce schma que l'on appelle de "Von Neumann"
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

31

Introduction

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

32

Introduction

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

33

Introduction

Les premires machines :


dfauts des premiers ordinateurs :
fiabilit incertaine :
1 panne tous les 3 jours pour l'Eniac

besoin de refroidissement :
5 chevaux pour la Mark 1 (3700 Watt !!)

encombrement certain :
160 m2 pour la Mark 1

dfauts des langages associs :


la taille de la mmoire tant trs limite, le code est compact au
maximum :
grande poque du GOTO et de la rutilisation de morceaux de programmes
pas de notion de structuration de programme, d'interface utilisateur et de
convivialit

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

34

Introduction

Les diffrentes gnrations


Gnrations

Dates

Technologies

Vitesses (op/s)

1642

Mcanique

quelques op/s

0'

Electromcanique

0''

1956

Electronique

1946-1957

Tubes vide

40 000

1958-1964

Transistors

200 000

1965-1971

Petite et moyenne intgration


Small and medium scale integration

1 000 000

1972-1977

Forte intgration
Large scale integration (LSI)

10 000 000

1978-

Trs forte intgration


Very Large scale integration (VLSI)

100 000 000

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

35

Introduction

Qu'est qu'un "ordinateur" ?


systme compos de :
processeur(s) : unit centrale
mmoire(s) : stockage
dispositif(s) d'entres sorties : lien avec l'extrieur

Units d'entres sorties

Imprimante

Bus
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

36

Introduction
L'unit centrale :
machine qui excute des ordres lmentaires de faon squentielle
sur des donnes : on parle de machine algorithmique
c'est donc une machine qui manipule des donnes, oprations sur les donnes :

addition, multiplication
consommation des donnes traiter, et production de donnes traites

notion d'unit de traitement et d'unit de commande

la diffrence d'une simple calculatrice, l'ordinateur comporte une unit de commande capable de
traiter un programme (interne ou externe)

Donnes
traiter

Donnes
traites

Ordres

Unit de
traitement

Compte
rendus

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Unit de
commande
Programmes

37

Introduction
Unit de traitement :
elle effectue, sur les donnes qu'elle reoit, les traitements commands par
l'unit de commande
au cours des traitements, les donnes temporaires sont stockes dans des
mmoires locales internes, REGISTRES

Unit de commande :
elle squence les oprations sur l'unit de traitement

elle rcupre les instructions depuis l'extrieur


elle dcode les instructions
elle demande l'excution de l'opration l'unit de traitement
elle rcupre les comptes rendus d'excution

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

38

Introduction
La mmoire :
a7

a5

a4

a3

Poids fort

des donnes
des programmes

a6

l'unit de stockage est le bit :

a2

a1

a0

Poids faible

stockage :

valeurs 0 ou 1

les donnes sont stockes dans des cellules mmoires


par exemple des cellules de 8 bits

chaque cellule possde un numro : adresse


le processeur manipule les donnes via leurs adresses

Bus d'adresses
001011
Sens de l'accs
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Bus de donnes
A

39

Introduction
Les entres sorties :
change d'informations entre l'environnement (utilisateur, capteur,
appareils de mesure, etc) et la machine
2 modes d'organisation :
pour les petits systmes :

Unit
centrale

beaucoup plus simple


1 seul bus raccordant le microprocesseur, la mmoire et les entres/sorties
les priphriques sont constitus de 2 parties : le contrleur et le priphrique proprement parl
le rle du contrleur consiste piloter le priphrique et grer les accs au bus
un mcanisme d'arbitrage permet de rgler les conflits lorsque le processeur et un contrleur veulent utiliser
simultanment le bus

Mmoire
principale

Contrleur
d'cran

Contrleur
de clavier

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Contrleur
disquette

Contrleur
disquette

40

Introduction
pour les grands systmes :

mise en place de processeurs d'entres sorties


les priphriques sont connects sur des canaux grs par ces processeurs
les entres sorties sont sous traites aux processeurs spcialiss, soulage l'unit centrale, travail en
parallle
bus d'entres sortie permet au processeur de dialoguer avec les processeurs spcialiss
bus mmoire permet aux processeurs d'E/S des accs directe la mmoire sans passer par le
processeur

Bus mmoire

Mmoire

Unit
centrale

Bus d'entres / sorties

Processeur
d'E/S

Processeur
d'E/S

Priphriques

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

41

Introduction

Qu'est ce qu'un systme informatique ?


systme regroupant plusieurs machines :
chaque machine est compose de nuds:
homognes
htrognes

les nuds sont soient :


des lments simples (processeurs simples, petites mmoires)
des lments complets (ordinateurs complets, processeurs, mmoire, disques,
entres sorties,etc)

les machines dialoguent : (changent des informations, coopration pour la ralisation


d'un travail complexe) :

au moyen de bus communs


d'envoi de messages

notions:

de paralllisme
de partage de ressources
tolrances aux fautes
etc

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

42

Introduction

Le premier
programme !!!

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

43

Machines algorithmiques

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

44

Machines algorithmiques

Qu'appelle-t-on "machine algorithmique " ?


machine capable :
d'excuter une suite d'instructions de manire automatique
de prendre des dcisions quant la suite des traitements raliser
en fonction du droulement des oprations prcdentes

on distingue deux classes de machines :


les machines programmables
les machines ddies

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

45

Machines algorithmiques
Les machines programmables :
modle :

Capteurs

Mem

68000

Donnes
traiter

vnements
Donnes
traites

notion de flexibilit :
existence d'un programme "droulant" l'application :

si lapplication change, il suffit de modifier le programme

machine d'usage gnrale :


utilisation non optimale du processeur
lapplication est pose sur le modle du processeur

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

46

Machines algorithmiques
Les machines ddies :
modle :
Capteurs

vnements

Ucontrle

Donnes
traiter

UC

UC

Donnes
traites

pas de flexibilit :
btit le processeur partir des besoins de lalgorithme
mise en place du bon nombre dunits de calcul
chaque unit est taille en fonction des besoins :

vitesse (temps de calcul)


surface (cot silicium)
consommation (puissance)

machine d'usage spcifique :


utilisation optimale de la machine
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

47

Machines algorithmiques

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

48

Machines algorithmiques
Pour une application donne
Machines programmables

Flexibilit
programmabilit

Processeurs
gnraux
DSP

ASIP

Machines ddies

ASIC

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Performances

49

Machines algorithmiques

Modlisation d'une machine algorithmique

Evnements +

Instructions

AEF
de commande
commandes

Evnements

compte rendu

AEF
de traitement
Donnes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Donnes

50

Machines algorithmiques

St = g ( Xt , Et )
Xt+1 = f ( Xt , Et )

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

51

Machines algorithmiques

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

52

Machines algorithmiques
Lautomate de commande :
ragit aux vnements extrieur
cre des vnements pour lenvironnement
gnre le flot de commandes
traduit lalgorithme excuter

Lautomate de traitement :
il est pilot par lAEF de commande

ragit aux commandes de celui-ci


gnre des donnes pour lenvironnement
excute les oprations sur les donnes reues
produit des comptes rendus de traitement (de calcul)

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

53

Machines algorithmiques
Cmd

AEF de traitement :

Donnes

Cpt
Donnes

AEF
Et : les variables dentre :
commande provenant de lautomate de commande
donnes provenant de lenvironnement (extrieure)
St : les variables de sortie :
St = g ( Xt , Et )
compte rendu de calcul
action sur lenvironnement
Xt+1 = f ( Xt , Et
Xt : le vecteur dtat de lautomate :
mmorisation intermdiaire de calcul

g : la fonction qui dfinit ltat des sorties :


dfinit les actions
dfinit les comptes rendus

f : la fonction qui dfinit lvolution de lautomate :


dfinit les calculs en fonction des commandes
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

54

Machines algorithmiques

AEF de traitement (suite) :


2 primitives :
calcul : fonctions combinatoires
mmorisation : registres, file de registres, mmoire

2 modles :
chemins partags

chemins point point

(ou encore registres ddis)

(ou encore registres gnraux)

Bus 2
Bus 1

R1 R2 R3 O1 O2

R1

R2

R3

O1

O2

Bus 3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

55

Machines algorithmiques
Avantages et inconvnients :
bus point point :
paralllisme maximum
implantation efficace des algorithmes :

extraction du paralllisme de lapplication


ordonnancement des oprations sur les units de calculs

coteux :

trs nombreux bus


nombreuses connections

intressant pour les machines fort taux de calcul : flot de donnes

bus partags :

les bus sont un goulot dtranglement


moins coteux
ncessit de squencer les oprations indpendantes
modle de tous les processeurs existants

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

56

Machines algorithmiques

Quest ce qui distingue les AEF de traitement ?


largeur des bus :
dabord en 4 bits, puis 8, ... 64 bits, voir mme 128 bits

complexit des units de calcul :`


dabord entire puis flottante
en 4, puis 8, ... puis 64 bits, (128 bits dans certains cas)

nombre de ressources de calcul :


1 UAL : addition, soustraction, oprations logiques (ou, et, not, etc)
ajout dune unit flottante, doublement des units de calcul

nombre de registres :
une dizaine dans les premiers processeurs quelques dizaines
dans les processeurs RISC
le rle des registres :
de calcul dadresses et de donnes
ou gnraux
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

57

Machines algorithmiques
la taille de la mmoire adressable :
quelques kilo octets quelques giga octets

la prsence dune organisation mmoire complexe :


mise en place de mmoire(s) cache(s)
recherche dun compromis entre taille et temps daccs
registres trs rapide
mais cote cher
taille mmoire et temps daccs voluent dans des directions opposes

1 / temps daccs

taille
mmoires externes aux processeurs
lente, passage par des buffers
et par les pads du circuit
lvolution de la densit a permit dimplanter des mmoires dans le circuit
bnficie dun temps daccs trs rapide
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

58

Machines algorithmiques

Caractristiques de quelques processeurs (1994 - 1995)


Alpha
21064

Mips
R4000

Pentium

Power PC
601

Frquence

200 Mhz

150 Mhz

66 Mhz

80 Mhz

25 Mhz

50 Mhz

Largeur bus

64 bits

64 bits

32 bits

32 bits

32 bits

32 bits

Cache

2 * 8 ko

2 * 16 ko

2 * 8 ko

32 Ko

2 * 4 ko

8 ko

Units
indp

??

Registres

2 * 32

2 * 32

2*8

2 * 32

16 + 8

2*8

Consom

30 w

15 w

16 w

9w

6w

5w

Prix

2,2

4,7

3,8

2,4

1,8

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

68040

80486

59

Machines algorithmiques

Caractristiques de quelques processeurs


Alpha
21164

Mips
R10000

Pentium
II

Power PC
604e

Frquence

600 Mhz

275 Mhz

300 Mhz

350 Mhz

Largeur bus

64 bits

64 bits

32 bits

32 bits

Cache

16 et 8 ko

2 * 32 ko

2 * 16 ko

2 * 32 Ko

Units
indp

Registres

2 * 32

2 * 32

Consom

40 w

30 w

?w

12 w

Pentium 4

Prix

Frquence

2400

Largeur
bus

1200

G4
1250

64

Cache

12 K trace
L1 = 8K
L2 = 256 K

Units
indp

Registres

32 entiers,
80 flottants,
64 MMX

2 * 80 int reg
72 float reg

32 reg
de 128 bits

Consom

55

155

30

Prix

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Alpha 21364

L1 = 2*64K
L2 = 1,75 M

L1 = 2 * 32K
L2 = 256K
L3 = 2Mb off

~ $300

60

Machines algorithmiques

Caractristiques de quelques processeurs

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

61

Machines algorithmiques

AEF de commande :

Evt

AEF

Evt

Cmd
Cpt
Et : les variables dentre :
compte rendu provenant de lautomate de traitement
vnements provenant de lenvironnement (extrieure)
St : les variables de sortie :
vnements destination de lenvironnement
commandes pour le traitement
Xt : le vecteur dtat de lautomate :
St = g ( Xt , Et )
tat courant de lautomate
Xt+1 = f ( Xt , Et

g : la fonction qui dfinit :

dfinit les commandes pour lAEF de traitement


dfinit les vnements pour lenvironnement

f : la fonction qui dfinit lvolution de lautomate :


dfinit ltat suivant en fonction de ltat courant et des entres
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

62

Machines algorithmiques

AEF de commande : Modles utiliss :


rseaux de Ptri
t1

t2

machine dtats (synchrone ou asynchrone)


e1

t3

s1 = 1; s2 = 0;
transition 1

e2

s1 = 0; s2 = 0;

t4

t5

transition 2

e3

s1 = 1; s2 = 1;
transition 3

e4

s1 = 0; s2 = 1;

Notion de synchronisation
par rapport une horloge :
- explicite : exprime dans la transition
- implicite : napparat pas dans la transition

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

63

Machines algorithmiques

Logique
combinatoire

Et

Xt+1

Registre
dtats

Xt

Logique
combinatoire

S
t

Horloge

e1

s1 = E0 & E1; s2 = E1 + E2;

transition 1

e2

s1 = E3 + E4 & E1; s2 = 0;

transition 2

e3

St = g ( Xt , Et )
Xt+1 = f ( Xt , Et )

s1 = E2 & E1 ; s2 = 1;

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

64

Machines algorithmiques

Logique
combinatoire

Et

Xt+1 Registre
dtats

Xt

Logique
combinatoire

S
t

Horloge

e1

s1 = 1; s2 = 0;
transition 1

e2

s1 = 0; s2 = 0;

St = g ( Xt )
Xt+1 = f ( Xt , Et )

transition 2

e3

s1 = 1; s2 = 1;

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

65

Machines algorithmiques
stockage dans une mmoire programme :
Dcodage
dadresses

Mmoire ROM ou RAM

Contient le codage
de l'application

Variables
tester

Algorithme

Adresses
Droutement
ou passage en
squence

Commandes
ou vnements
vers unit de
traitement

Matrialis par un registre


(PC : compteur de programme)
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

66

Machines algorithmiques
les champs de la mmoire programme :
Fonction
tester

Fi ( x )

Action
raliser
(vers UT)

si

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Adresse
de branchement

Ni

67

Machines algorithmiques

Implantation dun algorithme :


tout programme peut tre implant dans ce type de machine
Le modle gnral est le suivant :
on peut faire un test, une action et un branchement

Nt

f(x)
f(x)

s0
s1

N0
N1
Adresses suivantes
Actions
Fonctions tester
Adresses courantes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

68

Machines algorithmiques
modle simplifi, on peut faire soit :

action :

on ne teste rien, on effectue laction et on poursuit sur ladresse de programme suivante (Nt+1)

test :

on neffectue aucune action, on ralise le test et en fonction du rsultat de lvaluation de la condition


on effectue un branchement ou non
dun point de vue AEF de traitement, aucune action nest ralise
dun point de vue AEF de commande, il sagit dune action de chargement dune nouvelle valeur
dans le PC de la machine

Action
Nt

Nt

f(x)

N0
Test et saut

: ne rien faire
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

69

Machines algorithmiques

Instructions de calcul ou de transfert :


r1 := r1 + r2 ;

Nt

Add r1,r2

Instructions de saut inconditionnel :


BRA

Ni ;

Nt

true

Ni

Instructions de saut conditionnel :


BCC Ni ;

Nt

condition

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Ni

70

Machines algorithmiques

Instructions de test
if

condition then r1 := r1 + r2 ;
else r1 := r1 - r2 ;

Nt

condition

Nt+3

Nt+1

Add r1,r1, r2

Nt+2

true

Nt+4

Nt+3
Sub r1, r1, r2

Nt+4 .............................................

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

71

Machines algorithmiques

Instruction de test :
if

condition then bloc instructions 1 ;


else bloc instructions 2 ;

Nt

condition

N11

Nt+1

true

N21

Nt+2

................................

N11

Bloc dinstructions 2
N21
N22
.....
N2n2

I 2,1

true

I 2,2

Nt+2

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

N12
.....
N1n1

I 1,1
I 1,2

true

Nt+2

Bloc dinstructions 1
72

Machines algorithmiques

Instruction de boucles
pour i de 1 N faire
Demande de test
lAEF de traitement
(i-N et test si zro)

bloc dinstructions ;

fait ;
N0

i := 1

N1

i>N

N2
N3
...

...
....

Ni
Ni+1
Ni+2

I1

Initialisation

Ni+2

Test darrt

...
....

......
......

i := i+1

true
.....


N1

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

.....

Coeur de la boucle
bloc dinstructions
Incrmentation de i
Branchement

.....

73

Machines algorithmiques

Instruction de boucles
faire

Branchement

bloc dinstructions ;

Test darrt

tant que condition ;


.

.....

N0

N1
...
...

...
....
....

Ni
Ni+1

condition
.....

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

.....

.....

I 1

I2
....
....

.....

......
......

Coeur de la boucle
bloc dinstructions

N0
.....

74

Machines algorithmiques

Le droutement et lappel de sous programme :


aide la structuration de programmes :
appels de procdures ou fonctions
main(){

y = factorielle(x);

z = factorielle(s);

a = factorielle(b);

void factorielle (x) {


...

return valeur;
}

ncessite la mmorisation de l'adresse de retour


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

75

Machines algorithmiques
structure pour assurer le droutement avec sauvegarde de
contexte
Adresses de droutement

Registre dadresses

Squencement
des instructions
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

+1

PILE

Call ou Return

Stockage des
adresses de retour
76

Machines algorithmiques
instruction call factoriel
Adresses de droutement

PC = @1000

+1

PILE

Call

PC+1

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

77

Machines algorithmiques
instruction call factoriel suite
Adresses de droutement

Adresse de saut

+1

PILE

Call

1001

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

78

Machines algorithmiques
instruction return
Adresses de droutement

1001

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

+1

PILE

Return

79

Machines algorithmiques

Principe de la hirarchisation
Une machine M0 :
dispose dun langage L0
A laide de ce langage, on construit des programmes qui forment le
langage L1

La machine M1 :
est alors une machine virtuelle dans laquelle on pourra implanter
des algorithmes laide des instructions de L1
*

Unit de
commande
de niveau 1

commandes

Unit de traitement de niveau 1

Unit de
commande
de niveau 0

UT 0

comptes rendus

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

80

Machines algorithmiques
Il existe plusieurs niveaux de squencement :
il faut les synchroniser

Le squenceur de la machine M0 est simple:


il est ralis de faon travailler le plus rapidement possible
il ne sait pas grer les mcanismes dappel de sous programme
(stockage de ladresse de retour, passage de paramtres, etc)

Le squenceur de la machine M1 est plus complexe :


offre des modes de squencement complexes, des instructions
complexes
permet de bien structurer le programme

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

81

Machines algorithmiques
Lenvironnement fournit les commandes (instructions) raliser
Le composant mmoire contient lensemble des micro programmes permettant lexcution
des instruction du niveau suprieur
Un micro programme est constitu de micro instructions
Une micro instruction contient les micro commandes destines lUT0

*
Unit de traitement de niveau 1
Unit de
commande
de niveau 0

UT 0

commandes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

82

Machines algorithmiques

Extension du principe de hirarchisation


reprsentation dun ordinateur sous la forme dune machine 4 niveaux
hirarchique
1 langage pour chaque niveau de la hirarchie
instructions simples pour le niveau 0
instructions de plus en plus complexes pour les niveaux 1, 2 et 3
machine Mi, compose dAEF de commande UCi, dun AEF de traitement
UTi, et dfinissant un langage Li

Niveau 3, applications
Niveau 2, systme dexploitaton
Niveau 1, langage machine
Niveau 0, micro instructions

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

83

Machines algorithmiques

Pour rsumer :
les machines ddies :
conues par une approche descendante
construction de la partie oprative du systme
rpondent strictement aux besoins de lapplication
performantes et efficaces
figes donc pas volutives
permettent la conception hirarchique
pas intressant pour la ralisation dun prototype mais conviennent bien aux
grandes sries :
cot (surface, consommation, etc)
protection du systme

conception dASIC
temps de conception assez long
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

84

Machines algorithmiques

Pour rsumer :
les machines algorithmiques programmables :
conues par une approche ascendante :
programmation

flexibilit
volutives
utilisation non optimale des possibilits de la machine
on utilise pas toutes les instructions disponibles
on doit programmer les instructions qui nexistent pas

dans les premiers processeurs, pas de multiplication

on sarrange pour atteindre la prcision souhaite

exemple : addition 16 bits (A+B) sur processeur 8 bits


AL + BL = SL + Retenue
AH + BH + Retenue = SH

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

85

Machine Von Neumann

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

86

Machine Von Neumann

Les processeurs Von Neumann :


Architecture :
Base sur un accumulateur

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

87

Machine Von Neumann

LAEF de commande de niveau 1 :


1 ) recherche le code instruction
2 ) dcode linstruction raliser
3 ) excute linstruction sur lAEF de traitement de niveau 0
lAEF de commande de niveau 0 :
reoit le code de linstruction
excute le micro programme de linstruction

4 ) stocke les rsultats des calculs

CYCLE VON NEUMANN

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

88

Machine Von Neumann

Recherche du code de linstruction :


le processeur accde la mmoire et charge linstruction dans un
registre dinstructions
ladresse accde est ladresse courante du programme et est stocke
dans un registre de compteur de programme PC
ce registre dadresses volue de 1 en 1 sauf dans le cas de
branchement, o il est charg avec une autre valeur

Dcodage de linstruction :
il sagit de savoir quelle instruction doit tre ralise :
une instruction se dcompose en :
un code opration
des oprandes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

code opratoire
oprande 1
oprande 2
89

Machine Von Neumann

Excution de linstruction :
dcomposition de linstruction en micro instructions par la
machine de commande de niveau 0
move 2(A7), A0

A0
A7

envoie des bons signaux de contrle vers lUT

Stockage des rsultats de calculs :


adressage de la mmoire
transferts des donnes vers la mmoire
mise jour de l'tat du processeur :
mmorisation des drapeaux

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

90

Machine Von Neumann

Excution dune instruction plus dtaille :


1) chargement de la prochaine instruction depuis la mmoire vers le
registre dinstruction
2) modification du compteur ordinal (PC) pour quil pointe sur
linstruction suivante
PC = PC + 1

3) dcodage de linstruction
4) localisation des ventuelles donnes ncessaires pour linstruction
5) chargement des donnes dans les registres internes de lunit
centrale
6) excution de linstruction
7) stockage des rsultats dans leurs cases mmoire respectives
8) passage linstruction suivante, retour en 1

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

91

Machine Von Neumann


Les diffrentes units

SP
RA

Squencement
UAL
Registre
dinstructions

PC

Mmoire

E/S

Bus de donnes

Unit de
traitement

Unit de
contrle

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Unit de
stockage

92

Machine Von Neumann

Unit de stockage :
contient les informations relatives :
au programme, donc lapplication
aux donnes traiter

Unit de traitement :
constitue dUAL et de registres de travail
les registres contiennent les informations en cours de traitement :
registres contenant des donnes
registres contenant ltat de la machine

Unit de contrle :
coeur de la machine
ralise le squencement, droulement du programme :
dcode linstruction situe dans le registre RI
adresse la mmoire par le compteur de programme
le registre dadresses permet daccder aux donnes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

93

Machine Von Neumann

Autre reprsentation de la machine Von Neumann


MEMORY DATA BUS

MEM. DATA
REGISTER

PC

ADDRESS
REGISTER

REGISTER
FILE

ALU

MUX

MEMORY ADDRESS BUS


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

94

Machine Von Neumann

Lexcution des instructions :


on distingue 3 types dinstructions :
instruction de contrle :
branchement, appel de procdure

instruction de traitement :
arithmtique, logique

instruction de transfert :
entre registres
entre registres et case mmoire

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

95

Machine Von Neumann

Instruction de contrle :
modification du droulement du programme en fonction
dvnements :
INTERNES au processeur : rsultats de calcul, tat de la machine
EXTERNES au processeur : broches dentres / sorties

modification du registre de compteur de programme PC


3 types de branchement :
conditionnel ou inconditionnel
explicite ou implicite
avec ou sans restitution du contexte

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

96

Machine Von Neumann

Branchement conditionnel ou inconditionnel :


conditionnel :
rsulte dun test, par exemple de la valeur dun drapeaux qui indique ltat
de la machine

inconditionnel :
saut quelque soit l'tat du processeur

Branchement explicite ou implicite :


explicite :
cas dun jump, branchement conditionnel

implicite :
cas des interruptions
cas des exceptions

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

signal extrieur
par exemple division par 0

97

Machine Von Neumann

Branchement avec sauvegarde de contexte :


lors de lappel dune interruption, il faut conserver ladresse de retour
pour assurer le bon droulement du programme
le contexte minimum est constitu de :
ladresse de linstruction en cours dexcution lors de lappel de la
procdure
charge lutilisateur de sauvegarder plus dinformations si cela est
ncessaire

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

98

Machine Von Neumann


1 ) Avant linterruption
registres

2 ) Interruption
Programme
principal

registres

SP
PC
(A)

Programme
dinterruption

3 ) Fin de linteruption
registres

SP
PC

4 ) Retour au programme principal

registres

SP
PC

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

SP
PC
(A+1)
99

Machine Von Neumann


2 ) Interruption
registres

Sauvegarde de contexte plus gnral


A

Programme
principal

registres

SP
PC

A
Programme
dinterruption

restitution de contexte plus gnral


registres

SP
A

PC

3 ) Fin de linteruption
registres

SP
PC

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

SP
PC

100

Machine Von Neumann


Linstruction de branchement
SP
Squencement

a) recherche dune instruction

UAL
Registre
dinstructions

RA
PC

Mmoire

E/S

SP
RA

Squencement

b) dcodage de linstruction

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

PC
Registre
dinstructions

Mmoire

E/S

101

Machine Von Neumann


Linstruction de branchement suite
SP
RA

Squencement

UAL

PC
Registre
dinstructions

-1

E/S
SP
Squencement

d) Modification du pointeur
de pile

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

RA
PC

Registre
dinstructions

Mmoire

c) sauvegarde du contexte

Mmoire

E/S

102

Machine Von Neumann


Linstruction de branchement suite

E/S

RA

Squencement

UAL

e) recherche ladresse de
dbranchement

PC
Registre
dinstructions

code

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

adresse de saut

Mmoire

SP

Mot 1

103

Machine Von Neumann

Instructions de traitement :
traitement des donnes :
oprations de calculs :
arithmtique
logique

positionnement des drapeaux en fonction des rsultats de calcul :


nul
ngatif
dbordement de calcul, problme de retenue

A, B sur 8 bits et opration A+B,


thoriquement A+B est un rsultat sur 9 bits,
si la machine est une machine 8 bits, lopration A+B va provoquer un dbordement,
un bit de dbordement rcupre cette information et il est possible de tester la valeur de ce bit

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

104

Machine Von Neumann


Linstruction de traitement
SP
Squencement

a) recherche dune instruction

UAL
Registre
dinstructions

RA
PC

Mmoire

E/S

SP
RA

Squencement

b) dcodage de linstruction

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

PC
Registre
dinstructions

Mmoire

E/S

105

Machine Von Neumann


Linstruction de traitement suite
SP
Squencement

c) excution de linstruction

UAL

RA
PC

Registre
dinstructions

Mmoire

E/S

E/S

RA

Squencement

d) Stockage du rsultat

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

PC
Registre
dinstructions

Mmoire

SP

106

Machine Von Neumann


Linstruction de traitement suite
E/S

+1

RA

Squencement

e) passage ladresse
suivante

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

PC
Registre
dinstructions

Mmoire

SP

107

Machine Von Neumann

Instructions de transferts :
Il existe au moins 3 types de transferts :
entre registres
entre mmoire et registre
entre deux cases mmoire

Ladressage dune donne peut se faire de manire :


adressage immdiat :
adressage direct
adressage indirect
adressage index
etc

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

108

Machine Von Neumann


Squencement

A) recherche dune instruction

UAL
Registre
dinstructions

RA
PC

SP
RA

Squencement

B) dcodage de linstruction

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

PC
Registre
dinstructions

Mmoire

SP

Mmoire

Linstruction de transfert

109

Machine Von Neumann

Squencement

C) recherche de la donne

UAL
Registre
dinstructions

RA
PC

SP
RA

Squencement

D) transfert effectif

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

UAL

PC
Registre
dinstructions

Mmoire

SP

Mmoire

Linstruction de transfert suite

110

Machine Von Neumann

Transfert registre registre : adressage registre


codage
code

Mot 1

registre destination registre source

Instructions :
add R1, R2, R3
move R1, R2

; R1 = R2 + R3
; R1 = R2

A
B
D

SP
RA

Squencement

UAL

PC
Registre
dinstructions

Mmoire

tape de linstruction :

temps dexcution : 3 units de temps


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

111

Machine Von Neumann

Adressage immdiat :
Codage

code

registre destination
donne

Mot 1
Mot 2

Instructions :
Add R1, R2, #3
Load R1, #20

; R1 = R2 + 3
; R1 = 20

B
D

SP
RA

Squencement

UAL

PC
Registre
dinstructions

Mmoire

type de donnes manipules : constante


tape de linstruction :
2 fois, une fois pour chaque mot de linstruction
A

temps dexcution : 5 units de temps


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

112

Machine Von Neumann

Adressage direct :
codage :

code

Instructions :

registre destination
Adresse partie 1
Adresse partie 2

Add R1, R2, (1000)


Li R4, (2000)

Mot 1
Mot 2
Mot 3

; R1 = R2 + Mmoire[1000]
; R4 = Mmoire[2000]

B
C
D

SP
RA

Squencement

UAL

PC
Registre
dinstructions

Mmoire

type de donnes manipules : variable, constante


tape de linstruction :
3 fois, une fois pour chaque mot de linstruction
A

temps dexcution : 8 units de temps


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

113

Machine Von Neumann

Adressage indirect :
codage : indirect registre
code

registre (adr) registre destination

Mot 1

autre codage : indirect mmoire


code

registre destination
Adresse partie 1
Adresse partie 2

Mot 1
Mot 2
Mot 3

Instructions :
Add R1, R2, @(R3)
Li R4, @(R5)

; R1 = R2 + Mmoire[Mmoire[R3]]
; R4 = Mmoire[Mmoire[R5]]

type de donnes manipules :


variable, tableau, pointeur, constante
tape des instructions :
A, B, C, D
(A, B) * 3, (C, D) * 3

indirect registre 4 UT
indirect mmoire 12 UT

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

114

Machine Von Neumann

Adressage indirect post incrment :


codage : indirect registre
code

registre (adr) registre destination

autre codage : indirect mmoire


code

registre destination
Adresse partie 1
Adresse partie 2

Mot 1

Mot 1
Mot 2
Mot 3

type de donnes manipules : tableau, pointeur, variable,


constante
tape des instructions :
indirect registre : A, B, C, D, incrmentation du registre dadresses
5 UT
indirect mmoire : (A, B) * 3, (C, D) * 3, incrmentation de ladresse,
stockage de la nouvelle adresse en mmoire
17 UT
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

115

Machine Von Neumann

Adressage index:
codage : index immdiat
code
registre base registre destination
index

Mot 1
Mot 2

autre codage : index par rapport un registre dindex


code

reg base reg index registre dest Mot 1

Instructions :
Add R1, R2, R3(R4)

; R1 = R2 + Mmoire[R3+R4]

type de donnes manipules : variable, structure de donnes


tape des instructions :
index immdiat: (A, B) * 2, C, D, addition de base et index
7 UT
index par un registre: A, B, C, D, addition de base et index
5 UT

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

116

Machine Von Neumann

Pour rsumer les adressages :


Immdiat
Op code

Reg dest

Oprande
Mmoire

Direct
Op code

Reg dest

Adresse
Oprande

Indirect mmoire
Op code

Reg dest

Adresse

Oprande
Adresse

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

117

Machine Von Neumann


Indirect registre
Op code

Mmoire

Reg dest

Registre

Registre

Oprande

Dplacement (index)
Op code

Reg dest

Adresse

Pile :
accs mmoire implicite

Registre

Registre

Oprande

Oprande
Op code
Sommet
de la pile

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

118

Machine Von Neumann

Utilisation des modes dadressages

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

119

Machine Von Neumann

Caractristiques du jeu dinstructions :


taille du jeu dinstructions :
pour les processeurs CISC : le nombre de mots pour coder une
instruction est variable
pour les RISC on tente de coder les instructions sur une longueur de
mot fixe
contrleur plus simple

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

120

Machine Von Neumann

Caractristiques du jeu dinstructions (suite) :


orientation mmoire, accumulateur, registres, pile :
mmoire : pas de registres visibles par lutilisateur, toutes les oprations
semblent se faire en mmoire
accumulateur : toutes les oprations sont ralises avec un registre
particulier (le registre accumulateur)
registre : toutes les oprations se font sur des registres de lunit de calcul
pile : les oprations se font sur des donnes ranges dans la pile que lon a
pralablement charge

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

121

Machine Von Neumann

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

122

Machine Von Neumann

Caractristiques du jeu dinstructions (suite) :


jeu dinstructions orthogonal :
indpendance entre les codes oprations et les modes dadressages
toutes les instructions bnficient de tous les modes dadressages
en gnral, ces processeurs ont un nombre dinstructions plus petit
processeurs plus simples programmer
dveloppement dun compilateur plus ais

nombre doprandes manipules :


en gnral, les instructions sont :

0 oprande (NOP)
1 oprande
2 oprandes (jeu d'instructions destructif)
3 oprandes (c'est la tendance des processeurs rcents)

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

123

Machines RISC

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

124

Machines RISC

Evolution des machines programmables :


premiers processeurs :
instructions simples
oprations sur les registres
oprations sur les entiers

nb de cycles
faible

augmentation du nombre dinstructions

nb de cycles
instructions plus complexes
important
oprations sur les flottants
instructions qui se rapprochent dun langage haut niveau

machines trs complexes


contrleur trs volumineux
Processeur CISC
Complex Instruction Set Computer
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

125

Machines RISC
La famille des processeurs Intel

Loi de Moore
Itanium ?

Processeurs 16 bits

106

Processeurs 8 bits

Pentium IV
Pentium Pro
Pentium

Pentium II

80486

105

80286

104

8086

8080
4004

103
1970

1975

1980

Processeurs 64 bits

80386

Processeurs 32 bits

Nb de transistors par puce

107

Processeurs 4 bits

108

1985

1990

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

1995

2000

2005

2010

126

Machines RISC

107

Itanium ?
Pentium iv
Pentium Pro
Pentium
80486
80386

Processeurs 32 bits

80286
8086

106

8080

105

4004

1970

1975

1980

Pentium II

1985

1990

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

1995

Processeurs 64 bits

Processeurs 16 bits

108

Processeurs 8 bits

Frquence d'horloge

109

Processeurs 4 bits

1010

2000

2005

2010

127

Machines RISC

Observations :
les instructions les moins couramment utilises sont celles
qui engendrent le plus de contrle :
adressages complexes (pr-post incrment, bas, index, ...)
tous les calculs peuvent sexcuter avec des oprandes en mmoire
(via tous les adressages)
latences des instructions trs variables
difficult pipeliner lexcution
jeux dinstructions non orthogonales
jeux dinstructions mal utiliss par les compilateurs

volutions technologiques :
Annes 70 : cot mmoire important, il faut rduire la taille du code,
code dense, code complexe
Annes 80 : volution des compilateurs, architecture chargement/
rangement
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

128

Machines RISC
occurrence des instructions

load

store

add

sub

or

and

xor

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

sl

sr

mult

div

sqrt

129

Machines RISC
Exemple d'occurrences des instructions pour un 80x86

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

130

Machines RISC

Rgle des 90 - 10 :
par une analyse des excutions des programmes, on remarque que
seules
10 % des instructions sont utilises 90 % du temps.
les 90 % dinstructions inutilises cotent cher en temps et en
surface silicium
Ide : on limite le nombre dinstructions celles qui sont le plus
utilises
On ralisera les instructions complexes par programmation
instructions ralisables en 1 cycle
horloge rapide
Plusieurs instructions
en 1 cycle

Instruction complexe
en n cycles

Processeur RISC

Reduce Instruction Set Computer


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

131

Machines RISC

RISC :
instructions simples
instructions rapides

Contrleur simple

Gain en surface important


Que faire de la surface disponible ?
augmenter le nombre de registres
augmenter le nombre dUAL
placer des units spcifiques
mettre de la mmoire cache dans le processeur

paralllisme

temps daccs trs court


profiter des rutilisations des donnes
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

132

Machines RISC

Historique
Cahier des charges du premier RISC

toutes instructions en 1 cycle


accs mmoire par instructions load store
oprations addition comparaison entre registres
nombre de mode dadressage rduit
mme format pour toutes les instructions
squenceur cbl
trs grand soin apport la ralisation du compilateur

Consquences

le cblage du squencement redevient possible puisque instructions simples


squenceur rapide et peu coteux
surface silicium libre, utilisation pour dautres fonctionnalits
gestion matrielle du pipeline plus simple puisque de nombreux problmes sont reportes sur le
logiciel

Projet RISC I et II de Berkeley


RISC I : 1982, 39 codes oprations, abandonne pour cause derreur de conception
RISC II : 55 codes oprations, 12 MHz, 41 000 transistors, UAL 32 bits

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

133

Machines RISC

Caractristiques des premiers processeurs RISC


Processeurs

IBM 801

RISC 1

RISC2

Annes

1980

1982

1983

Nb instructions

120

39

55

Taille instructions

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

32

134

Machines RISC

Comparaison CISC - RISC

CISC

RISC

IBM 370/168

VAX 11/780

Intel 80486

SPARC

MIPS R4000

1973

1978

1989

1987

1991

Nb instructions

208

303

235

69

94

Taille instructions

2-6

2-57

1-11

22

11

16

16

40-520

32

420

480

246

64

64

32

128

Nom
Annes

Nb de mode d'adressage
Nb registres
Mmoire de contrle
Taille cache

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

135

Machines RISC

Exemple : taille des instructions variables / fixes

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

136

Machines RISC
Instructions simples ne prenant quun cycle

Instructions complexes prenant plusieurs cycles

Seules les instructions LOAd et STORE


font des accs la mmoire

Toutes les instructions peuvent faire


des accs la mmoire

Traitement pipeline

Peu ou pas de traitement pipeline

Instructions excutes par le matriel

Instrucitons interprtes par un micro programme

Instructions au format fixe

Instructions en format variable

Peu dinstructions et de modes dadressage

Beaucoup dinstructions et de modes dadressage

Toute la complexit est dans le compilateur

Toute la complexit est dans le micro programe

Plusieurs jeux de registres

Un seul jeu de registres

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

137

Machines RISC

Les tendances des processeurs RISC et CISC


pipelines profonds :
jusqu 20 tages pour le Pentium IV

superscalaire :
units fonctionnelles indpendantes
unit de disptaching (jusqu 6 instructions lances par cycle pour le R10000)

frquence dhorloge leve :


4 Ghz

architectures 32 ou 64 bits
hirarchie mmoire complexe :
bus de donnes entre cache et buffer large
premier et second niveau de cache intgrs (on chip)

jeux dinstructions tendus au multi mdia


multi processeurs on chip
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

138

ORGANISATION
MEMOIRE

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

139

Organisation mmoire

Rappel
les mmoires

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

140

Organisation mmoire

Pourquoi une organisation mmoire ?


Motivations et principe :
augmentation de complexit des applications
augmentation du volume de donnes mmoriser
augmentation des tailles des mmoires

volution :
en 1980, les ordinateurs navaient que quelques kilo octets de mmoires
actuellement, il faut au minimum quelques centaines mga octets

les mmoires doivent rpondre 2 contraintes :


taille importante
temps daccs trs court

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

141

Organisation mmoire

Gap trs important

Evolution des performances des processeurs et des mmoires

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

142

Organisation mmoire
Illustration des diffrents temps d'accs
Technologie

Tps accs

Echelle humaine

Capacits

Indication de prix
$ / Mo

Registre

1 2 ns

1s

64 * 64 bits

Fait partie du
processeur

Cache intgr

3 ns

3s

32 ko

Fait partie du
processeur

Cache externe

25 ns

25 s

4 Mo

40

Mmoire
principale

200 ns

3 min

1 Go

2,5

Disque

12 ms

139 jours

10 Go

0,010

Bande

10 20 s

315 ans et plus

50 Go

< 0,05

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

143

Organisation mmoire
Reprsentation des niveaux de mmoire

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

144

Organisation mmoire

Ct applications
Notion de localit dans les accs mmoire :
localit spatiale :
si le processeur excute linstruction de ladresse @i, il y a de forte chance quil
excute trs prochainement linstruction de ladresse @i+1

localit temporelle :
si le processeur traite la donne d linstant t, il y a de forte chance quil traite
nouveau cette donne dans une temps trs proche

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

145

Organisation mmoire

Exemples de localits sur


les donnes
for (i = 0 ; i < N ; i++) {
for (j = 0 j < N ; j++) {
y[i] =y[i] + a[i][j] * x[j] ;
}
}

y[i] : localits spatiale et temporelle


a[i][j] : localit spatiale
x[j] : localits temporelle et spatiale

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

dans les programmes

Boucle LD
ADD
MULT
SUB
BRnz

R0, R1
R2, R3, R4
R5, R2, R7
R10, R10, #1
R10, Boucle

dans la boucle, rutilisation


intensive des instructions

146

Organisation mmoire

Localit spatiale

Adresses

Localit temporelle

Temps
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

147

Organisation mmoire
Ides de base :
mise en place d'une hirarchie mmoire :
mmoire de petite taille, rapide, proche du processeur
mmoire de grande taille, lente, loigne du processeur

Processeur
(registres)

Taille
Mem

Mmoire

Mmoire

Mmoire

Cot
Placer dans cette mmoire
les donnes utilises par
le processeur dans un intervalle
de temps

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

148

Organisation mmoire

Efficacit dune hirarchie mmoire :


Eff =

Tps de traitement mmoire rapide


Tps de traitement mmoire hirarchise

Acclration apporte par la hirarchisation :


Acc =

Tps de traitement mmoire lente


Tps de traitement mmoire hirarchise

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

149

Organisation mmoire

Donnes

Mmoire rapide

Mmoire lente

Fonctionnement

Processeur

Adresses

Soit

N : la taille du bloc
P : le nombre de donnes lues et/ou crites dans un bloc
TpsL : le temps daccs la mmoire lente
TpsR : le temps daccs la mmoire rapide

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

150

Organisation mmoire
Lefficacit et lacclration sexpriment :
Eff =

Acc =

P * TpsR
2 * N * TpsL + P * TpsR

P * TpsL
2 * N * TpsL + P * TpsR

Condition respecter pour que la hirarchie soit utile


2 * N * TpsL + P * TpsR
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

< P * TpsL
151

Organisation mmoire
Intrt dune hirarchie mmoire
P >

2 * N * TpsL
TpsL - TpsR

plus la diffrence entre les temps daccs est faible, plus les
donnes de la page doivent tre rutilises
si P est faible, alors la hirarchie est peu intressante

Exemple :
Soit N = 256 et TpsL = 2 * TpsR
P >
P >
P >

2 * 256 * 2 * TpsR
2 * TpsR - TpsR
2 * 256 * 2
4 * 256

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

En moyenne, chaque donne


doit tre utilise 4 fois
152

si P

Organisation mmoire
alors :

Eff =

P * TpsR
2 * N * TpsL + P * TpsR

Eff
Acc =

P * TpsL
2 * N * TpsL + P * TpsR

Acc

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Equivalent
un systme
sans hirarchie
avec mmoire rapide

TpsL
TpsR

153

Organisation mmoire
Processeur

Mmoire cache
Mmoire principale

Registres

Bibliothque

Mmoire secondaire
(disque) de Rennes 1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit

154

Organisation mmoire

le travailleur :

Processeur
travaille sur les feuilles places
directement devant lui
Mmoire
cache

peut accder rapidement aux dossiers


qui sont sur son bureau
la taille du bureau tant limite, il y
dpose uniquement les dossiers en
cours de traitement

Unit de
calcul

Registres

prend les feuilles une une dans les


dossiers

Mmoire
Cache

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Registres
155

Organisation mmoire

Larmoire :
contient les dossiers
laccs est plus

lent
laccs se fait par
dossier et non par

Mm

oire

prin

cipa

le

feuille

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

156

Organisation mmoire

La bibliothque :
contient les dossiers
laccs est trs

lent
laccs se fait par N
dossiers et non dossier par
dossier

Mmoire principale

Bibliothque

Mmoire secondaire
(disque) de Rennes 1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit

157

Organisation mmoire

Fonctionnement d'une mmoire cache


mmoire trs rapide :
temps daccs proche du temps de cycle du processeur

dfaut de cache :
on dit quil y a dfaut de cache lorsque la donne rclame par le processeur ne se
trouve pas dans le cache

recopie de petits blocs de la mmoire centrale

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

158

Organisation mmoire
Ncessit de raliser une association entre :
donne (ou bloc de donnes)
adresse (portion dadresse du bloc)
Portion
dadresses

Blocs

Processeur
TAG
Adresses

Comparaison
TAG == Adresse

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Vers mmoire
centrale

159

Organisation mmoire
On divise : la mmoire cache en n blocs
la mmoire principale en N blocs

Processeur

Contrleur

Mmoire

n Blocs

Avec N >> n

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Adresses

160

Organisation mmoire
5.3.1) Rangement des blocs dans le cache
mmoire cache en correspondance direct :

un bloc a une place fixe dans le cache quelque soit linstant o il est appel
simplifie la logique mettre en oeuvre pour la gestion du cache
nest pas optimale dans la faon de remplacer les blocs
un bloc i de la mmoire principale est stock dans le cache ladresse

Mmoire principale

NumroBlocCache = NumroBlocMmoire modulo n

bloc 0
bloc 1
...
bloc n-1
bloc n
...
...
bloc 2n-1
bloc 2n
...

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Cache

n lignes de cache

161

Organisation mmoire
mmoire cache associative :
un bloc une place diffrentes dans le cache et ceci en fonction du remplissage
du cache avant lappel du bloc
logique de gestion plus lourde
permet de mettre en oeuvre une politique de remplacement des blocs plus
judicieuse (par exemple le remplacement du bloc le plus anciennement utilis) :

0
4
8
12
...
...
...
224

A
B
C
D
E
...
...

random : tirage alatoire


fifo : premier entre, premier sortie
lru : plus anciennement utilis
lfu : moins souvent utilis

0
1
2
3
...
...
...
222

Numros

Adresses

Cache

N bloc

donnes

1
3

B
D

22 bits

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

fifo - lfu lru

4 fois 8 bits
162

Organisation mmoire
mmoire cache associative par ensemble de N voies :

0
4
8
12
...
...
...
224

random
fifo
lru
lfu

0
1
2
3
...
...
...
222

Cache
N bloc

donnes

fifo - lru

Numros

Adresses

un bloc peut prendre place dans N blocs de mmoire cache diffrents


simplifie un peu la logique de contrle
est gnralement suffisant pour assurer de bonnes performances au systme
mmoire
politique de remplacement dans les ensembles :

4 fois 8 bits
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

163

Organisation mmoire
recherche de l'emplacement dans le cache :

Mmoire principale

0
1
2
3
4
5
6
7
8

249
250
251
252
253
254
255

si N est le numro de bloc de la mmoire centrale


si L est le nombre de lignes du cache
si V est le nombre de voies du cache
alors
NumEnsemble = N mod (L/V)
les numros de blocs cache concerns par le rapatriement sont alors :
NumEnsemble * V <= NumBlocsCache <= (NumEnsemble + 1) * V -1

Mmoire cache
NumEnsemble
NumEnsemble = 5 modulo (8 / 2)
= 5 modulo 4
=1

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

0
1
2
3
4
5
6
7

0
1
2
3

164

Organisation mmoire
Politique d'criture dans la mmoire principale
lorsque le processeur modifie une valeur contenu dans un bloc de
cache
Mmoire

Cache
Processeur

Incohrence

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

165

Organisation mmoire
2 politiques de mise jour de la mmoire principale :
write back :

la mise jour de la mmoire principale s'effectue lors des remplacements de blocs

la mmoire et le cache peuvent contenir des blocs incohrents

un dfaut de cache avec rapatriement de bloc sur un bloc modifi cote cher

le cache dispose d'un bit indiquant si un bloc a t modifi : bit M

TAG

donnes

fifo - lru

1 bit
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

166

Organisation mmoire
2 politiques de mise jour de la mmoire principale (suite) :
write through :

la mise jour de la mmoire s'effectue chaque criture dans le cache

la mmoire et le cache sont toujours cohrents

pas besoin de bit indiquant l'incohrence entre cache et mmoire centrale

on surcharge le bus d'accs la mmoire, pour viter cela, on peut placer un write buffer

Processeur
Cache

Write buffer
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

167

Organisation mmoire
politiques pour l'criture d'une donne qui n'est pas dans le cache :
Ecriture dans le cache

Ecriture dans
la mmoire

Oui

Non

Oui

Write through
Write allocate

Write through
No write allocate

Non

Write Back

Write through, write allocate : le bloc est ramen dans le cache, et l'criture est ralise
dans le cache

la pnalit du dfaut de cache est identique un dfaut en lecture


il faut ramener le bloc complet de la mmoire, puis faire l'criture

Write through, no write allocate : l'criture est ralise dans la mmoire, pas dans le
cache

la prochaine criture dans le mme bloc, provoquera un nouveau dfaut

Write back, lcriture est faite au moment de lvincement du bloc


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

168

Organisation mmoire

Taille optimale dun cache ?


plus le bloc est petit, plus ladresse a lui associer est grande
exemple : mmoire cache 256 mots de 16 bits, mmoire principale 224 mots
de 16 bits (24 lignes dadresses)
Taille du bloc
du cache

Nbr
de TAG

Taille
du TAG

Mmoire
TAG

256
16
1

1
16
256

16
20
24

16
320
6144

Mmoire

256 * 16
4 Kbits

Nbr Tag = Taille Cache / Taille Bloc


Taille Tag = Nbr lignes Adresses principale - log 2 (Taille bloc Cache)
Mmoire Tag = Nbr Tag * Taille Tag

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

169

Organisation mmoire
Comment dimensionner un cache ?
il faut analyser lapplication
relever le nombre de fautes (ou dfaut de cache) en fonction de la
taille du cache :
si h est la probabilit daccs une donne en cache
Dfaut de cache
100 %

Temps daccs
100 %

Taille du cache

Taille du cache

Il faut onc rechercher un compromis entre la taille et le temps


daccs
On recherche minimiser lexpression :

Tacces = h . TpsCache + (1 -h) TpsMemoire


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

170

Organisation mmoire

Exemple : soit une mmoire ayant un temps daccs = 100 et une taille
gale 1024

Tps Cache
Taille
Dfaut
Taccs

-10
0
16
100% 60 %
100
64

20
32
50 %
60

30
64
40 %
58

40
50
128
256
30 % 20 %
58
60

60
512
10 %
64

70
1024
0%
70

Choix dun cache :


analyse de lapplication, dtermination des dfauts de cache :
pour les systmes ddis, cette analyse est facilit par le dterminisme de
lapplication
pour un systme gnral, cette analyse seffectue sur des benchmarks
(traitement de texte, compilateur, etc)

dtermination :
taille des blocs
taille du cache
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

171

Organisation mmoire

Simulation de mmoires caches :


Exemple du produit de 2 matrices 32 * 32
mmoire cache unifi
total des accs mmoire : 269 476
mmoire cache de 1024 octets for
simulations pour des caches :
ayant des blocs de taille :

4
8
16
32
64
128

(i = 0 ; i < N ; i++) {
for (j = 0 j < N ; j++) {
c[i][j] = 0;
for (k = 0 ; k < N ; k++) {


c[i][j] = c[i][j] + a[i][k] * b[k][j] ;
}
}

ayant une politique de remplacement de blocs de type :

correspondance directe
LRU
FIFO
Random

ayant des associativits variant de 1 NbBlocs (toujours en puissance de 2)

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

172

Organisation mmoire
Le programme est le suivant :
1600

MOVE
MOVE
MOVE
MOVE

R1,
R2,
R3,
R4,

@a00
@b00
@c00
N

-----

Pointeur pour la matrice A (Adresse 0)


Pointeur pour la matrice B (Adresse N^2)
Pointeur pour la matrice C (Adresse 2N^2)
Nombre de lignes

boucle1
MOVE R5, N

-- Nombre de colonnes

MOVE R6, N
MOVE R7, 0

-- Nombre de calcul aik * bkj + cij pour le calcul de cij


-- Variable temporaire pour cij

MOVE
MOVE
MULT
ADD
SUB
BRnz
MOVE
SUB
SUB
BRnz
MOVE
ADD
SUB
BRnz

---------------

boucle2
boucle3
R8, (R1)++
R9, (R2)++
R8, R9
R7, R8
R6, 1
boucle3
(R3)++, R7
R1, N
R5, 1
boucle2
R2, @b00
R1, N
R4, 1
boucle1

Charge element de la matrice A, prepare acces element suivant


Charge element de la matrice B, prepare acces element suivant
Effectue le produit aik * bkj
Effectue l'addition cij + (aik * bkj)
Calcul de cij termine ?
Non, alors on reboucle et on continue
Oui, alors on stocke le resultat
On ramene le pointeur de la matrice A en debut de ligne
Reste-t-il des elements de la ligne i a calculer ?
Oui, alors on reboucle et on continue
Non, alors on passe a la ligne suivante
On place le pointeur de la matrice A sur la ligne suivante
Reste-t-il des lignes a calculer ?
Oui, alors on boucle et on poursuit le caclul

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

173

Organisation mmoire
La liste des accs est la suivante :

2
2
2
2
2
2
2
2
0
2
0
2
2
2
2
2
0
2
0
2
2

640 -- Acces a l'instruction


641 -- Acces a l'instruction
642 -- Acces a l'instruction
643 -- Acces a l'instruction
644 -- Acces a l'instruction
645 -- Acces a l'instruction
646 -- Acces a l'instruction
647 -- Acces a l'instruction
0 --- Acces A[0][0]
648 -- Acces a l'instruction
40 --- Acces B[0][0]
649 -- Acces a l'instruction
64a -- Acces a l'instruction
64b -- Acces a l'instruction
64c -- Acces a l'instruction
647 -- Acces a l'instruction
1 --- Acces A[0][1]
648 -- Acces a l'instruction
41 --- Acces B[1][0]
649 -- Acces a l'instruction
64a -- Acces a l'instruction

MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE

R1,@a00
R2,@b00
R3,@c00
R4,N
R5,N
R6,N
R7,0
R8,(R1)++

MOVE R9,(R2)++
MULT R8,R9
ADD R7,R8
SUB R6,1
BRnz boucle3
MOVE R8,(R1)++
MOVE R9,(R2)++
MULT R8,R9
ADD R7,R8

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

2
2
0
2
2
2
2
2
1
2

2
2
0
2
0
2

649 -648 -47 --649 -64a -64b -64c -64d -80 --64e --

Acces
Acces
Acces
Acces
Acces
Acces
Acces
Acces
Acces
Acces

a l'instruction
a l'instruction
B[7][0]
a l'instruction
a l'instruction
a l'instruction
a l'instruction
a l'instruction
C[0][0]
a l'instruction

MULT R8,R9
MOVE R9,(R2)++

646 -- Acces a l'instruction


647 -- Acces a l'instruction
0 --- Acces A[0][0]
648 -- Acces a l'instruction
48 --- Acces B[0][1]
649 -- Acces a l'instruction

MOVE R7,0
MOVE R8,(R1)++

MULT R8,R9
ADD R7,R8
SUB R6,1
BRnz boucle3
MOVE (R3)++,R7
SUB R1,N

MOVE R9,(R2)++
MULT R8,R9

174

Organisation mmoire

Taille des blocs = 4

16

32

64

128 256

Associativit

Taille des blocs = 8

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

16

32

64

128

Associativit

175

Organisation mmoire
Taille des blocs = 16

16

32

64

Associativit

Taille des blocs = 32

1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

16

32

Associativit

176

Organisation mmoire
Taille des blocs = 64

16

Associativit

Taille des blocs = 128

1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Associativit

177

Organisation mmoire
Conclusions des simulations :
une taille de blocs trop petites engendre beaucoup de dfauts de
cache :
bien que la mise en place de blocs de petites tailles apporte une plus grande
souplesse dans la gestion des remplacements, il s'avre que le nombre de
dfauts est lui augment

une associativit trop importante napporte pas grand chose :


ceci explique pourquoi la plupart des caches que l'on trouve dans les
processeurs rcents sont associativit par ensemble de 2, 4 voir 8, mais
jamais au del

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

178

Organisation mmoire
Evolution :
les tailles disponibles augmentent
les temps de cycle diminuent
elles sont de plus en plus souvent intgres sur le circuit :
permet de les faire travailler avec des temps de cycle proche de celui du CPU
permet daugmenter facilement la taille des bus entre cache et contrleur 32, 64,
128 bits --- 1, 2, 4 instructions charges chaque accs

nombre de niveaux augmente


cache de premier niveau souvent non unifis :
cache instructions et cache donnes
bien quune solution non unifie soit globalement plus efficace :

Le cache des instruction ne pourra jamais tre remplit avec des blocs de donnes ce qui pourrait tre
intressant pour des applications fort volume de donnes et code peu important
for (i = 0 ; i < N ; i++) {
for (j = 0 j < N ; j++) {
c[i][j] = 0;
for (k = 0 ; k < N ; k++) {


c[i][j] = c[i][j] + a[i][k] * b[k][j] ;
}
}
}

cache de second niveau gnralement unifis


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

179

Organisation mmoire
Mmoire

Mme packaging

Disque

Cache 2

Cache 1

Processeur

Disque

Mmoire

Unifi

Cache instructions
Processeur

Cache 2
Cache donnes
Non Unifi

plus proche de larchitecture Harvard


permet la ralisation de politiques de gestion des caches diffrentes
mise en place de caches non bloquant :
lors dun dfaut de cache, le processeur peut continuer son excution (sous entend une
excution dans le dsordre)
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

180

Organisation mmoire
Et pourquoi pas un troisime niveau ?
Solution mise en uvre dans l'Itanium 2 :
3MB pour le niveau 3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

181

Organisation mmoire
Itanium 2, cur Madison :
410 million de transistors !!!

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

182

Organisation mmoire
Montecito : Dual Core Itanium
Cache de niveau 2 non unifi
Total cache : 27 Moctets

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

183

Organisation mmoire

Caches inclusifs exclusifs :


Inclusif : L1 L2 Mmoire
Un bloc rapatri dans le L1, est aussi copi dans le L2, L3, etc

L3

L2

L2

L1
L1

Processeur

Exclusif :
Un bloc rapatri dans le L1, nest pas copi dans le L2, L3, etc
Un bloc ject du Li, prend place dans le Li+1

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

184

Organisation mmoire
Amlioration des performances des caches : (1600 articles entre 89 et 95)
3 axes de recherches important :
1) rduction du taux dchec
2) rduction de la pnalit dchec
3) rduction du temps de laccs russi au cache

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

185

Organisation mmoire
1) rduction du taux dchec :
augmentation de la taille du cache
augmentation de la taille des blocs :
ils tirent profit de la localit spatial, si le processeur excute linstruction de ladresse @i au temps t, il
y a de forte chance quil excute trs prochainement linstruction de ladresse @i+1
augmente la pnalit dchec, plus dinformation transfrer lorsquil y a chec
nombre de blocs moins important, donc moins souple

associativit plus grande :


cache plus souple
en gnral, augmente le temps daccs au cache (plus complexe)

mise en place dun cache des victimes :


ajout dun tout petit cache entre le cache et la mmoire centrale
ce cache contient seulement les blocs qui sont rejets du cache cause dun chec
permet de supprimer entre 20 et 95 % des checs du au remplacement dun bloc par un autre et vice
versa

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

186

Organisation mmoire
Exemple de cache de victime :

Processeur
Accs blocs :
N 4
N 12
N 4
N12

Mmoire
Cache
correspondance
directe
(N mod 8) Cache des victimes
(associatif)

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

187

Organisation mmoire
mise en place de caches pseudo associatifs :
cest un cache correspondance directe amlior
lorsquil y a chec lors dun accs, et avant daller chercher dans la mmoire principale, on va tester
un autre bloc : une manire simple de le faire est dinverser le bit le plus significatif de lindex

lecture anticipe par matriel :


on anticipe la demande du processeur avant quil ne rclame (le processeur 21064 lit le bloc
demand (plac dans le cache) et le bloc suivant, tape 1)
le bloc charg en avance est marqu, tape 2)
si le processeur fait une requte dans un bloc marqu, alors on prend conscience que lon a eu
raison danticiper le prchargement, et on poursuit dans cette logique, on prcharge le bloc suivant,
tape 3)

Cache L1

Cache L1

1) ?@a

2) ?@a

Processeur

Processeur

@a
@a + L

Cache L1
3) ?@a+L
Processeur

@a
@a + L
@a + 2L

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

188

Organisation mmoire
lecture anticipe par le compilateur :
instructions de pr chargement disposes par le compilateur dans le code
la lecture anticipe na de sens que si le processeur peut continuer travailler pendant que la
donne est en cours de lecture, ce qui conduit la mise en place de cache non bloquant
anticipation : ni trop tt, ni trop tard (valeur de k dans lexemple ci-dessous ?? )

for (i = 0 ; i < N ; i++) {


x[i] = y[i] + u[i] ;
}

Prefetch x[0], y[0], u[0];


for (i = 0 ; i < N ; i++) {
x[i] = y[i] + u[i] ;
Prefetch x[i+k], y[i+k], u[i+k];
}

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

189

Organisation mmoire
optimisation du compilateur :

pas de modification du matriel


amlioration sur les checs de lecture dinstructions ou sur les accs aux donnes
le code peut facilement tre arrang tout en restant correct (r ordonnancement des instructions)
les donnes peuvent elles aussi tre r ordonnes dans la mmoire pour amliorer les localits
spatiale et temporelle

Exemple : produit de matrices N * N

for (i = 0 ;
for (j =
for

}
}
}

i < N ; i++) {
0 j < N ; j++) {
(k = 0 ; k < N ; k++) {

c[i][j] += a[i][k] * b[k][j] ;

BT

en C, le stockage de la matrice B peut tre amlior

for (i = 0 ;
for (j =
for

}
}
}

i < N ; i++) {
0 j < N ; j++) {
(k = 0 ; k < N ; k++) {

c[i][j] += a[i][k] * bt[j][k] ;

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

0 1 2 3 4
5 6 7

0
1
2
3
4
5
6
7
7
190

Organisation mmoire
2) rduction de la pnalit dchec :
priorit aux lectures par rapport aux critures :

une lecture bloque le processeur, pas une criture

cache non bloquant :

lors dun chec, le cache est capable de traiter des hits


permet au processeur de poursuivre son excution en attendant la donne
indispensable pour processeur superscalaire
hit under miss
hit under multiple miss (ou miss under miss)
plusieurs miss en suspend peuvent tre grs : 4 8 miss en suspend

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

191

Organisation mmoire
2) rduction de la pnalit dchec (suite) :
comment ne pas attendre la fin du chargement de tout le bloc ?
redmarrage prcoce :
lors dun dfaut daccs la donne di, on rapatrie le bloc de la mmoire vers le cache, ds que la
donne est arrive dans le cache on la fait passer au processeur qui peut ainsi continuer, en
parallle le bloc continue tre rapatri

mot critique en premier :


on va chercher en mmoire dabord le mot manquant et on lenvoie au processeur, ensuite on remplit
le bloc de cache en question (paralllement, le processeur peut continuer)

techniques plutt intressantes lorsque les blocs sont de grandes tailles

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

192

Organisation mmoire
second niveau de cache :

rpond aux exigences daugmentation de la taille du cache et de la diminution du temps daccs


premier niveau de cache est assez petit et donc trs rapide
second niveau beaucoup plus grand et qui limite les accs la mmoire principale
on parle alors dchec local (TLC1 et TLC2) un cache et dchec global (TLC1 * TLC2)

3) rduction du temps de laccs russi :


caches simples et petits :
permet une comparaison de ladresse avec les tiquettes du cache rapide
si le cache est petit il tiendra plus facilement dans le botier du processeur (pas de sortie vers
lextrieur qui ralentit les accs

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

193

Organisation mmoire

Quelques exemples dorganisation mmoire :


21164

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

194

Pipeline

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

195

Pipeline des processeurs

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

196

Pipeline des processeurs


Le pipeline :
Exemple :
Soit la tche : construction dune automobile
Cette tche est dcomposable en sous tches :
T1 : construction chssis
T2 : pose sige
T3 : pose roue
T4 : pose porte
T5 : peinture
T6 : finition

T1

T2

T3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

T4

T5

T6
197

Pipeline des processeurs


T1

T2

T3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

T4

T5

T6

198

Pipeline des processeurs

Cot dune telle production :


1 seul ouvrier :
non spcialis, donc sachant tout faire
mais pas de faon optimale

Temps de production dune pice :


6 units de temps

Cadence de production :
1 nouvelle pice toutes les 6 units de temps

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

199

Pipeline des processeurs

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

200

Pipeline des processeurs


T1

T2

T3

T4

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

T5

T6

201

Pipeline des processeurs


T1

T2

T3

T4

T5

T6

Cot dune telle production :


6 ouvriers :

Temps de production dune voiture :


6 units de temps

Cadence de production :
1 nouvelle voiture toutes les units de temps

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

202

Pipeline des processeurs


Soit le traitement F raliser
Soit la dcomposition F = fn o fn-1 o ...... o f2 o f1
Soient tn, tn-1, ......., t2 et t1 les temps de traitement de
chacune des tches lmentaires
Temps de traitement dune donne : Tps =
ti
Cadence de traitement : Cadence = max ( ti )
t=0
t=1
t=2
t=3
t=4
t=5

f1
f1
f1
f1
f1
f1

f2
f2
f2
f2
f2
f2

f3
f3
f3
f3
f3
f3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

f4
f4
f4
f4
f4
f4

f5
f5
f5
f5
f5
f5

f6
f6
f6
f6
f6
f6
203

Pipeline des processeurs

Pour le traitement numrique du signal :

PE1

PE2

PE3

PE4

Donnes
traites

Donnes

fonction lmentaire combinatoire


il faut stabiliser les donnes en entre de chaque fonction
lmentaire
on impose une cadence commune : max (ti) + Treg

clock

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

204

Pipeline des processeurs


Soient T(PE1) = 1, T(PE2) = 1, T(PE3) = 2, T(PE4) = 1
Dcoupage N 1 :

PE1

PE2

PE3

PE4

PE2

PE3

PE4

PE3

PE4

4 processeurs lmentaires
4 registres
Dcoupage N 2 :

PE1

4 processeurs lmentaires
3 registres
Dcoupage N 3 :

3 processeurs lmentaires
3 registres

PE12

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Ajout dun certain contrle pour


rutiliser le processeur lmentaire
205

Pipeline des processeurs

Gnralisation
soit TpsCalcul le temps de calcul de lensemble des traitements
soit N le nombre de tranches de pipeline
soit Tcycle le temps de cycle (cadence des traitements) :
Tcycle = TpsCalcul / N + Treg
soit D le nombre de donnes traiter
soit T(D) le temps d e traitement de D donnes :
T(D) = ( D + N - 1 ) * Tcycle
le temps de traitement par donne est donc ramen :
T(D) / D = ( D + N - 1 ) * ( TpsCalcul / N + Treg ) / D

si D ->

et D >> N alors le temps de traitement par donne est

T(D) / D = TpsCalcul / N + Treg

si N ->

et D << N alors le temps de traitement par donne est :

T(D) / D = N / D * Treg

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

206

Pipeline des processeurs


Temps de calcul

pente :

ti

pente : Tcycle
Tcycle = max ( T(PEi) )
Tcycle =

T(PEi) / N

N * Tcycle

T(PEi)
1

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

10

Nb donnes
207

Pipeline des processeurs

Problme de lamorage :
t = 0
t = 1

d1
d2

t = n-1
t = n
t = n+1

dn
dn+1
dn+2

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

d1
d2

208

Pipeline des processeurs

Quest ce que lon peut pipeliner ?


des oprateurs :
multiplieur, planche suivante
oprations flottantes dans les processeurs

du contrleur dun processeur :


tapes LI, DI, EX, WR =====> tages pipeline
Processeur RISC

les diffrentes units dun systme :


mmoires, unit de calcul
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

209

Pipeline des processeurs

s5

a2
b2

a1
b1

a0
b0
a0b0

a2b1
a1b2

a1b0
a0b1

a2b2

a2b0
a1b1
a0b2

s4

s3

s2

s1

s0

0 0

a2b0 0 0

+
a2b1 0

a1b1

a1b0 0

a0b0

a0b1

a0b2

fonction
combinatoire :

TpsCalcul = 5 UT
1 UT = TpsAdd

a1b2

+
a2b2

+
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes
s5 1 s4

s3

s2

s1

s0

210

Pipeline des processeurs


0 0

mise en place de
registres :

a2b0 0 0

5 tages
TpsCalcul * = 5 UT
Cadence Calcul = 1 UT
1 calcul toutes les UT

a2b1 0

a1b1

a1b0 0

a0b0

a0b1

a0b2

+
a1b2

+
a2b2

+
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes
s5 1 s4

s3

s2

s1

s0

211

Pipeline des processeurs

Pipelinage dun contrleur :


le cycle Von Neumann :
Li : lecture instruction
Di : dcodage instruction
Ex : excution dinstruction
Rr : rangement du rsultat
Contrleur non pipeline :

Li

Di

Ex

Rr

Li

Di

Ex

Contrleur pipeline : i

Li

Di
Li

Ex
Di
Li

Rr
Ex
Di
Li

Rr
Ex
Di

Rr
Ex

Rr

i+1
i+2
i+3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Rr

212

Pipeline des processeurs


On fractionnant encore les tches en sous tches,
1) on diminue le temps de cycle,
2) on augmente le nombre dtages de larchitecture

i
Li Li Di Di Ex Ex
i+1
Li Li Di Di Ex
i+2
Li Li Di Di
i+3
Li Li Di
i+4
Li Li
i+5
Li

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

Rr
Ex
Ex
Di
Di
Li
Li

Rr
Rr
Ex
Ex
Di
Di
Li
Li

Rr
Rr
Ex
Ex
Di
Di
Li

Rr
Rr
Ex
Ex
Di
Di

Rr
Rr
Ex
Ex
Di

Rr
Rr Rr
Ex Rr Rr
Ex Ex Rr Rr

213

Pipeline des processeurs

Enchanement du cycle Von Neumann :


soient les instructions :
i1 : move
i2 : sub
i3 : beq

i1
i2
i3

Li

R1, R2
R1, 3
@adresse

Di
Li

R1 := R2
R1 := R1 -3
si R1 = 0 alors saut

R1 := R2

Di
Li

R1 - 3

-> R1, Flags

Di

teste et saut

Les flags ne sont pas encore


valides lorsquon les teste

Dpendance entre les instructions


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

214

Pipeline des processeurs

Enchanement du cycle Von Neumann :


soient les instructions :
i1 : move
i2 : add
i3 : sub

i1
i2
i3

Li

R1, R2
R1,R3
R1, 3

Di
Li

R1 := R2
R1 := R1 + R3
R1 := R1 -3

R1 := R2

Di
Li

R1 + R3

-> R1, Flags

Di

R1 - 3

> R1, Flags

Le registre R1 nest encore charg

Dpendance entre les donnes


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

215

Pipeline des processeurs

Enchanement du cycle Von Neumann :


soient les instructions :
i1 : move
i2 : mult
i3 : move

R1, R2
R1,R3
R4, R1

R1 := R2
R1 := R1 * R3
R4 := R1

avec lopration multiplication ralise sur un oprateur pipeline 2


tages

i1
i2
i3

Li

Di
Li

Rsultat de la
multiplication

R1 := R2

Di
Li

R1 * R3

Di

R4 := R1

> R1, Flags

Dpendance entre les donnes


Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

216

Pipeline des processeurs

Le compilateur doit vrifier les dpendances :


entre donnes
entre instructions
la diffrence entre la cadence et le temps de calcul

Il ajoutera, si ncessaire des instructions NOP :


i1 : move
i2 : sub
i3 : NOP
i4 : beq

R1, R2
R1, 3

R1 := R2
R1 := R1 -3

@adresse

si R1 = 0 alors saut

i1 : move
i2 : add
i3 : NOP
i4 : sub

R1, R2
R1,R3

R1 := R2
R1 := R1 + R3

R1, 3

R1 := R1 -3

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

217

Pipeline des processeurs

Architecture parallle :
augmentation de la capacit de traitement par l'excution
concurrente

Architecture pipeline :
augmentation de la capacit de traitement par
recouvrement temporel des traitements lmentaires.

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

218

Bibliographie

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

219

Bibliographie

Architecture des ordinateurs : une approche quantitative, version franaise


J.L.Hennessy et D.A.Patterson
Prentice Hall

Structured computer organization, 4 eme dition


A.S.Tanenbaum
Prentice Hall

Computer organization and architecture, 4 eme dition


W.Stalling
Prentice Hall

Architecture de lordinateur
E.Lazard

Collection Synthex, Pearson Education

Parallel programming, techniques and applications using networked workstations and


parallel computers
B.Wilkinson et M.Allen
Prentice Hall

Serveurs multi-processeurs, clusters et architectures parallles


R.J.Chevance
Eyrolles

Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1

220

You might also like