0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

指令集架构与开源架构

NJ90_gh_bee81f8 来源:未知 作者:工程师郭婷 2018-07-16 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

首先所有推崇RISC-V的文章都在说RISC-V架构简单,功耗面积低,这其实跟以前夸MIPS没什么不同。在CPU设计里,指令集是其中最简单最基础的一部分,可以说,采用RISC架构的指令集都差不多,无非是在寄存器数目,分支跳转,数据存取等指令方面做一些取舍,达到某种平衡,满足某些特定需要。

在学院派那儿PK的功耗面积,在工程派眼中离实用还远的很。做出一个demo和做出真正工程上能用的产品还隔着十万八千里,而工程上能用距离商业成功又隔了十万八千里。因为一个指令集就把某种架构夸上天实在没必要。

开源架构受到追捧隐含的另一个意思是Arm等IP厂商授权太贵,所以总有人揭竿而起要革商业公司的命,用免费打败收费。

第一个误会是指令集架构授权和CPU。

核的授权被刻意模糊了。Arm的CPU核授权门槛其实很低,甚至有DesignStart你们可以了解一下,基本可以免费获取Cortex-M0和Cortex-M3,一些媒体文章动辄说Arm授权费要千万美金,钱真有那么好赚吗?Arm被孙正义收购的时候营收一年也就10多亿美金,这生意绝对说不上大。架构授权的客户都是财大气粗玩的起的主儿,如我大苹果、大高通、大三星等,初创公司完全有很多很便宜的选择,干嘛一上手就搞架构授权?刻意强调千万美金授权不能不说是有意误导。

第二个误会则是来自开源社区。

很多人说开源架构免费多好呀,但我要说从架构定义到CPU核实现这中间有很长的路要走,这一部分并不免费,像SiFive等公司都是要收钱的,与Arm的CPU核授权并无多少区别。把开源解读为免费恐怕是一个中英文翻译中的误会。在开源社区的概念刚刚被引入的时候就有人把Free Software翻译为免费软件,但其实更准确的翻译是自由软件或开源软件,开源不等于免费,免费也不等于开源。开源指的是源代码公开,任何人可以免费获取自行编译或重新开发,只是要遵循相应的版权协议,像Linux遵循的是GPL协议,用GPL开源协议的代码重新开发的软件也必须开源。免费指的是软件不收钱,但是不一定开源。大名鼎鼎的Redhat Linux是开源的,但是也不影响Redhat公司靠服务费收钱。在开源架构社区也是一样,指令集是开源的,遵循BSD协议,各家开发的产品不是必须要开源回馈给社区。各家公司在这个指令集基础上开发的自己的CPU核产品都是要收费的,毕竟开发CPU核产品也是要投入人力研发的啊。

以上这些都是老生常谈。开源架构每过几年就要来一轮,背后其实大家都懂,就是学院派总是要有点新的研究成果,“国外一开源,我们就自主”的风气决定了,国外有什么新的指令集架构开源都会在国内激起一阵躁动。但学术不等于商业。CPU架构从上世纪90年代的10多家到现在以X86和Arm为主,背后其实是更深刻的产业和商业规律在主导。在我看来,有几下几个要素:

1.指令集架构创新不具有革命性

有多篇论文分析过指令集架构和性能功耗的关系,结论是指令集的差别与性能和能耗没有关系,两者性能的差异是由于需求的不同在硬件设计上的反映,例如指令发射速度、分支预测、乱序执行等方面,提升这些方面的性能需要使用到大量的硬件,使得硬件设计变得更加复杂,并且带来了更多的能耗。正如吴军在《浪潮之巅》中所说,“数量级是判断一项新技术是革命性还是革新性的关键”。Arm处理器功耗相比于x86有了数量级的提升,手机市场又比PC市场出货量要大一个数量级,这才有了Arm在移动互联网市场占据了端侧的优势,取代了x86指令集,也让架构授权模式为更多玩家所认可。在开源架构和Arm的PK中,没有这种数量级上的差异。Arm和RISC-V都是RISC架构的,只是指令集定义的不同,这就决定了不可能从指令集PK中获得什么优势,还是看具体的硬件实现和功能取舍。

2.技术先进性不等于商业成功

每次有人强调新的指令集比原有的指令集要高效的时候我就笑了,大家想想键盘布局的故事。现在的QWERT键盘布局虽然奇怪,但延续了这么多年,已经有了强大的惯性,即使有人发明了更高效的键盘布局也无法得到广泛支持。指令集上的故事也是类似。Intel的x86指令集是CISC架构的,曾被人Diss架构臃肿。历史上也有多次“x86革命”想取代x86架构,但都因为得不到广泛的支持最终以失败告终。巨大的商业利益和强劲的软硬件的支持可以使得x86架构难以撼动,这些都不是一个简单的技术问题。

3.指令集架构是一个昂贵的公共品。

对学院派来说,能运行软件跑成Demo发论文就是成功,对商业公司来说则是要完成从指令集定义到CPU微架构的设计,到整个芯片的设计和相应软件,工具链的开发和维护,以及在上面运行的操作系统,丰富的函数库以及应用程序,还需要得到大量用户认可,这些都不是一朝一夕之功。设计指令集不难,让一个指令集得到市场认可很难,而一旦得到认可,人们要迁移的成本也很高,这就是Intel能多年在PC和服务器市场称霸的原因。Intel也因为x86指令集的成功获得了巨大的商业利益。指令集架构这一公共品是如此昂贵,无法通过社区自发成长起来,而必须结合商业公司的力量。Linux也是在Android采用以后才得到了大发展。

Arm通过授权模式让众多CPU厂商可以共享一套指令集和编译工具,极大的降低了众多CPU厂商的开发门槛,其实相当于众多CPU厂商众筹了一个Arm指令集,节省的是各家自己开发并维护一套指令集的开销。也正因为这个原因,市场对CPU架构的人员需求减少了,对应用程序开发者的需求增多了,Arm生态系统才有了今天的发展。

现在众多厂商众筹另一个指令集,然后呢?也一样有巨大的生态开发成本,从指令集定义到真正成熟得到广泛应用,没有一二十年起不来。硬件不像软件,有什么错误可以发布新版本去修正,一旦流片了再修改就难了。一个IP要做好不是那么容易的事情,需要有客户一起去趟早期开发过程中的坑,稍有不慎出现一个Bug,前期投入就要打水漂。对商业公司来说开发成本损失还是小事,错失了市场机遇才是最大的损失。即使新指令集生态真能起来,大多数公司要么维护自己的CPU核开发团队,要么从IP授权公司购买相应的架构实现,真的能省钱吗?还是到时候再切换一次指令集,把这些坑再趟一遍?

另外,开源架构采用的指令集架构开源,各家可以自己设计自己的CPU核的方式从一开始就埋下了碎片化的种子,各家IP公司自己设计自己的扩展,并且不需要回馈社区,其结果就是各自有一套自己的开发工具和软件库,重新走到了上世纪90年代有多家指令集架构的局面,对芯片开发公司来说并没有节省什么成本,反而因为各自微架构的特殊性带来操作系统和应用程序的不兼容,这是与商业世界成本尽量降低相矛盾的。

指令集是越多人使用价值越大,指令集架构也就更贵,而CPU核只是部分公司使用,相对于指令集架构就便宜一些,这是Arm的商业模式,是目前经受了实践的检验的一种模式。当年MIPS指令集架构授权很便宜,CPU核卖的贵,是从成本而不是用户需求定价,正好搞反了。结果就是各家都拿了指令集自己去设计MIPS核,造成碎片化和分裂。现在开源社区也是类似的问题。指令集开源,准入门槛很低,IP设计厂商各搞一摊。开源社区没有力量去维护各家实现的统一标准,各家也只能通过低价来抢市场,芯片设计厂商则需要面对不同IP厂商的CPU核实现,不能发挥统一架构的优势,构成恶性循环。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222930
  • 指令集
    +关注

    关注

    0

    文章

    228

    浏览量

    24237
  • 开源架构
    +关注

    关注

    0

    文章

    8

    浏览量

    7029

原文标题:“中国芯”的“新曙光”?它会革掉ARM的命吗?

文章出处:【微信号:gh_bee81f890fc1,微信公众号:面包板社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    易灵思FPGA RISC-V自定义指令的使用方法

    RISC-V(Reduced Instruction Set Computing-V)是一个开源指令集架构(ISA),它的设计目标是提供一个简洁、可扩展且高效的指令集,适用于各种应用场
    的头像 发表于 11-24 11:36 3664次阅读
    易灵思FPGA RISC-V自定义<b class='flag-5'>指令</b>的使用方法

    指令集测试的一种纠错方法

    本文描述在进行指令集测试的一种纠错方法 1.打开测试指令集对应的dump文件 dump文件是指由汇编文件进行反汇编之后,可以供人阅读指令的反汇编文件。其包含了每一条指令的具体操作的信
    发表于 10-24 14:04

    无开发板在Linux系统下进行E203内核指令集测试以及跑分程序的测试

    完成浮点指令集之前,对微架构进行优化,比较有参考性的指令集测试是coremark和dhrystone跑分程序。跑分程序位于/riscv-tools/fpga_test4sim中。 与第二点的操作相似
    发表于 10-24 11:43

    RVF单精度浮点指令集扩展介绍(2)

    RVF单精度浮点指令集扩展 RVF扩展了26条浮点指令。 浮点乘加指令 浮点比较、最大最小值、转移、符号注入、分类指令 浮点除、开方
    发表于 10-22 07:26

    指令集P扩展的主要内容

    1. 指令集P扩展的主要内容 新指令的添加,在蜂鸟E203原有指令集的基础上,可以添加一些新的指令,以满足新的应用需求;指令集扩展,在原有
    发表于 10-21 10:50

    基于蜂鸟E203架构指令集K扩展

    蜂鸟E203是一款基于RISC-V架构的微处理器,其指令集包含RV32I的基本指令集,RV32M的乘法扩展指令集,以及一些常用的定点指令和控
    发表于 10-21 09:38

    Tenstorrent 首席架构师:未来 RISC-V 会是计算机的主流

    当前,按指令集架构(ISA)分类,主流架构包括 x86 架构、ARM 架构和 RISC-V 架构
    发表于 07-17 11:26 1382次阅读

    同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?

    ARM 架构与 RISC-V 架构的 MCU 在同一性能水平下的运行速度对比,需从架构设计原点、指令集特性及实际测试数据展开剖析。以 ARM Cortex-M33 这类 ARMv8M
    的头像 发表于 07-02 10:29 1211次阅读
    同一水平的 RISC-V <b class='flag-5'>架构</b>的 MCU,和 ARM <b class='flag-5'>架构</b>的 MCU 相比,运行速度如何?

    RISC-V核低功耗MCU指令集架构(ISA)特点

    自由使用、修改底层指令集,降低芯片设计成本并加速定制化开发‌。 灵活扩展‌:支持基础指令集(如RV32I/RV64I)与可选扩展模块(如浮点运算、向量加速)的组合,开发者可根据低功耗需求裁剪冗余功能‌。 二、‌模块化与精简设计‌ 核心
    的头像 发表于 04-23 10:01 1045次阅读

    明晚开播 | 开源芯片系列讲座第27期:RISC-V AI指令集的标准化与开源实现

    鹭岛论坛开源芯片系列讲座第27期「RISC-VAI指令集的标准化与开源实现」明晚(26日)21:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目RISC-VAI指令集的标准
    的头像 发表于 03-25 08:12 620次阅读
    明晚开播 | <b class='flag-5'>开源</b>芯片系列讲座第27期:RISC-V AI<b class='flag-5'>指令集</b>的标准化与<b class='flag-5'>开源</b>实现

    直播预约 | 开源芯片系列讲座第27期:RISC-V AI指令集的标准化与开源实现

    鹭岛论坛开源芯片系列讲座第27期「RISC-VAI指令集的标准化与开源实现」3月26日(周三)21:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目RISC-VAI指令集
    的头像 发表于 03-10 17:55 1142次阅读
    直播预约 | <b class='flag-5'>开源</b>芯片系列讲座第27期:RISC-V AI<b class='flag-5'>指令集</b>的标准化与<b class='flag-5'>开源</b>实现

    TMS320C54x DSP代数指令集参考,第3卷

    电子发烧友网站提供《TMS320C54x DSP代数指令集参考,第3卷.pdf》资料免费下载
    发表于 12-30 16:46 0次下载
    TMS320C54x DSP代数<b class='flag-5'>指令集</b>参考<b class='flag-5'>集</b>,第3卷

    TMS320C54x DSP助记指令集参考第2卷

    电子发烧友网站提供《TMS320C54x DSP助记指令集参考第2卷.pdf》资料免费下载
    发表于 12-24 16:58 0次下载
    TMS320C54x DSP助记<b class='flag-5'>指令集</b>参考<b class='flag-5'>集</b>第2卷

    RISC-V架构及MRS开发环境回顾

    ,华为海思转向了开源指令集架构RISC-V,针对鸿蒙操作系统的开发者发布了首款RISC-V开发板Hi3861。Hi3861针对的是物联网市场,突破ARM限制。(5)RISC-V架构应用
    发表于 12-16 23:08

    《RISC-V 体系结构编程与实践(第2版)》指令集

    本书的指令集基于rv64i mafdcsiu 属于精简指令集。 阅读本章可以指令集不多,都是最基础的功能点。 分为6个部分 加载保存指令 跳转指令
    发表于 12-07 18:36