sunyuan转载
CPU是计算机系统及各类电子设备的核心,其设计和制造是技术实力的象征.因为缺乏自主的CPU设计和实现技术,我国信息产业中与CPU相关的许多核心技术及产品仍然主要依赖进口,不仅经济上受制于人,产品的增值空间小、盈利能力弱,而且信息系统的安全乃至国家安全也面临威胁.因此,研制自主知识产权的CPU芯片甚为必要.
在知识创新工程试点工作中,中科院把掌握信息产业核心技术、解决我国信息产业“空心”的问题作为重要任务,并以高性能通用CPU的研制为突破口,于2002年启动实施知识创新工程重大项目“高性能通用CPU芯片研制”,进行龙芯2号高性能通用CPU的研制.这项工作同时得到了国家863计划计算机软硬件技术主题的支持,成为该主题的重点课题.项目以中科院计算所为依托单位,并联合微电子所、自动化所和北京微电子所等单位进行集中攻关,在通用CPU的芯片设计及人才培养等方面取得了一系列成果.龙芯2号紧紧围绕市场需求进行系统设计,在研制过程中就有了很好的市场前景,出现了“市场等芯片”的局面.
一、瞄准国家战略需求,实现跨越发展
根据中科院基础性、战略性、前瞻性的要求以及计算所作为国立研究所的定位,所领导和课题组在立项之初就制定了“瞄准国家战略需求,坚持高起点,实现跨越发展”的目标.即从通用CPU入手,先发展高性能通用CPU芯片,突破其中的关键技术,再在此基础上带动嵌入式的应用.上述目标对龙芯2号提出了两方面的要求.一是通用,即龙芯2号不仅可以作为PC机和服务器芯片使用,而且可以在大量的嵌入式场合使用.二是高性能,作为通用CPU芯片,龙芯2号必须达到一定的性能,在性能上与Intel、IBM、SUN等公司生产的通用CPU芯片差距不能太大.
龙芯2号的研制目标为:通过研制与主流兼容的64位、四发射高性能通用CPU芯片,掌握现代CPU的核心设计和实现技术.在性能方面的目标为:在0.18微米工艺条件下达到500MHz主频,使用国际通用的SPEC CPU2000测试程序测试的分值为300分.其中SPEC CPU2000的分值达到300分,意味着500MHz的龙芯2号实际性能将与1.3GHz左右的PIV性能相当,超过威盛CPU的实际性能.
为了实现上述目标,课题组制定了如下技术路线.
一是做到战略上的高起点和战术上的稳扎稳打相结合.在任务紧难度大的情况下,课题组人员根据实际情况,在项目的具体实施中做到稳扎稳打、步步推进.在实现方法方面,在结构设计、逻辑设计、物理设计等阶段都进行步步为营的验证和分析,尤其是在结构设计阶段进行一拍一派的C模拟器模拟,并把C模拟文件作为详细结构设计的文档,实现 “可执行的结构设计”.在项目进度方面,为降低风险采用“小步快跑”的策略,进行多次流片并根据流片结果不断优化结构和物理设计以提高性能.目前龙芯2号已经进行了两次成功的试流片,龙芯2号0.18um的定型芯片也已于2004年7月初交付中芯国际进行流片.根据实际的性能测试和分析,龙芯2号首片的性能是龙芯1号的3-5倍,而7月份流片的定型芯片的性能又是首片龙芯2号的3-5倍.
二是充分发挥结构设计优势和进行软硬件协同的设计.在结构上通过CPU中各个层次的并行性开发来提高性能.这些并行性包括指令级并行、数据级并行以及线程级并行.龙芯2号在并行性开发上主要开发指令级并行技术,即实现四发射结构,并实现充分的乱序执行技术有效发挥多发射通路的效率,减少指令间的互相等待.此外,龙芯2号还实现了数据级并行的媒体处理部件.软硬件协同主要指通过编译优化及硬件对编译器的支持提高性能,既不片面追求复杂的硬件,也不把沉重的优化负担完全压在编译器身上.龙芯2号的后期版本及龙芯3号将进一步实现线程级并行技术.
三是从兼容起步的策略.由于现代计算机中软件开发费用已经大大超过硬件开发费用,因此兼容性设计是龙芯CPU设计的重要目标.龙芯CPU与主流CPU之一的MIPS兼容.除了用于计算机外(SGI的工作站主要使用MIPS兼容CPU),MIPS CPU还在网络、打印机、游戏机等领域得到广泛应用.由于支持MIPS兼容的指令系统,除了很容易运行LINUX操作系统外,龙芯CPU还能支持VxWorks以及WinCE等主流嵌入式操作系统.当国家与企业有足够的投入和其他条件成熟时,将按市场需求和技术发展趋势设计自己的指令系统.
四是坚持系统设计、物理设计和验证的紧密结合.首先,结构设计和物理设计需要紧密结合.在龙芯2号的设计中,流水线的最大逻辑路径不是由体系结构设计的需要来确定,而是由物理设计的要求来确定.即先确定每一级流水线的最大延迟并在此约束下进行结构设计.其次,验证工作贯穿于设计的整个过程,占总工作量的60-70%.验证的难度在于对于CPU这样的复杂系统,任何验证工作只能证明错误,不能证明正确.因此,验证的目标是为了增加项目管理人员的信心,验证的目的是为了发现错误.
二、坚持产出导向,加速产业化
根据计算所领导关于科研人员应该以产出为目标,而不是以申请经费为目标的要求,龙芯课题组在龙芯2号的研制过程中就着眼于龙芯2号的未来应用,并随时根据市场的要求调整设计目标.
龙芯2号的研制目标是实际性能达到PIII或低端的PIV的性能.这样性能的芯片与目前主流的通用CPU芯片相比还有一定差距,但还是有很大的市场空间.为了提高市场竞争力,课题组在分析了CPU从Performance per Second,到Performance per Dollar,到Performance per Watt的发展过程后,在低成本和低功耗设计上下工夫,提出CPU加上北桥芯片的成本在20美元之内,功耗在3-5瓦之内的设计目标.为此,课题组在经费和任务都紧张的情况下进行了北桥芯片的设计,以降低系统成本.
龙芯2号的主要应用目标是Linux桌面PC、低端服务器、信息家电、网络防火墙、路由器交换机等,其低主频的早期版本也可以用于NC、无盘工作站等瘦客户机.针对上述应用,在龙芯2号样片的基础上已开始进行系统设计,为潜在用户提供解决方案.
正是由于在龙芯2号的研制过程中紧密联系市场的需求,使得龙芯2号在设计过程中就有了很好的市场前景.虽然龙芯2号定型芯片还在设计,但已有很多企业使用龙芯2号的试验芯片进行系统及市场开发.还有不少海外企业准备购买龙芯2号的IP(龙芯2号是目前世界上唯一可出售设计技术的64位高性能CPU芯片).
三、坚持以任务带学科,在执行任务中突破关键技术
作为一个国立研究机构,承担国家的重大项目,处理好任务与学科的关系十分重要.片面重视完成任务忽视科研和片面重视论文忽视任务都是不对的.任务和学科不是对立的关系,而是统一的关系.在执行项目过程中,课题组始终坚持“以任务带学科,以系统带科研”,即在执行任务过程中发现问题,并通过研究解决问题,向任务提供关键技术.课题组十分重视处理好完成任务和人才培养的关系.龙芯课题组中有三分之二人员是研究生,课题组的导师克服把研究生当作廉价劳动力的思想,结合任务站在学生的角度来考虑适合每个学生的发展方向.坚持研究生的论文应该“从任务中来、到任务中去”,“源于任务、高于任务”,并把培养超过自己的学生作为重要目标.在课题组中,很多研究生都成了业务骨干,有的甚至在读期间就成为子课题组长.
在上述思想指导下,经过努力,项目在芯片设计方法学、体系结构设计、验证、CPU芯片物理设计、通用CPU芯片的配套软硬件环境等关键技术方面,取得了显著突破与创新成果(篇幅所限,这里不一一列举).
四、前途是光明的,道路是曲折的
龙芯课题组是一支年轻的队伍.从2001年初的以研究生为主的没有芯片设计经验的十几人的队伍,经过短短的三年时间,已发展成为近百人的能打硬仗的队伍,人员平均年龄只有27岁.为了完成任务,全组常年每周工作六天,每天工作十几个小时,从2001年起三个春节中有两个春节加班.在项目紧张的时候经常连续一个礼拜不分昼夜地工作.每次流片成功后,课题组成员都要到天安门广场看升国旗以激励士气.
经过三年多的努力,目前课题组已基本掌握通用CPU的设计技术,龙芯2号的实际性能已达到2001年左右的国际先进水平.与国际上其他通用处理器设计公司如Intel、IBM、SUN等公司相比,也许课题组在经验上还差些火候,但在关键技术的掌握方面,已经不存在“没有捅破的窗户纸”,需要的是更多的实践和大工程的锻炼.
在完成现有任务的基础上,课题组拟从2004年下半年开始,使用0.13或0.09微米工艺,争取在年底前实现600-800MHz的CPU芯片,并在2005年达到1GHz以上的目标.同时通过进一步结构优化,使其实际性能相当于1.5GHz到2GHz的PIV的性能.