gem5 se.py总结
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总结相关推荐
- gem5下用se模式运行自己的测试程序
接上面的讲讲,se模式下如何运行自己的测试程序,而不是gem5自带的测试程序.看到我这部分合集,应该就可以在gem5的入门处少走很多很多弯路.我就是走了很多弯路,才摸索出来.... 比如说,我现在写了 ...
- Gem5 学习 3 - 用SE模式测试自己的程序
参考博客https://blog.csdn.net/u012822903/article/details/62217441 se模式需要注意,使用静态编译,单线程 step 1 新建一个自己的文档 比 ...
- gem5的安装、编译及运行
1.安装各类库文件(当纯环境写的) 以Ubuntu14.04为例,其他的版本也是基本上差不多的 sudo apt-get install mercurial scons swig gcc m4 pyt ...
- gem5和nvmain混合编译
由于做混合内存,需要使用nvmain来做NVM的模拟,使用gem5做全系统的仿真,两者结合使用. 1.安装gem5 gem5的安装,包括相关依赖环境的安装见我的另外一篇博客:gem5的安装.编译及运行 ...
- gauge 运行其他spec_Gem5(SE模式)上运行SPEC2017教程
前言:根据此教程,你可以做到在gem5的se模式下运行spec2017.教程所涉及到的脚本文件和配置文件均已在github上开源,如果你觉得有用,请给我一个大大的star~~~ spec2017的安装 ...
- Gem5模拟器,详解官网教程Debugging gem5(四)
目录 一.Gem5中的多种debug模式 二.gem5中的调试标志 三.介绍一下DPRINTF是啥? 四.如何添加一个新的debug flag 五.关于Debuug output gem5是一种用于模 ...
- 使用Gem5在aarch64架构下运行SPEC2006样例(三)——样例运行
一.写在前面 如果只是想完成课程设计的话,可以使用本部分的方法.如果需要使用Simpoint加速运行,可以略过本篇,见下一篇. 二.正常执行 1.编写脚本 在Gem5主目录下使用命令: touch r ...
- Gem5与NVMain混合编译(一)
gem5的安装与使用 1. 安装各类库文件(ubuntu) sudo apt-get install mercurial scons swig gcc m4 python python-dev lib ...
- gem5+NVMain联合编译
1.注册bitbucket账号 进入官网,注册即可,记住你的用户名及邮箱,在后面会用到. 2.获取NVMain使用权 打开https://bitbucket.org/mrp5060/nvmain/并登 ...
最新文章
- Java 垃圾回收机 GC Roots详解(Garbage Collection Roots)
- java 对象 序列化 文件中_如何将一个java对象序列化到文件里
- matlab对多项式求导,matlab中多项式求导
- 具有相同模式的字符串,使用正则表达式组的提取和替换的案例
- 拜登政府冻结加密钱包规则以待审查 加密市场或迎来转机
- 通过prompt方法增强开放领域问答模型
- 根据前序和中序构造整个二叉树
- Spring 的定时任务--Quartz
- 开机自动运行记事本病毒的删除
- 实型变量的定义和应用
- 超级牛人在华为工作十年的感悟
- 怎么退出自适应巡航_定速巡航与自适应定速巡航到底有什么不同?
- mysql_affect_array_Mysql代理类 支持Master/Slave 读写分离
- truffle init error,unbox Downloading报错问题
- Android 解析JSON数据填充到Listview中
- C++实现有理数类加减乘除
- (洛谷)小鱼的游泳时间
- 在C4D和Keyshot中保存产品模型到预设库多次重复使用
- 压缩算法:字符串(JSON)压缩和解压【JDK之Deflater压缩与Inflater解压】
- Bootstrap EasyUI WEB开发框架
热门文章
- matlab 环形检测,用matlab模拟环形磁铁的磁场分布详解.doc
- Grafana配置https
- 雅思作文未来计算机的应用,2021年3月4日雅思大作文真题参考范文及解析
- 跨境电商都在用的全渠道小部件,你安排上了吗?
- 将 .eml 后缀的文件以邮件形式发送
- 红米note9和红米k30有什么区别 红米note9和红米k30哪个好
- BLUE legend传奇引擎不使用路由器架设单传奇的办法
- 显示excel工作簿中所有工作表的名称!!!
- 阿里入股B站,到底意味着什么?
- python实现税后工资_合理避税--月薪与年终奖优化配置(Python数据分析初级练手小项目)...