Architectures Nouvelles des Machines

Transcription

Architectures Nouvelles des Machines
Plan du cours
Architectures Nouvelles des
Machines
 De Von Neumann au parallélisme
 Mécanismes de communication
 Performances
 Fonction mémoire hiérarchique
 Fonction processeur
Jean--Luc DEKEYSER
Jean
13/09/2010
1
13/09/2010
Introduction au parallélisme
Supports de cours
 Support de cours
 Séquentiel et parallélisme
 Les types de parallélisme
13/09/2010
 Organisation et architecture de
l’ordinateur
William Stallings - Sixième Edition
Pearson Education
ISBN : 22-7440
7440--7007
7007--6
 Programme de licence et Master
3
13/09/2010
Internet Resources
- Web site for book
4
Internet Resources
- Usenet News Groups
 http://WilliamStallings.com/COA6e.html




2
 comp.arch
 comp.arch.arithmetic
 comp.arch.storage
 comp.parallel
links to sites of interest
links to sites for courses that use the book
errata list for book
information on other books by W. Stallings
 http://WilliamStallings.com/StudentSupport
.html
13/09/2010
5
13/09/2010
6
1
Supports de cours
Bibliographie
 Computer Architecture
 - "Computer Architecture Design and
Pipelined and Parallel Processor
Design
Michael J. Flynn
Jones and Barlett
 Parallel Computer Architecture
D Culler and J Pal Singh Computer
Science Division UC. Berkeley
Performance" Barry Wilkinson
Performance"
(Prentice Hall)
 -"Algorithmes et Architectures
Parallèles" M Cosnard, D Trystram
(InterEdition)
 -"Computer Architecture" Mario de
Blasi (Addison Wesley)

http://www....
13/09/2010
7
13/09/2010
8
Bibliographie (suite)
 - "Structured Computer Organization"
(3ième édition) A.S. Tannenbaum
(Prentice Hall)
 - "Advance Computer Architecture" K
Hwang (Mc GrawGraw-Hill)
 - «Initiation au parallélisme»Gengler
Ubeda Desprez (Masson)
13/09/2010
Parallélisme intrinsèque
Extension du modèle Von Neumann
9
13/09/2010
10
Structure - Top Level
Modèle de Von Neumann
 John Von Neumann 1945
 Lignes essentielles pour construire une machine
électronique. (Projet ENIAC)
 Appliqués jusqu'à nos jours
Peripherals
Central
Processing
Unit
 Trois blocs fonctionnels:
 Le processeur (ALU + Control Unit)
 La mémoire
 Le bus
CPU
Computer
Computer
Main
Memory
Systems
Interconnection
Input
Output
MEM
Communication
lines
13/09/2010
BUS
11
13/09/2010
12
2
Computer Components:
Top Level View
Type de fonctionnement
 Le processeur exécute (interprète)
des instructions élémentaires
 Une séquence d'opérations peut
décrire tous les problèmes
notion de Programme
13/09/2010
13
13/09/2010
14
Structure - The CPU
Déroulement du programme
 Le déroulement du programme est
contrôlé par le Compteur Ordinal qui
pointe vers la prochaine instruction à
exécuter.
 Les instructions sont exécutées en
séquence sauf en cas de saut. (Jump)
CPU
Computer
Arithmetic
and
Login Unit
Registers
I/O
System
Bus
CPU
Memory
Internal CPU
Interconnection
Control
Unit
13/09/2010
15
13/09/2010
16
Structure - The Control Unit
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 bus
Control Unit
CPU
ALU
Control
Internal
Unit
Bus
Registers
Sequencing
Login
Control Unit
Registers and
Decoders
Control
Memory
13/09/2010
17
13/09/2010
18
3
Séquencement des instructions
 L'exécution d'une instruction passe par
plusieurs étapes successives, chacune
étant considérée comme une micromicroopé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
13/09/2010
19
Activités
Processeur
incrémenter le compteur ordinal
 3 - Décoder le code de l'opération
 4 - Calculer les adresses des opérandes si
nécessaire
 5 - Extraire les opérandes éventuelles de la
mémoire
 6 - Exécuter l'instruction
 7 - Calculer l'adresse du résultat
 8 - Ranger le résultat en mémoire
13/09/2010
(1)
Fetch instr
20
Cycle du processeur
 L'exécution d'une instruction peut
Phase de
chargement
(3)
Decode instr
Opérandes multiples
(5)
Fetch operand
Cycle
instruction
Phase d'
exécution
(6)
Execution
(7)
Calcul adr res
 1 - Aller chercher l'instruction en mémoire;
 2 - Calculer l'adresse de la prochaine instruction,
Activités
Mémoire
(2)
Incrément
(4)
Calcul adr Op
Séquencement des instructions
Résultats multiples
être découpée en plusieurs phases
successives.
 Deux phases sont définies: la phase
de chargement 'Fetch' et la phase
d'exécution 'Execute''
(8)
Store résultat
Phase de
Chargement
Phase d'
exécution
Instruction sur des chaînes
13/09/2010
Instruction terminée
21
Parallèle ou séquentiel
13/09/2010
Von Neumann estest-il parallèle?
 Le Modèle de Von Neumann présente
 Parallélisme est inhibé par le modèle
un haut degré de déterminisme possibilité à tout instant de prédire la
prochaine instruction et données
exécutées.
d'exécution séquentiel
Forcer une représentation séquentielle de
problèmes présentant un certain degré de
parallélisme entraîne nécessairement une
perte d'efficacité dans l'amélioration des
performances
13/09/2010
Vers une explicitation parallèle des
algorithmes donc des programmes
22
 L'
L'anticipation
anticipation du chargement d'instructions
ou de données suivantes depuis la mémoire
 La mémorisation d'instructions ou de
23
13/09/2010
données qui seront réutilisées par le
processeur
 L'exécution anticipée de plusieurs
instructions ou données
24
4
Comment prédire?
Prédiction
 Ces prédictions dépendent de un ou
 Une heuristique évaluée lors de
l'exécution du programme,
 par exemple la fréquence
plusieurs des facteurs suivants:
 Une connaissance à priori de
l'exécution du programme,
 par exemple dans VN la
d'exécution d'une instruction.
 Une connaissance explicitée par
le programmeur (ou le
compilateur),
 par exemple une donnée placée en
prochaine instruction est la
suivante dans la mémoire
(sauf pour un JUMP)
13/09/2010
25
13/09/2010
26
Les types de dépendances
V.N impose
impose--t-il la séquentialité?
 Respect du caractère déterministe de
VN, il faut pouvoir prendre en compte
également son aspect
indétermisniste,
 par exemple quelle sera
l'instruction suivante après un IF.
 Les interactions entre les
instructions pilotent directement le
déroulement parallèle des
instructions.
13/09/2010
registre en C.
27
 Elles sont de deux types:
 Les dépendances de contrôle:
contrôle:
L'exécution ou non d'une instruction
dépend de l'exécution d'une autre
instruction.
 Les dépendances de données:
données: Une
instruction utilise le résultat d'une
instruction précédente pour son
exécution.
13/09/2010
28
La non séquentialité
 Dans ces deux cas la séquentialité des
instructions doit être conservée. Sinon
la séquentialité d'exécution n'est
qu'une conséquence du modèle VN.
Types de parallélisme
Les instructions peuvent être exécutées
en parallèle, ou dans n'importe quel
ordre, sans altérer le résultat du
programme.
13/09/2010
29
13/09/2010
30
5
Différents niveaux du parallélisme
Modèles de programmation vs Modèles de
fonctionnement
Niveaux du parallélisme
 Modèle de fonctionnement
 Modèle de programmation est lié à la
(d'exécution) est lié à l'architecture
de la machine
 Il caractérise la façon dont sont
exécutées les instructions
élémentaires.
 Diverses classifications
différencient ces modes de
fonctionnement.
13/09/2010
traduction de l'algorithme
 Il caractérise la méthode de
parallélisation d'algorithmes utilisée
31
 Le parallélisme de tâches:
tâches:
 Solutions architecturales pour la mise
en oeuvre du parallélisme intrinsèque
du modèle séquentiel
 Mise en oeuvre du parallélisme à
différents niveaux d'exécution
 Le parallélisme est traduit par un
ensemble de tâches qui collaborent à
l'exécution d'un même problème
(plusieurs flots de contrôle)
 Le parallélisme de données:
données:
13/09/2010
33
13/09/2010
34
Mise en oeuvre du
parallélisme(suite)
Mise en oeuvre du parallélisme
 2)
2)La
La hiérarchie du système mémoire
 1)
1)Le
Le fonctionnement du processeur
 Des mémoires rapides intermédiaires
qui mémorisent dynamiquement des
données et instructions qui seront
réutilisées par le programme
 Le déroulement du cycle de
l'instruction prend en compte
l'anticipation des instructions
suivantes: principe du pipeline
13/09/2010
32
Développements architecturaux
Deux modèles de programmation
 Le parallélisme s'exprime au niveau des
données sur lesquelles sont exécutées
séquentiellement des instructions
élémentaires parallèles (un seul flot de
contrôle)
13/09/2010
35
13/09/2010
36
6
Mise en oeuvre du parallélisme(suite)
Mise en oeuvre du parallélisme(suite)
 3)
3)L'interface
L'interface Processeurs / Mémoires
 4)
4)Les
Les systèmes MultiMulti-Processeurs
 Elle doit permettre d'assurer un
transfert des données efficace entre
un ou plusieurs processeurs et une
ou plusieurs mémoires.
13/09/2010
 Par l'association de plusieurs unités
de calcul indépendantes, on
augmente le potentiel en terme de
puissance de calcul.
37
13/09/2010
Classifications
Les caractéristiques de Flynn
 Flynn 72
 S Single
Flux data et Instruction
 Flux d'instruction : séquence
d'instruction exécutée par la machine.
 Flux de données : séquence des
données appelées par le flux
d'instructions
13/09/2010
M Multiple
39
 SISD
SISD:: La plupart des ordinateurs
SISD
MISD
actuels (Von Neumann)
 SIMD
SIMD:: Array processeur - même
instruction sur des données
différentes (Data parallélisme)
SIMD
MIMD
données
Plusieurs
13/09/2010
40
Plusieurs
Flux
Un
D Data
Les classes de Flynn
Flux d'instructions
Un
I Instruction
13/09/2010
Classification de Flynn
de
38
41
13/09/2010
42
7
SISD
Les classes de Flynn



13/09/2010
MISD: n PU recevant des instructions
différentes mais avec le même Flux de
données (ou un Flux dérivé) . Notion de
macro-pipe-line, Machine systolique. Pas
de machine commerciale de ce type !
MIMD: n PU se partagent l'accès à une
mémoire unique ou multiple.
SPMD: Même programme sur des
données différentes.
43
– SIMD < SPMD < MIMD
IS
IS
CU
DS
PU
MU
13/09/2010
44
Connection Machine
SIMD
DS
PU
MU
IS
IS
CU
DS
PU
MU
(Tucker, IEEE Computer, Aug. 1988)
13/09/2010
45
MIMD
IS
CU
13/09/2010
46
MIMD (2)
IS
DS
PU
IS
MU
CU
IS
DS
PU
MU
IS
IS
CU
IS
DS
PU
CU
DS
PU
MU
IS
13/09/2010
47
13/09/2010
48
8
Construction
Mémoire partagée / mémoire distribuée
 La mémoire peut être physiquement
construite par un ensemble de bancs
mémoires visibles par l'ensemble
des processeurs.
13/09/2010
49
 Dans ce cas un réseau d'alignement
permet d'associer au même instant un
certain nombre de bancs et de
processeurs.
 La mémoire physiquement partagée
est nécessairement logiquement
partagée.
13/09/2010
50
Espace d’adressage partagé
Mémoire partagée
Virtual address spaces for a
collection of processes communicating
via shared addresses
MEMOIRE PARTAGEE
Load
Machine physical address space
Pn pr i v at e
Pn
P2
Common physical
addresses
P1
P0
St or e
RESEAU D'INTERCONNEXION
Shared portion
of address space
Private portion
of address space
CPU
CPU
CPU
Cache
Cache
Cache
13/09/2010
 Code système parallèle add hoc
 Nombreuses applications parallèles
13/09/2010
Intel Pentium Pro Quad
Interrupt
controller
P-Pr o
module
256-KB
L2 $
P-Pr o
module
P1 pr i v at e
P0 pr i v at e
51
CPU
P2 pr i v at e
52
SUN Enterprise
P-Pr o
module
Bus interf ace
P
$
P
$2
$2
CPU/mem
cards
$
Mem ctrl
Bus interface/switch
Memory
controller
Gigaplane bus (256 data, 41 addr ess, 83 MHz)
MIU
SBUS
2 FiberChannel
SBUS
Faible latence &
bandwidth
13/09/2010
I/O cards
Bus interface
1-, 2-, or 4-w ay
interleaved
DRAM
SBUS
PCI
bridge
100bT, SCSI
PCI
bridge
PCI bus
PCI
I/O
cards
PCI bus
P-Pr o bus (64-bit data, 36-bit address, 66 MHz)
 Proc + mem carte - I/O carte
53
13/09/2010
 16 cartes de différent type
 Toute la mémoire est accédée depuis le bus : SMP
54
 Bandwidth et latence du bus + élevée
9
Mémoire partagée /
Construction
mémoire distribuée
 Les données externes au processeur
 Elle peut être construite par
association de l'ensemble des
mémoires de chaque processeur.
 Dans ce cas un réseau
d'interconnexion relie l'ensemble des
processeurs.
13/09/2010
55
Mémoire distribuée
sont véhiculées par ce réseau.
 La mémoire physiquement
distribuée peut être logiquement
distribuée ou logiquement partagée.
13/09/2010
56
Classification / machines parallèles
 SIMD:
 mémoire partagée
?
RESEAU D'INTERCONNEXION
CPU
CPU
CPU
Mem
Mem
Mem
Mem
13/09/2010
 mémoire distribuée
 DAP
 Connection machine
 MasPar (USTL)
57
13/09/2010
Classification des machines MIMD
58
Cray T3E
Exter nal I/O
MIMD
P
Mem
$
Multi-processeurs à mémoire partagée
espace d'adressage unique
Mem
ctrl
and NI
Multi-ordinateurs à mémoire répartie
espaces d'adressage multiples
XY
Mémoire centrale
accès croisé
ou multi-niveaux
Cray
IBM
NEC
Bus multiples
DEC
SGI
13/09/2010 Sun
Mémoire distribuée
lien statique
programme BBN°
cache : Alliant °
anneau : IEEE SCI
Réseau intégré : MPP Réseau externe:
cluster
rapides : DEC
maillage : INTEL
Tandem
arborescence : TMC°
IBM SPx
hypercube : NCUBE
Tore 3D : Cray T3E
lents : PC
stations de travail
lien dynamique
des adresses aux
processeurs
KSR
59
Switch
Z
 Jusque 1024 processeurs, 480MB/s links
 Contrôleur mémoire génère un request message
pour des références non locales
 Pas de hardware pour la cohérence
13/09/2010
60
° disparus
10
UMA
Multiprocesseur à mémoire partagée
 Partage uniforme de l'accès mémoire
 Trois modèles existent
par tous les processeurs
 Temps d'accès égal pour chaque mot
de la mémoire
 On parle de système fortement
couplé: haut degré de partage de
ressources
 UMA : UniformUniform-Memory
Memory--Access
 NUMA : NonNon-Uniform
Uniform--Memory
Memory-Access
 COMA : CacheCache-Only
Only--Memory
Memory-Architecture
13/09/2010
61
13/09/2010
62
UMA(suite)
UMA
 Utilisation d'un bus commun, d'un
I/O
devices
cross-bar, d'un réseau multicrossmulti-étage
 Communication et synchronisation se
font via des variables partagées en
mémoire
Mem
Mem
Mem
Interconnect
Mem
63
Processor
Sequent Symmetry S-81
13/09/2010
NUMA
64
NUMA:exemple 1
 Le temps d'accès dépend de la

location de l'information en
mémoire.
 2 exemples


13/09/2010
I/O ctrl
Interconnect
Pr ocessor
13/09/2010
I/O ctrl
65
13/09/2010
Une mémoire partagée peut être
physiquement distribuée.
L'adressage de la mémoire est global
mais chaque processeur possède sa
mémoire locale.
Les accès à des adresses en mémoire
locale sont plus rapides que ceux aux
mémoires d'autres processeurs.
66
11
Mémoire locale partagée
NUMA Exemple 2
 On peut utiliser un système
LM
P1
LM
P2
.
.
.
LM
hiérarchisé de mémoires.
 Chaque processeur possède sa
mémoire locale
 Les processeurs sont regroupés
en cluster.
 Une mémoire est globalement
partagée entre tous les clusters.
Réseau
d'inter
connexion
Pn
BBN Butterfly
13/09/2010
67
13/09/2010
68
NUMA 2
NUMA (2)
 L'accès le plus rapide est local,
 Puis l'accès à la mémoire globale
 Enfin l'accès à une mémoire locale d'un
autre processeur.
GSM
P
.
.
.
P
13/09/2010
C
I
N
CSM
...
.
.
.
P
.
.
.
CSM
CSM: Cluster Shared Memory
GSM: Global Shared Memory
CIN: Cluster Inteconnect Network
P
CSM
C
I
N
CSM
.
.
.
CSM
Cluster N
Cedar System Univ Illinois
70
COMA (suite)
COMA
 Le modèle COMA est un cas
 L'accès aux caches externes est assuré
particulier du modèle NUMA.
 Les mémoires locales sont
remplacées par des mémoires
caches.
 L'ensemble des caches forment
l'espace d'adressage.
13/09/2010
P
CSM
Cluster 1
69
GSM
Global Interconnect Network
P
13/09/2010
...
GSM
par un catalogue (directory) distribué
sur l'ensemble des processeurs. ( Voir
le cours sur les mémoires caches )
 Les données vont migrer lors du calcul
en fonction du processeur qui les
utilise.
71
13/09/2010
72
12
COMA
Autres modèles
Interconnection Network
 D'autres modèles ont été définis pour
telle ou telle machine
Directory
Directory
Cache
Cache
Proc
Proc
 CC
CC--NUMA : Cache Coherent Non
Directory
...
Uniform Memory Access utilise une
mémoire distribuée et des caches sur
chaque processeur. (Ex Dash Stanford
Whang Chap 9)
Cache
Proc
KSR 1
13/09/2010
73
Multicomputer à mémoire distribuée
 Un multicomputer est composé d'un
certain nombre de noeuds
interconnectés par un réseau à
passage de messages.
messages.
 Il permet d'établir des liaisons point à
point entre les noeuds de la machine.
 Les communications et
synchronisations se font par l'envoi
de messages entre les noeuds.
13/09/2010
75
Mémoire des multicomputers
13/09/2010
74
Message--Passing Abstraction
Message
Match
Receive Y, P, t
AddressY
Send X, Q, t
AddressX
Local process
address space
Local process
address space
Process P
Process Q
 Send spécifie un buffer à envoyer
 Recv spécifie une zone de rangement pour réception
 Mémoire à mémoire, identifier les processus
 Send/recv demande une synchronisation
 Beaucoup d’overhead: copie, buffer, protection
13/09/2010
76
Multicomputer message passing
 Il n'y a pas d'accès à une mémoire
M
P
autre que celle du noeud.
M
P
 Les mémoires locales sont dites
 De nouvelles machines proposent
actuellement des architectures équivalentes
mais qui propose des mémoires partagées
distribuées. ( Cray T3D )
13/09/2010
P M
M P
mémoire privée. On parle alors de
modèle NORMA
NORMA:: No Remote Memory
Access.
M P
Message passing
interconnection network
P
M
77
13/09/2010
P M
P
M
78
13
Intel Paragon
IBM SPSP-2
i860
L1 $
L1 $
 Construction à
Intel
Paragon
node
partir de WS
RS6000
 Network
interface
intégrée au
I/O bus (bw
limité par le
I/O bus)
Memory bus (64-bit, 50 MHz)
Mem
ctrl
DMA
Driver
Sandia’ s Intel Paragon XP/S-based Super
com puter
2D grid network
with processing node
attached to every switch
13/09/2010
NI
4-way
interleaved
DRAM
8 bits,
175 MHz,
bidir ectional
79
13/09/2010
Pow er 2
CPU
IBM SP-2 node
L2 $
Memory bus
General interconnection
netw ork f ormed fom
r
8-port sw itches
4-w ay
interleaved
DRAM
Memory
controller
MicroChannel bus
NIC
I/O
DMA
i860
NI
DRAM
i860
80
14

Documents pareils