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

关于RISCV与Arm的对比分析和各自的应用

原文:http:m.elecfans.comarticle1010395.html近日,开源指令集RISC-V得到了越来越多的重视。RISC-V是加州

原文:http://m.elecfans.com/article/1010395.html

近日,开源指令集RISC-V得到了越来越多的重视。RISC-V是加州大学伯克利分校的开源指令集,由计算机体系架构的宗师级人物David Patterson领衔打造,通过将核心指令集以及其他关键IP开源,意图大大改变半导体的设计生态。随着西部数据、Nvidia等业界巨头以及大量初创公司宣布开始使用RISC-V,ARM想必也感到了压力。

关于RISC-V与Arm的对比分析和各自的应用

ARM上线了质疑risc-v的网站riscv-basics.com – 24小时后又下线了

北京时间7月10日,细心的网友在发现在Google搜索RISC-V时,得到的第一个结果是一个购买了Google AdWord(即竞价排名)的搜索结果,即riscv-basics.com。

关于RISC-V与Arm的对比分析和各自的应用

点进该网站后,可以看到该网站列举了对RISC-V的几大质疑,包括:

-成本:虽然RISC-V是开源ISA,但是ISA仅仅是处理器芯片的一小部分,因此RISC-V的免费ISA对于整体处理器的成本影响并不大。

-生态系统:RISC-V生态系统不够完整,无法提供完整的(包括硬件到软件)设计支持。

-碎片化风险:RISC-V生态中每个项目都可能会做自己的私有指令集扩展,导致软件兼容性不好,即碎片化问题。

-安全性问题:之前由大厂出品的x86和ARM许多处理器都遇到了安全性问题(Spectre漏洞),而由一个尚处于起步阶段组织或初创公司发布的RISC-V处理器遇到安全性问题的可能性更大。

-设计验证:RISC-V虽然是开源指令集可以自行改动指令集,但是改动指令集会需要大量设计验证,所以如果设计验证完整度不够的情况下自行修改指令集反而容易出错。

关于RISC-V与Arm的对比分析和各自的应用

riscv-basics.com的网站截图

关于RISC-V与Arm的对比分析和各自的应用

ARM网站上质疑RISC-V架构的图片

五点质疑是否有效

虽然网站已经下线,但是围绕该网站的讨论并没有结束。我们不禁要问,该网站上列举的五大质疑是否有道理呢?

首先, 生态确实是目前RISC-V的短板。目前RISC-V社区还处于起步阶段,在这一阶段不太可能拥有完整的生态,因为生态建设需要时间。目前RISC-V由RISC-V基金会牵头的生态建设势头还不错,如果这样的势头保持下去未来我们可望看到非常完整的生态,甚至因为RISC-V的开源特性,每个感兴趣的个人或者团队都可以做出自己的贡献并且其灵活的特性和授权,我们可能会看到RISC-V在未来会拥有比起ARM来说更活跃的生态。

对于成本的质疑则显得缺乏根据,RISC-V的开源模式其实是其最大的优势,类似“指令集仅仅是处理器的一小部分因此指令集成本并没有太大意义”这样的说法并不合适。指令集确实只是处理器的一小部分,但是却是最核心的部分,ARM对其定价也非常高。这也是为什么ARM的授权中,如果客户需要修改指令集,在ARM的基础上加以定制优化以形成自己独特的设计,则需要花大价钱去获取“架构授权”(目前全球花大代价获得ARM架构授权的公司并不多,都是例如苹果、高通等巨头),而相反如果只是从ARM授权一个IP硬核,其授权费用就要低得多。

换句话说,如果你真的从ARM处想要获得指令集授权,那么指令集授权费很可能会构成你SoC芯片设计成本的大头!这样看来,RISC-V将指令集完全开源,任何公司和个人都可以自由使用、修改与定制的模式将会带来很大的成本优势,另外这样的开源举措会大大降低指令集修改和定制的进入门槛,使更多人有机会探索并定制个性化指令集,从而使RISC-V生态更加生机勃勃,而不只是有钱人才能玩的游戏。

对于指令集碎片化的质疑,则确实是不少设计者所关心的。为了引入更多设计灵活性,碎片化似乎是不得不面对的问题。事实上,RISC-V基金会主席(同时也是RISC-V在加州大学伯克利分校的主要开发者)Krste Asanovic曾经在专访中回答过关于碎片化的问题。Asanovic指出,RISC-V基金会制定了一系列规范来保证兼容性,RISC-V分为基础指令集和拓展集两部分,所有的RISC-V处理器都会支持40条基础指令集,这是兼容性的首要保证。

此外,每个扩展指令集处理器往往只是面对一个细分市场场景,而不会想做成通用场景处理器,因此碎片化并不是问题;最后,如果某一细分场景逐渐变得流行,则RISC-V基金会会推动针对该场景的拓展指令集进行标准化。应该说碎片化问题有可能是RISC-V未来面临的一个挑战,这个问题和前面的生态建设息息相关,如果生态建设地好则指令集分散化反而会成为RISC-V的优势。

最后,对于安全和设计验证方面的指责则显得有点牵强。就安全方面来说,之前的Spectre和Meltdown漏洞中,Intel、AMD和ARM的大多数处理器都出现了问题,这是由于计算机架构(如乱序执行、TLB等)沿用已久的经典设计在出现的时候压根就没有考虑到会有这类问题,相反使用较新架构的RISC-V处理器(例如Rocket系列)却在这次漏洞事件中表现出了更好的安全性,因此网站责难说RISC-V处理器安全性存在问题反倒显得有一些讽刺意味。

对于设计验证,“改动指令集会需要大量设计验证,所以如果设计验证完整度不够的情况下自行修改指令集反而容易出错”这样的观点几乎就等同于是因噎废食,首先RISC-V基础和主流扩展指令集目前已经有大量的芯片以及FPGA原型在跑,验证度已经很高,其次每一家负责任的公司都会仔细掂量修改指令集的难度,如果超过自己的能力范围自然会转而选择成熟的经大量验证的指令集版本,但是以“指令集修改需要大量验证,我不让你改还主要是为了你好”为理由剥夺大部分公司修改指令集的自由则无疑是荒唐的。

未来ARM和RISC-V的竞争将会何去何从?

目前ARM占据了以移动设备为代表的处理器IP的绝大部分市场,而RISC-V则是后起之秀。那么,未来会何去何从呢?

目前的ARM和RISC-V让我想起了上世纪末的Windows和Linux之争。当时的计算机主流设备是PC,而Windows则当仁不让是PC端的绝对主流操作系统,Linux则主要是小众极客的选择。随着时代的推移,计算设备的潮流逐渐转向了移动设备,到了今天又转到了云端数据中心高性能计算。

我们看到之前的操作系统霸主Windows在移动设备和高性能计算领域都没有获得很多份额,这一方面是因为Windows本来就是为了PC设计,其核心代码比较复杂,不便于移植;另一方面其商业软件非开源的特性也让Windows的开发限定在了微软公司内部。

Linux则完全不同,其核心代码很轻,而且没有兼容性等历史包袱,因此移植起来比较容易,此外其开源的特性让社区中的爱好者程序员可以参与Linux开发,他们针对Linux本身的移植、改良和开发以及各种Linux平台上的程序形成了Linux生态中的重要部分。对于爱好者来说,Linux开源项目的开发虽然没有金钱回报,但是这些开发经历被业界认可,可以成为简历上的重要一部分。这样,Linux开源社区和爱好者互惠互利,形成了良性互动。到了今天,Linux已经成为了云端数据中心高性能计算的主流操作系统之一,在移动端的主流操作系统Android也是基于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的免费的特点并没有带来特别大的优势。


推荐阅读
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 本文深入分析了 USDC 的稳定性和可能的救援措施,探讨了在硅谷银行破产后 USDC 面临的风险以及行业内的反应。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 中断向量是计算机系统中用于指向中断服务程序的入口地址。每个中断向量对应一个特定的中断事件,存储在内存中的中断向量表中。该表通常包含256个条目,每个条目占用4个字节,用于存放跳转指令或直接指向中断处理程序的地址。 ... [详细]
author-avatar
涛涛哈帅_365
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有