DRAMSim2学习3——模拟器架构()

DRAMSim2是用C++实现的,作为一个DDR2/3存储系统的面向对象模型,包括一个详细的、周期精确的存储控制器模型,用来给挂在一条标准存储总线的一组DRAM设备发出命令。DRAMSim2核封装在一个单对象中,叫做MemorySystem。存储系统对象要求两个ini文件:设备ini文件与系统ini文件。设备ini文件包含描述特定DRAM设备的参数,比如时序限制与设备功耗,这些参数能够在制造商的数据手册上找到。DRAMSim2包中包含几个Micron DDR2/3设备的ini文件。系统ini文件包含与实际DRAM设备无关的参数。包括的参数比如rank数、地址映射表、调试选项、行缓冲策略、存储控制器队列结构与其它仿真细节。


在MemorySystem对象创建之后,驱动代码注册一个将在请求完成时执行的callback函数。此时,DRAMSim2的初始化才算完成。驱动代码必须为每个存储系统时钟tick调用一个函数,并调用另一个函数来增加存储请求。在数个时钟周期之后,存储请求完成时,DRAMSim2调用提供的callback函数来让前端驱动知道请求已经结束。从一个请求加到DRAMSim2到完成的时间根据当前存储系统状态而变化。因为仿真器的内部被封装到仅由少量函数组成的接口,可以很容易将DRAMSim2挂载到任何种类的前端驱动比如trace reader、时钟精确的CPU仿真器比如MARSSx86、或离散事件仿真框架比如SST。


DRAMSim2既可以编译为单独的二进制文件,也可编译为共享库。在单独模式下,DRAMSim2仿真从disk上存储的trace读取命令。在共享库模式下,DRAMSim2提供创建MemorySystem对象与加入请求的基本功能。


除了C++ STL,DRAMSim2并不依赖外部库。


仿真内部
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值