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

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

3天内不再提示

Wave Computing宣布了一则重磅消息:正式启动MIPS Open项目,MIPS架构完全开源

5RJg_mcuworld 来源:lq 2018-12-24 14:15 次阅读

这两天嵌入式领域最大新闻就是MIPS架构宣布开源了!昨天:曾经收购MIPS公司的美国AI公司Wave Computing宣布了一则重磅消息:正式启动MIPS Open项目,MIPS架构完全开源,免费提供给全球的开发者、合作伙伴、高校研究机构、客户。

MIPS开源社区将在2019年第一季度上线,届时会免费提供的MIPS IP和技术资源包括:32/64位指令集Releas 6版本、SIMD扩展、DSP扩展、MT多线程、MCU微控制器、VZ虚拟化、microMIPS架构。

未来,任何人都可以自由获得以上资源,无需任何授权费、版权费,并能在全球范围内得到几百项专利的保护。Wave Computing表示,更多的开源计划细节将在明年第一季度公布。

MIPS架构流水线简图

虽然之前的授权和新的开源计划并不能完全混合,但是Wave Comuting已经明确表示,会向授权客户提供开发工具、第三方IP资源,以构建更强壮、更完整的生态系统,再加上开源的丰富资源和全世界的努力。

01

MIPS指令集历史沿革

此次开源的是 MIPS 32/64位指令集Releas 6版本,MIPS指令集架构自上世纪80年代出现已经有35年历史了,其指令集一直在更新换代,从最初的MIPS I到MIPS V,发展到可支持扩展模块的MIPS32、MIPS64系列,再到集成代码压缩技术的microMIPS32、microMIPS64。每一个MIPS ISA都是其前一个的超集,没有不论什么遗漏,仅仅有添加新的功能。

1、MIPS Ⅰ

提供载入/存储、计算、跳转、分支、协处理及其他特殊指令。该指令集架构用于最初的MIPS处理器R2000/R3000。R2000是1985年推出的首款MIPS CPU,由110000个晶体管组成,是一个8MHz的32位处理器。R3000是R2000的下一代产品。与前者相比不过时钟频率不同。

2、MIPS Ⅱ

添加了自陷指令、链接载入指令、条件存储指令、同步指令、可能分支指令、平方根指令。最初计划用在MIPS 处理器R6000上,但因为工艺选择的问题,R6000从1988年開始设计后,就一直问题不断,终于未能大规模生产。但MIPSⅡ指令集架构是后期MIPS32指令集架构的直接先驱。

3、MIPS Ⅲ

提供了32位指令集,同一时候支持64位指令集。最初用于MIPS处理器R4000。R4000是于1991年推出的64位处理器,首次增加了浮点处理器单元,主时钟频率提高到了100MHz。后来出现了一系列的R4000处理器。

4、MIPS Ⅳ

在MIPS III基础上添加了条件移动指令、预取指令以及一些浮点指令。最初用于MIPS处理器R8000,后来应用于R5000/R10000。R5000与R10000尽管使用同样的指令集架构。可是两者微架构的设计理念全然不同。R5000于1995年推出。採用的是经典的五级流水线、顺序运行。R10000于1996年推出,採用的是乱序运行。

MIPS IV是该架构的第四个版本。它是MIPS III的超集,与所有现有版本的MIPS兼容。 MIPS IV旨在主要改善浮点(FP)性能。为了改善对操作数的访问,添加了用于FP加载和存储的索引寻址模式(base + index,均来自GPR),以及用于执行内存预取和指定缓存提示的预取指令(这些指令支持基数+偏移量和基数) +索引寻址模式)。

MIPS IV增加了几个功能来改善指令级并行性。为了缓解由单个条件位引起的瓶颈,将七个条件码位添加到浮点控制和状态寄存器,使总数达到8。重新定义FP比较和分支指令,以便它们可以指定分别写入或读取哪个条件位;并且去除了读取通过先前FP比较写入的条件位的FP分支之间的延迟时隙。对GPR和FPR的条件移动指令形式增加了对部分预测的支持;并且实现可以选择具有IEEE 754陷阱的精确或不精确的异常。

MIPS IV为单精度和双精度FPN添加了几个新的FP算术指令:融合乘法加法或减法,倒数和倒数平方根。 FP融合乘法加或减指令执行一个或两个舍入(它是实现定义的),以超过或满足IEEE 754精度要求(分别)。 FP倒数和倒数平方根指令不符合IEEE 754精度要求,并且产生的结果与最后一个位置的一个或两个单位(所实现定义)的要求精度不同。这些指令适用于指令延迟比准确性更重要的应用。

第一个MIPS IV实施是MIPS科技R8000微处理器芯片组(1994)。 R8000的设计始于Silicon Graphics,Inc。,它仅用于高端工作站和服务器,用于科学和技术应用,其中大型浮点工作负载的高性能非常重要。后来的实施是MIPS Technologies R10000(1996)和Quantum Effect Devices R5000(1996)和RM7000(1998)。由NEC电子东芝制造和销售的R10000及其衍生产品被NEC,Pyramid Technology,Silicon Graphics,Inc。和Tandem Computers(以及其他公司)用于工作站,服务器和超级计算机。 R5000和R7000可用于高端嵌入式系统,个人计算机以及低端工作站和服务器。东芝R5000的衍生产品R5900用于索尼电脑娱乐公司的Emotion Engine,后者为其PlayStation 2游戏机提供动力。

5、MIPS Ⅴ

在MIPS IV的基础上添加了能够提高代码生产效率和数据转移效率的指令。可是没有不论什么一个处理器基于该架构。MIPS V指令集架构是后期MIPS64指令集架构的直接先驱。

6、MIPS32/64

MIPS32/64于1998年提出,MIPS32以MIPS II架构为基础,选择性地增加了MIPS III、MIPS IV、MIPS V,提高了代码生成和数据移动的效率。

MIPS64以MIPS V架构为基础,同一时候兼容MIPS32。

该架构第一次包括了被称为协处理器0的“CPU控制”功能。1999年以后设计的大多数MIPS处理器都与该标准兼容。2003年。公布了MIPS32/64指令集架构的第二版(Release 2),也称为MIPS32/64 R2。最新的是第六版(Release 6),也称为MIPS32/64R6。

而广泛使用的是第二版。很成功的MIPS 4K、24K系列处理器遵循的就是MIPS32 R2架构。MIPS32/64在基本指令的基础上,还提供了一些面向特定应用的指令。这些指令採用特定应用扩展(ASE:Application-SpecificExtensions)的形式。

一种处理器是否实现了某种扩展。能够通过设置标准的配置寄存器指明。基本的扩展列举例如以下。

MIPS 16e:是专门为嵌入式系统及存储空间有限情况下的应用而设计的,能够在一个程序中运行16位和32位两种混合长度的指令,能使终于代码长度降低40%。MIPS32、MIPS64都支持MIPS 16e。

SmartMIPS:是为了满足智能卡和灵活小系统的市场须要而设计的。是一套能高效节省存储空间的扩展指令集,此外还能提高智能卡领域很关键的加密运算的性能。MIPS32支持SmartMIPS。

MIPS-3D:提供了更好的几何运算处理,具有成对单精度数据类型,还提供专用指令来加快对该类型数据的处理。MIPS64支持MIPS-3D, MIPS32第二版也支持MIPS-3D。

MCU:Micro-Control Unit微控制单元,增强了内存映射I/O的处理、提供了更低的中断延迟。MIPS32、MIPS64都支持MCU。

7、microMIPS32/64

microMIPS32/64指令集架构集成了16位和32位优化指令的高性能代码压缩技术,保持了98%的MIPS32性能,同一时候减少了至少30%的代码体积,从而减少芯片成本,也有助于减少系统功耗。MIPS M14K内核是MIPS科技于2009年公布的首款遵循microMIPS指令集架构的MIPS32兼容内核。

注意其序列中没有Release 4,这是由于对于非常多人来说。4是个不吉利的数字。所以MIPS没有公布Release 4,而是直接公布Release 5。

MIPS32 / MIPS64R6

2014年MIPS32 / MIPS64第6版增加了以下内容:

一个没有延迟槽的新分支系列:

具有26位偏移的无条件分支(BC)和分支链接(BALC),

具有21位偏移的零/非零条件分支,

两组寄存器(例如BGTUC)或零寄存器(例如BGTZC)之间的全套有符号和无符号条件分支比较,

全套分支和链接,将寄存器与零进行比较(例如BGTZALC)。

索引跳转指令没有延迟槽,旨在支持大的绝对地址。

指令在位位置16,32或48处加载16位立即数,允许轻松生成大常量。

PC相对负载指令,以及具有大(PC相对)偏移的地址生成。

位反转和字节对齐指令(以前仅适用于DSP扩展)。

乘法和除法指令重新定义,以便他们使用单个寄存器作为结果)。

生成真值的指令现在生成全零或全1,而不是仅清除/设置0位,

使用真值的指令现在只将全零解释为假而不是仅仅查看0位。

删除了不经常使用的说明:

一些有条件的举动

分支可能的指令(在以前的版本中已弃用)。

16位立即数的整数溢出陷阱指令

整数累加器指令(一起HI / LO寄存器,移动到DSP应用专用扩展)

未对齐的加载指令(LWL和LWR),(要求大多数普通的加载和存储支持未对齐的访问,可能通过陷阱和添加新指令(BALIGN))

重新组织指令编码,为将来的扩展释放空间。

02

MIPS CPU架构开源打击了谁?

在业界,虽然MIPS架构的生态系统成熟度比不过ARM,但超过RISC-V是绰绰有余了,作为一种全新的、简且开源的指令集架构,RISC-V 因开源且没有版税而被众多企业、研究机构所采纳,2018堪称RISC-V爆发的元年,各种有关RISC-V的研讨会不断,同时,中国RISC-V产业联盟也宣告成立,为RISC-V在中国的全面应用打下了基础。

SiFive CEO NaveedSherwani在近日ICCAD2018上接受采访时表示RISC-V生态趋于成熟和完善,并透露许多半导体厂家发布了产品或者宣布了产品推出的计划,比如西部数据,高通英伟达,FADU,以及国内的华米,比特大陆,嘉楠耘智等。Naveed Sherwani还指出今年10月份微软就只花费两个月时间便开发出了一款芯片,未来几年RISC-V的发展将会不断的提速,将有更多的公司更快地发布他们的芯片。详见《目前形势下本土IC该如何做强做大?》但即便如此,RISC-V的IP积累还是不够。

另外,可能大家对RISC-V的free有点误解,其实这里的free不是免费是自由的意思,对于RISC-V指令集,如果你是个人或者科研机构可以下载其源代码用于研究,如果要进行商业化操作比如大批量的量产,这就需要SiFive的授权了,只是RISC-V指令集的授权费要比ARM低很多而起不收芯片版税。所以RISC-V并不是一个完全免费的指令集。

还有,有本土IC设计公司老大提出了不同意见,他认为纵观CPU技术发展历史任何一款CPU的走热或者存在都是因为以大量应用为基础 ,对于RISC-V 目前至今还未看到有爆量的单一产品出现,另外,RISC-V虽然免费降低了IC开发者的难度,提升了最终系统开发者的难度,而一些商用CPU已经很好的开发基础和生态,例如X86只要简单的编程就可以开发应用,对此,RISC-V还没有形成自己的成熟的开发环境,如果单纯让应用端的开发人员去买单花时间去学习开发这不符合商业规律。

他认为应用的碎片化不能代表参与者的碎片化,对于很多中小公司来说如果盲目跟进RISC-V则可能遭遇很大风险,他算了一笔账一款芯片从定义到应用走量至少5年时间,如果一个20人的团队要开发一款RISC-V应用则至少需要投入近一个亿的资金,“谁愿意一次性给你一个亿让你来烧?”他表示。所以他认为RISC-V最终是一场开源闹剧,不看好其未来。详见《RISC-V是振兴中国芯CPU的一剂良药吗?》

而现在随着MIPS宣布开源,ARM Cortex-M0免费(1000颗以内免费),RISC-V的生存环境可能遭遇进一步挤压,所以有业者戏称:“RISC-V使命完成了。”大家咋么看?

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

    关注

    48

    文章

    7423

    浏览量

    150790
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10798

    浏览量

    210708
  • mips
    +关注

    关注

    1

    文章

    237

    浏览量

    47673

原文标题:MIPS CPU架构宣布开源,RISC-V使命完成了?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    图纸代码完全开源!稚晖君:人人都能造人形机器人!

    SDK“开源”而大肆宣传不同,智元机器人开源的内容包括硬件和软件的“站式”技术资源,资料包大小超过1.2GB,完全可以通过图纸和代码自行复现灵犀X1机器人。 灵犀X1:人形机器人人人
    的头像 发表于 10-28 06:10 3359次阅读
    图纸代码<b class='flag-5'>完全开源</b>!稚晖君:人人都能造人形机器人!

    全球首个开源AI标准正式发布

    近日,在备受瞩目的2024年ALL THINGS OPEN大会上,开源组织Open Source Initiative(OSI)宣布
    的头像 发表于 10-31 10:59 168次阅读

    华为全联接大会2024亮点:open-eBackup备份软件项目正式开源

    在备受瞩目的华为全联接大会2024上,华为宣布项重要举措——open-eBackup备份软件项目全面
    的头像 发表于 09-25 15:39 607次阅读

    真格基金宣布捐赠开源AI项目vLLM

    万个通用人工智能项目,Hugging Face 上有超过 40 万个模型。每周,有超过 100 万行代码在开源 AI 领域中创建,开发者像交换礼物样,从全世界的各个角落为
    的头像 发表于 09-24 16:13 280次阅读

    【龙芯2K0300蜂鸟板试用】1 龙芯中科必知3件事

    的发展,成为今之中科龙芯 MIPS 1981年,轩尼诗教授采用RISC做出了世界上第MIPS架构的处理器,此后面对X86架构阵营,所有披
    发表于 08-12 21:21

    RISC-­V架构的特点

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

    腾讯突然宣布,微信鸿蒙版要来了!

    今年初, 华为宣布HarmonyOS NEXT命名为“鸿蒙星河版” ,并计划在二季度启动开发者 Beta 计划,四季度发布商用正式版。 消息出,不少人为之振奋。 鸿蒙星河版因不再兼容安卓
    发表于 04-30 19:34

    “失去”龙芯之后,MIPS架构后续如何走?

    电子发烧友网报道(文/吴子鹏)近日,龙芯中科、芯联芯持续近3年的MIPS技术许可官司终于落下大幕,龙芯获胜!   根据龙芯发布的官方公告,仲裁庭签发的《关于仲裁费用和申请人版税支付申请的裁决
    的头像 发表于 01-28 02:24 6923次阅读

    【RISC-V开放架构设计之道|阅读体验】本别出心裁的RISC-V架构之书(第章)

    【RISC-V开放架构设计之道|阅读体验】本别出心裁的RISC-V架构之书(第章) 申请这本书的时候就看到了书评中有几点吸引我,让我希望拜读
    发表于 01-24 19:06

    MIPS聘请SiFive前高管,推动RISC-V指令集架构IP开发

    在SIFive任职期间,Brad Burgess不仅拓展敢达三十多年的半导体行业经验,还成功开发了许多适用各类指令集的处理器,如x86、68k、PowerPC、Arm以及如今备受瞩目的RISC-V。此次成为MIPS首席架构师,
    的头像 发表于 01-08 11:41 467次阅读

    MIPSMIPS/RISC-V的未来如何思考?

    MIPS家历史悠久的CPU IP内核公司,业务和管理历史曲折,在新任CEO Sameer Wasson(曾任TI高管)的领导下,MIPS正在谱写新的篇章。
    的头像 发表于 12-19 09:12 799次阅读

    芯原与谷歌携手合作开源项目Open Se Cura

    2023年12月19日,中国上海——芯原股份 (芯原,股票代码:688521.SH) 今日宣布与谷歌合作支持新推出的开源项目Open Se Cura。
    的头像 发表于 12-19 09:07 406次阅读

    名单公布!【书籍评测活动NO.26】图灵奖得主亲自撰写!RISC-V开放架构设计之道

    博士学位。其间,他厌倦现有指令集架构的变幻莫测,于是参与设计RISC-V ISA 和第款RISC-V微处理器。安德鲁在多个开源
    发表于 12-13 17:25

    简单认识MIPS架构处理器

    无互锁流水级微处理器 (Microprocessors without Interlocked Pipeline Stages,MIPS) 是流行的 RISC 架构处理器之。其原理是尽量利用软件
    的头像 发表于 11-29 09:14 1707次阅读
    简单认识<b class='flag-5'>MIPS</b><b class='flag-5'>架构</b>处理器

    2023贡献者、开源项目评选正式启动

    开源倡导开放、平等、协作、共享理念,是推动技术创新的重要手段,也是促进全球协同发展的源动力。为了进步汇聚开发者力量、繁荣开源生态,开放原子开源基金会特发起 2023贡献者、
    的头像 发表于 11-09 21:40 591次阅读
    2023贡献者、<b class='flag-5'>开源</b><b class='flag-5'>项目</b>评选正式<b class='flag-5'>启动</b>!