在龙芯中科的官方网站上,现在已经提供《龙芯架构参考手册(卷一:基础架构)》和《龙芯架构32位精简版参考手册》的下载。在官网上点开“龙芯产品-下载中心”即可找到下载链接。
龙芯中科不是国内第一家自主设计CPU指令集的,但龙芯中科是第一家公开提供指令集参考手册下载的,这说明龙芯自主设计的指令集确实已经通过了严苛的知识产权评估,不存在任何的侵权成分。无论是Intel的还是MIPS或ARM的指令集手册,无疑都是用英文编写,这是我第一次见到CPU设计企业用中文编写指令集手册,不管能不看懂,至少每个字都认识,特别有亲切感。
虽然指令集手册是用中文编写的,但指令助记符肯定还是英文字母,中文编程的鼓吹者还请口下留德。毕竟英文字母只有26个,对于任何人都没有学习障碍,敲三四个字母表示一个指令,要比敲三四个汉字快速得多。指令助记符格式主要包括指令名和操作数两部分,龙芯架构对指令名和操作数的前、后缀进行了统一考虑,以方便汇编编程人员和编译器开发人员的使用。
龙芯架构采用基础部分(Loongson Base)加扩展部分的组织形式,其扩展部分包括:
二进制翻译扩展(Loongson Binary Translation,简称LBT);虚拟化扩展(Loongson Virtualization,简称LVA);向量扩展(Loongson SIMD Extension,简称LSX);高级向量扩展(Loongson Advanced SIMD Extension,简称LASX)。
当前公开的只有“基础架构”部分,含32位(LA32)和64位(LA64)基础指令说明。其向量扩展、虚拟化和二进制翻译扩展的手册还需要再等待一段时间。同时公开的还有“32位精简版”,是对LA32的基础部分的进一步简化,目的是易于实现,方便在教学和科研领域推广使用。
我个人觉得龙芯架构的存储管理最有特色,与其它架构不同的是,它提供了对内存虚实地址映射的翻译,提高了以二进制翻译方式运行其它架构的应用程序时,从虚拟地址转换到物理地址的效率,也就是与原生架构有相近的内存访问效率。QEMU等纯软件的二进制翻译,把进程的虚拟地址映射到物理地址至少需要十几条指令进行计算,LoongArch的LBT则只需要2条指令,由于访问内存本身就需要数十个CPU周期,因此可以认为使用LBT时只会降低几十分之一的内存访问效率。
暂时就写到这里,我得去详细看看这本指令集手册了,毕竟里面没有不认识的字,看的时候不需要翻译软件和词典的辅助,大幅度地提高了阅读效率!!!