据悉,12月末龙芯将发布最新一代CPU 3A4000,这款CPU和3A3000一样,依然采用28nm工艺,并在制造工艺没有升级的情况下,依赖自己的设计能力把裸CPU性能提升了90%,这在国内是非常罕见的,相对于一些依赖ARM的IP和台积电先进工艺的厂商,龙芯形成了鲜明对比,这充分证明了龙芯的IC设计能力。
龙芯3A4000内核大升级
根据清华大学微电子所所长魏少军博士指出:“快速提升我们自己的IC基础设计能力迫在眉睫,这是改变目前中国IC设计业严重依赖EDA工具和制造工艺才能实现芯片性能提升的根本途径,而依赖并滥用IP则导致了中国SoC设计的同质化”。
可以说,当下国内很多IC设计公司,对ARM的技术有非常高的依赖性,几乎是离开了ARM就不会设计CPU/SOC了,而且对台积电的先进工艺也非常依赖,几乎是离开了台积电工艺,CPU/SOC的性能就会大打折扣。
相比之下,龙芯则对先进工艺的依赖性不高,在制造工艺上一直落后于国内友商,比如友商普遍采用台积电28nm工艺,个别厂商已经用上了台积电16nm工艺的时候,龙芯3A2000还在使用中芯国际的40nm工艺。现在,友商普遍采用台积电16nm工艺,个别友商已经用上了台积电7nm工艺,而龙芯依然在使用老旧的28nm工艺。
龙芯之所以这样做,一方面和资金实力有关,由于十二五后核高基等项目重点扶持技术引进项目,龙芯基本断奶,要自负盈亏,资金上不宽裕,不得不拿鼎晖等的风投,因而自然选择相对老旧,性价比较高的工艺。另一方面,这也和龙芯具备较强设计能力有关,在工艺不如友商的情况下,用设计能力去弥补,也能在相关创新市场中击败对手,并囊获70%以上的市场份额。
这里再谈一下28nm工艺。使用相对老旧工艺,还有一个好处,那就是有助于压低成本,毕竟7nm工艺流片成本太贵,16nm工艺流片成本也很贵。龙芯采用28nm工艺,只要有三十万片的产量,就可以把流片和封装成本压下来。而采用7nm和16nm工艺,想要压下成本,恐怕要上百万,乃至几百万、上千万的产量才行。
据网友介绍,3A4000在顶层设计方面作的主要改进有:
调整了片上互连结构,简化了地址路由,IO 模块间互连采用 RING 结构;
优化了 HT 控制器的带宽利用率与跨片延时;
优化了内存控制器结构,增加了内存控制器 DDR4 的支持,并支持内存槽连接加速卡;
规范了配置寄存器空间与访问方式,引入了 CSR 配置寄存器访问机制;
优化了中断控制器结构,支持向量中断硬件分发机制;
增加了 8 路互连支持;
......
正是通过这些改进,龙芯3A4000实现了SPEC2006定点浮点双20分,在性能上用28nm工艺超过了国内个别友商采用16nm工艺的ARM CPU。
龙芯自主指令集和自主生态初露端倪
一直以来,一些ARM的支持者非常喜欢玩弄一个文字游戏,那就是鼓吹龙芯买MIPS,申威买Alpha,某司买ARM,因而大家自主性上都是同一个水平的。这种强行把龙芯申威的自主性拉下一个台阶的说辞,是非常值得商榷的。
首先,申威不是Alpha,申威的指令集是国内自主定义的SW64,这一点国内权威部门做过鉴定,美国田纳西大学教授、TOP500创始人Dongarra Jack发布的文档也说明,SW64不是DEC的Alpha。不知道是不是神威太湖之光超算取得的成绩太过耀眼,以及申威自主定义指令集的做法在皇协军眼中太刺眼,因而国内一伙人非常喜欢给申威找一个爹,哪怕这个爹已经“死”了20年,这样才能贬低申威的自主性,把申威降到和国产ARM一个水平。
把龙芯视为MIPS麾下的打工仔也不客观。也许是国产ARM是ARM麾下的打工仔,因而一些人将龙芯贬低为MIPS麾下的打工仔,这样就可以把龙芯的自主性降到国产ARM一个水平。事实上,这种论调是经不起推敲的。龙芯能够自主添加指令集,已经在MIPS的基础上,扩充了1000多条指令,并形成了自己的LoongISA,而且已经发展到LoongISA 2.0,关键的基础软件自己维护,Linux对于龙芯的支持也非常给力,一些软件在发布时也有分龙芯版和MIPS版,还有一些虽然两者并为同一个版本,但是可以在运行时动态探测处理器型号而在龙芯处理器上应用龙芯拓展指令加速优化。龙芯面向MIPS更像伙伴关系,在龙芯对很多软件进行移植优化的时候,也不忘同时带上其他MIPS处理器的支持,在v8,OpenJDK等JIT虚拟机中,龙芯都已经成为了整个MIPS架构的代码维护者。最近UOS也把Loongson内核与x86内核、ARM内核并列,其中一项亮眼的更新是增加了对龙芯3A4000的支持。
龙芯在MIPS的软件生态方面已经获得了一定的主导地位。龙芯成为了Java运行环境OpenJDK 13的一大贡献者,现在维护着上游MIPS架构和龙芯扩展的代码。诸多多媒体库,例如FFmpeg,libvpx,OpenH264,libyuv等,都已经由龙芯针对自己的MMI以及MIPS的MSA等向量指令进行优化并提交给上游。有些库支持龙芯扩展指令甚至比支持MIPS的扩展指令还早。Linux内核的上游也一样被龙芯生态链成员维护着。龙芯在开源软件方面已经获得了一定的发言与控制权。
龙芯对MIPS的扩展也越来越深入,从最开始的扩展运算访存以及二进制翻译指令,到后来的硬件页表索引以及虚拟化指令,再到现在对基础指令进行更加高效的替换。3A4000引入的AMO原子操作系列指令代替了MIPS原先的LLSC系列指令,使得应用多线程操作的效率大大提高。PC相对寻址指令则可以解决MIPS当前在PIC/PIE实现方面依赖特殊的“abicall”机制,效率较低的瓶颈。Cpucfg则解决了MIPS平台下应用无法识别CPU对扩展指令支持的弊病。龙芯在兼容MIPS的同时也在一点点甩掉来自MIPS的历史包袱,从底层创新。这是其他ARM的附庸想都不敢想的。Arm指令集本身一般不允许客户随意扩展,而其官方对指令集的演进扩充流程需要复杂的投票决议,有很长的决策周期,对各种需求无法作出快速响应。即便国内ARM阵营厂商私自添加指令,也存在被解读为非法指令的风险,不仅无助于性能提升,反而会带来稳定性问题。不仅仅是指令集,在GIC中断控制器,PSCI电源管理接口方面Arm也有严格的标准限制,厂商的自由度很小。
还有一点非常关键,MIPS几经转手,现在的母公司已经放弃了R6之前的版本,专心推进为嵌入式及IoT设备设计的R6,而龙芯目前的指令结构则基于MIPS R2以及部分来自R5的ASE。作为第一个商用的RISC指令集,MIPS的不少专利已经过期或快过期了。MIPS非常学院派,允许大家添加指令集,这就导致MIPS生态破碎化,加上MIPS非常弱势,这就给龙芯创造了机会。打个比方,MIPS作为最早商用的RISC指令集,影响力还是有的,地位有点像汉献帝,但比较弱势,在这种情况下,龙芯有机会去当董卓或曹操的。
ARM则非常强势,ARM主流生态基本无可撼动,整个产业链都是跟着ARM的步伐走,不可能放弃ARM主流生态,来追随国产ARM厂商。ARM地位就像汉武帝,哪怕麾下大将再能打,也不可能翻天,只能给汉武帝打工一辈子。运气差的,被巫蛊之祸(川普制裁)牵连,没准还要重蹈赵破奴的命运。诚然,现在ARM主要还是英国资本和日本资本,但这两个都不是中国的好朋友,反而是美国的盟友和小弟。
何况ARM指令集授权费用很贵,而且不断发展,必须一直买,而龙芯、申威、RISC-V都没有这方面的负担。就构建产业链来说,国产ARM厂商只能成为产业链的一个打工者,类似于联想、华为在Wintel体系和AA体系中被剥削,只能赚血汗钱,洋人赚取高额利润。这种模式不利于一个产业的长远发展。而龙芯、申威、RISC-V构建的红色产业链,则不存在这方面的问题。
结语
当下,川普的一系列所作所为已经说明了,自主CPU是多么有意义,是多么重要,但不知为何,一些人就是见不得自主CPU的进步和成长,并恶意造谣中伤。比如把汉芯的锅往龙芯上套。又比如此前深度举办的一次大会上,同方的龙芯3A4000没有接显示器,一些人就造谣龙芯3A4000存在重大问题所以见不得光。然而真相却是,龙芯3A4000压根就没问题,只是因为同方的龙芯PC装的是中标麒麟,因而在深度的大会上不好意思装显示器。一些网友还编造SPEC跑分数据,声称龙芯3A4000 SPEC2006定点成绩只有12分,这种数据实在太过离奇,已经不能用测试误差来圆谎了。
过去19年,龙芯用少的可怜的资源,办成了不少事情,做出了宇航级CPU、工控CPU、桌面CPU、服务器CPU等一系列产品,就其产出来说,已经远远超过了国家对其的投入。
目前,龙芯的形式还是比较严峻的,由于人少钱少,研发进度偏慢,生态建设进度也偏慢。如今个别ARM借助其强悍的政商关系和舆论控制能力,猛冲相关创新市场和八大行业国企市场,龙芯面临巨大挑战。
相关文章
「 支持!」
您的打赏将用于网站日常运行与维护。
帮助我们办好网站,宣传红色文化!