1.3 龙芯系列处理器和龙芯架构介绍
1.3.1 龙芯系列处理器
龙芯中科技术股份有限公司(简称龙芯中科)从成立至今共开发了龙芯1号系列、龙芯2号系列、龙芯3号系列处理器及桥片等配套芯片。龙芯1号系列为低功耗、低成本专用嵌入式SoC或MCU处理器,通常集成1个32位低功耗处理器核,应用场景面向嵌入式专用应用领域,如物联终端、仪器设备、数据采集等;龙芯2号系列为低功耗通用处理器,采用单芯片SoC设计,通常集成1~4个64位低功耗处理器核,应用场景面向工业控制与终端等领域,如网络设备、行业终端、智能制造等;龙芯3号系列为高性能通用处理器,通常集成4个及以上64位高性能处理器核,与桥片配套使用,应用场景面向桌面和服务器等信息化领域。
龙芯3A5000/3B5000是面向个人计算机、服务器等信息化领域的通用处理器,基于龙芯自主指令系统(LoongArch)的LA464微结构,并进一步提升频率,降低功耗,优化性能。在与龙芯3A4000处理器保持引脚兼容的基础上,频率提升至2.5GHz,功耗降低30%以上,性能提升50%以上。龙芯3B5000在龙芯3A5000的基础上支持多路互连。龙芯3C5000是龙芯中科面向服务器领域的通用处理器,片上集成16个高性能LA464处理器核。表1-1中列举了龙芯3A5000/3B5000的关键产品参数。
表1-1 龙芯3A5000/3B5000的关键产品参数
1.3.2 龙芯自主指令系统
2021年,龙芯中科基于20年的CPU研制和生态建设积累,正式对外发布了龙芯自主指令系统(LoongArch)。指令系统由龙芯基础指令系统(Loongson Base)、二进制翻译扩展(Loongson Binary Translation, LBT)、虚拟化扩展(Loongson Virtualization, LVZ)、向量扩展和高级向量扩展共5部分组成,近2000条指令,它们之间的关系如图1-3所示。
龙芯基础指令系统定义了常用的整数和浮点数指令,用于支持原有各主流编译系统生成高效的目标代码。LVZ部分的指令集用于为操作系统虚拟化提供硬件加速以提升性能。LBT部分的指令集用于提升跨指令系统二进制翻译在龙芯架构平台上的执行效率。LSX和LASX两部分均用于加速计算密集型应用,区别在于LSX操作的向量位宽为128位,而LASX操作的向量位宽为256位。
龙芯架构分为32位(称为LA32架构)和64位(称为LA64架构)两个版本,分别用于龙芯寄存器位宽是32位和64位的处理器上。LA64架构应用级向下二进制兼容LA32架构。即采用LA32架构的应用软件的二进制可以直接运行在LA64架构的机器上并能获得同样的运行结果。但
图1-3 龙芯自主指令系统
在兼容LA32架构的机器上运行的系统软件(例如操作系统内核)的二进制直接在兼容LA64架构的机器上运行时,并不能保证总能获得相同的运行结果。
龙芯指令系统从整个架构的顶层规划,到各部分的功能定义,再到细节上每条指令的编码、名称、含义,在架构上进行自主重新设计,具有充分的自主性。同时,龙芯指令系统摒弃了传统指令系统中部分不适应当前软硬件设计技术发展趋势的陈旧内容,吸纳了近年来指令系统设计领域诸多先进的技术发展成果。同原有兼容指令系统相比,不仅在硬件方面更易于高性能低功耗设计,而且在软件方面更易于编译优化和操作系统、虚拟机的开发。
本书介绍了龙芯基础指令集,包括指令类型、指令使用方法、指令使用场景等。书中常出现的LoongArch也特指龙芯基础指令集。