让ARM紧张的RISC-V是个啥?

北京时间2018年7月11日凌晨,ARM发言人承认了质疑RISC-V架构的网站(riscv-basics.com)确实是ARM发布的,“本意是为了增进大家讨论芯片架构,而不是恶意攻击RISC-V”,并且宣布已经将该网站下线。

但战火并没有停止,在很多硬件或开源技术社区里,有关RISC-V和ARM的辩论依旧激烈。

作为一个物联网爱好者,肯定会好奇为什么 RISC-V 会让如日中天的ARM这么紧张?

那么多挑战者,不是都没掀起大浪吗?

这个事情还得从头说起。

××××××××××××××××××

最早的时候大家整天被“等灯、等灯”的Intel广告洗脑,我们的PC和服务器也大多使用Intel或AMD的x86处理器来运行我们的程序。

移动时代来临之后,精简指令集的ARM仰仗自己的低功耗和低成本,迅速在手机和平板等终端确立了霸主地位。 华为、高通、Samsung、苹果等大厂都在基于ARM做着自己的软硬件产品。

目前,ARM占据全球移动通讯领域90%的市场,而且还把触角伸向了企业基础架构以及人工智能两大领域。

ARM和x86两大阵营互相攻伐,几乎无视第三方竞争者。

可是过了一段时间,大家发现IoT时代到了!新需求又来了!

如果把当前的阶段当作IoT时代的初期,ARM依然有着强大的优势,不管是架构还是工具链、系统、应用……

但领先的玩家已经把目光放到了IoT时代的中期,在他们的视角里,万物互联的时代,CPU必须结构更简单,性价比更高。很明显,ARM在那个时候可能会力不从心。

为什么会这么说?

1、复杂度已经大幅提高

作为商用架构,要保持向后兼容性,不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,所以要在这些架构上开发新的操作系统或者直接开发应用门槛很高。

如果把ARM和x86的架构文档做个对比,就能发现复杂度快差不多了。为了保持兼容度,提高安全性,提高性能……ARM不得不承载过多的“背负”,慢慢变得有点像它以前讨厌的样子。

2、授权费不便宜

ARM虽然开放,但并不开源。ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家。ARM 提供了多样的授权条款,包括售价与散播性等项目。

ARM授权方式主要有三种:架构层级授权、内核层级授权、使用层级授权。价格根据客户要求有高有低。授权条款虽然比Intel好一些,但也仅仅是好一些而已。ARM在指令集授权上非常吝啬,获得ARM32授权的公司一只手都能数的过来,ARM64授权虽然多,但授权费却异常昂贵,法国芯片创业公司Greenwave表示,他们如果使用ARM架构,要花掉1500万美元的授权费。而且授权到期后,是否继续授权和授权费用都要重新谈判。

物联网时代的芯片要有什么特点?

芯片是实现物物相连的关键,物联网的芯片偏重于解决低功耗、高整合度,低功耗连接使开发人员能够为功耗受限的设备添加更多功能,同时保持尺寸小巧,从而扩大了其应用可能性。添加集成度越来越高的元件,通过即插即用方案简化新应用的开发,快速将新设备推向市场。

以上这段是用ARM的设备商用来捧ARM的,但却恰恰说到了物联网时代的芯片关键。

ARM可能部分符合这段文字,但当前最符合这段文字的,可能是我们接下来要说到的 —— RISC-V。

RISC-V读作RISC Five,意思是第五代精简指令处理器。取这个名字只是因为美国伯克利研究团队的David Patterson教授在此之前已经研制了四代精简指令处理器芯片。

RISC-V有什么可取之处?

1、授权更开放,更宽松。

作为ARM的同门师弟(ARM和RISC-V都是精简指令集),RISC-V并不是第一个开源芯片架构。

在它之前,还有一个雷声大,雨点小的OpenRISC。由于采用了GPL和LGPL作为其开源协议(其中硬件设计采用LGPL,而模型和固件采用GPL)。让大部分商业公司望而却步,发展缓慢。

为了吸取OpenRISC的教训,RISC-V采用了BSD协议,这个协议的要求非常宽松,没有任何限制包括闭源和商用。很显然,RISC-V采用这个协议是为了吸引更多的人和公司参与到社区和生态的建设当中。当然,BSD协议本来就是Berkelay的东西(最早是用发布BSD Unix),从伯克利的文化风格来讲,RISC-V采用BSD也算是情理之中。

2、更小更精,模块化

RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。

目前的“RISC-V架构文档”分为“指令集文档”(riscv-spec-v2.2.pdf)和“特权架构文档”(riscv-privileged-v1.10.pdf)。“指令集文档”的篇幅为145页,而“特权架构文档”的篇幅也仅为91页。相对上手和入门较快。

RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而可以通过一套统一的架构满足各种不同的应用场景。

用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。

3、系统和工具链支持

从Linux 4.15内核开始,RISC-V已经获得Linux基金会和社区的支持。

软件生态方面也在逐步构建,比如调试工具链、中断控制器、JVM、LLVM、Python等开发者常用的工具都在完善之中。

此外,RISC-V还获得了Rust 语言支持。详见:https://github.com/dvc94ch/riscv-rust-toolchain(Rust 是一门由 Mozilla 开发和维护的系统编程语言。它有着惊人的运行速度,能够防止段错误,并保证线程安全)。

RISC-V Rust toolchain 的开发者还使用了由 lowRISC 基金会开发的 RISC-V LLVM 构建自己的端口,以及发布了一个 Rust 库,为 HiFive1 板提供 BSP,并为其外围设备提供支持。

×××××××××××××

相比ARM指令集,RISC-V的历史很短,2010年诞生于加州大学伯克利分校,当时的Krste Asanovic教授希望寻找一个合适的CPU指令架构,但x86架构复杂臃肿、ARM架构需要授权费、开源的OpenRISC架构又太老旧了,所以他最终决定自己做个开源CPU架构,在2015年最终成立了RISC-V基金会,专门推动RISC-V发展。

现在的RISC-V基金会成员也扩大到了80多人,包括Google、HP、Oracle、西数等公司都开始支持RISC-V架构。而且国内的公司也开始积极参与 RISC-V 生态系统,2018年 10 月份在中国上海成立了中国 RISC-V 产业联盟,包括芯原微电子、北京君正、安徽华米、上海小蚁、苏州国芯、紫光展锐等公司也加入了 RISC-V 联盟。

在美国,已经有不少知名高校开始把原本使用的MIPS指令集启蒙教材换成RISC-V了。更瞩目的是在软件业发达的印度,已经将RISC-V列为国家标准指令集。

也许未来五年,IoT领域依然是ARM的天下,但五年后呢?

现在你们知道ARM为啥紧张了吧?

作者:长空无名

来源:IoT前哨站

本文相关引用:

《大道至简——RISC》

https://wallstreetcn.com/articles/3280667

《什么是RISC-V》

https://zhuanlan.zhihu.com/p/49176102

《ARM 授权费用太贵 科技巨头欲转向开源架构 RISC-V》

https://www.leiphone.com/news/201805/8Nubo2qqdS7P8YRD.html

正面交锋Ubuntu Core,Fedora将发布物联网版本

知名发行版 Fedora 将发布物联网版本。

Fedora 理事会批准了 Fedora项目负责人Peter Robinson 的提议,物联网版本将是一个官方支持的版本,并将组建工作组。物联网版本初步计划是随 Fedora 29 一起推出。该版本包含了各种各样的传感器支持,所以不会用传统未经优化的 Linux 内核,该物联网版本显然会是精简后的系统。

开发者表示未来几周或几个月将展开深入讨论,听取反馈,逐渐壮大 Fedora 物联网社区。

麦迪文:终于要出手了,不然要搞物联网的红帽系开发人员都转投Ubuntu/Debian社区了。

想要更多,请关注“IoT前哨站”微博或微信公众号

微软将为ARM架构电脑加入64-bit App支持

搭载高通 Snapdragon 平台的 Windows 笔记本虽然在连网方面有其优势,不过同时也有着没有支持 64-bit 应用程序的致命缺点。虽然微软大派定心丸,在多个场合中表示他们终究会给这 ARM 架构平台加入 64-bit app 的支持,但实际的时程,也是来到今天才有消息啊。微软的 Windows 部门总经理 Erin Chappie 向我们透露他们将会在快将开始的 Build 开发者大会上发布 ARM 64 适用的 SDK。

有了新的 SDK,开发者就能让他们的 app 于 ARM 架构电脑(如华硕 NovaGo)上有着原生 64-bit 的支持,不再限于目前 32-bit。虽然在获得 64-bit 支持之后,相关应用程序的性能会提升多少却有待商榷,不过这也是个喜闻乐见的改进啊。

这些应用 ARM 架构的连网 PC 将会预载 Windows 10 S 出厂,不过微软也给予使用者在 2019 年内转换至 Windows 10 Pro,让使用者能在更熟悉和强大的系统里操作。ARM 64 SDK 将能制作微软 Store 和桌面版(.exe)两种程序,方便开发者按自己的需要取用。

麦迪文点评:开发者们,准备好进入新的金矿区!