2010-04-02 44 views
12

Làm thế nào để _mm_mwait từ pmmintrin.h hoạt động? (Tôi có nghĩa là không phải là asm cho nó, nhưng hành động và cách hành động này được thực hiện trong hệ thống NUMA. Việc giám sát store rất dễ dàng để thực hiện chỉ trên hệ thống SMP bus với snooping của xe buýt.)Làm cách nào để _mm_mwait hoạt động?

xử lý gì thực hiện nó?

Được sử dụng trong một số khóa spinlocks?

+0

Có ai sử dụng _mm_mwait & _mm_monitor không? – osgx

+0

Bạn có ý nghĩa gì không, hoặc nó được thực hiện như thế nào về phần cứng? – Martin

+1

@Martin, vâng. Tôi muốn smth như tổng quan về tổ chức phần cứng như đối với sinh viên. – osgx

Trả lời

3

Mỗi lần một CPU trên một chip đa lõi cố gắng ghi địa chỉ bộ nhớ cụ thể, tất cả các CPU khác, có địa chỉ bộ nhớ cụ thể này trong bộ đệm của chúng, phải được thông báo về thay đổi đó. Thông báo này có thể được sử dụng để thực hiện wakeup từ MWAIT trên các CPU hiện đại độc lập với chúng có một bus bộ nhớ riêng biệt hoặc riêng biệt.

Bộ xử lý nào thực hiện nó?

MWAIT là một phần của SSE3.

Được sử dụng trong một số khóa kéo?

Điều này trái ngược với định nghĩa của spinlock - CPU không bận.

+0

Tôi nghĩ, thông báo chỉ có hiệu lực đối với dữ liệu trong bộ nhớ cache ở trạng thái Chia sẻ (khi nó được lưu trữ trong bộ nhớ cache của một số CPU). Nếu có một "tất cả các CPU khác phải được thông báo" cho bất kỳ ghi nào, hiệu suất sẽ bị bricked (bị giết); chỉ cần xem xét một hệ thống quad-socket với NUMA. – osgx

+0

reworded nó một chút – mschneider

+0

Tôi nghĩ rằng chỉ có bộ vi xử lý Intel có hai hướng dẫn. Tôi nhớ lại việc đọc ở đâu đó rằng AMD đã quyết định không triển khai chúng khi họ thêm SSE3. – Mysticial

Các vấn đề liên quan