Skip to content

Class simtix::AtomicSM::Impl

ClassList > simtix > AtomicSM > Impl

Inherits the following classes: simtix::AtomicSMImpl

Public Types inherited from simtix::AtomicSMImpl

See simtix::AtomicSMImpl

Type Name
enum uint8_t LastStatus

Public Functions

Type Name
Impl (const std::string & name, uint32_t cid, const ArchParam & p)
~Impl () = default

Public Functions inherited from simtix::AtomicSMImpl

See simtix::AtomicSMImpl

Type Name
AtomicSMImpl (const std::string & name, uint32_t cid, const ArchParam & p=kDefaultArchParam)
virtual void NotifyCtrlFlowChange (uint32_t wid, bool is_diverged, uint64_t wpc, uint64_t sswpc) override
Notify the SM of a control flow change.
virtual BaseArbitrator * arbitrator () override
virtual BaseLoadStoreUnit * lsu () override
virtual std::shared_ptr< BaseSMImpl::Stat > stat () override
virtual BaseSMImpl::WorkGroupStat * wg_stat () override
~AtomicSMImpl () = default

Public Functions inherited from simtix::BaseSMImpl

See simtix::BaseSMImpl

Type Name
virtual void AttachDMem (MemoryInterface * dmem)
Connect data memory interface.
virtual void AttachIMem (MemoryInterface * imem)
Connect instruction memory interface.
BaseSMImpl (const std::string & name, uint32_t cid, const ArchParam & p=kDefaultArchParam)
Constructor for BaseSMImpl .
virtual int NotifyBarrier (uint32_t wid, uint8_t bid, uint8_t wc)
Notify the SM of a barrier instruction.
virtual void NotifyCtrlFlowChange (uint32_t wid, bool is_diverged, uint64_t wpc, uint64_t sswpc) = 0
Notify the SM of a control flow change.
virtual void NotifyException (uint32_t wid, uint64_t mcause, uint64_t mepc, uint64_t mtval)
Notify the SM of an exception.
virtual int Process (const opencl::WorkGroup & wg)
Process a work-group and initialize all threads.
int32_t ReadCSR (uint16_t addr, uint64_t * data)
Read a Control and Status Register (CSR).
virtual void Reset ()
Reset the SM to its initial state.
virtual void ResetStat ()
Reset and create a new stat for a workgroup.
virtual BaseArbitrator * arbitrator () = 0
virtual BaseLoadStoreUnit * lsu () = 0
uint32_t marchid () const
uint64_t mcycle () const
const std::vector< uint64_t > & minstrets ()
uint32_t mvendorid () const
const std::string name () const
uint32_t num_active_warps () const
uint32_t num_warps () const
uint32_t num_warps_per_warpgroup () const
void set_mcycle (uint64_t cycle)
virtual std::shared_ptr< Stat > stat () = 0
const std::vector< std::unique_ptr< Warp > > & warps () const
virtual WorkGroupStat * wg_stat () = 0
uint32_t xclgoffx () const
uint32_t xclgoffy () const
uint32_t xclgoffz () const
uint32_t xclgsx () const
uint32_t xclgsy () const
uint32_t xclgsz () const
uint32_t xclsx () const
uint32_t xclsy () const
uint32_t xclsz () const
uint32_t xclwx () const
uint32_t xclwy () const
uint32_t xclwz () const
uint32_t xdim () const
uint64_t xkernelarg () const
uint64_t xkernelpc () const
uint64_t xmhartidbase () const
virtual ~BaseSMImpl ()

Protected Attributes inherited from simtix::AtomicSMImpl

See simtix::AtomicSMImpl

Type Name
AtomicArbitrator atomic_arbitrator_
AtomicLoadStoreUnit atomic_lsu_
const uint32_t kWarpsPerCore
std::shared_ptr< Stat > stat_
std::shared_ptr< WorkGroupStat > wg_stat_

Protected Attributes inherited from simtix::BaseSMImpl

See simtix::BaseSMImpl

Type Name
std::vector< Barrier > barriers_
uint32_t cid_
MemoryInterface * dmem_port_ = nullptr
BaseSM::FaultStatus fault_status_ = {0, 0, 0, 0}
MemoryInterface * imem_port_ = nullptr
uint32_t marchid_ = 0
uint64_t mcycle_ = 0
std::vector< uint64_t > minstrets_
uint32_t mvendorid_ = 0
const std::string name_
uint32_t num_active_warps_ = 0
const uint32_t num_threads_per_warp_
const uint32_t num_warps_
uint32_t num_warps_per_warpgroup_ = 1
std::unique_ptr< WarpSched > scheduler_
BaseSM::Status status_
std::vector< Warp * > valid_leader_warps_
std::vector< std::unique_ptr< Warp > > warps_
Barrier wg_completion_barrier_
uint32_t wg_serial_id_ = 0
uint32_t xclgoffx_ = 0
uint32_t xclgoffy_ = 0
uint32_t xclgoffz_ = 0
uint32_t xclgsx_ = 0
uint32_t xclgsy_ = 0
uint32_t xclgsz_ = 0
uint32_t xclsx_ = 0
uint32_t xclsy_ = 0
uint32_t xclsz_ = 0
uint32_t xclwx_ = 0
uint32_t xclwy_ = 0
uint32_t xclwz_ = 0
uint32_t xdim_ = 0
uint64_t xkernelarg_ = 0
uint64_t xkernelpc_ = 0
uint64_t xmhartidbase_ = 0

Protected Functions inherited from simtix::AtomicSMImpl

See simtix::AtomicSMImpl

Type Name
virtual void Reset () override
Reset the SM to its initial state.
virtual void ResetStat () override
Reset and create a new stat for a workgroup.
virtual void Tick () override
Advance pipeline by one cycle.

Protected Functions inherited from simtix::BaseSMImpl

See simtix::BaseSMImpl

Type Name
bool BarrierCompleted (const Barrier & b) const
virtual bool IsBusy ()
virtual void Tick ()
Advance pipeline by one cycle.

Public Functions Documentation

function Impl

inline simtix::AtomicSM::Impl::Impl (
    const std::string & name,
    uint32_t cid,
    const ArchParam & p
) 

function ~Impl

simtix::AtomicSM::Impl::~Impl () = default

Friends Documentation

friend AtomicSM

class simtix::AtomicSM::Impl::AtomicSM (
    AtomicSM
) 


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