下一代龙芯首次曝光 分步走建自己的生态和联盟
2017-05-04
日前,龙芯在发布会上发布了3A3000和一系列产品。而且发布会上还公布了龙芯开发者计划、龙芯高校计划、龙芯产业基金。不过,笔者本文介绍的是龙芯正在研发的下一代CPU——3A4000。
龙芯3A4000的设计指标如何,要实现这个指标有何难度?龙芯3A4000性能会有哪些可能性呢?
关于3A4000的进度
关于龙芯3A4000,龙芯对其寄予了厚望,特别是吸取了3A2000和3A3000的不足后,做了修改,而且改动比较大,龙芯方面最理想的目标是实现GCC编译器下SPEC06 定点20分,不过这个是最理想状态下的。毕竟CPU公司跳票或者没能达到计划的情况很常见,即便是Intel、AMD都有这种黑历史。
先介绍一下3A4000的进度。3A4000的研发会比较慢,主要是两个目标定的很高,一个是GCC编译器下,SPEC2006测试能达到10/G,另一个是主频到2G。
10/G是什么概念呢?AMD的Zen大概也就这个水平——AMD自己公布的是3.4G,31.5分,换算以下就是9.26/G。不过由于一些优化选项没开,而且编译器是GCC4.6,换一下GCC编译器版本,多开一些优化,10+/G的成绩Zen还是能达到的。
Intel的Haswell,像赛扬的话,因为没有AVX指令带来的向量优化,以及缓存被“阉割”等因素,也就 9.3/G,而I5 4460因为不像赛扬被“阉割”,可以到11/G,网友测试Skylake,大约也就11+/G(毕竟Intel这些年在挤牙膏)。
因此,如果龙芯3A4000能到10/G,那在微结构上和Intel、AMD的差距就比较小了。不过,考虑到越往上走,微结构优化难度越大。像3A4000基本上是3A3000里一点一点的抠,因而要实现这一目标的难度很大。
难度到底有多大呢?作为参照,以AMD的实力憋出Zen都用了九牛二虎之力,而龙芯3A3000的微结构GS464E除了带宽是K10的两倍之外,总体上GS464E和K10相当。等于是龙芯要完成AMD从K10到Zen的跨越。
AMD憋出Zen都用了这么久,龙芯要实现这一点,难度可想而知。
第二是主频,龙芯3A3000主频上不去,固然有自身后端设计能力相对有限的因素,但也和人力、财力,以及和代工厂的能力息息相关。而境内的代工厂在同制程下只有台积电的60%,和龙芯长期合作的ST在同制程下也只有台积电的80%,而台积电和Intel又有一定差距。
另外,如果主频要做上去,IC设计公司和代工厂就必须建立非常密切的关系,要开放一些技术资料,像Intel和曾经的AMD、IBM都是IDM厂商,因此可以开放技术资料设计和工艺制造不断磨合。虽然IBM和AMD把晶圆厂卖了,但依旧和GF保持了过去的密切联系,很多技术储备和资料也都保留了下来,这样就可以继续做高主频CPU。但龙芯和ST不可能建立这种关系。
而境内的一些代工厂,在技术实力上还有待提高——境内工艺的一致性比境外工艺有一定差距,包括不同批次的一致性,仿真模型和实际晶体管参数的一致性都和国外工艺有一定差距,设计时要多留些裕量,蒙特卡罗仿真也要把参数波动范围设大一些。
龙芯3A2000在研制中就因为和境内代工厂磨合多耗费了1年时间,而在ST流片的3A3000则非常顺利了,从立项到流片也就用了1年时间左右。换言之,就是龙芯即便和境内代工厂建立了密切的合作关系,境内代工厂也只能说:臣妾做不到啊!
此外,微结构越复杂,后端设计压力就越大,比如像把A53主频做到2G和把Zen的主频做到2G完全不是一个档次的工作难度。像3A4000这种CPU的微结构,设计目标接近Haswell的东西,对于任何一家国内团队来说,后端设计难度都非常大,而且龙芯3A3000和龙芯3A4000,还是使用同样的制造工艺,这样就不可能通过工艺的提升来提升主频,完全靠自身的设计能力把主频提升30%,难度可想而知。
最后,虽然目前微结构优化的成果比较喜人,而且已经有仿真结果了。但由于要达到2G主频,最后可能会做一些权衡。最后能拿出怎么样的产品,只有等待时间检验了。
笔者做一个预测,龙芯3A4000可能会采用ST 28nm FD SOI工艺,如果抢时间的话,保守估计主频1.8-2.0,SPEC06 GCC编译器下定点16-18分。
如果多花费一些时间进行优化,而且龙芯团队发挥正常的话,3A4000主频为2G,SPEC06 GCC编译器下定点18+分。
如果龙芯团队超水平发挥,ST也没有掉链子,也许能实现GCC编译器下SPEC06 定点20分。
关于龙芯走自主道路和发展方向
必须强调的是,虽然网络上充斥着对龙芯各种不靠谱的报道,但龙芯对自己的能力,与Intel、AMD的差距认识的非常清楚。
在2020年前,龙芯主打方向是工控、网安,以及石油、电力、交通、金融等行业应用,这些行业应用一方面事关国家信息安全,另一方面在替换上不像桌面和手机存在庞杂的软件生态的问题。
对于龙芯的PC,3A3000主要针对的是党政军办公和龙芯爱好者、开发者。龙芯既没有能力,也没有心思进军民用市场与Wintel一争高下。
龙芯的思路是分步走,第一步能自己养活自己,在特殊市场和一些行业嵌入式应用赚钱,能够养队伍,赚来的钱能支持龙芯3号系列芯片的研发。这方面已经取得了不菲的成绩,可以说龙芯是在几家有官方背景的IC设计公司中获得政府经费支持最少的,也是极其罕见的可以实现政府断奶,自收自支、自负盈亏的。
第二步是特定市场,比如党政军办公PC,并鼓励开发者、爱好者使用龙芯电脑。同时进一步开拓行业市场,让更多的行业和嵌入式设备使用龙芯,扩大自己的根据地,增加市场份额和营业收入,并逐步建立起产业联盟和特定市场的软件生态——比如软件满足党政军办公使用,或者满足对保密要求比较高的科研单位,或十大军工的科研院所使用。
第三步才是进军民用市场。到这一步还非常遥远,有很长的路要走。龙芯目前,还处于第二步。
龙芯的路之所以会这么难,因为万事靠自己,不可能像合资公司那样,获得国家巨额经费支持,去境外弄一个内核,然后去用台积电最好的工艺做一个CPU/SoC,也不可能像一些公司买ARM的IP做集成,而且还有现成的AA体系来支撑商业化。
龙芯必须自己扩展指令集,开发各种IP,自己根据开源软件改写操作系统,自己建产业联盟和软件生态。这种做法步子自然是比与境外厂商合作或者合资的来的慢,但胜在根基扎实,不仅可以实现自主可控,而且可以掌握设计高性能CPU的能力。
而合作/合资,就意味着很多东西境外厂商已经帮你做好了,你就捡现成的就行了,而且合资或者合作中,肯定有很多限制条件,老外也不是活雷锋,会把技术倾囊相授。比如汽车厂在合资中,就有图纸上一条线,中国工程师都不能改,要改的话,也必须经老外层层上报由外国公司决定。这种限制性条款就杜绝了中国工程师通过修改原始设计,逐步吃透国外技术的可能性。
长远来看,采用合资/合作模式,不仅无法形成独立于AA、Wintel的第三级,而且自己的能力发展就受到了制约。这也是为何几大车厂与国外巨头合资N多年,但在自主创新上,依旧乏善可陈的原因。