龙芯是我国自己研发的一颗CPU芯片,2018年,我国中兴通讯公司——一个年产几百亿的高科技企业被美国制裁,差点就因芯片断供而直接休克。后来美国又制裁华为,我们都在看着一轮一轮的制裁。直到2020年美国使出大招,说我们只要用了美国技术的企业,就不能给华为服务,直接切断了华为的生产渠道。因为台积电的生产设备里有美国技术,所以它就无法给华为生产,直接就把华为最新的mate pro变成了限量版。
通过一次次的事件,大家能够看到芯片是多么重要,芯片是扎扎实实地被卡着脖子。
CPU的研制是什么呢?CPU应该说是芯片中的芯片,是芯片中最难做的一种芯片,它的复杂度、性能要求是最高的,它是用在我们个人电脑、服务器等最需要性能的场合的。这就是我们做的几颗芯片的样子,它最大也只有几平方厘米,但是里面大有玄机。一颗芯片里可以藏几十亿个晶体管,这是一个最基础的单元,它一秒钟能够进行上百亿,甚至更多的运算。
如果我们把科研比作攀登高峰,那么做芯片可以说是在爬喜马拉雅山,做CPU就是爬珠穆朗玛峰。
国产芯片的市场情况是非常堪忧的,我们可以看到,各种领域里,国产芯片的占有率很多都是零,包括个人电脑和服务器里用的CPU。这个零,当然不代表完全没有,只是说数量太少,可以忽略不计。比如CPU这块,我们这两年进步很大,今年有希望把这个数字改成1%,但也就是仅此而已。这样的占有率对我们来说,会有什么样的后果呢?
我国每年在进口芯片上面,要花2000多亿美金,这是第一。第二,因为我们无法做芯片,就占不到产业的上游,真正的IT产业里最赚钱的企业,往往都是上游这些做芯片的。我们整个电子信息产业中,百强企业的利润加起来还不如美国一家苹果公司的利润,这就是我们为此付出的代价。
当然这个情况不是没有人看到,比如为什么华为现在被美国制裁,仍然能够挺住它的攻击?
就是因为十年前,它就已经意识到这个风险,开始启动了备胎芯片的计划,在内部悄悄地做了很多芯片。在科学界,我们计算所的老所长李国杰院士,也是早在2000年前后,就在国家到处呼吁,说我们必须立项做CPU了。当时专家们有很多意见,就是大家都觉得这个太难了,现在还不到时候,所以当时从国家没要到钱。
后来李所长就下定决心,从自己计算所有限的经费里挤了100万,先在所里立了一个内部课题,鼓励年轻人来做CPU,这时才有了我们龙芯课题组。
真正做起龙芯来时,我们才发现,做CPU不是爬一座山,而是爬N座山,这些山大概可以分成两个群。一群是来自CPU里的,要做一个好的芯片,做一个性能很高的、用起来很快的芯片,有非常多挑战。但是,即使做出这样一颗芯片,要放到市场上去能用起来,就意味着外面要打通一个产业链。得有很多人愿意用龙芯,愿意给它做整机,愿意给它写软件,要有一个繁荣的产业生态,在某种意义上来说难度更大。
里面CPU的设计难在哪里呢?
主要就是大、复杂,为什么呢?现在我们的半导体工艺发展很快,最新的工艺是5纳米,5纳米是什么概念呢?一根头发丝是80微米左右,5纳米就意味着能在头发丝里放16000根线,它能在头发丝这么小的地方走那么多。一颗芯片里,现在典型的能够在里面放几十亿到上百亿的晶体管,这么多资源在里面怎么指挥,怎么组织分工协调,才能让它发出最大的效力?
还有很多其他的局限性,比如并不是堆得越多越好,它在工作时是会发热的,热到一定程度,它就无法再继续工作。而现在的芯片真正工作起来时,里边的热的密度就差不多已经相当于电炉丝的密度了。在这种限制下,又不能无限制地堆,但是又要极限地去追求性能,极限地压榨工艺的潜力,这时就要想办法去做设计挑战。
设计又可以分成前端后端,比如这张图展示的。
做前端就是要把100亿个晶体管怎样分类组织,要放几个加法器,放几个乘法器,放几个做存储,放几个做寄存器。它们彼此之间怎样互联互通的效率最高,最后形成一个设计,变成一个线路。这个线路要跟具体的工艺相匹配,比如是要到台积电的7纳米工艺上去做呢,还是在中芯国际的28纳米工艺上去做。根据不同的工艺,它有不同的物理参数、物理特点,我们要把这两个东西很好地匹配起来。
这里面这么多线,这么多晶体管,只要任何一个出错,就有可能导致整个芯片无法正常工作,所以芯片设计里有很多挑战。
龙芯横空出世。从最早开始,我的运气很好,在2000年进到计算所时,我的导师就是龙芯的总设计师——胡伟武老师。那时胡老师也还年轻,刚刚开始带学生,当时他从所里揭英雄榜,把李所长立的100万做芯片的前期研究的事承担下来了,正在筹备着做龙芯。
所以我这20年,就一直在做这一件事情,从头到尾,见证了龙芯的发展过程。这张图是我们最早做的龙芯一号,2000年课题组成立时,一共就有两个老师和十几个学生,包括老师在内,没有人做过CPU,一切从零开始。但那时大家都非常振奋,非常激动,觉得有这么一个挑战是机会难得,所以我们就没日没夜地看资料,去做各种设计讨论,然后调试测试。有一句话说:天道酬勤。
我的印象特别深刻,因为当时我们调试一些问题时,经常会发现,如果朝九晚五,下班到点就走,好像有些问题永远也解决不了,始终没有灵感。但是如果下了狠心,说这个问题一定要解决,不解决就不回去睡觉。这时熬上一天、两天、三天,经常在深更半夜,夜深人静时,一个灵感突然来了,问题就突破了。所以那时,我们隔三差五地就会熬上一阵,碰到一根硬骨头,就把它熬出来,一年时间,我们就把一个原型性的芯片做出来了。
于是中科院的领导非常高兴,马上就给我们追加了500万的经费,使得我们能够继续往下做。再过了一年,2002年8月10日凌晨6点08分,这个芯片正式调试成功启动。胡老师也很高兴,登录到系统里,输入了一段话。大概意思就是说,今天我们中国信息产业无芯的历史结束了,在场的人们见证了这个过程。然后把我们在场人的名字全部都列在那里。
现在我们回过头去看,这个芯片还是一个很粗糙的设计,但是重要的是那时能有去做这件事的勇气。
而龙芯一号出来后,大家信心大涨,我们从国家那边,从863项目又得到了支持,继续做龙芯2号。因为那时国际上已经做了几十年芯片了,我们从零开始,还有很多有差距的地方。所以我们做了很多计划,我们把国际上先进的技术一个一个拿来研究,研究透一个做一个,就是用小步快跑的策略,做了一系列的芯片。
但是,我们一开始就碰到一个很大的挫折,就是龙芯的第一个芯片叫2A,它拿回来后是半身不遂的。这个芯片只能在电压很小的范围内工作,高了不行,低了不行,以没达到我们的要求,就用不起来。最后追究原因时发现,是我们对物理参数,对工艺的理解不够透彻,因为我们都是做计算机出身的,工艺更需要做微电子和做物理的人。所以我们当时从微电子所引进了黄令仪老师和他们团队,就慢慢地把这块短板补上了。
再接下去,就把一个个先进的技术往龙芯2里面堆,努力地去追赶国际先进技术前沿。2007年,芯片863验收时,我们做出来的芯片已经比1号快了一个数量级以上,也就是10倍以上。这时国家非常重视,当时的科技部部长徐冠华专门来参加龙芯的验收会。在龙芯2号做到一定程度时,我们觉得这个芯片已经差不多了,从很多参数来看,我们的确跟当时国际上最好的一些芯片相比,也没有很大差距了。
所以当时国家正好做了16个重大专项的部署,其中第一个,就是核高基重大专项。核高基就是核心电子元器件高端通用芯片和基础软件,就是为解决我们缺芯少魂的问题开设的。我们从核高基那边拿到了两亿多元,看上去是一笔巨额的经费,然后就开始做龙芯3号。当时我们对龙芯3号雄心勃勃,我们想通过多核技术,能够一下站到世界前沿。多核是什么意思呢?
就是我们在一个芯片里,同时摆好几个CPU的核心,让它能够同时独立地做好几个不同的程序,这样能够增加程序的吞吐力。当时主流的个人电脑还是单核或双核,但我们上来3A1000就设计了四核,3B1500设计了八个核。但是事实证明,我们走了一个很大的弯路,因为首先,多核芯片本身的技术很复杂,一下规模大增,各种测试验证的复杂度都大了很多。我们花了三年多的时间,才好不容易把这个芯片成功地量产。
但是这时拿到市场上一看,特别是桌面上的用户会说,感觉好像跟你三年前的龙芯2号也差不多。然后我们一看,坏了,是我们的指标体系出了很大的问题,这就是我们做科研的一个毛病。当时那些峰值指标确实已经是世界的领先水平了,但是,能表现出来的,在应用软件能享受到的,还是其中的一个核。那时很多软件是为单核写的,它用不起那么多核,就像有一堆小学生,也并不能做一个大人能做的事情。
所以我们当时就没有全面地做好评估,忽略了单核这方面的提升,然后我们痛定思痛,回过头来再去提升我们的单核。
所以从3A1000到2000,我们用完全一样的工艺,只靠设计,就把它的性能提高了三四倍,到今天最新的产品,已经足足提高了15倍以上。我们也注意到,从用户能体验到的性能,就是打开一个很复杂WORD文档,在原来3A1000的时候要33秒,到2000的时候就只要6秒了,到现在鼠标一点就可以瞬开。
这就是我们面向市场、面向用户去不断地优化后获得的一些成绩。当然今天我们离最新的国际最先进的技术还有点距离,但是很多距离是来自于我们用的工艺。国际上最新的已经是5纳米了,我们的3A5000用的还只是12纳米。这是因为我国在工艺这块仍然是一个短板,我们不敢用国际上最先进的工艺,担心随时被掐。但在这一块,应该说我们已经具备了一个很好的国际主流水平,进入了一个新的创新空间。
龙芯生态体系建设。
当时很多专家认为我们做不了芯片,不是说我们做不出那么一颗东西来,而是觉得这个东西无法把外面的产业生态做起来。什么叫做产业生态呢?简单地说分为两个部分,一个是得有人愿意来做你的芯片,就是他用你的芯片去做机器,然后去卖给用户。另一方面是电脑和别的东西不同,电脑上要跑软件,上面得有丰富的软件,用户觉得东西好用,他才会买。 这两个东西都很麻烦,首先怎么解决做机器的问题。
所里2004年在江苏省建了一个龙芯产业化基地,2005年把我派过去,因为那个基地就在红色景区沙家浜旁边,所以我们叫南下沙家浜。我们到那边去做产业基地,这对我来说是一个很大的挑战。因为我原来是天天坐在实验室里的研发人员,到那边去要负责产业化,就是脱离了自己的舒适区。我作为芯片设计人员,要想办法把我看到的问题反馈给芯片的改进团队,然后我们要想办法帮助下游的企业,想办法解决它的问题。
我们首先要在那里把要做的事情分为两步,一个就是我们把实验室的龙芯样品,变成一个可以稳定地批量生产的产品。这一点并不容易,最早的芯片是研究所做的,很多时候研究所没有产业化的经验,想不到很多东西。比如我们最开始拿芯片去找别人生产,别人说你给我一个手册,不好意思,手册还没写好。或者是要相关参数,要不然没法做,那个参数还没有测出来。当时作为自己做设计的人,我们就起到了集中的作用。
我们把产业的信息收集起来再反馈回去,要帮他们解决这个问题,从一步步把这个样品做到可以量产的产品,这里我们学习到很多东西。
但是要能够稳定可靠地做产品,还是不够,还得想办法要让人愿意买。虽然这个东西稳定归稳定,但是慢得像蜗牛一样,或者乏善可陈,那也没有人买。所以我们要想办法去找一个市场,可以体现出这个芯片的优点,能够让用户心甘情愿地买单。
在这个过程中,要想办法更多地了解我们的芯片和实际需求的吻合程度。我们走过一个很大的弯路,如果当时我们对产品生态的理解能够更好一点,也许就不会走那么大的弯路,不至于在单核明明还有很大提升空间的情况下,就先放着了。从产品到商品,是产业化基地做的一个很重要的工作,想单单在产业化基地里零敲碎打地找一些人来做合作,找到几个零碎的市场站住脚是不够的。
我们经过一段时间的摸爬滚打,总结了一些经验,就是我们要与业界优秀的企业合作。
现在电脑里面基本上都是美国英特尔公司的天下,所有的人都围着它转。但是就在这个情况下,也有像苹果等公司,仍然有它的一席之地,它的MAC电脑很多人都爱用。谷歌也在短短的几年内,做出一个自己的很大的移动生态,所有手机都用它的操作系统,它们是怎么做到的呢?我们总结了六个字,就是要开放、兼容、优化。什么叫开放?
就像谷歌,它的很多软件都是开源的,源代码直接可以下过来,大家都可以用,包括它的移动操作系统。英特尔也有很多值得学习的地方,它十年前的电脑拿到现在,来也还能跑今天的软件,今天的电脑拿到十年前的软件,装起来也还能用。这些东西很大地减少了整个产业链的损耗,这样产业链的人就会愿意用,因为这个东西不会总是改,不会浪费很多时间。
围绕着这六字方针,我们足足花了20年的时间,一点点地把自己的生态从无到有建立起来,从有到越来越优化、越来越好。前段时间,我听到一个同事在说,领了一台3A4000的笔记本拿来日常办公,都没想到有那么好用。现在具体是什么样的状态呢?应该说我们从0%到1%,就是这两年发生的事情,这两年整个国产的链条都发展得非常快,龙芯从端到云,有一个产业生态体系。
目前大概有超过2000家各种各样的合作伙伴,有做电脑的,有做软件的,有做各种集成服务的。有几万个龙芯的开发人员,现在在天天做龙芯相关的开发。我们今年已经卖了超过100万颗龙芯的芯片,这些芯片很多都用在非常重要的领域,2019年还是50万,2020年就超过100万了。
所以我们已经走上了一条发展的快车道,我们耳熟能详的整机厂,像联想、同方、方正、浪潮、曙光,这些我国最大的厂商,现在都在卖它们牌子的龙芯电脑。
龙芯选择的是一个HARD模式,即非常难的一种模式,走的是高度自主的路线。因为CPU有很多种做法,我们可以去买一个别人现有的设计过来,只要花钱足够,也有人能卖给你一些CPU设计。
也可以买别人CPU的指令集授权,然后自己做芯片,买别人指令集的用处就是借用别人软件的生态,即别人已经做好的软件。指令集相当于CPU的语言,如果用这个语言,就不用再重新做一套软件了。而我们选择了自己打造一个生态,选择自己做一个指令集。因为我们把培育能力当做最优先的考虑,因为我们国家要做自主可控,最终还是要掌握这些东西。
借助别人的东西,可以快速地达到一定的发展效果,但是最终要想实现自由,还是要掌握自己的能力。在这一方面,我们付出了很大的代价,过了20年,才拥有一点点规模,相对于现在成熟的几千万一年的生态还是很小的。但是应该说,我们现在已经具备了一个很好的发展条件,我们的销量每年在成倍地增长。有一个这样的起步,相信我们会走得越来越快,越来越能展示出我们的后发优势。因为我们自己做下来了,优势很明显。
我们在什么地方都没有黑盒子,可以非常容易地解决问题,问题在哪个地方,都可以把它抓出来解决掉,我们还可以做各种创新。最后,分享我们计算所墙上的一句话,叫做“科研为国分忧,创新与民造福”。