LoongISA(简称LISA)是龙芯中科出品的,通过64位MIPS指令集扩展而来的CPU指令集架构。LoongISA 采用MIPS的指令集格式,包括MIPS64 Release 2全套指令集和MIPS64 Release 5中的部分指令模块,以及其他一系列龙芯中科自主扩展的指令集。LoongISA是龙芯中科的注册商标。

LoongISA
推出年份2015年8月18日,​8年前​(2015-08-18
设计公司龙芯中科
最新架构版本2.0
是否开放架构?
体系结构类型寄存器-寄存器,Load-Store
字长/寄存器资料宽度32位64位
字节序小端序
指令编码长度固定长度
指令集架构设计策略精简指令集(RISC)
扩展指令集MMI
LSX1/2
LASX
LEXT1/2/3
LSPW
LBT1/2/3
LBTMMU
LAMU
LVZP
分支预测结构比较和分支

2021年4月15日,龙芯发布了新指令集架构LoongArch,同年出品了使用该架构的3A5000。此后的龙芯CPU都使用LoongArch,LoongISA进入弃用状态。

版本 编辑

LoongISA 1.0 编辑

LoongISA 1.0正式公开于在2015年8月18日的发布会,和龙芯3A2000GS464ELoongnix一起发布。[1][2][3][4] LoongISA指令系统在MIPS64架构500多条指令基础上,在基础指令、虚拟机指令、面向X86和ARM的二进制翻译指令、向量指令和核心态等多个方面增加了近1400条新指令,[1]其中包括:

  • 148条 LoongEXT 指令
  • 5条 LoongVZ 指令
  • 213条 LoongBT 指令
  • 1014条 LoongSIMD 指令

将 MIPS 原本的527条指令,扩展为1907条。[3]

LoongISA 1.0 里包括 MIPS 部分指令集,其中有 MIPS64 Release 2 全套指令集和 MIPS64 Release 5 中的 MSA 向量指令模块、 DSP 指令模块和 VZ 虚拟化指令模块。

LoongISA 2.0 编辑

LoongISA 2.0是随着龙芯3A/B4000产生的新一代自主指令集,相对于LoongISA 1.0删去了其中的 MIPS DSP 指令集模块,添加了新的 LoongBT 指令集,且一并添加了新的 LoongSX、LoongASX、LoongEXT3、LoongAMO 等指令集。

指令集列表 编辑

LoongISA 指令集组件一览[5][6][7]
指令集全称 指令集简称 指令集描述 LoongISA 1.0
GS464EGS264
LoongISA 2.0
GS464V R2
备注
MIPS部分(MIPS64 R2)[8]
MIPS SIMD Architecture 1.0 MSA 1 MIPS64 可选SIMD模块
MIPS SIMD Architecture 2.0 MSA 2 MIPS64 可选SIMD模块
MIPS Virtualization VZ MIPS64 可选虚拟化模块
MIPS DSP DSP MIPS64 可选DSP模块
MIPS Cryptographic CGP MIPS64 可选密码学指令集
龙芯扩展指令
LoongMMI MMI 龙芯多媒体扩展指令集
LoongCAM LCAMP 硬件查找表功能指令集
LoongEXT 1 EXT 1 龙芯通用扩展指令集 I
LoongEXT 2 EXT 2 龙芯通用扩展指令集 II
LoongEXT 3 EXT 3 龙芯通用扩展指令集 III
LoongVZ LVZP 龙芯虚拟化扩展指令集
LoongSX 1 LSX 1 龙芯向量扩展指令集 I
LoongSX 2 LSX 2 龙芯向量扩展指令集 II
LoongASX LASX 龙芯高级向量扩展指令集
LoongSPW LSPW 龙芯页表遍历扩展指令集
LoongAMO LAMO 龙芯原子访存指令集
LoongBT 1 LBT 1 龙芯二进制翻译加速扩展指令集 I
LoongBT 2 LBT 2 龙芯二进制翻译加速扩展指令集 II
LoongBT 3 LBT 3 龙芯二进制翻译加速扩展指令集 III

指令集 编辑

MIPS部分 编辑

与MIPS的不同点 编辑
浮点标准 编辑

LoongISA 1.0的浮点遵守IEEE754-1989标准,使用Legacy NaN的QNaN/SNaN定义。但是其MADD指令则按IEEE754-2008的Fused MADD标准实现,与MIPS64 Release2不同。[9]

LoongISA 2.0则全部遵循IEEE754-2008标准,使用IEEE754-2008规定的NaN 2008的QNaN/SNaN定义,依照MIPS64 Release 5 实现浮点运算单元。

LoongMMI 编辑

LoongMMILoongMultiMedia extensions Instruction)指令集是龙芯多媒体扩展指令集的英文简称,用于多媒体加速。

LoongEXT 编辑

LoongEXT(简称LEXT)是龙芯通用扩展指令集。LoongEXT现在最新版为3.0,按照指令长度分LoongEXT32LoongEXT64两种类别。LoongEXT指令集已提交了对gcc社区的支持,[10]可在编译中选用此指令集的优化选项。

LoongVZ 编辑

LoongVZ(简称LVZP)是龙芯针对MIPS64 Release 5中的VZ虚拟化模块指令集的扩展,现已在龙芯中科KVMQEMUlibvirt库中有所运用。

参考文献 编辑

  1. ^ 1.0 1.1 梁辰. 龙芯发布新一代处理器 并将进行生态建设_科技_腾讯网. tech.qq.com. [2019-11-17]. (原始内容存档于2019-11-10). 
  2. ^ 上方文Q. 自主指令集!龙芯新架构四核登场:生态丰富. m.mydrivers.com. [2019-11-17]. (原始内容存档于2019-11-10). 
  3. ^ 3.0 3.1 孙武. 龙芯发布新一代四核CPU:自主指令集来了. www.guancha.cn. [2019-11-30]. (原始内容存档于2020-02-04). 
  4. ^ 中国芯暗流涌动,龙芯、飞腾他们都在走什么样的路?. digi.163.com. 2015-10-22 [2019-11-30]. (原始内容存档于2020-02-04). 
  5. ^ 龙芯 3A4000 处理器用户手册 (PDF). [2020-05-05]. (原始内容 (PDF)存档于2020-04-08). 
  6. ^ 龙芯 3A2000/3B2000 处理器用户手册下册 GS464E 处理器核 (PDF). [2020-05-05]. (原始内容存档 (PDF)于2017-06-29). 
  7. ^ 龙芯 GS264 处理器核用户手册 (PDF). [2020-05-05]. (原始内容存档 (PDF)于2019-07-13). 
  8. ^ MIPS Architecture Modules. [2020-05-15]. (原始内容存档于2020-03-02). 
  9. ^ MIPS: math-emu: Add madd/msub/nmadd/nmsub emulation for Loongson-3 - Patchwork. patchwork.kernel.org. [2019-11-30]. 
  10. ^ GNU Binutils 2.32 Branched Ahead Of Release With New Features - Phoronix. www.phoronix.com. [2019-11-26]. (原始内容存档于2020-09-19). 

参见 编辑

外部链接 编辑