versucht, die Antwort auf diese Frage in der Intel 64/IA-32, aber konnte keine endgültige Antwort finden. Fragen sind: Wenden Speicherbefehlsanweisungen, wie beispielsweise SFENCE, nur den lokalen Prozessor an oder verteilen sie sich auf die gesamte Cache-Kohärenzdomäne, z. B. CPUs auf einem benachbarten Socket (in einem Multi-Socket-System)?Wirkung der Speicher Bestellanweisungen auf x86/x86_64 mehrere Sockets
Antwort
SFENCE
wirkt sich auf die Reihenfolge aus, in der die Speicher der lokalen CPU für andere Kerne in demselben Socket oder anderen Sockets oder für speicherplatzierte E/A sichtbar werden.
Andere Kerne können nicht feststellen, ob Sie SFENCE
ausgeführt haben oder nicht, alles was sie beobachten können, ist die Reihenfolge Ihrer Speicheroperationen. (d. h. die Implementierung von sfence
ist intern für einen Kern und seine Speicherwarteschlange).
sfence
wurde in SSE1, mit PIII, vor den ersten Multi-Core-CPUs eingeführt. Zu dieser Zeit waren die einzigen SMP-Systeme Multi-Socket.
Beachten Sie auch, dass es nur etwas mit schwach geordneten Speichern (movnt*
oder speichert, um Speicherregionen zu kombinieren) nützlich ist. Normale Geschäfte haben "release" semantics bereits auf x86. Nur mfence
(und lock
Ed-Anweisungen) sind wichtig für normale Speicheroperationen auf x86, to prevent StoreLoad reordering.
- 1. Sockets und mehrere IP-Adressen
- 2. Neustarten Betreuer und der Wirkung auf FlaskSocketIO
- 3. Systemtap Wirkung auf die Leistung
- 4. mehrere UDP-Sockets, an denselben Port gebunden?
- 5. Wie die Wirkung der Konzentration auf eine NSTextField auf OSX
- 6. mehrere Clients Kommunikation mit Sockets in Java
- 7. C# mehrere Sockets mit dem gleichen Port auf separaten Threads
- 8. Conduit und Sockets: erlauben mehrere Verbindungen
- 9. Raw Sockets auf Android
- 10. Mehrere HTTP-Anfragen mit Sockets in Java
- 11. Problem Funktion Wirkung auf ein Menü
- 12. Einstellung Titel auf NSMenuItem, ohne Wirkung
- 13. __Threadfence impliziert die Wirkung von __syncThreads?
- 14. Wirkung von Noskipws auf cin >>
- 15. Wirkung von Goto auf C++ - Compiler-Optimierung
- 16. Wirkung für Bild mit der Maus darüber
- 17. sich allmählich ausbreitende Wirkung auf recyclerview Artikel
- 18. hinzufügen mehr Wirkung auf div mit jQuery
- 19. Wie Sockets auf Objc verwenden?
- 20. Was ist der Unterschied zwischen POSIX Sockets und BSD Sockets?
- 21. MouseOver expand Wirkung
- 22. rollnav.js Prellen Wirkung
- 23. Speichert MemoryDC Speicher oder den Speicher auf der Grafikkarte?
- 24. FragmentTransaction.remove hat keine Wirkung
- 25. wpf Multithreaded Sockets Design
- 26. Wirkung von Gießen C#
- 27. PHP Sockets oder Python, Perl, Bash Sockets?
- 28. Lassen Magento auf mehrere Domänen mit dem gleichen Speicher antworten
- 29. NSApplication endsheet: keine Wirkung
- 30. Schreibmaschine Wirkung in tkinter
Danke für die schnelle Antwort. Sehr hilfreich. – dsaada
@dsaada: Wenn das Ihre Frage beantwortet, können Sie das Häkchen unter den Abstimmpfeilen verwenden, um es als akzeptiert zu markieren. –
Danke. Tat dies. Nur eine ergänzende Frage - Sie sagten, dass andere _Cores_ nicht bewusst sind, Zaun Anweisungen wie ** SFENCE **. Gilt dies auch für andere Threads im selben Kern? – dsaada