2010-04-02 8 views
12

Wie funktioniert _mm_mwait von pmmintrin.h arbeiten? (Ich meine nicht die asm für sie, sondern Handeln und , wie diese Aktion in NUMA-Systemen genommen. Die store Überwachung einfach nur auf Bus-Basis SMP-Systeme mit Snooping von Bus zu implementieren.)Wie funktioniert _mm_mwait?

Welche Prozessoren hat füge es ein?

Wird es in einigen Spinlocks verwendet?

+0

Verwendet jemand _mm_mwait & _mm_monitor? – osgx

+0

Meinst du, was es tut, oder wie ist es physikalisch in Hardware implementiert? – Martin

+1

@Martin, ja. Ich möchte einen Überblick über die Hardware-Organisation wie für Studenten. – osgx

Antwort

3

Jedes Mal, wenn eine CPU auf einem Multicore-Chip versucht, eine bestimmte Speicheradresse zu schreiben, müssen alle anderen CPUs, die diese bestimmte Speicheradresse in ihren Caches haben, über diese Änderung informiert werden. Diese Benachrichtigung könnte verwendet werden, um das Aufwecken von MWAIT auf modernen CPUs zu implementieren, unabhängig davon, ob sie einen einzelnen oder getrennte Speicherbusse haben.

Welche Prozessoren implementiert es?

MWAIT ist Teil von SSE3.

Wird es in einigen Spinlocks verwendet?

Dies steht im Gegensatz zur Definition eines Spinlocks - die CPU ist nicht ausgelastet.

+0

Ich denke, die Benachrichtigung ist nur für Daten im Cache wirksam, die im Shared-Zustand (wenn es gespeichert werden kann) in Caches mehrerer CPUs). Wenn es einen "alle anderen CPUs müssen benachrichtigt werden" für irgendeinen Schreibvorgang gibt, wird die Leistung gemauert (getötet); Denken Sie nur an ein Quad-Socket-System mit NUMA. – osgx

+0

umformte es ein wenig – mschneider

+0

Ich denke, nur Intel-Prozessoren haben diese beiden Anweisungen. Ich erinnere mich, irgendwo gelesen zu haben, dass AMD beschloss, sie nicht zu implementieren, als sie SSE3 hinzufügten. – Mysticial