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