回覆列表
-
1 # IT數碼大排檔
-
2 # 老饅頭簸箕
Intel CPU的超執行緒只做到一個核心兩個執行緒,這是因為x86體系結構可供挖掘的並行度有限。
其他體系結構的CPU就不止是2了,比如IBM POWER9 有每核4執行緒SMT4和每核8執行緒SMT8兩種配置。
Intel CPU的超執行緒只做到一個核心兩個執行緒,這是因為x86體系結構可供挖掘的並行度有限。
其他體系結構的CPU就不止是2了,比如IBM POWER9 有每核4執行緒SMT4和每核8執行緒SMT8兩種配置。
一般情況下,一個物理核心對應一條執行緒。而多執行緒是指一個核心模擬成兩個或多個核心來進行平行計算處理。
因為CPU的處理方式是順序處理,任務都根據排隊來決定先後順序(可以遵循演算法來排程順序),這就意味著CPU的一個核心同一時間內只能處理一個任務。
而英特爾最早提出的超執行緒技術(Hyper-Threading,AMD的是SMT技術,兩個其實一樣)就是在當年壓榨CPU的效能而搞出來的技術,把一個核心模擬成兩個核心來進行平行計算減少CPU閒置時間。
但是模擬核心並不是說不需要硬體基礎的無限制模擬,在英特爾超執行緒最初的設計中,按照英特爾的說法是模擬核心是需要額外的電晶體支撐的,比如最早的奔4在超執行緒上佔用5%電晶體數目卻能額外帶來30%以內的效能提升。用較少的電晶體佔用數來提升CPU效能看來是很划算的東西。
一個物理核心模擬出來的多核心會共享這個物理核心的資源,當計算的時候兩個或多個模擬核心都需要呼叫這些資源的時候其中的一個模擬核心只能等另外的模擬核心把資源閒置下來才能使用這些資源,所以1+1≠2。
在英特爾和AMD的桌面處理器平臺上超執行緒一直以來是遵循一個物理核心模擬兩個核心的原則。但是生產CPU的並不只有這兩家,比如老牌巨頭IBM在其POWER處理器上就採用了一個物理核心模擬多個核心的超執行緒技術,比如POWER 7處理器每個核心模擬了4個執行緒,POWER 8每個核心模擬了8個執行緒,POWER 9也是如此,但邏輯執行緒總數規定了上限。如果POWER 9處理器可以用WINDOWS的任務監視器來看框框的話,你會看到明明是12核或者24核處理器但框框卻能數到96個。