雙核心定義? 多核心定義?


aichi wrote:
對電腦而言只開一個程式是不可能的,OS本身就好多個process
使用者程式也是,另外OS工作會有排程與分配,所以不太可能會集中在同一個CPU
甚至有的程式可以指定CPU數量和工作分配EX:SQL server



其實這樣講有點問題. 多顆CPU還是可以同時跑一個process. 像開一個IE就是多一個process, 但問題是作業系統核心會去產生許多的threads去跑這個process. 而multi-core是會去同時間去執行這些threads(但一個時間點一個CPU只能執行一個thread). 所以原po問到他只開一個IE為何會兩顆CPU都在跑, 理由是因為的確開個IE就是兩顆CPU都在run IE. 只是不是都在run IE process, 因為核心程式是不看process, 他看的是thread. 開一個IE會產生一個process, 開兩個IE會有兩個process. 但不會某個process就限定在某顆CPU在跑.
IE本身就有多執行緒,況且一般的XP/Vista/Win7內,隨時可能都有千來個執行緒等著得到作業系統的關愛被排程下去執行,有核心idle,作業系統就會去用它。有上千個執行緒在那,不管是雙核心、四核心、六核心,核心都幾乎不可能會有idle的時間,只是負載程度高低的問題。

以下圖中抽幾個應用如IExplorer、Explorer、Google Desktop、Nero InCD、PaintShop Pro...等好了,可觀察有幾個執行緒。
看工作內容,

1. 如果兩個人一起負責洗十個碗,
如果有兩個水槽,
可以兩人同時, 一人洗五個.
原本一件工作分成兩個工作兩個人作.

2. 如果只有一個水槽,
那可以一個負責沖水, 一個負責上洗潔精.
一個件工作還是可以分成兩個人作.

3. 但是如果只有一只碗,
那不管是誰來洗, 或者是誰負責沖水, 誰負責上洗潔精,
同一時間都只有一個人有在做事,
因為基本上沒辦法一邊上洗潔精一邊沖水.
一件工作就只有一個人在作.

1. 的情況因為可以很有效的將工作分配,
所以可以用兩個洗碗洗得不快的人,
在相同的時間做到一個洗碗洗得快的人才能做到的工作,
多工的效果發揮出來.

2. 的情況因為工作不一定能很有效的分配給兩個人,
所以如果沖水跟上洗潔精所花的時間一樣,
那還是可以配合得很好, 兩個慢的人做到一個快的人的效果,
如果兩個花的時間不同, 那就會有其中一個人有些時間沒事幹,
在等另外一個人完工,
這種情況兩個慢的人就不一定可以達到一個快的人的速度.
多工的效果還是可以發揮但是不一定很有效果.


3. 的情況多工就沒什麼用了, 因為同意時間其中一個人幾乎都在休息.
印象中之前看過書上說的

最簡單最簡單的說法就是

雙核心不是1+1=2

而是1(件事)/2(顆核心)=.5件事(單位核心)

幾度春來秋去 在這有限的季節裡 我們活在此時此刻 究竟將尋到什麼
又出現有人把下列關鍵字搞混的情況.
硬體的多核心,
OS 的多工,
應用程式 單緒/多緒



硬體的"多核心"就是把一個以上的CPU 核心包在一個CPU個體之內.
就是這麼簡單,沒有其他定義.
至於OS怎麼用,應用程式怎麼用,
那都不關硬體的問題.

WIN 2000 PRO 就算你插 4/8/16 核心的CPU,
OS也只用其中2個核心.




===
不懂就是不懂,
用什麼譬喻法,只是多讓別人搞混而已.
就像盲人摸象,
摸到什麼就說"多工就是如何如何","多核心就是如何如何"

syntech wrote:
硬體的"多核心"就是把一個以上的CPU 核心包在一個CPU個體之內.
就是這麼簡單,沒有其他定義.
至於OS怎麼用,應用程式怎麼用,
那都不關硬體的問題.


事實上樓主在問的不是 "多核心的定義",
而是多核心的實用情況.

JH-葉 wrote:
人家多 雙核心是為...(恕刪)





這是處理器,資料進入處理器是經過同一個I/O,再由CPU內部的CPU#0來分配工作
所以兩個處裡器都會處裡是正常的....
正常情況下一般一個處裡氣只有一個運算單元..雙核其實也是多核...
所謂的 "核" 就是 "處裡單元" .....所以"核"越多表示他的運算能力越強...

如果上述有誤請糾正...謝謝...
evan5760 wrote:
這是處理器,資料進入處理器是經過同一個I/O,再由CPU內部的CPU#0來分配工作
所以兩個處裡器都會處裡是正常的....
...(恕刪)

這觀念跟圖錯太大了,在Symmetric Multiprocessing的情況下、也就是今天Intel/AMD/Microsoft架構下的多核心個人電腦所適用的情形,並沒有所謂一個CPU#0是專門用來分配工作的情況,分配執行緒到不同核心執行的是作業系統。
evan5760 wrote:
正常情況下一般一個處裡氣只有一個運算單元..雙核其實也是多核...
...(恕刪)

絕大多數的近代處理器,一個處理器內都不會只有一個運算單元.....
ycweng wrote:
這觀念跟圖錯太大了,...(恕刪)


謝謝ycweng大大的指教...

CPU#0 做工作分配是我在雜誌上看到的..不過那是實體多CPU的情況..
原來多核與多CPU工作方式還是有點出入的....

另外我上傳一張圖..



這是一張4核心的晶片,依圖示看來只有一組
Fetch(擷取)、decode(解碼)、branch(分支)、Execution(執行)和一組浮點運算單元...
我看不出來他有多個運算單元...我只知道現在的處理器都有很多管現在增加
處裡器的使用率...這算是運算單元嗎...(管線能運算??)

希望請ycweng大大解惑...謝謝
evan5760 wrote:
這是一張4核心的晶片,依圖示看來只有一組
Fetch(擷取)、decode(解碼)、branch(分支)、Execution(執行)和一組浮點運算單元...
我看不出來他有多個運算單元...我只知道現在的處理器都有很多管現在增加
處裡器的使用率...這算是運算單元嗎...(管線能運算??)

希望請ycweng大大解惑...謝謝


所以這個 "處理器" 總共四個核心,
就有四個 FPU 啦~
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!