一篇关於龙芯一号的文章

来源:百度文库 编辑:超级军网 时间:2024/04/27 16:48:33
引自世纪曙光 www.dawning.com.cn

中科院计算所 李国杰

2002年9月28日中国科学院新闻发言人在中科院计算所迎十六大创新成就展上隆重宣布,在中科院知识创新工程和国家863计划支持下,计算所研制成功龙芯一号通用处理器,已通过产品测试与专家鉴定,可投入商品化生产。一石激起千层浪,社会各界对这一重大成果盼望已久,反映热烈。在龙芯一号CPU研制过程中,我们面临一系列的技术决策。技术路线正确与否不仅影响科研的进度,而且将决定龙芯CPU未来的命运。我国科技界与产业界至今对如何快速而健康地发展我国IC产业,特别是对如何发展CPU产业还没有达成共识。本文以研制龙芯CPU的策略考虑为基础,对发展我国的集成电路设计产业提出一些观点与看法,请教于全国同行,旨在抛砖引玉,希望对决策层尽快做出科学决策有所裨益。

一、 跨越与跟踪

我国底子薄、基础差,发展高技术应当以模仿跟踪为主还是争取跨越式发展,已经争论了很多年,科技部制定十五863战略时提出要实现从以跟踪为主到跨越发展的转变,指导思想已经明确。但对于比国外落后十多年的CPU技术,我们有没有后发优势,能不能实现跨越式发展,许多人似乎又有点忧郁,有点信心不足。在网上经常可看到这样的议论:国外芯片公司有成千上万的设计高手,每年投入数十亿美元研究开发经费,中国才投入几千万元人民币,就想做先进的CPU,只能看成是小孩子玩家家。于是就有人建议:中国只能先从芯片封装入手,建几条芯片加工生产线,先做一些美国甚至台湾IC企业现在不想做了的事,等挣到一些钱,跟洋人学到一些本事再考虑先进的芯片设计。这可能是西方某些人心目中的全球经济一体化下的世界分工。

我们必须承认,跨越发展需要一定的条件,包括技术与经验的积累。因此我们应吸引外资(包括台资)在中国境内建立芯片加工厂、封装厂、测试厂、半导体设备厂和有关化工原料厂,尽快在国内形成完整的IC产业链。未来3-5年内中国有望成为世界IC产业的重要加工基地,这是我国新的产业增长点,应大力支持发展。

但是,IC加工业是资金高度密集的产业,一条0.18微米生产线,一般要投资15亿美元以上,国外对先进IC加工设备出口中国仍有许多限制,因此:我国在芯片加工方面实现跨越式发展难度相当大。相对而言,芯片设计是智力高度密集型产业,虽然IC设计产业的收入目前只占整个IC产业10%左右,但营业额增长率高于制造业3倍以上。台湾IC设计业98年99年的投资回报率分别为21.6%和39%,比IC制造业的回报率(4.%和12.6%)高几倍。据麦卡锡公司预测,中国国内IC设计业2010年的收入可达100亿美元。中国目前有200多家IC设计企业,真正高水平的设计人才可能不到1000人,但是我国有专业基础从事芯片前端设计的人力资源丰富,许多研究所和大学都有不少从事系统和硬件设计的人才。芯片设计的知识产权和专利很多都体现在系统级设计上,尤其是当进入片上系统(SoC)设计时,系统级的创新更加重要。芯片物理设计方面的人才我国非常缺乏,而高水平的物理设计又特别需要经验,这方面人才的培养与引进需要一个过程。但龙芯一号CPU物理设计的成功表明有系统级设计经验的人转入物理设计并不是一件高不可攀的事,入门并不难,只要有一股钻劲,经过几年的积累,我国一定会出现一批物理设计的高手。当然物理设计本身是一门高深的技术,微电子专业的人才是物理设计的主力。因此,我们认为,中国实现IC产业跨越发展的主要希望在芯片设计上。

在分析了计算所系统设计方面的技术储备与优势后,我们在龙芯一号设计开始时,提出了"高起点,一步到位"的要求。所谓高起点是指尽可能采用先进的制造工艺,我们第一次设计和流片生产CPU就跳过了0.35、0.25微米工艺,选用了目前代加工厂主流的0.18微米工艺。做出这种决策不是盲目地碰运气,而是通过与硅谷许多有经验的工程师深入调研分析流片成功的可能性后做出的,从某种意义上讲,这也是利用了"后发优?quot;,可以"借树开花"。所谓"一步到位"当然不是指第一次设计就做出性能超过P4的CPU,而是针对当时国内有些单位在启动研制386、486的形势,要求我们在微体系结构上创新,用国际先进水平的体系结构实现64位浮点运算,尽可能实现技术上的跨越式进步,而不是从模仿80年代技术开始一步一步爬行,并且一开始就强调正向自主设计,不采取解剖别人芯片反向设计的路线。"一步到位"的另一层意思是不做供鉴定用的实验室样片,而是要确保万无一失,经得起产品检验,做成可批量生产的芯片。经过一年多努力,龙芯一号达到了预期目的。

对CPU设计而言,龙芯一号仅仅是我们迈出的第一步,使计算所初步形成了一支敢于也善于啃硬骨头的队伍。我们清醒地认识到,我们现在的CPU设计水平与国际先进水平还有很大差距,我们在CPU领域是刚入门的新兵,而CPU技术发展又很快,许多技术特别是物理设计技术我们还要老老实实地学习。我们真正期盼的跨越式进步的标志性产品是龙芯2号。我们在设计龙芯2号时,已分析了Intel P4、SUN SPARC、HP的Alpha、IBM Power4等多种主流芯片的微体系结构,要求龙芯2号的体系结构有自己明显的特色,以最有效的方法实现四发射,即一时钟周期可同时执行四条指令(P4实现了三发射),而且要为下一步研制超线程CPU和多处理机CPU打下基础。计算所与在美国参加过千万亿次计算机研制的高光荣教授成立了先进计算机联合实验室,重点研制多线程机制,争取实现几十个甚至几百个线程并行操作。这项技术各大公司还在研究之中,我们将争取以跨越的技术进入国际前列,在龙芯3号龙芯4 号中采用。

我们主张的跨越式发展还体现在我们对微处理器发展趋势的理解与判断上。国人对于CPU和操作系统有特殊的感情,把这两者称为信息技术的核心技术。实际上随着Interent普及与发展,人们心目中的P3、P4之类的CPU和 Windows之类的操作系统的地位正在不断下降。在向科学院领导申请知识创新重大项目时,我曾说过,龙芯微处理器的目标不是传统的"CPU",而是 "DPU",即Distributed Processor Unit。所谓中央处理器是针对过去的大型计算机取的名,随着网络存储和各式各样的通信与终端设备直接上网,微处理器将分布在各种设备中。以后计算机、通信设备(如智能化的路由器等)和信息家电的界限越来越模糊,新一代的微处理器和现在PC机上的CPU将会有很大区别,创新的空间很大。MIT很多知名教授联合在一起研制可任意重构的新一代芯片(RAW Chip)就是一种创新的例子。片上系统(SoC)是今后芯片的重要发展方向,在SoC研制中,硬件软件协同设计将更为重要,编译技术也将发挥更大的作用。中国的芯片设计要跨越发展,可能要通过软件和算法的突破来弥补硬件加工的不足。系统设计人员在芯片设计产业中将扮演十分重要的角色。总之,我国的芯片产业不能再走PC产业走过的以组装为主的老路。如果只重视附加值很少的低端芯片或主要用别人的IP"组装"低端SoC芯片,前途不会太美好。

二、 通用与专用

可能是受历代重视"正名"的影响,我国科技界在讨论一件事时,喜欢从定义出发,在"名字"上做文章。我国CPU的研制尚未真正开展起来,863计划集成电路重大专项的高性能CPU项目还处在软课题研究阶段,但关于重点支持所谓通用CPU还是嵌入式CPU的讨论已经进行多次,而且不幸的是谁要是讲想做通用 CPU,马上就有人反驳:你想赶上Intel P4?这肯定不可能,还是先做点电表控制芯片、身份证卡吧。邓小平同志有一句名言:"不管白猫黑猫,抓住耗子就是好猫。"他告诉我们,我们应关心"抓住耗子"而不要去争论白猫好还是黑猫好。国外公司研制芯片只关心市场有没有需求,不会先浪费时间论证应该做通用还是嵌入式芯片。从各个芯片公司的网页上我们只会看到各种型号芯片的介绍,看不到他们将芯片分成通用和嵌入式。

从语文的角度上讲,"通用"的反义词是"专用"不是"嵌入式"。所谓嵌入式CPU是指安装在不是计算机的路由器、手机、电视机、汽车等设备上的CPU芯片,而装在PC机、笔记本、工作站、服务器上的CPU一般称为通用CPU,因为它能执行各种各样的程序。嵌入式是CPU的一种应用,一般只要求运行某种确定的程序,很多场合的嵌入式应用都要求低功耗,特别是像手机、PDA这类手持移动设备,低功耗意味着充一次电可运行更长时间,因此,低功耗应用追求更高的 MIPS/W(每瓦每秒百万指令),而不是MIPS数。好的嵌入式芯片,如IBM PowerPC750FX每瓦的MIPS数比Intel P4(2.4G)高10倍,但从芯片的指令系统和体系结构而言,所谓通用CPU和嵌入式CPU并没有本质区别。不论是通用CPU还是嵌入式CPU,只要是低档产品都容易做而高档产品都难做。要特别强调的是所谓嵌入式芯片五花八门,但大都采用通用的CPU核,如MIPS核、ARM核等,从这个意义上讲,通用 CPU和嵌入式CPU技术上是完全相通的,不存在只能选其一的问题。

在集成电路的发展历史上,芯片产品在制造与使用的对立统一中发展,随着半导体产业的景气循环,总是沿着通用与专用循环往复不断进步。天同证券公司在网上发表了一篇"半导体产业行业研究报告",对通用专用芯片交替发展做了一些分析,本段下面引用该文的分析结果。1959年仙童公司推出第一个硅平面晶体管商品,开始了芯片产品第一个通用循环周期。其后不久仙童公司又推出面向计算器、电视机的专用标准构件,标志着IC产品进入第一个专用循环周期。70年代 Intel公司开发成功微处理器芯片,使IC产品上升到一个新的通用循环。80年代随着设计工具的发展推动了一个产品满足一个用户要求的专用集成电路(ASIC)发展,使IC产品进入高一级的专用循环。90年代初又发展出了可编程门阵列(FPGA),用户可进行软编程反复改变硬件功能,又进行新一轮的准通用循环。随着ASIC技术的积累,IC开始向片上系统(SoC)发展,SoC实质上是更高一级的专用系统。随着通用-专用模式的交替发展,硬件软件的界限开始模糊起来,IC设计进入了基于可重用知识产权(IP)库的设计阶段。

IC发展历史已表明,通用CPU是IC技术发展的源头。从几年前开始,最先进的IC制造工艺首先在通用CPU上使用(过去曾经是DRAM)。如果我们不敢碰通用CPU,就只能永远跟着别人,处于技术的下游。在2000年计算所酝酿研制CPU时,我们曾反复讨论过是买MIPS或ARM CPU核,针对某个应用做点外围电路,还是自己做一个有自主知识产权的MIPS CPU核或类似ARM的CPU核。我们的结论是没有自己CPU核的芯片产业就如同没有CPU的PC产业一样,而研制通用CPU是形成有市场竞争力的CPU 核的重要途径。因为一个好的CPU核必须经过多种应用的考验,单独为汽车控制等应用做一个较专用的CPU难以扩充成较通用的CPU核。

从网络信息安全的角度出发,我国也需要有自己的通用服务器CPU。服务器相当于电网中的发电站,一旦服务器受到攻击,将会造成大范围的网络瘫痪。服务器的用量少于终端(美国服务器的销售额约为PC机的1/3),但服务器CPU做为涉及国家政治、经济、信息安全的核心技术一定要掌握在自己手里。在龙芯CPU 研制时,从硬件设计上采用了防止缓冲区溢出攻击的新技术,可以防止大多数黑客和病毒攻击(即使软件有漏洞也能防攻击),并申请了10项发明专利。龙芯一号流片成功后,曙光公司很快就推出了基于龙芯一号的龙腾服务器,尽管其性能只相当于4-5年前的PC服务器,但其与众不同的高安全性对政府、金融、国防等部门用户会有吸引力。

如果我们不从能运行多少程序的角度,而是从芯片推广数量的角度来看,所谓通用专用完全是一种定位,没有绝对的区别。由于加工芯片制造掩膜费用很高(0.18微米工艺掩膜费用高达30--50万美元),因此芯片销售量少必然成本很高,这就如同书的发行量越大越便宜一样。做芯片一定要瞄准量大面广的市场。量大不一定面广,比如手机芯片、DVD芯片量很大,但只用于手机与DVD,人们常称为嵌入式芯片或专用芯片。如果一种手机芯片被众多手机芯片厂商采用,我们也可以说它是一种通用的手机芯片。还有一类以"面广"为目标,强调通用性的芯片,如Xilinx和Altera两家全世界最大的IC设计公司生产的可编程门阵(PLD),可用于很多产品中,这当然是一种通用芯片。另外ARM CPU也可认为是一种较通用的芯片。

通过以上分析,我们的结论是我们应重点发展量大面广的芯片设计,即较通用的嵌入式芯片,同时要重视高安全性的服务器CPU芯片设计。形成较通用的嵌入式 CPU核的一条可行途径是从设计通用CPU入手。通过应用实践再适当裁剪通用CPU比从专用CPU开始不断扩充更合理。虽然国内对低端微控制器芯片仍有一定需求,但从海关统计数字来看,不论是CMOS芯片还是其他数字集成电路,大多数进口芯片是0.25微米以下工艺生产的芯片。是否在落后工艺下生产量小面窄的嵌入式芯片应由企业自己判断决定,国家不能采取只要是嵌入式芯片就支持的短视政策。

龙芯一号CPU研制体现了我们制定的发展战略,一个多月来十多种应用轻松移植,表明龙芯CPU既是一种较通用嵌入式芯片(功耗小于0.5W)可用于网卡网关、网络终端计算机(NC)等,同时也是高安全性的服务器芯片,可用于网络服务等。明年一季度,基于龙芯一号的SoC芯片将问世,更适合于做NC和网络设备。

剩下的一个问题是我们究竟做不做与Intel兼容并与之竞争的通用CPU芯片。我们的意见是暂时不做。我国舆论界有一种误导使许多老百姓认为"信息技术主要是PC机,PC的核心技术是P3、P4芯片,芯片的高技术是高主频。" 实际上PC用的CPU只占微处理器数量的1%左右,但销售收入有200多亿美元,占全球1500多亿美元IC总收入的15%左右(有机构统计,PC用IC 占IC总市场的30-40%)。PC芯片的高收入高利润是多年来Wintel联盟的"功绩",我们暂时不具备实力与Intel比高低。在未来的发展中,各种Internet Appliance(所谓IA产品)增长势头明显大于PC,据IDC公司预测2002年IA产品销售数量将达到1.8亿台,超过PC机销售数量。PC机本身也在变化,用户未必希望PC机主频3G、4G这样升上去。因此我们不能固守"通用CPU=P4"这种思维模式。

三、 兼容与另起炉灶

龙芯一号启动时,最重要的决定是要不要与国外主流系统兼容,如果要兼容与哪一家兼容?有人认为选择芯片指令系统是一个政治问题,是受不受制于人的问题。我们则认为,在全球经济一体化的形势下,我们要抛弃所谓"完全自主知识产权"的旧观念,世界上几乎所有芯片公司的产品都是"你中有我,我中有?quot;,连Intel公司都要买别人的IP,为什么刚刚起步的中国IC设计产业就必须全用自己的IP?兼容不兼容完全是市场行为,是我们根据推广龙芯CPU的市场需要决定。应当说作出必须兼容的决定在很大程度上受到曙光服务器成长过程的启发。曙光一号服务器和曙光1000大规模并行机开始走的是一条不完全兼容的路,我们在AT&T UNIX和Mach OS基础上分别研制了自己的并行操作系统。尽管符合POSIX标准,有自主知识产权,可以得国家最高的科技成果奖励,但数据库厂商和第三方应用软件厂商不愿意花功夫为曙光机移植软件,曙光机只能卖给自己有源程序的用户,市场上成千上万种应用软件用不上。冷酷的事实教育了我们,为了充分发挥后发优势,利用已有的巨大软件资源,与主流系统完全兼容是迅速扩大市场份额的良策。曙光公司后来推出的天潮、天演、天阔三大系列几十种型号产品都与IBM或微软主流操作系统兼容,我们的增值主要在机群操作系统上,这一正确策略使曙光服务器迅速占领市场,中高档服务器稳居国内服务器品牌第一,已销售的曙光机群服务器总计算能力已超过每秒20万亿次。我们相信推广龙芯CPU将会遇到与曙光服务器同样的问题,因此毫不犹豫地选择了兼容道路。

在选择与哪一家兼容时颇费一番心思。在酝酿启动龙芯CPU研制时,美国冒出一家叫Transmeta的新公司,采用"Code Morphing"的二进制编译技术,推出可运行X-86程序的超长指令芯片Crusoe。据我们了解二进制编译的源头技术掌握在俄罗斯Elbrus公司。计算所有较强的编译队伍,采用二进制编译与Intel芯片应用程序兼容可能是一条奇径,于是我们花了一番功夫与俄罗斯科学家谈合作。后来我们从原打算投资Transmeta公司后又改变主意的台湾厂商了解到,二进制编译的应用程序有些效果好有些性能差(后来Transmeta公司发展不理想也证明其技术不具备与Intel竞争的实力),决定将二进制编译作为中期目标,近期先用于做BIOS和驱动程序的编译。

经过对X-86、PowerPC、MIPS、SPARC等多种指令系统的仔细分析,我们最终选择了MIPS指令系统,在这一选择中,唐志敏研究员起了关键作用。唐志敏研究员是计算所年轻的博士导师、863计划计算机主题专家组成员,也是龙芯CPU课题负责人。他在体系结构方面造诣颇深,对各种RISC指令系统做过深入分析后,选用比Alpha功能强又比PowerPC简单的MIPS指令系统具有较好的可行性。选择MIPS指令系统的更重要的原因是出于市场考虑。MIPS公司不同于Intel、SUN和IBM,它不是IDM公司,自己并不生产销售芯片,而是以卖License和服务为营业范围,它不但不像 Intel公司那样反对别人做兼容芯片,而是支持其他厂家做MIPS兼容芯片。世界上许多大公司,如生产路由器的CISCO、生产游戏机的SONY等都采用MIPS指令系统。MIPS芯片不仅用于SGI公司做高档工作站与服务器,而且是主流的高档嵌入式CPU,每年MIPS芯片销售量超过7000万片。市面上已有大量MIPS应用软件,龙芯一号流片成功后许多整机厂商一小时内就装上了应用软件,充分证明我们的决策是正确的。

对采用兼容技术路线的另一种担心是当龙芯CPU成大气候时,外国公司可能趁机讹诈或者由于指令系统不断升级我们则要不断地付新的许可费。由于中美两国政治制度不同,凡事往坏处多考虑些是必要的,但市场经济有其通行的法则。比起芯片掩膜费、加工费、封装测试费,指令系统许可费要小得多,只占芯片成本很小的一部分。在芯片正式上市销售前,龙芯公司一定会按市场惯例与所有有关公司签定合理合法的商务协议,签定永久使用某一版本指令系统也是市场上允许的一种做法。我们认为MIPS指令系统已相当成熟,没有必要步步跟随升级,今后完全可以根据应用需求自己增加新指令,这就是站在巨人肩膀上攀登高峰的策略,也是国外公司通常的做法。

与兼容策略相关还有一件大家十分关心的事,那就是如何避开专利。国内有些专家认为芯片设计专利是我们难以逾越的障碍,我们有些决策者也对此忧心忡忡。专利的确是我们必须高度重视的技术障碍,但也不能把专利看成拦路虎,长他人志气,灭自己威风。我们在研制龙芯一号过程中查阅了所有有关专利,我们发现指令系统本身不是专利,而且几乎没有一项概念性的专利,例如Cache技术、多发射技术等,所有专利几乎都与具体实现技术有关。我们设计CPU是先通过译码器变成自己定义的统一中间代码,所有的功能部件执行中间代码,与原来的指令系统无关。所以对我们而言,回避专利与采用什么指令系统没有关系。我们在设计中没有侵犯任何专利而且自己申请了十余项发明专利。现在芯片代加工厂定单并不饱满,往往提供多种方便包括免费提供标准单元库拉客户,单元库中如果有专利问题也与我们无关。今后做全定制设计,除了我们自己设计一些关键的宏单元外,一定会购买一些IP使用权,包括一些专利使用权。在IC设计中这是十分正常的。今后我们自己的专利与IP越来越多,通过Cross Licencing共享互用IP和专利是必由之路。与计算机产生一样,IC产业的横向分工越来越明显,IP(包括专利)将是IC设计厂商的主要产品,我们要学会如何买卖IP不要谈"专利"色变,作茧自缚。

还有一种看法是认为采用别人的指令系统说明没本事,还不掌握CPU核心技术,不如另起炉灶自己定义指令系统的单位水平高。实际上学过计算机原理与系统结构课的人都知道,自己定义一套指令系统并不是难事。40多年前,计算所就开始自己定义指令系统,几十年来计算所研制的十几种计算机都是自己定义指令系统。一个好的指令系统要经过大量应用反复考验修改才能成为市场接受的主流系统。如同大家用C、VB、JAVA编程序,没有人强调非要自己定义一种语言编程一样,研制CPU的水平并不在于是不是自己定义指令系统,谁能占领市场才是真本事。

四、 IC设计的科研与产业化

我国IC设计落后,而且存在科研与企业脱离、系统设计与微电子设计脱离这两大令人头痛的弊端。国家设立863计划IC设计重大专项,投入7亿元,计委、信息产业部、各省市政府都十分关心IC设计产业,究竟应如何布局、依靠什么力量、采用什么机制才能尽快振兴IC设计产业,这是上至中央领导下至科研人员都在思考的大事。不少人认为:技术创新应以企业为主体,把钱投向科研单位和大学要么打水漂要么转化不成生产力,因此最简单易行的方法是直接支持大大小小的IC 设计企业,开发国内有需求而又做得出来的短平快产品。计算所既不是企业,又不擅长微电子,因此863计划IC设计重大专项预启动时,全国批准了几十家项目,计算所申请20万元都评不上。但为什么计算所在短短一年多时间内能做出全国最高水平的CPU,其中必有内在的原因和规律。

首先是如何看待科研与企业"两张皮"关系,自从200年前独立的科研机构诞生起,就存在科研与产业化的对立统一关系,既是一分为二,又是合二而一,不可能一劳永逸地消除矛盾。应当看到企业在变,科研单位也在变,用几年前的眼光看待今天的科研单位和企业,政策上就会出偏差。不论哪个国家,特别是像中国这样的发展中国家,国立科研机构一定是国家创新体系不可替代的一个环节。涉及国家安全和战略需求的科研任务,例如CPU研制,需要一支国家队啃硬骨头。集中兵力打歼灭战是以弱胜强的法宝,分散兵力似乎风险小实际上会有更大的风险。现在我们需要的是雪中送炭,不是锦上添花,更不是撒芝麻。

其次是系统设计与微电子设计的协同配合。我国长期忽视系统设计人员在IC产业中的作用是导致IC设计落后的重要原因之一。龙芯一号研制成功充分说明系统设计人员学习微电子设计技术是弥补IC后端设计人员不足的重要途径之一。龙芯一号做了三次不同的物理设计,设计最成功的是由计算所自己完成的C方案,能做到这一点首先要感谢中科院微电子中心的黄令仪研究员,是他把计算所的系统设计人员领进了微电子设计的大门。物理设计水平是决定我国IC设计水平的关键,尤其是对0.18微米之下的高速低功耗芯片,物理设计的奥妙还要靠我们不断地实践去探索,从书本上很难学到。

龙芯一号研制成功后,马上面临研制更高性能的龙芯2号与尽快将龙芯一号产业化的矛盾,这与当时研制曙光机的情形十分类似。我们决不能只以不断研制出新的 CPU为目标,置产业化于不顾。在科研人员中要树立一个观念,龙芯一号卖不出去,研制出龙芯2号也没有多大意义。计算所的科研人员已做了计划,全力配合神州龙芯公司打开市场,龙芯1.1、龙芯1.2两款SoC产品的优先级放在龙芯2前面。神州龙芯公司也在大力开拓龙芯CPU的应用,争取较多的定单。我们的体会是在研制龙芯CPU时,为国分忧的激情是一股强大的动力,胡伟武研究员几篇关于龙芯研制过程的文章催人泪下,表明年轻一代科研人员像两弹一星研制人员一样有着高尚的爱国情操和顽强的拼搏精神,计算所有这样一批又红又专的人才才能做出让人眼睛一亮的成果。如果我们一味等待国外的高手回来才开始研制,恐怕今天龙芯CPU还只存在于希望之中。另一方面,根据我们推广曙光机的经验,我们不能把产业化的希望寄托在用户的爱国热情中。CPU虽然是涉及国家安全的特殊产品,但卖产品就是卖产品,不能加上过多政治色彩,必须靠产品本身的可靠性、高性价比和出色的服务取得用户的信任。从某种意义讲,推广龙芯CPU是比研制CPU更艰苦的一场战斗。较通用的嵌入式CPU的用途很广泛,不一定非要性能超过P4才能卖得动,266M 0.5W功耗的MIPS兼容CPU芯片一定有它对应的广阔市场。国家在开始推广国产CPU时做一些扶植是必要的,但关键在自己努力。我们有信心比推广曙光机做得更好,让国产CPU尽快在市场上占有一席之地。引自世纪曙光 www.dawning.com.cn

中科院计算所 李国杰

2002年9月28日中国科学院新闻发言人在中科院计算所迎十六大创新成就展上隆重宣布,在中科院知识创新工程和国家863计划支持下,计算所研制成功龙芯一号通用处理器,已通过产品测试与专家鉴定,可投入商品化生产。一石激起千层浪,社会各界对这一重大成果盼望已久,反映热烈。在龙芯一号CPU研制过程中,我们面临一系列的技术决策。技术路线正确与否不仅影响科研的进度,而且将决定龙芯CPU未来的命运。我国科技界与产业界至今对如何快速而健康地发展我国IC产业,特别是对如何发展CPU产业还没有达成共识。本文以研制龙芯CPU的策略考虑为基础,对发展我国的集成电路设计产业提出一些观点与看法,请教于全国同行,旨在抛砖引玉,希望对决策层尽快做出科学决策有所裨益。

一、 跨越与跟踪

我国底子薄、基础差,发展高技术应当以模仿跟踪为主还是争取跨越式发展,已经争论了很多年,科技部制定十五863战略时提出要实现从以跟踪为主到跨越发展的转变,指导思想已经明确。但对于比国外落后十多年的CPU技术,我们有没有后发优势,能不能实现跨越式发展,许多人似乎又有点忧郁,有点信心不足。在网上经常可看到这样的议论:国外芯片公司有成千上万的设计高手,每年投入数十亿美元研究开发经费,中国才投入几千万元人民币,就想做先进的CPU,只能看成是小孩子玩家家。于是就有人建议:中国只能先从芯片封装入手,建几条芯片加工生产线,先做一些美国甚至台湾IC企业现在不想做了的事,等挣到一些钱,跟洋人学到一些本事再考虑先进的芯片设计。这可能是西方某些人心目中的全球经济一体化下的世界分工。

我们必须承认,跨越发展需要一定的条件,包括技术与经验的积累。因此我们应吸引外资(包括台资)在中国境内建立芯片加工厂、封装厂、测试厂、半导体设备厂和有关化工原料厂,尽快在国内形成完整的IC产业链。未来3-5年内中国有望成为世界IC产业的重要加工基地,这是我国新的产业增长点,应大力支持发展。

但是,IC加工业是资金高度密集的产业,一条0.18微米生产线,一般要投资15亿美元以上,国外对先进IC加工设备出口中国仍有许多限制,因此:我国在芯片加工方面实现跨越式发展难度相当大。相对而言,芯片设计是智力高度密集型产业,虽然IC设计产业的收入目前只占整个IC产业10%左右,但营业额增长率高于制造业3倍以上。台湾IC设计业98年99年的投资回报率分别为21.6%和39%,比IC制造业的回报率(4.%和12.6%)高几倍。据麦卡锡公司预测,中国国内IC设计业2010年的收入可达100亿美元。中国目前有200多家IC设计企业,真正高水平的设计人才可能不到1000人,但是我国有专业基础从事芯片前端设计的人力资源丰富,许多研究所和大学都有不少从事系统和硬件设计的人才。芯片设计的知识产权和专利很多都体现在系统级设计上,尤其是当进入片上系统(SoC)设计时,系统级的创新更加重要。芯片物理设计方面的人才我国非常缺乏,而高水平的物理设计又特别需要经验,这方面人才的培养与引进需要一个过程。但龙芯一号CPU物理设计的成功表明有系统级设计经验的人转入物理设计并不是一件高不可攀的事,入门并不难,只要有一股钻劲,经过几年的积累,我国一定会出现一批物理设计的高手。当然物理设计本身是一门高深的技术,微电子专业的人才是物理设计的主力。因此,我们认为,中国实现IC产业跨越发展的主要希望在芯片设计上。

在分析了计算所系统设计方面的技术储备与优势后,我们在龙芯一号设计开始时,提出了"高起点,一步到位"的要求。所谓高起点是指尽可能采用先进的制造工艺,我们第一次设计和流片生产CPU就跳过了0.35、0.25微米工艺,选用了目前代加工厂主流的0.18微米工艺。做出这种决策不是盲目地碰运气,而是通过与硅谷许多有经验的工程师深入调研分析流片成功的可能性后做出的,从某种意义上讲,这也是利用了"后发优?quot;,可以"借树开花"。所谓"一步到位"当然不是指第一次设计就做出性能超过P4的CPU,而是针对当时国内有些单位在启动研制386、486的形势,要求我们在微体系结构上创新,用国际先进水平的体系结构实现64位浮点运算,尽可能实现技术上的跨越式进步,而不是从模仿80年代技术开始一步一步爬行,并且一开始就强调正向自主设计,不采取解剖别人芯片反向设计的路线。"一步到位"的另一层意思是不做供鉴定用的实验室样片,而是要确保万无一失,经得起产品检验,做成可批量生产的芯片。经过一年多努力,龙芯一号达到了预期目的。

对CPU设计而言,龙芯一号仅仅是我们迈出的第一步,使计算所初步形成了一支敢于也善于啃硬骨头的队伍。我们清醒地认识到,我们现在的CPU设计水平与国际先进水平还有很大差距,我们在CPU领域是刚入门的新兵,而CPU技术发展又很快,许多技术特别是物理设计技术我们还要老老实实地学习。我们真正期盼的跨越式进步的标志性产品是龙芯2号。我们在设计龙芯2号时,已分析了Intel P4、SUN SPARC、HP的Alpha、IBM Power4等多种主流芯片的微体系结构,要求龙芯2号的体系结构有自己明显的特色,以最有效的方法实现四发射,即一时钟周期可同时执行四条指令(P4实现了三发射),而且要为下一步研制超线程CPU和多处理机CPU打下基础。计算所与在美国参加过千万亿次计算机研制的高光荣教授成立了先进计算机联合实验室,重点研制多线程机制,争取实现几十个甚至几百个线程并行操作。这项技术各大公司还在研究之中,我们将争取以跨越的技术进入国际前列,在龙芯3号龙芯4 号中采用。

我们主张的跨越式发展还体现在我们对微处理器发展趋势的理解与判断上。国人对于CPU和操作系统有特殊的感情,把这两者称为信息技术的核心技术。实际上随着Interent普及与发展,人们心目中的P3、P4之类的CPU和 Windows之类的操作系统的地位正在不断下降。在向科学院领导申请知识创新重大项目时,我曾说过,龙芯微处理器的目标不是传统的"CPU",而是 "DPU",即Distributed Processor Unit。所谓中央处理器是针对过去的大型计算机取的名,随着网络存储和各式各样的通信与终端设备直接上网,微处理器将分布在各种设备中。以后计算机、通信设备(如智能化的路由器等)和信息家电的界限越来越模糊,新一代的微处理器和现在PC机上的CPU将会有很大区别,创新的空间很大。MIT很多知名教授联合在一起研制可任意重构的新一代芯片(RAW Chip)就是一种创新的例子。片上系统(SoC)是今后芯片的重要发展方向,在SoC研制中,硬件软件协同设计将更为重要,编译技术也将发挥更大的作用。中国的芯片设计要跨越发展,可能要通过软件和算法的突破来弥补硬件加工的不足。系统设计人员在芯片设计产业中将扮演十分重要的角色。总之,我国的芯片产业不能再走PC产业走过的以组装为主的老路。如果只重视附加值很少的低端芯片或主要用别人的IP"组装"低端SoC芯片,前途不会太美好。

二、 通用与专用

可能是受历代重视"正名"的影响,我国科技界在讨论一件事时,喜欢从定义出发,在"名字"上做文章。我国CPU的研制尚未真正开展起来,863计划集成电路重大专项的高性能CPU项目还处在软课题研究阶段,但关于重点支持所谓通用CPU还是嵌入式CPU的讨论已经进行多次,而且不幸的是谁要是讲想做通用 CPU,马上就有人反驳:你想赶上Intel P4?这肯定不可能,还是先做点电表控制芯片、身份证卡吧。邓小平同志有一句名言:"不管白猫黑猫,抓住耗子就是好猫。"他告诉我们,我们应关心"抓住耗子"而不要去争论白猫好还是黑猫好。国外公司研制芯片只关心市场有没有需求,不会先浪费时间论证应该做通用还是嵌入式芯片。从各个芯片公司的网页上我们只会看到各种型号芯片的介绍,看不到他们将芯片分成通用和嵌入式。

从语文的角度上讲,"通用"的反义词是"专用"不是"嵌入式"。所谓嵌入式CPU是指安装在不是计算机的路由器、手机、电视机、汽车等设备上的CPU芯片,而装在PC机、笔记本、工作站、服务器上的CPU一般称为通用CPU,因为它能执行各种各样的程序。嵌入式是CPU的一种应用,一般只要求运行某种确定的程序,很多场合的嵌入式应用都要求低功耗,特别是像手机、PDA这类手持移动设备,低功耗意味着充一次电可运行更长时间,因此,低功耗应用追求更高的 MIPS/W(每瓦每秒百万指令),而不是MIPS数。好的嵌入式芯片,如IBM PowerPC750FX每瓦的MIPS数比Intel P4(2.4G)高10倍,但从芯片的指令系统和体系结构而言,所谓通用CPU和嵌入式CPU并没有本质区别。不论是通用CPU还是嵌入式CPU,只要是低档产品都容易做而高档产品都难做。要特别强调的是所谓嵌入式芯片五花八门,但大都采用通用的CPU核,如MIPS核、ARM核等,从这个意义上讲,通用 CPU和嵌入式CPU技术上是完全相通的,不存在只能选其一的问题。

在集成电路的发展历史上,芯片产品在制造与使用的对立统一中发展,随着半导体产业的景气循环,总是沿着通用与专用循环往复不断进步。天同证券公司在网上发表了一篇"半导体产业行业研究报告",对通用专用芯片交替发展做了一些分析,本段下面引用该文的分析结果。1959年仙童公司推出第一个硅平面晶体管商品,开始了芯片产品第一个通用循环周期。其后不久仙童公司又推出面向计算器、电视机的专用标准构件,标志着IC产品进入第一个专用循环周期。70年代 Intel公司开发成功微处理器芯片,使IC产品上升到一个新的通用循环。80年代随着设计工具的发展推动了一个产品满足一个用户要求的专用集成电路(ASIC)发展,使IC产品进入高一级的专用循环。90年代初又发展出了可编程门阵列(FPGA),用户可进行软编程反复改变硬件功能,又进行新一轮的准通用循环。随着ASIC技术的积累,IC开始向片上系统(SoC)发展,SoC实质上是更高一级的专用系统。随着通用-专用模式的交替发展,硬件软件的界限开始模糊起来,IC设计进入了基于可重用知识产权(IP)库的设计阶段。

IC发展历史已表明,通用CPU是IC技术发展的源头。从几年前开始,最先进的IC制造工艺首先在通用CPU上使用(过去曾经是DRAM)。如果我们不敢碰通用CPU,就只能永远跟着别人,处于技术的下游。在2000年计算所酝酿研制CPU时,我们曾反复讨论过是买MIPS或ARM CPU核,针对某个应用做点外围电路,还是自己做一个有自主知识产权的MIPS CPU核或类似ARM的CPU核。我们的结论是没有自己CPU核的芯片产业就如同没有CPU的PC产业一样,而研制通用CPU是形成有市场竞争力的CPU 核的重要途径。因为一个好的CPU核必须经过多种应用的考验,单独为汽车控制等应用做一个较专用的CPU难以扩充成较通用的CPU核。

从网络信息安全的角度出发,我国也需要有自己的通用服务器CPU。服务器相当于电网中的发电站,一旦服务器受到攻击,将会造成大范围的网络瘫痪。服务器的用量少于终端(美国服务器的销售额约为PC机的1/3),但服务器CPU做为涉及国家政治、经济、信息安全的核心技术一定要掌握在自己手里。在龙芯CPU 研制时,从硬件设计上采用了防止缓冲区溢出攻击的新技术,可以防止大多数黑客和病毒攻击(即使软件有漏洞也能防攻击),并申请了10项发明专利。龙芯一号流片成功后,曙光公司很快就推出了基于龙芯一号的龙腾服务器,尽管其性能只相当于4-5年前的PC服务器,但其与众不同的高安全性对政府、金融、国防等部门用户会有吸引力。

如果我们不从能运行多少程序的角度,而是从芯片推广数量的角度来看,所谓通用专用完全是一种定位,没有绝对的区别。由于加工芯片制造掩膜费用很高(0.18微米工艺掩膜费用高达30--50万美元),因此芯片销售量少必然成本很高,这就如同书的发行量越大越便宜一样。做芯片一定要瞄准量大面广的市场。量大不一定面广,比如手机芯片、DVD芯片量很大,但只用于手机与DVD,人们常称为嵌入式芯片或专用芯片。如果一种手机芯片被众多手机芯片厂商采用,我们也可以说它是一种通用的手机芯片。还有一类以"面广"为目标,强调通用性的芯片,如Xilinx和Altera两家全世界最大的IC设计公司生产的可编程门阵(PLD),可用于很多产品中,这当然是一种通用芯片。另外ARM CPU也可认为是一种较通用的芯片。

通过以上分析,我们的结论是我们应重点发展量大面广的芯片设计,即较通用的嵌入式芯片,同时要重视高安全性的服务器CPU芯片设计。形成较通用的嵌入式 CPU核的一条可行途径是从设计通用CPU入手。通过应用实践再适当裁剪通用CPU比从专用CPU开始不断扩充更合理。虽然国内对低端微控制器芯片仍有一定需求,但从海关统计数字来看,不论是CMOS芯片还是其他数字集成电路,大多数进口芯片是0.25微米以下工艺生产的芯片。是否在落后工艺下生产量小面窄的嵌入式芯片应由企业自己判断决定,国家不能采取只要是嵌入式芯片就支持的短视政策。

龙芯一号CPU研制体现了我们制定的发展战略,一个多月来十多种应用轻松移植,表明龙芯CPU既是一种较通用嵌入式芯片(功耗小于0.5W)可用于网卡网关、网络终端计算机(NC)等,同时也是高安全性的服务器芯片,可用于网络服务等。明年一季度,基于龙芯一号的SoC芯片将问世,更适合于做NC和网络设备。

剩下的一个问题是我们究竟做不做与Intel兼容并与之竞争的通用CPU芯片。我们的意见是暂时不做。我国舆论界有一种误导使许多老百姓认为"信息技术主要是PC机,PC的核心技术是P3、P4芯片,芯片的高技术是高主频。" 实际上PC用的CPU只占微处理器数量的1%左右,但销售收入有200多亿美元,占全球1500多亿美元IC总收入的15%左右(有机构统计,PC用IC 占IC总市场的30-40%)。PC芯片的高收入高利润是多年来Wintel联盟的"功绩",我们暂时不具备实力与Intel比高低。在未来的发展中,各种Internet Appliance(所谓IA产品)增长势头明显大于PC,据IDC公司预测2002年IA产品销售数量将达到1.8亿台,超过PC机销售数量。PC机本身也在变化,用户未必希望PC机主频3G、4G这样升上去。因此我们不能固守"通用CPU=P4"这种思维模式。

三、 兼容与另起炉灶

龙芯一号启动时,最重要的决定是要不要与国外主流系统兼容,如果要兼容与哪一家兼容?有人认为选择芯片指令系统是一个政治问题,是受不受制于人的问题。我们则认为,在全球经济一体化的形势下,我们要抛弃所谓"完全自主知识产权"的旧观念,世界上几乎所有芯片公司的产品都是"你中有我,我中有?quot;,连Intel公司都要买别人的IP,为什么刚刚起步的中国IC设计产业就必须全用自己的IP?兼容不兼容完全是市场行为,是我们根据推广龙芯CPU的市场需要决定。应当说作出必须兼容的决定在很大程度上受到曙光服务器成长过程的启发。曙光一号服务器和曙光1000大规模并行机开始走的是一条不完全兼容的路,我们在AT&T UNIX和Mach OS基础上分别研制了自己的并行操作系统。尽管符合POSIX标准,有自主知识产权,可以得国家最高的科技成果奖励,但数据库厂商和第三方应用软件厂商不愿意花功夫为曙光机移植软件,曙光机只能卖给自己有源程序的用户,市场上成千上万种应用软件用不上。冷酷的事实教育了我们,为了充分发挥后发优势,利用已有的巨大软件资源,与主流系统完全兼容是迅速扩大市场份额的良策。曙光公司后来推出的天潮、天演、天阔三大系列几十种型号产品都与IBM或微软主流操作系统兼容,我们的增值主要在机群操作系统上,这一正确策略使曙光服务器迅速占领市场,中高档服务器稳居国内服务器品牌第一,已销售的曙光机群服务器总计算能力已超过每秒20万亿次。我们相信推广龙芯CPU将会遇到与曙光服务器同样的问题,因此毫不犹豫地选择了兼容道路。

在选择与哪一家兼容时颇费一番心思。在酝酿启动龙芯CPU研制时,美国冒出一家叫Transmeta的新公司,采用"Code Morphing"的二进制编译技术,推出可运行X-86程序的超长指令芯片Crusoe。据我们了解二进制编译的源头技术掌握在俄罗斯Elbrus公司。计算所有较强的编译队伍,采用二进制编译与Intel芯片应用程序兼容可能是一条奇径,于是我们花了一番功夫与俄罗斯科学家谈合作。后来我们从原打算投资Transmeta公司后又改变主意的台湾厂商了解到,二进制编译的应用程序有些效果好有些性能差(后来Transmeta公司发展不理想也证明其技术不具备与Intel竞争的实力),决定将二进制编译作为中期目标,近期先用于做BIOS和驱动程序的编译。

经过对X-86、PowerPC、MIPS、SPARC等多种指令系统的仔细分析,我们最终选择了MIPS指令系统,在这一选择中,唐志敏研究员起了关键作用。唐志敏研究员是计算所年轻的博士导师、863计划计算机主题专家组成员,也是龙芯CPU课题负责人。他在体系结构方面造诣颇深,对各种RISC指令系统做过深入分析后,选用比Alpha功能强又比PowerPC简单的MIPS指令系统具有较好的可行性。选择MIPS指令系统的更重要的原因是出于市场考虑。MIPS公司不同于Intel、SUN和IBM,它不是IDM公司,自己并不生产销售芯片,而是以卖License和服务为营业范围,它不但不像 Intel公司那样反对别人做兼容芯片,而是支持其他厂家做MIPS兼容芯片。世界上许多大公司,如生产路由器的CISCO、生产游戏机的SONY等都采用MIPS指令系统。MIPS芯片不仅用于SGI公司做高档工作站与服务器,而且是主流的高档嵌入式CPU,每年MIPS芯片销售量超过7000万片。市面上已有大量MIPS应用软件,龙芯一号流片成功后许多整机厂商一小时内就装上了应用软件,充分证明我们的决策是正确的。

对采用兼容技术路线的另一种担心是当龙芯CPU成大气候时,外国公司可能趁机讹诈或者由于指令系统不断升级我们则要不断地付新的许可费。由于中美两国政治制度不同,凡事往坏处多考虑些是必要的,但市场经济有其通行的法则。比起芯片掩膜费、加工费、封装测试费,指令系统许可费要小得多,只占芯片成本很小的一部分。在芯片正式上市销售前,龙芯公司一定会按市场惯例与所有有关公司签定合理合法的商务协议,签定永久使用某一版本指令系统也是市场上允许的一种做法。我们认为MIPS指令系统已相当成熟,没有必要步步跟随升级,今后完全可以根据应用需求自己增加新指令,这就是站在巨人肩膀上攀登高峰的策略,也是国外公司通常的做法。

与兼容策略相关还有一件大家十分关心的事,那就是如何避开专利。国内有些专家认为芯片设计专利是我们难以逾越的障碍,我们有些决策者也对此忧心忡忡。专利的确是我们必须高度重视的技术障碍,但也不能把专利看成拦路虎,长他人志气,灭自己威风。我们在研制龙芯一号过程中查阅了所有有关专利,我们发现指令系统本身不是专利,而且几乎没有一项概念性的专利,例如Cache技术、多发射技术等,所有专利几乎都与具体实现技术有关。我们设计CPU是先通过译码器变成自己定义的统一中间代码,所有的功能部件执行中间代码,与原来的指令系统无关。所以对我们而言,回避专利与采用什么指令系统没有关系。我们在设计中没有侵犯任何专利而且自己申请了十余项发明专利。现在芯片代加工厂定单并不饱满,往往提供多种方便包括免费提供标准单元库拉客户,单元库中如果有专利问题也与我们无关。今后做全定制设计,除了我们自己设计一些关键的宏单元外,一定会购买一些IP使用权,包括一些专利使用权。在IC设计中这是十分正常的。今后我们自己的专利与IP越来越多,通过Cross Licencing共享互用IP和专利是必由之路。与计算机产生一样,IC产业的横向分工越来越明显,IP(包括专利)将是IC设计厂商的主要产品,我们要学会如何买卖IP不要谈"专利"色变,作茧自缚。

还有一种看法是认为采用别人的指令系统说明没本事,还不掌握CPU核心技术,不如另起炉灶自己定义指令系统的单位水平高。实际上学过计算机原理与系统结构课的人都知道,自己定义一套指令系统并不是难事。40多年前,计算所就开始自己定义指令系统,几十年来计算所研制的十几种计算机都是自己定义指令系统。一个好的指令系统要经过大量应用反复考验修改才能成为市场接受的主流系统。如同大家用C、VB、JAVA编程序,没有人强调非要自己定义一种语言编程一样,研制CPU的水平并不在于是不是自己定义指令系统,谁能占领市场才是真本事。

四、 IC设计的科研与产业化

我国IC设计落后,而且存在科研与企业脱离、系统设计与微电子设计脱离这两大令人头痛的弊端。国家设立863计划IC设计重大专项,投入7亿元,计委、信息产业部、各省市政府都十分关心IC设计产业,究竟应如何布局、依靠什么力量、采用什么机制才能尽快振兴IC设计产业,这是上至中央领导下至科研人员都在思考的大事。不少人认为:技术创新应以企业为主体,把钱投向科研单位和大学要么打水漂要么转化不成生产力,因此最简单易行的方法是直接支持大大小小的IC 设计企业,开发国内有需求而又做得出来的短平快产品。计算所既不是企业,又不擅长微电子,因此863计划IC设计重大专项预启动时,全国批准了几十家项目,计算所申请20万元都评不上。但为什么计算所在短短一年多时间内能做出全国最高水平的CPU,其中必有内在的原因和规律。

首先是如何看待科研与企业"两张皮"关系,自从200年前独立的科研机构诞生起,就存在科研与产业化的对立统一关系,既是一分为二,又是合二而一,不可能一劳永逸地消除矛盾。应当看到企业在变,科研单位也在变,用几年前的眼光看待今天的科研单位和企业,政策上就会出偏差。不论哪个国家,特别是像中国这样的发展中国家,国立科研机构一定是国家创新体系不可替代的一个环节。涉及国家安全和战略需求的科研任务,例如CPU研制,需要一支国家队啃硬骨头。集中兵力打歼灭战是以弱胜强的法宝,分散兵力似乎风险小实际上会有更大的风险。现在我们需要的是雪中送炭,不是锦上添花,更不是撒芝麻。

其次是系统设计与微电子设计的协同配合。我国长期忽视系统设计人员在IC产业中的作用是导致IC设计落后的重要原因之一。龙芯一号研制成功充分说明系统设计人员学习微电子设计技术是弥补IC后端设计人员不足的重要途径之一。龙芯一号做了三次不同的物理设计,设计最成功的是由计算所自己完成的C方案,能做到这一点首先要感谢中科院微电子中心的黄令仪研究员,是他把计算所的系统设计人员领进了微电子设计的大门。物理设计水平是决定我国IC设计水平的关键,尤其是对0.18微米之下的高速低功耗芯片,物理设计的奥妙还要靠我们不断地实践去探索,从书本上很难学到。

龙芯一号研制成功后,马上面临研制更高性能的龙芯2号与尽快将龙芯一号产业化的矛盾,这与当时研制曙光机的情形十分类似。我们决不能只以不断研制出新的 CPU为目标,置产业化于不顾。在科研人员中要树立一个观念,龙芯一号卖不出去,研制出龙芯2号也没有多大意义。计算所的科研人员已做了计划,全力配合神州龙芯公司打开市场,龙芯1.1、龙芯1.2两款SoC产品的优先级放在龙芯2前面。神州龙芯公司也在大力开拓龙芯CPU的应用,争取较多的定单。我们的体会是在研制龙芯CPU时,为国分忧的激情是一股强大的动力,胡伟武研究员几篇关于龙芯研制过程的文章催人泪下,表明年轻一代科研人员像两弹一星研制人员一样有着高尚的爱国情操和顽强的拼搏精神,计算所有这样一批又红又专的人才才能做出让人眼睛一亮的成果。如果我们一味等待国外的高手回来才开始研制,恐怕今天龙芯CPU还只存在于希望之中。另一方面,根据我们推广曙光机的经验,我们不能把产业化的希望寄托在用户的爱国热情中。CPU虽然是涉及国家安全的特殊产品,但卖产品就是卖产品,不能加上过多政治色彩,必须靠产品本身的可靠性、高性价比和出色的服务取得用户的信任。从某种意义讲,推广龙芯CPU是比研制CPU更艰苦的一场战斗。较通用的嵌入式CPU的用途很广泛,不一定非要性能超过P4才能卖得动,266M 0.5W功耗的MIPS兼容CPU芯片一定有它对应的广阔市场。国家在开始推广国产CPU时做一些扶植是必要的,但关键在自己努力。我们有信心比推广曙光机做得更好,让国产CPU尽快在市场上占有一席之地。
是不是CPU制造技术比设计技术还要难?
[B]以下是引用[I]忘了密码[/I]在2005-4-22 15:06:00的发言:[/B][BR]是不是CPU制造技术比设计技术还要难?

全世界有设计能力的有200多家,能大规模制造的10以下
虽然龙芯一号性能看来比较落後, 但是我的 HP iPAQ 6300 掌上电脑用的还是 266 MHz 的 CPU, 而这已是最新和比较贵的型号. 而平价的掌上电脑和 PDA 有些还是用 133 MHz 的东东, 可见即使是龙芯一号还是大有市场. 龙芯二号性能相当於 PIII, SPEC2000 分值超过 300, 虽然看上去无什麽大不了, 但是你看 VIA C3 1GHz 的浮点运算分值才100多, 整体运算就连 SPEC2000 也通不过, 就知道龙芯二不是可用那麽简单. 虽然只有 500 MHz, 但据说已比 VIA C3 的 1.3 GHz 还要强.
[B]以下是引用[I]屠城校尉[/I]在2005-4-22 16:18:00的发言:[/B][BR]虽然龙芯一号性能看来比较落後, 但是我的 HP iPAQ 6300 掌上电脑用的还是 266 MHz 的 CPU, 而这已是最新和比较贵的型号. 而平价的掌上电脑和 PDA 有些还是用 133 MHz 的东东, 可见即使是龙芯一号还是大有市场. 龙芯二号性能相当於 PIII, SPEC2000 分值超过 300, 虽然看上去无什麽大不了, 但是你看 VIA C3 1GHz 的浮点运算分值才100多, 整体运算就连 SPEC2000 也通不过, 就知道龙芯二不是可用那麽简单. 虽然只有 500 MHz, 但据说已比 VIA C3 的 1.3 GHz 还要强.
看来楼主更本不了解CPU技术,CPU分RISC和CISC(精简指令和复杂指令),两者之间在速度上,我认为没有可比性
看来楼主更本不了解CPU技术,CPU分RISC和CISC(精简指令和复杂指令),两者之间在速度上,我认为没有可比性
====================================================================
Intel 就专门找测试公司拿 Celeron 600 MHz 和 VIA C3 的 933 MHz 和 1 GHz 作 SPEC2000 下的性能作比较. CPU SPEC 2000 也就 700 多种通用 CPU 的性能作比较和做出报告. 只要是通用 CPU 就可以作比较, 大家都是通用, 也就是用来处理 SPEC 2000 要测试的项目.
我们设计出芯片电路,然后要把设计图纸交给美国或台湾的公司去加工?如果他们在里面做手脚怎么办?
6楼的朋友,RISC和CISC针对的是不同的机器,运输机和战斗机比一下速度有意义吗?我是这样想的
任何成就的取得都不是一帆风顺的
我是外行,不过支持国货
[B]以下是引用[I]huangdw[/I]在2005-4-22 18:12:00的发言:[/B][BR]我们设计出芯片电路,然后要把设计图纸交给美国或台湾的公司去加工?如果他们在里面做手脚怎么办?

是上海的公司加工
6楼的朋友,RISC和CISC针对的是不同的机器,运输机和战斗机比一下速度有意义吗?我是这样想的
====================================================================
不理你里面是如何设计, 做出来是用来作通用 CPU, 也就是做相同的工作, 就可以用处理相同工作的速度作比较. 这个 SPEC 2000 比较是比较处理相同工作的速度.
再转一篇龙芯网页上的文章
2003年10月16日深夜,喧嚣了一天的计算所北楼终于沉寂了下来,我独自坐在北楼105房间忐忑不安地等待着。刚才还有郑为民和一个学生跟我在一起,几分钟前我派他们到后面的芯片小楼取逻辑分析仪去了。与北楼隔着一个篮球场的芯片小楼里还有10来个课题组的弟兄,他们都象我一样忐忑不安地等待着。  17日凌晨0点30分,楼道里传来了有节奏的脚步声,在空旷而寂静的楼道里显得特别有力 。脚步声越来越近,我的心一下子提了起来,咚咚的脚步声象敲在我的心上,因为我知道,我们的狗剩2号回来了。  105房间的门被推开,张珩风风火火地闯了进来,手里抱着一个方盒子。他是我专门派到上海去封装厂家取狗剩2号芯片回来测试的。我们小心翼翼地打开盒子,几十片狗剩2号芯片象等待检阅的士兵一样整齐地排列在专用的包装盒里。一个电话拨到芯片小楼,不到两分钟,105房间就聚集了六、七个人,他们都是下午刚刚成立的联调组的成员。  我挑了几个芯片,在用万用表对芯片进行一些简单的静态测试后,从中选了一个芯片放到子卡的插槽中盖好,并把子卡插到主板上。小心地按了一下电源开关,显示屏上没有动静,心里一阵紧张。试了几次后,换一个子卡,放上芯片后插到主板上,一按电源开关,显示屏一阵跳动,串串字符如约而至。我们一阵欢呼,刚才提到嗓子眼的心放回到心窝里先。  在启动了一个简单的BIOS系统以后,开始启动LINUX操作系统,一切都很顺利。1点10分,屏幕上出现了LINUX操作系统的登录提示符“login:”。在拿到芯片的40分钟后,刚才等待时的紧张心情一扫而光。我们赶快打电话到芯片小楼告诉在那里等候的其他同学。钟石强还给我的妻子发了个短信,今晚她也在等待我们的消息。几分钟后狗剩2号收到了出世后的第一个祝福。  4点30分,狗剩2号通过了其他的测试。我们用装有狗剩2号的计算机在我们CPU组的内部BBS上灌了狗剩2号出世后的第一瓢水,并发了几封EMAIL。我决定狗剩2号的第一次联调先告一段落,拿出放了很久的硅谷的一个朋友送的一瓶XO在芯片小楼的会议室里每人半纸杯庆祝了一下。喝完酒后大家兴致不减,根据事先的约定又打车到天安门广场看升国旗并去毛主席纪念堂向毛主席报告。今年是毛主席诞辰110周年,我们这款芯片的名字就叫MZD110。  6点25分,我们又一次站在天安门前的国旗杆下,看着红彤彤的国旗在国歌声中冉冉升起。去年在接受《东方之子》节目采访时,他们曾问我在狗剩1号研制成功后看升国旗时心里想什么,我那时真忘了想什么了。这次我试图去想一些有意义的事情,比如什么豪言壮语之类的。可是面对国旗,脑袋里一片空白,只是在国旗猛地串上杆顶的那一刹那,24小时前杨利伟走出神舟5号舱门冲大家挥手的画面突然出现在我脑海中,以至于在去前门吃早饭的路上这个画面还久久浮现在面前,挥之不去。  在2002年9月28日龙芯1号的发布会上,李国杰所长曾经引用《易经》中的话说:“万物生于有,有生于无”。如果说狗剩1号解决的是从0到1的问题的话,那么狗剩2号要解决的是从1到10的问题,即狗剩2号的性能至少是狗剩1号的10倍以上。事实上这也是我们在申请 中科院知识创新工程重大项目和863计算机软硬件主题重点项目时唐志敏提的指标。在这 两个项目厚厚的申请书和合同书中,我只记住了两个数字,一个是主频500MHz以上,一个 是SPEC CPU2000的值达到300分以上。从承担项目之日起,这两个数字就象两个紧箍咒一 样紧紧地箍在我的头上(我一直认为这个项目是863项目中立得最成功的项目之一,只用 两个数字就把要做的事情表达得足够清楚了)。  从现在看来,主频500MHz以上还好办一些,下死工夫总是可以做到的,用0.13微米的工艺 更是容易做到。难的是SPEC CPU2000的分值达到300分以上。所谓SPEC CPU2000,就是一 组国际公认的标准测试程序,用这组程序在目标机器上运行,根据实际运行时间算出该计 算机的运行速度指标。这种标准测试程序从SPEC CPU89、SPEC CPU92、SPEC CPU95、到 SPEC CPU2000已经发展了好几期。其中SPEC CPU2000覆盖的应用面最广,包括文件压缩、 FPGA布局布线、编译器、组合优化、国际象棋、文字处理、计算机视觉、编程语言、解释 器、数据库、布局布线模拟器、量子动力学、浅水模型、三维势场求解、偏微分方程、三维图形库、计算流体动力学、图象识别/神经网络、地震波传播模拟、计算化学、数论/素数测试等等,光源代码就有上百万行。打分的标准是把这组程序在Sun公司一台300MHz的四发射Untra Sparc II 上运行的时间做为标准运行时间,其分值为100分,其它机器运行时间跟标准时间相比算出相应的分值。一般来说,现在较流行的四发射的主流RISC处理器象Alpha 21264、MIPS R12000、IBM Power III等在400MHz到500MHz的情况下SPEC CPU2000的分值可以达到300分左右,而Pentium III在800MHz时SPEC CPU2000的浮点分值 才200多分。狗剩2号要达到300分,至少要与1GHz以上的PIII或PIV的性能相当。因此,虽然做500MHz虽然也不容易,但更难的是SPEC CPU2000的分值达到300分以上。  提高处理器的性能,提高主频和优化软硬件结构不可偏废,光强调主频和光强调结构都是不行的。就象要把100根木头从A地扛到B地,甲每10分钟一个来回,每次扛1根木头;乙每20分钟一个来回,每次扛4根木头;丙60分钟一个来回,每次扛6根木头。我们不能根据甲跑得快(主频高)就说甲的性能最高,也不能根据丙每次扛得最多(每拍执行的指令多)就说丙的性能最高,性能是一个综合的东西。当然,还有其它要考虑的因素,如甲乙丙三人每小时的报酬(处理器的功耗、面积)等。虽然狗剩1号的成功对我们来说是一个巨大的进步,但有一件事我一直深引以为恨,那就是狗剩1号的性能没有达到预想的目标。  虽然主频不低,但跑起程序来比起类似结构的RISC处理器以及相同主频的PII还有一些差距。SPEC CPU2000的分值也不高。我曾经整日整夜地泡在机房运行各种测试程序,并试图通过软件优化的方法提高性能。虽然取得了一些效果,但不理想。后来的性能分析表明,有些狗剩1号性能瓶颈其实完全是可以通过简单的优化克服的,可惜当时项目推进得太快,没有时间做充分的性能分析和优化。这件事使我极其郁闷,因此把性能分析不够作为狗剩1号设计过程的一个重要教训,并发誓在狗剩2号的设计中要一血前耻。知耻近乎勇,后来狗剩2号步步为营的性能分析果真为狗剩2号提高性能发挥了巨大作用。在中科院领导对我们承担的龙芯2号重大项目进行立项审查的会上,李老师、唐志敏和我在向院党组汇报后准备离开时,江院长追出来跟李老师说:“李院士,我就把宝压在你身上了”。在863计算机软硬件主题专家对我们承担的龙芯2号项目进行立项审查的会上,我做完报告后,专家组组长怀进鹏老师曾声色俱厉地说:“胡伟武,这个项目是863计算机软硬件主题最大的项目,完不成任务提头来见!”这两件事给我很大的触动,让我想起上甘岭战役前夕彭德怀曾对秦基伟说:“我们要对朝鲜的历史负责”。  狗剩2号的设计在狗剩1号tapeout前就开始筹划,主要是唐志敏和我围绕我们申请的中科院和863的项目进行调研并确立在2004年项目结束时SPEC CPU2000的分值达到300分的目标 ,并在此基础上确定64位结构和4发射的目标。根据项目目标及狗剩1号研制的经验和教训 ,我们确定了狗剩2号研制的如下三条设计原则。  一是充分发挥结构设计优势和软硬件协同的设计原则。即通过处理器中各个层次的并行性开发来提高性能。这些并行性包括指令级并行、数据级并行以及线程级并行。其中指令级并行主要是四发射结构的实现,即在指令流水线的任何一个阶段每拍都执行四条以上的指令。为了有效发挥多发射通路的效率,必须实现充分的乱序执行技术,减少指令间的互相 等待。数据级并行性的开发主要是通过SIMD的技术实现向量指令。线程级并行性包括单处理器的多线程技术以及多处理器的多线程技术。狗剩2号在并行性开发上主要开发指令级并行技术,并通过把浮点部件与媒体处理共用的方法实现数据级并行的SIMD技术。软硬件协同主要指通过编译优化及硬件对编译器的支持提高性能,既不片面追求复杂的硬件大包大揽,也不把沉重的优化负担完全压在编译器身上。编译器对提高性能十分重要,我们曾有这样的体会:在同一台机器上,用不同编译器编译出来的同一个程序,运行时间竟相差75%。  二是以物理设计指导结构设计的原则 首先,流水线的最大逻辑路径不是由体系结构设计的需要来确定,而是由物理设计的要求来确定。即先确定每一级流水线的最大延迟并在此约束下进行结构设计。其次,在做结构设计时,心中要有物理设计的概念,即要明白相应的逻辑在物理上是什么样的。在狗剩2号设计过程中,结构设计人员至少做到网表级。三是设计和实现方法上稳扎稳打的原则 首先,重视Cycle-by-Cycle的C模拟器的设计并把C模拟器作为详细结构设计的文档是我们在狗剩1号开发过程中形成的一条最重要的经验,即“可执行的结构设计”的概念。在设计初期就通过充分的仿真与验证不仅不会影响进度,而且会加快进度。此外,狗剩2号的功能设计和物理设计也分成几步。第一步,还是采用标准单元设计,只在很有限的局部做全定制(如寄存器堆),主频200-300MHz以上,功能上不实现二级CACHE,争取尽快完成流片。第二步,功能上增加二级CACHE接口或/及DDR接口等,物理设计上使用更多的宏单元,但设计方法还是基于标准单元的方法,主频在300-400MHz以上。第三步,功能上增加对多处理器系统的支持,在更多的地方使用全定制单元或使用全定制流程,主频争取在400-500MHz以上。狗剩2号最后的流片将以全定制为主。  狗剩2号的设计包括结构设计、逻辑设计以及物理设计三个阶段,这三个阶段互相重叠,其中结构设计阶段和狗剩1号的设计也有所重叠。狗剩2号的结构设计断断续续地进行了好几个月。刚开始是在2002年四、五月份在进行狗剩1号物理设计的同时对狗剩2号的系统结构进行了初步的考虑。在对市场上的主流处理器如Alpha 21264、MIPS R10000、Ultra Sparc III、Power III、HP PA8700、PIV、IA64等及学术界的主要工作进行调研的基础上基本确定了狗剩2号的寄存器重命名、动态调度以及运算部件的架构。到六、七月份随着狗剩1号物理设计和系统开发工作的展开,狗剩2号的结构设计几乎停了下来。那时候我们组一共只有二、三十号人,很多人员的工作都是重叠的,根本没有力量同时做两件事情。  在2002年7月中旬狗剩1号tapeout之后,利用等待芯片回来的时间把狗剩2号的结构设计再次提上日程。7月15日研究生部的靳晓明老师打电话叫我到在四川广元召开的研究生学术研讨会上做个特邀报告,本来应该是徐志伟老师做的报告,徐老师临时有事去不了因此派我救场。唐志敏已经告诉靳老师我刚tapeout一个芯片,应该有空,所以推也推不掉。开完会后还要去九寨沟,需要三、四天才能回来。我走之前临时决定把狗剩2号的部分设计人员带到广元,准备在路上对狗剩2号的结构进行讨论。我和中科院研究生院的两位老师一起坐火车头天走,安虹老师、张福新和范东睿坐飞机第二天走,几乎同时到的广元。那时候我女儿正在放暑假,我爱人在狗剩1号tapeout之后刚到一个公司上班,因此我把6岁的女儿也一起带上了。  后来的事实证明我临走前做的决定是十分正确的,在广元和九寨沟的几天效率极高,基本确定了狗剩2号的结构框架。那几天我们白天根据会务组的安排活动,晚上讨论狗剩2号的结构,并且根据讨论结果形成狗剩2号结构设计的初步文档,每天都到凌晨一、二点。由于处理器的寄存器重命名以及动态调度结构已经基本确定,因此讨论的重点是取指和访存部件的结构。  (文章太长, 下续)
续 (2)

在从广元去九寨沟的路上我和范东睿坐在汽车的最后一排讨论狗剩2号的取指和译码部分 的结构,汽车在路上颠簸了一整天,我们也讨论了一整天。取指与译码部分的设计空间很大,包括采用何种转移猜测算法、多发射情况下如何消除转移指令后面的延迟槽、取指及转移猜测是以指令为单位还是以发射块(四条指令)为单位、转移猜测是在取指还是在译码阶段进行、修正BHT和BTB的时机、如何提高指令CACHE的性能、以及指令TLB和数据TLB 的关系等。其中如何消除转移指令后面的延迟槽讨论的时间最长,主要是对传统的BTB方法和Alpha 21264中采用的line prediction方法进行反复的比较和分析。我从小就喜欢坐比较颠簸的汽车,汽车越颠精神越好,范东睿精神也不错,因此一路上效率极高。晚上8点汽车到达九寨沟时,狗剩2号的取指部分架构已基本确定。  访存部分的结构比取指部分复杂。一方面,它是与操作系统关系最密切的部分,其功能是否完善是支持通用操作系统的关键因素;另一方面,它是提高处理器性能的核心部件之一。如果CACHE访问效率不高,流水线的其它部分设计得再好也没有用。这一点在狗剩1号中我们已经有所体会。学术界与企业界都对如何提高访存性能作了大量研究,设计空间很大,核心问题包括如何降低流水线延迟、如何提高CACHE命中率和降低由于CACHE不命中引起的等待延迟、以及如何解决访存的RAW、WAR、和WAW相关等等。在随后的几天中,我们对这些方面进行了反复的权衡和讨论。直到在回北京的火车上才有比较粗的思路。  有意思的是,一路下来,我女儿看我们的工作,耳濡目染,对CPU设计也有了自己的心得 。直到今天我问她什么是CPU,她还说“CPU就是在一张纸上画些方框,然后用线和箭头把这些方块连起来,再涂上点颜色,写上一些字,最后一烧,烧出一个亮晶晶的小方块”。  最近我女儿经常在用狗剩2号做的Linux PC上玩游戏。我告诉她这就是我们在九寨沟画的 方框“烧”出来的,她感到很诧异。在2002年8月10日狗剩1号首片调试成功之后,狗剩2号的设计工作又慢了下来,全组的主要力量放在了狗剩1号的系统开发上面。虽然由于狗剩1号的系统开发和性能分析耽误了一些时间,但我自己在狗剩1号上玩了近一个月后有很大的收获。尤其是对性能和主频的关系有了更深入的认识。比如,对于有一些访存密集的应用,主板频率83MHz而CPU频率250MHz时的性能还不如主板频率100MHz而CPU频率200MHz的性能。现在想起来,一个处理器的性能就象一个城市的交通系统的吞吐率,可能由于某几处的堵塞而影响整个城市的吞吐率,只要把这几处疏通了,虽然花的力气不大,但吞吐率会极大地提高。2002年9月28日狗剩1号发布会后,狗剩2号的设计工作全面展开。10月2日,我带着张福新和李祖松到母校中国科大利用十一长假进行狗剩2号的C模拟器封闭开发,顺便向母校报告一下我们的工作。在科大借了半间原来的库房呆了一个多星期,基本完成了C模拟器的代码编写。在对结构进行细化的过程中发现了好多原来没有考虑到的问题。对于这些问题我们有时候争辩得很激烈。例如在转移猜错取消时需要判断正在执行的指令中哪些是该转移指令前面的,哪些是该转移指令后面的,张福新和李祖松的观点是参照MIPS R10000使用的方法,而我觉得那个方法太麻烦,希望有更简洁的方法。我们一直争论了两天,在争论的过程中互相启发,终于找到了一种简洁而高效的方法。  2002年10月8日回北京时狗剩2号的C模拟器已经基本成型。我们继续在我的办公室进行半封闭式的开发,主要是继续完善C模拟器并开始调试。那段时间我们每周只有二、四、六晚上休息,其它时间都在调试。调试过程中也调动组里的其它人写了不少测试向量。11月中旬在C模拟器中成功启动LINUX操作系统,开始对C模拟器进行性能优化以加快模拟速度并用C模拟器对狗剩2号的结构进行性能分析。  在此期间以及以后的几个月内,我们在C模拟器上运行了完整的SPEC CPU2000的几乎所有程序以及八十年代比较流行的性能测试程序dhrystone和whetdstone等,对狗剩2号的性能进行初步的分析。在运行上述程序过程中还发现了不少设计上的bug和考虑不周的地方。印象比较深刻的是由于访存操作的乱序执行导致两个或多个访存操作之间互相替换CACHE 块并引起死锁。另外一件印象比较深刻的是MIPS指令系统规定转移指令的延迟槽指令不能是转移指令,否则处理器的行为不确定,但我们在C模拟器中发现在我们的设计中如果转移指令的延迟槽指令也是转移指令时也会导致处理器死锁。虽然这是由错误的程序引起的,但也是结构设计考虑不周的地方,对于错误的程序我们可以给出错误的结果,但不能把机器搞死。  由于张福新和李祖松的加入,狗剩2号的C模拟器比狗剩1号完善很多,包括checkpoint在内的很多功能都加到模拟器中,此外,C模拟器的运算速度也大大提高了。张福新还顺手开发了不少小工具。  2002年11月底,我觉得C模拟器已经基本稳定,就召开了狗剩1号总结以及狗剩2号部署的会议,全面部署狗剩2号的RTL设计工作。  2002年12月初我们组建了RTL设计的队伍,由于我们人手有限,RTL编写的人员都是从各组抽调的,我自己也负责寄存器重命名和几个队列模块。狗剩2号的RTL设计大致可以分为三个阶段。  第一阶段为设计阶段。从12月初开始大家花了约半个月的时间了解狗剩2号的结构,同时我开始进行顶层模块的设计,主要是每个模块的互连关系、接口总线及触发器的定义。12月28日完成顶层模块的设计并启动各模块RTL的编写。由于有Cycle-by-Cycle的C模拟器作为参照,2003年1月14日就完成所有模块RTL的编写并编译通过,1月21日成功运行第一条指令。在此基础上,经过三天三夜的努力,到1月25日成功运行狗剩1号中使用的包括所有MIPS指令的一段功能测试程序。由于2002年春节没有放假,因此1月25日后全组放假。  第二阶段为联调阶段。春节后开始在RTL仿真环境上运行LINUX操作系统。经过连续一个多星期的努力,2月18日成功运行LINUX操作系统。在狗剩1号的联调过程中,在运行LINUX后,整个流水线的设计就基本上没有发现什么问题,只发现了部分与浮点有关的问题。但在狗剩2号中,运行LINUX后试图运行whetdstone时碰到了巨大的困难,甚至一度出现停滞不前的情况。因为错误出现在调用动态库的过程中,而且没有动态库的源代码无法调试。不得已我组织RTL编写人员于3月7日和8日进行了两天的封闭式自查。通过自查发现了大大小小20多个错误,使运行whetdstone的联调取得突破性的进展。后来我们又进行了两次封闭自查,只发现一、二处小错误。  第三个阶段为调整和优化阶段,这个阶段是狗剩2号逻辑设计的关键阶段。与联调阶段相 比,优化阶段发现的bug较少,但根据对RTL进行综合以及用C模拟器进行性能分析的结果对整个设计的延迟、面积、性能进行了持续的优化。通过初步的优化,狗剩2号的延迟降低了一倍多,面积降低了30%以上,相同频率的性能提高了30%以上。在这个阶段的每一周都充满了激动人心的改进,深刻体会到精益求精的道理。孔子说“食不厌精”,处理器设计更是如此。用1%的工夫可以完成一个正确的设计,但需要用99%的工夫来优化它。  在狗剩2的RTL优化过程中,我们总结了三条经验。第一条是精益求精的经验。做一个正确的设计和做一个精品的设计是有很大区别的。为了做到精益求精,思想上要永不满足,执着改进。碰到复杂的问题,不能满足于用复杂的方法来解决,要努力把问题简单化再用简单的方法来解决。第二条经验是在执着于细节的理解和把握的同时退后一步进行的全局的观察和思考是十分必要的。在狗剩2号的优化中有很多都是在项目的推进过程中退后一步进行文档整理、看文章、或封闭自查时得到的启示。对设计的微观了解和宏观把握是不可偏废的。如果对设计的细节不做一定的了解,则在整理文档或看文章过程都比较虚,不会有灵感出现;反之,如果过于执着于细节,则可能只见树木,不见森林,忽略了一些大的改进。第三条经验是以事实为依据的经验。对设计进行持续的性能分析、物理综合、以及仿真验证为狗剩2号的改进和改正提供了大量了事实依据。在根据事实进行设计和改进时,一定要在大量的事实和数据的基础上(小量的、不具有代表性的不行)对事实进行深入的分析,弄清楚隐藏在这些事实后面的、本质的东西,这样做的设计和改进才是最优的。  与RTL设计和验证同时进行的是FPGA验证环境的建设。在这个方面我犯了个错误。由于觉得有了狗剩1号的FPGA验证的经验,狗剩2号的FPGA验证应该没有问题,因此只让范宝峡一个人负责FPGA验证工作。没想到由于狗剩2号的规模较大,设计也更加复杂,导致FPGA验证困难重重。主要困难是由于在一片FPGA中放不下,需要多片FPGA,而且多片FPGA之间互连信号太多需要在每片FPGA接口处进行倍频传输。此外由多发射引起的多端口寄存器堆也难以在FPGA中实现。到4月下旬我才意识到FPGA验证方面投入的力量很不够并加强了这方面的力量。直到6月下旬狗剩2号的第一个芯片tapeout之前的半个月,才完成FPGA验证工作并通过FPGA验证及时地发现了设计中的一个错误。  在进行处理器结构和逻辑设计的过程中,其它方面的工作也在同时展开,包括王剑和郑保建带领的狗剩1号系统的继续开发以及狗剩2号软件环境的开发,郑为民带领的狗剩2号主板的开发,许彤、赵继业、钟石强、张珩负责的物理设计和验证方法的总结和研究等等。  就在狗剩2号的RTL设计过程中,SARS在北京肆虐,并给我们极大的考验。那时候所里的政策是所里不统一放假,但各个部门可以根据自己的具体情况放假。我和唐志敏商量后决定我们采取一定的预防措施并适当减轻工作强度。我们要求凡是乘坐公共交通系统上下班的都不来上班,晚上9点前必须下班,每天的中饭和晚饭由室里统一安排在办公室吃。至于外界的来访,所里早就不允许进入北楼了。此外,所里和室里都给我们发放了有关的预防药物,我们自己也买了一些。在这段日子里,虽然我们的进度被迫放慢了一些,但依旧不断地向前推进。我在为全国人民面对灾难时众志成城战胜非典的精神所鼓舞的同时,也为全组在这么困难的情况下坚守岗位所感动。  2003年3月份我们开始部署狗剩2号中用到的一个9个端口的寄存器堆的全定制设计。为了保险,我们部署了两套方案来设计寄存器堆。首选方案是请一个大公司帮我们做这个寄存器堆,同时作为与中科院微电子中心的合作请微电子中心设计同样的寄存器堆作为备选方案。由于首次流片主要是对设计的正确性和结构性能进行验证,因此首次流片除了寄存器堆外还是用ASIC的设计方法,并准备用中科院EDA中心的Synopsys工具进行布局布线以减少购买EDA工具的费用,因此在5月份之前物理设计组的人员也对Synopsys的工具进行了进一步熟悉。2003年5月份开始狗剩2号的物理设计正式展开。从5月初到6月中下旬,我们对使用的方法和流程进行了反复的试验、比较和确定,尤其是关于是否使用层次化设计方法、使用何种Wireload Model、以及Floorplan的方案等进行了反复的试验和尝试,并最后确定方法和流程。到6月底时确定了布局布线的方案并基本完成了布局布线,与流片厂家TSMC联系好准备在7月10日前tapeout。本来一切都在“掌控之中”,但随后发生的两件事情却大大出乎我们的意料。  第一件事情是在6月底完成FPGA验证平台建设后,在用该平台运行SPEC CPU2000程序进行性能分析时有一个程序的浮点结果有时正确有时错误。由于其它程序都运行正确,而且操作系统对虚地址CACHE支持部分还有bug,因此刚开始我没有认为RTL有问题。7月2日下午,张福新在机房中说了一句话:“我觉得还是RTL有问题”,这句话使我心烦意乱,放下正在看的布线工具文档,决定要把这个事情搞清楚。在随后的几十个小时中,我们使用FPGA验证、C模拟器、以及RTL仿真对这段出错的程序进行追踪。终于在7月4日早上找到了一个RTL的bug。好在问题只涉及局部的设计,我们修改完RTL后通过手工修改网表花了一天就完成了ECO的布局布线。  一波未平、一波又起。刚想歇会儿,负责全定制寄存器堆仿真的王林楠报告说寄存器堆不能正常工作。我刚开始不相信,因为为我们设计寄存器堆的C公司是业内非常有名的大公司。但不同的仿真结果都说明寄存器堆有问题。我们花了两三天才说服C公司的设计人员认识到设计错误并且改正过来。此后我们又对寄存器堆做了更多的仿真,并跟一个工具的bug斗争了几天几夜。在此期间,微电子中心的黄令仪老师给了我们极大的支持,否则我们不会这么快对寄存器堆的设计有深入的了解。  由于这两件事情的发生,到7月14日我们终于把狗剩2号的第一个设计tapeout到TSMC时,我们已经连续在机房不分昼夜地干了十几天。但由于在临tapeout前曾经发现寄存器堆设计的问题,因此tapeout之后也不敢松懈,继续对寄存器堆进行分析和仿真。由于EDA工具对较大规模的模拟电路没有有效的支持,主要依靠设计者的经验,我们也请一些电路设计高手帮我们进行分析。经过一个多礼拜心惊肉跳的检查,在排除了一系列可能存在的问题后,最后一个关于电源地规划的问题成为我们关注的焦点,也成了我在此后的几十天中的一块心病。设计者似乎在这方面有疏忽,在最离谱的地方,几十毫安的电流只用了0.28微米的地线。我们与C公司的工程师联系时,他们觉得没有问题,反而说过多的电流会通过衬底流掉。这时候我们在很多高手的指点下已经对全定制设计有所了解,觉得这个问题比较严重,因此在与C公司反复交涉得不到他们的积极配合后决定起用备份方案,再做一个流片。刚好黄老师她们做的寄存器堆也已经完成了。我们把已经tapeout的第一个芯片叫做狗剩2号的A方案,把准备做的叫做B方案。 
(文章太长, 下续)
续 (3) 

在我跟李老师和唐志敏提出再做一个流片后,他们提出这次可以在SMIC流片,因为刚好Artisan为SMIC做的库在6月份发布了。事实上,李老师在去年就提出狗剩2号在SMIC流片,我不干。这次我也是不大愿意,因为我那时对SMIC不了解。李老师说,我们自己希望别人支持民族产业,用我们的芯片;而我们自己不支持大陆厂家,怎么行。我还是不愿意。 后来有一次在所里培训时碰到李老师又说起了这件事。他说:“不管SMIC的工艺怎么样, 总得有人去试,大不了不成功,下次再来”。我说:“要的就是您这句话”。因此就定下 来8月份在SMIC流片。  我们在7月30日下午拿到SMIC的库,那时侯离tapeout只有两个星期了,而且SMIC的库还存在不少问题,我们不得不一边发现并修改库的bug一边把物理设计向前推进。这真是做得最辛苦的一次物理设计,连续的熬夜搞得我们吃饭也没胃口,每天只在晚饭时吃一顿。室 里的刘凤芹老师看我们不去食堂吃饭,每天早上都熬一些紫米粥来给我们喝,我爱人有时候晚上也给我们熬些鱼汤什么的。8月10日下午布完线后心里塌实了一些,我和钟石强、 杨旭去四环志新桥边上的一个粥铺吃晚饭,才觉得饿坏了。吃完后数数桌上竟有17个空盘子,出来时撑得腰都弯不下来,三人一路走回中关村。  布完线后我们又根据分析的结果做了些手工调整修复信号完整性问题和进一步降低延迟, 并修复了DRC和天线的问题。到8月12日中午LVS经过几次修改也基本通过,我们觉得差不多了。那天正是农历七月半,因此在加上guard ring后趁计算机做最后的LVS检查时我和钟石强、杨旭去天安门广场瞻仰毛主席去,可惜那天下午纪念堂没开,我们只好绕纪念堂一圈回来,路上猛然想起今年是毛主席诞辰110周年,于是约定把明天tapeout的这个芯片的起名叫MZD110。  回到所里时没想到刚才LVS运行的结果还是有错。于是赶快对刚加的guard ring进行检查。guard ring是围绕芯片最外边的一圈保护环,奇怪的是加上guard ring后LVS检查就显示芯片里边的逻辑有错,去掉guard ring后再检查芯片里边的逻辑又没错。那天晚上一直在找这个问题,黄老师也跑过来帮我们一起找。第二天天亮后就要tapeout了,但一直到后半夜还搞不定。眼看时间一分一秒地过去,真是又困又累又着急,几乎要放弃。快天亮时王林楠重做的guard ring做好了,又折腾了几次LVS检查终于通过,这时候清晨的阳光已斜斜地照进机房。把文件传给SMIC后我们又取回来再做一次LVS和DRC。计算机在运行时,我和杨旭斜靠在椅子上等待。杨旭说:“昨天晚上真怕睡着,我有时候靠在椅子上歇一会儿,看见你们躺下了就赶忙起来,怕咱们三人都睡着了就不知道睡到什么时候了”。这句话让我十分感动,因为昨晚最困的时候我自己也是一直用这个念头强撑着不敢闭眼。那时候我们已经连续十几天没有正常休息而且莫名其妙的问题搞得我心力交瘁,我第一次感到人的体能是有极限的,人的精神是会崩溃的,真想一觉睡过tapeout的时间算了。我仰头看着天花板,好不让杨旭看见我的眼泪,很动情地说:“杨旭,你有这样的责任心,以后在我们这里肯定前途无量”。杨旭是刚从微电子中心毕业后到我们这里来工作的,他还没有到所里报到,就先来跟我们一起苦熬。  我经常把我们课题组比做一个硬骨头连队,把自己比做连长。在狗剩1号流片成功后,我这个连长得到了很多本来应该属于全连的荣誉,包括获得“中国青年五四奖章”并受到总书记的接见,而每天跟我一起冲锋陷阵的兄弟们什么也没有。我真是愧对他们。  去年在狗剩1号tapeout之后,我曾经说,我觉得三个都能成,如果两个成功也可以接受,如果只有一个成功我会觉得比较失败,如果全部不成功那就没有天理了。但狗剩2号tapeout之后,我对A方案和B方案都没有必胜的信心。但不管最后结果怎么样,有两点是肯定的。一是全组已经尽了最大努力,Godson-2的设计比Godson-1辛苦得多,难度大得多。在狗剩1号发布会后狗剩2号的工作才全面铺开,10个月后我们就完成了这么复杂的设计,没有全组兄弟们玩命的工作是不可能做到的。二是即使流片不成功,我们已经有了很好的基础,以前的至少90%的工作没有白费,即使这次不成以后总会成功的。  9月5日下午我在丝毫没有准备的情况下收到了狗剩2号的A方案的芯片,当晚我组织了联调,虽然在加电后很快就能够启动一个简单的BIOS系统,但系统运行得很不稳定。在连续三天的调试后,我们虽然得到了一些有用的结论,如验证了跨时钟域的信号握手机制,但一直无法让系统稳定运行,因此我决定终止继续联调并给李老师和唐志敏发EMAIL报告了这一情况。  虽然由于寄存器堆的问题我已经对A方案的流片不抱太大的希望,但真正面对这个结果时还是很难受。那阵子我经常坐在机房里,痴痴地看着寄存器堆的版图发呆;或者独自呆在办公室,想想过去一年中我们在实验室里度过的日日夜夜,狗剩1号发布后我们立即马不停蹄地展开狗剩2号的设计甚至在非典期间也不敢松懈。狗剩2号的设计比狗剩1号复杂得多,连续的加班也惨烈得多。在这段日子里,我自己每周的工作时间都在80小时以上,而课题组的不少同学比我还多。多少次为了一个小问题而夜不能寐,多少次为了一个小细节而殚精竭虑;每一个进步的脚印都充满了汗水,每一点进展都是心血的凝聚。竟得到这样一个结果,心里十分难受。  我和唐志敏十几年的兄弟,基本上是心意相通的,点滴的想法我都跟他讨论,点滴的进展和挫折他也都知道,有些大的决策一起做出。因此,A方案流片的失败,我跟他还是坦坦然的。虽然李老师见到我象没事似的(也许他觉得这样会让我少些压力),但这样让我更不安,本来我希望他骂我一通或者安慰我一下,可惜没有。这段日子我觉得最对不住的还是邓书记。在我们研制狗剩2号的日子里,她给了我们很多的特殊照顾,包括我们的办公环境以及我自己和课题组里员工和学生的生活条件,我一直说书记是我们的活菩萨。因此这段日子我自己都觉得不好意思见她,有时候在路上碰到,我就远远地绕开走。  由于狗剩2号A方案的流片失败,我们更加迫切地等待B方案流片的结果。这种等待有时候让我坐卧不宁,必须时时刻刻地找事情做心里才好受一些。因此在这个阶段我们对狗剩2号B方案的结构和RTL继续进行优化(真算是化悲痛为力量)。不仅延迟又降低了0.5ns,而且通过对存储层次的改进,相同主频下性能也提高了很多。  在SMIC完成流片后,我们得到了封装厂家的大力支持,以最快的速度完成了封装。我又派专人去上海立等芯片的封装结束并把芯片直接取回来,这种在煎熬中等待的日子我是一刻也不想过了。好在天道酬勤,在拿到芯片的40分中内我们就用狗剩2号把操作系统启动了起来。此后,我们又化了大约三个礼拜针对狗剩2号虚地址CACHE和猜测执行的特点把操作系统搞稳定。  现在,基于狗剩2号的Linux-PC已经稳定运行了一个多月。目前的狗剩2号最高频率为300MHz,功耗1W-2W,成品率约为80%左右。在性能方面,在联调的第一天我们只把狗剩2号的主频调到133MHz时已经明显感觉到比266MHz的狗剩1号还要快很多。狗剩1号不能胜任的许多应用,包括流媒体的软解压、GNU 2.4的支持、Mozilla浏览器、Open Office办公软件等重量级的应用,在狗剩2号中都能比较流畅地运行。尤其是流媒体的软解压,我曾经化了三天三夜进行软件优化来提高狗剩1号软解压的效果,但最后还是差一点;把狗剩1号勉强能软解压播放的一个mpeg文件在200MHz的狗剩2号上播放,只要23%的CPU。而对于标准的MP3播放,狗剩2号只要不到1%的CPU就应付裕如了。通过使用SPEC CPU2000对狗剩2号的性能分析表明,相同主频下狗剩2号的性能已经明显超过PII的性能,是狗剩1号的3-5倍。  我曾经终日坐在用狗剩2号做的计算机前,玩着各种游戏,使用各种重量级的软件来感受狗剩2号的性能。虽然对于有些大型的应用软件还感到有些迟钝,但我们的狗剩2号已经明显表现出她作为PC机中使用的CPU的资格和风范。每当我在狗剩2号上玩着LINUX PC中的各种游戏,想想一年前玩狗剩1号时觉得性能不理想时的郁闷心情,真是我这一年来最爽的体验。  狗剩2号的性能提高主要来自先进的结构设计,包括四发射和乱序执行结构的设计。而乱序执行的关键技术是狗剩2号结构设计的重点和难点,四发射的RISC结构如果没有乱序执行技术的支持是发挥不出效率的。例如典型的定点程序中平均每六、七条指令就有一条转移指令,意味着在四发射结构中每两拍就有一条转移指令。如果等转移指令的目标地址确定再进行后面的取指,意味着每取两拍指令就得等五、六拍甚至更多才能继续后面的取指。又如,做一个简单的加法需要两个操作数,而如果这两个操作数都需要从内存中(即主板上的内存条)取回来,那么在做这个加法之前,需要至少上百拍的时间为这个加法准备数据。指令乱序执行的核心思想就是减少各种相关引起的等待,充分发挥处理器的效率。  主要做法包括:(1)转移猜测,即在转移指令目标尚未确定的时候,根据过去转移指令执行的历史猜测该转移指令的转移方向和转移目标,并根据猜测的结果进行后续指令的取指,为处理器提供连续稳定的指令流。如果最后发现猜测错误,则取消猜错的转移指令后面的指令。(2)动态调度,即在前面的指令由于操作数未准备好而等待时,后面的操作数已经准备好的指令可以越过前面的指令先执行。(3)寄存器重命名,即指令运算后先写到一个临时的寄存器,等确定该指令不会被取消后再写到真正的目标寄存器中去。这样做的好处除了便于前面指令发生例外或转移猜错时取消外,还避免了由于两条指令写同一个寄存器时的等待。  此外,访存指令的乱序执行又有新的特征。除了通过增大CACHE和对CACHE进行有效的组织尽量提高CACHE命中率并降低CACHE访问的延迟外,还需要对访存指令进行乱序执行以提高效率。访存指令乱序执行的关键技术包括:(1)Non-blocking技术,即在前面的访存指令由于CACHE不命中进行长延迟的存储访问时,后面的指令可以继续访问CACHE。(2)Memory Disambiguation技术,即在存数和取数指令都乱序执行的情况下,保证取数指令都能取回它前面的最近一条对同一地址的存数指令所存的值。比如如果一条取数指令在一条存数指令之后且两条指令的地址相等,但取数指令先访问CACHE,也要保证取数指令取回该存数指令的值;又如如果一条取数指令在一条存数指令之前且两条指令的地址相等,但存数指令先访问CACHE,也要保证取数指令取回原来CACHE中的值,而不是存数指令新存的值。(3)Load Speculation技术,即在取数指令访问CACHE后,它前面的存数指令地址还没有确定(即取数指令从CACHE中取回的值有可能是错误的),先把取数指令从CACHE中取回的值送给后续的指令用,如果后来发现它前面的存数指令和该取数指令访问的是同一个单元,再取消该取数指令后面的指令。(4)Write Buffer技术,由于存数指令也是乱序执行的,存数指令所存的值不能立即写到CACHE或内存,而是要根据存数指令在程序中的次序写到CACHE或内存。  在乱序执行的结构中,虽然指令执行是乱序的,但开始和结束是有序的。指令在译码和寄存器重命名后就放在一个有序的队列中,由该队列来记录每一条指令的执行阶段并有序地结束指令。即指令在流水线中是有序进入、乱序执行、有序结束。  狗剩2号的主要结构特点包括,64位设计,7-10级流水线,包括取指、译码、重命名、发射、读寄存器、执行写回、提交等,其中乘除、浮点操作、以及访存操作在执行写回阶段需要多拍。四发射结构,最多可以有64条指令乱序执行。共有5个功能部件,包括定点ALU1(完成定点加减、逻辑、移位、转移),定点ALU2(完成定点加减、逻辑、移位、乘除),浮点ALU1(完成定点加减、转换、转移),浮点ALU2(完成乘除、开方),以及访存部件(完成访存、系统管理、数据传送)。通过对浮点指令fmt域的简单扩充,浮点部件可以执行完整的定点指令以及4路SIMD的媒体指令。在乱序执行方面,转移猜测使用混合预测+Gshare + BTB + RAS的转移猜测方式;通过物理寄存器到逻辑寄存器映射进行寄存器重命名,定点浮点寄存器堆各为64项;动态调度方面定点和浮点保留站各16项,Reorder Buffer为64项。  在存储管理方面,TLB为64项全相联,每项两页,页大小在4KB-4MB之间可变。此外,有一个独立的8项的指令TLB是数据TLB的子集。与狗剩1号一样,在TLB中增加可执行位,防止缓冲区溢出攻击。数据CACHE和指令CACHE各为32KB,二路组相联。最多允许32个访存操作的Non-blocking访问,访存相关在访存队列中通过全相联的查找解决,避免了象Alpha21264或MIPS R10000中碰到访存相关时需要重新发射。实现load-speculation,允许前面的store操作未确定的情况下执行load操作并返回结果。Cache失效时实现关键字优先访问,以减少访存等待,Uncached操作实现uncached accelerate算法加速I/O访问。  目前的狗剩2号只是我们所承担的项目的阶段性成果。它的作用主要体现在四个方面。一是对目前的处理器核设计进行验证;二是用于进行性能分析以及对性能分析方法的改进;三是验证新的物理设计方法和生产厂家;四是提前提供软件开发平台,为LINUX PC的正式推出做好准备。现在看来,这几个目的都达到了。  我们的下一步目标是在目前狗剩2号的基础上把性能再提高到现在的3-5倍,并利用明年完成的狗剩2号做一台每秒运算一千亿次的计算机。我还是博士生时唐志敏曾经带我到中科院网络中心去算题,有一次他隔着玻璃指着一台计算机对我说,这台就是从日本引进的计算机,现在系统管理的权限还在日本人手里,增加一个用户都要它们批准,什么时候我们自己做一台比它还快的计算机,就放在这台计算机边上,告诉它们这台机器就是用来做核模拟的。所以做一台自己的高性能机是我学生时期的梦想,虽然现在国内最快的高性能机已经达到每秒几万亿次,但我一定要圆这个梦。  计算所的一位研究员曾经说过,创新工作一个重要特征就是这个工作让人感到“狠”。我觉得,狗剩1号“狠”的地方就是进度快,从零开始,用了不到一年半的时间完成一个通用处理器的设计;而目前的狗剩2号“狠”的地方就是在结构上对性能的大幅提高。我相信,更“狠”的还在后头。文/胡伟武
我期待国产CPU的民用路程.如果龙心3.4号能达到P42.4G以上水平.毫不犹豫了.买国产的!!!
龙芯 小名 狗剩 [em02]
期待大量生产,也希望有一天能用到
[此贴子已经被作者于2005-4-23 14:03:39编辑过]
任何事总有个开始.
好的开始总是令人高兴,不是吗?
国货当自强!
[B]以下是引用[I]忘了密码[/I]在2005-4-22 15:06:00的发言:[/B][BR]是不是CPU制造技术比设计技术还要难?

IC的前端设计,有一台PC机就可以了,关键是要有相应的人才。正是因为需要投入的成本低,所以IC设计的公司很多,比如上海的展讯(设计TD_SCDMA芯片),还有汉芯(设计出中国人第一片DSP芯片)。
IC制造就不一样,一条生产线动辄十几亿美元。而且我们国家基本上不会造IC生产设备(比如最关键的光刻机),只能靠买!去年听说国家投入了5个亿,和欧洲合作研制光刻机,据说样机已经出来了,不知道性能如何。其实文革前我们还是有能力生产微电子制造设备的,虽然比国际水平落后一点,但还是能够跟上。文革十年,我们停滞不前,国外却飞速前进,文革结束后我们已经落后了二十年,要想再赶上已经很难了(想想运十)。加上改革开放后很多国营半导体工厂纷纷倒闭,所以现在中国已经基本上没有能力生产IC制造设备。
[em01]
既然是中国人自己的CPU,那把中文版的DataSheet拿出来先。
我只看到了英文版的狗剩DataSheet,不好意思,本人英文不好,要我放弃已经用得很熟悉的东西去使用一个新的东西,那么至少你设计人员有责任和义务降低我平台转换的成本,因为你本来就是中国人设计,不认为非要用英文才能拿出一个好的DataSheet,中文的写出来就不行了。
我只看到了英文版的狗剩DataSheet,不好意思,本人英文不好...
=========================================================
中国科技的现状还是追赶西方, 就有必要熟识追赶对象的通用语言. 难道要人家迁就你 ? 英文不好搞科研除非是想闭门做车.
就是说它只是想外国人用,就不要中国人也能方便的用?这不是它的理由,符合国际惯例也不是这么符合的,我没有说要它只给出中文版本,我只是希望也有中文版本。一边举着民族的大旗,一边毫不重视,难道这就是他们的做法?还有,本人不是什么搞科研的,我只是应用层的设计人员,也许他们搞科研英文很好很好能倒背如流,但我只能在专业工具书的帮助下做事情,难道说它就放弃这一块了?不是举着民族大旗么?怎么同一个民族的设计人员想要用他们的东西还要借助外国语言来熟悉?在它可靠性和性能没有得到大规模使用确认之前,却连服务这一块软的东西就已经丢得干干静静,想发展?省省吧。技术的先进性从来都不是主导一个产品的决定性因素,卖得最好的,也并非技术最先进的。在支持,在服务方面起的作用更大。怎么就是听不得老实话。
把业内人仕意见发到龙芯论坛吧. 但是好象最近不能上了, 是访问量太高 ?