2010-04-02 8 views
12

Jak działa _mm_mwait z pmmintrin.h? (Mam na myśli nie ASM za to, ale działanie i jak to działania zostaną podjęte w systemach NUMA. Monitoring store jest łatwe do wykonania tylko w systemach SMP autobusowych opartych o Snooping autobusu.)Jak działa _mm_mwait?

Jakie procesory nie Wdrożyć je?

Czy używa się go w niektórych spinlockach?

+0

Czy ktoś używa _mm_mwait & _mm_monitor? – osgx

+0

Masz na myśli to, co on robi lub jak jest fizycznie implementowany w sprzęcie? – Martin

+1

@Martin, tak. Chcę czegoś podobnego, jak w przypadku organizacji sprzętu, jak w przypadku studentów. – osgx

Odpowiedz

3

Za każdym razem, gdy procesor na chipie wielordzeniowym próbuje zapisać określony adres pamięci, wszystkie inne procesory, które mają ten konkretny adres pamięci w swoich pamięciach podręcznych, muszą zostać powiadomione o tej zmianie. To powiadomienie może zostać wykorzystane do wdrożenia przebudzenia z MWAIT na nowoczesnych procesorach niezależnych od nich, posiadających pojedyncze lub oddzielne szyny pamięci.

Które procesory go realizują?

MWAIT jest częścią SSE3.

Czy używa się go w niektórych spinlockach?

Jest to sprzeczne z definicją blokady spinlock - procesor nie jest zajęty.

+0

Myślę, że powiadomienie dotyczy tylko danych w pamięci podręcznej, która jest w stanie Shared (kiedy może być przechowywane w buforach kilku procesorów). Jeśli istnieje "wszystkie inne procesory muszą zostać zgłoszone" dla jakiegokolwiek zapisu, wydajność zostanie zamurowana (zabity); po prostu rozważ system quad-socket z NUMA. – osgx

+0

przeredagował to nieco – mschneider

+0

Myślę, że tylko procesory Intela mają te dwie instrukcje. Pamiętam, że czytałem gdzieś, że AMD postanowiło nie wprowadzać ich w życie, gdy dodawali SSE3. – Mysticial