MIPS投RISC-V是龙芯新征程的开始

日前,外媒报道MIPS Technologies宣布将放弃继续设计MIPS处理器,转向了RISC-V。在MIPS加盟RISC-V阵营后,有人鼓吹龙芯要完,但事实上,这完全是不了解龙芯具体情况的臆测。特别是在龙芯开发自主指令集LoongArch之后,已经在指令集方面走上了独立自主道路。铁流认为,MIPS投RISC-V,对于龙芯而言,是新征程的开始。

MIPS投RISC-V对龙芯无影响

在MIPS加盟RISC-V阵营后,有观点鼓吹龙芯要完,但事实上,这完全是不了解龙芯具体情况的臆测,是拿ARM阵营CPU公司的情况硬生生往龙芯身上套用。

由于MIPS学院风很重,在技术授权上比较开放。技术上的开放一方面使MIPS在学院派中颇受青睐,很多大学至今依然在使用MIPS进行教学,另一方面,客户可以自由添加指令集,而这直接导致MIPS的生态破碎化。

ARM则在商业上比较开放,但在技术上卡的非常严格,在ARM32时代,ARM仅对苹果、高通等不超过5家公司授权过ARM32指令集,而且禁止客户修改、添加指令,其他的一律是IP核授权。诚然,ARM64在授权方面比ARM32开放很多,但价格异常昂贵,还有很多附加条款,比如使用范围局限于服务器CPU,禁止修改添加指令等等。ARM在技术授权方面比MIPS更加保守,但恰恰是这种保守的举措,比如禁止客户修改、添加指令等条款使ARM避免了MIPS生态破碎化的命运。

目前,市场上绝大多数ARM芯片都是从ARM购买的公版架构,高通、联发科、麒麟、展锐的手机芯片基本都是IP授权。以麒麟为例,从最早的K3开始,到最新的麒麟9000,在过去十年中,麒麟芯片的CPU核全部从ARM购买。

由于手机芯片厂商在CPU上高度依赖ARM,一旦无法买到ARM的最新IP,那就意味着在技术迭代中落后。以麒麟芯片为例,当年美国制裁时,BBC就爆料ARM内部文件,称ARM断绝了和HW的技术合作。之后的麒麟990则继续使用麒麟980上的A76,而竞争对手的芯片则用上了A77。最近,麒麟9000用上了A77,竞争对手已经用上了A78。

 

相比之下,龙芯则不存在这方面的问题,由于龙芯的IP从头开始就是自主研发,历经二十年先后研发了GS132、GS132e、GS232、GS232e/GS264、GS464、GS464e、GS464V等数代CPU核,以及一些未正式命名的小改版本(3A2000和3A3000虽然都是基于GS464e,但其实是两个版本,IPC提升了15%;3A4000和3A5000在公开资料里都是GS464v,但其实连指令集都不一样,完全是两个版本,IPC提升在15%以上),基于这些CPU核又研发了几十款CPU。由于龙芯实现了核心IP完全自主设计,这使龙芯并不依赖MIPS的IP,因此,MIPS是否继续研发MIPS处理器,对龙芯毫无影响。相对于众多ARM阵营手机芯片厂商需要持续从ARM那里购买IP才能保证技术迭代,龙芯本来就不需要从MIPS购买IP核。

 

龙芯的目标就是完全自主可控

早期,龙芯基于MIPS设计CPU,之后不断添加指令,在十多年里,龙芯基于MIPS进行添加了1000多条指令形成了LoongISA,龙芯3A4000以前的处理器,都是基于LoongISA。

不过,MIPS毕竟是一家美国公司,即便获得了MIPS永久授权,一旦发生紧急情况,还是存在未知风险。加上MIPS是第一款商用RISC处理器,由于一直保持向下兼容,积累了很多历史包袱,很多被人诟病的问题由于保持兼容的原因一直未修改。在技术飞速发展的大背景下,仅仅基于MIPS进行添加指令已经无法满足龙芯的需求。在外在风险和内在需求的双重刺激下,龙芯开发自主指令集LoongArch。

由于不少人怀疑LoongArch又是龙芯基于MIPS魔改,铁流特意向一位中科院计算所研究员求证,获得的回复是“LoongArch自定义指令集,通过二进制翻译技术兼容MIPS”。该研究员是RISC-V的支持者,为RISC-V在中国的推广做出了巨大贡献。有鉴于这位研究员与龙芯没有任何利益关系,其表态可靠性极高。

至于有网友怀疑LoongArch是龙芯拿出来危机公关的言论,其实只要稍微对龙芯有一点了解就可以粉碎这个谣言。因为3A5000就是基于LoongArch设计,且已经有样片,将在2021年投放市场,从确定新指令集到基于新指令将设计一款CPU,再到完成流片,需要漫长的周期,龙芯不可能在几年前就预测到MIPS将于2021年3月宣布投身RISC-V。很显然,LoongArch是龙芯筹谋已久的成果,绝非某些厂商用来应对危机公关的“按揭开源”产品。

由于采用了LoongArch,彻底杜绝了MIPS指令集一些饱受诟病的问题,龙芯自定义指令有一些比MIPS指令更优秀,代码执行效率更高,因而在局部(并非全部都更好)出现了二进制翻译后,不仅没有性能损失,反而性能比直接用MIPS还要好的情况。为此,铁流咨询了行业人士,获得的回复是“二进制翻译领域,翻译后效率超过100%,这个是有先例的”。

一位开发者告知:LoongArch和MIPS没有关系了,新指令集LoongArch基本和MIPS可以一一对应,当前loongArch已经非常成熟了,经过了一年的磨合,基本所有的包都编译好了,debian的系统和我们常用的ubuntu系统一样,apt-get install安装就可以了,感觉不到是新的指令集。

从龙芯最初基于MIPS添加指令,到发展出基于MIPS的LoongISA,再到最新的LoongArch,龙芯的目的是非常明确的,也是显而易见的,那就是尽一切可能掌握主导权,坚定不移走自主之路。

 

3A5000是龙芯开启指令集自主的里程碑

在过去这些年,无论是Imagination,还是Wave Computing都没有在MIPS投入多少资源,都只是在拿MIPS的IP赚钱,尽可能榨取MIPS的剩余价值,主要精力分别放在各自的主营业务——GPU和AI芯片上。直接的结果就是MIPS的CPU发展非常慢,如今,龙芯3A4000的性能已经大幅超越了MIPS CPU,龙芯3A5000则在裸CPU性能上相对于龙芯3A4000进一步提升50%至60%,堪称当下最好的自主CPU。

Imagination、Wave Computing在硬件上是如此,在软件上亦是如此。就软件生态方面,由于过去这些年Imagination、Wave Computing的不作为,其实很多方面已经是龙芯挑大梁了。

在龙芯对很多软件进行移植优化的时候,也不忘同时带上其他MIPS处理器的支持,在v8,OpenJDK等JIT虚拟机中,龙芯都已经成为了整个MIPS架构的代码维护者。半年前UOS也把Loongson内核与x86内核、ARM内核并列,其中一项更新是增加了对龙芯3A4000的支持。

过去,龙芯在MIPS的软件生态方面已经获得了一定的主导地位。龙芯完成了.NET的移植,成为了Java运行环境OpenJDK 13的一大贡献者,现在维护着上游MIPS架构和龙芯扩展的代码。诸多多媒体库,例如FFmpeg,libvpx,OpenH264,libyuv等,都已经由龙芯针对自己的MMI以及MIPS的MSA等向量指令进行优化并提交给上游。有些库支持龙芯扩展指令甚至比支持MIPS的扩展指令还早。Linux内核的上游也一样被龙芯生态链成员维护着。龙芯在开源软件方面已经获得了一定的发言与控制权。

MIPS原本的生态绝大部分已经是历史,龙芯如今的软件生态主要是来自龙芯自己维护的各种开源项目,以及国内各家软件开发商对产品的移植,本质上已经不能再称为MIPS软件生态,而应当称为龙芯生态。事实上,在移植一些软件的时候,已经要区分龙芯版本和MIPS版本了。

LoongArch是龙芯筹划多年的产品,这一点从LoongArch在3A5000 CPU完成流片后才亮相就可能看出来。龙芯确立LoongArch之后,龙芯和MIPS已经分道扬镳,毫无关系了。对于龙芯而言,无论MIPS存在与否,都不影响龙芯独立自主建生态,龙芯过去是这么做的,现在依然这么做,未来还是这么做。

过去几年中,龙芯是全球还在发展MIPS高性能处理器的玩家,在龙芯退出MIPS,立起LoongArch大旗之后,龙芯3A4000极有可能被定格为最强MIPS处理器。在失去龙芯这个玩家,MIPS投奔RISC-V后,MIPS也将成为历史。LoongArch是独立生态的基本点,3A5000则是龙芯开启LoongArch新征程的里程碑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

近期GitHub上最热门的开源项目(附链接)

2 月份 GitHub 上最热门的开源项目又出炉了,又有哪些新的项目挤进热门榜单了呢,一起来看看。1、nocodehttps://github.com/kelseyhightower/nocode Star 16256这是 2 月份新出炉的项目,可以说是 2018 年最火的佛系编程了,这个项目…

fb静态区域_fb 静态数据

在STAT中定义静态变量,并在INITIAL VALUE中设定初始值,静态变量的初始值会自动存如对应的背景数据块中回答者: 天晴09 - 初级工程师&nbsp&nbsp第9级2008-09-10 17:01:08你可以在fb中定义的时候直接输入初始值,也可以在ob…

9年没涨价,上太空……这些树莓派的冷知识你知道多少?

作为最成功的微型计算机,开源的树莓派(Raspberry Pi)在技术圈和学术界一直广受编程爱好者的好评,各路大神基于树莓派制作的新奇设备层出不穷,围绕这款微型计算机已经形成了一种独特的 DIY 文化,相关的开源软…

汇编语言入门教程

学习编程其实就是学高级语言,即那些为人类设计的计算机语言。但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。计算机真正能够理解的是低级语言&a…

轻量易用的微信Sdk发布——Magicodes.Wx.Sdk

概述最简洁最易于使用的微信Sdk,包括公众号Sdk、小程序Sdk、企业微信Sdk等,以及Abp VNext集成。名称NugetMagicodes.Wx.PublicAccount.SdkMagicodes.Wx.PublicAccount.Sdk.AspNetMagicodes.Wx.PublicAccount.Sdk.Abp如何贡献?如何快速封装一个…

数学界的高冷之王,N次拒绝巨额奖金:我穷,但是我不缺钱。。。

在现实生活中,你和谁在一起的确很重要,甚至能改变你的成长轨迹,决定你的人生成败。是否还记得,当你跟学霸做同学的时候,你总会莫名其妙跟他一起撸题目;当宿舍其他兄弟正在打游戏的时候,你也想着…

php-7.1.0,PHP 7.4.0 Alpha 1 v7.4.0 官方最新版

PHP团队近期宣布推出PHP 7.4.0首个版本PHP 7.4.0 Alpha 1,且下一个Alpha 2版本也在计划推出,不过作为早期测试版本,建议不要在生产环境中使用,想体验PHP最新运行逻辑的可以下载体验PHP 7.4.0 Alpha 1源码。基本简介PHP原始为Perso…

算法分析的正确姿势

一、前言在进一步学习数据结构与算法前,我们应该先掌握算法分析的一般方法。算法分析主要包括对算法的时空复杂度进行分析,但有些时候我们更关心算法的实际运行性能如何,此外,算法可视化是一项帮助我们理解算法实际执行过程的实用…

浏览器缓存机制的研究分享

源宝导读:互联网Web应用大行其道的今天,浏览器已经成为Web应用运行的重要平台。而Web应用对浏览器缓存机制的高效利用,可以大幅提升应用性能和用户体验。本文将对浏览器缓存机制进行系统化的梳理,分享我们的经验。一、背景计算机读…

Windows2008应用之配置客户端自动添加打印机

打印机对我们每一个人来说都是习以为常的东西了,给你一条远程打印机共享路径,你只要轻轻的双击想安装的打印机图标,等上个三五秒打印机就安装好,这台打印机就任你摆布了。但相对我们IT人员来说,全面的自动化将是我们的…

现代CSS进化史

英文:Peter Jang 编译:缪斯segmentfault.com/a/1190000013191860CSS一直被web开发者认为是最简单也是最难的一门奇葩语言。它的入门确实非常简单——你只需为元素定义好样式属性和值,看起来似乎需要做的工作也就这样嘛!然而在一些…

一日一技:Ocelot网关使用IdentityServer4认证

概述Ocelot是一个用.NET Core实现的开源API网关技术。IdentityServer4是一个基于OpenID Connect和OAuth2.0的针对ASP.NET Core的框架,以中间件的形式存在。OAuth是一种授权机制。系统产生一个短期的token,用来代替密码,供第三方应用使用。下面…

php windows共享内存,关于php的共享内存的使用和研究之由起

最近遇到一个场景,服务寻址的时候,需要请求远程的服务,获取一批可用的ip和端口地址及其权重。根据权重和随机算法选择最合适的一个服务地址,进行请求。由于服务地址在短时间之内不会发生变化,因此为了避免无限制的进行…

联想继续为其硬件产品完善Linux支持

喜欢就关注我们吧!此前,联想曾宣布为其台式机/笔记本电脑预装 Fedora/Ubuntu 等 Linux 发行版。并通过与 RedHat 等达成合作,为 Linux 带来了更多的上游工作支持。时至今日,据 Phoronix 称,自联想开始提供 Linux 预装以…

Excel有哪些需要熟练掌握而很多人不会的技能!

看完这篇Excel攻略,你会感觉这么多年的excel都白学了!来自知乎用户“未央之末”的分享。从今年年初的excel盲,到现在经常从大拿那偷师,也算是成长了不少,慢慢写下来算是对学习excel做个短期回顾——1排版篇给他人发送e…

如何在 ASP.NET Core 中使用 LazyCache

微软的 ASP.NET Core 已经是一个非常流行的用于构建 高性能, 模块化 并能运行在 Windows, Linux, MacOS 上的 WEB 框架,通常能够让程序保持高性能的一个有效途径就是通过缓存热链上的数据来应对高频的请求。LazyCache 是一款基于内存的易于使用和线程安全的缓存组件…

2018全球大学AI排名发布,中国高校表现强势!

[导读] 近日,麻省理工学院马萨诸塞校区计算机与信息科学学院教授 Emery Berger 发布一个全球院校计算机科学领域实力排名的开源项目 CSranking 更新了。目前,卡耐基梅隆大学(CMU)、麻省理工学院(MIT)与斯坦…

在C#中使用 CancellationToken 处理异步任务

在 .NET Core 中使用异步编程已经很普遍了, 你在项目中随处可见 async 和 await,它简化了异步操作,允许开发人员,使用同步的方式编写异步代码,你会发现在大部分的异步方法中,都提供了CancellationToken参数…

通过Python实现马尔科夫链蒙特卡罗方法的入门级应用

通过把马尔科夫链蒙特卡罗(MCMC)应用于一个具体问题,本文介绍了 Python 中 MCMC 的入门级应用。GitHub 地址:https://github.com/WillKoehrsen/ai-projects/blob/master/bayesian/bayesian_inference.ipynb过去几月中,…

315曝光不良奸商 对企业不能罚酒三杯

3月15日,315晚会又曝光了一批无良奸商,虽然315晚会年年曝光,各地政府也迅速跟进打击,但侵害消费者权益的情况却屡见不鲜。从被曝光企业的道歉信来看,“承认错误只是个别问题全面排查整改配合管理部门执法向消费者表示道…