GEM5从入门到出门
文章平均质量分 76
介绍GEM5工作原理的文章不多,而我现在是个新手(7/16/2019),开一个专栏介绍自己的学习历程。
南方铁匠
在深度学习和体系结构熔炉的铁匠
展开
-
gem5 arm架构 fullsystem spec2017 benchmark 仿真
gem5 full system ARM 仿真原创 2023-01-03 02:43:47 · 2595 阅读 · 7 评论 -
computer architecture simulator汇总
最近读了【A Survey of Computer Architecture Simulation Techniques and Tools】,这篇文章汇总了常用的模拟器。原创 2022-11-15 05:35:38 · 1580 阅读 · 0 评论 -
Gem5 simpoint 全流程
gem5 simpoint全流程原创 2022-09-08 22:10:19 · 2998 阅读 · 15 评论 -
Gem5, simpoint的warm up
gem5 simpoint 的warm up原创 2022-09-08 17:23:56 · 1046 阅读 · 0 评论 -
Gem5 Fullsystem,Spec2017
gem5 fullsystem运行spec2017原创 2022-09-01 18:57:44 · 1274 阅读 · 2 评论 -
Gem5 Bug Record
gem5 踩坑合集原创 2022-08-28 22:59:47 · 724 阅读 · 0 评论 -
Gem5, Spec2017 与 Simpoint
简单介绍Gem5,Spec benchmark与Simpoint工具链原创 2022-07-14 01:39:42 · 3781 阅读 · 0 评论 -
Intel Pin Tools以及PinPoints
Pin(Intel)的文章中介绍了Pin的工作原理,Pin是一个dynamic instrumentation tool。Pin使用just-in-time(JIT) compiler来进行实时的insert,optimize code,以实现profiling、performance evalution 和bug detection的目的。其架构如下图所示:JIT compiler负责编译并instrument 应用代码,code cache负责暂存修改的代码。从code cache进入或离开VM.原创 2021-02-17 23:02:43 · 970 阅读 · 1 评论 -
GEM5是加载workload的(上)
在gem5的官方的教程中,是通过system.cpu.workload来指定binary的。而cpu.workload则是一个Process*类型的vec。那么系统是如何加载workload的呢?//./src/sim/process.hh ::Loader::ObjectFile *objFile; ::Loader::MemoryImage image;//./src/sim/process.ccProcess::Process(ProcessParams *params.原创 2021-02-17 14:01:16 · 978 阅读 · 0 评论 -
Gem5 实现与架构 ( Impl and Arch )
这一系列的目的是为了梳理清楚gem5是如何将不同的体系结构的代码进行构建的,记录学习的过程。如有错误,请不吝赐教。1 Impl./src/cpu/o3/impl.hh这个文件中定义了CPUPolicy,BaseO3DynInst和FullO3CPU (其模板参数又为O3CPUImpl,看起来会比较奇怪)。struct O3CPUImpl{ /*.....*/ /** The ...原创 2020-02-20 00:28:52 · 1947 阅读 · 0 评论 -
Gem5【笔记】 event
Build/X86/sim/eventq.cc EventQueue::ServiceOne 是调用event->process()函数 此时,这个eventq,对应的是mainqueue,目前是唯一的,而event则是不同的ClockEvent 或者 EventWrapper的event; 即eventqueue只有一个,但是event有多个。 SimObject 派生自Event...原创 2020-01-11 21:17:15 · 646 阅读 · 0 评论 -
Gem5 event driven (事件驱动)
首先分析事件驱动的步骤:在gem5模拟器中,simulate.cc 中 doSimLoop循环的调用eventq的service成员函数;该成员函数会从二级链表的event中,抽取event,调用event→process(); event是一个指针,是gem5中其他组件的基类之一,因此可以通过多态的方法,访问其他组件的process函数; 在调用process函数之前,调用setCurT...原创 2019-08-05 16:53:53 · 2439 阅读 · 11 评论