Question:
怎麼理解CPU、processor、core的區別
如果CPU包含ALU(運算器)、內存單元、IO的話,那麼
a) processor是什麼,它包含哪些東西
b) CPU和processor的關係是怎樣的
c) Core又是什麼
下文中:Processor=處理器,core=核
Answer:
1 處理器的演變
'Processor','Core', 和 'CPU'這些術語定義都不很明確,在過去的這些年,隨着計算機架構的演變,它們的含義也經歷了很多變化。在現代的定義中,'Processor'和 'CPU'的含義其實是同一個東西,更精確的說,它們是指'處理器包',因爲沒有一個標準定義這個包到底應該包含什麼。15-20年前的老CPU只包含有執行任務所需要的最小的資源。它包括運算器、取指令和解碼硬件,指令管道、中斷處理硬件,和部分IO控制硬件,此後,cache內存加入到CPU中用來提高執行效率。
2 核的形成和演變
再往後,執行任務的processor(處理器)數量開始加倍。運算器、取指令和解碼硬件,指令管道以及一些cache內存被整合起來成爲我們今天所說的 ‘CORE’。每個’核’都可以運行單個程序(當它支持硬件線程比如IntelCPU的超級線程時也可以運行多個程序),維護正確程序的狀態、寄存器和正確的執行次序,並通過運算器(ALU)來執行操作,核是CPU的基本計算單元。IO讀取控制、中斷處理,等等資源在所有的’核’之間共享。
在給定的時間內,一顆CPU/Processor(處理器)可以有多顆核執行任務,這些任務通常是操作系統調度的軟件進程和線程。記住操作系統可能有多個線程在運行,但CPU只可以在給定的時間內運行一定數量(X)的任務數,X=CPU的核數*每核的硬件線程數,剩餘的線程必須等待操作系統的調度,要麼搶佔當前正在運行的任務線程,或者其他情況
最近內存控制單元也加入到處理器包中,它居於’核’的一側但不屬於它。因此內存控制單元是處理器包的一部分,或者Processor/CPU的一部分,但不是’核’的一部分。Intel公司習慣用“非計算內核”來特指它。CPU包含核與外部的連接的相互聯繫,通常是一個大的’末級’共享cache,你可能需要很多其他的要素來讓CPU工作,比如上面的內存控制器來和內存進行交互---(這就是上面說的內存控制單元),IO控制器來和存儲交互(display,PCIe,USB)等等。此外CPU可能還集成了GPU,CPU設計越來越像我們所稱的“SOC”—片上系統。
3 怎麼計算機器的核數
當我們討論一個安裝有多顆處理器的系統時,這會變得更加複雜。很多服務器和工作站安裝有2、4或者更多的處理器,每個處理器都包含同樣的硬件。因此一個機器中的核數可以通過系統中’處理器’的數目乘以每個處理器中的’核’數計算得出,一臺有兩顆雙核處理器的電腦的核數同一臺有一顆八核處理器的電腦的核數是相同的
每個處理器插槽(佈滿引腳和金屬的平板)都可以插入一顆AMD皓龍6100系列的處理器,每個皓龍6100處理器都有8或者12核。這意味着一個典型系統可以有8核(裝有單顆八核處理器)或者48核(裝有4顆12核處理器)
下面形象的展現了SOCKET、CPU/Processor、CORE的關係
參考:
http://www.tomshardware.com/forum/342869-28-difference-processor-core
http://stackoverflow.com/questions/19225859/difference-between-core-and-processor