PDA

Voir la version complète : Communications entre les coeurs.



lordmagnum
09/12/2008, 23h06
Je souhaiterais me renseigner sur la communication entre les coeurs des CPU multi-core, en particulier des Penryn.
J'ai lu que c'était par le cache que la communication se faisait, mais les C2Q ont un cache L2 divisé en 2 (par die), donc comment peuvent-ils communiquer ?

P.S: J'ai voulu poster ce sujet dans l'autre forum Hardware mon statut ne doit pas encore m'y permettre.

johnclaude
09/12/2008, 23h11
Je crois qu'ils communiquent par e-mail, mais je suis pas sur. Faut qu'un admin/modo/bonde à forte poitrine te donne l'accès à la partie hardware advanced.

Yasko
09/12/2008, 23h39
Pour les penryn, c'est par le FSB que les 2 dies communiquent.

Alexko
10/12/2008, 01h11
Je crois qu'ils communiquent par e-mail, mais je suis pas sur. Faut qu'un admin/modo/bonde à forte poitrine te donne l'accès à la partie hardware advanced.

Non, ça c'est sur Phenom, parce que c'est des Quads natifs. Pour les Penryn ça passe par Chronopost.

fefe
10/12/2008, 07h26
Par le FSB quand ils ne partagent pas le cache chez Intel, et par HT chez AMD. La communication est assuree par le protocole de coherence des caches (un derive de MESI (http://en.wikipedia.org/wiki/MESI_protocol) en general).

Foudge
10/12/2008, 09h23
HT chez AMD... en multi-socket uniquement.

fefe
10/12/2008, 09h42
HT chez AMD... en multi-socket uniquement.

Et sur les K8 qui ne partagent pas le cache ?

Foudge
10/12/2008, 09h44
Et sur les K8 qui ne partagent pas le cache ?System Request Interface et Crossbar Switch, non ?
Et pour le multi-cocket, j'ai dit une bêtise, l'HT c'est pour la cohérence de la RAM, pas des caches. Ce serait plutôt à mettre dans la catégorie "communication inter-CPU".

fefe
10/12/2008, 12h15
Tu n'avais aps dit de betise, ils utilisent HT pour la coherence des caches en multi-socket. Sur les liens HT tu as les acces a la memoire distante et le traffic de snoop (coherence) qui circulent.

Le crossbar switch a mon avis utilise le meme protocole que HT, mais le route sur des liens interne et un crossbar au lieu de liens externes.

lordmagnum
10/12/2008, 13h22
Donc pour un penryn Quad Core, étant donné que la cache L2 est divisé en 2, le FSB est utilisé pour faire "collectiviser" le cache L2 du Core 0 et du Core 1 avec avec celui du Core 2 et Core 3.
C'était le même principe pour les P4 Dual-core ?
Le Nehalem doit donc avoir une meilleur communication que le Penryn.

Yasko
10/12/2008, 13h38
Non, les 2 L2 d'un penryn ne sont pas unifiés pour former un seul L2 doublé, il s'agit bien de 2 caches séparés. Je ne sais pas s'il y a une relation d'inclusivité ou d'exclusivité entre 2 tels caches.
Leur lien via FSB sert "juste" à maintenir leur cohérence. Si une donnée est modifiée par l'un des 2 cores du die 1 et que cette donnée est également présente dans le cache du die 2, elle doit alors être mise à jour (ou du moins indiquée comme étant obsolète).

fefe
10/12/2008, 13h56
Non, les 2 L2 d'un penryn ne sont pas unifiés pour former un seul L2 doublé, il s'agit bien de 2 caches séparés. Je ne sais pas s'il y a une relation d'inclusivité ou d'exclusivité entre 2 tels caches.
Leur lien via FSB sert "juste" à maintenir leur cohérence. Si une donnée est modifiée par l'un des 2 cores du die 1 et que cette donnée est également présente dans le cache du die 2, elle doit alors être mise à jour (ou du moins indiquée comme étant obsolète).

Ils n'ont aucune relation d'inclusivite/exclusivite. Ils doivent juste etre coherents (http://en.wikipedia.org/wiki/Cache_coherency).

lordmagnum
10/12/2008, 14h04
donc le core 0 et 1 communiqueront mieux que le 0 et 3 alors ?
ça doit quand bouffer de la bande passante d'avoir recourt au FSB.
en simplifiant au max : les penryn Quad Core sont un peu les "Quad-core Ready" alors que les Nehalem sont les "Full Quad Core".

Yasko
10/12/2008, 14h41
Ils n'ont aucune relation d'inclusivite/exclusivite. Ils doivent juste etre coherents (http://en.wikipedia.org/wiki/Cache_coherency).

Oui, j'avais tourné ma phrase en affirmation au début, et pris d'un doute je l'ai mise au conditionnel. Faut dire que je suis pas encore au top sur les caches. :)

fefe
10/12/2008, 14h45
donc le core 0 et 1 communiqueront mieux que le 0 et 3 alors ?
ça doit quand bouffer de la bande passante d'avoir recourt au FSB.
en simplifiant au max : les penryn Quad Core sont un peu les "Quad-core Ready" alors que les Nehalem sont les "Full Quad Core".

Oui effectivement. Mais au final les applications evitent d'echanger des informations a une granularite trop faible car meme si la communication se fait par un cache partage ca reste assez lent et fait perdre des performances. Les algorithmes de parallelisation sont generalements construit autour de ca. Le resultat est que communication par FSB ou par cache cela a assez peu d'impact dans la plupart des situations car ces communications sont rares par choix. Bien entendu quand elles sont frequentes, le FSB deviendra vite un facteur limitant. Saturer le FSB pour le traffic de coherence, revient a ralentir la vitesse a laquelle ces cores se synchronisent et aussi reduit la vitesse de leurs acces memoire. Au final ca fait tres mal en performances quand ca arrive.

L'avantage est que ca n'arrive guere que sur des applications serveur et de calcul intensif (ca explique aussi pourquoi AMD domine ces secteurs depuis l'introduction du K8 qui n'a eu que des machines a FSB en face).

Alexko
10/12/2008, 15h01
en simplifiant au max : les penryn Quad Core sont un peu les "Quad-core Ready" alors que les Nehalem sont les "Full Quad Core".

Tu devrais faire du marketing, toi :p

fefe
10/12/2008, 16h04
http://forum.canardpc.com/designs/blw/headpic.jpg

lordmagnum
10/12/2008, 19h44
étrange, d'après Wikipedia (anglais), les Yorkfield auraient un cache L2 unifié, je sais qu'ils sont en 45 nm et ont 4 mo de L2 en plus, mais pas de ça.

Foudge
10/12/2008, 20h09
Ce ne sont pas des caches privés, ils sont bien partagés/unifiés, mais uniquement par groupe de 2 cores.

Yorkfield (codename for the Q9000 series) features a dual-die quad core design with two unified 6 MB L2 caches.Cela explique pourquoi il y a 2 cache L2 (et non 1 ou 4) sur ces quadcore.

lordmagnum
10/12/2008, 20h36
je l'avais compris comme 2 L2 qui sont unifiés (entre eux).

lordmagnum
10/12/2008, 22h57
J'ai trouvé un PDF très intéressant :
http://www.enib.fr/~harrouet/Data/Misc/expoPara.pdf