龙芯的指令集
龙芯处理器——指令集CISC指令集的每个指令可执行若干低阶操作。诸如从内存读取、储存、和计算操作,全部集于单一指令之中,指令数目多而复杂,指令编码格式混乱,导致编码器复杂,流水线设计较为困难,指令不定长也带来指令对齐方面的额外挑战,因此付出了性能的代价。CISC指令集经典代表:X86。RISC指令集对指令数目和寻址方式都做了精简,固定指令长度,统一指令编码格式,加速常用指令,流水线设计更容易,因此效率也更高。有一段时间,因为RISC的高效率,Intel在发展CISC产品线的同时,也不得不研发了RISC处理器。RISC指令集典型代表:Alpha、MIPS。CISC和RISC与在竞争的过程中相互学习、取长补短,CISC指令集在解码阶段上实现向RISC类指令的转化,将后端流水线转换成类RISC的形式。而随着技术发展,RISC指令集也达到数百条甚至上千条,在指令集上殊途同归了。
龙芯处理器——指令集从国外购买指令集授权的话,不仅要支付一笔授权费,而且授权到期要再购买一次,外商每一次更新指令集还要再购买一次。另外,还会受到很多限制,比如不具备发展权,不能扩展指令集,只能按照国外巨头的划定路线图走,跟在身后亦步亦趋。龙芯选择兼容MIPS,一方面是因为课题组当时只有10余名成员,人力财力精力有限。另一方面,龙芯自己定义一套指令集技术上没有难度,但是无法兼容现有的计算机体系。龙芯走兼容MIPS指令集发展路线,在2008年金融危机后,以比较低的价格购买了MIPS指令的永久授权,在十几年的发展中对指令集进行了相当大的扩展。逐渐发展出了自己的指令集loongISA,loongISA指令集共1907条指令。
龙芯处理器——指令集2021年,拥有MIPS指令集的WaveComputing转投RISC-V阵营的消息引发关注。2021年,MIPS生态的重要维护者龙芯也放弃MIPS指令系统,发布了完全自主指令集架构LoongsonArchitecture,简称龙芯架构或LoongArch,逐渐发展出了自己的指令集loongISA,loongISA指令集共1907条指令。LoongArch在指令系统设计、指令格式、指令编码、寻址模式等方面进行了自主设计。LoongArch指令系统手册在章节结构、指令说明结构和指令内容表达方面与上述国际上主要指令系统存在明显区别。LoongArch基础架构未发现对国际主要指令系统存在侵权风险。(自主创新的重要性,打破软件生态发展受制于人的锁链)