gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
TraceCPU::ElasticDataGen::InputStream Class Reference

The InputStream encapsulates a trace file and the internal buffers and populates GraphNodes based on the input. More...

Public Member Functions

 InputStream (const std::string &filename, const double time_multiplier)
 Create a trace input stream for a given file name. More...
 
void reset ()
 Reset the stream such that it can be played once again. More...
 
bool read (GraphNode *element)
 Attempt to read a trace element from the stream, and also notify the caller if the end of the file was reached. More...
 
uint32_t getWindowSize () const
 Get window size from trace. More...
 
uint64_t getMicroOpCount () const
 Get number of micro-ops modelled in the TraceCPU replay. More...
 

Private Attributes

ProtoInputStream trace
 Input file stream for the protobuf trace. More...
 
const double timeMultiplier
 A multiplier for the compute delays in the trace to modulate the Trace CPU frequency either up or down. More...
 
uint64_t microOpCount
 Count of committed ops read from trace plus the filtered ops. More...
 
uint32_t windowSize
 The window size that is read from the header of the protobuf trace and used to process the dependency trace. More...
 

Detailed Description

The InputStream encapsulates a trace file and the internal buffers and populates GraphNodes based on the input.

Definition at line 793 of file trace_cpu.hh.

Constructor & Destructor Documentation

◆ InputStream()

TraceCPU::ElasticDataGen::InputStream::InputStream ( const std::string &  filename,
const double  time_multiplier 
)

Create a trace input stream for a given file name.

Parameters
filenamePath to the file to read from
time_multiplierused to scale the compute delays

Definition at line 1180 of file trace_cpu.cc.

References SimClock::Frequency, panic, ProtoInputStream::read(), trace, and windowSize.

Member Function Documentation

◆ getMicroOpCount()

uint64_t TraceCPU::ElasticDataGen::InputStream::getMicroOpCount ( ) const
inline

Get number of micro-ops modelled in the TraceCPU replay.

Definition at line 849 of file trace_cpu.hh.

References microOpCount.

Referenced by TraceCPU::ElasticDataGen::getMicroOpCount().

◆ getWindowSize()

uint32_t TraceCPU::ElasticDataGen::InputStream::getWindowSize ( ) const
inline

Get window size from trace.

Definition at line 846 of file trace_cpu.hh.

References windowSize.

◆ read()

bool TraceCPU::ElasticDataGen::InputStream::read ( GraphNode element)

◆ reset()

void TraceCPU::ElasticDataGen::InputStream::reset ( )

Reset the stream such that it can be played once again.

Definition at line 1204 of file trace_cpu.cc.

References reset(), and TraceCPU::ElasticDataGen::trace.

Referenced by TraceCPU::ElasticDataGen::exit(), and reset().

Member Data Documentation

◆ microOpCount

uint64_t TraceCPU::ElasticDataGen::InputStream::microOpCount
private

Count of committed ops read from trace plus the filtered ops.

Definition at line 810 of file trace_cpu.hh.

Referenced by getMicroOpCount().

◆ timeMultiplier

const double TraceCPU::ElasticDataGen::InputStream::timeMultiplier
private

A multiplier for the compute delays in the trace to modulate the Trace CPU frequency either up or down.

The Trace CPU's clock domain frequency must also be set to match the expected result of frequency scaling.

Definition at line 807 of file trace_cpu.hh.

◆ trace

ProtoInputStream TraceCPU::ElasticDataGen::InputStream::trace
private

Input file stream for the protobuf trace.

Definition at line 799 of file trace_cpu.hh.

Referenced by InputStream().

◆ windowSize

uint32_t TraceCPU::ElasticDataGen::InputStream::windowSize
private

The window size that is read from the header of the protobuf trace and used to process the dependency trace.

Definition at line 816 of file trace_cpu.hh.

Referenced by getWindowSize(), and InputStream().


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

Generated on Wed Sep 30 2020 14:02:33 for gem5 by doxygen 1.8.17