关注+星标公众,不错过精彩内容

编排 | strongerHuang

微信公众号 | 嵌入式专栏

从2019年开始,RISC-V得到了越来越多的重视,原因有很多,ARM授权费高是关键的因素,下面就来说说关于ARM和RISC-V架构,以及相关的内容。

关于ARM

1991 年ARM 公司成立于英国剑桥,早期ARM也自主设计和生产芯片,但由于业绩平平,最后ARM改变了策略,他们不再生产芯片,转而以授权的方式,将芯片设计方案转让给其他公司。

ARM有三种授权方式:处理器、POP以及架构授权

ARM架构是一种采用独特的ARM指令集系统、并且根据不同适用范围开发的处理器体系结构。经过30多年的发展,目前ARM架构有针对不同类型计算设计的体系结构。

比如我们经常听说的Cortex-A、Cortex-R、 Cortex-M处理器等。

ARM架构,更主要的是ARM指令集系统。不同于x86架构的复杂指令集(CISC)架构,是一种精简指令集(RISC)架构。相对于CISC架构处理器,采用精简指令集设计的ARM架构设计目标是能在尽量高的时钟频率下通过很少周期执行的指令集。

大幅减少不常用的指令,降低芯片复杂度。采用Load/Store指令体系结构,处理器通过load、store指令存取内存中的数据,针对逻辑、算术等运算,CPU只处理寄存器中的数据。同时由于这个原因,包括ARM在内的很多RISC架构处理器都有很多寄存器来存放指令及数据。为了方便指令的解码,虽然ARM处理器不是单周期指令,但是其绝大多数指令是定长的,加快了常用操作的速度。

同时ARM也没有完全局限于此,ARM架构还有像Thumb指令集、条件执行等技术,进一步提高处理器效率。

这里可以参看我之前分享的文章:ARM 和 x86 有什么区别?

所以总结来说,ARM架构就是采用精简指令集计算机结构、但有自己特色,根据不同用途有不同型号的处理器架构。

关于RISC-V

RISC:Reduced Instruction Set Computer,即精简指令集计算机。

RISC-V是基于RISC原理建立的免费开放指令集架构(ISA),V是罗马字母,代表第五代RISC(精简指令集计算机),可读作RISC-FIVE。

RISC-V起源:

1981年,在David Patterson的带领下,加州大学伯克利分校的一个研究团队起草了RISC-1,这就是今天RISC架构的基础。RISC-1原型芯片有44500个晶体管,拥有31条指令。包含78个32位寄存器,分为6个窗口,每个窗口包含14个寄存器,另外还有18个全局变量,寄存器占用大部分面积,控制和指令只占用芯片面积的6%,而同时代的芯片设计里要占用约50%的面积。

随后在1983年发布了RISC-II原型芯片,包含138个寄存器,分为8个窗口,每个窗口有16个寄存器,另外还有10个全局变量,但是只有39000个晶体管。接着在1984年和1988年发布了RISC-III和RISC-IV。

2010年,Patterson教授的研究团队准备启动一个新项目,需要设计CPU,因而要选择一种指令集。他们调研了包括arm、MIPS、SPARC、X86等多个指令集,发现它们不仅设计越来越复杂,而且还存在知识产权问题。

RISC-V(第五代精简指令集)是David Patterson教授基于其30多年在精简指令集RISC领域的深入积累,在2010年到2014年期间带领团队研发出的最新一代CPU芯片设计指令集。RISC-V是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V指令集完全开源、设计简单、易于移植Linix系统,采用模块化设计,拥有完整工具链。

关于RISC-V的更多内容可以参考文章:第五代精简指令集计算机RISC-V你了解多少?

ARM与RISC-V的区别

ARM架构和RISC-V架构都源自1980年代的精简指令计算机RISC,两者最大的不同就在于其推崇的大道至简的技术风格和彻底开放的模式。

ARM是一种封闭的指令集架构,众多只用ARM架构的厂商,只能根据自身需求,调整产品频率和功耗,不得改变原有设计,经过几十年的发展演变,CPU架构变得极为复杂和冗繁,ARM架构文档长达数千页,指令数目复杂,版本众多,彼此之间既不兼容,也不支持模块化,并且存在着高昂的专利和架构授权问题。

反观RISC-V,在设计之初,就定位为是一种完全开源的架构,规避了计算机体系几十年发展的弯路,架构文档只有二百多页,基本指令数目仅40多条,同时一套指令集支持所有架构,模块化使得用户可根据需求自由定制,配置不同的指令子集。

RISC-V相对于ARM架构的优势和劣势

1.优势

RISC-V是一种开放的架构,从历史的经验来看,开放的生态一定会比封闭的好。RISC-V技术是后发技术,所以能够总结前人的经验教训,做到相对简洁和干净。

2.劣势

由于RISC-V诞生时间太短,相关的编译器、开发工具和软件开发环境(IDE)以及其它生态要素还在发展。目前RISC-V具有全套开源免费的编译器、开发工具和软件开发环境,这是RISC-V的巨大优势,但是开源版本相比ARM的商用编译器和IDE而言,还颇有差距。

ARM与RISC-V的竞争

目前ARM占据了以移动设备为代表的处理器IP的绝大部分市场,而RISC-V则是后起之秀。ARM与RISC-V的竞争有点像上世纪末的Windows和Linux之争,ARM和RISC-V的未来竞争格局也可能类似。

首先几乎可以肯定的是,在ARM的传统优势领域,即手机领域,RISC-V基本没有机会,因为手机经过十年迭代后不太会彻底改变处理器内核了,这也和目前Windows经过二十多年风雨仍然是PC市场操作系统龙头老大一样。但是,在新兴的领域,RISC-V和ARM都处于同一起跑线上,而RISC-V凭着指令集开源等特性很有可能可以击败ARM,或者至少能够占据可观的市场份额。

目前这样的新兴市场主要是物联网市场,物联网市场有长尾化的特性,拥有众多细分市场,同时对于功耗有很高的要求,因此对于可以针对不同应用灵活修改指令集和芯片架构设计的RISC-V有优势,相比之下使用ARM往往只能做一个标准化设计,很难实现差异化。此外,物联网市场对于成本较敏感,RISC-V免费授权的特点对于芯片厂商也很重要。

在RISC-V基金会名单中,我们可以看到高通、联发科这样重点布局物联网的企业。而在目前很火的AI芯片市场,ARM和RISC-V则尚看不出明显的优劣。这是因为高性能AI芯片中无论是使用ARM还是RISC-V的核,主要都是作为控制器来使用,最主要的也是最核心的计算单元往往是电路设计师自行设计而不会使用IP;另一方面AI芯片的利润空间往往较大,因此RISC-V的免费的特点并没有带来特别大的优势。

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------

关注公众号后台回复『ARM基础教程』『嵌入式开发』相关文章。

回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享

ARM基础教程 | ARM与RISC-V架构的区别相关推荐

  1. ARM基础教程 | ARM 和 x86 的区别

    关注+星标公众号,不错过精彩内容 编排 | strongerHuang 微信公众号 | strongerHuang 首先给大家描述一下计算机的两种花指令集: CISC:Complex Instruct ...

  2. ARM基础教程 | ARM、Cortex-M与ARMv8-M什么关系?

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 我们使用的处理器都有一套架构,比如intel 酷睿 i5 属于X86架构,再比如STM32F0是Co ...

  3. ARM基础教程 | ARM多级流水线的优缺点

    关注+星标公众号,不错过精彩内容 编排 | strongerHuang 微信公众号 | strongerHuang 为什么有些CPU的主频更低,但运算效率却更高呢? 比如:51单片机30M主频,STM ...

  4. ARM基础教程 1 | ARM、Cortex-M与ARMv8-M

    ARM基础教程 | ARM.Cortex-M与ARMv8-M什么关系? 目录 ARM架构 Cortex-M内核 ARMv8-M架构 我们使用的处理器都有一套架构,比如intel 酷睿 i5 属于X86 ...

  5. ARM基础教程3 | ARM与RISC-V架构的区别(架构)

    从2019年开始,RISC-V得到了越来越多的重视,原因有很多,ARM授权费高是关键的因素,下面就来说说关于ARM和RISC-V架构,以及相关的内容. 关于ARM 1991 年ARM 公司成立于英国剑 ...

  6. [ARM] [基础][编译]ARM的浮点功能历史分类和对应的编译选项

    前言:ARM编译的时候有很多编译选项和浮点功能相关,要真正理解这些编译选项的选择,不仅仅要了解ARM的体系构建的基础知识,可能还需要了解一下ARM的历史.之后,真对这些再考虑到ARM编译选项就比较好理 ...

  7. arm编程语言基础c,ARM基础:ARM 伪指令详解

    / 4.1 ARM汇编器所支持的伪指令本文引用地址:http://www.eepw.com.cn/article/201611/318753.htm 在ARM汇编语言程序里,有一些特殊指令助记符,这些 ...

  8. ARM基础(5) ARM通讯接口

    设备间进行通信实现得话, 如果把之前得等当成是一个设备得话, 那我们要控制一个灯得话, CPU是不是有一根线接到灯上, 使这个管脚输出 高电频和低电频控制这个灯亮, 控制灯得操作 , 那怎么才能实现通 ...

  9. arm 基础:Nand Flash与Nor Flash的区别

    Nand Flash与Nor Flash NOR的特点是芯片内执行(XIP,eXecute In  Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中.优点是可以直 ...

最新文章

  1. Python IDLE无法显示行号、Python IDLE shell里运行py文件
  2. Android中贝塞尔曲线的绘制方法
  3. 区别 (function($){...})(jQuery)、$(function(){ })和$.fn
  4. Spring DI模式 小样例
  5. java web中整合mq_spring-web 集成 rabbitmq
  6. ChinaJoy是什么
  7. myeclipse jquerry ext 提示
  8. 28335scififo中断接收与发送
  9. Linux版本CentOS下安装svn客户端及使用
  10. 离线安装Python包的三种方法
  11. 玩转手机摄影 oeasy教程总结
  12. ARM Linux从Bootloader、kernel到filesystem启动流程
  13. eBPF系列学习(4)了解libbpf、CO-RE (Compile Once – Run Everywhe) | 使用go开发ebpf程序(云原生利器cilium ebpf )
  14. C++之 友元(friend)
  15. nginx设置自己的404模板页面
  16. HTTPS中间人攻击,HTTPS被抓包了怎么办?
  17. ETCD出现:certificate specifies an incompatible key usage 解决方案
  18. [王家卫经典武侠动作][东邪西毒:终极版][BluRay-RMVB][国粤双语]
  19. 完全备份、数据库恢复模型对日志备份和差异备份的影响
  20. 华氏温度和摄氏温度的转换

热门文章

  1. java音乐播放器的应用价值,基于JAVA的音乐播放器开发.docx
  2. Efficient Contrast Enhancement Using AdaptiveGamma Correction With Weighting Distribution
  3. win7 exfat补丁_微信内测版,Win7停更?你知道吗?(内有福利)
  4. 微信小程序云开发查询(显示)数据库集合的指定字段
  5. python程序异常处理_python中程序的异常处理
  6. iphone4s短信云服务器,苹果的iCloud云端短信,有必要打开吗?
  7. 查看java安装路径
  8. nginx作为web服务以及nginx.conf详解
  9. 【思维导图】计算机网络第三章数据链路层
  10. 想要创业,注册公司需要什么流程和资料?