|
|
|
科工力量:龙芯发布自主指令系统,彻底抛弃MIPS
观察者网 2021-04-20 上海观察者信息技术有限公司官方帐号,优质创作者
【文/科工力量专栏作者 铁流】
日前,龙芯发布自主指令系统 LoongArch。在国内 CPU 公司争相引进 X86、ARM、Power、SPARC、RISC-V 等指令集的情形下,龙芯推出自主指令系统架构显得异常特立独行。
过去这些年,国内 CPU 公司引进英特尔、AMD、IBM、ARM、VIA、高通等公司的 CPU,但始终没能建立起自己的 Wintel,原因就在于始终保持着一种跟随心态,缺乏独立自主的决心和毅力。随着国际大环境风云变幻,特别是经过特朗普和拜登的教育,构建自主可控的信息技术体系和产业生态已成为共识,龙芯在此时发布自主指令系统架构可谓是恰逢其时。
龙芯自主指令系统是全新指令集
CPU 指令系统是计算机的软硬件界面,是 CPU 所执行的软件指令的二进制编码格式规范。
目前,国际上曾经具有一定影响力的指令集有 X86、MIPS、ARM、Power、Alpha、SPARC、RISC-V 等,这些指令集都是舶来品,真正由国内自主研发的只有 LoongArch 和 SW64。SW64 是申威 CPU 的指令集,由国内单位自主研发,神威太湖之光超算的芯片 SW26010 就是基于 SW64 设计的。过去,龙芯基于 MIPS 指令集添加指令发展出 LoongISA ,本次的龙芯自主指令系统则与 MIPS 完全没有关系,是完全自主研发的全新指令集。
MIPS 是全球第一种商用的 RISC 指令集,由于“历史悠久”,指令系统中有部分不适应当前软硬件设计技术发展趋势的陈旧内容,龙芯摒弃了传统指令系统中令人诟病的部分,吸纳了近年来指令系统设计领域诸多先进的技术发展成果。例如单条指令支持的立即数从 MIPS 的最大 16 位扩展到最大 24 位,分支跳转偏移也从 64K 扩展到 1M 字节,以及寻址空间从固定分段改变为单一平面等,有效减少了编译结果的目标指令条数和访存次数,提高了效能。
由于 LoongArch 指令设计上更加优化,在把源码编译为目标程序后的指令数量上甚至比 x86 略有优势。在 Coremark 的测试中,程序运行过程中执行的指令总数 LoongArch 为 MIPS 的 83%,相当于运行效率提高了 20%。在类型更加多样的测试中,综合测试结果,LoongArch 平均比 MIPS 快 12%,说明全新设计的 LoongArch 是成功的,可以为 CPU 带来大幅的性能提升。

另外,LoongArch 设计时充分考虑兼容生态需求,融合了各国际主流指令系统的主要功能特性,操作系统中除了运行原生的 LoongArch 程序,还能通过翻译的方式兼容 MIPS、x86、ARM、RISC-V 这几种指令集的 Linux 程序。根据官方公布的 PPT,在翻译 X86 时,运行效率可以达到 80%。
2020 年,龙芯委托国内第三方知名知识产权评估机构对龙芯基础架构进行深入细致的知识产权评估,将 LoongArch 与 ALPHA、ARM、MIPS、POWER、RISC-V、X86 等国际上主要指令系统有关资料和几万件专利进行深入对比分析。2021 年 1 月,针对被评估的基础架构版本该评估机构认为:
(1)LoongArch 在指令系统设计、指令格式、指令编码、寻址模式等方面进行了自主设计。
(2)LoongArch 指令系统手册在章节结构、指令说明结构和指令内容表达方面与上述国际上主要指令系统存在明显区别。
(3)未发现 LoongArch 基础架构对上述国际主要指令系统中国专利的侵权风险。

自主 CPU 的两个维度: 自主指令系统、自主完成前端后端设计
一直以来,不论是与外商合资的国产 CPU,还是购买外商技术授权的国产 CPU,以及把外商 CPU 和自己的 ASIC 封装在一起的国产 CPU 均号称符合自主要素,宣传自主研发向政府要政策、要市场。地方政府基于局部利益、短期利益纷纷给这些所谓的国产 CPU 开绿灯、送政策。然而,在巨额资金的投入下,这些技术引进 CPU 不仅没能开花结果,反而出了不少幺蛾子,甚至折戟沉沙。之所以出现这些情况,关键还是对自主 CPU 的定义模糊,地方政府胡乱花钱,盲目引进技术。
铁流认为,自主 CPU 必须是基于自主指令,自主完成 CPU 设计。
首先看自主指令系统。过去,一些国内厂商宣称自己获得了 ARM v8 授权,一些 ARM CPU 的支持者因此就称国产 ARM CPU 符合自主要求。半个月前,ARM 发布了其下一代芯片架构 ARM v9,并声称是 10 年来最重要的创新,是未来 3000 亿 ARM 芯片的基础。在 ARM v9 发布后,国内购买 ARM v8 授权的 ARM CPU 厂商何去何从就是一个问题了。
诚然,关于某些国内厂商能够继续购买 ARM v9 指令集授权的报道充斥网络,但只要查一下新闻源头可以发现源头是 2019 年的一篇外媒报道,国内媒体是拿 2019 年的报道拼接套娃,就 ARM 官网上关于发布 ARM v9 的网页看,文末的合作伙伴有谷歌、英伟达、恩智浦、富士通、红帽等国外企业,也有台积电、联发科、OPPO、VIVO、小米等中国企业,然而,一些国内厂商并不在合作伙伴名单内。
退一步说,即便这次侥幸买到了 ARM v9 授权,那么,将来 ARM 发布 V10、V11、V12...... 国内 ARM CPU 企业是不是还要继续买 V10、V11、V12 授权......如果是这种“买无止境”,那么,国产 ARM CPU 所标榜的“自主”又从何谈起呢?
因此,自主 CPU 必须基于自主指令系统,基于 ARM 授权开发的 CPU 根基不牢,是在沙滩上建房子,自主性无从谈起。
其次是自主设计。这里的自主设计包含自主完成前端设计和后端设计。芯片设计到流片,基本分两大部分,前端和后端。
前端是 RTL design ,根据 design specification,做设计,形成 verilog 代码,然后用 eda tool 做 functional verification,反复做迭代修改,直到通过检验。后端设计分两部分,logic design 和 physical design。logic design 接受前端的 Verilog 文件,用 synthesis 工具生成门级网表,然后再用 eda 工具做 logic equivalence check,迭代直到通过。physical design 接受门级网表用 place&route 软件生成 physical layout,并用 tools 对 layout 进行 physical verification,包括 RC extraction 和 post-layout verification 等等,迭代直到通过。通过后生成 GDSII,发送代工厂流片,叫 tape-out。
当下,从国外购买各种 IP 和设计外包是行业常态,比如华为麒麟芯片、紫光虎贲芯片的 CPU 核、GPU 核基本从 ARM、Imagination 等外商购买,又比如飞腾把后端设计外包给世芯。
之所以出现购买 IP 和设计外包的情况,根源还是自己基础不牢,技术不扎实,又不愿意一步一个脚印提升技术水平,想要尽快出成绩。而技术提升恰恰是需要循序渐进的,前端设计一代产品更新源代码替换一般不会超过 25%,必须一代一代逐代演进。后端设计中的定制模块设计,通常先流一次片,用于验证功能,没有问题,再当做一个模块或者 IP 集成到芯片中,保证不容易出错,因此,后端需要经验丰富的人,这都是拿钱和流片,以及时间去学习积累出来的,而国内一些 CPU 公司为了抓住国家政策红利,自然会选择购买 IP 或外包设计尽快出成绩。
在采用外购的 IP,或将设计外包之后,一方面会带来自身技术底子不扎实的问题,一个最明显的现象就是后继乏力,发展后劲不足,比如在 CPU 的 IPC 提升上,技术引进 CPU 明显不如龙芯,于是只能靠采用更先进的台积电工艺来提升性能。另一个是必然带来巨大政治风险,一旦遭遇制裁,后果不堪设想。最近,飞腾被美国列入实体清单,而飞腾的后端设计恰恰外包给了世芯,由于世芯在中国台湾岛内上市,且飞腾是世芯的第一大客户,去年占其业绩比重约 39%,世芯在第一时间召开了在线说明会。根据世芯官方消息,飞腾被列入实体清单后,为该公司提供最后阶段设计的世芯后续出货将受阻,而飞腾委托世芯设计及量产制造的尖端制程芯片,已被台积电暂停接单,并待后续调查状况后再行决定。
结语
一种指令系统承载了一个软件生态,如 X86 指令系统和 Windows 操作系统形成的 Wintel 体系,以及 ARM 指令系统和 Android 操作系统形成的 AA 体系。为了可以对接 X86 和 ARM 生态,兆芯通过合资的方式使其在中国大陆市场可以销售 X86 芯片,华为、飞腾、华芯通使用购买指令集授权的方式获得 ARM 授权,但事实证明,华为、飞腾、华芯通的道路行不通。在 ARM 的地基上,建不起自主技术体系的高楼大厦。国外 CPU 厂商以指令系统作为控制生态的手段,需要获得“授权”才能研制与之相兼容的 CPU。采用授权指令系统可以研制产品,但不可能形成自主产业生态,就像中国人可以用英文写小说,但不可能基于英文形成中华民族文化。
指令系统是软件生态的起点,只有从指令系统的根源上实现自主,才能打破软件生态发展受制于人的锁链。龙芯自主指令系统的推出是龙芯筹谋已久的成果,绝非某些厂商用来应对危机公关的“按揭开源”产品。因为 3A5000 就是基于 LoongArch 设计,且已经有样片,将在 2021 年投放市场,从确定新指令集到基于新指令集设计一款 CPU,再到完成流片,需要漫长的周期。从龙芯最初基于 MIPS 添加指令,到发展出基于 MIPS 的 LoongISA,再到最新的 LoongArch,龙芯的目的是非常明确的,也是显而易见的,那就是尽一切可能掌握主导权,坚定不移走自主之路。
必须说明的是,龙芯和华为、飞腾一样,在当下都很难顶住美国禁令。
诚然,华为和飞腾 ARM 芯片绝版的最主要原因是失去台积电流片渠道,但两者在设计上都依赖海外技术输入,华为的鲲鹏芯片设计很大程度上得益于华为开设在美国的研究所,而飞腾在后端设计上则外包给世芯,这都是非常危险的,因为美国可以轻易中止技术输入。可以说,华为和飞腾在 ARM 授权、CPU 设计、CPU 制造三个环节都被卡脖子。
龙芯虽然已经实现了自主指令系统和 CPU 自主设计,不需要从国外研究所获取技术,也不需要把后端设计外包给世芯这样的境外厂商,但在流片渠道上同样脆弱。由于在半导体设备、材料、EDA 等多方面受制于人,国内尚无法做到全产业链,而美国的实体清单恰恰是“100-1=0”。
当下,最要不得的就是海军自嗨、厉害体、沸腾体。铁流以前反对颅内充血,反对沸腾体,还被指责“站不起来”。
搞笑的是,铁流过去主张低调循序渐进自主指令集、自主设备、自主材料、自主制造建设全产业链的观点时,那些指责铁流“站不起来”的人群又指责铁流这种事情不现实,应当“融入国际主流”。
铁流不禁要问,究竟是谁站不起来!
一些人必须克服“奴才”心态,在评价国产 CPU 时,应当看国产 CPU 本身行不行,而不能比谁的“洋爹”发展的好来论英雄。
实践证明,“融入国际主流”并非良策。特朗普和拜登已经用行动说明了一切。当下,龙芯已经基于 LoongArch 设计出了 3A5000,而且基于 12nm 工艺的 3A5000 在最关键的单核性能上超越了基于 7nm 的鲲鹏 CPU,这是一个里程碑,是自主技术采用相对落后工艺超越引进技术的里程碑。
在龙芯已经在设计环节实现自主的情况下,希望国内原材料厂商、设备厂商、制造厂商、EDA 厂商能够给力,希望软件厂商能够积极移植适配应用软件,最终实现打通芯片设计、制造、封装、测试、原材料、EDA,以及 OS、中间件、数据库、应用软件全链条。
|
评分
-
查看全部评分
|