RISC-V能成为八位MCU的选择吗?

发布者:糖三角最新更新时间:2022-01-14 来源: 半导体行业观察关键字:RISC-V  MCU 手机看文章 扫描二维码
随时随地手机看文章
微控制器几乎无处不在,但 RISC-V 能否满足这个市场的需求?小到足以取代 8 位处理器吗?什么可以帮助人们迁移到更现代的处理器架构?


RISC-V定义了一个 32 位处理器指令集架构(ISA),它是开源的并且可以以多种方式自由实现。它被吹捧为一个非常小而高效的架构,同时被定义为易于扩展。许多附加组件已经是经过批准的扩展,其中大量在 2021 年 12 月的 RISC-V 峰会上亮相。

但问题依然存在。基本规格是否足够小?不是添加额外的功能,而是需要删除一些东西?它作为微控制器有用吗?根据多份行业报告,2020 年 8 位微控制器市场约为 80亿美元,预计在可预见的未来将增长 4% 至 5%。2014 年,8 位仍然是最大的销量,占销售额的 39.7%,而 32 位紧随其后,为 38.5%。

如今,16 位市场已成为最大的市场,占有 48.8% 的份额。8 位正在逐渐失去市场份额,但这将是 16 位而不一定是 32 位。其中大部分是分立芯片,小型处理器显然有一个庞大且可持续的市场。

无处不在的控制器


复杂的设备可能包含许多控制器,但它们很少受到关注。Imperas Software首席执行官 Simon Davidmann 表示:“有许多芯片包含多个大型 Arm 内核,被用作应用处理器,但你也会在其中发现许多小得多的处理器。” “它们被用来做各种各样的事情,其中许多很可能是基于 RISC-V 的小众处理器。没有人真正知道它们是什么,因为它们是隐藏的。”

这些处理器不必遵守相同的规则。Arteris IP的研究员兼系统架构师 Michael Frank 说:“您将始终拥有几个 CPU 来执行一般处理并协调系统周围的数据移动。” “他们做了所有需要图灵完备和可编程的事情。但是你有一些专门的东西。这是硅面积的最佳利用,因为现在您可以省略算法中不需要的任何东西。”

微控制器的其他大型市场包括汽车、HVAC、物联网和医疗。一个 RISC-V 内核可能只需要 20,000 个门,那么当整个芯片可能有数百万个门时,为什么有人会担心尝试进一步优化它呢?在某些情况下,成本是最关键的因素,这意味着可能的面积最小。对其他人来说,这就是关键。对于必须使用单个电池持续数月或数年的设备,任何无所作为的逻辑都被视为必须消除的浪费。

最小的 RISC-V


RISC-V 基数很小。它仅包含每个人都必须执行的 47 条指令。相比之下,x86 为 1,503,Arm 约为 500。它使用最简单的加载/存储架构,这意味着所有操作都在内部寄存器上执行,并且有专门的指令在寄存器和内存之间进行传输。

“RISC-V 从一个简单的整数指令集开始,基本上,已经是处理器的基本结构,”Arteris 的 Frank 说。“你可以从中剥离的东西不多。最简单的 RISC-V 处理器的实现具有 32 位整数。这就是过去的微控制器。我看不出你为什么要进一步减少它的原因。伯克利团队创建了一个很好的分层和可扩展架构。他们从之前所做的所有事情中吸取了教训,并通过构建许多变体以及集成到架构中的扩展,我总是将其视为基础层,而不是可以削减的东西。”

在指令集中,可以定义寄存器文件的大小。“RISC-V 的一个非常好的方面是你可以减少它,”Imperas 的 Davidmann 说。“作为一个组织,RISC-V 试图做的是帮助人们做这样的事情。例如,有减少寄存器数量的 E 版本。通常是 32,但这个版本只定义了 16。”

例如,SiFive 最近讨论了 RV32E 的实现,该实现可以配置为仅在 13,500 个门中实现。ZERO-RISCY 是作为 PULP 平台的一部分开发的用于节能计算的核心,具有消耗 11,600 个门的两级流水线实现。

该规范还允许定义简单的控制器,这些控制器不需要大量的逻辑来围绕核心。“他们试图做到这一点,你甚至可以在没有特权模式功能和控制/状态寄存器的情况下设计它,这样你就可以把它归结为一个非常简单的控制器,”Davidmann 说。“这仍然允许你使用标准汇编器,它仍然是一个 RISC-V,但它不会很快完成你的浮点运算。它只是一个非常小的控制器。”

其中一些减少来自该标准的早期工作。Axiomise 的创始人兼首席执行官 Ashish Darbari 说:“剥离大型设计以获得更小的处理器很有价值的原因可能有很多。” “已经有来自公开处理器的例子。例如,来自 PULP 平台组的两个 RISC-V 内核 ZERO-RISCY 和 Ibex 是 RI5CY 的精简版本,后来成为 cv32e40p。在这种特定情况下,RI5CY 具有不属于标准 RISC-V ISA 的自定义指令。”

似乎没有考虑的一种减少涉及字长。“如果你减小字长,你就会失去 RISC-V 处理器的功能和美感,你可以在相同的寄存器中,在相同的 ALU 中进行地址计算、整数计算,所有事情,”弗兰克说。“在减少 RISC-V 之后,很难保留有用的东西。RISC-V 的美妙之处在于它有一个工具链,如果你开始切割东西,你就只能靠自己了。”

具有讽刺意味的是,延期可能会产生储蓄。Codasip的首席技术官 Zdeněk Přikryl 说:“如果您的芯片上有一堆处理器,那么每个处理器都可以针对特定任务进行优化或定制。” “它可以是人工智能,也可以是安全性,也可以是任何东西。我们使处理器能够以高级架构描述语言设计,通过它我们捕获指令集,可以称为架构视图,以及微架构视图,这基本上是 ISA 的实现。由于我们在高级架构语言中拥有这一单一描述,因此我们能够生成编译器、汇编器、反汇编器、模拟器,最终生成 RTL。”

一种这样的扩展是压缩指令集,它使代码空间更小。压缩指令允许您将两条指令放入一个 32 位字中。这减少了所需的程序内存量,尽管它略微增加了处理器的复杂性。一种说法是实现这一点需要 400 个门。这可能不仅仅是由内存面积的减少所弥补的。其他尝试这样做,例如 Arm Thumb 格式,本质上是不同的指令集。

因此,优化的核心可能并不总是意味着最小的。“我们有一位客户开始调查已批准的 RISC-V 扩展,试图找到最佳折衷方案,”Codasip 的 Přikryl 说。“他们从基线开始,然后添加扩展并研究不同扩展的组合。他们不仅关注性能,还关注大小和内存占用。关键之一是处理器是系统的一部分,而您正在尝试优化该系统。在这种情况下,拥有高效的代码很重要,因为当您在硅片中实现子系统时,您的指令存储器是能源和电力的主要消耗者之一。在优化过程中,我们设法将代码大小减少了大约三倍。”

进行更改确实会给流程带来一些复杂性。“任何人都可以使用 RISC-V 并对其进行更改,”Davidmann 说。“他们可以添加比特,拿走他们喜欢的比特,扔掉他们不喜欢的比特。只要是针对深度嵌入式系统,没有人会关心他们完成了什么。没有人会看到它。这就是为什么一开始没有人真正关心兼容性和合规性的原因。”

修改后的内核确实必须经过验证。Axiomise 的 Darbari 说:“沿着这条道路前进的最大挑战是确定 delta 更改对核心的整体功能有何影响,以及确定 delta 是否按照预期进行。” “这些是正式方法的最佳点,可以通过检查精简内核的架构合规性与正式验证 RISC-V 内核的应用程序formalISA 中的一组正式指定的架构属性来发现差异。”


结论


指定的 RISC-V ISA 是一个最小但完整的处理器架构,可以在少于 20K 的门中实现。该标准考虑到在某些情况下只需要一个最小的核心,并且已经定义了变体和扩展以使其适应代码大小等问题。扩展可能会产生更优化的内核,不仅可以更快地完成工作,而且可以减小尺寸、功耗或在特定应用中重要的其他方面。

用后来由林肯总统改编的约翰·利德盖特的话来说,“你可以一直取悦某些人,有时也可以取悦所有人,但你不能一直取悦所有人。”

RISC-V International 在让大多数人开心方面做得很好。


关键字:RISC-V  MCU 引用地址:RISC-V能成为八位MCU的选择吗?

上一篇:欧洲处理器计划第二期公布,选择了Arm与RISC-V
下一篇:BrainChip被美国空军研究实验室选择,开发基于AI的雷达

推荐阅读最新更新时间:2024-11-09 13:26

单片机入门—STC89C51
  学习单片机也有些时日了,经常在论坛看各位大佬花式解答难题,在博客里学习各位大佬的经验、方法,获益颇多。   本人不才,也在此记录自己的学习经验,也算是为自己的学习做一下总结,毕竟好记性不如烂笔头,踩过的坑要记下来才不会再掉进去。 一、单片机入门之路   就单片机入门而言,门槛较低的就是传统8051单片机,原因如下:   1)结构简单:传统8051单片机内部的寄存器相对较少,IO口也基本只有一种模式(准双向口),外设一般也只用到定时器、串口;   2)资料丰富:传统8051的相关书籍、网络资料可以说相当丰富,在这方面几乎可以不投入成本,对学生而言大大降低了入门门槛;   3)对知识储备的要求相对较低:从本人的学习经验来看,传统8
[单片机]
<font color='red'>单片机</font>入门—STC89C51
阿里达摩院玄铁推出 64 位高实时能效 RISC-V 处理器设计 R908
8 月 26 日消息,阿里达摩院玄铁本月 21 日在 2024 RISC-V 中国峰会上发布了新款 RISC-V 处理器设计 R908。这是一款高性能、高可靠实时处理的处理器 IP 产品。 玄铁表示 R908 采用 64 位设计,全面兼容 RVA22 profile 和 RVA 矢量扩展,拥有更高可靠性,专为高端工控、存储控制、通信计算、车载等领域设计。 玄铁 R908 采用 RISC-V 64GCB 架构,支持同构多核和多集群,每个集群至多 8 核心。其采用 9 级双发按序流水线设计,浮点单元支持 BF16、FP16、FP32 数据结构,具体设计参见IT之家所附下图: 玄铁同时还预告了预计将于年底发布的下代旗舰高性能
[嵌入式]
阿里达摩院玄铁推出 64 位高实时能效 <font color='red'>RISC-V</font> 处理器设计 R908
单片机自定义协议FIFO高效发送数据方法
本文介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下,提高系统的响应速度。 1、概述 在此之前,先来列举一下传统串口数据收发的不足之处: 每接收一个字节数据,产生一次接收中断。不能有效的利用串口硬件FIFO,减少中断次数。 应答数据采用等待发送的方法。由于串行数据传输的时间远远跟不上CPU的处理时间,等待串口发送完当前字节再发送下一字节会造成CPU资源浪费,不利于系统整体响应(在1200bps下,发送一字节大约需要10ms,如果一次发送几十个字节数据,CPU会长时间处于等待状态)。 应答数据采用中断发送。增加一
[单片机]
51单片机实验——用定时器0实现流水灯,要求每个led轮流显示1s
1.实验题目: 用定时器0实现流水灯,要求每个led轮流显示1s。 2.KEIL代码 #include reg51.h void main() { TMOD &=0X0F; TMOD |=0x01; TH0 = (65536 - 50000)/256;//高四位初值 TL0 = (65536 - 50000)%256;//低四位初值,每隔50ms溢出 EA = 1; //开总中断 ET0 = 1; //T1开时定时器溢出 TR0 = 1; //开启定时器 P1=0xff; while(1); } void Time0(void) interrupt 1 //定时中断 {
[单片机]
51<font color='red'>单片机</font>实验——用定时器0实现流水灯,要求每个led轮流显示1s
如何使用代码清除STM32单片机上的PCROP
前言 STM32PCROP专有代码读出保护,将某个区域设置为仅允许执行,可防止代码被非法读出与修改。ST网站提供了免费的PCROP参考代码,但是例程中仅仅提供了用代码设置PCROP。为方便利用PCROP进行知识产权保护的开发和部署,这篇文章提供了方法,可在RDP级别设置为1或者0时,使用代码清除PCROP。 ST网站上的PCROP参考代码 学习使用PCROP,可从ST网站下载文档以及参考代码。文档里有一步一步的详细说明。参考代码则实现了,如何设置编译开发环境去掉文字库(Literal pool),以避免受保护区域需要被读访问;参考代码也实现了如何利用代码使能PCROP保护以及如何导出接口符号供二次开发使用。 你可以编译运行
[单片机]
如何使用代码清除STM32<font color='red'>单片机</font>上的PCROP
51单片机小白零基础教程——数码管的动态显示
数码管的动态显示 数码管的动态显示:数码管的动态显示又叫做数码管的动态扫描。动态显示的特点是:将所有位数码管段选线并联在一起,,由位选控制是哪一位数码管有效。所谓动态扫描显示即轮流向各位数码管送出字型码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示的,只是轮流的速度比较快,人眼已经无法分辨出来。 关于数码管以及74HC573锁存器的分析放在这,有详细的分析过程,请自行查看https://blog.csdn.net/chrisbum/article/details/115583779?spm=1001.2014.3001.5502 设计要求:在实验板
[单片机]
51<font color='red'>单片机</font>小白零基础教程——数码管的动态显示
51单片机data,bdata,idata,xdata使用注意事项
1、data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。 2、data区内最好放局部变量。 因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同; 3、确保你的程序中没有未调用的函数。 在keil c里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点keil c做得很愚蠢,但也没办法。 4、程序中遇到的逻辑标志变量可以定义到bdata中,可以大大降低内存占用空间。 在51系列芯片中有16个字节
[单片机]
通过利用单片机实现RLC、频率及相位差测量仪的应用方案
引言 目前,要在实验室中完成对RLC、频率及相位差的测量,实际需要用几个仪表,如RLC表、频率计和相位仪,这给实际使用带来诸多不便。而且现在常用的仪表一般还是传统的模拟式仪表,漂移大,程控性能不好,而有些仪表功能过于单一,不能满足实际需求。为此,本文考虑到实际的科研实验需要,给出了一种可同时测量RLC、频率及相位差的测量仪的设计方法。 1 系统组成与硬件电路设计 1.1 系统组成 该仪器包括信号产生与接收模块、信号的放大整形滤波处理模块、单片机中央处理器、显示模块LCD12864和外部按键控制模块等几个部分,其系统组成结构框图如图1所示。 本系统以单片机MSP430F149为处理器,主要用于整个系统的信号采集、输入输出控制
[单片机]
通过利用<font color='red'>单片机</font>实现RLC、频率及相位差测量仪的应用方案
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved