芯片领域大家都很关注台积电、三星、中芯国际这些代工厂的进展,却忽略了芯片设计厂商的重要性。生产能力再强也只是个代工厂,自己能够设计出高端芯片才是终极目标。自己不会设计芯片,把台积电送给你,你也解决不了卡脖子的问题。申威26010,一款超前设计的芯片,一款争气芯片,让我们认识到,中国的科学家足够聪明,缺少的只是经费和时间。
世界范围内,能自己设计高端通用芯片的国家不多,中国是其中之一,甚至可以说是仅次于美国的芯片设计大国。有人说能生产高端芯片才重要,设计芯片很多国家都会,大家可以列举一下能设计高性能通用芯片的国家都有哪些,应该不多吧?我国用20年的时间,逐渐积累起了芯片设计的经验,完成了补课,也实现了创新。
一、申威26010的特殊结构
首先简单说说申威26010的超前设计。要知道,这款芯片仅仅采用28nm工艺,最高主频只有1.5GHz,跟世界主流的高端芯片工艺水平差距还是比较大的,但性能却非常优秀,组装出来的超级计算机还实现了世界最强,只能用设计精巧来形容了。
这个芯片的设计,在芯片设计史上有划时代意义。260个核心,不是简单的核心堆叠,而是根据不同任务进行的优化设计。一开始的多核芯片,确实是多个核心简单封装在一起,没有主次。但是申威的这款芯片,却是分主次的大小核结构。260个核,一共分4组,一组65个核。这一组的65个核里有一个主核,也叫运算控制核心,64个从核,也叫运算核心。主核功能全、性能强,可以独当一面,面对要求单核性能的计算任务时,主核顶上。从核性能不强,不能单独完成任务,但人多力量大,在主核的协调下,可以分工合作,实施”核海战术”。这个组织模式是不是有点像军队里的战斗单位啊?一个连长带领一个连进行战斗,16万个连队一起就组成了最强的战斗部队,这个战斗部队就是神威·太湖之光。
二、多核协同,中国设计走在前列
我们一直都羡慕西方的超前意识和创新能力,其实所有人都有思维惰性,西方也不例外。上一个视频,我们介绍龙芯的时候提到过龙芯的重大失误,为了研究多核结构,忽略了单核的性能。西方的芯片设计厂商却正好相反,一味强调单核性能的提升,忽略了多核的研究,一开始弄出来的双核CPU直接就是两个核,几乎就忽略了两个核的协同作用,1+1远远小于2。
其实,单说多核协同这方面,不管是龙芯还是申威,都是走在世界前列的,因为两家的研发队伍都是计算机所的科研人员,紧跟世界研发的动向,仅仅抓住了众核这个前沿,并取得了不错的成果。比如龙芯3B1500,用比较落后的核心设计出了算力强劲的芯片,算力至今都值得称道。申威的26010也是不鸣则已一鸣惊人。之所以没有抢占到市场,是因为整个生态环境是围着人家转的,根本没人针对你的芯片做优化。同时,咱的单核性能不强也确实是重大短板,也是自研芯片差点被放弃的重要原因。
其实在超算领域,中国的多核协同设计也是比较超前的。以前的主流超级计算机都是同核结构,完全用相同的核心进行简单的堆叠获得强大的算力。比如天河一号之前的世界冠军,美洲虎超级计算机,使用224162个完全一样的核心,霸占了排行榜第一名3年。天河一号之所以能赶超,就是设计出了独特的异核结构,采用186368个志强处理器核心,配合7千多个显卡用GPU做加速器,再搭配两千多个国产飞腾1000处理器,利用不同的核心发挥不同的作用,分工合作,轻松超过了美洲虎。后来类似这样的异核结构逐渐变成了超算界的主流。
回来说芯片,到了申威26010这里,众核设计进一步优化,采用异核结构,具备了更多的优势性能。就像刚才说的,异核结构大大提高了超级计算机的效率。但是这样的设计也是无奈之举,因为我国的超级计算机是购买芯片研发,人家的芯片不可能按照你的要求来设计。CPU和GPU搭配是通过外部连接来实现的,每次协同都需要经过PCIe总线和内存,从而明显降低了工作效率。而申威26010实现了内部异核结构,内部进行协调,大大提高了工作效率,为神威太湖之光攻占榜首立了大功。当然,我们说它的优势性能主要是面向超级计算机的,个人家用计算机短时间内不可能使用260核的CPU,主流的操作系统和软件也不可能针对你的特点做优化。现在手机领域已经大量普及大小核的结构了,软件也逐渐针对多核协同做出了优化,未来的软件设计应该会更加重视多核协同。
三、申威26010是真正的争气芯片
为啥说,申威26010是争气芯片呢?首先是因为它的面世非常及时!中国超级计算机天河一号和天河二号,连续问鼎世界超级计算机算力第一的位置,但采用的是美国公司设计和生产的芯片。美国为了限制中国超算发展,从2015年4月开始,禁止向中国四家公司出售至强芯片,暂时阻断了天河二号的升级之路。大家都在为中国超算前途担忧的时候,就在第二年神威太湖之光超级计算机横空出世,超过天河二号,霸占了超级计算机榜首两年之久。随着实际应用的展开,我国又陆续获得了多项世界大奖。而这款计算机,完全使用自己设计的芯片申威26010,我们短时间内就跳过了卡脖子的困境。大家说说解气不解气?
说它是争气芯片,还有一点,那就是这一款芯片跟龙芯一样是完全自主设计的。到目前为止,完全独立自主设计的国产高端芯片只有两种,一种是龙芯,一种是申威。前面我们说的是多核协同的问题,下面要说的是单核内部结构的问题。
本世纪初,中国决定自己设计芯片的时候,江南计算机研究所跟中科院计算机所一样勇挑重担,开始了芯片设计的征程。与龙芯遇到的问题一样,设计芯片难,建设生态更难,为了降低研发难度,必须使用别人的软件生态,也就是必须得兼容别人的指令集架构。关于怎样理解这个兼容指令集架构,前一个视频已有介绍,这里不再多说,你可以把指令替换成“口令”方便理解。使用一套标准的指令集,我们就可以说形成了一个独特的架构。龙芯选择了MIPS指令集,申威选择了兼容DEC公司的alpha指令集,通过多年的建设,已经建设成了两个自主指令集架构体系,在兼容的同时自己的架构已经是主体。因为是完全自主设计,所以能保证安全,龙芯和申威的芯片都是军工领域专用芯片。
四、关于架构选择
有人说,为啥龙芯和申威完美错过了现在最主流的三个架构呢?并不是像很多人说的那样,我们的科学家眼光不行,让他们站到当时的历史条件下,也不见得能有更好的选择。X86很好用,而且支持Windows操作系统,但在当时的条件下,大家认为人家可能授权给咱们吗?就算授权,咱们买得起吗?后来我们的龙芯和申威做出来了,AMD和Intel了解到中国已经可以自己设计通用芯片了,与其让中国另立炉灶,还不如授权给中国,让中国帮忙发展X86的市场。于是上海兆芯和北京大学获得了授权,研发出了兆芯和众志,从国家申请到了很多的科研经费提高了国产芯片的性能,这个时间刚好到了2010年左右,而这正是龙芯几乎申请不到科研经费的时候。
也许你会说,本世纪初ARM也并不贵啊,怎么不选择?确实是这样,但当时的ARM指令集主攻嵌入芯片,不考虑高性能芯片的方向,所以根本不支持高性能芯片必须支持的乱序执行指令。我国要研发的是通用高性能芯片,兼容ARM根本实现不了,怎么选?后来它又发展起来了,也支持乱序执行了,而且跟Android系统形成了良好的生态,但我们总不能放弃以前的架构重新跟它跑吧?
再说最近大火的RISC-V架构,完全开源,可以自由更改,确实很厉害,但它是2010年才提出来的,龙芯和申威不可能等它出来再研发吧?当然,最近这些年,我国芯片业也积极拥抱RISC-V架构,努力建设自主产业生态链,并不算完美错过。所以,不要总是站在未来人视角去评价以前的选择。与其眼红别人的架构和生态,不如利用好中国的市场,努力给自己的架构完善生态。毕竟龙芯和申威都发展成了完全自主的架构,只是对其他架构能兼容而已,之所以要兼容,也是为了借力人家的软件生态。
自主设计芯片,虽然理念比较先进,但苦于生产工艺被国外控制,难以跟上最好的工艺发展,单核性能还有很大的提升空间。如果有一天,这些芯片可以自由使用最先进的工艺制程,其设计出来的芯片一定不比国外的差!如果有一天,国内针对自主芯片的软件生态建设起来,也可以逐渐放弃对其他架构的兼容成为完全独立的架构体系。当然,这样的设想需要一步一步来完成,现在龙芯和申威的芯片都已经开始生产办公电脑了,主要应用于国内办公市场,通过办公市场的培育,逐渐走向大众市场,也不会很遥远了。加油!
关于自主设计芯片,你认为中国需要多少年能在单核性能上,追上主流芯片水平?你认为中国有可能建立起自己的软件生态吗?请在评论区发表您的观点,我们让时间来鉴定大家的远见。