2010-04-02 12 views
12

_mm_mwaitpmmintrin.h是如何工作的? (我的意思是不是它的ASM,但动作和这个动作是如何采取NUMA系统store监测是很容易实现只在与公交车的监听总线为基础的SMP系统。)_mm_mwait如何工作?

什么处理器不执行它?

它用于某些自旋锁?

+0

有没有人使用_mm_mwait&_mm_monitor? – osgx 2010-04-02 02:51:09

+0

你的意思是它是做什么的,或者它是如何在硬件上物理实现的? – Martin 2010-05-02 21:21:38

+1

@马丁,是的。我想像硬件组织概述一样喜欢学生。 – osgx 2010-05-03 01:58:42

回答

3

每当多核芯片上的CPU尝试写入特定的内存地址时,都必须通知其缓存中具有此特定内存地址的所有其他CPU。这个通知可以用来实现从现代CPU上的MWAIT唤醒,而不管它们是具有单个还是单独的存储器总线。

什么处理器执行它?

MWAIT是SSE3的一部分。

它用于某些自旋锁吗?

这与自旋锁定义相反--CPU不忙。

+0

我认为,通知只对处于共享状态的缓存中的数据有效(当它可以存储时在几个CPU的缓存中)。如果有任何写入的“所有其他CPU都必须通知”,则性能将被冻结(杀死);只考虑一个带NUMA的四插槽系统。 – osgx 2011-10-18 14:22:04

+0

重写了一下 – mschneider 2011-10-18 16:01:13

+0

我认为只有英特尔处理器有这两个指令。我记得在某处读到AMD决定在添加SSE3时不实施它们。 – Mysticial 2011-10-18 16:04:05