Class simtix::PipelinedArbitrator
ClassList > simtix > PipelinedArbitrator
Inherits the following classes: simtix::BaseArbitrator
Classes
Type | Name |
---|---|
struct | Request |
Public Types inherited from 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
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.
- 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.
Clear all buffered requests.
function ResetStat
Reset the stats.
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
function ~PipelinedArbitrator
Protected Attributes Documentation
variable stat_
The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/arbitrator/pipelined.h