打印
[RISC-V MCU 应用开发]

RISC-V架构能否引领物联网时代?

[复制链接]
3911|42
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1、RISC-V架构异军突起
CPU是计算机系统(包含PC、手机与各种智能设备等)的核心,而处理器架构是 CPU 的基石。纵观CPU架构发展历史,技术、生态、产业共同影的一个架构成败。

强如巅峰Intel也能在最初的64位之争中败在IA-64上,弱如Acorn公司(ARM前身)也能赶上嵌入式设备爆发的大潮,依靠低成本、低功耗的技术特点得以生存,最终发展建立起每年出货200多亿片的ARM帝国。



在依靠各大厂商支持的处理器架构之外,还存在一类从学校或者研究机构走出来的学院派开源处理器,它们中的先驱包含SPARC等大多已销声匿迹。直到最近几年的RISC-V,结合了各家RSIC架构前辈所长,又赶上了业界对开源硬件的期盼,才使得开源这个词在处理器架构方面有了巨大的声量。



RISC-V具有架构永久开源、指令集精简且高效、CPU微架构模块化、架构扩展性强等若干特征,这些特性完全契合物联网领域设备多元化、碎片化的场景。

因此RISC-V有能力提供更高性价比、更贴合具体应用的各种类型的CPU,有望成为未来物联网市场的首选。

本文结合各种行业趋势,深入阐述RSIC-V的技术特点,分析RISC-V在物联网行业的前景。
2、RISC-V技术特色
2.1、历史与影响
CPU架构指的是用于定义同一系列CPU产品的技术规范,规范包含指令集、内存模型、异常体系等CPU对软件体现的方方面面,是区分不同类型CPU的重要标示。CPU架构分成两大技术阵营,一个是intel、AMD为首的复杂指令集CPU(即CISC),另一个是以ARM、MIPS、RISC-V等为首的精简指令集CPU(即RISC)。目前市面上ARM架构和英特尔x86架构分别在移动端和桌面端占据了绝大部分市场份额。技术之外,ARM架构的收费授权模式与x86架构的封闭授权模式也成了鲜明的对比。但无论IP收费还是IP封闭都存在较高的门槛,这使得越来越多的芯片研发企业转向了开源架构RISC-V,其开源性和易用性为芯片市场打开了另一扇大门。



RISC-V 指令集是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),该项目在 2010 年始于加州大学伯克利分校。当时,创始者 Krste  Asanovic 教授需要使用一个微处理器指令集,然而 Intel 的 X86 架构指令集存在专利问题,ARM 架构指令集的授权又十分昂贵。在此背景之下,该研究团队决定从零开始设计一套全新的指令集,  RISC-V 就此诞生。这里的“V”包含两层意思,一是这是伯克利从 RISC I 开始设计的第五代指令集架构,二是它代表了变化(variation)和向量(vectors)。在此之前,伯克利研究团队已研制了四代精简指令处理器芯片,第一代处理器 RISC I 是于 1980 年在伯克利 Dave Patterson 教授主导的 Berkeley RISC 项目中设计而成,也是 RISC 名称的由来。

获巨头产业联盟支持,RISC-V 产业生态正进入快速发展期。2015 年,RISC-V 基金会成立,旨在聚合全球创新力量共同构建开放、合作的软硬件社区,打造 RISC-V 生态系统,推动RISC-V 指令集被更大范围的采用以及未来指令集体系结构的进一步演进。自 2015 年成立至今,RISC-V 基金会已拥有超过 327 家成员,成员中涵盖了半导体设计制造公司、系统集成商、设备制造商、军工企业、科研机构、高校等各类组织。其中,白金会员包括谷歌、微芯科技、美光、英伟达、恩智浦、高通、三星、西部数据等全球知名科技、半导体企业,金、银和审计员队列中亦有台积电、英飞凌、意法半导体、联发科等一众知名半导体企业。如今,RISC-V 已获得多家半导体巨头的支持,拥有大量开源实现和流片案例,覆盖从高性能计算到嵌入式等多种应用领域。并且,除了企业、机构等单位之外,多个国家亦对 RISC-V 做出了战略规划与部署。 下图可以看到RISC-V基金会为数众多的伙伴们。



2.2、架构特色
下面列出一些RISC-V的架构特色,这些特色或来源于其他RISC架构的优秀实践,或来自于RISC-V自身的创造性设计。用RISC-V设计者David Patterson的话说就是——“ 在过去 40 年的指令集的基础上取其精华,去其糟粕”。



2.2.1、指令集
RISC-V 指令使用模块化的设计,包括几个可以互相替换的基本指令集,以及额外可以选择的扩展指令集。基本指令集规范了指令跟他们的编码,控制流程,寄存器数目(以及它们的长度),存储器跟寻址方式,逻辑(整数)运算以及其他。只要有软件以及一个通用的编译器的支持,只用基本指令集就可以用来制作一个简单的通用型的电脑。

标准的扩展指令集可以搭配所有的基本指令集,以及其他扩展指令集,而不会冲突。很多RISC-V 电脑可能使用精简扩展指令集来降低电力消耗,程序的大小以及存储器的使用。




使用特权

评论回复
沙发
豌豆爹|  楼主 | 2023-7-5 11:43 | 只看该作者
2.2.2、寄存器集
RISC-V 有 32 个整数寄存器 (在嵌入式版本则是 16 个)。当浮点延伸集被实现的时候,还有 32 个浮点寄存器。除了“存储器访问指令”之外,一般指令“只能”寻址寄存器。

RISC-V 的通用寄存器中包含一个“零寄存器”(其值写入无效、读为零)。使用零寄存器可以让指令集设计更简单,减少硬件的指令形式。比方说,把“寄存器 X 复制到寄存器 Y” (MOV Y, X),可以使用“将寄存器 X 与 0 相加后,复制到寄存器 Y” (ADD Y, X, r0) 实现。

RISC-V 有提供“控制寄存器”及“状态寄存器”,但是 user-mode 程序只能访问用来“量测性能”及“浮点管理”的部分。

RISC-V 并没有指令可以存储和恢复多个寄存器。这些设计在 RISC-V 当中,被认为是不必要的,过于复杂的,可能过慢的设计(核心原因是这种设计会增加流水线的复杂度)。



2.2.3、存储器访问
RISC-V 只有 load 与 store 指令可以访问存储器。Load 与 Store 支持的数据长度从 8-bit 到架构的位宽(比如32bit或64bit)。访问并不需要对齐,不过如果有对齐的话可以增加性能。

Load 和 Store 指令可以直接访问常量、堆栈中的本地变量或是数据结构中的内容。寻址的方式是使用基底寄存器与 12-bit 的 signed 相对地址 (+- 2KB)。

内存顺序方面(Memory Order)RISC-V 不保证访问的顺序 --- 除非有像 FENCE 这样的指令出现。这意味着底层软件人员编写多核相关代码时需要十分小心。

RISC-V 固定是 little-endian。这稍稍降低了硬件的复杂度与成本,因为所有位宽的数据读取,都遵循一样的顺序。举例来说,RISC-V 的指令集都是从最低的那个 byte 开始解码(所有RISC-V指令的编码格式都将opcode放在了最低7个bit,因此硬件取指时总是先获取到opcode,方便流水线设计)。



2.2.4、立即数
RISC-V 读取 32-bit 常量与地址是透过设置 upper 20-bit 的指令达到的。LUI 指令 (Load Upper Immediate) 把(指令中的)20-bit 读取到寄存器的 31~12 bits 当中。与LUI搭配一条包含 12-bit 位移的 Load 与 Store 指令或是ADDI指令,便可以完成一个32bit立即数的获取。



另一个 AUIPC 指令,读取 upper 20-bit并加上 PC (Program Counter) ,之后存放到指定寄存器。同样搭配ADDI指令,可以方便的让 PIC 程序(Position-Independent Code)能够支持“相对于代码位置的 32-bit 地址”。



在 64-bit 架构下,LUI 与 AUIPC 运行的结果会被比特扩展至 64-bit (sign-extent)。

有些高速的 CPU 会把一些指令“融合”成一个指令。比如说:上述的 LUI 与 AUIPC 就很适合和 Load/Save 指令一起融合。



2.2.5、函数调用
RISC-V 的函数调用 JAL (Jump and Link) 把回传地址放在一个寄存器当中。它省下了一次访问推叠存储器,所以对性能友好。JAL 伴随一个 20-bit signed 位移。这个位移会被乘上 2 之后,加到 PC 当中。如果没有对齐到 32-bit 地址,CPU 会触发一个例外。

RISC-V 的 JALR (Jump and Link Register) 指令和 JAL 很像,但是他是把一个 12-bit 的相对位移,和某一个寄存器相加。(而 JAL 是用 20-bit 相加)

JALR 的指令格式有点像使用寄存器的 load/store 指令。搭配另一个设置高 20-bit 的基底寄存器,可以组成一个 32-bit 的地址(可以是绝对地址,例如 LUI; 或是相对于 PC 的地址,例如 AUIPC)。(使用零寄存器当基底寄存器,则是可以跳到 0 +- 2KB 的绝对地址)



2.2.6、分支预测
RISC-V 要求 CPU 实现“默认分支预测” (default branch prediction)。如果是往回跳跃 (例如: do {...} while (expr) 中的 expr 判断式),CPU 要预测跳跃会发生,也就是预测 expr “会”成立。如果是向前跳跃(例如:if (expr) {...} else {...} 中的 else 部分),CPU 预测这个跳跃会发生,也就是预测 expr “不会”成立。CPU 判断往回或向前的方法,是看指令中相对地址的最高比特,也就是有号数的部分 (signed bit):如果是 1,表示是负数,要往回跳跃。如果是 0,表示是正数,要向前跳跃。当然,复杂的 CPU 实现也可以加入更多的分支预测。



2.2.7、运算与逻辑
RISC-V 把数**算指令归类到一个很小的 I 子集当中,包括:加法,减法,位移,位操作,及比较跳跃。这些可以使用软件的方式去模拟其他大部分的 RISC-V 指令(atomic 运算是值得一提的例外)。RISC-V 目前没有“数开头有几个零”以及一些用来加速软件浮点运算的位操作。

整数乘法子集(M 子集)包括:有号数与无号数的乘法与除法。浮点子集包括单精度运算,以及类似于整数的“比较跳跃”。



2.2.8、原子内存操作
RISC-V 支持多个 CPU 与 thread。其标准存储器同步模式是“释放一致”原则。也就是说,读取和写入顺序可以重排,但是有些读取可以被设置成“获取”运算,会在其后的访问之前被运行,有些写入可以被当作“释放”运算,必须在其之前的访问的后面运行。

基本指令当中包含了最少的支持,使用 fence 指令来保证存储器访问顺序。尽管这很简单(fence r/rw 提供“获取”,fence rw/w 提供“释放”),组合起来还是可以很有效率。



3、RISC-V架构在物联网领域有哪些优势?
3.1、技术层面
结合物联网碎片化的特点,会发现RISC-V的很多设计思想十分贴合物联网灵活的需求。下面展开说明为什么说RSIC-V是非常适合物联网的CPU架构。



3.1.1、成本与简洁性
从前文的"架构特色"章节中可以看到大量的简洁化设计,比如没有复杂的多寄存器读写指令、合理的12+20bit立即数设计、去除条件执行指令、数**算归类到极小集等等。这些简化设计最终体现在芯片生产过程中,缩小了实现 RISC-V架构处理器的尺寸,进而压缩了成本。即使晶粒的大小只缩小 10%,成本也将以 1.2(1.1 2)倍的比例缩小。



鉴于成本对于复杂度的敏感性,RISC-V间接性带来更小的芯片面积之外,还能缩短芯片的设计和验证时间,而它们可能构成了芯片开发的大部分成本。这些成本必须算到芯片的成本当中。简洁性还能降低文档成本,让客户更容易了解如何使用RISC-V架构。



3.1.2、性能
评估一个CPU架构的性能,需要看做同样的事需要多少条指令以及CPU的频率。即使一个简单的CPU架构可能在每个程序执行的指令数方面多于复杂的CPU架构,但它可以通过 更快的时钟频率或更低的平均单条指令周期数(CPI)来弥补。



RISC-V从一开始就考虑到方便硬件实现更加高效的流水线,同时指令集的选择也更加高效。举例说明,运行 CoreMark 测试程序[Gal-On, Levy 2012](100000 次迭代)后,得到 ARM-32  Cortex-A9 的性能为18.15秒,相对应RISC-V的芯片则为14.26秒。



体现RISC-V性能优势的另一点是其支持32个通用寄存器,ARM-32 有 16 个寄存器,而 x86-32 只有 8 个。CPU架构领域寄存器可以被理解为第0级Cache,有了更多的寄存器可供选择,编译器编译出的指令会较少很多内存操作。



综合性能与成本可以发现,简洁如RISC-V这样的架构能催生出更小的芯片,使其具备很高的性价比。



3.1.3、可扩展性
随着摩尔定律(Moore’s law)的终结,对CPU性能进行重大改进的唯一途径是为特 定领域(例如深度学习,增强现实,组合优化,图形等)添加自定义指令。而RISC-V架构原生保留了大量的操作码空间,为厂商实现自定义的指令集留出了空间。



与之相对,ARM或者X86由于历史悠久,都需要兼容大量的历史遗留指令,导致指令码空间是否有限。x86由于指令长度可变,所以增加了很多很长的指令,为处理器的指令解析、cache、分支预测等带来沉重的负担。而ARM采用了同一个架构支持多个指令模式的做法(Thumb、Thumb-2、ARM),带来架构设计的复杂性。


使用特权

评论回复
板凳
豌豆爹|  楼主 | 2023-7-5 11:44 | 只看该作者
3.1.4、程序体积
嵌入式领域,程序大小直接影响存储空间的消耗进而严重影响成本。此外更小的程序还能减少指令缓存的未命中问题,从而节省了功耗(因为片外 DRAM 访问比片上 SRAM 访问耗能更多),也提高了性能。

物联网领域,设备对于成本与功耗都是非常敏感。因此CPU架构的代码长度是一个关键指标。在这方面RISC-V表现的十分优异。下图展现了RV32G,ARM-32,x86-32,RV32C和Thumb-2程序的相对大小。最后两个ISA是以短代码长度为 目标的。这些程序是使用GCC编译器的SPEC CPU2006基准测试。

可以看到:

Thumb2对比ARM节省1/3空间。16/32位的RISC-V与16/32位混合的Thumb2指令基本持平(由于RISC-V不存在模式切换、多数据存取等复杂性设计,能够持平已经是表现很出色了)
X86在指令密度上并没什么优势。虽然其使用了变长指令,但历史包袱导致其指令编码十分不合理,浪费了变长的优势。 (理论上变长指令集更适合缩短程序体积)
3.2、产业层面
跳出纯技术分析,会发现RISC-V的一些特性也非常适合物联网领域:

开源——随着国际贸易摩擦的加剧,自主可控的重要性不断凸显,RISC-V 开源免费,优势显著。
中立——RISC-V 已获得众多企业支持,而中国企业则是 RISC-V 指令集阵营的中坚力量。下图可以看到,RISC-V最核心的白金会员

中,已经有不少中国企业的身影。
模块化——通过一套统一的架构来满足各种不同的应用场景,覆盖物联网设备的多样性。


4、总结
尽管RSIC-V设计之初并非只针对物联网与嵌入式领域,但其轻量化、模块化、可扩展性、开源、高能耗比等技术特点都十分契合蓬勃发展的物联网行业需求。

如果能克服尚不够成熟的生态与芯片本身碎片化的风险(需要强力的基金会组织),依托产业联盟,构建完善生态,RISC-V 将会大有可为。

如今复杂形势使未来我国芯片的研发制造仍然存在变数。RISC-V有**在未来的CPU市场发挥重大的作用,中国的新一代信息技术、设计公司向RISC-V的转型,在大数据、5G、物联网、VR、边缘计算等领域应用RISC-V,或许可以使基于RISC-V的CPU在世界范围内成为主流。



引用
《NVIDIA收购ARM受抵制?RISC-V将崛起?》

《物联网下新生态,RISC-V 大有可为》

《RISC-V 手册》


————————————————
版权声明:本文为CSDN博主「HaaS技术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HaaSTech/article/details/116594396

使用特权

评论回复
地板
LOVEEVER| | 2023-11-29 20:10 | 只看该作者
现在很多是RISC-V架构的MCU

使用特权

评论回复
5
zerorobert| | 2023-12-2 15:01 | 只看该作者
RISC-V架构有潜力引领物联网时代。

使用特权

评论回复
6
minzisc| | 2023-12-2 15:27 | 只看该作者
RISC-V的应用前景非常广阔。

使用特权

评论回复
7
chenci2013| | 2023-12-2 16:19 | 只看该作者
RISC-V架构是否能够引领物联网时代还需要看其在实际应用中的表现。

使用特权

评论回复
8
usysm| | 2023-12-2 16:33 | 只看该作者
RISC-V未来将更适合物联网传感器芯片的开发,形成与x86架构固守PC和服务器市场、ARM架构固守移动设备、发展服务器市场的格局,而RISC-V则有望主导物联网设备市场。

使用特权

评论回复
9
wwppd| | 2023-12-2 17:02 | 只看该作者
RISC-V的CPU微架构模块化,使其具有强大的架构扩展性,可以适应各种不同的应用场景。

使用特权

评论回复
10
qiufengsd| | 2023-12-2 19:39 | 只看该作者
RISC-V架构是永久开源的,这意味着它可以不断发展和改进,而不受特定公司的控制。

使用特权

评论回复
11
cashrwood| | 2023-12-2 19:48 | 只看该作者
RISC-V还具备支持向量处理器的能力,为人工智能提供高性能处理器,优化不同的机器学习算法和应用。

使用特权

评论回复
12
timfordlare| | 2023-12-2 19:58 | 只看该作者
RISC-V是一种开源的指令集架构,它的设计目标是简单、高效和可扩展。RISC-V架构在处理器设计领域具有很大的潜力,可以为各种应用提供高性能和低功耗的解决方案。

使用特权

评论回复
13
elsaflower| | 2023-12-2 20:14 | 只看该作者
许多公司和机构已经开始使用RISC-V架构来设计物联网芯片,并应用于智能家居、传感器数据采集等领域。

使用特权

评论回复
14
1988020566| | 2023-12-2 20:48 | 只看该作者
RISC-V架构作为一种新兴的指令集架构,具有简洁、灵活、可扩展等特点,确实有潜力引领物联网时代。

使用特权

评论回复
15
uiint| | 2023-12-2 20:56 | 只看该作者
随着RISC-V架构的不断发展和完善,它有望成为未来物联网市场的首选架构之一,引领物联网时代的发展。

使用特权

评论回复
16
maudlu| | 2023-12-2 21:14 | 只看该作者
物联网设备通常需要低功耗、高效率和小型化,而RISC-V的模块化和可扩展性使得设计人员可以根据具体需求进行定制,同时开源和免费的特点也降低了开发成本。

使用特权

评论回复
17
backlugin| | 2023-12-2 21:29 | 只看该作者
RISC-V架构有望引领物联网时代的发展。

使用特权

评论回复
18
olivem55arlowe| | 2023-12-2 21:47 | 只看该作者
RISC-V架构能否引领物联网时代,这个问题涉及许多因素,包括技术发展、市场趋势、应用场景等。

使用特权

评论回复
19
deliahouse887| | 2023-12-2 22:05 | 只看该作者
RISC-V的开源特性降低了芯片设计的门槛,使得更多的企业和研究机构可以参与到物联网芯片的研发中,进一步推动物联网技术的发展。

使用特权

评论回复
20
mollylawrence| | 2023-12-2 22:13 | 只看该作者
RISC-V具有许多优势,但生态系统的成熟度和芯片本身的碎片化是限制其广泛应用的主要问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

500

主题

1896

帖子

4

粉丝