中国自主研发的CPU问世 性能相当于英特尔PII
斑竹们都不在吧,眼不见为净吧。
中国自主研发的CPU问世 性能相当于英特尔PII
瞭望周刊
这些天,中科院计算所在紧张地期待着,从生产线运回来的几十个投片将被一一插上计算机主板,进行调试,如果成功则意味着水平与英特尔奔腾2旗鼓相当的龙芯1--中国人自主开发的高性能通用芯片正式“新鲜出炉”,跨入规模化生产阶段。半年前,计算所曾向新闻界演示了龙芯的第一款“验证芯片”,但那仅仅完成了龙芯的逻辑设计工作,因为它是在一个可编辑的FPGA芯片上“烧制”出来的“样本”,仅此一份。之后,课题组对龙芯1进行了物理设计,形成了版图并拿到集成电路流水线上生产,行话称之为“投片”。这是龙芯1规模化生产前的必备工作。别看龙芯仅有指甲盖大小,但关系到中国的信息系统安全和信息产品安全。
龙芯的主要设计者胡伟武在接受本刊记者采访时说,“我们一直是用心血浇灌龙芯,付出了难以想象的艰辛。”秉承老辈人的传统,他们给芯片取了个小名叫“狗剩”,希望“名字贱一点容易养大”。
15个月,一群平均年龄不到30岁的年轻人终结了中国计算机产业“无芯”的尴尬历史。而我则在3个小时内,见到了关系“龙芯”命运的两个关键人物:中科院院士、计算所所长李国杰和主持芯片设计的年轻科学家胡伟武,听他们津津有味地谈龙芯诞生背后的故事,采访几乎成了一种享受。
胡伟武告诉记者,中国科技界不缺精兵强将,缺的是统领三军的“帅”,而李国杰正是这样的一位“大帅”。他自认是一员“福将”。而李国杰在谈到胡伟武时,毫不掩饰自己的欣赏与爱护。
回来整理采访笔记,发现他们的谈话有许多惊人的相通之处。尽管时空交错,尽管年龄相差23岁,他们的思想和精神却因龙芯而休戚相关。
李国杰决定做芯片时,可谓背水一战。芯片的灵魂是设计和标准。而把芯片作出来不仅仅有逻辑设计、版路设计,还包括生产芯片必需的IP库和芯片加工厂参数的调整,这都是芯片公司的机密,花再多钱也买不到。他刚来计算所时,面临的最大问题是科研资源分散、低水平重复,研究人员各自为政,能申请到几万元、10多万元的项目就很满足了。
李国杰认为,计算所应该在一些国家战略性的项目上集中力量,优化资源。尽管人们普遍认为计算所没有能力做芯片,但李国杰分析说,目前美国PC机普及率接近50%,而在中国才仅达3%左右,发展空间巨大。芯片产业的做大做强,必将带动整个信息产业的发展。未来10年,是中国芯片产业发展的关键阶段,想等到所有的科研条件都具备的时候再来做芯片,最好的时机也早已错过了。因此,李国杰认定高性能通用芯片是国家信息产业发展的战略所需。随即决定,拿出当年全所一半的运转经费1000万元来做龙芯。
优良的技术路线
年轻人的表现比李国杰预料的还好。仅用5个月,就设计出了第一款验证芯片。接着,又马不停蹄地开始做投片。从验证芯片到正式投片调试成功仅用了10个月。
这就是龙芯的速度,连胡伟武自己也觉得吃惊。他认为,成功的原因首先在于,自始至终坚持了十分优良的技术路线。立项之初,李国杰确定的目标是“高性能、通用、一步到位”,在后来的摸索中,课题组又确定了兼容以及采用RISC结构这两个具体目标。
中国人是否要自己做高性能通用芯片?不少人认为,处理器最大的市场在嵌入式方面,中国的处理器设计应该定位在嵌入式上,没必要也做不出通用处理器设计。诚然,嵌入式处理器的需求量很大,但大市场不一定能赚钱,小市场有时反而能赚大钱,因为后者是核心技术,别人做不了。英特尔就是一个典型的例子,英特尔处理器数量也只占全球市场的1.5%。其次,中国不是小国,核心技术自己不掌握不行。实际上,胡伟武认为,嵌入式处理器可做可不做,因为别人的嵌入式处理器价格很低,且不会卡我们。有的国外公司甚至主动提出,只要用其生产线,他们可以免费提供嵌入式的IP核。
中国的芯片是否要和别人的兼容?胡伟武认为,能否兼容非常重要。回顾中国计算机发展的历史,应该说,我们的“祖上”也是挺“阔”的,直到20世纪80年代初,我们的处理器设计技术不比别人差多少。落到今天这个地步,很大程度上是吃了不兼容的亏。因为现在计算机中绝大部分费用不是花在硬件上,而是花在软件上。若不兼容,自己设计指令系统,只能图一时痛快;与其他主流指令系统兼容,确实很麻烦,有时为了一条指令就得修改数据通路,增加不少东西,但却可以一劳永逸。龙芯课题组有一个很精干的操作系统组,仅4个人,在3个月内搞定一切与软件有关的东西,就是得益于兼容设计。胡伟武一直很庆幸采用了兼容的做法,如果自己设计指令系统,绝不可能在短时间内获得完善。
是步步为营还是跨越式前进?课题组决定稳扎稳打。采用从系统结构设计,到C模拟器设计,到Verilog仿真,到FPGA验证,到标准单元投片,再到全定制投片的方法。在系统结构方案确定后,首先设计了一个Cycle-by-cycle的C语言模拟器,该模拟器详细描述了龙芯处理器的系统结构,能够模拟处理器每一拍中每一位信号的变化,并验证设计的正确性,发现错误及时纠正,确保联调时基本一次成功。若是当初采取跨越式的设计方法,直接进行逻辑设计,恐怕会欲速则不达,因为越上层的设计,调试越容易,而越底层的设计,调试越困难。
人必须要有点精神
“犯强汉者,虽远必诛”。背后是骏马、雄狮,一幅威武的西征军队图。胡伟武把这幅图画放在自己的便携式电脑的屏幕保护程序上。“有人说中国人做不出自己的芯片。我就不信那个邪。我常常跟我的学生讲,国家是每个人的国家,每个人都有责任为国家的发展出力。国家发展好了,你的日子自然好过了。我经常出国,在印度这样的国家我每天靠56美元的补贴能过得非常舒服,而在美国,每天补贴84美元却过得很拮据--国力强弱对比关系到每个人。”
有趣的是,李国杰也非常强调对国家、对民族的责任感,他认为衡量一个科研人员的水平高低,不仅应当看他的技术实力,还要看他是否具有将个人价值融入为祖国繁荣富强而奋斗的责任感,是否具有自立于世界民族之林的自信心。李国杰回忆起当年他领导研制曙光计算机的岁月,深有感触地说,要做成任何事业,最不可少的是激情。回国后,国家给我个任务,研制出自己的高智能计算机。有人对我的能力也表示怀疑,说李国杰在国外只会写点文章,从来没有做过机器,他能搞出什么来!就是在那样的背景下,我拉了一个队伍,埋头苦干,分析计算机的核心操作系统,最终把它搞明白了。1992年3月11日,我们开了誓师大会,选拔了一支“轻骑兵”,一共6个人杀到美国去,租了个房子搞研究。主要是想利用那里的研究氛围。他们出发的时候,大家颇有“风潇潇兮易水寒,壮士一去兮不复还”的意味,然而他们最终凯旋了!我们称之为“洋五七干校”,一天工作16个小时以上。并且借用了容国团的“人生能有几回搏”来鼓舞士气。就是靠着这种“不达目的不罢休”的坚定信念,凭着一番报效国家、民族的激情,我们作出了曙光计算机。1999年我来时,计算所正处于最低谷,靠什么能够重振计算所的辉煌?惟一可以凭借的就是信念。
现在,“人生能有几回搏”被贴在龙芯实验室的墙上。胡伟武说,15个月来,课题组的成员付出了难以想象的艰辛,尤其是在验证芯片几次调试的阶段。好多人都有调试程序的经验,但很少有人调试过操作系统,而在一个本身就可能出错的处理器上调试过操作系统的人更少--挑战就在这里,当出现一个错误时,应用程序、操作系统以及处理器本身都是怀疑的对象,需要多方面的协调及分析。我们曾经在C模拟器、Verilog模拟环境、以及FPGA验证系统上分别都运行了LINUX操作系统,每次都是连续几天几夜的鏖战。
2001年8月19日,胡伟武他们设计的龙芯成功地把LINUX操作系统boot起来。当“login”的(用户登录)提示符出现在屏幕上时,计算所北楼309房间一片欢呼。
龙芯让他们自豪。尤其是龙芯的系统结构设计值得称道,可以说目前世界上最先进芯片的系统结构技术,该有的龙芯都有,不少地方还有创新。最令胡伟武得意的是,龙芯中还专门针对网络攻击进行了安全设计。他解释说,缓冲区溢出是一种非常普遍、非常危险的漏洞,是目前大多数网络攻击所采取的办法。在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统死机、重新启动等后果;更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。龙芯通过允许操作系统对堆栈段的取指进行限制,可以有效防止利用缓冲区溢出技术进行的网络攻击。
我不是睡眠最少的
在课题组中胡伟武的睡眠至少不是最少的,但也有一个星期没有正经睡觉的经历。尤其是在8月19日龙芯诞生前的那个星期,更是紧张得像打仗,看看他记忆中的日记吧--8月12日,星期日。下班前得知第二天有领导要来所里检查工作,决定冒险把原来定的联调时间提前一周,希望一次成功。但怕万一失手会影响士气,只找了几个骨干在星期一晚上开始联调。即使发现一个很小的错误,也要修改,而修改一次设计再形成新的FPGA烧制文件,需要至少8个小时。只有一天24小时全拿来工作,才能保证有两次修改机会。
8月13日,星期一。凌晨四点,把FPGA文件写入FPGA,没有任何动静。很快就用逻辑分析仪发现了问题。原因是启动时与主板握手机制有缺陷,导致主板一直没有撤掉复位信号。赶快修改,12点形成了新的FPGA烧制文件,写入后还是没有任何动静。晚上接着调试,发现芯片插卡上有两个焊点短路,去掉后主板的液晶显示器上如约显示出“GODSON”(龙芯的英文译名)字样,立时爆发出一片欢呼。
8月14日,星期二。我们决定连续作战,到晚上11点左右,成功地运行经过改造的主板上的BIOS系统,相当于一个简单的操作系统,又是一片欢呼,这时课题组的其他成员才知道,我们