44#ifndef __CPU_TRAFFIC_GEN_HYBRID_GEN_HH__
45#define __CPU_TRAFFIC_GEN_HYBRID_GEN_HH__
50#include "enums/AddrMap.hh"
101 Addr start_addr_dram,
Addr end_addr_dram,
103 Addr start_addr_nvm,
Addr end_addr_nvm,
107 uint8_t read_percent,
Addr data_limit,
108 unsigned int num_seq_pkts_dram,
unsigned int page_size_dram,
109 unsigned int nbr_of_banks_dram,
unsigned int nbr_of_banks_util_dram,
110 unsigned int num_seq_pkts_nvm,
unsigned int buffer_size_nvm,
111 unsigned int nbr_of_banks_nvm,
unsigned int nbr_of_banks_util_nvm,
112 enums::AddrMap addr_mapping,
113 unsigned int nbr_of_ranks_dram,
114 unsigned int nbr_of_ranks_nvm,
115 uint8_t nvm_percent);
127 void genStartAddr(
unsigned int new_bank ,
unsigned int new_rank);
Declaration of the base generator class for all generators.
Base class for all generators, with the shared functionality and virtual functions for entering,...
Hybrid NVM + DRAM specific generator is for issuing request with variable buffer hit length and bank ...
Tick nextPacketTick(bool elastic, Tick delay) const
Determine the tick when the next packet is available.
const unsigned int bankBitsNvm
Number of bank bits in NVM address.
const Addr startAddrDram
Start of DRAM address range.
unsigned int countNumSeqPkts
Track number of sequential packets generated for a request
unsigned int pageSize
Page size of DRAM.
const Addr dataLimit
Maximum amount of data to manipulate.
unsigned int nbrOfRanks
Number of ranks to be utilized for a given configuration.
const uint8_t readPercent
Percent of generated transactions that should be reads.
void enter()
Enter this generator state.
const unsigned int nbrOfBanksUtilNvm
Number of banks to be utilized for a given configuration.
HybridGen(SimObject &obj, RequestorID requestor_id, Tick _duration, Addr start_addr_dram, Addr end_addr_dram, Addr blocksize_dram, Addr start_addr_nvm, Addr end_addr_nvm, Addr blocksize_nvm, Addr cacheline_size, Tick min_period, Tick max_period, uint8_t read_percent, Addr data_limit, unsigned int num_seq_pkts_dram, unsigned int page_size_dram, unsigned int nbr_of_banks_dram, unsigned int nbr_of_banks_util_dram, unsigned int num_seq_pkts_nvm, unsigned int buffer_size_nvm, unsigned int nbr_of_banks_nvm, unsigned int nbr_of_banks_util_nvm, enums::AddrMap addr_mapping, unsigned int nbr_of_ranks_dram, unsigned int nbr_of_ranks_nvm, uint8_t nvm_percent)
Create a hybrid DRAM + NVM address sequence generator.
Addr dataManipulated
Counter to determine the amount of data manipulated.
const Addr startAddrNvm
Start of DRAM address range.
const Addr blocksizeNvm
Blocksize and address increment for DRAM.
const unsigned int blockBitsDram
Number of block bits in DRAM address.
PacketPtr getNextPacket()
Get the next generated packet.
const unsigned int pageBitsNvm
Number of buffer bits in NVM address.
const uint8_t nvmPercent
Percent of generated transactions that should go to NVM.
const unsigned int numSeqPktsNvm
const Addr blocksizeDram
Blocksize and address increment for DRAM.
unsigned int numSeqPkts
Number of sequential DRAM packets to be generated per cpu request.
const Addr endAddrDram
End of DRAM address range.
const unsigned int nbrOfBanksNvm
Number of banks in NVM.
Addr startAddr
Start of address range.
const unsigned int bankBitsDram
Number of bank bits in DRAM address.
Addr endAddr
End of address range.
const unsigned int nbrOfBanksUtilDram
Number of banks to be utilized for a given configuration.
const Addr cacheLineSize
Cache line size in the simulated system.
const unsigned int nbrOfBanksDram
Number of banks in DRAM.
const unsigned int rankBitsNvm
Number of rank bits in DRAM address.
const unsigned int rankBitsDram
Number of rank bits in DRAM address.
const Addr endAddrNvm
End of DRAM address range.
const unsigned int nbrOfRanksNvm
Number of ranks to be utilized for a given configuration.
unsigned int bankBits
Number of bank bits in DRAM address.
unsigned int nbrOfBanks
Number of banks in DRAM.
bool isRead
Remember type of requests to be generated in series.
enums::AddrMap addrMapping
Address mapping to be used.
Addr blocksize
Blocksize and address increment.
Addr addr
Address of request.
const unsigned int blockBitsNvm
Number of block bits in NVM address.
unsigned int pageBits
Number of page bits in DRAM address.
const unsigned int pageSizeDram
Page size of DRAM.
const unsigned int nbrOfRanksDram
Number of ranks to be utilized for a given configuration.
const unsigned int bufferSizeNvm
Buffer size of NVM.
void genStartAddr(unsigned int new_bank, unsigned int new_rank)
Insert bank, rank, and column bits into packed address to create address for 1st command in a series.
const Tick minPeriod
Request generation period.
unsigned int blockBits
Number of block bits in DRAM address.
const unsigned int numSeqPktsDram
Number of sequential packets to be generated per cpu request.
const unsigned int pageBitsDram
Number of page bits in DRAM address.
bool isNvm
Remember the interface to be generated in series.
unsigned int nbrOfBanksUtil
Number of banks to be utilized for a given configuration.
unsigned int rankBits
Number of rank bits in DRAM address.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Abstract superclass for simulation objects.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
Declaration of the Packet class.