一、行業(yè)痛點(diǎn)
眾所周知,在選擇嵌入式 SoC 處理器時(shí),面積和功耗通常是客戶核心考慮的兩大因素!常規(guī)的嵌入式系統(tǒng)程序大多需要儲(chǔ)存在芯片上,如果系統(tǒng)代碼密度低就需要更大的內(nèi)存來(lái)承載。而與此同時(shí)、成本也相應(yīng)增加。由此可見(jiàn),代碼密度決定了片上內(nèi)存的規(guī)劃容量,對(duì)芯片的面積、功耗和整體成本有著深遠(yuǎn)影響!
相比成熟的 Arm 架構(gòu),代碼密度并非 RISC-V 傳統(tǒng)強(qiáng)項(xiàng)。在 ArmCC 等商業(yè)編譯器的加持影響下,某些應(yīng)用場(chǎng)景中兩者代碼密度差距甚至達(dá)一倍之大, 因此,RISC-V 所需的存儲(chǔ)器和相應(yīng)成本也大大增加。
這些因素也正成為困擾客戶、影響行業(yè)發(fā)展的一大難題!
(圖1)Arm 芯片與傳統(tǒng)RISC-V 芯片對(duì)比
二、研發(fā)思路
針對(duì)以上行業(yè)痛點(diǎn),隼瞻追根溯源,面向市場(chǎng)推出全新的代碼密度增強(qiáng)技術(shù)方案。
組合拳一:面向應(yīng)用深度優(yōu)化的隼瞻處理器指令集
程序代碼密度主要由處理器指令集、ABI、編譯器、基礎(chǔ)庫(kù)、程序代碼等部分決定,而處理器指令集(ISA)則是代碼密度最根本的決定性因素。大多數(shù)嵌入式芯片, 例如 MCU,程序存儲(chǔ)器占據(jù)了芯片50%以上的面積,采用更緊湊的指令集可以顯著降低 SoC 面積。相關(guān)研究顯示,嵌入式芯片有42%的能耗來(lái)自于取指,而只有6%用于執(zhí)行實(shí)際的算術(shù)運(yùn)算,一個(gè)更緊密的處理器指令集能產(chǎn)生更小的代碼,從而減少?gòu)膬?chǔ)存器取指令的消耗。
(圖2)取指能耗占比圖
而Arm在嵌入式成熟架構(gòu)領(lǐng)域有著更為專業(yè)的系統(tǒng)設(shè)計(jì),其中、小型 Armv-M 架構(gòu)就是其典型代表作。因?yàn)樗劝饲度胧匠S貌僮髦噶畹膬?yōu)化,同時(shí)兼?zhèn)潇`活、高密度的 Thumb-2 指令集,所以也順理成章地成為當(dāng)前嵌入式領(lǐng)域最受歡迎的架構(gòu)。
RISC-V 在設(shè)計(jì)之初考慮的是嵌入式、通用計(jì)算和高性能計(jì)算等多個(gè)場(chǎng)景,并未針對(duì)嵌入式特有場(chǎng)景進(jìn)行特定優(yōu)化。
以一段 C 代碼為例:int indexing(int *p, int offset) { return p[idx] },Arm 編譯后只需要一條指令就能完成任務(wù),但是傳統(tǒng)的 RISC-V 指令需要3條。
(圖3)Arm & 傳統(tǒng)RISC-V指令集對(duì)比
為解決 RISC-V 架構(gòu)在嵌入式領(lǐng)域的應(yīng)用瓶頸,隼瞻科技針對(duì)代碼密度增強(qiáng)技術(shù)開(kāi)展了全方位革新,從最源頭最核心的處理器指令集進(jìn)行了大幅優(yōu)化。
首先,隼瞻處理器對(duì) RISC-V 社區(qū)多年來(lái)陸續(xù)引入的 B 擴(kuò)展、Zc 擴(kuò)展、Zicond 等一系列標(biāo)準(zhǔn)擴(kuò)展提供了有效支持。
(圖4)隼瞻指令集優(yōu)化成效
雖然RISC-V 社區(qū)的標(biāo)準(zhǔn)擴(kuò)展在一定程度上提升了代碼密度,但其作用仍然十分有限。例如,在前文提到的數(shù)組尋址場(chǎng)景,標(biāo)準(zhǔn)擴(kuò)展就無(wú)法覆蓋。因此,隼瞻科技在支持常見(jiàn)的 Zc、B、Zicond 擴(kuò)展指令集的基礎(chǔ)上,將自主研發(fā)的代碼密度增強(qiáng)指令 Xc擴(kuò)展加入到處理器核中,從多個(gè)方面對(duì)代碼密度進(jìn)行深度優(yōu)化。
Xc 擴(kuò)展致力于解決標(biāo)準(zhǔn)擴(kuò)展忽視的場(chǎng)景,例如、在上述案例中用一條指令就能完成數(shù)組尋址,做到和 Arm 一樣的指令密度和運(yùn)行效率。
(圖5)隼瞻自研Xc擴(kuò)展顯著提升代碼密度
Xc 擴(kuò)展不僅提升了代碼密度,并且因?yàn)橐粭l指令就能完成多條指令的功能,系統(tǒng)性能也得到了極大提升。此外,它還避免了在執(zhí)行多條指令過(guò)程中不必要的寄存器分配,從而進(jìn)一步優(yōu)化了整體性能。
組合拳二:深耕編譯器和基礎(chǔ)庫(kù),隼瞻科技持續(xù)打造深度優(yōu)化的 RISC-V 工具鏈
除了處理器指令集,編譯器和基礎(chǔ)庫(kù)也對(duì)代碼密度的最終成果有著明顯影響。
Armv-M 架構(gòu)生態(tài)中,商業(yè)編譯器會(huì)與內(nèi)核廠家深度合作,針對(duì)體系架構(gòu)進(jìn)行有效的指令調(diào)度,從而獲得更高的代碼密度,同時(shí)自帶高度優(yōu)化的 C 庫(kù)和數(shù)學(xué)庫(kù)。相關(guān)的開(kāi)源編譯器也因?yàn)樵摷軜?gòu)推向市場(chǎng)的時(shí)間較長(zhǎng),發(fā)展得比較成熟。
相對(duì)于成熟的Arm生態(tài),RISC-V生態(tài)發(fā)展時(shí)間不長(zhǎng),優(yōu)化尚不成熟,與Arm差距較為明顯。
為此,隼瞻科技在追尋RISC-V生態(tài)完善的腳步中,針對(duì)自有芯片(如:Wing-M130 系列)研發(fā)出了WingGCC 編譯器,解決了 GCC 作為一個(gè)從小型嵌入式系統(tǒng)到大型 HPC 的通用編譯器長(zhǎng)期存在的、領(lǐng)域針對(duì)性不強(qiáng)的問(wèn)題。
隼瞻WingGCC 編譯器完整匹配各種標(biāo)準(zhǔn)擴(kuò)展指令和隼瞻自定義擴(kuò)展指令,同時(shí)適配隼瞻專用高效微架構(gòu),能充分發(fā)揮處理器性能。同時(shí),還能在兼顧性能的前提下,針對(duì)嵌入式場(chǎng)景使編譯器重點(diǎn)偏向指令密度進(jìn)行優(yōu)化。
同樣,針對(duì)嵌入式應(yīng)用場(chǎng)景深度優(yōu)化的隼瞻 WingLib 基礎(chǔ)庫(kù),則在開(kāi)源環(huán)境通用的 newlib 基礎(chǔ)上進(jìn)行了大刀闊斧式的改革。通過(guò)聚焦嵌入式應(yīng)用并精簡(jiǎn)非相關(guān)代碼,基于專業(yè)的匯編及體系結(jié)構(gòu)能力、精確排布重點(diǎn) API 的指令序列,與自定義指令集協(xié)同提升代碼密度!
(圖6)經(jīng)過(guò)隼瞻的密度增強(qiáng)技術(shù)后代碼空間的對(duì)比
通過(guò)上述一系列組合拳的優(yōu)化,隼瞻科技的RISC-V處理器在Codesize方面已經(jīng)與Arm架構(gòu)不相上下。
Embench是嵌入式、物聯(lián)網(wǎng)系統(tǒng)常用的Benchmark,重點(diǎn)關(guān)注處理器在不同應(yīng)用場(chǎng)景下的Codesize。它由19個(gè)真實(shí)的程序組成,運(yùn)行結(jié)束后將會(huì)產(chǎn)生各個(gè)程序的Codesize數(shù)據(jù),用來(lái)評(píng)估平臺(tái)和編譯工具鏈的Codesize性能。傳統(tǒng)RISC-V在Codesize方面并不占優(yōu)勢(shì),Embench跑分長(zhǎng)期處于被Arm壓制的狀況下。隼瞻科技通過(guò)自研編譯工具鏈,已經(jīng)實(shí)現(xiàn)在Codesize方面對(duì)Arm的反超!
(圖7)隼瞻科技Wing-M130與Arm Cortex-M3在Embench上的對(duì)比
遵循 ASIP(Application-Specific Instruction-set Processor,面向應(yīng)用的定制指令集處理器)開(kāi)發(fā)思路,隼瞻科技還能針對(duì)應(yīng)用相關(guān)的代碼進(jìn)行優(yōu)化,達(dá)到更高的代碼密度。
以計(jì)算兩張圖像的 alpha 混合為例,以往需要幾十條指令才能完成的 RGB 三色像素加減乘除復(fù)合計(jì)算,現(xiàn)在通過(guò)隼瞻WingStuido專用處理器設(shè)計(jì)平臺(tái),基于選定的基礎(chǔ)處理器,擴(kuò)展一條單周期指令就可以完成,在提升計(jì)算效率的同時(shí),極大減少了程序代碼空間。
三、應(yīng)用場(chǎng)景
近期,有客戶希望找到一顆 RISC-V 處理器對(duì) Arm Cortex-M3 進(jìn)行平替。在嘗試了市面上常見(jiàn)的幾家解決方案后,均發(fā)現(xiàn)代碼尺寸膨脹較大,在某些場(chǎng)景下甚至超過(guò)了100%。由于“代碼密度”問(wèn)題造成的成本增加,在RISC-V替換Arm CPU過(guò)程中始終是一道難以逾越的鴻溝……
結(jié)合上述訴求,隼瞻科技針對(duì)客戶的兩個(gè)主要業(yè)務(wù)場(chǎng)景、基于 WingGCC進(jìn)行初步評(píng)估,迅速實(shí)現(xiàn)了比市面上常見(jiàn)解決方案更小的代碼尺寸。
使用支持隼瞻代碼密度增強(qiáng)指令的編譯器、搭配隼瞻獨(dú)家編譯的 WingLib 庫(kù),最終成功實(shí)現(xiàn)與 Arm Cortex-M3 代碼尺寸相比在98%和101%的優(yōu)異成績(jī)!相對(duì)競(jìng)品、領(lǐng)先優(yōu)勢(shì)超過(guò)33%。方案一經(jīng)推出、立即得到了客戶高度認(rèn)可,雙方迅速達(dá)成合作。為此,客戶成功實(shí)現(xiàn)了低成本、高能效平替解決方案!
(圖8)隼瞻科技領(lǐng)先競(jìng)品33%,與Arm架構(gòu)持平
四、展望未來(lái)
隼瞻科技自研的代碼密度增強(qiáng)技術(shù),結(jié)合處理器指令集、編譯器和基礎(chǔ)庫(kù),面向應(yīng)用深度優(yōu)化的這一超級(jí)組合拳,為行業(yè)客戶帶來(lái)實(shí)實(shí)在在的平替助力,同時(shí)也為RISC-V生態(tài)發(fā)展提供源動(dòng)力。
隨著中國(guó)嵌入式芯片行業(yè)迅速發(fā)展,RISC-V生態(tài)將日漸豐富與強(qiáng)大!隼瞻科技將始終堅(jiān)持獨(dú)立探索、精益求精的態(tài)度,全力推動(dòng) RISC-V 生態(tài)走向成熟商用市場(chǎng),為中國(guó)的嵌入式芯片行業(yè)創(chuàng)造更多可能性?。?!
審核編輯 黃宇
-
soc
+關(guān)注
關(guān)注
38文章
4199瀏覽量
218875 -
嵌入式芯片
+關(guān)注
關(guān)注
4文章
230瀏覽量
27721 -
RISC-V
+關(guān)注
關(guān)注
45文章
2322瀏覽量
46435
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論