2014-06-11 50 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,這需要額外的狀態。 –

相關問題