全面革新RISC-V 架构,隼瞻科技代码密度增强技术为嵌入式芯片创造更多可能

一、行业痛点

众所周知,在选择嵌入式 SoC 处理器时,面积和功耗通常是客户核心考虑的两大因素!常规的嵌入式系统程序大多需要储存在芯片上,如果系统代码密度低就需要更大的内存来承载。而与此同时、成本也相应增加。由此可见,代码密度决定了片上内存的规划容量,对芯片的面积、功耗和整体成本有着深远影响!

相比成熟的 Arm 架构,代码密度并非 RISC-V 传统强项。在 ArmCC 等商业编译器的加持影响下,某些应用场景中两者代码密度差距甚至达一倍之大, 因此,RISC-V 所需的存储器和相应成本也大大增加。

这些因素也正成为困扰客户、影响行业发展的一大难题!

wps_doc_0.png

(图1)Arm 芯片与传统RISC-V 芯片对比

二、研发思路

针对以上行业痛点,隼瞻追根溯源,面向市场推出全新的代码密度增强技术方案。

组合拳一:面向应用 优化的隼瞻处理器指令集

程序代码密度主要由处理器指令集、ABI、编译器、基础库、程序代码等部分决定,而处理器指令集(ISA)则是代码密度最根本的决定性因素。大多数嵌入式芯片, 例如 MCU,程序存储器占据了芯片50%以上的面积,采用更紧凑的指令集可以显著降低 SoC 面积。相关研究显示,嵌入式芯片有42%的能耗来自于取指,而只有6%用于执行实际的算术运算,一个更紧密的处理器指令集能产生更小的代码,从而减少从储存器取指令的消耗。

wps_doc_1.png

(图2)取指能耗占比图

而Arm在嵌入式成熟架构领域有着更为专业的系统设计,其中、小型 Armv-M 架构就是其典型代表作。因为它既包含了嵌入式常用操作指令的优化,同时兼备灵活、高密度的 Thumb-2 指令集,所以也顺理成章地成为当前嵌入式领域最受欢迎的架构。

RISC-V 在设计之初考虑的是嵌入式、通用计算和高性能计算等多个场景,并未针对嵌入式特有场景进行特定优化。

以一段 C 代码为例:int indexing(int *p, int offset) { return p[idx] },Arm 编译后只需要一条指令就能完成任务,但是传统的 RISC-V 指令需要3条。

wps_doc_2.png

(图3)Arm & 传统RISC-V指令集对比

为解决 RISC-V 架构在嵌入式领域的应用瓶颈,隼瞻科技针对代码密度增强技术开展了全方位革新,从最源头最核心的处理器指令集进行了大幅优化。

首先,隼瞻处理器对 RISC-V 社区多年来陆续引入的 B 扩展、Zc 扩展、Zicond 等一系列标准扩展提供了有效支持。

wps_doc_3.png

(图4)隼瞻指令集优化成效

虽然RISC-V 社区的标准扩展在一定程度上提升了代码密度,但其作用仍然十分有限。例如,在前文提到的数组寻址场景,标准扩展就无法覆盖。因此,隼瞻科技在支持常见的 Zc、B、Zicond 扩展指令集的基础上,将自主研发的代码密度增强指令 Xc扩展加入到处理器核中,从多个方面对代码密度进行 优化。

Xc 扩展致力于解决标准扩展忽视的场景,例如、在上述案例中用一条指令就能完成数组寻址,做到和Arm一样的指令密度和运行效率。

wps_doc_4.png

(图5)隼瞻自研Xc扩展显著提升代码密度

Xc 扩展不仅提升了代码密度,并且因为一条指令就能完成多条指令的功能,系统性能也得到了极大提升。此外,它还避免了在执行多条指令过程中不必要的寄存器分配,从而进一步优化了整体性能。

组合拳二:深耕编译器和基础库,隼瞻科技持续打造 优化的 RISC-V 工具链

除了处理器指令集,编译器和基础库也对代码密度的最终成果有着明显影响。

Armv-M 架构生态中,商业编译器会与内核厂家 合作,针对体系架构进行有效的指令调度,从而获得更高的代码密度,同时自带高度优化的 C 库和数学库。相关的开源编译器也因为该架构推向市场的时间较长,发展得比较成熟。

相对于成熟的Arm生态,RISC-V生态发展时间不长,优化尚不成熟,与Arm差距较为明显。

为此,隼瞻科技在追寻RISC-V生态完善的脚步中,针对自有芯片(如:Wing-M130 系列)研发出了WingGCC编译器,解决了 GCC 作为一个从小型嵌入式系统到大型 HPC 的通用编译器长期存在的、领域针对性不强的问题。

隼瞻WingGCC编译器完整匹配各种标准扩展指令和隼瞻自定义扩展指令,同时适配隼瞻专用高效微架构,能充分发挥处理器性能。同时,还能在兼顾性能的前提下,针对嵌入式场景使编译器重点偏向指令密度进行优化。

同样,针对嵌入式应用场景 优化的隼瞻 WingLib 基础库,则在开源环境通用的 newlib 基础上进行了大刀阔斧式的改革。通过聚焦嵌入式应用并精简非相关代码,基于专业的汇编及体系结构能力、精确排布重点 API 的指令序列,与自定义指令集协同提升代码密度!

微信图片_20240426165521.png

(图6)经过隼瞻的密度增强技术后代码空间的对比

通过上述一系列组合拳的优化,隼瞻科技的RISC-V处理器在Codesize方面已经与Arm架构不相上下。

Embench是嵌入式、物联网系统常用的Benchmark,重点关注处理器在不同应用场景下的Codesize。它由19个真实的程序组成,运行结束后将会产生各个程序的Codesize数据,用来评估平台和编译工具链的Codesize性能。传统RISC-V在Codesize方面并不占优势,Embench跑分长期处于被Arm压制的状况下。隼瞻科技通过自研编译工具链,已经实现在Codesize方面对Arm的反超!

wps_doc_6.png

(图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%。方案一经推出、立即得到了客户高度认可,双方迅速达成合作。为此,客户成功实现了低成本、高能效平替解决方案!

wps_doc_7.jpeg

(图8)隼瞻科技领先竞品33%,与Arm架构持平

四、展望未来

隼瞻科技自研的代码密度增强技术,结合处理器指令集、编译器和基础库,面向应用 优化的这一超级组合拳,为行业客户带来实实在在的平替助力,同时也为RISC-V生态发展提供源动力。

随着中国嵌入式芯片行业迅速发展,RISC-V生态将日渐丰富与强大!隼瞻科技将始终坚持独立探索、精益求精的态度,全力推动 RISC-V 生态走向成熟商用市场,为中国的嵌入式芯片行业创造更多可能性!!!

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )

Baidu
map