当前位置:   article > 正文

Gem5 学习 1 - Gem5 及其 文件结构_gem5框架

gem5框架

本文参考
http://www.m5sim.org/Source_Code
https://blog.csdn.net/qq_40918707/article/details/105511535
ivy_reny的gem5专栏

Gem5的安装配置可以参考我的博客ubuntu18.04 配置 gem5
本文默认已经完成了GEM5的编译

Gem5

gem5提供了多种CPU模型、系统模型以及存储器模型。

  • CPU模型:Atomic、Timing、In- order、O3(Out of Order)
  • 系统模型:SE(System-callemulation)、FS(Full System)
  • 存储模型:Classic、Ruby。
GEM5特征

1、GEM5的设计特征

面向对象、Python集成、领域特定语言DSL、标准化接口

面向对象和python集成

  • GEM5用C++和python混合编写
  • GEM5中所有主要的仿真单元都称为SimObject,它们使用相同的方法进行配置、初始化、统计与序列化(checkpoint)
  • SimObject包括具体的硬件单元模型比如处理器核、cache、互联单元与设备,也包括更为抽象的比如负载和与之相关联的用于系统调用仿真的处理内容。
  • 每个SimObject由两个类表示,一个Python类,一个C++类。Python类定义SimObject参数并进行基于脚本的配置。C++类包含了SimObject状态与剩余的行为,包括关键性能的仿真模型。
  • 对于不同的组件SimObject,GEM5中使用Python进行集成,即Python负责初始化、配置和模拟控制。仿真器一开始就立即执行Python代码;标准的main()函数、命令行处理与启动代码都是用Python编写的。

领域特定语言DSL我也不是很了解
标准化接口

  • 标准化接口主要是包括端口(port)接口和消息缓冲接口(message buffer)
  • 端口用来连接两个内存对象(memory object)。在Classic内存系统中,端口接口连接包括CPU到cache、cache到总线、以及总线到设备和存储器的所有内存对象。
  • 端口支持三种访问数据的机制,即timing、atomic和functional
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/623139
推荐阅读
相关标签
  

闽ICP备14008679号