gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
BaseGen Class Referenceabstract

Base class for all generators, with the shared functionality and virtual functions for entering, executing and leaving the generator. More...

#include <generators.hh>

Inheritance diagram for BaseGen:
IdleGen LinearGen RandomGen TraceGen DramGen DramRotGen

Public Member Functions

 BaseGen (const std::string &_name, MasterID master_id, Tick _duration)
 Create a base generator. More...
 
virtual ~BaseGen ()
 
std::string name () const
 Get the name, useful for DPRINTFs. More...
 
virtual void enter ()=0
 Enter this generator state. More...
 
virtual PacketPtr getNextPacket ()=0
 Get the next generated packet. More...
 
virtual void exit ()
 Exit this generator state. More...
 
virtual Tick nextPacketTick (bool elastic, Tick delay) const =0
 Determine the tick when the next packet is available. More...
 

Public Attributes

const Tick duration
 Time to spend in this state. More...
 

Protected Member Functions

PacketPtr getPacket (Addr addr, unsigned size, const MemCmd &cmd, Request::FlagsType flags=0)
 Generate a new request and associated packet. More...
 

Protected Attributes

const std::string _name
 Name to use for status and debug printing. More...
 
const MasterID masterID
 The MasterID used for generating requests. More...
 

Detailed Description

Base class for all generators, with the shared functionality and virtual functions for entering, executing and leaving the generator.

Definition at line 63 of file generators.hh.

Constructor & Destructor Documentation

BaseGen::BaseGen ( const std::string &  _name,
MasterID  master_id,
Tick  _duration 
)

Create a base generator.

Parameters
_nameName to use for status and debug
master_idMasterID set on each request
_durationduration of this state before transitioning

Definition at line 51 of file generators.cc.

virtual BaseGen::~BaseGen ( )
inlinevirtual

Definition at line 99 of file generators.hh.

Member Function Documentation

virtual void BaseGen::enter ( )
pure virtual

Enter this generator state.

Implemented in TraceGen, RandomGen, LinearGen, and IdleGen.

virtual void BaseGen::exit ( )
inlinevirtual

Exit this generator state.

By default do nothing.

Reimplemented in TraceGen.

Definition at line 123 of file generators.hh.

virtual PacketPtr BaseGen::getNextPacket ( )
pure virtual

Get the next generated packet.

Returns
A packet to be sent at the current tick

Implemented in TraceGen, DramRotGen, DramGen, RandomGen, LinearGen, and IdleGen.

PacketPtr BaseGen::getPacket ( Addr  addr,
unsigned  size,
const MemCmd cmd,
Request::FlagsType  flags = 0 
)
protected

Generate a new request and associated packet.

Parameters
addrPhysical address to use
sizeSize of the request
cmdMemory command to send
flagsOptional request flags

Definition at line 57 of file generators.cc.

References Packet::dataDynamic(), Request::getSize(), MemCmd::isWrite(), masterID, and Request::setPC().

Referenced by LinearGen::getNextPacket(), RandomGen::getNextPacket(), DramGen::getNextPacket(), DramRotGen::getNextPacket(), and TraceGen::getNextPacket().

std::string BaseGen::name ( ) const
inline

Get the name, useful for DPRINTFs.

Returns
the given name

Definition at line 106 of file generators.hh.

References _name.

Referenced by TraceGen::exit().

virtual Tick BaseGen::nextPacketTick ( bool  elastic,
Tick  delay 
) const
pure virtual

Determine the tick when the next packet is available.

MaxTick means that there will not be any further packets in the current activation cycle of the generator.

Parameters
elasticshould the injection respond to flow control or not
delaytime the previous packet spent waiting
Returns
next tick when a packet is available

Implemented in TraceGen, RandomGen, LinearGen, and IdleGen.

Member Data Documentation

const std::string BaseGen::_name
protected

Name to use for status and debug printing.

Definition at line 69 of file generators.hh.

Referenced by name().

const Tick BaseGen::duration

Time to spend in this state.

Definition at line 88 of file generators.hh.

const MasterID BaseGen::masterID
protected

The MasterID used for generating requests.

Definition at line 72 of file generators.hh.

Referenced by getPacket().


The documentation for this class was generated from the following files:

Generated on Fri Jun 9 2017 13:04:02 for gem5 by doxygen 1.8.6