找回密码
 注册
查看: 2123|回复: 0

综述:揭开“龙芯”诞生内幕 zz

[复制链接]
发表于 2003-11-27 19:44:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
综述:揭开“龙芯”诞生内幕
--------------------------------------------------------------------------------
  
http://www.sina.com.cn 2002年08月19日 15:01 新华网
  
  《了望新闻周刊》报道:这些天,中科院计算所在紧张地期待着,从生产线运回来的几十个投片将被一一插上计算机主板,进行调试,如果成功则意味着水平与英特尔奔腾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系统,相当于一个简单的操作系统,又是一片欢呼,这时课题组的其他成员才知道,我们是在龙芯上运行程序。12点,要求所有人回家睡觉。晚上雷声大作,风雨交加,以示庆贺。忽然觉得,几个月来沉重的压力稍有缓和,我却兴奋得难以入眠。
  8月15日,星期三。上班后开始试图启动LINUX操作系统,但每次都在最后进入用户态启动各种应用程序时出错。怀疑是TLB的问题,因为访问用户空间才开始使用TLB。一直跟TLB斗争了三天两夜,中间发现了不少问题,每次充满期望地改过来却总是归于失望。
  8月18日,星期六。直到吃晚饭前,才恍然大悟,发现这些天来困扰我们的问题,赶快修改。
  8月19日,凌晨2点多。形成FPGA文件并写入FPGA,2点42分,屏幕上出现了“login”字样,登录进去随便玩,和使用其他机器上的LINUX一样。我用vi编辑了一个文件记录这一历史时刻,兴奋得马上给唐志敏打电话报告好消息。那时虽然我们都已经极度疲惫,但在场的6个人都兴奋得毫无睡意,一直聊天到天亮。巧的是,今晚也是风雨交加。早上6点,回家睡觉,我连续睡了20多个小时。
  为龙芯而“痴狂”
  这么“玩命”,更深刻的原因也许在于,胡伟武对做芯片的痴迷。在大学毕业时,他和同学合作过一个与8086指令级兼容的处理器,这是一个用400多个74LS系列的芯片搭起来的电路,能够运行8086指令系统中除了十进制和除法指令以外的所有指令。由于没有制版的费用,所有的连线都是手工焊的。
  2000年10月中旬,所领导派胡伟武到母校中科大去搞招生宣传。回到曾经工作过的实验室,看着自己心爱的机器静静地躺在那里。面对与十年前一样凌乱的实验室和满桌触手可及的芯片、电容、电阻、电烙铁,胡伟武有一种重操旧业的冲动,“因为那些没日没夜地与逻辑门、触发器、译码器、选择器玩命的日子有一种深深的诱惑。”而此时,计算所正在筹备芯片设计项目,胡伟武给负责筹备工作的系统结构室主任唐志敏打电话,主动请缨,开玩笑说一两年之内做不出来,“提头来见”。
  在做处理器设计之前,胡伟武作了近十年的共享存储系统结构研究,他所做的一个用女儿佳佳的名字命名的软件,让不同计算机之间实现了内存的共享,风靡20多个国家。但受囿于芯片和操作系统,常常觉得不够“过瘾”。他说现在自己做芯片,感觉被束缚的手脚一下得到了自由。他希望将来把自己在共享存储并行系统方面十来年的积累做到实用系统中去,“随心所欲”,简直“爽呆”。回顾这些如珍珠般闪亮的岁月,胡伟武说充满了艰辛,但其中的乐趣以及成功的兴奋,也使得一切的辛劳变得可爱起来。有好几次,他在早上六、七点钟打开实验室的门,发现有些人手里扶着鼠标就靠在椅子上睡着了。这样的场景常常使他忍不住想落泪。但胡伟武还是叫醒伙伴们,询昨天晚上的进展,并鼓舞大家接着干——他开玩笑说,有时候觉得自己比“周扒皮”还狠。胡伟武有一个叫张福新的学生,在龙芯验证芯片出生前的两个月中,很少在凌晨4点前睡觉。有一次,他们在深夜等计算机的运行结果,聊天时说到了生死。张福新说最不希望老死,看着自己的生命一点点被耗尽。
  胡伟武动情地说,我们有一种观点,我们现在落后这么多,别人不比我们笨,如果大家都一样一周五天,一天8小时上班,恐怕很难赶上人家,惟有像当年搞“两弹一星”一样拼命,至少得累死一批人,中华民族才可能不受压制,才有可能实现民族的伟大复兴。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表