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

    文章

    10947

    浏览量

    213900
  • 指令集
    +关注

    关注

    0

    文章

    228

    浏览量

    23530
  • 开源架构
    +关注

    关注

    0

    文章

    8

    浏览量

    6979

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令集架构。而RISC-V目标就是“成为一种完全开放的指令集架构,可被任何学术机构或商业组织自由使用”。 RISC-V
    发表于 11-30 23:30

    指令集架构与微架构的区别

    指令集架构(Instruction Set Architecture,ISA)与微架构(Microarchitecture)是计算机体系结构中的两个重要概念,它们在处理器的设计和实现中扮演着不同的角色。以下是对两者区别的详细阐述
    的头像 发表于 10-05 15:10 804次阅读

    简述微处理器的指令集架构

    微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中的核心组成部分,它定义了计算机能够执行的指令集合、数据类型、寄存器、内存访问方式等,是连接
    的头像 发表于 10-05 14:59 711次阅读

    RISC-V和arm指令集的对比分析

    、开放性 RISC-V :RISC-V指令集架构规范公开,可以免费使用。任何人都可以基于RISC-V架构设计、制造和销售处理器,这种开放性使得RISC-V架构在学术界和
    发表于 09-28 11:05

    国产主流8位单片机-RISC架构精简指令集单片机

    在当前的电子产品开发领域,8位单片机仍然占据着重要的地位,尤其是在嵌入式系统和低功耗应用中。RISC(简化指令集计算)架构以其高效性和简单性,成为了国产主流8位单片机。RISC架构通过减少指令
    发表于 09-27 10:15

    risc-v与esp32架构对比分析

    :RISC-V是一种开源指令集架构(ISA),它支持多种拓展指令,由基本指令集和扩展指令集组成
    发表于 09-26 08:40

    RISC-V指令集的特点总结

    开源 定义:RISC-V 是完全开源指令集架构(ISA),意味着任何人都可以查看、使用、修改以及分发其设计,而无需支付版权费用。 优势:这种开源
    发表于 08-30 22:05

    RISC-­V架构的目标和特点

    RISC-­V架构的目标 RISC-­V架构的目标如下 成为一种完全开放的指令集,可以被任何学术机构或商业组织所自由使用 成为一种真正适合硬件实现且稳定的标准指令集 RISC-­V
    发表于 08-23 00:42

    复杂指令集和精简指令集有什么区别

    的两种主要指令集架构,它们在多个方面存在显著的差异。以下是对这两种指令集架构的详细比较,涵盖设计理念、指令复杂性、寻址方式、实现方式、性能特
    的头像 发表于 08-22 11:00 4334次阅读

    微处理器的指令集架构介绍

    微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中至关重要的部分,它定义了微处理器能够执行的操作和指令的集合,以及这些指令如何被
    的头像 发表于 08-22 10:53 1834次阅读

    CISC(复杂指令集)与RISC(精简指令集)的区别  

    Instruction Set Computers,复杂指令集计算)和RISC(Reduced Instruction Set Computers)是两大类 主流的CPU指令集类型,其中CISC以Intel,AMD
    发表于 07-30 17:21

    RISC-­V架构的特点

    。RISC-V 指令集完全开源,设计简单,易于移植Unix系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例,得到很多芯片公司的认可。RISC-V 架构的起步相对较晚,但发展
    发表于 05-24 08:01

    嵌入式系统的概念与范围开发 指令集架构要怎么选才合适?

    想要搭建一套嵌入式系统,首先得确认想要采用的指令集架构(Instruction Set Architectures, ISA),各家的指令集架构各有其优缺点与拥护者,本文将为您大致介绍
    的头像 发表于 03-28 09:35 1012次阅读
    嵌入式系统的概念与范围开发 <b class='flag-5'>指令集</b><b class='flag-5'>架构</b>要怎么选才合适?

    RISC-V开源指令集全面指南与解析

    它应该是稳定的,基础的指令集架构不应该改变。更重要的是,它不能像以前的专有指令集架构一样被弃用,例如AMD Am29000、Digital Alpha、Digital VAX、Hewl
    的头像 发表于 03-13 09:41 969次阅读
    RISC-V<b class='flag-5'>开源</b><b class='flag-5'>指令集</b>全面指南与解析