GPGPU-Sim 笔记整理 0
gpgpu-sim.cc
本文件是所有函数的配置和初始化
-
power_config
-
memory_config
-
shader_core_config
-
gpgpu_sim_config
- 初始化模拟器
- 周期激活
- 打印状态
- 更新状态
- 死锁检查
手册解释:
Gluing different timing models in GPGPU-Sim into one. It contains implementations to support multiple clock domains and implements the
thread block dispatcher
翻译:
将GPGPU中不同的时间模型粘合成一个时间模型。其中包括了支持多个时钟域的实现和线程块调度程序的实现
这两个文件是gpgpu-sim的一个总的架构文件,相当于main函数
实现的功能
- 将能耗、存储、核等需要的参数从gpgpusim.config中读取出来
- 实现自己的一些方法
dram.cc
本文件为主存相关的模拟函数。
存储层次
由大到小为
- chip
- bank
- row
- column
主要类
-
dram_t
-
dram_req_t
- row
- col
- bk
-
nbytes
- txbytes
- dqbytes
- age
- timestamp 时间戳 LRU
- rw 判读读写
- addr
-
mem_fetch
data
DRAM延迟参数
tRCD
读延迟
array read 【 】buffer read/write
between array read and buffer read/write command
tCL,tWL,tCCD,tWTR
限制连续的buffer 命令
独立存储单元
tWR,tRTP
between buffer read/write command and array read
buffer read/write 【 】 array read
tRP
写延迟
an array write and a following array read
array write 【】array read
tRRD act ,tRRD pre
限制访问频率来满足功耗预算
only when a read evicts dirty buffer contents
添加NVM的延时参数
unsigned int RRDactc;
unsigned int RRDprec;
unsigned int RRDactc_PCM;
unsigned int RRDprec_PCM;//hybrid memory structure latency paramater
addrdec.cc
手册解释:
Address decoder – Maps a given address to a specific row, bank, column, in a DRAM channel
翻译:
地址解码器 – 在一个DRAM channel 里 将一个给定的地址映射成 行 ,bank ,列
其中比较重要的函数 :
1.void linear_to_raw_address_translation::addrdec_tlx(new_addr_type addr, addrdec_t *tlx) const
将线性地址转换成物理地址 ,地址解码转换功能
2.void linear_to_raw_address_translation::init(unsigned int n_channel, unsigned int n_sub_partition_in_channel)
地址转换的初始化函数,从这个函数开始,逐步调用相应的功能
3.static new_addr_type addrdec_packbits( new_addr_type mask, new_addr_type val, unsigned char high, unsigned char low)