https://baijiahao.baidu.com/s?id=1759406814932648369
美国商务部周四在黑名单中又增加了28家中国实体,龙芯中科名列其中,理由仍是“威胁美国国家安全”之类的陈词滥调。谁都知道龙芯迟早会被美国制裁,只是笔者以为应该是在半年之后……
笔者难以理解,龙芯是威胁到美国了吗?龙芯让美国害怕了?美国的胆子真小!
当然制裁不一定是因为畏惧,比如海光从AMD购买了Zen核心的设计,美国就以制裁的手段提醒海光不要得寸进尺。不过龙芯和海光不一样,龙芯的CPU无论核心还是外围的功能模块都是自主设计,美国制裁龙芯绝对不是以“提醒”为目的。
华为被制裁主要是因为5G通信技术、申威被制裁是因为超算芯片、大疆被制裁是因为无人机……它们都达到了世界先进水平。可是龙芯的主要产品是嵌入式和桌面CPU,无论是性能还是市场占有率,都暂时不能构成对Intel/AMD的威胁,美国为什么这么着急?笔者只是有些疑惑,并不为龙芯担忧,凡是对龙芯有所了解的网友都和我一样对龙芯充满信心。
与国内其它的CPU企业相比,龙芯一直显得特立独行。比如自己设计CPU指令集并为之积极建立软件生态,比如包括CPU核心在内的重要功能模块都自主设计而不依赖购买,比如哪怕降低性能也不使用最先进的工艺制程……这些都说明龙芯对发展过程中的风险有正确的认识,不抱幻想、积极应对。而龙芯的应对措施,大概就是令美国发起制裁的原因。
十年前,龙芯3A1000的单核通用性能仅Intel产品的十分之一,尽管3B1500这款CPU的浮点峰值超过了i7-980X,但因通用性能太低、访存性能过低而缺少实用价值。
面对这么巨大的差距,按照通常先易后难的做法,应该先用先进工艺提升频率,再考虑改进核心。假如把1.0GHz的3A1000提升到2.0GHz,那就是性能翻倍的成就,省时省力。但龙芯非要把有限的预算用来重新设计CPU,去提升每GHz的性能,结果耗费了数年时间才得以推出的3A2000虽然性能翻倍了,但频率还是只有1.0GHz。
2021年7月发布的龙芯3A5000每GHz的性能已经达到4~6代酷睿的水平,但还是由于CPU频率过低,只有2.5GHz,实际性能仅相当于Intel 3.xGhz的一、二代酷睿i5,也与主频相当的i5-6400T不相上下。也就是说如果忽略产品主频,只看龙芯3A5000的核心设计水平的话,龙芯3A5000与4~6代酷睿相当。
龙芯3A5000与比它早十年的3A1000都是4核CPU,但3A5000的性能是3A1000的10倍,其中IPC是4倍,主频是2.5倍。 而在同样的十年中,Intel的10代酷睿的IPC相对于初代酷睿仅提升50%左右,CPU的最高频率也是提升50%左右,单核性能仅是十年前的2倍多点。
相同的时间,龙芯10倍,Intel 2.x倍,尽管龙芯占了基础差的便宜,但是照这样的趋势发展下去,龙芯CPU的性能确实非常有可能威胁到Intel。
CPU的性能不只看IPC,还要看频率和核心数,以及各种IO性能,但只有IPC的提升才是最本质的提升。龙芯和申威近十年主要是依靠设计来提升CPU性能,IPC进步显著。兆芯和飞腾主要依靠更新的工艺提升频率,IPC进步缓慢,因为新工艺受限而进入了瓶颈。目前所有的国产CPU稳定运行的最高主频都是2.5GHz左右,龙芯3A5000因为IPC最高所以单核心性能最高。
下图是几款CPU单核每GHz的通用性能评估成绩,评估工具是SPEC CPU 2006,评估模式为int_base。所有的成绩都来自本人及网友实测,均使用普通的用户Linux环境而不针对跑分进行特殊优化,使用GCC编译器且不开启自动并行化选项。把单核心的评估成绩除测试过程中的CPU平均频率得到单核每GHz的成绩, 这个成绩代表了CPU核心的设计水平。
现在距龙芯3A5000发布又过了将近两年,再过几个月龙芯3A6000就会发布。因为龙芯在物理设计方面的经验确实不如Intel/AMD,国内的芯片生产工艺也没有达到世界最先进水平,所以3A6000的主频提升不大,不过3A6000的IPC提升十分惊人。在相同的频率下,龙芯3A6000的单核性能与Intel/AMD的一流产品持平。也就是说,如果Intel/AMD的桌面CPU运行在3.0GHz左右的基础频率下,3A6000的单核性能就与它们不相上下,龙芯的CPU核心设计能力已经达到了世界一流水平。
那么对于美国来说,绞杀龙芯就是明智的行为,因为龙芯潜力太大,只要继续补上物理设计和生产工艺的短板,龙芯CPU的性能就能与Intel/AMD持平。
与自主性相对的是依赖性,CPU从架构(指令集)开始,再到CPU核心、各种控制器的设计或整合,最后仿真验证和流片生产,任何一个环节如果不够自主、依赖国外,都可能被卡住脖子。
指令集与软件生态深层耦合,x86架构的CPU就兼容x86指令集的软件,ARM架构的CPU也兼容ARM指令集的软件,而龙芯LoongArch架构则既不能安装x86的Windows,也不能运行ARM的Android。尽管龙芯开发了二进制翻译功能,能以软硬件协同翻译的方式运行Windows的应用程序,但兼容性和效率还需要提高。
那么龙芯自主指令集——LoongArch架构(龙架构)存在的意义在哪里?笔者认为主要是以下两点:
1. 完全杜绝指令集被卡脖子的可能性
无论是x86还是ARM,国内企业都没有任何主导权,包括自行添加CPU指令的权力(某些宣传中所谓的添加指令本质上是增加协处理器)。即使指令集“永久授权”那也仅针对某一个版本,x86和ARM在添加新指令升级之后,主流软件也都会逐渐随之更新,新版本的软件即便特意增加兼容机制来兼容老版指令集的CPU,也一定会存在运行效率的差距,就像视频编码软件开启了AVX256/512的指令支持后就能提升数倍的运行速度。在这种情况下,国内仍然使用x86和ARM老版本指令集的CPU企业如何自处?
“永久授权”也不能避免干扰,就像上海芯联芯造谣龙芯扩展MIPS指令集侵权一样,不管事实如何总能对生产和销售产生不良影响。为了阻止龙芯使用自主的LoongArch架构,芯联芯甚至发起诉讼,虽然芯联芯官司惨败但确实拖延了龙芯推广LoongArch的进程,并影响到了市场对龙芯的信心。芯联芯还只是国外公司的代理就能做到这种程度,那么如果Intel和ARM亲自下场,国内使用x86和ARM架构的CPU企业又能否扛得住?
“开源架构”也不同于“开源软件”,开源软件只要有电脑就能一亲芳泽,而验证“开源架构”则必须有设计CPU的能力以及流片的财力,也就是说“开源架构”对平民搔姿弄首的目的只是为了抬高身价勾引王孙贵胄。每个自以为是的追求者都想独占芳心,为它设计风格各异的配饰又打造金身,然而“开源架构”并不会给任何王孙贵胄为妻作妾,却爱楚楚可怜地看着裙下群臣为它各持己见争吵不休,又暗笑王孙贵胄们为自己蹉跎了岁月。
“开源架构”的玩家都想让自己的扩展成为标准,为壮大声势而先做成事实标准,结果反而会使软件生态支离破碎。MIPS本质上也只是一种需要付费的“开源架构”,龙芯对MIPS的失败应该深有感触,也就不可能让LoongArch走上相同的歧途。
美国政府黔驴技穷,亲自下场制裁龙芯,但龙芯LoongArch自主指令集的发展已经走上正轨,不可能因为些许阻碍就倒退回去,再把脖子套回美国的绳圈里。
2. 建设自主软件生态,避免硬件自主形同虚设
我国正在建设自主软件生态,目的是实现操作系统和各种基础软件的自主可控。软件与硬件相辅相成,如果仅软件自主可控而硬件照样大量进口,那么自主软件生态就成了为进口硬件开疆拓土的马前卒。
不同的CPU如果指令集兼容,那么它们能运行的软件也一定相互兼容。国内一些企业选择x86和ARM架构,最重要的理由就是可以直接使用主流软件生态。国内一些企业和单位选择RISC-V架构,其中一条理由也是参与RISC-V生态建设的企业众多,可以迅速完善软件生态。
然而,所有这些企业都刻意回避了与进口同类产品竞争的能力。无论是自己设计CPU,还是购买国外现成的设计自己整合,都无法绕开CPU性能这个重要的问题。国内企业设计CPU的水平普遍低于美国同行,包括龙芯也仍然和Intel/AMD存在差距。购买现成设计的更是只能买到中低端的IP,即使能买到高端IP,但由于工艺限制也没有意义。就算国内企业的CPU设计水平都与Intel不相上下,但只能使用14nm工艺时,又怎么去与使用3nm工艺的进口产品竞争?
随着自主软件生态的逐渐丰富,必然出现大量只兼容特定架构的软件或者软件功能,如果这些软件能解决用户的痛点,或者仅仅是由于习惯,那么用户就不会轻易更换成其它架构CPU的电脑。对于国产x86和ARM架构CPU的用户,随时更换成进口产品不存在任何障碍,反而是LoongArch架构因为短期内不存在进口产品,所以只要性能够用,就比x86、ARM、RISC-V更有利于用户存留。
龙芯CPU在国产同类中是性能提升最快的,也是性能最接近Intel/AMD产品的,再加上龙芯二进制翻译技术对x86/ARM/RISC-V等架构的单向兼容,目前基本可以实现对进口中低端桌面和服务器CPU的等效替代。其它架构的软件生态是龙芯的,但龙芯的软件生态不是它们的,唯有如此才不会使自主软件生态反而成为进口CPU的帮手。
丰富的自主IP(功能模块)
CPU中小至温度传感器,大至CPU核心,一个功能模块就是一个IP。CPU是由大量不同功能的IP集合而成的整体,国内大概只有龙芯的CPU中是所有重要IP都自主设计。重要IP有哪些?至少CPU核心、内存控制器、核间互联、总线控制器……等等都是包括在内的。龙芯桥片中的PCI-E控制器、GPU、各种外围接口控制器……也都是自主设计。
龙芯不依赖购买IP,只靠自己就能完成CPU和主板的所有功能,这种程度的自主完全不给别人能抓的把柄,也是美国最不愿看到的。
境内工艺流片和双备份
从龙芯3A2000开始,龙芯的重要型号CPU就开始使用境内生产工艺。但当时境内工艺的芯片品质要差一些,生产CPU这种规模的大芯片时有成品率低,主频也低的问题。成品率低成本就高,主频低性能就低,因此龙芯3A3000和3A4000在保留境内工艺流片的同时,商用版本CPU改在境外生产。当时兆芯和飞腾都使用台积电最新的16nm工艺,而龙芯为了与境内当时达到的制程保持一致,而选择了意法半导体的28nm工艺。近两三年境内已经可以用12/14nm工艺量产CPU这样的大芯片,龙芯3A5000便选择了两家境内的代工厂作为互备份。
龙芯受到的制裁级别不高,目前不会干扰到生产渠道。即使更进一步也至少有一家可以继续代工,对CPU生产几乎没有影响,不会像华为那样突然就弹尽粮绝。龙芯在境内流片,以及两家代工厂互备份的策略最大限度地保障了生产环节的安全。为了保证境内可以生产,龙芯的CPU在设计初期进行工艺选型时就会放弃境内不能达到的制程,与国内其它CPU企业抱着侥幸心理一味追求先进工艺截然不同。
龙芯对风险的悲观评估,使它在3A5000诞生前一直是使用落后一至二代的工艺与同行竞争,锻炼出了国内最强的CPU设计能力,也使它在制裁中几乎不会受到冲击。2019年华为被限制使用7nm及更新的工艺后,兆芯、飞腾、海光原计划使用7nm工艺的新产品也纷纷搁浅,而龙芯当时的3A4000还在使用28nm工艺,计划中的3A5000也仅是16nm的级别。这次龙芯受到制裁,也同样不会影响到后续的产品计划,因为预计今年发布的3A6000也仍然是使用与3A5000相同的12/14nm工艺。
风险最大的是EDA软件,目前尚未得知龙芯会受到何种限制,按照常规只会限制使用EDA软件对最新工艺的支持能力,制裁需要多次调高等级层层加码才可能限制到16nm的级别。龙芯也与国产EDA软件厂商有合作,但主要用于设计嵌入式CPU,因为国产EDA软件暂还不支持16nm级别数字芯片的全流程设计。龙芯对CPU工艺选型的保守,使龙芯对新工艺没有需求,至少目前是安全的。龙芯近几年一直未雨绸缪,相信对于各种程度的封锁和制裁都有应对的预案。
海思在去年推出了新款的8核桌面CPU,是使用的16nm工艺节点,也就是说即使受到华为这种程度的制裁,仍然可以设计和生产16nm工艺节点的芯片。龙芯目前使用的工艺没有低于16nm节点,受制裁的级别也没有超过华为,那么就可以认为龙芯当前无论是EDA还是流片生产都没有限制。
即使遇到最极端的情况,龙芯也远比国内其它CPU企业更有抵御的能力。因为龙芯的架构(指令集)是自主设计、所有重要IP是自主设计,美国只能限制龙芯不使用美国技术,但不可能干涉龙芯处置自己的知识产权。龙芯有权把自己的CPU架构和IP以及各种专利及设计资料授权或者转移到任何公司和组织,而基于x86和ARM架构以及依赖IP授权的CPU企业就不可能有这种便利。
在很多人的印象中RISC-V是个很新的指令集,但事实上它在2010年就已经诞生。已经诞生了十多年的RISC-V,虽在嵌入式领域比LoongArch略胜一筹,但桌面和服务器软件生态却少有建树。
龙芯的LoongArch是2020年8月在一个学术会议上首次亮相,2021年4月对公众公开,2021年7月发布首款基于LoongArch架构的桌面CPU。满打满算,龙芯LoongArch架构软件生态的建设时间还不足两年,但Linux桌面和服务器软件生态却已经不输x86太多,与ARM打得有来有回。
龙芯LoongArch软件生态的完善速度竟恐怖如斯……
龙芯LoongArch软件生态主要有三种来源:
1. 开源软件生态以及龙芯自己的基础软件
Linux是一个开源的操作系统,各种开源库和软件构成了Linux软件生态的基础。大部分开源库和软件可以跨架构编译,小部分需要修改源码适配LoongArch架构或者优化。开源生态的移植和优化主要由龙芯公司和开源社区共同完成,LoongArch的开源生态与x86和ARM基本一致。
龙芯与x86和ARM相比还有自己的独特竞争力,比如龙芯开发的打印机驱动组件可以在Linux下使用Windows的打印机驱动,龙芯CPU在Linux下对打印机的兼容性超过了x86和ARM架构的CPU。
2. 国内软件企业和个人团队开发及移植
国内信创单位日常使用的软件基本上来自国内软件企业,一些个人团队也在Linux上开发和移植了很多优秀的软件。
龙芯使用的国产操作系统主要有龙芯自己维护的Loongnix、统信的UOS、麒麟的银河麒麟系统,龙芯上的国产应用软件也基本上是对这三种系统进行适配。LoongArch的国产软件生态与x86和ARM基本一致。
3. 二进制翻译x86架构的Linux和Windows软件
龙芯开发了软硬件结合的二进制翻译系统,主要功能是把x86、ARM、RISC-V等流行架构的CPU指令翻译为LoongArch指令并执行。目前公开的只有翻译x86指令的LATX,可以运行x86架构的Linux软件,把LATX与wine结合也可以运行Windows软件,目前已经可以正常运行包括PhotoShop在内的部分Windows软件,但兼容性暂时不如在x86版的Linux中运行Windows软件。预计再过一年左右LATX的兼容性和翻译运行效率可以达到较高水平,即在x86版Linux中能运行的任何软件也都可以在LoongArch架构的CPU上运行。
龙芯遭了无妄之灾,但不会对龙芯的发展造成严重的不良影响。因为很多朋友认为美国的黑名单是中国企业的光荣榜,所以美国制裁实际上会提升龙芯的知名度,增强大家对龙芯CPU的信心,加深所有消费者对龙芯的信赖。美国的制裁是南辕北辙,不可能达到美国政府预期的效果。