2012-02-13 453 views
-1

我有一個有四個內核的CPU,但是規範顯示它有四個內核和八個線程。這怎麼可能?我可以平行運行八個線程嗎?cpu中的內核和線程

+0

http://en.wikipedia.org/wiki/Hyper-threading or ... CPU的規格。 – 2012-02-13 20:14:47

+0

谷歌:超線程 – Mysticial 2012-02-13 20:14:51

+3

我總是驚訝地看到人們投票回答了一個問題,卻不知道爲什麼。我知道這個問題很簡單,可以通過簡單的谷歌搜索來回答,但仍然可以。 – Nettogrof 2012-02-13 20:26:43

回答

1

這個可以欺騙你。由於核心資源的虛擬重複,英特爾的HT技術確實允許操作系統爲每個物理核心安排兩個線程。

「技術上」,您可以運行八個線程。注意引號。這項技術的主要目的是不讓CPU資源浪費(例如,如果你的指令流水線有四條指令的寬度,確保它幾乎總是得到指令,因爲一個線程很少能達到這個目的)。但是,如果您的系統沒有足夠的資源來適應您的線程完成的計算,那麼實際上並沒有任何好處,或者更糟糕的是,您的性能會降低。例如,假設您的CPU只有四個浮點單元,而您的八個線程都在進行浮點計算。在這種情況下,你不能有平行性。另一種情況是當你所有的線程都在進行內存密集型計算時。從CPU到主內存的總線將飽和,並且八個線程絕對不會像您期望的那樣並行執行它們的代碼。關於HT的缺陷檢查這篇文章的更多信息:http://software.intel.com/en-us/articles/performance-insights-to-intel-hyper-threading-technology/

此外,請確保您瞭解系統中的各種線程級別。我討厭引用自己,但這裏有:multithreading on dual core machine?

2

根據CPU類型的不同,每個內核可以有兩個虛擬CPU(或線程)。效果使用Hyperthreading實現。

1

我猜你有一個超線程機器每個核心有兩個處理器。

是的,它可以同時運行8個線程。

0

它被稱爲superscalarCPU,其中流水線在每個內核中被複制,允許它並行地分派多條指令。請注意,英特爾稱之爲超線程,但它基本上是一樣的。