DRAMSim2是一个主要模拟DRAM memory读写访问延迟和工作能耗的工具,因其模拟结果与实际运行结果非常接近而被科研工作者广泛使用。本文将介绍DRAMSim2的代码架构,方便大家理解DRAMSim2的工作过程。之后再结合自己的使用经历,给出修改DRAMSim2的一些建议。
(一)DRAMSim2逻辑架构:
DRAMSim2的逻辑架构图如图所示:
DRAMSim2可以模拟多channel(通道)的内存。概念和分布式存储类似。每一个channel内都是一个独立的内存系统。内存系统中的结构我们应该是非常熟悉的:它有一个重要的内存控制器,完成地址映射,记录指令序列,记录各rank的状态;同时它分为多个rank,对于每个rank:都有一个bank控制器,控制着bank的状态,访问队列等;同时每个rank 又有多个bank,每个bank都是地址范围相同的行列矩阵,及我们读写访问的最终地方。
(二)DRAMSim2指令流:
这里借用DRAMSim2说明文档中的指令流图: