OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 开发纪实(胡伟武):我们的龙芯1号(2)

共1条 1/1 1 跳转至

开发纪实(胡伟武):我们的龙芯1号(2)

菜鸟
2003-05-10 16:06:00    评分
六点多钟吃完晚饭,我和张志敏老师一起往回走,走到北楼二楼时刚好碰见李所长和徐所长,李所长见我就问芯片到了没有,我不好瞒他告诉他已经到了几片,他说:"赶快调试,有结果马上告诉我"。由于芯片还没有焊回来,我和张老师等得很着急,就绕着计算所一圈圈地转圈。到8点多的时候许彤他们终于回来了,叫许彤他们去吃饭的同时我挑出一片再用万用表测一下。九点半,一切就绪,把带有龙芯1号CPU的子卡插到主板上,先运行一个简单的测试程序。我屏住呼吸按下电源键,主板的数码管上瞬间就显示出预期的"Godson-1"字样,引起我们一阵欢呼。这时候我心里有了点底。下面接着运行LINUX操作系统,开机后调试终端上呼呼地往上冒启动信息。我们正高兴,屏幕上却停了下来,搞得我们好紧张。经过分析后发现是BIOS的问题,原来我们用另外一个兼容处理器调软件但我们的处理器没有实现四条访存不对齐的指令而是用操作系统例外来模拟它们,在BIOS中例外入口没有初始化之前这几条指令执行不了。本来以为把这几条指令去掉很容易,因为我们已经在gcc后端把它们去掉了。但由于系统软件组准备不足,他们没有想到这么快就能开始联调,因此我们折腾了一个晚上才把这个问题搞定。 8月10日早上6点8分,"godson login:"的字样终于出现在显示器上,我们高兴得长时间的欢呼。我登录进去,用vi写下了文章开头的文字。然后,我们用测试IEEE 754兼容性的测试程序运行了一遍,没有出错。这时候我觉得我们已经成功了,把主频调到200多MHz也一切正常,感觉比我们原来在FPGA上的操作快多了,十分的爽(一个人一辈子这样的感觉不会很多)。玩了近半个小时,快到7点的时候我觉得没问题了上楼到办公室给李老师和唐志敏打电话。拨通李老师的电话后我说:"李老师,我是胡伟武"。他问:"怎么样"。我说:"成了"。他说:"我马上来"。没等我把地点告诉他,就把电话挂了。倒是跟唐志敏说得比较多,他正在北京的一个郊县开会,拨通后我说:"跑起来了"。他说:"什么跑起来了"。我说:"都跑起来了"。他说:"LINUX也跑起来了"?我说:"那当然。"他小孩似的兴奋,说:"太好了太好了太好了"。然后马上就往回赶。我与唐志敏共事10多年,他既是我的师兄也是我的老师,互相非常了解,从来没有见过他今天这样高兴得象小孩似的。 不到10分钟,李老师来了。不出所料,他还以为我们在三楼调试,没有找到地方,刚好张福新上楼拿东西碰上了。他说了很多鼓励的话,但也提了很多要求,临走时叫我们早点回去休息。可是我们一点也不困。一起出去吃了早饭回来刚好唐志敏到。他看了一会到9点了。我们那股喜悦的劲头没过,还是不想回去。本来昨晚说好调通后去天安门广场看升国旗,可是现在国旗早升起来了。我就说咱们还是去天安们去向毛主席报告去。我们组平时聚会每次都唱《打靶归来》那首歌,歌中战士们取得好成绩后通过歌声向毛主席报告的心态于我们是非常自然的。于是我们一起打车去天安门,那天是礼拜六又是暑假,人特别多,纪念堂门前的队伍拐了七、八个弯一直延伸到前门。我们排了一个多小时的队终于得偿心愿,于是大家回去睡觉。 8月10日调通的是A方案,即委托第三方做物理设计的方案。高兴了两天之后,我们又开始担心我们自己做物理设计的方案能不能成功,从A方案中排除了跨时钟域信号传输出错的可能性,因此主要的担心又集中在信号完整性问题上。我让让赵继业重新分析一下信号完整性,并让钟石强通过设计规则检查在版图中把凡是相邻500微米以上的平行线都找出来进行分析,觉得问题不大。8月29日,我们终于拿到了C方案的首批芯片。打开包装一看吓我一跳,可能是在海关检查时没有包装严密的缘故,芯片的引脚在运输过程中歪得不成样子。黄老师来看以后回去就病了。我从中挑出几片好点的出来,把引脚掰直,经过万用表测试后让许彤、范宝峡、和郑为民去焊接到子卡上去。把他们送走时我就担心他们会在焊接的现场进行联调(因为那里有一台我们的调试环境),因此中间还打电话要求他们尽快回来。可是晚上8点来钟,他们打电话回来说已经在现场把LINUX启动起来了。我在电话里面说要处罚他们违反工程规范擅自提前联调的行为,但心里很高兴。后来又让他们提高主频到200多兆(因为我们联调频率是50MHz),他们说已经是200多兆了。我这半年多来一直悬着的心才真正地放了下来,马上给黄老师打电话,黄老师听到这个消息后,第二天病就好了。许彤他们回来后,我又让张福新对调通的样机进行了更多的测试,主要是浮点测试。到晚上12点左右测完,没有发现问题。然后,我上楼准备给全组发邮件告知我们自己做物理设计的流片成功的消息。 我走在北楼的走廊上,夜半后走廊上空无一人,因此显得很空很长很静。我突然觉得非常怀念一年多前那种正常上下班的日子。那时侯每天下班后坐班车回家,在班车上给女儿讲故事,教她背三字经,回家帮老婆做饭,吃完饭后躺在躺椅上边看新闻联播边看着老婆哄孩子吃饭,礼拜天去爬香山。而现在这些事情好象很奢侈很遥远,家好象只是一个旅馆而已,女儿每每要求我下班后跟她一起坐班车回家而我一次也没能满足她,以至于女儿说:"你就知道做你的破CPU不要我们娘俩了。"在最紧张的时候老婆甚至为了我而辞职。这时候我突然非常想过以前那种美好的日子,这种怀念是如此地刻骨铭心以至于我觉得非常地对不住她们,这是在狗剩-1整个设计过程中唯一的一次。(写这篇文章的时候,我突然觉得我更对不住组里的兄弟们。我很无情地规定,每天晚上和礼拜六都算正常上班,只有礼拜天上班才算加班需要另行通知。我曾经多次把已经回家的兄弟叫回单位上班,最过分的一次,晚上12点多打电话把王剑叫了回来,他老婆肯定骂死我了。在8月份调通后有一次我要求加强作息纪律时,张福新说,要是按照正常的工作时间算,我们组可以从现在开始放假,一直到春节都够了。因此,在这里向全组兄弟以及他们的家人道歉,有时候我很严厉,因为我很着急,不管平时我怎么说你们,你们都是我的好兄弟,我脾气不好,请多多原谅不要见怪。等龙芯2号的设计定型后一定带你们出去休息几天)。 到办公室给全组发完邮件后,我靠在办公室的沙发上,觉得出奇的累,但又睡不着觉就在那里瞎想。我想起一些网友去年对我们"只要能做出来,再贵也要买"的鼓励,想起在我们向院党组汇报龙芯的工作出来后江院长追出来跟李老师说:"李院士,我就把这个宝压在你身上了";想起在年初的全所大会上李老师把龙芯1号的设计列为今年全所的第一件大事;想起我们花了上千万纳税人的钱终于没有浪费。我想起在过去的半年多中我们在不可承受的压力下在机房度过的无数个不眠之夜;想起女儿曾经天真地说:"爸爸,要是你做CPU做不过美帝国主义我长大后接着做";想起我们在最后交出流片的前两天所面临的巨大挑战;想起最后连续加班六天六夜的每一个细节,每一个累得毫无血色却执着不改的面孔,在我的有生之年,永远都不会忘记。那一刻,我泪水满眶。 第二天早上,我们终于如愿到天安门广场看到了升国旗。 接下来是应用的开发以及大量的测试,包括可靠性测试(如高低温测试、电压拉偏测试)、功耗测试以及性能测试等。我们每次使用或测试龙芯样机时,就象对待自己的孩子一样,为他取得的一点点成绩而高兴。我们8月10日调通的第一台样机,已经连续运行40多天,没有出现过任何异常。我有时也诧异于他的稳定,象X Window这样的大型程序,光源代码就500MB以上,居然一点也没有找出狗剩的错。后来我想明白了一个道理,我只要把一拍做对了,那么任何多拍也就对了。 CPU真正的成功不是在测试台上,而是在市场。对于潜在用户提出的应用要求我们是积极配合的。在龙芯1号联调成功的短短几十天内,我们已经配合有关单位或公司在狗剩上移植了大量应用软件,包括网络防火墙、指纹识别系统、VOD播放、NC等等。 在测试和使用过程中,我们也发现了很值得我们以后吸取的教训,一是CACHE太小(指令CACHE和数据CACHE都是8KB,二路组相连),CACHE访问策略也过于保守,导致对于一些大型应用难以发挥他的运算性能。尤其是对于象SPEC CPU2000的ref规模的程序,在200MHz时,狗剩取得的最好值是56,最差值才11。对于SPEC CPU2000的train的规模,狗剩的成绩就好得多。二是编译优化不够,我们没有对gcc编译器专门针对狗剩1号的后端进行优化,而实际的计算机厂家都有针对自己处理器的编译器。三是有4条访存不对齐的指令没有硬件实现,而是通过操作系统模拟来执行,这样做除了对部分程序的性能有影响外,对于象VxWorks这样只有目标码的程序确实让我们花费了一翻心血。以上几点,是狗剩1号设计的教训,但教训比经验更可贵。 9月20日,是我的母校中国科技大学44岁生日,那天我们通过了测试组的测试。22日通过了由中国科学院组织的鉴定委员会的鉴定。9月28日,中国科学院举行了龙芯1号的发布会。当有关领导在媒体的光芒以及满场的掌声中把我们的龙芯1号展示出来时,我在台下想起过去一年多的经历,又一次禁不住热泪盈眶。那天我的恩师夏培肃院士专门来看我,并和我合影,我给她做了专门的演示,她很高兴我们做出CPU来。由于夏老师的爱人杨院士住院,我才一个多月不见她,发现这次夏老师消瘦了很多,白发也多了很多,我心里十分难受。我们CPU组大多数都是夏老师的徒子徒孙,秉承她的"先做人再做学问"的思想,用她教给我们的方法和精神去做学问。今年是夏老师从事计算机事业50周年,我把龙芯1号的设计献给她。在龙芯1号的物理版图中,每一层金属上都有"夏50"的字样。50年前,在华罗庚先生的倡议下,夏老师和另外两位同志组成了中国第一个计算机研究小组。看看计算所的历史,比起前辈们轰轰烈烈的艰苦创业,我们的条件要好得多,工作却渺小得多。 在龙芯1号的调试和应用移植过程中,我们有一个深刻的体会,那就是系统开发比CPU设计工作量要大得多,这决不是几十个人可以搞定的。因此,我们需要很多人无私的帮助。狗剩还是个孩子,需要我们一起来抚养他,好让他报效我们五千年来生生不息的祖国,为中华民族的伟大复兴做贡献。真诚地希望有志于我们自己信息产业核心技术突破的人,不管你身在何方,伸出你无私的手,一起来设计我们自己的CPU的未来。如果愿意与我们一起把狗剩养大,对系统(如LINUX、编译器)以及系统级应用(如流媒体)感兴趣的人,请发EMAIL给jw@ict.ac.cn,对处理器物理设计有经验的人,请发EMAIL给jasonzjy@ict.ac.cn(物理设计方面)。我们将提供一个基于龙芯处理器的机群,供大家远程登录来使用;并在我们能力之内,建立一定的激励机制。如果对狗剩的未来发展有任何建议,请直接告诉我(EMAIL: hww@ict.ac.cn)。我坚信,只要我们中华儿女众志成城,中国的信息产业总有龙腾于世界之日! 龙芯1号的流片成功,离不开计算所的环境。我觉得我的运气比较好,遇上了很多好人。客观地说,如果没有我,李老师和唐志敏找别人做也能做出来,但我离开计算所就很难做出来。我可能是一个比较不好合作的人,尤其是最讨厌开会,心里想什么就想马上去做。但所领导和室领导都很宽容。在龙芯1号的设计过程中,我做了好多越权的事情,最过分的一次,为了搭建比较独立的一个EDA设计机房,在24小时之内把机房里原来的工位全部拆掉,买了几十台微机以及终端桌搭建了一个比较独立的EDA设计机房。因为是在礼拜天干的,事先没有任何请示就做了,后来也就是挨了一下说。现在所里做的战略规划,我是很赞同的。比如说其中有一条是关于计算所要成为"龙头、源头、领头雁"。有一次一个地方政府要和我们在集成电路方面进行合作,对方希望以合作办公司的方式实施。李老师说,如果办公司,即使产值一个亿,也就是在你几百亿的基础上增加一个亿,计算所要做的是源头技术,计算所可以一分钱都不赚,但计算所的技术能带出几百亿的产值,这几百亿少不了计算所的源头技术,这才是计算所要做的事。我当时在场,听了以后觉得就是一个字:高。因此,我自己觉得计算所战略规划中的几十条,理解这三分之一条就够了,并要努力实践它。 计算所高效的后勤服务也使我们得益非浅。有一次,由于我们办公场地比较紧张,临时找了一个地方调试主板,结果很不方便,经常把主板烧坏。需要一个比较独立的房间有良好的接地来调试。万般无奈我去找邓书记说借一间房子用几个月,结果我回来后不到半小时,王凡就打电话来说,一楼一间原来放档案的房间(就是后来我们联调的那间105房间)已经腾出来了,叫我去看看。我和张志敏老师去看时,已经开始打扫了。第二天,我们要求的沿墙一圈的地线已经接上。另外一件事情是我们的EDA机房由于负载较大,夏天电压不是很稳定,我给王凡发了EMAIL说明情况,第二天,电工师傅就来给我们拉了一条10000瓦的专线。那天天很热,机房里放服务器的屋子没有空调,我们所的电工师傅都是老计算所的,上了年纪了。看着他们在那里挥汗如雨,我和我们组负责管理机房的郑保建都很过意不去。计算所如此的办事效率,能不出活吗? 现在,基于龙芯1号的SOC设计已经快速展开。在2002年5月份的时候,我们在设计龙芯1号的同时就开始了龙芯2号的设计。先是安虹老师领着几个人做些大方案的设计。在7月我们交出去流片的同时,我也加入到龙芯2号的设计中来。现在龙芯2号的结构设计已经基本结束。龙芯2号将是一个全64位设计,4发射超流水,最多同时有70多条指令在不同的流水阶段进行。在转移猜测、CACHE容量和结构、寄存器重命名等方面都比龙芯1号有很大改进。同时给编译器提供了很多支持。龙芯2号是在我们仔细研究了Alpha 21264、Ultra Sparc III、Power 4、HP 8700、P4、IA64等主流处理器结构后设计出来的。我自己认为,就单处理器结构来说,已经到位了。龙芯2号将有由低端到高端的多个流片。龙芯2号的较后版本应支持片内多线程并支持类似于SMP的并行处理,即在一块主板上做多个处理器(需要CACHE一致性的支持,这是唐志敏和我原来的本行),再把这些处理器做在片内形成龙芯3号的片内多处理器。因此,龙芯2号将是一个结构较为稳定并不断增强的系列,而不仅仅是单个芯片。主频也将不断提高。 在9月28日的发布会上,一位搜狐的记者跟我说,有些人把我们当作民族英雄,这个我是大大地不敢当的。今年正是上甘岭战役50周年,前几天看了一些有关的资料,那些志愿军指战员们才是真正的民族英雄,比起他们所创造的奇迹,我们真是太渺小了。因此,如果够资格,我希望能以此文,献给50年前参加上甘岭战役的所有志愿军指战员。



关键词: 开发     纪实     胡伟武     我们     龙芯     老师     没有     已经         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]