首页 > 最新动态 > 香山开源处理器:赋能敏捷体系结构研究,支撑学术界尖端探索案例
最新动态
香山开源处理器:赋能敏捷体系结构研究,支撑学术界尖端探索案例
2025-09-0430
图片



计算机体系结构研究长期面临设计复杂,验证周期长,成本高昂的挑战。传统的基于模拟器的研究方法往往需要在建模精度,开发效率与系统级验证能力之间艰难权衡。香山开源高性能 RISC-V 处理器的出现,为体系结构研究者提供了一个前所未有的生产级,可扩展,全系统的科研平台。本文将结合笔者发表于 ISCA'23 及 ISCA'25 的两篇工作《Imprecise Store Exceptions》[1] 及《Single-Address-Space FaaS with Jord》[2],分享如何利用香山平台快速实现体系结构方案的硬件实现与系统级验证,显著加速研究进程。





香山的技术特色与平台优势






香山处理器由中国科学院计算技术研究所发起,北京开源芯片研究院联合多家单位共同推进,其设计初衷是构建一个支持计算机体系结构前沿探索的开放平台。经过多个版本的迭代演进,香山已经展现出以下核心优势:

1. 高性能:香山采用先进的乱序多发射流水线微架构。其昆明湖 V2 架构在 7nm 工艺下频率可达 3GHz,并在 SPECCPU 2006 上评估性能达到 15分/GHz,处于开源 RISC-V 处理器性能领先地位。这一高性能基线确保了实验评估结果不受处理器本身性能瓶颈的限制,为学术研究提供了可信赖的性能评估基础。

2. 高可配置:香山使用 Chisel(Constructing Hardware in a Scala Embedded Language)硬件构建语言开发,支持高度参数化和面向对象的硬件设计,研究者可以通过简单的参数配置实现微架构模块的灵活组合,通过模块继承和重写快速实现硬件功能拓展,显著提升研发效率。

3. 成熟的敏捷验证生态:香山项目提供了一套完整的敏捷开发与验证工具链,包括支持系统级仿真的 NEMU,可快速定位硬件设计错误的 DiffTest 差分测试框架,以及提升大规模测试效率的 LightSSS 工具。

4. 全系统支持:香山代码质量高,支持运行完整的 Linux 操作系统以及各种现代工作负载。这一特性使得研究者能够在真实系统环境下评估架构创新的实际效果,而非仅限于仿真环境中的微观评估。

基于以上技术优势,香山为计算机体系结构研究提供了一个从算法创新到硬件实现再到系统验证的全栈式实验平台。笔者最终选择香山作为研究平台,正是因为其在这四个维度上的综合优势能够支持笔者高效、可靠地完成创新思想的实现与验证。








非精确存储指令异常




随着存内计算(Process-in-Memory)等架构的兴起,越来越多的加速器被深度集成到内存/缓存层次(memory/cache hierarchy)中。这些加速器通常由 host CPU 的加载/存储指令(load/store instruction)配置或触发执行各种动作。在某些加速器相关的场景下(例如错误配置),加速器可能会产生异常(exception)。在现有系统中,软件通常无法处理这种异常,需要终止相关进程甚至导致系统崩溃。一种解决问题的方案是将这种异常作为精确异常(precise exception)处理。精确异常需要 CPU 在报告异常的同时提供对应于异常指令的上一条指令的架构状态(architectural state),使得软件可以精确地从此状态恢复。实现由加载指令引发的加速器异常相对容易,因为加载指令因其语义总是被实现为一个同步(synchronous)过程。然而,现代处理器,尤其是实现了弱内存一致性模型(weak memory consistency model)的处理器,依赖于重排序缓冲区(re-order buffer,ROB)与存储缓冲区(store buffer,SB)将存储指令与 CPU 流水线解耦以实现更高的性能。而正是这一点使得由存储指令引发的加速器异常无法作为精确异常处理,因为在存储指令引发的内存访问请求(memory access request)到达加速器时,相应的存储指令(甚至多条更年轻的指令)已经在 ROB 中提交,存储指令对应的架构状态已经无法复原。

为解决此问题,笔者提出了非精确指令异常,通过将产生加速器异常的存储指令的信息保存在内存的环形错误存储缓冲区(faulting store buffer)中,并使用操作系统异步处理异常并重放错误的存储指令,加速器异常可以做到对应用程序透明,避免了进程终止或系统崩溃。整个方案主要如图 1 所示。TileLink 总线使用 corrupt 信号标注加速器异常。控制状态寄存器(control-status register,CSR)模块新增了一条内存访问的接口,用以向内存写入错误存储指令的信息。重排序缓冲区新增了一个状态机,用以将加速器异常作为中断插入到未执行的指令上并通知存储缓冲区进行排空(drain)操作。

image.png

图 1:非精确指令异常

得益于 Chisel 的可拓展性,笔者使用极少量的代码就将拓展的信号集成到香山模块接口中,如图 2 所示。同时,香山作为一个功能完备的 CPU 核,使笔者可以直接复用其功能模块,而只专注于新增的功能逻辑,例如图 3 是实现于香山 CSR 模块中的状态机。整个开发周期约两个月,在此期间,笔者同时将香山移植到 FireSim [3] 平台,使其可以在 AWS 的云 FPGA 上运行。笔者在修改的香山上运行了 RISC-V litmus test 用以证明方案对内存一致性没有功能影响。同时笔者运行了 gapbs 和 TailBench 性能测试基准,证明了方案只引入了小于 5% 的性能开销(相比无加速器异常的情况)。

image.png

图 2:拓展香山的存储缓冲区接口

image.png

图 3:CSR模块中的状态机










用户态内存管理




作为一种新的计算范式,无服务器计算(serverless computing)或函数即服务(function-as-a-service)因其高易用性,高弹性以及灵活的付费模式(pay-as-you-go)成为云计算的重要组成部分。在无服务器计算中,用户将大量的函数上传到云服务器上,由云厂商进行统一的调度与执行。基于安全的考虑,目前用户函数都被封装在容器甚至是虚拟机内以实现与其他用户函数的隔离。然而,这种重量级的隔离不可避免地引入了巨大的性能开销,不仅每次函数运行都需要创建或销毁容器或虚拟机,同时函数之间的频繁通信必须以类似远程过程调用(remote-procedure call)的方式实现,使得性能开销甚至大于函数本身的执行时间。另外,目前常用的基于 Kubernetes 的控制平面也显著恶化了函数调度的延迟。

为解决此问题,笔者提出了用户态内存管理,通过将地址翻译与内存隔离的控制权从操作系统下放到用户态,并加上高效的硬件地址翻译与转换旁路缓冲区失效(TLB shootdown)支持,用户态程序可以自行在纳秒级别实现函数之间的安全的强内存隔离而无需操作系统的介入。整个方案如图 4 所示。TileLink 总线新增了一个单比特信号标注是否是与地址转换相关。末级缓存(last-level cache)新增了一个虚拟转换目录(virtual translation directory)用来维护多核系统中的地址转换一致性。在每个 CPU 核内,除了原有的基于页(page)的转换旁路缓冲区(translation lookaside buffer,TLB)和页表遍历器(page table walker),笔者还新增了虚拟旁路缓冲区(virtual lookaside buffer,VLB)和虚拟内存区域表遍历器(virtual memory area table walker),用以实现基于段(segment)的可直接访问的地址转换。两套地址转换机制由虚拟地址(virtual address)和系统控制状态寄存器(control status register,CSR)动态选择。

d51b02dd511f0c20c86a90531ada1757.png

图 4:用户态内存管理

与非精确存储指令异常类似,笔者仅需极少量的代码修改拓展接口信号,如图 5 所示。香山灵活的微架构使得笔者可以开发自己的地址转换硬件,只需要保持和原有硬件类似的接口与相同的时序就可以做到快速替换,甚至实现两套系统共存,实现动态的二选一逻辑,如图 6 所示。整个开发周期约三个月,笔者最终成功在FPGA 上实现功能验证。在此过程中,香山的敏捷开发工具链帮助笔者快速定位了很多设计问题,节省了大量的调试时间。

image.png

图 5:向TileLink 总线上增加一个单比特信号

image.png

图 6:TLB 与 VLB 的二选一逻辑








香山对敏捷体系结构研究的价值




香山在笔者的两个项目中展现了远超普通 CPU 核的价值:

1. 研究聚焦赋能:香山提供了一个稳定、可靠的基线(Baseline)设计,使得笔者能将全部精力集中于核心创新点的实现与优化,无需担心底层基础设施的正确性,彻底避免了“重复造轮子”。

2. 迭代循环加速:基于香山成熟的编译、仿真和测试流程,笔者能够进行快速的设计迭代。一次完整的设计-仿真-分析周期从传统流程的数天缩短至数小时,使得笔者有充分的时间进行调试及设计空间探索(Design Space Exploration)。

3. 结果可信度保障:由于香山本身已经过充分验证,且能运行真实操作系统和复杂应用,由此得出的性能数据极具说服力,为论文的审稿过程提供了坚实的数据支撑,有效证明了笔者工作的实用价值。








总结与展望




基于香山开源处理器,笔者成功地将体系结构方案转化为具体的硬件实现,并获得了显著的性能提升。这一实践充分证明,香山作为一个高水平、开放的基础研究平台,已经具备了支撑学术界进行尖端探索和工业界进行原型验证的能力。

我们相信,随着香山昆明湖等后续架构的演进,以及其软硬件生态的不断完善,它必将成为全球处理器创新领域的重要基石。我们呼吁并期待更多研究者能利用这一国产开源平台,共同推动计算机体系结构技术的进步。








致谢




感谢香山团队的开源贡献与在研究过程中提供的宝贵技术支持。








参考文献




[1] Yuanlong Li, Atri Bhattacharyya, Madhur Kumar, Abhishek Bhattacharjee, Yoav Etsion, Babak Falsafi, Sanidhya Kashyap, and Mathias Payer. 2025. Single-Address-Space FaaS with Jord. In Proceedings of the 52nd Annual International Symposium on Computer Architecture (ISCA'25), June 21-25, 2025, Tokyo, Japan.

[2] Yuanlong Li*, Siddharth Gupta*, Qingxuan Kang, Abhishek Bhattacharjee, Babak Falsafi, Yunho Oh, and Mathias Payer. 2023. Imprecise Store Exceptions. In Proceedings of the 50th Annual International Symposium on Computer Architecture (ISCA'23), June 17–21, 2023, Orlando, FL, USA. (* Equal contribution)

[3] Sagar Karandikar, Howard Mao, Donggyu Kim, David Biancolin, Alon Amid, Dayeol Lee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt, Aditya Chopra, Qijing Huang, Kyle Kovacs, Borivoje Nikolic, Randy H. Katz, Jonathan Bachrach, and Krste Asanovic. 2018. FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud. In Proceedings of the 45th International Symposium on Computer Architecture (ISCA). 29–42.








作者简介




李元龙是瑞士洛桑联邦理工学院(école Polytechnique Fédérale de Lausanne)计算机与通信科学学院的五年级博士生,师从 Babak Falsafi 教授,隶属于并行系统架构实验室(Parallel Systems Architecture Lab)。李元龙对现代数据中心系统的研究问题有着广泛的兴趣,他主要从事硬件方面的工作,但也关注软件和人工智能领域。李元龙目前的研究重点是在数据中心设计高性能且安全的函数即服务(FaaS)系统。李元龙是英特尔资助的 Midgard 项目的主要博士生之一,该项目旨在重新设计虚拟内存以提高数据中心服务器的性能和效率。






“关注开芯院,推广大使有惊喜” 活动已开启,我们诚挚呼吁并殷切期待香山技术分享可以推广到更多研究者、开发者,让“香山”国产RISC-V高性能核开源平台与大家共同携手推动计算机体系结构技术的创新与进步。

欢迎大家关注“开芯院”公众号并将本篇推文转发至朋友圈,集满 30 个赞后凭截图发送到邮箱  bosctougao@bosc.ac.cn,留下您的快递信息,就有机会收到超有分量的礼物——由著名计算机专家毛德操老师撰写的重磅著作《 RISC-V CPU 芯片设计香山源代码剖析》一套及香山特色周边推广大使礼。








点我访问原文链接