据公开消息,龙芯和飞腾最新的产品都与去年年底开始流片,也就是说,新产品即将与国人见面。那么,在飞腾的arm芯片和龙芯3a3000即将完成流片之时,笔者将从自主知识产权、裸cpu性能和软件方面对飞腾和龙芯上一代产品——飞腾1500a和龙芯3a2000做一个对比,特别是之前有媒体对比龙芯3a2000和飞腾1500a总体上比较客观,但在局部也有一些纰漏,笔者趁机在此做一下修正。
|先从自主知识产权谈起
检验自主可控的标准——信息安全不受制于人,产业发展不受制于人。因此,这就必须做到具有指令集的发展权、微结构是自主设计、利润不受制于人等要素。
指令集的发展权
龙芯的指令集是loongisa,共有共1907条指令。
源自mips:
216条mips基础指令,获得永久授权。
311条dsp指令,获得永久授权。
自主指令:
mips基础指令扩展——148条loongext,
虚拟机扩展——5条loongvm指令,
二进制翻译扩展——213条loongbt,
向量指令扩展——1014条loongsimd
显而易见,龙芯获得的是永久授权,并拥有自行扩展指令集的权力。另外龙芯还就此申请了100+专利。而在mips公司破产后,被imagination收购,虽然在嵌入式芯片方面有p5600这样的产品,但至今却未曾开发高性能cpu,有步惠普收购康柏进而获得alhpa的后尘之趋势。
这直接导致龙芯是mips阵营里唯一的高性能cpu,加上龙芯不失时机的向开源组织捐献了一批机器,致使一些开源软件以龙芯作为mips的代表做适配。
因此,在imagination发展力度小+龙芯获得mips永久授权+自行扩展指令且申请专利+开源软件针对龙芯做适配,共同导致龙芯在指令集上受mips的钳制已然微乎其微,基本可以为认为走上了单飞的道路。
而国内arm阵营ic设计公司仅仅能购买arm64指令集,而无法买到arm32位指令集授权,而且arm64指令集授权期限为5年,没有自主扩展的权力,也仅仅能用于设计服务器芯片。
微结构是否自主设计
龙芯3a2000的微结构是gs464e,芯片代码均自主设计,除标准单元和memory compiler生产的ram之外,不存在第三方ip。
而飞腾1500a的微结构是arm cortex a57。由于芯片的安全性、性能、功耗很大程度上取决于微结构,因此很难说飞腾1500a符合安全可控和自主知识产权的要求。当然,也有网络消息称飞腾1500a用的是飞腾自主设计的“小米”,与“火星”、“地球”是同一个微结构,但笔者认为此消息为谣传,具体原因在下文分析。
利润不受制于人
购买arm指令集授权的价格非常昂贵,据笔者了解仅仅arm64指令集每5年的授权费就高达上千万美元乃至近亿美元。而恰恰是如此高昂的授权费致使由u.c. berkeley等几个大学推出risc-v指令集,google、惠普、oracle、西部数据等公司成立risc-v基金会的原因——
risc-v指令集是一个没有专利问题和没有历史包袱的全新指令集,并且以bsd许可证发布。任何公司都可以在自己的产品中免费使用,而修改也无需再开源。
购买arm ip核授权,比如arm的a53或a57,集成自己的soc,这种做法虽然能依附于aa体系,有利于市场化运营,能赚快钱,但在利润方面也被外商控制。因为在购买ip要支付授权费,每生产一片芯片还要支付专利费。而且每个环节做什么,有多少利润,在aa体系中已经形成潜规则,国内ic设计公司依附于aa体系基本上沦为外商的马仔。这也是国内arm阵营ic设计公司虽然营业收入不低,但利润普遍不高的原因之一。相比之下,龙芯不仅不需要向mips公司购买ip,反而可以对外出售ip,海信、海尔就向龙芯购买了200万套ip用于智能家电和机顶盒。
下图为懒人包,简要概括了龙芯3a2000和飞腾1500a在知识产权方面的差别。
飞腾1500a的微结构是a57
有网络消息称飞腾1500a用的是飞腾自主设计的“小米”,与“火星”、“地球”是同一个微结构,不过笔者认为此消息为谣传,主要有以下几点:
1、时间上来不及
众所周知,如果一款cpu从头开始设计,研发周期一般要3年,而如果像海思、展讯那样购买arm的ip授权做集成,研发周期也要1年至2年,而飞腾在购买arm 64位指令集授权后,不到2年的时间里就拿出了飞腾1500a,就开发周期来看,飞腾1500a这款芯片很有可能是直接采用arm cortex a57。
2、飞腾1500a与“火星”的spec2006测试成绩差距过大
根据第三方测试,飞腾1500 spec06测试的整数为10(@1.8g),换算一下就是5.5/g,而根据飞腾在2015年的发布后上公布的消息,“小米”的测试结果是9.6/g,虽然不谈测试环境的spec测试跑分都是耍流氓——因为不同的测试环境的原因,spec测试分数会有一定浮动,但74.5%的跑分差距实在过于骇人——即便是技术实力强如intel,在拥有icc的神优化,以及向量指令优化等因素的情况下,也只能是自己cpu的spec06测试整数跑分增加40%。因此,笔者认为飞腾1500a的微结构并非“小米”。
3、时间对不上
据公开消息,飞腾1500a在2014年流片,2015年与体制内单位签订的合同标为1000万元,而“小米”和“火星”目前还依旧在流片。在发布会上,火星的spec06测试也只有模拟器成绩,而非实物。
4、arm在指令集授权中会配套一个内核
虽然飞腾和arm的合同上没有购买ip内核授权的内容,但由于arm在做指令集授权的时候都会给出配套的一个内核参考。因此,有人以合同没写明购买ip核,所以飞腾1500a的微结构为自主设计的辩解无法成立。
当然以上都是笔者的猜测。鉴于飞腾1500a已经商用,希望飞腾能公开飞腾1500a的用户手,提供内部寄存器等定义资料。效法龙芯将cpu的用户手册和技术资料放在网上供国人自由下载,以打消国人的疑惑。
| 裸cpu性能指标对比
裸cpu性能将用单线程性能、多线程性能以及访存性能等主要指标进行对比。
单线程性能
龙芯3a2000的微结构为gs464e,根据中电集团的报告显示:
龙芯gs464e在使用gcc4.8编译器跑分为:整数768/g、浮点1153/g;
龙芯gs464e使用lcc编译器跑分为:整数828/g、浮点1578/g。
而龙芯的主频恰恰为1g,因此,gcc4.8编译器跑分为:整数768、浮点1153;lcc编译器跑分为:整数828、浮点1578。
而因为测试环境不同,arm cortex a57的测试分数则比较多,华为在麒麟950发布会上就给出a57 spec2000整数跑分780/g的测试成绩。
而根据国外网站对三星7420的实测,笔者将12项测试成绩累乘,再开12次方后得到分值为1376.8分,再除以7240中a57 2.1g的主频,得到跑分为655/g。而根据另一个测试,a57的测试跑分甚至不足600/g,浮点跑分为700+/g。
这些测试分数差距的原因就在于不同的测试环境——毕竟开启auto parallel会将原本单线程执行的程序并行化给多个处理器执行,导致sepc2006整数分数增益。另外,编译器的不同,是否定制编译优化策略等都会对跑分结果造成很大影响。
考虑到华为公布的spec分数一向偏高——华为公布的a72 spec2000 整数跑分为820/g,而根据国外网站实测,麒麟950的实测成绩,a72 spec2000 整数跑分为749/g。笔者猜测,华为公布的a57 spec2000 780/g, a72 spec2000 820/g,a57 spec2006 6/g,a72 spec2006 6.7/g很有可能是使用armcc编译器,并在最优测试环境下,得出的结果。
另外,就某网文中的spec06测试成绩而言,a57 sepc06 整数5.5/g,gs464e sepc06 整数6.5/g都并非在最优环境下测试的分数。根据华为公布的数据,a57 sepc06整数为6/g,a72为6.7/g。据笔者了解,龙芯gs464e sepc06整数最优环境下测试成绩为7.5/g。
因此,笔者选择一个适中的测试跑分:整数655/g,浮点分数因为华为和国外网站都没有公布跑分,笔者以上图测试中的700+/g适当上浮。飞腾1500a的主频为1.8g,那么最后的测试结果为整数1179,浮点1300+。
很显然,虽然gs464e强于a57,但由于飞腾1500a在主频上比龙芯3a2000高80%,使得最终在整数跑分上,龙芯3a2000即便使用lcc编译器测试成绩,面对飞腾1500a依旧略逊一筹。
多线程性能和访存性能对比
在同使用gcc编译器下,飞腾1500a(@1.8ghz)spec cpu 2000 rate成绩为:整数41.5,浮点34.
而龙芯3a2000(@1ghz)的成绩为:整数30.9,浮点43.9。
在使用lcc编译器后龙芯3a2000(@1.0ghz)整数34,浮点60.7。
很显然,龙芯3a2000虽然在主频上处于劣势而导致在整数上低于飞腾1500a,但在浮点性能上却异常强悍。
至于访存性能,则如下图,优劣一目了然。
飞腾1500a (1.8ghz,四核) vs. ls-3a2000 (1.0ghz,四核):
| 软件生态情况
龙芯和飞腾在软件生态上选择了完全不同的道路:龙芯选择尝试主导生态建设,并在软件上投入了很多精力。而飞腾选择兼容arm生态,采取跟随arm产业生态的策略。
操作系统
国内支持龙芯的操作系统有中标麒麟、普华软件、深度软件、开源社区(fedora、centos、debian、loongnix社区版),国内支持飞腾的操作系统有中标麒麟和ubuntu。
办公软件
实际测试显示,在政府机关使用最为广泛的办公软件上,使用龙芯3a2000打开一个1m的word文件,需要2秒,而使用飞腾1500a则需要3秒;打开一个10m的word文件,龙芯3a2000需要3.5秒,而飞腾1500a需要8.2秒。在ppt的使用上,龙芯也处于优势,打开同样一个ppt,龙芯3a2000所消耗的时间几乎只有飞腾1500a的一半。不过,在电子表格上飞腾具有优势,特别是在打开20m的电子表格的情况下优势异常明显。
java虚拟机
java虚拟机(jdk)是服务器上的重要平台软件。飞腾的java虚拟机依赖于国外的开源软件代码,国内没有开发团队,一旦出现深层次问题无法维护。
龙芯在java虚拟机有核心开发队伍,并为开源社区贡献8.4万行代码,累计已解决8个在x86平台同样存在的java共性问题,经过实际用户检验,能够保证企业级的稳定性。
浏览器
浏览器是桌面操作系统上的重要平台型软件。arm的浏览器(chrome、firefox)国内没有专业开发团队,飞腾则因为跟随策略在此碰壁。
龙芯在两大浏览器(chrome、firefox)平台有专门开发团队,而且做了大量工作:
在html5、webgl、webrtc、flash以及各类插件上有着专业支持;
在firefox浏览器社区,龙芯是ionmonkey开发的重要力量;
在chrome社区,龙芯是社区的全球14家主要成员厂商之一,是js引擎的核心开发厂商,累计向社区贡献4万行代码,因此龙芯在js引擎性能对比上自然可以获得更大的优势,具体性能对比如下图:
从实际测试结果中可以看出,虽然在性能上龙芯3a2000和飞腾1500a差距不大,但龙芯却能在js引擎性能对比上大幅优于飞腾,其原因就在于软硬件整合优化——用户最终的体验是软件+硬件,相对于飞腾在软件上跟谁arm,只能是别人给你什么,你用什么,而龙芯则恰恰相反,选择了自建生态,这使得龙芯可以获得软硬件磨合优化的机会。
正如数年前那个cpu性能相对有限的时代,苹果能依靠基于freebsd/unix二次开发的ios,基于arm的授权修改/开发cpu,使苹果可以对自己开发的cpu和操作系统进行系统优化,并依靠软硬件优化取得优于安卓用户体验。同理,在国产cpu性能普遍不强的当下,对软件的优化和软硬件磨合相对于硬件上5%—10%的提升更为关键。因此,相对于党政军办公常用的软件和用户体验而言,龙芯相对于飞腾的优势,则如同早年苹果相对于安卓的优势。
| 结语
可以看出,在硬件方面,飞腾得益于主频比龙芯高80%,因而在整数上具有优势;而龙芯的浮点性能指标颇为亮眼;在访存性能上,龙芯则有很大的优势。在软件上,虽然飞腾可以跟随arm产业生态发展,傍上了arm这个大款,但就党政军办公而言,龙芯相对于飞腾更有优势。
家具三维可视化展示的好处是什么
格力花30亿杀入中国最大半导体并购案且将成为第二大股东
荣耀60为何难敌iQOO Neo5?性能表现是关键
苹果在半导体领域布下“王炸之局”
宁畅已经完成对液冷服务器产品的全产业链布局
龙芯和飞腾新品即将面世 新一代“中国芯”如何?
英特尔是如何一步一步成长起来的你知道吗?
区块链技术将为音乐产业提供一个完整的权利归属
箱式变电站无人值守解决方案
元宇宙技术支撑
三菱电机将推出用于移动通信系统基站的“25Gbps DFB激光器”样品
PLC编程如何合理规划地址
小米和格力的“较劲”,小米格力“暗战”LED
小米芯片蓄势待发,高通乐了联发科恐要哭了
俄军大力发展无人机,但作战理念仍然存在不足
华为被SA评为5G标准化贡献最大第一名
设备如何使用华为云接入MQTT上报数据
POL无源全光局域网方案亮点及应用场景
变频器载波频率范围_变频器载波频率与干扰的关系_变频器载波频率与输出电压的关系
科锐宣布推出XLamp XP-G3 S Line LED 将提供优异的LED系统可靠性