2.3. 龙芯系列处理器和龙芯架构介绍
2.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的主要产品参数。
产品参数 |
简要说明 |
|---|---|
主频 |
2.3GHz ~ 2.5GHz |
核心个数 |
4 |
峰值运算速度 |
160GFlops |
处理器核 |
支持LoongArch®指令系统;支持128/256位向量指令;四发射乱序执行;4个定点单元、2个向量单元和2个访存单元 |
高速缓存 |
每个处理器核包含64KB私有一级指令缓存和64KB私有一级数据缓存;每个处理器核包含256KB私有二级缓存;所有处理器核共享16MB三级缓存 |
内存控制器 |
2个72位DDR4-3200控制器;支持ECC校验 |
高速I/O |
2个HyperTransport3.0控制器;支持多处理器数据一致性互连(CC-NUMA) |
其它I/O |
1个SPI、1个UART、2个I2C、16个GPIO接口 |
功耗管理 |
支持主要模块时钟动态关闭;支持主要时钟域动态变频;支持主电压域动态调压 |
典型功耗 |
35W@2.5GHz |
2.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位版本和64位版本,分别称为LA32架构和LA64架构,对应寄存器位宽为32位和64位的龙芯处理器。LA64架构在应用级向下二进制兼容LA32架构,也就是说,面向LA32架构的应用程序二进制可以直接运行在LA64架构机器上,并得到相同运行结果。但系统软件二进制(例如操作系统内核)若原本运行在兼容LA32架构的机器上,直接迁移到兼容LA64架构的机器时,并不能保证始终得到相同结果。
从顶层架构规划,到各组成部分的功能定义,再到每条指令的编码、名称和语义,龙芯指令系统都进行了自主重新设计,具备充分自主性。同时,它舍弃了传统指令系统中部分不适应当前软硬件发展趋势的内容,并吸收了近年来指令系统设计领域的多项成果。与原有兼容指令系统相比,龙芯指令系统不仅更有利于硬件实现高性能和低功耗,也更便于软件侧开展编译优化、操作系统开发和虚拟机开发。
本书重点介绍龙芯基础指令集,内容包括指令类型、指令用法和典型使用场景等。书中在相关上下文中出现的LoongArch,通常也特指龙芯基础指令集。