Re: [請益] 請問雙核心
我來說一下我的意見好了
在現階段的CPU和OS配合之下
你可以把所有的系統都當成是多工的環境
簡單的說
就是CPU每格一段時間會切換到不同的task中做事
但是
實際上一個時間點也只有一個task在做事(當然有多條pipeline在運算)
OS的排程方式
會讓使用者有不同層級的多工觀感
比如說在windows下面
當工作量很大的程式在跑的時候
他會把大多數的CPU時間和實體記憶體佔去(甚至cache)
所以其他程式就會卡卡的(多工感小)
一來執行的時間少
二來可能輪到他執行的時候又在作swap的動作(實體<-->虛擬記憶體)or大量的cache miss
導致執行的效率很差
這種大量運算和吃大量記憶體的現象在多媒體類型的軟體中很常見
這也是為什麼大家會說有處理多媒體的比較需要多核心的CPU的原因
至於Unix環境下OS可經過權限的設定
比較不會讓人有資源都被一兩個大程式吃光的感覺
所以多核心的意義是什麼?
簡單說來
就是你在一個時間點下有多個task同時在做事
這裡會遇到一個嚴重的問題
就是1+1通常會小於2
假如現在兩個task彼此間沒有任何關係的話
overhead就會比較小(但起碼共用匯流排和其他資源)
有相關的兩個task
彼此間可能需要互相溝通才做的下去
那在兩個cpu中的task要怎麼溝通?(AMD和INTEL都有不同的設計)
這中間的溝通、等待、預測就要付出overhead
所以即使3.2G的雙核心
他的效果也絕對不是單顆的兩倍(千萬不要被廣告騙了)
事實上在資工和電機領域很早就在討論這種多個task間的合作問題
大概十幾年前這類型的研究都很盛行
不過那個時候因為硬體的支援太少
所以往往1+1<1
而且那個時候的硬體廠商會告訴你
他們能夠讓單核心的效能不斷的double再double(單核心都做不完了)
所以當年的那些研究後來都沒落了
不過現在的硬體也有點遇到了瓶頸
單顆的效能能增加的有限(散熱是很嚴重的問題)
但是製程一值再進步
東西越做越小
剩下的空間做什麼?
乾脆多放一倍電路進去
然後把cache加大(cache加大不見得效能會提昇 但在目前來講算是正向的)
來增加微幅的效能
雖然放進了兩倍的電路
但是因為空冷的功率瓶頸還是沒解決(好像是13X~14X)
所以很多目前的雙核心都是降頻在跑
也因此 1<0.7+0.7<1.4
所以很多人會建議看你的電腦要做什麼事
在決定要不要使用雙核心
對於不支援雙核心的程式來講
你還是只用到一個核心的能力(而且這個核心的能力還比較弱)
所以慣用的軟體支不支援雙核心
支援性好不好才是最重要的考量
比如說前面有版友有轉檔的數據比較
這樣的比較就很實際
當然就算你使用的軟體不支援雙核心
你還是可以用
畢竟當你偶爾執行工作量大的程式的時候
不會讓其他的程式卡卡的
這還是會有爽度的
當然之後多核心幾乎是一種必然的趨勢
但在目前這個階段的市售雙核心是否算是發展成熟
還蠻見仁見智的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.71.7
推
05/23 16:53, , 1F
05/23 16:53, 1F
→
05/23 16:54, , 2F
05/23 16:54, 2F
推
05/23 17:15, , 3F
05/23 17:15, 3F
推
05/23 19:43, , 4F
05/23 19:43, 4F
推
05/23 19:52, , 5F
05/23 19:52, 5F
推
05/25 02:11, , 6F
05/25 02:11, 6F
→
05/27 20:52, , 7F
05/27 20:52, 7F
hardware 近期熱門文章
PTT數位生活區 即時熱門文章