LoongISA
此條目需要精通或熟悉相關主題的編者參與及協助編輯。 |
LoongISA(簡稱LISA)是龍芯中科出品的,通過64位元MIPS指令集擴充而來的CPU指令集架構。LoongISA 採用MIPS的指令集格式,包括MIPS64 Release 2全套指令集和MIPS64 Release 5中的部分指令模組,以及其他一系列龍芯中科自主擴充的指令集。LoongISA是龍芯中科的註冊商標。
推出年份 | 2015年8月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日的釋出會,和龍芯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 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 | 無 | 有 |
指令集
此章節需要擴充。 (2019年12月1日) |
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庫中有所運用。
參考文獻
- ^ 1.0 1.1 梁辰. 龙芯发布新一代处理器 并将进行生态建设_科技_腾讯网. tech.qq.com. [2019-11-17]. (原始內容存檔於2019-11-10).
- ^ 上方文Q. 自主指令集!龙芯新架构四核登场:生态丰富. m.mydrivers.com. [2019-11-17]. (原始內容存檔於2019-11-10).
- ^ 3.0 3.1 孫武. 龙芯发布新一代四核CPU:自主指令集来了. www.guancha.cn. [2019-11-30]. (原始內容存檔於2020-02-04).
- ^ 中国芯暗流涌动,龙芯、飞腾他们都在走什么样的路?. digi.163.com. 2015-10-22 [2019-11-30]. (原始內容存檔於2020-02-04).
- ^ 龙芯 3A4000 处理器用户手册 (PDF). [2020-05-05]. (原始內容 (PDF)存檔於2020-04-08).
- ^ 龙芯 3A2000/3B2000 处理器用户手册下册 GS464E 处理器核 (PDF). [2020-05-05]. (原始內容存檔 (PDF)於2017-06-29).
- ^ 龙芯 GS264 处理器核用户手册 (PDF). [2020-05-05]. (原始內容存檔 (PDF)於2019-07-13).
- ^ MIPS Architecture Modules. [2020-05-15]. (原始內容存檔於2020-03-02).
- ^ MIPS: math-emu: Add madd/msub/nmadd/nmsub emulation for Loongson-3 - Patchwork. patchwork.kernel.org. [2019-11-30].
- ^ GNU Binutils 2.32 Branched Ahead Of Release With New Features - Phoronix. www.phoronix.com. [2019-11-26]. (原始內容存檔於2020-09-19).