Basic Member
|
今天解決nForce NIC問題的時候翻到這篇
看到很多人討論根本就是意氣用事,不然就方向錯誤
這是我以貼在系上的文章
Hyper Theading
簡述
將一個實體CPU分割成成兩個邏輯CPU,進而分工提高CPU使用率減少閒置
原理
原本一個程式的執行緒可能需要佔用10單位運算時間,而其中可能又只有7單位時間有需要運算,還有3單位時間是沒有運算的空閒.
但執行緒未結束前CPU都是由此執行緒獨佔的,其後等待的執行緒也不能搶先使用閒置的運算時間.
所以將CPU分割成2顆,同時去運算就可以有效利用空閒的運算時間
長度為5單位 空心為閒置
■■□□■執行緒1
▼▽▼▼▼執行緒2
單CPU下
┌───┐
▼▽▼▼▼■■□ → □ → ■
└───┘
共需共使用了10個單位時間去完成2個工作
Hyper Theading 模式下(理論)
當CPU0為閒置CPU1就運算執行緒2
邏輯CPU0
┌───┐
■■→ □ → □■
└───┘
邏輯CPU1
┌───┐
▼▽▼→ ▼ → ▼
└───┘
CPU(HT ON)
┌───┐
看起來就像 ▼▼■ → ■ → ▼▼■
└───┘
共使用了7個單位時間去完成2個工作
節省了30%的運算時間
這是Intel當初宣傳HT的flash轉成純文字格式,"大致"理論為如此.
最理想狀態等同是執行緒排序最佳化,這是在2個邏輯CPU為"同一顆"的前提下,也就是2顆邏輯CPU都擁有100%的使用率.
但在實行上要用純邏輯的方式來實行HT是有問題的(如果有也不叫HT了)
就連HT的研發者也說"這個技術可能不會讓速度更快,還可能會變慢"
Intel的實作法是把一顆實體CPU用"邏輯"方式分成2顆CPU,2顆CPU"各佔一半"的運算資源.而非理想的2顆都為100%交替使用.
使用HT技術的CPU就像是把一顆P4 3.0G劃分成2顆CPU "P4 1.5G(邏輯0) + P4 1.5G(邏輯1)"
而不是實體的2顆 P4 3.0G * 2 或是 P4 1.5G * 2
所以上圖中邏輯CPU的速度只有原速的一半,而不是理想的全速,實際所需的時間其實要更多
其實這個方法到最後就跟有裝上2顆頻率一半的實體CPU運算方式差不多了...
問題來了,當下絕大多數Windows系統或程式都沒有對多核心或是HT最佳化,意思就是一個程式只會使用1顆邏輯/實體CPU來承擔所有運算
假設今天有一顆P4 3.0G的CPU開啟HT,在處理未對HT最佳化的程式時,將只會使用其中一顆邏輯CPU,CPU總使用率將不會超過50%.
對這個程式來說就像用P4 1.5G去運算一樣,剩下的50%他無福消受.
不過在電腦效能爆炸的時代,這個缺陷在一般情況下倒是沒有特別突顯.半顆的CPU就足以應付一般用途.
這也是目前大部分遊戲為什麼都適合在K8底下執行,如果支援HT或是取消HT的話落差也不會如此大
而在最多人使用的Windows XP平台底下,這缺陷倒是在某些情況下變成優點.
因為未最佳化的程式最多只能使用到50%的運算資源,假設有一個程式出bug進入無限迴圈,不管再怎麼耗也只不過是一半的CPU使用率.
不會因為CPU使用率達到100%而產生當機的情形,代表使用者還有充裕的資源去繼續操作電腦或是解決狀況.
又Windows是個多工的系統,同時有多個程式需要運算,在單CPU的情況下常常會出現幾個大程式同時搶CPU的情形.
HT的雙CPU可以讓這些大程式有專屬的運算空間而不互相干擾,這對有系統獨佔性或時效性的程式,像是燒錄程式來說是非常重要的.
P4適合多工也是部分因為這個原因,也才會有人執著於使用P4(我啦我啦...),因為K8總是會有CPU滿載而產生delay的情況.
不過可能要犧牲部分程式的運算時間就是了
不過多核心的CPU走向已經勢在必行,所有的作業系統及程式勢必將支援多核心(這樣說來多核心CPU是64-bit推手?)
這對HT來說也是間接支援,以往HT技術在Windows XP的劣勢將完全不再
總結HT目前的優缺點(至Windows XP為止,或者是32bit平台)
缺點:
1.容易造成運算資源浪費,因為大多數情況下只用了50%
2.沒有對多核心/HT最佳化的程式只能使用到50%的運算資源
優點:
1.單一程式最高使用率為50%,能保留剩餘資源給其他程式使用,預防當機
2.雙CPU對有多工的程式或是多工的情況下有很大的助益
以下分析單/多核心適用的場合
單核心
單一運算需求量大的程式(未支援多核心) 如遊戲
多核心(HT也當做多核心)
1.多工(同時多個需求量小的程式)
2.支援多核心的程式
ps.就2年甚至3年內來講,多核心架構的電腦勢必不便宜,而且有極高的機率會當白老鼠,64bit的相容問題也是推廣的障礙.
不像當初的98→XP這麼簡單.Windows XP還將存活好長一段時間,以一個需要電腦的"資工學生"來講,現有P4 32bit架構是經濟實惠又實用的方案.
因為多工的優點是資工學生所迫切需要的,也是少數用處理速度也難以打平的.而那些拿來玩game的...還是去買單工的K8吧
當然雙核心CPU與Longhorn取代現有架構後,單雙核心的問題將會是過往雲煙
|