Skip to content

Class simtix::PipelinedArbitrator

ClassList > simtix > PipelinedArbitrator

Inherits the following classes: simtix::BaseArbitrator

Classes

Type Name
struct Request

Public Types inherited from simtix::BaseArbitrator

See simtix::BaseArbitrator

Type Name
typedef std::function< void()> OnReady

Public Functions

Type Name
void ArbitrateReq ()
Arbitrate pending register file requests.
PipelinedArbitrator (const std::string & name, const ArchParam & p, const pipelined::PipelinedSM::Param & pp)
virtual void PushRegfileReadReq (const std::vector< Thread * > & active_threads, uint32_t reg_id, int64_t * data, OnReady on_ready) override
virtual void PushRegfileWriteReq (const std::vector< Thread * > & active_threads, uint32_t reg_id, int64_t * data, OnReady on_ready) override
virtual void PushRegfileWriteReq (const std::vector< Thread * > & active_threads, uint32_t reg_id, int64_t data, OnReady on_ready) override
virtual int64_t ReadRegfile (uint32_t wid, uint32_t tid, uint32_t reg_id) override
void Reset ()
Reset the arbitrator.
void ResetStat ()
Reset the stats.
virtual void WriteRegfile (uint32_t wid, uint32_t tid, uint32_t reg_id, int64_t data) override
const std::shared_ptr< stat::Group > stat () const
~PipelinedArbitrator () = default

Public Functions inherited from simtix::BaseArbitrator

See simtix::BaseArbitrator

Type Name
virtual void PushRegfileReadReq (const std::vector< Thread * > & active_threads, uint32_t reg_id, int64_t * data, OnReady on_ready) = 0
virtual void PushRegfileWriteReq (const std::vector< Thread * > & active_threads, uint32_t reg_id, int64_t * data, OnReady on_ready) = 0
virtual void PushRegfileWriteReq (const std::vector< Thread * > & active_threads, uint32_t reg_id, int64_t data, OnReady on_ready) = 0
virtual int64_t ReadRegfile (uint32_t wid, uint32_t tid, uint32_t reg_id) = 0
virtual void WriteRegfile (uint32_t wid, uint32_t tid, uint32_t reg_id, int64_t data) = 0
virtual ~BaseArbitrator () = default

Protected Attributes

Type Name
std::shared_ptr< Stat > stat_

Public Functions Documentation

function ArbitrateReq

Arbitrate pending register file requests.

void simtix::PipelinedArbitrator::ArbitrateReq () 

  • Reset bank masks to track bank usage in this tick
  • For each port, try to serve one reqeuset per bank
  • Detect and track bank conflict
  • Update stats

function PipelinedArbitrator

explicit simtix::PipelinedArbitrator::PipelinedArbitrator (
    const std::string & name,
    const ArchParam & p,
    const pipelined::PipelinedSM::Param & pp
) 

function PushRegfileReadReq

virtual void simtix::PipelinedArbitrator::PushRegfileReadReq (
    const std::vector< Thread * > & active_threads,
    uint32_t reg_id,
    int64_t * data,
    OnReady on_ready
) override

Implements simtix::BaseArbitrator::PushRegfileReadReq


function PushRegfileWriteReq [1/2]

virtual void simtix::PipelinedArbitrator::PushRegfileWriteReq (
    const std::vector< Thread * > & active_threads,
    uint32_t reg_id,
    int64_t * data,
    OnReady on_ready
) override

Implements simtix::BaseArbitrator::PushRegfileWriteReq


function PushRegfileWriteReq [2/2]

virtual void simtix::PipelinedArbitrator::PushRegfileWriteReq (
    const std::vector< Thread * > & active_threads,
    uint32_t reg_id,
    int64_t data,
    OnReady on_ready
) override

Implements simtix::BaseArbitrator::PushRegfileWriteReq


function ReadRegfile

inline virtual int64_t simtix::PipelinedArbitrator::ReadRegfile (
    uint32_t wid,
    uint32_t tid,
    uint32_t reg_id
) override

Implements simtix::BaseArbitrator::ReadRegfile


function Reset

Reset the arbitrator.

void simtix::PipelinedArbitrator::Reset () 

Clear all buffered requests.


function ResetStat

Reset the stats.

inline void simtix::PipelinedArbitrator::ResetStat () 

Create a new stat group and point the current stat pointer to it.


function WriteRegfile

inline virtual void simtix::PipelinedArbitrator::WriteRegfile (
    uint32_t wid,
    uint32_t tid,
    uint32_t reg_id,
    int64_t data
) override

Implements simtix::BaseArbitrator::WriteRegfile


function stat

inline const std::shared_ptr< stat::Group > simtix::PipelinedArbitrator::stat () const

function ~PipelinedArbitrator

simtix::PipelinedArbitrator::~PipelinedArbitrator () = default

Protected Attributes Documentation

variable stat_

std::shared_ptr<Stat> simtix::PipelinedArbitrator::stat_;


The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/arbitrator/pipelined.h