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
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.
- 1. .NET 3.5 sur le processeur multicœur i7
- 2. Capacités du processeur multicœur
- 3. Application multithread dans un processeur multicœur
- 4. Processeur multicœur pour plusieurs conteneurs de données
- 5. Portage Linux pour processeur multicœur RISCV
- 6. Fonctionnement de TPL dans un processeur multicœur
- 7. javac utilisant plusieurs cœurs de processeur
- 8. Ordonnancement de Gang en RTOS sur un processeur multicœur
- 9. Détecter les cœurs de processeur sur le périphérique iOS
- 10. Comment faire un message entre les cœurs de processeur dans le nœud?
- 11. Détermination de la charge sur un cœur particulier dans un processeur multicœur
- 12. Comment synchroniser TSC entre les cœurs?
- 13. Node.js child_process.fork() à exécuter sur différents cœurs de processeur
- 14. TwistedWeb sur multicœur/multiprocesseur
- 15. Configuration partagée multicœur SOLR
- 16. Codage multicœur
- 17. Implémentation de threads multicœur sur cet algorithme
- 18. Sélection du nombre de cœurs de processeur dans OpenCL
- 19. Peut-on utiliser plusieurs cœurs de processeur dans Google Datalab?
- 20. IPython.parallel n'utilise pas le multicœur?
- 21. Tâche de remplacement sur plusieurs cœurs de processeur
- 22. Lire l'utilisation du processeur pour CPU multi-cœurs
- 23. Obtenir le nombre de cœurs de processeur en JavaScript?
- 24. Calcul du nombre de cœurs de processeur dans Linux
- 25. Surveillance des cœurs de processeur exécutant des tâches Hadoop
- 26. C# Séparer efficacement les tâches entre les cœurs
- 27. Les serveurs Web (et les logiciels associés) utilisent-ils tous les cœurs de processeur des machines?
- 28. x264 prend-il en charge le codage multicœur sur ARM?
- 29. Comment puis-je obtenir l'ID du processeur sur un PowerPC multicœur?
- 30. Est-il possible de diviser le travail entre les cœurs?
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
@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. –
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