« Fonctionnement d'un ordinateur/Architectures multiprocesseurs et multicœurs » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Ligne 47 :
 
Dans la réalité, il faut nuancer un tout petit peu les choses : un processeur multicœurs ne contient pas qu'un seul cache, et on se retrouve avec une organisation assez hybride, dans laquelle certains caches sont partagés et pas d'autres. Généralement, on trouve deux à trois caches dans un processeur (multicœurs ou non) : le L1, le L2, et le L3. Le L2 et le L3 sont souvent partagés, tandis que le L1 n'est jamais partagé ! La raison à cela tient dans le fait que ce cache doit avoir une latence très faible, et que partager un cache n'est jamais vraiment innocent en terme de temps d'accès. Partager le cache L1 serait parfaitement possible, mais rendrait celui-ci tellement lent qu'on aurait l'impression que nos programmes tourneraient au ralenti. Par contre, rien n’empêche de partager les autres caches, comme le L2 ou le L3 sans trop pourrir leur temps d'accès.
 
[[File:Dual Core Generic.svg|centre|400px|Dual Core Generic]]
 
On peut décider de partager un cache entre tous les cœurs, voire limiter ce partage à quelques cœurs particuliers pour des raisons de performances. Ainsi, rien n’empêche pour un processeur quad-core d'avoir deux caches L2, chacun partagés avec deux cœurs, et le cache L3 partagé entre tous les cœurs.
 
{|
<gallery widths=500px heights=450px>
|[[File:Dual Core Generic.svg|centre|vignette|upright=2.0|artage des caches sur un processeur double cœurs.]]
L2 Shared Cache.svg|Cache L3 et L2 partagés, autres dédiés.
|[[File:Partage des caches sur un processeur multicoeurs.png|centre|vignette|upright=2.0|Partage des caches sur un processeur multicœurs.]]
L3 Shared Cache.svg|Cache L3 partagé, autres dédiés.
|}
Partage des caches sur un processeur multicoeurs.png|Partage des caches sur un processeur multicœurs.
</gallery>
 
==Cohérence des caches==