《32-张寿林.pdf》由会员分享,可在线阅读,更多相关《32-张寿林.pdf(15页珍藏版)》请在三个皮匠报告上搜索。
1、DUET:一种基于FPGA加速的软硬件联合Difftest RISC-V 芯片敏捷验证框架张寿林1,2张子卿2 包云岗2石侃21郑州大学2中国科学院计算技术研究所2024.8.21中国科学院计算技术研究所(ICT,CAS)2 2中国科学院计算技术研究所(ICT,CAS)2 2 背景 DUET架构 性能评估 总结目录中国科学院计算技术研究所(ICT,CAS)3 3中国科学院计算技术研究所(ICT,CAS)3 3 敏捷验证方法成为处理器开发的迫切需要 处理器验证成为开发过程中的主要瓶颈 RISC-V处理器支持多种扩展,带来更复杂的验证需求 协同仿真 构建一个同时运行处理器及参考模型,支持模型间通信
2、的结构框架。处理器实时传递微结构状态,与参考模型进行比对 DiffTest1 开源的指令级在线协同仿真框架 基于体系结构状态和指令集规范对处理器核的执行精确性进行验证 提供指令级别的错误定位能力背景1 MICRO22:Towards Developing High Performance RISC-V Processors Using Agile Methodology中国科学院计算技术研究所(ICT,CAS)4 4中国科学院计算技术研究所(ICT,CAS)4 4 DiffTest DiffTest提出一种基于差异规则的敏捷验证流程(DRAV),围绕指令集架构(ISA)设计17类处理器检查状态
3、。参考模型(REF):ISA 模拟器 如NEMU 待测模型(DUT):软件 RTL仿真器 如Verilator 验证流程 处理器仿真 处理器向模拟器提交指令/同步 模拟器执行相同指令 比较二者状态,报错或继续背景模拟器(参考模型REF)处理器(待测设计DUT)基于差异规则的敏捷验证流程(Diff-Rule Based Agile Verification,DRAV)指令提交数中断/外设信息处理器状态等中国科学院计算技术研究所(ICT,CAS)5 5中国科学院计算技术研究所(ICT,CAS)5 5 软件仿真成为协同仿真过程中的重要瓶颈 通过软件方法仿真大规模电路设计需要耗费大量的时间 数字电路仿
4、真缺乏并行性,难以利用并行计算方法和硬件 实例:通过DiffTest对NutShell进行仿真过程的耗时分解 Nutshell:由 OSCPU(大学开源芯片项目)团队开发的一款RISCV处理器 使用perf工具对DiffTest主要流程的耗时进行分析 DUT的软件仿真(VSimTop)占据绝大部分时间背景 emulator:4.28%DPIC:0.34%difftest:4.09%VsimTop:91.29%中国科学院计算技术研究所(ICT,CAS)6 6我们的方法Difftest方法设计DUET方法设计模拟器参考模型REFDRAV处理器待测设计DUTPSDUET软件部分PL数据包处理指令提交
5、数等信息DRAV相关信息采样打包模拟器参考模型REF处理器待测设计DUTDRAV中国科学院计算技术研究所(ICT,CAS)7 7中国科学院计算技术研究所(ICT,CAS)7 7 背景 DUET架构 总体架构设计 硬件模块设计 软件模块设计 性能测试 总结目录中国科学院计算技术研究所(ICT,CAS)8 8中国科学院计算技术研究所(ICT,CAS)8 8 DUET架构是一个基于FPGA的敏捷验证框架 支持通过FPGA与CPU进行异构协同仿真DUET架构数据传输PLPSDUT中断控制数据更新同步可选的必须的数据包数据数据打包共享内存标志AXI模拟器(参考模型REF)DUT相关信息DRAVDUET
6、软件架构REF相关信息 DUET架构是一个基于FPGA的敏捷验证框架 支持通过FPGA与CPU进行异构协同仿真中国科学院计算技术研究所(ICT,CAS)9 9DUET架构硬件架构部分 将DUET软件模块中需要的数据进行打包并传输到软件端的共享内存中。通过标志位的信息来进行同步。数据传输Programmable LogicDUT中断控制可选的必须的数据包数据数据打包 数据打包模块 将数据进行压缩并打包成固定数据包格式 数据包分为两部分,根据不同需要进行打包 数据传输模块 通过AXI总线将数据包传输到共享内存中 在共享