gem5有两种基本模式

FS:

能够启动完整的操作系统

建模硬件设备

中断,例外, 特权指令,故障处理函数。

SE:

用来运行单个应用,一系列指令在MP/SMT上。

建模用户可见的ISA和常见的系统调用

模拟系统调用,通过调用主机操作系统。

简化的地址翻译模型,没有调度

这两个模式是在编译时进行选择的,尽管代码没有很大差别。

你所关注的就是一个对象(C++或者python对象)

从SimObject基类继承而来。

基类包含创建的一般代码,配置参数,命名,检查点。等等。

针对对象类型的统一的基于方法的API

CPU, cache, memory

跨实现的插入兼容性。

功能性,详细的CPU模型

传统的cache VS 间接索引cache

很容易复制,多核,多个系统。

关于event

标准的事件队列timing模型。

全局逻辑时间,用tick计算

与实际时间没有固定关系

在我们的例子中通常以皮秒计量【百亿分之一秒】

每一个object调度它自己的事件。

可以做详细程度和性能的trade-off

现在你知道一个事件驱动的模拟器是如何工作的了,simulator从事件队列取出事件,object会产生事件,object又把它产生的新事件加入到事件队列中。

例如:

一个cpu通常按照固定的时间间隔来调度事件,

每个周期或者n个皮秒

如果stalled或者idle就不会调度

关于端口

端口是把MemObjects链接在一起的方法。

每个MemObjects子类都有它自己的端口子类。

这些端口子类用来给相应MemObjects子类发送packets

每对MemObjects都是通过一对端口连接的。

函数对来负责在端口之间传输packets。

sendTiming() ------recvTiming()

gem5 se.py总结相关推荐

  1. gem5下用se模式运行自己的测试程序

    接上面的讲讲,se模式下如何运行自己的测试程序,而不是gem5自带的测试程序.看到我这部分合集,应该就可以在gem5的入门处少走很多很多弯路.我就是走了很多弯路,才摸索出来.... 比如说,我现在写了 ...

  2. Gem5 学习 3 - 用SE模式测试自己的程序

    参考博客https://blog.csdn.net/u012822903/article/details/62217441 se模式需要注意,使用静态编译,单线程 step 1 新建一个自己的文档 比 ...

  3. gem5的安装、编译及运行

    1.安装各类库文件(当纯环境写的) 以Ubuntu14.04为例,其他的版本也是基本上差不多的 sudo apt-get install mercurial scons swig gcc m4 pyt ...

  4. gem5和nvmain混合编译

    由于做混合内存,需要使用nvmain来做NVM的模拟,使用gem5做全系统的仿真,两者结合使用. 1.安装gem5 gem5的安装,包括相关依赖环境的安装见我的另外一篇博客:gem5的安装.编译及运行 ...

  5. gauge 运行其他spec_Gem5(SE模式)上运行SPEC2017教程

    前言:根据此教程,你可以做到在gem5的se模式下运行spec2017.教程所涉及到的脚本文件和配置文件均已在github上开源,如果你觉得有用,请给我一个大大的star~~~ spec2017的安装 ...

  6. Gem5模拟器,详解官网教程Debugging gem5(四)

    目录 一.Gem5中的多种debug模式 二.gem5中的调试标志 三.介绍一下DPRINTF是啥? 四.如何添加一个新的debug flag 五.关于Debuug output gem5是一种用于模 ...

  7. 使用Gem5在aarch64架构下运行SPEC2006样例(三)——样例运行

    一.写在前面 如果只是想完成课程设计的话,可以使用本部分的方法.如果需要使用Simpoint加速运行,可以略过本篇,见下一篇. 二.正常执行 1.编写脚本 在Gem5主目录下使用命令: touch r ...

  8. Gem5与NVMain混合编译(一)

    gem5的安装与使用 1. 安装各类库文件(ubuntu) sudo apt-get install mercurial scons swig gcc m4 python python-dev lib ...

  9. gem5+NVMain联合编译

    1.注册bitbucket账号 进入官网,注册即可,记住你的用户名及邮箱,在后面会用到. 2.获取NVMain使用权 打开https://bitbucket.org/mrp5060/nvmain/并登 ...

最新文章

  1. Java 垃圾回收机 GC Roots详解(Garbage Collection Roots)
  2. java 对象 序列化 文件中_如何将一个java对象序列化到文件里
  3. matlab对多项式求导,matlab中多项式求导
  4. 具有相同模式的字符串,使用正则表达式组的提取和替换的案例
  5. 拜登政府冻结加密钱包规则以待审查 加密市场或迎来转机
  6. 通过prompt方法增强开放领域问答模型
  7. 根据前序和中序构造整个二叉树
  8. Spring 的定时任务--Quartz
  9. 开机自动运行记事本病毒的删除
  10. 实型变量的定义和应用
  11. 超级牛人在华为工作十年的感悟
  12. 怎么退出自适应巡航_定速巡航与自适应定速巡航到底有什么不同?
  13. mysql_affect_array_Mysql代理类 支持Master/Slave 读写分离
  14. truffle init error,unbox Downloading报错问题
  15. Android 解析JSON数据填充到Listview中
  16. C++实现有理数类加减乘除
  17. (洛谷)小鱼的游泳时间
  18. 在C4D和Keyshot中保存产品模型到预设库多次重复使用
  19. 压缩算法:字符串(JSON)压缩和解压【JDK之Deflater压缩与Inflater解压】
  20. Bootstrap EasyUI WEB开发框架

热门文章

  1. matlab 环形检测,用matlab模拟环形磁铁的磁场分布详解.doc
  2. Grafana配置https
  3. 雅思作文未来计算机的应用,2021年3月4日雅思大作文真题参考范文及解析
  4. 跨境电商都在用的全渠道小部件,你安排上了吗?
  5. 将 .eml 后缀的文件以邮件形式发送
  6. 红米note9和红米k30有什么区别 红米note9和红米k30哪个好
  7. BLUE legend传奇引擎不使用路由器架设单传奇的办法
  8. 显示excel工作簿中所有工作表的名称!!!
  9. 阿里入股B站,到底意味着什么?
  10. python实现税后工资_合理避税--月薪与年终奖优化配置(Python数据分析初级练手小项目)...