Gem5 中的参数类型

参考链接:GEM5- GEM5 给 SimObject 添加 Param — Yilong Zhao

GEM5 是通过某种方式将 python 中的数据类型和 c++ 中的数据类型打通,进而完成将 python config 脚本中的参数传递给 c++ 代码的任务。 因此在 GEM5 的源码中,默认参数类型在 c++ 文件和 python 文件分别定义了一份。下面的列表我们将描述 python 文件中定义的数据类型,并列出对应的 c++ 数据类型:

Python 类型c++ 类型c++ 头文件
Intstd::string内置类型
(U)Int(8,16...)(u)int(8,16...)_t内置类型
Floatdouble内置类型
Boolbool内置类型
CounterCounterbase/type.hh
TickTickbase/type.hh
TcpPort / UdpPortuint16_t内置类型
Percentint内置类型
CyclesCyclesbase/type.hh
MemorySize / MemorySize32uint64_t内置类型
AddrAddrbase/type.hh
AddrRangeAddrRangebase/addr_range.hh
EthernetAddrNet::EthAddrbase/inet.hh
IpAddressNet::IpAddressbase/inet.hh
IpNetmaskNet::IpNetmaskbase/inet.hh
IpWithPortNet::IpWithPortbase/inet.hh
Timetmbase/time.hh
TickParamValue / Latency /
Frequency / Clock
Tickbase/types.hh
Voltage / Current / Energy /
NetworkBandwidth / MemoryBandwidth
double内置类型
NullSimObjectNull内置类型
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gem5是一个开源的计算机系统模拟器,它可以模拟并运行不同类型的处理器架构。gem5的事件调度机制是实现并管理模拟系统不同组件之间事件的触发和调度的关键机制。 gem5的事件调度采用了事件驱动的方式。它通过时间戳以及事件的优先级来决定事件的顺序执行。在gem5,每个模拟组件都可以产生和接收事件,并将其加入到全局的事件队列,然后按照优先级和时间戳的顺序进行调度。 gem5的事件调度采用了离散事件模拟(Discrete Event Simulation)的思想。当一个事件在某个时刻被触发时,gem5会将该事件加入事件队列,并在之后的某个时刻执行该事件。执行事件的顺序是根据事件的时间戳和优先级进行调度的,时间戳较早且优先级较高的事件将被优先执行。 在事件调度的过程gem5会根据事件所属的组件类型,并按照一定的策略将事件派发给对应的模拟组件进行处理。每个模拟组件都有一个事件处理函数,当该组件需要处理事件时,gem5会调用该组件的事件处理函数,并根据事件的类型参数进行相应的处理。 总的来说,gem5的事件调度机制是通过事件队列、时间戳和优先级来实现的。它能够确保模拟系统的事件按照一定的顺序被触发和执行,从而保证模拟系统的正确性和准确性。通过合理的事件调度机制,gem5能够模拟出真实系统的各种行为和交互,提供一个高度可靠的计算机系统模拟环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值