【论文阅读】基于 SimpleScalar 的龙芯CPU模拟器 Sim-Godson

学习体会:

学习追踪龙芯系列"工程流"论文,看看如何做工程,完成→完美

之前写过体系结构模拟器,龙芯团队自研模拟器在ICT-godson 模拟器基础上,继续开发了Sim-Godson.

PS:这篇文章读的不够细致,后面再来拜读


摘录文章:
  • 背景介绍

    • 现代高性能处理器设计复杂,模拟器在性能分析中至关重要。

    • 龙芯2号是中国科学院计算技术研究所研制的高性能通用处理器。P1

    • 早期开发的信号级模拟器 ICT-Godson 准确性高但速度和灵活性有限。

      ICT-Godson界面,图自:微处理器性能分析与优化

    • Sim-Godson 基于 SimpleScalar 工具集,具有高速度、高灵活性和高准确性。

  • 背景介绍

    • SimpleScalar 是一个用于构建各种模拟程序的系统软件框架,提供参考模拟器和机器定义框架。P2

    • 龙芯2号是 64 位 MIPS-like 指令集的 RISC 处理器,采用四发射超标量结构、乱序执行和激进 Cache 设计。

  • Sim-Godson 的设计与实现

    • 设计目标:高速度和高灵活性。

    • 实现方法:

      • 功能模拟和时序模拟分离的执行驱动方式,使用独立的指令执行引擎。P2

      • 软件实现优化技术:缓存常用数据、指针传递、结构缓冲等。P2

      • 灵活性:充分利用 SimpleScalar 工具集提供的框架结构,提供参数化部件、调试、统计、可视化等功能。P3

    • 基础工作:

      • 实现 Linux/MIPS 体系结构支持:目标机器定义、目标二进制文件装载、目标操作系统调用代理。P3

      • 实现龙芯2号微体系结构:

        • 逆向调用流水级,避免流水级管理开销,提高速度。P3

        • 多重误预测支持,模拟误预测路径上的指令执行。P3

        • 寄存器重命名,维护指令间的依赖关系。P3P4

        • 功能部件:采用事件调度方式,支持可变延迟和端口竞争。P4

        • 发射:精确模拟龙芯2号的发射策略。P4

        • 访存:详细模拟访存部件的各流水级。P4

  • Sim-Godson 的验证

    • 验证流程:设计微基准程序、验证模拟器、修正模拟器、采用完整应用程序验证、分析验证误差。P4

    • 微基准程序:考察控制、执行、访存等微体系结构特性。P4

    • 完整应用程序:SPEC CPU2000 基准测试程序集。P5

  • 评测

    • 准确性测试:采用 SPEC CPU2000 程序,以 IPC 作为指标,与 ICT-Godson 进行比较。结果表明,Sim-Godson 的准确性很高。P5

    • 性能评测:在 3.0 GHz Pentium 4 微机上,Sim-Godson 的速度约为 500 K 指令/秒,比 ICT-Godson 快约一个数量级。P5

  • 结论和未来的工作

    • Sim-Godson 在龙芯2号的性能分析工作中发挥了重要作用。

    • 计划进一步优化代码,提高速度及可读性,并将其与多处理器模拟器 SimOS 结合起来。


参考文献:

1\] 张福新,章隆兵,胡伟武.基于SimpleScalar的龙芯CPU模拟器Sim-Godson\[J\].计算机学报,2007,(01):68-73. \[2\] 张福新.微处理器性能分析与优化\[D\].中国科学院研究生院(计算技术研究所),2005.

相关推荐
Hello__77771 天前
开源鸿蒙 Flutter 实战|自定义开关组件全流程实现
flutter·开源·harmonyos
嵌入式小企鹅1 天前
CPU供需趋紧、DeepSeek V4全链适配、小米开源万亿模型
人工智能·学习·开源·嵌入式·小米·算力·昇腾
GitCode官方1 天前
基于昇腾 MindSpeed LLM 玩转 DeepSeekV4-Flash 模型的预训练复现部署
人工智能·开源·atomgit
Python私教1 天前
DeepSeek V4 深度解析:国产万亿参数开源模型的范式级创新
开源
WinterKay1 天前
【开源】我写了一个轻量级本地数据库浏览工具,支持 MySQL/Redis 只读查询
数据库·mysql·开源
OpenCSG1 天前
以开源技术、跨境数据与绿色算力为支点,“开放东方社区”上线
开源
code_pgf1 天前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
非优秀程序员1 天前
智能体的构成--深入探讨Anthropic、OpenAI、Perplexity和LangChain究竟在构建什么。
人工智能·架构·开源
Hello__77771 天前
开源鸿蒙 Flutter 实战|文章分类标签功能全流程实现
flutter·开源·harmonyos
ClkLog-开源埋点用户分析1 天前
在信创环境下,如何判断一套用户行为分析系统是否“真正可用”?
数据分析·开源·开源软件·用户画像·埋点系统