LoongISA(簡稱LISA)是龍芯中科出品的,通過64位元MIPS指令集擴充而來的CPU指令集架構。LoongISA 採用MIPS的指令集格式,包括MIPS64 Release 2全套指令集和MIPS64 Release 5中的部分指令模組,以及其他一系列龍芯中科自主擴充的指令集。LoongISA是龍芯中科的註冊商標。

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
分支預測結構比較和分支

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). 

參見

外部連結