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