| 此條目需要 精通或熟悉相关主题的编者参与及协助编辑。 請邀請適合的人士改善本条目。更多的細節與詳情請參见討論頁。 |
LoongISA |
推出年份 | 2015年8月18日,9年前(2015-08-18) |
---|
設計公司 | 龙芯中科 |
---|
最新架構版本 | 2.0 |
---|
是否開放架構? | 否 |
---|
體系結構類型 | 寄存器-寄存器,Load-Store |
---|
字長/暫存器資料寬度 | 32位、64位 |
---|
位元組序 | 小端序 |
---|
指令編碼長度 | 固定長度 |
---|
指令集架構設計策略 | 精簡指令集(RISC) |
---|
擴展指令集 | MMI LSX1/2 LASX LEXT1/2/3 LSPW LBT1/2/3 LBTMMU LAMU LVZP |
---|
分支預測結構 | 比較和分支 |
---|
LoongISA(简称LISA)是龙芯中科出品的,通过64位MIPS指令集扩展而来的CPU指令集架构。LoongISA 采用MIPS的指令集格式,包括MIPS64 Release 2全套指令集和MIPS64 Release 5中的部分指令模块,以及其他一系列龙芯中科自主扩展的指令集。LoongISA是龙芯中科的注册商标。
2021年4月15日,龙芯发布了新指令集架构LoongArch,同年出品了使用该架构的3A5000。此后的龙芯CPU都使用LoongArch,LoongISA进入弃用状态。
版本
LoongISA 1.0
LoongISA 1.0正式公开于在2015年8月18日的发布会,和龙芯3A2000、GS464E、Loongnix一起发布。[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 GS464E、GS264
|
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
LoongMMI(LoongMultiMedia extensions Instruction)指令集是龙芯多媒体扩展指令集的英文简称,用于多媒体加速。
LoongEXT
LoongEXT(简称LEXT)是龙芯通用扩展指令集。LoongEXT现在最新版为3.0,按照指令长度分LoongEXT32和LoongEXT64两种类别。LoongEXT指令集已提交了对gcc社区的支持,[10]可在编译中选用此指令集的优化选项。
LoongVZ
LoongVZ(简称LVZP)是龙芯针对MIPS64 Release 5中的VZ虚拟化模块指令集的扩展,现已在龙芯中科的KVM、QEMU和libvirt库中有所运用。
参考文献
参见
外部链接