應(yīng)對RISC-V挑戰(zhàn):ARM CPU引入自定義指令功能!
今天(10月9日)凌晨,在美國加利福尼亞州圣何塞舉行的ARM TechCon 2019會議上,ARM首次宣布將在部分ARMv8 Cortex-M系列CPU內(nèi)核當(dāng)中引入自定義指令功能,即客戶能夠編寫自己的定制指令來加速其特定用例、嵌入式和物聯(lián)網(wǎng)應(yīng)用程序。
引入自定義指令功能
眾所周知,目前ARM陣營的芯片設(shè)計(jì)廠商僅有少數(shù)芯片設(shè)計(jì)廠商有購買ARMv8指令集授權(quán)來自行設(shè)計(jì)CPU內(nèi)核,比如蘋果的A系列處理器的CPU、華為的鯤鵬系列處理器的CPU等。
但是,絕大多數(shù)的芯片設(shè)計(jì)廠商都是采用的ARM已經(jīng)設(shè)計(jì)完成的內(nèi)核IP,即外界常說的公版內(nèi)核,各項(xiàng)性能指標(biāo)都是已經(jīng)完全定型了的。
那么在已經(jīng)定型了的CPU內(nèi)核的基礎(chǔ)上做加速,只能是依靠提升制程工藝來進(jìn)一步允許主頻的提升,或者是依靠處理器當(dāng)中的其他內(nèi)核,比如GPU、DSP、NPU等,但他們都是依靠總線來與CPU并行連接和交換數(shù)據(jù)的。
以CPU和GPU為例,它們之間通過系統(tǒng)總線交換數(shù)據(jù)的步驟如下:
“第一步:CPU從文件系統(tǒng)里讀出原始數(shù)據(jù),分離出圖形數(shù)據(jù),然后放在系統(tǒng)內(nèi)存中,這個(gè)時(shí)候GPU在發(fā)呆。
第二步:CPU準(zhǔn)備把圖形數(shù)據(jù)交給GPU,這時(shí)系統(tǒng)總線上開始忙了,數(shù)據(jù)將從系統(tǒng)內(nèi)存拷貝到GPU的顯存里。
第三步:CPU要求GPU開始數(shù)據(jù)處理,現(xiàn)在換CPU發(fā)呆了,而GPU開始忙碌工作。當(dāng)然CPU還是會定期詢問一下GPU忙得怎么樣了。
第四步:GPU開始用自己的工作間(GPU核心電路)處理數(shù)據(jù),處理后的數(shù)據(jù)還是放在顯存里面,CPU還在繼續(xù)發(fā)呆。
第五步:圖形數(shù)據(jù)處理完成后,GPU告訴CPU,我忙完了,準(zhǔn)備輸出或者已經(jīng)輸出。于是CPU開始接手,讀出下一段數(shù)據(jù),并告訴GPU可以歇會了,然后返回第一步?!?/p>
可以看到,其他內(nèi)核通過內(nèi)存映射與CPU進(jìn)行數(shù)據(jù)交換,都會遇到一個(gè)問題,那就是處理器的加速始終是受到總線速度的影響,并且會出現(xiàn)一定的延遲。
當(dāng)然,芯片設(shè)計(jì)廠商也可以選擇直接連接到CPU的協(xié)處理器的解決方案,但是畢竟是兩個(gè)獨(dú)立的模塊,數(shù)據(jù)交換也存在著延遲。
而ARM在CPU內(nèi)核當(dāng)中引入自定義指令功能,則意味著,芯片設(shè)計(jì)廠商可以創(chuàng)建自己的加速算法,然后直接在CPU上運(yùn)行,不需要像內(nèi)存映射解決方案那樣,需要通過總線來并行運(yùn)行,所以可以在一定程度上進(jìn)行加速,并進(jìn)一步降低延遲。
ARM表示,ARM自定義指令是采用安全的ARM TrustZone技術(shù)的ARMv8-M架構(gòu)演變的一部分,將成為ARM芯片合作伙伴創(chuàng)新的基礎(chǔ)。通過將他們獨(dú)特的用于特定應(yīng)用的加速算法添加到Cortex-M33等CPU中,將使得芯片設(shè)計(jì)人員有機(jī)會進(jìn)一步提高性能和效率。
“自定義指令功能是一種可以增加加速度的方法,雖然還沒有深入到CPU更核心的部分,但是為‘我們的客戶’提供了更高的靈活性,客戶可以編寫自己的指令,定義自己的指令,并由CPU來執(zhí)行這些指令?!盇RM汽車和物聯(lián)網(wǎng)業(yè)務(wù)高級總監(jiān)Thomas Ensergueix說到。
此外,Thomas Ensergueix還指出,隨著連接設(shè)備越來越多,更多ARM的客戶將希望針對其非常特定的用例優(yōu)化其處理器,通過創(chuàng)建自定義指令將可幫助他們更容易的實(shí)現(xiàn)性能和效率的提升,同時(shí)使得這些設(shè)備獲得更長的續(xù)航。
ARM還表示,自定義指令的加入,為處理器保留了編碼空間,以便設(shè)計(jì)人員可以輕松添加自定義數(shù)據(jù)路徑擴(kuò)展,可以針對特定應(yīng)用領(lǐng)域的計(jì)算做出優(yōu)化。
同時(shí)還可保持現(xiàn)有軟件生態(tài)系統(tǒng)的完整性。此功能與現(xiàn)有的協(xié)處理器接口一起使Cortex-M33 CPU可以使用針對機(jī)器學(xué)習(xí)(ML)和人工智能(AI)等邊緣計(jì)算用例進(jìn)行了優(yōu)化的各種類型的加速器進(jìn)行擴(kuò)展。
正如ARM所言,自定義指令的加入,為集成客戶工作負(fù)載加速提供了最低成本和低風(fēng)險(xiǎn)的途徑,因?yàn)楝F(xiàn)有CPU功能沒有大的改變,并且仍允許其客戶使用他們已經(jīng)使用的現(xiàn)有標(biāo)準(zhǔn)工具。
ARM首席執(zhí)行官Simon Segars也表示:“添加此功能后,我們也對如何支持工具流程進(jìn)行了很多思考?!薄斑@將使所有人都能更快地行動起來?!?/p>
而為了推動客戶采用新的設(shè)計(jì),ARM表示,從2020年開始,使用Cortex-M33內(nèi)核及之后的Cortex-M CPU內(nèi)核系列的所有客戶都可以免費(fèi)使用自定義指令功能。
客戶紛紛表態(tài)認(rèn)可
目前,ARM已經(jīng)與多家合作伙伴開始了基于支持自定義指令的處理器的研發(fā),其中就包括IAR Systems,NXP,Silicon Labs和STMicroelectronics。
IAR Systems總裁兼首席執(zhí)行官Stefan Skarin表示:“ SoC供應(yīng)商通常需要優(yōu)化的工具來擴(kuò)展其設(shè)計(jì)功能,而又不影響安全性,安全性或現(xiàn)有的開發(fā)工具投資(例如IAR Embedded Workbench)?!?“自定義指令為他們提供了一種簡單但功能強(qiáng)大的機(jī)制,可滿足他們的獨(dú)特要求,同時(shí)保持已存在流程的完整性和效率?!?/p>
恩智浦的Geoff Lees,SVP和GM表示:“ ARM的自定義指令功能使像恩智浦這樣的芯片供應(yīng)商能夠?yàn)榭蛻籼峁┽槍μ囟☉?yīng)用的指令優(yōu)化,以提高性能,降低功耗和靜態(tài)代碼大小,以適應(yīng)新興的嵌入式應(yīng)用。”“此外,所有這些改進(jìn)都在廣泛的Cortex-M生態(tài)系統(tǒng)中實(shí)現(xiàn),因此客戶的現(xiàn)有軟件投資得以最大化?!?/p>
為什么是Cortex-M系列?
前面我們有提到,自定義指令的優(yōu)勢主要是,芯片設(shè)計(jì)廠商可創(chuàng)建自己的加速算法,直接在CPU上運(yùn)行,不需要像內(nèi)存映射解決方案那樣,需要通過總線來并行運(yùn)行,所以可以在一定程度上進(jìn)行加速,并進(jìn)一步降低延遲。
那么為何ARM率先將自定義指令引入到Cortex-M33及后續(xù)Cortex-M系列CPU內(nèi)核當(dāng)中,而并沒有將其引入到Cortex-A系列內(nèi)核當(dāng)中呢?
我們都知道ARM Cortex-M系列CPU內(nèi)核主要應(yīng)用于對性能要求相對較低、對于功耗和成本要求較高的應(yīng)用領(lǐng)域,目前在物聯(lián)網(wǎng)領(lǐng)域應(yīng)用非常的廣泛。
Cortex-A系列內(nèi)核雖然功耗較高,但是性能也較高,目前手機(jī)、平板等對于性能要求較高的處理器,大都是基于ARM Cortex-A系列CPU內(nèi)核(數(shù)據(jù)顯示,全世界超過95%的智能手機(jī)和平板電腦都是基于ARM架構(gòu)的CPU內(nèi)核),并且同時(shí)還會集成GPU、DSP內(nèi)核,甚至NPU等專用AI內(nèi)核。因?yàn)椋鄬τ趫D形及AI計(jì)算來說,CPU并不是最佳的載體。而在CPU當(dāng)中加入自定義指令所帶來的性能的提升,相比加入GPU/DSP/NPU等內(nèi)核所帶來的性能提升要小很多,雖然后者的功耗和成本也大幅提升了,但并不像大多數(shù)物聯(lián)網(wǎng)設(shè)備那么敏感。
所以,我們不難看出,在CPU當(dāng)中加入自定義指令功能,對于Cortex-M系列CPU內(nèi)核所對應(yīng)的物聯(lián)網(wǎng)應(yīng)用領(lǐng)域幫助更大。因?yàn)榇蠖鄶?shù)的微控制當(dāng)中可能只有Cortex-M系列CPU內(nèi)核。
這也意味著,CPU自定義指令功能的加入,可以在無需增加其他的內(nèi)核,不增加成本和功耗的前提下,幫助客戶實(shí)現(xiàn)性能的提升(主要是AI性能)。
雖然目前不少的MCU在采用Cortex-M內(nèi)核的同時(shí),也開始加入了2D的GPU處理單元、DSP內(nèi)核等,來提升性能,但同時(shí)也帶來了成本和功耗的大幅提升。而CPU自定義指令的功能的加入,則可以在成本和功耗不變的基礎(chǔ)上,進(jìn)一步提升性能。
如果在CPU當(dāng)中加入自定義指令的功能,所帶來的性能的提升,即可滿足客戶的需求,那么則意味著客戶無需再去集成其他的內(nèi)核,成本和功耗將進(jìn)一步得到降低。
當(dāng)然,如果Cortex-A系列處理器如果也能夠引入自定義指令功能,那么也將是一個(gè)很好的助力,不過考慮到ARM Cortex-A系列在手機(jī)市場的強(qiáng)勢地位,以及ARMv8指令集授權(quán)的存在,再加上ARM也將推自己的AI IP內(nèi)核,這一塊可能沒那么容易。
此舉是為應(yīng)對RISC-V的挑戰(zhàn)?
對于ARM來說,受益于其在移動互聯(lián)網(wǎng)時(shí)代所采取的IP授權(quán)的模式以及與開放的安卓系統(tǒng)的結(jié)合,ARM架構(gòu)的處理器已經(jīng)成為了以智能手機(jī)為代表的移動互聯(lián)網(wǎng)設(shè)備的標(biāo)配。經(jīng)過多年的發(fā)展,ARM在移動互聯(lián)網(wǎng)領(lǐng)域的生態(tài)早已是根深蒂固。
但是,隨著物聯(lián)網(wǎng)時(shí)代的到來,由于物聯(lián)網(wǎng)設(shè)備品類繁多、應(yīng)用廣泛,市場非常的碎片化,而且很多物聯(lián)網(wǎng)設(shè)備本身即是“操作系統(tǒng)”,即是“應(yīng)用”,原本在移動互聯(lián)網(wǎng)設(shè)備上極為重要的操作系統(tǒng)、APP,到物聯(lián)網(wǎng)設(shè)備上已變得不再重要。而這也直接導(dǎo)致了物聯(lián)網(wǎng)處理器芯片的架構(gòu)出現(xiàn)了百花齊放的局面。ARM固有的強(qiáng)大的生態(tài)優(yōu)勢放在物聯(lián)網(wǎng)市場也不再是不可動搖。
特別是近兩年來,RISC-V架構(gòu)的興起,在物聯(lián)網(wǎng)市場對于ARM發(fā)起了強(qiáng)有力的挑戰(zhàn)。
因?yàn)镽ISC-V架構(gòu)是一種開源的處理器架構(gòu),因此芯片設(shè)計(jì)廠商可以免費(fèi)使用RISC-V架構(gòu),不需要像使用ARM的處理器IP那樣,需要一筆不菲的授權(quán)費(fèi)。而且,傳統(tǒng)的ARM處理器IP通常是不允許做擴(kuò)展的,但是RISC-V則可以方便的進(jìn)行擴(kuò)展。
這種可擴(kuò)展可定制化的特點(diǎn)對于場景驅(qū)動、性能功耗需求各不相同的AIoT芯片特別重要。顯然,對于物聯(lián)網(wǎng)芯片設(shè)計(jì)廠商來說,使用RISC-V架構(gòu)來做AIoT芯片,不僅可以更加的自主可控,還能夠更加的靈活,成本也將更低。
由于開源、免費(fèi)、精簡、模塊化及可擴(kuò)展等優(yōu)點(diǎn),RISC-V架構(gòu)受到了全球眾多芯片設(shè)計(jì)廠商的關(guān)注,特別是在國內(nèi)市場,在“自主可控”、“國產(chǎn)替代”趨勢之下,RISC-V更是備受追捧。
目前國內(nèi)的平頭哥、兆易創(chuàng)新、華米、樂鑫、芯來、格蘭仕等眾多廠商都有推出基于RISC-V架構(gòu)的芯片,此外華為也在積極的研發(fā)基于RISC-V架構(gòu)的芯片。
根據(jù)市場研究機(jī)構(gòu)IP Nest此前發(fā)布的IP市場分析報(bào)告顯示,2018年全球最大的IP提供商ARM的營收出現(xiàn)了3%的下滑(2017年下滑了6.8%)。IP Nest認(rèn)為其中一個(gè)主要原因應(yīng)該是來自于開源的RISC-V架構(gòu)的沖擊。
不過,需要指出的是,雖然RISC-V來勢洶洶,但是其在高性能這塊與ARM的Cortex-A系列內(nèi)核仍有較大差距,其優(yōu)勢更多還是在于免費(fèi)、低功耗、易擴(kuò)展等,這也使得目前RISC-V的應(yīng)用生態(tài)主要集中在物聯(lián)網(wǎng)領(lǐng)域。對于ARM的威脅也主要是在物聯(lián)網(wǎng)市場。
對此,ARM也針對性的采取了一些措施。
今年7月,ARM調(diào)整了芯片設(shè)計(jì)授權(quán)費(fèi)的收費(fèi)模式,推出了全新的ARM Flexible Access業(yè)務(wù)模式。通過ARM Flexible Access模式,如果芯片制造商使用ARM的一種設(shè)計(jì)方案投產(chǎn)芯片,那么他們每年需要支付7.5萬美元的費(fèi)用;如果他們每年支付20萬美元,那么就可以獲得不限數(shù)量的芯片設(shè)計(jì)方案。只有在芯片開始生產(chǎn)時(shí),他們才需要支付授權(quán)費(fèi)和專利費(fèi)。
不過,需要指出的是,在這個(gè)IP包當(dāng)中,CPU IP只包含了Cortex-A53/A35/A34/A32/A7/A5,Cortex-R52/R8/R5,Cortex-M0/M0+/M3/M4/M7/M23/M33等。
可以看到,高性能的Cortex-A系列處理器并未包含在其中,包括在其中的Cortex-A53/A35/A34/A32/A7/A5均可適用于物聯(lián)網(wǎng)市場。而主要針對于物聯(lián)網(wǎng)市場的Cortex-M系列IP基本都囊括在其中。
顯然,ARM的“下調(diào)IP授權(quán)費(fèi)”之舉主要針對的正是物聯(lián)網(wǎng)市場,主要應(yīng)對的也正是免費(fèi)開源的RISC-V架構(gòu)在物聯(lián)網(wǎng)市場對于ARM的沖擊,提升自身產(chǎn)品在物聯(lián)網(wǎng)市場的競爭力。
同樣,筆者也認(rèn)為,ARM將自定義指令功能引入Cortex-M33及后續(xù)Cortex-M系列CPU內(nèi)核當(dāng)中,也正是應(yīng)對RISC-V架構(gòu)在物聯(lián)網(wǎng)市場對于ARM的沖擊,彌補(bǔ)自身CPU內(nèi)核在可擴(kuò)展性上的劣勢,以適應(yīng)物聯(lián)網(wǎng)市場對于AIoT的需求。
國外Insight64的分析師Nathan Brookwood也表示,自定義指令似乎是對RISC-V的一種競爭性回應(yīng),RISC-V也允許在其架構(gòu)中使用定制指令。這次ARM在客戶的壓力下提供了類似的功能。
Moor Insights&Strategy分析師Patrick Moorhead也在一封電子郵件中也表示:RISC-V的可擴(kuò)展性是非常有吸引力的?,F(xiàn)在,ARM已在最需要的領(lǐng)域(如物聯(lián)網(wǎng)和較低級別的控制器)中添加了這些功能。并且可以在同一工具鏈中使用,這是一個(gè)很大的好處?!?/p>
另外值得一提的是,ARM今天還宣布將為Mbed OS建立一種治理模型。Mbed OS是用于運(yùn)行ARM Cortex-M芯片的嵌入式設(shè)備的開源操作系統(tǒng)。Mbed OS一直是開源的,但是Mbed OS合作伙伴治理模型將使ARM的Mbed硅合作伙伴在如何通過每月產(chǎn)品工作組會議等工具開發(fā)OS方面擁有更多發(fā)言權(quán)。諸如Analog Devices,Cypress,Nuvoton,NXP,Renesas,Realtek,Samsung和u-blox之類的合作伙伴已經(jīng)參加了該小組。
顯然,為了爭奪物聯(lián)網(wǎng)市場,ARM正在全方位的提升產(chǎn)品競爭力,同時(shí)加速生態(tài)布局,以回?fù)鬜ISC-V的挑戰(zhàn)。