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