56 addrMapping(_p.addr_mapping),
57 burstSize((_p.devices_per_rank * _p.burst_length *
58 _p.device_bus_width) / 8),
59 deviceSize(_p.device_size),
60 deviceRowBufferSize(_p.device_rowbuffer_size),
61 devicesPerRank(_p.devices_per_rank),
62 rowBufferSize(devicesPerRank * deviceRowBufferSize),
63 burstsPerRowBuffer(rowBufferSize / burstSize),
64 burstsPerStripe(range.interleaved() ?
66 ranksPerChannel(_p.ranks_per_channel),
67 banksPerRank(_p.banks_per_rank), rowsPerBank(0),
68 tCK(_p.tCK), tCS(_p.tCS), tBURST(_p.tBURST),
71 readBufferSize(_p.read_buffer_size),
72 writeBufferSize(_p.write_buffer_size),
78 uint8_t pseudo_channel)
An abstract memory represents a contiguous block of physical memory, with an associated address range...
The memory controller is a single-channel memory controller capturing the most important timing const...
MemCtrl * ctrl
A pointer to the parent memory controller instance.
uint8_t pseudoChannel
pseudo channel number used for HBM modeling
unsigned int maxCommandsPerWindow
Number of commands that can issue in the defined controller command window, used to verify command ba...
void setCtrl(MemCtrl *_ctrl, unsigned int command_window, uint8_t pseudo_channel=0)
Set a pointer to the controller and initialize interface based on controller parameters.
GEM5_CLASS_VAR_USED const Tick tCK
General timing requirements.
MemInterface(const Params &_p)
MemInterface declaration.
Bitfield< 6 > granularity
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....