Académique Documents
Professionnel Documents
Culture Documents
Rfrences : Support de cours de R. Katz Chapitre 8 de Hennessy-Patterson "Computer Architecture: a Quantitative Approach"
ch12 - 1
Catgories de Flynn
SISD ("Single Instruction Single Data")
Uniprocesseurs
ch12 - 3
ch12 - 4
Modles de Communication
Mmoire Partage
Les processeurs communiquent l'aide d'un espace d'adresse partag Facile sur les machines petite chelle Avantages : Modle identique pour les uniprocesseurs et les multi-processeurs faible chelle Facile programmer Latence plus faible Plus facile d'utiliser le contrle matriel du cache
Message
Les processeurs ont des mmoires prives, ils communiquent par messages Avantages : Moins de "hardware", plus facile concevoir Le cot des oprations non excutes en local est mis en vidence
Les deux modles sont possibles sur n'importe laquelle des deux bases "hardware" ch12 - 5
Latence
Affecte la performance puisque le processeur devoir attendre Affecte la facilit de programmation: plus de rflexion est requise pour raliser un recouvrement de la communication et du calcul
Masquer la latence
Comment un mcanisme peut-il contribuer cacher la latence ? Exemples : lecture anticipe des instructions, recouvrement de l'envoi de message par du calcul.
ch12 - 6
ch12 - 7
100
660
100
200
200
200
Memory
Memory
Memory
100
100
100
200
200
440
I/O
ch12 - 8
Mieux :
Toute criture doit finalement tre vue par une opration de lecture Toutes les critures sont vues dans l'ordre (srialisation)
ch12 - 9
Solutions Potentielles
Espionnage du bus ("Snoopy Bus") :
Envoyer les adresses de toute requte de donnes tous les processeurs Les processeurs espionnent le bus pour voir s'ils ont une copie et rpondent en fonction de ce qu'ils ont trouv Ncessite la diffusion puisque l'information concernant les blocs prsents dans la mmoire cache est au niveau des processeurs Fonctionne bien avec un bus (medium naturel de diffusion) Solution prdominante pour les multi-proc. petite chelle (la majorit du march)
Snoop tag
Snoop tag
... ...
Snoop tag
Single bus
Memory
I/0
ch12 - 11
Protocole d'Ecriture-Diffusion :
Ecriture d'une donne partage : diffusion sur le bus, les processeurs espionnent et mettent jour leur copie Echec en lecture : la mmoire est jour
L'invalidation ncessite une transaction par opration d'criture L'invalidation utilise la localit spatiale : une transaction par bloc La diffusion a une latence plus faible entre l'criture et la lecture La diffusion : compromis entre le dbit (augment) et la latence (rduite)
Type de Protocole Ecriture-invalidat Ecriture-invalidat Ecriture-invalidat Ecriture-invalidat Ecriture-diffusion Politique d'criture de la mmoire Machines utilisant
Ecriture diffre Premier protocole d'espionnage aprs la premire criture Ecriture diffre Ecriture diffre Ecriture diffre Ecriture diffre des donnes prives, Ecriture directe des donnes partages 1 multi-proc. avec caches cohrents Berkeley SPUR SGI Power et Challenge SPARCCenter 2000
ch12 - 13
Echec en lectures : espionn par tous les caches Ecriture dans un bloc propre: traite comme un chec
ch12 - 14
Invalid
Shared (read/only)
CPU read miss Place read miss on bus
CPU read miss Write back dirty Block + Place read miss on bus
Exclusive (read/write)
CPU Write Miss Write back cache block Place write miss on bus
ch12 - 15
Invalid
Shared (read/only)
Exclusive (read/write)
W rit e
ba ck
bl oc k
ch12 - 16
Place read miss on bus s bu CPU on k Read s CPU Write oc ite is miss bl r m k w d c Place read ea ba CPU r e miss on bus e rit ac l W s k P s is m loc ck bu o d b bl on Extensions: e a ack r r fo ss U b i s m 4 tat: propritaire CP rite is m Write miss ite W r d propre-> modifi, envoi d'une w for block ea R ce invalidation (Protocole de a Pl Berkeley) Exclusive Etat propre&exclusif: pas (read/write) CPU Write Miss CPU read hit d'chec lors d'une criture de CPU write hit donne prive Write back block (Protocole de l'Illinois) Place write miss on bus ch12 - 17 Place write miss on bus
Exemple
P1 State
Hypothse: A1 et A2 vont dans le mme bloc du cache Etat initial du cache : invalide A1 A2
ch12 - 18
Exemple
P1 State Excl.
ch12 - 19
Exemple
ch12 - 20
Exemple
P1 P2 Bus State Addr Value State Addr Value Action Proc. Addr Excl. A1 10 WrMs P1 A1 Excl. A1 10 Shar. A1 RdMs P2 A1 Shar. A1 10 WrBk P1 A1 Shar. A1 10 RdDa P2 A1 Memory Value Addr Value
10 10
A1 A1
10 10
ch12 - 21
Exemple
P1 P2 Bus State Addr Value State Addr Value Action Proc. Addr Excl. A1 10 WrMs P1 A1 Excl. A1 10 Shar. A1 RdMs P2 A1 Shar. A1 10 WrBk P1 A1 Shar. A1 10 RdDa P2 A1 Inv. Excl. A1 20 WrMs P2 A1
10 10
A1 A1 A1
10 10 10
ch12 - 22
Exemple
P1 P2 Bus State Addr Value State Addr Value Action Proc. Addr Excl. A1 10 WrMs P1 A1 Excl. A1 10 Shar. A1 RdMs P2 A1 Shar. A1 10 WrBk P1 A1 Shar. A1 10 RdDa P2 A1 Inv. Excl. A1 20 WrMs P2 A1 WrMs P2 A2 Excl. A2 40 WrBk P2 A1
10 10 20
A1 A1 A1 A1 A1
10 10 10 10 20
ch12 - 23
ch12 - 24
Elments de ralisation
Tous les processeurs sur le mme bus accs la fois aux adresses et aux donnes Ajout de commandes pour la cohrence, en plus de lecture/criture Les processeurs espionnent le bus dadresse en permanence Si une adresse = etiquette dans le cache alors invalidation ou mise jour Pour viter interfrences avec les accs au cache par le processeur - Solution 1 : dupliquer les tiquettes du cache N1 - Solution 2 : agir au niveau du cache N2, condition que N1 N2.
ch12 - 25
Elments de ralisation
Le bus ralise la srialisation des critures mmoire Obtention du bus aucun autre change avec la mmoire nest possible Dans le cache, un bit dtat supplmentaire par bloc : partag/exclusif Echec accs au cache celui qui a le bloc en accs exclusif doit rpondre
ch12 - 26
Rgles de simplification
Ecriture dans un bloc partag => write miss Un chec bloque le processeur jusqu obtention du bloc Les messages sont traits dans lordre
ch12 - 28
Terminologie
Nud local: origine de la requte Rsidence: l o rside lemplacement mmoire Nud distant: possde une copie du bloc, en mode partag ou en exclusif
ch12 - 29
Write miss
Cache local
Rpertoire rsident
P, A
Processeur P crit une donne ladresse A; P obtient accs exclusif et reoit la donne
Rpertoire rsident Caches distants Rpertoire rsident Cache distant Rpertoire rsident Cache distant
A A A
Invalide une copie partage ladresse A. Rcupre le bloc ladresse A et lenvoie son rpertoire rsident Rcupre le bloc ladresse A et lenvoie son rpertoire rsident; Invalide le bloc dans le cache
Data A, Data
ch12 - 30
Renvoie une donne depuis sa mmoire rsidente (rponse un chec en lecture) R-crit une donne ladresse A (rponse un invalidate)
CPU Read Send Read Miss message CPU read miss: CPU Write: Send Read Miss Send Write Miss CPU Write:Send msg to h.d. Write Miss message to home directory Fetch: send Data Write Back message to home directory CPU read miss: send Data Write Back message and read miss to home directory CPU write miss: send Data Write Back message and Write Miss to home ch12 - 31 directory
Shared (read/only)
Exclusive (read/write)
Identifier toutes les copies dun bloc mmoire Actions de mise jours des partages
ch12 - 32
Uncached
Write Miss: send Invalidate to Sharers; then Sharers = {P}; send Data Value Reply msg
Write Miss: Sharers = {P}; send Fetch/Invalidate; send Data Value Reply msg to remote cache
Exclusive (read/write)
Read miss: Sharers += {P}; send Fetch; send Data Value Reply msg to remote cache (Write back block)
ch12 - 33
ch12 - 35
Example
Processor 1 Processor 2
step P1: Write 10 to A1
P1: Read A1 P2: Read A1
Interconnect
Directory
Memory
P1 P2 Bus Directory Memory StateAddr ValueStateAddr ValueActionProc. Addr Value Addr State {Procs}Value
P2: Write 20 to A1
P2: Write 40 to A2
ch12 - 36
Example
Processor 1 Processor 2
step P1: Write 10 to A1
P1: Read A1 P2: Read A1
Interconnect
Directory
Memory
P1 P2 Bus Directory Memory StateAddr ValueStateAddr ValueActionProc. Addr Value Addr State {Procs}Value WrMs P1 A1 A1 Ex {P1} Excl. A1 10 DaRp P1 A1 0
P2: Write 20 to A1
P2: Write 40 to A2
ch12 - 37
Example
Processor 1 Processor 2
step P1: Write 10 to A1
P1: Read A1 P2: Read A1
Interconnect
Directory
Memory
P1 P2 Bus Directory Memory StateAddr ValueStateAddr ValueActionProc. Addr Value Addr State {Procs}Value WrMs P1 A1 A1 Ex {P1} Excl. A1 10 DaRp P1 A1 0 Excl. A1 10
P2: Write 20 to A1
P2: Write 40 to A2
ch12 - 38
Example
Processor 1 Processor 2
step P1: Write 10 to A1
P1: Read A1 P2: Read A1
Interconnect Directory
Memory
P2: Write 20 to A1
P2: Write 40 to A2
P1 P2 Bus Directory Memory StateAddr ValueStateAddr ValueActionProc. Addr Value Addr State {Procs}Value WrMs P1 A1 A1 Ex {P1} Excl. A1 10 DaRp P1 A1 0 Excl. A1 10 Shar. A1 RdMs P2 A1 Shar. A1 10 Ftch P1 A1 10 A1 A1 10 Shar. A1 10 DaRp P2 A1 10 A1 Shar. {P1,P2} 10 10 10 10
ch12 - 39
Example
Processor 1 Processor 2
step P1: Write 10 to A1
P1: Read A1 P2: Read A1
Interconnect Directory
Memory
P2: Write 20 to A1
P2: Write 40 to A2
P1 P2 Bus Directory Memory StateAddr ValueStateAddr ValueActionProc. Addr Value Addr State {Procs}Value WrMs P1 A1 A1 Ex {P1} Excl. A1 10 DaRp P1 A1 0 Excl. A1 10 Shar. A1 RdMs P2 A1 A1 Shar. A1 10 Ftch P1 A1 10 10 A1 Shar. A1 10 DaRp P2 A1 10 A1 Shar. {P1,P2} 10 Excl. A1 20 WrMs P2 A1 10 Inv. Inval. P1 A1 A1 Excl. {P2} 10 10
ch12 - 40
Example
Processor 1 Processor 2
step P1: Write 10 to A1
P1: Read A1 P2: Read A1
Interconnect
Directory
Memory
P2: Write 20 to A1
P2: Write 40 to A2
P1 P2 Bus Directory Memory StateAddr ValueStateAddr ValueActionProc. Addr Value Addr State {Procs}Value WrMs P1 A1 A1 Ex {P1} Excl. A1 10 DaRp P1 A1 0 Excl. A1 10 Shar. A1 RdMs P2 A1 Shar. A1 10 Ftch P1 A1 10 A1 10 Shar. A1 10 DaRp P2 A1 10 A1 Shar. {P1,P2} 10 Excl. A1 20 WrMs P2 A1 10 Inv. Inval. P1 A1 A1 Excl. {P2} 10 WrMs P2 A2 A2 Excl. {P2} 0 WrBk P2 A1 20 A1 Unca. {} 20 Excl. A2 40 DaRp P2 A2 0 A2 Excl. {P2} 0
ch12 - 41