當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]多核與多線程技術(shù)的區(qū)別到底在哪里?

毫無疑問的,“多核”、“多線程”此二詞已快成為當(dāng)今處理器架構(gòu)設(shè)計(jì)中的兩大顯學(xué),如同歷史戰(zhàn)國時(shí)代以“儒”、“墨”兩大派的顯學(xué),只不過當(dāng)年兩大治世思想學(xué)派是爭得你死我亡,而多核、多線程則是相互兼容并蓄,今日幾乎任何處理器都朝同時(shí)具有多核多線程的路線發(fā)展邁進(jìn)。

雖然兩詞到處可見,但可有人知此二者的實(shí)際差異?在執(zhí)行設(shè)計(jì)時(shí)又是以何者為重?到底是該多核優(yōu)先還是多線程提前?關(guān)于此似乎大家都想進(jìn)一步了解,本文以下試圖對此進(jìn)行個(gè)中差異的解說,并盡可能在不涉及實(shí)際復(fù)雜細(xì)節(jié)的情形下,讓各位對兩者的機(jī)制觀念與差別性有所理解。

行程早于線程

若依據(jù)信息技術(shù)的發(fā)展歷程,在軟件程序執(zhí)行時(shí)的再細(xì)分、再切割的小型化單位上,先是有行程(Process),之后才有線程(Thread),線程的單位比行程更小,一個(gè)行程內(nèi)可以有多個(gè)線程,在一個(gè)行程下的各線程,都是共享同一個(gè)行程所建立的內(nèi)存尋址資源及內(nèi)存管理機(jī)制,包括執(zhí)行權(quán)階、內(nèi)存空間、堆棧位置等,除此之外各個(gè)線程自身僅擁有少許因?yàn)閳?zhí)行之需的變量自屬性,其余都依據(jù)與遵行行程所設(shè)立的規(guī)定。

相對的,程序與程序之間所用的就是不同的內(nèi)存設(shè)定,包括分頁、分段等起始地址的不同,執(zhí)行權(quán)階的不同,堆棧深度的不同等,一顆處理器若執(zhí)行了A行程后要改去執(zhí)行B行程,對此必須進(jìn)行內(nèi)存管理組態(tài)的搬遷、變更,而這個(gè)搬遷若是在處理器內(nèi)還好,若是在高速緩存甚至是系統(tǒng)主存儲器時(shí),此種切換、轉(zhuǎn)移程序?qū)?zhí)行效能的損傷就非常大,因?yàn)橥瓿砂徇w、切換程序的相同時(shí)間,處理器早就可以執(zhí)行數(shù)十到上千個(gè)指令。

兩種路線的加速思維

所以,想避免此種切換的效率損耗,可以從兩種角度去思考,第一種思考就是擴(kuò)大到整體運(yùn)算系統(tǒng)的層面來解決,在一部計(jì)算機(jī)內(nèi)設(shè)計(jì)、配置更多顆的處理器,然后由同一個(gè)操作系統(tǒng)同時(shí)掌控及管理多顆處理器,并將要執(zhí)行的程序的各個(gè)程序,一個(gè)程序喂(也稱:發(fā)派)給一顆處理器去執(zhí)行,如此多顆同時(shí)執(zhí)行,每顆處理器執(zhí)行一個(gè)程序,如此就可以加快整體的執(zhí)行效率。

當(dāng)然!這種加速方式必須有一個(gè)先決條件,即是操作系統(tǒng)在編譯時(shí)就必須能管控、發(fā)揮及運(yùn)用多行程技術(shù),倘若以單行程的系統(tǒng)組態(tài)來編譯,那么操作系統(tǒng)就無法管控服務(wù)器內(nèi)一顆以上的處理器,如此就不用去談?wù)撚刹僮飨到y(tǒng)負(fù)責(zé)讓應(yīng)用程序的程序進(jìn)行同時(shí)的多顆同時(shí)性的執(zhí)行派送。

即便操作系統(tǒng)支持多程序,而應(yīng)用程序若依舊只支持單程序,那情形一樣是白搭,操作系統(tǒng)無法對單行程程序再行拆分,依然是只喂入單一顆處理器上去執(zhí)行,無從加速。

同時(shí)用多顆處理器來執(zhí)行,且每顆處理器執(zhí)行一個(gè)行程,這是一種加速法,另一種加速法則是:盡量不進(jìn)行內(nèi)存管理組態(tài)的切換,避免切換的效能折損,線程正是在此概念下所出現(xiàn)的產(chǎn)物。

不過,線程也要程序的搭配才能發(fā)揮,線程的概念出現(xiàn)與落實(shí)已是“C++看消、Java看長”的階段,所以C++只能通過API呼用的方式來支持與使用多線程,如此必須改寫過往的程序才行,改寫成有呼用到支持多線程的API才行。相對的,較C++晚問世的Java則是原生支持多線程,不用改寫也能發(fā)揮及運(yùn)用多線程的特性及其加速效益。

有了線程后,執(zhí)行的分割、切割更加細(xì)膩,線程機(jī)制不僅在多顆處理器的系統(tǒng)內(nèi)可以加速,在單顆處理器內(nèi)也一樣能獲得好處,在多顆處理器的系統(tǒng)上每顆處理器不僅可以單獨(dú)執(zhí)行一個(gè)程序,當(dāng)然也可以單獨(dú)執(zhí)行一個(gè)線程,而在單處理器系統(tǒng)上因?yàn)槭∪?nèi)存管理組態(tài)的搬遷,所以一樣可以加速,很明顯的,線程使執(zhí)行的發(fā)派、分配更加細(xì)膩與靈活化。

線程的副作用

線程雖有好用的優(yōu)點(diǎn),不過它也有副作用的缺點(diǎn),且此一優(yōu)缺是一體兩面無從分割,缺點(diǎn)是各個(gè)線程共享同一組內(nèi)存管理組態(tài)及機(jī)制,倘若有一個(gè)線程的執(zhí)行發(fā)生錯誤、瑕疵、或遭入侵等,其余在同一個(gè)行程內(nèi)的每個(gè)線程也都會遭受影響、波及,最嚴(yán)重是同一個(gè)行程內(nèi)的一切都錯亂、毀壞,由此可知:線程其實(shí)是帶有若干安全性犧牲的加速法。

此外有人會誤會,就字面上而言,多核表示同時(shí)間有多顆處理器在執(zhí)行,每顆處理器可以執(zhí)行一個(gè)行程或一個(gè)線程,但是一顆具有多線程能力的處理器并不表示它可以同時(shí)執(zhí)行多個(gè)線程,事實(shí)上在同一時(shí)間內(nèi)一顆具多線程功效的處理器也依然是執(zhí)行一個(gè)線程而已,只是多線程處理器的內(nèi)部可以將原有線程的相關(guān)信息及變量暫時(shí)擱擺,然后去執(zhí)行其它的線程,執(zhí)行完后在切換回原來執(zhí)行到一半的線程,甚至沒執(zhí)行完也可以切換回來,且整個(gè)切換過程都在處理器內(nèi)進(jìn)行,不用與快取與內(nèi)存進(jìn)行搬遷置換,如此以快速換線程執(zhí)行的方式來加速。

相對于此的,一顆不具多線程能力的處理器,執(zhí)行一個(gè)線程到一半若想改執(zhí)行另一個(gè)線程,就必須將原線程、現(xiàn)線程的相關(guān)內(nèi)容與信息搬遷到快取或內(nèi)存,然后自快取及內(nèi)存引入另一個(gè)線程,由于此一搬轉(zhuǎn)頗耗時(shí),所以多半選擇將原有的線程執(zhí)行完再引入下一個(gè)線程,如此在時(shí)間上可能還比較經(jīng)濟(jì)。然而無論一線程完整執(zhí)行后再執(zhí)行下一個(gè)線程,還是進(jìn)行線程的進(jìn)出搬遷轉(zhuǎn)移,都不會比具備多線程能力的處理器來的快速有效。

至此我們可以歸納整理:

1.多核、多處理器系統(tǒng)中的每顆處理器(每個(gè)核),同時(shí)間內(nèi)可以執(zhí)行各自不同的行程(或線程)。

2.一顆多線程能力的處理器,無論是支持二線程、四線程、八線程,這些線程都必須是在同一個(gè)行程內(nèi),所以一顆處理器(一個(gè)核)還是只能執(zhí)行一個(gè)行程,雙核處理器就能夠同時(shí)執(zhí)行兩個(gè)不同的行程(或線程),四核就可以同時(shí)不同的四個(gè)行程(或線程)。

3.倘若是執(zhí)行不支持多線程的程序,其執(zhí)行上的分拆最多只到行程而未到線程,那么每顆處理器內(nèi)的多線程功效就無從發(fā)揮,而這類的程序歷史較長久,相對的原生支持多線程的程序歷史較短,不過信息技術(shù)的腳步向來進(jìn)展快速,兩種不同層次的支持僅差距數(shù)年時(shí)間。

產(chǎn)業(yè)實(shí)際發(fā)展可為證明

真的是多核優(yōu)于、先于多線程嗎?關(guān)于此可通過產(chǎn)業(yè)實(shí)際發(fā)展做為應(yīng)證,Sun的UltraSPARC T1處理器(研發(fā)代號:Niagara)是八核四線程的設(shè)計(jì),但接續(xù)的UltraSPARC T2處理器(研發(fā)代號:Niagara 2)則是八核八線程的設(shè)計(jì),所以是核多、核優(yōu)先,然后再來拉跋、提升線程的執(zhí)行。

同樣的,IBM為Microsoft Xbox 360所設(shè)計(jì)的Xenon處理器,是個(gè)三核二線程的設(shè)計(jì),核數(shù)依然是高于線程數(shù),又如IBM、Sony、Toshiba三家業(yè)者合研的Cell處理器,現(xiàn)有第一代的Cell(研發(fā)代號:DD1)是九核,組態(tài)上是八核媒體(SPE)、一核泛用(PPE),新一代的Cell(研發(fā)代號:DD2)也針對PPE的部分進(jìn)行雙線程發(fā)展,如此再次表示核比線程重要,當(dāng)Cell僅進(jìn)行增一線程的擴(kuò)展改進(jìn)時(shí),而非再增一核,即可知這僅是一次小幅的改進(jìn)。

“多核”、“多線程”之外 還有“多令”、“多機(jī)”

最后,且讓我們談?wù)勁c多核、多線程不同加速走向的“多令”,“多令”是筆者發(fā)明的詞,指的是比執(zhí)行行程(Process)、線程(Thread)更基底層次的執(zhí)行指令(Instruction),多核的作法是盡可能在同時(shí)間內(nèi)執(zhí)行多個(gè)行程,多令則是盡可能在同時(shí)間內(nèi)執(zhí)行多個(gè)指令,學(xué)術(shù)上的VLIW與產(chǎn)業(yè)上的EPIC皆是多令理念下的架構(gòu)。

到目前為止多令并非不可行,但僅行于數(shù)字信號、圖像等處理,繪圖芯片、媒體處理器等多實(shí)行VLIW架構(gòu),然多令在泛用運(yùn)算上卻未見效益,至于科學(xué)研究之類的高效運(yùn)算也傾向使用更高層次的平行:多機(jī)(叢集、網(wǎng)格,執(zhí)行范疇與分配類同于線程、行程),看來多令、多程/線程、多機(jī)各有所用,端看運(yùn)用場合的適切性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉