詳解5個(gè)被誤解的CPU/GPU概念
提起多核與多線程,很多人首先會(huì)想到手機(jī)中的多核大戰(zhàn),而忘記了多線程技術(shù),從單核到雙核到四核再到8核,似乎多核才是處理器發(fā)展的王道,但是為什么到了8核之后多核之戰(zhàn)就打住了呢?多線程技術(shù)到底有沒(méi)有優(yōu)勢(shì)?
本文引用地址:http://www.biyoush.com/article/201808/386054.htm從英特爾1971年推出第一款商用微處理器4004到現(xiàn)在,處理器已經(jīng)走過(guò)了三十多年的歷程,目前,CPU處理器已經(jīng)從服務(wù)器、PC發(fā)展到嵌入式、工控、消費(fèi)、醫(yī)療等各個(gè)領(lǐng)域,但是從總體架構(gòu)上來(lái)看,CPU的架構(gòu)并沒(méi)有太大改善,不過(guò)也有一些新的架構(gòu)突破,作為一個(gè)一直跟CPU打交道的工程師,感覺(jué)很多人被一些概念誤導(dǎo),這里談?wù)?個(gè)被誤解的CPUGPU概念。
1、多核與多線程
提起多核與多線程,很多人首先會(huì)想到手機(jī)中的多核大戰(zhàn),而忘記了多線程技術(shù),從單核到雙核到四核再到8核,似乎多核才是處理器發(fā)展的王道,但是大家想過(guò)沒(méi)有?為什么到了8核之后多核之戰(zhàn)就打住了呢?多線程技術(shù)到底有沒(méi)有優(yōu)勢(shì)?
其實(shí)多核有個(gè)的缺陷就是隨著內(nèi)核數(shù)量的提升,性能的提升并不跟核數(shù)增加成正比,按照阿姆達(dá)定律:一個(gè)程序存在兩部分,只能串行計(jì)算的部分S,和能夠并行計(jì)算地部分P。兩部分之和是整個(gè)程序,因此S+P=1。這個(gè)程序如果在一個(gè)具有N個(gè)核心的處理器上運(yùn)行,那么和它在一個(gè)單核處理器上運(yùn)行相比,速度的提升是1/(S + P/N)。當(dāng)N趨近于無(wú)窮大時(shí)(即假設(shè)我們有無(wú)窮多個(gè)核心),速度提升的上限是1/S,即速度提升的上限取決于程序不能被并行計(jì)算的部分。
這個(gè)定律的結(jié)果就是,即便我們能夠有效地并行計(jì)算一個(gè)程序的 95%,剩下 5% 只能串行計(jì)算的部分限制了這個(gè)程序的運(yùn)行速度最多能提升 1/5%=20 倍。而現(xiàn)有的程序中很少能夠做到 95% 以上部分的并行計(jì)算。這張圖顯示了對(duì)于4種不同類型的程序(分別有50%,75%,90%,95%的部分能夠并行處理)的速度提升相對(duì)于處理器核心數(shù)量的關(guān)系,縱軸是相對(duì)于單核處理器速度提升的倍數(shù),橫軸是處理器核心的數(shù)量??梢钥吹?條曲線隨著處理器核心數(shù)量的增加逐漸趨于平坦。
現(xiàn)在的多核處理器還遠(yuǎn)遠(yuǎn)沒(méi)到擁有 1,000 個(gè)核心的時(shí)候。然而未來(lái)的某一天,不管是軟件還是硬件工程師們也許會(huì)滿頭大汗地向客戶解釋這個(gè)問(wèn)題:為什么最新的 1,000 核處理器比舊的 100 核處理器快不了多少?
所以多核的發(fā)展路子是有局限的,再來(lái)看看多線程技術(shù),多線程(英語(yǔ):multithreading),是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù)。具有多線程能力的計(jì)算機(jī)因有硬件支持而能夠在同一時(shí)間執(zhí)行多于一個(gè)線程,進(jìn)而提升整體處理性能。其實(shí)這個(gè)技術(shù)是非常好的,現(xiàn)在英特爾在PC處理器領(lǐng)域基本是走的多線程的路子。它最新的CPU都是四核8線程。
多線程技術(shù)可以在不顯著增加功耗和面積的條件下提供性能的穩(wěn)定增加,舉例來(lái)說(shuō),雙核和單核雙線程,每增加一個(gè)線程有50%穩(wěn)定線性增加,但是對(duì)于多核來(lái)說(shuō),雙核比單核有50%提升,但是三核只有30%提升,而四核只有20%的提升了。
而且從開(kāi)發(fā)難度來(lái)說(shuō),多線程開(kāi)發(fā)難度要弱于多核,多核是需要大量人工優(yōu)化的,后期需要芯片廠商和系統(tǒng)廠商投入大量的人力物力,而得益于英特爾的普及,軟件系統(tǒng)對(duì)多線程的支持已經(jīng)很成熟了,Linux早就支持多線程了,而且多線程開(kāi)發(fā)是CPU自動(dòng)分派任務(wù)不用人工參與,這樣可以提升開(kāi)發(fā)效率。
所以,未來(lái)CPU的發(fā)展除了從32位升級(jí)到64位,在多核多線程的應(yīng)用上不應(yīng)該割裂開(kāi),多核多線程可以提升CPU的能效,解決性能和功耗的矛盾。
2、MIPS CPU內(nèi)核與ARM CPU內(nèi)核
現(xiàn)在ARM處理器名氣很大,很多人認(rèn)為一定是ARM CPU內(nèi)核強(qiáng)于MIPS CPU內(nèi)核,其實(shí)這是個(gè)錯(cuò)誤認(rèn)識(shí),有時(shí)商業(yè)選擇中技術(shù)因素并不是主導(dǎo)因素,往往其他因素才是主導(dǎo)因素。
在2000年前后,MIPS處理器在中國(guó)的名聲也是非常大,畢竟它是RISC處理器架構(gòu)的發(fā)明者,但是,ARM處理器在2000年初進(jìn)入中國(guó)后,通過(guò)生態(tài)系統(tǒng)打敗了MIPS內(nèi)核。當(dāng)時(shí)把ARM帶入中國(guó)的譚軍博士在高校推廣ARM處理器,開(kāi)發(fā)很多教程,還到處舉辦培訓(xùn)和講座,另外,針對(duì)中國(guó)IC設(shè)計(jì)公司缺乏設(shè)計(jì)能力的現(xiàn)狀,ARM推出了針對(duì)中國(guó)IC半導(dǎo)體公司的授權(quán)策略和硬核模式,大大降低了CPU的開(kāi)發(fā)難度。
以前,CPU設(shè)計(jì)都是高高在上皇冠上的明珠,ARM把CPU設(shè)計(jì)變成了搭積木時(shí)的設(shè)計(jì),大量中國(guó)半導(dǎo)體IC設(shè)計(jì)公司采用了ARM內(nèi)核,而且ARM也構(gòu)建了比較好的生態(tài)系統(tǒng),借助手機(jī)大發(fā)展起來(lái)。而MIPS當(dāng)時(shí)在中國(guó)的生態(tài)系統(tǒng)做的不夠好,也不調(diào)整自己的授權(quán)模式,因此敗北是必然的。
不過(guò),自從MIPS被Imagination收購(gòu)后,反而有了大發(fā)展,我分析一個(gè)原因是Imagination強(qiáng)化了生態(tài)系統(tǒng)建設(shè),例如和包括博通、Cavium、Ikanos、Ineda Systems、Ingenic Semiconductor、Lantiq、Nevales Networks、PMC和高通等共同成立prpl基金會(huì)。這也是強(qiáng)化生態(tài)系統(tǒng)的節(jié)奏,而且有很多大牌公司加入。
Imagination除了強(qiáng)大的GPU外,還提供CPU,ISP、VPU、zigbee藍(lán)牙wifi,4G LTE等多種內(nèi)核,而且提供了針對(duì)物聯(lián)網(wǎng),云計(jì)算的IP產(chǎn)品,可以算是提供最全I(xiàn)P的公司,MIPS內(nèi)核一直以低功耗著稱,隨著生態(tài)系統(tǒng)構(gòu)建好,未來(lái)物聯(lián)網(wǎng)大爆發(fā),Imagination機(jī)會(huì)很多啊。
3、安全性誰(shuí)家強(qiáng)?
自從“棱鏡門”曝光后,安全已經(jīng)成為移動(dòng)通信設(shè)備和其他便攜式電子設(shè)備最關(guān)注的焦點(diǎn),如何提升設(shè)備的安全防護(hù)水準(zhǔn)?顯然,從芯片就開(kāi)始提供設(shè)備的安全防護(hù)是最有效的舉措。ARM公司于2003年提在嵌入式領(lǐng)域出了TrustZone技術(shù),為硬件系統(tǒng)提供安全保護(hù),這個(gè)技術(shù)安全嗎?
我看過(guò)Imagination Technologies公司CEO HosseinYassaie在接受媒體采訪時(shí)說(shuō)“打個(gè)比方說(shuō),這個(gè)TrustZone技術(shù)就像是銀行的一個(gè)保險(xiǎn)柜,你可以把認(rèn)為安全的應(yīng)用都放進(jìn)去,在以前,應(yīng)用都比較單一,這樣的安全防護(hù)也許有一定的作用,但是現(xiàn)在,手機(jī)等移動(dòng)設(shè)備都集成了很多應(yīng)用,這些都放在一個(gè)保險(xiǎn)柜中顯然安全風(fēng)險(xiǎn)就增大了很多。”
在CPU內(nèi)核的設(shè)計(jì)中集成系統(tǒng)安全性擴(kuò)展,是TrustZone在ARMv6內(nèi)核架構(gòu)下的重要擴(kuò)展特性之一,TrustZone分離了兩個(gè)并行執(zhí)行的環(huán)境:非安全的“普通”執(zhí)行環(huán)境;安全可信任的“安全”環(huán)境,但是問(wèn)題來(lái)了,如果一個(gè)應(yīng)用偽裝成“可信任的”進(jìn)入到你的安全區(qū)會(huì)怎么樣?其他應(yīng)用和數(shù)據(jù)還會(huì)安全嗎?
因此全局硬件虛擬化(Virtualization-VZ)技術(shù)才是一個(gè)真正安全的技術(shù),Hypervisor之于操作系統(tǒng)類似于操作系統(tǒng)之于進(jìn)程。它們?yōu)閼?yīng)用執(zhí)行提供獨(dú)立的VZ虛擬硬件平臺(tái),而VZ虛擬硬件平臺(tái)反過(guò)來(lái)又提供對(duì)底層機(jī)器的虛擬的完整訪問(wèn)。Imaginaition將把Hypervisor VZ全局硬件虛擬化技術(shù)從傳統(tǒng)服務(wù)器領(lǐng)域帶入現(xiàn)代嵌入式領(lǐng)域的每一個(gè)角落。
全局虛擬化就是每個(gè)應(yīng)用都是獨(dú)立的沙箱操作,兩個(gè)不同窗口都是不同的沙箱
這樣一來(lái),黑客攻破難度大很多很多,攻破一個(gè)完全虛擬的是非常難的,你都知道到它的原理去怎么攻破?
4、GPU未來(lái)拼什么?
PC時(shí)代,GPU基本都是完成3D圖形加速,而移動(dòng)互聯(lián)時(shí)代,隨著智能化的提升,GPU強(qiáng)大的并行能力可以把它的應(yīng)用拓展到更多領(lǐng)域,GPU應(yīng)該是其未來(lái)的發(fā)展方向,現(xiàn)在安卓已經(jīng)可以支持GPU通用計(jì)算。
我看很多評(píng)測(cè)機(jī)構(gòu)也在看GPU在手機(jī)平板等產(chǎn)品上的重要作用,GPU不僅游戲體驗(yàn),在照相處理、UI顯示、滑動(dòng)處理甚至安全方面都在發(fā)揮巨大作用,我看很多復(fù)雜應(yīng)用CPU也就開(kāi)到2、3個(gè)核而GPU是應(yīng)用的主力軍,所以,未來(lái)GPU的地位會(huì)提升很多。尤其隨著ARVR應(yīng)用的普及,更需要強(qiáng)大的GPU來(lái)支持的。
5、緩存、亂序和流水線的秘密
其實(shí)看到自從CPU誕生到現(xiàn)在,一直在解決CPU和內(nèi)存的瓶頸問(wèn)題,而且這個(gè)問(wèn)題一直沒(méi)有得到解決所以業(yè)界是通過(guò)增加緩存來(lái)解決,很多移動(dòng)處理器已經(jīng)增加了一級(jí)緩存二級(jí)緩存甚至三級(jí)緩存,所以大家在比較CPU性能的時(shí)候,別光看CPU的主頻,還要看CPU的緩存面積以及帶來(lái)的DDR功耗問(wèn)題,要看整體功耗。
如何衡量CPU的性能?其實(shí)很簡(jiǎn)單,執(zhí)行相同任務(wù)時(shí)功耗越低越好。而且要多比較,采取不同常用的場(chǎng)景來(lái)測(cè)試SOC功耗。
還有CPU常用的流水線、亂序等概念,流水線理論上是級(jí)數(shù)越多跑的越快,比如9級(jí)比7級(jí)流水線跑的快,但是如果執(zhí)行不夠,CPU就會(huì)空跑,形象地比喻就是吃飯時(shí)噎住了。
我覺(jué)得CPU未來(lái)解決性能問(wèn)題有幾個(gè)方向:
一個(gè)是,單核增加流水線,增加發(fā)射,從單發(fā)射到雙發(fā)射到四發(fā)射(發(fā)射越多執(zhí)行指令越多),但這個(gè)發(fā)展方向似乎走不通。
另一個(gè)方向就是增加多核多線程,增加并行度,這里再提提MIPS內(nèi)核,其實(shí)這個(gè)內(nèi)核架構(gòu)很好,沒(méi)有多核數(shù)量的限制,一些網(wǎng)絡(luò)設(shè)備都有上百個(gè)內(nèi)核的產(chǎn)品。
還有是可以亂序執(zhí)行,這是提升效率的方法,一般高端CPU有亂序執(zhí)行功能。
我個(gè)人認(rèn)為CPU的時(shí)代已經(jīng)過(guò)去了,未來(lái)是異構(gòu)SOC的時(shí)代,協(xié)處理器會(huì)大發(fā)展,什么VPU、DPU、ISP、無(wú)線IP等等會(huì)采用更多,比如聯(lián)發(fā)科6595中的4K視頻編解碼器就是一顆協(xié)處理器,它完成了非常復(fù)雜的功能。
評(píng)論