2014-06-11 29 views
2

我正在使用Intel Atom处理器(正版Intel(R)CPU)。我已经完成了cat/proc/cpuinfo。它显示了两个处理器,但对于物理和核心ID,它显示为0.我做了grep“^ core id”/ proc/cpuinfo | sort -u | wc -l找不到cpu核心。它显示了1.这是什么意思?它只有一个物理核心和两个逻辑核心吗? Mesi缓存一致性协议适用于这种情况吗?是否适用于具有2个逻辑内核的单处理器的mesi缓存一致性协议?

回答

2

从英特尔架构手册,第3卷:

8.7.13.1“处理器缓存”

对于处理器,支持英特尔超线程技术,高速缓存共享。在一个逻辑处理器上执行的任何缓存操作指令对物理处理器的缓存层次结构具有全局影响。

在我的理解中,这意味着您有1个物理内核,启用超线程,为您提供2个逻辑内核。这些逻辑内核几乎共享物理内核的所有资源,包括所有缓存,因此不需要缓存一致性协议,两个内核总是可以看到相同的缓存状态。

的一个有趣的副作用是对http://en.wikipedia.org/wiki/Hyper-threading提到:

在2005年5月科林·珀西瓦尔表明,奔腾4, 恶意线程可以使用定时攻击,以监控内存访问 模式共享一个缓存的另一个线程,允许窃取密码信息。

+1

修改和未修改之间的区别仍然很重要(替换时,修改后的缓存行必须写回),有效和无效之间的区别(缓存可能始于所有行无效,并且如果有任何I/O设备不会监听缓存系统软件可能会刷新缓存行以使这些设备可见)。如果一个I/O设备侦听缓存系统,L2会自然过滤snoops到达L1,这需要额外的状态。 –

相关问题