多核 CPU 和多个 CPU 有何区别
假設(shè)現(xiàn)在我們要設(shè)計一臺計算機的處理器部分的架構(gòu)。我們有兩種選擇,多個單核CPU和單個多核CPU。
如果我們選擇多個單核CPU,那么每一個CPU都需要有較為獨立的電路支持,有自己的Cache,而他們之間通過板上的總線進行通信。在這樣的架構(gòu)上,我們要跑一個多線程的程序(常見典型情況),不考慮超線程,那么每一個線程就要跑在一個獨立的CPU上,線程間的所有協(xié)作都要走總線,而共享的數(shù)據(jù)更是有可能要在好幾個Cache里同時存在。這樣的話,總線開銷相比較而言是很大的,怎么辦?那么多Cache,即使我們不心疼存儲能力的浪費,一致性怎么保證?如果真正做出來,還要在主板上占多塊地盤,給布局布線帶來更大的挑戰(zhàn);
如果我們選擇多核單CPU,那么我們只需要一套芯片組,一套存儲,多核之間通過芯片內(nèi)部總線進行通信,共享使用內(nèi)存。在這樣的架構(gòu)上,如果我們跑一個多線程的程序,那么線程間通信將比上一種情形更快。如果最終實現(xiàn)出來,對板上空間的占用較小,布局布線的壓力也較小。
但是,如果需要同時跑多個大程序怎么辦?假設(shè)倆大程序,每一個程序都好多線程還幾乎用滿cache,它們分時使用CPU,那在程序間切換的時候,光指令和數(shù)據(jù)的替換就要費多大事情啊!
所以呢,大部分一般咱們使用的電腦,都是單CPU多核的,比如我們配的Dell T3600,有一顆Intel Xeon E5-1650,6核,虛擬為12個邏輯核心。少部分高端人士需要更強的多任務(wù)并發(fā)能力,就會搞一個多顆多核CPU的機子,Mac Pro就可以有兩顆。
?
總結(jié)
以上是生活随笔為你收集整理的多核 CPU 和多个 CPU 有何区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# Marshal类基本概念和入门示例
- 下一篇: 图解一次Linux挂载操作和mount命