发布于:2005-04-25 14:19:25
来自:站务休闲/闲聊茶吧
[复制转发]
我们的龙芯2号
胡伟武 (注:作者为首席设计师)
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布局布线、编译器、组合优化、国际象棋、文字处理、计算机视觉、编程语言、解释
器、数据库、布局布线模拟器、量子动力学、浅水模型、三维势场求解、偏微分方程、三
维图形库、计算流体动力学、图象识别/神
全部回复(6 )
只看楼主 我来说两句-
hjz
沙发
期待中国芯早日通用化,让微软支持,这样才能更快走向世界
2005-04-25 15:52:25
赞同0
-
pwjno1
板凳
由于狗剩2号A方案的流片失败,我们更加迫切地等待B方案流片的结果。这种等待有时候
2005-04-25 14:14:25
赞同0
加载更多回复 举报
让我坐卧不宁,必须时时刻刻地找事情做心里才好受一些。因此在这个阶段我们对狗剩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号时觉得性能不理想时的郁闷心情,真是我这一年来最爽的
体验。
---kerryeva
回复[ 10 ]: 狗剩2号的性能提高主要来自先进的结构设计,包括四发射和乱序执行结构的设计。而乱
序执行的关键技术是狗剩2号结构设计的重点和难点,四发射的RISC结构如果没有乱序执
行技术的支持是发挥不出效率的。例如典型的定点程序中平均每六、七条指令就有一条转
移指令,意味着在四发射结构中每两拍就有一条转移指令。如果等转移指令的目标地址确
定再进行后面的取指,意味着每取两拍指令就得等五、六拍甚至更多才能继续后面的取指
。又如,做一个简单的加法需要两个操作数,而如果这两个操作数都需要从内存中(即主
板上的内存条)取回来,那么在做这个加法之前,需要至少上百拍的时间为这个加法准备
数据。指令乱序执行的核心思想就是减少各种相关引起的等待,充分发挥处理器的效率。
主要做法包括:(1)转移猜测,即在转移指令目标尚未确定的时候,根据过去转移指令
执行的历史猜测该转移指令的转移方向和转移目标,并根据猜测的结果进行后续指令的取
指,为处理器提供连续稳定的指令流。如果最后发现猜测错误,则取消猜错的转移指令后
面的指令。(2)动态调度,即在前面的指令由于操作数未准备好而等待时,后面的操作
数已经准备好的指令可以越过前面的指令先执行。(3)寄存器重命名,即指令运算后先
写到一个临时的寄存器,等确定该指令不会被取消后再写到真正的目标寄存器中去。这样
做的好处除了便于前面指令发生例外或转移猜错时取消外,还避免了由于两条指令写同一
个寄存器时的等待。
此外,访存指令的乱序执行又有新的特征。除了通过增大CACHE和对CACHE进行有效的组织
尽量提高CACHE命中率并降低CACHE访问的延迟外,还需要对访存指令进行乱序执行以提高
效率。访存指令乱序执行的关键技术包括:(1)Non-blocking技术,即在前面的访存指
令由于CACHE不命中进行长延迟的存储访问时,后面的指令可以继续访问CACHE。(2)
Memory Disambiguation技术,即在存数和取数指令都乱序执行的情况下,保证取数指令
都能取回它前面的最近一条对同一地址的存数指令所存的值。比如如果一条取数指令在一
条存数指令之后且两条指令的地址相等,但取数指令先访问CACHE,也要保证取数指令取
回该存数指令的值;又如如果一条取数指令在一条存数指令之前且两条指令的地址相等,
但存数指令先访问CACHE,也要保证取数指令
回复 举报