原创 我们的CPU--中科院计算所Godson CPU设计手记

2008-10-6 23:58 2216 5 5 分类: 汽车电子
2001年10月10日,由中国科学院主持召开了中科院计算所重大知识创新项目"龙芯(Godson)CPU设计与验证系统"鉴定会,通过了在我国信息技术发展历程中可载入史册的一项重大成果的技术鉴定。鉴定委员会高度评价了我国第一个高性能通用CPU   Godson,认为其在通用CPU设计技术方面达到国内领先水平,在动态流水线的具体实现技术和CPU硬件对系统安全性的支持方面,有重要创新,达到了国际先进水平。    
   
    Godson   CPU含600多万晶体管,执行250多条指令,可运行通用的主流操作系统Linux最新版本内核(2.4版)、X-Window和商品化Web服务器软件,通过了SPEC   CPU   2000和IEEE有关标准的严格测试(尚未见报道国内其他单位研制的CPU通过这种标准测试)。Godson   CPU具有高性能的64位浮点流水线,采用了当代通用CPU先进体系结构的主要设计技术,在逻辑验证芯片上以12.5兆频率工作,其浮点性能已超过50兆主频的Intel   486。    
   
    从90年代末开始,中国计算机产业的无"芯"现象成了中国各界的共同"心病",对国家安全存在潜在威胁的"无芯"现象需要我国的科技工作者尽快研制出自己的CPU。中科院计算所从2000年初即开始预研,成立了以杰出青年科学家唐志敏、胡伟武为带头人的青年科技队伍。近半年多,这些青年人夜以继日地拼搏,终于在建所45周年所庆之际研制成功与国际主流芯片MIPS完全兼容的高性能通用CPU验证芯片Godson。计算所计划明年投片试制与生产,一年内有望获得商品化的Pentium   II水平的高性能通用CPU芯片,为我国信息产业提供具有自主知识产权的CPU芯片。    
   
    下面就是项目负责人-胡伟武的研发手记我参与计算所的CPU开发项目,源于2000年10月一个偶然的机缘。10月中旬,所领导派我到我的母校中国科技大学去进行招生宣传。这是我1991年毕业后第一次回到母校。我回到了我原来工作过的实验室,十年前在那里,我曾经和另外一个同学一起做过一个与8086指令级兼容的处理器作为本科毕业设计。这是一个用400多个74LS系列的芯片搭起来的电路,能够运行8086指令系统中除了十进制和除法指令以外的所有指令。由于没有制版的费用,所有的连线都是手工焊的。这次回去,我看到了我原来做的机器还静静地躺在那里。面对与十年前一样凌乱的实验室和满桌触手可及的芯片、电容、电阻、电烙铁,我有一种重操旧业的冲动,因为十年前那些没日没夜地与逻辑门、触发器、译码器、选择器玩命的日子有一种深深的诱惑,至今我还可以如数家珍地说出好多当前我用过的集成电路芯片的引脚定义。我想到了我们所正在筹备的CPU设计项目,于是我给我的师兄唐志敏打电话,他是计算所系统结构室的室主任,目前正负责计算所CPU设计项目的准备工作。我开玩笑说一、二年之内不把通用操作系统boot起来,提头来见。于是回计算所后,我就开始考虑CPU的指令系统和流水线等问题。    
   
    2001年8月19日,前苏联解体的十周年纪念日,我们设计的Godson   CPU成功地把LINUX操作系统boot起来。当“login:”的提示符出现在屏幕上时,计算所北楼309房间一片欢呼。到9月中旬,一个用我们自己设计的CPU的完整计算机系统已经浮出水面,该系统运行完整的LINUX操作系统,内核版本为2.4,可以做其他运行LINUX操作系统的计算机所支持的一切事情,包括运行gcc编译器,X-window视窗系统,WEB服务器,SPEC   CPU2000基准程序等。我们最引以为豪的还是该CPU的系统结构设计。可以说目前世界上最先进CPU的系统结构技术,该有的Godson都有,不少地方还有创新。虽然目前我们只是基于FPGA的设计,主频也不高,但当我们的CPU运行到12.5MHz时,其性能已经不比50MHz主频的Intel   486差(当然,我们的主板比486主板要好),确切地说,浮点性能比486强一点,定点性能比486差。值得一提的是,当我们用一个叫“偏执狂(Paranoia)”的测试程序测试CPU的浮点部件是否符合IEEE   754标准时,奔IV处理器测出了浮点不严格符合IEEE   754标准而我们的CPU完全符合标准。此外,在Godson中还专门针对网络攻击进行了安全设计,可以有效防止利用缓冲区应该指出的是,我们只是完成了一个CPU的逻辑设计,目前是用FPGA对这个逻辑设计进行验证,只是一个阶段性成果,还没有进行投片。用李所长的话说,“三分之二的工作还在后面”。如果我们对目前的工作沾沾自喜,那是很肤浅的。但即使是这个成果的取得,也来之不易。个中滋味,酸甜苦辣俱全,很难为外人所体会。回顾我们开发Godson处理器的过程,虽然不长,但有教训,也有经验,总结一下,对以后的工作是有好处的。    
   
    我们做CPU设计缘起于所长李国杰院士的直接推动。李老师是我接触过的院士中比较钦佩的一个,因为他能够站在如何发展整个国家的信息产业的角度来考虑问题,而不是一个局部的角度。现在我慢慢知道,他推动我们所做CPU设计是很不容易的。也许是由于前几年计算所的反复折腾给人留下了不好的印象,使得很多人觉得计算所没有能力做CPU,李老师最后只能把CPU设计作为一个计算所的所内项目先做起来。我在计算所连读书带工作十来年,也是第一次体验到不用立项申请而直接开始做一个课题。CPU设计技术是核心技术,但市场壁垒很高,即使现在已经投片出来很好的CPU,如果没有人用就会走入以前“鉴定会就是追悼会”的怪圈。但我相信李老师在信息产业界的经验和影响力,所以决心做下去。我的师兄唐志敏是系统结构室的室主任,他把握着整项工作的大局,领导整个CPU设计的总体规划。他的大度和谦和能够把一批非常能干的年轻人团结在一起,使大家互相之间从无猜忌。现在在科技界有一种奇怪的现象,就是一个年轻人作出一些成果之后,就喜欢独立门户,结果造成了科研力量分散,干不成大事的局面。大家都在沾沾自喜地干一些几十万或顶多是上百万的项目,形成不了很大的力量。在我们的项目组中,却有一批本身也很厉害,能够独挑一摊的年轻人紧紧地团结在一起,同心协力干一件事情,一个重要的原因是唐志敏是一个能够容人的领导。举一个简单的例子,在所里后来立的一个CPU设计的项目中,我是项目负责人,但包括项目申请书、每月一次的课题进展状况及支出情况表、以及鉴定会材料等,我一个字也没有写过,全是唐志敏代劳,使我有90%以上的时间能够用在编程和逻辑设计。这只是一件小事,但我在计算所十来年,见了不少下属帮领导写报告的事,却从未见过领导帮下属写报告的。唐志敏在全局的把握和总体规划上也是有独到的见解,至少是我所不能及的。关于我们未来CPU的用途,我的主张是自己做高性能工作站,但做出来干什么以及如何与别人竞争却难说,唐志敏却非常有数,他说现在我们所的软件室正在做电子政务,以后结合在一起做,至少在安全方面是国外产品无法竞争的。我当时觉得这种眼光真是“高瞻远瞩、高屋建瓴”。    
   
    张志敏老师在我们的CPU设计中负责工程管理,他是李所长请来的客座研究员。根据我们自己的分工,在我们设计CPU的队伍中,唐志敏是总负责,我负责设计,张老师负责工程管理。张老师是责任心非常强的人,很义气,工程经验非常丰富。我最佩服张老师的有两点,一是他把个人利益看得很轻,他放弃了原来工资更高的工作到我们这里来做这个事情;二是他做事情很实在、很专一。我有一个观点,一个人一辈子做好一件事情都不容易,因此比较讨厌一些一会儿这边,一会而那边,想两边都得好处的人。但张老师不是这样的人,他做事情很实在。在我们基本完成Godson的逻辑设计后,需要一个模拟主板的环境,以便在逻辑设计上通过软件模拟启动LINUX。我觉得这个事情很难,但张老师加班加点一两个星期就写出来了。我和张老师配合得非常好,简直是最佳搭档。他工程经验很丰富,我理论上强一点;做事情他比较稳重,我比较偏激。在每周一上午的例会上,我布置完本周的工作后,总要慷慨激昂地动员一番,张老师总是要摆一些困难泼泼冷水,真是一张一弛。以致于有一次他不泼冷水了,大家都不习惯。虽然我们所筹备CPU设计已经由来以久(从2000年初就开始做预研),讨论了许多轮。但我们真正开始动手设计是2000年11月。刚开始是唐志敏和我领着七、八个研究生做系统结构设计,主要是确定指令系统以及流水线结构。在开始设计之初,李所长在全所会议上就定了“高性能、通用、一步到位”的目标。后来,唐志敏和我又确定了兼容以及采用RISC结构这两个具体目标。当时虽然IA-64结构炒得挺热,但我们还是决定采用RISC结构,现在看来,这是对的。指令系统我开始建议与Alpha兼容,但唐志敏定为与MIPS兼容。说实在的,从2000年11月到2001年4月这段时间,我对CPU这个项目还不够重视,因为我原来做机群及共享存储系统也做得挺有意思。在这段时间里,我自己还花一部分时间在做机群方面的事情,写了一些论文,4月底还到美国开了一个并行处理方面的国际会议。5月初从美国回来后开始全力投入做CPU设计。由于时间紧,在确定流水线结构时,没有看多少论文也没有做多少实验,主要是凭感觉和过去的积累,遇到权衡得失确定不了的事情,就与唐志敏讨论让他定夺。不过,现在回过头去看,由于当时没有参考别人的方案,也就少一些禁锢。现在有了一点时间开始看别人的做法,发现我们设计的基于操作队列复用的动态指令流水线还是很先进的,有不少创新点,我自己觉得比MIPS   R10000的指令流水线要强。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条