0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

龙芯研发出 “自主” 又“兼容”的 LoongArch 指令集

hl5C_deeptechch 来源:DeepTech深科技 作者:DeepTech深科技 2020-09-08 15:14 次阅读

8 月 13 日,在每两年一度的全国计算机体系结构学术年会(ACA2020)上,龙芯中科董事长、中科院计算技术研究所研究员胡伟武作了名为《指令系统的自主与兼容》的特邀报告。

在报告中,他透露了龙芯的新动向——研发既 “自主” 又“兼容”的 LoongArch 指令集。如果最终达成目标,这将是一个自带 “完整” 生态,且中国人能牢牢掌握的体系。

关于该事件的讨论一度登上知乎热榜,一位资深业内人士告诉 DeepTech :“LoongArch 的计划已经提了很长时间,由于近期‘断供’问题形势严峻才特别凸显。其实业内一直想推出中国自有指令集系统,但奈何各方利益交错,长期达不成共识,目前或许是一个契机。”

自主研发 VS 选边站队

美国驴象两党,在很多方面都意见相左,但在对待中国的态度上却少有地达成一致。可以预见,未来,不管特朗普连任与否,都不能幻想美国人的对华政策有较大变化。

目前,“构建独立于Wintel 体系(Windows+Intel)和AA 体系(ARM+Android)的安全可控的信息技术体系和产业生态”已经成为国家战略。

要达成这一目的,“芯片”的问题是无法绕过的。而芯片难题又分为两个小点:一是 CPU 的指令集架构,一是生产的工艺制程。本文不谈工艺问题,只谈前者。

指令集架构,又称指令集或指令集体系,是计算机软件运行的基础设施。指令集的指令转换成机器码之后即直接与 CPU 发生交互,是比汇编语言更加底层的封装。

图 | 该指令含义为:将地址 2 的值与常量相加,然后写入到地址 1

目前,仍然活跃在商业领域的指令集分成两大类:以 ARM、RISC-V 及 MIPS 为代表的精简指令集(RISC),以 X86 为代表的复杂指令集(CISC)。这里的精简和复杂可以简单理解为所包含指令数目的多少。

使用 X86 架构的厂商是大名鼎鼎的 Intel 和 AMD,该架构为 Intel 首创,由于历史原因形成了现在的两强局面。值得注意的是,X86 架构基本不再对外授权。

ARM 指令集的产品众多,由于其在功耗方面的优势,几乎所有的智能手机(苹果、安卓)、平板、便携智能设备,都要向 ARM 购买授权,在商业上 ARM 是成功的。目前 ARM 隶属于日本的软银,不过已有传闻 NVIDIA 将收购 ARM,届时 ARM 将归属美国。

RISC-V 比较特殊,属于开源(仅ISA)指令集架构,也就是说 RISC-V 指令集可以自由地用于任何目的,允许任何人设计、制造和销售 RISC-V 芯片和软件,而不必向任何公司支付专利费用。

中国,是最追捧 RISC-V 的国家,没有之一。

追捧到什么程度呢?RISC-V 官网显示,其首席会员一共十名,其中中国公司、组织占了八席,他们分别是:阿里巴巴、晶心科技(台湾省)、华为、中国科学院计算技术研究所、中国科学院软件研究所、RIOS(清华 - 伯克利深圳研究院)、中兴微电子赛昉科技(SiFive 中国)。

图 | RISC-V 首席会员

虽然 RISC-V 属于全球性非盈利组织,理论上不会出现被 “卡脖子” 的情况,但该组织的核心管理者基本是美国人,且目前碎片化严重,很多有用高效的指令无法加入到主分支之中。总之,中国想要在这个体系掌握主导权,目前看来暂无可能。

最后,终于要说到龙芯使用的 MIPS。

它依旧属于一家美国公司,龙芯是其最大客户。该公司因战略误判,逐渐衰落,后几经辗转,被多次收购,开发人员也流失严重,目前已经无力进行新产品的开发迭代。不夸张地说,如果没有龙芯,MIPS 已死。但就是这样一家公司,龙芯想要收购接盘,也一直没能得到美国政府的批准。

综上,X86 不授权,ARM 严格授权,中国此前一直把宝押在 RISC-V 和 MIPS 上。

胡伟武说道,自主和兼容这两条路线已经争论了 15 年,兼容的好处是自带生态,但劣势是处处受制于人,并且会严重阻碍以 “操作系统” 为代表的基础软件软件发展。他认为,我们不可能基于国外的指令系统建立自主生态。

“龙芯曾经选择 MIPS 授权,觉得比较开放,还可以自主加指令,所以走了好多年。本以为可以通过比较弱势的 MIPS 或者基于开源的 RISC-V 来构建自己的生态,但最近发生的很多事情,让我们认识到,即使对方再弱小,也会在商业上对我们造成很大的干扰。”

所以,摆在龙芯面前的恐怕只剩下建立自己的指令集这一条路了。

兼容并济,海纳百川

完全自主,说起来容易,做起来难;做出一款能用产品容易,但做出一款大家都用的产品难。有没有可能既独立自主,又能兼顾现在的主流生态呢?

胡伟武的答案是“有”。就是研发兼容各大指令集架构的自主指令集架构。

胡伟武表示,这条路是完全可行的。

首先,基础软件方面,BIOS(PMON/UEFI)、内核(Linux/VxWorks)的迁移,工作量不大;汇编器及编译器(GCC、LLVM、GOLANG)的工作量是可控的;整个操作系统重新迁移和编译工作量也不大,直接把 MIPS 汇编语言编译成自主指令系统即可。

其次,动态翻译虚拟机方面,Java、JavaScript、.NET 三大虚拟机,龙芯均可独自完成迁移,完成之后可以直接运行各自的应用程序而无须修改。

最后,二进制翻译方面,主要针对 X86、ARM 及 MIPS。QEUM 已经可以实现,关键在于提高其运行效率。

目前,龙芯已经完成了自主指令集的规划,包含基础指令 337 条、虚拟机拓展指令 10 条、二进制翻译扩展指令 176 条、128 位向量扩展 1024 条、256 位向量扩展 1018 条,合计 2565 条。值得注意的是,因增加二进制翻译指令而导致的 CPU 面积和延迟开销几乎可以忽略不计。

胡伟武解释道,二进制翻译硬件支持主要涉及定点运算和访存地址计算,统计数据表明,硬件的开销面积大概增加了 1% 到 2%,而延迟方面的开销几乎没有。

在报告中,胡伟武给这一系列的操作称之为“体系结构翻译”,并作了生动类比。

图 | 语言文化 & 计算机体系结构

他说,我们现在所要达到的效果是语言级翻译,实现难度根据架构而有所不同。

举个例子,将繁体中文翻译成简体中文非常简单,将法文翻译成英文也比较简单,但要把英文翻译成中文相对困难。

技术的发展给二进制翻译带来了新的机遇。第一,硬件资源得到了极大的丰富。晶体管、CPU 性能都出现了过剩的情况。第二,虚拟机技术快速发展。二进制翻译本质上是一种跨指令系统的虚拟机,支持虚拟机的很多基础设施,在二进制翻译体系可以复用。

也许有人会问,二进制翻译固然可以兼容现有的指令集,但会不会存在法律问题呢?

胡伟武认为,目前国际上的确存在不同看法,但美国等发达国家法律普遍认为不构成侵权。历史上,IBM、HP、Intel、Appel、Transmeta、QualComm、NVIDIA 都采用过这个技术来协助推新架构,并且 Transmeta 曾打赢了与 Intel 官司。

在基本谋定了方案之后,龙芯已经开始行动,并已经取得了初步成果。

龙芯的二进制翻译系统名为LAT(Loongson Architecture Translator)。胡伟武为这个系统定了一个 “十九八七” 的预定目标。

图 | LAT“十九八七”规划

胡伟武晒出了一张图表,这张表的唯一变量只有指令体系架构,微结构一模一样。

可以看到,仅更换为 LoongArch 指令架构,处理器的定点性能就提升了 16.6%,浮点性能提升了 9.4%。

图 | LoongArch VS MIPS(SPEC CPU2000 Train 运行时间 FPGA 20MHz)

在 Linux 进程级 MIPS 二进制翻译方面,胡伟武拿出一份专门为本次报告临时跑出的结果,他表示很多软件库还没有完善,优化工作也没有完成。但从结果来看,一两个月能达到这个效果,完成 100% 的预定目标应该不成问题。

图 | Linux 进程级 MIPS 二进制翻译效果(SPEC CPU2000 Train 运行时间 FPGA 20MHz)

Linux 进程级 X86 二进制翻译效果,同样是未完善的数据,可以看到定点性能达到原生的 44.4%,浮点性能达到原生的 58.5%。虽然,相较 QEMU 这个成绩已经非常不错,但离预定目标的 80% 仍有很大差距。

图 | Linux 进程级 X86 二进制翻译效果(SPEC CPU2000 Ref 运行时间 龙芯 3A4000 1.8GHz)

在报告中,胡伟武汇报了目前 LoongArch 指令系统的工作进度。

他表示,目前已完成龙芯 GS132、GS264、GS464 三大系列 IP 核指令系统修改。基于 LoongArch 的某龙芯 CPU 已于 2020Q2 交付流片,预计 2020Q4 样片。

基础软件 OS 方面,已经完成 BIOS、编译器的内核改造,可以在 FPGA 平台上运行 SPEC CPU 等复杂应用;正在开展完整操作系统编译工作;正在开展 Java、JavaScript、.NET 虚拟机迁移工作。

二进制翻译系统 LAT 已基本完成开发,开始调试优化。MIPS 和 X86 用户态二进制翻译持续改进中;X86 系统二进制翻译已经基本跑通,最难的地址翻译已经调通。

以上工作争取在 2020 年底前完成。

报告的末尾,他描绘了 LoongArch 的未来规划。

1. 对 LoongArch 指令系统进行知识产权分析。已委托第三方机构进行,预计 2020 年底完成国内部分,2021 年完成国际部分。

2. 组建自主指令系统联盟。龙芯将把 LoongArch 免费开放,并开放 Cortex-A53 以下性能处理器 IP 核,条件是联盟内企业彼此间不能发生指令系统诉讼,期望最终能够形成对第三方的 CPU 防御联盟。同时,还将尝试在高校推广百条指令左右的 LoongArch 小系统。

此外,龙芯也将持续改进二进制翻译的硬件支持和软件优化,争取在 2025 年消除指令系统间的壁垒,达到 “天下大同” 的境界。

最后,胡伟武总结道,二进制翻译能解决兼容性问题,但要认清它在战略上属于“过渡方案”,它更多地是为新架构铺路,新架构失败了它会消亡,新架构成功了它也会消亡。

知乎网友 maomaobear 表示了对翻译后程序运行效率的担心:“微软的 X86 转 ARM,英特尔的 ARM 转 X86,效率都很低,就苹果做的看起来高一点。”

龙芯内部人士对此回应:“龙芯做指令集研发快 20 年了,能推出完全自主指令集架构,是积累出来的,不是拍脑袋,写论文出来的。”

后来者的宿命

其实,我们不必为 “卡脖子” 感到悲愤。

在电子计算机领域,包括我国在内的绝大多数国家都是“后来者”,纵观其发展史,几乎可以算是一部美国的国内产业史。

第一台真正意义的电子计算机是美国人于 1937 年发明的;“现代计算机之父”冯 · 诺依曼是美国人;集成电路是美国人做出来的;第一款微处理器是 Intel 推出的;互联网是美国人建立的;第一台桌面电脑、操作系统、鼠标、键盘、硬盘等也均由美国人首创……

在这个过程中,美国涌现出了一大批名垂青史的名字。无数的学者、商人、官员和工程师,让美国成为了先行者。拥有了绝对优势的同时,也为后来者们设立了诸多障碍。

这些障碍,我们有的已经跨了过去,比如锂电池隔膜、比如通讯领域的 5G、比如北斗全球定位系统;有的正在跨越,比如本文的 CPU 指令系统。

不过,我们不必急躁,也无须惊慌。我们不是落后于一朝一夕,也不可能一朝一夕便能赶上。

原文标题:丢掉幻想!龙芯中科将推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序

文章出处:【微信公众号:DeepTech深科技】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 龙芯
    +关注

    关注

    3

    文章

    340

    浏览量

    31244

原文标题:丢掉幻想!龙芯中科将推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序

文章出处:【微信号:deeptechchina,微信公众号:deeptechchina】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    特经典搭载龙芯3A6000处理器4U上架式工控机IPC-660推荐

    IPC-660工控机是特智能基于龙芯3A6000处理器研发的通用工控电脑产品。自主指令集LoongAr
    的头像 发表于 12-11 10:43 179次阅读
    <b class='flag-5'>集</b>特经典搭载<b class='flag-5'>龙芯</b>3A6000处理器4U上架式工控机IPC-660推荐

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令集架构。而RISC-V目标就是“成为一种完全开放的指令集架构,可被任何学术机构或商业组织自由使用”。 RISC-V指令集由“基本指令集 + 扩展
    发表于 11-30 23:30

    迅为3A6000_7A2000开发板龙芯全国产处理器与龙芯 3A5000完全兼容

    ,也证明了国内有能力在自研 CPU 架构上做出一流的产品。 龙芯 3A6000 处理器采用龙芯自主指令系统龙架构(LoongArch),是
    发表于 11-19 11:15

    龙芯LS2K1000LA和LS2K1000有何区别?

    计算机处理和寻址速度更加迅速、简单。最早的MIPS架构是32位,目前最新的版本已经发展到64位,即MIPS64架构。MIPS32和MIPS64指令集架构可以无缝兼容。 02LoongArch架构介绍 2020
    发表于 11-14 11:06

    如何部署北斗定位应用,基于国产自主架构LS2K1000LA-i处理器平台

    系统秉持开放理念,倡导和加强多系统兼容共用,提供全球范围内的连续、可靠定位服务,促进国际合作与交流。 图 2 北斗定位系统的应用优势 LoongArch架构优势自主性:完全由龙芯中科
    发表于 10-29 09:52

    迅为3A6000_7A2000核心主板龙芯全国产处理器LoongArch架构

    ,也证明了国内有能力在自研 CPU 架构上做出一流的产品。 龙芯 3A6000 处理器采用龙芯自主指令系统龙架构(LoongArch),是
    发表于 10-12 11:25

    简述微处理器的指令集架构

    微处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中的核心组成部分,它定义了计算机能够执行的指令集合、数据类型、寄存器、内存访问方式等,是连接
    的头像 发表于 10-05 14:59 435次阅读

    RISC-V和arm指令集的对比分析

    RISC-V和ARM指令集是两种不同的计算机指令集架构,它们在多个方面存在显著的差异。以下是对这两种指令集的详细对比分析: 一、设计理念 RISC-V :RISC-V的设计理念是简化指令集
    发表于 09-28 11:05

    RISCV的主流指令集有哪些?

    如题,就像X86中指令集有MMX,SSE,SSE2等,就像ARM指令集有ARM和Thumb等,但是总是感觉RISCV特别乱,可能是厂商比较多的缘故吧,我知道的有WCH的青稞RISC-V,玄铁
    发表于 08-29 13:49

    复杂指令集和精简指令集有什么区别

    复杂指令集(CISC,Complex Instruction Set Computer)和精简指令集(RISC,Reduced Instruction Set Computer)是微处理器设计中
    的头像 发表于 08-22 11:00 3232次阅读

    微处理器的指令集架构介绍

    和执行。指令集架构不仅影响微处理器的性能,还决定了其兼容性、可编程性和应用场景。以下是对微处理器指令集架构的详细探讨,内容将围绕其定义、主要类型、设计原则、应用场景及未来发展等方面展开。
    的头像 发表于 08-22 10:53 1130次阅读

    CISC(复杂指令集)与RISC(精简指令集)的区别  

    Instruction Set Computers,复杂指令集计算)和RISC(Reduced Instruction Set Computers)是两大类 主流的CPU指令集类型,其中CISC以Intel,AMD
    发表于 07-30 17:21

    龙芯中科推出基于龙芯2K0300处理器的触控一体机

    近日,中国自主芯片制造商龙芯中科成功发布了全新的触控一体机,这款设备搭载了高性能的龙芯2K0300嵌入式处理器。该处理器基于完全自主LoongAr
    的头像 发表于 05-13 09:39 745次阅读

    什么是RISC-V?RISC-V指令集的优势

    CPU 支持的所有指令指令的字节级编码就是这个 CPU 的指令集架构(Instruction Set Architecture,ISA),指令集在计算机软件和硬件之间搭起了一座桥梁。
    发表于 03-05 10:31 838次阅读
    什么是RISC-V?RISC-V<b class='flag-5'>指令集</b>的优势

    翼辉信息已正式加入对申威SW64自主指令集架构的支持

    近日,翼辉信息发布了最新的 SylixOS V3.4.0 操作系统。在 SylixOS V3.4.0 中,已正式加入了对申威 SW64 自主指令集架构的支持。
    的头像 发表于 12-28 11:45 3893次阅读
    翼辉信息已正式加入对申威SW64<b class='flag-5'>自主</b><b class='flag-5'>指令集</b>架构的支持