热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ARM基础教程|ARM与RISCV架构的区别

关注星标公众号,不错过精彩内容编排|strongerHuang微信公众号|嵌入式专栏从2019年开始,RISC-V得到了越来越多的重视,原

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

599d868095934194646a20afe79d4d4a.gif

编排 | strongerHuang

微信公众号 | 嵌入式专栏

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

关于ARM

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

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

052516d72874b163cc0fd3f1894109a5.png

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。

ba6c101d6fee84a20371540defb44f03.png

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”查看更多内容。

726c75e41eba20f091e1827d6637610e.png

9e776f49c8a0502d7ccfd14a950dc48f.png

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


推荐阅读
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 对于许多初学者而言,遇到总线错误(bus error)或段错误(segmentation fault/core dump)是极其令人困扰的。本文详细探讨了这两种错误的成因、表现形式及解决方法,并提供了实用的调试技巧。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 本文详细介绍了Linux内核中misc设备驱动框架的实现原理及应用方法,包括misc设备的基本概念、驱动框架的初始化过程、数据结构分析以及设备的注册与注销流程。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 访问一个网页的全过程
    准备:DHCPUDPIP和以太网启动主机,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此ISP(Intern ... [详细]
  • 云屏系统基于嵌入式微系统msOS,旨在解决当前嵌入式彩屏GUI编程中硬件要求高、软件开发复杂、界面效果不佳等问题。该系统通过结合MCU和Android技术,利用Html5+JavaScript实现高效、易用的图形用户界面开发,使嵌入式开发人员能够专注于业务逻辑。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 本文将详细介绍如何安装和使用 CactiEZ 的中文版本,帮助那些对英文界面不太熟悉的用户轻松掌握这一强大的网络监控工具。 ... [详细]
  • 本文探讨了在QT框架中如何有效遍历文件内容,并解决了一个常见的错误,即文件内容读取为空时弹窗无法正常显示的问题。 ... [详细]
  • Java 架构:深入理解 JDK 动态代理机制
    代理模式是 Java 中常用的设计模式之一,其核心在于代理类与委托类共享相同的接口。代理类主要用于为委托类提供预处理、过滤、转发及后处理等功能,以增强或改变原有功能的行为。 ... [详细]
  • 近期遇到 M1 Mac Mini 在休眠状态下频繁自动重启的问题,通过日志分析尝试找出可能的原因。 ... [详细]
  • 手的温暖
    随着感恩节的到来,一位小学教师为她的学生们设计了一个特别的作业——描绘出他们心中感激的事物。这项作业不仅激发了孩子们的创造力,也揭示了他们内心深处的感激之情。 ... [详细]
author-avatar
hK手机用户2927565637qq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有