跳到主要内容

1. RISC-V介绍

经过多番查阅,我们发现网络上和各类书籍中对RISC-V的介绍有许多,但当我们看到倪光南院士对RISC-V的描述后,觉得将倪院士的话搬到此处恰到好处:

近年来,国际上一种新兴的开源精简指令集架构CPU(RISC-V),为全球芯片产业创新发展提供了新的机遇。RISC-V架构由美国加州大学伯克利分校计算机科学部门于2010年发布,它们创造了一种通用的计算机芯片指令集,以此来降低进入芯片行业的门槛。RISC-V采取开源模式,这套指令集将被所有芯片制造商所使用,而不属于任何公司。用户可自由免费地使用该架构进行CPU设计、开发并添加自有指令集进行拓展,自主选择是否公开发行、商业销售、更换其他许可协议,或完全闭源使用。

现在,国际上围绕RISC-V的学术交流、产品发布、应用示范、生态建设等活动越来越兴旺,RISC-V已成为当前芯片业界的“新宠”。正如该架构的领军人物DavidPatterson教授所说:“技术创新正在兴起,创新的潜力永远存在”。最近RISC-V被《MIT科技评论》评选为2023年“全球十大突破性技术”,评价为:“芯片设计正走向开放,灵活,开源的RISC-V有望成为改变一切的芯片设计”。

开源RISC-V的出现顺应未来新一代信息技术的需求,其精简指令集符合CPU架构发展趋势,它所采用的开源模式也符合科学开放精神,大大降低了芯片产业门槛,人才培养便捷,研发周期缩短,这些都使其后续发展具备强大生命力。为了更好地顺应时代发展需求,我们希望更多的人了解并加入RISC-V开源队伍。

RISC-V其设计旨在成为一种通用的指令集架构,可以应用于广泛的计算机系统,包括嵌入式设备、个人电脑、服务器、边缘计算及人工智能等领域。RISC-V架构采用了基于定长指令(Fixed-length instruction)和模块化设计方案。具体来说,RISC-V的指令长度为32位,在指令长度相同的前提下,RISC-V的指令数量比ARM、x86等指令集更少,使得其指令执行效率更高。此外,RISC-V采用了模块化的设计方案,即架构分层,并且每一层都具有可扩展性。这种设计方案可以帮助RISC-V架构更好地适应未来的技术发展和用户需求。

RISC-V指令集被分为了基本指令集(Base Instruction Set)和标准扩展指令集(Standard Extension)。基本指令集包括RV32I、RV64I和RV128I,其中RV32I是32位体系结构、RV64I是64位体系结构、RV128I是128位体系结构。标准扩展指令集包括多种扩展指令集,例如增强型浮点指令集(RV32F/RV64F)、向量指令集(RV32V/RV64V)等,可以使RISC-V架构更好地满足不同应用场景下的需求。

RISC-V体系结构具有如下特点。

  • 对所有人完全开放;
  • 通用的指令集体系结构;
  • 在基础指令集基础上,支持多种可选扩展指令集;
  • 支持32位及64位地址空间;
  • 支持多核多簇;
  • 支持Hypervisor扩展;
  • 支持IEEE 754浮点标准;
  • 支持可伸缩矢量指令扩展(RVV)。

1.1 RISC-V的发展历史

经过RISC-V初始团队的努力,RISC-V架构于2014年正式对外公开,并成立了RISC-V基金会,旨在促进RISC-V架构的发展和推广。

RISC-V基金会成立后,迅速推动了RISC-V架构的标准化工作。2015年,基金会发布了第一个稳定版本的RISC-V指令集架构,即RISC-V v2.0。这个版本为32位和64位的RISC-V架构定义了基本的指令集,并概述了未来的扩展指令集。

此后,RISC-V基金会不断发布新的版本和扩展指令集,如RISC-V v2.1和RISC-V v2.2,增加了对64位体系结构和向量指令集的支持,以及对安全扩展指令集的规范。

RISC-V架构凭借其开源、灵活、高性能和低功耗等优势,在市场上展现出了强劲的增长势头。根据SHD Group的调研报告,RISC-V相关SoC芯片产品在全球市场的营收持续增长,预计到2030年,RISC-V全球市场规模将达到927亿美元。此外,RISC-V在AI加速器领域的出货量也将大幅增长,预计到2030年将达到41亿颗。

1.2 RISC-V在中国的发展

中国市场在RISC-V架构的发展中扮演了重要角色。中国企业广泛参与了RISC-V标准的建设,并在RISC-V基金会中拥有较大影响力。中国市场规模全球领先,根据RISC-V数据,在过去几年里,全球RISC-V架构芯片的出货量中国占50%以上的份额。

在RISC-V的应用方面,中企业国也展现出了强大的实力。例如,进迭时空等企业已经将RISC-V芯片产品应用于AI终端、AI计算等多个领域。从另一方面来说,为面对美国的限制和打压,RISC-V成为中国企业成功打破芯片架构技术垄断的关键之一。

1.3 RISC-V的基本概念

1.3.1 执行环境接口

执行环境接口( Execution Environment Interface EEI)是RISC-V定义处理器和操作系统之间的交互方式,它规定了如何加载和执行RISC-V二进制代码,以及如何访问控制和系统资源。

1.3.2 指令集分类

  • Privileged Architecture (特权指令) 用于操作系统内核和处理器之间的交互,定义了一组特权指令和异常处理机制。

  • User Level ISA (用户指令) 用于应用程序和处理器之间的交互,定义了一组用户态指令和系统调用指令。

  • Memory Model (内存指令) 用于定义内存一致性和原子访问操作等方面的指令。

1.3.3 调用规范

  • ABI介绍

    ABI全称“Application Binary Interface”(二进制应用程序接口),ABI是一个约定接口,ABI用于规范应用层之间的调用关系:比如函数调用,动态库调用,ABI一般是由硬件平台、操作系统、编译器、开发者多方共同进行约定的,在编译应用程序时编译器会遵守目标平台的ABI约定来生成对应的汇编代码。

    简单点来说就是编译器会遵守目标平台的ABI规则来规范函数调用时的堆栈保护,参数传递使用寄存器,返回值使用寄存器等。

    ABI保证了二进制应用程序之间的互通性,例如JAVA程序可以去调用C语言程序,Python可以调用C++程序,亦或者JAVASCRITE调用C语言程序。因为ABI保证了每个语言之间的函数调用时的统一性,例如A语言的函数调用时参数传递使用的是寄存器,而B语言使用的是堆栈,那么两个语言编译出来的程序是不能相互调用二进制接口的,因为它们的函数约定不同在调用时会出现异常情况。

    所有应用程序遵守ABI所定制的函数调用约定有了统一性那么相互之间就可以调用。

  • SBI介绍

    SBI全称“Supervisor Binary Interface”(超级用户二进制接口),SBI是RISC-V架构的一个重要组成部分,它是RISC-V特有的服务,它用于规定低级特权模式向高级特权模式访问的规范,与ABI类似,在RISC-V中ABI规范了应用层的编程规范,而SBI规范了应用层向内核或内核向固件之间调用的二进制接口规范。

    SBI限定了不同特权模式下对寄存器、某些地址的访问、禁止对某些中断的操作,这样做的目的可以有效将不同特权完全分隔开,可以保证安全性。

2. 进迭时空在RISC-V上的布局

进迭时空是一家基于新一代RISC-V架构的计算生态企业,布局高性能RISC-V CPU核、AI-CPU核、AI CPU芯片、软件系统等全栈计算技术,提供端到端的计算系统解决方案。秉持进取不息、迭代不止的创业心态,致力于以 RISC-V AI CPU构建面向大模型新AI时代的最佳原生计算平台,助力AI计算机、AI机器人等新应用的发展。

2.1 SpacemiT X60智算核

SpacemiT X60智算核是一款先进的多核多簇RISC-V RVA22处理器,打在RISC-V Vector1.0向量扩展及SpacemiT IME智算扩展技术,转为边缘泛AI应用进行了优化设计。

SpacemiT X60智算核能够有效满足现代边缘计算设备对低能耗和高算力的双重需求,也非常适合在边缘设备功耗预算内需要高单核性能、高数据吞吐量的应用场景,包括单板计算机(SBC)、存储服务器、工业控制和机器人等。

X60 支持特性如下:

  • RV64 指令集,符合 Profile RVA22标准;
  • 符合RISC-V IME扩展的2 TOPs@INT8 AI算力;
  • 支持RVV 1.0向量标准,提供256-bit的向量计算带宽;
  • 支持RV debug调试标准
  • 支持一致性多核多簇扩展,单簇支持4核

基于SpacemiT X60智算核,进迭时空发布了SpacemiT Key stone® K1处理器,以及基于K1的MUSE系列生态产品:笔记本电脑(MUSE Book)、平板(MUSE Paper)、开发板(MUSE Pi)、开发者服务器(MUSE Shelf)

2.1.1 K1处理器的融合AI算力

K1处理器采用了更先进的,由通用Edge处理器融合2.0TOPs NPU算力的设计,无缝运行从AlexNet到Llama-2-7b的所有AI算法。相比于传统NPU技术路线,其他优势包括:

  • 凭借CPU灵活高效的编程模型,实现与所有主流AI生态的无缝对接;
  • 依托CPU的成熟安全机制,确保AI计算涉及敏感数据的安全;
  • 将整个AI应用涉及的计算步骤全部迁移到CPU上,避免在多个硬件设备上开发和调试;
  • 算法执行精度不丢失,算力利用效率优秀。
图1:X60融合AI算力框架

2.2 Spacemit X100高性能核

Spacemit X100高性能核是进迭时空的第二代RISC-V核,X100是一款面向服务器CPU芯片研发的RISC-V高性能核,采用4发射乱序架构,通用计算性能Coremark达到7.7/MHz,Spec2006超过8.2/GHz,在12nm工艺下频率可达到2.5GHz,各项指标均超过设计预期。

X100 支持特性如下:

  • RV64指令集,符合Profile RVA23标准;

  • 支持RVV 1.0向量标准,VLEN=256,支持RV vector crypto扩展;

  • 支持RVH虚拟化标准,支持AIA先进中断标准;

  • 支持安全特性,支持硬件抵抗幽灵、熔断等攻击手段;

  • 支持RAS扩展,符合RV RERI标准;

  • 支持RV debug调试标准,支持RV N-Trace追踪标准;

  • 支持一致性多核多簇扩展,单簇支持4核,簇原生支持CHI接口,典型场景下最大支持64核互联。

基于Spacemit X100高性能核,进迭时空V100服务器芯片原型系统成功运行KVM虚拟机及GuestOS,目前此系统可以成功运行OpenEuler操作系统及KVM虚拟机与GuestOS,这为进迭时空的RISC-V服务器CPU软硬件研发奠定了良好的基础。

图2:X100多核系统框架

3. 香山RISC-V处理器

2019 年,在中国科学院支持下,由中国科学院计算技术研究所牵头发起“香山”高性能开源 RISC-V 处理器项目,研发出目前国际上性能最高的开源高性能RISC-V处理器核“香山”,在全球最大的开源项目托管平台 GitHub 上获得超过 2500 个星标(Star),形成超过 277 个分支(Fork),成为国际上最受关注的开源硬件项目之一,得到国内外企业的积极支持——16 家企业联合发起开源芯片创新联合体,围绕“香山”进一步联合开发,形成示范应用,加速 RISC-V 生态建设。

香山的目标是成为面向世界的体系结构创新开源平台,服务于工业界、学术界、个人爱好者等的体系结构研究需求。此外,我们希望在香山的开发过程中,探索高性能处理器的敏捷开发流程,建立一套基于开源工具的高性能处理器设计、实现、验证流程,大幅提高处理器开发效率、降低处理器开发门槛。

2021年7月,香山发布了第一代“雁栖湖”,采用28nm公益,主频达到1.3GHz。

2023年3月,香山发布了第二代“南湖”,采用14nm工艺,主频提升至2GHz。

2024年4月,香山发布了第三代“昆明湖”,采用7nm工艺,主频达到3GHz。

香山处理器的源码,开源在github。

4. 总结

RISC-V作为一种全新的开源指令集架构,凭借其开源免费、灵活多样、模块化设计以及高性能与低功耗等优势,已经在全球范围内得到了广泛应用和认可。到目前,来自70个国家的4500多名RISC-V成员贡献并合作定义RISC-V开放规范,并召集和管理相关技术、行业、领域和特殊利益集团。RISC-V将模块化技术方法与开放、免版税的ISA相结合,这意味着任何地方的任何人都可以从RISC-V贡献和生产的IP中受益。作为非营利组织,RISC-V不对产品或服务保持任何商业利益。作为开放标准,任何人都可以利用RISC-V作为其开放或专有解决方案和服务的构建块。随着RISC-V技术的不断进步和应用场景的不断拓展,RISC-V有望在未来继续发挥更大的作用并推动相关产业的发展。