【论文阅读】基于 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.

相关推荐
IvorySQL3 小时前
从代码到舞台:HOW 2026 致敬 PostgreSQL 18 贡献者
数据库·postgresql·开源
imbackneverdie4 小时前
如何从海量文献中跨界汲取创新灵感?
论文阅读·人工智能·ai·自然语言处理·aigc·ai写作·ai工具
Are_You_Okkk_5 小时前
研发运维一体化:开源知识库落地案例与价值探析
运维·人工智能·架构·开源
柒星栈5 小时前
深度解析 last30days-skill:让 AI Agent 成为跨平台趋势猎手的开源利器
开源
JackieZhengChina6 小时前
BMAD-METHOD 筑梦架构:AI 驱动的开源敏捷开发方法
人工智能·架构·开源
进击monkey6 小时前
企业级 Wiki 首选:PandaWiki 支持 SSO 登录,统一身份认证+开源可控,降本增效双突破
人工智能·开源·ai知识库
路由侠内网穿透6 小时前
本地部署开源零信任网络平台 NetBird 并实现外部访问
运维·服务器·数据库·开源
搜佛说7 小时前
13-第13章-自定义数据处理器开发
物联网·ai·开源·边缘计算
启山智软7 小时前
【对比了几家电商商城系统】
java·开源
学嵌入式的小杨同学7 小时前
STM32 进阶封神之路(二十七):MQTT 深度解析 —— 从协议原理到 OneNET 云平台接入(底层逻辑 + AT 指令开发)
stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb·嵌入式实时数据库