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