來(lái)源 | 硬件十萬(wàn)個(gè)為什么
提高處理器主頻可以提高處理器的性能,但是到一定程度就不能再提高了,我們需要通過(guò)雙核,或者多核來(lái)提高處理器的性能。
提高處理器主頻是一種提高計(jì)算機(jī)性能的傳統(tǒng)方法,但它存在一些限制和挑戰(zhàn)。雖然提高主頻可以在一定程度上增加處理器的運(yùn)算速度,但這也帶來(lái)了一些問(wèn)題:
熱量和功耗:隨著主頻的提高,處理器產(chǎn)生的熱量和功耗也會(huì)顯著增加。高功耗可能導(dǎo)致散熱問(wèn)題,需要更強(qiáng)大的冷卻系統(tǒng),而且會(huì)增加計(jì)算機(jī)系統(tǒng)的能耗。
性能遞減:在某一點(diǎn)之后,提高主頻可能會(huì)遇到性能遞減的問(wèn)題。因?yàn)楦哳l率會(huì)導(dǎo)致電子信號(hào)傳輸速度的增加,可能引發(fā)信號(hào)傳輸延遲、時(shí)序問(wèn)題等,從而限制性能的提升。
制程技術(shù)限制:隨著制程技術(shù)的進(jìn)步,制造更高主頻的處理器變得更加困難。存在物理限制,例如晶體管的尺寸、電流密度等,制約了進(jìn)一步提高主頻的可能性。
相比之下,多核處理器提供了一種更為可行和有效的方式來(lái)提高計(jì)算機(jī)性能,同時(shí)克服了主頻提升所面臨的一些問(wèn)題。多核架構(gòu)允許并行處理多個(gè)任務(wù),提高整體性能,而且相對(duì)于提高主頻,多核設(shè)計(jì)在能效比、熱量分散等方面有一些優(yōu)勢(shì)。
綜合考慮,多核和提高主頻都是提高計(jì)算機(jī)性能的手段,但多核處理器更符合當(dāng)前計(jì)算需求和技術(shù)趨勢(shì)。在實(shí)際設(shè)計(jì)中,通常會(huì)綜合考慮這兩者以達(dá)到最佳的性能和能效比。
1.雙核≠雙倍性能
多核不一定會(huì)使你的手機(jī)或電腦速度更快,但它將提高你的PC的整體性能,這是一個(gè)有所不同的細(xì)微的技術(shù)特色。多核處理器的性能提升并不是簡(jiǎn)單CPU核心的倍數(shù),因?yàn)槭艿絻?多)個(gè)核之間共享資源的拖累。比如雙核性能只是單核的1.4~1.8倍,實(shí)際情況取決于具體的應(yīng)用。
一個(gè)核拼命干活,拼命轉(zhuǎn)啊轉(zhuǎn)啊,其他核在看,最后溫度不斷上升然后藍(lán)屏了。
上圖是個(gè)笑話,不過(guò)你可以用任務(wù)管理器可以看到并不是每個(gè)核的負(fù)載是均勻分配的。

這是為什么一個(gè)核轉(zhuǎn)啊轉(zhuǎn)啊,最后藍(lán)屏的原因。

2.多核并不一定高能
從理論上來(lái)說(shuō),多核的性能肯定要比單核高很多。不過(guò)軟件的發(fā)展遠(yuǎn)遠(yuǎn)跟不上硬件發(fā)展的速度,這樣多核CPU在實(shí)際應(yīng)用中就無(wú)法發(fā)揮其應(yīng)用的功效,比如現(xiàn)在四核CPU已經(jīng)非常的普及,但是針對(duì)四核優(yōu)化的應(yīng)用軟件寥寥可數(shù)。即使你已經(jīng)用上八核的CPU,在運(yùn)行很多軟件時(shí)仍然不會(huì)感到速度有多快的提升。因此我們并不要唯核是從,多核的不一定是最優(yōu)的?!皦蛴镁秃谩庇肋h(yuǎn)是大家裝機(jī)時(shí)選擇硬件的唯一原則。另外由于架構(gòu)、主頻的不同,多核也并不一定比少核性能高。
多核不一定高能,的原理跟人多不一定力量大,是一個(gè)道理。
3.多核不僅是多個(gè)CPU的內(nèi)核
為了充分發(fā)揮CPU功效和減少用戶支出,現(xiàn)在越來(lái)越多CPU集成GPU功能,比如Intel就在Sandy Bridge把GPU核心整合進(jìn)了CPU當(dāng)中,其GPU核心的圖形核心性能大幅度地提升。
多核化是無(wú)奈之舉:以前,半導(dǎo)體工藝的發(fā)展可以帶來(lái)“一舉三得”的效果,包括提高晶體管速度、降低功耗和縮小芯片面積。但是,當(dāng)制造工藝發(fā)展到90nm或65nm時(shí),泄漏電流的問(wèn)題凸顯,沿用以往的內(nèi)部架構(gòu)來(lái)提高頻率的方法難以奏效。為了在不提高工作頻率的條件下實(shí)現(xiàn)性能的提升,只能增加CPU內(nèi)核的數(shù)量。
在有許多客戶要求進(jìn)行并行處理的服務(wù)器中,多核架構(gòu)容易獲得比較好的效果。但是,問(wèn)題發(fā)生在根據(jù)用戶的要求運(yùn)行應(yīng)用軟件的客戶機(jī)里。由于可能同時(shí)運(yùn)行的軟件數(shù)量有限,即使可以將各個(gè)軟件分割以后并行執(zhí)行,但軟件中必須串行執(zhí)行的部分仍然會(huì)妨礙處理性能的提升。許多相關(guān)人士認(rèn)為,在目前這種架構(gòu)的PC中,4~8個(gè)內(nèi)核可能是多核處理器能夠獲得較好性能提升效果的極限。
集成多個(gè)不同類型的內(nèi)核:另一方面,提供新體驗(yàn)的高級(jí)用戶接口、動(dòng)態(tài)及靜態(tài)圖像分析等新的應(yīng)用軟件的不斷出現(xiàn),對(duì)處理器的處理性能提出了更高的要求。如果處理器僅在目前以CPU內(nèi)核為主的架構(gòu)上繼續(xù)發(fā)展,這些新應(yīng)用可能將無(wú)法實(shí)現(xiàn)。
2007年9月,英特爾公司董事會(huì)名譽(yù)主席Gordon Moore在英特爾秋季技術(shù)峰會(huì)上表示:“眾所周知,摩爾定律在物理上是有極限的。大約10年或15年以后,摩爾定律將會(huì)遇到根本性障礙,而退出歷史舞臺(tái)。”反過(guò)來(lái)說(shuō),Moore認(rèn)為,半導(dǎo)體工藝的發(fā)展很可能還會(huì)像以前那樣再延續(xù)10年左右。在把工藝發(fā)展當(dāng)作技術(shù)推動(dòng)力的同時(shí),為了越過(guò)橫亙?cè)诙嗪思軜?gòu)前面的壁壘,處理器應(yīng)該采用什么樣的內(nèi)部架構(gòu)呢?
業(yè)界想到的方案是采用異構(gòu)處理器架構(gòu),即將不同類型的內(nèi)核集成在一起。在這種架構(gòu)中,CPU內(nèi)核所不擅長(zhǎng)的浮點(diǎn)運(yùn)算及信號(hào)處理工作,將由集成在同一塊芯片上的其它可編程內(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ā)展,將會(huì)涌現(xiàn)出各種各樣新的應(yīng)用。”在占據(jù)PC及服務(wù)器主流地位的x86處理器中,圍繞GPU(圖形處理單元)展開(kāi)的相關(guān)研發(fā)工作突然活躍起來(lái)。
GPU的集成和通用化取得進(jìn)展:圍繞GPU的研發(fā)方向主要有兩個(gè)。首先,是將GPU內(nèi)核集成到處理器芯片上。AMD公司在2006年7月收購(gòu)了加拿大的GPU生產(chǎn)商ATI科技公司,并提出了將ATI公司的GPU內(nèi)核集成到處理器上的Fusion處理器方案。另外,英特爾公司在2007年4月明確表示,正在開(kāi)發(fā)矢量處理器Larrabee(開(kāi)發(fā)代號(hào)),其中集成了許多專用于浮點(diǎn)運(yùn)算的CPU內(nèi)核。
另一個(gè)研發(fā)方向是,利用GPU擅長(zhǎng)對(duì)浮點(diǎn)運(yùn)算進(jìn)行并行處理的特點(diǎn),將其用作矢量處理器。這就是面向通用計(jì)算領(lǐng)域的GPGPU(General Purpose Computing on GPU),NVIDIA公司從2006年下半年已陸續(xù)推出相關(guān)的硬件產(chǎn)品及軟件開(kāi)發(fā)工具(見(jiàn)圖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就級(jí)的異構(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共享三級(jí)緩存,可以滿足數(shù)據(jù)中心的各種需求。
我們知道平頭哥C906的性能大約相當(dāng)于ARM的Cortex-A7~A35的性能??梢?4個(gè)處理器內(nèi)核協(xié)同工作,能夠勝任一些服務(wù)器級(jí)別的工作,也是讓人很驚訝。
4、多核是怎么協(xié)同工作的?
多核處理器之間的協(xié)同工作涉及到并行計(jì)算、任務(wù)分配和數(shù)據(jù)交互。這種協(xié)同工作的方式通常通過(guò)操作系統(tǒng)、編程模型和硬件支持來(lái)實(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)動(dòng)態(tài)調(diào)整。
線程級(jí)并行:多核處理器支持線程級(jí)并行,即同時(shí)執(zhí)行多個(gè)線程。這可以通過(guò)多線程編程模型實(shí)現(xiàn),其中每個(gè)線程都由不同的核心執(zhí)行,共同完成整體任務(wù)。
共享內(nèi)存:在多核系統(tǒng)中,核心之間通常共享一部分內(nèi)存。這使得不同核心之間可以輕松地共享數(shù)據(jù),從而實(shí)現(xiàn)更緊密的協(xié)同工作。然而,共享內(nèi)存也需要考慮同步和一致性等問(wèn)題。
消息傳遞:多核處理器之間還可以通過(guò)消息傳遞進(jìn)行通信。不同核心之間通過(guò)發(fā)送和接收消息來(lái)共享信息,這在一些分布式計(jì)算場(chǎng)景中比較常見(jiàn)。
硬件支持:多核處理器的硬件通常會(huì)提供一些支持協(xié)同工作的機(jī)制,如高速緩存一致性協(xié)議、硬件線程調(diào)度等。這些機(jī)制有助于優(yōu)化多核系統(tǒng)的性能和效率。
多核處理器之間的協(xié)同工作是通過(guò)合理的任務(wù)分配、數(shù)據(jù)交互和并行計(jì)算來(lái)實(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ù)語(yǔ),它們描述了不同的處理器架構(gòu)方式:
AMP (Asymmetric Multiprocessing):
定義:AMP 指的是非對(duì)稱多處理,其中系統(tǒng)中的處理器核心可以具有不同的性能特征。
特點(diǎn):不同核心可能擁有不同的時(shí)鐘頻率、功能和用途。通常,一些核心專注于高性能計(jì)算任務(wù),而其他核心則專注于低功耗任務(wù)。
例子:某個(gè)系統(tǒng)中,可能有一個(gè)高性能的核心用于執(zhí)行復(fù)雜的計(jì)算任務(wù),而其他低功耗核心則用于處理簡(jiǎn)單的后臺(tái)任務(wù),以節(jié)省能量。
SMP (Symmetric Multiprocessing):
定義:SMP 指的是對(duì)稱多處理,其中系統(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ù)的平均分配和相對(duì)均勻的性能。
6、Cache一致性
Cache(緩存)一致性是多處理系統(tǒng)中的一個(gè)關(guān)鍵概念,它確保不同處理器或核心的緩存之間的數(shù)據(jù)保持一致。在具有多個(gè)處理器核心的系統(tǒng)中,每個(gè)核心都有自己的緩存,當(dāng)一個(gè)核心修改內(nèi)存中的數(shù)據(jù)時(shí),其他核心的緩存可能會(huì)包含過(guò)時(shí)的數(shù)據(jù)。為了確保數(shù)據(jù)的正確性和一致性,需要實(shí)現(xiàn)緩存一致性。
以下是一些關(guān)于緩存一致性的重要概念和方法:
寫(xiě)命令和寫(xiě)回:處理器對(duì)內(nèi)存的寫(xiě)操作通常包括寫(xiě)命令和寫(xiě)回兩個(gè)階段。寫(xiě)命令將數(shù)據(jù)寫(xiě)入內(nèi)存,而寫(xiě)回則是將數(shù)據(jù)從緩存寫(xiě)回內(nèi)存。緩存一致性涉及確保在寫(xiě)回階段,其他核心的緩存中的相應(yīng)數(shù)據(jù)被更新或無(wú)效。
緩存一致性協(xié)議:緩存一致性通常通過(guò)硬件支持的緩存一致性協(xié)議來(lái)實(shí)現(xiàn)。一些常見(jiàn)的協(xié)議包括MESI(Modified, Exclusive, Shared, Invalid)協(xié)議和MOESI(Modified, Owned, Exclusive, Shared, Invalid)協(xié)議。這些協(xié)議定義了緩存狀態(tài)和處理器之間的通信規(guī)則,以確保數(shù)據(jù)的一致性。
總線鎖定:通過(guò)總線鎖定機(jī)制,可以實(shí)現(xiàn)對(duì)總線的獨(dú)占訪問(wèn),防止多個(gè)處理器同時(shí)修改內(nèi)存。這有助于減小緩存不一致性的可能性,但也可能引入性能瓶頸。
全局內(nèi)存一致性模型:一些系統(tǒng)采用全局內(nèi)存一致性模型,即所有處理器對(duì)內(nèi)存的訪問(wèn)看起來(lái)是按照某個(gè)全局的順序進(jìn)行的。這要求系統(tǒng)保證所有核心看到的內(nèi)存訪問(wèn)順序是一致的。
軟件同步和屏障:在并行編程中,軟件同步機(jī)制和屏障(barrier)可以用于確保在多個(gè)核心之間的操作順序。這有助于維護(hù)一致性,但也可能引入性能開(kāi)銷。
緩存一致性是多處理系統(tǒng)設(shè)計(jì)中的復(fù)雜問(wèn)題,需要綜合考慮性能、復(fù)雜性和一致性的要求。各種硬件和軟件技術(shù)都被用來(lái)解決這一問(wèn)題,以確保系統(tǒng)的正確運(yùn)行和高性能。
7、 雙核、雙芯、超線程的區(qū)別
雙(多)核:是指擁有兩(或多個(gè))物理核心(又稱為內(nèi)核),各種CPU核心都具有固定的邏輯結(jié)構(gòu),一級(jí)緩存、二級(jí)緩存、執(zhí)行單元、指令級(jí)單元和總線接口等邏輯單元,各個(gè)核心通過(guò)超傳輸技術(shù)讓CPU內(nèi)核直接跟外部I/O相連,集成內(nèi)存控制器技術(shù),使得每個(gè)內(nèi)核都有自己的高速緩存可用,都有自己的專用車道直通I/O,沒(méi)有資源爭(zhēng)搶的問(wèn)題。
雙(多)芯:僅僅將兩(或多個(gè))完整的CPU封裝在一起,連接到同一個(gè)前端總線上。由于總線的限制,兩個(gè)核心必然會(huì)產(chǎn)生總線爭(zhēng)搶,影響性能,而且這樣的核心越多,越容易加劇處理器爭(zhēng)用前端總線帶寬,成為提升系統(tǒng)性能的瓶頸,這是CPU架構(gòu)引發(fā)的先天故障,因此這種雙(多)芯實(shí)際上是“假多核”。雙芯有些像是北京郊區(qū)開(kāi)發(fā)的大型社區(qū)一樣,多個(gè)社區(qū)利用同一條城市快速路,人們出行(數(shù)據(jù)處理)肯定要遇到堵車的問(wèn)題。雙核則是為不同小區(qū)開(kāi)發(fā)專用車道,每個(gè)小區(qū)出行并不交叉(數(shù)據(jù)可以并行處理),并不會(huì)發(fā)生堵車現(xiàn)象。
HT技術(shù)(即超線程技術(shù)):HT技術(shù)是在處理器實(shí)現(xiàn)2個(gè)邏輯處理器(注意不是物理處理器),是充分利用處理器資源,類似虛擬CPU,讓系統(tǒng)誤認(rèn)為是雙核處理器。而雙核心處理器是集成2個(gè)物理核心,是實(shí)際意義上的雙核心處理器。舉個(gè)形象例子來(lái)說(shuō),前者好像是一個(gè)能用雙手同時(shí)炒菜的廚師,但一次只能把一碟菜放到桌面;而雙核心處理器好比2個(gè)廚師炒兩個(gè)菜,并同時(shí)把兩個(gè)菜送到桌面。

8、進(jìn)程和線程
進(jìn)程(Process) 和 線程(Thread) 是計(jì)算機(jī)中用于執(zhí)行任務(wù)的兩個(gè)基本概念
進(jìn)程
簡(jiǎn)單的來(lái)講進(jìn)程的概念主要有兩點(diǎn):第一,進(jìn)程是一個(gè)實(shí)體。每一個(gè)進(jìn)程都有它自己的地址空間,一般情況下,包括文本區(qū)域(text region)、數(shù)據(jù)區(qū)域(data region)和堆棧(stack region)。文本區(qū)域存儲(chǔ)處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)變量和進(jìn)程執(zhí)行期間使用的動(dòng)態(tài)分配的內(nèi)存;堆棧區(qū)域存儲(chǔ)著活動(dòng)過(guò)程調(diào)用的指令和本地變量。第二,進(jìn)程是一個(gè) “執(zhí)行中的程序”。程序是一個(gè)沒(méi)有生命的實(shí)體,只有處理器賦予程序生命時(shí),它才能成為一個(gè)活動(dòng)的實(shí)體,我們稱其為進(jìn)程。
進(jìn)程是程序的一次執(zhí)行過(guò)程,是動(dòng)態(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è)信號(hào)量),邏輯上不可執(zhí)行。每一個(gè)程序都至少有一個(gè)線程,若程序只有一個(gè)線程,那就是程序本身。進(jìn)程可以簡(jiǎ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)存空間和文件。線程之間的通信相對(duì)容易,因?yàn)樗鼈兛梢灾苯釉L問(wèn)共享的數(shù)據(jù)空間。
切換開(kāi)銷:
進(jìn)程:由于進(jìn)程有獨(dú)立的資源,進(jìn)程間切換的開(kāi)銷較大。進(jìn)程切換通常需要保存和恢復(fù)大量的狀態(tài)信息。
線程:線程切換的開(kāi)銷較小,因?yàn)樗鼈児蚕硐嗤牡刂房臻g,切換只需要保存和恢復(fù)少量的狀態(tài)信息。
并發(fā)性:
進(jìn)程:進(jìn)程間是相互獨(dú)立的,一個(gè)進(jìn)程的崩潰不會(huì)直接影響其他進(jìn)程。
線程:線程共享相同的地址空間,因此一個(gè)線程的錯(cuò)誤可能會(huì)影響到同一進(jìn)程內(nèi)的其他線程。
創(chuàng)建和銷毀:
進(jìn)程:創(chuàng)建和銷毀進(jìn)程的開(kāi)銷較大,通常需要分配和釋放大量的資源。
線程:創(chuàng)建和銷毀線程的開(kāi)銷相對(duì)較小,因?yàn)樗鼈児蚕磉M(jìn)程的資源。
獨(dú)立性:
進(jìn)程:進(jìn)程是獨(dú)立的執(zhí)行單位,進(jìn)程之間相對(duì)隔離。
線程:線程是進(jìn)程內(nèi)的執(zhí)行單元,線程之間共享相同進(jìn)程的資源,因此相對(duì)于進(jìn)程來(lái)說(shuō)更密切相關(guān)。
進(jìn)程和線程是操作系統(tǒng)中用于管理和執(zhí)行任務(wù)的兩個(gè)關(guān)鍵概念。線程的輕量級(jí)和共享資源的特性使其在某些情況下更適合實(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í)聽(tīng)音樂(lè)和瀏覽網(wǎng)頁(yè),作為整個(gè)系統(tǒng)唯一可以完成計(jì)算任務(wù)的 CPU 是如何保證兩個(gè)進(jìn)程“同時(shí)進(jìn)行”的呢?時(shí)間片輪轉(zhuǎn)調(diào)度!
每個(gè)進(jìn)程會(huì)被操作系統(tǒng)分配一個(gè)時(shí)間片,即每次被 CPU 選中來(lái)執(zhí)行當(dāng)前進(jìn)程所用的時(shí)間。時(shí)間一到,無(wú)論進(jìn)程是否運(yùn)行結(jié)束,操作系統(tǒng)都會(huì)強(qiáng)制將 CPU 這個(gè)資源轉(zhuǎn)到另一個(gè)進(jìn)程去執(zhí)行。為什么要這樣做呢?因?yàn)橹挥幸粋€(gè)單核 CPU,假如沒(méi)有這種輪轉(zhuǎn)調(diào)度機(jī)制,那它該去處理寫(xiě)文檔的進(jìn)程還是該去處理聽(tīng)音樂(lè)的進(jìn)程?無(wú)論執(zhí)行哪個(gè)進(jìn)程,另一個(gè)進(jìn)程肯定是不被執(zhí)行,程序自然就是無(wú)運(yùn)行的狀態(tài)。如果 CPU 一會(huì)兒處理 word 進(jìn)程一會(huì)兒處理聽(tīng)音樂(lè)的進(jìn)程,起初看起來(lái)好像會(huì)覺(jué)得兩個(gè)進(jìn)程都很卡,但是 CPU 的執(zhí)行速度已經(jīng)快到讓人們感覺(jué)不到這種切換的頓挫感,就真的好像兩個(gè)進(jìn)程在“并行運(yùn)行”。

9、多任務(wù)、多線程、多核。
多任務(wù)是指系統(tǒng)可以同時(shí)執(zhí)行多個(gè)任務(wù),比如你可以一邊下載、一邊聽(tīng)歌,Windows可以很好支持多任務(wù)的運(yùn)行,這和多核CPU并沒(méi)有多大關(guān)系。多線程則是指系統(tǒng)可以針對(duì)某項(xiàng)操作,調(diào)用多個(gè)CPU進(jìn)行并行處理。比如支持多線程的PS,在批處理多個(gè)操作(如濾鏡、摳圖)時(shí),系統(tǒng)就會(huì)調(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)通過(guò)快速切換執(zhí)行上下文來(lái)模擬同時(shí)運(yùn)行。
實(shí)現(xiàn)方式:多任務(wù)可以通過(guò)時(shí)間片輪轉(zhuǎn)、優(yōu)先級(jí)調(diào)度等方式實(shí)現(xiàn)。每個(gè)任務(wù)分配一小段時(shí)間,系統(tǒng)在不同任務(wù)之間切換,使用戶感覺(jué)好像它們?cè)谕瑫r(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)行,通過(guò)在不同線程之間進(jìn)行快速切換來(lái)模擬并發(fā)。多線程也可以在多核系統(tǒng)中發(fā)揮更大的優(yōu)勢(shì),每個(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)可以是對(duì)稱多處理(SMP)或非對(duì)稱多處理(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文章
20100瀏覽量
244190 -
cpu
+關(guān)注
關(guān)注
68文章
11193瀏覽量
221964 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7732瀏覽量
92481 -
多核處理器
+關(guān)注
關(guān)注
0文章
110瀏覽量
20582
原文標(biāo)題:CPU為什么需要多核?
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
創(chuàng)新架構(gòu)和電源技術(shù)協(xié)力助處理器提升能效
下一代GPU的預(yù)測(cè)瞬態(tài)仿真分析
Linux系統(tǒng)下超線程技術(shù)怎么提高處理器的性能?
華文慕課北大陸俊林計(jì)算機(jī)組成原理第十章課后習(xí)題解析 精選資料分享
cc2530單片機(jī)內(nèi)核的相關(guān)資料分享
cpu要不要和gpu搭配?
處理器系統(tǒng)接口部件的設(shè)計(jì)
處理器中非阻塞cache技術(shù)的研究
Linux超線程感知的調(diào)度算法研究
利用硬件加速器提高處理器的性能
Intel 3款威士忌湖處理器曝光,性能提升雙位數(shù)
華為表示鯤鵬920是目前業(yè)界最高性能ARM-based處理器
多內(nèi)核處理器應(yīng)用趨勢(shì)下的高性能視頻系統(tǒng)設(shè)計(jì)
GPU的預(yù)測(cè)瞬態(tài)仿真分析

如何提高處理器的性能
評(píng)論