# DRAM Latency Model¶

In this page, we will explain how we design and implement DRAM latency model (embedded DRAM).

DRAM model provides abstract class, so you can implement your own DRAM latency model by inherit the class. By default, we provide SimpleDRAM, similar to DRAMCtrl of gem5.

## AbstractClass¶

AbstractDRAM class is defined in dram/abstrat_dram.hh. It defines four virtual functions (+ three virtual functions derived from StatObject).

You can handle DRAM read/write access request at read and write function. setScheduling and isScheduling function defined for ICL, to avoid DRAM conflict when latency calculation.

## SimpleDRAM¶

SimpleDRAM uses two latency parameters of DRAM - tRP and tRAS. DDR bus bandwidth is calculated by several parameters. See SimpleSSD::DRAM::SimpleDRAM::SimpleDRAM for more details.