LoongArch

LoongArch，简称LA，是一个龙芯中科研发的指令集架构。该架构包含了架构翻译（Architecture Translate）的指令子集，可在软硬配合下高效率翻译诸如x86-64、ARM架构、MIPS架构、RISC-V架构等指令集架构。其拥有基础指令337条、虚拟机扩展10条、二进制翻译扩展176条、128位向量扩展1024条、256 位向量扩展1018条，共计2565条原生指令。

2020年8月13日，龙芯中科董事長胡伟武在视频会议上首次公开介绍了LoongArch。2021年4月15日，LoongArch在2021年山西信息技术应用创新论坛主论坛上正式对外发布。2021年4月30日，LoongArch32和LoongArch64基本指令集手册正式公布。

 设计 

 设计理念 
LoongArch为32位定长RISC指令集，具有32个通用寄存器、32个浮点/向量寄存器，LoongArch可用的格式多达10种 ，其包含3种无立即数格式和7种有立即数格式。相对于MIPS，摒弃部分不适合现代CPU的指令，做了改进和扩展，例如单条指令支持的立即数从MIPS的最大16位扩展到最大24位，分支跳转偏移也从64KiB扩展到1MiB字节，以及寻址空间从固定分段改变为单一平面等，有效减少编译结果的目标指令条数和访存次数，提高了效能。

 指令格式 
类型位313029282726252423222120191817161514131211109876543210无立即数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（LA64）64位基础指令337 条LoongArch32S（LA32S）32位基础指令LoongArch32R（LA32R）32位精简指令79 条扩展指令子集LSX128位向量扩展1024 条LASX256位向量扩展1018 条LBT二进制翻译扩展176 条LVZ虚拟机扩展10 条

 指令集架构和微架构实现特点 
寄存器集中包含RISC所具备的0号寄存器。

 纠纷 
2021年6月2日，上海芯联芯发布公告，称LoongArch或与其所拥有的MIPS专利存在知识产权侵权，在香港国际仲裁中心发起仲裁诉讼。之后双方在广州、上海、北京多地知识产权法院提起诉讼。2023年2月，北京知识产权法院审理认为龙芯未侵权，但芯联芯称结果暂无法律效力。2023年6月25日，香港仲裁结果公布，芯联芯提出的7项仲裁主张中有6项被驳回，1项（少报版税）被判定为尚待解决事项，本次仲裁不会对龙芯中科技术方面产生重大不利影响。

 參見 

龍芯
龍芯中科
精簡指令集

 參考資料 

 外部連結 

 xianyi/OpenBLAS / kernel/loongarch64 : LSX/LASX 汇编在龙芯OpenBLAS实现中的例子，由"Robin" 发现

Category:2020年建立的程式語言

Category:2020年建立的程式語言
Category:指令集架構
Category:龙芯
Category:龙芯