【gem5】gem5模拟器中三种访存模式Atomic、Timing、Functional的总结对比
创始人
2025-05-30 19:02:57
0

gem5模拟器的内存系统中,有三种不同的访存模式实现,分别有不同的功能与用途,本文对这三种模式做一个对比总结。三种模式的代码位置在gem5\src\mem\protocol\下。

文章目录

  • Atomic VS Timing
    • timing模式的访存过程
    • atomic模式的访存过程
    • atomic模式的作用与适用场景
    • 两种模式与CPU模型的关系
  • Functional
  • 参考

Atomic VS Timing

鉴于它们的用法呢,atomictiming两种模式可以对比说明,functional在后面单独说明。

理解atomic模式与timing模式的要点有两个:

  1. atomic模式下在内存系统中不会调度新的事件timing模式会不断调度新的事件加入事件队列。
  2. atomic模式不会出现排队延迟或者资源争夺;而timing模式则会进行排队延迟和资源争夺的一个详细建模。

从gem5模拟器中的时间线上来看呢:

  • atomic模式是当请求发起,立即就会得到一个return,return的是本次请求的一个估计时间
  • 下面的timing模式,当请求发起后,会在内存系统中进行排队,延迟一段时间后得到响应。
    在这里插入图片描述

问题:atomic模式仅仅估计一个访存时间而不发生事件调度,为什么也能得到程序的正确结果?换句话说就是该模式下访存这个动作到底有没有发生,如果发生了为什么可以瞬间完成,如果没有发生为什么可以得到正确的结果?

要回答这个问题,那么需要理解gem5是一个事件驱动的模拟器,下面通过timing模式的事件调度进行解释:

一个事件包括动作tick两部分,一个事件的调度意思就是在多少tick后发生什么动作。

timing模式的访存过程

观察这里的timing模式,上边的一条是访存链,packet就沿着访存链一步步传递;
下边的是事件队列,每调度一个事件就会插入事件队列,队列里面的事件是按照他们各自的tick严格排序的,gem5中的时间就随着一个个事件在他们约定好的tick发生,而一步步向前推进。

在这里插入图片描述

那么对于一条访存指令,CPU就会将一个请求包沿着访存链往下传递,传递过程中产生一个一个事件,完成访存过程中该完成的动作。

atomic模式的访存过程

观察atomic模式,对于一条访存指令,则可以看做事件队列里面只插入了一个事件,该事件的tick就是现在,当packet沿着访存链传递时,各种需要完成的操作还是会完成,但是不再调度新的事件加入队列

那么当整个访存指令完成,后面却没有新的事件发生,也就是说gem5中的时间没有推进,看上去就好像瞬间完成了访存操作。所以将该模式成为原子访存。

在这里插入图片描述

atomic模式的作用与适用场景

  • 写了一个程序,想要知道运行是否正确,可以使用该模式快速得到结果。后面再使用能得到更详细的结果的CPU模型或者说访存模式;
  • 当本次模拟不关心访存时间,那么可以使用该模式快速得到结果;
  • 用于cache的预热。

两种模式与CPU模型的关系

  • 两种访存模式各自对应一种CPU模型,两种CPU都是单周期CPU,一个周期完成一条指令;
  • 两种模式不能够共存。
    在这里插入图片描述

Functional

functional模式,有以下特点:

  • 官方介绍说他更适合被称做调式模式,这种模式没有对应的CPU模型;
  • 因此是可以与atomic或timing共存于内存系统中的。
  • 与Atomic相同,访存是瞬间发生的
  • 用于加载二进制文件、检查/更改模拟系统中的变量以及允许远程调试器连接到模拟器等

也就是截图中的这个例子,这是python脚本构建完系统后,将一个编译好的二进制文件加载到系统中运行的操作。我理解就是用于gem5模拟系统和主机交互在这里插入图片描述

  • 当设备接收到功能访问时,如果它包含一个数据包队列,则必须搜索所有数据包以查找功能访问正在影响的请求或响应,并且必须适当地更新它们。
    也就是下图中在bridge对象中的recvFunctional(pkt)先后检查响应队列与请求队列中的每个数据包是否需要更新
    在这里插入图片描述
    functional模式目前用的貌似不多,暂时没有更深入的理解。

参考

gem5:Memory system
youtube视频:gem5 bootcamp 2022: CPU models

相关内容

热门资讯

电视安卓系统哪个品牌好,哪家品... 你有没有想过,家里的电视是不是该升级换代了呢?现在市面上电视品牌琳琅满目,各种操作系统也是让人眼花缭...
安卓会员管理系统怎么用,提升服... 你有没有想过,手机里那些你爱不释手的APP,背后其实有个强大的会员管理系统在默默支持呢?没错,就是那...
安卓系统软件使用技巧,解锁软件... 你有没有发现,用安卓手机的时候,总有一些小技巧能让你玩得更溜?别小看了这些小细节,它们可是能让你的手...
安卓系统提示音替换 你知道吗?手机里那个时不时响起的提示音,有时候真的能让人心情大好,有时候又让人抓狂不已。今天,就让我...
安卓开机不了系统更新 手机突然开不了机,系统更新还卡在那里,这可真是让人头疼的问题啊!你是不是也遇到了这种情况?别急,今天...
安卓系统中微信视频,安卓系统下... 你有没有发现,现在用手机聊天,视频通话简直成了标配!尤其是咱们安卓系统的小伙伴们,微信视频功能更是用...
安卓系统是服务器,服务器端的智... 你知道吗?在科技的世界里,安卓系统可是个超级明星呢!它不仅仅是个手机操作系统,竟然还能成为服务器的得...
pc电脑安卓系统下载软件,轻松... 你有没有想过,你的PC电脑上安装了安卓系统,是不是瞬间觉得世界都大不一样了呢?没错,就是那种“一机在...
电影院购票系统安卓,便捷观影新... 你有没有想过,在繁忙的生活中,一部好电影就像是一剂强心针,能瞬间让你放松心情?而我今天要和你分享的,...
安卓系统可以写程序? 你有没有想过,安卓系统竟然也能写程序呢?没错,你没听错!这个我们日常使用的智能手机操作系统,竟然有着...
安卓系统架构书籍推荐,权威书籍... 你有没有想过,想要深入了解安卓系统架构,却不知道从何下手?别急,今天我就要给你推荐几本超级实用的书籍...
安卓系统看到的炸弹,技术解析与... 安卓系统看到的炸弹——揭秘手机中的隐形威胁在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。...
鸿蒙系统有安卓文件,畅享多平台... 你知道吗?最近在科技圈里,有个大新闻可是闹得沸沸扬扬的,那就是鸿蒙系统竟然有了安卓文件!是不是觉得有...
宝马安卓车机系统切换,驾驭未来... 你有没有发现,现在的汽车越来越智能了?尤其是那些豪华品牌,比如宝马,它们的内饰里那个大屏幕,简直就像...
p30退回安卓系统 你有没有听说最近P30的用户们都在忙活一件大事?没错,就是他们的手机要退回安卓系统啦!这可不是一个简...
oppoa57安卓原生系统,原... 你有没有发现,最近OPPO A57这款手机在安卓原生系统上的表现真是让人眼前一亮呢?今天,就让我带你...
安卓系统输入法联想,安卓系统输... 你有没有发现,手机上的输入法真的是个神奇的小助手呢?尤其是安卓系统的输入法,简直就是智能生活的点睛之...
怎么进入安卓刷机系统,安卓刷机... 亲爱的手机控们,你是否曾对安卓手机的刷机系统充满好奇?想要解锁手机潜能,体验全新的系统魅力?别急,今...
安卓系统程序有病毒 你知道吗?在这个数字化时代,手机已经成了我们生活中不可或缺的好伙伴。但是,你知道吗?即使是安卓系统,...
奥迪中控安卓系统下载,畅享智能... 你有没有发现,现在汽车的中控系统越来越智能了?尤其是奥迪这种豪华品牌,他们的中控系统简直就是科技与艺...