推出年份 | 2020年8月13日 |
---|---|
设计公司 | 龙芯中科 |
是否开放架构? | 是(仅限LA Primary) |
体系结构类型 | 寄存器-寄存器,Load-Store |
字长/寄存器资料宽度 | 32位、64位 |
字节序 | 小端序 |
指令集架构设计策略 | 精简指令集(RISC) |
扩展指令集 | LSX1/2 LASX LBT1/2/3 LVZ |
分支预测结构 | 比较和分支 |
通用寄存器 | 32 |
龙芯架构,简称龙架构,英文名为LoongArch,是一个龙芯中科研发的指令集架构。该架构包含了架构翻译(Architecture Translate)的指令子集,可在软硬配合下高效率翻译诸如x86-64、ARM架构、MIPS架构、RISC-V架构等指令集架构。其拥有基础指令 337 条、虚拟机扩展 10 条、二进制翻译扩展 176 条、128 位向量扩展 1024 条、256 位向量扩展 1018 条,共计 2565 条原生指令。[1][2]
2020年8月13日,龙芯中科董事长胡伟武在视频会议上首次公开介绍了龙芯架构。2021年4月15日,LoongArch在2021年山西信息技术应用创新论坛主论坛上正式对外发布。[3][4]2021年4月30日,LoongArch32和LoongArch64基本指令集手册正式公布。[5]
设计
设计理念
龙芯架构为32位定长RISC指令集,32个通用寄存器、32个浮点/向量寄存器,LoongArch可用的格式多达10种 ,其包含3种无立即数格式和7种有立即数格式。相对于MIPS,摒弃部分不适合现代CPU的指令,做了改进和扩展,例如单条指令支持的立即数从MIPS的最大16位扩展到最大24位,分支跳转偏移也从64KiB扩展到1MiB字节,以及寻址空间从固定分段改变为单一平面等,有效减少编译结果的目标指令条数和访存次数,提高了性能。[1][2]
指令格式
类型 | 位 | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
无立即数 | rj (5) | rd (5) | ||||||||||||||||||||||||||||||
rk (5) | rj (5) | rd (5) | ||||||||||||||||||||||||||||||
fa (5) | fk (5) | rj (5) | rd (5) | |||||||||||||||||||||||||||||
有立即数 | immediate (6) | rj (5) | rd (5) | |||||||||||||||||||||||||||||
immediate (8) | rj (5) | rd (5) | ||||||||||||||||||||||||||||||
immediate (12) | rj (5) | rd (5) | ||||||||||||||||||||||||||||||
immediate (14) | rj (5) | rd (5) | ||||||||||||||||||||||||||||||
immediate (16) | rj (5) | rd (5) | ||||||||||||||||||||||||||||||
immediate [15:0] | rj (5) | immediate [20:16] | ||||||||||||||||||||||||||||||
immediate [15:0] | immediate [24:16] |
指令子集
指令集名称 | 描述 | 指令数量 |
---|---|---|
基本指令集 | ||
LoongArch64 | 64位基础指令 | 337 条 |
LoongArch32 | 32位基础指令 | |
LoongArch
Primary |
32位精简指令 | 79 条 |
扩展指令子集 | ||
LSX | 128位向量扩展 | 1024 条 |
LASX | 256位向量扩展 | 1018 条 |
LBT | 二进制翻译扩展 | 176 条 |
LVZ | 虚拟机扩展 | 10 条 |
指令集架构和微架构实现特点
寄存器集中包含RISC所具备的0号寄存器。[1]整体上,LoongArch64是MIPS64R6和RISC64GC的超集,且原生上兼容RISC64的用户态指令。
业界采纳
龙芯中科根据龙芯架构推出企业标准《龙芯 CPU 统一系统架构规范》(企业标准号:Q/LS 0046)
ELF规范管理方SCO接纳龙芯架构为“EM_LOONGARCH”。[6]
Linux 5.19初次合并LoongArch CPU支持。[7]并将平台名称设定为“loongarch64”。
UEFI Forum在UEFI 2.10及ACPI 6.5合并对于龙芯架构的支持。[8]
SMBIOS 3.6作为另一个重要的固件标准更新提供龙芯架构支持。[9]
QEMU 7.1添加对于LoongArch64支持,提供一个参考Loongson 3A3000和Loongson 7A1000的模拟器。[10]
纠纷
2021年6月2日,MIPS中国代理商上海芯联芯发布公告,称LoongArch或与其所拥有的MIPS专利存在知识产权侵权,在香港启动仲裁审理。[11][12]
参见
参考资料
- ↑ 1.0 1.1 1.2 guee. 如何看待龙芯对外公开的 LoongArch 指令集?. 2020-08-21 [2020-10-11].
- ↑ 2.0 2.1 maomaobear. 龙芯放弃MIPS指令集就能实现自主可控吗?. 2020-08-18 11:30:34 [2020-10-11].
- ↑ 自主需要从根--龙芯中科正式发布完全自主指令集架构LoongArch. 2021-04-16 17:15:31 [2021-06-07].
- ↑ IT之家. 龙芯3A5000国产CPU即将发布:基于完全自主指令系统架构LoongArch. 2021-04-22 12:20:13 [2021-06-07].
- ↑ 龙芯正式发布LoongArch指令系统手册. 2021年4月30日 20:50:26 [2021-06-07].
- ↑ ELF Header.
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c6f2f3e2c80e975804360665d973211e4d9390cb. 缺少或
|title=
为空 (帮助) - ↑ UEFI FORUM RELEASES THE UEFI 2.10 SPECIFICATION AND THE ACPI 6.5 SPECIFICATION.
- ↑ DMTF Releases SMBIOS 3.6.
- ↑ QEMU 7.1 changlog.
- ↑ 龙芯中科LoongArch或存知识产权侵权风险 芯联芯称已对其提起仲裁_腾讯新闻. new.qq.com. [2021-06-07].
- ↑ 龙芯中科LoongArch或存知识产权侵权风险被提起仲裁_财经_澎湃新闻-The Paper. 澎湃新闻. [2021-06-07].
外部链接
- 丢掉幻想!龙芯中科将推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序. 《麻省理工科技评论》中文网. [2020-10-18].