华体会

EN

动静中心

LOONGSON NEWS

栏目导航

华体会 19周岁,重温初“芯”--咱们的CPU(2001)

宣布时辰:2021-08-24    已浏览:

注:本文是由华体会 中科董事长胡伟武写于2001年8月,中国自立研发的华体会 1号FPGA胜利地运转了LINUX操纵体系。“华体会 ”的降生有其期间特别性和庞杂的背景,其背负的汗青使命也是史无前例的。本文首要报告的便是这段使人纪念的斗争汗青。

我到场计较所的CPU开辟名目,源于2000年10月一个偶尔的机遇。

2000年10月中旬,所带领派我到我的母校中国科技大学去停止招生宣扬。这是我1991年毕业后第一次回到母校。我回到了我本来使命过的尝试室,十年前在那边,我曾和别的一名同窗一路做过一个与8086指令级兼容的处置器作为本科毕业设想。这是一个用400多个74LS系列的芯片搭起来的电路,可以或许或许或许或许或许运转8086指令体系中除十进制和除法指令之外的统统指令。因为不制版的用度,统统的连线都是手工焊的。此次归去,我看到了我本来做的机械还悄悄地躺在那边。面临与十年前一样混乱的尝试室和满桌触手可及的芯片、电容、电阻、电烙铁,我有一种重操旧业的打动,因为十年前那些没日没夜的与逻辑门、触发器、译码器、挑选器玩命的日子有一种深深的引诱,至今我还可以或许或许或许或许一五一十般地说出良多几多那时我用过的集成电路芯片的引脚界说。我想到了咱们所正在筹办的CPU设想名目,因而我给我的师兄唐志敏打德律风,他是计较所体系布局室的室主任,今朝正担任计较所CPU设想名方针筹办使命。我开打趣说一两年以内不把通用操纵体系boot(启动)起来,提头来见。因而回计较所后,我就起头斟酌CPU的指令体系和流水线等题目。

2001年8月19日,咱们设想的GodsonCPU胜利地把LINUX操纵体系boot起来。当“login:”的提醒符呈此刻屏幕上时,计较所北楼309房间一片喝彩。到9月中旬,一个用咱们自身设想的CPU的完整计较机体系已浮出水面,该体系运转完整的LINUX操纵体系,内核版本为2.4,可以或许或许或许或许做其余运转LINUX操纵体系的计较机所撑持的统统使命,包含运转gcc编译器,X-Window视窗体系,WEB办事器,SPEC CPU2000基准法式等。

(2001年10月,天下人大常委副委员长路甬祥观察计较所)

咱们最引感受豪的仍是该CPU的体系布局设想。Godson的布局设想出发点较高,接纳了静态流水线、乱序履行等手艺。固然今朝咱们只是基于FPGA的设想,主频也不高,但当咱们的CPU运转到12.5MHz时,其机能已不比50MHz主频的Intel486差(固然,咱们的主板比486主板要好),切当地说,浮点机能比486强一点,定点机能比486差。值得一提的是,当咱们用一个叫“偏执狂(Paranoia)”的测试法式测试CPU的浮点部件是否是合适IEEE754标准时,奔IV处置器测出了浮点不严酷合适IEEE754标准而咱们的CPU完整合适标准。别的,在Godson中还特地针对收集进犯停止了宁静设想,可以或许或许或许或许有用避免操纵缓冲区的收集进犯。应当指出的是,咱们只是完成了一个CPU的逻辑设想,那时是用FPGA对这个逻辑设想停止考证,只是一个阶段性功效,还不停止投片。用李国杰长处的话说,“三分之二的使命还在前面”。若是咱们对那时的使命洋洋满意,那是很浮浅的。但即便是这个功效的获得,也来之不易。此中味道,悲欢离合俱全,很难为外人所体味。回首咱们开辟Godson处置器的进程,固然不长,但既有履历,也有履历,总结一下,对今后的使命是有益处的。

咱们做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设想。因为时辰紧,在肯定流水线布局时,不看几多论文也不做几多尝试,首要是凭感受和曩昔的堆集,碰着衡量得失肯定不了的使命,就与唐志敏会商。不过,此刻回过头去看,因为那时不参考别人的打算,也就少一些监禁。此刻有了一点时辰起头看别人的做法,发明咱们设想的基于操纵行列复用的静态指令流水线仍是很进步前辈的。

咱们的使命真正周全放开是在2001年五一放假后。一方面,体系布局已根基定型,用C说话写的摹拟器已完成得差未几了,可以或许或许或许或许运转简略的指令和短法式了。别的一方面,6月份俄然接到所里的告知说本年10月份计较所45周年庆要展现我地点CPU设想方面的功效。6月起,咱们便起头了彻夜达旦的三个月。在此时代,步队敏捷扩展到三五十人。固然只是一个逻辑设想,但可以或许或许或许或许或许在三个月内从无到有地设想出完整的通用CPU,我自身也感受受惊。此刻回忆起来,胜利的缘由有三条:一是手艺线路准确,二是有一支高本质舍得玩命的步队,三是计较所杰出的情况和薄弱的手艺储蓄。履历有两条:一是工程履历缺乏,早期办理不善;二是对工具正视不够。我感受,咱们的手艺线路在三个方面是很胜利的。一是长处对高机能通用CPU的定位。不少人以为,处置器最大的市场在嵌入式方面,中国的处置器设想应当定位在嵌入式上,没须要或没能力做通用处置器设想。固然,嵌入式处置器的须要量很大,但大市场不必然能赢利,小市场偶然反而能赚大钱,因为后者是焦点手艺,别人做不了。Intel便是一个典范的例子,Intel PC和办事器的处置器数目也只占环球市场的1.5%。其次,中国不是小国,焦点手艺自身不掌握不行。我却是感受像嵌入式处置器如许的工具可做可不做,因为别人的嵌入式处置器价钱很低,且不会卡咱们的“脖子”。有的外洋公司乃至主动提出,只需咱们用他们的出产线,他们可以或许或许或许或许收费供给嵌入式的IP核。至于有人感受咱们做不了高机能通用处置器,我的回覆是,等咱们用自身的处置器做出一台曙光机来再说。固然咱们在做高机能通用处置器上还很掉队,但我感受咱们此刻比昔时计较所做757和8920时的前提好良多,工具要好良多,使命量要小良多。任何使命,关头是要有人静下心来当真地去做。咱们在手艺线路上的第二个胜利的处所是兼容。回首中国计较机成长的汗青,应当说,咱们的“祖上”也是挺“阔”的,直到80年月初,咱们的处置器设想手艺不比人家差几多。落到明天这个境界,很大程度上是吃了不兼容的亏。计较机中绝大局部用度不是花在硬件上,而是花在软件上。自身设想指令体系,只能图临时利落索性,与其余支流指令体系兼容,确切很费事,偶然为了一条指令就得点窜数据通路,增添不少工具,但却可以或许或许或许或许与日俱增。在咱们组里,有一个很精壮的操纵体系组,才四小我,3个月内搞定了统统与软件有关的工具,包含BIOS、LINUX2.4内核、gcc编译器、X-Window、调试工具、Web Server等等,便是得益于咱们的兼容设想。固然,这四小我都是相对的LINUX妙手。咱们乃至做到了与别人的处置器引脚级兼容,只需把别人的拔上去,自身的插上去就行。咱们在手艺线路上第三个胜利的处所是步步为营的设想体例,即从体系布局设想、到C摹拟器设想、到Verilog仿真、到FPGA考证、到标准单位投片、再到全定制投片的体例。在体系布局打算肯定后,咱们就设想了一个Cycle-by-Cycle的C说话摹拟器。该摹拟器详细描写了Godson处置器的体系布局,可以或许或许或许或许或许摹拟处置器每拍中每名旌旗灯号的变更。设想摹拟器有三个较着的益处,一是考证设想的准确性,咱们前后在C摹拟器上运转了LINUX2.2、LINUX2.4、gcc等一系列体系软件,发明了设想进程中的大批毛病。二是用C说话描写体系布局加倍严酷,不二义性,比用笔墨写的文档加倍明白。咱们在C说话摹拟器考证准确后,把C说话摹拟器的每一个模块对应地转换成Verilog说话的模块花了不到一个月的时辰。并且因为设想上的毛病都在调试摹拟器的进程中剔除,在Verilog描写阶段不再呈现设想上的毛病。第三个益处是C说话摹拟器为软件开辟供给了一个平台,为咱们开辟诸如BIOS等软件供给了很大的便利。在把C说话的摹拟器转换成Verilog设想后,咱们又在Verilog的运转平台上胜利地运转了LINUX操纵体系。而后再综合并构成FPGA的烧制文件。颠末上述频频的考证,联调时根基一次胜利。若是咱们不是步步为营,而是接纳逾越式的设想体例,间接停止逻辑设想,生怕会欲速则不达。因为越下层的设想,调试越轻易。而越底层的设想,调试越坚苦,且刚起头时咱们乃至连Verilog说话都不会操纵。在联调期间,咱们尝试室的墙上,有两句标语,一句是“人生能有几回搏”,别的一句是“务实、务实、务实、立异”。

(“人生能有几回搏”的标语)

第一句标语是我所研制曙光系列高机能计较机时用的标语,我把它借了来。的确,在咱们尽力攻坚的三个月中,咱们课题组的成员支出了难以设想的艰辛,特别是在几回调试的阶段。组内良多几多人都有调试法式的履历,但很少有人调试过操纵体系,而在一个自身便可以或许或许犯错的处置器上调试过操纵体系的人就更少。咱们的挑衅就在这里。当呈现一个毛病时,操纵法式、操纵体系和处置器自身都是思疑的工具,须要多方面的调和及阐发。咱们曾在C摹拟器、Verilog摹拟情况、和FPGA考证体系上别离都运转了LINUX操纵体系,每次都是持续几天几夜的鏖战。最初一次特别惨烈,因为即便发明一个很小的毛病,点窜一次设想再构成新的FPGA烧制文件,须要最少8个小时。只需持续24小时使命,能力保障一天有几回点窜设想的机遇。我算是在课题组中睡觉不少的,但也有一个礼拜不正派睡觉的履历。在8月中旬的阿谁礼拜,礼拜一放工前得悉第二天有带领要来所里查抄使命,因而决议冒险把本来定的联调时辰提早一周,但愿一次胜利。但怕不胜利影响士气,只找了几个主干在礼拜一早晨起头联调。咱们只需两次机遇,因为点窜一次设想就须要8小时。礼拜二清晨4点,咱们把烧制文件写入FPGA,但是不任何动静。

很快咱们就用逻辑阐发仪发明了题目。本来是因为启动时与主板握手机制有缺点,致使主板一向不撤掉复位旌旗灯号。咱们从速点窜并在午时12点构成了新的FPGA烧制文件,谁知写入后仍是不任何动静。下战书带领来查抄,开了一下战书会,早晨接着调试,发明CPU插卡上有两个焊点短路,去掉后主板上的液晶显现器上践约显现出“GODSON”的字样,大师一片喝彩。咱们决议持续作战,到礼拜三早晨11点摆布,胜利地启动颠末革新的主板上的BIOS体系,这相称于一个简略的操纵体系,大师又是一片喝彩(这时辰课题组的其余成员才晓得咱们是在自身的CPU上运转法式)。12点时请求统统人归去睡觉,我也随后回家。

(办公室当寝室,在艰辛的前提中研制华体会 )

早晨雷声高文,风雨交集,仿佛上天在向咱们表现道贺。我高兴得难以入眠,此时始觉三个月来一向牢牢榨取我的压力稍有和缓。礼拜四下班后起头试图启动LINUX操纵体系,但每次都在最初进入用户态启动各类操纵法式时犯错。思疑是TLB的题目,因为拜候用户空间才起头操纵TLB。一向跟TLB斗争了三天两夜,中心发明了不少题目。每次布满希冀地悔改来却老是获得绝望,直到礼拜六吃晚餐前豁然开朗地发明题目,仓促吃了几口饭后从速点窜,8月19日清晨2点多构成FPGA文件并写入FPGA。2点42分,屏幕上终究呈现了“login”字样,登录出来随意玩,和操纵其余机械上的LINUX一样。我那时用vi编辑了一个文件记实这一汗青时辰,存盘加入后把它ftp到别的一台机械上发给唐志敏和所带领,并高兴得顿时给唐志敏打德律风告知他这个好动静。那时固然咱们都已极端怠倦,但在场的6小我都高兴得毫无睡意,谈天到天亮。记得那晚也是风雨交集。早上6点大师回家睡觉,不知别人怎样样,我持续睡了20多个小时,才补上了这一礼拜的觉。在此今后,咱们又跟前述“偏执狂”的浮点测试法式斗争了两个礼拜,不过已不那末辛劳了。

我偶然候感受自身比周扒皮还狠,但咱们课题组的成员也确切很玩命。有好几回,我在早上六、七点钟翻开尝试室的门,发明有些人手里扶着鼠标就靠在椅子上睡着了。我是轻易受打动的人,看到如许的场景不由得想落泪。但我仍是狠下心唤醒他们,扣问今天早晨的停顿并让他们接着干。我有一个先生,近两个月来很少在清晨4点前睡觉,而常常到八九点钟我一下班就会把他叫起来,因为我急于领会昨晚的停顿。记得有一次咱们在深夜等计较机的运转功效,大师谈天,谈到了存亡。他说最不但愿老死,看着自身的性命一点点耗尽。咱们都有一种概念,咱们此刻掉队这么多,别人不比咱们笨,若是大师都一样一周五天一天8小时下班,生怕很难遇上人家,惟有像昔时搞“两弹一星”一样冒死,最少得累死一批人。惟有如许,咱们能力不受欺侮,咱们的子孙才有但愿从头做到“犯我大汉者,虽远必诛之”。我常常说,一盆花用水灌溉固然可以或许或许或许或许或许怒放,但用血汗灌溉会更艳丽。咱们的CPU奇迹便是一朵花,咱们在用血汗灌溉她。咱们还给这个处置器取了一个很有传统特色的小名叫“狗剩”,但愿名字贱一点轻易养大,音译成英文便是Godson。

(务实、务实、务实、立异”的标语)

至于咱们墙上的别的一句标语“务实、务实、务实、立异”是对计较所所训“务实、立异”的一个表明和阐扬。因为我感应此刻中国科技界太急躁,炒作的人多,干事的人少。是以但愿咱们组的人把使命做结壮,少吹法螺多干事。此中第一个务实是对做学识的方针,要为了做学识而做学识,而不是为了名和利。要真正做到‘人不知而不愠’。这一点说起来轻易,做起来很难。像咱们在计较所使命的人,大要在利上不是很是计较,只需日子过得下去就好了,但在名上就很丢脸得开。“不计名”这一点,我自身固然做不到,但心神驰之。第二个务实是对做学识的立场,便是要把使命做到实处,便是要艰辛斗争,便是不要为了颁发论文而写文章。在科研上哪怕是一点点的立异,都须要大批结壮的使命,这是客观纪律,谁也躲不过。咱们在科研中常常碰着有些人不愿做详细烦琐的使命,一心想颁发论文。这类景象很遍及,我自身之前也如许,但今后要力戒之。第三个务实是对做学识的体例,要敢于理论,不要空言无补。便是要‘学而时习之’,便是熟悉和理论的不时轮回来去。学识并不只仅是赅博的常识,更多的是休会和感受。不对所做使命的深切休会,就难以发明题目,就难以立异。而这些休会,从别人的文章里是看不来的,不颠末身材力行的大批理论,是体味不到的。此刻良多人以为我国不自身的处置器,首要是因为工艺程度上不去,是以,处置器设想不应是计较所的使命,而是做微电子设想的人的使命。固然,回首咱们国度的处置器设想汗青,在80年月后周全掉队的一个首要缘由是自身的制作工艺掉队,致使处置器设想步队全体上垮掉,职员散失。但此刻情况产生了变更,投片已不大题目,首要是不设想。而处置器设想决不只仅是逻辑设想。处置器设想是大体系,惟有对包含操纵体系、编译、体系布局、I/O等在内的全部计较机有全局的掌握能力设想出高机能处置器。在通用计较机中,操纵体系和体系布局设想的共同特别首要,有些指令特地是为操纵体系设想的,特别是在体系宁静、存储办理、原子操纵、破例处置等方面。偶然候经由进程对操纵体系的阐发,领会到一些指令的妙用,体味到设想者设置这些指令的初志,真是让人击节称赏。以是,我一向很光荣咱们接纳了兼容的做法,若是自身设想指令体系,不十几年的理论,是不会完美的。

放眼中国在体系布局、操纵体系、编译方面的综合气力,比计较所强的未几(我比拟服气的其余单位只需一家),是以计较所做CPU设想是很有上风的。固然前几年的折腾使计较所元气大伤,但根柢还在。在起头做CPU设想之初,我对这件使命的庞杂性估量缺乏(这是一个深切履历),只是领着八、九个研讨生做。厥后在名目逐步睁开后,发明现有的人力顶多能做完逻辑设想,要把通用操纵体系启动起来是远远不够的。没法之下,只好从本来做机群的组和做嵌入式操纵体系的组中调了几个操纵体系妙手过去,使命顿时有了转机。比方,咱们要在C摹拟器上运转操纵体系,须要对操纵体系内核停止裁剪和点窜(如去掉一些与主板设置装备摆设慎密相干的初始化配量),这类点窜不对操纵体系的深切掌握是没法做到的。厥后,又从其余处所获得一些职员补充(我此刻体味到片子里作战的批示员为甚么很是正视豫备队)。此刻,咱们组已有了三五十人的范围,兵不在多而在于精,这些人满是年青的干将,本质很高,又很玩命。就我今朝所做的使命来讲,计较所几近是“要甚么人材有甚么人材”。计较所的科研情况很好,特别是体此刻后勤办事上。举几个小例子:第一个是使命睁开后彻夜加班多了起来,咱们自身随机应变地在一些桌子上铺上铺盖,搭了几张粗陋的床。当邓燕布告晓得这类情况后,顿时找人腾出一间小房子,放了六张床,大大改良了咱们加班时的歇息情况。邓布告还让人天天为加班的人筹办饼干、便利面等便利食物。第二个例子是,跟着使命的不时深切,组里须要不时添置新的微机,但机械都是随用随买(因为那时不履历,不晓得要买几多机械)。对此,营业处的同道们老是尽力共同,保障组里实时用上新机械。最快的一次,我在上午11∶30向营业处王玉杰教员提出购机请求,下战书1∶30机械已送到尝试室。这在一个财政轨制健全、审批严酷的奇迹单位是很难设想的,更况且是午休时辰。第三个例子是有一次咱们急需一块MatroxG200显卡,但因为用的是几年前的产物,跑遍了中关村也不买到。万般没法,只得经由进程EMAIL向所内的局部教员告急乞助,热情的营业处于天波教员顿时在收集上宣布这个动静,不到一个小时,在王贞松教员的赞助下,就找到了这块显卡。这最少减掉了咱们两个礼拜的使命量,因为若是用其余显卡,咱们得自身再写驱动法式。有用的后勤保障使我偶然候感受不把使命做好,对不起这些热情赞助咱们的人。

咱们在前一段时辰的履历有两个:一是工程履历缺乏,首要体此刻以做研讨的体例来做工程,和对使命的难度估量缺乏,科研气力装备不够,致使早期效力不高。好在厥后工程履历丰硕的张志敏教员加盟,大大改变了咱们用做研讨的体例来做工程名方针场合排场,提出了“后墙不倒”的方针。别的,也好在计较所手艺储蓄薄弱,使咱们得以在前期进步效力。不过,咱们今朝在文档办理等方面仍是很有题方针。第二个履历是对工具正视不够。此刻做处置器设想,EDA工具是很是首要的。因为咱们不够正视EDA工具,吃了不少亏。有一次布线布不通,实在只需点窜一下设置就行,惋惜那时咱们都不会。

上面我先容一下Godson的手艺特色。领会了这些手艺特色,便可以或许或许或许或许领会为甚么Godson使命在12.5MHz时就有50MHz的486的机能。Godson的流水线布局是我自身感受比拟满意的处所。设想的时辰不参考其余处置器的流水线,完满是凭感受。Godson流水线包含了几多今朝处置器设想中最进步前辈的手艺,如流水线静态调剂、Tomasulo算法、寄放器重定名、预测履行、切确破例处置、64位的浮点运算部件、CACHE手艺等,并且在某些方面有所立异。流水线设想中比拟坚苦的两个题目是破例的处置和相干的处置。起首咱们把破例处置与流水线慎密地耦合在一路,在数据通路的设想中破例功效和一般功效并行,在履行进程中破例功效和一般功效不加区分,只需在指令竣事阶段才对破例功效停止特别处置。咱们的流水线是静态流水线,接纳de-coupled布局,节制逻辑散布在每一个模块当中。在流水线的节制中,“让流水线流起来”是咱们设想的理念。在指令流水线中,数据相干和节制相干城市引发流水线期待。如前面指令用到前面指令的功效或前面指令是否是履行由前面转移指令胜利与否决议。对因数据相干引发的期待,咱们的准绳是尽能够推延到不得不等的时辰才等。即对源数据未筹办好的指令,在指令译码和发射时并不停上去期待数据(简略的静态流水线凡是在译码时停上去期待未筹办好的数据,堵住了前面指令的持续履行),而是成立数据依靠干系,由功效部件经由进程侦听功效总线处置数据相干的题目。如许数据功效一出来,期待它的指令顿时可以或许或许或许或许停止运算,不必颠末写回到寄放器再读出来的进程,并且前面指令的期待不会梗塞前面指令的持续履行。对节制相干,咱们也是让转移分支的指令先预测地履行起来,到不得不停上去时才期待转移方针的肯定。若是转移预测胜利就当即持续进步,若是转移预测不胜利,就操纵破例处置的指令撤消机制规复准确现场。流水线设想中,“简练、流利”是咱们寻求的方针。前者保障流水级间的节制简略、提早少,后者保障流水线的高机能。在咱们联调胜利后到此刻,已对流水线停止了4次较大调剂,每次都加倍简练、流利。我想在正式投片前还会有几回调剂。别的,Godson的浮点运算部件流水线设想也有自身的特色。

Godson体系布局的别的一个特色是布局矫捷,模块化好,可以或许或许或许或许按照差别的须要对功效部件停止肆意裁剪以知足差别的操纵。因为Godson的流水线接纳de-coupled布局,节制逻辑散布在每一个模块当中。增添或削减功效模块对其余局部没甚么影响。如对某些嵌入式操纵,不需浮点部件,只需去掉浮点ALU、浮点乘法、和浮点寄放器模块,不必对其余模块做任何点窜。

体系宁静设想也是Godson的一个首要特色。Godson体系除完成MIPS体系请求的宁静机制外,还针对收集进犯完成了一种新的拜候限定机制。缓冲区溢出是一种很是遍及、很是风险的缝隙,是今朝大大都收集进犯所接纳的方法,在各类操纵体系、操纵软件中普遍存在。操纵缓冲区溢出进犯,可以或许或许或许或许致使法式运转失利、体系死机、从头启动等效果。更加严峻的是,可以或许或许或许或许操纵它履行非受权指令,乃至可以或许或许或许或许获得体系特权,进而停止各类不法操纵。Godson经由进程许可操纵体系对仓库段的取指停止限定,有用地提防了操纵缓冲区溢出停止的进犯。

固然,Godson在今朝设想上也还存在一些缺点,首要是对CACHE正视不够。今朝的设想只需4KB的指令CACHE和4KB的数据CACHE,都是间接相联(这与FPGA容量有关,今朝的设想已操纵了150万门FPGA85%—90%的面积)。在机能测试时发明对访存请求较高的法式Godson的机能不够抱负。如当Godson运转在12.5MHz时,对访存不敏感的法式,100MHz主频的IDT64474CPU(R4000内核)的机能是Godson的3—5倍,但对访存敏感的法式,IDT64474的机能是Godson的6—8倍。IDT64474有16KB的指令CACHE和16KB的数据CACHE,都是二路组相联,不管是CACHE容量和构造体例都比Godson强。在投片前必然要对CACHE局部停止改良。

对Godson的将来成长,咱们有一个大志勃勃的打算。第一步是在今朝设想的根本上颠末优化后停止标准单位的投片,主频在200MHz—300MHz摆布,争夺2002年完成,用于小我使命站/瘦客户端PC及电子政务等。第二步是设想双发射64位的布局(今朝为单发射、定点32位、浮点64位),投片主频为500MHz摆布,争夺在2003—2004年完成。用于高机能办事器,也可以或许或许或许或许搭成机群做高机能计较。第三步争夺在处置器间并行上有所冲破,设想基于Crossbar的大SMP结点,每一个SMP结点16个—64个CPU,用于高机能计较。

在做处置器设想之前,咱们做了近十年的同享存储体系布局研讨,但囿于CPU和操纵体系,只能空言无补,顶多做做软件完成。此刻自身做CPU,可以或许或许或许或许随心所欲,仿佛被束厄局促的四肢举动一会儿获得了自在。若是可以或许或许或许或许或许把咱们在同享存储并行体系方面十来年的堆集做到适用体系中去,的确是爽呆了。若是可以或许或许的话,争夺完成串行法式接纳多线程手艺主动并行化,这须要编译、操纵体系及体系布局的周全冲破。没做几多事,写了这么多,是否是有点过度。写这类工具实在比写法式还累。

2001年8月