3A2000主要是通过结构优化提升性能,属于Tock;3A3000则直接采用3A2000的源代码,通过工艺优化提升性能,同时继续保持与3A2000的引脚兼容,属于Tick。因此,3A3000在功能上没有什么风险,主要是工艺移植的风险。当然,3A3000在微结构上还是做了适度增强:一是结合3A2000的性能瓶颈分析把定点/浮点发射队列从16/24项增加到32/32项,二是把最后一级Cache从4MB提高到8MB。到6月底,完成了RTL源代码修改,随后全面展开物理设计。
3A3000物理设计中继续需要定制包括HT-PHY、DDR-PHY、锁相环、多端口寄存器堆、CAM等全定制模块。由于3A2000中的全定制模块出过问题,3A3000的全定制模块检查特别严。除了加强设计仿真外,还让原龙芯全定制组的组长杨旭(现在是龙芯中科公司全面负责生产的副总)重新披挂上阵,进行背靠背的复查。紧赶慢赶,于2016年1月底完成了全定制设计的签核和复查评审。
3A3000物理设计中另一个难点是时序收敛。3A3000使用的28nm FD SOI工艺晶体管确实比3A2000使用的40nm LL快60%左右,但连线延迟大,而且互相干扰也大,废了很多周折。杨梁率领物理组在2016年春节期间也没有休息,终于在2016年2月中旬交付流片。
2016年6月端午假期期间,龙芯3A3000完成晶圆生产并进行了中测,刚开始比较顺利,已经调试完成大部分向量,只是测试我们自己研制的锁相环时发现锁相环输出时钟有不稳定现象。6月中旬拿到盲封芯片,测试发现只有在低于0.8V的低电压下芯片才能正常工作,经过两周的分析发现还是寄存器堆的问题,这次是读出电路的问题,读电路译码时产生了毛刺,把别的字的内容耦合到读出字内容来了。好在该问题只需要修改一层掩模版。
2016年9月13日,修改寄存器堆问题的改版芯片回来。这次测试非常顺利,很快就运行了SPEC CPU2000和SPEC CPU2006等大型程序,均未发现异常。主频可以达到1.5GHz以上。进一步的测试结果比想象的好,一是内存频率可以达到750MHz以上,而且信号图还非常好,STREAM测试带宽达到13GB/s;二是虽然主频只提高了50%,但综合SPEC CPU2006和SPEC CPU2000分可以提高60%,其中SPEC CPU2006单核分为定点11分以上、浮点10分以上,四核分为定点36分,浮点33分;三是可以运行在很低电压下,例如运行在1.0V电压下主频1GHz时功耗还不到3A2000运行1GHz时的一半。对于复杂应用(如打开几十MB的复杂文件),3A3000的用户体验比3A2000有显著提高。
2016年10月17日,龙芯3A3000通过了龙芯公司质量体系要求的商业级产品的鉴定检验摸底测试(工业级产品鉴定检验工作正在同步展开),表明龙芯3A3000可以进入批量生产状态。目前3A3000已开始小批量生产,其中经过测试支持通过直连形成多路服务器的芯片成为3B3000。
龙芯3A3000运行SPEC CPU2000定点分1100多分,浮点分1700多分,运行一遍不到一个半小时(如果使用计算所的编译器进行优化,定点和浮点分还分别可以提高15%和30%以上)。回想2002年龙芯1号刚诞生时,运行一遍SPEC CPU2000需要近三天时间,龙芯2C由于SEPC CPU2000分没有达到863课题合同要求的300分而没有完成验收,龙芯2E费了九牛二虎之力才勉强达到500分,真是“向来枉费推移力,今日中流自在行”。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-37557-9.html
美国对英国的胜利不就是这样的吗
存到银行缩水