10年、20年,甚至50年后,一定有不少的科技领域关注者会再度回想起这一天——
2022年6月24日。
在这个看起来很普通的日子,国内有一家芯片设计公司上市了。
提到中国的芯片设计产业,网友们最熟悉的大概就是华为海思。
其实还有一群人,没有那么出名,他们用20年的时间,亲手终结了中国人需要依赖外国才能设计CPU的时代,但也有很多人说他们是骗子。
他们就是龙芯。
说实在的,这家公司,乍看之下,甚至会让人产生一种“贩卖情怀”的感觉。明明是一家从事极具未来科技感、生产国际化产品的公司,结果,不论是公司“龙芯”,还是产品的命名,都很“中国红”。
比如,这家公司文化墙上贴的不是“效率”、“盈利”之类的商业口号,而是毛主席语录。
再比如,2021年7月发布的最新一代的消费级芯片龙芯3A5000代号为“KMYC70”,是为了纪念抗美援朝70年。
新一代服务器芯片龙芯3C5000L代号“CPC100”,是为了庆祝建党100周年。
6月24日,这家公司正式登陆科创板,并获得“国产CPU第一股”的称号。
那么,这家公司到底是“龙的传人”还是“芯片骗子”呢?
(本文旨在前沿产业的科普,请大家放心服用,内容偏硬核,建议耐心点消化)
口说无凭,我们还是要亲手测一下。我们用Linux系统下的经典跑分软件Unixbench,然后用龙芯的上一代产品3A4000,国产X86芯片厂商兆芯的最新款处理器KX-U6780A,AMD的FX4100推土机,以及网上查到的AMD锐龙R7 1700X数据作为对照组。
看了半个小时满屏的代码之后,Unixbench最后得出的结果是:龙芯3A5000的单核成绩达到了1369分,相比前代产品龙芯3A4000大幅提升76%以上。比AMD的初代锐龙低20%左右,但同频成绩高了24%;多核成绩也提高到了3211分,相比兆芯KX-U6780A和AMD FX4100远远领先。
并且,龙芯3A5000跑到这个成绩,仅仅只用了35W的超低功耗,而性能相近的初代四核锐龙处理器功耗高达65W。
所以综合来看,这片龙芯3A5000的跑分,基本可以看齐2017年发布的初代AMD锐龙处理器R3-1200或者Intel 6代酷睿的性能。
翻译一下就是,性能大概比美国同类产品落后四年。
看到这里很多读者可能会觉得比较失望,对吧?
毕竟最新一代只能对标别人四年前的水平直观感觉乏善可陈。不过我们还是必需得公允地说,这个结果意味着龙芯3A5000是中国芯片发展史上的重要里程碑。为什么这么说呢?
首先从用户体验的角度来说,之前龙芯的CPU大概只能对标AMD十年前的水平,就是这个3A4000大家可以看到各项数据跟AMD推土机差不多,这个性能落后就太多了,说白了就是会很卡。
如果各位有家人朋友做公务员的,他们有一定概率上班的时候会用到装龙芯CPU的电脑,我之前简单调研过,整体来说抱怨挺多的。
我有个朋友就打了个比方如果说用自己家的电脑是开车的话,用龙芯的电脑相当于在开拖拉机,毕竟很少有人家里用十年前的电脑嘛。
但是3A5000就不一样了,家里用四年前的电脑还是大有人在的,只要你不跑最新的大型游戏性能上是没有问题的对吧。也就是说这一代的龙芯突破了用户体验的临界点,它可以用了。
第二点更重要的是,龙芯3A5000处理器上第一次用上了它自己的指令集LoongArch,不是Intel X86,不是ARM,也不是之前龙芯用的MIPS,整个芯片微架构是完全自主研发的,这一点跟华为海思跟别的中国芯片设计企业都不一样,毫不夸张的说,有重大的战略意义。
可能不熟悉芯片产业的朋友听了这个指令集微架构感觉这是什么玩意儿,跟华为不一样不一样在哪里?
说实话我之前也不是很懂,查阅中文互联网的资料也没有人用简单的表达把这件事说清楚的,导致我之前每次做视频讲到这里只能含糊带过,非常地不爽。
但是这次我鸟枪换炮了,有幸邀请到龙芯中科的技术总监张福新老师帮我讲了半天,我感觉我懂了,我成为懂王了。接下来跟大家简单科普一下整个芯片设计的过程。
这是最新的苹果M1pro芯片的版图,大家可以看到这里写的性能核就是负责性能的CPU核,我们常说的大核,效率核就是负责效率的CPU核,小核,这个16核GPU,就是有16个负责图形处理的核,还有16个NPU就是负责AI计算的核,所有这些统称IP核。
而它们内部的架构就是所谓微架构,微架构决定了每一个IP核的性能,IP核经过整合之后构成整个处理器的性能。
那要怎么去设计这样的一片芯片呢?
设计嘛,通常来说意味着带着思路去画图对吧,不管是平面设计画一个logo,还是工业设计画一座桥,一辆车,一个电饭煲,一个手办,都是画图。
但是在芯片设计中有一点区别,就是这块芯片当中集成了337亿个晶体管,也就是它的基本逻辑单元,并且这些晶体管和它的支撑部件,绝缘部件,连接它们的电路一起组成了一个平均50层左右3D结构。
我们算一下即便一个人的效率非常高,他每天可以画1000个晶体管和它的附属结构,也需要92329年,才能把它画完,所以这是不科学的,大家千万不要这样去做。
实际的芯片设计大概是这样的,我们分块看一下这个图当中的核心流程。
首先这个规格制定就是我们需要根据设计目标拉一张清单,列清楚我们这个芯片的各方面的算力,功耗等等需要达到一个怎样的标准,然后用这个硬件设计语言写代码,把芯片用编程的方式描述出来。
比如你需要几个加法器几个内存单元,然后做仿真就是把代码导入模拟软件跑一跑,看我们写的代码能不能符合最初的设计要求,不符合的话就改到符合为止。
代码符合要求之后,下一步就是这个逻辑合成,这是非常关键的一部,也就是EDA软件会帮你把代码自动生成逻辑电路图,不需要自己画。然后我们再模拟验证几个项目看它有没有问题,如果没有问题的话,就进一步生成版图。
版图和电路图的区别是电路图是抽象的,你可以大约理解为思维导图那样的感觉,而版图是跟物理世界一一对应的。在电路图的基础上,你需要确定你要用到的制程,比如是7纳米还是14纳米,各个部分怎么摆放布局,以及各部分之间怎么连接走线,才能生成版图。
然后再用软件验证这个版图,比如你这样走线它的电流信号会不会干扰啊,没问题的话就可以拿去台积电或者中芯国际这种代工厂进行试生产了,我们称为流片,高性能处理器的流片一次一般要几千万到几个亿。如果流片成功没有问题,就可以进入到大规模生产,然后就可以去市场上卖钱了。
那我们在设计层面,想要优化这个芯片让它变得更强,要怎么做呢?大致有以下三个层面可以操作。
第一个层面是优化整体的设计。
因为每次设计芯片的需求,性能、功耗都会不一样,每个时代的资源,比如最新的代工厂制程,最新的主板的供电和散热能力,也会升级。所以就需要去做相应的调整,增加或者减少IP核的种类和数量,改变它的排布方式等等。
就比如苹果的M1,M1Pro,M1Max,可以非常直观地看出它里面的IP核数量和排布方式都差得很多。
第二个也是最核心的,是优化IP核的设计,也就是改微架构。
微架构一方面它是IP核的物理结构,另一方面它也对应到芯片可以完成的任务,也就是指令,优化微架构里面加法器乘法器寄存器这些功能单元的数量,增加可以并行计算路径数,可以让每条指令更快速的执行。同时也要平衡性能和发热,不断探索最佳配比的资源配备。比如ARM的A77 IP核就比A76 IP核性能大概高出22%。
第三个就是,如果你对软件自动生成的加法器乘法器寄存器等IP核内部功能模块相当于零部件不满意,你当然也可以去细节地改这些零部件的设计把性能做到极限。
而所谓指令集就是,每一条指令就是一行代码,它对应到微架构的物理结构,也就是对应到这种微架构能实现的某项功能。整个指令集也就对应到芯片的所有功能。并且它还是芯片从硬件层面对到软件层面的接口,任何操作系统,任何应用软件的运行本质上就是按一定的顺序执行指令集,任何的编程语言本质上都是指令集的集成整合。
我们可以把设计芯片类比成规划一个特大型的城市群。
整体设计上当然不同的城市群会大相径庭,大湾区城市群和长江中游城市群很显然它的自然条件不同,功能不同,他里面具体的城市布局和交通电力网络当然也会大不一样。
IP核微架构优化就相当于去改每一座城市的具体规划,比方说这个深圳需要多大的居民区,多大的工业区,多大的商圈,有限的淡水要怎么分配,能源要怎么分配,道路要怎么规划,垃圾要怎么处理,这个城市的资源条件可以支撑多大的人口体量等等。
功能模块优化就相当于我们去改具体的购物中心,居民楼的设计。
而指令集相当于是城市的服务和使用这些服务的规则,比如说你这个城市的官方语言是中文普通话,你要办证得去市民中心,带这些材料,开公司则要去工商局,带的材料当然也不同,红灯停绿灯行靠右走,打开水龙头就可以喝水。
软件呢就对应到城市里居民,任何人只要遵守这个规则就可以利用城市的资源去干自己的事儿。并且在中国,这套指令集在不同的城市基本上是一样的,你只要会普通话有各种基本常识,那你去哪个城市都可以。在印度就不一定了。
那回到刚才的话题,龙芯和华为以及别的国内芯片设计公司都在设计芯片,他们到底有什么不同呢?
很显然,龙芯用的是自己的指令集LoongArch,而华为用的是ARM的授权,别的芯片设计厂商要么拿的是ARM授权要么拿的是IntelX86授权,具体是什么意思呢?
拿ARM为例,它对外的授权方式大致有两种,一种叫做IP核层级授权,另一种叫做架构层级授权。如果你只拿到IP核授权,就意味着你不能改微架构,只能用ARM现成的IP核排列组合布局一番,已达到你想要的功能。
也就是只能进行整体设计层面的优化,无权进行微架构和功能模块的优化,这意味着你并没有掌握芯片设计的底层能力,你所设计的芯片的性能也肯定是不高的。国内大部分厂商拿到的授权是类似这一类。顺便说一下,恰恰这一类厂商拿到了政府专项补贴的大头,这是不太合理的。
而华为,苹果这些公司拿到的是架构层级授权,他们是可以改微架构和功能模块的。也就是说华为海思也是掌握芯片底层设计能力的,这点跟龙芯是一样的。华为用ARM的授权有很多的好处,它可以直接用ARM的部分IP核,比如麒麟9000的CPU部分用的是Cortex A77,这样可以节省很多工作量,站在前人的肩膀上。
更重要的是,安卓操作系统和它上面的应用程序是跟ARM的指令绑定的,用ARM的指令集意味着可以跟安卓生态无缝对接。
而这种甜蜜的陷阱当中自然也蕴含着重大的战略风险。
首先是老生常谈的卡脖子问题,ARM可以随时停止对华为的授权,虽然之前的授权是个软件你想收回也收不回,但这会意味着ARM后续的指令集迭代不会跟华为同步,华为的芯片会渐渐跟安卓生态无法兼容,用户不能买个没法跑软件的砖头机回家吧?这也是鸿蒙为什么那么重要的原因之一。
第二点就是,一旦华为对于微架构的优化涉及到要改指令集,就必须通过ARM以及谷歌,三星等一系列ARM生态厂商的同意,并且一旦同意之后你的架构创新也会同步共享给他们,也就是你在ARM体系里面做得越先进,越会受到这个体系的掣肘。
第三点也是很关键的一点是,芯片的微架构异常复杂逻辑单元数量极其庞大,你一旦用了别人的微架构就不能保证它没有隐藏的指令,也就是后门。
越是对于国家安全重要的领域,越是不方便用别人的微架构,你打仗的时候导弹发不出去了,你的核设施离心机在那儿自己空转转爆了,你的导航卫星要用的时候它自己关了,那就完了。
华为如果要摆脱这三重风险就必须下决心跟ARM体系做一个分叉,而龙芯虽然因为不能站在前人的肩膀上,它起步会非常的慢,但它不会被卡脖子,不会被掣肘,也没有安全风险。
指令集在整个芯片产业中占据极为要害的位置,它是连接硬件物理结构和软件操作系统的节点,它是所用功能实现的必经之路,由于所有软件硬件如果都用同一套指令集它的效率是最高的,就如同中国大家都说普通话效率最高一样,因为它成为了一个自然垄断的节点。
所谓条条大路通罗马,在整个芯片产业里面,指令集就是罗马。
西方发达国家在发展出一个产业的时候,一直非常重视找出千头万绪的那个交汇的节点,然后很多时候是动用政府的力量去帮助自家的企业占据这个节点,以坐收整个产业发展的红利,控制产业资源的流动,卡住所有参与者的脖子。
西方会把芯片制造交给日本,台湾地区来做,甚至会把部分芯片设计交给韩国来做,但是它绝不会把指令集拱手让出。
这种思路其实是我们需要学习的。
而龙芯相当于是在完全自主的做一个体系,自己用自己的指令集,从零开始发展迭代自己的微架构,用了20年的时间在性能上逐步逼近国际先进水平,然后还在运营一套自己的软件生态,有种开宗立派的架势,格局属实有点大。
而目前的情况来看,这件事已经看到曙光了。
关于上市后的计划,龙芯董事长胡伟武有着这样一个“雄心”:“抓住登陆资本市场的重要契机,开启从CPU和操作系统技术“补课”走向产业生态建设的新征程。”
但是退回到20年前的话,估计没几个人相信这件事会成功。
芯片产业因为有摩尔定律的存在,你的先发的竞争对手在摩尔定律驱使下每18个月性能翻一倍迭代了那么多年,都卷得冒烟了。你这个时候贸然地杀将进去,最初做出来的芯片性能会必然跟先进水平云泥之别,根本卖不出去赚不到钱的。
而与此同时,芯片设计又是一个智力和资本高度密集型的产业,能做芯片的人都是名校毕业,数学非常好熟练运用各种算法,这种人才随便去个哪儿都是百万年薪,这也就意味着你这家公司雇人做事的成本非常的高,同时流片,买各种设计软件的成本也极高。
也就是说你需要在根本赚不到钱的情况下,带一群绝顶聪明的人,坚持几十年,投入所有的青春放弃所有外界的机会,把芯片性能追上来,然后再培养起自己的软件生态。
华为是靠通信和手机业务的巨大盈利,管理层的巨大决心,站在ARM的肩膀上,尚且付出了巨大的代价才取得了成功。
而龙芯最开始的启动资源有些啥呢?
2001年5月,中科院龙芯课题组正式成立,拨款一百万,另外安排了一间50平米实验室。开什么国际玩笑,这可是研发芯片哦,给你100万你去开个餐厅也不一定开得起来呀。
然而,当时却有一个年轻人自告奋勇站了出来,出任龙芯CPU研发的首席科学家,并且表示:“一两年之内不把通用操作系统引导成功,提头来见!”
他就是现任龙芯中科的董事长胡伟武博士。
为什么这个人那么虎呢?
1986年,胡伟武作为浙江永康县第一中学的县高考状元,考上了中国科技大学,1991年,他被保送进入中科院计算所读研究生,而他的导师是计算机界的一位大神:夏培肃院士。
夏培肃是谁呢?
她是1951年英国爱丁堡大学电机系的博士后、建国后少有的电子科学领域高精尖人才。1952年,华罗庚提出研究中国人自己的计算机,当时钦点了三个人,她就是其中之一。
37岁那年,她和同事研发出了震惊世界的“107计算机”,107在设计上跟苏联的机器完全不同,是中国第一台自行设计的电子计算机。为了这个铁皮“孩子”,她自己的儿子没照顾好,意外去世了。
四年后,中国爆炸了第一颗原子弹,七年后又爆炸了第一颗氢弹。很多人以为“两弹一星”是靠算盘算出来的,其实中国人自己研发的计算机,在背后完成了海量的计算工作。
夏培肃曾说:“一个人在一生中,常常会有一些改变命运的重要转折点。对于我来说,这个重要的转折点出现在1952年秋天的一个晚上——我第一次谒见华罗庚教授时。”
同样的话可以套到胡伟武身上。对于他来说,这个重要的转折点出现在1996年,他博士毕业了。同学一多半去了硅谷,还有一些在外企工作。
但是导师夏培肃劝他:我们国家计算机领域还有一些方面存在不足,我们要为国家做贡献,你不要出国。
出国能月薪上万,留下来月薪800,他要怎么选择呢?
胡博士最终选择了留下,跟夏老师一起做基础研究。当时他没有房子,一家人住在哥哥家,到单位上班要花两小时,比现在大部分北漂的通勤时间还长,但是他的爱人表示支持他留在国内做研究。
然后就有了他接手龙芯项目立下军令状的那一幕。
开头几年项目进行还算顺利。胡伟武带着一对人马007肝了几个月,很快肝出了一个原型系统,找中科院汇报,要来了500万经费。
2002年8月10号清晨,中科院计算所北楼105房间,又肝了一晚上的胡博士和研究团队,围着一台电脑,像极了产房外的家属。6点零8分,电脑屏幕上跳出了闪光的“login:”。
欢呼声瞬间爆发,一块中国人自主设计的芯片诞生了。它就是“龙芯1号”。
胡博士激动地用vi在电脑上编辑了第一个文件,其中有句话是:“那个我们只能依赖外国CPU做电脑的时代,已经随着2002年8月10日的晨风消逝了。”
虽然它的性能只能对齐英特尔586,但是不要瞧不起它,因为对于中国芯片来说,这就是“有”和“没有”的区别。
一年后的2003年10月16号,龙芯2号诞生了。它的实际性能和1GHz的奔腾4差不多。同样地,胡博士团队又肝了一晚上;同样地,他们欢呼之后顺便去广场上看了升国旗。
这次他们给龙芯2号起了个神秘的代号,叫MZD110。MZD是一位伟人姓名的首字母缩写,2003是他的110周年诞辰。
一位杭州的退休老工人写信给胡伟武说:“我在报纸上看到龙芯出来了,很高兴!我是个退休工人,工资不高,但是请你给我一个银行账号,我要给你们捐1000块钱”。
当时跟龙芯项目并排奔跑的,还有一个上海的芯片项目,叫“汉芯”。当时申请了6项国家专利和布图保护,还有上亿的研发资金。眼看汉芯系列就要带领中国芯片弯道超车了,结果搞成了弯道翻车,还是原地腾空翻720度那种。
2006年初,有人曝出,汉芯根本就是个贴牌厂商,没有任何研发,3年来一直在用美国摩托罗拉56800芯片,重新贴了个皮当成国货卖!
好家伙,全国都蒙圈了:本来以为是英特尔第二,结果是莆田鞋厂!关掉12级美颜之后,汉芯老师马上惨不忍睹,全国芯片热一夜凉凉。
猪队友下线也就罢了,倒霉就倒霉在,龙芯和汉芯这俩名字太像了,当时有个顺口溜,龙芯汉芯中国芯,芯芯造假。
龙芯成了汉芯事件负面影响最大的接盘侠,投资人一听到“芯片”二字,连夜提桶跑路;国家扶持资金的审批变得极其严苛。眼看走到一半的路,眼看就要断了!
危急关头、天降猛男,胡博士的顶头上司、中科院计算技术研究所所长李国杰,来了个战术换家。李所长决定用一所之力,赌上自己的仕途,砍掉其他几乎所有项目,保住这一个独苗。他把整个研究所压箱底的几千万研究经费,全部拿给了龙芯。龙芯项目这才触底反弹。
拿到了这笔救命钱之后,胡博士的“北四环外梦之队”背负着全村的希望,开始了一系列的开挂操作,研发出了中国大陆首款采用90纳米技术设计的处理器,开创了中国计算机核心技术对外授权的先例,研制出了中国第一个四核CPU芯片。
胡博士还不满意,他说:“CPU不是用来开鉴定会用的,也不是评职称用的,它必须在市场中让客户来评价。”“中国不缺院士,但缺个像英特尔这样的企业。”
2010年,胡博士团队离开体制,龙芯从课题组转型成“龙芯中科技术有限公司”。在这个过程当中,需要投资,但是大家都觉得这个项目肯定赚不了钱导致它拿投资异常艰难,中关村管委会为此开了26次协调会,最终北京市政府投资了一个亿,社会资本投资了一个亿。
投资人大哥其实并不看好龙芯的前景,他对胡博士说:我知道这个项目肯定赔,但是赔了也要投。
虽然拿到了投资,但龙芯穷困潦倒的状态并没有得到根本性的改善。06年之后,国家大幅度加大了对于基础科技产业的投入,芯片是重点之一,当时就有很多只拿到IP核授权的企业因为出活快,赚钱快,拿到了大量的政府补贴,这导致芯片行业的薪资水平水涨船高。
一度很多在龙芯一个月拿几千的工程师每周都被猎头追着给上百万年薪的offer。而居然有很多人在这样的诱惑下,坚持了下来,其中就包括这波给我做科普的龙芯中科的技术总监张福新老师,他从龙芯课题组成立的时候一直干到现在。
就这样又过了好几年,龙芯终于迎来了曙光,天亮了。政府的支持力度加强了,采购订单变多了,工资涨起来了,盈利也有了。
2017年,龙芯实现了1.5亿的销售收入,利润2000多万元;
2018年,龙芯利润比2017年翻番,给国家交的税就有2000多万元;
2019年龙芯芯片出货量已达到50万颗以上,净利润首次突破亿元,销售收入是2018年的2.2倍,利润是2018年的3倍以上。
龙芯正在研制新一代处理器3A6000,据说会达到相当于最新款Intel处理器水平,让我们拭目以待。
而现在龙芯正式在科创板上市。胡博士也对龙芯提出了新的目标:“未来,龙芯中科将从政策性市场走向开放市场,从跟随性发展走向自主发展。”
通俗点说,这些年节衣缩食艰难抚养的孩子,终于要成年了,经济独立了。
而这就不得不提到那位在大洋彼岸奋战的同志所发挥的影响力了,你的姓名无人知晓,你的功绩永世长存。
现在如果我们去到龙芯,一进到他们公司楼里,首先看到的是楼道里全贴着毛主席语录,感觉走错门了,不是进科技公司而是进了街道办,而我觉得这正是他们的密码。
龙芯的成功靠的不是一个人,这里有敢立军令状、兢兢业业的胡博士,有危难之时扭转乾坤的李所长,有他们的师长、老一代中国计算机开路人,有放弃百万年薪留在龙芯的工程师,有那位明知会赔还要投的投资人,有中关村管委会,北京市政府,甚至有要为龙芯捐一千块退休金的老人。
龙芯的成功是这些人接力完成的。
虽然……但是,这帮人都不是一个团队的,很多人之间都不认识啊,这个接力是怎么完成的呢?
我想是因为,这群人各自分别都传承了当年两弹一星的精神,他们各自分别都相信中国人理应掌握自己的战略科技产业,所以自发完成了接力。
鲁迅说过:“我们从古以来,就有埋头苦干的人,有拼命硬干的人,有为民请命的人,有舍身求法的人”。这些人是我们民族的脊梁。
我看过以及写过很多公司的创业故事,但是这个故事显然是最牛逼的。一直以来,我们对它的了解都不够细节。幸运的是,后来我有幸请到胡伟武老师自己来我们的频道跟大家聊一聊。感兴趣的朋友可以移步B站观看视频。
说实在的,我希望有朝一日可以把这个故事拍成电影,这才是真正的中国合伙人,不要在那儿拍什么英语培训了。