好久沒讀計組計結還有OS
我也記得NEAL大16樓的才是正解
Hyper-Threading 是硬體的架構
thread針對process做分配
OS在執行process的過程中要等待的時候可以藉由切換thread
來達到看似多工的目的
所以就一般單核心來講
同時間只能執行一定數量的thread
就我了解Hyper-Threading是在硬體上做改進
execution resource同樣還是只有一份
但在其餘的架構上複製一份
上面是查到intel自己的Hyper-Threading paper上開頭這樣定義(
http://www.cs.virginia.edu/~mc2zk/c...6iss1_art01.pdf 後面我懶得看, 錯了再說)
當一個thread只用到某些execution resource時
還有其他的execution resource沒被用到
這時候因為有另一份架構存在
所以可以在同一時間內
可能可以額外執行更多thread
來讓閒置的execution resource更能充分的被使用
所以可以知道在大量同性質運算時
Hyper-Threading不見得有用
當然硬體出來後OS才要做thread 分配上的改變
才能適應這套硬體
所以這兩個東西是相輔相成的
我覺得除了名字上雷同外
根本是不同的東西
以上以我破爛的計組計結還有OS知識拼湊出來的
錯了多多包涵