论文部分内容阅读
RISC-V指令集架构是一种新生的开源精简指令集架构,拥有完整的工具链,支持众多软件,在高性能和低功耗计算上都有不俗的表现。美国加州大学伯克利分校在提出RISC-V指令集的同时,也基于该指令集设计了Boom处理器,并开源了该处理器设计平台。该平台能够生成Boom处理器硬件描述代码用于实际的处理器生产,也能生成官方模拟器用于评估处理器的性能特性。但是官方模拟器仿真耗时长,也不能像传统的模拟器如Gem5一样提供齐全的仿真插件。因此在Gem5平台上适配Boom处理器的模拟器,对于RISC-V指令集处理器的设计空间探索具有重要意义。本文分析了Gem5和Boom处理器间的总性能和微架构性能参数,详细分析了Gem5模拟器误差的来源并进行了适配。首先分析了Boom处理器流水线中主要模块的工作过程,在此基础上结合理论详细分析了造成性能差异的关键来源,即分支指令预测和Cache相关机制。然后在Boom处理器设计平台软件框架中添加Trace Profiling代码来获取分支预测失败事件数和Cache缺失事件数用于后续的适配工作。在适配过程中通过修改Boom处理器设计平台源代码解决了由于模拟器系统调用机制的实现差异而造成的Benchmark微架构无关参数不一致问题。论文在尽可能保证Gem5和Boom处理器可配参数一致的情况下完成了基本结构参数的适配工作。通过本文工作还发现了Boom处理器的分支预测器的设计异常及其造成的Cache缺失事件的异常,在与加州大学的维护团队沟通后,确认当前的Boom处理器设计中的分支预测机制存在官方尚未明确原因的Bug。本文选取计算密集型的Benchmark,分别在Gem5和Boom的官方模拟器上进行测试。结果表明:在尽可能保持两者结构参数一致的情况下平均执行一条指令所需要的Cycle数(Clock cycle Per Instruction,CPI)的平均相对误差降低了16.2%。