2014-05-12 1 views
0

Partagent-ils physiquement la même horloge? Deuxièmement, l'accès à la mémoire partagée est-il fait au hasard, ou un noyau est prioritaire sur un autre. Par exemple, en considérant un processeur 2 core, core 1 et core 2 essaient d'accéder à la même mémoire dans la même horloge. Le noyau 1 serait-il autorisé à accéder à cette mémoire partagée en premier puis au noyau 2 ou serait-il aléatoire?L'oscillateur d'horloge est-il partagé entre les cœurs d'un processeur multicœur?

Répondre

0

Cela dépend. D'une part, les processeurs multicœurs dépassent de loin l'accès à la mémoire. Ils opèrent sur des caches locaux. Qu'il y ait une priorité lorsque les deux caches doivent resynchroniser avec la mémoire principale est certainement spécifique à la conception. D'une part, faire des transferts en rafale rend la famine moins probable, parce que vous n'utilisez réellement la priorité que lorsque les deux rafales ont démarré sur le même cycle d'horloge. Une autre option en plus de la priorité fixe et "random" serait round-robin ("random" est difficile à implémenter de toute façon).

Il n'y a qu'une seule horloge pour l'accès à la mémoire, même dans les cas (par exemple TurboBoost ou EIST) où les cœurs et les caches locaux peuvent utiliser des horloges indépendantes.

Le passage d'horloge n'est qu'une des nombreuses complications des circuits de cache.

+0

Oui, je connais les caches locaux. Mais disons que l'emplacement consulté n'est pas dans les caches locaux, alors qui peut accéder au cache L2 partagé en premier? Ou même avec des caches locaux, qui est le premier à modifier l'emplacement partagé? Parce que chaque fois que l'un d'eux serait modifié, la cohérence du cache invaliderait le même emplacement sur le cache de l'autre core. – MetallicPriest

+0

@MetallicPriest: Le protocole de cohérence du cache détermine cela. Une seule des caches peut être dans l'état "possédé" qui permet la transition vers "modifié". (Sur MOESI il y a aussi un état "exclusif" mais votre question exclut que) Si les deux demandent une transition de "shared" à "owned" en même temps, alors voir ci-dessus, c'est probablement fait avec round robin. –

+0

Supposons que les deux sont dans l'état partagé, et maintenant dans le même cycle d'horloge, ils veulent tous les deux modifier, alors qui peut le faire en premier? Si, comme vous l'avez dit, il y a un système de round-robin, cela voudrait-il dire qu'un noyau particulier le ferait toujours avant l'autre de façon déterministe? – MetallicPriest

Questions connexes