“试想一个国家需要完全依靠从一个与之有着战事冲突或经济不稳定的国家进口某种珍贵商品,而且没有这种商品,其整个社会将被迫停顿。再试想这个国家是中国,而与之有着战事冲突的国家是美国,而该商品是 CPU”---引自美国《连线》杂志。
前不久,龙芯总设计师胡伟武先生引用了上面这段话。他认为,通用CPU芯片有两层含义:是信息产业的基础部件,是武器装备的核心器件。我国由于缺少自主的CPU技术和产业,不仅信息产业严重受制于人,国家安全也面临威胁。另一方面,我国IT产业的利润低下,多数时候在给人当“装配工”,繁华的电脑出货量背后是以来进口维系的核心技术空洞。(51CTO独家专题: 风雨八年 揭秘国产“龙芯”服务器)
本文并不展开讨论龙芯的战略意义和肩负的使命,也不在赘述有关CB50-A龙芯刀片服务器的产品内容,单就胡伟武先生透露的有关龙芯产品未来的发展路线和龙芯四核/八核处理器的解读。
龙芯之父——胡伟武先生
从科研到“超龙计划” 龙芯未来用三条腿走路
龙芯研发之初的使命是保障国家信息安全,支持国内信息产业发展。胡伟武作为总设计师,在回忆龙芯处理器的开发历程时感慨:十年来,龙芯已经从当初的科研成果,逐渐成长为龙芯处理器产品,并衍生成现在的整个龙芯产业。市场上已经有数十个型号的龙芯产品得到应用,而去年在江苏实现了10万台龙芯电脑的销售成绩(电脑下乡)。此外,龙芯产品由于自主化优势,在网安、工控、消费类电子领域的市场份额与日俱增。
“在开放的情况下打破垄断,难度要比在封锁的情况下突破封锁要难得多。”胡伟武表示,龙芯面对的是开放的市场环境,用户更愿意选择成熟的产品。2006年初,中科院计算所通过审慎的讨论,启动了“超龙计划”,提出研制面向曙光服务器和高性能计算机的龙芯3号多核CPU,并计划应用在曙光6000超级计算机上。
据了解,超龙计划的意义在于帮助龙芯从单一的产品和散点式商业化进程推动到以服务器、台式机和嵌入式等领域为主题的IT产业链中,形成全面的商业化发展路线。2009年底,龙芯3A处理器研制成功,正式安装在曙光公司研发的龙芯刀片服务器上进行调试,并于今年4月成功发布,也标志着“超龙计划”取得了阶段性的成功。
从产品路线图来看,龙芯处理器未来将主要有三条产品线:
总体来看有三大领域,分别是面向服务器和HPC领域的“大CPU”龙芯3系列处理器——包括刚发布的曙光CB50-A就属于这条产品线,其产品刚刚发布第一代:龙芯3A,采用65nm制造工艺,集成了4.25亿晶体管,原生四核,1GHz主频,性能约为16GFlops;其下一代产品龙芯3B已经设计完成,同样基于65纳米工艺,内核数达到了8个,计算性能达到128GFlops,据透露,龙芯3B将于今年6~7月份完成实物流片;未来的龙芯3C正在设计中,预计采用28纳米制程工艺(确实够先进),集成16个处理器内核,主频也达到了1.5GHz,计算性能预计达到384GFlops,预计于2011年底左右推出——笔者认为,龙芯处理器如果能按路线图顺利推出龙芯3C产品的话,无论是在工艺上,还是技术上都已经不弱于2011~2012年英特尔和AMD计划推出的主流企业级处理器——确实值得期待。
面向普通计算机和嵌入式应用的龙芯2系列处理器已经推出了两代产品,分别是龙芯2F和龙芯2G,可以看到龙芯2G的制程工艺从2008年的90纳米升级到了目前的65纳米(应该是意法半导体代工),单核1GHz主频,集成DDR3内存控制器和PCI总线控制器(等于集成了北桥);而未来的龙芯2H在保持龙芯2G规格的同时,集成了GPU、南北桥等,几乎是“一片走天下”的嵌入式处理器。
笔者认为,相比“大CPU”,面向普通计算机的“中CPU”没有在性能上有太多的“想法”,和国外主流x86厂商力推多核与高主频的处理器相比,龙芯2系列低调的多,却走了一条整合的路线。不得不说,在MIPS架构并不完全兼容x86应用程序的情况下,龙芯走这样的路线十分明智,避开了与绝对优势“对手”的竞争,转而以整合性能,功耗,多媒体性为主,利用整合带来的平台低成本和低功耗,获得用户市场。
最后一条产品线是面向移动、消费电子(指手机/MP4/掌上电脑等)、嵌入式应用的龙芯1系列处理器。目前龙芯1系列也发展到第二代产品龙芯1B,处于稳定性考虑采用了130纳米工艺,300MHz主频有助于超低功耗的实现,整合了GPU和南北桥——充分符合嵌入式对处理器的需求。
胡伟武先生表示,龙芯未来还将推出安全类芯片,应用在特种计算机/服务器和保密装备中。处于自主知识产权的处理器也必将填补“敏感”领域的IT应用空白。
揭秘龙芯8核性能 能效比大胜x86处理器
从前文我们对龙芯产品路线图的拆解,可以看出目前性能最强的龙芯处理器是面向服务器的龙芯3A——凭借65nm工艺制程,原生四核架构,主频1GHz,内含两条HT超传输总线和两个DDR2/3内存控制器,使其架构上不输于任何主流的x86架构处理器。
下图给出更多关于龙芯3A处理器的细节,这里只提一下GS464处理器核的意思是Godson464计算核心(Godson是龙芯的开发代号,玩笑称龙芯“狗剩”也是这么来的)。在上一篇文章中我们队龙芯3A做了一些讲解(详情请见:CB50-A龙芯刀片服务器内部设计结构详解),这里不在赘述。
对于即将于今年6月~7月流片(试制)的龙芯3B八核处理器,这里要详细介绍一下:该处理器采用65纳米工艺,主频1GHz,片内集成了8个龙芯GS464处理器内核(后面我们会说它是如何做的),双精度浮点能力达到128GFlops(四核龙芯3A的双精度浮点只有16GFlops)。根据目前的资料,龙芯3B的八个内核会共享4MB L2缓存(这里要多说两句:由于龙芯是MIPS架构,与x86架构执行原理不同,因此并没有大容量的缓存设计(如x86处理器动辄10来兆的缓存等)。总之,别用缓存多少判断不同架构的处理器性能,感兴趣的同学可以自行研究一下);而内存控制器和HT超传输总线仍然保持与四核龙芯3A一样的规格,处理器的设计功耗小于25瓦。
处于保密考虑,我们并没有获得龙芯3B八核处理器的晶圆图和内部结构图。但是,我们可以通过龙芯3B和未来16核龙芯3C处理器的规格推测其大致架构。
如上图所示,龙芯3A的结构我们已经了解。而龙芯3B的封装似乎是两个龙芯3A通过MCM技术(MCM是一种由两个或两个以上裸芯片或者芯片尺寸封装(CSP)的IC组装在一个基板上的模块,模块组成一个电子系统或子系统)封装在一起得到的——让人想起了英特尔早期的双核/四核处理器以及AMD最新的“马尼库尔”12核处理器(将两个6核“伊斯坦布尔”封装在一起)。实际上,这种做法在半导体行业非常普遍,所要解决的问题也很常规——两个封装的处理器如何保持低延迟通讯和协同工作——龙芯的答案很简单:用Hypertransport超传输总线直连。
在龙芯3A中,两条HT总线的分工是:其一负责HT总线的调度,另一个负责缓存以及MC;那么到了龙芯3B,一主一从两个内核如何互联呢?我们来参考一下12核“马尼库尔”的互联吧:
马尼库尔用了1条半HT总线连接两个Die——DCA 2.0直连架构2.0的优势之一就是单条HT总线可以拆一半。
可以看出,马尼库尔每个内核有4条超传输总线,因此各分出了1条用于两者之间的互联通讯,那么从八核龙芯3B对外只有2条HT总线来看,可以推测两个3A内核各分出一条HT总线用于通讯,形成了前图所示的封装结构——当然,这只是猜测,具体细节我们不得而知。
展望一下16核龙芯3C,四个龙芯3A模块通过MCM技术“简单的”封装在一起——如果仍然保持现在的HT总线规格,那么显然是不够的(每个模块的两个HT总线要分别和其他两个相邻模块通讯)。所以,可以肯定的是,HT总线条数会增多,以应对复杂的内部通讯,而如果只是实现相邻内核模块间的直连,也未免太落后了(要知道16核龙芯3C直接跨越了45nm和32nm工艺,到了28nm)。因此,龙芯3C大致会像“马尼库尔”一样用多条HT总线将每个内核之间的通讯时间减少到“一跳”。目前,我们也只能从性能提升幅度来观摩龙芯3C的设计——384GFlops的双精度浮点速度。
我们来揭晓一组实测数据,包括了4核心龙芯3A,8核心龙芯3B,英特尔上一代面向多路的至强7460,Nehalem架构的至强X5570,还有上一代安腾处理器,AMD的皓龙8384“上海”,以及IBM的Power 6+处理器,主要体现的是其双精度浮点运算性能、功耗、以及效能比(每瓦功耗的实际计算性能Gflops):
可以看出龙芯处理器的优势了——超高能效比。4核龙芯3A的功耗只有10瓦,而8核龙芯3B的功耗也只有20瓦,与之强大的双精度浮点运算性能相比,其能效达到了1.6Gflops/Watt和6.4Gflops/watt。相比之下,英特尔和AMD的x86处理器普遍不具竞争力——同样是四核的情况下,其产品性能均超过龙芯3A,但代价是功耗居高不下。在面向数据中心和高性能计算的环境中,单一处理器的性能并不是首选,用户更看重功耗带来的运营费用,因此能效比方面龙芯拥有巨大优势。而作为RISC小型机的主力Power 6+,受制于核心过少(只有2个),因此即便主频高达4.7GHz,也没有得到更高的双精度性能,能耗也在120W,自然比不了龙芯。
可惜的是,这张实测图因为时间关系,没有加入英特尔最新至强5600,至强7500系列处理器,AMD十二核“马尼库尔”,IBM Power 7处理器做比较,相信这些处理器的效能比会超过龙芯3A,但能否达到龙芯3B强悍的6.4Gflops/Watt,则是一个问号。我们将在今后对比这些新款处理器的实测数据来验证。
最后,读者大概有一个疑问:为什么龙芯多核的效率会如此高?4核还是16GFlops,8核就到了128GFlops,16核到了384GFlops——核心数量翻倍,理论上由于多核通讯的延迟和执行效率,实际性能达不到翻倍,而龙芯3A到3B再到未来的3C,计算性能有革命性的提升。其实,这不仅仅是多核心带来的效率,还有架构和制程带来的改善——与x86架构不同,MIPS这类架构在并行计算上具有双精度优势,且由于对I/O读写的要求低(x86指令集决定了其70%的时间在做I/O操作),因此龙芯在“胶水”出多核的时候,就没有x86处理器碰到的I/O瓶颈那么严重,实际计算效率都要高的多。