來源 | 硬件十萬個(gè)為什么
提高處理器主頻可以提高處理器的性能,但是到一定程度就不能再提高了,我們需要通過雙核,或者多核來提高處理器的性能。
提高處理器主頻是一種提高計(jì)算機(jī)性能的傳統(tǒng)方法,但它存在一些限制和挑戰(zhàn)。雖然提高主頻可以在一定程度上增加處理器的運(yùn)算速度,但這也帶來了一些問題:
熱量和功耗:隨著主頻的提高,處理器產(chǎn)生的熱量和功耗也會顯著增加。高功耗可能導(dǎo)致散熱問題,需要更強(qiáng)大的冷卻系統(tǒng),而且會增加計(jì)算機(jī)系統(tǒng)的能耗。
性能遞減:在某一點(diǎn)之后,提高主頻可能會遇到性能遞減的問題。因?yàn)楦哳l率會導(dǎo)致電子信號傳輸速度的增加,可能引發(fā)信號傳輸延遲、時(shí)序問題等,從而限制性能的提升。
制程技術(shù)限制:隨著制程技術(shù)的進(jìn)步,制造更高主頻的處理器變得更加困難。存在物理限制,例如晶體管的尺寸、電流密度等,制約了進(jìn)一步提高主頻的可能性。
相比之下,多核處理器提供了一種更為可行和有效的方式來提高計(jì)算機(jī)性能,同時(shí)克服了主頻提升所面臨的一些問題。多核架構(gòu)允許并行處理多個(gè)任務(wù),提高整體性能,而且相對于提高主頻,多核設(shè)計(jì)在能效比、熱量分散等方面有一些優(yōu)勢。
綜合考慮,多核和提高主頻都是提高計(jì)算機(jī)性能的手段,但多核處理器更符合當(dāng)前計(jì)算需求和技術(shù)趨勢。在實(shí)際設(shè)計(jì)中,通常會綜合考慮這兩者以達(dá)到最佳的性能和能效比。
1.雙核≠雙倍性能
多核不一定會使你的手機(jī)或電腦速度更快,但它將提高你的PC的整體性能,這是一個(gè)有所不同的細(xì)微的技術(shù)特色。多核處理器的性能提升并不是簡單CPU核心的倍數(shù),因?yàn)槭艿絻?多)個(gè)核之間共享資源的拖累。比如雙核性能只是單核的1.4~1.8倍,實(shí)際情況取決于具體的應(yīng)用。
一個(gè)核拼命干活,拼命轉(zhuǎn)啊轉(zhuǎn)啊,其他核在看,最后溫度不斷上升然后藍(lán)屏了。
上圖是個(gè)笑話,不過你可以用任務(wù)管理器可以看到并不是每個(gè)核的負(fù)載是均勻分配的。
這是為什么一個(gè)核轉(zhuǎn)啊轉(zhuǎn)啊,最后藍(lán)屏的原因。
2.多核并不一定高能
從理論上來說,多核的性能肯定要比單核高很多。不過軟件的發(fā)展遠(yuǎn)遠(yuǎn)跟不上硬件發(fā)展的速度,這樣多核CPU在實(shí)際應(yīng)用中就無法發(fā)揮其應(yīng)用的功效,比如現(xiàn)在四核CPU已經(jīng)非常的普及,但是針對四核優(yōu)化的應(yīng)用軟件寥寥可數(shù)。即使你已經(jīng)用上八核的CPU,在運(yùn)行很多軟件時(shí)仍然不會感到速度有多快的提升。因此我們并不要唯核是從,多核的不一定是最優(yōu)的?!皦蛴镁秃谩庇肋h(yuǎn)是大家裝機(jī)時(shí)選擇硬件的唯一原則。另外由于架構(gòu)、主頻的不同,多核也并不一定比少核性能高。
多核不一定高能,的原理跟人多不一定力量大,是一個(gè)道理。
3.多核不僅是多個(gè)CPU的內(nèi)核
為了充分發(fā)揮CPU功效和減少用戶支出,現(xiàn)在越來越多CPU集成GPU功能,比如Intel就在Sandy Bridge把GPU核心整合進(jìn)了CPU當(dāng)中,其GPU核心的圖形核心性能大幅度地提升。
多核化是無奈之舉:以前,半導(dǎo)體工藝的發(fā)展可以帶來“一舉三得”的效果,包括提高晶體管速度、降低功耗和縮小芯片面積。但是,當(dāng)制造工藝發(fā)展到90nm或65nm時(shí),泄漏電流的問題凸顯,沿用以往的內(nèi)部架構(gòu)來提高頻率的方法難以奏效。為了在不提高工作頻率的條件下實(shí)現(xiàn)性能的提升,只能增加CPU內(nèi)核的數(shù)量。
在有許多客戶要求進(jìn)行并行處理的服務(wù)器中,多核架構(gòu)容易獲得比較好的效果。但是,問題發(fā)生在根據(jù)用戶的要求運(yùn)行應(yīng)用軟件的客戶機(jī)里。由于可能同時(shí)運(yùn)行的軟件數(shù)量有限,即使可以將各個(gè)軟件分割以后并行執(zhí)行,但軟件中必須串行執(zhí)行的部分仍然會妨礙處理性能的提升。許多相關(guān)人士認(rèn)為,在目前這種架構(gòu)的PC中,4~8個(gè)內(nèi)核可能是多核處理器能夠獲得較好性能提升效果的極限。
集成多個(gè)不同類型的內(nèi)核:另一方面,提供新體驗(yàn)的高級用戶接口、動態(tài)及靜態(tài)圖像分析等新的應(yīng)用軟件的不斷出現(xiàn),對處理器的處理性能提出了更高的要求。如果處理器僅在目前以CPU內(nèi)核為主的架構(gòu)上繼續(xù)發(fā)展,這些新應(yīng)用可能將無法實(shí)現(xiàn)。
2007年9月,英特爾公司董事會名譽(yù)主席Gordon Moore在英特爾秋季技術(shù)峰會上表示:“眾所周知,摩爾定律在物理上是有極限的。大約10年或15年以后,摩爾定律將會遇到根本性障礙,而退出歷史舞臺。”反過來說,Moore認(rèn)為,半導(dǎo)體工藝的發(fā)展很可能還會像以前那樣再延續(xù)10年左右。在把工藝發(fā)展當(dāng)作技術(shù)推動力的同時(shí),為了越過橫亙在多核架構(gòu)前面的壁壘,處理器應(yīng)該采用什么樣的內(nèi)部架構(gòu)呢?
業(yè)界想到的方案是采用異構(gòu)處理器架構(gòu),即將不同類型的內(nèi)核集成在一起。在這種架構(gòu)中,CPU內(nèi)核所不擅長的浮點(diǎn)運(yùn)算及信號處理工作,將由集成在同一塊芯片上的其它可編程內(nèi)核執(zhí)行。相關(guān)人士認(rèn)為,集成多個(gè)不同類型內(nèi)核的異構(gòu)多核架構(gòu)將成為今后處理器的主流架構(gòu)。
從同構(gòu)到異構(gòu)通用處理器將實(shí)現(xiàn)SoC化:Nvidia公司的總裁兼CEO指出:“目前,圖形芯片具有的浮點(diǎn)運(yùn)算性能已經(jīng)大大超越了處理器。如果能夠靈活運(yùn)用,隨著圖形芯片的發(fā)展,將會涌現(xiàn)出各種各樣新的應(yīng)用。”在占據(jù)PC及服務(wù)器主流地位的x86處理器中,圍繞GPU(圖形處理單元)展開的相關(guān)研發(fā)工作突然活躍起來。
GPU的集成和通用化取得進(jìn)展:圍繞GPU的研發(fā)方向主要有兩個(gè)。首先,是將GPU內(nèi)核集成到處理器芯片上。AMD公司在2006年7月收購了加拿大的GPU生產(chǎn)商ATI科技公司,并提出了將ATI公司的GPU內(nèi)核集成到處理器上的Fusion處理器方案。另外,英特爾公司在2007年4月明確表示,正在開發(fā)矢量處理器Larrabee(開發(fā)代號),其中集成了許多專用于浮點(diǎn)運(yùn)算的CPU內(nèi)核。
另一個(gè)研發(fā)方向是,利用GPU擅長對浮點(diǎn)運(yùn)算進(jìn)行并行處理的特點(diǎn),將其用作矢量處理器。這就是面向通用計(jì)算領(lǐng)域的GPGPU(General Purpose Computing on GPU),NVIDIA公司從2006年下半年已陸續(xù)推出相關(guān)的硬件產(chǎn)品及軟件開發(fā)工具(見圖1)。
16nm FinFET 3D晶體管的FPGA新品---Zynq UltraScale MPSoC
看看它的內(nèi)部結(jié)構(gòu):
1、 四核A53處理器 CPU
2、 一個(gè)GPU Mali-400MP
3、 一個(gè)Cortex-R5 CPU
5、 H.265(HEVC)視頻編解碼器
6、 安全模塊
7、 UltraScale FPGA 單元;
這其實(shí)就是一款異構(gòu)處理器,如前所述,它是一款ASIC就級的異構(gòu)處理器!而且是64位,采用16nm FinFET工藝的處理器!而且是采用FPGA實(shí)現(xiàn)硬加速的處理器!
64核處理器
基于高性能RISC-V內(nèi)核,9-12流水線設(shè)計(jì),支持亂序執(zhí)行,主頻高達(dá)2GHz,每個(gè)Cluster最多4個(gè)內(nèi)核,單SoC芯片擁有64核,64MB共享三級緩存,可以滿足數(shù)據(jù)中心的各種需求。
我們知道平頭哥C906的性能大約相當(dāng)于ARM的Cortex-A7~A35的性能??梢?4個(gè)處理器內(nèi)核協(xié)同工作,能夠勝任一些服務(wù)器級別的工作,也是讓人很驚訝。
4、多核是怎么協(xié)同工作的?
多核處理器之間的協(xié)同工作涉及到并行計(jì)算、任務(wù)分配和數(shù)據(jù)交互。這種協(xié)同工作的方式通常通過操作系統(tǒng)、編程模型和硬件支持來實(shí)現(xiàn)。以下是多核處理器之間協(xié)同工作的一些基本概念:
并行計(jì)算:多核處理器可以同時(shí)執(zhí)行多個(gè)任務(wù)或處理多個(gè)線程,實(shí)現(xiàn)并行計(jì)算。這意味著每個(gè)核心都可以獨(dú)立執(zhí)行指令,從而提高整體系統(tǒng)的計(jì)算性能。
任務(wù)分配:操作系統(tǒng)或應(yīng)用程序可以將不同的任務(wù)分配給多個(gè)核心,以實(shí)現(xiàn)負(fù)載均衡和提高系統(tǒng)的效率。任務(wù)分配的方式可以根據(jù)任務(wù)性質(zhì)和系統(tǒng)狀態(tài)動態(tài)調(diào)整。
線程級并行:多核處理器支持線程級并行,即同時(shí)執(zhí)行多個(gè)線程。這可以通過多線程編程模型實(shí)現(xiàn),其中每個(gè)線程都由不同的核心執(zhí)行,共同完成整體任務(wù)。
共享內(nèi)存:在多核系統(tǒng)中,核心之間通常共享一部分內(nèi)存。這使得不同核心之間可以輕松地共享數(shù)據(jù),從而實(shí)現(xiàn)更緊密的協(xié)同工作。然而,共享內(nèi)存也需要考慮同步和一致性等問題。
消息傳遞:多核處理器之間還可以通過消息傳遞進(jìn)行通信。不同核心之間通過發(fā)送和接收消息來共享信息,這在一些分布式計(jì)算場景中比較常見。
硬件支持:多核處理器的硬件通常會提供一些支持協(xié)同工作的機(jī)制,如高速緩存一致性協(xié)議、硬件線程調(diào)度等。這些機(jī)制有助于優(yōu)化多核系統(tǒng)的性能和效率。
多核處理器之間的協(xié)同工作是通過合理的任務(wù)分配、數(shù)據(jù)交互和并行計(jì)算來實(shí)現(xiàn)的。軟件層面的編程模型和操作系統(tǒng)的支持,以及硬件層面的設(shè)計(jì)都起著關(guān)鍵的作用。合理的協(xié)同工作可以使多核系統(tǒng)更好地利用計(jì)算資源,提高系統(tǒng)的整體性能。
5、AMP和SMP
"AMP" 、 "SMP" 都是與多處理器系統(tǒng)(Multiprocessing Systems)相關(guān)的術(shù)語,它們描述了不同的處理器架構(gòu)方式:
AMP (Asymmetric Multiprocessing):
定義:AMP 指的是非對稱多處理,其中系統(tǒng)中的處理器核心可以具有不同的性能特征。
特點(diǎn):不同核心可能擁有不同的時(shí)鐘頻率、功能和用途。通常,一些核心專注于高性能計(jì)算任務(wù),而其他核心則專注于低功耗任務(wù)。
例子:某個(gè)系統(tǒng)中,可能有一個(gè)高性能的核心用于執(zhí)行復(fù)雜的計(jì)算任務(wù),而其他低功耗核心則用于處理簡單的后臺任務(wù),以節(jié)省能量。
SMP (Symmetric Multiprocessing):
定義:SMP 指的是對稱多處理,其中系統(tǒng)中的所有處理器核心被認(rèn)為是相同的,具有相似的性能特征。
特點(diǎn):所有核心共享相同的內(nèi)存空間和系統(tǒng)總線,可以同時(shí)執(zhí)行相同的指令序列。這使得任務(wù)可以在不同核心之間平均分配,實(shí)現(xiàn)負(fù)載均衡。
例子:在 SMP 系統(tǒng)中,所有的核心都能夠處理相同類型的任務(wù),而任務(wù)可以被分配到任何可用的核心上。
在選擇 AMP 還是 SMP 的架構(gòu)時(shí),取決于應(yīng)用程序的性質(zhì)和系統(tǒng)設(shè)計(jì)的目標(biāo)。AMP 提供了更大的靈活性,允許系統(tǒng)中的核心具有不同的功能,而 SMP 則更注重任務(wù)的平均分配和相對均勻的性能。
6、Cache一致性
Cache(緩存)一致性是多處理系統(tǒng)中的一個(gè)關(guān)鍵概念,它確保不同處理器或核心的緩存之間的數(shù)據(jù)保持一致。在具有多個(gè)處理器核心的系統(tǒng)中,每個(gè)核心都有自己的緩存,當(dāng)一個(gè)核心修改內(nèi)存中的數(shù)據(jù)時(shí),其他核心的緩存可能會包含過時(shí)的數(shù)據(jù)。為了確保數(shù)據(jù)的正確性和一致性,需要實(shí)現(xiàn)緩存一致性。
以下是一些關(guān)于緩存一致性的重要概念和方法:
寫命令和寫回:處理器對內(nèi)存的寫操作通常包括寫命令和寫回兩個(gè)階段。寫命令將數(shù)據(jù)寫入內(nèi)存,而寫回則是將數(shù)據(jù)從緩存寫回內(nèi)存。緩存一致性涉及確保在寫回階段,其他核心的緩存中的相應(yīng)數(shù)據(jù)被更新或無效。
緩存一致性協(xié)議:緩存一致性通常通過硬件支持的緩存一致性協(xié)議來實(shí)現(xiàn)。一些常見的協(xié)議包括MESI(Modified, Exclusive, Shared, Invalid)協(xié)議和MOESI(Modified, Owned, Exclusive, Shared, Invalid)協(xié)議。這些協(xié)議定義了緩存狀態(tài)和處理器之間的通信規(guī)則,以確保數(shù)據(jù)的一致性。
總線鎖定:通過總線鎖定機(jī)制,可以實(shí)現(xiàn)對總線的獨(dú)占訪問,防止多個(gè)處理器同時(shí)修改內(nèi)存。這有助于減小緩存不一致性的可能性,但也可能引入性能瓶頸。
全局內(nèi)存一致性模型:一些系統(tǒng)采用全局內(nèi)存一致性模型,即所有處理器對內(nèi)存的訪問看起來是按照某個(gè)全局的順序進(jìn)行的。這要求系統(tǒng)保證所有核心看到的內(nèi)存訪問順序是一致的。
軟件同步和屏障:在并行編程中,軟件同步機(jī)制和屏障(barrier)可以用于確保在多個(gè)核心之間的操作順序。這有助于維護(hù)一致性,但也可能引入性能開銷。
緩存一致性是多處理系統(tǒng)設(shè)計(jì)中的復(fù)雜問題,需要綜合考慮性能、復(fù)雜性和一致性的要求。各種硬件和軟件技術(shù)都被用來解決這一問題,以確保系統(tǒng)的正確運(yùn)行和高性能。
7、 雙核、雙芯、超線程的區(qū)別
雙(多)核:是指擁有兩(或多個(gè))物理核心(又稱為內(nèi)核),各種CPU核心都具有固定的邏輯結(jié)構(gòu),一級緩存、二級緩存、執(zhí)行單元、指令級單元和總線接口等邏輯單元,各個(gè)核心通過超傳輸技術(shù)讓CPU內(nèi)核直接跟外部I/O相連,集成內(nèi)存控制器技術(shù),使得每個(gè)內(nèi)核都有自己的高速緩存可用,都有自己的專用車道直通I/O,沒有資源爭搶的問題。
雙(多)芯:僅僅將兩(或多個(gè))完整的CPU封裝在一起,連接到同一個(gè)前端總線上。由于總線的限制,兩個(gè)核心必然會產(chǎn)生總線爭搶,影響性能,而且這樣的核心越多,越容易加劇處理器爭用前端總線帶寬,成為提升系統(tǒng)性能的瓶頸,這是CPU架構(gòu)引發(fā)的先天故障,因此這種雙(多)芯實(shí)際上是“假多核”。雙芯有些像是北京郊區(qū)開發(fā)的大型社區(qū)一樣,多個(gè)社區(qū)利用同一條城市快速路,人們出行(數(shù)據(jù)處理)肯定要遇到堵車的問題。雙核則是為不同小區(qū)開發(fā)專用車道,每個(gè)小區(qū)出行并不交叉(數(shù)據(jù)可以并行處理),并不會發(fā)生堵車現(xiàn)象。
HT技術(shù)(即超線程技術(shù)):HT技術(shù)是在處理器實(shí)現(xiàn)2個(gè)邏輯處理器(注意不是物理處理器),是充分利用處理器資源,類似虛擬CPU,讓系統(tǒng)誤認(rèn)為是雙核處理器。而雙核心處理器是集成2個(gè)物理核心,是實(shí)際意義上的雙核心處理器。舉個(gè)形象例子來說,前者好像是一個(gè)能用雙手同時(shí)炒菜的廚師,但一次只能把一碟菜放到桌面;而雙核心處理器好比2個(gè)廚師炒兩個(gè)菜,并同時(shí)把兩個(gè)菜送到桌面。
8、進(jìn)程和線程
進(jìn)程(Process) 和 線程(Thread) 是計(jì)算機(jī)中用于執(zhí)行任務(wù)的兩個(gè)基本概念
進(jìn)程
簡單的來講進(jìn)程的概念主要有兩點(diǎn):第一,進(jìn)程是一個(gè)實(shí)體。每一個(gè)進(jìn)程都有它自己的地址空間,一般情況下,包括文本區(qū)域(text region)、數(shù)據(jù)區(qū)域(data region)和堆棧(stack region)。文本區(qū)域存儲處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲變量和進(jìn)程執(zhí)行期間使用的動態(tài)分配的內(nèi)存;堆棧區(qū)域存儲著活動過程調(diào)用的指令和本地變量。第二,進(jìn)程是一個(gè) “執(zhí)行中的程序”。程序是一個(gè)沒有生命的實(shí)體,只有處理器賦予程序生命時(shí),它才能成為一個(gè)活動的實(shí)體,我們稱其為進(jìn)程。
進(jìn)程是程序的一次執(zhí)行過程,是動態(tài)概念
程序是一組有序的指令和數(shù)據(jù)集合,是靜態(tài)概念
線程
有時(shí)被稱為輕量進(jìn)程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位。
是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。線程有就緒、阻塞和運(yùn)行三種基本狀態(tài)。一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運(yùn)行中呈現(xiàn)出間斷性。線程也有就緒、阻塞和運(yùn)行三種基本狀態(tài)。就緒狀態(tài)是指線程具備運(yùn)行的所有條件,邏輯上可以運(yùn)行在等待處理機(jī);運(yùn)行狀態(tài)是指線程占有處理機(jī)正在運(yùn)行;阻塞狀態(tài)是指線程在等待一個(gè)事件(如某個(gè)信號量),邏輯上不可執(zhí)行。每一個(gè)程序都至少有一個(gè)線程,若程序只有一個(gè)線程,那就是程序本身。進(jìn)程可以簡單地理解為一個(gè)可以獨(dú)立運(yùn)行的程序單位。它是線程的集合,進(jìn)程就是由一個(gè)或多個(gè)線程構(gòu)成的,每一個(gè)線程都是進(jìn)程中的一條執(zhí)行路徑。
進(jìn)程與線程,它們之間存在一些關(guān)鍵區(qū)別:
概念定義:
進(jìn)程:進(jìn)程是計(jì)算機(jī)中運(yùn)行的程序的實(shí)例。每個(gè)進(jìn)程都有自己的地址空間、內(nèi)存、文件句柄等資源,是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。
線程:線程是進(jìn)程中的一個(gè)執(zhí)行單元,是進(jìn)程的一個(gè)子集。一個(gè)進(jìn)程可以包含多個(gè)線程,它們共享相同的地址空間和其他資源,但擁有獨(dú)立的執(zhí)行流。
資源分配:
進(jìn)程:進(jìn)程是獨(dú)立的資源單位,擁有獨(dú)立的內(nèi)存空間和系統(tǒng)資源。進(jìn)程間通信通常需要特殊的機(jī)制,如進(jìn)程間通信(IPC)。
線程:線程共享相同進(jìn)程的資源,包括內(nèi)存空間和文件。線程之間的通信相對容易,因?yàn)樗鼈兛梢灾苯釉L問共享的數(shù)據(jù)空間。
切換開銷:
進(jìn)程:由于進(jìn)程有獨(dú)立的資源,進(jìn)程間切換的開銷較大。進(jìn)程切換通常需要保存和恢復(fù)大量的狀態(tài)信息。
線程:線程切換的開銷較小,因?yàn)樗鼈児蚕硐嗤牡刂房臻g,切換只需要保存和恢復(fù)少量的狀態(tài)信息。
并發(fā)性:
進(jìn)程:進(jìn)程間是相互獨(dú)立的,一個(gè)進(jìn)程的崩潰不會直接影響其他進(jìn)程。
線程:線程共享相同的地址空間,因此一個(gè)線程的錯(cuò)誤可能會影響到同一進(jìn)程內(nèi)的其他線程。
創(chuàng)建和銷毀:
進(jìn)程:創(chuàng)建和銷毀進(jìn)程的開銷較大,通常需要分配和釋放大量的資源。
線程:創(chuàng)建和銷毀線程的開銷相對較小,因?yàn)樗鼈児蚕磉M(jìn)程的資源。
獨(dú)立性:
進(jìn)程:進(jìn)程是獨(dú)立的執(zhí)行單位,進(jìn)程之間相對隔離。
線程:線程是進(jìn)程內(nèi)的執(zhí)行單元,線程之間共享相同進(jìn)程的資源,因此相對于進(jìn)程來說更密切相關(guān)。
進(jìn)程和線程是操作系統(tǒng)中用于管理和執(zhí)行任務(wù)的兩個(gè)關(guān)鍵概念。線程的輕量級和共享資源的特性使其在某些情況下更適合實(shí)現(xiàn)并發(fā)性和多任務(wù)處理。選擇使用進(jìn)程還是線程通常取決于任務(wù)的性質(zhì)和系統(tǒng)設(shè)計(jì)的需求。
一個(gè)基本的事實(shí)前提:一個(gè)CPU在一個(gè)瞬間只能處理一個(gè)任務(wù)。但為什么在我們?nèi)祟愐暯牵呐率菃魏诵挠?jì)算機(jī)也能同時(shí)做很多事情,比如同時(shí)聽音樂和瀏覽網(wǎng)頁,作為整個(gè)系統(tǒng)唯一可以完成計(jì)算任務(wù)的 CPU 是如何保證兩個(gè)進(jìn)程“同時(shí)進(jìn)行”的呢?時(shí)間片輪轉(zhuǎn)調(diào)度!
每個(gè)進(jìn)程會被操作系統(tǒng)分配一個(gè)時(shí)間片,即每次被 CPU 選中來執(zhí)行當(dāng)前進(jìn)程所用的時(shí)間。時(shí)間一到,無論進(jìn)程是否運(yùn)行結(jié)束,操作系統(tǒng)都會強(qiáng)制將 CPU 這個(gè)資源轉(zhuǎn)到另一個(gè)進(jìn)程去執(zhí)行。為什么要這樣做呢?因?yàn)橹挥幸粋€(gè)單核 CPU,假如沒有這種輪轉(zhuǎn)調(diào)度機(jī)制,那它該去處理寫文檔的進(jìn)程還是該去處理聽音樂的進(jìn)程?無論執(zhí)行哪個(gè)進(jìn)程,另一個(gè)進(jìn)程肯定是不被執(zhí)行,程序自然就是無運(yùn)行的狀態(tài)。如果 CPU 一會兒處理 word 進(jìn)程一會兒處理聽音樂的進(jìn)程,起初看起來好像會覺得兩個(gè)進(jìn)程都很卡,但是 CPU 的執(zhí)行速度已經(jīng)快到讓人們感覺不到這種切換的頓挫感,就真的好像兩個(gè)進(jìn)程在“并行運(yùn)行”。
9、多任務(wù)、多線程、多核。
多任務(wù)是指系統(tǒng)可以同時(shí)執(zhí)行多個(gè)任務(wù),比如你可以一邊下載、一邊聽歌,Windows可以很好支持多任務(wù)的運(yùn)行,這和多核CPU并沒有多大關(guān)系。多線程則是指系統(tǒng)可以針對某項(xiàng)操作,調(diào)用多個(gè)CPU進(jìn)行并行處理。比如支持多線程的PS,在批處理多個(gè)操作(如濾鏡、摳圖)時(shí),系統(tǒng)就會調(diào)用多路CPU并行處理這些操作以提高操作效率。
"多任務(wù)"、"多線程" 和 "多核" 是計(jì)算機(jī)系統(tǒng)中描述并發(fā)處理和并行計(jì)算的概念,它們之間存在一些區(qū)別:
多任務(wù) (Multitasking):
定義:多任務(wù)是指在同一時(shí)間內(nèi)執(zhí)行多個(gè)任務(wù)或程序的能力。這些任務(wù)可能屬于不同的應(yīng)用程序,系統(tǒng)通過快速切換執(zhí)行上下文來模擬同時(shí)運(yùn)行。
實(shí)現(xiàn)方式:多任務(wù)可以通過時(shí)間片輪轉(zhuǎn)、優(yōu)先級調(diào)度等方式實(shí)現(xiàn)。每個(gè)任務(wù)分配一小段時(shí)間,系統(tǒng)在不同任務(wù)之間切換,使用戶感覺好像它們在同時(shí)運(yùn)行。
多線程 (Multithreading):
定義:多線程是在同一進(jìn)程內(nèi)執(zhí)行多個(gè)線程的能力。線程是進(jìn)程內(nèi)的執(zhí)行單元,多線程允許程序同時(shí)執(zhí)行多個(gè)獨(dú)立的線程,每個(gè)線程都有自己的執(zhí)行流。
實(shí)現(xiàn)方式:多線程可以在單個(gè)核心上運(yùn)行,通過在不同線程之間進(jìn)行快速切換來模擬并發(fā)。多線程也可以在多核系統(tǒng)中發(fā)揮更大的優(yōu)勢,每個(gè)線程可以在不同核心上并行執(zhí)行。
多核 (Multicore):
定義:多核是指計(jì)算機(jī)系統(tǒng)中包含多個(gè)處理器核心的架構(gòu)。每個(gè)核心都是一個(gè)獨(dú)立的處理器,能夠獨(dú)立執(zhí)行指令序列。多核系統(tǒng)允許同時(shí)處理多個(gè)任務(wù)或線程,提高整體系統(tǒng)性能。
實(shí)現(xiàn)方式:多核系統(tǒng)可以是對稱多處理(SMP)或非對稱多處理(AMP)。在 SMP 中,所有核心共享內(nèi)存,而在 AMP 中,核心可能具有不同的性能特征。
多任務(wù) 是指同時(shí)執(zhí)行多個(gè)任務(wù),可以是不同應(yīng)用程序的任務(wù)。單核也可以多任務(wù),把處理器按照時(shí)間片段分配給不同的任務(wù)。
多線程 是在同一進(jìn)程內(nèi)執(zhí)行多個(gè)線程,每個(gè)線程可以獨(dú)立執(zhí)行,但它們共享進(jìn)程的資源。
多核 是指計(jì)算機(jī)系統(tǒng)中包含多個(gè)獨(dú)立的處理器核心,可以同時(shí)執(zhí)行不同的任務(wù)或線程。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229651 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211576 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7488瀏覽量
87849 -
多核處理器
+關(guān)注
關(guān)注
0文章
109瀏覽量
19908
原文標(biāo)題:CPU為什么需要多核?
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論