龙芯架构

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻
龙芯架构
推出年份2020年8月13日,​3年前​(2020-08-13
设计公司龙芯中科
是否开放架构?是(仅限LA Primary)
体系结构类型寄存器-寄存器,Load-Store
字长/寄存器资料宽度32位64位
字节序小端序
指令集架构设计策略精简指令集(RISC)
扩展指令集LSX1/2
LASX
LBT1/2/3
LVZ
分支预测结构比较和分支
通用寄存器32

龙芯架构,简称龙架构,英文名为LoongArch,是一个龙芯中科研发的指令集架构。该架构包含了架构翻译(Architecture Translate)的指令子集,可在软硬配合下高效率翻译诸如x86-64ARM架构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]

参见

参考资料

外部链接