2012-05-03 15 views
9

我試圖收集系統信息,並注意到了英特爾至強E5420如下:爲什麼Hyper-threading被報告爲沒有它的處理器支持?

執行後CPUID(EAX=1),EDX [28]設置,顯示超線程支持,儘管該處理器上市的事實英特爾網站不支持超線程(ark.intel.com

有沒有人對此有過解釋?

+0

這是「超線程」只是一個線程的特殊情況。 – Flexo

+0

相關:http://msdn.microsoft.com/en-us/library/hskdteyh.aspx 「使用AMD芯片組時,所有多核心AMD CPU都會設置特徵信息位的第28位,以表明該芯片具有不止一個核心,即使AMD不支持超線程,情況也是如此。「但這是AMD芯片。 – Mysticial

+0

MSDN上的圖表還將第28位標記爲「多線程」... – Mysticial

回答

3

下面是根據英特爾開發者手冊的該位的定義:

最大APIC標識保留字段是有效的。對於HTT,值爲0表示存在 軟件包中只有一個邏輯處理器,並且軟件應該假定爲 只保留一個APIC ID。對於HTT,值爲1表示 CPUID.1.EBX [23:16](此包中邏輯 處理器的最大可尋址標識數)對於包是有效的。

在手冊的第3A卷的第8章中,它描述瞭如何正確檢測硬件多線程。

這裏有一個鏈接:

http://download.intel.com/products/processor/manual/325462.pdf

+0

是的,這看起來似乎表明HTT位隨着時間的推移逐漸表明每個軟件包有多個邏輯線程,無論是因爲HTT還是多個物理內核。 – andrewmu

4

有一個在英特爾一個半官方的解釋交談https://software.intel.com/en-us/articles/hyper-threading-technology-and-multi-core-processor-detection

基本上之後英特爾奔騰4的最終版本中引入SMT /超線程,他們創建了Pentium D,多核被認爲是超線程模型的發展,因爲一個內核比另外一個內核具有更強的獨立性,因此多核相對於其他內核的性能要好於多核, 。因此,他們使用相同的位來指示SMT /超線程或多核,因此多核被視爲超線程的改進形式。您詢問的Intel Xeon E5420是多核處理器,所以這就是爲什麼這個位被設置。

當然,一旦你可以在同一個軟件包中同時使用超線程和多核,有時需要將它們區分開來,例如,因爲你寧願在一個未加載的內核上而不是另一個上安排新的線程超線程已經加載的核心的一半。爲了描述組合式SMT和多核拓撲結構,最終引入了新的cpuid位(或更確切地說是葉)。這些用於查詢處理器拓撲的最新cpuid功能是EAX = 0xB葉。另外,您不應該使用舊英特爾談話中給出的拓撲枚舉算法來處理2010年及之後製造的處理器,因爲它會給出錯誤/膨脹的核心計數。改爲使用https://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/中給出的更新方法。唉,這個新的頁面更乾燥,並不是例如回答你問的問題,而舊的談話確實...

相關問題